jolt-physics
Version:
A WebAssembly port of JoltPhysics, a rigid body physics and collision detection library, suitable for games and VR applications
64 lines (62 loc) • 4.54 MB
JavaScript
// SPDX-FileCopyrightText: 2022-2024 Jorrit Rouwe
// SPDX-License-Identifier: MIT
// This is Web Assembly version of Jolt Physics, see: https://github.com/jrouwe/JoltPhysics.js
var Jolt = (() => {
var _scriptName = import.meta.url;
return (
async function(moduleArg = {}) {
var moduleRtn;
var b=moduleArg,aa,ba,aaa=new Promise((a,c)=>{aa=a;ba=c}),ca="object"==typeof window,da="undefined"!=typeof WorkerGlobalScope,ea="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,fa=da&&self.name?.startsWith("em-pthread");if(ea){const {createRequire:a}=await import("module");var require=a(import.meta.url),ha=require("worker_threads");global.Worker=ha.Worker;fa=(da=!ha.zRa)&&"em-pthread"==ha.workerData}
var ia={...b},ja="./this.program",ka=(a,c)=>{throw c;},la="",ma;
if(ea){var fs=require("fs"),baa=require("path");import.meta.url.startsWith("data:")||(la=baa.dirname(require("url").fileURLToPath(import.meta.url))+"/");ma=a=>{a=caa(a)?new URL(a):a;return fs.readFileSync(a)};!b.thisProgram&&1<process.argv.length&&(ja=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);ka=(a,c)=>{process.exitCode=a;throw c;}}else if(ca||da)da?la=self.location.href:"undefined"!=typeof document&&document.currentScript&&(la=document.currentScript.src),_scriptName&&
(la=_scriptName),la.startsWith("blob:")?la="":la=la.slice(0,la.replace(/[?#].*/,"").lastIndexOf("/")+1),ea||da&&(ma=a=>{var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var na=console.log.bind(console),oa=console.error.bind(console);ea&&(na=(...a)=>fs.writeSync(1,a.join(" ")+"\n"),oa=(...a)=>fs.writeSync(2,a.join(" ")+"\n"));var pa=b.print||na,qa=b.printErr||oa;Object.assign(b,ia);ia=null;b.thisProgram&&(ja=b.thisProgram);
var ra=b.wasmBinary,sa,ta,ua=!1,va,wa,xa,ya,za,Aa,Ba=!1,caa=a=>a.startsWith("file://");
if(fa){var Ca;if(ea){var Da=ha.parentPort;Da.on("message",e=>onmessage({data:e}));Object.assign(globalThis,{self:global,postMessage:e=>Da.postMessage(e)})}var Ea=!1;function a(...e){ea?fs.writeSync(2,e.join(" ")+"\n"):console.error(...e)}b.printErr||(qa=a);self.onunhandledrejection=e=>{throw e.reason||e;};function c(e){try{var f=e.data,h=f.gEa;if("load"===h){let k=[];self.onmessage=n=>k.push(n);self.startWorker=()=>{postMessage({gEa:"loaded"});for(let n of k)c(n);self.onmessage=c};for(const n of f.oNa)if(!b[n]||
b[n].proxy)b[n]=(...y)=>{postMessage({gEa:"callHandler",nNa:n,args:y})},"print"==n&&(pa=b[n]),"printErr"==n&&(qa=b[n]);sa=f.xRa;Fa();Ca(f.yRa)}else if("run"===h){daa(f.XDa);Ga(f.XDa,0,0,1,0,0);Ha();Ia(f.XDa);Ea||=!0;try{Ja(f.uRa,f.DEa)}catch(k){if("unwind"!=k)throw k;}}else"setimmediate"!==f.target&&("checkMailbox"===h?Ea&&Ka():h&&(qa(`worker: received unknown command ${h}`),qa(f)))}catch(k){throw La(),k;}}self.onmessage=c}
function Fa(){var a=sa.buffer;b.HEAP8=wa=new Int8Array(a);b.HEAP16=new Int16Array(a);b.HEAPU8=xa=new Uint8Array(a);b.HEAPU16=new Uint16Array(a);b.HEAP32=ya=new Int32Array(a);b.HEAPU32=za=new Uint32Array(a);b.HEAPF32=new Float32Array(a);b.HEAPF64=Aa=new Float64Array(a)}if(!fa){if(b.wasmMemory)sa=b.wasmMemory;else{var Ma=b.INITIAL_MEMORY||134217728;sa=new WebAssembly.Memory({initial:Ma/65536,maximum:Ma/65536,shared:!0})}Fa()}function Na(){Ba=!0;fa?startWorker(b):(Oa(Pa),d.A())}var Qa=0,Ra=null;
function Sa(){Qa++;b.monitorRunDependencies?.(Qa)}function Ta(){Qa--;b.monitorRunDependencies?.(Qa);if(0==Qa&&Ra){var a=Ra;Ra=null;a()}}function Ua(a){b.onAbort?.(a);a="Aborted("+a+")";qa(a);ua=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var Va;async function eaa(a){if(!ArrayBuffer.isView(a))if(a==Va&&ra)a=new Uint8Array(ra);else if(ma)a=ma(a);else throw"both async and sync fetching of the wasm failed";return a}
async function faa(a){var c=Va;try{var e=await eaa(c);return await WebAssembly.instantiate(e,a)}catch(f){qa(`failed to asynchronously prepare wasm: ${f}`),Ua(f)}}async function gaa(a){return faa(a)}function Xa(){Ya={x:Za,l:haa,j:iaa,v:jaa,k:kaa,g:laa,i:Ia,h:maa,p:naa,d:oaa,b:paa,z:qaa,e:raa,y:saa,n:taa,c:uaa,o:vaa,u:waa,q:$a,r:ab,w:bb,s:cb,t:db,m:eb,f:fb,a:sa};return{a:Ya}}class gb{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
var hb=a=>{a.terminate();a.onmessage=()=>{}},Oa=a=>{for(;0<a.length;)a.shift()(b)},ib=[],ob=a=>{0==jb.length&&(kb(),lb(jb[0]));var c=jb.pop();if(!c)return 6;mb.push(c);nb[a.XDa]=c;c.XDa=a.XDa;var e={gEa:"run",uRa:a.tRa,DEa:a.DEa,XDa:a.XDa};ea&&c.unref();c.postMessage(e,a.fJa);return 0},pb=0,ub=(a,c,...e)=>{for(var f=e.length,h=qb(),k=rb(8*f),n=k>>3,y=0;y<e.length;y++)Aa[n+y]=e[y];a=sb(a,0,f,k,c);tb(h);return a};
function vb(a){if(fa)return ub(0,1,a);va=a;if(!(wb||0<pb)){for(var c of mb)hb(c);for(c of jb)hb(c);jb=[];mb=[];nb={};b.onExit?.(a);ua=!0}ka(a,new gb(a))}function xb(a){if(fa)return ub(1,0,a);bb(a)}var bb=a=>{va=a;if(fa)throw xb(a),"unwind";vb(a)},jb=[],mb=[],yb=[],nb={};function xaa(){for(var a=16;a--;)kb();ib.unshift(()=>{Sa();yaa(()=>Ta())})}var Ab=a=>{var c=a.XDa;delete nb[c];jb.push(a);mb.splice(mb.indexOf(a),1);a.XDa=0;zb(c)};function Ha(){yb.forEach(a=>a())}
var lb=a=>new Promise(c=>{a.onmessage=k=>{k=k.data;var n=k.gEa;if(k.hGa&&k.hGa!=Bb()){var y=nb[k.hGa];y?y.postMessage(k,k.fJa):qa(`Internal error! Worker sent a message "${n}" to target pthread ${k.hGa}, but that thread no longer exists!`)}else if("checkMailbox"===n)Ka();else if("spawnThread"===n)ob(k);else if("cleanupThread"===n)Ab(nb[k.vRa]);else if("loaded"===n)a.loaded=!0,ea&&!a.XDa&&a.unref(),c(a);else if("setimmediate"===k.target)a.postMessage(k);else if("callHandler"===n)b[k.nNa](...k.args);
else n&&qa(`worker sent an unknown command ${n}`)};a.onerror=k=>{qa(`${"worker sent an error!"} ${k.filename}:${k.lineno}: ${k.message}`);throw k;};ea&&(a.on("message",k=>a.onmessage({data:k})),a.on("error",k=>a.onerror(k)));var e=[],f=["onExit","onAbort","print","printErr"],h;for(h of f)b.propertyIsEnumerable(h)&&e.push(h);a.postMessage({gEa:"load",oNa:e,xRa:sa,yRa:ta})});function yaa(a){fa?a():Promise.all(jb.map(lb)).then(a)}
function kb(){if(b.mainScriptUrlOrBlob){var a=b.mainScriptUrlOrBlob;"string"!=typeof a&&(a=URL.createObjectURL(a));a=new Worker(a,{type:"module",workerData:"em-pthread",name:"em-pthread"})}else a=new Worker(new URL("jolt-physics.multithread.wasm-compat.js",import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});jb.push(a)}
var Cb=[],zaa=a=>{if(ea)return a=Buffer.from(a,"base64"),new Uint8Array(a.buffer,a.byteOffset,a.length);for(var c,e,f=0,h=0,k=a.length,n=new Uint8Array((3*k>>2)-("="==a[k-2])-("="==a[k-1]));f<k;f+=4,h+=3)c=Db[a.charCodeAt(f+1)],e=Db[a.charCodeAt(f+2)],n[h]=Db[a.charCodeAt(f)]<<2|c>>4,n[h+1]=c<<4|e>>2,n[h+2]=e<<6|Db[a.charCodeAt(f+3)];return n},daa=a=>{var c=za[a+52>>2];Eb(c,c-za[a+56>>2]);tb(c)},Fb=[],Gb,Ja=(a,c)=>{wb=pb=0;var e=Fb[a];e||(Fb[a]=e=Gb.get(a));a=e(c);wb||0<pb?va=a:Hb(a)},wb=b.noExitRuntime||
!0;function Ib(a,c,e,f){return fa?ub(2,1,a,c,e,f):Za(a,c,e,f)}
var Za=(a,c,e,f)=>{if("undefined"==typeof SharedArrayBuffer)return 6;var h=[];if(fa&&0===h.length)return Ib(a,c,e,f);a={tRa:e,XDa:a,DEa:f,fJa:h};return fa?(a.gEa="spawnThread",postMessage(a,h),0):ob(a)},haa=()=>Ua(""),iaa=a=>{Ga(a,!da,1,!ca,1048576,!1);Ha()},Ia=a=>{"function"===typeof Atomics.wRa&&(Atomics.wRa(ya,a>>2,a).value.then(Ka),Atomics.store(ya,a+128>>2,1))},Ka=()=>{var a=Bb();if(a&&(Ia(a),a=Jb,!ua))try{if(a(),!(wb||0<pb))try{fa?Hb(va):bb(va)}catch(c){c instanceof gb||"unwind"==c||ka(1,c)}}catch(c){c instanceof
gb||"unwind"==c||ka(1,c)}},jaa=(a,c)=>{a==c?setTimeout(Ka):fa?postMessage({hGa:a,gEa:"checkMailbox"}):(a=nb[a])&&a.postMessage({gEa:"checkMailbox"})},Kb=[],kaa=(a,c,e,f,h)=>{Kb.length=f;e=h>>3;for(h=0;h<f;h++)Kb[h]=Aa[e+h];return(c?Lb[c]:Aaa[a])(...Kb)},laa=a=>{fa?postMessage({gEa:"cleanupThread",vRa:a}):Ab(nb[a])},maa=a=>{ea&&nb[a].ref()},Mb=(a,c,e,f)=>{if(0<f){f=e+f-1;for(var h=0;h<a.length;++h){var k=a.charCodeAt(h);if(55296<=k&&57343>=k){var n=a.charCodeAt(++h);k=65536+((k&1023)<<10)|n&1023}if(127>=
k){if(e>=f)break;c[e++]=k}else{if(2047>=k){if(e+1>=f)break;c[e++]=192|k>>6}else{if(65535>=k){if(e+2>=f)break;c[e++]=224|k>>12}else{if(e+3>=f)break;c[e++]=240|k>>18;c[e++]=128|k>>12&63}c[e++]=128|k>>6&63}c[e++]=128|k&63}}c[e]=0}},naa=(a,c,e,f)=>{var h=(new Date).getFullYear(),k=(new Date(h,0,1)).getTimezoneOffset();h=(new Date(h,6,1)).getTimezoneOffset();za[a>>2]=60*Math.max(k,h);ya[c>>2]=Number(k!=h);c=n=>{var y=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(y/60)).padStart(2,"0")}${String(y%
60).padStart(2,"0")}`};a=c(k);c=c(h);h<k?(Mb(a,xa,e,17),Mb(c,xa,f,17)):(Mb(a,xa,f,17),Mb(c,xa,e,17))},uaa=()=>performance.timeOrigin+performance.now(),Nb=[],Ob=(a,c,e)=>{Nb.length=0;for(var f;f=xa[c++];){var h=105!=f;h&=112!=f;e+=h&&e%8?4:0;Nb.push(112==f?za[e>>2]:105==f?ya[e>>2]:Aa[e>>3]);e+=h?8:4}return Lb[a](...Nb)},oaa=(a,c,e)=>Ob(a,c,e),paa=(a,c,e)=>Ob(a,c,e),qaa=(a,c,e)=>Ob(a,c,e),raa=()=>{},saa=()=>{pb+=1;throw"unwind";},taa=()=>xa.length,vaa=()=>ea?require("os").cpus().length:navigator.hardwareConcurrency,
waa=()=>{Ua("OOM")},Pb={},Rb=()=>{if(!Qb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ja||"./this.program"},c;for(c in Pb)void 0===Pb[c]?delete a[c]:a[c]=Pb[c];var e=[];for(c in a)e.push(`${c}=${a[c]}`);Qb=e}return Qb},Qb;
function $a(a,c){if(fa)return ub(3,1,a,c);var e=0;Rb().forEach((f,h)=>{var k=c+e;h=za[a+4*h>>2]=k;for(k=0;k<f.length;++k)wa[h++]=f.charCodeAt(k);wa[h]=0;e+=f.length+1});return 0}function ab(a,c){if(fa)return ub(4,1,a,c);var e=Rb();za[a>>2]=e.length;var f=0;e.forEach(h=>f+=h.length+1);za[c>>2]=f;return 0}function cb(a){return fa?ub(5,1,a):52}function db(a,c,e,f){return fa?ub(6,1,a,c,e,f):52}function eb(a,c,e,f,h){return fa?ub(7,1,a,c,e,f,h):70}
var Baa=[null,[],[]],Sb="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Tb=(a,c=0)=>{for(var e=c+NaN,f=c;a[f]&&!(f>=e);)++f;if(16<f-c&&a.buffer&&Sb)return Sb.decode(a.buffer instanceof ArrayBuffer?a.subarray(c,f):a.slice(c,f));for(e="";c<f;){var h=a[c++];if(h&128){var k=a[c++]&63;if(192==(h&224))e+=String.fromCharCode((h&31)<<6|k);else{var n=a[c++]&63;h=224==(h&240)?(h&15)<<12|k<<6|n:(h&7)<<18|k<<12|n<<6|a[c++]&63;65536>h?e+=String.fromCharCode(h):(h-=65536,e+=String.fromCharCode(55296|h>>
10,56320|h&1023))}}else e+=String.fromCharCode(h)}return e};function fb(a,c,e,f){if(fa)return ub(8,1,a,c,e,f);for(var h=0,k=0;k<e;k++){var n=za[c>>2],y=za[c+4>>2];c+=8;for(var R=0;R<y;R++){var Wa=a,Wd=xa[n+R],Ng=Baa[Wa];0===Wd||10===Wd?((1===Wa?pa:qa)(Tb(Ng)),Ng.length=0):Ng.push(Wd)}h+=y}za[f>>2]=h;return 0}var Pa=[];fa||xaa();for(var Db=new Uint8Array(123),Ub=25;0<=Ub;--Ub)Db[48+Ub]=52+Ub,Db[65+Ub]=Ub,Db[97+Ub]=26+Ub;Db[43]=62;Db[47]=63;
var Aaa=[vb,xb,Ib,$a,ab,cb,db,eb,fb],Lb={58842:a=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetPathMaxFraction"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPathMaxFraction.";return a.GetPathMaxFraction()},59109:(a,c,e)=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetClosestPoint"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetClosestPoint.";return a.GetClosestPoint(c,
e)},59372:(a,c,e,f,h,k)=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetPointOnPath"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPointOnPath.";a.GetPointOnPath(c,e,f,h,k)},59634:(a,c,e)=>{a=b.getCache(b.GroupFilterJS)[a];if(!a.hasOwnProperty("CanCollide"))throw"a JSImplementation must implement all functions, you forgot GroupFilterJS::CanCollide.";return a.CanCollide(c,e)},59868:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveBody"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveBody.";
return a.ShouldSaveBody(c)},60127:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveConstraint"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveConstraint.";return a.ShouldSaveConstraint(c)},60404:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveContact.";return a.ShouldSaveContact(c,
e)},60675:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldRestoreContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldRestoreContact.";return a.ShouldRestoreContact(c,e)},60955:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsEOF"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsEOF.";return a.IsEOF()},61173:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsFailed"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsFailed.";
return a.IsFailed()},61400:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("WriteBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::WriteBytes.";a.WriteBytes(c,e)},61631:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("ReadBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::ReadBytes.";a.ReadBytes(c,e)},61859:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactAdded.";
a.OnContactAdded(c,e,f,h)},62112:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactPersisted"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactPersisted.";a.OnContactPersisted(c,e,f,h)},62377:(a,c)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactRemoved"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactRemoved.";a.OnContactRemoved(c)},62627:(a,c,e,f,h)=>
{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f,h)},62896:(a,c,e)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a];if(!a.hasOwnProperty("OnSoftBodyContactAdded"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactAdded.";a.OnSoftBodyContactAdded(c,e)},63183:(a,c,e,f)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a];
if(!a.hasOwnProperty("OnSoftBodyContactValidate"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactValidate.";return a.OnSoftBodyContactValidate(c,e,f)},63489:a=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::Reset.";a.Reset()},63714:(a,c)=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::AddHit.";
a.AddHit(c)},63944:a=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::Reset.";a.Reset()},64179:(a,c)=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::AddHit.";a.AddHit(c)},64419:a=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::Reset.";
a.Reset()},64648:(a,c)=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::AddHit.";a.AddHit(c)},64882:a=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::Reset.";a.Reset()},65099:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::OnBody.";
a.OnBody(c)},65321:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::AddHit.";a.AddHit(c)},65543:a=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::Reset.";a.Reset()},65770:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::OnBody.";
a.OnBody(c)},66002:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::AddHit.";a.AddHit(c)},66234:a=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::Reset.";a.Reset()},66461:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::OnBody.";
a.OnBody(c)},66693:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::AddHit.";a.AddHit(c)},66925:a=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::Reset.";a.Reset()},67146:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::OnBody.";
a.OnBody(c)},67372:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::AddHit.";a.AddHit(c)},67598:a=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::Reset.";a.Reset()},67833:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::OnBody.";
a.OnBody(c)},68073:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::AddHit.";a.AddHit(c)},68313:(a,c)=>{a=b.getCache(b.PhysicsStepListenerJS)[a];if(!a.hasOwnProperty("OnStep"))throw"a JSImplementation must implement all functions, you forgot PhysicsStepListenerJS::OnStep.";a.OnStep(c)},68541:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyActivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyActivated.";
a.OnBodyActivated(c,e)},68805:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyDeactivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyDeactivated.";a.OnBodyDeactivated(c,e)},69075:(a,c,e,f,h)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnAdjustBodyVelocity"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnAdjustBodyVelocity.";a.OnAdjustBodyVelocity(c,
e,f,h)},69364:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f)},69648:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactValidate.";
return a.OnCharacterContactValidate(c,e,f)},69959:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactRemoved"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactRemoved.";a.OnContactRemoved(c,e,f)},70233:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactRemoved"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactRemoved.";
a.OnCharacterContactRemoved(c,e,f)},70534:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactAdded.";a.OnContactAdded(c,e,f,h,k,n)},70811:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactPersisted"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactPersisted.";
a.OnContactPersisted(c,e,f,h,k,n)},71100:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactAdded.";a.OnCharacterContactAdded(c,e,f,h,k,n)},71404:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactPersisted"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactPersisted.";
a.OnCharacterContactPersisted(c,e,f,h,k,n)},71720:(a,c,e,f,h,k,n,y,R,Wa)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactSolve.";a.OnContactSolve(c,e,f,h,k,n,y,R,Wa)},72006:(a,c,e,f,h,k,n,y,R,Wa)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactSolve.";
a.OnCharacterContactSolve(c,e,f,h,k,n,y,R,Wa)},72319:(a,c,e)=>{a=b.getCache(b.ObjectVsBroadPhaseLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectVsBroadPhaseLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},72598:(a,c)=>{a=b.getCache(b.ObjectLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c)},
72850:(a,c,e)=>{a=b.getCache(b.ObjectLayerPairFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerPairFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},73113:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollide.";return a.ShouldCollide(c)},73351:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollideLocked"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollideLocked.";
return a.ShouldCollideLocked(c)},73607:(a,c,e)=>{a=b.getCache(b.ShapeFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},73850:(a,c,e,f,h)=>{a=b.getCache(b.ShapeFilterJS2)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS2::ShouldCollide.";return a.ShouldCollide(c,e,f,h)},74101:(a,c,e,f,h,k,n)=>{a=b.getCache(b.SimShapeFilterJS)[a];
if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot SimShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e,f,h,k,n)},74362:(a,c,e,f,h,k)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("GetCombinedFriction"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::GetCombinedFriction.";return a.GetCombinedFriction(c,e,f,h,k)},74662:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];
if(!a.hasOwnProperty("OnPreStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPreStepCallback.";a.OnPreStepCallback(c,e)},74940:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("OnPostCollideCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostCollideCallback.";a.OnPostCollideCallback(c,e)},75230:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];
if(!a.hasOwnProperty("OnPostStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostStepCallback.";a.OnPostStepCallback(c,e)},75511:(a,c,e,f,h,k,n,y,R)=>{a=b.getCache(b.WheeledVehicleControllerCallbacksJS)[a];if(!a.hasOwnProperty("OnTireMaxImpulseCallback"))throw"a JSImplementation must implement all functions, you forgot WheeledVehicleControllerCallbacksJS::OnTireMaxImpulseCallback.";a.OnTireMaxImpulseCallback(c,e,f,h,k,n,y,R)},75842:a=>
{a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetNumBroadPhaseLayers"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetNumBroadPhaseLayers.";return a.GetNumBroadPhaseLayers()},76133:(a,c)=>{a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetBPLayer"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetBPLayer.";return a.GetBPLayer(c)},76390:()=>wa.length},Ya,d=await (async function(){function a(f,
h){d=f.exports;yb.push(d.fDa);Gb=d.G;ta=h;Ta();return d}Sa();var c=Xa();if(b.instantiateWasm)return new Promise(f=>{b.instantiateWasm(c,(h,k)=>{a(h,k);f(h.exports)})});if(fa)return new Promise(f=>{Ca=h=>{var k=new WebAssembly.Instance(h,Xa());f(a(k,h))}});Va??=zaa("AGFzbQEAAAAB/giFAWACf38AYAN/f38AYAF/AX9gAX8AYAJ/fwF/YAN/f38Bf2AAAX9gAX8BfWAEf39/fwBgBn9/f39/fwBgAn99AGAEf39/fwF/YAV/f39/fwBgBX9/f39/AX9gB39/f39/f38AYAZ/f39/f38Bf2ACf30Bf2ALf39/f39/f39/f38AYAl/f39/f39/f38AYAJ/fgBgCH9/f39/f39/AGAEf39/fwF9YAN/f30AYAAAYAh/f39/f39/fwF/YAd/f39/f39/AX9gAn9/AX1gCn9/f39/f39/f38AYAN/f30Bf2ADf319AX9gA39/fwF+YAN/fX8AYAN/f34AYAJ/fwF+YAF9AX9gA399fQBgA39/fQF9YAV/fn5+fgBgDH9/f39/f39/f39/fwF/YAF/AXxgBH9/f30AYAR/f31/AGAGf31/f39/AGADfX19AX9gBX9/f399AGAFf39+f38AYAZ/f399f38BfWAFf319fX0AYAJ/fABgBH9/f30Bf2AJf39/f39/f39/AX9gDH9/f39/f39/f39/fwBgBH19fX0Bf2ACf3wBf2ACfX0Bf2AFf39/f34Bf2AJf39/fX19fX19AGAEf35+fwBgAn99AX1gA39/fAF/YAV/f39/fQF/YAN/fn8BfmAFf319fX8AYAJ9fwF/YAZ/f31/f38AYAN/fX8Bf2AEfX19fwF/YAN/f38BfGAFf39/f38BfGAGf39/f319AX9gBH99fX0AYAp/f39/f39/f39/AX9gBH9/fX0Bf2AFf31/f38Bf2AFf39/fX0Bf2APf39/f39/f39/f39/f39/AGALf39/f39/f39/f38Bf2AEf39/fwF+YAd/f399f39/AGAGf39/f399AGAJf39/f39/f399AGALf31/f39/f39/f38Bf2AIf31/f39/f38AYAl/f399fX1/f30Bf2AEf319fwBgAn9/AXxgB39/f39/fn4Bf2AGf39/f35+AX9gBX9/f398AX9gA319fwF/YAABfGAHf39/f39/fQBgBX9/f31/AX9gB399f39/fX8AYAl/fX9/f39/fX8AYAR+fn5+AX9gBH9/f34BfmACfn8Bf2ACfX0BfWACfn4BfGAIf39/fX9/f38AYAd/fX19fX19AGALf399fX9/fX1/f30AYAZ/fX19fX8AYAR/f319AX1g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AwMDAwAsCAEDAwIGAAYDAAAABAAAAwAAAAQAAAAAAAMAAAAEHBwcAQQ8PBwLBgAAAD8KFgYDAgAFAgIAAAAFBAgBAAICAgIDAgACAAAAAgEAAgQCAAIABgYAAgACDhIREQ4UBgYGAAMGAwMAAAAEBgMAAgoHBgACAAIAAgACBgYGAAMGAwMAAAAEBgACBgYGBgADBgMAAAQGBgYGAAMGAAYAAgAGDAwMQAYGBgYAAgQCBAQEBAAMDQYCBAMGAAIGAwACAAAEAAQEAwIGAAIAAgACAAIAAgACAAIGAwQDAwIGAgIGBQIGAAUDBAEIAYIBDAQIDAgEAQQBGhYaBRYaFgQEAQQIBAAEAQAIAQAsCQUEBAEIAQQBCAgEBAQIBAgIDAwEAQwMAgQACwEIDAUFBQQAAQEACAQFBAAEBAUFBAQAAAUCAwIDAgMCAgICAgICAgICAgJTKAABAAMDAwICAAEAAAACBwAAAgMAAgICAgACAAIAAgACAAICAgICAgICAgIDAAAFBgMFAQECBgYCAgICAgIFKQYCAgIHAgUBBgICAAADAgIHIwUGAwICAAADAgICBwoCAAcKBwIWJAcGAwgDAAACAAUGAgIAAAMCAgICAgIAAgAAAgIAAAIEAQQCGhYBBAQEAgICAhoaAQEBBAEEFhoWGgACFhoFgwEEAAQABgICAAADAgICBwcHAgIAAgACAAIAAgACCgoKCgICAgIAAgoHAAIFBgICAAADAgIHAgcCAAICBwcjBwoHCgIACgcFBgICAAADAgICBwIKBQYCAgAAAwICBwcCAgACAiMABwoABwcCAgICAgIFBgICAAADAgICAgUGAwICAAADAgIHAAIHByMABQYGAgYCBQYCAwQEBAQDDwUCBAICBQICBgMDAgYDAwQEAw8DBQQCAgUCAgAFHAQCAwACAwMCHAQCAwMEBAMEDwUEAgICBQIyBA5QFA4HBwUFAwMAAAAAAg8AAgACAwIGBwUDAwQEAw8FBAICAgIFAgQCAwAFAgIAAAIAAwIDAgUEAgYDBAQEAw8FAgIFAgMCAgMCBQMEBAIEAw8FAgMCBQIEAwIEAwQDBAQEBwMPBQQCBwIFAwICBAMDDwIEAwMEBAMPBQUCAgUCAwwMCAACDw0DAgYDAwQCBAMPBQIFAgUCAwICBgMAAgIDAwQEBwcDDwUCBwcCBQIDCgMKBwADAgYDBAQCBwMPBQIHAgUCBwMCQisDBAQHAw8FAgIFAlkDNgMCWTYDBAQHBAMPBQIHAgUCBAcHBwcDAoQBNAMrAwQEBwMPBQ8CBwIFAkIrBQMCQis2AwQEAgcDDwUCBwICBQICQRACBQMCQRACAwMCFxcEBQFwAPoSBjEJfwFB0O3GAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALB6nwAcgnAUEA8ScBQgC4IQFDALgbAUQAJAFFACMBRgA1AUcBAAFIAPglAUkAegFKAHUBSwB0AUwAeQFNACQBTgAjAU8ANwFQAEkBUQBIAVIAkgUBUwDGHQFUALwcAVUAhBwBVgBrAVcAagFYAIAFAVkA9QQBWgD2GgFfAOUEASQA2gQCYWEAlhkCYmEAjwQCY2EAzBgCZGEAqQQCZWEAoQQCZmEAlBQCZ2EA6RMCaGEAIQJpYQAkAmphACMCa2EANQJsYQCaAQJtYQCZAQJuYQCMAQJvYQCLAQJwYQCPAQJxYQCOAQJyYQB5AnNhACQCdGEAIwJ1YQA3AnZhAKwCAndhANEFAnhhAJgBAnlhAKYBAnphAKUBAkFhAEkCQmEApAECQ2EASAJEYQCjAQJFYQCiAQJGYQDNBQJHYQCoAQJIYQCnAQJJYQDMBQJKYQDLBQJLYQDKBQJMYQAhAk1hAPgCAk5hAPcCAk9hACQCUGEAIwJRYQA1AlJhAHkCU2EA9wICVGEA+AICVWEAyQUCVmEAyAUCV2EAIQJYYQAhAllhACECWmEAIQJfYQCuEQIkYQAhAmFiAHkCYmIAzgICY2IAIQJkYgCsAgJlYgAhAmZiAJURAmdiAL4IAmhiAC0CaWIAjQQCamIAlwECa2IAlgECbGIAJgJtYgAkAm5iACMCb2IANQJwYgDZEAJxYgB6AnJiAOIBAnNiAKkCAnRiAK8BAnViAK4BAnZiAHUCd2IAdAJ4YgB5AnliAKcCAnpiAKYCAkFiAKUCAkJiACQCQ2IAIwJEYgA3AkViAEkCRmIASAJHYgCSBQJIYgDvJwJJYgDnJwJKYgDgJwJLYgBrAkxiAGoCTWIAgAUCTmIA9QQCT2IA2CcCUGIA5QQCUWIA2gQCUmIAzycCU2IAjwQCVGIAxycCVWIAqQQCVmIAoQQCV2IAtScCWGIArCcCWWIAIQJaYgCuAwJfYgCuAwIkYgCPCAJhYwAkAmJjACMCY2MANQJkYwCHJwJlYwB6AmZjAHUCZ2MAdAJoYwB5AmljAI4IAmpjAIwIAmtjACQCbGMAIwJtYwA3Am5jAEkCb2MASAJwYwCSBQJxYwDmJgJyYwDgJgJzYwDaJgJ0YwBrAnVjAGoCdmMAgAUCd2MA9QQCeGMA0SYCeWMA5QQCemMA2gQCQWMAxiYCQmMAjwQCQ2MAvSYCRGMAqQQCRWMAoQQCRmMAsiYCR2MAqSYCSGMAIQJJYwAkAkpjACMCS2MANQJMYwCaJgJNYwB6Ak5jAHUCT2MAdAJQYwB5AlFjAIMEAlJjACQCU2MAIwJUYwA3AlVjAEkCVmMASAJXYwCSBQJYYwCBJgJZYwD3JQJaYwD0JQJfYwBrAiRjAGoCYWQAgAUCYmQA9QQCY2QA7SUCZGQA5QQCZWQA2gQCZmQA5CUCZ2QAjwQCaGQA2yUCaWQAqQQCamQAoQQCa2QAyyUCbGQAwSUCbWQAIQJuZACvJQJvZAAkAnBkACMCcWQANQJyZACaAQJzZACZAQJ0ZACMAQJ1ZACLAQJ2ZACPAQJ3ZACOAQJ4ZAB5AnlkAMwBAnpkAMsBAkFkAIslAkJkAIglAkNkACQCRGQAIwJFZAA3AkZkAKwCAkdkANEFAkhkAJgBAklkAKYBAkpkAKUBAktkAEkCTGQApAECTWQASAJOZACjAQJPZACiAQJQZADNBQJRZACoAQJSZACnAQJTZADMBQJUZADLBQJVZADKBQJWZAAhAldkAPgCAlhkAPcCAllkACQCWmQAIwJfZAA1AiRkAHkCYWUAxQ8CYmUAxA8CY2UAww8CZGUA8CQCZWUAwQ8CZmUAug8CZ2UAxiQCaGUAsA8CaWUArg8CamUApw8Ca2UAog8CbGUAoQ8CbWUAoA8CbmUAnw8Cb2UAng8CcGUAmw8CcWUA+QMCcmUA7wcCc2UA7gcCdGUA7AcCdWUAig8CdmUAhQ8Cd2UAhA8CeGUApwUCeWUApwUCemUAgA8CQWUA0CICQmUAvyICQ2UA+w4CRGUA+g4CRWUAoiICRmUAjSICR2UA+CECSGUA7SECSWUA4iECSmUA3CECS2UA8w4CTGUA8A4CTWUA7A4CTmUAwiECT2UAtyECUGUA5g4CUWUA4w4CUmUA4Q4CU2UA3w4CVGUAJgJVZQAkAlZlACMCV2UANQJYZQB5AlllACECWmUA9wICX2UA+AICJGUAyQUCYWYAyAUCYmYAIQJjZgDcBwJkZgAhAmVmAIwhAmZmAC0CZ2YAuQECaGYASgJqZgBmAmtmAHMCbGYAigECbWYA+wECbmYA+gECb2YA2AcCcGYAzg4CcWYA1wcCcmYAzQ4Cc2YAmQUCdGYA1gcCdWYAaQJ2ZgDCDgJ3ZgC6DgJ4ZgC4DgJ5ZgD/HwJ6ZgAhAkFmACECQmYAWgJDZgByAkRmAFACRWYAQAJGZgD3AQJHZgBAAkhmAO4DAklmAO0DAkpmAHgCS2YAdwJMZgAhAk1mAFoCTmYAcgJPZgBQAlBmAEACUWYA9gECUmYAQAJTZgChAQJUZgCgAQJVZgB4AlZmAHcCV2YAIQJYZgBaAllmAHICWmYAUAJfZgBAAiRmAPcBAmFnAEACYmcAoQECY2cAoAECZGcAeAJlZwB3AmZnACECZ2cAWgJoZwByAmlnAFACamcAQAJrZwD3AQJsZwBAAm1nAO4DAm5nAO0DAm9nAHgCcGcAdwJxZwAhAnJnAFoCc2cAcgJ0ZwBQAnVnAEACdmcA9gECd2cAQAJ4ZwChAQJ5ZwCgAQJ6ZwB4AkFnAHcCQmcAIQJDZwDrAgJEZwDqAgJFZwCUBQJGZwCTBQJHZwCXAQJIZwCWAQJJZwCVAQJKZwCUAQJLZwBKAkxnAGYCTWcAJgJOZwBaAk9nAHICUGcAUAJRZwBAAlJnAPYBAlNnAEACVGcAoQECVWcAoAECVmcAeAJXZwB3AlhnACECWWcAWgJaZwByAl9nAFACJGcAQAJhaAD3AQJiaABAAmNoAKEBAmRoAKABAmVoAHgCZmgAdwJnaAAhAmhoAFoCaWgAcgJqaABQAmtoAEACbGgA9gECbWgAQAJuaAChAQJvaACgAQJwaAB4AnFoAHcCcmgAIQJzaAAhAnRoACECdWgAsR4CdmgAkB4Cd2gApQ4CeGgAow4CeWgA5B0CemgAmw4CQWgAmQ4CQmgAlg4CQ2gAuh0CRGgALQJFaAC5AQJGaABKAkdoAGYCSGgAcwJJaACKAQJKaABZAktoAF8CTGgA5AgCTWgA4wgCTmgAxwcCT2gAxgcCUGgAxAcCUWgAiA4CUmgAwQcCU2gAwAcCVGgAhA4CVWgAgw4CVmgAgQ4CV2gAgA4CWGgA/Q0CWWgA+g0CWmgA9g0CX2gA9Q0CJGgA8w0CYWkA8g0CYmkA8Q0CY2kA7w0CZGkA6w0CZWkA5Q0CZmkA4w0CZ2kA4Q0CaGkA3g0CaWkA3Q0CamkA8QcCa2kAqQcCbGkAqgUCbWkAhQUCbmkA6QcCb2kAqAcCcGkAnQICcWkAnAICcmkAxAICc2kAwwICdGkAwgICdWkAwQICdmkAgQUCd2kA/wQCeGkAxw0CeWkAwg0CemkAvg0CQWkAuQ0CQmkAtw0CQ2kAtA0CRGkA5QMCRWkA5AMCRmkAqQ0CR2kAnw0CSGkAjxsCSWkAJAJKaQAjAktpADcCTGkASgJNaQBmAk5pAHMCT2kAigECUGkA+wECUWkA+gECUmkAlA0CU2kAjw0CVGkAhw0CVWkA/wwCVmkAIQJXaQAhAlhpACECWWkAIQJaaQD1GgJfaQAhAiRpAPAaAmFqAN4DAmJqACECY2oA7BoCZGoAIQJlagDnGgJmagAhAmdqANoaAmhqACECaWoAJAJqagAjAmtqADcCbGoA3wwCbWoAhQcCbmoAhAcCb2oAuRoCcGoAggcCcWoAgQcCcmoA0wwCc2oA0AwCdGoAoBoCdWoAmhoCdmoAmRoCd2oAwwwCeGoAjRoCeWoA9AYCemoA2gICQWoAIQJCagAkAkNqACMCRGoANwJFagAhAkZqAPYZAkdqACECSGoA6hkCSWoAIQJKagDkGQJLagAkAkxqACMCTWoANQJOagBKAk9qAGYCUGoAcwJRagCKAQJSagBZAlNqAF8CVGoAaQJVagCAAQJWagDaAQJXagDZAQJYagC1AQJZagDxAQJaagDZBAJfagDiBgIkagCdAgJhawCcAgJiawDEAgJjawDDAgJkawDCAgJlawDBAgJmawDYBAJnawDXBAJoawDlAwJpawDkAwJqawDhBgJrawDfBgJsawB5Am1rAI0ZAm5rANYEAm9rANUEAnBrANoGAnFrANQEAnJrANMEAnNrANIDAnRrANkGAnVrANcGAnZrAL8YAndrALYYAnhrAK8YAnlrAKQYAnprAJwYAkFrAJUYAkJrAJYDAkNrANIGAkRrANEGAkVrAM4GAkZrAMoGAkdrACECSGsAzgECSWsAkwICSmsA2AICS2sAyAsCTGsA8AECTWsA7wECTmsAvAICT2sAugICUGsAzAICUWsA1wICUmsAjwICU2sA1gICVGsAwhcCVWsArBcCVmsAkgMCV2sAwgYCWGsAkQMCWWsAwAYCWmsA9QoCX2sA8QoCJGsAqgUCYWwAhQUCYmwAeQJjbACOAgJkbACNAgJlbACXAQJmbACWAQJnbACVAQJobACUAQJpbADBAQJqbADqCgJrbADMAgJsbADXAgJtbACPAgJubADWAgJvbADBFgJwbADrAgJxbADqAgJybADYAgJzbADlCgJ0bABKAnVsAOIKAnZsAI8CAndsANYCAnhsALkCAnlsALgCAnpsAK8BAkFsAK4BAkJsAO4BAkNsAO0BAkRsALcCAkVsALYCAkZsAPsBAkdsAPoBAkhsAIgWAklsAPgVAkpsAKMGAktsAKIGAkxsAKAGAk1sAJ8GAk5sAJ0GAk9sAJwGAlBsAJoGAlFsAJkGAlJsAJYDAlNsAJgGAlRsAJcGAlVsALwEAlZsAJwKAldsAJkKAlhsAJcKAllsAM4CAlpsACECX2wAlAoCJGwA+hQCYW0ASgJibQBmAmNtAC0CZG0AuQECZW0AJgJmbQCsAgJnbQAhAmhtACYCaW0A9xQCam0A7hQCa20A5xQCbG0A2xQCbW0ARQJubQBCAm9tADECcG0ApAQCcW0A4gkCcm0A3wkCc20A1AkCdG0AUgJ1bQBQAnZtAMMJAndtAEUCeG0AQgJ5bQAxAnptAKQEAkFtAOIJAkJtAN8JAkNtANQJAkRtAFICRW0AUAJGbQDDCQJHbQBFAkhtAEICSW0AMQJKbQCwFAJLbQCsFAJMbQCoFAJNbQCfFAJObQBSAk9tAFACUG0AmRQCUW0ARQJSbQBCAlNtADECVG0ArwkCVW0ArAkCVm0AwAMCV20AkQkCWG0AUgJZbQBQAlptAL4DAl9tAEUCJG0AQgJhbgAxAmJuAIoJAmNuAIcJAmRuAMADAmVuAOIFAmZuAFICZ24AUAJobgC+AwJqbgAmAmtuACYCbG4AJgJtbgAmAm5uACYCb24AJgJwbgAmAnFuACYCcm4AlAQCc24AyRMCdG4AvhMCdW4AsxMCdm4AqhMCd24AqRMCeG4ApxMCeW4AphMCem4ApRMCQW4AoxMCQm4AnhMCQ24AlxMCRG4AkRMCRW4AjRMCRm4AghMCR24AgBMCSG4A/xICSW4A4QgCSm4A4AgCS24A3wgCTG4A/hICTW4A/RICTm4A/BICT24A+xICUG4A+hICUW4A3ggCUm4A3QgCU24A3AgCVG4A2wgCVW4A2ggCVm4A+RICV24A+BICWG4A9xICWW4A2QgCWm4A9hICX24A2AgCJG4A9RICYW8A1wgCYm8A9BICY28A8xICZW8A8hICZm8A8RICZ28A8BICaG8A7xICaW8A7hICam8A7RICa28A7BICbG8A0wUCbW8A0gUCbm8A1ggCb28A1QgCcG8A6xICcW8A6hICcm8A6RICc28A6BICdG8A5xICdW8A5hICdm8A5RICd28A5BICeG8A4xICeW8A4hICem8A4RICQW8A4BICQm8A3xICQ28AJgJEbwCUBAJFbwDeEgJGbwDdEgJHbwDcEgJIbwDbEgJJbwDaEgJKbwDZEgJLbwDYEgJMbwDXEgJNbwDWEgJObwDVEgJPbwDUEgJQbwDgCAJRbwDfCAJSbwDTEgJTbwDSEgJUbwDREgJVbwDQEgJWbwDPEgJXbwDOEgJYbwDNEgJZbwDMEgJabwDLEgJfbwDKEgIkbwDJEgJhcADZCAJicADIEgJjcADYCAJkcADHEgJlcADXCAJmcADGEgJncADFEgJocADEEgJpcADDEgJqcADCEgJrcADTBQJscADSBQJtcADBEgJucADAEgJvcAC/EgJwcAC+EgJxcAC9EgJycAC8EgJzcAC7EgJ0cAC6EgJ1cAC5EgJ2cAC4EgJ3cAAmAnhwAJQEAnlwALcSAnpwALYSAkFwALUSAkJwALQSAkNwALMSAkRwALISAkVwALESAkZwALASAkdwAK8SAkhwAK4SAklwAK0SAkpwAKwSAktwAN4IAkxwAN0IAk1wANwIAk5wAKsSAk9wANsIAlBwANoIAlFwAKoSAlJwANMIAlNwAKkSAlRwAOEIAlVwAKgSAlZwAKcSAldwAKYSAlhwAKUSAllwAKQSAlpwAM8FAl9wANMFAiRwANIFAmFxANYIAmJxANUIAmNxAKMSAmRxAKISAmVxAKESAmZxAKASAmdxAJ8SAmhxAJ4SAmlxACYCanEAnRICa3EAnBICbHEAmxICbXEAmhICbnEAmRICb3EAmBICcHEAlxICcXEAlhICcnEAlRICc3EAlBICdHEAkxICdXEAkhICdnEAkRICd3EAkBICeHEAjxICeXEAjhICenEAjRICQXEAjBICQnEAJgJDcQCUBAJEcQCLEgJFcQCKEgJGcQCJEgJHcQCIEgJIcQCHEgJJcQCGEgJKcQCFEgJLcQCEEgJMcQCDEgJNcQCCEgJOcQCBEgJPcQCAEgJQcQD/EQJRcQD+EQJScQD9EQJTcQD8EQJUcQD7EQJVcQD6EQJWcQD5EQJXcQD4EQJYcQD3EQJZcQD2EQJacQD1EQJfcQD0EQIkcQDzEQJhcgDyEQJicgDxEQJjcgDwEQJkcgDvEQJlcgDuEQJmcgDtEQJncgDsEQJocgDrEQJpcgDqEQJqcgDpEQJrcgDoEQJscgDnEQJtcgDmEQJucgDlEQJvcgDkEQJwcgDjEQJxcgDiEQJycgDhEQJzcgAmAnRyAOARAnVyAN8RAnZyAN4RAndyAI4CAnhyAI0CAnlyAJcBAnpyAJYBAkFyAJUBAkJyAJQBAkNyACYCRHIAyQgCRXIA3RECRnIA3BECR3IA2xECSHIA2hECSXIA2RECSnIA2BECS3IA1xECTHIA1hECTXIA1RECTnIA1BECT3IA0xECUHIA0hECUXIA0RECUnIA0BECU3IAzxECVHIAzhECVXIAzRECVnIAzBECV3IAyxECWHIAyhECWXIAyRECWnIAyBECX3IAxxECJHIAxhECYXMAxRECYnMAxBECY3MAwxECZHMAyAgCZXMAxwgCZnMAxggCZ3MAwhECaHMAwRECaXMAwBECanMAvxECa3MAvhECbHMAvRECbXMAvBECbnMAuxECb3MAuhECcHMAuRECcXMAuBECcnMAtxECc3MAthECdHMAtRECdXMAtBECdnMAsxECd3MAshECeHMAsRECeXMAsBECenMArxECQXMArRECQnMArBECQ3MAqxECRHMAqhECRXMAqRECRnMAqBECR3MAxQgCSHMAxAgCSXMAwwgCSnMAwggCS3MAwQgCTHMApxECTXMAphECTnMAwAgCT3MApRECUHMApBECUXMAJgJScwDJCAJTcwCjEQJUcwCiEQJVcwChEQJWcwCgEQJXcwCfEQJYcwCeEQJZcwCdEQJacwDICAJfcwDHCAIkcwCcEQJhdACbEQJidACaEQJjdACZEQJkdACYEQJldACXEQJmdACWEQJndACUEQJodACTEQJpdACSEQJqdACREQJrdADGCAJsdACQEQJtdACPEQJudACOEQJvdACNEQJwdACMEQJxdACLEQJydACKEQJzdACJEQJ0dACIEQJ1dACHEQJ2dACGEQJ3dADFCAJ4dACFEQJ5dADDCAJ6dADCCAJBdADBCAJCdADACAJDdADECAJEdACEEQJFdACDEQJGdAAmAkd0AIIRAkh0AIERAkl0AIARAkp0AP8QAkt0AP4QAkx0AP0QAk10APwQAk50APsQAk90APoQAlB0APkQAlF0APgQAlJ0APcQAlN0APYQAlR0APUQAlV0APQQAlZ0APMQAld0APIQAlh0APEQAll0APAQAlp0AO8QAl90AO4QAiR0ALwIAmF1ALwIAmJ1ALsIAmN1ALsIAmR1ALoIAmV1ALoIAmZ1AO0QAmd1AOwQAmh1AOsQAml1AOoQAmp1AOkQAmt1AC0CbHUAuQECbXUASgJudQBmAm91ACYCcHUA6BACcXUA5xACcnUALQJzdQDmEAJ0dQBpAnV1AIABAnZ1ACYCd3UAtwgCeHUAtggCeXUA5RACenUA5BACQXUA4xACQnUALQJDdQC5AQJEdQBKAkV1AGYCRnUAJgJHdQC3CAJIdQC2CAJJdQDiEAJKdQDhEAJLdQDgEAJMdQAtAk11ALkBAk51AEoCT3UAZgJQdQAmAlF1AN8QAlJ1AL4IAlN1AJIDAlR1ALIIAlV1AC0CVnUAjQQCV3UAlwECWHUAlgECWXUAJgJadQDeEAJfdQAtAiR1AN0QAmF2AHMCYnYAigECY3YAJgJkdgCxCAJldgDcEAJmdgDOAQJndgBKAmh2AHMCaXYAtQECanYAJgJrdgCxCAJsdgDbEAJtdgDOAQJudgBKAm92AHMCcHYAtQECcXYAJgJydgDaEAJzdgDYEAJ0dgDXEAJ1dgDWEAJ2dgDVEAJ3dgDUEAJ4dgDTEAJ5dgDSEAJ6dgDQEAJBdgDPEAJCdgDOEAJDdgDNEAJEdgAmAkV2AMwQAkZ2AMsQAkd2AMoQAkh2AMkQAkl2AMgQAkp2AMcQAkt2AMYQAkx2AMUQAk12AMQQAk52AMMQAk92AMIQAlB2AMEQAlF2AMAQAlJ2AL8QAlN2AL4QAlR2AL0QAlV2ALwQAlZ2AC0CV3YAuQECWHYASgJZdgBmAlp2AOIBAl92ALsQAiR2AKsIAmF3ALoQAmJ3AFkCY3cAuRACZHcAuBACZXcAtxACZncAJAJndwAjAmh3ADUCaXcAeQJqdwBFAmt3AEICbHcAMQJtdwCpCAJudwCoCAJvdwC2EAJwdwCnCAJxdwCkCAJydwCjCAJzdwC1EAJ0dwC0EAJ1dwCzEAJ2dwCyEAJ3dwCxEAJ4dwCwEAJ5dwCUJQJ6dwCvEAJBdwC8AQJCdwC7AQJDdwAmAkR3AEUCRXcAQgJGdwAxAkd3AK4QAkh3AK0QAkl3AKwQAkp3AKsQAkt3AFICTHcAqhACTXcARQJOdwBCAk93ADECUHcAtAMCUXcAhwQCUncAvwUCU3cAqRACVHcAUgJVdwCGBAJWdwCoEAJXdwCnEAJYdwCmEAJZdwCCAgJadwCBAgJfdwDQBQIkdwC9BQJheACMAQJieACLAQJjeAAmAmR4AEUCZXgAQgJmeAAxAmd4AJ8IAmh4AJ4IAml4AJ0IAmp4AKUQAmt4AFICbHgAnAgCbXgApBACbngAoxACb3gATAJweACiEAJxeAAiAnJ4AKEQAnN4AKAQAnR4AIIHAnV4AJ8QAnZ4AJ4QAnd4AJ0QAnh4AJwQAnl4AJsQAnp4AJoQAkF4ACQCQngAIwJDeAA1AkR4AJkQAkV4AHoCRngA7gECR3gA7QECSHgA4gECSXgAqQICSngArwECS3gArgECTHgAdQJNeAB0Ak54APQCAk94AJYQAlB4AJUQAlF4ALIDAlJ4AKcCAlN4AKYCAlR4AKUCAlV4ACQCVngAIwJXeAA3Alh4AEkCWXgASAJaeACAAgJfeACUEAIkeACTEAJheQCSEAJieQBrAmN5AGoCZHkA/wECZXkAsgMCZnkAkRACZ3kAugECaHkAywICaXkAkBACankAvQECa3kAjhACbHkAjBACbXkAuAUCbnkAixACb3kAihACcHkAsQMCcXkA7CcCcnkA6ycCc3kA6icCdHkAJAJ1eQAjAnZ5ADUCd3kA6ScCeHkAegJ5eQBZAnp5AF8CQXkAlQgCQnkAlAgCQ3kA4gECRHkAqQICRXkArwECRnkArgECR3kAdQJIeQB0Akl5APQCAkp5AOYnAkt5AOUnAkx5AOQnAk15AOMnAk55AKcCAk95AKYCAlB5AKUCAlF5ACQCUnkAIwJTeQA3AlR5AEkCVXkASAJWeQCAAgJXeQDiJwJYeQDhJwJZeQDfJwJaeQBrAl95AGoCJHkA/wECYXoA3icCYnoA3ScCY3oAugECZHoAywICZXoA3CcCZnoAvQECZ3oA2ycCaHoA2ScCaXoAsAMCanoA1ycCa3oA1icCbHoAsQMCbXoA1CcCbnoA0ycCb3oA0icCcHoAJAJxegAjAnJ6ADUCc3oA0ScCdHoAegJ1egDuAQJ2egDtAQJ3egC3AgJ4egC2AgJ5egD7AQJ6egD6AQJBegDiAQJCegCpAgJDegCvAQJEegCuAQJFegB1AkZ6AHQCR3oA9AICSHoAzicCSXoAzScCSnoAkAgCS3oAsgMCTHoApwICTXoApgICTnoApQICT3oAJAJQegAjAlF6ADcCUnoASQJTegBIAlR6AIACAlV6AMwnAlZ6AMsnAld6AMonAlh6AGsCWXoAagJaegD/AQJfegDJJwIkegDIJwJhQQC6AQJiQQDLAgJjQQDGJwJkQQC9AQJlQQDFJwJmQQDDJwJnQQCFEAJoQQDCJwJpQQDBJwJqQQCxAwJrQQC/JwJsQQC9JwJtQQC8JwJuQQAkAm9BACMCcEEANQJxQQC7JwJyQQB6AnNBAO4BAnRBAO0BAnVBALcCAnZBALYCAndBAPsBAnhBAPoBAnlBALcFAnpBALYFAkFBAOIBAkJBAKkCAkNBAK8BAkRBAK4BAkVBAHUCRkEAdAJHQQD0AgJIQQC5JwJJQQC4JwJKQQC3JwJLQQC2JwJMQQCnAgJNQQCmAgJOQQClAgJPQQAkAlBBACMCUUEANwJSQQBJAlNBAEgCVEEAgAICVUEAtCcCVkEAsycCV0EAsicCWEEAawJZQQBqAlpBAP8BAl9BALEnAiRBALAnAmFCALoBAmJCAMsCAmNCAK8nAmRCAL0BAmVCAK4nAmZCAKsnAmdCAIUQAmhCAKonAmlCAKknAmpCALEDAmtCAKcnAmxCAKYnAm1CACQCbkIAIwJvQgA1AnBCAKUnAnFCAHoCckIA7gECc0IA7QECdEIAtwICdUIAtgICdkIA4gECd0IAqQICeEIArwECeUIArgECekIAdQJBQgB0AkJCAPQCAkNCAKMnAkRCAKEnAkVCALIDAkZCAJAIAkdCAKcCAkhCAKYCAklCAKUCAkpCACQCS0IAIwJMQgA3Ak1CAEkCTkIASAJPQgCAAgJQQgCgJwJRQgCfJwJSQgCeJwJTQgBrAlRCAGoCVUIA/wECVkIAsgMCV0IAnScCWEIAugECWUIAywICWkIAnCcCX0IAvQECJEIAmycCYUMAmScCYkMAuAUCY0MAmCcCZEMAlycCZUMAsQMCZkMAlScCZ0MAlCcCaEMAJAJpQwAjAmpDADUCa0MAkycCbEMAegJtQwDuAQJuQwDtAQJvQwC3AgJwQwC2AgJxQwD7AQJyQwD6AQJzQwDiAQJ0QwCpAgJ1QwCvAQJ2QwCuAQJ3QwB1AnhDAHQCeUMA9AICekMAkScCQUMAhQcCQkMA/g8CQ0MApwICREMApgICRUMApQICRkMAJAJHQwAjAkhDADcCSUMASQJKQwBIAktDAIACAkxDAJAnAk1DAI8nAk5DAI4nAk9DAGsCUEMAagJRQwD/AQJSQwCNJwJTQwCMJwJUQwC6AQJVQwDLAgJWQwCLJwJXQwC9AQJYQwCKJwJZQwCIJwJaQwC4BQJfQwCGJwIkQwCFJwJhRACxAwJiRACDJwJjRAAkAmREACMCZUQANQJmRACCJwJnRAB6AmhEAJEDAmlEAIAnAmpEALcFAmtEALYFAmxEAP8mAm1EAP4mAm5EAPsXAm9EAPwmAnBEAOIBAnFEAKkCAnJEAK8BAnNEAK4BAnREAHUCdUQAdAJ2RAD7JgJ3RACnAgJ4RACmAgJ5RAClAgJ6RAAkAkFEACMCQkQANwJDRABJAkREAEgCRUQAgAICRkQA+iYCR0QA+SYCSEQA+CYCSUQAawJKRABqAktEAP8BAkxEAPcmAk1EAPUmAk5EALoBAk9EAMsCAlBEAPQmAlFEAL0BAlJEAPMmAlNEAPEmAlREALADAlVEAO8mAlZEAO4mAldEAOwmAlhEAOsmAllEAOomAlpEADECX0QA6SYCJEQA+Q8CYUUA+A8CYkUA6CYCY0UA5yYCZEUArgMCZUUArgMCZkUAjwgCZ0UAJAJoRQAjAmlFADUCakUA5SYCa0UAegJsRQB1Am1FAHQCbkUA9Q8Cb0UAjggCcEUAjAgCcUUAJAJyRQAjAnNFADcCdEUASQJ1RQBIAnZFAPQPAndFAOMmAnhFAOImAnlFAOEmAnpFAGsCQUUAagJCRQDzDwJDRQD5AwJERQDfJgJFRQDyDwJGRQDxDwJHRQDeJgJIRQDiCAJJRQDdJgJKRQDwDwJLRQDvDwJMRQDbJgJNRQDZJgJORQDXJgJPRQDWJgJQRQCuAwJRRQCuAwJSRQCPCAJTRQAkAlRFACMCVUUANQJWRQDVJgJXRQB6AlhFAHUCWUUAdAJaRQD1DwJfRQDTJgIkRQDSJgJhRgDQJgJiRgDPJgJjRgDOJgJkRgDNJgJlRgDMJgJmRgCOCAJnRgCMCAJoRgAkAmlGACMCakYANwJrRgBJAmxGAEgCbUYA9A8CbkYAyyYCb0YAyiYCcEYAySYCcUYAawJyRgBqAnNGAPMPAnRGAPkDAnVGAMgmAnZGAPIPAndGAPEPAnhGAMcmAnlGAOIIAnpGAMUmAkFGAPAPAkJGAO8PAkNGAMMmAkRGAMImAkVGAMAmAkZGAL8mAkdGACQCSEYAIwJJRgA1AkpGAL4mAktGAHoCTEYAWQJNRgBfAk5GAHUCT0YAdAJQRgCICAJRRgC6JgJSRgC5JgJTRgCDBAJURgAkAlVGACMCVkYANwJXRgBJAlhGAEgCWUYAhwgCWkYAuCYCX0YAtiYCJEYAtSYCYUcAawJiRwBqAmNHAIYIAmRHALQmAmVHALMmAmZHAIUIAmdHAIQIAmhHALEmAmlHANQFAmpHALAmAmtHAK4mAmxHAK0mAm1HAKwmAm5HAKsmAm9HAIMIAnBHAKcmAnFHACQCckcAIwJzRwA1AnRHAKYmAnVHAHoCdkcAWQJ3RwBfAnhHAHUCeUcAdAJ6RwCICAJBRwCkJgJCRwCDBAJDRwAkAkRHACMCRUcANwJGRwBJAkdHAEgCSEcAhwgCSUcAoyYCSkcAoiYCS0cAoSYCTEcAawJNRwBqAk5HAIYIAk9HAOMPAlBHAJ8mAlFHAIUIAlJHAIQIAlNHAJ4mAlRHANQFAlVHAJ0mAlZHAOEPAldHAJsmAlhHAJkmAllHAJgmAlpHAIMIAl9HAJYmAiRHACQCYUgAIwJiSAA1AmNIAJUmAmRIAHoCZUgAWQJmSABfAmdIAGkCaEgAgAECaUgAdQJqSAB0AmtIAIgIAmxIAJMmAm1IAJImAm5IAIMEAm9IACQCcEgAIwJxSAA3AnJIAEkCc0gASAJ0SACHCAJ1SACQJgJ2SACPJgJ3SACOJgJ4SABrAnlIAGoCekgAhggCQUgA4w8CQkgAjSYCQ0gAhQgCREgAhAgCRUgAjCYCRkgA1AUCR0gAiyYCSEgA4Q8CSUgAiSYCSkgAiCYCS0gAhyYCTEgAgwgCTUgAhSYCTkgAhCYCT0gAgyYCUEgAgiYCUUgAgCYCUkgAJAJTSAAjAlRIADUCVUgA/yUCVkgAegJXSABzAlhIAP0lAllIAPwlAlpIAPslAl9IANcHAiRIAPolAmFJAPklAmJJAPYlAmNJAIAIAmRJAP8HAmVJANoPAmZJANkPAmdJANgPAmhJANcPAmlJAHUCakkAdAJrSQD1JQJsSQDzJQJtSQAkAm5JACMCb0kANwJwSQBJAnFJAEgCckkA/gcCc0kA8iUCdEkA8SUCdUkA8CUCdkkAawJ3SQBqAnhJAO8lAnlJAKQCAnpJAO4lAkFJALoBAkJJAOwlAkNJAOslAkRJAL0BAkVJAOolAkZJAKQCAkdJALADAkhJAOglAklJAOclAkpJAOUlAktJAOMlAkxJACYCTUkA4iUCTkkAJAJPSQAjAlBJADUCUUkA4SUCUkkAegJTSQBzAlRJAIoBAlVJAFkCVkkAXwJXSQDfJQJYSQDeJQJZSQD9BwJ