forked from techsoft3d/hoops-web-viewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathengine-wasm.js
470 lines (446 loc) · 160 KB
/
engine-wasm.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
/*!
* Bowser - a browser detector
* https://github.com/ded/bowser
* MIT License | (c) Dustin Diaz 2015
*/
!function(e,t,n){e[t]=n()}(this,"bowser",function(){function t(t){function n(e){var n=t.match(e);return n&&n.length>1&&n[1]||""}function r(e){var n=t.match(e);return n&&n.length>1&&n[2]||""}var i=n(/(ipod|iphone|ipad)/i).toLowerCase(),s=/like android/i.test(t),o=!s&&/android/i.test(t),u=/nexus\s*[0-6]\s*/i.test(t),a=!u&&/nexus\s*[0-9]+/i.test(t),f=/CrOS/.test(t),l=/silk/i.test(t),c=/sailfish/i.test(t),h=/tizen/i.test(t),p=/(web|hpw)os/i.test(t),d=/windows phone/i.test(t),v=/SamsungBrowser/i.test(t),m=!d&&/windows/i.test(t),g=!i&&!l&&/macintosh/i.test(t),y=!o&&!c&&!h&&!p&&/linux/i.test(t),b=n(/edge\/(\d+(\.\d+)?)/i),w=n(/version\/(\d+(\.\d+)?)/i),E=/tablet/i.test(t),S=!E&&/[^-]mobi/i.test(t),x=/xbox/i.test(t),T;/opera/i.test(t)?T={name:"Opera",opera:e,version:w||n(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr|opios/i.test(t)?T={name:"Opera",opera:e,version:n(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||w}:/SamsungBrowser/i.test(t)?T={name:"Samsung Internet for Android",samsungBrowser:e,version:w||n(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/coast/i.test(t)?T={name:"Opera Coast",coast:e,version:w||n(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(t)?T={name:"Yandex Browser",yandexbrowser:e,version:w||n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(t)?T={name:"UC Browser",ucbrowser:e,version:n(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(t)?T={name:"Maxthon",maxthon:e,version:n(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(t)?T={name:"Epiphany",epiphany:e,version:n(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(t)?T={name:"Puffin",puffin:e,version:n(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(t)?T={name:"Sleipnir",sleipnir:e,version:n(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(t)?T={name:"K-Meleon",kMeleon:e,version:n(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:d?(T={name:"Windows Phone",windowsphone:e},b?(T.msedge=e,T.version=b):(T.msie=e,T.version=n(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(t)?T={name:"Internet Explorer",msie:e,version:n(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:f?T={name:"Chrome",chromeos:e,chromeBook:e,chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/chrome.+? edge/i.test(t)?T={name:"Microsoft Edge",msedge:e,version:b}:/vivaldi/i.test(t)?T={name:"Vivaldi",vivaldi:e,version:n(/vivaldi\/(\d+(\.\d+)?)/i)||w}:c?T={name:"Sailfish",sailfish:e,version:n(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(t)?T={name:"SeaMonkey",seamonkey:e,version:n(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(t)?(T={name:"Firefox",firefox:e,version:n(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t)&&(T.firefoxos=e)):l?T={name:"Amazon Silk",silk:e,version:n(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(t)?T={name:"PhantomJS",phantom:e,version:n(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(t)?T={name:"SlimerJS",slimer:e,version:n(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(t)||/rim\stablet/i.test(t)?T={name:"BlackBerry",blackberry:e,version:w||n(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:p?(T={name:"WebOS",webos:e,version:w||n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(t)&&(T.touchpad=e)):/bada/i.test(t)?T={name:"Bada",bada:e,version:n(/dolfin\/(\d+(\.\d+)?)/i)}:h?T={name:"Tizen",tizen:e,version:n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||w}:/qupzilla/i.test(t)?T={name:"QupZilla",qupzilla:e,version:n(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||w}:/chromium/i.test(t)?T={name:"Chromium",chromium:e,version:n(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||w}:/chrome|crios|crmo/i.test(t)?T={name:"Chrome",chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:o?T={name:"Android",version:w}:/safari|applewebkit/i.test(t)?(T={name:"Safari",safari:e},w&&(T.version=w)):i?(T={name:i=="iphone"?"iPhone":i=="ipad"?"iPad":"iPod"},w&&(T.version=w)):/googlebot/i.test(t)?T={name:"Googlebot",googlebot:e,version:n(/googlebot\/(\d+(\.\d+))/i)||w}:T={name:n(/^(.*)\/(.*) /),version:r(/^(.*)\/(.*) /)},!T.msedge&&/(apple)?webkit/i.test(t)?(/(apple)?webkit\/537\.36/i.test(t)?(T.name=T.name||"Blink",T.blink=e):(T.name=T.name||"Webkit",T.webkit=e),!T.version&&w&&(T.version=w)):!T.opera&&/gecko\//i.test(t)&&(T.name=T.name||"Gecko",T.gecko=e,T.version=T.version||n(/gecko\/(\d+(\.\d+)?)/i)),!T.windowsphone&&!T.msedge&&(o||T.silk)?T.android=e:!T.windowsphone&&!T.msedge&&i?(T[i]=e,T.ios=e):g?T.mac=e:x?T.xbox=e:m?T.windows=e:y&&(T.linux=e);var N="";T.windowsphone?N=n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i?(N=n(/os (\d+([_\s]\d+)*) like mac os x/i),N=N.replace(/[_\s]/g,".")):o?N=n(/android[ \/-](\d+(\.\d+)*)/i):T.webos?N=n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):T.blackberry?N=n(/rim\stablet\sos\s(\d+(\.\d+)*)/i):T.bada?N=n(/bada\/(\d+(\.\d+)*)/i):T.tizen&&(N=n(/tizen[\/\s](\d+(\.\d+)*)/i)),N&&(T.osversion=N);var C=N.split(".")[0];if(E||a||i=="ipad"||o&&(C==3||C>=4&&!S)||T.silk)T.tablet=e;else if(S||i=="iphone"||i=="ipod"||o||u||T.blackberry||T.webos||T.bada)T.mobile=e;return T.msedge||T.msie&&T.version>=10||T.yandexbrowser&&T.version>=15||T.vivaldi&&T.version>=1||T.chrome&&T.version>=20||T.samsungBrowser&&T.version>=4||T.firefox&&T.version>=20||T.safari&&T.version>=6||T.opera&&T.version>=10||T.ios&&T.osversion&&T.osversion.split(".")[0]>=6||T.blackberry&&T.version>=10.1||T.chromium&&T.version>=20?T.a=e:T.msie&&T.version<10||T.chrome&&T.version<20||T.firefox&&T.version<20||T.safari&&T.version<6||T.opera&&T.version<10||T.ios&&T.osversion&&T.osversion.split(".")[0]<6||T.chromium&&T.version<20?T.c=e:T.x=e,T}function r(e){return e.split(".").length}function i(e,t){var n=[],r;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r++)n.push(t(e[r]));return n}function s(e){var t=Math.max(r(e[0]),r(e[1])),n=i(e,function(e){var n=t-r(e);return e+=(new Array(n+1)).join(".0"),i(e.split("."),function(e){return(new Array(20-e.length)).join("0")+e}).reverse()});while(--t>=0){if(n[0][t]>n[1][t])return 1;if(n[0][t]!==n[1][t])return-1;if(t===0)return 0}}function o(e,r,i){var o=n;typeof r=="string"&&(i=r,r=void 0),r===void 0&&(r=!1),i&&(o=t(i));var u=""+o.version;for(var a in e)if(e.hasOwnProperty(a)&&o[a]){if(typeof e[a]!="string")throw new Error("Browser version in the minVersion map should be a string: "+a+": "+String(e));return s([u,e[a]])<0}return r}function u(e,t,n){return!o(e,t,n)}var e=!0,n=t(typeof navigator!="undefined"?navigator.userAgent||"":"");return n.test=function(e){for(var t=0;t<e.length;++t){var r=e[t];if(typeof r=="string"&&r in n)return!0}return!1},n.isUnsupportedBrowser=o,n.compareVersions=s,n.check=u,n._detect=t,n})
var _SC = (function () {
var createInstanceImpl = function () {
var Module = this;
var g;g||(g=typeof Module !== 'undefined' ? Module : {});g.$$setReady=function(){g.gk();g.$$onReady.apply(window,arguments);g.$$onReady=void 0;g.onAbort=void 0};
g.gk=function(){function a(E){if(!E)return 0;var A=g.$$es.allocateUint8Buffer(8*E.length);if(A)aa.set(E,A>>3);else throw Error("Out of memory.");return A}function b(E){if(!E)return 0;var A=g.$$es.allocateUint8Buffer(4*E.length);if(A)h.set(E,A>>2);else throw Error("Out of memory.");return A}function c(E){if(!E)return 0;var A=g.$$es.allocateUint8Buffer(E.length);if(A)t.set(E,A);else throw Error("Out of memory.");return A}function d(E){g.$$es.deallocateUint8Buffer(E)}function e(E){return function(){return n(E,
arguments)}}function f(E,A,U){function K(xa){return function(){G();R&&y.callRecord.push(xa+" "+w(arguments));return l(this,g[E][xa],arguments)}}function ja(){G();this.$$memory=new Uint8Array(g[E]["sizeof_"+A]());l(this,g[E][W+"create"],arguments)}var W=A+"_";ja.prototype={$$stackify:!0};ja.copy=function(xa){G();var Ba=Object.create(ja.prototype);Ba.$$memory=new Uint8Array(t.subarray(xa,xa+g[E]["sizeof_"+A]()));return Ba};ja.clone=function(xa){var Ba=Object.create(ja.prototype);Ba.$$memory=new Uint8Array(xa.$$memory);
return Ba};ja.assign=function(xa,Ba){xa.$$memory.set(Ba.$$memory)};for(var ta=0;ta<U.length;ta++)ja.prototype[U[ta]]=K(W+U[ta]);return y[A]=ja}function l(E,A,U){U=Array.prototype.slice.call(U);U.unshift(E);return n(A,U)}function n(E,A){for(var U=!1,K=0;K<A.length;++K)if(A[K].$$stackify){U=!0;break}if(!U)return E.apply(g,A);U=ea();try{var ja=Array.prototype.slice.call(A);for(K=0;K<A.length;K++)if(A[K].$$stackify){var W=ha(A[K].$$memory.length);t.set(A[K].$$memory,W);ja[K]=W}var ta=E.apply(g,ja);for(K=
0;K<A.length;K++)A[K].$$stackify&&A[K].$$memory.set(t.subarray(ja[K],ja[K]+A[K].$$memory.length))}finally{ma(U)}return ta}function q(E){this.value=E}function v(){y.suspendDrawing();g.gi("webgl_context_lost")}function w(){return JSON.stringify(arguments,C)}function C(E,A){return null!==A&&"object"===typeof A&&A.$$memory?"stackified":A}function G(){if(y!==g.$$facade)throw new ReferenceError("member called after shutdown");}var p="$$cs";g.$$es.initializeLibrary();var y=g.$$facade,F=g.Kj?new g.Kj:void 0;
g.oj=F;y.isValid=function(){return y===g.$$facade};var R=!1;y.callRecord=[];y.startRecording=function(){R=!0};y.stopRecording=function(){R=!1};y.logCallRecord=function(){for(var E=y.callRecord,A=0;A<E.length;++A)console.log(E[A])};y.shutDown=function(){G();R&&y.callRecord.push("shutDown");"$$cs"===p&&g.canvas.removeEventListener("webglcontextlost",v);g.$$es.shutDownLibrary();F&&F.Tk();y.container.innerHTML="";g.$$facade=void 0;g.oj=void 0;g.$$available=!0;g.$$wrapper.innerHTML=""};y.ByMeshInstance=
new q(0);y.ByGroup=new q(1);y.ByExpandedGroup=new q(2);(function(){function E(m,r){K([H.Scs]);if(!m)throw new W("InvalidConfig","Invalid load configuration");var u,x,z=new Promise(function(X,ca){u=X;x=ca});ua=H.Scs;var L=new XMLHttpRequest;L.open("GET",r);L.responseType="arraybuffer";L.onload=function(){try{A(m,new Uint8Array(this.response)).then(function(X){u(X)},function(X){x(X)})}catch(X){}};"function"===typeof m.XHRonprogress&&(L.onprogress=m.XHRonprogress);"function"===typeof m.XHRonerror&&(L.onerror=
m.XHRonerror);if("function"===typeof m.XHRonloadend){var fa=m.XHRonloadend;L.onloadend=function(X){fa(X,L.status,r)}}L.send();return z}function A(m,r){K([H.Scs]);if(!m)throw new W("InvalidConfig","Invalid load configuration");if(r.constructor!==Uint8Array)throw new W("InvalidConfig","'buffer' must be a Uint8Array");if(0>=r.byteLength)throw new W("EmptyBuffer","'buffer' has a length of 0");var u=g.$$es.allocateUint8Buffer(r.byteLength);t.set(r,u);try{return U(m,u,r.byteLength)}catch(x){throw g.$$es.deallocateUint8Buffer(u),
x;}}function U(m,r,u){K([H.Scs]);var x=m.attachScope,z=m.attachMeasurementUnit,L=m.attachInvisibly,fa=m.resolveOnFullyLoaded,X=m.inclusionMatrix;m=0;if(X){if(X.constructor!==Array&&X.constructor!==Float64Array)throw new TypeError("'inclusionMatrix' is not an Array or Float64Array.");if(12!==X.length)throw new TypeError("'inclusionMatrix' needs to have exactly 12 elements.");m=a(X);if(!m)throw Error("Internal logic error.");}ua=H.Scs;var ca,za;X=new Promise(function(qa,ya){ca=qa;za=function(Ha){try{ja(Ha),
ya(null)}catch(Ia){ya(Ia)}}});try{g.$$es.attachScsBuffer(x,r,u,m,z,L,fa,ca,za)}catch(qa){za(qa)}finally{d(m)}return X}function K(m){if(ua!==H.Uninitialized){if(void 0!==m)for(var r=0;r<m.length;++r)if(ua===m[r])return;throw new W("AlreadyCalled","load() already called with an incompatible session type");}}function ja(m){switch(m){case g.LoadResult.WebGLMissing:throw new W("WebGLError","WebGL initialization failed");case g.LoadResult.SessionAlreadyStarted:throw new W("AlreadyCalled","load() already called");
}}function W(m,r){this.code=m;this.message=r;this.stack=Error().stack}function ta(m){var r=JSON.parse(na(m,0));if("rpc"in r){if(m=r.rpc,r=m.length/2,r===Math.floor(r)){for(var u=new Uint8Array(r),x=0;x<r;++x)u[x]=parseInt(m.substr(x+x,2),16);m=u;r=(new DataView(m.buffer)).getUint32(0,!0);u=m[4];m=m.subarray(5);x=c(m);g[p].notifyRpcClientResult(r,u,x,m.length)}}else if("event"in r)switch(m=r.event,r=r.data,m){case "camera_set":Nb=Ab(r);g.gi(m);break;default:Array.isArray(r)?(r.unshift(m),g.gi.apply(g,
r)):g.gi(m,r)}}function xa(m){var r=c(m);g.$$es.parseMetaData(Ob,r,m.length)}function Ba(m){m=na(m,0);g.gi("post_draw_json",m)}function Ab(m){var r=new Ca;r.reset.apply(r,m);return r}function Pb(m){function r(ka,Wa,P,da){if(0>da||da>=Wa.elementCount)throw new RangeError("invalid element index");var pa={vertexCount:fa[ka][3*da+1],bits:fa[ka][3*da+2],iterate:function(Ja){return x(ka,Wa,P,da,this,Ja)}};"undefined"!==typeof Symbol&&"undefined"!==typeof Symbol.iterator&&(pa[Symbol.iterator]=u);return pa}
function u(){return this.iterate(!0)}function x(ka,Wa,P,da,pa,Ja){function qb(){var ra={position:void 0,normal:void 0,UV:void 0,RGBA:void 0};++Xa;for(var la=0;la<hb.length;++la)hb[la](ra);return ra}if("number"===typeof da)var Jc=P+fa[ka][3*da],Kc=pa.vertexCount;else Jc=P,Kc=Wa.vertexCount;var vd=Jc+Kc,Xa=Jc,hb=[];ca?hb.push(function(ra){var la=[z[Ka],z[Ka+1],z[Ka+2]];ra.position=[ca[0]*la[0]+ca[4]*la[1]+ca[8]*la[2]+ca[12],ca[1]*la[0]+ca[5]*la[1]+ca[9]*la[2]+ca[13],ca[2]*la[0]+ca[6]*la[1]+ca[10]*la[2]+
ca[14]]}):hb.push(function(ra){ra.position=[z[Ka],z[Ka+1],z[Ka+2]]});Wa.hasNormals&&hb.push(function(ra){var la=Ka+za;ra.normal=[z[la],z[la+1],z[la+2]]});Wa.hasUVs&&hb.push(function(ra){var la=Ka+qa;ra.UV=[z[la],z[la+1]]});if(Wa.hasRGBAs){var Lc=new Uint8Array(z.buffer);hb.push(function(ra){var la=Ka+ya<<2;ra.RGBA=[Lc[la],Lc[la+1],Lc[la+2],Lc[la+3]]})}if(L){var Ka=L[Xa]*X;hb.push(function(){Ka=L[Xa]*X})}else Ka=Xa*X,hb.push(function(){Ka+=X});return{done:function(){return Xa>=vd},next:Ja?function(){return Xa<
vd?{value:qb(),done:!1}:{done:!0}}:function(){if(Xa<vd)return qb()},goTo:function(ra){0>ra?ra=0:ra>=Kc&&(ra=Kc);Xa=Jc+ra;Ka=L?L[Xa]*X:Xa*X}}}var z=m.vertices,L=m.indices,fa=m.elements,X=m.stride,ca=m.duplicateMatrix,za=m.normalOffset,qa=m.UVOffset,ya=m.RGBA32Offset,Ha=m.faceVertexCount,Ia=Ha+m.lineVertexCount,Ya={faces:{vertexCount:m.faceVertexCount,hasNormals:m.faceNormals?!0:!1,hasUVs:m.faceUVs?!0:!1,hasRGBAs:m.faceRGBA32s?!0:!1,elementCount:fa[0]?fa[0].length/3:0,iterate:function(ka){return x(0,
this,0,void 0,void 0,ka)},element:function(ka){return r(0,this,0,ka)}},lines:{vertexCount:m.lineVertexCount,hasNormals:m.lineNormals?!0:!1,hasUVs:m.lineUVs?!0:!1,hasRGBAs:m.lineRGBA32s?!0:!1,elementCount:fa[1]?fa[1].length/3:0,iterate:function(ka){return x(1,this,Ha,void 0,void 0,ka)},element:function(ka){return r(1,this,Ha,ka)}},points:{vertexCount:m.pointVertexCount,hasNormals:m.pointNormals?!0:!1,hasUVs:m.pointUVs?!0:!1,hasRGBAs:m.pointRGBA32s?!0:!1,elementCount:fa[2]?fa[2].length/3:0,iterate:function(ka){return x(2,
this,Ia,void 0,void 0,ka)},element:function(ka){return r(2,this,Ia,ka)}}};"undefined"!==typeof Symbol&&"undefined"!==typeof Symbol.iterator&&(Ya.faces[Symbol.iterator]=u,Ya.lines[Symbol.iterator]=u,Ya.points[Symbol.iterator]=u);m=m.forward;for(let ka in m)m.hasOwnProperty(ka)&&(Ya[ka]=m[ka]);return Ya}function Ob(m,r,u){var x=Za[m];x||(x=Za[m]={});x[r]=u;g.gi("meta_data",m,r,u)}function oa(m,r){if("$$cs"===p)return Z.getMetaData(m);$a(m);for(var u=[],x=0;x<m.length;x+=2){var z=m[x],L=m[x+1],fa=Za[z];
void 0===(fa?fa[L]:void 0)&&u.push(z,L)}if(0===u.length){r=[];for(x=0;x<m.length;x+=2)z=m[x],L=m[x+1],r.push(Za[z][L]);return Promise.resolve(r)}return r?(x=new S("getMetaData",u),Promise.reject(x)):Z.requestMetaData(u).then(function(){G();return oa(m,!0)})}function Ra(){"$$cs"===p&&g.$$es.disconnectNetwork()}function k(m,r,u){if("function"===typeof u)ib(m,r,u);else{u=u||0;var x="string"===typeof m?m+"_"+r:r,z;g.$$es[x]?z=g.$$es[x]:z=function(){return g[p][x].apply(g,arguments)};var L=z;u&1&&(L=function(P){return 0==
P?g.$$cs[x].apply(g,arguments):z.apply(g,arguments)});var fa=L;u&2&&(fa=function(P){"number"===typeof P&&(P=[P]);var da=b(P);if(!da)throw new TypeError("`keys' is not an Array or Uint32Array");var pa=Array.prototype.slice.call(arguments,1);pa.unshift(da,P.length);return L.apply(g,pa)});var X=fa;u&4&&(X=function(P){$a(P);var da=b(P);if(!da)throw new TypeError("`ids' is not an Array or Uint32Array.");var pa=Array.prototype.slice.call(arguments,1);pa.unshift(da,P.length>>1);return fa.apply(g,pa)});var ca=
X;u&8&&(ca=function(P){4===P.length&&"number"===typeof P[0]&&(P=[P]);var da=P,pa=g.$$es.allocateUint8Buffer(32*da.length);if(pa)for(var Ja=0;Ja<da.length;++Ja){var qb=da[Ja];if(4!==qb.length)throw Error("Planes are expected be exactly 4 numbers.");aa.set(qb,(pa>>3)+4*Ja)}da=Array.prototype.slice.call(arguments,1);da.unshift(pa,P.length);return X.apply(g,da)});var za=ca;u&16&&(za=function(P){3===P.length&&"number"===typeof P[0]&&(P=[P]);var da=P,pa=g.$$es.allocateUint8Buffer(24*da.length);if(pa)for(var Ja=
0;Ja<da.length;++Ja){var qb=da[Ja];if(3!==qb.length)throw Error("Points are expected be exactly 3 components.");aa.set(qb,(pa>>3)+3*Ja)}da=Array.prototype.slice.call(arguments,1);da.unshift(pa,P.length);return ca.apply(g,da)});var qa=za;u&32&&(qa=e(ca));var ya=qa;u&64&&(ya=function(){console.log("WARNING: Using deprecated function `"+("string"===typeof m?m+"."+r:r)+"'");return qa.apply(g,arguments)});var Ha=ya;u&128&&(Ha=function(){var P=arguments,da=P[P.length-1];da.constructor===q?P[P.length-1]=
da.value:(P=Array.prototype.slice.call(P),P.push(0));return ya.apply(g,P)});var Ia=Ha;u&256&&(Ia=function(){var P=Array.prototype.slice.call(arguments);return new Promise(function(da,pa){P.push(da);P.push(Y(x,pa));Ha.apply(g,P)})});var Ya=Ia;u&512&&(Ya=u&256?function(){return Ia.apply(g,arguments).then(function(P){G();return Ca.copy(P)})}:function(){return Ca.copy(Ia.apply(g,arguments))});var ka=Ya;u&1024&&(ka=u&256?function(){return Ya.apply(g,arguments).then(Bb)}:function(){return Bb(Ya.apply(g,
arguments))});var Wa=ka;u&2048&&(Wa=u&256?function(){return ka.apply(g,arguments).then(Cb)}:function(){return Cb(ka.apply(g,arguments))});ib(m,r,function(){G();R&&y.callRecord.push(r+" "+w(arguments));return Wa.apply(g,arguments)})}}function ib(m,r,u){var x="function"===typeof u?function(){G();R&&y.callRecord.push(r+" "+w(arguments));return u.apply(g,arguments)}:u;null===m?y[r]=x:"string"===typeof m?y[m][r]=x:m[r]=x}function Cb(m){for(var r=0;r<m.length;++r)0>m[r][0]&&(m[r]=null);return m}function Bb(m){for(var r=
0;r<m.length;++r)0>m[r]&&(m[r]=null);return m}function Y(m,r){return function(u){u=new S(m,u);r(u)}}function S(m,r){this.scFunction=m;this.data=r}function $a(m){if(0!==(m.length&1))throw new TypeError("`ids.length' must be divisible by two. (An Id is a pair of keys.)");}y.CreateImageError=g.CreateImageError;y.CreateMeshInstanceErrorType=g.CreateMeshInstanceErrorType;y.CuttingSectionError=g.CuttingSectionError;y.MeshDataGetDataError=g.MeshDataGetDataError;y.MeshDataReplaceError=g.MeshDataReplaceError;
y.SetMatrixErrorType=g.SetMatrixErrorType;y.SetTextureErrorType=g.SetTextureErrorType;var Ca=f("$$es","Camera","reset viewMatrix projectionMatrix fullMatrix projection setProjection upVector setUpVector position setPosition target setTarget nearLimit setNearLimit fieldWidth fieldHeight setField setField setFieldByAngles setFieldByAngles dolly pan roll zoom orbit axisOrbit relativeOrbit unproject".split(" "));S.prototype.toString=function(){return this.scFunction+": "+this.data};var Z={},Za={},Mc=
new Uint8Array(0),Nb=new Ca;k(null,"addCuttingSection",264);k(null,"addLight",256);k(null,"advanceVolumeSelection",256);k(null,"attachModels",function(m,r,u,x){for(var z=[],L=[],fa=0;fa<r.length;++fa){var X=r[fa];if(2!==X.length)throw new TypeError("Expecting [name, matrix] pair.");var ca=X[0];if("string"!==typeof ca)throw new TypeError("Name is not a string.");X=X[1];if(X.constructor!==Array&&X.constructor!==Float64Array)throw new TypeError("Matrix is not an Array or Float64Array.");if(12!==X.length)throw new TypeError("Inclusion matrix needs to have exactly 12 elements.");
ca=unescape(encodeURIComponent(ca));for(var za=0;za<ca.length;++za)z.push(ca.charCodeAt(za));z.push(0);Array.prototype.push.apply(L,X)}var qa=0,ya=0;qa=c(z);if(!qa)throw d(qa),d(ya),Error("Internal logic error.");ya=a(L);if(!ya)throw d(qa),d(ya),Error("Internal logic error.");return new Promise(function(Ha,Ia){g[p].attachModels(qa,z.length,ya,L.length,m,u,x,Ha,Y("attachModels",Ia))})});k(null,"attachScsModelByKey",function(m,r,u,x,z){var L=[];if(r.constructor!==Array&&r.constructor!==Float64Array)throw new TypeError("Matrix is not an Array or Float64Array.");
if(12!==r.length)throw new TypeError("Inclusion matrix needs to have exactly 12 elements.");Array.prototype.push.apply(L,r);r=a(L);if(!r)throw d(r),Error("Internal logic error.");return g.$$es.attachScsModelByKey(r,L.length,m,u,x,z)});k(null,"beginConvexPolyhedronSelection",264);k(null,"beginRayDrillSelection",256);k(null,"beginScreenAreaSelection",256);k(null,"beginSphereSelection",256);k(null,"clearLights");k(null,"createFloorplanMesh",388);k(null,"cuttingSectionLimits");k(null,"demandMeshInstances",
132);k(null,"detachInclusions",258);k(null,"disableCapping");k(null,"disconnectNetwork",Ra);k(null,"enableCapping");k(null,"endComparison");k(null,"endVolumeSelection");k(null,"explode");k(null,"exportToSvg",256);k(null,"beginExportToSvg",256);k(null,"advanceExportToSvg",256);k(null,"flushMetaDataCache",function(){"$$ss"===p&&(Za={})});k(null,"getAmbientOcclusionEnabled",256);k(null,"getAmbientOcclusionRadius",256);k(null,"getBackFacesVisible",256);k(null,"getBackgroundGradient",256);k(null,"getCamera",
function(){return"$$ss"===p?Ca.clone(Nb):Z.getCamera()});k(null,"getCameraPromise",768);k(null,"getCappedInstances",256);k(null,"getCuttingSections",258);k(null,"getDefaultDepthRange",256);k(null,"getElementCount",256);k(null,"getEyeDomeLightingBlurEdgeDistance",256);k(null,"getEyeDomeLightingBlurInterval",256);k(null,"getEyeDomeLightingBlurSamples",256);k(null,"getEyeDomeLightingEnabled",256);k(null,"getEyeDomeLightingOpacity",256);k(null,"getEyeDomeLightingShadingEdgeDistance",256);k(null,"getFacesVisible",
256);k(null,"getFaceWindingFlipped",256);k(null,"getFrontFacesVisible",256);k(null,"getInteractiveDrawLimitIncreaseEnabled",256);k(null,"getLightKeys",256);k(null,"getLight",256);k(null,"getLinesVisible",256);k(null,"getLooseBounding",256);k(null,"getMetaData",oa);k(null,"getMinFrameRate",256);k(null,"getNetworkVersion");k(null,"getPointShape",256);k(null,"getPointSize",256);k(null,"getPointSizeUnit",256);k(null,"getPointsVisible",256);k(null,"getStatistics",256);k(null,"getStreamedBounding",256);
k(null,"getStreamVersion");k(null,"getTriangleCount",256);k(null,"markAllMeshInstancesInteresting");k(null,"markCameraAsEmpty");k(null,"meshInstanceKeyInfo",257);k(null,"metaDataKeyInfo",257);k(null,"modelKeysFromInclusionKeys",258);k(null,"onResize",function(){var m=y.allowHighDpi?window.devicePixelRatio||1:1,r=y.container,u=r.clientWidth,x=r.clientHeight;r=u*m;m*=x;if("$$ss"===p)F.Lk(r,m,u,x);else{var z=g.$$es.maxFrameBufferSize();if(0>=z)r=u,m=x;else{if(r>z||m>z)r=u,m=x;if(r>z||m>z)r>m?(m=m/r*
z,r=z):(r=r/m*z,m=z)}}g.$$cs.setScreenDimensions(r,m,u,x);"$$cs"===p&&(u=g.canvas,u.width=r,u.height=m,y.queueRedraw())});k(null,"pauseCapping");k(null,"primaryModelKey",256);k(null,"queueRedraw");k(null,"registerBimInstances",4);k(null,"removeAllCuttingSections");k(null,"removeCuttingSections",258);k(null,"removeLight");k(null,"replaceCuttingSection",264);k(null,"requestGroups",260);k(null,"requestImages",260);k(null,"requestMeshInstances",260);k(null,"requestMeshInstancesByGroup",260);k(null,"resetExplode");
k(null,"resetToEmpty",function(m,r){var u=b(r);if(!u)throw new TypeError("`meshKeys' is not an Array or Uint32Array");return Z.resetToEmpty(m,u,r.length)});k(null,"resumeCapping");k(null,"resumeDrawing");k(null,"screenSelectByRay",256);k(null,"serverSideRendering",function(){return"$$ss"===p});k(null,"setAmbientLightColor");k(null,"setAmbientOcclusionBias");k(null,"setAmbientOcclusionBlurInterval");k(null,"setAmbientOcclusionBlurSamples");k(null,"setAmbientOcclusionContrast");k(null,"setAmbientOcclusionEdgeDistance");
k(null,"setAmbientOcclusionEnabled");k(null,"setAmbientOcclusionIntensity");k(null,"setAmbientOcclusionNoiseSize");k(null,"setAmbientOcclusionOpacity");k(null,"setAmbientOcclusionRadius");k(null,"setAmbientOcclusionSamples");k(null,"setAntiAliasingMode");k(null,"setBackFacesVisible");k(null,"setBackgroundColor");k(null,"setBackgroundGradient");k(null,"setBloomBlurInterval");k(null,"setBloomBlurSamples");k(null,"setBloomEnabled");k(null,"setBloomIntensity");k(null,"setBloomIntensityScale");k(null,
"setBloomLayerCount");k(null,"setBloomThreshold");k(null,"setBloomThresholdRampWidth");k(null,"setBoundingPreviewUnderdrawColor");k(null,"setBoundingPreviewTestedColor");k(null,"setBoundingPreviewEjectedColor");k(null,"setBoundingPreviewColor");k(null,"setBoundingPreviewUnderdraw",16);k(null,"setBoundingPreviewTested",16);k(null,"setBoundingPreviewEjected",16);k(null,"setBoundingDebugLevel");k(null,"setCamera",function(m){Ca.assign(Nb,m);Z.setCamera(m)});k(null,"setCappingIdleHookEnabled",256);k(null,
"setClumpingEnabled");k(null,"setComparisonColors");k(null,"setCurrentView");k(null,"setDefaultDepthRange");k(null,"setDefaultGloss");k(null,"setDefaultMirror");k(null,"setDefaultSpecularMix");k(null,"setDefaultSphereMap");k(null,"setDisplayIncompleteFrames");k(null,"setDrawIdleDelay");k(null,"setDrawMode");k(null,"setDrawStrategy");k(null,"setEyeDomeLightingBlurEdgeDistance");k(null,"setEyeDomeLightingBlurInterval");k(null,"setEyeDomeLightingBlurSamples");k(null,"setEyeDomeLightingEnabled");k(null,
"setEyeDomeLightingOpacity");k(null,"setEyeDomeLightingShadingEdgeDistance");k(null,"setFacesVisible");k(null,"setFaceWindingFlipped");k(null,"setFixedDrawLimit");k(null,"setFrontFacesVisible");k(null,"setGoochBaseColorProminence");k(null,"setGoochBlue");k(null,"setGoochLuminanceShiftStrength");k(null,"setGoochYellow");k(null,"setGroundPlane");k(null,"setGroundPlaneWithPosition");k(null,"setHardEdgeColor");k(null,"setHardEdgeOpacity");k(null,"setHardEdgesEnabled");k(null,"setHardEdgeThreshold");k(null,
"setHardEdgeThresholdRampWidth");k(null,"setHiddenLineHiddenLineColor");k(null,"setHiddenLineHighlightedElementFillColor");k(null,"setHiddenLineHighlightedElementOutlineColor");k(null,"setHiddenLineHighlightedInstanceFillColor");k(null,"setHiddenLineHighlightedInstanceOutlineColor");k(null,"setHiddenLineVisibleLineColor");k(null,"setHighlightColorizeCompression");k(null,"setHighlightedElementColor");k(null,"setHighlightedElementFilter");k(null,"setHighlightedElementOutlineColor");k(null,"setHighlightedInstanceColor");
k(null,"setHighlightedInstanceFilter");k(null,"setHighlightedInstanceOutlineColor");k(null,"setHighlightMode");k(null,"setImageBasedLightingEnabled");k(null,"setImageBasedLightingEnvironment",function(m){var r=c(m);if(!r)throw new TypeError("`data' is not an Array or Uint8Array");return g[p].setImageBasedLightingEnvironment(r,m.length)});k(null,"setImageBasedLightingEnvironmentToDefault");k(null,"setImageBasedLightingIntensity");k(null,"setImageBasedLightingMatrix");k(null,"setInstancingEnabled");
k(null,"setInteractiveDrawLimitIncreaseEnabled");k(null,"setInteractiveDrawLimitIncreaseInterval");k(null,"setLightingEnabled");k(null,"setLineJitterEnabled");k(null,"setLineJitterFrequency");k(null,"setLineJitterInstanceCount");k(null,"setLineJitterRadius");k(null,"setLinesVisible");k(null,"setMeshLevel");k(null,"setMetallicRoughnessMaterialOverride");k(null,"setMinDrawLimit");k(null,"setMinFrameRate");k(null,"setMinIncrementalFrameRate");k(null,"setMinInteractiveFrameRate");k(null,"setPointShape");
k(null,"setPointSize");k(null,"setPointsVisible");k(null,"setPointVisibilityTest",16);k(null,"setPostInputDelay");k(null,"setSilhouetteColor");k(null,"setSilhouetteEnabled");k(null,"setSilhouetteOpacity");k(null,"setSilhouetteThreshold");k(null,"setSilhouetteThresholdRampWidth");k(null,"setSimpleReflectionAttenuation");k(null,"setSimpleReflectionBlurInterval");k(null,"setSimpleReflectionBlurSamples");k(null,"setSimpleReflectionEnabled");k(null,"setSimpleReflectionFadeAngle");k(null,"setSimpleReflectionOpacity");
k(null,"setSimpleShadowBlurInterval");k(null,"setSimpleShadowBlurSamples");k(null,"setSimpleShadowColor");k(null,"setSimpleShadowEnabled");k(null,"setSimpleShadowInteractiveUpdateEnabled");k(null,"setSimpleShadowOpacity");k(null,"setSimpleShadowResolution");k(null,"setSmaaQuality");k(null,"setSsrQuality",function(m){F.Rk(m)});k(null,"setStreamCutoffScale");k(null,"setStreamIdleMarker",256);k(null,"setToonBandCount");k(null,"setToonSpecularFactor");k(null,"setTransparencyMode");k(null,"setUnhighlightedColor");
k(null,"setUnhighlightedFilter");k(null,"setVisibilityByAttachment");k(null,"setXRayMaterial");k(null,"setXRayOpacity");k(null,"setXRayTransparencyMode");k(null,"startComparison",function(m,r){$a(m);$a(r);var u=b(m);if(!u)throw new TypeError("`instanceSet1' is not an Array or Uint32Array.");var x=b(r);if(!x)throw new TypeError("`instanceSet2' is not an Array or Uint32Array.");return g[p].startComparison(u,m.length>>1,x,r.length>>1)});k(null,"startExplode",4);k(null,"suspendDrawing");k(null,"testPointVisibility",
272);k(null,"throttleLoad");k(null,"triangulatePolygon",function(m,r){if(3>m.length)throw new TypeError("'polygonPoints' does not describe a polygon.");var u;if(m)if(u=g.$$es.allocateUint8Buffer(4*m.length))B.set(m,u>>2);else throw Error("Out of memory.");else u=0;if(!u)throw Error("Internal logic error.");return g.$$es.triangulatePolygon(u,m.length,r)});k(null,"truncateMetaData",function(m){if("$$cs"===p)return Z.truncateMetaData(m);for(var r=0;r<m.length;r+=2){var u=m[r+1],x=Za[m[r]];x&&(x[u]=Mc)}});
k(null,"unsetAllColors");k(null,"unsetAllHighlighted");k(null,"unsetAllOpacity");k(null,"unsetAllXRay");k(null,"unsetCurrentView");k(null,"unsetXRayMaterial");k(null,"updateLight");k(null,"waitForImageDecoding",256);k(null,"worldSelectByRay",256);k(null,"_loseWebGlContext",function(){var m=g.Ri.getExtension("WEBGL_lose_context");return null!==m?(m.loseContext(),!0):!1});k(Z,"getCamera",512);k(Z,"getMetaData",260);k(Z,"MeshData_getData",256);k(Z,"MeshInstance_setLinePattern",132);k(Z,"requestMetaData",
260);k(Z,"resetToEmpty",258);k(Z,"setCamera",32);k(Z,"truncateMetaData",260);k(null,"Debug_log",function(m){m=unescape(encodeURIComponent(m));for(var r=[],u=0;u<m.length;++u)r.push(m.charCodeAt(u));r.push(0);var x=c(r);if(!x)throw Error("Internal logic error.");return new Promise(function(z,L){g[p].debug_log(x,r.length,z,L)})});k(null,"Debug_stateFailure",256);k(null,"Debug_sync",256);y.Image={};k("Image","create",function(m,r,u,x,z,L,fa,X,ca,za){var qa=c(r);if(!qa)throw Error("Internal logic error.");
var ya=c(fa);return new Promise(function(Ha,Ia){g[p].Image_create(qa,r.length,ya,fa?fa.length:0,m,u,x?x:0,z?z:0,L?L:0,X||!1,ca?ca:0,za?za:0,Ha,Y("Image_create",Ia))})});k("Image","destroy",260);y.Matrix={};k("Matrix","create",256);k("Matrix","destroy",260);k("Matrix","getElements",260);k("Matrix","setElements",260);y.MeshData={};k("MeshData","create",function(m){return new Promise(function(r,u){var x=m._marshal();g[p].MeshData_create(x.bits,x.totalFaceVertices,x.totalLineVertices,x.totalPointVertices,
x.floatDataPtr,x.floatDataPtrLen,x.faceElementInfosPtr,ba*m._faceElements.length,x.lineElementInfosPtr,ba*m._lineElements.length,x.pointElementInfosPtr,ba*m._pointElements.length,r,Y("MeshData_create",u))})});k("MeshData","destroy",260);k("MeshData","getData",function(m){return Z.MeshData_getData(m).then(Pb)});k("MeshData","lineElementSegments",256);k("MeshData","linesToIncidentFaces",258);k("MeshData","replace",function(m,r){return new Promise(function(u,x){var z=r._marshal();g[p].MeshData_replace(m[0],
m[1],z.bits,z.totalFaceVertices,z.totalLineVertices,z.totalPointVertices,z.floatDataPtr,z.floatDataPtrLen,z.faceElementInfosPtr,ba*r._faceElements.length,z.lineElementInfosPtr,ba*r._lineElements.length,z.pointElementInfosPtr,ba*r._pointElements.length,u,Y("MeshData_replace",x))})});y.MeshInstance={};k("MeshInstance","clearAllElementHighlight",132);k("MeshInstance","clearAllElementVisible",132);k("MeshInstance","clearAllElementXRay",132);k("MeshInstance","clearElementColors",132);k("MeshInstance",
"clearElementHighlight",132);k("MeshInstance","clearElementVisible",132);k("MeshInstance","clearElementXRay",132);k("MeshInstance","computeMinimalBodyBodyDistance",256);k("MeshInstance","computeMinimalFaceFaceDistance",256);k("MeshInstance","computeMinimalFaceLineDistance",256);k("MeshInstance","computeMinimalFaceRayDistance",256);k("MeshInstance","create",256);k("MeshInstance","destroy",388);k("MeshInstance","discardAnonymousMatrix",388);k("MeshInstance","getAlwaysDraw",388);k("MeshInstance","getCappingMeshData",
388);k("MeshInstance","getColor",2436);k("MeshInstance","getCullingVector",388);k("MeshInstance","getDoNotCut",388);k("MeshInstance","getDoNotExplode",388);k("MeshInstance","getDoNotLight",388);k("MeshInstance","getDoNotOutlineHighlight",388);k("MeshInstance","getDoNotSelect",388);k("MeshInstance","getDoNotUseVertexColors",388);k("MeshInstance","getDrawnWorldSpaceBounding",260);k("MeshInstance","getEffectiveColor",388);k("MeshInstance","getEffectiveElementColor",388);k("MeshInstance","getEffectiveOpacity",
388);k("MeshInstance","getElementColor",2436);k("MeshInstance","getElementHighlighted",388);k("MeshInstance","getElementVisible",388);k("MeshInstance","getElementXRay",388);k("MeshInstance","getExcludeBounding",388);k("MeshInstance","getFaceElementBounding",258);k("MeshInstance","getFacesVisible",388);k("MeshInstance","getHighlighted",388);k("MeshInstance","getLayerCount");k("MeshInstance","getLineElementBounding",258);k("MeshInstance","getLinesVisible",388);k("MeshInstance","getMatrix",388);k("MeshInstance",
"getMeshData",388);k("MeshInstance","getMetallicRoughness",388);k("MeshInstance","getObjectSpaceBounding",388);k("MeshInstance","getOpacity",1412);k("MeshInstance","getOverrideSceneVisibility",388);k("MeshInstance","getPointElementBounding",258);k("MeshInstance","getPointsVisible",388);k("MeshInstance","getScreenOriented",388);k("MeshInstance","getSuppressCameraScale",388);k("MeshInstance","getWorldSpaceBounding",260);k("MeshInstance","hasDepthRange",388);k("MeshInstance","hasTransparency",388);k("MeshInstance",
"linesToIncidentFaces",258);k("MeshInstance","matrixPreMultiply",388);k("MeshInstance","reifyAnonymousMatrix",388);k("MeshInstance","setAlwaysDraw",132);k("MeshInstance","setAmbientColor",132);k("MeshInstance","setAmbientMix",132);k("MeshInstance","setAnonymousMatrix",388);k("MeshInstance","setAnonymousMatrices",function(m,r){var u=0,x=0;if(m.constructor!==Array&&m.constructor!==Uint32Array)throw new TypeError("Incs Buffer is not an Array or Uint32Array.");if(r.constructor!==Array&&r.constructor!==
Float64Array)throw new TypeError("Matrices Buffer is not an Array or Float64Array.");u=b(m);if(!u)throw d(u),d(x),Error("Internal logic error.");x=a(r);if(!x)throw d(u),d(x),Error("Internal logic error.");return new Promise(function(z,L){g[p].MeshInstance_setAnonymousMatrices(u,m.length>>1,x,r.length,z,Y("MeshInstance_setAnonymousMatrices",L),0)})});k("MeshInstance","setColor",132);k("MeshInstance","setCullingVector",132);k("MeshInstance","setDepthRange",132);k("MeshInstance","setDoNotCut",132);k("MeshInstance",
"setDoNotExplode",132);k("MeshInstance","setDoNotLight",132);k("MeshInstance","setDoNotOutlineHighlight",132);k("MeshInstance","setDoNotSelect",132);k("MeshInstance","setDoNotReset",132);k("MeshInstance","setDoNotUseVertexColors",132);k("MeshInstance","setDoNotXRay",132);k("MeshInstance","setElementColor",132);k("MeshInstance","setElementHighlighted",132);k("MeshInstance","setElementVisible",132);k("MeshInstance","setElementXRay",132);k("MeshInstance","setExcludeBounding",132);k("MeshInstance","setFacesVisible",
132);k("MeshInstance","setHighlighted",132);k("MeshInstance","setLinePattern",function(m,r,u,x){var z=c(r);if(!z)throw new TypeError("`pattern' is not an Array or Uint8Array");return Z.MeshInstance_setLinePattern(m,z,r.length,u,x)});k("MeshInstance","setLinesVisible",132);k("MeshInstance","setMatrix",388);k("MeshInstance","setMeshLevel",132);k("MeshInstance","setMetallicRoughness",132);k("MeshInstance","unsetMetallicRoughness",132);k("MeshInstance","setOpacity",132);k("MeshInstance","setOverlayIndex",
132);k("MeshInstance","setOverrideSceneVisibility",132);k("MeshInstance","setPointsVisible",132);k("MeshInstance","setScreenOriented",132);k("MeshInstance","setScreenSpace",132);k("MeshInstance","setScreenSpaceStretched",132);k("MeshInstance","setStreamCutoffScale",132);k("MeshInstance","setSuppressCameraScale",132);k("MeshInstance","setTexture",388);k("MeshInstance","setVisible",132);k("MeshInstance","setXRay",132);k("MeshInstance","synchronizeVisibilities",4);k("MeshInstance","unsetColor",132);
k("MeshInstance","unsetCullingVector",132);k("MeshInstance","unsetDepthRange",132);k("MeshInstance","unsetElementColor",132);k("MeshInstance","unsetLinePattern",132);k("MeshInstance","unsetMatrix",388);k("MeshInstance","unsetOpacity",132);k("MeshInstance","unsetTexture",132);k("MeshInstance","setEmissiveColor",132);k("MeshInstance","unsetEmissiveColor",132);k("MeshInstance","setSpecularColor",132);k("MeshInstance","unsetSpecularColor",132);k("MeshInstance","setSpecularIntensity",132);k("MeshInstance",
"unsetSpecularIntensity",132);y.Overlay={};k("Overlay","destroy");k("Overlay","maxIndex");k("Overlay","setCamera",32);k("Overlay","setViewport");k("Overlay","setVisible");var ec={open_model_failed:Ra,session_started:function(){"$$cs"===p&&(g.canvas.addEventListener("webglcontextlost",v,!1),y.onResize())},post_draw_json:function(m,r){try{var u=JSON.parse(r)}catch(x){console.assert(!1,"malformed JSON from post_draw",x);return}g.gi("post_draw",u.stats,Ab(u.camera),u.visiblePoints);"high"===u.quality&&
(g.gi("draw_complete"),g.gi("draw_idle"))}},ia={session_started:function(){"$$ss"===p&&(y.resumeDrawing(),g[p].Debug_notifyLoggedRpcExecutionIsAllowed())}},Q={};g.gi=function(m){if(m in ec){var r=ec[m];r.apply(this,arguments)}var u=Q[m];try{if(void 0!==u)for(var x=0;x<u.length;x++)r=u[x],"function"===typeof r&&r.apply(this,arguments)}catch(z){console.log("Unhandled exception in "+m+" event handler:"),console.log(z)}m in ia&&(r=ia[m],r.apply(this,arguments))};y.setEventHandler=function(m,r){Q.hasOwnProperty(m)||
(Q[m]=[]);Q[m].push(r)};y.unsetEventHandler=function(m,r){m=Q[m];if(void 0!==m)for(var u=0;u<m.length;)m[u]===r?m.splice(u,1):++u};W.prototype=Object.create(Error.prototype);W.prototype.constructor=W;var H={Uninitialized:0,Network:1,Scs:2};y.SessionType=H;var ua=H.Uninitialized;y.load=function(m){G();R&&y.callRecord.push("load "+w(m));if(!m)throw new W("InvalidConfig","Invalid load configuration");var r=m.uri;if(1!==!!r+!!m.buffer+!!m.empty)throw new W("InvalidConfig","Must specify exactly one of 'uri', 'buffer', or 'empty'.");
if(r){{if("string"!==typeof r)throw new W("InvalidConfig","'uri' must be a string");const [fa,X,ca]=r.split("://");if(X){if(ca)throw new W("InvalidConfig","Invalid URI");var u=fa}else u="http"}if("ws"===u||"wss"===u){K();if(!m)throw new W("InvalidConfig","Invalid load configuration");m.model&&"string"===typeof m.model||(m.model="");u=m.sessionToken;void 0===u&&(u="");if("string"!==typeof u)throw new W("InvalidConfig","'sessionToken' must be a string");var x=m.limitMiB;void 0===x&&(x=0);if("number"!==
typeof x)throw new W("InvalidConfig","'limitMiB' must be a number");var z=m.meshLevel;void 0===z&&(z=0);if("number"!==typeof z)throw new W("InvalidConfig","'meshLevel' must be a number");var L=m.streamCutoffScale;void 0===L&&(L=-1);if("number"!==typeof L)throw new W("InvalidConfig","'streamCutoffScale' must be a number");if(ua!==H.Uninitialized)throw new W("AlreadyCalled","load() already called for a non-streaming session");ua=H.Network;m.serverSideRendering?(g.canvas.style.display="none",p="$$ss",
F.vj(g.$$wrapper),y.onResize(),F.Pk(ta),F.Qk(xa),F.Ok(Ba),F.Nk(g.gi),F.connect(m)):(p="$$cs",ja(g.$$es.loadNetwork(r,unescape(encodeURIComponent(m.model)),unescape(encodeURIComponent(u)),!!m.streamCulled,!!m.streamMetaDataOnIdle,!!m.streamNoLimit,!!m.streamInstancesOnDemand,!!m.streamAggressiveCompression,!!m.streamModelBoundingPreviews,!!m.streamInstanceBoundingPreviews,!!m.streamOnlyInterestingBoundingPreviews,!!m.streamEjectedBoundingPreviews,x,z,L)))}else"http"!==u&&"https"!==u||E(m,r)}else m.buffer?
A(m,m.buffer):(m=!!m.streamInstancesOnDemand,K([H.Scs]),ua=H.Scs,m=g.$$es.loadEmptyScs(m),ja(m));return ua};y.attachScsBuffer=function(m,r,u,x,z,L){m={attachScope:m,inclusionMatrix:u,attachMeasurementUnit:x,attachInvisibly:z,resolveOnFullyLoaded:L};return null===r||0===r.length?U(m,0,0):A(m,r)};y.feedScsBuffer=function(m,r){K([H.Scs]);if(0===m)throw new W("InvalidConfig","'attachScope' should not be 0");var u=0,x=0;if(null!==r){if(r.constructor!==Uint8Array)throw new W("InvalidConfig","'buffer' must be a Uint8Array");
if(0>=r.byteLength)throw new W("EmptyBuffer","'buffer' has a length of 0");u=r.byteLength;x=g.$$es.allocateUint8Buffer(r.byteLength);t.set(r,x)}g.$$es.feedScsBuffer(m,x,u)}})();var ba=3,M=4*ba;y.MeshDataBuilder=function(){this._faceElements=[];this._lineElements=[];this._pointElements=[];this.formatBits=0};y.MeshDataBuilder.FormatBits={ClockwiseWinding:1,CounterClockwiseWinding:2,TwoSided:4,Manifold:65536};y.MeshDataBuilder.prototype={constructor:y.MeshDataBuilder,_getOptional:function(E,A){return void 0===
E?null:E[A]?E[A]:null},_optionalGuard:function(E,A,U){if(U){if((U=this[U][0])&&!U[E])throw Error("Cannot define "+A+" for some but not all vertices.");}else this._optionalGuard(E,A,"_faceElements"),this._optionalGuard(E,A,"_lineElements"),this._optionalGuard(E,A,"_pointElements")},addFace:function(E,A){var U=this._faceElements,K=this._getOptional(A,"normals"),ja=this._getOptional(A,"uvs"),W=this._getOptional(A,"rgba32s");A=this._getOptional(A,"bits")||0;if(0!==E.length%9)throw Error("Illegal triangles: 'vertexData.length' must be divisible by 9 (i.e. 3 numbers per vertex and 3 vertices per triangle).");
if(K){if(K.length!==E.length)throw Error("Cannot define normals for some but not all vertices.");this._optionalGuard("normals","normals","_faceElements")}if(ja){if(3*ja.length!==2*E.length)throw Error("Cannot define UV parameters for some but not all vertices.");this._optionalGuard("uvs","UV parameters","_faceElements")}if(W){if(3*W.length!==4*E.length)throw Error("Cannot define RGBA32s for some but not all vertices.");this._optionalGuard("rgba32s","RGBA32s");if(0==(this.formatBits&32768))for(var ta=
3;ta<W.length;ta+=4)if(255!=W[ta]){this.formatBits|=32768;break}}U.push({vertexData:E,normals:K,uvs:ja,rgba32s:W,bits:A})},addPolyline:function(E,A){var U=this._lineElements,K=this._getOptional(A,"rgba32s");A=this._getOptional(A,"bits")||0;if(0!==E.length%3)throw Error("vertexData array must be divisible by 3 (i.e. 3 numbers per vertex).");if(6>E.length&&0<E.length)throw Error("Illegal polyline: '0 < vertexData.length < 6'.");if(K){if(3*K.length!==4*E.length)throw Error("Cannot define RGBA32s for some but not all vertices.");
this._optionalGuard("rgba32s","RGBA32s")}U.push({vertexData:E,rgba32s:K,bits:A})},addPoints:function(E,A){var U=this._pointElements,K=this._getOptional(A,"rgba32s");A=this._getOptional(A,"bits")||0;if(0!==E.length%3)throw Error("vertexData array must be divisible by 3 (i.e. 3 numbers per vertex).");if(K){if(3*K.length!==4*E.length)throw Error("Cannot define RGBA32s for some but not all vertices.");this._optionalGuard("rgba32s","RGBA32s")}U.push({vertexData:E,rgba32s:K,bits:A})},_marshal:function(){var E=
this._faceElements,A=this._lineElements,U=this._pointElements,K=!1,ja=!1,W=!1,ta=!1,xa=!1,Ba=!1,Ab=!1,Pb=!1,Ob=!1,oa=E[0],Ra=A[0],k=U[0];oa&&(K=!!oa.normals,ja=!!oa.uvs,W=!!oa.rgba32s);Ra&&(ta=!!Ra.normals,xa=!!Ra.uvs,Ba=!!Ra.rgba32s);k&&(Ab=!!k.normals,Pb=!!k.uvs,Ob=!!k.rgba32s);var ib=3;oa=this.formatBits;if(Ra=K||ta||Ab)ib+=3,oa|=4096,K&&(oa|=8),ta&&(oa|=64),Ab&&(oa|=512);if(k=ja||xa||Pb)ib+=2,oa|=8192,ja&&(oa|=16),xa&&(oa|=128),Pb&&(oa|=1024);var Cb=W||Ba||Ob;Cb&&(ib+=1,oa|=16384,W&&(oa|=32),
Ba&&(oa|=256),Ob&&(oa|=2048));for(var Bb=0,Y=0;Y<E.length;++Y){var S=E[Y];Bb+=S.vertexData.length}Bb/=3;var $a=0,Ca=0;for(Y=0;Y<A.length;++Y){S=A[Y];var Z=S.vertexData;Z.length&&($a+=Z.length,++Ca)}$a=2*($a/3-Ca);for(Y=Ca=0;Y<U.length;++Y)S=U[Y],Ca+=S.vertexData.length;Ca/=3;ib*=Bb+$a+Ca;Y=g.$$es.allocateUint8Buffer;var Za=Y(4*ib),Mc=E.length?Y(M*E.length):0,Nb=A.length?Y(M*A.length):0,ec=U.length?Y(M*U.length):0,ia=t.subarray(Za),Q=B.subarray(Za>>2),H=0,ua=0;for(Y=0;Y<E.length;++Y){S=E[Y];Z=S.vertexData;
var m=S.normals,r=S.uvs,u=S.rgba32s,x=Z.length/3,z=h.subarray((Mc>>2)+ba*Y);z[0]=ua;z[1]=x;z[2]=S.bits;ua+=x;var L=0;for(x=S=0;x<Z.length;x+=3)Q[H]=Z[x],Q[H+1]=Z[x+1],Q[H+2]=Z[x+2],H+=3,Ra&&(K?(Q[H]=m[x],Q[H+1]=m[x+1],Q[H+2]=m[x+2]):(Q[H]=0,Q[H+1]=0,Q[H+2]=0),H+=3),k&&(ja?(Q[H]=r[L],Q[H+1]=r[L+1],L+=2):(Q[H]=0,Q[H+1]=0),H+=2),Cb&&(z=H<<2,W?(ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++]):(ia[z++]=0,ia[z++]=0,ia[z++]=0,ia[z++]=0),++H)}for(Y=ua=0;Y<A.length;++Y)for(S=A[Y],Z=S.vertexData,
m=S.normals,r=S.uvs,u=S.rgba32s,x=Z.length/3,0<x&&(x=2*x-2),z=h.subarray((Nb>>2)+ba*Y),z[0]=ua,z[1]=x,z[2]=S.bits,ua+=x,S=4,x=3;x<Z.length;x+=3)for(S-=4,E=-3;0>=E;E+=3)K=x+E,Q[H]=Z[K],Q[H+1]=Z[K+1],Q[H+2]=Z[K+2],H+=3,Ra&&(ta?(Q[H]=m[K],Q[H+1]=m[K+1],Q[H+2]=m[K+2]):(Q[H]=0,Q[H+1]=0,Q[H+2]=0),H+=3),k&&(xa?(K=K/3*2,Q[H]=r[K],Q[H+1]=r[K+1]):(Q[H]=0,Q[H+1]=0),H+=2),Cb&&(z=H<<2,Ba?(ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++]):(ia[z++]=0,ia[z++]=0,ia[z++]=0,ia[z++]=0),++H);for(Y=ua=0;Y<U.length;++Y)for(S=
U[Y],Z=S.vertexData,m=S.normals,r=S.uvs,u=S.rgba32s,x=Z.length/3,z=h.subarray((ec>>2)+ba*Y),z[0]=ua,z[1]=x,z[2]=S.bits,ua+=x,x=S=L=0;x<Z.length;x+=3)Q[H]=Z[x],Q[H+1]=Z[x+1],Q[H+2]=Z[x+2],H+=3,Ra&&(Ab?(Q[H]=m[x],Q[H+1]=m[x+1],Q[H+2]=m[x+2]):(Q[H]=0,Q[H+1]=0,Q[H+2]=0),H+=3),k&&(Pb?(Q[H]=r[L],Q[H+1]=r[L+1],L+=2):(Q[H]=0,Q[H+1]=0),H+=2),Cb&&(z=H<<2,Ob?(ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++],ia[z++]=u[S++]):(ia[z++]=0,ia[z++]=0,ia[z++]=0,ia[z++]=0),++H);return{totalFaceVertices:Bb,totalLineVertices:$a,
totalPointVertices:Ca,faceElementInfosPtr:Mc,lineElementInfosPtr:Nb,pointElementInfosPtr:ec,floatDataPtr:Za,floatDataPtrLen:ib,bits:oa}}}};
g.Kj=function(){var a={Pj:null,Xi:null,connection:null,ej:null,hj:null,bj:null,aj:null,$i:1280,Zi:800,gj:1280,fj:800,Qi:1,dk:{command:"SERVER_SETTINGS"},vj:function(c){this.Pj=c;b.vj()},Tk:function(){this.Xj=!0;delete this.ej;delete this.hj;delete this.bj;delete this.aj;this.connection&&this.connection.close()},kk:function(c){a.Xi!==c&&(a.Xi&&(a.Xi.style.display="none"),a.Xi=c,a.Xi.style.display="")},connected:function(){return a.connection&&a.connection.readyState===WebSocket.OPEN},Ej:function(){a.connected()&&
a.connection.send(JSON.stringify({command:"SERVER_SIDE_CLIENT_INFO",width:a.$i*a.Qi,height:a.Zi*a.Qi,layoutWidth:a.gj,layoutHeight:a.fj,encoding:"jpeg"}))},Lk:function(c,d,e,f){0>=c||0>=d||0>=e||0>=f||a.$i===c&&a.Zi===d&&a.gj===e&&a.fj===f||(a.$i=c,a.Zi=d,a.gj=e,a.fj=f,a.connected()&&(void 0!==a.Dj&&window.clearTimeout(a.Dj),a.Dj=setTimeout(function(){a.Xj||(a.Dj=void 0,a.Ej())},500)))},Kk:function(c){a.connected()&&a.connection.send(c)},Pk:function(c){a.ej=c},Qk:function(c){a.hj=c},Ok:function(c){a.bj=
c},Nk:function(c){a.aj=c},Fk:function(c){a.bj&&a.bj(c)},Rk:function(c){var d={command:"SERVER_SETTINGS"},e;for(e in c)if(c.hasOwnProperty(e)){if("scaleHigh"===e){var f=c[e];if("number"!==typeof f)continue;f=Math.min(1,f);0>=f&&(f=1);a.Qi!==f&&(a.Qi=f,a.Ej())}"jpegQualityHigh"!==e&&"jpegQualityLow"!==e&&"jpegChromaSamplesHigh"!==e&&"jpegChromaSamplesLow"!==e&&"scaleLow"!==e||"number"!==typeof c[e]||(d[e]=a.dk[e]=c[e])}a.connected()&&a.connection.send(JSON.stringify(d))},connect:function(c){var d=g.$$es.getNetworkVersion();
a.connection=new WebSocket(c.uri,["binary"]);a.connection.binaryType="arraybuffer";var e=!1;a.connection.onclose=function(){g.gi("websocket_connection_closed")};a.connection.onopen=function(){e=!0;a.connection.send(JSON.stringify({command:"SERVER_SIDE_RENDER",width:a.$i*a.Qi,height:a.Zi*a.Qi,layoutWidth:a.gj,layoutHeight:a.fj,model:c.model,networkVersion:d,streamCulled:!!c.streamCulled,streamKeyedDataOnIdle:!!c.streamMetaDataOnIdle,streamNoLimit:!!c.streamNoLimit,streamInstancesOnDemand:!!c.streamInstancesOnDemand,
streamBoundingPreviews:!!c.streamBoundingPreviews,streamModelBoundingPreviews:!!c.streamModelBoundingPreviews,streamInstanceBoundingPreviews:!!c.streamInstanceBoundingPreviews,streamOnlyInterestingBoundingPreviews:!!c.streamOnlyInterestingBoundingPreviews,streamEjectedBoundingPreviews:!!c.streamEjectedBoundingPreviews,limitMiB:c.limitMiB,meshLevel:c.meshLevel,streamCutoffScale:c.streamCutoffScale,sessionToken:c.sessionToken}));a.Ej();a.connection.send(JSON.stringify(a.dk))};a.connection.onerror=function(){a.aj&&
a.aj(e?"socket_error":"socket_open_failed")};a.connection.onmessage=function(f){if(!a.Xj&&f.data instanceof ArrayBuffer){var l=new Uint8Array(f.data);f=l[0];if(123===f)a.ej&&a.ej(l);else if(68===f)a.hj&&a.hj(l.subarray(1));else{a.connection.send('{"command":"ACK"}');var n=[l[1],l[2]],q=l[4]<<24|l[5]<<16|l[6]<<8|l[7],v=new Uint8Array(l.subarray(8,8+q));l=l.subarray(8+q);0===f&&b.vk(l,n,v)}}}}},b={canvas:null,Nj:null,vj:function(){},createElement:function(){this.canvas||(this.canvas=document.createElement("canvas"),
this.canvas.setAttribute("style","display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%;"),this.Nj=this.canvas.getContext("2d"),a.Pj.appendChild(this.canvas))},drawImage:function(c,d){var e=c.width-d[0];d=c.height-d[1];this.canvas.width!==e&&(this.canvas.width=e);this.canvas.height!==d&&(this.canvas.height=d);this.Nj.drawImage(c,0,0)},nk:function(c,d,e){var f=document.createElement("img");this.Dk=f;f.onload=function(){f===b.Dk&&(b.drawImage(f,d),a.kk(b.canvas),a.Fk(e));URL.revokeObjectURL(c)};
f.onerror=function(){URL.revokeObjectURL(c)};f.src=c;return f},vk:function(c,d,e){12>=c.byteLength||(this.createElement(),this.nk(URL.createObjectURL(new Blob([c],{type:"image/jpeg"})),d,e))}};return a};var sa=Object.assign({},g),va="./this.program",wa=(a,b)=>{throw b;},Aa="object"==typeof window,Da="function"==typeof importScripts,Ea="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,Fa="",Ga,La,Ma;
if(Ea){Fa=Da?require("path").dirname(Fa)+"/":__dirname+"/";var fs,Na;"function"===typeof require&&(fs=require("fs"),Na=require("path"));Ga=(a,b)=>{a=Na.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")};Ma=a=>{a=Ga(a,!0);a.buffer||(a=new Uint8Array(a));return a};La=(a,b,c)=>{a=Na.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&(va=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);"undefined"!=typeof module&&(module.exports=g);process.on("uncaughtException",
function(a){if(!(a instanceof Oa))throw a;});process.on("unhandledRejection",function(a){throw a;});wa=(a,b)=>{if(noExitRuntime)throw process.exitCode=a,b;b instanceof Oa||Pa("exiting due to exception: "+b);process.exit(a)};g.inspect=function(){return"[Emscripten Module object]"}}else if(Aa||Da)Da?Fa=self.location.href:"undefined"!=typeof document&&document.currentScript&&(Fa=document.currentScript.src),Fa=0!==Fa.indexOf("blob:")?Fa.substr(0,Fa.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Ga=a=>{var b=
new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},Da&&(Ma=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),La=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Qa=g.print||console.log.bind(console),Pa=g.printErr||console.warn.bind(console);Object.assign(g,sa);sa=null;
g.thisProgram&&(va=g.thisProgram);g.quit&&(wa=g.quit);var Sa;g.wasmBinary&&(Sa=g.wasmBinary);var noExitRuntime=g.noExitRuntime||!0;"object"!=typeof WebAssembly&&Ta("no native wasm support detected");var Ua,Va=!1,ab="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;
function na(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&ab)return ab.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var l=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|l:(e&7)<<18|f<<12|l<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function bb(a,b){return a?na(t,a,b):""}
function cb(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var l=a.charCodeAt(f);if(55296<=l&&57343>=l){var n=a.charCodeAt(++f);l=65536+((l&1023)<<10)|n&1023}if(127>=l){if(c>=d)break;b[c++]=l}else{if(2047>=l){if(c+1>=d)break;b[c++]=192|l>>6}else{if(65535>=l){if(c+2>=d)break;b[c++]=224|l>>12}else{if(c+3>=d)break;b[c++]=240|l>>18;b[c++]=128|l>>12&63}b[c++]=128|l>>6&63}b[c++]=128|l&63}}b[c]=0;return c-e}
function db(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b}var eb,fb,t,gb,jb,D,h,B,aa;function kb(){var a=Ua.buffer;eb=a;g.HEAP8=fb=new Int8Array(a);g.HEAP16=gb=new Int16Array(a);g.HEAP32=D=new Int32Array(a);g.HEAPU8=t=new Uint8Array(a);g.HEAPU16=jb=new Uint16Array(a);g.HEAPU32=h=new Uint32Array(a);g.HEAPF32=B=new Float32Array(a);g.HEAPF64=aa=new Float64Array(a)}var lb,mb=[],nb=[],ob=[],pb=[];
function rb(){var a=g.preRun.shift();mb.unshift(a)}var sb=0,tb=null,ub=null;function vb(){sb++;g.monitorRunDependencies&&g.monitorRunDependencies(sb)}function wb(){sb--;g.monitorRunDependencies&&g.monitorRunDependencies(sb);if(0==sb&&(null!==tb&&(clearInterval(tb),tb=null),ub)){var a=ub;ub=null;a()}}function Ta(a){if(g.onAbort)g.onAbort(a);a="Aborted("+a+")";Pa(a);Va=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}
function xb(){return yb.startsWith("data:application/octet-stream;base64,")}var yb;yb="engine.wasm";if(!xb()){var zb=yb;yb=g.locateFile?g.locateFile(zb,Fa):Fa+zb}function Db(){var a=yb;try{if(a==yb&&Sa)return new Uint8Array(Sa);if(Ma)return Ma(a);throw"both async and sync fetching of the wasm failed";}catch(b){Ta(b)}}
function Eb(){if(!Sa&&(Aa||Da)){if("function"==typeof fetch&&!yb.startsWith("file://"))return fetch(yb,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+yb+"'";return a.arrayBuffer()}).catch(function(){return Db()});if(La)return new Promise(function(a,b){La(yb,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Db()})}
var Fb,Gb,Hb={726336:()=>{console.log("RPC parsing failed")},726375:(a,b)=>{g.$$facade&&(aa[a>>3]=g.$$facade.container.clientWidth,aa[b>>3]=g.$$facade.container.clientHeight)},726536:()=>{try{var a=window.bowser;return a&&a.windows&&(a.webkit||a.blink||a.gecko)?1:0}catch(b){return 1}},726709:()=>{try{var a=window.bowser;if(!(a&&a.windows&&(a.chrome&&0<=a.compareVersions([a.version,"55"])&&0>a.compareVersions([a.version,"57"])||a.firefox&&0<=a.compareVersions([a.version,"51"])&&0>a.compareVersions([a.version,
"58"]))))return 0}catch(e){return 0}try{var b=g.Ri,c=b.getExtension("WEBGL_debug_renderer_info");if(c){var d=b.getParameter(c.UNMASKED_RENDERER_WEBGL);if(!(d&&0<=d.indexOf("ANGLE")&&(0<=d.indexOf("AMD")||0<=d.indexOf("Radeon"))&&0<=d.indexOf("Direct3D11")))return 0}}catch(e){}return 1}};function Oa(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}function Ib(a){for(;0<a.length;)a.shift()(g)}
var Jb=[],Kb=[],Lb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Mb=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Lb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Qb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+
b},Rb=a=>{if("/"===a)return"/";a=Mb(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)};function Sb(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var a=new Uint8Array(1);return()=>{crypto.getRandomValues(a);return a[0]}}if(Ea)try{var b=require("crypto");return()=>b.randomBytes(1)[0]}catch(c){}return()=>Ta("randomDevice")}
function Tb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!=typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Lb(a.split("/").filter(d=>!!d),!b).join("/");return(b?"/":"")+a||"."}function Ub(a,b){var c=Array(db(a)+1);a=cb(a,c,0,c.length);b&&(c.length=a);return c}var Vb=[];function Wb(a,b){Vb[a]={input:[],output:[],Pi:b};Xb(a,Yb)}
var Yb={open:function(a){var b=Vb[a.node.rdev];if(!b)throw new I(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.Pi.fsync(a.tty)},fsync:function(a){a.tty.Pi.fsync(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.Pi.Wj)throw new I(60);for(var e=0,f=0;f<d;f++){try{var l=a.tty.Pi.Wj(a.tty)}catch(n){throw new I(29);}if(void 0===l&&0===e)throw new I(6);if(null===l||void 0===l)break;e++;b[c+f]=l}e&&(a.node.timestamp=Date.now());return e},write:function(a,b,c,d){if(!a.tty||!a.tty.Pi.Aj)throw new I(60);
try{for(var e=0;e<d;e++)a.tty.Pi.Aj(a.tty,b[c+e])}catch(f){throw new I(29);}d&&(a.node.timestamp=Date.now());return e}},Zb={Wj:function(a){if(!a.input.length){var b=null;if(Ea){var c=Buffer.alloc(256),d=0;try{d=fs.readSync(process.stdin.fd,c,0,256,-1)}catch(e){if(e.toString().includes("EOF"))d=0;else throw e;}0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=
readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Ub(b,!0)}return a.input.shift()},Aj:function(a,b){null===b||10===b?(Qa(na(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},fsync:function(a){a.output&&0<a.output.length&&(Qa(na(a.output,0)),a.output=[])}},$b={Aj:function(a,b){null===b||10===b?(Pa(na(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},fsync:function(a){a.output&&0<a.output.length&&(Pa(na(a.output,0)),a.output=[])}},J={vi:null,Ai:function(){return J.createNode(null,"/",16895,
0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new I(63);J.vi||(J.vi={dir:{node:{Ei:J.ei.Ei,ri:J.ei.ri,lookup:J.ei.lookup,ij:J.ei.ij,rename:J.ei.rename,unlink:J.ei.unlink,rmdir:J.ei.rmdir,readdir:J.ei.readdir,symlink:J.ei.symlink},stream:{Gi:J.fi.Gi}},file:{node:{Ei:J.ei.Ei,ri:J.ei.ri},stream:{Gi:J.fi.Gi,read:J.fi.read,write:J.fi.write,Lj:J.fi.Lj,zj:J.fi.zj,ak:J.fi.ak}},link:{node:{Ei:J.ei.Ei,ri:J.ei.ri,readlink:J.ei.readlink},stream:{}},Oj:{node:{Ei:J.ei.Ei,ri:J.ei.ri},
stream:ac}});c=bc(a,b,c,d);16384===(c.mode&61440)?(c.ei=J.vi.dir.node,c.fi=J.vi.dir.stream,c.di={}):32768===(c.mode&61440)?(c.ei=J.vi.file.node,c.fi=J.vi.file.stream,c.ii=0,c.di=null):40960===(c.mode&61440)?(c.ei=J.vi.link.node,c.fi=J.vi.link.stream):8192===(c.mode&61440)&&(c.ei=J.vi.Oj.node,c.fi=J.vi.Oj.stream);c.timestamp=Date.now();a&&(a.di[b]=c,a.timestamp=c.timestamp);return c},hl:function(a){return a.di?a.di.subarray?a.di.subarray(0,a.ii):new Uint8Array(a.di):new Uint8Array(0)},Tj:function(a,
b){var c=a.di?a.di.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.di,a.di=new Uint8Array(b),0<a.ii&&a.di.set(c.subarray(0,a.ii),0))},Jk:function(a,b){if(a.ii!=b)if(0==b)a.di=null,a.ii=0;else{var c=a.di;a.di=new Uint8Array(b);c&&a.di.set(c.subarray(0,Math.min(b,a.ii)));a.ii=b}},ei:{Ei:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;16384===(a.mode&61440)?b.size=4096:32768===(a.mode&61440)?
b.size=a.ii:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.lk=4096;b.blocks=Math.ceil(b.size/b.lk);return b},ri:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&J.Jk(a,b.size)},lookup:function(){throw cc[44];},ij:function(a,b,c,d){return J.createNode(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){try{var d=dc(b,c)}catch(f){}if(d)for(var e in d.di)throw new I(55);
}delete a.parent.di[a.name];a.parent.timestamp=Date.now();a.name=c;b.di[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.di[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=dc(a,b),d;for(d in c.di)throw new I(55);delete a.di[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.di)a.di.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=J.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new I(28);
return a.link}},fi:{read:function(a,b,c,d,e){var f=a.node.di;if(e>=a.node.ii)return 0;a=Math.min(a.node.ii-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write:function(a,b,c,d,e,f){b.buffer===fb.buffer&&(f=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.di||a.di.subarray)){if(f)return a.di=b.subarray(c,c+d),a.ii=d;if(0===a.ii&&0===e)return a.di=b.slice(c,c+d),a.ii=d;if(e+d<=a.ii)return a.di.set(b.subarray(c,c+d),e),d}J.Tj(a,e+
d);if(a.di.subarray&&b.subarray)a.di.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.di[e+f]=b[c+f];a.ii=Math.max(a.ii,e+d);return d},Gi:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.ii);if(0>b)throw new I(28);return b},Lj:function(a,b,c){J.Tj(a.node,b+c);a.node.ii=Math.max(a.node.ii,b+c)},zj:function(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new I(43);a=a.node.di;if(e&2||a.buffer!==eb){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,
c,c+b);c=!0;Ta();b=void 0;if(!b)throw new I(48);fb.set(a,b)}else c=!1,b=a.byteOffset;return{hi:b,$k:c}},ak:function(a,b,c,d){J.fi.write(a,b,0,d,c,!1);return 0}}};function fc(a,b,c){var d="al "+a;La(a,e=>{e||Ta('Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(e));d&&wb(d)},()=>{if(c)c();else throw'Loading data file "'+a+'" failed.';});d&&vb(d)}
var gc=null,hc={},ic=[],jc=1,kc=null,lc=!0,I=null,cc={},nc=(a,b={})=>{a=Tb("/",a);if(!a)return{path:"",node:null};b=Object.assign({Vj:!0,Bj:0},b);if(8<b.Bj)throw new I(32);a=Lb(a.split("/").filter(l=>!!l),!1);for(var c=gc,d="/",e=0;e<a.length;e++){var f=e===a.length-1;if(f&&b.parent)break;c=dc(c,a[e]);d=Mb(d+"/"+a[e]);c.Ti&&(!f||f&&b.Vj)&&(c=c.Ti.root);if(!f||b.rj)for(f=0;40960===(c.mode&61440);)if(c=mc(d),d=Tb(Qb(d),c),c=nc(d,{Bj:b.Bj+1}).node,40<f++)throw new I(32);}return{path:d,node:c}},oc=a=>
{for(var b;;){if(a===a.parent)return a=a.Ai.$j,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},pc=(a,b)=>{for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%kc.length},dc=(a,b)=>{var c;if(c=(c=qc(a,"x"))?c:a.ei.lookup?0:2)throw new I(c,a);for(c=kc[pc(a.id,b)];c;c=c.Oi){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.ei.lookup(a,b)},bc=(a,b,c,d)=>{a=new rc(a,b,c,d);b=pc(a.parent.id,a.name);a.Oi=kc[b];return kc[b]=a},sc={r:0,"r+":2,w:577,
"w+":578,a:1089,"a+":1090},tc=a=>{var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},qc=(a,b)=>{if(lc)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0},uc=(a,b)=>{try{return dc(a,b),20}catch(c){}return qc(a,"wx")},vc=(a=0)=>{for(;4096>=a;a++)if(!ic[a])return a;throw new I(33);},xc=(a,b)=>{wc||(wc=function(){this.li={}},wc.prototype={},Object.defineProperties(wc.prototype,{object:{get:function(){return this.node},
set:function(c){this.node=c}},flags:{get:function(){return this.li.flags},set:function(c){this.li.flags=c}},position:{get:function(){return this.li.position},set:function(c){this.li.position=c}}}));a=Object.assign(new wc,a);b=vc(b);a.fd=b;return ic[b]=a},ac={open:a=>{a.fi=hc[a.node.rdev].fi;a.fi.open&&a.fi.open(a)},Gi:()=>{throw new I(70);}},Xb=(a,b)=>{hc[a]={fi:b}},yc=(a,b)=>{var c="/"===b,d=!b;if(c&&gc)throw new I(10);if(!c&&!d){var e=nc(b,{Vj:!1});b=e.path;e=e.node;if(e.Ti)throw new I(10);if(16384!==
(e.mode&61440))throw new I(54);}b={type:a,nl:{},$j:b,Ek:[]};a=a.Ai(b);a.Ai=b;b.root=a;c?gc=a:e&&(e.Ti=b,e.Ai&&e.Ai.Ek.push(b))},zc=(a,b,c)=>{var d=nc(a,{parent:!0}).node;a=Rb(a);if(!a||"."===a||".."===a)throw new I(28);var e=uc(d,a);if(e)throw new I(e);if(!d.ei.ij)throw new I(63);return d.ei.ij(d,a,b,c)},Ac=(a,b,c)=>{"undefined"==typeof c&&(c=b,b=438);return zc(a,b|8192,c)},Bc=(a,b)=>{if(!Tb(a))throw new I(44);var c=nc(b,{parent:!0}).node;if(!c)throw new I(44);b=Rb(b);var d=uc(c,b);if(d)throw new I(d);
if(!c.ei.symlink)throw new I(63);c.ei.symlink(c,b,a)},Cc=a=>{var b=nc(a,{parent:!0}).node;if(!b)throw new I(44);var c=Rb(a);a=dc(b,c);a:{try{var d=dc(b,c)}catch(f){d=f.Di;break a}var e=qc(b,"wx");d=e?e:16384===(d.mode&61440)?31:0}if(d)throw new I(d);if(!b.ei.unlink)throw new I(63);if(a.Ti)throw new I(10);b.ei.unlink(b,c);b=pc(a.parent.id,a.name);if(kc[b]===a)kc[b]=a.Oi;else for(b=kc[b];b;){if(b.Oi===a){b.Oi=a.Oi;break}b=b.Oi}},mc=a=>{a=nc(a).node;if(!a)throw new I(44);if(!a.ei.readlink)throw new I(28);
return Tb(oc(a.parent),a.ei.readlink(a))},Dc=(a,b)=>{a="string"==typeof a?nc(a,{rj:!0}).node:a;if(!a.ei.ri)throw new I(63);a.ei.ri(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},Fc=(a,b,c)=>{if(""===a)throw new I(44);if("string"==typeof b){var d=sc[b];if("undefined"==typeof d)throw Error("Unknown file open mode: "+b);b=d}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var e=a;else{a=Mb(a);try{e=nc(a,{rj:!(b&131072)}).node}catch(f){}}d=!1;if(b&64)if(e){if(b&128)throw new I(20);
}else e=zc(a,c,0),d=!0;if(!e)throw new I(44);8192===(e.mode&61440)&&(b&=-513);if(b&65536&&16384!==(e.mode&61440))throw new I(54);if(!d&&(c=e?40960===(e.mode&61440)?32:16384===(e.mode&61440)&&("r"!==tc(b)||b&512)?31:qc(e,tc(b)):44))throw new I(c);if(b&512&&!d){c=e;c="string"==typeof c?nc(c,{rj:!0}).node:c;if(!c.ei.ri)throw new I(63);if(16384===(c.mode&61440))throw new I(31);if(32768!==(c.mode&61440))throw new I(28);if(d=qc(c,"w"))throw new I(d);c.ei.ri(c,{size:0,timestamp:Date.now()})}b&=-131713;e=
xc({node:e,path:oc(e),flags:b,seekable:!0,position:0,fi:e.fi,Yk:[],error:!1});e.fi.open&&e.fi.open(e);!g.logReadFiles||b&1||(Ec||(Ec={}),a in Ec||(Ec[a]=1));return e},Gc=a=>{if(null===a.fd)throw new I(8);a.sj&&(a.sj=null);try{a.fi.close&&a.fi.close(a)}catch(b){throw b;}finally{ic[a.fd]=null}a.fd=null},Hc=(a,b,c)=>{if(null===a.fd)throw new I(8);if(!a.seekable||!a.fi.Gi)throw new I(70);if(0!=c&&1!=c&&2!=c)throw new I(28);a.position=a.fi.Gi(a,b,c);a.Yk=[]},Ic=(a,b,c,d,e,f)=>{if(0>d||0>e)throw new I(28);
if(null===a.fd)throw new I(8);if(0===(a.flags&2097155))throw new I(8);if(16384===(a.node.mode&61440))throw new I(31);if(!a.fi.write)throw new I(28);a.seekable&&a.flags&1024&&Hc(a,0,2);var l="undefined"!=typeof e;if(!l)e=a.position;else if(!a.seekable)throw new I(70);b=a.fi.write(a,b,c,d,e,f);l||(a.position+=b);return b},Nc=()=>{I||(I=function(a,b){this.node=b;this.Mk=function(c){this.Di=c};this.Mk(a);this.message="FS error"},I.prototype=Error(),I.prototype.constructor=I,[44].forEach(a=>{cc[a]=new I(a);
cc[a].stack="<generic error, no stack>"}))},Oc,Pc=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},Qc=(a,b)=>{a="string"==typeof a?a:oc(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Mb(a+"/"+c);try{zc(d,16895,0)}catch(e){}a=d}}return d},Rc=(a,b,c,d)=>{a=Mb(("string"==typeof a?a:oc(a))+"/"+b);c=Pc(c,d);return zc(a,(void 0!==c?c:438)&4095|32768,0)},Sc=(a,b,c,d,e,f)=>{var l=b;a&&(a="string"==typeof a?a:oc(a),l=b?Mb(a+"/"+b):a);a=Pc(d,e);l=zc(l,(void 0!==a?a:438)&4095|32768,0);
if(c){if("string"==typeof c){b=Array(c.length);d=0;for(e=c.length;d<e;++d)b[d]=c.charCodeAt(d);c=b}Dc(l,a|146);b=Fc(l,577);Ic(b,c,0,c.length,0,f);Gc(b);Dc(l,a)}return l},Tc=(a,b,c,d)=>{a=Mb(("string"==typeof a?a:oc(a))+"/"+b);b=Pc(!!c,!!d);Tc.Zj||(Tc.Zj=64);var e=Tc.Zj++<<8|0;Xb(e,{open:f=>{f.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(f,l,n,q)=>{for(var v=0,w=0;w<q;w++){try{var C=c()}catch(G){throw new I(29);}if(void 0===C&&0===v)throw new I(6);if(null===C||void 0===C)break;
v++;l[n+w]=C}v&&(f.node.timestamp=Date.now());return v},write:(f,l,n,q)=>{for(var v=0;v<q;v++)try{d(l[n+v])}catch(w){throw new I(29);}q&&(f.node.timestamp=Date.now());return v}});return Ac(a,b,e)},Uc=a=>{if(!(a.Ak||a.Bk||a.link||a.di)){if("undefined"!=typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(Ga)try{a.di=Ub(Ga(a.url),
!0),a.ii=a.di.length}catch(b){throw new I(29);}else throw Error("Cannot load without read() or XMLHttpRequest.");}},Vc=(a,b,c,d,e)=>{function f(){this.xj=!1;this.li=[]}f.prototype.get=function(w){if(!(w>this.length-1||0>w)){var C=w%this.chunkSize;return this.Ni(w/this.chunkSize|0)[C]}};f.prototype.pk=function(w){this.Ni=w};f.prototype.Mj=function(){var w=new XMLHttpRequest;w.open("HEAD",c,!1);w.send(null);if(!(200<=w.status&&300>w.status||304===w.status))throw Error("Couldn't load "+c+". Status: "+
w.status);var C=Number(w.getResponseHeader("Content-length")),G,p=(G=w.getResponseHeader("Accept-Ranges"))&&"bytes"===G;w=(G=w.getResponseHeader("Content-Encoding"))&&"gzip"===G;var y=1048576;p||(y=C);var F=this;F.pk(R=>{var ba=R*y,M=(R+1)*y-1;M=Math.min(M,C-1);if("undefined"==typeof F.li[R]){var E=F.li;if(ba>M)throw Error("invalid range ("+ba+", "+M+") or no bytes requested!");if(M>C-1)throw Error("only "+C+" bytes available! programmer error!");var A=new XMLHttpRequest;A.open("GET",c,!1);C!==y&&
A.setRequestHeader("Range","bytes="+ba+"-"+M);A.responseType="arraybuffer";A.overrideMimeType&&A.overrideMimeType("text/plain; charset=x-user-defined");A.send(null);if(!(200<=A.status&&300>A.status||304===A.status))throw Error("Couldn't load "+c+". Status: "+A.status);ba=void 0!==A.response?new Uint8Array(A.response||[]):Ub(A.responseText||"",!0);E[R]=ba}if("undefined"==typeof F.li[R])throw Error("doXHR failed!");return F.li[R]});if(w||!C)y=C=1,y=C=this.Ni(0).length,Qa("LazyFiles on gzip forces download of the whole file when length is accessed");
this.jk=C;this.ik=y;this.xj=!0};if("undefined"!=typeof XMLHttpRequest){if(!Da)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var l=new f;Object.defineProperties(l,{length:{get:function(){this.xj||this.Mj();return this.jk}},chunkSize:{get:function(){this.xj||this.Mj();return this.ik}}});var n=void 0}else n=c,l=void 0;var q=Rc(a,b,d,e);l?q.di=l:n&&(q.di=null,q.url=n);Object.defineProperties(q,{ii:{get:function(){return this.di.length}}});
var v={};Object.keys(q.fi).forEach(w=>{var C=q.fi[w];v[w]=function(){Uc(q);return C.apply(null,arguments)}});v.read=(w,C,G,p,y)=>{Uc(q);w=w.node.di;if(y>=w.length)C=0;else{p=Math.min(w.length-y,p);if(w.slice)for(var F=0;F<p;F++)C[G+F]=w[y+F];else for(F=0;F<p;F++)C[G+F]=w.get(y+F);C=p}return C};v.zj=()=>{Uc(q);Ta();throw new I(48);};q.fi=v;return q},Xc=(a,b,c,d,e,f,l,n,q,v)=>{function w(p){function y(F){v&&v();n||Sc(a,b,F,d,e,q);f&&f();wb(G)}Wc(p,C,y,()=>{l&&l();wb(G)})||y(p)}var C=b?Tb(Mb(a+"/"+b)):
a,G="cp "+C;vb(G);"string"==typeof c?fc(c,p=>w(p),l):w(c)},Yc={},wc,Ec,Zc=void 0;function $c(){Zc+=4;return D[Zc-4>>2]}function ad(a){a=ic[a];if(!a)throw new I(8);return a}var bd={};function cd(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function dd(a){return this.fromWireType(D[a>>2])}var ed={},fd={},gd={};function hd(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}
function jd(a,b){a=hd(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function kd(a){var b=Error,c=jd(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}
var ld=void 0;function md(a){throw new ld(a);}function nd(a,b,c){function d(n){n=c(n);n.length!==a.length&&md("Mismatched type converter count");for(var q=0;q<a.length;++q)od(a[q],n[q])}a.forEach(function(n){gd[n]=b});var e=Array(b.length),f=[],l=0;b.forEach((n,q)=>{fd.hasOwnProperty(n)?e[q]=fd[n]:(f.push(n),ed.hasOwnProperty(n)||(ed[n]=[]),ed[n].push(()=>{e[q]=fd[n];++l;l===f.length&&d(e)}))});0===f.length&&d(e)}var pd={};
function qd(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var rd=void 0;function sd(a){for(var b="";t[a];)b+=rd[t[a++]];return b}var td=void 0;function ud(a){throw new td(a);}
function od(a,b,c={}){if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||ud('type "'+d+'" must have a positive integer typeid pointer');if(fd.hasOwnProperty(a)){if(c.xk)return;ud("Cannot register type '"+d+"' twice")}fd[a]=b;delete gd[a];ed.hasOwnProperty(a)&&(b=ed[a],delete ed[a],b.forEach(e=>e()))}function wd(a){ud(a.ci.ki.ji.name+" instance already deleted")}var xd=!1;function yd(){}
function zd(a){--a.count.value;0===a.count.value&&(a.oi?a.ti.si(a.oi):a.ki.ji.si(a.hi))}function Ad(a,b,c){if(b===c)return a;if(void 0===c.ui)return null;a=Ad(a,b,c.ui);return null===a?null:c.qk(a)}var Bd={},Cd=[];function Dd(){for(;Cd.length;){var a=Cd.pop();a.ci.Mi=!1;a["delete"]()}}var Ed=void 0,Fd={};function Gd(a,b){for(void 0===b&&ud("ptr should not be undefined");a.ui;)b=a.Wi(b),a=a.ui;return Fd[b]}
function Hd(a,b){b.ki&&b.hi||md("makeClassHandle requires ptr and ptrType");!!b.ti!==!!b.oi&&md("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Id(Object.create(a,{ci:{value:b}}))}function Id(a){if("undefined"===typeof FinalizationRegistry)return Id=b=>b,a;xd=new FinalizationRegistry(b=>{zd(b.ci)});Id=b=>{var c=b.ci;c.oi&&xd.register(b,{ci:c},b);return b};yd=b=>{xd.unregister(b)};return Id(a)}function Jd(){}
function Kd(a,b,c){if(void 0===a[b].Bi){var d=a[b];a[b]=function(){a[b].Bi.hasOwnProperty(arguments.length)||ud("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].Bi+")!");return a[b].Bi[arguments.length].apply(this,arguments)};a[b].Bi=[];a[b].Bi[d.pj]=d}}
function Ld(a,b){g.hasOwnProperty(a)?(ud("Cannot register public name '"+a+"' twice"),Kd(g,a,a),g.hasOwnProperty(void 0)&&ud("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[a].Bi[void 0]=b):g[a]=b}function Md(a,b,c,d,e,f,l,n){this.name=a;this.constructor=b;this.Si=c;this.si=d;this.ui=e;this.tk=f;this.Wi=l;this.qk=n}
function Nd(a,b,c){for(;b!==c;)b.Wi||ud("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.Wi(a),b=b.ui;return a}function Od(a,b){if(null===b)return this.wj&&ud("null is not a valid "+this.name),0;b.ci||ud('Cannot pass "'+Pd(b)+'" as a '+this.name);b.ci.hi||ud("Cannot pass deleted object as a pointer of type "+this.name);return Nd(b.ci.hi,b.ci.ki.ji,this.ji)}
function Qd(a,b){if(null===b){this.wj&&ud("null is not a valid "+this.name);if(this.dj){var c=this.Vi();null!==a&&a.push(this.si,c);return c}return 0}b.ci||ud('Cannot pass "'+Pd(b)+'" as a '+this.name);b.ci.hi||ud("Cannot pass deleted object as a pointer of type "+this.name);!this.cj&&b.ci.ki.cj&&ud("Cannot convert argument of type "+(b.ci.ti?b.ci.ti.name:b.ci.ki.name)+" to parameter type "+this.name);c=Nd(b.ci.hi,b.ci.ki.ji,this.ji);if(this.dj)switch(void 0===b.ci.oi&&ud("Passing raw pointer to smart pointer is illegal"),
this.Sk){case 0:b.ci.ti===this?c=b.ci.oi:ud("Cannot convert argument of type "+(b.ci.ti?b.ci.ti.name:b.ci.ki.name)+" to parameter type "+this.name);break;case 1:c=b.ci.oi;break;case 2:if(b.ci.ti===this)c=b.ci.oi;else{var d=b.clone();c=this.Ik(c,Rd(function(){d["delete"]()}));null!==a&&a.push(this.si,c)}break;default:ud("Unsupporting sharing policy")}return c}
function Sd(a,b){if(null===b)return this.wj&&ud("null is not a valid "+this.name),0;b.ci||ud('Cannot pass "'+Pd(b)+'" as a '+this.name);b.ci.hi||ud("Cannot pass deleted object as a pointer of type "+this.name);b.ci.ki.cj&&ud("Cannot convert argument of type "+b.ci.ki.name+" to parameter type "+this.name);return Nd(b.ci.hi,b.ci.ki.ji,this.ji)}
function Td(a,b,c,d){this.name=a;this.ji=b;this.wj=c;this.cj=d;this.dj=!1;this.si=this.Ik=this.Vi=this.ck=this.Sk=this.Gk=void 0;void 0!==b.ui?this.toWireType=Qd:(this.toWireType=d?Od:Sd,this.pi=null)}function Ud(a,b){g.hasOwnProperty(a)||md("Replacing nonexistant public symbol");g[a]=b;g[a].pj=void 0}
function Vd(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes("j")){var d=g["dynCall_"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=lb.get(b).apply(null,c);return d}}function Wd(a,b){a=sd(a);var c=a.includes("j")?Vd(a,b):lb.get(b);"function"!=typeof c&&ud("unknown function pointer with signature "+a+": "+b);return c}var Xd=void 0;function Yd(a){a=Zd(a);var b=sd(a);$d(a);return b}
function ae(a,b){function c(f){e[f]||fd[f]||(gd[f]?gd[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Xd(a+": "+d.map(Yd).join([", "]));}function be(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=jd(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
function ce(a,b){for(var c=[],d=0;d<a;d++)c.push(h[b+4*d>>2]);return c}var de=[],ee=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function fe(a){4<a&&0===--ee[a].Cj&&(ee[a]=void 0,de.push(a))}var ge=a=>{a||ud("Cannot use deleted val. handle = "+a);return ee[a].value},Rd=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=de.length?de.pop():ee.length;ee[b]={Cj:1,value:a};return b}};
function he(a,b,c){switch(b){case 0:return function(d){return this.fromWireType((c?fb:t)[d])};case 1:return function(d){return this.fromWireType((c?gb:jb)[d>>1])};case 2:return function(d){return this.fromWireType((c?D:h)[d>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function ie(a,b){var c=fd[a];void 0===c&&ud(b+" has unknown type "+Yd(a));return c}function Pd(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
function je(a,b){switch(b){case 2:return function(c){return this.fromWireType(B[c>>2])};case 3:return function(c){return this.fromWireType(aa[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
function ke(a,b,c){switch(b){case 0:return c?function(d){return fb[d]}:function(d){return t[d]};case 1:return c?function(d){return gb[d>>1]}:function(d){return jb[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return h[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var le="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;
function me(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&jb[c];)++c;c<<=1;if(32<c-a&&le)return le.decode(t.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var e=gb[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}function ne(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)gb[b>>1]=a.charCodeAt(e),b+=2;gb[b>>1]=0;return b-d}function oe(a){return 2*a.length}
function pe(a,b){for(var c=0,d="";!(c>=b/4);){var e=D[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}function qe(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var l=a.charCodeAt(++e);f=65536+((f&1023)<<10)|l&1023}D[b>>2]=f;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}
function re(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}function se(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=ie(h[b+4*d>>2],"parameter "+d);return c}var te={};function ue(a){var b=te[a];return void 0===b?sd(a):b}var ve=[];function we(){return"object"==typeof globalThis?globalThis:Function("return this")()}function xe(a){var b=ve.length;ve.push(a);return b}var ye=[];
function ze(a){for(var b="",c=0;c<a;++c)b+=(0!==c?", ":"")+"arg"+c;var d="return function emval_allocator_"+a+"(constructor, argTypes, args) {\n var HEAPU32 = getMemory();\n";for(c=0;c<a;++c)d+="var argType"+c+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+c+"');\nvar arg"+c+" = argType"+c+".readValueFromPointer(args);\nargs += argType"+c+"['argPackAdvance'];\nargTypes += 4;\n";return(new Function("requireRegisteredType","Module","valueToHandle","getMemory",d+("var obj = new constructor("+
b+");\nreturn valueToHandle(obj);\n}\n")))(ie,g,Rd,()=>h)}var Ae={},Be=[];
function Ce(a,b){De=a;Ee=b;if(Fe)if(Ge||(Ge=!0),0==a)He=function(){var d=Math.max(0,Ie+b-Je())|0;setTimeout(Ke,d)};else if(1==a)He=function(){Le(Ke)};else if(2==a){if("undefined"==typeof setImmediate){var c=[];addEventListener("message",d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);setImmediate=function(d){c.push(d);Da?(void 0===g.setImmediates&&(g.setImmediates=[]),g.setImmediates.push(d),postMessage({target:"setimmediate"})):postMessage("setimmediate",
"*")}}He=function(){setImmediate(Ke)}}}var Je;Je=Ea?()=>{var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now();function Me(a){if(!noExitRuntime){if(g.onExit)g.onExit(a);Va=!0}wa(a,new Oa(a))}function Ne(a){a instanceof Oa||"unwind"==a||wa(1,a)}
function Oe(a){!Fe||Ta("emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Fe=a;var b=Pe;Ge=!1;Ke=function(){if(!Va)if(0<Qe.length){var c=Date.now(),d=Qe.shift();d.gl(d.al);if(Re){var e=Re,f=0==e%1?e-1:Math.floor(e);Re=d.bl?f:(8*e+(f+.5))/9}Qa('main loop blocker "'+d.name+'" took '+(Date.now()-c)+" ms");g.setStatus&&(c=g.statusMessage||"Please wait...",d=Re,e=
Se.fl,d?d<e?g.setStatus(c+" ("+(e-d)+"/"+e+")"):g.setStatus(c):g.setStatus(""));b<Pe||setTimeout(Ke,0)}else b<Pe||(Te=Te+1|0,1==De&&1<Ee&&0!=Te%Ee?He():(0==De&&(Ie=Je()),Va||g.preMainLoop&&!1===g.preMainLoop()||(Ue(a),g.postMainLoop&&g.postMainLoop()),b<Pe||("object"==typeof SDL&&SDL.audio&&SDL.audio.Hk&&SDL.audio.Hk(),He())))}}function Ue(a){if(!Va)try{a()}catch(b){Ne(b)}}function Ve(a,b){setTimeout(function(){Ue(a)},b)}function We(a){Xe||(Xe={});Xe[a]||(Xe[a]=1,Ea&&(a="warning: "+a),Pa(a))}
var Xe,Ge=!1,He=null,Pe=0,Fe=null,De=0,Ee=0,Te=0,Qe=[],Se={},Ie,Ke,Re,Ye=!1,Ze=!1,$e=[];
function af(){function a(){Ze=document.pointerLockElement===g.canvas||document.mozPointerLockElement===g.canvas||document.webkitPointerLockElement===g.canvas||document.msPointerLockElement===g.canvas}g.preloadPlugins||(g.preloadPlugins=[]);if(!bf){bf=!0;try{cf=!0}catch(c){cf=!1,Pa("warning: no blob constructor, cannot create blobs with mimetypes")}df="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:cf?null:Pa("warning: no BlobBuilder");ef="undefined"!=
typeof window?window.URL?window.URL:window.webkitURL:void 0;g.bk||"undefined"!=typeof ef||(Pa("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),g.bk=!0);g.preloadPlugins.push({canHandle:function(c){return!g.bk&&/\.(jpg|jpeg|png|bmp)$/i.test(c)},handle:function(c,d,e,f){var l=null;if(cf)try{l=new Blob([c],{type:ff(d)}),l.size!==c.length&&(l=new Blob([(new Uint8Array(c)).buffer],{type:ff(d)}))}catch(v){We("Blob constructor present but fails: "+
v+"; falling back to blob builder")}l||(l=new df,l.append((new Uint8Array(c)).buffer),l=l.getBlob());var n=ef.createObjectURL(l),q=new Image;q.onload=()=>{q.complete||Ta("Image "+d+" could not be decoded");var v=document.createElement("canvas");v.width=q.width;v.height=q.height;v.getContext("2d").drawImage(q,0,0);ef.revokeObjectURL(n);e&&e(c)};q.onerror=()=>{Qa("Image "+n+" could not be decoded");f&&f()};q.src=n}});g.preloadPlugins.push({canHandle:function(c){return!g.ml&&c.substr(-4)in{".ogg":1,
".wav":1,".mp3":1}},handle:function(c,d,e,f){function l(){q||(q=!0,e&&e(c))}function n(){q||(q=!0,new Audio,f&&f())}var q=!1;if(cf){try{var v=new Blob([c],{type:ff(d)})}catch(C){return n()}v=ef.createObjectURL(v);var w=new Audio;w.addEventListener("canplaythrough",()=>l(w),!1);w.onerror=function(){if(!q){Pa("warning: browser could not fully decode audio "+d+", trying slower base64 approach");for(var C="",G=0,p=0,y=0;y<c.length;y++)for(G=G<<8|c[y],p+=8;6<=p;){var F=G>>p-6&63;p-=6;C+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[F]}2==
p?(C+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(G&3)<<4],C+="=="):4==p&&(C+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(G&15)<<2],C+="=");w.src="data:audio/x-"+d.substr(-3)+";base64,"+C;l(w)}};w.src=v;Ve(function(){l(w)},1E4)}else return n()}});var b=g.canvas;b&&(b.requestPointerLock=b.requestPointerLock||b.mozRequestPointerLock||b.webkitRequestPointerLock||b.msRequestPointerLock||(()=>{}),b.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||
document.webkitExitPointerLock||document.msExitPointerLock||(()=>{}),b.exitPointerLock=b.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),g.elementPointerLock&&b.addEventListener("click",c=>{!Ze&&g.canvas.requestPointerLock&&(g.canvas.requestPointerLock(),c.preventDefault())},!1))}}
function Wc(a,b,c,d){af();var e=!1;g.preloadPlugins.forEach(function(f){!e&&f.canHandle(b)&&(f.handle(a,b,c,d),e=!0)});return e}
function gf(a,b,c,d){if(b&&g.Ri&&a==g.canvas)return g.Ri;var e;if(b){var f={antialias:!1,alpha:!1,yj:"undefined"!=typeof WebGL2RenderingContext?2:1};if(d)for(var l in d)f[l]=d[l];if("undefined"!=typeof hf&&(e=jf(a,f)))var n=kf[e].Li}else n=a.getContext("2d");if(!n)return null;c&&(b||"undefined"==typeof N||Ta("cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),g.Ri=n,b&&lf(e),g.sl=b,$e.forEach(function(q){q()}),af());return n}var mf=!1,nf=void 0,of=void 0;
function pf(a,b){function c(){Ye=!1;var f=d.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===f?(d.exitFullscreen=qf,nf&&d.requestPointerLock(),Ye=!0,of?("undefined"!=typeof SDL&&(D[SDL.screen>>2]=h[SDL.screen>>2]|8388608),rf(g.canvas),sf()):rf(d)):(f.parentNode.insertBefore(d,f),f.parentNode.removeChild(f),of?("undefined"!=typeof SDL&&(D[SDL.screen>>2]=h[SDL.screen>>2]&
-8388609),rf(g.canvas),sf()):rf(d));if(g.onFullScreen)g.onFullScreen(Ye);if(g.onFullscreen)g.onFullscreen(Ye)}nf=a;of=b;"undefined"==typeof nf&&(nf=!0);"undefined"==typeof of&&(of=!1);var d=g.canvas;mf||(mf=!0,document.addEventListener("fullscreenchange",c,!1),document.addEventListener("mozfullscreenchange",c,!1),document.addEventListener("webkitfullscreenchange",c,!1),document.addEventListener("MSFullscreenChange",c,!1));var e=document.createElement("div");d.parentNode.insertBefore(e,d);e.appendChild(d);
e.requestFullscreen=e.requestFullscreen||e.mozRequestFullScreen||e.msRequestFullscreen||(e.webkitRequestFullscreen?()=>e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):null)||(e.webkitRequestFullScreen?()=>e.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):null);e.requestFullscreen()}
function qf(){if(!Ye)return!1;(document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]);return!0}var tf=0;function Le(a){if("function"==typeof requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===tf)tf=b+1E3/60;else for(;b+2>=tf;)tf+=1E3/60;setTimeout(a,Math.max(tf-b,0))}}function uf(a){Le(function(){Ue(a)})}
function ff(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var vf=[];function sf(){var a=g.canvas;vf.forEach(function(b){b(a.width,a.height)})}
function rf(a,b,c){b&&c?(a.Zk=b,a.wk=c):(b=a.Zk,c=a.wk);var d=b,e=c;g.forcedAspectRatio&&0<g.forcedAspectRatio&&(d/e<g.forcedAspectRatio?d=Math.round(e*g.forcedAspectRatio):e=Math.round(d/g.forcedAspectRatio));if((document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen){var f=Math.min(screen.width/d,screen.height/e);d=Math.round(d*f);e=Math.round(e*
f)}of?(a.width!=d&&(a.width=d),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||e!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))}var bf,cf,df,ef;
function wf(a){var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=function(c,d){b.vertexAttribDivisorANGLE(c,d)},a.drawArraysInstanced=function(c,d,e,f){b.drawArraysInstancedANGLE(c,d,e,f)},a.drawElementsInstanced=function(c,d,e,f,l){b.drawElementsInstancedANGLE(c,d,e,f,l)})}
function xf(a){var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=function(){return b.createVertexArrayOES()},a.deleteVertexArray=function(c){b.deleteVertexArrayOES(c)},a.bindVertexArray=function(c){b.bindVertexArrayOES(c)},a.isVertexArray=function(c){return b.isVertexArrayOES(c)})}function yf(a){var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=function(c,d){b.drawBuffersWEBGL(c,d)})}
var zf=1,Af=[],Bf=[],Cf=[],Df=[],Ef=[],Ff=[],Gf=[],kf=[],Hf={},If=[],Jf=[],Kf=[],Lf=[],Mf={},Nf={},Of=4;function O(a){Pf||(Pf=a)}function Qf(a){for(var b=zf++,c=a.length;c<b;c++)a[c]=null;return b}function Rf(a,b,c){for(var d="",e=0;e<a;++e){var f=c?D[c+4*e>>2]:-1;d+=bb(D[b+4*e>>2],0>f?void 0:f)}return d}
function jf(a,b){a.li||(a.li=a.getContext,a.getContext=function(d,e){e=a.li(d,e);return"webgl"==d==e instanceof WebGLRenderingContext?e:null});var c=1<b.yj?a.getContext("webgl2",b):a.getContext("webgl",b);return c?Sf(c,b):0}function Sf(a,b){var c=Qf(kf),d={il:c,attributes:b,version:b.yj,Li:a};a.canvas&&(a.canvas.hk=d);kf[c]=d;("undefined"==typeof b.Sj||b.Sj)&&Tf(d);return c}function lf(a){T=kf[a];g.Ri=N=T&&T.Li;return!(a&&!N)}
function Tf(a){a||(a=T);if(!a.yk){a.yk=!0;var b=a.Li;wf(b);xf(b);yf(b);b.cl=b.getExtension("WEBGL_draw_instanced_base_vertex_base_instance");b.jl=b.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance");2<=a.version&&(b.ni=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.ni)b.ni=b.getExtension("EXT_disjoint_timer_query");b.ll=b.getExtension("WEBGL_multi_draw");(b.getSupportedExtensions()||[]).forEach(function(c){c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}}
var hf={},Pf,T,Uf=[];function Vf(a,b,c,d){N.drawElements(a,b,c,d)}function Wf(a,b,c,d){for(var e=0;e<a;e++){var f=N[c](),l=f&&Qf(d);f?(f.name=l,d[l]=f):O(1282);D[b+4*e>>2]=l}}function Xf(a,b,c,d,e,f,l,n){b=Bf[b];if(a=N[a](b,c))d=n&&cb(a.name,t,n,d),e&&(D[e>>2]=d),f&&(D[f>>2]=a.size),l&&(D[l>>2]=a.type)}function Yf(a,b){h[a>>2]=b;h[a+4>>2]=(b-h[a>>2])/4294967296}
function Zf(a,b,c){if(b){var d=void 0;switch(a){case 36346:d=1;break;case 36344:0!=c&&1!=c&&O(1280);return;case 34814:case 36345:d=0;break;case 34466:var e=N.getParameter(34467);d=e?e.length:0;break;case 33309:if(2>T.version){O(1282);return}d=2*(N.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(2>T.version){O(1280);return}d=33307==a?3:0}if(void 0===d)switch(e=N.getParameter(a),typeof e){case "number":d=e;break;case "boolean":d=e?1:0;break;case "string":O(1280);return;case "object":if(null===
e)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:d=0;break;default:O(1280);return}else{if(e instanceof Float32Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Array){for(a=0;a<e.length;++a)switch(c){case 0:D[b+4*a>>2]=e[a];break;case 2:B[b+4*a>>2]=e[a];break;case 4:fb[b+a>>0]=e[a]?1:0}return}try{d=e.name|0}catch(f){O(1280);
Pa("GL_INVALID_ENUM in glGet"+c+"v: Unknown object returned from WebGL getParameter("+a+")! (error: "+f+")");return}}break;default:O(1280);Pa("GL_INVALID_ENUM in glGet"+c+"v: Native code calling glGet"+c+"v("+a+") and it returns "+e+" of type "+typeof e+"!");return}switch(c){case 1:Yf(b,d);break;case 0:D[b>>2]=d;break;case 2:B[b>>2]=d;break;case 4:fb[b>>0]=d?1:0}}else O(1281)}
function $f(a,b,c,d){if(c){b=N.getIndexedParameter(a,b);switch(typeof b){case "boolean":a=b?1:0;break;case "number":a=b;break;case "object":if(null===b)switch(a){case 35983:case 35368:a=0;break;default:O(1280);return}else if(b instanceof WebGLBuffer)a=b.name|0;else{O(1280);return}break;default:O(1280);return}switch(d){case 1:Yf(c,a);break;case 0:D[c>>2]=a;break;case 2:B[c>>2]=a;break;case 4:fb[c>>0]=a?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+d;}}else O(1281)}
function ag(a){var b=db(a)+1,c=bg(b);cb(a,t,c,b);return c}function cg(a){return"]"==a.slice(-1)&&a.lastIndexOf("[")}function dg(a){var b=a.Ki,c=a.nj,d;if(!b)for(a.Ki=b={},a.fk={},d=0;d<N.getProgramParameter(a,35718);++d){var e=N.getActiveUniform(a,d);var f=e.name;e=e.size;var l=cg(f);l=0<l?f.slice(0,l):f;var n=a.mj;a.mj+=e;c[l]=[e,n];for(f=0;f<e;++f)b[n]=f,a.fk[n++]=l}}
function V(a){var b=N.Qj;if(b){var c=b.Ki[a];"number"==typeof c&&(b.Ki[a]=c=N.getUniformLocation(b,b.fk[a]+(0<c?"["+c+"]":"")));return c}O(1282)}function eg(a,b,c,d){if(c)if(a=Bf[a],dg(a),a=N.getUniform(a,V(b)),"number"==typeof a||"boolean"==typeof a)switch(d){case 0:D[c>>2]=a;break;case 2:B[c>>2]=a}else for(b=0;b<a.length;b++)switch(d){case 0:D[c+4*b>>2]=a[b];break;case 2:B[c+4*b>>2]=a[b]}else O(1281)}
function fg(a,b,c,d){if(c)if(a=N.getVertexAttrib(a,b),34975==b)D[c>>2]=a&&a.name;else if("number"==typeof a||"boolean"==typeof a)switch(d){case 0:D[c>>2]=a;break;case 2:B[c>>2]=a;break;case 5:D[c>>2]=Math.fround(a)}else for(b=0;b<a.length;b++)switch(d){case 0:D[c+4*b>>2]=a[b];break;case 2:B[c+4*b>>2]=a[b];break;case 5:D[c+4*b>>2]=Math.fround(a[b])}else O(1281)}function gg(a){a-=5120;return 0==a?fb:1==a?t:2==a?gb:4==a?D:6==a?B:5==a||28922==a||28520==a||30779==a||30782==a?h:jb}
function hg(a){return 31-Math.clz32(a.BYTES_PER_ELEMENT)}function ig(a,b,c,d,e){a=gg(a);var f=hg(a),l=Of;return a.subarray(e>>f,e+d*(c*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*(1<<f)+l-1&-l)>>f)}var jg=[],kg=[],lg=[],mg={},ng=["default","low-power","high-performance"],og=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];
function pg(a){try{if(!a)return window;"number"==typeof a&&(a=og[a]||bb(a));return"#window"===a?window:"#document"===a?document:"#screen"===a?screen:"#canvas"===a?g.canvas:"string"==typeof a?document.getElementById(a):a}catch(b){return null}}var qg={};
function rg(){if(!sg){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:va||"./this.program"},b;for(b in qg)void 0===qg[b]?delete a[b]:a[b]=qg[b];var c=[];for(b in a)c.push(b+"="+a[b]);sg=c}return sg}var sg;
function tg(a,b){a=new Uint8Array(a);var c=a.byteLength;g.Yj+=c+24;if(327680>=c){var d=ea();try{var e=ha(c);t.subarray(e,e+c).set(a);b(e,c)}finally{ma(d)}}else{e=bg(c);try{t.subarray(e,e+c).set(a),b(e,c)}finally{$d(e)}}}
var vg={connect:function(a,b,c){g.qj=b;g.jj=ug("webSocketHandlerOnMessage",null,["number","number","number","number"]);g.Hi?g.Hi++:g.Hi=1;g.ek=!1;if(!g.worker){a=new Worker(URL.createObjectURL(new Blob(['var socket;self.onmessage = function (event) {\tif (event.data.constructor === ArrayBuffer) {\t\tsocket.send (event.data);\t} else if (event.data[0] === "connect") {\t\tsocket = new WebSocket (event.data[1]);\t\tsocket.binaryType = "arraybuffer";\t\tvar token = event.data[2];\t\tsocket.onclose = function (event) {\t\t\tself.postMessage (["close", token]);\t\t};\t\tsocket.onerror = function (event) {\t\t\tself.postMessage (["error", token]);\t\t};\t\tsocket.onopen = function (event) {\t\t\tself.postMessage (["open", token]);\t\t};\t\tsocket.onmessage = function (event) {\t\t\tself.postMessage (["data", event.data, token], [event.data]);\t\t};\t} else if (event.data[0] === "close") {\t\tsocket.close ();\t}}'],{type:"application/javascript"})));
g.worker=a;var d=function(e,f){g.jj(e,f,g.qj,2)};a.onmessage=function(e){g.$$facade&&("data"===e.data[0]?e.data[2]===g.Hi&&tg(e.data[1],d):"open"===e.data[0]?e.data[1]===g.Hi&&(g.ek=!0,g.jj(0,0,g.qj,0)):"close"===e.data[0]?e.data[1]===g.Hi&&(g.jj(0,0,g.qj,3),g.gi("websocket_connection_closed")):"error"===e.data[0]&&e.data[1]===g.Hi&&g.gi(g.ek?"socket_error":"socket_open_failed"))}}g.worker.postMessage(["connect",bb(c),g.Hi])},Fj:function(a,b){g.worker&&(a=(new Uint8Array(t.subarray(a,a+b))).buffer,
g.worker.postMessage(a,[a]))},close:function(){g.worker&&g.worker.postMessage(["close"]);g.jj=function(){}}},wg={connect:function(a,b,c){function d(n,q){f(n,q,b,2)}a=bb(c);var e=new WebSocket(a);g.Ci=e;e.binaryType="arraybuffer";var f=ug("webSocketHandlerOnMessage",null,["number","number","number","number"]),l=!1;e.onclose=function(){g.Ci===e&&(f(0,0,b,3),g.gi("websocket_connection_closed"))};e.onerror=function(){g.Ci===e&&g.gi(l?"socket_error":"socket_open_failed")};e.onopen=function(){g.Ci===e&&
(l=!0,f(0,0,b,0))};e.onmessage=function(n){g.Ci===e&&tg(n.data,d)}},Fj:function(a,b){g.Ci&&g.Ci.send(t.subarray(a,a+b))},close:function(){g.Ci&&g.Ci.close();delete g.Ci}};function xg(a){return 0===a%4&&(0!==a%100||0===a%400)}var yg=[31,29,31,30,31,30,31,31,30,31,30,31],zg=[31,28,31,30,31,30,31,31,30,31,30,31];
function Ag(a,b,c,d){function e(p,y,F){for(p="number"==typeof p?p.toString():p||"";p.length<y;)p=F[0]+p;return p}function f(p,y){return e(p,y,"0")}function l(p,y){function F(ba){return 0>ba?-1:0<ba?1:0}var R;0===(R=F(p.getFullYear()-y.getFullYear()))&&0===(R=F(p.getMonth()-y.getMonth()))&&(R=F(p.getDate()-y.getDate()));return R}function n(p){switch(p.getDay()){case 0:return new Date(p.getFullYear()-1,11,29);case 1:return p;case 2:return new Date(p.getFullYear(),0,3);case 3:return new Date(p.getFullYear(),
0,2);case 4:return new Date(p.getFullYear(),0,1);case 5:return new Date(p.getFullYear()-1,11,31);case 6:return new Date(p.getFullYear()-1,11,30)}}function q(p){var y=p.Ii;for(p=new Date((new Date(p.Ji+1900,0,1)).getTime());0<y;){var F=p.getMonth(),R=(xg(p.getFullYear())?yg:zg)[F];if(y>R-p.getDate())y-=R-p.getDate()+1,p.setDate(1),11>F?p.setMonth(F+1):(p.setMonth(0),p.setFullYear(p.getFullYear()+1));else{p.setDate(p.getDate()+y);break}}F=new Date(p.getFullYear()+1,0,4);y=n(new Date(p.getFullYear(),
0,4));F=n(F);return 0>=l(y,p)?0>=l(F,p)?p.getFullYear()+1:p.getFullYear():p.getFullYear()-1}var v=D[d+40>>2];d={Wk:D[d>>2],Vk:D[d+4>>2],kj:D[d+8>>2],Jj:D[d+12>>2],lj:D[d+16>>2],Ji:D[d+20>>2],wi:D[d+24>>2],Ii:D[d+28>>2],ql:D[d+32>>2],Uk:D[d+36>>2],Xk:v?bb(v):""};c=bb(c);v={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y",
"%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var w in v)c=c.replace(new RegExp(w,"g"),v[w]);var C="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),G="January February March April May June July August September October November December".split(" ");v={"%a":function(p){return C[p.wi].substring(0,3)},"%A":function(p){return C[p.wi]},"%b":function(p){return G[p.lj].substring(0,3)},
"%B":function(p){return G[p.lj]},"%C":function(p){return f((p.Ji+1900)/100|0,2)},"%d":function(p){return f(p.Jj,2)},"%e":function(p){return e(p.Jj,2," ")},"%g":function(p){return q(p).toString().substring(2)},"%G":function(p){return q(p)},"%H":function(p){return f(p.kj,2)},"%I":function(p){p=p.kj;0==p?p=12:12<p&&(p-=12);return f(p,2)},"%j":function(p){for(var y=0,F=0;F<=p.lj-1;y+=(xg(p.Ji+1900)?yg:zg)[F++]);return f(p.Jj+y,3)},"%m":function(p){return f(p.lj+1,2)},"%M":function(p){return f(p.Vk,2)},
"%n":function(){return"\n"},"%p":function(p){return 0<=p.kj&&12>p.kj?"AM":"PM"},"%S":function(p){return f(p.Wk,2)},"%t":function(){return"\t"},"%u":function(p){return p.wi||7},"%U":function(p){return f(Math.floor((p.Ii+7-p.wi)/7),2)},"%V":function(p){var y=Math.floor((p.Ii+7-(p.wi+6)%7)/7);2>=(p.wi+371-p.Ii-2)%7&&y++;if(y)53==y&&(F=(p.wi+371-p.Ii)%7,4==F||3==F&&xg(p.Ji)||(y=1));else{y=52;var F=(p.wi+7-p.Ii-1)%7;(4==F||5==F&&xg(p.Ji%400-1))&&y++}return f(y,2)},"%w":function(p){return p.wi},"%W":function(p){return f(Math.floor((p.Ii+
7-(p.wi+6)%7)/7),2)},"%y":function(p){return(p.Ji+1900).toString().substring(2)},"%Y":function(p){return p.Ji+1900},"%z":function(p){p=p.Uk;var y=0<=p;p=Math.abs(p)/60;return(y?"+":"-")+String("0000"+(p/60*100+p%60)).slice(-4)},"%Z":function(p){return p.Xk},"%%":function(){return"%"}};c=c.replace(/%%/g,"\x00\x00");for(w in v)c.includes(w)&&(c=c.replace(new RegExp(w,"g"),v[w](d)));c=c.replace(/\0\0/g,"%");w=Ub(c,!1);if(w.length>b)return 0;fb.set(w,a);return w.length-1}
function Bg(a,b,c,d){var e={string:v=>{var w=0;if(null!==v&&void 0!==v&&0!==v){var C=(v.length<<2)+1;w=ha(C);cb(v,t,w,C)}return w},array:v=>{var w=ha(v.length);fb.set(v,w);return w}};a=g["_"+a];var f=[],l=0;if(d)for(var n=0;n<d.length;n++){var q=e[c[n]];q?(0===l&&(l=ea()),f[n]=q(d[n])):f[n]=d[n]}c=a.apply(null,f);return c=function(v){0!==l&&ma(l);return"string"===b?bb(v):"boolean"===b?!!v:v}(c)}
function ug(a,b,c,d){c=c||[];var e=c.every(f=>"number"===f||"boolean"===f);return"string"!==b&&e&&!d?g["_"+a]:function(){return Bg(a,b,c,arguments,d)}}function rc(a,b,c,d){a||(a=this);this.parent=a;this.Ai=a.Ai;this.Ti=null;this.id=jc++;this.name=b;this.mode=c;this.ei={};this.fi={};this.rdev=d}
Object.defineProperties(rc.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Bk:{get:function(){return 16384===(this.mode&61440)}},Ak:{get:function(){return 8192===(this.mode&61440)}}});Nc();kc=Array(4096);yc(J,"/");zc("/tmp",16895,0);zc("/home",16895,0);zc("/home/web_user",16895,0);
(()=>{zc("/dev",16895,0);Xb(259,{read:()=>0,write:(b,c,d,e)=>e});Ac("/dev/null",259);Wb(1280,Zb);Wb(1536,$b);Ac("/dev/tty",1280);Ac("/dev/tty1",1536);var a=Sb();Tc("/dev","random",a);Tc("/dev","urandom",a);zc("/dev/shm",16895,0);zc("/dev/shm/tmp",16895,0)})();
(()=>{zc("/proc",16895,0);var a=zc("/proc/self",16895,0);zc("/proc/self/fd",16895,0);yc({Ai:()=>{var b=bc(a,"fd",16895,73);b.ei={lookup:(c,d)=>{var e=ic[+d];if(!e)throw new I(8);c={parent:null,Ai:{$j:"fake"},ei:{readlink:()=>e.path}};return c.parent=c}};return b}},"/proc/self/fd")})();g.FS_createPath=Qc;g.FS_createDataFile=Sc;g.FS_createPreloadedFile=Xc;g.FS_unlink=Cc;g.FS_createLazyFile=Vc;g.FS_createDevice=Tc;ld=g.InternalError=kd("InternalError");for(var Cg=Array(256),Dg=0;256>Dg;++Dg)Cg[Dg]=String.fromCharCode(Dg);
rd=Cg;td=g.BindingError=kd("BindingError");Jd.prototype.isAliasOf=function(a){if(!(this instanceof Jd&&a instanceof Jd))return!1;var b=this.ci.ki.ji,c=this.ci.hi,d=a.ci.ki.ji;for(a=a.ci.hi;b.ui;)c=b.Wi(c),b=b.ui;for(;d.ui;)a=d.Wi(a),d=d.ui;return b===d&&c===a};
Jd.prototype.clone=function(){this.ci.hi||wd(this);if(this.ci.Ui)return this.ci.count.value+=1,this;var a=Id,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.ci;a=a(c.call(b,d,{ci:{value:{count:e.count,Mi:e.Mi,Ui:e.Ui,hi:e.hi,ki:e.ki,oi:e.oi,ti:e.ti}}}));a.ci.count.value+=1;a.ci.Mi=!1;return a};Jd.prototype["delete"]=function(){this.ci.hi||wd(this);this.ci.Mi&&!this.ci.Ui&&ud("Object already scheduled for deletion");yd(this);zd(this.ci);this.ci.Ui||(this.ci.oi=void 0,this.ci.hi=void 0)};
Jd.prototype.isDeleted=function(){return!this.ci.hi};Jd.prototype.deleteLater=function(){this.ci.hi||wd(this);this.ci.Mi&&!this.ci.Ui&&ud("Object already scheduled for deletion");Cd.push(this);1===Cd.length&&Ed&&Ed(Dd);this.ci.Mi=!0;return this};g.getInheritedInstanceCount=function(){return Object.keys(Fd).length};g.getLiveInheritedInstances=function(){var a=[],b;for(b in Fd)Fd.hasOwnProperty(b)&&a.push(Fd[b]);return a};g.flushPendingDeletes=Dd;g.setDelayFunction=function(a){Ed=a;Cd.length&&Ed&&Ed(Dd)};
Td.prototype.uk=function(a){this.ck&&(a=this.ck(a));return a};Td.prototype.Rj=function(a){this.si&&this.si(a)};Td.prototype.argPackAdvance=8;Td.prototype.readValueFromPointer=dd;Td.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
Td.prototype.fromWireType=function(a){function b(){return this.dj?Hd(this.ji.Si,{ki:this.Gk,hi:c,ti:this,oi:a}):Hd(this.ji.Si,{ki:this,hi:a})}var c=this.uk(a);if(!c)return this.Rj(a),null;var d=Gd(this.ji,c);if(void 0!==d){if(0===d.ci.count.value)return d.ci.hi=c,d.ci.oi=a,d.clone();d=d.clone();this.Rj(a);return d}d=this.ji.tk(c);d=Bd[d];if(!d)return b.call(this);d=this.cj?d.mk:d.pointerType;var e=Ad(c,this.ji,d.ji);return null===e?b.call(this):this.dj?Hd(d.ji.Si,{ki:d,hi:e,ti:this,oi:a}):Hd(d.ji.Si,
{ki:d,hi:e})};Xd=g.UnboundTypeError=kd("UnboundTypeError");g.count_emval_handles=function(){for(var a=0,b=5;b<ee.length;++b)void 0!==ee[b]&&++a;return a};g.get_first_emval=function(){for(var a=5;a<ee.length;++a)if(void 0!==ee[a])return ee[a];return null};g.requestFullscreen=function(a,b){pf(a,b)};g.requestAnimationFrame=function(a){Le(a)};g.setCanvasSize=function(a,b,c){rf(g.canvas,a,b);c||sf()};g.pauseMainLoop=function(){He=null;Pe++};
g.resumeMainLoop=function(){Pe++;var a=De,b=Ee,c=Fe;Fe=null;Oe(c);Ce(a,b);He()};g.getUserMedia=function(){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia);window.getUserMedia(void 0)};g.createContext=function(a,b,c,d){return gf(a,b,c,d)};for(var N,Eg=0;32>Eg;++Eg)Uf.push(Array(Eg));var Fg=new Float32Array(288);for(Eg=0;288>Eg;++Eg)jg[Eg]=Fg.subarray(0,Eg+1);var Gg=new Int32Array(288);for(Eg=0;288>Eg;++Eg)kg[Eg]=Gg.subarray(0,Eg+1);
var Ig={Ka:function(a,b,c){Jb[a]=void 0;try{var d=[new Float32Array(b),new Uint16Array(c)]}catch(e){return 0}Jb[a]=d;return 1},Ja:function(a,b,c,d,e){Jb[a]=void 0;c>>=2;e>>=1;try{var f=[new Float32Array(B.subarray(c,c+b)),new Uint16Array(jb.subarray(e,e+d))]}catch(l){return 0}Jb[a]=f;return 1},La:function(a){Jb[a]=void 0},Na:function(){if(Kb.length)return Kb.pop();var a=Jb.length;Jb[a]=void 0;return a},Ma:function(a){Jb[a]=void 0;Kb.push(a)},Dh:function(a,b){if(!b)return 0;a=Jb[a];if(!a)return 0;
a=a[1];return a.length?(jb.set(a,b>>1),1):0},Eh:function(a,b){if(!b)return 0;a=Jb[a];if(!a)return 0;a=a[0];return a.length?(B.set(a,b>>2),1):0},Ha:function(a){return(a=Jb[a])?a[1].length:0},Bh:function(a,b){a=Jb[a];if(!a)return 0;a=a[1];return a.length?(N.bufferSubData(N.ELEMENT_ARRAY_BUFFER,b,a),1):0},zh:function(a,b,c,d){a=Jb[a];if(!a)return 0;a=a[1];try{var e=new Uint8Array(a.buffer,b,c)}catch(f){return 0}return e.length?(N.bufferSubData(N.ELEMENT_ARRAY_BUFFER,d,e),1):0},Ch:function(a,b){a=Jb[a];
if(!a)return 0;a=a[0];return a.length?(N.bufferSubData(N.ARRAY_BUFFER,b,a),1):0},Ah:function(a,b,c,d){a=Jb[a];if(!a)return 0;a=a[0];try{var e=new Uint8Array(a.buffer,b,c)}catch(f){return 0}return e.length?(N.bufferSubData(N.ARRAY_BUFFER,d,e),1):0},Ga:function(a,b,c,d){a=Jb[a];if(!a)return 0;a=a[0];return a.length&&b<a.length&&a.length-b>=c?(d>>=2,a.set(B.subarray(d,d+c),b),1):0},Ia:function(a){return(a=Jb[a])?a[0].length:0},Eb:function(a,b){0>a&&(a+=4294967296);0>b&&(b+=4294967296);g.gi("announce_model",
a,b)},Y:function(a,b,c){var d=g.$$facade;if(d){g.noExitRuntime=!0;var e=g.callAfterMap,f=++e.index,l=function(n){d===g.$$facade&&Bg("callFuncWrapper",null,["number","number","number"],[a,!n,b]);delete e.indexedWrappers[f]};e.indexedWrappers[f]=l;0<=c?Ve(l,c):uf(l)}},se:function(){for(var a=g.callAfterMap,b=a.indexedWrappers,c=Object.keys(b),d=0;d<c.length;++d)b[c[d]](!0);a.indexedWrappers={};a.index=0},wb:function(a,b){g.gi("capping_idle",!!a,b)},ob:function(a){0>a&&(a+=4294967296);g.gi("data_access_attached",
a)},nb:function(){g.gi("first_instance")},X:function(a){g.gi(bb(a))},fa:function(a,b){b=bb(b);try{var c=JSON.parse(b)}catch(d){c=b}g.gi(bb(a),c)},tb:function(a,b,c){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);g.gi("inclusion",a,b,c)},Oc:function(a,b,c,d){g.gi("meta_data",a,b,g.HEAPU8.subarray(c,c+d))},sb:function(a,b){0>a&&(a+=4294967296);b=bb(b);g.gi("missing_model",a,b)},Pb:function(a){g.gi("network_receive_data",a)},Dc:function(a){g.gi("post_draw_json","{"+bb(a)+"}")},pb:function(a,
b){0>a&&(a+=4294967296);0>b&&(b+=4294967296);g.gi("priority_meta_data_sent",a,b)},qb:function(a,b,c,d){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);0>d&&(d+=4294967296);g.gi("remap_inclusion",a,b,c,d)},rb:function(a,b,c){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);g.gi("remap_model",a,b,c)},h:function(a,b){g.oj&&(a=g.HEAP8.buffer.slice(a,b),g.oj.Kk(a))},ic:function(){g.gi("session_started")},Yd:function(){g.$$setReady()},l:function(a,b,c,d){Ta("Assertion failed: "+
bb(a)+", at: "+[b?bb(b):"unknown filename",c,d?bb(d):"unknown function"])},ra:function(a,b,c){Zc=c;try{var d=ad(a);switch(b){case 0:var e=$c();return 0>e?-28:xc(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=$c(),d.flags|=e,0;case 5:return e=$c(),gb[e+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return D[Hg()>>2]=28,-1;default:return-28}}catch(f){if("undefined"==typeof Yc||!(f instanceof I))throw f;return-f.Di}},Db:function(a,b,c){Zc=c;try{var d=ad(a);switch(b){case 21509:case 21505:return d.tty?
0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.tty?0:-59;case 21519:if(!d.tty)return-59;var e=$c();return D[e>>2]=0;case 21520:return d.tty?-28:-59;case 21531:a=e=$c();if(!d.fi.zk)throw new I(59);return d.fi.zk(d,b,a);case 21523:return d.tty?0:-59;case 21524:return d.tty?0:-59;default:return-28}}catch(f){if("undefined"==typeof Yc||!(f instanceof I))throw f;return-f.Di}},Fb:function(a,b,c,d){Zc=d;try{b=bb(b);var e=b;if("/"===e.charAt(0))b=e;else{var f=-100===a?"/":
ad(a).path;if(0==e.length)throw new I(44);b=Mb(f+"/"+e)}var l=d?$c():0;return Fc(b,c,l).fd}catch(n){if("undefined"==typeof Yc||!(n instanceof I))throw n;return-n.Di}},w:function(a){var b=bd[a];delete bd[a];var c=b.elements,d=c.length,e=c.map(function(n){return n.uj}).concat(c.map(function(n){return n.Hj})),f=b.Vi,l=b.si;nd([a],e,function(n){c.forEach((q,v)=>{var w=n[v],C=q.Ni,G=q.tj,p=n[v+d],y=q.Gj,F=q.Ij;q.read=R=>w.fromWireType(C(G,R));q.write=(R,ba)=>{var M=[];y(F,R,p.toWireType(M,ba));cd(M)}});
return[{name:b.name,fromWireType:function(q){for(var v=Array(d),w=0;w<d;++w)v[w]=c[w].read(q);l(q);return v},toWireType:function(q,v){if(d!==v.length)throw new TypeError("Incorrect number of tuple elements for "+b.name+": expected="+d+", actual="+v.length);for(var w=f(),C=0;C<d;++C)c[C].write(w,v[C]);null!==q&&q.push(l,w);return w},argPackAdvance:8,readValueFromPointer:dd,pi:l}]})},J:function(a){var b=pd[a];delete pd[a];var c=b.Vi,d=b.si,e=b.Uj,f=e.map(l=>l.uj).concat(e.map(l=>l.Hj));nd([a],f,l=>
{var n={};e.forEach((q,v)=>{var w=l[v],C=q.Ni,G=q.tj,p=l[v+e.length],y=q.Gj,F=q.Ij;n[q.sk]={read:R=>w.fromWireType(C(G,R)),write:(R,ba)=>{var M=[];y(F,R,p.toWireType(M,ba));cd(M)}}});return[{name:b.name,fromWireType:function(q){var v={},w;for(w in n)v[w]=n[w].read(q);d(q);return v},toWireType:function(q,v){for(var w in n)if(!(w in v))throw new TypeError('Missing field: "'+w+'"');var C=c();for(w in n)n[w].write(C,v[w]);null!==q&&q.push(d,C);return C},argPackAdvance:8,readValueFromPointer:dd,pi:d}]})},
vb:function(){},Tg:function(a,b,c,d,e){var f=qd(c);b=sd(b);od(a,{name:b,fromWireType:function(l){return!!l},toWireType:function(l,n){return n?d:e},argPackAdvance:8,readValueFromPointer:function(l){if(1===c)var n=fb;else if(2===c)n=gb;else if(4===c)n=D;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(n[l>>f])},pi:null})},ga:function(a,b,c,d,e,f,l,n,q,v,w,C,G){w=sd(w);f=Wd(e,f);n&&(n=Wd(l,n));v&&(v=Wd(q,v));G=Wd(C,G);var p=hd(w);Ld(p,function(){ae("Cannot construct "+
w+" due to unbound types",[d])});nd([a,b,c],d?[d]:[],function(y){y=y[0];if(d){var F=y.ji;var R=F.Si}else R=Jd.prototype;y=jd(p,function(){if(Object.getPrototypeOf(this)!==ba)throw new td("Use 'new' to construct "+w);if(void 0===M.li)throw new td(w+" has no accessible constructor");var A=M.li[arguments.length];if(void 0===A)throw new td("Tried to invoke ctor of "+w+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(M.li).toString()+") parameters instead!");return A.apply(this,
arguments)});var ba=Object.create(R,{constructor:{value:y}});y.prototype=ba;var M=new Md(w,y,ba,G,F,f,n,v);F=new Td(w,M,!0,!1);R=new Td(w+"*",M,!1,!1);var E=new Td(w+" const*",M,!1,!0);Bd[a]={pointerType:R,mk:E};Ud(p,y);return[F,R,E]})},b:function(a,b,c,d,e,f,l){var n=ce(c,d);b=sd(b);f=Wd(e,f);nd([],[a],function(q){function v(){ae("Cannot call "+w+" due to unbound types",n)}q=q[0];var w=q.name+"."+b;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var C=q.ji.constructor;void 0===C[b]?(v.pj=c-1,C[b]=
v):(Kd(C,b,w),C[b].Bi[c-1]=v);nd([],n,function(G){G=[G[0],null].concat(G.slice(1));var p=w,y=f,F=G.length;2>F&&ud("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var R=null!==G[1]&&!1,ba=!1,M=1;M<G.length;++M)if(null!==G[M]&&void 0===G[M].pi){ba=!0;break}var E="void"!==G[0].name,A="",U="";for(M=0;M<F-2;++M)A+=(0!==M?", ":"")+"arg"+M,U+=(0!==M?", ":"")+"arg"+M+"Wired";p="return function "+hd(p)+"("+A+") {\nif (arguments.length !== "+(F-2)+") {\nthrowBindingError('function "+
p+" called with ' + arguments.length + ' arguments, expected "+(F-2)+" args!');\n}\n";ba&&(p+="var destructors = [];\n");var K=ba?"destructors":"null";A="throwBindingError invoker fn runDestructors retType classParam".split(" ");y=[ud,y,l,cd,G[0],G[1]];R&&(p+="var thisWired = classParam.toWireType("+K+", this);\n");for(M=0;M<F-2;++M)p+="var arg"+M+"Wired = argType"+M+".toWireType("+K+", arg"+M+"); // "+G[M+2].name+"\n",A.push("argType"+M),y.push(G[M+2]);R&&(U="thisWired"+(0<U.length?", ":"")+U);p+=
(E?"var rv = ":"")+"invoker(fn"+(0<U.length?", ":"")+U+");\n";if(ba)p+="runDestructors(destructors);\n";else for(M=R?1:2;M<G.length;++M)F=1===M?"thisWired":"arg"+(M-2)+"Wired",null!==G[M].pi&&(p+=F+"_dtor("+F+"); // "+G[M].name+"\n",A.push(F+"_dtor"),y.push(G[M].pi));E&&(p+="var ret = retType.fromWireType(rv);\nreturn ret;\n");A.push(p+"}\n");G=be(A).apply(null,y);void 0===C[b].Bi?(G.pj=c-1,C[b]=G):C[b].Bi[c-1]=G;return[]});return[]})},Sg:function(a,b){b=sd(b);od(a,{name:b,fromWireType:function(c){var d=
ge(c);fe(c);return d},toWireType:function(c,d){return Rd(d)},argPackAdvance:8,readValueFromPointer:dd,pi:null})},M:function(a,b,c,d){function e(){}c=qd(c);b=sd(b);e.values={};od(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,l){return l.value},argPackAdvance:8,readValueFromPointer:he(b,c,d),pi:null});Ld(b,e)},y:function(a,b,c){var d=ie(a,"enum");b=sd(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:jd(d.name+
"_"+b,function(){})}});a.values[c]=d;a[b]=d},ua:function(a,b,c){c=qd(c);b=sd(b);od(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:je(b,c),pi:null})},P:function(a,b,c,d,e){b=sd(b);-1===e&&(e=4294967295);e=qd(c);var f=n=>n;if(0===d){var l=32-8*c;f=n=>n<<l>>>l}c=b.includes("unsigned")?function(n,q){return q>>>0}:function(n,q){return q};od(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:ke(b,e,0!==d),pi:null})},
D:function(a,b,c){function d(f){f>>=2;var l=h;return new e(eb,l[f+1],l[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=sd(c);od(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{xk:!0})},ta:function(a,b){b=sd(b);var c="std::string"===b;od(a,{name:b,fromWireType:function(d){var e=h[d>>2],f=d+4;if(c)for(var l=f,n=0;n<=e;++n){var q=f+n;if(n==e||0==t[q]){l=bb(l,q-l);if(void 0===v)var v=l;else v+=String.fromCharCode(0),v+=l;
l=q+1}}else{v=Array(e);for(n=0;n<e;++n)v[n]=String.fromCharCode(t[f+n]);v=v.join("")}$d(d);return v},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f="string"==typeof e;f||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||ud("Cannot pass non-string to std::string");var l=c&&f?db(e):e.length;var n=bg(4+l+1),q=n+4;h[n>>2]=l;if(c&&f)cb(e,t,q,l+1);else if(f)for(f=0;f<l;++f){var v=e.charCodeAt(f);255<v&&($d(q),ud("String has UTF-16 code units that do not fit in 8 bits"));
t[q+f]=v}else for(f=0;f<l;++f)t[q+f]=e[f];null!==d&&d.push($d,n);return n},argPackAdvance:8,readValueFromPointer:dd,pi:function(d){$d(d)}})},ha:function(a,b,c){c=sd(c);if(2===b){var d=me;var e=ne;var f=oe;var l=()=>jb;var n=1}else 4===b&&(d=pe,e=qe,f=re,l=()=>h,n=2);od(a,{name:c,fromWireType:function(q){for(var v=h[q>>2],w=l(),C,G=q+4,p=0;p<=v;++p){var y=q+4+p*b;if(p==v||0==w[y>>n])G=d(G,y-G),void 0===C?C=G:(C+=String.fromCharCode(0),C+=G),G=y+b}$d(q);return C},toWireType:function(q,v){"string"!=
typeof v&&ud("Cannot pass non-string to C++ string type "+c);var w=f(v),C=bg(4+w+b);h[C>>2]=w>>n;e(v,C+4,w+b);null!==q&&q.push($d,C);return C},argPackAdvance:8,readValueFromPointer:dd,pi:function(q){$d(q)}})},x:function(a,b,c,d,e,f){bd[a]={name:sd(b),Vi:Wd(c,d),si:Wd(e,f),elements:[]}},i:function(a,b,c,d,e,f,l,n,q){bd[a].elements.push({uj:b,Ni:Wd(c,d),tj:e,Hj:f,Gj:Wd(l,n),Ij:q})},K:function(a,b,c,d,e,f){pd[a]={name:sd(b),Vi:Wd(c,d),si:Wd(e,f),Uj:[]}},t:function(a,b,c,d,e,f,l,n,q,v){pd[a].Uj.push({sk:sd(b),
uj:c,Ni:Wd(d,e),tj:f,Hj:l,Gj:Wd(n,q),Ij:v})},Ug:function(a,b){b=sd(b);od(a,{Ck:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},Vg:function(a){do{var b=h[a>>2];a+=4;var c=h[a>>2];a+=4;var d=h[a>>2];a+=4;b=bb(b);Qc("/",Qb(b),!0,!0);Sc(b,null,fb.subarray(d,d+c),!0,!0,!0)}while(h[a>>2])},Ab:function(){return!0},p:function(a,b,c){a=ge(a);b=ie(b,"emval::as");var d=[],e=Rd(d);h[c>>2]=e;return b.toWireType(d,a)},j:function(a,b,c,d){a=ge(a);c=se(b,c);for(var e=Array(b),f=0;f<
b;++f){var l=c[f];e[f]=l.readValueFromPointer(d);d+=l.argPackAdvance}a=a.apply(void 0,e);return Rd(a)},Q:function(a,b,c,d,e){a=ve[a];b=ge(b);c=ue(c);var f=[];h[d>>2]=Rd(f);return a(b,c,f,e)},a:fe,L:function(a){if(0===a)return Rd(we());a=ue(a);return Rd(we()[a])},R:function(a,b){var c=se(a,b),d=c[0];b=d.name+"_$"+c.slice(1).map(function(w){return w.name}).join("_")+"$";var e=ye[b];if(void 0!==e)return e;e=["retType"];for(var f=[d],l="",n=0;n<a-1;++n)l+=(0!==n?", ":"")+"arg"+n,e.push("argType"+n),f.push(c[1+
n]);var q="return function "+hd("methodCaller_"+b)+"(handle, name, destructors, args) {\n",v=0;for(n=0;n<a-1;++n)q+=" var arg"+n+" = argType"+n+".readValueFromPointer(args"+(v?"+"+v:"")+");\n",v+=c[n+1].argPackAdvance;q+=" var rv = handle[name]("+l+");\n";for(n=0;n<a-1;++n)c[n+1].deleteObject&&(q+=" argType"+n+".deleteObject(arg"+n+");\n");d.Ck||(q+=" return retType.toWireType(destructors, rv);\n");e.push(q+"};\n");a=be(e).apply(null,f);e=xe(a);return ye[b]=e},_:function(a){a=ue(a);return Rd(g[a])},
o:function(a,b){a=ge(a);b=ge(b);return Rd(a[b])},d:function(a){4<a&&(ee[a].Cj+=1)},S:function(a,b,c,d){a=ge(a);var e=Ae[b];e||(e=ze(b),Ae[b]=e);return e(a,c,d)},v:function(){return Rd([])},f:function(a){return Rd(ue(a))},B:function(){return Rd({})},m:function(a){var b=ge(a);cd(b);fe(a)},g:function(a,b,c){a=ge(a);b=ge(b);c=ge(c);a[b]=c},e:function(a,b){a=ie(a,"_emval_take_value");a=a.readValueFromPointer(b);return Rd(a)},c:function(){Ta("")},ba:function(a,b,c){Be.length=0;var d;for(c>>=2;d=t[b++];)c+=
105!=d&c,Be.push(105==d?D[c]:aa[c++>>1]),++c;return Hb[a].apply(null,Be)},he:function(a,b,c){var d=g.canvas;D[a>>2]=d.width;D[b>>2]=d.height;D[c>>2]=Ye?1:0},A:Je,yg:function(a){N.activeTexture(a)},xg:function(a,b){N.attachShader(Bf[a],Ff[b])},zd:function(a,b){N.beginQuery(a,If[b])},Og:function(a,b){N.ni.beginQueryEXT(a,If[b])},fd:function(a){N.beginTransformFeedback(a)},wg:function(a,b,c){N.bindAttribLocation(Bf[a],b,bb(c))},vg:function(a,b){35051==a?N.Fi=b:35052==a&&(N.mi=b);N.bindBuffer(a,Af[b])},
cd:function(a,b,c){N.bindBufferBase(a,b,Af[c])},dd:function(a,b,c,d,e){N.bindBufferRange(a,b,Af[c],d,e)},ug:function(a,b){N.bindFramebuffer(a,Cf[b])},tg:function(a,b){N.bindRenderbuffer(a,Df[b])},gc:function(a,b){N.bindSampler(a,Jf[b])},sg:function(a,b){N.bindTexture(a,Ef[b])},_b:function(a,b){N.bindTransformFeedback(a,Kf[b])},ld:function(a){N.bindVertexArray(Gf[a])},Gg:function(a){N.bindVertexArray(Gf[a])},rg:function(a,b,c,d){N.blendColor(a,b,c,d)},qg:function(a){N.blendEquation(a)},pg:function(a,
b){N.blendEquationSeparate(a,b)},og:function(a,b){N.blendFunc(a,b)},ng:function(a,b,c,d){N.blendFuncSeparate(a,b,c,d)},od:function(a,b,c,d,e,f,l,n,q,v){N.blitFramebuffer(a,b,c,d,e,f,l,n,q,v)},mg:function(a,b,c,d){2<=T.version?c&&b?N.bufferData(a,t,d,c,b):N.bufferData(a,b,d):N.bufferData(a,c?t.subarray(c,c+b):b,d)},lg:function(a,b,c,d){2<=T.version?c&&N.bufferSubData(a,b,t,d,c):N.bufferSubData(a,b,t.subarray(d,d+c))},kg:function(a){return N.checkFramebufferStatus(a)},jg:function(a){N.clear(a)},Fc:function(a,
b,c,d){N.clearBufferfi(a,b,c,d)},Gc:function(a,b,c){N.clearBufferfv(a,b,B,c>>2)},Ic:function(a,b,c){N.clearBufferiv(a,b,D,c>>2)},Hc:function(a,b,c){N.clearBufferuiv(a,b,h,c>>2)},ig:function(a,b,c,d){N.clearColor(a,b,c,d)},hg:function(a){N.clearDepth(a)},gg:function(a){N.clearStencil(a)},qc:function(a,b,c,d){return N.clientWaitSync(Lf[a],b,(c>>>0)+4294967296*d)},fg:function(a,b,c,d){N.colorMask(!!a,!!b,!!c,!!d)},eg:function(a){N.compileShader(Ff[a])},dg:function(a,b,c,d,e,f,l,n){2<=T.version?N.mi||
!l?N.compressedTexImage2D(a,b,c,d,e,f,l,n):N.compressedTexImage2D(a,b,c,d,e,f,t,n,l):N.compressedTexImage2D(a,b,c,d,e,f,n?t.subarray(n,n+l):null)},Fd:function(a,b,c,d,e,f,l,n,q){N.mi?N.compressedTexImage3D(a,b,c,d,e,f,l,n,q):N.compressedTexImage3D(a,b,c,d,e,f,l,t,q,n)},cg:function(a,b,c,d,e,f,l,n,q){2<=T.version?N.mi||!n?N.compressedTexSubImage2D(a,b,c,d,e,f,l,n,q):N.compressedTexSubImage2D(a,b,c,d,e,f,l,t,q,n):N.compressedTexSubImage2D(a,b,c,d,e,f,l,q?t.subarray(q,q+n):null)},Ed:function(a,b,c,d,
e,f,l,n,q,v,w){N.mi?N.compressedTexSubImage3D(a,b,c,d,e,f,l,n,q,v,w):N.compressedTexSubImage3D(a,b,c,d,e,f,l,n,q,t,w,v)},Cc:function(a,b,c,d,e){N.copyBufferSubData(a,b,c,d,e)},bg:function(a,b,c,d,e,f,l,n){N.copyTexImage2D(a,b,c,d,e,f,l,n)},ag:function(a,b,c,d,e,f,l,n){N.copyTexSubImage2D(a,b,c,d,e,f,l,n)},Gd:function(a,b,c,d,e,f,l,n,q){N.copyTexSubImage3D(a,b,c,d,e,f,l,n,q)},$f:function(){var a=Qf(Bf),b=N.createProgram();b.name=a;b.zi=b.xi=b.yi=0;b.mj=1;Bf[a]=b;return a},_f:function(a){var b=Qf(Ff);
Ff[b]=N.createShader(a);return b},Zf:function(a){N.cullFace(a)},Yf:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Af[d];e&&(N.deleteBuffer(e),e.name=0,Af[d]=null,d==N.Fi&&(N.Fi=0),d==N.mi&&(N.mi=0))}},Xf:function(a,b){for(var c=0;c<a;++c){var d=D[b+4*c>>2],e=Cf[d];e&&(N.deleteFramebuffer(e),e.name=0,Cf[d]=null)}},Wf:function(a){if(a){var b=Bf[a];b?(N.deleteProgram(b),b.name=0,Bf[a]=null):O(1281)}},Bd:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=If[d];e&&(N.deleteQuery(e),If[d]=null)}},
Qg:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=If[d];e&&(N.ni.deleteQueryEXT(e),If[d]=null)}},Vf:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Df[d];e&&(N.deleteRenderbuffer(e),e.name=0,Df[d]=null)}},jc:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Jf[d];e&&(N.deleteSampler(e),e.name=0,Jf[d]=null)}},Uf:function(a){if(a){var b=Ff[a];b?(N.deleteShader(b),Ff[a]=null):O(1281)}},rc:function(a){if(a){var b=Lf[a];b?(N.deleteSync(b),b.name=0,Lf[a]=null):O(1281)}},Tf:function(a,
b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Ef[d];e&&(N.deleteTexture(e),e.name=0,Ef[d]=null)}},Zb:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Kf[d];e&&(N.deleteTransformFeedback(e),e.name=0,Kf[d]=null)}},kd:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2];N.deleteVertexArray(Gf[d]);Gf[d]=null}},Fg:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2];N.deleteVertexArray(Gf[d]);Gf[d]=null}},Sf:function(a){N.depthFunc(a)},Rf:function(a){N.depthMask(!!a)},Qf:function(a,b){N.depthRange(a,
b)},Pf:function(a,b){N.detachShader(Bf[a],Ff[b])},Of:function(a){N.disable(a)},Nf:function(a){N.disableVertexAttribArray(a)},Mf:function(a,b,c){N.drawArrays(a,b,c)},vc:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},Bg:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},Ib:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},Nd:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},Jb:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},vd:function(a,b){for(var c=Uf[a],d=0;d<a;d++)c[d]=D[b+4*d>>2];N.drawBuffers(c)},
Ld:function(a,b){for(var c=Uf[a],d=0;d<a;d++)c[d]=D[b+4*d>>2];N.drawBuffers(c)},Cg:function(a,b){for(var c=Uf[a],d=0;d<a;d++)c[d]=D[b+4*d>>2];N.drawBuffers(c)},Lf:function(a,b,c,d){N.drawElements(a,b,c,d)},uc:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},Ag:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},Gb:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},Hb:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},Md:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},
Jd:function(a,b,c,d,e,f){Vf(a,d,e,f)},Kf:function(a){N.enable(a)},Jf:function(a){N.enableVertexAttribArray(a)},yd:function(a){N.endQuery(a)},Ng:function(a){N.ni.endQueryEXT(a)},ed:function(){N.endTransformFeedback()},tc:function(a,b){return(a=N.fenceSync(a,b))?(b=Qf(Lf),a.name=b,Lf[b]=a,b):0},If:function(){N.finish()},Hf:function(){N.flush()},Gf:function(a,b,c,d){N.framebufferRenderbuffer(a,b,c,Df[d])},Ff:function(a,b,c,d,e){N.framebufferTexture2D(a,b,c,Ef[d],e)},md:function(a,b,c,d,e){N.framebufferTextureLayer(a,
b,Ef[c],d,e)},Ef:function(a){N.frontFace(a)},Df:function(a,b){Wf(a,b,"createBuffer",Af)},Bf:function(a,b){Wf(a,b,"createFramebuffer",Cf)},Cd:function(a,b){Wf(a,b,"createQuery",If)},Rg:function(a,b){for(var c=0;c<a;c++){var d=N.ni.createQueryEXT();if(!d){for(O(1282);c<a;)D[b+4*c++>>2]=0;break}var e=Qf(If);d.name=e;If[e]=d;D[b+4*c>>2]=e}},Af:function(a,b){Wf(a,b,"createRenderbuffer",Df)},kc:function(a,b){Wf(a,b,"createSampler",Jf)},zf:function(a,b){Wf(a,b,"createTexture",Ef)},Yb:function(a,b){Wf(a,
b,"createTransformFeedback",Kf)},jd:function(a,b){Wf(a,b,"createVertexArray",Gf)},Eg:function(a,b){Wf(a,b,"createVertexArray",Gf)},Cf:function(a){N.generateMipmap(a)},yf:function(a,b,c,d,e,f,l){Xf("getActiveAttrib",a,b,c,d,e,f,l)},xf:function(a,b,c,d,e,f,l){Xf("getActiveUniform",a,b,c,d,e,f,l)},xc:function(a,b,c,d,e){a=Bf[a];if(a=N.getActiveUniformBlockName(a,b))e&&0<c?(c=cb(a,t,e,c),d&&(D[d>>2]=c)):d&&(D[d>>2]=0)},yc:function(a,b,c,d){if(d)if(a=Bf[a],35393==c)c=N.getActiveUniformBlockName(a,b),D[d>>
2]=c.length+1;else{if(a=N.getActiveUniformBlockParameter(a,b,c),null!==a)if(35395==c)for(c=0;c<a.length;c++)D[d+4*c>>2]=a[c];else D[d>>2]=a}else O(1281)},Ac:function(a,b,c,d,e){if(e)if(0<b&&0==c)O(1281);else{a=Bf[a];for(var f=[],l=0;l<b;l++)f.push(D[c+4*l>>2]);if(a=N.getActiveUniforms(a,f,d))for(b=a.length,l=0;l<b;l++)D[e+4*l>>2]=a[l]}else O(1281)},wf:function(a,b,c,d){a=N.getAttachedShaders(Bf[a]);var e=a.length;e>b&&(e=b);D[c>>2]=e;for(b=0;b<e;++b)D[d+4*b>>2]=Ff.indexOf(a[b])},vf:function(a,b){return N.getAttribLocation(Bf[a],
bb(b))},uf:function(a,b){Zf(a,b,4)},lc:function(a,b,c){c?Yf(c,N.getBufferParameter(a,b)):O(1281)},tf:function(a,b,c){c?D[c>>2]=N.getBufferParameter(a,b):O(1281)},sf:function(){var a=N.getError()||Pf;Pf=0;return a},rf:function(a,b){Zf(a,b,2)},Sc:function(a,b){return N.getFragDataLocation(Bf[a],bb(b))},qf:function(a,b,c,d){a=N.getFramebufferAttachmentParameter(a,b,c);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;D[d>>2]=a},mc:function(a,b,c){$f(a,b,c,1)},oc:function(a,b){Zf(a,
b,1)},gd:function(a,b,c){$f(a,b,c,0)},pf:function(a,b){Zf(a,b,0)},Mb:function(a,b,c,d,e){if(0>d)O(1281);else if(e){if(a=N.getInternalformatParameter(a,b,c),null!==a)for(b=0;b<a.length&&b<d;++b)D[e+4*b>>2]=a[b]}else O(1281)},Ub:function(){O(1282)},nf:function(a,b,c,d){a=N.getProgramInfoLog(Bf[a]);null===a&&(a="(unknown error)");b=0<b&&d?cb(a,t,d,b):0;c&&(D[c>>2]=b)},of:function(a,b,c){if(c)if(a>=zf)O(1281);else if(a=Bf[a],35716==b)a=N.getProgramInfoLog(a),null===a&&(a="(unknown error)"),D[c>>2]=a.length+
1;else if(35719==b){if(!a.zi)for(b=0;b<N.getProgramParameter(a,35718);++b)a.zi=Math.max(a.zi,N.getActiveUniform(a,b).name.length+1);D[c>>2]=a.zi}else if(35722==b){if(!a.xi)for(b=0;b<N.getProgramParameter(a,35721);++b)a.xi=Math.max(a.xi,N.getActiveAttrib(a,b).name.length+1);D[c>>2]=a.xi}else if(35381==b){if(!a.yi)for(b=0;b<N.getProgramParameter(a,35382);++b)a.yi=Math.max(a.yi,N.getActiveUniformBlockName(a,b).length+1);D[c>>2]=a.yi}else D[c>>2]=N.getProgramParameter(a,b);else O(1281)},Ig:function(a,
b,c){if(c){a=If[a];b=2>T.version?N.ni.getQueryObjectEXT(a,b):N.getQueryParameter(a,b);var d;"boolean"==typeof b?d=b?1:0:d=b;Yf(c,d)}else O(1281)},Kg:function(a,b,c){if(c){a=N.ni.getQueryObjectEXT(If[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;D[c>>2]=d}else O(1281)},Hg:function(a,b,c){if(c){a=If[a];b=2>T.version?N.ni.getQueryObjectEXT(a,b):N.getQueryParameter(a,b);var d;"boolean"==typeof b?d=b?1:0:d=b;Yf(c,d)}else O(1281)},wd:function(a,b,c){if(c){a=N.getQueryParameter(If[a],b);var d;"boolean"==typeof a?
d=a?1:0:d=a;D[c>>2]=d}else O(1281)},Jg:function(a,b,c){if(c){a=N.ni.getQueryObjectEXT(If[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;D[c>>2]=d}else O(1281)},xd:function(a,b,c){c?D[c>>2]=N.getQuery(a,b):O(1281)},Lg:function(a,b,c){c?D[c>>2]=N.ni.getQueryEXT(a,b):O(1281)},mf:function(a,b,c){c?D[c>>2]=N.getRenderbufferParameter(a,b):O(1281)},ac:function(a,b,c){c?B[c>>2]=N.getSamplerParameter(Jf[a],b):O(1281)},bc:function(a,b,c){c?D[c>>2]=N.getSamplerParameter(Jf[a],b):O(1281)},kf:function(a,b,c,d){a=
N.getShaderInfoLog(Ff[a]);null===a&&(a="(unknown error)");b=0<b&&d?cb(a,t,d,b):0;c&&(D[c>>2]=b)},jf:function(a,b,c,d){a=N.getShaderPrecisionFormat(a,b);D[c>>2]=a.rangeMin;D[c+4>>2]=a.rangeMax;D[d>>2]=a.precision},hf:function(a,b,c,d){if(a=N.getShaderSource(Ff[a]))b=0<b&&d?cb(a,t,d,b):0,c&&(D[c>>2]=b)},lf:function(a,b,c){c?35716==b?(a=N.getShaderInfoLog(Ff[a]),null===a&&(a="(unknown error)"),D[c>>2]=a?a.length+1:0):35720==b?(a=N.getShaderSource(Ff[a]),D[c>>2]=a?a.length+1:0):D[c>>2]=N.getShaderParameter(Ff[a],
b):O(1281)},gf:function(a){var b=Mf[a];if(!b){switch(a){case 7939:b=N.getSupportedExtensions()||[];b=b.concat(b.map(function(d){return"GL_"+d}));b=ag(b.join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=N.getParameter(a))||O(1280);b=b&&ag(b);break;case 7938:b=N.getParameter(7938);b=2<=T.version?"OpenGL ES 3.0 ("+b+")":"OpenGL ES 2.0 ("+b+")";b=ag(b);break;case 35724:b=N.getParameter(35724);var c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==c&&(3==c[1].length&&(c[1]+="0"),
b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=ag(b);break;default:O(1280)}Mf[a]=b}return b},Ec:function(a,b){if(2>T.version)return O(1282),0;var c=Nf[a];if(c)return 0>b||b>=c.length?(O(1281),0):c[b];switch(a){case 7939:return c=N.getSupportedExtensions()||[],c=c.concat(c.map(function(d){return"GL_"+d})),c=c.map(function(d){return ag(d)}),c=Nf[a]=c,0>b||b>=c.length?(O(1281),0):c[b];default:return O(1280),0}},nc:function(a,b,c,d,e){0>c?O(1281):e?(a=N.getSyncParameter(Lf[a],b),null!==a&&(D[e>>2]=a,d&&(D[d>>
2]=1))):O(1281)},ff:function(a,b,c){c?B[c>>2]=N.getTexParameter(a,b):O(1281)},ef:function(a,b,c){c?D[c>>2]=N.getTexParameter(a,b):O(1281)},ad:function(a,b,c,d,e,f,l){a=Bf[a];if(a=N.getTransformFeedbackVarying(a,b))l&&0<c?(c=cb(a.name,t,l,c),d&&(D[d>>2]=c)):d&&(D[d>>2]=0),e&&(D[e>>2]=a.size),f&&(D[f>>2]=a.type)},zc:function(a,b){return N.getUniformBlockIndex(Bf[a],bb(b))},Bc:function(a,b,c,d){if(d)if(0<b&&(0==c||0==d))O(1281);else{a=Bf[a];for(var e=[],f=0;f<b;f++)e.push(bb(D[c+4*f>>2]));if(a=N.getUniformIndices(a,
e))for(b=a.length,f=0;f<b;f++)D[d+4*f>>2]=a[f]}else O(1281)},bf:function(a,b){b=bb(b);if(a=Bf[a]){dg(a);var c=a.Ki,d=0,e=b,f=cg(b);0<f&&(d=parseInt(b.slice(f+1))>>>0,e=b.slice(0,f));if((e=a.nj[e])&&d<e[0]&&(d+=e[1],c[d]=c[d]||N.getUniformLocation(a,b)))return d}else O(1281);return-1},df:function(a,b,c){eg(a,b,c,2)},cf:function(a,b,c){eg(a,b,c,0)},Tc:function(a,b,c){eg(a,b,c,0)},_c:function(a,b,c){fg(a,b,c,0)},Yc:function(a,b,c){fg(a,b,c,0)},_e:function(a,b,c){c?D[c>>2]=N.getVertexAttribOffset(a,b):
O(1281)},af:function(a,b,c){fg(a,b,c,2)},$e:function(a,b,c){fg(a,b,c,5)},Ze:function(a,b){N.hint(a,b)},Rb:function(a,b,c){for(var d=Uf[b],e=0;e<b;e++)d[e]=D[c+4*e>>2];N.invalidateFramebuffer(a,d)},Qb:function(a,b,c,d,e,f,l){for(var n=Uf[b],q=0;q<b;q++)n[q]=D[c+4*q>>2];N.invalidateSubFramebuffer(a,n,d,e,f,l)},Ye:function(a){return(a=Af[a])?N.isBuffer(a):0},Xe:function(a){return N.isEnabled(a)},We:function(a){return(a=Cf[a])?N.isFramebuffer(a):0},Ve:function(a){return(a=Bf[a])?N.isProgram(a):0},Ad:function(a){return(a=
If[a])?N.isQuery(a):0},Pg:function(a){return(a=If[a])?N.ni.isQueryEXT(a):0},Ue:function(a){return(a=Df[a])?N.isRenderbuffer(a):0},hc:function(a){return(a=Jf[a])?N.isSampler(a):0},Te:function(a){return(a=Ff[a])?N.isShader(a):0},sc:function(a){return N.isSync(Lf[a])},Se:function(a){return(a=Ef[a])?N.isTexture(a):0},Xb:function(a){return N.isTransformFeedback(Kf[a])},hd:function(a){return(a=Gf[a])?N.isVertexArray(a):0},Dg:function(a){return(a=Gf[a])?N.isVertexArray(a):0},Re:function(a){N.lineWidth(a)},
Qe:function(a){a=Bf[a];N.linkProgram(a);a.Ki=0;a.nj={}},Wb:function(){N.pauseTransformFeedback()},Pe:function(a,b){3317==a&&(Of=b);N.pixelStorei(a,b)},Oe:function(a,b){N.polygonOffset(a,b)},Tb:function(){O(1280)},Sb:function(){O(1280)},Mg:function(a,b){N.ni.queryCounterEXT(If[a],b)},Kd:function(a){N.readBuffer(a)},Ne:function(a,b,c,d,e,f,l){if(2<=T.version)if(N.Fi)N.readPixels(a,b,c,d,e,f,l);else{var n=gg(f);N.readPixels(a,b,c,d,e,f,n,l>>hg(n))}else(l=ig(f,e,c,d,l))?N.readPixels(a,b,c,d,e,f,l):O(1280)},
Me:function(){},Le:function(a,b,c,d){N.renderbufferStorage(a,b,c,d)},nd:function(a,b,c,d,e){N.renderbufferStorageMultisample(a,b,c,d,e)},Vb:function(){N.resumeTransformFeedback()},Ke:function(a,b){N.sampleCoverage(a,!!b)},dc:function(a,b,c){N.samplerParameterf(Jf[a],b,c)},cc:function(a,b,c){N.samplerParameterf(Jf[a],b,B[c>>2])},fc:function(a,b,c){N.samplerParameteri(Jf[a],b,c)},ec:function(a,b,c){N.samplerParameteri(Jf[a],b,D[c>>2])},Je:function(a,b,c,d){N.scissor(a,b,c,d)},Ie:function(){O(1280)},
He:function(a,b,c,d){b=Rf(b,c,d);N.shaderSource(Ff[a],b)},Ge:function(a,b,c){N.stencilFunc(a,b,c)},Fe:function(a,b,c,d){N.stencilFuncSeparate(a,b,c,d)},Ee:function(a){N.stencilMask(a)},De:function(a,b){N.stencilMaskSeparate(a,b)},Ce:function(a,b,c){N.stencilOp(a,b,c)},Be:function(a,b,c,d){N.stencilOpSeparate(a,b,c,d)},Ae:function(a,b,c,d,e,f,l,n,q){if(2<=T.version)if(N.mi)N.texImage2D(a,b,c,d,e,f,l,n,q);else if(q){var v=gg(n);N.texImage2D(a,b,c,d,e,f,l,n,v,q>>hg(v))}else N.texImage2D(a,b,c,d,e,f,
l,n,null);else N.texImage2D(a,b,c,d,e,f,l,n,q?ig(n,l,d,e,q):null)},Id:function(a,b,c,d,e,f,l,n,q,v){if(N.mi)N.texImage3D(a,b,c,d,e,f,l,n,q,v);else if(v){var w=gg(q);N.texImage3D(a,b,c,d,e,f,l,n,q,w,v>>hg(w))}else N.texImage3D(a,b,c,d,e,f,l,n,q,null)},ze:function(a,b,c){N.texParameterf(a,b,c)},ye:function(a,b,c){N.texParameterf(a,b,B[c>>2])},xe:function(a,b,c){N.texParameteri(a,b,c)},we:function(a,b,c){N.texParameteri(a,b,D[c>>2])},Ob:function(a,b,c,d,e){N.texStorage2D(a,b,c,d,e)},Nb:function(a,b,
c,d,e,f){N.texStorage3D(a,b,c,d,e,f)},ve:function(a,b,c,d,e,f,l,n,q){if(2<=T.version)if(N.mi)N.texSubImage2D(a,b,c,d,e,f,l,n,q);else if(q){var v=gg(n);N.texSubImage2D(a,b,c,d,e,f,l,n,v,q>>hg(v))}else N.texSubImage2D(a,b,c,d,e,f,l,n,null);else v=null,q&&(v=ig(n,l,e,f,q)),N.texSubImage2D(a,b,c,d,e,f,l,n,v)},Hd:function(a,b,c,d,e,f,l,n,q,v,w){if(N.mi)N.texSubImage3D(a,b,c,d,e,f,l,n,q,v,w);else if(w){var C=gg(v);N.texSubImage3D(a,b,c,d,e,f,l,n,q,v,C,w>>hg(C))}else N.texSubImage3D(a,b,c,d,e,f,l,n,q,v,
null)},bd:function(a,b,c,d){a=Bf[a];for(var e=[],f=0;f<b;f++)e.push(bb(D[c+4*f>>2]));N.transformFeedbackVaryings(a,e,d)},ue:function(a,b){N.uniform1f(V(a),b)},te:function(a,b,c){if(2<=T.version)b&&N.uniform1fv(V(a),B,c>>2,b);else{if(288>=b)for(var d=jg[b-1],e=0;e<b;++e)d[e]=B[c+4*e>>2];else d=B.subarray(c>>2,c+4*b>>2);N.uniform1fv(V(a),d)}},re:function(a,b){N.uniform1i(V(a),b)},qe:function(a,b,c){if(2<=T.version)b&&N.uniform1iv(V(a),D,c>>2,b);else{if(288>=b)for(var d=kg[b-1],e=0;e<b;++e)d[e]=D[c+
4*e>>2];else d=D.subarray(c>>2,c+4*b>>2);N.uniform1iv(V(a),d)}},Rc:function(a,b){N.uniform1ui(V(a),b)},Mc:function(a,b,c){b&&N.uniform1uiv(V(a),h,c>>2,b)},pe:function(a,b,c){N.uniform2f(V(a),b,c)},oe:function(a,b,c){if(2<=T.version)b&&N.uniform2fv(V(a),B,c>>2,2*b);else{if(144>=b)for(var d=jg[2*b-1],e=0;e<2*b;e+=2)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2];else d=B.subarray(c>>2,c+8*b>>2);N.uniform2fv(V(a),d)}},ne:function(a,b,c){N.uniform2i(V(a),b,c)},me:function(a,b,c){if(2<=T.version)b&&N.uniform2iv(V(a),
D,c>>2,2*b);else{if(144>=b)for(var d=kg[2*b-1],e=0;e<2*b;e+=2)d[e]=D[c+4*e>>2],d[e+1]=D[c+(4*e+4)>>2];else d=D.subarray(c>>2,c+8*b>>2);N.uniform2iv(V(a),d)}},Qc:function(a,b,c){N.uniform2ui(V(a),b,c)},Lc:function(a,b,c){b&&N.uniform2uiv(V(a),h,c>>2,2*b)},le:function(a,b,c,d){N.uniform3f(V(a),b,c,d)},ke:function(a,b,c){if(2<=T.version)b&&N.uniform3fv(V(a),B,c>>2,3*b);else{if(96>=b)for(var d=jg[3*b-1],e=0;e<3*b;e+=3)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2],d[e+2]=B[c+(4*e+8)>>2];else d=B.subarray(c>>
2,c+12*b>>2);N.uniform3fv(V(a),d)}},je:function(a,b,c,d){N.uniform3i(V(a),b,c,d)},ie:function(a,b,c){if(2<=T.version)b&&N.uniform3iv(V(a),D,c>>2,3*b);else{if(96>=b)for(var d=kg[3*b-1],e=0;e<3*b;e+=3)d[e]=D[c+4*e>>2],d[e+1]=D[c+(4*e+4)>>2],d[e+2]=D[c+(4*e+8)>>2];else d=D.subarray(c>>2,c+12*b>>2);N.uniform3iv(V(a),d)}},Pc:function(a,b,c,d){N.uniform3ui(V(a),b,c,d)},Kc:function(a,b,c){b&&N.uniform3uiv(V(a),h,c>>2,3*b)},ge:function(a,b,c,d,e){N.uniform4f(V(a),b,c,d,e)},fe:function(a,b,c){if(2<=T.version)b&&
N.uniform4fv(V(a),B,c>>2,4*b);else{if(72>=b){var d=jg[4*b-1],e=B;c>>=2;for(var f=0;f<4*b;f+=4){var l=c+f;d[f]=e[l];d[f+1]=e[l+1];d[f+2]=e[l+2];d[f+3]=e[l+3]}}else d=B.subarray(c>>2,c+16*b>>2);N.uniform4fv(V(a),d)}},ee:function(a,b,c,d,e){N.uniform4i(V(a),b,c,d,e)},de:function(a,b,c){if(2<=T.version)b&&N.uniform4iv(V(a),D,c>>2,4*b);else{if(72>=b)for(var d=kg[4*b-1],e=0;e<4*b;e+=4)d[e]=D[c+4*e>>2],d[e+1]=D[c+(4*e+4)>>2],d[e+2]=D[c+(4*e+8)>>2],d[e+3]=D[c+(4*e+12)>>2];else d=D.subarray(c>>2,c+16*b>>2);
N.uniform4iv(V(a),d)}},Nc:function(a,b,c,d,e){N.uniform4ui(V(a),b,c,d,e)},Jc:function(a,b,c){b&&N.uniform4uiv(V(a),h,c>>2,4*b)},wc:function(a,b,c){a=Bf[a];N.uniformBlockBinding(a,b,c)},ce:function(a,b,c,d){if(2<=T.version)b&&N.uniformMatrix2fv(V(a),!!c,B,d>>2,4*b);else{if(72>=b)for(var e=jg[4*b-1],f=0;f<4*b;f+=4)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2];else e=B.subarray(d>>2,d+16*b>>2);N.uniformMatrix2fv(V(a),!!c,e)}},ud:function(a,b,c,d){b&&N.uniformMatrix2x3fv(V(a),
!!c,B,d>>2,6*b)},sd:function(a,b,c,d){b&&N.uniformMatrix2x4fv(V(a),!!c,B,d>>2,8*b)},be:function(a,b,c,d){if(2<=T.version)b&&N.uniformMatrix3fv(V(a),!!c,B,d>>2,9*b);else{if(32>=b)for(var e=jg[9*b-1],f=0;f<9*b;f+=9)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2],e[f+4]=B[d+(4*f+16)>>2],e[f+5]=B[d+(4*f+20)>>2],e[f+6]=B[d+(4*f+24)>>2],e[f+7]=B[d+(4*f+28)>>2],e[f+8]=B[d+(4*f+32)>>2];else e=B.subarray(d>>2,d+36*b>>2);N.uniformMatrix3fv(V(a),!!c,e)}},td:function(a,
b,c,d){b&&N.uniformMatrix3x2fv(V(a),!!c,B,d>>2,6*b)},qd:function(a,b,c,d){b&&N.uniformMatrix3x4fv(V(a),!!c,B,d>>2,12*b)},ae:function(a,b,c,d){if(2<=T.version)b&&N.uniformMatrix4fv(V(a),!!c,B,d>>2,16*b);else{if(18>=b){var e=jg[16*b-1],f=B;d>>=2;for(var l=0;l<16*b;l+=16){var n=d+l;e[l]=f[n];e[l+1]=f[n+1];e[l+2]=f[n+2];e[l+3]=f[n+3];e[l+4]=f[n+4];e[l+5]=f[n+5];e[l+6]=f[n+6];e[l+7]=f[n+7];e[l+8]=f[n+8];e[l+9]=f[n+9];e[l+10]=f[n+10];e[l+11]=f[n+11];e[l+12]=f[n+12];e[l+13]=f[n+13];e[l+14]=f[n+14];e[l+15]=
f[n+15]}}else e=B.subarray(d>>2,d+64*b>>2);N.uniformMatrix4fv(V(a),!!c,e)}},rd:function(a,b,c,d){b&&N.uniformMatrix4x2fv(V(a),!!c,B,d>>2,8*b)},pd:function(a,b,c,d){b&&N.uniformMatrix4x3fv(V(a),!!c,B,d>>2,12*b)},$d:function(a){a=Bf[a];N.useProgram(a);N.Qj=a},_d:function(a){N.validateProgram(Bf[a])},Zd:function(a,b){N.vertexAttrib1f(a,b)},Xd:function(a,b){N.vertexAttrib1f(a,B[b>>2])},Wd:function(a,b,c){N.vertexAttrib2f(a,b,c)},Vd:function(a,b){N.vertexAttrib2f(a,B[b>>2],B[b+4>>2])},Ud:function(a,b,
c,d){N.vertexAttrib3f(a,b,c,d)},Td:function(a,b){N.vertexAttrib3f(a,B[b>>2],B[b+4>>2],B[b+8>>2])},Sd:function(a,b,c,d,e){N.vertexAttrib4f(a,b,c,d,e)},Rd:function(a,b){N.vertexAttrib4f(a,B[b>>2],B[b+4>>2],B[b+8>>2],B[b+12>>2])},$b:function(a,b){N.vertexAttribDivisor(a,b)},zg:function(a,b){N.vertexAttribDivisor(a,b)},Kb:function(a,b){N.vertexAttribDivisor(a,b)},Od:function(a,b){N.vertexAttribDivisor(a,b)},Lb:function(a,b){N.vertexAttribDivisor(a,b)},Xc:function(a,b,c,d,e){N.vertexAttribI4i(a,b,c,d,
e)},Vc:function(a,b){N.vertexAttribI4i(a,D[b>>2],D[b+4>>2],D[b+8>>2],D[b+12>>2])},Wc:function(a,b,c,d,e){N.vertexAttribI4ui(a,b,c,d,e)},Uc:function(a,b){N.vertexAttribI4ui(a,h[b>>2],h[b+4>>2],h[b+8>>2],h[b+12>>2])},$c:function(a,b,c,d,e){N.vertexAttribIPointer(a,b,c,d,e)},Qd:function(a,b,c,d,e,f){N.vertexAttribPointer(a,b,c,!!d,e,f)},Pd:function(a,b,c,d){N.viewport(a,b,c,d)},pc:function(a,b,c,d){N.waitSync(Lf[a],b,(c>>>0)+4294967296*d)},Bb:function(a){var b=t.length;a>>>=0;if(2147483648<a)return!1;
for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{Ua.grow(e-eb.byteLength+65535>>>16);kb();var f=1;break a}catch(l){}f=void 0}if(f)return!0}return!1},sa:function(a,b){b>>=2;b={alpha:!!D[b],depth:!!D[b+1],stencil:!!D[b+2],antialias:!!D[b+3],premultipliedAlpha:!!D[b+4],preserveDrawingBuffer:!!D[b+5],powerPreference:ng[D[b+6]],failIfMajorPerformanceCaveat:!!D[b+7],yj:D[b+8],kl:D[b+9],Sj:D[b+10],rk:D[b+
11],ol:D[b+12],pl:D[b+13]};"number"==typeof a&&(a=bb(a));a=a&&"#canvas"!==a?"undefined"!=typeof hf&&Hf[a]?Hf[a]:pg(a):"undefined"!=typeof hf&&Hf.canvas?Hf.canvas:g.canvas;return!a||b.rk?0:jf(a,b)},Zc:function(a){T==a&&(T=0);T===kf[a]&&(T=null);if("object"==typeof mg)for(var b=kf[a].Li.canvas,c=0;c<lg.length;++c)if(lg[c].target==b){var d=c--,e=lg[d];e.target.removeEventListener(e.el,e.dl,e.rl);lg.splice(d,1)}kf[a]&&kf[a].Li.canvas&&(kf[a].Li.canvas.hk=void 0);kf[a]=null},Dd:function(a){a>>=2;for(var b=
0;14>b;++b)D[a+b]=0;D[a]=D[a+1]=D[a+3]=D[a+4]=D[a+8]=D[a+10]=1},id:function(a){return lf(a)?0:-5},yb:function(a,b){var c=0;rg().forEach(function(d,e){var f=b+c;e=h[a+4*e>>2]=f;for(f=0;f<d.length;++f)fb[e++>>0]=d.charCodeAt(f);fb[e>>0]=0;c+=d.length+1});return 0},zb:function(a,b){var c=rg();h[a>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});h[b>>2]=d;return 0},ia:Me,pa:function(a){try{var b=ad(a);Gc(b);return 0}catch(c){if("undefined"==typeof Yc||!(c instanceof I))throw c;return c.Di}},
Cb:function(a,b,c,d){try{a:{var e=ad(a);a=b;for(var f=b=0;f<c;f++){var l=h[a>>2],n=h[a+4>>2];a+=8;var q=e,v=l,w=n,C=void 0,G=fb;if(0>w||0>C)throw new I(28);if(null===q.fd)throw new I(8);if(1===(q.flags&2097155))throw new I(8);if(16384===(q.node.mode&61440))throw new I(31);if(!q.fi.read)throw new I(28);var p="undefined"!=typeof C;if(!p)C=q.position;else if(!q.seekable)throw new I(70);var y=q.fi.read(q,G,v,w,C);p||(q.position+=y);var F=y;if(0>F){var R=-1;break a}b+=F;if(F<n)break}R=b}h[d>>2]=R;return 0}catch(ba){if("undefined"==
typeof Yc||!(ba instanceof I))throw ba;return ba.Di}},ub:function(a,b,c,d,e){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return 61;var f=ad(a);Hc(f,b,d);Gb=[f.position>>>0,(Fb=f.position,1<=+Math.abs(Fb)?0<Fb?(Math.min(+Math.floor(Fb/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Fb-+(~~Fb>>>0))/4294967296)>>>0:0)];D[e>>2]=Gb[0];D[e+4>>2]=Gb[1];f.sj&&0===b&&0===d&&(f.sj=null);return 0}catch(l){if("undefined"==typeof Yc||!(l instanceof I))throw l;return l.Di}},qa:function(a,
b,c,d){try{a:{var e=ad(a);a=b;for(var f=b=0;f<c;f++){var l=h[a>>2],n=h[a+4>>2];a+=8;var q=Ic(e,fb,l,n);if(0>q){var v=-1;break a}b+=q}v=b}h[d>>2]=v;return 0}catch(w){if("undefined"==typeof Yc||!(w instanceof I))throw w;return w.Di}},ea:function(a){N.activeTexture(a)},la:function(a,b){N.attachShader(Bf[a],Ff[b])},_g:function(a,b){N.beginQuery(a,If[b])},aa:function(a,b){35051==a?N.Fi=b:35052==a&&(N.mi=b);N.bindBuffer(a,Af[b])},da:function(a,b){N.bindFramebuffer(a,Cf[b])},eb:function(a,b){N.bindRenderbuffer(a,
Df[b])},ib:function(a,b){N.bindTexture(a,Ef[b])},Wa:function(a,b){N.blendFunc(a,b)},Xa:function(a,b,c,d){N.blendFuncSeparate(a,b,c,d)},xh:function(a,b,c,d){2<=T.version?c&&b?N.bufferData(a,t,d,c,b):N.bufferData(a,b,d):N.bufferData(a,c?t.subarray(c,c+b):b,d)},wh:function(a,b,c,d){2<=T.version?c&&N.bufferSubData(a,b,t,d,c):N.bufferSubData(a,b,t.subarray(d,d+c))},s:function(a){N.clear(a)},Za:function(a,b,c,d){N.clearColor(a,b,c,d)},Ya:function(a){N.clearStencil(a)},ab:function(a,b,c,d){N.colorMask(!!a,
!!b,!!c,!!d)},oh:function(a){N.compileShader(Ff[a])},Fa:function(){var a=Qf(Bf),b=N.createProgram();b.name=a;b.zi=b.xi=b.yi=0;b.mj=1;Bf[a]=b;return a},qh:function(a){var b=Qf(Ff);Ff[b]=N.createShader(a);return b},gb:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Af[d];e&&(N.deleteBuffer(e),e.name=0,Af[d]=null,d==N.Fi&&(N.Fi=0),d==N.mi&&(N.mi=0))}},cb:function(a,b){for(var c=0;c<a;++c){var d=D[b+4*c>>2],e=Cf[d];e&&(N.deleteFramebuffer(e),e.name=0,Cf[d]=null)}},nh:function(a){if(a){var b=Bf[a];
b?(N.deleteProgram(b),b.name=0,Bf[a]=null):O(1281)}},$g:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=If[d];e&&(N.deleteQuery(e),If[d]=null)}},db:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Df[d];e&&(N.deleteRenderbuffer(e),e.name=0,Df[d]=null)}},rh:function(a){if(a){var b=Ff[a];b?(N.deleteShader(b),Ff[a]=null):O(1281)}},hb:function(a,b){for(var c=0;c<a;c++){var d=D[b+4*c>>2],e=Ef[d];e&&(N.deleteTexture(e),e.name=0,Ef[d]=null)}},Va:function(a){N.depthFunc(a)},$a:function(a){N.depthMask(!!a)},
Ua:function(a,b){N.depthRange(a,b)},Oa:function(a){N.disable(a)},I:function(a){N.disableVertexAttribArray(a)},U:function(a,b,c){N.drawArrays(a,b,c)},ya:function(a,b,c,d){N.drawArraysInstanced(a,b,c,d)},fh:function(a,b){for(var c=Uf[a],d=0;d<a;d++)c[d]=D[b+4*d>>2];N.drawBuffers(c)},Da:Vf,za:function(a,b,c,d,e){N.drawElementsInstanced(a,b,c,d,e)},Pa:function(a){N.enable(a)},E:function(a){N.enableVertexAttribArray(a)},Zg:function(a){N.endQuery(a)},ih:function(){N.finish()},Ba:function(a,b,c,d){N.framebufferRenderbuffer(a,
b,c,Df[d])},eh:function(a,b,c,d,e){N.framebufferTexture2D(a,b,c,Ef[d],e)},_a:function(a){N.frontFace(a)},yh:function(a,b){Wf(a,b,"createBuffer",Af)},Ca:function(a,b){Wf(a,b,"createFramebuffer",Cf)},ah:function(a,b){Wf(a,b,"createQuery",If)},hh:function(a,b){Wf(a,b,"createRenderbuffer",Df)},th:function(a,b){Wf(a,b,"createTexture",Ef)},vh:function(a){N.generateMipmap(a)},kh:function(a,b,c,d,e,f,l){Xf("getActiveAttrib",a,b,c,d,e,f,l)},jh:function(a,b,c,d,e,f,l){Xf("getActiveUniform",a,b,c,d,e,f,l)},
mh:function(a,b){return N.getAttribLocation(Bf[a],bb(b))},kb:function(a,b){Zf(a,b,4)},mb:function(){var a=N.getError()||Pf;Pf=0;return a},W:function(a,b){Zf(a,b,2)},n:function(a,b){Zf(a,b,0)},$:function(a,b,c){if(c)if(a>=zf)O(1281);else if(a=Bf[a],35716==b)a=N.getProgramInfoLog(a),null===a&&(a="(unknown error)"),D[c>>2]=a.length+1;else if(35719==b){if(!a.zi)for(b=0;b<N.getProgramParameter(a,35718);++b)a.zi=Math.max(a.zi,N.getActiveUniform(a,b).name.length+1);D[c>>2]=a.zi}else if(35722==b){if(!a.xi)for(b=
0;b<N.getProgramParameter(a,35721);++b)a.xi=Math.max(a.xi,N.getActiveAttrib(a,b).name.length+1);D[c>>2]=a.xi}else if(35381==b){if(!a.yi)for(b=0;b<N.getProgramParameter(a,35382);++b)a.yi=Math.max(a.yi,N.getActiveUniformBlockName(a,b).length+1);D[c>>2]=a.yi}else D[c>>2]=N.getProgramParameter(a,b);else O(1281)},wa:function(a,b,c){if(c){a=N.getQueryParameter(If[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;D[c>>2]=d}else O(1281)},lb:function(a,b,c,d){a=N.getShaderPrecisionFormat(a,b);D[c>>2]=a.rangeMin;
D[c+4>>2]=a.rangeMax;D[d>>2]=a.precision},oa:function(a){var b=Mf[a];if(!b){switch(a){case 7939:b=N.getSupportedExtensions()||[];b=b.concat(b.map(function(d){return"GL_"+d}));b=ag(b.join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=N.getParameter(a))||O(1280);b=b&&ag(b);break;case 7938:b=N.getParameter(7938);b=2<=T.version?"OpenGL ES 3.0 ("+b+")":"OpenGL ES 2.0 ("+b+")";b=ag(b);break;case 35724:b=N.getParameter(35724);var c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==
c&&(3==c[1].length&&(c[1]+="0"),b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=ag(b);break;default:O(1280)}Mf[a]=b}return b},lh:function(a,b){b=bb(b);if(a=Bf[a]){dg(a);var c=a.Ki,d=0,e=b,f=cg(b);0<f&&(d=parseInt(b.slice(f+1))>>>0,e=b.slice(0,f));if((e=a.nj[e])&&d<e[0]&&(d+=e[1],c[d]=c[d]||N.getUniformLocation(a,b)))return d}else O(1281);return-1},O:function(a){return N.isEnabled(a)},Ea:function(a){a=Bf[a];N.linkProgram(a);a.Ki=0;a.nj={}},bb:function(a,b){3317==a&&(Of=b);N.pixelStorei(a,b)},Ta:function(a,
b){N.polygonOffset(a,b)},dh:function(a,b,c,d,e,f,l){if(2<=T.version)if(N.Fi)N.readPixels(a,b,c,d,e,f,l);else{var n=gg(f);N.readPixels(a,b,c,d,e,f,n,l>>hg(n))}else(l=ig(f,e,c,d,l))?N.readPixels(a,b,c,d,e,f,l):O(1280)},gh:function(a,b,c,d){N.renderbufferStorage(a,b,c,d)},Sa:function(a,b,c,d){N.scissor(a,b,c,d)},ph:function(a,b,c,d){b=Rf(b,c,d);N.shaderSource(Ff[a],b)},ca:function(a,b,c){N.stencilFunc(a,b,c)},V:function(a,b,c,d){N.stencilFuncSeparate(a,b,c,d)},Ra:function(a){N.stencilMask(a)},na:function(a,
b){N.stencilMaskSeparate(a,b)},Qa:function(a,b,c){N.stencilOp(a,b,c)},ma:function(a,b,c,d){N.stencilOpSeparate(a,b,c,d)},Z:function(a,b,c,d,e,f,l,n,q){if(2<=T.version)if(N.mi)N.texImage2D(a,b,c,d,e,f,l,n,q);else if(q){var v=gg(n);N.texImage2D(a,b,c,d,e,f,l,n,v,q>>hg(v))}else N.texImage2D(a,b,c,d,e,f,l,n,null);else N.texImage2D(a,b,c,d,e,f,l,n,q?ig(n,l,d,e,q):null)},uh:function(a,b,c){N.texParameterf(a,b,c)},F:function(a,b,c){N.texParameteri(a,b,c)},q:function(a,b){N.uniform1f(V(a),b)},N:function(a,
b,c){if(2<=T.version)b&&N.uniform1fv(V(a),B,c>>2,b);else{if(288>=b)for(var d=jg[b-1],e=0;e<b;++e)d[e]=B[c+4*e>>2];else d=B.subarray(c>>2,c+4*b>>2);N.uniform1fv(V(a),d)}},k:function(a,b){N.uniform1i(V(a),b)},z:function(a,b,c){N.uniform2f(V(a),b,c)},Aa:function(a,b,c){if(2<=T.version)b&&N.uniform2fv(V(a),B,c>>2,2*b);else{if(144>=b)for(var d=jg[2*b-1],e=0;e<2*b;e+=2)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2];else d=B.subarray(c>>2,c+8*b>>2);N.uniform2fv(V(a),d)}},ch:function(a,b,c){N.uniform2i(V(a),b,c)},
ja:function(a,b,c,d){N.uniform3f(V(a),b,c,d)},H:function(a,b,c){if(2<=T.version)b&&N.uniform3fv(V(a),B,c>>2,3*b);else{if(96>=b)for(var d=jg[3*b-1],e=0;e<3*b;e+=3)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2],d[e+2]=B[c+(4*e+8)>>2];else d=B.subarray(c>>2,c+12*b>>2);N.uniform3fv(V(a),d)}},T:function(a,b,c,d,e){N.uniform4f(V(a),b,c,d,e)},r:function(a,b,c){if(2<=T.version)b&&N.uniform4fv(V(a),B,c>>2,4*b);else{if(72>=b){var d=jg[4*b-1],e=B;c>>=2;for(var f=0;f<4*b;f+=4){var l=c+f;d[f]=e[l];d[f+1]=e[l+1];d[f+
2]=e[l+2];d[f+3]=e[l+3]}}else d=B.subarray(c>>2,c+16*b>>2);N.uniform4fv(V(a),d)}},ka:function(a,b,c,d){if(2<=T.version)b&&N.uniformMatrix3fv(V(a),!!c,B,d>>2,9*b);else{if(32>=b)for(var e=jg[9*b-1],f=0;f<9*b;f+=9)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2],e[f+4]=B[d+(4*f+16)>>2],e[f+5]=B[d+(4*f+20)>>2],e[f+6]=B[d+(4*f+24)>>2],e[f+7]=B[d+(4*f+28)>>2],e[f+8]=B[d+(4*f+32)>>2];else e=B.subarray(d>>2,d+36*b>>2);N.uniformMatrix3fv(V(a),!!c,e)}},u:function(a,b,c,
d){if(2<=T.version)b&&N.uniformMatrix4fv(V(a),!!c,B,d>>2,16*b);else{if(18>=b){var e=jg[16*b-1],f=B;d>>=2;for(var l=0;l<16*b;l+=16){var n=d+l;e[l]=f[n];e[l+1]=f[n+1];e[l+2]=f[n+2];e[l+3]=f[n+3];e[l+4]=f[n+4];e[l+5]=f[n+5];e[l+6]=f[n+6];e[l+7]=f[n+7];e[l+8]=f[n+8];e[l+9]=f[n+9];e[l+10]=f[n+10];e[l+11]=f[n+11];e[l+12]=f[n+12];e[l+13]=f[n+13];e[l+14]=f[n+14];e[l+15]=f[n+15]}}else e=B.subarray(d>>2,d+64*b>>2);N.uniformMatrix4fv(V(a),!!c,e)}},fb:function(a){a=Bf[a];N.useProgram(a);N.Qj=a},xa:function(a,
b){N.vertexAttrib1f(a,b)},bh:function(a,b,c,d,e){N.vertexAttrib4f(a,b,c,d,e)},G:function(a,b){N.vertexAttribDivisor(a,b)},C:function(a,b,c,d,e,f){N.vertexAttribPointer(a,b,c,!!d,e,f)},jb:function(a,b,c,d){N.viewport(a,b,c,d)},sh:function(a,b,c,d,e){af();a=t.subarray(a,a+b);b=null;c=["image/jpeg","image/png","image/gif","image/bmp","image/svg+xml"][c];var f=[N.LUMINANCE,N.LUMINANCE_ALPHA,N.RGB,N.RGBA][d-1];void 0===f&&(f=N.RGBA);if(cf)try{b=new Blob([a],{type:c}),b.size!==a.length&&(b=new Blob([(new Uint8Array(a)).buffer],
{type:c}))}catch(G){}b||(c=new df,c.append((new Uint8Array(a)).buffer),b=c.getBlob());var l=ug("wrapperTexturePreLoad","number",["number","number","number","number"]),n=ug("wrapperTexturePostLoad",null,["number","number","number"]),q=ug("wrapperTextureOnError",null,["number","number"]),v=ef.createObjectURL(b),w=document.createElement("img"),C=g.$$facade;w.onload=function(){if(C===g.$$facade){var G=1;l&&(G=l(e,w.width,w.height,d));var p=0;if(G)try{N.texImage2D(N.TEXTURE_2D,0,f,f,N.UNSIGNED_BYTE,w),
p=1}catch(y){}n&&n(0,e,p)}else n&&n(1,e,0);ef.revokeObjectURL(v)};w.onerror=function(){C===g.$$facade?q&&q(0,e):q&&q(1,e);ef.revokeObjectURL(v)};w.src=v},va:function(){return g.Yi?vg.close.apply(vg,arguments):wg.close.apply(wg,arguments)},Yg:function(){window.addEventListener("beforeunload",function(){g.Yi?vg.close():wg.close()})},Xg:function(a,b,c){g.Yj=0;self.bowser.chrome&&0>self.bowser.compareVersions([self.bowser.version,"68"])&&(g.Yi=!0);return g.Yi?vg.connect.apply(vg,arguments):wg.connect.apply(wg,
arguments)},Wg:function(a,b){return g.Yi?vg.Fj.apply(vg,arguments):wg.Fj.apply(wg,arguments)},xb:function(a,b,c,d){return Ag(a,b,c,d)}};
(function(){function a(e){g.asm=e.exports;Ua=g.asm.Fh;kb();lb=g.asm.Hh;nb.unshift(g.asm.Gh);wb("wasm-instantiate")}function b(e){a(e.instance)}function c(e){return Eb().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){Pa("failed to asynchronously prepare wasm: "+f);Ta(f)})}var d={a:Ig};vb("wasm-instantiate");if(g.instantiateWasm)try{return g.instantiateWasm(d,a)}catch(e){return Pa("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return Sa||
"function"!=typeof WebAssembly.instantiateStreaming||xb()||yb.startsWith("file://")||Ea||"function"!=typeof fetch?c(b):fetch(yb,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){Pa("wasm streaming compile failed: "+f);Pa("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})();g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.Gh).apply(null,arguments)};
g._callFuncWrapper=function(){return(g._callFuncWrapper=g.asm.Ih).apply(null,arguments)};g._main=function(){return(g._main=g.asm.Jh).apply(null,arguments)};g._wrapperTexturePreLoad=function(){return(g._wrapperTexturePreLoad=g.asm.Kh).apply(null,arguments)};g._wrapperTexturePostLoad=function(){return(g._wrapperTexturePostLoad=g.asm.Lh).apply(null,arguments)};g._wrapperTextureOnError=function(){return(g._wrapperTextureOnError=g.asm.Mh).apply(null,arguments)};
var $d=g._free=function(){return($d=g._free=g.asm.Nh).apply(null,arguments)},Hg=g.___errno_location=function(){return(Hg=g.___errno_location=g.asm.Oh).apply(null,arguments)},bg=g._malloc=function(){return(bg=g._malloc=g.asm.Ph).apply(null,arguments)};g._webSocketHandlerOnMessage=function(){return(g._webSocketHandlerOnMessage=g.asm.Qh).apply(null,arguments)};var Zd=g.___getTypeName=function(){return(Zd=g.___getTypeName=g.asm.Rh).apply(null,arguments)};
g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.Sh).apply(null,arguments)};var ea=g.stackSave=function(){return(ea=g.stackSave=g.asm.Th).apply(null,arguments)},ma=g.stackRestore=function(){return(ma=g.stackRestore=g.asm.Uh).apply(null,arguments)},ha=g.stackAlloc=function(){return(ha=g.stackAlloc=g.asm.Vh).apply(null,arguments)};g.dynCall_viiijiiiiiiiiiii=function(){return(g.dynCall_viiijiiiiiiiiiii=g.asm.Wh).apply(null,arguments)};
g.dynCall_iij=function(){return(g.dynCall_iij=g.asm.Xh).apply(null,arguments)};g.dynCall_iiiiiijii=function(){return(g.dynCall_iiiiiijii=g.asm.Yh).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.Zh).apply(null,arguments)};g.dynCall_viijii=function(){return(g.dynCall_viijii=g.asm._h).apply(null,arguments)};g.dynCall_iiiiij=function(){return(g.dynCall_iiiiij=g.asm.$h).apply(null,arguments)};g.dynCall_iiiiijj=function(){return(g.dynCall_iiiiijj=g.asm.ai).apply(null,arguments)};
g.dynCall_iiiiiijj=function(){return(g.dynCall_iiiiiijj=g.asm.bi).apply(null,arguments)};g.___emscripten_embedded_file_data=658824;g.addRunDependency=vb;g.removeRunDependency=wb;g.FS_createPath=Qc;g.FS_createDataFile=Sc;g.FS_createPreloadedFile=Xc;g.FS_createLazyFile=Vc;g.FS_createDevice=Tc;g.FS_unlink=Cc;g.ccall=Bg;g.cwrap=ug;var Jg;ub=function Kg(){Jg||Lg();Jg||(ub=Kg)};
function Lg(){function a(){if(!Jg&&(Jg=!0,g.calledRun=!0,!Va)){g.noFSInit||Oc||(Oc=!0,Nc(),g.stdin=g.stdin,g.stdout=g.stdout,g.stderr=g.stderr,g.stdin?Tc("/dev","stdin",g.stdin):Bc("/dev/tty","/dev/stdin"),g.stdout?Tc("/dev","stdout",null,g.stdout):Bc("/dev/tty","/dev/stdout"),g.stderr?Tc("/dev","stderr",null,g.stderr):Bc("/dev/tty1","/dev/stderr"),Fc("/dev/stdin",0),Fc("/dev/stdout",1),Fc("/dev/stderr",1));lc=!1;Ib(nb);Ib(ob);if(g.onRuntimeInitialized)g.onRuntimeInitialized();if(Mg){var b=g._main;
try{var c=b(0,0);Me(c,!0)}catch(d){Ne(d)}}if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)b=g.postRun.shift(),pb.unshift(b);Ib(pb)}}if(!(0<sb)){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)rb();Ib(mb);0<sb||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1);a()},1)):a())}}if(g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();
var Mg=!0;g.noInitialRun&&(Mg=!1);Lg();
};
var catchExceptions = function (name, func) {
return function () {
try {
func.apply(this, arguments);
} catch (e) {
console.log("Unhandled exception in " + name + "():");
console.log(e);
}
};
};
var getElement = function (id) {
if (typeof id !== "string")
return id;
return document.getElementById (id);
};
var core_pool = [];
var getAvailableCore = function () {
for (var i = 0; i < core_pool.length; ++i) {
if (core_pool[i].$$available) {
return core_pool[i];
}
}
return null;
};
var enginePath;
if (_SC) {
enginePath = _SC._enginePath;
}
// used by Emscripten to find .wasm file
var locateFile = function (path) {
if (enginePath) {
return enginePath + "/" + path;
}
return path;
};
var createInstance = function (args) {
var facade;
if (args.isWrapper) {
// populate same instance object returned from engine-loader.js
facade = args.base;
args = args.args;
} else {
facade = {};
}
var container = getElement (args.container);
if (! container)
throw new TypeError ("'container' argument is missing or invalid");
facade.container = container;
var core = getAvailableCore ();
var core_is_new = ! core;
// provides reference point for absolute position
var sub_container = document.createElement ("div");
sub_container.setAttribute ("style", "position: relative; overflow: hidden; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
if (core_is_new) {
core = {
$$available: false,
locateFile: locateFile,
};
core_pool.push (core);
core.callAfterMap = {
index: 0,
indexedWrappers: {},
};
// wraps canvas and SSR elements
var wrapper = document.createElement ("div");
wrapper.setAttribute ("style", "position: absolute; overflow: hidden; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
var canvas = document.createElement ("canvas");
canvas.setAttribute ("style", "position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
core.canvas = canvas;
core.$$wrapper = wrapper;
} else {
core.$$available = false;
}
core.canvas.style.display = "";
core.$$wrapper.appendChild (core.canvas);
// facade will only call core functions if it matches core.$$facade
core.$$facade = facade;
core.$$onReady = catchExceptions("onReady", function () {
var onReady = args.onReady ? args.onReady : args.on_ready;
if (typeof onReady === "function") {
onReady(facade);
}
});
if (typeof args.onError === "function") {
// XXX after abort() is called, this core cannot be reused
core.onAbort = catchExceptions("onError", function (message) {
// avoid presenting cryptic Emscripten errors as our own
args.onError("fatal error: see console");
});
}
// sits on top of wrapper, preventing wrapper and children from receiving input events
var event_blocker = document.createElement ("div");
event_blocker.setAttribute ("style", "position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
event_blocker.onmousedown = function (e) { e.preventDefault (); }; // prevent cursor change on drag
event_blocker.oncontextmenu = function (e) { e.preventDefault (); };
sub_container.appendChild (core.$$wrapper);
sub_container.appendChild (event_blocker);
container.innerHTML = "";
container.appendChild (sub_container);
if (core_is_new) {
createInstanceImpl.call (core);
} else {
setTimeout (function () { core.$$setReady (); });
}
return facade;
};
// process deferred calls to createInstance() from engine-loader.js
(function () {
if (typeof _SC !== "undefined" && Array.isArray (_SC._deferredInstances))
for (var i = 0; i < _SC._deferredInstances.length; i++)
createInstance (_SC._deferredInstances[i]);
})();
return {
createInstance: createInstance
};
})();