trtc-sdk-v5 5.15.0 → 5.15.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  !function(A,g){"object"==typeof exports&&"undefined"!=typeof module?module.exports=g():"function"==typeof define&&define.amd?define(g):(A="undefined"!=typeof globalThis?globalThis:A||self).VirtualBackground=g()}(this,function(){"use strict";function A(A,g){(null==g||g>A.length)&&(g=A.length);for(var I=0,t=Array(g);I<g;I++)t[I]=A[I];return t}function g(A,g,I,t,C,e,B){try{var r=A[e](B),Q=r.value}catch(A){return void I(A)}r.done?g(Q):Promise.resolve(Q).then(t,C)}function I(A){return function(){var I=this,t=arguments;return new Promise(function(C,e){var B=A.apply(I,t);function r(A){g(B,C,e,r,Q,"next",A)}function Q(A){g(B,C,e,r,Q,"throw",A)}r(void 0)})}}function t(A,g,I){return g=r(g),function(A,g){if(g&&("object"==typeof g||"function"==typeof g))return g;if(void 0!==g)throw new TypeError("Derived constructors may only return object or undefined");return function(A){if(void 0===A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}(A)}(A,n()?Reflect.construct(g,I||[],r(A).constructor):g.apply(A,I))}function C(A,g){if(!(A instanceof g))throw new TypeError("Cannot call a class as a function")}function e(A,g){for(var I=0;I<g.length;I++){var t=g[I];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(A,s(t.key),t)}}function B(A,g,I){return g&&e(A.prototype,g),I&&e(A,I),Object.defineProperty(A,"prototype",{writable:!1}),A}function r(A){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(A){return A.__proto__||Object.getPrototypeOf(A)},r(A)}function Q(A,g){if("function"!=typeof g&&null!==g)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(g&&g.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),g&&E(A,g)}function n(){try{var A=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(A){}return(n=function(){return!!A})()}function o(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3
- var A,g,I="function"==typeof Symbol?Symbol:{},t=I.iterator||"@@iterator",C=I.toStringTag||"@@toStringTag";function e(I,t,C,e){var Q=t&&t.prototype instanceof r?t:r,n=Object.create(Q.prototype);return i(n,"_invoke",function(I,t,C){var e,r,Q,n=0,o=C||[],i=!1,E={p:0,n:0,v:A,a:a,f:a.bind(A,4),d:function(g,I){return e=g,r=0,Q=A,E.n=I,B}};function a(I,t){for(r=I,Q=t,g=0;!i&&n&&!C&&g<o.length;g++){var C,e=o[g],a=E.p,s=e[2];I>3?(C=s===t)&&(Q=e[(r=e[4])?5:(r=3,3)],e[4]=e[5]=A):e[0]<=a&&((C=I<2&&a<e[1])?(r=0,E.v=t,E.n=e[1]):a<s&&(C=I<3||e[0]>t||t>s)&&(e[4]=I,e[5]=t,E.n=s,r=0))}if(C||I>1)return B;throw i=!0,t}return function(C,o,s){if(n>1)throw TypeError("Generator is already running");for(i&&1===o&&a(o,s),r=o,Q=s;(g=r<2?A:Q)||!i;){e||(r?r<3?(r>1&&(E.n=-1),a(r,Q)):E.n=Q:E.v=Q);try{if(n=2,e){if(r||(C="next"),g=e[C]){if(!(g=g.call(e,Q)))throw TypeError("iterator result is not an object");if(!g.done)return g;Q=g.value,r<2&&(r=0)}else 1===r&&(g=e.return)&&g.call(e),r<2&&(Q=TypeError("The iterator does not provide a '"+C+"' method"),r=1);e=A}else if((g=(i=E.n<0)?Q:I.call(t,E))!==B)break}catch(g){e=A,r=1,Q=g}finally{n=1}}return{value:g,done:i}}}(I,C,e),!0),n}var B={};function r(){}function Q(){}function n(){}g=Object.getPrototypeOf;var E=[][t]?g(g([][t]())):(i(g={},t,function(){return this}),g),a=n.prototype=r.prototype=Object.create(E);function s(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,n):(A.__proto__=n,i(A,C,"GeneratorFunction")),A.prototype=Object.create(a),A}return Q.prototype=n,i(a,"constructor",n),i(n,"constructor",Q),Q.displayName="GeneratorFunction",i(n,C,"GeneratorFunction"),i(a),i(a,C,"Generator"),i(a,t,function(){return this}),i(a,"toString",function(){return"[object Generator]"}),(o=function(){return{w:e,m:s}})()}function i(A,g,I,t){var C=Object.defineProperty;try{C({},"",{})}catch(A){C=0}i=function(A,g,I,t){function e(g,I){i(A,g,function(A){return this._invoke(g,I,A)})}g?C?C(A,g,{value:I,enumerable:!t,configurable:!t,writable:!t}):A[g]=I:(e("next",0),e("throw",1),e("return",2))},i(A,g,I,t)}function E(A,g){return E=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,g){return A.__proto__=g,A},E(A,g)}function a(A,g){return function(A){if(Array.isArray(A))return A}(A)||function(A,g){var I=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=I){var t,C,e,B,r=[],Q=!0,n=!1;try{if(e=(I=I.call(A)).next,0===g);else for(;!(Q=(t=e.call(I)).done)&&(r.push(t.value),r.length!==g);Q=!0);}catch(A){n=!0,C=A}finally{try{if(!Q&&null!=I.return&&(B=I.return(),Object(B)!==B))return}finally{if(n)throw C}}return r}}(A,g)||u(A,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(A){var g=function(A,g){if("object"!=typeof A||!A)return A;var I=A[Symbol.toPrimitive];if(void 0!==I){var t=I.call(A,g);if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(A)}(A,"string");return"symbol"==typeof g?g:g+""}function c(A){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},c(A)}function u(g,I){if(g){if("string"==typeof g)return A(g,I);var t={}.toString.call(g).slice(8,-1);return"Object"===t&&g.constructor&&(t=g.constructor.name),"Map"===t||"Set"===t?Array.from(g):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A(g,I):void 0}}function h(A){var g="function"==typeof Map?new Map:void 0;return h=function(A){if(null===A||!function(A){try{return-1!==Function.toString.call(A).indexOf("[native code]")}catch(g){return"function"==typeof A}}(A))return A;if("function"!=typeof A)throw new TypeError("Super expression must either be null or a function");if(void 0!==g){if(g.has(A))return g.get(A);g.set(A,I)}function I(){return function(A,g,I){if(n())return Reflect.construct.apply(null,arguments);var t=[null];t.push.apply(t,g);var C=new(A.bind.apply(A,t));return I&&E(C,I.prototype),C}(A,arguments,r(this).constructor)}return I.prototype=Object.create(A.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),E(I,A)},h(A)}var l=Object.defineProperty,f=Object.defineProperties,y=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,G=function(A,g,I){return g in A?l(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I},p=function(A,g){for(var I in g||(g={}))d.call(g,I)&&G(A,I,g[I]);if(D){var t,C=function(A,g){var I="undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(!I){if(Array.isArray(A)||(I=u(A))||g){I&&(A=I);var t=0,C=function(){};return{s:C,n:function(){return t>=A.length?{done:!0}:{done:!1,value:A[t++]}},e:function(A){throw A},f:C}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var e,B=!0,r=!1;return{s:function(){I=I.call(A)},n:function(){var A=I.next();return B=A.done,A},e:function(A){r=!0,e=A},f:function(){try{B||null==I.return||I.return()}finally{if(r)throw e}}}}(D(g));try{for(C.s();!(t=C.n()).done;){I=t.value;w.call(g,I)&&G(A,I,g[I])}}catch(A){C.e(A)}finally{C.f()}}return A},N=function(A,g,I){return G(A,"symbol"!==c(g)?g+"":g,I)};function M(A){return F.apply(this,arguments)}function F(){return(F=I(o().m(function A(g){var I,t,C,e,B,r,Q,n,i;return o().w(function(A){for(;;)switch(A.p=A.n){case 0:return I=g.sdkAppId,t=g.userId,C=g.userSig,e=g.core,r=Math.round((new Date).getTime()/1e3),A.p=1,A.n=2,e.schedule.getAbilityConfig(I,e.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:I,userId:t,userSig:C,timestamp:r});case 2:if(Q=A.v,e.log.info("virtual background ability response: ".concat(JSON.stringify(Q))),n=Q.data,!(null==(B=null==n?void 0:n.trtcAutoConf)?void 0:B.web_ar)){A.n=3;break}return A.a(2,{auth:!0,timestamp:r});case 3:return A.a(2,{auth:!1});case 4:return A.p=4,i=A.v,e.log.error("virtual background fetch error",i),A.a(2,{auth:!1})}},A,null,[[1,4]])}))).apply(this,arguments)}var R={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var Y,m=(Y="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(){var A,g,I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=I;e.ready=new Promise(function(I,t){A=I,g=t});var r=Object.assign({},e),n="";"undefined"!=typeof document&&document.currentScript&&(n=document.currentScript.src),Y&&(n=Y),n=0!==n.indexOf("blob:")?n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var o,i,E=e.print||console.log.bind(console),a=e.printErr||console.error.bind(console);function s(A){if(U(A))return function(A){for(var g=atob(A),I=new Uint8Array(g.length),t=0;t<g.length;++t)I[t]=g.charCodeAt(t);return I}(A.slice(H.length))}Object.assign(e,r),r=null,e.arguments&&e.arguments,e.thisProgram&&e.thisProgram,e.quit&&e.quit,e.wasmBinary&&(o=e.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":c(WebAssembly))&&k("no native wasm support detected");var u,l,f,y,D,d,w,G,p=!1,N=[],M=[],F=[];function R(A){N.unshift(A)}function m(A){F.unshift(A)}var b=0,v=null;function k(A){e.onAbort&&e.onAbort(A),a(A="Aborted("+A+")"),p=!0,A+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(A);throw g(I),I}var S,L,H="data:application/octet-stream;base64,",U=function(A){return A.startsWith(H)};function K(A){return Promise.resolve().then(function(){return function(A){if(A==S&&o)return new Uint8Array(o);var g=s(A);if(g)return g;throw"both async and sync fetching of the wasm failed"}(A)})}function J(A,g,I,t){return function(A,g,I){return K(A).then(function(A){return WebAssembly.instantiate(A,g)}).then(function(A){return A}).then(I,function(A){a("failed to asynchronously prepare wasm: ".concat(A)),k(A)})}(g,I,t)}U(S="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBwMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEG43gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFB3MwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkzwAgAkEIahAHNgIEIABBpNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGcLSACQQhqEAc2AgQgAUGk1QA2AgAgAUEBNgIcIAFBpNUANgIYIAFBATYCFCABQaTVADYCECABQQE2AgwgAUGk1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBpNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BuN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BuN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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Q0EASARAIAYoAjgQGQsgBiwAM0EASARAIAYoAigQGQsgBiwAJ0EATg0AIAYoAhwQGQsgAkEBaiICQQdHDQALIAVBAWoiBUEHRw0ACyMAQRBrIgwkAEHoJRAqIQcCfyAGQYgBaiIFLQALQQd2BEAgBSgCBAwBCyAFLQALQf8AcQshCAJ/An8jAEEQayIJJAAgBkH4AGohAiAHIAhqIgRB7////wdNBEACQCAEQQtJBEAgAkIANwIAIAJBADYCCCACIAItAAtBgAFxIARB/wBxcjoACyACIAItAAtB/wBxOgALDAELIARBC08EfyAEQRBqQXBxIgogCkEBayIKIApBC0YbBUEKC0EBaiIKEBwhCyACIAIoAghBgICAgHhxIApB/////wdxcjYCCCACIAIoAghBgICAgHhyNgIIIAIgCzYCACACIAQ2AgQLIAlBEGokACACDAELECcACyIELQALQQd2BEAgBCgCAAwBCyAECyIEQeglIAcQIyAEIAdqIgQCfyAFLQALQQd2BEAgBSgCAAwBCyAFCyAIECMgBCAIakEBEEAgDEEQaiQAIA0gAkHCKRAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBiwAgwFBAEgEQCAGKAJ4EBkLIAYsAJMBQQBIBEAgBigCiAEQGQsgBigClAEiBQRAIAYoApgBIgQgBSICRwRAA0AgBEEMayICKAIAIgcEQCAEQQhrIAc2AgAgBxAZCyACIgQgBUcNAAsgBigClAEhAgsgBiAFNgKYASACEBkLIAZBoAFqJAAgA0EcaiADKAIoIA0gAy0AMyICwEEASCIFGyADKAIsIAIgBRsQGxogAywAM0EATg0DIAMoAigQGQwDCyADQRxqQZshEBoaDAILIANBHGpB/isQGhoMAQsgA0EcakHnKxAaGgsCQAJAIAEoAjAgAS0ANyICIALAIgZBAEgbIgRBAWoiBUHw////B0kEQAJAAkAgBUELTwRAIAVBD3JBAWoiBxAcIQIgAyAFNgIsIAMgAjYCKCADIAdBgICAgHhyNgIwDAELIANBADYCMCADQgA3AyggAyAFOgAzIANBKGohAiAERQ0BCyACIAFBLGoiBSgCACAFIAZBAEgbIAQQMgsgAiAEakEKOwAAIANBHGogAygCKCADQShqIAMtADMiAsBBAEgiBRsgAygC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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB7M8AIAJBCGoQBzYCBCAAQaTVADYCACACQRBqJAALC8NKFQBBgAgL1CVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIHVuaWZvcm0gdmVjMyB1X2NvbG9yOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLnI+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgICB2ZWMyIG9mZnNldE1hc2tVViA9ICh1X29mZnNldE1hdHJpeCAqIHZlYzQoYywgMCwgMSkpLnh5OwogICAgICBmbG9hdCBpc0luc2lkZVggPSAob2Zmc2V0TWFza1VWLnggPj0gMC4wKSAmJiAob2Zmc2V0TWFza1VWLnggPD0gMS4wKSA/IDEuMCA6IDAuMDsKICAgICAgZmxvYXQgaXNJbnNpZGVZID0gKG9mZnNldE1hc2tVVi55ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi55IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlID0gaXNJbnNpZGVYICogaXNJbnNpZGVZOwogICAgICBmbG9hdCBtYXNrZWRBbHBoYSA9IHRleHR1cmUobWFzaywgb2Zmc2V0TWFza1VWKS5yICogaXNJbnNpZGU7CiAgICAgIG1hc2tlZEFscGhhID0gbWFza2VkQWxwaGE8MC41PzIuMCptYXNrZWRBbHBoYSptYXNrZWRBbHBoYToxLjAtMi4wKigxLjAtbWFza2VkQWxwaGEpKigxLjAtbWFza2VkQWxwaGEpOwogICAgICBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBvZmZzZXRNYXNrVVYgLCBpc0luc2lkZSk7CiAgICAgIG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLCBzcmNfY29sb3IsIG1hc2tlZEFscGhhKTsKICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5yOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cgp1bmlmb3JtIG1hdDQgdV90ZXh0dXJlTWF0cml4OwoKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9KHVfdGV4dHVyZU1hdHJpeCAqIHZlYzQoYV90ZXhDb29yZCwgMCwgMSkpLnh5Owp9CgBzZXRCZWF1dHkgJWYgJWYgJWYgJWYgJWYKAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodmVjNCh1X2NvbG9yLDEuMCksc3JjX2NvbG9yLGEpOwoANkFsbEluMQAAAFAoAAAuFgAAUDZBbGxJbjEAAAAA1CgAAEAWAAAAAAAAOBYAAFBLNkFsbEluMQAAANQoAABcFgAAAQAAADgWAABpaQB2AHZpAEwWAACcFgAATjEwZW1zY3JpcHRlbjN2YWxFAABQKAAAiBYAAGlpaQB2aWlpAAAAAIwnAABMFgAAQCgAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkZABB4C0LyAiMJwAATBYAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkAIwnAABMFgAAdmlpAIwnAACcFgAAnBYAAEwWAACcFgAA7CcAAIwnAACcFgAAcBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAABQKAAAMBcAAJwWAACMJwAAnBYAAJwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAUCgAAIgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAUCgAANAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAFAoAAAYGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABQKAAAZBgAAE4x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")||(L=S,S=e.locateFile?e.locateFile(L,n):n+L);var T=function(A){for(;A.length>0;)A.shift()(e)};function j(A){this.excPtr=A,this.ptr=A-24,this.set_type=function(A){d[this.ptr+4>>2]=A},this.get_type=function(){return d[this.ptr+4>>2]},this.set_destructor=function(A){d[this.ptr+8>>2]=A},this.get_destructor=function(){return d[this.ptr+8>>2]},this.set_caught=function(A){A=A?1:0,u[this.ptr+12|0]=A},this.get_caught=function(){return 0!=u[this.ptr+12|0]},this.set_rethrown=function(A){A=A?1:0,u[this.ptr+13|0]=A},this.get_rethrown=function(){return 0!=u[this.ptr+13|0]},this.init=function(A,g){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(g)},this.set_adjusted_ptr=function(A){d[this.ptr+16>>2]=A},this.get_adjusted_ptr=function(){return d[this.ptr+16>>2]},this.get_exception_ptr=function(){if(yg(this.get_type()))return d[this.excPtr>>2];var A=this.get_adjusted_ptr();return 0!==A?A:this.excPtr}}e.noExitRuntime;var Z,x,P,W=function(A){for(var g="",I=A;l[I];)g+=Z[l[I++]];return g},O={},X={},V={},z=function(A){throw new x(A)},q=function(A){throw new P(A)},_=function(A,g,I){function t(g){var t=I(g);t.length!==A.length&&q("Mismatched type converter count");for(var C=0;C<A.length;++C)$(A[C],t[C])}A.forEach(function(A){V[A]=g});var C=new Array(g.length),e=[],B=0;g.forEach(function(A,g){X.hasOwnProperty(A)?C[g]=X[A]:(e.push(A),O.hasOwnProperty(A)||(O[A]=[]),O[A].push(function(){C[g]=X[A],++B===e.length&&t(C)}))}),0===e.length&&t(C)};function $(A,g){var I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(A,g){var I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=g.name;if(A||z('type "'.concat(t,'" must have a positive integer typeid pointer')),X.hasOwnProperty(A)){if(I.ignoreDuplicateRegistrations)return;z("Cannot register type '".concat(t,"' twice"))}if(X[A]=g,delete V[A],O.hasOwnProperty(A)){var C=O[A];delete O[A],C.forEach(function(A){return A()})}}(A,g,I)}var AA,gA=function(A){z(A.$$.ptrType.registeredClass.name+" instance already deleted")},IA=!1,tA=function(A){},CA=function(A){A.count.value-=1,0===A.count.value&&function(A){A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)}(A)},eA=function(A,g,I){if(g===I)return A;if(void 0===I.baseClass)return null;var t=eA(A,g,I.baseClass);return null===t?null:I.downcast(t)},BA={},rA=function(){return Object.keys(EA).length},QA=function(){var A=[];for(var g in EA)EA.hasOwnProperty(g)&&A.push(EA[g]);return A},nA=[],oA=function(){for(;nA.length;){var A=nA.pop();A.$$.deleteScheduled=!1,A.delete()}},iA=function(A){AA=A,nA.length&&AA&&AA(oA)},EA={},aA=function(A,g){return g=function(A,g){for(void 0===g&&z("ptr should not be undefined");A.baseClass;)g=A.upcast(g),A=A.baseClass;return g}(A,g),EA[g]},sA=function(A,g){return g.ptrType&&g.ptr||q("makeClassHandle requires ptr and ptrType"),!!g.smartPtrType!=!!g.smartPtr&&q("Both smartPtrType and smartPtr must be specified"),g.count={value:1},uA(Object.create(A,{$$:{value:g}}))};function cA(A){var g=this.getPointee(A);if(!g)return this.destructor(A),null;var I=aA(this.registeredClass,g);if(void 0!==I){if(0===I.$$.count.value)return I.$$.ptr=g,I.$$.smartPtr=A,I.clone();var t=I.clone();return this.destructor(A),t}function C(){return this.isSmartPointer?sA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:A}):sA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var e,B=this.registeredClass.getActualType(g),r=BA[B];if(!r)return C.call(this);e=this.isConst?r.constPointerType:r.pointerType;var Q=eA(g,this.registeredClass,e.registeredClass);return null===Q?C.call(this):this.isSmartPointer?sA(e.registeredClass.instancePrototype,{ptrType:e,ptr:Q,smartPtrType:this,smartPtr:A}):sA(e.registeredClass.instancePrototype,{ptrType:e,ptr:Q})}var uA=function(A){return"undefined"==typeof FinalizationRegistry?(uA=function(A){return A},A):(IA=new FinalizationRegistry(function(A){CA(A.$$)}),tA=function(A){return IA.unregister(A)},(uA=function(A){var g=A.$$;if(g.smartPtr){var I={$$:g};IA.register(A,I,A)}return A})(A))};function hA(){}var lA=function(A,g){return Object.defineProperty(g,"name",{value:A})},fA=function(A,g,I){if(void 0===A[g].overloadTable){var t=A[g];A[g]=function(){return A[g].overloadTable.hasOwnProperty(arguments.length)||z("Function '".concat(I,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(A[g].overloadTable,")!")),A[g].overloadTable[arguments.length].apply(this,arguments)},A[g].overloadTable=[],A[g].overloadTable[t.argCount]=t}};function yA(A,g,I,t,C,e,B,r){this.name=A,this.constructor=g,this.instancePrototype=I,this.rawDestructor=t,this.baseClass=C,this.getActualType=e,this.upcast=B,this.downcast=r,this.pureVirtualFunctions=[]}var DA=function(A,g,I){for(;g!==I;)g.upcast||z("Expected null or instance of ".concat(I.name,", got an instance of ").concat(g.name)),A=g.upcast(A),g=g.baseClass;return A};function dA(A,g){if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),0;g.$$||z('Cannot pass "'.concat(XA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name));var I=g.$$.ptrType.registeredClass;return DA(g.$$.ptr,I,this.registeredClass)}function wA(A,g){var I;if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),this.isSmartPointer?(I=this.rawConstructor(),null!==A&&A.push(this.rawDestructor,I),I):0;g.$$||z('Cannot pass "'.concat(XA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&g.$$.ptrType.isConst&&z("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));var t=g.$$.ptrType.registeredClass;if(I=DA(g.$$.ptr,t,this.registeredClass),this.isSmartPointer)switch(void 0===g.$$.smartPtr&&z("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?I=g.$$.smartPtr:z("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));break;case 1:I=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)I=g.$$.smartPtr;else{var C=g.clone();I=this.rawShare(I,ZA.toHandle(function(){return C.delete()})),null!==A&&A.push(this.rawDestructor,I)}break;default:z("Unsupporting sharing policy")}return I}function GA(A,g){if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),0;g.$$||z('Cannot pass "'.concat(XA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name)),g.$$.ptrType.isConst&&z("Cannot convert argument of type ".concat(g.$$.ptrType.name," to parameter type ").concat(this.name));var I=g.$$.ptrType.registeredClass;return DA(g.$$.ptr,I,this.registeredClass)}function pA(A){return this.fromWireType(d[A>>2])}function NA(A,g,I,t,C,e,B,r,Q,n,o){this.name=A,this.registeredClass=g,this.isReference=I,this.isConst=t,this.isSmartPointer=C,this.pointeeType=e,this.sharingPolicy=B,this.rawGetPointee=r,this.rawConstructor=Q,this.rawShare=n,this.rawDestructor=o,C||void 0!==g.baseClass?this.toWireType=wA:t?(this.toWireType=dA,this.destructorFunction=null):(this.toWireType=GA,this.destructorFunction=null)}var MA,FA,RA=[],YA=function(A){var g=RA[A];return g||(A>=RA.length&&(RA.length=A+1),RA[A]=g=MA.get(A)),g},mA=function(A,g,I){return A.includes("j")?function(A,g,I){var t=e["dynCall_"+A];return I&&I.length?t.apply(null,[g].concat(I)):t.call(null,g)}(A,g,I):YA(g).apply(null,I)},bA=function(A,g){var I,t,C,e=(A=W(A)).includes("j")?(I=A,t=g,C=[],function(){return C.length=0,Object.assign(C,arguments),mA(I,t,C)}):YA(g);return"function"!=typeof e&&z("unknown function pointer with signature ".concat(A,": ").concat(g)),e},vA=function(A){var g=lg(A),I=W(g);return fg(g),I},kA=function(A,g){var I=[],t={};throw g.forEach(function A(g){t[g]||X[g]||(V[g]?V[g].forEach(A):(I.push(g),t[g]=!0))}),new FA("".concat(A,": ")+I.map(vA).join([", "]))},SA=function(A,g){for(var I=[],t=0;t<A;t++)I.push(d[g+4*t>>2]);return I},LA=function(A){for(;A.length;){var g=A.pop();A.pop()(g)}};function HA(A,g,I,t,C,e){var B=g.length;B<2&&z("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==g[1]&&null!==I,Q=!1,n=1;n<g.length;++n)if(null!==g[n]&&void 0===g[n].destructorFunction){Q=!0;break}var o="void"!==g[0].name,i=B-2,E=new Array(i),a=[],s=[];return lA(A,function(){var I;arguments.length!==i&&z("function ".concat(A," called with ").concat(arguments.length," arguments, expected ").concat(i)),s.length=0,a.length=r?2:1,a[0]=C,r&&(I=g[1].toWireType(s,this),a[1]=I);for(var e=0;e<i;++e)E[e]=g[e+2].toWireType(s,arguments[e]),a.push(E[e]);return function(A){if(Q)LA(s);else for(var t=r?1:2;t<g.length;t++){var C=1===t?I:E[t-2];null!==g[t].destructorFunction&&g[t].destructorFunction(C)}if(o)return g[0].fromWireType(A)}(t.apply(null,a))})}var UA=function(A,g,I){return A instanceof Object||z("".concat(I,' with invalid "this": ').concat(A)),A instanceof g.registeredClass.constructor||z("".concat(I,' incompatible with "this" of type ').concat(A.constructor.name)),A.$$.ptr||z("cannot call emscripten binding method ".concat(I," on deleted object")),DA(A.$$.ptr,A.$$.ptrType.registeredClass,g.registeredClass)};function KA(){this.allocated=[void 0],this.freelist=[]}var JA=new KA,TA=function(A){A>=JA.reserved&&0===--JA.get(A).refcount&&JA.free(A)},jA=function(){for(var A=0,g=JA.reserved;g<JA.allocated.length;++g)void 0!==JA.allocated[g]&&++A;return A},ZA={toValue:function(A){return A||z("Cannot use deleted val. handle = "+A),JA.get(A).value},toHandle:function(A){switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return JA.allocate({refcount:1,value:A})}}};function xA(A){return this.fromWireType(D[A>>2])}var PA,WA,OA,XA=function(A){if(null===A)return"null";var g=c(A);return"object"===g||"array"===g||"function"===g?A.toString():""+A},VA=function(A,g){switch(g){case 4:return function(A){return this.fromWireType(w[A>>2])};case 8:return function(A){return this.fromWireType(G[A>>3])};default:throw new TypeError("invalid float width (".concat(g,"): ").concat(A))}},zA=function(A,g,I){switch(g){case 1:return I?function(A){return u[0|A]}:function(A){return l[0|A]};case 2:return I?function(A){return f[A>>1]}:function(A){return y[A>>1]};case 4:return I?function(A){return D[A>>2]}:function(A){return d[A>>2]};default:throw new TypeError("invalid integer width (".concat(g,"): ").concat(A))}},qA="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,_A=function(A,g,I){for(var t=g+I,C=g;A[C]&&!(C>=t);)++C;if(C-g>16&&A.buffer&&qA)return qA.decode(A.subarray(g,C));for(var e="";g<C;){var B=A[g++];if(128&B){var r=63&A[g++];if(192!=(224&B)){var Q=63&A[g++];if((B=224==(240&B)?(15&B)<<12|r<<6|Q:(7&B)<<18|r<<12|Q<<6|63&A[g++])<65536)e+=String.fromCharCode(B);else{var n=B-65536;e+=String.fromCharCode(55296|n>>10,56320|1023&n)}}else e+=String.fromCharCode((31&B)<<6|r)}else e+=String.fromCharCode(B)}return e},$A=function(A,g){return A?_A(l,A,g):""},Ag="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,gg=function(A,g){for(var I=A,t=I>>1,C=t+g/2;!(t>=C)&&y[t];)++t;if((I=t<<1)-A>32&&Ag)return Ag.decode(l.subarray(A,I));for(var e="",B=0;!(B>=g/2);++B){var r=f[A+2*B>>1];if(0==r)break;e+=String.fromCharCode(r)}return e},Ig=function(A,g,I){if(void 0===I&&(I=2147483647),I<2)return 0;for(var t=g,C=(I-=2)<2*A.length?I/2:A.length,e=0;e<C;++e){var B=A.charCodeAt(e);f[g>>1]=B,g+=2}return f[g>>1]=0,g-t},tg=function(A){return 2*A.length},Cg=function(A,g){for(var I=0,t="";!(I>=g/4);){var C=D[A+4*I>>2];if(0==C)break;if(++I,C>=65536){var e=C-65536;t+=String.fromCharCode(55296|e>>10,56320|1023&e)}else t+=String.fromCharCode(C)}return t},eg=function(A,g,I){if(void 0===I&&(I=2147483647),I<4)return 0;for(var t=g,C=t+I-4,e=0;e<A.length;++e){var B=A.charCodeAt(e);if(B>=55296&&B<=57343&&(B=65536+((1023&B)<<10)|1023&A.charCodeAt(++e)),D[g>>2]=B,(g+=4)+4>C)break}return D[g>>2]=0,g-t},Bg=function(A){for(var g=0,I=0;I<A.length;++I){var t=A.charCodeAt(I);t>=55296&&t<=57343&&++I,g+=4}return g},rg=function(A,g){var I=X[A];return void 0===I&&z(g+" has unknown type "+vA(A)),I},Qg=function(A,g,I){var t=[],C=A.toWireType(t,I);return t.length&&(d[g>>2]=ZA.toHandle(t)),C},ng={},og=[],ig=Reflect.construct,Eg=[null,[],[]],ag=function(A,g){var I=Eg[A];0===g||10===g?((1===A?E:a)(_A(I,0)),I.length=0):I.push(g)};!function(){for(var A=new Array(256),g=0;g<256;++g)A[g]=String.fromCharCode(g);Z=A}(),x=e.BindingError=function(A){function g(A){var I;return C(this,g),(I=t(this,g,[A])).name="BindingError",I}return Q(g,A),B(g)}(h(Error)),P=e.InternalError=function(A){function g(A){var I;return C(this,g),(I=t(this,g,[A])).name="InternalError",I}return Q(g,A),B(g)}(h(Error)),Object.assign(hA.prototype,{isAliasOf:function(A){if(!(this instanceof hA))return!1;if(!(A instanceof hA))return!1;var g=this.$$.ptrType.registeredClass,I=this.$$.ptr;A.$$=A.$$;for(var t=A.$$.ptrType.registeredClass,C=A.$$.ptr;g.baseClass;)I=g.upcast(I),g=g.baseClass;for(;t.baseClass;)C=t.upcast(C),t=t.baseClass;return g===t&&I===C},clone:function(){if(this.$$.ptr||gA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var A,g=uA(Object.create(Object.getPrototypeOf(this),{$$:{value:(A=this.$$,{count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType})}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete:function(){this.$$.ptr||gA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&z("Object already scheduled for deletion"),tA(this),CA(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||gA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&z("Object already scheduled for deletion"),nA.push(this),1===nA.length&&AA&&AA(oA),this.$$.deleteScheduled=!0,this}}),e.getInheritedInstanceCount=rA,e.getLiveInheritedInstances=QA,e.flushPendingDeletes=oA,e.setDelayFunction=iA,Object.assign(NA.prototype,{getPointee:function(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor:function(A){this.rawDestructor&&this.rawDestructor(A)},argPackAdvance:8,readValueFromPointer:pA,deleteObject:function(A){null!==A&&A.delete()},fromWireType:cA}),FA=e.UnboundTypeError=(PA=Error,(OA=lA(WA="UnboundTypeError",function(A){this.name=WA,this.message=A;var g=new Error(A).stack;void 0!==g&&(this.stack=this.toString()+"\n"+g.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(PA.prototype),OA.prototype.constructor=OA,OA.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},OA),Object.assign(KA.prototype,{get:function(A){return this.allocated[A]},has:function(A){return void 0!==this.allocated[A]},allocate:function(A){var g=this.freelist.pop()||this.allocated.length;return this.allocated[g]=A,g},free:function(A){this.allocated[A]=void 0,this.freelist.push(A)}}),JA.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),JA.reserved=JA.allocated.length,e.count_emval_handles=jA;var sg,cg={w:function(A,g,I){throw new j(A).init(g,I),A},q:function(A,g,I,t,C){},u:function(A,g,I,t){$(A,{name:g=W(g),fromWireType:function(A){return!!A},toWireType:function(A,g){return g?I:t},argPackAdvance:8,readValueFromPointer:function(A){return this.fromWireType(l[A])},destructorFunction:null})},y:function(A,g,I,t,C,B,r,Q,n,o,i,E,a){i=W(i),B=bA(C,B),Q&&(Q=bA(r,Q)),o&&(o=bA(n,o)),a=bA(E,a);var s=function(A){if(void 0===A)return"_unknown";var g=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return g>=48&&g<=57?"_".concat(A):A}(i);!function(A,g,I){e.hasOwnProperty(A)?(z("Cannot register public name '".concat(A,"' twice")),fA(e,A,A),e.hasOwnProperty(I)&&z("Cannot register multiple overloads of a function with the same number of arguments (".concat(I,")!")),e[A].overloadTable[I]=g):e[A]=g}(s,function(){kA("Cannot construct ".concat(i," due to unbound types"),[t])}),_([A,g,I],t?[t]:[],function(g){var I,C;g=g[0],C=t?(I=g.registeredClass).instancePrototype:hA.prototype;var r=lA(i,function(){if(Object.getPrototypeOf(this)!==n)throw new x("Use 'new' to construct "+i);if(void 0===E.constructor_body)throw new x(i+" has no accessible constructor");var A=E.constructor_body[arguments.length];if(void 0===A)throw new x("Tried to invoke ctor of ".concat(i," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return A.apply(this,arguments)}),n=Object.create(C,{constructor:{value:r}});r.prototype=n;var E=new yA(i,r,n,a,I,B,Q,o);E.baseClass&&(void 0===E.baseClass.__derivedClasses&&(E.baseClass.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var c=new NA(i,E,!0,!1,!1),u=new NA(i+"*",E,!1,!1,!1),h=new NA(i+" const*",E,!1,!0,!1);return BA[A]={pointerType:u,constPointerType:h},function(A,g,I){e.hasOwnProperty(A)||q("Replacing nonexistant public symbol"),void 0!==e[A].overloadTable&&void 0!==I||(e[A]=g,e[A].argCount=I)}(s,r),[c,u,h]})},x:function(A,g,I,t,C,e){var B=SA(g,I);C=bA(t,C),_([],[A],function(A){A=A[0];var I="constructor ".concat(A.name);if(void 0===A.registeredClass.constructor_body&&(A.registeredClass.constructor_body=[]),void 0!==A.registeredClass.constructor_body[g-1])throw new x("Cannot register multiple constructors with identical number of parameters (".concat(g-1,") for class '").concat(A.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return A.registeredClass.constructor_body[g-1]=function(){kA("Cannot construct ".concat(A.name," due to unbound types"),B)},_([],B,function(t){return t.splice(1,0,null),A.registeredClass.constructor_body[g-1]=HA(I,t,null,C,e),[]}),[]})},i:function(A,g,I,t,C,e,B,r,Q){var n,o,i=SA(I,t);g=W(g),o=(n=(n=g).trim()).indexOf("("),g=-1!==o?n.substr(0,o):n,e=bA(C,e),_([],[A],function(A){A=A[0];var t="".concat(A.name,".").concat(g);function C(){kA("Cannot call ".concat(t," due to unbound types"),i)}g.startsWith("@@")&&(g=Symbol[g.substring(2)]),r&&A.registeredClass.pureVirtualFunctions.push(g);var Q=A.registeredClass.instancePrototype,n=Q[g];return void 0===n||void 0===n.overloadTable&&n.className!==A.name&&n.argCount===I-2?(C.argCount=I-2,C.className=A.name,Q[g]=C):(fA(Q,g,t),Q[g].overloadTable[I-2]=C),_([],i,function(C){var r=HA(t,C,A,e,B);return void 0===Q[g].overloadTable?(r.argCount=I-2,Q[g]=r):Q[g].overloadTable[I-2]=r,[]}),[]})},k:function(A,g,I,t,C,e,B,r,Q,n){g=W(g),C=bA(t,C),_([],[A],function(A){A=A[0];var t="".concat(A.name,".").concat(g),o={get:function(){kA("Cannot access ".concat(t," due to unbound types"),[I,B])},enumerable:!0,configurable:!0};return o.set=Q?function(){return kA("Cannot access ".concat(t," due to unbound types"),[I,B])}:function(A){return z(t+" is a read-only property")},Object.defineProperty(A.registeredClass.instancePrototype,g,o),_([],Q?[I,B]:[I],function(I){var B=I[0],o={get:function(){var g=UA(this,A,t+" getter");return B.fromWireType(C(e,g))},enumerable:!0};if(Q){Q=bA(r,Q);var i=I[1];o.set=function(g){var I=UA(this,A,t+" setter"),C=[];Q(n,I,i.toWireType(C,g)),LA(C)}}return Object.defineProperty(A.registeredClass.instancePrototype,g,o),[]}),[]})},t:function(A,g){$(A,{name:g=W(g),fromWireType:function(A){var g=ZA.toValue(A);return TA(A),g},toWireType:function(A,g){return ZA.toHandle(g)},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:null})},p:function(A,g,I){$(A,{name:g=W(g),fromWireType:function(A){return A},toWireType:function(A,g){return g},argPackAdvance:8,readValueFromPointer:VA(g,I),destructorFunction:null})},g:function(A,g,I,t,C){g=W(g);var e=function(A){return A};if(0===t){var B=32-8*I;e=function(A){return A<<B>>>B}}var r=g.includes("unsigned");$(A,{name:g,fromWireType:e,toWireType:r?function(A,g){return this.name,g>>>0}:function(A,g){return this.name,g},argPackAdvance:8,readValueFromPointer:zA(g,I,0!==t),destructorFunction:null})},a:function(A,g,I){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][g];function C(A){var g=d[A>>2],I=d[A+4>>2];return new t(u.buffer,I,g)}$(A,{name:I=W(I),fromWireType:C,argPackAdvance:8,readValueFromPointer:C},{ignoreDuplicateRegistrations:!0})},o:function(A,g){var I="std::string"===(g=W(g));$(A,{name:g,fromWireType:function(A){var g,t=d[A>>2],C=A+4;if(I)for(var e=C,B=0;B<=t;++B){var r=C+B;if(B==t||0==l[r]){var Q=$A(e,r-e);void 0===g?g=Q:(g+=String.fromCharCode(0),g+=Q),e=r+1}}else{var n=new Array(t);for(B=0;B<t;++B)n[B]=String.fromCharCode(l[C+B]);g=n.join("")}return fg(A),g},toWireType:function(A,g){var t;g instanceof ArrayBuffer&&(g=new Uint8Array(g));var C="string"==typeof g;C||g instanceof Uint8Array||g instanceof Uint8ClampedArray||g instanceof Int8Array||z("Cannot pass non-string to std::string"),t=I&&C?function(A){for(var g=0,I=0;I<A.length;++I){var t=A.charCodeAt(I);t<=127?g++:t<=2047?g+=2:t>=55296&&t<=57343?(g+=4,++I):g+=3}return g}(g):g.length;var e=hg(4+t+1),B=e+4;if(d[e>>2]=t,I&&C)!function(A,g,I,t){if(!(t>0))return 0;for(var C=I+t-1,e=0;e<A.length;++e){var B=A.charCodeAt(e);if(B>=55296&&B<=57343&&(B=65536+((1023&B)<<10)|1023&A.charCodeAt(++e)),B<=127){if(I>=C)break;g[I++]=B}else if(B<=2047){if(I+1>=C)break;g[I++]=192|B>>6,g[I++]=128|63&B}else if(B<=65535){if(I+2>=C)break;g[I++]=224|B>>12,g[I++]=128|B>>6&63,g[I++]=128|63&B}else{if(I+3>=C)break;g[I++]=240|B>>18,g[I++]=128|B>>12&63,g[I++]=128|B>>6&63,g[I++]=128|63&B}}g[I]=0}(g,l,B,t+1);else if(C)for(var r=0;r<t;++r){var Q=g.charCodeAt(r);Q>255&&(fg(B),z("String has UTF-16 code units that do not fit in 8 bits")),l[B+r]=Q}else for(r=0;r<t;++r)l[B+r]=g[r];return null!==A&&A.push(fg,e),e},argPackAdvance:8,readValueFromPointer:pA,destructorFunction:function(A){fg(A)}})},l:function(A,g,I){var t,C,e,B,r;I=W(I),2===g?(t=gg,C=Ig,B=tg,e=function(){return y},r=1):4===g&&(t=Cg,C=eg,B=Bg,e=function(){return d},r=2),$(A,{name:I,fromWireType:function(A){for(var I,C=d[A>>2],B=e(),Q=A+4,n=0;n<=C;++n){var o=A+4+n*g;if(n==C||0==B[o>>r]){var i=t(Q,o-Q);void 0===I?I=i:(I+=String.fromCharCode(0),I+=i),Q=o+g}}return fg(A),I},toWireType:function(A,t){"string"!=typeof t&&z("Cannot pass non-string to C++ string type ".concat(I));var e=B(t),Q=hg(4+e+g);return d[Q>>2]=e>>r,C(t,Q+4,e+g),null!==A&&A.push(fg,Q),Q},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:function(A){fg(A)}})},v:function(A,g){$(A,{isVoid:!0,name:g=W(g),argPackAdvance:0,fromWireType:function(){},toWireType:function(A,g){}})},j:function(A,g,I){return A=ZA.toValue(A),g=rg(g,"emval::as"),Qg(g,I,A)},e:function(A,g,I,t,C){var e,B;return(A=og[A])(g=ZA.toValue(g),g[I=void 0===(B=ng[e=I])?W(e):B],t,C)},d:TA,f:function(A,g,I){var t=function(A,g){for(var I=new Array(A),t=0;t<A;++t)I[t]=rg(d[g+4*t>>2],"parameter "+t);return I}(A,g),C=t.shift();A--;var e,B,r=new Array(A),Q="methodCaller<(".concat(t.map(function(A){return A.name}).join(", "),") => ").concat(C.name,">");return e=lA(Q,function(g,e,B,Q){for(var n=0,o=0;o<A;++o)r[o]=t[o].readValueFromPointer(Q+n),n+=t[o].argPackAdvance;var i=1===I?ig(e,r):e.apply(g,r);for(o=0;o<A;++o)t[o].deleteObject&&t[o].deleteObject(r[o]);return Qg(C,B,i)}),B=og.length,og.push(e),B},c:function(A){A>4&&(JA.get(A).refcount+=1)},b:function(A){var g=ZA.toValue(A);LA(g),TA(A)},h:function(A,g){var I=(A=rg(A,"_emval_take_value")).readValueFromPointer(g);return ZA.toHandle(I)},m:function(){k("")},s:function(A,g,I){return l.copyWithin(A,g,g+I)},r:function(A){l.length,k("OOM")},n:function(A,g,I,t){for(var C=0,e=0;e<I;e++){var B=d[g>>2],r=d[g+4>>2];g+=8;for(var Q=0;Q<r;Q++)ag(A,l[B+Q]);C+=r}return d[t>>2]=C,0}},ug=function(){var A={a:cg};function I(A,g){var I,t;return ug=A.exports,i=ug.z,I=i.buffer,e.HEAP8=u=new Int8Array(I),e.HEAP16=f=new Int16Array(I),e.HEAPU8=l=new Uint8Array(I),e.HEAPU16=y=new Uint16Array(I),e.HEAP32=D=new Int32Array(I),e.HEAPU32=d=new Uint32Array(I),e.HEAPF32=w=new Float32Array(I),e.HEAPF64=G=new Float64Array(I),MA=ug.C,t=ug.A,M.unshift(t),function(){if(b--,e.monitorRunDependencies&&e.monitorRunDependencies(b),0==b&&v){var A=v;v=null,A()}}(),ug}if(b++,e.monitorRunDependencies&&e.monitorRunDependencies(b),e.instantiateWasm)try{return e.instantiateWasm(A,I)}catch(A){a("Module.instantiateWasm callback failed with error: ".concat(A)),g(A)}return J(0,S,A,function(A){I(A.instance)}).catch(g),{}}(),hg=function(A){return(hg=ug.B)(A)},lg=function(A){return(lg=ug.D)(A)},fg=function(A){return(fg=ug.E)(A)},yg=function(A){return(yg=ug.F)(A)};function Dg(){function g(){sg||(sg=!0,e.calledRun=!0,p||(T(M),A(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),function(){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)m(e.postRun.shift());T(F)}()))}b>0||(function(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)R(e.preRun.shift());T(N)}(),b>0||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),g()},1)):g()))}if(e.dynCall_jiji=function(A,g,I,t,C){return(e.dynCall_jiji=ug.G)(A,g,I,t,C)},e._vertexShaderSource=10640,v=function A(){sg||Dg(),sg||(v=A)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Dg(),I.ready}),b=m,v="undefined"==typeof navigator?"":navigator.userAgent,k=function(A){return new RegExp(A,"i").test(v)},S=function(A){if(k(A)){var g=new RegExp("".concat(A,"\\/([\\d.]+)")),I=v.match(g);if(I&&I[1])return I[1]}return""},L=function(A){if(k(A)){var g=new RegExp("".concat(A,"\\/(\\d+)")),I=v.match(g);if(I&&I[1])return parseFloat(I[1])}return NaN},H=/AppleWebKit\/([\d.]+)/i.exec(v);H&&parseFloat(H[1]);var U=k("iPad"),K="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&k("Macintosh"),J=k("iPhone")&&!U,T=k("iPod"),j=J||U||T||K,Z=k("Android");!function(){if(Z){var A=v.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){var g=A[1]&&parseFloat(A[1]),I=A[2]&&parseFloat(A[2]);if(g&&I)return parseFloat("".concat(A[1],".").concat(A[2]));if(g)return g}}}();Z&&k("webkit");var x=k("Firefox"),P=S("Firefox");L("Firefox");var W=k("Edge"),O=S("Edge"),X=k("Edg"),V=S("Edg");L("Edg");var z=k("SogouMobileBrowser"),q=S("SogouMobileBrowser"),_=k("MetaSr\\s"),$=S("MetaSr\\s"),AA=k("TBS"),gA=S("TBS"),IA=k("XWEB"),tA=S("XWEB");k("MSIE\\s8\\.0");var CA=k("MSIE\\/\\d+");!function(){if(CA){var A=/MSIE\s(\d+)\.\d/.exec(v),g=A&&parseFloat(A[1]);return!g&&/Trident\/7.0/i.test(v)&&/rv:11.0/.test(v)&&(g=11),g}}();var eA=k("(micromessenger|webbrowser)"),BA=S("MicroMessenger"),rA=!AA&&k("MQQBrowser")&&k("COVC"),QA=!AA&&k("MQQBrowser")&&!k("COVC"),nA=QA||rA?S("MQQBrowser"):"",oA=!AA&&k(" QQBrowser"),iA=S(" QQBrowser"),EA=!AA&&k("QQBrowserLite"),aA=S("QQBrowserLite"),sA=!AA&&k("MQBHD"),cA=S("MQBHD");k("Windows"),!j&&k("MAC OS X"),!Z&&k("Linux"),k("CrOS"),k("MicroMessenger"),k("UCBrowser"),k("Electron");var uA=k("MiuiBrowser"),hA=S("MiuiBrowser"),lA=k("HuaweiBrowser");k("Huawei")||k("HUAWEI"),k("Honor")||k("HONOR");var fA=S("HuaweiBrowser"),yA=k("SamsungBrowser"),DA=S("SamsungBrowser"),dA=k("HeyTapBrowser"),wA=S("HeyTapBrowser"),GA=k("VivoBrowser"),pA=S("VivoBrowser");k("OpenHarmony"),S("OpenHarmony");var NA=k("CriOS"),MA=k("Chrome"),FA=!W&&!_&&!z&&!AA&&!IA&&!X&&!oA&&!uA&&!lA&&!yA&&!dA&&!GA&&MA;k("HeadlessChrome");var RA=L("Chrome"),YA=S("Chrome");L("Electron");var mA=!MA&&!QA&&!rA&&!EA&&!sA&&k("Safari"),bA=S("Version"),vA=function(){if(K)return bA;if(j){var A=v.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){var g=A[1];return A[2]&&(g+=".".concat(A[2])),g}}return""}();Number(vA.split(".")[0]),Number(vA.split(".")[0]),function(){var A=new Map([[x,["Firefox",P]],[X,["Edg",V]],[FA,["Chrome",YA]],[NA,["ChiOS",S("CriOS")]],[mA&&!NA,["Safari",bA]],[AA,["TBS",gA]],[IA,["XWEB",tA]],[eA&&J,["WeChat",BA]],[oA,["QQ(Win)",iA]],[QA,["QQ(Mobile)",nA]],[rA,["QQ(Mobile X5)",nA]],[EA,["QQ(Mac)",aA]],[sA,["QQ(iPad)",cA]],[uA,["MI",hA]],[lA,["HW",fA]],[yA,["Samsung",DA]],[dA,["OPPO",wA]],[GA,["VIVO",pA]],[W,["EDGE",O]],[z,["SogouMobile",q]],[_,["Sogou",$]]]),g="unknown",I="unknown";if(A.has(!0)){var t=a(A.get(!0),2);g=t[0],I=t[1]}}();var kA=1e-6,SA="undefined"!=typeof Float32Array?Float32Array:Array,LA={};function HA(){var A=new SA(16);return SA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=0,A[12]=0,A[13]=0,A[14]=0),A[0]=1,A[5]=1,A[10]=1,A[15]=1,A}function UA(A){var g=new SA(16);return g[0]=A[0],g[1]=A[1],g[2]=A[2],g[3]=A[3],g[4]=A[4],g[5]=A[5],g[6]=A[6],g[7]=A[7],g[8]=A[8],g[9]=A[9],g[10]=A[10],g[11]=A[11],g[12]=A[12],g[13]=A[13],g[14]=A[14],g[15]=A[15],g}function KA(A,g){return A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function JA(A,g,I,t,C,e,B,r,Q,n,o,i,E,a,s,c){var u=new SA(16);return u[0]=A,u[1]=g,u[2]=I,u[3]=t,u[4]=C,u[5]=e,u[6]=B,u[7]=r,u[8]=Q,u[9]=n,u[10]=o,u[11]=i,u[12]=E,u[13]=a,u[14]=s,u[15]=c,u}function TA(A,g,I,t,C,e,B,r,Q,n,o,i,E,a,s,c,u){return A[0]=g,A[1]=I,A[2]=t,A[3]=C,A[4]=e,A[5]=B,A[6]=r,A[7]=Q,A[8]=n,A[9]=o,A[10]=i,A[11]=E,A[12]=a,A[13]=s,A[14]=c,A[15]=u,A}function jA(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function ZA(A,g){if(A===g){var I=g[1],t=g[2],C=g[3],e=g[6],B=g[7],r=g[11];A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=I,A[6]=g[9],A[7]=g[13],A[8]=t,A[9]=e,A[11]=g[14],A[12]=C,A[13]=B,A[14]=r}else A[0]=g[0],A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=g[1],A[5]=g[5],A[6]=g[9],A[7]=g[13],A[8]=g[2],A[9]=g[6],A[10]=g[10],A[11]=g[14],A[12]=g[3],A[13]=g[7],A[14]=g[11],A[15]=g[15];return A}function xA(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=g[4],r=g[5],Q=g[6],n=g[7],o=g[8],i=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=I*r-t*B,f=I*Q-C*B,y=I*n-e*B,D=t*Q-C*r,d=t*n-e*r,w=C*n-e*Q,G=o*c-i*s,p=o*u-E*s,N=o*h-a*s,M=i*u-E*c,F=i*h-a*c,R=E*h-a*u,Y=l*R-f*F+y*M+D*N-d*p+w*G;return Y?(Y=1/Y,A[0]=(r*R-Q*F+n*M)*Y,A[1]=(C*F-t*R-e*M)*Y,A[2]=(c*w-u*d+h*D)*Y,A[3]=(E*d-i*w-a*D)*Y,A[4]=(Q*N-B*R-n*p)*Y,A[5]=(I*R-C*N+e*p)*Y,A[6]=(u*y-s*w-h*f)*Y,A[7]=(o*w-E*y+a*f)*Y,A[8]=(B*F-r*N+n*G)*Y,A[9]=(t*N-I*F-e*G)*Y,A[10]=(s*d-c*y+h*l)*Y,A[11]=(i*y-o*d-a*l)*Y,A[12]=(r*p-B*M-Q*G)*Y,A[13]=(I*M-t*p+C*G)*Y,A[14]=(c*f-s*D-u*l)*Y,A[15]=(o*D-i*f+E*l)*Y,A):null}function PA(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=g[4],r=g[5],Q=g[6],n=g[7],o=g[8],i=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=I*r-t*B,f=I*Q-C*B,y=I*n-e*B,D=t*Q-C*r,d=t*n-e*r,w=C*n-e*Q,G=o*c-i*s,p=o*u-E*s,N=o*h-a*s,M=i*u-E*c,F=i*h-a*c,R=E*h-a*u;return A[0]=r*R-Q*F+n*M,A[1]=C*F-t*R-e*M,A[2]=c*w-u*d+h*D,A[3]=E*d-i*w-a*D,A[4]=Q*N-B*R-n*p,A[5]=I*R-C*N+e*p,A[6]=u*y-s*w-h*f,A[7]=o*w-E*y+a*f,A[8]=B*F-r*N+n*G,A[9]=t*N-I*F-e*G,A[10]=s*d-c*y+h*l,A[11]=i*y-o*d-a*l,A[12]=r*p-B*M-Q*G,A[13]=I*M-t*p+C*G,A[14]=c*f-s*D-u*l,A[15]=o*D-i*f+E*l,A}function WA(A){var g=A[0],I=A[1],t=A[2],C=A[3],e=A[4],B=A[5],r=A[6],Q=A[7],n=A[8],o=A[9],i=A[10],E=A[11],a=A[12],s=A[13],c=A[14],u=g*B-I*e,h=g*r-t*e,l=I*r-t*B,f=n*s-o*a,y=n*c-i*a,D=o*c-i*s;return Q*(g*D-I*y+t*f)-C*(e*D-B*y+r*f)+A[15]*(n*l-o*h+i*u)-E*(a*l-s*h+c*u)}function OA(A,g,I){var t=g[0],C=g[1],e=g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=g[8],E=g[9],a=g[10],s=g[11],c=g[12],u=g[13],h=g[14],l=g[15],f=I[0],y=I[1],D=I[2],d=I[3];return A[0]=f*t+y*r+D*i+d*c,A[1]=f*C+y*Q+D*E+d*u,A[2]=f*e+y*n+D*a+d*h,A[3]=f*B+y*o+D*s+d*l,f=I[4],y=I[5],D=I[6],d=I[7],A[4]=f*t+y*r+D*i+d*c,A[5]=f*C+y*Q+D*E+d*u,A[6]=f*e+y*n+D*a+d*h,A[7]=f*B+y*o+D*s+d*l,f=I[8],y=I[9],D=I[10],d=I[11],A[8]=f*t+y*r+D*i+d*c,A[9]=f*C+y*Q+D*E+d*u,A[10]=f*e+y*n+D*a+d*h,A[11]=f*B+y*o+D*s+d*l,f=I[12],y=I[13],D=I[14],d=I[15],A[12]=f*t+y*r+D*i+d*c,A[13]=f*C+y*Q+D*E+d*u,A[14]=f*e+y*n+D*a+d*h,A[15]=f*B+y*o+D*s+d*l,A}function XA(A,g,I){var t,C,e,B,r,Q,n,o,i,E,a,s,c=I[0],u=I[1],h=I[2];return g===A?(A[12]=g[0]*c+g[4]*u+g[8]*h+g[12],A[13]=g[1]*c+g[5]*u+g[9]*h+g[13],A[14]=g[2]*c+g[6]*u+g[10]*h+g[14],A[15]=g[3]*c+g[7]*u+g[11]*h+g[15]):(t=g[0],C=g[1],e=g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=g[8],E=g[9],a=g[10],s=g[11],A[0]=t,A[1]=C,A[2]=e,A[3]=B,A[4]=r,A[5]=Q,A[6]=n,A[7]=o,A[8]=i,A[9]=E,A[10]=a,A[11]=s,A[12]=t*c+r*u+i*h+g[12],A[13]=C*c+Q*u+E*h+g[13],A[14]=e*c+n*u+a*h+g[14],A[15]=B*c+o*u+s*h+g[15]),A}function VA(A,g,I){var t=I[0],C=I[1],e=I[2];return A[0]=g[0]*t,A[1]=g[1]*t,A[2]=g[2]*t,A[3]=g[3]*t,A[4]=g[4]*C,A[5]=g[5]*C,A[6]=g[6]*C,A[7]=g[7]*C,A[8]=g[8]*e,A[9]=g[9]*e,A[10]=g[10]*e,A[11]=g[11]*e,A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function zA(A,g,I,t){var C,e,B,r,Q,n,o,i,E,a,s,c,u,h,l,f,y,D,d,w,G,p,N,M,F=t[0],R=t[1],Y=t[2],m=Math.sqrt(F*F+R*R+Y*Y);return m<kA?null:(F*=m=1/m,R*=m,Y*=m,C=Math.sin(I),B=1-(e=Math.cos(I)),r=g[0],Q=g[1],n=g[2],o=g[3],i=g[4],E=g[5],a=g[6],s=g[7],c=g[8],u=g[9],h=g[10],l=g[11],f=F*F*B+e,y=R*F*B+Y*C,D=Y*F*B-R*C,d=F*R*B-Y*C,w=R*R*B+e,G=Y*R*B+F*C,p=F*Y*B+R*C,N=R*Y*B-F*C,M=Y*Y*B+e,A[0]=r*f+i*y+c*D,A[1]=Q*f+E*y+u*D,A[2]=n*f+a*y+h*D,A[3]=o*f+s*y+l*D,A[4]=r*d+i*w+c*G,A[5]=Q*d+E*w+u*G,A[6]=n*d+a*w+h*G,A[7]=o*d+s*w+l*G,A[8]=r*p+i*N+c*M,A[9]=Q*p+E*N+u*M,A[10]=n*p+a*N+h*M,A[11]=o*p+s*N+l*M,g!==A&&(A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A)}function qA(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[4],B=g[5],r=g[6],Q=g[7],n=g[8],o=g[9],i=g[10],E=g[11];return g!==A&&(A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[4]=e*C+n*t,A[5]=B*C+o*t,A[6]=r*C+i*t,A[7]=Q*C+E*t,A[8]=n*C-e*t,A[9]=o*C-B*t,A[10]=i*C-r*t,A[11]=E*C-Q*t,A}function _A(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[0],B=g[1],r=g[2],Q=g[3],n=g[8],o=g[9],i=g[10],E=g[11];return g!==A&&(A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=e*C-n*t,A[1]=B*C-o*t,A[2]=r*C-i*t,A[3]=Q*C-E*t,A[8]=e*t+n*C,A[9]=B*t+o*C,A[10]=r*t+i*C,A[11]=Q*t+E*C,A}function $A(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[0],B=g[1],r=g[2],Q=g[3],n=g[4],o=g[5],i=g[6],E=g[7];return g!==A&&(A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=e*C+n*t,A[1]=B*C+o*t,A[2]=r*C+i*t,A[3]=Q*C+E*t,A[4]=n*C-e*t,A[5]=o*C-B*t,A[6]=i*C-r*t,A[7]=E*C-Q*t,A}function Ag(A,g){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=g[0],A[13]=g[1],A[14]=g[2],A[15]=1,A}function gg(A,g){return A[0]=g[0],A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=g[1],A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=g[2],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ig(A,g,I){var t,C,e,B=I[0],r=I[1],Q=I[2],n=Math.sqrt(B*B+r*r+Q*Q);return n<kA?null:(B*=n=1/n,r*=n,Q*=n,t=Math.sin(g),e=1-(C=Math.cos(g)),A[0]=B*B*e+C,A[1]=r*B*e+Q*t,A[2]=Q*B*e-r*t,A[3]=0,A[4]=B*r*e-Q*t,A[5]=r*r*e+C,A[6]=Q*r*e+B*t,A[7]=0,A[8]=B*Q*e+r*t,A[9]=r*Q*e-B*t,A[10]=Q*Q*e+C,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)}function tg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=t,A[6]=I,A[7]=0,A[8]=0,A[9]=-I,A[10]=t,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Cg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=t,A[1]=0,A[2]=-I,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=I,A[9]=0,A[10]=t,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function eg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=t,A[1]=I,A[2]=0,A[3]=0,A[4]=-I,A[5]=t,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Bg(A,g,I){var t=g[0],C=g[1],e=g[2],B=g[3],r=t+t,Q=C+C,n=e+e,o=t*r,i=t*Q,E=t*n,a=C*Q,s=C*n,c=e*n,u=B*r,h=B*Q,l=B*n;return A[0]=1-(a+c),A[1]=i+l,A[2]=E-h,A[3]=0,A[4]=i-l,A[5]=1-(o+c),A[6]=s+u,A[7]=0,A[8]=E+h,A[9]=s-u,A[10]=1-(o+a),A[11]=0,A[12]=I[0],A[13]=I[1],A[14]=I[2],A[15]=1,A}function rg(A,g){var I=new SA(3),t=-g[0],C=-g[1],e=-g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=t*t+C*C+e*e+B*B;return i>0?(I[0]=2*(r*B+o*t+Q*e-n*C)/i,I[1]=2*(Q*B+o*C+n*t-r*e)/i,I[2]=2*(n*B+o*e+r*C-Q*t)/i):(I[0]=2*(r*B+o*t+Q*e-n*C),I[1]=2*(Q*B+o*C+n*t-r*e),I[2]=2*(n*B+o*e+r*C-Q*t)),Bg(A,g,I),A}function Qg(A,g){return A[0]=g[12],A[1]=g[13],A[2]=g[14],A}function ng(A,g){var I=g[0],t=g[1],C=g[2],e=g[4],B=g[5],r=g[6],Q=g[8],n=g[9],o=g[10];return A[0]=Math.sqrt(I*I+t*t+C*C),A[1]=Math.sqrt(e*e+B*B+r*r),A[2]=Math.sqrt(Q*Q+n*n+o*o),A}function og(A,g){var I=new SA(3);ng(I,g);var t=1/I[0],C=1/I[1],e=1/I[2],B=g[0]*t,r=g[1]*C,Q=g[2]*e,n=g[4]*t,o=g[5]*C,i=g[6]*e,E=g[8]*t,a=g[9]*C,s=g[10]*e,c=B+o+s,u=0;return c>0?(u=2*Math.sqrt(c+1),A[3]=.25*u,A[0]=(i-a)/u,A[1]=(E-Q)/u,A[2]=(r-n)/u):B>o&&B>s?(u=2*Math.sqrt(1+B-o-s),A[3]=(i-a)/u,A[0]=.25*u,A[1]=(r+n)/u,A[2]=(E+Q)/u):o>s?(u=2*Math.sqrt(1+o-B-s),A[3]=(E-Q)/u,A[0]=(r+n)/u,A[1]=.25*u,A[2]=(i+a)/u):(u=2*Math.sqrt(1+s-B-o),A[3]=(r-n)/u,A[0]=(E+Q)/u,A[1]=(i+a)/u,A[2]=.25*u),A}function ig(A,g,I,t){g[0]=t[12],g[1]=t[13],g[2]=t[14];var C=t[0],e=t[1],B=t[2],r=t[4],Q=t[5],n=t[6],o=t[8],i=t[9],E=t[10];I[0]=Math.sqrt(C*C+e*e+B*B),I[1]=Math.sqrt(r*r+Q*Q+n*n),I[2]=Math.sqrt(o*o+i*i+E*E);var a=1/I[0],s=1/I[1],c=1/I[2],u=C*a,h=e*s,l=B*c,f=r*a,y=Q*s,D=n*c,d=o*a,w=i*s,G=E*c,p=u+y+G,N=0;return p>0?(N=2*Math.sqrt(p+1),A[3]=.25*N,A[0]=(D-w)/N,A[1]=(d-l)/N,A[2]=(h-f)/N):u>y&&u>G?(N=2*Math.sqrt(1+u-y-G),A[3]=(D-w)/N,A[0]=.25*N,A[1]=(h+f)/N,A[2]=(d+l)/N):y>G?(N=2*Math.sqrt(1+y-u-G),A[3]=(d-l)/N,A[0]=(h+f)/N,A[1]=.25*N,A[2]=(D+w)/N):(N=2*Math.sqrt(1+G-u-y),A[3]=(h-f)/N,A[0]=(d+l)/N,A[1]=(D+w)/N,A[2]=.25*N),A}function Eg(A,g,I,t){var C=g[0],e=g[1],B=g[2],r=g[3],Q=C+C,n=e+e,o=B+B,i=C*Q,E=C*n,a=C*o,s=e*n,c=e*o,u=B*o,h=r*Q,l=r*n,f=r*o,y=t[0],D=t[1],d=t[2];return A[0]=(1-(s+u))*y,A[1]=(E+f)*y,A[2]=(a-l)*y,A[3]=0,A[4]=(E-f)*D,A[5]=(1-(i+u))*D,A[6]=(c+h)*D,A[7]=0,A[8]=(a+l)*d,A[9]=(c-h)*d,A[10]=(1-(i+s))*d,A[11]=0,A[12]=I[0],A[13]=I[1],A[14]=I[2],A[15]=1,A}function ag(A,g,I,t,C){var e=g[0],B=g[1],r=g[2],Q=g[3],n=e+e,o=B+B,i=r+r,E=e*n,a=e*o,s=e*i,c=B*o,u=B*i,h=r*i,l=Q*n,f=Q*o,y=Q*i,D=t[0],d=t[1],w=t[2],G=C[0],p=C[1],N=C[2],M=(1-(c+h))*D,F=(a+y)*D,R=(s-f)*D,Y=(a-y)*d,m=(1-(E+h))*d,b=(u+l)*d,v=(s+f)*w,k=(u-l)*w,S=(1-(E+c))*w;return A[0]=M,A[1]=F,A[2]=R,A[3]=0,A[4]=Y,A[5]=m,A[6]=b,A[7]=0,A[8]=v,A[9]=k,A[10]=S,A[11]=0,A[12]=I[0]+G-(M*G+Y*p+v*N),A[13]=I[1]+p-(F*G+m*p+k*N),A[14]=I[2]+N-(R*G+b*p+S*N),A[15]=1,A}function sg(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=I+I,r=t+t,Q=C+C,n=I*B,o=t*B,i=t*r,E=C*B,a=C*r,s=C*Q,c=e*B,u=e*r,h=e*Q;return A[0]=1-i-s,A[1]=o+h,A[2]=E-u,A[3]=0,A[4]=o-h,A[5]=1-n-s,A[6]=a+c,A[7]=0,A[8]=E+u,A[9]=a-c,A[10]=1-n-i,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function cg(A,g,I,t,C,e,B){var r=1/(I-g),Q=1/(C-t),n=1/(e-B);return A[0]=2*e*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=2*e*Q,A[6]=0,A[7]=0,A[8]=(I+g)*r,A[9]=(C+t)*Q,A[10]=(B+e)*n,A[11]=-1,A[12]=0,A[13]=0,A[14]=B*e*2*n,A[15]=0,A}function ug(A,g,I,t,C){var e=1/Math.tan(g/2);if(A[0]=e/I,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=e,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=C&&C!==1/0){var B=1/(t-C);A[10]=(C+t)*B,A[14]=2*C*t*B}else A[10]=-1,A[14]=-2*t;return A}!function(A,g){for(var I in g)l(A,I,{get:g[I],enumerable:!0})}(LA,{add:function(){return Mg},adjoint:function(){return PA},clone:function(){return UA},copy:function(){return KA},create:function(){return HA},decompose:function(){return ig},determinant:function(){return WA},equals:function(){return bg},exactEquals:function(){return mg},frob:function(){return Ng},fromQuat:function(){return sg},fromQuat2:function(){return rg},fromRotation:function(){return Ig},fromRotationTranslation:function(){return Bg},fromRotationTranslationScale:function(){return Eg},fromRotationTranslationScaleOrigin:function(){return ag},fromScaling:function(){return gg},fromTranslation:function(){return Ag},fromValues:function(){return JA},fromXRotation:function(){return tg},fromYRotation:function(){return Cg},fromZRotation:function(){return eg},frustum:function(){return cg},getRotation:function(){return og},getScaling:function(){return ng},getTranslation:function(){return Qg},identity:function(){return jA},invert:function(){return xA},lookAt:function(){return wg},mul:function(){return vg},multiply:function(){return OA},multiplyScalar:function(){return Rg},multiplyScalarAndAdd:function(){return Yg},ortho:function(){return Dg},orthoNO:function(){return yg},orthoZO:function(){return dg},perspective:function(){return hg},perspectiveFromFieldOfView:function(){return fg},perspectiveNO:function(){return ug},perspectiveZO:function(){return lg},rotate:function(){return zA},rotateX:function(){return qA},rotateY:function(){return _A},rotateZ:function(){return $A},scale:function(){return VA},set:function(){return TA},str:function(){return pg},sub:function(){return kg},subtract:function(){return Fg},targetTo:function(){return Gg},translate:function(){return XA},transpose:function(){return ZA}});var hg=ug;function lg(A,g,I,t,C){var e=1/Math.tan(g/2);if(A[0]=e/I,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=e,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=C&&C!==1/0){var B=1/(t-C);A[10]=C*B,A[14]=C*t*B}else A[10]=-1,A[14]=-t;return A}function fg(A,g,I,t){var C=Math.tan(g.upDegrees*Math.PI/180),e=Math.tan(g.downDegrees*Math.PI/180),B=Math.tan(g.leftDegrees*Math.PI/180),r=Math.tan(g.rightDegrees*Math.PI/180),Q=2/(B+r),n=2/(C+e);return A[0]=Q,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=n,A[6]=0,A[7]=0,A[8]=-(B-r)*Q*.5,A[9]=(C-e)*n*.5,A[10]=t/(I-t),A[11]=-1,A[12]=0,A[13]=0,A[14]=t*I/(I-t),A[15]=0,A}function yg(A,g,I,t,C,e,B){var r=1/(g-I),Q=1/(t-C),n=1/(e-B);return A[0]=-2*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*Q,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=2*n,A[11]=0,A[12]=(g+I)*r,A[13]=(C+t)*Q,A[14]=(B+e)*n,A[15]=1,A}var Dg=yg;function dg(A,g,I,t,C,e,B){var r=1/(g-I),Q=1/(t-C),n=1/(e-B);return A[0]=-2*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*Q,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=n,A[11]=0,A[12]=(g+I)*r,A[13]=(C+t)*Q,A[14]=e*n,A[15]=1,A}function wg(A,g,I,t){var C,e,B,r,Q,n,o,i,E,a,s=g[0],c=g[1],u=g[2],h=t[0],l=t[1],f=t[2],y=I[0],D=I[1],d=I[2];return Math.abs(s-y)<kA&&Math.abs(c-D)<kA&&Math.abs(u-d)<kA?jA(A):(o=s-y,i=c-D,E=u-d,C=l*(E*=a=1/Math.sqrt(o*o+i*i+E*E))-f*(i*=a),e=f*(o*=a)-h*E,B=h*i-l*o,(a=Math.sqrt(C*C+e*e+B*B))?(C*=a=1/a,e*=a,B*=a):(C=0,e=0,B=0),r=i*B-E*e,Q=E*C-o*B,n=o*e-i*C,(a=Math.sqrt(r*r+Q*Q+n*n))?(r*=a=1/a,Q*=a,n*=a):(r=0,Q=0,n=0),A[0]=C,A[1]=r,A[2]=o,A[3]=0,A[4]=e,A[5]=Q,A[6]=i,A[7]=0,A[8]=B,A[9]=n,A[10]=E,A[11]=0,A[12]=-(C*s+e*c+B*u),A[13]=-(r*s+Q*c+n*u),A[14]=-(o*s+i*c+E*u),A[15]=1,A)}function Gg(A,g,I,t){var C=g[0],e=g[1],B=g[2],r=t[0],Q=t[1],n=t[2],o=C-I[0],i=e-I[1],E=B-I[2],a=o*o+i*i+E*E;a>0&&(o*=a=1/Math.sqrt(a),i*=a,E*=a);var s=Q*E-n*i,c=n*o-r*E,u=r*i-Q*o;return(a=s*s+c*c+u*u)>0&&(s*=a=1/Math.sqrt(a),c*=a,u*=a),A[0]=s,A[1]=c,A[2]=u,A[3]=0,A[4]=i*u-E*c,A[5]=E*s-o*u,A[6]=o*c-i*s,A[7]=0,A[8]=o,A[9]=i,A[10]=E,A[11]=0,A[12]=C,A[13]=e,A[14]=B,A[15]=1,A}function pg(A){return"mat4("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+", "+A[4]+", "+A[5]+", "+A[6]+", "+A[7]+", "+A[8]+", "+A[9]+", "+A[10]+", "+A[11]+", "+A[12]+", "+A[13]+", "+A[14]+", "+A[15]+")"}function Ng(A){return Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]+A[3]*A[3]+A[4]*A[4]+A[5]*A[5]+A[6]*A[6]+A[7]*A[7]+A[8]*A[8]+A[9]*A[9]+A[10]*A[10]+A[11]*A[11]+A[12]*A[12]+A[13]*A[13]+A[14]*A[14]+A[15]*A[15])}function Mg(A,g,I){return A[0]=g[0]+I[0],A[1]=g[1]+I[1],A[2]=g[2]+I[2],A[3]=g[3]+I[3],A[4]=g[4]+I[4],A[5]=g[5]+I[5],A[6]=g[6]+I[6],A[7]=g[7]+I[7],A[8]=g[8]+I[8],A[9]=g[9]+I[9],A[10]=g[10]+I[10],A[11]=g[11]+I[11],A[12]=g[12]+I[12],A[13]=g[13]+I[13],A[14]=g[14]+I[14],A[15]=g[15]+I[15],A}function Fg(A,g,I){return A[0]=g[0]-I[0],A[1]=g[1]-I[1],A[2]=g[2]-I[2],A[3]=g[3]-I[3],A[4]=g[4]-I[4],A[5]=g[5]-I[5],A[6]=g[6]-I[6],A[7]=g[7]-I[7],A[8]=g[8]-I[8],A[9]=g[9]-I[9],A[10]=g[10]-I[10],A[11]=g[11]-I[11],A[12]=g[12]-I[12],A[13]=g[13]-I[13],A[14]=g[14]-I[14],A[15]=g[15]-I[15],A}function Rg(A,g,I){return A[0]=g[0]*I,A[1]=g[1]*I,A[2]=g[2]*I,A[3]=g[3]*I,A[4]=g[4]*I,A[5]=g[5]*I,A[6]=g[6]*I,A[7]=g[7]*I,A[8]=g[8]*I,A[9]=g[9]*I,A[10]=g[10]*I,A[11]=g[11]*I,A[12]=g[12]*I,A[13]=g[13]*I,A[14]=g[14]*I,A[15]=g[15]*I,A}function Yg(A,g,I,t){return A[0]=g[0]+I[0]*t,A[1]=g[1]+I[1]*t,A[2]=g[2]+I[2]*t,A[3]=g[3]+I[3]*t,A[4]=g[4]+I[4]*t,A[5]=g[5]+I[5]*t,A[6]=g[6]+I[6]*t,A[7]=g[7]+I[7]*t,A[8]=g[8]+I[8]*t,A[9]=g[9]+I[9]*t,A[10]=g[10]+I[10]*t,A[11]=g[11]+I[11]*t,A[12]=g[12]+I[12]*t,A[13]=g[13]+I[13]*t,A[14]=g[14]+I[14]*t,A[15]=g[15]+I[15]*t,A}function mg(A,g){return A[0]===g[0]&&A[1]===g[1]&&A[2]===g[2]&&A[3]===g[3]&&A[4]===g[4]&&A[5]===g[5]&&A[6]===g[6]&&A[7]===g[7]&&A[8]===g[8]&&A[9]===g[9]&&A[10]===g[10]&&A[11]===g[11]&&A[12]===g[12]&&A[13]===g[13]&&A[14]===g[14]&&A[15]===g[15]}function bg(A,g){var I=A[0],t=A[1],C=A[2],e=A[3],B=A[4],r=A[5],Q=A[6],n=A[7],o=A[8],i=A[9],E=A[10],a=A[11],s=A[12],c=A[13],u=A[14],h=A[15],l=g[0],f=g[1],y=g[2],D=g[3],d=g[4],w=g[5],G=g[6],p=g[7],N=g[8],M=g[9],F=g[10],R=g[11],Y=g[12],m=g[13],b=g[14],v=g[15];return Math.abs(I-l)<=kA*Math.max(1,Math.abs(I),Math.abs(l))&&Math.abs(t-f)<=kA*Math.max(1,Math.abs(t),Math.abs(f))&&Math.abs(C-y)<=kA*Math.max(1,Math.abs(C),Math.abs(y))&&Math.abs(e-D)<=kA*Math.max(1,Math.abs(e),Math.abs(D))&&Math.abs(B-d)<=kA*Math.max(1,Math.abs(B),Math.abs(d))&&Math.abs(r-w)<=kA*Math.max(1,Math.abs(r),Math.abs(w))&&Math.abs(Q-G)<=kA*Math.max(1,Math.abs(Q),Math.abs(G))&&Math.abs(n-p)<=kA*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(o-N)<=kA*Math.max(1,Math.abs(o),Math.abs(N))&&Math.abs(i-M)<=kA*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(E-F)<=kA*Math.max(1,Math.abs(E),Math.abs(F))&&Math.abs(a-R)<=kA*Math.max(1,Math.abs(a),Math.abs(R))&&Math.abs(s-Y)<=kA*Math.max(1,Math.abs(s),Math.abs(Y))&&Math.abs(c-m)<=kA*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(u-b)<=kA*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(h-v)<=kA*Math.max(1,Math.abs(h),Math.abs(v))}var vg=OA,kg=Fg,Sg="#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}",Lg=function(A){return"precision highp float;\nuniform sampler2D mask;in vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {".concat(A,"}")},Hg="#version 300 es\nuniform sampler2D lastMask;\n".concat(Lg("highp float current = texture(mask, v_texCoord).r;\n highp float previous = texture(lastMask, v_texCoord).r;\n highp float diff = abs(current - previous);\n const float smoothFactor = 0.05; \n const float threshold = 0.3;\n highp float blendedMask = diff < threshold \n ? previous * (1.0 - smoothFactor) + current * smoothFactor \n : current;\n outColor = vec4(blendedMask,0.0,0.0, 1.0);"),"\n"),Ug="#version 300 es\n".concat(Lg(" vec2 o = 1.0 / vec2(textureSize(mask, 0)); \n float size = 3.0; \n int sizeDb = int(size*size);\n float samples[9];\n int idx = 0;\n float side = (size - 1.0) / 2.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n int index = int((x + 1.0) * size + (y + 1.0));\n samples[index] = texture(mask, sampleCoord).r;\n }\n }\n for (int i = 0; i < sizeDb - 1; i++) {\n for (int j = 0; j < sizeDb - 1 - i; j++) {\n if (samples[j] > samples[j + 1]) {\n float temp = samples[j];\n samples[j] = samples[j + 1];\n samples[j + 1] = temp;\n }\n }\n }\n float endR=samples[sizeDb/2]>0.5?1.0:0.0;\n outColor = vec4(endR, 0.0, 0.0, 1.0);"),"\n"),Kg="#version 300 es\n".concat(Lg(" vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float size = 3.0; \n float side = (size - 1.0) / 2.0;\n float stronglyEroded = 1.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);\n }\n }\n outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);"),"\n"),Jg=function(){return B(function A(){C(this,A),N(this,"gl"),N(this,"positionBuffer"),N(this,"texCoordBuffer"),N(this,"ratio"),N(this,"_tdProgram"),N(this,"_kcProgram"),N(this,"_mdProgram"),N(this,"_edgeProgram"),N(this,"_borderProgram"),N(this,"_lastMaskTexture")},[{key:"init",value:function(A,g,I,t){this.initParams(A,g,I,t),this.initPrograms()}},{key:"initParams",value:function(A,g,I,t){this.gl=A,this.positionBuffer=g,this.texCoordBuffer=I,this.ratio=t}},{key:"initPrograms",value:function(){this._tdProgram=this.createProgram(Sg,Hg,["mask","lastMask"]),this._mdProgram=this.createProgram(Sg,Ug,["mask"]),this._kcProgram=this.createProgram(Sg,Kg,["mask"]),this._borderProgram=this.createProgram(Sg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nuniform sampler2D originalMask;\nuniform sampler2D maskEdge;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_highThreshold = 0.9; \nfloat u_smoothSigma = 2.0; \nfloat u_featherRadius = 4.0; \nfloat balancedTransition(float value) {\n return value * value * (3.0 - 2.0 * value);\n}\nfloat hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {\n float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);\n if (edgeWeight < u_highThreshold * 0.8) {\n return texture(tex, uv).r; \n }\n float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);\n int kernelSize = int(ceil(2.5 * sigma)); \n float sum = 0.0;\n float weightSum = 0.0;\n for (int i = -kernelSize; i <= kernelSize; i++) {\n for (int j = -kernelSize; j <= kernelSize; j++) {\n vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;\n vec2 sampleUV = uv + offset;\n float sampleValue = texture(originalMask, sampleUV).r;\n float dist = length(vec2(i, j)) / float(kernelSize);\n float weight = 1.0 - balancedTransition(dist);\n sum += sampleValue * weight;\n weightSum += weight;\n }\n }\n return sum / weightSum;\n}\nvoid main() {\n vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));\n float edge = texture(maskEdge, v_texCoord).r;\n float centerValue = texture(mask, v_texCoord).r;\n float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);\n float finalAlpha;\n if (edge == 1.0) {\n finalAlpha = smoothedValue;\n } else if (centerValue > 0.70) {\n finalAlpha = 1.0;\n } else if (centerValue < 0.30) {\n finalAlpha = 0.0;\n } else {\n float t = balancedTransition((centerValue - 0.30));\n finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);\n }\n outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);\n}\n",["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(Sg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_gradientScale = 0.25;\nconst float SOBEL_KERNEL_X[9] = float[9](\n -1.0, 0.0, 1.0,\n -2.0, 0.0, 2.0,\n -1.0, 0.0, 1.0\n);\nconst float SOBEL_KERNEL_Y[9] = float[9](\n -1.0, -2.0, -1.0,\n 0.0, 0.0, 0.0,\n 1.0, 2.0, 1.0\n);\nfloat nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {\n vec2 dir = vec2(cos(angle), sin(angle));\n vec2 offset1 = dir * texelSize;\n vec2 offset2 = -dir * texelSize;\n float n1 = texture(mask, uv + offset1).r;\n float n2 = texture(mask, uv + offset2).r;\n return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;\n}\nvoid main() {\n vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float gx = 0.0, gy = 0.0;\n for (int i = -1; i <= 1; i++) {\n for (int j = -1; j <= 1; j++) {\n vec2 offset = vec2(float(i), float(j)) * o;\n float maskValue = texture(mask, v_texCoord + offset).r;\n int idx = (i+1)*3 + (j+1);\n gx += maskValue * SOBEL_KERNEL_X[idx];\n gy += maskValue * SOBEL_KERNEL_Y[idx];\n }\n }\n float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;\n float angle = atan(gy, gx);\n float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);\n float edge = nmsEdge > 0.0 ? 1.0 : 0.0;\n outColor = vec4(edge, 0.0, 0.0, 1.0);\n}\n",["mask"])}},{key:"setAttributes",value:function(){for(var A=this.gl,g=arguments.length,I=new Array(g),t=0;t<g;t++)I[t]=arguments[t];I.forEach(function(g,I){A.enableVertexAttribArray(I),A.bindBuffer(A.ARRAY_BUFFER,g),A.vertexAttribPointer(I,2,A.FLOAT,!1,0,0)})}},{key:"createShader",value:function(A,g){var I=this.gl,t=I.createShader(A);return I.shaderSource(t,g),I.compileShader(t),t}},{key:"createProgram",value:function(A,g,I){var t=this.gl,C=this.createShader(t.FRAGMENT_SHADER,g),e=this.createShader(t.VERTEX_SHADER,A),B=t.createProgram();if(t.attachShader(B,e),t.attachShader(B,C),t.linkProgram(B),!t.getProgramParameter(B,t.LINK_STATUS))throw new Error("".concat(t.getProgramInfoLog(B)));return t.useProgram(B),this.setAttributes(this.positionBuffer,this.texCoordBuffer),I.forEach(function(A,g){t.uniform1i(t.getUniformLocation(B,A),1+g)}),B}},{key:"createFramebuffer",value:function(A){var g=this.gl,I=g.createFramebuffer();return g.bindFramebuffer(g.FRAMEBUFFER,I),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,A,0),I}},{key:"getTempTexture",value:function(A,g){var I,t,C=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],e=arguments.length>3?arguments[3]:void 0,B=this.gl;B.useProgram(A),this.ratio===16/9?(I=640,t=360):(I=640,t=480);var r=B.createTexture();B.activeTexture(B.TEXTURE0),B.bindTexture(B.TEXTURE_2D,r),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MIN_FILTER,B.LINEAR),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MAG_FILTER,B.LINEAR),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_S,B.CLAMP_TO_EDGE),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_T,B.CLAMP_TO_EDGE),B.pixelStorei(B.PACK_ALIGNMENT,1),B.pixelStorei(B.UNPACK_ALIGNMENT,1),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,I,t,0,B.RGBA,B.UNSIGNED_BYTE,null);var Q=this.createFramebuffer(r);return g.forEach(function(A,g){A&&(B.activeTexture(B.TEXTURE1+g),B.bindTexture(B.TEXTURE_2D,A||null))}),this.setAttributes(this.positionBuffer,this.texCoordBuffer),B.viewport(0,0,I,t),B.drawArrays(B.TRIANGLE_STRIP,0,4),C&&g.forEach(function(A,g){A&&e!==g&&B.deleteTexture(A)}),B.deleteFramebuffer(Q),r}},{key:"postProcessing",value:function(A){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[A,this._lastMaskTexture]);for(var g=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1),I=0;I<3;I++){g=this.getTempTexture(this._mdProgram,[g]);var t=this.getTempTexture(this._edgeProgram,[g],!1);g=this.getTempTexture(this._borderProgram,[g,t,this._lastMaskTexture],!0,2)}return g}},{key:"close",value:function(){var A=this.gl;this._borderProgram&&A.deleteProgram(this._borderProgram),this._edgeProgram&&A.deleteProgram(this._edgeProgram),this._kcProgram&&A.deleteProgram(this._kcProgram),this._mdProgram&&A.deleteProgram(this._mdProgram),this._tdProgram&&A.deleteProgram(this._tdProgram)}}])}(),Tg=new Jg,jg={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Zg=570703,xg=0,Pg=function(){function A(g){C(this,A),this.core=g,N(this,"seq"),N(this,"_core"),N(this,"log"),N(this,"preLoadPromise"),N(this,"startResolve"),N(this,"startReject"),N(this,"mediaPipeSolutions"),N(this,"assetsPath"),N(this,"currentType"),N(this,"onAbort"),N(this,"isAborted",!1),xg+=1,this.seq=xg,this._core=g,this.log=g.log.createChild({id:"".concat(this.getAlias()).concat(xg)}),this.log.info("created"),g.assetsPath&&(this.preLoadPromise=this.preload(g.assetsPath))}return B(A,[{key:"preload",value:(r=I(o().m(function A(g){var I,t,C,e,B,r=this;return o().w(function(A){for(;;)switch(A.p=A.n){case 0:if(A.p=0,this._core.room.videoManager.Wasm){A.n=2;break}return A.n=1,b();case 1:this._core.room.videoManager.Wasm=A.v;case 2:return I=function(A){var g;r.core.kvStatManager.addEnum({key:Zg,value:r.getKVTypeValue(!1,r.isAborted,"ABORT_IN_INFERENCE")}),r.isAborted=!0,r.log.error("mediaPipeSolutions abort",A),r.core.clearStarted(r,r.getGroup()),r.stop(),null==(g=r.onAbort)||g.call(r,A)},this._core.room.videoManager.initVirtualBackground(I,LA,Tg),A.n=3,this._core.initVisionTaskRegistry(g,["ImageSegmenter"]);case 3:A.n=5;break;case 4:throw A.p=4,B=A.v,t=this._core.errorModule,C=t.RtcError,e=t.ErrorCode,new C({code:e.INVALID_OPERATION,message:"VirtualBackground preload error, please redeploy the assets of the npm package. detail: ".concat(B)});case 5:return A.a(2)}},A,this,[[0,4]])})),function(A){return r.apply(this,arguments)})},{key:"getName",value:function(){return A.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(A){switch(A){case"start":return g=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(I=p({},R),t={type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},f(I,y(t))),validate:function(A,I,t,C){var e,B=g.errorModule,r=B.RtcError,Q=B.ErrorCode,n=B.ErrorCodeDictionary;if(A){var o=A.type,i=A.src,E=A.onAbort;if("image"===o&&!i)throw new r({code:Q.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_REQUIRED,fnName:t,messageParams:{key:"src"}});if(E&&!g.utils.isFunction(E))throw new r({code:Q.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_TYPE,fnName:t,messageParams:{key:"onAbort",value:c(E),rule:{type:"Function"}}});if(!(null==(e=g.room.videoManager.cameraTrack)?void 0:e.mediaTrack))throw new r({code:Q.INVALID_OPERATION,extraCode:n.INVALID_OPERATION_NEED_VIDEO,fnName:t})}}};case"update":return function(A){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate:function(g,I,t,C){if(g){var e=A.errorModule,B=e.RtcError,r=e.ErrorCode,Q=e.ErrorCodeDictionary,n=g.type,o=g.src;if("image"===n&&!o)throw new B({code:r.INVALID_PARAMETER,extraCode:Q.INVALID_PARAMETER_REQUIRED,fnName:t,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var g,I,t}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var A=arguments.length>0&&void 0!==arguments[0]&&arguments[0],g=arguments.length>1&&void 0!==arguments[1]&&arguments[1],I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",t=0;switch(this.currentType){case"blur":t|=0;break;case"image":t|=1;break;case"color":t|=2}switch(A&&(t|=256),g&&(t|=512),I){case"ABORT_IN_INFERENCE":t|=4096;break;case"ABORT_IN_VIDEO_MANAGER":t|=8192;break;case"OTHER":t|=61440}return t}},{key:"hexToRgb",value:function(A){var g=A.replace("#","");return[parseInt(g.slice(0,2),16)/255,parseInt(g.slice(2,4),16)/255,parseInt(g.slice(4,6),16)/255]}},{key:"start",value:(e=I(o().m(function A(g){var I,t,C,e,B,r,Q,n,i,E,a,s,c,u=this;return o().w(function(A){for(;;)switch(A.n){case 0:return I=g.type,t=void 0===I?"blur":I,C=g.src,e=g.blurLevel,B=void 0===e?3:e,r=g.onAbort,this.currentType=t,this.onAbort=r,"color"===t&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.n=1,M({sdkAppId:g.sdkAppId,userId:g.userId,userSig:g.userSig,core:this._core});case 1:if(Q=A.v,n=Q.auth,i=this._core.errorModule,E=i.RtcError,a=i.ErrorCodeDictionary,s=i.ErrorCode,n){A.n=2;break}throw c=this._core.utils.isOverseaSdkAppId(g.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new E({code:a.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:c}});case 2:if(this.preLoadPromise){A.n=4;break}if(this._core.assetsPath){A.n=3;break}throw new E({code:s.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});case 3:this.preLoadPromise=this.preload(this._core.assetsPath);case 4:return A.n=5,this.preLoadPromise;case 5:return A.a(2,this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:C,blurLevel:B,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color,onAbort:function(A){var g;u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!0,u.isAborted,"ABORT_IN_VIDEO_MANAGER")}),u.isAborted=!0,u.core.clearStarted(u,u.getGroup()),u.stop(),delete u.preLoadPromise,null==(g=u.onAbort)||g.call(u,A)}}).then(function(){u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!1,u.isAborted,"NONE")})}).catch(function(A){throw u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!0,u.isAborted,"OTHER")}),A}))}},A,this)})),function(A){return e.apply(this,arguments)})},{key:"update",value:(t=I(o().m(function A(g){var I,t,C=this;return o().w(function(A){for(;;)if(0===A.n)return I=g.type,t=g.src,I!==this.currentType&&(this.currentType=I),"color"===I&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.a(2,this.core.room.videoManager.setVirtualBackground({type:I,imageUrl:t,blurLevel:g.blurLevel,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color}).then(function(){C.core.kvStatManager.addEnum({key:Zg,value:C.getKVTypeValue(!1,!1,"NONE")})}).catch(function(){C.core.kvStatManager.addEnum({key:Zg,value:C.getKVTypeValue(!0,!1,"OTHER")})}))},A,this)})),function(A){return t.apply(this,arguments)})},{key:"stop",value:(g=I(o().m(function A(){return o().w(function(A){for(;;)if(0===A.n)return A.a(2,this.core.room.videoManager.setVirtualBackground())},A,this)})),function(){return g.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(RA<90)return!1;var A=document.createElement("canvas").getContext("webgl2",jg);return!!(A&&A instanceof WebGL2RenderingContext)}}]);var g,t,e,r}();return N(Pg,"Name","VirtualBackground"),Pg});
3
+ var A,g,I="function"==typeof Symbol?Symbol:{},t=I.iterator||"@@iterator",C=I.toStringTag||"@@toStringTag";function e(I,t,C,e){var Q=t&&t.prototype instanceof r?t:r,n=Object.create(Q.prototype);return i(n,"_invoke",function(I,t,C){var e,r,Q,n=0,o=C||[],i=!1,E={p:0,n:0,v:A,a:a,f:a.bind(A,4),d:function(g,I){return e=g,r=0,Q=A,E.n=I,B}};function a(I,t){for(r=I,Q=t,g=0;!i&&n&&!C&&g<o.length;g++){var C,e=o[g],a=E.p,s=e[2];I>3?(C=s===t)&&(Q=e[(r=e[4])?5:(r=3,3)],e[4]=e[5]=A):e[0]<=a&&((C=I<2&&a<e[1])?(r=0,E.v=t,E.n=e[1]):a<s&&(C=I<3||e[0]>t||t>s)&&(e[4]=I,e[5]=t,E.n=s,r=0))}if(C||I>1)return B;throw i=!0,t}return function(C,o,s){if(n>1)throw TypeError("Generator is already running");for(i&&1===o&&a(o,s),r=o,Q=s;(g=r<2?A:Q)||!i;){e||(r?r<3?(r>1&&(E.n=-1),a(r,Q)):E.n=Q:E.v=Q);try{if(n=2,e){if(r||(C="next"),g=e[C]){if(!(g=g.call(e,Q)))throw TypeError("iterator result is not an object");if(!g.done)return g;Q=g.value,r<2&&(r=0)}else 1===r&&(g=e.return)&&g.call(e),r<2&&(Q=TypeError("The iterator does not provide a '"+C+"' method"),r=1);e=A}else if((g=(i=E.n<0)?Q:I.call(t,E))!==B)break}catch(g){e=A,r=1,Q=g}finally{n=1}}return{value:g,done:i}}}(I,C,e),!0),n}var B={};function r(){}function Q(){}function n(){}g=Object.getPrototypeOf;var E=[][t]?g(g([][t]())):(i(g={},t,function(){return this}),g),a=n.prototype=r.prototype=Object.create(E);function s(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,n):(A.__proto__=n,i(A,C,"GeneratorFunction")),A.prototype=Object.create(a),A}return Q.prototype=n,i(a,"constructor",n),i(n,"constructor",Q),Q.displayName="GeneratorFunction",i(n,C,"GeneratorFunction"),i(a),i(a,C,"Generator"),i(a,t,function(){return this}),i(a,"toString",function(){return"[object Generator]"}),(o=function(){return{w:e,m:s}})()}function i(A,g,I,t){var C=Object.defineProperty;try{C({},"",{})}catch(A){C=0}i=function(A,g,I,t){function e(g,I){i(A,g,function(A){return this._invoke(g,I,A)})}g?C?C(A,g,{value:I,enumerable:!t,configurable:!t,writable:!t}):A[g]=I:(e("next",0),e("throw",1),e("return",2))},i(A,g,I,t)}function E(A,g){return E=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(A,g){return A.__proto__=g,A},E(A,g)}function a(A,g){return function(A){if(Array.isArray(A))return A}(A)||function(A,g){var I=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=I){var t,C,e,B,r=[],Q=!0,n=!1;try{if(e=(I=I.call(A)).next,0===g);else for(;!(Q=(t=e.call(I)).done)&&(r.push(t.value),r.length!==g);Q=!0);}catch(A){n=!0,C=A}finally{try{if(!Q&&null!=I.return&&(B=I.return(),Object(B)!==B))return}finally{if(n)throw C}}return r}}(A,g)||u(A,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(A){var g=function(A,g){if("object"!=typeof A||!A)return A;var I=A[Symbol.toPrimitive];if(void 0!==I){var t=I.call(A,g);if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(A)}(A,"string");return"symbol"==typeof g?g:g+""}function c(A){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},c(A)}function u(g,I){if(g){if("string"==typeof g)return A(g,I);var t={}.toString.call(g).slice(8,-1);return"Object"===t&&g.constructor&&(t=g.constructor.name),"Map"===t||"Set"===t?Array.from(g):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A(g,I):void 0}}function h(A){var g="function"==typeof Map?new Map:void 0;return h=function(A){if(null===A||!function(A){try{return-1!==Function.toString.call(A).indexOf("[native code]")}catch(g){return"function"==typeof A}}(A))return A;if("function"!=typeof A)throw new TypeError("Super expression must either be null or a function");if(void 0!==g){if(g.has(A))return g.get(A);g.set(A,I)}function I(){return function(A,g,I){if(n())return Reflect.construct.apply(null,arguments);var t=[null];t.push.apply(t,g);var C=new(A.bind.apply(A,t));return I&&E(C,I.prototype),C}(A,arguments,r(this).constructor)}return I.prototype=Object.create(A.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),E(I,A)},h(A)}var l=Object.defineProperty,f=Object.defineProperties,y=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,G=function(A,g,I){return g in A?l(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I},N=function(A,g){for(var I in g||(g={}))d.call(g,I)&&G(A,I,g[I]);if(D){var t,C=function(A,g){var I="undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(!I){if(Array.isArray(A)||(I=u(A))||g){I&&(A=I);var t=0,C=function(){};return{s:C,n:function(){return t>=A.length?{done:!0}:{done:!1,value:A[t++]}},e:function(A){throw A},f:C}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var e,B=!0,r=!1;return{s:function(){I=I.call(A)},n:function(){var A=I.next();return B=A.done,A},e:function(A){r=!0,e=A},f:function(){try{B||null==I.return||I.return()}finally{if(r)throw e}}}}(D(g));try{for(C.s();!(t=C.n()).done;){I=t.value;w.call(g,I)&&G(A,I,g[I])}}catch(A){C.e(A)}finally{C.f()}}return A},p=function(A,g,I){return G(A,"symbol"!==c(g)?g+"":g,I)};function M(A){return F.apply(this,arguments)}function F(){return(F=I(o().m(function A(g){var I,t,C,e,B,r,Q,n,i;return o().w(function(A){for(;;)switch(A.p=A.n){case 0:return I=g.sdkAppId,t=g.userId,C=g.userSig,e=g.core,r=Math.round((new Date).getTime()/1e3),A.p=1,A.n=2,e.schedule.getAbilityConfig(I,e.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:I,userId:t,userSig:C,timestamp:r});case 2:if(Q=A.v,e.log.info("virtual background ability response: ".concat(JSON.stringify(Q))),n=Q.data,!(null==(B=null==n?void 0:n.trtcAutoConf)?void 0:B.web_ar)){A.n=3;break}return A.a(2,{auth:!0,timestamp:r});case 3:return A.a(2,{auth:!1});case 4:return A.p=4,i=A.v,e.log.error("virtual background fetch error",i),A.a(2,{auth:!1})}},A,null,[[1,4]])}))).apply(this,arguments)}var R={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var m,v=(m="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(){var A,g,I=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=I;e.ready=new Promise(function(I,t){A=I,g=t});var r=Object.assign({},e),n="";"undefined"!=typeof document&&document.currentScript&&(n=document.currentScript.src),m&&(n=m),n=0!==n.indexOf("blob:")?n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var o,i,E=e.print||console.log.bind(console),a=e.printErr||console.error.bind(console);function s(A){if(U(A))return function(A){for(var g=atob(A),I=new Uint8Array(g.length),t=0;t<g.length;++t)I[t]=g.charCodeAt(t);return I}(A.slice(H.length))}Object.assign(e,r),r=null,e.arguments&&e.arguments,e.thisProgram&&e.thisProgram,e.quit&&e.quit,e.wasmBinary&&(o=e.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":c(WebAssembly))&&k("no native wasm support detected");var u,l,f,y,D,d,w,G,N=!1,p=[],M=[],F=[];function R(A){p.unshift(A)}function v(A){F.unshift(A)}var Y=0,b=null;function k(A){e.onAbort&&e.onAbort(A),a(A="Aborted("+A+")"),N=!0,A+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(A);throw g(I),I}var S,L,H="data:application/octet-stream;base64,",U=function(A){return A.startsWith(H)};function K(A){return Promise.resolve().then(function(){return function(A){if(A==S&&o)return new Uint8Array(o);var g=s(A);if(g)return g;throw"both async and sync fetching of the wasm failed"}(A)})}function J(A,g,I,t){return function(A,g,I){return K(A).then(function(A){return WebAssembly.instantiate(A,g)}).then(function(A){return A}).then(I,function(A){a("failed to asynchronously prepare wasm: ".concat(A)),k(A)})}(g,I,t)}U(S="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRB8MoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEHo3gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFBjM0AECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRB1M8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEHUzwAgAkEIahAHNgIEIABB1NUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUHMLSACQQhqEAc2AgQgAUHU1QA2AgAgAUEBNgIcIAFB1NUANgIYIAFBATYCFCABQdTVADYCECABQQE2AgwgAUHU1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJB1NUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9B6N4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9B6N4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABBnNAAIAJBCGoQBzYCBCAAQdTVADYCACACQRBqJAALC/NKFQBBgAgLhCZzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBtYXgoc21vb3RoQ29sb3IsIHZlYzMoMC4wKSk7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICB1bmlmb3JtIG1hdDQgdV9vZmZzZXRNYXRyaXg7CiAgICB1bmlmb3JtIHZlYzMgdV9jb2xvcjsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5yPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgICAgdmVjMiBvZmZzZXRNYXNrVVYgPSAodV9vZmZzZXRNYXRyaXggKiB2ZWM0KGMsIDAsIDEpKS54eTsKICAgICAgZmxvYXQgaXNJbnNpZGVYID0gKG9mZnNldE1hc2tVVi54ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi54IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlWSA9IChvZmZzZXRNYXNrVVYueSA+PSAwLjApICYmIChvZmZzZXRNYXNrVVYueSA8PSAxLjApID8gMS4wIDogMC4wOwogICAgICBmbG9hdCBpc0luc2lkZSA9IGlzSW5zaWRlWCAqIGlzSW5zaWRlWTsKICAgICAgZmxvYXQgbWFza2VkQWxwaGEgPSB0ZXh0dXJlKG1hc2ssIG9mZnNldE1hc2tVVikuciAqIGlzSW5zaWRlOwogICAgICBtYXNrZWRBbHBoYSA9IG1hc2tlZEFscGhhPDAuNT8yLjAqbWFza2VkQWxwaGEqbWFza2VkQWxwaGE6MS4wLTIuMCooMS4wLW1hc2tlZEFscGhhKSooMS4wLW1hc2tlZEFscGhhKTsKICAgICAgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgb2Zmc2V0TWFza1VWICwgaXNJbnNpZGUpOwogICAgICBvdXRDb2xvciA9IG1peCh0ZXh0dXJlKGJnLCBjKSwgc3JjX2NvbG9yLCBtYXNrZWRBbHBoYSk7CiAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykucjsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQodV9jb2xvciwxLjApLHNyY19jb2xvcixhKTsKADZBbGxJbjEAAIAoAABfFgAAUDZBbGxJbjEAAAAABCkAAHAWAAAAAAAAaBYAAFBLNkFsbEluMQAAAAQpAACMFgAAAQAAAGgWAABpaQB2AHZpAHwWAADMFgAATjEwZW1zY3JpcHRlbjN2YWxFAACAKAAAuBYAAGlpaQB2aWlpAAAAALwnAAB8FgAAcCgAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkZABBkC4LyAi8JwAAfBYAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkALwnAAB8FgAAdmlpALwnAADMFgAAzBYAAHwWAADMFgAAHCgAALwnAADMFgAAoBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACAKAAAYBcAAMwWAAC8JwAAzBYAAMwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAgCgAALgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAgCgAAAAYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAIAoAABIGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFj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")||(L=S,S=e.locateFile?e.locateFile(L,n):n+L);var T=function(A){for(;A.length>0;)A.shift()(e)};function j(A){this.excPtr=A,this.ptr=A-24,this.set_type=function(A){d[this.ptr+4>>2]=A},this.get_type=function(){return d[this.ptr+4>>2]},this.set_destructor=function(A){d[this.ptr+8>>2]=A},this.get_destructor=function(){return d[this.ptr+8>>2]},this.set_caught=function(A){A=A?1:0,u[this.ptr+12|0]=A},this.get_caught=function(){return 0!=u[this.ptr+12|0]},this.set_rethrown=function(A){A=A?1:0,u[this.ptr+13|0]=A},this.get_rethrown=function(){return 0!=u[this.ptr+13|0]},this.init=function(A,g){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(g)},this.set_adjusted_ptr=function(A){d[this.ptr+16>>2]=A},this.get_adjusted_ptr=function(){return d[this.ptr+16>>2]},this.get_exception_ptr=function(){if(yg(this.get_type()))return d[this.excPtr>>2];var A=this.get_adjusted_ptr();return 0!==A?A:this.excPtr}}e.noExitRuntime;var Z,x,P,W=function(A){for(var g="",I=A;l[I];)g+=Z[l[I++]];return g},O={},V={},X={},z=function(A){throw new x(A)},q=function(A){throw new P(A)},_=function(A,g,I){function t(g){var t=I(g);t.length!==A.length&&q("Mismatched type converter count");for(var C=0;C<A.length;++C)$(A[C],t[C])}A.forEach(function(A){X[A]=g});var C=new Array(g.length),e=[],B=0;g.forEach(function(A,g){V.hasOwnProperty(A)?C[g]=V[A]:(e.push(A),O.hasOwnProperty(A)||(O[A]=[]),O[A].push(function(){C[g]=V[A],++B===e.length&&t(C)}))}),0===e.length&&t(C)};function $(A,g){var I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(A,g){var I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=g.name;if(A||z('type "'.concat(t,'" must have a positive integer typeid pointer')),V.hasOwnProperty(A)){if(I.ignoreDuplicateRegistrations)return;z("Cannot register type '".concat(t,"' twice"))}if(V[A]=g,delete X[A],O.hasOwnProperty(A)){var C=O[A];delete O[A],C.forEach(function(A){return A()})}}(A,g,I)}var AA,gA=function(A){z(A.$$.ptrType.registeredClass.name+" instance already deleted")},IA=!1,tA=function(A){},CA=function(A){A.count.value-=1,0===A.count.value&&function(A){A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)}(A)},eA=function(A,g,I){if(g===I)return A;if(void 0===I.baseClass)return null;var t=eA(A,g,I.baseClass);return null===t?null:I.downcast(t)},BA={},rA=function(){return Object.keys(EA).length},QA=function(){var A=[];for(var g in EA)EA.hasOwnProperty(g)&&A.push(EA[g]);return A},nA=[],oA=function(){for(;nA.length;){var A=nA.pop();A.$$.deleteScheduled=!1,A.delete()}},iA=function(A){AA=A,nA.length&&AA&&AA(oA)},EA={},aA=function(A,g){return g=function(A,g){for(void 0===g&&z("ptr should not be undefined");A.baseClass;)g=A.upcast(g),A=A.baseClass;return g}(A,g),EA[g]},sA=function(A,g){return g.ptrType&&g.ptr||q("makeClassHandle requires ptr and ptrType"),!!g.smartPtrType!=!!g.smartPtr&&q("Both smartPtrType and smartPtr must be specified"),g.count={value:1},uA(Object.create(A,{$$:{value:g}}))};function cA(A){var g=this.getPointee(A);if(!g)return this.destructor(A),null;var I=aA(this.registeredClass,g);if(void 0!==I){if(0===I.$$.count.value)return I.$$.ptr=g,I.$$.smartPtr=A,I.clone();var t=I.clone();return this.destructor(A),t}function C(){return this.isSmartPointer?sA(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:A}):sA(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var e,B=this.registeredClass.getActualType(g),r=BA[B];if(!r)return C.call(this);e=this.isConst?r.constPointerType:r.pointerType;var Q=eA(g,this.registeredClass,e.registeredClass);return null===Q?C.call(this):this.isSmartPointer?sA(e.registeredClass.instancePrototype,{ptrType:e,ptr:Q,smartPtrType:this,smartPtr:A}):sA(e.registeredClass.instancePrototype,{ptrType:e,ptr:Q})}var uA=function(A){return"undefined"==typeof FinalizationRegistry?(uA=function(A){return A},A):(IA=new FinalizationRegistry(function(A){CA(A.$$)}),tA=function(A){return IA.unregister(A)},(uA=function(A){var g=A.$$;if(g.smartPtr){var I={$$:g};IA.register(A,I,A)}return A})(A))};function hA(){}var lA=function(A,g){return Object.defineProperty(g,"name",{value:A})},fA=function(A,g,I){if(void 0===A[g].overloadTable){var t=A[g];A[g]=function(){return A[g].overloadTable.hasOwnProperty(arguments.length)||z("Function '".concat(I,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(A[g].overloadTable,")!")),A[g].overloadTable[arguments.length].apply(this,arguments)},A[g].overloadTable=[],A[g].overloadTable[t.argCount]=t}};function yA(A,g,I,t,C,e,B,r){this.name=A,this.constructor=g,this.instancePrototype=I,this.rawDestructor=t,this.baseClass=C,this.getActualType=e,this.upcast=B,this.downcast=r,this.pureVirtualFunctions=[]}var DA=function(A,g,I){for(;g!==I;)g.upcast||z("Expected null or instance of ".concat(I.name,", got an instance of ").concat(g.name)),A=g.upcast(A),g=g.baseClass;return A};function dA(A,g){if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),0;g.$$||z('Cannot pass "'.concat(VA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name));var I=g.$$.ptrType.registeredClass;return DA(g.$$.ptr,I,this.registeredClass)}function wA(A,g){var I;if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),this.isSmartPointer?(I=this.rawConstructor(),null!==A&&A.push(this.rawDestructor,I),I):0;g.$$||z('Cannot pass "'.concat(VA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&g.$$.ptrType.isConst&&z("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));var t=g.$$.ptrType.registeredClass;if(I=DA(g.$$.ptr,t,this.registeredClass),this.isSmartPointer)switch(void 0===g.$$.smartPtr&&z("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?I=g.$$.smartPtr:z("Cannot convert argument of type ".concat(g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name," to parameter type ").concat(this.name));break;case 1:I=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)I=g.$$.smartPtr;else{var C=g.clone();I=this.rawShare(I,ZA.toHandle(function(){return C.delete()})),null!==A&&A.push(this.rawDestructor,I)}break;default:z("Unsupporting sharing policy")}return I}function GA(A,g){if(null===g)return this.isReference&&z("null is not a valid ".concat(this.name)),0;g.$$||z('Cannot pass "'.concat(VA(g),'" as a ').concat(this.name)),g.$$.ptr||z("Cannot pass deleted object as a pointer of type ".concat(this.name)),g.$$.ptrType.isConst&&z("Cannot convert argument of type ".concat(g.$$.ptrType.name," to parameter type ").concat(this.name));var I=g.$$.ptrType.registeredClass;return DA(g.$$.ptr,I,this.registeredClass)}function NA(A){return this.fromWireType(d[A>>2])}function pA(A,g,I,t,C,e,B,r,Q,n,o){this.name=A,this.registeredClass=g,this.isReference=I,this.isConst=t,this.isSmartPointer=C,this.pointeeType=e,this.sharingPolicy=B,this.rawGetPointee=r,this.rawConstructor=Q,this.rawShare=n,this.rawDestructor=o,C||void 0!==g.baseClass?this.toWireType=wA:t?(this.toWireType=dA,this.destructorFunction=null):(this.toWireType=GA,this.destructorFunction=null)}var MA,FA,RA=[],mA=function(A){var g=RA[A];return g||(A>=RA.length&&(RA.length=A+1),RA[A]=g=MA.get(A)),g},vA=function(A,g,I){return A.includes("j")?function(A,g,I){var t=e["dynCall_"+A];return I&&I.length?t.apply(null,[g].concat(I)):t.call(null,g)}(A,g,I):mA(g).apply(null,I)},YA=function(A,g){var I,t,C,e=(A=W(A)).includes("j")?(I=A,t=g,C=[],function(){return C.length=0,Object.assign(C,arguments),vA(I,t,C)}):mA(g);return"function"!=typeof e&&z("unknown function pointer with signature ".concat(A,": ").concat(g)),e},bA=function(A){var g=lg(A),I=W(g);return fg(g),I},kA=function(A,g){var I=[],t={};throw g.forEach(function A(g){t[g]||V[g]||(X[g]?X[g].forEach(A):(I.push(g),t[g]=!0))}),new FA("".concat(A,": ")+I.map(bA).join([", "]))},SA=function(A,g){for(var I=[],t=0;t<A;t++)I.push(d[g+4*t>>2]);return I},LA=function(A){for(;A.length;){var g=A.pop();A.pop()(g)}};function HA(A,g,I,t,C,e){var B=g.length;B<2&&z("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==g[1]&&null!==I,Q=!1,n=1;n<g.length;++n)if(null!==g[n]&&void 0===g[n].destructorFunction){Q=!0;break}var o="void"!==g[0].name,i=B-2,E=new Array(i),a=[],s=[];return lA(A,function(){var I;arguments.length!==i&&z("function ".concat(A," called with ").concat(arguments.length," arguments, expected ").concat(i)),s.length=0,a.length=r?2:1,a[0]=C,r&&(I=g[1].toWireType(s,this),a[1]=I);for(var e=0;e<i;++e)E[e]=g[e+2].toWireType(s,arguments[e]),a.push(E[e]);return function(A){if(Q)LA(s);else for(var t=r?1:2;t<g.length;t++){var C=1===t?I:E[t-2];null!==g[t].destructorFunction&&g[t].destructorFunction(C)}if(o)return g[0].fromWireType(A)}(t.apply(null,a))})}var UA=function(A,g,I){return A instanceof Object||z("".concat(I,' with invalid "this": ').concat(A)),A instanceof g.registeredClass.constructor||z("".concat(I,' incompatible with "this" of type ').concat(A.constructor.name)),A.$$.ptr||z("cannot call emscripten binding method ".concat(I," on deleted object")),DA(A.$$.ptr,A.$$.ptrType.registeredClass,g.registeredClass)};function KA(){this.allocated=[void 0],this.freelist=[]}var JA=new KA,TA=function(A){A>=JA.reserved&&0===--JA.get(A).refcount&&JA.free(A)},jA=function(){for(var A=0,g=JA.reserved;g<JA.allocated.length;++g)void 0!==JA.allocated[g]&&++A;return A},ZA={toValue:function(A){return A||z("Cannot use deleted val. handle = "+A),JA.get(A).value},toHandle:function(A){switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return JA.allocate({refcount:1,value:A})}}};function xA(A){return this.fromWireType(D[A>>2])}var PA,WA,OA,VA=function(A){if(null===A)return"null";var g=c(A);return"object"===g||"array"===g||"function"===g?A.toString():""+A},XA=function(A,g){switch(g){case 4:return function(A){return this.fromWireType(w[A>>2])};case 8:return function(A){return this.fromWireType(G[A>>3])};default:throw new TypeError("invalid float width (".concat(g,"): ").concat(A))}},zA=function(A,g,I){switch(g){case 1:return I?function(A){return u[0|A]}:function(A){return l[0|A]};case 2:return I?function(A){return f[A>>1]}:function(A){return y[A>>1]};case 4:return I?function(A){return D[A>>2]}:function(A){return d[A>>2]};default:throw new TypeError("invalid integer width (".concat(g,"): ").concat(A))}},qA="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,_A=function(A,g,I){for(var t=g+I,C=g;A[C]&&!(C>=t);)++C;if(C-g>16&&A.buffer&&qA)return qA.decode(A.subarray(g,C));for(var e="";g<C;){var B=A[g++];if(128&B){var r=63&A[g++];if(192!=(224&B)){var Q=63&A[g++];if((B=224==(240&B)?(15&B)<<12|r<<6|Q:(7&B)<<18|r<<12|Q<<6|63&A[g++])<65536)e+=String.fromCharCode(B);else{var n=B-65536;e+=String.fromCharCode(55296|n>>10,56320|1023&n)}}else e+=String.fromCharCode((31&B)<<6|r)}else e+=String.fromCharCode(B)}return e},$A=function(A,g){return A?_A(l,A,g):""},Ag="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,gg=function(A,g){for(var I=A,t=I>>1,C=t+g/2;!(t>=C)&&y[t];)++t;if((I=t<<1)-A>32&&Ag)return Ag.decode(l.subarray(A,I));for(var e="",B=0;!(B>=g/2);++B){var r=f[A+2*B>>1];if(0==r)break;e+=String.fromCharCode(r)}return e},Ig=function(A,g,I){if(void 0===I&&(I=2147483647),I<2)return 0;for(var t=g,C=(I-=2)<2*A.length?I/2:A.length,e=0;e<C;++e){var B=A.charCodeAt(e);f[g>>1]=B,g+=2}return f[g>>1]=0,g-t},tg=function(A){return 2*A.length},Cg=function(A,g){for(var I=0,t="";!(I>=g/4);){var C=D[A+4*I>>2];if(0==C)break;if(++I,C>=65536){var e=C-65536;t+=String.fromCharCode(55296|e>>10,56320|1023&e)}else t+=String.fromCharCode(C)}return t},eg=function(A,g,I){if(void 0===I&&(I=2147483647),I<4)return 0;for(var t=g,C=t+I-4,e=0;e<A.length;++e){var B=A.charCodeAt(e);if(B>=55296&&B<=57343&&(B=65536+((1023&B)<<10)|1023&A.charCodeAt(++e)),D[g>>2]=B,(g+=4)+4>C)break}return D[g>>2]=0,g-t},Bg=function(A){for(var g=0,I=0;I<A.length;++I){var t=A.charCodeAt(I);t>=55296&&t<=57343&&++I,g+=4}return g},rg=function(A,g){var I=V[A];return void 0===I&&z(g+" has unknown type "+bA(A)),I},Qg=function(A,g,I){var t=[],C=A.toWireType(t,I);return t.length&&(d[g>>2]=ZA.toHandle(t)),C},ng={},og=[],ig=Reflect.construct,Eg=[null,[],[]],ag=function(A,g){var I=Eg[A];0===g||10===g?((1===A?E:a)(_A(I,0)),I.length=0):I.push(g)};!function(){for(var A=new Array(256),g=0;g<256;++g)A[g]=String.fromCharCode(g);Z=A}(),x=e.BindingError=function(A){function g(A){var I;return C(this,g),(I=t(this,g,[A])).name="BindingError",I}return Q(g,A),B(g)}(h(Error)),P=e.InternalError=function(A){function g(A){var I;return C(this,g),(I=t(this,g,[A])).name="InternalError",I}return Q(g,A),B(g)}(h(Error)),Object.assign(hA.prototype,{isAliasOf:function(A){if(!(this instanceof hA))return!1;if(!(A instanceof hA))return!1;var g=this.$$.ptrType.registeredClass,I=this.$$.ptr;A.$$=A.$$;for(var t=A.$$.ptrType.registeredClass,C=A.$$.ptr;g.baseClass;)I=g.upcast(I),g=g.baseClass;for(;t.baseClass;)C=t.upcast(C),t=t.baseClass;return g===t&&I===C},clone:function(){if(this.$$.ptr||gA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var A,g=uA(Object.create(Object.getPrototypeOf(this),{$$:{value:(A=this.$$,{count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType})}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g},delete:function(){this.$$.ptr||gA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&z("Object already scheduled for deletion"),tA(this),CA(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||gA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&z("Object already scheduled for deletion"),nA.push(this),1===nA.length&&AA&&AA(oA),this.$$.deleteScheduled=!0,this}}),e.getInheritedInstanceCount=rA,e.getLiveInheritedInstances=QA,e.flushPendingDeletes=oA,e.setDelayFunction=iA,Object.assign(pA.prototype,{getPointee:function(A){return this.rawGetPointee&&(A=this.rawGetPointee(A)),A},destructor:function(A){this.rawDestructor&&this.rawDestructor(A)},argPackAdvance:8,readValueFromPointer:NA,deleteObject:function(A){null!==A&&A.delete()},fromWireType:cA}),FA=e.UnboundTypeError=(PA=Error,(OA=lA(WA="UnboundTypeError",function(A){this.name=WA,this.message=A;var g=new Error(A).stack;void 0!==g&&(this.stack=this.toString()+"\n"+g.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(PA.prototype),OA.prototype.constructor=OA,OA.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},OA),Object.assign(KA.prototype,{get:function(A){return this.allocated[A]},has:function(A){return void 0!==this.allocated[A]},allocate:function(A){var g=this.freelist.pop()||this.allocated.length;return this.allocated[g]=A,g},free:function(A){this.allocated[A]=void 0,this.freelist.push(A)}}),JA.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),JA.reserved=JA.allocated.length,e.count_emval_handles=jA;var sg,cg={w:function(A,g,I){throw new j(A).init(g,I),A},q:function(A,g,I,t,C){},u:function(A,g,I,t){$(A,{name:g=W(g),fromWireType:function(A){return!!A},toWireType:function(A,g){return g?I:t},argPackAdvance:8,readValueFromPointer:function(A){return this.fromWireType(l[A])},destructorFunction:null})},y:function(A,g,I,t,C,B,r,Q,n,o,i,E,a){i=W(i),B=YA(C,B),Q&&(Q=YA(r,Q)),o&&(o=YA(n,o)),a=YA(E,a);var s=function(A){if(void 0===A)return"_unknown";var g=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return g>=48&&g<=57?"_".concat(A):A}(i);!function(A,g,I){e.hasOwnProperty(A)?(z("Cannot register public name '".concat(A,"' twice")),fA(e,A,A),e.hasOwnProperty(I)&&z("Cannot register multiple overloads of a function with the same number of arguments (".concat(I,")!")),e[A].overloadTable[I]=g):e[A]=g}(s,function(){kA("Cannot construct ".concat(i," due to unbound types"),[t])}),_([A,g,I],t?[t]:[],function(g){var I,C;g=g[0],C=t?(I=g.registeredClass).instancePrototype:hA.prototype;var r=lA(i,function(){if(Object.getPrototypeOf(this)!==n)throw new x("Use 'new' to construct "+i);if(void 0===E.constructor_body)throw new x(i+" has no accessible constructor");var A=E.constructor_body[arguments.length];if(void 0===A)throw new x("Tried to invoke ctor of ".concat(i," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return A.apply(this,arguments)}),n=Object.create(C,{constructor:{value:r}});r.prototype=n;var E=new yA(i,r,n,a,I,B,Q,o);E.baseClass&&(void 0===E.baseClass.__derivedClasses&&(E.baseClass.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var c=new pA(i,E,!0,!1,!1),u=new pA(i+"*",E,!1,!1,!1),h=new pA(i+" const*",E,!1,!0,!1);return BA[A]={pointerType:u,constPointerType:h},function(A,g,I){e.hasOwnProperty(A)||q("Replacing nonexistant public symbol"),void 0!==e[A].overloadTable&&void 0!==I||(e[A]=g,e[A].argCount=I)}(s,r),[c,u,h]})},x:function(A,g,I,t,C,e){var B=SA(g,I);C=YA(t,C),_([],[A],function(A){A=A[0];var I="constructor ".concat(A.name);if(void 0===A.registeredClass.constructor_body&&(A.registeredClass.constructor_body=[]),void 0!==A.registeredClass.constructor_body[g-1])throw new x("Cannot register multiple constructors with identical number of parameters (".concat(g-1,") for class '").concat(A.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return A.registeredClass.constructor_body[g-1]=function(){kA("Cannot construct ".concat(A.name," due to unbound types"),B)},_([],B,function(t){return t.splice(1,0,null),A.registeredClass.constructor_body[g-1]=HA(I,t,null,C,e),[]}),[]})},i:function(A,g,I,t,C,e,B,r,Q){var n,o,i=SA(I,t);g=W(g),o=(n=(n=g).trim()).indexOf("("),g=-1!==o?n.substr(0,o):n,e=YA(C,e),_([],[A],function(A){A=A[0];var t="".concat(A.name,".").concat(g);function C(){kA("Cannot call ".concat(t," due to unbound types"),i)}g.startsWith("@@")&&(g=Symbol[g.substring(2)]),r&&A.registeredClass.pureVirtualFunctions.push(g);var Q=A.registeredClass.instancePrototype,n=Q[g];return void 0===n||void 0===n.overloadTable&&n.className!==A.name&&n.argCount===I-2?(C.argCount=I-2,C.className=A.name,Q[g]=C):(fA(Q,g,t),Q[g].overloadTable[I-2]=C),_([],i,function(C){var r=HA(t,C,A,e,B);return void 0===Q[g].overloadTable?(r.argCount=I-2,Q[g]=r):Q[g].overloadTable[I-2]=r,[]}),[]})},k:function(A,g,I,t,C,e,B,r,Q,n){g=W(g),C=YA(t,C),_([],[A],function(A){A=A[0];var t="".concat(A.name,".").concat(g),o={get:function(){kA("Cannot access ".concat(t," due to unbound types"),[I,B])},enumerable:!0,configurable:!0};return o.set=Q?function(){return kA("Cannot access ".concat(t," due to unbound types"),[I,B])}:function(A){return z(t+" is a read-only property")},Object.defineProperty(A.registeredClass.instancePrototype,g,o),_([],Q?[I,B]:[I],function(I){var B=I[0],o={get:function(){var g=UA(this,A,t+" getter");return B.fromWireType(C(e,g))},enumerable:!0};if(Q){Q=YA(r,Q);var i=I[1];o.set=function(g){var I=UA(this,A,t+" setter"),C=[];Q(n,I,i.toWireType(C,g)),LA(C)}}return Object.defineProperty(A.registeredClass.instancePrototype,g,o),[]}),[]})},t:function(A,g){$(A,{name:g=W(g),fromWireType:function(A){var g=ZA.toValue(A);return TA(A),g},toWireType:function(A,g){return ZA.toHandle(g)},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:null})},p:function(A,g,I){$(A,{name:g=W(g),fromWireType:function(A){return A},toWireType:function(A,g){return g},argPackAdvance:8,readValueFromPointer:XA(g,I),destructorFunction:null})},g:function(A,g,I,t,C){g=W(g);var e=function(A){return A};if(0===t){var B=32-8*I;e=function(A){return A<<B>>>B}}var r=g.includes("unsigned");$(A,{name:g,fromWireType:e,toWireType:r?function(A,g){return this.name,g>>>0}:function(A,g){return this.name,g},argPackAdvance:8,readValueFromPointer:zA(g,I,0!==t),destructorFunction:null})},a:function(A,g,I){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][g];function C(A){var g=d[A>>2],I=d[A+4>>2];return new t(u.buffer,I,g)}$(A,{name:I=W(I),fromWireType:C,argPackAdvance:8,readValueFromPointer:C},{ignoreDuplicateRegistrations:!0})},o:function(A,g){var I="std::string"===(g=W(g));$(A,{name:g,fromWireType:function(A){var g,t=d[A>>2],C=A+4;if(I)for(var e=C,B=0;B<=t;++B){var r=C+B;if(B==t||0==l[r]){var Q=$A(e,r-e);void 0===g?g=Q:(g+=String.fromCharCode(0),g+=Q),e=r+1}}else{var n=new Array(t);for(B=0;B<t;++B)n[B]=String.fromCharCode(l[C+B]);g=n.join("")}return fg(A),g},toWireType:function(A,g){var t;g instanceof ArrayBuffer&&(g=new Uint8Array(g));var C="string"==typeof g;C||g instanceof Uint8Array||g instanceof Uint8ClampedArray||g instanceof Int8Array||z("Cannot pass non-string to std::string"),t=I&&C?function(A){for(var g=0,I=0;I<A.length;++I){var t=A.charCodeAt(I);t<=127?g++:t<=2047?g+=2:t>=55296&&t<=57343?(g+=4,++I):g+=3}return g}(g):g.length;var e=hg(4+t+1),B=e+4;if(d[e>>2]=t,I&&C)!function(A,g,I,t){if(!(t>0))return 0;for(var C=I+t-1,e=0;e<A.length;++e){var B=A.charCodeAt(e);if(B>=55296&&B<=57343&&(B=65536+((1023&B)<<10)|1023&A.charCodeAt(++e)),B<=127){if(I>=C)break;g[I++]=B}else if(B<=2047){if(I+1>=C)break;g[I++]=192|B>>6,g[I++]=128|63&B}else if(B<=65535){if(I+2>=C)break;g[I++]=224|B>>12,g[I++]=128|B>>6&63,g[I++]=128|63&B}else{if(I+3>=C)break;g[I++]=240|B>>18,g[I++]=128|B>>12&63,g[I++]=128|B>>6&63,g[I++]=128|63&B}}g[I]=0}(g,l,B,t+1);else if(C)for(var r=0;r<t;++r){var Q=g.charCodeAt(r);Q>255&&(fg(B),z("String has UTF-16 code units that do not fit in 8 bits")),l[B+r]=Q}else for(r=0;r<t;++r)l[B+r]=g[r];return null!==A&&A.push(fg,e),e},argPackAdvance:8,readValueFromPointer:NA,destructorFunction:function(A){fg(A)}})},l:function(A,g,I){var t,C,e,B,r;I=W(I),2===g?(t=gg,C=Ig,B=tg,e=function(){return y},r=1):4===g&&(t=Cg,C=eg,B=Bg,e=function(){return d},r=2),$(A,{name:I,fromWireType:function(A){for(var I,C=d[A>>2],B=e(),Q=A+4,n=0;n<=C;++n){var o=A+4+n*g;if(n==C||0==B[o>>r]){var i=t(Q,o-Q);void 0===I?I=i:(I+=String.fromCharCode(0),I+=i),Q=o+g}}return fg(A),I},toWireType:function(A,t){"string"!=typeof t&&z("Cannot pass non-string to C++ string type ".concat(I));var e=B(t),Q=hg(4+e+g);return d[Q>>2]=e>>r,C(t,Q+4,e+g),null!==A&&A.push(fg,Q),Q},argPackAdvance:8,readValueFromPointer:xA,destructorFunction:function(A){fg(A)}})},v:function(A,g){$(A,{isVoid:!0,name:g=W(g),argPackAdvance:0,fromWireType:function(){},toWireType:function(A,g){}})},j:function(A,g,I){return A=ZA.toValue(A),g=rg(g,"emval::as"),Qg(g,I,A)},e:function(A,g,I,t,C){var e,B;return(A=og[A])(g=ZA.toValue(g),g[I=void 0===(B=ng[e=I])?W(e):B],t,C)},d:TA,f:function(A,g,I){var t=function(A,g){for(var I=new Array(A),t=0;t<A;++t)I[t]=rg(d[g+4*t>>2],"parameter "+t);return I}(A,g),C=t.shift();A--;var e,B,r=new Array(A),Q="methodCaller<(".concat(t.map(function(A){return A.name}).join(", "),") => ").concat(C.name,">");return e=lA(Q,function(g,e,B,Q){for(var n=0,o=0;o<A;++o)r[o]=t[o].readValueFromPointer(Q+n),n+=t[o].argPackAdvance;var i=1===I?ig(e,r):e.apply(g,r);for(o=0;o<A;++o)t[o].deleteObject&&t[o].deleteObject(r[o]);return Qg(C,B,i)}),B=og.length,og.push(e),B},c:function(A){A>4&&(JA.get(A).refcount+=1)},b:function(A){var g=ZA.toValue(A);LA(g),TA(A)},h:function(A,g){var I=(A=rg(A,"_emval_take_value")).readValueFromPointer(g);return ZA.toHandle(I)},m:function(){k("")},s:function(A,g,I){return l.copyWithin(A,g,g+I)},r:function(A){l.length,k("OOM")},n:function(A,g,I,t){for(var C=0,e=0;e<I;e++){var B=d[g>>2],r=d[g+4>>2];g+=8;for(var Q=0;Q<r;Q++)ag(A,l[B+Q]);C+=r}return d[t>>2]=C,0}},ug=function(){var A={a:cg};function I(A,g){var I,t;return ug=A.exports,i=ug.z,I=i.buffer,e.HEAP8=u=new Int8Array(I),e.HEAP16=f=new Int16Array(I),e.HEAPU8=l=new Uint8Array(I),e.HEAPU16=y=new Uint16Array(I),e.HEAP32=D=new Int32Array(I),e.HEAPU32=d=new Uint32Array(I),e.HEAPF32=w=new Float32Array(I),e.HEAPF64=G=new Float64Array(I),MA=ug.C,t=ug.A,M.unshift(t),function(){if(Y--,e.monitorRunDependencies&&e.monitorRunDependencies(Y),0==Y&&b){var A=b;b=null,A()}}(),ug}if(Y++,e.monitorRunDependencies&&e.monitorRunDependencies(Y),e.instantiateWasm)try{return e.instantiateWasm(A,I)}catch(A){a("Module.instantiateWasm callback failed with error: ".concat(A)),g(A)}return J(0,S,A,function(A){I(A.instance)}).catch(g),{}}(),hg=function(A){return(hg=ug.B)(A)},lg=function(A){return(lg=ug.D)(A)},fg=function(A){return(fg=ug.E)(A)},yg=function(A){return(yg=ug.F)(A)};function Dg(){function g(){sg||(sg=!0,e.calledRun=!0,N||(T(M),A(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),function(){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)v(e.postRun.shift());T(F)}()))}Y>0||(function(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)R(e.preRun.shift());T(p)}(),Y>0||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),g()},1)):g()))}if(e.dynCall_jiji=function(A,g,I,t,C){return(e.dynCall_jiji=ug.G)(A,g,I,t,C)},e._vertexShaderSource=10688,b=function A(){sg||Dg(),sg||(b=A)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Dg(),I.ready}),Y=v,b="undefined"==typeof navigator?"":navigator.userAgent,k=function(A){return new RegExp(A,"i").test(b)},S=function(A){if(k(A)){var g=new RegExp("".concat(A,"\\/([\\d.]+)")),I=b.match(g);if(I&&I[1])return I[1]}return""},L=function(A){if(k(A)){var g=new RegExp("".concat(A,"\\/(\\d+)")),I=b.match(g);if(I&&I[1])return parseFloat(I[1])}return NaN},H=/AppleWebKit\/([\d.]+)/i.exec(b);H&&parseFloat(H[1]);var U=k("iPad"),K="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&k("Macintosh"),J=k("iPhone")&&!U,T=k("iPod"),j=J||U||T||K,Z=k("Android");!function(){if(Z){var A=b.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){var g=A[1]&&parseFloat(A[1]),I=A[2]&&parseFloat(A[2]);if(g&&I)return parseFloat("".concat(A[1],".").concat(A[2]));if(g)return g}}}();Z&&k("webkit");var x=k("Firefox"),P=S("Firefox");L("Firefox");var W=k("Edge"),O=S("Edge"),V=k("Edg"),X=S("Edg");L("Edg");var z=k("SogouMobileBrowser"),q=S("SogouMobileBrowser"),_=k("MetaSr\\s"),$=S("MetaSr\\s"),AA=k("TBS"),gA=S("TBS"),IA=k("XWEB"),tA=S("XWEB");k("MSIE\\s8\\.0");var CA=k("MSIE\\/\\d+");!function(){if(CA){var A=/MSIE\s(\d+)\.\d/.exec(b),g=A&&parseFloat(A[1]);return!g&&/Trident\/7.0/i.test(b)&&/rv:11.0/.test(b)&&(g=11),g}}();var eA=k("(micromessenger|webbrowser)"),BA=S("MicroMessenger"),rA=!AA&&k("MQQBrowser")&&k("COVC"),QA=!AA&&k("MQQBrowser")&&!k("COVC"),nA=QA||rA?S("MQQBrowser"):"",oA=!AA&&k(" QQBrowser"),iA=S(" QQBrowser"),EA=!AA&&k("QQBrowserLite"),aA=S("QQBrowserLite"),sA=!AA&&k("MQBHD"),cA=S("MQBHD");k("Windows"),!j&&k("MAC OS X"),!Z&&k("Linux"),k("CrOS"),k("MicroMessenger"),k("UCBrowser"),k("Electron");var uA=k("MiuiBrowser"),hA=S("MiuiBrowser"),lA=k("HuaweiBrowser");k("Huawei")||k("HUAWEI"),k("Honor")||k("HONOR");var fA=S("HuaweiBrowser"),yA=k("SamsungBrowser"),DA=S("SamsungBrowser"),dA=k("HeyTapBrowser"),wA=S("HeyTapBrowser"),GA=k("VivoBrowser"),NA=S("VivoBrowser");k("OpenHarmony"),S("OpenHarmony");var pA=k("CriOS"),MA=k("Chrome"),FA=!W&&!_&&!z&&!AA&&!IA&&!V&&!oA&&!uA&&!lA&&!yA&&!dA&&!GA&&MA;k("HeadlessChrome");var RA=L("Chrome"),mA=S("Chrome");L("Electron");var vA=!MA&&!QA&&!rA&&!EA&&!sA&&k("Safari"),YA=S("Version"),bA=function(){if(K)return YA;if(j){var A=b.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){var g=A[1];return A[2]&&(g+=".".concat(A[2])),g}}return""}();Number(bA.split(".")[0]),Number(bA.split(".")[0]),function(){var A=new Map([[x,["Firefox",P]],[V,["Edg",X]],[FA,["Chrome",mA]],[pA,["ChiOS",S("CriOS")]],[vA&&!pA,["Safari",YA]],[AA,["TBS",gA]],[IA,["XWEB",tA]],[eA&&J,["WeChat",BA]],[oA,["QQ(Win)",iA]],[QA,["QQ(Mobile)",nA]],[rA,["QQ(Mobile X5)",nA]],[EA,["QQ(Mac)",aA]],[sA,["QQ(iPad)",cA]],[uA,["MI",hA]],[lA,["HW",fA]],[yA,["Samsung",DA]],[dA,["OPPO",wA]],[GA,["VIVO",NA]],[W,["EDGE",O]],[z,["SogouMobile",q]],[_,["Sogou",$]]]),g="unknown",I="unknown";if(A.has(!0)){var t=a(A.get(!0),2);g=t[0],I=t[1]}}();var kA=1e-6,SA="undefined"!=typeof Float32Array?Float32Array:Array,LA={};function HA(){var A=new SA(16);return SA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=0,A[12]=0,A[13]=0,A[14]=0),A[0]=1,A[5]=1,A[10]=1,A[15]=1,A}function UA(A){var g=new SA(16);return g[0]=A[0],g[1]=A[1],g[2]=A[2],g[3]=A[3],g[4]=A[4],g[5]=A[5],g[6]=A[6],g[7]=A[7],g[8]=A[8],g[9]=A[9],g[10]=A[10],g[11]=A[11],g[12]=A[12],g[13]=A[13],g[14]=A[14],g[15]=A[15],g}function KA(A,g){return A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function JA(A,g,I,t,C,e,B,r,Q,n,o,i,E,a,s,c){var u=new SA(16);return u[0]=A,u[1]=g,u[2]=I,u[3]=t,u[4]=C,u[5]=e,u[6]=B,u[7]=r,u[8]=Q,u[9]=n,u[10]=o,u[11]=i,u[12]=E,u[13]=a,u[14]=s,u[15]=c,u}function TA(A,g,I,t,C,e,B,r,Q,n,o,i,E,a,s,c,u){return A[0]=g,A[1]=I,A[2]=t,A[3]=C,A[4]=e,A[5]=B,A[6]=r,A[7]=Q,A[8]=n,A[9]=o,A[10]=i,A[11]=E,A[12]=a,A[13]=s,A[14]=c,A[15]=u,A}function jA(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function ZA(A,g){if(A===g){var I=g[1],t=g[2],C=g[3],e=g[6],B=g[7],r=g[11];A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=I,A[6]=g[9],A[7]=g[13],A[8]=t,A[9]=e,A[11]=g[14],A[12]=C,A[13]=B,A[14]=r}else A[0]=g[0],A[1]=g[4],A[2]=g[8],A[3]=g[12],A[4]=g[1],A[5]=g[5],A[6]=g[9],A[7]=g[13],A[8]=g[2],A[9]=g[6],A[10]=g[10],A[11]=g[14],A[12]=g[3],A[13]=g[7],A[14]=g[11],A[15]=g[15];return A}function xA(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=g[4],r=g[5],Q=g[6],n=g[7],o=g[8],i=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=I*r-t*B,f=I*Q-C*B,y=I*n-e*B,D=t*Q-C*r,d=t*n-e*r,w=C*n-e*Q,G=o*c-i*s,N=o*u-E*s,p=o*h-a*s,M=i*u-E*c,F=i*h-a*c,R=E*h-a*u,m=l*R-f*F+y*M+D*p-d*N+w*G;return m?(m=1/m,A[0]=(r*R-Q*F+n*M)*m,A[1]=(C*F-t*R-e*M)*m,A[2]=(c*w-u*d+h*D)*m,A[3]=(E*d-i*w-a*D)*m,A[4]=(Q*p-B*R-n*N)*m,A[5]=(I*R-C*p+e*N)*m,A[6]=(u*y-s*w-h*f)*m,A[7]=(o*w-E*y+a*f)*m,A[8]=(B*F-r*p+n*G)*m,A[9]=(t*p-I*F-e*G)*m,A[10]=(s*d-c*y+h*l)*m,A[11]=(i*y-o*d-a*l)*m,A[12]=(r*N-B*M-Q*G)*m,A[13]=(I*M-t*N+C*G)*m,A[14]=(c*f-s*D-u*l)*m,A[15]=(o*D-i*f+E*l)*m,A):null}function PA(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=g[4],r=g[5],Q=g[6],n=g[7],o=g[8],i=g[9],E=g[10],a=g[11],s=g[12],c=g[13],u=g[14],h=g[15],l=I*r-t*B,f=I*Q-C*B,y=I*n-e*B,D=t*Q-C*r,d=t*n-e*r,w=C*n-e*Q,G=o*c-i*s,N=o*u-E*s,p=o*h-a*s,M=i*u-E*c,F=i*h-a*c,R=E*h-a*u;return A[0]=r*R-Q*F+n*M,A[1]=C*F-t*R-e*M,A[2]=c*w-u*d+h*D,A[3]=E*d-i*w-a*D,A[4]=Q*p-B*R-n*N,A[5]=I*R-C*p+e*N,A[6]=u*y-s*w-h*f,A[7]=o*w-E*y+a*f,A[8]=B*F-r*p+n*G,A[9]=t*p-I*F-e*G,A[10]=s*d-c*y+h*l,A[11]=i*y-o*d-a*l,A[12]=r*N-B*M-Q*G,A[13]=I*M-t*N+C*G,A[14]=c*f-s*D-u*l,A[15]=o*D-i*f+E*l,A}function WA(A){var g=A[0],I=A[1],t=A[2],C=A[3],e=A[4],B=A[5],r=A[6],Q=A[7],n=A[8],o=A[9],i=A[10],E=A[11],a=A[12],s=A[13],c=A[14],u=g*B-I*e,h=g*r-t*e,l=I*r-t*B,f=n*s-o*a,y=n*c-i*a,D=o*c-i*s;return Q*(g*D-I*y+t*f)-C*(e*D-B*y+r*f)+A[15]*(n*l-o*h+i*u)-E*(a*l-s*h+c*u)}function OA(A,g,I){var t=g[0],C=g[1],e=g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=g[8],E=g[9],a=g[10],s=g[11],c=g[12],u=g[13],h=g[14],l=g[15],f=I[0],y=I[1],D=I[2],d=I[3];return A[0]=f*t+y*r+D*i+d*c,A[1]=f*C+y*Q+D*E+d*u,A[2]=f*e+y*n+D*a+d*h,A[3]=f*B+y*o+D*s+d*l,f=I[4],y=I[5],D=I[6],d=I[7],A[4]=f*t+y*r+D*i+d*c,A[5]=f*C+y*Q+D*E+d*u,A[6]=f*e+y*n+D*a+d*h,A[7]=f*B+y*o+D*s+d*l,f=I[8],y=I[9],D=I[10],d=I[11],A[8]=f*t+y*r+D*i+d*c,A[9]=f*C+y*Q+D*E+d*u,A[10]=f*e+y*n+D*a+d*h,A[11]=f*B+y*o+D*s+d*l,f=I[12],y=I[13],D=I[14],d=I[15],A[12]=f*t+y*r+D*i+d*c,A[13]=f*C+y*Q+D*E+d*u,A[14]=f*e+y*n+D*a+d*h,A[15]=f*B+y*o+D*s+d*l,A}function VA(A,g,I){var t,C,e,B,r,Q,n,o,i,E,a,s,c=I[0],u=I[1],h=I[2];return g===A?(A[12]=g[0]*c+g[4]*u+g[8]*h+g[12],A[13]=g[1]*c+g[5]*u+g[9]*h+g[13],A[14]=g[2]*c+g[6]*u+g[10]*h+g[14],A[15]=g[3]*c+g[7]*u+g[11]*h+g[15]):(t=g[0],C=g[1],e=g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=g[8],E=g[9],a=g[10],s=g[11],A[0]=t,A[1]=C,A[2]=e,A[3]=B,A[4]=r,A[5]=Q,A[6]=n,A[7]=o,A[8]=i,A[9]=E,A[10]=a,A[11]=s,A[12]=t*c+r*u+i*h+g[12],A[13]=C*c+Q*u+E*h+g[13],A[14]=e*c+n*u+a*h+g[14],A[15]=B*c+o*u+s*h+g[15]),A}function XA(A,g,I){var t=I[0],C=I[1],e=I[2];return A[0]=g[0]*t,A[1]=g[1]*t,A[2]=g[2]*t,A[3]=g[3]*t,A[4]=g[4]*C,A[5]=g[5]*C,A[6]=g[6]*C,A[7]=g[7]*C,A[8]=g[8]*e,A[9]=g[9]*e,A[10]=g[10]*e,A[11]=g[11]*e,A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15],A}function zA(A,g,I,t){var C,e,B,r,Q,n,o,i,E,a,s,c,u,h,l,f,y,D,d,w,G,N,p,M,F=t[0],R=t[1],m=t[2],v=Math.sqrt(F*F+R*R+m*m);return v<kA?null:(F*=v=1/v,R*=v,m*=v,C=Math.sin(I),B=1-(e=Math.cos(I)),r=g[0],Q=g[1],n=g[2],o=g[3],i=g[4],E=g[5],a=g[6],s=g[7],c=g[8],u=g[9],h=g[10],l=g[11],f=F*F*B+e,y=R*F*B+m*C,D=m*F*B-R*C,d=F*R*B-m*C,w=R*R*B+e,G=m*R*B+F*C,N=F*m*B+R*C,p=R*m*B-F*C,M=m*m*B+e,A[0]=r*f+i*y+c*D,A[1]=Q*f+E*y+u*D,A[2]=n*f+a*y+h*D,A[3]=o*f+s*y+l*D,A[4]=r*d+i*w+c*G,A[5]=Q*d+E*w+u*G,A[6]=n*d+a*w+h*G,A[7]=o*d+s*w+l*G,A[8]=r*N+i*p+c*M,A[9]=Q*N+E*p+u*M,A[10]=n*N+a*p+h*M,A[11]=o*N+s*p+l*M,g!==A&&(A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A)}function qA(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[4],B=g[5],r=g[6],Q=g[7],n=g[8],o=g[9],i=g[10],E=g[11];return g!==A&&(A[0]=g[0],A[1]=g[1],A[2]=g[2],A[3]=g[3],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[4]=e*C+n*t,A[5]=B*C+o*t,A[6]=r*C+i*t,A[7]=Q*C+E*t,A[8]=n*C-e*t,A[9]=o*C-B*t,A[10]=i*C-r*t,A[11]=E*C-Q*t,A}function _A(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[0],B=g[1],r=g[2],Q=g[3],n=g[8],o=g[9],i=g[10],E=g[11];return g!==A&&(A[4]=g[4],A[5]=g[5],A[6]=g[6],A[7]=g[7],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=e*C-n*t,A[1]=B*C-o*t,A[2]=r*C-i*t,A[3]=Q*C-E*t,A[8]=e*t+n*C,A[9]=B*t+o*C,A[10]=r*t+i*C,A[11]=Q*t+E*C,A}function $A(A,g,I){var t=Math.sin(I),C=Math.cos(I),e=g[0],B=g[1],r=g[2],Q=g[3],n=g[4],o=g[5],i=g[6],E=g[7];return g!==A&&(A[8]=g[8],A[9]=g[9],A[10]=g[10],A[11]=g[11],A[12]=g[12],A[13]=g[13],A[14]=g[14],A[15]=g[15]),A[0]=e*C+n*t,A[1]=B*C+o*t,A[2]=r*C+i*t,A[3]=Q*C+E*t,A[4]=n*C-e*t,A[5]=o*C-B*t,A[6]=i*C-r*t,A[7]=E*C-Q*t,A}function Ag(A,g){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=g[0],A[13]=g[1],A[14]=g[2],A[15]=1,A}function gg(A,g){return A[0]=g[0],A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=g[1],A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=g[2],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ig(A,g,I){var t,C,e,B=I[0],r=I[1],Q=I[2],n=Math.sqrt(B*B+r*r+Q*Q);return n<kA?null:(B*=n=1/n,r*=n,Q*=n,t=Math.sin(g),e=1-(C=Math.cos(g)),A[0]=B*B*e+C,A[1]=r*B*e+Q*t,A[2]=Q*B*e-r*t,A[3]=0,A[4]=B*r*e-Q*t,A[5]=r*r*e+C,A[6]=Q*r*e+B*t,A[7]=0,A[8]=B*Q*e+r*t,A[9]=r*Q*e-B*t,A[10]=Q*Q*e+C,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)}function tg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=t,A[6]=I,A[7]=0,A[8]=0,A[9]=-I,A[10]=t,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Cg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=t,A[1]=0,A[2]=-I,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=I,A[9]=0,A[10]=t,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function eg(A,g){var I=Math.sin(g),t=Math.cos(g);return A[0]=t,A[1]=I,A[2]=0,A[3]=0,A[4]=-I,A[5]=t,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Bg(A,g,I){var t=g[0],C=g[1],e=g[2],B=g[3],r=t+t,Q=C+C,n=e+e,o=t*r,i=t*Q,E=t*n,a=C*Q,s=C*n,c=e*n,u=B*r,h=B*Q,l=B*n;return A[0]=1-(a+c),A[1]=i+l,A[2]=E-h,A[3]=0,A[4]=i-l,A[5]=1-(o+c),A[6]=s+u,A[7]=0,A[8]=E+h,A[9]=s-u,A[10]=1-(o+a),A[11]=0,A[12]=I[0],A[13]=I[1],A[14]=I[2],A[15]=1,A}function rg(A,g){var I=new SA(3),t=-g[0],C=-g[1],e=-g[2],B=g[3],r=g[4],Q=g[5],n=g[6],o=g[7],i=t*t+C*C+e*e+B*B;return i>0?(I[0]=2*(r*B+o*t+Q*e-n*C)/i,I[1]=2*(Q*B+o*C+n*t-r*e)/i,I[2]=2*(n*B+o*e+r*C-Q*t)/i):(I[0]=2*(r*B+o*t+Q*e-n*C),I[1]=2*(Q*B+o*C+n*t-r*e),I[2]=2*(n*B+o*e+r*C-Q*t)),Bg(A,g,I),A}function Qg(A,g){return A[0]=g[12],A[1]=g[13],A[2]=g[14],A}function ng(A,g){var I=g[0],t=g[1],C=g[2],e=g[4],B=g[5],r=g[6],Q=g[8],n=g[9],o=g[10];return A[0]=Math.sqrt(I*I+t*t+C*C),A[1]=Math.sqrt(e*e+B*B+r*r),A[2]=Math.sqrt(Q*Q+n*n+o*o),A}function og(A,g){var I=new SA(3);ng(I,g);var t=1/I[0],C=1/I[1],e=1/I[2],B=g[0]*t,r=g[1]*C,Q=g[2]*e,n=g[4]*t,o=g[5]*C,i=g[6]*e,E=g[8]*t,a=g[9]*C,s=g[10]*e,c=B+o+s,u=0;return c>0?(u=2*Math.sqrt(c+1),A[3]=.25*u,A[0]=(i-a)/u,A[1]=(E-Q)/u,A[2]=(r-n)/u):B>o&&B>s?(u=2*Math.sqrt(1+B-o-s),A[3]=(i-a)/u,A[0]=.25*u,A[1]=(r+n)/u,A[2]=(E+Q)/u):o>s?(u=2*Math.sqrt(1+o-B-s),A[3]=(E-Q)/u,A[0]=(r+n)/u,A[1]=.25*u,A[2]=(i+a)/u):(u=2*Math.sqrt(1+s-B-o),A[3]=(r-n)/u,A[0]=(E+Q)/u,A[1]=(i+a)/u,A[2]=.25*u),A}function ig(A,g,I,t){g[0]=t[12],g[1]=t[13],g[2]=t[14];var C=t[0],e=t[1],B=t[2],r=t[4],Q=t[5],n=t[6],o=t[8],i=t[9],E=t[10];I[0]=Math.sqrt(C*C+e*e+B*B),I[1]=Math.sqrt(r*r+Q*Q+n*n),I[2]=Math.sqrt(o*o+i*i+E*E);var a=1/I[0],s=1/I[1],c=1/I[2],u=C*a,h=e*s,l=B*c,f=r*a,y=Q*s,D=n*c,d=o*a,w=i*s,G=E*c,N=u+y+G,p=0;return N>0?(p=2*Math.sqrt(N+1),A[3]=.25*p,A[0]=(D-w)/p,A[1]=(d-l)/p,A[2]=(h-f)/p):u>y&&u>G?(p=2*Math.sqrt(1+u-y-G),A[3]=(D-w)/p,A[0]=.25*p,A[1]=(h+f)/p,A[2]=(d+l)/p):y>G?(p=2*Math.sqrt(1+y-u-G),A[3]=(d-l)/p,A[0]=(h+f)/p,A[1]=.25*p,A[2]=(D+w)/p):(p=2*Math.sqrt(1+G-u-y),A[3]=(h-f)/p,A[0]=(d+l)/p,A[1]=(D+w)/p,A[2]=.25*p),A}function Eg(A,g,I,t){var C=g[0],e=g[1],B=g[2],r=g[3],Q=C+C,n=e+e,o=B+B,i=C*Q,E=C*n,a=C*o,s=e*n,c=e*o,u=B*o,h=r*Q,l=r*n,f=r*o,y=t[0],D=t[1],d=t[2];return A[0]=(1-(s+u))*y,A[1]=(E+f)*y,A[2]=(a-l)*y,A[3]=0,A[4]=(E-f)*D,A[5]=(1-(i+u))*D,A[6]=(c+h)*D,A[7]=0,A[8]=(a+l)*d,A[9]=(c-h)*d,A[10]=(1-(i+s))*d,A[11]=0,A[12]=I[0],A[13]=I[1],A[14]=I[2],A[15]=1,A}function ag(A,g,I,t,C){var e=g[0],B=g[1],r=g[2],Q=g[3],n=e+e,o=B+B,i=r+r,E=e*n,a=e*o,s=e*i,c=B*o,u=B*i,h=r*i,l=Q*n,f=Q*o,y=Q*i,D=t[0],d=t[1],w=t[2],G=C[0],N=C[1],p=C[2],M=(1-(c+h))*D,F=(a+y)*D,R=(s-f)*D,m=(a-y)*d,v=(1-(E+h))*d,Y=(u+l)*d,b=(s+f)*w,k=(u-l)*w,S=(1-(E+c))*w;return A[0]=M,A[1]=F,A[2]=R,A[3]=0,A[4]=m,A[5]=v,A[6]=Y,A[7]=0,A[8]=b,A[9]=k,A[10]=S,A[11]=0,A[12]=I[0]+G-(M*G+m*N+b*p),A[13]=I[1]+N-(F*G+v*N+k*p),A[14]=I[2]+p-(R*G+Y*N+S*p),A[15]=1,A}function sg(A,g){var I=g[0],t=g[1],C=g[2],e=g[3],B=I+I,r=t+t,Q=C+C,n=I*B,o=t*B,i=t*r,E=C*B,a=C*r,s=C*Q,c=e*B,u=e*r,h=e*Q;return A[0]=1-i-s,A[1]=o+h,A[2]=E-u,A[3]=0,A[4]=o-h,A[5]=1-n-s,A[6]=a+c,A[7]=0,A[8]=E+u,A[9]=a-c,A[10]=1-n-i,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function cg(A,g,I,t,C,e,B){var r=1/(I-g),Q=1/(C-t),n=1/(e-B);return A[0]=2*e*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=2*e*Q,A[6]=0,A[7]=0,A[8]=(I+g)*r,A[9]=(C+t)*Q,A[10]=(B+e)*n,A[11]=-1,A[12]=0,A[13]=0,A[14]=B*e*2*n,A[15]=0,A}function ug(A,g,I,t,C){var e=1/Math.tan(g/2);if(A[0]=e/I,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=e,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=C&&C!==1/0){var B=1/(t-C);A[10]=(C+t)*B,A[14]=2*C*t*B}else A[10]=-1,A[14]=-2*t;return A}!function(A,g){for(var I in g)l(A,I,{get:g[I],enumerable:!0})}(LA,{add:function(){return Mg},adjoint:function(){return PA},clone:function(){return UA},copy:function(){return KA},create:function(){return HA},decompose:function(){return ig},determinant:function(){return WA},equals:function(){return Yg},exactEquals:function(){return vg},frob:function(){return pg},fromQuat:function(){return sg},fromQuat2:function(){return rg},fromRotation:function(){return Ig},fromRotationTranslation:function(){return Bg},fromRotationTranslationScale:function(){return Eg},fromRotationTranslationScaleOrigin:function(){return ag},fromScaling:function(){return gg},fromTranslation:function(){return Ag},fromValues:function(){return JA},fromXRotation:function(){return tg},fromYRotation:function(){return Cg},fromZRotation:function(){return eg},frustum:function(){return cg},getRotation:function(){return og},getScaling:function(){return ng},getTranslation:function(){return Qg},identity:function(){return jA},invert:function(){return xA},lookAt:function(){return wg},mul:function(){return bg},multiply:function(){return OA},multiplyScalar:function(){return Rg},multiplyScalarAndAdd:function(){return mg},ortho:function(){return Dg},orthoNO:function(){return yg},orthoZO:function(){return dg},perspective:function(){return hg},perspectiveFromFieldOfView:function(){return fg},perspectiveNO:function(){return ug},perspectiveZO:function(){return lg},rotate:function(){return zA},rotateX:function(){return qA},rotateY:function(){return _A},rotateZ:function(){return $A},scale:function(){return XA},set:function(){return TA},str:function(){return Ng},sub:function(){return kg},subtract:function(){return Fg},targetTo:function(){return Gg},translate:function(){return VA},transpose:function(){return ZA}});var hg=ug;function lg(A,g,I,t,C){var e=1/Math.tan(g/2);if(A[0]=e/I,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=e,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,null!=C&&C!==1/0){var B=1/(t-C);A[10]=C*B,A[14]=C*t*B}else A[10]=-1,A[14]=-t;return A}function fg(A,g,I,t){var C=Math.tan(g.upDegrees*Math.PI/180),e=Math.tan(g.downDegrees*Math.PI/180),B=Math.tan(g.leftDegrees*Math.PI/180),r=Math.tan(g.rightDegrees*Math.PI/180),Q=2/(B+r),n=2/(C+e);return A[0]=Q,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=n,A[6]=0,A[7]=0,A[8]=-(B-r)*Q*.5,A[9]=(C-e)*n*.5,A[10]=t/(I-t),A[11]=-1,A[12]=0,A[13]=0,A[14]=t*I/(I-t),A[15]=0,A}function yg(A,g,I,t,C,e,B){var r=1/(g-I),Q=1/(t-C),n=1/(e-B);return A[0]=-2*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*Q,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=2*n,A[11]=0,A[12]=(g+I)*r,A[13]=(C+t)*Q,A[14]=(B+e)*n,A[15]=1,A}var Dg=yg;function dg(A,g,I,t,C,e,B){var r=1/(g-I),Q=1/(t-C),n=1/(e-B);return A[0]=-2*r,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*Q,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=n,A[11]=0,A[12]=(g+I)*r,A[13]=(C+t)*Q,A[14]=e*n,A[15]=1,A}function wg(A,g,I,t){var C,e,B,r,Q,n,o,i,E,a,s=g[0],c=g[1],u=g[2],h=t[0],l=t[1],f=t[2],y=I[0],D=I[1],d=I[2];return Math.abs(s-y)<kA&&Math.abs(c-D)<kA&&Math.abs(u-d)<kA?jA(A):(o=s-y,i=c-D,E=u-d,C=l*(E*=a=1/Math.sqrt(o*o+i*i+E*E))-f*(i*=a),e=f*(o*=a)-h*E,B=h*i-l*o,(a=Math.sqrt(C*C+e*e+B*B))?(C*=a=1/a,e*=a,B*=a):(C=0,e=0,B=0),r=i*B-E*e,Q=E*C-o*B,n=o*e-i*C,(a=Math.sqrt(r*r+Q*Q+n*n))?(r*=a=1/a,Q*=a,n*=a):(r=0,Q=0,n=0),A[0]=C,A[1]=r,A[2]=o,A[3]=0,A[4]=e,A[5]=Q,A[6]=i,A[7]=0,A[8]=B,A[9]=n,A[10]=E,A[11]=0,A[12]=-(C*s+e*c+B*u),A[13]=-(r*s+Q*c+n*u),A[14]=-(o*s+i*c+E*u),A[15]=1,A)}function Gg(A,g,I,t){var C=g[0],e=g[1],B=g[2],r=t[0],Q=t[1],n=t[2],o=C-I[0],i=e-I[1],E=B-I[2],a=o*o+i*i+E*E;a>0&&(o*=a=1/Math.sqrt(a),i*=a,E*=a);var s=Q*E-n*i,c=n*o-r*E,u=r*i-Q*o;return(a=s*s+c*c+u*u)>0&&(s*=a=1/Math.sqrt(a),c*=a,u*=a),A[0]=s,A[1]=c,A[2]=u,A[3]=0,A[4]=i*u-E*c,A[5]=E*s-o*u,A[6]=o*c-i*s,A[7]=0,A[8]=o,A[9]=i,A[10]=E,A[11]=0,A[12]=C,A[13]=e,A[14]=B,A[15]=1,A}function Ng(A){return"mat4("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+", "+A[4]+", "+A[5]+", "+A[6]+", "+A[7]+", "+A[8]+", "+A[9]+", "+A[10]+", "+A[11]+", "+A[12]+", "+A[13]+", "+A[14]+", "+A[15]+")"}function pg(A){return Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]+A[3]*A[3]+A[4]*A[4]+A[5]*A[5]+A[6]*A[6]+A[7]*A[7]+A[8]*A[8]+A[9]*A[9]+A[10]*A[10]+A[11]*A[11]+A[12]*A[12]+A[13]*A[13]+A[14]*A[14]+A[15]*A[15])}function Mg(A,g,I){return A[0]=g[0]+I[0],A[1]=g[1]+I[1],A[2]=g[2]+I[2],A[3]=g[3]+I[3],A[4]=g[4]+I[4],A[5]=g[5]+I[5],A[6]=g[6]+I[6],A[7]=g[7]+I[7],A[8]=g[8]+I[8],A[9]=g[9]+I[9],A[10]=g[10]+I[10],A[11]=g[11]+I[11],A[12]=g[12]+I[12],A[13]=g[13]+I[13],A[14]=g[14]+I[14],A[15]=g[15]+I[15],A}function Fg(A,g,I){return A[0]=g[0]-I[0],A[1]=g[1]-I[1],A[2]=g[2]-I[2],A[3]=g[3]-I[3],A[4]=g[4]-I[4],A[5]=g[5]-I[5],A[6]=g[6]-I[6],A[7]=g[7]-I[7],A[8]=g[8]-I[8],A[9]=g[9]-I[9],A[10]=g[10]-I[10],A[11]=g[11]-I[11],A[12]=g[12]-I[12],A[13]=g[13]-I[13],A[14]=g[14]-I[14],A[15]=g[15]-I[15],A}function Rg(A,g,I){return A[0]=g[0]*I,A[1]=g[1]*I,A[2]=g[2]*I,A[3]=g[3]*I,A[4]=g[4]*I,A[5]=g[5]*I,A[6]=g[6]*I,A[7]=g[7]*I,A[8]=g[8]*I,A[9]=g[9]*I,A[10]=g[10]*I,A[11]=g[11]*I,A[12]=g[12]*I,A[13]=g[13]*I,A[14]=g[14]*I,A[15]=g[15]*I,A}function mg(A,g,I,t){return A[0]=g[0]+I[0]*t,A[1]=g[1]+I[1]*t,A[2]=g[2]+I[2]*t,A[3]=g[3]+I[3]*t,A[4]=g[4]+I[4]*t,A[5]=g[5]+I[5]*t,A[6]=g[6]+I[6]*t,A[7]=g[7]+I[7]*t,A[8]=g[8]+I[8]*t,A[9]=g[9]+I[9]*t,A[10]=g[10]+I[10]*t,A[11]=g[11]+I[11]*t,A[12]=g[12]+I[12]*t,A[13]=g[13]+I[13]*t,A[14]=g[14]+I[14]*t,A[15]=g[15]+I[15]*t,A}function vg(A,g){return A[0]===g[0]&&A[1]===g[1]&&A[2]===g[2]&&A[3]===g[3]&&A[4]===g[4]&&A[5]===g[5]&&A[6]===g[6]&&A[7]===g[7]&&A[8]===g[8]&&A[9]===g[9]&&A[10]===g[10]&&A[11]===g[11]&&A[12]===g[12]&&A[13]===g[13]&&A[14]===g[14]&&A[15]===g[15]}function Yg(A,g){var I=A[0],t=A[1],C=A[2],e=A[3],B=A[4],r=A[5],Q=A[6],n=A[7],o=A[8],i=A[9],E=A[10],a=A[11],s=A[12],c=A[13],u=A[14],h=A[15],l=g[0],f=g[1],y=g[2],D=g[3],d=g[4],w=g[5],G=g[6],N=g[7],p=g[8],M=g[9],F=g[10],R=g[11],m=g[12],v=g[13],Y=g[14],b=g[15];return Math.abs(I-l)<=kA*Math.max(1,Math.abs(I),Math.abs(l))&&Math.abs(t-f)<=kA*Math.max(1,Math.abs(t),Math.abs(f))&&Math.abs(C-y)<=kA*Math.max(1,Math.abs(C),Math.abs(y))&&Math.abs(e-D)<=kA*Math.max(1,Math.abs(e),Math.abs(D))&&Math.abs(B-d)<=kA*Math.max(1,Math.abs(B),Math.abs(d))&&Math.abs(r-w)<=kA*Math.max(1,Math.abs(r),Math.abs(w))&&Math.abs(Q-G)<=kA*Math.max(1,Math.abs(Q),Math.abs(G))&&Math.abs(n-N)<=kA*Math.max(1,Math.abs(n),Math.abs(N))&&Math.abs(o-p)<=kA*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(i-M)<=kA*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(E-F)<=kA*Math.max(1,Math.abs(E),Math.abs(F))&&Math.abs(a-R)<=kA*Math.max(1,Math.abs(a),Math.abs(R))&&Math.abs(s-m)<=kA*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(c-v)<=kA*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(u-Y)<=kA*Math.max(1,Math.abs(u),Math.abs(Y))&&Math.abs(h-b)<=kA*Math.max(1,Math.abs(h),Math.abs(b))}var bg=OA,kg=Fg,Sg="#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}",Lg=function(A){return"precision highp float;\nuniform sampler2D mask;in vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {".concat(A,"}")},Hg="#version 300 es\nuniform sampler2D lastMask;\n".concat(Lg("highp float current = texture(mask, v_texCoord).r;\n highp float previous = texture(lastMask, v_texCoord).r;\n highp float diff = abs(current - previous);\n const float smoothFactor = 0.05; \n const float threshold = 0.3;\n highp float blendedMask = diff < threshold \n ? previous * (1.0 - smoothFactor) + current * smoothFactor \n : current;\n outColor = vec4(blendedMask,0.0,0.0, 1.0);"),"\n"),Ug="#version 300 es\n".concat(Lg(" vec2 o = 1.0 / vec2(textureSize(mask, 0)); \n float size = 3.0; \n int sizeDb = int(size*size);\n float samples[9];\n int idx = 0;\n float side = (size - 1.0) / 2.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n int index = int((x + 1.0) * size + (y + 1.0));\n samples[index] = texture(mask, sampleCoord).r;\n }\n }\n for (int i = 0; i < sizeDb - 1; i++) {\n for (int j = 0; j < sizeDb - 1 - i; j++) {\n if (samples[j] > samples[j + 1]) {\n float temp = samples[j];\n samples[j] = samples[j + 1];\n samples[j + 1] = temp;\n }\n }\n }\n float endR=samples[sizeDb/2]>0.5?1.0:0.0;\n outColor = vec4(endR, 0.0, 0.0, 1.0);"),"\n"),Kg="#version 300 es\n".concat(Lg(" vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float size = 3.0; \n float side = (size - 1.0) / 2.0;\n float stronglyEroded = 1.0;\n for (float x = -side; x <= side; x += 1.0) {\n for (float y = -side; y <= side; y += 1.0) {\n vec2 sampleCoord = v_texCoord + vec2(x, y) * o;\n stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);\n }\n }\n outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);"),"\n"),Jg=function(){return B(function A(){C(this,A),p(this,"gl"),p(this,"positionBuffer"),p(this,"texCoordBuffer"),p(this,"ratio"),p(this,"_tdProgram"),p(this,"_kcProgram"),p(this,"_mdProgram"),p(this,"_edgeProgram"),p(this,"_borderProgram"),p(this,"_lastMaskTexture")},[{key:"init",value:function(A,g,I,t){this.initParams(A,g,I,t),this.initPrograms()}},{key:"initParams",value:function(A,g,I,t){this.gl=A,this.positionBuffer=g,this.texCoordBuffer=I,this.ratio=t}},{key:"initPrograms",value:function(){this._tdProgram=this.createProgram(Sg,Hg,["mask","lastMask"]),this._mdProgram=this.createProgram(Sg,Ug,["mask"]),this._kcProgram=this.createProgram(Sg,Kg,["mask"]),this._borderProgram=this.createProgram(Sg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nuniform sampler2D originalMask;\nuniform sampler2D maskEdge;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_highThreshold = 0.9; \nfloat u_smoothSigma = 2.0; \nfloat u_featherRadius = 4.0; \nfloat balancedTransition(float value) {\n return value * value * (3.0 - 2.0 * value);\n}\nfloat hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {\n float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);\n if (edgeWeight < u_highThreshold * 0.8) {\n return texture(tex, uv).r; \n }\n float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);\n int kernelSize = int(ceil(2.5 * sigma)); \n float sum = 0.0;\n float weightSum = 0.0;\n for (int i = -kernelSize; i <= kernelSize; i++) {\n for (int j = -kernelSize; j <= kernelSize; j++) {\n vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;\n vec2 sampleUV = uv + offset;\n float sampleValue = texture(originalMask, sampleUV).r;\n float dist = length(vec2(i, j)) / float(kernelSize);\n float weight = 1.0 - balancedTransition(dist);\n sum += sampleValue * weight;\n weightSum += weight;\n }\n }\n return sum / weightSum;\n}\nvoid main() {\n vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));\n float edge = texture(maskEdge, v_texCoord).r;\n float centerValue = texture(mask, v_texCoord).r;\n float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);\n float finalAlpha;\n if (edge == 1.0) {\n finalAlpha = smoothedValue;\n } else if (centerValue > 0.70) {\n finalAlpha = 1.0;\n } else if (centerValue < 0.30) {\n finalAlpha = 0.0;\n } else {\n float t = balancedTransition((centerValue - 0.30));\n finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);\n }\n outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);\n}\n",["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(Sg,"#version 300 es\nprecision highp float;\nuniform sampler2D mask;\nin vec2 v_texCoord;\nout vec4 outColor;\nfloat u_gradientScale = 0.25;\nconst float SOBEL_KERNEL_X[9] = float[9](\n -1.0, 0.0, 1.0,\n -2.0, 0.0, 2.0,\n -1.0, 0.0, 1.0\n);\nconst float SOBEL_KERNEL_Y[9] = float[9](\n -1.0, -2.0, -1.0,\n 0.0, 0.0, 0.0,\n 1.0, 2.0, 1.0\n);\nfloat nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {\n vec2 dir = vec2(cos(angle), sin(angle));\n vec2 offset1 = dir * texelSize;\n vec2 offset2 = -dir * texelSize;\n float n1 = texture(mask, uv + offset1).r;\n float n2 = texture(mask, uv + offset2).r;\n return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;\n}\nvoid main() {\n vec2 o = 1.0 / vec2(textureSize(mask, 0));\n float gx = 0.0, gy = 0.0;\n for (int i = -1; i <= 1; i++) {\n for (int j = -1; j <= 1; j++) {\n vec2 offset = vec2(float(i), float(j)) * o;\n float maskValue = texture(mask, v_texCoord + offset).r;\n int idx = (i+1)*3 + (j+1);\n gx += maskValue * SOBEL_KERNEL_X[idx];\n gy += maskValue * SOBEL_KERNEL_Y[idx];\n }\n }\n float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;\n float angle = atan(gy, gx);\n float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);\n float edge = nmsEdge > 0.0 ? 1.0 : 0.0;\n outColor = vec4(edge, 0.0, 0.0, 1.0);\n}\n",["mask"])}},{key:"setAttributes",value:function(){for(var A=this.gl,g=arguments.length,I=new Array(g),t=0;t<g;t++)I[t]=arguments[t];I.forEach(function(g,I){A.enableVertexAttribArray(I),A.bindBuffer(A.ARRAY_BUFFER,g),A.vertexAttribPointer(I,2,A.FLOAT,!1,0,0)})}},{key:"createShader",value:function(A,g){var I=this.gl,t=I.createShader(A);return I.shaderSource(t,g),I.compileShader(t),t}},{key:"createProgram",value:function(A,g,I){var t=this.gl,C=this.createShader(t.FRAGMENT_SHADER,g),e=this.createShader(t.VERTEX_SHADER,A),B=t.createProgram();if(t.attachShader(B,e),t.attachShader(B,C),t.linkProgram(B),!t.getProgramParameter(B,t.LINK_STATUS))throw new Error("".concat(t.getProgramInfoLog(B)));return t.useProgram(B),this.setAttributes(this.positionBuffer,this.texCoordBuffer),I.forEach(function(A,g){t.uniform1i(t.getUniformLocation(B,A),1+g)}),B}},{key:"createFramebuffer",value:function(A){var g=this.gl,I=g.createFramebuffer();return g.bindFramebuffer(g.FRAMEBUFFER,I),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,A,0),I}},{key:"getTempTexture",value:function(A,g){var I,t,C=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],e=arguments.length>3?arguments[3]:void 0,B=this.gl;B.useProgram(A),this.ratio===16/9?(I=640,t=360):(I=640,t=480);var r=B.createTexture();B.activeTexture(B.TEXTURE0),B.bindTexture(B.TEXTURE_2D,r),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MIN_FILTER,B.LINEAR),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MAG_FILTER,B.LINEAR),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_S,B.CLAMP_TO_EDGE),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_T,B.CLAMP_TO_EDGE),B.pixelStorei(B.PACK_ALIGNMENT,1),B.pixelStorei(B.UNPACK_ALIGNMENT,1),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,I,t,0,B.RGBA,B.UNSIGNED_BYTE,null);var Q=this.createFramebuffer(r);return g.forEach(function(A,g){A&&(B.activeTexture(B.TEXTURE1+g),B.bindTexture(B.TEXTURE_2D,A||null))}),this.setAttributes(this.positionBuffer,this.texCoordBuffer),B.viewport(0,0,I,t),B.drawArrays(B.TRIANGLE_STRIP,0,4),C&&g.forEach(function(A,g){A&&e!==g&&B.deleteTexture(A)}),B.deleteFramebuffer(Q),r}},{key:"postProcessing",value:function(A){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[A,this._lastMaskTexture]);for(var g=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1),I=0;I<3;I++){g=this.getTempTexture(this._mdProgram,[g]);var t=this.getTempTexture(this._edgeProgram,[g],!1);g=this.getTempTexture(this._borderProgram,[g,t,this._lastMaskTexture],!0,2)}return g}},{key:"close",value:function(){var A=this.gl;this._borderProgram&&A.deleteProgram(this._borderProgram),this._edgeProgram&&A.deleteProgram(this._edgeProgram),this._kcProgram&&A.deleteProgram(this._kcProgram),this._mdProgram&&A.deleteProgram(this._mdProgram),this._tdProgram&&A.deleteProgram(this._tdProgram)}}])}(),Tg=new Jg,jg={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Zg=570703,xg=0,Pg=function(){function A(g){C(this,A),this.core=g,p(this,"seq"),p(this,"_core"),p(this,"log"),p(this,"preLoadPromise"),p(this,"startResolve"),p(this,"startReject"),p(this,"mediaPipeSolutions"),p(this,"assetsPath"),p(this,"currentType"),p(this,"onAbort"),p(this,"isAborted",!1),xg+=1,this.seq=xg,this._core=g,this.log=g.log.createChild({id:"".concat(this.getAlias()).concat(xg)}),this.log.info("created"),g.assetsPath&&(this.preLoadPromise=this.preload(g.assetsPath))}return B(A,[{key:"preload",value:(r=I(o().m(function A(g){var I,t,C,e,B,r=this;return o().w(function(A){for(;;)switch(A.p=A.n){case 0:if(A.p=0,this._core.room.videoManager.Wasm){A.n=2;break}return A.n=1,Y();case 1:this._core.room.videoManager.Wasm=A.v;case 2:return I=function(A){var g;r.core.kvStatManager.addEnum({key:Zg,value:r.getKVTypeValue(!1,r.isAborted,"ABORT_IN_INFERENCE")}),r.isAborted=!0,r.log.error("mediaPipeSolutions abort",A),r.core.clearStarted(r,r.getGroup()),r.stop(),null==(g=r.onAbort)||g.call(r,A)},this._core.room.videoManager.initVirtualBackground(I,LA,Tg),A.n=3,this._core.initVisionTaskRegistry(g,["ImageSegmenter"]);case 3:A.n=5;break;case 4:throw A.p=4,B=A.v,t=this._core.errorModule,C=t.RtcError,e=t.ErrorCode,new C({code:e.INVALID_OPERATION,message:"VirtualBackground preload error, please redeploy the assets of the npm package. detail: ".concat(B)});case 5:return A.a(2)}},A,this,[[0,4]])})),function(A){return r.apply(this,arguments)})},{key:"getName",value:function(){return A.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(A){switch(A){case"start":return g=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(I=N({},R),t={type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},f(I,y(t))),validate:function(A,I,t,C){var e,B=g.errorModule,r=B.RtcError,Q=B.ErrorCode,n=B.ErrorCodeDictionary;if(A){var o=A.type,i=A.src,E=A.onAbort;if("image"===o&&!i)throw new r({code:Q.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_REQUIRED,fnName:t,messageParams:{key:"src"}});if(E&&!g.utils.isFunction(E))throw new r({code:Q.INVALID_PARAMETER,extraCode:n.INVALID_PARAMETER_TYPE,fnName:t,messageParams:{key:"onAbort",value:c(E),rule:{type:"Function"}}});if(!(null==(e=g.room.videoManager.cameraTrack)?void 0:e.mediaTrack))throw new r({code:Q.INVALID_OPERATION,extraCode:n.INVALID_OPERATION_NEED_VIDEO,fnName:t})}}};case"update":return function(A){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate:function(g,I,t,C){if(g){var e=A.errorModule,B=e.RtcError,r=e.ErrorCode,Q=e.ErrorCodeDictionary,n=g.type,o=g.src;if("image"===n&&!o)throw new B({code:r.INVALID_PARAMETER,extraCode:Q.INVALID_PARAMETER_REQUIRED,fnName:t,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var g,I,t}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var A=arguments.length>0&&void 0!==arguments[0]&&arguments[0],g=arguments.length>1&&void 0!==arguments[1]&&arguments[1],I=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",t=0;switch(this.currentType){case"blur":t|=0;break;case"image":t|=1;break;case"color":t|=2}switch(A&&(t|=256),g&&(t|=512),I){case"ABORT_IN_INFERENCE":t|=4096;break;case"ABORT_IN_VIDEO_MANAGER":t|=8192;break;case"OTHER":t|=61440}return t}},{key:"hexToRgb",value:function(A){var g=A.replace("#","");return[parseInt(g.slice(0,2),16)/255,parseInt(g.slice(2,4),16)/255,parseInt(g.slice(4,6),16)/255]}},{key:"start",value:(e=I(o().m(function A(g){var I,t,C,e,B,r,Q,n,i,E,a,s,c,u=this;return o().w(function(A){for(;;)switch(A.n){case 0:return I=g.type,t=void 0===I?"blur":I,C=g.src,e=g.blurLevel,B=void 0===e?3:e,r=g.onAbort,this.currentType=t,this.onAbort=r,"color"===t&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.n=1,M({sdkAppId:g.sdkAppId,userId:g.userId,userSig:g.userSig,core:this._core});case 1:if(Q=A.v,n=Q.auth,i=this._core.errorModule,E=i.RtcError,a=i.ErrorCodeDictionary,s=i.ErrorCode,n){A.n=2;break}throw c=this._core.utils.isOverseaSdkAppId(g.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new E({code:a.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:c}});case 2:if(this.preLoadPromise){A.n=4;break}if(this._core.assetsPath){A.n=3;break}throw new E({code:s.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});case 3:this.preLoadPromise=this.preload(this._core.assetsPath);case 4:return A.n=5,this.preLoadPromise;case 5:return A.a(2,this.core.room.videoManager.setVirtualBackground({type:t,imageUrl:C,blurLevel:B,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color,onAbort:function(A){var g;u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!0,u.isAborted,"ABORT_IN_VIDEO_MANAGER")}),u.isAborted=!0,u.core.clearStarted(u,u.getGroup()),u.stop(),delete u.preLoadPromise,null==(g=u.onAbort)||g.call(u,A)}}).then(function(){u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!1,u.isAborted,"NONE")})}).catch(function(A){throw u.core.kvStatManager.addEnum({key:Zg,value:u.getKVTypeValue(!0,u.isAborted,"OTHER")}),A}))}},A,this)})),function(A){return e.apply(this,arguments)})},{key:"update",value:(t=I(o().m(function A(g){var I,t,C=this;return o().w(function(A){for(;;)if(0===A.n)return I=g.type,t=g.src,I!==this.currentType&&(this.currentType=I),"color"===I&&"string"==typeof g.color&&(g.color=this.hexToRgb(g.color)),A.a(2,this.core.room.videoManager.setVirtualBackground({type:I,imageUrl:t,blurLevel:g.blurLevel,enableFaceCentering:g.enableFaceCentering,enableEffectOptimization:g.enableEffectOptimization,color:g.color}).then(function(){C.core.kvStatManager.addEnum({key:Zg,value:C.getKVTypeValue(!1,!1,"NONE")})}).catch(function(){C.core.kvStatManager.addEnum({key:Zg,value:C.getKVTypeValue(!0,!1,"OTHER")})}))},A,this)})),function(A){return t.apply(this,arguments)})},{key:"stop",value:(g=I(o().m(function A(){return o().w(function(A){for(;;)if(0===A.n)return A.a(2,this.core.room.videoManager.setVirtualBackground())},A,this)})),function(){return g.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(RA<90)return!1;var A=document.createElement("canvas").getContext("webgl2",jg);return!!(A&&A instanceof WebGL2RenderingContext)}}]);var g,t,e,r}();return p(Pg,"Name","VirtualBackground"),Pg});