@realsee/five 5.0.0-alpha.38 → 5.0.0-alpha.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +14 -6
  2. package/docs/classes/five.Camera.html +4 -4
  3. package/docs/classes/five.Five.html +4 -4
  4. package/docs/classes/five.HashCubeTexture.html +4 -4
  5. package/docs/classes/five.InternalWebGLRenderer.html +4 -4
  6. package/docs/classes/five.Model.html +4 -4
  7. package/docs/classes/five.NetworkSubscribe.html +4 -4
  8. package/docs/classes/five.PBMContainer.html +4 -4
  9. package/docs/classes/five.PBMGroup.html +4 -4
  10. package/docs/classes/five.PBMMaterial.html +4 -4
  11. package/docs/classes/five.PBMMesh.html +4 -4
  12. package/docs/classes/five.Scene.html +4 -4
  13. package/docs/classes/five.Subscribe.html +4 -4
  14. package/docs/classes/gltf_loader.GLTFLoader.html +4 -4
  15. package/docs/classes/gltf_loader.GLTFObject.html +4 -4
  16. package/docs/classes/line.Line.html +4 -4
  17. package/docs/classes/line.LineGeometry.html +4 -4
  18. package/docs/classes/line.LineMaterial.html +4 -4
  19. package/docs/classes/line.LineSegmentsGeometry.html +4 -4
  20. package/docs/classes/line.THREE_Line2.html +4 -4
  21. package/docs/classes/line.THREE_LineSegments2.html +4 -4
  22. package/docs/classes/react.Store.html +4 -4
  23. package/docs/classes/server.Model.html +4 -4
  24. package/docs/classes/server.PBMGroup.html +4 -4
  25. package/docs/classes/server.PBMMesh.html +4 -4
  26. package/docs/classes/sticker.Sticker.html +4 -4
  27. package/docs/index.html +33 -10
  28. package/docs/interfaces/five.AddableObject.html +4 -4
  29. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +4 -4
  30. package/docs/interfaces/five.EventCallback.html +4 -4
  31. package/docs/interfaces/five.FiveInitArgs.html +4 -4
  32. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +4 -4
  33. package/docs/interfaces/five.ImageOptions.html +4 -4
  34. package/docs/interfaces/five.IntersectMeshInterface.html +4 -4
  35. package/docs/interfaces/five.Intersection.html +4 -4
  36. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +4 -4
  37. package/docs/interfaces/five.ModelEventCallback.html +4 -4
  38. package/docs/interfaces/five.MovePanoOptions.html +4 -4
  39. package/docs/interfaces/five.PBMParameters.html +4 -4
  40. package/docs/interfaces/five.PanoCircleMeshInterface.html +4 -4
  41. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +4 -4
  42. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +4 -4
  43. package/docs/interfaces/five.Pose.html +4 -4
  44. package/docs/interfaces/five.Scissor.html +4 -4
  45. package/docs/interfaces/five.State.html +4 -4
  46. package/docs/interfaces/five.SubscribeMixinType.emit.html +4 -4
  47. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +4 -4
  48. package/docs/interfaces/five.SubscribeMixinType.off.html +4 -4
  49. package/docs/interfaces/five.SubscribeMixinType.on.html +4 -4
  50. package/docs/interfaces/five.SubscribeMixinType.once.html +4 -4
  51. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +4 -4
  52. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +4 -4
  53. package/docs/interfaces/gltf_loader.GLTF.html +4 -4
  54. package/docs/interfaces/react.FiveActionReactCallbacks.html +4 -4
  55. package/docs/interfaces/react.FiveInjectionTypes.html +4 -4
  56. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +4 -4
  57. package/docs/interfaces/server.Intersection.html +4 -4
  58. package/docs/interfaces/server.ModelEventCallback.html +4 -4
  59. package/docs/interfaces/sticker.IntersectionLike.html +4 -4
  60. package/docs/modules/five.SubscribeMixinType.html +4 -4
  61. package/docs/modules/five.html +4 -4
  62. package/docs/modules/gltf_loader.html +4 -4
  63. package/docs/modules/line.html +4 -4
  64. package/docs/modules/react.html +4 -4
  65. package/docs/modules/server.html +4 -4
  66. package/docs/modules/sticker.html +4 -4
  67. package/docs/modules.html +4 -4
  68. package/exporters/staticify.js +1 -1
  69. package/five/index.js +3 -3
  70. package/gltf-loader/index.js +2 -2
  71. package/line/index.js +2 -2
  72. package/package.json +1 -1
  73. package/react/index.js +2 -2
  74. package/server/index.js +3 -3
  75. package/sticker/index.js +2 -2
  76. package/umd/five.js +1 -1
package/umd/five.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see five.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FiveSDK=t():e.FiveSDK=t()}(self,(function(){return(()=>{var __webpack_modules__={438:e=>{if(!("THREE"in window))throw new Error('"THREE" is not available. Please include "three.js" in your HTML.');const t=Number(THREE.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');e.exports=window.THREE},383:e=>{"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),i=0,n=2,s=!0;n<arguments.length;)r[i++]=arguments[n++];return new Promise((function(n,o){r[i]=function(e){if(s)if(s=!1,e)o(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];n.apply(null,t)}};try{e.apply(t||null,r)}catch(e){s&&(s=!1,o(e))}}))}},417:(e,t)=>{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var i=new Array(64),n=new Array(123),s=0;s<64;)n[i[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;r.encode=function(e,t,r){for(var n,s=null,o=[],a=0,u=0;t<r;){var c=e[t++];switch(u){case 0:o[a++]=i[c>>2],n=(3&c)<<4,u=1;break;case 1:o[a++]=i[n|c>>4],n=(15&c)<<2,u=2;break;case 2:o[a++]=i[n|c>>6],o[a++]=i[63&c],u=0}a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0)}return u&&(o[a++]=i[n],o[a++]=61,1===u&&(o[a++]=61)),s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};var o="invalid encoding";r.decode=function(e,t,r){for(var i,s=r,a=0,u=0;u<e.length;){var c=e.charCodeAt(u++);if(61===c&&a>1)break;if(void 0===(c=n[c]))throw Error(o);switch(a){case 0:i=c,a=1;break;case 1:t[r++]=i<<2|(48&c)>>4,i=c,a=2;break;case 2:t[r++]=(15&i)<<4|(60&c)>>2,i=c,a=3;break;case 3:t[r++]=(3&i)<<6|c,a=0}}if(1===a)throw Error(o);return r-s},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},679:e=>{"use strict";function t(e,r){"string"==typeof e&&(r=e,e=void 0);var i=[];function n(e){if("string"!=typeof e){var r=s();if(t.verbose&&console.log("codegen: "+r),r="return "+r,e){for(var o=Object.keys(e),a=new Array(o.length+1),u=new Array(o.length),c=0;c<o.length;)a[c]=o[c],u[c]=e[o[c++]];return a[c]=r,Function.apply(null,a).apply(null,u)}return Function(r)()}for(var l=new Array(arguments.length-1),h=0;h<l.length;)l[h]=arguments[++h];if(h=0,e=e.replace(/%([%dfijs])/g,(function(e,t){var r=l[h++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"})),h!==l.length)throw Error("parameter count mismatch");return i.push(e),n}function s(t){return"function "+(t||r||"")+"("+(e&&e.join(",")||"")+"){\n "+i.join("\n ")+"\n}"}return n.toString=s,n}e.exports=t,t.verbose=!1},516:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],i=0;i<r.length;)r[i].fn===t?r.splice(i,1):++i;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],i=1;i<arguments.length;)r.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,r)}return this}},11:(e,t,r)=>{"use strict";e.exports=s;var i=r(383),n=r(795)("fs");function s(e,t,r){return"function"==typeof t?(r=t,t={}):t||(t={}),r?!t.xhr&&n&&n.readFile?n.readFile(e,(function(i,n){return i&&"undefined"!=typeof XMLHttpRequest?s.xhr(e,t,r):i?r(i):r(null,t.binary?n:n.toString("utf8"))})):s.xhr(e,t,r):i(s,this,e,t)}s.xhr=function(e,t,r){var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(0!==i.status&&200!==i.status)return r(Error("status "+i.status));if(t.binary){var e=i.response;if(!e){e=[];for(var n=0;n<i.responseText.length;++n)e.push(255&i.responseText.charCodeAt(n))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,i.responseText)}},t.binary&&("overrideMimeType"in i&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.responseType="arraybuffer"),i.open("GET",e),i.send()}},787:e=>{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),i=128===r[3];function n(e,i,n){t[0]=e,i[n]=r[0],i[n+1]=r[1],i[n+2]=r[2],i[n+3]=r[3]}function s(e,i,n){t[0]=e,i[n]=r[3],i[n+1]=r[2],i[n+2]=r[1],i[n+3]=r[0]}function o(e,i){return r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],t[0]}function a(e,i){return r[3]=e[i],r[2]=e[i+1],r[1]=e[i+2],r[0]=e[i+3],t[0]}e.writeFloatLE=i?n:s,e.writeFloatBE=i?s:n,e.readFloatLE=i?o:a,e.readFloatBE=i?a:o}():function(){function t(e,t,r,i){var n=t<0?1:0;if(n&&(t=-t),0===t)e(1/t>0?0:2147483648,r,i);else if(isNaN(t))e(2143289344,r,i);else if(t>34028234663852886e22)e((n<<31|2139095040)>>>0,r,i);else if(t<11754943508222875e-54)e((n<<31|Math.round(t/1401298464324817e-60))>>>0,r,i);else{var s=Math.floor(Math.log(t)/Math.LN2);e((n<<31|s+127<<23|8388607&Math.round(t*Math.pow(2,-s)*8388608))>>>0,r,i)}}function o(e,t,r){var i=e(t,r),n=2*(i>>31)+1,s=i>>>23&255,o=8388607&i;return 255===s?o?NaN:n*(1/0):0===s?1401298464324817e-60*n*o:n*Math.pow(2,s-150)*(o+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,i),e.readFloatLE=o.bind(null,n),e.readFloatBE=o.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),i=128===r[7];function n(e,i,n){t[0]=e,i[n]=r[0],i[n+1]=r[1],i[n+2]=r[2],i[n+3]=r[3],i[n+4]=r[4],i[n+5]=r[5],i[n+6]=r[6],i[n+7]=r[7]}function s(e,i,n){t[0]=e,i[n]=r[7],i[n+1]=r[6],i[n+2]=r[5],i[n+3]=r[4],i[n+4]=r[3],i[n+5]=r[2],i[n+6]=r[1],i[n+7]=r[0]}function o(e,i){return r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],r[4]=e[i+4],r[5]=e[i+5],r[6]=e[i+6],r[7]=e[i+7],t[0]}function a(e,i){return r[7]=e[i],r[6]=e[i+1],r[5]=e[i+2],r[4]=e[i+3],r[3]=e[i+4],r[2]=e[i+5],r[1]=e[i+6],r[0]=e[i+7],t[0]}e.writeDoubleLE=i?n:s,e.writeDoubleBE=i?s:n,e.readDoubleLE=i?o:a,e.readDoubleBE=i?a:o}():function(){function t(e,t,r,i,n,s){var o=i<0?1:0;if(o&&(i=-i),0===i)e(0,n,s+t),e(1/i>0?0:2147483648,n,s+r);else if(isNaN(i))e(0,n,s+t),e(2146959360,n,s+r);else if(i>17976931348623157e292)e(0,n,s+t),e((o<<31|2146435072)>>>0,n,s+r);else{var a;if(i<22250738585072014e-324)e((a=i/5e-324)>>>0,n,s+t),e((o<<31|a/4294967296)>>>0,n,s+r);else{var u=Math.floor(Math.log(i)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(a=i*Math.pow(2,-u))>>>0,n,s+t),e((o<<31|u+1023<<20|1048576*a&1048575)>>>0,n,s+r)}}}function o(e,t,r,i,n){var s=e(i,n+t),o=e(i,n+r),a=2*(o>>31)+1,u=o>>>20&2047,c=4294967296*(1048575&o)+s;return 2047===u?c?NaN:a*(1/0):0===u?5e-324*a*c:a*Math.pow(2,u-1075)*(c+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,i,4,0),e.readDoubleLE=o.bind(null,n,0,4),e.readDoubleBE=o.bind(null,s,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function i(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function n(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function s(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},795:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},49:(e,t)=>{"use strict";var r=t,i=r.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},n=r.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),r=i(e),n="";r&&(n=t.shift()+"/");for(var s=0;s<t.length;)".."===t[s]?s>0&&".."!==t[s-1]?t.splice(--s,2):r?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return n+t.join("/")};r.resolve=function(e,t,r){return r||(t=n(t)),i(t)?t:(r||(e=n(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?n(e+"/"+t):t)}},476:e=>{"use strict";e.exports=function(e,t,r){var i=r||8192,n=i>>>1,s=null,o=i;return function(r){if(r<1||r>n)return e(r);o+r>i&&(s=e(i),o=0);var a=t.call(s,o,o+=r);return 7&o&&(o=1+(7|o)),a}}},893:(e,t)=>{"use strict";var r=t;r.length=function(e){for(var t=0,r=0,i=0;i<e.length;++i)(r=e.charCodeAt(i))<128?t+=1:r<2048?t+=2:55296==(64512&r)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},r.read=function(e,t,r){if(r-t<1)return"";for(var i,n=null,s=[],o=0;t<r;)(i=e[t++])<128?s[o++]=i:i>191&&i<224?s[o++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,s[o++]=55296+(i>>10),s[o++]=56320+(1023&i)):s[o++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],o>8191&&((n||(n=[])).push(String.fromCharCode.apply(String,s)),o=0);return n?(o&&n.push(String.fromCharCode.apply(String,s.slice(0,o))),n.join("")):String.fromCharCode.apply(String,s.slice(0,o))},r.write=function(e,t,r){for(var i,n,s=r,o=0;o<e.length;++o)(i=e.charCodeAt(o))<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=63&i|128):55296==(64512&i)&&56320==(64512&(n=e.charCodeAt(o+1)))?(i=65536+((1023&i)<<10)+(1023&n),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=63&i|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=63&i|128);return r-s}},94:(e,t,r)=>{"use strict";t.u=function(e){var t=void 0===arguments[1]?{}:arguments[1],r=t.algorithm,i=void 0===r?"sha1":r,o=t.inputEncoding,a=void 0===o?"utf8":o,u=t.outputEncoding,c=void 0===u?"hex":u,l=t.crypto,h=void 0===l?s:l,d=t.sets;return n(e,{algorithm:i,inputEncoding:a,outputEncoding:c,crypto:h,sets:d})};var i,n=r(859).u,s=(i=r(324))&&i.__esModule?i.default:i},324:e=>{"use strict";var t=function(e,t){return e<<t|e>>>32-t};e.exports={createHash:function(e){var r=null;switch(e){case"sha1":r=function(){var e=[],r=[];return{update:function(t,r){!function(e,t,r){if(Array.isArray(t))for(var i=t.length,n=0;n<i;n++)e.push(t[n]);else if("utf8"===r){var s=unescape(encodeURIComponent(t));for(i=s.length,n=0;n<i;n++)e.push(s.charCodeAt(n))}else for(i=t.length,n=0;n<i;n++){var o=255&t.charCodeAt(n);e.push(0===o&&"ascii"===r?32:o)}}(e,t,r)},digest:function(i){for(var n=e.length,s=0;s<n-3;s+=4)r.push(e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]);switch(n%4){case 0:r.push(2147483648);break;case 1:r.push(e[n-1]<<24|8388608);break;case 2:r.push(e[n-2]<<24|e[n-1]<<16|32768);break;case 3:r.push(e[n-3]<<24|e[n-2]<<16|e[n-1]<<8|128)}for(;r.length%16!=14;)r.push(0);return r.push(n>>>29),r.push(n<<3&4294967295),function(e,t){var r=null,i=function(e){return String.fromCharCode(e)};switch(t){case"binary":r=e.map(i).join("");break;case"base64":r=atob(e.map(i).join(""));break;default:r=e.map((function(e){return e.toString(16)})).join("")}return r}(function(e){e.length;for(var r=4294967295,i=new Array(80),n=[1732584193,4023233417,2562383102,271733878,3285377520],s=0;s<e.length;s+=16){for(var o=n[0],a=n[1],u=n[2],c=n[3],l=n[4],h=0;h<16;h++)i[h]=e[s+h];for(h=16;h<=79;h++)i[h]=t(i[h-3]^i[h-8]^i[h-14]^i[h-16],1);for(h=0;h<=19;h++){var d=t(o,5)+(a&u|~a&c)+l+i[h]+1518500249&r;l=c,c=u,u=t(a,30),a=o,o=d}for(h=20;h<=39;h++)d=t(o,5)+(a^u^c)+l+i[h]+1859775393&r,l=c,c=u,u=t(a,30),a=o,o=d;for(h=40;h<=59;h++)d=t(o,5)+(a&u|a&c|u&c)+l+i[h]+2400959708&r,l=c,c=u,u=t(a,30),a=o,o=d;for(h=60;h<=79;h++)d=t(o,5)+(a^u^c)+l+i[h]+3395469782&r,l=c,c=u,u=t(a,30),a=o,o=d;n[0]=n[0]+o&r,n[1]=n[1]+a&r,n[2]=n[2]+u&r,n[3]=n[3]+c&r,n[4]=n[4]+l&r}return n}(r).reduce((function(e,t){for(var r=7;r>=0;--r)e.push(t>>>4*r&15);return e}),[]),i)}}}();break;default:throw new Error("Digest method not supported.")}return r}}},859:(e,t)=>{"use strict";t.u=function e(t){var r=void 0===arguments[1]?{}:arguments[1],i=r.algorithm,n=void 0===i?"sha1":i,s=r.inputEncoding,o=void 0===s?"utf8":s,a=r.outputEncoding,u=void 0===a?"hex":a,c=r.crypto,l=r.sets,h=c.createHash(n),d=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.update(t.join(":"),o)},p=function(t){return e(t,{algorithm:n,inputEncoding:o,outputEncoding:u,crypto:c,sets:l})};switch(!0){case void 0===t:d("u");break;case null===t:d("n");break;case"boolean"==typeof t:case t instanceof Boolean:d("f",t.valueOf());break;case"number"==typeof t:case t instanceof Number:d("i",""+t);break;case"string"==typeof t:case t instanceof String:d("s",""+t);break;case"symbol"==typeof t:case t instanceof Symbol:d("S",""+t);break;case t instanceof Date:d("d",t.toISOString());break;case t instanceof RegExp:d("x",""+t);break;case t instanceof Function:d("F",t.toString());break;case Array.isArray(t):l?(d("<"),t.map(p).sort().forEach((function(e){return d("A",e)})),d(">")):(d("["),t.forEach((function(e){return d("a",p(e))})),d("]"));break;default:d("{"),Object.keys(t).sort().forEach((function(e){return d("k",p(e),"v",p(t[e]))})),d("}")}return h.digest(u)}},247:(e,t,r)=>{"use strict";e.exports=r(189)},308:e=>{"use strict";e.exports=i;var t,r=/\/|\./;function i(e,t){r.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),i[e]=t}i("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),i("duration",{Duration:t={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),i("timestamp",{Timestamp:t}),i("empty",{Empty:{fields:{}}}),i("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),i("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),i("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),i.get=function(e){return i[e]||null}},32:(e,t,r)=>{"use strict";var i=t,n=r(969),s=r(827);function o(e,t,r,i){if(t.resolvedType)if(t.resolvedType instanceof n){e("switch(d%s){",i);for(var s=t.resolvedType.values,o=Object.keys(s),a=0;a<o.length;++a)t.repeated&&s[o[a]]===t.typeDefault&&e("default:"),e("case%j:",o[a])("case %i:",s[o[a]])("m%s=%j",i,s[o[a]])("break");e("}")}else e('if(typeof d%s!=="object")',i)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",i,r,i);else{var u=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",i,i);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",i,i);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",i,i);break;case"uint64":u=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,u)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,u?"true":"");break;case"bytes":e('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length)",i)("m%s=d%s",i,i);break;case"string":e("m%s=String(d%s)",i,i);break;case"bool":e("m%s=Boolean(d%s)",i,i)}}return e}function a(e,t,r,i){if(t.resolvedType)t.resolvedType instanceof n?e("d%s=o.enums===String?types[%i].values[m%s]:m%s",i,r,i,i):e("d%s=types[%i].toObject(m%s,o)",i,r,i);else{var s=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",i,i,i,i);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',i)("d%s=o.longs===String?String(m%s):m%s",i,i,i)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,s?"true":"",i);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:e("d%s=m%s",i,i)}}return e}i.fromObject=function(e){var t=e.fieldsArray,r=s.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),u=s.safeProp(a.name);a.map?(r("if(d%s){",u)('if(typeof d%s!=="object")',u)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",u)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",u),o(r,a,i,u+"[ks[i]]")("}")("}")):a.repeated?(r("if(d%s){",u)("if(!Array.isArray(d%s))",u)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",u)("for(var i=0;i<d%s.length;++i){",u),o(r,a,i,u+"[i]")("}")("}")):(a.resolvedType instanceof n||r("if(d%s!=null){",u),o(r,a,i,u),a.resolvedType instanceof n||r("}"))}return r("return m")},i.toObject=function(e){var t=e.fieldsArray.slice().sort(s.compareFieldsById);if(!t.length)return s.codegen()("return {}");for(var r=s.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],o=[],u=[],c=0;c<t.length;++c)t[c].partOf||(t[c].resolve().repeated?i:t[c].map?o:u).push(t[c]);if(i.length){for(r("if(o.arrays||o.defaults){"),c=0;c<i.length;++c)r("d%s=[]",s.safeProp(i[c].name));r("}")}if(o.length){for(r("if(o.objects||o.defaults){"),c=0;c<o.length;++c)r("d%s={}",s.safeProp(o[c].name));r("}")}if(u.length){for(r("if(o.defaults){"),c=0;c<u.length;++c){var l=u[c],h=s.safeProp(l.name);if(l.resolvedType instanceof n)r("d%s=o.enums===String?%j:%j",h,l.resolvedType.valuesById[l.typeDefault],l.typeDefault);else if(l.long)r("if(util.Long){")("var n=new util.Long(%i,%i,%j)",l.typeDefault.low,l.typeDefault.high,l.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",h)("}else")("d%s=o.longs===String?%j:%i",h,l.typeDefault.toString(),l.typeDefault.toNumber());else if(l.bytes){var d="["+Array.prototype.slice.call(l.typeDefault).join(",")+"]";r("if(o.bytes===String)d%s=%j",h,String.fromCharCode.apply(String,l.typeDefault))("else{")("d%s=%s",h,d)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",h,h)("}")}else r("d%s=%j",h,l.typeDefault)}r("}")}var p=!1;for(c=0;c<t.length;++c){l=t[c];var f=e._fieldsArray.indexOf(l);h=s.safeProp(l.name),l.map?(p||(p=!0,r("var ks2")),r("if(m%s&&(ks2=Object.keys(m%s)).length){",h,h)("d%s={}",h)("for(var j=0;j<ks2.length;++j){"),a(r,l,f,h+"[ks2[j]]")("}")):l.repeated?(r("if(m%s&&m%s.length){",h,h)("d%s=[]",h)("for(var j=0;j<m%s.length;++j){",h),a(r,l,f,h+"[j]")("}")):(r("if(m%s!=null&&m.hasOwnProperty(%j)){",h,l.name),a(r,l,f,h),l.partOf&&r("if(o.oneofs)")("d%s=%j",s.safeProp(l.partOf.name),l.name)),r("}")}return r("return d")}},388:(e,t,r)=>{"use strict";e.exports=function(e){var t=s.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter((function(e){return e.map})).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var a=e._fieldsArray[r].resolve(),u=a.resolvedType instanceof i?"int32":a.type,c="m"+s.safeProp(a.name);t("case %i:",a.id),a.map?(t("if(%s===util.emptyObject)",c)("%s={}",c)("var c2 = r.uint32()+r.pos"),void 0!==n.defaults[a.keyType]?t("k=%j",n.defaults[a.keyType]):t("k=null"),void 0!==n.defaults[u]?t("value=%j",n.defaults[u]):t("value=null"),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",a.keyType)("case 2:"),void 0===n.basic[u]?t("value=types[%i].decode(r,r.uint32())",r):t("value=r.%s()",u),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),void 0!==n.long[a.keyType]?t('%s[typeof k==="object"?util.longToHash(k):k]=value',c):t("%s[k]=value",c)):a.repeated?(t("if(!(%s&&%s.length))",c,c)("%s=[]",c),void 0!==n.packed[u]&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",c,u)("}else"),void 0===n.basic[u]?t(a.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",c,r):t("%s.push(r.%s())",c,u)):void 0===n.basic[u]?t(a.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",c,r):t("%s=r.%s()",c,u),t("break")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var l=e._fieldsArray[r];l.required&&t("if(!m.hasOwnProperty(%j))",l.name)("throw util.ProtocolError(%j,{instance:m})",o(l))}return t("return m")};var i=r(969),n=r(374),s=r(827);function o(e){return"missing required '"+e.name+"'"}},860:(e,t,r)=>{"use strict";e.exports=function(e){for(var t,r=s.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),a=e.fieldsArray.slice().sort(s.compareFieldsById),u=0;u<a.length;++u){var c=a[u].resolve(),l=e._fieldsArray.indexOf(c),h=c.resolvedType instanceof i?"int32":c.type,d=n.basic[h];t="m"+s.safeProp(c.name),c.map?(r("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",t,c.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",t)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(c.id<<3|2)>>>0,8|n.mapKey[c.keyType],c.keyType),void 0===d?r("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",l,t):r(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|d,h,t),r("}")("}")):c.repeated?(r("if(%s!=null&&%s.length){",t,t),c.packed&&void 0!==n.packed[h]?r("w.uint32(%i).fork()",(c.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",t)("w.%s(%s[i])",h,t)("w.ldelim()"):(r("for(var i=0;i<%s.length;++i)",t),void 0===d?o(r,c,l,t+"[i]"):r("w.uint32(%i).%s(%s[i])",(c.id<<3|d)>>>0,h,t)),r("}")):(c.optional&&r("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",t,c.name),void 0===d?o(r,c,l,t):r("w.uint32(%i).%s(%s)",(c.id<<3|d)>>>0,h,t))}return r("return w")};var i=r(969),n=r(374),s=r(827);function o(e,t,r,i){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,i,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,i,(t.id<<3|2)>>>0)}},969:(e,t,r)=>{"use strict";e.exports=o;var i=r(883);((o.prototype=Object.create(i.prototype)).constructor=o).className="Enum";var n=r(225),s=r(827);function o(e,t,r,n,s){if(i.call(this,e,r),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=s||{},this.reserved=void 0,t)for(var o=Object.keys(t),a=0;a<o.length;++a)"number"==typeof t[o[a]]&&(this.valuesById[this.values[o[a]]=t[o[a]]]=o[a])}o.fromJSON=function(e,t){var r=new o(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["options",this.options,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},o.prototype.add=function(e,t,r){if(!s.isString(e))throw TypeError("name must be a string");if(!s.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return this.comments[e]=r||null,this},o.prototype.remove=function(e){if(!s.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this},o.prototype.isReservedId=function(e){return n.isReservedId(this.reserved,e)},o.prototype.isReservedName=function(e){return n.isReservedName(this.reserved,e)}},149:(e,t,r)=>{"use strict";e.exports=c;var i=r(883);((c.prototype=Object.create(i.prototype)).constructor=c).className="Field";var n,s=r(969),o=r(374),a=r(827),u=/^required|optional|repeated$/;function c(e,t,r,n,s,c,l){if(a.isObject(n)?(l=s,c=n,n=s=void 0):a.isObject(s)&&(l=c,c=s,s=void 0),i.call(this,e,c),!a.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!a.isString(r))throw TypeError("type must be a string");if(void 0!==n&&!u.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==s&&!a.isString(s))throw TypeError("extend must be a string");"proto3_optional"===n&&(n="optional"),this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=t,this.extend=s||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==o.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=l}c.fromJSON=function(e,t){return new c(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(c.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),c.prototype.setOption=function(e,t,r){return"packed"===e&&(this._packed=null),i.prototype.setOption.call(this,e,t,r)},c.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return a.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},c.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=o.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof n?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof s&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof s)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=a.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var e;a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,e=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,e=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=e}return this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof n&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this)},c.d=function(e,t,r,i){return"function"==typeof t?t=a.decorateType(t).name:t&&"object"==typeof t&&(t=a.decorateEnum(t).name),function(n,s){a.decorateType(n.constructor).add(new c(s,e,t,r,{default:i}))}},c._configure=function(e){n=e}},176:(e,t,r)=>{"use strict";var i=e.exports=r(365);i.build="light",i.load=function(e,t,r){return"function"==typeof t?(r=t,t=new i.Root):t||(t=new i.Root),t.load(e,r)},i.loadSync=function(e,t){return t||(t=new i.Root),t.loadSync(e)},i.encoder=r(860),i.decoder=r(388),i.verifier=r(12),i.converter=r(32),i.ReflectionObject=r(883),i.Namespace=r(225),i.Root=r(554),i.Enum=r(969),i.Type=r(25),i.Field=r(149),i.OneOf=r(288),i.MapField=r(198),i.Service=r(868),i.Method=r(240),i.Message=r(48),i.wrappers=r(486),i.types=r(374),i.util=r(827),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},365:(e,t,r)=>{"use strict";var i=t;function n(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}i.build="minimal",i.Writer=r(147),i.BufferWriter=r(55),i.Reader=r(74),i.BufferReader=r(69),i.util=r(835),i.rpc=r(876),i.roots=r(7),i.configure=n,n()},189:(e,t,r)=>{"use strict";var i=e.exports=r(176);i.build="full",i.tokenize=r(729),i.parse=r(231),i.common=r(308),i.Root._configure(i.Type,i.parse,i.common)},198:(e,t,r)=>{"use strict";e.exports=o;var i=r(149);((o.prototype=Object.create(i.prototype)).constructor=o).className="MapField";var n=r(374),s=r(827);function o(e,t,r,n,o,a){if(i.call(this,e,t,n,void 0,void 0,o,a),!s.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}o.fromJSON=function(e,t){return new o(e,t.id,t.keyType,t.type,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},o.prototype.resolve=function(){if(this.resolved)return this;if(void 0===n.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return i.prototype.resolve.call(this)},o.d=function(e,t,r){return"function"==typeof r?r=s.decorateType(r).name:r&&"object"==typeof r&&(r=s.decorateEnum(r).name),function(i,n){s.decorateType(i.constructor).add(new o(n,e,t,r))}}},48:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,i.toJSONOptions)}},240:(e,t,r)=>{"use strict";e.exports=s;var i=r(883);((s.prototype=Object.create(i.prototype)).constructor=s).className="Method";var n=r(827);function s(e,t,r,s,o,a,u,c,l){if(n.isObject(o)?(u=o,o=a=void 0):n.isObject(a)&&(u=a,a=void 0),void 0!==t&&!n.isString(t))throw TypeError("type must be a string");if(!n.isString(r))throw TypeError("requestType must be a string");if(!n.isString(s))throw TypeError("responseType must be a string");i.call(this,e,u),this.type=t||"rpc",this.requestType=r,this.requestStream=!!o||void 0,this.responseType=s,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=c,this.parsedOptions=l}s.fromJSON=function(e,t){return new s(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return n.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",t?this.comment:void 0,"parsedOptions",this.parsedOptions])},s.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),i.prototype.resolve.call(this))}},225:(e,t,r)=>{"use strict";e.exports=h;var i=r(883);((h.prototype=Object.create(i.prototype)).constructor=h).className="Namespace";var n,s,o,a=r(149),u=r(288),c=r(827);function l(e,t){if(e&&e.length){for(var r={},i=0;i<e.length;++i)r[e[i].name]=e[i].toJSON(t);return r}}function h(e,t){i.call(this,e,t),this.nested=void 0,this._nestedArray=null}function d(e){return e._nestedArray=null,e}h.fromJSON=function(e,t){return new h(e,t.options).addJSON(t.nested)},h.arrayToJSON=l,h.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},h.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(h.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=c.toArray(this.nested))}}),h.prototype.toJSON=function(e){return c.toObject(["options",this.options,"nested",l(this.nestedArray,e)])},h.prototype.addJSON=function(e){if(e)for(var t,r=Object.keys(e),i=0;i<r.length;++i)t=e[r[i]],this.add((void 0!==t.fields?n.fromJSON:void 0!==t.values?o.fromJSON:void 0!==t.methods?s.fromJSON:void 0!==t.id?a.fromJSON:h.fromJSON)(r[i],t));return this},h.prototype.get=function(e){return this.nested&&this.nested[e]||null},h.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof o)return this.nested[e].values;throw Error("no such enum: "+e)},h.prototype.add=function(e){if(!(e instanceof a&&void 0!==e.extend||e instanceof n||e instanceof o||e instanceof s||e instanceof h||e instanceof u))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof h&&e instanceof h)||t instanceof n||t instanceof s)throw Error("duplicate name '"+e.name+"' in "+this);for(var r=t.nestedArray,i=0;i<r.length;++i)e.add(r[i]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return this.nested[e.name]=e,e.onAdd(this),d(this)},h.prototype.remove=function(e){if(!(e instanceof i))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=void 0),e.onRemove(this),d(this)},h.prototype.define=function(e,t){if(c.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;e.length>0;){var i=e.shift();if(r.nested&&r.nested[i]){if(!((r=r.nested[i])instanceof h))throw Error("path conflicts with non-namespace objects")}else r.add(r=new h(i))}return t&&r.addJSON(t),r},h.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof h?e[t++].resolveAll():e[t++].resolve();return this.resolve()},h.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),c.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var i=this.get(e[0]);if(i){if(1===e.length){if(!t||t.indexOf(i.constructor)>-1)return i}else if(i instanceof h&&(i=i.lookup(e.slice(1),t,!0)))return i}else for(var n=0;n<this.nestedArray.length;++n)if(this._nestedArray[n]instanceof h&&(i=this._nestedArray[n].lookup(e,t,!0)))return i;return null===this.parent||r?null:this.parent.lookup(e,t)},h.prototype.lookupType=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such type: "+e);return t},h.prototype.lookupEnum=function(e){var t=this.lookup(e,[o]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},h.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[n,o]);if(!t)throw Error("no such Type or Enum '"+e+"' in "+this);return t},h.prototype.lookupService=function(e){var t=this.lookup(e,[s]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},h._configure=function(e,t,r){n=e,s=t,o=r}},883:(e,t,r)=>{"use strict";e.exports=s,s.className="ReflectionObject";var i,n=r(827);function s(e,t){if(!n.isString(e))throw TypeError("name must be a string");if(t&&!n.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(s.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),s.prototype.toJSON=function(){throw Error()},s.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var t=e.root;t instanceof i&&t._handleAdd(this)},s.prototype.onRemove=function(e){var t=e.root;t instanceof i&&t._handleRemove(this),this.parent=null,this.resolved=!1},s.prototype.resolve=function(){return this.resolved||this.root instanceof i&&(this.resolved=!0),this},s.prototype.getOption=function(e){if(this.options)return this.options[e]},s.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},s.prototype.setParsedOption=function(e,t,r){this.parsedOptions||(this.parsedOptions=[]);var i=this.parsedOptions;if(r){var s=i.find((function(t){return Object.prototype.hasOwnProperty.call(t,e)}));if(s){var o=s[e];n.setProperty(o,r,t)}else(s={})[e]=n.setProperty({},r,t),i.push(s)}else{var a={};a[e]=t,i.push(a)}return this},s.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)this.setOption(r[i],e[r[i]],t);return this},s.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},s._configure=function(e){i=e}},288:(e,t,r)=>{"use strict";e.exports=o;var i=r(883);((o.prototype=Object.create(i.prototype)).constructor=o).className="OneOf";var n=r(149),s=r(827);function o(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),i.call(this,e,r),void 0!==t&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}function a(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}o.fromJSON=function(e,t){return new o(e,t.oneof,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},o.prototype.add=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),e.partOf=this,a(this),this},o.prototype.remove=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(e);if(t<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(t,1),(t=this.oneof.indexOf(e.name))>-1&&this.oneof.splice(t,1),e.partOf=null,this},o.prototype.onAdd=function(e){i.prototype.onAdd.call(this,e);for(var t=0;t<this.oneof.length;++t){var r=e.get(this.oneof[t]);r&&!r.partOf&&(r.partOf=this,this.fieldsArray.push(r))}a(this)},o.prototype.onRemove=function(e){for(var t,r=0;r<this.fieldsArray.length;++r)(t=this.fieldsArray[r]).parent&&t.parent.remove(t);i.prototype.onRemove.call(this,e)},o.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,r){s.decorateType(t.constructor).add(new o(r,e)),Object.defineProperty(t,r,{get:s.oneOfGetter(e),set:s.oneOfSetter(e)})}}},231:(e,t,r)=>{"use strict";e.exports=T,T.filename=null,T.defaults={keepCase:!1};var i=r(729),n=r(554),s=r(25),o=r(149),a=r(198),u=r(288),c=r(969),l=r(868),h=r(240),d=r(374),p=r(827),f=/^[1-9][0-9]*$/,A=/^-?[1-9][0-9]*$/,M=/^0[x][0-9a-fA-F]+$/,g=/^-?0[x][0-9a-fA-F]+$/,y=/^0[0-7]+$/,v=/^-?0[0-7]+$/,m=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,N=/^[a-zA-Z_][a-zA-Z_0-9]*$/,D=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,w=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function T(e,t,r){t instanceof n||(r=t,t=new n),r||(r=T.defaults);var x,E,j,I,b,z=r.preferTrailingComment||!1,O=i(e,r.alternateCommentMode||!1),S=O.next,L=O.push,C=O.peek,k=O.skip,P=O.cmnt,_=!0,B=!1,U=t,R=r.keepCase?function(e){return e}:p.camelCase;function Q(e,t,r){var i=T.filename;return r||(T.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(i?i+", ":"")+"line "+O.line+")")}function Y(){var e,t=[];do{if('"'!==(e=S())&&"'"!==e)throw Q(e);t.push(S()),k(e),e=C()}while('"'===e||"'"===e);return t.join("")}function F(e){var t=S();switch(t){case"'":case'"':return L(t),Y();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return function(e,t){var r=1;switch("-"===e.charAt(0)&&(r=-1,e=e.substring(1)),e){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(f.test(e))return r*parseInt(e,10);if(M.test(e))return r*parseInt(e,16);if(y.test(e))return r*parseInt(e,8);if(m.test(e))return r*parseFloat(e);throw Q(e,"number",!0)}(t)}catch(r){if(e&&D.test(t))return t;throw Q(t,"value")}}function V(e,t){var r,i;do{!t||'"'!==(r=C())&&"'"!==r?e.push([i=H(S()),k("to",!0)?H(S()):i]):e.push(Y())}while(k(",",!0));k(";")}function H(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!t&&"-"===e.charAt(0))throw Q(e,"id");if(A.test(e))return parseInt(e,10);if(g.test(e))return parseInt(e,16);if(v.test(e))return parseInt(e,8);throw Q(e,"id")}function G(){if(void 0!==x)throw Q("package");if(x=S(),!D.test(x))throw Q(x,"name");U=U.define(x),k(";")}function q(){var e,t=C();switch(t){case"weak":e=j||(j=[]),S();break;case"public":S();default:e=E||(E=[])}t=Y(),k(";"),e.push(t)}function W(){if(k("="),I=Y(),!(B="proto3"===I)&&"proto2"!==I)throw Q(I,"syntax");k(";")}function Z(e,t){switch(t){case"option":return J(e,t),k(";"),!0;case"message":return function(e,t){if(!N.test(t=S()))throw Q(t,"type name");var r=new s(t);X(r,(function(e){if(!Z(r,e))switch(e){case"map":!function(e){k("<");var t=S();if(void 0===d.mapKey[t])throw Q(t,"type");k(",");var r=S();if(!D.test(r))throw Q(r,"type");k(">");var i=S();if(!N.test(i))throw Q(i,"name");k("=");var n=new a(R(i),H(S()),t,r);X(n,(function(e){if("option"!==e)throw Q(e);J(n,e),k(";")}),(function(){te(n)})),e.add(n)}(r);break;case"required":case"repeated":K(r,e);break;case"optional":K(r,B?"proto3_optional":"optional");break;case"oneof":!function(e,t){if(!N.test(t=S()))throw Q(t,"name");var r=new u(R(t));X(r,(function(e){"option"===e?(J(r,e),k(";")):(L(e),K(r,"optional"))})),e.add(r)}(r,e);break;case"extensions":V(r.extensions||(r.extensions=[]));break;case"reserved":V(r.reserved||(r.reserved=[]),!0);break;default:if(!B||!D.test(e))throw Q(e);L(e),K(r,"optional")}})),e.add(r)}(e,t),!0;case"enum":return function(e,t){if(!N.test(t=S()))throw Q(t,"name");var r=new c(t);X(r,(function(e){switch(e){case"option":J(r,e),k(";");break;case"reserved":V(r.reserved||(r.reserved=[]),!0);break;default:!function(e,t){if(!N.test(t))throw Q(t,"name");k("=");var r=H(S(),!0),i={};X(i,(function(e){if("option"!==e)throw Q(e);J(i,e),k(";")}),(function(){te(i)})),e.add(t,r,i.comment)}(r,e)}})),e.add(r)}(e,t),!0;case"service":return function(e,t){if(!N.test(t=S()))throw Q(t,"service name");var r=new l(t);X(r,(function(e){if(!Z(r,e)){if("rpc"!==e)throw Q(e);!function(e,t){var r=P(),i=t;if(!N.test(t=S()))throw Q(t,"name");var n,s,o,a,u=t;if(k("("),k("stream",!0)&&(s=!0),!D.test(t=S()))throw Q(t);if(n=t,k(")"),k("returns"),k("("),k("stream",!0)&&(a=!0),!D.test(t=S()))throw Q(t);o=t,k(")");var c=new h(u,i,n,o,s,a);c.comment=r,X(c,(function(e){if("option"!==e)throw Q(e);J(c,e),k(";")})),e.add(c)}(r,e)}})),e.add(r)}(e,t),!0;case"extend":return function(e,t){if(!D.test(t=S()))throw Q(t,"reference");var r=t;X(null,(function(t){switch(t){case"required":case"repeated":K(e,t,r);break;case"optional":K(e,B?"proto3_optional":"optional",r);break;default:if(!B||!D.test(t))throw Q(t);L(t),K(e,"optional",r)}}))}(e,t),!0}return!1}function X(e,t,r){var i=O.line;if(e&&("string"!=typeof e.comment&&(e.comment=P()),e.filename=T.filename),k("{",!0)){for(var n;"}"!==(n=S());)t(n);k(";",!0)}else r&&r(),k(";"),e&&("string"!=typeof e.comment||z)&&(e.comment=P(i)||e.comment)}function K(e,t,r){var i=S();if("group"!==i){if(!D.test(i))throw Q(i,"type");var n=S();if(!N.test(n))throw Q(n,"name");n=R(n),k("=");var a=new o(n,H(S()),i,t,r);if(X(a,(function(e){if("option"!==e)throw Q(e);J(a,e),k(";")}),(function(){te(a)})),"proto3_optional"===t){var c=new u("_"+n);a.setOption("proto3_optional",!0),c.add(a),e.add(c)}else e.add(a);B||!a.repeated||void 0===d.packed[i]&&void 0!==d.basic[i]||a.setOption("packed",!1,!0)}else!function(e,t){var r=S();if(!N.test(r))throw Q(r,"name");var i=p.lcFirst(r);r===i&&(r=p.ucFirst(r)),k("=");var n=H(S()),a=new s(r);a.group=!0;var u=new o(i,n,r,t);u.filename=T.filename,X(a,(function(e){switch(e){case"option":J(a,e),k(";");break;case"required":case"repeated":K(a,e);break;case"optional":K(a,B?"proto3_optional":"optional");break;default:throw Q(e)}})),e.add(a).add(u)}(e,t)}function J(e,t){var r=k("(",!0);if(!D.test(t=S()))throw Q(t,"name");var i,n=t,s=n;r&&(k(")"),s=n="("+n+")",t=C(),w.test(t)&&(i=t.substr(1),n+=t,S())),k("="),function(e,t,r,i){e.setParsedOption&&e.setParsedOption(t,r,i)}(e,s,$(e,n),i)}function $(e,t){if(k("{",!0)){for(var r={};!k("}",!0);){if(!N.test(b=S()))throw Q(b,"name");var i,n=b;"{"===C()?i=$(e,t+"."+b):(k(":"),"{"===C()?i=$(e,t+"."+b):(i=F(!0),ee(e,t+"."+b,i)));var s=r[n];s&&(i=[].concat(s).concat(i)),r[n]=i,k(",",!0)}return r}var o=F(!0);return ee(e,t,o),o}function ee(e,t,r){e.setOption&&e.setOption(t,r)}function te(e){if(k("[",!0)){do{J(e,"option")}while(k(",",!0));k("]")}return e}for(;null!==(b=S());)switch(b){case"package":if(!_)throw Q(b);G();break;case"import":if(!_)throw Q(b);q();break;case"syntax":if(!_)throw Q(b);W();break;case"option":J(U,b),k(";");break;default:if(Z(U,b)){_=!1;continue}throw Q(b)}return T.filename=null,{package:x,imports:E,weakImports:j,syntax:I,root:t}}},74:(e,t,r)=>{"use strict";e.exports=u;var i,n=r(835),s=n.LongBits,o=n.utf8;function a(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var c,l="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},h=function(){return n.Buffer?function(e){return(u.create=function(e){return n.Buffer.isBuffer(e)?new i(e):l(e)})(e)}:l};function d(){var e=new s(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw a(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw a(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function p(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw a(this,8);return new s(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}u.create=h(),u.prototype._slice=n.Array.prototype.subarray||n.Array.prototype.slice,u.prototype.uint32=(c=4294967295,function(){if(c=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return c;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return c}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|p(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var e=n.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var e=n.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw a(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},u.prototype.string=function(){var e=this.bytes();return o.read(e,0,e.length)},u.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw a(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){i=e,u.create=h(),i._configure();var t=n.Long?"toLong":"toNumber";n.merge(u.prototype,{int64:function(){return d.call(this)[t](!1)},uint64:function(){return d.call(this)[t](!0)},sint64:function(){return d.call(this).zzDecode()[t](!1)},fixed64:function(){return f.call(this)[t](!0)},sfixed64:function(){return f.call(this)[t](!1)}})}},69:(e,t,r)=>{"use strict";e.exports=s;var i=r(74);(s.prototype=Object.create(i.prototype)).constructor=s;var n=r(835);function s(e){i.call(this,e)}s._configure=function(){n.Buffer&&(s.prototype._slice=n.Buffer.prototype.slice)},s.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},s._configure()},554:(e,t,r)=>{"use strict";e.exports=h;var i=r(225);((h.prototype=Object.create(i.prototype)).constructor=h).className="Root";var n,s,o,a=r(149),u=r(969),c=r(288),l=r(827);function h(e){i.call(this,"",e),this.deferred=[],this.files=[]}function d(){}h.fromJSON=function(e,t){return t||(t=new h),e.options&&t.setOptions(e.options),t.addJSON(e.nested)},h.prototype.resolvePath=l.path.resolve,h.prototype.fetch=l.fetch,h.prototype.load=function e(t,r,i){"function"==typeof r&&(i=r,r=void 0);var n=this;if(!i)return l.asPromise(e,n,t,r);var a=i===d;function u(e,t){if(i){var r=i;if(i=null,a)throw e;r(e,t)}}function c(e){var t=e.lastIndexOf("google/protobuf/");if(t>-1){var r=e.substring(t);if(r in o)return r}return null}function h(e,t){try{if(l.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),l.isString(t)){s.filename=e;var i,o=s(t,n,r),h=0;if(o.imports)for(;h<o.imports.length;++h)(i=c(o.imports[h])||n.resolvePath(e,o.imports[h]))&&p(i);if(o.weakImports)for(h=0;h<o.weakImports.length;++h)(i=c(o.weakImports[h])||n.resolvePath(e,o.weakImports[h]))&&p(i,!0)}else n.setOptions(t.options).addJSON(t.nested)}catch(e){u(e)}a||f||u(null,n)}function p(e,t){if(!(n.files.indexOf(e)>-1))if(n.files.push(e),e in o)a?h(e,o[e]):(++f,setTimeout((function(){--f,h(e,o[e])})));else if(a){var r;try{r=l.fs.readFileSync(e).toString("utf8")}catch(e){return void(t||u(e))}h(e,r)}else++f,n.fetch(e,(function(r,s){--f,i&&(r?t?f||u(null,n):u(r):h(e,s))}))}var f=0;l.isString(t)&&(t=[t]);for(var A,M=0;M<t.length;++M)(A=n.resolvePath("",t[M]))&&p(A);if(a)return n;f||u(null,n)},h.prototype.loadSync=function(e,t){if(!l.isNode)throw Error("not supported");return this.load(e,t,d)},h.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map((function(e){return"'extend "+e.extend+"' in "+e.parent.fullName})).join(", "));return i.prototype.resolveAll.call(this)};var p=/^[A-Z]/;function f(e,t){var r=t.parent.lookup(t.extend);if(r){var i=new a(t.fullName,t.id,t.type,t.rule,void 0,t.options);return i.declaringField=t,t.extensionField=i,r.add(i),!0}return!1}h.prototype._handleAdd=function(e){if(e instanceof a)void 0===e.extend||e.extensionField||f(0,e)||this.deferred.push(e);else if(e instanceof u)p.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof c)){if(e instanceof n)for(var t=0;t<this.deferred.length;)f(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var r=0;r<e.nestedArray.length;++r)this._handleAdd(e._nestedArray[r]);p.test(e.name)&&(e.parent[e.name]=e)}},h.prototype._handleRemove=function(e){if(e instanceof a){if(void 0!==e.extend)if(e.extensionField)e.extensionField.parent.remove(e.extensionField),e.extensionField=null;else{var t=this.deferred.indexOf(e);t>-1&&this.deferred.splice(t,1)}}else if(e instanceof u)p.test(e.name)&&delete e.parent[e.name];else if(e instanceof i){for(var r=0;r<e.nestedArray.length;++r)this._handleRemove(e._nestedArray[r]);p.test(e.name)&&delete e.parent[e.name]}},h._configure=function(e,t,r){n=e,s=t,o=r}},7:e=>{"use strict";e.exports={}},876:(e,t,r)=>{"use strict";t.Service=r(380)},380:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(n.prototype=Object.create(i.EventEmitter.prototype)).constructor=n,n.prototype.rpcCall=function e(t,r,n,s,o){if(!s)throw TypeError("request must be specified");var a=this;if(!o)return i.asPromise(e,a,t,r,n,s);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](s).finish(),(function(e,r){if(e)return a.emit("error",e,t),o(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return a.emit("error",e,t),o(e)}return a.emit("data",r,t),o(null,r)}a.end(!0)}))}catch(e){return a.emit("error",e,t),void setTimeout((function(){o(e)}),0)}else setTimeout((function(){o(Error("already ended"))}),0)},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},868:(e,t,r)=>{"use strict";e.exports=a;var i=r(225);((a.prototype=Object.create(i.prototype)).constructor=a).className="Service";var n=r(240),s=r(827),o=r(876);function a(e,t){i.call(this,e,t),this.methods={},this._methodsArray=null}function u(e){return e._methodsArray=null,e}a.fromJSON=function(e,t){var r=new a(e,t.options);if(t.methods)for(var i=Object.keys(t.methods),s=0;s<i.length;++s)r.add(n.fromJSON(i[s],t.methods[i[s]]));return t.nested&&r.addJSON(t.nested),r.comment=t.comment,r},a.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return s.toObject(["options",t&&t.options||void 0,"methods",i.arrayToJSON(this.methodsArray,e)||{},"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},Object.defineProperty(a.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=s.toArray(this.methods))}}),a.prototype.get=function(e){return this.methods[e]||i.prototype.get.call(this,e)},a.prototype.resolveAll=function(){for(var e=this.methodsArray,t=0;t<e.length;++t)e[t].resolve();return i.prototype.resolve.call(this)},a.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);return e instanceof n?(this.methods[e.name]=e,e.parent=this,u(this)):i.prototype.add.call(this,e)},a.prototype.remove=function(e){if(e instanceof n){if(this.methods[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.methods[e.name],e.parent=null,u(this)}return i.prototype.remove.call(this,e)},a.prototype.create=function(e,t,r){for(var i,n=new o.Service(e,t,r),a=0;a<this.methodsArray.length;++a){var u=s.lcFirst((i=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");n[u]=s.codegen(["r","c"],s.isReserved(u)?u+"_":u)("return this.rpcCall(m,q,s,r,c)")({m:i,q:i.resolvedRequestType.ctor,s:i.resolvedResponseType.ctor})}return n}},729:e=>{"use strict";e.exports=h;var t=/[\s{}=;:[\],'"()<>]/g,r=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,i=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,n=/^ *[*/]+ */,s=/^\s*\*?\/*/,o=/\n/g,a=/\s/,u=/\\(.?)/g,c={0:"\0",r:"\r",n:"\n",t:"\t"};function l(e){return e.replace(u,(function(e,t){switch(t){case"\\":case"":return t;default:return c[t]||""}}))}function h(e,u){e=e.toString();var c=0,h=e.length,d=1,p=null,f=null,A=0,M=!1,g=!1,y=[],v=null;function m(e){return Error("illegal "+e+" (line "+d+")")}function N(t){return e.charAt(t)}function D(t,r,i){p=e.charAt(t++),A=d,M=!1,g=i;var a,c=t-(u?2:3);do{if(--c<0||"\n"===(a=e.charAt(c))){M=!0;break}}while(" "===a||"\t"===a);for(var l=e.substring(t,r).split(o),h=0;h<l.length;++h)l[h]=l[h].replace(u?s:n,"").trim();f=l.join("\n").trim()}function w(t){var r=T(t),i=e.substring(t,r);return/^\s*\/{1,2}/.test(i)}function T(e){for(var t=e;t<h&&"\n"!==N(t);)t++;return t}function x(){if(y.length>0)return y.shift();if(v)return function(){var t="'"===v?i:r;t.lastIndex=c-1;var n=t.exec(e);if(!n)throw m("string");return c=t.lastIndex,E(v),v=null,l(n[1])}();var n,s,o,p,f,A=0===c;do{if(c===h)return null;for(n=!1;a.test(o=N(c));)if("\n"===o&&(A=!0,++d),++c===h)return null;if("/"===N(c)){if(++c===h)throw m("comment");if("/"===N(c))if(u){if(p=c,f=!1,w(c)){f=!0;do{if((c=T(c))===h)break;c++}while(w(c))}else c=Math.min(h,T(c)+1);f&&D(p,c,A),d++,n=!0}else{for(f="/"===N(p=c+1);"\n"!==N(++c);)if(c===h)return null;++c,f&&D(p,c-1,A),++d,n=!0}else{if("*"!==(o=N(c)))return"/";p=c+1,f=u||"*"===N(p);do{if("\n"===o&&++d,++c===h)throw m("comment");s=o,o=N(c)}while("*"!==s||"/"!==o);++c,f&&D(p,c-2,A),n=!0}}}while(n);var M=c;if(t.lastIndex=0,!t.test(N(M++)))for(;M<h&&!t.test(N(M));)++M;var g=e.substring(c,c=M);return'"'!==g&&"'"!==g||(v=g),g}function E(e){y.push(e)}function j(){if(!y.length){var e=x();if(null===e)return null;E(e)}return y[0]}return Object.defineProperty({next:x,peek:j,push:E,skip:function(e,t){var r=j();if(r===e)return x(),!0;if(!t)throw m("token '"+r+"', '"+e+"' expected");return!1},cmnt:function(e){var t=null;return void 0===e?A===d-1&&(u||"*"===p||M)&&(t=g?f:null):(A<e&&j(),A!==e||M||!u&&"/"!==p||(t=g?null:f)),t}},"line",{get:function(){return d}})}h.unescape=l},25:(e,t,r)=>{"use strict";e.exports=y;var i=r(225);((y.prototype=Object.create(i.prototype)).constructor=y).className="Type";var n=r(969),s=r(288),o=r(149),a=r(198),u=r(868),c=r(48),l=r(74),h=r(147),d=r(827),p=r(860),f=r(388),A=r(12),M=r(32),g=r(486);function y(e,t){i.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function v(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Object.defineProperties(y.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],i=r.id;if(this._fieldsById[i])throw Error("duplicate id "+i+" in "+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=d.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=d.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=y.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof c||((e.prototype=new c).constructor=e,d.merge(e.prototype,t)),e.$type=e.prototype.$type=this,d.merge(e,c,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var i={};for(r=0;r<this.oneofsArray.length;++r)i[this._oneofsArray[r].resolve().name]={get:d.oneOfGetter(this._oneofsArray[r].oneof),set:d.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,i)}}}),y.generateConstructor=function(e){for(var t,r=d.codegen(["p"],e.name),i=0;i<e.fieldsArray.length;++i)(t=e._fieldsArray[i]).map?r("this%s={}",d.safeProp(t.name)):t.repeated&&r("this%s=[]",d.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},y.fromJSON=function(e,t){var r=new y(e,t.options);r.extensions=t.extensions,r.reserved=t.reserved;for(var c=Object.keys(t.fields),l=0;l<c.length;++l)r.add((void 0!==t.fields[c[l]].keyType?a.fromJSON:o.fromJSON)(c[l],t.fields[c[l]]));if(t.oneofs)for(c=Object.keys(t.oneofs),l=0;l<c.length;++l)r.add(s.fromJSON(c[l],t.oneofs[c[l]]));if(t.nested)for(c=Object.keys(t.nested),l=0;l<c.length;++l){var h=t.nested[c[l]];r.add((void 0!==h.id?o.fromJSON:void 0!==h.fields?y.fromJSON:void 0!==h.values?n.fromJSON:void 0!==h.methods?u.fromJSON:i.fromJSON)(c[l],h))}return t.extensions&&t.extensions.length&&(r.extensions=t.extensions),t.reserved&&t.reserved.length&&(r.reserved=t.reserved),t.group&&(r.group=!0),t.comment&&(r.comment=t.comment),r},y.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return d.toObject(["options",t&&t.options||void 0,"oneofs",i.arrayToJSON(this.oneofsArray,e),"fields",i.arrayToJSON(this.fieldsArray.filter((function(e){return!e.declaringField})),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},y.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();var r=this.oneofsArray;for(t=0;t<r.length;)r[t++].resolve();return i.prototype.resolveAll.call(this)},y.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},y.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof o&&void 0===e.extend){if(this._fieldsById?this._fieldsById[e.id]:this.fieldsById[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),this.fields[e.name]=e,e.message=this,e.onAdd(this),v(this)}return e instanceof s?(this.oneofs||(this.oneofs={}),this.oneofs[e.name]=e,e.onAdd(this),v(this)):i.prototype.add.call(this,e)},y.prototype.remove=function(e){if(e instanceof o&&void 0===e.extend){if(!this.fields||this.fields[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.fields[e.name],e.parent=null,e.onRemove(this),v(this)}if(e instanceof s){if(!this.oneofs||this.oneofs[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),v(this)}return i.prototype.remove.call(this,e)},y.prototype.isReservedId=function(e){return i.isReservedId(this.reserved,e)},y.prototype.isReservedName=function(e){return i.isReservedName(this.reserved,e)},y.prototype.create=function(e){return new this.ctor(e)},y.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=p(this)({Writer:h,types:t,util:d}),this.decode=f(this)({Reader:l,types:t,util:d}),this.verify=A(this)({types:t,util:d}),this.fromObject=M.fromObject(this)({types:t,util:d}),this.toObject=M.toObject(this)({types:t,util:d});var i=g[e];if(i){var n=Object.create(this);n.fromObject=this.fromObject,this.fromObject=i.fromObject.bind(n),n.toObject=this.toObject,this.toObject=i.toObject.bind(n)}return this},y.prototype.encode=function(e,t){return this.setup().encode(e,t)},y.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},y.prototype.decode=function(e,t){return this.setup().decode(e,t)},y.prototype.decodeDelimited=function(e){return e instanceof l||(e=l.create(e)),this.decode(e,e.uint32())},y.prototype.verify=function(e){return this.setup().verify(e)},y.prototype.fromObject=function(e){return this.setup().fromObject(e)},y.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},y.d=function(e){return function(t){d.decorateType(t,e)}}},374:(e,t,r)=>{"use strict";var i=t,n=r(827),s=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function o(e,t){var r=0,i={};for(t|=0;r<e.length;)i[s[r+t]]=e[r++];return i}i.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",n.emptyArray,null]),i.long=o([0,0,0,1,1],7),i.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])},827:(e,t,r)=>{"use strict";var i,n,s=e.exports=r(835),o=r(7);s.codegen=r(679),s.fetch=r(11),s.path=r(49),s.fs=s.inquire("fs"),s.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),i=0;i<t.length;)r[i]=e[t[i++]];return r}return[]},s.toObject=function(e){for(var t={},r=0;r<e.length;){var i=e[r++],n=e[r++];void 0!==n&&(t[i]=n)}return t};var a=/\\/g,u=/"/g;s.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},s.safeProp=function(e){return!/^[$\w_]+$/.test(e)||s.isReserved(e)?'["'+e.replace(a,"\\\\").replace(u,'\\"')+'"]':"."+e},s.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var c=/_([a-z])/g;s.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(c,(function(e,t){return t.toUpperCase()}))},s.compareFieldsById=function(e,t){return e.id-t.id},s.decorateType=function(e,t){if(e.$type)return t&&e.$type.name!==t&&(s.decorateRoot.remove(e.$type),e.$type.name=t,s.decorateRoot.add(e.$type)),e.$type;i||(i=r(25));var n=new i(t||e.name);return s.decorateRoot.add(n),n.ctor=e,Object.defineProperty(e,"$type",{value:n,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:n,enumerable:!1}),n};var l=0;s.decorateEnum=function(e){if(e.$type)return e.$type;n||(n=r(969));var t=new n("Enum"+l++,e);return s.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t},s.setProperty=function(e,t,r){if("object"!=typeof e)throw TypeError("dst must be an object");if(!t)throw TypeError("path must be specified");return function e(t,r,i){var n=r.shift();if(r.length>0)t[n]=e(t[n]||{},r,i);else{var s=t[n];s&&(i=[].concat(s).concat(i)),t[n]=i}return t}(e,t=t.split("."),r)},Object.defineProperty(s,"decorateRoot",{get:function(){return o.decorated||(o.decorated=new(r(554)))}})},600:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e,t){this.lo=e>>>0,this.hi=t>>>0}var s=n.zero=new n(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var o=n.zeroHash="\0\0\0\0\0\0\0\0";n.fromNumber=function(e){if(0===e)return s;var t=e<0;t&&(e=-e);var r=e>>>0,i=(e-r)/4294967296>>>0;return t&&(i=~i>>>0,r=~r>>>0,++r>4294967295&&(r=0,++i>4294967295&&(i=0))),new n(r,i)},n.from=function(e){if("number"==typeof e)return n.fromNumber(e);if(i.isString(e)){if(!i.Long)return n.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new n(e.low>>>0,e.high>>>0):s},n.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},n.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var a=String.prototype.charCodeAt;n.fromHash=function(e){return e===o?s:new n((a.call(e,0)|a.call(e,1)<<8|a.call(e,2)<<16|a.call(e,3)<<24)>>>0,(a.call(e,4)|a.call(e,5)<<8|a.call(e,6)<<16|a.call(e,7)<<24)>>>0)},n.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},n.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},n.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},n.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},835:function(e,t,r){"use strict";var i=t;function n(e,t,r){for(var i=Object.keys(t),n=0;n<i.length;++n)void 0!==e[i[n]]&&r||(e[i[n]]=t[i[n]]);return e}function s(e){function t(e,r){if(!(this instanceof t))return new t(e,r);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),r&&n(this,r)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=r(383),i.base64=r(417),i.EventEmitter=r(516),i.float=r(787),i.inquire=r(795),i.utf8=r(893),i.pool=r(476),i.LongBits=r(600),i.isNode=Boolean(void 0!==r.g&&r.g&&r.g.process&&r.g.process.versions&&r.g.process.versions.node),i.global=i.isNode&&r.g||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var r=e[t];return!(null==r||!e.hasOwnProperty(t))&&("object"!=typeof r||(Array.isArray(r)?r.length:Object.keys(r).length)>0)},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var r=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},i.merge=n,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=s,i.ProtocolError=s("ProtocolError"),i.oneOfGetter=function(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=1;return function(){for(var e=Object.keys(this),r=e.length-1;r>-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},i.oneOfSetter=function(e){return function(t){for(var r=0;r<e.length;++r)e[r]!==t&&delete this[e[r]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,r){return new e(t,r)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},12:(e,t,r)=>{"use strict";e.exports=function(e){var t=n.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r={};e.oneofsArray.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var u=e._fieldsArray[i].resolve(),c="m"+n.safeProp(u.name);if(u.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",c,u.name),u.map)t("if(!util.isObject(%s))",c)("return%j",s(u,"object"))("var k=Object.keys(%s)",c)("for(var i=0;i<k.length;++i){"),a(t,u,"k[i]"),o(t,u,i,c+"[k[i]]")("}");else if(u.repeated)t("if(!Array.isArray(%s))",c)("return%j",s(u,"array"))("for(var i=0;i<%s.length;++i){",c),o(t,u,i,c+"[i]")("}");else{if(u.partOf){var l=n.safeProp(u.partOf.name);1===r[u.partOf.name]&&t("if(p%s===1)",l)("return%j",u.partOf.name+": multiple values"),r[u.partOf.name]=1,t("p%s=1",l)}o(t,u,i,c)}u.optional&&t("}")}return t("return null")};var i=r(969),n=r(827);function s(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function o(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof i){e("switch(%s){",n)("default:")("return%j",s(t,"enum value"));for(var o=Object.keys(t.resolvedType.values),a=0;a<o.length;++a)e("case %i:",t.resolvedType.values[o[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",s(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",s(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",s(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",s(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",s(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",s(t,"buffer"))}return e}function a(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",s(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",s(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",s(t,"boolean key"))}return e}},486:(e,t,r)=>{"use strict";var i=t,n=r(48);i[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var i="."===e["@type"].charAt(0)?e["@type"].substr(1):e["@type"];return-1===i.indexOf("/")&&(i="/"+i),this.create({type_url:i,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r="",i="";if(t&&t.json&&e.type_url&&e.value){i=e.type_url.substring(e.type_url.lastIndexOf("/")+1),r=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var s=this.lookup(i);s&&(e=s.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof n){var o=e.$type.toObject(e,t);return""===r&&(r="type.googleapis.com/"),i=r+("."===e.$type.fullName[0]?e.$type.fullName.substr(1):e.$type.fullName),o["@type"]=i,o}return this.toObject(e,t)}}},147:(e,t,r)=>{"use strict";e.exports=h;var i,n=r(835),s=n.LongBits,o=n.base64,a=n.utf8;function u(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function c(){}function l(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new u(c,0,0),this.tail=this.head,this.states=null}var d=function(){return n.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}};function p(e,t,r){t[r]=255&e}function f(e,t){this.len=e,this.next=void 0,this.val=t}function A(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function M(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}h.create=d(),h.alloc=function(e){return new n.Array(e)},n.Array!==Array&&(h.alloc=n.pool(h.alloc,n.Array.prototype.subarray)),h.prototype._push=function(e,t,r){return this.tail=this.tail.next=new u(e,t,r),this.len+=t,this},f.prototype=Object.create(u.prototype),f.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(A,10,s.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.uint64=function(e){var t=s.from(e);return this._push(A,t.length(),t)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(e){var t=s.from(e).zzEncode();return this._push(A,t.length(),t)},h.prototype.bool=function(e){return this._push(p,1,e?1:0)},h.prototype.fixed32=function(e){return this._push(M,4,e>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(e){var t=s.from(e);return this._push(M,4,t.lo)._push(M,4,t.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(e){return this._push(n.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(n.float.writeDoubleLE,8,e)};var g=n.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var i=0;i<e.length;++i)t[r+i]=e[i]};h.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(p,1,0);if(n.isString(e)){var r=h.alloc(t=o.length(e));o.decode(e,r,0),e=r}return this.uint32(t)._push(g,t,e)},h.prototype.string=function(e){var t=a.length(e);return t?this.uint32(t)._push(a.write,t,e):this._push(p,1,0)},h.prototype.fork=function(){return this.states=new l(this),this.head=this.tail=new u(c,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(c,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=d(),i._configure()}},55:(e,t,r)=>{"use strict";e.exports=s;var i=r(147);(s.prototype=Object.create(i.prototype)).constructor=s;var n=r(835);function s(){i.call(this)}function o(e,t,r){e.length<40?n.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}s._configure=function(){s.alloc=n._Buffer_allocUnsafe,s.writeBytesBuffer=n.Buffer&&n.Buffer.prototype instanceof Uint8Array&&"set"===n.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var i=0;i<e.length;)t[r++]=e[i++]}},s.prototype.bytes=function(e){n.isString(e)&&(e=n._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(s.writeBytesBuffer,t,e),this},s.prototype.string=function(e){var t=n.Buffer.byteLength(e);return this.uint32(t),t&&this._push(o,t,e),this},s._configure()}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Camera:()=>_e,Easing:()=>Qr,Five:()=>ss,HashCubeTexture:()=>rt,InternalWebGLRenderer:()=>Ue,Model:()=>Dr,NetworkSubscribe:()=>Ot,PBMContainer:()=>Je,PBMGroup:()=>$e,PBMMaterial:()=>ut,PBMMesh:()=>Ke,PROXY_CONTROLLER_EVENT_NAMES:()=>_n,Scene:()=>Be,Subscribe:()=>Nt,getViewportScale:()=>Un,parseWork:()=>oi,stringifyWork:()=>ai});var e=__webpack_require__(438),t=Number(e.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var r,i={},n={},s=s||function(e,t){var r={},i=r.lib={},n=i.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.hasOwnProperty("init")||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=i.WordArray=n.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,r=e.words,i=this.sigBytes,n=e.sigBytes;if(this.clamp(),i%4)for(var s=0;s<n;s++){var o=r[s>>>2]>>>24-s%4*8&255;t[i+s>>>2]|=o<<24-(i+s)%4*8}else for(s=0;s<n;s+=4)t[i+s>>>2]=r[s>>>2];return this.sigBytes+=n,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=n.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r=[],i=0;i<t;i+=4)r.push(4294967296*e.random()|0);return new s.init(r,t)}}),o=r.enc={},a=o.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var s=t[n>>>2]>>>24-n%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i+=2)r[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new s.init(r,t/2)}},u=o.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var s=t[n>>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(s))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new s.init(r,t)}},c=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,a=n/(4*o),u=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,c=e.min(4*u,n);if(u){for(var l=0;l<u;l+=o)this._doProcessBlock(i,l);var h=i.splice(0,u);r.sigBytes-=c}return new s.init(h,c)},clone:function(){var e=n.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),h=(i.Hasher=l.extend({cfg:n.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new h.HMAC.init(e,r).finalize(t)}}}),r.algo={});return r}(Math);function o(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function a(){return new o(null)}!function(e){for(var t=s,r=(n=t.lib).WordArray,i=n.Hasher,n=t.algo,o=[],a=[],u=function(e){return 4294967296*(e-(0|e))|0},c=2,l=0;64>l;){var h;e:{h=c;for(var d=e.sqrt(h),p=2;p<=d;p++)if(!(h%p)){h=!1;break e}h=!0}h&&(8>l&&(o[l]=u(e.pow(c,.5))),a[l]=u(e.pow(c,1/3)),l++),c++}var f=[];n=n.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,i=r[0],n=r[1],s=r[2],o=r[3],u=r[4],c=r[5],l=r[6],h=r[7],d=0;64>d;d++){if(16>d)f[d]=0|e[t+d];else{var p=f[d-15],A=f[d-2];f[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+f[d-7]+((A<<15|A>>>17)^(A<<13|A>>>19)^A>>>10)+f[d-16]}p=h+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&l)+a[d]+f[d],A=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&n^i&s^n&s),h=l,l=c,c=u,u=o+p|0,o=s,s=n,n=i,i=p+A|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+s|0,r[3]=r[3]+o|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+l|0,r[7]=r[7]+h|0},_doFinalize:function(){var t=this._data,r=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=e.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}}),t.SHA256=i._createHelper(n),t.HmacSHA256=i._createHmacHelper(n)}(Math),s.lib.Cipher||function(e){var t=(f=s).lib,r=t.Base,i=t.WordArray,n=t.BufferedBlockAlgorithm,o=f.enc.Base64,a=f.algo.EvpKDF,u=t.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,r,i){return("string"==typeof r?A:p).encrypt(e,t,r,i)},decrypt:function(t,r,i){return("string"==typeof r?A:p).decrypt(e,t,r,i)}}}});t.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var c=f.mode={},l=function(e,t,r){var i=this._iv;i?this._iv=void 0:i=this._prevBlock;for(var n=0;n<r;n++)e[t+n]^=i[n]},h=(t.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();h.Encryptor=h.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;l.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),h.Decryptor=h.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=e.slice(t,t+i);r.decryptBlock(e,t),l.call(this,e,t,i),this._prevBlock=n}}),c=c.CBC=h,h=(f.pad={}).Pkcs7={pad:function(e,t){for(var r,n=(r=(r=4*t)-e.sigBytes%r)<<24|r<<16|r<<8|r,s=[],o=0;o<r;o+=4)s.push(n);r=i.create(s,r),e.concat(r)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},t.BlockCipher=u.extend({cfg:u.cfg.extend({mode:c,padding:h}),reset:function(){u.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=t.createEncryptor;else r=t.createDecryptor,this._minBufferSize=1;this._mode=r.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=t.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),p=(c=(f.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var r=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:r})}},t.SerializableCipher=r.extend({cfg:r.extend({format:c}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i);return t=n.finalize(t),n=n.cfg,d.create({ciphertext:t,key:r,iv:n.iv,algorithm:e,mode:n.mode,padding:n.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(r,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),f=(f.kdf={}).OpenSSL={execute:function(e,t,r,n){return n||(n=i.random(8)),e=a.create({keySize:t+r}).compute(e,n),r=i.create(e.words.slice(t),4*r),e.sigBytes=4*t,d.create({key:e,iv:r,salt:n})}},A=t.PasswordBasedCipher=p.extend({cfg:p.cfg.extend({kdf:f}),encrypt:function(e,t,r,i){return r=(i=this.cfg.extend(i)).kdf.execute(r,e.keySize,e.ivSize),i.iv=r.iv,(e=p.encrypt.call(this,e,t,r.key,i)).mixIn(r),e},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),r=i.kdf.execute(r,e.keySize,e.ivSize,t.salt),i.iv=r.iv,p.decrypt.call(this,e,t,r.key,i)}})}(),function(){for(var e=s,t=e.lib.BlockCipher,r=e.algo,i=[],n=[],o=[],a=[],u=[],c=[],l=[],h=[],d=[],p=[],f=[],A=0;256>A;A++)f[A]=128>A?A<<1:A<<1^283;var M=0,g=0;for(A=0;256>A;A++){var y=(y=g^g<<1^g<<2^g<<3^g<<4)>>>8^255&y^99;i[M]=y,n[y]=M;var v=f[M],m=f[v],N=f[m],D=257*f[y]^16843008*y;o[M]=D<<24|D>>>8,a[M]=D<<16|D>>>16,u[M]=D<<8|D>>>24,c[M]=D,D=16843009*N^65537*m^257*v^16843008*M,l[y]=D<<24|D>>>8,h[y]=D<<16|D>>>16,d[y]=D<<8|D>>>24,p[y]=D,M?(M=v^f[f[f[N^v]]],g^=f[f[g]]):M=g=1}var w=[0,1,2,4,8,16,32,64,128,27,54];r=r.AES=t.extend({_doReset:function(){for(var e=(r=this._key).words,t=r.sigBytes/4,r=4*((this._nRounds=t+6)+1),n=this._keySchedule=[],s=0;s<r;s++)if(s<t)n[s]=e[s];else{var o=n[s-1];s%t?6<t&&4==s%t&&(o=i[o>>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o]):(o=i[(o=o<<8|o>>>24)>>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o],o^=w[s/t|0]<<24),n[s]=n[s-t]^o}for(e=this._invKeySchedule=[],t=0;t<r;t++)s=r-t,o=t%4?n[s]:n[s-4],e[t]=4>t||4>=s?o:l[i[o>>>24]]^h[i[o>>>16&255]]^d[i[o>>>8&255]]^p[i[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,u,c,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,l,h,d,p,n),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,i,n,s,o,a){for(var u=this._nRounds,c=e[t]^r[0],l=e[t+1]^r[1],h=e[t+2]^r[2],d=e[t+3]^r[3],p=4,f=1;f<u;f++){var A=i[c>>>24]^n[l>>>16&255]^s[h>>>8&255]^o[255&d]^r[p++],M=i[l>>>24]^n[h>>>16&255]^s[d>>>8&255]^o[255&c]^r[p++],g=i[h>>>24]^n[d>>>16&255]^s[c>>>8&255]^o[255&l]^r[p++];d=i[d>>>24]^n[c>>>16&255]^s[l>>>8&255]^o[255&h]^r[p++],c=A,l=M,h=g}A=(a[c>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&d])^r[p++],M=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[d>>>8&255]<<8|a[255&c])^r[p++],g=(a[h>>>24]<<24|a[d>>>16&255]<<16|a[c>>>8&255]<<8|a[255&l])^r[p++],d=(a[d>>>24]<<24|a[c>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^r[p++],e[t]=A,e[t+1]=M,e[t+2]=g,e[t+3]=d},keySize:8}),e.AES=t._createHelper(r)}(),n.lang={extend:function(e,t,r){if(!t||!e)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t),r){var n;for(n in r)e.prototype[n]=r[n];var s=function(){},o=["toString","valueOf"];try{/MSIE/.test("undefined"!=typeof navigator?navigator.userAgent:"node")&&(s=function(e,t){for(n=0;n<o.length;n+=1){var r=o[n],i=t[r];"function"==typeof i&&i!=Object.prototype[r]&&(e[r]=i)}})}catch(e){}s(e.prototype,r)}}},"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(o.prototype.am=function(e,t,r,i,n,s){for(var o=32767&t,a=t>>15;--s>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*o;n=((u=o*u+((32767&l)<<15)+r[i]+(1073741823&n))>>>30)+(l>>>15)+a*c+(n>>>30),r[i++]=1073741823&u}return n},r=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(o.prototype.am=function(e,t,r,i,n,s){for(;--s>=0;){var o=t*this[e++]+r[i]+n;n=Math.floor(o/67108864),r[i++]=67108863&o}return n},r=26):(o.prototype.am=function(e,t,r,i,n,s){for(var o=16383&t,a=t>>14;--s>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*o;n=((u=o*u+((16383&l)<<14)+r[i]+n)>>28)+(l>>14)+a*c,r[i++]=268435455&u}return n},r=28),o.prototype.DB=r,o.prototype.DM=(1<<r)-1,o.prototype.DV=1<<r,o.prototype.FV=Math.pow(2,52),o.prototype.F1=52-r,o.prototype.F2=2*r-52;var u,c,l=new Array;for(u="0".charCodeAt(0),c=0;c<=9;++c)l[u++]=c;for(u="a".charCodeAt(0),c=10;c<36;++c)l[u++]=c;for(u="A".charCodeAt(0),c=10;c<36;++c)l[u++]=c;function h(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function d(e,t){var r=l[e.charCodeAt(t)];return null==r?-1:r}function p(e){var t=a();return t.fromInt(e),t}function f(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function A(e){this.m=e}function M(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function g(e,t){return e&t}function y(e,t){return e|t}function v(e,t){return e^t}function m(e,t){return e&~t}function N(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function D(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function w(){}function T(e){return e}function x(e){this.r2=a(),this.q3=a(),o.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}A.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},A.prototype.revert=function(e){return e},A.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},A.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},A.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},M.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(o.ZERO)>0&&this.m.subTo(t,t),t},M.prototype.revert=function(e){var t=a();return e.copyTo(t),this.reduce(t),t},M.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e[t],i=r*this.mpl+((r*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},M.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},M.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},o.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},o.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},o.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,n=!1,s=0;--i>=0;){var a=8==r?255&e[i]:d(e,i);a<0?"-"==e.charAt(i)&&(n=!0):(n=!1,0==s?this[this.t++]=a:s+r>this.DB?(this[this.t-1]|=(a&(1<<this.DB-s)-1)<<s,this[this.t++]=a>>this.DB-s):this[this.t-1]|=a<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),n&&o.ZERO.subTo(this,this)},o.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},o.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},o.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t[r-e]=this[r];t.t=Math.max(this.t-e,0),t.s=this.s},o.prototype.lShiftTo=function(e,t){var r,i=e%this.DB,n=this.DB-i,s=(1<<n)-1,o=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(r=this.t-1;r>=0;--r)t[r+o+1]=this[r]>>n|a,a=(this[r]&s)<<i;for(r=o-1;r>=0;--r)t[r]=0;t[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()},o.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var i=e%this.DB,n=this.DB-i,s=(1<<i)-1;t[0]=this[r]>>i;for(var o=r+1;o<this.t;++o)t[o-r-1]|=(this[o]&s)<<n,t[o-r]=this[o]>>i;i>0&&(t[this.t-r-1]|=(this.s&s)<<n),t.t=this.t-r,t.clamp()}},o.prototype.subTo=function(e,t){for(var r=0,i=0,n=Math.min(e.t,this.t);r<n;)i+=this[r]-e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i-=e[r],t[r++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[r++]=this.DV+i:i>0&&(t[r++]=i),t.t=r,t.clamp()},o.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),n=r.t;for(t.t=n+i.t;--n>=0;)t[n]=0;for(n=0;n<i.t;++n)t[n+r.t]=r.am(0,i[n],t,n,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&o.ZERO.subTo(t,t)},o.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e[r]=0;for(r=0;r<t.t-1;++r){var i=t.am(r,t[r],e,2*r,0,1);(e[r+t.t]+=t.am(r+1,2*t[r],e,2*r+1,i,t.t-r-1))>=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},o.prototype.divRemTo=function(e,t,r){var i=e.abs();if(!(i.t<=0)){var n=this.abs();if(n.t<i.t)return null!=t&&t.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=a());var s=a(),u=this.s,c=e.s,l=this.DB-f(i[i.t-1]);l>0?(i.lShiftTo(l,s),n.lShiftTo(l,r)):(i.copyTo(s),n.copyTo(r));var h=s.t,d=s[h-1];if(0!=d){var p=d*(1<<this.F1)+(h>1?s[h-2]>>this.F2:0),A=this.FV/p,M=(1<<this.F1)/p,g=1<<this.F2,y=r.t,v=y-h,m=null==t?a():t;for(s.dlShiftTo(v,m),r.compareTo(m)>=0&&(r[r.t++]=1,r.subTo(m,r)),o.ONE.dlShiftTo(h,m),m.subTo(s,s);s.t<h;)s[s.t++]=0;for(;--v>=0;){var N=r[--y]==d?this.DM:Math.floor(r[y]*A+(r[y-1]+g)*M);if((r[y]+=s.am(0,N,r,v,0,h))<N)for(s.dlShiftTo(v,m),r.subTo(m,r);r[y]<--N;)r.subTo(m,r)}null!=t&&(r.drShiftTo(h,t),u!=c&&o.ZERO.subTo(t,t)),r.t=h,r.clamp(),l>0&&r.rShiftTo(l,r),u<0&&o.ZERO.subTo(r,r)}}},o.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},o.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},o.prototype.exp=function(e,t){if(e>4294967295||e<1)return o.ONE;var r=a(),i=a(),n=t.convert(this),s=f(e)-1;for(n.copyTo(r);--s>=0;)if(t.sqrTo(r,i),(e&1<<s)>0)t.mulTo(i,n,r);else{var u=r;r=i,i=u}return t.revert(r)},o.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,i=(1<<t)-1,n=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(r=this[o]>>a)>0&&(n=!0,s=h(r));o>=0;)a<t?(r=(this[o]&(1<<a)-1)<<t-a,r|=this[--o]>>(a+=this.DB-t)):(r=this[o]>>(a-=t)&i,a<=0&&(a+=this.DB,--o)),r>0&&(n=!0),n&&(s+=h(r));return n?s:"0"},o.prototype.negate=function(){var e=a();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},o.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+f(this[this.t-1]^this.s&this.DM)},o.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(o.ZERO)>0&&e.subTo(t,t),t},o.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new A(t):new M(t),this.exp(e,r)},o.ZERO=p(0),o.ONE=p(1),w.prototype.convert=T,w.prototype.revert=T,w.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},w.prototype.sqrTo=function(e,t){e.squareTo(t)},x.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=a();return e.copyTo(t),this.reduce(t),t},x.prototype.revert=function(e){return e},x.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},x.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},x.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var E=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],j=(1<<26)/E[E.length-1];o.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},o.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),i=p(r),n=a(),s=a(),o="";for(this.divRemTo(i,n,s);n.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,n.divRemTo(i,n,s);return s.intValue().toString(e)+o},o.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),n=!1,s=0,a=0,u=0;u<e.length;++u){var c=d(e,u);c<0?"-"==e.charAt(u)&&0==this.signum()&&(n=!0):(a=t*a+c,++s>=r&&(this.dMultiply(i),this.dAddOffset(a,0),s=0,a=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(a,0)),n&&o.ZERO.subTo(this,this)},o.prototype.fromNumber=function(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(o.ONE.shiftLeft(e-1),y,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(o.ONE.shiftLeft(e-1),this);else{var i=new Array,n=7&e;i.length=1+(e>>3),t.nextBytes(i),n>0?i[0]&=(1<<n)-1:i[0]=0,this.fromString(i,256)}},o.prototype.bitwiseTo=function(e,t,r){var i,n,s=Math.min(e.t,this.t);for(i=0;i<s;++i)r[i]=t(this[i],e[i]);if(e.t<this.t){for(n=e.s&this.DM,i=s;i<this.t;++i)r[i]=t(this[i],n);r.t=this.t}else{for(n=this.s&this.DM,i=s;i<e.t;++i)r[i]=t(n,e[i]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()},o.prototype.changeBit=function(e,t){var r=o.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r},o.prototype.addTo=function(e,t){for(var r=0,i=0,n=Math.min(e.t,this.t);r<n;)i+=this[r]+e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i+=e[r],t[r++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[r++]=i:i<-1&&(t[r++]=this.DV+i),t.t=r,t.clamp()},o.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},o.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},o.prototype.multiplyLowerTo=function(e,t,r){var i,n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r[--n]=0;for(i=r.t-this.t;n<i;++n)r[n+this.t]=this.am(0,e[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e[n],r,n,0,t-n);r.clamp()},o.prototype.multiplyUpperTo=function(e,t,r){--t;var i=r.t=this.t+e.t-t;for(r.s=0;--i>=0;)r[i]=0;for(i=Math.max(t-this.t,0);i<e.t;++i)r[this.t+i-t]=this.am(t-i,e[i],r,0,0,this.t+i-t);r.clamp(),r.drShiftTo(1,r)},o.prototype.modInt=function(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(0==t)r=this[0]%e;else for(var i=this.t-1;i>=0;--i)r=(t*r+this[i])%e;return r},o.prototype.millerRabin=function(e){var t=this.subtract(o.ONE),r=t.getLowestSetBit();if(r<=0)return!1;var i=t.shiftRight(r);(e=e+1>>1)>E.length&&(e=E.length);for(var n=a(),s=0;s<e;++s){n.fromInt(E[Math.floor(Math.random()*E.length)]);var u=n.modPow(i,this);if(0!=u.compareTo(o.ONE)&&0!=u.compareTo(t)){for(var c=1;c++<r&&0!=u.compareTo(t);)if(0==(u=u.modPowInt(2,this)).compareTo(o.ONE))return!1;if(0!=u.compareTo(t))return!1}}return!0},o.prototype.clone=function(){var e=a();return this.copyTo(e),e},o.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},o.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},o.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},o.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},o.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,i=this.DB-e*this.DB%8,n=0;if(e-- >0)for(i<this.DB&&(r=this[e]>>i)!=(this.s&this.DM)>>i&&(t[n++]=r|this.s<<this.DB-i);e>=0;)i<8?(r=(this[e]&(1<<i)-1)<<8-i,r|=this[--e]>>(i+=this.DB-8)):(r=this[e]>>(i-=8)&255,i<=0&&(i+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==n&&(128&this.s)!=(128&r)&&++n,(n>0||r!=this.s)&&(t[n++]=r);return t},o.prototype.equals=function(e){return 0==this.compareTo(e)},o.prototype.min=function(e){return this.compareTo(e)<0?this:e},o.prototype.max=function(e){return this.compareTo(e)>0?this:e},o.prototype.and=function(e){var t=a();return this.bitwiseTo(e,g,t),t},o.prototype.or=function(e){var t=a();return this.bitwiseTo(e,y,t),t},o.prototype.xor=function(e){var t=a();return this.bitwiseTo(e,v,t),t},o.prototype.andNot=function(e){var t=a();return this.bitwiseTo(e,m,t),t},o.prototype.not=function(){for(var e=a(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e},o.prototype.shiftLeft=function(e){var t=a();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t},o.prototype.shiftRight=function(e){var t=a();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t},o.prototype.getLowestSetBit=function(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+N(this[e]);return this.s<0?this.t*this.DB:-1},o.prototype.bitCount=function(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=D(this[r]^t);return e},o.prototype.testBit=function(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)},o.prototype.setBit=function(e){return this.changeBit(e,y)},o.prototype.clearBit=function(e){return this.changeBit(e,m)},o.prototype.flipBit=function(e){return this.changeBit(e,v)},o.prototype.add=function(e){var t=a();return this.addTo(e,t),t},o.prototype.subtract=function(e){var t=a();return this.subTo(e,t),t},o.prototype.multiply=function(e){var t=a();return this.multiplyTo(e,t),t},o.prototype.divide=function(e){var t=a();return this.divRemTo(e,t,null),t},o.prototype.remainder=function(e){var t=a();return this.divRemTo(e,null,t),t},o.prototype.divideAndRemainder=function(e){var t=a(),r=a();return this.divRemTo(e,t,r),new Array(t,r)},o.prototype.modPow=function(e,t){var r,i,n=e.bitLength(),s=p(1);if(n<=0)return s;r=n<18?1:n<48?3:n<144?4:n<768?5:6,i=n<8?new A(t):t.isEven()?new x(t):new M(t);var o=new Array,u=3,c=r-1,l=(1<<r)-1;if(o[1]=i.convert(this),r>1){var h=a();for(i.sqrTo(o[1],h);u<=l;)o[u]=a(),i.mulTo(h,o[u-2],o[u]),u+=2}var d,g,y=e.t-1,v=!0,m=a();for(n=f(e[y])-1;y>=0;){for(n>=c?d=e[y]>>n-c&l:(d=(e[y]&(1<<n+1)-1)<<c-n,y>0&&(d|=e[y-1]>>this.DB+n-c)),u=r;0==(1&d);)d>>=1,--u;if((n-=u)<0&&(n+=this.DB,--y),v)o[d].copyTo(s),v=!1;else{for(;u>1;)i.sqrTo(s,m),i.sqrTo(m,s),u-=2;u>0?i.sqrTo(s,m):(g=s,s=m,m=g),i.mulTo(m,o[d],s)}for(;y>=0&&0==(e[y]&1<<n);)i.sqrTo(s,m),g=s,s=m,m=g,--n<0&&(n=this.DB-1,--y)}return i.revert(s)},o.prototype.modInverse=function(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return o.ZERO;for(var r=e.clone(),i=this.clone(),n=p(1),s=p(0),a=p(0),u=p(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),t?(n.isEven()&&s.isEven()||(n.addTo(this,n),s.subTo(e,s)),n.rShiftTo(1,n)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;i.isEven();)i.rShiftTo(1,i),t?(a.isEven()&&u.isEven()||(a.addTo(this,a),u.subTo(e,u)),a.rShiftTo(1,a)):u.isEven()||u.subTo(e,u),u.rShiftTo(1,u);r.compareTo(i)>=0?(r.subTo(i,r),t&&n.subTo(a,n),s.subTo(u,s)):(i.subTo(r,i),t&&a.subTo(n,a),u.subTo(s,u))}return 0!=i.compareTo(o.ONE)?o.ZERO:u.compareTo(e)>=0?u.subtract(e):u.signum()<0?(u.addTo(e,u),u.signum()<0?u.add(e):u):u},o.prototype.pow=function(e){return this.exp(e,new w)},o.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var i=t;t=r,r=i}var n=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(n<s&&(s=n),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(n=t.getLowestSetBit())>0&&t.rShiftTo(n,t),(n=r.getLowestSetBit())>0&&r.rShiftTo(n,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r},o.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r[0]<=E[E.length-1]){for(t=0;t<E.length;++t)if(r[0]==E[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<E.length;){for(var i=E[t],n=t+1;n<E.length&&i<j;)i*=E[n++];for(i=r.modInt(i);t<n;)if(i%E[t++]==0)return!1}return r.millerRabin(e)},o.prototype.square=function(){var e=a();return this.squareTo(e),e};var I,b,z,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(e){var t,r,i="";for(t=0;t+3<=e.length;t+=3)r=parseInt(e.substring(t,t+3),16),i+=O.charAt(r>>6)+O.charAt(63&r);for(t+1==e.length?(r=parseInt(e.substring(t,t+1),16),i+=O.charAt(r<<2)):t+2==e.length&&(r=parseInt(e.substring(t,t+2),16),i+=O.charAt(r>>2)+O.charAt((3&r)<<4));(3&i.length)>0;)i+="=";return i}function L(e){var t,r,i,n="",s=0;for(t=0;t<e.length&&"="!=e.charAt(t);++t)(i=O.indexOf(e.charAt(t)))<0||(0==s?(n+=h(i>>2),r=3&i,s=1):1==s?(n+=h(r<<2|i>>4),r=15&i,s=2):2==s?(n+=h(r),n+=h(i>>2),r=3&i,s=3):(n+=h(r<<2|i>>4),n+=h(15&i),s=0));return 1==s&&(n+=h(r<<2)),n}function C(){this.i=0,this.j=0,this.S=new Array}function k(){var e;e=(new Date).getTime(),b[z++]^=255&e,b[z++]^=e>>8&255,b[z++]^=e>>16&255,b[z++]^=e>>24&255,z>=256&&(z-=256)}if(C.prototype.init=function(e){var t,r,i;for(t=0;t<256;++t)this.S[t]=t;for(r=0,t=0;t<256;++t)r=r+this.S[t]+e[t%e.length]&255,i=this.S[t],this.S[t]=this.S[r],this.S[r]=i;this.i=0,this.j=0},C.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]},null==b){var P;if(b=new Array,z=0,"undefined"!=typeof window&&(void 0!==window.crypto||void 0!==window.msCrypto)){var _=window.crypto||window.msCrypto;if(_.getRandomValues){var B=new Uint8Array(32);for(_.getRandomValues(B),P=0;P<32;++P)b[z++]=B[P]}else if("undefined"!=typeof navigator&&"Netscape"==navigator.appName&&navigator.appVersion<"5"){var U=window.crypto.random(32);for(P=0;P<U.length;++P)b[z++]=255&U.charCodeAt(P)}}for(;z<256;)P=Math.floor(65536*Math.random()),b[z++]=P>>>8,b[z++]=255&P;z=0,k()}function R(){if(null==I){for(k(),(I=new C).init(b),z=0;z<b.length;++z)b[z]=0;z=0}return I.next()}function Q(){}function Y(e,t){return new o(e,t)}function F(e,t,r){for(var i="",n=0;i.length<t;)i+=r(String.fromCharCode.apply(String,e.concat([(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n]))),n+=1;return i}function V(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function H(e,t,r){for(var i="",n=0;i.length<t;)i+=r(e+String.fromCharCode.apply(String,[(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n])),n+=1;return i}function G(e){for(var t="",r=0;r<e.length;r++){var i=e[r].toString(16);1==i.length&&(i="0"+i),t+=i}return t}function q(e){return G(function(e){for(var t=new Array,r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(e))}function W(e){return(e=(e=e.replace(/\=/g,"")).replace(/\+/g,"-")).replace(/\//g,"_")}function Z(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),(e=e.replace(/-/g,"+")).replace(/_/g,"/")}function X(e){return e.length%2==1&&(e="0"+e),W(S(e))}function K(e){return L(Z(e))}function J(e){return ne(ae(e))}function $(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function ee(e){for(var t="",r=0;r<e.length-1;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t}function te(e){for(var t="",r=0;r<e.length;r++)t+=("0"+e.charCodeAt(r).toString(16)).slice(-2);return t}function re(e,t){return"-----BEGIN "+t+"-----\r\n"+function(e){return function(e){return S(e)}(e).replace(/(.{64})/g,"$1\r\n").replace(/\r\n$/,"")}(e)+"\r\n-----END "+t+"-----\r\n"}function ie(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return L(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function ne(e){return e.replace(/%/g,"")}function se(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),r=0;r<8;r++)t[r]=t[r].replace(/^0+/,""),""==t[r]&&(t[r]="0");var i=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===i)return e.slice(1,-1);var n="";for(r=0;r<i.length;r++)i[r].length>n.length&&(n=i[r]);return(e=e.replace(n,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function oe(e){return e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),r=parseInt(e.substr(2),16);if(0==t&r<128)return String.fromCharCode(r);if(t<8){var i=128|63&r;return $((192|(7&t)<<3|(192&r)>>6).toString(16)+i.toString(16))}i=128|(15&t)<<2|(192&r)>>6;var n=128|63&r;return $((224|(240&t)>>4).toString(16)+i.toString(16)+n.toString(16))})).join("")}function ae(e){for(var t=encodeURIComponent(e),r="",i=0;i<t.length;i++)"%"==t[i]?(r+=t.substr(i,3),i+=2):r=r+"%"+q(t[i]);return r}function ue(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function ce(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}Q.prototype.nextBytes=function(e){var t;for(t=0;t<e.length;++t)e[t]=R()},V.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},V.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=Y(e,16),this.e=parseInt(t,16)}},V.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var r=new Array,i=e.length-1;i>=0&&t>0;){var n=e.charCodeAt(i--);n<128?r[--t]=n:n>127&&n<2048?(r[--t]=63&n|128,r[--t]=n>>6|192):(r[--t]=63&n|128,r[--t]=n>>6&63|128,r[--t]=n>>12|224)}r[--t]=0;for(var s=new Q,a=new Array;t>2;){for(a[0]=0;0==a[0];)s.nextBytes(a);r[--t]=a[0]}return r[--t]=2,r[--t]=0,new o(r)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var r=this.doPublic(t);if(null==r)return null;var i=r.toString(16);return 0==(1&i.length)?i:"0"+i},V.prototype.encryptOAEP=function(e,t,r){var n=function(e,t,r,n){var s=i.crypto.MessageDigest,a=i.crypto.Util,u=null;if(r||(r="sha1"),"string"==typeof r&&(u=s.getCanonicalAlgName(r),n=s.getHashLength(u),r=function(e){return ee(a.hashHex(te(e),u))}),e.length+2*n+2>t)throw"Message too long for RSA";var c,l="";for(c=0;c<t-e.length-2*n-2;c+=1)l+="\0";var h=r("")+l+""+e,d=new Array(n);(new Q).nextBytes(d);var p=F(d,h.length,r),f=[];for(c=0;c<h.length;c+=1)f[c]=h.charCodeAt(c)^p.charCodeAt(c);var A=F(f,d.length,r),M=[0];for(c=0;c<d.length;c+=1)M[c+1]=d[c]^A.charCodeAt(c);return new o(M.concat(f))}(e,this.n.bitLength()+7>>3,t,r);if(null==n)return null;var s=this.doPublic(n);if(null==s)return null;var a=s.toString(16);return 0==(1&a.length)?a:"0"+a},V.prototype.type="RSA",V.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),r=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(r)<0;)t=t.add(this.p);return t.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},V.prototype.setPrivate=function(e,t,r){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=r;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=Y(e,16),this.e=parseInt(t,16),this.d=Y(r,16)}},V.prototype.setPrivateEx=function(e,t,r,i,n,s,o,a){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=Y(e,16),this.e=parseInt(t,16),this.d=Y(r,16),this.p=Y(i,16),this.q=Y(n,16),this.dmp1=Y(s,16),this.dmq1=Y(o,16),this.coeff=Y(a,16)},V.prototype.generate=function(e,t){var r=new Q,i=e>>1;this.e=parseInt(t,16);for(var n=new o(t,16);;){for(;this.p=new o(e-i,1,r),0!=this.p.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.p.isProbablePrime(10););for(;this.q=new o(i,1,r),0!=this.q.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var a=this.p.subtract(o.ONE),u=this.q.subtract(o.ONE),c=a.multiply(u);if(0==c.gcd(n).compareTo(o.ONE)&&(this.n=this.p.multiply(this.q),this.n.bitLength()==e)){this.d=n.modInverse(c),this.dmp1=this.d.mod(a),this.dmq1=this.d.mod(u),this.coeff=this.q.modInverse(this.p);break}}this.isPrivate=!0},V.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=Y(e,16),r=this.doPrivate(t);return null==r?null:function(e,t){for(var r=e.toByteArray(),i=0;i<r.length&&0==r[i];)++i;if(r.length-i!=t-1||2!=r[i])return null;for(++i;0!=r[i];)if(++i>=r.length)return null;for(var n="";++i<r.length;){var s=255&r[i];s<128?n+=String.fromCharCode(s):s>191&&s<224?(n+=String.fromCharCode((31&s)<<6|63&r[i+1]),++i):(n+=String.fromCharCode((15&s)<<12|(63&r[i+1])<<6|63&r[i+2]),i+=2)}return n}(r,this.n.bitLength()+7>>3)},V.prototype.decryptOAEP=function(e,t,r){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=Y(e,16),s=this.doPrivate(n);return null==s?null:function(e,t,r,n){var s=i.crypto.MessageDigest,o=i.crypto.Util,a=null;for(r||(r="sha1"),"string"==typeof r&&(a=s.getCanonicalAlgName(r),n=s.getHashLength(a),r=function(e){return ee(o.hashHex(te(e),a))}),e=e.toByteArray(),u=0;u<e.length;u+=1)e[u]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*n+2)throw"Cipher too short";var u,c=e.substr(1,n),l=e.substr(n+1),h=H(l,n,r),d=[];for(u=0;u<c.length;u+=1)d[u]=c.charCodeAt(u)^h.charCodeAt(u);var p=H(String.fromCharCode.apply(String,d),e.length-n,r),f=[];for(u=0;u<l.length;u+=1)f[u]=l.charCodeAt(u)^p.charCodeAt(u);if((f=String.fromCharCode.apply(String,f)).substr(0,n)!==r(""))throw"Hash mismatch";var A=(f=f.substr(n)).indexOf("");if((-1!=A?f.substr(0,A).lastIndexOf("\0"):-1)+1!=A)throw"Malformed data";return f.substr(A+1)}(s,this.n.bitLength()+7>>3,t,r)},void 0!==i.lang&&i.lang||(i.lang={}),i.lang.String=function(){},i.lang.String.isInteger=function(e){return!!e.match(/^[0-9]+$/)||!!e.match(/^-[0-9]+$/)},i.lang.String.isHex=function(e){return ue(e)},i.lang.String.isBase64=function(e){return!(!(e=e.replace(/\s+/g,"")).match(/^[0-9A-Za-z+\/]+={0,3}$/)||e.length%4!=0)},i.lang.String.isBase64URL=function(e){return!e.match(/[+/=]/)&&(e=Z(e),i.lang.String.isBase64(e))},i.lang.String.isIntegerArray=function(e){return!!(e=e.replace(/\s+/g,"")).match(/^\[[0-9,]+\]$/)},i.lang.String.isPrintable=function(e){return null!==e.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},i.lang.String.isIA5=function(e){return null!==e.match(/^[\x20-\x21\x23-\x7f]*$/)},i.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var le=function(e,t,r){return null==r&&(r="0"),e.length>=t?e:new Array(t-e.length+1).join(r)+e};function he(e,t){var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t)}void 0!==i.crypto&&i.crypto||(i.crypto={}),i.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:s.algo.MD5,sha1:s.algo.SHA1,sha224:s.algo.SHA224,sha256:s.algo.SHA256,sha384:s.algo.SHA384,sha512:s.algo.SHA512,ripemd160:s.algo.RIPEMD160},this.getDigestInfoHex=function(e,t){if(void 0===this.DIGESTINFOHEAD[t])throw"alg not supported in Util.DIGESTINFOHEAD: "+t;return this.DIGESTINFOHEAD[t]+e},this.getPaddedDigestInfoHex=function(e,t,r){var i=this.getDigestInfoHex(e,t),n=r/4;if(i.length+22>n)throw"key is too short for SigAlg: keylen="+r+","+t;for(var s="0001",o="00"+i,a="",u=n-s.length-o.length,c=0;c<u;c+=2)a+="ff";return s+a+o},this.hashString=function(e,t){return new i.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new i.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")},this.isKey=function(e){return e instanceof V||e instanceof i.crypto.DSA||e instanceof i.crypto.ECDSA}},i.crypto.Util.md5=function(e){return new i.crypto.MessageDigest({alg:"md5",prov:"cryptojs"}).digestString(e)},i.crypto.Util.ripemd160=function(e){return new i.crypto.MessageDigest({alg:"ripemd160",prov:"cryptojs"}).digestString(e)},i.crypto.Util.SECURERANDOMGEN=new Q,i.crypto.Util.getRandomHexOfNbytes=function(e){var t=new Array(e);return i.crypto.Util.SECURERANDOMGEN.nextBytes(t),G(t)},i.crypto.Util.getRandomBigIntegerOfNbytes=function(e){return new o(i.crypto.Util.getRandomHexOfNbytes(e),16)},i.crypto.Util.getRandomHexOfNbits=function(e){var t=e%8,r=new Array((e-t)/8+1);return i.crypto.Util.SECURERANDOMGEN.nextBytes(r),r[0]=(255<<t&255^255)&r[0],G(r)},i.crypto.Util.getRandomBigIntegerOfNbits=function(e){return new o(i.crypto.Util.getRandomHexOfNbits(e),16)},i.crypto.Util.getRandomBigIntegerZeroToMax=function(e){for(var t=e.bitLength();;){var r=i.crypto.Util.getRandomBigIntegerOfNbits(t);if(-1!=e.compareTo(r))return r}},i.crypto.Util.getRandomBigIntegerMinToMax=function(e,t){var r=e.compareTo(t);if(1==r)throw"biMin is greater than biMax";if(0==r)return e;var n=t.subtract(e);return i.crypto.Util.getRandomBigIntegerZeroToMax(n).add(e)},i.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=i.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=i.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=i.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=s.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(s.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},i.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},i.crypto.MessageDigest.getHashLength=function(e){var t=i.crypto.MessageDigest,r=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[r])throw"not supported algorithm: "+e;return t.HASHLENGTH[r]},i.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},i.crypto.Mac=function(e){this.setAlgAndProvider=function(e,t){if(null==(e=e.toLowerCase())&&(e="hmacsha1"),"hmac"!=(e=e.toLowerCase()).substr(0,4))throw"setAlgAndProvider unsupported HMAC alg: "+e;void 0===t&&(t=i.crypto.Util.DEFAULTPROVIDER[e]),this.algProv=e+"/"+t;var r=e.substr(4);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(r)&&"cryptojs"==t){try{var n=i.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];this.mac=s.algo.HMAC.create(n,this.pass)}catch(e){throw"setAlgAndProvider hash alg set fail hashAlg="+r+"/"+e}this.updateString=function(e){this.mac.update(e)},this.updateHex=function(e){var t=s.enc.Hex.parse(e);this.mac.update(t)},this.doFinal=function(){return this.mac.finalize().toString(s.enc.Hex)},this.doFinalString=function(e){return this.updateString(e),this.doFinal()},this.doFinalHex=function(e){return this.updateHex(e),this.doFinal()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algProv},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algProv},this.doFinal=function(){throw"digest() not supported for this alg/prov: "+this.algProv},this.doFinalString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algProv},this.doFinalHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algProv},this.setPassword=function(e){if("string"==typeof e){var t=e;return e.length%2!=1&&e.match(/^[0-9A-Fa-f]+$/)||(t=te(e)),void(this.pass=s.enc.Hex.parse(t))}if("object"!=typeof e)throw"KJUR.crypto.Mac unsupported password type: "+e;if(t=null,void 0!==e.hex){if(e.hex.length%2!=0||!e.hex.match(/^[0-9A-Fa-f]+$/))throw"Mac: wrong hex password: "+e.hex;t=e.hex}if(void 0!==e.utf8&&(t=J(e.utf8)),void 0!==e.rstr&&(t=te(e.rstr)),void 0!==e.b64&&(t=L(e.b64)),void 0!==e.b64u&&(t=K(e.b64u)),null==t)throw"KJUR.crypto.Mac unsupported password type: "+e;this.pass=s.enc.Hex.parse(t)},void 0!==e&&(void 0!==e.pass&&this.setPassword(e.pass),void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},i.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var r="",i=t/4-e.length,n=0;n<i;n++)r+="0";return r+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new i.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var r=null;try{r=void 0===t?me.getKey(e):me.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===r.isPrivate)this.prvKey=r,this.state="SIGN";else{if(!0!==r.isPublic)throw"init failed.:"+r;this.pubKey=r,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==i.crypto.ECDSA&&(this.prvKey=new i.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof V&&"rsaandmgf1"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof V&&"rsa"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof i.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof i.crypto.DSA))throw"Signature: unsupported private key alg: "+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(e){return this.updateString(e),this.sign()},this.signHex=function(e){return this.updateHex(e),this.sign()},this.verify=function(e){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==i.crypto.ECDSA&&(this.pubKey=new i.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof V&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof V&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==i.crypto.ECDSA&&this.pubKey instanceof i.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==i.crypto.DSA&&this.pubKey instanceof i.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.sign=function(){throw"sign() not supported for this alg:prov="+this.algProvName},this.signString=function(e){throw"digestString(str) not supported for this alg:prov="+this.algProvName},this.signHex=function(e){throw"digestHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=me.getKey(e.prvkeypem),this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},i.crypto.Cipher=function(e){},i.crypto.Cipher.encrypt=function(e,t,r){if(t instanceof V&&t.isPublic){var n=i.crypto.Cipher.getAlgByKeyAndName(t,r);if("RSA"===n)return t.encrypt(e);if("RSAOAEP"===n)return t.encryptOAEP(e,"sha1");var s=n.match(/^RSAOAEP(\d+)$/);if(null!==s)return t.encryptOAEP(e,"sha"+s[1]);throw"Cipher.encrypt: unsupported algorithm for RSAKey: "+r}throw"Cipher.encrypt: unsupported key or algorithm"},i.crypto.Cipher.decrypt=function(e,t,r){if(t instanceof V&&t.isPrivate){var n=i.crypto.Cipher.getAlgByKeyAndName(t,r);if("RSA"===n)return t.decrypt(e);if("RSAOAEP"===n)return t.decryptOAEP(e,"sha1");var s=n.match(/^RSAOAEP(\d+)$/);if(null!==s)return t.decryptOAEP(e,"sha"+s[1]);throw"Cipher.decrypt: unsupported algorithm for RSAKey: "+r}throw"Cipher.decrypt: unsupported key or algorithm"},i.crypto.Cipher.getAlgByKeyAndName=function(e,t){if(e instanceof V){if(-1!=":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:".indexOf(t))return t;if(null==t)return"RSA";throw"getAlgByKeyAndName: not supported algorithm name for RSAKey: "+t}throw"getAlgByKeyAndName: not supported algorithm name: "+t},i.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var de,pe,fe,Ae,Me,ge,ye,ve,me=(de=function(e,t,r){return pe(s.AES,e,t,r)},pe=function(e,t,r,i){var n=s.enc.Hex.parse(t),o=s.enc.Hex.parse(r),a=s.enc.Hex.parse(i),u={};u.key=o,u.iv=a,u.ciphertext=n;var c=e.decrypt(u,o,{iv:a});return s.enc.Hex.stringify(c)},fe=function(e,t,r){return Ae(s.AES,e,t,r)},Ae=function(e,t,r,i){var n=s.enc.Hex.parse(t),o=s.enc.Hex.parse(r),a=s.enc.Hex.parse(i),u=e.encrypt(n,o,{iv:a}),c=s.enc.Hex.parse(u.toString());return s.enc.Base64.stringify(c)},Me={"AES-256-CBC":{proc:de,eproc:fe,keylen:32,ivlen:16},"AES-192-CBC":{proc:de,eproc:fe,keylen:24,ivlen:16},"AES-128-CBC":{proc:de,eproc:fe,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,t,r){return pe(s.TripleDES,e,t,r)},eproc:function(e,t,r){return Ae(s.TripleDES,e,t,r)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,t,r){return pe(s.DES,e,t,r)},eproc:function(e,t,r){return Ae(s.DES,e,t,r)},keylen:8,ivlen:8}},ge=function(e){var t={},r=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));r&&(t.cipher=r[1],t.ivsalt=r[2]);var i=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));i&&(t.type=i[1]);var n=-1,s=0;-1!=e.indexOf("\r\n\r\n")&&(n=e.indexOf("\r\n\r\n"),s=2),-1!=e.indexOf("\n\n")&&(n=e.indexOf("\n\n"),s=1);var o=e.indexOf("-----END");if(-1!=n&&-1!=o){var a=e.substring(n+2*s,o-s);a=a.replace(/\s+/g,""),t.data=a}return t},ye=function(e,t,r){for(var i=r.substring(0,16),n=s.enc.Hex.parse(i),o=s.enc.Utf8.parse(t),a=Me[e].keylen+Me[e].ivlen,u="",c=null;;){var l=s.algo.MD5.create();if(null!=c&&l.update(c),l.update(o),l.update(n),c=l.finalize(),(u+=s.enc.Hex.stringify(c)).length>=2*a)break}var h={};return h.keyhex=u.substr(0,2*Me[e].keylen),h.ivhex=u.substr(2*Me[e].keylen,2*Me[e].ivlen),h},ve=function(e,t,r,i){var n=s.enc.Base64.parse(e),o=s.enc.Hex.stringify(n);return(0,Me[t].proc)(o,r,i)},{version:"1.0.0",parsePKCS5PEM:function(e){return ge(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,r){return ye(e,t,r)},decryptKeyB64:function(e,t,r,i){return ve(e,t,r,i)},getDecryptedKeyHex:function(e,t){var r=ge(e),i=(r.type,r.cipher),n=r.ivsalt,s=r.data,o=ye(i,t,n).keyhex;return ve(s,i,o,n)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,r,i,n){var o="";if(void 0!==i&&null!=i||(i="AES-256-CBC"),void 0===Me[i])throw"KEYUTIL unsupported algorithm: "+i;void 0!==n&&null!=n||(n=function(e){var t=s.lib.WordArray.random(e);return s.enc.Hex.stringify(t)}(Me[i].ivlen).toUpperCase());var a=function(e,t,r,i){return(0,Me[t].eproc)(e,r,i)}(t,i,ye(i,r,n).keyhex,n);return o="-----BEGIN "+e+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+i+","+n+"\r\n",o+="\r\n",(o+=a.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={},s=r(e,0);if(2!=s.length)throw"malformed format: SEQUENCE(0).items != 2: "+s.length;n.ciphertext=i(e,s[1]);var o=r(e,s[0]);if(2!=o.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+o.length;if("2a864886f70d01050d"!=i(e,o[0]))throw"this only supports pkcs5PBES2";var a=r(e,o[1]);if(2!=o.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(e,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=i(e,u[0]))throw"this only supports TripleDES";n.encryptionSchemeAlg="TripleDES",n.encryptionSchemeIV=i(e,u[1]);var c=r(e,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=i(e,c[0]))throw"this only supports pkcs5PBKDF2";var l=r(e,c[1]);if(l.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+l.length;n.pbkdf2Salt=i(e,l[0]);var h=i(e,l[1]);try{n.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return n},getPBKDF2KeyHexFromParam:function(e,t){var r=s.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,n=s.PBKDF2(t,r,{keySize:6,iterations:i});return s.enc.Hex.stringify(n)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var r=ie(e,"ENCRYPTED PRIVATE KEY"),i=this.parseHexOfEncryptedPKCS8(r),n=me.getPBKDF2KeyHexFromParam(i,t),o={};o.ciphertext=s.enc.Hex.parse(i.ciphertext);var a=s.enc.Hex.parse(n),u=s.enc.Hex.parse(i.encryptionSchemeIV),c=s.TripleDES.decrypt(o,a,{iv:u});return s.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function(e,t){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var s=r(e,0);if(s.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(s[1],2))throw new Error("malformed PKCS8 private key(code:003)");var o=r(e,s[1]);if(2!=o.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(o[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(n.algoid=i(e,o[0]),"06"==e.substr(o[1],2)&&(n.algparam=i(e,o[1])),"04"!=e.substr(s[2],2))throw new Error("malformed PKCS8 private key(code:006)");return n.keyidx=t.getVidx(e,s[2]),n},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=ie(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,r=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==r.algoid)t=new V;else if("2a8648ce380401"==r.algoid)t=new i.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";t=new i.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,r=Ne.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===r)t=new V;else if("2a8648ce380401"===r)t=new i.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";t=new i.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var s=r(e,0);if(2!=s.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(s[0],2))throw"malformed RSA key(code:003)";if(n.n=i(e,s[0]),"02"!=e.substr(s[1],2))throw"malformed RSA key(code:004)";return n.e=i(e,s[1]),n},parsePublicPKCS8Hex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={algparam:null},s=r(e,0);if(2!=s.length)throw"outer DERSequence shall have 2 elements: "+s.length;var o=s[0];if("30"!=e.substr(o,2))throw"malformed PKCS8 public key(code:001)";var a=r(e,o);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(n.algoid=i(e,a[0]),"06"==e.substr(a[1],2)?n.algparam=i(e,a[1]):"30"==e.substr(a[1],2)&&(n.algparam={},n.algparam.p=t.getVbyList(e,a[1],[0],"02"),n.algparam.q=t.getVbyList(e,a[1],[1],"02"),n.algparam.g=t.getVbyList(e,a[1],[2],"02")),"03"!=e.substr(s[1],2))throw"malformed PKCS8 public key(code:004)";return n.key=i(e,s[1]).substr(2),n}});me.getKey=function(e,t,r){var n,s=(v=Ne).getChildIdx,a=(v.getV,v.getVbyList),u=i.crypto,c=u.ECDSA,l=u.DSA,h=V,d=ie,p=me;if(void 0!==h&&e instanceof h)return e;if(void 0!==c&&e instanceof c)return e;if(void 0!==l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new c({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new c({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(z=new h).setPublic(e.n,e.e),z;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(z=new h).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),z;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(z=new h).setPrivate(e.n,e.e,e.d),z;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(z=new l).setPublic(e.p,e.q,e.g,e.y),z;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(z=new l).setPrivate(e.p,e.q,e.g,e.y,e.x),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(z=new h).setPublic(K(e.n),K(e.e)),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(z=new h).setPrivateEx(K(e.n),K(e.e),K(e.d),K(e.p),K(e.q),K(e.dp),K(e.dq),K(e.qi)),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(z=new h).setPrivate(K(e.n),K(e.e),K(e.d)),z;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var f=(b=new c({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+K(e.x)).slice(-f)+("0000000000"+K(e.y)).slice(-f);return b.setPublicKeyHex(A),b}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){f=(b=new c({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+K(e.x)).slice(-f)+("0000000000"+K(e.y)).slice(-f);var M=("0000000000"+K(e.d)).slice(-f);return b.setPublicKeyHex(A),b.setPrivateKeyHex(M),b}if("pkcs5prv"===r){var g,y=e,v=Ne;if(9===(g=s(y,0)).length)(z=new h).readPKCS5PrvKeyHex(y);else if(6===g.length)(z=new l).readPKCS5PrvKeyHex(y);else{if(!(g.length>2&&"04"===y.substr(g[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(z=new c).readPKCS5PrvKeyHex(y)}return z}if("pkcs8prv"===r)return p.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===r)return p._getKeyFromPublicPKCS8Hex(e);if("x509pub"===r)return xe.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return xe.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var m=ie(e,"PUBLIC KEY");return p._getKeyFromPublicPKCS8Hex(m)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var N=d(e,"RSA PRIVATE KEY");return p.getKey(N,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var D=a(n=d(e,"DSA PRIVATE KEY"),0,[1],"02"),w=a(n,0,[2],"02"),T=a(n,0,[3],"02"),x=a(n,0,[4],"02"),E=a(n,0,[5],"02");return(z=new l).setPrivate(new o(D,16),new o(w,16),new o(T,16),new o(x,16),new o(E,16)),z}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED"))return N=d(e,"EC PRIVATE KEY"),p.getKey(N,null,"pkcs5prv");if(-1!=e.indexOf("-END PRIVATE KEY-"))return p.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var j=p.getDecryptedKeyHex(e,t),I=new V;return I.readPKCS5PrvKeyHex(j),I}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var b,z=a(n=p.getDecryptedKeyHex(e,t),0,[1],"04"),O=a(n,0,[2,0],"06"),S=a(n,0,[3,0],"03").substr(2);if(void 0===i.crypto.OID.oidhex2name[O])throw"undefined OID(hex) in KJUR.crypto.OID: "+O;return(b=new c({curve:i.crypto.OID.oidhex2name[O]})).setPublicKeyHex(S),b.setPrivateKeyHex(z),b.isPublic=!1,b}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED"))return D=a(n=p.getDecryptedKeyHex(e,t),0,[1],"02"),w=a(n,0,[2],"02"),T=a(n,0,[3],"02"),x=a(n,0,[4],"02"),E=a(n,0,[5],"02"),(z=new l).setPrivate(new o(D,16),new o(w,16),new o(T,16),new o(x,16),new o(E,16)),z;if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return p.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},me.generateKeypair=function(e,t){if("RSA"==e){var r=t;(a=new V).generate(r,"10001"),a.isPrivate=!0,a.isPublic=!0;var n=new V,s=a.n.toString(16),o=a.e.toString(16);return n.setPublic(s,o),n.isPrivate=!1,n.isPublic=!0,(u={}).prvKeyObj=a,u.pubKeyObj=n,u}if("EC"==e){var a,u,c=t,l=new i.crypto.ECDSA({curve:c}).generateKeyPairHex();return(a=new i.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),a.setPrivateKeyHex(l.ecprvhex),a.isPrivate=!0,a.isPublic=!1,(n=new i.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(u={}).prvKeyObj=a,u.pubKeyObj=n,u}throw"unknown algorithm: "+e},me.getPEM=function(e,t,r,n,o,a){var u=i,c=u.asn1,l=c.DERObjectIdentifier,h=c.DERInteger,d=c.ASN1Util.newObject,p=c.x509.SubjectPublicKeyInfo,f=u.crypto,A=f.DSA,M=f.ECDSA,g=V;function y(e){return d({seq:[{int:0},{int:{bigint:e.n}},{int:e.e},{int:{bigint:e.d}},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.dmp1}},{int:{bigint:e.dmq1}},{int:{bigint:e.coeff}}]})}function v(e){return d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a0",!0,{oid:{name:e.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]})}function m(e){return d({seq:[{int:0},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}},{int:{bigint:e.y}},{int:{bigint:e.x}}]})}if((void 0!==g&&e instanceof g||void 0!==A&&e instanceof A||void 0!==M&&e instanceof M)&&1==e.isPublic&&(void 0===t||"PKCS8PUB"==t))return re(T=new p(e).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==t&&void 0!==g&&e instanceof g&&(void 0===r||null==r)&&1==e.isPrivate)return re(T=y(e).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==t&&void 0!==M&&e instanceof M&&(void 0===r||null==r)&&1==e.isPrivate){var N=new l({name:e.curveName}).getEncodedHex(),D=v(e).getEncodedHex(),w="";return(w+=re(N,"EC PARAMETERS"))+re(D,"EC PRIVATE KEY")}if("PKCS1PRV"==t&&void 0!==A&&e instanceof A&&(void 0===r||null==r)&&1==e.isPrivate)return re(T=m(e).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==t&&void 0!==g&&e instanceof g&&void 0!==r&&null!=r&&1==e.isPrivate){var T=y(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",T,r,n,a)}if("PKCS5PRV"==t&&void 0!==M&&e instanceof M&&void 0!==r&&null!=r&&1==e.isPrivate)return T=v(e).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",T,r,n,a);if("PKCS5PRV"==t&&void 0!==A&&e instanceof A&&void 0!==r&&null!=r&&1==e.isPrivate)return T=m(e).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",T,r,n,a);var x=function(e,t){var r=E(e,t);return new d({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},E=function(e,t){var r=s.lib.WordArray.random(8),i=s.lib.WordArray.random(8),n=s.PBKDF2(t,r,{keySize:6,iterations:100}),o=s.enc.Hex.parse(e),a=s.TripleDES.encrypt(o,n,{iv:i})+"",u={};return u.ciphertext=a,u.pbkdf2Salt=s.enc.Hex.stringify(r),u.pbkdf2Iter=100,u.encryptionSchemeAlg="DES-EDE3-CBC",u.encryptionSchemeIV=s.enc.Hex.stringify(i),u};if("PKCS8PRV"==t&&null!=g&&e instanceof g&&1==e.isPrivate){var j=y(e).getEncodedHex();return T=d({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==M&&e instanceof M&&1==e.isPrivate)return j=new d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:e.curveName}}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==t&&void 0!==A&&e instanceof A&&1==e.isPrivate)return j=new h({bigint:e.x}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},me.getKeyFromCSRPEM=function(e){var t=ie(e,"CERTIFICATE REQUEST");return me.getKeyFromCSRHex(t)},me.getKeyFromCSRHex=function(e){var t=me.parseCSRHex(e);return me.getKey(t.p8pubkeyhex,null,"pkcs8pub")},me.parseCSRHex=function(e){var t=Ne,r=t.getChildIdx,i=t.getTLV,n={},s=e;if("30"!=s.substr(0,2))throw"malformed CSR(code:001)";var o=r(s,0);if(o.length<1)throw"malformed CSR(code:002)";if("30"!=s.substr(o[0],2))throw"malformed CSR(code:003)";var a=r(s,o[0]);if(a.length<3)throw"malformed CSR(code:004)";return n.p8pubkeyhex=i(s,a[2]),n},me.getKeyID=function(e){var t=me,r=Ne;"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&(e=t.getKey(e));var n=ie(t.getPEM(e)),s=r.getIdxbyList(n,0,[1]),o=r.getV(n,s).substring(2);return i.crypto.Util.hashHex(o,"sha1")},me.getJWKFromKey=function(e){var t={};if(e instanceof V&&e.isPrivate)return t.kty="RSA",t.n=X(e.n.toString(16)),t.e=X(e.e.toString(16)),t.d=X(e.d.toString(16)),t.p=X(e.p.toString(16)),t.q=X(e.q.toString(16)),t.dp=X(e.dmp1.toString(16)),t.dq=X(e.dmq1.toString(16)),t.qi=X(e.coeff.toString(16)),t;if(e instanceof V&&e.isPublic)return t.kty="RSA",t.n=X(e.n.toString(16)),t.e=X(e.e.toString(16)),t;if(e instanceof i.crypto.ECDSA&&e.isPrivate){if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=X(r.x),t.y=X(r.y),t.d=X(e.prvKeyHex),t}if(e instanceof i.crypto.ECDSA&&e.isPublic){var n;if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=e.getPublicKeyXYHex(),t.kty="EC",t.crv=n,t.x=X(r.x),t.y=X(r.y),t}throw"not supported key object"},void 0!==i.asn1&&i.asn1||(i.asn1={}),i.asn1.ASN1Util=new function(){this.integerToByteHex=function(e){var t=e.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(e){var t=e.toString(16);if("-"!=t.substr(0,1))t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t);else{var r=t.substr(1).length;r%2==1?r+=1:t.match(/^[0-7]/)||(r+=2);for(var i="",n=0;n<r;n++)i+="f";t=new o(i,16).xor(e).add(o.ONE).toString(16).replace(/^-/,"")}return t},this.getPEMStringFromHex=function(e,t){return re(e,t)},this.newObject=function(e){var t=i.asn1,r=t.ASN1Object,n=t.DERBoolean,s=t.DERInteger,o=t.DERBitString,a=t.DEROctetString,u=t.DERNull,c=t.DERObjectIdentifier,l=t.DEREnumerated,h=t.DERUTF8String,d=t.DERNumericString,p=t.DERPrintableString,f=t.DERTeletexString,A=t.DERIA5String,M=t.DERUTCTime,g=t.DERGeneralizedTime,y=t.DERVisibleString,v=t.DERBMPString,m=t.DERSequence,N=t.DERSet,D=t.DERTaggedObject,w=t.ASN1Util.newObject;if(e instanceof t.ASN1Object)return e;var T=Object.keys(e);if(1!=T.length)throw new Error("key of param shall be only one.");var x=T[0];if(-1==":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":"+x+":"))throw new Error("undefined key: "+x);if("bool"==x)return new n(e[x]);if("int"==x)return new s(e[x]);if("bitstr"==x)return new o(e[x]);if("octstr"==x)return new a(e[x]);if("null"==x)return new u(e[x]);if("oid"==x)return new c(e[x]);if("enum"==x)return new l(e[x]);if("utf8str"==x)return new h(e[x]);if("numstr"==x)return new d(e[x]);if("prnstr"==x)return new p(e[x]);if("telstr"==x)return new f(e[x]);if("ia5str"==x)return new A(e[x]);if("utctime"==x)return new M(e[x]);if("gentime"==x)return new g(e[x]);if("visstr"==x)return new y(e[x]);if("bmpstr"==x)return new v(e[x]);if("asn1"==x)return new r(e[x]);if("seq"==x){for(var E=e[x],j=[],I=0;I<E.length;I++){var b=w(E[I]);j.push(b)}return new m({array:j})}if("set"==x){for(E=e[x],j=[],I=0;I<E.length;I++)b=w(E[I]),j.push(b);return new N({array:j})}if("tag"==x){var z=e[x];if("[object Array]"===Object.prototype.toString.call(z)&&3==z.length){var O=w(z[2]);return new D({tag:z[0],explicit:z[1],obj:O})}return new D(z)}},this.jsonToASN1HEX=function(e){return this.newObject(e).getEncodedHex()}},i.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",r=parseInt(e.substr(0,2),16),i=(t=Math.floor(r/40)+"."+r%40,""),n=2;n<e.length;n+=2){var s=("00000000"+parseInt(e.substr(n,2),16).toString(2)).slice(-8);i+=s.substr(1,7),"0"==s.substr(0,1)&&(t=t+"."+new o(i,2).toString(10),i="")}return t},i.asn1.ASN1Util.oidIntToHex=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},r=function(e){var r="",i=new o(e,10).toString(2),n=7-i.length%7;7==n&&(n=0);for(var s="",a=0;a<n;a++)s+="0";for(i=s+i,a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u="1"+u),r+=t(parseInt(u,2))}return r};if(!e.match(/^[0-9.]+$/))throw"malformed oid string: "+e;var i="",n=e.split("."),s=40*parseInt(n[0])+parseInt(n[1]);i+=t(s),n.splice(0,2);for(var a=0;a<n.length;a++)i+=r(n[a]);return i},i.asn1.ASN1Object=function(e){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error("this.hV is null or undefined");if(this.hV.length%2==1)throw new Error("value hex must be even length: n="+"".length+",v="+this.hV);var e=this.hV.length/2,t=e.toString(16);if(t.length%2==1&&(t="0"+t),e<128)return t;var r=t.length/2;if(r>15)throw"ASN.1 length too long to represent by 8x: n = "+e.toString(16);return(128+r).toString(16)+t},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(e){this.params=e},null!=e&&null!=e.tlv&&(this.hTLV=e.tlv,this.isModified=!1)},i.asn1.DERAbstractString=function(e){i.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=J(this.s).toLowerCase()},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e?this.setString(e):void 0!==e.str?this.setString(e.str):void 0!==e.hex&&this.setStringHex(e.hex))},n.lang.extend(i.asn1.DERAbstractString,i.asn1.ASN1Object),i.asn1.DERAbstractTime=function(e){i.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(e){var t=e.getTime()+6e4*e.getTimezoneOffset();return new Date(t)},this.formatDate=function(e,t,r){var i=this.zeroPadding,n=this.localDateToUTC(e),s=String(n.getFullYear());"utc"==t&&(s=s.substr(2,2));var o=s+i(String(n.getMonth()+1),2)+i(String(n.getDate()),2)+i(String(n.getHours()),2)+i(String(n.getMinutes()),2)+i(String(n.getSeconds()),2);if(!0===r){var a=n.getMilliseconds();if(0!=a){var u=i(String(a),3);o=o+"."+(u=u.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=q(e)},this.setByDateValue=function(e,t,r,i,n,s){var o=new Date(Date.UTC(e,t-1,r,i,n,s,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},n.lang.extend(i.asn1.DERAbstractTime,i.asn1.ASN1Object),i.asn1.DERAbstractStructured=function(e){i.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,void 0!==e&&void 0!==e.array&&(this.asn1Array=e.array)},n.lang.extend(i.asn1.DERAbstractStructured,i.asn1.ASN1Object),i.asn1.DERBoolean=function(e){i.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==e?"010100":"0101ff"},n.lang.extend(i.asn1.DERBoolean,i.asn1.ASN1Object),i.asn1.DERInteger=function(e){i.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=i.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new o(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.bigint?this.setByBigInteger(e.bigint):void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},n.lang.extend(i.asn1.DERInteger,i.asn1.ASN1Object),i.asn1.DERBitString=function(e){if(void 0!==e&&void 0!==e.obj){var t=i.asn1.ASN1Util.newObject(e.obj);e.hex="00"+t.getEncodedHex()}i.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,t){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var r="0"+e;this.hTLV=null,this.isModified=!0,this.hV=r+t},this.setByBinaryString=function(e){var t=8-(e=e.replace(/0+$/,"")).length%8;8==t&&(t=0);for(var r=0;r<=t;r++)e+="0";var i="";for(r=0;r<e.length-1;r+=8){var n=e.substr(r,8),s=parseInt(n,2).toString(16);1==s.length&&(s="0"+s),i+=s}this.hTLV=null,this.isModified=!0,this.hV="0"+t+i},this.setByBooleanArray=function(e){for(var t="",r=0;r<e.length;r++)1==e[r]?t+="1":t+="0";this.setByBinaryString(t)},this.newFalseArray=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=!1;return t},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e&&e.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(e):void 0!==e.hex?this.setHexValueIncludingUnusedBits(e.hex):void 0!==e.bin?this.setByBinaryString(e.bin):void 0!==e.array&&this.setByBooleanArray(e.array))},n.lang.extend(i.asn1.DERBitString,i.asn1.ASN1Object),i.asn1.DEROctetString=function(e){if(void 0!==e&&void 0!==e.obj){var t=i.asn1.ASN1Util.newObject(e.obj);e.hex=t.getEncodedHex()}i.asn1.DEROctetString.superclass.constructor.call(this,e),this.hT="04"},n.lang.extend(i.asn1.DEROctetString,i.asn1.DERAbstractString),i.asn1.DERNull=function(){i.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},n.lang.extend(i.asn1.DERNull,i.asn1.ASN1Object),i.asn1.DERObjectIdentifier=function(e){i.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueOidString=function(e){var t=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},r=function(e){var r="",i=parseInt(e,10).toString(2),n=7-i.length%7;7==n&&(n=0);for(var s="",o=0;o<n;o++)s+="0";for(i=s+i,o=0;o<i.length-1;o+=7){var a=i.substr(o,7);o!=i.length-7&&(a="1"+a),r+=t(parseInt(a,2))}return r};try{if(!e.match(/^[0-9.]+$/))return null;var i="",n=e.split("."),s=40*parseInt(n[0],10)+parseInt(n[1],10);i+=t(s),n.splice(0,2);for(var o=0;o<n.length;o++)i+=r(n[o]);return i}catch(e){return null}}(e);if(null==t)throw new Error("malformed oid string: "+e);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueName=function(e){var t=i.asn1.x509.OID.name2oid(e);if(""===t)throw new Error("DERObjectIdentifier oidName undefined: "+e);this.setValueOidString(t)},this.setValueNameOrOid=function(e){e.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(e):this.setValueName(e)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){"string"==typeof e?this.setValueNameOrOid(e):void 0!==e.oid?this.setValueNameOrOid(e.oid):void 0!==e.name?this.setValueNameOrOid(e.name):void 0!==e.hex&&this.setValueHex(e.hex)},void 0!==e&&this.setByParam(e)},n.lang.extend(i.asn1.DERObjectIdentifier,i.asn1.ASN1Object),i.asn1.DEREnumerated=function(e){i.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=i.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new o(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},n.lang.extend(i.asn1.DEREnumerated,i.asn1.ASN1Object),i.asn1.DERUTF8String=function(e){i.asn1.DERUTF8String.superclass.constructor.call(this,e),this.hT="0c"},n.lang.extend(i.asn1.DERUTF8String,i.asn1.DERAbstractString),i.asn1.DERNumericString=function(e){i.asn1.DERNumericString.superclass.constructor.call(this,e),this.hT="12"},n.lang.extend(i.asn1.DERNumericString,i.asn1.DERAbstractString),i.asn1.DERPrintableString=function(e){i.asn1.DERPrintableString.superclass.constructor.call(this,e),this.hT="13"},n.lang.extend(i.asn1.DERPrintableString,i.asn1.DERAbstractString),i.asn1.DERTeletexString=function(e){i.asn1.DERTeletexString.superclass.constructor.call(this,e),this.hT="14"},n.lang.extend(i.asn1.DERTeletexString,i.asn1.DERAbstractString),i.asn1.DERIA5String=function(e){i.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="16"},n.lang.extend(i.asn1.DERIA5String,i.asn1.DERAbstractString),i.asn1.DERVisibleString=function(e){i.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="1a"},n.lang.extend(i.asn1.DERVisibleString,i.asn1.DERAbstractString),i.asn1.DERBMPString=function(e){i.asn1.DERBMPString.superclass.constructor.call(this,e),this.hT="1e"},n.lang.extend(i.asn1.DERBMPString,i.asn1.DERAbstractString),i.asn1.DERUTCTime=function(e){i.asn1.DERUTCTime.superclass.constructor.call(this,e),this.hT="17",this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"utc"),this.hV=q(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=q(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{12}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date))},n.lang.extend(i.asn1.DERUTCTime,i.asn1.DERAbstractTime),i.asn1.DERGeneralizedTime=function(e){i.asn1.DERGeneralizedTime.superclass.constructor.call(this,e),this.hT="18",this.withMillis=!1,this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=q(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=q(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{14}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date),!0===e.millis&&(this.withMillis=!0))},n.lang.extend(i.asn1.DERGeneralizedTime,i.asn1.DERAbstractTime),i.asn1.DERSequence=function(e){i.asn1.DERSequence.superclass.constructor.call(this,e),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;t<this.asn1Array.length;t++)e+=this.asn1Array[t].getEncodedHex();return this.hV=e,this.hV}},n.lang.extend(i.asn1.DERSequence,i.asn1.DERAbstractStructured),i.asn1.DERSet=function(e){i.asn1.DERSet.superclass.constructor.call(this,e),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var e=new Array,t=0;t<this.asn1Array.length;t++){var r=this.asn1Array[t];e.push(r.getEncodedHex())}return 1==this.sortFlag&&e.sort(),this.hV=e.join(""),this.hV},void 0!==e&&void 0!==e.sortflag&&0==e.sortflag&&(this.sortFlag=!1)},n.lang.extend(i.asn1.DERSet,i.asn1.DERAbstractStructured),i.asn1.DERTaggedObject=function(e){i.asn1.DERTaggedObject.superclass.constructor.call(this);var t=i.asn1;this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(e,t,r){this.hT=t,this.isExplicit=e,this.asn1Object=r,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=r.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,t),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){null!=e.tag&&(this.hT=e.tag),null!=e.explicit&&(this.isExplicit=e.explicit),null!=e.tage&&(this.hT=e.tage,this.isExplicit=!0),null!=e.tagi&&(this.hT=e.tagi,this.isExplicit=!1),null!=e.obj&&(e.obj instanceof t.ASN1Object?(this.asn1Object=e.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):"object"==typeof e.obj&&(this.asn1Object=t.ASN1Util.newObject(e.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=e&&this.setByParam(e)},n.lang.extend(i.asn1.DERTaggedObject,i.asn1.ASN1Object);var Ne=new function(){};function De(e,t){for(var r="",i=t/4-e.length,n=0;n<i;n++)r+="0";return r+e}function we(e,t,r){for(var i="",n=0;i.length<t;)i+=ee(r(te(e+String.fromCharCode.apply(String,[(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n])))),n+=1;return i}function Te(e){for(var t in i.crypto.Util.DIGESTINFOHEAD){var r=i.crypto.Util.DIGESTINFOHEAD[t],n=r.length;if(e.substring(0,n)==r)return[t,e.substring(n)]}return[]}function xe(e){var t,r=Ne,n=r.getChildIdx,s=r.getV,o=r.getTLV,a=r.getVbyList,u=r.getVbyListEx,c=r.getTLVbyList,l=r.getTLVbyListEx,h=r.getIdxbyList,d=r.getIdxbyListEx,p=r.getVidx,f=r.getInt,A=r.oidname,M=r.hextooidstr,g=ie;try{t=i.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=c(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=c(e,0,[0]),r=f(t,0);if(r<0||2<r)throw new Error("malformed version field");return this.version=r+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return u(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=l(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var r in t)if(e===t[r])return r;return A(u(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return c(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return c(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=a(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getNotAfter=function(){var e=a(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return h(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return me.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=c(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return a(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=c(this.hex,0,[0],"30"),s=new i.crypto.Signature({alg:t});return s.init(e),s.updateHex(n),s.verify(r)},this.parseExt=function(e){var t,i,o;if(void 0===e){if(o=this.hex,3!==this.version)return-1;t=h(o,0,[0,7,0],"30"),i=n(o,t)}else{o=ie(e);var u=h(o,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=s(o,u))return void(this.aExtInfo=new Array);t=h(o,0,[0,3,0,1,0],"30"),i=n(o,t),this.hex=o}this.aExtInfo=new Array;for(var c=0;c<i.length;c++){var l={critical:!1},d=0;3===n(o,i[c]).length&&(l.critical=!0,d=1),l.oid=r.hextooidstr(a(o,i[c],[0],"06"));var f=h(o,i[c],[1+d]);l.vidx=p(o,f),this.aExtInfo.push(l)}},this.getExtInfo=function(e){var t=this.aExtInfo,r=e;if(e.match(/^[0-9.]+$/)||(r=i.asn1.x509.OID.name2oid(e)),""!==r)for(var n=0;n<t.length;n++)if(t[n].oid===r)return t[n]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("basicConstraints");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"basicConstraints"};if(t&&(i.critical=!0),"3000"===e)return i;if("30030101ff"===e)return i.cA=!0,i;if("30060101ff02"===e.substr(0,12)){var n=s(e,10),a=parseInt(n,16);return i.cA=!0,i.pathLen=a,i}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("keyUsage");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"keyUsage"};return t&&(i.critical=!0),i.names=this.getExtKeyUsageString(e).split(","),i},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var r="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(r=r.slice(-8)),10==e.length&&(r=r.slice(-16)),""==(r=r.replace(/0+$/,""))&&(r="0"),r},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),r=new Array,i=0;i<t.length;i++)"1"==t.substr(i,1)&&r.push(xe.KEYUSAGE_NAME[i]);return r.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("subjectKeyIdentifier");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"subjectKeyIdentifier"};t&&(i.critical=!0);var n=s(e,0);return i.kid={hex:n},i},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("authorityKeyIdentifier");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"authorityKeyIdentifier"};t&&(i.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++){var c=e.substr(a[u],2);if("80"===c&&(i.kid={hex:s(e,a[u])}),"a1"===c){var l=o(e,a[u]),h=this.getGeneralNames(l);i.issuer=h[0].dn}"82"===c&&(i.sn={hex:s(e,a[u])})}return i},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("extKeyUsage");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"extKeyUsage",array:[]};t&&(i.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++)i.array.push(A(s(e,a[u])));return i},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,r=o(this.hex,e.vidx);if(""===r)return t;for(var i=n(r,0),a=0;a<i.length;a++)t.push(A(s(r,i[a])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("subjectAltName");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"subjectAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("issuerAltName");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"issuerAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getGeneralNames=function(e){for(var t=n(e,0),r=[],i=0;i<t.length;i++){var s=this.getGeneralName(o(e,t[i]));void 0!==s&&r.push(s)}return r},this.getGeneralName=function(e){var t=e.substr(0,2),r=s(e,0),i=ee(r);return"81"==t?{rfc822:i}:"82"==t?{dns:i}:"86"==t?{uri:i}:"87"==t?{ip:se(r)}:"a4"==t?{dn:this.getX500Name(r)}:void 0},this.getExtSubjectAltName2=function(){var e,t,r,i=this.getExtInfo("subjectAltName");if(void 0===i)return i;for(var a=new Array,u=o(this.hex,i.vidx),c=n(u,0),l=0;l<c.length;l++)r=u.substr(c[l],2),e=s(u,c[l]),"81"===r&&(t=$(e),a.push(["MAIL",t])),"82"===r&&(t=$(e),a.push(["DNS",t])),"84"===r&&(t=xe.hex2dn(e,0),a.push(["DN",t])),"86"===r&&(t=$(e),a.push(["URI",t])),"87"===r&&(t=se(e),a.push(["IP",t]));return a},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("cRLDistributionPoints");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"cRLDistributionPoints",array:[]};t&&(i.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]);i.array.push(this.getDistributionPoint(u))}return i},this.getDistributionPoint=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=e.substr(r[i],2),a=o(e,r[i]);"a0"==s&&(t.dpname=this.getDistributionPointName(a))}return t},this.getDistributionPointName=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=e.substr(r[i],2),a=o(e,r[i]);"a0"==s&&(t.full=this.getGeneralNames(a))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,r=n(this.hex,e.vidx),i=0;i<r.length;i++)try{var s=$(a(this.hex,r[i],[0,0,0],"86"));t.push(s)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},r=n(this.hex,e.vidx),i=0;i<r.length;i++){var s=a(this.hex,r[i],[0],"06"),o=a(this.hex,r[i],[1],"86");"2b06010505073001"===s&&t.ocsp.push($(o)),"2b06010505073002"===s&&t.caissuer.push($(o))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("authorityInfoAccess");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"authorityInfoAccess",array:[]};t&&(i.critical=!0);for(var s=n(e,0),c=0;c<s.length;c++){var l=u(e,s[c],[0],"06"),h=$(a(e,s[c],[1],"86"));if("2b06010505073001"==l)i.array.push({ocsp:h});else{if("2b06010505073002"!=l)throw new Error("unknown method: "+l);i.array.push({caissuer:h})}}return i},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("certificatePolicies");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"certificatePolicies",array:[]};t&&(i.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]),c=this.getPolicyInformation(u);i.array.push(c)}return i},this.getPolicyInformation=function(e){var t={},r=a(e,0,[0],"06");t.policyoid=A(r);var i=d(e,0,[1],"30");if(-1!=i){t.array=[];for(var s=n(e,i),u=0;u<s.length;u++){var c=o(e,s[u]),l=this.getPolicyQualifierInfo(c);t.array.push(l)}}return t},this.getPolicyQualifierInfo=function(e){var t={},r=a(e,0,[0],"06");if("2b06010505070201"===r){var i=u(e,0,[1],"16");t.cps=ee(i)}else if("2b06010505070202"===r){var n=c(e,0,[1],"30");t.unotice=this.getUserNotice(n)}return t},this.getUserNotice=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=o(e,r[i]);"30"!=s.substr(0,2)&&(t.exptext=this.getDisplayText(s))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=ee(s(e,0)),t},this.getExtCRLNumber=function(e,t){var r={extname:"cRLNumber"};if(t&&(r.critical=!0),"02"==e.substr(0,2))return r.num={hex:s(e,0)},r;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var r={extname:"cRLReason"};if(t&&(r.critical=!0),"0a"==e.substr(0,2))return r.code=parseInt(s(e,0),16),r;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var r={extname:"ocspNonce"};t&&(r.critical=!0);var i=s(e,0);return r.hex=i,r},this.getExtOcspNoCheck=function(e,t){var r={extname:"ocspNoCheck"};return t&&(r.critical=!0),r},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("adobeTimeStamp");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"adobeTimeStamp"};t&&(i.critical=!0);var s=n(e,0);if(s.length>1){var a=o(e,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(e,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(e){for(var t=null,r=[],n=0;n<e.length;n++)for(var s=e[n],o=0;o<s.length;o++)r.push(s[o]);for(n=0;n<r.length;n++){var a=r[n],u=a.ds,c=a.value,l=a.type;if("prn"!=u&&"utf8"!=u&&"ia5"!=u)return"mixed";if("ia5"==u){if("CN"!=l)return"mixed";if(i.lang.String.isMail(c))continue;return"mixed"}if("C"==l){if("prn"==u)continue;return"mixed"}if(null==t)t=u;else if(t!==u)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],r=n(e,0),i=0;i<r.length;i++)t.push(this.getRDN(o(e,r[i])));return t},this.getRDN=function(e){for(var t=[],r=n(e,0),i=0;i<r.length;i++)t.push(this.getAttrTypeAndValue(o(e,r[i])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},r=n(e,0),s=a(e,r[0],[],"06"),o=a(e,r[1],[]),u=i.asn1.ASN1Util.oidHexToInt(s);return t.type=i.asn1.x509.OID.oid2atype(u),t.ds=this.HEX2STAG[e.substr(r[1],2)],"bmp"!=t.ds?t.value=$(o):t.value=oe(o),t},this.readCertPEM=function(e){this.readCertHex(g(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{h(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=re(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&-1!=d(this.hex,0,[0,"[3]"])&&(e=l(this.hex,0,[0,"[3]",0],"30"));for(var t=[],r=n(e,0),i=0;i<r.length;i++){var s=o(e,r[i]),a=this.getExtParam(s);null!=a&&t.push(a)}return t},this.getExtParam=function(e){var t=n(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var r=M(a(e,0,[0],"06")),i=!1;3==t&&"0101ff"==c(e,0,[1])&&(i=!0);var s=c(e,0,[t-1,0]),o=void 0;if("2.5.29.14"==r?o=this.getExtSubjectKeyIdentifier(s,i):"2.5.29.15"==r?o=this.getExtKeyUsage(s,i):"2.5.29.17"==r?o=this.getExtSubjectAltName(s,i):"2.5.29.18"==r?o=this.getExtIssuerAltName(s,i):"2.5.29.19"==r?o=this.getExtBasicConstraints(s,i):"2.5.29.31"==r?o=this.getExtCRLDistributionPoints(s,i):"2.5.29.32"==r?o=this.getExtCertificatePolicies(s,i):"2.5.29.35"==r?o=this.getExtAuthorityKeyIdentifier(s,i):"2.5.29.37"==r?o=this.getExtExtKeyUsage(s,i):"1.3.6.1.5.5.7.1.1"==r?o=this.getExtAuthorityInfoAccess(s,i):"2.5.29.20"==r?o=this.getExtCRLNumber(s,i):"2.5.29.21"==r?o=this.getExtCRLReason(s,i):"1.3.6.1.5.5.7.48.1.2"==r?o=this.getExtOcspNonce(s,i):"1.3.6.1.5.5.7.48.1.5"==r?o=this.getExtOcspNoCheck(s,i):"1.2.840.113583.1.1.9.1"==r&&(o=this.getExtAdobeTimeStamp(s,i)),null!=o)return o;var u={extname:r,extn:s};return i&&(u.critical=!0),u},this.findExt=function(e,t){for(var r=0;r<e.length;r++)if(e[r].extname==t)return e[r];return null},this.updateExtCDPFullURI=function(e,t){var r=this.findExt(e,"cRLDistributionPoints");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)if(null!=i[n].dpname&&null!=i[n].dpname.full)for(var s=i[n].dpname.full,o=0;o<s.length;o++){var a=s[n];null!=a.uri&&(a.uri=t)}},this.updateExtAIAOCSP=function(e,t){var r=this.findExt(e,"authorityInfoAccess");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)null!=i[n].ocsp&&(i[n].ocsp=t)},this.updateExtAIACAIssuer=function(e,t){var r=this.findExt(e,"authorityInfoAccess");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)null!=i[n].caissuer&&(i[n].caissuer=t)},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,r,n,s=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];if(t+=" policy oid: "+n.policyoid+"\n",void 0!==n.array)for(var s=0;s<n.array.length;s++){var o=n.array[s];void 0!==o.cps&&(t+=" cps: "+o.cps+"\n")}}return t},o=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];try{void 0!==n.dpname.full[0].uri&&(t+=" "+n.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==n.dname.full[0].dn.hex&&(t+=" "+xe.hex2dn(n.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},a=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];void 0!==n.caissuer&&(t+=" caissuer: "+n.caissuer+"\n"),void 0!==n.ocsp&&(t+=" ocsp: "+n.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+ce(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+ce(t.e.toString(16))+"\n"),null!=(r=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var u=0;u<r.length;u++){var c=r[u],l=i.asn1.x509.OID.oid2name(c.oid);""===l&&(l=c.oid);var h="";if(!0===c.critical&&(h="CRITICAL"),e+=" "+l+" "+h+":\n","basicConstraints"===l){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("keyUsage"===l)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===l)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===l){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(e+=" kid="+p.kid.hex+"\n")}else"extKeyUsage"===l?e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n":"subjectAltName"===l?e+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,"")+"\n"):"cRLDistributionPoints"===l?e+=o(this.getExtCRLDistributionPoints()):"authorityInfoAccess"===l?e+=a(this.getExtAuthorityInfoAccess()):"certificatePolicies"===l&&(e+=s(this.getExtCertificatePolicies()))}}return(e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n")+"signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):i.lang.String.isHex(e)&&this.readCertHex(e))}function Ee(e){return s.SHA256(e).toString()}Ne.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var r=parseInt(e.substr(t+3,1));return 0==r?-1:0<r&&r<10?r+1:-2},Ne.getL=function(e,t){var r=Ne.getLblen(e,t);return r<1?"":e.substr(t+2,2*r)},Ne.getVblen=function(e,t){var r;return""==(r=Ne.getL(e,t))?-1:("8"===r.substr(0,1)?new o(r.substr(2),16):new o(r,16)).intValue()},Ne.getVidx=function(e,t){var r=Ne.getLblen(e,t);return r<0?r:t+2*(r+1)},Ne.getV=function(e,t){var r=Ne.getVidx(e,t),i=Ne.getVblen(e,t);return e.substr(r,2*i)},Ne.getTLV=function(e,t){return e.substr(t,2)+Ne.getL(e,t)+Ne.getV(e,t)},Ne.getTLVblen=function(e,t){return 2+2*Ne.getLblen(e,t)+2*Ne.getVblen(e,t)},Ne.getNextSiblingIdx=function(e,t){return Ne.getVidx(e,t)+2*Ne.getVblen(e,t)},Ne.getChildIdx=function(e,t){var r,i,n,s=Ne,o=[];r=s.getVidx(e,t),i=2*s.getVblen(e,t),"03"==e.substr(t,2)&&(r+=2,i-=2),n=0;for(var a=r;n<=i;){var u=s.getTLVblen(e,a);if((n+=u)<=i&&o.push(a),a+=u,n>=i)break}return o},Ne.getNthChildIdx=function(e,t,r){return Ne.getChildIdx(e,t)[r]},Ne.getIdxbyList=function(e,t,r,i){var n,s,o=Ne;return 0==r.length?void 0!==i&&e.substr(t,2)!==i?-1:t:(n=r.shift())>=(s=o.getChildIdx(e,t)).length?-1:o.getIdxbyList(e,s[n],r,i)},Ne.getIdxbyListEx=function(e,t,r,i){var n,s,o=Ne;if(0==r.length)return void 0!==i&&e.substr(t,2)!==i?-1:t;n=r.shift(),s=o.getChildIdx(e,t);for(var a=0,u=0;u<s.length;u++){var c=e.substr(s[u],2);if("number"==typeof n&&!o.isContextTag(c)&&a==n||"string"==typeof n&&o.isContextTag(c,n))return o.getIdxbyListEx(e,s[u],r,i);o.isContextTag(c)||a++}return-1},Ne.getTLVbyList=function(e,t,r,i){var n=Ne,s=n.getIdxbyList(e,t,r,i);return-1==s||s>=e.length?null:n.getTLV(e,s)},Ne.getTLVbyListEx=function(e,t,r,i){var n=Ne,s=n.getIdxbyListEx(e,t,r,i);return-1==s?null:n.getTLV(e,s)},Ne.getVbyList=function(e,t,r,i,n){var s,o,a=Ne;return-1==(s=a.getIdxbyList(e,t,r,i))||s>=e.length?null:(o=a.getV(e,s),!0===n&&(o=o.substr(2)),o)},Ne.getVbyListEx=function(e,t,r,i,n){var s,o,a=Ne;return-1==(s=a.getIdxbyListEx(e,t,r,i))?null:(o=a.getV(e,s),"03"==e.substr(s,2)&&!1!==n&&(o=o.substr(2)),o)},Ne.getInt=function(e,t,r){null==r&&(r=-1);try{var i=e.substr(t,2);if("02"!=i&&"03"!=i)return r;var n=Ne.getV(e,t);return"02"==i?parseInt(n,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var r=parseInt(t,16),i=e.substr(2),n=parseInt(i,16).toString(2);return"0"==n&&(n="00000000"),n=n.slice(0,0-r),parseInt(n,2)}catch(e){return-1}}(n)}catch(e){return r}},Ne.getOID=function(e,t,r){null==r&&(r=null);try{return"06"!=e.substr(t,2)?r:function(e){if(!ue(e))return null;try{var t=[],r=e.substr(0,2),i=parseInt(r,16);t[0]=new String(Math.floor(i/40)),t[1]=new String(i%40);for(var n=e.substr(2),s=[],o=0;o<n.length/2;o++)s.push(parseInt(n.substr(2*o,2),16));var a=[],u="";for(o=0;o<s.length;o++)128&s[o]?u+=le((127&s[o]).toString(2),7):(u+=le((127&s[o]).toString(2),7),a.push(new String(parseInt(u,2))),u="");var c=t.join(".");return a.length>0&&(c=c+"."+a.join(".")),c}catch(e){return null}}(Ne.getV(e,t))}catch(e){return r}},Ne.getOIDName=function(e,t,r){null==r&&(r=null);try{var n=Ne.getOID(e,t,r);if(n==r)return r;var s=i.asn1.x509.OID.oid2name(n);return""==s?n:s}catch(e){return r}},Ne.getString=function(e,t,r){null==r&&(r=null);try{return ee(Ne.getV(e,t))}catch(e){return r}},Ne.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},r=[],i=e.substr(0,2),n=parseInt(i,16);r[0]=new String(Math.floor(n/40)),r[1]=new String(n%40);for(var s=e.substr(2),o=[],a=0;a<s.length/2;a++)o.push(parseInt(s.substr(2*a,2),16));var u=[],c="";for(a=0;a<o.length;a++)128&o[a]?c+=t((127&o[a]).toString(2),7):(c+=t((127&o[a]).toString(2),7),u.push(new String(parseInt(c,2))),c="");var l=r.join(".");return u.length>0&&(l=l+"."+u.join(".")),l},Ne.dump=function(e,t,r,n){var s=Ne,o=s.getV,a=s.dump,u=s.getChildIdx,c=e;e instanceof i.asn1.ASN1Object&&(c=e.getEncodedHex());var l=function(e,t){return e.length<=2*t?e:e.substr(0,t)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-t,t)};void 0===t&&(t={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,d=t.ommit_long_octet;if("01"==(h=c.substr(r,2)))return"00"==(p=o(c,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+l(p=o(c,r),d)+"\n";if("03"==h){var p=o(c,r);return s.isASN1HEX(p.substr(2))?(D=n+"BITSTRING, encapsulates\n")+a(p.substr(2),t,0,n+" "):n+"BITSTRING "+l(p,d)+"\n"}if("04"==h)return p=o(c,r),s.isASN1HEX(p)?(D=n+"OCTETSTRING, encapsulates\n")+a(p,t,0,n+" "):n+"OCTETSTRING "+l(p,d)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var f=o(c,r),A=i.asn1.ASN1Util.oidHexToInt(f),M=i.asn1.x509.OID.oid2name(A),g=A.replace(/\./g," ");return""!=M?n+"ObjectIdentifier "+M+" ("+g+")\n":n+"ObjectIdentifier ("+g+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(c,r))+"\n";if("0c"==h)return n+"UTF8String '"+$(o(c,r))+"'\n";if("13"==h)return n+"PrintableString '"+$(o(c,r))+"'\n";if("14"==h)return n+"TeletexString '"+$(o(c,r))+"'\n";if("16"==h)return n+"IA5String '"+$(o(c,r))+"'\n";if("17"==h)return n+"UTCTime "+$(o(c,r))+"\n";if("18"==h)return n+"GeneralizedTime "+$(o(c,r))+"\n";if("1a"==h)return n+"VisualString '"+$(o(c,r))+"'\n";if("1e"==h)return n+"BMPString '"+oe(o(c,r))+"'\n";if("30"==h){if("3000"==c.substr(r,4))return n+"SEQUENCE {}\n";D=n+"SEQUENCE\n";var y=t;if((2==(N=u(c,r)).length||3==N.length)&&"06"==c.substr(N[0],2)&&"04"==c.substr(N[N.length-1],2)){M=s.oidname(o(c,N[0]));var v=JSON.parse(JSON.stringify(t));v.x509ExtName=M,y=v}for(var m=0;m<N.length;m++)D+=a(c,y,N[m],n+" ");return D}if("31"==h){D=n+"SET\n";var N=u(c,r);for(m=0;m<N.length;m++)D+=a(c,t,N[m],n+" ");return D}if(0!=(128&(h=parseInt(h,16)))){var D,w=31&h;if(0!=(32&h)){for(D=n+"["+w+"]\n",N=u(c,r),m=0;m<N.length;m++)D+=a(c,t,N[m],n+" ");return D}return p=o(c,r),Ne.isASN1HEX(p)?(D=n+"["+w+"]\n")+a(p,t,0,n+" "):(("68747470"==p.substr(0,8)||"subjectAltName"===t.x509ExtName&&2==w)&&(p=$(p)),n+"["+w+"] "+p+"\n")}return n+"UNKNOWN("+h+") "+o(c,r)+"\n"},Ne.isContextTag=function(e,t){var r,i;e=e.toLowerCase();try{r=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&r);try{return null!=t.match(/^\[[0-9]+\]$/)&&!((i=parseInt(t.substr(1,t.length-1),10))>31)&&128==(192&r)&&(31&r)==i}catch(e){return!1}},Ne.isASN1HEX=function(e){var t=Ne;if(e.length%2==1)return!1;var r=t.getVblen(e,0),i=e.substr(0,2),n=t.getL(e,0);return e.length-i.length-n.length==2*r},Ne.checkStrictDER=function(e,t,r,n,s){var o=Ne;if(void 0===r){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!i.lang.String.isHex(e))throw new Error("not hex string");r=e.length,s=(n=e.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(e,t).length>2*s)throw new Error("L of TLV too long: idx="+t);var a=o.getVblen(e,t);if(a>n)throw new Error("value of L too long than hex: idx="+t);var u=o.getTLV(e,t),c=u.length-2-o.getL(e,t).length;if(c!==2*a)throw new Error("V string length and L's value not the same:"+c+"/"+2*a);if(0===t&&e.length!=u.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+u.length);var l=e.substr(t,2);if("02"===l){var h=o.getVidx(e,t);if("00"==e.substr(h,2)&&e.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(l,16)){for(var d=o.getVblen(e,t),p=0,f=o.getChildIdx(e,t),A=0;A<f.length;A++)p+=o.getTLV(e,f[A]).length,o.checkStrictDER(e,f[A],r,n,s);if(2*d!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*d+"!="+p)}},Ne.oidname=function(e){var t=i.asn1;i.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var r=t.x509.OID.oid2name(e);return""===r&&(r=e),r},void 0!==i.asn1&&i.asn1||(i.asn1={}),void 0!==i.asn1.x509&&i.asn1.x509||(i.asn1.x509={}),i.asn1.x509.Certificate=function(e){i.asn1.x509.Certificate.superclass.constructor.call(this);var t=i.asn1,r=t.DERBitString,n=t.DERSequence,s=t.x509,o=s.TBSCertificate,a=s.AlgorithmIdentifier;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.sigalg;null!=e.sigalg.name&&(t=e.sigalg.name);var r=e.tbsobj.getEncodedHex(),n=new i.crypto.Signature({alg:t});n.init(e.cakey),n.updateHex(r),e.sighex=n.sign()},this.getPEM=function(){return re(this.getEncodedHex(),"CERTIFICATE")},this.getEncodedHex=function(){var e=this.params;if(null!=e.tbsobj&&null!=e.tbsobj||(e.tbsobj=new o(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new a({name:e.sigalg})),t.push(new r({hex:"00"+e.sighex})),new n({array:t}).getEncodedHex()},null!=e&&(this.params=e)},he(i.asn1.x509.Certificate,i.asn1.ASN1Object),i.asn1.x509.TBSCertificate=function(e){i.asn1.x509.TBSCertificate.superclass.constructor.call(this);var t=i.asn1,r=t.x509,n=t.DERTaggedObject,s=t.DERInteger,o=t.DERSequence,a=r.AlgorithmIdentifier,u=r.Time,c=r.X500Name,l=r.Extensions,h=r.SubjectPublicKeyInfo;this.params=null,this.setByParam=function(e){this.params=e},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version||1!=t.version){var r=2;null!=t.version&&(r=t.version-1);var d=new n({obj:new s({int:r})});e.push(d)}return e.push(new s(t.serial)),e.push(new a({name:t.sigalg})),e.push(new c(t.issuer)),e.push(new o({array:[new u(t.notbefore),new u(t.notafter)]})),e.push(new c(t.subject)),e.push(new h(me.getKey(t.sbjpubkey))),void 0!==t.ext&&t.ext.length>0&&e.push(new n({tag:"a3",obj:new l(t.ext)})),new i.asn1.DERSequence({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.TBSCertificate,i.asn1.ASN1Object),i.asn1.x509.Extensions=function(e){i.asn1.x509.Extensions.superclass.constructor.call(this);var t=i.asn1,r=t.DERSequence,n=t.x509;this.aParam=[],this.setByParam=function(e){this.aParam=e},this.getEncodedHex=function(){for(var e=[],t=0;t<this.aParam.length;t++){var i=this.aParam[t],s=i.extname,o=null;if(null!=i.extn)o=new n.PrivateExtension(i);else if("subjectKeyIdentifier"==s)o=new n.SubjectKeyIdentifier(i);else if("keyUsage"==s)o=new n.KeyUsage(i);else if("subjectAltName"==s)o=new n.SubjectAltName(i);else if("issuerAltName"==s)o=new n.IssuerAltName(i);else if("basicConstraints"==s)o=new n.BasicConstraints(i);else if("cRLDistributionPoints"==s)o=new n.CRLDistributionPoints(i);else if("certificatePolicies"==s)o=new n.CertificatePolicies(i);else if("authorityKeyIdentifier"==s)o=new n.AuthorityKeyIdentifier(i);else if("extKeyUsage"==s)o=new n.ExtKeyUsage(i);else if("authorityInfoAccess"==s)o=new n.AuthorityInfoAccess(i);else if("cRLNumber"==s)o=new n.CRLNumber(i);else if("cRLReason"==s)o=new n.CRLReason(i);else if("ocspNonce"==s)o=new n.OCSPNonce(i);else if("ocspNoCheck"==s)o=new n.OCSPNoCheck(i);else if("adobeTimeStamp"==s)o=new n.AdobeTimeStamp(i);else{if("subjectDirectoryAttributes"!=s)throw new Error("extension not supported:"+JSON.stringify(i));o=new n.SubjectDirectoryAttributes(i)}null!=o&&e.push(o)}return new r({array:e}).getEncodedHex()},null!=e&&this.setByParam(e)},he(i.asn1.x509.Extensions,i.asn1.ASN1Object),i.asn1.x509.Extension=function(e){i.asn1.x509.Extension.superclass.constructor.call(this);var t=i.asn1,r=t.DERObjectIdentifier,n=t.DEROctetString,s=(t.DERBitString,t.DERBoolean),o=t.DERSequence;this.getEncodedHex=function(){var e=new r({oid:this.oid}),t=new n({hex:this.getExtnValueHex()}),i=new Array;return i.push(e),this.critical&&i.push(new s),i.push(t),new o({array:i}).getEncodedHex()},this.critical=!1,void 0!==e&&void 0!==e.critical&&(this.critical=e.critical)},he(i.asn1.x509.Extension,i.asn1.ASN1Object),i.asn1.x509.KeyUsage=function(e){i.asn1.x509.KeyUsage.superclass.constructor.call(this,e);var t=xe.KEYUSAGE_NAME;if(this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.15",void 0!==e&&(void 0!==e.bin&&(this.asn1ExtnValue=new i.asn1.DERBitString(e)),void 0!==e.names&&void 0!==e.names.length)){for(var r=e.names,n="000000000",s=0;s<r.length;s++)for(var o=0;o<t.length;o++)r[s]===t[o]&&(n=n.substring(0,o)+"1"+n.substring(o+1,n.length));this.asn1ExtnValue=new i.asn1.DERBitString({bin:n})}},he(i.asn1.x509.KeyUsage,i.asn1.x509.Extension),i.asn1.x509.BasicConstraints=function(e){i.asn1.x509.BasicConstraints.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERBoolean,n=t.DERInteger,s=t.DERSequence;this.getExtnValueHex=function(){var e=new Array;this.cA&&e.push(new r),this.pathLen>-1&&e.push(new n({int:this.pathLen}));var t=new s({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.19",this.cA=!1,this.pathLen=-1,void 0!==e&&(void 0!==e.cA&&(this.cA=e.cA),void 0!==e.pathLen&&(this.pathLen=e.pathLen))},he(i.asn1.x509.BasicConstraints,i.asn1.x509.Extension),i.asn1.x509.CRLDistributionPoints=function(e){i.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,e);var t=i.asn1,r=t.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.setByDPArray=function(e){for(var n=[],s=0;s<e.length;s++)if(e[s]instanceof i.asn1.ASN1Object)n.push(e[s]);else{var o=new r.DistributionPoint(e[s]);n.push(o)}this.asn1ExtnValue=new t.DERSequence({array:n})},this.setByOneURI=function(e){var t=new r.DistributionPoint({fulluri:e});this.setByDPArray([t])},this.oid="2.5.29.31",void 0!==e&&(void 0!==e.array?this.setByDPArray(e.array):void 0!==e.uri&&this.setByOneURI(e.uri))},he(i.asn1.x509.CRLDistributionPoints,i.asn1.x509.Extension),i.asn1.x509.DistributionPoint=function(e){i.asn1.x509.DistributionPoint.superclass.constructor.call(this);var t=i.asn1,r=t.x509.DistributionPointName;this.getEncodedHex=function(){var e=new t.DERSequence;if(null!=this.asn1DP){var r=new t.DERTaggedObject({explicit:!0,tag:"a0",obj:this.asn1DP});e.appendASN1Object(r)}return this.hTLV=e.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.dpobj?this.asn1DP=e.dpobj:void 0!==e.dpname?this.asn1DP=new r(e.dpname):void 0!==e.fulluri&&(this.asn1DP=new r({full:[{uri:e.fulluri}]})))},he(i.asn1.x509.DistributionPoint,i.asn1.ASN1Object),i.asn1.x509.DistributionPointName=function(e){i.asn1.x509.DistributionPointName.superclass.constructor.call(this);var t=i.asn1,r=t.DERTaggedObject;if(this.getEncodedHex=function(){if("full"!=this.type)throw new Error("currently type shall be 'full': "+this.type);return this.asn1Obj=new r({explicit:!1,tag:this.tag,obj:this.asn1V}),this.hTLV=this.asn1Obj.getEncodedHex(),this.hTLV},void 0!==e)if(t.x509.GeneralNames.prototype.isPrototypeOf(e))this.type="full",this.tag="a0",this.asn1V=e;else{if(void 0===e.full)throw new Error("This class supports GeneralNames only as argument");this.type="full",this.tag="a0",this.asn1V=new t.x509.GeneralNames(e.full)}},he(i.asn1.x509.DistributionPointName,i.asn1.ASN1Object),i.asn1.x509.CertificatePolicies=function(e){i.asn1.x509.CertificatePolicies.superclass.constructor.call(this,e);var t=i.asn1,r=t.x509,n=t.DERSequence,s=r.PolicyInformation;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++)e.push(new s(this.params.array[t]));var r=new n({array:e});return this.asn1ExtnValue=r,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.32",void 0!==e&&(this.params=e)},he(i.asn1.x509.CertificatePolicies,i.asn1.x509.Extension),i.asn1.x509.PolicyInformation=function(e){i.asn1.x509.PolicyInformation.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.DERObjectIdentifier,s=t.x509.PolicyQualifierInfo;this.params=null,this.getEncodedHex=function(){if(void 0===this.params.policyoid&&void 0===this.params.array)throw new Error("parameter oid and array missing");var e=[new n(this.params.policyoid)];if(void 0!==this.params.array){for(var t=[],i=0;i<this.params.array.length;i++)t.push(new s(this.params.array[i]));t.length>0&&e.push(new r({array:t}))}return new r({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.PolicyInformation,i.asn1.ASN1Object),i.asn1.x509.PolicyQualifierInfo=function(e){i.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.DERIA5String,s=t.DERObjectIdentifier,o=t.x509.UserNotice;this.params=null,this.getEncodedHex=function(){return void 0!==this.params.cps?new r({array:[new s({oid:"1.3.6.1.5.5.7.2.1"}),new n({str:this.params.cps})]}).getEncodedHex():null!=this.params.unotice?new r({array:[new s({oid:"1.3.6.1.5.5.7.2.2"}),new o(this.params.unotice)]}).getEncodedHex():void 0},void 0!==e&&(this.params=e)},he(i.asn1.x509.PolicyQualifierInfo,i.asn1.ASN1Object),i.asn1.x509.UserNotice=function(e){i.asn1.x509.UserNotice.superclass.constructor.call(this,e);var t=i.asn1.DERSequence,r=(i.asn1.DERInteger,i.asn1.x509.DisplayText),n=i.asn1.x509.NoticeReference;this.params=null,this.getEncodedHex=function(){var e=[];return void 0!==this.params.noticeref&&e.push(new n(this.params.noticeref)),void 0!==this.params.exptext&&e.push(new r(this.params.exptext)),new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.UserNotice,i.asn1.ASN1Object),i.asn1.x509.NoticeReference=function(e){i.asn1.x509.NoticeReference.superclass.constructor.call(this,e);var t=i.asn1.DERSequence,r=i.asn1.DERInteger,n=i.asn1.x509.DisplayText;this.params=null,this.getEncodedHex=function(){var e=[];if(void 0!==this.params.org&&e.push(new n(this.params.org)),void 0!==this.params.noticenum){for(var i=[],s=this.params.noticenum,o=0;o<s.length;o++)i.push(new r(s[o]));e.push(new t({array:i}))}if(0==e.length)throw new Error("parameter is empty");return new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.NoticeReference,i.asn1.ASN1Object),i.asn1.x509.DisplayText=function(e){i.asn1.x509.DisplayText.superclass.constructor.call(this,e),this.hT="0c",void 0!==e&&("ia5"===e.type?this.hT="16":"vis"===e.type?this.hT="1a":"bmp"===e.type&&(this.hT="1e"))},he(i.asn1.x509.DisplayText,i.asn1.DERAbstractString),i.asn1.x509.ExtKeyUsage=function(e){i.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,e);var t=i.asn1;this.setPurposeArray=function(e){this.asn1ExtnValue=new t.DERSequence;for(var r=0;r<e.length;r++){var i=new t.DERObjectIdentifier(e[r]);this.asn1ExtnValue.appendASN1Object(i)}},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.37",void 0!==e&&void 0!==e.array&&this.setPurposeArray(e.array)},he(i.asn1.x509.ExtKeyUsage,i.asn1.x509.Extension),i.asn1.x509.AuthorityKeyIdentifier=function(e){i.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,e);var t=i,r=t.asn1,n=r.DERTaggedObject,s=r.x509.GeneralNames;t.crypto.Util.isKey,this.asn1KID=null,this.asn1CertIssuer=null,this.asn1CertSN=null,this.getExtnValueHex=function(){var e=new Array;this.asn1KID&&e.push(new n({explicit:!1,tag:"80",obj:this.asn1KID})),this.asn1CertIssuer&&e.push(new n({explicit:!1,tag:"a1",obj:new s([{dn:this.asn1CertIssuer}])})),this.asn1CertSN&&e.push(new n({explicit:!1,tag:"82",obj:this.asn1CertSN}));var t=new r.DERSequence({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new i.asn1.DEROctetString(e);else if("object"==typeof e&&i.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN ")){var t=e;"string"==typeof e&&(t=me.getKey(e));var r=me.getKeyID(t);this.asn1KID=new i.asn1.DEROctetString({hex:r})}},this.setCertIssuerByParam=function(e){void 0!==e.str||void 0!==e.ldapstr||void 0!==e.hex||void 0!==e.certsubject||void 0!==e.certissuer?this.asn1CertIssuer=new i.asn1.x509.X500Name(e):"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&-1!=e.indexOf("CERTIFICATE")&&(this.asn1CertIssuer=new i.asn1.x509.X500Name({certissuer:e}))},this.setCertSNByParam=function(e){if(void 0!==e.str||void 0!==e.bigint||void 0!==e.hex)this.asn1CertSN=new i.asn1.DERInteger(e);else if("string"==typeof e&&-1!=e.indexOf("BEGIN ")&&e.indexOf("CERTIFICATE")){var t=new xe;t.readCertPEM(e);var r=t.getSerialNumberHex();this.asn1CertSN=new i.asn1.DERInteger({hex:r})}},this.oid="2.5.29.35",void 0!==e&&(void 0!==e.kid&&this.setKIDByParam(e.kid),void 0!==e.issuer&&this.setCertIssuerByParam(e.issuer),void 0!==e.sn&&this.setCertSNByParam(e.sn),void 0!==e.issuersn&&"string"==typeof e.issuersn&&-1!=e.issuersn.indexOf("BEGIN ")&&e.issuersn.indexOf("CERTIFICATE")&&(this.setCertSNByParam(e.issuersn),this.setCertIssuerByParam(e.issuersn)))},he(i.asn1.x509.AuthorityKeyIdentifier,i.asn1.x509.Extension),i.asn1.x509.SubjectKeyIdentifier=function(e){i.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,e);var t=i.asn1.DEROctetString;this.asn1KID=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=this.asn1KID,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new t(e);else if("object"==typeof e&&i.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN")){var r=e;"string"==typeof e&&(r=me.getKey(e));var n=me.getKeyID(r);this.asn1KID=new i.asn1.DEROctetString({hex:n})}},this.oid="2.5.29.14",void 0!==e&&void 0!==e.kid&&this.setKIDByParam(e.kid)},he(i.asn1.x509.SubjectKeyIdentifier,i.asn1.x509.Extension),i.asn1.x509.AuthorityInfoAccess=function(e){i.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,e),this.setAccessDescriptionArray=function(e){for(var t=new Array,r=i.asn1,n=r.DERSequence,s=r.DERObjectIdentifier,o=r.x509.GeneralName,a=0;a<e.length;a++){var u,c=e[a];if(void 0!==c.ocsp)u=new n({array:[new s({oid:"1.3.6.1.5.5.7.48.1"}),new o({uri:c.ocsp})]});else{if(void 0===c.caissuer)throw new Error("unknown AccessMethod parameter: "+JSON.stringify(c));u=new n({array:[new s({oid:"1.3.6.1.5.5.7.48.2"}),new o({uri:c.caissuer})]})}t.push(u)}this.asn1ExtnValue=new n({array:t})},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.1.1",void 0!==e&&void 0!==e.array&&this.setAccessDescriptionArray(e.array)},he(i.asn1.x509.AuthorityInfoAccess,i.asn1.x509.Extension),i.asn1.x509.SubjectAltName=function(e){i.asn1.x509.SubjectAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new i.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.17",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},he(i.asn1.x509.SubjectAltName,i.asn1.x509.Extension),i.asn1.x509.IssuerAltName=function(e){i.asn1.x509.IssuerAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new i.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.18",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},he(i.asn1.x509.IssuerAltName,i.asn1.x509.Extension),i.asn1.x509.SubjectDirectoryAttributes=function(e){i.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.ASN1Util.newObject,s=t.x509.OID.name2oid;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++){var i=this.params.array[t],o={seq:[{oid:"1.2.3.4"},{set:[{utf8str:"DE"}]}]};if("dateOfBirth"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={gentime:i.str};else if("placeOfBirth"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={utf8str:i.str};else if("gender"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str};else if("countryOfCitizenship"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str};else{if("countryOfResidence"!=i.attr)throw new Error("unsupported attribute: "+i.attr);o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str}}e.push(new n(o))}var a=new r({array:e});return this.asn1ExtnValue=a,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.9",void 0!==e&&(this.params=e)},he(i.asn1.x509.SubjectDirectoryAttributes,i.asn1.x509.Extension),i.asn1.x509.PrivateExtension=function(e){i.asn1.x509.PrivateExtension.superclass.constructor.call(this,e);var t=i,r=t.lang.String.isHex,n=t.asn1,s=n.x509.OID.name2oid,o=n.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.oid=s(e.extname),this.params=e},this.getExtnValueHex=function(){if(null==this.params.extname||null==this.params.extn)throw new Error("extname or extnhex not specified");var e=this.params.extn;if("string"==typeof e&&r(e))return e;if("object"==typeof e)try{return o(e).getEncodedHex()}catch(e){}throw new Error("unsupported extn value")},null!=e&&this.setByParam(e)},he(i.asn1.x509.PrivateExtension,i.asn1.x509.Extension),i.asn1.x509.CRL=function(e){i.asn1.x509.CRL.superclass.constructor.call(this);var t=i.asn1,r=t.DERSequence,n=t.DERBitString,s=t.x509,o=s.AlgorithmIdentifier,a=s.TBSCertList;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=new a(this.params).getEncodedHex(),t=new i.crypto.Signature({alg:this.params.sigalg});t.init(this.params.cakey),t.updateHex(e);var r=t.sign();this.params.sighex=r},this.getPEM=function(){return re(this.getEncodedHex(),"X509 CRL")},this.getEncodedHex=function(){var e=this.params;if(null==e.tbsobj&&(e.tbsobj=new a(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new o({name:e.sigalg})),t.push(new n({hex:"00"+e.sighex})),new r({array:t}).getEncodedHex()},null!=e&&(this.params=e)},he(i.asn1.x509.CRL,i.asn1.ASN1Object),i.asn1.x509.TBSCertList=function(e){i.asn1.x509.TBSCertList.superclass.constructor.call(this);var t=i.asn1,r=t.DERInteger,n=t.DERSequence,s=t.DERTaggedObject,o=(t.DERObjectIdentifier,t.x509),a=o.AlgorithmIdentifier,u=o.Time,c=o.Extensions,l=o.X500Name;this.params=null,this.setByParam=function(e){this.params=e},this.getRevCertSequence=function(){for(var e=[],t=this.params.revcert,i=0;i<t.length;i++){var s=[new r(t[i].sn),new u(t[i].date)];null!=t[i].ext&&s.push(new c(t[i].ext)),e.push(new n({array:s}))}return new n({array:e})},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version){var i=t.version-1,o=new r({int:i});e.push(o)}if(e.push(new a({name:t.sigalg})),e.push(new l(t.issuer)),e.push(new u(t.thisupdate)),null!=t.nextupdate&&e.push(new u(t.nextupdate)),null!=t.revcert&&e.push(this.getRevCertSequence()),null!=t.ext){var h=new c(t.ext);e.push(new s({tag:"a0",explicit:!0,obj:h}))}return new n({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.TBSCertList,i.asn1.ASN1Object),i.asn1.x509.CRLEntry=function(e){i.asn1.x509.CRLEntry.superclass.constructor.call(this);var t=i.asn1;this.setCertSerial=function(e){this.sn=new t.DERInteger(e)},this.setRevocationDate=function(e){this.time=new t.x509.Time(e)},this.getEncodedHex=function(){var e=new t.DERSequence({array:[this.sn,this.time]});return this.TLV=e.getEncodedHex(),this.TLV},void 0!==e&&(void 0!==e.time&&this.setRevocationDate(e.time),void 0!==e.sn&&this.setCertSerial(e.sn))},he(i.asn1.x509.CRLEntry,i.asn1.ASN1Object),i.asn1.x509.CRLNumber=function(e){i.asn1.x509.CRLNumber.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DERInteger(this.params.num),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.20",null!=e&&(this.params=e)},he(i.asn1.x509.CRLNumber,i.asn1.x509.Extension),i.asn1.x509.CRLReason=function(e){i.asn1.x509.CRLReason.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DEREnumerated(this.params.code),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.21",null!=e&&(this.params=e)},he(i.asn1.x509.CRLReason,i.asn1.x509.Extension),i.asn1.x509.OCSPNonce=function(e){i.asn1.x509.OCSPNonce.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DEROctetString(this.params),this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.2",null!=e&&(this.params=e)},he(i.asn1.x509.OCSPNonce,i.asn1.x509.Extension),i.asn1.x509.OCSPNoCheck=function(e){i.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DERNull,this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.5",null!=e&&(this.params=e)},he(i.asn1.x509.OCSPNoCheck,i.asn1.x509.Extension),i.asn1.x509.AdobeTimeStamp=function(e){i.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERInteger,n=t.DERBoolean,s=t.DERSequence,o=t.x509.GeneralName;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[new r(1)];return t.push(new o({uri:e.uri})),null!=e.reqauth&&t.push(new n(e.reqauth)),this.asn1ExtnValue=new s({array:t}),this.asn1ExtnValue.getEncodedHex()},this.oid="1.2.840.113583.1.1.9.1",void 0!==e&&this.setByParam(e)},he(i.asn1.x509.AdobeTimeStamp,i.asn1.x509.Extension),i.asn1.x509.X500Name=function(e){i.asn1.x509.X500Name.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=i.asn1,r=t.x509,n=r.RDN;this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var r=e.split("/");r.shift();for(var i=[],s=0;s<r.length;s++)if(r[s].match(/^[^=]+=.+$/))i.push(r[s]);else{var o=i.length-1;i[o]=i[o]+"/"+r[s]}for(s=0;s<i.length;s++)this.asn1Array.push(new n({str:i[s],rule:this.sRule}))},this.setByLdapString=function(e,t){void 0!==t&&(this.sRule=t);var i=r.X500Name.ldapToCompat(e);this.setByString(i,t)},this.setByObject=function(e,t){for(var r in void 0!==t&&(this.sRule=t),e)if(e.hasOwnProperty(r)){var i=new n({str:r+"="+e[r],rule:this.sRule});this.asn1Array?this.asn1Array.push(i):this.asn1Array=[i]}},this.setByParam=function(e){var t;void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.array?this.paramArray=e.array:void 0!==e.str?this.setByString(e.str):void 0!==e.ldapstr?this.setByLdapString(e.ldapstr):void 0!==e.hex?this.hTLV=e.hex:void 0!==e.certissuer?((t=new xe).readCertPEM(e.certissuer),this.hTLV=t.getIssuerHex()):void 0!==e.certsubject?((t=new xe).readCertPEM(e.certsubject),this.hTLV=t.getSubjectHex()):"object"==typeof e&&void 0===e.certsubject&&void 0===e.certissuer&&this.setByObject(e)},this.getEncodedHex=function(){if("string"==typeof this.hTLV)return this.hTLV;if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var r={array:this.paramArray[e]};"utf8"!=this.sRule&&(r.rule=this.sRule);var i=new n(r);this.asn1Array.push(i)}var s=new t.DERSequence({array:this.asn1Array});return this.hTLV=s.getEncodedHex(),this.hTLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.X500Name,i.asn1.ASN1Object),i.asn1.x509.X500Name.compatToLDAP=function(e){if("/"!==e.substr(0,1))throw"malformed input";var t=(e=e.substr(1)).split("/");return t.reverse(),(t=t.map((function(e){return e.replace(/,/,"\\,")}))).join(",")},i.asn1.x509.X500Name.onelineToLDAP=function(e){return i.asn1.x509.X500Name.compatToLDAP(e)},i.asn1.x509.X500Name.ldapToCompat=function(e){for(var t=e.split(","),r=!1,i=[],n=0;t.length>0;n++){var s=t.shift();if(!0===r){var o=(i.pop()+","+s).replace(/\\,/g,",");i.push(o),r=!1}else i.push(s);"\\"===s.substr(-1,1)&&(r=!0)}return(i=i.map((function(e){return e.replace("/","\\/")}))).reverse(),"/"+i.join("/")},i.asn1.x509.X500Name.ldapToOneline=function(e){return i.asn1.x509.X500Name.ldapToCompat(e)},i.asn1.x509.RDN=function(e){i.asn1.x509.RDN.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=i.asn1.x509.AttributeTypeAndValue;this.setByParam=function(e){void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.str&&this.addByMultiValuedString(e.str),void 0!==e.array&&(this.paramArray=e.array)},this.addByString=function(e){this.asn1Array.push(new i.asn1.x509.AttributeTypeAndValue({str:e,rule:this.sRule}))},this.addByMultiValuedString=function(e){for(var t=i.asn1.x509.RDN.parseString(e),r=0;r<t.length;r++)this.addByString(t[r])},this.getEncodedHex=function(){if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var r=this.paramArray[e];void 0!==r.rule&&"utf8"!=this.sRule&&(r.rule=this.sRule);var n=new t(r);this.asn1Array.push(n)}var s=new i.asn1.DERSet({array:this.asn1Array});return this.TLV=s.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.RDN,i.asn1.ASN1Object),i.asn1.x509.RDN.parseString=function(e){for(var t=e.split(/\+/),r=!1,i=[],n=0;t.length>0;n++){var s=t.shift();if(!0===r){var o=(i.pop()+"+"+s).replace(/\\\+/g,"+");i.push(o),r=!1}else i.push(s);"\\"===s.substr(-1,1)&&(r=!0)}var a=!1,u=[];for(n=0;i.length>0;n++){if(s=i.shift(),!0===a){var c=u.pop();s.match(/"$/)?(o=(c+"+"+s).replace(/^([^=]+)="(.*)"$/,"$1=$2"),u.push(o),a=!1):u.push(c+"+"+s)}else u.push(s);s.match(/^[^=]+="/)&&(a=!0)}return u},i.asn1.x509.AttributeTypeAndValue=function(e){i.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this),this.sRule="utf8",this.sType=null,this.sValue=null,this.dsType=null;var t=i,r=t.asn1,n=r.DERSequence,s=r.DERUTF8String,o=r.DERPrintableString,a=r.DERTeletexString,u=r.DERIA5String,c=r.DERVisibleString,l=r.DERBMPString,h=t.lang.String.isMail,d=t.lang.String.isPrintable;this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.ds&&(this.dsType=e.ds),void 0===e.value&&void 0!==e.str){var t=e.str.match(/^([^=]+)=(.+)$/);if(!t)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.sType=t[1],this.sValue=t[2]}else this.sType=e.type,this.sValue=e.value},this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var r=e.match(/^([^=]+)=(.+)$/);if(!r)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.setByAttrTypeAndValueStr(r[1],r[2])},this._getDsType=function(){var e=this.sType,t=this.sValue,r=this.sRule;return"prn"===r?"CN"==e&&h(t)?"ia5":d(t)?"prn":"utf8":"utf8"===r?"CN"==e&&h(t)?"ia5":"C"==e?"prn":"utf8":"utf8"},this.setByAttrTypeAndValueStr=function(e,t,r){void 0!==r&&(this.sRule=r),this.sType=e,this.sValue=t},this.getValueObj=function(e,t){if("utf8"==e)return new s({str:t});if("prn"==e)return new o({str:t});if("tel"==e)return new a({str:t});if("ia5"==e)return new u({str:t});if("vis"==e)return new c({str:t});if("bmp"==e)return new l({str:t});throw new Error("unsupported directory string type: type="+e+" value="+t)},this.getEncodedHex=function(){null==this.dsType&&(this.dsType=this._getDsType());var e=i.asn1.x509.OID.atype2obj(this.sType),t=this.getValueObj(this.dsType,this.sValue),r=new n({array:[e,t]});return this.TLV=r.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.AttributeTypeAndValue,i.asn1.ASN1Object),i.asn1.x509.SubjectPublicKeyInfo=function(e){i.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var t=i,r=t.asn1,n=r.DERInteger,s=r.DERBitString,o=r.DERObjectIdentifier,a=r.DERSequence,u=r.ASN1Util.newObject,c=r.x509.AlgorithmIdentifier,l=t.crypto;l.ECDSA,l.DSA,this.getASN1Object=function(){if(null==this.asn1AlgId||null==this.asn1SubjPKey)throw"algId and/or subjPubKey not set";return new a({array:[this.asn1AlgId,this.asn1SubjPKey]})},this.getEncodedHex=function(){var e=this.getASN1Object();return this.hTLV=e.getEncodedHex(),this.hTLV},this.setPubKey=function(e){try{if(e instanceof V){var t=u({seq:[{int:{bigint:e.n}},{int:{int:e.e}}]}).getEncodedHex();this.asn1AlgId=new c({name:"rsaEncryption"}),this.asn1SubjPKey=new s({hex:"00"+t})}}catch(e){}try{if(e instanceof i.crypto.ECDSA){var r=new o({name:e.curveName});this.asn1AlgId=new c({name:"ecPublicKey",asn1params:r}),this.asn1SubjPKey=new s({hex:"00"+e.pubKeyHex})}}catch(e){}try{if(e instanceof i.crypto.DSA){r=new u({seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}),this.asn1AlgId=new c({name:"dsa",asn1params:r});var a=new n({bigint:e.y});this.asn1SubjPKey=new s({hex:"00"+a.getEncodedHex()})}}catch(e){}},void 0!==e&&this.setPubKey(e)},he(i.asn1.x509.SubjectPublicKeyInfo,i.asn1.ASN1Object),i.asn1.x509.Time=function(e){i.asn1.x509.Time.superclass.constructor.call(this);var t=i.asn1,r=t.DERUTCTime,n=t.DERGeneralizedTime;this.setTimeParams=function(e){this.timeParams=e},this.getEncodedHex=function(){var e=null;return e=null!=this.timeParams?"utc"==this.type?new r(this.timeParams):new n(this.timeParams):"utc"==this.type?new r:new n,this.TLV=e.getEncodedHex(),this.TLV},this.type="utc",void 0!==e&&(void 0!==e.type?this.type=e.type:void 0!==e.str&&(e.str.match(/^[0-9]{12}Z$/)&&(this.type="utc"),e.str.match(/^[0-9]{14}Z$/)&&(this.type="gen")),this.timeParams=e)},he(i.asn1.x509.Time,i.asn1.ASN1Object),i.asn1.x509.AlgorithmIdentifier=function(e){i.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this),this.nameAlg=null,this.asn1Alg=null,this.asn1Params=null,this.paramEmpty=!1;var t=i.asn1,r=t.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;if(this.getEncodedHex=function(){if(null===this.nameAlg&&null===this.asn1Alg)throw new Error("algorithm not specified");if(null!==this.nameAlg){var e=null;for(var i in r)i===this.nameAlg&&(e=r[i]);if(null!==e)return this.hTLV=e,this.hTLV}null!==this.nameAlg&&null===this.asn1Alg&&(this.asn1Alg=t.x509.OID.name2obj(this.nameAlg));var n=[this.asn1Alg];null!==this.asn1Params&&n.push(this.asn1Params);var s=new t.DERSequence({array:n});return this.hTLV=s.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.name&&(this.nameAlg=e.name),void 0!==e.asn1params&&(this.asn1Params=e.asn1params),void 0!==e.paramempty&&(this.paramEmpty=e.paramempty)),null===this.asn1Params&&!1===this.paramEmpty&&null!==this.nameAlg){void 0!==this.nameAlg.name&&(this.nameAlg=this.nameAlg.name);var n=this.nameAlg.toLowerCase();"withdsa"!==n.substr(-7,7)&&"withecdsa"!==n.substr(-9,9)&&(this.asn1Params=new t.DERNull)}},he(i.asn1.x509.AlgorithmIdentifier,i.asn1.ASN1Object),i.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},i.asn1.x509.GeneralName=function(e){i.asn1.x509.GeneralName.superclass.constructor.call(this);var t={rfc822:"81",dns:"82",dn:"a4",uri:"86",ip:"87"},r=i.asn1,n=(r.DERSequence,r.DEROctetString),s=r.DERIA5String,o=r.DERTaggedObject,a=r.ASN1Object,u=r.x509.X500Name,c=ie;this.explicit=!1,this.setByParam=function(e){var r=null;if(void 0!==e){if(void 0!==e.rfc822&&(this.type="rfc822",r=new s({str:e[this.type]})),void 0!==e.dns&&(this.type="dns",r=new s({str:e[this.type]})),void 0!==e.uri&&(this.type="uri",r=new s({str:e[this.type]})),void 0!==e.dn&&(this.type="dn",this.explicit=!0,r="string"==typeof e.dn?new u({str:e.dn}):e.dn instanceof i.asn1.x509.X500Name?e.dn:new u(e.dn)),void 0!==e.ldapdn&&(this.type="dn",this.explicit=!0,r=new u({ldapstr:e.ldapdn})),void 0!==e.certissuer){this.type="dn",this.explicit=!0;var l=null;if((d=e.certissuer).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certissuer param not cert";(p=new xe).hex=l;var h=p.getIssuerHex();(r=new a).hTLV=h}if(void 0!==e.certsubj){var d,p;if(this.type="dn",this.explicit=!0,l=null,(d=e.certsubj).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certsubj param not cert";(p=new xe).hex=l,h=p.getSubjectHex(),(r=new a).hTLV=h}if(void 0!==e.ip){this.type="ip",this.explicit=!1;var f,A=e.ip,M="malformed IP address";if(A.match(/^[0-9.]+[.][0-9.]+$/)){if(8!==(f=function(e){e=(e=(e=e.replace(/^\s*\[\s*/,"")).replace(/\s*\]\s*$/,"")).replace(/\s*/g,"");try{return e.split(/,/).map((function(e,t,r){var i=parseInt(e);if(i<0||255<i)throw"integer not in range 0-255";return("00"+i.toString(16)).slice(-2)})).join("")}catch(e){throw"malformed integer array string: "+e}}("["+A.split(".").join(",")+"]")).length)throw M}else if(A.match(/^[0-9A-Fa-f:]+:[0-9A-Fa-f:]+$/))f=function(e){var t="malformed IPv6 address";if(!e.match(/^[0-9A-Fa-f:]+$/))throw t;var r=(e=e.toLowerCase()).split(":").length-1;if(r<2)throw t;var i=":".repeat(7-r+2),n=(e=e.replace("::",i)).split(":");if(8!=n.length)throw t;for(var s=0;s<8;s++)n[s]=("0000"+n[s]).slice(-4);return n.join("")}(A);else{if(!A.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw M;f=A}r=new n({hex:f})}if(null==this.type)throw"unsupported type in params="+e;this.asn1Obj=new o({explicit:this.explicit,tag:t[this.type],obj:r})}},this.getEncodedHex=function(){return this.asn1Obj.getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.GeneralName,i.asn1.ASN1Object),i.asn1.x509.GeneralNames=function(e){i.asn1.x509.GeneralNames.superclass.constructor.call(this);var t=i.asn1;this.setByParamArray=function(e){for(var r=0;r<e.length;r++){var i=new t.x509.GeneralName(e[r]);this.asn1Array.push(i)}},this.getEncodedHex=function(){return new t.DERSequence({array:this.asn1Array}).getEncodedHex()},this.asn1Array=new Array,void 0!==e&&this.setByParamArray(e)},he(i.asn1.x509.GeneralNames,i.asn1.ASN1Object),i.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],r=new i.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=r,r},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var r=new i.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=r,r}},i.asn1.x509.OID.oid2name=function(e){var t=i.asn1.x509.OID.name2oidList;for(var r in t)if(t[r]==e)return r;return""},i.asn1.x509.OID.oid2atype=function(e){var t=i.asn1.x509.OID.atype2oidList;for(var r in t)if(t[r]==e)return r;return e},i.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=i.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},i.asn1.x509.X509Util={},i.asn1.x509.X509Util.newCertPEM=function(e){var t=i.asn1.x509;return t.TBSCertificate,new(0,t.Certificate)(e).getPEM()},V.getPosArrayOfChildrenFromHex=function(e){return Ne.getChildIdx(e,0)},V.getHexValueArrayOfChildrenFromHex=function(e){var t,r=Ne.getV,i=r(e,(t=V.getPosArrayOfChildrenFromHex(e))[0]),n=r(e,t[1]),s=r(e,t[2]),o=r(e,t[3]),a=r(e,t[4]),u=r(e,t[5]),c=r(e,t[6]),l=r(e,t[7]),h=r(e,t[8]);return(t=new Array).push(i,n,s,o,a,u,c,l,h),t},V.prototype.readPrivateKeyFromPEMString=function(e){var t=ie(e),r=V.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},V.prototype.readPKCS5PrvKeyHex=function(e){var t=V.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},V.prototype.readPKCS8PrvKeyHex=function(e){var t,r,i,n,s,o,a,u,c=Ne,l=c.getVbyListEx;if(!1===c.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=l(e,0,[2,0,1],"02"),r=l(e,0,[2,0,2],"02"),i=l(e,0,[2,0,3],"02"),n=l(e,0,[2,0,4],"02"),s=l(e,0,[2,0,5],"02"),o=l(e,0,[2,0,6],"02"),a=l(e,0,[2,0,7],"02"),u=l(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,r,i,n,s,o,a,u)},V.prototype.readPKCS5PubKeyHex=function(e){var t=Ne,r=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var i=t.getChildIdx(e,0);if(2!==i.length||"02"!==e.substr(i[0],2)||"02"!==e.substr(i[1],2))throw new Error("wrong hex for PKCS#5 public key");var n=r(e,i[0]),s=r(e,i[1]);this.setPublic(n,s)},V.prototype.readPKCS8PubKeyHex=function(e){var t=Ne;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(r)},V.prototype.readCertPubKeyHex=function(e,t){var r,i;(r=new xe).readCertHex(e),i=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(i)},V.prototype.sign=function(e,t){var r,n=(r=e,i.crypto.Util.hashString(r,t));return this.signWithMessageHash(n,t)},V.prototype.signWithMessageHash=function(e,t){var r=Y(i.crypto.Util.getPaddedDigestInfoHex(e,t,this.n.bitLength()),16);return De(this.doPrivate(r).toString(16),this.n.bitLength())},V.prototype.signPSS=function(e,t,r){var n,s=(n=te(e),i.crypto.Util.hashHex(n,t));return void 0===r&&(r=-1),this.signWithMessageHashPSS(s,t,r)},V.prototype.signWithMessageHashPSS=function(e,t,r){var n,s=ee(e),a=s.length,u=this.n.bitLength()-1,c=Math.ceil(u/8),l=function(e){return i.crypto.Util.hashHex(e,t)};if(-1===r||void 0===r)r=a;else if(-2===r)r=c-a-2;else if(r<-2)throw new Error("invalid salt length");if(c<a+r+2)throw new Error("data too long");var h="";r>0&&(h=new Array(r),(new Q).nextBytes(h),h=String.fromCharCode.apply(String,h));var d=ee(l(te("\0\0\0\0\0\0\0\0"+s+h))),p=[];for(n=0;n<c-r-a-2;n+=1)p[n]=0;var f=String.fromCharCode.apply(String,p)+""+h,A=we(d,f.length,l),M=[];for(n=0;n<f.length;n+=1)M[n]=f.charCodeAt(n)^A.charCodeAt(n);var g=65280>>8*c-u&255;for(M[0]&=~g,n=0;n<a;n++)M.push(d.charCodeAt(n));return M.push(188),De(this.doPrivate(new o(M)).toString(16),this.n.bitLength())},V.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var r=Y(t,16),n=this.n.bitLength();if(r.bitLength()>n)return!1;var s=this.doPublic(r).toString(16);if(s.length+3!=n/4)return!1;var o=Te(s.replace(/^1f+00/,""));if(0==o.length)return!1;var a,u=o[0];return o[1]==(a=e,i.crypto.Util.hashString(a,u))},V.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=Y(t,16);if(r.bitLength()>this.n.bitLength())return 0;var i=Te(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=i.length&&(i[0],i[1]==e)},V.prototype.verifyPSS=function(e,t,r,n){var s=function(e){return i.crypto.Util.hashHex(e,r)}(te(e));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(s,t,r,n)},V.prototype.verifyWithMessageHashPSS=function(e,t,r,n){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var s,a=new o(t,16),u=function(e){return i.crypto.Util.hashHex(e,r)},c=ee(e),l=c.length,h=this.n.bitLength()-1,d=Math.ceil(h/8);if(-1===n||void 0===n)n=l;else if(-2===n)n=d-l-2;else if(n<-2)throw new Error("invalid salt length");if(d<l+n+2)throw new Error("data too long");var p=this.doPublic(a).toByteArray();for(s=0;s<p.length;s+=1)p[s]&=255;for(;p.length<d;)p.unshift(0);if(188!==p[d-1])throw new Error("encoded message does not end in 0xbc");var f=(p=String.fromCharCode.apply(String,p)).substr(0,d-l-1),A=p.substr(f.length,l),M=65280>>8*d-h&255;if(0!=(f.charCodeAt(0)&M))throw new Error("bits beyond keysize not zero");var g=we(A,f.length,u),y=[];for(s=0;s<f.length;s+=1)y[s]=f.charCodeAt(s)^g.charCodeAt(s);y[0]&=~M;var v=d-l-n-2;for(s=0;s<v;s+=1)if(0!==y[s])throw new Error("leftmost octets not zero");if(1!==y[v])throw new Error("0x01 marker not found");return A===ee(u(te("\0\0\0\0\0\0\0\0"+c+String.fromCharCode.apply(String,y.slice(-n)))))},V.SALT_LEN_HLEN=-1,V.SALT_LEN_MAX=-2,V.SALT_LEN_RECOVER=-2,xe.hex2dn=function(e,t){void 0===t&&(t=0);var r=new xe;return Ne.getTLV(e,t),r.getX500Name(e).str},xe.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var r=new Array,i=Ne.getChildIdx(e,t),n=0;n<i.length;n++)r.push(xe.hex2attrTypeValue(e,i[n]));return(r=r.map((function(e){return e.replace("+","\\+")}))).join("+")},xe.hex2attrTypeValue=function(e,t){var r=Ne,n=r.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var s=r.getChildIdx(e,t);2!==s.length||e.substr(s[0],2);var o=n(e,s[0]),a=i.asn1.ASN1Util.oidHexToInt(o);return i.asn1.x509.OID.oid2atype(a)+"="+ee(n(e,s[1]))},xe.getPublicKeyFromCertHex=function(e){var t=new xe;return t.readCertHex(e),t.getPublicKey()},xe.getPublicKeyFromCertPEM=function(e){var t=new xe;return t.readCertPEM(e),t.getPublicKey()},xe.getPublicKeyInfoPropOfCertPEM=function(e){var t,r,i=Ne.getVbyList,n={algparam:null};return(t=new xe).readCertPEM(e),r=t.getPublicKeyHex(),n.keyhex=i(r,0,[1],"03").substr(2),n.algoid=i(r,0,[0,0],"06"),"2a8648ce3d0201"===n.algoid&&(n.algparam=i(r,0,[0,1],"06")),n},xe.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var je,Ie=[(je=new xe,je.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),je)];function be(e,t){var r=e.getIssuerHex();if(r===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var i=function(e,t){for(var r=0,i=t;r<i.length;r++){var n=i[r];if(n.getSubjectHex()===e)return n}}(r,t);return!!i&&!1!==e.verifySignature(i.getPublicKey())&&be(i,t)}function ze(e){return e.getIssuerHex()!==e.getSubjectHex()&&be(e,Ie)}!function(e){var t=new xe;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);ze(t);Ie.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var Oe=function(e,t){return(Oe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function Se(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}Oe(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Le=function(){return(Le=Object.assign||function(e){for(var t,r=1,i=arguments.length;r<i;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};function Ce(e,t,r){if(r||2===arguments.length)for(var i,n=0,s=t.length;n<s;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))}Object.create,Object.create;var ke=2*Math.PI;function Pe(e){return(e%ke+ke)%ke}var _e=function(t){function r(r){var i=t.call(this,r,1,.1,1e3)||this;return i.pose={longitude:0,latitude:0,fov:r,offset:new e.Vector3},i.computePose(),i}return Se(r,t),r.prototype.computePose=function(){var t=this.getWorldDirection(new e.Vector3);this.pose.longitude=Pe(-Math.atan2(t.x,-t.z)),this.pose.latitude=-Math.asin(t.y/1),this.pose.fov=this.fov,this.pose.offset.copy(this.position)},r.prototype.setFromPose=function(t){var r,i,n,s,o=Pe(null!==(r=t.longitude)&&void 0!==r?r:this.pose.longitude),a=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,null!==(i=t.latitude)&&void 0!==i?i:this.pose.latitude)),u=null!==(n=t.fov)&&void 0!==n?n:this.pose.fov,c=null!==(s=t.offset)&&void 0!==s?s:this.pose.offset;this.position.copy(c);var l=Math.abs(Math.cos(a)),h=new e.Vector3(-Math.sin(o)*l,-Math.sin(a),-Math.cos(o)*l);this.lookAt(c.clone().add(h)),this.fov!==u&&(this.fov=u,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=o,this.pose.latitude=a,this.pose.fov=u,this.pose.offset.copy(c)},r.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,offset:this.pose.offset.clone()}},r}(e.PerspectiveCamera),Be=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Se(t,e),t.prototype.add=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.add.apply(this,t)},t.prototype.remove=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.remove.apply(this,t)},t}(e.Scene),Ue=function(t){function r(r){var i=r.preserveDrawingBuffer,n=void 0===i||i,s=r.backgroundColor,o=void 0===s?1579548:s,a=r.backgroundAlpha,u=void 0===a?1:a,c=r.pixelRatio,l=void 0===c?1:c,h=r.antialias,d=void 0!==h&&h,p=t.call(this,{antialias:d,preserveDrawingBuffer:n,alpha:u<1})||this;return p.setPixelRatio(l),p.setClearColor(o,u),p.outputEncoding=e.sRGBEncoding,p.autoClear=!0,p}return Se(r,t),r}(e.WebGLRenderer);function Re(e){return null==e}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function Ye(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Fe(){return(Ye()+Ye()+"-"+Ye()+"-4"+Ye().substr(0,3)+"-"+Ye()+"-"+Ye()+Ye()+Ye()).toLowerCase()}var Ve="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),He="undefined"!=typeof performance?function(){return Ve+performance.now()}:function(){return Date.now()},Ge=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}();function qe(e,t){void 0===e&&(e=Qe),void 0===t&&(t=0),Ge(t<=0?e:function(){return qe(e,t-1)})}function We(e,t){void 0===e&&(e=Qe);for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];var n=!1,s=function(i){e.call.apply(e,Ce([t,i],r,!1)),n||"function"!=typeof s||Ge(s)};return Ge(s),function(){s=null,n=!0}}var Ze=0;function Xe(e){Ze&&e(Ze);var t=He();Ge((function(){e(Ze=He()-t)}))}Xe(Qe);var Ke=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return Se(t,e),t}(e.Mesh),Je=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t}return Se(t,e),t.prototype.getTransparent=function(){var e;return this.traverse((function(t){void 0===e&&t instanceof Ke&&t.material.forEach((function(t){void 0===e&&1===t.uniforms.originOpacity.value&&(e=t.transparent)}))})),null!=e&&e},t.prototype.setTransparent=function(e){this.traverse((function(t){t instanceof Ke&&t.material.forEach((function(t){1===t.uniforms.originOpacity.value&&(t.transparent=e)}))}))},t.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof Ke){var r=t.material[0];e={pano0Map:r.pano0Map,pano0Matrix:r.pano0Matrix,pano1Map:r.pano1Map,pano1Matrix:r.pano1Matrix,modelAlpha:r.modelAlpha,progress:r.progress,useBlackTransition:r.useBlackTransition,perspToOrtho:r.perspToOrtho,opacity:r.opacity,pano0DepthMap:r.pano0DepthMap,panoVideoMap:r.panoVideoMap,panoVideoSize:r.panoVideoSize,panoVideoMatrix:r.panoVideoMatrix,panoVideoAlpha:r.panoVideoAlpha,panoTileMap:r.panoTileMap,panoTileMappings:r.panoTileMappings}}})),e},t.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof Ke&&t.material.forEach((function(t){void 0!==e.pano0Map&&(t.pano0Map=e.pano0Map),void 0!==e.pano0Matrix&&(t.pano0Matrix=e.pano0Matrix),void 0!==e.pano1Map&&(t.pano1Map=e.pano1Map),void 0!==e.pano1Matrix&&(t.pano1Matrix=e.pano1Matrix),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.perspToOrtho&&(t.perspToOrtho=e.perspToOrtho),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.pano0DepthMap&&(t.pano0DepthMap=e.pano0DepthMap),void 0!==e.panoVideoMap&&(t.panoVideoMap=e.panoVideoMap),void 0!==e.panoVideoSize&&(t.panoVideoSize=e.panoVideoSize),void 0!==e.panoVideoMatrix&&(t.panoVideoMatrix=e.panoVideoMatrix),void 0!==e.panoVideoAlpha&&(t.panoVideoAlpha=e.panoVideoAlpha),void 0!==e.panoTileMap&&(t.panoTileMap=e.panoTileMap),void 0!==e.panoTileMappings&&(t.panoTileMappings=e.panoTileMappings)}))}))},t.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof Ke){var t=[];e.material.forEach((function(e){var r=e.uniforms;Object.keys(r).map((function(e){if(["pano0Map","pano1Map","pano0DepthMap","panoVideoMap","panoTileMap"].indexOf(e)>=0)r[e].value=null;else{var i=r[e].value;i&&"function"==typeof i.dispose&&-1===t.indexOf(i)&&(r[e].value=null,t.push(i))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},t.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof Ke&&e.geometry.dispose()}))},t}(e.Group),$e=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return Se(t,e),t}(Je);const et=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{H{vs|z-znA-}n{|=ZnvH{vs|z-znA-}n{|>ZnvH{vs|z-rp@-z|qryPr{rH{vs|z-sy|n-}r}a|\\u|Hn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:-z]|vv|{;\b\tH--rp@-|yq]|vv|{-J-5z|qryZnv-7-n{s|zrq6;\b\tH--0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6----pnzrna|crr-J-|yq]|vv|{-:-pnzrn]|vv|{H--0r{qvs--}n{|=a|crr-J-5|yq]|vv|{-:-}n{|=Znvh@j;\b\t6-7-zn@5}n{|=Znv6H--}n{|>a|crr-J-5|yq]|vv|{-:-}n{|>Znvh@j;\b\t6-7-zn@5}n{|>Znv6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--rp@-pnzrn[|zny-J-5z|qrycvrZnv-7-rpA5=;=9-=;=9->;=9-=;=66;\b\tH--sy|n-|u|Qvn{pr-J-zn5=;=>9-q|5pnzrn[|zny9-z|qryPr{r-:-pnzrn]|vv|{66H--tyl]|vv|{;-J-zv5-tyl]|vv|{;9-tyl]|vv|{;-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H--tyl]|vv|{;\b-J-zv5-tyl]|vv|{;\b9-tyl]|vv|{;\b-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H\f"),tt=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-|vtv{\\}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-nz}yrPor-}n{|=Zn}H{vs|z-nz}yrPor-}n{|>Zn}H{vs|z-nz}yrPor-}n{|=Qr}uZn}H{vs|z-rp?-}n{|cvqr|`v\trH{vs|z-znA-}n{|cvqr|ZnvH{vs|z-sy|n-}n{|cvqr|Ny}unH{vs|z-nz}yr?Q-}n{|cvqr|Zn}H0vs-qrsv{rq5b`RlaVYR6--{vs|z-nz}yr?Q-}n{|avyrZn}H--{vs|z-rpA-}n{|avyrPyv}Zn}}v{thaVYRlZN]]V[TlYR[TaUjH--{vs|z-rpA-}n{|avyrQnNZn}}v{thaVYRlZN]]V[TlYR[TaUjH0r{qvs0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvsn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=9-=;=9-=;=9->;=60qrsv{r-]Vl?-C;?E@>EB?rp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-qvssrP|y|-J-rpA5qvssr9-|vtv{\\}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=Zn}9-}n{|=a|crr6H--0vs-qrsv{rq5b`RlaVYR6----rp?-vyrlp||q-J-|P||q5}n{|=a|crr6H----rpA-vyrlpyv}H----rpA-vyrlqnNH----rp?-vyrlH----sy|n-vyrlny}unH----0}ntzn-{|yyly||}lnH----s|-5v{-v-J-=H-v-I-aVYRlZN]]V[TlYR[TaUH-v886-\n------vyrlpyv}-J-}n{|avyrPyv}Zn}}v{thvjH------vyrlqnN-J-}n{|avyrQnNZn}}v{thvjH------vyrl;-J-5vyrlp||q;-:-vyrlpyv}h=j6-<-vyrlpyv}h?jH------vyrl;\b-J-5vyrlp||q;\b-:-vyrlpyv}h>j6-<-vyrlpyv}h@jH------vyrlny}un-J-5>;=-:-r}5=;B9-no5vyrl;-:-=;B666-7-5>;=-:-r}5=;B9-no5vyrl;\b-:-=;B666H------vyrl;-J-vyrlqnNh=j-8-vyrl;-7-vyrlqnNh?jH------vyrl;\b-J-vyrlqnNh>j-8-vyrl;\b-7-vyrlqnNh@jH------vyrlny}un-J-prvy5vyrlny}un-7-vyrlqnNh?j6H------}n{|=P|y|-J-zv5}n{|=P|y|9-rr?Q5}n{|avyrZn}9-vyrl69-vyrlny}un6H----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--rpA-}n{|>P|y|-J-rrPor5}n{|>Zn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----0vs-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6------rpA-}n{|=Qr}uP|y|-J-rrPor5}n{|=Qr}uZn}9-pnzrna|crr6H------sy|n-qrynQvn{pr=-J-no5{}npx_TONa|Qr}u5}n{|=Qr}uP|y|6-7->=;=-:-yr{tu5}n{|=a|crr66H------sy|n-ynry-J-pynz}5}|tr-7-5>;=-8-qrynQvn{pr=-7-=;FB69-=;=9->;=6H----0ryr------sy|n-ynry-J-}|trH----0r{qvs----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-ynry6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\lZN]6----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|ZnvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|Zn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|Ny}un6H--0r{qvs--tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H\f");var rt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hash=Fe(),t.meta=[null,null,null,null,null,null],t}return Se(t,e),t}(e.CubeTexture);function it(){return"undefined"==typeof document?{}:document.createElementNS("http://www.w3.org/1999/xhtml","img")}var nt=it();nt.width=nt.height=8;var st=new e.Texture(nt),ot=new rt([nt,nt,nt,nt,nt,nt]);st.dispose=ot.dispose=function(){};var at=Object.assign({modelAlpha:new e.Uniform(0),originOpacity:new e.Uniform(1),progress:new e.Uniform(0),pano0Map:new e.Uniform(null),pano0Matrix:new e.Uniform(new e.Matrix4),pano1Map:new e.Uniform(null),pano1Matrix:new e.Uniform(new e.Matrix4),pano0DepthMap:new e.Uniform(null),panoVideoMap:new e.Uniform(null),panoVideoSize:new e.Uniform(new e.Vector2),panoVideoMatrix:new e.Uniform(new e.Matrix4),panoVideoAlpha:new e.Uniform(0),modelCenter:new e.Uniform(new e.Vector3),perspToOrtho:new e.Uniform(0),panoTileMap:new e.Uniform(null),panoTileClipMappings:new e.Uniform([]),panoTileDrawAtMappings:new e.Uniform([])},{exposure:new e.Uniform(1),emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),ut=function(t){function r(r){var i,n,s,o,a,u,c,l,h,d,p,f,A,M,g,y;void 0===r&&(r={});var v=t.call(this,{vertexShader:et,fragmentShader:tt,uniforms:e.UniformsUtils.clone(at),defines:{USE_MAP:!0,USE_UV:!0,USE_TILE:!1,TILE_MAPPING_LENGTH:0,USE_BLACK_TRANSITION:!1,USE_PANO0_DEPTH_MAP:!1,USE_PANO_VIDEO_MAP:!1},lights:!0})||this;return Object.defineProperties(v,{pano0Map:{get:function(){var e=this.uniforms.pano0Map.value;return e===ot?null:e},set:function(e){this.uniforms.pano0Map.value=null===e?ot:e}},pano0Matrix:{get:function(){return this.uniforms.pano0Matrix.value.clone()},set:function(e){this.uniforms.pano0Matrix.value.copy(e)}},pano1Map:{get:function(){var e=this.uniforms.pano1Map.value;return e===ot?null:e},set:function(e){this.uniforms.pano1Map.value=null===e?ot:e}},pano1Matrix:{get:function(){return this.uniforms.pano1Matrix.value.clone()},set:function(e){this.uniforms.pano1Matrix.value.copy(e)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},perspToOrtho:{get:function(){return this.uniforms.perspToOrtho.value},set:function(e){this.uniforms.perspToOrtho.value=e}},pano0DepthMap:{get:function(){return this.uniforms.pano0DepthMap.value},set:function(e){this.uniforms.pano0DepthMap.value=e;var t=null!==e;t!==this.defines.USE_PANO0_DEPTH_MAP&&(this.defines.USE_PANO0_DEPTH_MAP=t,this.needsUpdate=!0)}},panoVideoMap:{get:function(){return this.uniforms.panoVideoMap.value},set:function(e){this.uniforms.panoVideoMap.value=e;var t=null!==e;t!==this.defines.USE_PANO_VIDEO_MAP&&(this.defines.USE_PANO_VIDEO_MAP=t,this.needsUpdate=!0)}},panoVideoSize:{get:function(){return this.uniforms.panoVideoSize.value.clone()},set:function(e){this.uniforms.panoVideoSize.value.copy(e)}},panoVideoMatrix:{get:function(){return this.uniforms.panoVideoMatrix.value.clone()},set:function(e){this.uniforms.panoVideoMatrix.value.copy(e)}},panoVideoAlpha:{get:function(){return this.uniforms.panoVideoAlpha.value},set:function(e){this.uniforms.panoVideoAlpha.value=e}},panoTileMap:{get:function(){return this.uniforms.panoTileMap.value},set:function(e){this.uniforms.panoTileMap.value=e;var t=null!==e;t!==this.defines.USE_TILE&&(this.defines.USE_TILE=t,this.needsUpdate=!0)}},panoTileMappings:{get:function(){var e=this.uniforms.panoTileClipMappings.value,t=this.uniforms.panoTileDrawAtMappings.value;if(null===e)return null;for(var r=[],i=0;i<e.length;i++)r[i]=[e[i].clone(),t[i].clone()];return r},set:function(e){var t=this.defines.TILE_MAPPING_LENGTH;if(null===e)this.uniforms.panoTileClipMappings.value=null,this.uniforms.panoTileDrawAtMappings.value=null;else{for(var r=[],i=[],n=0;n<e.length;n++)r[n]=e[n][0].clone(),i[n]=e[n][1].clone();this.uniforms.panoTileClipMappings.value=r,this.uniforms.panoTileDrawAtMappings.value=i}var s=null!==e?e.length:0;s!==t&&(this.defines.TILE_MAPPING_LENGTH=s,this.needsUpdate=!0)}}}),v.pano0Map=null!==(i=r.pano0Map)&&void 0!==i?i:ot,v.pano0Matrix=null!==(n=r.pano0Matrix)&&void 0!==n?n:new e.Matrix4,v.pano1Map=null!==(s=r.pano1Map)&&void 0!==s?s:ot,v.pano1Matrix=null!==(o=r.pano1Matrix)&&void 0!==o?o:new e.Matrix4,v.modelAlpha=null!==(a=r.modelAlpha)&&void 0!==a?a:1,v.progress=null!==(u=r.progress)&&void 0!==u?u:0,v.useBlackTransition=null!==(c=r.useBlackTransition)&&void 0!==c&&c,v.perspToOrtho=null!==(l=r.perspToOrtho)&&void 0!==l?l:0,v.opacity=null!==(h=r.opacity)&&void 0!==h?h:1,v.pano0DepthMap=null!==(d=r.pano0DepthMap)&&void 0!==d?d:null,v.panoVideoSize=null!==(p=r.panoVideoSize)&&void 0!==p?p:new e.Vector2,v.panoVideoMap=null!==(f=r.panoVideoMap)&&void 0!==f?f:null,v.panoVideoMatrix=null!==(A=r.panoVideoMatrix)&&void 0!==A?A:new e.Matrix4,v.panoVideoAlpha=null!==(M=r.panoVideoAlpha)&&void 0!==M?M:0,v.panoTileMap=null!==(g=r.panoTileMap)&&void 0!==g?g:null,v.panoTileMappings=null!==(y=r.panoTileMappings)&&void 0!==y?y:null,v}return Se(r,t),r}(e.ShaderMaterial),ct=new e.Vector3(0,0,0),lt=function(t){function r(r,i){void 0===i&&(i=ct);var n=t.call(this)||this,s=new e.BoxBufferGeometry(r.max.x-r.min.x+2*i.x,r.max.y-r.min.y+2*i.y,r.max.z-r.min.z+2*i.z,1,1);s.groups.length=0,s.groups.push({start:0,count:36,materialIndex:0}),s.applyMatrix4((new e.Matrix4).makeScale(-1,1,1));var o=new ut;o.defines.USE_MAP=!1,o.defines.USE_UV=!1,o.uniforms.diffuse.value=new e.Color(16777215);var a=new Ke(s,[o]);return a.floorIndex=-1,a.position.copy(r.getCenter(new e.Vector3)),a.frustumCulled=!1,n.add(a),n}return Se(r,t),r.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},r}($e);function ht(e,t){return void 0===t&&(t=ct),new lt(e,t)}var dt,pt,ft,At,Mt={EPSILON:1e-6,BVHVector3:function(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0}};Mt.BVHVector3.prototype={constructor:Mt.BVHVector3,copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},setFromArray:function(e,t){this.x=e[t],this.y=e[t+1],this.z=e[t+2]},add:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},cross:function(e){var t=this.x,r=this.y,i=this.z;return this.x=r*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-r*e.x,this},crossVectors:function(e,t){var r=e.x,i=e.y,n=e.z,s=t.x,o=t.y,a=t.z;return this.x=i*a-n*o,this.y=n*s-r*a,this.z=r*o-i*s,this},clone:function(){return new Mt.BVHVector3(this.x,this.y,this.z)}},Mt.BVH=function(e,t){this._trianglesArray=e,this._maxTrianglesPerNode=t||10,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var r=e.length/9,i=this.calcExtents(0,r,Mt.EPSILON);this._rootNode=new Mt.BVHNode(i[0],i[1],0,r,0),this._nodesToSplit=[this._rootNode]},Mt.BVH.prototype.splitNode=function(e){if(e){var t=0,r=function(){t++;var i=this._nodesToSplit.pop();i?(this._splitNode(i),t%255==0?setTimeout(r):r()):(t=0,e())}.bind(this);r()}else for(;this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},Mt.BVH.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit=null},Mt.BVH.prototype.intersectRay=function(e,t,r){for(var i,n=[this._rootNode],s=[],o=[],a=new Mt.BVHVector3(1/t.x,1/t.y,1/t.z);n.length>0;){var u=n.pop();if(Mt.BVH.intersectNodeBox(e,a,u))for(u._node0&&n.push(u._node0),u._node1&&n.push(u._node1),i=u._startIndex;i<u._endIndex;i++)s.push(this._bboxArray[7*i])}var c=new Mt.BVHVector3,l=new Mt.BVHVector3,h=new Mt.BVHVector3,d=new Mt.BVHVector3(e.x,e.y,e.z),p=new Mt.BVHVector3(t.x,t.y,t.z);for(i=0;i<s.length;i++){var f=s[i];c.setFromArray(this._trianglesArray,9*f),l.setFromArray(this._trianglesArray,9*f+3),h.setFromArray(this._trianglesArray,9*f+6);var A=Mt.BVH.intersectRayTriangle(c,l,h,d,p,r);A&&o.push({triangle:[c.clone(),l.clone(),h.clone()],triangleIndex:f,intersectionPoint:A})}return o},Mt.BVH.prototype.calcBoundingBoxes=function(e){for(var t,r,i,n,s,o,a,u,c,l,h,d,p,f,A,M=e.length/9,g=new Float32Array(7*M),y=0;y<M;y++)t=e[9*y],r=e[9*y+1],i=e[9*y+2],n=e[9*y+3],s=e[9*y+4],o=e[9*y+5],a=e[9*y+6],u=e[9*y+7],c=e[9*y+8],l=Math.min(Math.min(t,n),a),h=Math.min(Math.min(r,s),u),d=Math.min(Math.min(i,o),c),p=Math.max(Math.max(t,n),a),f=Math.max(Math.max(r,s),u),A=Math.max(Math.max(i,o),c),Mt.BVH.setBox(g,y,y,l,h,d,p,f,A);return g},Mt.BVH.prototype.calcExtents=function(e,t,r){if(r=r||0,e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];for(var i=Number.MAX_VALUE,n=Number.MAX_VALUE,s=Number.MAX_VALUE,o=-Number.MAX_VALUE,a=-Number.MAX_VALUE,u=-Number.MAX_VALUE,c=e;c<t;c++)i=Math.min(this._bboxArray[7*c+1],i),n=Math.min(this._bboxArray[7*c+2],n),s=Math.min(this._bboxArray[7*c+3],s),o=Math.max(this._bboxArray[7*c+4],o),a=Math.max(this._bboxArray[7*c+5],a),u=Math.max(this._bboxArray[7*c+6],u);return[{x:i-r,y:n-r,z:s-r},{x:o+r,y:a+r,z:u+r}]},Mt.BVH.prototype._splitNode=function(e){if(!(e.elementCount()<=this._maxTrianglesPerNode||0===e.elementCount())){var t=e._startIndex,r=e._endIndex,i=[[],[],[]],n=[[],[],[]],s=[e.centerX(),e.centerY(),e.centerZ()],o=[e._extentsMax.x-e._extentsMin.x,e._extentsMax.y-e._extentsMin.y,e._extentsMax.z-e._extentsMin.z],a=[];a.length=3;for(var u=t;u<r;u++){a[0]=.5*(this._bboxArray[7*u+1]+this._bboxArray[7*u+4]),a[1]=.5*(this._bboxArray[7*u+2]+this._bboxArray[7*u+5]),a[2]=.5*(this._bboxArray[7*u+3]+this._bboxArray[7*u+6]);for(var c=0;c<3;c++)a[c]<s[c]?i[c].push(u):n[c].push(u)}var l=[];if(l.length=3,l[0]=0===i[0].length||0===n[0].length,l[1]=0===i[1].length||0===n[1].length,l[2]=0===i[2].length||0===n[2].length,!(l[0]&&l[1]&&l[2])){var h,d,p=[0,1,2];for(p.sort((function(e,t){return o[t]-o[e]})),c=0;c<3;c++){var f=p[c];if(!l[f]){h=i[f],d=n[f];break}}var A,M=t,g=M+h.length,y=g,v=r,m=e._startIndex,N=h.concat(d);for(u=0;u<N.length;u++)A=N[u],Mt.BVH.copyBox(this._bboxArray,A,this._bboxHelper,m),m++;var D=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(D,7*e._startIndex);var w=this.calcExtents(M,g,Mt.EPSILON),T=this.calcExtents(y,v,Mt.EPSILON),x=new Mt.BVHNode(w[0],w[1],M,g,e._level+1),E=new Mt.BVHNode(T[0],T[1],y,v,e._level+1);e._node0=x,e._node1=E,e.clearShapes(),this._nodesToSplit.push(x),this._nodesToSplit.push(E)}}},Mt.BVH._calcTValues=function(e,t,r,i){var n={min:0,max:0};return i>=0?(n.min=(e-r)*i,n.max=(t-r)*i):(n.min=(t-r)*i,n.max=(e-r)*i),n},Mt.BVH.intersectNodeBox=function(e,t,r){var i=Mt.BVH._calcTValues(r._extentsMin.x,r._extentsMax.x,e.x,t.x),n=Mt.BVH._calcTValues(r._extentsMin.y,r._extentsMax.y,e.y,t.y);if(i.min>n.max||n.min>i.max)return!1;(n.min>i.min||i.min!=i.min)&&(i.min=n.min),(n.max<i.max||i.max!=i.max)&&(i.max=n.max);var s=Mt.BVH._calcTValues(r._extentsMin.z,r._extentsMax.z,e.z,t.z);return!(i.min>s.max||s.min>i.max||((s.min>i.min||i.min!=i.min)&&(i.min=s.min),(s.max<i.max||i.max!=i.max)&&(i.max=s.max),i.max<0))},Mt.BVH.intersectRayTriangle=(dt=new Mt.BVHVector3,pt=new Mt.BVHVector3,ft=new Mt.BVHVector3,At=new Mt.BVHVector3,function(e,t,r,i,n,s){pt.subVectors(t,e),ft.subVectors(r,e),At.crossVectors(pt,ft);var o,a=n.dot(At);if(a>0){if(s)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}dt.subVectors(i,e);var u=o*n.dot(ft.crossVectors(dt,ft));if(u<0)return null;var c=o*n.dot(pt.cross(dt));if(c<0)return null;if(u+c>a)return null;var l=-o*dt.dot(At);if(l<0)return null;var h=l/a;return(new Mt.BVHVector3).copy(n).multiplyScalar(h).add(i)}),Mt.BVH.setBox=function(e,t,r,i,n,s,o,a,u){e[7*t]=r,e[7*t+1]=i,e[7*t+2]=n,e[7*t+3]=s,e[7*t+4]=o,e[7*t+5]=a,e[7*t+6]=u},Mt.BVH.copyBox=function(e,t,r,i){r[7*i]=e[7*t],r[7*i+1]=e[7*t+1],r[7*i+2]=e[7*t+2],r[7*i+3]=e[7*t+3],r[7*i+4]=e[7*t+4],r[7*i+5]=e[7*t+5],r[7*i+6]=e[7*t+6]},Mt.BVH.getBox=function(e,t,r){r.triangleId=e[7*t],r.minX=e[7*t+1],r.minY=e[7*t+2],r.minZ=e[7*t+3],r.maxX=e[7*t+4],r.maxY=e[7*t+5],r.maxZ=e[7*t+6]},Mt.BVHNode=function(e,t,r,i,n){this._extentsMin=e,this._extentsMax=t,this._startIndex=r,this._endIndex=i,this._level=n,this._node0=null,this._node1=null},Mt.BVHNode.prototype.elementCount=function(){return this._endIndex-this._startIndex},Mt.BVHNode.prototype.centerX=function(){return.5*(this._extentsMin.x+this._extentsMax.x)},Mt.BVHNode.prototype.centerY=function(){return.5*(this._extentsMin.y+this._extentsMax.y)},Mt.BVHNode.prototype.centerZ=function(){return.5*(this._extentsMin.z+this._extentsMax.z)},Mt.BVHNode.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1},Mt.BVHNode.calcBoundingSphereRadius=function(e,t){var r=.5*(e.x+t.x),i=.5*(e.y+t.y),n=.5*(e.z+t.z),s=(r-e.x)*(r-e.x)+(i-e.y)*(i-e.y)+(n-e.z)*(n-e.z),o=(r-t.x)*(r-t.x)+(i-t.y)*(i-t.y)+(n-t.z)*(n-t.z);return Math.sqrt(Math.max(s,o))};var gt=Mt.BVH;Mt.intersectRay;var yt,vt=(yt="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<$$FIVE_EVENT$$>$":Symbol(yt));function mt(e){return e[vt]||(e[vt]={}),e[vt]}var Nt=function(){function e(){}return e.prototype.hasListener=function(e){var t=mt(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,r){var i=this,n=mt(this);return n[e]||(n[e]=[]),n[e].push([t,r||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var r=mt(this);if(r[e]||(r[e]=[]),void 0!==t){for(var i=0;i<r[e].length&&r[e][i][0]!==t;i++);i<r[e].length&&r[e].splice(i,1)}else r[e].length=0}else this[vt]||delete this[vt]},e.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var i=!1,n=mt(this),s=n[e]||[],o=0,a=s.slice();o<a.length;o++){var u=a[o],c=u[0],l=u[1],h=void 0!==l&&l,d=c.apply(void 0,t);h&&this.off(e,c),!1===d&&(i=!0)}return i},e}();function Dt(e){Object.freeze(e);var t="function"==typeof e,r=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(i){!r.call(e,i)||t&&("caller"===i||"callee"===i||"arguments"===i)||null===e[i]||"object"!=typeof e[i]&&"function"!=typeof e[i]||Object.isFrozen(e[i])||Dt(e[i])})),e}var wt=/^([^.]+)(\.([^.]+))*$/;function Tt(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function xt(e,t){return wt.test(e)&&function(e){if("*"===e)return/^(.+)$/i;var t="^"+e.split(".").map((function(e){return"*"===e?"([^.]+)":e})).join(".")+"$";return new RegExp(t,"i")}(e).test(t)}var Et=Dt(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("h--/y|pnyu|/9--/xr;p|z/9-------/7;xr;p|z/9-------/7;7;xr;p|z/9--/yvn{wvn;p|z/9--/7;yvn{wvn;p|z/9--/7;7;yvn{wvn;p|z/9--/rnyrr;p|z/9--/7;rnyrr;p|z/9--/7;7;rnyrr;p|z/9--/rnyrr;p{/9---/7;rnyrr;p{/9---/7;7;rnyrr;p{/9--/uv;p|z/9--/7;uv;p|z/9--/7;7;uv;p|z/9--/uv;p{/9---/7;uv;p{/9---/7;7;uv;p{/9--/ywpq{;p|z/9----/7;ywpq{;p|z/9----/7;7;ywpq{;p|z/j"))),jt=function(e){function t(t,r){var i=e.call(this,"[NETWORK]: response error(status: "+r+"): "+t)||this;return i.httpStatus=r,i}return Se(t,e),t}(Error),It=function(e){function t(t){return e.call(this,"[NETWORK]: request abort: "+t)||this}return Se(t,e),t}(Error),bt=function(e){function t(t,r){return e.call(this,"[NETWORK]: request timeout("+r+"ms): "+t)||this}return Se(t,e),t}(Error),zt=function(e){function t(t,r){return e.call(this,"[NETWORK]: request forbidden: "+t+", "+r)||this}return Se(t,e),t}(Error),Ot=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Se(t,e),t}(Nt);function St(e,t,r,i){void 0===t&&(t={}),void 0===r&&(r=Qe),void 0===i&&(i=Qe);var n,s=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),o=(n=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/))?n[2]:location.hostname;if(0!==location.hostname.length&&!Tt(location.hostname)&&0===Et.filter((function(e){return xt(e,location.hostname)})).length&&!Tt(o)&&0===s.filter((function(e){return xt(e,o)})).length){var a=Qe,u=new zt(e,"request host("+o+") is not allowed");return qe((function(){var i;r(u,null),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"forbidden",u.message)})),{abort:a}}var c=function(e){for(var t=0,r=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i];t<r.length;t++){var i=r[t],n=e.match(i);if(n)return"jsonp_"+n[1]}return null}(e);if(c){var l=window,h=null,d=!1,p=He(),f=document.createElement("script");return l[c]=function(i){var n,s=He(),o=s-p;if(delete l[c],f.parentNode&&f.parentNode.removeChild(f),null!==h&&(window.clearTimeout(h),h=null),!0!==d){if(0!==i.indexOf("data:")){var a=new jt(e,500);return r(a,null),void(null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"error",a.message))}var u=i.split(","),A=(u[0].match(/:(.*?);/)||[])[1],M=u[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var g=atob(u[1]),y=g.length,v=new Uint8Array(y),m=0;m<y;m++)v[m]=g.charCodeAt(m);M="arraybuffer"===t.responseType?v.buffer:new Blob([v],{type:A})}var N={body:M,meta:{source:e,requestTime:p,responseTime:s,costs:o,headers:{}}};qe((function(){var i;r(null,N),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"ok",JSON.stringify(N.meta))})),d=!0}},f.src=e,document.body.appendChild(f),"number"==typeof t.timeout&&(h=window.setTimeout((function(){var i;if(h=null,!0!==d){var n=new bt(e,t.timeout||NaN);r(n,null),d=!0,null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"timeout",n.message)}}),t.timeout)),{abort:function(){var i;if(delete l[c],f.parentNode&&f.parentNode.removeChild(f),null!==h&&(window.clearTimeout(h),h=null),!0!==d){var n=new It(e);r(n,null),d=!0,null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"abort",n.message)}}}}var A=He(),M=!1,g=new XMLHttpRequest,y=function(){g&&(g.removeEventListener("timeout",v,!1),g.removeEventListener("progress",m,!1),g.removeEventListener("abort",N,!1),g.removeEventListener("load",D,!1),g.removeEventListener("error",w,!1)),g=null,y=Qe},v=function(){var i,n=new bt(e,t.timeout||NaN);r(n,null),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"timeout",n.message)},m=function(e){if(!0!==M&&e.lengthComputable){var t=e.loaded,r=e.total;i(t/r,t,r)}},N=function(){var i;if(!0!==M){var n=new It(e);r(n,null),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"abort",n.message)}},D=function(){var i,n=He(),s=n-A,o=function(e){if(!e)return{};for(var t={},r=e.trim().split("\n"),i=0;i<r.length;i++){var n=r[i],s=n.indexOf(":"),o=n.slice(0,s).trim().toLowerCase(),a=n.slice(s+1).trim();a&&(t[o]?t[o]+=", "+a:t[o]=a)}return t}(this.getAllResponseHeaders()),a={body:this.response,meta:{source:e,requestTime:A,responseTime:n,costs:s,headers:o}};r(null,a),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"ok",JSON.stringify(a.meta))},w=function(){var i,n=new jt(e,this.status);r(n,null),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"error",n.message),M=!0,y()};return g.addEventListener("timeout",v,!1),g.addEventListener("progress",m,!1),g.addEventListener("abort",N,!1),g.addEventListener("load",D,!1),g.addEventListener("error",w,!1),t.responseType&&(g.responseType=t.responseType),"number"==typeof t.timeout&&(g.timeout=t.timeout),g.open("GET",e,!0),g.send(null),{abort:N}}St.async=function(e,t){return new Promise((function(r,i){St(e,t,(function(e,t){e?i(e):r(t)}))}))};var Lt={},Ct="//vrlab-public.ljcdn.com";function kt(e,t){if(void 0===t&&(t={}),"function"==typeof t.transform)return t.transform(e,t);if(e.indexOf(Ct)>=0&&(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),/\.(jpg|png)$/.test(e))){var r=t.size,i=t.quality,n=t.format;if(r||i||n){var s="?imageMogr2";i&&(s+="/quality/"+i),r&&(s+="/thumbnail/"+r+"x"),n&&(s+="/format/"+n),e=e.replace(Ct,"//vrlab-image4.ljcdn.com")+s}}return e}var Pt=function(){function e(e){void 0===e&&(e={}),this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.load=function(e,t,r,i){return void 0===t&&(t=Qe),void 0===r&&(r=Qe),void 0===i&&(i=Qe),this.loadToImage(it(),e,t,r,i)},e.prototype.loadToImage=function(e,t,r,i,n){if(void 0===r&&(r=Qe),void 0===i&&(i=Qe),void 0===n&&(n=Qe),e.src)throw new Error("image is loaded");var s={responseType:"blob",allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe};St(t,s,(function(i,s){i?n(i):(e.onload=function(){r(e),e.onload=e.onerror=function(){}},e.onerror=function(){n(new Error("image parse error "+t)),e.onload=e.onerror=function(){}},e.src=URL.createObjectURL(s.body))}))},e}(),_t=null,Bt=!1,Ut=[];function Rt(e){if(void 0===e&&(e=!1),e||!Bt)if(_t)Bt=!1;else{Bt=!0;var t=Ut.shift();if(t){try{t()}catch(e){}qe((function(){return Rt(!0)}))}else Bt=!1}}function Qt(){_t=null,Rt()}function Yt(){(_t||0!==Ut.length)&&(_t&&clearTimeout(_t),_t=window.setTimeout(Qt,200))}function Ft(e){return new Promise((function(t){Ut.push((function(){return t(e())})),Rt()}))}var Vt,Ht=__webpack_require__(247),Gt={computeTangents:function(t){var r=t.index,i=t.attributes;if(null!==r&&void 0!==i.position&&void 0!==i.normal&&void 0!==i.uv){var n=r.array,s=i.position.array,o=i.normal.array,a=i.uv.array,u=s.length/3;void 0===i.tangent&&t.setAttribute("tangent",new e.BufferAttribute(new Float32Array(4*u),4));for(var c=i.tangent.array,l=[],h=[],d=0;d<u;d++)l[d]=new e.Vector3,h[d]=new e.Vector3;var p=new e.Vector3,f=new e.Vector3,A=new e.Vector3,M=new e.Vector2,g=new e.Vector2,y=new e.Vector2,v=new e.Vector3,m=new e.Vector3,N=t.groups;0===N.length&&(N=[{start:0,count:n.length}]),d=0;for(var D=N.length;d<D;++d)for(var w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)C(n[w+0],n[w+1],n[w+2]);var x,E,j,I=new e.Vector3,b=new e.Vector3,z=new e.Vector3,O=new e.Vector3;for(d=0,D=N.length;d<D;++d){var S,L;for(w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)k(n[w+0]),k(n[w+1]),k(n[w+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function C(e,t,r){p.fromArray(s,3*e),f.fromArray(s,3*t),A.fromArray(s,3*r),M.fromArray(a,2*e),g.fromArray(a,2*t),y.fromArray(a,2*r);var i=f.x-p.x,n=A.x-p.x,o=f.y-p.y,u=A.y-p.y,c=f.z-p.z,d=A.z-p.z,N=g.x-M.x,D=y.x-M.x,w=g.y-M.y,T=y.y-M.y,x=1/(N*T-D*w);v.set((T*i-w*n)*x,(T*o-w*u)*x,(T*c-w*d)*x),m.set((N*n-D*i)*x,(N*u-D*o)*x,(N*d-D*c)*x),l[e].add(v),l[t].add(v),l[r].add(v),h[e].add(m),h[t].add(m),h[r].add(m)}function k(e){z.fromArray(o,3*e),O.copy(z),E=l[e],I.copy(E),I.sub(z.multiplyScalar(z.dot(E))).normalize(),b.crossVectors(O,E),j=b.dot(h[e]),x=j<0?-1:1,c[4*e]=I.x,c[4*e+1]=I.y,c[4*e+2]=I.z,c[4*e+3]=x}},mergeBufferGeometries:function(t,r){for(var i=null!==t[0].index,n=new Set(Object.keys(t[0].attributes)),s=new Set(Object.keys(t[0].morphAttributes)),o={},a={},u=new e.BufferGeometry,c=0,l=0;l<t.length;++l){var h=t[l];if(i!==(null!==h.index))return null;for(var d in h.attributes){if(!n.has(d))return null;void 0===o[d]&&(o[d]=[]),o[d].push(h.attributes[d])}for(var d in h.morphAttributes){if(!s.has(d))return null;void 0===a[d]&&(a[d]=[]),a[d].push(h.morphAttributes[d])}if(u.userData.mergedUserData=u.userData.mergedUserData||[],u.userData.mergedUserData.push(h.userData),r){var p;if(i)p=h.index.count;else{if(void 0===h.attributes.position)return null;p=h.attributes.position.count}u.addGroup(c,p,l),c+=p}}if(i){var f=0,A=[];for(l=0;l<t.length;++l){for(var M=t[l].index,g=0;g<M.count;++g)A.push(M.getX(g)+f);f+=t[l].attributes.position.count}u.setIndex(A)}for(var d in o){var y=this.mergeBufferAttributes(o[d]);if(!y)return null;u.setAttribute(d,y)}for(var d in a){var v=a[d][0].length;if(0===v)break;for(u.morphAttributes=u.morphAttributes||{},u.morphAttributes[d]=[],l=0;l<v;++l){var m=[];for(g=0;g<a[d].length;++g)m.push(a[d][g][l]);var N=this.mergeBufferAttributes(m);if(!N)return null;u.morphAttributes[d].push(N)}}return u},mergeBufferAttributes:function(t){for(var r,i,n,s=0,o=0;o<t.length;++o){var a=t[o];if(a.isInterleavedBufferAttribute)return null;if(void 0===r&&(r=a.array.constructor),r!==a.array.constructor)return null;if(void 0===i&&(i=a.itemSize),i!==a.itemSize)return null;if(void 0===n&&(n=a.normalized),n!==a.normalized)return null;s+=a.array.length}var u=new r(s),c=0;for(o=0;o<t.length;++o)u.set(t[o].array,c),c+=t[o].array.length;return new e.BufferAttribute(u,i,n)},interleaveAttributes:function(t){for(var r,i=0,n=0,s=0,o=t.length;s<o;++s){var a=t[s];if(void 0===r&&(r=a.array.constructor),r!==a.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;i+=a.array.length,n+=a.itemSize}var u=new e.InterleavedBuffer(new r(i),n),c=0,l=[],h=["getX","getY","getZ","getW"],d=["setX","setY","setZ","setW"],p=0;for(o=t.length;p<o;p++){var f=(a=t[p]).itemSize,A=a.count,M=new e.InterleavedBufferAttribute(u,f,c,a.normalized);l.push(M),c+=f;for(var g=0;g<A;g++)for(var y=0;y<f;y++)M[d[y]](g,a[h[y]](g))}return l},estimateBytesUsed:function(e){var t=0;for(var r in e.attributes){var i=e.getAttribute(r);t+=i.count*i.itemSize*i.array.BYTES_PER_ELEMENT}var n=e.getIndex();return t+(n?n.count*n.itemSize*n.array.BYTES_PER_ELEMENT:0)},mergeVertices:function(t,r){void 0===r&&(r=1e-4),r=Math.max(r,Number.EPSILON);for(var i={},n=t.getIndex(),s=t.getAttribute("position"),o=n?n.count:s.count,a=0,u=Object.keys(t.attributes),c={},l={},h=[],d=["getX","getY","getZ","getW"],p=0,f=u.length;p<f;p++)c[m=u[p]]=[],(T=t.morphAttributes[m])&&(l[m]=new Array(T.length).fill().map((function(){return[]})));var A=Math.log10(1/r),M=Math.pow(10,A);for(p=0;p<o;p++){var g=n?n.getX(p):p,y="",v=0;for(f=u.length;v<f;v++)for(var m=u[v],N=(w=t.getAttribute(m)).itemSize,D=0;D<N;D++)y+=~~(w[d[D]](g)*M)+",";if(y in i)h.push(i[y]);else{for(v=0,f=u.length;v<f;v++){m=u[v];var w=t.getAttribute(m),T=t.morphAttributes[m],x=(N=w.itemSize,c[m]),E=l[m];for(D=0;D<N;D++){var j=d[D];if(x.push(w[j](g)),T)for(var I=0,b=T.length;I<b;I++)E[I].push(T[I][j](g))}}i[y]=a,h.push(a),a++}}var z=t.clone();for(p=0,f=u.length;p<f;p++){m=u[p];var O=t.getAttribute(m),S=new O.array.constructor(c[m]);if(w=new e.BufferAttribute(S,O.itemSize,O.normalized),z.setAttribute(m,w),m in l)for(v=0;v<l[m].length;v++){var L=t.morphAttributes[m][v],C=(S=new L.array.constructor(l[m][v]),new e.BufferAttribute(S,L.itemSize,L.normalized));z.morphAttributes[m][v]=C}}return z.setIndex(h),z}},qt='\nvar config, transcoderPending, _BasisFile;\nself.onmessage = function(e) {\n var message = e.data;\n switch (message.type) {\n case "init":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case "transcode":\n transcoderPending.then(function() {\n try {\n var result = transcode(message.buffer);\n var width = result.width;\n var height = result.height;\n var hasAlpha = result.hasAlpha;\n var mipmaps = result.mipmaps;\n var format = result.format;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({ type: "transcode", id: message.id, width, height, hasAlpha, mipmaps, format }, buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({ type: "error", id: message.id, error: error.message });\n }\n });\n break;\n default: break;\n }\n};\n\nfunction init(wasmBinary) {\n var BasisModule;\n transcoderPending = new Promise(function(resolve) {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n BASIS(BasisModule); // eslint-disable-line no-undef\n }).then(function() {\n _BasisFile = BasisModule.BasisFile;\n BasisModule.initializeBasis();\n self.postMessage({ type: "initialized" });\n });\n}\n\nfunction transcode(buffer) {\n var basisFile = new _BasisFile(new Uint8Array(buffer));\n var width = basisFile.getImageWidth(0, 0);\n var height = basisFile.getImageHeight(0, 0);\n var levels = basisFile.getNumLevels(0);\n var hasAlpha = basisFile.getHasAlpha();\n function cleanup() {\n basisFile.close();\n basisFile.delete();\n }\n if (!hasAlpha) {\n switch (config.format) {\n case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA\n config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;\n break;\n default: break;\n }\n }\n if (!width || !height || !levels) {\n cleanup();\n throw new Error("BasisTextureLoader: Invalid .basis file");\n }\n if (!basisFile.startTranscoding()) {\n cleanup();\n throw new Error("BasisTextureLoader: .startTranscoding failed");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var mipWidth = basisFile.getImageWidth(0, mip);\n var mipHeight = basisFile.getImageHeight(0, mip);\n var dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, config.format));\n var status = basisFile.transcodeImage(dst, 0, mip, config.format, 0, hasAlpha);\n if (!status) {\n cleanup();\n throw new Error("BasisTextureLoader: .transcodeImage failed.");\n }\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight });\n }\n cleanup();\n return { width, height, hasAlpha, mipmaps, format: config.format };\n}\n',Wt={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC4:4,cTFBC5:5,cTFBC7_M6_OPAQUE_ONLY:6,cTFBC7_M5:7,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFATC_RGB:11,cTFATC_RGBA_INTERPOLATED_ALPHA:12,cTFRGBA32:13,cTFRGB565:14,cTFBGR565:15,cTFRGBA4444:16},Zt={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779},Xt=((Vt={})[Wt.cTFBC1]=Zt.COMPRESSED_RGB_S3TC_DXT1_EXT,Vt[Wt.cTFBC3]=Zt.COMPRESSED_RGBA_S3TC_DXT5_EXT,Vt),Kt=function(t){function r(e){void 0===e&&(e={});var r=t.call(this)||this;return r.allowHosts=e.allowHosts,r.networkSubscribe=e.networkSubscribe,r}return Se(r,t),r.setTranscoderPath=function(e){return this.transcoderPath=e,this},r.setWorkerLimit=function(e){return this.workerLimit=e,this},r.isInitialized=function(){return 0!==this.workerPool.filter((function(e){return e._initialized})).length},r.detectSupport=function(e){var t=this.workerConfig;if(t.astcSupported=!!e.extensions.get("WEBGL_compressed_texture_astc"),t.bptcSupported=!!e.extensions.get("EXT_texture_compression_bptc"),t.etcSupported=!!e.extensions.get("WEBGL_compressed_texture_etc1"),t.dxtSupported=!!e.extensions.get("WEBGL_compressed_texture_s3tc"),t.pvrtcSupported=!!e.extensions.get("WEBGL_compressed_texture_pvrtc")||!!e.extensions.get("WEBKIT_WEBGL_compressed_texture_pvrtc"),t.astcSupported)t.format=r.BASIS_FORMAT.cTFASTC_4x4;else if(t.bptcSupported)t.format=r.BASIS_FORMAT.cTFBC7_M5;else if(t.dxtSupported)t.format=r.BASIS_FORMAT.cTFBC3;else if(t.pvrtcSupported)t.format=r.BASIS_FORMAT.cTFPVRTC1_4_RGBA;else{if(!t.etcSupported)throw new Error("BasisTextureLoader: No suitable compressed texture format found.");t.format=r.BASIS_FORMAT.cTFETC1}return this},r.prototype.load=function(e,t,i,n){return St(e,{responseType:"arraybuffer",allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe},(function(i,s){if(i)n(i);else{var o=function(e){return t(e,s.meta)},a=s.body;if(r.taskCache.has(a))return r.taskCache.get(a).promise.then(o).catch(n);r._createTexture(a,e).then(o).catch(n)}}),i)},r._createTexture=function(t,i){var n,s,o=this,a=t.byteLength,u=this._allocateWorker(a).then((function(e){return n=e,s=o.workerNextTaskID++,new Promise((function(e,r){n._callbacks[s]={resolve:e,reject:r},n.postMessage({type:"transcode",id:s,buffer:t},[t])}))})).then((function(t){var r,i=o.workerConfig,n=t.width,s=t.height,a=t.mipmaps;switch(t.format){case Wt.cTFASTC_4x4:r=new e.CompressedTexture(a,n,s,e.RGBA_ASTC_4x4_Format);break;case Wt.cTFBC1:case Wt.cTFBC3:r=new e.CompressedTexture(a,n,s,Xt[i.format],e.UnsignedByteType);break;case Wt.cTFETC1:r=new e.CompressedTexture(a,n,s,e.RGB_ETC1_Format);break;case Wt.cTFPVRTC1_4_RGB:r=new e.CompressedTexture(a,n,s,e.RGB_PVRTC_4BPPV1_Format);break;case Wt.cTFPVRTC1_4_RGBA:r=new e.CompressedTexture(a,n,s,e.RGBA_PVRTC_4BPPV1_Format);break;default:throw new Error("BasisTextureLoader: No supported format available.")}return r.minFilter=1===a.length?e.LinearFilter:e.LinearMipmapLinearFilter,r.magFilter=e.LinearFilter,r.generateMipmaps=!1,r.needsUpdate=!0,r}));return u.catch((function(){return!0})).then((function(){n&&s&&(n._taskLoad-=a,delete n._callbacks[s])})),r.taskCache.set(t,{url:i,promise:u}),u},r._initTranscoder=function(){var t=this;if(!this.transcoderPending){var r=new e.FileLoader;r.setPath(this.transcoderPath);var i=new Promise((function(e,t){r.load("basis_transcoder.js",e,void 0,t)})),n=new e.FileLoader;n.setPath(this.transcoderPath),n.setResponseType("arraybuffer");var s=new Promise((function(e,t){n.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([i,s]).then((function(e){var r=e[0],i=e[1],n=["/* basis_transcoder.js */",r,"/* worker */",qt].join("\n");t.workerSourceURL=URL.createObjectURL(new Blob([n])),t.transcoderBinary=i}))}return this.transcoderPending},r._allocateWorker=function(e){var t=this;return this._initTranscoder().then((function(){if(t.workerPool.length<t.workerLimit){var r=function(e){var t=new Worker(e);return Object.assign(t,{_callbacks:{},_initialized:!1,_taskLoad:0})}(t.workerSourceURL);r._callbacks={},r._initialized=!1,r._taskLoad=0,r.postMessage({type:"init",config:t.workerConfig,transcoderBinary:t.transcoderBinary}),r.onmessage=function(e){var t=e.data;switch(t.type){case"initialized":r._initialized=!0,console.log("BasisTextureLoader: basis loader initialized");break;case"transcode":r._callbacks[t.id].resolve(t);break;case"error":r._callbacks[t.id].reject(t);break;default:console.error('BasisTextureLoader: Unexpected message, "'+t.type+'"')}},t.workerPool.push(r)}else t.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));var i=t.workerPool[t.workerPool.length-1];return i._taskLoad+=e,i}))},r.prototype.dispose=function(){for(var e=0;e<r.workerPool.length;e++)r.workerPool[e].terminate();return r.workerPool.length=0,this},r.taskCache=new WeakMap,r.BASIS_FORMAT=Wt,r.DXT_FORMAT=Zt,r.DXT_FORMAT_MAP=Xt,r.transcoderPath="https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/",r.transcoderBinary=null,r.transcoderPending=null,r.workerLimit=1,r.workerPool=[],r.workerNextTaskID=1,r.workerSourceURL="",r.workerConfig={format:null,astcSupported:!1,bptcSupported:!1,etcSupported:!1,dxtSupported:!1,pvrtcSupported:!1},r}(e.Loader),Jt=(new e.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function $t(t,r){return new e.BufferAttribute(t,r)}function er(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function tr(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function rr(t){var r=t.indices,i=t.vertices,n=t.uvs,s=new e.BufferGeometry;return s.setIndex($t(new Uint32Array(r),1)),s.setAttribute("position",$t(new Float32Array(i),3)),Re(n)||s.setAttribute("uv",$t(new Float32Array(n),2)),s.applyMatrix4(Jt),s.computeVertexNormals(),s}function ir(t,r,i,n){var s=Kt.isInitialized();t=kt(t,Object.assign({key:"texture",basisLoaderInitialized:s},r));var o=new Kt({allowHosts:i,networkSubscribe:n});if(/\.basis(\?|$)/.test(t)){var a={sourceFile:t,needsUpdate:!0,wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter};return new Promise((function(e,r){o.load(t,(function(t){e(Object.assign(t,a))}),(function(){}),(function(e){r(e)}))}))}var u={sourceFile:t,needsUpdate:!0,wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter},c=new Pt({allowHosts:i,networkSubscribe:n});return new Promise((function(r,i){c.load(t,(function(t){var i=new e.Texture(t),n=i.dispose;i.dispose=function(){n.call(i),/^blob\:/.test(t.src)&&URL.revokeObjectURL(t.src)},r(Object.assign(i,u))}),Qe,(function(e){return i(e)}))}))}function nr(e){var t=new ut;return e.catch((function(){return null})).then((function(e){t.uniforms.map.value=e,t.uniforms.exposure.value=3.3})),t}var sr=Ht.parse("\nmessage Model {\n repeated Chunk chunks = 1;\n}\nmessage Chunk {\n required Vertices vertices = 1;\n required Faces faces = 2;\n required string name = 3;\n optional string texture = 4;\n}\nmessage Vertices {\n repeated float xyz = 1 [packed=true];\n repeated float uvs = 2 [packed=true];\n}\nmessage Faces {\n repeated uint32 indices = 1 [packed=true];\n}\n").root.lookup("Model");function or(t,r,i,n,s,o,a){void 0===s&&(s={});for(var u=0,c=t;u<c.length;u++){var l=c[u];l.chunkName=tr(l.name),l.floorName=er(l.name),l.texture&&(l.texture=i[l.chunkName]=i[l.chunkName]||r+l.texture)}t.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)}));var h=[],d=[],p=Promise.resolve();return(p=(p=p.then((function(){return Ft((function(){for(var r=0;r<t.length;r++){var i,u=t[r],c=er(u.name),l=h[c]=h[c]||{geometries:[],materials:[]},d=rr({vertices:u.vertices.xyz,uvs:u.vertices.uvs,indices:u.faces.indices});if(d.name="model_geo_chunk_"+r,l.geometries.push(d),u.texture)(i=nr(u.texture in s?s[u.texture]:s[u.texture]=ir(u.texture,n,o,a))).name="model_mtl_chunk_"+r,l.materials.push(i);else(i=new ut).defines.USE_MAP=!1,i.uniforms.color.value=new e.Color(16777215),i.name="model_mtl_chunk_"+r,l.materials.push(i)}}))}))).then((function(){return Ft((function(){for(var e=0;e<h.length;e++){var t=h[e];if(t){var r=Gt.mergeBufferGeometries(t.geometries,!0);t.geometries.forEach((function(e){return e.dispose()}));var i=new Ke(r,t.materials);i.floorIndex=e,i.name="model_floor_"+e,d.push(i)}}}))}))).then((function(){var e=Object.keys(s).map((function(e){return s[e].then((function(){}))}));return Promise.all(e).then((function(){return d}))}))}function ar(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(t>96?e.size=Math.min(e.size||1/0,100):t>48?e.size=Math.min(e.size||1/0,200):t>24?e.size=Math.min(e.size||1/0,400):t>12&&(e.size=Math.min(e.size||1/0,800))),e}var ur={OutWindow:function(){this._windowSize=0}};ur.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},ur.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},ur.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},ur.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},ur.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},ur.OutWindow.prototype.copyBlock=function(e,t){var r=this._pos-e-1;for(r<0&&(r+=this._windowSize);t--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},ur.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},ur.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},ur.RangeDecoder=function(){},ur.RangeDecoder.prototype.setStream=function(e){this._stream=e},ur.RangeDecoder.prototype.releaseStream=function(){this._stream=null},ur.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},ur.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,r=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,r=r<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return r},ur.RangeDecoder.prototype.decodeBit=function(e,t){var r=e[t],i=(this._range>>>11)*r;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},ur.initBitModels=function(e,t){for(;t--;)e[t]=1024},ur.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},ur.BitTreeDecoder.prototype.init=function(){ur.initBitModels(this._models,1<<this._numBitLevels)},ur.BitTreeDecoder.prototype.decode=function(e){for(var t=1,r=this._numBitLevels;r--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},ur.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,r=1,i=0,n=0;n<this._numBitLevels;++n)r=r<<1|(t=e.decodeBit(this._models,r)),i|=t<<n;return i},ur.reverseDecode2=function(e,t,r,i){for(var n,s=1,o=0,a=0;a<i;++a)s=s<<1|(n=r.decodeBit(e,t+s)),o|=n<<a;return o},ur.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new ur.BitTreeDecoder(8),this._numPosStates=0},ur.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new ur.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new ur.BitTreeDecoder(3)},ur.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(ur.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},ur.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},ur.Decoder2=function(){this._decoders=[]},ur.Decoder2.prototype.init=function(){ur.initBitModels(this._decoders,768)},ur.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},ur.Decoder2.prototype.decodeWithMatchByte=function(e,t){var r,i,n=1;do{if(r=t>>7&1,t<<=1,n=n<<1|(i=e.decodeBit(this._decoders,(1+r<<8)+n)),r!==i){for(;n<256;)n=n<<1|e.decodeBit(this._decoders,n);break}}while(n<256);return 255&n},ur.LiteralDecoder=function(){},ur.LiteralDecoder.prototype.create=function(e,t){var r;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new ur.Decoder2},ur.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},ur.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},ur.Decoder=function(){this._outWindow=new ur.OutWindow,this._rangeDecoder=new ur.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new ur.BitTreeDecoder(4),this._lenDecoder=new ur.LenDecoder,this._repLenDecoder=new ur.LenDecoder,this._literalDecoder=new ur.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new ur.BitTreeDecoder(6),this._posSlotDecoder[1]=new ur.BitTreeDecoder(6),this._posSlotDecoder[2]=new ur.BitTreeDecoder(6),this._posSlotDecoder[3]=new ur.BitTreeDecoder(6)},ur.Decoder.prototype.setDictionarySize=function(e){return!(e<0||(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),0))},ur.Decoder.prototype.setLcLpPb=function(e,t,r){var i=1<<r;return!(e>8||t>4||r>4||(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,0))},ur.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),ur.initBitModels(this._isMatchDecoders,192),ur.initBitModels(this._isRep0LongDecoders,192),ur.initBitModels(this._isRepDecoders,12),ur.initBitModels(this._isRepG0Decoders,12),ur.initBitModels(this._isRepG1Decoders,12),ur.initBitModels(this._isRepG2Decoders,12),ur.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},ur.Decoder.prototype.decode=function(e,t,r){var i,n,s,o,a,u,c=0,l=0,h=0,d=0,p=0,f=0,A=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();r<0||f<r;)if(i=f&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+i))n=this._literalDecoder.getDecoder(f++,A),A=c>=7?n.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(l)):n.decodeNormal(this._rangeDecoder),this._outWindow.putByte(A),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))s=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+i)&&(c=c<7?9:11,s=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?o=h:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?o=d:(o=p,p=d),d=h),h=l,l=o),0===s&&(s=2+this._repLenDecoder.decode(this._rangeDecoder,i),c=c<7?8:11);else if(p=d,d=h,h=l,s=2+this._lenDecoder.decode(this._rangeDecoder,i),c=c<7?7:10,(a=this._posSlotDecoder[s<=5?s-2:3].decode(this._rangeDecoder))>=4){if(l=(2|1&a)<<(u=(a>>1)-1),a<14)l+=ur.reverseDecode2(this._posDecoders,l-a-1,this._rangeDecoder,u);else if(l+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(l+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===l)break;return!1}}else l=a;if(l>=f||l>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(l,s),f+=s,A=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},ur.Decoder.prototype.setDecoderProperties=function(e){var t,r,i,n,s;return!(e.size<5)&&(r=(t=e.readByte())%9,i=(t=~~(t/9))%5,n=~~(t/5),!!this.setLcLpPb(r,i,n)&&(s=e.readByte(),s|=e.readByte()<<8,s|=e.readByte()<<16,s+=16777216*e.readByte(),this.setDictionarySize(s)))},ur.decompress=function(e,t,r,i){var n=new ur.Decoder;if(!n.setDecoderProperties(e))throw"Incorrect stream properties";if(!n.decode(t,r,i))throw"Error in data stream";return!0},ur.decompressFile=function(e,t){var r,i=new ur.Decoder;if(!i.setDecoderProperties(e))throw"Incorrect stream properties";if(r=e.readByte(),r|=e.readByte()<<8,r|=e.readByte()<<16,r+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!i.decode(e,t,r))throw"Error in data stream";return!0};var cr="undefined"!=typeof Worker&&"undefined"!=typeof Blob,lr="";if(cr)try{var hr=new Blob(['\n self.onmessage = function (event) {\n var Packet = event.data;\n var Result = null;\n try {\n if (!Packet.PacketID) {\n throw new Error(\'No incoming id.\');\n }\n if (!Packet.Data) {\n throw new Error(\'No input data.\');\n }\n if (Packet.Type == \'compress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n // C: encoding data\n Result = Util.compressFile(Packet.Data, null, Packet.Level, null);\n } else if (Packet.Type == \'decompress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n var inStream = {\n data: Packet.Data,\n offset: 0,\n readByte () {\n return this.data[this.offset++];\n }\n };\n var partLength = inStream.data.length;\n var outStream = {\n data: [],\n offset: 0,\n writeByte (value) {\n var partIndex = Math.floor(this.offset / partLength);\n if (!this.data[partIndex]) {\n this.data[partIndex] = new Uint8Array(partLength);\n }\n this.data[partIndex][this.offset % partLength] = value;\n this.offset++;\n }\n }\n // C: decoding data\n\n LZMA.decompressFile(inStream, outStream);\n Result = new Uint8Array(outStream.offset)\n for (var i = 0; i < outStream.offset; i++) {\n Result[i] = outStream.data[Math.floor(i / partLength)][i % partLength];\n }\n }\n postMessage({ PacketID: Packet.PacketID, Result, Error: null }, [Result.buffer]);\n } catch (error) {\n postMessage({ PacketID: Packet.PacketID, Error: error.toString() });\n }\n };\n\n\n /*\n Copyright (c) 2011 Juan Mellado\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n /*\n References:\n - "LZMA SDK" by Igor Pavlov\n http://www.7-zip.org/sdk.html\n */\n\n var LZMA = LZMA || {};\n\n LZMA.OutWindow = function(){\n this._windowSize = 0;\n };\n\n LZMA.OutWindow.prototype.create = function(windowSize){\n if ( (!this._buffer) || (this._windowSize !== windowSize) ){\n this._buffer = [];\n }\n this._windowSize = windowSize;\n this._pos = 0;\n this._streamPos = 0;\n };\n\n LZMA.OutWindow.prototype.flush = function(){\n var size = this._pos - this._streamPos;\n if (size !== 0){\n while(size --){\n this._stream.writeByte(this._buffer[this._streamPos ++]);\n }\n if (this._pos >= this._windowSize){\n this._pos = 0;\n }\n this._streamPos = this._pos;\n }\n };\n\n LZMA.OutWindow.prototype.releaseStream = function(){\n this.flush();\n this._stream = null;\n };\n\n LZMA.OutWindow.prototype.setStream = function(stream){\n this.releaseStream();\n this._stream = stream;\n };\n\n LZMA.OutWindow.prototype.init = function(solid){\n if (!solid){\n this._streamPos = 0;\n this._pos = 0;\n }\n };\n\n LZMA.OutWindow.prototype.copyBlock = function(distance, len){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n while(len --){\n if (pos >= this._windowSize){\n pos = 0;\n }\n this._buffer[this._pos ++] = this._buffer[pos ++];\n if (this._pos >= this._windowSize){\n this.flush();\n }\n }\n };\n\n LZMA.OutWindow.prototype.putByte = function(b){\n this._buffer[this._pos ++] = b;\n if (this._pos >= this._windowSize){\n this.flush();\n }\n };\n\n LZMA.OutWindow.prototype.getByte = function(distance){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n return this._buffer[pos];\n };\n\n LZMA.RangeDecoder = function(){\n };\n\n LZMA.RangeDecoder.prototype.setStream = function(stream){\n this._stream = stream;\n };\n\n LZMA.RangeDecoder.prototype.releaseStream = function(){\n this._stream = null;\n };\n\n LZMA.RangeDecoder.prototype.init = function(){\n var i = 5;\n\n this._code = 0;\n this._range = -1;\n\n while(i --){\n this._code = (this._code << 8) | this._stream.readByte();\n }\n };\n\n LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){\n var result = 0, i = numTotalBits, t;\n\n while(i --){\n this._range >>>= 1;\n t = (this._code - this._range) >>> 31;\n this._code -= this._range & (t - 1);\n result = (result << 1) | (1 - t);\n\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n }\n\n return result;\n };\n\n LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){\n var prob = probs[index],\n newBound = (this._range >>> 11) * prob;\n\n if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){\n this._range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 0;\n }\n\n this._range -= newBound;\n this._code -= newBound;\n probs[index] -= prob >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 1;\n };\n\n LZMA.initBitModels = function(probs, len){\n while(len --){\n probs[len] = 1024;\n }\n };\n\n LZMA.BitTreeDecoder = function(numBitLevels){\n this._models = [];\n this._numBitLevels = numBitLevels;\n };\n\n LZMA.BitTreeDecoder.prototype.init = function(){\n LZMA.initBitModels(this._models, 1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){\n var m = 1, i = this._numBitLevels;\n\n while(i --){\n m = (m << 1) | rangeDecoder.decodeBit(this._models, m);\n }\n return m - (1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < this._numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(this._models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.LenDecoder = function(){\n this._choice = [];\n this._lowCoder = [];\n this._midCoder = [];\n this._highCoder = new LZMA.BitTreeDecoder(8);\n this._numPosStates = 0;\n };\n\n LZMA.LenDecoder.prototype.create = function(numPosStates){\n for (; this._numPosStates < numPosStates; ++ this._numPosStates){\n this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n }\n };\n\n LZMA.LenDecoder.prototype.init = function(){\n var i = this._numPosStates;\n LZMA.initBitModels(this._choice, 2);\n while(i --){\n this._lowCoder[i].init();\n this._midCoder[i].init();\n }\n this._highCoder.init();\n };\n\n LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){\n if (rangeDecoder.decodeBit(this._choice, 0) === 0){\n return this._lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this._choice, 1) === 0){\n return 8 + this._midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this._highCoder.decode(rangeDecoder);\n };\n\n LZMA.Decoder2 = function(){\n this._decoders = [];\n };\n\n LZMA.Decoder2.prototype.init = function(){\n LZMA.initBitModels(this._decoders, 0x300);\n };\n\n LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){\n var symbol = 1;\n\n do{\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){\n var symbol = 1, matchBit, bit;\n\n do{\n matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit){\n while(symbol < 0x100){\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }\n break;\n }\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.LiteralDecoder = function(){\n };\n\n LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){\n var i;\n\n if (this._coders\n && (this._numPrevBits === numPrevBits)\n && (this._numPosBits === numPosBits) ){\n return;\n }\n this._numPosBits = numPosBits;\n this._posMask = (1 << numPosBits) - 1;\n this._numPrevBits = numPrevBits;\n\n this._coders = [];\n\n i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i] = new LZMA.Decoder2();\n }\n };\n\n LZMA.LiteralDecoder.prototype.init = function(){\n var i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i].init();\n }\n };\n\n LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){\n return this._coders[( (pos & this._posMask) << this._numPrevBits)\n + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )];\n };\n\n LZMA.Decoder = function(){\n this._outWindow = new LZMA.OutWindow();\n this._rangeDecoder = new LZMA.RangeDecoder();\n this._isMatchDecoders = [];\n this._isRepDecoders = [];\n this._isRepG0Decoders = [];\n this._isRepG1Decoders = [];\n this._isRepG2Decoders = [];\n this._isRep0LongDecoders = [];\n this._posSlotDecoder = [];\n this._posDecoders = [];\n this._posAlignDecoder = new LZMA.BitTreeDecoder(4);\n this._lenDecoder = new LZMA.LenDecoder();\n this._repLenDecoder = new LZMA.LenDecoder();\n this._literalDecoder = new LZMA.LiteralDecoder();\n this._dictionarySize = -1;\n this._dictionarySizeCheck = -1;\n\n this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6);\n };\n\n LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){\n if (dictionarySize < 0){\n return false;\n }\n if (this._dictionarySize !== dictionarySize){\n this._dictionarySize = dictionarySize;\n this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);\n this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) );\n }\n return true;\n };\n\n LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){\n var numPosStates = 1 << pb;\n\n if (lc > 8 || lp > 4 || pb > 4){\n return false;\n }\n\n this._literalDecoder.create(lp, lc);\n\n this._lenDecoder.create(numPosStates);\n this._repLenDecoder.create(numPosStates);\n this._posStateMask = numPosStates - 1;\n\n return true;\n };\n\n LZMA.Decoder.prototype.init = function(){\n var i = 4;\n\n this._outWindow.init(false);\n\n LZMA.initBitModels(this._isMatchDecoders, 192);\n LZMA.initBitModels(this._isRep0LongDecoders, 192);\n LZMA.initBitModels(this._isRepDecoders, 12);\n LZMA.initBitModels(this._isRepG0Decoders, 12);\n LZMA.initBitModels(this._isRepG1Decoders, 12);\n LZMA.initBitModels(this._isRepG2Decoders, 12);\n LZMA.initBitModels(this._posDecoders, 114);\n\n this._literalDecoder.init();\n\n while(i --){\n this._posSlotDecoder[i].init();\n }\n\n this._lenDecoder.init();\n this._repLenDecoder.init();\n this._posAlignDecoder.init();\n this._rangeDecoder.init();\n };\n\n LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){\n var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0,\n posState, decoder2, len, distance, posSlot, numDirectBits;\n\n this._rangeDecoder.setStream(inStream);\n this._outWindow.setStream(outStream);\n\n this.init();\n\n while(outSize < 0 || nowPos64 < outSize){\n posState = nowPos64 & this._posStateMask;\n\n if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){\n decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte);\n\n if (state >= 7){\n prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) );\n }else{\n prevByte = decoder2.decodeNormal(this._rangeDecoder);\n }\n this._outWindow.putByte(prevByte);\n\n state = state < 4? 0: state - (state < 10? 3: 6);\n\n }else{\n\n if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){\n len = 0;\n if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){\n if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){\n state = state < 7? 9: 11;\n len = 1;\n }\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){\n distance = rep1;\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){\n distance = rep2;\n }else{\n distance = rep3;\n rep3 = rep2;\n }\n rep2 = rep1;\n }\n rep1 = rep0;\n rep0 = distance;\n }\n if (len === 0){\n len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 8: 11;\n }\n }else{\n rep3 = rep2;\n rep2 = rep1;\n rep1 = rep0;\n\n len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 7: 10;\n\n posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder);\n if (posSlot >= 4){\n\n numDirectBits = (posSlot >> 1) - 1;\n rep0 = (2 | (posSlot & 1) ) << numDirectBits;\n\n if (posSlot < 14){\n rep0 += LZMA.reverseDecode2(this._posDecoders,\n rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);\n }else{\n rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4;\n rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);\n if (rep0 < 0){\n if (rep0 === -1){\n break;\n }\n return false;\n }\n }\n }else{\n rep0 = posSlot;\n }\n }\n\n if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){\n return false;\n }\n\n this._outWindow.copyBlock(rep0, len);\n nowPos64 += len;\n prevByte = this._outWindow.getByte(0);\n }\n }\n\n this._outWindow.flush();\n this._outWindow.releaseStream();\n this._rangeDecoder.releaseStream();\n\n return true;\n };\n\n LZMA.Decoder.prototype.setDecoderProperties = function(properties){\n var value, lc, lp, pb, dictionarySize;\n\n if (properties.size < 5){\n return false;\n }\n\n value = properties.readByte();\n lc = value % 9;\n value = ~~(value / 9);\n lp = value % 5;\n pb = ~~(value / 5);\n\n if ( !this.setLcLpPb(lc, lp, pb) ){\n return false;\n }\n\n dictionarySize = properties.readByte();\n dictionarySize |= properties.readByte() << 8;\n dictionarySize |= properties.readByte() << 16;\n dictionarySize += properties.readByte() * 16777216;\n\n return this.setDictionarySize(dictionarySize);\n };\n\n LZMA.decompress = function(properties, inStream, outStream, outSize){\n var decoder = new LZMA.Decoder();\n\n if ( !decoder.setDecoderProperties(properties) ){\n throw "Incorrect stream properties";\n }\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n\n LZMA.decompressFile = function(inStream, outStream){\n var decoder = new LZMA.Decoder(), outSize;\n\n if ( !decoder.setDecoderProperties(inStream) ){\n throw "Incorrect stream properties";\n }\n\n outSize = inStream.readByte();\n outSize |= inStream.readByte() << 8;\n outSize |= inStream.readByte() << 16;\n outSize += inStream.readByte() * 16777216;\n\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n'],{type:"text/javascript"});lr=URL.createObjectURL(hr)}catch(e){}var dr=function(){function e(){var e=this;if(this.callCounter=0,this.requests=[],!cr)throw new Error("LZMACaller cannot work in this broswer.");var t=this.worker=new Worker(lr);t.onmessage=function(t){var r,i,n=t.data,s=n.PacketID,o=n.Result,a=n.Error;a?null===(i=e.requests[s])||void 0===i||i.onCompleteCallback(new Error(a)):null===(r=e.requests[s])||void 0===r||r.onCompleteCallback(null,o),delete e.requests[s]},t.onerror=function(e){return console.error(e)}}return e.prototype.compress=function(e,t,r){var i=++this.callCounter;this.requests[i]={onCompleteCallback:r},this.worker.postMessage({Type:"compress",PacketID:i,Data:e,Level:t},[e.buffer])},e.prototype.decompress=function(e,t){var r=++this.callCounter;this.requests[r]={onCompleteCallback:t},this.worker.postMessage({Type:"decompress",PacketID:r,Data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=cr,e}();function pr(e){return Array.prototype.reduce.call(e,(function(e,t,r){return e|t<<8*r}),0)}function fr(e){for(var t=new Uint8Array(e),r=pr(t.slice(0,4)),i=[],n=[],s=4+4*r,o=0;o<r;o++)n[o]=pr(t.slice(4+4*o,8+4*o)),i[o]=o===r-1?t.subarray(s,s+n[o]):t.slice(s,s+n[o]),s+=n[o];return dr.support?function(e){for(var t=[],r=e.length,i=function(r){t.push(new Promise((function(t,i){var n=new dr;n.decompress(e[r],(function(e,r){if(n.terminate(),e)return i(e);t(r)}))})))},n=0;n<r;n++)i(n);return Promise.all(t)}(i):Promise.resolve(function(e){for(var t,r=[],i=e.length,n=function(i){var n={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},s=n.data.length,o={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/s);this.data[t]||(this.data[t]=new Uint8Array(s)),this.data[t][this.offset%s]=e,this.offset++}};ur.decompressFile(n,o),t=new Uint8Array(o.offset);for(var a=0;a<o.offset;a++)t[a]=o.data[Math.floor(a/s)][a%s];r.push(t)},s=0;s<i;s++)n(s);return r}(i))}function Ar(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}var Mr=Ht.parse("\nmessage Model {\n repeated Mesh meshes = 1;\n}\nmessage Mesh {\n required string name = 1;\n repeated Chunk chunks = 2;\n repeated Matrix matrix = 3;\n}\nmessage Matrix {\n repeated float elements = 1;\n}\nmessage Chunk {\n required Geometry geometry = 2;\n repeated Material material = 3;\n}\nmessage Geometry {\n required Position position = 1;\n optional UV uv = 2;\n optional UV uv2 = 3;\n required Normal normal = 4;\n repeated Group groups = 5;\n}\nmessage Position {\n repeated float array = 1[packed=true];\n}\nmessage UV {\n repeated float array = 1[packed=true];\n}\nmessage Normal {\n repeated float array = 1[packed=true];\n}\nmessage Group {\n required uint32 start = 1;\n required uint32 count = 2;\n required uint32 materialIndex = 3;\n}\nmessage Material {\n optional Color kd = 1;\n optional Color ks = 2;\n optional Color ke = 3;\n optional string mapkd = 4;\n optional string mapks = 5;\n optional string mapke = 6;\n optional string norm = 7;\n optional string mapbump = 8;\n optional string bump = 9;\n optional string mapd = 10;\n optional float ns = 11;\n optional float d = 12;\n optional float tr = 13;\n optional string mapkdrepeat = 14;\n}\nmessage Color {\n repeated float rgb = 1;\n}\n").root.lookup("Model"),gr={};function yr(t,r,i,n,s){var o,a=[],u=[];function c(t,o,a){var c=function(t){var r=t.position,i=t.normal,n=t.uv,s=t.uv2,o=t.groups,a=new e.BufferGeometry;return a.setAttribute("position",new e.BufferAttribute(new Float32Array(r.array),3)),i&&a.setAttribute("normal",new e.BufferAttribute(new Float32Array(i.array),3)),n&&a.setAttribute("uv",new e.BufferAttribute(new Float32Array(n.array),2)),s&&a.setAttribute("uv2",new e.BufferAttribute(new Float32Array(s.array),2)),o.forEach((function(e){return a.addGroup(e.start,e.count,e.materialIndex)})),a}(t);c.applyMatrix4(a);var l=new e.Vector3,h=new e.Quaternion,d=new e.Vector3;a.decompose(l,h,d),d.x*d.y*d.z<0&&c.attributes.normal&&c.attributes.position&&c.attributes.uv&&function(e){for(var t=[0,0,0],r=0;r<e.attributes.normal.array.length/9;r++)t[0]=e.attributes.normal.array[9*r],t[1]=e.attributes.normal.array[9*r+1],t[2]=e.attributes.normal.array[9*r+2],e.attributes.normal.array[9*r]=e.attributes.normal.array[9*r+6],e.attributes.normal.array[9*r+1]=e.attributes.normal.array[9*r+7],e.attributes.normal.array[9*r+2]=e.attributes.normal.array[9*r+8],e.attributes.normal.array[9*r+6]=t[0],e.attributes.normal.array[9*r+7]=t[1],e.attributes.normal.array[9*r+8]=t[2];for(r=0;r<e.attributes.position.array.length/9;r++)t[0]=e.attributes.position.array[9*r],t[1]=e.attributes.position.array[9*r+1],t[2]=e.attributes.position.array[9*r+2],e.attributes.position.array[9*r]=e.attributes.position.array[9*r+6],e.attributes.position.array[9*r+1]=e.attributes.position.array[9*r+7],e.attributes.position.array[9*r+2]=e.attributes.position.array[9*r+8],e.attributes.position.array[9*r+6]=t[0],e.attributes.position.array[9*r+7]=t[1],e.attributes.position.array[9*r+8]=t[2];for(r=0;r<e.attributes.uv.array.length/6;r++)t[0]=e.attributes.uv.array[6*r],t[1]=e.attributes.uv.array[6*r+1],e.attributes.uv.array[6*r]=e.attributes.uv.array[6*r+4],e.attributes.uv.array[6*r+1]=e.attributes.uv.array[6*r+5],e.attributes.uv.array[6*r+4]=t[0],e.attributes.uv.array[6*r+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(c);var p=o.map((function(t){var o=function(t,r,i,n,s){var o={sourceFile:null,needsUpdate:!0,wrapS:e.RepeatWrapping,wrapT:e.RepeatWrapping};function a(t,a){return gr[t]?Promise.resolve(gr[t]):new Promise((function(u,c){var l=new Pt({allowHosts:n,networkSubscribe:s});Ar(t)||(t=r+t),-1!==(t=(t=t.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).split("?")[0]).indexOf(".png")&&(t=t.split(".png")[0]+".png"),-1!==t.indexOf(".jpg")&&(t=t.split(".jpg")[0]+".jpg"),0===t.indexOf("//")&&(t="https:"+t),t=kt(t,Object.assign({key:"texture"},i,{size:64})),l.load(t,(function(r){var i=new e.Texture(r),n=i.dispose;i.dispose=function(){n.call(i),/^blob\:/.test(r.src)&&URL.revokeObjectURL(r.src)},a&&Object.assign(i.repeat,a),Object.assign(i,o,{sourceFile:t}),i.updateMatrix(),gr[t]=i,u(i)}),Qe,(function(e){return c(e.error)}))}))}var u=[],c=new ut,l=c.uniforms;l.exposure.value=4.3;var h,d=c.defines;if(d.USE_MAP=!1,d.USE_UV=!1,t.hasOwnProperty("kd")&&(l.diffuse.value=(new e.Color).fromArray(t.kd.rgb)),t.hasOwnProperty("mapkd")){var p=void 0;if(t.mapkdrepeat){var f=t.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),A=f[0],M=f[1];p=new e.Vector2(A,M)}u.push(a(t.mapkd,p).then((function(e){d.USE_MAP=!0,d.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix})).catch((function(e){})))}return t.hasOwnProperty("ks")&&(l.specular.value=(new e.Color).fromArray(t.ks.rgb)),t.hasOwnProperty("mapks")&&u.push(a(t.mapks).then((function(e){l.specularMap.value=e})).catch((function(e){}))),t.hasOwnProperty("ke")&&(l.emissive.value=(new e.Color).fromArray(t.ke.rgb)),t.hasOwnProperty("mapke")&&u.push(a(t.mapke).then((function(e){l.emissiveMap.value=e})).catch((function(e){}))),t.hasOwnProperty("norm")&&u.push(a(t.norm).then((function(e){l.normalMap.value=e})).catch((function(e){}))),t.hasOwnProperty("mapbump")&&u.push(a(t.mapbump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),t.hasOwnProperty("bump")&&u.push(a(t.bump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),t.hasOwnProperty("ns")&&(l.shininess.value=t.ns),t.hasOwnProperty("d")&&(h=t.d)>=0&&h<1&&(l.originOpacity.value=h),t.hasOwnProperty("tr")&&(h=1-t.tr)>=0&&h<1&&(l.originOpacity.value=h),l.originOpacity.value<1&&(c.transparent=!0),{material:c,textureReady:Promise.all(u).then((function(){}))}}(t,r,i,n,s),a=o.material,c=o.textureReady;return u.push(c),a}));return new Ke(c,p)}return(o=t,Mr.decode(o)).meshes.forEach((function(t){var r=t.name,i=t.chunks,n=t.matrix;"Ceiling"!==r&&"CeilingDrop"!==r&&n.map((function(t){var n,s=new e.Matrix4;if(s.elements=t.elements,1===i.length){var o=i[0],u=o.geometry,l=o.material;n=c(u,l,s)}else n=new $e,i.forEach((function(e,t){var r=c(e.geometry,e.material,s);r.name="chunk"+t,n.add(r)}));n.floorIndex=0,n.name=r,a.push(n)}))})),Promise.all(u).catch((function(){})).then((function(){return a}))}function vr(){Object.keys(gr).forEach((function(e){gr[e].dispose(),delete gr[e]}))}function mr(t){var r;return new((r=e.Triangle).bind.apply(r,Ce([void 0],t.map((function(t){return new e.Vector3(t.x,t.y,t.z)})),!1)))}var Nr={at3d:function(e,t){for(var r=ar(t.imageOptions,e.textures.length),i={},n=0,s=e.textures;n<s.length;n++){var o=s[n];i[o]=ir(o,r,t.allowHosts,t.networkSubscribe)}var a={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return St.async(e.file,a)})).then((function(e){return fr(e.body)})).then((function(e){return Ft((function(){for(var t=[],r=0,i=e;r<i.length;r++){var n=i[r],s=sr.decode(n);t.push.apply(t,s.chunks)}return t}))})).then((function(n){return Ft((function(){return or(n,e.textureBase,e.textures.slice(),r,i,t.allowHosts,t.networkSubscribe)}))}))},pbm:function(e,t){for(var r=ar(t.imageOptions,e.textures.length),i={},n=0,s=e.textures;n<s.length;n++){var o=s[n];i[o]=ir(o,r,t.allowHosts,t.networkSubscribe)}var a={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return St.async(e.file,a)})).then((function(e){return Ft((function(){var t=new Uint8Array(e.body),r=sr.decode(t);return[].concat(r.chunks)}))})).then((function(n){return Ft((function(){return or(n,e.textureBase,e.textures.slice(),r,i,t.allowHosts,t.networkSubscribe)}))}))},dome:function(e,t){var r={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return vr()})).then((function(){return St.async(e.file,r)})).then((function(r){return yr(new Uint8Array(r.body),e.textureBase,t.imageOptions,t.allowHosts,t.networkSubscribe)}))},domez:function(e,t){var r={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return vr()})).then((function(){return St.async(e.file,r)})).then((function(e){return fr(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),r=new Uint8Array(t),i=0;return e.forEach((function(e){r.set(e,i),i+=e.length})),r})).then((function(r){return yr(r,e.textureBase,t.imageOptions,t.allowHosts,t.networkSubscribe)}))}},Dr=function(t){function r(r){void 0===r&&(r={});var i=t.call(this)||this;return i.empty=!1,i.name="model",i.loaded=!1,i.bvhs=[],i.bounding=new e.Box3,i.shownFloor=null,i.floorLength=0,i.networkSubscribe=r.networkSubscribe,i.allowHosts=r.allowHosts,i}return Se(r,t),Object.defineProperty(r.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),r.prototype.getEdges=function(t){var r;void 0===t&&(t=30/180*Math.PI);for(var i=Math.cos(t),n=[],s=0,o=this.children;s<o.length;s++){var a=o[s];if(a instanceof Ke){for(var u={},c=["a","b","c"],l=Gt.mergeVertices(a.geometry),h=l.getAttribute("position").array,d=(null===(r=l.getIndex())||void 0===r?void 0:r.array)||[],p=[],f=[],A=0,M=h.length;A<M;A+=3)p.push(new e.Vector3(h[A],h[A+1],h[A+2]));for(A=0,M=d.length;A<M;A+=3){var g=d[A],y=d[A+1],v=d[A+2],m=(new e.Vector3).crossVectors(p[y].clone().sub(p[g]),p[v].clone().sub(p[g])).normalize();f.push({a:g,b:y,c:v,normal:m})}for(A=0,M=f.length;A<M;A++)for(var N=f[A],D=0;D<3;D++){var w=N[c[D]],T=N[c[(D+1)%3]],x=[Math.min(w,T),Math.max(w,T)];void 0===u[E=x[0]+"-"+x[1]]?u[E]={index1:x[0],index2:x[1],face1:A}:u[E].face2=A}for(var E in u){var j=u[E];if(void 0===j.face2||f[j.face1].normal.dot(f[j.face2].normal)<=i){var I=p[j.index1],b=p[j.index2];n.push(new e.Line3(I,b))}}l.dispose(),p.length=0,f.length=0}}return n},r.prototype.hasFloors=function(){return this.hasFloors_()},r.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof Ke&&(e[t.floorIndex]=!0)})),e.length},r.prototype.show=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var i=this.shownFloor,n=null,s=null!==(e=t[1])&&void 0!==e?e:.1,o=0!==t.length;this.shownFloor=n=o?t[0]:null,this.traverse((function(e){e instanceof Ke&&e.material.forEach((function(t){null===n||n===e.floorIndex?t.opacity=1:t.opacity=s}))})),i!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},r.prototype.intersectRaycaster=function(t,r){var i=t.ray,n=i.origin,s=i.direction;if(Re(r))if(Re(this.shownFloor)){var o=this.floorLength;r=[];for(var a=0;a<o;a++)r.push(a)}else r=[this.shownFloor];var u=[],c=[];Array.isArray(r)?c.push.apply(c,r):c.push(r);for(var l=function(r){var i=h.bvhs&&h.bvhs[r];if(i)(o=i.intersectRay(n,s,!0).map((function(t){var r=t.intersectionPoint,i=t.triangle,s=new e.Vector3(r.x,r.y,r.z);return{point:s,face:{normal:mr(i).getNormal(new e.Vector3)},distance:n.distanceTo(s)}}))).length&&u.push.apply(u,o);else{var o,a=[];h.traverse((function(e){e instanceof Ke&&e.floorIndex===r&&a.push(e)})),(o=t.intersectObjects(a).map((function(e){var t=e.face?{normal:e.face.normal}:void 0;return{point:e.point,face:t,distance:e.distance}}))).length&&u.push.apply(u,o)}},h=this,d=0,p=c;d<p.length;d++)l(p[d]);return u.filter((function(e){var r=e.distance;return r<=t.far&&r>=t.near})).sort((function(e,t){return e.distance-t.distance}))},r.prototype.buildBVH=function(){var e=this,t=[];this.traverse((function(e){e instanceof Ke&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var r=t.map((function(e){var t=e.reduce((function(e,t){return e+(t.index?t.index.array.length:t.attributes.position.array.length)}),0),r=new Float32Array(3*t);return e.reduce((function(e,t){for(var i=t.index?t.index.array:null,n=t.attributes.position.array,s=i?i.length:n.length/3,o=0;o<s;o++){var a=3*(e+o),u=i?3*i[o]:3*o;r[a+0]=n[u+0],r[a+1]=n[u+1],r[a+2]=n[u+2]}return e+s}),0),new gt(r,5)}));return this.bvhs=[],Promise.all(r.map((function(e){return new Promise((function(t){return e.splitNode(t)}))}))).then((function(){e.bvhs=r,e.bvhs.loaded=!0,e.emit("bvhLoaded")}))},r.prototype.load=function(t,r){var i=this;if(void 0===r&&(r={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var n=function(e,t){void 0===t&&(t=[]);var r=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!r)return"";for(var i=0,n=String(r[1]).trim().split(".").slice(1).reverse();i<n.length;i++){var s=n[i],o=t.indexOf(s);if(o>=0)return t[o]}return""}(t.file,Object.keys(Nr)),s=Nr[n];if(!s)throw new Error("[MODEL LOAD ERROR]: file type("+n+") does not support.");return s(t,{imageOptions:r,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}).then((function(t){for(var r=[],n=0,s=t;n<s.length;n++)(c=s[n]).traverse((function(e){e instanceof Ke&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),r.push(e.geometry.boundingBox))})),i.add(c);i.floorLength=i.hasFloors_(),i.bounding=function(t){for(var r=new e.Box3,i=0,n=t;i<n.length;i++){var s=n[i];r.union(s)}return r}(r);for(var o=i.bounding.getCenter(new e.Vector3),a=0,u=t;a<u.length;a++){var c;(c=u[a]).traverse((function(e){e instanceof Ke&&e.material.forEach((function(e){e.uniforms.modelCenter.value=o}))}))}r.length=0,i.emit("geometryLoaded"),i.emit("materialLoaded"),i.loaded=!0,qe((function(){return i.emit("loaded")}))})).catch((function(e){return i.emit("error",e),Promise.reject(e)}))},r.prototype.dispose=function(){for(this.off(),this.disposeGeometry(),this.disposeMaterial();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,delete this.bvhs.loaded},r}(Je);function wr(e){switch(e.getError()){case e.INVALID_ENUM:return new Error("webgl error: INVALID_ENUM");case e.INVALID_VALUE:return new Error("webgl error: INVALID_VALUE");case e.INVALID_OPERATION:return new Error("webgl error: INVALID_OPERATION");case e.INVALID_FRAMEBUFFER_OPERATION:return new Error("webgl error: INVALID_FRAMEBUFFER_OPERATION");case e.OUT_OF_MEMORY:return new Error("webgl error: OUT_OF_MEMORY");case e.CONTEXT_LOST_WEBGL:return new Error("webgl error: CONTEXT_LOST_WEBGL");default:return null}}Object.assign(Dr.prototype,{on:Nt.prototype.on,once:Nt.prototype.once,off:Nt.prototype.off,emit:Nt.prototype.emit,hasListener:Nt.prototype.hasListener});var Tr,xr={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-xr.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*xr.Bounce.In(2*e):.5*xr.Bounce.Out(2*e-1)+.5}}},Er="undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},jr=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map((function(t){return e._tweens[t]}))},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},e.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},e.prototype.update=function(e,t){void 0===e&&(e=Er()),void 0===t&&(t=!1);var r=Object.keys(this._tweens);if(0===r.length)return!1;for(;r.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<r.length;i++){var n=this._tweens[r[i]],s=!t;n&&!1===n.update(e,s)&&!t&&delete this._tweens[r[i]]}r=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),Ir={Linear:function(e,t){var r=e.length-1,i=r*t,n=Math.floor(i),s=Ir.Utils.Linear;return t<0?s(e[0],e[1],i):t>1?s(e[r],e[r-1],r-i):s(e[n],e[n+1>r?r:n+1],i-n)},Bezier:function(e,t){for(var r=0,i=e.length-1,n=Math.pow,s=Ir.Utils.Bernstein,o=0;o<=i;o++)r+=n(1-t,i-o)*n(t,o)*e[o]*s(i,o);return r},CatmullRom:function(e,t){var r=e.length-1,i=r*t,n=Math.floor(i),s=Ir.Utils.CatmullRom;return e[0]===e[r]?(t<0&&(n=Math.floor(i=r*(1+t))),s(e[(n-1+r)%r],e[n],e[(n+1)%r],e[(n+2)%r],i-n)):t<0?e[0]-(s(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[r]-(s(e[r],e[r],e[r-1],e[r-1],i-r)-e[r]):s(e[n?n-1:0],e[n],e[r<n+1?r:n+1],e[r<n+2?r:n+2],i-n)},Utils:{Linear:function(e,t,r){return(t-e)*r+e},Bernstein:function(e,t){var r=Ir.Utils.Factorial;return r(e)/r(t)/r(e-t)},Factorial:(Tr=[1],function(e){var t=1;if(Tr[e])return Tr[e];for(var r=e;r>1;r--)t*=r;return Tr[e]=t,t}),CatmullRom:function(e,t,r,i,n){var s=.5*(r-e),o=.5*(i-t),a=n*n;return(2*t-2*r+s+o)*(n*a)+(-3*t+3*r-2*s-o)*a+s*n+t}}},br=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),zr=new jr,Or=function(){function e(e,t){void 0===t&&(t=zr),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=xr.Linear.None,this._interpolationFunction=Ir.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=br.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},e.prototype.duration=function(e){return this._duration=e,this},e.prototype.start=function(e){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var t in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(t),this._valuesStart[t]=this._valuesStartRepeat[t];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==e?"string"==typeof e?Er()+parseFloat(e):e:Er(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(e,t,r,i){for(var n in r){var s=e[n],o=Array.isArray(s),a=o?"array":typeof s,u=!o&&Array.isArray(r[n]);if("undefined"!==a&&"function"!==a){if(u){var c=r[n];if(0===c.length)continue;c=c.map(this._handleRelativeValue.bind(this,s)),r[n]=[s].concat(c)}if("object"!==a&&!o||!s||u)void 0===t[n]&&(t[n]=s),o||(t[n]*=1),i[n]=u?r[n].slice().reverse():t[n]||0;else{for(var l in t[n]=o?[]:{},s)t[n][l]=s[l];i[n]=o?[]:{},this._setupProperties(s,t[n],r[n],i[n])}}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(e){return void 0===e&&(e=Er()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},e.prototype.resume=function(e){return void 0===e&&(e=Er()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},e.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop();return this},e.prototype.group=function(e){return this._group=e,this},e.prototype.delay=function(e){return this._delayTime=e,this},e.prototype.repeat=function(e){return this._initialRepeat=e,this._repeat=e,this},e.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},e.prototype.yoyo=function(e){return this._yoyo=e,this},e.prototype.easing=function(e){return this._easingFunction=e,this},e.prototype.interpolation=function(e){return this._interpolationFunction=e,this},e.prototype.chain=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this._chainedTweens=e,this},e.prototype.onStart=function(e){return this._onStartCallback=e,this},e.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},e.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},e.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},e.prototype.onStop=function(e){return this._onStopCallback=e,this},e.prototype.update=function(e,t){if(void 0===e&&(e=Er()),void 0===t&&(t=!0),this._isPaused)return!0;var r,i,n=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>n)return!1;t&&this.start(e)}if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),i=(e-this._startTime)/this._duration,i=0===this._duration||i>1?1:i;var s=this._easingFunction(i);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,i),1===i){if(this._repeat>0){for(r in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[r]||(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var o=0,a=this._chainedTweens.length;o<a;o++)this._chainedTweens[o].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(e,t,r,i){for(var n in r)if(void 0!==t[n]){var s=t[n]||0,o=r[n],a=Array.isArray(e[n]),u=Array.isArray(o);!a&&u?e[n]=this._interpolationFunction(o,i):"object"==typeof o&&o?this._updateProperties(e[n],s,o,i):"number"==typeof(o=this._handleRelativeValue(s,o))&&(e[n]=s+(o-s)*i)}},e.prototype._handleRelativeValue=function(e,t){return"string"!=typeof t?t:"+"===t.charAt(0)||"-"===t.charAt(0)?e+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(e){var t=this._valuesStartRepeat[e],r=this._valuesEnd[e];this._valuesStartRepeat[e]="string"==typeof r?this._valuesStartRepeat[e]+parseFloat(r):this._valuesEnd[e],this._valuesEnd[e]=t},e}(),Sr=br.nextId,Lr=zr,Cr=Lr.getAll.bind(Lr),kr=Lr.removeAll.bind(Lr),Pr=Lr.add.bind(Lr),_r=Lr.remove.bind(Lr),Br=Lr.update.bind(Lr),Ur={Easing:xr,Group:jr,Interpolation:Ir,now:Er,Sequence:br,nextId:Sr,Tween:Or,VERSION:"18.6.4",getAll:Cr,removeAll:kr,add:Pr,remove:_r,update:Br},Rr=Ur.Tween,Qr=Ur.Easing;function Yr(e,t,r,i){void 0===i&&(i=Qr.Linear.None);var n=[],s=[],o=[],a=[],u=Object.assign(new Rr(e).to(t,r).easing(i),{completed:!1,onCancel:function(e){return n.push(e),u},destroy:function(){if(u.stop(),Object.assign(this,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallback:null}),!u.completed)for(var e=0,t=n;e<t.length;e++)(0,t[e])();n.length=0,c()}});Object.assign(u,{onStart:function(e){return s.push(e),u},onUpdate:function(e){return o.push(e),u},onComplete:function(e){return a.push(e),u},_onStartCallback:function(e){for(var t=0,r=s;t<r.length;t++)(0,r[t])(e)},_onUpdateCallback:function(e,t){for(var r=0,i=o;r<i.length;r++)(0,i[r])(e,t);1===t&&0===u._repeat&&(u.completed=!0)},_onCompleteCallback:function(e){for(var t=0,r=a;t<r.length;t++)(0,r[t])(e)}}),qe((function(){return u.start()}));var c=We((function(e){!1===u.update(e)&&c()}));return u}function Fr(e,t){return Yr({progress:0},{progress:1},e,t)}var Vr=2*Math.PI;function Hr(e){return(e%Vr+Vr)%Vr}var Gr=Math.PI,qr=2*Gr;function Wr(e,t,r){return e+(t-e)*r}function Zr(e,t,r){return e=Hr(e),Wr((t=Hr(t))-e>Gr?e+qr:e-t>Gr?e-qr:e,t,r)}function Xr(e,t,r){if(e===t)return t;var i=t-e;return Math.abs(i)<=r?t:e+(i>0?1:-1)*r}var Kr="Panorama";function Jr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=[];e=e.map((function(e){return e.trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var i=0;i<e.length;i++){var n=0===i,s=i===e.length-1,o=e[i];n||(o=o.replace(/^\/+/,"")),s||(o=o.replace(/\/+$/,"")),r.push(o)}return r.join("/")}function $r(e){return e instanceof Error}function ei(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var r,i,n;if(Array.isArray(e)){if((r=e.length)!=t.length)return!1;for(i=r;0!=i--;)if(!ei(e[i],t[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((r=(n=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(i=r;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,n[i]))return!1;for(i=r;0!=i--;){var s=n[i];if(!ei(e[s],t[s]))return!1}return!0}return e!=e&&t!=t}function ti(e){return"number"==typeof e}function ri(e,t){void 0===t&&(t=!1);var r=typeof e;if("string"===r)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",n=e.length-1,s=0;s<n;s++)i+=ri(e[s],!1)+",";return n>-1&&(i+=ri(e[s],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return ri(e.toJSON(),t);var o=Object.keys(e).sort(),a=o.length;for(i="",s=0;s<a;){var u=o[s],c=ri(e[u],!0);void 0!==c&&(s&&""!==i&&(i+=","),i+=JSON.stringify(u)+":"+c),s++}return"{"+i+"}"}switch(r){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function ii(e){return String(ri(e,!1))}var ni=new WeakMap;function si(t,r,i){var n,s,o=JSON.stringify(r),a=JSON.stringify(t),u=function(e){var t,r,i,n=JSON.parse(e),s="undefined"!=typeof location?location.hostname:"",o=Date.now();if("object"!=typeof n)return new Error("input is not an object");if(0===s.length||Tt(s)||Et.filter((function(e){return xt(e,s)})).length>0){var a=String(null!==(t=n.certificate)&&void 0!==t?t:"");if(a){var u=new xe;return u.readCertPEM(a),{issuer:u.getSubjectString()}}return{issuer:"none"}}var c=String(null!==(r=n.certificate)&&void 0!==r?r:"");if(!c)return new Error("certificate is not existed.");var l=new xe;l.readCertPEM(c);var h=String(null!==(i=n._signature)&&void 0!==i?i:"");if(!h)return new Error("signature is not existed.");if(!1===function(e,t,r){var i=new xe;if("string"==typeof r?i.readCertPEM(r):i.readCertHex(r.hex),!1===ze(i))return!1;var n=new V;return n.readCertPubKeyHex(i.hex,6),!!n.verify(e,L(t))}(ii(function(e,t){for(var r={},i=0,n=Object.keys(e);i<n.length;i++){var s=n[i];-1===t.indexOf(s)&&(r[s]=e[s])}return r}(n,["_signature"])),h,l))return new Error("signature verify failed.");var d=new Date("string"==typeof n.expire_at&&/^\d+$/.test(n.expire_at)?Number(n.expire_at):n.expire_at);return o-d.getTime()<0?function(e){return new Error("date("+e.toString()+") expired.")}(d):0===(Array.isArray(n.allow_hosts)?n.allow_hosts:[]).filter((function(e){return xt(e,s)})).length?function(e){return new Error("host("+JSON.stringify(e)+") is not allowed.")}(s):{issuer:l.getSubjectString()}}(a);t=JSON.parse(a),r=JSON.parse(o);var c={workCode:"",expire:new Date,allowHosts:[],uuid:Fe(),initial:{mode:Kr,latitude:0,longitude:0,panoIndex:0,fov:80},observers:[],issuer:u instanceof Error?"none":u.issuer,raw:{work:t,options:r}},l=null!==(n=t.base_url)&&void 0!==n?n:"";l&&"/"!==l[l.length-1]&&(l+="/");var h=function(e,t){var n,s=e;if(!0===r.jsonp&&(s=(s=e.replace(/([\?\#].*)?$/i,""))+"."+Ee(""+s).slice(0,7)+".jsonp"),!0===r.shortPath){var o=s.replace(l,"").split("."),a=null!==(n=o.shift())&&void 0!==n?n:"",u=o.join(".");s=Jr(l,Ee(a))+(u?"."+u:"")}var c=s.replace(l,"");return r.baseURL&&(s=Jr(r.baseURL,c)),i&&i(e,s,c,t),s},d=function(e,r){var i,n,s,o,a,u,c=e;if(!Ar(e)){var d=null!==(u=null!==(o=null!==(n=null===(i=t.panorama)||void 0===i?void 0:i.pano_high_cube_base_url)&&void 0!==n?n:null===(s=t.panorama)||void 0===s?void 0:s.pano_cube_base_url)&&void 0!==o?o:null===(a=t.panorama)||void 0===a?void 0:a.base_url)&&void 0!==u?u:"";d&&(d=Jr(d,String(r))),c=Jr(d,c)}return Ar(c)||(c=Jr(l,c)),h(c,"panorama")},p=function(e){var t=e;return Ar(t)||(t=Jr(l,e)),h(t,"model")},f=function(e,t){void 0===t&&(t="");var r=e;return Ar(r)||(r=Jr(t,r)),Ar(r)||(r=Jr(l,r)),h(r,"texture")};if(c.workCode=null!==(s=String(t.work_code||t.code||t.workCode))&&void 0!==s?s:"",c.expire=new Date("string"==typeof t.expire_at&&/^\d+$/.test(t.expire_at)?Number(t.expire_at):t.expire_at),c.allowHosts=t.allow_hosts||[],$r(u))return u;if(t.initial&&("Floorplan"!==t.initial.mode&&"Topview"!==t.initial.mode&&"Panorama"!==t.initial.mode&&"VRPanorama"!==t.initial.mode&&"Model"!==t.initial.mode&&"DepthPanorama"!==t.initial.mode||(c.initial.mode=t.initial.mode),ti(t.initial.latitude)&&(c.initial.latitude=t.initial.latitude),ti(t.initial.longitude)?c.initial.longitude=t.initial.longitude:ti(t.initial.heading)&&(c.initial.longitude=-(360*(t.initial.heading-.25)+90)/180*Math.PI),ti(t.initial.fov)&&(c.initial.fov=t.initial.fov),ti(t.initial.panoIndex)?c.initial.panoIndex=t.initial.panoIndex:ti(t.initial.pano_index)?c.initial.panoIndex=t.initial.pano_index:ti(t.initial.pano)&&(c.initial.panoIndex=t.initial.pano)),$r(u))return u;if(t.model){var A={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof t.model.bvh?A.bvh=t.model.bvh:"boolean"==typeof t.bvh&&(A.bvh=t.bvh),"boolean"==typeof t.model.async?A.async=t.model.async:"boolean"==typeof t.modelAsync&&(A.async=t.modelAsync),t.model.file?A.file=p(t.model.file):t.model.file_url&&(A.file=p(t.model.file_url)),t.model.textureBase?A.textureBase=t.model.textureBase:t.model.material_base_url&&(A.textureBase=t.model.material_base_url),Array.isArray(t.model.textures)?A.textures=t.model.textures.map((function(e){return f(e,A.textureBase)})):Array.isArray(t.model.material_textures)&&(A.textures=t.model.material_textures.map((function(e){return f(e,A.textureBase)}))),A.file&&(c.model=A)}if($r(u))return u;if(t.observers&&Array.isArray(t.observers)){var M=[];t.panorama&&(Array.isArray(t.panorama)?M=t.panorama:Array.isArray(t.panorama.list)?M=t.panorama.list:Array.isArray(t.panorama.info)&&(M=t.panorama.info));for(var g=0;g<t.observers.length;g++){var y={},v=t.observers[g];if(!v)break;var m=M[g]||{};v=Object.assign({},v,m,{active:!1!==v.active&&!1!==m.active}),y.panoIndex=g,y.active=!1!==v.active,y.loadable=!0===v.loadable,y.images={up:d(v.images?v.images.up:v.up,g),down:d(v.images?v.images.down:v.down,g),right:d(v.images?v.images.right:v.right,g),left:d(v.images?v.images.left:v.left,g),front:d(v.images?v.images.front:v.front,g),back:d(v.images?v.images.back:v.back,g)};var N=v.images?v.images.depth:v.depth;N&&(y.images.depth=d(N,g));var D=v.images?v.images.tiles:v.tiles;if(D&&(y.images.tiles=d(D,g)),v.position instanceof e.Vector3)y.position=v.position.clone();else{if(!Array.isArray(v.position))break;y.position=(new e.Vector3).fromArray(v.position)}if(v.standingPosition instanceof e.Vector3)y.standingPosition=v.standingPosition.clone();else if(Array.isArray(v.standingPosition))y.standingPosition=(new e.Vector3).fromArray(v.standingPosition);else if(v.standing_position instanceof e.Vector3)y.standingPosition=v.standing_position.clone();else{if(!Array.isArray(v.standing_position))break;y.standingPosition=(new e.Vector3).fromArray(v.standing_position)}if(v.quaternion instanceof e.Quaternion)y.quaternion=v.quaternion.clone();else if(Array.isArray(v.quaternion))y.quaternion=(new e.Quaternion).fromArray(v.quaternion);else{if(!v.quaternion)break;var w=v.quaternion,T=w.x,x=w.y,E=w.z,j=w.w;y.quaternion=new e.Quaternion(T,x,E,j)}if(Array.isArray(v.accessibleNodes)?y.accessibleNodes=v.accessibleNodes.slice():Array.isArray(v.accessible_nodes)&&(y.accessibleNodes=v.accessible_nodes.slice()),Array.isArray(v.visibleNodes)?y.visibleNodes=v.visibleNodes.slice():Array.isArray(v.visible_nodes)&&(y.visibleNodes=v.visible_nodes.slice()),ti(v.floorIndex)?y.floorIndex=v.floorIndex:ti(v.floor_index)?y.floorIndex=v.floor_index:y.floorIndex=0,v.video){var I={};"string"==typeof v.video.source&&(I.source=v.video.source),v.video.matrix instanceof e.Matrix4?I.matrix=v.video.matrix.clone():Array.isArray(v.video.matrix)&&(I.matrix=(new e.Matrix4).fromArray(v.video.matrix)),v.video.size instanceof e.Vector2?I.size=v.video.size.clone():Array.isArray(v.video.size)&&(I.size=(new e.Vector2).fromArray(v.video.size)),I.source&&I.matrix&&I.size&&(y.video=I)}c.observers[g]=y}}if($r(u))return u;for(var b=0,z=c.observers;b<z.length;b++){if(!(y=z[b]).accessibleNodes){y.accessibleNodes=[];for(var O=0;O<c.observers.length;O++)c.observers[O]!==y&&y.accessibleNodes.push(O)}if(!y.visibleNodes)for(y.visibleNodes=[],O=0;O<c.observers.length;O++)c.observers[O]!==y&&y.visibleNodes.push(O)}if($r(u))return u;var S=Dt(c);return ni.set(S,{work:a,options:o}),S}function oi(e,t,r){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var i=ni.get(e);if(i){if(t&&!ei(JSON.parse(i.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var n=si(e,null!=t?t:{},r);if($r(n))throw new Error("[PARSE FAILED]: "+n.message);return n}function ai(e){for(var t,r,i,n,s=e.workCode,o={pano_index:e.initial.panoIndex,pano:e.initial.panoIndex,longitude:e.initial.longitude,latitude:e.initial.latitude},a=null===(r=null===(t=e.model)||void 0===t?void 0:t.bvh)||void 0===r||r,u=null!==(n=null===(i=e.model)||void 0===i?void 0:i.async)&&void 0!==n&&n,c=e.model?{file_url:e.model.file,material_textures:e.model.textures.slice(),material_base_url:e.model.textureBase}:void 0,l={list:[]},h=[],d=0;d<e.observers.length;d++){var p=e.observers[d];h[d]={index:d,active:p.active,visible_nodes:p.visibleNodes.slice(),accessible_nodes:p.accessibleNodes.slice(),quaternion:{x:p.quaternion.x,y:p.quaternion.y,z:p.quaternion.z,w:p.quaternion.w},standing_position:p.standingPosition.toArray(),position:p.position.toArray(),floor:p.floorIndex,floor_index:p.floorIndex},l.list[d]={index:d,active:p.active,loadable:p.loadable,up:p.images.up,down:p.images.down,right:p.images.right,left:p.images.left,front:p.images.front,back:p.images.back},p.video&&(l.list[d].video={source:p.video.source,matrix:p.video.matrix.toArray(),size:p.video.size.toArray()}),p.images.depth&&(l.list[d].depth=p.images.depth),p.images.tiles&&(l.list[d].tiles=p.images.tiles)}var f={bvh:a,modelAsync:u,initial:o,observers:h,panorama:l,work_code:s};return c&&(f.model=c),JSON.stringify(f)}var ui=function(e){return Number(e)};function ci(e,t,r){var i;void 0===t&&(t=ui),void 0===r&&(r=!1);for(var n,s=1/0,o=0,a=e;o<a.length;o++){var u=a[o],c=t(u);c<=s&&(n=(i=[u,c])[0],s=i[1])}return r?[n,s]:n}const li=function(e,t,r,i){var n,s=["","webkit","Moz","MS","ms","o"],o=t.createElement?t.createElement("div"):i,a=Math.round,u=Math.abs,c=Date.now;function l(e,t,r){return setTimeout(g(e,r),t)}function h(e,t,r){return!!Array.isArray(e)&&(d(e,r[t],r),!0)}function d(e,t,r){var n;if(e)if(e.forEach)e.forEach(t,r);else if(e.length!==i)for(n=0;n<e.length;)t.call(r,e[n],n,e),n++;else for(n in e)e.hasOwnProperty(n)&&t.call(r,e[n],n,e)}function p(t,r,i){var n="DEPRECATED METHOD: "+r+"\n"+i+" AT \n";return function(){var r=new Error("get-stack-trace"),i=r&&r.stack?r.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=e.console&&(e.console.warn||e.console.log);return s&&s.call(e.console,n,i),t.apply(this,arguments)}}n="function"!=typeof Object.assign?function(e){if(e===i||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(n!==i&&null!==n)for(var s in n)n.hasOwnProperty(s)&&(t[s]=n[s])}return t}:Object.assign;var f=p((function(e,t,r){for(var n=Object.keys(t),s=0;s<n.length;)(!r||r&&e[n[s]]===i)&&(e[n[s]]=t[n[s]]),s++;return e}),"extend","Use `assign`."),A=p((function(e,t){return f(e,t,!0)}),"merge","Use `assign`.");function M(e,t,r){var i,s=t.prototype;(i=e.prototype=Object.create(s)).constructor=e,i._super=s,r&&n(i,r)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return"function"==typeof e?e.apply(t&&t[0]||i,t):e}function v(e,t){return e===i?t:e}function m(e,t,r){d(T(t),(function(t){e.addEventListener(t,r,!1)}))}function N(e,t,r){d(T(t),(function(t){e.removeEventListener(t,r,!1)}))}function D(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function w(e,t){return e.indexOf(t)>-1}function T(e){return e.trim().split(/\s+/g)}function x(e,t,r){if(e.indexOf&&!r)return e.indexOf(t);for(var i=0;i<e.length;){if(r&&e[i][r]==t||!r&&e[i]===t)return i;i++}return-1}function E(e){return Array.prototype.slice.call(e,0)}function j(e,t,r){for(var i=[],n=[],s=0;s<e.length;){var o=t?e[s][t]:e[s];x(n,o)<0&&i.push(e[s]),n[s]=o,s++}return r&&(i=t?i.sort((function(e,r){return e[t]>r[t]})):i.sort()),i}function I(e,t){for(var r,n,o=t[0].toUpperCase()+t.slice(1),a=0;a<s.length;){if((n=(r=s[a])?r+o:t)in e)return n;a++}return i}var b=1;function z(t){var r=t.ownerDocument||t;return r.defaultView||r.parentWindow||e}var O="ontouchstart"in e,S=I(e,"PointerEvent")!==i,L=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),C="touch",k="mouse",P=["x","y"],_=["clientX","clientY"];function B(e,t){var r=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&r.handler(t)},this.init()}function U(e,t,r){var n=r.pointers.length,s=r.changedPointers.length,o=1&t&&n-s==0,a=12&t&&n-s==0;r.isFirst=!!o,r.isFinal=!!a,o&&(e.session={}),r.eventType=t,function(e,t){var r=e.session,n=t.pointers,s=n.length;r.firstInput||(r.firstInput=R(t)),s>1&&!r.firstMultiple?r.firstMultiple=R(t):1===s&&(r.firstMultiple=!1);var o=r.firstInput,a=r.firstMultiple,l=a?a.center:o.center,h=t.center=Q(n);t.timeStamp=c(),t.deltaTime=t.timeStamp-o.timeStamp,t.angle=H(l,h),t.distance=V(l,h),function(e,t){var r=t.center,i=e.offsetDelta||{},n=e.prevDelta||{},s=e.prevInput||{};1!==t.eventType&&4!==s.eventType||(n=e.prevDelta={x:s.deltaX||0,y:s.deltaY||0},i=e.offsetDelta={x:r.x,y:r.y}),t.deltaX=n.x+(r.x-i.x),t.deltaY=n.y+(r.y-i.y)}(r,t),t.offsetDirection=F(t.deltaX,t.deltaY);var d=Y(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=a?function(e,t){return V(t[0],t[1],_)/V(e[0],e[1],_)}(a.pointers,n):1,t.rotation=a?function(e,t){return H(t[1],t[0],_)+H(e[1],e[0],_)}(a.pointers,n):0,t.maxPointers=r.prevInput?t.pointers.length>r.prevInput.maxPointers?t.pointers.length:r.prevInput.maxPointers:t.pointers.length,function(e,t){var r,n,s,o,a=e.lastInterval||t,c=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(c>25||a.velocity===i)){var l=t.deltaX-a.deltaX,h=t.deltaY-a.deltaY,d=Y(c,l,h);n=d.x,s=d.y,r=u(d.x)>u(d.y)?d.x:d.y,o=F(l,h),e.lastInterval=t}else r=a.velocity,n=a.velocityX,s=a.velocityY,o=a.direction;t.velocity=r,t.velocityX=n,t.velocityY=s,t.direction=o}(r,t);var p=e.element;D(t.srcEvent.target,p)&&(p=t.srcEvent.target),t.target=p}(e,r),e.emit("hammer.input",r),e.recognize(r),e.session.prevInput=r}function R(e){for(var t=[],r=0;r<e.pointers.length;)t[r]={clientX:a(e.pointers[r].clientX),clientY:a(e.pointers[r].clientY)},r++;return{timeStamp:c(),pointers:t,center:Q(t),deltaX:e.deltaX,deltaY:e.deltaY}}function Q(e){var t=e.length;if(1===t)return{x:a(e[0].clientX),y:a(e[0].clientY)};for(var r=0,i=0,n=0;n<t;)r+=e[n].clientX,i+=e[n].clientY,n++;return{x:a(r/t),y:a(i/t)}}function Y(e,t,r){return{x:t/e||0,y:r/e||0}}function F(e,t){return e===t?1:u(e)>=u(t)?e<0?2:4:t<0?8:16}function V(e,t,r){r||(r=P);var i=t[r[0]]-e[r[0]],n=t[r[1]]-e[r[1]];return Math.sqrt(i*i+n*n)}function H(e,t,r){r||(r=P);var i=t[r[0]]-e[r[0]],n=t[r[1]]-e[r[1]];return 180*Math.atan2(n,i)/Math.PI}B.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(z(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&N(this.element,this.evEl,this.domHandler),this.evTarget&&N(this.target,this.evTarget,this.domHandler),this.evWin&&N(z(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4},q="mousedown",W="mousemove mouseup";function Z(){this.evEl=q,this.evWin=W,this.pressed=!1,B.apply(this,arguments)}M(Z,B,{handler:function(e){var t=G[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:k,srcEvent:e}))}});var X={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},K={2:C,3:"pen",4:k,5:"kinect"},J="pointerdown",$="pointermove pointerup pointercancel";function ee(){this.evEl=J,this.evWin=$,B.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(J="MSPointerDown",$="MSPointerMove MSPointerUp MSPointerCancel"),M(ee,B,{handler:function(e){var t=this.store,r=!1,i=e.type.toLowerCase().replace("ms",""),n=X[i],s=K[e.pointerType]||e.pointerType,o=s==C,a=x(t,e.pointerId,"pointerId");1&n&&(0===e.button||o)?a<0&&(t.push(e),a=t.length-1):12&n&&(r=!0),a<0||(t[a]=e,this.callback(this.manager,n,{pointers:t,changedPointers:[e],pointerType:s,srcEvent:e}),r&&t.splice(a,1))}});var te={touchstart:1,touchmove:2,touchend:4,touchcancel:8},re="touchstart",ie="touchstart touchmove touchend touchcancel";function ne(){this.evTarget=re,this.evWin=ie,this.started=!1,B.apply(this,arguments)}function se(e,t){var r=E(e.touches),i=E(e.changedTouches);return 12&t&&(r=j(r.concat(i),"identifier",!0)),[r,i]}M(ne,B,{handler:function(e){var t=te[e.type];if(1===t&&(this.started=!0),this.started){var r=se.call(this,e,t);12&t&&r[0].length-r[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:C,srcEvent:e})}}});var oe={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ae="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=ae,this.targetIds={},B.apply(this,arguments)}function ce(e,t){var r=E(e.touches),i=this.targetIds;if(3&t&&1===r.length)return i[r[0].identifier]=!0,[r,r];var n,s,o=E(e.changedTouches),a=[],u=this.target;if(s=r.filter((function(e){return D(e.target,u)})),1===t)for(n=0;n<s.length;)i[s[n].identifier]=!0,n++;for(n=0;n<o.length;)i[o[n].identifier]&&a.push(o[n]),12&t&&delete i[o[n].identifier],n++;return a.length?[j(s.concat(a),"identifier",!0),a]:void 0}function le(){B.apply(this,arguments);var e=g(this.handler,this);this.touch=new ue(this.manager,e),this.mouse=new Z(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function he(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,de.call(this,t)):12&e&&de.call(this,t)}function de(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var r={x:t.clientX,y:t.clientY};this.lastTouches.push(r);var i=this.lastTouches;setTimeout((function(){var e=i.indexOf(r);e>-1&&i.splice(e,1)}),2500)}}function pe(e){for(var t=e.srcEvent.clientX,r=e.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var n=this.lastTouches[i],s=Math.abs(t-n.x),o=Math.abs(r-n.y);if(s<=25&&o<=25)return!0}return!1}M(ue,B,{handler:function(e){var t=oe[e.type],r=ce.call(this,e,t);r&&this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:C,srcEvent:e})}}),M(le,B,{handler:function(e,t,r){var i=r.pointerType==C,n=r.pointerType==k;if(!(n&&r.sourceCapabilities&&r.sourceCapabilities.firesTouchEvents)){if(i)he.call(this,t,r);else if(n&&pe.call(this,r))return;this.callback(e,t,r)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var fe=o?I(o.style,"touchAction"):i,Ae=fe!==i,Me="compute",ge="auto",ye="manipulation",ve="none",me="pan-x",Ne="pan-y",De=function(){if(!Ae)return!1;var t={},r=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(i){t[i]=!r||e.CSS.supports("touch-action",i)})),t}();function we(e,t){this.manager=e,this.set(t)}we.prototype={set:function(e){e==Me&&(e=this.compute()),Ae&&this.manager.element.style&&De[e]&&(this.manager.element.style[fe]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return d(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(w(e,ve))return ve;var t=w(e,me),r=w(e,Ne);return t&&r?ve:t||r?t?me:Ne:w(e,ye)?ye:ge}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,r=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var i=this.actions,n=w(i,ve)&&!De.none,s=w(i,Ne)&&!De["pan-y"],o=w(i,me)&&!De["pan-x"];if(n){var a=1===e.pointers.length,u=e.distance<2,c=e.deltaTime<250;if(a&&u&&c)return}if(!o||!s)return n||s&&6&r||o&&24&r?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Te=32;function xe(e){this.options=n({},this.defaults,e||{}),this.id=b++,this.manager=null,this.options.enable=v(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function Ee(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function je(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Ie(e,t){var r=t.manager;return r?r.get(e):e}function be(){xe.apply(this,arguments)}function ze(){be.apply(this,arguments),this.pX=null,this.pY=null}function Oe(){be.apply(this,arguments)}function Se(){xe.apply(this,arguments),this._timer=null,this._input=null}function Le(){be.apply(this,arguments)}function Ce(){be.apply(this,arguments)}function ke(){xe.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Pe(e,t){return(t=t||{}).recognizers=v(t.recognizers,Pe.defaults.preset),new _e(e,t)}function _e(e,t){this.options=n({},Pe.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new(this.options.inputClass||(S?ee:L?ue:O?le:Z))(this,U),this.touchAction=new we(this,this.options.touchAction),Be(this,!0),d(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Be(e,t){var r,i=e.element;i.style&&(d(e.options.cssProps,(function(n,s){r=I(i.style,s),t?(e.oldCssProps[r]=i.style[r],i.style[r]=n):i.style[r]=e.oldCssProps[r]||""})),t||(e.oldCssProps={}))}return xe.prototype={defaults:{},set:function(e){return n(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ie(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Ie(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===x(t,e=Ie(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Ie(e,this);var t=x(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,r=this.state;function i(r){t.manager.emit(r,e)}r<8&&i(t.options.event+Ee(r)),i(t.options.event),e.additionalEvent&&i(e.additionalEvent),r>=8&&i(t.options.event+Ee(r))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Te},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=n({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=Te);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},M(be,xe,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,r=e.eventType,i=6&t,n=this.attrTest(e);return i&&(8&r||!n)?16|t:i||n?4&r?8|t:2&t?4|t:2:Te}}),M(ze,be,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(Ne),24&e&&t.push(me),t},directionTest:function(e){var t=this.options,r=!0,i=e.distance,n=e.direction,s=e.deltaX,o=e.deltaY;return n&t.direction||(6&t.direction?(n=0===s?1:s<0?2:4,r=s!=this.pX,i=Math.abs(e.deltaX)):(n=0===o?1:o<0?8:16,r=o!=this.pY,i=Math.abs(e.deltaY))),e.direction=n,r&&i>t.threshold&&n&t.direction},attrTest:function(e){return be.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=je(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),M(Oe,be,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),M(Se,xe,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ge]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,i=e.distance<t.threshold,n=e.deltaTime>t.time;if(this._input=e,!i||!r||12&e.eventType&&!n)this.reset();else if(1&e.eventType)this.reset(),this._timer=l((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Te},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),M(Le,be,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),M(Ce,be,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return ze.prototype.getTouchAction.call(this)},attrTest:function(e){var t,r=this.options.direction;return 30&r?t=e.overallVelocity:6&r?t=e.overallVelocityX:24&r&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&r&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=je(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),M(ke,xe,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ye]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,i=e.distance<t.threshold,n=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(i&&n&&r){if(4!=e.eventType)return this.failTimeout();var s=!this.pTime||e.timeStamp-this.pTime<t.interval,o=!this.pCenter||V(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,o&&s?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=l((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return Te},failTimeout:function(){return this._timer=l((function(){this.state=Te}),this.options.interval,this),Te},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Pe.VERSION="2.0.7",Pe.defaults={domEvents:!1,touchAction:Me,enable:!0,inputTarget:null,inputClass:null,preset:[[Le,{enable:!1}],[Oe,{enable:!1},["rotate"]],[Ce,{direction:6}],[ze,{direction:6},["swipe"]],[ke],[ke,{event:"doubletap",taps:2},["tap"]],[Se]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},_e.prototype={set:function(e){return n(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var r;this.touchAction.preventDefaults(e);var i=this.recognizers,n=t.curRecognizer;(!n||n&&8&n.state)&&(n=t.curRecognizer=null);for(var s=0;s<i.length;)r=i[s],2===t.stopped||n&&r!=n&&!r.canRecognizeWith(n)?r.reset():r.recognize(e),!n&&14&r.state&&(n=t.curRecognizer=r),s++}},get:function(e){if(e instanceof xe)return e;for(var t=this.recognizers,r=0;r<t.length;r++)if(t[r].options.event==e)return t[r];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,r=x(t,e);-1!==r&&(t.splice(r,1),this.touchAction.update())}return this},on:function(e,t){if(e!==i&&t!==i){var r=this.handlers;return d(T(e),(function(e){r[e]=r[e]||[],r[e].push(t)})),this}},off:function(e,t){if(e!==i){var r=this.handlers;return d(T(e),(function(e){t?r[e]&&r[e].splice(x(r[e],t),1):delete r[e]})),this}},emit:function(e,r){this.options.domEvents&&function(e,r){var i=t.createEvent("Event");i.initEvent(e,!0,!0),i.gesture=r,r.target.dispatchEvent(i)}(e,r);var i=this.handlers[e]&&this.handlers[e].slice();if(i&&i.length){r.type=e,r.preventDefault=function(){r.srcEvent.preventDefault()};for(var n=0;n<i.length;)i[n](r),n++}},destroy:function(){this.element&&Be(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(Pe,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:Te,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:24,DIRECTION_ALL:30,Manager:_e,Input:B,TouchAction:we,TouchInput:ue,MouseInput:Z,PointerEventInput:ee,TouchMouseInput:le,SingleTouchInput:ne,Recognizer:xe,AttrRecognizer:be,Tap:ke,Pan:ze,Swipe:Ce,Pinch:Oe,Rotate:Le,Press:Se,on:m,off:N,each:d,merge:A,extend:f,assign:n,inherit:M,bindFn:g,prefixed:I}),Pe}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function hi(t,r,i){var n=r.offsetWidth,s=r.offsetHeight,o=r.getBoundingClientRect(),a=o.top,u=o.left;return i&&(u+=n*i.left,a+=s*(1-i.bottom-i.height),n*=i.width,s*=i.height),new e.Vector2((t.x-u)/n*2-1,-(t.y-a)/s*2+1)}(function(){try{var e=document.createElement("canvas");!window.WebGLRenderingContext||!e.getContext("webgl")&&e.getContext("experimental-webgl")}catch(e){return!1}})(),"undefined"!=typeof history&&"pushState"in history&&"replaceState"in history&&history;var di="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node",pi=di.match(/android/i)||di.match(/webos/i)||di.match(/ipad|iphone|ipod/i)||di.match(/iemobile/i)||di.match(/opera mini/i)||di.match(/blackberry/i)||di.match(/windows phone/i),fi=function(e){function t(r){var i=e.call(this)||this,n=t.parseArgs(r);return i.ready=!1,i.destroyed=!1,i.ident=n.ident,i.scene=n.scene,i.helper=n.helper,i.camera=n.camera,i.renderer=n.renderer,i.scissor=n.scissor,i.element=n.element,i.model=n.model,i.work=n.work,i.imageOptions=n.imageOptions,i.videoTexture=n.videoTexture,i.networkSubscribe=n.networkSubscribe,i.needsRender=!0,i.preventPanGesture=!1,i.preventTapGesture=!1,i.preventPinchGesture=!1,i.currentPanoIndex=n.panoIndex,Re(i.work.observers[i.currentPanoIndex])&&(i.currentPanoIndex=0),i.eventUnbinds=[n.element].concat(n.extraElements||[]).map((function(e){return i.bindEvents(e)})),qe((function(){return i.initAnimation.apply(i,n.initial).then((function(){return i.ready=!0}))})),i}return Se(t,e),t.parseArgs=function(e){return Le({},e)},t.initAnimationEndPose=function(e){return this.parseArgs(e).camera.copyPose()},t.prototype.initAnimation=function(e,t,r){return Promise.resolve()},t.prototype.bindExtraElement=function(e){for(var t=0,r=this.eventUnbinds;t<r.length;t++)if(r[t].element===e)return;this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=null,r=-1,i=0,n=this.eventUnbinds;i<n.length;i++){var s=n[i];if(r++,s.element===e){t=s;break}}t&&(t(),this.eventUnbinds.splice(r,1))},t.prototype.resize=function(){this.needsRender=!0},t.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0},t.prototype.updateWork=function(e,t,r,i){return!1},t.prototype.render=function(e){this.renderer.render(this.scene,this.camera)},t.prototype.destroy=function(){this.destroyed=!0,this.ready=!1,this.off();for(var e=0,t=this.eventUnbinds;e<t.length;e++)(0,t[e])();this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenCoordinates)},t.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var i={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()};t.moveStartCallback&&t.moveStartCallback(e,i),this.emit("moveToPano",e,r),this.currentPanoIndex=e,this.emit("panoArrived",e,{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},r),t.moveEndCallback&&t.moveEndCallback(e,i)},t.prototype.updateCamera=function(e,t,r){var i,n,s,o;void 0===e&&(e={});var a=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,u=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,c=null!==(s=e.fov)&&void 0!==s?s:this.camera.pose.fov,l=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=a!==this.camera.pose.longitude||u!==this.camera.pose.latitude,d=c!==this.camera.pose.fov,p=!l.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:u,fov:c,offset:l}),d&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),h&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),p&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(d||h||p)&&this.emit("cameraUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},t),this.needsRender=!0},Object.defineProperty(t.prototype,"gesturing",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.onPanGesture=function(e){},t.prototype.onTapGesture=function(e){},t.prototype.onPinchGesture=function(e){},t.prototype.onMouseWheel=function(e){},t.prototype.onMouseMove=function(e){},t.prototype.onMouseOut=function(){},t.prototype.relativeClientPosition=function(e){return hi(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,r=function(e){var r=hi(e,t.element,t.scissor);return!(Math.abs(r.x)>1||Math.abs(r.y)>1)},i=new li.Manager(e),n=function(e){return e.session.firstInput||null};i.add(new li.Pan({threshold:10,pointers:0})),i.add(new li.Tap({interval:410})),i.add(new li.Pinch({threshold:0,pointers:2}).recognizeWith(i.get("pan"))),i.on("panstart pan",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventPanGesture&&t.onPanGesture(e)})),i.on("tap",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventTapGesture&&t.onTapGesture(e)})),i.on("pinchstart pinch pinchend",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventPinchGesture&&t.onPinchGesture(e)}));var s=function(e){var i={x:e.clientX,y:e.clientY};r(i)&&t.onMouseWheel(e)},o=function(e){var i={x:e.clientX,y:e.clientY};r(i)?t.onMouseMove(e):t.onMouseOut()},a=function(){t.onMouseOut()};return function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent,s=function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent;return t.__mouseWheelWrapper=function(s){if(s=s||window.event,i&&s.preventDefault(),n&&(s.returnValue=!1),"DOMMouseScroll"==r||"mousewheel"==r){var o=s.wheelDelta;s.delta=o?o/120:-(s.delta||0)/3}t.call(e,s)}}(e,t);i?e.addEventListener(r,s,!1):n&&e.attachEvent("on"+r,s)}(e,s),pi||(li.on(e,"mousemove",o),li.on(e,"mouseout",a)),Object.assign((function(){i.destroy(),function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent;t.__mouseWheelWrapper&&(i?e.removeEventListener(r,t.__mouseWheelWrapper,!1):n&&e.detachEvent("on"+r,t.__mouseWheelWrapper),delete t.__mouseWheelWrapper)}(e,s),pi||(li.off(e,"mousemove",o),li.off(e,"mouseout",a))}),{element:e})},t}(Nt),Ai=function(t){function r(e){var i=this,n=r.parseArgs(e);return(i=t.call(this,n)||this).defaultLongitude=n.defaultLongitude,i.defaultLatitude=n.defaultLatitude,i.defaultFov=n.defaultFov,i.maxFov=n.maxFov,i.minFov=n.minFov,i.maxLatitude=n.maxLatitude,i.minLatitude=n.minLatitude,i}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o,a,u,c=t.parseArgs.call(this,e);return Le(Le({},c),{defaultLongitude:null!==(r=e.defaultLongitude)&&void 0!==r?r:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultFov:null!==(n=e.defaultFov)&&void 0!==n?n:80,maxFov:null!==(s=e.maxFov)&&void 0!==s?s:120,minFov:null!==(o=e.minFov)&&void 0!==o?o:40,maxLatitude:null!==(a=e.maxLatitude)&&void 0!==a?a:+Math.PI/2,minLatitude:null!==(u=e.minLatitude)&&void 0!==u?u:-Math.PI/2})},r.initAnimationEndPose=function(e){var t,i,n,s=this.parseArgs(e),o=e.initial[0],a=null!==(t=o.longitude)&&void 0!==t?t:s.defaultLongitude,u=Math.max(s.minLatitude,Math.min(s.maxLatitude,null!==(i=o.latitude)&&void 0!==i?i:s.defaultLatitude)),c=null!==(n=o.fov)&&void 0!==n?n:s.defaultFov,l=r.prototype.cameraDistance.call(s);return{longitude:a,latitude:u,fov:c,offset:r.prototype.calculateCameraPosition.call(s,{longitude:u,latitude:u},l,null,!1).clone()}},r.prototype.destroy=function(){t.prototype.destroy.call(this)},r.prototype.updateWork=function(e,t,r,i){return this.work=e,this.currentPanoIndex=t.panoIndex,!0},r.prototype.resetModel=function(e,r){t.prototype.resetModel.call(this,e,r),this.updateCamera({longitude:this.defaultLongitude,latitude:this.defaultLatitude,fov:this.defaultFov},r,!1)},r.prototype.initAnimation=function(t,r,i){var n,s,o,a,u,c,l=this;if(this.destroyed)return Promise.resolve();var h=this.camera,d=this.model;this.preventPanGesture=!0,this.preventTapGesture=!0,this.preventPinchGesture=!0;var p=h.pose.longitude,f=h.pose.latitude,A=h.pose.fov,M=h.pose.offset.clone(),g=(null===(n=d.getMaterial())||void 0===n?void 0:n.modelAlpha)||0,y=null!==(o=null===(s=this.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==o?o:0,v=null!==(a=t.longitude)&&void 0!==a?a:this.defaultLongitude,m=Math.max(this.minLatitude,Math.min(this.maxLatitude,null!==(u=t.latitude)&&void 0!==u?u:this.defaultLatitude)),N=null!==(c=t.fov)&&void 0!==c?c:this.defaultFov,D=d.bounding.getCenter(new e.Vector3),w=this.cameraDistance(),T=this.calculateCameraPosition({longitude:m,latitude:m},w,null,!1),x={longitude:v,latitude:m,fov:N,offset:T.clone()};return this.emit("initAnimationWillStart",this.currentPanoIndex,x,i),new Promise((function(t){l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates);var n=function(e){var t=e.progress,r=Zr(p,v,t),n=Wr(f,m,t),s=Wr(A,N,t);l.updateCamera({longitude:r,latitude:n,fov:s,offset:l.camera.pose.offset},i,!1)},s=function(){n({progress:1}),l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates)};r>0?l.tweenCoordinates=Fr(r,Qr.Quadratic.InOut).onUpdate(n).onComplete(s):s(),l.tweenPosition&&(l.tweenPosition.destroy(),delete l.tweenPosition);var o=function(t){var r=t.progress,n=Wr(0,w,r),s=new e.Vector3(Wr(M.x-D.x,0,r),Wr(M.y-D.y,0,r),Wr(M.z-D.z,0,r)),o=Wr(g,1,r),a=Wr(y,0,r);d.setMaterial({modelAlpha:o,perspToOrtho:a});var u=l.calculateCameraPosition(l.camera.pose,n,s,!1);l.updateCamera({offset:u},i,!1)};s=function(){o({progress:1}),l.updateCamera(l.camera.copyPose(),i,!1),l.tweenPosition&&(l.tweenPosition.destroy(),delete l.tweenPosition),l.needsRender=!0,l.preventPanGesture=!1,l.preventTapGesture=!1,l.preventPinchGesture=!1,t(),l.emit("initAnimationEnded",l.currentPanoIndex,l.camera.copyPose(),i)},r>0?l.tweenPosition=Fr(r,Qr.Quadratic.InOut).onUpdate(o).onComplete(s).onCancel((function(){l.preventPanGesture=!1,l.preventTapGesture=!1,l.preventPinchGesture=!1,t(),l.emit("initAnimationEnded",l.currentPanoIndex,l.camera.copyPose(),i)})):s()}))},r.prototype.cameraDistance=function(){var e=this.model.bounding,t=this.camera.aspect,r=Math.pow(Math.pow(e.max.x-e.min.x+2,2)+Math.pow(e.max.y-e.min.y+2,2)+Math.pow(e.max.z-e.min.z+2,2),.5),i=r/2/Math.tan(Math.PI*this.defaultFov/360);return t<1&&(i/=t),isNaN(i)?r:i},r.prototype.calculateCameraPosition=function(t,r,i,n){var s=t.longitude,o=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,t.latitude));n&&(o=Math.max(this.minLatitude,Math.min(this.maxLatitude,o)));var a=this.model.bounding.getCenter(new e.Vector3),u=r*Math.cos(o),c=new e.Vector3(Math.sin(s)*u+a.x,Math.sin(o)*r+a.y,Math.cos(s)*u+a.z);return null!==i&&c.add(i),c},r.prototype.updateCamera=function(e,t,r){var i,n,s;void 0===e&&(e={});var o=this,a=o.minFov,u=o.maxFov,c=o.maxLatitude,l=o.minLatitude,h=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,p=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,f=null!==(s=e.offset)&&void 0!==s?s:this.calculateCameraPosition({longitude:h,latitude:d},this.cameraDistance(),null,r);r&&(d=Math.max(l,Math.min(c,d)),p=Math.max(a,Math.min(u,p)));var A=h!==this.camera.pose.longitude||d!==this.camera.pose.latitude,M=p!==this.camera.pose.fov,g=!f.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:h,latitude:d,fov:p,offset:f}),M&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),A&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(M||A||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,Yt()},r.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),r=this.model.intersectRaycaster(e)[0];if(!r)return null;var i=ci(t,(function(e){return e.standingPosition.distanceTo(r.point)}),!0),n=i[0];return i[1]<5?this.work.observers.indexOf(n):null},r.prototype.coordinatesChangeWithOffset=function(e,t){var r=this.element,i=this.camera,n=r.offsetWidth,s=r.offsetHeight,o=2*t.x/n*i.fov/30,a=2*t.y/s*i.fov/30;return{longitude:Hr(e.longitude+o),latitude:Math.max(this.minLatitude,Math.min(this.maxLatitude,e.latitude+a))}},r.prototype.requestInteriaMovement=function(e,t){var r=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),n=i.longitude,s=i.latitude;this.updateCamera({longitude:n,latitude:s},t,!0);var o=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!o),o?qe((function(){r.requestInteriaMovement({x:.8*e.x,y:.8*e.y},t)})):this.interiaMovement=!1}},Object.defineProperty(r.prototype,"gesturing",{get:function(){return this.interiaMovement||void 0!==this.lastPanPoint||void 0!==this.lastPinchFov},enumerable:!1,configurable:!0}),r.prototype.onPanGesture=function(e){var t=this;if(!this.tweenCoordinates){this.interiaMovement=!1;var r=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.relativeClientPosition(e.center),n=this.camera.pose.latitude<Math.PI/6||i.y<0?-1:1,s=this.coordinatesChangeWithOffset(this.camera.pose,{x:r.x*n,y:r.y}),o=s.longitude,a=s.latitude,u=this.calculateCameraPosition({longitude:o,latitude:a},this.cameraDistance(),null,!0),c=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",c,e.isFinal)||this.emit("wantsPanGesture",{longitude:o,latitude:a,fov:this.camera.pose.fov,offset:u.clone()},e.isFinal)||(this.updateCamera({longitude:o,latitude:a,offset:u},!0,!0),this.emit("gesture","pan",c,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal&&(this.emit("wantsInteriaPan",this.camera.copyPose())||(this.interiaMovement=!0,Xe((function(r){var i=e.velocityX*r*n,s=e.velocityY*r,o=Math.sqrt(i*i+s*s);o>100&&(i=i/o*100,s=s/o*100),t.requestInteriaMovement({x:i,y:s},!0)})))))}},r.prototype.onTapGesture=function(t){if(this.interiaMovement=!1,!this.tweenPosition){var r=this.relativeClientPosition(t.center),i=new e.Raycaster;i.setFromCamera(r,this.camera);var n,s=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",s,!0)&&!this.emit("wantsTapGesture",i,r))this.emit("gesture","tap",s,!0),this.emit("tapGesture",i,r),Re(n=this.getForwardPanoIndexOrNot(i))||(this.emit("panoSelected",n),this.emit("wantsMoveToPano",n,{longitude:this.camera.pose.longitude,latitude:0},!0))}},r.prototype.onPinchGesture=function(e){this.interiaMovement=!1;var t=this.camera,r=this.lastPinchFov;if("pinchstart"===e.type)return delete this.lastPanPoint,void(this.lastPinchFov=t.fov);"pinchend"===e.type&&(delete this.lastPanPoint,delete this.lastPinchFov);var i="pinchend"===e.type;if(r){var n=r/e.scale,s=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",s,i)||this.emit("wantsPinchGesture",e.scale,n,i))return;this.updateCamera({fov:n},!0,!0),this.emit("gesture","pinch",s,i),this.emit("pinchGesture",e.scale,n,i)}},r.prototype.onMouseWheel=function(e){var t=this;this.interiaMovement=!1;var r=e.delta,i=this.minFov,n=this.maxFov,s=Math.max(i,Math.min(n,this.camera.fov-r)),o=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",o,!1)||this.emit("wantsMouseWheel",r,s,!1)||(this.updateCamera({fov:s},!0,!0),this.emit("gesture","mouseWheel",o,!1),this.emit("mouseWheel",r,s,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",o,!0)||t.emit("wantsMouseWheel",r,s,!0)||(t.emit("gesture","mouseWheel",o,!0),t.emit("mouseWheel",0,s,!0))}),200))},r}(fi),Mi=function(t){function r(e){var i=r.parseArgs(e);return t.call(this,i)||this}return Se(r,t),r.parseArgs=function(e){var r=[Le(Le({},e.initial[0]),{longitude:0,latitude:Math.PI/2}),e.initial[1],e.initial[2]],i=Le(Le({},e),{initial:r,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return t.parseArgs.call(this,i)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.initAnimation=function(e,r,i){var n=this;return t.prototype.initAnimation.call(this,e,r,i).then((function(){var e,t;if(!n.destroyed){var i=null!==(t=null===(e=n.model.getMaterial())||void 0===e?void 0:e.perspToOrtho)&&void 0!==t?t:0;if(0===r)n.model.setMaterial({perspToOrtho:1}),n.needsRender=!0;else var s=Fr(250,Qr.Linear.None).onUpdate((function(e){var t=e.progress;n.destroyed||(n.model.setMaterial({perspToOrtho:Wr(i,1,t)}),n.needsRender=!0)})).onComplete((function(){return s.destroy()}))}}))},r.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0;var r=this.calculateCameraPosition({longitude:this.defaultLongitude,latitude:this.defaultLatitude},this.cameraDistance(),null,!1);this.updateCamera({offset:r},t,!1)},r.prototype.getZoomOffsetFromFov=function(t,r,i){var n=new e.Vector3(0,-1,0),s=Math.tan(i/2*Math.PI/180),o=Math.tan(r.fov/2*Math.PI/180),a=(o-s)/o,u=new e.Raycaster;u.setFromCamera(t,r);var c=u.ray.direction,l=c.angleTo(n),h=this.cameraDistance(),d=h*Math.tan(l),p=c.clone().setLength(h*Math.cos(l)).projectOnPlane(n),f=p.length(),A=a/f*p.x*d,M=a/f*p.z*d;return new e.Vector3(A,0,M)},r.prototype.onPanGesture=function(t){if(!this.tweenCoordinates){var r=this.element,i=this.camera,n=i.fov,s=i.matrix,o=i.up,a=r.offsetHeight,u=this.lastPanPoint&&this.lastPanPoint.pointerLength===t.pointers.length?{x:t.center.x-this.lastPanPoint.x,y:t.center.y-this.lastPanPoint.y}:{x:0,y:0},c=this.camera.pose.offset.clone(),l=i.position.y*Math.tan(n/2*Math.PI/180);c.add(function(t,r){var i=new e.Vector3;return i.setFromMatrixColumn(r,0),i.multiplyScalar(-t),i}(2*u.x*l/a,s)),c.add(function(t,r,i){var n=new e.Vector3;return n.setFromMatrixColumn(i,0),n.crossVectors(r,n),n.multiplyScalar(t),n}(2*u.y*l/a,o,s));var h=this.model.bounding,d=h.getCenter(new e.Vector3),p=(h.max.x-h.min.x)/this.defaultFov*i.fov,f=(h.max.y,h.min.y,this.defaultFov,i.fov,(h.max.z-h.min.z)/this.defaultFov*i.fov);c.x=Math.max(d.x-p,Math.min(d.x+p,c.x)),c.z=Math.max(d.z-f,Math.min(d.z+f,c.z));var A=t.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",A,t.isFinal)||this.emit("wantsPanGesture",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:c},t.isFinal)||(this.updateCamera({offset:c},!0,!0),this.emit("gesture","pan",A,t.isFinal),this.emit("panGesture",this.camera.copyPose(),t.isFinal),this.lastPanPoint=t.isFinal?void 0:{pointerLength:t.pointers.length,x:t.center.x,y:t.center.y})}},r.prototype.onMouseWheel=function(e){var t=this,r=e.delta,i=e.clientX,n=e.clientY,s=this.camera,o=this.minFov,a=this.maxFov,u=Math.max(o,Math.min(a,this.camera.fov-r)),c=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",c,!1)&&!this.emit("wantsMouseWheel",r,u,!1)){var l=this.relativeClientPosition({x:i,y:n}),h=this.getZoomOffsetFromFov(l,s,u),d=this.camera.pose.offset.clone().add(h);this.updateCamera({offset:d,fov:u},!0,!0),this.emit("gesture","mouseWheel",c,!1),this.emit("mouseWheel",r,u,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",c,!0)||t.emit("wantsMouseWheel",r,u,!0)||(t.emit("gesture","mouseWheel",c,!0),t.emit("mouseWheel",0,u,!0))}),200)}},r.prototype.onPinchGesture=function(e){var t=this.camera,r=this.lastPinchFov,i=e.scale,n=e.type,s=e.center,o=this.minFov,a=this.maxFov;if("pinchstart"===n)return delete this.lastPanPoint,void(this.lastPinchFov=t.fov);"pinchend"===n&&(delete this.lastPanPoint,delete this.lastPinchFov);var u="pinchend"===n;if(r){var c=r/i,l=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",l,u)||this.emit("wantsPinchGesture",i,c,u))return;c=Math.max(o,Math.min(a,c));var h=this.relativeClientPosition(s),d=this.getZoomOffsetFromFov(h,t,c),p=this.camera.pose.offset.clone().add(d);this.updateCamera({longitude:0,latitude:Math.PI/2,offset:p,fov:c},!0,!0),this.emit("gesture","pinch",l,u),this.emit("pinchGesture",i,c,u)}},r.prototype.__requestInteriaMovement=function(){},r}(Ai),gi=__webpack_require__(94),yi=[];function vi(e){return e.onload=e.onerror=Qe,e.crossOrigin="",/^blob\:/.test(e.src)&&URL.revokeObjectURL(e.src),e.removeAttribute("src"),e}function mi(t){t instanceof e.Texture?t.dispose():(vi(t),-1===yi.indexOf(t)&&yi.push(t))}function Ni(e,t,r,i,n,s,o){if(void 0===e&&(e=""),void 0===t&&(t=Qe),void 0===r&&(r=Qe),void 0===i&&(i=Qe),void 0===n&&(n=Qe),/\.basis(\?|$)/.test(e)){var a=!1,u=(He(),function(){!0!==a&&(n(),a=!0)});return new Kt({allowHosts:s,networkSubscribe:o}).load(e,(function(e,r){!0!==a?(i(1),t(e,r),a=!0):e.dispose()}),(function(e,t,r){i(e)}),(function(t){!0!==a&&(r(new Error("source load error: "+e)),a=!0)})),{abort:u}}var c=!1,l=null;return u=function(){!0!==c&&(l?l.abort():(n(),c=!0))},l=St(e,{responseType:"blob",allowHosts:s,networkSubscribe:o},(function(e,s){if(l=null,!0!==c)return e instanceof It?(c=!0,n()):e?(c=!0,r(e)):void function(e){var n=e.body,s=e.meta,o=URL.createObjectURL(n),a=vi(yi.shift()||it());a.onload=function(){a.onload=a.onerror=Qe,!0!==c?(qe((function(){return t(a,s)})),i(1),c=!0):mi(a)},a.onerror=function(){a.onload=a.onerror=Qe,!0!==c&&(r(new Error("source load error: "+o)),c=!0),mi(a)},a.src=o}(s)}),i),{abort:u}}var Di=["right","left","up","down","front","back"],wi=function(t){function r(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.renderer=e,i.allowHosts=r.allowHosts,i.networkSubscribe=r.networkSubscribe,i.prevRequest=null,i}return Se(r,t),r.prototype.setAllowHosts=function(e){this.allowHosts=e},r.prototype.load=function(t,r){var i=this,n=gi.u(t),s=Qe,o=Qe,a=Qe,u=Qe;"function"==typeof r?(s=function(e){return r(null,e)},a=function(e){return r(e)},u=function(e){return r(e)}):(r.onLoad&&(s=r.onLoad),r.onProgress&&(o=r.onProgress),r.onError&&(a=r.onError),r.onAbort&&(u=r.onAbort)),this.abort();for(var c=[],l=function(){c.length=0,i.prevRequest=null},h=!1,d=function(e,r){c[r].progress=Math.max(c[r].progress,e);var n=c.reduce((function(e,t){return t.progress/c.length+e}),0);o(n),i.emit("progress",n,t)},p=function(r){var o=function(e,t){var r=t.index,i=void 0===r?0:r,n=t.images,s=void 0===n?{}:n,o=t.imageOptions,a=void 0===o?{}:o,u=s[e],c=["cube",i,e].join("."),l=Kt.isInitialized();return kt(u,Object.assign({key:c,basisLoaderInitialized:l},a))}(Di[r],t);c[r]={source:o,progress:0,handler:{abort:Qe}},c[r].handler=Ni(o,(function(o,a){return function(r,o,a){if(h)mi(r);else{d(1,a),c[a].image=r,c[a].meta=o;for(var u=0,p=c;u<p.length;u++)if(!p[u].image)return;var f=function(t){var r=new rt;r.generateMipmaps=!0;var i=r.dispose,n=t[0];n instanceof e.Texture?(r.format=n.format,r.encoding=n.encoding,r.minFilter=n.minFilter,r.magFilter=n.magFilter):r.minFilter=e.LinearFilter,n instanceof e.CompressedTexture&&(r.isCompressedTexture=!0);for(var s=0;s<t.length;s++)r.images[s]=t[s];return r.needsUpdate=!0,r.dispose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=0,n=this.images;r<n.length;r++){var s=n[r];s&&mi(s)}return this.images.length=[],i.call.apply(i,Ce([this],e,!1))},r}(c.map((function(e){return e.image})));f.hash=n,f.meta=c.map((function(e){return e.meta})),h=!0,s(f),i.emit("load",f,t),l()}}(o,a,r)}),(function(e){return function(e,r){if(!0!==h){a(e),i.emit("error",e,t);for(var n=0,s=c;n<s.length;n++){var o=s[n].image;o&&mi(o)}h=!0,l()}}(e)}),(function(e){return d(e,r)}),(function(){return function(e){if(!0!==h){u(new Error("source load abort: "+c[e].source)),i.emit("abort",t);for(var r=0,n=c;r<n.length;r++){var s=n[r].image;s&&mi(s)}h=!0,l()}}(r)}),f.allowHosts,f.networkSubscribe)},f=this,A=0;A<Di.length;A++)p(A);this.prevRequest={abort:function(){for(var e=0,t=c;e<t.length;e++)t[e].handler.abort();c.length=0}},this.emit("start",t)},r.prototype.abort=function(){this.prevRequest&&(this.prevRequest.abort(),this.prevRequest=null)},r}(Nt),Ti=function(t){function r(r,i){var n=t.call(this)||this;n.disposed=!1,n.size=r.clone(),n.image=new ImageData(new Uint8ClampedArray([0,0,0,0]),1,1),n.generateMipmaps=!0,n.unpackAlignment=1,n.needsUpdate=!0,n.wrapS=e.ClampToEdgeWrapping,n.wrapT=e.ClampToEdgeWrapping,n.minFilter=e.NearestFilter,n.magFilter=e.NearestFilter,n.renderer=i;var s=n.gl=i.getContext(),o=n.utils=e.WebGLUtils(s,i.extensions,i.capabilities);i.initTexture(n);var a=i.properties.get(n),u=s.getParameter(s.TEXTURE_BINDING_2D);return s.bindTexture(s.TEXTURE_2D,a.__webglTexture),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),s.texImage2D(s.TEXTURE_2D,0,o.convert(n.format),r.x,r.y,0,o.convert(n.format),o.convert(n.type),null),s.bindTexture(s.TEXTURE_2D,u),n.update(n.image,new e.Vector2),n}return Se(r,t),r.prototype.update=function(e,t){if(!this.disposed){var r=this,i=(r.size,r.gl),n=r.utils,s=r.renderer.properties.get(this);if(!s.__webglTexture)throw new Error("UpdatableTexture never initialized");var o=i.getParameter(i.TEXTURE_BINDING_2D);i.bindTexture(i.TEXTURE_2D,s.__webglTexture),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texSubImage2D(i.TEXTURE_2D,0,t.x,t.y,n.convert(this.format),n.convert(this.type),e),i.generateMipmap(i.TEXTURE_2D),i.bindTexture(i.TEXTURE_2D,o)}},r.prototype.dispose=function(){this.disposed=!0,t.prototype.dispose.call(this)},r}(e.Texture),xi=2048;function Ei(e,t){return[Math.floor(e%t),Math.floor(e/t)]}var ji=new Pt,Ii=it();Ii.crossOrigin="";var bi=Promise.resolve(),zi=function(t){function r(r){var i=t.call(this)||this;i.texutre=new Ti(new e.Vector2(xi,xi),r),i.mappings=[];for(var n=He(),s=0;s<16;s++){var o=Ei(s,4),a=o[0],u=o[1];i.mappings[s]={idle:!0,loaded:!0,resource:"",timestamp:n,clip:new e.Vector4(0,0,0,0),drawAt:new e.Vector4(a/4,u/4,1/4,1/4)}}return i}return Se(r,t),r.prototype.requestResource=function(t){var r=this;bi=bi.then((function(){return new Promise((function(i){var n=function(){/^blob\:/.test(Ii.src)&&URL.revokeObjectURL(Ii.src),Ii.removeAttribute("src"),i()};ji.loadToImage(Ii,t,(function(){if(512!==Ii.width||512!==Ii.height)r.emit("error",new Error("tile image size must be 512 x 512."));else{var i=r.getMaddpingByResource(t);if(i&&!0!==i.loaded){i.loaded=!0;var s=new e.Vector2(i.drawAt.x*xi,i.drawAt.y*xi);r.texutre.update(Ii,s),r.emit("update",r.getVisibleMappings())}}n()}),(function(){}),n)}))}))},r.prototype.getMaddpingByResource=function(e){return this.mappings.filter((function(t){return e===t.resource}))[0]},r.prototype.getIdleMapping=function(){return this.mappings.filter((function(e){return e.idle})).sort((function(e,t){return e.timestamp-t.timestamp}))[0]},r.prototype.getHash=function(){return gi.u(this.getVisibleMappings().map((function(e){return e.map((function(e){return e.toArray()}))})))},r.prototype.cleanTiles=function(){for(var e=this.getHash(),t=0,r=this.mappings;t<r.length;t++)r[t].idle=!0;e!==this.getHash&&this.emit("update",this.getVisibleMappings())},r.prototype.loadTiles=function(e){var t=this.getHash(),r=Math.pow(4,2),i=He();e.length>r&&((e=e.slice()).length=r);for(var n=0,s=this.mappings;n<s.length;n++)(p=s[n]).idle=!0;for(var o=[],a=0,u=e;a<u.length;a++){var c=kt((d=u[a]).resource);(p=this.getMaddpingByResource(c))?(p.idle=!1,p.timestamp=i):o.push(d)}for(var l=0,h=o;l<h.length;l++){var d,p;c=kt((d=h[l]).resource),(p=this.getIdleMapping()).idle=!1,p.resource=c,p.clip=d.clip,p.loaded=!1,p.timestamp=i,this.requestResource(c)}t!==this.getHash&&this.emit("update",this.getVisibleMappings())},r.prototype.getVisibleMappings=function(){return this.mappings.map((function(t){var r=!1===t.idle&&!0===t.loaded?t.drawAt.clone():new e.Vector4(0,0,0,0);return[t.clip.clone(),r.clone()]}))},r.prototype.dispose=function(){this.emit("dispose"),this.mappings.length=0,this.texutre.dispose()},r}(Nt),Oi=function(t){function r(){var r=t.call(this)||this,i=new e.RingBufferGeometry(.04,.08,32),n=new e.MeshBasicMaterial({color:1245179,opacity:.8,side:e.DoubleSide,transparent:!0});return r.ringMesh=new e.Mesh(i,n),r.ringMesh.renderOrder=10,r.add(r.ringMesh),r}return Se(r,t),r.prototype.dispose=function(){this.remove(this.ringMesh),this.ringMesh.geometry.dispose(),Array.isArray(this.ringMesh.material)?this.ringMesh.material.forEach((function(e){return e.dispose()})):this.ringMesh.material.dispose()},r}(e.Object3D);function Si(){return new Oi}var Li=function(t){function r(e){var i=this,n=r.parseArgs(e);return(i=t.call(this,n)||this).defaultLongitude=n.defaultLongitude,i.defaultLatitude=n.defaultLongitude,i.defaultFov=n.defaultFov,i.maxFov=n.maxFov,i.minFov=n.minFov,i.maxLatitude=n.maxLatitude,i.minLatitude=n.minLatitude,i.moveSpeed=n.moveSpeed,i.intersectMeshCreator=n.intersectMeshCreator,i.interiaMovement=!1,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o,a,u,c,l,h=t.parseArgs.call(this,e);return Le(Le({},h),{defaultLongitude:null!==(r=e.defaultLongitude)&&void 0!==r?r:0,defaultLatitude:null!==(i=e.defaultLongitude)&&void 0!==i?i:0,defaultFov:null!==(n=e.defaultFov)&&void 0!==n?n:80,maxFov:null!==(s=e.maxFov)&&void 0!==s?s:120,minFov:null!==(o=e.minFov)&&void 0!==o?o:40,maxLatitude:null!==(a=e.maxLatitude)&&void 0!==a?a:+Math.PI/2,minLatitude:null!==(u=e.minLatitude)&&void 0!==u?u:-Math.PI/2,moveSpeed:null!==(c=e.moveSpeed)&&void 0!==c?c:3.2,intersectMeshCreator:null!==(l=e.intersectMeshCreator)&&void 0!==l?l:Si})},r.initAnimationEndPose=function(e){var t,r,i,n=this.parseArgs(e),s=e.initial[0];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:n.defaultLongitude,latitude:null!==(r=s.latitude)&&void 0!==r?r:n.defaultLatitude,fov:null!==(i=s.fov)&&void 0!==i?i:n.defaultFov,offset:n.work.observers[n.panoIndex].position.clone()}},r.prototype.destroy=function(){t.prototype.destroy.call(this),this.interiaMovement=!1,this.hideIntersectMesh(),this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose())},r.prototype.updateCamera=function(e,t,r){var i,n,s;void 0===e&&(e={});var o=this,a=o.minFov,u=o.maxFov,c=o.maxLatitude,l=o.minLatitude,h=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,p=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,f=null!==(s=e.offset)&&void 0!==s?s:this.camera.pose.offset;r&&(d=Math.max(l,Math.min(c,d)),p=Math.max(a,Math.min(u,p)));var A=h!==this.camera.pose.longitude||d!==this.camera.pose.latitude,M=p!==this.camera.pose.fov,g=!f.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:h,latitude:d,fov:p,offset:f}),M&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),A&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(M||A||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,Yt()},r.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Math.floor(Math.max(Math.min(t/this.moveSpeed*1e3,1500),500))}},r.prototype.initAnimation=function(e,t,r){var i,n,s,o=this;if(this.destroyed)return Promise.resolve();var a=null!==(i=e.longitude)&&void 0!==i?i:this.defaultLongitude,u=null!==(n=e.latitude)&&void 0!==n?n:this.defaultLatitude,c=null!==(s=e.fov)&&void 0!==s?s:this.defaultFov;return new Promise((function(e){o.moveToPano(o.currentPanoIndex,{longitude:a,latitude:u,fov:c,limit:!1,duration:t,moveStartCallback:function(e,t){o.preventPanGesture=!0,o.preventTapGesture=!0,o.emit("initAnimationWillStart",e,t,r)},moveEndCallback:function(t,i){o.preventPanGesture=!1,o.preventTapGesture=!1,e(),o.emit("initAnimationEnded",t,i,r)},moveCancelCallback:function(){o.preventPanGesture=!1,o.preventTapGesture=!1,e(),o.emit("initAnimationEnded",o.currentPanoIndex,o.camera.copyPose(),r)}},r)}))},r.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},r.prototype.coordinatesChangeWithOffset=function(e,t){var r=2*t.x/this.element.offsetWidth*this.camera.fov/95*this.camera.aspect,i=-2*t.y/this.element.offsetHeight*this.camera.fov/95;return{longitude:e.longitude+r,latitude:e.latitude+i}},r.prototype.requestInteriaMovement=function(e,t){var r=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),n=i.longitude,s=i.latitude;this.updateCamera({longitude:n,latitude:s},t,!0);var o=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!o),o?qe((function(){r.requestInteriaMovement({x:.9*e.x,y:.9*e.y*.7},t)})):this.interiaMovement=!1}},Object.defineProperty(r.prototype,"gesturing",{get:function(){return this.interiaMovement||void 0!==this.lastPanPoint||void 0!==this.lastPinchFov},enumerable:!1,configurable:!0}),r.prototype.onPanGesture=function(e){var t=this;this.interiaMovement=!1,this.hideIntersectMesh();var r=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.coordinatesChangeWithOffset(this.camera.pose,r),n=i.longitude,s=i.latitude;Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(s=this.camera.pose.latitude);var o=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",o,e.isFinal)||this.emit("wantsPanGesture",this.camera.copyPose(),e.isFinal)||(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.updateCamera({longitude:n,latitude:s},!0,!0),this.emit("gesture","pan",o,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal&&(this.emit("wantsInteriaPan",this.camera.copyPose())||Xe((function(r){t.interiaMovement=!0;var i=e.velocityX*r,n=e.velocityY*r,s=Math.sqrt(i*i+n*n);s>100&&(i=i/s*100,n=n/s*100),Math.abs(n/i)<Math.tan(20/180*Math.PI)&&(n=0),t.requestInteriaMovement({x:i,y:n},!0)}))))},r.prototype.onPinchGesture=function(e){this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var t=this.camera,r=this.lastPinchFov,i=e.scale,n=e.type;if("pinchstart"===n)return this.lastPinchFov=t.fov,void delete this.lastPanPoint;"pinchend"===n&&(delete this.lastPanPoint,delete this.lastPinchFov);var s="pinchend"===n;if(r){var o=r/i,a=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",a,s)||this.emit("wantsPinchGesture",i,o,s))return;this.updateCamera({fov:o},!0,!0),this.emit("gesture","pinch",a,s),this.emit("pinchGesture",i,o,s)}},r.prototype.onMouseWheel=function(e){var t=this;this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var r=e.delta,i=this.minFov,n=this.maxFov,s=Math.max(i,Math.min(n,this.camera.fov-r)),o=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",o,!1)||this.emit("wantsMouseWheel",r,s,!1)||(this.updateCamera({fov:s},!0,!0),this.emit("gesture","mouseWheel",o,!1),this.emit("mouseWheel",r,s,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",o,!0)||t.emit("wantsMouseWheel",r,s,!0)||(t.emit("gesture","mouseWheel",o,!0),t.emit("mouseWheel",0,s,!0))}),200))},r.prototype.onMouseMove=function(t){var r=this,i=r.camera,n=r.model,s=r.intersectMesh,o=r.lastPanPoint;if(s&&!n.empty&&n.bvhs&&!0===n.bvhs.loaded&&!o){var a=this.relativeClientPosition({x:t.clientX,y:t.clientY}),u=new e.Raycaster;if(u.setFromCamera(a,i),this.emit("wantsShowIntersectionOnModel",u))return this.hideIntersectMesh(),void(this.needsRender=!0);var c=n.intersectRaycaster(u)[0];if(c&&c.face){var l=c.face.normal,h=l.clone().multiplyScalar(.05),d=c.point.clone().add(h);s.position.copy(d);var p=d.clone().add(h);if(s.lookAt(p),Math.abs(l.y)>.99){var f=i.pose.offset.clone().sub(d);s.rotation.z=-Math.atan2(f.z,f.x)}s.visible=!0,this.emit("intersectionOnModelUpdate",c,s),this.needsRender=!0}else this.hideIntersectMesh(),this.needsRender=!0;this.lastMouseMoveEvent={clientX:t.clientX,clientY:t.clientY}}},r.prototype.onMouseOut=function(){this.intersectMesh&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},r}(fi),Ci=it(),ki=new e.Texture(Ci);Ci.onload=function(){return ki.needsUpdate=!0},Ci.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAR9JREFUOBF10kFOAzEMBdCZFhCbrrgAN+NqHIULsWKDKO3gF+VHoZpa+rXjfH87nq7btr0ty3KZ8FsxnHeQPL748lA/x0Jsq+AwYe0X8nDtGA33BEJUHIEKW/EorHOLI7BHNlkEbju38YkQAIRZxFkHz2HOirKDxNcIzG+fu/6oLiNmqc5ZrlwTeKyAgJF14tMZmSn87pBrxeX/CRABgk/dl1s+C18dio2Pp9nmCQru2UtdvN+7lI9AFsgb3zNMcSp8FF4LYs3UhLfOAvkDJffci8q1J/ByRLKnQ8gUJUFOd2SeZYliCxwiyJCxCbhUGFKF4zPm61hiq7sVyJnPmATyR5IzLSNyDNEFRCDnkAmA8U2RfCsIefYhDeKOQLv7A+l1ZTyjymNxAAAAAElFTkSuQmCC";var Pi=new e.RingBufferGeometry(.06,.07,32).rotateX(-Math.PI/2),_i=new e.MeshBasicMaterial({map:ki,transparent:!0});function Bi(){if("undefined"==typeof document){var t=new e.Texture;return Object.assign(t,{draw:function(e){},retain:!1,pool:!1})}var r=document.createElement("canvas"),i=512,n=256,s=190;r.setAttribute("width",String(i)),r.setAttribute("height",String(i));var o=new e.Texture(r),a=r.getContext("2d");if(!a)throw Error("cannot create canvas context");var u=a.createRadialGradient(n,n,150,n,n,0);function c(){var e=Math.PI/12,t=2*Math.PI/3;a&&(a.beginPath(),a.arc(n,n,s,0*t,1*t-e),a.stroke(),a.beginPath(),a.arc(n,n,s,1*t,2*t-e),a.stroke(),a.beginPath(),a.arc(n,n,s,2*t,3*t-e),a.stroke())}function l(e){a&&(a.clearRect(0,0,i,i),a.lineWidth=20,-1!==e&&(a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, 1)",c(),a.globalCompositeOperation="source-in",a.beginPath(),a.arc(n,n,s,0,2*Math.PI*e),a.strokeStyle="rgba(255, 255, 255, 1)",a.stroke(),a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, "+(e?.5:1)+")",c()),a.beginPath(),a.arc(n,n,150,0,2*Math.PI),a.closePath(),a.fillStyle=u,a.fill(),a.fillStyle="rgba(255, 255, 255, 0.01)",a.fillRect(0,0,i,i),o.needsUpdate=!0)}return u.addColorStop(0,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 0.5)"),u.addColorStop(.4,"rgba(255, 255, 255, 0.0)"),u.addColorStop(1,"rgba(255, 255, 255, 0.0)"),l(0),Object.assign(o,{draw:l,retain:!1,pool:!1})}var Ui=[],Ri=Bi();Ri.draw(0);var Qi=Bi();Qi.draw(1);var Yi=Bi();Yi.draw(-1);var Fi=new e.CircleBufferGeometry(.12,32).rotateX(-Math.PI/2);var Vi,Hi=function(t){function r(){var r=t.call(this)||this;return r.needsRender=!0,r.loading=!1,r.disabled=!1,r.centerMesh=new e.Mesh(Fi,new e.MeshBasicMaterial({map:Ri,transparent:!0})),r.centerMesh.position.y+=.01,r.add(r.centerMesh),r.loadingMesh=new e.Mesh(Pi,_i),r.loadingMesh.position.y+=.011,r}return Se(r,t),r.prototype.setLoading=function(t){var r=this;this.loading=t,this.stopInterval&&this.stopInterval(),t?(this.add(this.loadingMesh),this.stopInterval=We((function(){r.loadingMesh.rotateOnAxis(new e.Vector3(0,1,0),.1),r.needsRender=!0}))):this.remove(this.loadingMesh),this.needsRender=!0},r.prototype.setDisabled=function(e){function t(t){var r=t.map;!0===r.pool&&(r.retain=!1),t.map=e?Yi:Ri}this.disabled=e,Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){t(e)})):t(this.centerMesh.material),this.needsRender=!0},r.prototype.setProgress=function(e){function t(e,t){var r=e.map;0===t||1===t?(!0===r.pool&&(r.retain=!1),0===t&&(e.map=Ri),1===t&&(e.map=Qi)):(!0!==r.pool&&(e.map=function(){for(var e=0,t=Ui;e<t.length;e++){var r=t[e];if(!1===r.retain)return r}var i=Bi();return i.pool=!0,i.retain=!0,Ui.push(i),i}()),e.map.draw(t))}this.setLoading(!1),this.setDisabled(!1),e=Math.max(0,Math.min(1,e)),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(r){t(r,e)})):t(this.centerMesh.material,e),this.needsRender=!0},r.prototype.setOpacity=function(e){Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(t){t.opacity=e})):this.centerMesh.material.opacity=e,this.needsRender=!0},r.prototype.dispose=function(){this.setLoading(!1),this.remove(this.centerMesh),this.remove(this.loadingMesh),this.centerMesh.geometry.dispose(),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){e.dispose()})):this.centerMesh.material.dispose(),this.loadingMesh.geometry.dispose(),Array.isArray(this.loadingMesh.material)?this.loadingMesh.material.forEach((function(e){e.dispose()})):this.loadingMesh.material.dispose()},r}(e.Object3D);function Gi(){return new Hi}function qi(t){var r=Math.abs(Math.cos(t.latitude));return new e.Vector3(-Math.sin(t.longitude)*r,-Math.sin(t.latitude),-Math.cos(t.longitude)*r)}var Wi=new e.OrthographicCamera(-1,1,1,-1,0,1),Zi=new e.BufferGeometry;Zi.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Zi.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));var Xi=new e.Mesh(Zi),Ki=new e.Scene;Ki.add(Xi);for(var Ji=function(){function t(t,r){var i;this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:null!==(i=r.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:r.fragment,uniforms:Object.assign({inputBuffer:new e.Uniform(null)},r.uniforms)})}return t.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),i=Xi.material;this.material.uniforms.inputBuffer.value=e.texture,Xi.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Ki,Wi),this.renderer.setRenderTarget(r),Xi.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),$i=function(){function t(t){this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:"\n uniform vec3 inputValue;\n void main() {\n gl_FragColor = vec4(inputValue, 1.0);\n }\n ",uniforms:Object.assign({inputValue:new e.Uniform(new e.Vector3)})})}return t.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),i=Xi.material;this.material.uniforms.inputValue.value.copy(e),Xi.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Ki,Wi),this.renderer.setRenderTarget(r),Xi.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),en=function(e){function t(t){return e.call(this,t,{fragment:"\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n }\n "})||this}return Se(t,e),t}(Ji),tn=function(e){function t(t){return e.call(this,t,{fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n float scale = 0.25;\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = linearToRelativeLuminance(rgb) - 0.5;\n luminance = luminance / 2.0 + 0.5;\n gl_FragColor = vec4(luminance, luminance, luminance, 1.0);\n }\n "})||this}return Se(t,e),t}(Ji),rn=function(t){function r(r,i){return void 0===i&&(i=.002),t.call(this,r,{uniforms:{targetBuffer:new e.Uniform(null),inputBuffer:new e.Uniform(null),step:new e.Uniform(i)},vertex:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ",fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n void main() {\n float target = texture2D(targetBuffer, vec2(0.5, 0.5)).r;\n float current = texture2D(inputBuffer, vec2(0.5, 0.5)).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this}return Se(r,t),Object.defineProperty(r.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),r}(Ji),nn=function(t){function r(r){return t.call(this,r,{uniforms:{inputBuffer:new e.Uniform(null),luminanceAdaptiveBUffer:new e.Uniform(null)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBUffer;\n varying vec2 vUv;\n\n vec3 hsv2rgb(vec3 c) {\n const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n vec3 rgb2hsv(vec3 c) {\n const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);\n }\n\n void main() {\n vec3 rgb = texture2D(inputBuffer, vUv).rgb;\n float luminance = linearToRelativeLuminance(rgb);\n float delta = (texture2D(luminanceAdaptiveBUffer, vec2(0.5, 0.5)).r - 0.5);\n vec3 hsv = rgb2hsv(rgb);\n if (delta > 0.0) {\n hsv.z -= delta * (1.0 - luminance);\n } else {\n hsv.z -= delta * luminance;\n }\n gl_FragColor = vec4(hsv2rgb(hsv), 1.0);\n }\n\n "})||this}return Se(r,t),Object.defineProperty(r.prototype,"luminanceAdaptiveBUffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBUffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBUffer.value=e},enumerable:!1,configurable:!0}),r}(Ji),sn=function(){function t(e){this.enable=!0,this.renderer=e,this.valuePass=new $i(this.renderer),this.copyPass=new en(this.renderer),this.luminancePass=new tn(this.renderer),this.nextStepPass=new rn(this.renderer),this.luminanceAdaptivePass=new nn(this.renderer)}return t.prototype.render=function(t){this.enable?(this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(t),this.luminancePass.render(t,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBUffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.render(t)):this.copyPass.render(t)},t.prototype.dispose=function(){var e,t,r;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(r=this.luminanceNextBuffer)||void 0===r||r.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},t}(),on=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),an=new e.Vector2(16,8),un=[],cn=0;cn<an.x;cn++)for(var ln=0;ln<an.y;ln++){un[ln*an.x+cn]=[];var hn=qi({longitude:2*Math.PI/an.x*(cn+.5),latitude:Math.PI/an.y*(ln+.5)-Math.PI/2});un[ln*an.x+cn].push(hn);for(var dn=0;dn<=8;dn++)for(var pn=0;pn<=8;pn++){var fn=qi({longitude:2*Math.PI/an.x*(cn+dn/8),latitude:Math.PI/an.y*(ln+pn/8)-Math.PI/2});un[ln*an.x+cn].push(fn)}}var An=new e.MeshDistanceMaterial({nearDistance:0,farDistance:10}),Mn=new e.Scene;Mn.overrideMaterial=An;var gn=function(t){function r(i){var n=this,s=r.parseArgs(i);(n=t.call(this,s)||this).maxAccessibleDistance=s.maxAccessibleDistance,n.panoTapTriggerRadius=s.panoTapTriggerRadius,n.panoCircleMeshCreator=s.panoCircleMeshCreator;var o=n.model.getMaterial()||{},a=o.pano0Map,u=o.pano1Map;return u&&u!==a&&(n.model.setMaterial({pano1Map:a}),u.dispose()),n.boundingMesh=n.generateBoundingMesh(),n.boundingMesh.setMaterial(n.model.getMaterial()||{}),n.boundingMesh.name="bounding",n.boundingMesh.visible=!1,n.scene.add(n.boundingMesh),n.panoCircleMeshes=[],n.updatePanoCircleMeshes(),n.model.loaded||n.panoCircleMeshes.forEach((function(e){return e.visible=!1})),n.depthCamera=new e.CubeCamera(.01,10,new e.WebGLCubeRenderTarget(64)),s.enableLuminanceAdaptiveEffect&&(n.luminanceAdaptiveEffect=new sn(n.renderer),n.luminanceAdaptiveEffect.enable=!1,n.postProcessing=function(e){var t;return null===(t=n.luminanceAdaptiveEffect)||void 0===t?void 0:t.render(e)}),n.cubeTextureLoader=new wi(n.renderer,{allowHosts:n.work.allowHosts,networkSubscribe:n.networkSubscribe}),n.cubeTextureLoader.on("start",(function(e){var t,r=e.index;null===(t=n.panoCircleMeshes[r])||void 0===t||t.setProgress(0),n.emit("textureStartLoad",r,n.work.observers[r])})),n.cubeTextureLoader.on("progress",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(e),n.emit("textureLoading",e,i,n.work.observers[i])})),n.cubeTextureLoader.on("abort",(function(e){var t,r=e.index;null===(t=n.panoCircleMeshes[r])||void 0===t||t.setProgress(0),n.emit("textureAbort",r,n.work.observers[r])})),n.cubeTextureLoader.on("load",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(1),n.emit("textureLoaded",i,n.work.observers[i],e.meta)})),n.cubeTextureLoader.on("error",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(0),n.emit("textureError",e,i,n.work.observers[i]),n.emit("error",e)})),n.once("initAnimationWillStart",(function(){(new e.Box3).expandByObject(n.boundingMesh).containsPoint(n.camera.position)&&(n.boundingMesh.visible=!0),n.luminanceAdaptiveEffect&&(n.luminanceAdaptiveEffect.enable=!0)})),n}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o=t.parseArgs.call(this,e);return Le(Le({},o),{enableLuminanceAdaptiveEffect:null!==(r=e.enableLuminanceAdaptiveEffect)&&void 0!==r&&r,maxAccessibleDistance:null!==(i=e.maxAccessibleDistance)&&void 0!==i?i:5,panoTapTriggerRadius:null!==(n=e.panoTapTriggerRadius)&&void 0!==n?n:1,panoCircleMeshCreator:null!==(s=e.panoCircleMeshCreator)&&void 0!==s?s:Gi})},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.getCurrentTileIndicesInCamera=function(){for(var t=this.work.observers[this.currentPanoIndex],r=(new e.Matrix4).compose(t.position,t.quaternion,new e.Vector3(-1,1,1)),i=this.camera.getWorldDirection(new e.Vector3),n=(new e.Matrix4).multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),s=(new e.Frustum).setFromProjectionMatrix(n),o=[],a=0;a<un.length;a++)for(var u=0,c=un[a];u<c.length;u++){var l=c[u];if(s.containsPoint(l.clone().applyMatrix4(r))){o.push(a);break}}return o.sort((function(e,t){return un[e][0].angleTo(i)-un[t][0].angleTo(i)})),o},r.prototype.tilingPanoIfNeeds=function(){var t,r=this,i=this.camera.pose.fov<=70,n=this.work.observers[this.currentPanoIndex],s=n.images.tiles;if(i&&s&&n.position.equals(this.camera.pose.offset)){this.tileTextureLoader||(this.tileTextureLoader=new zi(this.renderer),this.tileTextureLoader.on("update",(function(e){r.setModelAndBoundingMaterial({panoTileMap:r.tileTextureLoader.texutre,panoTileMappings:e}),r.needsRender=!0})));for(var o=this.getCurrentTileIndicesInCamera(),a=[],u=0;u<an.x*an.y;u++)if(-1!==o.indexOf(u)){var c=Math.floor(u%an.x),l=Math.floor(u/an.x),h=new e.Vector4(c/an.x,l/an.y,1/an.x,1/an.y),d=s+"/row-"+(l+1)+"-column-"+(c+1)+".jpg";a.push({resource:d,clip:h})}this.tileTextureLoader.loadTiles(a)}else null===(t=this.tileTextureLoader)||void 0===t||t.cleanTiles()},r.prototype.updateWork=function(e,t,r,i){var n=this;this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex,this.cubeTextureLoader.setAllowHosts(this.work.allowHosts);var s={},o=!0;return this.boundingMesh&&(s=this.boundingMesh.getMaterial()||{},o=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.name="bounding",this.boundingMesh.visible=o,this.boundingMesh.setMaterial(s),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{effect:"fade",duration:r,longitude:t.longitude,latitude:t.latitude,fov:t.fov,moveStartCallback:function(){return n.updatePanoCircleMeshes(!1)}},i),!0},r.prototype.updatePanoCircleMeshes=function(t){var r=this;void 0===t&&(t=!0);var i=[];this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){e.loading&&i.push(e.panoIndex),r.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0);var n=new e.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(s,o){var a=r.panoCircleMeshCreator();if(a.position.copy(s.standingPosition),t&&r.model.loaded){var u=a.position.clone().add(new e.Vector3(0,1,0)),c=new e.Raycaster(u,n,0,1),l=r.model.intersectRaycaster(c)[0];l&&l.point.distanceTo(a.position)>.1&&(a.position.copy(l.point.clone()),a.needsRender=!0)}return a.name="panoCircle_"+o,a.panoIndex=o,r.helper.add(a),a.needsRender=!0,!1===s.active&&(a.setDisabled(!0),i.indexOf(o)>=0&&(a.setDisabled(!1),a.setLoading(!0))),a}));var s=this.work.observers[this.currentPanoIndex].visibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active})),this.panoCircleMeshes.forEach((function(e){e.visible=s.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},r.prototype.destroy=function(){var r,i,n,s,o=this;t.prototype.destroy.call(this),null===(r=this.luminanceAdaptiveEffect)||void 0===r||r.dispose(),this.cubeTextureLoader.off(),null===(i=this.tileTextureLoader)||void 0===i||i.dispose(),delete this.pendingLoadTextureHashAndCallback,this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){o.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0),this.interiaMovement=!1;var a=this.videoTexture.image;a.pause(),a.oncanplay=function(){},a.ontimeupdate=function(){};var u={pano0DepthMap:null,panoVideoMap:null,panoVideoSize:new e.Vector2,panoVideoMatrix:new e.Matrix4,panoVideoAlpha:0};this.setModelAndBoundingMaterial(u),null===(n=this.depthCamera)||void 0===n||n.renderTarget.texture.dispose(),null===(s=this.depthCamera)||void 0===s||s.renderTarget.dispose(),delete this.depthCamera},r.prototype.render=function(e){this.work.observers[this.currentPanoIndex].video&&(this.needsRender=!0),t.prototype.render.call(this,e)},r.prototype.generateBoundingMesh=function(t){void 0===t&&(t=!1);var r=this.model.bounding.clone();return this.work.observers.forEach((function(t){r.expandByPoint(t.standingPosition),r.expandByPoint((new e.Vector3).fromArray([t.position.x,2*t.position.y-t.standingPosition.y,t.position.z]))})),t&&r.expandByPoint(this.camera.pose.offset),ht(r,new e.Vector3(1,0,1))},r.prototype.resetModel=function(e,t){var r=this;this.model=e;var i={};this.boundingMesh&&(i=this.boundingMesh.getMaterial()||{},this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(),this.boundingMesh.visible=!0,this.boundingMesh.name="bounding",this.boundingMesh.setMaterial(i),this.scene.add(this.boundingMesh),this.needsRender=!0,Ft((function(){r.updatePanoCircleMeshes(),r.updateCamera({},t,!0),r.needsRender=!0}))},r.prototype.moveToPano=function(e,t,r){var i=this;this.ready=!1,this.interiaMovement=!1;var n={index:e,images:this.work.observers[e].images,imageOptions:this.imageOptions},s=gi.u(n),o=function(n,s){if(n)return t.moveCancelCallback&&t.moveCancelCallback(),i.emit("panoLoadError",n,e),i.emit("moveToPanoCanceled",e),void(i.ready=!0);var o=s;i.destroyed?o.dispose():(i.emit("panoLoaded",e),qe((function(){return i.doMoveToPano(e,o,t,r)})))},a=this.pendingLoadTextureHashAndCallback||[],u=a[0],c=a[1];if(s!==u){if(delete this.pendingLoadTextureHashAndCallback,c&&c(new Error("texture aborted")),this.emit("moveToPano",e,r),this.emit("panoWillLoad",e),!n.images)return void o(new Error("pano images were not existed"));var l=this.getModelAndBoundingMaterial()||{},h=l.pano0Map,d=l.pano1Map,p=void 0;if(h&&h.hash===s?p=h:d&&d.hash===s&&(p=d),p)return void o(null,p);this.pendingLoadTextureHashAndCallback=[s,o],this.cubeTextureLoader.load(n,(function(e,t){var r=i.pendingLoadTextureHashAndCallback||[],n=r[0],o=r[1];s===n&&o?(o(e,t),delete i.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},r.prototype.updateCamera=function(e,r,i){var n=this;void 0===e&&(e={}),t.prototype.updateCamera.call(this,e,r,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(n.camera.pose.offset);e.setOpacity(Math.min(1.5/t,1))}));var s=this.getForwardPanoIndexOrNot();null!==s&&this.panoCircleMeshes[s].setOpacity(1),this.needsRender=!0,Yt(),this.tilingPanoIfNeeds()},r.prototype.cannotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,r=.98*t,i=function(t){var r=t.fov;e.updateCamera({fov:r},!0,!0)};this.tweenCoordinates=Yr({fov:t},{fov:r},200).onUpdate(i).onComplete((function(){var n;null===(n=e.tweenCoordinates)||void 0===n||n.destroy(),e.tweenCoordinates=Yr({fov:r},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},r.prototype.getModelAndBoundingMaterial=function(){for(var e=0,t=[this.model,this.boundingMesh];e<t.length;e++)return t[e].getMaterial();return null},r.prototype.setModelAndBoundingMaterial=function(e){for(var t=0,r=[this.model,this.boundingMesh];t<r.length;t++)r[t].setMaterial(e)},r.prototype.doMoveToPano=function(t,r,i,n){var s,o,a,u,c,l,h,d,p,f,A,M=this;void 0===i&&(i={});var g=i.effect,y=void 0===g?"fly":g,v=i.limit,m=void 0===v||v,N=i.easing,D=void 0===N?Qr.Quadratic.InOut:N,w=this.currentPanoIndex,T=this.work.observers[t],x=this.work.observers[w].accessibleNodes.indexOf(t)>=0,E=T.video,j=T.visibleNodes;j=j.filter((function(e){var t=M.work.observers[e];return t.loadable||t.active}));var I=this.calculateMovingDuration(i.duration,this.camera.pose.offset.distanceTo(T.standingPosition)),b=this.camera.pose.offset.clone(),z=null!==(o=null===(s=this.getModelAndBoundingMaterial())||void 0===s?void 0:s.modelAlpha)&&void 0!==o?o:0,O=null!==(u=null===(a=this.model.getMaterial())||void 0===a?void 0:a.perspToOrtho)&&void 0!==u?u:0,S=this.camera.pose.longitude,L=this.camera.pose.latitude,C=this.camera.pose.fov,k=T.position,P=null!==(l=null===(c=this.getModelAndBoundingMaterial())||void 0===c?void 0:c.pano0Matrix)&&void 0!==l?l:new e.Matrix4,_=(new e.Matrix4).compose(T.position,T.quaternion,new e.Vector3(-1,1,1)),B=null!==(h=i.longitude)&&void 0!==h?h:S,U=null!==(d=i.latitude)&&void 0!==d?d:L,R=null!==(p=i.fov)&&void 0!==p?p:C,Q={fov:R,longitude:B,latitude:U,offset:k.clone()};this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),i.moveStartCallback&&i.moveStartCallback(t,Q),this.emit("panoWillArrive",t,Q,n),this.needsRender=!0,x&&(Mn.add(this.model),An.referencePosition.copy(b),null===(f=this.depthCamera)||void 0===f||f.position.copy(b),null===(A=this.depthCamera)||void 0===A||A.update(this.renderer,Mn),this.scene.add(this.model),this.scene.children.unshift(this.scene.children.pop()));var Y=function(){var e=M.getModelAndBoundingMaterial()||{},s=e.pano0Map,o=e.pano1Map;s&&s!==o&&s!==r&&s.dispose();var a={modelAlpha:0,perspToOrtho:0,pano0Matrix:_,pano0Map:r,pano0DepthMap:M.depthCamera?M.depthCamera.renderTarget.texture:null,pano1Matrix:_,pano1Map:r,progress:0};if(E&&Object.keys(E).length>0){var u=M.videoTexture.image;u.oncanplay=function(){u.oncanplay=function(){},u.currentTime=0,u.play(),M.setModelAndBoundingMaterial({panoVideoAlpha:0,panoVideoMap:M.videoTexture,panoVideoSize:E.size,panoVideoMatrix:on.clone().multiply(_).multiply(E.matrix)})},u.ontimeupdate=function(){if(u.currentTime>.5&&u.src===(null==E?void 0:E.source)){u.ontimeupdate=function(){};var e=Fr(230,D).onUpdate((function(e){var t=e.progress;return M.setModelAndBoundingMaterial({panoVideoAlpha:t})})).onComplete((function(){return e.destroy()}))}};var c=u.playid=Fe();(Vi||(Vi=new Promise((function(e){var t,r=document.createElement("video");r.muted=!0,r.src="data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",r.addEventListener("timeupdate",(function i(){r.removeEventListener("timeupdate",i,!1),clearTimeout(t);var n=document.createElement("canvas");n.width=n.height=1;var s=n.getContext("2d");s?(s.drawImage(r,0,0,1,1),s.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),r.addEventListener("canplay",(function e(){r.removeEventListener("canplay",e,!1),r.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))).then((function(e){e&&E&&u.playid===c&&(u.src=E.source)}))}M.setModelAndBoundingMaterial(a),M.panoCircleMeshes.forEach((function(e){e.visible=j.indexOf(e.panoIndex)>=0})),M.updateCamera({offset:k},n,m),M.panoCircleMeshes[t]&&M.panoCircleMeshes[t].setProgress(0),i.moveEndCallback&&i.moveEndCallback(t,M.camera.copyPose()),M.currentPanoIndex=t,M.preventTapGesture=!1,M.boundingMesh.visible=!0,qe((function(){M.emit("panoArrived",t,M.camera.copyPose(),n),M.ready=!0})),M.needsRender=!0};if(this.preventTapGesture=!0,I){var F=this.videoTexture.image;F.pause(),F.removeAttribute("src"),F.oncanplay=function(){},F.ontimeupdate=function(){},this.videoTexture.needsUpdate=!0;var V=this.getModelAndBoundingMaterial()||{},H=V.pano0Map,G=V.pano1Map;G&&G!==H&&G!==r&&G.dispose();var q={pano1Matrix:_,pano1Map:r,pano0DepthMap:x&&this.depthCamera?this.depthCamera.renderTarget.texture:null,panoVideoMap:null,panoVideoSize:new e.Vector2,panoVideoMatrix:new e.Matrix4,panoVideoAlpha:0,useBlackTransition:"instant"===y};if("fade"===y){var W=P.clone();W.setPosition(k),q.pano0Matrix=W,b.copy(k),this.updateCamera({offset:k},n,m)}this.setModelAndBoundingMaterial(q),"fly"!==y&&this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),this.renderer.compile(this.scene,this.camera),this.tweenPosition=Fr(I,D).onUpdate((function(r){var i=r.progress;M.setModelAndBoundingMaterial({progress:i,modelAlpha:Wr(z,0,i),perspToOrtho:Wr(O,0,Math.min(5*i,1))});var s=new e.Vector3(Wr(b.x,k.x,i),Wr(b.y,k.y,i),Wr(b.z,k.z,i));M.updateCamera({offset:s},n,m),i>.9&&(M.preventTapGesture=!1),M.emit("movingToPano",t,w,i),"fly"===y?n&&M.lastMouseMoveEvent&&M.onMouseMove(M.lastMouseMoveEvent):M.hideIntersectMesh(),M.needsRender=!0})).onComplete((function(){M.tweenPosition&&(M.tweenPosition.completed=!0,M.tweenPosition.destroy()),delete M.tweenPosition,Y()})).onCancel((function(){i.moveCancelCallback&&i.moveCancelCallback()}))}else Y();if(S!==B||L!==U||C!==R){var Z=function(e){var t=e.progress,r=Zr(S,B,t),i=Wr(L,U,t),s=Wr(C,R,t);M.updateCamera({longitude:r,latitude:i,fov:s},n,m)},X=function(){return Z({progress:1})};I>0?this.tweenCoordinates=Fr(I,D).onUpdate(Z).onComplete((function(){M.tweenCoordinates&&(M.tweenCoordinates.destroy(),delete M.tweenCoordinates),X()})):X()}},r.prototype.getForwardPanoIndexOrNot=function(t){var r=this,i=this.camera,n=this.currentPanoIndex,s=this.work.observers[n].accessibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active}));var o,a=i.getWorldDirection(new e.Vector3);o=t?t.ray.direction.clone():a.clone();var u=i.pose.offset.clone();if(o.y=u.y=0,0===o.length()||0===u.length())return null;for(var c=0,l=s.filter((function(e){var t=r.work.observers[e].standingPosition.clone().sub(i.pose.offset);return 0!==t.length()&&t.angleTo(a)<i.fov/2/180*Math.PI})).map((function(e){var t=r.work.observers[e].standingPosition.clone();return Object.assign(t,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(u)-t.distanceTo(u)}));c<l.length;c++){var h=l[c],d=h.clone().sub(u);if(0!==d.length()&&o.angleTo(d)<Math.PI/6)return h.panoIndex}return null},r.prototype.onTapGesture=function(t){var r=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var i=null,n=this.work.observers[this.currentPanoIndex],s=n.accessibleNodes.filter((function(e){return r.work.observers[e].position.distanceTo(r.camera.pose.offset)<r.maxAccessibleDistance})),o=this.relativeClientPosition(t.center),a=new e.Raycaster;a.setFromCamera(o,this.camera);var u=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",u,!0)&&!this.emit("wantsTapGesture",a,o)){this.emit("gesture","tap",u,!0),this.emit("tapGesture",a,o);var c=this.camera.getWorldDirection(new e.Vector3).setY(0).normalize(),l=this.model.intersectRaycaster(a)[0];if(l){var h=ci(s,(function(e){var t=r.work.observers[e].standingPosition.clone();return t.clone().sub(r.camera.pose.offset).setY(0).angleTo(c)>Math.PI/2?1/0:t.distanceTo(l.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(i=d)}if(Re(i)&&(i=this.getForwardPanoIndexOrNot(a)),Re(i))this.emit("panoSelected",null),this.cannotMoveAnimation();else{var p=this.work.observers[i];if(this.emit("panoSelected",i),p.active){for(var f=Math.PI/6,A=Math.PI/12,M=p.position.clone().setY(0).sub(n.position.clone().setY(0)).normalize(),g=M.clone().applyAxisAngle(new e.Vector3(0,1,0),f),y=M.clone().applyAxisAngle(new e.Vector3(0,1,0),-f),v=[],m=[],N=[],D=0,w=p.accessibleNodes;D<w.length;D++)if((d=w[D])!==this.currentPanoIndex&&d!==i){var T=this.work.observers[d].position.clone().setY(0).sub(p.position.clone().setY(0));M.angleTo(T)<f?N.push(T):g.angleTo(T)<f?v.push(T):y.angleTo(T)<f&&m.push(T)}var x=(N.length>0?N:Ce(Ce([],v,!0),m,!0)).slice().sort((function(e,t){return e.angleTo(M)-t.angleTo(M)}))[0],E={};x&&x.angleTo(c)>A&&(E.longitude=Math.atan2(-x.x,-x.z)),this.emit("wantsMoveToPano",i,E,!0)}else this.panoCircleMeshes[i]&&(this.panoCircleMeshes[i].setDisabled(!1),this.panoCircleMeshes[i].setLoading(!0))}}}},r}(Li);const yn=function(e,t){var r=void 0!==e?e:void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{};var i,n=function(){return/Android/i.test(t.userAgent)||/iPhone|iPad|iPod/i.test(t.userAgent)},s=function(e,t){for(var r=0,i=e.length;r<i;r++)t[r]=e[r]},o=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},a=(i=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(i,n){i.exports=function(){var i,n,s,o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),u=function(){function e(e,t){var r=[],i=!0,n=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(i=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);i=!0);}catch(e){n=!0,s=e}finally{try{!i&&a.return&&a.return()}finally{if(n)throw s}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),c=.001,l=1,h=function(e,t){return"data:"+e+","+encodeURIComponent(t)},d=function(e,t,r){return e+(t-e)*r},p=function(){var e=/iPad|iPhone|iPod/.test(t.platform);return function(){return e}}(),f=function(){var e=-1!==t.userAgent.indexOf("Version")&&-1!==t.userAgent.indexOf("Android")&&-1!==t.userAgent.indexOf("Chrome");return function(){return e}}(),A=function(){var e=/^((?!chrome|android).)*safari/i.test(t.userAgent);return function(){return e}}(),M=function(){var e=-1!==t.userAgent.indexOf("Firefox")&&-1!==t.userAgent.indexOf("Android");return function(){return e}}(),g=(i=t.userAgent.match(/.*Chrome\/([0-9]+)/),n=i?parseInt(i[1],10):null,function(){return n}),y=function(){var e=!1;return e=p()&&A()&&-1!==t.userAgent.indexOf("13_4"),function(){return e}}(),v=function(){var e=!1;if(65===g()){var r=t.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(r){var i=r[1].split("."),n=u(i,4),s=(n[0],n[1],n[2]),o=n[3];e=3325===parseInt(s,10)&&parseInt(o,10)<148}}return function(){return e}}(),m=function(){var e=-1!==t.userAgent.indexOf("R7 Build");return function(){return e}}(),N=function(){var t=90==e.orientation||-90==e.orientation;return m()?!t:t},D=function(e){return!(isNaN(e)||e<=c||e>l)},w=function(){return Math.max(e.screen.width,e.screen.height)*e.devicePixelRatio},T=function(){return Math.min(e.screen.width,e.screen.height)*e.devicePixelRatio},x=function(e){if(f())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0},E=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},j=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},I=function(e,t,r,i){var n=e.createShader(e.VERTEX_SHADER);e.shaderSource(n,t),e.compileShader(n);var s=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(s,r),e.compileShader(s);var o=e.createProgram();for(var a in e.attachShader(o,n),e.attachShader(o,s),i)e.bindAttribLocation(o,i[a],a);return e.linkProgram(o),e.deleteShader(n),e.deleteShader(s),o},b=function(e,t){for(var r={},i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),n="",s=0;s<i;s++)r[n=e.getActiveUniform(t,s).name.replace("[0]","")]=e.getUniformLocation(t,n);return r},z=function(e,t,r,i,n,s,o){var a=1/(t-r),u=1/(i-n),c=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+r)*a,e[13]=(n+i)*u,e[14]=(o+s)*c,e[15]=1,e},O=function(){var r=!1;return function(e){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(r=!0)}(t.userAgent||t.vendor||e.opera),r},S=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},L=function(t){if(p()){var r=t.style.width,i=t.style.height;t.style.width=parseInt(r)+1+"px",t.style.height=parseInt(i)+"px",setTimeout((function(){t.style.width=r,t.style.height=i}),100)}e.canvas=t},C=function(){var e=Math.PI/180,t=.25*Math.PI;function r(r,i,n,s){var o=Math.tan(i?i.upDegrees*e:t),a=Math.tan(i?i.downDegrees*e:t),u=Math.tan(i?i.leftDegrees*e:t),c=Math.tan(i?i.rightDegrees*e:t),l=2/(u+c),h=2/(o+a);return r[0]=l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=h,r[6]=0,r[7]=0,r[8]=-(u-c)*l*.5,r[9]=(o-a)*h*.5,r[10]=s/(n-s),r[11]=-1,r[12]=0,r[13]=0,r[14]=s*n/(n-s),r[15]=0,r}function i(e,t,r){var i=t[0],n=t[1],s=t[2],o=t[3],a=i+i,u=n+n,c=s+s,l=i*a,h=i*u,d=i*c,p=n*u,f=n*c,A=s*c,M=o*a,g=o*u,y=o*c;return e[0]=1-(p+A),e[1]=h+y,e[2]=d-g,e[3]=0,e[4]=h-y,e[5]=1-(l+A),e[6]=f+M,e[7]=0,e[8]=d+g,e[9]=f-M,e[10]=1-(l+p),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function n(e,t,r){var i,n,s,o,a,u,c,l,h,d,p,f,A=r[0],M=r[1],g=r[2];return t===e?(e[12]=t[0]*A+t[4]*M+t[8]*g+t[12],e[13]=t[1]*A+t[5]*M+t[9]*g+t[13],e[14]=t[2]*A+t[6]*M+t[10]*g+t[14],e[15]=t[3]*A+t[7]*M+t[11]*g+t[15]):(i=t[0],n=t[1],s=t[2],o=t[3],a=t[4],u=t[5],c=t[6],l=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=i,e[1]=n,e[2]=s,e[3]=o,e[4]=a,e[5]=u,e[6]=c,e[7]=l,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=i*A+a*M+h*g+t[12],e[13]=n*A+u*M+d*g+t[13],e[14]=s*A+c*M+p*g+t[14],e[15]=o*A+l*M+f*g+t[15]),e}function s(e,t){var r=t[0],i=t[1],n=t[2],s=t[3],o=t[4],a=t[5],u=t[6],c=t[7],l=t[8],h=t[9],d=t[10],p=t[11],f=t[12],A=t[13],M=t[14],g=t[15],y=r*a-i*o,v=r*u-n*o,m=r*c-s*o,N=i*u-n*a,D=i*c-s*a,w=n*c-s*u,T=l*A-h*f,x=l*M-d*f,E=l*g-p*f,j=h*M-d*A,I=h*g-p*A,b=d*g-p*M,z=y*b-v*I+m*j+N*E-D*x+w*T;return z?(z=1/z,e[0]=(a*b-u*I+c*j)*z,e[1]=(n*I-i*b-s*j)*z,e[2]=(A*w-M*D+g*N)*z,e[3]=(d*D-h*w-p*N)*z,e[4]=(u*E-o*b-c*x)*z,e[5]=(r*b-n*E+s*x)*z,e[6]=(M*m-f*w-g*v)*z,e[7]=(l*w-d*m+p*v)*z,e[8]=(o*I-a*E+c*T)*z,e[9]=(i*E-r*I-s*T)*z,e[10]=(f*D-A*m+g*y)*z,e[11]=(h*m-l*D-p*y)*z,e[12]=(a*x-o*j-u*T)*z,e[13]=(r*j-i*x+n*T)*z,e[14]=(A*v-f*N-M*y)*z,e[15]=(l*N-h*v+d*y)*z,e):null}var o=new Float32Array([0,0,0,1]),a=new Float32Array([0,0,0]);function u(e,t,u,c,l,h){r(e,c||null,h.depthNear,h.depthFar),i(t,u.orientation||o,u.position||a),l&&n(t,t,l),s(t,t)}return function(e,t,r){return!(!e||!t||(e.pose=t,e.timestamp=t.timestamp,u(e.leftProjectionMatrix,e.leftViewMatrix,t,r._getFieldOfView("left"),r._getEyeOffset("left"),r),u(e.rightProjectionMatrix,e.rightViewMatrix,t,r._getFieldOfView("right"),r._getEyeOffset("right"),r),0))}}(),k=function(){var t=e.self!==e.top,r=P(document.referrer),i=P(e.location.href);return t&&r!==i},P=function(e){var t,r=e.indexOf("://");t=-1!==r?r+3:0;var i=e.indexOf("/",t);return-1===i&&(i=e.length),e.substring(0,i)},_=function(e){return e.w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(e.w)},B=(s={},function(e,t){void 0===s[e]&&(console.warn("webvr-polyfill: "+t),s[e]=!0)}),U=function(e,t){B(e,e+" has been deprecated. This may not work on native WebVR displays. "+(t?"Please use "+t+" instead.":""))};function R(e,t,r){if(t){for(var i=[],n=null,s=0;s<t.length;++s)switch(o=t[s]){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),i.push(null,null);break}n||(n=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(u),i.push(e.getParameter(o),null);break;case e.ACTIVE_TEXTURE:n=e.getParameter(e.ACTIVE_TEXTURE),i.push(null);break;default:i.push(e.getParameter(o))}for(r(e),s=0;s<t.length;++s){var o=t[s],a=i[s];switch(o){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,a);break;case e.COLOR_CLEAR_VALUE:e.clearColor(a[0],a[1],a[2],a[3]);break;case e.COLOR_WRITEMASK:e.colorMask(a[0],a[1],a[2],a[3]);break;case e.CURRENT_PROGRAM:e.useProgram(a);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,a);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,a);break;case e.TEXTURE_BINDING_2D:if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_2D,a);break;case e.TEXTURE_BINDING_CUBE_MAP:var u;if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_CUBE_MAP,a);break;case e.VIEWPORT:e.viewport(a[0],a[1],a[2],a[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:a?e.enable(o):e.disable(o);break;default:console.log("No GL restore behavior for 0x"+o.toString(16))}n&&e.activeTexture(n)}}else r(e)}var Q=R,Y=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),F=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function V(e,t,r,i){this.gl=e,this.cardboardUI=t,this.bufferScale=r,this.dirtySubmitFrameBindings=i,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,p()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=I(e,Y,F,this.attribs),this.uniforms=b(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}V.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},V.prototype.onResize=function(){var e=this.gl,t=this,r=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];Q(e,r,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)})),this.cardboardUI&&this.cardboardUI.onResize()},V.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,r=this.gl;p()||(t.width=w()*this.bufferScale,t.height=T()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(r){e.bufferWidth=r,e.realCanvasWidth.set.call(t,r),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(r){e.bufferHeight=r,e.realCanvasHeight.set.call(t,r),e.onResize()}})),this.lastBoundFramebuffer=r.getParameter(r.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(r.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,i){e.lastBoundFramebuffer=i||e.framebuffer,e.realBindFramebuffer.call(r,t,e.lastBoundFramebuffer)},this.cullFace=r.getParameter(r.CULL_FACE),this.depthTest=r.getParameter(r.DEPTH_TEST),this.blend=r.getParameter(r.BLEND),this.scissorTest=r.getParameter(r.SCISSOR_TEST),this.stencilTest=r.getParameter(r.STENCIL_TEST),r.enable=function(t){switch(t){case r.CULL_FACE:e.cullFace=!0;break;case r.DEPTH_TEST:e.depthTest=!0;break;case r.BLEND:e.blend=!0;break;case r.SCISSOR_TEST:e.scissorTest=!0;break;case r.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(r,t)},r.disable=function(t){switch(t){case r.CULL_FACE:e.cullFace=!1;break;case r.DEPTH_TEST:e.depthTest=!1;break;case r.BLEND:e.blend=!1;break;case r.SCISSOR_TEST:e.scissorTest=!1;break;case r.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(r,t)},this.colorMask=r.getParameter(r.COLOR_WRITEMASK),r.colorMask=function(t,i,n,s){e.colorMask[0]=t,e.colorMask[1]=i,e.colorMask[2]=n,e.colorMask[3]=s,e.realColorMask.call(r,t,i,n,s)},this.clearColor=r.getParameter(r.COLOR_CLEAR_VALUE),r.clearColor=function(t,i,n,s){e.clearColor[0]=t,e.clearColor[1]=i,e.clearColor[2]=n,e.clearColor[3]=s,e.realClearColor.call(r,t,i,n,s)},this.viewport=r.getParameter(r.VIEWPORT),r.viewport=function(t,i,n,s){e.viewport[0]=t,e.viewport[1]=i,e.viewport[2]=n,e.viewport[3]=s,e.realViewport.call(r,t,i,n,s)},this.isPatched=!0,L(t)}},V.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;p()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout((function(){L(t)}),1)}},V.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},V.prototype.submitFrame=function(){var e=this.gl,t=this,r=[];if(this.dirtySubmitFrameBindings||r.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),Q(e,r,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var r=0,i=0;t.instanceExt&&(r=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),i=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||p())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,r),0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,i))})),p()){var i=e.canvas;i.width==t.bufferWidth&&i.height==t.bufferHeight||(t.bufferWidth=i.width,t.bufferHeight=i.height,t.onResize())}},V.prototype.updateDeviceInfo=function(e){var t=this.gl,r=this,i=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];Q(t,i,(function(t){var i=r.computeMeshVertices_(r.meshWidth,r.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,r.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW),!r.indexCount){var n=r.computeMeshIndices_(r.meshWidth,r.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,n,t.STATIC_DRAW),r.indexCount=n.length}}))},V.prototype.computeMeshVertices_=function(e,t,r){for(var i=new Float32Array(2*e*t*5),n=r.getLeftEyeVisibleTanAngles(),s=r.getLeftEyeNoLensTanAngles(),o=r.getLeftEyeVisibleScreenRect(s),a=0,u=0;u<2;u++){for(var c=0;c<t;c++)for(var l=0;l<e;l++,a++){var h=l/(e-1),p=c/(t-1),f=h,A=p,M=d(n[0],n[2],h),g=d(n[3],n[1],p),y=Math.sqrt(M*M+g*g),v=r.distortion.distortInverse(y),m=g*v/y;h=(M*v/y-s[0])/(s[2]-s[0]),p=(m-s[3])/(s[1]-s[3]),h=2*(o.x+h*o.width-.5),p=2*(o.y+p*o.height-.5),i[5*a+0]=h,i[5*a+1]=p,i[5*a+2]=f,i[5*a+3]=A,i[5*a+4]=u}var N=n[2]-n[0];n[0]=-(N+n[0]),n[2]=N-n[2],N=s[2]-s[0],s[0]=-(N+s[0]),s[2]=N-s[2],o.x=1-(o.x+o.width)}return i},V.prototype.computeMeshIndices_=function(e,t){for(var r=new Uint16Array(2*(e-1)*(t-1)*6),i=e/2,n=t/2,s=0,o=0,a=0;a<2;a++)for(var u=0;u<t;u++)for(var c=0;c<e;c++,s++)0!=c&&0!=u&&(c<=i==u<=n?(r[o++]=s,r[o++]=s-e-1,r[o++]=s-e,r[o++]=s-e-1,r[o++]=s,r[o++]=s-1):(r[o++]=s-1,r[o++]=s-e,r[o++]=s,r[o++]=s-e,r[o++]=s-1,r[o++]=s-e-1));return r},V.prototype.getOwnPropertyDescriptor_=function(e,t){var r=Object.getOwnPropertyDescriptor(e,t);return void 0!==r.get&&void 0!==r.set||(r.configurable=!0,r.enumerable=!0,r.get=function(){return this.getAttribute(t)},r.set=function(e){this.setAttribute(t,e)}),r};var H=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {"," gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),G=["precision mediump float;","uniform vec4 color;","void main() {"," gl_FragColor = color;","}"].join("\n"),q=Math.PI/180,W=60,Z=12,X=20,K=1,J=.75,$=.3125,ee=4,te=28,re=1.5;function ie(e){this.gl=e,this.attribs={position:0},this.program=I(e,H,G,this.attribs),this.uniforms=b(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function ne(e){this.coefficients=e}ie.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},ie.prototype.listen=function(e,t){var r=this.gl.canvas;this.listener=function(i){var n=r.clientWidth/2,s=te*re;i.clientX>n-s&&i.clientX<n+s&&i.clientY>r.clientHeight-s?e(i):i.clientX<s&&i.clientY<s&&t(i)},r.addEventListener("click",this.listener,!1)},ie.prototype.onResize=function(){var t=this.gl,r=this,i=[t.ARRAY_BUFFER_BINDING];Q(t,i,(function(t){var i=[],n=t.drawingBufferWidth/2,s=Math.max(screen.width,screen.height)*e.devicePixelRatio,o=t.drawingBufferWidth/s*e.devicePixelRatio,a=ee*o/2,u=te*re*o,c=te*o/2,l=(te*re-te)*o;function h(e,t){var r=(90-e)*q,s=Math.cos(r),o=Math.sin(r);i.push($*s*c+n,$*o*c+c),i.push(t*s*c+n,t*o*c+c)}i.push(n-a,u),i.push(n-a,t.drawingBufferHeight),i.push(n+a,u),i.push(n+a,t.drawingBufferHeight),r.gearOffset=i.length/2;for(var d=0;d<=6;d++){var p=d*W;h(p,K),h(p+Z,K),h(p+X,J),h(p+(W-X),J),h(p+(W-Z),K)}function f(e,r){i.push(l+e,t.drawingBufferHeight-l-r)}r.gearVertexCount=i.length/2-r.gearOffset,r.arrowOffset=i.length/2;var A=a/Math.sin(45*q);f(0,c),f(c,0),f(c+A,A),f(A,c+A),f(A,c-A),f(0,c),f(c,2*c),f(c+A,2*c-A),f(A,c-A),f(0,c),f(A,c-a),f(te*o,c-a),f(A,c+a),f(te*o,c+a),r.arrowVertexCount=i.length/2-r.arrowOffset,t.bindBuffer(t.ARRAY_BUFFER,r.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(i),t.STATIC_DRAW)}))},ie.prototype.render=function(){var e=this.gl,t=this,r=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];Q(e,r,(function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()}))},ie.prototype.renderNoState=function(){var e=this.gl;e.useProgram(this.program),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.enableVertexAttribArray(this.attribs.position),e.vertexAttribPointer(this.attribs.position,2,e.FLOAT,!1,8,0),e.uniform4f(this.uniforms.color,1,1,1,1),z(this.projMat,0,e.drawingBufferWidth,0,e.drawingBufferHeight,.1,1024),e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},ne.prototype.distortInverse=function(e){for(var t=0,r=1,i=e-this.distort(t);Math.abs(r-t)>1e-4;){var n=e-this.distort(r),s=r-n*((r-t)/(n-i));t=r,r=s,i=n}return r},ne.prototype.distort=function(e){for(var t=e*e,r=0,i=0;i<this.coefficients.length;i++)r=t*(r+this.coefficients[i]);return(r+1)*e};var se=Math.PI/180,oe=180/Math.PI,ae=function(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0};ae.prototype={constructor:ae,set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,r=this.y,i=this.z,n=e.x,s=e.y,o=e.z,a=e.w,u=a*t+s*i-o*r,c=a*r+o*t-n*i,l=a*i+n*r-s*t,h=-n*t-s*r-o*i;return this.x=u*a+h*-n+c*-o-l*-s,this.y=c*a+h*-s+l*-n-u*-o,this.z=l*a+h*-o+u*-s-c*-n,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var r=e.x,i=e.y,n=e.z,s=t.x,o=t.y,a=t.z;return this.x=i*a-n*o,this.y=n*s-r*a,this.z=r*o-i*s,this}};var ue,ce,le,he=function(e,t,r,i){this.x=e||0,this.y=t||0,this.z=r||0,this.w=void 0!==i?i:1};function de(e){this.width=e.width||w(),this.height=e.height||T(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}he.prototype={constructor:he,set:function(e,t,r,i){return this.x=e,this.y=t,this.z=r,this.w=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,r){var i=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(r/2),o=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(r/2);return this.x=o*n*s+i*a*u,this.y=i*a*s-o*n*u,this.z=i*n*u+o*a*s,this.w=i*n*s-o*a*u,this},setFromEulerYXZ:function(e,t,r){var i=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(r/2),o=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(r/2);return this.x=o*n*s+i*a*u,this.y=i*a*s-o*n*u,this.z=i*n*u-o*a*s,this.w=i*n*s+o*a*u,this},setFromAxisAngle:function(e,t){var r=t/2,i=Math.sin(r);return this.x=e.x*i,this.y=e.y*i,this.z=e.z*i,this.w=Math.cos(r),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var r=e.x,i=e.y,n=e.z,s=e.w,o=t.x,a=t.y,u=t.z,c=t.w;return this.x=r*c+s*o+i*u-n*a,this.y=i*c+s*a+n*o-r*u,this.z=n*c+s*u+r*a-i*o,this.w=s*c-r*o-i*a-n*u,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return 0===e?(this.x=0,this.y=0,this.z=0,this.w=1):(e=1/e,this.x=this.x*e,this.y=this.y*e,this.z=this.z*e,this.w=this.w*e),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var r=this.x,i=this.y,n=this.z,s=this.w,o=s*e.w+r*e.x+i*e.y+n*e.z;if(o<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,o=-o):this.copy(e),o>=1)return this.w=s,this.x=r,this.y=i,this.z=n,this;var a=Math.acos(o),u=Math.sqrt(1-o*o);if(Math.abs(u)<.001)return this.w=.5*(s+this.w),this.x=.5*(r+this.x),this.y=.5*(i+this.y),this.z=.5*(n+this.z),this;var c=Math.sin((1-t)*a)/u,l=Math.sin(t*a)/u;return this.w=s*c+this.w*l,this.x=r*c+this.x*l,this.y=i*c+this.y*l,this.z=n*c+this.z*l,this},setFromUnitVectors:(le=1e-6,function(e,t){return void 0===ue&&(ue=new ae),(ce=e.dot(t)+1)<le?(ce=0,Math.abs(e.x)>Math.abs(e.z)?ue.set(-e.y,e.x,0):ue.set(0,-e.z,e.y)):ue.crossVectors(e,t),this.x=ue.x,this.y=ue.y,this.z=ue.z,this.w=ce,this.normalize(),this})};var pe=new de({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),fe=new de({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),Ae={CardboardV1:new ge({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new ge({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function Me(e,t){this.viewer=Ae.CardboardV2,this.updateDeviceParams(e),this.distortion=new ne(this.viewer.distortionCoefficients);for(var r=0;r<t.length;r++){var i=t[r];Ae[i.id]=new ge(i)}}function ge(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}Me.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},Me.prototype.getDevice=function(){return this.device},Me.prototype.setViewer=function(e){this.viewer=e,this.distortion=new ne(this.viewer.distortionCoefficients)},Me.prototype.determineDevice_=function(e){if(!e)return p()?(console.warn("Using fallback iOS device measurements."),fe):(console.warn("Using fallback Android device measurements."),pe);var t=.0254,r=t/e.xdpi,i=t/e.ydpi;return new de({widthMeters:r*w(),heightMeters:i*T(),bevelMeters:.001*e.bevelMm})},Me.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,r=this.distortion,i=e.screenLensDistance,n=(t.widthMeters-e.interLensDistance)/2,s=e.interLensDistance/2,o=e.baselineLensDistance-t.bevelMeters,a=t.heightMeters-o,u=oe*Math.atan(r.distort(n/i)),c=oe*Math.atan(r.distort(s/i)),l=oe*Math.atan(r.distort(o/i)),h=oe*Math.atan(r.distort(a/i));return{leftDegrees:Math.min(u,e.fov),rightDegrees:Math.min(c,e.fov),downDegrees:Math.min(l,e.fov),upDegrees:Math.min(h,e.fov)}},Me.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,r=this.distortion,i=Math.tan(-se*e.fov),n=Math.tan(se*e.fov),s=Math.tan(se*e.fov),o=Math.tan(-se*e.fov),a=t.widthMeters/4,u=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-u,l=e.interLensDistance/2-a,h=-c,d=e.screenLensDistance,p=r.distort((l-a)/d),f=r.distort((h+u)/d),A=r.distort((l+a)/d),M=r.distort((h-u)/d),g=new Float32Array(4);return g[0]=Math.max(i,p),g[1]=Math.min(n,f),g[2]=Math.min(s,A),g[3]=Math.max(o,M),g},Me.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,r=this.distortion,i=new Float32Array(4),n=r.distortInverse(Math.tan(-se*e.fov)),s=r.distortInverse(Math.tan(se*e.fov)),o=r.distortInverse(Math.tan(se*e.fov)),a=r.distortInverse(Math.tan(-se*e.fov)),u=t.widthMeters/4,c=t.heightMeters/2,l=e.baselineLensDistance-t.bevelMeters-c,h=e.interLensDistance/2-u,d=-l,p=e.screenLensDistance,f=(h-u)/p,A=(d+c)/p,M=(h+u)/p,g=(d-c)/p;return i[0]=Math.max(n,f),i[1]=Math.min(s,A),i[2]=Math.min(o,M),i[3]=Math.max(a,g),i},Me.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,r=this.device,i=t.screenLensDistance,n=(r.widthMeters-t.interLensDistance)/2,s=t.baselineLensDistance-r.bevelMeters,o=(e[0]*i+n)/r.widthMeters,a=(e[1]*i+s)/r.heightMeters,u=(e[2]*i+n)/r.widthMeters,c=(e[3]*i+s)/r.heightMeters;return{x:o,y:c,width:u-o,height:a-c}},Me.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},Me.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},Me.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:oe*Math.atan(e.outerDist),rightDegrees:oe*Math.atan(e.innerDist),downDegrees:oe*Math.atan(e.bottomDist),upDegrees:oe*Math.atan(e.topDist)}},Me.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,r=this.device,i=t.screenLensDistance,n=r.widthMeters/i,s=r.heightMeters/i,o=r.width/n,a=r.height/s,u=Math.round((e.eyePosX-e.outerDist)*o),c=Math.round((e.eyePosY-e.bottomDist)*a);return{x:u,y:c,width:Math.round((e.eyePosX+e.innerDist)*o)-u,height:Math.round((e.eyePosY+e.topDist)*a)-c}},Me.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,r=this.distortion,i=e.screenLensDistance,n=e.interLensDistance/2/i,s=t.widthMeters/i,o=t.heightMeters/i,a=s/2-n,u=(e.baselineLensDistance-t.bevelMeters)/i,c=e.fov,l=r.distortInverse(Math.tan(se*c)),h=Math.min(a,l),d=Math.min(n,l),p=Math.min(u,l);return{outerDist:h,innerDist:d,topDist:Math.min(o-u,l),bottomDist:p,eyePosX:a,eyePosY:u}},Me.Viewers=Ae;var ye={format:1,last_updated:"2019-11-09T17:36:14Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X00PD/*"},{ua:"ASUS_X00PD"}],dpi:245,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X008D/*"},{ua:"ASUS_X008D"}],dpi:282,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1001/*"},{ua:"ONE E1001"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1003/*"},{ua:"ONE E1003"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2001/*"},{ua:"ONE A2001"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2003/*"},{ua:"ONE A2003"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3000/*"},{ua:"ONEPLUS A3000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3003/*"},{ua:"ONEPLUS A3003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3010/*"},{ua:"ONEPLUS A3010"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6000/*"},{ua:"ONEPLUS A6000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6003/*"},{ua:"ONEPLUS A6003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6010/*"},{ua:"ONEPLUS A6010"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6013/*"},{ua:"ONEPLUS A6013"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G960F/*"},{ua:"SM-G960F"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9600/*"},{ua:"SM-G9600"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960T/*"},{ua:"SM-G960T"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960N/*"},{ua:"SM-G960N"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960U/*"},{ua:"SM-G960U"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9608/*"},{ua:"SM-G9608"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960FD/*"},{ua:"SM-G960FD"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960W/*"},{ua:"SM-G960W"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G965F/*"},{ua:"SM-G965F"}],dpi:529,bw:2,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/EML-L29/*"},{ua:"EML-L29"}],dpi:428,bw:3.45,ac:500},{type:"android",rules:[{mdmh:"Nokia/*/Nokia 7.1/*"},{ua:"Nokia 7.1"}],dpi:[432,431.9],bw:3,ac:500},{type:"ios",rules:[{res:[1242,2688]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G570M/*"},{ua:"SM-G570M"}],dpi:320,bw:3.684,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G970F/*"},{ua:"SM-G970F"}],dpi:438,bw:2.281,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G973F/*"},{ua:"SM-G973F"}],dpi:550,bw:2.002,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G975F/*"},{ua:"SM-G975F"}],dpi:522,bw:2.054,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G977F/*"},{ua:"SM-G977F"}],dpi:505,bw:2.334,ac:500},{type:"ios",rules:[{res:[828,1792]}],dpi:326,bw:5,ac:500}]};function ve(e,t){if(this.dpdb=ye,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var r=new XMLHttpRequest,i=this;r.open("GET",e,!0),r.addEventListener("load",(function(){i.loading=!1,r.status>=200&&r.status<=299?(i.dpdb=JSON.parse(r.response),i.recalculateDeviceParams_()):console.error("Error loading online DPDB!")})),r.send()}}function me(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function Ne(e,t){this.set(e,t)}function De(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new Ne,this.currentGyroMeasurement=new Ne,this.previousGyroMeasurement=new Ne,p()?this.filterQ=new he(-1,0,0,1):this.filterQ=new he(1,0,0,1),this.previousFilterQ=new he,this.previousFilterQ.copy(this.filterQ),this.accelQ=new he,this.isOrientationInitialized=!1,this.estimatedGravity=new ae,this.measuredGravity=new ae,this.gyroIntegralQ=new he}function we(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new he,this.previousTimestampS=null,this.deltaQ=new he,this.outQ=new he}function Te(t,r,i,n){this.yawOnly=i,this.accelerometer=new ae,this.gyroscope=new ae,this.filter=new De(t,n),this.posePredictor=new we(r,n),this.isFirefoxAndroid=M(),this.isIOS=p();var s=g();this.isDeviceMotionInRadians=!this.isIOS&&s&&s<66,this.isWithoutDeviceMotion=v()||y(),this.filterToWorldQ=new he,p()?this.filterToWorldQ.setFromAxisAngle(new ae(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new ae(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new he,this.worldToScreenQ=new he,this.originalPoseAdjustQ=new he,this.originalPoseAdjustQ.setFromAxisAngle(new ae(0,0,1),-e.orientation*Math.PI/180),this.setScreenTransform_(),N()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new he,this.orientationOut_=new Float32Array(4),this.start()}ve.prototype.getDeviceParams=function(){return this.deviceParams},ve.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},ve.prototype.calcDeviceParams_=function(){var r=this.dpdb;if(!r)return console.error("DPDB not available."),null;if(1!=r.format)return console.error("DPDB has unexpected format version."),null;if(!r.devices||!r.devices.length)return console.error("DPDB does not have a devices section."),null;var i=t.userAgent||t.vendor||e.opera,n=w(),s=T();if(!r.devices)return console.error("DPDB has no devices section."),null;for(var o=0;o<r.devices.length;o++){var a=r.devices[o];if(a.rules)if("ios"==a.type||"android"==a.type){if(p()==("ios"==a.type)){for(var u=!1,c=0;c<a.rules.length;c++){var l=a.rules[c];if(this.ruleMatches_(l,i,n,s)){u=!0;break}}if(u)return new me({xdpi:a.dpi[0]||a.dpi,ydpi:a.dpi[1]||a.dpi,bevelMm:a.bw})}}else console.warn("Device["+o+"] has invalid type.");else console.warn("Device["+o+"] has no rules section.")}return console.warn("No DPDB device match."),null},ve.prototype.ruleMatches_=function(e,t,r,i){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var n=e.res[0],s=e.res[1];if(Math.min(r,i)!=Math.min(n,s)||Math.max(r,i)!=Math.max(n,s))return!1}return!0},Ne.prototype.set=function(e,t){this.sample=e,this.timestampS=t},Ne.prototype.copy=function(e){this.set(e.sample,e.timestampS)},De.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},De.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var r=t-this.previousGyroMeasurement.timestampS;D(r)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},De.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var r=new he;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var i=new he;i.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),i.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",oe*_(i),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var n=new he;n.copy(this.filterQ),n.multiply(i),this.filterQ.slerp(n,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},De.prototype.getOrientation=function(){return this.filterQ},De.prototype.accelToQuaternion_=function(e){var t=new ae;t.copy(e),t.normalize();var r=new he;return r.setFromUnitVectors(new ae(0,0,-1),t),r.inverse(),r},De.prototype.gyroToQuaternionDelta_=function(e,t){var r=new he,i=new ae;return i.copy(e),i.normalize(),r.setFromAxisAngle(i,e.length()*t),r},we.prototype.getPrediction=function(e,t,r){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=r,e;var i=new ae;i.copy(t),i.normalize();var n=t.length();if(n<20*se)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(oe*n).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var s=n*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,s),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=r,this.outQ},Te.prototype.getPosition=function(){return null},Te.prototype.getOrientation=function(){var t=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ)return this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var t=(new he).setFromAxisAngle(new ae(0,0,-1),0),r=new he;return-90===e.orientation?r.setFromAxisAngle(new ae(0,1,0),Math.PI/-2):r.setFromAxisAngle(new ae(0,1,0),Math.PI/2),t.multiply(r)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((r=new he).setFromAxisAngle(new ae(1,0,0),-Math.PI/2),r),t=this._deviceOrientationQ,(i=new he).copy(t),i.multiply(this.deviceOrientationFilterToWorldQ),i.multiply(this.resetQ),i.multiply(this.worldToScreenQ),i.multiplyQuaternions(this.deviceOrientationFixQ,i),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_;var r,i,n=this.filter.getOrientation();return t=this.posePredictor.getPrediction(n,this.gyroscope,this.previousTimestampS),(i=new he).copy(this.filterToWorldQ),i.multiply(this.resetQ),i.multiply(t),i.multiply(this.worldToScreenQ),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_},Te.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),N()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},Te.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new he;var t=e.alpha,r=e.beta,i=e.gamma;t=(t||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(r,t,-i)},Te.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},Te.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,r=e.rotationRate,i=e.timeStamp/1e3,n=i-this.previousTimestampS;return n<0?(B("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=i)):n<=c||n>l?(B("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=i)):(this.accelerometer.set(-t.x,-t.y,-t.z),r&&(m()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,i)),this.filter.addAccelMeasurement(this.accelerometer,i),void(this.previousTimestampS=i))},Te.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},Te.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},Te.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),e.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new ae(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new ae(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},Te.prototype.start=function(){this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),p()&&k()&&e.addEventListener("message",this.onMessageCallback_),e.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?e.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):e.addEventListener("devicemotion",this.onDeviceMotionCallback_)},Te.prototype.stop=function(){e.removeEventListener("devicemotion",this.onDeviceMotionCallback_),e.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),e.removeEventListener("orientationchange",this.onOrientationChangeCallback_),e.removeEventListener("message",this.onMessageCallback_)};var xe=60,Ee=new ae(1,0,0),je=new ae(0,0,1),Ie=new he;Ie.setFromAxisAngle(Ee,-Math.PI/2),Ie.multiply((new he).setFromAxisAngle(je,Math.PI/2));var be=function(){function e(t){o(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new he,this._outQ=new he,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return a(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:xe,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(e){this.errors.push(e),"SecurityError"===e.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===e.name?this.useDeviceMotion():console.error(e)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new Te(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(Ie),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}(),ze="<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>";function Oe(){this.loadIcon_();var e=document.createElement("div");(s=e.style).position="fixed",s.top=0,s.right=0,s.bottom=0,s.left=0,s.backgroundColor="gray",s.fontFamily="sans-serif",s.zIndex=1e6;var t=document.createElement("img");t.src=this.icon,(s=t.style).marginLeft="25%",s.marginTop="25%",s.width="50%",e.appendChild(t);var r=document.createElement("div");(s=r.style).textAlign="center",s.fontSize="16px",s.lineHeight="24px",s.margin="24px 25%",s.width="50%",r.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(r);var i=document.createElement("div");(s=i.style).backgroundColor="#CFD8DC",s.position="fixed",s.bottom=0,s.width="100%",s.height="48px",s.padding="14px 24px",s.boxSizing="border-box",s.color="#656A6B",e.appendChild(i);var n=document.createElement("div");n.style.float="left",n.innerHTML="No Cardboard viewer?";var s,o=document.createElement("a");o.href="https://www.google.com/get/cardboard/get-cardboard/",o.innerHTML="get one",o.target="_blank",(s=o.style).float="right",s.fontWeight=600,s.textTransform="uppercase",s.borderLeft="1px solid gray",s.paddingLeft="24px",s.textDecoration="none",s.color="#656A6B",i.appendChild(n),i.appendChild(o),this.overlay=e,this.text=r,this.hide()}Oe.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img").style;N()?(t.width="20%",t.marginLeft="40%",t.marginTop="3%"):(t.width="50%",t.marginLeft="25%",t.marginTop="25%")},Oe.prototype.hide=function(){this.overlay.style.display="none"},Oe.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},Oe.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},Oe.prototype.update=function(){this.disableShowTemporarily(),!N()&&O()?this.show():this.hide()},Oe.prototype.loadIcon_=function(){this.icon=h("image/svg+xml",ze)};var Se="CardboardV1",Le="WEBVR_CARDBOARD_VIEWER",Ce="webvr-polyfill-viewer-selector";function ke(e){try{this.selectedKey=localStorage.getItem(Le)}catch(e){console.error("Failed to load viewer profile: %s",e)}this.selectedKey||(this.selectedKey=e||Se),this.dialog=this.createDialog_(Me.Viewers),this.root=null,this.onChangeCallbacks_=[]}function Pe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function _e(e,t){return e(t={exports:{}},t.exports),t.exports}ke.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},ke.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},ke.prototype.getCurrentViewer=function(){return Me.Viewers[this.selectedKey]},ke.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},ke.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},ke.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},ke.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&Me.Viewers[this.selectedKey]){this.fireOnChange_(Me.Viewers[this.selectedKey]);try{localStorage.setItem(Le,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},ke.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add(Ce),t.style.display="none";var r=document.createElement("div");(s=r.style).position="fixed",s.left=0,s.top=0,s.width="100%",s.height="100%",s.background="rgba(0, 0, 0, 0.3)",r.addEventListener("click",this.hide.bind(this));var i=280,n=document.createElement("div"),s=n.style;for(var o in s.boxSizing="border-box",s.position="fixed",s.top="24px",s.left="50%",s.marginLeft=-i/2+"px",s.width=i+"px",s.padding="24px",s.overflow="hidden",s.background="#fafafa",s.fontFamily="'Roboto', sans-serif",s.boxShadow="0px 5px 20px #666",n.appendChild(this.createH1_("Select your viewer")),e)n.appendChild(this.createChoice_(o,e[o].label));return n.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(r),t.appendChild(n),t},ke.prototype.createH1_=function(e){var t=document.createElement("h1"),r=t.style;return r.color="black",r.fontSize="20px",r.fontWeight="bold",r.marginTop=0,r.marginBottom="24px",t.innerHTML=e,t},ke.prototype.createChoice_=function(e,t){var r=document.createElement("div");r.style.marginTop="8px",r.style.color="black";var i=document.createElement("input");i.style.fontSize="30px",i.setAttribute("id",e),i.setAttribute("type","radio"),i.setAttribute("value",e),i.setAttribute("name","field");var n=document.createElement("label");return n.style.marginLeft="4px",n.setAttribute("for",e),n.innerHTML=t,r.appendChild(i),r.appendChild(n),r},ke.prototype.createButton_=function(e,t){var r=document.createElement("button");r.innerHTML=e;var i=r.style;return i.float="right",i.textTransform="uppercase",i.color="#1094f7",i.fontSize="14px",i.letterSpacing=0,i.border=0,i.background="none",i.marginTop="16px",r.addEventListener("click",t),r},void 0!==e||void 0!==r||"undefined"!=typeof self&&self;var Be=Pe(_e((function(r,i){!function(e,t){r.exports=t()}(0,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(r,i,n){var s=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}();function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=n(1),u=void 0!==t&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(t.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!e.MSStream,c=function(){function t(){o(this,t),u?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",a),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return s(t,[{key:"enable",value:function(){u?(this.disable(),this.noSleepTimer=e.setInterval((function(){e.location.href="/",e.setTimeout(e.stop,0)}),15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){u?this.noSleepTimer&&(e.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),t}();r.exports=c},function(e,t,r){e.exports="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+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])}))}))),Ue=1e3,Re=[0,0,.5,1],Qe=[.5,0,.5,1],Ye=e.requestAnimationFrame,Fe=e.cancelAnimationFrame;function Ve(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null}function He(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return U("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function Ge(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=Ue++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return U("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new He({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&O()&&(this.wakelock_=new Be)}Ge.prototype.getFrameData=function(e){return C(e,this._getPose(),this)},Ge.prototype.getPose=function(){return U("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},Ge.prototype.resetPose=function(){return U("VRDisplay.prototype.resetPose"),this._resetPose()},Ge.prototype.getImmediatePose=function(){return U("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},Ge.prototype.requestAnimationFrame=function(e){return Ye(e)},Ge.prototype.cancelAnimationFrame=function(e){return Fe(e)},Ge.prototype.wrapForFullscreen=function(e){if(p())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var r=this.fullscreenElement_.parentElement;r.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),r.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var i=this;function n(){if(i.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];i.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}return n(),this.fullscreenWrapper_},Ge.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},Ge.prototype.requestPresent=function(e){var t=this.isPresenting,r=this;return e instanceof Array||(U("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise((function(i,n){if(r.capabilities.canPresent)if(0==e.length||e.length>r.capabilities.maxLayers)n(new Error("Invalid number of layers."));else{var s=e[0];if(s.source){var o=s.leftBounds||Re,a=s.rightBounds||Qe;if(t){var u=r.layer_;u.source!==s.source&&(u.source=s.source);for(var c=0;c<4;c++)u.leftBounds[c]=o[c],u.rightBounds[c]=a[c];return r.wrapForFullscreen(r.layer_.source),r.updatePresent_(),void i()}if(r.layer_={predistorted:s.predistorted,source:s.source,leftBounds:o.slice(0),rightBounds:a.slice(0)},r.waitingForPresent_=!1,r.layer_&&r.layer_.source){var l=r.wrapForFullscreen(r.layer_.source),h=function(){var e=j();r.isPresenting=l===e,r.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch((function(e){console.error("screen.orientation.lock() failed due to",e.message)})),r.waitingForPresent_=!1,r.beginPresent_(),i()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),r.removeFullscreenWrapper(),r.disableWakeLock(),r.endPresent_(),r.removeFullscreenListeners_()),r.fireVRDisplayPresentChange_()},d=function(){r.waitingForPresent_&&(r.removeFullscreenWrapper(),r.removeFullscreenListeners_(),r.disableWakeLock(),r.waitingForPresent_=!1,r.isPresenting=!1,n(new Error("Unable to present.")))};r.addFullscreenListeners_(l,h,d),x(l)?(r.enableWakeLock(),r.waitingForPresent_=!0):(p()||f())&&(r.enableWakeLock(),r.isPresenting=!0,r.beginPresent_(),r.fireVRDisplayPresentChange_(),i())}r.waitingForPresent_||p()||(E(),n(new Error("Unable to present.")))}else i()}else n(new Error("VRDisplay is not capable of presenting."))}))},Ge.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise((function(r,i){e?(!E()&&p()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),f()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),r()):i(new Error("Was not presenting to VRDisplay."))}))},Ge.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},Ge.prototype.fireVRDisplayPresentChange_=function(){var t=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});e.dispatchEvent(t)},Ge.prototype.fireVRDisplayConnect_=function(){var t=new CustomEvent("vrdisplayconnect",{detail:{display:this}});e.dispatchEvent(t)},Ge.prototype.addFullscreenListeners_=function(e,t,r){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=r,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),r&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",r,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",r,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",r,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",r,!1))},Ge.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var r=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",r,!1),e.removeEventListener("webkitfullscreenerror",r,!1),document.removeEventListener("mozfullscreenerror",r,!1),e.removeEventListener("msfullscreenerror",r,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},Ge.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},Ge.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},Ge.prototype.beginPresent_=function(){},Ge.prototype.endPresent_=function(){},Ge.prototype.submitFrame=function(e){},Ge.prototype.getEyeParameters=function(e){return null};var qe={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},We={LEFT:"left",RIGHT:"right"};function Ze(t){var r=S({},qe);t=S(r,t||{}),Ge.call(this,{wakelock:t.MOBILE_WAKE_LOCK}),this.config=t,this.displayName="Cardboard VRDisplay",this.capabilities=new He({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new be(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new ve(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new Me(this.dpdb_.getDeviceParams(),t.ADDITIONAL_VIEWERS),this.viewerSelector_=new ke(t.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new Oe),p()&&e.addEventListener("resize",this.onResize_.bind(this))}return Ze.prototype=Object.create(Ge.prototype),Ze.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},Ze.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},Ze.prototype._getFieldOfView=function(e){var t;if(e==We.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=We.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},Ze.prototype._getEyeOffset=function(e){var t;if(e==We.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=We.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},Ze.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),r=this._getFieldOfView(e),i={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(i,"fieldOfView",{enumerable:!0,get:function(){return U("VRFieldOfView","VRFrameData's projection matrices"),r}}),i},Ze.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},Ze.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},Ze.prototype.beginPresent_=function(){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2")),t&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(t.canvas.width=w()*this.bufferScale_,t.canvas.height=T()*this.bufferScale_,this.cardboardUI_=new ie(t)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new ie(t)),this.distorter_=new V(t,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(N()&&O()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),e.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),e.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},Ze.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),e.removeEventListener("orientationchange",this.orientationHandler),e.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},Ze.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},Ze.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var r=t.canvas;r.width==this.lastWidth&&r.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=r.width,this.lastHeight=r.height,this.cardboardUI_.render()}},Ze.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},Ze.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var r=["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"];t.canvas.setAttribute("style",r.join("; ")+";"),L(t.canvas)}},Ze.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},Ze.prototype.fireVRDisplayDeviceParamsChange_=function(){var t=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});e.dispatchEvent(t)},Ze.VRFrameData=Ve,Ze.VRDisplay=Ge,Ze}()})))&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i,u={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",PROVIDE_MOBILE_VRDISPLAY:!0,MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1};function c(r){this.config=o(o({},u),r),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in t,this.native={},this.native.getVRDisplays=t.getVRDisplays,this.native.VRFrameData=e.VRFrameData,this.native.VRDisplay=e.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&n())&&(this.enable(),this.getVRDisplays().then((function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()})))}c.prototype.getPolyfillDisplays=function(){if(this._polyfillDisplaysPopulated)return this.polyfillDisplays;if(n()){var e=new a({ADDITIONAL_VIEWERS:this.config.ADDITIONAL_VIEWERS,DEFAULT_VIEWER:this.config.DEFAULT_VIEWER,MOBILE_WAKE_LOCK:this.config.MOBILE_WAKE_LOCK,DEBUG:this.config.DEBUG,DPDB_URL:this.config.DPDB_URL,CARDBOARD_UI_DISABLED:this.config.CARDBOARD_UI_DISABLED,K_FILTER:this.config.K_FILTER,PREDICTION_TIME_S:this.config.PREDICTION_TIME_S,ROTATE_INSTRUCTIONS_DISABLED:this.config.ROTATE_INSTRUCTIONS_DISABLED,YAW_ONLY:this.config.YAW_ONLY,BUFFER_SCALE:this.config.BUFFER_SCALE,DIRTY_SUBMIT_FRAME_BINDINGS:this.config.DIRTY_SUBMIT_FRAME_BINDINGS});this.polyfillDisplays.push(e)}return this._polyfillDisplaysPopulated=!0,this.polyfillDisplays},c.prototype.enable=function(){if(this.enabled=!0,this.hasNative&&this.native.VRFrameData){var r=this.native.VRFrameData,i=new this.native.VRFrameData,n=this.native.VRDisplay.prototype.getFrameData;e.VRDisplay.prototype.getFrameData=function(e){e instanceof r?n.call(this,e):(n.call(this,i),e.pose=i.pose,s(i.leftProjectionMatrix,e.leftProjectionMatrix),s(i.rightProjectionMatrix,e.rightProjectionMatrix),s(i.leftViewMatrix,e.leftViewMatrix),s(i.rightViewMatrix,e.rightViewMatrix))}}t.getVRDisplays=this.getVRDisplays.bind(this),e.VRDisplay=a.VRDisplay,e.VRFrameData=a.VRFrameData},c.prototype.getVRDisplays=function(){var e=this;return this.config,this.hasNative?this.native.getVRDisplays.call(t).then((function(t){return t.length>0?t:e.getPolyfillDisplays()})):Promise.resolve(this.getPolyfillDisplays())},c.version="0.10.12",c.VRFrameData=a.VRFrameData,c.VRDisplay=a.VRDisplay;var l=Object.freeze({default:c}),h=l&&c||l;return void 0!==r&&r.window&&(r.document||(r.document=r.window.document),r.navigator||(r.navigator=r.window.navigator)),h}("undefined"!=typeof window?window:{screen:{width:512,height:512}},"undefined"!=typeof navigator?navigator:{userAgent:"node"});function vn(t,r){var i,n,s,o,a=new e.Vector3,u=new e.Vector3,c=null;"VRFrameData"in window&&(c=new window.VRFrameData),"undefined"!=typeof navigator&&navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){n=e,e.length>0?i=e[0]:r&&r(new Error("HMD not available"))})).catch((function(){console.warn("THREE.VREffect: Unable to get VR Displays")})),this.isPresenting=!1,this.scale=1;var l=this,h=t.getSize(new e.Vector2),d=!1,p=t.getPixelRatio();this.getVRDisplay=function(){return i},this.setVRDisplay=function(e){i=e},this.getVRDisplays=function(){return console.warn("THREE.VREffect: getVRDisplays() is being deprecated."),n},this.setSize=function(r,n,s){if(h=new e.Vector2(r,n),d=s,l.isPresenting){var o=i.getEyeParameters("left");t.setPixelRatio(1),t.setSize(2*o.renderWidth,o.renderHeight,!1)}else t.setPixelRatio(p),t.setSize(r,n,s)};var f=t.domElement,A=[0,0,.5,1],M=[.5,0,.5,1];function g(){var r=l.isPresenting;if(l.isPresenting=void 0!==i&&i.isPresenting,l.isPresenting){var n=i.getEyeParameters("left"),s=n.renderWidth,o=n.renderHeight;r||(p=t.getPixelRatio(),h=t.getSize(new e.Vector2),t.setPixelRatio(1),t.setSize(2*s,o,!1))}else r&&(t.setPixelRatio(p),t.setSize(h.width,h.height,d))}window.addEventListener("vrdisplaypresentchange",g,!1),this.setFullScreen=function(e){return new Promise((function(t,r){void 0!==i?l.isPresenting!==e?e?(i.requestPresent([{source:f}]),t()):(i.exitPresent(),t()):t():r(new Error("No VR hardware found."))}))},this.requestPresent=function(){return this.setFullScreen(!0)},this.exitPresent=function(){return this.setFullScreen(!1)},this.requestAnimationFrame=function(e){return void 0!==i?i.requestAnimationFrame(e):window.requestAnimationFrame(e)},this.cancelAnimationFrame=function(e){void 0!==i?i.cancelAnimationFrame(e):window.cancelAnimationFrame(e)},this.submitFrame=function(){void 0!==i&&l.isPresenting&&i.submitFrame()},this.autoSubmitFrame=!0;var y=new e.PerspectiveCamera;y.layers.enable(1);var v=new e.PerspectiveCamera;function m(t,r,i,n){var s=Math.PI/180;return function(t,r,i,n){i=void 0===i?.01:i,n=void 0===n?1e4:n;var s=(r=void 0===r||r)?-1:1,o=new e.Matrix4,a=o.elements,u=function(e){var t=2/(e.leftTan+e.rightTan),r=2/(e.upTan+e.downTan);return{scale:[t,r],offset:[(e.leftTan-e.rightTan)*t*.5,(e.upTan-e.downTan)*r*.5]}}(t);return a[0]=u.scale[0],a[1]=0,a[2]=u.offset[0]*s,a[3]=0,a[4]=0,a[5]=u.scale[1],a[6]=-u.offset[1]*s,a[7]=0,a[8]=0,a[9]=0,a[10]=n/(i-n)*-s,a[11]=n*i/(i-n),a[12]=0,a[13]=0,a[14]=s,a[15]=0,o.transpose(),o}({upTan:Math.tan(t.upDegrees*s),downTan:Math.tan(t.downDegrees*s),leftTan:Math.tan(t.leftDegrees*s),rightTan:Math.tan(t.rightDegrees*s)},r,i,n)}v.layers.enable(2),this.render=function(r,n){var h,d;if(i&&l.isPresenting){var p=r.autoUpdate;p&&(r.updateMatrixWorld(),r.autoUpdate=!1);var f=i.getEyeParameters("left"),g=i.getEyeParameters("right");a.fromArray(f.offset),u.fromArray(g.offset),Array.isArray(r)&&(console.warn("THREE.VREffect.render() no longer supports arrays. Use object.layers instead."),r=r[0]);var N,D,w=t.getSize(new e.Vector2),T=i.getLayers();if(T.length){var x=T[0];N=null!==x.leftBounds&&4===(null===(h=x.leftBounds)||void 0===h?void 0:h.length)?x.leftBounds:A,D=null!==x.rightBounds&&4===(null===(d=x.rightBounds)||void 0===d?void 0:d.length)?x.rightBounds:M}else N=A,D=M;s={x:Math.round(w.width*N[0]),y:Math.round(w.height*N[1]),width:Math.round(w.width*N[2]),height:Math.round(w.height*N[3])},o={x:Math.round(w.width*D[0]),y:Math.round(w.height*D[1]),width:Math.round(w.width*D[2]),height:Math.round(w.height*D[3])},t.setScissorTest(!0),t.autoClear&&t.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(y.position,y.quaternion,y.scale),n.matrixWorld.decompose(v.position,v.quaternion,v.scale);var E=this.scale;return y.translateOnAxis(a,E),v.translateOnAxis(u,E),i.getFrameData&&c?(i.depthNear=n.near,i.depthFar=n.far,i.getFrameData(c),y.projectionMatrix.elements=[].slice.call(c.leftProjectionMatrix),v.projectionMatrix.elements=[].slice.call(c.rightProjectionMatrix)):(y.projectionMatrix=m(f.fieldOfView,!0,n.near,n.far),v.projectionMatrix=m(g.fieldOfView,!0,n.near,n.far)),t.setViewport(s.x,s.y,s.width,s.height),t.setScissor(s.x,s.y,s.width,s.height),t.render(r,y),t.setViewport(o.x,o.y,o.width,o.height),t.setScissor(o.x,o.y,o.width,o.height),t.render(r,v),t.setViewport(0,0,w.width,w.height),t.setScissorTest(!1),p&&(r.autoUpdate=!0),void(l.autoSubmitFrame&&l.submitFrame())}t.render(r,n)},this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",g,!1)}}var mn=8900346,Nn=new e.SphereBufferGeometry(.1,32,32);function Dn(t,r){Array.isArray(t)?t.forEach((function(t){t instanceof e.MeshBasicMaterial&&t.setValues({color:r})})):t instanceof e.MeshBasicMaterial&&t.setValues({color:r})}var wn=function(t){function r(){var r=t.call(this)||this,i=new e.MeshBasicMaterial({color:mn,opacity:.5,transparent:!0});return r.mesh=new e.Mesh(Nn,i),r.active=!1,r.current=!1,r.add(r.mesh),r}return Se(r,t),r.prototype.isActive=function(){return this.active},r.prototype.isCurrent=function(){return this.current},r.prototype.setActive=function(){!0!==this.active&&(this.active=!0,Dn(this.mesh.material,16776960))},r.prototype.setCurrent=function(){!0!==this.current&&(this.current=!0,Dn(this.mesh.material,65280))},r.prototype.reset=function(){!1===this.current&&!1===this.active||(this.active=!1,this.current=!1,Dn(this.mesh.material,mn))},r.prototype.dispose=function(){this.remove(this.mesh),Array.isArray(this.mesh.material)?this.mesh.material.forEach((function(e){return e.dispose()})):this.mesh.material.dispose()},r}(e.Object3D),Tn=null,xn=[{zh:"1. 进入: 将手机横屏放入VR眼镜中",en:"1. Enter: Put your phone<br/> horizontally into the VR glasses",ja:"1.入力:電話をVRメガネに水平に置きます"},{zh:"2. 前进: 视角中心对准蓝点, 直至变绿",en:"2. Forward: align the center of the viewing<br/> angle with the blue dot, until it turns green",ja:"2.前方:緑色に変わるまで、<br/>視野角の中心を青い点に合わせます"},{zh:"3. 退出: 将手机竖屏再触碰屏幕",en:"3. Exit: Put the phone in portrait<br/> orientation and then touch the screen",ja:"3.終了:電話を縦向きにしてから<br/>画面にタッチします"}],En=function(t){function r(e){var i=this;Re(Tn)&&(Tn=new yn(e.webvrPolyfillConfig||{}));var n=r.parseArgs(e);i=t.call(this,n)||this;var s=n.element,o=n.renderer,a=n.panoIndex,u=void 0===a?0:a;i.effect=new vn(o);var c=s.offsetWidth,l=s.offsetHeight;i.element=s,i.effect.setSize(c,l),i.effect.isPresenting=!0,i.panoSphereMeshes=i.work.observers.map((function(e,t){var r=new wn;return r.name="panoSphereMesh_"+t,r.position.copy(e.position),Object.assign(r,{panoIndex:t}),i.helper.add(r),r}));var h=i.work.observers[u].visibleNodes;h=h.filter((function(e){return i.work.observers[e].active}));var d=i.panoSphereMeshes.filter((function(e){return e.panoIndex===u}))[0];return i.panoSphereMeshes.forEach((function(e){if(e.visible=h.indexOf(e.panoIndex)>=0,d){var t=d.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),i.intersectMesh.parent&&i.intersectMesh.parent.remove(i.intersectMesh),i.initHelper(s),i}return Se(r,t),r.parseArgs=function(e){var r=Le(Le({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,r)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this.panoSphereMeshes&&(this.panoSphereMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoSphereMeshes.length=0),this.destroyHelper()},r.prototype.initHelper=function(e){for(var t="five_webvr_helper_"+Fe(),r=1,i=document.getElementsByTagName("meta"),n=0;n<i.length;n++){var s=i[n];if("viewport"===s.getAttribute("name")){var o=(s.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(r=Number(o[1])),isNaN(r)&&(r=1)}}var a=function(e){return Math.floor(e*r)+"px"},u=document.createElement("style"),c="\n ."+t+"{\n font-family:sans-serif;\n background:#394043;color:#ffffff;\n position:absolute;display:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n }\n ."+t+" img{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,-100%);\n -moz-transform:translate(-50%,-100%);\n transform:translate(-50%,-100%);\n pointer-events:none;\n width:"+a(132)+";\n height:"+a(162)+";\n }\n ."+t+" ol{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,0);\n -moz-transform:translate(-50%,0);\n transform:translate(-50%,0);\n pointer-events:none;\n margin-top:"+a(38)+";\n font-size:"+a(16)+";\n line-height:"+a(30)+";\n }\n ."+t+" li{\n list-style-type:none;\n white-space:nowrap;\n position:relative;\n padding-left:"+a(14)+";\n margin-bottom:"+a(12)+";\n }\n @media screen and (orientation: portrait){\n ."+t+"{display: block!important}\n }\n ";u.setAttribute("type","text/css"),"styleSheet"in u?u.styleSheet.cssText=c:u.appendChild(document.createTextNode(c));var l=this.helperElement=document.createElement("div");l.className=t,l.innerHTML='\n <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTMycHgiIGhlaWdodD0iMTYycHgiIHZpZXdCb3g9IjAgMCAxMzIgMTYyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4xICg0NDQ2MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+R3JvdXA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjY1Ljk4NTM0MjMgOTMuMTg5NjU1MiAwIDkzLjE4OTY1NTIgMCAwLjI0NzE1NTE3MiAxMzEuOTcwNjg1IDAuMjQ3MTU1MTcyIDEzMS45NzA2ODUgOTMuMTg5NjU1MiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWKoOi9vemhtS1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTE4LjAwMDAwMCwgLTE4NC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTguMDAwMDAwLCAxODQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iUGFnZS0xIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaXBob25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNS4wMDAwMDAsIDAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4yMDIzNzg3LDMyLjI2OTE1MzIgQzYyLjIwODU3NTQsMzQuNDI4MDQyOSA2MC42ODkzNDU5LDM3LjA2MDgzNTEgNTguODA3NjA4MiwzOC4xNDI4NjEgTDU1Ljg3MDM2MjMsMzkuODQwMjM3NyBMNTUuMTc5NDI3OSwzOC42Mzc0MTMgTDU1LjEzNTAxOCwyMi4xNTMwMzY0IEw1Ni4zMTM0Mjc5LDIyLjE0Njg0MTYgQzU2LjMxMzQyNzksMjMuNDk1MjQ0MiA1Ny4yNjk3ODg1LDI0LjAzOTM1NDUgNTguNDQ3MTY1NiwyMy4zNTU4NjEgQzU5LjYxODM0NTksMjIuNjc4NTYyMyA2MC41NjIzMTMxLDIxLjAzOTAwMzkgNjAuNTYyMzEzMSwxOS42OTY3OTYxIEw2Mi4xNjQxNjU2LDE5LjY5MDYwMTMgTDYyLjIwMjM3ODcsMzIuMjY5MTUzMiBaIiBpZD0iRmlsbC0xIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xMjAxNjg5LDUuMjYzNjIyNzMgTDYyLjE2MzU0NTksMTkuNjkxMzI0IEw2MC41NjI3MjYyLDE5LjY5NjQ4NjQgQzYwLjU1NTQ5NjcsMTguMzQxODg5IDU5LjYwNTMzMjgsMTcuNzk3Nzc4NiA1OC40Mjc5NTU3LDE4LjQ3NTA3NzMgQzU3LjI1Njc3NTQsMTkuMTUyMzc2IDU2LjMwNjYxMTUsMjAuNzk4MTI5MiA1Ni4zMTI4MDgyLDIyLjE0NzU2NDMgTDU1LjEzNTQzMTEsMjIuMTUyNzI2NiBMNTUuMDkxMDIxMyw3LjAxMDU1Nzc5IEw1NC4zOTQ5MjMsNS44MDc3MzMxMiBMNTguNzA2ODA4MiwzLjMxOTQ4NjM2IEM2MC41ODc1MTMxLDIuMjMxMjY1NTggNjIuMTIwMTY4OSwzLjEwNDczMzEyIDYyLjEyMDE2ODksNS4yNjM2MjI3MyIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuMTEyNjM3NywxOS45NTYxNTE5IEM2MC4xMTI2Mzc3LDIxLjAxMzM5ODcgNTkuMzY0OSwyMi4zMTEyMTA0IDU4LjQ0MDU1NTcsMjIuODQyOTMxMiBDNTcuNTE2MjExNSwyMy4zNzU2ODQ0IDU2Ljc2MjI3NywyMi45NDUxNDU1IDU2Ljc2MjI3NywyMS44ODY4NjYyIEM1Ni43NTYwODAzLDIwLjgyMzQyNDcgNTcuNTAzODE4LDE5LjUyNTYxMyA1OC40MzQzNTksMTguOTkzODkyMiBDNTkuMzUyNTA2NiwxOC40NjIxNzE0IDYwLjEwNjQ0MSwxOC44OTI3MTA0IDYwLjExMjYzNzcsMTkuOTU2MTUxOSIgaWQ9IkZpbGwtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wMTA4NTkwMiw1My4yOTE1MzQ0IEw4Ljk5MTIzNjA3LDQ1LjYxOTI2ODIgQzguOTkxMjM2MDcsNDUuNDc0NzIyNyA4Ljg5MDAyMjk1LDQ1LjQxNjkwNDUgOC43NjQwMjI5NSw0NS40ODYwNzk5IEM4LjYzNjk5MDE2LDQ1LjU2MzUxNDkgOC41NDE5NzM3Nyw0NS43MzM4NzIxIDguNTQxOTczNzcsNDUuODc4NDE3NSBMOC41NjA1NjM5Myw1My41NTE3MTYyIEM4LjU2MDU2MzkzLDUzLjY5MTA5OTQgOC42NjI4MDk4NCw1My43NDY4NTI2IDguNzgyNjEzMTEsNTMuNjc3Njc3MyBDOC45MDk2NDU5LDUzLjYwMjMwNzEgOS4wMTA4NTkwMiw1My40MzE5NSA5LjAxMDg1OTAyLDUzLjI5MTUzNDQgTDkuMDEwODU5MDIsNTMuMjkxNTM0NCBaIE01NS4xNzk1MzExLDM4LjYzNzcyMjcgTDU1Ljg3MDQ2NTYsMzkuODQwNTQ3NCBMOS4xODc0NjU1Nyw2Ni43ODE3NTUyIEM3LjMwNzc5MzQ0LDY3Ljg3MTAwODQgNS43NzUxMzc3LDY2Ljk5NjUwODQgNS43NzUxMzc3LDY0LjgzODY1MTMgTDUuNjkyNTE0NzUsMzcuODMyMzk4MSBDNS42ODYzMTgwMywzNS42NzU1NzM0IDcuMjA1NTQ3NTQsMzMuMDQxNzQ4NyA5LjA4NzI4NTI1LDMxLjk1ODY5MDMgTDU0LjM5NDYxMzEsNS44MDgzNTI2IEw1NS4wOTA3MTE1LDcuMDExMTc3MjcgTDExLjg5ODUzMTEsMzEuOTM5MDczNCBMMTEuOTg3MzUwOCw2My41NjU2MTg4IEw1NS4xNzk1MzExLDM4LjYzNzcyMjcgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IEM1NC44NjYyODY5LDAuMDAwNTE2MjMzNzY2IDU0LjM0Njc5NTEsMC4xNTAyMjQwMjYgNTMuNzk4Mzg1MiwwLjQ2NzE5MTU1OCBMNC4xNzkxNzIxMywyOS4xMDU3NzYgQzIuMjk5NSwzMC4xOTA4OTk0IDAuNzgwMjcwNDkyLDMyLjgyMTYyNjYgMC43ODU0MzQ0MjYsMzQuOTgxNTQ4NyBMMC44NjI4OTM0NDMsNjEuOTg3ODAxOSBDMC44NjU5OTE4MDMsNjMuMDYwNTM1NyAxLjI0Mzk5MTgsNjMuODE1MjY5NSAxLjg1NTQwMTY0LDY0LjE2OTQwNTggTDYuNzY0MjM3Nyw2Ny4wMjIxMTM2IEM2LjE1Mzg2MDY2LDY2LjY2Njk0NDggNS43NzQ4Mjc4Nyw2NS45MTIyMTEgNS43NzE3Mjk1MSw2NC44Mzk0NzczIEw1LjY5NTMwMzI4LDM3LjgzMzIyNCBDNS42ODkxMDY1NiwzNS42NzQzMzQ0IDcuMjA4MzM2MDcsMzMuMDQyNTc0NyA5LjA4ODAwODIsMzEuOTU3NDUxMyBMNTguNzA3MjIxMywzLjMxODg2Njg4IEM1OS4yNTY2NjM5LDMuMDAxODk5MzUgNTkuNzc1MTIzLDIuODUyMTkxNTYgNjAuMjM0NzEzMSwyLjg1MjE5MTU2IEM2MC41NjgzMDMzLDIuODUyMTkxNTYgNjAuODY5ODc3LDIuOTMwNjU5MDkgNjEuMTMwMTM5MywzLjA4MTM5OTM1IEw1Ni4yMjAyNzA1LDAuMjMwNzU2NDk0IEM1NS45NjEwNDEsMC4wNzg5ODM3NjYyIDU1LjY1ODQzNDQsMC4wMDA1MTYyMzM3NjYgNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IE01NS4zMjU4NzcsMC42MzM0MTg4MzEgQzU1LjU0Mzc5NTEsMC42MzM0MTg4MzEgNTUuNzM3OTU5LDAuNjgxOTQ0ODA1IDU1LjkwMjE3MjEsMC43NzY5MzE4MTggTDU4Ljg5NjIyMTMsMi41MTY2Mzk2MSBDNTguNzI4OTA5OCwyLjU4Nzg3OTg3IDU4LjU2MDU2NTYsMi42NzM1NzQ2OCA1OC4zOTExODg1LDIuNzcxNjU5MDkgTDguNzcxOTc1NDEsMzEuNDEwMjQzNSBDNi42ODQ3MTMxMSwzMi42MTQxMDA2IDUuMDU0OTc1NDEsMzUuNDM2ODY2OSA1LjA2MjIwNDkyLDM3LjgzNTI4OSBMNS4xMzg2MzExNSw2NC44NDE1NDIyIEM1LjEzODYzMTE1LDY1LjAyMTE5MTYgNS4xNDg5NTkwMiw2NS4xOTU2Nzg2IDUuMTY3NTQ5MTgsNjUuMzYyOTM4MyBMMi4xNzM1LDYzLjYyMzIzMDUgQzEuNzM4Njk2NzIsNjMuMzcwMjc2IDEuNDk4MDU3MzgsNjIuNzg3OTY0MyAxLjQ5NTk5MTgsNjEuOTg1NzM3IEwxLjQxOTU2NTU3LDM0Ljk3OTQ4MzggQzEuNDEzMzY4ODUsMzMuMDU5MDk0MiAyLjgyMzEyMjk1LDMwLjYxOTM3MzQgNC40OTUyMDQ5MiwyOS42NTQwMTYyIEw1NC4xMTU0NTA4LDEuMDE0Mzk5MzUgQzU0LjU0ODE4ODUsMC43NjU1NzQ2NzUgNTQuOTY2NDY3MiwwLjYzMzQxODgzMSA1NS4zMjU4NzcsMC42MzM0MTg4MzEiIGlkPSJGaWxsLTM1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA4ODUyNDU5LDMyLjI3NDIxMjMgQzkuMDMzNzg2ODksMzIuMjc0MjEyMyA4Ljk4MDA4MTk3LDMyLjI1OTc1NzggOC45Mjk0NzU0MSwzMi4yMzE4ODEyIEw0LjM4OTM0NDI2LDI5LjU5MzkyNjYgQzQuMjM3NTI0NTksMjkuNTA2MTY2OSA0LjE4NTg4NTI1LDI5LjMxMjA2MyA0LjI3MzY3MjEzLDI5LjE2MTMyMjcgQzQuMzYyNDkxOCwyOS4wMDk1NSA0LjU1NjY1NTc0LDI4Ljk1OTk5MTYgNC43MDc0NDI2MiwyOS4wNDY3MTg4IEw5LjI0NzU3Mzc3LDMxLjY4NDY3MzQgQzkuMzk4MzYwNjYsMzEuNzcyNDMzMSA5LjQ1LDMxLjk2NTUwNDUgOS4zNjIyMTMxMSwzMi4xMTcyNzczIEM5LjMwMzM0NDI2LDMyLjIxNzQyNjYgOS4xOTY5NjcyMSwzMi4yNzQyMTIzIDkuMDg4NTI0NTksMzIuMjc0MjEyMyIgaWQ9IkZpbGwtMzciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTU4LjcwNzYzNDQsMy42MzUzMTgxOCBDNTguNjUyODk2NywzLjYzNTMxODE4IDU4LjU5OTE5MTgsMy42MjE4OTYxIDU4LjU0ODU4NTIsMy41OTI5ODcwMSBMNTMuOTY5MjA4MiwwLjkzMjMxODE4MiBDNTMuODE4NDIxMywwLjg0NDU1ODQ0MiA1My43NjY3ODIsMC42NTA0NTQ1NDUgNTMuODU0NTY4OSwwLjQ5OTcxNDI4NiBDNTMuOTQyMzU1NywwLjM0NjkwOTA5MSA1NC4xMzY1MTk3LDAuMjk4MzgzMTE3IDU0LjI4NzMwNjYsMC4zODUxMTAzOSBMNTguODY2NjgzNiwzLjA0NTc3OTIyIEM1OS4wMTc0NzA1LDMuMTMzNTM4OTYgNTkuMDY5MTA5OCwzLjMyNjYxMDM5IDU4Ljk4MTMyMywzLjQ3ODM4MzEyIEM1OC45MjI0NTQxLDMuNTc5NTY0OTQgNTguODE2MDc3LDMuNjM1MzE4MTggNTguNzA3NjM0NCwzLjYzNTMxODE4IiBpZD0iRmlsbC0zOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy4zMjA5MjYyMyw2My4zMzk5MjE0IEMyLjc5NjI3MDQ5LDYzLjMzOTkyMTQgMi4zNzA3NjIzLDYyLjkxNTU3NzMgMi4zNzA3NjIzLDYyLjM5MDA1MTMgTDIuMzcwNzYyMyw1OC4xMzAwOTAzIEMyLjM3MDc2MjMsNTcuNjA0NTY0MyAyLjc5NjI3MDQ5LDU3LjE4MDIyMDEgMy4zMjA5MjYyMyw1Ny4xODAyMjAxIEMzLjg0NTU4MTk3LDU3LjE4MDIyMDEgNC4yNzAwNTczOCw1Ny42MDQ1NjQzIDQuMjcwMDU3MzgsNTguMTMwMDkwMyBMNC4yNzAwNTczOCw2Mi4zOTAwNTEzIEM0LjI3MDA1NzM4LDYyLjkxNTU3NzMgMy44NDU1ODE5Nyw2My4zMzk5MjE0IDMuMzIwOTI2MjMsNjMuMzM5OTIxNCIgaWQ9IkZpbGwtNDEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNDYiPjwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBDODAuMzMyNzcwNiw1MC4yNzIxNzI0IDgxLjQ3MTM3MTgsNDguNjk5MjkzMSA4Mi43NjcwNzczLDQ3Ljk1MDUzNDUgQzgzLjM3MDM5MDIsNDcuNjAyMDg2MiA4My45NDIxMjAyLDQ3LjQ3OTcyNDEgODQuMzM4OTMwMSw0Ny42MTUwNTE3IEM4NC42MTI2NDc5LDQ3LjcwNzQzMSA4NC44MTgzNDExLDQ3LjkyNjIyNDEgODQuOTY3MzQ3Miw0OC4yODQzOTY2IEw4OC41NTQwMjIxLDU2LjkxOTQzMSBDODguNTYzNzM5OSw1Ni45NDEzMTAzIDg4LjU3NjY5NjksNTYuOTYwNzU4NiA4OC41ODcyMjQ1LDU2Ljk4MTAxNzIgQzg4LjU5Nzc1MjEsNTcuMDAwNDY1NSA4OC42MDU4NTAzLDU3LjAxOTkxMzggODguNjE3OTk3NSw1Ny4wMzg1NTE3IEM4OC42MzUwMDM3LDU3LjA2NDQ4MjggODguNjU1MjQ5MSw1Ny4wODcxNzI0IDg4LjY3NDY4NDcsNTcuMTA5ODYyMSBDODguNjg1MjEyMyw1Ny4xMjM2Mzc5IDg4LjY5NDkzMDEsNTcuMTM4MjI0MSA4OC43MDYyNjc1LDU3LjE0OTU2OSBDODguNzMyMTgxNiw1Ny4xNzYzMTAzIDg4Ljc2MDUyNTIsNTcuMTk5ODEwMyA4OC43ODk2Nzg1LDU3LjIyMTY4OTcgQzg4Ljc5Nzc3NjcsNTcuMjI4MTcyNCA4OC44MDUwNjUsNTcuMjM1NDY1NSA4OC44MTMxNjMyLDU3LjI0MTk0ODMgQzg5LjAwNzUxOSw1Ny4zNzgwODYyIDg5LjI2MjYxMSw1Ny40MjEwMzQ1IDg5LjQ5OTg4NzEsNTcuMzMyNzA2OSBMODkuODMxMTAxOCw1Ny4yMDc5MTM4IEw5MC4wNzQ4NTY0LDU3LjExODc3NTkgQzkwLjIxMDkwNTUsNTcuMDY4NTM0NSA5MC4zNDc3NjQ0LDU3LjAxODI5MzEgOTAuNDg1NDMzMSw1Ni45Njk2NzI0IEM5MC43ODY2ODQ3LDU2Ljg2MTg5NjYgOTEuMDkwMzY1Niw1Ni43NTk3OTMxIDkxLjM5NDA0NjYsNTYuNjU3Njg5NyBMOTIuMzY1MDE2LDU2LjM0MTY1NTIgQzkyLjgwMjMxNjYsNTYuMjAzMDg2MiA5My4yNDA0MjcsNTYuMDY4NTY5IDkzLjY4MjU4NjUsNTUuOTQwNTM0NSBDOTMuODUxMDI4Miw1NS44OTE5MTM4IDk0LjAxOTQ2OTksNTUuODQ0OTEzOCA5NC4xODc5MTE3LDU1Ljc5NjI5MzEgTDk0LjI3OTQyMDksNTUuNzcxMTcyNCBDOTQuNjg0MzI4OCw1NS42NTc3MjQxIDk1LjA5MDA0NjYsNTUuNTQ5OTQ4MyA5NS40OTczODQsNTUuNDQ2MjI0MSBMOTUuNjA2NzA5Miw1NS40MTcwNTE3IEM5NS43NjMwMDM3LDU1LjM3NjUzNDUgOTUuOTIwMTA4LDU1LjMzNjAxNzIgOTYuMDc3MjEyMyw1NS4yOTc5MzEgQzk2LjU2NjM0MTEsNTUuMTc3MTg5NyA5Ny4wNTU0Njk5LDU1LjA2Mzc0MTQgOTcuNTQ2MjE4NCw1NC45NTUxNTUyIEw5Ny44NTM5NDg1LDU0Ljg4NTQ2NTUgQzk4LjQ0NDMwNDMsNTQuNzU5MDUxNyA5OS4wMzcwODk2LDU0LjY0MjM2MjEgOTkuNjI3NDQ1NCw1NC41MzM3NzU5IEwxMDAuMDIxMDE2LDU0LjQ2NjUxNzIgQzEwMC42MTU0MjEsNTQuMzYxMTcyNCAxMDEuMjA5MDE2LDU0LjI2NjM2MjEgMTAxLjgwNDIzMSw1NC4xNzk2NTUyIEwxMDIuMjY1MDE2LDU0LjExMjM5NjYgQzEwMi45NjA2NDgsNTQuMDE2Nzc1OSAxMDMuNjQ3MzcyLDUzLjkzNDEyMDcgMTA0LjMwNTc1Miw1My44NjYwNTE3IEwxMDQuODM2MTgyLDUzLjgxNzQzMSBDMTA1LjIyNjUxMyw1My43ODE3NzU5IDEwNS42MTUyMjUsNTMuNzQ3NzQxNCAxMDYuMDA0NzQ2LDUzLjcyMDE4OTcgQzEwNi4yMTQ0ODgsNTMuNzA0NzkzMSAxMDYuNDIxODAxLDUzLjY5MjYzNzkgMTA2LjYzMDczNCw1My42Nzk2NzI0IEMxMDcuMDAwMDEsNTMuNjU3NzkzMSAxMDcuMzY2ODU2LDUzLjYzODM0NDggMTA3LjczNTMyMyw1My42MjM3NTg2IEMxMDcuOTUyMzUzLDUzLjYxNDg0NDggMTA4LjE2OTM4NCw1My42MDUxMjA3IDEwOC4zODU2MDUsNTMuNTk4NjM3OSBDMTA4LjY0Nzk4NSw1My41OTIxNTUyIDEwOC45MTAzNjYsNTMuNTg3MjkzMSAxMDkuMTczNTU2LDUzLjU4NDA1MTcgQzEwOS42NzgwNzEsNTMuNTc1OTQ4MyAxMTAuMTc4NTM3LDUzLjU3Njc1ODYgMTEwLjY4MDYyMyw1My41ODQ4NjIxIEwxMTAuNzY0MDM0LDUzLjU4NTY3MjQgQzExMC45ODE4NzUsNTMuNTg4OTEzOCAxMTEuMTk5NzE1LDUzLjU5MjE1NTIgMTExLjQxNTEyNiw1My41OTc4Mjc2IEMxMTEuNjI4MTA4LDUzLjYwNTEyMDcgMTExLjg0MDI4LDUzLjYxNDg0NDggMTEyLjA1MjQ1Miw1My42MjM3NTg2IEMxMTIuMzE0MDIyLDUzLjYzNDI5MzEgMTEyLjU3NDc4Myw1My42NDcyNTg2IDExMi44MzQ3MzQsNTMuNjYyNjU1MiBDMTEzLjA0NDQ3Niw1My42NzQ4MTAzIDExMy4yNTQyMTgsNTMuNjg5Mzk2NiAxMTMuNDYzOTYxLDUzLjcwNDc5MzEgQzExMy43MjQ3MjEsNTMuNzI0MjQxNCAxMTMuOTg1NDgyLDUzLjc0NDUgMTE0LjI0MzgxMyw1My43NjcxODk3IEMxMTQuNDMzMzEsNTMuNzg1MDE3MiAxMTQuNjIxOTk4LDUzLjgwMjg0NDggMTE0LjgwOTA2NSw1My44MjIyOTMxIEMxMTUuMDczODc1LDUzLjg0OTAzNDUgMTE1LjMzNjI1NSw1My44Nzk4Mjc2IDExNS41OTYyMDYsNTMuOTExNDMxIEMxMTUuNzgwMDM0LDUzLjkzMzMxMDMgMTE1Ljk2MzA1Myw1My45NTYgMTE2LjE0NDQ1Miw1My45ODAzMTAzIEMxMTYuNDEyNTAxLDU0LjAxNjc3NTkgMTE2LjY3ODEyLDU0LjA1NzI5MzEgMTE2Ljk0MTMxLDU0LjA5ODYyMDcgTDExNy4wOTExMjYsNTQuMTIxMzEwMyBDMTE3LjIxMDE2OSw1NC4xMzkxMzc5IDExNy4zMjY3ODMsNTQuMTU3Nzc1OSAxMTcuNDQyNTg3LDU0LjE3NjQxMzggQzExNy43MzA4ODEsNTQuMjI1ODQ0OCAxMTguMDE1MTI2LDU0LjI3OTMyNzYgMTE4LjMwMDk5MSw1NC4zMzUyNDE0IEwxMTguNDQ2NzU4LDU0LjM2MTk4MjggQzExOC41MzUwMjgsNTQuMzc4MTg5NyAxMTguNjIzMjk4LDU0LjM5NTIwNjkgMTE4LjcxMjM3OCw1NC40MTMwMzQ1IEMxMTkuMDE3Njc5LDU0LjQ3NDYyMDcgMTE5LjMxNzMxLDU0LjU0NDMxMDMgMTE5LjYxNTMyMyw1NC42MTQgTDExOS45NzE2NDIsNTQuNjk0MjI0MSBDMTIwLjM4NDY0OCw1NC43OTU1MTcyIDEyMC43OTE5ODUsNTQuOTAyNDgyOCAxMjEuMTkyODQ0LDU1LjAxNjc0MTQgQzEyMS42MjkzMzUsNTUuMTQyMzQ0OCAxMjIuMDU2OTE4LDU1LjI3NjA1MTcgMTIyLjQ3ODgzMiw1NS40MTc4NjIxIEMxMjIuNTU0MTQ1LDU1LjQ0MjE3MjQgMTIyLjYyNzAyOCw1NS40Njk3MjQxIDEyMi43MDA3MjEsNTUuNDk1NjU1MiBMMTIyLjg1NjIwNiw1NS41NTMxODk3IEMxMjMuMTQ1MzEsNTUuNjU0NDgyOCAxMjMuNDMyNzk1LDU1Ljc1NjU4NjIgMTIzLjcxNjIzMSw1NS44Njc2MDM0IEMxMjMuNzc2OTY3LDU1Ljg5MTEwMzQgMTIzLjgzNTI3NCw1NS45MTYyMjQxIDEyMy44OTQzOSw1NS45NDA1MzQ1IEwxMjQuMDQwOTY3LDU2LjAwMTMxMDMgQzEyNC40MTc1MzEsNTYuMTU0NDY1NSAxMjQuNzg1MTg4LDU2LjMxNDkxMzggMTI1LjE0MzkzNiw1Ni40ODI2NTUyIEwxMjUuMjMwNTg3LDU2LjUyMzE3MjQgQzEyNS4zMjc3NjQsNTYuNTY3NzQxNCAxMjUuNDI0OTQyLDU2LjYxMzEyMDcgMTI1LjUyMjEyLDU2LjY2MTc0MTQgQzEyNS44NTk4MTMsNTYuODI3MDUxNyAxMjYuMTYwMjU1LDU2Ljk4MTgyNzYgMTI2LjQzNTU5Myw1Ny4xMzA5MzEgQzEyNi40MzU1OTMsNTcuMzczMjI0MSAxMjYuNDM1NTkzLDU3LjY4NjgyNzYgMTI2LjQzNjQwMiw1OC4wMDM2NzI0IEwxMjYuNDM2NDAyLDU4LjAyNzE3MjQgQzExNy40MzUyOTgsNTMuNTMzIDEwMy4wNTg2MzYsNTMuNTYyMTcyNCA5MC4wMjU0NTc3LDU4LjE5ODE1NTIgTDg4LjQ5ODE0NDgsNTguMTg2IEw3OC44MzI5OTE0LDU1LjY4NzcwNjkgTDc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBaIE03Ni4yNDQwMDk4LDU3LjQ1OTkzMSBMNzYuMjQ3MjQ5MSw1Ni40MjI2ODk3IEM3Ni4yNDcyNDkxLDU2LjQxNTM5NjYgNzYuMjQ0ODE5Niw1Ni40MDg5MTM4IDc2LjI0NDgxOTYsNTYuNDAxNjIwNyBDNzYuMjQ0MDA5OCw1Ni4zODg2NTUyIDc2LjI0NTYyOTQsNTYuMzc0ODc5MyA3Ni4yNDQwMDk4LDU2LjM2MTkxMzggTDc2LjI0NDAwOTgsNTYuMjI5MDE3MiBDNzYuMjQ0MDA5OCw1NS45NjI0MTM4IDc2LjEwMjI5Miw1NS43MTY4NzkzIDc1Ljg3MTQ5NDUsNTUuNTgzOTgyOCBDNzUuNzMyMjA2MSw1NS41MDM3NTg2IDc1LjU3MzQ4MjIsNTUuNDc3ODI3NiA3NS40MTg4MDc0LDU1LjQ5NDg0NDggQzc1LjI5MzI4NTksNTUuNDE3ODYyMSA3NS4xNjQ1MjUyLDU1LjM0MzMxMDMgNzUuMDQyMjQyOSw1NS4yNjM4OTY2IEM3NS4wMDQxODE2LDU1LjIzODc3NTkgNzQuOTY4NTQ5Nyw1NS4yMTI4NDQ4IDc0LjkyOTY3ODUsNTUuMTg2OTEzOCBDNzQuNjg5MTYzMiw1NS4wMjgwODYyIDc0LjQ1MjY5NjksNTQuODY1MjA2OSA3NC4yMjY3NTgzLDU0LjY5ODI3NTkgQzc0LjIxMjk5MTQsNTQuNjg3NzQxNCA3NC4xOTkyMjQ1LDU0LjY3NzIwNjkgNzQuMTg1NDU3Nyw1NC42Njc0ODI4IEM3My42Nzc3MDMxLDU0LjI4OTg2MjEgNzMuMjA1NTgwNCw1My44OTQ0MTM4IDcyLjc3Mzk0ODUsNTMuNDgwMzI3NiBDNzMuNDc3Njc4NSw1MS45MzAxMzc5IDczLjg0NjE0NDgsNTAuMzY2OTgyOCA3My44NDIwOTU3LDQ4LjkzMDI0MTQgQzczLjgzNzIzNjgsNDcuMTYyODc5MyA3My4yNDYwNzEyLDQ1Ljc1NTMxMDMgNzIuMTc3MTE0MSw0NC45NjYwMzQ1IEM3MS43MzczODQsNDQuNjQwMjc1OSA3MS4yMjgwMDk4LDQ0LjQzNjg3OTMgNzAuNjc3MzM1LDQ0LjM0NjEyMDcgQzcwLjY4Nzg2MjYsNDQuMzIzNDMxIDcwLjY5ODM5MDIsNDQuMjk3NSA3MC43MDg5MTc4LDQ0LjI3NDgxMDMgQzcwLjcxMDUzNzQsNDQuMjcxNTY5IDcwLjczMzIxMjMsNDQuMjI3IDcwLjczNDgzMTksNDQuMjIzNzU4NiBDNzAuNzk3OTk3NSw0NC4wOTI0ODI4IDcwLjg2NzY0MTcsNDMuOTYyODI3NiA3MC45MzcyODU5LDQzLjgzMDc0MTQgTDcxLjE4MjY2MDEsNDMuMzU2Njg5NyBDNzEuMjM2MTA4LDQzLjI2MjY4OTcgNzEuMjkxOTg1Myw0My4xNjc4NzkzIDcxLjM0ODY3MjQsNDMuMDczMDY5IEw3MS40MTUwNzczLDQyLjk2Mjg2MjEgQzcxLjUzNDkzMDEsNDIuNzYxMDg2MiA3MS42NTg4MzE5LDQyLjU1ODUgNzEuNzkwMDIyMSw0Mi4zNTY3MjQxIEM3MS44NzAxOTM5LDQyLjIzMjc0MTQgNzEuOTUzNjA0OSw0Mi4xMDg3NTg2IDcyLjAzNzgyNTgsNDEuOTg2Mzk2NiBDNzIuMTc1NDk0NSw0MS43ODYyNDE0IDcyLjMxODAyMjEsNDEuNTg2ODk2NiA3Mi40NjU0MDg2LDQxLjM4OTE3MjQgTDcyLjU2MTc3NjcsNDEuMjU3ODk2NiBDNzIuNjU0OTA1NSw0MS4xMzIyOTMxIDcyLjc0ODAzNDQsNDEuMDA1ODc5MyA3Mi44NDUyMTIzLDQwLjg4MjcwNjkgQzcyLjg4NDg5MzMsNDAuODMxNjU1MiA3Mi45MjcwMDM3LDQwLjc4MjIyNDEgNzIuOTY5MTE0MSw0MC43MzExNzI0IEw3My4wNTk4MTM1LDQwLjYyMzM5NjYgQzczLjIwOTYyOTQsNDAuNDQwMjU4NiA3My4zNTk0NDU0LDQwLjI1NzkzMSA3My41MzM1NTU4LDQwLjA1Nzc3NTkgQzczLjc2NTk3MywzOS43OTAzNjIxIDc0LjAxMDUzNzQsMzkuNTI0NTY5IDc0LjI2NDAwOTgsMzkuMjU5NTg2MiBDNzQuMzQ0MTgxNiwzOS4xNzUzMTAzIDc0LjQyNTE2MzIsMzkuMDkxMDM0NSA3NC41MDg1NzQyLDM5LjAwNjc1ODYgQzc0Ljc1NzE4NzcsMzguNzUxNSA3NS4wMTM4OTk0LDM4LjUwMDI5MzEgNzUuMjg1MTg3NywzOC4yNDM0MTM4IEw3NS4zNjEzMTA0LDM4LjE3MTI5MzEgQzc1LjQ1NjA1ODksMzguMDgxMzQ0OCA3NS41NTU2NjYzLDM3Ljk5MzgyNzYgNzUuNjU1MjczNiwzNy45MDM4NzkzIEw3NS44NzM5MjM5LDM3LjcwODU4NjIgQzc2LjAzODMxNjYsMzcuNTYxMTAzNCA3Ni4yMDE4OTk0LDM3LjQxNTI0MTQgNzYuMzcyNzcwNiwzNy4yNjkzNzkzIEM3Ni40NzM5OTc1LDM3LjE4NDI5MzEgNzYuNTc3NjU0LDM3LjA5ODM5NjYgNzYuNjgxMzEwNCwzNy4wMTMzMTAzIEw3Ni43ODkwMTYsMzYuOTIzMzYyMSBDNzcuMDIzODYyNiwzNi43MzEzMTAzIDc3LjI2MDMyODgsMzYuNTM5MjU4NiA3Ny41MDQwODM0LDM2LjM0ODgyNzYgQzc3LjY1NzEzODcsMzYuMjMwNTE3MiA3Ny44MTE4MTM1LDM2LjExMjIwNjkgNzcuOTY3Mjk4MiwzNS45OTQ3MDY5IEM3OC4yMTc1MzEzLDM1LjgwNTg5NjYgNzguNDc1MDUyOCwzNS42MTk1MTcyIDc4LjczNDE5MzksMzUuNDMzOTQ4MyBMNzguODA0NjQ3OSwzNS4zODQ1MTcyIEM3OC45MzkwNzczLDM1LjI4ODg5NjYgNzkuMDc0MzE2NiwzNS4xOTI0NjU1IDc5LjIxMDM2NTYsMzUuMDk3NjU1MiBDNzkuNTAxMDg5NiwzNC44OTgzMTAzIDc5Ljc5OTkxMTcsMzQuNzAwNTg2MiA4MC4xMDAzNTM0LDM0LjUwNTI5MzEgTDgwLjI3Njg5MzMsMzQuMzg4NjAzNCBDODAuMzcwMDIyMSwzNC4zMjc4Mjc2IDgwLjQ2MjM0MTEsMzQuMjY2MjQxNCA4MC41NjExMzg3LDM0LjIwNDY1NTIgTDgwLjgzNDg1NjQsMzQuMDM0NDgyOCBDODEuMTkzNjA0OSwzMy44MTE2Mzc5IDgxLjU1NTU5MjYsMzMuNTkwNDEzOCA4MS45MzA1Mzc0LDMzLjM3MTYyMDcgQzgyLjM0NzU5MjYsMzMuMTI5MzI3NiA4Mi43NzE5MzYyLDMyLjg5MzUxNzIgODMuMjAxMTM4NywzMi42NjA5NDgzIEM4My4yOTAyMTg0LDMyLjYxMzk0ODMgODMuMzc4NDg4MywzMi41NjY5NDgzIDgzLjQ2ODM3NzksMzIuNTIwNzU4NiBMODQuMjAyODgxLDMyLjEzOTA4NjIgQzg0LjMwMjQ4ODMsMzIuMDg3MjI0MSA4NC40MDI5MDU1LDMyLjAzNTM2MjEgODQuNTAxNzAzMSwzMS45ODUxMjA3IEw4NS4yOTM3MDMxLDMxLjYwMTAxNzIgQzg1LjQ3MjY3MjQsMzEuNTEzNSA4NS42NTI0NTE1LDMxLjQyNjc5MzEgODUuODM0NjYwMSwzMS4zNDI1MTcyIEM4Ni4wMTg0ODgzLDMxLjI1NjYyMDcgODYuMjA0NzQ2LDMxLjE3MzE1NTIgODYuMzkxMDAzNywzMS4wODg4NzkzIEM4Ni42NTc0MzMxLDMwLjk2ODk0ODMgODYuOTI1NDgyMiwzMC44NDkwMTcyIDg3LjE5NTE1MDksMzAuNzMzOTQ4MyBDODcuMzg1NDU3NywzMC42NTA0ODI4IDg3LjU3NjU3NDIsMzAuNTcwMjU4NiA4Ny43NzAxMjAyLDMwLjQ5MDAzNDUgQzg4LjAzOTc4OSwzMC4zNzczOTY2IDg4LjMxMTg4NzEsMzAuMjY2Mzc5MyA4OC41ODQ3OTUxLDMwLjE1Nzc5MzEgQzg4Ljc3NjcyMTUsMzAuMDgxNjIwNyA4OC45Njk0NTc3LDMwLjAwNDYzNzkgODkuMTYwNTc0MiwyOS45MzA4OTY2IEM4OS40MTA4MDc0LDI5LjgzNTI3NTkgODkuNjYxMDQwNSwyOS43NDIwODYyIDg5LjkxMjg5MzMsMjkuNjQ5NzA2OSBDODkuOTE1MzIyNywyOS42NDg4OTY2IDkwLjAwNDQwMjUsMjkuNjE1NjcyNCA5MC4wMDYwMjIxLDI5LjYxNDg2MjEgTDkwLjE0NDUwMDYsMjkuNTYzIEM5MC4yODYyMTg0LDI5LjUxMTk0ODMgOTAuNDI3MTI2NCwyOS40NTkyNzU5IDkwLjU3MTI3MzYsMjkuNDA5MDM0NSBDOTAuNjg1NDU3NywyOS4zNjc3MDY5IDkwLjgwMTI2MTMsMjkuMzI4ODEwMyA5MC45MTYyNTUyLDI5LjI4OTkxMzggTDkxLjAyODgxOTYsMjkuMjUxODI3NiBDOTEuMTc5NDQ1NCwyOS4xOTkxNTUyIDkxLjMzMDg4MSwyOS4xNDcyOTMxIDkxLjQ4MzkzNjIsMjkuMDk1NDMxIEw5Mi40NTI0NzYxLDI4Ljc4MDIwNjkgQzkyLjg4OTc3NjcsMjguNjQyNDQ4MyA5My4zMjcwNzczLDI4LjUwNzkzMSA5My43NjY4MDc0LDI4LjM3OTg5NjYgQzkzLjk2NjAyMjEsMjguMzIyMzYyMSA5NC4xNjYwNDY2LDI4LjI2NjQ0ODMgOTQuMzY3NjkwOCwyOC4yMDk3MjQxIEM5NC43NzA5NzkxLDI4LjA5Nzg5NjYgOTUuMTc1ODg3MSwyNy45ODg1IDk1LjU4MzIyNDUsMjcuODgzOTY1NSBMOTUuNzIyNTEyOSwyNy44NDkxMjA3IEM5NS44Njk4OTk0LDI3LjgxMDIyNDEgOTYuMDE2NDc2MSwyNy43NzIxMzc5IDk2LjE2Mzg2MjYsMjcuNzM1NjcyNCBDOTYuNjUyMTgxNiwyNy42MTY1NTE3IDk3LjE0MTMxMDQsMjcuNTAyMjkzMSA5Ny42MzY5MTc4LDI3LjM5MzcwNjkgTDk3Ljk0MDU5ODgsMjcuMzI0ODI3NiBDOTguNTMwOTU0NiwyNy4xOTc2MDM0IDk5LjEyMjkzMDEsMjcuMDgxNzI0MSA5OS43MTQwOTU3LDI2Ljk3MzEzNzkgTDEwMC4xMDc2NjYsMjYuOTA1ODc5MyBDMTAwLjcwMTI2MSwyNi44MDA1MzQ1IDEwMS4yOTQwNDcsMjYuNzA1NzI0MSAxMDEuODg3NjQyLDI2LjYxODIwNjkgTDEwMi4zNTI0NzYsMjYuNTUwOTQ4MyBDMTAzLjAzMjcyMSwyNi40NTY5NDgzIDEwMy43MTk0NDUsMjYuMzc1MTAzNCAxMDQuMzkyNDAyLDI2LjMwNjIyNDEgTDEwNC45MjQ0NTIsMjYuMjU2NzkzMSBDMTA1LjMxMzE2MywyNi4yMjAzMjc2IDEwNS43MDEwNjUsMjYuMTg3MTAzNCAxMDYuMDg5Nzc3LDI2LjE1OTU1MTcgQzEwNi4yOTc4OTksMjYuMTQ0MTU1MiAxMDYuNTA1MjEyLDI2LjEzMTE4OTcgMTA2LjcxODE5NCwyNi4xMTgyMjQxIEMxMDYuOTY1OTk4LDI2LjEwMzYzNzkgMTA3LjIxMjE4MiwyNi4wOTIyOTMxIDEwNy40NTkxNzUsMjYuMDgwOTQ4MyBMMTA3LjUxOTkxMiw0NS4yODQ1IEw4OS42Mjc4MzgsNTUuNjIxMjU4NiBMODYuMzQyNDE0Nyw0Ny43MTMxMDM0IEM4Ni4wMjkwMTYsNDYuOTU3MDUxNyA4NS41MDE4MjU4LDQ2LjQzNTE4OTcgODQuODE3NTMxMyw0Ni4yMDI2MjA3IEM4NC4wMDIwNDY2LDQ1LjkyNTQ4MjggODMuMDEwODMxOSw0Ni4wODgzNjIxIDgyLjAyMjg1NjQsNDYuNjU5NjU1MiBDODAuMzgyMTY5Myw0Ny42MDc3NTg2IDc5LjAwNTQ4MjIsNDkuNDg0NTE3MiA3OC40MzA1MTI5LDUxLjU1OSBMNzYuMjQ0MDA5OCw1OS40NTkwNTE3IEw3Ni4yNDQwMDk4LDU3LjQ1OTkzMSBaIE01OC4wMzEyNDkxLDExLjkwMTUzNDUgTDMuMjI1MzM0OTcsNDMuNjE4NDMxIEwzLjIyNTMzNDk3LDM3Ljc5NTI5MzEgQzMuMjI1MzM0OTcsMzUuMDY3NjcyNCA0LjY5MTEwMTg0LDMyLjUyNTYyMDcgNy4wNTA5MDU1MiwzMS4xNjAxODk3IEw1NC4zMDQ0NzYxLDMuODE0MjkzMSBDNTUuMDgyNzA5MiwzLjM2MjkzMTAzIDU2LjAxMDc1ODMsMy4zNjIxMjA2OSA1Ni43ODgxODE2LDMuODEyNjcyNDEgQzU3LjU2NjQxNDcsNC4yNjE2MDM0NSA1OC4wMzEyNDkxLDUuMDY2Mjc1ODYgNTguMDMxMjQ5MSw1Ljk2NDk0ODI4IEw1OC4wMzEyNDkxLDExLjkwMTUzNDUgWiBNMTI3LjIwOTc3NywyNS40Mzk5NjU1IEMxMjcuMTQ5ODUsMjUuNDA2NzQxNCAxMjcuMDg5OTI0LDI1LjM3NDMyNzYgMTI3LjAyOTk5OCwyNS4zNDI3MjQxIEMxMjYuOTUzMDY1LDI1LjMwMjIwNjkgMTI2Ljg4MDE4MiwyNS4yNjA4NzkzIDEyNi44MDMyNDksMjUuMjIwMzYyMSBDMTI2LjgwMjQzOSwyNS4yMTk1NTE3IDEyNi44MDE2MjksMjUuMjE5NTUxNyAxMjYuODAxNjI5LDI1LjIxOTU1MTcgQzEyNi42NDEyODYsMjUuMTM1Mjc1OSAxMjYuNDc5MzIzLDI1LjA1NDI0MTQgMTI2LjMxNTc0LDI0Ljk3MzIwNjkgQzEyNi4yOTcxMTQsMjQuOTY0MjkzMSAxMjYuMjc5Mjk4LDI0Ljk1NTM3OTMgMTI2LjI2MTQ4MiwyNC45NDU2NTUyIEMxMjYuMTU3ODI2LDI0Ljg5NTQxMzggMTI2LjA1MDkzLDI0Ljg0NTk4MjggMTI1LjkwNjc4MywyNC43Nzg3MjQxIEMxMjUuOTAzNTQ0LDI0Ljc3NjI5MzEgMTI1Ljg2NDY3MiwyNC43NTg0NjU1IDEyNS44NjA2MjMsMjQuNzU2MDM0NSBDMTI1Ljg0MzYxNywyNC43NDc5MzEgMTI1LjgyNDk5MSwyNC43NDE0NDgzIDEyNS44MDc5ODUsMjQuNzMyNTM0NSBDMTI1LjQ5Mjk2NywyNC41ODgyOTMxIDEyNS4xNzE0NywyNC40NDgxMDM0IDEyNC44NDUxMTQsMjQuMzEzNTg2MiBDMTI0Ljc5MjQ3NiwyNC4yOTA4OTY2IDEyNC43NDIyNjcsMjQuMjY2NTg2MiAxMjQuNjg4ODIsMjQuMjQ1NTE3MiBMMTI0LjU2MDg2OSwyNC4xOTEyMjQxIEMxMjQuNDg3OTg1LDI0LjE2MTI0MTQgMTI0LjQxNTEwMiwyNC4xMzEyNTg2IDEyNC4zNDA1OTksMjQuMTAyMDg2MiBDMTI0LjMxOTU0NCwyNC4wOTMxNzI0IDEyNC4yOTYwNTksMjQuMDg1ODc5MyAxMjQuMjc0MTk0LDI0LjA3Nzc3NTkgQzEyNC4yNTIzMjksMjQuMDY4ODYyMSAxMjQuMjI4MDM0LDI0LjA2MDc1ODYgMTI0LjIwNjE2OSwyNC4wNTE4NDQ4IEMxMjMuOTUzNTA3LDIzLjk1NjIyNDEgMTIzLjY5NzYwNSwyMy44NjMwMzQ1IDEyMy40MzkyNzQsMjMuNzcxNDY1NSBMMTIzLjI4NzgzOCwyMy43MTYzNjIxIEMxMjMuMjA1MjM3LDIzLjY4NjM3OTMgMTIzLjEyMTgyNiwyMy42NTYzOTY2IDEyMy4wMzc2MDUsMjMuNjI4MDM0NSBDMTIyLjU5NTQ0NSwyMy40Nzg5MzEgMTIyLjE0NTk5OCwyMy4zMzk1NTE3IDEyMS42ODY4MzIsMjMuMjA3NDY1NSBDMTIxLjI2ODE1NywyMy4wODgzNDQ4IDEyMC44NDMwMDQsMjIuOTc2NTE3MiAxMjAuNDEwNTYyLDIyLjg3MDM2MjEgQzEyMC4zMzM2MjksMjIuODUxNzI0MSAxMjAuMjU1MDc3LDIyLjgzNDcwNjkgMTIwLjE3NzMzNSwyMi44MTY4NzkzIEwxMjAuMDQxMjg2LDIyLjc4Njg5NjYgQzExOS43Mjg2OTcsMjIuNzEzOTY1NSAxMTkuNDE0NDg4LDIyLjY0MTg0NDggMTE5LjA5NDYxMSwyMi41NzYyMDY5IEwxMTguNjY3ODM4LDIyLjQ5NTk4MjggQzExOC4zNzIyNTUsMjIuNDM4NDQ4MyAxMTguMDc2NjcyLDIyLjM4MTcyNDEgMTE3Ljc3NzA0LDIyLjMzMTQ4MjggQzExNy42NTQ3NTgsMjIuMzExMjI0MSAxMTcuNTMxNjY2LDIyLjI5MjU4NjIgMTE3LjQwODU3NCwyMi4yNzMxMzc5IEwxMTcuMjU3MTM5LDIyLjI0OTYzNzkgQzExNi45ODE4MDEsMjIuMjA2Njg5NyAxMTYuNzA3Mjc0LDIyLjE2NDU1MTcgMTE2LjQzMDMxNywyMi4xMjcyNzU5IEMxMTYuMjY1MTE0LDIyLjEwNTM5NjYgMTE2LjA5OTEwMiwyMi4wODUxMzc5IDExNS45MzMwOSwyMi4wNjQwNjkgTDExNS44NjQyNTUsMjIuMDU1OTY1NSBDMTE1LjYwOTE2MywyMi4wMjUxNzI0IDExNS4zNTI0NTIsMjEuOTk1MTg5NyAxMTUuMTEwMzE3LDIxLjk3MDg3OTMgQzExNS4xMDQ2NDgsMjEuOTcwMDY5IDExNS4wNTI4MiwyMS45NjM1ODYyIDExNS4wNDc5NjEsMjEuOTYzNTg2MiBDMTE0Ljg1NTIyNSwyMS45NDQxMzc5IDExNC42NjAwNTksMjEuOTI0Njg5NyAxMTQuNDYzMjc0LDIxLjkwNjg2MjEgQzExNC4xOTY4NDQsMjEuODgzMzYyMSAxMTMuOTI4Nzk1LDIxLjg2MjI5MzEgMTEzLjY1OTEyNiwyMS44NDI4NDQ4IEMxMTMuNDQyMDk2LDIxLjgyNjYzNzkgMTEzLjIyNTA2NSwyMS44MTEyNDE0IDExMy4wMTQ1MTMsMjEuNzk5MDg2MiBMMTEyLjkyMDU3NCwyMS43OTQyMjQxIEMxMTIuNjgxNjc5LDIxLjc4MDQ0ODMgMTEyLjQ0MTE2MywyMS43NjgyOTMxIDExMi4xOTk4MzgsMjEuNzU3NzU4NiBDMTExLjk4MzYxNywyMS43NDg4NDQ4IDExMS43NjY1ODcsMjEuNzM5OTMxIDExMS41NDc5MzYsMjEuNzMzNDQ4MyBDMTExLjMyMzYxNywyMS43MjYxNTUyIDExMS4wOTg0ODgsMjEuNzIyOTEzOCAxMTAuODcyNTUsMjEuNzIwNDgyOCBMMTEwLjc4ODMyOSwyMS43MTg4NjIxIEMxMTAuMjc0MDk2LDIxLjcxMDc1ODYgMTA5Ljc2MTQ4MiwyMS43MDk5NDgzIDEwOS4yMzgzNDEsMjEuNzE3MjQxNCBDMTA4Ljk2ODY3MiwyMS43MjEyOTMxIDEwOC42OTk4MTMsMjEuNzI0NTM0NSAxMDguNDI4NTI1LDIxLjczMzQ0ODMgQzEwOC4yNTQ0MTUsMjEuNzM4MzEwMyAxMDguMDc5NDk0LDIxLjc0NTYwMzQgMTA3LjkwNDU3NCwyMS43NTI4OTY2IEwxMDcuNzU3MTg4LDIxLjc1Nzc1ODYgQzEwNy4zODIyNDMsMjEuNzczOTY1NSAxMDcuMDA1Njc5LDIxLjc5MjYwMzQgMTA2LjYyMDIwNiwyMS44MTY5MTM4IEMxMDYuNDA3MjI1LDIxLjgyOTA2OSAxMDYuMTk1MDUzLDIxLjg0Mjg0NDggMTA1Ljk4MjA3MSwyMS44NTc0MzEgQzEwNS41ODQ0NTIsMjEuODg2NjAzNCAxMDUuMTg2MDIyLDIxLjkyMTQ0ODMgMTA0Ljc4NTE2MywyMS45NTc5MTM4IEwxMDQuMjQwOTY3LDIyLjAwODE1NTIgQzEwMy41NjM5NjEsMjIuMDc3MDM0NSAxMDIuODYwMjMxLDIyLjE2MTMxMDMgMTAyLjE1MDAyMiwyMi4yNjAxNzI0IEwxMDEuNjczMDQsMjIuMzI5MDUxNyBDMTAxLjA2NDg2OSwyMi40MTczNzkzIDEwMC40NTc1MDcsMjIuNTE1NDMxIDk5Ljg0NjA5NTcsMjIuNjIzMjA2OSBMOTkuNDQ2MDQ2NiwyMi42OTIwODYyIEM5OC44Mzk0OTQ1LDIyLjgwMzEwMzQgOTguMjMzNzUyMSwyMi45MjIyMjQxIDk3LjYyMzE1MDksMjMuMDUzNSBMOTcuMzEyMTgxNiwyMy4xMjQgQzk2LjgxMDA5NTcsMjMuMjM1MDE3MiA5Ni4zMDgwMDk4LDIzLjM1MDA4NjIgOTUuODA4MzUzNCwyMy40NzQ4NzkzIEM5NS42MzkxMDE4LDIzLjUxNTM5NjYgOTUuNDcwNjYwMSwyMy41NTkxNTUyIDk1LjMwMjIxODQsMjMuNjAyOTEzOCBMOTUuMjEyMzI4OCwyMy42MjU2MDM0IEM5NC43OTYwODM0LDIzLjczMjU2OSA5NC4zODA2NDc5LDIzLjg0NDM5NjYgOTMuOTY2MDIyMSwyMy45NTk0NjU1IEM5My43NjExMzg3LDI0LjAxNyA5My41NTYyNTUyLDI0LjA3NDUzNDUgOTMuMzUwNTYyLDI0LjEzMzY4OTcgQzkyLjkwMDMwNDMsMjQuMjY0OTY1NSA5Mi40NTE2NjYzLDI0LjQwMjcyNDEgOTIuMDAzODM4LDI0LjU0NDUzNDUgTDkxLjgxNzU4MDQsMjQuNjAyMDY5IEM5MS43MjIwMjIxLDI0LjYzMTI0MTQgOTEuNjI3MjczNiwyNC42NjA0MTM4IDkxLjUzMzMzNSwyNC42OTEyMDY5IEM5MS40MTUxMDE4LDI0LjcyOTI5MzEgOTEuMjk2ODY4NywyNC43Njk4MTAzIDkxLjE3ODYzNTYsMjQuODEwMzI3NiBMOTAuMDc0MDQ2NiwyNS4xODg3NTg2IEM4OS45MjUwNDA1LDI1LjI0MTQzMSA4OS43Nzc2NTQsMjUuMjk1NzI0MSA4OS42MzAyNjc1LDI1LjM1MDAxNzIgTDg5LjM5Nzg1MDMsMjUuNDM1OTEzOCBDODkuMTQwMzI4OCwyNS41MzE1MzQ1IDg4Ljg4MjgwNzQsMjUuNjI2MzQ0OCA4OC42MjYwOTU3LDI1LjcyNTIwNjkgQzg4LjQyNjg4MSwyNS44MDIxODk3IDg4LjIzMDA5NTcsMjUuODc5MTcyNCA4OC4wMzQxMjAyLDI1Ljk1ODU4NjIgQzg3Ljc1MzExNDEsMjYuMDcwNDEzOCA4Ny40NzM3Mjc2LDI2LjE4MzA1MTcgODcuMTk1OTYwNywyNi4yOTk3NDE0IEM4Ny4xMDkzMTA0LDI2LjMzNjIwNjkgODcuMDIyNjYwMSwyNi4zNzI2NzI0IDg2LjkzNjAwOTgsMjYuNDA5OTQ4MyBDODYuODk4NzU4MywyNi40MjUzNDQ4IDg2Ljg2MDY5NjksMjYuNDQxNTUxNyA4Ni44MjI2MzU2LDI2LjQ1Njk0ODMgQzg2Ljc1MDU2MiwyNi40ODc3NDE0IDg2LjY3NzY3ODUsMjYuNTE3NzI0MSA4Ni42MDU2MDQ5LDI2LjU0OTMyNzYgQzg2LjMyNzgzOCwyNi42NjkyNTg2IDg2LjA1MjUwMDYsMjYuNzkxNjIwNyA4NS43Nzg3ODI4LDI2LjkxNTYwMzQgQzg1LjcxMDc1ODMsMjYuOTQ2Mzk2NiA4NS42NDM1NDM2LDI2Ljk3NzE4OTcgODUuNTc1NTE5LDI3LjAwNzE3MjQgQzg1LjQ4NjQzOTMsMjcuMDQ4NSA4NS4zOTY1NDk3LDI3LjA4OTAxNzIgODUuMzA3NDY5OSwyNy4xMjk1MzQ1IEM4NS4yNzM0NTc3LDI3LjE0NTc0MTQgODUuMjM5NDQ1NCwyNy4xNTk1MTcyIDg1LjIwNjI0MjksMjcuMTc1NzI0MSBDODUuMDQxMDQwNSwyNy4yNTI3MDY5IDg0Ljg3ODI2NzUsMjcuMzMxMzEwMyA4NC43MTU0OTQ1LDI3LjQwOTkxMzggTDg0LjIwNzczOTksMjcuNjU0NjM3OSBDODQuMTk1NTkyNiwyNy42NjExMjA3IDg0LjE4MzQ0NTQsMjcuNjY2NzkzMSA4NC4xNzEyOTgyLDI3LjY3MjQ2NTUgQzg0LjA3MDg4MSwyNy43MjE4OTY2IDgzLjk3MDQ2MzgsMjcuNzY5NzA2OSA4My44NzA4NTY0LDI3LjgxOTk0ODMgQzgzLjg1ODcwOTIsMjcuODI2NDMxIDgzLjg0NjU2MiwyNy44MzIxMDM0IDgzLjgzNDQxNDcsMjcuODM3Nzc1OSBDODMuNzI1ODk5NCwyNy44OTI4NzkzIDgzLjYxOTgxMzUsMjcuOTQ3OTgyOCA4My41MTI5MTc4LDI4LjAwMzg5NjYgTDgzLjE1NDk3OTEsMjguMTkwMjc1OSBDODIuOTM2MzI4OCwyOC4zMDQ1MzQ1IDgyLjcxNTI0OTEsMjguNDE1NTUxNyA4Mi40OTkwMjgyLDI4LjUzMjI0MTQgTDgyLjQ5MzM1OTUsMjguNTM1NDgyOCBDODIuMDUxMiwyOC43NzQ1MzQ1IDgxLjYxMzA4OTYsMjkuMDE3NjM3OSA4MS4xODIyNjc1LDI5LjI2ODg0NDggQzgwLjc5NTE3NTUsMjkuNDkzMzEwMyA4MC40MjAyMzA3LDI5LjcyMzQ0ODMgODAuMDUwOTU0NiwyOS45NTI3NzU5IEw3OS43NjI2NjAxLDMwLjEzMTA1MTcgQzc5Ljc1NjE4MTYsMzAuMTM1MTAzNCA3OS43NTA1MTI5LDMwLjEzOTE1NTIgNzkuNzQ0ODQ0MiwzMC4xNDIzOTY2IEM3OS42MDE1MDY3LDMwLjIzMjM0NDggNzkuNDY1NDU3NywzMC4zMjU1MzQ1IDc5LjMyNDU0OTcsMzAuNDE3MTAzNCBMNzkuMjg4MTA4LDMwLjQ0MDYwMzQgQzc5LjIyNzM3MTgsMzAuNDgwMzEwMyA3OS4xNjk4NzQ4LDMwLjUyMDAxNzIgNzkuMTA5OTQ4NSwzMC41NTk3MjQxIEM3Mi4zODkyODU5LDM0Ljk3NzcyNDEgNjguNDQyMjQyOSw0MC4zMjM1NjkgNjguMDcyMTU3MSw0NS41NTY3NzU5IEw2OC4wNTExMDE4LDQ1Ljg0NzY4OTcgQzY4LjA0Nzg2MjYsNDUuOTA5Mjc1OSA2OC4wNTExMDE4LDQ1Ljk3MDg2MjEgNjguMDQ4NjcyNCw0Ni4wMzMyNTg2IEM2OC4wNDU0MzMxLDQ2LjE0ODMyNzYgNjguMDMyNDc2MSw0Ni4yNjQyMDY5IDY4LjAzMjQ3NjEsNDYuMzc4NDY1NSBDNjguMDM4MTQ0OCw1MC4wMjUwMTcyIDY5Ljc5OTQ5NDUsNTMuMjI3NSA3My4xNDU2NTQsNTUuNzUwOTEzOCBDNzMuMTU1MzcxOCw1NS43NTgyMDY5IDczLjE2NTg5OTQsNTUuNzY2MzEwMyA3My4xNzY0MjcsNTUuNzczNjAzNCBDNzMuMzYxODc0OCw1NS45MTI5ODI4IDczLjU1MDU2Miw1Ni4wNDk5MzEgNzMuNzQ1NzI3Niw1Ni4xODUyNTg2IEM3My43ODM3ODksNTYuMjExMTg5NyA3My44MjE4NTAzLDU2LjIzNzkzMSA3My44NTk5MTE3LDU2LjI2Mzg2MjEgQzczLjg3NDQ4ODMsNTYuMjczNTg2MiA3My44ODY2MzU2LDU2LjI4MzMxMDMgNzMuOTAwNDAyNSw1Ni4yOTMwMzQ1IEw3My4xODkzODQsNTYuNzAzMDY5IEwzOC41NjQ4OTMzLDM2LjY5OTcwNjkgTDY4LjIyODQ1MTUsMTkuNTMzMzYyMSBDNjguMjMyNTAwNiwxOS41MzA5MzEgNjguMjM3MzU5NSwxOS41Mjc2ODk3IDY4LjI0MTQwODYsMTkuNTI2MDY5IEw5My4zNzY0NzYxLDQuOTc5NTY4OTcgTDEyOC4wMDAxNTcsMjQuOTgzNzQxNCBMMTI3LjIwOTc3NywyNS40Mzk5NjU1IFogTTEyOC4wMDUwMTYsMjkuMjMzMTg5NyBDMTI4LjAxMzkyNCwyOS4xNzI0MTM4IDEyOC4wMTIzMDQsMjkuMTEwODI3NiAxMjguMDA1MDE2LDI5LjA0OTI0MTQgTDEyOC4wMTE0OTQsMjYuNjk3NjIwNyBMMTI4Ljc0NDM3OCwyNi4yNzQ2MjA3IEwxMjguNzQ0Mzc4LDU3Ljc0MTkzMSBMMTI3LjkyOTcwMyw1OC4yMTM1NTE3IEwxMjguMDA1MDE2LDI5LjIzMzE4OTcgWiBNMTA4LjI2NjU2Miw0Ni41NzM3NTg2IEwxMTkuNDkyMjMxLDUzLjA1OTc1ODYgQzExOS4zMzE4ODcsNTMuMDIzMjkzMSAxMTkuMTczMTYzLDUyLjk4NjAxNzIgMTE5LjAxMDM5LDUyLjk1Mjc5MzEgQzExOC45MTQwMjIsNTIuOTMyNTM0NSAxMTguODE2MDM0LDUyLjkxNDcwNjkgMTE4LjcxODA0Nyw1Mi44OTYwNjkgTDExOC41ODExODgsNTIuODcwOTQ4MyBDMTE4LjI4NjQxNSw1Mi44MTQyMjQxIDExNy45OTI0NTIsNTIuNzU4MzEwMyAxMTcuNjkyMDEsNTIuNzA3MjU4NiBDMTE3LjU2ODEwOCw1Mi42ODYxODk3IDExNy40NDI1ODcsNTIuNjY3NTUxNyAxMTcuMzE3ODc1LDUyLjY0ODEwMzQgTDExNy4xNjk2NzksNTIuNjI0NjAzNCBDMTE2Ljg5NTk2MSw1Mi41ODI0NjU1IDExNi42MjE0MzMsNTIuNTQxMTM3OSAxMTYuMzQyODU2LDUyLjUwMzA1MTcgQzExNi4xNTQ5NzksNTIuNDc4NzQxNCAxMTUuOTY2MjkyLDUyLjQ1NDQzMSAxMTUuNzc1OTg1LDUyLjQzMTc0MTQgQzExNS41MDU1MDcsNTIuMzk5MzI3NiAxMTUuMjM1MDI4LDUyLjM2NzcyNDEgMTE0Ljk2MDUwMSw1Mi4zMzkzNjIxIEMxMTQuNzY3NzY0LDUyLjMxOTEwMzQgMTE0LjU3MjU5OSw1Mi4zMDEyNzU5IDExNC4zNzgyNDMsNTIuMjgyNjM3OSBDMTE0LjExMTgxMyw1Mi4yNTkxMzc5IDExMy44NDIxNDUsNTIuMjM4MDY5IDExMy41NzI0NzYsNTIuMjE3ODEwMyBDMTEzLjM1NjI1NSw1Mi4yMDI0MTM4IDExMy4xMzkyMjUsNTIuMTg3MDE3MiAxMTIuOTIyMTk0LDUyLjE3NDg2MjEgQzExMi42NTQxNDUsNTIuMTU4NjU1MiAxMTIuMzg0NDc2LDUyLjE0NTY4OTcgMTEyLjExNTYxNyw1Mi4xMzQzNDQ4IEMxMTEuODk4NTg3LDUyLjEyNDYyMDcgMTExLjY4MDc0Niw1Mi4xMTU3MDY5IDExMS40NjA0NzYsNTIuMTA5MjI0MSBDMTExLjIzNjE1Nyw1Mi4xMDE5MzEgMTExLjAxMTAyOCw1Mi4wOTg2ODk3IDExMC43ODY3MDksNTIuMDk1NDQ4MyBMMTEwLjcwMjQ4OCw1Mi4wOTM4Mjc2IEMxMTAuMTg2NjM2LDUyLjA4NjUzNDUgMTA5LjY2ODM1Myw1Mi4wODU3MjQxIDEwOS4xNTI1MDEsNTIuMDkzMDE3MiBDMTA4Ljg4MjgzMiw1Mi4wOTcwNjkgMTA4LjYxMzE2Myw1Mi4xMDExMjA3IDEwOC4zNDI2ODUsNTIuMTA5MjI0MSBDMTA4LjExOTk4NSw1Mi4xMTU3MDY5IDEwNy44OTY0NzYsNTIuMTI0NjIwNyAxMDcuNjczNzc3LDUyLjEzNDM0NDggQzEwNy4yOTcyMTIsNTIuMTQ4OTMxIDEwNi45MTk4MzgsNTIuMTY4Mzc5MyAxMDYuNTQxNjU0LDUyLjE5MTg3OTMgQzEwNi4zMjcwNTMsNTIuMjA0ODQ0OCAxMDYuMTEyNDUyLDUyLjIxNzgxMDMgMTA1Ljg5Nzg1LDUyLjIzNDAxNzIgQzEwNS40OTg2MTEsNTIuMjYyMzc5MyAxMDUuMDk4NTYyLDUyLjI5NjQxMzggMTA0LjY5OTMyMyw1Mi4zMzM2ODk3IEwxMDQuNTIzNTkzLDUyLjM0OTA4NjIgQzEwNC40MDA1MDEsNTIuMzYwNDMxIDEwNC4yNzc0MDksNTIuMzcxNzc1OSAxMDQuMTUzNTA3LDUyLjM4MzkzMSBDMTAzLjQ3ODkzLDUyLjQ1MjgxMDMgMTAyLjc3NTIsNTIuNTM3ODk2NiAxMDIuMDYwMTMzLDUyLjYzNTk0ODMgTDEwMS41ODk2MjksNTIuNzA0ODI3NiBDMTAwLjk4MDY0OCw1Mi43OTMxNTUyIDEwMC4zNzE2NjYsNTIuODkwMzk2NiA5OS43NjI2ODQ3LDUyLjk5ODE3MjQgTDk5LjM1OTM5NjMsNTMuMDY3ODYyMSBDOTguNzUzNjU0LDUzLjE3OTY4OTcgOTguMTQ3MTAxOCw1My4yOTggOTcuNTQxMzU5NSw1My40Mjc2NTUyIEw5Ny4yMjcxNTA5LDUzLjQ5OTc3NTkgQzk2LjcyMzQ0NTQsNTMuNjA5OTgyOCA5Ni4yMjIxNjkzLDUzLjcyNjY3MjQgOTUuNzIwODkzMyw1My44NTA2NTUyIEM5NS42OTE3Mzk5LDUzLjg1NzEzNzkgOTUuNjYyNTg2NSw1My44NjUyNDE0IDk1LjYzNDI0MjksNTMuODcxNzI0MSBMMTA4LjI2NjU2Miw0Ni41NzM3NTg2IFogTTEwOS4wMDkxNjMsNDUuMjgyODc5MyBMMTA4Ljk0ODQyNywyNi4wMjkwODYyIEMxMDkuMDUyODkzLDI2LjAyNjY1NTIgMTA5LjE1NjU1LDI2LjAyNDIyNDEgMTA5LjI2MDIwNiwyNi4wMjI2MDM0IEMxMDkuNzY1NTMxLDI2LjAxNTMxMDMgMTEwLjI2NTk5OCwyNi4wMTUzMTAzIDExMC43NjY0NjQsMjYuMDIzNDEzOCBMMTEwLjg0OTg3NSwyNi4wMjQyMjQxIEMxMTEuMDY4NTI1LDI2LjAyODI3NTkgMTExLjI4NzE3NSwyNi4wMzE1MTcyIDExMS41MDI1ODcsMjYuMDM4IEMxMTEuNzE0NzU4LDI2LjA0MzY3MjQgMTExLjkyNTMxLDI2LjA1MzM5NjYgMTEyLjEzNzQ4MiwyNi4wNjMxMjA3IEMxMTIuMzcxNTE5LDI2LjA3MjAzNDUgMTEyLjYwMzEyNiwyNi4wODMzNzkzIDExMi44Mzk1OTMsMjYuMDk3MTU1MiBDMTEyLjg0MTIxMiwyNi4wOTcxNTUyIDExMi45MTgxNDUsMjYuMTAxMjA2OSAxMTIuOTE5NzY0LDI2LjEwMTIwNjkgQzExMy4xMzExMjYsMjYuMTEzMzYyMSAxMTMuMzQwODY5LDI2LjEyNzk0ODMgMTEzLjU1MDYxMSwyNi4xNDQxNTUyIEMxMTMuODExMzcyLDI2LjE2Mjc5MzEgMTE0LjA3MTMyMywyNi4xODMwNTE3IDExNC4zMzA0NjQsMjYuMjA3MzYyMSBDMTE0LjUxOTE1MSwyNi4yMjM1NjkgMTE0LjcwNjIxOCwyNi4yNDEzOTY2IDExNC45NDEwNjUsMjYuMjY2NTE3MiBDMTE1LjE5MDQ4OCwyNi4yOTI0NDgzIDExNS40Mzc0ODIsMjYuMzIgMTE1LjY4Mjg1NiwyNi4zNDk5ODI4IEMxMTUuODY2Njg1LDI2LjM3MjY3MjQgMTE2LjA0ODg5MywyNi4zOTUzNjIxIDExNi4yMjk0ODIsMjYuNDE4ODYyMSBDMTE2LjQ5NzUzMSwyNi40NTUzMjc2IDExNi43NjMxNTEsMjYuNDk1ODQ0OCAxMTcuMDI5NTgsMjYuNTM3OTgyOCBMMTE3LjE0NTM4NCwyNi41NTU4MTAzIEMxMTcuMjczMzM1LDI2LjU3NTI1ODYgMTE3LjQwMjA5NiwyNi41OTQ3MDY5IDExNy41MzAwNDcsMjYuNjE2NTg2MiBDMTE3LjgxNzUzMSwyNi42NjUyMDY5IDExOC4xMDE3NzcsMjYuNzE4Njg5NyAxMTguMzg1MjEyLDI2Ljc3Mzc5MzEgTDExOC43OTc0MDksMjYuODUyMzk2NiBDMTE5LjEwMjcwOSwyNi45MTQ3OTMxIDExOS40MDMxNTEsMjYuOTgzNjcyNCAxMTkuNzAyNzgzLDI3LjA1NDE3MjQgTDEyMC4wNTgyOTIsMjcuMTMzNTg2MiBDMTIwLjQ3MTI5OCwyNy4yMzQwNjkgMTIwLjg3NzgyNiwyNy4zNDE4NDQ4IDEyMS4yNzc4NzUsMjcuNDU2MTAzNCBDMTIxLjcxNDM2NiwyNy41ODA4OTY2IDEyMi4xNDM1NjgsMjcuNzE0NjAzNCAxMjIuNTY0NjcyLDI3Ljg1NjQxMzggQzEyMi42MzUxMjYsMjcuODc5OTEzOCAxMjIuNzA1NTgsMjcuOTA1MDM0NSAxMjIuNzc1MjI1LDI3LjkzMTc3NTkgTDEyMi45NDUyODYsMjcuOTkyNTUxNyBDMTIzLjIzMjc3MSwyOC4wOTQ2NTUyIDEyMy41MjAyNTUsMjguMTk2NzU4NiAxMjMuNzk5NjQyLDI4LjMwNTM0NDggQzEyMy44NjExODgsMjguMzI5NjU1MiAxMjMuOTIwMzA0LDI4LjM1Mzk2NTUgMTIzLjk4MDIzMSwyOC4zNzkwODYyIEwxMjQuMTI3NjE3LDI4LjQ0MDY3MjQgQzEyNC41MDMzNzIsMjguNTkzODI3NiAxMjQuODcxODM4LDI4Ljc1NDI3NTkgMTI1LjIzMzAxNiwyOC45MjM2Mzc5IEwxMjUuNjA2MzQxLDI5LjA5OTQ4MjggQzEyNS43Nzk2NDIsMjkuMTg0NTY5IDEyNS45NTA1MTMsMjkuMjcyMDg2MiAxMjYuMTE3MzM1LDI5LjM1NzE3MjQgQzEyNi4yNTE3NjQsMjkuNDI3NjcyNCAxMjYuMzgyMTQ1LDI5LjUwMTQxMzggMTI2LjUxNDE0NSwyOS41NzI3MjQxIEwxMjYuNDQ3NzQsNTUuMzU3MDg2MiBMMTA5LjAwOTE2Myw0NS4yODI4NzkzIFogTTc5LjEwOTEzODcsMzIuMzU0NjM3OSBDNzkuMTM3NDgyMiwzMi4zMzUxODk3IDc5LjE2NDIwNjEsMzIuMzE1NzQxNCA3OS4xOTE3Mzk5LDMyLjI5NjI5MzEgQzc5LjU4NzczOTksMzIuMDIxNTg2MiA3OS45OTUwNzczLDMxLjc1MjU1MTcgODAuNDEyMTMyNSwzMS40ODU5NDgzIEM4MC40NTUwNTI4LDMxLjQ1NzU4NjIgODAuNDk4NzgyOCwzMS40MjkyMjQxIDgwLjU0MjUxMjksMzEuNDAxNjcyNCBDODAuOTkzNTgwNCwzMS4xMTQ4MTAzIDgxLjQ1NTk4NTMsMzAuODM0NDMxIDgxLjkzMDUzNzQsMzAuNTU4MTAzNCBDODIuMzUwMDIyMSwzMC4zMTMzNzkzIDgyLjc3Njc5NTEsMzAuMDc1OTQ4MyA4My4yMDY4MDc0LDI5Ljg0MzM3OTMgTDg0LjAxODI0MjksMjkuNDIwMzc5MyBDODQuMTcwNDg4MywyOS4zNDI1ODYyIDg0LjMyMTExNDEsMjkuMjYxNTUxNyA4NC40NzQxNjkzLDI5LjE4NDU2OSBMODQuNTAxNzAzMSwyOS4xNzA3OTMxIEw4NS4zMDUwNDA1LDI4Ljc4MDIwNjkgQzg1LjQ4NDgxOTYsMjguNjk0MzEwMyA4NS42NjI5NzkxLDI4LjYwNjc5MzEgODUuODQ0Mzc3OSwyOC41MjI1MTcyIEM4Ni4wMjQ5NjY5LDI4LjQzOTA1MTcgODYuMjA3OTg1MywyOC4zNTYzOTY2IDg2LjM5MTAwMzcsMjguMjczNzQxNCBDODYuNjU3NDMzMSwyOC4xNTM4MTAzIDg2LjkyNTQ4MjIsMjguMDM0Njg5NyA4Ny4xOTUxNTA5LDI3LjkxODgxMDMgQzg3LjM4NjI2NzUsMjcuODM2MTU1MiA4Ny41NzgxOTM5LDI3Ljc1NTEyMDcgODcuNzcwMTIwMiwyNy42NzQwODYyIEM4OC4wMzk3ODksMjcuNTYyMjU4NiA4OC4zMTE4ODcxLDI3LjQ1MjA1MTcgODguNTg0Nzk1MSwyNy4zNDM0NjU1IEM4OC43NzY3MjE1LDI3LjI2NjQ4MjggODguOTY5NDU3NywyNy4xOTExMjA3IDg5LjE2MDU3NDIsMjcuMTE2NTY5IEM4OS40MTA4MDc0LDI3LjAyMDk0ODMgODkuNjYxMDQwNSwyNi45MjY5NDgzIDg5LjkxMjg5MzMsMjYuODM0NTY5IEM4OS45MTUzMjI3LDI2LjgzMzc1ODYgOTAuMDA0NDAyNSwyNi44MDA1MzQ1IDkwLjAwNjAyMjEsMjYuNzk5NzI0MSBMOTAuMTQ0NTAwNiwyNi43NDk0ODI4IEM5MC4yODYyMTg0LDI2LjY5NjgxMDMgOTAuNDI3MTI2NCwyNi42NDQ5NDgzIDkwLjU3MTI3MzYsMjYuNTkzODk2NiBMOTEuNjU0ODA3NCwyNi4yMjI3NTg2IEM5MS43NjczNzE4LDI2LjE4Mzg2MjEgOTEuODc5OTM2MiwyNi4xNDQ5NjU1IDkxLjk5NTczOTksMjYuMTA4NSBMOTIuNDUyNDc2MSwyNS45NjU4NzkzIEM5Mi44ODk3NzY3LDI1LjgyNzMxMDMgOTMuMzI3MDc3MywyNS42OTM2MDM0IDkzLjc2NjgwNzQsMjUuNTY1NTY5IEM5My45NjY4MzE5LDI1LjUwNzIyNDEgOTQuMTY2ODU2NCwyNS40NTEzMTAzIDk0LjM2NzY5MDgsMjUuMzk1Mzk2NiBDOTQuNzcwOTc5MSwyNS4yODE5NDgzIDk1LjE3NjY5NjksMjUuMTczMzYyMSA5NS41ODMyMjQ1LDI1LjA2ODgyNzYgTDk1LjY3MzkyMzksMjUuMDQ2MTM3OSBDOTUuODM3NTA2NywyNS4wMDQgOTYuMDAwMjc5OCwyNC45NjE4NjIxIDk2LjE2Mzg2MjYsMjQuOTIxMzQ0OCBDOTYuNjUyMTgxNiwyNC44MDE0MTM4IDk3LjE0MTMxMDQsMjQuNjg3MTU1MiA5Ny42MzA0MzkzLDI0LjU4MDE4OTcgTDk3Ljk0MDU5ODgsMjQuNTA5Njg5NyBDOTguNTMwOTU0NiwyNC4zODMyNzU5IDk5LjEyMjkzMDEsMjQuMjY2NTg2MiA5OS43MTQwOTU3LDI0LjE1OCBMMTAwLjEwNjg1NiwyNC4wODk5MzEgQzEwMC43MDEyNjEsMjMuOTg1Mzk2NiAxMDEuMjk0MDQ3LDIzLjg5MDU4NjIgMTAxLjg4NzY0MiwyMy44MDM4NzkzIEwxMDIuMzUyNDc2LDIzLjczNjYyMDcgQzEwMy4wNDY0ODgsMjMuNjQxIDEwMy43MzI0MDIsMjMuNTU4MzQ0OCAxMDQuMzkyNDAyLDIzLjQ5MTA4NjIgTDEwNC45MjI4MzIsMjMuNDQyNDY1NSBDMTA1LjMxMjM1MywyMy40MDYgMTA1LjcwMTA2NSwyMy4zNzI3NzU5IDEwNi4wODk3NzcsMjMuMzQ0NDEzOCBDMTA2LjI5Nzg5OSwyMy4zMjk4Mjc2IDEwNi41MDUyMTIsMjMuMzE2MDUxNyAxMDYuNzE5MDA0LDIzLjMwMzg5NjYgQzEwNy4wODc0NywyMy4yODEyMDY5IDEwNy40NTM1MDcsMjMuMjYyNTY5IDEwNy44MTc5MjQsMjMuMjQ3MTcyNCBMMTA3Ljk2NTMxLDIzLjI0MTUgQzEwOC4xMzM3NTIsMjMuMjM1MDE3MiAxMDguMzAzMDA0LDIzLjIyNzcyNDEgMTA4LjQ3MjI1NSwyMy4yMjI4NjIxIEMxMDguNzM1NDQ1LDIzLjIxNTU2OSAxMDguOTk3ODI2LDIzLjIxMTUxNzIgMTA5LjI2MDIwNiwyMy4yMDc0NjU1IEMxMDkuNzY1NTMxLDIzLjIwMDk4MjggMTEwLjI2NTk5OCwyMy4yMDE3OTMxIDExMC43NjY0NjQsMjMuMjA4Mjc1OSBMMTEwLjg0OTg3NSwyMy4yMDkwODYyIEMxMTEuMDY4NTI1LDIzLjIxMzEzNzkgMTExLjI4NzE3NSwyMy4yMTYzNzkzIDExMS41MDQyMDYsMjMuMjIyODYyMSBDMTExLjcxNjM3OCwyMy4yMjkzNDQ4IDExMS45MjYxMiwyMy4yMzkwNjkgMTEyLjEzNTg2MywyMy4yNDcxNzI0IEMxMTIuMzY5ODk5LDIzLjI1Njg5NjYgMTEyLjYwMzEyNiwyMy4yNjkwNTE3IDExMi44Mzk1OTMsMjMuMjgyMDE3MiBDMTEyLjg0MTIxMiwyMy4yODIwMTcyIDExMi45MTgxNDUsMjMuMjg2MDY5IDExMi45MTk3NjQsMjMuMjg2MDY5IEMxMTMuMTMxMTI2LDIzLjI5OTAzNDUgMTEzLjM0MDg2OSwyMy4zMTM2MjA3IDExMy41NTA2MTEsMjMuMzI5MDE3MiBDMTEzLjgxMTM3MiwyMy4zNDc2NTUyIDExNC4wNzEzMjMsMjMuMzY5NTM0NSAxMTQuMzMyMDgzLDIzLjM5MjIyNDEgQzExNC41MTk5NjEsMjMuNDA5MjQxNCAxMTQuNzA3MDI4LDIzLjQyNzA2OSAxMTQuOTQxMDY1LDIzLjQ1MTM3OTMgQzExNS4xOTA0ODgsMjMuNDc3MzEwMyAxMTUuNDM3NDgyLDIzLjUwNTY3MjQgMTE1LjY4Mjg1NiwyMy41MzU2NTUyIEwxMTUuNzUxNjkxLDIzLjU0NDU2OSBDMTE1LjkxMTIyNSwyMy41NjMyMDY5IDExNi4wNzA3NTgsMjMuNTgyNjU1MiAxMTYuMjI5NDgyLDIzLjYwNDUzNDUgQzExNi40OTgzNDEsMjMuNjQxODEwMyAxMTYuNzYzOTYxLDIzLjY4MTUxNzIgMTE3LjAyNzk2MSwyMy43MjIwMzQ1IEwxMTcuMTgxODI2LDIzLjc0NzE1NTIgQzExNy4yOTg0MzksMjMuNzY0MTcyNCAxMTcuNDE0MjQzLDIzLjc4MTE4OTcgMTE3LjUzMDA0NywyMy44MDE0NDgzIEMxMTcuODE3NTMxLDIzLjg1MDA2OSAxMTguMTAxNzc3LDIzLjkwNDM2MjEgMTE4LjM4NzY0MiwyMy45NTk0NjU1IEwxMTguNzk3NDA5LDI0LjAzNzI1ODYgQzExOS4xMDI3MDksMjQuMDk5NjU1MiAxMTkuNDAzMTUxLDI0LjE2OTM0NDggMTE5LjcwNTIxMiwyNC4yMzkwMzQ1IEwxMjAuMDU3NDgyLDI0LjMxODQ0ODMgQzEyMC40NzA0ODgsMjQuNDE5NzQxNCAxMjAuODc3ODI2LDI0LjUyNTg5NjYgMTIxLjI3Nzg3NSwyNC42NDA5NjU1IEMxMjEuNzE0MzY2LDI0Ljc2NTc1ODYgMTIyLjE0Mjc1OCwyNC44OTg2NTUyIDEyMi41NjQ2NzIsMjUuMDQxMjc1OSBDMTIyLjYzNTEyNiwyNS4wNjQ3NzU5IDEyMi43MDU1OCwyNS4wOTA3MDY5IDEyMi43NzUyMjUsMjUuMTE2NjM3OSBMMTIyLjk0NjA5NiwyNS4xNzgyMjQxIEMxMjMuMjMzNTgsMjUuMjc4NzA2OSAxMjMuNTIwMjU1LDI1LjM4MTYyMDcgMTIzLjc5OTY0MiwyNS40OTEwMTcyIEMxMjMuODYyODA3LDI1LjUxNDUxNzIgMTIzLjkyMjczNCwyNS41NDA0NDgzIDEyMy45ODM0NywyNS41NjYzNzkzIEwxMjQuMTI3NjE3LDI1LjYyNjM0NDggQzEyNC41MDQxODIsMjUuNzc4Njg5NyAxMjQuODcyNjQ4LDI1Ljk0MDc1ODYgMTI1LjI1NjUwMSwyNi4xMTkwMzQ1IEMxMjUuMjYwNTUsMjYuMTIwNjU1MiAxMjUuMzEzOTk4LDI2LjE0NjU4NjIgMTI1LjMxODA0NywyNi4xNDgyMDY5IEMxMjUuNDE2MDM0LDI2LjE5MzU4NjIgMTI1LjUxMzIxMiwyNi4yMzk3NzU5IDEyNS42MDc5NjEsMjYuMjg1MTU1MiBDMTI1Ljc4MDQ1MiwyNi4zNzAyNDE0IDEyNS45NTEzMjMsMjYuNDU2OTQ4MyAxMjYuMTE3MzM1LDI2LjU0MzY1NTIgQzEyNi4xMTk3NjQsMjYuNTQ0NDY1NSAxMjYuMTIzMDA0LDI2LjU0NjA4NjIgMTI2LjEyNTQzMywyNi41NDc3MDY5IEMxMjYuMjU5MDUzLDI2LjYxNzM5NjYgMTI2LjM5MTA1MywyNi42ODg3MDY5IDEyNi41MjIyNDMsMjYuNzYxNjM3OSBMMTI2LjUxOTAwNCwyNy44OTEyNTg2IEMxMjYuNDMzMTYzLDI3Ljg0NzUgMTI2LjM0ODk0MiwyNy44MDM3NDE0IDEyNi4yNjE0ODIsMjcuNzYwNzkzMSBMMTI1Ljg2MTQzMywyNy41NzExNzI0IEMxMjUuNDc5MiwyNy4zOTM3MDY5IDEyNS4wODgwNTksMjcuMjIzNTM0NSAxMjQuNjg4ODIsMjcuMDU5ODQ0OCBMMTI0LjU1ODQzOSwyNy4wMDYzNjIxIEMxMjQuNDg3MTc1LDI2Ljk3NjM3OTMgMTI0LjQxNDI5MiwyNi45NDU1ODYyIDEyNC4zNDA1OTksMjYuOTE3MjI0MSBDMTI0LjA0NjYzNiwyNi44MDEzNDQ4IDEyMy43NDQ1NzQsMjYuNjkzNTY5IDEyMy40MzkyNzQsMjYuNTg1NzkzMSBMMTIzLjI4NzgzOCwyNi41MzE1IEMxMjMuMjA1MjM3LDI2LjUwMTUxNzIgMTIzLjEyMTgyNiwyNi40NzA3MjQxIDEyMy4wMzc2MDUsMjYuNDQyMzYyMSBDMTIyLjU5NDYzNiwyNi4yOTQwNjkgMTIyLjE0NTk5OCwyNi4xNTM4NzkzIDEyMS42ODY4MzIsMjYuMDIyNjAzNCBDMTIxLjI2NzM0NywyNS45MDI2NzI0IDEyMC44NDMwMDQsMjUuNzkwODQ0OCAxMjAuNDEwNTYyLDI1LjY4NTUgQzEyMC4zMzg0ODgsMjUuNjY4NDgyOCAxMjAuMjYzOTg1LDI1LjY1MTQ2NTUgMTIwLjE4OTQ4MiwyNS42MzYwNjkgTDEyMC4wNDEyODYsMjUuNjAyMDM0NSBDMTE5LjcyODY5NywyNS41MjkxMDM0IDExOS40MTQ0ODgsMjUuNDU2OTgyOCAxMTkuMDk0NjExLDI1LjM5MTM0NDggTDExOC42Njc4MzgsMjUuMzEwMzEwMyBDMTE4LjM3MjI1NSwyNS4yNTI3NzU5IDExOC4wNzY2NzIsMjUuMTk2ODYyMSAxMTcuNzc3MDQsMjUuMTQ1ODEwMyBDMTE3LjY0MTgwMSwyNS4xMjM5MzEgMTE3LjUwNTc1MiwyNS4xMDIwNTE3IDExNy4zNjk3MDMsMjUuMDgyNjAzNCBMMTE3LjI1Nzk0OCwyNS4wNjM5NjU1IEMxMTYuOTgyNjExLDI1LjAyMTgyNzYgMTE2LjcwNzI3NCwyNC45Nzk2ODk3IDExNi40Mjc4ODcsMjQuOTQyNDEzOCBDMTE2LjI0MTYyOSwyNC45MTcyOTMxIDExNi4wNTM3NTIsMjQuODk0NjAzNCAxMTUuODY0MjU1LDI0Ljg3MDI5MzEgQzExNS42MDgzNTMsMjQuODM5NSAxMTUuMzUyNDUyLDI0LjgxMDMyNzYgMTE1LjA0Nzk2MSwyNC43Nzg3MjQxIEMxMTQuODU1MjI1LDI0Ljc1OTI3NTkgMTE0LjY2MDA1OSwyNC43Mzk4Mjc2IDExNC40NjQwODMsMjQuNzIyODEwMyBDMTE0LjE5NzY1NCwyNC42OTc2ODk3IDExMy45Mjg3OTUsMjQuNjc3NDMxIDExMy42NTkxMjYsMjQuNjU3MTcyNCBDMTEzLjQ0MjA5NiwyNC42NDE3NzU5IDExMy4yMjUwNjUsMjQuNjI1NTY5IDExMy4wMTQ1MTMsMjQuNjE0MjI0MSBMMTEyLjkyMDU3NCwyNC42MDkzNjIxIEMxMTIuNjgwODY5LDI0LjU5NDc3NTkgMTEyLjQ0MDM1MywyNC41ODM0MzEgMTEyLjE5OTgzOCwyNC41NzI4OTY2IEMxMTEuOTgzNjE3LDI0LjU2Mzk4MjggMTExLjc2NzM5NiwyNC41NTUwNjkgMTExLjU0NzkzNiwyNC41NDc3NzU5IEMxMTEuMzIzNjE3LDI0LjU0MTI5MzEgMTExLjA5ODQ4OCwyNC41MzgwNTE3IDExMC44NzI1NSwyNC41MzQgTDExMC43ODgzMjksMjQuNTMyMzc5MyBDMTEwLjI3NDA5NiwyNC41MjUwODYyIDEwOS43NjE0ODIsMjQuNTI0Mjc1OSAxMDkuMjM4MzQxLDI0LjUzMTU2OSBDMTA4Ljk2ODY3MiwyNC41MzU2MjA3IDEwOC42OTk4MTMsMjQuNTQwNDgyOCAxMDguNDI4NTI1LDI0LjU0ODU4NjIgQzEwOC40MTMxMzksMjQuNTQ5Mzk2NiAxMDguMzk2OTQyLDI0LjU1MDIwNjkgMTA4LjM4MTU1NiwyNC41NTAyMDY5IEMxMDguMzIzMjQ5LDI0LjUzNTYyMDcgMTA4LjI2MzMyMywyNC41MjUwODYyIDEwOC4yMDA5NjcsMjQuNTI1MDg2MiBMMTA4LjE5ODUzNywyNC41MjUwODYyIEMxMDguMTE5MTc1LDI0LjUyNTg5NjYgMTA4LjA0Mzg2MywyNC41NDIxMDM0IDEwNy45NzI1OTksMjQuNTY0NzkzMSBDMTA3LjkwMTMzNSwyNC41NjgwMzQ1IDEwNy44MjkyNjEsMjQuNTcwNDY1NSAxMDcuNzU3OTk4LDI0LjU3Mjg5NjYgQzEwNy4zODMwNTMsMjQuNTg5MTAzNCAxMDcuMDA3Mjk4LDI0LjYwNzc0MTQgMTA2LjYyMDIwNiwyNC42MzA0MzEgQzEwNi40MDcyMjUsMjQuNjQ0MjA2OSAxMDYuMTk1MDUzLDI0LjY1NzE3MjQgMTA1Ljk4MjA3MSwyNC42NzI1NjkgQzEwNS41ODQ0NTIsMjQuNzAwOTMxIDEwNS4xODUyMTIsMjQuNzM1Nzc1OSAxMDQuNzg2NzgzLDI0Ljc3MjI0MTQgTDEwNC42MTEwNTMsMjQuNzg5MjU4NiBDMTA0LjQ4Nzk2MSwyNC43OTg5ODI4IDEwNC4zNjQwNTksMjQuODEwMzI3NiAxMDQuMjQwMTU3LDI0LjgyMzI5MzEgQzEwMy41NTAxOTQsMjQuODk0NjAzNCAxMDIuODQ2NDY0LDI0Ljk3ODA2OSAxMDIuMTUwMDIyLDI1LjA3NDUgTDEwMS42NzMwNCwyNS4xNDMzNzkzIEMxMDEuMDY0ODY5LDI1LjIzMjUxNzIgMTAwLjQ1NjY5NywyNS4zMzA1NjkgOTkuODQ5MzM1LDI1LjQzNjcyNDEgTDk5LjQ0NTIzNjgsMjUuNTA2NDEzOCBDOTguODM5NDk0NSwyNS42MTgyNDE0IDk4LjIzMzc1MjEsMjUuNzM4MTcyNCA5Ny42Mjk2Mjk0LDI1Ljg2NzAxNzIgTDk3LjMxMjE4MTYsMjUuOTM5MTM3OSBDOTYuODEwMDk1NywyNi4wNDg1MzQ1IDk2LjMwODgxOTYsMjYuMTY2MDM0NSA5NS44MDgzNTM0LDI2LjI4ODM5NjYgQzk1LjY1NTI5ODIsMjYuMzI2NDgyOCA5NS41MDIyNDI5LDI2LjM2NjE4OTcgOTUuMzQ5MTg3NywyNi40MDU4OTY2IEw5NS4yMTM5NDg1LDI2LjQ0MDc0MTQgQzk0Ljc5NjA4MzQsMjYuNTQ3NzA2OSA5NC4zODA2NDc5LDI2LjY1ODcyNDEgOTMuOTY3NjQxNywyNi43NzQ2MDM0IEM5My43NjE5NDg1LDI2LjgzMTMyNzYgOTMuNTU2MjU1MiwyNi44ODg4NjIxIDkzLjM1MDU2MiwyNi45NDg4Mjc2IEM5Mi45MDAzMDQzLDI3LjA4MDEwMzQgOTIuNDUxNjY2MywyNy4yMTc4NjIxIDkyLjAwMzgzOCwyNy4zNTk2NzI0IEw5MS4wMDkzODQsMjcuNjgzIEM5MC44NTE0Njk5LDI3LjczNDg2MjEgOTAuNjk1OTg1MywyNy43ODk5NjU1IDkwLjU0NDU0OTcsMjcuODQyNjM3OSBMOTAuNDM5MjczNiwyNy44Nzc0ODI4IEM5MC4zMTY5OTE0LDI3LjkxOTYyMDcgOTAuMTk0NzA5MiwyNy45NjA5NDgzIDkwLjA3NDA0NjYsMjguMDAzMDg2MiBDODkuOTI1MDQwNSwyOC4wNTU3NTg2IDg5Ljc3NzY1NCwyOC4xMTAwNTE3IDg5LjYzMDI2NzUsMjguMTY1MTU1MiBMODkuMzk3ODUwMywyOC4yNTAyNDE0IEM4OS4xNDAzMjg4LDI4LjM0NTA1MTcgODguODgyODA3NCwyOC40NDA2NzI0IDg4LjYyNjA5NTcsMjguNTQwMzQ0OCBDODguNDI2ODgxLDI4LjYxNjUxNzIgODguMjMwMDk1NywyOC42OTQzMTAzIDg4LjAzNDEyMDIsMjguNzczNzI0MSBDODcuNzUzMTE0MSwyOC44ODQ3NDE0IDg3LjQ3MzcyNzYsMjguOTk4MTg5NyA4Ny4xOTc1ODA0LDI5LjExNDg3OTMgQzg2Ljk5OTE3NTUsMjkuMTk1OTEzOCA4Ni44MDE1ODA0LDI5LjI4MDE4OTcgODYuNjA1NjA0OSwyOS4zNjM2NTUyIEM4Ni4zMjc4MzgsMjkuNDg0Mzk2NiA4Ni4wNTI1MDA2LDI5LjYwNTk0ODMgODUuNzc4NzgyOCwyOS43Mjk5MzEgQzg1LjU4NjA0NjYsMjkuODE2NjM3OSA4NS4zOTQ5MzAxLDI5LjkwMjUzNDUgODUuMjA2MjQyOSwyOS45OTE2NzI0IEM4NS4wMTY3NDYsMzAuMDc5MTg5NyA4NC44MzA0ODgzLDMwLjE2OTEzNzkgODQuNjQzNDIwOSwzMC4yNTk4OTY2IEw4NC4yMDc3Mzk5LDMwLjQ2ODk2NTUgQzg0LjA4MzAyODIsMzAuNTMwNTUxNyA4My45NTkxMjY0LDMwLjU5MDUxNzIgODMuODM0NDE0NywzMC42NTI5MTM4IEM4My43MjU4OTk0LDMwLjcwNzIwNjkgODMuNjE5ODEzNSwzMC43NjMxMjA3IDgzLjUxMjkxNzgsMzAuODE5MDM0NSBMODIuNzgyNDYzOCwzMS4xOTc0NjU1IEM4Mi42ODUyODU5LDMxLjI0NzcwNjkgODIuNTg4MTA4LDMxLjI5ODc1ODYgODIuNDkzMzU5NSwzMS4zNDk4MTAzIEM4Mi4wNTEyLDMxLjU4ODg2MjEgODEuNjEzMDg5NiwzMS44MzI3NzU5IDgxLjE4MTQ1NzcsMzIuMDgzOTgyOCBDODAuNzk0MzY1NiwzMi4zMDkyNTg2IDgwLjQxOTQyMDksMzIuNTM3Nzc1OSA4MC4wNDg1MjUyLDMyLjc2ODcyNDEgTDc5Ljc2MzQ2OTksMzIuOTQ1Mzc5MyBDNzkuNjU5ODEzNSwzMy4wMTEwMTcyIDc5LjU1ODU4NjUsMzMuMDc3NDY1NSA3OS40NTczNTk1LDMzLjE0MzkxMzggTDc5LjI4ODEwOCwzMy4yNTU3NDE0IEM3OC45NzYzMjg4LDMzLjQ1OTEzNzkgNzguNjY2OTc5MSwzMy42NjMzNDQ4IDc4LjM2NTcyNzYsMzMuODcwNzkzMSBDNzguMjIxNTgwNCwzMy45NzA0NjU1IDc4LjA4MDY3MjQsMzQuMDcwMTM3OSA3Ny45Mzk3NjQ0LDM0LjE3MDYyMDcgTDc3Ljg2OTMxMDQsMzQuMjIwODYyMSBDNzcuNTk4ODMxOSwzNC40MTQ1MzQ1IDc3LjMzMDc4MjgsMzQuNjA4MjA2OSA3Ny4wNzAwMjIxLDM0LjgwNTEyMDcgQzc2LjkwODA1ODksMzQuOTI3NDgyOCA3Ni43NDc3MTUzLDM1LjA0OTg0NDggNzYuNTg5ODAxMiwzNS4xNzMwMTcyIEM3Ni4zMzQ3MDkyLDM1LjM3MTU1MTcgNzYuMDg2MDk1NywzNS41NzA4OTY2IDc1Ljg0MTUzMTMsMzUuNzczNDgyOCBMNzUuNzMzODI1OCwzNS44NjI2MjA3IEM3NS42MjQ1MDA2LDM1Ljk1MjU2OSA3NS41MTQzNjU2LDM2LjA0MjUxNzIgNzUuNDA3NDY5OSwzNi4xMzQwODYyIEM3NS4yMjc2OTA4LDM2LjI4ODA1MTcgNzUuMDU0MzkwMiwzNi40NDI4Mjc2IDc0Ljg4MTA4OTYsMzYuNTk2NzkzMSBMNzQuNjYyNDM5MywzNi43OTI4OTY2IEM3NC41NTQ3MzM3LDM2Ljg4OTMyNzYgNzQuNDQ3ODM4LDM2Ljk4NDk0ODMgNzQuMzM0NDYzOCwzNy4wOTAyOTMxIEw3NC4yNTc1MzEzLDM3LjE2NDg0NDggQzczLjk3NzMzNSwzNy40MjkwMTcyIDczLjcwNjA0NjYsMzcuNjk1NjIwNyA3My40NDUyODU5LDM3Ljk2MjIyNDEgQzczLjM1NzAxNiwzOC4wNTIxNzI0IDczLjI2OTU1NTgsMzguMTQyMTIwNyA3My4xODUzMzUsMzguMjMyMDY5IEM3Mi45MTY0NzYxLDM4LjUxMzI1ODYgNzIuNjU3MzM1LDM4Ljc5NTI1ODYgNzIuMzkzMzM1LDM5LjA5NzUxNzIgQzcyLjIyNDg5MzMsMzkuMjkxMTg5NyA3Mi4wNjUzNTk1LDM5LjQ4NDg2MjEgNzEuOTA3NDQ1NCwzOS42NzkzNDQ4IEw3MS44MjcyNzM2LDM5Ljc3NDk2NTUgQzcxLjc3NjI1NTIsMzkuODM1NzQxNCA3MS43MjYwNDY2LDM5Ljg5NTcwNjkgNzEuNjc3NDU3NywzOS45NTcyOTMxIEM3MS41NjgxMzI1LDQwLjA5NTg2MjEgNzEuNDY2MDk1Nyw0MC4yMzM2MjA3IDcxLjM2NDA1ODksNDAuMzcxMzc5MyBMNzEuMjcwMTIwMiw0MC40OTk0MTM4IEM3MS4yMTE4MTM1LDQwLjU3NzIwNjkgNzEuMTU5MTc1NSw0MC42NTU4MTAzIDcxLjEwMjQ4ODMsNDAuNzMzNjAzNCBDNzIuNjkxMzQ3MiwzNy44MDk4NzkzIDc1LjQyNzcxNTMsMzQuOTIxODEwMyA3OS4xMDkxMzg3LDMyLjM1NDYzNzkgTDc5LjEwOTEzODcsMzIuMzU0NjM3OSBaIE03MS42NjIwNzEyLDUyLjI3ODU4NjIgQzcxLjYxODM0MTEsNTIuMjI0MjkzMSA3MS41NzM4MDEyLDUyLjE3MTYyMDcgNzEuNTMyNTAwNiw1Mi4xMTczMjc2IEM3MS40MzA0NjM4LDUxLjk4NTI0MTQgNzEuMzM1NzE1Myw1MS44NTE1MzQ1IDcxLjI0MTc3NjcsNTEuNzE3MDE3MiBDNzEuMTk2NDI3LDUxLjY1MjE4OTcgNzEuMTQ5NDU3Nyw1MS41ODgxNzI0IDcxLjEwNjUzNzQsNTEuNTIzMzQ0OCBDNzEuMDE3NDU3Nyw1MS4zODk2Mzc5IDcwLjkzNDA0NjYsNTEuMjU0MzEwMyA3MC44NTMwNjUsNTEuMTE4MTcyNCBDNzAuODEwOTU0Niw1MS4wNDg0ODI4IDcwLjc2ODAzNDQsNTAuOTc4NzkzMSA3MC43MjgzNTM0LDUwLjkwODI5MzEgQzcwLjY1Mzg1MDMsNTAuNzc2MjA2OSA3MC41ODMzOTYzLDUwLjY0MjUgNzAuNTE1MzcxOCw1MC41MDc5ODI4IEM3MC40NzU2OTA4LDUwLjQzMDE4OTcgNzAuNDM2MDA5OCw1MC4zNTMyMDY5IDcwLjM5OTU2ODEsNTAuMjc0NjAzNCBDNzAuMzM4ODMxOSw1MC4xNDY1NjkgNzAuMjgyOTU0Niw1MC4wMTY5MTM4IDcwLjIyODY5NjksNDkuODg3MjU4NiBDNzAuMTkxNDQ1NCw0OS43OTgxMjA3IDcwLjE1NDE5MzksNDkuNzA4MTcyNCA3MC4xMjAxODE2LDQ5LjYxNzQxMzggQzcwLjA3NDgzMTksNDkuNDk4MjkzMSA3MC4wMzI3MjE1LDQ5LjM3NzU1MTcgNjkuOTkyMjMwNyw0OS4yNTY4MTAzIEM2OS45NTc0MDg2LDQ5LjE1MDY1NTIgNjkuOTIzMzk2Myw0OS4wNDQ1IDY5Ljg5MTgxMzUsNDguOTM4MzQ0OCBDNjkuODYwMjMwNyw0OC44MzEzNzkzIDY5LjgzMTg4NzEsNDguNzIyNzkzMSA2OS44MDQzNTM0LDQ4LjYxNDIwNjkgQzY5Ljc3Mjc3MDYsNDguNDg4NjAzNCA2OS43NDI4MDc0LDQ4LjM2MTM3OTMgNjkuNzE2ODkzMyw0OC4yMzMzNDQ4IEM2OS42OTgyNjc1LDQ4LjE0MzM5NjYgNjkuNjgwNDUxNSw0OC4wNTM0NDgzIDY5LjY2NTA2NSw0Ny45NjE4NzkzIEM2OS42NTI5MTc4LDQ3Ljg5MzgxMDMgNjkuNjQ0ODE5Niw0Ny44MjQ5MzEgNjkuNjM1MTAxOCw0Ny43NTY4NjIxIEM2OS42NTA0ODgzLDQ3LjY0NTg0NDggNjkuNjY5MTE0MSw0Ny41Mjk5NjU1IDY5LjY5MzQwODYsNDcuMzkxMzk2NiBDNjkuNzEzNjU0LDQ3LjI3NzEzNzkgNjkuNzMzODk5NCw0Ny4xNjIwNjkgNjkuNzU4MTkzOSw0Ny4wNDk0MzEgQzY5Ljc5Nzg3NDgsNDYuODYwNjIwNyA2OS44NDY0NjM4LDQ2LjY3MTgxMDMgNjkuODk2NjcyNCw0Ni40ODM4MTAzIEw2OS45MjkwNjUsNDYuMzYzMDY5IEM2OS45NDYwNzEyLDQ2LjI5NSA2OS45NjM4ODcxLDQ2LjIyNjkzMSA2OS45ODgxODE2LDQ2LjE1MDc1ODYgTDcwLjAzNTk2MDcsNDYuMDAyNDY1NSBDNzAuMDU4NjM1Niw0NS45MzExNTUyIDcwLjA4MzczOTksNDUuODU3NDEzOCA3MC4xMDg4NDQyLDQ1Ljc4NDQ4MjggQzcwLjU2MDcyMTUsNDUuNzk1ODI3NiA3MC45NjIzOTAyLDQ1LjkxOTgxMDMgNzEuMjkyNzk1MSw0Ni4xNjUzNDQ4IEM3MS45NzIyMzA3LDQ2LjY2Njk0ODMgNzIuMzQ4Nzk1MSw0Ny42NTE1MTcyIDcyLjM1Mjg0NDIsNDguOTM0MjkzMSBDNzIuMzU1MjczNiw0OS45NjQyNDE0IDcyLjExMTUxOSw1MS4xMjMwMzQ1IDcxLjY2MjA3MTIsNTIuMjc4NTg2MiBMNzEuNjYyMDcxMiw1Mi4yNzg1ODYyIFogTTc0LjAyMTg3NDgsNTcuOTQzNzA2OSBMNzQuNzU0NzU4Myw1Ny41MTk4OTY2IEw3NC43NTQ3NTgzLDU3LjUyOTYyMDcgTDc0LjczNTMyMjcsNjQuNTQ4MDE3MiBMNzQuNzM1MzIyNyw2NC41NDg4Mjc2IEM3NC43MzQ1MTI5LDY0LjYwNjM2MjEgNzQuNzQyNjExLDY0LjY2MjI3NTkgNzQuNzU0NzU4Myw2NC43MTU3NTg2IEw3NC43NTQ3NTgzLDg4Ljk4ODAxNzIgTDczLjkzOTI3MzYsODkuNDU4ODI3NiBMNzQuMDIxODc0OCw1Ny45NDM3MDY5IFogTTM3Ljc0MDUwMDYsNjkuMjE5NjU1MiBMMzcuODIyMjkyLDM3Ljk5MjIwNjkgTDcyLjUzMTgxMzUsNTguMDQ1IEw3Mi40NTQwNzEyLDg3LjgyMTkzMSBDNzIuNDQ2NzgyOCw4Ny44NjQwNjkgNzIuNDQ0MzUzNCw4Ny45MDUzOTY2IDcyLjQ0NDM1MzQsODcuOTQ3NTM0NSBDNzIuNDQ1MTYzMiw4OC4wMDUwNjkgNzIuNDQ1MTYzMiw4OC42MjgyMjQxIDcyLjQ0NTk3Myw4OS4yNTA1NjkgTDcyLjQ0NTk3Myw4OS4yNjkyMDY5IEwzNy43NDA1MDA2LDY5LjIxOTY1NTIgWiBNNTguNzMzMzU5NSwxMy4yMTc1MzQ1IEw2Ni41MjI5NzkxLDE4Ljc5ODM3OTMgTDM2LjcwNzk4NTMsMzYuMDUyMjQxNCBDMzYuNzAwNjk2OSwzNi4wNTcxMDM0IDM2LjY5NDIxODQsMzYuMDYyNzc1OSAzNi42ODc3Mzk5LDM2LjA2NzYzNzkgQzM2LjY3NzIxMjMsMzYuMDczMzEwMyAzNi42NjY2ODQ3LDM2LjA3ODk4MjggMzYuNjU2OTY2OSwzNi4wODYyNzU5IEMzNi42MzUxMDE4LDM2LjEwMTY3MjQgMzYuNjE0MDQ2NiwzNi4xMTcwNjkgMzYuNTkzODAxMiwzNi4xMzU3MDY5IEMzNi41ODczMjI3LDM2LjE0MDU2OSAzNi41ODE2NTQsMzYuMTQ2MjQxNCAzNi41NzUxNzU1LDM2LjE1MTkxMzggQzM2LjU3MTEyNjQsMzYuMTU1OTY1NSAzNi41NjcwNzczLDM2LjE2MDAxNzIgMzYuNTYyMjE4NCwzNi4xNjQwNjkgQzM2LjU1ODk3OTEsMzYuMTY3MzEwMyAzNi41NTU3Mzk5LDM2LjE3MDU1MTcgMzYuNTUyNTAwNiwzNi4xNzI5ODI4IEMzNi41Mjk4MjU4LDM2LjE5NTY3MjQgMzYuNTA4NzcwNiwzNi4yMTk5ODI4IDM2LjQ4OTMzNSwzNi4yNDUxMDM0IEMzNi40ODY5MDU1LDM2LjI0ODM0NDggMzYuNDg1Mjg1OSwzNi4yNTE1ODYyIDM2LjQ4Mjg1NjQsMzYuMjU0ODI3NiBDMzYuNDc3MTg3NywzNi4yNjIxMjA3IDM2LjQ3MjMyODgsMzYuMjY5NDEzOCAzNi40NjY2NjAxLDM2LjI3NTg5NjYgQzM2LjQ2NTg1MDMsMzYuMjc4MzI3NiAzNi40NjQyMzA3LDM2LjI3OTk0ODMgMzYuNDYyNjExLDM2LjI4MjM3OTMgQzM2LjQ1MjA4MzQsMzYuMjk3Nzc1OSAzNi40Mzk5MzYyLDM2LjMxMDc0MTQgMzYuNDMwMjE4NCwzNi4zMjY5NDgzIEMzNi4zNTAwNDY2LDM2LjQ2NzEzNzkgMzYuMzIwODkzMywzNi42MjE5MTM4IDM2LjMzNTQ2OTksMzYuNzcxODI3NiBMMzYuMjUzNjc4NSw2OC4xODk3MDY5IEwzLjg1Mzc1MjE1LDQ0Ljk3ODE4OTcgTDU4LjczMzM1OTUsMTMuMjE3NTM0NSBaIE0xMzAuNzI5MjM3LDIyLjgzMTQ2NTUgTDk0LjYxNzExNDEsMS45NjgzMjc1OSBDOTQuMjMzMjYxMywxLjc0NjI5MzEgOTMuODA0MDU4OSwxLjYzNTI3NTg2IDkzLjM3NTY2NjMsMS42MzUyNzU4NiBDOTIuOTQ2NDYzOCwxLjYzNTI3NTg2IDkyLjUxNzI2MTMsMS43NDYyOTMxIDkyLjEzMjU5ODgsMS45NjkxMzc5MyBMNjguMDM4MTQ0OCwxNS45MTM1NTE3IEw2MS4yNjA3OTUxLDExLjA1NTUzNDUgTDYxLjI2MDc5NTEsNS45NjI1MTcyNCBDNjEuMjYwNzk1MSwyLjgxMTg5NjU1IDU4LjY5NjEwOCwwLjI0NzE1NTE3MiA1NS41NDM0OTQ1LDAuMjQ3MTU1MTcyIEM1NC41NDgyMzA3LDAuMjQ3MTU1MTcyIDUzLjU2MTA2NSwwLjUxNTM3OTMxIDUyLjY4NzI3MzYsMS4wMjE4NDQ4MyBMNS40MzUzMjI3LDI4LjM2NjkzMSBDMi4wODM0OTQ0OCwzMC4zMDI4NDQ4IC0wLjAwMDE2MTk2MzE5LDMzLjkxNjE3MjQgLTAuMDAwMTYxOTYzMTksMzcuNzk1MjkzMSBMLTAuMDAwMTYxOTYzMTksNDQuOTEwOTMxIEMtMC4wMDAxNjE5NjMxOSw0NS43MTE1NTE3IDAuMzg2MTIwMjQ1LDQ2LjQ2NDM2MjEgMS4wMzcyMTIyNyw0Ni45MzAzMTAzIEwzNS41NDk5NDg1LDcxLjY2Mjg0NDggQzM1LjU2MjkwNTUsNzEuNjcyNTY5IDM1LjU3NjY3MjQsNzEuNjgyMjkzMSAzNS41ODk2Mjk0LDcxLjY5MTIwNjkgTDM1LjY2ODk5MTQsNzEuNzQ1NSBDMzUuNzIyNDM5Myw3MS43ODI3NzU5IDM1Ljc3NzUwNjcsNzEuODE3NjIwNyAzNS44MzQxOTM5LDcxLjg1MDAzNDUgTDcxLjUyNTIxMjMsOTIuNDY2MDE3MiBDNzEuOTk0OTA1NSw5Mi45MzUyMDY5IDcyLjYzMDYxMSw5My4xODk2NTUyIDczLjI3OTI3MzYsOTMuMTg5NjU1MiBDNzMuNzAwMzc3OSw5My4xODk2NTUyIDc0LjEyNzk2MDcsOTMuMDgxODc5MyA3NC41MTkxMDE4LDkyLjg1NTc5MzEgTDc2Ljc0MzY2NjMsOTEuNTY4OTY1NSBDNzcuNTExMzcxOCw5MS4xMjQ4OTY2IDc3Ljk4MzQ5NDUsOTAuMzA0ODI3NiA3Ny45ODM0OTQ1LDg5LjQxODMxMDMgTDc3Ljk4MzQ5NDUsNjUuMjQ4OTY1NSBDNzguMDA1MzU5NSw2NS4xODkgNzguMDI1NjA0OSw2NS4xMjc0MTM4IDc4LjA0MjYxMSw2NS4wNjUwMTcyIEw3OS42NTY1NzQyLDU5LjIzMzc3NTkgTDc5LjgxNjEwOCw1OS4yNzUxMDM0IEw4Ny43NzkwMjgyLDYxLjMzNjYyMDcgQzg3Ljk3NTAwMzcsNjEuMzg3NjcyNCA4OC4xNzY2NDc5LDYxLjQxNDQxMzggODguMzc5OTExNyw2MS40MTYwMzQ1IEw5MC4xMjc0OTQ1LDYxLjQzMDYyMDcgTDkwLjE0ODU0OTcsNjEuNDMwNjIwNyBDOTAuNDMzNjA0OSw2MS40MzA2MjA3IDkwLjcxNjIzMDcsNjEuMzgyIDkwLjk4NTA4OTYsNjEuMjg1NTY5IEM5Ny4wMjA2NDc5LDU5LjEyMzU2OSAxMDMuNzcyMDgzLDU3LjkzMjM2MjEgMTA5Ljk5NDcwOSw1Ny45MzIzNjIxIEMxMTYuMTk5NTE5LDU3LjkzMjM2MjEgMTIxLjc0OTE4OCw1OS4xMTU0NjU1IDEyNS42NzE5MzYsNjEuMjY5MzYyMSBDMTI1Ljk1NzgwMSw2MS41MjYyNDE0IDEyNi4zMDE5NzMsNjEuNzE0MjQxNCAxMjYuNjgwMTU3LDYxLjgxNjM0NDggQzEyNi44OTMxMzksNjEuODczODc5MyAxMjcuMTEwOTc5LDYxLjkwMjI0MTQgMTI3LjMyODAxLDYxLjkwMjI0MTQgQzEyNy43NTk2NDIsNjEuOTAyMjQxNCAxMjguMTg4MDM0LDYxLjc5MDQxMzggMTI4LjU2ODY0OCw2MS41NyBMMTMwLjcyODQyNyw2MC4zMjI4NzkzIEMxMzEuNDk2OTQyLDU5Ljg3OTYyMDcgMTMxLjk3MDY4NSw1OS4wNTk1NTE3IDEzMS45NzA2ODUsNTguMTcxNDEzOCBMMTMxLjk3MDY4NSwyNC45ODIxMjA3IEMxMzEuOTcwNjg1LDI0LjA5NDc5MzEgMTMxLjQ5Njk0MiwyMy4yNzQ3MjQxIDEzMC43MjkyMzcsMjIuODMxNDY1NSBMMTMwLjcyOTIzNywyMi44MzE0NjU1IFoiIGlkPSJGaWxsLTQ1IiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3LjUyODgwNzQsMjkuMzM4NDUzNCBDOTguMjg1OTg1MywyOC45MDA4NjcyIDk5LjAwMDI0MjksMjguNjc5NjQzMSA5OS42MjYyMzA3LDI4LjY3OTY0MzEgQzEwMC4wMjMwNCwyOC42Nzk2NDMxIDEwMC4zODM0MDksMjguNzY4NzgxIDEwMC42OTU5OTgsMjguOTQ5NDg3OSBDMTAxLjQ5MjA0NywyOS40MDczMzI4IDEwMS45MzMzOTYsMzAuNDM1NjYwMyAxMDEuOTM3NDQ1LDMxLjg0MjQxOSBDMTAxLjk0NjM1MywzNS4wOTUxNDMxIDk5LjY1MDUyNTIsMzkuMDcxNTA1MiA5Ni44MjAyMTg0LDQwLjcwNTk3MDcgQzk1LjU4MjgxOTYsNDEuNDE5ODg0NSA5NC40NTk2MDQ5LDQxLjU1NzY0MzEgOTMuNjU2MjY3NSw0MS4wOTQ5MzYyIEM5Mi44NTk0MDg2LDQwLjYzNTQ3MDcgOTIuNDE4MDU4OSwzOS42MDc5NTM0IDkyLjQxNDgxOTYsMzguMjAxMTk0OCBDOTIuNDA1MTAxOCwzNC45NDg0NzA3IDk0LjY5OTMxMDQsMzAuOTczNzI5MyA5Ny41Mjg4MDc0LDI5LjMzODQ1MzQgTTkyLjkxMzY2NjMsNDIuMzg3NDM2MiBDOTMuNDU4NjcyNCw0Mi43MDAyMjkzIDk0LjA2ODQ2MzgsNDIuODU2NjI1OSA5NC43MjExNzU1LDQyLjg1NjYyNTkgQzk1LjYwODczMzcsNDIuODU2NjI1OSA5Ni41NzY0NjM4LDQyLjU2NzMzMjggOTcuNTY0NDM5Myw0MS45OTY4NSBDMTAwLjg2MjAxLDQwLjA5MjUzOTcgMTAzLjQzNzIyNSwzNS42Mjk5NzA3IDEwMy40MjY2OTcsMzEuODM4MzY3MiBDMTAzLjQyMTAyOCwyOS44NzY1MjI0IDEwMi43MTQ4NjksMjguMzkxOTcwNyAxMDEuNDM4NTk5LDI3LjY1Njk4NzkgQzEwMC4xNTQyMzEsMjYuOTE3MTQzMSA5OC41MDEzOTYzLDI3LjA1NjUyMjQgOTYuNzgzNzc2NywyOC4wNDc1NzQxIEM5My40ODc4MjU4LDI5Ljk1MTg4NDUgOTAuOTE0MjMwNywzNC40MTQ0NTM0IDkwLjkyNTU2ODEsMzguMjA0NDM2MiBDOTAuOTMwNDI3LDQwLjE2NTQ3MDcgOTEuNjM3Mzk2Myw0MS42NTE2NDMxIDkyLjkxMzY2NjMsNDIuMzg3NDM2MiIgaWQ9IkZpbGwtNDMiIGZpbGw9IiNGRkZGRkYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03NC42MjY2OTc1LDU0LjgyNTc1MjggTDc3LjA0MDEwMDIsNTkuMDQ5MjA3NSBMNzcuMDQwMTAwMiw1OS4wNDkyMDc1IEM3Ny4zMDY0OTY4LDU5LjUxNTQwMTUgNzcuMTU3MTc5OCw2MC4xMDg3NjczIDc2LjcwMTg1Niw2MC4zOTMzNDQ3IEw3MS44NzUwNTA3LDYzLjQxMDA5OCBMNzEuODc1MDUwNyw2My40MTAwOTggQzcxLjQwNjcxNDEsNjMuNzAyODA4NCA3MC43ODk3NjM4LDYzLjU2MDQzNTIgNzAuNDk3MDUzNCw2My4wOTIwOTg3IEM3MC4zMzg5NjQ1LDYyLjgzOTE1NjMgNzAuMzAyMDQzNSw2Mi41Mjg4NDY4IDcwLjM5NjM2ODQsNjIuMjQ1ODcyIEw3Mi44MDk3NzExLDU1LjAwNTY2NCBMNzIuODA5NzcxMSw1NS4wMDU2NjQgQzcyLjk4NDQxODksNTQuNDgxNzIwNyA3My41NTA3Mzg4LDU0LjE5ODU2MDcgNzQuMDc0NjgyMiw1NC4zNzMyMDg0IEM3NC4zMDgwOTMxLDU0LjQ1MTAxMjEgNzQuNTA0NjI5MSw1NC42MTIxMzMxIDc0LjYyNjY5NzUsNTQuODI1NzUyOCBaIiBpZD0iVHJpYW5nbGUiIGZpbGwtb3BhY2l0eT0iMC4yNjYwNDk1OTIiIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLjc1ODUyMSwgNTguOTQxOTI3KSByb3RhdGUoMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC03My43NTg1MjEsIC01OC45NDE5MjcpICI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="/>\n <ol style="">\n '+xn.map((function(e){var t;return"<li>"+(null!==(t=e[navigator.language.split("-")[0]])&&void 0!==t?t:e.zh)+"</li>"})).join("")+"\n </ol>\n ";var h=new li(l);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.insertBefore(l,e),this.setHelperElementSize(),h.on("tap",this.vrWantsToExit.bind(this))),this.destroyHelper=function(){h.destroy(),u.parentNode&&u.parentNode.removeChild(u),l.parentNode&&l.parentNode.removeChild(l)}},r.prototype.setHelperElementSize=function(){if(this.helperElement){var t=this.renderer.domElement,r=new e.Vector2(t.offsetWidth,t.offsetHeight),i=r.x*this.scissor.left,n=r.y*(1-this.scissor.bottom-this.scissor.height),s=r.x*this.scissor.width,o=r.y*this.scissor.height;this.helperElement.style.marginLeft=i+"px",this.helperElement.style.marginTop=n+"px",this.helperElement.style.width=s+"px",this.helperElement.style.height=o+"px"}},r.prototype.destroyHelper=function(){},r.prototype.resize=function(){var e=this.element,t=e.offsetWidth,r=e.offsetHeight;this.effect.isPresenting=!1,this.effect.setSize(t,r),this.effect.isPresenting=!0,this.needsRender=!0,this.setHelperElementSize()},r.prototype.doMoveToPano=function(){for(var e=this,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];t.prototype.doMoveToPano.apply(this,r);var n=r[0],s=this.work.observers[n],o=s.visibleNodes;o=o.filter((function(t){return e.work.observers[t].active}));var a=this.panoSphereMeshes.filter((function(e){return e.panoIndex===n}))[0];this.panoSphereMeshes.forEach((function(e){if(e.visible=o.indexOf(e.panoIndex)>=0,a){var t=a.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),this.needsRender=!0},r.prototype.vrWantsToExit=function(){this.emit("vrWantsToExit")},r.prototype.onPanGesture=function(){},r.prototype.onTapGesture=function(){},r.prototype.onPinchGesture=function(){},r.prototype.onMouseMove=function(){},r.prototype.onMouseOut=function(){},r.prototype.renderIntersect=function(){var t=this,r=t.camera,i=t.model,n=t.intersectMesh,s=t.panoSphereMeshes,o=t.intersectCameraPosition,a=t.intersectCameraVector,u=t.intersectActiveSphereMesh,c=t.intersectActiveDate;if(n){u&&c&&He()-c>2e3&&(delete this.intersectActiveDate,u.setCurrent(),this.moveToPano(u.panoIndex,{},!0));var l=r.getWorldDirection(new e.Vector3);if(!(o&&a&&r.pose.offset.equals(o)&&l.equals(a))){var h=r.pose.offset.clone(),d=new e.Raycaster(h,l),p=null,f=null;if(!p)for(var A=0,M=s.filter((function(e){return e.visible}));A<M.length;A++){var g=M[A],y=d.intersectObject(g,!0)[0];if(y){p=y,f=g;break}}if(p||i.empty||(p=i.intersectRaycaster(d)[0]),p&&p.face){var v=p.face.normal,m=new e.Quaternion;m.setFromUnitVectors(new e.Vector3(0,0,-1),v),n.quaternion.copy(m);var N=v.clone().multiplyScalar(.05),D=p.point.clone().add(N);n.position.copy(D),n.visible=!0,this.emit("intersectionOnModelUpdate",p,n),s.forEach((function(e){return e.reset()})),f?((g=f).setActive(),this.intersectActiveSphereMesh!==g&&(this.intersectActiveSphereMesh=g,this.intersectActiveDate=He())):(delete this.intersectActiveSphereMesh,delete this.intersectActiveDate)}else n.visible=!1,this.emit("intersectionHidden"),delete this.intersectActiveSphereMesh,delete this.intersectActiveDate;this.intersectCameraPosition=r.pose.offset.clone(),this.intersectCameraVector=l.clone(),this.needsRender=!0}}},r.prototype.render=function(){var t=this,r=t.effect,i=t.camera,n=t.scene,s=r.getVRDisplay(),o=this.camera.pose,a=o.longitude,u=o.latitude;if(s){var c=s.getPose();if(Re(c.orientation)||i.quaternion.fromArray(c.orientation),s.stageParameters){i.updateMatrix();var l=s.stageParameters.sittingToStandingTransform,h=new e.Matrix4;h.fromArray(l),i.applyMatrix4(h)}}i.updateMatrixWorld(),i.computePose();var d=this.camera.pose,p=d.longitude,f=d.latitude;a===p&&u===f||(this.emit("cameraDirectionUpdate",{longitude:p,latitude:f},!0),this.emit("cameraUpdate",this.camera.copyPose(),!0)),this.renderIntersect(),r.render(n,i)},r}(gn),jn=function(t){function r(e){var i=r.parseArgs(e);return t.call(this,i)||this}return Se(r,t),r.parseArgs=function(e){return t.parseArgs.call(this,e)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.destroy=function(){t.prototype.destroy.call(this)},r.prototype.updateWork=function(e,t,r,i){return this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex,this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{duration:0,longitude:t.longitude,latitude:t.latitude,fov:t.fov},i),!0},r.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var i=this.work.observers[e];i&&this.moveToPosition(i.position,t,r)},r.prototype.moveToPosition=function(t,r,i){var n,s,o,a,u,c,l=this;void 0===r&&(r={});var h=this,d=h.camera,p=h.model,f=h.currentPanoIndex,A=r.duration,M=r.limit,g=void 0===M||M,y=r.easing,v=void 0===y?Qr.Quadratic.InOut:y;this.ready=!1;var m=this.calculateMovingDuration(A,d.pose.offset.distanceTo(t)),N=ci(this.work.observers,(function(e){return e.position.distanceTo(t)})),D=this.work.observers.indexOf(N);this.emit("moveToPano",D,i);var w=d.pose.longitude,T=d.pose.latitude,x=d.pose.fov,E=d.pose.offset.clone(),j=(null===(n=p.getMaterial())||void 0===n?void 0:n.modelAlpha)||0,I=null!==(o=null===(s=this.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==o?o:0,b=null!==(a=r.longitude)&&void 0!==a?a:w,z=null!==(u=r.latitude)&&void 0!==u?u:T,O=null!==(c=r.fov)&&void 0!==c?c:x,S=t.clone(),L={longitude:b,latitude:z,fov:O,offset:S.clone()};r.moveStartCallback&&r.moveStartCallback(D,L),this.emit("panoWillArrive",D,L,i),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition);var C=function(t){var r=t.progress;l.setModelAndBoundingUniforms({modelAlpha:Wr(j,1,r),perspToOrtho:Wr(I,0,Math.min(5*r,1))});var n=new e.Vector3(Wr(E.x,S.x,r),Wr(E.y,S.y,r),Wr(E.z,S.z,r));l.updateCamera({offset:n},i,g),r>.7&&(l.preventTapGesture=!1),l.emit("movingToPano",D,f,r),i&&l.lastMouseMoveEvent&&l.onMouseMove(l.lastMouseMoveEvent),l.needsRender=!0},k=function(){C({progress:1}),l.preventTapGesture=!1,l.emit("panoArrived",D,l.camera.copyPose(),i),l.needsRender=!0,l.ready=!0};if(this.preventTapGesture=!0,m>0?this.tweenPosition=Fr(m,v).onUpdate(C).onComplete((function(){l.tweenPosition&&l.tweenPosition.destroy(),delete l.tweenPosition,r.moveEndCallback&&r.moveEndCallback(D,l.camera.copyPose()),k()})).onCancel((function(){r.moveCancelCallback&&r.moveCancelCallback()})):k(),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),w!==b||T!==z||x!==O){var P=function(e){var t=e.progress,r=Zr(w,b,t),n=Wr(T,z,t),s=Wr(x,O,t);l.updateCamera({longitude:r,latitude:n,fov:s},i,g)},_=function(){return P({progress:1})};m>0?this.tweenCoordinates=Fr(m,v).onUpdate(P).onComplete((function(){l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates),_()})):_()}},r.prototype.setModelAndBoundingUniforms=function(e){for(var t=0,r=[this.model];t<r.length;t++)r[t].setMaterial(e)},r.prototype.onTapGesture=function(t){if(this.interiaMovement=!1,!0!==this.preventTapGesture){var r=this.camera,i=this.model,n=this.relativeClientPosition(t.center),s=new e.Raycaster;s.setFromCamera(n,r);var o=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",o,!0)&&!this.emit("wantsTapGesture",s,n)){var a=A(s);if(a&&a.face){var u=a.face.normal,c=a.point;if(new e.Vector3(0,1,0).angleTo(u)>Math.PI/3){var l=r.pose.offset.clone().setY(c.y),h=c.clone().sub(l).setLength(.3),d=c.clone().sub(h);s.set(d,new e.Vector3(0,-1,0)),a=A(s)}}if(a){var p=a.point.clone(),f=ci(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-p.y)<1})),(function(e){return e.standingPosition.distanceTo(p)}));f&&(p.y=f.position.y,this.emit("gesture","tap",o,!0),this.emit("tapGesture",s,n),this.moveToPosition(p,{},!0))}}}function A(e){return(!0===i.empty?e.intersectObjects(i.children):i.intersectRaycaster(e))[0]}},r}(Li);const In=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-]Vl?-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),bn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f");var zn=Object.assign({opacity:new e.Uniform(1),scale:new e.Uniform(13.1),panoMap:new e.Uniform(null),panoDisplacementMap:new e.Uniform(null),panoPosition:new e.Uniform(new e.Vector3),panoMatrix:new e.Uniform(new e.Matrix4)},{emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),On=new e.SphereBufferGeometry(.01,128,128),Sn=function(t){function r(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.renderer=e,i.prevRequest=null,i.cubeTextureLoader=new wi(e,{allowHosts:i.allowHosts,networkSubscribe:i.networkSubscribe}),i.allowHosts=r.allowHosts,i.networkSubscribe=r.networkSubscribe,i}return Se(r,t),r.prototype.setAllowHosts=function(e){this.allowHosts=e,this.cubeTextureLoader.setAllowHosts(e)},r.prototype.load=function(t,r){var i=this,n=Qe,s=Qe,o=Qe,a=Qe;"function"==typeof r?(n=r.bind(this,null),o=r.bind(this),a=r.bind(this)):(r.onLoad&&(n=r.onLoad),r.onProgress&&(s=r.onProgress),r.onError&&(o=r.onError),r.onAbort&&(a=r.onAbort));var u=null,c=[0,0],l=function(){u=null,i.prevRequest=null},h=function(e,r){c[r]=e;var n=.8*c[0]+.2*c[1];s(n),i.emit("progress",n,t)};this.cubeTextureLoader.load(t,{onLoad:function(r){h(0,1);var s=t.images.depth;u=Ni(s,(function(s){var o=Object.assign(function(t,r,i,n){var s=new e.ShaderMaterial({side:e.BackSide,vertexShader:In,fragmentShader:bn,transparent:!0,uniforms:e.UniformsUtils.clone(zn)}),o=t;o.needsUpdate=!0,o.minFilter=e.LinearFilter,o.magFilter=e.LinearFilter;var a=r instanceof e.Texture?r:new e.Texture(r);return a.needsUpdate=!0,a.minFilter=e.LinearFilter,a.magFilter=e.LinearFilter,s.uniforms.opacity.value=0,s.uniforms.panoMap.value=o,s.uniforms.panoDisplacementMap.value=a,s.uniforms.panoPosition.value=i,s.uniforms.panoMatrix.value=n,Object.assign(new e.Mesh(On,s),{frustumCulled:!1,dispose:function(){this.material instanceof e.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(r,s,t.position,t.matrix),{hash:r.hash,meta:r.meta});h(1,1),n(o),i.emit("load",o,t)}),(function(e){r.dispose(),o(e),l()}),(function(e){h(e,1)}),(function(){r.dispose(),a(new Error("source load abort: "+s)),l()}),i.allowHosts,i.networkSubscribe)},onError:function(e){o(e),l()},onAbort:function(e){a(e),l()},onProgress:function(e){h(e,0)}}),this.prevRequest={abort:function(){i.cubeTextureLoader.abort(),null==u||u.abort()}},this.emit("start",t)},r.prototype.abort=function(){this.prevRequest&&(this.prevRequest.abort(),this.prevRequest=null)},r}(Nt),Ln=function(t){function r(e){var i=this,n=r.parseArgs(e);(i=t.call(this,n)||this).maxAccessibleDistance=n.maxAccessibleDistance,i.panoCircleMeshCreator=n.panoCircleMeshCreator,i.model.setMaterial({perspToOrtho:0});var s=i.getBounding();return i.boundingMesh=ht(s),i.boundingMesh.setMaterial(i.model.getMaterial()||{}),s.containsPoint(i.camera.pose.offset)||(i.boundingMesh.visible=!1),i.boundingMesh.renderOrder=2,i.boundingMesh.frustumCulled=!1,i.scene.add(i.boundingMesh),i.panoCircleMeshes=[],i.updatePanoCircleMeshes(),i.panoCircleMeshes.forEach((function(e){return e.visible=!1})),i.helper.remove(i.intersectMesh),i.depthTextureLoader=new Sn(i.renderer,{allowHosts:i.work.allowHosts,networkSubscribe:i.networkSubscribe}),i.depthTextureLoader.on("start",(function(e){var t,r=e.index;null===(t=i.panoCircleMeshes[r])||void 0===t||t.setProgress(0),i.emit("textureStartLoad",r,i.work.observers[r])})),i.depthTextureLoader.on("progress",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(e),i.emit("textureLoading",e,n,i.work.observers[n])})),i.depthTextureLoader.on("abort",(function(e){var t,r=e.index;null===(t=i.panoCircleMeshes[r])||void 0===t||t.setProgress(0),i.emit("textureAbort",r,i.work.observers[r])})),i.depthTextureLoader.on("load",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(1),i.emit("textureLoaded",n,i.work.observers[n],e.meta)})),i.depthTextureLoader.on("error",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(0),i.emit("textureError",e,n,i.work.observers[n])})),i.once("panoWillArrive",(function(){i.boundingMesh.visible=!0,i.needsRender=!0,i.model.visible=!1})),i}return Se(r,t),r.parseArgs=function(e){var r,i,n=t.parseArgs.call(this,e);return Le(Le({},n),{maxAccessibleDistance:null!==(r=e.maxAccessibleDistance)&&void 0!==r?r:5,panoCircleMeshCreator:null!==(i=e.panoCircleMeshCreator)&&void 0!==i?i:Gi})},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.getBounding=function(){for(var t=new e.Box3,r=0,i=this.work.observers;r<i.length;r++){var n=i[r].standingPosition.clone();t.expandByPoint(n),n.y+=3,t.expandByPoint(n)}return t.max.x+=4,t.min.x-=4,t.max.z+=4,t.min.z-=4,t},r.prototype.updatePanoCircleMeshes=function(){var t=this,r=[],i=this.model;this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){e.loading&&r.push(e.panoIndex),t.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0);var n=new e.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(s,o){var a=t.panoCircleMeshCreator();if(a.position.copy(s.standingPosition),t.model.loaded){var u=a.position.clone().add(new e.Vector3(0,1,0)),c=new e.Raycaster(u,n,0,1),l=i.intersectRaycaster(c)[0];l&&(a.position.copy(l.point.clone()),a.needsRender=!0)}return a.name="panoCircle_"+o,a.panoIndex=o,t.helper.add(a),a.needsRender=!0,!1===s.active&&(a.setDisabled(!0),r.indexOf(o)>=0&&(a.setDisabled(!1),a.setLoading(!0))),a}));var s=this.work.observers[this.currentPanoIndex].visibleNodes;s=s.filter((function(e){var r=t.work.observers[e];return r.loadable||r.active})),this.panoCircleMeshes.forEach((function(e){e.visible=s.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},r.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this.depthTextureLoader.off(),delete this.pendingLoadTextureHashAndCallback,this.model&&(this.model.visible=!0),this.panoModel&&(this.scene.remove(this.panoModel),this.panoModel.dispose(),delete this.panoModel),this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoCircleMeshes.length=0)},r.prototype.moveToPano=function(t,r,i){var n=this;void 0===r&&(r={}),this.ready=!1,this.interiaMovement=!1;var s={index:t,images:this.work.observers[t].images,imageOptions:this.imageOptions},o=gi.u(s),a=function(e,s){if(e)return r.moveCancelCallback&&r.moveCancelCallback(),n.emit("panoLoadError",e,t),n.emit("moveToPanoCanceled",t),void(n.ready=!0);n.destroyed?null==s||s.dispose():(n.emit("panoLoaded",t),qe((function(){return n.doMoveToPano(t,s,r,i)})))},u=this.pendingLoadTextureHashAndCallback||[],c=u[0],l=u[1];if(o!==c){if(delete this.pendingLoadTextureHashAndCallback,l&&l(new Error("texture aborted")),this.emit("moveToPano",t,i),this.emit("panoWillLoad",t),!s.images)return void a(new Error("pano images were not existed"));if(!s.images.depth)return void a(new Error("pano depth image were not existed"));var h=this.work.observers[t],d=h.position,p=h.quaternion,f=(new e.Matrix4).compose(d,p,new e.Vector3(-1,1,1)),A=Object.assign({position:d,matrix:f},s);this.pendingLoadTextureHashAndCallback=[o,a],this.depthTextureLoader.load(A,(function(e,t){var r=n.pendingLoadTextureHashAndCallback||[],i=r[0],s=r[1];o===i&&s?(s(e,t),delete n.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},r.prototype.updateCamera=function(e,r,i){var n=this;t.prototype.updateCamera.call(this,e,r,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(n.camera.pose.offset);e.setOpacity(Math.min(1/t,1))}));var s=this.getForwardPanoIndexOrNot();null!==s&&this.panoCircleMeshes[s].setOpacity(1),Yt()},r.prototype.canNotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,r=.98*t,i=function(t){var r=t.fov;return e.updateCamera({fov:r},!0,!0)};this.tweenCoordinates=Yr({fov:t},{fov:r},200).onUpdate(i).onComplete((function(){var n;null===(n=e.tweenCoordinates)||void 0===n||n.destroy(),e.tweenCoordinates=Yr({fov:r},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},r.prototype.doMoveToPano=function(t,r,i,n){var s,o,a,u=this;void 0===i&&(i={});var c=i.limit,l=void 0===c||c,h=i.easing,d=void 0===h?Qr.Quadratic.InOut:h,p=this.currentPanoIndex,f=this.panoModel,A=this.currentPanoIndex,M=this.work.observers[t];if(f){var g={pano0Map:f.material.uniforms.panoMap.value,pano0Matrix:f.material.uniforms.panoMatrix.value};f.material.uniforms.opacity.value=1,this.boundingMesh.setMaterial(g)}r.renderOrder=-1;var y={progress:0,pano1Map:r.material.uniforms.panoMap.value,pano1Matrix:r.material.uniforms.panoMatrix.value};r.material.uniforms.opacity.value=0,this.boundingMesh.setMaterial(y),this.model.setMaterial(y),this.panoModel=r,this.scene.add(r);var v=M.visibleNodes.filter((function(e){var t=u.work.observers[e];return t.loadable||t.active})),m=this.camera.pose.offset.distanceTo(M.standingPosition),N=void 0===f?0:this.calculateMovingDuration(i.duration,m),D=this.camera.pose.longitude,w=this.camera.pose.latitude,T=this.camera.pose.offset.clone(),x=this.camera.fov,E=null!==(s=i.longitude)&&void 0!==s?s:D,j=null!==(o=i.latitude)&&void 0!==o?o:w,I=M.position,b=null!==(a=i.fov)&&void 0!==a?a:x,z={longitude:E,latitude:j,fov:b,offset:I.clone()};if(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),i.moveStartCallback&&i.moveStartCallback(t,z),this.emit("panoWillArrive",t,z,n),this.needsRender=!0,D!=D||w!==j||x!==b){var O=function(e){var t=e.progress,r=Zr(D,E,t),i=Wr(w,j,t),s=Wr(x,b,t);u.updateCamera({longitude:r,latitude:i,fov:s},n,l),u.needsRender=!0},S=function(){return O({progress:1})};N>0?this.tweenCoordinates=Fr(N,d).onUpdate(O).onComplete((function(){var e;null===(e=u.tweenCoordinates)||void 0===e||e.destroy(),delete u.tweenCoordinates,S()})):S()}var L=function(){u.panoCircleMeshes.forEach((function(e){e.visible=v.indexOf(e.panoIndex)>=0})),r.material.uniforms.opacity.value=0,r.material.depthTest=!0,f&&(u.scene.remove(f),f.material.uniforms.panoMap.value.dispose(),f.dispose()),u.updateCamera({offset:I},n,l);var e={progress:1,pano1Map:r.material.uniforms.panoMap.value,pano1Position:r.material.uniforms.panoPosition.value,pano1Matrix:r.material.uniforms.panoMatrix.value,pano0Map:r.material.uniforms.panoMap.value,pano0Position:r.material.uniforms.panoPosition.value,pano0Matrix:r.material.uniforms.panoMatrix.value,modelAlpha:0};u.boundingMesh.setMaterial(e),u.model.setMaterial(e),u.panoCircleMeshes[t]&&u.panoCircleMeshes[t].setProgress(0),i.moveEndCallback&&i.moveEndCallback(t,u.camera.copyPose()),u.currentPanoIndex=t,u.preventTapGesture=!1,qe((function(){u.emit("panoArrived",t,u.camera.copyPose(),n),u.ready=!0})),u.needsRender=!0};this.preventTapGesture=!0,N>0&&A!==t?(this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),r.material.depthTest=!1,f&&(f.material.depthTest=!1),this.tweenPosition=Fr(N,d).onUpdate((function(i){var s=i.progress,o=new e.Vector3(Wr(T.x,I.x,s),Wr(T.y,I.y,s),Wr(T.z,I.z,s));u.updateCamera({offset:o},n,l);var a=(Math.min(Math.max(s,.1),.9)-.1)/.8,c={modelAlpha:Wr(1,0,a)};r.material.uniforms.opacity.value=Wr(0,1,a),f&&(f.material.uniforms.opacity.value=1),u.boundingMesh.setMaterial(c),u.model.setMaterial(c),u.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))})),s>.7&&(u.preventTapGesture=!1),u.emit("movingToPano",t,p,s),u.needsRender=!0})).onComplete((function(){u.tweenPosition&&(u.tweenPosition.completed=!0,u.tweenPosition.destroy()),delete u.tweenPosition,L()})).onCancel((function(){i.moveCancelCallback&&i.moveCancelCallback(),u.emit("moveToPanoCanceled",t)}))):L()},r.prototype.getForwardPanoIndexOrNot=function(t){var r=this,i=this.camera,n=this.currentPanoIndex,s=this.work.observers[n].accessibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active}));var o,a=i.getWorldDirection(new e.Vector3);o=t?t.ray.direction.clone():a.clone();var u=i.pose.offset.clone();o.y=u.y=0;for(var c=0,l=s.filter((function(e){return r.work.observers[e].standingPosition.clone().sub(i.pose.offset).angleTo(a)<i.fov/2/180*Math.PI})).map((function(e){var t=r.work.observers[e].standingPosition.clone();return Object.assign(t,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(u)-t.distanceTo(u)}));c<l.length;c++){var h=l[c],d=h.clone().sub(u);if(d.length()&&o.angleTo(d)<Math.PI/6)return h.panoIndex}return null},r.prototype.onTapGesture=function(t){var r=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var i=this.camera,n=this.panoCircleMeshes,s=null,o=void 0,a=this.work.observers[this.currentPanoIndex].accessibleNodes;a=a.filter((function(e){return r.work.observers[e].position.distanceTo(i.pose.offset)<r.maxAccessibleDistance}));var u=this.relativeClientPosition(t.center),c=new e.Raycaster;c.setFromCamera(u,i);var l=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",l,!0)&&!this.emit("wantsTapGesture",c,u)){var h=c.intersectObjects(this.boundingMesh.children)[0];if(h){var d=h.point.clone(),p=ci(n.filter((function(e){return a.indexOf(e.panoIndex)>=0})),(function(e){return e.position.distanceTo(d)}),!0),f=p[0];if(p[1]<1){var A=h.point.clone();s=f.panoIndex;var M=i.getWorldDirection(new e.Vector3).setY(0),g=(new e.Vector3).copy(A).setY(0).sub(i.pose.offset.clone().setY(0));if(M.angleTo(g)>Math.PI/6){var y=g.x,v=g.z;o={longitude:Math.atan2(-y,-v)}}}}if(Re(s)&&!Re(s=this.getForwardPanoIndexOrNot(c))&&h){var m=h.point,N=this.work.observers[s].position.clone();M=m.clone().setY(0).sub(i.getWorldDirection(new e.Vector3).setY(0)),g=m.clone().setY(0).sub(N.clone().setY(0)),Math.abs(m.y-N.y)<.5&&M.angleTo(g)>Math.PI/6&&M.angleTo(g)<Math.PI/3&&(y=g.x,v=g.z,o={longitude:Math.atan2(-y,-v)})}if(Re(s))this.canNotMoveAnimation();else{var D=this.work.observers[s];this.emit("panoSelected",s),this.emit("gesture","tap",l,!0),this.emit("tapGesture",c,u),D.active?this.emit("wantsMoveToPano",s,o||{},!0):this.panoCircleMeshes[s]&&(this.panoCircleMeshes[s].setDisabled(!1),this.panoCircleMeshes[s].setLoading(!0))}}}},r}(Li),Cn=["Panorama","DepthPanorama","Model"],kn={Floorplan:Ai,Topview:Mi,Panorama:gn,VRPanorama:En,Model:jn,DepthPanorama:Ln};function Pn(e){for(var t=0,r=Cn;t<r.length;t++){var i=r[t];if("string"==typeof e){if(i===e)return!0}else if(e instanceof fi&&e instanceof kn[i])return!0}return!1}var _n=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError"];function Bn(e){for(var t,r,i={},n=0,s=e.split(/(\;|\,)/);n<s.length;n++){var o=s[n].split("="),a=null===(t=o[0])||void 0===t?void 0:t.trim(),u=null===(r=o[1])||void 0===r?void 0:r.trim();a&&u&&(i[a]=u)}return i}function Un(){for(var e,t=document.getElementsByTagName("meta"),r=0;r<t.length;r++){var i=t[r];if("viewport"===i.getAttribute("name")){var n=Bn(null!==(e=i.getAttribute("content"))&&void 0!==e?e:""),s=Number(n["initial-scale"]);if(!isNaN(s))return s}}return 1}var Rn=[351,63],Qn=[20,20],Yn=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Fn=new Float32Array([0,0,1,0,0,1,1,1]),Vn=new Uint8Array([0,1,2,1,3,2]),Hn=new e.BufferGeometry;Hn.setAttribute("position",new e.BufferAttribute(Yn,3)),Hn.setAttribute("uv",new e.BufferAttribute(Fn,2)),Hn.setIndex(new e.BufferAttribute(Vn,1));var Gn=new e.MeshBasicMaterial({transparent:!0,depthTest:!1}),qn=new e.Mesh(Hn,Gn),Wn=new e.Scene;Wn.add(qn);var Zn=new e.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Zn.position.set(0,0,.5),Zn.lookAt(0,0,0);var Xn=new e.Vector4,Kn=new e.Vector4;function Jn(t){if(Gn.map){var r=t.getViewport(Xn),i=t.getScissor(Kn),n=t.getScissorTest(),s=t.autoClear;t.setViewport(i.x+Qn[0]/3,i.y+Qn[1]/3,Rn[0]/3,Rn[1]/3),t.setScissor(i.x+Qn[0]/3,i.y+Qn[1]/3,Rn[0]/3,Rn[1]/3),t.setScissorTest(!0),t.autoClear=!1,t.render(Wn,Zn),t.setViewport(r),t.setScissor(i),t.setScissorTest(n),t.autoClear=s}else{var o=new e.Texture,a=new Image;a.onload=function(){o.image=a,o.wrapS=e.ClampToEdgeWrapping,o.wrapT=e.ClampToEdgeWrapping,o.minFilter=e.LinearFilter,o.needsUpdate=!0,Gn.needsUpdate=!0,a.onload=function(){}},a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR+0lEQVR4AezYg3LEQACH8d1cbdu23Q5qG9G47z/TN/h6tn2b/H+TUTLc7yjcOXV46OUAnUs6EbUp022ZBXc1NhoZYYd7fjDRvdcHAwrlK2QBVJ4sgoqONmY45RUT23sZ6H42F2hK5CtkMbjhZlDmUUcvq1zyieUVyjbE4I1GBfItwxG56YaUZTQwyh4P6NgJ4YYYvCuQb5kOyI03pORjiqe4Lwpq5pt1vJqfUwKWJVbSMYfppYconG+maNNQOWBZuwHTzicGel75NtFOkxr5apmV8cikcko0DrDQs863AeGl0cE0+1xy573m0/wf0cEKW6H7BWtggiMG8sy3oHRDpJMw4NWb6am/bv9znkqEzjd61t5oo5clTrjhwevO75EJRBKSRt745Z16ZEjcM73sccZplBPm8PyTcxZAkSRdHm/acJ0Z3JZhHB0BxqDHgWFZFmm0ZbCw87twI/zc3e/Cz93vPneXtU/WdQS3oTviXdY/q5PsJKfoGuQjZuO/0in1qsj85cuXrxqeAOJpGqdJOqrUutgVl2Qb0BWqp/RE8AWWVB7t2KrIzY2Wx2fWKl7yfswgxqj8lYummYa3hfwF9MuQRmbfQE4ocPDjtUWQ6Tq1M2w7gC2EcrMGtWS6xlpGKEDDcb1vUQ25zT4lrC2s0dU4gFPppKkbeIYr7NMpqjStuFg5rNU9epGyt8PXyfX4DE1bKLhR/1XPxwJhp5DAV67T9ZPwFdovhBMIGUYoRBN4wim6S3eoXVEHXdLgmwY0x6BQnO4xPJ0Ar5OVxhQF0L9UslRM4yaQQfQImnBegi8vhY2A1k6YLlrj61TwDdNQnIISwiPvpD7TwYQTssZXK47vg8y9Gp2nxRcATkozOEmdCeObSt3IIo+xf/00IDRKAaZ89PBTkHqpkA5LagKeNZKlIhqX8RcQ95GHtdYA62Y6rOg5LLsOSnoyvk4V38hFhytef+V9/3DER1P48W89o1GxE9o5vns2Mk+F7yiftafEN4nhmUv9DKEeyqI0U+l0CQg+B//sZ5+6lOuqKaTgm0LH41RHw/CsLZRk4huiYxrvP2SNr1OSS+Dr1ulBMR+K9SqHa58Oec49VgL3mXHvDr7QfuM7LMNrH1/IS30Moe64SLYBuFVJ+MbnJY7L+GrVQkFcl4ISx/fEll4ZWnz18DpcSzUCX602LqD9svDLzmdaLkP28P1+VsJjsx/4hmh6x/gmm/i6pbrGneCL9iCOg0dQUvF1UwEdVvG19r2uTXxXLz0J37eLjfZoF++tTtPnU/cWp5e8n3An0m/G+U7qjiy4PpHyV16HKx5flCxAV/H9A88nUnZ7l7KN78SBxPcQgzLAepxEScU3l7pZ6fL2+Dot8fXECfj+QRoGYAwlAfBSPrXQXQri0Pd85NJKcVw8XUdt1LZapk7YRhO1RdpmFJwW8ozekYvx2/fjM5Hr5MfQ95HvcY2a/9hoNK4yEntL+dEuGseTdNmxIPqd5v2YRjeaX8pQ8IW2ohuP7+dTN87RMK4aitx8XPsH0r2oBqNRqrv7+gmjjY7uIr6TBxBfL2MlxNRKSVp8S5CTuGgHXxfkFvh69Pq3LD4pkkd2bdRvHaSNC3/l2sQXAccdlIS+lc57qhPJwxPybT7XSxnUrdqnXuHlJHS+mjZfJfUZR9s2FuQR+EQKdSi9Am8UTnsEvlYS+L6TFwW6kl74Vjr6AFHsX89rgg8njRltK0XPOL7NyDL0IurV4VtMwafB1709vu9X4OjWHoP3z1Ii7eaQdG00Lx5n8HXyDSva/dU0Pq2vZnKYxHYMYRo1WY5ov1G7Vh4r3y+kMdgbilxeOrV0aqOFenFl8GGJig7rG0bbPRqiSRpP2AL0w+yon9dHbi43zFetnKcuw9ZLeSa+7kTw/TDfuFu0Z7Vp/uhyHfPkAZ5ufP9wLIfD49E3clR818rR089Lzyy+VRREPneICnYLX9cT8PVKQs36TbQ3i6NcCwYkxEAQ3phN4CjAvC4mFr5vrlKe7AizBKj8cu33s7i9GbeY7BHYujTjjd3Bx54SSyT4m8mxOoYOAGX/DtwvnGE1M+5v5Bgt1hbkJRW9Cxv9X81GL2i5jqaoJ4avBcCsLYp+Ru+VC5sWPpFhXt8/EPvJL2F/alJDEeIjUhcrP5P45rDeATPj+wKl7gBf1fcq+HpVnfHO1vEf//UCHgt/OxfDE3onj5UkfTaThrg3NCGoBUCtZjvgMnwQB0bG5XENeraJ5XEWvtiHkqSVRqN+uQ4lEx2o+69SeY1dC++Wcsj+LCW+H0ZE4KtDWHkGwCtrxstbFqr51e9wbz42E2fpjRQsqEn50PnM4eumO9IbujCi393Hd+3q72TI+p9DPyyfraF+c3rOx0KJyB2z7Fa1yCO8HoHzlDFhPiWD8XoB3aPppRrUQdRp1D8qE9exdgr+Zbpqf8BLfmZ/bMYbh87k58VCSswCjQoLPPw4Jnp4uFi/YQlfKB5eBd/gr6aqB973zbDAF+v5PN+NZEvm+84bSkhxUPE9C9wqbeJ7Hi+gA9Jr5ZM7x9el4mulyK0Bb2xiMTj3/iBtK77Tnii27H/MlCfsjcJY+2oTg2/U4TYWQERE0r+aCouBcx5zEZzEYrqui8JXsQW/X8FLHJ3IVbWXhQV3zAJCjFQst1F25y1arlXwhRR4Bb4rZ3VPy5d+bHEtHIPF27K16ItYuKXM5kHD10M9DKFeSpbqLlOYAlRiC99yCiDmbUf0206jPPO7b/iud71avBkHf+kQP0OrWHBFrhmt75ZyPzbLg5KmWK9oH4Oq1eFZOm0c6n48mdfer46HcLUZU3pGB8R9IDBbJ+N7v1q0J2xhudZ45tcL8PN16vq9WizwtRLwFQtKER+NDypj4QQOdJNY3NC7GEsaGtiSmDsA+CZhyx+hXFHjYrgGGXpZNvDNpn5gWWuiWkUtyEB0UcrO8Y2L9KI9K+cXLmxqruGd6pcKfycj/ij3URVgu6bPUaycN1qXTHD+KoOmjGORnH57q8rh+e9sTHk5r1+7zpEXk36bp7iiXRrBW61e5k/D0fn+EXF/OxYEypFW3ZH1HzPt4Pv5PN2Rd7VJLDZeboGnbpSPwPDcBw5f6AIysadFOR9Hr7vksoFvE91jdbdYvzpYqyIvdQPU87uKL45u3u213CA8qkYPT6H1YgwIfkz7RI5xJdomfjoV4PXjfjgaRkNGhHwG1mNt1oq0y/j+SaZ5pV0LnrlG89Dl1YkmEsc3nKKzMKskJD+fx6NhlFiohdTe5EsZIig5WPgWUYCC9Dx5TG/sA5x15LCBbzXDtx/+uh74VmMZjLDamh8JvhzQtSsoeVTNNXB/Euv96LRR/qjO+By5xTxxJ683/FB00Pj0fZz9F2GPa70Ld2hbbVptWmjWabbGCl/ZAiTsbJa5hQ9OK/eWFE4xva9nG3z1zwCtnFXjYr6c3ykxPn9QiYWEWPhA4uuiDnzBpt4EMcg0QOm28M0gP76hJuELbIdZi4PqaILpJI+RYz4ZV42y+q49wBcxIbyXTmtXgevRWPl3MmjSSJU5vB3J0TA2Uu8mtP+R5/Au4iiF6NrUUiuCieOiJpnJq8gSXzwFLFiLP8X6bV0bYvzt8TXj75eLtKPRauY1RM1HR7GwEHpFbonIWAPwjxpfqJSCyBVUsk/DFOChhC18kyiPHFvwdVGh6XFbmfLx+RRi4jaqYiCnUDO1wc4u4ovo7pfS+XFD32e9GzndwxJiHcbQ/Vz6JrBMDGYyYK5l7YOsfkS2MVePfGkLsNXLGl9hIVbWXAv9fQ5i/j6UFL1RaQffB9qlwn3tS4WxMhaxETCMz6T9ZTqCk5FznoOKL9SEXMMIUwAZW6dNfCEVX61azdxwmIbg4aHdwtcj5KVBeNiqrb2+g5M8hTskSB6exHZ5bMEIF/wCoOT128zvdXziMLbvuDu/Usmh0oG7doMmafKNSmt8hQWUnmzhjJf/RskXCzQL8aYNfLG/QPGLY5KjKtcuNPGsyGytmj0/kPi6qdXwwJCPvOTYI3zTaICCNEh9FGSWM54OX4+A1UI80RV98czWKceJf65ervsleJm164/7ganACHHn+IPz8Nby1ptcnRztRWbipArvp4/gRchodbIFvsBSWPBaW+CHtzWfauFfcmnKRuyr+Fiu1WbzGKtCPWWMHjIgU1/Mgn2B74GKfbkajHwtVIHy3uBbh0Ocj9oplCC+kIJvYuKvI9bbkUUQ2+JaG7AeknwvhLd0YUxx+SZIf4XkGeqHUCNt9N8sQdvYlwtl9H4hMzqI5dHosMIX2taCl2s6LRowaubPyld/IgcvHBJPnKGnHDLh0ArfqzlYtkv5D8++4RsAvPbwTaJzgDcIDzxIRXuEbx4NIsYupjt7gi/6idL3j1AIqPY+OPH5PGO67x/jUS9NvF6hTte7x2kaCvtSZJiMlxjxMSqEtqXr3GPMn/9y4cXUypS/ymPxbIAvmurtYl9o7dqmBV9KdbLOgsik4B3d6xW/lO7w/kfe+yfx7bFuGkwY3/C6sURDj8584rCxJH5QtnYFVrFQVL35HNoQgO0jvt228XVRC4WQPLtANyiEzb1gD/BNoy5kHa5QEnUmiq/uG2fubeXh+kwuNj8IRxAoOqiLIqfTaNw84SfLWsDmqo08k30prHVKbHuYDo7ez6U7EsLX0oJX1ltV2AOg2KfoMPPA/sTx/ZPMqF9YiN11AsHLFrHgaAT3GBvw7hO+U9TH4bX10rgVx7YgMr0p7Pow4tL8XcY3l1kJMfVQmsA3fa/wFQh3JK9eivtV+tCaD4cUjdZvIRI9BfDUDd6PkkbfKhVbOJf/jUpuQcXXlgVNv68ejr4gTflk5AZ71+jR4AvEdPg6PDNpaz6a2AQm2otoWKvVS+LVTyL4OnaE7wSNUjfdpnZb+KbQdcA7Jr5ek0od8MD9dNjiN43t4etk1v0ITfyw6gS+Q4l5XwGwbXli+u/sj6pWGu9XfyYXx75d18+lf6t0tnau/pXKv8+xzorIkltn0l4r2dYCXlO8XDRbu9xw/9g/Zko2FXSFtKPxOxn3q+caluteK5lJsboXwVP/S27cPVz28X3i3/Ll/v8eDVMPDmzwvDbwddMt+NoROhq3yXcC4D7KpmTyA+XnqEzSFQrawDeLrsNemHrEL2+24r7NlENZUMa2vyxkH2DIs628e669ubdsR4VXC7C9u79eIVJtOwgdgO/dOICHGK6jQHaIwdXN4Lwt0LWHr4d6kX8tV+ozqAs+uYCSmO2w+jd4zGNeUYL4nqZxeN5WKVgooSAClmEaYhqhdit89QC7niSbCEM2sdkBuHYxQg9ri5ZjkuhI6DMP+J7cTvEtokEx0aPscyddoFJKpSZqV7G1GTxcpmEthpnw5058c6GfwqpwzGOtGjXSJI3FLYhc+O+jSr9aGhPWQlRshS8AticLX7wnsgbXxt6gsWCpRBa0vRGQM8oB9dhmP3QAwFX4c079dJNq6Qi5xbuyTmpPSJ1Ur4UtF7GoTtmUL3zxaWqMU8P/k3cXSQ1EQRjHGdzdHTa4u7tzBs7CedhykNwF2/5jq56iU11db6Lv2yTj8hs3JoiU9sZZp5/62J5v1z9NjrDHaSbnbFMf52sHrDUVaidDxNG0o9+uLjfosfdb3jT5d5j757riJgst9NIZQ2Pn+ySZll80vjI6Wz/hQJG4vPG0L/H6poQch/dW3vL3B0u8jl0HvVj5PvHCElEF8DUAFikVYTcvmfBdDzQlvvMXSV5lP5zrXj/fJ54zuWaeeuoqkW8AwCIaqeTZKkmYrpPwR2eqN9X72W7EG57vU67OBeuMV8KXLUzv93UTTj42tvaFS++GVsc5JRyLSLJ8nzO555hFBmiSRCqMr4GwrcmGkib5xSvcwmzFK6e8s7DMa2xH4YZdZumSOwsVzFeBWdr37tpIhOpSwXqONNgZq/2KgvBt54znHN1HzlljTO4oVD5fb+prNIJXQNL1ofDKQisbPLJDv3jNSLq9OkYBEIihKIj3v7S1TRQCX5Kdl1ZQlol7LF+E++fwirfiq2sf4cTXxc6hzxffPuLEeqSWrPGWMF58TWr5viyJAP5/4EV4KePiaSE8eNRgjDy8/tyRW+FZjhS+2tlovNJovtJovNJ0uhK6Wo64SDdxEbM//KesjwAAAABJRU5ErkJggg==",Gn.map=o}}var $n=new e.Box3(new e.Vector3(-50,-50,-50),new e.Vector3(50,50,50)),es=new e.Vector2,ts=new e.Frustum,rs=new e.Matrix4,is=new e.Clock,ns=new WeakMap,ss=function(t){function r(r){var i,n,s,o,a,u,c,l,h,d,p,f,A,M,g;void 0===r&&(r={});var y=t.call(this)||this;if(y.ident=Fe(),y.panoIndex=0,y.needsRender=!1,y.onlyRenderIfNeeds=null===(i=r.onlyRenderIfNeeds)||void 0===i||i,y.maxFps=null!==(n=r.maxFps)&&void 0!==n&&n,y.imageOptions=r.imageOptions||{},y.textureOptions=r.textureOptions||y.imageOptions||{},y.poweredByRealsee=null===(s=r.poweredByRealsee)||void 0===s||s,y.extraElements=[],y.controllerInits={Panorama:null!==(o=r.panorama)&&void 0!==o?o:{},Model:null!==(a=r.model)&&void 0!==a?a:{},Floorplan:null!==(u=r.floorplan)&&void 0!==u?u:{},Topview:null!==(c=r.topview)&&void 0!==c?c:{},DepthPanorama:null!==(l=r.depthPanorama)&&void 0!==l?l:{},VRPanorama:null!==(h=r.vrPanorama)&&void 0!==h?h:{}},y.modeChangeDuration=null!==(d=r.modeChangeDuration)&&void 0!==d?d:1e3,y.panoramaLikeSavedPose={},"undefined"!=typeof window)if(r.renderer)r.renderer instanceof Ue&&y.throwError(new Error("cannot render a internal renderer")),y.renderer=r.renderer;else try{y.renderer=new Ue({preserveDrawingBuffer:r.preserveDrawingBuffer,backgroundColor:r.backgroundColor,backgroundAlpha:r.backgroundAlpha,antialias:r.antialias});var v=Un();y.renderer.setPixelRatio(1===v?window.devicePixelRatio:1),y.renderer.setSize(512,512)}catch(e){e instanceof Error&&y.throwError(e)}y.getPixelsRenderTarget=new e.WebGLRenderTarget(1,1,{encoding:null!==(f=null===(p=y.renderer)||void 0===p?void 0:p.outputEncoding)&&void 0!==f?f:e.sRGBEncoding}),y.scissor=Object.assign({left:0,bottom:0,width:1,height:1},r.scissor),y.camera=new _e(80),y.scene=new Be,y.lastLoadWorkTask=Promise.resolve(),y.networkSubscribe=new Ot,y.networkSubscribe.on("network",(function(e,t,r){var i;y.emit("network",e,t,r),null===(i=y.analysis)||void 0===i||i.network(y.work,e,t,r)})),y.model=new Dr({allowHosts:[],networkSubscribe:y.networkSubscribe});var m=ht($n);if(y.model.add(m),y.model.visible=!1,y.model.name="model_empty",y.model.empty=!0,y.model.loaded=!1,y.readyCallbacks=[],y.modelPending=!1,y.scene.add(y.model),y.helperGroup=new e.Group,y.helperGroup.name="helper",y.scene.add(y.helperGroup),y.videoTexture=new e.VideoTexture(r.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),y.plugins={},r.plugins)for(var N=0,D=r.plugins;N<D.length;N++){var w=D[N];if("function"==typeof w)w(y);else if(Array.isArray(w)){var T=w[0],x=w[1],E=w[2],j=T(y,E);"string"==typeof x&&(y.plugins[x]&&y.throwError(new Error("plugin name "+x+" is exists.")),y.plugins[x]=j)}}return function(t){(r=new e.DirectionalLight(16777215,.5)).position.copy(new e.Vector3(1,1,1)),t.add(r);var r=new e.DirectionalLight(16777215,.3);t.add(r),r=new e.AmbientLight(16777215,.3),t.add(r)}(y.scene),y.state={mode:null!==(A=y.currentMode)&&void 0!==A?A:Kr,panoIndex:null!==(M=y.panoIndex)&&void 0!==M?M:0,longitude:y.camera.pose.longitude,latitude:y.camera.pose.latitude,fov:y.camera.pose.fov,offset:y.camera.pose.offset.clone()},y.stateSynced=!1,y.destroyed=!1,y.paused=!0,"undefined"!=typeof window&&(!1!==r.play&&y.play(),!1!==(null!==(g=r.initialBasisLoader)&&void 0!==g&&g)&&("string"==typeof r.initialBasisLoader?y.initBasisLoader(r.initialBasisLoader):y.initBasisLoader()),We((function(){return y.syncState()}))),y}return Se(r,t),r.prototype.dispose=function(){if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var e=this.getElement();e&&e.parentNode&&e.parentNode.removeChild(e),this.scene.remove(this.model);var t=this.model.getMaterial();t&&(t.pano0Map&&t.pano0Map.dispose(),t.pano1Map&&t.pano1Map!==t.pano0Map&&t.pano1Map.dispose()),this.renderer instanceof Ue&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},r.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.resize&&this.controller.resize()},Object.defineProperty(r.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),r.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Ue){var r=this.getElement();if(r){e.appendChild(r),this.refresh(t);var i=window.getComputedStyle(e).position;"relative"!==i&&"absolute"!==i&&"fixed"!==i&&"sticky"!==i&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},r.prototype.refresh=function(t,r){if(void 0===t&&(t={}),this.renderer){var i=this.getElement();if(i){var n=i.parentNode;if(n&&n.nodeName){var s=t.width,o=void 0===s?n.offsetWidth:s,a=t.height,u=void 0===a?n.offsetHeight:a;this.renderer instanceof Ue&&(r&&this.renderer.setPixelRatio(r),this.renderer.setSize(o,u))}var c=this.renderer.getSize(new e.Vector2);this.camera.aspect=c.x/c.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.resize&&this.controller.resize(),this.needsRender=!0}}},r.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},r.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},r.prototype.getPose=function(){return this.camera.copyPose()},r.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},r.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},r.prototype.updateCamera=function(t,r,i){var n=this;return void 0===i&&(i=!0),new Promise((function(s,o){if(n.controller){var a=n.getPose(),u=a.longitude,c=a.latitude,l=a.fov,h=a.offset,d=t.longitude,p=void 0===d?u:d,f=t.latitude,A=void 0===f?c:f,M=t.fov,g=void 0===M?l:M,y=t.offset,v=void 0===y?h.clone():y;!1===i&&(n.state.longitude=p,n.state.latitude=A,n.state.fov=g,n.state.offset=v),n.controller.tweenCoordinates&&(n.controller.tweenCoordinates.destroy(),delete n.controller.tweenCoordinates),n.tweenCoordinates&&(n.tweenCoordinates.destroy(),delete n.tweenCoordinates);var m=n.tweenCoordinates=Fr(r,Qr.Linear.None).onUpdate((function(t){var r,s=t.progress,o=Zr(u,p,s),a=Wr(c,A,s),d=Wr(l,g,s),f=new e.Vector3(Wr(h.x,v.x,s),Wr(h.y,v.y,s),Wr(h.z,v.z,s));null===(r=n.controller)||void 0===r||r.updateCamera({longitude:o,latitude:a,fov:d,offset:f},i,!0)})).onCancel((function(){for(var e=0,t=D;e<t.length;e++)(0,t[e])();delete n.tweenCoordinates,o(new Error("updateCamera animation canceled"))})).onComplete((function(){for(var e=0,t=D;e<t.length;e++)(0,t[e])();m.destroy(),delete n.tweenCoordinates,s()})),N=function(){return m.destroy()},D=[n.on("gesture",N),n.on("load",N)]}else{var w=new Error("controller never initialized");o(w)}}))},r.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},r.prototype.getOffset=function(){return this.getPose().offset},r.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var t=this.work.observers[this.panoIndex],r=new e.Object3D;return r.position.copy(t.position),r.quaternion.copy(t.quaternion),r.scale.set(1,1,1),r.updateMatrixWorld(!0),function(t,r){var i=new e.Vector3(0,0,-1);i.applyQuaternion(t.quaternion);var n=r.quaternion.clone().inverse();return i.applyQuaternion(n),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,r)}},r.prototype.initBasisLoader=function(e){try{if(!this.renderer)throw new Error("renderer is not initialized.");if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&Kt.setTranscoderPath(e),Kt.workerConfig.format||Kt.detectSupport(this.renderer),Kt._allocateWorker(0)}catch(e){e instanceof Error&&this.throwError(e)}},Object.defineProperty(r.prototype,"work",{get:function(){var e=ns.get(this);if(e&&ni.get(e))return e},enumerable:!1,configurable:!0}),r.prototype.load=function(e,t,r,i){var n=this;if(void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized");var s=this.lastLoadWorkTask.then((function(){return!(s=e)||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof s.then?n.load_(e,t,r,i):e.then((function(e){return n.load_(e,t,r,i)}));var s}));return this.lastLoadWorkTask=s.catch((function(e){n.throwError(e)})),s},r.prototype.load_=function(e,t,i,n){var s,o,a,u,c,l,h,d,p,f=this;void 0===n&&(n=!0);var A,M,g,y=oi(e),v=this.work;void 0===t&&(t=v?"inherit":"initial"),"inherit"===t?(A="number"==typeof this.panoIndex&&y.observers[this.panoIndex]?this.panoIndex:y.initial.panoIndex,M=null!==(s=this.currentMode)&&void 0!==s?s:y.initial.mode,g={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===t?(M=null!==(o=this.currentMode)&&void 0!==o?o:y.initial.mode,A=y.initial.panoIndex,g=M===r.Mode.Panorama||M===r.Mode.DepthPanorama||M===r.Mode.Model||M===r.Mode.VRPanorama?{longitude:y.initial.longitude,latitude:y.initial.latitude,fov:y.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(A=null!==(a=t.panoIndex)&&void 0!==a?a:y.initial.panoIndex,M=null!==(c=null!==(u=t.mode)&&void 0!==u?u:this.currentMode)&&void 0!==c?c:Kr,g={longitude:null!==(l=t.longitude)&&void 0!==l?l:y.initial.longitude,latitude:null!==(h=t.latitude)&&void 0!==h?h:y.initial.latitude,fov:null!==(d=t.fov)&&void 0!==d?d:y.initial.fov}),this.emit("willLoad",e,y,{panoIndex:A,mode:M,longitude:g.longitude,latitude:g.latitude,fov:g.fov});var m=function(){var t;ns.set(f,y),f.panoIndex=A,f.panoramaLikeSavedPose.longitude=y.initial.longitude,f.panoramaLikeSavedPose.latitude=y.initial.latitude,f.panoramaLikeSavedPose.fov=y.initial.fov;var r=null!=i?i:void 0===v?0:f.modeChangeDuration,s={panoIndex:A,longitude:g.longitude,latitude:g.latitude,fov:g.fov},o=Le(Le({panoIndex:A,initial:[{longitude:g.longitude,latitude:g.latitude,fov:g.fov},r,n]},f.commonParams()),f.controllerInits[M]);f.controller?!1===f.controller.updateWork(y,s,r,!0)&&(f.controller.destroy(),f.controller=f.applyController(M,o)):f.controller=f.applyController(M,o),f.emit("load",e,y,{panoIndex:A,mode:M,longitude:g.longitude,latitude:g.latitude,fov:g.fov}),null===(t=f.analysis)||void 0===t||t.work(y)},N=function(e){var t,r;void 0===e&&(e=Qe),y.model&&((null===(t=null==v?void 0:v.model)||void 0===t?void 0:t.file)!==(null===(r=y.model)||void 0===r?void 0:r.file)?(f.emit("modelWillLoad",y.model),f.loadModel(y.model,y.allowHosts,e,!0)):e&&(!0===f.model.loaded?e():f.once("modelLoaded",(function(){return e()}))))};return M===r.Mode.Floorplan||M===r.Mode.Topview||M===r.Mode.Model?N((function(){m(),f.needsRender=!0})):(m(),null===(p=this.controller)||void 0===p||p.once("panoLoaded",(function(){f.needsRender=!0,N()}))),this.ready()},r.prototype.changeMode=function(e,t,i,n){var s=this;if(void 0===t&&(t={}),void 0===i&&(i=this.modeChangeDuration),void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(o,a){var u;if(!r.Mode.hasOwnProperty(e)){var c=new Error('mode "'+e+'" is not existed');return s.throwError(c),void a(c)}if(e!==r.Mode.Floorplan&&e!==r.Mode.Topview&&e!==r.Mode.Model||!Re(s.model)&&!0===s.model.loaded){if(Re(s.controller))return s.currentMode=e,s.panoIndex=null!==(u=t.panoIndex)&&void 0!==u?u:s.panoIndex,s.updateCamera(t,i);var l=s.controller,h=s.currentMode,d=function(){var u,c,d,p;if(s.emit("wantsChangeMode",e,h))a(new Error("change mode canceled."));else{if(s.controller&&h===e)e===r.Mode.Panorama||e===r.Mode.DepthPanorama||e===r.Mode.Model||e===r.Mode.VRPanorama?"number"==typeof t.panoIndex&&t.panoIndex!==s.panoIndex?s.controller.moveToPano(null!==(c=null!==(u=t.panoIndex)&&void 0!==u?u:s.panoIndex)&&void 0!==c?c:0,Le({duration:i},t),n):s.updateCamera(t,i,n).catch((function(){})):("number"==typeof t.panoIndex&&t.panoIndex!==s.panoIndex&&(s.panoIndex=s.controller.currentPanoIndex=t.panoIndex),s.updateCamera(t,i,n).catch((function(){})));else{l.destroy();var f=Le(Le({panoIndex:null!==(p=null!==(d=t.panoIndex)&&void 0!==d?d:s.panoIndex)&&void 0!==p?p:0,initial:[Pn(e)?s.panoramaLikeSavedPose:t,i,n]},s.commonParams()),s.controllerInits[e]);s.saveControllerPose(l),s.controller=s.applyController(e,f),s.controller.once("initAnimationWillStart",(function(t,r){s.emit("modeChange",e,h,t,r)})),s.emit("currentStateChange",s.getCurrentState(),n)}o()}};e===r.Mode.VRPanorama?("undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return d()})).catch((function(e){e instanceof Error&&(s.throwError(e),a(e))})):d()}else c=new Error("model is not ready."),s.throwError(c)}))},r.prototype.getPixels=function(t,r,i,n,s){if(void 0===s&&(s=1),!this.renderer)throw new Error("renderer is not initialized.");var o=this.getPixelsRenderTarget,a=this.renderer.getSize(new e.Vector2);t=Math.min(Math.max(t,Math.floor(i/2)),Math.floor(a.x-i)),r=Math.min(Math.max(r,Math.floor(n/2)),Math.floor(a.y-n)),t*=s,r*=s,i*=s,n*=s,o.setSize(a.x*s,a.y*s),o.scissor.set(t,r,i,n),o.scissorTest=!0,this.renderer.setRenderTarget(o);var u=new Uint8Array(i*n*4);return this.controller?this.controller.render(is.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(o,t,r,i,n,u),this.renderer.setRenderTarget(null),o.setSize(1,1),o.scissor.set(0,0,0,0),o.scissorTest=!1,u},r.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},r.prototype.pause=function(){},r.prototype.render=function(t,r){var i=this;if(void 0===r&&(r=!1),this.renderer){if(r){var n=this.renderer.getSize(new e.Vector2);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.screenBuffer&&null===this.renderer.getRenderTarget()){var s=this.getDrawingBufferSize(es);this.screenBuffer.setSize(s.x,s.y),this.renderer.setRenderTarget(this.screenBuffer),this.controller?this.controller.render(is.getDelta()):this.renderer.render(this.scene,this.camera),this.poweredByRealsee&&Jn(this.renderer),this.renderer.setRenderTarget(null);var o=wr(this.renderer.getContext());o&&this.throwError(o),t&&qe(t)}else this.aroundScissor((function(){if(i.renderer){i.controller?i.controller.render(is.getDelta()):i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&Jn(i.renderer);var e=wr(i.renderer.getContext());e&&i.throwError(e)}t&&qe(t)}))}},r.prototype.play=function(){var t=this;if(this.pause(),this.needsRender=!0,this.renderer){var i=He(),n=He(),s=0;this.paused=!1;var o=We((function(){var o,a;if(!0!==t.paused&&!t.destroyed&&t.renderer){var u=He();if(t.maxFps){if(u-i+1<=1e3/t.maxFps)return;i=u}var c=t.renderer.getSize(new e.Vector2),l=[];rs.multiplyMatrices(t.camera.projectionMatrix,t.camera.matrixWorldInverse),ts.setFromProjectionMatrix(rs),t.scene.traverse((function(t){t.setResolution&&t.setResolution(c.x,c.y),t.mixer instanceof e.AnimationMixer&&t.mixer.update(is.getDelta()),(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ts.intersectsObject(t))&&l.push(t)}));var h=!1;if(t.currentMode!==r.Mode.VRPanorama&&t.onlyRenderIfNeeds){for(var d=0,p=l;d<p.length;d++){var f=p[d],A=function(e){!0===e.needsRender?(e.needsRender=!1,t.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(t.needsRender=!0)};A(f),f.traverseAncestors(A)}t.controller&&!0===t.controller.needsRender&&(t.controller.needsRender=!1,t.needsRender=!0),!1!==t.needsRender&&(t.render(),h=!0)}else t.render(),h=!0;if(t.needsRender=!1,t.screenBuffer&&null===t.renderer.getRenderTarget()&&(null===(o=t.controller)||void 0===o?void 0:o.postProcessing)){var M=null===(a=t.controller)||void 0===a?void 0:a.postProcessing;t.aroundScissor((function(){return M(t.screenBuffer,is.getDelta())}))}t.hasListener("renderFrame")&&t.emit("renderFrame",h),t.hasListener("fps")&&(n&&u-n<1e3?s++:(n&&t.emit("fps",s),n=u,s=0))}}));this.pause=function(){t.paused=!0,o(),t.renderer&&t.renderer instanceof Ue&&t.renderer.clear(!0,!0,!0)}}},r.prototype.moveToPano=function(e,t,i){var n;if(void 0===t&&(t={}),void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized.");var s=this.moveToPanoQueue=this.moveToPanoQueue||[],o=this.controller,a=this.currentMode;if(o)if(a===r.Mode.Floorplan||a===r.Mode.Topview)s.length=0,delete s.dequeue,Re(e)||(this.panoIndex=e,this.changeMode(r.Mode.Panorama,t));else{if((null===(n=this.controller)||void 0===n?void 0:n.tweenPosition)||(s.length=0,delete s.dequeue),s.push([e,t,i]),s.length>2&&(s.length=2),s.dequeue)return;var u=function(){if(0!==s.length){var e=s.shift(),t=e[0],r=e[1],i=void 0===r?{}:r,n=e[2],a=Object.assign({},i);a.moveEndCallback=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return i.moveEndCallback&&(e=i.moveEndCallback.apply(this,t)),setTimeout(u),e},a.moveCancelCallback=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return i.moveCancelCallback&&(e=i.moveCancelCallback.apply(this,t)),setTimeout(u),e},o&&"moveToPano"in o&&qe((function(){return o.moveToPano(t,a,n)}))}else delete s.dequeue};s.dequeue=!0,u()}},r.prototype.preloadPano=function(e,t){var r=this;if(void 0===t&&(t=Qe),!this.work)return Promise.reject(new Error("work never loaded"));var i=this.work.observers[e],n=He();return Promise.all(["right","left","up","down","front","back"].map((function(t){var n=Le({key:["cube",e,t].join("."),basisLoaderInitialized:Kt.isInitialized()},r.imageOptions);return function(e,t){return void 0===t&&(t={}),e in Lt?Lt[e]:Lt[e]=new Promise((function(r){var i=document.createElement("link");i.href=e,i.rel="preload",i.as="fetch";var n=He(),s=document.head||document.getElementsByTagName("head")[0];s&&s.appendChild(i),i.onload=function(){var i;r();var s=He(),o={source:e,requestTime:n,responseTime:s,costs:s-n,headers:{}};null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"preload",JSON.stringify(o))}}))}(kt(i.images[t],n),{networkSubscribe:r.networkSubscribe})}))).then((function(){var e=He()-n;return t(e),e}))},r.prototype.project2d=function(t,r){if(void 0===r&&(r=!1),!this.renderer)return null;if(!1===this.model.empty&&r){var i=this.camera.position,n=t.clone().sub(i),s=new e.Raycaster(i,n.clone().normalize()),o=this.model.intersectRaycaster(s)[0];if(o&&o.distance+.01<n.length())return null}var a=t.clone().project(this.camera);if(Math.abs(a.z)>1)return null;var u=this.renderer.getSize(new e.Vector2),c=u.x*this.scissor.width,l=u.y*this.scissor.height,h=u.x*this.scissor.left+(a.x+1)/2*c,d=u.y*(1-this.scissor.bottom-this.scissor.height)+(1-a.y)/2*l;return new e.Vector2(h,d)},r.prototype.getRenderObjects=function(t){rs.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ts.setFromProjectionMatrix(rs),t||(t=this.scene);var r=[];return t.traverseVisible((function(t){(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ts.intersectsObject(t))&&r.push(t)})),r},r.prototype.getCurrentState=function(){return Le(Le({},this.camera.copyPose()),{mode:this.currentMode||r.Mode.Panorama,panoIndex:this.panoIndex||0})},r.prototype.setState=function(t,i,n){var s,o,a,u,c,l,h;void 0===i&&(i=!1),void 0===n&&(n=!0),!(t=Object.assign({},t)).offset||t instanceof e.Vector3||(t.offset=new e.Vector3(t.offset.x,t.offset.y,t.offset.z));var d,p,f,A,M=null!==(s=t.panoIndex)&&void 0!==s?s:this.state.panoIndex,g=null!==(o=t.mode)&&void 0!==o?o:this.state.mode;if(t.mode!==r.Mode.Floorplan&&t.mode!==r.Mode.Topview&&t.mode!==r.Mode.Model||!Re(this.model)&&!0===this.model.loaded){if(this.state.mode!==g){var y;y=Pn(this.state.mode)&&Pn(g)?this.state:Pn(g)?this.panoramaLikeSavedPose:t;var v=Le(Le({panoIndex:M,initial:[y,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[g]),m=kn[g].initAnimationEndPose(v);d=m.longitude,p=m.latitude,f=m.fov,A=m.offset}else d=null!==(a=t.longitude)&&void 0!==a?a:this.state.longitude,p=null!==(u=t.latitude)&&void 0!==u?u:this.state.latitude,f=null!==(c=t.fov)&&void 0!==c?c:this.state.fov,A=null!==(l=t.offset)&&void 0!==l?l:this.state.offset;this.emit("setState",{longitude:d,latitude:p,fov:f,offset:A,mode:g,panoIndex:M}),(M!==this.state.panoIndex||g!==this.state.mode||Math.abs(d-this.state.longitude)>.001||Math.abs(p-this.state.latitude)>.001||Math.abs(f-this.state.fov)>.001||A.distanceTo(this.state.offset)>.001)&&(this.state.panoIndex=M,this.state.mode=g,this.state.longitude=d,this.state.latitude=p,this.state.fov=f,this.state.offset.copy(A),i&&this.syncState(i),this.emit("stateChange",this.state,n),null===(h=this.analysis)||void 0===h||h.state(this.work,this.state))}else this.throwError(new Error("model is not ready."))},r.prototype.aroundScissor=function(t){if(this.renderer){var r=new e.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(i){this.renderer.getSize(r);var n=Math.floor(r.x*this.scissor.left),s=Math.floor(r.y*this.scissor.bottom),o=Math.floor(r.x*this.scissor.width),a=Math.floor(r.y*this.scissor.height);this.renderer.setViewport(n,s,o,a),this.renderer.setScissor(n,s,o,a),this.renderer.setScissorTest(!0)}t(),i&&(this.renderer.setViewport(0,0,r.x,r.y),this.renderer.setScissor(0,0,r.x,r.y),this.renderer.setScissorTest(!1))}},r.prototype.syncState=function(t){if(void 0===t&&(t=!1),this.controller&&!1!==this.controller.ready&&!0!==this.controller.gesturing&&!this.tweenCoordinates){if(this.readyCallbacks.length){var i=this.currentMode;if(i!==r.Mode.Floorplan&&i!==r.Mode.Topview&&i!==r.Mode.Model||!this.modelPending)for(var n=void 0;n=this.readyCallbacks.shift();)n()}var s=this.stateSynced;if(this.stateSynced=!1,this.state.mode===this.currentMode){if(this.controller instanceof kn.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPosition(this.state.offset,o,!1)}}else if(this.state.panoIndex!==this.panoIndex)return o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset},void this.controller.moveToPano(this.state.panoIndex,o,!1);if(this.controller instanceof kn.Topview){var a=t?new e.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new e.Vector3(Xr(this.camera.pose.offset.x,this.state.offset.x,.2),Xr(this.camera.pose.offset.y,this.state.offset.y,.2),Xr(this.camera.pose.offset.z,this.state.offset.z,.2));if(!this.camera.pose.offset.equals(a))return void this.controller.updateCamera({offset:a},!1,!1)}else{var u=Math.PI/45,c=t?this.state.fov:Xr(this.camera.pose.fov,this.state.fov,1),l=t?{longitude:this.state.longitude,latitude:this.state.latitude}:function(e,t,r){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var i=Hr(e.longitude),n=e.latitude,s=Hr(t.longitude),o=t.latitude;s-i>Gr?i+=qr:i-s>Gr&&(i-=qr);var a=r/Math.sqrt(Math.pow(s-i,2)+Math.pow(o-n,2));return a>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:i+(s-i)*a,latitude:n+(o-n)*a}}({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u),h=l.longitude,d=l.latitude;if(c!==this.camera.pose.fov||h!==this.camera.pose.longitude||d!==this.camera.pose.latitude)return this.controller.tweenCoordinates&&(this.controller.tweenCoordinates.destroy(),delete this.controller.tweenCoordinates),void this.controller.updateCamera({longitude:h,latitude:d,fov:c},!1,!1)}this.stateSynced=!0,!1===s&&this.emit("stateSynced",this.state)}else{var p={panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};this.changeMode(this.state.mode,p,this.modeChangeDuration,!1)}}},r.prototype.ready=function(){var e=this;return new Promise((function(t){return e.readyCallbacks.push(t)}))},r.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},r.prototype.loadModel=function(e,t,i,n){var s=this,o=e.async||!1;this.emit("modelWillLoad",e);var a=new Dr({allowHosts:t,networkSubscribe:this.networkSubscribe});a.once("bvhLoaded",(function(){s.emit("modelBvhLoaded",a)})),a.once("geometryLoaded",(function(){s.emit("modelGeometryLoaded",a)})),a.on("error",(function(e){s.emit("modelLoadError",e,a),s.throwError(e),s.modelPending=!1})),a.on("shownFloorChange",(function(e,t){s.emit("modelShownFloorChange",e,t)})),a.once("loaded",(function(){var t;if(!s.destroyed){a.bounding.max.y-a.bounding.min.y<1.5&&(a.bounding.max.y=a.bounding.min.y+10);var u,c=s.model;c&&(c.show(),u=c.getMaterial()||{},s.scene.remove(c),c.dispose(),a.setTransparent(c.getTransparent())),s.model=Object.assign(a,{loaded:!0}),null===(t=s.controller)||void 0===t||t.resetModel(s.model,n),u&&s.model.setMaterial(u),c&&s.currentMode!==r.Mode.Panorama&&(o=!1);var l=function(){i(),s.emit("modelLoaded",a),qe((function(){return s.emit("modelMaterialLoaded",a)})),e.bvh&&Ft((function(){return a.buildBVH()})),"function"==typeof gc&&gc(),s.needsRender=!0,s.modelPending=!1};if(o){var h=[].concat(s.model.children);s.model.children.length=0;var d=ht($n);d.name="uniformKeeper",d.visible=!1,d.setMaterial(u||{}),s.model.add(d),s.scene.add(s.model);var p=function(){Ft((function(){var e=h.shift();e?(s.model.setMaterial.call(e,s.model.getMaterial()||{}),s.model.add(e),null===s.model.shownFloor?s.model.show():s.model.show(s.model.shownFloor),qe(p,2)):(s.model.remove(d),l())}))};p()}else c?(s.scene.add(s.model),l()):Ft((function(){s.scene.add(s.model),l()}))}})),this.modelPending=!0,a.load(e,this.textureOptions)},r.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,helper:this.helperGroup,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe}},r.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&Pn(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},r.prototype.applyController=function(t,i){var n=this;if(!this.renderer)throw new Error("renderer is not initialized.");var s=kn[t];t===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(t===r.Mode.Floorplan||t===r.Mode.Topview||t===r.Mode.Model),this.currentMode=t;var o=new s(i);if(o.postProcessing){if(!this.screenBuffer){var a=this.getDrawingBufferSize(es);this.screenBuffer=new e.WebGLRenderTarget(a.x,a.y,{encoding:this.renderer.outputEncoding})}}else this.screenBuffer&&(this.screenBuffer.dispose(),delete this.screenBuffer);for(var u=function(e){o.on(e,(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var i=n.emit.apply(n,Ce([e],t,!1));if(i)return!1}))},c=0,l=_n;c<l.length;c++)u(l[c]);if(!1===i.initial[2]){var h=kn[t].initAnimationEndPose(i);this.state.panoIndex=i.panoIndex,this.state.mode=t,this.state.longitude=h.longitude,this.state.latitude=h.latitude,this.state.fov=h.fov,this.state.offset=h.offset}return o.on("initAnimationWillStart",(function(e,r,i){var s;i&&(n.state.mode=t,n.state.panoIndex=e,n.state.longitude=r.longitude,n.state.latitude=r.latitude,n.state.fov=r.fov,n.state.offset.copy(r.offset),n.emit("stateChange",n.state,i),null===(s=n.analysis)||void 0===s||s.state(n.work,n.state))})),o.on("initAnimationEnded",(function(e,r,i){var s;i&&(n.state.mode=t,n.state.panoIndex=e,n.state.longitude=r.longitude,n.state.latitude=r.latitude,n.state.fov=r.fov,n.state.offset.copy(r.offset),n.emit("stateChange",n.state,i),null===(s=n.analysis)||void 0===s||s.state(n.work,n.state))})),o.on("moveToPano",(function(e,t){n.emit("currentStateChange",n.getCurrentState(),t)})),o.on("panoWillArrive",(function(e,t,r){var i;n.panoIndex=e,r&&(n.state.panoIndex=e,n.state.longitude=t.longitude,n.state.latitude=t.latitude,n.state.fov=t.fov,n.state.offset.copy(t.offset),n.emit("stateChange",n.state,r),null===(i=n.analysis)||void 0===i||i.state(n.work,n.state))})),o.on("panoArrived",(function(){"function"==typeof gc&&gc()})),o.on("wantsMoveToPano",(function(e,t,r){var i=n.emit("wantsMoveToPano",e,t,r);i||(i=n.emit("wantsToMoveToPano",e,t,r)),i||n.moveToPano(e,t,r)})),o.on("cameraUpdate",(function(e,t){var r;t&&n.state.mode===n.currentMode&&n.state.panoIndex===n.panoIndex&&(n.state.longitude=e.longitude,n.state.latitude=e.latitude,n.state.fov=e.fov,n.state.offset.copy(e.offset),n.emit("stateChange",n.state,t),null===(r=n.analysis)||void 0===r||r.state(n.work,n.state)),n.emit("currentStateChange",n.getCurrentState(),t)})),o.on("vrWantsToExit",(function(){n.currentMode===r.Mode.VRPanorama&&n.changeMode(r.Mode.Panorama)})),o.on("error",(function(e){return n.throwError(e)})),o},r.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},r.Line=null,r.Easing=Qr,r}(Nt)})(),__webpack_exports__})()}));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FiveSDK=t():e.FiveSDK=t()}(self,(function(){return(()=>{var __webpack_modules__={438:e=>{if(!("THREE"in window))throw new Error('"THREE" is not available. Please include "three.js" in your HTML.');const t=Number(THREE.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');e.exports=window.THREE},383:e=>{"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),i=0,n=2,s=!0;n<arguments.length;)r[i++]=arguments[n++];return new Promise((function(n,o){r[i]=function(e){if(s)if(s=!1,e)o(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];n.apply(null,t)}};try{e.apply(t||null,r)}catch(e){s&&(s=!1,o(e))}}))}},417:(e,t)=>{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var i=new Array(64),n=new Array(123),s=0;s<64;)n[i[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;r.encode=function(e,t,r){for(var n,s=null,o=[],a=0,u=0;t<r;){var c=e[t++];switch(u){case 0:o[a++]=i[c>>2],n=(3&c)<<4,u=1;break;case 1:o[a++]=i[n|c>>4],n=(15&c)<<2,u=2;break;case 2:o[a++]=i[n|c>>6],o[a++]=i[63&c],u=0}a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0)}return u&&(o[a++]=i[n],o[a++]=61,1===u&&(o[a++]=61)),s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};var o="invalid encoding";r.decode=function(e,t,r){for(var i,s=r,a=0,u=0;u<e.length;){var c=e.charCodeAt(u++);if(61===c&&a>1)break;if(void 0===(c=n[c]))throw Error(o);switch(a){case 0:i=c,a=1;break;case 1:t[r++]=i<<2|(48&c)>>4,i=c,a=2;break;case 2:t[r++]=(15&i)<<4|(60&c)>>2,i=c,a=3;break;case 3:t[r++]=(3&i)<<6|c,a=0}}if(1===a)throw Error(o);return r-s},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},679:e=>{"use strict";function t(e,r){"string"==typeof e&&(r=e,e=void 0);var i=[];function n(e){if("string"!=typeof e){var r=s();if(t.verbose&&console.log("codegen: "+r),r="return "+r,e){for(var o=Object.keys(e),a=new Array(o.length+1),u=new Array(o.length),c=0;c<o.length;)a[c]=o[c],u[c]=e[o[c++]];return a[c]=r,Function.apply(null,a).apply(null,u)}return Function(r)()}for(var l=new Array(arguments.length-1),h=0;h<l.length;)l[h]=arguments[++h];if(h=0,e=e.replace(/%([%dfijs])/g,(function(e,t){var r=l[h++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"})),h!==l.length)throw Error("parameter count mismatch");return i.push(e),n}function s(t){return"function "+(t||r||"")+"("+(e&&e.join(",")||"")+"){\n "+i.join("\n ")+"\n}"}return n.toString=s,n}e.exports=t,t.verbose=!1},516:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],i=0;i<r.length;)r[i].fn===t?r.splice(i,1):++i;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],i=1;i<arguments.length;)r.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,r)}return this}},11:(e,t,r)=>{"use strict";e.exports=s;var i=r(383),n=r(795)("fs");function s(e,t,r){return"function"==typeof t?(r=t,t={}):t||(t={}),r?!t.xhr&&n&&n.readFile?n.readFile(e,(function(i,n){return i&&"undefined"!=typeof XMLHttpRequest?s.xhr(e,t,r):i?r(i):r(null,t.binary?n:n.toString("utf8"))})):s.xhr(e,t,r):i(s,this,e,t)}s.xhr=function(e,t,r){var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(0!==i.status&&200!==i.status)return r(Error("status "+i.status));if(t.binary){var e=i.response;if(!e){e=[];for(var n=0;n<i.responseText.length;++n)e.push(255&i.responseText.charCodeAt(n))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,i.responseText)}},t.binary&&("overrideMimeType"in i&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.responseType="arraybuffer"),i.open("GET",e),i.send()}},787:e=>{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),i=128===r[3];function n(e,i,n){t[0]=e,i[n]=r[0],i[n+1]=r[1],i[n+2]=r[2],i[n+3]=r[3]}function s(e,i,n){t[0]=e,i[n]=r[3],i[n+1]=r[2],i[n+2]=r[1],i[n+3]=r[0]}function o(e,i){return r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],t[0]}function a(e,i){return r[3]=e[i],r[2]=e[i+1],r[1]=e[i+2],r[0]=e[i+3],t[0]}e.writeFloatLE=i?n:s,e.writeFloatBE=i?s:n,e.readFloatLE=i?o:a,e.readFloatBE=i?a:o}():function(){function t(e,t,r,i){var n=t<0?1:0;if(n&&(t=-t),0===t)e(1/t>0?0:2147483648,r,i);else if(isNaN(t))e(2143289344,r,i);else if(t>34028234663852886e22)e((n<<31|2139095040)>>>0,r,i);else if(t<11754943508222875e-54)e((n<<31|Math.round(t/1401298464324817e-60))>>>0,r,i);else{var s=Math.floor(Math.log(t)/Math.LN2);e((n<<31|s+127<<23|8388607&Math.round(t*Math.pow(2,-s)*8388608))>>>0,r,i)}}function o(e,t,r){var i=e(t,r),n=2*(i>>31)+1,s=i>>>23&255,o=8388607&i;return 255===s?o?NaN:n*(1/0):0===s?1401298464324817e-60*n*o:n*Math.pow(2,s-150)*(o+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,i),e.readFloatLE=o.bind(null,n),e.readFloatBE=o.bind(null,s)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),i=128===r[7];function n(e,i,n){t[0]=e,i[n]=r[0],i[n+1]=r[1],i[n+2]=r[2],i[n+3]=r[3],i[n+4]=r[4],i[n+5]=r[5],i[n+6]=r[6],i[n+7]=r[7]}function s(e,i,n){t[0]=e,i[n]=r[7],i[n+1]=r[6],i[n+2]=r[5],i[n+3]=r[4],i[n+4]=r[3],i[n+5]=r[2],i[n+6]=r[1],i[n+7]=r[0]}function o(e,i){return r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r[3]=e[i+3],r[4]=e[i+4],r[5]=e[i+5],r[6]=e[i+6],r[7]=e[i+7],t[0]}function a(e,i){return r[7]=e[i],r[6]=e[i+1],r[5]=e[i+2],r[4]=e[i+3],r[3]=e[i+4],r[2]=e[i+5],r[1]=e[i+6],r[0]=e[i+7],t[0]}e.writeDoubleLE=i?n:s,e.writeDoubleBE=i?s:n,e.readDoubleLE=i?o:a,e.readDoubleBE=i?a:o}():function(){function t(e,t,r,i,n,s){var o=i<0?1:0;if(o&&(i=-i),0===i)e(0,n,s+t),e(1/i>0?0:2147483648,n,s+r);else if(isNaN(i))e(0,n,s+t),e(2146959360,n,s+r);else if(i>17976931348623157e292)e(0,n,s+t),e((o<<31|2146435072)>>>0,n,s+r);else{var a;if(i<22250738585072014e-324)e((a=i/5e-324)>>>0,n,s+t),e((o<<31|a/4294967296)>>>0,n,s+r);else{var u=Math.floor(Math.log(i)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(a=i*Math.pow(2,-u))>>>0,n,s+t),e((o<<31|u+1023<<20|1048576*a&1048575)>>>0,n,s+r)}}}function o(e,t,r,i,n){var s=e(i,n+t),o=e(i,n+r),a=2*(o>>31)+1,u=o>>>20&2047,c=4294967296*(1048575&o)+s;return 2047===u?c?NaN:a*(1/0):0===u?5e-324*a*c:a*Math.pow(2,u-1075)*(c+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,i,4,0),e.readDoubleLE=o.bind(null,n,0,4),e.readDoubleBE=o.bind(null,s,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function i(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function n(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function s(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},795:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},49:(e,t)=>{"use strict";var r=t,i=r.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},n=r.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),r=i(e),n="";r&&(n=t.shift()+"/");for(var s=0;s<t.length;)".."===t[s]?s>0&&".."!==t[s-1]?t.splice(--s,2):r?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return n+t.join("/")};r.resolve=function(e,t,r){return r||(t=n(t)),i(t)?t:(r||(e=n(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?n(e+"/"+t):t)}},476:e=>{"use strict";e.exports=function(e,t,r){var i=r||8192,n=i>>>1,s=null,o=i;return function(r){if(r<1||r>n)return e(r);o+r>i&&(s=e(i),o=0);var a=t.call(s,o,o+=r);return 7&o&&(o=1+(7|o)),a}}},893:(e,t)=>{"use strict";var r=t;r.length=function(e){for(var t=0,r=0,i=0;i<e.length;++i)(r=e.charCodeAt(i))<128?t+=1:r<2048?t+=2:55296==(64512&r)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},r.read=function(e,t,r){if(r-t<1)return"";for(var i,n=null,s=[],o=0;t<r;)(i=e[t++])<128?s[o++]=i:i>191&&i<224?s[o++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,s[o++]=55296+(i>>10),s[o++]=56320+(1023&i)):s[o++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],o>8191&&((n||(n=[])).push(String.fromCharCode.apply(String,s)),o=0);return n?(o&&n.push(String.fromCharCode.apply(String,s.slice(0,o))),n.join("")):String.fromCharCode.apply(String,s.slice(0,o))},r.write=function(e,t,r){for(var i,n,s=r,o=0;o<e.length;++o)(i=e.charCodeAt(o))<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=63&i|128):55296==(64512&i)&&56320==(64512&(n=e.charCodeAt(o+1)))?(i=65536+((1023&i)<<10)+(1023&n),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=63&i|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=63&i|128);return r-s}},94:(e,t,r)=>{"use strict";t.u=function(e){var t=void 0===arguments[1]?{}:arguments[1],r=t.algorithm,i=void 0===r?"sha1":r,o=t.inputEncoding,a=void 0===o?"utf8":o,u=t.outputEncoding,c=void 0===u?"hex":u,l=t.crypto,h=void 0===l?s:l,d=t.sets;return n(e,{algorithm:i,inputEncoding:a,outputEncoding:c,crypto:h,sets:d})};var i,n=r(859).u,s=(i=r(324))&&i.__esModule?i.default:i},324:e=>{"use strict";var t=function(e,t){return e<<t|e>>>32-t};e.exports={createHash:function(e){var r=null;switch(e){case"sha1":r=function(){var e=[],r=[];return{update:function(t,r){!function(e,t,r){if(Array.isArray(t))for(var i=t.length,n=0;n<i;n++)e.push(t[n]);else if("utf8"===r){var s=unescape(encodeURIComponent(t));for(i=s.length,n=0;n<i;n++)e.push(s.charCodeAt(n))}else for(i=t.length,n=0;n<i;n++){var o=255&t.charCodeAt(n);e.push(0===o&&"ascii"===r?32:o)}}(e,t,r)},digest:function(i){for(var n=e.length,s=0;s<n-3;s+=4)r.push(e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]);switch(n%4){case 0:r.push(2147483648);break;case 1:r.push(e[n-1]<<24|8388608);break;case 2:r.push(e[n-2]<<24|e[n-1]<<16|32768);break;case 3:r.push(e[n-3]<<24|e[n-2]<<16|e[n-1]<<8|128)}for(;r.length%16!=14;)r.push(0);return r.push(n>>>29),r.push(n<<3&4294967295),function(e,t){var r=null,i=function(e){return String.fromCharCode(e)};switch(t){case"binary":r=e.map(i).join("");break;case"base64":r=atob(e.map(i).join(""));break;default:r=e.map((function(e){return e.toString(16)})).join("")}return r}(function(e){e.length;for(var r=4294967295,i=new Array(80),n=[1732584193,4023233417,2562383102,271733878,3285377520],s=0;s<e.length;s+=16){for(var o=n[0],a=n[1],u=n[2],c=n[3],l=n[4],h=0;h<16;h++)i[h]=e[s+h];for(h=16;h<=79;h++)i[h]=t(i[h-3]^i[h-8]^i[h-14]^i[h-16],1);for(h=0;h<=19;h++){var d=t(o,5)+(a&u|~a&c)+l+i[h]+1518500249&r;l=c,c=u,u=t(a,30),a=o,o=d}for(h=20;h<=39;h++)d=t(o,5)+(a^u^c)+l+i[h]+1859775393&r,l=c,c=u,u=t(a,30),a=o,o=d;for(h=40;h<=59;h++)d=t(o,5)+(a&u|a&c|u&c)+l+i[h]+2400959708&r,l=c,c=u,u=t(a,30),a=o,o=d;for(h=60;h<=79;h++)d=t(o,5)+(a^u^c)+l+i[h]+3395469782&r,l=c,c=u,u=t(a,30),a=o,o=d;n[0]=n[0]+o&r,n[1]=n[1]+a&r,n[2]=n[2]+u&r,n[3]=n[3]+c&r,n[4]=n[4]+l&r}return n}(r).reduce((function(e,t){for(var r=7;r>=0;--r)e.push(t>>>4*r&15);return e}),[]),i)}}}();break;default:throw new Error("Digest method not supported.")}return r}}},859:(e,t)=>{"use strict";t.u=function e(t){var r=void 0===arguments[1]?{}:arguments[1],i=r.algorithm,n=void 0===i?"sha1":i,s=r.inputEncoding,o=void 0===s?"utf8":s,a=r.outputEncoding,u=void 0===a?"hex":a,c=r.crypto,l=r.sets,h=c.createHash(n),d=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return h.update(t.join(":"),o)},p=function(t){return e(t,{algorithm:n,inputEncoding:o,outputEncoding:u,crypto:c,sets:l})};switch(!0){case void 0===t:d("u");break;case null===t:d("n");break;case"boolean"==typeof t:case t instanceof Boolean:d("f",t.valueOf());break;case"number"==typeof t:case t instanceof Number:d("i",""+t);break;case"string"==typeof t:case t instanceof String:d("s",""+t);break;case"symbol"==typeof t:case t instanceof Symbol:d("S",""+t);break;case t instanceof Date:d("d",t.toISOString());break;case t instanceof RegExp:d("x",""+t);break;case t instanceof Function:d("F",t.toString());break;case Array.isArray(t):l?(d("<"),t.map(p).sort().forEach((function(e){return d("A",e)})),d(">")):(d("["),t.forEach((function(e){return d("a",p(e))})),d("]"));break;default:d("{"),Object.keys(t).sort().forEach((function(e){return d("k",p(e),"v",p(t[e]))})),d("}")}return h.digest(u)}},247:(e,t,r)=>{"use strict";e.exports=r(189)},308:e=>{"use strict";e.exports=i;var t,r=/\/|\./;function i(e,t){r.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),i[e]=t}i("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),i("duration",{Duration:t={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),i("timestamp",{Timestamp:t}),i("empty",{Empty:{fields:{}}}),i("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),i("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),i("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),i.get=function(e){return i[e]||null}},32:(e,t,r)=>{"use strict";var i=t,n=r(969),s=r(827);function o(e,t,r,i){if(t.resolvedType)if(t.resolvedType instanceof n){e("switch(d%s){",i);for(var s=t.resolvedType.values,o=Object.keys(s),a=0;a<o.length;++a)t.repeated&&s[o[a]]===t.typeDefault&&e("default:"),e("case%j:",o[a])("case %i:",s[o[a]])("m%s=%j",i,s[o[a]])("break");e("}")}else e('if(typeof d%s!=="object")',i)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",i,r,i);else{var u=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",i,i);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",i,i);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",i,i);break;case"uint64":u=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,u)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,u?"true":"");break;case"bytes":e('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length)",i)("m%s=d%s",i,i);break;case"string":e("m%s=String(d%s)",i,i);break;case"bool":e("m%s=Boolean(d%s)",i,i)}}return e}function a(e,t,r,i){if(t.resolvedType)t.resolvedType instanceof n?e("d%s=o.enums===String?types[%i].values[m%s]:m%s",i,r,i,i):e("d%s=types[%i].toObject(m%s,o)",i,r,i);else{var s=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",i,i,i,i);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',i)("d%s=o.longs===String?String(m%s):m%s",i,i,i)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,s?"true":"",i);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:e("d%s=m%s",i,i)}}return e}i.fromObject=function(e){var t=e.fieldsArray,r=s.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),u=s.safeProp(a.name);a.map?(r("if(d%s){",u)('if(typeof d%s!=="object")',u)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",u)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",u),o(r,a,i,u+"[ks[i]]")("}")("}")):a.repeated?(r("if(d%s){",u)("if(!Array.isArray(d%s))",u)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",u)("for(var i=0;i<d%s.length;++i){",u),o(r,a,i,u+"[i]")("}")("}")):(a.resolvedType instanceof n||r("if(d%s!=null){",u),o(r,a,i,u),a.resolvedType instanceof n||r("}"))}return r("return m")},i.toObject=function(e){var t=e.fieldsArray.slice().sort(s.compareFieldsById);if(!t.length)return s.codegen()("return {}");for(var r=s.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],o=[],u=[],c=0;c<t.length;++c)t[c].partOf||(t[c].resolve().repeated?i:t[c].map?o:u).push(t[c]);if(i.length){for(r("if(o.arrays||o.defaults){"),c=0;c<i.length;++c)r("d%s=[]",s.safeProp(i[c].name));r("}")}if(o.length){for(r("if(o.objects||o.defaults){"),c=0;c<o.length;++c)r("d%s={}",s.safeProp(o[c].name));r("}")}if(u.length){for(r("if(o.defaults){"),c=0;c<u.length;++c){var l=u[c],h=s.safeProp(l.name);if(l.resolvedType instanceof n)r("d%s=o.enums===String?%j:%j",h,l.resolvedType.valuesById[l.typeDefault],l.typeDefault);else if(l.long)r("if(util.Long){")("var n=new util.Long(%i,%i,%j)",l.typeDefault.low,l.typeDefault.high,l.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",h)("}else")("d%s=o.longs===String?%j:%i",h,l.typeDefault.toString(),l.typeDefault.toNumber());else if(l.bytes){var d="["+Array.prototype.slice.call(l.typeDefault).join(",")+"]";r("if(o.bytes===String)d%s=%j",h,String.fromCharCode.apply(String,l.typeDefault))("else{")("d%s=%s",h,d)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",h,h)("}")}else r("d%s=%j",h,l.typeDefault)}r("}")}var p=!1;for(c=0;c<t.length;++c){l=t[c];var f=e._fieldsArray.indexOf(l);h=s.safeProp(l.name),l.map?(p||(p=!0,r("var ks2")),r("if(m%s&&(ks2=Object.keys(m%s)).length){",h,h)("d%s={}",h)("for(var j=0;j<ks2.length;++j){"),a(r,l,f,h+"[ks2[j]]")("}")):l.repeated?(r("if(m%s&&m%s.length){",h,h)("d%s=[]",h)("for(var j=0;j<m%s.length;++j){",h),a(r,l,f,h+"[j]")("}")):(r("if(m%s!=null&&m.hasOwnProperty(%j)){",h,l.name),a(r,l,f,h),l.partOf&&r("if(o.oneofs)")("d%s=%j",s.safeProp(l.partOf.name),l.name)),r("}")}return r("return d")}},388:(e,t,r)=>{"use strict";e.exports=function(e){var t=s.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter((function(e){return e.map})).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var a=e._fieldsArray[r].resolve(),u=a.resolvedType instanceof i?"int32":a.type,c="m"+s.safeProp(a.name);t("case %i:",a.id),a.map?(t("if(%s===util.emptyObject)",c)("%s={}",c)("var c2 = r.uint32()+r.pos"),void 0!==n.defaults[a.keyType]?t("k=%j",n.defaults[a.keyType]):t("k=null"),void 0!==n.defaults[u]?t("value=%j",n.defaults[u]):t("value=null"),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",a.keyType)("case 2:"),void 0===n.basic[u]?t("value=types[%i].decode(r,r.uint32())",r):t("value=r.%s()",u),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),void 0!==n.long[a.keyType]?t('%s[typeof k==="object"?util.longToHash(k):k]=value',c):t("%s[k]=value",c)):a.repeated?(t("if(!(%s&&%s.length))",c,c)("%s=[]",c),void 0!==n.packed[u]&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",c,u)("}else"),void 0===n.basic[u]?t(a.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",c,r):t("%s.push(r.%s())",c,u)):void 0===n.basic[u]?t(a.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",c,r):t("%s=r.%s()",c,u),t("break")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var l=e._fieldsArray[r];l.required&&t("if(!m.hasOwnProperty(%j))",l.name)("throw util.ProtocolError(%j,{instance:m})",o(l))}return t("return m")};var i=r(969),n=r(374),s=r(827);function o(e){return"missing required '"+e.name+"'"}},860:(e,t,r)=>{"use strict";e.exports=function(e){for(var t,r=s.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),a=e.fieldsArray.slice().sort(s.compareFieldsById),u=0;u<a.length;++u){var c=a[u].resolve(),l=e._fieldsArray.indexOf(c),h=c.resolvedType instanceof i?"int32":c.type,d=n.basic[h];t="m"+s.safeProp(c.name),c.map?(r("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",t,c.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",t)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(c.id<<3|2)>>>0,8|n.mapKey[c.keyType],c.keyType),void 0===d?r("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",l,t):r(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|d,h,t),r("}")("}")):c.repeated?(r("if(%s!=null&&%s.length){",t,t),c.packed&&void 0!==n.packed[h]?r("w.uint32(%i).fork()",(c.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",t)("w.%s(%s[i])",h,t)("w.ldelim()"):(r("for(var i=0;i<%s.length;++i)",t),void 0===d?o(r,c,l,t+"[i]"):r("w.uint32(%i).%s(%s[i])",(c.id<<3|d)>>>0,h,t)),r("}")):(c.optional&&r("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",t,c.name),void 0===d?o(r,c,l,t):r("w.uint32(%i).%s(%s)",(c.id<<3|d)>>>0,h,t))}return r("return w")};var i=r(969),n=r(374),s=r(827);function o(e,t,r,i){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,i,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,i,(t.id<<3|2)>>>0)}},969:(e,t,r)=>{"use strict";e.exports=o;var i=r(883);((o.prototype=Object.create(i.prototype)).constructor=o).className="Enum";var n=r(225),s=r(827);function o(e,t,r,n,s){if(i.call(this,e,r),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=s||{},this.reserved=void 0,t)for(var o=Object.keys(t),a=0;a<o.length;++a)"number"==typeof t[o[a]]&&(this.valuesById[this.values[o[a]]=t[o[a]]]=o[a])}o.fromJSON=function(e,t){var r=new o(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["options",this.options,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},o.prototype.add=function(e,t,r){if(!s.isString(e))throw TypeError("name must be a string");if(!s.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return this.comments[e]=r||null,this},o.prototype.remove=function(e){if(!s.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this},o.prototype.isReservedId=function(e){return n.isReservedId(this.reserved,e)},o.prototype.isReservedName=function(e){return n.isReservedName(this.reserved,e)}},149:(e,t,r)=>{"use strict";e.exports=c;var i=r(883);((c.prototype=Object.create(i.prototype)).constructor=c).className="Field";var n,s=r(969),o=r(374),a=r(827),u=/^required|optional|repeated$/;function c(e,t,r,n,s,c,l){if(a.isObject(n)?(l=s,c=n,n=s=void 0):a.isObject(s)&&(l=c,c=s,s=void 0),i.call(this,e,c),!a.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!a.isString(r))throw TypeError("type must be a string");if(void 0!==n&&!u.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==s&&!a.isString(s))throw TypeError("extend must be a string");"proto3_optional"===n&&(n="optional"),this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=t,this.extend=s||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==o.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=l}c.fromJSON=function(e,t){return new c(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(c.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),c.prototype.setOption=function(e,t,r){return"packed"===e&&(this._packed=null),i.prototype.setOption.call(this,e,t,r)},c.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return a.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},c.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=o.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof n?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof s&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof s)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=a.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var e;a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,e=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,e=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=e}return this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof n&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this)},c.d=function(e,t,r,i){return"function"==typeof t?t=a.decorateType(t).name:t&&"object"==typeof t&&(t=a.decorateEnum(t).name),function(n,s){a.decorateType(n.constructor).add(new c(s,e,t,r,{default:i}))}},c._configure=function(e){n=e}},176:(e,t,r)=>{"use strict";var i=e.exports=r(365);i.build="light",i.load=function(e,t,r){return"function"==typeof t?(r=t,t=new i.Root):t||(t=new i.Root),t.load(e,r)},i.loadSync=function(e,t){return t||(t=new i.Root),t.loadSync(e)},i.encoder=r(860),i.decoder=r(388),i.verifier=r(12),i.converter=r(32),i.ReflectionObject=r(883),i.Namespace=r(225),i.Root=r(554),i.Enum=r(969),i.Type=r(25),i.Field=r(149),i.OneOf=r(288),i.MapField=r(198),i.Service=r(868),i.Method=r(240),i.Message=r(48),i.wrappers=r(486),i.types=r(374),i.util=r(827),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},365:(e,t,r)=>{"use strict";var i=t;function n(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}i.build="minimal",i.Writer=r(147),i.BufferWriter=r(55),i.Reader=r(74),i.BufferReader=r(69),i.util=r(835),i.rpc=r(876),i.roots=r(7),i.configure=n,n()},189:(e,t,r)=>{"use strict";var i=e.exports=r(176);i.build="full",i.tokenize=r(729),i.parse=r(231),i.common=r(308),i.Root._configure(i.Type,i.parse,i.common)},198:(e,t,r)=>{"use strict";e.exports=o;var i=r(149);((o.prototype=Object.create(i.prototype)).constructor=o).className="MapField";var n=r(374),s=r(827);function o(e,t,r,n,o,a){if(i.call(this,e,t,n,void 0,void 0,o,a),!s.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}o.fromJSON=function(e,t){return new o(e,t.id,t.keyType,t.type,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},o.prototype.resolve=function(){if(this.resolved)return this;if(void 0===n.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return i.prototype.resolve.call(this)},o.d=function(e,t,r){return"function"==typeof r?r=s.decorateType(r).name:r&&"object"==typeof r&&(r=s.decorateEnum(r).name),function(i,n){s.decorateType(i.constructor).add(new o(n,e,t,r))}}},48:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,i.toJSONOptions)}},240:(e,t,r)=>{"use strict";e.exports=s;var i=r(883);((s.prototype=Object.create(i.prototype)).constructor=s).className="Method";var n=r(827);function s(e,t,r,s,o,a,u,c,l){if(n.isObject(o)?(u=o,o=a=void 0):n.isObject(a)&&(u=a,a=void 0),void 0!==t&&!n.isString(t))throw TypeError("type must be a string");if(!n.isString(r))throw TypeError("requestType must be a string");if(!n.isString(s))throw TypeError("responseType must be a string");i.call(this,e,u),this.type=t||"rpc",this.requestType=r,this.requestStream=!!o||void 0,this.responseType=s,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=c,this.parsedOptions=l}s.fromJSON=function(e,t){return new s(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return n.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",t?this.comment:void 0,"parsedOptions",this.parsedOptions])},s.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),i.prototype.resolve.call(this))}},225:(e,t,r)=>{"use strict";e.exports=h;var i=r(883);((h.prototype=Object.create(i.prototype)).constructor=h).className="Namespace";var n,s,o,a=r(149),u=r(288),c=r(827);function l(e,t){if(e&&e.length){for(var r={},i=0;i<e.length;++i)r[e[i].name]=e[i].toJSON(t);return r}}function h(e,t){i.call(this,e,t),this.nested=void 0,this._nestedArray=null}function d(e){return e._nestedArray=null,e}h.fromJSON=function(e,t){return new h(e,t.options).addJSON(t.nested)},h.arrayToJSON=l,h.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},h.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(h.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=c.toArray(this.nested))}}),h.prototype.toJSON=function(e){return c.toObject(["options",this.options,"nested",l(this.nestedArray,e)])},h.prototype.addJSON=function(e){if(e)for(var t,r=Object.keys(e),i=0;i<r.length;++i)t=e[r[i]],this.add((void 0!==t.fields?n.fromJSON:void 0!==t.values?o.fromJSON:void 0!==t.methods?s.fromJSON:void 0!==t.id?a.fromJSON:h.fromJSON)(r[i],t));return this},h.prototype.get=function(e){return this.nested&&this.nested[e]||null},h.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof o)return this.nested[e].values;throw Error("no such enum: "+e)},h.prototype.add=function(e){if(!(e instanceof a&&void 0!==e.extend||e instanceof n||e instanceof o||e instanceof s||e instanceof h||e instanceof u))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof h&&e instanceof h)||t instanceof n||t instanceof s)throw Error("duplicate name '"+e.name+"' in "+this);for(var r=t.nestedArray,i=0;i<r.length;++i)e.add(r[i]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return this.nested[e.name]=e,e.onAdd(this),d(this)},h.prototype.remove=function(e){if(!(e instanceof i))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=void 0),e.onRemove(this),d(this)},h.prototype.define=function(e,t){if(c.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;e.length>0;){var i=e.shift();if(r.nested&&r.nested[i]){if(!((r=r.nested[i])instanceof h))throw Error("path conflicts with non-namespace objects")}else r.add(r=new h(i))}return t&&r.addJSON(t),r},h.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof h?e[t++].resolveAll():e[t++].resolve();return this.resolve()},h.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),c.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var i=this.get(e[0]);if(i){if(1===e.length){if(!t||t.indexOf(i.constructor)>-1)return i}else if(i instanceof h&&(i=i.lookup(e.slice(1),t,!0)))return i}else for(var n=0;n<this.nestedArray.length;++n)if(this._nestedArray[n]instanceof h&&(i=this._nestedArray[n].lookup(e,t,!0)))return i;return null===this.parent||r?null:this.parent.lookup(e,t)},h.prototype.lookupType=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such type: "+e);return t},h.prototype.lookupEnum=function(e){var t=this.lookup(e,[o]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},h.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[n,o]);if(!t)throw Error("no such Type or Enum '"+e+"' in "+this);return t},h.prototype.lookupService=function(e){var t=this.lookup(e,[s]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},h._configure=function(e,t,r){n=e,s=t,o=r}},883:(e,t,r)=>{"use strict";e.exports=s,s.className="ReflectionObject";var i,n=r(827);function s(e,t){if(!n.isString(e))throw TypeError("name must be a string");if(t&&!n.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(s.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),s.prototype.toJSON=function(){throw Error()},s.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var t=e.root;t instanceof i&&t._handleAdd(this)},s.prototype.onRemove=function(e){var t=e.root;t instanceof i&&t._handleRemove(this),this.parent=null,this.resolved=!1},s.prototype.resolve=function(){return this.resolved||this.root instanceof i&&(this.resolved=!0),this},s.prototype.getOption=function(e){if(this.options)return this.options[e]},s.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},s.prototype.setParsedOption=function(e,t,r){this.parsedOptions||(this.parsedOptions=[]);var i=this.parsedOptions;if(r){var s=i.find((function(t){return Object.prototype.hasOwnProperty.call(t,e)}));if(s){var o=s[e];n.setProperty(o,r,t)}else(s={})[e]=n.setProperty({},r,t),i.push(s)}else{var a={};a[e]=t,i.push(a)}return this},s.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)this.setOption(r[i],e[r[i]],t);return this},s.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},s._configure=function(e){i=e}},288:(e,t,r)=>{"use strict";e.exports=o;var i=r(883);((o.prototype=Object.create(i.prototype)).constructor=o).className="OneOf";var n=r(149),s=r(827);function o(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),i.call(this,e,r),void 0!==t&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}function a(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}o.fromJSON=function(e,t){return new o(e,t.oneof,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return s.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},o.prototype.add=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),e.partOf=this,a(this),this},o.prototype.remove=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(e);if(t<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(t,1),(t=this.oneof.indexOf(e.name))>-1&&this.oneof.splice(t,1),e.partOf=null,this},o.prototype.onAdd=function(e){i.prototype.onAdd.call(this,e);for(var t=0;t<this.oneof.length;++t){var r=e.get(this.oneof[t]);r&&!r.partOf&&(r.partOf=this,this.fieldsArray.push(r))}a(this)},o.prototype.onRemove=function(e){for(var t,r=0;r<this.fieldsArray.length;++r)(t=this.fieldsArray[r]).parent&&t.parent.remove(t);i.prototype.onRemove.call(this,e)},o.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,r){s.decorateType(t.constructor).add(new o(r,e)),Object.defineProperty(t,r,{get:s.oneOfGetter(e),set:s.oneOfSetter(e)})}}},231:(e,t,r)=>{"use strict";e.exports=T,T.filename=null,T.defaults={keepCase:!1};var i=r(729),n=r(554),s=r(25),o=r(149),a=r(198),u=r(288),c=r(969),l=r(868),h=r(240),d=r(374),p=r(827),f=/^[1-9][0-9]*$/,A=/^-?[1-9][0-9]*$/,M=/^0[x][0-9a-fA-F]+$/,g=/^-?0[x][0-9a-fA-F]+$/,y=/^0[0-7]+$/,v=/^-?0[0-7]+$/,m=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,N=/^[a-zA-Z_][a-zA-Z_0-9]*$/,D=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,w=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function T(e,t,r){t instanceof n||(r=t,t=new n),r||(r=T.defaults);var x,E,j,I,b,z=r.preferTrailingComment||!1,O=i(e,r.alternateCommentMode||!1),S=O.next,L=O.push,C=O.peek,k=O.skip,P=O.cmnt,_=!0,B=!1,U=t,R=r.keepCase?function(e){return e}:p.camelCase;function Q(e,t,r){var i=T.filename;return r||(T.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(i?i+", ":"")+"line "+O.line+")")}function Y(){var e,t=[];do{if('"'!==(e=S())&&"'"!==e)throw Q(e);t.push(S()),k(e),e=C()}while('"'===e||"'"===e);return t.join("")}function F(e){var t=S();switch(t){case"'":case'"':return L(t),Y();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return function(e,t){var r=1;switch("-"===e.charAt(0)&&(r=-1,e=e.substring(1)),e){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(f.test(e))return r*parseInt(e,10);if(M.test(e))return r*parseInt(e,16);if(y.test(e))return r*parseInt(e,8);if(m.test(e))return r*parseFloat(e);throw Q(e,"number",!0)}(t)}catch(r){if(e&&D.test(t))return t;throw Q(t,"value")}}function V(e,t){var r,i;do{!t||'"'!==(r=C())&&"'"!==r?e.push([i=H(S()),k("to",!0)?H(S()):i]):e.push(Y())}while(k(",",!0));k(";")}function H(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!t&&"-"===e.charAt(0))throw Q(e,"id");if(A.test(e))return parseInt(e,10);if(g.test(e))return parseInt(e,16);if(v.test(e))return parseInt(e,8);throw Q(e,"id")}function G(){if(void 0!==x)throw Q("package");if(x=S(),!D.test(x))throw Q(x,"name");U=U.define(x),k(";")}function q(){var e,t=C();switch(t){case"weak":e=j||(j=[]),S();break;case"public":S();default:e=E||(E=[])}t=Y(),k(";"),e.push(t)}function W(){if(k("="),I=Y(),!(B="proto3"===I)&&"proto2"!==I)throw Q(I,"syntax");k(";")}function Z(e,t){switch(t){case"option":return J(e,t),k(";"),!0;case"message":return function(e,t){if(!N.test(t=S()))throw Q(t,"type name");var r=new s(t);X(r,(function(e){if(!Z(r,e))switch(e){case"map":!function(e){k("<");var t=S();if(void 0===d.mapKey[t])throw Q(t,"type");k(",");var r=S();if(!D.test(r))throw Q(r,"type");k(">");var i=S();if(!N.test(i))throw Q(i,"name");k("=");var n=new a(R(i),H(S()),t,r);X(n,(function(e){if("option"!==e)throw Q(e);J(n,e),k(";")}),(function(){te(n)})),e.add(n)}(r);break;case"required":case"repeated":K(r,e);break;case"optional":K(r,B?"proto3_optional":"optional");break;case"oneof":!function(e,t){if(!N.test(t=S()))throw Q(t,"name");var r=new u(R(t));X(r,(function(e){"option"===e?(J(r,e),k(";")):(L(e),K(r,"optional"))})),e.add(r)}(r,e);break;case"extensions":V(r.extensions||(r.extensions=[]));break;case"reserved":V(r.reserved||(r.reserved=[]),!0);break;default:if(!B||!D.test(e))throw Q(e);L(e),K(r,"optional")}})),e.add(r)}(e,t),!0;case"enum":return function(e,t){if(!N.test(t=S()))throw Q(t,"name");var r=new c(t);X(r,(function(e){switch(e){case"option":J(r,e),k(";");break;case"reserved":V(r.reserved||(r.reserved=[]),!0);break;default:!function(e,t){if(!N.test(t))throw Q(t,"name");k("=");var r=H(S(),!0),i={};X(i,(function(e){if("option"!==e)throw Q(e);J(i,e),k(";")}),(function(){te(i)})),e.add(t,r,i.comment)}(r,e)}})),e.add(r)}(e,t),!0;case"service":return function(e,t){if(!N.test(t=S()))throw Q(t,"service name");var r=new l(t);X(r,(function(e){if(!Z(r,e)){if("rpc"!==e)throw Q(e);!function(e,t){var r=P(),i=t;if(!N.test(t=S()))throw Q(t,"name");var n,s,o,a,u=t;if(k("("),k("stream",!0)&&(s=!0),!D.test(t=S()))throw Q(t);if(n=t,k(")"),k("returns"),k("("),k("stream",!0)&&(a=!0),!D.test(t=S()))throw Q(t);o=t,k(")");var c=new h(u,i,n,o,s,a);c.comment=r,X(c,(function(e){if("option"!==e)throw Q(e);J(c,e),k(";")})),e.add(c)}(r,e)}})),e.add(r)}(e,t),!0;case"extend":return function(e,t){if(!D.test(t=S()))throw Q(t,"reference");var r=t;X(null,(function(t){switch(t){case"required":case"repeated":K(e,t,r);break;case"optional":K(e,B?"proto3_optional":"optional",r);break;default:if(!B||!D.test(t))throw Q(t);L(t),K(e,"optional",r)}}))}(e,t),!0}return!1}function X(e,t,r){var i=O.line;if(e&&("string"!=typeof e.comment&&(e.comment=P()),e.filename=T.filename),k("{",!0)){for(var n;"}"!==(n=S());)t(n);k(";",!0)}else r&&r(),k(";"),e&&("string"!=typeof e.comment||z)&&(e.comment=P(i)||e.comment)}function K(e,t,r){var i=S();if("group"!==i){if(!D.test(i))throw Q(i,"type");var n=S();if(!N.test(n))throw Q(n,"name");n=R(n),k("=");var a=new o(n,H(S()),i,t,r);if(X(a,(function(e){if("option"!==e)throw Q(e);J(a,e),k(";")}),(function(){te(a)})),"proto3_optional"===t){var c=new u("_"+n);a.setOption("proto3_optional",!0),c.add(a),e.add(c)}else e.add(a);B||!a.repeated||void 0===d.packed[i]&&void 0!==d.basic[i]||a.setOption("packed",!1,!0)}else!function(e,t){var r=S();if(!N.test(r))throw Q(r,"name");var i=p.lcFirst(r);r===i&&(r=p.ucFirst(r)),k("=");var n=H(S()),a=new s(r);a.group=!0;var u=new o(i,n,r,t);u.filename=T.filename,X(a,(function(e){switch(e){case"option":J(a,e),k(";");break;case"required":case"repeated":K(a,e);break;case"optional":K(a,B?"proto3_optional":"optional");break;default:throw Q(e)}})),e.add(a).add(u)}(e,t)}function J(e,t){var r=k("(",!0);if(!D.test(t=S()))throw Q(t,"name");var i,n=t,s=n;r&&(k(")"),s=n="("+n+")",t=C(),w.test(t)&&(i=t.substr(1),n+=t,S())),k("="),function(e,t,r,i){e.setParsedOption&&e.setParsedOption(t,r,i)}(e,s,$(e,n),i)}function $(e,t){if(k("{",!0)){for(var r={};!k("}",!0);){if(!N.test(b=S()))throw Q(b,"name");var i,n=b;"{"===C()?i=$(e,t+"."+b):(k(":"),"{"===C()?i=$(e,t+"."+b):(i=F(!0),ee(e,t+"."+b,i)));var s=r[n];s&&(i=[].concat(s).concat(i)),r[n]=i,k(",",!0)}return r}var o=F(!0);return ee(e,t,o),o}function ee(e,t,r){e.setOption&&e.setOption(t,r)}function te(e){if(k("[",!0)){do{J(e,"option")}while(k(",",!0));k("]")}return e}for(;null!==(b=S());)switch(b){case"package":if(!_)throw Q(b);G();break;case"import":if(!_)throw Q(b);q();break;case"syntax":if(!_)throw Q(b);W();break;case"option":J(U,b),k(";");break;default:if(Z(U,b)){_=!1;continue}throw Q(b)}return T.filename=null,{package:x,imports:E,weakImports:j,syntax:I,root:t}}},74:(e,t,r)=>{"use strict";e.exports=u;var i,n=r(835),s=n.LongBits,o=n.utf8;function a(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var c,l="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},h=function(){return n.Buffer?function(e){return(u.create=function(e){return n.Buffer.isBuffer(e)?new i(e):l(e)})(e)}:l};function d(){var e=new s(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw a(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw a(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function p(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw a(this,8);return new s(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}u.create=h(),u.prototype._slice=n.Array.prototype.subarray||n.Array.prototype.slice,u.prototype.uint32=(c=4294967295,function(){if(c=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return c;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return c}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|p(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var e=n.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var e=n.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw a(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},u.prototype.string=function(){var e=this.bytes();return o.read(e,0,e.length)},u.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw a(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){i=e,u.create=h(),i._configure();var t=n.Long?"toLong":"toNumber";n.merge(u.prototype,{int64:function(){return d.call(this)[t](!1)},uint64:function(){return d.call(this)[t](!0)},sint64:function(){return d.call(this).zzDecode()[t](!1)},fixed64:function(){return f.call(this)[t](!0)},sfixed64:function(){return f.call(this)[t](!1)}})}},69:(e,t,r)=>{"use strict";e.exports=s;var i=r(74);(s.prototype=Object.create(i.prototype)).constructor=s;var n=r(835);function s(e){i.call(this,e)}s._configure=function(){n.Buffer&&(s.prototype._slice=n.Buffer.prototype.slice)},s.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},s._configure()},554:(e,t,r)=>{"use strict";e.exports=h;var i=r(225);((h.prototype=Object.create(i.prototype)).constructor=h).className="Root";var n,s,o,a=r(149),u=r(969),c=r(288),l=r(827);function h(e){i.call(this,"",e),this.deferred=[],this.files=[]}function d(){}h.fromJSON=function(e,t){return t||(t=new h),e.options&&t.setOptions(e.options),t.addJSON(e.nested)},h.prototype.resolvePath=l.path.resolve,h.prototype.fetch=l.fetch,h.prototype.load=function e(t,r,i){"function"==typeof r&&(i=r,r=void 0);var n=this;if(!i)return l.asPromise(e,n,t,r);var a=i===d;function u(e,t){if(i){var r=i;if(i=null,a)throw e;r(e,t)}}function c(e){var t=e.lastIndexOf("google/protobuf/");if(t>-1){var r=e.substring(t);if(r in o)return r}return null}function h(e,t){try{if(l.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),l.isString(t)){s.filename=e;var i,o=s(t,n,r),h=0;if(o.imports)for(;h<o.imports.length;++h)(i=c(o.imports[h])||n.resolvePath(e,o.imports[h]))&&p(i);if(o.weakImports)for(h=0;h<o.weakImports.length;++h)(i=c(o.weakImports[h])||n.resolvePath(e,o.weakImports[h]))&&p(i,!0)}else n.setOptions(t.options).addJSON(t.nested)}catch(e){u(e)}a||f||u(null,n)}function p(e,t){if(!(n.files.indexOf(e)>-1))if(n.files.push(e),e in o)a?h(e,o[e]):(++f,setTimeout((function(){--f,h(e,o[e])})));else if(a){var r;try{r=l.fs.readFileSync(e).toString("utf8")}catch(e){return void(t||u(e))}h(e,r)}else++f,n.fetch(e,(function(r,s){--f,i&&(r?t?f||u(null,n):u(r):h(e,s))}))}var f=0;l.isString(t)&&(t=[t]);for(var A,M=0;M<t.length;++M)(A=n.resolvePath("",t[M]))&&p(A);if(a)return n;f||u(null,n)},h.prototype.loadSync=function(e,t){if(!l.isNode)throw Error("not supported");return this.load(e,t,d)},h.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map((function(e){return"'extend "+e.extend+"' in "+e.parent.fullName})).join(", "));return i.prototype.resolveAll.call(this)};var p=/^[A-Z]/;function f(e,t){var r=t.parent.lookup(t.extend);if(r){var i=new a(t.fullName,t.id,t.type,t.rule,void 0,t.options);return i.declaringField=t,t.extensionField=i,r.add(i),!0}return!1}h.prototype._handleAdd=function(e){if(e instanceof a)void 0===e.extend||e.extensionField||f(0,e)||this.deferred.push(e);else if(e instanceof u)p.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof c)){if(e instanceof n)for(var t=0;t<this.deferred.length;)f(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var r=0;r<e.nestedArray.length;++r)this._handleAdd(e._nestedArray[r]);p.test(e.name)&&(e.parent[e.name]=e)}},h.prototype._handleRemove=function(e){if(e instanceof a){if(void 0!==e.extend)if(e.extensionField)e.extensionField.parent.remove(e.extensionField),e.extensionField=null;else{var t=this.deferred.indexOf(e);t>-1&&this.deferred.splice(t,1)}}else if(e instanceof u)p.test(e.name)&&delete e.parent[e.name];else if(e instanceof i){for(var r=0;r<e.nestedArray.length;++r)this._handleRemove(e._nestedArray[r]);p.test(e.name)&&delete e.parent[e.name]}},h._configure=function(e,t,r){n=e,s=t,o=r}},7:e=>{"use strict";e.exports={}},876:(e,t,r)=>{"use strict";t.Service=r(380)},380:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(n.prototype=Object.create(i.EventEmitter.prototype)).constructor=n,n.prototype.rpcCall=function e(t,r,n,s,o){if(!s)throw TypeError("request must be specified");var a=this;if(!o)return i.asPromise(e,a,t,r,n,s);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](s).finish(),(function(e,r){if(e)return a.emit("error",e,t),o(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return a.emit("error",e,t),o(e)}return a.emit("data",r,t),o(null,r)}a.end(!0)}))}catch(e){return a.emit("error",e,t),void setTimeout((function(){o(e)}),0)}else setTimeout((function(){o(Error("already ended"))}),0)},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},868:(e,t,r)=>{"use strict";e.exports=a;var i=r(225);((a.prototype=Object.create(i.prototype)).constructor=a).className="Service";var n=r(240),s=r(827),o=r(876);function a(e,t){i.call(this,e,t),this.methods={},this._methodsArray=null}function u(e){return e._methodsArray=null,e}a.fromJSON=function(e,t){var r=new a(e,t.options);if(t.methods)for(var i=Object.keys(t.methods),s=0;s<i.length;++s)r.add(n.fromJSON(i[s],t.methods[i[s]]));return t.nested&&r.addJSON(t.nested),r.comment=t.comment,r},a.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return s.toObject(["options",t&&t.options||void 0,"methods",i.arrayToJSON(this.methodsArray,e)||{},"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},Object.defineProperty(a.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=s.toArray(this.methods))}}),a.prototype.get=function(e){return this.methods[e]||i.prototype.get.call(this,e)},a.prototype.resolveAll=function(){for(var e=this.methodsArray,t=0;t<e.length;++t)e[t].resolve();return i.prototype.resolve.call(this)},a.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);return e instanceof n?(this.methods[e.name]=e,e.parent=this,u(this)):i.prototype.add.call(this,e)},a.prototype.remove=function(e){if(e instanceof n){if(this.methods[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.methods[e.name],e.parent=null,u(this)}return i.prototype.remove.call(this,e)},a.prototype.create=function(e,t,r){for(var i,n=new o.Service(e,t,r),a=0;a<this.methodsArray.length;++a){var u=s.lcFirst((i=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");n[u]=s.codegen(["r","c"],s.isReserved(u)?u+"_":u)("return this.rpcCall(m,q,s,r,c)")({m:i,q:i.resolvedRequestType.ctor,s:i.resolvedResponseType.ctor})}return n}},729:e=>{"use strict";e.exports=h;var t=/[\s{}=;:[\],'"()<>]/g,r=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,i=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,n=/^ *[*/]+ */,s=/^\s*\*?\/*/,o=/\n/g,a=/\s/,u=/\\(.?)/g,c={0:"\0",r:"\r",n:"\n",t:"\t"};function l(e){return e.replace(u,(function(e,t){switch(t){case"\\":case"":return t;default:return c[t]||""}}))}function h(e,u){e=e.toString();var c=0,h=e.length,d=1,p=null,f=null,A=0,M=!1,g=!1,y=[],v=null;function m(e){return Error("illegal "+e+" (line "+d+")")}function N(t){return e.charAt(t)}function D(t,r,i){p=e.charAt(t++),A=d,M=!1,g=i;var a,c=t-(u?2:3);do{if(--c<0||"\n"===(a=e.charAt(c))){M=!0;break}}while(" "===a||"\t"===a);for(var l=e.substring(t,r).split(o),h=0;h<l.length;++h)l[h]=l[h].replace(u?s:n,"").trim();f=l.join("\n").trim()}function w(t){var r=T(t),i=e.substring(t,r);return/^\s*\/{1,2}/.test(i)}function T(e){for(var t=e;t<h&&"\n"!==N(t);)t++;return t}function x(){if(y.length>0)return y.shift();if(v)return function(){var t="'"===v?i:r;t.lastIndex=c-1;var n=t.exec(e);if(!n)throw m("string");return c=t.lastIndex,E(v),v=null,l(n[1])}();var n,s,o,p,f,A=0===c;do{if(c===h)return null;for(n=!1;a.test(o=N(c));)if("\n"===o&&(A=!0,++d),++c===h)return null;if("/"===N(c)){if(++c===h)throw m("comment");if("/"===N(c))if(u){if(p=c,f=!1,w(c)){f=!0;do{if((c=T(c))===h)break;c++}while(w(c))}else c=Math.min(h,T(c)+1);f&&D(p,c,A),d++,n=!0}else{for(f="/"===N(p=c+1);"\n"!==N(++c);)if(c===h)return null;++c,f&&D(p,c-1,A),++d,n=!0}else{if("*"!==(o=N(c)))return"/";p=c+1,f=u||"*"===N(p);do{if("\n"===o&&++d,++c===h)throw m("comment");s=o,o=N(c)}while("*"!==s||"/"!==o);++c,f&&D(p,c-2,A),n=!0}}}while(n);var M=c;if(t.lastIndex=0,!t.test(N(M++)))for(;M<h&&!t.test(N(M));)++M;var g=e.substring(c,c=M);return'"'!==g&&"'"!==g||(v=g),g}function E(e){y.push(e)}function j(){if(!y.length){var e=x();if(null===e)return null;E(e)}return y[0]}return Object.defineProperty({next:x,peek:j,push:E,skip:function(e,t){var r=j();if(r===e)return x(),!0;if(!t)throw m("token '"+r+"', '"+e+"' expected");return!1},cmnt:function(e){var t=null;return void 0===e?A===d-1&&(u||"*"===p||M)&&(t=g?f:null):(A<e&&j(),A!==e||M||!u&&"/"!==p||(t=g?null:f)),t}},"line",{get:function(){return d}})}h.unescape=l},25:(e,t,r)=>{"use strict";e.exports=y;var i=r(225);((y.prototype=Object.create(i.prototype)).constructor=y).className="Type";var n=r(969),s=r(288),o=r(149),a=r(198),u=r(868),c=r(48),l=r(74),h=r(147),d=r(827),p=r(860),f=r(388),A=r(12),M=r(32),g=r(486);function y(e,t){i.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function v(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Object.defineProperties(y.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],i=r.id;if(this._fieldsById[i])throw Error("duplicate id "+i+" in "+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=d.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=d.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=y.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof c||((e.prototype=new c).constructor=e,d.merge(e.prototype,t)),e.$type=e.prototype.$type=this,d.merge(e,c,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var i={};for(r=0;r<this.oneofsArray.length;++r)i[this._oneofsArray[r].resolve().name]={get:d.oneOfGetter(this._oneofsArray[r].oneof),set:d.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,i)}}}),y.generateConstructor=function(e){for(var t,r=d.codegen(["p"],e.name),i=0;i<e.fieldsArray.length;++i)(t=e._fieldsArray[i]).map?r("this%s={}",d.safeProp(t.name)):t.repeated&&r("this%s=[]",d.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},y.fromJSON=function(e,t){var r=new y(e,t.options);r.extensions=t.extensions,r.reserved=t.reserved;for(var c=Object.keys(t.fields),l=0;l<c.length;++l)r.add((void 0!==t.fields[c[l]].keyType?a.fromJSON:o.fromJSON)(c[l],t.fields[c[l]]));if(t.oneofs)for(c=Object.keys(t.oneofs),l=0;l<c.length;++l)r.add(s.fromJSON(c[l],t.oneofs[c[l]]));if(t.nested)for(c=Object.keys(t.nested),l=0;l<c.length;++l){var h=t.nested[c[l]];r.add((void 0!==h.id?o.fromJSON:void 0!==h.fields?y.fromJSON:void 0!==h.values?n.fromJSON:void 0!==h.methods?u.fromJSON:i.fromJSON)(c[l],h))}return t.extensions&&t.extensions.length&&(r.extensions=t.extensions),t.reserved&&t.reserved.length&&(r.reserved=t.reserved),t.group&&(r.group=!0),t.comment&&(r.comment=t.comment),r},y.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return d.toObject(["options",t&&t.options||void 0,"oneofs",i.arrayToJSON(this.oneofsArray,e),"fields",i.arrayToJSON(this.fieldsArray.filter((function(e){return!e.declaringField})),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},y.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();var r=this.oneofsArray;for(t=0;t<r.length;)r[t++].resolve();return i.prototype.resolveAll.call(this)},y.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},y.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof o&&void 0===e.extend){if(this._fieldsById?this._fieldsById[e.id]:this.fieldsById[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),this.fields[e.name]=e,e.message=this,e.onAdd(this),v(this)}return e instanceof s?(this.oneofs||(this.oneofs={}),this.oneofs[e.name]=e,e.onAdd(this),v(this)):i.prototype.add.call(this,e)},y.prototype.remove=function(e){if(e instanceof o&&void 0===e.extend){if(!this.fields||this.fields[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.fields[e.name],e.parent=null,e.onRemove(this),v(this)}if(e instanceof s){if(!this.oneofs||this.oneofs[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),v(this)}return i.prototype.remove.call(this,e)},y.prototype.isReservedId=function(e){return i.isReservedId(this.reserved,e)},y.prototype.isReservedName=function(e){return i.isReservedName(this.reserved,e)},y.prototype.create=function(e){return new this.ctor(e)},y.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=p(this)({Writer:h,types:t,util:d}),this.decode=f(this)({Reader:l,types:t,util:d}),this.verify=A(this)({types:t,util:d}),this.fromObject=M.fromObject(this)({types:t,util:d}),this.toObject=M.toObject(this)({types:t,util:d});var i=g[e];if(i){var n=Object.create(this);n.fromObject=this.fromObject,this.fromObject=i.fromObject.bind(n),n.toObject=this.toObject,this.toObject=i.toObject.bind(n)}return this},y.prototype.encode=function(e,t){return this.setup().encode(e,t)},y.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},y.prototype.decode=function(e,t){return this.setup().decode(e,t)},y.prototype.decodeDelimited=function(e){return e instanceof l||(e=l.create(e)),this.decode(e,e.uint32())},y.prototype.verify=function(e){return this.setup().verify(e)},y.prototype.fromObject=function(e){return this.setup().fromObject(e)},y.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},y.d=function(e){return function(t){d.decorateType(t,e)}}},374:(e,t,r)=>{"use strict";var i=t,n=r(827),s=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function o(e,t){var r=0,i={};for(t|=0;r<e.length;)i[s[r+t]]=e[r++];return i}i.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",n.emptyArray,null]),i.long=o([0,0,0,1,1],7),i.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])},827:(e,t,r)=>{"use strict";var i,n,s=e.exports=r(835),o=r(7);s.codegen=r(679),s.fetch=r(11),s.path=r(49),s.fs=s.inquire("fs"),s.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),i=0;i<t.length;)r[i]=e[t[i++]];return r}return[]},s.toObject=function(e){for(var t={},r=0;r<e.length;){var i=e[r++],n=e[r++];void 0!==n&&(t[i]=n)}return t};var a=/\\/g,u=/"/g;s.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},s.safeProp=function(e){return!/^[$\w_]+$/.test(e)||s.isReserved(e)?'["'+e.replace(a,"\\\\").replace(u,'\\"')+'"]':"."+e},s.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var c=/_([a-z])/g;s.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(c,(function(e,t){return t.toUpperCase()}))},s.compareFieldsById=function(e,t){return e.id-t.id},s.decorateType=function(e,t){if(e.$type)return t&&e.$type.name!==t&&(s.decorateRoot.remove(e.$type),e.$type.name=t,s.decorateRoot.add(e.$type)),e.$type;i||(i=r(25));var n=new i(t||e.name);return s.decorateRoot.add(n),n.ctor=e,Object.defineProperty(e,"$type",{value:n,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:n,enumerable:!1}),n};var l=0;s.decorateEnum=function(e){if(e.$type)return e.$type;n||(n=r(969));var t=new n("Enum"+l++,e);return s.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t},s.setProperty=function(e,t,r){if("object"!=typeof e)throw TypeError("dst must be an object");if(!t)throw TypeError("path must be specified");return function e(t,r,i){var n=r.shift();if(r.length>0)t[n]=e(t[n]||{},r,i);else{var s=t[n];s&&(i=[].concat(s).concat(i)),t[n]=i}return t}(e,t=t.split("."),r)},Object.defineProperty(s,"decorateRoot",{get:function(){return o.decorated||(o.decorated=new(r(554)))}})},600:(e,t,r)=>{"use strict";e.exports=n;var i=r(835);function n(e,t){this.lo=e>>>0,this.hi=t>>>0}var s=n.zero=new n(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var o=n.zeroHash="\0\0\0\0\0\0\0\0";n.fromNumber=function(e){if(0===e)return s;var t=e<0;t&&(e=-e);var r=e>>>0,i=(e-r)/4294967296>>>0;return t&&(i=~i>>>0,r=~r>>>0,++r>4294967295&&(r=0,++i>4294967295&&(i=0))),new n(r,i)},n.from=function(e){if("number"==typeof e)return n.fromNumber(e);if(i.isString(e)){if(!i.Long)return n.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new n(e.low>>>0,e.high>>>0):s},n.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},n.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var a=String.prototype.charCodeAt;n.fromHash=function(e){return e===o?s:new n((a.call(e,0)|a.call(e,1)<<8|a.call(e,2)<<16|a.call(e,3)<<24)>>>0,(a.call(e,4)|a.call(e,5)<<8|a.call(e,6)<<16|a.call(e,7)<<24)>>>0)},n.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},n.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},n.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},n.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},835:function(e,t,r){"use strict";var i=t;function n(e,t,r){for(var i=Object.keys(t),n=0;n<i.length;++n)void 0!==e[i[n]]&&r||(e[i[n]]=t[i[n]]);return e}function s(e){function t(e,r){if(!(this instanceof t))return new t(e,r);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),r&&n(this,r)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=r(383),i.base64=r(417),i.EventEmitter=r(516),i.float=r(787),i.inquire=r(795),i.utf8=r(893),i.pool=r(476),i.LongBits=r(600),i.isNode=Boolean(void 0!==r.g&&r.g&&r.g.process&&r.g.process.versions&&r.g.process.versions.node),i.global=i.isNode&&r.g||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var r=e[t];return!(null==r||!e.hasOwnProperty(t))&&("object"!=typeof r||(Array.isArray(r)?r.length:Object.keys(r).length)>0)},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var r=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},i.merge=n,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=s,i.ProtocolError=s("ProtocolError"),i.oneOfGetter=function(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=1;return function(){for(var e=Object.keys(this),r=e.length-1;r>-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},i.oneOfSetter=function(e){return function(t){for(var r=0;r<e.length;++r)e[r]!==t&&delete this[e[r]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,r){return new e(t,r)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},12:(e,t,r)=>{"use strict";e.exports=function(e){var t=n.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r={};e.oneofsArray.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var u=e._fieldsArray[i].resolve(),c="m"+n.safeProp(u.name);if(u.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",c,u.name),u.map)t("if(!util.isObject(%s))",c)("return%j",s(u,"object"))("var k=Object.keys(%s)",c)("for(var i=0;i<k.length;++i){"),a(t,u,"k[i]"),o(t,u,i,c+"[k[i]]")("}");else if(u.repeated)t("if(!Array.isArray(%s))",c)("return%j",s(u,"array"))("for(var i=0;i<%s.length;++i){",c),o(t,u,i,c+"[i]")("}");else{if(u.partOf){var l=n.safeProp(u.partOf.name);1===r[u.partOf.name]&&t("if(p%s===1)",l)("return%j",u.partOf.name+": multiple values"),r[u.partOf.name]=1,t("p%s=1",l)}o(t,u,i,c)}u.optional&&t("}")}return t("return null")};var i=r(969),n=r(827);function s(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function o(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof i){e("switch(%s){",n)("default:")("return%j",s(t,"enum value"));for(var o=Object.keys(t.resolvedType.values),a=0;a<o.length;++a)e("case %i:",t.resolvedType.values[o[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",s(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",s(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",s(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",s(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",s(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",s(t,"buffer"))}return e}function a(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",s(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",s(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",s(t,"boolean key"))}return e}},486:(e,t,r)=>{"use strict";var i=t,n=r(48);i[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var i="."===e["@type"].charAt(0)?e["@type"].substr(1):e["@type"];return-1===i.indexOf("/")&&(i="/"+i),this.create({type_url:i,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r="",i="";if(t&&t.json&&e.type_url&&e.value){i=e.type_url.substring(e.type_url.lastIndexOf("/")+1),r=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var s=this.lookup(i);s&&(e=s.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof n){var o=e.$type.toObject(e,t);return""===r&&(r="type.googleapis.com/"),i=r+("."===e.$type.fullName[0]?e.$type.fullName.substr(1):e.$type.fullName),o["@type"]=i,o}return this.toObject(e,t)}}},147:(e,t,r)=>{"use strict";e.exports=h;var i,n=r(835),s=n.LongBits,o=n.base64,a=n.utf8;function u(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function c(){}function l(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new u(c,0,0),this.tail=this.head,this.states=null}var d=function(){return n.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}};function p(e,t,r){t[r]=255&e}function f(e,t){this.len=e,this.next=void 0,this.val=t}function A(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function M(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}h.create=d(),h.alloc=function(e){return new n.Array(e)},n.Array!==Array&&(h.alloc=n.pool(h.alloc,n.Array.prototype.subarray)),h.prototype._push=function(e,t,r){return this.tail=this.tail.next=new u(e,t,r),this.len+=t,this},f.prototype=Object.create(u.prototype),f.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(A,10,s.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.uint64=function(e){var t=s.from(e);return this._push(A,t.length(),t)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(e){var t=s.from(e).zzEncode();return this._push(A,t.length(),t)},h.prototype.bool=function(e){return this._push(p,1,e?1:0)},h.prototype.fixed32=function(e){return this._push(M,4,e>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(e){var t=s.from(e);return this._push(M,4,t.lo)._push(M,4,t.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(e){return this._push(n.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(n.float.writeDoubleLE,8,e)};var g=n.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var i=0;i<e.length;++i)t[r+i]=e[i]};h.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(p,1,0);if(n.isString(e)){var r=h.alloc(t=o.length(e));o.decode(e,r,0),e=r}return this.uint32(t)._push(g,t,e)},h.prototype.string=function(e){var t=a.length(e);return t?this.uint32(t)._push(a.write,t,e):this._push(p,1,0)},h.prototype.fork=function(){return this.states=new l(this),this.head=this.tail=new u(c,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(c,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=d(),i._configure()}},55:(e,t,r)=>{"use strict";e.exports=s;var i=r(147);(s.prototype=Object.create(i.prototype)).constructor=s;var n=r(835);function s(){i.call(this)}function o(e,t,r){e.length<40?n.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}s._configure=function(){s.alloc=n._Buffer_allocUnsafe,s.writeBytesBuffer=n.Buffer&&n.Buffer.prototype instanceof Uint8Array&&"set"===n.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var i=0;i<e.length;)t[r++]=e[i++]}},s.prototype.bytes=function(e){n.isString(e)&&(e=n._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(s.writeBytesBuffer,t,e),this},s.prototype.string=function(e){var t=n.Buffer.byteLength(e);return this.uint32(t),t&&this._push(o,t,e),this},s._configure()}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Camera:()=>_e,Easing:()=>Qr,Five:()=>ss,HashCubeTexture:()=>rt,InternalWebGLRenderer:()=>Ue,Model:()=>Dr,NetworkSubscribe:()=>Ot,PBMContainer:()=>Je,PBMGroup:()=>$e,PBMMaterial:()=>ut,PBMMesh:()=>Ke,PROXY_CONTROLLER_EVENT_NAMES:()=>_n,Scene:()=>Be,Subscribe:()=>Nt,getViewportScale:()=>Un,parseWork:()=>oi,stringifyWork:()=>ai});var e=__webpack_require__(438),t=Number(e.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var r,i={},n={},s=s||function(e,t){var r={},i=r.lib={},n=i.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.hasOwnProperty("init")||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=i.WordArray=n.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,r=e.words,i=this.sigBytes,n=e.sigBytes;if(this.clamp(),i%4)for(var s=0;s<n;s++){var o=r[s>>>2]>>>24-s%4*8&255;t[i+s>>>2]|=o<<24-(i+s)%4*8}else for(s=0;s<n;s+=4)t[i+s>>>2]=r[s>>>2];return this.sigBytes+=n,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=n.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r=[],i=0;i<t;i+=4)r.push(4294967296*e.random()|0);return new s.init(r,t)}}),o=r.enc={},a=o.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var s=t[n>>>2]>>>24-n%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i+=2)r[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new s.init(r,t/2)}},u=o.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var s=t[n>>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(s))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new s.init(r,t)}},c=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,a=n/(4*o),u=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,c=e.min(4*u,n);if(u){for(var l=0;l<u;l+=o)this._doProcessBlock(i,l);var h=i.splice(0,u);r.sigBytes-=c}return new s.init(h,c)},clone:function(){var e=n.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),h=(i.Hasher=l.extend({cfg:n.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new h.HMAC.init(e,r).finalize(t)}}}),r.algo={});return r}(Math);function o(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function a(){return new o(null)}!function(e){for(var t=s,r=(n=t.lib).WordArray,i=n.Hasher,n=t.algo,o=[],a=[],u=function(e){return 4294967296*(e-(0|e))|0},c=2,l=0;64>l;){var h;e:{h=c;for(var d=e.sqrt(h),p=2;p<=d;p++)if(!(h%p)){h=!1;break e}h=!0}h&&(8>l&&(o[l]=u(e.pow(c,.5))),a[l]=u(e.pow(c,1/3)),l++),c++}var f=[];n=n.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,i=r[0],n=r[1],s=r[2],o=r[3],u=r[4],c=r[5],l=r[6],h=r[7],d=0;64>d;d++){if(16>d)f[d]=0|e[t+d];else{var p=f[d-15],A=f[d-2];f[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+f[d-7]+((A<<15|A>>>17)^(A<<13|A>>>19)^A>>>10)+f[d-16]}p=h+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&l)+a[d]+f[d],A=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&n^i&s^n&s),h=l,l=c,c=u,u=o+p|0,o=s,s=n,n=i,i=p+A|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+s|0,r[3]=r[3]+o|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+l|0,r[7]=r[7]+h|0},_doFinalize:function(){var t=this._data,r=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=e.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}}),t.SHA256=i._createHelper(n),t.HmacSHA256=i._createHmacHelper(n)}(Math),s.lib.Cipher||function(e){var t=(f=s).lib,r=t.Base,i=t.WordArray,n=t.BufferedBlockAlgorithm,o=f.enc.Base64,a=f.algo.EvpKDF,u=t.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,r,i){return("string"==typeof r?A:p).encrypt(e,t,r,i)},decrypt:function(t,r,i){return("string"==typeof r?A:p).decrypt(e,t,r,i)}}}});t.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var c=f.mode={},l=function(e,t,r){var i=this._iv;i?this._iv=void 0:i=this._prevBlock;for(var n=0;n<r;n++)e[t+n]^=i[n]},h=(t.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();h.Encryptor=h.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;l.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),h.Decryptor=h.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=e.slice(t,t+i);r.decryptBlock(e,t),l.call(this,e,t,i),this._prevBlock=n}}),c=c.CBC=h,h=(f.pad={}).Pkcs7={pad:function(e,t){for(var r,n=(r=(r=4*t)-e.sigBytes%r)<<24|r<<16|r<<8|r,s=[],o=0;o<r;o+=4)s.push(n);r=i.create(s,r),e.concat(r)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},t.BlockCipher=u.extend({cfg:u.cfg.extend({mode:c,padding:h}),reset:function(){u.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=t.createEncryptor;else r=t.createDecryptor,this._minBufferSize=1;this._mode=r.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=t.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),p=(c=(f.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var r=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:r})}},t.SerializableCipher=r.extend({cfg:r.extend({format:c}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i);return t=n.finalize(t),n=n.cfg,d.create({ciphertext:t,key:r,iv:n.iv,algorithm:e,mode:n.mode,padding:n.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(r,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),f=(f.kdf={}).OpenSSL={execute:function(e,t,r,n){return n||(n=i.random(8)),e=a.create({keySize:t+r}).compute(e,n),r=i.create(e.words.slice(t),4*r),e.sigBytes=4*t,d.create({key:e,iv:r,salt:n})}},A=t.PasswordBasedCipher=p.extend({cfg:p.cfg.extend({kdf:f}),encrypt:function(e,t,r,i){return r=(i=this.cfg.extend(i)).kdf.execute(r,e.keySize,e.ivSize),i.iv=r.iv,(e=p.encrypt.call(this,e,t,r.key,i)).mixIn(r),e},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),r=i.kdf.execute(r,e.keySize,e.ivSize,t.salt),i.iv=r.iv,p.decrypt.call(this,e,t,r.key,i)}})}(),function(){for(var e=s,t=e.lib.BlockCipher,r=e.algo,i=[],n=[],o=[],a=[],u=[],c=[],l=[],h=[],d=[],p=[],f=[],A=0;256>A;A++)f[A]=128>A?A<<1:A<<1^283;var M=0,g=0;for(A=0;256>A;A++){var y=(y=g^g<<1^g<<2^g<<3^g<<4)>>>8^255&y^99;i[M]=y,n[y]=M;var v=f[M],m=f[v],N=f[m],D=257*f[y]^16843008*y;o[M]=D<<24|D>>>8,a[M]=D<<16|D>>>16,u[M]=D<<8|D>>>24,c[M]=D,D=16843009*N^65537*m^257*v^16843008*M,l[y]=D<<24|D>>>8,h[y]=D<<16|D>>>16,d[y]=D<<8|D>>>24,p[y]=D,M?(M=v^f[f[f[N^v]]],g^=f[f[g]]):M=g=1}var w=[0,1,2,4,8,16,32,64,128,27,54];r=r.AES=t.extend({_doReset:function(){for(var e=(r=this._key).words,t=r.sigBytes/4,r=4*((this._nRounds=t+6)+1),n=this._keySchedule=[],s=0;s<r;s++)if(s<t)n[s]=e[s];else{var o=n[s-1];s%t?6<t&&4==s%t&&(o=i[o>>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o]):(o=i[(o=o<<8|o>>>24)>>>24]<<24|i[o>>>16&255]<<16|i[o>>>8&255]<<8|i[255&o],o^=w[s/t|0]<<24),n[s]=n[s-t]^o}for(e=this._invKeySchedule=[],t=0;t<r;t++)s=r-t,o=t%4?n[s]:n[s-4],e[t]=4>t||4>=s?o:l[i[o>>>24]]^h[i[o>>>16&255]]^d[i[o>>>8&255]]^p[i[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,u,c,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,l,h,d,p,n),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,i,n,s,o,a){for(var u=this._nRounds,c=e[t]^r[0],l=e[t+1]^r[1],h=e[t+2]^r[2],d=e[t+3]^r[3],p=4,f=1;f<u;f++){var A=i[c>>>24]^n[l>>>16&255]^s[h>>>8&255]^o[255&d]^r[p++],M=i[l>>>24]^n[h>>>16&255]^s[d>>>8&255]^o[255&c]^r[p++],g=i[h>>>24]^n[d>>>16&255]^s[c>>>8&255]^o[255&l]^r[p++];d=i[d>>>24]^n[c>>>16&255]^s[l>>>8&255]^o[255&h]^r[p++],c=A,l=M,h=g}A=(a[c>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&d])^r[p++],M=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[d>>>8&255]<<8|a[255&c])^r[p++],g=(a[h>>>24]<<24|a[d>>>16&255]<<16|a[c>>>8&255]<<8|a[255&l])^r[p++],d=(a[d>>>24]<<24|a[c>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^r[p++],e[t]=A,e[t+1]=M,e[t+2]=g,e[t+3]=d},keySize:8}),e.AES=t._createHelper(r)}(),n.lang={extend:function(e,t,r){if(!t||!e)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t),r){var n;for(n in r)e.prototype[n]=r[n];var s=function(){},o=["toString","valueOf"];try{/MSIE/.test("undefined"!=typeof navigator?navigator.userAgent:"node")&&(s=function(e,t){for(n=0;n<o.length;n+=1){var r=o[n],i=t[r];"function"==typeof i&&i!=Object.prototype[r]&&(e[r]=i)}})}catch(e){}s(e.prototype,r)}}},"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(o.prototype.am=function(e,t,r,i,n,s){for(var o=32767&t,a=t>>15;--s>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*o;n=((u=o*u+((32767&l)<<15)+r[i]+(1073741823&n))>>>30)+(l>>>15)+a*c+(n>>>30),r[i++]=1073741823&u}return n},r=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(o.prototype.am=function(e,t,r,i,n,s){for(;--s>=0;){var o=t*this[e++]+r[i]+n;n=Math.floor(o/67108864),r[i++]=67108863&o}return n},r=26):(o.prototype.am=function(e,t,r,i,n,s){for(var o=16383&t,a=t>>14;--s>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*o;n=((u=o*u+((16383&l)<<14)+r[i]+n)>>28)+(l>>14)+a*c,r[i++]=268435455&u}return n},r=28),o.prototype.DB=r,o.prototype.DM=(1<<r)-1,o.prototype.DV=1<<r,o.prototype.FV=Math.pow(2,52),o.prototype.F1=52-r,o.prototype.F2=2*r-52;var u,c,l=new Array;for(u="0".charCodeAt(0),c=0;c<=9;++c)l[u++]=c;for(u="a".charCodeAt(0),c=10;c<36;++c)l[u++]=c;for(u="A".charCodeAt(0),c=10;c<36;++c)l[u++]=c;function h(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function d(e,t){var r=l[e.charCodeAt(t)];return null==r?-1:r}function p(e){var t=a();return t.fromInt(e),t}function f(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function A(e){this.m=e}function M(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function g(e,t){return e&t}function y(e,t){return e|t}function v(e,t){return e^t}function m(e,t){return e&~t}function N(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function D(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function w(){}function T(e){return e}function x(e){this.r2=a(),this.q3=a(),o.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}A.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},A.prototype.revert=function(e){return e},A.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},A.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},A.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},M.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(o.ZERO)>0&&this.m.subTo(t,t),t},M.prototype.revert=function(e){var t=a();return e.copyTo(t),this.reduce(t),t},M.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e[t],i=r*this.mpl+((r*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},M.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},M.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},o.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},o.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},o.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,n=!1,s=0;--i>=0;){var a=8==r?255&e[i]:d(e,i);a<0?"-"==e.charAt(i)&&(n=!0):(n=!1,0==s?this[this.t++]=a:s+r>this.DB?(this[this.t-1]|=(a&(1<<this.DB-s)-1)<<s,this[this.t++]=a>>this.DB-s):this[this.t-1]|=a<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),n&&o.ZERO.subTo(this,this)},o.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},o.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},o.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t[r-e]=this[r];t.t=Math.max(this.t-e,0),t.s=this.s},o.prototype.lShiftTo=function(e,t){var r,i=e%this.DB,n=this.DB-i,s=(1<<n)-1,o=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(r=this.t-1;r>=0;--r)t[r+o+1]=this[r]>>n|a,a=(this[r]&s)<<i;for(r=o-1;r>=0;--r)t[r]=0;t[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()},o.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var i=e%this.DB,n=this.DB-i,s=(1<<i)-1;t[0]=this[r]>>i;for(var o=r+1;o<this.t;++o)t[o-r-1]|=(this[o]&s)<<n,t[o-r]=this[o]>>i;i>0&&(t[this.t-r-1]|=(this.s&s)<<n),t.t=this.t-r,t.clamp()}},o.prototype.subTo=function(e,t){for(var r=0,i=0,n=Math.min(e.t,this.t);r<n;)i+=this[r]-e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i-=e[r],t[r++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[r++]=this.DV+i:i>0&&(t[r++]=i),t.t=r,t.clamp()},o.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),n=r.t;for(t.t=n+i.t;--n>=0;)t[n]=0;for(n=0;n<i.t;++n)t[n+r.t]=r.am(0,i[n],t,n,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&o.ZERO.subTo(t,t)},o.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e[r]=0;for(r=0;r<t.t-1;++r){var i=t.am(r,t[r],e,2*r,0,1);(e[r+t.t]+=t.am(r+1,2*t[r],e,2*r+1,i,t.t-r-1))>=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},o.prototype.divRemTo=function(e,t,r){var i=e.abs();if(!(i.t<=0)){var n=this.abs();if(n.t<i.t)return null!=t&&t.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=a());var s=a(),u=this.s,c=e.s,l=this.DB-f(i[i.t-1]);l>0?(i.lShiftTo(l,s),n.lShiftTo(l,r)):(i.copyTo(s),n.copyTo(r));var h=s.t,d=s[h-1];if(0!=d){var p=d*(1<<this.F1)+(h>1?s[h-2]>>this.F2:0),A=this.FV/p,M=(1<<this.F1)/p,g=1<<this.F2,y=r.t,v=y-h,m=null==t?a():t;for(s.dlShiftTo(v,m),r.compareTo(m)>=0&&(r[r.t++]=1,r.subTo(m,r)),o.ONE.dlShiftTo(h,m),m.subTo(s,s);s.t<h;)s[s.t++]=0;for(;--v>=0;){var N=r[--y]==d?this.DM:Math.floor(r[y]*A+(r[y-1]+g)*M);if((r[y]+=s.am(0,N,r,v,0,h))<N)for(s.dlShiftTo(v,m),r.subTo(m,r);r[y]<--N;)r.subTo(m,r)}null!=t&&(r.drShiftTo(h,t),u!=c&&o.ZERO.subTo(t,t)),r.t=h,r.clamp(),l>0&&r.rShiftTo(l,r),u<0&&o.ZERO.subTo(r,r)}}},o.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},o.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},o.prototype.exp=function(e,t){if(e>4294967295||e<1)return o.ONE;var r=a(),i=a(),n=t.convert(this),s=f(e)-1;for(n.copyTo(r);--s>=0;)if(t.sqrTo(r,i),(e&1<<s)>0)t.mulTo(i,n,r);else{var u=r;r=i,i=u}return t.revert(r)},o.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,i=(1<<t)-1,n=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(r=this[o]>>a)>0&&(n=!0,s=h(r));o>=0;)a<t?(r=(this[o]&(1<<a)-1)<<t-a,r|=this[--o]>>(a+=this.DB-t)):(r=this[o]>>(a-=t)&i,a<=0&&(a+=this.DB,--o)),r>0&&(n=!0),n&&(s+=h(r));return n?s:"0"},o.prototype.negate=function(){var e=a();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},o.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+f(this[this.t-1]^this.s&this.DM)},o.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(o.ZERO)>0&&e.subTo(t,t),t},o.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new A(t):new M(t),this.exp(e,r)},o.ZERO=p(0),o.ONE=p(1),w.prototype.convert=T,w.prototype.revert=T,w.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},w.prototype.sqrTo=function(e,t){e.squareTo(t)},x.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=a();return e.copyTo(t),this.reduce(t),t},x.prototype.revert=function(e){return e},x.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},x.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},x.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var E=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],j=(1<<26)/E[E.length-1];o.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},o.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),i=p(r),n=a(),s=a(),o="";for(this.divRemTo(i,n,s);n.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,n.divRemTo(i,n,s);return s.intValue().toString(e)+o},o.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),n=!1,s=0,a=0,u=0;u<e.length;++u){var c=d(e,u);c<0?"-"==e.charAt(u)&&0==this.signum()&&(n=!0):(a=t*a+c,++s>=r&&(this.dMultiply(i),this.dAddOffset(a,0),s=0,a=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(a,0)),n&&o.ZERO.subTo(this,this)},o.prototype.fromNumber=function(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(o.ONE.shiftLeft(e-1),y,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(o.ONE.shiftLeft(e-1),this);else{var i=new Array,n=7&e;i.length=1+(e>>3),t.nextBytes(i),n>0?i[0]&=(1<<n)-1:i[0]=0,this.fromString(i,256)}},o.prototype.bitwiseTo=function(e,t,r){var i,n,s=Math.min(e.t,this.t);for(i=0;i<s;++i)r[i]=t(this[i],e[i]);if(e.t<this.t){for(n=e.s&this.DM,i=s;i<this.t;++i)r[i]=t(this[i],n);r.t=this.t}else{for(n=this.s&this.DM,i=s;i<e.t;++i)r[i]=t(n,e[i]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()},o.prototype.changeBit=function(e,t){var r=o.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r},o.prototype.addTo=function(e,t){for(var r=0,i=0,n=Math.min(e.t,this.t);r<n;)i+=this[r]+e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i+=e[r],t[r++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[r++]=i:i<-1&&(t[r++]=this.DV+i),t.t=r,t.clamp()},o.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},o.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},o.prototype.multiplyLowerTo=function(e,t,r){var i,n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r[--n]=0;for(i=r.t-this.t;n<i;++n)r[n+this.t]=this.am(0,e[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e[n],r,n,0,t-n);r.clamp()},o.prototype.multiplyUpperTo=function(e,t,r){--t;var i=r.t=this.t+e.t-t;for(r.s=0;--i>=0;)r[i]=0;for(i=Math.max(t-this.t,0);i<e.t;++i)r[this.t+i-t]=this.am(t-i,e[i],r,0,0,this.t+i-t);r.clamp(),r.drShiftTo(1,r)},o.prototype.modInt=function(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(0==t)r=this[0]%e;else for(var i=this.t-1;i>=0;--i)r=(t*r+this[i])%e;return r},o.prototype.millerRabin=function(e){var t=this.subtract(o.ONE),r=t.getLowestSetBit();if(r<=0)return!1;var i=t.shiftRight(r);(e=e+1>>1)>E.length&&(e=E.length);for(var n=a(),s=0;s<e;++s){n.fromInt(E[Math.floor(Math.random()*E.length)]);var u=n.modPow(i,this);if(0!=u.compareTo(o.ONE)&&0!=u.compareTo(t)){for(var c=1;c++<r&&0!=u.compareTo(t);)if(0==(u=u.modPowInt(2,this)).compareTo(o.ONE))return!1;if(0!=u.compareTo(t))return!1}}return!0},o.prototype.clone=function(){var e=a();return this.copyTo(e),e},o.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},o.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},o.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},o.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},o.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,i=this.DB-e*this.DB%8,n=0;if(e-- >0)for(i<this.DB&&(r=this[e]>>i)!=(this.s&this.DM)>>i&&(t[n++]=r|this.s<<this.DB-i);e>=0;)i<8?(r=(this[e]&(1<<i)-1)<<8-i,r|=this[--e]>>(i+=this.DB-8)):(r=this[e]>>(i-=8)&255,i<=0&&(i+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==n&&(128&this.s)!=(128&r)&&++n,(n>0||r!=this.s)&&(t[n++]=r);return t},o.prototype.equals=function(e){return 0==this.compareTo(e)},o.prototype.min=function(e){return this.compareTo(e)<0?this:e},o.prototype.max=function(e){return this.compareTo(e)>0?this:e},o.prototype.and=function(e){var t=a();return this.bitwiseTo(e,g,t),t},o.prototype.or=function(e){var t=a();return this.bitwiseTo(e,y,t),t},o.prototype.xor=function(e){var t=a();return this.bitwiseTo(e,v,t),t},o.prototype.andNot=function(e){var t=a();return this.bitwiseTo(e,m,t),t},o.prototype.not=function(){for(var e=a(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e},o.prototype.shiftLeft=function(e){var t=a();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t},o.prototype.shiftRight=function(e){var t=a();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t},o.prototype.getLowestSetBit=function(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+N(this[e]);return this.s<0?this.t*this.DB:-1},o.prototype.bitCount=function(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=D(this[r]^t);return e},o.prototype.testBit=function(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)},o.prototype.setBit=function(e){return this.changeBit(e,y)},o.prototype.clearBit=function(e){return this.changeBit(e,m)},o.prototype.flipBit=function(e){return this.changeBit(e,v)},o.prototype.add=function(e){var t=a();return this.addTo(e,t),t},o.prototype.subtract=function(e){var t=a();return this.subTo(e,t),t},o.prototype.multiply=function(e){var t=a();return this.multiplyTo(e,t),t},o.prototype.divide=function(e){var t=a();return this.divRemTo(e,t,null),t},o.prototype.remainder=function(e){var t=a();return this.divRemTo(e,null,t),t},o.prototype.divideAndRemainder=function(e){var t=a(),r=a();return this.divRemTo(e,t,r),new Array(t,r)},o.prototype.modPow=function(e,t){var r,i,n=e.bitLength(),s=p(1);if(n<=0)return s;r=n<18?1:n<48?3:n<144?4:n<768?5:6,i=n<8?new A(t):t.isEven()?new x(t):new M(t);var o=new Array,u=3,c=r-1,l=(1<<r)-1;if(o[1]=i.convert(this),r>1){var h=a();for(i.sqrTo(o[1],h);u<=l;)o[u]=a(),i.mulTo(h,o[u-2],o[u]),u+=2}var d,g,y=e.t-1,v=!0,m=a();for(n=f(e[y])-1;y>=0;){for(n>=c?d=e[y]>>n-c&l:(d=(e[y]&(1<<n+1)-1)<<c-n,y>0&&(d|=e[y-1]>>this.DB+n-c)),u=r;0==(1&d);)d>>=1,--u;if((n-=u)<0&&(n+=this.DB,--y),v)o[d].copyTo(s),v=!1;else{for(;u>1;)i.sqrTo(s,m),i.sqrTo(m,s),u-=2;u>0?i.sqrTo(s,m):(g=s,s=m,m=g),i.mulTo(m,o[d],s)}for(;y>=0&&0==(e[y]&1<<n);)i.sqrTo(s,m),g=s,s=m,m=g,--n<0&&(n=this.DB-1,--y)}return i.revert(s)},o.prototype.modInverse=function(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return o.ZERO;for(var r=e.clone(),i=this.clone(),n=p(1),s=p(0),a=p(0),u=p(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),t?(n.isEven()&&s.isEven()||(n.addTo(this,n),s.subTo(e,s)),n.rShiftTo(1,n)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;i.isEven();)i.rShiftTo(1,i),t?(a.isEven()&&u.isEven()||(a.addTo(this,a),u.subTo(e,u)),a.rShiftTo(1,a)):u.isEven()||u.subTo(e,u),u.rShiftTo(1,u);r.compareTo(i)>=0?(r.subTo(i,r),t&&n.subTo(a,n),s.subTo(u,s)):(i.subTo(r,i),t&&a.subTo(n,a),u.subTo(s,u))}return 0!=i.compareTo(o.ONE)?o.ZERO:u.compareTo(e)>=0?u.subtract(e):u.signum()<0?(u.addTo(e,u),u.signum()<0?u.add(e):u):u},o.prototype.pow=function(e){return this.exp(e,new w)},o.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var i=t;t=r,r=i}var n=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(n<s&&(s=n),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(n=t.getLowestSetBit())>0&&t.rShiftTo(n,t),(n=r.getLowestSetBit())>0&&r.rShiftTo(n,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r},o.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r[0]<=E[E.length-1]){for(t=0;t<E.length;++t)if(r[0]==E[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<E.length;){for(var i=E[t],n=t+1;n<E.length&&i<j;)i*=E[n++];for(i=r.modInt(i);t<n;)if(i%E[t++]==0)return!1}return r.millerRabin(e)},o.prototype.square=function(){var e=a();return this.squareTo(e),e};var I,b,z,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(e){var t,r,i="";for(t=0;t+3<=e.length;t+=3)r=parseInt(e.substring(t,t+3),16),i+=O.charAt(r>>6)+O.charAt(63&r);for(t+1==e.length?(r=parseInt(e.substring(t,t+1),16),i+=O.charAt(r<<2)):t+2==e.length&&(r=parseInt(e.substring(t,t+2),16),i+=O.charAt(r>>2)+O.charAt((3&r)<<4));(3&i.length)>0;)i+="=";return i}function L(e){var t,r,i,n="",s=0;for(t=0;t<e.length&&"="!=e.charAt(t);++t)(i=O.indexOf(e.charAt(t)))<0||(0==s?(n+=h(i>>2),r=3&i,s=1):1==s?(n+=h(r<<2|i>>4),r=15&i,s=2):2==s?(n+=h(r),n+=h(i>>2),r=3&i,s=3):(n+=h(r<<2|i>>4),n+=h(15&i),s=0));return 1==s&&(n+=h(r<<2)),n}function C(){this.i=0,this.j=0,this.S=new Array}function k(){var e;e=(new Date).getTime(),b[z++]^=255&e,b[z++]^=e>>8&255,b[z++]^=e>>16&255,b[z++]^=e>>24&255,z>=256&&(z-=256)}if(C.prototype.init=function(e){var t,r,i;for(t=0;t<256;++t)this.S[t]=t;for(r=0,t=0;t<256;++t)r=r+this.S[t]+e[t%e.length]&255,i=this.S[t],this.S[t]=this.S[r],this.S[r]=i;this.i=0,this.j=0},C.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]},null==b){var P;if(b=new Array,z=0,"undefined"!=typeof window&&(void 0!==window.crypto||void 0!==window.msCrypto)){var _=window.crypto||window.msCrypto;if(_.getRandomValues){var B=new Uint8Array(32);for(_.getRandomValues(B),P=0;P<32;++P)b[z++]=B[P]}else if("undefined"!=typeof navigator&&"Netscape"==navigator.appName&&navigator.appVersion<"5"){var U=window.crypto.random(32);for(P=0;P<U.length;++P)b[z++]=255&U.charCodeAt(P)}}for(;z<256;)P=Math.floor(65536*Math.random()),b[z++]=P>>>8,b[z++]=255&P;z=0,k()}function R(){if(null==I){for(k(),(I=new C).init(b),z=0;z<b.length;++z)b[z]=0;z=0}return I.next()}function Q(){}function Y(e,t){return new o(e,t)}function F(e,t,r){for(var i="",n=0;i.length<t;)i+=r(String.fromCharCode.apply(String,e.concat([(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n]))),n+=1;return i}function V(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function H(e,t,r){for(var i="",n=0;i.length<t;)i+=r(e+String.fromCharCode.apply(String,[(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n])),n+=1;return i}function G(e){for(var t="",r=0;r<e.length;r++){var i=e[r].toString(16);1==i.length&&(i="0"+i),t+=i}return t}function q(e){return G(function(e){for(var t=new Array,r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(e))}function W(e){return(e=(e=e.replace(/\=/g,"")).replace(/\+/g,"-")).replace(/\//g,"_")}function Z(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),(e=e.replace(/-/g,"+")).replace(/_/g,"/")}function X(e){return e.length%2==1&&(e="0"+e),W(S(e))}function K(e){return L(Z(e))}function J(e){return ne(ae(e))}function $(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function ee(e){for(var t="",r=0;r<e.length-1;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t}function te(e){for(var t="",r=0;r<e.length;r++)t+=("0"+e.charCodeAt(r).toString(16)).slice(-2);return t}function re(e,t){return"-----BEGIN "+t+"-----\r\n"+function(e){return function(e){return S(e)}(e).replace(/(.{64})/g,"$1\r\n").replace(/\r\n$/,"")}(e)+"\r\n-----END "+t+"-----\r\n"}function ie(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return L(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function ne(e){return e.replace(/%/g,"")}function se(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),r=0;r<8;r++)t[r]=t[r].replace(/^0+/,""),""==t[r]&&(t[r]="0");var i=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===i)return e.slice(1,-1);var n="";for(r=0;r<i.length;r++)i[r].length>n.length&&(n=i[r]);return(e=e.replace(n,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function oe(e){return e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),r=parseInt(e.substr(2),16);if(0==t&r<128)return String.fromCharCode(r);if(t<8){var i=128|63&r;return $((192|(7&t)<<3|(192&r)>>6).toString(16)+i.toString(16))}i=128|(15&t)<<2|(192&r)>>6;var n=128|63&r;return $((224|(240&t)>>4).toString(16)+i.toString(16)+n.toString(16))})).join("")}function ae(e){for(var t=encodeURIComponent(e),r="",i=0;i<t.length;i++)"%"==t[i]?(r+=t.substr(i,3),i+=2):r=r+"%"+q(t[i]);return r}function ue(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function ce(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}Q.prototype.nextBytes=function(e){var t;for(t=0;t<e.length;++t)e[t]=R()},V.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},V.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=Y(e,16),this.e=parseInt(t,16)}},V.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var r=new Array,i=e.length-1;i>=0&&t>0;){var n=e.charCodeAt(i--);n<128?r[--t]=n:n>127&&n<2048?(r[--t]=63&n|128,r[--t]=n>>6|192):(r[--t]=63&n|128,r[--t]=n>>6&63|128,r[--t]=n>>12|224)}r[--t]=0;for(var s=new Q,a=new Array;t>2;){for(a[0]=0;0==a[0];)s.nextBytes(a);r[--t]=a[0]}return r[--t]=2,r[--t]=0,new o(r)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var r=this.doPublic(t);if(null==r)return null;var i=r.toString(16);return 0==(1&i.length)?i:"0"+i},V.prototype.encryptOAEP=function(e,t,r){var n=function(e,t,r,n){var s=i.crypto.MessageDigest,a=i.crypto.Util,u=null;if(r||(r="sha1"),"string"==typeof r&&(u=s.getCanonicalAlgName(r),n=s.getHashLength(u),r=function(e){return ee(a.hashHex(te(e),u))}),e.length+2*n+2>t)throw"Message too long for RSA";var c,l="";for(c=0;c<t-e.length-2*n-2;c+=1)l+="\0";var h=r("")+l+""+e,d=new Array(n);(new Q).nextBytes(d);var p=F(d,h.length,r),f=[];for(c=0;c<h.length;c+=1)f[c]=h.charCodeAt(c)^p.charCodeAt(c);var A=F(f,d.length,r),M=[0];for(c=0;c<d.length;c+=1)M[c+1]=d[c]^A.charCodeAt(c);return new o(M.concat(f))}(e,this.n.bitLength()+7>>3,t,r);if(null==n)return null;var s=this.doPublic(n);if(null==s)return null;var a=s.toString(16);return 0==(1&a.length)?a:"0"+a},V.prototype.type="RSA",V.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),r=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(r)<0;)t=t.add(this.p);return t.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},V.prototype.setPrivate=function(e,t,r){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=r;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=Y(e,16),this.e=parseInt(t,16),this.d=Y(r,16)}},V.prototype.setPrivateEx=function(e,t,r,i,n,s,o,a){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=Y(e,16),this.e=parseInt(t,16),this.d=Y(r,16),this.p=Y(i,16),this.q=Y(n,16),this.dmp1=Y(s,16),this.dmq1=Y(o,16),this.coeff=Y(a,16)},V.prototype.generate=function(e,t){var r=new Q,i=e>>1;this.e=parseInt(t,16);for(var n=new o(t,16);;){for(;this.p=new o(e-i,1,r),0!=this.p.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.p.isProbablePrime(10););for(;this.q=new o(i,1,r),0!=this.q.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var a=this.p.subtract(o.ONE),u=this.q.subtract(o.ONE),c=a.multiply(u);if(0==c.gcd(n).compareTo(o.ONE)&&(this.n=this.p.multiply(this.q),this.n.bitLength()==e)){this.d=n.modInverse(c),this.dmp1=this.d.mod(a),this.dmq1=this.d.mod(u),this.coeff=this.q.modInverse(this.p);break}}this.isPrivate=!0},V.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=Y(e,16),r=this.doPrivate(t);return null==r?null:function(e,t){for(var r=e.toByteArray(),i=0;i<r.length&&0==r[i];)++i;if(r.length-i!=t-1||2!=r[i])return null;for(++i;0!=r[i];)if(++i>=r.length)return null;for(var n="";++i<r.length;){var s=255&r[i];s<128?n+=String.fromCharCode(s):s>191&&s<224?(n+=String.fromCharCode((31&s)<<6|63&r[i+1]),++i):(n+=String.fromCharCode((15&s)<<12|(63&r[i+1])<<6|63&r[i+2]),i+=2)}return n}(r,this.n.bitLength()+7>>3)},V.prototype.decryptOAEP=function(e,t,r){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=Y(e,16),s=this.doPrivate(n);return null==s?null:function(e,t,r,n){var s=i.crypto.MessageDigest,o=i.crypto.Util,a=null;for(r||(r="sha1"),"string"==typeof r&&(a=s.getCanonicalAlgName(r),n=s.getHashLength(a),r=function(e){return ee(o.hashHex(te(e),a))}),e=e.toByteArray(),u=0;u<e.length;u+=1)e[u]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*n+2)throw"Cipher too short";var u,c=e.substr(1,n),l=e.substr(n+1),h=H(l,n,r),d=[];for(u=0;u<c.length;u+=1)d[u]=c.charCodeAt(u)^h.charCodeAt(u);var p=H(String.fromCharCode.apply(String,d),e.length-n,r),f=[];for(u=0;u<l.length;u+=1)f[u]=l.charCodeAt(u)^p.charCodeAt(u);if((f=String.fromCharCode.apply(String,f)).substr(0,n)!==r(""))throw"Hash mismatch";var A=(f=f.substr(n)).indexOf("");if((-1!=A?f.substr(0,A).lastIndexOf("\0"):-1)+1!=A)throw"Malformed data";return f.substr(A+1)}(s,this.n.bitLength()+7>>3,t,r)},void 0!==i.lang&&i.lang||(i.lang={}),i.lang.String=function(){},i.lang.String.isInteger=function(e){return!!e.match(/^[0-9]+$/)||!!e.match(/^-[0-9]+$/)},i.lang.String.isHex=function(e){return ue(e)},i.lang.String.isBase64=function(e){return!(!(e=e.replace(/\s+/g,"")).match(/^[0-9A-Za-z+\/]+={0,3}$/)||e.length%4!=0)},i.lang.String.isBase64URL=function(e){return!e.match(/[+/=]/)&&(e=Z(e),i.lang.String.isBase64(e))},i.lang.String.isIntegerArray=function(e){return!!(e=e.replace(/\s+/g,"")).match(/^\[[0-9,]+\]$/)},i.lang.String.isPrintable=function(e){return null!==e.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},i.lang.String.isIA5=function(e){return null!==e.match(/^[\x20-\x21\x23-\x7f]*$/)},i.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var le=function(e,t,r){return null==r&&(r="0"),e.length>=t?e:new Array(t-e.length+1).join(r)+e};function he(e,t){var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t)}void 0!==i.crypto&&i.crypto||(i.crypto={}),i.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:s.algo.MD5,sha1:s.algo.SHA1,sha224:s.algo.SHA224,sha256:s.algo.SHA256,sha384:s.algo.SHA384,sha512:s.algo.SHA512,ripemd160:s.algo.RIPEMD160},this.getDigestInfoHex=function(e,t){if(void 0===this.DIGESTINFOHEAD[t])throw"alg not supported in Util.DIGESTINFOHEAD: "+t;return this.DIGESTINFOHEAD[t]+e},this.getPaddedDigestInfoHex=function(e,t,r){var i=this.getDigestInfoHex(e,t),n=r/4;if(i.length+22>n)throw"key is too short for SigAlg: keylen="+r+","+t;for(var s="0001",o="00"+i,a="",u=n-s.length-o.length,c=0;c<u;c+=2)a+="ff";return s+a+o},this.hashString=function(e,t){return new i.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new i.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")},this.isKey=function(e){return e instanceof V||e instanceof i.crypto.DSA||e instanceof i.crypto.ECDSA}},i.crypto.Util.md5=function(e){return new i.crypto.MessageDigest({alg:"md5",prov:"cryptojs"}).digestString(e)},i.crypto.Util.ripemd160=function(e){return new i.crypto.MessageDigest({alg:"ripemd160",prov:"cryptojs"}).digestString(e)},i.crypto.Util.SECURERANDOMGEN=new Q,i.crypto.Util.getRandomHexOfNbytes=function(e){var t=new Array(e);return i.crypto.Util.SECURERANDOMGEN.nextBytes(t),G(t)},i.crypto.Util.getRandomBigIntegerOfNbytes=function(e){return new o(i.crypto.Util.getRandomHexOfNbytes(e),16)},i.crypto.Util.getRandomHexOfNbits=function(e){var t=e%8,r=new Array((e-t)/8+1);return i.crypto.Util.SECURERANDOMGEN.nextBytes(r),r[0]=(255<<t&255^255)&r[0],G(r)},i.crypto.Util.getRandomBigIntegerOfNbits=function(e){return new o(i.crypto.Util.getRandomHexOfNbits(e),16)},i.crypto.Util.getRandomBigIntegerZeroToMax=function(e){for(var t=e.bitLength();;){var r=i.crypto.Util.getRandomBigIntegerOfNbits(t);if(-1!=e.compareTo(r))return r}},i.crypto.Util.getRandomBigIntegerMinToMax=function(e,t){var r=e.compareTo(t);if(1==r)throw"biMin is greater than biMax";if(0==r)return e;var n=t.subtract(e);return i.crypto.Util.getRandomBigIntegerZeroToMax(n).add(e)},i.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=i.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=i.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=i.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=s.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(s.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},i.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},i.crypto.MessageDigest.getHashLength=function(e){var t=i.crypto.MessageDigest,r=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[r])throw"not supported algorithm: "+e;return t.HASHLENGTH[r]},i.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},i.crypto.Mac=function(e){this.setAlgAndProvider=function(e,t){if(null==(e=e.toLowerCase())&&(e="hmacsha1"),"hmac"!=(e=e.toLowerCase()).substr(0,4))throw"setAlgAndProvider unsupported HMAC alg: "+e;void 0===t&&(t=i.crypto.Util.DEFAULTPROVIDER[e]),this.algProv=e+"/"+t;var r=e.substr(4);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(r)&&"cryptojs"==t){try{var n=i.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];this.mac=s.algo.HMAC.create(n,this.pass)}catch(e){throw"setAlgAndProvider hash alg set fail hashAlg="+r+"/"+e}this.updateString=function(e){this.mac.update(e)},this.updateHex=function(e){var t=s.enc.Hex.parse(e);this.mac.update(t)},this.doFinal=function(){return this.mac.finalize().toString(s.enc.Hex)},this.doFinalString=function(e){return this.updateString(e),this.doFinal()},this.doFinalHex=function(e){return this.updateHex(e),this.doFinal()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algProv},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algProv},this.doFinal=function(){throw"digest() not supported for this alg/prov: "+this.algProv},this.doFinalString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algProv},this.doFinalHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algProv},this.setPassword=function(e){if("string"==typeof e){var t=e;return e.length%2!=1&&e.match(/^[0-9A-Fa-f]+$/)||(t=te(e)),void(this.pass=s.enc.Hex.parse(t))}if("object"!=typeof e)throw"KJUR.crypto.Mac unsupported password type: "+e;if(t=null,void 0!==e.hex){if(e.hex.length%2!=0||!e.hex.match(/^[0-9A-Fa-f]+$/))throw"Mac: wrong hex password: "+e.hex;t=e.hex}if(void 0!==e.utf8&&(t=J(e.utf8)),void 0!==e.rstr&&(t=te(e.rstr)),void 0!==e.b64&&(t=L(e.b64)),void 0!==e.b64u&&(t=K(e.b64u)),null==t)throw"KJUR.crypto.Mac unsupported password type: "+e;this.pass=s.enc.Hex.parse(t)},void 0!==e&&(void 0!==e.pass&&this.setPassword(e.pass),void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},i.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var r="",i=t/4-e.length,n=0;n<i;n++)r+="0";return r+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new i.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var r=null;try{r=void 0===t?me.getKey(e):me.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===r.isPrivate)this.prvKey=r,this.state="SIGN";else{if(!0!==r.isPublic)throw"init failed.:"+r;this.pubKey=r,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==i.crypto.ECDSA&&(this.prvKey=new i.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof V&&"rsaandmgf1"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof V&&"rsa"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof i.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof i.crypto.DSA))throw"Signature: unsupported private key alg: "+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(e){return this.updateString(e),this.sign()},this.signHex=function(e){return this.updateHex(e),this.sign()},this.verify=function(e){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==i.crypto.ECDSA&&(this.pubKey=new i.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof V&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof V&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==i.crypto.ECDSA&&this.pubKey instanceof i.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==i.crypto.DSA&&this.pubKey instanceof i.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.sign=function(){throw"sign() not supported for this alg:prov="+this.algProvName},this.signString=function(e){throw"digestString(str) not supported for this alg:prov="+this.algProvName},this.signHex=function(e){throw"digestHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=i.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=me.getKey(e.prvkeypem),this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},i.crypto.Cipher=function(e){},i.crypto.Cipher.encrypt=function(e,t,r){if(t instanceof V&&t.isPublic){var n=i.crypto.Cipher.getAlgByKeyAndName(t,r);if("RSA"===n)return t.encrypt(e);if("RSAOAEP"===n)return t.encryptOAEP(e,"sha1");var s=n.match(/^RSAOAEP(\d+)$/);if(null!==s)return t.encryptOAEP(e,"sha"+s[1]);throw"Cipher.encrypt: unsupported algorithm for RSAKey: "+r}throw"Cipher.encrypt: unsupported key or algorithm"},i.crypto.Cipher.decrypt=function(e,t,r){if(t instanceof V&&t.isPrivate){var n=i.crypto.Cipher.getAlgByKeyAndName(t,r);if("RSA"===n)return t.decrypt(e);if("RSAOAEP"===n)return t.decryptOAEP(e,"sha1");var s=n.match(/^RSAOAEP(\d+)$/);if(null!==s)return t.decryptOAEP(e,"sha"+s[1]);throw"Cipher.decrypt: unsupported algorithm for RSAKey: "+r}throw"Cipher.decrypt: unsupported key or algorithm"},i.crypto.Cipher.getAlgByKeyAndName=function(e,t){if(e instanceof V){if(-1!=":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:".indexOf(t))return t;if(null==t)return"RSA";throw"getAlgByKeyAndName: not supported algorithm name for RSAKey: "+t}throw"getAlgByKeyAndName: not supported algorithm name: "+t},i.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var de,pe,fe,Ae,Me,ge,ye,ve,me=(de=function(e,t,r){return pe(s.AES,e,t,r)},pe=function(e,t,r,i){var n=s.enc.Hex.parse(t),o=s.enc.Hex.parse(r),a=s.enc.Hex.parse(i),u={};u.key=o,u.iv=a,u.ciphertext=n;var c=e.decrypt(u,o,{iv:a});return s.enc.Hex.stringify(c)},fe=function(e,t,r){return Ae(s.AES,e,t,r)},Ae=function(e,t,r,i){var n=s.enc.Hex.parse(t),o=s.enc.Hex.parse(r),a=s.enc.Hex.parse(i),u=e.encrypt(n,o,{iv:a}),c=s.enc.Hex.parse(u.toString());return s.enc.Base64.stringify(c)},Me={"AES-256-CBC":{proc:de,eproc:fe,keylen:32,ivlen:16},"AES-192-CBC":{proc:de,eproc:fe,keylen:24,ivlen:16},"AES-128-CBC":{proc:de,eproc:fe,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,t,r){return pe(s.TripleDES,e,t,r)},eproc:function(e,t,r){return Ae(s.TripleDES,e,t,r)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,t,r){return pe(s.DES,e,t,r)},eproc:function(e,t,r){return Ae(s.DES,e,t,r)},keylen:8,ivlen:8}},ge=function(e){var t={},r=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));r&&(t.cipher=r[1],t.ivsalt=r[2]);var i=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));i&&(t.type=i[1]);var n=-1,s=0;-1!=e.indexOf("\r\n\r\n")&&(n=e.indexOf("\r\n\r\n"),s=2),-1!=e.indexOf("\n\n")&&(n=e.indexOf("\n\n"),s=1);var o=e.indexOf("-----END");if(-1!=n&&-1!=o){var a=e.substring(n+2*s,o-s);a=a.replace(/\s+/g,""),t.data=a}return t},ye=function(e,t,r){for(var i=r.substring(0,16),n=s.enc.Hex.parse(i),o=s.enc.Utf8.parse(t),a=Me[e].keylen+Me[e].ivlen,u="",c=null;;){var l=s.algo.MD5.create();if(null!=c&&l.update(c),l.update(o),l.update(n),c=l.finalize(),(u+=s.enc.Hex.stringify(c)).length>=2*a)break}var h={};return h.keyhex=u.substr(0,2*Me[e].keylen),h.ivhex=u.substr(2*Me[e].keylen,2*Me[e].ivlen),h},ve=function(e,t,r,i){var n=s.enc.Base64.parse(e),o=s.enc.Hex.stringify(n);return(0,Me[t].proc)(o,r,i)},{version:"1.0.0",parsePKCS5PEM:function(e){return ge(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,r){return ye(e,t,r)},decryptKeyB64:function(e,t,r,i){return ve(e,t,r,i)},getDecryptedKeyHex:function(e,t){var r=ge(e),i=(r.type,r.cipher),n=r.ivsalt,s=r.data,o=ye(i,t,n).keyhex;return ve(s,i,o,n)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,r,i,n){var o="";if(void 0!==i&&null!=i||(i="AES-256-CBC"),void 0===Me[i])throw"KEYUTIL unsupported algorithm: "+i;void 0!==n&&null!=n||(n=function(e){var t=s.lib.WordArray.random(e);return s.enc.Hex.stringify(t)}(Me[i].ivlen).toUpperCase());var a=function(e,t,r,i){return(0,Me[t].eproc)(e,r,i)}(t,i,ye(i,r,n).keyhex,n);return o="-----BEGIN "+e+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+i+","+n+"\r\n",o+="\r\n",(o+=a.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={},s=r(e,0);if(2!=s.length)throw"malformed format: SEQUENCE(0).items != 2: "+s.length;n.ciphertext=i(e,s[1]);var o=r(e,s[0]);if(2!=o.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+o.length;if("2a864886f70d01050d"!=i(e,o[0]))throw"this only supports pkcs5PBES2";var a=r(e,o[1]);if(2!=o.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(e,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=i(e,u[0]))throw"this only supports TripleDES";n.encryptionSchemeAlg="TripleDES",n.encryptionSchemeIV=i(e,u[1]);var c=r(e,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=i(e,c[0]))throw"this only supports pkcs5PBKDF2";var l=r(e,c[1]);if(l.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+l.length;n.pbkdf2Salt=i(e,l[0]);var h=i(e,l[1]);try{n.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return n},getPBKDF2KeyHexFromParam:function(e,t){var r=s.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,n=s.PBKDF2(t,r,{keySize:6,iterations:i});return s.enc.Hex.stringify(n)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var r=ie(e,"ENCRYPTED PRIVATE KEY"),i=this.parseHexOfEncryptedPKCS8(r),n=me.getPBKDF2KeyHexFromParam(i,t),o={};o.ciphertext=s.enc.Hex.parse(i.ciphertext);var a=s.enc.Hex.parse(n),u=s.enc.Hex.parse(i.encryptionSchemeIV),c=s.TripleDES.decrypt(o,a,{iv:u});return s.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function(e,t){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var s=r(e,0);if(s.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(s[1],2))throw new Error("malformed PKCS8 private key(code:003)");var o=r(e,s[1]);if(2!=o.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(o[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(n.algoid=i(e,o[0]),"06"==e.substr(o[1],2)&&(n.algparam=i(e,o[1])),"04"!=e.substr(s[2],2))throw new Error("malformed PKCS8 private key(code:006)");return n.keyidx=t.getVidx(e,s[2]),n},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=ie(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,r=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==r.algoid)t=new V;else if("2a8648ce380401"==r.algoid)t=new i.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";t=new i.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,r=Ne.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===r)t=new V;else if("2a8648ce380401"===r)t=new i.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";t=new i.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var s=r(e,0);if(2!=s.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(s[0],2))throw"malformed RSA key(code:003)";if(n.n=i(e,s[0]),"02"!=e.substr(s[1],2))throw"malformed RSA key(code:004)";return n.e=i(e,s[1]),n},parsePublicPKCS8Hex:function(e){var t=Ne,r=t.getChildIdx,i=t.getV,n={algparam:null},s=r(e,0);if(2!=s.length)throw"outer DERSequence shall have 2 elements: "+s.length;var o=s[0];if("30"!=e.substr(o,2))throw"malformed PKCS8 public key(code:001)";var a=r(e,o);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(n.algoid=i(e,a[0]),"06"==e.substr(a[1],2)?n.algparam=i(e,a[1]):"30"==e.substr(a[1],2)&&(n.algparam={},n.algparam.p=t.getVbyList(e,a[1],[0],"02"),n.algparam.q=t.getVbyList(e,a[1],[1],"02"),n.algparam.g=t.getVbyList(e,a[1],[2],"02")),"03"!=e.substr(s[1],2))throw"malformed PKCS8 public key(code:004)";return n.key=i(e,s[1]).substr(2),n}});me.getKey=function(e,t,r){var n,s=(v=Ne).getChildIdx,a=(v.getV,v.getVbyList),u=i.crypto,c=u.ECDSA,l=u.DSA,h=V,d=ie,p=me;if(void 0!==h&&e instanceof h)return e;if(void 0!==c&&e instanceof c)return e;if(void 0!==l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new c({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new c({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(z=new h).setPublic(e.n,e.e),z;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(z=new h).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),z;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(z=new h).setPrivate(e.n,e.e,e.d),z;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(z=new l).setPublic(e.p,e.q,e.g,e.y),z;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(z=new l).setPrivate(e.p,e.q,e.g,e.y,e.x),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(z=new h).setPublic(K(e.n),K(e.e)),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(z=new h).setPrivateEx(K(e.n),K(e.e),K(e.d),K(e.p),K(e.q),K(e.dp),K(e.dq),K(e.qi)),z;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(z=new h).setPrivate(K(e.n),K(e.e),K(e.d)),z;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var f=(b=new c({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+K(e.x)).slice(-f)+("0000000000"+K(e.y)).slice(-f);return b.setPublicKeyHex(A),b}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){f=(b=new c({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+K(e.x)).slice(-f)+("0000000000"+K(e.y)).slice(-f);var M=("0000000000"+K(e.d)).slice(-f);return b.setPublicKeyHex(A),b.setPrivateKeyHex(M),b}if("pkcs5prv"===r){var g,y=e,v=Ne;if(9===(g=s(y,0)).length)(z=new h).readPKCS5PrvKeyHex(y);else if(6===g.length)(z=new l).readPKCS5PrvKeyHex(y);else{if(!(g.length>2&&"04"===y.substr(g[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(z=new c).readPKCS5PrvKeyHex(y)}return z}if("pkcs8prv"===r)return p.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===r)return p._getKeyFromPublicPKCS8Hex(e);if("x509pub"===r)return xe.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return xe.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var m=ie(e,"PUBLIC KEY");return p._getKeyFromPublicPKCS8Hex(m)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var N=d(e,"RSA PRIVATE KEY");return p.getKey(N,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var D=a(n=d(e,"DSA PRIVATE KEY"),0,[1],"02"),w=a(n,0,[2],"02"),T=a(n,0,[3],"02"),x=a(n,0,[4],"02"),E=a(n,0,[5],"02");return(z=new l).setPrivate(new o(D,16),new o(w,16),new o(T,16),new o(x,16),new o(E,16)),z}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED"))return N=d(e,"EC PRIVATE KEY"),p.getKey(N,null,"pkcs5prv");if(-1!=e.indexOf("-END PRIVATE KEY-"))return p.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var j=p.getDecryptedKeyHex(e,t),I=new V;return I.readPKCS5PrvKeyHex(j),I}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var b,z=a(n=p.getDecryptedKeyHex(e,t),0,[1],"04"),O=a(n,0,[2,0],"06"),S=a(n,0,[3,0],"03").substr(2);if(void 0===i.crypto.OID.oidhex2name[O])throw"undefined OID(hex) in KJUR.crypto.OID: "+O;return(b=new c({curve:i.crypto.OID.oidhex2name[O]})).setPublicKeyHex(S),b.setPrivateKeyHex(z),b.isPublic=!1,b}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED"))return D=a(n=p.getDecryptedKeyHex(e,t),0,[1],"02"),w=a(n,0,[2],"02"),T=a(n,0,[3],"02"),x=a(n,0,[4],"02"),E=a(n,0,[5],"02"),(z=new l).setPrivate(new o(D,16),new o(w,16),new o(T,16),new o(x,16),new o(E,16)),z;if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return p.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},me.generateKeypair=function(e,t){if("RSA"==e){var r=t;(a=new V).generate(r,"10001"),a.isPrivate=!0,a.isPublic=!0;var n=new V,s=a.n.toString(16),o=a.e.toString(16);return n.setPublic(s,o),n.isPrivate=!1,n.isPublic=!0,(u={}).prvKeyObj=a,u.pubKeyObj=n,u}if("EC"==e){var a,u,c=t,l=new i.crypto.ECDSA({curve:c}).generateKeyPairHex();return(a=new i.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),a.setPrivateKeyHex(l.ecprvhex),a.isPrivate=!0,a.isPublic=!1,(n=new i.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(u={}).prvKeyObj=a,u.pubKeyObj=n,u}throw"unknown algorithm: "+e},me.getPEM=function(e,t,r,n,o,a){var u=i,c=u.asn1,l=c.DERObjectIdentifier,h=c.DERInteger,d=c.ASN1Util.newObject,p=c.x509.SubjectPublicKeyInfo,f=u.crypto,A=f.DSA,M=f.ECDSA,g=V;function y(e){return d({seq:[{int:0},{int:{bigint:e.n}},{int:e.e},{int:{bigint:e.d}},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.dmp1}},{int:{bigint:e.dmq1}},{int:{bigint:e.coeff}}]})}function v(e){return d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a0",!0,{oid:{name:e.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]})}function m(e){return d({seq:[{int:0},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}},{int:{bigint:e.y}},{int:{bigint:e.x}}]})}if((void 0!==g&&e instanceof g||void 0!==A&&e instanceof A||void 0!==M&&e instanceof M)&&1==e.isPublic&&(void 0===t||"PKCS8PUB"==t))return re(T=new p(e).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==t&&void 0!==g&&e instanceof g&&(void 0===r||null==r)&&1==e.isPrivate)return re(T=y(e).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==t&&void 0!==M&&e instanceof M&&(void 0===r||null==r)&&1==e.isPrivate){var N=new l({name:e.curveName}).getEncodedHex(),D=v(e).getEncodedHex(),w="";return(w+=re(N,"EC PARAMETERS"))+re(D,"EC PRIVATE KEY")}if("PKCS1PRV"==t&&void 0!==A&&e instanceof A&&(void 0===r||null==r)&&1==e.isPrivate)return re(T=m(e).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==t&&void 0!==g&&e instanceof g&&void 0!==r&&null!=r&&1==e.isPrivate){var T=y(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",T,r,n,a)}if("PKCS5PRV"==t&&void 0!==M&&e instanceof M&&void 0!==r&&null!=r&&1==e.isPrivate)return T=v(e).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",T,r,n,a);if("PKCS5PRV"==t&&void 0!==A&&e instanceof A&&void 0!==r&&null!=r&&1==e.isPrivate)return T=m(e).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",T,r,n,a);var x=function(e,t){var r=E(e,t);return new d({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},E=function(e,t){var r=s.lib.WordArray.random(8),i=s.lib.WordArray.random(8),n=s.PBKDF2(t,r,{keySize:6,iterations:100}),o=s.enc.Hex.parse(e),a=s.TripleDES.encrypt(o,n,{iv:i})+"",u={};return u.ciphertext=a,u.pbkdf2Salt=s.enc.Hex.stringify(r),u.pbkdf2Iter=100,u.encryptionSchemeAlg="DES-EDE3-CBC",u.encryptionSchemeIV=s.enc.Hex.stringify(i),u};if("PKCS8PRV"==t&&null!=g&&e instanceof g&&1==e.isPrivate){var j=y(e).getEncodedHex();return T=d({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==M&&e instanceof M&&1==e.isPrivate)return j=new d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:e.curveName}}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==t&&void 0!==A&&e instanceof A&&1==e.isPrivate)return j=new h({bigint:e.x}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}]},{octstr:{hex:j}}]}).getEncodedHex(),void 0===r||null==r?re(T,"PRIVATE KEY"):re(D=x(T,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},me.getKeyFromCSRPEM=function(e){var t=ie(e,"CERTIFICATE REQUEST");return me.getKeyFromCSRHex(t)},me.getKeyFromCSRHex=function(e){var t=me.parseCSRHex(e);return me.getKey(t.p8pubkeyhex,null,"pkcs8pub")},me.parseCSRHex=function(e){var t=Ne,r=t.getChildIdx,i=t.getTLV,n={},s=e;if("30"!=s.substr(0,2))throw"malformed CSR(code:001)";var o=r(s,0);if(o.length<1)throw"malformed CSR(code:002)";if("30"!=s.substr(o[0],2))throw"malformed CSR(code:003)";var a=r(s,o[0]);if(a.length<3)throw"malformed CSR(code:004)";return n.p8pubkeyhex=i(s,a[2]),n},me.getKeyID=function(e){var t=me,r=Ne;"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&(e=t.getKey(e));var n=ie(t.getPEM(e)),s=r.getIdxbyList(n,0,[1]),o=r.getV(n,s).substring(2);return i.crypto.Util.hashHex(o,"sha1")},me.getJWKFromKey=function(e){var t={};if(e instanceof V&&e.isPrivate)return t.kty="RSA",t.n=X(e.n.toString(16)),t.e=X(e.e.toString(16)),t.d=X(e.d.toString(16)),t.p=X(e.p.toString(16)),t.q=X(e.q.toString(16)),t.dp=X(e.dmp1.toString(16)),t.dq=X(e.dmq1.toString(16)),t.qi=X(e.coeff.toString(16)),t;if(e instanceof V&&e.isPublic)return t.kty="RSA",t.n=X(e.n.toString(16)),t.e=X(e.e.toString(16)),t;if(e instanceof i.crypto.ECDSA&&e.isPrivate){if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=X(r.x),t.y=X(r.y),t.d=X(e.prvKeyHex),t}if(e instanceof i.crypto.ECDSA&&e.isPublic){var n;if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=e.getPublicKeyXYHex(),t.kty="EC",t.crv=n,t.x=X(r.x),t.y=X(r.y),t}throw"not supported key object"},void 0!==i.asn1&&i.asn1||(i.asn1={}),i.asn1.ASN1Util=new function(){this.integerToByteHex=function(e){var t=e.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(e){var t=e.toString(16);if("-"!=t.substr(0,1))t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t);else{var r=t.substr(1).length;r%2==1?r+=1:t.match(/^[0-7]/)||(r+=2);for(var i="",n=0;n<r;n++)i+="f";t=new o(i,16).xor(e).add(o.ONE).toString(16).replace(/^-/,"")}return t},this.getPEMStringFromHex=function(e,t){return re(e,t)},this.newObject=function(e){var t=i.asn1,r=t.ASN1Object,n=t.DERBoolean,s=t.DERInteger,o=t.DERBitString,a=t.DEROctetString,u=t.DERNull,c=t.DERObjectIdentifier,l=t.DEREnumerated,h=t.DERUTF8String,d=t.DERNumericString,p=t.DERPrintableString,f=t.DERTeletexString,A=t.DERIA5String,M=t.DERUTCTime,g=t.DERGeneralizedTime,y=t.DERVisibleString,v=t.DERBMPString,m=t.DERSequence,N=t.DERSet,D=t.DERTaggedObject,w=t.ASN1Util.newObject;if(e instanceof t.ASN1Object)return e;var T=Object.keys(e);if(1!=T.length)throw new Error("key of param shall be only one.");var x=T[0];if(-1==":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":"+x+":"))throw new Error("undefined key: "+x);if("bool"==x)return new n(e[x]);if("int"==x)return new s(e[x]);if("bitstr"==x)return new o(e[x]);if("octstr"==x)return new a(e[x]);if("null"==x)return new u(e[x]);if("oid"==x)return new c(e[x]);if("enum"==x)return new l(e[x]);if("utf8str"==x)return new h(e[x]);if("numstr"==x)return new d(e[x]);if("prnstr"==x)return new p(e[x]);if("telstr"==x)return new f(e[x]);if("ia5str"==x)return new A(e[x]);if("utctime"==x)return new M(e[x]);if("gentime"==x)return new g(e[x]);if("visstr"==x)return new y(e[x]);if("bmpstr"==x)return new v(e[x]);if("asn1"==x)return new r(e[x]);if("seq"==x){for(var E=e[x],j=[],I=0;I<E.length;I++){var b=w(E[I]);j.push(b)}return new m({array:j})}if("set"==x){for(E=e[x],j=[],I=0;I<E.length;I++)b=w(E[I]),j.push(b);return new N({array:j})}if("tag"==x){var z=e[x];if("[object Array]"===Object.prototype.toString.call(z)&&3==z.length){var O=w(z[2]);return new D({tag:z[0],explicit:z[1],obj:O})}return new D(z)}},this.jsonToASN1HEX=function(e){return this.newObject(e).getEncodedHex()}},i.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",r=parseInt(e.substr(0,2),16),i=(t=Math.floor(r/40)+"."+r%40,""),n=2;n<e.length;n+=2){var s=("00000000"+parseInt(e.substr(n,2),16).toString(2)).slice(-8);i+=s.substr(1,7),"0"==s.substr(0,1)&&(t=t+"."+new o(i,2).toString(10),i="")}return t},i.asn1.ASN1Util.oidIntToHex=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},r=function(e){var r="",i=new o(e,10).toString(2),n=7-i.length%7;7==n&&(n=0);for(var s="",a=0;a<n;a++)s+="0";for(i=s+i,a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u="1"+u),r+=t(parseInt(u,2))}return r};if(!e.match(/^[0-9.]+$/))throw"malformed oid string: "+e;var i="",n=e.split("."),s=40*parseInt(n[0])+parseInt(n[1]);i+=t(s),n.splice(0,2);for(var a=0;a<n.length;a++)i+=r(n[a]);return i},i.asn1.ASN1Object=function(e){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error("this.hV is null or undefined");if(this.hV.length%2==1)throw new Error("value hex must be even length: n="+"".length+",v="+this.hV);var e=this.hV.length/2,t=e.toString(16);if(t.length%2==1&&(t="0"+t),e<128)return t;var r=t.length/2;if(r>15)throw"ASN.1 length too long to represent by 8x: n = "+e.toString(16);return(128+r).toString(16)+t},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(e){this.params=e},null!=e&&null!=e.tlv&&(this.hTLV=e.tlv,this.isModified=!1)},i.asn1.DERAbstractString=function(e){i.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=J(this.s).toLowerCase()},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e?this.setString(e):void 0!==e.str?this.setString(e.str):void 0!==e.hex&&this.setStringHex(e.hex))},n.lang.extend(i.asn1.DERAbstractString,i.asn1.ASN1Object),i.asn1.DERAbstractTime=function(e){i.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(e){var t=e.getTime()+6e4*e.getTimezoneOffset();return new Date(t)},this.formatDate=function(e,t,r){var i=this.zeroPadding,n=this.localDateToUTC(e),s=String(n.getFullYear());"utc"==t&&(s=s.substr(2,2));var o=s+i(String(n.getMonth()+1),2)+i(String(n.getDate()),2)+i(String(n.getHours()),2)+i(String(n.getMinutes()),2)+i(String(n.getSeconds()),2);if(!0===r){var a=n.getMilliseconds();if(0!=a){var u=i(String(a),3);o=o+"."+(u=u.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=q(e)},this.setByDateValue=function(e,t,r,i,n,s){var o=new Date(Date.UTC(e,t-1,r,i,n,s,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},n.lang.extend(i.asn1.DERAbstractTime,i.asn1.ASN1Object),i.asn1.DERAbstractStructured=function(e){i.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,void 0!==e&&void 0!==e.array&&(this.asn1Array=e.array)},n.lang.extend(i.asn1.DERAbstractStructured,i.asn1.ASN1Object),i.asn1.DERBoolean=function(e){i.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==e?"010100":"0101ff"},n.lang.extend(i.asn1.DERBoolean,i.asn1.ASN1Object),i.asn1.DERInteger=function(e){i.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=i.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new o(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.bigint?this.setByBigInteger(e.bigint):void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},n.lang.extend(i.asn1.DERInteger,i.asn1.ASN1Object),i.asn1.DERBitString=function(e){if(void 0!==e&&void 0!==e.obj){var t=i.asn1.ASN1Util.newObject(e.obj);e.hex="00"+t.getEncodedHex()}i.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,t){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var r="0"+e;this.hTLV=null,this.isModified=!0,this.hV=r+t},this.setByBinaryString=function(e){var t=8-(e=e.replace(/0+$/,"")).length%8;8==t&&(t=0);for(var r=0;r<=t;r++)e+="0";var i="";for(r=0;r<e.length-1;r+=8){var n=e.substr(r,8),s=parseInt(n,2).toString(16);1==s.length&&(s="0"+s),i+=s}this.hTLV=null,this.isModified=!0,this.hV="0"+t+i},this.setByBooleanArray=function(e){for(var t="",r=0;r<e.length;r++)1==e[r]?t+="1":t+="0";this.setByBinaryString(t)},this.newFalseArray=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=!1;return t},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e&&e.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(e):void 0!==e.hex?this.setHexValueIncludingUnusedBits(e.hex):void 0!==e.bin?this.setByBinaryString(e.bin):void 0!==e.array&&this.setByBooleanArray(e.array))},n.lang.extend(i.asn1.DERBitString,i.asn1.ASN1Object),i.asn1.DEROctetString=function(e){if(void 0!==e&&void 0!==e.obj){var t=i.asn1.ASN1Util.newObject(e.obj);e.hex=t.getEncodedHex()}i.asn1.DEROctetString.superclass.constructor.call(this,e),this.hT="04"},n.lang.extend(i.asn1.DEROctetString,i.asn1.DERAbstractString),i.asn1.DERNull=function(){i.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},n.lang.extend(i.asn1.DERNull,i.asn1.ASN1Object),i.asn1.DERObjectIdentifier=function(e){i.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueOidString=function(e){var t=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},r=function(e){var r="",i=parseInt(e,10).toString(2),n=7-i.length%7;7==n&&(n=0);for(var s="",o=0;o<n;o++)s+="0";for(i=s+i,o=0;o<i.length-1;o+=7){var a=i.substr(o,7);o!=i.length-7&&(a="1"+a),r+=t(parseInt(a,2))}return r};try{if(!e.match(/^[0-9.]+$/))return null;var i="",n=e.split("."),s=40*parseInt(n[0],10)+parseInt(n[1],10);i+=t(s),n.splice(0,2);for(var o=0;o<n.length;o++)i+=r(n[o]);return i}catch(e){return null}}(e);if(null==t)throw new Error("malformed oid string: "+e);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueName=function(e){var t=i.asn1.x509.OID.name2oid(e);if(""===t)throw new Error("DERObjectIdentifier oidName undefined: "+e);this.setValueOidString(t)},this.setValueNameOrOid=function(e){e.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(e):this.setValueName(e)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){"string"==typeof e?this.setValueNameOrOid(e):void 0!==e.oid?this.setValueNameOrOid(e.oid):void 0!==e.name?this.setValueNameOrOid(e.name):void 0!==e.hex&&this.setValueHex(e.hex)},void 0!==e&&this.setByParam(e)},n.lang.extend(i.asn1.DERObjectIdentifier,i.asn1.ASN1Object),i.asn1.DEREnumerated=function(e){i.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=i.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new o(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},n.lang.extend(i.asn1.DEREnumerated,i.asn1.ASN1Object),i.asn1.DERUTF8String=function(e){i.asn1.DERUTF8String.superclass.constructor.call(this,e),this.hT="0c"},n.lang.extend(i.asn1.DERUTF8String,i.asn1.DERAbstractString),i.asn1.DERNumericString=function(e){i.asn1.DERNumericString.superclass.constructor.call(this,e),this.hT="12"},n.lang.extend(i.asn1.DERNumericString,i.asn1.DERAbstractString),i.asn1.DERPrintableString=function(e){i.asn1.DERPrintableString.superclass.constructor.call(this,e),this.hT="13"},n.lang.extend(i.asn1.DERPrintableString,i.asn1.DERAbstractString),i.asn1.DERTeletexString=function(e){i.asn1.DERTeletexString.superclass.constructor.call(this,e),this.hT="14"},n.lang.extend(i.asn1.DERTeletexString,i.asn1.DERAbstractString),i.asn1.DERIA5String=function(e){i.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="16"},n.lang.extend(i.asn1.DERIA5String,i.asn1.DERAbstractString),i.asn1.DERVisibleString=function(e){i.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="1a"},n.lang.extend(i.asn1.DERVisibleString,i.asn1.DERAbstractString),i.asn1.DERBMPString=function(e){i.asn1.DERBMPString.superclass.constructor.call(this,e),this.hT="1e"},n.lang.extend(i.asn1.DERBMPString,i.asn1.DERAbstractString),i.asn1.DERUTCTime=function(e){i.asn1.DERUTCTime.superclass.constructor.call(this,e),this.hT="17",this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"utc"),this.hV=q(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=q(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{12}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date))},n.lang.extend(i.asn1.DERUTCTime,i.asn1.DERAbstractTime),i.asn1.DERGeneralizedTime=function(e){i.asn1.DERGeneralizedTime.superclass.constructor.call(this,e),this.hT="18",this.withMillis=!1,this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=q(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=q(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{14}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date),!0===e.millis&&(this.withMillis=!0))},n.lang.extend(i.asn1.DERGeneralizedTime,i.asn1.DERAbstractTime),i.asn1.DERSequence=function(e){i.asn1.DERSequence.superclass.constructor.call(this,e),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;t<this.asn1Array.length;t++)e+=this.asn1Array[t].getEncodedHex();return this.hV=e,this.hV}},n.lang.extend(i.asn1.DERSequence,i.asn1.DERAbstractStructured),i.asn1.DERSet=function(e){i.asn1.DERSet.superclass.constructor.call(this,e),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var e=new Array,t=0;t<this.asn1Array.length;t++){var r=this.asn1Array[t];e.push(r.getEncodedHex())}return 1==this.sortFlag&&e.sort(),this.hV=e.join(""),this.hV},void 0!==e&&void 0!==e.sortflag&&0==e.sortflag&&(this.sortFlag=!1)},n.lang.extend(i.asn1.DERSet,i.asn1.DERAbstractStructured),i.asn1.DERTaggedObject=function(e){i.asn1.DERTaggedObject.superclass.constructor.call(this);var t=i.asn1;this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(e,t,r){this.hT=t,this.isExplicit=e,this.asn1Object=r,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=r.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,t),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){null!=e.tag&&(this.hT=e.tag),null!=e.explicit&&(this.isExplicit=e.explicit),null!=e.tage&&(this.hT=e.tage,this.isExplicit=!0),null!=e.tagi&&(this.hT=e.tagi,this.isExplicit=!1),null!=e.obj&&(e.obj instanceof t.ASN1Object?(this.asn1Object=e.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):"object"==typeof e.obj&&(this.asn1Object=t.ASN1Util.newObject(e.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=e&&this.setByParam(e)},n.lang.extend(i.asn1.DERTaggedObject,i.asn1.ASN1Object);var Ne=new function(){};function De(e,t){for(var r="",i=t/4-e.length,n=0;n<i;n++)r+="0";return r+e}function we(e,t,r){for(var i="",n=0;i.length<t;)i+=ee(r(te(e+String.fromCharCode.apply(String,[(4278190080&n)>>24,(16711680&n)>>16,(65280&n)>>8,255&n])))),n+=1;return i}function Te(e){for(var t in i.crypto.Util.DIGESTINFOHEAD){var r=i.crypto.Util.DIGESTINFOHEAD[t],n=r.length;if(e.substring(0,n)==r)return[t,e.substring(n)]}return[]}function xe(e){var t,r=Ne,n=r.getChildIdx,s=r.getV,o=r.getTLV,a=r.getVbyList,u=r.getVbyListEx,c=r.getTLVbyList,l=r.getTLVbyListEx,h=r.getIdxbyList,d=r.getIdxbyListEx,p=r.getVidx,f=r.getInt,A=r.oidname,M=r.hextooidstr,g=ie;try{t=i.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=c(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=c(e,0,[0]),r=f(t,0);if(r<0||2<r)throw new Error("malformed version field");return this.version=r+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return u(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=l(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var r in t)if(e===t[r])return r;return A(u(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return c(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return c(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=a(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getNotAfter=function(){var e=a(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return h(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return me.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=c(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return a(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=c(this.hex,0,[0],"30"),s=new i.crypto.Signature({alg:t});return s.init(e),s.updateHex(n),s.verify(r)},this.parseExt=function(e){var t,i,o;if(void 0===e){if(o=this.hex,3!==this.version)return-1;t=h(o,0,[0,7,0],"30"),i=n(o,t)}else{o=ie(e);var u=h(o,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=s(o,u))return void(this.aExtInfo=new Array);t=h(o,0,[0,3,0,1,0],"30"),i=n(o,t),this.hex=o}this.aExtInfo=new Array;for(var c=0;c<i.length;c++){var l={critical:!1},d=0;3===n(o,i[c]).length&&(l.critical=!0,d=1),l.oid=r.hextooidstr(a(o,i[c],[0],"06"));var f=h(o,i[c],[1+d]);l.vidx=p(o,f),this.aExtInfo.push(l)}},this.getExtInfo=function(e){var t=this.aExtInfo,r=e;if(e.match(/^[0-9.]+$/)||(r=i.asn1.x509.OID.name2oid(e)),""!==r)for(var n=0;n<t.length;n++)if(t[n].oid===r)return t[n]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("basicConstraints");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"basicConstraints"};if(t&&(i.critical=!0),"3000"===e)return i;if("30030101ff"===e)return i.cA=!0,i;if("30060101ff02"===e.substr(0,12)){var n=s(e,10),a=parseInt(n,16);return i.cA=!0,i.pathLen=a,i}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("keyUsage");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"keyUsage"};return t&&(i.critical=!0),i.names=this.getExtKeyUsageString(e).split(","),i},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var r="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(r=r.slice(-8)),10==e.length&&(r=r.slice(-16)),""==(r=r.replace(/0+$/,""))&&(r="0"),r},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),r=new Array,i=0;i<t.length;i++)"1"==t.substr(i,1)&&r.push(xe.KEYUSAGE_NAME[i]);return r.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("subjectKeyIdentifier");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"subjectKeyIdentifier"};t&&(i.critical=!0);var n=s(e,0);return i.kid={hex:n},i},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("authorityKeyIdentifier");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"authorityKeyIdentifier"};t&&(i.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++){var c=e.substr(a[u],2);if("80"===c&&(i.kid={hex:s(e,a[u])}),"a1"===c){var l=o(e,a[u]),h=this.getGeneralNames(l);i.issuer=h[0].dn}"82"===c&&(i.sn={hex:s(e,a[u])})}return i},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("extKeyUsage");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"extKeyUsage",array:[]};t&&(i.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++)i.array.push(A(s(e,a[u])));return i},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,r=o(this.hex,e.vidx);if(""===r)return t;for(var i=n(r,0),a=0;a<i.length;a++)t.push(A(s(r,i[a])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("subjectAltName");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"subjectAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("issuerAltName");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"issuerAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getGeneralNames=function(e){for(var t=n(e,0),r=[],i=0;i<t.length;i++){var s=this.getGeneralName(o(e,t[i]));void 0!==s&&r.push(s)}return r},this.getGeneralName=function(e){var t=e.substr(0,2),r=s(e,0),i=ee(r);return"81"==t?{rfc822:i}:"82"==t?{dns:i}:"86"==t?{uri:i}:"87"==t?{ip:se(r)}:"a4"==t?{dn:this.getX500Name(r)}:void 0},this.getExtSubjectAltName2=function(){var e,t,r,i=this.getExtInfo("subjectAltName");if(void 0===i)return i;for(var a=new Array,u=o(this.hex,i.vidx),c=n(u,0),l=0;l<c.length;l++)r=u.substr(c[l],2),e=s(u,c[l]),"81"===r&&(t=$(e),a.push(["MAIL",t])),"82"===r&&(t=$(e),a.push(["DNS",t])),"84"===r&&(t=xe.hex2dn(e,0),a.push(["DN",t])),"86"===r&&(t=$(e),a.push(["URI",t])),"87"===r&&(t=se(e),a.push(["IP",t]));return a},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("cRLDistributionPoints");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"cRLDistributionPoints",array:[]};t&&(i.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]);i.array.push(this.getDistributionPoint(u))}return i},this.getDistributionPoint=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=e.substr(r[i],2),a=o(e,r[i]);"a0"==s&&(t.dpname=this.getDistributionPointName(a))}return t},this.getDistributionPointName=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=e.substr(r[i],2),a=o(e,r[i]);"a0"==s&&(t.full=this.getGeneralNames(a))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,r=n(this.hex,e.vidx),i=0;i<r.length;i++)try{var s=$(a(this.hex,r[i],[0,0,0],"86"));t.push(s)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},r=n(this.hex,e.vidx),i=0;i<r.length;i++){var s=a(this.hex,r[i],[0],"06"),o=a(this.hex,r[i],[1],"86");"2b06010505073001"===s&&t.ocsp.push($(o)),"2b06010505073002"===s&&t.caissuer.push($(o))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("authorityInfoAccess");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"authorityInfoAccess",array:[]};t&&(i.critical=!0);for(var s=n(e,0),c=0;c<s.length;c++){var l=u(e,s[c],[0],"06"),h=$(a(e,s[c],[1],"86"));if("2b06010505073001"==l)i.array.push({ocsp:h});else{if("2b06010505073002"!=l)throw new Error("unknown method: "+l);i.array.push({caissuer:h})}}return i},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("certificatePolicies");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"certificatePolicies",array:[]};t&&(i.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]),c=this.getPolicyInformation(u);i.array.push(c)}return i},this.getPolicyInformation=function(e){var t={},r=a(e,0,[0],"06");t.policyoid=A(r);var i=d(e,0,[1],"30");if(-1!=i){t.array=[];for(var s=n(e,i),u=0;u<s.length;u++){var c=o(e,s[u]),l=this.getPolicyQualifierInfo(c);t.array.push(l)}}return t},this.getPolicyQualifierInfo=function(e){var t={},r=a(e,0,[0],"06");if("2b06010505070201"===r){var i=u(e,0,[1],"16");t.cps=ee(i)}else if("2b06010505070202"===r){var n=c(e,0,[1],"30");t.unotice=this.getUserNotice(n)}return t},this.getUserNotice=function(e){for(var t={},r=n(e,0),i=0;i<r.length;i++){var s=o(e,r[i]);"30"!=s.substr(0,2)&&(t.exptext=this.getDisplayText(s))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=ee(s(e,0)),t},this.getExtCRLNumber=function(e,t){var r={extname:"cRLNumber"};if(t&&(r.critical=!0),"02"==e.substr(0,2))return r.num={hex:s(e,0)},r;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var r={extname:"cRLReason"};if(t&&(r.critical=!0),"0a"==e.substr(0,2))return r.code=parseInt(s(e,0),16),r;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var r={extname:"ocspNonce"};t&&(r.critical=!0);var i=s(e,0);return r.hex=i,r},this.getExtOcspNoCheck=function(e,t){var r={extname:"ocspNoCheck"};return t&&(r.critical=!0),r},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var r=this.getExtInfo("adobeTimeStamp");if(void 0===r)return;e=o(this.hex,r.vidx),t=r.critical}var i={extname:"adobeTimeStamp"};t&&(i.critical=!0);var s=n(e,0);if(s.length>1){var a=o(e,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(e,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(e){for(var t=null,r=[],n=0;n<e.length;n++)for(var s=e[n],o=0;o<s.length;o++)r.push(s[o]);for(n=0;n<r.length;n++){var a=r[n],u=a.ds,c=a.value,l=a.type;if("prn"!=u&&"utf8"!=u&&"ia5"!=u)return"mixed";if("ia5"==u){if("CN"!=l)return"mixed";if(i.lang.String.isMail(c))continue;return"mixed"}if("C"==l){if("prn"==u)continue;return"mixed"}if(null==t)t=u;else if(t!==u)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],r=n(e,0),i=0;i<r.length;i++)t.push(this.getRDN(o(e,r[i])));return t},this.getRDN=function(e){for(var t=[],r=n(e,0),i=0;i<r.length;i++)t.push(this.getAttrTypeAndValue(o(e,r[i])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},r=n(e,0),s=a(e,r[0],[],"06"),o=a(e,r[1],[]),u=i.asn1.ASN1Util.oidHexToInt(s);return t.type=i.asn1.x509.OID.oid2atype(u),t.ds=this.HEX2STAG[e.substr(r[1],2)],"bmp"!=t.ds?t.value=$(o):t.value=oe(o),t},this.readCertPEM=function(e){this.readCertHex(g(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{h(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=re(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&-1!=d(this.hex,0,[0,"[3]"])&&(e=l(this.hex,0,[0,"[3]",0],"30"));for(var t=[],r=n(e,0),i=0;i<r.length;i++){var s=o(e,r[i]),a=this.getExtParam(s);null!=a&&t.push(a)}return t},this.getExtParam=function(e){var t=n(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var r=M(a(e,0,[0],"06")),i=!1;3==t&&"0101ff"==c(e,0,[1])&&(i=!0);var s=c(e,0,[t-1,0]),o=void 0;if("2.5.29.14"==r?o=this.getExtSubjectKeyIdentifier(s,i):"2.5.29.15"==r?o=this.getExtKeyUsage(s,i):"2.5.29.17"==r?o=this.getExtSubjectAltName(s,i):"2.5.29.18"==r?o=this.getExtIssuerAltName(s,i):"2.5.29.19"==r?o=this.getExtBasicConstraints(s,i):"2.5.29.31"==r?o=this.getExtCRLDistributionPoints(s,i):"2.5.29.32"==r?o=this.getExtCertificatePolicies(s,i):"2.5.29.35"==r?o=this.getExtAuthorityKeyIdentifier(s,i):"2.5.29.37"==r?o=this.getExtExtKeyUsage(s,i):"1.3.6.1.5.5.7.1.1"==r?o=this.getExtAuthorityInfoAccess(s,i):"2.5.29.20"==r?o=this.getExtCRLNumber(s,i):"2.5.29.21"==r?o=this.getExtCRLReason(s,i):"1.3.6.1.5.5.7.48.1.2"==r?o=this.getExtOcspNonce(s,i):"1.3.6.1.5.5.7.48.1.5"==r?o=this.getExtOcspNoCheck(s,i):"1.2.840.113583.1.1.9.1"==r&&(o=this.getExtAdobeTimeStamp(s,i)),null!=o)return o;var u={extname:r,extn:s};return i&&(u.critical=!0),u},this.findExt=function(e,t){for(var r=0;r<e.length;r++)if(e[r].extname==t)return e[r];return null},this.updateExtCDPFullURI=function(e,t){var r=this.findExt(e,"cRLDistributionPoints");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)if(null!=i[n].dpname&&null!=i[n].dpname.full)for(var s=i[n].dpname.full,o=0;o<s.length;o++){var a=s[n];null!=a.uri&&(a.uri=t)}},this.updateExtAIAOCSP=function(e,t){var r=this.findExt(e,"authorityInfoAccess");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)null!=i[n].ocsp&&(i[n].ocsp=t)},this.updateExtAIACAIssuer=function(e,t){var r=this.findExt(e,"authorityInfoAccess");if(null!=r&&null!=r.array)for(var i=r.array,n=0;n<i.length;n++)null!=i[n].caissuer&&(i[n].caissuer=t)},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,r,n,s=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];if(t+=" policy oid: "+n.policyoid+"\n",void 0!==n.array)for(var s=0;s<n.array.length;s++){var o=n.array[s];void 0!==o.cps&&(t+=" cps: "+o.cps+"\n")}}return t},o=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];try{void 0!==n.dpname.full[0].uri&&(t+=" "+n.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==n.dname.full[0].dn.hex&&(t+=" "+xe.hex2dn(n.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},a=function(e){for(var t="",r=e.array,i=0;i<r.length;i++){var n=r[i];void 0!==n.caissuer&&(t+=" caissuer: "+n.caissuer+"\n"),void 0!==n.ocsp&&(t+=" ocsp: "+n.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+ce(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+ce(t.e.toString(16))+"\n"),null!=(r=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var u=0;u<r.length;u++){var c=r[u],l=i.asn1.x509.OID.oid2name(c.oid);""===l&&(l=c.oid);var h="";if(!0===c.critical&&(h="CRITICAL"),e+=" "+l+" "+h+":\n","basicConstraints"===l){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("keyUsage"===l)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===l)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===l){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(e+=" kid="+p.kid.hex+"\n")}else"extKeyUsage"===l?e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n":"subjectAltName"===l?e+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,"")+"\n"):"cRLDistributionPoints"===l?e+=o(this.getExtCRLDistributionPoints()):"authorityInfoAccess"===l?e+=a(this.getExtAuthorityInfoAccess()):"certificatePolicies"===l&&(e+=s(this.getExtCertificatePolicies()))}}return(e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n")+"signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):i.lang.String.isHex(e)&&this.readCertHex(e))}function Ee(e){return s.SHA256(e).toString()}Ne.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var r=parseInt(e.substr(t+3,1));return 0==r?-1:0<r&&r<10?r+1:-2},Ne.getL=function(e,t){var r=Ne.getLblen(e,t);return r<1?"":e.substr(t+2,2*r)},Ne.getVblen=function(e,t){var r;return""==(r=Ne.getL(e,t))?-1:("8"===r.substr(0,1)?new o(r.substr(2),16):new o(r,16)).intValue()},Ne.getVidx=function(e,t){var r=Ne.getLblen(e,t);return r<0?r:t+2*(r+1)},Ne.getV=function(e,t){var r=Ne.getVidx(e,t),i=Ne.getVblen(e,t);return e.substr(r,2*i)},Ne.getTLV=function(e,t){return e.substr(t,2)+Ne.getL(e,t)+Ne.getV(e,t)},Ne.getTLVblen=function(e,t){return 2+2*Ne.getLblen(e,t)+2*Ne.getVblen(e,t)},Ne.getNextSiblingIdx=function(e,t){return Ne.getVidx(e,t)+2*Ne.getVblen(e,t)},Ne.getChildIdx=function(e,t){var r,i,n,s=Ne,o=[];r=s.getVidx(e,t),i=2*s.getVblen(e,t),"03"==e.substr(t,2)&&(r+=2,i-=2),n=0;for(var a=r;n<=i;){var u=s.getTLVblen(e,a);if((n+=u)<=i&&o.push(a),a+=u,n>=i)break}return o},Ne.getNthChildIdx=function(e,t,r){return Ne.getChildIdx(e,t)[r]},Ne.getIdxbyList=function(e,t,r,i){var n,s,o=Ne;return 0==r.length?void 0!==i&&e.substr(t,2)!==i?-1:t:(n=r.shift())>=(s=o.getChildIdx(e,t)).length?-1:o.getIdxbyList(e,s[n],r,i)},Ne.getIdxbyListEx=function(e,t,r,i){var n,s,o=Ne;if(0==r.length)return void 0!==i&&e.substr(t,2)!==i?-1:t;n=r.shift(),s=o.getChildIdx(e,t);for(var a=0,u=0;u<s.length;u++){var c=e.substr(s[u],2);if("number"==typeof n&&!o.isContextTag(c)&&a==n||"string"==typeof n&&o.isContextTag(c,n))return o.getIdxbyListEx(e,s[u],r,i);o.isContextTag(c)||a++}return-1},Ne.getTLVbyList=function(e,t,r,i){var n=Ne,s=n.getIdxbyList(e,t,r,i);return-1==s||s>=e.length?null:n.getTLV(e,s)},Ne.getTLVbyListEx=function(e,t,r,i){var n=Ne,s=n.getIdxbyListEx(e,t,r,i);return-1==s?null:n.getTLV(e,s)},Ne.getVbyList=function(e,t,r,i,n){var s,o,a=Ne;return-1==(s=a.getIdxbyList(e,t,r,i))||s>=e.length?null:(o=a.getV(e,s),!0===n&&(o=o.substr(2)),o)},Ne.getVbyListEx=function(e,t,r,i,n){var s,o,a=Ne;return-1==(s=a.getIdxbyListEx(e,t,r,i))?null:(o=a.getV(e,s),"03"==e.substr(s,2)&&!1!==n&&(o=o.substr(2)),o)},Ne.getInt=function(e,t,r){null==r&&(r=-1);try{var i=e.substr(t,2);if("02"!=i&&"03"!=i)return r;var n=Ne.getV(e,t);return"02"==i?parseInt(n,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var r=parseInt(t,16),i=e.substr(2),n=parseInt(i,16).toString(2);return"0"==n&&(n="00000000"),n=n.slice(0,0-r),parseInt(n,2)}catch(e){return-1}}(n)}catch(e){return r}},Ne.getOID=function(e,t,r){null==r&&(r=null);try{return"06"!=e.substr(t,2)?r:function(e){if(!ue(e))return null;try{var t=[],r=e.substr(0,2),i=parseInt(r,16);t[0]=new String(Math.floor(i/40)),t[1]=new String(i%40);for(var n=e.substr(2),s=[],o=0;o<n.length/2;o++)s.push(parseInt(n.substr(2*o,2),16));var a=[],u="";for(o=0;o<s.length;o++)128&s[o]?u+=le((127&s[o]).toString(2),7):(u+=le((127&s[o]).toString(2),7),a.push(new String(parseInt(u,2))),u="");var c=t.join(".");return a.length>0&&(c=c+"."+a.join(".")),c}catch(e){return null}}(Ne.getV(e,t))}catch(e){return r}},Ne.getOIDName=function(e,t,r){null==r&&(r=null);try{var n=Ne.getOID(e,t,r);if(n==r)return r;var s=i.asn1.x509.OID.oid2name(n);return""==s?n:s}catch(e){return r}},Ne.getString=function(e,t,r){null==r&&(r=null);try{return ee(Ne.getV(e,t))}catch(e){return r}},Ne.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},r=[],i=e.substr(0,2),n=parseInt(i,16);r[0]=new String(Math.floor(n/40)),r[1]=new String(n%40);for(var s=e.substr(2),o=[],a=0;a<s.length/2;a++)o.push(parseInt(s.substr(2*a,2),16));var u=[],c="";for(a=0;a<o.length;a++)128&o[a]?c+=t((127&o[a]).toString(2),7):(c+=t((127&o[a]).toString(2),7),u.push(new String(parseInt(c,2))),c="");var l=r.join(".");return u.length>0&&(l=l+"."+u.join(".")),l},Ne.dump=function(e,t,r,n){var s=Ne,o=s.getV,a=s.dump,u=s.getChildIdx,c=e;e instanceof i.asn1.ASN1Object&&(c=e.getEncodedHex());var l=function(e,t){return e.length<=2*t?e:e.substr(0,t)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-t,t)};void 0===t&&(t={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,d=t.ommit_long_octet;if("01"==(h=c.substr(r,2)))return"00"==(p=o(c,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+l(p=o(c,r),d)+"\n";if("03"==h){var p=o(c,r);return s.isASN1HEX(p.substr(2))?(D=n+"BITSTRING, encapsulates\n")+a(p.substr(2),t,0,n+" "):n+"BITSTRING "+l(p,d)+"\n"}if("04"==h)return p=o(c,r),s.isASN1HEX(p)?(D=n+"OCTETSTRING, encapsulates\n")+a(p,t,0,n+" "):n+"OCTETSTRING "+l(p,d)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var f=o(c,r),A=i.asn1.ASN1Util.oidHexToInt(f),M=i.asn1.x509.OID.oid2name(A),g=A.replace(/\./g," ");return""!=M?n+"ObjectIdentifier "+M+" ("+g+")\n":n+"ObjectIdentifier ("+g+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(c,r))+"\n";if("0c"==h)return n+"UTF8String '"+$(o(c,r))+"'\n";if("13"==h)return n+"PrintableString '"+$(o(c,r))+"'\n";if("14"==h)return n+"TeletexString '"+$(o(c,r))+"'\n";if("16"==h)return n+"IA5String '"+$(o(c,r))+"'\n";if("17"==h)return n+"UTCTime "+$(o(c,r))+"\n";if("18"==h)return n+"GeneralizedTime "+$(o(c,r))+"\n";if("1a"==h)return n+"VisualString '"+$(o(c,r))+"'\n";if("1e"==h)return n+"BMPString '"+oe(o(c,r))+"'\n";if("30"==h){if("3000"==c.substr(r,4))return n+"SEQUENCE {}\n";D=n+"SEQUENCE\n";var y=t;if((2==(N=u(c,r)).length||3==N.length)&&"06"==c.substr(N[0],2)&&"04"==c.substr(N[N.length-1],2)){M=s.oidname(o(c,N[0]));var v=JSON.parse(JSON.stringify(t));v.x509ExtName=M,y=v}for(var m=0;m<N.length;m++)D+=a(c,y,N[m],n+" ");return D}if("31"==h){D=n+"SET\n";var N=u(c,r);for(m=0;m<N.length;m++)D+=a(c,t,N[m],n+" ");return D}if(0!=(128&(h=parseInt(h,16)))){var D,w=31&h;if(0!=(32&h)){for(D=n+"["+w+"]\n",N=u(c,r),m=0;m<N.length;m++)D+=a(c,t,N[m],n+" ");return D}return p=o(c,r),Ne.isASN1HEX(p)?(D=n+"["+w+"]\n")+a(p,t,0,n+" "):(("68747470"==p.substr(0,8)||"subjectAltName"===t.x509ExtName&&2==w)&&(p=$(p)),n+"["+w+"] "+p+"\n")}return n+"UNKNOWN("+h+") "+o(c,r)+"\n"},Ne.isContextTag=function(e,t){var r,i;e=e.toLowerCase();try{r=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&r);try{return null!=t.match(/^\[[0-9]+\]$/)&&!((i=parseInt(t.substr(1,t.length-1),10))>31)&&128==(192&r)&&(31&r)==i}catch(e){return!1}},Ne.isASN1HEX=function(e){var t=Ne;if(e.length%2==1)return!1;var r=t.getVblen(e,0),i=e.substr(0,2),n=t.getL(e,0);return e.length-i.length-n.length==2*r},Ne.checkStrictDER=function(e,t,r,n,s){var o=Ne;if(void 0===r){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!i.lang.String.isHex(e))throw new Error("not hex string");r=e.length,s=(n=e.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(e,t).length>2*s)throw new Error("L of TLV too long: idx="+t);var a=o.getVblen(e,t);if(a>n)throw new Error("value of L too long than hex: idx="+t);var u=o.getTLV(e,t),c=u.length-2-o.getL(e,t).length;if(c!==2*a)throw new Error("V string length and L's value not the same:"+c+"/"+2*a);if(0===t&&e.length!=u.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+u.length);var l=e.substr(t,2);if("02"===l){var h=o.getVidx(e,t);if("00"==e.substr(h,2)&&e.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(l,16)){for(var d=o.getVblen(e,t),p=0,f=o.getChildIdx(e,t),A=0;A<f.length;A++)p+=o.getTLV(e,f[A]).length,o.checkStrictDER(e,f[A],r,n,s);if(2*d!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*d+"!="+p)}},Ne.oidname=function(e){var t=i.asn1;i.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var r=t.x509.OID.oid2name(e);return""===r&&(r=e),r},void 0!==i.asn1&&i.asn1||(i.asn1={}),void 0!==i.asn1.x509&&i.asn1.x509||(i.asn1.x509={}),i.asn1.x509.Certificate=function(e){i.asn1.x509.Certificate.superclass.constructor.call(this);var t=i.asn1,r=t.DERBitString,n=t.DERSequence,s=t.x509,o=s.TBSCertificate,a=s.AlgorithmIdentifier;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.sigalg;null!=e.sigalg.name&&(t=e.sigalg.name);var r=e.tbsobj.getEncodedHex(),n=new i.crypto.Signature({alg:t});n.init(e.cakey),n.updateHex(r),e.sighex=n.sign()},this.getPEM=function(){return re(this.getEncodedHex(),"CERTIFICATE")},this.getEncodedHex=function(){var e=this.params;if(null!=e.tbsobj&&null!=e.tbsobj||(e.tbsobj=new o(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new a({name:e.sigalg})),t.push(new r({hex:"00"+e.sighex})),new n({array:t}).getEncodedHex()},null!=e&&(this.params=e)},he(i.asn1.x509.Certificate,i.asn1.ASN1Object),i.asn1.x509.TBSCertificate=function(e){i.asn1.x509.TBSCertificate.superclass.constructor.call(this);var t=i.asn1,r=t.x509,n=t.DERTaggedObject,s=t.DERInteger,o=t.DERSequence,a=r.AlgorithmIdentifier,u=r.Time,c=r.X500Name,l=r.Extensions,h=r.SubjectPublicKeyInfo;this.params=null,this.setByParam=function(e){this.params=e},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version||1!=t.version){var r=2;null!=t.version&&(r=t.version-1);var d=new n({obj:new s({int:r})});e.push(d)}return e.push(new s(t.serial)),e.push(new a({name:t.sigalg})),e.push(new c(t.issuer)),e.push(new o({array:[new u(t.notbefore),new u(t.notafter)]})),e.push(new c(t.subject)),e.push(new h(me.getKey(t.sbjpubkey))),void 0!==t.ext&&t.ext.length>0&&e.push(new n({tag:"a3",obj:new l(t.ext)})),new i.asn1.DERSequence({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.TBSCertificate,i.asn1.ASN1Object),i.asn1.x509.Extensions=function(e){i.asn1.x509.Extensions.superclass.constructor.call(this);var t=i.asn1,r=t.DERSequence,n=t.x509;this.aParam=[],this.setByParam=function(e){this.aParam=e},this.getEncodedHex=function(){for(var e=[],t=0;t<this.aParam.length;t++){var i=this.aParam[t],s=i.extname,o=null;if(null!=i.extn)o=new n.PrivateExtension(i);else if("subjectKeyIdentifier"==s)o=new n.SubjectKeyIdentifier(i);else if("keyUsage"==s)o=new n.KeyUsage(i);else if("subjectAltName"==s)o=new n.SubjectAltName(i);else if("issuerAltName"==s)o=new n.IssuerAltName(i);else if("basicConstraints"==s)o=new n.BasicConstraints(i);else if("cRLDistributionPoints"==s)o=new n.CRLDistributionPoints(i);else if("certificatePolicies"==s)o=new n.CertificatePolicies(i);else if("authorityKeyIdentifier"==s)o=new n.AuthorityKeyIdentifier(i);else if("extKeyUsage"==s)o=new n.ExtKeyUsage(i);else if("authorityInfoAccess"==s)o=new n.AuthorityInfoAccess(i);else if("cRLNumber"==s)o=new n.CRLNumber(i);else if("cRLReason"==s)o=new n.CRLReason(i);else if("ocspNonce"==s)o=new n.OCSPNonce(i);else if("ocspNoCheck"==s)o=new n.OCSPNoCheck(i);else if("adobeTimeStamp"==s)o=new n.AdobeTimeStamp(i);else{if("subjectDirectoryAttributes"!=s)throw new Error("extension not supported:"+JSON.stringify(i));o=new n.SubjectDirectoryAttributes(i)}null!=o&&e.push(o)}return new r({array:e}).getEncodedHex()},null!=e&&this.setByParam(e)},he(i.asn1.x509.Extensions,i.asn1.ASN1Object),i.asn1.x509.Extension=function(e){i.asn1.x509.Extension.superclass.constructor.call(this);var t=i.asn1,r=t.DERObjectIdentifier,n=t.DEROctetString,s=(t.DERBitString,t.DERBoolean),o=t.DERSequence;this.getEncodedHex=function(){var e=new r({oid:this.oid}),t=new n({hex:this.getExtnValueHex()}),i=new Array;return i.push(e),this.critical&&i.push(new s),i.push(t),new o({array:i}).getEncodedHex()},this.critical=!1,void 0!==e&&void 0!==e.critical&&(this.critical=e.critical)},he(i.asn1.x509.Extension,i.asn1.ASN1Object),i.asn1.x509.KeyUsage=function(e){i.asn1.x509.KeyUsage.superclass.constructor.call(this,e);var t=xe.KEYUSAGE_NAME;if(this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.15",void 0!==e&&(void 0!==e.bin&&(this.asn1ExtnValue=new i.asn1.DERBitString(e)),void 0!==e.names&&void 0!==e.names.length)){for(var r=e.names,n="000000000",s=0;s<r.length;s++)for(var o=0;o<t.length;o++)r[s]===t[o]&&(n=n.substring(0,o)+"1"+n.substring(o+1,n.length));this.asn1ExtnValue=new i.asn1.DERBitString({bin:n})}},he(i.asn1.x509.KeyUsage,i.asn1.x509.Extension),i.asn1.x509.BasicConstraints=function(e){i.asn1.x509.BasicConstraints.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERBoolean,n=t.DERInteger,s=t.DERSequence;this.getExtnValueHex=function(){var e=new Array;this.cA&&e.push(new r),this.pathLen>-1&&e.push(new n({int:this.pathLen}));var t=new s({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.19",this.cA=!1,this.pathLen=-1,void 0!==e&&(void 0!==e.cA&&(this.cA=e.cA),void 0!==e.pathLen&&(this.pathLen=e.pathLen))},he(i.asn1.x509.BasicConstraints,i.asn1.x509.Extension),i.asn1.x509.CRLDistributionPoints=function(e){i.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,e);var t=i.asn1,r=t.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.setByDPArray=function(e){for(var n=[],s=0;s<e.length;s++)if(e[s]instanceof i.asn1.ASN1Object)n.push(e[s]);else{var o=new r.DistributionPoint(e[s]);n.push(o)}this.asn1ExtnValue=new t.DERSequence({array:n})},this.setByOneURI=function(e){var t=new r.DistributionPoint({fulluri:e});this.setByDPArray([t])},this.oid="2.5.29.31",void 0!==e&&(void 0!==e.array?this.setByDPArray(e.array):void 0!==e.uri&&this.setByOneURI(e.uri))},he(i.asn1.x509.CRLDistributionPoints,i.asn1.x509.Extension),i.asn1.x509.DistributionPoint=function(e){i.asn1.x509.DistributionPoint.superclass.constructor.call(this);var t=i.asn1,r=t.x509.DistributionPointName;this.getEncodedHex=function(){var e=new t.DERSequence;if(null!=this.asn1DP){var r=new t.DERTaggedObject({explicit:!0,tag:"a0",obj:this.asn1DP});e.appendASN1Object(r)}return this.hTLV=e.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.dpobj?this.asn1DP=e.dpobj:void 0!==e.dpname?this.asn1DP=new r(e.dpname):void 0!==e.fulluri&&(this.asn1DP=new r({full:[{uri:e.fulluri}]})))},he(i.asn1.x509.DistributionPoint,i.asn1.ASN1Object),i.asn1.x509.DistributionPointName=function(e){i.asn1.x509.DistributionPointName.superclass.constructor.call(this);var t=i.asn1,r=t.DERTaggedObject;if(this.getEncodedHex=function(){if("full"!=this.type)throw new Error("currently type shall be 'full': "+this.type);return this.asn1Obj=new r({explicit:!1,tag:this.tag,obj:this.asn1V}),this.hTLV=this.asn1Obj.getEncodedHex(),this.hTLV},void 0!==e)if(t.x509.GeneralNames.prototype.isPrototypeOf(e))this.type="full",this.tag="a0",this.asn1V=e;else{if(void 0===e.full)throw new Error("This class supports GeneralNames only as argument");this.type="full",this.tag="a0",this.asn1V=new t.x509.GeneralNames(e.full)}},he(i.asn1.x509.DistributionPointName,i.asn1.ASN1Object),i.asn1.x509.CertificatePolicies=function(e){i.asn1.x509.CertificatePolicies.superclass.constructor.call(this,e);var t=i.asn1,r=t.x509,n=t.DERSequence,s=r.PolicyInformation;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++)e.push(new s(this.params.array[t]));var r=new n({array:e});return this.asn1ExtnValue=r,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.32",void 0!==e&&(this.params=e)},he(i.asn1.x509.CertificatePolicies,i.asn1.x509.Extension),i.asn1.x509.PolicyInformation=function(e){i.asn1.x509.PolicyInformation.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.DERObjectIdentifier,s=t.x509.PolicyQualifierInfo;this.params=null,this.getEncodedHex=function(){if(void 0===this.params.policyoid&&void 0===this.params.array)throw new Error("parameter oid and array missing");var e=[new n(this.params.policyoid)];if(void 0!==this.params.array){for(var t=[],i=0;i<this.params.array.length;i++)t.push(new s(this.params.array[i]));t.length>0&&e.push(new r({array:t}))}return new r({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.PolicyInformation,i.asn1.ASN1Object),i.asn1.x509.PolicyQualifierInfo=function(e){i.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.DERIA5String,s=t.DERObjectIdentifier,o=t.x509.UserNotice;this.params=null,this.getEncodedHex=function(){return void 0!==this.params.cps?new r({array:[new s({oid:"1.3.6.1.5.5.7.2.1"}),new n({str:this.params.cps})]}).getEncodedHex():null!=this.params.unotice?new r({array:[new s({oid:"1.3.6.1.5.5.7.2.2"}),new o(this.params.unotice)]}).getEncodedHex():void 0},void 0!==e&&(this.params=e)},he(i.asn1.x509.PolicyQualifierInfo,i.asn1.ASN1Object),i.asn1.x509.UserNotice=function(e){i.asn1.x509.UserNotice.superclass.constructor.call(this,e);var t=i.asn1.DERSequence,r=(i.asn1.DERInteger,i.asn1.x509.DisplayText),n=i.asn1.x509.NoticeReference;this.params=null,this.getEncodedHex=function(){var e=[];return void 0!==this.params.noticeref&&e.push(new n(this.params.noticeref)),void 0!==this.params.exptext&&e.push(new r(this.params.exptext)),new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.UserNotice,i.asn1.ASN1Object),i.asn1.x509.NoticeReference=function(e){i.asn1.x509.NoticeReference.superclass.constructor.call(this,e);var t=i.asn1.DERSequence,r=i.asn1.DERInteger,n=i.asn1.x509.DisplayText;this.params=null,this.getEncodedHex=function(){var e=[];if(void 0!==this.params.org&&e.push(new n(this.params.org)),void 0!==this.params.noticenum){for(var i=[],s=this.params.noticenum,o=0;o<s.length;o++)i.push(new r(s[o]));e.push(new t({array:i}))}if(0==e.length)throw new Error("parameter is empty");return new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},he(i.asn1.x509.NoticeReference,i.asn1.ASN1Object),i.asn1.x509.DisplayText=function(e){i.asn1.x509.DisplayText.superclass.constructor.call(this,e),this.hT="0c",void 0!==e&&("ia5"===e.type?this.hT="16":"vis"===e.type?this.hT="1a":"bmp"===e.type&&(this.hT="1e"))},he(i.asn1.x509.DisplayText,i.asn1.DERAbstractString),i.asn1.x509.ExtKeyUsage=function(e){i.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,e);var t=i.asn1;this.setPurposeArray=function(e){this.asn1ExtnValue=new t.DERSequence;for(var r=0;r<e.length;r++){var i=new t.DERObjectIdentifier(e[r]);this.asn1ExtnValue.appendASN1Object(i)}},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.37",void 0!==e&&void 0!==e.array&&this.setPurposeArray(e.array)},he(i.asn1.x509.ExtKeyUsage,i.asn1.x509.Extension),i.asn1.x509.AuthorityKeyIdentifier=function(e){i.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,e);var t=i,r=t.asn1,n=r.DERTaggedObject,s=r.x509.GeneralNames;t.crypto.Util.isKey,this.asn1KID=null,this.asn1CertIssuer=null,this.asn1CertSN=null,this.getExtnValueHex=function(){var e=new Array;this.asn1KID&&e.push(new n({explicit:!1,tag:"80",obj:this.asn1KID})),this.asn1CertIssuer&&e.push(new n({explicit:!1,tag:"a1",obj:new s([{dn:this.asn1CertIssuer}])})),this.asn1CertSN&&e.push(new n({explicit:!1,tag:"82",obj:this.asn1CertSN}));var t=new r.DERSequence({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new i.asn1.DEROctetString(e);else if("object"==typeof e&&i.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN ")){var t=e;"string"==typeof e&&(t=me.getKey(e));var r=me.getKeyID(t);this.asn1KID=new i.asn1.DEROctetString({hex:r})}},this.setCertIssuerByParam=function(e){void 0!==e.str||void 0!==e.ldapstr||void 0!==e.hex||void 0!==e.certsubject||void 0!==e.certissuer?this.asn1CertIssuer=new i.asn1.x509.X500Name(e):"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&-1!=e.indexOf("CERTIFICATE")&&(this.asn1CertIssuer=new i.asn1.x509.X500Name({certissuer:e}))},this.setCertSNByParam=function(e){if(void 0!==e.str||void 0!==e.bigint||void 0!==e.hex)this.asn1CertSN=new i.asn1.DERInteger(e);else if("string"==typeof e&&-1!=e.indexOf("BEGIN ")&&e.indexOf("CERTIFICATE")){var t=new xe;t.readCertPEM(e);var r=t.getSerialNumberHex();this.asn1CertSN=new i.asn1.DERInteger({hex:r})}},this.oid="2.5.29.35",void 0!==e&&(void 0!==e.kid&&this.setKIDByParam(e.kid),void 0!==e.issuer&&this.setCertIssuerByParam(e.issuer),void 0!==e.sn&&this.setCertSNByParam(e.sn),void 0!==e.issuersn&&"string"==typeof e.issuersn&&-1!=e.issuersn.indexOf("BEGIN ")&&e.issuersn.indexOf("CERTIFICATE")&&(this.setCertSNByParam(e.issuersn),this.setCertIssuerByParam(e.issuersn)))},he(i.asn1.x509.AuthorityKeyIdentifier,i.asn1.x509.Extension),i.asn1.x509.SubjectKeyIdentifier=function(e){i.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,e);var t=i.asn1.DEROctetString;this.asn1KID=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=this.asn1KID,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new t(e);else if("object"==typeof e&&i.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN")){var r=e;"string"==typeof e&&(r=me.getKey(e));var n=me.getKeyID(r);this.asn1KID=new i.asn1.DEROctetString({hex:n})}},this.oid="2.5.29.14",void 0!==e&&void 0!==e.kid&&this.setKIDByParam(e.kid)},he(i.asn1.x509.SubjectKeyIdentifier,i.asn1.x509.Extension),i.asn1.x509.AuthorityInfoAccess=function(e){i.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,e),this.setAccessDescriptionArray=function(e){for(var t=new Array,r=i.asn1,n=r.DERSequence,s=r.DERObjectIdentifier,o=r.x509.GeneralName,a=0;a<e.length;a++){var u,c=e[a];if(void 0!==c.ocsp)u=new n({array:[new s({oid:"1.3.6.1.5.5.7.48.1"}),new o({uri:c.ocsp})]});else{if(void 0===c.caissuer)throw new Error("unknown AccessMethod parameter: "+JSON.stringify(c));u=new n({array:[new s({oid:"1.3.6.1.5.5.7.48.2"}),new o({uri:c.caissuer})]})}t.push(u)}this.asn1ExtnValue=new n({array:t})},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.1.1",void 0!==e&&void 0!==e.array&&this.setAccessDescriptionArray(e.array)},he(i.asn1.x509.AuthorityInfoAccess,i.asn1.x509.Extension),i.asn1.x509.SubjectAltName=function(e){i.asn1.x509.SubjectAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new i.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.17",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},he(i.asn1.x509.SubjectAltName,i.asn1.x509.Extension),i.asn1.x509.IssuerAltName=function(e){i.asn1.x509.IssuerAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new i.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.18",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},he(i.asn1.x509.IssuerAltName,i.asn1.x509.Extension),i.asn1.x509.SubjectDirectoryAttributes=function(e){i.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERSequence,n=t.ASN1Util.newObject,s=t.x509.OID.name2oid;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++){var i=this.params.array[t],o={seq:[{oid:"1.2.3.4"},{set:[{utf8str:"DE"}]}]};if("dateOfBirth"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={gentime:i.str};else if("placeOfBirth"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={utf8str:i.str};else if("gender"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str};else if("countryOfCitizenship"==i.attr)o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str};else{if("countryOfResidence"!=i.attr)throw new Error("unsupported attribute: "+i.attr);o.seq[0].oid=s(i.attr),o.seq[1].set[0]={prnstr:i.str}}e.push(new n(o))}var a=new r({array:e});return this.asn1ExtnValue=a,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.9",void 0!==e&&(this.params=e)},he(i.asn1.x509.SubjectDirectoryAttributes,i.asn1.x509.Extension),i.asn1.x509.PrivateExtension=function(e){i.asn1.x509.PrivateExtension.superclass.constructor.call(this,e);var t=i,r=t.lang.String.isHex,n=t.asn1,s=n.x509.OID.name2oid,o=n.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.oid=s(e.extname),this.params=e},this.getExtnValueHex=function(){if(null==this.params.extname||null==this.params.extn)throw new Error("extname or extnhex not specified");var e=this.params.extn;if("string"==typeof e&&r(e))return e;if("object"==typeof e)try{return o(e).getEncodedHex()}catch(e){}throw new Error("unsupported extn value")},null!=e&&this.setByParam(e)},he(i.asn1.x509.PrivateExtension,i.asn1.x509.Extension),i.asn1.x509.CRL=function(e){i.asn1.x509.CRL.superclass.constructor.call(this);var t=i.asn1,r=t.DERSequence,n=t.DERBitString,s=t.x509,o=s.AlgorithmIdentifier,a=s.TBSCertList;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=new a(this.params).getEncodedHex(),t=new i.crypto.Signature({alg:this.params.sigalg});t.init(this.params.cakey),t.updateHex(e);var r=t.sign();this.params.sighex=r},this.getPEM=function(){return re(this.getEncodedHex(),"X509 CRL")},this.getEncodedHex=function(){var e=this.params;if(null==e.tbsobj&&(e.tbsobj=new a(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new o({name:e.sigalg})),t.push(new n({hex:"00"+e.sighex})),new r({array:t}).getEncodedHex()},null!=e&&(this.params=e)},he(i.asn1.x509.CRL,i.asn1.ASN1Object),i.asn1.x509.TBSCertList=function(e){i.asn1.x509.TBSCertList.superclass.constructor.call(this);var t=i.asn1,r=t.DERInteger,n=t.DERSequence,s=t.DERTaggedObject,o=(t.DERObjectIdentifier,t.x509),a=o.AlgorithmIdentifier,u=o.Time,c=o.Extensions,l=o.X500Name;this.params=null,this.setByParam=function(e){this.params=e},this.getRevCertSequence=function(){for(var e=[],t=this.params.revcert,i=0;i<t.length;i++){var s=[new r(t[i].sn),new u(t[i].date)];null!=t[i].ext&&s.push(new c(t[i].ext)),e.push(new n({array:s}))}return new n({array:e})},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version){var i=t.version-1,o=new r({int:i});e.push(o)}if(e.push(new a({name:t.sigalg})),e.push(new l(t.issuer)),e.push(new u(t.thisupdate)),null!=t.nextupdate&&e.push(new u(t.nextupdate)),null!=t.revcert&&e.push(this.getRevCertSequence()),null!=t.ext){var h=new c(t.ext);e.push(new s({tag:"a0",explicit:!0,obj:h}))}return new n({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.TBSCertList,i.asn1.ASN1Object),i.asn1.x509.CRLEntry=function(e){i.asn1.x509.CRLEntry.superclass.constructor.call(this);var t=i.asn1;this.setCertSerial=function(e){this.sn=new t.DERInteger(e)},this.setRevocationDate=function(e){this.time=new t.x509.Time(e)},this.getEncodedHex=function(){var e=new t.DERSequence({array:[this.sn,this.time]});return this.TLV=e.getEncodedHex(),this.TLV},void 0!==e&&(void 0!==e.time&&this.setRevocationDate(e.time),void 0!==e.sn&&this.setCertSerial(e.sn))},he(i.asn1.x509.CRLEntry,i.asn1.ASN1Object),i.asn1.x509.CRLNumber=function(e){i.asn1.x509.CRLNumber.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DERInteger(this.params.num),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.20",null!=e&&(this.params=e)},he(i.asn1.x509.CRLNumber,i.asn1.x509.Extension),i.asn1.x509.CRLReason=function(e){i.asn1.x509.CRLReason.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DEREnumerated(this.params.code),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.21",null!=e&&(this.params=e)},he(i.asn1.x509.CRLReason,i.asn1.x509.Extension),i.asn1.x509.OCSPNonce=function(e){i.asn1.x509.OCSPNonce.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DEROctetString(this.params),this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.2",null!=e&&(this.params=e)},he(i.asn1.x509.OCSPNonce,i.asn1.x509.Extension),i.asn1.x509.OCSPNoCheck=function(e){i.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new i.asn1.DERNull,this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.5",null!=e&&(this.params=e)},he(i.asn1.x509.OCSPNoCheck,i.asn1.x509.Extension),i.asn1.x509.AdobeTimeStamp=function(e){i.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,e);var t=i.asn1,r=t.DERInteger,n=t.DERBoolean,s=t.DERSequence,o=t.x509.GeneralName;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[new r(1)];return t.push(new o({uri:e.uri})),null!=e.reqauth&&t.push(new n(e.reqauth)),this.asn1ExtnValue=new s({array:t}),this.asn1ExtnValue.getEncodedHex()},this.oid="1.2.840.113583.1.1.9.1",void 0!==e&&this.setByParam(e)},he(i.asn1.x509.AdobeTimeStamp,i.asn1.x509.Extension),i.asn1.x509.X500Name=function(e){i.asn1.x509.X500Name.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=i.asn1,r=t.x509,n=r.RDN;this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var r=e.split("/");r.shift();for(var i=[],s=0;s<r.length;s++)if(r[s].match(/^[^=]+=.+$/))i.push(r[s]);else{var o=i.length-1;i[o]=i[o]+"/"+r[s]}for(s=0;s<i.length;s++)this.asn1Array.push(new n({str:i[s],rule:this.sRule}))},this.setByLdapString=function(e,t){void 0!==t&&(this.sRule=t);var i=r.X500Name.ldapToCompat(e);this.setByString(i,t)},this.setByObject=function(e,t){for(var r in void 0!==t&&(this.sRule=t),e)if(e.hasOwnProperty(r)){var i=new n({str:r+"="+e[r],rule:this.sRule});this.asn1Array?this.asn1Array.push(i):this.asn1Array=[i]}},this.setByParam=function(e){var t;void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.array?this.paramArray=e.array:void 0!==e.str?this.setByString(e.str):void 0!==e.ldapstr?this.setByLdapString(e.ldapstr):void 0!==e.hex?this.hTLV=e.hex:void 0!==e.certissuer?((t=new xe).readCertPEM(e.certissuer),this.hTLV=t.getIssuerHex()):void 0!==e.certsubject?((t=new xe).readCertPEM(e.certsubject),this.hTLV=t.getSubjectHex()):"object"==typeof e&&void 0===e.certsubject&&void 0===e.certissuer&&this.setByObject(e)},this.getEncodedHex=function(){if("string"==typeof this.hTLV)return this.hTLV;if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var r={array:this.paramArray[e]};"utf8"!=this.sRule&&(r.rule=this.sRule);var i=new n(r);this.asn1Array.push(i)}var s=new t.DERSequence({array:this.asn1Array});return this.hTLV=s.getEncodedHex(),this.hTLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.X500Name,i.asn1.ASN1Object),i.asn1.x509.X500Name.compatToLDAP=function(e){if("/"!==e.substr(0,1))throw"malformed input";var t=(e=e.substr(1)).split("/");return t.reverse(),(t=t.map((function(e){return e.replace(/,/,"\\,")}))).join(",")},i.asn1.x509.X500Name.onelineToLDAP=function(e){return i.asn1.x509.X500Name.compatToLDAP(e)},i.asn1.x509.X500Name.ldapToCompat=function(e){for(var t=e.split(","),r=!1,i=[],n=0;t.length>0;n++){var s=t.shift();if(!0===r){var o=(i.pop()+","+s).replace(/\\,/g,",");i.push(o),r=!1}else i.push(s);"\\"===s.substr(-1,1)&&(r=!0)}return(i=i.map((function(e){return e.replace("/","\\/")}))).reverse(),"/"+i.join("/")},i.asn1.x509.X500Name.ldapToOneline=function(e){return i.asn1.x509.X500Name.ldapToCompat(e)},i.asn1.x509.RDN=function(e){i.asn1.x509.RDN.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=i.asn1.x509.AttributeTypeAndValue;this.setByParam=function(e){void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.str&&this.addByMultiValuedString(e.str),void 0!==e.array&&(this.paramArray=e.array)},this.addByString=function(e){this.asn1Array.push(new i.asn1.x509.AttributeTypeAndValue({str:e,rule:this.sRule}))},this.addByMultiValuedString=function(e){for(var t=i.asn1.x509.RDN.parseString(e),r=0;r<t.length;r++)this.addByString(t[r])},this.getEncodedHex=function(){if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var r=this.paramArray[e];void 0!==r.rule&&"utf8"!=this.sRule&&(r.rule=this.sRule);var n=new t(r);this.asn1Array.push(n)}var s=new i.asn1.DERSet({array:this.asn1Array});return this.TLV=s.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.RDN,i.asn1.ASN1Object),i.asn1.x509.RDN.parseString=function(e){for(var t=e.split(/\+/),r=!1,i=[],n=0;t.length>0;n++){var s=t.shift();if(!0===r){var o=(i.pop()+"+"+s).replace(/\\\+/g,"+");i.push(o),r=!1}else i.push(s);"\\"===s.substr(-1,1)&&(r=!0)}var a=!1,u=[];for(n=0;i.length>0;n++){if(s=i.shift(),!0===a){var c=u.pop();s.match(/"$/)?(o=(c+"+"+s).replace(/^([^=]+)="(.*)"$/,"$1=$2"),u.push(o),a=!1):u.push(c+"+"+s)}else u.push(s);s.match(/^[^=]+="/)&&(a=!0)}return u},i.asn1.x509.AttributeTypeAndValue=function(e){i.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this),this.sRule="utf8",this.sType=null,this.sValue=null,this.dsType=null;var t=i,r=t.asn1,n=r.DERSequence,s=r.DERUTF8String,o=r.DERPrintableString,a=r.DERTeletexString,u=r.DERIA5String,c=r.DERVisibleString,l=r.DERBMPString,h=t.lang.String.isMail,d=t.lang.String.isPrintable;this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.ds&&(this.dsType=e.ds),void 0===e.value&&void 0!==e.str){var t=e.str.match(/^([^=]+)=(.+)$/);if(!t)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.sType=t[1],this.sValue=t[2]}else this.sType=e.type,this.sValue=e.value},this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var r=e.match(/^([^=]+)=(.+)$/);if(!r)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.setByAttrTypeAndValueStr(r[1],r[2])},this._getDsType=function(){var e=this.sType,t=this.sValue,r=this.sRule;return"prn"===r?"CN"==e&&h(t)?"ia5":d(t)?"prn":"utf8":"utf8"===r?"CN"==e&&h(t)?"ia5":"C"==e?"prn":"utf8":"utf8"},this.setByAttrTypeAndValueStr=function(e,t,r){void 0!==r&&(this.sRule=r),this.sType=e,this.sValue=t},this.getValueObj=function(e,t){if("utf8"==e)return new s({str:t});if("prn"==e)return new o({str:t});if("tel"==e)return new a({str:t});if("ia5"==e)return new u({str:t});if("vis"==e)return new c({str:t});if("bmp"==e)return new l({str:t});throw new Error("unsupported directory string type: type="+e+" value="+t)},this.getEncodedHex=function(){null==this.dsType&&(this.dsType=this._getDsType());var e=i.asn1.x509.OID.atype2obj(this.sType),t=this.getValueObj(this.dsType,this.sValue),r=new n({array:[e,t]});return this.TLV=r.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.AttributeTypeAndValue,i.asn1.ASN1Object),i.asn1.x509.SubjectPublicKeyInfo=function(e){i.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var t=i,r=t.asn1,n=r.DERInteger,s=r.DERBitString,o=r.DERObjectIdentifier,a=r.DERSequence,u=r.ASN1Util.newObject,c=r.x509.AlgorithmIdentifier,l=t.crypto;l.ECDSA,l.DSA,this.getASN1Object=function(){if(null==this.asn1AlgId||null==this.asn1SubjPKey)throw"algId and/or subjPubKey not set";return new a({array:[this.asn1AlgId,this.asn1SubjPKey]})},this.getEncodedHex=function(){var e=this.getASN1Object();return this.hTLV=e.getEncodedHex(),this.hTLV},this.setPubKey=function(e){try{if(e instanceof V){var t=u({seq:[{int:{bigint:e.n}},{int:{int:e.e}}]}).getEncodedHex();this.asn1AlgId=new c({name:"rsaEncryption"}),this.asn1SubjPKey=new s({hex:"00"+t})}}catch(e){}try{if(e instanceof i.crypto.ECDSA){var r=new o({name:e.curveName});this.asn1AlgId=new c({name:"ecPublicKey",asn1params:r}),this.asn1SubjPKey=new s({hex:"00"+e.pubKeyHex})}}catch(e){}try{if(e instanceof i.crypto.DSA){r=new u({seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}),this.asn1AlgId=new c({name:"dsa",asn1params:r});var a=new n({bigint:e.y});this.asn1SubjPKey=new s({hex:"00"+a.getEncodedHex()})}}catch(e){}},void 0!==e&&this.setPubKey(e)},he(i.asn1.x509.SubjectPublicKeyInfo,i.asn1.ASN1Object),i.asn1.x509.Time=function(e){i.asn1.x509.Time.superclass.constructor.call(this);var t=i.asn1,r=t.DERUTCTime,n=t.DERGeneralizedTime;this.setTimeParams=function(e){this.timeParams=e},this.getEncodedHex=function(){var e=null;return e=null!=this.timeParams?"utc"==this.type?new r(this.timeParams):new n(this.timeParams):"utc"==this.type?new r:new n,this.TLV=e.getEncodedHex(),this.TLV},this.type="utc",void 0!==e&&(void 0!==e.type?this.type=e.type:void 0!==e.str&&(e.str.match(/^[0-9]{12}Z$/)&&(this.type="utc"),e.str.match(/^[0-9]{14}Z$/)&&(this.type="gen")),this.timeParams=e)},he(i.asn1.x509.Time,i.asn1.ASN1Object),i.asn1.x509.AlgorithmIdentifier=function(e){i.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this),this.nameAlg=null,this.asn1Alg=null,this.asn1Params=null,this.paramEmpty=!1;var t=i.asn1,r=t.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;if(this.getEncodedHex=function(){if(null===this.nameAlg&&null===this.asn1Alg)throw new Error("algorithm not specified");if(null!==this.nameAlg){var e=null;for(var i in r)i===this.nameAlg&&(e=r[i]);if(null!==e)return this.hTLV=e,this.hTLV}null!==this.nameAlg&&null===this.asn1Alg&&(this.asn1Alg=t.x509.OID.name2obj(this.nameAlg));var n=[this.asn1Alg];null!==this.asn1Params&&n.push(this.asn1Params);var s=new t.DERSequence({array:n});return this.hTLV=s.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.name&&(this.nameAlg=e.name),void 0!==e.asn1params&&(this.asn1Params=e.asn1params),void 0!==e.paramempty&&(this.paramEmpty=e.paramempty)),null===this.asn1Params&&!1===this.paramEmpty&&null!==this.nameAlg){void 0!==this.nameAlg.name&&(this.nameAlg=this.nameAlg.name);var n=this.nameAlg.toLowerCase();"withdsa"!==n.substr(-7,7)&&"withecdsa"!==n.substr(-9,9)&&(this.asn1Params=new t.DERNull)}},he(i.asn1.x509.AlgorithmIdentifier,i.asn1.ASN1Object),i.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},i.asn1.x509.GeneralName=function(e){i.asn1.x509.GeneralName.superclass.constructor.call(this);var t={rfc822:"81",dns:"82",dn:"a4",uri:"86",ip:"87"},r=i.asn1,n=(r.DERSequence,r.DEROctetString),s=r.DERIA5String,o=r.DERTaggedObject,a=r.ASN1Object,u=r.x509.X500Name,c=ie;this.explicit=!1,this.setByParam=function(e){var r=null;if(void 0!==e){if(void 0!==e.rfc822&&(this.type="rfc822",r=new s({str:e[this.type]})),void 0!==e.dns&&(this.type="dns",r=new s({str:e[this.type]})),void 0!==e.uri&&(this.type="uri",r=new s({str:e[this.type]})),void 0!==e.dn&&(this.type="dn",this.explicit=!0,r="string"==typeof e.dn?new u({str:e.dn}):e.dn instanceof i.asn1.x509.X500Name?e.dn:new u(e.dn)),void 0!==e.ldapdn&&(this.type="dn",this.explicit=!0,r=new u({ldapstr:e.ldapdn})),void 0!==e.certissuer){this.type="dn",this.explicit=!0;var l=null;if((d=e.certissuer).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certissuer param not cert";(p=new xe).hex=l;var h=p.getIssuerHex();(r=new a).hTLV=h}if(void 0!==e.certsubj){var d,p;if(this.type="dn",this.explicit=!0,l=null,(d=e.certsubj).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certsubj param not cert";(p=new xe).hex=l,h=p.getSubjectHex(),(r=new a).hTLV=h}if(void 0!==e.ip){this.type="ip",this.explicit=!1;var f,A=e.ip,M="malformed IP address";if(A.match(/^[0-9.]+[.][0-9.]+$/)){if(8!==(f=function(e){e=(e=(e=e.replace(/^\s*\[\s*/,"")).replace(/\s*\]\s*$/,"")).replace(/\s*/g,"");try{return e.split(/,/).map((function(e,t,r){var i=parseInt(e);if(i<0||255<i)throw"integer not in range 0-255";return("00"+i.toString(16)).slice(-2)})).join("")}catch(e){throw"malformed integer array string: "+e}}("["+A.split(".").join(",")+"]")).length)throw M}else if(A.match(/^[0-9A-Fa-f:]+:[0-9A-Fa-f:]+$/))f=function(e){var t="malformed IPv6 address";if(!e.match(/^[0-9A-Fa-f:]+$/))throw t;var r=(e=e.toLowerCase()).split(":").length-1;if(r<2)throw t;var i=":".repeat(7-r+2),n=(e=e.replace("::",i)).split(":");if(8!=n.length)throw t;for(var s=0;s<8;s++)n[s]=("0000"+n[s]).slice(-4);return n.join("")}(A);else{if(!A.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw M;f=A}r=new n({hex:f})}if(null==this.type)throw"unsupported type in params="+e;this.asn1Obj=new o({explicit:this.explicit,tag:t[this.type],obj:r})}},this.getEncodedHex=function(){return this.asn1Obj.getEncodedHex()},void 0!==e&&this.setByParam(e)},he(i.asn1.x509.GeneralName,i.asn1.ASN1Object),i.asn1.x509.GeneralNames=function(e){i.asn1.x509.GeneralNames.superclass.constructor.call(this);var t=i.asn1;this.setByParamArray=function(e){for(var r=0;r<e.length;r++){var i=new t.x509.GeneralName(e[r]);this.asn1Array.push(i)}},this.getEncodedHex=function(){return new t.DERSequence({array:this.asn1Array}).getEncodedHex()},this.asn1Array=new Array,void 0!==e&&this.setByParamArray(e)},he(i.asn1.x509.GeneralNames,i.asn1.ASN1Object),i.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],r=new i.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=r,r},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var r=new i.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=r,r}},i.asn1.x509.OID.oid2name=function(e){var t=i.asn1.x509.OID.name2oidList;for(var r in t)if(t[r]==e)return r;return""},i.asn1.x509.OID.oid2atype=function(e){var t=i.asn1.x509.OID.atype2oidList;for(var r in t)if(t[r]==e)return r;return e},i.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=i.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},i.asn1.x509.X509Util={},i.asn1.x509.X509Util.newCertPEM=function(e){var t=i.asn1.x509;return t.TBSCertificate,new(0,t.Certificate)(e).getPEM()},V.getPosArrayOfChildrenFromHex=function(e){return Ne.getChildIdx(e,0)},V.getHexValueArrayOfChildrenFromHex=function(e){var t,r=Ne.getV,i=r(e,(t=V.getPosArrayOfChildrenFromHex(e))[0]),n=r(e,t[1]),s=r(e,t[2]),o=r(e,t[3]),a=r(e,t[4]),u=r(e,t[5]),c=r(e,t[6]),l=r(e,t[7]),h=r(e,t[8]);return(t=new Array).push(i,n,s,o,a,u,c,l,h),t},V.prototype.readPrivateKeyFromPEMString=function(e){var t=ie(e),r=V.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},V.prototype.readPKCS5PrvKeyHex=function(e){var t=V.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},V.prototype.readPKCS8PrvKeyHex=function(e){var t,r,i,n,s,o,a,u,c=Ne,l=c.getVbyListEx;if(!1===c.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=l(e,0,[2,0,1],"02"),r=l(e,0,[2,0,2],"02"),i=l(e,0,[2,0,3],"02"),n=l(e,0,[2,0,4],"02"),s=l(e,0,[2,0,5],"02"),o=l(e,0,[2,0,6],"02"),a=l(e,0,[2,0,7],"02"),u=l(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,r,i,n,s,o,a,u)},V.prototype.readPKCS5PubKeyHex=function(e){var t=Ne,r=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var i=t.getChildIdx(e,0);if(2!==i.length||"02"!==e.substr(i[0],2)||"02"!==e.substr(i[1],2))throw new Error("wrong hex for PKCS#5 public key");var n=r(e,i[0]),s=r(e,i[1]);this.setPublic(n,s)},V.prototype.readPKCS8PubKeyHex=function(e){var t=Ne;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(r)},V.prototype.readCertPubKeyHex=function(e,t){var r,i;(r=new xe).readCertHex(e),i=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(i)},V.prototype.sign=function(e,t){var r,n=(r=e,i.crypto.Util.hashString(r,t));return this.signWithMessageHash(n,t)},V.prototype.signWithMessageHash=function(e,t){var r=Y(i.crypto.Util.getPaddedDigestInfoHex(e,t,this.n.bitLength()),16);return De(this.doPrivate(r).toString(16),this.n.bitLength())},V.prototype.signPSS=function(e,t,r){var n,s=(n=te(e),i.crypto.Util.hashHex(n,t));return void 0===r&&(r=-1),this.signWithMessageHashPSS(s,t,r)},V.prototype.signWithMessageHashPSS=function(e,t,r){var n,s=ee(e),a=s.length,u=this.n.bitLength()-1,c=Math.ceil(u/8),l=function(e){return i.crypto.Util.hashHex(e,t)};if(-1===r||void 0===r)r=a;else if(-2===r)r=c-a-2;else if(r<-2)throw new Error("invalid salt length");if(c<a+r+2)throw new Error("data too long");var h="";r>0&&(h=new Array(r),(new Q).nextBytes(h),h=String.fromCharCode.apply(String,h));var d=ee(l(te("\0\0\0\0\0\0\0\0"+s+h))),p=[];for(n=0;n<c-r-a-2;n+=1)p[n]=0;var f=String.fromCharCode.apply(String,p)+""+h,A=we(d,f.length,l),M=[];for(n=0;n<f.length;n+=1)M[n]=f.charCodeAt(n)^A.charCodeAt(n);var g=65280>>8*c-u&255;for(M[0]&=~g,n=0;n<a;n++)M.push(d.charCodeAt(n));return M.push(188),De(this.doPrivate(new o(M)).toString(16),this.n.bitLength())},V.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var r=Y(t,16),n=this.n.bitLength();if(r.bitLength()>n)return!1;var s=this.doPublic(r).toString(16);if(s.length+3!=n/4)return!1;var o=Te(s.replace(/^1f+00/,""));if(0==o.length)return!1;var a,u=o[0];return o[1]==(a=e,i.crypto.Util.hashString(a,u))},V.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=Y(t,16);if(r.bitLength()>this.n.bitLength())return 0;var i=Te(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=i.length&&(i[0],i[1]==e)},V.prototype.verifyPSS=function(e,t,r,n){var s=function(e){return i.crypto.Util.hashHex(e,r)}(te(e));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(s,t,r,n)},V.prototype.verifyWithMessageHashPSS=function(e,t,r,n){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var s,a=new o(t,16),u=function(e){return i.crypto.Util.hashHex(e,r)},c=ee(e),l=c.length,h=this.n.bitLength()-1,d=Math.ceil(h/8);if(-1===n||void 0===n)n=l;else if(-2===n)n=d-l-2;else if(n<-2)throw new Error("invalid salt length");if(d<l+n+2)throw new Error("data too long");var p=this.doPublic(a).toByteArray();for(s=0;s<p.length;s+=1)p[s]&=255;for(;p.length<d;)p.unshift(0);if(188!==p[d-1])throw new Error("encoded message does not end in 0xbc");var f=(p=String.fromCharCode.apply(String,p)).substr(0,d-l-1),A=p.substr(f.length,l),M=65280>>8*d-h&255;if(0!=(f.charCodeAt(0)&M))throw new Error("bits beyond keysize not zero");var g=we(A,f.length,u),y=[];for(s=0;s<f.length;s+=1)y[s]=f.charCodeAt(s)^g.charCodeAt(s);y[0]&=~M;var v=d-l-n-2;for(s=0;s<v;s+=1)if(0!==y[s])throw new Error("leftmost octets not zero");if(1!==y[v])throw new Error("0x01 marker not found");return A===ee(u(te("\0\0\0\0\0\0\0\0"+c+String.fromCharCode.apply(String,y.slice(-n)))))},V.SALT_LEN_HLEN=-1,V.SALT_LEN_MAX=-2,V.SALT_LEN_RECOVER=-2,xe.hex2dn=function(e,t){void 0===t&&(t=0);var r=new xe;return Ne.getTLV(e,t),r.getX500Name(e).str},xe.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var r=new Array,i=Ne.getChildIdx(e,t),n=0;n<i.length;n++)r.push(xe.hex2attrTypeValue(e,i[n]));return(r=r.map((function(e){return e.replace("+","\\+")}))).join("+")},xe.hex2attrTypeValue=function(e,t){var r=Ne,n=r.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var s=r.getChildIdx(e,t);2!==s.length||e.substr(s[0],2);var o=n(e,s[0]),a=i.asn1.ASN1Util.oidHexToInt(o);return i.asn1.x509.OID.oid2atype(a)+"="+ee(n(e,s[1]))},xe.getPublicKeyFromCertHex=function(e){var t=new xe;return t.readCertHex(e),t.getPublicKey()},xe.getPublicKeyFromCertPEM=function(e){var t=new xe;return t.readCertPEM(e),t.getPublicKey()},xe.getPublicKeyInfoPropOfCertPEM=function(e){var t,r,i=Ne.getVbyList,n={algparam:null};return(t=new xe).readCertPEM(e),r=t.getPublicKeyHex(),n.keyhex=i(r,0,[1],"03").substr(2),n.algoid=i(r,0,[0,0],"06"),"2a8648ce3d0201"===n.algoid&&(n.algparam=i(r,0,[0,1],"06")),n},xe.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var je,Ie=[(je=new xe,je.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),je)];function be(e,t){var r=e.getIssuerHex();if(r===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var i=function(e,t){for(var r=0,i=t;r<i.length;r++){var n=i[r];if(n.getSubjectHex()===e)return n}}(r,t);return!!i&&!1!==e.verifySignature(i.getPublicKey())&&be(i,t)}function ze(e){return e.getIssuerHex()!==e.getSubjectHex()&&be(e,Ie)}!function(e){var t=new xe;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);ze(t);Ie.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var Oe=function(e,t){return(Oe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function Se(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}Oe(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Le=function(){return(Le=Object.assign||function(e){for(var t,r=1,i=arguments.length;r<i;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};function Ce(e,t,r){if(r||2===arguments.length)for(var i,n=0,s=t.length;n<s;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return e.concat(i||Array.prototype.slice.call(t))}Object.create,Object.create;var ke=2*Math.PI;function Pe(e){return(e%ke+ke)%ke}var _e=function(t){function r(r){var i=t.call(this,r,1,.1,1e3)||this;return i.pose={longitude:0,latitude:0,fov:r,offset:new e.Vector3},i.computePose(),i}return Se(r,t),r.prototype.computePose=function(){var t=this.getWorldDirection(new e.Vector3);this.pose.longitude=Pe(-Math.atan2(t.x,-t.z)),this.pose.latitude=-Math.asin(t.y/1),this.pose.fov=this.fov,this.pose.offset.copy(this.position)},r.prototype.setFromPose=function(t){var r,i,n,s,o=Pe(null!==(r=t.longitude)&&void 0!==r?r:this.pose.longitude),a=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,null!==(i=t.latitude)&&void 0!==i?i:this.pose.latitude)),u=null!==(n=t.fov)&&void 0!==n?n:this.pose.fov,c=null!==(s=t.offset)&&void 0!==s?s:this.pose.offset;this.position.copy(c);var l=Math.abs(Math.cos(a)),h=new e.Vector3(-Math.sin(o)*l,-Math.sin(a),-Math.cos(o)*l);this.lookAt(c.clone().add(h)),this.fov!==u&&(this.fov=u,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=o,this.pose.latitude=a,this.pose.fov=u,this.pose.offset.copy(c)},r.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,offset:this.pose.offset.clone()}},r}(e.PerspectiveCamera),Be=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Se(t,e),t.prototype.add=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.add.apply(this,t)},t.prototype.remove=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.prototype.remove.apply(this,t)},t}(e.Scene),Ue=function(t){function r(r){var i=r.preserveDrawingBuffer,n=void 0===i||i,s=r.backgroundColor,o=void 0===s?1579548:s,a=r.backgroundAlpha,u=void 0===a?1:a,c=r.pixelRatio,l=void 0===c?1:c,h=r.antialias,d=void 0!==h&&h,p=t.call(this,{antialias:d,preserveDrawingBuffer:n,alpha:u<1})||this;return p.setPixelRatio(l),p.setClearColor(o,u),p.outputEncoding=e.sRGBEncoding,p.autoClear=!0,p}return Se(r,t),r}(e.WebGLRenderer);function Re(e){return null==e}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function Ye(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Fe(){return(Ye()+Ye()+"-"+Ye()+"-4"+Ye().substr(0,3)+"-"+Ye()+"-"+Ye()+Ye()+Ye()).toLowerCase()}var Ve="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),He="undefined"!=typeof performance?function(){return Ve+performance.now()}:function(){return Date.now()},Ge=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}();function qe(e,t){void 0===e&&(e=Qe),void 0===t&&(t=0),Ge(t<=0?e:function(){return qe(e,t-1)})}function We(e,t){void 0===e&&(e=Qe);for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];var n=!1,s=function(i){e.call.apply(e,Ce([t,i],r,!1)),n||"function"!=typeof s||Ge(s)};return Ge(s),function(){s=null,n=!0}}var Ze=0;function Xe(e){Ze&&e(Ze);var t=He();Ge((function(){e(Ze=He()-t)}))}Xe(Qe);var Ke=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return Se(t,e),t}(e.Mesh),Je=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t}return Se(t,e),t.prototype.getTransparent=function(){var e;return this.traverse((function(t){void 0===e&&t instanceof Ke&&t.material.forEach((function(t){void 0===e&&1===t.uniforms.originOpacity.value&&(e=t.transparent)}))})),null!=e&&e},t.prototype.setTransparent=function(e){this.traverse((function(t){t instanceof Ke&&t.material.forEach((function(t){1===t.uniforms.originOpacity.value&&(t.transparent=e)}))}))},t.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof Ke){var r=t.material[0];e={pano0Map:r.pano0Map,pano0Matrix:r.pano0Matrix,pano1Map:r.pano1Map,pano1Matrix:r.pano1Matrix,modelAlpha:r.modelAlpha,progress:r.progress,useBlackTransition:r.useBlackTransition,perspToOrtho:r.perspToOrtho,opacity:r.opacity,pano0DepthMap:r.pano0DepthMap,panoVideoMap:r.panoVideoMap,panoVideoSize:r.panoVideoSize,panoVideoMatrix:r.panoVideoMatrix,panoVideoAlpha:r.panoVideoAlpha,panoTileMap:r.panoTileMap,panoTileMappings:r.panoTileMappings}}})),e},t.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof Ke&&t.material.forEach((function(t){void 0!==e.pano0Map&&(t.pano0Map=e.pano0Map),void 0!==e.pano0Matrix&&(t.pano0Matrix=e.pano0Matrix),void 0!==e.pano1Map&&(t.pano1Map=e.pano1Map),void 0!==e.pano1Matrix&&(t.pano1Matrix=e.pano1Matrix),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.perspToOrtho&&(t.perspToOrtho=e.perspToOrtho),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.pano0DepthMap&&(t.pano0DepthMap=e.pano0DepthMap),void 0!==e.panoVideoMap&&(t.panoVideoMap=e.panoVideoMap),void 0!==e.panoVideoSize&&(t.panoVideoSize=e.panoVideoSize),void 0!==e.panoVideoMatrix&&(t.panoVideoMatrix=e.panoVideoMatrix),void 0!==e.panoVideoAlpha&&(t.panoVideoAlpha=e.panoVideoAlpha),void 0!==e.panoTileMap&&(t.panoTileMap=e.panoTileMap),void 0!==e.panoTileMappings&&(t.panoTileMappings=e.panoTileMappings)}))}))},t.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof Ke){var t=[];e.material.forEach((function(e){var r=e.uniforms;Object.keys(r).map((function(e){if(["pano0Map","pano1Map","pano0DepthMap","panoVideoMap","panoTileMap"].indexOf(e)>=0)r[e].value=null;else{var i=r[e].value;i&&"function"==typeof i.dispose&&-1===t.indexOf(i)&&(r[e].value=null,t.push(i))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},t.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof Ke&&e.geometry.dispose()}))},t}(e.Group),$e=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return Se(t,e),t}(Je);const et=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{H{vs|z-znA-}n{|=ZnvH{vs|z-znA-}n{|>ZnvH{vs|z-rp@-z|qryPr{rH{vs|z-sy|n-}r}a|\\u|Hn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:-z]|vv|{;\b\tH--rp@-|yq]|vv|{-J-5z|qryZnv-7-n{s|zrq6;\b\tH--0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq-5b`Rl]N[\\=lQR]aUlZN]6----pnzrna|crr-J-|yq]|vv|{-:-pnzrn]|vv|{H--0r{qvs--}n{|=a|crr-J-5|yq]|vv|{-:-}n{|=Znvh@j;\b\t6-7-zn@5}n{|=Znv6H--}n{|>a|crr-J-5|yq]|vv|{-:-}n{|>Znvh@j;\b\t6-7-zn@5}n{|>Znv6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--rp@-pnzrn[|zny-J-5z|qrycvrZnv-7-rpA5=;=9-=;=9->;=9-=;=66;\b\tH--sy|n-|u|Qvn{pr-J-zn5=;=>9-q|5pnzrn[|zny9-z|qryPr{r-:-pnzrn]|vv|{66H--tyl]|vv|{;-J-zv5-tyl]|vv|{;9-tyl]|vv|{;-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H--tyl]|vv|{;\b-J-zv5-tyl]|vv|{;\b9-tyl]|vv|{;\b-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H\f"),tt=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-|vtv{\\}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-nz}yrPor-}n{|=Zn}H{vs|z-nz}yrPor-}n{|>Zn}H{vs|z-nz}yrPor-}n{|=Qr}uZn}H{vs|z-rp?-}n{|cvqr|`v\trH{vs|z-znA-}n{|cvqr|ZnvH{vs|z-sy|n-}n{|cvqr|Ny}unH{vs|z-nz}yr?Q-}n{|cvqr|Zn}H0vs-qrsv{rq5b`RlaVYR6--{vs|z-nz}yr?Q-}n{|avyrZn}H--{vs|z-rpA-}n{|avyrPyv}Zn}}v{thaVYRlZN]]V[TlYR[TaUjH--{vs|z-rpA-}n{|avyrQnNZn}}v{thaVYRlZN]]V[TlYR[TaUjH0r{qvs0vs-.qrsv{rq5b`RlOYNPXla_N[`VaV\\[6-33-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6--n\bv{t-rp@-pnzrna|crrH0r{qvsn\bv{t-rp@-}n{|=a|crrHn\bv{t-rp@-}n{|>a|crrH0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=9-=;=9-=;=9->;=60qrsv{r-]Vl?-C;?E@>EB?rp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-qvssrP|y|-J-rpA5qvssr9-|vtv{\\}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=Zn}9-}n{|=a|crr6H--0vs-qrsv{rq5b`RlaVYR6----rp?-vyrlp||q-J-|P||q5}n{|=a|crr6H----rpA-vyrlpyv}H----rpA-vyrlqnNH----rp?-vyrlH----sy|n-vyrlny}unH----0}ntzn-{|yyly||}lnH----s|-5v{-v-J-=H-v-I-aVYRlZN]]V[TlYR[TaUH-v886-\n------vyrlpyv}-J-}n{|avyrPyv}Zn}}v{thvjH------vyrlqnN-J-}n{|avyrQnNZn}}v{thvjH------vyrl;-J-5vyrlp||q;-:-vyrlpyv}h=j6-<-vyrlpyv}h?jH------vyrl;\b-J-5vyrlp||q;\b-:-vyrlpyv}h>j6-<-vyrlpyv}h@jH------vyrlny}un-J-5>;=-:-r}5=;B9-no5vyrl;-:-=;B666-7-5>;=-:-r}5=;B9-no5vyrl;\b-:-=;B666H------vyrl;-J-vyrlqnNh=j-8-vyrl;-7-vyrlqnNh?jH------vyrl;\b-J-vyrlqnNh>j-8-vyrl;\b-7-vyrlqnNh@jH------vyrlny}un-J-prvy5vyrlny}un-7-vyrlqnNh?j6H------}n{|=P|y|-J-zv5}n{|=P|y|9-rr?Q5}n{|avyrZn}9-vyrl69-vyrlny}un6H----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--rpA-}n{|>P|y|-J-rrPor5}n{|>Zn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----0vs-qrsv{rq5b`Rl]N[\\=lQR]aUlZN]6------rpA-}n{|=Qr}uP|y|-J-rrPor5}n{|=Qr}uZn}9-pnzrna|crr6H------sy|n-qrynQvn{pr=-J-no5{}npx_TONa|Qr}u5}n{|=Qr}uP|y|6-7->=;=-:-yr{tu5}n{|=a|crr66H------sy|n-ynry-J-pynz}5}|tr-7-5>;=-8-qrynQvn{pr=-7-=;FB69-=;=9->;=6H----0ryr------sy|n-ynry-J-}|trH----0r{qvs----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-ynry6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\lZN]6----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|ZnvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|`v\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|Zn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|Ny}un6H--0r{qvs--tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H\f");var rt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hash=Fe(),t.meta=[null,null,null,null,null,null],t}return Se(t,e),t}(e.CubeTexture);function it(){return"undefined"==typeof document?{}:document.createElementNS("http://www.w3.org/1999/xhtml","img")}var nt=it();nt.width=nt.height=8;var st=new e.Texture(nt),ot=new rt([nt,nt,nt,nt,nt,nt]);st.dispose=ot.dispose=function(){};var at=Object.assign({modelAlpha:new e.Uniform(0),originOpacity:new e.Uniform(1),progress:new e.Uniform(0),pano0Map:new e.Uniform(null),pano0Matrix:new e.Uniform(new e.Matrix4),pano1Map:new e.Uniform(null),pano1Matrix:new e.Uniform(new e.Matrix4),pano0DepthMap:new e.Uniform(null),panoVideoMap:new e.Uniform(null),panoVideoSize:new e.Uniform(new e.Vector2),panoVideoMatrix:new e.Uniform(new e.Matrix4),panoVideoAlpha:new e.Uniform(0),modelCenter:new e.Uniform(new e.Vector3),perspToOrtho:new e.Uniform(0),panoTileMap:new e.Uniform(null),panoTileClipMappings:new e.Uniform([]),panoTileDrawAtMappings:new e.Uniform([])},{exposure:new e.Uniform(1),emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),ut=function(t){function r(r){var i,n,s,o,a,u,c,l,h,d,p,f,A,M,g,y;void 0===r&&(r={});var v=t.call(this,{vertexShader:et,fragmentShader:tt,uniforms:e.UniformsUtils.clone(at),defines:{USE_MAP:!0,USE_UV:!0,USE_TILE:!1,TILE_MAPPING_LENGTH:0,USE_BLACK_TRANSITION:!1,USE_PANO0_DEPTH_MAP:!1,USE_PANO_VIDEO_MAP:!1},lights:!0})||this;return Object.defineProperties(v,{pano0Map:{get:function(){var e=this.uniforms.pano0Map.value;return e===ot?null:e},set:function(e){this.uniforms.pano0Map.value=null===e?ot:e}},pano0Matrix:{get:function(){return this.uniforms.pano0Matrix.value.clone()},set:function(e){this.uniforms.pano0Matrix.value.copy(e)}},pano1Map:{get:function(){var e=this.uniforms.pano1Map.value;return e===ot?null:e},set:function(e){this.uniforms.pano1Map.value=null===e?ot:e}},pano1Matrix:{get:function(){return this.uniforms.pano1Matrix.value.clone()},set:function(e){this.uniforms.pano1Matrix.value.copy(e)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},perspToOrtho:{get:function(){return this.uniforms.perspToOrtho.value},set:function(e){this.uniforms.perspToOrtho.value=e}},pano0DepthMap:{get:function(){return this.uniforms.pano0DepthMap.value},set:function(e){this.uniforms.pano0DepthMap.value=e;var t=null!==e;t!==this.defines.USE_PANO0_DEPTH_MAP&&(this.defines.USE_PANO0_DEPTH_MAP=t,this.needsUpdate=!0)}},panoVideoMap:{get:function(){return this.uniforms.panoVideoMap.value},set:function(e){this.uniforms.panoVideoMap.value=e;var t=null!==e;t!==this.defines.USE_PANO_VIDEO_MAP&&(this.defines.USE_PANO_VIDEO_MAP=t,this.needsUpdate=!0)}},panoVideoSize:{get:function(){return this.uniforms.panoVideoSize.value.clone()},set:function(e){this.uniforms.panoVideoSize.value.copy(e)}},panoVideoMatrix:{get:function(){return this.uniforms.panoVideoMatrix.value.clone()},set:function(e){this.uniforms.panoVideoMatrix.value.copy(e)}},panoVideoAlpha:{get:function(){return this.uniforms.panoVideoAlpha.value},set:function(e){this.uniforms.panoVideoAlpha.value=e}},panoTileMap:{get:function(){return this.uniforms.panoTileMap.value},set:function(e){this.uniforms.panoTileMap.value=e;var t=null!==e;t!==this.defines.USE_TILE&&(this.defines.USE_TILE=t,this.needsUpdate=!0)}},panoTileMappings:{get:function(){var e=this.uniforms.panoTileClipMappings.value,t=this.uniforms.panoTileDrawAtMappings.value;if(null===e)return null;for(var r=[],i=0;i<e.length;i++)r[i]=[e[i].clone(),t[i].clone()];return r},set:function(e){var t=this.defines.TILE_MAPPING_LENGTH;if(null===e)this.uniforms.panoTileClipMappings.value=null,this.uniforms.panoTileDrawAtMappings.value=null;else{for(var r=[],i=[],n=0;n<e.length;n++)r[n]=e[n][0].clone(),i[n]=e[n][1].clone();this.uniforms.panoTileClipMappings.value=r,this.uniforms.panoTileDrawAtMappings.value=i}var s=null!==e?e.length:0;s!==t&&(this.defines.TILE_MAPPING_LENGTH=s,this.needsUpdate=!0)}}}),v.pano0Map=null!==(i=r.pano0Map)&&void 0!==i?i:ot,v.pano0Matrix=null!==(n=r.pano0Matrix)&&void 0!==n?n:new e.Matrix4,v.pano1Map=null!==(s=r.pano1Map)&&void 0!==s?s:ot,v.pano1Matrix=null!==(o=r.pano1Matrix)&&void 0!==o?o:new e.Matrix4,v.modelAlpha=null!==(a=r.modelAlpha)&&void 0!==a?a:1,v.progress=null!==(u=r.progress)&&void 0!==u?u:0,v.useBlackTransition=null!==(c=r.useBlackTransition)&&void 0!==c&&c,v.perspToOrtho=null!==(l=r.perspToOrtho)&&void 0!==l?l:0,v.opacity=null!==(h=r.opacity)&&void 0!==h?h:1,v.pano0DepthMap=null!==(d=r.pano0DepthMap)&&void 0!==d?d:null,v.panoVideoSize=null!==(p=r.panoVideoSize)&&void 0!==p?p:new e.Vector2,v.panoVideoMap=null!==(f=r.panoVideoMap)&&void 0!==f?f:null,v.panoVideoMatrix=null!==(A=r.panoVideoMatrix)&&void 0!==A?A:new e.Matrix4,v.panoVideoAlpha=null!==(M=r.panoVideoAlpha)&&void 0!==M?M:0,v.panoTileMap=null!==(g=r.panoTileMap)&&void 0!==g?g:null,v.panoTileMappings=null!==(y=r.panoTileMappings)&&void 0!==y?y:null,v}return Se(r,t),r}(e.ShaderMaterial),ct=new e.Vector3(0,0,0),lt=function(t){function r(r,i){void 0===i&&(i=ct);var n=t.call(this)||this,s=new e.BoxBufferGeometry(r.max.x-r.min.x+2*i.x,r.max.y-r.min.y+2*i.y,r.max.z-r.min.z+2*i.z,1,1);s.groups.length=0,s.groups.push({start:0,count:36,materialIndex:0}),s.applyMatrix4((new e.Matrix4).makeScale(-1,1,1));var o=new ut;o.defines.USE_MAP=!1,o.defines.USE_UV=!1,o.uniforms.diffuse.value=new e.Color(16777215);var a=new Ke(s,[o]);return a.floorIndex=-1,a.position.copy(r.getCenter(new e.Vector3)),a.frustumCulled=!1,n.add(a),n}return Se(r,t),r.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},r}($e);function ht(e,t){return void 0===t&&(t=ct),new lt(e,t)}var dt,pt,ft,At,Mt={EPSILON:1e-6,BVHVector3:function(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0}};Mt.BVHVector3.prototype={constructor:Mt.BVHVector3,copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},setFromArray:function(e,t){this.x=e[t],this.y=e[t+1],this.z=e[t+2]},add:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},cross:function(e){var t=this.x,r=this.y,i=this.z;return this.x=r*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-r*e.x,this},crossVectors:function(e,t){var r=e.x,i=e.y,n=e.z,s=t.x,o=t.y,a=t.z;return this.x=i*a-n*o,this.y=n*s-r*a,this.z=r*o-i*s,this},clone:function(){return new Mt.BVHVector3(this.x,this.y,this.z)}},Mt.BVH=function(e,t){this._trianglesArray=e,this._maxTrianglesPerNode=t||10,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var r=e.length/9,i=this.calcExtents(0,r,Mt.EPSILON);this._rootNode=new Mt.BVHNode(i[0],i[1],0,r,0),this._nodesToSplit=[this._rootNode]},Mt.BVH.prototype.splitNode=function(e){if(e){var t=0,r=function(){t++;var i=this._nodesToSplit.pop();i?(this._splitNode(i),t%255==0?setTimeout(r):r()):(t=0,e())}.bind(this);r()}else for(;this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},Mt.BVH.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit=null},Mt.BVH.prototype.intersectRay=function(e,t,r){for(var i,n=[this._rootNode],s=[],o=[],a=new Mt.BVHVector3(1/t.x,1/t.y,1/t.z);n.length>0;){var u=n.pop();if(Mt.BVH.intersectNodeBox(e,a,u))for(u._node0&&n.push(u._node0),u._node1&&n.push(u._node1),i=u._startIndex;i<u._endIndex;i++)s.push(this._bboxArray[7*i])}var c=new Mt.BVHVector3,l=new Mt.BVHVector3,h=new Mt.BVHVector3,d=new Mt.BVHVector3(e.x,e.y,e.z),p=new Mt.BVHVector3(t.x,t.y,t.z);for(i=0;i<s.length;i++){var f=s[i];c.setFromArray(this._trianglesArray,9*f),l.setFromArray(this._trianglesArray,9*f+3),h.setFromArray(this._trianglesArray,9*f+6);var A=Mt.BVH.intersectRayTriangle(c,l,h,d,p,r);A&&o.push({triangle:[c.clone(),l.clone(),h.clone()],triangleIndex:f,intersectionPoint:A})}return o},Mt.BVH.prototype.calcBoundingBoxes=function(e){for(var t,r,i,n,s,o,a,u,c,l,h,d,p,f,A,M=e.length/9,g=new Float32Array(7*M),y=0;y<M;y++)t=e[9*y],r=e[9*y+1],i=e[9*y+2],n=e[9*y+3],s=e[9*y+4],o=e[9*y+5],a=e[9*y+6],u=e[9*y+7],c=e[9*y+8],l=Math.min(Math.min(t,n),a),h=Math.min(Math.min(r,s),u),d=Math.min(Math.min(i,o),c),p=Math.max(Math.max(t,n),a),f=Math.max(Math.max(r,s),u),A=Math.max(Math.max(i,o),c),Mt.BVH.setBox(g,y,y,l,h,d,p,f,A);return g},Mt.BVH.prototype.calcExtents=function(e,t,r){if(r=r||0,e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];for(var i=Number.MAX_VALUE,n=Number.MAX_VALUE,s=Number.MAX_VALUE,o=-Number.MAX_VALUE,a=-Number.MAX_VALUE,u=-Number.MAX_VALUE,c=e;c<t;c++)i=Math.min(this._bboxArray[7*c+1],i),n=Math.min(this._bboxArray[7*c+2],n),s=Math.min(this._bboxArray[7*c+3],s),o=Math.max(this._bboxArray[7*c+4],o),a=Math.max(this._bboxArray[7*c+5],a),u=Math.max(this._bboxArray[7*c+6],u);return[{x:i-r,y:n-r,z:s-r},{x:o+r,y:a+r,z:u+r}]},Mt.BVH.prototype._splitNode=function(e){if(!(e.elementCount()<=this._maxTrianglesPerNode||0===e.elementCount())){var t=e._startIndex,r=e._endIndex,i=[[],[],[]],n=[[],[],[]],s=[e.centerX(),e.centerY(),e.centerZ()],o=[e._extentsMax.x-e._extentsMin.x,e._extentsMax.y-e._extentsMin.y,e._extentsMax.z-e._extentsMin.z],a=[];a.length=3;for(var u=t;u<r;u++){a[0]=.5*(this._bboxArray[7*u+1]+this._bboxArray[7*u+4]),a[1]=.5*(this._bboxArray[7*u+2]+this._bboxArray[7*u+5]),a[2]=.5*(this._bboxArray[7*u+3]+this._bboxArray[7*u+6]);for(var c=0;c<3;c++)a[c]<s[c]?i[c].push(u):n[c].push(u)}var l=[];if(l.length=3,l[0]=0===i[0].length||0===n[0].length,l[1]=0===i[1].length||0===n[1].length,l[2]=0===i[2].length||0===n[2].length,!(l[0]&&l[1]&&l[2])){var h,d,p=[0,1,2];for(p.sort((function(e,t){return o[t]-o[e]})),c=0;c<3;c++){var f=p[c];if(!l[f]){h=i[f],d=n[f];break}}var A,M=t,g=M+h.length,y=g,v=r,m=e._startIndex,N=h.concat(d);for(u=0;u<N.length;u++)A=N[u],Mt.BVH.copyBox(this._bboxArray,A,this._bboxHelper,m),m++;var D=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(D,7*e._startIndex);var w=this.calcExtents(M,g,Mt.EPSILON),T=this.calcExtents(y,v,Mt.EPSILON),x=new Mt.BVHNode(w[0],w[1],M,g,e._level+1),E=new Mt.BVHNode(T[0],T[1],y,v,e._level+1);e._node0=x,e._node1=E,e.clearShapes(),this._nodesToSplit.push(x),this._nodesToSplit.push(E)}}},Mt.BVH._calcTValues=function(e,t,r,i){var n={min:0,max:0};return i>=0?(n.min=(e-r)*i,n.max=(t-r)*i):(n.min=(t-r)*i,n.max=(e-r)*i),n},Mt.BVH.intersectNodeBox=function(e,t,r){var i=Mt.BVH._calcTValues(r._extentsMin.x,r._extentsMax.x,e.x,t.x),n=Mt.BVH._calcTValues(r._extentsMin.y,r._extentsMax.y,e.y,t.y);if(i.min>n.max||n.min>i.max)return!1;(n.min>i.min||i.min!=i.min)&&(i.min=n.min),(n.max<i.max||i.max!=i.max)&&(i.max=n.max);var s=Mt.BVH._calcTValues(r._extentsMin.z,r._extentsMax.z,e.z,t.z);return!(i.min>s.max||s.min>i.max||((s.min>i.min||i.min!=i.min)&&(i.min=s.min),(s.max<i.max||i.max!=i.max)&&(i.max=s.max),i.max<0))},Mt.BVH.intersectRayTriangle=(dt=new Mt.BVHVector3,pt=new Mt.BVHVector3,ft=new Mt.BVHVector3,At=new Mt.BVHVector3,function(e,t,r,i,n,s){pt.subVectors(t,e),ft.subVectors(r,e),At.crossVectors(pt,ft);var o,a=n.dot(At);if(a>0){if(s)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}dt.subVectors(i,e);var u=o*n.dot(ft.crossVectors(dt,ft));if(u<0)return null;var c=o*n.dot(pt.cross(dt));if(c<0)return null;if(u+c>a)return null;var l=-o*dt.dot(At);if(l<0)return null;var h=l/a;return(new Mt.BVHVector3).copy(n).multiplyScalar(h).add(i)}),Mt.BVH.setBox=function(e,t,r,i,n,s,o,a,u){e[7*t]=r,e[7*t+1]=i,e[7*t+2]=n,e[7*t+3]=s,e[7*t+4]=o,e[7*t+5]=a,e[7*t+6]=u},Mt.BVH.copyBox=function(e,t,r,i){r[7*i]=e[7*t],r[7*i+1]=e[7*t+1],r[7*i+2]=e[7*t+2],r[7*i+3]=e[7*t+3],r[7*i+4]=e[7*t+4],r[7*i+5]=e[7*t+5],r[7*i+6]=e[7*t+6]},Mt.BVH.getBox=function(e,t,r){r.triangleId=e[7*t],r.minX=e[7*t+1],r.minY=e[7*t+2],r.minZ=e[7*t+3],r.maxX=e[7*t+4],r.maxY=e[7*t+5],r.maxZ=e[7*t+6]},Mt.BVHNode=function(e,t,r,i,n){this._extentsMin=e,this._extentsMax=t,this._startIndex=r,this._endIndex=i,this._level=n,this._node0=null,this._node1=null},Mt.BVHNode.prototype.elementCount=function(){return this._endIndex-this._startIndex},Mt.BVHNode.prototype.centerX=function(){return.5*(this._extentsMin.x+this._extentsMax.x)},Mt.BVHNode.prototype.centerY=function(){return.5*(this._extentsMin.y+this._extentsMax.y)},Mt.BVHNode.prototype.centerZ=function(){return.5*(this._extentsMin.z+this._extentsMax.z)},Mt.BVHNode.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1},Mt.BVHNode.calcBoundingSphereRadius=function(e,t){var r=.5*(e.x+t.x),i=.5*(e.y+t.y),n=.5*(e.z+t.z),s=(r-e.x)*(r-e.x)+(i-e.y)*(i-e.y)+(n-e.z)*(n-e.z),o=(r-t.x)*(r-t.x)+(i-t.y)*(i-t.y)+(n-t.z)*(n-t.z);return Math.sqrt(Math.max(s,o))};var gt=Mt.BVH;Mt.intersectRay;var yt,vt=(yt="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<$$FIVE_EVENT$$>$":Symbol(yt));function mt(e){return e[vt]||(e[vt]={}),e[vt]}var Nt=function(){function e(){}return e.prototype.hasListener=function(e){var t=mt(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,r){var i=this,n=mt(this);return n[e]||(n[e]=[]),n[e].push([t,r||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var r=mt(this);if(r[e]||(r[e]=[]),void 0!==t){for(var i=0;i<r[e].length&&r[e][i][0]!==t;i++);i<r[e].length&&r[e].splice(i,1)}else r[e].length=0}else this[vt]||delete this[vt]},e.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var i=!1,n=mt(this),s=n[e]||[],o=0,a=s.slice();o<a.length;o++){var u=a[o],c=u[0],l=u[1],h=void 0!==l&&l,d=c.apply(void 0,t);h&&this.off(e,c),!1===d&&(i=!0)}return i},e}();function Dt(e){Object.freeze(e);var t="function"==typeof e,r=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(i){!r.call(e,i)||t&&("caller"===i||"callee"===i||"arguments"===i)||null===e[i]||"object"!=typeof e[i]&&"function"!=typeof e[i]||Object.isFrozen(e[i])||Dt(e[i])})),e}var wt=/^([^.]+)(\.([^.]+))*$/;function Tt(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function xt(e,t){return wt.test(e)&&function(e){if("*"===e)return/^(.+)$/i;var t="^"+e.split(".").map((function(e){return"*"===e?"([^.]+)":e})).join(".")+"$";return new RegExp(t,"i")}(e).test(t)}var Et=Dt(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("h--/y|pnyu|/9--/xr;p|z/9-------/7;xr;p|z/9-------/7;7;xr;p|z/9--/yvn{wvn;p|z/9--/7;yvn{wvn;p|z/9--/7;7;yvn{wvn;p|z/9--/rnyrr;p|z/9--/7;rnyrr;p|z/9--/7;7;rnyrr;p|z/9--/rnyrr;p{/9---/7;rnyrr;p{/9---/7;7;rnyrr;p{/9--/uv;p|z/9--/7;uv;p|z/9--/7;7;uv;p|z/9--/uv;p{/9---/7;uv;p{/9---/7;7;uv;p{/9--/ywpq{;p|z/9----/7;ywpq{;p|z/9----/7;7;ywpq{;p|z/j"))),jt=function(e){function t(t,r){var i=e.call(this,"[NETWORK]: response error(status: "+r+"): "+t)||this;return i.httpStatus=r,i}return Se(t,e),t}(Error),It=function(e){function t(t){return e.call(this,"[NETWORK]: request abort: "+t)||this}return Se(t,e),t}(Error),bt=function(e){function t(t,r){return e.call(this,"[NETWORK]: request timeout("+r+"ms): "+t)||this}return Se(t,e),t}(Error),zt=function(e){function t(t,r){return e.call(this,"[NETWORK]: request forbidden: "+t+", "+r)||this}return Se(t,e),t}(Error),Ot=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Se(t,e),t}(Nt);function St(e,t,r,i){void 0===t&&(t={}),void 0===r&&(r=Qe),void 0===i&&(i=Qe);var n,s=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),o=(n=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/))?n[2]:location.hostname;if(0!==location.hostname.length&&!Tt(location.hostname)&&0===Et.filter((function(e){return xt(e,location.hostname)})).length&&!Tt(o)&&0===s.filter((function(e){return xt(e,o)})).length){var a=Qe,u=new zt(e,"request host("+o+") is not allowed");return qe((function(){var i;r(u,null),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"forbidden",u.message)})),{abort:a}}var c=function(e){for(var t=0,r=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i];t<r.length;t++){var i=r[t],n=e.match(i);if(n)return"jsonp_"+n[1]}return null}(e);if(c){var l=window,h=null,d=!1,p=He(),f=document.createElement("script");return l[c]=function(i){var n,s=He(),o=s-p;if(delete l[c],f.parentNode&&f.parentNode.removeChild(f),null!==h&&(window.clearTimeout(h),h=null),!0!==d){if(0!==i.indexOf("data:")){var a=new jt(e,500);return r(a,null),void(null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"error",a.message))}var u=i.split(","),A=(u[0].match(/:(.*?);/)||[])[1],M=u[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var g=atob(u[1]),y=g.length,v=new Uint8Array(y),m=0;m<y;m++)v[m]=g.charCodeAt(m);M="arraybuffer"===t.responseType?v.buffer:new Blob([v],{type:A})}var N={body:M,meta:{source:e,requestTime:p,responseTime:s,costs:o,headers:{}}};qe((function(){var i;r(null,N),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"ok",JSON.stringify(N.meta))})),d=!0}},f.src=e,document.body.appendChild(f),"number"==typeof t.timeout&&(h=window.setTimeout((function(){var i;if(h=null,!0!==d){var n=new bt(e,t.timeout||NaN);r(n,null),d=!0,null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"timeout",n.message)}}),t.timeout)),{abort:function(){var i;if(delete l[c],f.parentNode&&f.parentNode.removeChild(f),null!==h&&(window.clearTimeout(h),h=null),!0!==d){var n=new It(e);r(n,null),d=!0,null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"abort",n.message)}}}}var A=He(),M=!1,g=new XMLHttpRequest,y=function(){g&&(g.removeEventListener("timeout",v,!1),g.removeEventListener("progress",m,!1),g.removeEventListener("abort",N,!1),g.removeEventListener("load",D,!1),g.removeEventListener("error",w,!1)),g=null,y=Qe},v=function(){var i,n=new bt(e,t.timeout||NaN);r(n,null),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"timeout",n.message)},m=function(e){if(!0!==M&&e.lengthComputable){var t=e.loaded,r=e.total;i(t/r,t,r)}},N=function(){var i;if(!0!==M){var n=new It(e);r(n,null),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"abort",n.message)}},D=function(){var i,n=He(),s=n-A,o=function(e){if(!e)return{};for(var t={},r=e.trim().split("\n"),i=0;i<r.length;i++){var n=r[i],s=n.indexOf(":"),o=n.slice(0,s).trim().toLowerCase(),a=n.slice(s+1).trim();a&&(t[o]?t[o]+=", "+a:t[o]=a)}return t}(this.getAllResponseHeaders()),a={body:this.response,meta:{source:e,requestTime:A,responseTime:n,costs:s,headers:o}};r(null,a),M=!0,y(),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"ok",JSON.stringify(a.meta))},w=function(){var i,n=new jt(e,this.status);r(n,null),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"error",n.message),M=!0,y()};return g.addEventListener("timeout",v,!1),g.addEventListener("progress",m,!1),g.addEventListener("abort",N,!1),g.addEventListener("load",D,!1),g.addEventListener("error",w,!1),t.responseType&&(g.responseType=t.responseType),"number"==typeof t.timeout&&(g.timeout=t.timeout),g.open("GET",e,!0),g.send(null),{abort:N}}St.async=function(e,t){return new Promise((function(r,i){St(e,t,(function(e,t){e?i(e):r(t)}))}))};var Lt={},Ct="//vrlab-public.ljcdn.com";function kt(e,t){if(void 0===t&&(t={}),"function"==typeof t.transform)return t.transform(e,t);if(e.indexOf(Ct)>=0&&(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),/\.(jpg|png)$/.test(e))){var r=t.size,i=t.quality,n=t.format;if(r||i||n){var s="?imageMogr2";i&&(s+="/quality/"+i),r&&(s+="/thumbnail/"+r+"x"),n&&(s+="/format/"+n),e=e.replace(Ct,"//vrlab-image4.ljcdn.com")+s}}return e}var Pt=function(){function e(e){void 0===e&&(e={}),this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.load=function(e,t,r,i){return void 0===t&&(t=Qe),void 0===r&&(r=Qe),void 0===i&&(i=Qe),this.loadToImage(it(),e,t,r,i)},e.prototype.loadToImage=function(e,t,r,i,n){if(void 0===r&&(r=Qe),void 0===i&&(i=Qe),void 0===n&&(n=Qe),e.src)throw new Error("image is loaded");var s={responseType:"blob",allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe};St(t,s,(function(i,s){i?n(i):(e.onload=function(){r(e),e.onload=e.onerror=function(){}},e.onerror=function(){n(new Error("image parse error "+t)),e.onload=e.onerror=function(){}},e.src=URL.createObjectURL(s.body))}))},e}(),_t=null,Bt=!1,Ut=[];function Rt(e){if(void 0===e&&(e=!1),e||!Bt)if(_t)Bt=!1;else{Bt=!0;var t=Ut.shift();if(t){try{t()}catch(e){}qe((function(){return Rt(!0)}))}else Bt=!1}}function Qt(){_t=null,Rt()}function Yt(){(_t||0!==Ut.length)&&(_t&&clearTimeout(_t),_t=window.setTimeout(Qt,200))}function Ft(e){return new Promise((function(t){Ut.push((function(){return t(e())})),Rt()}))}var Vt,Ht=__webpack_require__(247),Gt={computeTangents:function(t){var r=t.index,i=t.attributes;if(null!==r&&void 0!==i.position&&void 0!==i.normal&&void 0!==i.uv){var n=r.array,s=i.position.array,o=i.normal.array,a=i.uv.array,u=s.length/3;void 0===i.tangent&&t.setAttribute("tangent",new e.BufferAttribute(new Float32Array(4*u),4));for(var c=i.tangent.array,l=[],h=[],d=0;d<u;d++)l[d]=new e.Vector3,h[d]=new e.Vector3;var p=new e.Vector3,f=new e.Vector3,A=new e.Vector3,M=new e.Vector2,g=new e.Vector2,y=new e.Vector2,v=new e.Vector3,m=new e.Vector3,N=t.groups;0===N.length&&(N=[{start:0,count:n.length}]),d=0;for(var D=N.length;d<D;++d)for(var w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)C(n[w+0],n[w+1],n[w+2]);var x,E,j,I=new e.Vector3,b=new e.Vector3,z=new e.Vector3,O=new e.Vector3;for(d=0,D=N.length;d<D;++d){var S,L;for(w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)k(n[w+0]),k(n[w+1]),k(n[w+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function C(e,t,r){p.fromArray(s,3*e),f.fromArray(s,3*t),A.fromArray(s,3*r),M.fromArray(a,2*e),g.fromArray(a,2*t),y.fromArray(a,2*r);var i=f.x-p.x,n=A.x-p.x,o=f.y-p.y,u=A.y-p.y,c=f.z-p.z,d=A.z-p.z,N=g.x-M.x,D=y.x-M.x,w=g.y-M.y,T=y.y-M.y,x=1/(N*T-D*w);v.set((T*i-w*n)*x,(T*o-w*u)*x,(T*c-w*d)*x),m.set((N*n-D*i)*x,(N*u-D*o)*x,(N*d-D*c)*x),l[e].add(v),l[t].add(v),l[r].add(v),h[e].add(m),h[t].add(m),h[r].add(m)}function k(e){z.fromArray(o,3*e),O.copy(z),E=l[e],I.copy(E),I.sub(z.multiplyScalar(z.dot(E))).normalize(),b.crossVectors(O,E),j=b.dot(h[e]),x=j<0?-1:1,c[4*e]=I.x,c[4*e+1]=I.y,c[4*e+2]=I.z,c[4*e+3]=x}},mergeBufferGeometries:function(t,r){for(var i=null!==t[0].index,n=new Set(Object.keys(t[0].attributes)),s=new Set(Object.keys(t[0].morphAttributes)),o={},a={},u=new e.BufferGeometry,c=0,l=0;l<t.length;++l){var h=t[l];if(i!==(null!==h.index))return null;for(var d in h.attributes){if(!n.has(d))return null;void 0===o[d]&&(o[d]=[]),o[d].push(h.attributes[d])}for(var d in h.morphAttributes){if(!s.has(d))return null;void 0===a[d]&&(a[d]=[]),a[d].push(h.morphAttributes[d])}if(u.userData.mergedUserData=u.userData.mergedUserData||[],u.userData.mergedUserData.push(h.userData),r){var p;if(i)p=h.index.count;else{if(void 0===h.attributes.position)return null;p=h.attributes.position.count}u.addGroup(c,p,l),c+=p}}if(i){var f=0,A=[];for(l=0;l<t.length;++l){for(var M=t[l].index,g=0;g<M.count;++g)A.push(M.getX(g)+f);f+=t[l].attributes.position.count}u.setIndex(A)}for(var d in o){var y=this.mergeBufferAttributes(o[d]);if(!y)return null;u.setAttribute(d,y)}for(var d in a){var v=a[d][0].length;if(0===v)break;for(u.morphAttributes=u.morphAttributes||{},u.morphAttributes[d]=[],l=0;l<v;++l){var m=[];for(g=0;g<a[d].length;++g)m.push(a[d][g][l]);var N=this.mergeBufferAttributes(m);if(!N)return null;u.morphAttributes[d].push(N)}}return u},mergeBufferAttributes:function(t){for(var r,i,n,s=0,o=0;o<t.length;++o){var a=t[o];if(a.isInterleavedBufferAttribute)return null;if(void 0===r&&(r=a.array.constructor),r!==a.array.constructor)return null;if(void 0===i&&(i=a.itemSize),i!==a.itemSize)return null;if(void 0===n&&(n=a.normalized),n!==a.normalized)return null;s+=a.array.length}var u=new r(s),c=0;for(o=0;o<t.length;++o)u.set(t[o].array,c),c+=t[o].array.length;return new e.BufferAttribute(u,i,n)},interleaveAttributes:function(t){for(var r,i=0,n=0,s=0,o=t.length;s<o;++s){var a=t[s];if(void 0===r&&(r=a.array.constructor),r!==a.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;i+=a.array.length,n+=a.itemSize}var u=new e.InterleavedBuffer(new r(i),n),c=0,l=[],h=["getX","getY","getZ","getW"],d=["setX","setY","setZ","setW"],p=0;for(o=t.length;p<o;p++){var f=(a=t[p]).itemSize,A=a.count,M=new e.InterleavedBufferAttribute(u,f,c,a.normalized);l.push(M),c+=f;for(var g=0;g<A;g++)for(var y=0;y<f;y++)M[d[y]](g,a[h[y]](g))}return l},estimateBytesUsed:function(e){var t=0;for(var r in e.attributes){var i=e.getAttribute(r);t+=i.count*i.itemSize*i.array.BYTES_PER_ELEMENT}var n=e.getIndex();return t+(n?n.count*n.itemSize*n.array.BYTES_PER_ELEMENT:0)},mergeVertices:function(t,r){void 0===r&&(r=1e-4),r=Math.max(r,Number.EPSILON);for(var i={},n=t.getIndex(),s=t.getAttribute("position"),o=n?n.count:s.count,a=0,u=Object.keys(t.attributes),c={},l={},h=[],d=["getX","getY","getZ","getW"],p=0,f=u.length;p<f;p++)c[m=u[p]]=[],(T=t.morphAttributes[m])&&(l[m]=new Array(T.length).fill().map((function(){return[]})));var A=Math.log10(1/r),M=Math.pow(10,A);for(p=0;p<o;p++){var g=n?n.getX(p):p,y="",v=0;for(f=u.length;v<f;v++)for(var m=u[v],N=(w=t.getAttribute(m)).itemSize,D=0;D<N;D++)y+=~~(w[d[D]](g)*M)+",";if(y in i)h.push(i[y]);else{for(v=0,f=u.length;v<f;v++){m=u[v];var w=t.getAttribute(m),T=t.morphAttributes[m],x=(N=w.itemSize,c[m]),E=l[m];for(D=0;D<N;D++){var j=d[D];if(x.push(w[j](g)),T)for(var I=0,b=T.length;I<b;I++)E[I].push(T[I][j](g))}}i[y]=a,h.push(a),a++}}var z=t.clone();for(p=0,f=u.length;p<f;p++){m=u[p];var O=t.getAttribute(m),S=new O.array.constructor(c[m]);if(w=new e.BufferAttribute(S,O.itemSize,O.normalized),z.setAttribute(m,w),m in l)for(v=0;v<l[m].length;v++){var L=t.morphAttributes[m][v],C=(S=new L.array.constructor(l[m][v]),new e.BufferAttribute(S,L.itemSize,L.normalized));z.morphAttributes[m][v]=C}}return z.setIndex(h),z}},qt='\nvar config, transcoderPending, _BasisFile;\nself.onmessage = function(e) {\n var message = e.data;\n switch (message.type) {\n case "init":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case "transcode":\n transcoderPending.then(function() {\n try {\n var result = transcode(message.buffer);\n var width = result.width;\n var height = result.height;\n var hasAlpha = result.hasAlpha;\n var mipmaps = result.mipmaps;\n var format = result.format;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({ type: "transcode", id: message.id, width, height, hasAlpha, mipmaps, format }, buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({ type: "error", id: message.id, error: error.message });\n }\n });\n break;\n default: break;\n }\n};\n\nfunction init(wasmBinary) {\n var BasisModule;\n transcoderPending = new Promise(function(resolve) {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n BASIS(BasisModule); // eslint-disable-line no-undef\n }).then(function() {\n _BasisFile = BasisModule.BasisFile;\n BasisModule.initializeBasis();\n self.postMessage({ type: "initialized" });\n });\n}\n\nfunction transcode(buffer) {\n var basisFile = new _BasisFile(new Uint8Array(buffer));\n var width = basisFile.getImageWidth(0, 0);\n var height = basisFile.getImageHeight(0, 0);\n var levels = basisFile.getNumLevels(0);\n var hasAlpha = basisFile.getHasAlpha();\n function cleanup() {\n basisFile.close();\n basisFile.delete();\n }\n if (!hasAlpha) {\n switch (config.format) {\n case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA\n config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;\n break;\n default: break;\n }\n }\n if (!width || !height || !levels) {\n cleanup();\n throw new Error("BasisTextureLoader: Invalid .basis file");\n }\n if (!basisFile.startTranscoding()) {\n cleanup();\n throw new Error("BasisTextureLoader: .startTranscoding failed");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var mipWidth = basisFile.getImageWidth(0, mip);\n var mipHeight = basisFile.getImageHeight(0, mip);\n var dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, config.format));\n var status = basisFile.transcodeImage(dst, 0, mip, config.format, 0, hasAlpha);\n if (!status) {\n cleanup();\n throw new Error("BasisTextureLoader: .transcodeImage failed.");\n }\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight });\n }\n cleanup();\n return { width, height, hasAlpha, mipmaps, format: config.format };\n}\n',Wt={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC4:4,cTFBC5:5,cTFBC7_M6_OPAQUE_ONLY:6,cTFBC7_M5:7,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFATC_RGB:11,cTFATC_RGBA_INTERPOLATED_ALPHA:12,cTFRGBA32:13,cTFRGB565:14,cTFBGR565:15,cTFRGBA4444:16},Zt={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779},Xt=((Vt={})[Wt.cTFBC1]=Zt.COMPRESSED_RGB_S3TC_DXT1_EXT,Vt[Wt.cTFBC3]=Zt.COMPRESSED_RGBA_S3TC_DXT5_EXT,Vt),Kt=function(t){function r(e){void 0===e&&(e={});var r=t.call(this)||this;return r.allowHosts=e.allowHosts,r.networkSubscribe=e.networkSubscribe,r}return Se(r,t),r.setTranscoderPath=function(e){return this.transcoderPath=e,this},r.setWorkerLimit=function(e){return this.workerLimit=e,this},r.isInitialized=function(){return 0!==this.workerPool.filter((function(e){return e._initialized})).length},r.detectSupport=function(e){var t=this.workerConfig;if(t.astcSupported=!!e.extensions.get("WEBGL_compressed_texture_astc"),t.bptcSupported=!!e.extensions.get("EXT_texture_compression_bptc"),t.etcSupported=!!e.extensions.get("WEBGL_compressed_texture_etc1"),t.dxtSupported=!!e.extensions.get("WEBGL_compressed_texture_s3tc"),t.pvrtcSupported=!!e.extensions.get("WEBGL_compressed_texture_pvrtc")||!!e.extensions.get("WEBKIT_WEBGL_compressed_texture_pvrtc"),t.astcSupported)t.format=r.BASIS_FORMAT.cTFASTC_4x4;else if(t.bptcSupported)t.format=r.BASIS_FORMAT.cTFBC7_M5;else if(t.dxtSupported)t.format=r.BASIS_FORMAT.cTFBC3;else if(t.pvrtcSupported)t.format=r.BASIS_FORMAT.cTFPVRTC1_4_RGBA;else{if(!t.etcSupported)throw new Error("BasisTextureLoader: No suitable compressed texture format found.");t.format=r.BASIS_FORMAT.cTFETC1}return this},r.prototype.load=function(e,t,i,n){return St(e,{responseType:"arraybuffer",allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe},(function(i,s){if(i)n(i);else{var o=function(e){return t(e,s.meta)},a=s.body;if(r.taskCache.has(a))return r.taskCache.get(a).promise.then(o).catch(n);r._createTexture(a,e).then(o).catch(n)}}),i)},r._createTexture=function(t,i){var n,s,o=this,a=t.byteLength,u=this._allocateWorker(a).then((function(e){return n=e,s=o.workerNextTaskID++,new Promise((function(e,r){n._callbacks[s]={resolve:e,reject:r},n.postMessage({type:"transcode",id:s,buffer:t},[t])}))})).then((function(t){var r,i=o.workerConfig,n=t.width,s=t.height,a=t.mipmaps;switch(t.format){case Wt.cTFASTC_4x4:r=new e.CompressedTexture(a,n,s,e.RGBA_ASTC_4x4_Format);break;case Wt.cTFBC1:case Wt.cTFBC3:r=new e.CompressedTexture(a,n,s,Xt[i.format],e.UnsignedByteType);break;case Wt.cTFETC1:r=new e.CompressedTexture(a,n,s,e.RGB_ETC1_Format);break;case Wt.cTFPVRTC1_4_RGB:r=new e.CompressedTexture(a,n,s,e.RGB_PVRTC_4BPPV1_Format);break;case Wt.cTFPVRTC1_4_RGBA:r=new e.CompressedTexture(a,n,s,e.RGBA_PVRTC_4BPPV1_Format);break;default:throw new Error("BasisTextureLoader: No supported format available.")}return r.minFilter=1===a.length?e.LinearFilter:e.LinearMipmapLinearFilter,r.magFilter=e.LinearFilter,r.generateMipmaps=!1,r.needsUpdate=!0,r}));return u.catch((function(){return!0})).then((function(){n&&s&&(n._taskLoad-=a,delete n._callbacks[s])})),r.taskCache.set(t,{url:i,promise:u}),u},r._initTranscoder=function(){var t=this;if(!this.transcoderPending){var r=new e.FileLoader;r.setPath(this.transcoderPath);var i=new Promise((function(e,t){r.load("basis_transcoder.js",e,void 0,t)})),n=new e.FileLoader;n.setPath(this.transcoderPath),n.setResponseType("arraybuffer");var s=new Promise((function(e,t){n.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([i,s]).then((function(e){var r=e[0],i=e[1],n=["/* basis_transcoder.js */",r,"/* worker */",qt].join("\n");t.workerSourceURL=URL.createObjectURL(new Blob([n])),t.transcoderBinary=i}))}return this.transcoderPending},r._allocateWorker=function(e){var t=this;return this._initTranscoder().then((function(){if(t.workerPool.length<t.workerLimit){var r=function(e){var t=new Worker(e);return Object.assign(t,{_callbacks:{},_initialized:!1,_taskLoad:0})}(t.workerSourceURL);r._callbacks={},r._initialized=!1,r._taskLoad=0,r.postMessage({type:"init",config:t.workerConfig,transcoderBinary:t.transcoderBinary}),r.onmessage=function(e){var t=e.data;switch(t.type){case"initialized":r._initialized=!0,console.log("BasisTextureLoader: basis loader initialized");break;case"transcode":r._callbacks[t.id].resolve(t);break;case"error":r._callbacks[t.id].reject(t);break;default:console.error('BasisTextureLoader: Unexpected message, "'+t.type+'"')}},t.workerPool.push(r)}else t.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));var i=t.workerPool[t.workerPool.length-1];return i._taskLoad+=e,i}))},r.prototype.dispose=function(){for(var e=0;e<r.workerPool.length;e++)r.workerPool[e].terminate();return r.workerPool.length=0,this},r.taskCache=new WeakMap,r.BASIS_FORMAT=Wt,r.DXT_FORMAT=Zt,r.DXT_FORMAT_MAP=Xt,r.transcoderPath="https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/",r.transcoderBinary=null,r.transcoderPending=null,r.workerLimit=1,r.workerPool=[],r.workerNextTaskID=1,r.workerSourceURL="",r.workerConfig={format:null,astcSupported:!1,bptcSupported:!1,etcSupported:!1,dxtSupported:!1,pvrtcSupported:!1},r}(e.Loader),Jt=(new e.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function $t(t,r){return new e.BufferAttribute(t,r)}function er(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function tr(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function rr(t){var r=t.indices,i=t.vertices,n=t.uvs,s=new e.BufferGeometry;return s.setIndex($t(new Uint32Array(r),1)),s.setAttribute("position",$t(new Float32Array(i),3)),Re(n)||s.setAttribute("uv",$t(new Float32Array(n),2)),s.applyMatrix4(Jt),s.computeVertexNormals(),s}function ir(t,r,i,n){var s=Kt.isInitialized();t=kt(t,Object.assign({key:"texture",basisLoaderInitialized:s},r));var o=new Kt({allowHosts:i,networkSubscribe:n});if(/\.basis(\?|$)/.test(t)){var a={sourceFile:t,needsUpdate:!0,wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter};return new Promise((function(e,r){o.load(t,(function(t){e(Object.assign(t,a))}),(function(){}),(function(e){r(e)}))}))}var u={sourceFile:t,needsUpdate:!0,wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter},c=new Pt({allowHosts:i,networkSubscribe:n});return new Promise((function(r,i){c.load(t,(function(t){var i=new e.Texture(t),n=i.dispose;i.dispose=function(){n.call(i),/^blob\:/.test(t.src)&&URL.revokeObjectURL(t.src)},r(Object.assign(i,u))}),Qe,(function(e){return i(e)}))}))}function nr(e){var t=new ut;return e.catch((function(){return null})).then((function(e){t.uniforms.map.value=e,t.uniforms.exposure.value=3.3})),t}var sr=Ht.parse("\nmessage Model {\n repeated Chunk chunks = 1;\n}\nmessage Chunk {\n required Vertices vertices = 1;\n required Faces faces = 2;\n required string name = 3;\n optional string texture = 4;\n}\nmessage Vertices {\n repeated float xyz = 1 [packed=true];\n repeated float uvs = 2 [packed=true];\n}\nmessage Faces {\n repeated uint32 indices = 1 [packed=true];\n}\n").root.lookup("Model");function or(t,r,i,n,s,o,a){void 0===s&&(s={});for(var u=0,c=t;u<c.length;u++){var l=c[u];l.chunkName=tr(l.name),l.floorName=er(l.name),l.texture&&(l.texture=i[l.chunkName]=i[l.chunkName]||r+l.texture)}t.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)}));var h=[],d=[],p=Promise.resolve();return(p=(p=p.then((function(){return Ft((function(){for(var r=0;r<t.length;r++){var i,u=t[r],c=er(u.name),l=h[c]=h[c]||{geometries:[],materials:[]},d=rr({vertices:u.vertices.xyz,uvs:u.vertices.uvs,indices:u.faces.indices});if(d.name="model_geo_chunk_"+r,l.geometries.push(d),u.texture)(i=nr(u.texture in s?s[u.texture]:s[u.texture]=ir(u.texture,n,o,a))).name="model_mtl_chunk_"+r,l.materials.push(i);else(i=new ut).defines.USE_MAP=!1,i.uniforms.color.value=new e.Color(16777215),i.name="model_mtl_chunk_"+r,l.materials.push(i)}}))}))).then((function(){return Ft((function(){for(var e=0;e<h.length;e++){var t=h[e];if(t){var r=Gt.mergeBufferGeometries(t.geometries,!0);t.geometries.forEach((function(e){return e.dispose()}));var i=new Ke(r,t.materials);i.floorIndex=e,i.name="model_floor_"+e,d.push(i)}}}))}))).then((function(){var e=Object.keys(s).map((function(e){return s[e].then((function(){}))}));return Promise.all(e).then((function(){return d}))}))}function ar(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(t>96?e.size=Math.min(e.size||1/0,100):t>48?e.size=Math.min(e.size||1/0,200):t>24?e.size=Math.min(e.size||1/0,400):t>12&&(e.size=Math.min(e.size||1/0,800))),e}var ur={OutWindow:function(){this._windowSize=0}};ur.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},ur.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},ur.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},ur.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},ur.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},ur.OutWindow.prototype.copyBlock=function(e,t){var r=this._pos-e-1;for(r<0&&(r+=this._windowSize);t--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},ur.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},ur.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},ur.RangeDecoder=function(){},ur.RangeDecoder.prototype.setStream=function(e){this._stream=e},ur.RangeDecoder.prototype.releaseStream=function(){this._stream=null},ur.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},ur.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,r=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,r=r<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return r},ur.RangeDecoder.prototype.decodeBit=function(e,t){var r=e[t],i=(this._range>>>11)*r;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},ur.initBitModels=function(e,t){for(;t--;)e[t]=1024},ur.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},ur.BitTreeDecoder.prototype.init=function(){ur.initBitModels(this._models,1<<this._numBitLevels)},ur.BitTreeDecoder.prototype.decode=function(e){for(var t=1,r=this._numBitLevels;r--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},ur.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,r=1,i=0,n=0;n<this._numBitLevels;++n)r=r<<1|(t=e.decodeBit(this._models,r)),i|=t<<n;return i},ur.reverseDecode2=function(e,t,r,i){for(var n,s=1,o=0,a=0;a<i;++a)s=s<<1|(n=r.decodeBit(e,t+s)),o|=n<<a;return o},ur.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new ur.BitTreeDecoder(8),this._numPosStates=0},ur.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new ur.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new ur.BitTreeDecoder(3)},ur.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(ur.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},ur.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},ur.Decoder2=function(){this._decoders=[]},ur.Decoder2.prototype.init=function(){ur.initBitModels(this._decoders,768)},ur.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},ur.Decoder2.prototype.decodeWithMatchByte=function(e,t){var r,i,n=1;do{if(r=t>>7&1,t<<=1,n=n<<1|(i=e.decodeBit(this._decoders,(1+r<<8)+n)),r!==i){for(;n<256;)n=n<<1|e.decodeBit(this._decoders,n);break}}while(n<256);return 255&n},ur.LiteralDecoder=function(){},ur.LiteralDecoder.prototype.create=function(e,t){var r;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new ur.Decoder2},ur.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},ur.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},ur.Decoder=function(){this._outWindow=new ur.OutWindow,this._rangeDecoder=new ur.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new ur.BitTreeDecoder(4),this._lenDecoder=new ur.LenDecoder,this._repLenDecoder=new ur.LenDecoder,this._literalDecoder=new ur.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new ur.BitTreeDecoder(6),this._posSlotDecoder[1]=new ur.BitTreeDecoder(6),this._posSlotDecoder[2]=new ur.BitTreeDecoder(6),this._posSlotDecoder[3]=new ur.BitTreeDecoder(6)},ur.Decoder.prototype.setDictionarySize=function(e){return!(e<0||(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),0))},ur.Decoder.prototype.setLcLpPb=function(e,t,r){var i=1<<r;return!(e>8||t>4||r>4||(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,0))},ur.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),ur.initBitModels(this._isMatchDecoders,192),ur.initBitModels(this._isRep0LongDecoders,192),ur.initBitModels(this._isRepDecoders,12),ur.initBitModels(this._isRepG0Decoders,12),ur.initBitModels(this._isRepG1Decoders,12),ur.initBitModels(this._isRepG2Decoders,12),ur.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},ur.Decoder.prototype.decode=function(e,t,r){var i,n,s,o,a,u,c=0,l=0,h=0,d=0,p=0,f=0,A=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();r<0||f<r;)if(i=f&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+i))n=this._literalDecoder.getDecoder(f++,A),A=c>=7?n.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(l)):n.decodeNormal(this._rangeDecoder),this._outWindow.putByte(A),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))s=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+i)&&(c=c<7?9:11,s=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?o=h:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?o=d:(o=p,p=d),d=h),h=l,l=o),0===s&&(s=2+this._repLenDecoder.decode(this._rangeDecoder,i),c=c<7?8:11);else if(p=d,d=h,h=l,s=2+this._lenDecoder.decode(this._rangeDecoder,i),c=c<7?7:10,(a=this._posSlotDecoder[s<=5?s-2:3].decode(this._rangeDecoder))>=4){if(l=(2|1&a)<<(u=(a>>1)-1),a<14)l+=ur.reverseDecode2(this._posDecoders,l-a-1,this._rangeDecoder,u);else if(l+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(l+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===l)break;return!1}}else l=a;if(l>=f||l>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(l,s),f+=s,A=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},ur.Decoder.prototype.setDecoderProperties=function(e){var t,r,i,n,s;return!(e.size<5)&&(r=(t=e.readByte())%9,i=(t=~~(t/9))%5,n=~~(t/5),!!this.setLcLpPb(r,i,n)&&(s=e.readByte(),s|=e.readByte()<<8,s|=e.readByte()<<16,s+=16777216*e.readByte(),this.setDictionarySize(s)))},ur.decompress=function(e,t,r,i){var n=new ur.Decoder;if(!n.setDecoderProperties(e))throw"Incorrect stream properties";if(!n.decode(t,r,i))throw"Error in data stream";return!0},ur.decompressFile=function(e,t){var r,i=new ur.Decoder;if(!i.setDecoderProperties(e))throw"Incorrect stream properties";if(r=e.readByte(),r|=e.readByte()<<8,r|=e.readByte()<<16,r+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!i.decode(e,t,r))throw"Error in data stream";return!0};var cr="undefined"!=typeof Worker&&"undefined"!=typeof Blob,lr="";if(cr)try{var hr=new Blob(['\n self.onmessage = function (event) {\n var Packet = event.data;\n var Result = null;\n try {\n if (!Packet.PacketID) {\n throw new Error(\'No incoming id.\');\n }\n if (!Packet.Data) {\n throw new Error(\'No input data.\');\n }\n if (Packet.Type == \'compress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n // C: encoding data\n Result = Util.compressFile(Packet.Data, null, Packet.Level, null);\n } else if (Packet.Type == \'decompress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n var inStream = {\n data: Packet.Data,\n offset: 0,\n readByte () {\n return this.data[this.offset++];\n }\n };\n var partLength = inStream.data.length;\n var outStream = {\n data: [],\n offset: 0,\n writeByte (value) {\n var partIndex = Math.floor(this.offset / partLength);\n if (!this.data[partIndex]) {\n this.data[partIndex] = new Uint8Array(partLength);\n }\n this.data[partIndex][this.offset % partLength] = value;\n this.offset++;\n }\n }\n // C: decoding data\n\n LZMA.decompressFile(inStream, outStream);\n Result = new Uint8Array(outStream.offset)\n for (var i = 0; i < outStream.offset; i++) {\n Result[i] = outStream.data[Math.floor(i / partLength)][i % partLength];\n }\n }\n postMessage({ PacketID: Packet.PacketID, Result, Error: null }, [Result.buffer]);\n } catch (error) {\n postMessage({ PacketID: Packet.PacketID, Error: error.toString() });\n }\n };\n\n\n /*\n Copyright (c) 2011 Juan Mellado\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n /*\n References:\n - "LZMA SDK" by Igor Pavlov\n http://www.7-zip.org/sdk.html\n */\n\n var LZMA = LZMA || {};\n\n LZMA.OutWindow = function(){\n this._windowSize = 0;\n };\n\n LZMA.OutWindow.prototype.create = function(windowSize){\n if ( (!this._buffer) || (this._windowSize !== windowSize) ){\n this._buffer = [];\n }\n this._windowSize = windowSize;\n this._pos = 0;\n this._streamPos = 0;\n };\n\n LZMA.OutWindow.prototype.flush = function(){\n var size = this._pos - this._streamPos;\n if (size !== 0){\n while(size --){\n this._stream.writeByte(this._buffer[this._streamPos ++]);\n }\n if (this._pos >= this._windowSize){\n this._pos = 0;\n }\n this._streamPos = this._pos;\n }\n };\n\n LZMA.OutWindow.prototype.releaseStream = function(){\n this.flush();\n this._stream = null;\n };\n\n LZMA.OutWindow.prototype.setStream = function(stream){\n this.releaseStream();\n this._stream = stream;\n };\n\n LZMA.OutWindow.prototype.init = function(solid){\n if (!solid){\n this._streamPos = 0;\n this._pos = 0;\n }\n };\n\n LZMA.OutWindow.prototype.copyBlock = function(distance, len){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n while(len --){\n if (pos >= this._windowSize){\n pos = 0;\n }\n this._buffer[this._pos ++] = this._buffer[pos ++];\n if (this._pos >= this._windowSize){\n this.flush();\n }\n }\n };\n\n LZMA.OutWindow.prototype.putByte = function(b){\n this._buffer[this._pos ++] = b;\n if (this._pos >= this._windowSize){\n this.flush();\n }\n };\n\n LZMA.OutWindow.prototype.getByte = function(distance){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n return this._buffer[pos];\n };\n\n LZMA.RangeDecoder = function(){\n };\n\n LZMA.RangeDecoder.prototype.setStream = function(stream){\n this._stream = stream;\n };\n\n LZMA.RangeDecoder.prototype.releaseStream = function(){\n this._stream = null;\n };\n\n LZMA.RangeDecoder.prototype.init = function(){\n var i = 5;\n\n this._code = 0;\n this._range = -1;\n\n while(i --){\n this._code = (this._code << 8) | this._stream.readByte();\n }\n };\n\n LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){\n var result = 0, i = numTotalBits, t;\n\n while(i --){\n this._range >>>= 1;\n t = (this._code - this._range) >>> 31;\n this._code -= this._range & (t - 1);\n result = (result << 1) | (1 - t);\n\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n }\n\n return result;\n };\n\n LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){\n var prob = probs[index],\n newBound = (this._range >>> 11) * prob;\n\n if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){\n this._range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 0;\n }\n\n this._range -= newBound;\n this._code -= newBound;\n probs[index] -= prob >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 1;\n };\n\n LZMA.initBitModels = function(probs, len){\n while(len --){\n probs[len] = 1024;\n }\n };\n\n LZMA.BitTreeDecoder = function(numBitLevels){\n this._models = [];\n this._numBitLevels = numBitLevels;\n };\n\n LZMA.BitTreeDecoder.prototype.init = function(){\n LZMA.initBitModels(this._models, 1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){\n var m = 1, i = this._numBitLevels;\n\n while(i --){\n m = (m << 1) | rangeDecoder.decodeBit(this._models, m);\n }\n return m - (1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < this._numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(this._models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.LenDecoder = function(){\n this._choice = [];\n this._lowCoder = [];\n this._midCoder = [];\n this._highCoder = new LZMA.BitTreeDecoder(8);\n this._numPosStates = 0;\n };\n\n LZMA.LenDecoder.prototype.create = function(numPosStates){\n for (; this._numPosStates < numPosStates; ++ this._numPosStates){\n this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n }\n };\n\n LZMA.LenDecoder.prototype.init = function(){\n var i = this._numPosStates;\n LZMA.initBitModels(this._choice, 2);\n while(i --){\n this._lowCoder[i].init();\n this._midCoder[i].init();\n }\n this._highCoder.init();\n };\n\n LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){\n if (rangeDecoder.decodeBit(this._choice, 0) === 0){\n return this._lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this._choice, 1) === 0){\n return 8 + this._midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this._highCoder.decode(rangeDecoder);\n };\n\n LZMA.Decoder2 = function(){\n this._decoders = [];\n };\n\n LZMA.Decoder2.prototype.init = function(){\n LZMA.initBitModels(this._decoders, 0x300);\n };\n\n LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){\n var symbol = 1;\n\n do{\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){\n var symbol = 1, matchBit, bit;\n\n do{\n matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit){\n while(symbol < 0x100){\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }\n break;\n }\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.LiteralDecoder = function(){\n };\n\n LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){\n var i;\n\n if (this._coders\n && (this._numPrevBits === numPrevBits)\n && (this._numPosBits === numPosBits) ){\n return;\n }\n this._numPosBits = numPosBits;\n this._posMask = (1 << numPosBits) - 1;\n this._numPrevBits = numPrevBits;\n\n this._coders = [];\n\n i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i] = new LZMA.Decoder2();\n }\n };\n\n LZMA.LiteralDecoder.prototype.init = function(){\n var i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i].init();\n }\n };\n\n LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){\n return this._coders[( (pos & this._posMask) << this._numPrevBits)\n + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )];\n };\n\n LZMA.Decoder = function(){\n this._outWindow = new LZMA.OutWindow();\n this._rangeDecoder = new LZMA.RangeDecoder();\n this._isMatchDecoders = [];\n this._isRepDecoders = [];\n this._isRepG0Decoders = [];\n this._isRepG1Decoders = [];\n this._isRepG2Decoders = [];\n this._isRep0LongDecoders = [];\n this._posSlotDecoder = [];\n this._posDecoders = [];\n this._posAlignDecoder = new LZMA.BitTreeDecoder(4);\n this._lenDecoder = new LZMA.LenDecoder();\n this._repLenDecoder = new LZMA.LenDecoder();\n this._literalDecoder = new LZMA.LiteralDecoder();\n this._dictionarySize = -1;\n this._dictionarySizeCheck = -1;\n\n this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6);\n };\n\n LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){\n if (dictionarySize < 0){\n return false;\n }\n if (this._dictionarySize !== dictionarySize){\n this._dictionarySize = dictionarySize;\n this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);\n this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) );\n }\n return true;\n };\n\n LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){\n var numPosStates = 1 << pb;\n\n if (lc > 8 || lp > 4 || pb > 4){\n return false;\n }\n\n this._literalDecoder.create(lp, lc);\n\n this._lenDecoder.create(numPosStates);\n this._repLenDecoder.create(numPosStates);\n this._posStateMask = numPosStates - 1;\n\n return true;\n };\n\n LZMA.Decoder.prototype.init = function(){\n var i = 4;\n\n this._outWindow.init(false);\n\n LZMA.initBitModels(this._isMatchDecoders, 192);\n LZMA.initBitModels(this._isRep0LongDecoders, 192);\n LZMA.initBitModels(this._isRepDecoders, 12);\n LZMA.initBitModels(this._isRepG0Decoders, 12);\n LZMA.initBitModels(this._isRepG1Decoders, 12);\n LZMA.initBitModels(this._isRepG2Decoders, 12);\n LZMA.initBitModels(this._posDecoders, 114);\n\n this._literalDecoder.init();\n\n while(i --){\n this._posSlotDecoder[i].init();\n }\n\n this._lenDecoder.init();\n this._repLenDecoder.init();\n this._posAlignDecoder.init();\n this._rangeDecoder.init();\n };\n\n LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){\n var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0,\n posState, decoder2, len, distance, posSlot, numDirectBits;\n\n this._rangeDecoder.setStream(inStream);\n this._outWindow.setStream(outStream);\n\n this.init();\n\n while(outSize < 0 || nowPos64 < outSize){\n posState = nowPos64 & this._posStateMask;\n\n if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){\n decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte);\n\n if (state >= 7){\n prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) );\n }else{\n prevByte = decoder2.decodeNormal(this._rangeDecoder);\n }\n this._outWindow.putByte(prevByte);\n\n state = state < 4? 0: state - (state < 10? 3: 6);\n\n }else{\n\n if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){\n len = 0;\n if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){\n if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){\n state = state < 7? 9: 11;\n len = 1;\n }\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){\n distance = rep1;\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){\n distance = rep2;\n }else{\n distance = rep3;\n rep3 = rep2;\n }\n rep2 = rep1;\n }\n rep1 = rep0;\n rep0 = distance;\n }\n if (len === 0){\n len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 8: 11;\n }\n }else{\n rep3 = rep2;\n rep2 = rep1;\n rep1 = rep0;\n\n len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 7: 10;\n\n posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder);\n if (posSlot >= 4){\n\n numDirectBits = (posSlot >> 1) - 1;\n rep0 = (2 | (posSlot & 1) ) << numDirectBits;\n\n if (posSlot < 14){\n rep0 += LZMA.reverseDecode2(this._posDecoders,\n rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);\n }else{\n rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4;\n rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);\n if (rep0 < 0){\n if (rep0 === -1){\n break;\n }\n return false;\n }\n }\n }else{\n rep0 = posSlot;\n }\n }\n\n if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){\n return false;\n }\n\n this._outWindow.copyBlock(rep0, len);\n nowPos64 += len;\n prevByte = this._outWindow.getByte(0);\n }\n }\n\n this._outWindow.flush();\n this._outWindow.releaseStream();\n this._rangeDecoder.releaseStream();\n\n return true;\n };\n\n LZMA.Decoder.prototype.setDecoderProperties = function(properties){\n var value, lc, lp, pb, dictionarySize;\n\n if (properties.size < 5){\n return false;\n }\n\n value = properties.readByte();\n lc = value % 9;\n value = ~~(value / 9);\n lp = value % 5;\n pb = ~~(value / 5);\n\n if ( !this.setLcLpPb(lc, lp, pb) ){\n return false;\n }\n\n dictionarySize = properties.readByte();\n dictionarySize |= properties.readByte() << 8;\n dictionarySize |= properties.readByte() << 16;\n dictionarySize += properties.readByte() * 16777216;\n\n return this.setDictionarySize(dictionarySize);\n };\n\n LZMA.decompress = function(properties, inStream, outStream, outSize){\n var decoder = new LZMA.Decoder();\n\n if ( !decoder.setDecoderProperties(properties) ){\n throw "Incorrect stream properties";\n }\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n\n LZMA.decompressFile = function(inStream, outStream){\n var decoder = new LZMA.Decoder(), outSize;\n\n if ( !decoder.setDecoderProperties(inStream) ){\n throw "Incorrect stream properties";\n }\n\n outSize = inStream.readByte();\n outSize |= inStream.readByte() << 8;\n outSize |= inStream.readByte() << 16;\n outSize += inStream.readByte() * 16777216;\n\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n'],{type:"text/javascript"});lr=URL.createObjectURL(hr)}catch(e){}var dr=function(){function e(){var e=this;if(this.callCounter=0,this.requests=[],!cr)throw new Error("LZMACaller cannot work in this broswer.");var t=this.worker=new Worker(lr);t.onmessage=function(t){var r,i,n=t.data,s=n.PacketID,o=n.Result,a=n.Error;a?null===(i=e.requests[s])||void 0===i||i.onCompleteCallback(new Error(a)):null===(r=e.requests[s])||void 0===r||r.onCompleteCallback(null,o),delete e.requests[s]},t.onerror=function(e){return console.error(e)}}return e.prototype.compress=function(e,t,r){var i=++this.callCounter;this.requests[i]={onCompleteCallback:r},this.worker.postMessage({Type:"compress",PacketID:i,Data:e,Level:t},[e.buffer])},e.prototype.decompress=function(e,t){var r=++this.callCounter;this.requests[r]={onCompleteCallback:t},this.worker.postMessage({Type:"decompress",PacketID:r,Data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=cr,e}();function pr(e){return Array.prototype.reduce.call(e,(function(e,t,r){return e|t<<8*r}),0)}function fr(e){for(var t=new Uint8Array(e),r=pr(t.slice(0,4)),i=[],n=[],s=4+4*r,o=0;o<r;o++)n[o]=pr(t.slice(4+4*o,8+4*o)),i[o]=o===r-1?t.subarray(s,s+n[o]):t.slice(s,s+n[o]),s+=n[o];return dr.support?function(e){for(var t=[],r=e.length,i=function(r){t.push(new Promise((function(t,i){var n=new dr;n.decompress(e[r],(function(e,r){if(n.terminate(),e)return i(e);t(r)}))})))},n=0;n<r;n++)i(n);return Promise.all(t)}(i):Promise.resolve(function(e){for(var t,r=[],i=e.length,n=function(i){var n={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},s=n.data.length,o={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/s);this.data[t]||(this.data[t]=new Uint8Array(s)),this.data[t][this.offset%s]=e,this.offset++}};ur.decompressFile(n,o),t=new Uint8Array(o.offset);for(var a=0;a<o.offset;a++)t[a]=o.data[Math.floor(a/s)][a%s];r.push(t)},s=0;s<i;s++)n(s);return r}(i))}function Ar(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}var Mr=Ht.parse("\nmessage Model {\n repeated Mesh meshes = 1;\n}\nmessage Mesh {\n required string name = 1;\n repeated Chunk chunks = 2;\n repeated Matrix matrix = 3;\n}\nmessage Matrix {\n repeated float elements = 1;\n}\nmessage Chunk {\n required Geometry geometry = 2;\n repeated Material material = 3;\n}\nmessage Geometry {\n required Position position = 1;\n optional UV uv = 2;\n optional UV uv2 = 3;\n required Normal normal = 4;\n repeated Group groups = 5;\n}\nmessage Position {\n repeated float array = 1[packed=true];\n}\nmessage UV {\n repeated float array = 1[packed=true];\n}\nmessage Normal {\n repeated float array = 1[packed=true];\n}\nmessage Group {\n required uint32 start = 1;\n required uint32 count = 2;\n required uint32 materialIndex = 3;\n}\nmessage Material {\n optional Color kd = 1;\n optional Color ks = 2;\n optional Color ke = 3;\n optional string mapkd = 4;\n optional string mapks = 5;\n optional string mapke = 6;\n optional string norm = 7;\n optional string mapbump = 8;\n optional string bump = 9;\n optional string mapd = 10;\n optional float ns = 11;\n optional float d = 12;\n optional float tr = 13;\n optional string mapkdrepeat = 14;\n}\nmessage Color {\n repeated float rgb = 1;\n}\n").root.lookup("Model"),gr={};function yr(t,r,i,n,s){var o,a=[],u=[];function c(t,o,a){var c=function(t){var r=t.position,i=t.normal,n=t.uv,s=t.uv2,o=t.groups,a=new e.BufferGeometry;return a.setAttribute("position",new e.BufferAttribute(new Float32Array(r.array),3)),i&&a.setAttribute("normal",new e.BufferAttribute(new Float32Array(i.array),3)),n&&a.setAttribute("uv",new e.BufferAttribute(new Float32Array(n.array),2)),s&&a.setAttribute("uv2",new e.BufferAttribute(new Float32Array(s.array),2)),o.forEach((function(e){return a.addGroup(e.start,e.count,e.materialIndex)})),a}(t);c.applyMatrix4(a);var l=new e.Vector3,h=new e.Quaternion,d=new e.Vector3;a.decompose(l,h,d),d.x*d.y*d.z<0&&c.attributes.normal&&c.attributes.position&&c.attributes.uv&&function(e){for(var t=[0,0,0],r=0;r<e.attributes.normal.array.length/9;r++)t[0]=e.attributes.normal.array[9*r],t[1]=e.attributes.normal.array[9*r+1],t[2]=e.attributes.normal.array[9*r+2],e.attributes.normal.array[9*r]=e.attributes.normal.array[9*r+6],e.attributes.normal.array[9*r+1]=e.attributes.normal.array[9*r+7],e.attributes.normal.array[9*r+2]=e.attributes.normal.array[9*r+8],e.attributes.normal.array[9*r+6]=t[0],e.attributes.normal.array[9*r+7]=t[1],e.attributes.normal.array[9*r+8]=t[2];for(r=0;r<e.attributes.position.array.length/9;r++)t[0]=e.attributes.position.array[9*r],t[1]=e.attributes.position.array[9*r+1],t[2]=e.attributes.position.array[9*r+2],e.attributes.position.array[9*r]=e.attributes.position.array[9*r+6],e.attributes.position.array[9*r+1]=e.attributes.position.array[9*r+7],e.attributes.position.array[9*r+2]=e.attributes.position.array[9*r+8],e.attributes.position.array[9*r+6]=t[0],e.attributes.position.array[9*r+7]=t[1],e.attributes.position.array[9*r+8]=t[2];for(r=0;r<e.attributes.uv.array.length/6;r++)t[0]=e.attributes.uv.array[6*r],t[1]=e.attributes.uv.array[6*r+1],e.attributes.uv.array[6*r]=e.attributes.uv.array[6*r+4],e.attributes.uv.array[6*r+1]=e.attributes.uv.array[6*r+5],e.attributes.uv.array[6*r+4]=t[0],e.attributes.uv.array[6*r+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(c);var p=o.map((function(t){var o=function(t,r,i,n,s){var o={sourceFile:null,needsUpdate:!0,wrapS:e.RepeatWrapping,wrapT:e.RepeatWrapping};function a(t,a){return gr[t]?Promise.resolve(gr[t]):new Promise((function(u,c){var l=new Pt({allowHosts:n,networkSubscribe:s});Ar(t)||(t=r+t),-1!==(t=(t=t.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).split("?")[0]).indexOf(".png")&&(t=t.split(".png")[0]+".png"),-1!==t.indexOf(".jpg")&&(t=t.split(".jpg")[0]+".jpg"),0===t.indexOf("//")&&(t="https:"+t),t=kt(t,Object.assign({key:"texture"},i,{size:64})),l.load(t,(function(r){var i=new e.Texture(r),n=i.dispose;i.dispose=function(){n.call(i),/^blob\:/.test(r.src)&&URL.revokeObjectURL(r.src)},a&&Object.assign(i.repeat,a),Object.assign(i,o,{sourceFile:t}),i.updateMatrix(),gr[t]=i,u(i)}),Qe,(function(e){return c(e.error)}))}))}var u=[],c=new ut,l=c.uniforms;l.exposure.value=4.3;var h,d=c.defines;if(d.USE_MAP=!1,d.USE_UV=!1,t.hasOwnProperty("kd")&&(l.diffuse.value=(new e.Color).fromArray(t.kd.rgb)),t.hasOwnProperty("mapkd")){var p=void 0;if(t.mapkdrepeat){var f=t.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),A=f[0],M=f[1];p=new e.Vector2(A,M)}u.push(a(t.mapkd,p).then((function(e){d.USE_MAP=!0,d.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix})).catch((function(e){})))}return t.hasOwnProperty("ks")&&(l.specular.value=(new e.Color).fromArray(t.ks.rgb)),t.hasOwnProperty("mapks")&&u.push(a(t.mapks).then((function(e){l.specularMap.value=e})).catch((function(e){}))),t.hasOwnProperty("ke")&&(l.emissive.value=(new e.Color).fromArray(t.ke.rgb)),t.hasOwnProperty("mapke")&&u.push(a(t.mapke).then((function(e){l.emissiveMap.value=e})).catch((function(e){}))),t.hasOwnProperty("norm")&&u.push(a(t.norm).then((function(e){l.normalMap.value=e})).catch((function(e){}))),t.hasOwnProperty("mapbump")&&u.push(a(t.mapbump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),t.hasOwnProperty("bump")&&u.push(a(t.bump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),t.hasOwnProperty("ns")&&(l.shininess.value=t.ns),t.hasOwnProperty("d")&&(h=t.d)>=0&&h<1&&(l.originOpacity.value=h),t.hasOwnProperty("tr")&&(h=1-t.tr)>=0&&h<1&&(l.originOpacity.value=h),l.originOpacity.value<1&&(c.transparent=!0),{material:c,textureReady:Promise.all(u).then((function(){}))}}(t,r,i,n,s),a=o.material,c=o.textureReady;return u.push(c),a}));return new Ke(c,p)}return(o=t,Mr.decode(o)).meshes.forEach((function(t){var r=t.name,i=t.chunks,n=t.matrix;"Ceiling"!==r&&"CeilingDrop"!==r&&n.map((function(t){var n,s=new e.Matrix4;if(s.elements=t.elements,1===i.length){var o=i[0],u=o.geometry,l=o.material;n=c(u,l,s)}else n=new $e,i.forEach((function(e,t){var r=c(e.geometry,e.material,s);r.name="chunk"+t,n.add(r)}));n.floorIndex=0,n.name=r,a.push(n)}))})),Promise.all(u).catch((function(){})).then((function(){return a}))}function vr(){Object.keys(gr).forEach((function(e){gr[e].dispose(),delete gr[e]}))}function mr(t){var r;return new((r=e.Triangle).bind.apply(r,Ce([void 0],t.map((function(t){return new e.Vector3(t.x,t.y,t.z)})),!1)))}var Nr={at3d:function(e,t){for(var r=ar(t.imageOptions,e.textures.length),i={},n=0,s=e.textures;n<s.length;n++){var o=s[n];i[o]=ir(o,r,t.allowHosts,t.networkSubscribe)}var a={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return St.async(e.file,a)})).then((function(e){return fr(e.body)})).then((function(e){return Ft((function(){for(var t=[],r=0,i=e;r<i.length;r++){var n=i[r],s=sr.decode(n);t.push.apply(t,s.chunks)}return t}))})).then((function(n){return Ft((function(){return or(n,e.textureBase,e.textures.slice(),r,i,t.allowHosts,t.networkSubscribe)}))}))},pbm:function(e,t){for(var r=ar(t.imageOptions,e.textures.length),i={},n=0,s=e.textures;n<s.length;n++){var o=s[n];i[o]=ir(o,r,t.allowHosts,t.networkSubscribe)}var a={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return St.async(e.file,a)})).then((function(e){return Ft((function(){var t=new Uint8Array(e.body),r=sr.decode(t);return[].concat(r.chunks)}))})).then((function(n){return Ft((function(){return or(n,e.textureBase,e.textures.slice(),r,i,t.allowHosts,t.networkSubscribe)}))}))},dome:function(e,t){var r={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return vr()})).then((function(){return St.async(e.file,r)})).then((function(r){return yr(new Uint8Array(r.body),e.textureBase,t.imageOptions,t.allowHosts,t.networkSubscribe)}))},domez:function(e,t){var r={responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe};return Promise.resolve().then((function(){return vr()})).then((function(){return St.async(e.file,r)})).then((function(e){return fr(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),r=new Uint8Array(t),i=0;return e.forEach((function(e){r.set(e,i),i+=e.length})),r})).then((function(r){return yr(r,e.textureBase,t.imageOptions,t.allowHosts,t.networkSubscribe)}))}},Dr=function(t){function r(r){void 0===r&&(r={});var i=t.call(this)||this;return i.empty=!1,i.name="model",i.loaded=!1,i.bvhs=[],i.bounding=new e.Box3,i.shownFloor=null,i.floorLength=0,i.networkSubscribe=r.networkSubscribe,i.allowHosts=r.allowHosts,i}return Se(r,t),Object.defineProperty(r.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),r.prototype.getEdges=function(t){var r;void 0===t&&(t=30/180*Math.PI);for(var i=Math.cos(t),n=[],s=0,o=this.children;s<o.length;s++){var a=o[s];if(a instanceof Ke){for(var u={},c=["a","b","c"],l=Gt.mergeVertices(a.geometry),h=l.getAttribute("position").array,d=(null===(r=l.getIndex())||void 0===r?void 0:r.array)||[],p=[],f=[],A=0,M=h.length;A<M;A+=3)p.push(new e.Vector3(h[A],h[A+1],h[A+2]));for(A=0,M=d.length;A<M;A+=3){var g=d[A],y=d[A+1],v=d[A+2],m=(new e.Vector3).crossVectors(p[y].clone().sub(p[g]),p[v].clone().sub(p[g])).normalize();f.push({a:g,b:y,c:v,normal:m})}for(A=0,M=f.length;A<M;A++)for(var N=f[A],D=0;D<3;D++){var w=N[c[D]],T=N[c[(D+1)%3]],x=[Math.min(w,T),Math.max(w,T)];void 0===u[E=x[0]+"-"+x[1]]?u[E]={index1:x[0],index2:x[1],face1:A}:u[E].face2=A}for(var E in u){var j=u[E];if(void 0===j.face2||f[j.face1].normal.dot(f[j.face2].normal)<=i){var I=p[j.index1],b=p[j.index2];n.push(new e.Line3(I,b))}}l.dispose(),p.length=0,f.length=0}}return n},r.prototype.hasFloors=function(){return this.hasFloors_()},r.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof Ke&&(e[t.floorIndex]=!0)})),e.length},r.prototype.show=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var i=this.shownFloor,n=null,s=null!==(e=t[1])&&void 0!==e?e:.1,o=0!==t.length;this.shownFloor=n=o?t[0]:null,this.traverse((function(e){e instanceof Ke&&e.material.forEach((function(t){null===n||n===e.floorIndex?t.opacity=1:t.opacity=s}))})),i!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},r.prototype.intersectRaycaster=function(t,r){var i=t.ray,n=i.origin,s=i.direction;if(Re(r))if(Re(this.shownFloor)){var o=this.floorLength;r=[];for(var a=0;a<o;a++)r.push(a)}else r=[this.shownFloor];var u=[],c=[];Array.isArray(r)?c.push.apply(c,r):c.push(r);for(var l=function(r){var i=h.bvhs&&h.bvhs[r];if(i)(o=i.intersectRay(n,s,!0).map((function(t){var r=t.intersectionPoint,i=t.triangle,s=new e.Vector3(r.x,r.y,r.z);return{point:s,face:{normal:mr(i).getNormal(new e.Vector3)},distance:n.distanceTo(s)}}))).length&&u.push.apply(u,o);else{var o,a=[];h.traverse((function(e){e instanceof Ke&&e.floorIndex===r&&a.push(e)})),(o=t.intersectObjects(a).map((function(e){var t=e.face?{normal:e.face.normal}:void 0;return{point:e.point,face:t,distance:e.distance}}))).length&&u.push.apply(u,o)}},h=this,d=0,p=c;d<p.length;d++)l(p[d]);return u.filter((function(e){var r=e.distance;return r<=t.far&&r>=t.near})).sort((function(e,t){return e.distance-t.distance}))},r.prototype.buildBVH=function(){var e=this,t=[];this.traverse((function(e){e instanceof Ke&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var r=t.map((function(e){var t=e.reduce((function(e,t){return e+(t.index?t.index.array.length:t.attributes.position.array.length)}),0),r=new Float32Array(3*t);return e.reduce((function(e,t){for(var i=t.index?t.index.array:null,n=t.attributes.position.array,s=i?i.length:n.length/3,o=0;o<s;o++){var a=3*(e+o),u=i?3*i[o]:3*o;r[a+0]=n[u+0],r[a+1]=n[u+1],r[a+2]=n[u+2]}return e+s}),0),new gt(r,5)}));return this.bvhs=[],Promise.all(r.map((function(e){return new Promise((function(t){return e.splitNode(t)}))}))).then((function(){e.bvhs=r,e.bvhs.loaded=!0,e.emit("bvhLoaded")}))},r.prototype.load=function(t,r){var i=this;if(void 0===r&&(r={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var n=function(e,t){void 0===t&&(t=[]);var r=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!r)return"";for(var i=0,n=String(r[1]).trim().split(".").slice(1).reverse();i<n.length;i++){var s=n[i],o=t.indexOf(s);if(o>=0)return t[o]}return""}(t.file,Object.keys(Nr)),s=Nr[n];if(!s)throw new Error("[MODEL LOAD ERROR]: file type("+n+") does not support.");return s(t,{imageOptions:r,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}).then((function(t){for(var r=[],n=0,s=t;n<s.length;n++)(c=s[n]).traverse((function(e){e instanceof Ke&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),r.push(e.geometry.boundingBox))})),i.add(c);i.floorLength=i.hasFloors_(),i.bounding=function(t){for(var r=new e.Box3,i=0,n=t;i<n.length;i++){var s=n[i];r.union(s)}return r}(r);for(var o=i.bounding.getCenter(new e.Vector3),a=0,u=t;a<u.length;a++){var c;(c=u[a]).traverse((function(e){e instanceof Ke&&e.material.forEach((function(e){e.uniforms.modelCenter.value=o}))}))}r.length=0,i.emit("geometryLoaded"),i.emit("materialLoaded"),i.loaded=!0,qe((function(){return i.emit("loaded")}))})).catch((function(e){return i.emit("error",e),Promise.reject(e)}))},r.prototype.dispose=function(){for(this.off(),this.disposeGeometry(),this.disposeMaterial();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,delete this.bvhs.loaded},r}(Je);function wr(e){switch(e.getError()){case e.INVALID_ENUM:return new Error("webgl error: INVALID_ENUM");case e.INVALID_VALUE:return new Error("webgl error: INVALID_VALUE");case e.INVALID_OPERATION:return new Error("webgl error: INVALID_OPERATION");case e.INVALID_FRAMEBUFFER_OPERATION:return new Error("webgl error: INVALID_FRAMEBUFFER_OPERATION");case e.OUT_OF_MEMORY:return new Error("webgl error: OUT_OF_MEMORY");case e.CONTEXT_LOST_WEBGL:return new Error("webgl error: CONTEXT_LOST_WEBGL");default:return null}}Object.assign(Dr.prototype,{on:Nt.prototype.on,once:Nt.prototype.once,off:Nt.prototype.off,emit:Nt.prototype.emit,hasListener:Nt.prototype.hasListener});var Tr,xr={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-xr.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*xr.Bounce.In(2*e):.5*xr.Bounce.Out(2*e-1)+.5}}},Er="undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},jr=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map((function(t){return e._tweens[t]}))},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},e.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},e.prototype.update=function(e,t){void 0===e&&(e=Er()),void 0===t&&(t=!1);var r=Object.keys(this._tweens);if(0===r.length)return!1;for(;r.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<r.length;i++){var n=this._tweens[r[i]],s=!t;n&&!1===n.update(e,s)&&!t&&delete this._tweens[r[i]]}r=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),Ir={Linear:function(e,t){var r=e.length-1,i=r*t,n=Math.floor(i),s=Ir.Utils.Linear;return t<0?s(e[0],e[1],i):t>1?s(e[r],e[r-1],r-i):s(e[n],e[n+1>r?r:n+1],i-n)},Bezier:function(e,t){for(var r=0,i=e.length-1,n=Math.pow,s=Ir.Utils.Bernstein,o=0;o<=i;o++)r+=n(1-t,i-o)*n(t,o)*e[o]*s(i,o);return r},CatmullRom:function(e,t){var r=e.length-1,i=r*t,n=Math.floor(i),s=Ir.Utils.CatmullRom;return e[0]===e[r]?(t<0&&(n=Math.floor(i=r*(1+t))),s(e[(n-1+r)%r],e[n],e[(n+1)%r],e[(n+2)%r],i-n)):t<0?e[0]-(s(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[r]-(s(e[r],e[r],e[r-1],e[r-1],i-r)-e[r]):s(e[n?n-1:0],e[n],e[r<n+1?r:n+1],e[r<n+2?r:n+2],i-n)},Utils:{Linear:function(e,t,r){return(t-e)*r+e},Bernstein:function(e,t){var r=Ir.Utils.Factorial;return r(e)/r(t)/r(e-t)},Factorial:(Tr=[1],function(e){var t=1;if(Tr[e])return Tr[e];for(var r=e;r>1;r--)t*=r;return Tr[e]=t,t}),CatmullRom:function(e,t,r,i,n){var s=.5*(r-e),o=.5*(i-t),a=n*n;return(2*t-2*r+s+o)*(n*a)+(-3*t+3*r-2*s-o)*a+s*n+t}}},br=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),zr=new jr,Or=function(){function e(e,t){void 0===t&&(t=zr),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=xr.Linear.None,this._interpolationFunction=Ir.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=br.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},e.prototype.duration=function(e){return this._duration=e,this},e.prototype.start=function(e){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var t in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(t),this._valuesStart[t]=this._valuesStartRepeat[t];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==e?"string"==typeof e?Er()+parseFloat(e):e:Er(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(e,t,r,i){for(var n in r){var s=e[n],o=Array.isArray(s),a=o?"array":typeof s,u=!o&&Array.isArray(r[n]);if("undefined"!==a&&"function"!==a){if(u){var c=r[n];if(0===c.length)continue;c=c.map(this._handleRelativeValue.bind(this,s)),r[n]=[s].concat(c)}if("object"!==a&&!o||!s||u)void 0===t[n]&&(t[n]=s),o||(t[n]*=1),i[n]=u?r[n].slice().reverse():t[n]||0;else{for(var l in t[n]=o?[]:{},s)t[n][l]=s[l];i[n]=o?[]:{},this._setupProperties(s,t[n],r[n],i[n])}}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(e){return void 0===e&&(e=Er()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},e.prototype.resume=function(e){return void 0===e&&(e=Er()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},e.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop();return this},e.prototype.group=function(e){return this._group=e,this},e.prototype.delay=function(e){return this._delayTime=e,this},e.prototype.repeat=function(e){return this._initialRepeat=e,this._repeat=e,this},e.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},e.prototype.yoyo=function(e){return this._yoyo=e,this},e.prototype.easing=function(e){return this._easingFunction=e,this},e.prototype.interpolation=function(e){return this._interpolationFunction=e,this},e.prototype.chain=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this._chainedTweens=e,this},e.prototype.onStart=function(e){return this._onStartCallback=e,this},e.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},e.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},e.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},e.prototype.onStop=function(e){return this._onStopCallback=e,this},e.prototype.update=function(e,t){if(void 0===e&&(e=Er()),void 0===t&&(t=!0),this._isPaused)return!0;var r,i,n=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>n)return!1;t&&this.start(e)}if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),i=(e-this._startTime)/this._duration,i=0===this._duration||i>1?1:i;var s=this._easingFunction(i);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,i),1===i){if(this._repeat>0){for(r in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[r]||(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var o=0,a=this._chainedTweens.length;o<a;o++)this._chainedTweens[o].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(e,t,r,i){for(var n in r)if(void 0!==t[n]){var s=t[n]||0,o=r[n],a=Array.isArray(e[n]),u=Array.isArray(o);!a&&u?e[n]=this._interpolationFunction(o,i):"object"==typeof o&&o?this._updateProperties(e[n],s,o,i):"number"==typeof(o=this._handleRelativeValue(s,o))&&(e[n]=s+(o-s)*i)}},e.prototype._handleRelativeValue=function(e,t){return"string"!=typeof t?t:"+"===t.charAt(0)||"-"===t.charAt(0)?e+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(e){var t=this._valuesStartRepeat[e],r=this._valuesEnd[e];this._valuesStartRepeat[e]="string"==typeof r?this._valuesStartRepeat[e]+parseFloat(r):this._valuesEnd[e],this._valuesEnd[e]=t},e}(),Sr=br.nextId,Lr=zr,Cr=Lr.getAll.bind(Lr),kr=Lr.removeAll.bind(Lr),Pr=Lr.add.bind(Lr),_r=Lr.remove.bind(Lr),Br=Lr.update.bind(Lr),Ur={Easing:xr,Group:jr,Interpolation:Ir,now:Er,Sequence:br,nextId:Sr,Tween:Or,VERSION:"18.6.4",getAll:Cr,removeAll:kr,add:Pr,remove:_r,update:Br},Rr=Ur.Tween,Qr=Ur.Easing;function Yr(e,t,r,i){void 0===i&&(i=Qr.Linear.None);var n=[],s=[],o=[],a=[],u=Object.assign(new Rr(e).to(t,r).easing(i),{completed:!1,onCancel:function(e){return n.push(e),u},destroy:function(){if(u.stop(),Object.assign(this,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallback:null}),!u.completed)for(var e=0,t=n;e<t.length;e++)(0,t[e])();n.length=0,c()}});Object.assign(u,{onStart:function(e){return s.push(e),u},onUpdate:function(e){return o.push(e),u},onComplete:function(e){return a.push(e),u},_onStartCallback:function(e){for(var t=0,r=s;t<r.length;t++)(0,r[t])(e)},_onUpdateCallback:function(e,t){for(var r=0,i=o;r<i.length;r++)(0,i[r])(e,t);1===t&&0===u._repeat&&(u.completed=!0)},_onCompleteCallback:function(e){for(var t=0,r=a;t<r.length;t++)(0,r[t])(e)}}),qe((function(){return u.start()}));var c=We((function(e){!1===u.update(e)&&c()}));return u}function Fr(e,t){return Yr({progress:0},{progress:1},e,t)}var Vr=2*Math.PI;function Hr(e){return(e%Vr+Vr)%Vr}var Gr=Math.PI,qr=2*Gr;function Wr(e,t,r){return e+(t-e)*r}function Zr(e,t,r){return e=Hr(e),Wr((t=Hr(t))-e>Gr?e+qr:e-t>Gr?e-qr:e,t,r)}function Xr(e,t,r){if(e===t)return t;var i=t-e;return Math.abs(i)<=r?t:e+(i>0?1:-1)*r}var Kr="Panorama";function Jr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=[];e=e.map((function(e){return e.trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var i=0;i<e.length;i++){var n=0===i,s=i===e.length-1,o=e[i];n||(o=o.replace(/^\/+/,"")),s||(o=o.replace(/\/+$/,"")),r.push(o)}return r.join("/")}function $r(e){return e instanceof Error}function ei(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var r,i,n;if(Array.isArray(e)){if((r=e.length)!=t.length)return!1;for(i=r;0!=i--;)if(!ei(e[i],t[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((r=(n=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(i=r;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,n[i]))return!1;for(i=r;0!=i--;){var s=n[i];if(!ei(e[s],t[s]))return!1}return!0}return e!=e&&t!=t}function ti(e){return"number"==typeof e}function ri(e,t){void 0===t&&(t=!1);var r=typeof e;if("string"===r)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",n=e.length-1,s=0;s<n;s++)i+=ri(e[s],!1)+",";return n>-1&&(i+=ri(e[s],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return ri(e.toJSON(),t);var o=Object.keys(e).sort(),a=o.length;for(i="",s=0;s<a;){var u=o[s],c=ri(e[u],!0);void 0!==c&&(s&&""!==i&&(i+=","),i+=JSON.stringify(u)+":"+c),s++}return"{"+i+"}"}switch(r){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function ii(e){return String(ri(e,!1))}var ni=new WeakMap;function si(t,r,i){var n,s,o=JSON.stringify(r),a=JSON.stringify(t),u=function(e){var t,r,i,n=JSON.parse(e),s="undefined"!=typeof location?location.hostname:"",o=Date.now();if("object"!=typeof n)return new Error("input is not an object");if(0===s.length||Tt(s)||Et.filter((function(e){return xt(e,s)})).length>0){var a=String(null!==(t=n.certificate)&&void 0!==t?t:"");if(a){var u=new xe;return u.readCertPEM(a),{issuer:u.getSubjectString()}}return{issuer:"none"}}var c=String(null!==(r=n.certificate)&&void 0!==r?r:"");if(!c)return new Error("certificate is not existed.");var l=new xe;l.readCertPEM(c);var h=String(null!==(i=n._signature)&&void 0!==i?i:"");if(!h)return new Error("signature is not existed.");if(!1===function(e,t,r){var i=new xe;if("string"==typeof r?i.readCertPEM(r):i.readCertHex(r.hex),!1===ze(i))return!1;var n=new V;return n.readCertPubKeyHex(i.hex,6),!!n.verify(e,L(t))}(ii(function(e,t){for(var r={},i=0,n=Object.keys(e);i<n.length;i++){var s=n[i];-1===t.indexOf(s)&&(r[s]=e[s])}return r}(n,["_signature"])),h,l))return new Error("signature verify failed.");var d=new Date("string"==typeof n.expire_at&&/^\d+$/.test(n.expire_at)?Number(n.expire_at):n.expire_at);return o<d.getTime()?0===(Array.isArray(n.allow_hosts)?n.allow_hosts:[]).filter((function(e){return xt(e,s)})).length?function(e){return new Error("host("+JSON.stringify(e)+") is not allowed.")}(s):{issuer:l.getSubjectString()}:function(e){return new Error("date("+e.toString()+") expired.")}(d)}(a);t=JSON.parse(a),r=JSON.parse(o);var c={workCode:"",expire:new Date,allowHosts:[],uuid:Fe(),initial:{mode:Kr,latitude:0,longitude:0,panoIndex:0,fov:80},observers:[],issuer:u instanceof Error?"none":u.issuer,raw:{work:t,options:r}},l=null!==(n=t.base_url)&&void 0!==n?n:"";l&&"/"!==l[l.length-1]&&(l+="/");var h=function(e,t){var n,s=e;if(!0===r.jsonp&&(s=(s=e.replace(/([\?\#].*)?$/i,""))+"."+Ee(""+s).slice(0,7)+".jsonp"),!0===r.shortPath){var o=s.replace(l,"").split("."),a=null!==(n=o.shift())&&void 0!==n?n:"",u=o.join(".");s=Jr(l,Ee(a))+(u?"."+u:"")}var c=s.replace(l,"");return r.baseURL&&(s=Jr(r.baseURL,c)),i&&i(e,s,c,t),s},d=function(e,r){var i,n,s,o,a,u,c=e;if(!Ar(e)){var d=null!==(u=null!==(o=null!==(n=null===(i=t.panorama)||void 0===i?void 0:i.pano_high_cube_base_url)&&void 0!==n?n:null===(s=t.panorama)||void 0===s?void 0:s.pano_cube_base_url)&&void 0!==o?o:null===(a=t.panorama)||void 0===a?void 0:a.base_url)&&void 0!==u?u:"";d&&(d=Jr(d,String(r))),c=Jr(d,c)}return Ar(c)||(c=Jr(l,c)),h(c,"panorama")},p=function(e){var t=e;return Ar(t)||(t=Jr(l,e)),h(t,"model")},f=function(e,t){void 0===t&&(t="");var r=e;return Ar(r)||(r=Jr(t,r)),Ar(r)||(r=Jr(l,r)),h(r,"texture")};if(c.workCode=null!==(s=String(t.work_code||t.code||t.workCode))&&void 0!==s?s:"",c.expire=new Date("string"==typeof t.expire_at&&/^\d+$/.test(t.expire_at)?Number(t.expire_at):t.expire_at),c.allowHosts=t.allow_hosts||[],$r(u))return u;if(t.initial&&("Floorplan"!==t.initial.mode&&"Topview"!==t.initial.mode&&"Panorama"!==t.initial.mode&&"VRPanorama"!==t.initial.mode&&"Model"!==t.initial.mode&&"DepthPanorama"!==t.initial.mode||(c.initial.mode=t.initial.mode),ti(t.initial.latitude)&&(c.initial.latitude=t.initial.latitude),ti(t.initial.longitude)?c.initial.longitude=t.initial.longitude:ti(t.initial.heading)&&(c.initial.longitude=-(360*(t.initial.heading-.25)+90)/180*Math.PI),ti(t.initial.fov)&&(c.initial.fov=t.initial.fov),ti(t.initial.panoIndex)?c.initial.panoIndex=t.initial.panoIndex:ti(t.initial.pano_index)?c.initial.panoIndex=t.initial.pano_index:ti(t.initial.pano)&&(c.initial.panoIndex=t.initial.pano)),$r(u))return u;if(t.model){var A={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof t.model.bvh?A.bvh=t.model.bvh:"boolean"==typeof t.bvh&&(A.bvh=t.bvh),"boolean"==typeof t.model.async?A.async=t.model.async:"boolean"==typeof t.modelAsync&&(A.async=t.modelAsync),t.model.file?A.file=p(t.model.file):t.model.file_url&&(A.file=p(t.model.file_url)),t.model.textureBase?A.textureBase=t.model.textureBase:t.model.material_base_url&&(A.textureBase=t.model.material_base_url),Array.isArray(t.model.textures)?A.textures=t.model.textures.map((function(e){return f(e,A.textureBase)})):Array.isArray(t.model.material_textures)&&(A.textures=t.model.material_textures.map((function(e){return f(e,A.textureBase)}))),A.file&&(c.model=A)}if($r(u))return u;if(t.observers&&Array.isArray(t.observers)){var M=[];t.panorama&&(Array.isArray(t.panorama)?M=t.panorama:Array.isArray(t.panorama.list)?M=t.panorama.list:Array.isArray(t.panorama.info)&&(M=t.panorama.info));for(var g=0;g<t.observers.length;g++){var y={},v=t.observers[g];if(!v)break;var m=M[g]||{};v=Object.assign({},v,m,{active:!1!==v.active&&!1!==m.active}),y.panoIndex=g,y.active=!1!==v.active,y.loadable=!0===v.loadable,y.images={up:d(v.images?v.images.up:v.up,g),down:d(v.images?v.images.down:v.down,g),right:d(v.images?v.images.right:v.right,g),left:d(v.images?v.images.left:v.left,g),front:d(v.images?v.images.front:v.front,g),back:d(v.images?v.images.back:v.back,g)};var N=v.images?v.images.depth:v.depth;N&&(y.images.depth=d(N,g));var D=v.images?v.images.tiles:v.tiles;if(D&&(y.images.tiles=d(D,g)),v.position instanceof e.Vector3)y.position=v.position.clone();else{if(!Array.isArray(v.position))break;y.position=(new e.Vector3).fromArray(v.position)}if(v.standingPosition instanceof e.Vector3)y.standingPosition=v.standingPosition.clone();else if(Array.isArray(v.standingPosition))y.standingPosition=(new e.Vector3).fromArray(v.standingPosition);else if(v.standing_position instanceof e.Vector3)y.standingPosition=v.standing_position.clone();else{if(!Array.isArray(v.standing_position))break;y.standingPosition=(new e.Vector3).fromArray(v.standing_position)}if(v.quaternion instanceof e.Quaternion)y.quaternion=v.quaternion.clone();else if(Array.isArray(v.quaternion))y.quaternion=(new e.Quaternion).fromArray(v.quaternion);else{if(!v.quaternion)break;var w=v.quaternion,T=w.x,x=w.y,E=w.z,j=w.w;y.quaternion=new e.Quaternion(T,x,E,j)}if(Array.isArray(v.accessibleNodes)?y.accessibleNodes=v.accessibleNodes.slice():Array.isArray(v.accessible_nodes)&&(y.accessibleNodes=v.accessible_nodes.slice()),Array.isArray(v.visibleNodes)?y.visibleNodes=v.visibleNodes.slice():Array.isArray(v.visible_nodes)&&(y.visibleNodes=v.visible_nodes.slice()),ti(v.floorIndex)?y.floorIndex=v.floorIndex:ti(v.floor_index)?y.floorIndex=v.floor_index:y.floorIndex=0,v.video){var I={};"string"==typeof v.video.source&&(I.source=v.video.source),v.video.matrix instanceof e.Matrix4?I.matrix=v.video.matrix.clone():Array.isArray(v.video.matrix)&&(I.matrix=(new e.Matrix4).fromArray(v.video.matrix)),v.video.size instanceof e.Vector2?I.size=v.video.size.clone():Array.isArray(v.video.size)&&(I.size=(new e.Vector2).fromArray(v.video.size)),I.source&&I.matrix&&I.size&&(y.video=I)}c.observers[g]=y}}if($r(u))return u;for(var b=0,z=c.observers;b<z.length;b++){if(!(y=z[b]).accessibleNodes){y.accessibleNodes=[];for(var O=0;O<c.observers.length;O++)c.observers[O]!==y&&y.accessibleNodes.push(O)}if(!y.visibleNodes)for(y.visibleNodes=[],O=0;O<c.observers.length;O++)c.observers[O]!==y&&y.visibleNodes.push(O)}if($r(u))return u;var S=Dt(c);return ni.set(S,{work:a,options:o}),S}function oi(e,t,r){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var i=ni.get(e);if(i){if(t&&!ei(JSON.parse(i.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var n=si(e,null!=t?t:{},r);if($r(n))throw new Error("[PARSE FAILED]: "+n.message);return n}function ai(e){for(var t,r,i,n,s=e.workCode,o={pano_index:e.initial.panoIndex,pano:e.initial.panoIndex,longitude:e.initial.longitude,latitude:e.initial.latitude},a=null===(r=null===(t=e.model)||void 0===t?void 0:t.bvh)||void 0===r||r,u=null!==(n=null===(i=e.model)||void 0===i?void 0:i.async)&&void 0!==n&&n,c=e.model?{file_url:e.model.file,material_textures:e.model.textures.slice(),material_base_url:e.model.textureBase}:void 0,l={list:[]},h=[],d=0;d<e.observers.length;d++){var p=e.observers[d];h[d]={index:d,active:p.active,visible_nodes:p.visibleNodes.slice(),accessible_nodes:p.accessibleNodes.slice(),quaternion:{x:p.quaternion.x,y:p.quaternion.y,z:p.quaternion.z,w:p.quaternion.w},standing_position:p.standingPosition.toArray(),position:p.position.toArray(),floor:p.floorIndex,floor_index:p.floorIndex},l.list[d]={index:d,active:p.active,loadable:p.loadable,up:p.images.up,down:p.images.down,right:p.images.right,left:p.images.left,front:p.images.front,back:p.images.back},p.video&&(l.list[d].video={source:p.video.source,matrix:p.video.matrix.toArray(),size:p.video.size.toArray()}),p.images.depth&&(l.list[d].depth=p.images.depth),p.images.tiles&&(l.list[d].tiles=p.images.tiles)}var f={bvh:a,modelAsync:u,initial:o,observers:h,panorama:l,work_code:s};return c&&(f.model=c),JSON.stringify(f)}var ui=function(e){return Number(e)};function ci(e,t,r){var i;void 0===t&&(t=ui),void 0===r&&(r=!1);for(var n,s=1/0,o=0,a=e;o<a.length;o++){var u=a[o],c=t(u);c<=s&&(n=(i=[u,c])[0],s=i[1])}return r?[n,s]:n}const li=function(e,t,r,i){var n,s=["","webkit","Moz","MS","ms","o"],o=t.createElement?t.createElement("div"):i,a=Math.round,u=Math.abs,c=Date.now;function l(e,t,r){return setTimeout(g(e,r),t)}function h(e,t,r){return!!Array.isArray(e)&&(d(e,r[t],r),!0)}function d(e,t,r){var n;if(e)if(e.forEach)e.forEach(t,r);else if(e.length!==i)for(n=0;n<e.length;)t.call(r,e[n],n,e),n++;else for(n in e)e.hasOwnProperty(n)&&t.call(r,e[n],n,e)}function p(t,r,i){var n="DEPRECATED METHOD: "+r+"\n"+i+" AT \n";return function(){var r=new Error("get-stack-trace"),i=r&&r.stack?r.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=e.console&&(e.console.warn||e.console.log);return s&&s.call(e.console,n,i),t.apply(this,arguments)}}n="function"!=typeof Object.assign?function(e){if(e===i||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(n!==i&&null!==n)for(var s in n)n.hasOwnProperty(s)&&(t[s]=n[s])}return t}:Object.assign;var f=p((function(e,t,r){for(var n=Object.keys(t),s=0;s<n.length;)(!r||r&&e[n[s]]===i)&&(e[n[s]]=t[n[s]]),s++;return e}),"extend","Use `assign`."),A=p((function(e,t){return f(e,t,!0)}),"merge","Use `assign`.");function M(e,t,r){var i,s=t.prototype;(i=e.prototype=Object.create(s)).constructor=e,i._super=s,r&&n(i,r)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return"function"==typeof e?e.apply(t&&t[0]||i,t):e}function v(e,t){return e===i?t:e}function m(e,t,r){d(T(t),(function(t){e.addEventListener(t,r,!1)}))}function N(e,t,r){d(T(t),(function(t){e.removeEventListener(t,r,!1)}))}function D(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function w(e,t){return e.indexOf(t)>-1}function T(e){return e.trim().split(/\s+/g)}function x(e,t,r){if(e.indexOf&&!r)return e.indexOf(t);for(var i=0;i<e.length;){if(r&&e[i][r]==t||!r&&e[i]===t)return i;i++}return-1}function E(e){return Array.prototype.slice.call(e,0)}function j(e,t,r){for(var i=[],n=[],s=0;s<e.length;){var o=t?e[s][t]:e[s];x(n,o)<0&&i.push(e[s]),n[s]=o,s++}return r&&(i=t?i.sort((function(e,r){return e[t]>r[t]})):i.sort()),i}function I(e,t){for(var r,n,o=t[0].toUpperCase()+t.slice(1),a=0;a<s.length;){if((n=(r=s[a])?r+o:t)in e)return n;a++}return i}var b=1;function z(t){var r=t.ownerDocument||t;return r.defaultView||r.parentWindow||e}var O="ontouchstart"in e,S=I(e,"PointerEvent")!==i,L=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),C="touch",k="mouse",P=["x","y"],_=["clientX","clientY"];function B(e,t){var r=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&r.handler(t)},this.init()}function U(e,t,r){var n=r.pointers.length,s=r.changedPointers.length,o=1&t&&n-s==0,a=12&t&&n-s==0;r.isFirst=!!o,r.isFinal=!!a,o&&(e.session={}),r.eventType=t,function(e,t){var r=e.session,n=t.pointers,s=n.length;r.firstInput||(r.firstInput=R(t)),s>1&&!r.firstMultiple?r.firstMultiple=R(t):1===s&&(r.firstMultiple=!1);var o=r.firstInput,a=r.firstMultiple,l=a?a.center:o.center,h=t.center=Q(n);t.timeStamp=c(),t.deltaTime=t.timeStamp-o.timeStamp,t.angle=H(l,h),t.distance=V(l,h),function(e,t){var r=t.center,i=e.offsetDelta||{},n=e.prevDelta||{},s=e.prevInput||{};1!==t.eventType&&4!==s.eventType||(n=e.prevDelta={x:s.deltaX||0,y:s.deltaY||0},i=e.offsetDelta={x:r.x,y:r.y}),t.deltaX=n.x+(r.x-i.x),t.deltaY=n.y+(r.y-i.y)}(r,t),t.offsetDirection=F(t.deltaX,t.deltaY);var d=Y(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=a?function(e,t){return V(t[0],t[1],_)/V(e[0],e[1],_)}(a.pointers,n):1,t.rotation=a?function(e,t){return H(t[1],t[0],_)+H(e[1],e[0],_)}(a.pointers,n):0,t.maxPointers=r.prevInput?t.pointers.length>r.prevInput.maxPointers?t.pointers.length:r.prevInput.maxPointers:t.pointers.length,function(e,t){var r,n,s,o,a=e.lastInterval||t,c=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(c>25||a.velocity===i)){var l=t.deltaX-a.deltaX,h=t.deltaY-a.deltaY,d=Y(c,l,h);n=d.x,s=d.y,r=u(d.x)>u(d.y)?d.x:d.y,o=F(l,h),e.lastInterval=t}else r=a.velocity,n=a.velocityX,s=a.velocityY,o=a.direction;t.velocity=r,t.velocityX=n,t.velocityY=s,t.direction=o}(r,t);var p=e.element;D(t.srcEvent.target,p)&&(p=t.srcEvent.target),t.target=p}(e,r),e.emit("hammer.input",r),e.recognize(r),e.session.prevInput=r}function R(e){for(var t=[],r=0;r<e.pointers.length;)t[r]={clientX:a(e.pointers[r].clientX),clientY:a(e.pointers[r].clientY)},r++;return{timeStamp:c(),pointers:t,center:Q(t),deltaX:e.deltaX,deltaY:e.deltaY}}function Q(e){var t=e.length;if(1===t)return{x:a(e[0].clientX),y:a(e[0].clientY)};for(var r=0,i=0,n=0;n<t;)r+=e[n].clientX,i+=e[n].clientY,n++;return{x:a(r/t),y:a(i/t)}}function Y(e,t,r){return{x:t/e||0,y:r/e||0}}function F(e,t){return e===t?1:u(e)>=u(t)?e<0?2:4:t<0?8:16}function V(e,t,r){r||(r=P);var i=t[r[0]]-e[r[0]],n=t[r[1]]-e[r[1]];return Math.sqrt(i*i+n*n)}function H(e,t,r){r||(r=P);var i=t[r[0]]-e[r[0]],n=t[r[1]]-e[r[1]];return 180*Math.atan2(n,i)/Math.PI}B.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(z(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&N(this.element,this.evEl,this.domHandler),this.evTarget&&N(this.target,this.evTarget,this.domHandler),this.evWin&&N(z(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4},q="mousedown",W="mousemove mouseup";function Z(){this.evEl=q,this.evWin=W,this.pressed=!1,B.apply(this,arguments)}M(Z,B,{handler:function(e){var t=G[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:k,srcEvent:e}))}});var X={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},K={2:C,3:"pen",4:k,5:"kinect"},J="pointerdown",$="pointermove pointerup pointercancel";function ee(){this.evEl=J,this.evWin=$,B.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(J="MSPointerDown",$="MSPointerMove MSPointerUp MSPointerCancel"),M(ee,B,{handler:function(e){var t=this.store,r=!1,i=e.type.toLowerCase().replace("ms",""),n=X[i],s=K[e.pointerType]||e.pointerType,o=s==C,a=x(t,e.pointerId,"pointerId");1&n&&(0===e.button||o)?a<0&&(t.push(e),a=t.length-1):12&n&&(r=!0),a<0||(t[a]=e,this.callback(this.manager,n,{pointers:t,changedPointers:[e],pointerType:s,srcEvent:e}),r&&t.splice(a,1))}});var te={touchstart:1,touchmove:2,touchend:4,touchcancel:8},re="touchstart",ie="touchstart touchmove touchend touchcancel";function ne(){this.evTarget=re,this.evWin=ie,this.started=!1,B.apply(this,arguments)}function se(e,t){var r=E(e.touches),i=E(e.changedTouches);return 12&t&&(r=j(r.concat(i),"identifier",!0)),[r,i]}M(ne,B,{handler:function(e){var t=te[e.type];if(1===t&&(this.started=!0),this.started){var r=se.call(this,e,t);12&t&&r[0].length-r[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:C,srcEvent:e})}}});var oe={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ae="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=ae,this.targetIds={},B.apply(this,arguments)}function ce(e,t){var r=E(e.touches),i=this.targetIds;if(3&t&&1===r.length)return i[r[0].identifier]=!0,[r,r];var n,s,o=E(e.changedTouches),a=[],u=this.target;if(s=r.filter((function(e){return D(e.target,u)})),1===t)for(n=0;n<s.length;)i[s[n].identifier]=!0,n++;for(n=0;n<o.length;)i[o[n].identifier]&&a.push(o[n]),12&t&&delete i[o[n].identifier],n++;return a.length?[j(s.concat(a),"identifier",!0),a]:void 0}function le(){B.apply(this,arguments);var e=g(this.handler,this);this.touch=new ue(this.manager,e),this.mouse=new Z(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function he(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,de.call(this,t)):12&e&&de.call(this,t)}function de(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var r={x:t.clientX,y:t.clientY};this.lastTouches.push(r);var i=this.lastTouches;setTimeout((function(){var e=i.indexOf(r);e>-1&&i.splice(e,1)}),2500)}}function pe(e){for(var t=e.srcEvent.clientX,r=e.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var n=this.lastTouches[i],s=Math.abs(t-n.x),o=Math.abs(r-n.y);if(s<=25&&o<=25)return!0}return!1}M(ue,B,{handler:function(e){var t=oe[e.type],r=ce.call(this,e,t);r&&this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:C,srcEvent:e})}}),M(le,B,{handler:function(e,t,r){var i=r.pointerType==C,n=r.pointerType==k;if(!(n&&r.sourceCapabilities&&r.sourceCapabilities.firesTouchEvents)){if(i)he.call(this,t,r);else if(n&&pe.call(this,r))return;this.callback(e,t,r)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var fe=o?I(o.style,"touchAction"):i,Ae=fe!==i,Me="compute",ge="auto",ye="manipulation",ve="none",me="pan-x",Ne="pan-y",De=function(){if(!Ae)return!1;var t={},r=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(i){t[i]=!r||e.CSS.supports("touch-action",i)})),t}();function we(e,t){this.manager=e,this.set(t)}we.prototype={set:function(e){e==Me&&(e=this.compute()),Ae&&this.manager.element.style&&De[e]&&(this.manager.element.style[fe]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return d(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(w(e,ve))return ve;var t=w(e,me),r=w(e,Ne);return t&&r?ve:t||r?t?me:Ne:w(e,ye)?ye:ge}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,r=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var i=this.actions,n=w(i,ve)&&!De.none,s=w(i,Ne)&&!De["pan-y"],o=w(i,me)&&!De["pan-x"];if(n){var a=1===e.pointers.length,u=e.distance<2,c=e.deltaTime<250;if(a&&u&&c)return}if(!o||!s)return n||s&&6&r||o&&24&r?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Te=32;function xe(e){this.options=n({},this.defaults,e||{}),this.id=b++,this.manager=null,this.options.enable=v(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function Ee(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function je(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Ie(e,t){var r=t.manager;return r?r.get(e):e}function be(){xe.apply(this,arguments)}function ze(){be.apply(this,arguments),this.pX=null,this.pY=null}function Oe(){be.apply(this,arguments)}function Se(){xe.apply(this,arguments),this._timer=null,this._input=null}function Le(){be.apply(this,arguments)}function Ce(){be.apply(this,arguments)}function ke(){xe.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Pe(e,t){return(t=t||{}).recognizers=v(t.recognizers,Pe.defaults.preset),new _e(e,t)}function _e(e,t){this.options=n({},Pe.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new(this.options.inputClass||(S?ee:L?ue:O?le:Z))(this,U),this.touchAction=new we(this,this.options.touchAction),Be(this,!0),d(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Be(e,t){var r,i=e.element;i.style&&(d(e.options.cssProps,(function(n,s){r=I(i.style,s),t?(e.oldCssProps[r]=i.style[r],i.style[r]=n):i.style[r]=e.oldCssProps[r]||""})),t||(e.oldCssProps={}))}return xe.prototype={defaults:{},set:function(e){return n(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ie(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Ie(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===x(t,e=Ie(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Ie(e,this);var t=x(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,r=this.state;function i(r){t.manager.emit(r,e)}r<8&&i(t.options.event+Ee(r)),i(t.options.event),e.additionalEvent&&i(e.additionalEvent),r>=8&&i(t.options.event+Ee(r))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Te},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=n({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=Te);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},M(be,xe,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,r=e.eventType,i=6&t,n=this.attrTest(e);return i&&(8&r||!n)?16|t:i||n?4&r?8|t:2&t?4|t:2:Te}}),M(ze,be,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(Ne),24&e&&t.push(me),t},directionTest:function(e){var t=this.options,r=!0,i=e.distance,n=e.direction,s=e.deltaX,o=e.deltaY;return n&t.direction||(6&t.direction?(n=0===s?1:s<0?2:4,r=s!=this.pX,i=Math.abs(e.deltaX)):(n=0===o?1:o<0?8:16,r=o!=this.pY,i=Math.abs(e.deltaY))),e.direction=n,r&&i>t.threshold&&n&t.direction},attrTest:function(e){return be.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=je(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),M(Oe,be,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),M(Se,xe,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ge]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,i=e.distance<t.threshold,n=e.deltaTime>t.time;if(this._input=e,!i||!r||12&e.eventType&&!n)this.reset();else if(1&e.eventType)this.reset(),this._timer=l((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Te},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),M(Le,be,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),M(Ce,be,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return ze.prototype.getTouchAction.call(this)},attrTest:function(e){var t,r=this.options.direction;return 30&r?t=e.overallVelocity:6&r?t=e.overallVelocityX:24&r&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&r&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=je(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),M(ke,xe,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ye]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,i=e.distance<t.threshold,n=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(i&&n&&r){if(4!=e.eventType)return this.failTimeout();var s=!this.pTime||e.timeStamp-this.pTime<t.interval,o=!this.pCenter||V(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,o&&s?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=l((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return Te},failTimeout:function(){return this._timer=l((function(){this.state=Te}),this.options.interval,this),Te},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Pe.VERSION="2.0.7",Pe.defaults={domEvents:!1,touchAction:Me,enable:!0,inputTarget:null,inputClass:null,preset:[[Le,{enable:!1}],[Oe,{enable:!1},["rotate"]],[Ce,{direction:6}],[ze,{direction:6},["swipe"]],[ke],[ke,{event:"doubletap",taps:2},["tap"]],[Se]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},_e.prototype={set:function(e){return n(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var r;this.touchAction.preventDefaults(e);var i=this.recognizers,n=t.curRecognizer;(!n||n&&8&n.state)&&(n=t.curRecognizer=null);for(var s=0;s<i.length;)r=i[s],2===t.stopped||n&&r!=n&&!r.canRecognizeWith(n)?r.reset():r.recognize(e),!n&&14&r.state&&(n=t.curRecognizer=r),s++}},get:function(e){if(e instanceof xe)return e;for(var t=this.recognizers,r=0;r<t.length;r++)if(t[r].options.event==e)return t[r];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,r=x(t,e);-1!==r&&(t.splice(r,1),this.touchAction.update())}return this},on:function(e,t){if(e!==i&&t!==i){var r=this.handlers;return d(T(e),(function(e){r[e]=r[e]||[],r[e].push(t)})),this}},off:function(e,t){if(e!==i){var r=this.handlers;return d(T(e),(function(e){t?r[e]&&r[e].splice(x(r[e],t),1):delete r[e]})),this}},emit:function(e,r){this.options.domEvents&&function(e,r){var i=t.createEvent("Event");i.initEvent(e,!0,!0),i.gesture=r,r.target.dispatchEvent(i)}(e,r);var i=this.handlers[e]&&this.handlers[e].slice();if(i&&i.length){r.type=e,r.preventDefault=function(){r.srcEvent.preventDefault()};for(var n=0;n<i.length;)i[n](r),n++}},destroy:function(){this.element&&Be(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(Pe,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:Te,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:24,DIRECTION_ALL:30,Manager:_e,Input:B,TouchAction:we,TouchInput:ue,MouseInput:Z,PointerEventInput:ee,TouchMouseInput:le,SingleTouchInput:ne,Recognizer:xe,AttrRecognizer:be,Tap:ke,Pan:ze,Swipe:Ce,Pinch:Oe,Rotate:Le,Press:Se,on:m,off:N,each:d,merge:A,extend:f,assign:n,inherit:M,bindFn:g,prefixed:I}),Pe}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function hi(t,r,i){var n=r.offsetWidth,s=r.offsetHeight,o=r.getBoundingClientRect(),a=o.top,u=o.left;return i&&(u+=n*i.left,a+=s*(1-i.bottom-i.height),n*=i.width,s*=i.height),new e.Vector2((t.x-u)/n*2-1,-(t.y-a)/s*2+1)}(function(){try{var e=document.createElement("canvas");!window.WebGLRenderingContext||!e.getContext("webgl")&&e.getContext("experimental-webgl")}catch(e){return!1}})(),"undefined"!=typeof history&&"pushState"in history&&"replaceState"in history&&history;var di="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node",pi=di.match(/android/i)||di.match(/webos/i)||di.match(/ipad|iphone|ipod/i)||di.match(/iemobile/i)||di.match(/opera mini/i)||di.match(/blackberry/i)||di.match(/windows phone/i),fi=function(e){function t(r){var i=e.call(this)||this,n=t.parseArgs(r);return i.ready=!1,i.destroyed=!1,i.ident=n.ident,i.scene=n.scene,i.helper=n.helper,i.camera=n.camera,i.renderer=n.renderer,i.scissor=n.scissor,i.element=n.element,i.model=n.model,i.work=n.work,i.imageOptions=n.imageOptions,i.videoTexture=n.videoTexture,i.networkSubscribe=n.networkSubscribe,i.needsRender=!0,i.preventPanGesture=!1,i.preventTapGesture=!1,i.preventPinchGesture=!1,i.currentPanoIndex=n.panoIndex,Re(i.work.observers[i.currentPanoIndex])&&(i.currentPanoIndex=0),i.eventUnbinds=[n.element].concat(n.extraElements||[]).map((function(e){return i.bindEvents(e)})),qe((function(){return i.initAnimation.apply(i,n.initial).then((function(){return i.ready=!0}))})),i}return Se(t,e),t.parseArgs=function(e){return Le({},e)},t.initAnimationEndPose=function(e){return this.parseArgs(e).camera.copyPose()},t.prototype.initAnimation=function(e,t,r){return Promise.resolve()},t.prototype.bindExtraElement=function(e){for(var t=0,r=this.eventUnbinds;t<r.length;t++)if(r[t].element===e)return;this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=null,r=-1,i=0,n=this.eventUnbinds;i<n.length;i++){var s=n[i];if(r++,s.element===e){t=s;break}}t&&(t(),this.eventUnbinds.splice(r,1))},t.prototype.resize=function(){this.needsRender=!0},t.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0},t.prototype.updateWork=function(e,t,r,i){return!1},t.prototype.render=function(e){this.renderer.render(this.scene,this.camera)},t.prototype.destroy=function(){this.destroyed=!0,this.ready=!1,this.off();for(var e=0,t=this.eventUnbinds;e<t.length;e++)(0,t[e])();this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenCoordinates)},t.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var i={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()};t.moveStartCallback&&t.moveStartCallback(e,i),this.emit("moveToPano",e,r),this.currentPanoIndex=e,this.emit("panoArrived",e,{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},r),t.moveEndCallback&&t.moveEndCallback(e,i)},t.prototype.updateCamera=function(e,t,r){var i,n,s,o;void 0===e&&(e={});var a=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,u=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,c=null!==(s=e.fov)&&void 0!==s?s:this.camera.pose.fov,l=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=a!==this.camera.pose.longitude||u!==this.camera.pose.latitude,d=c!==this.camera.pose.fov,p=!l.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:u,fov:c,offset:l}),d&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),h&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),p&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(d||h||p)&&this.emit("cameraUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()},t),this.needsRender=!0},Object.defineProperty(t.prototype,"gesturing",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.onPanGesture=function(e){},t.prototype.onTapGesture=function(e){},t.prototype.onPinchGesture=function(e){},t.prototype.onMouseWheel=function(e){},t.prototype.onMouseMove=function(e){},t.prototype.onMouseOut=function(){},t.prototype.relativeClientPosition=function(e){return hi(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,r=function(e){var r=hi(e,t.element,t.scissor);return!(Math.abs(r.x)>1||Math.abs(r.y)>1)},i=new li.Manager(e),n=function(e){return e.session.firstInput||null};i.add(new li.Pan({threshold:10,pointers:0})),i.add(new li.Tap({interval:410})),i.add(new li.Pinch({threshold:0,pointers:2}).recognizeWith(i.get("pan"))),i.on("panstart pan",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventPanGesture&&t.onPanGesture(e)})),i.on("tap",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventTapGesture&&t.onTapGesture(e)})),i.on("pinchstart pinch pinchend",(function(e){var s=n(i);s&&!r(s.center)||!0!==t.preventPinchGesture&&t.onPinchGesture(e)}));var s=function(e){var i={x:e.clientX,y:e.clientY};r(i)&&t.onMouseWheel(e)},o=function(e){var i={x:e.clientX,y:e.clientY};r(i)?t.onMouseMove(e):t.onMouseOut()},a=function(){t.onMouseOut()};return function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent,s=function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent;return t.__mouseWheelWrapper=function(s){if(s=s||window.event,i&&s.preventDefault(),n&&(s.returnValue=!1),"DOMMouseScroll"==r||"mousewheel"==r){var o=s.wheelDelta;s.delta=o?o/120:-(s.delta||0)/3}t.call(e,s)}}(e,t);i?e.addEventListener(r,s,!1):n&&e.attachEvent("on"+r,s)}(e,s),pi||(li.on(e,"mousemove",o),li.on(e,"mouseout",a)),Object.assign((function(){i.destroy(),function(e,t){var r=document.mozFullScreen?"DOMMouseScroll":"mousewheel",i=!!window.addEventListener,n=!!window.attachEvent;t.__mouseWheelWrapper&&(i?e.removeEventListener(r,t.__mouseWheelWrapper,!1):n&&e.detachEvent("on"+r,t.__mouseWheelWrapper),delete t.__mouseWheelWrapper)}(e,s),pi||(li.off(e,"mousemove",o),li.off(e,"mouseout",a))}),{element:e})},t}(Nt),Ai=function(t){function r(e){var i=this,n=r.parseArgs(e);return(i=t.call(this,n)||this).defaultLongitude=n.defaultLongitude,i.defaultLatitude=n.defaultLatitude,i.defaultFov=n.defaultFov,i.maxFov=n.maxFov,i.minFov=n.minFov,i.maxLatitude=n.maxLatitude,i.minLatitude=n.minLatitude,i}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o,a,u,c=t.parseArgs.call(this,e);return Le(Le({},c),{defaultLongitude:null!==(r=e.defaultLongitude)&&void 0!==r?r:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultFov:null!==(n=e.defaultFov)&&void 0!==n?n:80,maxFov:null!==(s=e.maxFov)&&void 0!==s?s:120,minFov:null!==(o=e.minFov)&&void 0!==o?o:40,maxLatitude:null!==(a=e.maxLatitude)&&void 0!==a?a:+Math.PI/2,minLatitude:null!==(u=e.minLatitude)&&void 0!==u?u:-Math.PI/2})},r.initAnimationEndPose=function(e){var t,i,n,s=this.parseArgs(e),o=e.initial[0],a=null!==(t=o.longitude)&&void 0!==t?t:s.defaultLongitude,u=Math.max(s.minLatitude,Math.min(s.maxLatitude,null!==(i=o.latitude)&&void 0!==i?i:s.defaultLatitude)),c=null!==(n=o.fov)&&void 0!==n?n:s.defaultFov,l=r.prototype.cameraDistance.call(s);return{longitude:a,latitude:u,fov:c,offset:r.prototype.calculateCameraPosition.call(s,{longitude:u,latitude:u},l,null,!1).clone()}},r.prototype.destroy=function(){t.prototype.destroy.call(this)},r.prototype.updateWork=function(e,t,r,i){return this.work=e,this.currentPanoIndex=t.panoIndex,!0},r.prototype.resetModel=function(e,r){t.prototype.resetModel.call(this,e,r),this.updateCamera({longitude:this.defaultLongitude,latitude:this.defaultLatitude,fov:this.defaultFov},r,!1)},r.prototype.initAnimation=function(t,r,i){var n,s,o,a,u,c,l=this;if(this.destroyed)return Promise.resolve();var h=this.camera,d=this.model;this.preventPanGesture=!0,this.preventTapGesture=!0,this.preventPinchGesture=!0;var p=h.pose.longitude,f=h.pose.latitude,A=h.pose.fov,M=h.pose.offset.clone(),g=(null===(n=d.getMaterial())||void 0===n?void 0:n.modelAlpha)||0,y=null!==(o=null===(s=this.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==o?o:0,v=null!==(a=t.longitude)&&void 0!==a?a:this.defaultLongitude,m=Math.max(this.minLatitude,Math.min(this.maxLatitude,null!==(u=t.latitude)&&void 0!==u?u:this.defaultLatitude)),N=null!==(c=t.fov)&&void 0!==c?c:this.defaultFov,D=d.bounding.getCenter(new e.Vector3),w=this.cameraDistance(),T=this.calculateCameraPosition({longitude:m,latitude:m},w,null,!1),x={longitude:v,latitude:m,fov:N,offset:T.clone()};return this.emit("initAnimationWillStart",this.currentPanoIndex,x,i),new Promise((function(t){l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates);var n=function(e){var t=e.progress,r=Zr(p,v,t),n=Wr(f,m,t),s=Wr(A,N,t);l.updateCamera({longitude:r,latitude:n,fov:s,offset:l.camera.pose.offset},i,!1)},s=function(){n({progress:1}),l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates)};r>0?l.tweenCoordinates=Fr(r,Qr.Quadratic.InOut).onUpdate(n).onComplete(s):s(),l.tweenPosition&&(l.tweenPosition.destroy(),delete l.tweenPosition);var o=function(t){var r=t.progress,n=Wr(0,w,r),s=new e.Vector3(Wr(M.x-D.x,0,r),Wr(M.y-D.y,0,r),Wr(M.z-D.z,0,r)),o=Wr(g,1,r),a=Wr(y,0,r);d.setMaterial({modelAlpha:o,perspToOrtho:a});var u=l.calculateCameraPosition(l.camera.pose,n,s,!1);l.updateCamera({offset:u},i,!1)};s=function(){o({progress:1}),l.updateCamera(l.camera.copyPose(),i,!1),l.tweenPosition&&(l.tweenPosition.destroy(),delete l.tweenPosition),l.needsRender=!0,l.preventPanGesture=!1,l.preventTapGesture=!1,l.preventPinchGesture=!1,t(),l.emit("initAnimationEnded",l.currentPanoIndex,l.camera.copyPose(),i)},r>0?l.tweenPosition=Fr(r,Qr.Quadratic.InOut).onUpdate(o).onComplete(s).onCancel((function(){l.preventPanGesture=!1,l.preventTapGesture=!1,l.preventPinchGesture=!1,t(),l.emit("initAnimationEnded",l.currentPanoIndex,l.camera.copyPose(),i)})):s()}))},r.prototype.cameraDistance=function(){var e=this.model.bounding,t=this.camera.aspect,r=Math.pow(Math.pow(e.max.x-e.min.x+2,2)+Math.pow(e.max.y-e.min.y+2,2)+Math.pow(e.max.z-e.min.z+2,2),.5),i=r/2/Math.tan(Math.PI*this.defaultFov/360);return t<1&&(i/=t),isNaN(i)?r:i},r.prototype.calculateCameraPosition=function(t,r,i,n){var s=t.longitude,o=Math.max(-Math.PI/2+.01,Math.min(Math.PI/2-.01,t.latitude));n&&(o=Math.max(this.minLatitude,Math.min(this.maxLatitude,o)));var a=this.model.bounding.getCenter(new e.Vector3),u=r*Math.cos(o),c=new e.Vector3(Math.sin(s)*u+a.x,Math.sin(o)*r+a.y,Math.cos(s)*u+a.z);return null!==i&&c.add(i),c},r.prototype.updateCamera=function(e,t,r){var i,n,s;void 0===e&&(e={});var o=this,a=o.minFov,u=o.maxFov,c=o.maxLatitude,l=o.minLatitude,h=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,p=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,f=null!==(s=e.offset)&&void 0!==s?s:this.calculateCameraPosition({longitude:h,latitude:d},this.cameraDistance(),null,r);r&&(d=Math.max(l,Math.min(c,d)),p=Math.max(a,Math.min(u,p)));var A=h!==this.camera.pose.longitude||d!==this.camera.pose.latitude,M=p!==this.camera.pose.fov,g=!f.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:h,latitude:d,fov:p,offset:f}),M&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),A&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(M||A||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,Yt()},r.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),r=this.model.intersectRaycaster(e)[0];if(!r)return null;var i=ci(t,(function(e){return e.standingPosition.distanceTo(r.point)}),!0),n=i[0];return i[1]<5?this.work.observers.indexOf(n):null},r.prototype.coordinatesChangeWithOffset=function(e,t){var r=this.element,i=this.camera,n=r.offsetWidth,s=r.offsetHeight,o=2*t.x/n*i.fov/30,a=2*t.y/s*i.fov/30;return{longitude:Hr(e.longitude+o),latitude:Math.max(this.minLatitude,Math.min(this.maxLatitude,e.latitude+a))}},r.prototype.requestInteriaMovement=function(e,t){var r=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),n=i.longitude,s=i.latitude;this.updateCamera({longitude:n,latitude:s},t,!0);var o=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!o),o?qe((function(){r.requestInteriaMovement({x:.8*e.x,y:.8*e.y},t)})):this.interiaMovement=!1}},Object.defineProperty(r.prototype,"gesturing",{get:function(){return this.interiaMovement||void 0!==this.lastPanPoint||void 0!==this.lastPinchFov},enumerable:!1,configurable:!0}),r.prototype.onPanGesture=function(e){var t=this;if(!this.tweenCoordinates){this.interiaMovement=!1;var r=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.relativeClientPosition(e.center),n=this.camera.pose.latitude<Math.PI/6||i.y<0?-1:1,s=this.coordinatesChangeWithOffset(this.camera.pose,{x:r.x*n,y:r.y}),o=s.longitude,a=s.latitude,u=this.calculateCameraPosition({longitude:o,latitude:a},this.cameraDistance(),null,!0),c=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",c,e.isFinal)||this.emit("wantsPanGesture",{longitude:o,latitude:a,fov:this.camera.pose.fov,offset:u.clone()},e.isFinal)||(this.updateCamera({longitude:o,latitude:a,offset:u},!0,!0),this.emit("gesture","pan",c,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal&&(this.emit("wantsInteriaPan",this.camera.copyPose())||(this.interiaMovement=!0,Xe((function(r){var i=e.velocityX*r*n,s=e.velocityY*r,o=Math.sqrt(i*i+s*s);o>100&&(i=i/o*100,s=s/o*100),t.requestInteriaMovement({x:i,y:s},!0)})))))}},r.prototype.onTapGesture=function(t){if(this.interiaMovement=!1,!this.tweenPosition){var r=this.relativeClientPosition(t.center),i=new e.Raycaster;i.setFromCamera(r,this.camera);var n,s=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",s,!0)&&!this.emit("wantsTapGesture",i,r))this.emit("gesture","tap",s,!0),this.emit("tapGesture",i,r),Re(n=this.getForwardPanoIndexOrNot(i))||(this.emit("panoSelected",n),this.emit("wantsMoveToPano",n,{longitude:this.camera.pose.longitude,latitude:0},!0))}},r.prototype.onPinchGesture=function(e){this.interiaMovement=!1;var t=this.camera,r=this.lastPinchFov;if("pinchstart"===e.type)return delete this.lastPanPoint,void(this.lastPinchFov=t.fov);"pinchend"===e.type&&(delete this.lastPanPoint,delete this.lastPinchFov);var i="pinchend"===e.type;if(r){var n=r/e.scale,s=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",s,i)||this.emit("wantsPinchGesture",e.scale,n,i))return;this.updateCamera({fov:n},!0,!0),this.emit("gesture","pinch",s,i),this.emit("pinchGesture",e.scale,n,i)}},r.prototype.onMouseWheel=function(e){var t=this;this.interiaMovement=!1;var r=e.delta,i=this.minFov,n=this.maxFov,s=Math.max(i,Math.min(n,this.camera.fov-r)),o=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",o,!1)||this.emit("wantsMouseWheel",r,s,!1)||(this.updateCamera({fov:s},!0,!0),this.emit("gesture","mouseWheel",o,!1),this.emit("mouseWheel",r,s,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",o,!0)||t.emit("wantsMouseWheel",r,s,!0)||(t.emit("gesture","mouseWheel",o,!0),t.emit("mouseWheel",0,s,!0))}),200))},r}(fi),Mi=function(t){function r(e){var i=r.parseArgs(e);return t.call(this,i)||this}return Se(r,t),r.parseArgs=function(e){var r=[Le(Le({},e.initial[0]),{longitude:0,latitude:Math.PI/2}),e.initial[1],e.initial[2]],i=Le(Le({},e),{initial:r,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return t.parseArgs.call(this,i)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.initAnimation=function(e,r,i){var n=this;return t.prototype.initAnimation.call(this,e,r,i).then((function(){var e,t;if(!n.destroyed){var i=null!==(t=null===(e=n.model.getMaterial())||void 0===e?void 0:e.perspToOrtho)&&void 0!==t?t:0;if(0===r)n.model.setMaterial({perspToOrtho:1}),n.needsRender=!0;else var s=Fr(250,Qr.Linear.None).onUpdate((function(e){var t=e.progress;n.destroyed||(n.model.setMaterial({perspToOrtho:Wr(i,1,t)}),n.needsRender=!0)})).onComplete((function(){return s.destroy()}))}}))},r.prototype.resetModel=function(e,t){this.model=e,this.needsRender=!0;var r=this.calculateCameraPosition({longitude:this.defaultLongitude,latitude:this.defaultLatitude},this.cameraDistance(),null,!1);this.updateCamera({offset:r},t,!1)},r.prototype.getZoomOffsetFromFov=function(t,r,i){var n=new e.Vector3(0,-1,0),s=Math.tan(i/2*Math.PI/180),o=Math.tan(r.fov/2*Math.PI/180),a=(o-s)/o,u=new e.Raycaster;u.setFromCamera(t,r);var c=u.ray.direction,l=c.angleTo(n),h=this.cameraDistance(),d=h*Math.tan(l),p=c.clone().setLength(h*Math.cos(l)).projectOnPlane(n),f=p.length(),A=a/f*p.x*d,M=a/f*p.z*d;return new e.Vector3(A,0,M)},r.prototype.onPanGesture=function(t){if(!this.tweenCoordinates){var r=this.element,i=this.camera,n=i.fov,s=i.matrix,o=i.up,a=r.offsetHeight,u=this.lastPanPoint&&this.lastPanPoint.pointerLength===t.pointers.length?{x:t.center.x-this.lastPanPoint.x,y:t.center.y-this.lastPanPoint.y}:{x:0,y:0},c=this.camera.pose.offset.clone(),l=i.position.y*Math.tan(n/2*Math.PI/180);c.add(function(t,r){var i=new e.Vector3;return i.setFromMatrixColumn(r,0),i.multiplyScalar(-t),i}(2*u.x*l/a,s)),c.add(function(t,r,i){var n=new e.Vector3;return n.setFromMatrixColumn(i,0),n.crossVectors(r,n),n.multiplyScalar(t),n}(2*u.y*l/a,o,s));var h=this.model.bounding,d=h.getCenter(new e.Vector3),p=(h.max.x-h.min.x)/this.defaultFov*i.fov,f=(h.max.y,h.min.y,this.defaultFov,i.fov,(h.max.z-h.min.z)/this.defaultFov*i.fov);c.x=Math.max(d.x-p,Math.min(d.x+p,c.x)),c.z=Math.max(d.z-f,Math.min(d.z+f,c.z));var A=t.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",A,t.isFinal)||this.emit("wantsPanGesture",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:c},t.isFinal)||(this.updateCamera({offset:c},!0,!0),this.emit("gesture","pan",A,t.isFinal),this.emit("panGesture",this.camera.copyPose(),t.isFinal),this.lastPanPoint=t.isFinal?void 0:{pointerLength:t.pointers.length,x:t.center.x,y:t.center.y})}},r.prototype.onMouseWheel=function(e){var t=this,r=e.delta,i=e.clientX,n=e.clientY,s=this.camera,o=this.minFov,a=this.maxFov,u=Math.max(o,Math.min(a,this.camera.fov-r)),c=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",c,!1)&&!this.emit("wantsMouseWheel",r,u,!1)){var l=this.relativeClientPosition({x:i,y:n}),h=this.getZoomOffsetFromFov(l,s,u),d=this.camera.pose.offset.clone().add(h);this.updateCamera({offset:d,fov:u},!0,!0),this.emit("gesture","mouseWheel",c,!1),this.emit("mouseWheel",r,u,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",c,!0)||t.emit("wantsMouseWheel",r,u,!0)||(t.emit("gesture","mouseWheel",c,!0),t.emit("mouseWheel",0,u,!0))}),200)}},r.prototype.onPinchGesture=function(e){var t=this.camera,r=this.lastPinchFov,i=e.scale,n=e.type,s=e.center,o=this.minFov,a=this.maxFov;if("pinchstart"===n)return delete this.lastPanPoint,void(this.lastPinchFov=t.fov);"pinchend"===n&&(delete this.lastPanPoint,delete this.lastPinchFov);var u="pinchend"===n;if(r){var c=r/i,l=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",l,u)||this.emit("wantsPinchGesture",i,c,u))return;c=Math.max(o,Math.min(a,c));var h=this.relativeClientPosition(s),d=this.getZoomOffsetFromFov(h,t,c),p=this.camera.pose.offset.clone().add(d);this.updateCamera({longitude:0,latitude:Math.PI/2,offset:p,fov:c},!0,!0),this.emit("gesture","pinch",l,u),this.emit("pinchGesture",i,c,u)}},r.prototype.__requestInteriaMovement=function(){},r}(Ai),gi=__webpack_require__(94),yi=[];function vi(e){return e.onload=e.onerror=Qe,e.crossOrigin="",/^blob\:/.test(e.src)&&URL.revokeObjectURL(e.src),e.removeAttribute("src"),e}function mi(t){t instanceof e.Texture?t.dispose():(vi(t),-1===yi.indexOf(t)&&yi.push(t))}function Ni(e,t,r,i,n,s,o){if(void 0===e&&(e=""),void 0===t&&(t=Qe),void 0===r&&(r=Qe),void 0===i&&(i=Qe),void 0===n&&(n=Qe),/\.basis(\?|$)/.test(e)){var a=!1,u=(He(),function(){!0!==a&&(n(),a=!0)});return new Kt({allowHosts:s,networkSubscribe:o}).load(e,(function(e,r){!0!==a?(i(1),t(e,r),a=!0):e.dispose()}),(function(e,t,r){i(e)}),(function(t){!0!==a&&(r(new Error("source load error: "+e)),a=!0)})),{abort:u}}var c=!1,l=null;return u=function(){!0!==c&&(l?l.abort():(n(),c=!0))},l=St(e,{responseType:"blob",allowHosts:s,networkSubscribe:o},(function(e,s){if(l=null,!0!==c)return e instanceof It?(c=!0,n()):e?(c=!0,r(e)):void function(e){var n=e.body,s=e.meta,o=URL.createObjectURL(n),a=vi(yi.shift()||it());a.onload=function(){a.onload=a.onerror=Qe,!0!==c?(qe((function(){return t(a,s)})),i(1),c=!0):mi(a)},a.onerror=function(){a.onload=a.onerror=Qe,!0!==c&&(r(new Error("source load error: "+o)),c=!0),mi(a)},a.src=o}(s)}),i),{abort:u}}var Di=["right","left","up","down","front","back"],wi=function(t){function r(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.renderer=e,i.allowHosts=r.allowHosts,i.networkSubscribe=r.networkSubscribe,i.prevRequest=null,i}return Se(r,t),r.prototype.setAllowHosts=function(e){this.allowHosts=e},r.prototype.load=function(t,r){var i=this,n=gi.u(t),s=Qe,o=Qe,a=Qe,u=Qe;"function"==typeof r?(s=function(e){return r(null,e)},a=function(e){return r(e)},u=function(e){return r(e)}):(r.onLoad&&(s=r.onLoad),r.onProgress&&(o=r.onProgress),r.onError&&(a=r.onError),r.onAbort&&(u=r.onAbort)),this.abort();for(var c=[],l=function(){c.length=0,i.prevRequest=null},h=!1,d=function(e,r){c[r].progress=Math.max(c[r].progress,e);var n=c.reduce((function(e,t){return t.progress/c.length+e}),0);o(n),i.emit("progress",n,t)},p=function(r){var o=function(e,t){var r=t.index,i=void 0===r?0:r,n=t.images,s=void 0===n?{}:n,o=t.imageOptions,a=void 0===o?{}:o,u=s[e],c=["cube",i,e].join("."),l=Kt.isInitialized();return kt(u,Object.assign({key:c,basisLoaderInitialized:l},a))}(Di[r],t);c[r]={source:o,progress:0,handler:{abort:Qe}},c[r].handler=Ni(o,(function(o,a){return function(r,o,a){if(h)mi(r);else{d(1,a),c[a].image=r,c[a].meta=o;for(var u=0,p=c;u<p.length;u++)if(!p[u].image)return;var f=function(t){var r=new rt;r.generateMipmaps=!0;var i=r.dispose,n=t[0];n instanceof e.Texture?(r.format=n.format,r.encoding=n.encoding,r.minFilter=n.minFilter,r.magFilter=n.magFilter):r.minFilter=e.LinearFilter,n instanceof e.CompressedTexture&&(r.isCompressedTexture=!0);for(var s=0;s<t.length;s++)r.images[s]=t[s];return r.needsUpdate=!0,r.dispose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=0,n=this.images;r<n.length;r++){var s=n[r];s&&mi(s)}return this.images.length=[],i.call.apply(i,Ce([this],e,!1))},r}(c.map((function(e){return e.image})));f.hash=n,f.meta=c.map((function(e){return e.meta})),h=!0,s(f),i.emit("load",f,t),l()}}(o,a,r)}),(function(e){return function(e,r){if(!0!==h){a(e),i.emit("error",e,t);for(var n=0,s=c;n<s.length;n++){var o=s[n].image;o&&mi(o)}h=!0,l()}}(e)}),(function(e){return d(e,r)}),(function(){return function(e){if(!0!==h){u(new Error("source load abort: "+c[e].source)),i.emit("abort",t);for(var r=0,n=c;r<n.length;r++){var s=n[r].image;s&&mi(s)}h=!0,l()}}(r)}),f.allowHosts,f.networkSubscribe)},f=this,A=0;A<Di.length;A++)p(A);this.prevRequest={abort:function(){for(var e=0,t=c;e<t.length;e++)t[e].handler.abort();c.length=0}},this.emit("start",t)},r.prototype.abort=function(){this.prevRequest&&(this.prevRequest.abort(),this.prevRequest=null)},r}(Nt),Ti=function(t){function r(r,i){var n=t.call(this)||this;n.disposed=!1,n.size=r.clone(),n.image=new ImageData(new Uint8ClampedArray([0,0,0,0]),1,1),n.generateMipmaps=!0,n.unpackAlignment=1,n.needsUpdate=!0,n.wrapS=e.ClampToEdgeWrapping,n.wrapT=e.ClampToEdgeWrapping,n.minFilter=e.NearestFilter,n.magFilter=e.NearestFilter,n.renderer=i;var s=n.gl=i.getContext(),o=n.utils=e.WebGLUtils(s,i.extensions,i.capabilities);i.initTexture(n);var a=i.properties.get(n),u=s.getParameter(s.TEXTURE_BINDING_2D);return s.bindTexture(s.TEXTURE_2D,a.__webglTexture),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),s.texImage2D(s.TEXTURE_2D,0,o.convert(n.format),r.x,r.y,0,o.convert(n.format),o.convert(n.type),null),s.bindTexture(s.TEXTURE_2D,u),n.update(n.image,new e.Vector2),n}return Se(r,t),r.prototype.update=function(e,t){if(!this.disposed){var r=this,i=(r.size,r.gl),n=r.utils,s=r.renderer.properties.get(this);if(!s.__webglTexture)throw new Error("UpdatableTexture never initialized");var o=i.getParameter(i.TEXTURE_BINDING_2D);i.bindTexture(i.TEXTURE_2D,s.__webglTexture),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texSubImage2D(i.TEXTURE_2D,0,t.x,t.y,n.convert(this.format),n.convert(this.type),e),i.generateMipmap(i.TEXTURE_2D),i.bindTexture(i.TEXTURE_2D,o)}},r.prototype.dispose=function(){this.disposed=!0,t.prototype.dispose.call(this)},r}(e.Texture),xi=2048;function Ei(e,t){return[Math.floor(e%t),Math.floor(e/t)]}var ji=new Pt,Ii=it();Ii.crossOrigin="";var bi=Promise.resolve(),zi=function(t){function r(r){var i=t.call(this)||this;i.texutre=new Ti(new e.Vector2(xi,xi),r),i.mappings=[];for(var n=He(),s=0;s<16;s++){var o=Ei(s,4),a=o[0],u=o[1];i.mappings[s]={idle:!0,loaded:!0,resource:"",timestamp:n,clip:new e.Vector4(0,0,0,0),drawAt:new e.Vector4(a/4,u/4,1/4,1/4)}}return i}return Se(r,t),r.prototype.requestResource=function(t){var r=this;bi=bi.then((function(){return new Promise((function(i){var n=function(){/^blob\:/.test(Ii.src)&&URL.revokeObjectURL(Ii.src),Ii.removeAttribute("src"),i()};ji.loadToImage(Ii,t,(function(){if(512!==Ii.width||512!==Ii.height)r.emit("error",new Error("tile image size must be 512 x 512."));else{var i=r.getMaddpingByResource(t);if(i&&!0!==i.loaded){i.loaded=!0;var s=new e.Vector2(i.drawAt.x*xi,i.drawAt.y*xi);r.texutre.update(Ii,s),r.emit("update",r.getVisibleMappings())}}n()}),(function(){}),n)}))}))},r.prototype.getMaddpingByResource=function(e){return this.mappings.filter((function(t){return e===t.resource}))[0]},r.prototype.getIdleMapping=function(){return this.mappings.filter((function(e){return e.idle})).sort((function(e,t){return e.timestamp-t.timestamp}))[0]},r.prototype.getHash=function(){return gi.u(this.getVisibleMappings().map((function(e){return e.map((function(e){return e.toArray()}))})))},r.prototype.cleanTiles=function(){for(var e=this.getHash(),t=0,r=this.mappings;t<r.length;t++)r[t].idle=!0;e!==this.getHash&&this.emit("update",this.getVisibleMappings())},r.prototype.loadTiles=function(e){var t=this.getHash(),r=Math.pow(4,2),i=He();e.length>r&&((e=e.slice()).length=r);for(var n=0,s=this.mappings;n<s.length;n++)(p=s[n]).idle=!0;for(var o=[],a=0,u=e;a<u.length;a++){var c=kt((d=u[a]).resource);(p=this.getMaddpingByResource(c))?(p.idle=!1,p.timestamp=i):o.push(d)}for(var l=0,h=o;l<h.length;l++){var d,p;c=kt((d=h[l]).resource),(p=this.getIdleMapping()).idle=!1,p.resource=c,p.clip=d.clip,p.loaded=!1,p.timestamp=i,this.requestResource(c)}t!==this.getHash&&this.emit("update",this.getVisibleMappings())},r.prototype.getVisibleMappings=function(){return this.mappings.map((function(t){var r=!1===t.idle&&!0===t.loaded?t.drawAt.clone():new e.Vector4(0,0,0,0);return[t.clip.clone(),r.clone()]}))},r.prototype.dispose=function(){this.emit("dispose"),this.mappings.length=0,this.texutre.dispose()},r}(Nt),Oi=function(t){function r(){var r=t.call(this)||this,i=new e.RingBufferGeometry(.04,.08,32),n=new e.MeshBasicMaterial({color:1245179,opacity:.8,side:e.DoubleSide,transparent:!0});return r.ringMesh=new e.Mesh(i,n),r.ringMesh.renderOrder=10,r.add(r.ringMesh),r}return Se(r,t),r.prototype.dispose=function(){this.remove(this.ringMesh),this.ringMesh.geometry.dispose(),Array.isArray(this.ringMesh.material)?this.ringMesh.material.forEach((function(e){return e.dispose()})):this.ringMesh.material.dispose()},r}(e.Object3D);function Si(){return new Oi}var Li=function(t){function r(e){var i=this,n=r.parseArgs(e);return(i=t.call(this,n)||this).defaultLongitude=n.defaultLongitude,i.defaultLatitude=n.defaultLongitude,i.defaultFov=n.defaultFov,i.maxFov=n.maxFov,i.minFov=n.minFov,i.maxLatitude=n.maxLatitude,i.minLatitude=n.minLatitude,i.moveSpeed=n.moveSpeed,i.intersectMeshCreator=n.intersectMeshCreator,i.interiaMovement=!1,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o,a,u,c,l,h=t.parseArgs.call(this,e);return Le(Le({},h),{defaultLongitude:null!==(r=e.defaultLongitude)&&void 0!==r?r:0,defaultLatitude:null!==(i=e.defaultLongitude)&&void 0!==i?i:0,defaultFov:null!==(n=e.defaultFov)&&void 0!==n?n:80,maxFov:null!==(s=e.maxFov)&&void 0!==s?s:120,minFov:null!==(o=e.minFov)&&void 0!==o?o:40,maxLatitude:null!==(a=e.maxLatitude)&&void 0!==a?a:+Math.PI/2,minLatitude:null!==(u=e.minLatitude)&&void 0!==u?u:-Math.PI/2,moveSpeed:null!==(c=e.moveSpeed)&&void 0!==c?c:3.2,intersectMeshCreator:null!==(l=e.intersectMeshCreator)&&void 0!==l?l:Si})},r.initAnimationEndPose=function(e){var t,r,i,n=this.parseArgs(e),s=e.initial[0];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:n.defaultLongitude,latitude:null!==(r=s.latitude)&&void 0!==r?r:n.defaultLatitude,fov:null!==(i=s.fov)&&void 0!==i?i:n.defaultFov,offset:n.work.observers[n.panoIndex].position.clone()}},r.prototype.destroy=function(){t.prototype.destroy.call(this),this.interiaMovement=!1,this.hideIntersectMesh(),this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose())},r.prototype.updateCamera=function(e,t,r){var i,n,s;void 0===e&&(e={});var o=this,a=o.minFov,u=o.maxFov,c=o.maxLatitude,l=o.minLatitude,h=null!==(i=e.longitude)&&void 0!==i?i:this.camera.pose.longitude,d=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,p=void 0===e.fov||this.emit("wantsChangeCameraFov",e.fov)?this.camera.pose.fov:e.fov,f=null!==(s=e.offset)&&void 0!==s?s:this.camera.pose.offset;r&&(d=Math.max(l,Math.min(c,d)),p=Math.max(a,Math.min(u,p)));var A=h!==this.camera.pose.longitude||d!==this.camera.pose.latitude,M=p!==this.camera.pose.fov,g=!f.equals(this.camera.pose.offset);this.camera.setFromPose({longitude:h,latitude:d,fov:p,offset:f}),M&&this.emit("cameraFovUpdate",this.camera.pose.fov,t),A&&this.emit("cameraDirectionUpdate",{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},t),g&&this.emit("cameraPositionUpdate",this.camera.pose.offset.clone(),t),(M||A||g)&&this.emit("cameraUpdate",this.camera.copyPose(),t),this.needsRender=!0,Yt()},r.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Math.floor(Math.max(Math.min(t/this.moveSpeed*1e3,1500),500))}},r.prototype.initAnimation=function(e,t,r){var i,n,s,o=this;if(this.destroyed)return Promise.resolve();var a=null!==(i=e.longitude)&&void 0!==i?i:this.defaultLongitude,u=null!==(n=e.latitude)&&void 0!==n?n:this.defaultLatitude,c=null!==(s=e.fov)&&void 0!==s?s:this.defaultFov;return new Promise((function(e){o.moveToPano(o.currentPanoIndex,{longitude:a,latitude:u,fov:c,limit:!1,duration:t,moveStartCallback:function(e,t){o.preventPanGesture=!0,o.preventTapGesture=!0,o.emit("initAnimationWillStart",e,t,r)},moveEndCallback:function(t,i){o.preventPanGesture=!1,o.preventTapGesture=!1,e(),o.emit("initAnimationEnded",t,i,r)},moveCancelCallback:function(){o.preventPanGesture=!1,o.preventTapGesture=!1,e(),o.emit("initAnimationEnded",o.currentPanoIndex,o.camera.copyPose(),r)}},r)}))},r.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},r.prototype.coordinatesChangeWithOffset=function(e,t){var r=2*t.x/this.element.offsetWidth*this.camera.fov/95*this.camera.aspect,i=-2*t.y/this.element.offsetHeight*this.camera.fov/95;return{longitude:e.longitude+r,latitude:e.latitude+i}},r.prototype.requestInteriaMovement=function(e,t){var r=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset(this.camera.pose,e),n=i.longitude,s=i.latitude;this.updateCamera({longitude:n,latitude:s},t,!0);var o=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",this.camera.copyPose(),!o),o?qe((function(){r.requestInteriaMovement({x:.9*e.x,y:.9*e.y*.7},t)})):this.interiaMovement=!1}},Object.defineProperty(r.prototype,"gesturing",{get:function(){return this.interiaMovement||void 0!==this.lastPanPoint||void 0!==this.lastPinchFov},enumerable:!1,configurable:!0}),r.prototype.onPanGesture=function(e){var t=this;this.interiaMovement=!1,this.hideIntersectMesh();var r=this.lastPanPoint&&this.lastPanPoint.pointerLength===e.pointers.length?{x:e.center.x-this.lastPanPoint.x,y:e.center.y-this.lastPanPoint.y}:{x:0,y:0},i=this.coordinatesChangeWithOffset(this.camera.pose,r),n=i.longitude,s=i.latitude;Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(s=this.camera.pose.latitude);var o=e.pointers.map((function(e){return{x:e.x,y:e.y}}));this.emit("wantsGesture","pan",o,e.isFinal)||this.emit("wantsPanGesture",this.camera.copyPose(),e.isFinal)||(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.updateCamera({longitude:n,latitude:s},!0,!0),this.emit("gesture","pan",o,e.isFinal),this.emit("panGesture",this.camera.copyPose(),e.isFinal),this.lastPanPoint=e.isFinal?void 0:{pointerLength:e.pointers.length,x:e.center.x,y:e.center.y},e.isFinal&&(this.emit("wantsInteriaPan",this.camera.copyPose())||Xe((function(r){t.interiaMovement=!0;var i=e.velocityX*r,n=e.velocityY*r,s=Math.sqrt(i*i+n*n);s>100&&(i=i/s*100,n=n/s*100),Math.abs(n/i)<Math.tan(20/180*Math.PI)&&(n=0),t.requestInteriaMovement({x:i,y:n},!0)}))))},r.prototype.onPinchGesture=function(e){this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var t=this.camera,r=this.lastPinchFov,i=e.scale,n=e.type;if("pinchstart"===n)return this.lastPinchFov=t.fov,void delete this.lastPanPoint;"pinchend"===n&&(delete this.lastPanPoint,delete this.lastPinchFov);var s="pinchend"===n;if(r){var o=r/i,a=e.pointers.map((function(e){return{x:e.x,y:e.y}}));if(this.emit("wantsGesture","pinch",a,s)||this.emit("wantsPinchGesture",i,o,s))return;this.updateCamera({fov:o},!0,!0),this.emit("gesture","pinch",a,s),this.emit("pinchGesture",i,o,s)}},r.prototype.onMouseWheel=function(e){var t=this;this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.interiaMovement=!1;var r=e.delta,i=this.minFov,n=this.maxFov,s=Math.max(i,Math.min(n,this.camera.fov-r)),o=[{x:e.clientX,y:e.clientY}];this.emit("wantsGesture","mouseWheel",o,!1)||this.emit("wantsMouseWheel",r,s,!1)||(this.updateCamera({fov:s},!0,!0),this.emit("gesture","mouseWheel",o,!1),this.emit("mouseWheel",r,s,!1),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){t.emit("wantsGesture","mouseWheel",o,!0)||t.emit("wantsMouseWheel",r,s,!0)||(t.emit("gesture","mouseWheel",o,!0),t.emit("mouseWheel",0,s,!0))}),200))},r.prototype.onMouseMove=function(t){var r=this,i=r.camera,n=r.model,s=r.intersectMesh,o=r.lastPanPoint;if(s&&!n.empty&&n.bvhs&&!0===n.bvhs.loaded&&!o){var a=this.relativeClientPosition({x:t.clientX,y:t.clientY}),u=new e.Raycaster;if(u.setFromCamera(a,i),this.emit("wantsShowIntersectionOnModel",u))return this.hideIntersectMesh(),void(this.needsRender=!0);var c=n.intersectRaycaster(u)[0];if(c&&c.face){var l=c.face.normal,h=l.clone().multiplyScalar(.05),d=c.point.clone().add(h);s.position.copy(d);var p=d.clone().add(h);if(s.lookAt(p),Math.abs(l.y)>.99){var f=i.pose.offset.clone().sub(d);s.rotation.z=-Math.atan2(f.z,f.x)}s.visible=!0,this.emit("intersectionOnModelUpdate",c,s),this.needsRender=!0}else this.hideIntersectMesh(),this.needsRender=!0;this.lastMouseMoveEvent={clientX:t.clientX,clientY:t.clientY}}},r.prototype.onMouseOut=function(){this.intersectMesh&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},r}(fi),Ci=it(),ki=new e.Texture(Ci);Ci.onload=function(){return ki.needsUpdate=!0},Ci.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAR9JREFUOBF10kFOAzEMBdCZFhCbrrgAN+NqHIULsWKDKO3gF+VHoZpa+rXjfH87nq7btr0ty3KZ8FsxnHeQPL748lA/x0Jsq+AwYe0X8nDtGA33BEJUHIEKW/EorHOLI7BHNlkEbju38YkQAIRZxFkHz2HOirKDxNcIzG+fu/6oLiNmqc5ZrlwTeKyAgJF14tMZmSn87pBrxeX/CRABgk/dl1s+C18dio2Pp9nmCQru2UtdvN+7lI9AFsgb3zNMcSp8FF4LYs3UhLfOAvkDJffci8q1J/ByRLKnQ8gUJUFOd2SeZYliCxwiyJCxCbhUGFKF4zPm61hiq7sVyJnPmATyR5IzLSNyDNEFRCDnkAmA8U2RfCsIefYhDeKOQLv7A+l1ZTyjymNxAAAAAElFTkSuQmCC";var Pi=new e.RingBufferGeometry(.06,.07,32).rotateX(-Math.PI/2),_i=new e.MeshBasicMaterial({map:ki,transparent:!0});function Bi(){if("undefined"==typeof document){var t=new e.Texture;return Object.assign(t,{draw:function(e){},retain:!1,pool:!1})}var r=document.createElement("canvas"),i=512,n=256,s=190;r.setAttribute("width",String(i)),r.setAttribute("height",String(i));var o=new e.Texture(r),a=r.getContext("2d");if(!a)throw Error("cannot create canvas context");var u=a.createRadialGradient(n,n,150,n,n,0);function c(){var e=Math.PI/12,t=2*Math.PI/3;a&&(a.beginPath(),a.arc(n,n,s,0*t,1*t-e),a.stroke(),a.beginPath(),a.arc(n,n,s,1*t,2*t-e),a.stroke(),a.beginPath(),a.arc(n,n,s,2*t,3*t-e),a.stroke())}function l(e){a&&(a.clearRect(0,0,i,i),a.lineWidth=20,-1!==e&&(a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, 1)",c(),a.globalCompositeOperation="source-in",a.beginPath(),a.arc(n,n,s,0,2*Math.PI*e),a.strokeStyle="rgba(255, 255, 255, 1)",a.stroke(),a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, "+(e?.5:1)+")",c()),a.beginPath(),a.arc(n,n,150,0,2*Math.PI),a.closePath(),a.fillStyle=u,a.fill(),a.fillStyle="rgba(255, 255, 255, 0.01)",a.fillRect(0,0,i,i),o.needsUpdate=!0)}return u.addColorStop(0,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 0.5)"),u.addColorStop(.4,"rgba(255, 255, 255, 0.0)"),u.addColorStop(1,"rgba(255, 255, 255, 0.0)"),l(0),Object.assign(o,{draw:l,retain:!1,pool:!1})}var Ui=[],Ri=Bi();Ri.draw(0);var Qi=Bi();Qi.draw(1);var Yi=Bi();Yi.draw(-1);var Fi=new e.CircleBufferGeometry(.12,32).rotateX(-Math.PI/2);var Vi,Hi=function(t){function r(){var r=t.call(this)||this;return r.needsRender=!0,r.loading=!1,r.disabled=!1,r.centerMesh=new e.Mesh(Fi,new e.MeshBasicMaterial({map:Ri,transparent:!0})),r.centerMesh.position.y+=.01,r.add(r.centerMesh),r.loadingMesh=new e.Mesh(Pi,_i),r.loadingMesh.position.y+=.011,r}return Se(r,t),r.prototype.setLoading=function(t){var r=this;this.loading=t,this.stopInterval&&this.stopInterval(),t?(this.add(this.loadingMesh),this.stopInterval=We((function(){r.loadingMesh.rotateOnAxis(new e.Vector3(0,1,0),.1),r.needsRender=!0}))):this.remove(this.loadingMesh),this.needsRender=!0},r.prototype.setDisabled=function(e){function t(t){var r=t.map;!0===r.pool&&(r.retain=!1),t.map=e?Yi:Ri}this.disabled=e,Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){t(e)})):t(this.centerMesh.material),this.needsRender=!0},r.prototype.setProgress=function(e){function t(e,t){var r=e.map;0===t||1===t?(!0===r.pool&&(r.retain=!1),0===t&&(e.map=Ri),1===t&&(e.map=Qi)):(!0!==r.pool&&(e.map=function(){for(var e=0,t=Ui;e<t.length;e++){var r=t[e];if(!1===r.retain)return r}var i=Bi();return i.pool=!0,i.retain=!0,Ui.push(i),i}()),e.map.draw(t))}this.setLoading(!1),this.setDisabled(!1),e=Math.max(0,Math.min(1,e)),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(r){t(r,e)})):t(this.centerMesh.material,e),this.needsRender=!0},r.prototype.setOpacity=function(e){Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(t){t.opacity=e})):this.centerMesh.material.opacity=e,this.needsRender=!0},r.prototype.dispose=function(){this.setLoading(!1),this.remove(this.centerMesh),this.remove(this.loadingMesh),this.centerMesh.geometry.dispose(),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){e.dispose()})):this.centerMesh.material.dispose(),this.loadingMesh.geometry.dispose(),Array.isArray(this.loadingMesh.material)?this.loadingMesh.material.forEach((function(e){e.dispose()})):this.loadingMesh.material.dispose()},r}(e.Object3D);function Gi(){return new Hi}function qi(t){var r=Math.abs(Math.cos(t.latitude));return new e.Vector3(-Math.sin(t.longitude)*r,-Math.sin(t.latitude),-Math.cos(t.longitude)*r)}var Wi=new e.OrthographicCamera(-1,1,1,-1,0,1),Zi=new e.BufferGeometry;Zi.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Zi.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));var Xi=new e.Mesh(Zi),Ki=new e.Scene;Ki.add(Xi);for(var Ji=function(){function t(t,r){var i;this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:null!==(i=r.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:r.fragment,uniforms:Object.assign({inputBuffer:new e.Uniform(null)},r.uniforms)})}return t.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),i=Xi.material;this.material.uniforms.inputBuffer.value=e.texture,Xi.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Ki,Wi),this.renderer.setRenderTarget(r),Xi.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),$i=function(){function t(t){this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:"\n uniform vec3 inputValue;\n void main() {\n gl_FragColor = vec4(inputValue, 1.0);\n }\n ",uniforms:Object.assign({inputValue:new e.Uniform(new e.Vector3)})})}return t.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),i=Xi.material;this.material.uniforms.inputValue.value.copy(e),Xi.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Ki,Wi),this.renderer.setRenderTarget(r),Xi.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),en=function(e){function t(t){return e.call(this,t,{fragment:"\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n }\n "})||this}return Se(t,e),t}(Ji),tn=function(e){function t(t){return e.call(this,t,{fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n varying vec2 vUv;\n void main() {\n float scale = 0.25;\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = linearToRelativeLuminance(rgb) - 0.5;\n luminance = luminance / 2.0 + 0.5;\n gl_FragColor = vec4(luminance, luminance, luminance, 1.0);\n }\n "})||this}return Se(t,e),t}(Ji),rn=function(t){function r(r,i){return void 0===i&&(i=.002),t.call(this,r,{uniforms:{targetBuffer:new e.Uniform(null),inputBuffer:new e.Uniform(null),step:new e.Uniform(i)},vertex:"\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ",fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n void main() {\n float target = texture2D(targetBuffer, vec2(0.5, 0.5)).r;\n float current = texture2D(inputBuffer, vec2(0.5, 0.5)).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this}return Se(r,t),Object.defineProperty(r.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),r}(Ji),nn=function(t){function r(r){return t.call(this,r,{uniforms:{inputBuffer:new e.Uniform(null),luminanceAdaptiveBUffer:new e.Uniform(null)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBUffer;\n varying vec2 vUv;\n\n vec3 hsv2rgb(vec3 c) {\n const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n vec3 rgb2hsv(vec3 c) {\n const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);\n }\n\n void main() {\n vec3 rgb = texture2D(inputBuffer, vUv).rgb;\n float luminance = linearToRelativeLuminance(rgb);\n float delta = (texture2D(luminanceAdaptiveBUffer, vec2(0.5, 0.5)).r - 0.5);\n vec3 hsv = rgb2hsv(rgb);\n if (delta > 0.0) {\n hsv.z -= delta * (1.0 - luminance);\n } else {\n hsv.z -= delta * luminance;\n }\n gl_FragColor = vec4(hsv2rgb(hsv), 1.0);\n }\n\n "})||this}return Se(r,t),Object.defineProperty(r.prototype,"luminanceAdaptiveBUffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBUffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBUffer.value=e},enumerable:!1,configurable:!0}),r}(Ji),sn=function(){function t(e){this.enable=!0,this.renderer=e,this.valuePass=new $i(this.renderer),this.copyPass=new en(this.renderer),this.luminancePass=new tn(this.renderer),this.nextStepPass=new rn(this.renderer),this.luminanceAdaptivePass=new nn(this.renderer)}return t.prototype.render=function(t){this.enable?(this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(t),this.luminancePass.render(t,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new e.WebGLRenderTarget(1,1,{encoding:this.renderer.outputEncoding}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBUffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.render(t)):this.copyPass.render(t)},t.prototype.dispose=function(){var e,t,r;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(r=this.luminanceNextBuffer)||void 0===r||r.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},t}(),on=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),an=new e.Vector2(16,8),un=[],cn=0;cn<an.x;cn++)for(var ln=0;ln<an.y;ln++){un[ln*an.x+cn]=[];var hn=qi({longitude:2*Math.PI/an.x*(cn+.5),latitude:Math.PI/an.y*(ln+.5)-Math.PI/2});un[ln*an.x+cn].push(hn);for(var dn=0;dn<=8;dn++)for(var pn=0;pn<=8;pn++){var fn=qi({longitude:2*Math.PI/an.x*(cn+dn/8),latitude:Math.PI/an.y*(ln+pn/8)-Math.PI/2});un[ln*an.x+cn].push(fn)}}var An=new e.MeshDistanceMaterial({nearDistance:0,farDistance:10}),Mn=new e.Scene;Mn.overrideMaterial=An;var gn=function(t){function r(i){var n=this,s=r.parseArgs(i);(n=t.call(this,s)||this).maxAccessibleDistance=s.maxAccessibleDistance,n.panoTapTriggerRadius=s.panoTapTriggerRadius,n.panoCircleMeshCreator=s.panoCircleMeshCreator;var o=n.model.getMaterial()||{},a=o.pano0Map,u=o.pano1Map;return u&&u!==a&&(n.model.setMaterial({pano1Map:a}),u.dispose()),n.boundingMesh=n.generateBoundingMesh(),n.boundingMesh.setMaterial(n.model.getMaterial()||{}),n.boundingMesh.name="bounding",n.boundingMesh.visible=!1,n.scene.add(n.boundingMesh),n.panoCircleMeshes=[],n.updatePanoCircleMeshes(),n.model.loaded||n.panoCircleMeshes.forEach((function(e){return e.visible=!1})),n.depthCamera=new e.CubeCamera(.01,10,new e.WebGLCubeRenderTarget(64)),s.enableLuminanceAdaptiveEffect&&(n.luminanceAdaptiveEffect=new sn(n.renderer),n.luminanceAdaptiveEffect.enable=!1,n.postProcessing=function(e){var t;return null===(t=n.luminanceAdaptiveEffect)||void 0===t?void 0:t.render(e)}),n.cubeTextureLoader=new wi(n.renderer,{allowHosts:n.work.allowHosts,networkSubscribe:n.networkSubscribe}),n.cubeTextureLoader.on("start",(function(e){var t,r=e.index;null===(t=n.panoCircleMeshes[r])||void 0===t||t.setProgress(0),n.emit("textureStartLoad",r,n.work.observers[r])})),n.cubeTextureLoader.on("progress",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(e),n.emit("textureLoading",e,i,n.work.observers[i])})),n.cubeTextureLoader.on("abort",(function(e){var t,r=e.index;null===(t=n.panoCircleMeshes[r])||void 0===t||t.setProgress(0),n.emit("textureAbort",r,n.work.observers[r])})),n.cubeTextureLoader.on("load",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(1),n.emit("textureLoaded",i,n.work.observers[i],e.meta)})),n.cubeTextureLoader.on("error",(function(e,t){var r,i=t.index;null===(r=n.panoCircleMeshes[i])||void 0===r||r.setProgress(0),n.emit("textureError",e,i,n.work.observers[i]),n.emit("error",e)})),n.once("initAnimationWillStart",(function(){(new e.Box3).expandByObject(n.boundingMesh).containsPoint(n.camera.position)&&(n.boundingMesh.visible=!0),n.luminanceAdaptiveEffect&&(n.luminanceAdaptiveEffect.enable=!0)})),n}return Se(r,t),r.parseArgs=function(e){var r,i,n,s,o=t.parseArgs.call(this,e);return Le(Le({},o),{enableLuminanceAdaptiveEffect:null!==(r=e.enableLuminanceAdaptiveEffect)&&void 0!==r&&r,maxAccessibleDistance:null!==(i=e.maxAccessibleDistance)&&void 0!==i?i:5,panoTapTriggerRadius:null!==(n=e.panoTapTriggerRadius)&&void 0!==n?n:1,panoCircleMeshCreator:null!==(s=e.panoCircleMeshCreator)&&void 0!==s?s:Gi})},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.getCurrentTileIndicesInCamera=function(){for(var t=this.work.observers[this.currentPanoIndex],r=(new e.Matrix4).compose(t.position,t.quaternion,new e.Vector3(-1,1,1)),i=this.camera.getWorldDirection(new e.Vector3),n=(new e.Matrix4).multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),s=(new e.Frustum).setFromProjectionMatrix(n),o=[],a=0;a<un.length;a++)for(var u=0,c=un[a];u<c.length;u++){var l=c[u];if(s.containsPoint(l.clone().applyMatrix4(r))){o.push(a);break}}return o.sort((function(e,t){return un[e][0].angleTo(i)-un[t][0].angleTo(i)})),o},r.prototype.tilingPanoIfNeeds=function(){var t,r=this,i=this.camera.pose.fov<=70,n=this.work.observers[this.currentPanoIndex],s=n.images.tiles;if(i&&s&&n.position.equals(this.camera.pose.offset)){this.tileTextureLoader||(this.tileTextureLoader=new zi(this.renderer),this.tileTextureLoader.on("update",(function(e){r.setModelAndBoundingMaterial({panoTileMap:r.tileTextureLoader.texutre,panoTileMappings:e}),r.needsRender=!0})));for(var o=this.getCurrentTileIndicesInCamera(),a=[],u=0;u<an.x*an.y;u++)if(-1!==o.indexOf(u)){var c=Math.floor(u%an.x),l=Math.floor(u/an.x),h=new e.Vector4(c/an.x,l/an.y,1/an.x,1/an.y),d=s+"/row-"+(l+1)+"-column-"+(c+1)+".jpg";a.push({resource:d,clip:h})}this.tileTextureLoader.loadTiles(a)}else null===(t=this.tileTextureLoader)||void 0===t||t.cleanTiles()},r.prototype.updateWork=function(e,t,r,i){var n=this;this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex,this.cubeTextureLoader.setAllowHosts(this.work.allowHosts);var s={},o=!0;return this.boundingMesh&&(s=this.boundingMesh.getMaterial()||{},o=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.name="bounding",this.boundingMesh.visible=o,this.boundingMesh.setMaterial(s),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{effect:"fade",duration:r,longitude:t.longitude,latitude:t.latitude,fov:t.fov,moveStartCallback:function(){return n.updatePanoCircleMeshes(!1)}},i),!0},r.prototype.updatePanoCircleMeshes=function(t){var r=this;void 0===t&&(t=!0);var i=[];this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){e.loading&&i.push(e.panoIndex),r.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0);var n=new e.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(s,o){var a=r.panoCircleMeshCreator();if(a.position.copy(s.standingPosition),t&&r.model.loaded){var u=a.position.clone().add(new e.Vector3(0,1,0)),c=new e.Raycaster(u,n,0,1),l=r.model.intersectRaycaster(c)[0];l&&l.point.distanceTo(a.position)>.1&&(a.position.copy(l.point.clone()),a.needsRender=!0)}return a.name="panoCircle_"+o,a.panoIndex=o,r.helper.add(a),a.needsRender=!0,!1===s.active&&(a.setDisabled(!0),i.indexOf(o)>=0&&(a.setDisabled(!1),a.setLoading(!0))),a}));var s=this.work.observers[this.currentPanoIndex].visibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active})),this.panoCircleMeshes.forEach((function(e){e.visible=s.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},r.prototype.destroy=function(){var r,i,n,s,o=this;t.prototype.destroy.call(this),null===(r=this.luminanceAdaptiveEffect)||void 0===r||r.dispose(),this.cubeTextureLoader.off(),null===(i=this.tileTextureLoader)||void 0===i||i.dispose(),delete this.pendingLoadTextureHashAndCallback,this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){o.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0),this.interiaMovement=!1;var a=this.videoTexture.image;a.pause(),a.oncanplay=function(){},a.ontimeupdate=function(){};var u={pano0DepthMap:null,panoVideoMap:null,panoVideoSize:new e.Vector2,panoVideoMatrix:new e.Matrix4,panoVideoAlpha:0};this.setModelAndBoundingMaterial(u),null===(n=this.depthCamera)||void 0===n||n.renderTarget.texture.dispose(),null===(s=this.depthCamera)||void 0===s||s.renderTarget.dispose(),delete this.depthCamera},r.prototype.render=function(e){this.work.observers[this.currentPanoIndex].video&&(this.needsRender=!0),t.prototype.render.call(this,e)},r.prototype.generateBoundingMesh=function(t){void 0===t&&(t=!1);var r=this.model.bounding.clone();return this.work.observers.forEach((function(t){r.expandByPoint(t.standingPosition),r.expandByPoint((new e.Vector3).fromArray([t.position.x,2*t.position.y-t.standingPosition.y,t.position.z]))})),t&&r.expandByPoint(this.camera.pose.offset),ht(r,new e.Vector3(1,0,1))},r.prototype.resetModel=function(e,t){var r=this;this.model=e;var i={};this.boundingMesh&&(i=this.boundingMesh.getMaterial()||{},this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(),this.boundingMesh.visible=!0,this.boundingMesh.name="bounding",this.boundingMesh.setMaterial(i),this.scene.add(this.boundingMesh),this.needsRender=!0,Ft((function(){r.updatePanoCircleMeshes(),r.updateCamera({},t,!0),r.needsRender=!0}))},r.prototype.moveToPano=function(e,t,r){var i=this;this.ready=!1,this.interiaMovement=!1;var n={index:e,images:this.work.observers[e].images,imageOptions:this.imageOptions},s=gi.u(n),o=function(n,s){if(n)return t.moveCancelCallback&&t.moveCancelCallback(),i.emit("panoLoadError",n,e),i.emit("moveToPanoCanceled",e),void(i.ready=!0);var o=s;i.destroyed?o.dispose():(i.emit("panoLoaded",e),qe((function(){return i.doMoveToPano(e,o,t,r)})))},a=this.pendingLoadTextureHashAndCallback||[],u=a[0],c=a[1];if(s!==u){if(delete this.pendingLoadTextureHashAndCallback,c&&c(new Error("texture aborted")),this.emit("moveToPano",e,r),this.emit("panoWillLoad",e),!n.images)return void o(new Error("pano images were not existed"));var l=this.getModelAndBoundingMaterial()||{},h=l.pano0Map,d=l.pano1Map,p=void 0;if(h&&h.hash===s?p=h:d&&d.hash===s&&(p=d),p)return void o(null,p);this.pendingLoadTextureHashAndCallback=[s,o],this.cubeTextureLoader.load(n,(function(e,t){var r=i.pendingLoadTextureHashAndCallback||[],n=r[0],o=r[1];s===n&&o?(o(e,t),delete i.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},r.prototype.updateCamera=function(e,r,i){var n=this;void 0===e&&(e={}),t.prototype.updateCamera.call(this,e,r,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(n.camera.pose.offset);e.setOpacity(Math.min(1.5/t,1))}));var s=this.getForwardPanoIndexOrNot();null!==s&&this.panoCircleMeshes[s].setOpacity(1),this.needsRender=!0,Yt(),this.tilingPanoIfNeeds()},r.prototype.cannotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,r=.98*t,i=function(t){var r=t.fov;e.updateCamera({fov:r},!0,!0)};this.tweenCoordinates=Yr({fov:t},{fov:r},200).onUpdate(i).onComplete((function(){var n;null===(n=e.tweenCoordinates)||void 0===n||n.destroy(),e.tweenCoordinates=Yr({fov:r},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},r.prototype.getModelAndBoundingMaterial=function(){for(var e=0,t=[this.model,this.boundingMesh];e<t.length;e++)return t[e].getMaterial();return null},r.prototype.setModelAndBoundingMaterial=function(e){for(var t=0,r=[this.model,this.boundingMesh];t<r.length;t++)r[t].setMaterial(e)},r.prototype.doMoveToPano=function(t,r,i,n){var s,o,a,u,c,l,h,d,p,f,A,M=this;void 0===i&&(i={});var g=i.effect,y=void 0===g?"fly":g,v=i.limit,m=void 0===v||v,N=i.easing,D=void 0===N?Qr.Quadratic.InOut:N,w=this.currentPanoIndex,T=this.work.observers[t],x=this.work.observers[w].accessibleNodes.indexOf(t)>=0,E=T.video,j=T.visibleNodes;j=j.filter((function(e){var t=M.work.observers[e];return t.loadable||t.active}));var I=this.calculateMovingDuration(i.duration,this.camera.pose.offset.distanceTo(T.standingPosition)),b=this.camera.pose.offset.clone(),z=null!==(o=null===(s=this.getModelAndBoundingMaterial())||void 0===s?void 0:s.modelAlpha)&&void 0!==o?o:0,O=null!==(u=null===(a=this.model.getMaterial())||void 0===a?void 0:a.perspToOrtho)&&void 0!==u?u:0,S=this.camera.pose.longitude,L=this.camera.pose.latitude,C=this.camera.pose.fov,k=T.position,P=null!==(l=null===(c=this.getModelAndBoundingMaterial())||void 0===c?void 0:c.pano0Matrix)&&void 0!==l?l:new e.Matrix4,_=(new e.Matrix4).compose(T.position,T.quaternion,new e.Vector3(-1,1,1)),B=null!==(h=i.longitude)&&void 0!==h?h:S,U=null!==(d=i.latitude)&&void 0!==d?d:L,R=null!==(p=i.fov)&&void 0!==p?p:C,Q={fov:R,longitude:B,latitude:U,offset:k.clone()};this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),i.moveStartCallback&&i.moveStartCallback(t,Q),this.emit("panoWillArrive",t,Q,n),this.needsRender=!0,x&&(Mn.add(this.model),An.referencePosition.copy(b),null===(f=this.depthCamera)||void 0===f||f.position.copy(b),null===(A=this.depthCamera)||void 0===A||A.update(this.renderer,Mn),this.scene.add(this.model),this.scene.children.unshift(this.scene.children.pop()));var Y=function(){var e=M.getModelAndBoundingMaterial()||{},s=e.pano0Map,o=e.pano1Map;s&&s!==o&&s!==r&&s.dispose();var a={modelAlpha:0,perspToOrtho:0,pano0Matrix:_,pano0Map:r,pano0DepthMap:M.depthCamera?M.depthCamera.renderTarget.texture:null,pano1Matrix:_,pano1Map:r,progress:0};if(E&&Object.keys(E).length>0){var u=M.videoTexture.image;u.oncanplay=function(){u.oncanplay=function(){},u.currentTime=0,u.play(),M.setModelAndBoundingMaterial({panoVideoAlpha:0,panoVideoMap:M.videoTexture,panoVideoSize:E.size,panoVideoMatrix:on.clone().multiply(_).multiply(E.matrix)})},u.ontimeupdate=function(){if(u.currentTime>.5&&u.src===(null==E?void 0:E.source)){u.ontimeupdate=function(){};var e=Fr(230,D).onUpdate((function(e){var t=e.progress;return M.setModelAndBoundingMaterial({panoVideoAlpha:t})})).onComplete((function(){return e.destroy()}))}};var c=u.playid=Fe();(Vi||(Vi=new Promise((function(e){var t,r=document.createElement("video");r.muted=!0,r.src="data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",r.addEventListener("timeupdate",(function i(){r.removeEventListener("timeupdate",i,!1),clearTimeout(t);var n=document.createElement("canvas");n.width=n.height=1;var s=n.getContext("2d");s?(s.drawImage(r,0,0,1,1),s.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),r.addEventListener("canplay",(function e(){r.removeEventListener("canplay",e,!1),r.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))).then((function(e){e&&E&&u.playid===c&&(u.src=E.source)}))}M.setModelAndBoundingMaterial(a),M.panoCircleMeshes.forEach((function(e){e.visible=j.indexOf(e.panoIndex)>=0})),M.updateCamera({offset:k},n,m),M.panoCircleMeshes[t]&&M.panoCircleMeshes[t].setProgress(0),i.moveEndCallback&&i.moveEndCallback(t,M.camera.copyPose()),M.currentPanoIndex=t,M.preventTapGesture=!1,M.boundingMesh.visible=!0,qe((function(){M.emit("panoArrived",t,M.camera.copyPose(),n),M.ready=!0})),M.needsRender=!0};if(this.preventTapGesture=!0,I){var F=this.videoTexture.image;F.pause(),F.removeAttribute("src"),F.oncanplay=function(){},F.ontimeupdate=function(){},this.videoTexture.needsUpdate=!0;var V=this.getModelAndBoundingMaterial()||{},H=V.pano0Map,G=V.pano1Map;G&&G!==H&&G!==r&&G.dispose();var q={pano1Matrix:_,pano1Map:r,pano0DepthMap:x&&this.depthCamera?this.depthCamera.renderTarget.texture:null,panoVideoMap:null,panoVideoSize:new e.Vector2,panoVideoMatrix:new e.Matrix4,panoVideoAlpha:0,useBlackTransition:"instant"===y};if("fade"===y){var W=P.clone();W.setPosition(k),q.pano0Matrix=W,b.copy(k),this.updateCamera({offset:k},n,m)}this.setModelAndBoundingMaterial(q),"fly"!==y&&this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),this.renderer.compile(this.scene,this.camera),this.tweenPosition=Fr(I,D).onUpdate((function(r){var i=r.progress;M.setModelAndBoundingMaterial({progress:i,modelAlpha:Wr(z,0,i),perspToOrtho:Wr(O,0,Math.min(5*i,1))});var s=new e.Vector3(Wr(b.x,k.x,i),Wr(b.y,k.y,i),Wr(b.z,k.z,i));M.updateCamera({offset:s},n,m),i>.9&&(M.preventTapGesture=!1),M.emit("movingToPano",t,w,i),"fly"===y?n&&M.lastMouseMoveEvent&&M.onMouseMove(M.lastMouseMoveEvent):M.hideIntersectMesh(),M.needsRender=!0})).onComplete((function(){M.tweenPosition&&(M.tweenPosition.completed=!0,M.tweenPosition.destroy()),delete M.tweenPosition,Y()})).onCancel((function(){i.moveCancelCallback&&i.moveCancelCallback()}))}else Y();if(S!==B||L!==U||C!==R){var Z=function(e){var t=e.progress,r=Zr(S,B,t),i=Wr(L,U,t),s=Wr(C,R,t);M.updateCamera({longitude:r,latitude:i,fov:s},n,m)},X=function(){return Z({progress:1})};I>0?this.tweenCoordinates=Fr(I,D).onUpdate(Z).onComplete((function(){M.tweenCoordinates&&(M.tweenCoordinates.destroy(),delete M.tweenCoordinates),X()})):X()}},r.prototype.getForwardPanoIndexOrNot=function(t){var r=this,i=this.camera,n=this.currentPanoIndex,s=this.work.observers[n].accessibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active}));var o,a=i.getWorldDirection(new e.Vector3);o=t?t.ray.direction.clone():a.clone();var u=i.pose.offset.clone();if(o.y=u.y=0,0===o.length()||0===u.length())return null;for(var c=0,l=s.filter((function(e){var t=r.work.observers[e].standingPosition.clone().sub(i.pose.offset);return 0!==t.length()&&t.angleTo(a)<i.fov/2/180*Math.PI})).map((function(e){var t=r.work.observers[e].standingPosition.clone();return Object.assign(t,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(u)-t.distanceTo(u)}));c<l.length;c++){var h=l[c],d=h.clone().sub(u);if(0!==d.length()&&o.angleTo(d)<Math.PI/6)return h.panoIndex}return null},r.prototype.onTapGesture=function(t){var r=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var i=null,n=this.work.observers[this.currentPanoIndex],s=n.accessibleNodes.filter((function(e){return r.work.observers[e].position.distanceTo(r.camera.pose.offset)<r.maxAccessibleDistance})),o=this.relativeClientPosition(t.center),a=new e.Raycaster;a.setFromCamera(o,this.camera);var u=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",u,!0)&&!this.emit("wantsTapGesture",a,o)){this.emit("gesture","tap",u,!0),this.emit("tapGesture",a,o);var c=this.camera.getWorldDirection(new e.Vector3).setY(0).normalize(),l=this.model.intersectRaycaster(a)[0];if(l){var h=ci(s,(function(e){var t=r.work.observers[e].standingPosition.clone();return t.clone().sub(r.camera.pose.offset).setY(0).angleTo(c)>Math.PI/2?1/0:t.distanceTo(l.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(i=d)}if(Re(i)&&(i=this.getForwardPanoIndexOrNot(a)),Re(i))this.emit("panoSelected",null),this.cannotMoveAnimation();else{var p=this.work.observers[i];if(this.emit("panoSelected",i),p.active){for(var f=Math.PI/6,A=Math.PI/12,M=p.position.clone().setY(0).sub(n.position.clone().setY(0)).normalize(),g=M.clone().applyAxisAngle(new e.Vector3(0,1,0),f),y=M.clone().applyAxisAngle(new e.Vector3(0,1,0),-f),v=[],m=[],N=[],D=0,w=p.accessibleNodes;D<w.length;D++)if((d=w[D])!==this.currentPanoIndex&&d!==i){var T=this.work.observers[d].position.clone().setY(0).sub(p.position.clone().setY(0));M.angleTo(T)<f?N.push(T):g.angleTo(T)<f?v.push(T):y.angleTo(T)<f&&m.push(T)}var x=(N.length>0?N:Ce(Ce([],v,!0),m,!0)).slice().sort((function(e,t){return e.angleTo(M)-t.angleTo(M)}))[0],E={};x&&x.angleTo(c)>A&&(E.longitude=Math.atan2(-x.x,-x.z)),this.emit("wantsMoveToPano",i,E,!0)}else this.panoCircleMeshes[i]&&(this.panoCircleMeshes[i].setDisabled(!1),this.panoCircleMeshes[i].setLoading(!0))}}}},r}(Li);const yn=function(e,t){var r=void 0!==e?e:void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{};var i,n=function(){return/Android/i.test(t.userAgent)||/iPhone|iPad|iPod/i.test(t.userAgent)},s=function(e,t){for(var r=0,i=e.length;r<i;r++)t[r]=e[r]},o=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},a=(i=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(i,n){i.exports=function(){var i,n,s,o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}(),u=function(){function e(e,t){var r=[],i=!0,n=!1,s=void 0;try{for(var o,a=e[Symbol.iterator]();!(i=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);i=!0);}catch(e){n=!0,s=e}finally{try{!i&&a.return&&a.return()}finally{if(n)throw s}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),c=.001,l=1,h=function(e,t){return"data:"+e+","+encodeURIComponent(t)},d=function(e,t,r){return e+(t-e)*r},p=function(){var e=/iPad|iPhone|iPod/.test(t.platform);return function(){return e}}(),f=function(){var e=-1!==t.userAgent.indexOf("Version")&&-1!==t.userAgent.indexOf("Android")&&-1!==t.userAgent.indexOf("Chrome");return function(){return e}}(),A=function(){var e=/^((?!chrome|android).)*safari/i.test(t.userAgent);return function(){return e}}(),M=function(){var e=-1!==t.userAgent.indexOf("Firefox")&&-1!==t.userAgent.indexOf("Android");return function(){return e}}(),g=(i=t.userAgent.match(/.*Chrome\/([0-9]+)/),n=i?parseInt(i[1],10):null,function(){return n}),y=function(){var e=!1;return e=p()&&A()&&-1!==t.userAgent.indexOf("13_4"),function(){return e}}(),v=function(){var e=!1;if(65===g()){var r=t.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(r){var i=r[1].split("."),n=u(i,4),s=(n[0],n[1],n[2]),o=n[3];e=3325===parseInt(s,10)&&parseInt(o,10)<148}}return function(){return e}}(),m=function(){var e=-1!==t.userAgent.indexOf("R7 Build");return function(){return e}}(),N=function(){var t=90==e.orientation||-90==e.orientation;return m()?!t:t},D=function(e){return!(isNaN(e)||e<=c||e>l)},w=function(){return Math.max(e.screen.width,e.screen.height)*e.devicePixelRatio},T=function(){return Math.min(e.screen.width,e.screen.height)*e.devicePixelRatio},x=function(e){if(f())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0},E=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},j=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},I=function(e,t,r,i){var n=e.createShader(e.VERTEX_SHADER);e.shaderSource(n,t),e.compileShader(n);var s=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(s,r),e.compileShader(s);var o=e.createProgram();for(var a in e.attachShader(o,n),e.attachShader(o,s),i)e.bindAttribLocation(o,i[a],a);return e.linkProgram(o),e.deleteShader(n),e.deleteShader(s),o},b=function(e,t){for(var r={},i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),n="",s=0;s<i;s++)r[n=e.getActiveUniform(t,s).name.replace("[0]","")]=e.getUniformLocation(t,n);return r},z=function(e,t,r,i,n,s,o){var a=1/(t-r),u=1/(i-n),c=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+r)*a,e[13]=(n+i)*u,e[14]=(o+s)*c,e[15]=1,e},O=function(){var r=!1;return function(e){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(r=!0)}(t.userAgent||t.vendor||e.opera),r},S=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e},L=function(t){if(p()){var r=t.style.width,i=t.style.height;t.style.width=parseInt(r)+1+"px",t.style.height=parseInt(i)+"px",setTimeout((function(){t.style.width=r,t.style.height=i}),100)}e.canvas=t},C=function(){var e=Math.PI/180,t=.25*Math.PI;function r(r,i,n,s){var o=Math.tan(i?i.upDegrees*e:t),a=Math.tan(i?i.downDegrees*e:t),u=Math.tan(i?i.leftDegrees*e:t),c=Math.tan(i?i.rightDegrees*e:t),l=2/(u+c),h=2/(o+a);return r[0]=l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=h,r[6]=0,r[7]=0,r[8]=-(u-c)*l*.5,r[9]=(o-a)*h*.5,r[10]=s/(n-s),r[11]=-1,r[12]=0,r[13]=0,r[14]=s*n/(n-s),r[15]=0,r}function i(e,t,r){var i=t[0],n=t[1],s=t[2],o=t[3],a=i+i,u=n+n,c=s+s,l=i*a,h=i*u,d=i*c,p=n*u,f=n*c,A=s*c,M=o*a,g=o*u,y=o*c;return e[0]=1-(p+A),e[1]=h+y,e[2]=d-g,e[3]=0,e[4]=h-y,e[5]=1-(l+A),e[6]=f+M,e[7]=0,e[8]=d+g,e[9]=f-M,e[10]=1-(l+p),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function n(e,t,r){var i,n,s,o,a,u,c,l,h,d,p,f,A=r[0],M=r[1],g=r[2];return t===e?(e[12]=t[0]*A+t[4]*M+t[8]*g+t[12],e[13]=t[1]*A+t[5]*M+t[9]*g+t[13],e[14]=t[2]*A+t[6]*M+t[10]*g+t[14],e[15]=t[3]*A+t[7]*M+t[11]*g+t[15]):(i=t[0],n=t[1],s=t[2],o=t[3],a=t[4],u=t[5],c=t[6],l=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=i,e[1]=n,e[2]=s,e[3]=o,e[4]=a,e[5]=u,e[6]=c,e[7]=l,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=i*A+a*M+h*g+t[12],e[13]=n*A+u*M+d*g+t[13],e[14]=s*A+c*M+p*g+t[14],e[15]=o*A+l*M+f*g+t[15]),e}function s(e,t){var r=t[0],i=t[1],n=t[2],s=t[3],o=t[4],a=t[5],u=t[6],c=t[7],l=t[8],h=t[9],d=t[10],p=t[11],f=t[12],A=t[13],M=t[14],g=t[15],y=r*a-i*o,v=r*u-n*o,m=r*c-s*o,N=i*u-n*a,D=i*c-s*a,w=n*c-s*u,T=l*A-h*f,x=l*M-d*f,E=l*g-p*f,j=h*M-d*A,I=h*g-p*A,b=d*g-p*M,z=y*b-v*I+m*j+N*E-D*x+w*T;return z?(z=1/z,e[0]=(a*b-u*I+c*j)*z,e[1]=(n*I-i*b-s*j)*z,e[2]=(A*w-M*D+g*N)*z,e[3]=(d*D-h*w-p*N)*z,e[4]=(u*E-o*b-c*x)*z,e[5]=(r*b-n*E+s*x)*z,e[6]=(M*m-f*w-g*v)*z,e[7]=(l*w-d*m+p*v)*z,e[8]=(o*I-a*E+c*T)*z,e[9]=(i*E-r*I-s*T)*z,e[10]=(f*D-A*m+g*y)*z,e[11]=(h*m-l*D-p*y)*z,e[12]=(a*x-o*j-u*T)*z,e[13]=(r*j-i*x+n*T)*z,e[14]=(A*v-f*N-M*y)*z,e[15]=(l*N-h*v+d*y)*z,e):null}var o=new Float32Array([0,0,0,1]),a=new Float32Array([0,0,0]);function u(e,t,u,c,l,h){r(e,c||null,h.depthNear,h.depthFar),i(t,u.orientation||o,u.position||a),l&&n(t,t,l),s(t,t)}return function(e,t,r){return!(!e||!t||(e.pose=t,e.timestamp=t.timestamp,u(e.leftProjectionMatrix,e.leftViewMatrix,t,r._getFieldOfView("left"),r._getEyeOffset("left"),r),u(e.rightProjectionMatrix,e.rightViewMatrix,t,r._getFieldOfView("right"),r._getEyeOffset("right"),r),0))}}(),k=function(){var t=e.self!==e.top,r=P(document.referrer),i=P(e.location.href);return t&&r!==i},P=function(e){var t,r=e.indexOf("://");t=-1!==r?r+3:0;var i=e.indexOf("/",t);return-1===i&&(i=e.length),e.substring(0,i)},_=function(e){return e.w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(e.w)},B=(s={},function(e,t){void 0===s[e]&&(console.warn("webvr-polyfill: "+t),s[e]=!0)}),U=function(e,t){B(e,e+" has been deprecated. This may not work on native WebVR displays. "+(t?"Please use "+t+" instead.":""))};function R(e,t,r){if(t){for(var i=[],n=null,s=0;s<t.length;++s)switch(o=t[s]){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),i.push(null,null);break}n||(n=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(u),i.push(e.getParameter(o),null);break;case e.ACTIVE_TEXTURE:n=e.getParameter(e.ACTIVE_TEXTURE),i.push(null);break;default:i.push(e.getParameter(o))}for(r(e),s=0;s<t.length;++s){var o=t[s],a=i[s];switch(o){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,a);break;case e.COLOR_CLEAR_VALUE:e.clearColor(a[0],a[1],a[2],a[3]);break;case e.COLOR_WRITEMASK:e.colorMask(a[0],a[1],a[2],a[3]);break;case e.CURRENT_PROGRAM:e.useProgram(a);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,a);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,a);break;case e.TEXTURE_BINDING_2D:if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_2D,a);break;case e.TEXTURE_BINDING_CUBE_MAP:var u;if((u=t[++s])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_CUBE_MAP,a);break;case e.VIEWPORT:e.viewport(a[0],a[1],a[2],a[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:a?e.enable(o):e.disable(o);break;default:console.log("No GL restore behavior for 0x"+o.toString(16))}n&&e.activeTexture(n)}}else r(e)}var Q=R,Y=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),F=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function V(e,t,r,i){this.gl=e,this.cardboardUI=t,this.bufferScale=r,this.dirtySubmitFrameBindings=i,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,p()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=I(e,Y,F,this.attribs),this.uniforms=b(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}V.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},V.prototype.onResize=function(){var e=this.gl,t=this,r=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];Q(e,r,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)})),this.cardboardUI&&this.cardboardUI.onResize()},V.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,r=this.gl;p()||(t.width=w()*this.bufferScale,t.height=T()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(r){e.bufferWidth=r,e.realCanvasWidth.set.call(t,r),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(r){e.bufferHeight=r,e.realCanvasHeight.set.call(t,r),e.onResize()}})),this.lastBoundFramebuffer=r.getParameter(r.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(r.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,i){e.lastBoundFramebuffer=i||e.framebuffer,e.realBindFramebuffer.call(r,t,e.lastBoundFramebuffer)},this.cullFace=r.getParameter(r.CULL_FACE),this.depthTest=r.getParameter(r.DEPTH_TEST),this.blend=r.getParameter(r.BLEND),this.scissorTest=r.getParameter(r.SCISSOR_TEST),this.stencilTest=r.getParameter(r.STENCIL_TEST),r.enable=function(t){switch(t){case r.CULL_FACE:e.cullFace=!0;break;case r.DEPTH_TEST:e.depthTest=!0;break;case r.BLEND:e.blend=!0;break;case r.SCISSOR_TEST:e.scissorTest=!0;break;case r.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(r,t)},r.disable=function(t){switch(t){case r.CULL_FACE:e.cullFace=!1;break;case r.DEPTH_TEST:e.depthTest=!1;break;case r.BLEND:e.blend=!1;break;case r.SCISSOR_TEST:e.scissorTest=!1;break;case r.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(r,t)},this.colorMask=r.getParameter(r.COLOR_WRITEMASK),r.colorMask=function(t,i,n,s){e.colorMask[0]=t,e.colorMask[1]=i,e.colorMask[2]=n,e.colorMask[3]=s,e.realColorMask.call(r,t,i,n,s)},this.clearColor=r.getParameter(r.COLOR_CLEAR_VALUE),r.clearColor=function(t,i,n,s){e.clearColor[0]=t,e.clearColor[1]=i,e.clearColor[2]=n,e.clearColor[3]=s,e.realClearColor.call(r,t,i,n,s)},this.viewport=r.getParameter(r.VIEWPORT),r.viewport=function(t,i,n,s){e.viewport[0]=t,e.viewport[1]=i,e.viewport[2]=n,e.viewport[3]=s,e.realViewport.call(r,t,i,n,s)},this.isPatched=!0,L(t)}},V.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;p()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout((function(){L(t)}),1)}},V.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},V.prototype.submitFrame=function(){var e=this.gl,t=this,r=[];if(this.dirtySubmitFrameBindings||r.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),Q(e,r,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var r=0,i=0;t.instanceExt&&(r=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),i=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||p())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,r),0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,i))})),p()){var i=e.canvas;i.width==t.bufferWidth&&i.height==t.bufferHeight||(t.bufferWidth=i.width,t.bufferHeight=i.height,t.onResize())}},V.prototype.updateDeviceInfo=function(e){var t=this.gl,r=this,i=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];Q(t,i,(function(t){var i=r.computeMeshVertices_(r.meshWidth,r.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,r.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW),!r.indexCount){var n=r.computeMeshIndices_(r.meshWidth,r.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,n,t.STATIC_DRAW),r.indexCount=n.length}}))},V.prototype.computeMeshVertices_=function(e,t,r){for(var i=new Float32Array(2*e*t*5),n=r.getLeftEyeVisibleTanAngles(),s=r.getLeftEyeNoLensTanAngles(),o=r.getLeftEyeVisibleScreenRect(s),a=0,u=0;u<2;u++){for(var c=0;c<t;c++)for(var l=0;l<e;l++,a++){var h=l/(e-1),p=c/(t-1),f=h,A=p,M=d(n[0],n[2],h),g=d(n[3],n[1],p),y=Math.sqrt(M*M+g*g),v=r.distortion.distortInverse(y),m=g*v/y;h=(M*v/y-s[0])/(s[2]-s[0]),p=(m-s[3])/(s[1]-s[3]),h=2*(o.x+h*o.width-.5),p=2*(o.y+p*o.height-.5),i[5*a+0]=h,i[5*a+1]=p,i[5*a+2]=f,i[5*a+3]=A,i[5*a+4]=u}var N=n[2]-n[0];n[0]=-(N+n[0]),n[2]=N-n[2],N=s[2]-s[0],s[0]=-(N+s[0]),s[2]=N-s[2],o.x=1-(o.x+o.width)}return i},V.prototype.computeMeshIndices_=function(e,t){for(var r=new Uint16Array(2*(e-1)*(t-1)*6),i=e/2,n=t/2,s=0,o=0,a=0;a<2;a++)for(var u=0;u<t;u++)for(var c=0;c<e;c++,s++)0!=c&&0!=u&&(c<=i==u<=n?(r[o++]=s,r[o++]=s-e-1,r[o++]=s-e,r[o++]=s-e-1,r[o++]=s,r[o++]=s-1):(r[o++]=s-1,r[o++]=s-e,r[o++]=s,r[o++]=s-e,r[o++]=s-1,r[o++]=s-e-1));return r},V.prototype.getOwnPropertyDescriptor_=function(e,t){var r=Object.getOwnPropertyDescriptor(e,t);return void 0!==r.get&&void 0!==r.set||(r.configurable=!0,r.enumerable=!0,r.get=function(){return this.getAttribute(t)},r.set=function(e){this.setAttribute(t,e)}),r};var H=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {"," gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),G=["precision mediump float;","uniform vec4 color;","void main() {"," gl_FragColor = color;","}"].join("\n"),q=Math.PI/180,W=60,Z=12,X=20,K=1,J=.75,$=.3125,ee=4,te=28,re=1.5;function ie(e){this.gl=e,this.attribs={position:0},this.program=I(e,H,G,this.attribs),this.uniforms=b(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function ne(e){this.coefficients=e}ie.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},ie.prototype.listen=function(e,t){var r=this.gl.canvas;this.listener=function(i){var n=r.clientWidth/2,s=te*re;i.clientX>n-s&&i.clientX<n+s&&i.clientY>r.clientHeight-s?e(i):i.clientX<s&&i.clientY<s&&t(i)},r.addEventListener("click",this.listener,!1)},ie.prototype.onResize=function(){var t=this.gl,r=this,i=[t.ARRAY_BUFFER_BINDING];Q(t,i,(function(t){var i=[],n=t.drawingBufferWidth/2,s=Math.max(screen.width,screen.height)*e.devicePixelRatio,o=t.drawingBufferWidth/s*e.devicePixelRatio,a=ee*o/2,u=te*re*o,c=te*o/2,l=(te*re-te)*o;function h(e,t){var r=(90-e)*q,s=Math.cos(r),o=Math.sin(r);i.push($*s*c+n,$*o*c+c),i.push(t*s*c+n,t*o*c+c)}i.push(n-a,u),i.push(n-a,t.drawingBufferHeight),i.push(n+a,u),i.push(n+a,t.drawingBufferHeight),r.gearOffset=i.length/2;for(var d=0;d<=6;d++){var p=d*W;h(p,K),h(p+Z,K),h(p+X,J),h(p+(W-X),J),h(p+(W-Z),K)}function f(e,r){i.push(l+e,t.drawingBufferHeight-l-r)}r.gearVertexCount=i.length/2-r.gearOffset,r.arrowOffset=i.length/2;var A=a/Math.sin(45*q);f(0,c),f(c,0),f(c+A,A),f(A,c+A),f(A,c-A),f(0,c),f(c,2*c),f(c+A,2*c-A),f(A,c-A),f(0,c),f(A,c-a),f(te*o,c-a),f(A,c+a),f(te*o,c+a),r.arrowVertexCount=i.length/2-r.arrowOffset,t.bindBuffer(t.ARRAY_BUFFER,r.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(i),t.STATIC_DRAW)}))},ie.prototype.render=function(){var e=this.gl,t=this,r=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];Q(e,r,(function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()}))},ie.prototype.renderNoState=function(){var e=this.gl;e.useProgram(this.program),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.enableVertexAttribArray(this.attribs.position),e.vertexAttribPointer(this.attribs.position,2,e.FLOAT,!1,8,0),e.uniform4f(this.uniforms.color,1,1,1,1),z(this.projMat,0,e.drawingBufferWidth,0,e.drawingBufferHeight,.1,1024),e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},ne.prototype.distortInverse=function(e){for(var t=0,r=1,i=e-this.distort(t);Math.abs(r-t)>1e-4;){var n=e-this.distort(r),s=r-n*((r-t)/(n-i));t=r,r=s,i=n}return r},ne.prototype.distort=function(e){for(var t=e*e,r=0,i=0;i<this.coefficients.length;i++)r=t*(r+this.coefficients[i]);return(r+1)*e};var se=Math.PI/180,oe=180/Math.PI,ae=function(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0};ae.prototype={constructor:ae,set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,r=this.y,i=this.z,n=e.x,s=e.y,o=e.z,a=e.w,u=a*t+s*i-o*r,c=a*r+o*t-n*i,l=a*i+n*r-s*t,h=-n*t-s*r-o*i;return this.x=u*a+h*-n+c*-o-l*-s,this.y=c*a+h*-s+l*-n-u*-o,this.z=l*a+h*-o+u*-s-c*-n,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var r=e.x,i=e.y,n=e.z,s=t.x,o=t.y,a=t.z;return this.x=i*a-n*o,this.y=n*s-r*a,this.z=r*o-i*s,this}};var ue,ce,le,he=function(e,t,r,i){this.x=e||0,this.y=t||0,this.z=r||0,this.w=void 0!==i?i:1};function de(e){this.width=e.width||w(),this.height=e.height||T(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}he.prototype={constructor:he,set:function(e,t,r,i){return this.x=e,this.y=t,this.z=r,this.w=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,r){var i=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(r/2),o=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(r/2);return this.x=o*n*s+i*a*u,this.y=i*a*s-o*n*u,this.z=i*n*u+o*a*s,this.w=i*n*s-o*a*u,this},setFromEulerYXZ:function(e,t,r){var i=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(r/2),o=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(r/2);return this.x=o*n*s+i*a*u,this.y=i*a*s-o*n*u,this.z=i*n*u-o*a*s,this.w=i*n*s+o*a*u,this},setFromAxisAngle:function(e,t){var r=t/2,i=Math.sin(r);return this.x=e.x*i,this.y=e.y*i,this.z=e.z*i,this.w=Math.cos(r),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var r=e.x,i=e.y,n=e.z,s=e.w,o=t.x,a=t.y,u=t.z,c=t.w;return this.x=r*c+s*o+i*u-n*a,this.y=i*c+s*a+n*o-r*u,this.z=n*c+s*u+r*a-i*o,this.w=s*c-r*o-i*a-n*u,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return 0===e?(this.x=0,this.y=0,this.z=0,this.w=1):(e=1/e,this.x=this.x*e,this.y=this.y*e,this.z=this.z*e,this.w=this.w*e),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var r=this.x,i=this.y,n=this.z,s=this.w,o=s*e.w+r*e.x+i*e.y+n*e.z;if(o<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,o=-o):this.copy(e),o>=1)return this.w=s,this.x=r,this.y=i,this.z=n,this;var a=Math.acos(o),u=Math.sqrt(1-o*o);if(Math.abs(u)<.001)return this.w=.5*(s+this.w),this.x=.5*(r+this.x),this.y=.5*(i+this.y),this.z=.5*(n+this.z),this;var c=Math.sin((1-t)*a)/u,l=Math.sin(t*a)/u;return this.w=s*c+this.w*l,this.x=r*c+this.x*l,this.y=i*c+this.y*l,this.z=n*c+this.z*l,this},setFromUnitVectors:(le=1e-6,function(e,t){return void 0===ue&&(ue=new ae),(ce=e.dot(t)+1)<le?(ce=0,Math.abs(e.x)>Math.abs(e.z)?ue.set(-e.y,e.x,0):ue.set(0,-e.z,e.y)):ue.crossVectors(e,t),this.x=ue.x,this.y=ue.y,this.z=ue.z,this.w=ce,this.normalize(),this})};var pe=new de({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),fe=new de({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),Ae={CardboardV1:new ge({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new ge({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function Me(e,t){this.viewer=Ae.CardboardV2,this.updateDeviceParams(e),this.distortion=new ne(this.viewer.distortionCoefficients);for(var r=0;r<t.length;r++){var i=t[r];Ae[i.id]=new ge(i)}}function ge(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}Me.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},Me.prototype.getDevice=function(){return this.device},Me.prototype.setViewer=function(e){this.viewer=e,this.distortion=new ne(this.viewer.distortionCoefficients)},Me.prototype.determineDevice_=function(e){if(!e)return p()?(console.warn("Using fallback iOS device measurements."),fe):(console.warn("Using fallback Android device measurements."),pe);var t=.0254,r=t/e.xdpi,i=t/e.ydpi;return new de({widthMeters:r*w(),heightMeters:i*T(),bevelMeters:.001*e.bevelMm})},Me.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,r=this.distortion,i=e.screenLensDistance,n=(t.widthMeters-e.interLensDistance)/2,s=e.interLensDistance/2,o=e.baselineLensDistance-t.bevelMeters,a=t.heightMeters-o,u=oe*Math.atan(r.distort(n/i)),c=oe*Math.atan(r.distort(s/i)),l=oe*Math.atan(r.distort(o/i)),h=oe*Math.atan(r.distort(a/i));return{leftDegrees:Math.min(u,e.fov),rightDegrees:Math.min(c,e.fov),downDegrees:Math.min(l,e.fov),upDegrees:Math.min(h,e.fov)}},Me.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,r=this.distortion,i=Math.tan(-se*e.fov),n=Math.tan(se*e.fov),s=Math.tan(se*e.fov),o=Math.tan(-se*e.fov),a=t.widthMeters/4,u=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-u,l=e.interLensDistance/2-a,h=-c,d=e.screenLensDistance,p=r.distort((l-a)/d),f=r.distort((h+u)/d),A=r.distort((l+a)/d),M=r.distort((h-u)/d),g=new Float32Array(4);return g[0]=Math.max(i,p),g[1]=Math.min(n,f),g[2]=Math.min(s,A),g[3]=Math.max(o,M),g},Me.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,r=this.distortion,i=new Float32Array(4),n=r.distortInverse(Math.tan(-se*e.fov)),s=r.distortInverse(Math.tan(se*e.fov)),o=r.distortInverse(Math.tan(se*e.fov)),a=r.distortInverse(Math.tan(-se*e.fov)),u=t.widthMeters/4,c=t.heightMeters/2,l=e.baselineLensDistance-t.bevelMeters-c,h=e.interLensDistance/2-u,d=-l,p=e.screenLensDistance,f=(h-u)/p,A=(d+c)/p,M=(h+u)/p,g=(d-c)/p;return i[0]=Math.max(n,f),i[1]=Math.min(s,A),i[2]=Math.min(o,M),i[3]=Math.max(a,g),i},Me.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,r=this.device,i=t.screenLensDistance,n=(r.widthMeters-t.interLensDistance)/2,s=t.baselineLensDistance-r.bevelMeters,o=(e[0]*i+n)/r.widthMeters,a=(e[1]*i+s)/r.heightMeters,u=(e[2]*i+n)/r.widthMeters,c=(e[3]*i+s)/r.heightMeters;return{x:o,y:c,width:u-o,height:a-c}},Me.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},Me.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},Me.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:oe*Math.atan(e.outerDist),rightDegrees:oe*Math.atan(e.innerDist),downDegrees:oe*Math.atan(e.bottomDist),upDegrees:oe*Math.atan(e.topDist)}},Me.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,r=this.device,i=t.screenLensDistance,n=r.widthMeters/i,s=r.heightMeters/i,o=r.width/n,a=r.height/s,u=Math.round((e.eyePosX-e.outerDist)*o),c=Math.round((e.eyePosY-e.bottomDist)*a);return{x:u,y:c,width:Math.round((e.eyePosX+e.innerDist)*o)-u,height:Math.round((e.eyePosY+e.topDist)*a)-c}},Me.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,r=this.distortion,i=e.screenLensDistance,n=e.interLensDistance/2/i,s=t.widthMeters/i,o=t.heightMeters/i,a=s/2-n,u=(e.baselineLensDistance-t.bevelMeters)/i,c=e.fov,l=r.distortInverse(Math.tan(se*c)),h=Math.min(a,l),d=Math.min(n,l),p=Math.min(u,l);return{outerDist:h,innerDist:d,topDist:Math.min(o-u,l),bottomDist:p,eyePosX:a,eyePosY:u}},Me.Viewers=Ae;var ye={format:1,last_updated:"2019-11-09T17:36:14Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X00PD/*"},{ua:"ASUS_X00PD"}],dpi:245,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X008D/*"},{ua:"ASUS_X008D"}],dpi:282,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1001/*"},{ua:"ONE E1001"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1003/*"},{ua:"ONE E1003"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2001/*"},{ua:"ONE A2001"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2003/*"},{ua:"ONE A2003"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3000/*"},{ua:"ONEPLUS A3000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3003/*"},{ua:"ONEPLUS A3003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3010/*"},{ua:"ONEPLUS A3010"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6000/*"},{ua:"ONEPLUS A6000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6003/*"},{ua:"ONEPLUS A6003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6010/*"},{ua:"ONEPLUS A6010"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6013/*"},{ua:"ONEPLUS A6013"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G960F/*"},{ua:"SM-G960F"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9600/*"},{ua:"SM-G9600"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960T/*"},{ua:"SM-G960T"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960N/*"},{ua:"SM-G960N"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960U/*"},{ua:"SM-G960U"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9608/*"},{ua:"SM-G9608"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960FD/*"},{ua:"SM-G960FD"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960W/*"},{ua:"SM-G960W"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G965F/*"},{ua:"SM-G965F"}],dpi:529,bw:2,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/EML-L29/*"},{ua:"EML-L29"}],dpi:428,bw:3.45,ac:500},{type:"android",rules:[{mdmh:"Nokia/*/Nokia 7.1/*"},{ua:"Nokia 7.1"}],dpi:[432,431.9],bw:3,ac:500},{type:"ios",rules:[{res:[1242,2688]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G570M/*"},{ua:"SM-G570M"}],dpi:320,bw:3.684,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G970F/*"},{ua:"SM-G970F"}],dpi:438,bw:2.281,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G973F/*"},{ua:"SM-G973F"}],dpi:550,bw:2.002,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G975F/*"},{ua:"SM-G975F"}],dpi:522,bw:2.054,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G977F/*"},{ua:"SM-G977F"}],dpi:505,bw:2.334,ac:500},{type:"ios",rules:[{res:[828,1792]}],dpi:326,bw:5,ac:500}]};function ve(e,t){if(this.dpdb=ye,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var r=new XMLHttpRequest,i=this;r.open("GET",e,!0),r.addEventListener("load",(function(){i.loading=!1,r.status>=200&&r.status<=299?(i.dpdb=JSON.parse(r.response),i.recalculateDeviceParams_()):console.error("Error loading online DPDB!")})),r.send()}}function me(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function Ne(e,t){this.set(e,t)}function De(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new Ne,this.currentGyroMeasurement=new Ne,this.previousGyroMeasurement=new Ne,p()?this.filterQ=new he(-1,0,0,1):this.filterQ=new he(1,0,0,1),this.previousFilterQ=new he,this.previousFilterQ.copy(this.filterQ),this.accelQ=new he,this.isOrientationInitialized=!1,this.estimatedGravity=new ae,this.measuredGravity=new ae,this.gyroIntegralQ=new he}function we(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new he,this.previousTimestampS=null,this.deltaQ=new he,this.outQ=new he}function Te(t,r,i,n){this.yawOnly=i,this.accelerometer=new ae,this.gyroscope=new ae,this.filter=new De(t,n),this.posePredictor=new we(r,n),this.isFirefoxAndroid=M(),this.isIOS=p();var s=g();this.isDeviceMotionInRadians=!this.isIOS&&s&&s<66,this.isWithoutDeviceMotion=v()||y(),this.filterToWorldQ=new he,p()?this.filterToWorldQ.setFromAxisAngle(new ae(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new ae(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new he,this.worldToScreenQ=new he,this.originalPoseAdjustQ=new he,this.originalPoseAdjustQ.setFromAxisAngle(new ae(0,0,1),-e.orientation*Math.PI/180),this.setScreenTransform_(),N()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new he,this.orientationOut_=new Float32Array(4),this.start()}ve.prototype.getDeviceParams=function(){return this.deviceParams},ve.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},ve.prototype.calcDeviceParams_=function(){var r=this.dpdb;if(!r)return console.error("DPDB not available."),null;if(1!=r.format)return console.error("DPDB has unexpected format version."),null;if(!r.devices||!r.devices.length)return console.error("DPDB does not have a devices section."),null;var i=t.userAgent||t.vendor||e.opera,n=w(),s=T();if(!r.devices)return console.error("DPDB has no devices section."),null;for(var o=0;o<r.devices.length;o++){var a=r.devices[o];if(a.rules)if("ios"==a.type||"android"==a.type){if(p()==("ios"==a.type)){for(var u=!1,c=0;c<a.rules.length;c++){var l=a.rules[c];if(this.ruleMatches_(l,i,n,s)){u=!0;break}}if(u)return new me({xdpi:a.dpi[0]||a.dpi,ydpi:a.dpi[1]||a.dpi,bevelMm:a.bw})}}else console.warn("Device["+o+"] has invalid type.");else console.warn("Device["+o+"] has no rules section.")}return console.warn("No DPDB device match."),null},ve.prototype.ruleMatches_=function(e,t,r,i){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var n=e.res[0],s=e.res[1];if(Math.min(r,i)!=Math.min(n,s)||Math.max(r,i)!=Math.max(n,s))return!1}return!0},Ne.prototype.set=function(e,t){this.sample=e,this.timestampS=t},Ne.prototype.copy=function(e){this.set(e.sample,e.timestampS)},De.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},De.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var r=t-this.previousGyroMeasurement.timestampS;D(r)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},De.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var r=new he;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var i=new he;i.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),i.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",oe*_(i),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var n=new he;n.copy(this.filterQ),n.multiply(i),this.filterQ.slerp(n,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},De.prototype.getOrientation=function(){return this.filterQ},De.prototype.accelToQuaternion_=function(e){var t=new ae;t.copy(e),t.normalize();var r=new he;return r.setFromUnitVectors(new ae(0,0,-1),t),r.inverse(),r},De.prototype.gyroToQuaternionDelta_=function(e,t){var r=new he,i=new ae;return i.copy(e),i.normalize(),r.setFromAxisAngle(i,e.length()*t),r},we.prototype.getPrediction=function(e,t,r){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=r,e;var i=new ae;i.copy(t),i.normalize();var n=t.length();if(n<20*se)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(oe*n).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var s=n*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,s),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=r,this.outQ},Te.prototype.getPosition=function(){return null},Te.prototype.getOrientation=function(){var t=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ)return this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var t=(new he).setFromAxisAngle(new ae(0,0,-1),0),r=new he;return-90===e.orientation?r.setFromAxisAngle(new ae(0,1,0),Math.PI/-2):r.setFromAxisAngle(new ae(0,1,0),Math.PI/2),t.multiply(r)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((r=new he).setFromAxisAngle(new ae(1,0,0),-Math.PI/2),r),t=this._deviceOrientationQ,(i=new he).copy(t),i.multiply(this.deviceOrientationFilterToWorldQ),i.multiply(this.resetQ),i.multiply(this.worldToScreenQ),i.multiplyQuaternions(this.deviceOrientationFixQ,i),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_;var r,i,n=this.filter.getOrientation();return t=this.posePredictor.getPrediction(n,this.gyroscope,this.previousTimestampS),(i=new he).copy(this.filterToWorldQ),i.multiply(this.resetQ),i.multiply(t),i.multiply(this.worldToScreenQ),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_},Te.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),N()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},Te.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new he;var t=e.alpha,r=e.beta,i=e.gamma;t=(t||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(r,t,-i)},Te.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},Te.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,r=e.rotationRate,i=e.timeStamp/1e3,n=i-this.previousTimestampS;return n<0?(B("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=i)):n<=c||n>l?(B("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=i)):(this.accelerometer.set(-t.x,-t.y,-t.z),r&&(m()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,i)),this.filter.addAccelMeasurement(this.accelerometer,i),void(this.previousTimestampS=i))},Te.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},Te.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},Te.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),e.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new ae(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new ae(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},Te.prototype.start=function(){this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),p()&&k()&&e.addEventListener("message",this.onMessageCallback_),e.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?e.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):e.addEventListener("devicemotion",this.onDeviceMotionCallback_)},Te.prototype.stop=function(){e.removeEventListener("devicemotion",this.onDeviceMotionCallback_),e.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),e.removeEventListener("orientationchange",this.onOrientationChangeCallback_),e.removeEventListener("message",this.onMessageCallback_)};var xe=60,Ee=new ae(1,0,0),je=new ae(0,0,1),Ie=new he;Ie.setFromAxisAngle(Ee,-Math.PI/2),Ie.multiply((new he).setFromAxisAngle(je,Math.PI/2));var be=function(){function e(t){o(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new he,this._outQ=new he,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return a(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:xe,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(e){this.errors.push(e),"SecurityError"===e.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===e.name?this.useDeviceMotion():console.error(e)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new Te(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(Ie),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}(),ze="<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>";function Oe(){this.loadIcon_();var e=document.createElement("div");(s=e.style).position="fixed",s.top=0,s.right=0,s.bottom=0,s.left=0,s.backgroundColor="gray",s.fontFamily="sans-serif",s.zIndex=1e6;var t=document.createElement("img");t.src=this.icon,(s=t.style).marginLeft="25%",s.marginTop="25%",s.width="50%",e.appendChild(t);var r=document.createElement("div");(s=r.style).textAlign="center",s.fontSize="16px",s.lineHeight="24px",s.margin="24px 25%",s.width="50%",r.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(r);var i=document.createElement("div");(s=i.style).backgroundColor="#CFD8DC",s.position="fixed",s.bottom=0,s.width="100%",s.height="48px",s.padding="14px 24px",s.boxSizing="border-box",s.color="#656A6B",e.appendChild(i);var n=document.createElement("div");n.style.float="left",n.innerHTML="No Cardboard viewer?";var s,o=document.createElement("a");o.href="https://www.google.com/get/cardboard/get-cardboard/",o.innerHTML="get one",o.target="_blank",(s=o.style).float="right",s.fontWeight=600,s.textTransform="uppercase",s.borderLeft="1px solid gray",s.paddingLeft="24px",s.textDecoration="none",s.color="#656A6B",i.appendChild(n),i.appendChild(o),this.overlay=e,this.text=r,this.hide()}Oe.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img").style;N()?(t.width="20%",t.marginLeft="40%",t.marginTop="3%"):(t.width="50%",t.marginLeft="25%",t.marginTop="25%")},Oe.prototype.hide=function(){this.overlay.style.display="none"},Oe.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},Oe.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},Oe.prototype.update=function(){this.disableShowTemporarily(),!N()&&O()?this.show():this.hide()},Oe.prototype.loadIcon_=function(){this.icon=h("image/svg+xml",ze)};var Se="CardboardV1",Le="WEBVR_CARDBOARD_VIEWER",Ce="webvr-polyfill-viewer-selector";function ke(e){try{this.selectedKey=localStorage.getItem(Le)}catch(e){console.error("Failed to load viewer profile: %s",e)}this.selectedKey||(this.selectedKey=e||Se),this.dialog=this.createDialog_(Me.Viewers),this.root=null,this.onChangeCallbacks_=[]}function Pe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function _e(e,t){return e(t={exports:{}},t.exports),t.exports}ke.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},ke.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},ke.prototype.getCurrentViewer=function(){return Me.Viewers[this.selectedKey]},ke.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},ke.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},ke.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},ke.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&Me.Viewers[this.selectedKey]){this.fireOnChange_(Me.Viewers[this.selectedKey]);try{localStorage.setItem(Le,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},ke.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add(Ce),t.style.display="none";var r=document.createElement("div");(s=r.style).position="fixed",s.left=0,s.top=0,s.width="100%",s.height="100%",s.background="rgba(0, 0, 0, 0.3)",r.addEventListener("click",this.hide.bind(this));var i=280,n=document.createElement("div"),s=n.style;for(var o in s.boxSizing="border-box",s.position="fixed",s.top="24px",s.left="50%",s.marginLeft=-i/2+"px",s.width=i+"px",s.padding="24px",s.overflow="hidden",s.background="#fafafa",s.fontFamily="'Roboto', sans-serif",s.boxShadow="0px 5px 20px #666",n.appendChild(this.createH1_("Select your viewer")),e)n.appendChild(this.createChoice_(o,e[o].label));return n.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(r),t.appendChild(n),t},ke.prototype.createH1_=function(e){var t=document.createElement("h1"),r=t.style;return r.color="black",r.fontSize="20px",r.fontWeight="bold",r.marginTop=0,r.marginBottom="24px",t.innerHTML=e,t},ke.prototype.createChoice_=function(e,t){var r=document.createElement("div");r.style.marginTop="8px",r.style.color="black";var i=document.createElement("input");i.style.fontSize="30px",i.setAttribute("id",e),i.setAttribute("type","radio"),i.setAttribute("value",e),i.setAttribute("name","field");var n=document.createElement("label");return n.style.marginLeft="4px",n.setAttribute("for",e),n.innerHTML=t,r.appendChild(i),r.appendChild(n),r},ke.prototype.createButton_=function(e,t){var r=document.createElement("button");r.innerHTML=e;var i=r.style;return i.float="right",i.textTransform="uppercase",i.color="#1094f7",i.fontSize="14px",i.letterSpacing=0,i.border=0,i.background="none",i.marginTop="16px",r.addEventListener("click",t),r},void 0!==e||void 0!==r||"undefined"!=typeof self&&self;var Be=Pe(_e((function(r,i){!function(e,t){r.exports=t()}(0,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(r,i,n){var s=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}();function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=n(1),u=void 0!==t&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(t.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!e.MSStream,c=function(){function t(){o(this,t),u?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",a),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return s(t,[{key:"enable",value:function(){u?(this.disable(),this.noSleepTimer=e.setInterval((function(){e.location.href="/",e.setTimeout(e.stop,0)}),15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){u?this.noSleepTimer&&(e.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),t}();r.exports=c},function(e,t,r){e.exports="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+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])}))}))),Ue=1e3,Re=[0,0,.5,1],Qe=[.5,0,.5,1],Ye=e.requestAnimationFrame,Fe=e.cancelAnimationFrame;function Ve(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null}function He(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return U("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function Ge(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=Ue++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return U("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new He({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&O()&&(this.wakelock_=new Be)}Ge.prototype.getFrameData=function(e){return C(e,this._getPose(),this)},Ge.prototype.getPose=function(){return U("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},Ge.prototype.resetPose=function(){return U("VRDisplay.prototype.resetPose"),this._resetPose()},Ge.prototype.getImmediatePose=function(){return U("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},Ge.prototype.requestAnimationFrame=function(e){return Ye(e)},Ge.prototype.cancelAnimationFrame=function(e){return Fe(e)},Ge.prototype.wrapForFullscreen=function(e){if(p())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var r=this.fullscreenElement_.parentElement;r.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),r.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var i=this;function n(){if(i.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];i.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}return n(),this.fullscreenWrapper_},Ge.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},Ge.prototype.requestPresent=function(e){var t=this.isPresenting,r=this;return e instanceof Array||(U("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise((function(i,n){if(r.capabilities.canPresent)if(0==e.length||e.length>r.capabilities.maxLayers)n(new Error("Invalid number of layers."));else{var s=e[0];if(s.source){var o=s.leftBounds||Re,a=s.rightBounds||Qe;if(t){var u=r.layer_;u.source!==s.source&&(u.source=s.source);for(var c=0;c<4;c++)u.leftBounds[c]=o[c],u.rightBounds[c]=a[c];return r.wrapForFullscreen(r.layer_.source),r.updatePresent_(),void i()}if(r.layer_={predistorted:s.predistorted,source:s.source,leftBounds:o.slice(0),rightBounds:a.slice(0)},r.waitingForPresent_=!1,r.layer_&&r.layer_.source){var l=r.wrapForFullscreen(r.layer_.source),h=function(){var e=j();r.isPresenting=l===e,r.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch((function(e){console.error("screen.orientation.lock() failed due to",e.message)})),r.waitingForPresent_=!1,r.beginPresent_(),i()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),r.removeFullscreenWrapper(),r.disableWakeLock(),r.endPresent_(),r.removeFullscreenListeners_()),r.fireVRDisplayPresentChange_()},d=function(){r.waitingForPresent_&&(r.removeFullscreenWrapper(),r.removeFullscreenListeners_(),r.disableWakeLock(),r.waitingForPresent_=!1,r.isPresenting=!1,n(new Error("Unable to present.")))};r.addFullscreenListeners_(l,h,d),x(l)?(r.enableWakeLock(),r.waitingForPresent_=!0):(p()||f())&&(r.enableWakeLock(),r.isPresenting=!0,r.beginPresent_(),r.fireVRDisplayPresentChange_(),i())}r.waitingForPresent_||p()||(E(),n(new Error("Unable to present.")))}else i()}else n(new Error("VRDisplay is not capable of presenting."))}))},Ge.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise((function(r,i){e?(!E()&&p()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),f()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),r()):i(new Error("Was not presenting to VRDisplay."))}))},Ge.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},Ge.prototype.fireVRDisplayPresentChange_=function(){var t=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});e.dispatchEvent(t)},Ge.prototype.fireVRDisplayConnect_=function(){var t=new CustomEvent("vrdisplayconnect",{detail:{display:this}});e.dispatchEvent(t)},Ge.prototype.addFullscreenListeners_=function(e,t,r){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=r,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),r&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",r,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",r,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",r,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",r,!1))},Ge.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var r=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",r,!1),e.removeEventListener("webkitfullscreenerror",r,!1),document.removeEventListener("mozfullscreenerror",r,!1),e.removeEventListener("msfullscreenerror",r,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},Ge.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},Ge.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},Ge.prototype.beginPresent_=function(){},Ge.prototype.endPresent_=function(){},Ge.prototype.submitFrame=function(e){},Ge.prototype.getEyeParameters=function(e){return null};var qe={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},We={LEFT:"left",RIGHT:"right"};function Ze(t){var r=S({},qe);t=S(r,t||{}),Ge.call(this,{wakelock:t.MOBILE_WAKE_LOCK}),this.config=t,this.displayName="Cardboard VRDisplay",this.capabilities=new He({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new be(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new ve(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new Me(this.dpdb_.getDeviceParams(),t.ADDITIONAL_VIEWERS),this.viewerSelector_=new ke(t.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new Oe),p()&&e.addEventListener("resize",this.onResize_.bind(this))}return Ze.prototype=Object.create(Ge.prototype),Ze.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},Ze.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},Ze.prototype._getFieldOfView=function(e){var t;if(e==We.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=We.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},Ze.prototype._getEyeOffset=function(e){var t;if(e==We.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=We.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},Ze.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),r=this._getFieldOfView(e),i={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(i,"fieldOfView",{enumerable:!0,get:function(){return U("VRFieldOfView","VRFrameData's projection matrices"),r}}),i},Ze.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},Ze.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},Ze.prototype.beginPresent_=function(){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2")),t&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(t.canvas.width=w()*this.bufferScale_,t.canvas.height=T()*this.bufferScale_,this.cardboardUI_=new ie(t)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new ie(t)),this.distorter_=new V(t,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(N()&&O()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),e.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),e.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},Ze.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),e.removeEventListener("orientationchange",this.orientationHandler),e.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},Ze.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},Ze.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var r=t.canvas;r.width==this.lastWidth&&r.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=r.width,this.lastHeight=r.height,this.cardboardUI_.render()}},Ze.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},Ze.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var r=["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"];t.canvas.setAttribute("style",r.join("; ")+";"),L(t.canvas)}},Ze.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},Ze.prototype.fireVRDisplayDeviceParamsChange_=function(){var t=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});e.dispatchEvent(t)},Ze.VRFrameData=Ve,Ze.VRDisplay=Ge,Ze}()})))&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i,u={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",PROVIDE_MOBILE_VRDISPLAY:!0,MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1};function c(r){this.config=o(o({},u),r),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in t,this.native={},this.native.getVRDisplays=t.getVRDisplays,this.native.VRFrameData=e.VRFrameData,this.native.VRDisplay=e.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&n())&&(this.enable(),this.getVRDisplays().then((function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()})))}c.prototype.getPolyfillDisplays=function(){if(this._polyfillDisplaysPopulated)return this.polyfillDisplays;if(n()){var e=new a({ADDITIONAL_VIEWERS:this.config.ADDITIONAL_VIEWERS,DEFAULT_VIEWER:this.config.DEFAULT_VIEWER,MOBILE_WAKE_LOCK:this.config.MOBILE_WAKE_LOCK,DEBUG:this.config.DEBUG,DPDB_URL:this.config.DPDB_URL,CARDBOARD_UI_DISABLED:this.config.CARDBOARD_UI_DISABLED,K_FILTER:this.config.K_FILTER,PREDICTION_TIME_S:this.config.PREDICTION_TIME_S,ROTATE_INSTRUCTIONS_DISABLED:this.config.ROTATE_INSTRUCTIONS_DISABLED,YAW_ONLY:this.config.YAW_ONLY,BUFFER_SCALE:this.config.BUFFER_SCALE,DIRTY_SUBMIT_FRAME_BINDINGS:this.config.DIRTY_SUBMIT_FRAME_BINDINGS});this.polyfillDisplays.push(e)}return this._polyfillDisplaysPopulated=!0,this.polyfillDisplays},c.prototype.enable=function(){if(this.enabled=!0,this.hasNative&&this.native.VRFrameData){var r=this.native.VRFrameData,i=new this.native.VRFrameData,n=this.native.VRDisplay.prototype.getFrameData;e.VRDisplay.prototype.getFrameData=function(e){e instanceof r?n.call(this,e):(n.call(this,i),e.pose=i.pose,s(i.leftProjectionMatrix,e.leftProjectionMatrix),s(i.rightProjectionMatrix,e.rightProjectionMatrix),s(i.leftViewMatrix,e.leftViewMatrix),s(i.rightViewMatrix,e.rightViewMatrix))}}t.getVRDisplays=this.getVRDisplays.bind(this),e.VRDisplay=a.VRDisplay,e.VRFrameData=a.VRFrameData},c.prototype.getVRDisplays=function(){var e=this;return this.config,this.hasNative?this.native.getVRDisplays.call(t).then((function(t){return t.length>0?t:e.getPolyfillDisplays()})):Promise.resolve(this.getPolyfillDisplays())},c.version="0.10.12",c.VRFrameData=a.VRFrameData,c.VRDisplay=a.VRDisplay;var l=Object.freeze({default:c}),h=l&&c||l;return void 0!==r&&r.window&&(r.document||(r.document=r.window.document),r.navigator||(r.navigator=r.window.navigator)),h}("undefined"!=typeof window?window:{screen:{width:512,height:512}},"undefined"!=typeof navigator?navigator:{userAgent:"node"});function vn(t,r){var i,n,s,o,a=new e.Vector3,u=new e.Vector3,c=null;"VRFrameData"in window&&(c=new window.VRFrameData),"undefined"!=typeof navigator&&navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){n=e,e.length>0?i=e[0]:r&&r(new Error("HMD not available"))})).catch((function(){console.warn("THREE.VREffect: Unable to get VR Displays")})),this.isPresenting=!1,this.scale=1;var l=this,h=t.getSize(new e.Vector2),d=!1,p=t.getPixelRatio();this.getVRDisplay=function(){return i},this.setVRDisplay=function(e){i=e},this.getVRDisplays=function(){return console.warn("THREE.VREffect: getVRDisplays() is being deprecated."),n},this.setSize=function(r,n,s){if(h=new e.Vector2(r,n),d=s,l.isPresenting){var o=i.getEyeParameters("left");t.setPixelRatio(1),t.setSize(2*o.renderWidth,o.renderHeight,!1)}else t.setPixelRatio(p),t.setSize(r,n,s)};var f=t.domElement,A=[0,0,.5,1],M=[.5,0,.5,1];function g(){var r=l.isPresenting;if(l.isPresenting=void 0!==i&&i.isPresenting,l.isPresenting){var n=i.getEyeParameters("left"),s=n.renderWidth,o=n.renderHeight;r||(p=t.getPixelRatio(),h=t.getSize(new e.Vector2),t.setPixelRatio(1),t.setSize(2*s,o,!1))}else r&&(t.setPixelRatio(p),t.setSize(h.width,h.height,d))}window.addEventListener("vrdisplaypresentchange",g,!1),this.setFullScreen=function(e){return new Promise((function(t,r){void 0!==i?l.isPresenting!==e?e?(i.requestPresent([{source:f}]),t()):(i.exitPresent(),t()):t():r(new Error("No VR hardware found."))}))},this.requestPresent=function(){return this.setFullScreen(!0)},this.exitPresent=function(){return this.setFullScreen(!1)},this.requestAnimationFrame=function(e){return void 0!==i?i.requestAnimationFrame(e):window.requestAnimationFrame(e)},this.cancelAnimationFrame=function(e){void 0!==i?i.cancelAnimationFrame(e):window.cancelAnimationFrame(e)},this.submitFrame=function(){void 0!==i&&l.isPresenting&&i.submitFrame()},this.autoSubmitFrame=!0;var y=new e.PerspectiveCamera;y.layers.enable(1);var v=new e.PerspectiveCamera;function m(t,r,i,n){var s=Math.PI/180;return function(t,r,i,n){i=void 0===i?.01:i,n=void 0===n?1e4:n;var s=(r=void 0===r||r)?-1:1,o=new e.Matrix4,a=o.elements,u=function(e){var t=2/(e.leftTan+e.rightTan),r=2/(e.upTan+e.downTan);return{scale:[t,r],offset:[(e.leftTan-e.rightTan)*t*.5,(e.upTan-e.downTan)*r*.5]}}(t);return a[0]=u.scale[0],a[1]=0,a[2]=u.offset[0]*s,a[3]=0,a[4]=0,a[5]=u.scale[1],a[6]=-u.offset[1]*s,a[7]=0,a[8]=0,a[9]=0,a[10]=n/(i-n)*-s,a[11]=n*i/(i-n),a[12]=0,a[13]=0,a[14]=s,a[15]=0,o.transpose(),o}({upTan:Math.tan(t.upDegrees*s),downTan:Math.tan(t.downDegrees*s),leftTan:Math.tan(t.leftDegrees*s),rightTan:Math.tan(t.rightDegrees*s)},r,i,n)}v.layers.enable(2),this.render=function(r,n){var h,d;if(i&&l.isPresenting){var p=r.autoUpdate;p&&(r.updateMatrixWorld(),r.autoUpdate=!1);var f=i.getEyeParameters("left"),g=i.getEyeParameters("right");a.fromArray(f.offset),u.fromArray(g.offset),Array.isArray(r)&&(console.warn("THREE.VREffect.render() no longer supports arrays. Use object.layers instead."),r=r[0]);var N,D,w=t.getSize(new e.Vector2),T=i.getLayers();if(T.length){var x=T[0];N=null!==x.leftBounds&&4===(null===(h=x.leftBounds)||void 0===h?void 0:h.length)?x.leftBounds:A,D=null!==x.rightBounds&&4===(null===(d=x.rightBounds)||void 0===d?void 0:d.length)?x.rightBounds:M}else N=A,D=M;s={x:Math.round(w.width*N[0]),y:Math.round(w.height*N[1]),width:Math.round(w.width*N[2]),height:Math.round(w.height*N[3])},o={x:Math.round(w.width*D[0]),y:Math.round(w.height*D[1]),width:Math.round(w.width*D[2]),height:Math.round(w.height*D[3])},t.setScissorTest(!0),t.autoClear&&t.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(y.position,y.quaternion,y.scale),n.matrixWorld.decompose(v.position,v.quaternion,v.scale);var E=this.scale;return y.translateOnAxis(a,E),v.translateOnAxis(u,E),i.getFrameData&&c?(i.depthNear=n.near,i.depthFar=n.far,i.getFrameData(c),y.projectionMatrix.elements=[].slice.call(c.leftProjectionMatrix),v.projectionMatrix.elements=[].slice.call(c.rightProjectionMatrix)):(y.projectionMatrix=m(f.fieldOfView,!0,n.near,n.far),v.projectionMatrix=m(g.fieldOfView,!0,n.near,n.far)),t.setViewport(s.x,s.y,s.width,s.height),t.setScissor(s.x,s.y,s.width,s.height),t.render(r,y),t.setViewport(o.x,o.y,o.width,o.height),t.setScissor(o.x,o.y,o.width,o.height),t.render(r,v),t.setViewport(0,0,w.width,w.height),t.setScissorTest(!1),p&&(r.autoUpdate=!0),void(l.autoSubmitFrame&&l.submitFrame())}t.render(r,n)},this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",g,!1)}}var mn=8900346,Nn=new e.SphereBufferGeometry(.1,32,32);function Dn(t,r){Array.isArray(t)?t.forEach((function(t){t instanceof e.MeshBasicMaterial&&t.setValues({color:r})})):t instanceof e.MeshBasicMaterial&&t.setValues({color:r})}var wn=function(t){function r(){var r=t.call(this)||this,i=new e.MeshBasicMaterial({color:mn,opacity:.5,transparent:!0});return r.mesh=new e.Mesh(Nn,i),r.active=!1,r.current=!1,r.add(r.mesh),r}return Se(r,t),r.prototype.isActive=function(){return this.active},r.prototype.isCurrent=function(){return this.current},r.prototype.setActive=function(){!0!==this.active&&(this.active=!0,Dn(this.mesh.material,16776960))},r.prototype.setCurrent=function(){!0!==this.current&&(this.current=!0,Dn(this.mesh.material,65280))},r.prototype.reset=function(){!1===this.current&&!1===this.active||(this.active=!1,this.current=!1,Dn(this.mesh.material,mn))},r.prototype.dispose=function(){this.remove(this.mesh),Array.isArray(this.mesh.material)?this.mesh.material.forEach((function(e){return e.dispose()})):this.mesh.material.dispose()},r}(e.Object3D),Tn=null,xn=[{zh:"1. 进入: 将手机横屏放入VR眼镜中",en:"1. Enter: Put your phone<br/> horizontally into the VR glasses",ja:"1.入力:電話をVRメガネに水平に置きます"},{zh:"2. 前进: 视角中心对准蓝点, 直至变绿",en:"2. Forward: align the center of the viewing<br/> angle with the blue dot, until it turns green",ja:"2.前方:緑色に変わるまで、<br/>視野角の中心を青い点に合わせます"},{zh:"3. 退出: 将手机竖屏再触碰屏幕",en:"3. Exit: Put the phone in portrait<br/> orientation and then touch the screen",ja:"3.終了:電話を縦向きにしてから<br/>画面にタッチします"}],En=function(t){function r(e){var i=this;Re(Tn)&&(Tn=new yn(e.webvrPolyfillConfig||{}));var n=r.parseArgs(e);i=t.call(this,n)||this;var s=n.element,o=n.renderer,a=n.panoIndex,u=void 0===a?0:a;i.effect=new vn(o);var c=s.offsetWidth,l=s.offsetHeight;i.element=s,i.effect.setSize(c,l),i.effect.isPresenting=!0,i.panoSphereMeshes=i.work.observers.map((function(e,t){var r=new wn;return r.name="panoSphereMesh_"+t,r.position.copy(e.position),Object.assign(r,{panoIndex:t}),i.helper.add(r),r}));var h=i.work.observers[u].visibleNodes;h=h.filter((function(e){return i.work.observers[e].active}));var d=i.panoSphereMeshes.filter((function(e){return e.panoIndex===u}))[0];return i.panoSphereMeshes.forEach((function(e){if(e.visible=h.indexOf(e.panoIndex)>=0,d){var t=d.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),i.intersectMesh.parent&&i.intersectMesh.parent.remove(i.intersectMesh),i.initHelper(s),i}return Se(r,t),r.parseArgs=function(e){var r=Le(Le({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,r)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this.panoSphereMeshes&&(this.panoSphereMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoSphereMeshes.length=0),this.destroyHelper()},r.prototype.initHelper=function(e){for(var t="five_webvr_helper_"+Fe(),r=1,i=document.getElementsByTagName("meta"),n=0;n<i.length;n++){var s=i[n];if("viewport"===s.getAttribute("name")){var o=(s.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(r=Number(o[1])),isNaN(r)&&(r=1)}}var a=function(e){return Math.floor(e*r)+"px"},u=document.createElement("style"),c="\n ."+t+"{\n font-family:sans-serif;\n background:#394043;color:#ffffff;\n position:absolute;display:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n }\n ."+t+" img{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,-100%);\n -moz-transform:translate(-50%,-100%);\n transform:translate(-50%,-100%);\n pointer-events:none;\n width:"+a(132)+";\n height:"+a(162)+";\n }\n ."+t+" ol{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,0);\n -moz-transform:translate(-50%,0);\n transform:translate(-50%,0);\n pointer-events:none;\n margin-top:"+a(38)+";\n font-size:"+a(16)+";\n line-height:"+a(30)+";\n }\n ."+t+" li{\n list-style-type:none;\n white-space:nowrap;\n position:relative;\n padding-left:"+a(14)+";\n margin-bottom:"+a(12)+";\n }\n @media screen and (orientation: portrait){\n ."+t+"{display: block!important}\n }\n ";u.setAttribute("type","text/css"),"styleSheet"in u?u.styleSheet.cssText=c:u.appendChild(document.createTextNode(c));var l=this.helperElement=document.createElement("div");l.className=t,l.innerHTML='\n <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTMycHgiIGhlaWdodD0iMTYycHgiIHZpZXdCb3g9IjAgMCAxMzIgMTYyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4xICg0NDQ2MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+R3JvdXA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjY1Ljk4NTM0MjMgOTMuMTg5NjU1MiAwIDkzLjE4OTY1NTIgMCAwLjI0NzE1NTE3MiAxMzEuOTcwNjg1IDAuMjQ3MTU1MTcyIDEzMS45NzA2ODUgOTMuMTg5NjU1MiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWKoOi9vemhtS1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTE4LjAwMDAwMCwgLTE4NC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTguMDAwMDAwLCAxODQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iUGFnZS0xIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaXBob25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNS4wMDAwMDAsIDAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4yMDIzNzg3LDMyLjI2OTE1MzIgQzYyLjIwODU3NTQsMzQuNDI4MDQyOSA2MC42ODkzNDU5LDM3LjA2MDgzNTEgNTguODA3NjA4MiwzOC4xNDI4NjEgTDU1Ljg3MDM2MjMsMzkuODQwMjM3NyBMNTUuMTc5NDI3OSwzOC42Mzc0MTMgTDU1LjEzNTAxOCwyMi4xNTMwMzY0IEw1Ni4zMTM0Mjc5LDIyLjE0Njg0MTYgQzU2LjMxMzQyNzksMjMuNDk1MjQ0MiA1Ny4yNjk3ODg1LDI0LjAzOTM1NDUgNTguNDQ3MTY1NiwyMy4zNTU4NjEgQzU5LjYxODM0NTksMjIuNjc4NTYyMyA2MC41NjIzMTMxLDIxLjAzOTAwMzkgNjAuNTYyMzEzMSwxOS42OTY3OTYxIEw2Mi4xNjQxNjU2LDE5LjY5MDYwMTMgTDYyLjIwMjM3ODcsMzIuMjY5MTUzMiBaIiBpZD0iRmlsbC0xIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xMjAxNjg5LDUuMjYzNjIyNzMgTDYyLjE2MzU0NTksMTkuNjkxMzI0IEw2MC41NjI3MjYyLDE5LjY5NjQ4NjQgQzYwLjU1NTQ5NjcsMTguMzQxODg5IDU5LjYwNTMzMjgsMTcuNzk3Nzc4NiA1OC40Mjc5NTU3LDE4LjQ3NTA3NzMgQzU3LjI1Njc3NTQsMTkuMTUyMzc2IDU2LjMwNjYxMTUsMjAuNzk4MTI5MiA1Ni4zMTI4MDgyLDIyLjE0NzU2NDMgTDU1LjEzNTQzMTEsMjIuMTUyNzI2NiBMNTUuMDkxMDIxMyw3LjAxMDU1Nzc5IEw1NC4zOTQ5MjMsNS44MDc3MzMxMiBMNTguNzA2ODA4MiwzLjMxOTQ4NjM2IEM2MC41ODc1MTMxLDIuMjMxMjY1NTggNjIuMTIwMTY4OSwzLjEwNDczMzEyIDYyLjEyMDE2ODksNS4yNjM2MjI3MyIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuMTEyNjM3NywxOS45NTYxNTE5IEM2MC4xMTI2Mzc3LDIxLjAxMzM5ODcgNTkuMzY0OSwyMi4zMTEyMTA0IDU4LjQ0MDU1NTcsMjIuODQyOTMxMiBDNTcuNTE2MjExNSwyMy4zNzU2ODQ0IDU2Ljc2MjI3NywyMi45NDUxNDU1IDU2Ljc2MjI3NywyMS44ODY4NjYyIEM1Ni43NTYwODAzLDIwLjgyMzQyNDcgNTcuNTAzODE4LDE5LjUyNTYxMyA1OC40MzQzNTksMTguOTkzODkyMiBDNTkuMzUyNTA2NiwxOC40NjIxNzE0IDYwLjEwNjQ0MSwxOC44OTI3MTA0IDYwLjExMjYzNzcsMTkuOTU2MTUxOSIgaWQ9IkZpbGwtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wMTA4NTkwMiw1My4yOTE1MzQ0IEw4Ljk5MTIzNjA3LDQ1LjYxOTI2ODIgQzguOTkxMjM2MDcsNDUuNDc0NzIyNyA4Ljg5MDAyMjk1LDQ1LjQxNjkwNDUgOC43NjQwMjI5NSw0NS40ODYwNzk5IEM4LjYzNjk5MDE2LDQ1LjU2MzUxNDkgOC41NDE5NzM3Nyw0NS43MzM4NzIxIDguNTQxOTczNzcsNDUuODc4NDE3NSBMOC41NjA1NjM5Myw1My41NTE3MTYyIEM4LjU2MDU2MzkzLDUzLjY5MTA5OTQgOC42NjI4MDk4NCw1My43NDY4NTI2IDguNzgyNjEzMTEsNTMuNjc3Njc3MyBDOC45MDk2NDU5LDUzLjYwMjMwNzEgOS4wMTA4NTkwMiw1My40MzE5NSA5LjAxMDg1OTAyLDUzLjI5MTUzNDQgTDkuMDEwODU5MDIsNTMuMjkxNTM0NCBaIE01NS4xNzk1MzExLDM4LjYzNzcyMjcgTDU1Ljg3MDQ2NTYsMzkuODQwNTQ3NCBMOS4xODc0NjU1Nyw2Ni43ODE3NTUyIEM3LjMwNzc5MzQ0LDY3Ljg3MTAwODQgNS43NzUxMzc3LDY2Ljk5NjUwODQgNS43NzUxMzc3LDY0LjgzODY1MTMgTDUuNjkyNTE0NzUsMzcuODMyMzk4MSBDNS42ODYzMTgwMywzNS42NzU1NzM0IDcuMjA1NTQ3NTQsMzMuMDQxNzQ4NyA5LjA4NzI4NTI1LDMxLjk1ODY5MDMgTDU0LjM5NDYxMzEsNS44MDgzNTI2IEw1NS4wOTA3MTE1LDcuMDExMTc3MjcgTDExLjg5ODUzMTEsMzEuOTM5MDczNCBMMTEuOTg3MzUwOCw2My41NjU2MTg4IEw1NS4xNzk1MzExLDM4LjYzNzcyMjcgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IEM1NC44NjYyODY5LDAuMDAwNTE2MjMzNzY2IDU0LjM0Njc5NTEsMC4xNTAyMjQwMjYgNTMuNzk4Mzg1MiwwLjQ2NzE5MTU1OCBMNC4xNzkxNzIxMywyOS4xMDU3NzYgQzIuMjk5NSwzMC4xOTA4OTk0IDAuNzgwMjcwNDkyLDMyLjgyMTYyNjYgMC43ODU0MzQ0MjYsMzQuOTgxNTQ4NyBMMC44NjI4OTM0NDMsNjEuOTg3ODAxOSBDMC44NjU5OTE4MDMsNjMuMDYwNTM1NyAxLjI0Mzk5MTgsNjMuODE1MjY5NSAxLjg1NTQwMTY0LDY0LjE2OTQwNTggTDYuNzY0MjM3Nyw2Ny4wMjIxMTM2IEM2LjE1Mzg2MDY2LDY2LjY2Njk0NDggNS43NzQ4Mjc4Nyw2NS45MTIyMTEgNS43NzE3Mjk1MSw2NC44Mzk0NzczIEw1LjY5NTMwMzI4LDM3LjgzMzIyNCBDNS42ODkxMDY1NiwzNS42NzQzMzQ0IDcuMjA4MzM2MDcsMzMuMDQyNTc0NyA5LjA4ODAwODIsMzEuOTU3NDUxMyBMNTguNzA3MjIxMywzLjMxODg2Njg4IEM1OS4yNTY2NjM5LDMuMDAxODk5MzUgNTkuNzc1MTIzLDIuODUyMTkxNTYgNjAuMjM0NzEzMSwyLjg1MjE5MTU2IEM2MC41NjgzMDMzLDIuODUyMTkxNTYgNjAuODY5ODc3LDIuOTMwNjU5MDkgNjEuMTMwMTM5MywzLjA4MTM5OTM1IEw1Ni4yMjAyNzA1LDAuMjMwNzU2NDk0IEM1NS45NjEwNDEsMC4wNzg5ODM3NjYyIDU1LjY1ODQzNDQsMC4wMDA1MTYyMzM3NjYgNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IE01NS4zMjU4NzcsMC42MzM0MTg4MzEgQzU1LjU0Mzc5NTEsMC42MzM0MTg4MzEgNTUuNzM3OTU5LDAuNjgxOTQ0ODA1IDU1LjkwMjE3MjEsMC43NzY5MzE4MTggTDU4Ljg5NjIyMTMsMi41MTY2Mzk2MSBDNTguNzI4OTA5OCwyLjU4Nzg3OTg3IDU4LjU2MDU2NTYsMi42NzM1NzQ2OCA1OC4zOTExODg1LDIuNzcxNjU5MDkgTDguNzcxOTc1NDEsMzEuNDEwMjQzNSBDNi42ODQ3MTMxMSwzMi42MTQxMDA2IDUuMDU0OTc1NDEsMzUuNDM2ODY2OSA1LjA2MjIwNDkyLDM3LjgzNTI4OSBMNS4xMzg2MzExNSw2NC44NDE1NDIyIEM1LjEzODYzMTE1LDY1LjAyMTE5MTYgNS4xNDg5NTkwMiw2NS4xOTU2Nzg2IDUuMTY3NTQ5MTgsNjUuMzYyOTM4MyBMMi4xNzM1LDYzLjYyMzIzMDUgQzEuNzM4Njk2NzIsNjMuMzcwMjc2IDEuNDk4MDU3MzgsNjIuNzg3OTY0MyAxLjQ5NTk5MTgsNjEuOTg1NzM3IEwxLjQxOTU2NTU3LDM0Ljk3OTQ4MzggQzEuNDEzMzY4ODUsMzMuMDU5MDk0MiAyLjgyMzEyMjk1LDMwLjYxOTM3MzQgNC40OTUyMDQ5MiwyOS42NTQwMTYyIEw1NC4xMTU0NTA4LDEuMDE0Mzk5MzUgQzU0LjU0ODE4ODUsMC43NjU1NzQ2NzUgNTQuOTY2NDY3MiwwLjYzMzQxODgzMSA1NS4zMjU4NzcsMC42MzM0MTg4MzEiIGlkPSJGaWxsLTM1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA4ODUyNDU5LDMyLjI3NDIxMjMgQzkuMDMzNzg2ODksMzIuMjc0MjEyMyA4Ljk4MDA4MTk3LDMyLjI1OTc1NzggOC45Mjk0NzU0MSwzMi4yMzE4ODEyIEw0LjM4OTM0NDI2LDI5LjU5MzkyNjYgQzQuMjM3NTI0NTksMjkuNTA2MTY2OSA0LjE4NTg4NTI1LDI5LjMxMjA2MyA0LjI3MzY3MjEzLDI5LjE2MTMyMjcgQzQuMzYyNDkxOCwyOS4wMDk1NSA0LjU1NjY1NTc0LDI4Ljk1OTk5MTYgNC43MDc0NDI2MiwyOS4wNDY3MTg4IEw5LjI0NzU3Mzc3LDMxLjY4NDY3MzQgQzkuMzk4MzYwNjYsMzEuNzcyNDMzMSA5LjQ1LDMxLjk2NTUwNDUgOS4zNjIyMTMxMSwzMi4xMTcyNzczIEM5LjMwMzM0NDI2LDMyLjIxNzQyNjYgOS4xOTY5NjcyMSwzMi4yNzQyMTIzIDkuMDg4NTI0NTksMzIuMjc0MjEyMyIgaWQ9IkZpbGwtMzciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTU4LjcwNzYzNDQsMy42MzUzMTgxOCBDNTguNjUyODk2NywzLjYzNTMxODE4IDU4LjU5OTE5MTgsMy42MjE4OTYxIDU4LjU0ODU4NTIsMy41OTI5ODcwMSBMNTMuOTY5MjA4MiwwLjkzMjMxODE4MiBDNTMuODE4NDIxMywwLjg0NDU1ODQ0MiA1My43NjY3ODIsMC42NTA0NTQ1NDUgNTMuODU0NTY4OSwwLjQ5OTcxNDI4NiBDNTMuOTQyMzU1NywwLjM0NjkwOTA5MSA1NC4xMzY1MTk3LDAuMjk4MzgzMTE3IDU0LjI4NzMwNjYsMC4zODUxMTAzOSBMNTguODY2NjgzNiwzLjA0NTc3OTIyIEM1OS4wMTc0NzA1LDMuMTMzNTM4OTYgNTkuMDY5MTA5OCwzLjMyNjYxMDM5IDU4Ljk4MTMyMywzLjQ3ODM4MzEyIEM1OC45MjI0NTQxLDMuNTc5NTY0OTQgNTguODE2MDc3LDMuNjM1MzE4MTggNTguNzA3NjM0NCwzLjYzNTMxODE4IiBpZD0iRmlsbC0zOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy4zMjA5MjYyMyw2My4zMzk5MjE0IEMyLjc5NjI3MDQ5LDYzLjMzOTkyMTQgMi4zNzA3NjIzLDYyLjkxNTU3NzMgMi4zNzA3NjIzLDYyLjM5MDA1MTMgTDIuMzcwNzYyMyw1OC4xMzAwOTAzIEMyLjM3MDc2MjMsNTcuNjA0NTY0MyAyLjc5NjI3MDQ5LDU3LjE4MDIyMDEgMy4zMjA5MjYyMyw1Ny4xODAyMjAxIEMzLjg0NTU4MTk3LDU3LjE4MDIyMDEgNC4yNzAwNTczOCw1Ny42MDQ1NjQzIDQuMjcwMDU3MzgsNTguMTMwMDkwMyBMNC4yNzAwNTczOCw2Mi4zOTAwNTEzIEM0LjI3MDA1NzM4LDYyLjkxNTU3NzMgMy44NDU1ODE5Nyw2My4zMzk5MjE0IDMuMzIwOTI2MjMsNjMuMzM5OTIxNCIgaWQ9IkZpbGwtNDEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNDYiPjwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBDODAuMzMyNzcwNiw1MC4yNzIxNzI0IDgxLjQ3MTM3MTgsNDguNjk5MjkzMSA4Mi43NjcwNzczLDQ3Ljk1MDUzNDUgQzgzLjM3MDM5MDIsNDcuNjAyMDg2MiA4My45NDIxMjAyLDQ3LjQ3OTcyNDEgODQuMzM4OTMwMSw0Ny42MTUwNTE3IEM4NC42MTI2NDc5LDQ3LjcwNzQzMSA4NC44MTgzNDExLDQ3LjkyNjIyNDEgODQuOTY3MzQ3Miw0OC4yODQzOTY2IEw4OC41NTQwMjIxLDU2LjkxOTQzMSBDODguNTYzNzM5OSw1Ni45NDEzMTAzIDg4LjU3NjY5NjksNTYuOTYwNzU4NiA4OC41ODcyMjQ1LDU2Ljk4MTAxNzIgQzg4LjU5Nzc1MjEsNTcuMDAwNDY1NSA4OC42MDU4NTAzLDU3LjAxOTkxMzggODguNjE3OTk3NSw1Ny4wMzg1NTE3IEM4OC42MzUwMDM3LDU3LjA2NDQ4MjggODguNjU1MjQ5MSw1Ny4wODcxNzI0IDg4LjY3NDY4NDcsNTcuMTA5ODYyMSBDODguNjg1MjEyMyw1Ny4xMjM2Mzc5IDg4LjY5NDkzMDEsNTcuMTM4MjI0MSA4OC43MDYyNjc1LDU3LjE0OTU2OSBDODguNzMyMTgxNiw1Ny4xNzYzMTAzIDg4Ljc2MDUyNTIsNTcuMTk5ODEwMyA4OC43ODk2Nzg1LDU3LjIyMTY4OTcgQzg4Ljc5Nzc3NjcsNTcuMjI4MTcyNCA4OC44MDUwNjUsNTcuMjM1NDY1NSA4OC44MTMxNjMyLDU3LjI0MTk0ODMgQzg5LjAwNzUxOSw1Ny4zNzgwODYyIDg5LjI2MjYxMSw1Ny40MjEwMzQ1IDg5LjQ5OTg4NzEsNTcuMzMyNzA2OSBMODkuODMxMTAxOCw1Ny4yMDc5MTM4IEw5MC4wNzQ4NTY0LDU3LjExODc3NTkgQzkwLjIxMDkwNTUsNTcuMDY4NTM0NSA5MC4zNDc3NjQ0LDU3LjAxODI5MzEgOTAuNDg1NDMzMSw1Ni45Njk2NzI0IEM5MC43ODY2ODQ3LDU2Ljg2MTg5NjYgOTEuMDkwMzY1Niw1Ni43NTk3OTMxIDkxLjM5NDA0NjYsNTYuNjU3Njg5NyBMOTIuMzY1MDE2LDU2LjM0MTY1NTIgQzkyLjgwMjMxNjYsNTYuMjAzMDg2MiA5My4yNDA0MjcsNTYuMDY4NTY5IDkzLjY4MjU4NjUsNTUuOTQwNTM0NSBDOTMuODUxMDI4Miw1NS44OTE5MTM4IDk0LjAxOTQ2OTksNTUuODQ0OTEzOCA5NC4xODc5MTE3LDU1Ljc5NjI5MzEgTDk0LjI3OTQyMDksNTUuNzcxMTcyNCBDOTQuNjg0MzI4OCw1NS42NTc3MjQxIDk1LjA5MDA0NjYsNTUuNTQ5OTQ4MyA5NS40OTczODQsNTUuNDQ2MjI0MSBMOTUuNjA2NzA5Miw1NS40MTcwNTE3IEM5NS43NjMwMDM3LDU1LjM3NjUzNDUgOTUuOTIwMTA4LDU1LjMzNjAxNzIgOTYuMDc3MjEyMyw1NS4yOTc5MzEgQzk2LjU2NjM0MTEsNTUuMTc3MTg5NyA5Ny4wNTU0Njk5LDU1LjA2Mzc0MTQgOTcuNTQ2MjE4NCw1NC45NTUxNTUyIEw5Ny44NTM5NDg1LDU0Ljg4NTQ2NTUgQzk4LjQ0NDMwNDMsNTQuNzU5MDUxNyA5OS4wMzcwODk2LDU0LjY0MjM2MjEgOTkuNjI3NDQ1NCw1NC41MzM3NzU5IEwxMDAuMDIxMDE2LDU0LjQ2NjUxNzIgQzEwMC42MTU0MjEsNTQuMzYxMTcyNCAxMDEuMjA5MDE2LDU0LjI2NjM2MjEgMTAxLjgwNDIzMSw1NC4xNzk2NTUyIEwxMDIuMjY1MDE2LDU0LjExMjM5NjYgQzEwMi45NjA2NDgsNTQuMDE2Nzc1OSAxMDMuNjQ3MzcyLDUzLjkzNDEyMDcgMTA0LjMwNTc1Miw1My44NjYwNTE3IEwxMDQuODM2MTgyLDUzLjgxNzQzMSBDMTA1LjIyNjUxMyw1My43ODE3NzU5IDEwNS42MTUyMjUsNTMuNzQ3NzQxNCAxMDYuMDA0NzQ2LDUzLjcyMDE4OTcgQzEwNi4yMTQ0ODgsNTMuNzA0NzkzMSAxMDYuNDIxODAxLDUzLjY5MjYzNzkgMTA2LjYzMDczNCw1My42Nzk2NzI0IEMxMDcuMDAwMDEsNTMuNjU3NzkzMSAxMDcuMzY2ODU2LDUzLjYzODM0NDggMTA3LjczNTMyMyw1My42MjM3NTg2IEMxMDcuOTUyMzUzLDUzLjYxNDg0NDggMTA4LjE2OTM4NCw1My42MDUxMjA3IDEwOC4zODU2MDUsNTMuNTk4NjM3OSBDMTA4LjY0Nzk4NSw1My41OTIxNTUyIDEwOC45MTAzNjYsNTMuNTg3MjkzMSAxMDkuMTczNTU2LDUzLjU4NDA1MTcgQzEwOS42NzgwNzEsNTMuNTc1OTQ4MyAxMTAuMTc4NTM3LDUzLjU3Njc1ODYgMTEwLjY4MDYyMyw1My41ODQ4NjIxIEwxMTAuNzY0MDM0LDUzLjU4NTY3MjQgQzExMC45ODE4NzUsNTMuNTg4OTEzOCAxMTEuMTk5NzE1LDUzLjU5MjE1NTIgMTExLjQxNTEyNiw1My41OTc4Mjc2IEMxMTEuNjI4MTA4LDUzLjYwNTEyMDcgMTExLjg0MDI4LDUzLjYxNDg0NDggMTEyLjA1MjQ1Miw1My42MjM3NTg2IEMxMTIuMzE0MDIyLDUzLjYzNDI5MzEgMTEyLjU3NDc4Myw1My42NDcyNTg2IDExMi44MzQ3MzQsNTMuNjYyNjU1MiBDMTEzLjA0NDQ3Niw1My42NzQ4MTAzIDExMy4yNTQyMTgsNTMuNjg5Mzk2NiAxMTMuNDYzOTYxLDUzLjcwNDc5MzEgQzExMy43MjQ3MjEsNTMuNzI0MjQxNCAxMTMuOTg1NDgyLDUzLjc0NDUgMTE0LjI0MzgxMyw1My43NjcxODk3IEMxMTQuNDMzMzEsNTMuNzg1MDE3MiAxMTQuNjIxOTk4LDUzLjgwMjg0NDggMTE0LjgwOTA2NSw1My44MjIyOTMxIEMxMTUuMDczODc1LDUzLjg0OTAzNDUgMTE1LjMzNjI1NSw1My44Nzk4Mjc2IDExNS41OTYyMDYsNTMuOTExNDMxIEMxMTUuNzgwMDM0LDUzLjkzMzMxMDMgMTE1Ljk2MzA1Myw1My45NTYgMTE2LjE0NDQ1Miw1My45ODAzMTAzIEMxMTYuNDEyNTAxLDU0LjAxNjc3NTkgMTE2LjY3ODEyLDU0LjA1NzI5MzEgMTE2Ljk0MTMxLDU0LjA5ODYyMDcgTDExNy4wOTExMjYsNTQuMTIxMzEwMyBDMTE3LjIxMDE2OSw1NC4xMzkxMzc5IDExNy4zMjY3ODMsNTQuMTU3Nzc1OSAxMTcuNDQyNTg3LDU0LjE3NjQxMzggQzExNy43MzA4ODEsNTQuMjI1ODQ0OCAxMTguMDE1MTI2LDU0LjI3OTMyNzYgMTE4LjMwMDk5MSw1NC4zMzUyNDE0IEwxMTguNDQ2NzU4LDU0LjM2MTk4MjggQzExOC41MzUwMjgsNTQuMzc4MTg5NyAxMTguNjIzMjk4LDU0LjM5NTIwNjkgMTE4LjcxMjM3OCw1NC40MTMwMzQ1IEMxMTkuMDE3Njc5LDU0LjQ3NDYyMDcgMTE5LjMxNzMxLDU0LjU0NDMxMDMgMTE5LjYxNTMyMyw1NC42MTQgTDExOS45NzE2NDIsNTQuNjk0MjI0MSBDMTIwLjM4NDY0OCw1NC43OTU1MTcyIDEyMC43OTE5ODUsNTQuOTAyNDgyOCAxMjEuMTkyODQ0LDU1LjAxNjc0MTQgQzEyMS42MjkzMzUsNTUuMTQyMzQ0OCAxMjIuMDU2OTE4LDU1LjI3NjA1MTcgMTIyLjQ3ODgzMiw1NS40MTc4NjIxIEMxMjIuNTU0MTQ1LDU1LjQ0MjE3MjQgMTIyLjYyNzAyOCw1NS40Njk3MjQxIDEyMi43MDA3MjEsNTUuNDk1NjU1MiBMMTIyLjg1NjIwNiw1NS41NTMxODk3IEMxMjMuMTQ1MzEsNTUuNjU0NDgyOCAxMjMuNDMyNzk1LDU1Ljc1NjU4NjIgMTIzLjcxNjIzMSw1NS44Njc2MDM0IEMxMjMuNzc2OTY3LDU1Ljg5MTEwMzQgMTIzLjgzNTI3NCw1NS45MTYyMjQxIDEyMy44OTQzOSw1NS45NDA1MzQ1IEwxMjQuMDQwOTY3LDU2LjAwMTMxMDMgQzEyNC40MTc1MzEsNTYuMTU0NDY1NSAxMjQuNzg1MTg4LDU2LjMxNDkxMzggMTI1LjE0MzkzNiw1Ni40ODI2NTUyIEwxMjUuMjMwNTg3LDU2LjUyMzE3MjQgQzEyNS4zMjc3NjQsNTYuNTY3NzQxNCAxMjUuNDI0OTQyLDU2LjYxMzEyMDcgMTI1LjUyMjEyLDU2LjY2MTc0MTQgQzEyNS44NTk4MTMsNTYuODI3MDUxNyAxMjYuMTYwMjU1LDU2Ljk4MTgyNzYgMTI2LjQzNTU5Myw1Ny4xMzA5MzEgQzEyNi40MzU1OTMsNTcuMzczMjI0MSAxMjYuNDM1NTkzLDU3LjY4NjgyNzYgMTI2LjQzNjQwMiw1OC4wMDM2NzI0IEwxMjYuNDM2NDAyLDU4LjAyNzE3MjQgQzExNy40MzUyOTgsNTMuNTMzIDEwMy4wNTg2MzYsNTMuNTYyMTcyNCA5MC4wMjU0NTc3LDU4LjE5ODE1NTIgTDg4LjQ5ODE0NDgsNTguMTg2IEw3OC44MzI5OTE0LDU1LjY4NzcwNjkgTDc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBaIE03Ni4yNDQwMDk4LDU3LjQ1OTkzMSBMNzYuMjQ3MjQ5MSw1Ni40MjI2ODk3IEM3Ni4yNDcyNDkxLDU2LjQxNTM5NjYgNzYuMjQ0ODE5Niw1Ni40MDg5MTM4IDc2LjI0NDgxOTYsNTYuNDAxNjIwNyBDNzYuMjQ0MDA5OCw1Ni4zODg2NTUyIDc2LjI0NTYyOTQsNTYuMzc0ODc5MyA3Ni4yNDQwMDk4LDU2LjM2MTkxMzggTDc2LjI0NDAwOTgsNTYuMjI5MDE3MiBDNzYuMjQ0MDA5OCw1NS45NjI0MTM4IDc2LjEwMjI5Miw1NS43MTY4NzkzIDc1Ljg3MTQ5NDUsNTUuNTgzOTgyOCBDNzUuNzMyMjA2MSw1NS41MDM3NTg2IDc1LjU3MzQ4MjIsNTUuNDc3ODI3NiA3NS40MTg4MDc0LDU1LjQ5NDg0NDggQzc1LjI5MzI4NTksNTUuNDE3ODYyMSA3NS4xNjQ1MjUyLDU1LjM0MzMxMDMgNzUuMDQyMjQyOSw1NS4yNjM4OTY2IEM3NS4wMDQxODE2LDU1LjIzODc3NTkgNzQuOTY4NTQ5Nyw1NS4yMTI4NDQ4IDc0LjkyOTY3ODUsNTUuMTg2OTEzOCBDNzQuNjg5MTYzMiw1NS4wMjgwODYyIDc0LjQ1MjY5NjksNTQuODY1MjA2OSA3NC4yMjY3NTgzLDU0LjY5ODI3NTkgQzc0LjIxMjk5MTQsNTQuNjg3NzQxNCA3NC4xOTkyMjQ1LDU0LjY3NzIwNjkgNzQuMTg1NDU3Nyw1NC42Njc0ODI4IEM3My42Nzc3MDMxLDU0LjI4OTg2MjEgNzMuMjA1NTgwNCw1My44OTQ0MTM4IDcyLjc3Mzk0ODUsNTMuNDgwMzI3NiBDNzMuNDc3Njc4NSw1MS45MzAxMzc5IDczLjg0NjE0NDgsNTAuMzY2OTgyOCA3My44NDIwOTU3LDQ4LjkzMDI0MTQgQzczLjgzNzIzNjgsNDcuMTYyODc5MyA3My4yNDYwNzEyLDQ1Ljc1NTMxMDMgNzIuMTc3MTE0MSw0NC45NjYwMzQ1IEM3MS43MzczODQsNDQuNjQwMjc1OSA3MS4yMjgwMDk4LDQ0LjQzNjg3OTMgNzAuNjc3MzM1LDQ0LjM0NjEyMDcgQzcwLjY4Nzg2MjYsNDQuMzIzNDMxIDcwLjY5ODM5MDIsNDQuMjk3NSA3MC43MDg5MTc4LDQ0LjI3NDgxMDMgQzcwLjcxMDUzNzQsNDQuMjcxNTY5IDcwLjczMzIxMjMsNDQuMjI3IDcwLjczNDgzMTksNDQuMjIzNzU4NiBDNzAuNzk3OTk3NSw0NC4wOTI0ODI4IDcwLjg2NzY0MTcsNDMuOTYyODI3NiA3MC45MzcyODU5LDQzLjgzMDc0MTQgTDcxLjE4MjY2MDEsNDMuMzU2Njg5NyBDNzEuMjM2MTA4LDQzLjI2MjY4OTcgNzEuMjkxOTg1Myw0My4xNjc4NzkzIDcxLjM0ODY3MjQsNDMuMDczMDY5IEw3MS40MTUwNzczLDQyLjk2Mjg2MjEgQzcxLjUzNDkzMDEsNDIuNzYxMDg2MiA3MS42NTg4MzE5LDQyLjU1ODUgNzEuNzkwMDIyMSw0Mi4zNTY3MjQxIEM3MS44NzAxOTM5LDQyLjIzMjc0MTQgNzEuOTUzNjA0OSw0Mi4xMDg3NTg2IDcyLjAzNzgyNTgsNDEuOTg2Mzk2NiBDNzIuMTc1NDk0NSw0MS43ODYyNDE0IDcyLjMxODAyMjEsNDEuNTg2ODk2NiA3Mi40NjU0MDg2LDQxLjM4OTE3MjQgTDcyLjU2MTc3NjcsNDEuMjU3ODk2NiBDNzIuNjU0OTA1NSw0MS4xMzIyOTMxIDcyLjc0ODAzNDQsNDEuMDA1ODc5MyA3Mi44NDUyMTIzLDQwLjg4MjcwNjkgQzcyLjg4NDg5MzMsNDAuODMxNjU1MiA3Mi45MjcwMDM3LDQwLjc4MjIyNDEgNzIuOTY5MTE0MSw0MC43MzExNzI0IEw3My4wNTk4MTM1LDQwLjYyMzM5NjYgQzczLjIwOTYyOTQsNDAuNDQwMjU4NiA3My4zNTk0NDU0LDQwLjI1NzkzMSA3My41MzM1NTU4LDQwLjA1Nzc3NTkgQzczLjc2NTk3MywzOS43OTAzNjIxIDc0LjAxMDUzNzQsMzkuNTI0NTY5IDc0LjI2NDAwOTgsMzkuMjU5NTg2MiBDNzQuMzQ0MTgxNiwzOS4xNzUzMTAzIDc0LjQyNTE2MzIsMzkuMDkxMDM0NSA3NC41MDg1NzQyLDM5LjAwNjc1ODYgQzc0Ljc1NzE4NzcsMzguNzUxNSA3NS4wMTM4OTk0LDM4LjUwMDI5MzEgNzUuMjg1MTg3NywzOC4yNDM0MTM4IEw3NS4zNjEzMTA0LDM4LjE3MTI5MzEgQzc1LjQ1NjA1ODksMzguMDgxMzQ0OCA3NS41NTU2NjYzLDM3Ljk5MzgyNzYgNzUuNjU1MjczNiwzNy45MDM4NzkzIEw3NS44NzM5MjM5LDM3LjcwODU4NjIgQzc2LjAzODMxNjYsMzcuNTYxMTAzNCA3Ni4yMDE4OTk0LDM3LjQxNTI0MTQgNzYuMzcyNzcwNiwzNy4yNjkzNzkzIEM3Ni40NzM5OTc1LDM3LjE4NDI5MzEgNzYuNTc3NjU0LDM3LjA5ODM5NjYgNzYuNjgxMzEwNCwzNy4wMTMzMTAzIEw3Ni43ODkwMTYsMzYuOTIzMzYyMSBDNzcuMDIzODYyNiwzNi43MzEzMTAzIDc3LjI2MDMyODgsMzYuNTM5MjU4NiA3Ny41MDQwODM0LDM2LjM0ODgyNzYgQzc3LjY1NzEzODcsMzYuMjMwNTE3MiA3Ny44MTE4MTM1LDM2LjExMjIwNjkgNzcuOTY3Mjk4MiwzNS45OTQ3MDY5IEM3OC4yMTc1MzEzLDM1LjgwNTg5NjYgNzguNDc1MDUyOCwzNS42MTk1MTcyIDc4LjczNDE5MzksMzUuNDMzOTQ4MyBMNzguODA0NjQ3OSwzNS4zODQ1MTcyIEM3OC45MzkwNzczLDM1LjI4ODg5NjYgNzkuMDc0MzE2NiwzNS4xOTI0NjU1IDc5LjIxMDM2NTYsMzUuMDk3NjU1MiBDNzkuNTAxMDg5NiwzNC44OTgzMTAzIDc5Ljc5OTkxMTcsMzQuNzAwNTg2MiA4MC4xMDAzNTM0LDM0LjUwNTI5MzEgTDgwLjI3Njg5MzMsMzQuMzg4NjAzNCBDODAuMzcwMDIyMSwzNC4zMjc4Mjc2IDgwLjQ2MjM0MTEsMzQuMjY2MjQxNCA4MC41NjExMzg3LDM0LjIwNDY1NTIgTDgwLjgzNDg1NjQsMzQuMDM0NDgyOCBDODEuMTkzNjA0OSwzMy44MTE2Mzc5IDgxLjU1NTU5MjYsMzMuNTkwNDEzOCA4MS45MzA1Mzc0LDMzLjM3MTYyMDcgQzgyLjM0NzU5MjYsMzMuMTI5MzI3NiA4Mi43NzE5MzYyLDMyLjg5MzUxNzIgODMuMjAxMTM4NywzMi42NjA5NDgzIEM4My4yOTAyMTg0LDMyLjYxMzk0ODMgODMuMzc4NDg4MywzMi41NjY5NDgzIDgzLjQ2ODM3NzksMzIuNTIwNzU4NiBMODQuMjAyODgxLDMyLjEzOTA4NjIgQzg0LjMwMjQ4ODMsMzIuMDg3MjI0MSA4NC40MDI5MDU1LDMyLjAzNTM2MjEgODQuNTAxNzAzMSwzMS45ODUxMjA3IEw4NS4yOTM3MDMxLDMxLjYwMTAxNzIgQzg1LjQ3MjY3MjQsMzEuNTEzNSA4NS42NTI0NTE1LDMxLjQyNjc5MzEgODUuODM0NjYwMSwzMS4zNDI1MTcyIEM4Ni4wMTg0ODgzLDMxLjI1NjYyMDcgODYuMjA0NzQ2LDMxLjE3MzE1NTIgODYuMzkxMDAzNywzMS4wODg4NzkzIEM4Ni42NTc0MzMxLDMwLjk2ODk0ODMgODYuOTI1NDgyMiwzMC44NDkwMTcyIDg3LjE5NTE1MDksMzAuNzMzOTQ4MyBDODcuMzg1NDU3NywzMC42NTA0ODI4IDg3LjU3NjU3NDIsMzAuNTcwMjU4NiA4Ny43NzAxMjAyLDMwLjQ5MDAzNDUgQzg4LjAzOTc4OSwzMC4zNzczOTY2IDg4LjMxMTg4NzEsMzAuMjY2Mzc5MyA4OC41ODQ3OTUxLDMwLjE1Nzc5MzEgQzg4Ljc3NjcyMTUsMzAuMDgxNjIwNyA4OC45Njk0NTc3LDMwLjAwNDYzNzkgODkuMTYwNTc0MiwyOS45MzA4OTY2IEM4OS40MTA4MDc0LDI5LjgzNTI3NTkgODkuNjYxMDQwNSwyOS43NDIwODYyIDg5LjkxMjg5MzMsMjkuNjQ5NzA2OSBDODkuOTE1MzIyNywyOS42NDg4OTY2IDkwLjAwNDQwMjUsMjkuNjE1NjcyNCA5MC4wMDYwMjIxLDI5LjYxNDg2MjEgTDkwLjE0NDUwMDYsMjkuNTYzIEM5MC4yODYyMTg0LDI5LjUxMTk0ODMgOTAuNDI3MTI2NCwyOS40NTkyNzU5IDkwLjU3MTI3MzYsMjkuNDA5MDM0NSBDOTAuNjg1NDU3NywyOS4zNjc3MDY5IDkwLjgwMTI2MTMsMjkuMzI4ODEwMyA5MC45MTYyNTUyLDI5LjI4OTkxMzggTDkxLjAyODgxOTYsMjkuMjUxODI3NiBDOTEuMTc5NDQ1NCwyOS4xOTkxNTUyIDkxLjMzMDg4MSwyOS4xNDcyOTMxIDkxLjQ4MzkzNjIsMjkuMDk1NDMxIEw5Mi40NTI0NzYxLDI4Ljc4MDIwNjkgQzkyLjg4OTc3NjcsMjguNjQyNDQ4MyA5My4zMjcwNzczLDI4LjUwNzkzMSA5My43NjY4MDc0LDI4LjM3OTg5NjYgQzkzLjk2NjAyMjEsMjguMzIyMzYyMSA5NC4xNjYwNDY2LDI4LjI2NjQ0ODMgOTQuMzY3NjkwOCwyOC4yMDk3MjQxIEM5NC43NzA5NzkxLDI4LjA5Nzg5NjYgOTUuMTc1ODg3MSwyNy45ODg1IDk1LjU4MzIyNDUsMjcuODgzOTY1NSBMOTUuNzIyNTEyOSwyNy44NDkxMjA3IEM5NS44Njk4OTk0LDI3LjgxMDIyNDEgOTYuMDE2NDc2MSwyNy43NzIxMzc5IDk2LjE2Mzg2MjYsMjcuNzM1NjcyNCBDOTYuNjUyMTgxNiwyNy42MTY1NTE3IDk3LjE0MTMxMDQsMjcuNTAyMjkzMSA5Ny42MzY5MTc4LDI3LjM5MzcwNjkgTDk3Ljk0MDU5ODgsMjcuMzI0ODI3NiBDOTguNTMwOTU0NiwyNy4xOTc2MDM0IDk5LjEyMjkzMDEsMjcuMDgxNzI0MSA5OS43MTQwOTU3LDI2Ljk3MzEzNzkgTDEwMC4xMDc2NjYsMjYuOTA1ODc5MyBDMTAwLjcwMTI2MSwyNi44MDA1MzQ1IDEwMS4yOTQwNDcsMjYuNzA1NzI0MSAxMDEuODg3NjQyLDI2LjYxODIwNjkgTDEwMi4zNTI0NzYsMjYuNTUwOTQ4MyBDMTAzLjAzMjcyMSwyNi40NTY5NDgzIDEwMy43MTk0NDUsMjYuMzc1MTAzNCAxMDQuMzkyNDAyLDI2LjMwNjIyNDEgTDEwNC45MjQ0NTIsMjYuMjU2NzkzMSBDMTA1LjMxMzE2MywyNi4yMjAzMjc2IDEwNS43MDEwNjUsMjYuMTg3MTAzNCAxMDYuMDg5Nzc3LDI2LjE1OTU1MTcgQzEwNi4yOTc4OTksMjYuMTQ0MTU1MiAxMDYuNTA1MjEyLDI2LjEzMTE4OTcgMTA2LjcxODE5NCwyNi4xMTgyMjQxIEMxMDYuOTY1OTk4LDI2LjEwMzYzNzkgMTA3LjIxMjE4MiwyNi4wOTIyOTMxIDEwNy40NTkxNzUsMjYuMDgwOTQ4MyBMMTA3LjUxOTkxMiw0NS4yODQ1IEw4OS42Mjc4MzgsNTUuNjIxMjU4NiBMODYuMzQyNDE0Nyw0Ny43MTMxMDM0IEM4Ni4wMjkwMTYsNDYuOTU3MDUxNyA4NS41MDE4MjU4LDQ2LjQzNTE4OTcgODQuODE3NTMxMyw0Ni4yMDI2MjA3IEM4NC4wMDIwNDY2LDQ1LjkyNTQ4MjggODMuMDEwODMxOSw0Ni4wODgzNjIxIDgyLjAyMjg1NjQsNDYuNjU5NjU1MiBDODAuMzgyMTY5Myw0Ny42MDc3NTg2IDc5LjAwNTQ4MjIsNDkuNDg0NTE3MiA3OC40MzA1MTI5LDUxLjU1OSBMNzYuMjQ0MDA5OCw1OS40NTkwNTE3IEw3Ni4yNDQwMDk4LDU3LjQ1OTkzMSBaIE01OC4wMzEyNDkxLDExLjkwMTUzNDUgTDMuMjI1MzM0OTcsNDMuNjE4NDMxIEwzLjIyNTMzNDk3LDM3Ljc5NTI5MzEgQzMuMjI1MzM0OTcsMzUuMDY3NjcyNCA0LjY5MTEwMTg0LDMyLjUyNTYyMDcgNy4wNTA5MDU1MiwzMS4xNjAxODk3IEw1NC4zMDQ0NzYxLDMuODE0MjkzMSBDNTUuMDgyNzA5MiwzLjM2MjkzMTAzIDU2LjAxMDc1ODMsMy4zNjIxMjA2OSA1Ni43ODgxODE2LDMuODEyNjcyNDEgQzU3LjU2NjQxNDcsNC4yNjE2MDM0NSA1OC4wMzEyNDkxLDUuMDY2Mjc1ODYgNTguMDMxMjQ5MSw1Ljk2NDk0ODI4IEw1OC4wMzEyNDkxLDExLjkwMTUzNDUgWiBNMTI3LjIwOTc3NywyNS40Mzk5NjU1IEMxMjcuMTQ5ODUsMjUuNDA2NzQxNCAxMjcuMDg5OTI0LDI1LjM3NDMyNzYgMTI3LjAyOTk5OCwyNS4zNDI3MjQxIEMxMjYuOTUzMDY1LDI1LjMwMjIwNjkgMTI2Ljg4MDE4MiwyNS4yNjA4NzkzIDEyNi44MDMyNDksMjUuMjIwMzYyMSBDMTI2LjgwMjQzOSwyNS4yMTk1NTE3IDEyNi44MDE2MjksMjUuMjE5NTUxNyAxMjYuODAxNjI5LDI1LjIxOTU1MTcgQzEyNi42NDEyODYsMjUuMTM1Mjc1OSAxMjYuNDc5MzIzLDI1LjA1NDI0MTQgMTI2LjMxNTc0LDI0Ljk3MzIwNjkgQzEyNi4yOTcxMTQsMjQuOTY0MjkzMSAxMjYuMjc5Mjk4LDI0Ljk1NTM3OTMgMTI2LjI2MTQ4MiwyNC45NDU2NTUyIEMxMjYuMTU3ODI2LDI0Ljg5NTQxMzggMTI2LjA1MDkzLDI0Ljg0NTk4MjggMTI1LjkwNjc4MywyNC43Nzg3MjQxIEMxMjUuOTAzNTQ0LDI0Ljc3NjI5MzEgMTI1Ljg2NDY3MiwyNC43NTg0NjU1IDEyNS44NjA2MjMsMjQuNzU2MDM0NSBDMTI1Ljg0MzYxNywyNC43NDc5MzEgMTI1LjgyNDk5MSwyNC43NDE0NDgzIDEyNS44MDc5ODUsMjQuNzMyNTM0NSBDMTI1LjQ5Mjk2NywyNC41ODgyOTMxIDEyNS4xNzE0NywyNC40NDgxMDM0IDEyNC44NDUxMTQsMjQuMzEzNTg2MiBDMTI0Ljc5MjQ3NiwyNC4yOTA4OTY2IDEyNC43NDIyNjcsMjQuMjY2NTg2MiAxMjQuNjg4ODIsMjQuMjQ1NTE3MiBMMTI0LjU2MDg2OSwyNC4xOTEyMjQxIEMxMjQuNDg3OTg1LDI0LjE2MTI0MTQgMTI0LjQxNTEwMiwyNC4xMzEyNTg2IDEyNC4zNDA1OTksMjQuMTAyMDg2MiBDMTI0LjMxOTU0NCwyNC4wOTMxNzI0IDEyNC4yOTYwNTksMjQuMDg1ODc5MyAxMjQuMjc0MTk0LDI0LjA3Nzc3NTkgQzEyNC4yNTIzMjksMjQuMDY4ODYyMSAxMjQuMjI4MDM0LDI0LjA2MDc1ODYgMTI0LjIwNjE2OSwyNC4wNTE4NDQ4IEMxMjMuOTUzNTA3LDIzLjk1NjIyNDEgMTIzLjY5NzYwNSwyMy44NjMwMzQ1IDEyMy40MzkyNzQsMjMuNzcxNDY1NSBMMTIzLjI4NzgzOCwyMy43MTYzNjIxIEMxMjMuMjA1MjM3LDIzLjY4NjM3OTMgMTIzLjEyMTgyNiwyMy42NTYzOTY2IDEyMy4wMzc2MDUsMjMuNjI4MDM0NSBDMTIyLjU5NTQ0NSwyMy40Nzg5MzEgMTIyLjE0NTk5OCwyMy4zMzk1NTE3IDEyMS42ODY4MzIsMjMuMjA3NDY1NSBDMTIxLjI2ODE1NywyMy4wODgzNDQ4IDEyMC44NDMwMDQsMjIuOTc2NTE3MiAxMjAuNDEwNTYyLDIyLjg3MDM2MjEgQzEyMC4zMzM2MjksMjIuODUxNzI0MSAxMjAuMjU1MDc3LDIyLjgzNDcwNjkgMTIwLjE3NzMzNSwyMi44MTY4NzkzIEwxMjAuMDQxMjg2LDIyLjc4Njg5NjYgQzExOS43Mjg2OTcsMjIuNzEzOTY1NSAxMTkuNDE0NDg4LDIyLjY0MTg0NDggMTE5LjA5NDYxMSwyMi41NzYyMDY5IEwxMTguNjY3ODM4LDIyLjQ5NTk4MjggQzExOC4zNzIyNTUsMjIuNDM4NDQ4MyAxMTguMDc2NjcyLDIyLjM4MTcyNDEgMTE3Ljc3NzA0LDIyLjMzMTQ4MjggQzExNy42NTQ3NTgsMjIuMzExMjI0MSAxMTcuNTMxNjY2LDIyLjI5MjU4NjIgMTE3LjQwODU3NCwyMi4yNzMxMzc5IEwxMTcuMjU3MTM5LDIyLjI0OTYzNzkgQzExNi45ODE4MDEsMjIuMjA2Njg5NyAxMTYuNzA3Mjc0LDIyLjE2NDU1MTcgMTE2LjQzMDMxNywyMi4xMjcyNzU5IEMxMTYuMjY1MTE0LDIyLjEwNTM5NjYgMTE2LjA5OTEwMiwyMi4wODUxMzc5IDExNS45MzMwOSwyMi4wNjQwNjkgTDExNS44NjQyNTUsMjIuMDU1OTY1NSBDMTE1LjYwOTE2MywyMi4wMjUxNzI0IDExNS4zNTI0NTIsMjEuOTk1MTg5NyAxMTUuMTEwMzE3LDIxLjk3MDg3OTMgQzExNS4xMDQ2NDgsMjEuOTcwMDY5IDExNS4wNTI4MiwyMS45NjM1ODYyIDExNS4wNDc5NjEsMjEuOTYzNTg2MiBDMTE0Ljg1NTIyNSwyMS45NDQxMzc5IDExNC42NjAwNTksMjEuOTI0Njg5NyAxMTQuNDYzMjc0LDIxLjkwNjg2MjEgQzExNC4xOTY4NDQsMjEuODgzMzYyMSAxMTMuOTI4Nzk1LDIxLjg2MjI5MzEgMTEzLjY1OTEyNiwyMS44NDI4NDQ4IEMxMTMuNDQyMDk2LDIxLjgyNjYzNzkgMTEzLjIyNTA2NSwyMS44MTEyNDE0IDExMy4wMTQ1MTMsMjEuNzk5MDg2MiBMMTEyLjkyMDU3NCwyMS43OTQyMjQxIEMxMTIuNjgxNjc5LDIxLjc4MDQ0ODMgMTEyLjQ0MTE2MywyMS43NjgyOTMxIDExMi4xOTk4MzgsMjEuNzU3NzU4NiBDMTExLjk4MzYxNywyMS43NDg4NDQ4IDExMS43NjY1ODcsMjEuNzM5OTMxIDExMS41NDc5MzYsMjEuNzMzNDQ4MyBDMTExLjMyMzYxNywyMS43MjYxNTUyIDExMS4wOTg0ODgsMjEuNzIyOTEzOCAxMTAuODcyNTUsMjEuNzIwNDgyOCBMMTEwLjc4ODMyOSwyMS43MTg4NjIxIEMxMTAuMjc0MDk2LDIxLjcxMDc1ODYgMTA5Ljc2MTQ4MiwyMS43MDk5NDgzIDEwOS4yMzgzNDEsMjEuNzE3MjQxNCBDMTA4Ljk2ODY3MiwyMS43MjEyOTMxIDEwOC42OTk4MTMsMjEuNzI0NTM0NSAxMDguNDI4NTI1LDIxLjczMzQ0ODMgQzEwOC4yNTQ0MTUsMjEuNzM4MzEwMyAxMDguMDc5NDk0LDIxLjc0NTYwMzQgMTA3LjkwNDU3NCwyMS43NTI4OTY2IEwxMDcuNzU3MTg4LDIxLjc1Nzc1ODYgQzEwNy4zODIyNDMsMjEuNzczOTY1NSAxMDcuMDA1Njc5LDIxLjc5MjYwMzQgMTA2LjYyMDIwNiwyMS44MTY5MTM4IEMxMDYuNDA3MjI1LDIxLjgyOTA2OSAxMDYuMTk1MDUzLDIxLjg0Mjg0NDggMTA1Ljk4MjA3MSwyMS44NTc0MzEgQzEwNS41ODQ0NTIsMjEuODg2NjAzNCAxMDUuMTg2MDIyLDIxLjkyMTQ0ODMgMTA0Ljc4NTE2MywyMS45NTc5MTM4IEwxMDQuMjQwOTY3LDIyLjAwODE1NTIgQzEwMy41NjM5NjEsMjIuMDc3MDM0NSAxMDIuODYwMjMxLDIyLjE2MTMxMDMgMTAyLjE1MDAyMiwyMi4yNjAxNzI0IEwxMDEuNjczMDQsMjIuMzI5MDUxNyBDMTAxLjA2NDg2OSwyMi40MTczNzkzIDEwMC40NTc1MDcsMjIuNTE1NDMxIDk5Ljg0NjA5NTcsMjIuNjIzMjA2OSBMOTkuNDQ2MDQ2NiwyMi42OTIwODYyIEM5OC44Mzk0OTQ1LDIyLjgwMzEwMzQgOTguMjMzNzUyMSwyMi45MjIyMjQxIDk3LjYyMzE1MDksMjMuMDUzNSBMOTcuMzEyMTgxNiwyMy4xMjQgQzk2LjgxMDA5NTcsMjMuMjM1MDE3MiA5Ni4zMDgwMDk4LDIzLjM1MDA4NjIgOTUuODA4MzUzNCwyMy40NzQ4NzkzIEM5NS42MzkxMDE4LDIzLjUxNTM5NjYgOTUuNDcwNjYwMSwyMy41NTkxNTUyIDk1LjMwMjIxODQsMjMuNjAyOTEzOCBMOTUuMjEyMzI4OCwyMy42MjU2MDM0IEM5NC43OTYwODM0LDIzLjczMjU2OSA5NC4zODA2NDc5LDIzLjg0NDM5NjYgOTMuOTY2MDIyMSwyMy45NTk0NjU1IEM5My43NjExMzg3LDI0LjAxNyA5My41NTYyNTUyLDI0LjA3NDUzNDUgOTMuMzUwNTYyLDI0LjEzMzY4OTcgQzkyLjkwMDMwNDMsMjQuMjY0OTY1NSA5Mi40NTE2NjYzLDI0LjQwMjcyNDEgOTIuMDAzODM4LDI0LjU0NDUzNDUgTDkxLjgxNzU4MDQsMjQuNjAyMDY5IEM5MS43MjIwMjIxLDI0LjYzMTI0MTQgOTEuNjI3MjczNiwyNC42NjA0MTM4IDkxLjUzMzMzNSwyNC42OTEyMDY5IEM5MS40MTUxMDE4LDI0LjcyOTI5MzEgOTEuMjk2ODY4NywyNC43Njk4MTAzIDkxLjE3ODYzNTYsMjQuODEwMzI3NiBMOTAuMDc0MDQ2NiwyNS4xODg3NTg2IEM4OS45MjUwNDA1LDI1LjI0MTQzMSA4OS43Nzc2NTQsMjUuMjk1NzI0MSA4OS42MzAyNjc1LDI1LjM1MDAxNzIgTDg5LjM5Nzg1MDMsMjUuNDM1OTEzOCBDODkuMTQwMzI4OCwyNS41MzE1MzQ1IDg4Ljg4MjgwNzQsMjUuNjI2MzQ0OCA4OC42MjYwOTU3LDI1LjcyNTIwNjkgQzg4LjQyNjg4MSwyNS44MDIxODk3IDg4LjIzMDA5NTcsMjUuODc5MTcyNCA4OC4wMzQxMjAyLDI1Ljk1ODU4NjIgQzg3Ljc1MzExNDEsMjYuMDcwNDEzOCA4Ny40NzM3Mjc2LDI2LjE4MzA1MTcgODcuMTk1OTYwNywyNi4yOTk3NDE0IEM4Ny4xMDkzMTA0LDI2LjMzNjIwNjkgODcuMDIyNjYwMSwyNi4zNzI2NzI0IDg2LjkzNjAwOTgsMjYuNDA5OTQ4MyBDODYuODk4NzU4MywyNi40MjUzNDQ4IDg2Ljg2MDY5NjksMjYuNDQxNTUxNyA4Ni44MjI2MzU2LDI2LjQ1Njk0ODMgQzg2Ljc1MDU2MiwyNi40ODc3NDE0IDg2LjY3NzY3ODUsMjYuNTE3NzI0MSA4Ni42MDU2MDQ5LDI2LjU0OTMyNzYgQzg2LjMyNzgzOCwyNi42NjkyNTg2IDg2LjA1MjUwMDYsMjYuNzkxNjIwNyA4NS43Nzg3ODI4LDI2LjkxNTYwMzQgQzg1LjcxMDc1ODMsMjYuOTQ2Mzk2NiA4NS42NDM1NDM2LDI2Ljk3NzE4OTcgODUuNTc1NTE5LDI3LjAwNzE3MjQgQzg1LjQ4NjQzOTMsMjcuMDQ4NSA4NS4zOTY1NDk3LDI3LjA4OTAxNzIgODUuMzA3NDY5OSwyNy4xMjk1MzQ1IEM4NS4yNzM0NTc3LDI3LjE0NTc0MTQgODUuMjM5NDQ1NCwyNy4xNTk1MTcyIDg1LjIwNjI0MjksMjcuMTc1NzI0MSBDODUuMDQxMDQwNSwyNy4yNTI3MDY5IDg0Ljg3ODI2NzUsMjcuMzMxMzEwMyA4NC43MTU0OTQ1LDI3LjQwOTkxMzggTDg0LjIwNzczOTksMjcuNjU0NjM3OSBDODQuMTk1NTkyNiwyNy42NjExMjA3IDg0LjE4MzQ0NTQsMjcuNjY2NzkzMSA4NC4xNzEyOTgyLDI3LjY3MjQ2NTUgQzg0LjA3MDg4MSwyNy43MjE4OTY2IDgzLjk3MDQ2MzgsMjcuNzY5NzA2OSA4My44NzA4NTY0LDI3LjgxOTk0ODMgQzgzLjg1ODcwOTIsMjcuODI2NDMxIDgzLjg0NjU2MiwyNy44MzIxMDM0IDgzLjgzNDQxNDcsMjcuODM3Nzc1OSBDODMuNzI1ODk5NCwyNy44OTI4NzkzIDgzLjYxOTgxMzUsMjcuOTQ3OTgyOCA4My41MTI5MTc4LDI4LjAwMzg5NjYgTDgzLjE1NDk3OTEsMjguMTkwMjc1OSBDODIuOTM2MzI4OCwyOC4zMDQ1MzQ1IDgyLjcxNTI0OTEsMjguNDE1NTUxNyA4Mi40OTkwMjgyLDI4LjUzMjI0MTQgTDgyLjQ5MzM1OTUsMjguNTM1NDgyOCBDODIuMDUxMiwyOC43NzQ1MzQ1IDgxLjYxMzA4OTYsMjkuMDE3NjM3OSA4MS4xODIyNjc1LDI5LjI2ODg0NDggQzgwLjc5NTE3NTUsMjkuNDkzMzEwMyA4MC40MjAyMzA3LDI5LjcyMzQ0ODMgODAuMDUwOTU0NiwyOS45NTI3NzU5IEw3OS43NjI2NjAxLDMwLjEzMTA1MTcgQzc5Ljc1NjE4MTYsMzAuMTM1MTAzNCA3OS43NTA1MTI5LDMwLjEzOTE1NTIgNzkuNzQ0ODQ0MiwzMC4xNDIzOTY2IEM3OS42MDE1MDY3LDMwLjIzMjM0NDggNzkuNDY1NDU3NywzMC4zMjU1MzQ1IDc5LjMyNDU0OTcsMzAuNDE3MTAzNCBMNzkuMjg4MTA4LDMwLjQ0MDYwMzQgQzc5LjIyNzM3MTgsMzAuNDgwMzEwMyA3OS4xNjk4NzQ4LDMwLjUyMDAxNzIgNzkuMTA5OTQ4NSwzMC41NTk3MjQxIEM3Mi4zODkyODU5LDM0Ljk3NzcyNDEgNjguNDQyMjQyOSw0MC4zMjM1NjkgNjguMDcyMTU3MSw0NS41NTY3NzU5IEw2OC4wNTExMDE4LDQ1Ljg0NzY4OTcgQzY4LjA0Nzg2MjYsNDUuOTA5Mjc1OSA2OC4wNTExMDE4LDQ1Ljk3MDg2MjEgNjguMDQ4NjcyNCw0Ni4wMzMyNTg2IEM2OC4wNDU0MzMxLDQ2LjE0ODMyNzYgNjguMDMyNDc2MSw0Ni4yNjQyMDY5IDY4LjAzMjQ3NjEsNDYuMzc4NDY1NSBDNjguMDM4MTQ0OCw1MC4wMjUwMTcyIDY5Ljc5OTQ5NDUsNTMuMjI3NSA3My4xNDU2NTQsNTUuNzUwOTEzOCBDNzMuMTU1MzcxOCw1NS43NTgyMDY5IDczLjE2NTg5OTQsNTUuNzY2MzEwMyA3My4xNzY0MjcsNTUuNzczNjAzNCBDNzMuMzYxODc0OCw1NS45MTI5ODI4IDczLjU1MDU2Miw1Ni4wNDk5MzEgNzMuNzQ1NzI3Niw1Ni4xODUyNTg2IEM3My43ODM3ODksNTYuMjExMTg5NyA3My44MjE4NTAzLDU2LjIzNzkzMSA3My44NTk5MTE3LDU2LjI2Mzg2MjEgQzczLjg3NDQ4ODMsNTYuMjczNTg2MiA3My44ODY2MzU2LDU2LjI4MzMxMDMgNzMuOTAwNDAyNSw1Ni4yOTMwMzQ1IEw3My4xODkzODQsNTYuNzAzMDY5IEwzOC41NjQ4OTMzLDM2LjY5OTcwNjkgTDY4LjIyODQ1MTUsMTkuNTMzMzYyMSBDNjguMjMyNTAwNiwxOS41MzA5MzEgNjguMjM3MzU5NSwxOS41Mjc2ODk3IDY4LjI0MTQwODYsMTkuNTI2MDY5IEw5My4zNzY0NzYxLDQuOTc5NTY4OTcgTDEyOC4wMDAxNTcsMjQuOTgzNzQxNCBMMTI3LjIwOTc3NywyNS40Mzk5NjU1IFogTTEyOC4wMDUwMTYsMjkuMjMzMTg5NyBDMTI4LjAxMzkyNCwyOS4xNzI0MTM4IDEyOC4wMTIzMDQsMjkuMTEwODI3NiAxMjguMDA1MDE2LDI5LjA0OTI0MTQgTDEyOC4wMTE0OTQsMjYuNjk3NjIwNyBMMTI4Ljc0NDM3OCwyNi4yNzQ2MjA3IEwxMjguNzQ0Mzc4LDU3Ljc0MTkzMSBMMTI3LjkyOTcwMyw1OC4yMTM1NTE3IEwxMjguMDA1MDE2LDI5LjIzMzE4OTcgWiBNMTA4LjI2NjU2Miw0Ni41NzM3NTg2IEwxMTkuNDkyMjMxLDUzLjA1OTc1ODYgQzExOS4zMzE4ODcsNTMuMDIzMjkzMSAxMTkuMTczMTYzLDUyLjk4NjAxNzIgMTE5LjAxMDM5LDUyLjk1Mjc5MzEgQzExOC45MTQwMjIsNTIuOTMyNTM0NSAxMTguODE2MDM0LDUyLjkxNDcwNjkgMTE4LjcxODA0Nyw1Mi44OTYwNjkgTDExOC41ODExODgsNTIuODcwOTQ4MyBDMTE4LjI4NjQxNSw1Mi44MTQyMjQxIDExNy45OTI0NTIsNTIuNzU4MzEwMyAxMTcuNjkyMDEsNTIuNzA3MjU4NiBDMTE3LjU2ODEwOCw1Mi42ODYxODk3IDExNy40NDI1ODcsNTIuNjY3NTUxNyAxMTcuMzE3ODc1LDUyLjY0ODEwMzQgTDExNy4xNjk2NzksNTIuNjI0NjAzNCBDMTE2Ljg5NTk2MSw1Mi41ODI0NjU1IDExNi42MjE0MzMsNTIuNTQxMTM3OSAxMTYuMzQyODU2LDUyLjUwMzA1MTcgQzExNi4xNTQ5NzksNTIuNDc4NzQxNCAxMTUuOTY2MjkyLDUyLjQ1NDQzMSAxMTUuNzc1OTg1LDUyLjQzMTc0MTQgQzExNS41MDU1MDcsNTIuMzk5MzI3NiAxMTUuMjM1MDI4LDUyLjM2NzcyNDEgMTE0Ljk2MDUwMSw1Mi4zMzkzNjIxIEMxMTQuNzY3NzY0LDUyLjMxOTEwMzQgMTE0LjU3MjU5OSw1Mi4zMDEyNzU5IDExNC4zNzgyNDMsNTIuMjgyNjM3OSBDMTE0LjExMTgxMyw1Mi4yNTkxMzc5IDExMy44NDIxNDUsNTIuMjM4MDY5IDExMy41NzI0NzYsNTIuMjE3ODEwMyBDMTEzLjM1NjI1NSw1Mi4yMDI0MTM4IDExMy4xMzkyMjUsNTIuMTg3MDE3MiAxMTIuOTIyMTk0LDUyLjE3NDg2MjEgQzExMi42NTQxNDUsNTIuMTU4NjU1MiAxMTIuMzg0NDc2LDUyLjE0NTY4OTcgMTEyLjExNTYxNyw1Mi4xMzQzNDQ4IEMxMTEuODk4NTg3LDUyLjEyNDYyMDcgMTExLjY4MDc0Niw1Mi4xMTU3MDY5IDExMS40NjA0NzYsNTIuMTA5MjI0MSBDMTExLjIzNjE1Nyw1Mi4xMDE5MzEgMTExLjAxMTAyOCw1Mi4wOTg2ODk3IDExMC43ODY3MDksNTIuMDk1NDQ4MyBMMTEwLjcwMjQ4OCw1Mi4wOTM4Mjc2IEMxMTAuMTg2NjM2LDUyLjA4NjUzNDUgMTA5LjY2ODM1Myw1Mi4wODU3MjQxIDEwOS4xNTI1MDEsNTIuMDkzMDE3MiBDMTA4Ljg4MjgzMiw1Mi4wOTcwNjkgMTA4LjYxMzE2Myw1Mi4xMDExMjA3IDEwOC4zNDI2ODUsNTIuMTA5MjI0MSBDMTA4LjExOTk4NSw1Mi4xMTU3MDY5IDEwNy44OTY0NzYsNTIuMTI0NjIwNyAxMDcuNjczNzc3LDUyLjEzNDM0NDggQzEwNy4yOTcyMTIsNTIuMTQ4OTMxIDEwNi45MTk4MzgsNTIuMTY4Mzc5MyAxMDYuNTQxNjU0LDUyLjE5MTg3OTMgQzEwNi4zMjcwNTMsNTIuMjA0ODQ0OCAxMDYuMTEyNDUyLDUyLjIxNzgxMDMgMTA1Ljg5Nzg1LDUyLjIzNDAxNzIgQzEwNS40OTg2MTEsNTIuMjYyMzc5MyAxMDUuMDk4NTYyLDUyLjI5NjQxMzggMTA0LjY5OTMyMyw1Mi4zMzM2ODk3IEwxMDQuNTIzNTkzLDUyLjM0OTA4NjIgQzEwNC40MDA1MDEsNTIuMzYwNDMxIDEwNC4yNzc0MDksNTIuMzcxNzc1OSAxMDQuMTUzNTA3LDUyLjM4MzkzMSBDMTAzLjQ3ODkzLDUyLjQ1MjgxMDMgMTAyLjc3NTIsNTIuNTM3ODk2NiAxMDIuMDYwMTMzLDUyLjYzNTk0ODMgTDEwMS41ODk2MjksNTIuNzA0ODI3NiBDMTAwLjk4MDY0OCw1Mi43OTMxNTUyIDEwMC4zNzE2NjYsNTIuODkwMzk2NiA5OS43NjI2ODQ3LDUyLjk5ODE3MjQgTDk5LjM1OTM5NjMsNTMuMDY3ODYyMSBDOTguNzUzNjU0LDUzLjE3OTY4OTcgOTguMTQ3MTAxOCw1My4yOTggOTcuNTQxMzU5NSw1My40Mjc2NTUyIEw5Ny4yMjcxNTA5LDUzLjQ5OTc3NTkgQzk2LjcyMzQ0NTQsNTMuNjA5OTgyOCA5Ni4yMjIxNjkzLDUzLjcyNjY3MjQgOTUuNzIwODkzMyw1My44NTA2NTUyIEM5NS42OTE3Mzk5LDUzLjg1NzEzNzkgOTUuNjYyNTg2NSw1My44NjUyNDE0IDk1LjYzNDI0MjksNTMuODcxNzI0MSBMMTA4LjI2NjU2Miw0Ni41NzM3NTg2IFogTTEwOS4wMDkxNjMsNDUuMjgyODc5MyBMMTA4Ljk0ODQyNywyNi4wMjkwODYyIEMxMDkuMDUyODkzLDI2LjAyNjY1NTIgMTA5LjE1NjU1LDI2LjAyNDIyNDEgMTA5LjI2MDIwNiwyNi4wMjI2MDM0IEMxMDkuNzY1NTMxLDI2LjAxNTMxMDMgMTEwLjI2NTk5OCwyNi4wMTUzMTAzIDExMC43NjY0NjQsMjYuMDIzNDEzOCBMMTEwLjg0OTg3NSwyNi4wMjQyMjQxIEMxMTEuMDY4NTI1LDI2LjAyODI3NTkgMTExLjI4NzE3NSwyNi4wMzE1MTcyIDExMS41MDI1ODcsMjYuMDM4IEMxMTEuNzE0NzU4LDI2LjA0MzY3MjQgMTExLjkyNTMxLDI2LjA1MzM5NjYgMTEyLjEzNzQ4MiwyNi4wNjMxMjA3IEMxMTIuMzcxNTE5LDI2LjA3MjAzNDUgMTEyLjYwMzEyNiwyNi4wODMzNzkzIDExMi44Mzk1OTMsMjYuMDk3MTU1MiBDMTEyLjg0MTIxMiwyNi4wOTcxNTUyIDExMi45MTgxNDUsMjYuMTAxMjA2OSAxMTIuOTE5NzY0LDI2LjEwMTIwNjkgQzExMy4xMzExMjYsMjYuMTEzMzYyMSAxMTMuMzQwODY5LDI2LjEyNzk0ODMgMTEzLjU1MDYxMSwyNi4xNDQxNTUyIEMxMTMuODExMzcyLDI2LjE2Mjc5MzEgMTE0LjA3MTMyMywyNi4xODMwNTE3IDExNC4zMzA0NjQsMjYuMjA3MzYyMSBDMTE0LjUxOTE1MSwyNi4yMjM1NjkgMTE0LjcwNjIxOCwyNi4yNDEzOTY2IDExNC45NDEwNjUsMjYuMjY2NTE3MiBDMTE1LjE5MDQ4OCwyNi4yOTI0NDgzIDExNS40Mzc0ODIsMjYuMzIgMTE1LjY4Mjg1NiwyNi4zNDk5ODI4IEMxMTUuODY2Njg1LDI2LjM3MjY3MjQgMTE2LjA0ODg5MywyNi4zOTUzNjIxIDExNi4yMjk0ODIsMjYuNDE4ODYyMSBDMTE2LjQ5NzUzMSwyNi40NTUzMjc2IDExNi43NjMxNTEsMjYuNDk1ODQ0OCAxMTcuMDI5NTgsMjYuNTM3OTgyOCBMMTE3LjE0NTM4NCwyNi41NTU4MTAzIEMxMTcuMjczMzM1LDI2LjU3NTI1ODYgMTE3LjQwMjA5NiwyNi41OTQ3MDY5IDExNy41MzAwNDcsMjYuNjE2NTg2MiBDMTE3LjgxNzUzMSwyNi42NjUyMDY5IDExOC4xMDE3NzcsMjYuNzE4Njg5NyAxMTguMzg1MjEyLDI2Ljc3Mzc5MzEgTDExOC43OTc0MDksMjYuODUyMzk2NiBDMTE5LjEwMjcwOSwyNi45MTQ3OTMxIDExOS40MDMxNTEsMjYuOTgzNjcyNCAxMTkuNzAyNzgzLDI3LjA1NDE3MjQgTDEyMC4wNTgyOTIsMjcuMTMzNTg2MiBDMTIwLjQ3MTI5OCwyNy4yMzQwNjkgMTIwLjg3NzgyNiwyNy4zNDE4NDQ4IDEyMS4yNzc4NzUsMjcuNDU2MTAzNCBDMTIxLjcxNDM2NiwyNy41ODA4OTY2IDEyMi4xNDM1NjgsMjcuNzE0NjAzNCAxMjIuNTY0NjcyLDI3Ljg1NjQxMzggQzEyMi42MzUxMjYsMjcuODc5OTEzOCAxMjIuNzA1NTgsMjcuOTA1MDM0NSAxMjIuNzc1MjI1LDI3LjkzMTc3NTkgTDEyMi45NDUyODYsMjcuOTkyNTUxNyBDMTIzLjIzMjc3MSwyOC4wOTQ2NTUyIDEyMy41MjAyNTUsMjguMTk2NzU4NiAxMjMuNzk5NjQyLDI4LjMwNTM0NDggQzEyMy44NjExODgsMjguMzI5NjU1MiAxMjMuOTIwMzA0LDI4LjM1Mzk2NTUgMTIzLjk4MDIzMSwyOC4zNzkwODYyIEwxMjQuMTI3NjE3LDI4LjQ0MDY3MjQgQzEyNC41MDMzNzIsMjguNTkzODI3NiAxMjQuODcxODM4LDI4Ljc1NDI3NTkgMTI1LjIzMzAxNiwyOC45MjM2Mzc5IEwxMjUuNjA2MzQxLDI5LjA5OTQ4MjggQzEyNS43Nzk2NDIsMjkuMTg0NTY5IDEyNS45NTA1MTMsMjkuMjcyMDg2MiAxMjYuMTE3MzM1LDI5LjM1NzE3MjQgQzEyNi4yNTE3NjQsMjkuNDI3NjcyNCAxMjYuMzgyMTQ1LDI5LjUwMTQxMzggMTI2LjUxNDE0NSwyOS41NzI3MjQxIEwxMjYuNDQ3NzQsNTUuMzU3MDg2MiBMMTA5LjAwOTE2Myw0NS4yODI4NzkzIFogTTc5LjEwOTEzODcsMzIuMzU0NjM3OSBDNzkuMTM3NDgyMiwzMi4zMzUxODk3IDc5LjE2NDIwNjEsMzIuMzE1NzQxNCA3OS4xOTE3Mzk5LDMyLjI5NjI5MzEgQzc5LjU4NzczOTksMzIuMDIxNTg2MiA3OS45OTUwNzczLDMxLjc1MjU1MTcgODAuNDEyMTMyNSwzMS40ODU5NDgzIEM4MC40NTUwNTI4LDMxLjQ1NzU4NjIgODAuNDk4NzgyOCwzMS40MjkyMjQxIDgwLjU0MjUxMjksMzEuNDAxNjcyNCBDODAuOTkzNTgwNCwzMS4xMTQ4MTAzIDgxLjQ1NTk4NTMsMzAuODM0NDMxIDgxLjkzMDUzNzQsMzAuNTU4MTAzNCBDODIuMzUwMDIyMSwzMC4zMTMzNzkzIDgyLjc3Njc5NTEsMzAuMDc1OTQ4MyA4My4yMDY4MDc0LDI5Ljg0MzM3OTMgTDg0LjAxODI0MjksMjkuNDIwMzc5MyBDODQuMTcwNDg4MywyOS4zNDI1ODYyIDg0LjMyMTExNDEsMjkuMjYxNTUxNyA4NC40NzQxNjkzLDI5LjE4NDU2OSBMODQuNTAxNzAzMSwyOS4xNzA3OTMxIEw4NS4zMDUwNDA1LDI4Ljc4MDIwNjkgQzg1LjQ4NDgxOTYsMjguNjk0MzEwMyA4NS42NjI5NzkxLDI4LjYwNjc5MzEgODUuODQ0Mzc3OSwyOC41MjI1MTcyIEM4Ni4wMjQ5NjY5LDI4LjQzOTA1MTcgODYuMjA3OTg1MywyOC4zNTYzOTY2IDg2LjM5MTAwMzcsMjguMjczNzQxNCBDODYuNjU3NDMzMSwyOC4xNTM4MTAzIDg2LjkyNTQ4MjIsMjguMDM0Njg5NyA4Ny4xOTUxNTA5LDI3LjkxODgxMDMgQzg3LjM4NjI2NzUsMjcuODM2MTU1MiA4Ny41NzgxOTM5LDI3Ljc1NTEyMDcgODcuNzcwMTIwMiwyNy42NzQwODYyIEM4OC4wMzk3ODksMjcuNTYyMjU4NiA4OC4zMTE4ODcxLDI3LjQ1MjA1MTcgODguNTg0Nzk1MSwyNy4zNDM0NjU1IEM4OC43NzY3MjE1LDI3LjI2NjQ4MjggODguOTY5NDU3NywyNy4xOTExMjA3IDg5LjE2MDU3NDIsMjcuMTE2NTY5IEM4OS40MTA4MDc0LDI3LjAyMDk0ODMgODkuNjYxMDQwNSwyNi45MjY5NDgzIDg5LjkxMjg5MzMsMjYuODM0NTY5IEM4OS45MTUzMjI3LDI2LjgzMzc1ODYgOTAuMDA0NDAyNSwyNi44MDA1MzQ1IDkwLjAwNjAyMjEsMjYuNzk5NzI0MSBMOTAuMTQ0NTAwNiwyNi43NDk0ODI4IEM5MC4yODYyMTg0LDI2LjY5NjgxMDMgOTAuNDI3MTI2NCwyNi42NDQ5NDgzIDkwLjU3MTI3MzYsMjYuNTkzODk2NiBMOTEuNjU0ODA3NCwyNi4yMjI3NTg2IEM5MS43NjczNzE4LDI2LjE4Mzg2MjEgOTEuODc5OTM2MiwyNi4xNDQ5NjU1IDkxLjk5NTczOTksMjYuMTA4NSBMOTIuNDUyNDc2MSwyNS45NjU4NzkzIEM5Mi44ODk3NzY3LDI1LjgyNzMxMDMgOTMuMzI3MDc3MywyNS42OTM2MDM0IDkzLjc2NjgwNzQsMjUuNTY1NTY5IEM5My45NjY4MzE5LDI1LjUwNzIyNDEgOTQuMTY2ODU2NCwyNS40NTEzMTAzIDk0LjM2NzY5MDgsMjUuMzk1Mzk2NiBDOTQuNzcwOTc5MSwyNS4yODE5NDgzIDk1LjE3NjY5NjksMjUuMTczMzYyMSA5NS41ODMyMjQ1LDI1LjA2ODgyNzYgTDk1LjY3MzkyMzksMjUuMDQ2MTM3OSBDOTUuODM3NTA2NywyNS4wMDQgOTYuMDAwMjc5OCwyNC45NjE4NjIxIDk2LjE2Mzg2MjYsMjQuOTIxMzQ0OCBDOTYuNjUyMTgxNiwyNC44MDE0MTM4IDk3LjE0MTMxMDQsMjQuNjg3MTU1MiA5Ny42MzA0MzkzLDI0LjU4MDE4OTcgTDk3Ljk0MDU5ODgsMjQuNTA5Njg5NyBDOTguNTMwOTU0NiwyNC4zODMyNzU5IDk5LjEyMjkzMDEsMjQuMjY2NTg2MiA5OS43MTQwOTU3LDI0LjE1OCBMMTAwLjEwNjg1NiwyNC4wODk5MzEgQzEwMC43MDEyNjEsMjMuOTg1Mzk2NiAxMDEuMjk0MDQ3LDIzLjg5MDU4NjIgMTAxLjg4NzY0MiwyMy44MDM4NzkzIEwxMDIuMzUyNDc2LDIzLjczNjYyMDcgQzEwMy4wNDY0ODgsMjMuNjQxIDEwMy43MzI0MDIsMjMuNTU4MzQ0OCAxMDQuMzkyNDAyLDIzLjQ5MTA4NjIgTDEwNC45MjI4MzIsMjMuNDQyNDY1NSBDMTA1LjMxMjM1MywyMy40MDYgMTA1LjcwMTA2NSwyMy4zNzI3NzU5IDEwNi4wODk3NzcsMjMuMzQ0NDEzOCBDMTA2LjI5Nzg5OSwyMy4zMjk4Mjc2IDEwNi41MDUyMTIsMjMuMzE2MDUxNyAxMDYuNzE5MDA0LDIzLjMwMzg5NjYgQzEwNy4wODc0NywyMy4yODEyMDY5IDEwNy40NTM1MDcsMjMuMjYyNTY5IDEwNy44MTc5MjQsMjMuMjQ3MTcyNCBMMTA3Ljk2NTMxLDIzLjI0MTUgQzEwOC4xMzM3NTIsMjMuMjM1MDE3MiAxMDguMzAzMDA0LDIzLjIyNzcyNDEgMTA4LjQ3MjI1NSwyMy4yMjI4NjIxIEMxMDguNzM1NDQ1LDIzLjIxNTU2OSAxMDguOTk3ODI2LDIzLjIxMTUxNzIgMTA5LjI2MDIwNiwyMy4yMDc0NjU1IEMxMDkuNzY1NTMxLDIzLjIwMDk4MjggMTEwLjI2NTk5OCwyMy4yMDE3OTMxIDExMC43NjY0NjQsMjMuMjA4Mjc1OSBMMTEwLjg0OTg3NSwyMy4yMDkwODYyIEMxMTEuMDY4NTI1LDIzLjIxMzEzNzkgMTExLjI4NzE3NSwyMy4yMTYzNzkzIDExMS41MDQyMDYsMjMuMjIyODYyMSBDMTExLjcxNjM3OCwyMy4yMjkzNDQ4IDExMS45MjYxMiwyMy4yMzkwNjkgMTEyLjEzNTg2MywyMy4yNDcxNzI0IEMxMTIuMzY5ODk5LDIzLjI1Njg5NjYgMTEyLjYwMzEyNiwyMy4yNjkwNTE3IDExMi44Mzk1OTMsMjMuMjgyMDE3MiBDMTEyLjg0MTIxMiwyMy4yODIwMTcyIDExMi45MTgxNDUsMjMuMjg2MDY5IDExMi45MTk3NjQsMjMuMjg2MDY5IEMxMTMuMTMxMTI2LDIzLjI5OTAzNDUgMTEzLjM0MDg2OSwyMy4zMTM2MjA3IDExMy41NTA2MTEsMjMuMzI5MDE3MiBDMTEzLjgxMTM3MiwyMy4zNDc2NTUyIDExNC4wNzEzMjMsMjMuMzY5NTM0NSAxMTQuMzMyMDgzLDIzLjM5MjIyNDEgQzExNC41MTk5NjEsMjMuNDA5MjQxNCAxMTQuNzA3MDI4LDIzLjQyNzA2OSAxMTQuOTQxMDY1LDIzLjQ1MTM3OTMgQzExNS4xOTA0ODgsMjMuNDc3MzEwMyAxMTUuNDM3NDgyLDIzLjUwNTY3MjQgMTE1LjY4Mjg1NiwyMy41MzU2NTUyIEwxMTUuNzUxNjkxLDIzLjU0NDU2OSBDMTE1LjkxMTIyNSwyMy41NjMyMDY5IDExNi4wNzA3NTgsMjMuNTgyNjU1MiAxMTYuMjI5NDgyLDIzLjYwNDUzNDUgQzExNi40OTgzNDEsMjMuNjQxODEwMyAxMTYuNzYzOTYxLDIzLjY4MTUxNzIgMTE3LjAyNzk2MSwyMy43MjIwMzQ1IEwxMTcuMTgxODI2LDIzLjc0NzE1NTIgQzExNy4yOTg0MzksMjMuNzY0MTcyNCAxMTcuNDE0MjQzLDIzLjc4MTE4OTcgMTE3LjUzMDA0NywyMy44MDE0NDgzIEMxMTcuODE3NTMxLDIzLjg1MDA2OSAxMTguMTAxNzc3LDIzLjkwNDM2MjEgMTE4LjM4NzY0MiwyMy45NTk0NjU1IEwxMTguNzk3NDA5LDI0LjAzNzI1ODYgQzExOS4xMDI3MDksMjQuMDk5NjU1MiAxMTkuNDAzMTUxLDI0LjE2OTM0NDggMTE5LjcwNTIxMiwyNC4yMzkwMzQ1IEwxMjAuMDU3NDgyLDI0LjMxODQ0ODMgQzEyMC40NzA0ODgsMjQuNDE5NzQxNCAxMjAuODc3ODI2LDI0LjUyNTg5NjYgMTIxLjI3Nzg3NSwyNC42NDA5NjU1IEMxMjEuNzE0MzY2LDI0Ljc2NTc1ODYgMTIyLjE0Mjc1OCwyNC44OTg2NTUyIDEyMi41NjQ2NzIsMjUuMDQxMjc1OSBDMTIyLjYzNTEyNiwyNS4wNjQ3NzU5IDEyMi43MDU1OCwyNS4wOTA3MDY5IDEyMi43NzUyMjUsMjUuMTE2NjM3OSBMMTIyLjk0NjA5NiwyNS4xNzgyMjQxIEMxMjMuMjMzNTgsMjUuMjc4NzA2OSAxMjMuNTIwMjU1LDI1LjM4MTYyMDcgMTIzLjc5OTY0MiwyNS40OTEwMTcyIEMxMjMuODYyODA3LDI1LjUxNDUxNzIgMTIzLjkyMjczNCwyNS41NDA0NDgzIDEyMy45ODM0NywyNS41NjYzNzkzIEwxMjQuMTI3NjE3LDI1LjYyNjM0NDggQzEyNC41MDQxODIsMjUuNzc4Njg5NyAxMjQuODcyNjQ4LDI1Ljk0MDc1ODYgMTI1LjI1NjUwMSwyNi4xMTkwMzQ1IEMxMjUuMjYwNTUsMjYuMTIwNjU1MiAxMjUuMzEzOTk4LDI2LjE0NjU4NjIgMTI1LjMxODA0NywyNi4xNDgyMDY5IEMxMjUuNDE2MDM0LDI2LjE5MzU4NjIgMTI1LjUxMzIxMiwyNi4yMzk3NzU5IDEyNS42MDc5NjEsMjYuMjg1MTU1MiBDMTI1Ljc4MDQ1MiwyNi4zNzAyNDE0IDEyNS45NTEzMjMsMjYuNDU2OTQ4MyAxMjYuMTE3MzM1LDI2LjU0MzY1NTIgQzEyNi4xMTk3NjQsMjYuNTQ0NDY1NSAxMjYuMTIzMDA0LDI2LjU0NjA4NjIgMTI2LjEyNTQzMywyNi41NDc3MDY5IEMxMjYuMjU5MDUzLDI2LjYxNzM5NjYgMTI2LjM5MTA1MywyNi42ODg3MDY5IDEyNi41MjIyNDMsMjYuNzYxNjM3OSBMMTI2LjUxOTAwNCwyNy44OTEyNTg2IEMxMjYuNDMzMTYzLDI3Ljg0NzUgMTI2LjM0ODk0MiwyNy44MDM3NDE0IDEyNi4yNjE0ODIsMjcuNzYwNzkzMSBMMTI1Ljg2MTQzMywyNy41NzExNzI0IEMxMjUuNDc5MiwyNy4zOTM3MDY5IDEyNS4wODgwNTksMjcuMjIzNTM0NSAxMjQuNjg4ODIsMjcuMDU5ODQ0OCBMMTI0LjU1ODQzOSwyNy4wMDYzNjIxIEMxMjQuNDg3MTc1LDI2Ljk3NjM3OTMgMTI0LjQxNDI5MiwyNi45NDU1ODYyIDEyNC4zNDA1OTksMjYuOTE3MjI0MSBDMTI0LjA0NjYzNiwyNi44MDEzNDQ4IDEyMy43NDQ1NzQsMjYuNjkzNTY5IDEyMy40MzkyNzQsMjYuNTg1NzkzMSBMMTIzLjI4NzgzOCwyNi41MzE1IEMxMjMuMjA1MjM3LDI2LjUwMTUxNzIgMTIzLjEyMTgyNiwyNi40NzA3MjQxIDEyMy4wMzc2MDUsMjYuNDQyMzYyMSBDMTIyLjU5NDYzNiwyNi4yOTQwNjkgMTIyLjE0NTk5OCwyNi4xNTM4NzkzIDEyMS42ODY4MzIsMjYuMDIyNjAzNCBDMTIxLjI2NzM0NywyNS45MDI2NzI0IDEyMC44NDMwMDQsMjUuNzkwODQ0OCAxMjAuNDEwNTYyLDI1LjY4NTUgQzEyMC4zMzg0ODgsMjUuNjY4NDgyOCAxMjAuMjYzOTg1LDI1LjY1MTQ2NTUgMTIwLjE4OTQ4MiwyNS42MzYwNjkgTDEyMC4wNDEyODYsMjUuNjAyMDM0NSBDMTE5LjcyODY5NywyNS41MjkxMDM0IDExOS40MTQ0ODgsMjUuNDU2OTgyOCAxMTkuMDk0NjExLDI1LjM5MTM0NDggTDExOC42Njc4MzgsMjUuMzEwMzEwMyBDMTE4LjM3MjI1NSwyNS4yNTI3NzU5IDExOC4wNzY2NzIsMjUuMTk2ODYyMSAxMTcuNzc3MDQsMjUuMTQ1ODEwMyBDMTE3LjY0MTgwMSwyNS4xMjM5MzEgMTE3LjUwNTc1MiwyNS4xMDIwNTE3IDExNy4zNjk3MDMsMjUuMDgyNjAzNCBMMTE3LjI1Nzk0OCwyNS4wNjM5NjU1IEMxMTYuOTgyNjExLDI1LjAyMTgyNzYgMTE2LjcwNzI3NCwyNC45Nzk2ODk3IDExNi40Mjc4ODcsMjQuOTQyNDEzOCBDMTE2LjI0MTYyOSwyNC45MTcyOTMxIDExNi4wNTM3NTIsMjQuODk0NjAzNCAxMTUuODY0MjU1LDI0Ljg3MDI5MzEgQzExNS42MDgzNTMsMjQuODM5NSAxMTUuMzUyNDUyLDI0LjgxMDMyNzYgMTE1LjA0Nzk2MSwyNC43Nzg3MjQxIEMxMTQuODU1MjI1LDI0Ljc1OTI3NTkgMTE0LjY2MDA1OSwyNC43Mzk4Mjc2IDExNC40NjQwODMsMjQuNzIyODEwMyBDMTE0LjE5NzY1NCwyNC42OTc2ODk3IDExMy45Mjg3OTUsMjQuNjc3NDMxIDExMy42NTkxMjYsMjQuNjU3MTcyNCBDMTEzLjQ0MjA5NiwyNC42NDE3NzU5IDExMy4yMjUwNjUsMjQuNjI1NTY5IDExMy4wMTQ1MTMsMjQuNjE0MjI0MSBMMTEyLjkyMDU3NCwyNC42MDkzNjIxIEMxMTIuNjgwODY5LDI0LjU5NDc3NTkgMTEyLjQ0MDM1MywyNC41ODM0MzEgMTEyLjE5OTgzOCwyNC41NzI4OTY2IEMxMTEuOTgzNjE3LDI0LjU2Mzk4MjggMTExLjc2NzM5NiwyNC41NTUwNjkgMTExLjU0NzkzNiwyNC41NDc3NzU5IEMxMTEuMzIzNjE3LDI0LjU0MTI5MzEgMTExLjA5ODQ4OCwyNC41MzgwNTE3IDExMC44NzI1NSwyNC41MzQgTDExMC43ODgzMjksMjQuNTMyMzc5MyBDMTEwLjI3NDA5NiwyNC41MjUwODYyIDEwOS43NjE0ODIsMjQuNTI0Mjc1OSAxMDkuMjM4MzQxLDI0LjUzMTU2OSBDMTA4Ljk2ODY3MiwyNC41MzU2MjA3IDEwOC42OTk4MTMsMjQuNTQwNDgyOCAxMDguNDI4NTI1LDI0LjU0ODU4NjIgQzEwOC40MTMxMzksMjQuNTQ5Mzk2NiAxMDguMzk2OTQyLDI0LjU1MDIwNjkgMTA4LjM4MTU1NiwyNC41NTAyMDY5IEMxMDguMzIzMjQ5LDI0LjUzNTYyMDcgMTA4LjI2MzMyMywyNC41MjUwODYyIDEwOC4yMDA5NjcsMjQuNTI1MDg2MiBMMTA4LjE5ODUzNywyNC41MjUwODYyIEMxMDguMTE5MTc1LDI0LjUyNTg5NjYgMTA4LjA0Mzg2MywyNC41NDIxMDM0IDEwNy45NzI1OTksMjQuNTY0NzkzMSBDMTA3LjkwMTMzNSwyNC41NjgwMzQ1IDEwNy44MjkyNjEsMjQuNTcwNDY1NSAxMDcuNzU3OTk4LDI0LjU3Mjg5NjYgQzEwNy4zODMwNTMsMjQuNTg5MTAzNCAxMDcuMDA3Mjk4LDI0LjYwNzc0MTQgMTA2LjYyMDIwNiwyNC42MzA0MzEgQzEwNi40MDcyMjUsMjQuNjQ0MjA2OSAxMDYuMTk1MDUzLDI0LjY1NzE3MjQgMTA1Ljk4MjA3MSwyNC42NzI1NjkgQzEwNS41ODQ0NTIsMjQuNzAwOTMxIDEwNS4xODUyMTIsMjQuNzM1Nzc1OSAxMDQuNzg2NzgzLDI0Ljc3MjI0MTQgTDEwNC42MTEwNTMsMjQuNzg5MjU4NiBDMTA0LjQ4Nzk2MSwyNC43OTg5ODI4IDEwNC4zNjQwNTksMjQuODEwMzI3NiAxMDQuMjQwMTU3LDI0LjgyMzI5MzEgQzEwMy41NTAxOTQsMjQuODk0NjAzNCAxMDIuODQ2NDY0LDI0Ljk3ODA2OSAxMDIuMTUwMDIyLDI1LjA3NDUgTDEwMS42NzMwNCwyNS4xNDMzNzkzIEMxMDEuMDY0ODY5LDI1LjIzMjUxNzIgMTAwLjQ1NjY5NywyNS4zMzA1NjkgOTkuODQ5MzM1LDI1LjQzNjcyNDEgTDk5LjQ0NTIzNjgsMjUuNTA2NDEzOCBDOTguODM5NDk0NSwyNS42MTgyNDE0IDk4LjIzMzc1MjEsMjUuNzM4MTcyNCA5Ny42Mjk2Mjk0LDI1Ljg2NzAxNzIgTDk3LjMxMjE4MTYsMjUuOTM5MTM3OSBDOTYuODEwMDk1NywyNi4wNDg1MzQ1IDk2LjMwODgxOTYsMjYuMTY2MDM0NSA5NS44MDgzNTM0LDI2LjI4ODM5NjYgQzk1LjY1NTI5ODIsMjYuMzI2NDgyOCA5NS41MDIyNDI5LDI2LjM2NjE4OTcgOTUuMzQ5MTg3NywyNi40MDU4OTY2IEw5NS4yMTM5NDg1LDI2LjQ0MDc0MTQgQzk0Ljc5NjA4MzQsMjYuNTQ3NzA2OSA5NC4zODA2NDc5LDI2LjY1ODcyNDEgOTMuOTY3NjQxNywyNi43NzQ2MDM0IEM5My43NjE5NDg1LDI2LjgzMTMyNzYgOTMuNTU2MjU1MiwyNi44ODg4NjIxIDkzLjM1MDU2MiwyNi45NDg4Mjc2IEM5Mi45MDAzMDQzLDI3LjA4MDEwMzQgOTIuNDUxNjY2MywyNy4yMTc4NjIxIDkyLjAwMzgzOCwyNy4zNTk2NzI0IEw5MS4wMDkzODQsMjcuNjgzIEM5MC44NTE0Njk5LDI3LjczNDg2MjEgOTAuNjk1OTg1MywyNy43ODk5NjU1IDkwLjU0NDU0OTcsMjcuODQyNjM3OSBMOTAuNDM5MjczNiwyNy44Nzc0ODI4IEM5MC4zMTY5OTE0LDI3LjkxOTYyMDcgOTAuMTk0NzA5MiwyNy45NjA5NDgzIDkwLjA3NDA0NjYsMjguMDAzMDg2MiBDODkuOTI1MDQwNSwyOC4wNTU3NTg2IDg5Ljc3NzY1NCwyOC4xMTAwNTE3IDg5LjYzMDI2NzUsMjguMTY1MTU1MiBMODkuMzk3ODUwMywyOC4yNTAyNDE0IEM4OS4xNDAzMjg4LDI4LjM0NTA1MTcgODguODgyODA3NCwyOC40NDA2NzI0IDg4LjYyNjA5NTcsMjguNTQwMzQ0OCBDODguNDI2ODgxLDI4LjYxNjUxNzIgODguMjMwMDk1NywyOC42OTQzMTAzIDg4LjAzNDEyMDIsMjguNzczNzI0MSBDODcuNzUzMTE0MSwyOC44ODQ3NDE0IDg3LjQ3MzcyNzYsMjguOTk4MTg5NyA4Ny4xOTc1ODA0LDI5LjExNDg3OTMgQzg2Ljk5OTE3NTUsMjkuMTk1OTEzOCA4Ni44MDE1ODA0LDI5LjI4MDE4OTcgODYuNjA1NjA0OSwyOS4zNjM2NTUyIEM4Ni4zMjc4MzgsMjkuNDg0Mzk2NiA4Ni4wNTI1MDA2LDI5LjYwNTk0ODMgODUuNzc4NzgyOCwyOS43Mjk5MzEgQzg1LjU4NjA0NjYsMjkuODE2NjM3OSA4NS4zOTQ5MzAxLDI5LjkwMjUzNDUgODUuMjA2MjQyOSwyOS45OTE2NzI0IEM4NS4wMTY3NDYsMzAuMDc5MTg5NyA4NC44MzA0ODgzLDMwLjE2OTEzNzkgODQuNjQzNDIwOSwzMC4yNTk4OTY2IEw4NC4yMDc3Mzk5LDMwLjQ2ODk2NTUgQzg0LjA4MzAyODIsMzAuNTMwNTUxNyA4My45NTkxMjY0LDMwLjU5MDUxNzIgODMuODM0NDE0NywzMC42NTI5MTM4IEM4My43MjU4OTk0LDMwLjcwNzIwNjkgODMuNjE5ODEzNSwzMC43NjMxMjA3IDgzLjUxMjkxNzgsMzAuODE5MDM0NSBMODIuNzgyNDYzOCwzMS4xOTc0NjU1IEM4Mi42ODUyODU5LDMxLjI0NzcwNjkgODIuNTg4MTA4LDMxLjI5ODc1ODYgODIuNDkzMzU5NSwzMS4zNDk4MTAzIEM4Mi4wNTEyLDMxLjU4ODg2MjEgODEuNjEzMDg5NiwzMS44MzI3NzU5IDgxLjE4MTQ1NzcsMzIuMDgzOTgyOCBDODAuNzk0MzY1NiwzMi4zMDkyNTg2IDgwLjQxOTQyMDksMzIuNTM3Nzc1OSA4MC4wNDg1MjUyLDMyLjc2ODcyNDEgTDc5Ljc2MzQ2OTksMzIuOTQ1Mzc5MyBDNzkuNjU5ODEzNSwzMy4wMTEwMTcyIDc5LjU1ODU4NjUsMzMuMDc3NDY1NSA3OS40NTczNTk1LDMzLjE0MzkxMzggTDc5LjI4ODEwOCwzMy4yNTU3NDE0IEM3OC45NzYzMjg4LDMzLjQ1OTEzNzkgNzguNjY2OTc5MSwzMy42NjMzNDQ4IDc4LjM2NTcyNzYsMzMuODcwNzkzMSBDNzguMjIxNTgwNCwzMy45NzA0NjU1IDc4LjA4MDY3MjQsMzQuMDcwMTM3OSA3Ny45Mzk3NjQ0LDM0LjE3MDYyMDcgTDc3Ljg2OTMxMDQsMzQuMjIwODYyMSBDNzcuNTk4ODMxOSwzNC40MTQ1MzQ1IDc3LjMzMDc4MjgsMzQuNjA4MjA2OSA3Ny4wNzAwMjIxLDM0LjgwNTEyMDcgQzc2LjkwODA1ODksMzQuOTI3NDgyOCA3Ni43NDc3MTUzLDM1LjA0OTg0NDggNzYuNTg5ODAxMiwzNS4xNzMwMTcyIEM3Ni4zMzQ3MDkyLDM1LjM3MTU1MTcgNzYuMDg2MDk1NywzNS41NzA4OTY2IDc1Ljg0MTUzMTMsMzUuNzczNDgyOCBMNzUuNzMzODI1OCwzNS44NjI2MjA3IEM3NS42MjQ1MDA2LDM1Ljk1MjU2OSA3NS41MTQzNjU2LDM2LjA0MjUxNzIgNzUuNDA3NDY5OSwzNi4xMzQwODYyIEM3NS4yMjc2OTA4LDM2LjI4ODA1MTcgNzUuMDU0MzkwMiwzNi40NDI4Mjc2IDc0Ljg4MTA4OTYsMzYuNTk2NzkzMSBMNzQuNjYyNDM5MywzNi43OTI4OTY2IEM3NC41NTQ3MzM3LDM2Ljg4OTMyNzYgNzQuNDQ3ODM4LDM2Ljk4NDk0ODMgNzQuMzM0NDYzOCwzNy4wOTAyOTMxIEw3NC4yNTc1MzEzLDM3LjE2NDg0NDggQzczLjk3NzMzNSwzNy40MjkwMTcyIDczLjcwNjA0NjYsMzcuNjk1NjIwNyA3My40NDUyODU5LDM3Ljk2MjIyNDEgQzczLjM1NzAxNiwzOC4wNTIxNzI0IDczLjI2OTU1NTgsMzguMTQyMTIwNyA3My4xODUzMzUsMzguMjMyMDY5IEM3Mi45MTY0NzYxLDM4LjUxMzI1ODYgNzIuNjU3MzM1LDM4Ljc5NTI1ODYgNzIuMzkzMzM1LDM5LjA5NzUxNzIgQzcyLjIyNDg5MzMsMzkuMjkxMTg5NyA3Mi4wNjUzNTk1LDM5LjQ4NDg2MjEgNzEuOTA3NDQ1NCwzOS42NzkzNDQ4IEw3MS44MjcyNzM2LDM5Ljc3NDk2NTUgQzcxLjc3NjI1NTIsMzkuODM1NzQxNCA3MS43MjYwNDY2LDM5Ljg5NTcwNjkgNzEuNjc3NDU3NywzOS45NTcyOTMxIEM3MS41NjgxMzI1LDQwLjA5NTg2MjEgNzEuNDY2MDk1Nyw0MC4yMzM2MjA3IDcxLjM2NDA1ODksNDAuMzcxMzc5MyBMNzEuMjcwMTIwMiw0MC40OTk0MTM4IEM3MS4yMTE4MTM1LDQwLjU3NzIwNjkgNzEuMTU5MTc1NSw0MC42NTU4MTAzIDcxLjEwMjQ4ODMsNDAuNzMzNjAzNCBDNzIuNjkxMzQ3MiwzNy44MDk4NzkzIDc1LjQyNzcxNTMsMzQuOTIxODEwMyA3OS4xMDkxMzg3LDMyLjM1NDYzNzkgTDc5LjEwOTEzODcsMzIuMzU0NjM3OSBaIE03MS42NjIwNzEyLDUyLjI3ODU4NjIgQzcxLjYxODM0MTEsNTIuMjI0MjkzMSA3MS41NzM4MDEyLDUyLjE3MTYyMDcgNzEuNTMyNTAwNiw1Mi4xMTczMjc2IEM3MS40MzA0NjM4LDUxLjk4NTI0MTQgNzEuMzM1NzE1Myw1MS44NTE1MzQ1IDcxLjI0MTc3NjcsNTEuNzE3MDE3MiBDNzEuMTk2NDI3LDUxLjY1MjE4OTcgNzEuMTQ5NDU3Nyw1MS41ODgxNzI0IDcxLjEwNjUzNzQsNTEuNTIzMzQ0OCBDNzEuMDE3NDU3Nyw1MS4zODk2Mzc5IDcwLjkzNDA0NjYsNTEuMjU0MzEwMyA3MC44NTMwNjUsNTEuMTE4MTcyNCBDNzAuODEwOTU0Niw1MS4wNDg0ODI4IDcwLjc2ODAzNDQsNTAuOTc4NzkzMSA3MC43MjgzNTM0LDUwLjkwODI5MzEgQzcwLjY1Mzg1MDMsNTAuNzc2MjA2OSA3MC41ODMzOTYzLDUwLjY0MjUgNzAuNTE1MzcxOCw1MC41MDc5ODI4IEM3MC40NzU2OTA4LDUwLjQzMDE4OTcgNzAuNDM2MDA5OCw1MC4zNTMyMDY5IDcwLjM5OTU2ODEsNTAuMjc0NjAzNCBDNzAuMzM4ODMxOSw1MC4xNDY1NjkgNzAuMjgyOTU0Niw1MC4wMTY5MTM4IDcwLjIyODY5NjksNDkuODg3MjU4NiBDNzAuMTkxNDQ1NCw0OS43OTgxMjA3IDcwLjE1NDE5MzksNDkuNzA4MTcyNCA3MC4xMjAxODE2LDQ5LjYxNzQxMzggQzcwLjA3NDgzMTksNDkuNDk4MjkzMSA3MC4wMzI3MjE1LDQ5LjM3NzU1MTcgNjkuOTkyMjMwNyw0OS4yNTY4MTAzIEM2OS45NTc0MDg2LDQ5LjE1MDY1NTIgNjkuOTIzMzk2Myw0OS4wNDQ1IDY5Ljg5MTgxMzUsNDguOTM4MzQ0OCBDNjkuODYwMjMwNyw0OC44MzEzNzkzIDY5LjgzMTg4NzEsNDguNzIyNzkzMSA2OS44MDQzNTM0LDQ4LjYxNDIwNjkgQzY5Ljc3Mjc3MDYsNDguNDg4NjAzNCA2OS43NDI4MDc0LDQ4LjM2MTM3OTMgNjkuNzE2ODkzMyw0OC4yMzMzNDQ4IEM2OS42OTgyNjc1LDQ4LjE0MzM5NjYgNjkuNjgwNDUxNSw0OC4wNTM0NDgzIDY5LjY2NTA2NSw0Ny45NjE4NzkzIEM2OS42NTI5MTc4LDQ3Ljg5MzgxMDMgNjkuNjQ0ODE5Niw0Ny44MjQ5MzEgNjkuNjM1MTAxOCw0Ny43NTY4NjIxIEM2OS42NTA0ODgzLDQ3LjY0NTg0NDggNjkuNjY5MTE0MSw0Ny41Mjk5NjU1IDY5LjY5MzQwODYsNDcuMzkxMzk2NiBDNjkuNzEzNjU0LDQ3LjI3NzEzNzkgNjkuNzMzODk5NCw0Ny4xNjIwNjkgNjkuNzU4MTkzOSw0Ny4wNDk0MzEgQzY5Ljc5Nzg3NDgsNDYuODYwNjIwNyA2OS44NDY0NjM4LDQ2LjY3MTgxMDMgNjkuODk2NjcyNCw0Ni40ODM4MTAzIEw2OS45MjkwNjUsNDYuMzYzMDY5IEM2OS45NDYwNzEyLDQ2LjI5NSA2OS45NjM4ODcxLDQ2LjIyNjkzMSA2OS45ODgxODE2LDQ2LjE1MDc1ODYgTDcwLjAzNTk2MDcsNDYuMDAyNDY1NSBDNzAuMDU4NjM1Niw0NS45MzExNTUyIDcwLjA4MzczOTksNDUuODU3NDEzOCA3MC4xMDg4NDQyLDQ1Ljc4NDQ4MjggQzcwLjU2MDcyMTUsNDUuNzk1ODI3NiA3MC45NjIzOTAyLDQ1LjkxOTgxMDMgNzEuMjkyNzk1MSw0Ni4xNjUzNDQ4IEM3MS45NzIyMzA3LDQ2LjY2Njk0ODMgNzIuMzQ4Nzk1MSw0Ny42NTE1MTcyIDcyLjM1Mjg0NDIsNDguOTM0MjkzMSBDNzIuMzU1MjczNiw0OS45NjQyNDE0IDcyLjExMTUxOSw1MS4xMjMwMzQ1IDcxLjY2MjA3MTIsNTIuMjc4NTg2MiBMNzEuNjYyMDcxMiw1Mi4yNzg1ODYyIFogTTc0LjAyMTg3NDgsNTcuOTQzNzA2OSBMNzQuNzU0NzU4Myw1Ny41MTk4OTY2IEw3NC43NTQ3NTgzLDU3LjUyOTYyMDcgTDc0LjczNTMyMjcsNjQuNTQ4MDE3MiBMNzQuNzM1MzIyNyw2NC41NDg4Mjc2IEM3NC43MzQ1MTI5LDY0LjYwNjM2MjEgNzQuNzQyNjExLDY0LjY2MjI3NTkgNzQuNzU0NzU4Myw2NC43MTU3NTg2IEw3NC43NTQ3NTgzLDg4Ljk4ODAxNzIgTDczLjkzOTI3MzYsODkuNDU4ODI3NiBMNzQuMDIxODc0OCw1Ny45NDM3MDY5IFogTTM3Ljc0MDUwMDYsNjkuMjE5NjU1MiBMMzcuODIyMjkyLDM3Ljk5MjIwNjkgTDcyLjUzMTgxMzUsNTguMDQ1IEw3Mi40NTQwNzEyLDg3LjgyMTkzMSBDNzIuNDQ2NzgyOCw4Ny44NjQwNjkgNzIuNDQ0MzUzNCw4Ny45MDUzOTY2IDcyLjQ0NDM1MzQsODcuOTQ3NTM0NSBDNzIuNDQ1MTYzMiw4OC4wMDUwNjkgNzIuNDQ1MTYzMiw4OC42MjgyMjQxIDcyLjQ0NTk3Myw4OS4yNTA1NjkgTDcyLjQ0NTk3Myw4OS4yNjkyMDY5IEwzNy43NDA1MDA2LDY5LjIxOTY1NTIgWiBNNTguNzMzMzU5NSwxMy4yMTc1MzQ1IEw2Ni41MjI5NzkxLDE4Ljc5ODM3OTMgTDM2LjcwNzk4NTMsMzYuMDUyMjQxNCBDMzYuNzAwNjk2OSwzNi4wNTcxMDM0IDM2LjY5NDIxODQsMzYuMDYyNzc1OSAzNi42ODc3Mzk5LDM2LjA2NzYzNzkgQzM2LjY3NzIxMjMsMzYuMDczMzEwMyAzNi42NjY2ODQ3LDM2LjA3ODk4MjggMzYuNjU2OTY2OSwzNi4wODYyNzU5IEMzNi42MzUxMDE4LDM2LjEwMTY3MjQgMzYuNjE0MDQ2NiwzNi4xMTcwNjkgMzYuNTkzODAxMiwzNi4xMzU3MDY5IEMzNi41ODczMjI3LDM2LjE0MDU2OSAzNi41ODE2NTQsMzYuMTQ2MjQxNCAzNi41NzUxNzU1LDM2LjE1MTkxMzggQzM2LjU3MTEyNjQsMzYuMTU1OTY1NSAzNi41NjcwNzczLDM2LjE2MDAxNzIgMzYuNTYyMjE4NCwzNi4xNjQwNjkgQzM2LjU1ODk3OTEsMzYuMTY3MzEwMyAzNi41NTU3Mzk5LDM2LjE3MDU1MTcgMzYuNTUyNTAwNiwzNi4xNzI5ODI4IEMzNi41Mjk4MjU4LDM2LjE5NTY3MjQgMzYuNTA4NzcwNiwzNi4yMTk5ODI4IDM2LjQ4OTMzNSwzNi4yNDUxMDM0IEMzNi40ODY5MDU1LDM2LjI0ODM0NDggMzYuNDg1Mjg1OSwzNi4yNTE1ODYyIDM2LjQ4Mjg1NjQsMzYuMjU0ODI3NiBDMzYuNDc3MTg3NywzNi4yNjIxMjA3IDM2LjQ3MjMyODgsMzYuMjY5NDEzOCAzNi40NjY2NjAxLDM2LjI3NTg5NjYgQzM2LjQ2NTg1MDMsMzYuMjc4MzI3NiAzNi40NjQyMzA3LDM2LjI3OTk0ODMgMzYuNDYyNjExLDM2LjI4MjM3OTMgQzM2LjQ1MjA4MzQsMzYuMjk3Nzc1OSAzNi40Mzk5MzYyLDM2LjMxMDc0MTQgMzYuNDMwMjE4NCwzNi4zMjY5NDgzIEMzNi4zNTAwNDY2LDM2LjQ2NzEzNzkgMzYuMzIwODkzMywzNi42MjE5MTM4IDM2LjMzNTQ2OTksMzYuNzcxODI3NiBMMzYuMjUzNjc4NSw2OC4xODk3MDY5IEwzLjg1Mzc1MjE1LDQ0Ljk3ODE4OTcgTDU4LjczMzM1OTUsMTMuMjE3NTM0NSBaIE0xMzAuNzI5MjM3LDIyLjgzMTQ2NTUgTDk0LjYxNzExNDEsMS45NjgzMjc1OSBDOTQuMjMzMjYxMywxLjc0NjI5MzEgOTMuODA0MDU4OSwxLjYzNTI3NTg2IDkzLjM3NTY2NjMsMS42MzUyNzU4NiBDOTIuOTQ2NDYzOCwxLjYzNTI3NTg2IDkyLjUxNzI2MTMsMS43NDYyOTMxIDkyLjEzMjU5ODgsMS45NjkxMzc5MyBMNjguMDM4MTQ0OCwxNS45MTM1NTE3IEw2MS4yNjA3OTUxLDExLjA1NTUzNDUgTDYxLjI2MDc5NTEsNS45NjI1MTcyNCBDNjEuMjYwNzk1MSwyLjgxMTg5NjU1IDU4LjY5NjEwOCwwLjI0NzE1NTE3MiA1NS41NDM0OTQ1LDAuMjQ3MTU1MTcyIEM1NC41NDgyMzA3LDAuMjQ3MTU1MTcyIDUzLjU2MTA2NSwwLjUxNTM3OTMxIDUyLjY4NzI3MzYsMS4wMjE4NDQ4MyBMNS40MzUzMjI3LDI4LjM2NjkzMSBDMi4wODM0OTQ0OCwzMC4zMDI4NDQ4IC0wLjAwMDE2MTk2MzE5LDMzLjkxNjE3MjQgLTAuMDAwMTYxOTYzMTksMzcuNzk1MjkzMSBMLTAuMDAwMTYxOTYzMTksNDQuOTEwOTMxIEMtMC4wMDAxNjE5NjMxOSw0NS43MTE1NTE3IDAuMzg2MTIwMjQ1LDQ2LjQ2NDM2MjEgMS4wMzcyMTIyNyw0Ni45MzAzMTAzIEwzNS41NDk5NDg1LDcxLjY2Mjg0NDggQzM1LjU2MjkwNTUsNzEuNjcyNTY5IDM1LjU3NjY3MjQsNzEuNjgyMjkzMSAzNS41ODk2Mjk0LDcxLjY5MTIwNjkgTDM1LjY2ODk5MTQsNzEuNzQ1NSBDMzUuNzIyNDM5Myw3MS43ODI3NzU5IDM1Ljc3NzUwNjcsNzEuODE3NjIwNyAzNS44MzQxOTM5LDcxLjg1MDAzNDUgTDcxLjUyNTIxMjMsOTIuNDY2MDE3MiBDNzEuOTk0OTA1NSw5Mi45MzUyMDY5IDcyLjYzMDYxMSw5My4xODk2NTUyIDczLjI3OTI3MzYsOTMuMTg5NjU1MiBDNzMuNzAwMzc3OSw5My4xODk2NTUyIDc0LjEyNzk2MDcsOTMuMDgxODc5MyA3NC41MTkxMDE4LDkyLjg1NTc5MzEgTDc2Ljc0MzY2NjMsOTEuNTY4OTY1NSBDNzcuNTExMzcxOCw5MS4xMjQ4OTY2IDc3Ljk4MzQ5NDUsOTAuMzA0ODI3NiA3Ny45ODM0OTQ1LDg5LjQxODMxMDMgTDc3Ljk4MzQ5NDUsNjUuMjQ4OTY1NSBDNzguMDA1MzU5NSw2NS4xODkgNzguMDI1NjA0OSw2NS4xMjc0MTM4IDc4LjA0MjYxMSw2NS4wNjUwMTcyIEw3OS42NTY1NzQyLDU5LjIzMzc3NTkgTDc5LjgxNjEwOCw1OS4yNzUxMDM0IEw4Ny43NzkwMjgyLDYxLjMzNjYyMDcgQzg3Ljk3NTAwMzcsNjEuMzg3NjcyNCA4OC4xNzY2NDc5LDYxLjQxNDQxMzggODguMzc5OTExNyw2MS40MTYwMzQ1IEw5MC4xMjc0OTQ1LDYxLjQzMDYyMDcgTDkwLjE0ODU0OTcsNjEuNDMwNjIwNyBDOTAuNDMzNjA0OSw2MS40MzA2MjA3IDkwLjcxNjIzMDcsNjEuMzgyIDkwLjk4NTA4OTYsNjEuMjg1NTY5IEM5Ny4wMjA2NDc5LDU5LjEyMzU2OSAxMDMuNzcyMDgzLDU3LjkzMjM2MjEgMTA5Ljk5NDcwOSw1Ny45MzIzNjIxIEMxMTYuMTk5NTE5LDU3LjkzMjM2MjEgMTIxLjc0OTE4OCw1OS4xMTU0NjU1IDEyNS42NzE5MzYsNjEuMjY5MzYyMSBDMTI1Ljk1NzgwMSw2MS41MjYyNDE0IDEyNi4zMDE5NzMsNjEuNzE0MjQxNCAxMjYuNjgwMTU3LDYxLjgxNjM0NDggQzEyNi44OTMxMzksNjEuODczODc5MyAxMjcuMTEwOTc5LDYxLjkwMjI0MTQgMTI3LjMyODAxLDYxLjkwMjI0MTQgQzEyNy43NTk2NDIsNjEuOTAyMjQxNCAxMjguMTg4MDM0LDYxLjc5MDQxMzggMTI4LjU2ODY0OCw2MS41NyBMMTMwLjcyODQyNyw2MC4zMjI4NzkzIEMxMzEuNDk2OTQyLDU5Ljg3OTYyMDcgMTMxLjk3MDY4NSw1OS4wNTk1NTE3IDEzMS45NzA2ODUsNTguMTcxNDEzOCBMMTMxLjk3MDY4NSwyNC45ODIxMjA3IEMxMzEuOTcwNjg1LDI0LjA5NDc5MzEgMTMxLjQ5Njk0MiwyMy4yNzQ3MjQxIDEzMC43MjkyMzcsMjIuODMxNDY1NSBMMTMwLjcyOTIzNywyMi44MzE0NjU1IFoiIGlkPSJGaWxsLTQ1IiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3LjUyODgwNzQsMjkuMzM4NDUzNCBDOTguMjg1OTg1MywyOC45MDA4NjcyIDk5LjAwMDI0MjksMjguNjc5NjQzMSA5OS42MjYyMzA3LDI4LjY3OTY0MzEgQzEwMC4wMjMwNCwyOC42Nzk2NDMxIDEwMC4zODM0MDksMjguNzY4NzgxIDEwMC42OTU5OTgsMjguOTQ5NDg3OSBDMTAxLjQ5MjA0NywyOS40MDczMzI4IDEwMS45MzMzOTYsMzAuNDM1NjYwMyAxMDEuOTM3NDQ1LDMxLjg0MjQxOSBDMTAxLjk0NjM1MywzNS4wOTUxNDMxIDk5LjY1MDUyNTIsMzkuMDcxNTA1MiA5Ni44MjAyMTg0LDQwLjcwNTk3MDcgQzk1LjU4MjgxOTYsNDEuNDE5ODg0NSA5NC40NTk2MDQ5LDQxLjU1NzY0MzEgOTMuNjU2MjY3NSw0MS4wOTQ5MzYyIEM5Mi44NTk0MDg2LDQwLjYzNTQ3MDcgOTIuNDE4MDU4OSwzOS42MDc5NTM0IDkyLjQxNDgxOTYsMzguMjAxMTk0OCBDOTIuNDA1MTAxOCwzNC45NDg0NzA3IDk0LjY5OTMxMDQsMzAuOTczNzI5MyA5Ny41Mjg4MDc0LDI5LjMzODQ1MzQgTTkyLjkxMzY2NjMsNDIuMzg3NDM2MiBDOTMuNDU4NjcyNCw0Mi43MDAyMjkzIDk0LjA2ODQ2MzgsNDIuODU2NjI1OSA5NC43MjExNzU1LDQyLjg1NjYyNTkgQzk1LjYwODczMzcsNDIuODU2NjI1OSA5Ni41NzY0NjM4LDQyLjU2NzMzMjggOTcuNTY0NDM5Myw0MS45OTY4NSBDMTAwLjg2MjAxLDQwLjA5MjUzOTcgMTAzLjQzNzIyNSwzNS42Mjk5NzA3IDEwMy40MjY2OTcsMzEuODM4MzY3MiBDMTAzLjQyMTAyOCwyOS44NzY1MjI0IDEwMi43MTQ4NjksMjguMzkxOTcwNyAxMDEuNDM4NTk5LDI3LjY1Njk4NzkgQzEwMC4xNTQyMzEsMjYuOTE3MTQzMSA5OC41MDEzOTYzLDI3LjA1NjUyMjQgOTYuNzgzNzc2NywyOC4wNDc1NzQxIEM5My40ODc4MjU4LDI5Ljk1MTg4NDUgOTAuOTE0MjMwNywzNC40MTQ0NTM0IDkwLjkyNTU2ODEsMzguMjA0NDM2MiBDOTAuOTMwNDI3LDQwLjE2NTQ3MDcgOTEuNjM3Mzk2Myw0MS42NTE2NDMxIDkyLjkxMzY2NjMsNDIuMzg3NDM2MiIgaWQ9IkZpbGwtNDMiIGZpbGw9IiNGRkZGRkYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03NC42MjY2OTc1LDU0LjgyNTc1MjggTDc3LjA0MDEwMDIsNTkuMDQ5MjA3NSBMNzcuMDQwMTAwMiw1OS4wNDkyMDc1IEM3Ny4zMDY0OTY4LDU5LjUxNTQwMTUgNzcuMTU3MTc5OCw2MC4xMDg3NjczIDc2LjcwMTg1Niw2MC4zOTMzNDQ3IEw3MS44NzUwNTA3LDYzLjQxMDA5OCBMNzEuODc1MDUwNyw2My40MTAwOTggQzcxLjQwNjcxNDEsNjMuNzAyODA4NCA3MC43ODk3NjM4LDYzLjU2MDQzNTIgNzAuNDk3MDUzNCw2My4wOTIwOTg3IEM3MC4zMzg5NjQ1LDYyLjgzOTE1NjMgNzAuMzAyMDQzNSw2Mi41Mjg4NDY4IDcwLjM5NjM2ODQsNjIuMjQ1ODcyIEw3Mi44MDk3NzExLDU1LjAwNTY2NCBMNzIuODA5NzcxMSw1NS4wMDU2NjQgQzcyLjk4NDQxODksNTQuNDgxNzIwNyA3My41NTA3Mzg4LDU0LjE5ODU2MDcgNzQuMDc0NjgyMiw1NC4zNzMyMDg0IEM3NC4zMDgwOTMxLDU0LjQ1MTAxMjEgNzQuNTA0NjI5MSw1NC42MTIxMzMxIDc0LjYyNjY5NzUsNTQuODI1NzUyOCBaIiBpZD0iVHJpYW5nbGUiIGZpbGwtb3BhY2l0eT0iMC4yNjYwNDk1OTIiIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLjc1ODUyMSwgNTguOTQxOTI3KSByb3RhdGUoMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC03My43NTg1MjEsIC01OC45NDE5MjcpICI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="/>\n <ol style="">\n '+xn.map((function(e){var t;return"<li>"+(null!==(t=e[navigator.language.split("-")[0]])&&void 0!==t?t:e.zh)+"</li>"})).join("")+"\n </ol>\n ";var h=new li(l);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.insertBefore(l,e),this.setHelperElementSize(),h.on("tap",this.vrWantsToExit.bind(this))),this.destroyHelper=function(){h.destroy(),u.parentNode&&u.parentNode.removeChild(u),l.parentNode&&l.parentNode.removeChild(l)}},r.prototype.setHelperElementSize=function(){if(this.helperElement){var t=this.renderer.domElement,r=new e.Vector2(t.offsetWidth,t.offsetHeight),i=r.x*this.scissor.left,n=r.y*(1-this.scissor.bottom-this.scissor.height),s=r.x*this.scissor.width,o=r.y*this.scissor.height;this.helperElement.style.marginLeft=i+"px",this.helperElement.style.marginTop=n+"px",this.helperElement.style.width=s+"px",this.helperElement.style.height=o+"px"}},r.prototype.destroyHelper=function(){},r.prototype.resize=function(){var e=this.element,t=e.offsetWidth,r=e.offsetHeight;this.effect.isPresenting=!1,this.effect.setSize(t,r),this.effect.isPresenting=!0,this.needsRender=!0,this.setHelperElementSize()},r.prototype.doMoveToPano=function(){for(var e=this,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];t.prototype.doMoveToPano.apply(this,r);var n=r[0],s=this.work.observers[n],o=s.visibleNodes;o=o.filter((function(t){return e.work.observers[t].active}));var a=this.panoSphereMeshes.filter((function(e){return e.panoIndex===n}))[0];this.panoSphereMeshes.forEach((function(e){if(e.visible=o.indexOf(e.panoIndex)>=0,a){var t=a.position.distanceTo(e.position)<5;e.visible=e.visible&&t}})),this.needsRender=!0},r.prototype.vrWantsToExit=function(){this.emit("vrWantsToExit")},r.prototype.onPanGesture=function(){},r.prototype.onTapGesture=function(){},r.prototype.onPinchGesture=function(){},r.prototype.onMouseMove=function(){},r.prototype.onMouseOut=function(){},r.prototype.renderIntersect=function(){var t=this,r=t.camera,i=t.model,n=t.intersectMesh,s=t.panoSphereMeshes,o=t.intersectCameraPosition,a=t.intersectCameraVector,u=t.intersectActiveSphereMesh,c=t.intersectActiveDate;if(n){u&&c&&He()-c>2e3&&(delete this.intersectActiveDate,u.setCurrent(),this.moveToPano(u.panoIndex,{},!0));var l=r.getWorldDirection(new e.Vector3);if(!(o&&a&&r.pose.offset.equals(o)&&l.equals(a))){var h=r.pose.offset.clone(),d=new e.Raycaster(h,l),p=null,f=null;if(!p)for(var A=0,M=s.filter((function(e){return e.visible}));A<M.length;A++){var g=M[A],y=d.intersectObject(g,!0)[0];if(y){p=y,f=g;break}}if(p||i.empty||(p=i.intersectRaycaster(d)[0]),p&&p.face){var v=p.face.normal,m=new e.Quaternion;m.setFromUnitVectors(new e.Vector3(0,0,-1),v),n.quaternion.copy(m);var N=v.clone().multiplyScalar(.05),D=p.point.clone().add(N);n.position.copy(D),n.visible=!0,this.emit("intersectionOnModelUpdate",p,n),s.forEach((function(e){return e.reset()})),f?((g=f).setActive(),this.intersectActiveSphereMesh!==g&&(this.intersectActiveSphereMesh=g,this.intersectActiveDate=He())):(delete this.intersectActiveSphereMesh,delete this.intersectActiveDate)}else n.visible=!1,this.emit("intersectionHidden"),delete this.intersectActiveSphereMesh,delete this.intersectActiveDate;this.intersectCameraPosition=r.pose.offset.clone(),this.intersectCameraVector=l.clone(),this.needsRender=!0}}},r.prototype.render=function(){var t=this,r=t.effect,i=t.camera,n=t.scene,s=r.getVRDisplay(),o=this.camera.pose,a=o.longitude,u=o.latitude;if(s){var c=s.getPose();if(Re(c.orientation)||i.quaternion.fromArray(c.orientation),s.stageParameters){i.updateMatrix();var l=s.stageParameters.sittingToStandingTransform,h=new e.Matrix4;h.fromArray(l),i.applyMatrix4(h)}}i.updateMatrixWorld(),i.computePose();var d=this.camera.pose,p=d.longitude,f=d.latitude;a===p&&u===f||(this.emit("cameraDirectionUpdate",{longitude:p,latitude:f},!0),this.emit("cameraUpdate",this.camera.copyPose(),!0)),this.renderIntersect(),r.render(n,i)},r}(gn),jn=function(t){function r(e){var i=r.parseArgs(e);return t.call(this,i)||this}return Se(r,t),r.parseArgs=function(e){return t.parseArgs.call(this,e)},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.destroy=function(){t.prototype.destroy.call(this)},r.prototype.updateWork=function(e,t,r,i){return this.ready=!1,this.work=e,this.currentPanoIndex=t.panoIndex,this.hideIntersectMesh(),this.moveToPano(t.panoIndex,{duration:0,longitude:t.longitude,latitude:t.latitude,fov:t.fov},i),!0},r.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var i=this.work.observers[e];i&&this.moveToPosition(i.position,t,r)},r.prototype.moveToPosition=function(t,r,i){var n,s,o,a,u,c,l=this;void 0===r&&(r={});var h=this,d=h.camera,p=h.model,f=h.currentPanoIndex,A=r.duration,M=r.limit,g=void 0===M||M,y=r.easing,v=void 0===y?Qr.Quadratic.InOut:y;this.ready=!1;var m=this.calculateMovingDuration(A,d.pose.offset.distanceTo(t)),N=ci(this.work.observers,(function(e){return e.position.distanceTo(t)})),D=this.work.observers.indexOf(N);this.emit("moveToPano",D,i);var w=d.pose.longitude,T=d.pose.latitude,x=d.pose.fov,E=d.pose.offset.clone(),j=(null===(n=p.getMaterial())||void 0===n?void 0:n.modelAlpha)||0,I=null!==(o=null===(s=this.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==o?o:0,b=null!==(a=r.longitude)&&void 0!==a?a:w,z=null!==(u=r.latitude)&&void 0!==u?u:T,O=null!==(c=r.fov)&&void 0!==c?c:x,S=t.clone(),L={longitude:b,latitude:z,fov:O,offset:S.clone()};r.moveStartCallback&&r.moveStartCallback(D,L),this.emit("panoWillArrive",D,L,i),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition);var C=function(t){var r=t.progress;l.setModelAndBoundingUniforms({modelAlpha:Wr(j,1,r),perspToOrtho:Wr(I,0,Math.min(5*r,1))});var n=new e.Vector3(Wr(E.x,S.x,r),Wr(E.y,S.y,r),Wr(E.z,S.z,r));l.updateCamera({offset:n},i,g),r>.7&&(l.preventTapGesture=!1),l.emit("movingToPano",D,f,r),i&&l.lastMouseMoveEvent&&l.onMouseMove(l.lastMouseMoveEvent),l.needsRender=!0},k=function(){C({progress:1}),l.preventTapGesture=!1,l.emit("panoArrived",D,l.camera.copyPose(),i),l.needsRender=!0,l.ready=!0};if(this.preventTapGesture=!0,m>0?this.tweenPosition=Fr(m,v).onUpdate(C).onComplete((function(){l.tweenPosition&&l.tweenPosition.destroy(),delete l.tweenPosition,r.moveEndCallback&&r.moveEndCallback(D,l.camera.copyPose()),k()})).onCancel((function(){r.moveCancelCallback&&r.moveCancelCallback()})):k(),this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),w!==b||T!==z||x!==O){var P=function(e){var t=e.progress,r=Zr(w,b,t),n=Wr(T,z,t),s=Wr(x,O,t);l.updateCamera({longitude:r,latitude:n,fov:s},i,g)},_=function(){return P({progress:1})};m>0?this.tweenCoordinates=Fr(m,v).onUpdate(P).onComplete((function(){l.tweenCoordinates&&(l.tweenCoordinates.destroy(),delete l.tweenCoordinates),_()})):_()}},r.prototype.setModelAndBoundingUniforms=function(e){for(var t=0,r=[this.model];t<r.length;t++)r[t].setMaterial(e)},r.prototype.onTapGesture=function(t){if(this.interiaMovement=!1,!0!==this.preventTapGesture){var r=this.camera,i=this.model,n=this.relativeClientPosition(t.center),s=new e.Raycaster;s.setFromCamera(n,r);var o=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",o,!0)&&!this.emit("wantsTapGesture",s,n)){var a=A(s);if(a&&a.face){var u=a.face.normal,c=a.point;if(new e.Vector3(0,1,0).angleTo(u)>Math.PI/3){var l=r.pose.offset.clone().setY(c.y),h=c.clone().sub(l).setLength(.3),d=c.clone().sub(h);s.set(d,new e.Vector3(0,-1,0)),a=A(s)}}if(a){var p=a.point.clone(),f=ci(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-p.y)<1})),(function(e){return e.standingPosition.distanceTo(p)}));f&&(p.y=f.position.y,this.emit("gesture","tap",o,!0),this.emit("tapGesture",s,n),this.moveToPosition(p,{},!0))}}}function A(e){return(!0===i.empty?e.intersectObjects(i.children):i.intersectRaycaster(e))[0]}},r}(Li);const In=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-]Vl?-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-]Vl?9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),bn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=113,i=126,n=0,s="";return arguments[n].split(s).map((function(e){return e.charCodeAt(n)>i?e:String.fromCharCode((e.charCodeAt(n)+r)%i)})).join(s)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f");var zn=Object.assign({opacity:new e.Uniform(1),scale:new e.Uniform(13.1),panoMap:new e.Uniform(null),panoDisplacementMap:new e.Uniform(null),panoPosition:new e.Uniform(new e.Vector3),panoMatrix:new e.Uniform(new e.Matrix4)},{emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),On=new e.SphereBufferGeometry(.01,128,128),Sn=function(t){function r(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.renderer=e,i.prevRequest=null,i.cubeTextureLoader=new wi(e,{allowHosts:i.allowHosts,networkSubscribe:i.networkSubscribe}),i.allowHosts=r.allowHosts,i.networkSubscribe=r.networkSubscribe,i}return Se(r,t),r.prototype.setAllowHosts=function(e){this.allowHosts=e,this.cubeTextureLoader.setAllowHosts(e)},r.prototype.load=function(t,r){var i=this,n=Qe,s=Qe,o=Qe,a=Qe;"function"==typeof r?(n=r.bind(this,null),o=r.bind(this),a=r.bind(this)):(r.onLoad&&(n=r.onLoad),r.onProgress&&(s=r.onProgress),r.onError&&(o=r.onError),r.onAbort&&(a=r.onAbort));var u=null,c=[0,0],l=function(){u=null,i.prevRequest=null},h=function(e,r){c[r]=e;var n=.8*c[0]+.2*c[1];s(n),i.emit("progress",n,t)};this.cubeTextureLoader.load(t,{onLoad:function(r){h(0,1);var s=t.images.depth;u=Ni(s,(function(s){var o=Object.assign(function(t,r,i,n){var s=new e.ShaderMaterial({side:e.BackSide,vertexShader:In,fragmentShader:bn,transparent:!0,uniforms:e.UniformsUtils.clone(zn)}),o=t;o.needsUpdate=!0,o.minFilter=e.LinearFilter,o.magFilter=e.LinearFilter;var a=r instanceof e.Texture?r:new e.Texture(r);return a.needsUpdate=!0,a.minFilter=e.LinearFilter,a.magFilter=e.LinearFilter,s.uniforms.opacity.value=0,s.uniforms.panoMap.value=o,s.uniforms.panoDisplacementMap.value=a,s.uniforms.panoPosition.value=i,s.uniforms.panoMatrix.value=n,Object.assign(new e.Mesh(On,s),{frustumCulled:!1,dispose:function(){this.material instanceof e.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(r,s,t.position,t.matrix),{hash:r.hash,meta:r.meta});h(1,1),n(o),i.emit("load",o,t)}),(function(e){r.dispose(),o(e),l()}),(function(e){h(e,1)}),(function(){r.dispose(),a(new Error("source load abort: "+s)),l()}),i.allowHosts,i.networkSubscribe)},onError:function(e){o(e),l()},onAbort:function(e){a(e),l()},onProgress:function(e){h(e,0)}}),this.prevRequest={abort:function(){i.cubeTextureLoader.abort(),null==u||u.abort()}},this.emit("start",t)},r.prototype.abort=function(){this.prevRequest&&(this.prevRequest.abort(),this.prevRequest=null)},r}(Nt),Ln=function(t){function r(e){var i=this,n=r.parseArgs(e);(i=t.call(this,n)||this).maxAccessibleDistance=n.maxAccessibleDistance,i.panoCircleMeshCreator=n.panoCircleMeshCreator,i.model.setMaterial({perspToOrtho:0});var s=i.getBounding();return i.boundingMesh=ht(s),i.boundingMesh.setMaterial(i.model.getMaterial()||{}),s.containsPoint(i.camera.pose.offset)||(i.boundingMesh.visible=!1),i.boundingMesh.renderOrder=2,i.boundingMesh.frustumCulled=!1,i.scene.add(i.boundingMesh),i.panoCircleMeshes=[],i.updatePanoCircleMeshes(),i.panoCircleMeshes.forEach((function(e){return e.visible=!1})),i.helper.remove(i.intersectMesh),i.depthTextureLoader=new Sn(i.renderer,{allowHosts:i.work.allowHosts,networkSubscribe:i.networkSubscribe}),i.depthTextureLoader.on("start",(function(e){var t,r=e.index;null===(t=i.panoCircleMeshes[r])||void 0===t||t.setProgress(0),i.emit("textureStartLoad",r,i.work.observers[r])})),i.depthTextureLoader.on("progress",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(e),i.emit("textureLoading",e,n,i.work.observers[n])})),i.depthTextureLoader.on("abort",(function(e){var t,r=e.index;null===(t=i.panoCircleMeshes[r])||void 0===t||t.setProgress(0),i.emit("textureAbort",r,i.work.observers[r])})),i.depthTextureLoader.on("load",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(1),i.emit("textureLoaded",n,i.work.observers[n],e.meta)})),i.depthTextureLoader.on("error",(function(e,t){var r,n=t.index;null===(r=i.panoCircleMeshes[n])||void 0===r||r.setProgress(0),i.emit("textureError",e,n,i.work.observers[n])})),i.once("panoWillArrive",(function(){i.boundingMesh.visible=!0,i.needsRender=!0,i.model.visible=!1})),i}return Se(r,t),r.parseArgs=function(e){var r,i,n=t.parseArgs.call(this,e);return Le(Le({},n),{maxAccessibleDistance:null!==(r=e.maxAccessibleDistance)&&void 0!==r?r:5,panoCircleMeshCreator:null!==(i=e.panoCircleMeshCreator)&&void 0!==i?i:Gi})},r.initAnimationEndPose=function(e){var r=this.parseArgs(e);return t.initAnimationEndPose.call(this,r)},r.prototype.getBounding=function(){for(var t=new e.Box3,r=0,i=this.work.observers;r<i.length;r++){var n=i[r].standingPosition.clone();t.expandByPoint(n),n.y+=3,t.expandByPoint(n)}return t.max.x+=4,t.min.x-=4,t.max.z+=4,t.min.z-=4,t},r.prototype.updatePanoCircleMeshes=function(){var t=this,r=[],i=this.model;this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(e){e.loading&&r.push(e.panoIndex),t.helper.remove(e),e.dispose()})),this.panoCircleMeshes.length=0);var n=new e.Vector3(0,-1,0);this.panoCircleMeshes=this.work.observers.map((function(s,o){var a=t.panoCircleMeshCreator();if(a.position.copy(s.standingPosition),t.model.loaded){var u=a.position.clone().add(new e.Vector3(0,1,0)),c=new e.Raycaster(u,n,0,1),l=i.intersectRaycaster(c)[0];l&&(a.position.copy(l.point.clone()),a.needsRender=!0)}return a.name="panoCircle_"+o,a.panoIndex=o,t.helper.add(a),a.needsRender=!0,!1===s.active&&(a.setDisabled(!0),r.indexOf(o)>=0&&(a.setDisabled(!1),a.setLoading(!0))),a}));var s=this.work.observers[this.currentPanoIndex].visibleNodes;s=s.filter((function(e){var r=t.work.observers[e];return r.loadable||r.active})),this.panoCircleMeshes.forEach((function(e){e.visible=s.indexOf(e.panoIndex)>=0}));var o=this.camera.position;this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))}))},r.prototype.destroy=function(){var e=this;t.prototype.destroy.call(this),this.depthTextureLoader.off(),delete this.pendingLoadTextureHashAndCallback,this.model&&(this.model.visible=!0),this.panoModel&&(this.scene.remove(this.panoModel),this.panoModel.dispose(),delete this.panoModel),this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoCircleMeshes&&(this.panoCircleMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoCircleMeshes.length=0)},r.prototype.moveToPano=function(t,r,i){var n=this;void 0===r&&(r={}),this.ready=!1,this.interiaMovement=!1;var s={index:t,images:this.work.observers[t].images,imageOptions:this.imageOptions},o=gi.u(s),a=function(e,s){if(e)return r.moveCancelCallback&&r.moveCancelCallback(),n.emit("panoLoadError",e,t),n.emit("moveToPanoCanceled",t),void(n.ready=!0);n.destroyed?null==s||s.dispose():(n.emit("panoLoaded",t),qe((function(){return n.doMoveToPano(t,s,r,i)})))},u=this.pendingLoadTextureHashAndCallback||[],c=u[0],l=u[1];if(o!==c){if(delete this.pendingLoadTextureHashAndCallback,l&&l(new Error("texture aborted")),this.emit("moveToPano",t,i),this.emit("panoWillLoad",t),!s.images)return void a(new Error("pano images were not existed"));if(!s.images.depth)return void a(new Error("pano depth image were not existed"));var h=this.work.observers[t],d=h.position,p=h.quaternion,f=(new e.Matrix4).compose(d,p,new e.Vector3(-1,1,1)),A=Object.assign({position:d,matrix:f},s);this.pendingLoadTextureHashAndCallback=[o,a],this.depthTextureLoader.load(A,(function(e,t){var r=n.pendingLoadTextureHashAndCallback||[],i=r[0],s=r[1];o===i&&s?(s(e,t),delete n.pendingLoadTextureHashAndCallback):null==t||t.dispose()}))}},r.prototype.updateCamera=function(e,r,i){var n=this;t.prototype.updateCamera.call(this,e,r,i),this.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(n.camera.pose.offset);e.setOpacity(Math.min(1/t,1))}));var s=this.getForwardPanoIndexOrNot();null!==s&&this.panoCircleMeshes[s].setOpacity(1),Yt()},r.prototype.canNotMoveAnimation=function(){var e=this;if(this.interiaMovement=!1,!this.tweenCoordinates){var t=this.camera.fov,r=.98*t,i=function(t){var r=t.fov;return e.updateCamera({fov:r},!0,!0)};this.tweenCoordinates=Yr({fov:t},{fov:r},200).onUpdate(i).onComplete((function(){var n;null===(n=e.tweenCoordinates)||void 0===n||n.destroy(),e.tweenCoordinates=Yr({fov:r},{fov:t},200).onUpdate(i).onComplete((function(){var t;null===(t=e.tweenCoordinates)||void 0===t||t.destroy(),delete e.tweenCoordinates}))}))}},r.prototype.doMoveToPano=function(t,r,i,n){var s,o,a,u=this;void 0===i&&(i={});var c=i.limit,l=void 0===c||c,h=i.easing,d=void 0===h?Qr.Quadratic.InOut:h,p=this.currentPanoIndex,f=this.panoModel,A=this.currentPanoIndex,M=this.work.observers[t];if(f){var g={pano0Map:f.material.uniforms.panoMap.value,pano0Matrix:f.material.uniforms.panoMatrix.value};f.material.uniforms.opacity.value=1,this.boundingMesh.setMaterial(g)}r.renderOrder=-1;var y={progress:0,pano1Map:r.material.uniforms.panoMap.value,pano1Matrix:r.material.uniforms.panoMatrix.value};r.material.uniforms.opacity.value=0,this.boundingMesh.setMaterial(y),this.model.setMaterial(y),this.panoModel=r,this.scene.add(r);var v=M.visibleNodes.filter((function(e){var t=u.work.observers[e];return t.loadable||t.active})),m=this.camera.pose.offset.distanceTo(M.standingPosition),N=void 0===f?0:this.calculateMovingDuration(i.duration,m),D=this.camera.pose.longitude,w=this.camera.pose.latitude,T=this.camera.pose.offset.clone(),x=this.camera.fov,E=null!==(s=i.longitude)&&void 0!==s?s:D,j=null!==(o=i.latitude)&&void 0!==o?o:w,I=M.position,b=null!==(a=i.fov)&&void 0!==a?a:x,z={longitude:E,latitude:j,fov:b,offset:I.clone()};if(this.tweenCoordinates&&(this.tweenCoordinates.destroy(),delete this.tweenCoordinates),this.tweenPosition&&(this.tweenPosition.destroy(),delete this.tweenPosition),i.moveStartCallback&&i.moveStartCallback(t,z),this.emit("panoWillArrive",t,z,n),this.needsRender=!0,D!=D||w!==j||x!==b){var O=function(e){var t=e.progress,r=Zr(D,E,t),i=Wr(w,j,t),s=Wr(x,b,t);u.updateCamera({longitude:r,latitude:i,fov:s},n,l),u.needsRender=!0},S=function(){return O({progress:1})};N>0?this.tweenCoordinates=Fr(N,d).onUpdate(O).onComplete((function(){var e;null===(e=u.tweenCoordinates)||void 0===e||e.destroy(),delete u.tweenCoordinates,S()})):S()}var L=function(){u.panoCircleMeshes.forEach((function(e){e.visible=v.indexOf(e.panoIndex)>=0})),r.material.uniforms.opacity.value=0,r.material.depthTest=!0,f&&(u.scene.remove(f),f.material.uniforms.panoMap.value.dispose(),f.dispose()),u.updateCamera({offset:I},n,l);var e={progress:1,pano1Map:r.material.uniforms.panoMap.value,pano1Position:r.material.uniforms.panoPosition.value,pano1Matrix:r.material.uniforms.panoMatrix.value,pano0Map:r.material.uniforms.panoMap.value,pano0Position:r.material.uniforms.panoPosition.value,pano0Matrix:r.material.uniforms.panoMatrix.value,modelAlpha:0};u.boundingMesh.setMaterial(e),u.model.setMaterial(e),u.panoCircleMeshes[t]&&u.panoCircleMeshes[t].setProgress(0),i.moveEndCallback&&i.moveEndCallback(t,u.camera.copyPose()),u.currentPanoIndex=t,u.preventTapGesture=!1,qe((function(){u.emit("panoArrived",t,u.camera.copyPose(),n),u.ready=!0})),u.needsRender=!0};this.preventTapGesture=!0,N>0&&A!==t?(this.panoCircleMeshes.forEach((function(e){return e.visible=!1})),r.material.depthTest=!1,f&&(f.material.depthTest=!1),this.tweenPosition=Fr(N,d).onUpdate((function(i){var s=i.progress,o=new e.Vector3(Wr(T.x,I.x,s),Wr(T.y,I.y,s),Wr(T.z,I.z,s));u.updateCamera({offset:o},n,l);var a=(Math.min(Math.max(s,.1),.9)-.1)/.8,c={modelAlpha:Wr(1,0,a)};r.material.uniforms.opacity.value=Wr(0,1,a),f&&(f.material.uniforms.opacity.value=1),u.boundingMesh.setMaterial(c),u.model.setMaterial(c),u.panoCircleMeshes.forEach((function(e){var t=e.position.distanceTo(o);e.setOpacity(Math.min(1.5/t,1))})),s>.7&&(u.preventTapGesture=!1),u.emit("movingToPano",t,p,s),u.needsRender=!0})).onComplete((function(){u.tweenPosition&&(u.tweenPosition.completed=!0,u.tweenPosition.destroy()),delete u.tweenPosition,L()})).onCancel((function(){i.moveCancelCallback&&i.moveCancelCallback(),u.emit("moveToPanoCanceled",t)}))):L()},r.prototype.getForwardPanoIndexOrNot=function(t){var r=this,i=this.camera,n=this.currentPanoIndex,s=this.work.observers[n].accessibleNodes;s=s.filter((function(e){var t=r.work.observers[e];return t.loadable||t.active}));var o,a=i.getWorldDirection(new e.Vector3);o=t?t.ray.direction.clone():a.clone();var u=i.pose.offset.clone();o.y=u.y=0;for(var c=0,l=s.filter((function(e){return r.work.observers[e].standingPosition.clone().sub(i.pose.offset).angleTo(a)<i.fov/2/180*Math.PI})).map((function(e){var t=r.work.observers[e].standingPosition.clone();return Object.assign(t,{y:0,panoIndex:e})})).sort((function(e,t){return e.distanceTo(u)-t.distanceTo(u)}));c<l.length;c++){var h=l[c],d=h.clone().sub(u);if(d.length()&&o.angleTo(d)<Math.PI/6)return h.panoIndex}return null},r.prototype.onTapGesture=function(t){var r=this;if(this.interiaMovement=!1,!0!==this.preventTapGesture){var i=this.camera,n=this.panoCircleMeshes,s=null,o=void 0,a=this.work.observers[this.currentPanoIndex].accessibleNodes;a=a.filter((function(e){return r.work.observers[e].position.distanceTo(i.pose.offset)<r.maxAccessibleDistance}));var u=this.relativeClientPosition(t.center),c=new e.Raycaster;c.setFromCamera(u,i);var l=t.pointers.map((function(e){return{x:e.x,y:e.y}}));if(!this.emit("wantsGesture","tap",l,!0)&&!this.emit("wantsTapGesture",c,u)){var h=c.intersectObjects(this.boundingMesh.children)[0];if(h){var d=h.point.clone(),p=ci(n.filter((function(e){return a.indexOf(e.panoIndex)>=0})),(function(e){return e.position.distanceTo(d)}),!0),f=p[0];if(p[1]<1){var A=h.point.clone();s=f.panoIndex;var M=i.getWorldDirection(new e.Vector3).setY(0),g=(new e.Vector3).copy(A).setY(0).sub(i.pose.offset.clone().setY(0));if(M.angleTo(g)>Math.PI/6){var y=g.x,v=g.z;o={longitude:Math.atan2(-y,-v)}}}}if(Re(s)&&!Re(s=this.getForwardPanoIndexOrNot(c))&&h){var m=h.point,N=this.work.observers[s].position.clone();M=m.clone().setY(0).sub(i.getWorldDirection(new e.Vector3).setY(0)),g=m.clone().setY(0).sub(N.clone().setY(0)),Math.abs(m.y-N.y)<.5&&M.angleTo(g)>Math.PI/6&&M.angleTo(g)<Math.PI/3&&(y=g.x,v=g.z,o={longitude:Math.atan2(-y,-v)})}if(Re(s))this.canNotMoveAnimation();else{var D=this.work.observers[s];this.emit("panoSelected",s),this.emit("gesture","tap",l,!0),this.emit("tapGesture",c,u),D.active?this.emit("wantsMoveToPano",s,o||{},!0):this.panoCircleMeshes[s]&&(this.panoCircleMeshes[s].setDisabled(!1),this.panoCircleMeshes[s].setLoading(!0))}}}},r}(Li),Cn=["Panorama","DepthPanorama","Model"],kn={Floorplan:Ai,Topview:Mi,Panorama:gn,VRPanorama:En,Model:jn,DepthPanorama:Ln};function Pn(e){for(var t=0,r=Cn;t<r.length;t++){var i=r[t];if("string"==typeof e){if(i===e)return!0}else if(e instanceof fi&&e instanceof kn[i])return!0}return!1}var _n=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError"];function Bn(e){for(var t,r,i={},n=0,s=e.split(/(\;|\,)/);n<s.length;n++){var o=s[n].split("="),a=null===(t=o[0])||void 0===t?void 0:t.trim(),u=null===(r=o[1])||void 0===r?void 0:r.trim();a&&u&&(i[a]=u)}return i}function Un(){for(var e,t=document.getElementsByTagName("meta"),r=0;r<t.length;r++){var i=t[r];if("viewport"===i.getAttribute("name")){var n=Bn(null!==(e=i.getAttribute("content"))&&void 0!==e?e:""),s=Number(n["initial-scale"]);if(!isNaN(s))return s}}return 1}var Rn=[351,63],Qn=[20,20],Yn=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Fn=new Float32Array([0,0,1,0,0,1,1,1]),Vn=new Uint8Array([0,1,2,1,3,2]),Hn=new e.BufferGeometry;Hn.setAttribute("position",new e.BufferAttribute(Yn,3)),Hn.setAttribute("uv",new e.BufferAttribute(Fn,2)),Hn.setIndex(new e.BufferAttribute(Vn,1));var Gn=new e.MeshBasicMaterial({transparent:!0,depthTest:!1}),qn=new e.Mesh(Hn,Gn),Wn=new e.Scene;Wn.add(qn);var Zn=new e.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Zn.position.set(0,0,.5),Zn.lookAt(0,0,0);var Xn=new e.Vector4,Kn=new e.Vector4;function Jn(t){if(Gn.map){var r=t.getViewport(Xn),i=t.getScissor(Kn),n=t.getScissorTest(),s=t.autoClear;t.setViewport(i.x+Qn[0]/3,i.y+Qn[1]/3,Rn[0]/3,Rn[1]/3),t.setScissor(i.x+Qn[0]/3,i.y+Qn[1]/3,Rn[0]/3,Rn[1]/3),t.setScissorTest(!0),t.autoClear=!1,t.render(Wn,Zn),t.setViewport(r),t.setScissor(i),t.setScissorTest(n),t.autoClear=s}else{var o=new e.Texture,a=new Image;a.onload=function(){o.image=a,o.wrapS=e.ClampToEdgeWrapping,o.wrapT=e.ClampToEdgeWrapping,o.minFilter=e.LinearFilter,o.needsUpdate=!0,Gn.needsUpdate=!0,a.onload=function(){}},a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR+0lEQVR4AezYg3LEQACH8d1cbdu23Q5qG9G47z/TN/h6tn2b/H+TUTLc7yjcOXV46OUAnUs6EbUp022ZBXc1NhoZYYd7fjDRvdcHAwrlK2QBVJ4sgoqONmY45RUT23sZ6H42F2hK5CtkMbjhZlDmUUcvq1zyieUVyjbE4I1GBfItwxG56YaUZTQwyh4P6NgJ4YYYvCuQb5kOyI03pORjiqe4Lwpq5pt1vJqfUwKWJVbSMYfppYconG+maNNQOWBZuwHTzicGel75NtFOkxr5apmV8cikcko0DrDQs863AeGl0cE0+1xy573m0/wf0cEKW6H7BWtggiMG8sy3oHRDpJMw4NWb6am/bv9znkqEzjd61t5oo5clTrjhwevO75EJRBKSRt745Z16ZEjcM73sccZplBPm8PyTcxZAkSRdHm/acJ0Z3JZhHB0BxqDHgWFZFmm0ZbCw87twI/zc3e/Cz93vPneXtU/WdQS3oTviXdY/q5PsJKfoGuQjZuO/0in1qsj85cuXrxqeAOJpGqdJOqrUutgVl2Qb0BWqp/RE8AWWVB7t2KrIzY2Wx2fWKl7yfswgxqj8lYummYa3hfwF9MuQRmbfQE4ocPDjtUWQ6Tq1M2w7gC2EcrMGtWS6xlpGKEDDcb1vUQ25zT4lrC2s0dU4gFPppKkbeIYr7NMpqjStuFg5rNU9epGyt8PXyfX4DE1bKLhR/1XPxwJhp5DAV67T9ZPwFdovhBMIGUYoRBN4wim6S3eoXVEHXdLgmwY0x6BQnO4xPJ0Ar5OVxhQF0L9UslRM4yaQQfQImnBegi8vhY2A1k6YLlrj61TwDdNQnIISwiPvpD7TwYQTssZXK47vg8y9Gp2nxRcATkozOEmdCeObSt3IIo+xf/00IDRKAaZ89PBTkHqpkA5LagKeNZKlIhqX8RcQ95GHtdYA62Y6rOg5LLsOSnoyvk4V38hFhytef+V9/3DER1P48W89o1GxE9o5vns2Mk+F7yiftafEN4nhmUv9DKEeyqI0U+l0CQg+B//sZ5+6lOuqKaTgm0LH41RHw/CsLZRk4huiYxrvP2SNr1OSS+Dr1ulBMR+K9SqHa58Oec49VgL3mXHvDr7QfuM7LMNrH1/IS30Moe64SLYBuFVJ+MbnJY7L+GrVQkFcl4ISx/fEll4ZWnz18DpcSzUCX602LqD9svDLzmdaLkP28P1+VsJjsx/4hmh6x/gmm/i6pbrGneCL9iCOg0dQUvF1UwEdVvG19r2uTXxXLz0J37eLjfZoF++tTtPnU/cWp5e8n3An0m/G+U7qjiy4PpHyV16HKx5flCxAV/H9A88nUnZ7l7KN78SBxPcQgzLAepxEScU3l7pZ6fL2+Dot8fXECfj+QRoGYAwlAfBSPrXQXQri0Pd85NJKcVw8XUdt1LZapk7YRhO1RdpmFJwW8ozekYvx2/fjM5Hr5MfQ95HvcY2a/9hoNK4yEntL+dEuGseTdNmxIPqd5v2YRjeaX8pQ8IW2ohuP7+dTN87RMK4aitx8XPsH0r2oBqNRqrv7+gmjjY7uIr6TBxBfL2MlxNRKSVp8S5CTuGgHXxfkFvh69Pq3LD4pkkd2bdRvHaSNC3/l2sQXAccdlIS+lc57qhPJwxPybT7XSxnUrdqnXuHlJHS+mjZfJfUZR9s2FuQR+EQKdSi9Am8UTnsEvlYS+L6TFwW6kl74Vjr6AFHsX89rgg8njRltK0XPOL7NyDL0IurV4VtMwafB1709vu9X4OjWHoP3z1Ii7eaQdG00Lx5n8HXyDSva/dU0Pq2vZnKYxHYMYRo1WY5ov1G7Vh4r3y+kMdgbilxeOrV0aqOFenFl8GGJig7rG0bbPRqiSRpP2AL0w+yon9dHbi43zFetnKcuw9ZLeSa+7kTw/TDfuFu0Z7Vp/uhyHfPkAZ5ufP9wLIfD49E3clR818rR089Lzyy+VRREPneICnYLX9cT8PVKQs36TbQ3i6NcCwYkxEAQ3phN4CjAvC4mFr5vrlKe7AizBKj8cu33s7i9GbeY7BHYujTjjd3Bx54SSyT4m8mxOoYOAGX/DtwvnGE1M+5v5Bgt1hbkJRW9Cxv9X81GL2i5jqaoJ4avBcCsLYp+Ru+VC5sWPpFhXt8/EPvJL2F/alJDEeIjUhcrP5P45rDeATPj+wKl7gBf1fcq+HpVnfHO1vEf//UCHgt/OxfDE3onj5UkfTaThrg3NCGoBUCtZjvgMnwQB0bG5XENeraJ5XEWvtiHkqSVRqN+uQ4lEx2o+69SeY1dC++Wcsj+LCW+H0ZE4KtDWHkGwCtrxstbFqr51e9wbz42E2fpjRQsqEn50PnM4eumO9IbujCi393Hd+3q72TI+p9DPyyfraF+c3rOx0KJyB2z7Fa1yCO8HoHzlDFhPiWD8XoB3aPppRrUQdRp1D8qE9exdgr+Zbpqf8BLfmZ/bMYbh87k58VCSswCjQoLPPw4Jnp4uFi/YQlfKB5eBd/gr6aqB973zbDAF+v5PN+NZEvm+84bSkhxUPE9C9wqbeJ7Hi+gA9Jr5ZM7x9el4mulyK0Bb2xiMTj3/iBtK77Tnii27H/MlCfsjcJY+2oTg2/U4TYWQERE0r+aCouBcx5zEZzEYrqui8JXsQW/X8FLHJ3IVbWXhQV3zAJCjFQst1F25y1arlXwhRR4Bb4rZ3VPy5d+bHEtHIPF27K16ItYuKXM5kHD10M9DKFeSpbqLlOYAlRiC99yCiDmbUf0206jPPO7b/iud71avBkHf+kQP0OrWHBFrhmt75ZyPzbLg5KmWK9oH4Oq1eFZOm0c6n48mdfer46HcLUZU3pGB8R9IDBbJ+N7v1q0J2xhudZ45tcL8PN16vq9WizwtRLwFQtKER+NDypj4QQOdJNY3NC7GEsaGtiSmDsA+CZhyx+hXFHjYrgGGXpZNvDNpn5gWWuiWkUtyEB0UcrO8Y2L9KI9K+cXLmxqruGd6pcKfycj/ij3URVgu6bPUaycN1qXTHD+KoOmjGORnH57q8rh+e9sTHk5r1+7zpEXk36bp7iiXRrBW61e5k/D0fn+EXF/OxYEypFW3ZH1HzPt4Pv5PN2Rd7VJLDZeboGnbpSPwPDcBw5f6AIysadFOR9Hr7vksoFvE91jdbdYvzpYqyIvdQPU87uKL45u3u213CA8qkYPT6H1YgwIfkz7RI5xJdomfjoV4PXjfjgaRkNGhHwG1mNt1oq0y/j+SaZ5pV0LnrlG89Dl1YkmEsc3nKKzMKskJD+fx6NhlFiohdTe5EsZIig5WPgWUYCC9Dx5TG/sA5x15LCBbzXDtx/+uh74VmMZjLDamh8JvhzQtSsoeVTNNXB/Euv96LRR/qjO+By5xTxxJ683/FB00Pj0fZz9F2GPa70Ld2hbbVptWmjWabbGCl/ZAiTsbJa5hQ9OK/eWFE4xva9nG3z1zwCtnFXjYr6c3ykxPn9QiYWEWPhA4uuiDnzBpt4EMcg0QOm28M0gP76hJuELbIdZi4PqaILpJI+RYz4ZV42y+q49wBcxIbyXTmtXgevRWPl3MmjSSJU5vB3J0TA2Uu8mtP+R5/Au4iiF6NrUUiuCieOiJpnJq8gSXzwFLFiLP8X6bV0bYvzt8TXj75eLtKPRauY1RM1HR7GwEHpFbonIWAPwjxpfqJSCyBVUsk/DFOChhC18kyiPHFvwdVGh6XFbmfLx+RRi4jaqYiCnUDO1wc4u4ovo7pfS+XFD32e9GzndwxJiHcbQ/Vz6JrBMDGYyYK5l7YOsfkS2MVePfGkLsNXLGl9hIVbWXAv9fQ5i/j6UFL1RaQffB9qlwn3tS4WxMhaxETCMz6T9ZTqCk5FznoOKL9SEXMMIUwAZW6dNfCEVX61azdxwmIbg4aHdwtcj5KVBeNiqrb2+g5M8hTskSB6exHZ5bMEIF/wCoOT128zvdXziMLbvuDu/Usmh0oG7doMmafKNSmt8hQWUnmzhjJf/RskXCzQL8aYNfLG/QPGLY5KjKtcuNPGsyGytmj0/kPi6qdXwwJCPvOTYI3zTaICCNEh9FGSWM54OX4+A1UI80RV98czWKceJf65ervsleJm164/7ganACHHn+IPz8Nby1ptcnRztRWbipArvp4/gRchodbIFvsBSWPBaW+CHtzWfauFfcmnKRuyr+Fiu1WbzGKtCPWWMHjIgU1/Mgn2B74GKfbkajHwtVIHy3uBbh0Ocj9oplCC+kIJvYuKvI9bbkUUQ2+JaG7AeknwvhLd0YUxx+SZIf4XkGeqHUCNt9N8sQdvYlwtl9H4hMzqI5dHosMIX2taCl2s6LRowaubPyld/IgcvHBJPnKGnHDLh0ArfqzlYtkv5D8++4RsAvPbwTaJzgDcIDzxIRXuEbx4NIsYupjt7gi/6idL3j1AIqPY+OPH5PGO67x/jUS9NvF6hTte7x2kaCvtSZJiMlxjxMSqEtqXr3GPMn/9y4cXUypS/ymPxbIAvmurtYl9o7dqmBV9KdbLOgsik4B3d6xW/lO7w/kfe+yfx7bFuGkwY3/C6sURDj8584rCxJH5QtnYFVrFQVL35HNoQgO0jvt228XVRC4WQPLtANyiEzb1gD/BNoy5kHa5QEnUmiq/uG2fubeXh+kwuNj8IRxAoOqiLIqfTaNw84SfLWsDmqo08k30prHVKbHuYDo7ez6U7EsLX0oJX1ltV2AOg2KfoMPPA/sTx/ZPMqF9YiN11AsHLFrHgaAT3GBvw7hO+U9TH4bX10rgVx7YgMr0p7Pow4tL8XcY3l1kJMfVQmsA3fa/wFQh3JK9eivtV+tCaD4cUjdZvIRI9BfDUDd6PkkbfKhVbOJf/jUpuQcXXlgVNv68ejr4gTflk5AZ71+jR4AvEdPg6PDNpaz6a2AQm2otoWKvVS+LVTyL4OnaE7wSNUjfdpnZb+KbQdcA7Jr5ek0od8MD9dNjiN43t4etk1v0ITfyw6gS+Q4l5XwGwbXli+u/sj6pWGu9XfyYXx75d18+lf6t0tnau/pXKv8+xzorIkltn0l4r2dYCXlO8XDRbu9xw/9g/Zko2FXSFtKPxOxn3q+caluteK5lJsboXwVP/S27cPVz28X3i3/Ll/v8eDVMPDmzwvDbwddMt+NoROhq3yXcC4D7KpmTyA+XnqEzSFQrawDeLrsNemHrEL2+24r7NlENZUMa2vyxkH2DIs628e669ubdsR4VXC7C9u79eIVJtOwgdgO/dOICHGK6jQHaIwdXN4Lwt0LWHr4d6kX8tV+ozqAs+uYCSmO2w+jd4zGNeUYL4nqZxeN5WKVgooSAClmEaYhqhdit89QC7niSbCEM2sdkBuHYxQg9ri5ZjkuhI6DMP+J7cTvEtokEx0aPscyddoFJKpSZqV7G1GTxcpmEthpnw5058c6GfwqpwzGOtGjXSJI3FLYhc+O+jSr9aGhPWQlRshS8AticLX7wnsgbXxt6gsWCpRBa0vRGQM8oB9dhmP3QAwFX4c079dJNq6Qi5xbuyTmpPSJ1Ur4UtF7GoTtmUL3zxaWqMU8P/k3cXSQ1EQRjHGdzdHTa4u7tzBs7CedhykNwF2/5jq56iU11db6Lv2yTj8hs3JoiU9sZZp5/62J5v1z9NjrDHaSbnbFMf52sHrDUVaidDxNG0o9+uLjfosfdb3jT5d5j757riJgst9NIZQ2Pn+ySZll80vjI6Wz/hQJG4vPG0L/H6poQch/dW3vL3B0u8jl0HvVj5PvHCElEF8DUAFikVYTcvmfBdDzQlvvMXSV5lP5zrXj/fJ54zuWaeeuoqkW8AwCIaqeTZKkmYrpPwR2eqN9X72W7EG57vU67OBeuMV8KXLUzv93UTTj42tvaFS++GVsc5JRyLSLJ8nzO555hFBmiSRCqMr4GwrcmGkib5xSvcwmzFK6e8s7DMa2xH4YZdZumSOwsVzFeBWdr37tpIhOpSwXqONNgZq/2KgvBt54znHN1HzlljTO4oVD5fb+prNIJXQNL1ofDKQisbPLJDv3jNSLq9OkYBEIihKIj3v7S1TRQCX5Kdl1ZQlol7LF+E++fwirfiq2sf4cTXxc6hzxffPuLEeqSWrPGWMF58TWr5viyJAP5/4EV4KePiaSE8eNRgjDy8/tyRW+FZjhS+2tlovNJovtJovNJ0uhK6Wo64SDdxEbM//KesjwAAAABJRU5ErkJggg==",Gn.map=o}}var $n=new e.Box3(new e.Vector3(-50,-50,-50),new e.Vector3(50,50,50)),es=new e.Vector2,ts=new e.Frustum,rs=new e.Matrix4,is=new e.Clock,ns=new WeakMap,ss=function(t){function r(r){var i,n,s,o,a,u,c,l,h,d,p,f,A,M,g;void 0===r&&(r={});var y=t.call(this)||this;if(y.ident=Fe(),y.panoIndex=0,y.needsRender=!1,y.onlyRenderIfNeeds=null===(i=r.onlyRenderIfNeeds)||void 0===i||i,y.maxFps=null!==(n=r.maxFps)&&void 0!==n&&n,y.imageOptions=r.imageOptions||{},y.textureOptions=r.textureOptions||y.imageOptions||{},y.poweredByRealsee=null===(s=r.poweredByRealsee)||void 0===s||s,y.extraElements=[],y.controllerInits={Panorama:null!==(o=r.panorama)&&void 0!==o?o:{},Model:null!==(a=r.model)&&void 0!==a?a:{},Floorplan:null!==(u=r.floorplan)&&void 0!==u?u:{},Topview:null!==(c=r.topview)&&void 0!==c?c:{},DepthPanorama:null!==(l=r.depthPanorama)&&void 0!==l?l:{},VRPanorama:null!==(h=r.vrPanorama)&&void 0!==h?h:{}},y.modeChangeDuration=null!==(d=r.modeChangeDuration)&&void 0!==d?d:1e3,y.panoramaLikeSavedPose={},"undefined"!=typeof window)if(r.renderer)r.renderer instanceof Ue&&y.throwError(new Error("cannot render a internal renderer")),y.renderer=r.renderer;else try{y.renderer=new Ue({preserveDrawingBuffer:r.preserveDrawingBuffer,backgroundColor:r.backgroundColor,backgroundAlpha:r.backgroundAlpha,antialias:r.antialias});var v=Un();y.renderer.setPixelRatio(1===v?window.devicePixelRatio:1),y.renderer.setSize(512,512)}catch(e){e instanceof Error&&y.throwError(e)}y.getPixelsRenderTarget=new e.WebGLRenderTarget(1,1,{encoding:null!==(f=null===(p=y.renderer)||void 0===p?void 0:p.outputEncoding)&&void 0!==f?f:e.sRGBEncoding}),y.scissor=Object.assign({left:0,bottom:0,width:1,height:1},r.scissor),y.camera=new _e(80),y.scene=new Be,y.lastLoadWorkTask=Promise.resolve(),y.networkSubscribe=new Ot,y.networkSubscribe.on("network",(function(e,t,r){var i;y.emit("network",e,t,r),null===(i=y.analysis)||void 0===i||i.network(y.work,e,t,r)})),y.model=new Dr({allowHosts:[],networkSubscribe:y.networkSubscribe});var m=ht($n);if(y.model.add(m),y.model.visible=!1,y.model.name="model_empty",y.model.empty=!0,y.model.loaded=!1,y.readyCallbacks=[],y.modelPending=!1,y.scene.add(y.model),y.helperGroup=new e.Group,y.helperGroup.name="helper",y.scene.add(y.helperGroup),y.videoTexture=new e.VideoTexture(r.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),y.plugins={},r.plugins)for(var N=0,D=r.plugins;N<D.length;N++){var w=D[N];if("function"==typeof w)w(y);else if(Array.isArray(w)){var T=w[0],x=w[1],E=w[2],j=T(y,E);"string"==typeof x&&(y.plugins[x]&&y.throwError(new Error("plugin name "+x+" is exists.")),y.plugins[x]=j)}}return function(t){(r=new e.DirectionalLight(16777215,.5)).position.copy(new e.Vector3(1,1,1)),t.add(r);var r=new e.DirectionalLight(16777215,.3);t.add(r),r=new e.AmbientLight(16777215,.3),t.add(r)}(y.scene),y.state={mode:null!==(A=y.currentMode)&&void 0!==A?A:Kr,panoIndex:null!==(M=y.panoIndex)&&void 0!==M?M:0,longitude:y.camera.pose.longitude,latitude:y.camera.pose.latitude,fov:y.camera.pose.fov,offset:y.camera.pose.offset.clone()},y.stateSynced=!1,y.destroyed=!1,y.paused=!0,"undefined"!=typeof window&&(!1!==r.play&&y.play(),!1!==(null!==(g=r.initialBasisLoader)&&void 0!==g&&g)&&("string"==typeof r.initialBasisLoader?y.initBasisLoader(r.initialBasisLoader):y.initBasisLoader()),We((function(){return y.syncState()}))),y}return Se(r,t),r.prototype.dispose=function(){if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var e=this.getElement();e&&e.parentNode&&e.parentNode.removeChild(e),this.scene.remove(this.model);var t=this.model.getMaterial();t&&(t.pano0Map&&t.pano0Map.dispose(),t.pano1Map&&t.pano1Map!==t.pano0Map&&t.pano1Map.dispose()),this.renderer instanceof Ue&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},r.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.resize&&this.controller.resize()},Object.defineProperty(r.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),r.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Ue){var r=this.getElement();if(r){e.appendChild(r),this.refresh(t);var i=window.getComputedStyle(e).position;"relative"!==i&&"absolute"!==i&&"fixed"!==i&&"sticky"!==i&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},r.prototype.refresh=function(t,r){if(void 0===t&&(t={}),this.renderer){var i=this.getElement();if(i){var n=i.parentNode;if(n&&n.nodeName){var s=t.width,o=void 0===s?n.offsetWidth:s,a=t.height,u=void 0===a?n.offsetHeight:a;this.renderer instanceof Ue&&(r&&this.renderer.setPixelRatio(r),this.renderer.setSize(o,u))}var c=this.renderer.getSize(new e.Vector2);this.camera.aspect=c.x/c.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.resize&&this.controller.resize(),this.needsRender=!0}}},r.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},r.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},r.prototype.getPose=function(){return this.camera.copyPose()},r.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},r.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},r.prototype.updateCamera=function(t,r,i){var n=this;return void 0===i&&(i=!0),new Promise((function(s,o){if(n.controller){var a=n.getPose(),u=a.longitude,c=a.latitude,l=a.fov,h=a.offset,d=t.longitude,p=void 0===d?u:d,f=t.latitude,A=void 0===f?c:f,M=t.fov,g=void 0===M?l:M,y=t.offset,v=void 0===y?h.clone():y;!1===i&&(n.state.longitude=p,n.state.latitude=A,n.state.fov=g,n.state.offset=v),n.controller.tweenCoordinates&&(n.controller.tweenCoordinates.destroy(),delete n.controller.tweenCoordinates),n.tweenCoordinates&&(n.tweenCoordinates.destroy(),delete n.tweenCoordinates);var m=n.tweenCoordinates=Fr(r,Qr.Linear.None).onUpdate((function(t){var r,s=t.progress,o=Zr(u,p,s),a=Wr(c,A,s),d=Wr(l,g,s),f=new e.Vector3(Wr(h.x,v.x,s),Wr(h.y,v.y,s),Wr(h.z,v.z,s));null===(r=n.controller)||void 0===r||r.updateCamera({longitude:o,latitude:a,fov:d,offset:f},i,!0)})).onCancel((function(){for(var e=0,t=D;e<t.length;e++)(0,t[e])();delete n.tweenCoordinates,o(new Error("updateCamera animation canceled"))})).onComplete((function(){for(var e=0,t=D;e<t.length;e++)(0,t[e])();m.destroy(),delete n.tweenCoordinates,s()})),N=function(){return m.destroy()},D=[n.on("gesture",N),n.on("load",N)]}else{var w=new Error("controller never initialized");o(w)}}))},r.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},r.prototype.getOffset=function(){return this.getPose().offset},r.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var t=this.work.observers[this.panoIndex],r=new e.Object3D;return r.position.copy(t.position),r.quaternion.copy(t.quaternion),r.scale.set(1,1,1),r.updateMatrixWorld(!0),function(t,r){var i=new e.Vector3(0,0,-1);i.applyQuaternion(t.quaternion);var n=r.quaternion.clone().inverse();return i.applyQuaternion(n),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,r)}},r.prototype.initBasisLoader=function(e){try{if(!this.renderer)throw new Error("renderer is not initialized.");if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&Kt.setTranscoderPath(e),Kt.workerConfig.format||Kt.detectSupport(this.renderer),Kt._allocateWorker(0)}catch(e){e instanceof Error&&this.throwError(e)}},Object.defineProperty(r.prototype,"work",{get:function(){var e=ns.get(this);if(e&&ni.get(e))return e},enumerable:!1,configurable:!0}),r.prototype.load=function(e,t,r,i){var n=this;if(void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized");var s=this.lastLoadWorkTask.then((function(){return!(s=e)||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof s.then?n.load_(e,t,r,i):e.then((function(e){return n.load_(e,t,r,i)}));var s}));return this.lastLoadWorkTask=s.catch((function(e){n.throwError(e)})),s},r.prototype.load_=function(e,t,i,n){var s,o,a,u,c,l,h,d,p,f=this;void 0===n&&(n=!0);var A,M,g,y=oi(e),v=this.work;void 0===t&&(t=v?"inherit":"initial"),"inherit"===t?(A="number"==typeof this.panoIndex&&y.observers[this.panoIndex]?this.panoIndex:y.initial.panoIndex,M=null!==(s=this.currentMode)&&void 0!==s?s:y.initial.mode,g={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===t?(M=null!==(o=this.currentMode)&&void 0!==o?o:y.initial.mode,A=y.initial.panoIndex,g=M===r.Mode.Panorama||M===r.Mode.DepthPanorama||M===r.Mode.Model||M===r.Mode.VRPanorama?{longitude:y.initial.longitude,latitude:y.initial.latitude,fov:y.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(A=null!==(a=t.panoIndex)&&void 0!==a?a:y.initial.panoIndex,M=null!==(c=null!==(u=t.mode)&&void 0!==u?u:this.currentMode)&&void 0!==c?c:Kr,g={longitude:null!==(l=t.longitude)&&void 0!==l?l:y.initial.longitude,latitude:null!==(h=t.latitude)&&void 0!==h?h:y.initial.latitude,fov:null!==(d=t.fov)&&void 0!==d?d:y.initial.fov}),this.emit("willLoad",e,y,{panoIndex:A,mode:M,longitude:g.longitude,latitude:g.latitude,fov:g.fov});var m=function(){var t;ns.set(f,y),f.panoIndex=A,f.panoramaLikeSavedPose.longitude=y.initial.longitude,f.panoramaLikeSavedPose.latitude=y.initial.latitude,f.panoramaLikeSavedPose.fov=y.initial.fov;var r=null!=i?i:void 0===v?0:f.modeChangeDuration,s={panoIndex:A,longitude:g.longitude,latitude:g.latitude,fov:g.fov},o=Le(Le({panoIndex:A,initial:[{longitude:g.longitude,latitude:g.latitude,fov:g.fov},r,n]},f.commonParams()),f.controllerInits[M]);f.controller?!1===f.controller.updateWork(y,s,r,!0)&&(f.controller.destroy(),f.controller=f.applyController(M,o)):f.controller=f.applyController(M,o),f.emit("load",e,y,{panoIndex:A,mode:M,longitude:g.longitude,latitude:g.latitude,fov:g.fov}),null===(t=f.analysis)||void 0===t||t.work(y)},N=function(e){var t,r;void 0===e&&(e=Qe),y.model&&((null===(t=null==v?void 0:v.model)||void 0===t?void 0:t.file)!==(null===(r=y.model)||void 0===r?void 0:r.file)?(f.emit("modelWillLoad",y.model),f.loadModel(y.model,y.allowHosts,e,!0)):e&&(!0===f.model.loaded?e():f.once("modelLoaded",(function(){return e()}))))};return M===r.Mode.Floorplan||M===r.Mode.Topview||M===r.Mode.Model?N((function(){m(),f.needsRender=!0})):(m(),null===(p=this.controller)||void 0===p||p.once("panoLoaded",(function(){f.needsRender=!0,N()}))),this.ready()},r.prototype.changeMode=function(e,t,i,n){var s=this;if(void 0===t&&(t={}),void 0===i&&(i=this.modeChangeDuration),void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(o,a){var u;if(!r.Mode.hasOwnProperty(e)){var c=new Error('mode "'+e+'" is not existed');return s.throwError(c),void a(c)}if(e!==r.Mode.Floorplan&&e!==r.Mode.Topview&&e!==r.Mode.Model||!Re(s.model)&&!0===s.model.loaded){if(Re(s.controller))return s.currentMode=e,s.panoIndex=null!==(u=t.panoIndex)&&void 0!==u?u:s.panoIndex,s.updateCamera(t,i);var l=s.controller,h=s.currentMode,d=function(){var u,c,d,p;if(s.emit("wantsChangeMode",e,h))a(new Error("change mode canceled."));else{if(s.controller&&h===e)e===r.Mode.Panorama||e===r.Mode.DepthPanorama||e===r.Mode.Model||e===r.Mode.VRPanorama?"number"==typeof t.panoIndex&&t.panoIndex!==s.panoIndex?s.controller.moveToPano(null!==(c=null!==(u=t.panoIndex)&&void 0!==u?u:s.panoIndex)&&void 0!==c?c:0,Le({duration:i},t),n):s.updateCamera(t,i,n).catch((function(){})):("number"==typeof t.panoIndex&&t.panoIndex!==s.panoIndex&&(s.panoIndex=s.controller.currentPanoIndex=t.panoIndex),s.updateCamera(t,i,n).catch((function(){})));else{l.destroy();var f=Le(Le({panoIndex:null!==(p=null!==(d=t.panoIndex)&&void 0!==d?d:s.panoIndex)&&void 0!==p?p:0,initial:[Pn(e)?s.panoramaLikeSavedPose:t,i,n]},s.commonParams()),s.controllerInits[e]);s.saveControllerPose(l),s.controller=s.applyController(e,f),s.controller.once("initAnimationWillStart",(function(t,r){s.emit("modeChange",e,h,t,r)})),s.emit("currentStateChange",s.getCurrentState(),n)}o()}};e===r.Mode.VRPanorama?("undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return d()})).catch((function(e){e instanceof Error&&(s.throwError(e),a(e))})):d()}else c=new Error("model is not ready."),s.throwError(c)}))},r.prototype.getPixels=function(t,r,i,n,s){if(void 0===s&&(s=1),!this.renderer)throw new Error("renderer is not initialized.");var o=this.getPixelsRenderTarget,a=this.renderer.getSize(new e.Vector2);t=Math.min(Math.max(t,Math.floor(i/2)),Math.floor(a.x-i)),r=Math.min(Math.max(r,Math.floor(n/2)),Math.floor(a.y-n)),t*=s,r*=s,i*=s,n*=s,o.setSize(a.x*s,a.y*s),o.scissor.set(t,r,i,n),o.scissorTest=!0,this.renderer.setRenderTarget(o);var u=new Uint8Array(i*n*4);return this.controller?this.controller.render(is.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(o,t,r,i,n,u),this.renderer.setRenderTarget(null),o.setSize(1,1),o.scissor.set(0,0,0,0),o.scissorTest=!1,u},r.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},r.prototype.pause=function(){},r.prototype.render=function(t,r){var i=this;if(void 0===r&&(r=!1),this.renderer){if(r){var n=this.renderer.getSize(new e.Vector2);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.screenBuffer&&null===this.renderer.getRenderTarget()){var s=this.getDrawingBufferSize(es);this.screenBuffer.setSize(s.x,s.y),this.renderer.setRenderTarget(this.screenBuffer),this.controller?this.controller.render(is.getDelta()):this.renderer.render(this.scene,this.camera),this.poweredByRealsee&&Jn(this.renderer),this.renderer.setRenderTarget(null);var o=wr(this.renderer.getContext());o&&this.throwError(o),t&&qe(t)}else this.aroundScissor((function(){if(i.renderer){i.controller?i.controller.render(is.getDelta()):i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&Jn(i.renderer);var e=wr(i.renderer.getContext());e&&i.throwError(e)}t&&qe(t)}))}},r.prototype.play=function(){var t=this;if(this.pause(),this.needsRender=!0,this.renderer){var i=He(),n=He(),s=0;this.paused=!1;var o=We((function(){var o,a;if(!0!==t.paused&&!t.destroyed&&t.renderer){var u=He();if(t.maxFps){if(u-i+1<=1e3/t.maxFps)return;i=u}var c=t.renderer.getSize(new e.Vector2),l=[];rs.multiplyMatrices(t.camera.projectionMatrix,t.camera.matrixWorldInverse),ts.setFromProjectionMatrix(rs),t.scene.traverse((function(t){t.setResolution&&t.setResolution(c.x,c.y),t.mixer instanceof e.AnimationMixer&&t.mixer.update(is.getDelta()),(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ts.intersectsObject(t))&&l.push(t)}));var h=!1;if(t.currentMode!==r.Mode.VRPanorama&&t.onlyRenderIfNeeds){for(var d=0,p=l;d<p.length;d++){var f=p[d],A=function(e){!0===e.needsRender?(e.needsRender=!1,t.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(t.needsRender=!0)};A(f),f.traverseAncestors(A)}t.controller&&!0===t.controller.needsRender&&(t.controller.needsRender=!1,t.needsRender=!0),!1!==t.needsRender&&(t.render(),h=!0)}else t.render(),h=!0;if(t.needsRender=!1,t.screenBuffer&&null===t.renderer.getRenderTarget()&&(null===(o=t.controller)||void 0===o?void 0:o.postProcessing)){var M=null===(a=t.controller)||void 0===a?void 0:a.postProcessing;t.aroundScissor((function(){return M(t.screenBuffer,is.getDelta())}))}t.hasListener("renderFrame")&&t.emit("renderFrame",h),t.hasListener("fps")&&(n&&u-n<1e3?s++:(n&&t.emit("fps",s),n=u,s=0))}}));this.pause=function(){t.paused=!0,o(),t.renderer&&t.renderer instanceof Ue&&t.renderer.clear(!0,!0,!0)}}},r.prototype.moveToPano=function(e,t,i){var n;if(void 0===t&&(t={}),void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized.");var s=this.moveToPanoQueue=this.moveToPanoQueue||[],o=this.controller,a=this.currentMode;if(o)if(a===r.Mode.Floorplan||a===r.Mode.Topview)s.length=0,delete s.dequeue,Re(e)||(this.panoIndex=e,this.changeMode(r.Mode.Panorama,t));else{if((null===(n=this.controller)||void 0===n?void 0:n.tweenPosition)||(s.length=0,delete s.dequeue),s.push([e,t,i]),s.length>2&&(s.length=2),s.dequeue)return;var u=function(){if(0!==s.length){var e=s.shift(),t=e[0],r=e[1],i=void 0===r?{}:r,n=e[2],a=Object.assign({},i);a.moveEndCallback=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return i.moveEndCallback&&(e=i.moveEndCallback.apply(this,t)),setTimeout(u),e},a.moveCancelCallback=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return i.moveCancelCallback&&(e=i.moveCancelCallback.apply(this,t)),setTimeout(u),e},o&&"moveToPano"in o&&qe((function(){return o.moveToPano(t,a,n)}))}else delete s.dequeue};s.dequeue=!0,u()}},r.prototype.preloadPano=function(e,t){var r=this;if(void 0===t&&(t=Qe),!this.work)return Promise.reject(new Error("work never loaded"));var i=this.work.observers[e],n=He();return Promise.all(["right","left","up","down","front","back"].map((function(t){var n=Le({key:["cube",e,t].join("."),basisLoaderInitialized:Kt.isInitialized()},r.imageOptions);return function(e,t){return void 0===t&&(t={}),e in Lt?Lt[e]:Lt[e]=new Promise((function(r){var i=document.createElement("link");i.href=e,i.rel="preload",i.as="fetch";var n=He(),s=document.head||document.getElementsByTagName("head")[0];s&&s.appendChild(i),i.onload=function(){var i;r();var s=He(),o={source:e,requestTime:n,responseTime:s,costs:s-n,headers:{}};null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"preload",JSON.stringify(o))}}))}(kt(i.images[t],n),{networkSubscribe:r.networkSubscribe})}))).then((function(){var e=He()-n;return t(e),e}))},r.prototype.project2d=function(t,r){if(void 0===r&&(r=!1),!this.renderer)return null;if(!1===this.model.empty&&r){var i=this.camera.position,n=t.clone().sub(i),s=new e.Raycaster(i,n.clone().normalize()),o=this.model.intersectRaycaster(s)[0];if(o&&o.distance+.01<n.length())return null}var a=t.clone().project(this.camera);if(Math.abs(a.z)>1)return null;var u=this.renderer.getSize(new e.Vector2),c=u.x*this.scissor.width,l=u.y*this.scissor.height,h=u.x*this.scissor.left+(a.x+1)/2*c,d=u.y*(1-this.scissor.bottom-this.scissor.height)+(1-a.y)/2*l;return new e.Vector2(h,d)},r.prototype.getRenderObjects=function(t){rs.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ts.setFromProjectionMatrix(rs),t||(t=this.scene);var r=[];return t.traverseVisible((function(t){(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ts.intersectsObject(t))&&r.push(t)})),r},r.prototype.getCurrentState=function(){return Le(Le({},this.camera.copyPose()),{mode:this.currentMode||r.Mode.Panorama,panoIndex:this.panoIndex||0})},r.prototype.setState=function(t,i,n){var s,o,a,u,c,l,h;void 0===i&&(i=!1),void 0===n&&(n=!0),!(t=Object.assign({},t)).offset||t instanceof e.Vector3||(t.offset=new e.Vector3(t.offset.x,t.offset.y,t.offset.z));var d,p,f,A,M=null!==(s=t.panoIndex)&&void 0!==s?s:this.state.panoIndex,g=null!==(o=t.mode)&&void 0!==o?o:this.state.mode;if(t.mode!==r.Mode.Floorplan&&t.mode!==r.Mode.Topview&&t.mode!==r.Mode.Model||!Re(this.model)&&!0===this.model.loaded){if(this.state.mode!==g){var y;y=Pn(this.state.mode)&&Pn(g)?this.state:Pn(g)?this.panoramaLikeSavedPose:t;var v=Le(Le({panoIndex:M,initial:[y,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[g]),m=kn[g].initAnimationEndPose(v);d=m.longitude,p=m.latitude,f=m.fov,A=m.offset}else d=null!==(a=t.longitude)&&void 0!==a?a:this.state.longitude,p=null!==(u=t.latitude)&&void 0!==u?u:this.state.latitude,f=null!==(c=t.fov)&&void 0!==c?c:this.state.fov,A=null!==(l=t.offset)&&void 0!==l?l:this.state.offset;this.emit("setState",{longitude:d,latitude:p,fov:f,offset:A,mode:g,panoIndex:M}),(M!==this.state.panoIndex||g!==this.state.mode||Math.abs(d-this.state.longitude)>.001||Math.abs(p-this.state.latitude)>.001||Math.abs(f-this.state.fov)>.001||A.distanceTo(this.state.offset)>.001)&&(this.state.panoIndex=M,this.state.mode=g,this.state.longitude=d,this.state.latitude=p,this.state.fov=f,this.state.offset.copy(A),i&&this.syncState(i),this.emit("stateChange",this.state,n),null===(h=this.analysis)||void 0===h||h.state(this.work,this.state))}else this.throwError(new Error("model is not ready."))},r.prototype.aroundScissor=function(t){if(this.renderer){var r=new e.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(i){this.renderer.getSize(r);var n=Math.floor(r.x*this.scissor.left),s=Math.floor(r.y*this.scissor.bottom),o=Math.floor(r.x*this.scissor.width),a=Math.floor(r.y*this.scissor.height);this.renderer.setViewport(n,s,o,a),this.renderer.setScissor(n,s,o,a),this.renderer.setScissorTest(!0)}t(),i&&(this.renderer.setViewport(0,0,r.x,r.y),this.renderer.setScissor(0,0,r.x,r.y),this.renderer.setScissorTest(!1))}},r.prototype.syncState=function(t){if(void 0===t&&(t=!1),this.controller&&!1!==this.controller.ready&&!0!==this.controller.gesturing&&!this.tweenCoordinates){if(this.readyCallbacks.length){var i=this.currentMode;if(i!==r.Mode.Floorplan&&i!==r.Mode.Topview&&i!==r.Mode.Model||!this.modelPending)for(var n=void 0;n=this.readyCallbacks.shift();)n()}var s=this.stateSynced;if(this.stateSynced=!1,this.state.mode===this.currentMode){if(this.controller instanceof kn.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return void this.controller.moveToPosition(this.state.offset,o,!1)}}else if(this.state.panoIndex!==this.panoIndex)return o={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset},void this.controller.moveToPano(this.state.panoIndex,o,!1);if(this.controller instanceof kn.Topview){var a=t?new e.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new e.Vector3(Xr(this.camera.pose.offset.x,this.state.offset.x,.2),Xr(this.camera.pose.offset.y,this.state.offset.y,.2),Xr(this.camera.pose.offset.z,this.state.offset.z,.2));if(!this.camera.pose.offset.equals(a))return void this.controller.updateCamera({offset:a},!1,!1)}else{var u=Math.PI/45,c=t?this.state.fov:Xr(this.camera.pose.fov,this.state.fov,1),l=t?{longitude:this.state.longitude,latitude:this.state.latitude}:function(e,t,r){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var i=Hr(e.longitude),n=e.latitude,s=Hr(t.longitude),o=t.latitude;s-i>Gr?i+=qr:i-s>Gr&&(i-=qr);var a=r/Math.sqrt(Math.pow(s-i,2)+Math.pow(o-n,2));return a>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:i+(s-i)*a,latitude:n+(o-n)*a}}({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u),h=l.longitude,d=l.latitude;if(c!==this.camera.pose.fov||h!==this.camera.pose.longitude||d!==this.camera.pose.latitude)return this.controller.tweenCoordinates&&(this.controller.tweenCoordinates.destroy(),delete this.controller.tweenCoordinates),void this.controller.updateCamera({longitude:h,latitude:d,fov:c},!1,!1)}this.stateSynced=!0,!1===s&&this.emit("stateSynced",this.state)}else{var p={panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};this.changeMode(this.state.mode,p,this.modeChangeDuration,!1)}}},r.prototype.ready=function(){var e=this;return new Promise((function(t){return e.readyCallbacks.push(t)}))},r.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},r.prototype.loadModel=function(e,t,i,n){var s=this,o=e.async||!1;this.emit("modelWillLoad",e);var a=new Dr({allowHosts:t,networkSubscribe:this.networkSubscribe});a.once("bvhLoaded",(function(){s.emit("modelBvhLoaded",a)})),a.once("geometryLoaded",(function(){s.emit("modelGeometryLoaded",a)})),a.on("error",(function(e){s.emit("modelLoadError",e,a),s.throwError(e),s.modelPending=!1})),a.on("shownFloorChange",(function(e,t){s.emit("modelShownFloorChange",e,t)})),a.once("loaded",(function(){var t;if(!s.destroyed){a.bounding.max.y-a.bounding.min.y<1.5&&(a.bounding.max.y=a.bounding.min.y+10);var u,c=s.model;c&&(c.show(),u=c.getMaterial()||{},s.scene.remove(c),c.dispose(),a.setTransparent(c.getTransparent())),s.model=Object.assign(a,{loaded:!0}),null===(t=s.controller)||void 0===t||t.resetModel(s.model,n),u&&s.model.setMaterial(u),c&&s.currentMode!==r.Mode.Panorama&&(o=!1);var l=function(){i(),s.emit("modelLoaded",a),qe((function(){return s.emit("modelMaterialLoaded",a)})),e.bvh&&Ft((function(){return a.buildBVH()})),"function"==typeof gc&&gc(),s.needsRender=!0,s.modelPending=!1};if(o){var h=[].concat(s.model.children);s.model.children.length=0;var d=ht($n);d.name="uniformKeeper",d.visible=!1,d.setMaterial(u||{}),s.model.add(d),s.scene.add(s.model);var p=function(){Ft((function(){var e=h.shift();e?(s.model.setMaterial.call(e,s.model.getMaterial()||{}),s.model.add(e),null===s.model.shownFloor?s.model.show():s.model.show(s.model.shownFloor),qe(p,2)):(s.model.remove(d),l())}))};p()}else c?(s.scene.add(s.model),l()):Ft((function(){s.scene.add(s.model),l()}))}})),this.modelPending=!0,a.load(e,this.textureOptions)},r.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,helper:this.helperGroup,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe}},r.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&Pn(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},r.prototype.applyController=function(t,i){var n=this;if(!this.renderer)throw new Error("renderer is not initialized.");var s=kn[t];t===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(t===r.Mode.Floorplan||t===r.Mode.Topview||t===r.Mode.Model),this.currentMode=t;var o=new s(i);if(o.postProcessing){if(!this.screenBuffer){var a=this.getDrawingBufferSize(es);this.screenBuffer=new e.WebGLRenderTarget(a.x,a.y,{encoding:this.renderer.outputEncoding})}}else this.screenBuffer&&(this.screenBuffer.dispose(),delete this.screenBuffer);for(var u=function(e){o.on(e,(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var i=n.emit.apply(n,Ce([e],t,!1));if(i)return!1}))},c=0,l=_n;c<l.length;c++)u(l[c]);if(!1===i.initial[2]){var h=kn[t].initAnimationEndPose(i);this.state.panoIndex=i.panoIndex,this.state.mode=t,this.state.longitude=h.longitude,this.state.latitude=h.latitude,this.state.fov=h.fov,this.state.offset=h.offset}return o.on("initAnimationWillStart",(function(e,r,i){var s;i&&(n.state.mode=t,n.state.panoIndex=e,n.state.longitude=r.longitude,n.state.latitude=r.latitude,n.state.fov=r.fov,n.state.offset.copy(r.offset),n.emit("stateChange",n.state,i),null===(s=n.analysis)||void 0===s||s.state(n.work,n.state))})),o.on("initAnimationEnded",(function(e,r,i){var s;i&&(n.state.mode=t,n.state.panoIndex=e,n.state.longitude=r.longitude,n.state.latitude=r.latitude,n.state.fov=r.fov,n.state.offset.copy(r.offset),n.emit("stateChange",n.state,i),null===(s=n.analysis)||void 0===s||s.state(n.work,n.state))})),o.on("moveToPano",(function(e,t){n.emit("currentStateChange",n.getCurrentState(),t)})),o.on("panoWillArrive",(function(e,t,r){var i;n.panoIndex=e,r&&(n.state.panoIndex=e,n.state.longitude=t.longitude,n.state.latitude=t.latitude,n.state.fov=t.fov,n.state.offset.copy(t.offset),n.emit("stateChange",n.state,r),null===(i=n.analysis)||void 0===i||i.state(n.work,n.state))})),o.on("panoArrived",(function(){"function"==typeof gc&&gc()})),o.on("wantsMoveToPano",(function(e,t,r){var i=n.emit("wantsMoveToPano",e,t,r);i||(i=n.emit("wantsToMoveToPano",e,t,r)),i||n.moveToPano(e,t,r)})),o.on("cameraUpdate",(function(e,t){var r;t&&n.state.mode===n.currentMode&&n.state.panoIndex===n.panoIndex&&(n.state.longitude=e.longitude,n.state.latitude=e.latitude,n.state.fov=e.fov,n.state.offset.copy(e.offset),n.emit("stateChange",n.state,t),null===(r=n.analysis)||void 0===r||r.state(n.work,n.state)),n.emit("currentStateChange",n.getCurrentState(),t)})),o.on("vrWantsToExit",(function(){n.currentMode===r.Mode.VRPanorama&&n.changeMode(r.Mode.Panorama)})),o.on("error",(function(e){return n.throwError(e)})),o},r.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},r.Line=null,r.Easing=Qr,r}(Nt)})(),__webpack_exports__})()}));