@signalk/freeboard-sk
Version:
Openlayers chart plotter implementation for Signal K
1 lines • 67.8 kB
JavaScript
import{a as sA}from"./chunk-2LV2AYBP.js";import{a as rA}from"./chunk-FGDSLMXF.js";import{c as yA,d as FA}from"./chunk-FDERIQAA.js";var nA=yA((LA,AA)=>{(function(){var d=(function(){var u={};u.defaultNoDataValue=-34027999387901484e22,u.decode=function(I,a){a=a||{};var Q=a.encodedMaskData||a.encodedMaskData===null,g=E(I,a.inputOffset||0,Q),n=a.noDataValue!==null?a.noDataValue:u.defaultNoDataValue,B=U(g,a.pixelType||Float32Array,a.encodedMaskData,n,a.returnMask),C={width:g.width,height:g.height,pixelData:B.resultPixels,minValue:B.minValue,maxValue:g.pixels.maxValue,noDataValue:n};return B.resultMask&&(C.maskData=B.resultMask),a.returnEncodedMask&&g.mask&&(C.encodedMaskData=g.mask.bitset?g.mask.bitset:null),a.returnFileInfo&&(C.fileInfo=q(g),a.computeUsedBitDepths&&(C.fileInfo.bitDepths=b(g))),C};var U=function(I,a,Q,g,n){var B=0,C=I.pixels.numBlocksX,r=I.pixels.numBlocksY,o=Math.floor(I.width/C),s=Math.floor(I.height/r),D=2*I.maxZError,e=Number.MAX_VALUE,i;Q=Q||(I.mask?I.mask.bitset:null);var f,l;f=new a(I.width*I.height),n&&Q&&(l=new Uint8Array(I.width*I.height));for(var L=new Float32Array(o*s),w,S,G=0;G<=r;G++){var M=G!==r?s:I.height%r;if(M!==0)for(var h=0;h<=C;h++){var t=h!==C?o:I.width%C;if(t!==0){var F=G*I.width*s+h*o,R=I.width-t,y=I.pixels.blocks[B],k,c,N;y.encoding<2?(y.encoding===0?k=y.rawData:(A(y.stuffedData,y.bitsPerPixel,y.numValidPixels,y.offset,D,L,I.pixels.maxValue),k=L),c=0):y.encoding===2?N=0:N=y.offset;var x;if(Q)for(S=0;S<M;S++){for(F&7&&(x=Q[F>>3],x<<=F&7),w=0;w<t;w++)F&7||(x=Q[F>>3]),x&128?(l&&(l[F]=1),i=y.encoding<2?k[c++]:N,e=e>i?i:e,f[F++]=i):(l&&(l[F]=0),f[F++]=g),x<<=1;F+=R}else if(y.encoding<2)for(S=0;S<M;S++){for(w=0;w<t;w++)i=k[c++],e=e>i?i:e,f[F++]=i;F+=R}else for(e=e>N?N:e,S=0;S<M;S++){for(w=0;w<t;w++)f[F++]=N;F+=R}if(y.encoding===1&&c!==y.numValidPixels)throw"Block and Mask do not match";B++}}}return{resultPixels:f,resultMask:l,minValue:e}},q=function(I){return{fileIdentifierString:I.fileIdentifierString,fileVersion:I.fileVersion,imageType:I.imageType,height:I.height,width:I.width,maxZError:I.maxZError,eofOffset:I.eofOffset,mask:I.mask?{numBlocksX:I.mask.numBlocksX,numBlocksY:I.mask.numBlocksY,numBytes:I.mask.numBytes,maxValue:I.mask.maxValue}:null,pixels:{numBlocksX:I.pixels.numBlocksX,numBlocksY:I.pixels.numBlocksY,numBytes:I.pixels.numBytes,maxValue:I.pixels.maxValue,noDataValue:I.noDataValue}}},b=function(I){for(var a=I.pixels.numBlocksX*I.pixels.numBlocksY,Q={},g=0;g<a;g++){var n=I.pixels.blocks[g];n.encoding===0?Q.float32=!0:n.encoding===1?Q[n.bitsPerPixel]=!0:Q[0]=!0}return Object.keys(Q)},E=function(I,a,Q){var g={},n=new Uint8Array(I,a,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,n),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;a+=10;var B=new DataView(I,a,24);if(g.fileVersion=B.getInt32(0,!0),g.imageType=B.getInt32(4,!0),g.height=B.getUint32(8,!0),g.width=B.getUint32(12,!0),g.maxZError=B.getFloat64(16,!0),a+=24,!Q)if(B=new DataView(I,a,16),g.mask={},g.mask.numBlocksY=B.getUint32(0,!0),g.mask.numBlocksX=B.getUint32(4,!0),g.mask.numBytes=B.getUint32(8,!0),g.mask.maxValue=B.getFloat32(12,!0),a+=16,g.mask.numBytes>0){var C=new Uint8Array(Math.ceil(g.width*g.height/8));B=new DataView(I,a,g.mask.numBytes);var r=B.getInt16(0,!0),o=2,s=0;do{if(r>0)for(;r--;)C[s++]=B.getUint8(o++);else{var D=B.getUint8(o++);for(r=-r;r--;)C[s++]=D}r=B.getInt16(o,!0),o+=2}while(o<g.mask.numBytes);if(r!==-32768||s<C.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=C,a+=g.mask.numBytes}else(g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue)===0&&(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));B=new DataView(I,a,16),g.pixels={},g.pixels.numBlocksY=B.getUint32(0,!0),g.pixels.numBlocksX=B.getUint32(4,!0),g.pixels.numBytes=B.getUint32(8,!0),g.pixels.maxValue=B.getFloat32(12,!0),a+=16;var e=g.pixels.numBlocksX,i=g.pixels.numBlocksY,f=e+(g.width%e>0?1:0),l=i+(g.height%i>0?1:0);g.pixels.blocks=new Array(f*l);for(var L=0,w=0;w<l;w++)for(var S=0;S<f;S++){var G=0,M=I.byteLength-a;B=new DataView(I,a,Math.min(10,M));var h={};g.pixels.blocks[L++]=h;var t=B.getUint8(0);if(G++,h.encoding=t&63,h.encoding>3)throw"Invalid block encoding ("+h.encoding+")";if(h.encoding===2){a++;continue}if(t!==0&&t!==2){if(t>>=6,h.offsetType=t,t===2)h.offset=B.getInt8(1),G++;else if(t===1)h.offset=B.getInt16(1,!0),G+=2;else if(t===0)h.offset=B.getFloat32(1,!0),G+=4;else throw"Invalid block offset type";if(h.encoding===1)if(t=B.getUint8(G),G++,h.bitsPerPixel=t&63,t>>=6,h.numValidPixelsType=t,t===2)h.numValidPixels=B.getUint8(G),G++;else if(t===1)h.numValidPixels=B.getUint16(G,!0),G+=2;else if(t===0)h.numValidPixels=B.getUint32(G,!0),G+=4;else throw"Invalid valid pixel count type"}if(a+=G,h.encoding!==3){var F,R;if(h.encoding===0){var y=(g.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";F=new ArrayBuffer(y*4),R=new Uint8Array(F),R.set(new Uint8Array(I,a,y*4));var k=new Float32Array(F);h.rawData=k,a+=y*4}else if(h.encoding===1){var c=Math.ceil(h.numValidPixels*h.bitsPerPixel/8),N=Math.ceil(c/4);F=new ArrayBuffer(N*4),R=new Uint8Array(F),R.set(new Uint8Array(I,a,c)),h.stuffedData=new Uint32Array(F),a+=c}}}return g.eofOffset=a,g},A=function(I,a,Q,g,n,B,C){var r=(1<<a)-1,o=0,s,D=0,e,i,f=Math.ceil((C-g)/n),l=I.length*4-Math.ceil(a*Q/8);for(I[I.length-1]<<=8*l,s=0;s<Q;s++){if(D===0&&(i=I[o++],D=32),D>=a)e=i>>>D-a&r,D-=a;else{var L=a-D;e=(i&r)<<L&r,i=I[o++],D=32-L,e+=i>>>D}B[s]=e<f?g+e*n:C}return B};return u})(),m=(function(){"use strict";var u={unstuff:function(E,A,I,a,Q,g,n,B){var C=(1<<I)-1,r=0,o,s=0,D,e,i,f,l=E.length*4-Math.ceil(I*a/8);if(E[E.length-1]<<=8*l,Q)for(o=0;o<a;o++)s===0&&(e=E[r++],s=32),s>=I?(D=e>>>s-I&C,s-=I):(i=I-s,D=(e&C)<<i&C,e=E[r++],s=32-i,D+=e>>>s),A[o]=Q[D];else for(f=Math.ceil((B-g)/n),o=0;o<a;o++)s===0&&(e=E[r++],s=32),s>=I?(D=e>>>s-I&C,s-=I):(i=I-s,D=(e&C)<<i&C,e=E[r++],s=32-i,D+=e>>>s),A[o]=D<f?g+D*n:B},unstuffLUT:function(E,A,I,a,Q,g){var n=(1<<A)-1,B=0,C=0,r=0,o=0,s=0,D,e=[],i=E.length*4-Math.ceil(A*I/8);E[E.length-1]<<=8*i;var f=Math.ceil((g-a)/Q);for(C=0;C<I;C++)o===0&&(D=E[B++],o=32),o>=A?(s=D>>>o-A&n,o-=A):(r=A-o,s=(D&n)<<r&n,D=E[B++],o=32-r,s+=D>>>o),e[C]=s<f?a+s*Q:g;return e.unshift(a),e},unstuff2:function(E,A,I,a,Q,g,n,B){var C=(1<<I)-1,r=0,o,s=0,D=0,e,i,f;if(Q)for(o=0;o<a;o++)s===0&&(i=E[r++],s=32,D=0),s>=I?(e=i>>>D&C,s-=I,D+=I):(f=I-s,e=i>>>D&C,i=E[r++],s=32-f,e|=(i&(1<<f)-1)<<I-f,D=f),A[o]=Q[e];else{var l=Math.ceil((B-g)/n);for(o=0;o<a;o++)s===0&&(i=E[r++],s=32,D=0),s>=I?(e=i>>>D&C,s-=I,D+=I):(f=I-s,e=i>>>D&C,i=E[r++],s=32-f,e|=(i&(1<<f)-1)<<I-f,D=f),A[o]=e<l?g+e*n:B}return A},unstuffLUT2:function(E,A,I,a,Q,g){var n=(1<<A)-1,B=0,C=0,r=0,o=0,s=0,D=0,e,i=[],f=Math.ceil((g-a)/Q);for(C=0;C<I;C++)o===0&&(e=E[B++],o=32,D=0),o>=A?(s=e>>>D&n,o-=A,D+=A):(r=A-o,s=e>>>D&n,e=E[B++],o=32-r,s|=(e&(1<<r)-1)<<A-r,D=r),i[C]=s<f?a+s*Q:g;return i.unshift(a),i},originalUnstuff:function(E,A,I,a){var Q=(1<<I)-1,g=0,n,B=0,C,r,o,s=E.length*4-Math.ceil(I*a/8);for(E[E.length-1]<<=8*s,n=0;n<a;n++)B===0&&(r=E[g++],B=32),B>=I?(C=r>>>B-I&Q,B-=I):(o=I-B,C=(r&Q)<<o&Q,r=E[g++],B=32-o,C+=r>>>B),A[n]=C;return A},originalUnstuff2:function(E,A,I,a){var Q=(1<<I)-1,g=0,n,B=0,C=0,r,o,s;for(n=0;n<a;n++)B===0&&(o=E[g++],B=32,C=0),B>=I?(r=o>>>C&Q,B-=I,C+=I):(s=I-B,r=o>>>C&Q,o=E[g++],B=32-s,r|=(o&(1<<s)-1)<<I-s,C=s),A[n]=r;return A}},U={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(E){for(var A=65535,I=65535,a=E.length,Q=Math.floor(a/2),g=0;Q;){var n=Q>=359?359:Q;Q-=n;do A+=E[g++]<<8,I+=A+=E[g++];while(--n);A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16)}return a&1&&(I+=A+=E[g]<<8),A=(A&65535)+(A>>>16),I=(I&65535)+(I>>>16),(I<<16|A)>>>0},readHeaderInfo:function(E,A){var I=A.ptr,a=new Uint8Array(E,I,6),Q={};if(Q.fileIdentifierString=String.fromCharCode.apply(null,a),Q.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+Q.fileIdentifierString;I+=6;var g=new DataView(E,I,8),n=g.getInt32(0,!0);Q.fileVersion=n,I+=4,n>=3&&(Q.checksum=g.getUint32(4,!0),I+=4),g=new DataView(E,I,12),Q.height=g.getUint32(0,!0),Q.width=g.getUint32(4,!0),I+=8,n>=4?(Q.numDims=g.getUint32(8,!0),I+=4):Q.numDims=1,g=new DataView(E,I,40),Q.numValidPixel=g.getUint32(0,!0),Q.microBlockSize=g.getInt32(4,!0),Q.blobSize=g.getInt32(8,!0),Q.imageType=g.getInt32(12,!0),Q.maxZError=g.getFloat64(16,!0),Q.zMin=g.getFloat64(24,!0),Q.zMax=g.getFloat64(32,!0),I+=40,A.headerInfo=Q,A.ptr=I;var B,C;if(n>=3&&(C=n>=4?52:48,B=this.computeChecksumFletcher32(new Uint8Array(E,I-C,Q.blobSize-14)),B!==Q.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(E,A){var I=A.headerInfo,a=this.getDataTypeArray(I.imageType),Q=I.numDims*this.getDataTypeSize(I.imageType),g=this.readSubArray(E,A.ptr,a,Q),n=this.readSubArray(E,A.ptr+Q,a,Q);A.ptr+=2*Q;var B,C=!0;for(B=0;B<I.numDims;B++)if(g[B]!==n[B]){C=!1;break}return I.minValues=g,I.maxValues=n,C},readSubArray:function(E,A,I,a){var Q;if(I===Uint8Array)Q=new Uint8Array(E,A,a);else{var g=new ArrayBuffer(a),n=new Uint8Array(g);n.set(new Uint8Array(E,A,a)),Q=new I(g)}return Q},readMask:function(E,A){var I=A.ptr,a=A.headerInfo,Q=a.width*a.height,g=a.numValidPixel,n=new DataView(E,I,4),B={};if(B.numBytes=n.getUint32(0,!0),I+=4,(g===0||Q===g)&&B.numBytes!==0)throw"invalid mask";var C,r;if(g===0)C=new Uint8Array(Math.ceil(Q/8)),B.bitset=C,r=new Uint8Array(Q),A.pixels.resultMask=r,I+=B.numBytes;else if(B.numBytes>0){C=new Uint8Array(Math.ceil(Q/8)),n=new DataView(E,I,B.numBytes);var o=n.getInt16(0,!0),s=2,D=0,e=0;do{if(o>0)for(;o--;)C[D++]=n.getUint8(s++);else for(e=n.getUint8(s++),o=-o;o--;)C[D++]=e;o=n.getInt16(s,!0),s+=2}while(s<B.numBytes);if(o!==-32768||D<C.length)throw"Unexpected end of mask RLE encoding";r=new Uint8Array(Q);var i=0,f=0;for(f=0;f<Q;f++)f&7?(i=C[f>>3],i<<=f&7):i=C[f>>3],i&128&&(r[f]=1);A.pixels.resultMask=r,B.bitset=C,I+=B.numBytes}return A.ptr=I,A.mask=B,!0},readDataOneSweep:function(E,A,I,a){var Q=A.ptr,g=A.headerInfo,n=g.numDims,B=g.width*g.height,C=g.imageType,r=g.numValidPixel*U.getDataTypeSize(C)*n,o,s=A.pixels.resultMask;if(I===Uint8Array)o=new Uint8Array(E,Q,r);else{var D=new ArrayBuffer(r),e=new Uint8Array(D);e.set(new Uint8Array(E,Q,r)),o=new I(D)}if(o.length===B*n)a?A.pixels.resultPixels=U.swapDimensionOrder(o,B,n,I,!0):A.pixels.resultPixels=o;else{A.pixels.resultPixels=new I(B*n);var i=0,f=0,l=0,L=0;if(n>1){if(a){for(f=0;f<B;f++)if(s[f])for(L=f,l=0;l<n;l++,L+=B)A.pixels.resultPixels[L]=o[i++]}else for(f=0;f<B;f++)if(s[f])for(L=f*n,l=0;l<n;l++)A.pixels.resultPixels[L+l]=o[i++]}else for(f=0;f<B;f++)s[f]&&(A.pixels.resultPixels[f]=o[i++])}return Q+=r,A.ptr=Q,!0},readHuffmanTree:function(E,A){var I=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(E,A.ptr,16);A.ptr+=16;var Q=a.getInt32(0,!0);if(Q<2)throw"unsupported Huffman version";var g=a.getInt32(4,!0),n=a.getInt32(8,!0),B=a.getInt32(12,!0);if(n>=B)return!1;var C=new Uint32Array(B-n);U.decodeBits(E,A,C);var r=[],o,s,D,e;for(o=n;o<B;o++)s=o-(o<g?0:g),r[s]={first:C[o-n],second:null};var i=E.byteLength-A.ptr,f=Math.ceil(i/4),l=new ArrayBuffer(f*4),L=new Uint8Array(l);L.set(new Uint8Array(E,A.ptr,i));var w=new Uint32Array(l),S=0,G,M=0;for(G=w[0],o=n;o<B;o++)s=o-(o<g?0:g),e=r[s].first,e>0&&(r[s].second=G<<S>>>32-e,32-S>=e?(S+=e,S===32&&(S=0,M++,G=w[M])):(S+=e-32,M++,G=w[M],r[s].second|=G>>>32-S));var h=0,t=0,F=new q;for(o=0;o<r.length;o++)r[o]!==void 0&&(h=Math.max(h,r[o].first));h>=I?t=I:t=h;var R=[],y,k,c,N,x,J;for(o=n;o<B;o++)if(s=o-(o<g?0:g),e=r[s].first,e>0)if(y=[e,s],e<=t)for(k=r[s].second<<t-e,c=1<<t-e,D=0;D<c;D++)R[k|D]=y;else for(k=r[s].second,J=F,N=e-1;N>=0;N--)x=k>>>N&1,x?(J.right||(J.right=new q),J=J.right):(J.left||(J.left=new q),J=J.left),N===0&&!J.val&&(J.val=y[1]);return{decodeLut:R,numBitsLUTQick:t,numBitsLUT:h,tree:F,stuffedData:w,srcPtr:M,bitPos:S}},readHuffman:function(E,A,I,a){var Q=A.headerInfo,g=Q.numDims,n=A.headerInfo.height,B=A.headerInfo.width,C=B*n,r=this.readHuffmanTree(E,A),o=r.decodeLut,s=r.tree,D=r.stuffedData,e=r.srcPtr,i=r.bitPos,f=r.numBitsLUTQick,l=r.numBitsLUT,L=A.headerInfo.imageType===0?128:0,w,S,G,M=A.pixels.resultMask,h,t,F,R,y,k,c,N=0;i>0&&(e++,i=0);var x=D[e],J=A.encodeMode===1,j=new I(C*g),K=j,Y;if(g<2||J){for(Y=0;Y<g;Y++)if(g>1&&(K=new I(j.buffer,C*Y,C),N=0),A.headerInfo.numValidPixel===B*n)for(k=0,R=0;R<n;R++)for(y=0;y<B;y++,k++){if(S=0,h=x<<i>>>32-f,t=h,32-i<f&&(h|=D[e+1]>>>64-i-f,t=h),o[t])S=o[t][1],i+=o[t][0];else for(h=x<<i>>>32-l,t=h,32-i<l&&(h|=D[e+1]>>>64-i-l,t=h),w=s,c=0;c<l;c++)if(F=h>>>l-c-1&1,w=F?w.right:w.left,!(w.left||w.right)){S=w.val,i=i+c+1;break}i>=32&&(i-=32,e++,x=D[e]),G=S-L,J?(y>0?G+=N:R>0?G+=K[k-B]:G+=N,G&=255,K[k]=G,N=G):K[k]=G}else for(k=0,R=0;R<n;R++)for(y=0;y<B;y++,k++)if(M[k]){if(S=0,h=x<<i>>>32-f,t=h,32-i<f&&(h|=D[e+1]>>>64-i-f,t=h),o[t])S=o[t][1],i+=o[t][0];else for(h=x<<i>>>32-l,t=h,32-i<l&&(h|=D[e+1]>>>64-i-l,t=h),w=s,c=0;c<l;c++)if(F=h>>>l-c-1&1,w=F?w.right:w.left,!(w.left||w.right)){S=w.val,i=i+c+1;break}i>=32&&(i-=32,e++,x=D[e]),G=S-L,J?(y>0&&M[k-1]?G+=N:R>0&&M[k-B]?G+=K[k-B]:G+=N,G&=255,K[k]=G,N=G):K[k]=G}}else for(k=0,R=0;R<n;R++)for(y=0;y<B;y++)if(k=R*B+y,!M||M[k])for(Y=0;Y<g;Y++,k+=C){if(S=0,h=x<<i>>>32-f,t=h,32-i<f&&(h|=D[e+1]>>>64-i-f,t=h),o[t])S=o[t][1],i+=o[t][0];else for(h=x<<i>>>32-l,t=h,32-i<l&&(h|=D[e+1]>>>64-i-l,t=h),w=s,c=0;c<l;c++)if(F=h>>>l-c-1&1,w=F?w.right:w.left,!(w.left||w.right)){S=w.val,i=i+c+1;break}i>=32&&(i-=32,e++,x=D[e]),G=S-L,K[k]=G}A.ptr=A.ptr+(e+1)*4+(i>0?4:0),A.pixels.resultPixels=j,g>1&&!a&&(A.pixels.resultPixels=U.swapDimensionOrder(j,C,g,I))},decodeBits:function(E,A,I,a,Q){{var g=A.headerInfo,n=g.fileVersion,B=0,C=E.byteLength-A.ptr>=5?5:E.byteLength-A.ptr,r=new DataView(E,A.ptr,C),o=r.getUint8(0);B++;var s=o>>6,D=s===0?4:3-s,e=(o&32)>0,i=o&31,f=0;if(D===1)f=r.getUint8(B),B++;else if(D===2)f=r.getUint16(B,!0),B+=2;else if(D===4)f=r.getUint32(B,!0),B+=4;else throw"Invalid valid pixel count type";var l=2*g.maxZError,L,w,S,G,M,h,t,F,R,y,k=g.numDims>1?g.maxValues[Q]:g.zMax;if(e){for(A.counter.lut++,F=r.getUint8(B),R=i,B++,G=Math.ceil((F-1)*i/8),M=Math.ceil(G/4),w=new ArrayBuffer(M*4),S=new Uint8Array(w),A.ptr+=B,S.set(new Uint8Array(E,A.ptr,G)),t=new Uint32Array(w),A.ptr+=G,y=0;F-1>>>y;)y++;G=Math.ceil(f*y/8),M=Math.ceil(G/4),w=new ArrayBuffer(M*4),S=new Uint8Array(w),S.set(new Uint8Array(E,A.ptr,G)),L=new Uint32Array(w),A.ptr+=G,n>=3?h=u.unstuffLUT2(t,i,F-1,a,l,k):h=u.unstuffLUT(t,i,F-1,a,l,k),n>=3?u.unstuff2(L,I,y,f,h):u.unstuff(L,I,y,f,h)}else A.counter.bitstuffer++,y=i,A.ptr+=B,y>0&&(G=Math.ceil(f*y/8),M=Math.ceil(G/4),w=new ArrayBuffer(M*4),S=new Uint8Array(w),S.set(new Uint8Array(E,A.ptr,G)),L=new Uint32Array(w),A.ptr+=G,n>=3?a==null?u.originalUnstuff2(L,I,y,f):u.unstuff2(L,I,y,f,!1,a,l,k):a==null?u.originalUnstuff(L,I,y,f):u.unstuff(L,I,y,f,!1,a,l,k))}},readTiles:function(E,A,I,a){var Q=A.headerInfo,g=Q.width,n=Q.height,B=g*n,C=Q.microBlockSize,r=Q.imageType,o=U.getDataTypeSize(r),s=Math.ceil(g/C),D=Math.ceil(n/C);A.pixels.numBlocksY=D,A.pixels.numBlocksX=s,A.pixels.ptr=0;var e=0,i=0,f=0,l=0,L=0,w=0,S=0,G=0,M=0,h=0,t=0,F=0,R=0,y=0,k=0,c=0,N,x,J,j,K,Y,z=new I(C*C),wA=n%C||C,GA=g%C||C,BA,P,$=Q.numDims,Z,p=A.pixels.resultMask,H=A.pixels.resultPixels,lA=Q.fileVersion,oA=lA>=5?14:15,O,QA=Q.zMax,X;for(f=0;f<D;f++)for(L=f!==D-1?C:wA,l=0;l<s;l++)for(w=l!==s-1?C:GA,t=f*g*C+l*C,F=g-w,Z=0;Z<$;Z++){if($>1?(X=H,t=f*g*C+l*C,H=new I(A.pixels.resultPixels.buffer,B*Z*o,B),QA=Q.maxValues[Z]):X=null,S=E.byteLength-A.ptr,N=new DataView(E,A.ptr,Math.min(10,S)),x={},c=0,G=N.getUint8(0),c++,O=Q.fileVersion>=5?G&4:0,M=G>>6&255,h=G>>2&oA,h!==(l*C>>3&oA)||O&&Z===0)throw"integrity issue";if(Y=G&3,Y>3)throw A.ptr+=c,"Invalid block encoding ("+Y+")";if(Y===2){if(O)if(p)for(e=0;e<L;e++)for(i=0;i<w;i++)p[t]&&(H[t]=X[t]),t++;else for(e=0;e<L;e++)for(i=0;i<w;i++)H[t]=X[t],t++;A.counter.constant++,A.ptr+=c;continue}else if(Y===0){if(O)throw"integrity issue";if(A.counter.uncompressed++,A.ptr+=c,R=L*w*o,y=E.byteLength-A.ptr,R=R<y?R:y,J=new ArrayBuffer(R%o===0?R:R+o-R%o),j=new Uint8Array(J),j.set(new Uint8Array(E,A.ptr,R)),K=new I(J),k=0,p)for(e=0;e<L;e++){for(i=0;i<w;i++)p[t]&&(H[t]=K[k++]),t++;t+=F}else for(e=0;e<L;e++){for(i=0;i<w;i++)H[t++]=K[k++];t+=F}A.ptr+=k*o}else if(BA=U.getDataTypeUsed(O&&r<6?4:r,M),P=U.getOnePixel(x,c,BA,N),c+=U.getDataTypeSize(BA),Y===3)if(A.ptr+=c,A.counter.constantoffset++,p)for(e=0;e<L;e++){for(i=0;i<w;i++)p[t]&&(H[t]=O?Math.min(QA,X[t]+P):P),t++;t+=F}else for(e=0;e<L;e++){for(i=0;i<w;i++)H[t]=O?Math.min(QA,X[t]+P):P,t++;t+=F}else if(A.ptr+=c,U.decodeBits(E,A,z,P,Z),c=0,O)if(p)for(e=0;e<L;e++){for(i=0;i<w;i++)p[t]&&(H[t]=z[c++]+X[t]),t++;t+=F}else for(e=0;e<L;e++){for(i=0;i<w;i++)H[t]=z[c++]+X[t],t++;t+=F}else if(p)for(e=0;e<L;e++){for(i=0;i<w;i++)p[t]&&(H[t]=z[c++]),t++;t+=F}else for(e=0;e<L;e++){for(i=0;i<w;i++)H[t++]=z[c++];t+=F}}$>1&&!a&&(A.pixels.resultPixels=U.swapDimensionOrder(A.pixels.resultPixels,B,$,I))},formatFileInfo:function(E){return{fileIdentifierString:E.headerInfo.fileIdentifierString,fileVersion:E.headerInfo.fileVersion,imageType:E.headerInfo.imageType,height:E.headerInfo.height,width:E.headerInfo.width,numValidPixel:E.headerInfo.numValidPixel,microBlockSize:E.headerInfo.microBlockSize,blobSize:E.headerInfo.blobSize,maxZError:E.headerInfo.maxZError,pixelType:U.getPixelType(E.headerInfo.imageType),eofOffset:E.eofOffset,mask:E.mask?{numBytes:E.mask.numBytes}:null,pixels:{numBlocksX:E.pixels.numBlocksX,numBlocksY:E.pixels.numBlocksY,maxValue:E.headerInfo.zMax,minValue:E.headerInfo.zMin,noDataValue:E.noDataValue}}},constructConstantSurface:function(E,A){var I=E.headerInfo.zMax,a=E.headerInfo.zMin,Q=E.headerInfo.maxValues,g=E.headerInfo.numDims,n=E.headerInfo.height*E.headerInfo.width,B=0,C=0,r=0,o=E.pixels.resultMask,s=E.pixels.resultPixels;if(o)if(g>1){if(A)for(B=0;B<g;B++)for(r=B*n,I=Q[B],C=0;C<n;C++)o[C]&&(s[r+C]=I);else for(C=0;C<n;C++)if(o[C])for(r=C*g,B=0;B<g;B++)s[r+g]=Q[B]}else for(C=0;C<n;C++)o[C]&&(s[C]=I);else if(g>1&&a!==I)if(A)for(B=0;B<g;B++)for(r=B*n,I=Q[B],C=0;C<n;C++)s[r+C]=I;else for(C=0;C<n;C++)for(r=C*g,B=0;B<g;B++)s[r+B]=Q[B];else for(C=0;C<n*g;C++)s[C]=I},getDataTypeArray:function(E){var A;switch(E){case 0:A=Int8Array;break;case 1:A=Uint8Array;break;case 2:A=Int16Array;break;case 3:A=Uint16Array;break;case 4:A=Int32Array;break;case 5:A=Uint32Array;break;case 6:A=Float32Array;break;case 7:A=Float64Array;break;default:A=Float32Array}return A},getPixelType:function(E){var A;switch(E){case 0:A="S8";break;case 1:A="U8";break;case 2:A="S16";break;case 3:A="U16";break;case 4:A="S32";break;case 5:A="U32";break;case 6:A="F32";break;case 7:A="F64";break;default:A="F32"}return A},isValidPixelValue:function(E,A){if(A==null)return!1;var I;switch(E){case 0:I=A>=-128&&A<=127;break;case 1:I=A>=0&&A<=255;break;case 2:I=A>=-32768&&A<=32767;break;case 3:I=A>=0&&A<=65536;break;case 4:I=A>=-2147483648&&A<=2147483647;break;case 5:I=A>=0&&A<=4294967296;break;case 6:I=A>=-34027999387901484e22&&A<=34027999387901484e22;break;case 7:I=A>=-17976931348623157e292&&A<=17976931348623157e292;break;default:I=!1}return I},getDataTypeSize:function(E){var A=0;switch(E){case 0:case 1:A=1;break;case 2:case 3:A=2;break;case 4:case 5:case 6:A=4;break;case 7:A=8;break;default:A=E}return A},getDataTypeUsed:function(E,A){var I=E;switch(E){case 2:case 4:I=E-A;break;case 3:case 5:I=E-2*A;break;case 6:A===0?I=E:A===1?I=2:I=1;break;case 7:A===0?I=E:I=E-2*A+1;break;default:I=E;break}return I},getOnePixel:function(E,A,I,a){var Q=0;switch(I){case 0:Q=a.getInt8(A);break;case 1:Q=a.getUint8(A);break;case 2:Q=a.getInt16(A,!0);break;case 3:Q=a.getUint16(A,!0);break;case 4:Q=a.getInt32(A,!0);break;case 5:Q=a.getUInt32(A,!0);break;case 6:Q=a.getFloat32(A,!0);break;case 7:Q=a.getFloat64(A,!0);break;default:throw"the decoder does not understand this pixel type"}return Q},swapDimensionOrder:function(E,A,I,a,Q){var g=0,n=0,B=0,C=0,r=E;if(I>1)if(r=new a(A*I),Q)for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)r[C]=E[n++];else for(g=0;g<A;g++)for(C=g,B=0;B<I;B++,C+=A)r[n++]=E[C];return r}},q=function(E,A,I){this.val=E,this.left=A,this.right=I},b={decode:function(E,A){A=A||{};var I=A.noDataValue,a=0,Q={};if(Q.ptr=A.inputOffset||0,Q.pixels={},!!U.readHeaderInfo(E,Q)){var g=Q.headerInfo,n=g.fileVersion,B=U.getDataTypeArray(g.imageType);if(n>5)throw"unsupported lerc version 2."+n;U.readMask(E,Q),g.numValidPixel!==g.width*g.height&&!Q.pixels.resultMask&&(Q.pixels.resultMask=A.maskData);var C=g.width*g.height;Q.pixels.resultPixels=new B(C*g.numDims),Q.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var r=!A.returnPixelInterleavedDims;if(g.numValidPixel!==0)if(g.zMax===g.zMin)U.constructConstantSurface(Q,r);else if(n>=4&&U.checkMinMaxRanges(E,Q))U.constructConstantSurface(Q,r);else{var o=new DataView(E,Q.ptr,2),s=o.getUint8(0);if(Q.ptr++,s)U.readDataOneSweep(E,Q,B,r);else if(n>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var D=o.getUint8(1);if(Q.ptr++,Q.encodeMode=D,D>2||n<4&&D>1)throw"Invalid Huffman flag "+D;D?U.readHuffman(E,Q,B,r):U.readTiles(E,Q,B,r)}else U.readTiles(E,Q,B,r)}Q.eofOffset=Q.ptr;var e;A.inputOffset?(e=Q.headerInfo.blobSize+A.inputOffset-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=A.inputOffset+Q.headerInfo.blobSize)):(e=Q.headerInfo.blobSize-Q.ptr,Math.abs(e)>=1&&(Q.eofOffset=Q.headerInfo.blobSize));var i={width:g.width,height:g.height,pixelData:Q.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:Q.pixels.resultMask};if(Q.pixels.resultMask&&U.isValidPixelValue(g.imageType,I)){var f=Q.pixels.resultMask;for(a=0;a<C;a++)f[a]||(i.pixelData[a]=I);i.noDataValue=I}return Q.noDataValue=I,A.returnFileInfo&&(i.fileInfo=U.formatFileInfo(Q)),i}},getBandCount:function(E){var A=0,I=0,a={};for(a.ptr=0,a.pixels={};I<E.byteLength-58;)U.readHeaderInfo(E,a),I+=a.headerInfo.blobSize,A++,a.ptr=I;return A}};return b})(),W=(function(){var u=new ArrayBuffer(4),U=new Uint8Array(u),q=new Uint32Array(u);return q[0]=1,U[0]===1})(),T={decode:function(u,U){if(!W)throw"Big endian system is not supported.";U=U||{};var q=U.inputOffset||0,b=new Uint8Array(u,q,10),E=String.fromCharCode.apply(null,b),A,I;if(E.trim()==="CntZImage")A=d,I=1;else if(E.substring(0,5)==="Lerc2")A=m,I=2;else throw"Unexpected file identifier string: "+E;for(var a=0,Q=u.byteLength-10,g,n=[],B,C,r={width:0,height:0,pixels:[],pixelType:U.pixelType,mask:null,statistics:[]},o=0;q<Q;){var s=A.decode(u,{inputOffset:q,encodedMaskData:g,maskData:C,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,returnPixelInterleavedDims:U.returnPixelInterleavedDims,pixelType:U.pixelType||null,noDataValue:U.noDataValue||null});q=s.fileInfo.eofOffset,C=s.maskData,a===0&&(g=s.encodedMaskData,r.width=s.width,r.height=s.height,r.dimCount=s.dimCount||1,r.pixelType=s.pixelType||s.fileInfo.pixelType,r.mask=C),I>1&&(C&&n.push(C),s.fileInfo.mask&&s.fileInfo.mask.numBytes>0&&o++),a++,r.pixels.push(s.pixelData),r.statistics.push({minValue:s.minValue,maxValue:s.maxValue,noDataValue:s.noDataValue,dimStats:s.dimStats})}var D,e,i;if(I>1&&o>1){for(i=r.width*r.height,r.bandMasks=n,C=new Uint8Array(i),C.set(n[0]),D=1;D<n.length;D++)for(B=n[D],e=0;e<i;e++)C[e]=C[e]&B[e];r.maskData=C}return r}};typeof define=="function"&&define.amd?define([],function(){return T}):typeof AA<"u"&&AA.exports?AA.exports=T:this.Lerc=T})()});var hA=FA(nA(),1);var _,V,EA,CA={env:{emscripten_notify_memory_growth:function(d){EA=new Uint8Array(V.exports.memory.buffer)}}},IA=class{init(){return _||(typeof fetch<"u"?_=fetch("data:application/wasm;base64,"+tA).then(m=>m.arrayBuffer()).then(m=>WebAssembly.instantiate(m,CA)).then(this._init):_=WebAssembly.instantiate(Buffer.from(tA,"base64"),CA).then(this._init),_)}_init(m){V=m.instance,CA.env.emscripten_notify_memory_growth(0)}decode(m,W=0){if(!V)throw new Error("ZSTDDecoder: Await .init() before decoding.");let T=m.byteLength,u=V.exports.malloc(T);EA.set(m,u),W=W||Number(V.exports.ZSTD_findDecompressedSize(u,T));let U=V.exports.malloc(W),q=V.exports.ZSTD_decompress(U,W,u,T),b=EA.slice(U,U+q);return V.exports.free(u),V.exports.free(U),b}},tA="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBE