/*! For license information please see viewer.min.js.LICENSE.txt */ (()=>{var t={591:(t,e,i)=>{"use strict";var r={};(0,i(236).assign)(r,i(555),i(843),i(619)),t.exports=r},555:(t,e,i)=>{"use strict";var r=i(405),n=i(236),a=i(373),s=i(898),o=i(292),l=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(t);this.options=n.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var i=r.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==i)throw new Error(s[i]);if(e.header&&r.deflateSetHeader(this.strm,e.header),e.dictionary){var u;if(u="string"==typeof e.dictionary?a.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(i=r.deflateSetDictionary(this.strm,u)))throw new Error(s[i]);this._dict_set=!0}}function u(t,e){var i=new h(e);if(i.push(t,!0),i.err)throw i.msg||s[i.err];return i.result}h.prototype.push=function(t,e){var i,s,o=this.strm,h=this.options.chunkSize;if(this.ended)return!1;s=e===~~e?e:!0===e?4:0,"string"==typeof t?o.input=a.string2buf(t):"[object ArrayBuffer]"===l.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new n.Buf8(h),o.next_out=0,o.avail_out=h),1!==(i=r.deflate(o,s))&&0!==i)return this.onEnd(i),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==s&&2!==s)||("string"===this.options.to?this.onData(a.buf2binstring(n.shrinkBuf(o.output,o.next_out))):this.onData(n.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==i);return 4===s?(i=r.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,0===i):2!==s||(this.onEnd(0),o.avail_out=0,!0)},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Deflate=h,e.deflate=u,e.deflateRaw=function(t,e){return(e=e||{}).raw=!0,u(t,e)},e.gzip=function(t,e){return(e=e||{}).gzip=!0,u(t,e)}},843:(t,e,i)=>{"use strict";var r=i(948),n=i(236),a=i(373),s=i(619),o=i(898),l=i(292),h=i(401),u=Object.prototype.toString;function c(t){if(!(this instanceof c))return new c(t);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var i=r.inflateInit2(this.strm,e.windowBits);if(i!==s.Z_OK)throw new Error(o[i]);if(this.header=new h,r.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=a.string2buf(e.dictionary):"[object ArrayBuffer]"===u.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=r.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(o[i])}function f(t,e){var i=new c(e);if(i.push(t,!0),i.err)throw i.msg||o[i.err];return i.result}c.prototype.push=function(t,e){var i,o,l,h,c,f=this.strm,d=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof t?f.input=a.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?f.input=new Uint8Array(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new n.Buf8(d),f.next_out=0,f.avail_out=d),(i=r.inflate(f,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&b&&(i=r.inflateSetDictionary(this.strm,b)),i===s.Z_BUF_ERROR&&!0===g&&(i=s.Z_OK,g=!1),i!==s.Z_STREAM_END&&i!==s.Z_OK)return this.onEnd(i),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&i!==s.Z_STREAM_END&&(0!==f.avail_in||o!==s.Z_FINISH&&o!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(l=a.utf8border(f.output,f.next_out),h=f.next_out-l,c=a.buf2string(f.output,l),f.next_out=h,f.avail_out=d-h,h&&n.arraySet(f.output,f.output,l,h,0),this.onData(c)):this.onData(n.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(g=!0)}while((f.avail_in>0||0===f.avail_out)&&i!==s.Z_STREAM_END);return i===s.Z_STREAM_END&&(o=s.Z_FINISH),o===s.Z_FINISH?(i=r.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===s.Z_OK):o!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),f.avail_out=0,!0)},c.prototype.onData=function(t){this.chunks.push(t)},c.prototype.onEnd=function(t){t===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=c,e.inflate=f,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,f(t,e)},e.ungzip=f},236:(t,e)=>{"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var n in i)r(i,n)&&(t[n]=i[n])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,i,r,n){if(e.subarray&&t.subarray)t.set(e.subarray(i,i+r),n);else for(var a=0;a{"use strict";var r=i(236),n=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){a=!1}for(var s=new r.Buf8(256),o=0;o<256;o++)s[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(t,e){if(e<65534&&(t.subarray&&a||!t.subarray&&n))return String.fromCharCode.apply(null,r.shrinkBuf(t,e));for(var i="",s=0;s>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},e.buf2binstring=function(t){return l(t,t.length)},e.binstring2buf=function(t){for(var e=new r.Buf8(t.length),i=0,n=e.length;i4)h[r++]=65533,i+=a-1;else{for(n&=2===a?31:3===a?15:7;a>1&&i1?h[r++]=65533:n<65536?h[r++]=n:(n-=65536,h[r++]=55296|n>>10&1023,h[r++]=56320|1023&n)}return l(h,r)},e.utf8border=function(t,e){var i;for((e=e||t.length)>t.length&&(e=t.length),i=e-1;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+s[t[i]]>e?i:e}},69:t=>{"use strict";t.exports=function(t,e,i,r){for(var n=65535&t|0,a=t>>>16&65535|0,s=0;0!==i;){i-=s=i>2e3?2e3:i;do{a=a+(n=n+e[r++]|0)|0}while(--s);n%=65521,a%=65521}return n|a<<16|0}},619:t=>{"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},869:t=>{"use strict";var e=function(){for(var t,e=[],i=0;i<256;i++){t=i;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e}();t.exports=function(t,i,r,n){var a=e,s=n+r;t^=-1;for(var o=n;o>>8^a[255&(t^i[o])];return-1^t}},405:(t,e,i)=>{"use strict";var r,n=i(236),a=i(342),s=i(69),o=i(869),l=i(898),h=-2,u=258,c=262,f=103,d=113,b=666;function g(t,e){return t.msg=l[e],e}function _(t){return(t<<1)-(t>4?9:0)}function p(t){for(var e=t.length;--e>=0;)t[e]=0}function m(t){var e=t.state,i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(n.arraySet(t.output,e.pending_buf,e.pending_out,i,t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))}function v(t,e){a._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,m(t.strm)}function x(t,e){t.pending_buf[t.pending++]=e}function T(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function w(t,e){var i,r,n=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-c?t.strstart-(t.w_size-c):0,h=t.window,f=t.w_mask,d=t.prev,b=t.strstart+u,g=h[a+s-1],_=h[a+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(h[(i=e)+s]===_&&h[i+s-1]===g&&h[i]===h[a]&&h[++i]===h[a+1]){a+=2,i++;do{}while(h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&as){if(t.match_start=e,s=r,r>=o)break;g=h[a+s-1],_=h[a+s]}}}while((e=d[e&f])>l&&0!=--n);return s<=t.lookahead?s:t.lookahead}function y(t){var e,i,r,a,l,h,u,f,d,b,g=t.w_size;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=g+(g-c)){n.arraySet(t.window,t.window,g,g,0),t.match_start-=g,t.strstart-=g,t.block_start-=g,e=i=t.hash_size;do{r=t.head[--e],t.head[e]=r>=g?r-g:0}while(--i);e=i=g;do{r=t.prev[--e],t.prev[e]=r>=g?r-g:0}while(--i);a+=g}if(0===t.strm.avail_in)break;if(h=t.strm,u=t.window,f=t.strstart+t.lookahead,d=a,b=void 0,(b=h.avail_in)>d&&(b=d),i=0===b?0:(h.avail_in-=b,n.arraySet(u,h.input,h.next_in,b,f),1===h.state.wrap?h.adler=s(h.adler,u,b,f):2===h.state.wrap&&(h.adler=o(h.adler,u,b,f)),h.next_in+=b,h.total_in+=b,b),t.lookahead+=i,t.lookahead+t.insert>=3)for(l=t.strstart-t.insert,t.ins_h=t.window[l],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(r=a._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,r=a._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=(t.ins_h<15&&(o=2,r-=16),a<1||a>9||8!==i||r<8||r>15||e<0||e>9||s<0||s>4)return g(t,h);8===r&&(r=9);var l=new S;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=r,l.w_size=1<t.pending_buf_size-5&&(i=t.pending_buf_size-5);;){if(t.lookahead<=1){if(y(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+i;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,v(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-c&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(v(t,!1),t.strm.avail_out),1)})),new C(4,4,8,4,A),new C(4,5,16,8,A),new C(4,6,32,32,A),new C(4,4,16,16,E),new C(8,16,32,32,E),new C(8,16,128,128,E),new C(8,32,128,256,E),new C(32,128,258,1024,E),new C(32,258,258,4096,E)],e.deflateInit=function(t,e){return F(t,e,8,15,8,0)},e.deflateInit2=F,e.deflateReset=k,e.deflateResetKeep=M,e.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?h:(t.state.gzhead=e,0):h},e.deflate=function(t,e){var i,n,s,l;if(!t||!t.state||e>5||e<0)return t?g(t,h):h;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===b&&4!==e)return g(t,0===t.avail_out?-5:h);if(n.strm=t,i=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,x(n,31),x(n,139),x(n,8),n.gzhead?(x(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),x(n,255&n.gzhead.time),x(n,n.gzhead.time>>8&255),x(n,n.gzhead.time>>16&255),x(n,n.gzhead.time>>24&255),x(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),x(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(x(n,255&n.gzhead.extra.length),x(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=o(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(x(n,0),x(n,0),x(n,0),x(n,0),x(n,0),x(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),x(n,3),n.status=d);else{var c=8+(n.w_bits-8<<4)<<8;c|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(c|=32),c+=31-c%31,n.status=d,T(n,c),0!==n.strstart&&(T(n,t.adler>>>16),T(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(s=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending!==n.pending_buf_size));)x(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindexs&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===l&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindexs&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===l&&(n.status=f)}else n.status=f;if(n.status===f&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&m(t),n.pending+2<=n.pending_buf_size&&(x(n,255&t.adler),x(n,t.adler>>8&255),t.adler=0,n.status=d)):n.status=d),0!==n.pending){if(m(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&_(e)<=_(i)&&4!==e)return g(t,-5);if(n.status===b&&0!==t.avail_in)return g(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==b){var w=2===n.strategy?function(t,e){for(var i;;){if(0===t.lookahead&&(y(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var i,r,n,s,o=t.window;;){if(t.lookahead<=u){if(y(t),t.lookahead<=u&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=o[n=t.strstart-1])===o[++n]&&r===o[++n]&&r===o[++n]){s=t.strstart+u;do{}while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=a._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}(n,e):r[n.level].func(n,e);if(3!==w&&4!==w||(n.status=b),1===w||3===w)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===w&&(1===e?a._tr_align(n):5!==e&&(a._tr_stored_block(n,0,0,!1),3===e&&(p(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),m(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(x(n,255&t.adler),x(n,t.adler>>8&255),x(n,t.adler>>16&255),x(n,t.adler>>24&255),x(n,255&t.total_in),x(n,t.total_in>>8&255),x(n,t.total_in>>16&255),x(n,t.total_in>>24&255)):(T(n,t.adler>>>16),T(n,65535&t.adler)),m(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},e.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&e!==f&&e!==d&&e!==b?g(t,h):(t.state=null,e===d?g(t,-3):0):h},e.deflateSetDictionary=function(t,e){var i,r,a,o,l,u,c,f,d=e.length;if(!t||!t.state)return h;if(2===(o=(i=t.state).wrap)||1===o&&42!==i.status||i.lookahead)return h;for(1===o&&(t.adler=s(t.adler,e,d,0)),i.wrap=0,d>=i.w_size&&(0===o&&(p(i.head),i.strstart=0,i.block_start=0,i.insert=0),f=new n.Buf8(i.w_size),n.arraySet(f,e,d-i.w_size,i.w_size,0),e=f,d=i.w_size),l=t.avail_in,u=t.next_in,c=t.input,t.avail_in=d,t.next_in=0,t.input=e,y(i);i.lookahead>=3;){r=i.strstart,a=i.lookahead-2;do{i.ins_h=(i.ins_h<{"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},264:t=>{"use strict";t.exports=function(t,e){var i,r,n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T,w,y,A,E,C;i=t.state,r=t.next_in,E=t.input,n=r+(t.avail_in-5),a=t.next_out,C=t.output,s=a-(e-t.avail_out),o=a+(t.avail_out-257),l=i.dmax,h=i.wsize,u=i.whave,c=i.wnext,f=i.window,d=i.hold,b=i.bits,g=i.lencode,_=i.distcode,p=(1<>>=x=v>>>24,b-=x,0===(x=v>>>16&255))C[a++]=65535&v;else{if(!(16&x)){if(0==(64&x)){v=g[(65535&v)+(d&(1<>>=x,b-=x),b<15&&(d+=E[r++]<>>=x=v>>>24,b-=x,!(16&(x=v>>>16&255))){if(0==(64&x)){v=_[(65535&v)+(d&(1<l){t.msg="invalid distance too far back",i.mode=30;break t}if(d>>>=x,b-=x,w>(x=a-s)){if((x=w-x)>u&&i.sane){t.msg="invalid distance too far back",i.mode=30;break t}if(y=0,A=f,0===c){if(y+=h-x,x2;)C[a++]=A[y++],C[a++]=A[y++],C[a++]=A[y++],T-=3;T&&(C[a++]=A[y++],T>1&&(C[a++]=A[y++]))}else{y=a-w;do{C[a++]=C[y++],C[a++]=C[y++],C[a++]=C[y++],T-=3}while(T>2);T&&(C[a++]=C[y++],T>1&&(C[a++]=C[y++]))}break}}break}}while(r>3,d&=(1<<(b-=T<<3))-1,t.next_in=r,t.next_out=a,t.avail_in=r{"use strict";var r=i(236),n=i(69),a=i(869),s=i(264),o=i(241),l=-2,h=12,u=30;function c(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new r.Buf32(852),e.distcode=e.distdyn=new r.Buf32(592),e.sane=1,e.back=-1,0):l}function b(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,d(t)):l}function g(t,e){var i,r;return t&&t.state?(r=t.state,e<0?(i=0,e=-e):(i=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?l:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=i,r.wbits=e,b(t))):l}function _(t,e){var i,r;return t?(r=new f,t.state=r,r.window=null,0!==(i=g(t,e))&&(t.state=null),i):l}var p,m,v=!0;function x(t){if(v){var e;for(p=new r.Buf32(512),m=new r.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(o(1,t.lens,0,288,p,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(2,t.lens,0,32,m,0,t.work,{bits:5}),v=!1}t.lencode=p,t.lenbits=9,t.distcode=m,t.distbits=5}function T(t,e,i,n){var a,s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(r.arraySet(s.window,e,i-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>n&&(a=n),r.arraySet(s.window,e,i-n,a,s.wnext),(n-=a)?(r.arraySet(s.window,e,i-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,i.check=a(i.check,O,2,0),m=0,v=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg="incorrect header check",i.mode=u;break}if(8!=(15&m)){t.msg="unknown compression method",i.mode=u;break}if(v-=4,I=8+(15&(m>>>=4)),0===i.wbits)i.wbits=I;else if(I>i.wbits){t.msg="invalid window size",i.mode=u;break}i.dmax=1<>8&1),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0,i.mode=3;case 3:for(;v<32;){if(0===_)break t;_--,m+=f[b++]<>>8&255,O[2]=m>>>16&255,O[3]=m>>>24&255,i.check=a(i.check,O,4,0)),m=0,v=0,i.mode=4;case 4:for(;v<16;){if(0===_)break t;_--,m+=f[b++]<>8),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0,i.mode=5;case 5:if(1024&i.flags){for(;v<16;){if(0===_)break t;_--,m+=f[b++]<>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&((A=i.length)>_&&(A=_),A&&(i.head&&(I=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),r.arraySet(i.head.extra,f,b,A,I)),512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,i.length-=A),i.length))break t;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===_)break t;A=0;do{I=f[b+A++],i.head&&I&&i.length<65536&&(i.head.name+=String.fromCharCode(I))}while(I&&A<_);if(512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,I)break t}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===_)break t;A=0;do{I=f[b+A++],i.head&&I&&i.length<65536&&(i.head.comment+=String.fromCharCode(I))}while(I&&A<_);if(512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,I)break t}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;v<16;){if(0===_)break t;_--,m+=f[b++]<>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=h;break;case 10:for(;v<32;){if(0===_)break t;_--,m+=f[b++]<>>=7&v,v-=7&v,i.mode=27;break}for(;v<3;){if(0===_)break t;_--,m+=f[b++]<>>=1)){case 0:i.mode=14;break;case 1:if(x(i),i.mode=20,6===e){m>>>=2,v-=2;break t}break;case 2:i.mode=17;break;case 3:t.msg="invalid block type",i.mode=u}m>>>=2,v-=2;break;case 14:for(m>>>=7&v,v-=7&v;v<32;){if(0===_)break t;_--,m+=f[b++]<>>16^65535)){t.msg="invalid stored block lengths",i.mode=u;break}if(i.length=65535&m,m=0,v=0,i.mode=15,6===e)break t;case 15:i.mode=16;case 16:if(A=i.length){if(A>_&&(A=_),A>p&&(A=p),0===A)break t;r.arraySet(d,f,b,A,g),_-=A,b+=A,p-=A,g+=A,i.length-=A;break}i.mode=h;break;case 17:for(;v<14;){if(0===_)break t;_--,m+=f[b++]<>>=5,v-=5,i.ndist=1+(31&m),m>>>=5,v-=5,i.ncode=4+(15&m),m>>>=4,v-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=u;break}i.have=0,i.mode=18;case 18:for(;i.have>>=3,v-=3}for(;i.have<19;)i.lens[N[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,B={bits:i.lenbits},U=o(0,i.lens,0,19,i.lencode,0,i.work,B),i.lenbits=B.bits,U){t.msg="invalid code lengths set",i.mode=u;break}i.have=0,i.mode=19;case 19:for(;i.have>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<>>=S,v-=S,i.lens[i.have++]=k;else{if(16===k){for(P=S+2;v>>=S,v-=S,0===i.have){t.msg="invalid bit length repeat",i.mode=u;break}I=i.lens[i.have-1],A=3+(3&m),m>>>=2,v-=2}else if(17===k){for(P=S+3;v>>=S)),m>>>=3,v-=3}else{for(P=S+7;v>>=S)),m>>>=7,v-=7}if(i.have+A>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=u;break}for(;A--;)i.lens[i.have++]=I}}if(i.mode===u)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=u;break}if(i.lenbits=9,B={bits:i.lenbits},U=o(1,i.lens,0,i.nlen,i.lencode,0,i.work,B),i.lenbits=B.bits,U){t.msg="invalid literal/lengths set",i.mode=u;break}if(i.distbits=6,i.distcode=i.distdyn,B={bits:i.distbits},U=o(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,B),i.distbits=B.bits,U){t.msg="invalid distances set",i.mode=u;break}if(i.mode=20,6===e)break t;case 20:i.mode=21;case 21:if(_>=6&&p>=258){t.next_out=g,t.avail_out=p,t.next_in=b,t.avail_in=_,i.hold=m,i.bits=v,s(t,y),g=t.next_out,d=t.output,p=t.avail_out,b=t.next_in,f=t.input,_=t.avail_in,m=i.hold,v=i.bits,i.mode===h&&(i.back=-1);break}for(i.back=0;M=(z=i.lencode[m&(1<>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<>F)])>>>16&255,k=65535&z,!(F+(S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<>>=F,v-=F,i.back+=F}if(m>>>=S,v-=S,i.back+=S,i.length=k,0===M){i.mode=26;break}if(32&M){i.back=-1,i.mode=h;break}if(64&M){t.msg="invalid literal/length code",i.mode=u;break}i.extra=15&M,i.mode=22;case 22:if(i.extra){for(P=i.extra;v>>=i.extra,v-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;M=(z=i.distcode[m&(1<>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<>F)])>>>16&255,k=65535&z,!(F+(S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<>>=F,v-=F,i.back+=F}if(m>>>=S,v-=S,i.back+=S,64&M){t.msg="invalid distance code",i.mode=u;break}i.offset=k,i.extra=15&M,i.mode=24;case 24:if(i.extra){for(P=i.extra;v>>=i.extra,v-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=u;break}i.mode=25;case 25:if(0===p)break t;if(A=y-p,i.offset>A){if((A=i.offset-A)>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=u;break}A>i.wnext?(A-=i.wnext,E=i.wsize-A):E=i.wnext-A,A>i.length&&(A=i.length),C=i.window}else C=d,E=g-i.offset,A=i.length;A>p&&(A=p),p-=A,i.length-=A;do{d[g++]=C[E++]}while(--A);0===i.length&&(i.mode=21);break;case 26:if(0===p)break t;d[g++]=i.length,p--,i.mode=21;break;case 27:if(i.wrap){for(;v<32;){if(0===_)break t;_--,m|=f[b++]<{"use strict";var r=i(236),n=15,a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],o=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],l=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(t,e,i,h,u,c,f,d){var b,g,_,p,m,v,x,T,w,y=d.bits,A=0,E=0,C=0,S=0,M=0,k=0,F=0,R=0,D=0,I=0,U=null,B=0,P=new r.Buf16(16),z=new r.Buf16(16),O=null,N=0;for(A=0;A<=n;A++)P[A]=0;for(E=0;E=1&&0===P[S];S--);if(M>S&&(M=S),0===S)return u[c++]=20971520,u[c++]=20971520,d.bits=1,0;for(C=1;C0&&(0===t||1!==S))return-1;for(z[1]=0,A=1;A852||2===t&&D>592)return 1;for(;;){x=A-F,f[E]v?(T=O[N+f[E]],w=U[B+f[E]]):(T=96,w=0),b=1<>F)+(g-=b)]=x<<24|T<<16|w|0}while(0!==g);for(b=1<>=1;if(0!==b?(I&=b-1,I+=b):I=0,E++,0==--P[A]){if(A===S)break;A=e[i+f[E]]}if(A>M&&(I&p)!==_){for(0===F&&(F=M),m+=C,R=1<<(k=A-F);k+F852||2===t&&D>592)return 1;u[_=I&p]=M<<24|k<<16|m-c|0}}return 0!==I&&(u[m+I]=A-F<<24|64<<16|0),d.bits=M,0}},898:t=>{"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},342:(t,e,i)=>{"use strict";var r=i(236);function n(t){for(var e=t.length;--e>=0;)t[e]=0}var a=256,s=286,o=30,l=15,h=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],u=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],c=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],d=new Array(576);n(d);var b=new Array(60);n(b);var g=new Array(512);n(g);var _=new Array(256);n(_);var p=new Array(29);n(p);var m,v,x,T=new Array(o);function w(t,e,i,r,n){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=t&&t.length}function y(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function A(t){return t<256?g[t]:g[256+(t>>>7)]}function E(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function C(t,e,i){t.bi_valid>16-i?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<>>=1,i<<=1}while(--e>0);return i>>>1}function k(t,e,i){var r,n,a=new Array(16),s=0;for(r=1;r<=l;r++)a[r]=s=s+i[r-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=M(a[o]++,o))}}function F(t){var e;for(e=0;e8?E(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function D(t,e,i,r){var n=2*e,a=2*i;return t[n]>1;i>=1;i--)I(t,a,i);n=h;do{i=t.heap[1],t.heap[1]=t.heap[t.heap_len--],I(t,a,1),r=t.heap[1],t.heap[--t.heap_max]=i,t.heap[--t.heap_max]=r,a[2*n]=a[2*i]+a[2*r],t.depth[n]=(t.depth[i]>=t.depth[r]?t.depth[i]:t.depth[r])+1,a[2*i+1]=a[2*r+1]=n,t.heap[1]=n++,I(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var i,r,n,a,s,o,h=e.dyn_tree,u=e.max_code,c=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,b=e.stat_desc.extra_base,g=e.stat_desc.max_length,_=0;for(a=0;a<=l;a++)t.bl_count[a]=0;for(h[2*t.heap[t.heap_max]+1]=0,i=t.heap_max+1;i<573;i++)(a=h[2*h[2*(r=t.heap[i])+1]+1]+1)>g&&(a=g,_++),h[2*r+1]=a,r>u||(t.bl_count[a]++,s=0,r>=b&&(s=d[r-b]),o=h[2*r],t.opt_len+=o*(a+s),f&&(t.static_len+=o*(c[2*r+1]+s)));if(0!==_){do{for(a=g-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[g]--,_-=2}while(_>0);for(a=g;0!==a;a--)for(r=t.bl_count[a];0!==r;)(n=t.heap[--i])>u||(h[2*n+1]!==a&&(t.opt_len+=(a-h[2*n+1])*h[2*n],h[2*n+1]=a),r--)}}(t,e),k(a,u,t.bl_count)}function P(t,e,i){var r,n,a=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(i+1)+1]=65535,r=0;r<=i;r++)n=s,s=e[2*(r+1)+1],++o>=7;r0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e=3&&0===t.bl_tree[2*f[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=i+5,i+4<=n&&-1!==e?N(t,e,i,r):4===t.strategy||s===n?(C(t,2+(r?1:0),3),U(t,d,b)):(C(t,4+(r?1:0),3),function(t,e,i,r){var n;for(C(t,e-257,5),C(t,i-1,5),C(t,r-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(_[i]+a+1)]++,t.dyn_dtree[2*A(e)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){C(t,2,3),S(t,256,d),function(t){16===t.bi_valid?(E(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},292:t=>{"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},287:()=>{var t,e;window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t,e){window.setTimeout(t,1e3/60)},jQuery.support.cors=!0,$.ajaxTransport?($.ajaxSetup({flatOptions:{renderer:!0}}),$.ajaxTransport("+binary",(function(t,e,i){if(window.FormData&&(t.dataType&&"binary"==t.dataType||t.data&&(window.ArrayBuffer&&t.data instanceof ArrayBuffer||window.Blob&&t.data instanceof Blob)))return{send:function(e,i){var r=new XMLHttpRequest,n=t.url,a=t.type,s=t.responseType||"blob",o=t.data||null;t.renderer&&r.addEventListener("progress",(function(e){e.lengthComputable&&(t.renderer.downloads[this.responseURL]?t.renderer.downloads[this.responseURL].loaded=e.loaded:t.renderer.downloads[this.responseURL]={loaded:e.loaded,total:e.total},t.renderer.updateProgress())})),r.addEventListener("load",(function(){t.renderer&&(delete t.renderer.downloads[this.responseURL],t.renderer.updateProgress());var e={};e[t.dataType]=r.response,i(r.status,r.statusText,e,r.getAllResponseHeaders())})),r.open(a,n,!0),r.responseType=s,r.send(o)},abort:function(){i.abort()}}}))):(t=$.httpData,$.httpData=function(e,i,r){return"binary"==i?e.response:t(e,i,r)},$.ajaxSetup({beforeSend:function(t,e){"binary"==e.dataType&&(t.responseType=e.responseType||"arraybuffer",t.addEventListener("progress",(function(t){e.renderer&&t.lengthComputable&&(e.renderer.downloads[this.responseURL]?e.renderer.downloads[this.responseURL].loaded=t.loaded:e.renderer.downloads[this.responseURL]={loaded:t.loaded,total:t.total},e.renderer.updateProgress())}),!1),t.addEventListener("load",(function(){e.renderer&&(delete e.renderer.downloads[this.responseURL],e.renderer.updateProgress())}),!1))}})),Math.randomInt=Math.randomInt||function(t,e){return Math.floor(Math.random()*(e-t))+t},"function"!=typeof Object.create&&(Object.create=(e=function(){},function(t){if(arguments.length>1)throw Error("Second argument not supported");if("object"!=typeof t)throw TypeError("Argument must be an object");e.prototype=t;var i=new e;return e.prototype=null,i})),window.console=window.console||{log:function(){},error:function(){},warn:function(){}}}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,i),a.exports}(()=>{"use strict";i(287);let t=Float32Array;function e(e,i,r){const n=new t(3);return e&&(n[0]=e),i&&(n[1]=i),r&&(n[2]=r),n}function r(e,i,r){return(r=r||new t(3))[0]=e[0]+i[0],r[1]=e[1]+i[1],r[2]=e[2]+i[2],r}function n(e,i,r){return(r=r||new t(3))[0]=e[0]*i[0],r[1]=e[1]*i[1],r[2]=e[2]*i[2],r}let a=Float32Array;function s(t){return(t=t||new a(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function o(t,e){e=e||new a(16);const i=t[0],r=t[1],n=t[2],s=t[3],o=t[4],l=t[5],h=t[6],u=t[7],c=t[8],f=t[9],d=t[10],b=t[11],g=t[12],_=t[13],p=t[14],m=t[15],v=d*m,x=p*b,T=h*m,w=p*u,y=h*b,A=d*u,E=n*m,C=p*s,S=n*b,M=d*s,k=n*u,F=h*s,R=c*_,D=g*f,I=o*_,U=g*l,B=o*f,P=c*l,z=i*_,O=g*r,N=i*f,L=c*r,H=i*l,V=o*r,j=v*l+w*f+y*_-(x*l+T*f+A*_),G=x*r+E*f+M*_-(v*r+C*f+S*_),X=T*r+C*l+k*_-(w*r+E*l+F*_),q=A*r+S*l+F*f-(y*r+M*l+k*f),W=1/(i*j+o*G+c*X+g*q);return e[0]=W*j,e[1]=W*G,e[2]=W*X,e[3]=W*q,e[4]=W*(x*o+T*c+A*g-(v*o+w*c+y*g)),e[5]=W*(v*i+C*c+S*g-(x*i+E*c+M*g)),e[6]=W*(w*i+E*o+F*g-(T*i+C*o+k*g)),e[7]=W*(y*i+M*o+k*c-(A*i+S*o+F*c)),e[8]=W*(R*u+U*b+B*m-(D*u+I*b+P*m)),e[9]=W*(D*s+z*b+L*m-(R*s+O*b+N*m)),e[10]=W*(I*s+O*u+H*m-(U*s+z*u+V*m)),e[11]=W*(P*s+N*u+V*b-(B*s+L*u+H*b)),e[12]=W*(I*d+P*p+D*h-(B*p+R*h+U*d)),e[13]=W*(N*p+R*n+O*d-(z*d+L*p+D*n)),e[14]=W*(z*h+V*p+U*n-(H*p+I*n+O*h)),e[15]=W*(H*d+B*n+L*h-(N*h+V*d+P*n)),e}function l(t,i,r){r=r||e();const n=i[0],a=i[1],s=i[2],o=n*t[3]+a*t[7]+s*t[11]+t[15];return r[0]=(n*t[0]+a*t[4]+s*t[8]+t[12])/o,r[1]=(n*t[1]+a*t[5]+s*t[9]+t[13])/o,r[2]=(n*t[2]+a*t[6]+s*t[10]+t[14])/o,r}function h(t,i,r){r=r||e();const n=i[0],a=i[1],s=i[2];return r[0]=n*t[0]+a*t[4]+s*t[8],r[1]=n*t[1]+a*t[5]+s*t[9],r[2]=n*t[2]+a*t[6]+s*t[10],r}const u=5120,c=5121,f=5122,d=5123,b=5124,g=5125,_=5126,p={};{const t=p;t[u]=Int8Array,t[5121]=Uint8Array,t[5122]=Int16Array,t[5123]=Uint16Array,t[b]=Int32Array,t[5125]=Uint32Array,t[5126]=Float32Array,t[32819]=Uint16Array,t[32820]=Uint16Array,t[33635]=Uint16Array,t[5131]=Uint16Array,t[33640]=Uint32Array,t[35899]=Uint32Array,t[35902]=Uint32Array,t[36269]=Uint32Array,t[34042]=Uint32Array}function m(t){if(t instanceof Int8Array)return u;if(t instanceof Uint8Array)return c;if(t instanceof Uint8ClampedArray)return c;if(t instanceof Int16Array)return f;if(t instanceof Uint16Array)return d;if(t instanceof Int32Array)return b;if(t instanceof Uint32Array)return g;if(t instanceof Float32Array)return _;throw new Error("unsupported typed array type")}function v(t){if(t===Int8Array)return u;if(t===Uint8Array)return c;if(t===Uint8ClampedArray)return c;if(t===Int16Array)return f;if(t===Uint16Array)return d;if(t===Int32Array)return b;if(t===Uint32Array)return g;if(t===Float32Array)return _;throw new Error("unsupported typed array type")}const x="undefined"!=typeof SharedArrayBuffer?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function T(...t){console.error(...t)}function w(t,e){return"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture}const y=34962,A={attribPrefix:""};function E(t,e,i,r,n){t.bindBuffer(e,i),t.bufferData(e,r,n||35044)}function C(t,e,i,r){if(n=e,"undefined"!=typeof WebGLBuffer&&n instanceof WebGLBuffer)return e;var n;i=i||y;const a=t.createBuffer();return E(t,i,a,e,r),a}function S(t){return"indices"===t}function M(t){return t.length?t:t.data}const k=/coord|texture/i,F=/color|colour/i;function R(t,e){let i;if(i=k.test(t)?2:F.test(t)?4:3,e%i>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${i} but ${e} values is not evenly divisible by ${i}. You should specify it.`);return i}function D(t,e){return t.numComponents||t.size||R(e,M(t).length)}function I(t,e){if(x(t))return t;if(x(t.data))return t.data;Array.isArray(t)&&(t={data:t});let i=t.type;return i||(i=S(e)?Uint16Array:Float32Array),new i(t.data)}function U(t,e){const i={};return Object.keys(e).forEach((function(r){if(!S(r)){const a=e[r],s=a.attrib||a.name||a.attribName||A.attribPrefix+r;if(a.value){if(!Array.isArray(a.value)&&!x(a.value))throw new Error("array.value is not array or typedarray");i[s]={value:a.value}}else{let e,o,l,h;if(a.buffer&&a.buffer instanceof WebGLBuffer)e=a.buffer,h=a.numComponents||a.size,o=a.type,l=a.normalize;else if("number"==typeof a||"number"==typeof a.data){const i=a.data||a,s=a.type||Float32Array,u=i*s.BYTES_PER_ELEMENT;o=v(s),l=void 0!==a.normalize?a.normalize:(n=s)===Int8Array||n===Uint8Array,h=a.numComponents||a.size||R(r,i),e=t.createBuffer(),t.bindBuffer(y,e),t.bufferData(y,u,a.drawType||35044)}else{const i=I(a,r);e=C(t,i,void 0,a.drawType),o=m(i),l=void 0!==a.normalize?a.normalize:function(t){return t instanceof Int8Array||t instanceof Uint8Array}(i),h=D(a,r)}i[s]={buffer:e,numComponents:h,type:o,normalize:l,stride:a.stride||0,offset:a.offset||0,divisor:void 0===a.divisor?void 0:a.divisor,drawType:a.drawType}}}var n})),t.bindBuffer(y,null),i}const B=["position","positions","a_position"];function P(t,e,i){const r=U(t,e),n=Object.assign({},i||{});n.attribs=Object.assign({},i?i.attribs:{},r);const a=e.indices;if(a){const e=I(a,"indices");n.indices=C(t,e,34963),n.numElements=e.length,n.elementType=m(e)}else n.numElements||(n.numElements=function(t,e){let i,r;for(r=0;r0)throw new Error(`numComponents ${a} not correct for length ${n}`);return s}(e),i}function N(t,e){let i=0;return t.push=function(){for(let e=0;e=0?X(r,e):i.indexOf("tan")>=0||i.indexOf("binorm")>=0?j(r,e):i.indexOf("norm")>=0&&G(r,e)})),t}function W(t,e,i){return t=t||2,{position:{numComponents:2,data:[(e=e||0)+-1*(t*=.5),(i=i||0)+-1*t,e+1*t,i+-1*t,e+-1*t,i+1*t,e+1*t,i+1*t]},normal:[0,0,1,0,0,1,0,0,1,0,0,1],texcoord:[0,0,1,0,0,1,1,1],indices:[0,1,2,2,1,3]}}function Y(t,e,i,r,n){t=t||1,e=e||1,i=i||1,r=r||1,n=n||s();const a=(i+1)*(r+1),o=L(3,a),l=L(3,a),h=L(2,a);for(let n=0;n<=r;n++)for(let a=0;a<=i;a++){const s=a/i,u=n/r;o.push(t*s-.5*t,0,e*u-.5*e),l.push(0,1,0),h.push(s,u)}const u=i+1,c=L(3,i*r*2,Uint16Array);for(let t=0;t 0");r=r||0,a=a||0;const o=(n=n||Math.PI)-r,l=(s=s||2*Math.PI)-a,h=(e+1)*(i+1),u=L(3,h),c=L(3,h),f=L(2,h);for(let n=0;n<=i;n++)for(let s=0;s<=e;s++){const h=s/e,d=n/i,b=l*h+a,g=o*d+r,_=Math.sin(b),p=Math.cos(b),m=Math.sin(g),v=p*m,x=Math.cos(g),T=_*m;u.push(t*v,t*x,t*T),c.push(v,x,T),f.push(1-h,d)}const d=e+1,b=L(3,e*i*2,Uint16Array);for(let t=0;tn?(l=i,o=1,s=e):s=t+a/n*(e-t),-2!==a&&a!==n+2||(s=0,o=0),l-=i/2;for(let t=0;tn?f.push(0,1,0):0===s?f.push(0,0,0):f.push(e*p,m,i*p),d.push(t/r,1-o)}}for(let t=0;t 0");const h=(l=l||1)-(o=o||0),u=2*(s+1)*4,c=L(3,u),f=L(3,u),d=L(2,u);function b(t,e,i){return t+(e-t)*i}function g(e,i,l,u,g,_){for(let p=0;p<=s;p++){const m=i/1,v=p/s,x=2*(m-.5),T=(o+v*h)*Math.PI,w=Math.sin(T),y=Math.cos(T),A=b(t,e,w),E=x*a,C=y*t,S=w*A;c.push(E,C,S);const M=r(n([0,w,y],l),u);f.push(M),d.push(m*g+_,v)}}for(let t=0;t<2;t++){const r=2*(t/1-.5);g(e,t,[1,1,1],[0,0,0],1,0),g(e,t,[0,0,0],[r,0,0],0,0),g(i,t,[1,1,1],[0,0,0],1,0),g(i,t,[0,0,0],[r,0,0],0,1)}const _=L(3,2*s*4,Uint16Array);function p(t,e){for(let i=0;i0&&r!==e){const t=u+(r+1),e=u+r,i=u+r-f,n=u+(r+1)-f;h.push(t,e,i),h.push(t,i,n)}}u+=e+1}return{position:s,normal:o,texcoord:l,indices:h}}function st(t){return function(e){const i=t.apply(this,Array.prototype.slice.call(arguments,1));return O(e,i)}}function ot(t){return function(e){const i=t.apply(null,Array.prototype.slice.call(arguments,1));return P(e,i)}}ot(et),st(et),ot(K),st(K),ot(Y),st(Y),ot(Z),st(Z),ot(Q),st(Q),ot(W),st(W),ot(it),st(it),ot(rt),st(rt),ot(nt),st(nt),ot(at),st(at);function lt(t){return!!t.texStorage2D}const ht=function(){const t={},e={};return function(i,r){return function(i){const r=i.constructor.name;if(!t[r]){for(const t in i)if("number"==typeof i[t]){const r=e[i[t]];e[i[t]]=r?`${r} | ${t}`:t}t[r]=!0}}(i),e[r]||("number"==typeof r?`0x${r.toString(16)}`:r)}}();new Uint8Array([128,192,255,255]),function(){let t}();const ut=6407,ct=6408,ft=33319,dt=6403,bt={};{const t=bt;t[6406]={numColorComponents:1},t[6409]={numColorComponents:1},t[6410]={numColorComponents:2},t[ut]={numColorComponents:3},t[ct]={numColorComponents:4},t[dt]={numColorComponents:1},t[36244]={numColorComponents:1},t[ft]={numColorComponents:2},t[33320]={numColorComponents:2},t[ut]={numColorComponents:3},t[36248]={numColorComponents:3},t[ct]={numColorComponents:4},t[36249]={numColorComponents:4},t[6402]={numColorComponents:1},t[34041]={numColorComponents:2}}const gt=T;function _t(t){return"undefined"!=typeof document&&document.getElementById?document.getElementById(t):null}const pt=33984,mt=34962,vt=5126,xt=5124,Tt=5125,wt=3553,yt=34067,At=32879,Et=35866,Ct={};function St(t,e){return Ct[e].bindPoint}function Mt(t,e){return function(i){t.uniform1i(e,i)}}function kt(t,e){return function(i){t.uniform1iv(e,i)}}function Ft(t,e){return function(i){t.uniform2iv(e,i)}}function Rt(t,e){return function(i){t.uniform3iv(e,i)}}function Dt(t,e){return function(i){t.uniform4iv(e,i)}}function It(t,e,i,r){const n=St(0,e);return lt(t)?function(e){let a,s;w(0,e)?(a=e,s=null):(a=e.texture,s=e.sampler),t.uniform1i(r,i),t.activeTexture(pt+i),t.bindTexture(n,a),t.bindSampler(i,s)}:function(e){t.uniform1i(r,i),t.activeTexture(pt+i),t.bindTexture(n,e)}}function Ut(t,e,i,r,n){const a=St(0,e),s=new Int32Array(n);for(let t=0;t{const n=parseInt(t[1]),a=r[i+1],s=a?a.index:e.length;return[n-1,e.substring(t.index,s)]})));return t.split("\n").map(((t,e)=>{const r=n.get(e);return`${e+1+i}: ${t}${r?`\n\n^^^ ${r}`:""}`})).join("\n")}const Vt=/^[ \t]*\n/;function jt(t,e,i,r){const n=r||gt,a=t.createShader(i);let s=0;Vt.test(e)&&(s=1,e=e.replace(Vt,"")),t.shaderSource(a,e),t.compileShader(a);if(!t.getShaderParameter(a,35713)){const r=t.getShaderInfoLog(a);return n(`${Ht(e,r,s)}\nError compiling ${ht(t,i)}: ${r}`),t.deleteShader(a),null}return a}function Gt(t,e,i){let r,n;if("function"==typeof e&&(i=e,e=void 0),"function"==typeof t)i=t,t=void 0;else if(t&&!Array.isArray(t)){if(t.errorCallback)return t;const e=t;i=e.errorCallback,t=e.attribLocations,r=e.transformFeedbackVaryings,n=e.transformFeedbackMode}const a={errorCallback:i||gt,transformFeedbackVaryings:r,transformFeedbackMode:n};if(t){let i={};Array.isArray(t)?t.forEach((function(t,r){i[t]=e?e[r]:r})):i=t,a.attribLocations=i}return a}const Xt=["VERTEX_SHADER","FRAGMENT_SHADER"];function qt(t,e){return e.indexOf("frag")>=0?35632:e.indexOf("vert")>=0?35633:void 0}function Wt(t,e){e.forEach((function(e){t.deleteShader(e)}))}function Yt(t,e,i,r,n){const a=Gt(i,r,n),s=[],o=[];for(let i=0;i{const i=Ht(t.getShaderSource(e),"",0),r=t.getShaderParameter(e,t.SHADER_TYPE);return`${ht(t,r)}\n${i}}`})).join("\n")}\nError in program linking: ${e}`),t.deleteProgram(h),Wt(t,o),null}return h}function Zt(t,e,i,r,n){const a=Gt(i,r,n),s=[];for(let i=0;i""!==t));let a=0,s="";for(;;){const t=n[a++];s+=t;const l=(o=t[0])>="0"&&o<="9",h=l?parseInt(t):t;l&&(s+=n[a++]);if(a===n.length){i[h]=e;break}{const t=n[a++],e="["===t,o=i[h]||(e?[]:{});i[h]=o,i=o,r[s]=r[s]||function(t){return function(e){ie(t,e)}}(o),s+=t}}var o}function Qt(t,e){let i=0;function r(e,r,n){const a=r.name.endsWith("[0]"),s=r.type,o=Ct[s];if(!o)throw new Error(`unknown type: 0x${s.toString(16)}`);let l;if(o.bindPoint){const e=i;i+=r.size,l=a?o.arraySetter(t,s,e,n,r.size):o.setter(t,s,e,n,r.size)}else l=o.arraySetter&&a?o.arraySetter(t,n):o.setter(t,n);return l.location=n,l}const n={},a={},s=t.getProgramParameter(e,35718);for(let i=0;i0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t}function Be(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Pe(t,e,i){var r=e[0],n=e[1],a=e[2],s=i[0],o=i[1],l=i[2];return t[0]=n*l-a*o,t[1]=a*s-r*l,t[2]=r*o-n*s,t}function ze(t,e,i,r){var n=e[0],a=e[1],s=e[2];return t[0]=n+r*(i[0]-n),t[1]=a+r*(i[1]-a),t[2]=s+r*(i[2]-s),t}function Oe(t,e,i){var r=e[0],n=e[1],a=e[2],s=i[3]*r+i[7]*n+i[11]*a+i[15];return s=s||1,t[0]=(i[0]*r+i[4]*n+i[8]*a+i[12])/s,t[1]=(i[1]*r+i[5]*n+i[9]*a+i[13])/s,t[2]=(i[2]*r+i[6]*n+i[10]*a+i[14])/s,t}function Ne(t,e,i){var r=e[0],n=e[1],a=e[2];return t[0]=r*i[0]+n*i[3]+a*i[6],t[1]=r*i[1]+n*i[4]+a*i[7],t[2]=r*i[2]+n*i[5]+a*i[8],t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Le,He=Ce,Ve=Te;Le=ve();function je(){var t=new me(16);return me!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Xe(t,e,i,r,n,a,s,o,l,h,u,c,f,d,b,g){var _=new me(16);return _[0]=t,_[1]=e,_[2]=i,_[3]=r,_[4]=n,_[5]=a,_[6]=s,_[7]=o,_[8]=l,_[9]=h,_[10]=u,_[11]=c,_[12]=f,_[13]=d,_[14]=b,_[15]=g,_}function qe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function We(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=e[4],o=e[5],l=e[6],h=e[7],u=e[8],c=e[9],f=e[10],d=e[11],b=e[12],g=e[13],_=e[14],p=e[15],m=i*o-r*s,v=i*l-n*s,x=i*h-a*s,T=r*l-n*o,w=r*h-a*o,y=n*h-a*l,A=u*g-c*b,E=u*_-f*b,C=u*p-d*b,S=c*_-f*g,M=c*p-d*g,k=f*p-d*_,F=m*k-v*M+x*S+T*C-w*E+y*A;return F?(F=1/F,t[0]=(o*k-l*M+h*S)*F,t[1]=(n*M-r*k-a*S)*F,t[2]=(g*y-_*w+p*T)*F,t[3]=(f*w-c*y-d*T)*F,t[4]=(l*C-s*k-h*E)*F,t[5]=(i*k-n*C+a*E)*F,t[6]=(_*x-b*y-p*v)*F,t[7]=(u*y-f*x+d*v)*F,t[8]=(s*M-o*C+h*A)*F,t[9]=(r*C-i*M-a*A)*F,t[10]=(b*w-g*x+p*m)*F,t[11]=(c*x-u*w-d*m)*F,t[12]=(o*E-s*S-l*A)*F,t[13]=(i*S-r*E+n*A)*F,t[14]=(g*v-b*T-_*m)*F,t[15]=(u*T-c*v+f*m)*F,t):null}function Ye(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=e[9],d=e[10],b=e[11],g=e[12],_=e[13],p=e[14],m=e[15],v=i[0],x=i[1],T=i[2],w=i[3];return t[0]=v*r+x*o+T*c+w*g,t[1]=v*n+x*l+T*f+w*_,t[2]=v*a+x*h+T*d+w*p,t[3]=v*s+x*u+T*b+w*m,v=i[4],x=i[5],T=i[6],w=i[7],t[4]=v*r+x*o+T*c+w*g,t[5]=v*n+x*l+T*f+w*_,t[6]=v*a+x*h+T*d+w*p,t[7]=v*s+x*u+T*b+w*m,v=i[8],x=i[9],T=i[10],w=i[11],t[8]=v*r+x*o+T*c+w*g,t[9]=v*n+x*l+T*f+w*_,t[10]=v*a+x*h+T*d+w*p,t[11]=v*s+x*u+T*b+w*m,v=i[12],x=i[13],T=i[14],w=i[15],t[12]=v*r+x*o+T*c+w*g,t[13]=v*n+x*l+T*f+w*_,t[14]=v*a+x*h+T*d+w*p,t[15]=v*s+x*u+T*b+w*m,t}function Ze(t,e,i){var r,n,a,s,o,l,h,u,c,f,d,b,g=i[0],_=i[1],p=i[2];return e===t?(t[12]=e[0]*g+e[4]*_+e[8]*p+e[12],t[13]=e[1]*g+e[5]*_+e[9]*p+e[13],t[14]=e[2]*g+e[6]*_+e[10]*p+e[14],t[15]=e[3]*g+e[7]*_+e[11]*p+e[15]):(r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=e[9],d=e[10],b=e[11],t[0]=r,t[1]=n,t[2]=a,t[3]=s,t[4]=o,t[5]=l,t[6]=h,t[7]=u,t[8]=c,t[9]=f,t[10]=d,t[11]=b,t[12]=r*g+o*_+c*p+e[12],t[13]=n*g+l*_+f*p+e[13],t[14]=a*g+h*_+d*p+e[14],t[15]=s*g+u*_+b*p+e[15]),t}function Je(t,e,i){var r=i[0],n=i[1],a=i[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ke(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],u=e[9],c=e[10],f=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*n+h*r,t[5]=s*n+u*r,t[6]=o*n+c*r,t[7]=l*n+f*r,t[8]=h*n-a*r,t[9]=u*n-s*r,t[10]=c*n-o*r,t[11]=f*n-l*r,t}function $e(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[0],s=e[1],o=e[2],l=e[3],h=e[8],u=e[9],c=e[10],f=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*n-h*r,t[1]=s*n-u*r,t[2]=o*n-c*r,t[3]=l*n-f*r,t[8]=a*r+h*n,t[9]=s*r+u*n,t[10]=o*r+c*n,t[11]=l*r+f*n,t}function Qe(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[0],s=e[1],o=e[2],l=e[3],h=e[4],u=e[5],c=e[6],f=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*n+h*r,t[1]=s*n+u*r,t[2]=o*n+c*r,t[3]=l*n+f*r,t[4]=h*n-a*r,t[5]=u*n-s*r,t[6]=c*n-o*r,t[7]=f*n-l*r,t}function ti(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function ei(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=r+r,l=n+n,h=a+a,u=r*o,c=r*l,f=r*h,d=n*l,b=n*h,g=a*h,_=s*o,p=s*l,m=s*h;return t[0]=1-(d+g),t[1]=c+m,t[2]=f-p,t[3]=0,t[4]=c-m,t[5]=1-(u+g),t[6]=b+_,t[7]=0,t[8]=f+p,t[9]=b-_,t[10]=1-(u+d),t[11]=0,t[12]=i[0],t[13]=i[1],t[14]=i[2],t[15]=1,t}function ii(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function ri(t,e){var i=e[0],r=e[1],n=e[2],a=e[4],s=e[5],o=e[6],l=e[8],h=e[9],u=e[10];return t[0]=Math.hypot(i,r,n),t[1]=Math.hypot(a,s,o),t[2]=Math.hypot(l,h,u),t}var ni=function(t,e,i,r,n){var a,s=1/Math.tan(e/2);return t[0]=s/i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=n&&n!==1/0?(a=1/(r-n),t[10]=(n+r)*a,t[14]=2*n*r*a):(t[10]=-1,t[14]=-2*r),t};var ai=Ye;const si={147259:!0},oi={28060:!0,28063:!0,28082:!0,41903:!0,42147:!0,44808:!0,45271:!0};const li={2:{GeosetType:15,Original:2,Override:11},3:{GeosetType:15,Original:3,Override:12},4:{GeosetType:15,Original:4,Override:13},5:{GeosetType:15,Original:5,Override:14},6:{GeosetType:15,Original:6,Override:15},7:{GeosetType:15,Original:7,Override:16},8:{GeosetType:15,Original:8,Override:17},9:{GeosetType:15,Original:9,Override:18},10:{GeosetType:15,Original:10,Override:19}},hi={ITEM:1,HELM:2,SHOULDER:4,NPC:8,CHARACTER:16,HUMANOIDNPC:32,OBJECT:64,ARMOR:128,PATH:256,ITEMVISUAL:512,COLLECTION:1024},ui={MALE:0,FEMALE:1,0:"male",1:"female"},ci=5,fi=15,di=21,bi=27,gi=30,_i={1:"human",2:"orc",3:"dwarf",4:"nightelf",5:"scourge",6:"tauren",7:"gnome",8:"troll",9:"goblin",10:"bloodelf",11:"draenei",12:"felorc",13:"naga_",14:"broken",15:"skeleton",16:"vrykul",17:"tuskarr",18:"foresttroll",19:"taunka",20:"northrendskeleton",21:"icetroll",22:"worgen",23:"gilnean",24:"pandaren",25:"pandarena",26:"pandarenh",27:"nightborne",28:"highmountaintauren",29:"voidelf",30:"lightforgeddraenei",31:"zandalaritroll",32:"kultiran",33:"thinhuman",34:"darkirondwarf",35:"vulpera",36:"magharorc",37:"mechagnome"},pi=[0,1,0,3,4,5,6,7,8,9,10,0,0,21,22,22,16,21,0,19,5,21,22,22,0,21,21,27],mi=[0,16,0,15,1,8,10,5,6,6,7,0,0,17,18,19,14,20,0,9,8,21,22,23,0,24,25,0],vi=[0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,22,0,0,0,0,0,0,0,0,0,0],xi=[0,2,0,4,128,128,128,128,128,128,128,0,0,1,1,1,128,1,0,128,128,1,1,1,0,1,1,2],Ti=1,wi=3,yi=4,Ai=5,Ei=6,Ci=7,Si=8,Mi=9,ki=10,Fi=13,Ri=14,Di=15,Ii=16,Ui=19,Bi=20,Pi=21,zi=22,Oi=23,Ni=26,Li=1,Hi=10,Vi=[13,14,15,16,17,88,89],ji=[8,9,10,11,12,86,87],Gi=3,Xi=5,qi=7,Wi=12,Yi=[{x:0,y:0,w:.5,h:.25},{x:0,y:.25,w:.5,h:.25},{x:0,y:.5,w:.5,h:.125},{x:.5,y:0,w:.5,h:.25},{x:.5,y:.25,w:.5,h:.125},{x:.5,y:.375,w:.5,h:.25},{x:.5,y:.625,w:.5,h:.25},{x:.5,y:.875,w:.5,h:.125},{},{x:0,y:.625,w:.5,h:.125},{x:0,y:.75,w:.5,h:.25},{},{x:0,y:0,w:1,h:1},{x:0,y:0,w:1,h:1}],Zi=[{x:0,y:0,w:.25,h:.25},{x:0,y:.25,w:.25,h:.25},{x:0,y:.5,w:.25,h:.125},{x:.25,y:0,w:.25,h:.25},{x:.25,y:.25,w:.25,h:.125},{x:.25,y:.375,w:.25,h:.25},{x:.25,y:.625,w:.25,h:.25},{x:.25,y:.875,w:.25,h:.125},{x:.75,y:.75,w:.25,h:.25},{x:.5,y:0,w:.5,h:1},{x:.5,y:0,w:.5,h:1},{x:.5,y:0,w:.5,h:1},{x:0,y:0,w:.5,h:1},{x:0,y:0,w:1,h:1},{x:0,y:0,w:.5,h:1}],Ji={40:[5,0,5,1,5,0,5,1],37:[7,0,7,1,7,0,7,1],36:[2,0,2,1,2,0,2,1],35:[9,0,9,1,9,0,9,1],34:[3,0,3,1,3,0,3,1],33:[5,1,0,-1,5,0,0,-1],31:[0,-1,8,1,0,-1,8,1],30:[11,0,11,1,11,0,11,1],29:[10,0,10,1,10,0,10,1],28:[6,0,6,1,6,0,6,1],27:[4,0,4,1,4,0,4,1],26:[24,0,24,1,24,0,24,1],25:[24,0,24,1,24,0,24,1],23:[1,0,1,1,1,0,1,1],15:[5,0,5,1,5,0,5,1]},Ki={21:26,22:27,15:28,17:26,25:32,13:32,23:33,14:28,26:26},$i={0:{21:26,22:27},1:{21:26,22:27},2:{21:30,22:31},3:{21:32,22:33},4:{21:26,22:27,15:28},5:{21:26},6:{21:26,22:27},7:{21:26,22:27},8:{21:26,22:27},9:{21:33,22:28}};function Qi(){var t=new me(4);return me!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tr(t){var e=new me(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function er(t,e,i,r){var n=new me(4);return n[0]=t,n[1]=e,n[2]=i,n[3]=r,n}function ir(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function rr(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t[3]=e[3]+i[3],t}function nr(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t[3]=e[3]-i[3],t}function ar(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t}function sr(t){var e=t[0],i=t[1],r=t[2],n=t[3];return Math.hypot(e,i,r,n)}function or(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=i*i+r*r+n*n+a*a;return s>0&&(s=1/Math.sqrt(s)),t[0]=i*s,t[1]=r*s,t[2]=n*s,t[3]=a*s,t}function lr(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3];return t[0]=i[0]*r+i[4]*n+i[8]*a+i[12]*s,t[1]=i[1]*r+i[5]*n+i[9]*a+i[13]*s,t[2]=i[2]*r+i[6]*n+i[10]*a+i[14]*s,t[3]=i[3]*r+i[7]*n+i[11]*a+i[15]*s,t}var hr=sr;!function(){var t=Qi()}();const ur=class{constructor(t){var e=this;e.a=we(t.getFloat(),t.getFloat(),t.getFloat()),e.b=er(t.getFloat(),t.getFloat(),t.getFloat(),0),e.c=t.getFloat(),e.d=t.getFloat(),e.e=t.getFloat(),e.f=t.getFloat(),e.g=[t.getUint8(),t.getUint8(),t.getUint8(),t.getUint8()],e.h=[t.getUint8(),t.getUint8(),t.getUint8(),t.getUint8()],e.i=xe(e.a),e.j=tr(e.b)}l(){var t=this;t.a=null,t.b=null,t.g=null,t.h=null,t.i=null,t.j=null}};const cr=class{constructor(t){var e=this;e.a=t.getUint16(),e.b=t.getUint16(),e.g=t.getUint32(),e.c=t.getUint32(),e.d=t.getUint16(),e.e=t.getUint16(),e.f=t.getUint16(),e.h=t.getInt16(),e.i=t.getUint16(),t.getBool()&&(e.j=t.getString())}k(){}};function fr(){var t=new me(2);return me!=Float32Array&&(t[0]=0,t[1]=0),t}function dr(t,e){var i=new me(2);return i[0]=t,i[1]=e,i}function br(t,e,i){return t[0]=e,t[1]=i,t}function gr(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t}function _r(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t}!function(){var t=fr()}();function pr(){var t=new me(9);return me!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function mr(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function vr(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=i[0],d=i[1],b=i[2],g=i[3],_=i[4],p=i[5],m=i[6],v=i[7],x=i[8];return t[0]=f*r+d*s+b*h,t[1]=f*n+d*o+b*u,t[2]=f*a+d*l+b*c,t[3]=g*r+_*s+p*h,t[4]=g*n+_*o+p*u,t[5]=g*a+_*l+p*c,t[6]=m*r+v*s+x*h,t[7]=m*n+v*o+x*u,t[8]=m*a+v*l+x*c,t}function xr(){var t=new me(4);return me!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Tr(t,e,i){i*=.5;var r=Math.sin(i);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(i),t}function wr(t,e,i,r){var n,a,s,o,l,h=e[0],u=e[1],c=e[2],f=e[3],d=i[0],b=i[1],g=i[2],_=i[3];return(a=h*d+u*b+c*g+f*_)<0&&(a=-a,d=-d,b=-b,g=-g,_=-_),1-a>pe?(n=Math.acos(a),s=Math.sin(n),o=Math.sin((1-r)*n)/s,l=Math.sin(r*n)/s):(o=1-r,l=r),t[0]=o*h+l*d,t[1]=o*u+l*b,t[2]=o*c+l*g,t[3]=o*f+l*_,t}var yr,Ar,Er,Cr,Sr,Mr,kr=ir,Fr=function(t,e,i,r,n){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t},Rr=or;yr=ve(),Ar=we(1,0,0),Er=we(0,1,0),Cr=xr(),Sr=xr(),Mr=pr();class Dr{constructor(){this.a=-1,this.b=null,this.c=0}}class Ir{constructor(){this.a=new Dr,this.b=new Dr,this.c=0,this.d=!1}}class Ur{f(){var t=this;if(t.b)for(var e=0;e=0&&(t=this.d1){if(n.a.length>1){var a=n.a[n.a.length-1];a>0&&t>a&&this.d<0&&(t%=a);for(var s=0,o=n.a.length,l=0;l=n.a[l]&&t0?r=n.i(r,n.b[0]):i}return 0==n.b.length?r:r=n.i(r,n.b[0])}l(t){var e,i=this;i.c=t.getInt16(),i.d=t.getInt16(),i.e=t.getBool();var r=t.getInt32();for(i.a=new Array(r),e=0;e1&&n.a.length>1){var s=n.a[n.a.length-1];s>0&&t>s&&(t%=s);for(var o=0,l=n.a.length,h=0;hn.a[h]&&t<=n.a[h+1]){o=h;break}var u=n.a[o],c=n.a[o+1],f=0;return u!=c&&(f=(t-u)/(c-u)),n.f(a[o],a[o+1],f,i)}return a.length>0?i=n.g(i,a[0]):e}j(t){var e,i=this,r=t.getInt32();for(i.a=new Array(r),e=0;e=this.a.length&&(t=0),this.a[t].e)}d(t,e,i,r){if(!this.a||0==this.a.length)return i;let n=t.a.a;n>=this.a.length&&(n=0);let a=this.a[n].k(t.a.c,e,i,r);if(t.c>0&&t.c<1){let n=this.a[0].g(),s=t.b.a;s>=this.a.length&&(s=0);let o=this.a[s].k(t.b.c,e,i,n);o||(o=n),n=this.a[0].g(),a=this.a[0].h(o,a,t.c,n),r&&this.a[0].i(r,n)}return a}e(){if(this.a&&0!=this.a.length){for(var t=0;t-1){e.a.ap[e.e].C(t);let i=je();if(Ge(i,e.a.ap[e.e].m),Ye(i,r,i),1&e.d||2&e.d||4&e.d){if(4&e.d&&2&e.d)qr(i,0,Xr(r,0)),qr(i,1,Xr(r,1)),qr(i,2,Xr(r,2));else if(4&e.d){{let t=Xr(r,0),e=sr(t);ar(t,t,sr(Xr(i,0))/e),qr(i,0,t)}{let t=Xr(r,1),e=sr(t);ar(t,t,sr(Xr(i,1))/e),qr(i,1,t)}{let t=Xr(r,2),e=sr(t);ar(t,t,sr(Xr(i,2))/e),qr(i,2,t)}}else if(2&e.d){{let t=Xr(r,0);ar(t,t,1/sr(Xr(i,0))),ar(t,t,sr(Xr(r,0))),qr(i,0,t)}{let t=Xr(r,1);ar(t,t,1/sr(Xr(i,1))),ar(t,t,sr(Xr(r,1))),qr(i,1,t)}{let t=Xr(r,2);ar(t,t,1/sr(Xr(i,2))),ar(t,t,sr(Xr(r,2))),qr(i,2,t)}}if(1&e.d)qr(i,3,Xr(r,3));else{let t=er(e.h[0],e.h[1],e.h[2],1),n=Qi();ir(n,t),n[3]=0;let a=Qi(),s=Qi();lr(a,t,e.a.ap[e.e].m),lr(a,a,r),lr(s,n,i),nr(a,a,s),a[3]=1,qr(i,3,a)}}let n=je();We(n,r),Ye(i,n,i),Ye(e.m,e.m,i)}let n=null;if(null!=this.t){let t=this.D(this.t);this.a.S||(this.w=t),n=this.a.S?this.w:t}else{let t=this.D(i);this.a.S||(this.w=t),n=this.a.S?this.w:t}let a=null;if(null!=this.u){let t=this.D(this.u);this.a.S||(this.x=t),a=this.a.S?this.x:t}let s=null!=n||null!=a,o=je();s&&(null!=n&&Ye(o,o,n),null!=a&&Ye(o,o,a)),null!=this.v&&(Ze(o,o,this.h),Ye(o,o,this.v),Ze(o,o,Ie(this.n,this.h))),Ye(e.m,e.m,o);let l=120&e.d;if(l){let t=je();Ge(t,e.m);let i=e.m,r=ve();ri(r,e.m);let n=Qi();if(16==l){let t=Xr(e.m,0);ar(t,t,1/Te(t)),qr(e.m,0,t);let r=er(i[4],-i[0],0,0);qr(i,1,or(r,r)),Pe(n,r,t),n[3]=0,qr(i,2,n)}else if(l>16){if(32==l){let t=Xr(i,1);ar(t,t,1/sr(t)),qr(e.m,1,t);let r=er(-i[5],i[1],0,0);qr(i,0,or(r,r)),n[3]=0,qr(i,2,n)}else if(64==l){let t=Xr(i,2);or(t,t),qr(i,2,t);let e=er(t[1],-t[0],0,0);or(e,e),qr(i,1,e),Pe(n,t,e),n[3]=0,qr(i,0,n)}}else if(8==l){let t=this.a.h;if(s){let e=Xr(o,0);e=er(e[1],e[2],-e[0],0),or(e,e),qr(i,0,e);let r=Xr(o,1);r=er(t?-r[1]:r[1],t?-r[2]:r[2],t?r[0]:-r[0],0),or(r,r),qr(i,1,r);let n=Xr(o,2);n=er(n[1],n[2],-n[0],0),or(n,n),qr(i,2,n)}else{qr(i,0,er(0,0,-1,0)),qr(i,1,er(t?-1:1,0,0,0)),qr(i,2,er(0,1,0,0))}}let a=er(this.h[0],this.h[1],this.h[2],1),h=er(this.h[0],this.h[1],this.h[2],0),u=Xr(i,0),c=Xr(i,1),f=Xr(i,2);ar(u,u,r[0]),ar(c,c,r[1]),ar(f,f,r[2]),qr(i,0,u),qr(i,1,c),qr(i,2,f),lr(a,a,t),lr(h,h,i);let d=Qi();nr(d,a,h),d[3]=1,qr(i,3,d)}We(r,r),Ye(e.m,r,e.m),Oe(e.l,e.h,e.m)}D(t){var e=this.i.c(t.a.a),i=this.j.c(t.a.a),r=this.k.c(t.a.a);if(0!=(640&this.d)){let w=je();return qe(w),Ze(w,w,this.h),e&&(this.n=this.i.d(t,this.a.aX),Ze(w,w,this.n)),i&&(this.o=this.j.d(t,this.a.aX,xr()),n=this.p,a=this.o,s=a[0],o=a[1],l=a[2],h=a[3],d=s*(u=s+s),b=o*u,g=o*(c=o+o),_=l*u,p=l*c,m=l*(f=l+l),v=h*u,x=h*c,T=h*f,n[0]=1-g-m,n[1]=b+T,n[2]=_-x,n[3]=0,n[4]=b-T,n[5]=1-d-m,n[6]=p+v,n[7]=0,n[8]=_+x,n[9]=p-v,n[10]=1-d-g,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,Ye(w,w,this.p)),r&&(this.n=this.k.d(t,this.a.aX),Je(w,w,this.n)),Ze(w,w,Ie(this.n,this.h)),w}var n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T;return null}};const Yr=class{constructor(t){var e=this;e.a=t.getUint16(),e.b=t.getUint16(),e.c=t.getUint16(),e.d=t.getUint16(),e.e=t.getUint16()+65536*e.b,e.f=t.getUint16(),e.g=t.getUint16(),e.h=we(t.getFloat(),t.getFloat(),t.getFloat()),e.i=we(t.getFloat(),t.getFloat(),t.getFloat()),e.j=t.getFloat()}k(){this.h=null,this.i=null}};var Zr=i(591);const Jr=class{constructor(t){this.a=t.getUint16(),this.b=t.getUint16()}static c(t){t.E=!1,t.o.av&&t.g 1) {\n // if (_output.a < (1.0/255.0)) {\n // discard;\n // }\n // }\n if (!uUnlit) { vec4 litColor = uAmbientColor; vec3 normal = normalize(vNormal); float dp = max(0.0, dot(normal, uLightDir1)); litColor += uPrimaryColor * dp; dp = max(0.0, dot(normal, uLightDir2)); litColor += uSecondaryColor * dp; dp = max(0.0, dot(normal, uLightDir3)); litColor += uSecondaryColor * dp; litColor = clamp(litColor, vec4(0,0,0,0), vec4(1,1,1,1)); _output *= (litColor * uDiffuseColor); } _output += vec4(_specular, 0.0); gl_FragColor = _output.xyzw;\n }"}}const $r=[["PS_Combiners_Opaque_Mod2xNA_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_Add","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_AddAlpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Alpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_3s","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Opaque_AddAlpha_Wgt","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Add_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_ModNA_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Wgt","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Wgt","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha_Wgt","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod_Add_Wgt","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Dual_Crossfade","VS_Diffuse_T1","HS_T1","DS_T1"],["PS_Combiners_Mod_Depth","VS_Diffuse_EdgeFade_T1","HS_T1","DS_T1"],["PS_Combiners_Opaque_Mod2xNA_Alpha_Alpha","VS_Diffuse_T1_Env_T2","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Mod","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Masked_Dual_Crossfade","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Alpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha","VS_Diffuse_T1_Env_T2","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Depth","VS_Diffuse_EdgeFade_Env","HS_T1","DS_T1"],["PS_Guild","VS_Diffuse_T1_T2_T1","HS_T1_T2_T3","DS_T1_T2"],["PS_Guild_NoBorder","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2_T3"],["PS_Guild_Opaque","VS_Diffuse_T1_T2_T1","HS_T1_T2_T3","DS_T1_T2"],["PS_Illum","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Mod_Mod_Const","VS_Diffuse_T1_T2_T3","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Mod_Mod_Const","VS_Color_T1_T2_T3","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Opaque","VS_Diffuse_T1","HS_T1","DS_T1"],["PS_Combiners_Mod_Mod2x","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod","VS_Diffuse_EdgeFade_T1","HS_T1_T2","DS_T1_T2"],["PS_Unknown_34821","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"]],Qr={PS_Combiners_Add:[1,"_output.rgb = _input.rgb + tex0.rgb;","_output.a = _input.a + tex0.a;"],PS_Combiners_Decal:[1,"_output.rgb = mix(_input.rgb, tex0.rgb, _input.a);","_output.a = _input.a;"],PS_Combiners_Fade:[1,"_output.rgb = mix(tex0.rgb, _input.rgb, _input.a);","_output.a = _input.a;"],PS_Combiners_Mod:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = tex0.a;"],PS_Combiners_Mod2x:[1,"_output.rgb = _input.rgb * tex0.rgb * 2.0;","_output.a = tex0.a * 2.0;"],PS_Combiners_Opaque:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = 1.0;"],PS_Combiners_Add_Add:[2,"_output.rgb = (_input.rgb + tex0.rgb) + tex1.rgb;","_output.a = (_input.a + tex0.a) + tex1.a;"],PS_Combiners_Add_Mod:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb;","_output.a = (_input.a + tex0.a) * tex1.a;"],PS_Combiners_Add_Mod2x:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb * 2.0;","_output.a = (_input.a + tex0.a) * tex1.a * 2.0;"],PS_Combiners_Add_Opaque:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb;","_output.a = _input.a + tex0.a;"],PS_Combiners_Mod_AddNA:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb;"],PS_Combiners_Mod_Mod:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a * tex1.a;"],PS_Combiners_Mod_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a * tex1.a * 2.0;"],PS_Combiners_Mod_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a + tex1.a;","_specular = tex1.rgb;"],PS_Combiners_Mod_Mod2xNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a;"],PS_Combiners_Mod_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a;"],PS_Combiners_Mod2x_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb) * 2.0 + tex1.rgb;","_output.a = (tex0.a) * 2.0 + tex1.a;"],PS_Combiners_Mod2x_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 4.0;","_output.a = (tex0.a) * tex1.a * 4.0;"],PS_Combiners_Mod2x_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a * 2.0;"],PS_Combiners_Opaque_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb) + tex1.rgb;","_output.a = _input.a + tex1.a;"],PS_Combiners_Opaque_AddAlpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a);"],PS_Combiners_Opaque_AddAlpha_Wgt:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a) * uTexSampleAlpha.g;"],PS_Combiners_Opaque_AddAlpha_Alpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a * (1.0 - tex0.a));"],PS_Combiners_Opaque_AddNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) + tex1.rgb;","_output.a = _input.a;"],PS_Combiners_Opaque_Mod:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex1.a;"],PS_Combiners_Opaque_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex1.a * 2.0;"],PS_Combiners_Opaque_Mod2xNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;",""],PS_Combiners_Opaque_Mod2xNA_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;",""],PS_Combiners_Opaque_Mod2xNA_Alpha_Add:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex0.rgb, vec3(tex0.a));","_specular = tex2.rgb * tex2.a * uTexSampleAlpha.b; "],PS_Combiners_Mod_Mod_Mod_Const:[3,"_output.rgb = _input.rgb * (tex0 * tex1 * tex2).rgb;","_output.a = (tex0 * tex1 * tex2).a;"],PS_Combiners_Mod_AddAlpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb * tex1.a;"],PS_Combiners_Mod_AddAlpha_Wgt:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb * tex1.a * uTexSampleAlpha.g;"],PS_Combiners_Mod_AddAlpha_Alpha:[2,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = (tex0.a + tex1.a * (0.3 * tex1.r + 0.59 * tex1.g + 0.11 * tex1.b));","_specular = tex1.rgb * tex1.a * (1.0 - tex0.a);"],PS_Combiners_Opaque_Mod_Add_Wgt:[2,"_output.rgb = _input.rgb * mix(tex0.rgb, tex1.rgb, vec3(tex1.a));","_specular = (tex0.rgb * tex0.a) * uTexSampleAlpha.r;"],PS_Guild:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a)), tex2.rgb * vec3(1.0, 1.0, 1.0), vec3(tex2.a));","_output.a = tex0.a;"],PS_Guild_Opaque:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a)), tex2.rgb * vec3(1.0, 1.0, 1.0), vec3(tex2.a));",""],PS_Guild_NoBorder:[2,"_output.rgb = _input.rgb * tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a));","_output.a = tex0.a;"],PS_Combiners_Opaque_Alpha_Alpha:[2,"_output.rgb = _input.rgb * mix(mix(tex0.rgb, tex1.rgb, vec3(tex1.a)), tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Mod2xNA_Alpha_3s:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex2.rgb, vec3(tex2.a));"],PS_Combiners_Mod_Add_Alpha:[2,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = (tex0.a + tex1.a);","_specular = tex1.rgb * (1.0 - tex0.a);"],PS_Combiners_Opaque_ModNA_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb, tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha:[3,"float glowOpacity = clamp((tex2.a * vec4(1.0, 1.0, 1.0, 1.0).z), 0.0, 1.0); _output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.000000, tex0.rgb, vec3(tex0.a)) * (1.0 - glowOpacity);","_specular = tex2.rgb * glowOpacity;"],PS_Combiners_Opaque_Mod2xNA_Alpha_Alpha:[3,"_output.rgb = _input.rgb * mix(mix(tex0.rgb * tex1.rgb * 2.000000, tex2.rgb, vec3(tex2.a)), tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Mod_Depth:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = tex0.a;"],PS_Combiners_Opaque_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb, tex1.rgb, vec3(tex1.a));",""],Skin:[3,"//Fresnel Rim\r\nif (uHasSpecEmiss) {\r\n vec3 emissiveColor = tex2.rgb;\r\n vec3 emissiveTerm = tex2.rgb;\r\n if (uHasEmissiveGlowing) {\r\n vec3 eyeVec_120 = vPosition.xyz;\r\n vec3 t121 = -(eyeVec_120);\r\n vec2 term_126 = vec2(dot(t121, vNormal), dot(normalize(t121), (vNormal * vec3(0.0500000007, 0.0500000007, 1.0))));\r\n vec2 invTerm_128 = (vec2(1.0) - clamp(term_126, 0.0, 1.0));\r\n vec2 f_129 = (invTerm_128 * invTerm_128);\r\n float fresnel_rim_133 = pow((f_129.x + f_129.y), 0.600000024);\r\n vec3 t136 = (tex2.rgb /*+ ((vec3(0.0500000007, 0.0, 0.400000006) * 1.0) * fresnel_rim_133)*/);\r\n emissiveColor = vec3(t136.r, tex2.g, t136.b);\r\n\r\n float t267 = dot(normalize(vNormal), normalize(-(vPosition.xyz)));\r\n emissiveTerm = mix(vec3(0.0), 2.0*emissiveColor, vec3(pow(clamp(t267, 0.0, 1.0), (( 128.0 * (tex2.a)) + 9.99999975e-006))));\r\n }\r\n\r\n _output.rgb = _input.rgb * tex0.rgb + tex1.rgb + emissiveTerm.rgb;\r\n} else {\r\n _output.rgb = _input.rgb * tex0.rgb;\r\n}\r\n_output.a = tex0.a; //"],PS_Combiners_Mod_Dual_Crossfade:[3,"_output.rgb = _input.rgb * mix(mix(tex0, texture2D(uTexture2,vTexCoord1), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,vTexCoord1), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).rgb;","_output.a = mix(mix(tex0, texture2D(uTexture2,vTexCoord1), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,vTexCoord1), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).a;"],PS_Combiners_Mod_Masked_Dual_Crossfade:[4,"_output.rgb = _input.rgb * mix(mix(tex0, texture2D(uTexture2,texCoord), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,texCoord), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).rgb;","_output.a = mix(mix(tex0, texture2D(uTexture2,texCoord), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,texCoord), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).a * texture(uTexture4,texCoord2).a;"],PS_Unknown_34821:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a * tex1.a;"]},tn=Kr;const en=class{constructor(){this.h=!1,this.i=!0}},rn=[0,1,2,10,3,4,5,13];const nn=class{constructor(t){this.E=!1,this.F=!1;var e=this;e.a=t.getUint8(),e.b=t.getInt8(),e.c=t.getUint16(),e.d=t.getUint16(),e.e=t.getUint16(),e.f=t.getInt16(),e.g=t.getUint16(),e.h=t.getUint16(),e.i=t.getUint16(),e.j=t.getInt16(),e.k=t.getUint16(),e.l=t.getInt16(),e.m=t.getInt16(),e.n=!0,e.o=null,e.p=null,e.q=0,e.r=null,e.s=[],e.t=[],e.u=new Array,e.v=null,e.w=[],e.x=!1,e.y=!1,e.z=!1,e.A=Qi(),e.B=ve(),e.C=xr()}K(t){var e=this;e.o=t,e.p=t.as[e.d],e.q=e.p.a,Jr.c(e);let i=this.o.ax[e.j];1==this.i&&i>-1&&1==this.o.aw[i].c&&(this.c=-1e3,this.i=3);const r=tn.d(e.c,e.i,e.r);e.H=r;for(let i=0;i-1&&e.j-1&&r-1&&e.m-1&&t.ay&&r-1&&e.l-1&&r-1&&e.f1}L(){const t=this,e=t.o.aS.context,i=ge.GetProgram(e,t.H.name,t.H.config);t.G=i,t.H=i.program,t.I=i.uniforms}M(){let t=er(this.p.i[0],this.p.i[1],this.p.i[2],1),e=this.o.ap[this.p.g].m,i=je();Ye(i,i,this.o.aW.uViewMatrix),Ye(i,i,this.o.U),Ye(i,i,e),lr(t,t,i),t[3]=0;let r=hr(t);if((3&this.a)>0){let e=Qi();r>0?ar(e,t,1/r):ir(e,t),ar(e,e,Te(we(i[8],i[9],i[10]))*this.p.j),1&this.a?nr(e,t,e):rr(e,t,e),r=sr(e)}return r}N(t){const e=this,i=e.o,r=e.o.aS.context,n=e.o.R;if(e.G||e.L(),!e.G.program)return;if(this.J||(this.J=new en,this.J.a=e.G,this.J.b=Object.assign({},i.aW)),this.J.c=i.aU,this.J.d=i.aV,this.J.b=Object.assign({},i.aW),e.A[0]=e.A[1]=e.A[2]=e.A[3]=1,e.v&&e.v.g(n,e.o.aX,e.A),e.w[0]&&(e.A[3]*=e.w[0].d(n,e.o.aX)),e.A[3]<=.001)return;let a=e.r.b;const s=[0,0,0];for(let t=0;t{if(!e.o.S&&(qe(e.u[i]),e.t[i])){let t=!1,r=!1;e.t[i].a&&e.t[i].a.c(n.a.a)?(e.B=e.t[i].a.d(n,e.o.aX),r=!0):Ae(e.B,0,0,0),e.t[i].b&&e.t[i].b.c(n.a.a)?(e.C=e.t[i].b.d(n,e.o.aX),t=!0):Fr(e.C,0,0,0,1);let a,s=!1;if(e.t[i].c&&e.t[i].c.c(n.a.a)&&(a=e.t[i].c.d(n,e.o.aX),s=!0),qe(e.u[i]),Ze(e.u[i],e.u[i],we(.5,.5,0)),s&&Je(e.u[i],e.u[i],a),t){let t=je();ei(t,e.C,[0,0,0]),Ye(e.u[i],e.u[i],t)}r&&Ze(e.u[i],e.u[i],e.B),Ze(e.u[i],e.u[i],we(-.5,-.5,0))}this.J.b["uTextureMatrix"+(i+1).toString()]=e.u[i]})),this.J.h=e.y,this.J.f=!e.z,this.J.j=r.TRIANGLES,this.J.l=2*e.p.e,this.J.k=e.p.f,t.push(this.J)}O(){let t=0;const e=[];this.s.forEach(((i,r)=>{const n=r;let a=null;if(this.s[n])if(this.s[0]&&1==this.s[0].c&&r>0)1==r?a=this.o.aJ&&this.o.aJ.b?{d:this.o.aJ.b}:{d:this.o.aS.blackPixelTexture}:2==r&&(a=this.o.aJ&&this.o.aJ.c?{d:this.o.aJ.c}:{d:this.o.aS.blackPixelTexture});else if(1==this.s[n].c)this.o.aK?a=this.o.aK.a:this.o.aJ&&this.o.aJ.a&&(a={d:this.o.aJ.a});else if(this.s[n].f)a=this.s[n].f;else if(((this.o.a.type<8||this.o.a.type>32)&&2==this.s[n].c||[2,11,12,13].includes(this.s[n].c))&&this.o.B[this.s[n].b])a=this.o.B[this.s[n].b];else if(-1!=this.s[n].c&&this.o.B[this.s[n].c])a=this.o.B[this.s[n].c];else if(-1!=this.s[n].c&&this.o.C[this.s[n].c][n])a=this.o.C[this.s[n].c][n].a;else if(8==this.s[n].c&&this.o.v)a=this.o.v.C[this.s[n].c][0].a;else if(!this.s[n].e&&this.j+t1?i=1:i<0&&(i=0),i}};const cn=class{constructor(){this.a=0,this.b=0,this.c=-1,this.d=null,this.e=null}};class fn extends cn{}const dn=class{constructor(t,e){this.d=!1,this.a=t,this.b=e,this.c=new Array(e.length)}e(t){for(let e=0;e>16&255)/255,(t>>8&255)/255,(255&t)/255,this.a.V[3])}else if(14==this.b[e].ProcEffectType){let t=Math.min(Math.max(this.b[e].Value[0],0),1);this.a.V[3]=t}else if(22==this.b[e].ProcEffectType){let t=this.b[e].Value[3];this.a.V=er((t>>16&255)/255,(t>>8&255)/255,(255&t)/255,this.a.V[3])}break;case 2:this.h(e,t)}}h(t,e){if(!this.a)return;if(!this.a.d)return;if(!this.c[t]){let e=this.b[t].AttachmentID;this.b[t].Positioner>-1&&(e=this.b[t].Positioner),e<0&&(e=19);let i=this.a.bV(e);if(this.c[t]=new fn,this.c[t].d=i,this.c[t].c=i?i.b:-1,0==this.b[t].ModelType){let e={type:hi.PATH,id:this.b[t].Model,parent:this.a,shoulder:-1};this.c[t].e=new $n(this.a.aS,this.a.k,e,0,!1,!0,!1)}else if(1==this.b[t].ModelType){let e=this.a.n>0?this.a.n:1,i=-1!=this.a.o?this.a.o:0;this.a.n=e,this.a.o=i,this.c[t].ba=new _n(this.a,this.b[t].InvType,this.b[t].Model,e,i)}else if(2==this.b[t].ModelType){let e={type:hi.NPC,id:this.b[t].Model,parent:this.a,shoulder:-1};this.c[t].e=new $n(this.a.aS,this.a.k,e,0,!1,!0,!1)}}if(!(0!=this.b[t].ModelType||this.c[t].e&&this.c[t].e.d))return;if(!(1!=this.b[t].ModelType||this.c[t].ba&&this.c[t].ba.m))return;if(!(2!=this.b[t].ModelType||this.c[t].e&&this.c[t].e.d))return;let i=je();Qe(i,i,-this.b[t].Yaw),$e(i,i,this.b[t].Pitch),Ke(i,i,this.b[t].Roll),Je(i,i,[this.b[t].Scale1,this.b[t].Scale1,this.b[t].Scale1]),Je(i,i,[this.b[t].Scale2,this.b[t].Scale2,this.b[t].Scale2]);let r=je();if(this.c[t].d){let e=this.c[t].d.c;Ye(r,r,this.a.ap[this.c[t].c].m),Ze(r,r,we(e[0],e[1],e[2]))}if(Ze(r,r,we(this.b[t].Offset[0],-this.b[t].Offset[1],this.b[t].Offset[2])),Ye(r,r,i),0==this.b[t].ModelType){let i=this.c[t].e;i.setAnimPaused(this.d),i.bs(this.a.U,r,null,null),i.bY(e)}else if(1==this.b[t].ModelType)for(let i=0;i=5||r&&r.d&&(e=r.d.c),-1!=r.c){let i=this.a.ap[r.c].m;r.e.bs(this.a.U,i,e,null),r.e.bY(t)}}}}}};class gn{static a(t,e,i,r,n){let a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];if(!e)return WH.debug("selectBestTexture:","textures are null"),null;for(let t=0;t1||o!=i){if(o<2)continue;c=0}else c=2;let f=1;if(r>0&&l==r)f=0;else if(l>0)continue;let d=1;if(n>0&&h==n)d=0;else if(h>0)continue;a[u+3*(d+2*(c+f))]=s.FileDataId}for(let t=0;t<2;t++)for(let e=0;e<2;e++)for(let i=0;i<2;i++){let r=3*(t+2*(e+2*i));if(a[r]>0){let t;return t={a:a[r],b:a[r+1],c:a[r+2]},t}}if(t){let a=t.bR(i,n,!0);if(a&&0!=a[0])return n=a[0],i=a[1],gn.a(t,e,i,r,n)}return null}static b(t,e,i,r,n,a){let s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(let t=0;t1||l!=r){if(l<2)continue;f=0}else f=2;let d=1;if(n>0&&h==n)d=0;else if(h>0)continue;let b=1;if(a>0&&u==a)b=0;else if(u>0)continue;let g=1;if(-1==i||c!=i){if(-1!=c&&-1!=i)continue}else g=0;s[g+2*(b+2*(f+d))]=o.FileDataId}for(let t=0;t<2;t++)for(let e=0;e<2;e++)for(let i=0;i<2;i++)for(let r=0;r<2;r++){let n=r+2*(t+2*(e+2*i));if(s[n])return s[n]}if(t){var o=t.bR(r,a,!1);if(o&&0!=o[0])return a=o[0],r=o[1],gn.b(t,e,i,r,n,a)}return 0}}const _n=class{constructor(t,e,i,r,n){this.q=null,this.r=[],WH.debug("Creating item",i),this.a=t,this.b=e,this.s=i,this.t=r,this.u=n,this.e=pi[e],this.f=mi[e],this.i=null,this.j=null,this.k=null,this.g=0,this.h=0,this.m=!1,this.n=!1,this.o=0,this.p=3,i&&this.y()}x(){var t=this;if(t.i){for(let e=0;e0&&(this.f+=2),0!=this.o){const t=2==this.c?this.d:-1;for(let e=0;ee){let i=this.a.aB[t[e]];if(this.i[e].c=i.b,this.i[e].d=i,this.r[e]&&this.r[e].b){const t=this.i[e].e;for(let r=0;r-1&&n.c>17,t^=t<<5,this.b=t,t}e(){let t,e=this.d();return this.a.setInt32(0,1065353216|8388607&e),t=2147483648&e?2-this.a.getFloat32(0):this.a.getFloat32(0)-2,t}f(){let t=this.d();return this.a.setInt32(0,1065353216|8388607&t),this.a.getFloat32(0)-1}};const mn=class{constructor(){this.a=0,this.b=0,this.c=0,this.d=0,this.e=ve(),this.f=0,this.g=0,this.h=0,this.i=0,this.j=0}};const vn=class{constructor(t,e){this.b=t,this.c=e,this.a=new mn}d(){return this.a.d+this.b.e()*this.c.u}e(){return this.a.d+this.c.u}f(){return this.a.c+this.c.s}g(t){return this.a.c+30518509e-12*t*this.c.s}h(){let t=this.a.a;return t*=1+this.a.b*this.b.e(),t}i(){return this.a}j(t){ye(t,this.a.e)}};const xn=class extends vn{k(t,e){let i,r=e*this.b.f(),n=this.b.e();i=n<1?n>-1?Math.trunc(32767*n+.5):-32767:32767,t.d=i;let a=this.g(i);a<.001&&(a=.001),t.b=function(t,e){let i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)}(r,a),t.e=65535&this.b.d(),Ae(t.a,this.b.e()*this.a.g*.5,this.b.e()*this.a.h*.5,0);let s=this.h(),o=this.a.f;if(o<.001){let e=this.a.i*this.b.e(),i=this.a.j*this.b.e(),r=Math.sin(e),n=Math.sin(i),a=Math.cos(e),o=Math.cos(i);Ae(t.c,o*r*s,n*r*s,a*s)}else{let e=ve();ye(e,t.a),e[2]=e[2]-o,Te(e)>1e-4&&(Ue(e,e),Fe(t.c,e,s))}}};const Tn=class extends vn{constructor(t,e,i){super(t,e),this.ba=i}k(t,e){let i,r=e*this.b.f(),n=this.b.e();i=n<1?n>-1?Math.trunc(32767*n+.5):-32767:32767,t.d=i;let a=this.g(i);a<.001&&(a=.001),t.b=function(t,e){let i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)}(r,a),t.e=65535&this.b.d();let s=this.a.h-this.a.g,o=this.a.g+s*this.b.f(),l=this.a.i*this.b.e(),h=this.a.j*this.b.e(),u=Math.cos(l),c=we(u*Math.cos(h),u*Math.sin(h),Math.sin(l));Fe(t.a,c,o);let f=this.h(),d=this.a.f,b=we(.5,.5,.5);0==d?this.ba?Ae(b,0,0,1):Ae(b,u*Math.cos(h),u*Math.sin(h),Math.sin(l)):(Ae(b,0,0,d),Ce(b,t.a,b),Te(b)>1e-4&&Ue(b,b)),Fe(t.c,b,f)}};const wn=class{constructor(t){this.a=t.getInt32(),this.b=t.getUint32(),this.c=we(t.getFloat(),t.getFloat(),t.getFloat()),this.d=t.getInt16(),this.e=t.getInt16(),0!=(268435456&this.b)&&(this.f=[0,0,0],this.f[0]=31&this.e,this.f[1]=this.e>>5&31,this.f[2]=this.e>>10&31),this.g=t.getUint8(),this.h=t.getUint8(),this.i=t.getUint16(),this.j=t.getUint16(),this.k=t.getUint16(),this.l=t.getUint16(),this.m=new Gr(t,Or),this.n=new Gr(t,Or),this.o=new Gr(t,Or),this.p=new Gr(t,Or),this.q=new Gr(t,Br),this.r=new Gr(t,Or),this.s=t.getFloat(),this.t=new Gr(t,Or),this.u=t.getFloat(),this.v=new Gr(t,Or),this.w=new Gr(t,Or),this.x=new Gr(t,Or),this.y=new Vr(t),this.z=new jr(t),this.A=new Hr(t),this.B=[t.getFloat(),t.getFloat()],this.C=new jr(t),this.D=new jr(t),this.E=t.getFloat(),this.F=t.getFloat(),this.G=t.getFloat(),this.H=[t.getFloat(),t.getFloat()],this.I=t.getFloat(),this.J=t.getFloat(),this.K=t.getFloat(),this.L=t.getFloat(),this.M=t.getFloat(),this.N=t.getFloat(),this.O=we(t.getFloat(),t.getFloat(),t.getFloat()),this.P=we(t.getFloat(),t.getFloat(),t.getFloat()),this.Q=we(t.getFloat(),t.getFloat(),t.getFloat()),this.R=t.getFloat(),this.S=t.getFloat(),this.T=t.getFloat(),this.U=t.getFloat(),this.V=t.getFloat();var e=t.getInt32();this.W=new Array(e);for(var i=0;i>0,this.f=[fr(),fr()],this.g=[fr(),fr()]}};let An=new Array(128);for(let t=0;t<128;t++)An[t]=Math.random();const En=Xe(0,1,0,0,-1,0,0,0,0,0,1,0,0,0,0,1);class Cn{}class Sn{constructor(){this.a=ve(),this.b=0,this.c={a:fr(),b:ve(),c:0,d:0,e:0}}}function Mn(t){return er((t>>16&255)/255,(t>>8&255)/255,(t>>0&255)/255,(t>>24&255)/255)}const kn=class{constructor(t,e){this.E=0,this.U=!1,this.a=(new Date).getTime(),this.b=t;let i=new wn(e);if(i.i>=11&&i.i<=13){let e;t.u.Item&&t.u.Item.ParticleColor?e=t.u.Item.ParticleColor:t.u.Creature&&t.u.Creature.ParticleColor&&(e=t.u.Creature.ParticleColor),e&&(this.H=[Qi(),Qi(),Qi()],ir(this.H[0],Mn(e.Start[i.i-11])),ir(this.H[1],Mn(e.Mid[i.i-11])),ir(this.H[2],Mn(e.End[i.i-11])))}this.c=i,this.d=je(),this.e=je(),this.f=je(),this.g=je(),this.h=Qi(),this.i=pr(),this.j=ve(),this.k=1,this.l=ve(),this.m=0,this.n=ve(),this.o=ve(),this.p=[],this.q=ve(),this.r=0,this.s=0,this.t=0,this.u=0,this.v=ve(),this.w=ve(),this.x=0,this.y=0,this.z=0,this.A=0,this.B=0,this.C=0,this.D=0,this.F=[],this.G=[];for(let t=0;t<1e3;t++)this.G.push(4*t+0),this.G.push(4*t+1),this.G.push(4*t+2),this.G.push(4*t+3),this.G.push(4*t+2),this.G.push(4*t+1);switch(this.J=new pn(2147483647*Math.random()>>0),this.c.h){case 1:this.I=new xn(this.J,i);break;case 2:this.I=new Tn(this.J,i,0!=(256&this.c.b));break;default:this.I=null,WH.debug("Found unimplemented generator ",this.c.h)}const r=this.c.U-this.c.S;0!=r?(this.s=(this.c.V-this.c.T)/r,this.t=this.c.T-this.c.S*this.s):(this.s=0,this.t=0);let n=this.c.l;n<=0&&(n=1);let a=this.c.k;a<=0&&(a=1),this.y=n*a-1,this.z=0;let s=n,o=-1;do{++o,s>>=1}while(s);if(this.A=o,this.B=n-1,this.z=0,(32768&this.c.b)>0){let t=(this.y+1)*this.J.d();this.z=t/4294967296|0}if(this.C=1/n,this.D=1/a,(269484032&this.c.b)>0){const t=0!=(1&this.c.b>>28);this.r=t?2:3}else this.r=0;this.K=i.g>1}W(){var t=this;t.b=null,t.c.c=null,t.c.O=null,t.c.P=null,t.c.m=t.c.m.e(),t.c.n=t.c.n.e(),t.c.o=t.c.o.e(),t.c.p=t.c.p.e(),t.c.q=t.c.q.e(),t.c.r=t.c.r.e(),t.c.t=t.c.t.e(),t.c.v=t.c.v.e(),t.c.w=t.c.w.e(),t.c.x=t.c.x.e(),t.c.X=t.c.X.e(),t.c.y=t.c.y.d(),t.c.z=t.c.z.d(),t.c.A=t.c.A.d(),t.c.C=t.c.C.d(),t.c.D=t.c.D.d(),t.p=null}X(t,e,i){if(!this.I)return;let r=je(),n=this.I.i(),a=!0;this.c.X.c(t.a.a)&&(a=this.c.X.d(t,this.b.aX)>0),this.T=a;const s=we(0,0,0);a&&(n.a=this.c.m.d(t,this.b.aX,0),n.b=this.c.n.d(t,this.b.aX,0),n.i=this.c.o.d(t,this.b.aX,0),n.j=this.c.p.d(t,this.b.aX,0),this.c.q.d(t,this.b.aX,s,n.e),n.c=this.c.r.d(t,this.b.aX,0),n.d=this.c.t.d(t,this.b.aX,0),n.h=this.c.w.d(t,this.b.aX,0),n.g=this.c.v.d(t,this.b.aX,0),n.f=i?i.a:this.c.x.d(t,this.b.aX,0)),Ye(r,r,this.b.U),Ye(r,r,this.b.ap[this.c.d].m);let o=je();ti(o,we(this.c.c[0],this.c.c[1],this.c.c[2])),Ye(r,r,o),Ye(r,r,En);let l=je(),h=ve();We(l,this.b.aS.viewMatrix),ii(h,l),this.aa(e,r,h,null,this.b.aS.viewMatrix),this.ak(this.b.aS.viewMatrix);let u=this.b.aS.context;this.L?(u.bindBuffer(u.ARRAY_BUFFER,this.L),u.bufferData(u.ARRAY_BUFFER,new Float32Array(this.F),u.DYNAMIC_DRAW)):(this.L=u.createBuffer(),u.bindBuffer(u.ARRAY_BUFFER,this.L),u.bufferData(u.ARRAY_BUFFER,new Float32Array(this.F),u.DYNAMIC_DRAW)),this.M||(this.M=u.createBuffer(),u.bindBuffer(u.ELEMENT_ARRAY_BUFFER,this.M),u.bufferData(u.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.G),u.DYNAMIC_DRAW))}Y(t){if(this.p.length<=0)return;const e=this.b.aS.context;if(this.V||(this.V=new en,this.V.a=se(e,[" attribute vec3 aPosition;\n attribute vec4 aColor; attribute vec2 aTexcoord0; attribute vec2 aTexcoord1; attribute vec2 aTexcoord2; varying vec4 vColor; varying vec2 vTexcoord0; varying vec2 vTexcoord1; varying vec2 vTexcoord2; uniform mat4 uModelMatrix; uniform mat4 uViewMatrix; uniform mat4 uProjMatrix; void main(void) { vec4 pos = vec4(aPosition, 1); gl_Position = uProjMatrix * pos; vColor = aColor; vTexcoord0 = aTexcoord0; vTexcoord1 = aTexcoord1; vTexcoord2 = aTexcoord2; } "," precision mediump float;\n varying vec4 vColor; varying vec2 vTexcoord0; varying vec2 vTexcoord1; varying vec2 vTexcoord2; uniform bool uHasTexture; uniform bool uHasTexture2; uniform bool uHasTexture3; uniform bool uHasAlpha; uniform int uBlendMode; uniform int uPixelShader; uniform sampler2D uTexture; uniform sampler2D uTexture2; uniform sampler2D uTexture3; uniform float uAlphaTreshold; void main(void) { float lo_thresh = 0.01; vec4 color = vec4(1, 1, 1, 1); vec4 tex = vec4(1, 1, 1, 1); vec4 tex2 = vec4(1, 1, 1, 1); vec4 tex3 = vec4(1, 1, 1, 1); if (uHasTexture) { tex = texture2D(uTexture, vTexcoord0).rgba; } if (uHasTexture2) { tex2 = texture2D(uTexture2, vTexcoord1).rgba; } if (uHasTexture3) { tex3 = texture2D(uTexture3, vTexcoord2).rgba; } vec4 finalColor = vec4((tex * vColor ).rgb, tex.a*vColor.a ); if (uPixelShader == 0) { vec3 matDiffuse = vColor.xyz * tex.rgb; finalColor = vec4(matDiffuse.rgb, tex.a*vColor.a); } else if (uPixelShader == 1) { vec4 textureMod = tex*tex2; float texAlpha = (textureMod.w * tex3.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); } else if (uPixelShader == 2) { vec4 textureMod = tex*tex2*tex3; float texAlpha = (textureMod.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); } else if (uPixelShader == 3) { vec4 textureMod = tex*tex2*tex3; float texAlpha = (textureMod.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); }; if (finalColor.a < uAlphaTreshold ) discard; gl_FragColor = finalColor; } "],null,null),this.V.b={},this.V.a.attributes=[{loc:e.getAttribLocation(this.V.a.program,"aPosition"),type:e.FLOAT,size:3,offset:0,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aColor"),type:e.FLOAT,size:4,offset:12,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord0"),type:e.FLOAT,size:2,offset:28,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord1"),type:e.FLOAT,size:2,offset:36,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord2"),type:e.FLOAT,size:2,offset:44,stride:52}],this.V.c=this.L,this.V.d=this.M,this.V.m=this.c.j),!this.S)if(this.S=[null,null,null],0!=(268435456&this.c.b)){WH.debug("multitexture particle",this.c.f[0],this.c.f[1],this.c.f[2],this);for(let t=0;t-1&&e-1&&this.c.e1?this.r-1:0;let i=[this.S[0]&&this.S[0].f&&this.S[0].f.f,this.S[1]&&this.S[1].f&&this.S[1].f.f,this.S[2]&&this.S[2].f&&this.S[2].f.f];this.V.b.uTexture=this.S[0].f.d,this.V.b.uTexture2=i[1]?this.S[1].f.d:null,this.V.b.uTexture3=i[2]?this.S[2].f.d:null,this.V.b.uHasTexture=i[0]?1:0,this.V.b.uHasTexture2=i[1]?1:0,this.V.b.uHasTexture3=i[2]?1:0;let r=this.c.g;4==r&&(r=3),this.V.e=r,this.V.i=!this.b.aY;let n=-1;1==r?n=.501960814:r>1&&(n=1/255),this.V.b.uAlphaTreshold=n,this.V.h=!1,this.V.f=!1,this.V.j=e.TRIANGLES,this.V.k=6*this.E>>0,this.V.l=0,t.push(this.V)}Z(t,e){if(0==(16&this.c.b))for(let i=0;i0){let e=ve();if(ii(e,this.d),16384&this.c.b){Ce(this.o,e,this.l);let i=this.s*(Te(this.o)/t)+this.t;i>=0&&(i=Math.min(i,1)),Fe(this.n,this.o,i)}if(64&this.c.b){this.u+=t;let i=.03;if(this.u>i)if(this.u=0,0==this.p.length){let t=i/this.u,r=ve();Ce(r,e,this.l);let n=t*this.c.I;Se(this.v,r,we(n,n,n))}else Ae(this.v,0,0,0)}this.ac(t)}}ab(t,e,i){if(ye(this.w,e),null==i||16&this.c.b)Ge(this.d,t);else{let e=je();We(e,i),Ye(this.d,e,t)}let r=ve();ri(r,t),this.k=r[0]}ac(t){if((t=Math.max(t,0))<.1)ye(this.n,this.o);else{let e=Math.floor(t/.1);t=-.1*e+t;let i=Math.min(Math.floor(this.I.i().lifespan/.1),e),r=i+1,n=1;n=r<0?(1&r|r>>1)+(1&r|r>>1):r,Fe(this.n,this.o,1/n);for(let t=0;tMath.max(this.I.g(r.e),.001)?(this.ai(i),i--):this.aj(r,t,e)||(this.ai(i),i--),i++}}ae(t,e){t.a=ve(),t.b=ve(),t.c=ve(),t.d=0;let i=we(e,e,e),r=e*e*.5,n=we(r,r,r);Se(t.a,this.c.Q,i);let a=ve();this.I.j(a),Se(t.b,a,i),Se(t.c,a,n),t.d=this.c.J*e}af(t){if(!this.T)return;let e=this.I.d();for(this.x=this.x+t*e;this.x>1;)this.ag(t),this.x-=1}ag(t){let e=this.ah();if(this.I.k(e,t),!(16&this.c.b)){let t=er(e.a[0],e.a[1],e.a[2],1),i=er(e.c[0],e.c[1],e.c[2],0);lr(t,t,this.d),lr(i,i,this.d),ye(e.a,t),ye(e.c,i),8192&this.c.b&&(e.a[2]=0)}if(64&this.c.b){let t=1+this.I.i().speedVariation*this.J.e(),i=ve();Fe(i,this.v,t),Ee(e.c,e.c,i)}if(this.r>=2)for(let t=0;t<2;t++){e.f[t][0]=this.J.f(),e.f[t][1]=this.J.f();let a=fr();_r(a,this.c.aa[t],this.J.e()),i=e.g[t],r=a,n=this.c.Z[t],i[0]=r[0]+n[0],i[1]=r[1]+n[1]}var i,r,n}ah(){let t=new yn;return this.p.push(t),t}ai(t){this.p.splice(t,1)}aj(t,e,i){if(this.r>=2)for(let i=0;i<2;i++){let r=t.f[i][0]+e*t.g[i][0];t.f[i][0]=r-Math.floor(r),r=t.f[i][1]+e*t.g[i][1],t.f[i][1]=r-Math.floor(r)}Ee(t.c,t.c,i.a),16384&this.c.b&&2*e0)return!1}else{let i=ve();if(ii(i,this.d),Ce(e,t.a,i),Be(e,n)>0)return!1}}return!0}ak(t){if(this.F.length=0,0==this.p.length&&null!=this.I)return;We(this.f,t),mr(pr(),t),this.al(null,t);let e=0;for(let t=0;t=1e3)break}this.E=e}al(t,e){var i,r,n;16&this.c.b?Ye(this.g,e,this.d):null!=t?Ye(this.g,e,t):Ge(this.g,e),ii(this.h,e),4096&this.c.b&&(mr(this.i,this.g),16&this.c.b&&Math.abs(this.k)>0&&(i=this.i,r=this.i,n=1/this.k,i[0]=r[0]*n,i[1]=r[1]*n,i[2]=r[2]*n,i[3]=r[3]*n,i[4]=r[4]*n,i[5]=r[5]*n,i[6]=r[6]*n,i[7]=r[7]*n,i[8]=r[8]*n),Ae(this.j,this.i[6],this.i[7],this.i[8]),De(this.j)<=2.3841858e-7?Ae(this.j,0,0,1):Ue(this.j,this.j))}am(t){let e=0,i=0;if(0!=this.c.K||0!=this.c.N){let r=new pn(t.e);e=0==this.c.L?this.c.K:this.c.K+r.e()*this.c.L,i=0==this.c.N?this.c.M:this.c.M+r.e()*this.c.N}else e=this.c.K,i=this.c.M;return{deltaSpin:i,baseSpin:e}}an(t,e){let i=this.c.G,r=this.c.H,n=r[0],a=r[1]-n,s=0,o=t.e,l=t.b;if((i<1||0!=a)&&(s=127&l*this.c.F+o),i=1&&(r=1);let a=we(255,255,255),s=dr(1,1),o=1,l=e.c;this.c.y.i(r,a,l.b,this.H),this.H||Fe(l.b,l.b,1/255),this.c.A.i(r,s,l.a),l.e=this.c.z.i(r,1)/32767;let h=0;this.c.C.a.length>0?(o=0,l.c=this.c.C.i(r,o),l.c=this.y&l.c+this.z):65536&this.c.b?(h=(this.y+1)*n.d(),l.c=h/4294967296|0):l.c=0,o=0,l.d=this.c.D.i(r,o),l.d=l.d+this.z&this.y;let u=1;524288&this.c.b?(u=Math.max(1+n.e()*this.c.B[1],99999997e-12),l.a[0]=Math.max(1+n.e()*this.c.B[0],99999997e-12)*l.a[0]):(u=Math.max(1+n.e()*this.c.B[0],99999997e-12),l.a[0]=u*l.a[0]),l.a[1]=u*l.a[1]}ap(t,e){let i=dr((e.c.c&this.B)*this.C,(e.c.c>>this.A)*this.D),r=0,n=0,a=this.am(t);r=a.baseSpin,n=a.deltaSpin;let s=0,o=we(0,0,0),l=we(0,0,0),h=!1,u=!1;if(4&this.c.b&&De(t.c)>2.3841858e-7)if(s=1,4096&this.c.b)h=!0;else{let i=er(-t.c[0],-t.c[1],-t.c[2],0);lr(i,i,this.g);let r=ve();ye(r,i);let n=0,a=De(r);n=a<=2.3841858e-7?0:1/Math.sqrt(a);let s=ve();ye(s,r),Fe(s,s,n),ye(o,s),Fe(o,o,e.c.a[0]),l=we(s[1],-s[0],0),Fe(l,l,e.c.a[1]),u=!0,h=!1}if((4096&this.c.b||h)&&!u){let i=pr();c=i,f=this.i,c[0]=f[0],c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=f[6],c[7]=f[7],c[8]=f[8];let a=e.c.a[0];if(s){let r=0,n=we(-t.c[0],-t.c[1],-t.c[2]),s=De(n);r=s<=2.3841858e-7?0:1/Math.sqrt(s),vr(i,this.i,function(t,e,i,r,n,a,s,o,l){var h=new me(9);return h[0]=t,h[1]=e,h[2]=i,h[3]=r,h[4]=n,h[5]=a,h[6]=s,h[7]=o,h[8]=l,h}(n[0]*r,n[1]*r,0,-n[1]*r,n[0]*r,0,0,0,1)),r>2.3841858e-7&&(a=e.c.a[0]*(1/Math.sqrt(De(t.c))/r))}if(this.r,Ae(o,i[0],i[1],i[2]),Fe(o,o,a),Ae(l,i[3],i[4],i[5]),Fe(l,l,e.c.a[1]),n=l[0],u=!0,0!=this.c.M||0!=this.c.N){let e=r+n*t.b;512&this.c.b&&1&t.e&&(e=-e);let i=ve();ye(i,this.j),this.r;let a=pr(),s=xr();Tr(s,i,e),function(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=i+i,o=r+r,l=n+n,h=i*s,u=r*s,c=r*o,f=n*s,d=n*o,b=n*l,g=a*s,_=a*o,p=a*l;t[0]=1-c-b,t[3]=u-p,t[6]=f+_,t[1]=u+p,t[4]=1-h-b,t[7]=d-g,t[2]=f-_,t[5]=d+g,t[8]=1-h-c}(a,s),Ne(o,o,a),Ae(l,n,l[1],l[2]),Ne(l,l,a)}}var c,f;if(!u)if(0!=this.c.M||0!=this.c.N){let i=r+n*t.b;512&this.c.b&&1&t.e&&(i=-i);let a=Math.cos(i),s=Math.sin(i);Ae(o,a,s,0),Fe(o,o,e.c.a[0]),Ae(l,-s,a,0),Fe(l,l,e.c.a[1]),134217728&this.c.b&&Ee(e.a,e.a,we(l[0],l[1],0))}else Ae(o,e.c.a[0],0,0),Ae(l,0,e.c.a[1],0);return this.ar(o,l,e.a,e.c.b,e.c.e,i[0],i[1],t.f),0}aq(t,e){let i=dr((e.c.d&this.B)*this.C,(e.c.d>>this.A)*this.D),r=we(0,0,0),n=we(0,0,0),a=this.c.E;1024&this.c.b&&(a=Math.min(t.b,a));let s=Qi();Fe(s,t.c,-1),s[3]=0,lr(s,s,this.g),Fe(s,s,a);let o=we(s[0],s[1],0);if(Be(o,o)>1e-4){let t=1/Te(o);_r(e.c.a,e.c.a,t),gr(o,o,e.c.a),n=we(-o[1],o[0],0),Fe(r,s,.5),Ee(e.a,e.a,r)}else r=we(.05*e.c.a[0],0,0),n=we(0,.05*e.c.a[1],0);return this.ar(r,n,e.a,e.c.b,e.c.e,i[0],i[1],t.f),1}ar(t,e,i,r,n,a,s,o){const l=[-1,-1,1,1],h=[1,-1,1,-1],u=[0,0,1,1],c=[0,1,0,1];let f=ve(),d=fr(),b=fr(),g=fr();for(let _=0;_<4;_++)Ae(f,0,0,0),Re(f,f,t,l[_]),Re(f,f,e,h[_]),Ee(f,f,i),br(d,u[_]*this.C+a,c[_]*this.D+s),br(b,u[_]*this.c.Y[0]+o[0][0],c[_]*this.c.Y[0]+o[0][1]),br(g,u[_]*this.c.Y[1]+o[1][0],c[_]*this.c.Y[1]+o[1][1]),this.F.push(f[0]),this.F.push(f[1]),this.F.push(f[2]),this.F.push(r[0]),this.F.push(r[1]),this.F.push(r[2]),this.F.push(n),this.F.push(d[0]),this.F.push(d[1]),this.F.push(b[0]),this.F.push(b[1]),this.F.push(g[0]),this.F.push(g[1])}};const Fn=class{constructor(t){this.a=t.getFloat()}};const Rn=class{constructor(t){this.buffer=new DataView(t),this.position=0}getBool(){var t=0!=this.buffer.getUint8(this.position);return this.position+=1,t}getUint8(){var t=this.buffer.getUint8(this.position);return this.position+=1,t}getInt8(){var t=this.buffer.getInt8(this.position);return this.position+=1,t}getUint16(){var t=this.buffer.getUint16(this.position,!0);return this.position+=2,t}getInt16(){var t=this.buffer.getInt16(this.position,!0);return this.position+=2,t}getUint32(){var t=this.buffer.getUint32(this.position,!0);return this.position+=4,t}getInt32(){var t=this.buffer.getInt32(this.position,!0);return this.position+=4,t}getFloat(){var t=this.buffer.getFloat32(this.position,!0);return this.position+=4,t}getString(t){void 0===t&&(t=this.getUint16());for(var e="",i=0;i0){i.j=new Array(r);for(let t=0;t0){i.k=new Array(r);for(let t=0;t>1)+(1&e|e>>1));let r=i*this.l+this.G.b;this.p.b=r;let n=t/this.I,a=n;0!=(2147483648&n)&&(n=1&n|n>>1,a=n+n,r=this.p.b);let s=a*this.m+this.G.a;this.p.a=s,this.p.d=r+this.l,this.p.c=s+this.m}}aq(t,e,i){let r,n=this.i[2*this.d],a=this.i[2*this.d+1],s=ve();Fe(s,this.v,1-e),Ce(s,this.x,s),Fe(n.a,s,e),Fe(s,this.u,e),Ee(s,this.w,s),Fe(s,s,1-e),Ee(n.a,n.a,s),Fe(s,this.v,1-e),Ce(s,this.z,s),Fe(a.a,s,e),Fe(s,this.u,e),Ee(s,this.y,s),Fe(s,s,1-e),Ee(a.a,a.a,s),this.c[this.d]=t,r=i,this.d=this.d+r,this.d>=this.c.length&&(this.d-=this.c.length)}ar(t,e){if(this.a.S)return;let i=ve(),r=1;i=this.U.l.d(t,this.a.aX,i),r=this.U.m.d(t,this.a.aX),this.ao(i[0],i[1],i[2]),this.ak(r/32767);let n=this.U.n.d(t,this.a.aX);this.aj(n);let a=this.U.o.d(t,this.a.aX);this.ai(a);let s=this.U.p.d(t,this.a.aX);this.ap(s);let o=this.U.q.d(t,this.a.aX,1);this.af(0!=o);let l=je();ai(l,this.a.U,this.a.ap[this.U.b].m),Ze(l,l,this.U.c);let h=ve();this.am(l,h,null),this.as(e,!1)}as(t,e){let i,r,n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T,w,y,A,E,C,S,M,k,F,R,D,I,U,B,P,z,O,N,L,H,V,j,G,X,q,W,Y,Z;for(this.N||this.C>0&&(t=1/this.C+99999997e-12),t>=0?this.D<=t&&(t=this.D):t=0,v=this.e;v!=this.d&&!(t+this.c[v]<=this.D);v=this.e)this.e=this.at(this.e,1);if(!e&&this.M&&this.L&&this.J){D=t*this.C+this.f,Z=this.F,this.al();let e=!1;if(B=0,D<1?e=!0:(Y=this.f,U=1/(D-Y),m=Math.floor(D-1),B=Math.ceil(Math.max(m,0))),-1==B||e);else for(I=1,v=1;R=this.d,N=this.i.length,this.i[2*R].b=Z,x=2*this.d+1,L=this.i.length,this.i[x].b=Z,this.aq((v-Y)*U*-t,(v-Y)*U,1),-1!=--B;v=I)I+=1,Y=this.f;T=Math.floor(D),this.f=D-T,this.aq(0,1,0),F=this.d,H=this.i.length,w=this.i[2*F],y=this.p.b,w.c[1]=this.p.a,w.c[0]=y,A=2*this.d+1,V=this.i.length,E=this.i[A],C=this.p.b,E.c[1]=this.p.c,E.c[0]=C,k=this.d,j=this.i.length,this.i[2*k].b=Z,S=2*this.d+1,G=this.i.length,this.i[S].b=Z}this.A[2]=34028235e31,this.A[1]=34028235e31,this.A[0]=34028235e31,this.B[2]=-34028235e31,this.B[1]=-34028235e31,this.B[0]=-34028235e31,P=this.e;for(let e=this.e;e!=this.d;P=e)p=2*e,W=this.i.length,M=P,O=this.i[2*e],i=p+1,r=this.i[2*e+1],n=(this.S+this.S)*this.c[M]*t+t*this.S*t,O.a[2]=O.a[2]+n,r.a[2]=n+r.a[2],a=O.a[0],s=this.A[0],s>O.a[0]&&(s=O.a[0],this.A[0]=a,a=O.a[0]),o=O.a[1],l=this.A[1],l>o&&(l=O.a[1],this.A[1]=o,o=O.a[1]),h=O.a[2],u=this.A[2],u>h&&(u=O.a[2],this.A[2]=h,h=O.a[2]),a>this.B[0]&&(this.B[0]=a),o>this.B[1]&&(this.B[1]=o),h>this.B[2]&&(this.B[2]=h),c=r.a[0],s>r.a[0]&&(this.A[0]=c,c=r.a[0]),f=r.a[1],l>f&&(this.A[1]=f,f=r.a[1]),d=r.a[2],u>d&&(this.A[2]=d,d=r.a[2]),c>this.B[0]&&(this.B[0]=c),f>this.B[1]&&(this.B[1]=f),d>this.B[2]&&(this.B[2]=d),X=this.c.length,this.c[M]=t+this.c[M],b=this.l,q=this.c.length,g=b*this.c[M]*this.k+this.p.b,O.c[1]=this.p.a,O.c[0]=g,r.c[1]=this.p.c,r.c[0]=g,_=this.c.length,z=P+1,e=z-_,_>z&&(e=z);this.N=!0}at(t,e){let i=e+t;t=i;let r=this.c.length;return i>=r&&(t=i-r),t}au(t,e,i,r,n,a){let s,o,l,h,u,c,f,d;f=Math.ceil(t),d=Math.max(.25,e),s=Math.ceil(d*f),o=Math.ceil(Math.max(s+1+1,0)),this.c=new Array(o),this.e=0,this.d=0,this.f=0,this.J=!1,this.i=new Array(2*o);for(let t=0;t>1)+(1&a|a>>1)),this.l=(r.d-r.b)/l,h=n,0!=(2147483648&n)&&(h=(1&n|n>>1)+(1&n|n>>1)),this.m=(r.c-r.a)/h,this.n=1/this.l,this.o=1/this.m,this.C=f,this.D=d,ar(i,i,1/255),this.F=i,this.G=r,this.H=n,this.I=a,this.P=0,u=0*this.l+this.G.b,this.p.b=u,c=0*this.m+this.G.a,this.p.a=c,this.p.d=u+this.l,this.p.c=c+this.m,this.Q=10,this.R=10,this.S=0,this.M=!0,this.L=!0,this.K=!0}av(){let t=new Array(this.i.length);for(let e=0,i=0;ethis.a.aw.length)continue;let n=this.a.aw[i];if(!n.f||!n.f.f)continue;let a=r;a>=this.U.k.length&&(a=0);let s=this.a.av[this.U.k[a]];this.ab[r].b.uViewMatrix=this.a.aS.viewMatrix,this.ab[r].b.uProjMatrix=this.a.aS.projMatrix,this.ab[r].b.uTexture=n.f.d,this.ab[r].h=!1,this.ab[r].f=!1,this.ab[r].e=Un[s.b],this.ab[r].i=!this.a.aY;let o=this.d>this.e?2*(this.d-this.e)+2:2*(this.c.length+this.d-this.e)+2;this.ab[r].j=e.TRIANGLE_STRIP,this.ab[r].k=o,this.ab[r].l=2*this.e*2,t.push(this.ab[r])}}},On="uniform float x;\r\nuniform float y;\r\nuniform float width;\r\nuniform float height;\r\n\r\nattribute vec2 aTextCoord;\r\nvarying vec2 vTextCoords;\r\nvoid main() {\r\n vTextCoords = aTextCoord;\r\n\r\n vec2 pos = vec2(\r\n (x + aTextCoord.x*width)* 2.0 - 1.0,\r\n (y + aTextCoord.y*height)* 2.0 - 1.0\r\n );\r\n\r\n gl_Position = vec4(pos.x, pos.y, 0, 1);\r\n}";class Nn{constructor(){this.a=null,this.b=null,this.c=null}d(){null!=this.a&&this.a.h(),null!=this.b&&this.b.h(),null!=this.c&&this.c.h()}e(){return!(this.a&&!this.a.g())&&(!(this.b&&!this.b.g())&&!(this.c&&!this.c.g()))}}class Ln{constructor(){this.a=null,this.b=null,this.c=null,this.d={},this.i=new be}}let Hn=null,Vn=null,jn=null;class Gn{constructor(t,e,i){this.h=!1,this.e=t,this.f=e,this.g=i,function(t){Vn=t.createTexture(),t.bindTexture(t.TEXTURE_2D,Vn),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array([0,0,0,0])),t.bindTexture(t.TEXTURE_2D,null),jn=t.createTexture(),t.bindTexture(t.TEXTURE_2D,jn),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array([0,0,0,255])),t.bindTexture(t.TEXTURE_2D,null),Hn=new Ln;let e=Hn;e.a=se(t,[On,"precision mediump float;\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform int uBlendMode;\r\nuniform int layer;\r\nuniform vec2 screenResolution;\r\n\r\nfloat overlayBlend(float a, float b) {\r\n if (b <= 0.5) {\r\n return 2.0 * a * b;\r\n } else {\r\n return 1.0 - ((2.0 * (1.0 - a) * (1.0 - b)));\r\n// return (1.0 - (1.0 - 2.0 * (a - 0.5)) * (1.0 - b));\r\n }\r\n}\r\n\r\nfloat alphaStraightBlend(float a, float b, float alpha) {\r\n return (a * alpha) + (b * (1.0 - alpha));\r\n}\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 backGround = texture2D( renderResultTexture, gl_FragCoord.xy / screenResolution );\r\n\r\n //Blit and Inferior Alpha\r\n if (uBlendMode == 0 || uBlendMode == 4) {\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec3 finalColor = mix(backGround.rgb, diffuse.rgb, diffuse.a);\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n } else\r\n if (uBlendMode == 1) {\r\n // Multiply blending //\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec4 multTexture = diffuse;\r\n vec3 finalColor = (diffuse.rgb * backGround.rgb);\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n } else if (uBlendMode == 2) {\r\n // Overlay Blending //\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec4 overlayTex = diffuse;\r\n\r\n vec3 finalColor = vec3(\r\n overlayBlend(overlayTex.r, backGround.r),\r\n overlayBlend(overlayTex.g, backGround.g),\r\n overlayBlend(overlayTex.b, backGround.b)\r\n );\r\n\r\n diffuse = vec4(finalColor, 1.0);\r\n// diffuse = vec4(finalColor.rgb, overlayTex.a);\r\n } else if (uBlendMode == 3) {\r\n// if (diffuse.a > 0.5) discard;\r\n // Alpha Straight //\r\n vec4 overlayTex = diffuse;\r\n\r\n float alphaMult = 1.0;\r\n vec3 finalColor = vec3(\r\n alphaStraightBlend(overlayTex.r, backGround.r, alphaMult*overlayTex.a),\r\n alphaStraightBlend(overlayTex.g, backGround.g, alphaMult*overlayTex.a),\r\n alphaStraightBlend(overlayTex.b, backGround.b, alphaMult*overlayTex.a)\r\n );\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n// diffuse = vec4(1.0,1.0,1.0, 1.0-overlayTex.a);\r\n }\r\n\r\n gl_FragColor = diffuse;\r\n}"],null,null),e.b=se(t,[On,"precision mediump float;\r\n\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform int uBlendMode;\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 specular = texture2D( uSpecularTexture, vTextCoords.xy );\r\n if (diffuse.a < 0.001) discard;\r\n gl_FragColor = vec4(specular.rgb, 1.0);\r\n}"],null,null),e.c=se(t,[On,"precision mediump float;\r\n\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform vec2 screenResolution;\r\nuniform int uBlendMode;\r\nuniform float emissiveAlphaOverride;\r\nuniform int layer;\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 emissive = texture2D( uEmissiveTexture, vTextCoords.xy );\r\n vec4 backGround = texture2D( renderResultTexture, gl_FragCoord.xy / screenResolution );\r\n\r\n if (diffuse.a < 0.001) discard;\r\n// if (emissive.a < 0.001) discard;\r\n\r\n //TODO: This is a hack from what was obeserved in Nightbourn texture customization with tatoos.\r\n //TODO: But Maybe switch should be over layer or something else instead of blend\r\n float alpha = 1.0;\r\n\r\n if (emissiveAlphaOverride > -1.0) {\r\n alpha = emissiveAlphaOverride;\r\n } else if (layer <= 1) {\r\n alpha = 0.0;\r\n } else {\r\n alpha = emissive.a;\r\n }\r\n\r\n\r\n gl_FragColor = vec4(emissive.rgb, alpha);\r\n}"],null,null),e.d={},e.f=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,e.f),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),e.e=t.createBuffer(),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.e),t.bufferData(t.ELEMENT_ARRAY_BUFFER,new Int16Array([0,1,2,1,3,2]),t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),e.g=t.createFramebuffer(),e.h={loc:t.getAttribLocation(e.a.program,"aTextCoord"),type:t.FLOAT,size:2,offset:0,stride:0}}(t)}i(){let t=this.e;this.d&&t.deleteTexture(this.d),this.a&&t.deleteTexture(this.a),this.b&&t.deleteTexture(this.b),this.c&&t.deleteTexture(this.c),this.d=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.d),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.a=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.a),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.b=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.b),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.c=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.c),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,Hn.g),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.a,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.b,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.c,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.useProgram(Hn.b.program),t.bindBuffer(t.ARRAY_BUFFER,Hn.f),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,Hn.e),Hn.i.disableAll(),Hn.i.enable(t,[Hn.h]),t.viewport(0,0,this.f,this.g)}j(t,e,i,r,n,a,s,o){let l=this.e;Hn.d.x=e,Hn.d.y=i,Hn.d.width=r,Hn.d.height=n,null==t.b&&null==t.c||(this.h=!0);let h=0;4==a?h=1:6==a?h=2:9==a?h=3:15==a&&(h=4),Hn.d.uBlendMode=h,Hn.d.screenResolution=new Float32Array([this.f,this.g]),Hn.d.uDiffuseTexture=null!=t.a?t.a.d:Vn,Hn.d.uSpecularTexture=null!=t.b?t.b.d:Vn,Hn.d.uEmissiveTexture=null!=t.c?t.c.d:jn,Hn.d.renderResultTexture=null!=this.d?this.d:Vn,Hn.d.layer=s,Hn.d.emissiveAlphaOverride=o,l.disable(l.CULL_FACE),l.disable(l.DEPTH_TEST),l.disable(l.BLEND),l.useProgram(Hn.a.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.a,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.a,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(Hn.b.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.b,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.b,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(Hn.c.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.c,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.c,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(null)}k(){let t=this.e;t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.CULL_FACE),t.enable(t.DEPTH_TEST)}}class Xn{constructor(t,e){this.a=t,this.b=e}c(){const t=[];for(let e of this.b.Options)for(let i of e.Choices)for(let e of i.Elements)e.SkinnedModel&&t.push(e.SkinnedModel.CollectionFileDataID);const e=new Set(t);if(0!=e.size){e.size>1&&WH.debug("more than 1 skinned model detected!");let i=t[0],r={type:hi.PATH,id:i,parent:this.a,shoulder:0};this.a.aR=new $n(this.a.aS,this.a.k,r,0,!1,!1,!1)}}d(t){return gn.a(this.a,this.b.TextureFiles[t],this.a.o,this.a.p,this.a.n)}e(t){WH.debug("applyCustomization options",t),this.a.M=[],this.a.bu(0);for(let t=0;ti.Id==t[e].optionId));if(WH.debug("option",i),i){let r=i.Choices.find((i=>i.Id==t[e].choiceId));if(WH.debug("choice",r),r){let e=r.Elements.filter((e=>e.BoneSet&&e.BoneSet.BoneFileDataID&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));e.length>0&&this.a.bu(e[0].BoneSet.BoneFileDataID);let n=r.Elements.filter((e=>e.Material&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));n.sort(((t,e)=>e.VariationChoiceID-t.VariationChoiceID)),n.forEach((t=>{WH.debug("element material",t);let e=this.d(t.Material.MaterialResourcesID);if(!e)return void WH.debug("element material: can't get texture files for material",t);let i=this.b.TextureLayers.find((e=>e.ChrModelTextureTargetID==t.Material.TextureTarget));i?1==i.TextureType?t.Material.TextureTarget==Li?this.a.C[1][0]=this.a.bA(1,e):this.a.D[t.Material.TextureTarget]||(this.a.D[t.Material.TextureTarget]=this.a.bA(i.TextureSection,e)):6==i.TextureType?this.a.C[6][0]=this.a.bA(6,e):7==i.TextureType?this.a.C[7][0]=this.a.bA(7,e):8==i.TextureType?this.a.C[8][0]=this.a.bA(8,e):10==i.TextureType?this.a.C[10][0]=this.a.bA(10,e):19==i.TextureType?this.a.C[19][0]=this.a.bA(19,e):20==i.TextureType?this.a.C[20][0]=this.a.bA(20,e):21==i.TextureType?this.a.C[21][0]=this.a.bA(21,e):22==i.TextureType?this.a.C[22][0]=this.a.bA(22,e):WH.debug("unhandled texture type",i.TextureType,"target",t.Material.TextureTarget):WH.debug("element material: can't get texture layer for material",t)})),r.Elements.filter((e=>e.Geoset&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element geoset",t),this.a.bD(t.Geoset)})),r.Elements.filter((e=>e.SkinnedModel&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element skinnedmodel",t),this.a.aR&&this.a.aR.bD(t.SkinnedModel)}));let a=r.Elements.find((e=>0!=e.CondModelFileDataId&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));if(24==i.Id||353==i.Id)if(a&&!this.a.c){WH.debug("element condModel",a);let e=this.a.aS,i=this.a.a,r=e.models.indexOf(this.a);if(r>-1){e.models.splice(r,1),WH.debug("test 1!",t,e.options,i),e.options.charCustomization=this.a.q;let n=new $n(e,e.options,i,r,!0,!1,!1,a.CondModelFileDataId);return n.q=this.a.q,e.models.push(n),void this.a.ba()}}else if(!a&&this.a.c){let e=this.a.aS,i=this.a.a,r=e.models.indexOf(this.a);if(r>-1){e.models.splice(r,1),WH.debug("test 2!",t,e.options,i),e.options.charCustomization=this.a.q;let n=new $n(e,e.options,i,r,!0,!1,!1);return n.q=this.a.q,e.models.push(n),void this.a.ba()}}r.Elements.filter((e=>e.ChrCustItemGeoModifyID&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element ChrCustItemGeoModify",t),this.a&&this.a.M.push(t.ChrCustItemGeoModifyID)}))}}}if(!this.a.C[6][0]){let e=this.b.Options.find((t=>t.Id==this.b.HairStyleOptionId));if(e){let i=e.Choices[1];if(i){let e=i.Elements.filter((e=>e.Material&&e.Material.TextureTarget==Hi&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));if(e.length>0){let t=this.d(e[0].Material.MaterialResourcesID);t&&(this.a.C[6][0]=this.a.bA(6,t))}}}}}f(){let t=[];for(let e=0;ee.optionId==t.Id))||e.options.push({optionId:t.Id,choiceId:t.Choices[0].Id});return e}}const qn=function(t,e){const i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)},Wn=44,Yn=4400,Zn="DressingRoom",Jn="Stand";class Kn{constructor(t,e,i,r,n,a,s,o){this.e=!1,this.r=0,this.s=null,this.t=null,this.E=[],this.M=[],this.R=new Ir,this.T=!1,this.an=[],this.aG=[],this.aH=[],this.aJ=null,this.aQ=!1,this.aT=null,this.aU=null,this.aV=null,this.aX=[],this.aY=!1;var l=this;if(l.e=n,l.aS=t,l.a=i,l.b=r,l.c=o,l.d=!1,l.f=!0,l.g=!0,this.h=!1,l.ad=a,l.k=e,"classic"==l.k.gameDataEnv?(pi[14]=14,pi[15]=15):(pi[14]=22,pi[15]=22),l.i=null,l.l=l.k.mount&&l.k.mount.type==hi.NPC&&l.k.mount.id==l.a.id,l.j=null,l.m=l.k.pet&&l.k.pet.type==hi.NPC&&l.k.pet.id==l.a.id,l.a.type==hi.CHARACTER&&l.k.mount&&l.k.mount.type==hi.NPC&&l.k.mount.id&&(l.k.mount.parent=l,l.i=new Kn(t,e,l.k.mount,0,!1,!1,!1)),l.a.type==hi.CHARACTER&&l.k.pet&&l.k.pet.type==hi.NPC&&l.k.pet.id&&(l.k.pet.parent=l,l.j=new Kn(t,e,l.k.pet,0,!1,!1,!1)),l.k.extraModels&&!l.a.parent){l.A=[];const i=l.k.extraModels;if($.isArray(i))for(let r=0;r{e.x(),t.x.set(i,null)})),t.i&&t.i.ba(),t.i=null,t.j&&t.j.ba(),t.j=null,t.aR&&t.aR.ba(),t.aR=null,t.a=null,t.x=null,t.B=null,t.C=null,t.J=null,t.U=null,t.W=null,t.X=null,t.Y=null,t.Z=null,t.aa=null,t.ab=null,t.ae=null,t.af=null,t.ag=null,t.boundsSize=null,t.aM=null,t.aN=null,t.aO=null,t.aP=null}getNumAnimations(){const t=this.i?this.i:this;return t.an?t.an.length+1:0}getAnimation(t){const e=this.i?this.i:this;return e.an&&t>-1&&te.f(t)))}setAnimNoSubAnim(t){this.T=t}bg(t){var e;null===(e=this.j)||void 0===e||e.setAnimation(t)}setItems(t){WH.debug("setItems",t);const e=[];for(let i=0;i{const e=[parseInt(t[0]),parseInt(t[1])];this.k.items.push(e)})),this.bK(e),this.w=!0}attachList(t){WH.debug("attachList",t);const e=t.split(","),i=[];for(let t=0;t{const e=[parseInt(t[0]),parseInt(t[1])];this.k.items.push(e)})),this.bK(i),this.w=!0}clearSlots(t){WH.debug("clearSlots",t);const e=t.split(",");for(let t=0;t{0!=this.k.items[t].indexOf(parseInt(e))&&i.push(e)})),this.k.items=i}this.bJ(),this.w=!0}setShouldersOverride(t){if(WH.debug("setShouldersOverride",t),!t||2!=t.length)return;for(let t=0;t<2;t++){const e=this.y[t];e&&e.x(),this.y[t]=null}for(let e=0;e<2;e++)if(null!=t[e]){const i=new _n(this,wi,t[e],this.n,this.o);let r=0;r=0==e?1:2,i.B(r),this.y[e]=i}const e=this.x.get(wi);if(e){let t=3;for(let e=0;e<2;e++)this.y[e]&&(t&=~(1<{if(e.i)for(let i=0;ie.e(t))))}by(t){let e=this,i=e.aS.context;if(!e.ak||!e.al)return;const r=10*e.ak.length;if(e.aT||(e.aT=new Float32Array(r)),t){var n=e.aT,a=e.ak;for(let t=0,e=0;t0&&(s.v&&(i=s.v.g(e.R,this.aX)),s.w[0]&&(i[3]*=s.w[0].d(e.R,this.aX))),i[3]<.01)continue;let o=s.p;for(let i=0;i0)for(let e=0;e0&&(i.a=new an(this,t,e.a)),e.b>0&&(i.b=new an(this,t,e.b)),e.c>0&&(i.c=new an(this,t,e.c)),i}bB(){this.aQ||(this.a.type!=hi.CHARACTER&&this.a.type!=hi.NPC&&this.a.type!=hi.HUMANOIDNPC||this.n<1?this.bF():(this.bH(),this.aK||(this.w=!0)))}bC(t){t&&(this.J[t.geosetType]=100*t.geosetType+t.geosetID)}bD(t){t&&(this.K[t.GeosetType]=100*t.GeosetType+t.GeosetID)}bE(t,e,i){if(!this.at||0==this.at.length)return!1;let r;for(let n=0;n=t&&r.meshId<=e&&(r.show=i);return!0}bF(){if(this.bE(0,0,!0),0!=this.O&&(this.bE(1,1699,!1),this.N))for(let t of this.N){let e=100*(t.GeosetIndex+1),i=e+t.GeosetValue;this.bE(e,e+99,!1),this.bE(i,i,!0)}}bG(t,e){let i=[];for(let t=0;t0?i+e:r,a=t.at.some((t=>t.meshId==n));n=a?n:r,t.bE(n,n,!0)}function f(t,e,i){if(!t.at)return;let r=100*i,n=r+t.L[i]+e;t.bE(r,r+99,!1),t.bE(n,n,!0)}if(t.x.forEach((t=>{if(t&&t.q){let e=t.q;e.bE(0,Yn,!1),t.b==Ti?(c(e,t.k[0],2700),c(e,t.k[1],2100)):t.b==wi?c(e,t.k[0],2600):t.b==yi?(c(e,t.k[0],800),c(e,t.k[1],1e3)):t.b==Ai||t.b==Bi?(c(e,t.k[0],800),c(e,t.k[1],1e3),c(e,t.k[2],1300),c(e,t.k[3],2200),c(e,t.k[4],2800)):t.b==Ei?c(e,t.k[0],1800):t.b==Ci?(c(e,t.k[0],1100),c(e,t.k[1],900),c(e,t.k[2],1300)):t.b==Si?(c(e,t.k[0],500),c(e,t.k[1],2e3)):t.b==ki?(c(e,t.k[0],400),c(e,t.k[1],2300)):t.b==Ii?c(e,t.k[0],1500):t.b==Ui&&c(e,t.k[0],1200)}})),t.x.forEach((t=>{if(t&&t.i)for(let e of t.i){let i=e.e;t.b==Ti?(f(i,t.l[0],27),f(i,t.l[1],21)):t.b==wi?f(i,t.l[0],26):t.b==yi?(f(i,t.l[0],8),f(i,t.l[1],10)):t.b==Ai||t.b==Bi?(f(i,t.l[0],8),f(i,t.l[1],10),f(i,t.l[2],13),f(i,t.l[3],22),f(i,t.l[4],28)):t.b==Ei?f(i,t.l[0],18):t.b==Ci?(f(i,t.l[0],11),f(i,t.l[1],9),f(i,t.l[2],13)):t.b==Si?(f(i,t.l[0],5),f(i,t.l[1],20)):t.b==ki?(f(i,t.l[0],4),f(i,t.l[1],23)):t.b==Ii?f(i,t.l[0],15):t.b==Ui&&f(i,t.l[0],12)}})),e){const i=t.n,r=t.o==ui.MALE?e.v:e.w;if(r)for(let e=0;e2?(t.bE(1300,1399,!1),t.bE(i,i,!0)):m||t.bE(i,i,!0)}if(u&&u.k&&u.k[0]){t.bE(1500,1599,!1);let e=1501+u.k[0];if(this.M.length>0)for(let t of this.M){const i=li[t];i&&15==i.a&&i.b==u.k[0]+1&&(e=1500+i.c)}t.bE(e,e,!0)}if(n&&n.k&&n.k[0]){t.bE(1800,1899,!1);let e=1801+n.k[0];t.bE(e,e,!0)}if(a||p||_||m||b?t.bE(1400,1499,!1):t.bE(1401,1401,!0),t.aR){let e=t.aR;e.bE(0,Yn,!1);for(let t=0;tt.meshId==i))){let e=100*t;this.bE(e,e+99,!1)}}}}bI(){var t=this;let e=!1;if(t.x.forEach((t=>{if(t.m||t.n){if(t.j)for(let i=0;i{let e=t.e;e!=yi&&e!=Ai&&e!=Ui||(s=!1),e==Ci&&(o=!1)}));let l,h=Yi;a.f!=a.g&&(h=Zi);let u=this.F.b.TextureLayers,c=this.F.b.TextureSections,f=-1;if(this.n==bi)for(let t of u)9==t.BlendMode&&1==t.TextureType&&t.Layer>f&&(f=t.Layer);for(let e of u){if(1!=e.TextureType)continue;if(0==e.Layer){a.j(t.C[1][0],0,0,1,1,0,0,0);continue}let i=-1;e.Layer==f&&(i=0);let r=this.D[e.ChrModelTextureTargetID];if(r){if(!r.e())return void WH.debug("texture target",e.ChrModelTextureTargetID,"layer",e.Layer,"not ready!");let t=e.TextureSection;if(t!=Gi&&t!=Xi||s&&t==Gi||o&&t==Xi){let n=0,s=0,o=1,u=1;if(-1!=t)if(c){let e=c.find((e=>e.SectionType==t));n=e.X,s=e.Y,o=e.Width,u=e.Height}else l=h[t],n=l.x,s=l.y,o=l.w,u=l.h;a.j(r,n,s,o,u,e.BlendMode,e.Layer,i)}}}let d=[];t.x.forEach((t=>{d.push(t)})),d.sort((function(t,e){return t.f-e.f}));for(let e=0;e0&&i0&&i[0],[Ni]:t=>2==t.c&&18==t.d?[1]:null};if(this.aB&&this.aC){const n={1:t=>[11],3:t=>[6,5],22:t=>{var e;return(null===(e=r[t.b])||void 0===e?void 0:e.call(r,t))||[2]},21:t=>[1],17:t=>[1],15:t=>[2],25:t=>[1],13:t=>[1],14:t=>[0],23:t=>[2],6:t=>[53],26:t=>[1],16:t=>[57],27:t=>[55]};if(n[t]){const r=n[t](e);for(let n=0;n=0||this.I>=0||this.i)&&Ki[t]&&(a=Ki[t]),this.H>=0&&t==Pi&&$i[this.H][t]&&(a=$i[this.H][t]),this.I>=0&&t==zi&&$i[this.I][t]&&(a=$i[this.I][t]),e.g==Di&&this.I>=0&&t==zi&&$i[this.I][e.b]&&(a=$i[this.I][e.b]),a>=this.aC.length||-1==this.aC[a]||i.push(this.aC[a])}}}return i}bO(){if(this.at){for(let t=0;t0&&(null===(r=null===(i=n.u)||void 0===i?void 0:i.Creature)||void 0===r?void 0:r.CreatureCustomizations)){let t=n.F.g(n.u.Creature.CreatureCustomizations);n.setAppearance(t)}else n.F.f();n.w&&n.bB()})),n.u.Creature&&n.u.Creature.Texture&&(n.aK=this.bA(-1,gn.a(null,n.u.TextureFiles[n.u.Creature.Texture],3,0,0))),n.bQ(hi.PATH,e),n.u.Equipment&&n.bK(n.u.Equipment),n.k.items&&n.bK(n.k.items),n.k.shouldersOverride&&n.setShouldersOverride(n.k.shouldersOverride),n.a.type!=hi.CHARACTER&&n.u.Race>0){if(n.F&&(null===(r=null===(i=n.u)||void 0===i?void 0:i.Creature)||void 0===r?void 0:r.CreatureCustomizations)){let t=n.F.g(n.u.Creature.CreatureCustomizations);n.q=t}}else n.k.charCustomization&&(n.q=n.k.charCustomization)}else if(e==hi.HELM){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0];a&&t.ModelFiles&&t.ModelFiles[a]&&(27==t.Item.InventoryType?n.bQ(hi.PATH,t.ModelFiles[a][0].FileDataId):(n.v||t.ModelFiles[a].some((t=>t.Race==e))||(e=t.ModelFiles[a][0].Race),n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],-1,i,r,e))))}if(t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[parseInt(e)]=new an(n,parseInt(e),t.Textures[e]))}else if(e==hi.SHOULDER){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0],s=t.ComponentModels[1];if(1==n.a.shoulder||void 0===n.a.shoulder&&a){if(a&&t.ModelFiles[a]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],0,i,r,e)),t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]))}else if((2==n.a.shoulder||void 0===n.a.shoulder&&s)&&(s&&t.ModelFiles[s]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[s],1,i,r,e)),t.Textures2))for(let e in t.Textures2)0!=t.Textures2[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures2[e]))}}else if(e==hi.ITEMVISUAL)n.bQ(hi.PATH,t.Equipment[n.b]);else if(e==hi.ITEM){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0];a&&t.ModelFiles&&t.ModelFiles[a]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],-1,i,r,e))}if(t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]))}else{if(t.stateKit&&this.E.push(new dn(this,t.stateKit.effects)),t.Creature&&(n.N=t.Creature.CreatureGeosetData,n.O=t.Creature.CreatureGeosetDataID),t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]));else if(t.ComponentTextures&&n.v){let e=n.v.o;for(let i in t.ComponentTextures){let r=t.TextureFiles[t.ComponentTextures[i]];for(let t=0;t0){const e=_i[t.Race]+ui[t.Gender];n.n=t.Race,n.o=t.Gender,n.bQ(hi.CHARACTER,e)}}}bT(t){if(!t)return void console.error("Bad buffer for DataView");let e=this,i=new Rn(t);if(604210112!=i.getUint32())return void console.log("Bad magic value");if(i.getUint32()<2e3)return void console.log("Bad version");e.aj=i.getUint32();var r=i.getUint32(),n=i.getUint32(),a=i.getUint32(),s=i.getUint32(),o=i.getUint32(),l=i.getUint32(),h=i.getUint32(),u=i.getUint32(),c=i.getUint32(),f=i.getUint32(),d=i.getUint32(),b=i.getUint32(),g=i.getUint32(),_=i.getUint32(),p=i.getUint32(),m=i.getUint32(),v=i.getUint32(),x=i.getUint32(),T=i.getUint32(),w=i.getUint32(),y=i.getUint32(),A=i.getUint32(),E=i.getUint32(),C=i.getUint32(),S=i.getUint32(),M=i.getUint32();let k=new Uint8Array(t,i.position),F=null;try{F=(0,Zr.inflate)(k)}catch(t){return void console.log("Decompression error: "+t)}if(F.length0){e.ak=new Array(D);for(let t=0;t0){e.al=new Array(R);for(let t=0;t0){e.am=new Array(R),e.aX=new Array(R);for(let t=0;t0){e.an=new Array(I);for(let t=0;t0){e.ao=new Array(U);for(let t=0;t0){e.ap=new Array(B);for(let t=0;t0){e.aq=new Array(P);for(let t=0;t0){e.ar=new Array(z);for(let t=0;t0){e.as=new Array(O);for(let t=0;t0){e.at=new Array(N);for(let t=0;t0){e.au=new Array(L);for(let t=0;t0){e.av=new Array(H);for(let t=0;t0){e.aw=new Array(V);for(let t=0;t0){e.ax=new Array(j);for(let t=0;t0){e.ay=new Array(G);for(let t=0;t0){e.az=new Array(X);for(let t=0;t0){e.aA=new Array(q);for(let t=0;t0){e.aB=new Array(W);for(let t=0;t0){e.aC=new Array(Y);for(let t=0;t0){e.aD=new Array(Z);for(let t=0;t0){e.aE=new Array(J);for(let t=0;t0){e.aF=new Array(K);for(let t=0;t0){e.aG=new Array($);for(let t=0;t<$;++t)e.aG[t]=new kn(e,i)}i.position=S;var Q=i.getInt32();if(Q>0&&S>0){e.aI=new Array(Q);for(let t=0;t0){e.aH=new Array(tt);for(let t=0;t0&&(t.P=t.aS.time),this.e&&this.R.a&&this.R.a.b){let i=ve();const r=[4,119,233,242,348,526,527,544,545];[5,143,234,524,525,540,541,556,557].indexOf(this.R.a.b.a)>-1?i=we(0,-5*e/1e3,0):r.indexOf(this.R.a.b.a)>-1&&(i=we(0,-3*e/1e3,0));let n=je();if(ti(n,i),this.bU(n),this.i&&this.i.bU(n),this.aR&&this.aR.bU(n),t.A)for(let e=0;e-1){let t=e;for(let e=0;e0&&(this.aX[e]%=this.am[e]);this.bX(this.R,t)}let i,r,n,a=t.at?t.at.length:0;for(let e=0;e0&&(i=t.ap[e.h[a]],Oe(s,e.a,i.m),lr(l,e.b,i.m),o[n+0]+=s[0]*r,o[n+1]+=s[1]*r,o[n+2]+=s[2]*r,o[n+3]+=l[0]*r,o[n+4]+=l[1]*r,o[n+5]+=l[2]*r);e.i[0]=o[n+0],e.i[1]=o[n+1],e.i[2]=o[n+2],e.j[0]=o[n+3],e.j[1]=o[n+4],e.j[2]=o[n+5]}t.by(!1),t.ac||(t.ac=!0,t.bz())}}if(t.i&&t.i.d){const e=t.i.aB[t.i.aC[0]],i=1/t.i.u.Scale;Ae(t.aN,i,i,i),qe(t.aM),Je(t.aM,t.aM,t.aN),t.bs(t.i.U,t.i.ap[e.b].m,e.c,t.aM)}if(t.j&&t.j.d){const e=t.aB[t.aC[19]],i=t.k.pet.scale||.2/t.j.u.Scale;Ae(t.aN,i,i,i),qe(t.aM),Je(t.aM,t.aM,t.aN);const r=xe(e.c);Ee(r,r,t.k.pet.offset||we(0,-1.25,0)),t.j.bs(t.U,t.ap[e.b].m,r,t.aM)}si[t.a.id]&&!t.v&&(qe(t.U),Ae(t.aN,1,1,-1),Je(t.U,t.U,t.aN)),t.w&&t.bI()}bX(t,e){if(t.a.c+=e,t.b.a<0&&!this.T&&!t.d)if(t.a.b.h>-1){let e=32767*Math.random(),i=0,r=t.a.a,n=this.an[r];for(i+=n.d;i-1;)r=n.h,n=this.an[r],i+=n.d;t.b.a=r,t.b.b=this.an[r],t.b.c=0}else{let e=this.an.find((e=>e.a==t.a.b.a&&0==e.b));e&&(t.b.a=e.i,t.b.b=e,t.b.c=0)}let i=t.a,r=t.b,n=i.b.g-i.c,a=0,s=null;if(r.a>-1&&(s=this.an[r.a],a=s.e),a>0&&n=i.b.g)if(r.a>-1){if(r.a>-1)for(;0==(32&this.an[r.a].c)&&(64&this.an[r.a].c)>0&&(r.a=this.an[r.a].i,r.b=this.an[r.a],!(r.a<0)););t.a=r,t.b=new Dr,t.c=1}else i.b.g>0&&(i.c=qn(i.c,i.b.g))}bY(t){var e=this;if(this.v?ir(e.V,this.v.V):e.V=er(1,1,1,1),e.i&&e.i.bY(t),e.d){if(e.j&&e.j.bY(t),e.bW(),this.E&&this.E.forEach((e=>e.g(t))),e.aW={uModelMatrix:e.U,uViewMatrix:e.aS.viewMatrix,uProjMatrix:e.aS.projMatrix,uCameraPos:e.aS.eye,uAmbientColor:e.W,uDiffuseColor:e.V,uPrimaryColor:e.X,uSecondaryColor:e.Y,uLightDir1:e.Z,uLightDir2:e.aa,uLightDir3:e.ab},e.aU&&e.aL)for(let i=0;i{if(i){if(2==i.c&&13==i.d){if(i.e==Pi&&-1!=e.H)return;if(i.e==zi&&-1!=e.I)return}i.C(t)}})),e.y.forEach(((e,i)=>{e&&e.i&&e.C(t)})),e.A)for(let i=0;i{i&&i.q&&e.bG(i.q,t)}))}}}const $n=Kn,Qn={2:"Wowhead",3:"LolKing",6:"HeroKing",7:"DestinyDB"};class ta{constructor(t){if(!t.type||!Qn[t.type])throw"Viewer error: Bad viewer type given";if(!t.container)throw"Viewer error: Bad container given";if(!t.aspect)throw"Viewer error: Bad aspect ratio given";if(!t.contentPath)throw"Viewer error: No content path given";console.log("Creating viewer with options",t),this.type=t.type,this.container=t.container,this.aspect=parseFloat(t.aspect),this.renderer=null,this.options=t;const e=this.container.width(),i=Math.round(e/this.aspect);this.init(e,i)}destroy(){this.renderer&&this.renderer.destroy(),this.options=null,this.container=null}init(t,e){if(void 0!==typeof window.Uint8Array&&void 0!==typeof window.DataView)try{const t=document.createElement("canvas");if(!(t.getContext("webgl",{alpha:!1})||t.getContext("experimental-webgl",{alpha:!1})))return void console.log("viewer init failed")}catch(t){return void console.log("viewer init failed")}this.mode=1,this.renderer=new ia(this),this.renderer.resize(t,e),this.renderer.init()}setAdaptiveMode(t){this.renderer.setAdaptiveMode(t)}setZoom(t){this.renderer.zoom.target=t}setOffset(t,e){this.renderer.setTranslation(t,e,0)}setFullscreen(t){t?ta.requestFullscreen(this.renderer.canvas[0]):ta.exitFullscreen()}method(t,e){return void 0===e&&(e=[]),this.renderer?this.renderer.method(t,[].concat(e)):null}option(t,e){return void 0!==e&&(this.options[t]=e),this.options[t]}static isFullscreen(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}static requestFullscreen(t){document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||(t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen&&t.msRequestFullscreen())}static exitFullscreen(){(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)&&(document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen())}}const ea=ta;const ia=class{constructor(t){this.currFrame=0,this.clearColor=we(0,0,0),this.addedCss=!1,this.progressShown=!1,this.attributeState=new be,this.onContextMenu=function(t){return!1};var e=this;e.viewer=t,e.options=t.options,e.downloads={},e.context=null,e.width=0,e.height=0,e.time=0,e.delta=0,e.models=[],e.screenshotDataURL=null,e.makeDataURL=!1,e.screenshotCallback=null,e.azimuth=1.5*Math.PI,e.zenith=Math.PI/2,e.distance=15,e.fov=30,e.zoom={rateStep:.1,rateAccelerationDecay:.4,interpolationRate:.3,range:[.3,4],rateCurrent:0,target:1,current:1},e.zoom.range=e.zoom.range.map((function(t){return Math.log(t)/Math.log(1+e.zoom.rateStep)})),e.translation=we(0,0,0),e.target=we(0,0,0),e.eye=we(0,0,0),e.up=we(0,0,1),e.lookDir=ve(),e.fullscreen=!1,e.projMatrix=je(),e.viewMatrix=je(),e.panningMatrix=je(),e.viewOffset=ve(),e.aniFilterExt=null,e.aniFilterMax=0,this.addedCss||(this.addedCss=!0,$("head").append(''))}updateProgress(){var t=this,e=0,i=0;for(var r in t.downloads)e+=t.downloads[r].total,i+=t.downloads[r].loaded;if(e<=0)t.progressShown&&(t.progressBg.hide(),t.progressBar.hide(),t.progressShown=!1);else{t.progressShown||(t.progressBg.show(),t.progressBar.show(),t.progressShown=!0);var n=i/e;t.progressBar.width(Math.round(t.width*n)+"px")}}destroy(){var t=this;if(t.stop=!0,t.canvas&&(t.canvas.detach(),t.progressBg.detach(),t.progressBar.detach(),t.canvas.off("mousedown touchstart",t.onMouseDown).off("DOMMouseScroll",t.onMouseScroll).off("mousewheel",t.onMouseWheel).off("dblclick",t.onDoubleClick).off("contextmenu",t.onContextMenu),$(window).off("resize",t.onFullscreen),$(document).off("mouseup touchend",t.onMouseUp).off("mousemove touchmove",t.onMouseMove),t.canvas=t.progressBg=t.progressBar=null),t.context){var e=t.context;t.bgTexture&&e.deleteTexture(t.bgTexture),t.bgTexture=null,t.program&&e.deleteProgram(t.program),t.program=null,t.vb&&e.deleteBuffer(t.vb),t.vs&&e.deleteShader(t.vs),t.fs&&e.deleteShader(t.fs),t.vb=t.vs=t.fs=null}t.bgImg&&(t.bgImg=null);for(var i=0;i0&&this.models[0]){const i=this.models[0][t];return i?i.apply(this.models[0],e):void WH.debug("Unknown viewer method",t,"args",e)}}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}draw(t){var e,i=this,r=i.context;i.delta=.001*(t-i.time),i.time=t,i.currFrame++,i.updateCamera(),r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,i.width,i.height),r.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],0),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),i.bgTexture&&i.program&&(r.useProgram(i.program),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,i.bgTexture),r.uniform1i(i.uTexture,0),r.bindBuffer(r.ARRAY_BUFFER,i.vb),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,null),r.enableVertexAttribArray(i.aPosition),r.vertexAttribPointer(i.aPosition,2,r.FLOAT,!1,16,0),r.enableVertexAttribArray(i.aTexCoord),r.vertexAttribPointer(i.aTexCoord,2,r.FLOAT,!1,16,8),r.depthMask(!1),r.disable(r.CULL_FACE),r.blendFunc(r.ONE,r.ZERO),r.drawArrays(r.TRIANGLE_STRIP,0,4),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),r.enable(r.CULL_FACE),r.depthMask(!0),r.disableVertexAttribArray(i.aPosition),r.disableVertexAttribArray(i.aTexCoord));let n=new Array;for(e=0;e{let i=t.e>1,r=e.e>1;return i>r?1:it.m?-1:1:t.n>e.n?-1:t.n{r.useProgram(t.a.program),r.bindBuffer(r.ARRAY_BUFFER,t.c),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t.d),this.attributeState.enable(r,t.a.attributes),re(t.a,t.b),t.h?r.enable(r.CULL_FACE):r.disable(r.CULL_FACE),t.i?r.frontFace(r.CCW):r.frontFace(r.CW),this.setBlendMode(r,t.e),r.depthMask(t.f),r.drawElements(t.j,t.k,r.UNSIGNED_SHORT,t.l)})),this.attributeState.disableAll()}setAdaptiveMode(t){this.addaptiveMode=t,t&&$(window).trigger("resize")}setTranslation(t,e,i){this.translation=we(t,e,i)}setBlendMode(t,e){switch(0==e?t.disable(t.BLEND):(t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD)),e){case 0:break;case 1:t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ONE);break;case 2:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE);break;case 3:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE,t.ONE,t.ONE);break;case 4:t.blendFuncSeparate(t.DST_COLOR,t.ZERO,t.ONE,t.ONE);break;case 5:t.blendFuncSeparate(t.DST_COLOR,t.SRC_COLOR,t.ONE,t.ONE);break;case 6:t.blendFuncSeparate(t.DST_COLOR,t.ONE,t.ONE,t.ONE);break;case 10:t.blendFunc(t.ONE,t.ONE);break;case 7:t.blendFuncSeparate(t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE,t.ONE);break;case 8:t.blendFuncSeparate(t.ONE_MINUS_SRC_ALPHA,t.ZERO,t.ONE,t.ONE);break;case 13:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE);break;default:throw 3735927486}}updateCamera(){var t=this;t.zoom.target+=t.zoom.rateCurrent,t.zoom.rateCurrent*=1-t.zoom.rateAccelerationDecay,t.zoom.target=-Math.max(Math.min(-t.zoom.target,t.zoom.range[1]),t.zoom.range[0]),t.zoom.current+=(t.zoom.target-t.zoom.current)*t.zoom.interpolationRate;var e=t.distance*Math.pow(t.zoom.rateStep+1,-t.zoom.current),i=t.azimuth,r=t.zenith;1==t.up[2]?(t.eye[0]=-e*Math.sin(r)*Math.cos(i)+t.target[0],t.eye[1]=-e*Math.sin(r)*Math.sin(i)+t.target[1],t.eye[2]=-e*Math.cos(r)+t.target[2]):(t.eye[0]=-e*Math.sin(r)*Math.cos(i)+t.target[0],t.eye[1]=-e*Math.cos(r)+t.target[1],t.eye[2]=-e*Math.sin(r)*Math.sin(i)+t.target[2]),Ce(t.lookDir,t.target,t.eye),Ue(t.lookDir,t.lookDir),function(t,e,i,r){var n,a,s,o,l,h,u,c,f,d,b=e[0],g=e[1],_=e[2],p=r[0],m=r[1],v=r[2],x=i[0],T=i[1],w=i[2];Math.abs(b-x)0)for(t=0;t=0;u--)for(var c=0;c0?1:-1,t.preventDefault(),!1}onMouseWheel(t){if(!this.options.wheelEventValidation||this.options.wheelEventValidation.call(this,t))return this.zoom.rateCurrent+=t.originalEvent.wheelDelta>0?1:-1,t.preventDefault(),!1}onMouseUp(t){let e=this;(e.mouseDown||e.rightMouseDown)&&($("body").removeClass("unselectable"),e.mouseDown=!1,e.rightMouseDown=!1)}onMouseMove(t){let e=this;if((e.mouseDown||e.rightMouseDown)&&void 0!==e.mouseX){var i,r;"touchmove"==t.type?(t.preventDefault(),i=t.originalEvent.touches[0].clientX,r=t.originalEvent.touches[0].clientY):(i=t.clientX,r=t.clientY);var n=(i-e.mouseX)/e.width*Math.PI*2,a=(r-e.mouseY)/e.width*Math.PI*2;if(e.mouseDown){1==e.up[2]?e.azimuth-=n:e.azimuth+=n,e.zenith+=a;for(var s=2*Math.PI;e.azimuth<0;)e.azimuth+=s;for(;e.azimuth>s;)e.azimuth-=s;e.zenith<1e-4&&(e.zenith=1e-4),e.zenith>=Math.PI&&(e.zenith=Math.PI-1e-4)}else e.translation[0]+=n,e.translation[1]+=a;e.mouseX=i,e.mouseY=r}}resize(t,e){var i=this;if(i.width!==t||i.height!==e){if(i.fullscreen||i.viewer.container.css({height:e+"px",position:"relative"}),i.width=t,i.height=e,i.canvas)i.canvas.attr({width:t,height:e}),i.canvas.css({width:t+"px",height:e+"px"}),i.context.viewport(0,0,i.width,i.height);else{if(i.canvas=$(""),i.canvas.attr({width:t,height:e}),i.viewer.container.append(i.canvas),i.context=i.canvas[0].getContext("webgl",{alpha:!0,premultipliedAlpha:!1})||i.canvas[0].getContext("experimental-webgl",{alpha:!0,premultipliedAlpha:!1}),i.progressBg=$("
",{css:{display:"none",position:"absolute",bottom:0,left:0,right:0,height:"10px",backgroundColor:"#000"}}),i.progressBar=$("
",{css:{display:"none",position:"absolute",bottom:0,left:0,width:0,height:"10px",backgroundColor:"#ccc"}}),i.viewer.container.append(i.progressBg),i.viewer.container.append(i.progressBar),!i.context)return alert("No WebGL support, sorry! You should totally use Chrome."),i.canvas.detach(),void(i.canvas=null);const r=i.context.getExtension("EXT_texture_filter_anisotropic")||i.context.getExtension("MOZ_EXT_texture_filter_anisotropic")||i.context.getExtension("WEBKIT_EXT_texture_filter_anisotropic");r?(i.aniFilterExt=r,i.aniFilterMax=i.context.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT),WH.debug("Texture anisotropy enabled",i.aniFilterMax)):WH.debug("Texture anisotropy disabled (not supported)"),i.canvas.on("mousedown touchstart",i.onMouseDown.bind(i)).on("DOMMouseScroll",i.onMouseScroll.bind(i)).on("mousewheel",i.onMouseWheel.bind(i)).on("dblclick",i.onDoubleClick.bind(i)).on("contextmenu",i.onContextMenu.bind(i)),$(window).on("resize",i.onFullscreen.bind(i)),$(document).on("mouseup touchend",i.onMouseUp.bind(i)).on("mousemove touchmove",i.onMouseMove.bind(i)),i.onFullscreen(null)}i.options.background&&i.loadBackground()}}loadBackground(){var t=this,e=t.context;const i=function(){t.vb=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t.vb),e.bufferData(e.ARRAY_BUFFER,new Float32Array(16),e.DYNAMIC_DRAW);var i=t.compileShader(e.VERTEX_SHADER," attribute vec2 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main(void) { vTexCoord = aTexCoord; gl_Position = vec4(aPosition, 0, 1); } "),r=t.compileShader(e.FRAGMENT_SHADER," precision mediump float; varying vec2 vTexCoord; uniform sampler2D uTexture; void main(void) { gl_FragColor = texture2D(uTexture, vTexCoord); } "),n=e.createProgram();e.attachShader(n,i),e.attachShader(n,r),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS)?(t.vs=i,t.fs=r,t.program=n,t.uTexture=e.getUniformLocation(n,"uTexture"),t.aPosition=e.getAttribLocation(n,"aPosition"),t.aTexCoord=e.getAttribLocation(n,"aTexCoord")):console.error("Error linking shaders")},r=function(){var i=t.width/t.bgImg.width,r=t.height/t.bgImg.height;const n=[-1,-1,0,r,1,-1,i,r,-1,1,0,0,1,1,i,0];e.bindBuffer(e.ARRAY_BUFFER,t.vb),e.bufferSubData(e.ARRAY_BUFFER,0,new Float32Array(n))};t.bgImg?t.bgImg.loaded&&(t.vb||i(),r()):(t.bgImg=new Image,t.bgImg.crossOrigin="",t.bgImg.onload=function(){t.bgImg.loaded=!0,t.bgTexture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,t.bgTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.bgImg),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t.vb||i(),r()},t.bgImg.onerror=function(){t.bgImg=null},t.bgImg.src=t.options.contentPath+t.options.background)}compileShader(t,e){var i=this.context,r=i.createShader(t);if(i.shaderSource(r,e),i.compileShader(r),!i.getShaderParameter(r,i.COMPILE_STATUS))throw"Shader compile error: "+i.getShaderInfoLog(r);return r}};let ra={Types:hi};const na=Object.assign(ea,{Tools:_e,WebGL:ia,WEBGL:1,WOW:2,FLASH:2,Wow:ra});window.ZamModelViewer=na})()})();