x_ite
Version:
X_ITE X3D Browser, view and manipulate X3D, VRML, glTF and other 3D sources in HTML.
288 lines (247 loc) • 2.18 MB
JavaScript
/* X_ITE v12.2.3 */
const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-12.2.3")];
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ 447:
/***/ (() => {
/* (ignored) */
/***/ }),
/***/ 923:
/***/ (() => {
/* (ignored) */
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/************************************************************************/
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
// UNUSED EXPORTS: default
;// external "__X_ITE_X3D__ .Components"
const external_X_ITE_X3D_Components_namespaceObject = __X_ITE_X3D__ .Components;
var external_X_ITE_X3D_Components_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Components_namespaceObject);
;// external "__X_ITE_X3D__ .Fields"
const external_X_ITE_X3D_Fields_namespaceObject = __X_ITE_X3D__ .Fields;
var external_X_ITE_X3D_Fields_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Fields_namespaceObject);
;// external "__X_ITE_X3D__ .X3DFieldDefinition"
const external_X_ITE_X3D_X3DFieldDefinition_namespaceObject = __X_ITE_X3D__ .X3DFieldDefinition;
var external_X_ITE_X3D_X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DFieldDefinition_namespaceObject);
;// external "__X_ITE_X3D__ .FieldDefinitionArray"
const external_X_ITE_X3D_FieldDefinitionArray_namespaceObject = __X_ITE_X3D__ .FieldDefinitionArray;
var external_X_ITE_X3D_FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_FieldDefinitionArray_namespaceObject);
;// external "__X_ITE_X3D__ .X3DNode"
const external_X_ITE_X3D_X3DNode_namespaceObject = __X_ITE_X3D__ .X3DNode;
var external_X_ITE_X3D_X3DNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DNode_namespaceObject);
;// external "__X_ITE_X3D__ .X3DConstants"
const external_X_ITE_X3D_X3DConstants_namespaceObject = __X_ITE_X3D__ .X3DConstants;
var external_X_ITE_X3D_X3DConstants_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DConstants_namespaceObject);
;// external "__X_ITE_X3D__ .X3DCast"
const external_X_ITE_X3D_X3DCast_namespaceObject = __X_ITE_X3D__ .X3DCast;
var external_X_ITE_X3D_X3DCast_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DCast_namespaceObject);
;// external "__X_ITE_X3D__ .Matrix4"
const external_X_ITE_X3D_Matrix4_namespaceObject = __X_ITE_X3D__ .Matrix4;
var external_X_ITE_X3D_Matrix4_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Matrix4_namespaceObject);
;// external "__X_ITE_X3D__ .Namespace"
const external_X_ITE_X3D_Namespace_namespaceObject = __X_ITE_X3D__ .Namespace;
var external_X_ITE_X3D_Namespace_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Namespace_namespaceObject);
;// ./src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js
function X3DRigidJointNode (executionContext)
{
external_X_ITE_X3D_X3DNode_default().call (this, executionContext);
this .addType ((external_X_ITE_X3D_X3DConstants_default()).X3DRigidJointNode);
this .addChildObjects ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "collection", new (external_X_ITE_X3D_Fields_default()).SFNode ());
this .initialInverseMatrix1 = new (external_X_ITE_X3D_Matrix4_default()) ();
this .initialInverseMatrix2 = new (external_X_ITE_X3D_Matrix4_default()) ();
this .output = false;
}
Object .assign (Object .setPrototypeOf (X3DRigidJointNode .prototype, (external_X_ITE_X3D_X3DNode_default()).prototype),
{
initialize ()
{
external_X_ITE_X3D_X3DNode_default().prototype .initialize .call (this);
this ._forceOutput .addInterest ("set_forceOutput__", this);
this ._body1 .addInterest ("set_body1__", this);
this ._body2 .addInterest ("set_body2__", this);
this .set_forceOutput__ ();
this .set_body1__ ();
this .set_body2__ ();
},
setCollection (value)
{
this .removeJoint ();
this ._collection = value;
this .addJoint ();
},
getCollection ()
{
return this ._collection .getValue ();
},
getBody1 ()
{
return this .bodyNode1;
},
getBody2 ()
{
return this .bodyNode2;
},
getInitialInverseMatrix1 ()
{
return this .initialInverseMatrix1;
},
getInitialInverseMatrix2 ()
{
return this .initialInverseMatrix2;
},
setOutput (value)
{
this .output = value;
if (value)
{
if (this .bodyNode1)
this .bodyNode1 .addInterest ("update1", this);
if (this .bodyNode2)
this .bodyNode2 .addInterest ("update2", this);
}
else
{
if (this .bodyNode1)
this .bodyNode1 .removeInterest ("update1", this);
if (this .bodyNode2)
this .bodyNode2 .removeInterest ("update2", this);
}
},
addJoint ()
{ },
removeJoint ()
{ },
set_forceOutput__ ()
{ },
set_joint__ ()
{
this .removeJoint ();
this .addJoint ();
},
set_body1__ ()
{
this .removeJoint ();
if (this .bodyNode1)
{
this .bodyNode1 .removeInterest ("update1", this);
this .bodyNode1 ._collection .removeInterest ("set_joint__", this);
}
this .bodyNode1 = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).RigidBody, this ._body1);
if (this .bodyNode1)
{
this .bodyNode1 ._collection .addInterest ("set_joint__", this);
this .initialize1 ();
this .addJoint ();
this .setOutput (this .output);
}
},
set_body2__ ()
{
this .removeJoint ();
if (this .bodyNode2)
{
this .bodyNode2 .removeInterest ("update2", this);
this .bodyNode2 ._collection .removeInterest ("set_joint__", this);
}
this .bodyNode2 = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).RigidBody, this ._body2);
if (this .bodyNode2)
{
this .bodyNode2 ._collection .addInterest ("set_joint__", this);
this .initialize2 ();
this .addJoint ();
this .setOutput (this .output);
}
},
initialize1 ()
{
this .initialInverseMatrix1 .set (this .bodyNode1 ._position .getValue (), this .bodyNode1 ._orientation .getValue ());
this .initialInverseMatrix1 .inverse ();
},
initialize2 ()
{
this .initialInverseMatrix2 .set (this .bodyNode2 ._position .getValue (), this .bodyNode2 ._orientation .getValue ());
this .initialInverseMatrix2 .inverse ();
},
update1 ()
{ },
update2 ()
{ },
dispose ()
{
this .removeJoint ();
external_X_ITE_X3D_X3DNode_default().prototype .dispose .call (this);
},
});
Object .defineProperties (X3DRigidJointNode, external_X_ITE_X3D_X3DNode_default().getStaticProperties ("X3DRigidJointNode", "RigidBodyPhysics", 2));
const __default__ = X3DRigidJointNode;
;
/* harmony default export */ const RigidBodyPhysics_X3DRigidJointNode = (external_X_ITE_X3D_Namespace_default().add ("X3DRigidJointNode", __default__));
;// external "__X_ITE_X3D__ .Vector3"
const external_X_ITE_X3D_Vector3_namespaceObject = __X_ITE_X3D__ .Vector3;
var external_X_ITE_X3D_Vector3_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Vector3_namespaceObject);
;// ./src/lib/ammojs/ammo.js
var __webpack_dirname__ = "/";
// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed.
var Ammo = (function() {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
return (
function(Ammo) {
Ammo = Ammo || {};
var Module=typeof Ammo!=="undefined"?Ammo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&"function"==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__webpack_dirname__+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=__webpack_require__(447);if(!nodePath)nodePath=__webpack_require__(923);filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end<=_emscripten_get_heap_size()){HEAP32[DYNAMICTOP_PTR>>2]=end}else{var success=_emscripten_resize_heap(end);if(!success)return 0}return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_NONE=3;function Pointer_stringify(ptr,length){abort("this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!")}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STACK_BASE=27392,DYNAMIC_BASE=5270272,DYNAMICTOP_PTR=27136;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||67108864;if(INITIAL_TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}}updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}if(!Math.imul||Math.imul(4294967295,5)!==-5)Math.imul=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};if(!Math.clz32)Math.clz32=function(x){var n=32;var y=x>>16;if(y){n-=16;x=y}y=x>>8;if(y){n-=8;x=y}y=x>>4;if(y){n-=4;x=y}y=x>>2;if(y){n-=2;x=y}y=x>>1;if(y)return n-2;return n-x};if(!Math.trunc)Math.trunc=function(x){return x<0?Math.ceil(x):Math.floor(x)};var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var ASM_CONSTS=[function($0,$1,$2,$3){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("drawLine"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawLine.";self["drawLine"]($1,$2,$3)},function($0,$1,$2,$3,$4,$5){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("drawContactPoint"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawContactPoint.";self["drawContactPoint"]($1,$2,$3,$4,$5)},function($0,$1){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("reportErrorWarning"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::reportErrorWarning.";self["reportErrorWarning"]($1)},function($0,$1,$2){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("draw3dText"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::draw3dText.";self["draw3dText"]($1,$2)},function($0,$1){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("setDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::setDebugMode.";self["setDebugMode"]($1)},function($0){var self=Module["getCache"](Module["DebugDrawer"])[$0];if(!self.hasOwnProperty("getDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::getDebugMode.";return self["getDebugMode"]()},function($0,$1,$2,$3,$4,$5,$6,$7){var self=Module["getCache"](Module["ConcreteContactResultCallback"])[$0];if(!self.hasOwnProperty("addSingleResult"))throw"a JSImplementation must implement all functions, you forgot ConcreteContactResultCallback::addSingleResult.";return self["addSingleResult"]($1,$2,$3,$4,$5,$6,$7)}];function _emscripten_asm_const_diiiiiiii(code,a0,a1,a2,a3,a4,a5,a6,a7){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7)}function _emscripten_asm_const_iiii(code,a0,a1,a2){return ASM_CONSTS[code](a0,a1,a2)}function _emscripten_asm_const_iiiidii(code,a0,a1,a2,a3,a4,a5){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5)}function _emscripten_asm_const_iiiii(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_iii(code,a0,a1){return ASM_CONSTS[code](a0,a1)}__ATINIT__.push({func:function(){__GLOBAL__sub_I_btQuickprof_cpp()}});memoryInitializer="data:application/octet-stream;base64,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IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zLCB5b3UgZm9yZ290IERlYnVnRHJhd2VyOjpnZXREZWJ1Z01vZGUuJzsgcmV0dXJuIHNlbGZbJ2dldERlYnVnTW9kZSddKCk7IH0AeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdzZXREZWJ1Z01vZGUnKSkgdGhyb3cgJ2EgSlNJbXBsZW1lbnRhdGlvbiBtdXN0IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zLCB5b3UgZm9yZ290IERlYnVnRHJhd2VyOjpzZXREZWJ1Z01vZGUuJzsgc2VsZlsnc2V0RGVidWdNb2RlJ10oJDEpOyB9AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydEZWJ1Z0RyYXdlciddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgnZHJhdzNkVGV4dCcpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmRyYXczZFRleHQuJzsgc2VsZlsnZHJhdzNkVGV4dCddKCQxLCQyKTsgfQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ3JlcG9ydEVycm9yV2FybmluZycpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OnJlcG9ydEVycm9yV2FybmluZy4nOyBzZWxmWydyZXBvcnRFcnJvcldhcm5pbmcnXSgkMSk7IH0AeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdkcmF3Q29udGFjdFBvaW50JykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBEZWJ1Z0RyYXdlcjo6ZHJhd0NvbnRhY3RQb2ludC4nOyBzZWxmWydkcmF3Q29udGFjdFBvaW50J10oJDEsJDIsJDMsJDQsJDUpOyB9AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydEZWJ1Z0RyYXdlciddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgnZHJhd0xpbmUnKSkgdGhyb3cgJ2EgSlNJbXBsZW1lbnRhdGlvbiBtdXN0IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zLCB5b3UgZm9yZ290IERlYnVnRHJhd2VyOjpkcmF3TGluZS4nOyBzZWxmWydkcmF3TGluZSddKCQxLCQyLCQzKTsgfQAxMURlYnVnRHJhd2VyADEyYnRJRGVidWdEcmF3AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydDb25jcmV0ZUNvbnRhY3RSZXN1bHRDYWxsYmFjayddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgnYWRkU2luZ2xlUmVzdWx0JykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBDb25jcmV0ZUNvbnRhY3RSZXN1bHRDYWxsYmFjazo6YWRkU2luZ2xlUmVzdWx0Lic7IHJldHVybiBzZWxmWydhZGRTaW5nbGVSZXN1bHQnXSgkMSwkMiwkMywkNCwkNSwkNiwkNyk7IH0AMjlDb25jcmV0ZUNvbnRhY3RSZXN1bHRDYWxsYmFjawBOMTZidENvbGxpc2lvbldvcmxkMjFDb250YWN0UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQyNENsb3Nlc3RSYXlSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDE3UmF5UmVzdWx0Q2FsbGJhY2tFADE5YnRHaG9zdFBhaXJDYWxsYmFjawAyNWJ0T3ZlcmxhcHBpbmdQYWlyQ2FsbGJhY2sAMjBidERlZmF1bHRNb3Rpb25TdGF0ZQAxM2J0TW90aW9uU3RhdGUAMThidFZlaGljbGVSYXljYXN0ZXIATjE2YnRDb2xsaXNpb25Xb3JsZDI3Q2xvc2VzdENvbnZleFJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjBDb252ZXhSZXN1bHRDYWxsYmFja0UAMjNidERlZmF1bHRTb2Z0Qm9keVNvbHZlcgAxNmJ0U29mdEJvZHlTb2x2ZXIANDFidFNvZnRCb2R5UmlnaWRCb2R5Q29sbGlzaW9uQ29uZmlndXJhdGlvbgBOMzVidFNvZnRCb2R5Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFADMwYnRDb2xsaXNpb25BbGdvcml0aG1DcmVhdGVGdW5jAE4zNWJ0U29mdEJvZHlDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjlidFNvZnRSaWdpZENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjI4YnRTb2Z0U29mdENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAU29mdEJvZHlNYXRlcmlhbERhdGEAU29mdEJvZHlOb2RlRGF0YQBTb2Z0Qm9keUxpbmtEYXRhAFNvZnRCb2R5RmFjZURhdGEAU29mdEJvZHlUZXRyYURhdGEAU29mdFJpZ2lkQW5jaG9yRGF0YQBmbG9hdABTb2Z0Qm9keVBvc2VEYXRhAFNvZnRCb2R5Q2x1c3RlckRhdGEAaW50AGJ0U29mdEJvZHlKb2ludERhdGEAYnRTb2Z0Qm9keUZsb2F0RGF0YQAxMGJ0U29mdEJvZHkATjEwYnRTb2Z0Qm9keTE1UmF5RnJvbVRvQ2FzdGVyRQBONmJ0RGJ2dDhJQ29sbGlkZUUATjEwYnRTb2Z0Qm9keTVKb2ludEUATjEwYnRTb2Z0Qm9keTZDSm9pbnRFAFNvZnRCb2R5ADI0YnRTb2Z0Qm9keUNvbGxpc2lvblNoYXBlAFVwZGF0ZUNsdXN0ZXJzAFNvZnRCb2R5IGFwcGx5Rm9yY2VzAEFwcGx5Q2x1c3RlcnMAYnRDb252ZXhJbnRlcm5hbFNoYXBlRGF0YQBTT0ZUQ0xVU1RFUgAyN2J0U29mdENsdXN0ZXJDb2xsaXNpb25TaGFwZQBOMTVidFNvZnRDb2xsaWRlcnMxMkNvbGxpZGVDTF9SU0UATjE1YnRTb2Z0Q29sbGlkZXJzMTFDbHVzdGVyQmFzZUUATjE1YnRTb2Z0Q29sbGlkZXJzMTNDb2xsaWRlU0RGX1JTRQBOMTVidFNvZnRDb2xsaWRlcnMxMkNvbGxpZGVWRl9TU0UATjE1YnRTb2Z0Q29sbGlkZXJzMTJDb2xsaWRlQ0xfU1NFADI5YnRTb2Z0UmlnaWRDb2xsaXNpb25BbGdvcml0aG0AMjBidENvbGxpc2lvbkFsZ29yaXRobQBUcmlhbmdsZQAxNWJ0VHJpYW5nbGVTaGFwZQBOMTJidENvbnZleENhc3QxMENhc3RSZXN1bHRFAFpOMzVidFNvZnRCb2R5Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTIxY2FsY3VsYXRlVGltZU9mSW1wYWN0RVAxN2J0Q29sbGlzaW9uT2JqZWN0UzFfUksxNmJ0RGlzcGF0Y2hlckluZm9QMTZidE1hbmlmb2xkUmVzdWx0RTMxTG9jYWxUcmlhbmdsZVNwaGVyZUNhc3RDYWxsYmFjawAyNmJ0U29mdEJvZHlUcmlhbmdsZUNhbGxiYWNrADM1YnRTb2Z0Qm9keUNvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0Ac29sdmVTb2Z0Q29uc3RyYWludHMAcHJlZGljdFVuY29uc3RyYWludE1vdGlvblNvZnRCb2R5AHJheVRlc3QAMjNidFNvZnRTaW5nbGVSYXlDYWxsYmFjawAyM2J0QnJvYWRwaGFzZVJheUNhbGxiYWNrADI0YnRCcm9hZHBoYXNlQWFiYkNhbGxiYWNrADI0YnRTb2Z0UmlnaWREeW5hbWljc1dvcmxkADI4YnRTb2Z0U29mdENvbGxpc2lvbkFsZ29yaXRobQBidFJpZ2lkQm9keUZsb2F0RGF0YQAxMWJ0UmlnaWRCb2R5AGludGVybmFsU2luZ2xlU3RlcFNpbXVsYXRpb24AdXBkYXRlQWN0aW9ucwBjcmVhdGVQcmVkaWN0aXZlQ29udGFjdHMAcmVsZWFzZSBwcmVkaWN0aXZlIGNvbnRhY3QgbWFuaWZvbGRzAHByZWRpY3RpdmUgY29udmV4U3dlZXBUZXN0ADM0YnRDbG9zZXN0Tm90TWVDb252ZXhSZXN1bHRDYWxsYmFjawB1cGRhdGVBY3RpdmF0aW9uU3RhdGUAc29sdmVDb25zdHJhaW50cwBjYWxjdWxhdGVTaW11bGF0aW9uSXNsYW5kcwBpbnRlZ3JhdGVUcmFuc2Zvcm1zAENDRCBtb3Rpb24gY2xhbXBpbmcAYXBwbHkgc3BlY3VsYXRpdmUgY29udGFjdCByZXN0aXR1dGlvbgBwcmVkaWN0VW5jb25zdHJhaW50TW90aW9uAHN5bmNocm9uaXplTW90aW9uU3RhdGVzAHN0ZXBTaW11bGF0aW9uAGJ0RHluYW1pY3NXb3JsZEZsb2F0RGF0YQBkZWJ1Z0RyYXdXb3JsZAAyM2J0RGlzY3JldGVEeW5hbWljc1dvcmxkADE1YnREeW5hbWljc1dvcmxkADI3SW5wbGFjZVNvbHZlcklzbGFuZENhbGxiYWNrAE4yNWJ0U2ltdWxhdGlvbklzbGFuZE1hbmFnZXIxNElzbGFuZENhbGxiYWNrRQAxN2J0Rml4ZWRDb25zdHJhaW50AGJ0R2VuZXJpYzZEb2ZDb25zdHJhaW50RGF0YQAyM2J0R2VuZXJpYzZEb2ZDb25zdHJhaW50AGJ0R2VuZXJpYzZEb2ZTcHJpbmdDb25zdHJhaW50RGF0YQAyOWJ0R2VuZXJpYzZEb2ZTcHJpbmdDb25zdHJhaW50AGJ0UG9pbnQyUG9pbnRDb25zdHJhaW50RmxvYXREYXRhADIzYnRQb2ludDJQb2ludENvbnN0cmFpbnQAYnRUeXBlZENvbnN0cmFpbnRGbG9hdERhdGEAMTdidFR5cGVkQ29uc3RyYWludAAxM2J0VHlwZWRPYmplY3QAYnRTbGlkZXJDb25zdHJhaW50RGF0YQAxOGJ0U2xpZGVyQ29uc3RyYWludABidENvbmVUd2lzdENvbnN0cmFpbnREYXRhADIxYnRDb25lVHdpc3RDb25zdHJhaW50AGJ0SGluZ2VDb25zdHJhaW50RmxvYXREYXRhADE3YnRIaW5nZUNvbnN0cmFpbnQAc29sdmVHcm91cENhY2hlRnJpZW5kbHlJdGVyYXRpb25zAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5U2V0dXAAc29sdmVHcm91cAAzNWJ0U2VxdWVudGlhbEltcHVsc2VDb25zdHJhaW50U29sdmVyADE4YnRDb25zdHJhaW50U29sdmVyADE2YnRSYXljYXN0VmVoaWNsZQAxN2J0QWN0aW9uSW50ZXJmYWNlADI1YnREZWZhdWx0VmVoaWNsZVJheWNhc3RlcgA0M2J0S2luZW1hdGljQ2xvc2VzdE5vdE1lQ29udmV4UmVzdWx0Q2FsbGJhY2sAMzBidEtpbmVtYXRpY0NoYXJhY3RlckNvbnRyb2xsZXIAMzBidENoYXJhY3RlckNvbnRyb2xsZXJJbnRlcmZhY2UAMjJidFN1YnNpbXBsZXhDb252ZXhDYXN0ADEyYnRDb252ZXhDYXN0AGJ0Q29sbGlzaW9uT2JqZWN0RmxvYXREYXRhADE3YnRDb2xsaXNpb25PYmplY3QAMTNidEdob3N0T2JqZWN0ADI0YnRQYWlyQ2FjaGluZ0dob3N0T2JqZWN0ADIzYnRDb2xsaXNpb25QYWlyQ2FsbGJhY2sAMTdidE92ZXJsYXBDYWxsYmFjawAyMWJ0Q29sbGlzaW9uRGlzcGF0Y2hlcgAzMWJ0RGVmYXVsdENvbGxpc2lvbkNvbmZpZ3VyYXRpb24AMjRidENvbGxpc2lvbkNvbmZpZ3VyYXRpb24ATjMxYnRDb252ZXhQbGFuZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjI2YnRCb3hCb3hDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4zNGJ0U3BoZXJlVHJpYW5nbGVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4zMmJ0U3BoZXJlU3BoZXJlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMTZidEVtcHR5QWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjhidENvbXBvdW5kQ29sbGlzaW9uQWxnb3JpdGhtMTdTd2FwcGVkQ3JlYXRlRnVuY0UATjM2YnRDb21wb3VuZENvbXBvdW5kQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjhidENvbXBvdW5kQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0xN1N3YXBwZWRDcmVhdGVGdW5jRQBOMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFADI1YnRTaW11bGF0aW9uSXNsYW5kTWFuYWdlcgBpc2xhbmRVbmlvbkZpbmRBbmRRdWlja1NvcnQAcHJvY2Vzc0lzbGFuZHMAMzFidENvbnZleFBsYW5lQ29sbGlzaW9uQWxnb3JpdGhtAFpOMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0yMWNhbGN1bGF0ZVRpbWVPZkltcGFjdEVQMTdidENvbGxpc2lvbk9iamVjdFMxX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUzMUxvY2FsVHJpYW5nbGVTcGhlcmVDYXN0Q2FsbGJhY2sAMjRidENvbnZleFRyaWFuZ2xlQ2FsbGJhY2sAMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0AMjZidEJveEJveENvbGxpc2lvbkFsZ29yaXRobQAxNmJ0TWFuaWZvbGRSZXN1bHQATjM2YnREaXNjcmV0ZUNvbGxpc2lvbkRldGVjdG9ySW50ZXJmYWNlNlJlc3VsdEUAcGVyZm9ybURpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0aW9uAGRpc3BhdGNoQWxsQ29sbGlzaW9uUGFpcnMAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTE1TG9jYWxJbmZvQWRkZXIyAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUU5UmF5VGVzdGVyAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUyOUJyaWRnZVRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrXzAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTI5QnJpZGdlVHJpYW5nbGVSYXljYXN0Q2FsbGJhY2sAMTlidFNpbmdsZVJheUNhbGxiYWNrADE3RGVidWdEcmF3Y2FsbGJhY2sAY2FsY3VsYXRlT3ZlcmxhcHBpbmdQYWlycwB1cGRhdGVBYWJicwABT3ZlcmZsb3cgaW4gQUFCQiwgb2JqZWN0IHJlbW92ZWQgZnJvbSBzaW11bGF0aW9uAElmIHlvdSBjYW4gcmVwcm9kdWNlIHRoaXMsIHBsZWFzZSBlbWFpbCBidWdzQGNvbnRpbnVvdXNwaHlzaWNzLmNvbQoAUGxlYXNlIGluY2x1ZGUgYWJvdmUgaW5mb3JtYXRpb24sIHlvdXIgUGxhdGZvcm0sIHZlcnNpb24gb2YgT1MuCgBUaGFua3MuCgAxNmJ0Q29sbGlzaW9uV29ybGQAY29udmV4U3dlZXBDb21wb3VuZABaTjE2YnRDb2xsaXNpb25Xb3JsZDI1b2JqZWN0UXVlcnlTaW5nbGVJbnRlcm5hbEVQSzEzYnRDb252ZXhTaGFwZVJLMTFidFRyYW5zZm9ybVM1X1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMjBDb252ZXhSZXN1bHRDYWxsYmFja0VmRTE0TG9jYWxJbmZvQWRkZXIAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUzMkJyaWRnZVRyaWFuZ2xlQ29udmV4Y2FzdENhbGxiYWNrXzAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ2