@webarkit/jsartoolkit-nft
Version:
Emscripten port of ARToolKit5 to JavaScript. It is a lighter version of Jsartoolkit5 with only NFT markerless support
1 lines • 734 kB
JavaScript
var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}(function(){"use strict";let scope;if(typeof window!=="undefined"){scope=window}else if(typeof global!=="undefined"){scope=global}else{scope=self}const ARControllerNFT=function(width,height,cameraPara,internalLuma){this.id=undefined;const w=width,h=height;this.listeners={};this.width=w;this.height=h;this.nftMarkerCount=0;this.nftMarkers={};this.transform_mat=new Float32Array(16);this.transformGL_RH=new Float64Array(16);this.videoWidth=w;this.videoHeight=h;this.videoSize=this.videoWidth*this.videoHeight;this.framepointer=null;this.framesize=null;this.dataHeap=null;this.videoLuma=null;this.videoLumaInternal=internalLuma;this.camera_mat=null;this.videoLumaPointer=null;this._bwpointer=undefined;this._lumaCtx=undefined;this.version="1.7.4";console.info("JsartoolkitNFT ",this.version);console.warn("This library is deprecated, use the ES6 version instead!! It will be removed in a future release.");if(typeof cameraPara==="string"){this.cameraParam=new ARCameraParamNFT(cameraPara,function(){this._initialize()}.bind(this),function(err){console.error("ARControllerNFT: Failed to load ARCameraParamNFT",err);this.onload(err)}.bind(this))}else{this.cameraParam=cameraPara;this._initialize()}};ARControllerNFT.prototype.dispose=function(){if(this.id>-1){artoolkitNFT.teardown(this.id)}for(const t in this){this[t]=null}};ARControllerNFT.prototype.process=function(image){this._copyImageToHeap(image);let k,o;for(k in this.nftMarkers){o=this.nftMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}const nftMarkerCount=this.nftMarkerCount;this.detectNFTMarker();const MARKER_LOST_TIME=200;for(let i=0;i<nftMarkerCount;i++){const nftMarkerInfo=this.getNFTMarker(i);const markerType=artoolkitNFT.NFT_MARKER;if(nftMarkerInfo.found){self.markerFound=i;self.markerFoundTime=Date.now();const visible=this.trackNFTMarkerId(i);visible.matrix.set(nftMarkerInfo.pose);visible.inCurrent=true;this.transMatToGLMat(visible.matrix,this.transform_mat);this.transformGL_RH=this.arglCameraViewRHf(this.transform_mat);this.dispatchEvent({name:"getNFTMarker",target:this,data:{index:i,type:markerType,marker:nftMarkerInfo,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}})}else if(self.markerFound===i){if(Date.now()-self.markerFoundTime<=MARKER_LOST_TIME){return}delete self.markerFound;this.dispatchEvent({name:"lostNFTMarker",target:this,data:{index:i,type:markerType,marker:nftMarkerInfo,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}})}}};ARControllerNFT.prototype.detectNFTMarker=function(){artoolkitNFT.detectNFTMarker(this.id)};ARControllerNFT.prototype.trackNFTMarkerId=function(id,markerWidth){let obj=this.nftMarkers[id];if(!obj){this.nftMarkers[id]=obj={inPrevious:false,inCurrent:false,matrix:new Float64Array(12),matrixGL_RH:new Float64Array(12),markerWidth:markerWidth||this.defaultMarkerWidth}}if(markerWidth){obj.markerWidth=markerWidth}return obj};ARControllerNFT.prototype.addEventListener=function(name,callback){if(!this.listeners[name]){this.listeners[name]=[]}this.listeners[name].push(callback)};ARControllerNFT.prototype.removeEventListener=function(name,callback){if(this.listeners[name]){var index=this.listeners[name].indexOf(callback);if(index>-1){this.listeners[name].splice(index,1)}}};ARControllerNFT.prototype.dispatchEvent=function(event){const listeners=this.listeners[event.name];if(listeners){for(let i=0;i<listeners.length;i++){listeners[i].call(this,event)}}};ARControllerNFT.prototype.debugSetup=function(){this.setDebugMode(true);this._bwpointer=this.getProcessingImage()};ARControllerNFT.prototype.loadNFTMarkers=function(markerURLs,onSuccess,onError){const self=this;artoolkitNFT.addNFTMarkers(this.id,markerURLs,function(ids){self.nftMarkerCount+=ids.length;onSuccess(ids)},onError)};ARControllerNFT.prototype.loadNFTMarker=function(markerURL,onSuccess,onError){if(markerURL){this.loadNFTMarkers([markerURL],function(ids){onSuccess(ids[0])},onError)}else{if(onError){onError("Marker URL needs to be defined and not equal empty string!")}else{console.error("Marker URL needs to be defined and not equal empty string!")}}};ARControllerNFT.prototype.transMatToGLMat=function(transMat,glMat,scale){if(glMat==undefined){glMat=new Float64Array(16)}glMat[0+0*4]=transMat[0];glMat[0+1*4]=transMat[1];glMat[0+2*4]=transMat[2];glMat[0+3*4]=transMat[3];glMat[1+0*4]=transMat[4];glMat[1+1*4]=transMat[5];glMat[1+2*4]=transMat[6];glMat[1+3*4]=transMat[7];glMat[2+0*4]=transMat[8];glMat[2+1*4]=transMat[9];glMat[2+2*4]=transMat[10];glMat[2+3*4]=transMat[11];glMat[3+0*4]=0;glMat[3+1*4]=0;glMat[3+2*4]=0;glMat[3+3*4]=1;if(scale!=undefined&&scale!==0){glMat[12]*=scale;glMat[13]*=scale;glMat[14]*=scale}return glMat};ARControllerNFT.prototype.arglCameraViewRHf=function(glMatrix,glRhMatrix,scale){let m_modelview;if(glRhMatrix==undefined)m_modelview=new Float64Array(16);else m_modelview=glRhMatrix;m_modelview[0]=glMatrix[0];m_modelview[4]=glMatrix[4];m_modelview[8]=glMatrix[8];m_modelview[12]=glMatrix[12];m_modelview[1]=-glMatrix[1];m_modelview[5]=-glMatrix[5];m_modelview[9]=-glMatrix[9];m_modelview[13]=-glMatrix[13];m_modelview[2]=-glMatrix[2];m_modelview[6]=-glMatrix[6];m_modelview[10]=-glMatrix[10];m_modelview[14]=-glMatrix[14];m_modelview[3]=0;m_modelview[7]=0;m_modelview[11]=0;m_modelview[15]=1;if(scale!=undefined&&scale!==0){m_modelview[12]*=scale;m_modelview[13]*=scale;m_modelview[14]*=scale}glRhMatrix=m_modelview;return glRhMatrix};ARControllerNFT.prototype.getNFTMarker=function(markerIndex){return artoolkitNFT.getNFTMarker(this.id,markerIndex)};ARControllerNFT.prototype.getNFTData=function(index){return artoolkitNFT.getNFTData(this.id,index)};ARControllerNFT.prototype.getTransformationMatrix=function(){return this.transform_mat};ARControllerNFT.prototype.getCameraMatrix=function(){return this.camera_mat};ARControllerNFT.prototype.setDebugMode=function(mode){return artoolkitNFT.setDebugMode(this.id,mode)};ARControllerNFT.prototype.getDebugMode=function(){return artoolkitNFT.getDebugMode(this.id)};ARControllerNFT.prototype.getProcessingImage=function(){return artoolkitNFT.getProcessingImage(this.id)};ARControllerNFT.prototype.setLogLevel=function(mode){return artoolkitNFT.setLogLevel(mode)};ARControllerNFT.prototype.getLogLevel=function(){return artoolkitNFT.getLogLevel()};ARControllerNFT.prototype.setProjectionNearPlane=function(value){return artoolkitNFT.setProjectionNearPlane(this.id,value)};ARControllerNFT.prototype.getProjectionNearPlane=function(){return artoolkitNFT.getProjectionNearPlane(this.id)};ARControllerNFT.prototype.setProjectionFarPlane=function(value){return artoolkitNFT.setProjectionFarPlane(this.id,value)};ARControllerNFT.prototype.getProjectionFarPlane=function(){return artoolkitNFT.getProjectionFarPlane(this.id)};ARControllerNFT.prototype.setThresholdMode=function(mode){return artoolkitNFT.setThresholdMode(this.id,mode)};ARControllerNFT.prototype.getThresholdMode=function(){return artoolkitNFT.getThresholdMode(this.id)};ARControllerNFT.prototype.setThreshold=function(threshold){return artoolkitNFT.setThreshold(this.id,threshold)};ARControllerNFT.prototype.getThreshold=function(){return artoolkitNFT.getThreshold(this.id)};ARControllerNFT.prototype.setImageProcMode=function(mode){return artoolkitNFT.setImageProcMode(this.id,mode)};ARControllerNFT.prototype.getImageProcMode=function(){return artoolkitNFT.getImageProcMode(this.id)};ARControllerNFT.prototype._initialize=function(){this.id=artoolkitNFT.setup(this.width,this.height,this.cameraParam.id);this._initNFT();this.framesize=this.width*this.height;this.videoLuma=new Uint8Array(this.framesize);this.camera_mat=artoolkitNFT.getCameraLens(this.id);this.setProjectionNearPlane(.1);this.setProjectionFarPlane(1e3);setTimeout(function(){if(this.onload){this.onload()}this.dispatchEvent({name:"load",target:this})}.bind(this),1)};ARControllerNFT.prototype._initNFT=function(){artoolkitNFT.setupAR2(this.id)};ARControllerNFT.prototype._copyImageToHeap=function(image){if(!image){console.error("Error: no provided imageData to ARControllerNFT");return}if(image.data){var imageData=image}const data=imageData.data;if(this.videoLuma&&!this.videoLumaInternal){let q=0;for(let p=0;p<this.videoSize;p++){const r=data[q],g=data[q+1],b=data[q+2];this.videoLuma[p]=r+r+r+b+g+g+g+g>>3;q+=4}}if(this.videoLuma){artoolkitNFT.passVideoData(this.id,data,this.videoLuma,this.videoLumaInternal);return true}return false};const ARCameraParamNFT=function(src,onload,onerror){this.id=-1;this._src="";this.complete=false;if(!onload){this.onload=function(){console.log("Successfully loaded")};console.warn("onload callback should be defined")}else{this.onload=onload}if(!onerror){this.onerror=function(err){console.error("Error: "+err)};console.warn("onerror callback should be defined")}else{this.onerror=onerror}if(src){this.load(src)}else{console.warn("No camera parameter file defined! It should be defined in constructor or in ARCameraParamNFT.load(url)")}};ARCameraParamNFT.prototype.load=function(src){if(this._src!==""){throw"ARCameraParamNFT: Trying to load camera parameters twice."}this._src=src;if(src){artoolkitNFT.loadCamera(src,function(id){this.id=id;this.complete=true;this.onload()}.bind(this),function(err){this.onerror(err)}.bind(this))}};Object.defineProperty(ARCameraParamNFT.prototype,"src",{set:function(src){this.load(src)},get:function(){return this._src}});ARCameraParamNFT.prototype.dispose=function(){if(this.id!==-1){artoolkitNFT.deleteCamera(this.id)}this.id=-1;this._src="";this.complete=false};const artoolkitNFT={UNKNOWN_MARKER:-1,NFT_MARKER:0,loadCamera,addNFTMarker,addNFTMarkers};const FUNCTIONS=["setup","teardown","setupAR2","setLogLevel","getLogLevel","setDebugMode","getDebugMode","getProcessingImage","detectNFTMarker","getNFTMarker","getNFTData","setProjectionNearPlane","getProjectionNearPlane","setProjectionFarPlane","getProjectionFarPlane","setThresholdMode","getThresholdMode","setThreshold","getThreshold","setImageProcMode","getImageProcMode","getCameraLens","passVideoData"];function runWhenLoaded(){FUNCTIONS.forEach(function(n){artoolkitNFT[n]=Module[n]});for(const m in Module){if(m.match(/^AR/))artoolkitNFT[m]=Module[m]}}let marker_count=0;function addNFTMarker(arId,url,callback,onError){const mId=marker_count++;const prefix="/markerNFT_"+mId;const filename1=prefix+".fset";const filename2=prefix+".iset";const filename3=prefix+".fset3";ajax(url+".fset",filename1,function(){ajax(url+".iset",filename2,function(){ajax(url+".fset3",filename3,function(){var nftMarker=Module._addNFTMarker(arId,prefix);if(callback)callback(nftMarker)},function(errorNumber){if(onError)onError(errorNumber)})},function(errorNumber){if(onError)onError(errorNumber)})},function(errorNumber){if(onError)onError(errorNumber)})}function addNFTMarkers(arId,urls,callback,onerror){const prefixes=[];let pending=urls.length*3;const onSuccess=filename=>{pending-=1;if(pending===0){const vec=new Module.StringList;const markerIds=[];for(let i=0;i<prefixes.length;i++){vec.push_back(prefixes[i])}const ret=Module._addNFTMarkers(arId,vec);for(let i=0;i<ret.size();i++){markerIds.push(ret.get(i))}console.log("add nft marker ids: ",markerIds);if(callback)callback(markerIds)}};const onError=(filename,errorNumber)=>{console.log("failed to load: ",filename);onerror(errorNumber)};const loadZFT=prefix=>{const marker_num=prefix.substring(11);const prefixTemp="/tempMarkerNFT_"+marker_num;const response=Module._decompressZFT(prefix,prefixTemp);let contentIsetUint8=FS.readFile(prefixTemp+".iset");let contentFsetUint8=FS.readFile(prefixTemp+".fset");let contentFset3Uint8=FS.readFile(prefixTemp+".fset3");FS.unlink(prefixTemp+".iset");FS.unlink(prefixTemp+".fset");FS.unlink(prefixTemp+".fset3");let hexStrIset=Uint8ArrayToStr(contentIsetUint8);let hexStrFset=Uint8ArrayToStr(contentFsetUint8);let hexStrFset3=Uint8ArrayToStr(contentFset3Uint8);let contentIset=new Uint8Array(hexStrIset.match(/.{1,2}/g).map(byte=>parseInt(byte,16)));let contentFset=new Uint8Array(hexStrFset.match(/.{1,2}/g).map(byte=>parseInt(byte,16)));let contentFset3=new Uint8Array(hexStrFset3.match(/.{1,2}/g).map(byte=>parseInt(byte,16)));writeByteArrayToFS(prefix+".fset",contentFset,function(){});writeByteArrayToFS(prefix+".iset",contentIset,function(){});writeByteArrayToFS(prefix+".fset3",contentFset3,function(){})};const onSuccessZFT=function(){loadZFT(arguments[1]);onSuccess()};for(let i=0;i<urls.length;i++){const url=urls[i];const prefix="/markerNFT_"+marker_count;prefixes.push(prefix);const filename1=prefix+".fset";const filename2=prefix+".iset";const filename3=prefix+".fset3";const filename4=prefix+".zft";let type=checkZFT(url+".zft");if(type){pending-=2;ajax(url+".zft",filename4,onSuccessZFT,onError.bind(filename4),prefix)}else{ajax(url+".fset",filename1,onSuccess.bind(filename1),onError.bind(filename1),prefix);ajax(url+".iset",filename2,onSuccess.bind(filename2),onError.bind(filename2),prefix);ajax(url+".fset3",filename3,onSuccess.bind(filename3),onError.bind(filename3),prefix)}marker_count+=1}}function checkZFT(url){let isZFT=null;let request=new XMLHttpRequest;request.open("GET",url,false);request.send(null);if(request.status===200){isZFT=true}else if(request.status===404){isZFT=false}return isZFT}function Uint8ArrayToStr(array){let out,i,len,c;let char2,char3;out="";len=array.length;i=0;while(i<len){c=array[i++];switch(c>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=String.fromCharCode(c);break;case 12:case 13:char2=array[i++];out+=String.fromCharCode((c&31)<<6|char2&63);break;case 14:char2=array[i++];char3=array[i++];out+=String.fromCharCode((c&15)<<12|(char2&63)<<6|(char3&63)<<0);break}}return out}let camera_count=0;function loadCamera(url,callback,errorCallback){const filename="/camera_param_"+camera_count++;const writeCallback=function(errorCode){const id=Module._loadCamera(filename);if(!Module._loadCamera){if(callback)callback(id);setTimeout(writeCallback,10)}else{if(callback)callback(id)}};if(typeof url==="object"){writeByteArrayToFS(filename,url,writeCallback)}else if(url.indexOf("\n")>-1){writeStringToFS(filename,url,writeCallback)}else{ajax(url,filename,writeCallback,errorCallback)}}function writeStringToFS(target,string,callback){const byteArray=new Uint8Array(string.length);for(let i=0;i<byteArray.length;i++){byteArray[i]=string.charCodeAt(i)&255}writeByteArrayToFS(target,byteArray,callback)}function writeByteArrayToFS(target,byteArray,callback,prefix){FS.writeFile(target,byteArray,{encoding:"binary"});callback(byteArray,prefix)}function ajax(url,target,callback,errorCallback,prefix){const oReq=new XMLHttpRequest;oReq.open("GET",url,true);oReq.responseType="arraybuffer";oReq.onload=function(){if(this.status==200){const arrayBuffer=oReq.response;const byteArray=new Uint8Array(arrayBuffer);writeByteArrayToFS(target,byteArray,callback,prefix)}else{errorCallback(this.status)}};oReq.send()}scope.artoolkitNFT=artoolkitNFT;scope.ARControllerNFT=ARControllerNFT;scope.ARCameraParamNFT=ARCameraParamNFT;if(scope.Module){scope.Module.onRuntimeInitialized=function(){runWhenLoaded();const event=new Event("artoolkitNFT-loaded");scope.dispatchEvent(event)}}else{scope.Module={onRuntimeInitialized:function(){runWhenLoaded()}}}})();var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){var preRuns=Module["preRun"];if(preRuns){if(typeof preRuns=="function")preRuns=[preRuns];preRuns.forEach(addOnPreRun)}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){var postRuns=Module["postRun"];if(postRuns){if(typeof postRuns=="function")postRuns=[postRuns];postRuns.forEach(addOnPostRun)}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="data:application/octet-stream;base64,AGFzbQEAAAABngVVYAF/AX9gAX8AYAJ/fwBgA39/fwF/YAJ/fwF/YAN/f38AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gBn9/f39/fwF/YAV/f39/fwF/YAZ/f39/f38AYAd/f39/f39/AGAIf39/f39/f38Bf2AAAGAHf39/f39/fwF/YAABf2AFf35+fn4AYAF9AX1gA39+fwF+YAJ/fABgBX9/f39+AX9gCn9/f39/f39/f38AYAh/f39/f39/fwBgA39/fwF9YAp/f39/f39/f39/AX9gAX8BfGAEf35+fwBgB39/f39/fn4Bf2AGf39/f35+AX9gA39/fABgA39/fwF8YAF/AX1gAXwBfWADf399AGACfH8BfGAFf319f38Bf2AGf399fX9/AX9gAXwBfGAMf39/f39/f39/f39/AX9gA39/fwF+YA9/f39/f39/f39/f39/f38AYAt/f39/f39/f39/fwF/YAR/f39/AX5gBX9/fn9/AGAGf3x/f39/AX9gAX8BfmAGf39/f35/AX9gBX9/f398AX9gBX9/f39/AXxgDX9/f39/f39/f39/f38AYAABfGADf319AX1gBX99fX9/AX1gAn9+AGACfX0BfWAEfn5+fgF/YAR/f399AGACfn8Bf2ABfQF/YAN8fH8BfGACfHwBfGAHf39/f39/fQF9YAd/f39/f39/AX1gA39/fQF9YAN/fn8AYAJ+fgF8YAR/f39+AX5gAn5+AX1gA35+fgF/YAN/f34AYAJ/fwF+YAR/fn5+AGACf30BfWACfX8Bf2ACfH8Bf2AFf399fX8Bf2ACf38BfWADf399AX9gBX9/f319AGAGf3x8f39/AGAGf39/f399AGAEf39+fgBgAn9/AXxgCX9/f39/f39/fwF/AugCOwFhAWEABQFhAWIAFgFhAWMAFwFhAWQAAQFhAWUABgFhAWYABQFhAWcABAFhAWgAAgFhAWkABgFhAWoABQFhAWsAAwFhAWwAMQFhAW0ACwFhAW4AAgFhAW8AMgFhAXAABQFhAXEAAwFhAXIAAAFhAXMACAFhAXQAAwFhAXUAMwFhAXYAAgFhAXcABQFhAXgABAFhAXkAHgFhAXoACAFhAUEAAwFhAUIABQFhAUMABwFhAUQABQFhAUUACgFhAUYADAFhAUcADgFhAUgAAAFhAUkAAAFhAUoA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RQRAIAMoAgAMAQsgAEG6+gFBiYoCIAUbEKwECyIDNgIAIANBf0YNASAAQQFqIgBBBkcNAAtBABCrBEUEQEHY4AMhASAEQdjgA0EYEOcBRQ0CQfDgAyEBIARB8OADQRgQ5wFFDQJBACEAQbD5BC0AAEUEQANAIABBAnRBgPkEaiAAQYmKAhCsBDYCACAAQQFqIgBBBkcNAAtBsPkEQQE6AABBmPkEQYD5BCgCADYCAAtBgPkEIQEgAkEIaiIAQYD5BEEYEOcBRQ0CQZj5BCEBIABBmPkEQRgQ5wFFDQJBGBBBIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQaT7BEEBOgAAQaD7BCABNgIAIAELuwoCBX8PfiMAQeAAayIFJAAgBEL///////8/gyEMIAIgBIVCgICAgICAgICAf4MhCiACQv///////z+DIg1CIIghDiAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEQgAhAVAEQEKAgICAgIDg//8AIQoMAwsgCkKAgICAgIDA//8AhCEKDAILIAEgC4RQBEBCACEBDAILIAIgA4RQBEBCACEBDAILIAtC////////P1gEQCAFQdAAaiABIA0gASANIA1QIgYbeSAGQQZ0rXynIgZBD2sQfUEQIAZrIQYgBSkDWCINQiCIIQ4gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAwgAyAMIAxQIggbeSAIQQZ0rXynIghBD2sQfSAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECAL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