diff --git "a/assets/tts-worker-CN-gjxwV.js" "b/assets/tts-worker-CN-gjxwV.js" new file mode 100644--- /dev/null +++ "b/assets/tts-worker-CN-gjxwV.js" @@ -0,0 +1,2859 @@ +var EI=Object.defineProperty;var MI=(s,n,i)=>n in s?EI(s,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[n]=i;var _e=(s,n,i)=>MI(s,typeof n!="symbol"?n+"":n,i);const xu=new Map,Yo=[],vI=(s,n,i)=>{if(n&&typeof n.init=="function"&&typeof n.createInferenceSessionHandler=="function"){const g=xu.get(s);if(g===void 0)xu.set(s,{backend:n,priority:i});else{if(g.priority>i)return;if(g.priority===i&&g.backend!==n)throw new Error(`cannot register backend "${s}" using priority ${i}`)}if(i>=0){const C=Yo.indexOf(s);C!==-1&&Yo.splice(C,1);for(let p=0;p{const n=xu.get(s);if(!n)return"backend not found.";if(n.initialized)return n.backend;if(n.aborted)return n.error;{const i=!!n.initPromise;try{return i||(n.initPromise=n.backend.init(s)),await n.initPromise,n.initialized=!0,n.backend}catch(g){return i||(n.error=`${g}`,n.aborted=!0),n.error}finally{delete n.initPromise}}},xI=async s=>{const n=s.executionProviders||[],i=n.map(x=>typeof x=="string"?x:x.name),g=i.length===0?Yo:i;let C;const p=[],I=new Set;for(const x of g){const G=await yI(x);typeof G=="string"?p.push({name:x,err:G}):(C||(C=G),C===G&&I.add(x))}if(!C)throw new Error(`no available backend found. ERR: ${p.map(x=>`[${x.name}] ${x.err}`).join(", ")}`);for(const{name:x,err:G}of p)i.includes(x)&&console.warn(`removing requested execution provider "${x}" from session options because it is not available: ${G}`);const M=n.filter(x=>I.has(typeof x=="string"?x:x.name));return[C,new Proxy(s,{get:(x,G)=>G==="executionProviders"?M:Reflect.get(x,G)})]},BI="1.23.0";let gg="warning";const Ya={wasm:{},webgl:{},webgpu:{},versions:{common:BI},set logLevel(s){if(s!==void 0){if(typeof s!="string"||["verbose","info","warning","error","fatal"].indexOf(s)===-1)throw new Error(`Unsupported logging level: ${s}`);gg=s}},get logLevel(){return gg}};Object.defineProperty(Ya,"logLevel",{enumerable:!0});const DI=Ya,TI=(s,n)=>{const i=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);i.width=s.dims[3],i.height=s.dims[2];const g=i.getContext("2d");if(g!=null){let C,p;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(C=s.dims[2],p=s.dims[3]):(C=s.dims[3],p=s.dims[2]);const I=(n==null?void 0:n.format)!==void 0?n.format:"RGB",M=n==null?void 0:n.norm;let x,G;M===void 0||M.mean===void 0?x=[255,255,255,255]:typeof M.mean=="number"?x=[M.mean,M.mean,M.mean,M.mean]:(x=[M.mean[0],M.mean[1],M.mean[2],0],M.mean[3]!==void 0&&(x[3]=M.mean[3])),M===void 0||M.bias===void 0?G=[0,0,0,0]:typeof M.bias=="number"?G=[M.bias,M.bias,M.bias,M.bias]:(G=[M.bias[0],M.bias[1],M.bias[2],0],M.bias[3]!==void 0&&(G[3]=M.bias[3]));const S=p*C;let T=0,P=S,j=S*2,L=-1;I==="RGBA"?(T=0,P=S,j=S*2,L=S*3):I==="RGB"?(T=0,P=S,j=S*2):I==="RBG"&&(T=0,j=S,P=S*2);for(let K=0;K{const i=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let g;if(i!=null){let C,p,I;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(C=s.dims[2],p=s.dims[1],I=s.dims[3]):(C=s.dims[3],p=s.dims[2],I=s.dims[1]);const M=n!==void 0&&n.format!==void 0?n.format:"RGB",x=n==null?void 0:n.norm;let G,S;x===void 0||x.mean===void 0?G=[255,255,255,255]:typeof x.mean=="number"?G=[x.mean,x.mean,x.mean,x.mean]:(G=[x.mean[0],x.mean[1],x.mean[2],255],x.mean[3]!==void 0&&(G[3]=x.mean[3])),x===void 0||x.bias===void 0?S=[0,0,0,0]:typeof x.bias=="number"?S=[x.bias,x.bias,x.bias,x.bias]:(S=[x.bias[0],x.bias[1],x.bias[2],0],x.bias[3]!==void 0&&(S[3]=x.bias[3]));const T=p*C;if(n!==void 0&&(n.format!==void 0&&I===4&&n.format!=="RGBA"||I===3&&n.format!=="RGB"&&n.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const P=4;let j=0,L=1,K=2,ae=3,Y=0,V=T,ee=T*2,d=-1;M==="RGBA"?(Y=0,V=T,ee=T*2,d=T*3):M==="RGB"?(Y=0,V=T,ee=T*2):M==="RBG"&&(Y=0,ee=T,V=T*2),g=i.createImageData(C,p);for(let v=0;v{if(s===void 0)throw new Error("Image buffer must be defined");if(n.height===void 0||n.width===void 0)throw new Error("Image height and width must be defined");if(n.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:i,width:g}=n,C=n.norm??{mean:255,bias:0};let p,I;typeof C.mean=="number"?p=[C.mean,C.mean,C.mean,C.mean]:p=[C.mean[0],C.mean[1],C.mean[2],C.mean[3]??255],typeof C.bias=="number"?I=[C.bias,C.bias,C.bias,C.bias]:I=[C.bias[0],C.bias[1],C.bias[2],C.bias[3]??0];const M=n.format!==void 0?n.format:"RGBA",x=n.tensorFormat!==void 0&&n.tensorFormat!==void 0?n.tensorFormat:"RGB",G=i*g,S=x==="RGBA"?new Float32Array(G*4):new Float32Array(G*3);let T=4,P=0,j=1,L=2,K=3,ae=0,Y=G,V=G*2,ee=-1;M==="RGB"&&(T=3,P=0,j=1,L=2,K=-1),x==="RGBA"?ee=G*3:x==="RBG"?(ae=0,V=G,Y=G*2):x==="BGR"&&(V=0,Y=G,ae=G*2);for(let v=0;v{const i=typeof HTMLImageElement<"u"&&s instanceof HTMLImageElement,g=typeof ImageData<"u"&&s instanceof ImageData,C=typeof ImageBitmap<"u"&&s instanceof ImageBitmap,p=typeof s=="string";let I,M=n??{};const x=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},G=S=>typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||S instanceof OffscreenCanvas?S.getContext("2d"):null;if(i){const S=x();S.width=s.width,S.height=s.height;const T=G(S);if(T!=null){let P=s.height,j=s.width;if(n!==void 0&&n.resizedHeight!==void 0&&n.resizedWidth!==void 0&&(P=n.resizedHeight,j=n.resizedWidth),n!==void 0){if(M=n,n.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");M.tensorFormat="RGBA",M.height=P,M.width=j}else M.tensorFormat="RGBA",M.height=P,M.width=j;T.drawImage(s,0,0),I=T.getImageData(0,0,j,P).data}else throw new Error("Can not access image data")}else if(g){let S,T;if(n!==void 0&&n.resizedWidth!==void 0&&n.resizedHeight!==void 0?(S=n.resizedHeight,T=n.resizedWidth):(S=s.height,T=s.width),n!==void 0&&(M=n),M.format="RGBA",M.height=S,M.width=T,n!==void 0){const P=x();P.width=T,P.height=S;const j=G(P);if(j!=null)j.putImageData(s,0,0),I=j.getImageData(0,0,T,S).data;else throw new Error("Can not access image data")}else I=s.data}else if(C){if(n===void 0)throw new Error("Please provide image config with format for Imagebitmap");const S=x();S.width=s.width,S.height=s.height;const T=G(S);if(T!=null){const P=s.height,j=s.width;return T.drawImage(s,0,0,j,P),I=T.getImageData(0,0,j,P).data,M.height=P,M.width=j,nd(I,M)}else throw new Error("Can not access image data")}else{if(p)return new Promise((S,T)=>{const P=x(),j=G(P);if(!s||!j)return T();const L=new Image;L.crossOrigin="Anonymous",L.src=s,L.onload=()=>{P.width=L.width,P.height=L.height,j.drawImage(L,0,0,P.width,P.height);const K=j.getImageData(0,0,P.width,P.height);M.height=P.height,M.width=P.width,S(nd(K.data,M))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(I!==void 0)return nd(I,M);throw new Error("Input data provided is not supported - aborted tensor creation")},QI=(s,n)=>{const{width:i,height:g,download:C,dispose:p}=n,I=[1,g,i,4];return new Us({location:"texture",type:"float32",texture:s,dims:I,download:C,dispose:p})},SI=(s,n)=>{const{dataType:i,dims:g,download:C,dispose:p}=n;return new Us({location:"gpu-buffer",type:i??"float32",gpuBuffer:s,dims:g,download:C,dispose:p})},FI=(s,n)=>{const{dataType:i,dims:g,download:C,dispose:p}=n;return new Us({location:"ml-tensor",type:i??"float32",mlTensor:s,dims:g,download:C,dispose:p})},OI=(s,n,i)=>new Us({location:"cpu-pinned",type:s,data:n,dims:i??[n.length]}),O0=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Bu=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let pg=!1;const _I=()=>{if(!pg){pg=!0;const s=typeof BigInt64Array<"u"&&BigInt64Array.from,n=typeof BigUint64Array<"u"&&BigUint64Array.from,i=globalThis.Float16Array,g=typeof i<"u"&&i.from;s&&(O0.set("int64",BigInt64Array),Bu.set(BigInt64Array,"int64")),n&&(O0.set("uint64",BigUint64Array),Bu.set(BigUint64Array,"uint64")),g?(O0.set("float16",i),Bu.set(i,"float16")):O0.set("float16",Uint16Array)}},zI=s=>{let n=1;for(let i=0;i{switch(s.location){case"cpu":return new Us(s.type,s.data,n);case"cpu-pinned":return new Us({location:"cpu-pinned",data:s.data,type:s.type,dims:n});case"texture":return new Us({location:"texture",texture:s.texture,type:s.type,dims:n});case"gpu-buffer":return new Us({location:"gpu-buffer",gpuBuffer:s.gpuBuffer,type:s.type,dims:n});case"ml-tensor":return new Us({location:"ml-tensor",mlTensor:s.mlTensor,type:s.type,dims:n});default:throw new Error(`tensorReshape: tensor location ${s.location} is not supported`)}};let Us=class{constructor(n,i,g){_I();let C,p;if(typeof n=="object"&&"location"in n)switch(this.dataLocation=n.location,C=n.type,p=n.dims,n.location){case"cpu-pinned":{const M=O0.get(C);if(!M)throw new TypeError(`unsupported type "${C}" to create tensor from pinned buffer`);if(!(n.data instanceof M))throw new TypeError(`buffer should be of type ${M.name}`);this.cpuData=n.data;break}case"texture":{if(C!=="float32")throw new TypeError(`unsupported type "${C}" to create tensor from texture`);this.gpuTextureData=n.texture,this.downloader=n.download,this.disposer=n.dispose;break}case"gpu-buffer":{if(C!=="float32"&&C!=="float16"&&C!=="int32"&&C!=="int64"&&C!=="uint32"&&C!=="uint8"&&C!=="bool"&&C!=="uint4"&&C!=="int4")throw new TypeError(`unsupported type "${C}" to create tensor from gpu buffer`);this.gpuBufferData=n.gpuBuffer,this.downloader=n.download,this.disposer=n.dispose;break}case"ml-tensor":{if(C!=="float32"&&C!=="float16"&&C!=="int32"&&C!=="int64"&&C!=="uint32"&&C!=="uint64"&&C!=="int8"&&C!=="uint8"&&C!=="bool"&&C!=="uint4"&&C!=="int4")throw new TypeError(`unsupported type "${C}" to create tensor from MLTensor`);this.mlTensorData=n.mlTensor,this.downloader=n.download,this.disposer=n.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let M,x;if(typeof n=="string")if(C=n,x=g,n==="string"){if(!Array.isArray(i))throw new TypeError("A string tensor's data must be a string array.");M=i}else{const G=O0.get(n);if(G===void 0)throw new TypeError(`Unsupported tensor type: ${n}.`);if(Array.isArray(i)){if(n==="float16"&&G===Uint16Array||n==="uint4"||n==="int4")throw new TypeError(`Creating a ${n} tensor from number array is not supported. Please use ${G.name} as data.`);n==="uint64"||n==="int64"?M=G.from(i,BigInt):M=G.from(i)}else if(i instanceof G)M=i;else if(i instanceof Uint8ClampedArray)if(n==="uint8")M=Uint8Array.from(i);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(n==="float16"&&i instanceof Uint16Array&&G!==Uint16Array)M=new globalThis.Float16Array(i.buffer,i.byteOffset,i.length);else throw new TypeError(`A ${C} tensor's data must be type of ${G}`)}else if(x=i,Array.isArray(n)){if(n.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const G=typeof n[0];if(G==="string")C="string",M=n;else if(G==="boolean")C="bool",M=Uint8Array.from(n);else throw new TypeError(`Invalid element type of data array: ${G}.`)}else if(n instanceof Uint8ClampedArray)C="uint8",M=Uint8Array.from(n);else{const G=Bu.get(n.constructor);if(G===void 0)throw new TypeError(`Unsupported type for tensor data: ${n.constructor}.`);C=G,M=n}if(x===void 0)x=[M.length];else if(!Array.isArray(x))throw new TypeError("A tensor's dims must be a number array");p=x,this.cpuData=M,this.dataLocation="cpu"}const I=zI(p);if(this.cpuData&&I!==this.cpuData.length&&!((C==="uint4"||C==="int4")&&Math.ceil(I/2)===this.cpuData.length))throw new Error(`Tensor's size(${I}) does not match data length(${this.cpuData.length}).`);this.type=C,this.dims=p,this.size=I}static async fromImage(n,i){return PI(n,i)}static fromTexture(n,i){return QI(n,i)}static fromGpuBuffer(n,i){return SI(n,i)}static fromMLTensor(n,i){return FI(n,i)}static fromPinnedBuffer(n,i,g){return OI(n,i,g)}toDataURL(n){return TI(this,n)}toImageData(n){return GI(this,n)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(n){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;const i=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=i,n&&this.disposer&&(this.disposer(),this.disposer=void 0),i}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(n){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return NI(this,n)}};const F0=Us,am=(s,n)=>{(typeof Ya.trace>"u"?!Ya.wasm.trace:!Ya.trace)||console.timeStamp(`${s}::ORT::${n}`)},sm=(s,n)=>{var C;const i=((C=new Error().stack)==null?void 0:C.split(/\r\n|\r|\n/g))||[];let g=!1;for(let p=0;p{(typeof Ya.trace>"u"?!Ya.wasm.trace:!Ya.trace)||sm("BEGIN",s)},hf=s=>{(typeof Ya.trace>"u"?!Ya.wasm.trace:!Ya.trace)||sm("END",s)},mf=s=>{(typeof Ya.trace>"u"?!Ya.wasm.trace:!Ya.trace)||console.time(`ORT::${s}`)},Cf=s=>{(typeof Ya.trace>"u"?!Ya.wasm.trace:!Ya.trace)||console.timeEnd(`ORT::${s}`)};let LI=class im{constructor(n){this.handler=n}async run(n,i,g){pf(),mf("InferenceSession.run");const C={};let p={};if(typeof n!="object"||n===null||n instanceof F0||Array.isArray(n))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let I=!0;if(typeof i=="object"){if(i===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(i instanceof F0)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(i)){if(i.length===0)throw new TypeError("'fetches' cannot be an empty array.");I=!1;for(const G of i){if(typeof G!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(G)===-1)throw new RangeError(`'fetches' contains invalid output name: ${G}.`);C[G]=null}if(typeof g=="object"&&g!==null)p=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let G=!1;const S=Object.getOwnPropertyNames(i);for(const T of this.outputNames)if(S.indexOf(T)!==-1){const P=i[T];(P===null||P instanceof F0)&&(G=!0,I=!1,C[T]=P)}if(G){if(typeof g=="object"&&g!==null)p=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else p=i}}else if(typeof i<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const G of this.inputNames)if(typeof n[G]>"u")throw new Error(`input '${G}' is missing in 'feeds'.`);if(I)for(const G of this.outputNames)C[G]=null;const M=await this.handler.run(n,C,p),x={};for(const G in M)if(Object.hasOwnProperty.call(M,G)){const S=M[G];S instanceof F0?x[G]=S:x[G]=new F0(S.type,S.data,S.dims)}return Cf("InferenceSession.run"),hf(),x}async release(){return this.handler.dispose()}static async create(n,i,g,C){pf(),mf("InferenceSession.create");let p,I={};if(typeof n=="string"){if(p=n,typeof i=="object"&&i!==null)I=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(p=n,typeof i=="object"&&i!==null)I=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer){const S=n;let T=0,P=n.byteLength;if(typeof i=="object"&&i!==null)I=i;else if(typeof i=="number"){if(T=i,!Number.isSafeInteger(T))throw new RangeError("'byteOffset' must be an integer.");if(T<0||T>=S.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${S.byteLength}).`);if(P=n.byteLength-T,typeof g=="number"){if(P=g,!Number.isSafeInteger(P))throw new RangeError("'byteLength' must be an integer.");if(P<=0||T+P>S.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${S.byteLength-T}].`);if(typeof C=="object"&&C!==null)I=C;else if(typeof C<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof i<"u")throw new TypeError("'options' must be an object.");p=new Uint8Array(S,T,P)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const[M,x]=await xI(I),G=await M.createInferenceSessionHandler(p,x);return Cf("InferenceSession.create"),hf(),new im(G)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}};const jI=LI;var RI=Object.freeze({__proto__:null,InferenceSession:jI,TRACE:am,TRACE_EVENT_BEGIN:mf,TRACE_EVENT_END:Cf,TRACE_FUNC_BEGIN:pf,TRACE_FUNC_END:hf,Tensor:F0,env:DI,registerBackend:vI});/*! + * ONNX Runtime Web v1.23.0 + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */var Ff=Object.defineProperty,WI=Object.getOwnPropertyDescriptor,VI=Object.getOwnPropertyNames,YI=Object.prototype.hasOwnProperty,HI=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')}),xA=(s,n)=>()=>(s&&(n=s(s=0)),n),H0=(s,n)=>{for(var i in n)Ff(s,i,{get:n[i],enumerable:!0})},UI=(s,n,i,g)=>{if(n&&typeof n=="object"||typeof n=="function")for(let C of VI(n))!YI.call(s,C)&&C!==i&&Ff(s,C,{get:()=>n[C],enumerable:!(g=WI(n,C))||g.enumerable});return s},qc=s=>UI(Ff({},"__esModule",{value:!0}),s),Gc,Jn,Xo,hg,nm,om=xA(()=>{Gc=new Map,Jn=[],Xo=(s,n,i)=>{if(n&&typeof n.init=="function"&&typeof n.createInferenceSessionHandler=="function"){let g=Gc.get(s);if(g===void 0)Gc.set(s,{backend:n,priority:i});else{if(g.priority>i)return;if(g.priority===i&&g.backend!==n)throw new Error(`cannot register backend "${s}" using priority ${i}`)}if(i>=0){let C=Jn.indexOf(s);C!==-1&&Jn.splice(C,1);for(let p=0;p{let n=Gc.get(s);if(!n)return"backend not found.";if(n.initialized)return n.backend;if(n.aborted)return n.error;{let i=!!n.initPromise;try{return i||(n.initPromise=n.backend.init(s)),await n.initPromise,n.initialized=!0,n.backend}catch(g){return i||(n.error=`${g}`,n.aborted=!0),n.error}finally{delete n.initPromise}}},nm=async s=>{let n=s.executionProviders||[],i=n.map(x=>typeof x=="string"?x:x.name),g=i.length===0?Jn:i,C,p=[],I=new Set;for(let x of g){let G=await hg(x);typeof G=="string"?p.push({name:x,err:G}):(C||(C=G),C===G&&I.add(x))}if(!C)throw new Error(`no available backend found. ERR: ${p.map(x=>`[${x.name}] ${x.err}`).join(", ")}`);for(let{name:x,err:G}of p)i.includes(x)&&console.warn(`removing requested execution provider "${x}" from session options because it is not available: ${G}`);let M=n.filter(x=>I.has(typeof x=="string"?x:x.name));return[C,new Proxy(s,{get:(x,G)=>G==="executionProviders"?M:Reflect.get(x,G)})]}}),KI=xA(()=>{om()}),lm,XI=xA(()=>{lm="1.23.0"}),od,Oa,cm=xA(()=>{XI(),od="warning",Oa={wasm:{},webgl:{},webgpu:{},versions:{common:lm},set logLevel(s){if(s!==void 0){if(typeof s!="string"||["verbose","info","warning","error","fatal"].indexOf(s)===-1)throw new Error(`Unsupported logging level: ${s}`);od=s}},get logLevel(){return od}},Object.defineProperty(Oa,"logLevel",{enumerable:!0})}),Gr,ZI=xA(()=>{cm(),Gr=Oa}),um,dm,JI=xA(()=>{um=(s,n)=>{let i=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);i.width=s.dims[3],i.height=s.dims[2];let g=i.getContext("2d");if(g!=null){let C,p;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(C=s.dims[2],p=s.dims[3]):(C=s.dims[3],p=s.dims[2]);let I=(n==null?void 0:n.format)!==void 0?n.format:"RGB",M=n==null?void 0:n.norm,x,G;M===void 0||M.mean===void 0?x=[255,255,255,255]:typeof M.mean=="number"?x=[M.mean,M.mean,M.mean,M.mean]:(x=[M.mean[0],M.mean[1],M.mean[2],0],M.mean[3]!==void 0&&(x[3]=M.mean[3])),M===void 0||M.bias===void 0?G=[0,0,0,0]:typeof M.bias=="number"?G=[M.bias,M.bias,M.bias,M.bias]:(G=[M.bias[0],M.bias[1],M.bias[2],0],M.bias[3]!==void 0&&(G[3]=M.bias[3]));let S=p*C,T=0,P=S,j=S*2,L=-1;I==="RGBA"?(T=0,P=S,j=S*2,L=S*3):I==="RGB"?(T=0,P=S,j=S*2):I==="RBG"&&(T=0,j=S,P=S*2);for(let K=0;K{let i=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),g;if(i!=null){let C,p,I;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(C=s.dims[2],p=s.dims[1],I=s.dims[3]):(C=s.dims[3],p=s.dims[2],I=s.dims[1]);let M=n!==void 0&&n.format!==void 0?n.format:"RGB",x=n==null?void 0:n.norm,G,S;x===void 0||x.mean===void 0?G=[255,255,255,255]:typeof x.mean=="number"?G=[x.mean,x.mean,x.mean,x.mean]:(G=[x.mean[0],x.mean[1],x.mean[2],255],x.mean[3]!==void 0&&(G[3]=x.mean[3])),x===void 0||x.bias===void 0?S=[0,0,0,0]:typeof x.bias=="number"?S=[x.bias,x.bias,x.bias,x.bias]:(S=[x.bias[0],x.bias[1],x.bias[2],0],x.bias[3]!==void 0&&(S[3]=x.bias[3]));let T=p*C;if(n!==void 0&&(n.format!==void 0&&I===4&&n.format!=="RGBA"||I===3&&n.format!=="RGB"&&n.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let P=4,j=0,L=1,K=2,ae=3,Y=0,V=T,ee=T*2,d=-1;M==="RGBA"?(Y=0,V=T,ee=T*2,d=T*3):M==="RGB"?(Y=0,V=T,ee=T*2):M==="RBG"&&(Y=0,ee=T,V=T*2),g=i.createImageData(C,p);for(let v=0;v{Of(),fu=(s,n)=>{if(s===void 0)throw new Error("Image buffer must be defined");if(n.height===void 0||n.width===void 0)throw new Error("Image height and width must be defined");if(n.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:i,width:g}=n,C=n.norm??{mean:255,bias:0},p,I;typeof C.mean=="number"?p=[C.mean,C.mean,C.mean,C.mean]:p=[C.mean[0],C.mean[1],C.mean[2],C.mean[3]??255],typeof C.bias=="number"?I=[C.bias,C.bias,C.bias,C.bias]:I=[C.bias[0],C.bias[1],C.bias[2],C.bias[3]??0];let M=n.format!==void 0?n.format:"RGBA",x=n.tensorFormat!==void 0&&n.tensorFormat!==void 0?n.tensorFormat:"RGB",G=i*g,S=x==="RGBA"?new Float32Array(G*4):new Float32Array(G*3),T=4,P=0,j=1,L=2,K=3,ae=0,Y=G,V=G*2,ee=-1;M==="RGB"&&(T=3,P=0,j=1,L=2,K=-1),x==="RGBA"?ee=G*3:x==="RBG"?(ae=0,V=G,Y=G*2):x==="BGR"&&(V=0,Y=G,ae=G*2);for(let d=0;d{let i=typeof HTMLImageElement<"u"&&s instanceof HTMLImageElement,g=typeof ImageData<"u"&&s instanceof ImageData,C=typeof ImageBitmap<"u"&&s instanceof ImageBitmap,p=typeof s=="string",I,M=n??{},x=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},G=S=>typeof HTMLCanvasElement<"u"&&S instanceof HTMLCanvasElement||S instanceof OffscreenCanvas?S.getContext("2d"):null;if(i){let S=x();S.width=s.width,S.height=s.height;let T=G(S);if(T!=null){let P=s.height,j=s.width;if(n!==void 0&&n.resizedHeight!==void 0&&n.resizedWidth!==void 0&&(P=n.resizedHeight,j=n.resizedWidth),n!==void 0){if(M=n,n.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");M.tensorFormat="RGBA",M.height=P,M.width=j}else M.tensorFormat="RGBA",M.height=P,M.width=j;T.drawImage(s,0,0),I=T.getImageData(0,0,j,P).data}else throw new Error("Can not access image data")}else if(g){let S,T;if(n!==void 0&&n.resizedWidth!==void 0&&n.resizedHeight!==void 0?(S=n.resizedHeight,T=n.resizedWidth):(S=s.height,T=s.width),n!==void 0&&(M=n),M.format="RGBA",M.height=S,M.width=T,n!==void 0){let P=x();P.width=T,P.height=S;let j=G(P);if(j!=null)j.putImageData(s,0,0),I=j.getImageData(0,0,T,S).data;else throw new Error("Can not access image data")}else I=s.data}else if(C){if(n===void 0)throw new Error("Please provide image config with format for Imagebitmap");let S=x();S.width=s.width,S.height=s.height;let T=G(S);if(T!=null){let P=s.height,j=s.width;return T.drawImage(s,0,0,j,P),I=T.getImageData(0,0,j,P).data,M.height=P,M.width=j,fu(I,M)}else throw new Error("Can not access image data")}else{if(p)return new Promise((S,T)=>{let P=x(),j=G(P);if(!s||!j)return T();let L=new Image;L.crossOrigin="Anonymous",L.src=s,L.onload=()=>{P.width=L.width,P.height=L.height,j.drawImage(L,0,0,P.width,P.height);let K=j.getImageData(0,0,P.width,P.height);M.height=P.height,M.width=P.width,S(fu(K.data,M))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(I!==void 0)return fu(I,M);throw new Error("Input data provided is not supported - aborted tensor creation")},gm=(s,n)=>{let{width:i,height:g,download:C,dispose:p}=n,I=[1,g,i,4];return new Gs({location:"texture",type:"float32",texture:s,dims:I,download:C,dispose:p})},pm=(s,n)=>{let{dataType:i,dims:g,download:C,dispose:p}=n;return new Gs({location:"gpu-buffer",type:i??"float32",gpuBuffer:s,dims:g,download:C,dispose:p})},hm=(s,n)=>{let{dataType:i,dims:g,download:C,dispose:p}=n;return new Gs({location:"ml-tensor",type:i??"float32",mlTensor:s,dims:g,download:C,dispose:p})},mm=(s,n,i)=>new Gs({location:"cpu-pinned",type:s,data:n,dims:i??[n.length]})}),Ho,Yc,ld,Cm,$I=xA(()=>{Ho=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Yc=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),ld=!1,Cm=()=>{if(!ld){ld=!0;let s=typeof BigInt64Array<"u"&&BigInt64Array.from,n=typeof BigUint64Array<"u"&&BigUint64Array.from,i=globalThis.Float16Array,g=typeof i<"u"&&i.from;s&&(Ho.set("int64",BigInt64Array),Yc.set(BigInt64Array,"int64")),n&&(Ho.set("uint64",BigUint64Array),Yc.set(BigUint64Array,"uint64")),g?(Ho.set("float16",i),Yc.set(i,"float16")):Ho.set("float16",Uint16Array)}}}),bm,Im,ew=xA(()=>{Of(),bm=s=>{let n=1;for(let i=0;i{switch(s.location){case"cpu":return new Gs(s.type,s.data,n);case"cpu-pinned":return new Gs({location:"cpu-pinned",data:s.data,type:s.type,dims:n});case"texture":return new Gs({location:"texture",texture:s.texture,type:s.type,dims:n});case"gpu-buffer":return new Gs({location:"gpu-buffer",gpuBuffer:s.gpuBuffer,type:s.type,dims:n});case"ml-tensor":return new Gs({location:"ml-tensor",mlTensor:s.mlTensor,type:s.type,dims:n});default:throw new Error(`tensorReshape: tensor location ${s.location} is not supported`)}}}),Gs,Of=xA(()=>{JI(),qI(),$I(),ew(),Gs=class{constructor(s,n,i){Cm();let g,C;if(typeof s=="object"&&"location"in s)switch(this.dataLocation=s.location,g=s.type,C=s.dims,s.location){case"cpu-pinned":{let I=Ho.get(g);if(!I)throw new TypeError(`unsupported type "${g}" to create tensor from pinned buffer`);if(!(s.data instanceof I))throw new TypeError(`buffer should be of type ${I.name}`);this.cpuData=s.data;break}case"texture":{if(g!=="float32")throw new TypeError(`unsupported type "${g}" to create tensor from texture`);this.gpuTextureData=s.texture,this.downloader=s.download,this.disposer=s.dispose;break}case"gpu-buffer":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from gpu buffer`);this.gpuBufferData=s.gpuBuffer,this.downloader=s.download,this.disposer=s.dispose;break}case"ml-tensor":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint64"&&g!=="int8"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from MLTensor`);this.mlTensorData=s.mlTensor,this.downloader=s.download,this.disposer=s.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let I,M;if(typeof s=="string")if(g=s,M=i,s==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");I=n}else{let x=Ho.get(s);if(x===void 0)throw new TypeError(`Unsupported tensor type: ${s}.`);if(Array.isArray(n)){if(s==="float16"&&x===Uint16Array||s==="uint4"||s==="int4")throw new TypeError(`Creating a ${s} tensor from number array is not supported. Please use ${x.name} as data.`);s==="uint64"||s==="int64"?I=x.from(n,BigInt):I=x.from(n)}else if(n instanceof x)I=n;else if(n instanceof Uint8ClampedArray)if(s==="uint8")I=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(s==="float16"&&n instanceof Uint16Array&&x!==Uint16Array)I=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${g} tensor's data must be type of ${x}`)}else if(M=n,Array.isArray(s)){if(s.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let x=typeof s[0];if(x==="string")g="string",I=s;else if(x==="boolean")g="bool",I=Uint8Array.from(s);else throw new TypeError(`Invalid element type of data array: ${x}.`)}else if(s instanceof Uint8ClampedArray)g="uint8",I=Uint8Array.from(s);else{let x=Yc.get(s.constructor);if(x===void 0)throw new TypeError(`Unsupported type for tensor data: ${s.constructor}.`);g=x,I=s}if(M===void 0)M=[I.length];else if(!Array.isArray(M))throw new TypeError("A tensor's dims must be a number array");C=M,this.cpuData=I,this.dataLocation="cpu"}let p=bm(C);if(this.cpuData&&p!==this.cpuData.length&&!((g==="uint4"||g==="int4")&&Math.ceil(p/2)===this.cpuData.length))throw new Error(`Tensor's size(${p}) does not match data length(${this.cpuData.length}).`);this.type=g,this.dims=C,this.size=p}static async fromImage(s,n){return fm(s,n)}static fromTexture(s,n){return gm(s,n)}static fromGpuBuffer(s,n){return pm(s,n)}static fromMLTensor(s,n){return hm(s,n)}static fromPinnedBuffer(s,n,i){return mm(s,n,i)}toDataURL(s){return um(this,s)}toImageData(s){return dm(this,s)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(s){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,s&&this.disposer&&(this.disposer(),this.disposer=void 0),n}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(s){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return Im(this,s)}}}),ki,wm=xA(()=>{Of(),ki=Gs}),$c,cd,Ei,Ks,Ao,to,km=xA(()=>{cm(),$c=(s,n)=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||console.timeStamp(`${s}::ORT::${n}`)},cd=(s,n)=>{var C;let i=((C=new Error().stack)==null?void 0:C.split(/\r\n|\r|\n/g))||[],g=!1;for(let p=0;p{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||cd("BEGIN",s)},Ks=s=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||cd("END",s)},Ao=s=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||console.time(`ORT::${s}`)},to=s=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||console.timeEnd(`ORT::${s}`)}}),Em,Aw=xA(()=>{om(),wm(),km(),Em=class Mm{constructor(n){this.handler=n}async run(n,i,g){Ei(),Ao("InferenceSession.run");let C={},p={};if(typeof n!="object"||n===null||n instanceof ki||Array.isArray(n))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let I=!0;if(typeof i=="object"){if(i===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(i instanceof ki)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(i)){if(i.length===0)throw new TypeError("'fetches' cannot be an empty array.");I=!1;for(let G of i){if(typeof G!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(G)===-1)throw new RangeError(`'fetches' contains invalid output name: ${G}.`);C[G]=null}if(typeof g=="object"&&g!==null)p=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let G=!1,S=Object.getOwnPropertyNames(i);for(let T of this.outputNames)if(S.indexOf(T)!==-1){let P=i[T];(P===null||P instanceof ki)&&(G=!0,I=!1,C[T]=P)}if(G){if(typeof g=="object"&&g!==null)p=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else p=i}}else if(typeof i<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let G of this.inputNames)if(typeof n[G]>"u")throw new Error(`input '${G}' is missing in 'feeds'.`);if(I)for(let G of this.outputNames)C[G]=null;let M=await this.handler.run(n,C,p),x={};for(let G in M)if(Object.hasOwnProperty.call(M,G)){let S=M[G];S instanceof ki?x[G]=S:x[G]=new ki(S.type,S.data,S.dims)}return to("InferenceSession.run"),Ks(),x}async release(){return this.handler.dispose()}static async create(n,i,g,C){Ei(),Ao("InferenceSession.create");let p,I={};if(typeof n=="string"){if(p=n,typeof i=="object"&&i!==null)I=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(p=n,typeof i=="object"&&i!==null)I=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer){let S=n,T=0,P=n.byteLength;if(typeof i=="object"&&i!==null)I=i;else if(typeof i=="number"){if(T=i,!Number.isSafeInteger(T))throw new RangeError("'byteOffset' must be an integer.");if(T<0||T>=S.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${S.byteLength}).`);if(P=n.byteLength-T,typeof g=="number"){if(P=g,!Number.isSafeInteger(P))throw new RangeError("'byteLength' must be an integer.");if(P<=0||T+P>S.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${S.byteLength-T}].`);if(typeof C=="object"&&C!==null)I=C;else if(typeof C<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof i<"u")throw new TypeError("'options' must be an object.");p=new Uint8Array(S,T,P)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[M,x]=await nm(I),G=await M.createInferenceSessionHandler(p,x);return to("InferenceSession.create"),Ks(),new Mm(G)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),_f,tw=xA(()=>{Aw(),_f=Em}),rw=xA(()=>{}),aw=xA(()=>{}),sw=xA(()=>{}),iw=xA(()=>{}),vm={};H0(vm,{InferenceSession:()=>_f,TRACE:()=>$c,TRACE_EVENT_BEGIN:()=>Ao,TRACE_EVENT_END:()=>to,TRACE_FUNC_BEGIN:()=>Ei,TRACE_FUNC_END:()=>Ks,Tensor:()=>ki,env:()=>Gr,registerBackend:()=>Xo});var Xs=xA(()=>{KI(),ZI(),tw(),wm(),rw(),aw(),km(),sw(),iw()}),zf=xA(()=>{}),ym={};H0(ym,{default:()=>xm});var ud,dd,xm,nw=xA(()=>{var s;Pb(),A0(),Nf(),ud="ort-wasm-proxy-worker",dd=((s=globalThis.self)==null?void 0:s.name)===ud,dd&&(self.onmessage=n=>{let{type:i,in:g}=n.data;try{switch(i){case"init-wasm":Lf(g.wasm).then(()=>{rg(g).then(()=>{postMessage({type:i})},C=>{postMessage({type:i,err:C})})},C=>{postMessage({type:i,err:C})});break;case"init-ep":{let{epName:C,env:p}=g;ag(p,C).then(()=>{postMessage({type:i})},I=>{postMessage({type:i,err:I})});break}case"copy-from":{let{buffer:C}=g,p=zu(C);postMessage({type:i,out:p});break}case"create":{let{model:C,options:p}=g;sg(C,p).then(I=>{postMessage({type:i,out:I})},I=>{postMessage({type:i,err:I})});break}case"release":ig(g),postMessage({type:i});break;case"run":{let{sessionId:C,inputIndices:p,inputs:I,outputIndices:M,options:x}=g;ng(C,p,I,M,new Array(M.length).fill(null),x).then(G=>{G.some(S=>S[3]!=="cpu")?postMessage({type:i,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:i,out:G},lg([...I,...G]))},G=>{postMessage({type:i,err:G})});break}case"end-profiling":og(g),postMessage({type:i});break;default:}}catch(C){postMessage({type:i,err:C})}}),xm=dd?null:n=>new Worker(n??Ts,{type:"module",name:ud})}),Bm={};H0(Bm,{default:()=>Dm});var fd,gd,Dm,mg,ow=xA(()=>{var s,n;gd=(fd=import.meta.url,async function(i={}){var fg;var g,C,p=i,I=new Promise((h,b)=>{g=h,C=b}),M=typeof window=="object",x=typeof WorkerGlobalScope<"u",G=x&&((fg=self.name)==null?void 0:fg.startsWith("em-pthread"));p.mountExternalData=(h,b)=>{h.startsWith("./")&&(h=h.substring(2)),(p.mg||(p.mg=new Map)).set(h,b)},p.unmountExternalData=()=>{delete p.mg};var S=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,ul:!0}).buffer.constructor;let T=h=>async(...b)=>{var k;try{if(p.ng)throw Error("Session already started");let y=p.ng={jl:b[0],errors:[]},D=await h(...b);if(p.ng!==y)throw Error("Session mismatch");(k=p.Ok)==null||k.flush();let F=y.errors;if(0H),0{if(h==="webgpu"){[p.Ok,p.$k,p.dl,p.Pk,p.cl,p.fg,p.el,p.gl,p.al,p.bl,p.fl]=b;let k=p.Ok;p.jsepRegisterBuffer=(y,D,F,N)=>k.registerBuffer(y,D,F,N),p.jsepGetBuffer=y=>k.getBuffer(y),p.jsepCreateDownloader=(y,D,F)=>k.createDownloader(y,D,F),p.jsepOnCreateSession=y=>{k.onCreateSession(y)},p.jsepOnReleaseSession=y=>{k.onReleaseSession(y)},p.jsepOnRunStart=y=>k.onRunStart(y),p.hl=(y,D)=>{k.upload(y,D)}}else if(h==="webnn"){let k=b[0];[p.rl,p.Tk,p.webnnEnsureTensor,p.Uk,p.webnnDownloadTensor,p.webnnEnableTraceEvent]=b.slice(1),p.webnnReleaseTensorId=p.Tk,p.webnnUploadTensor=p.Uk,p.webnnOnRunStart=y=>k.onRunStart(y),p.webnnOnRunEnd=k.onRunEnd.bind(k),p.webnnRegisterMLContext=(y,D)=>{k.registerMLContext(y,D)},p.webnnOnReleaseSession=y=>{k.onReleaseSession(y)},p.webnnCreateMLTensorDownloader=(y,D)=>k.createMLTensorDownloader(y,D),p.webnnRegisterMLTensor=(y,D,F,N)=>k.registerMLTensor(y,D,F,N),p.webnnCreateMLContext=y=>k.createMLContext(y),p.webnnRegisterMLConstant=(y,D,F,N,H,Z)=>k.registerMLConstant(y,D,F,N,H,p.mg,Z),p.webnnRegisterGraphInput=k.registerGraphInput.bind(k),p.webnnIsGraphInput=k.isGraphInput.bind(k),p.webnnRegisterGraphOutput=k.registerGraphOutput.bind(k),p.webnnIsGraphOutput=k.isGraphOutput.bind(k),p.webnnCreateTemporaryTensor=k.createTemporaryTensor.bind(k),p.webnnIsGraphInputOutputTypeSupported=k.isGraphInputOutputTypeSupported.bind(k)}};let P=()=>{let h=(b,k,y)=>(...D)=>{let F=Pa,N=k==null?void 0:k();D=b(...D);let H=k==null?void 0:k();return N!==H&&(b=H,y(N),k=y=null),Pa!=F?new Promise((Z,te)=>{Ri={resolve:Z,reject:te}}):D};(()=>{for(let b of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])p[b]=h(p[b],()=>p[b],k=>p[b]=k)})(),T!==void 0&&(p._OrtRun=T(p._OrtRun),p._OrtRunWithBinding=T(p._OrtRunWithBinding)),P=void 0};p.asyncInit=()=>{P==null||P()};var j,L,K=Object.assign({},p),ae=(h,b)=>{throw b},Y="";(M||x)&&(x?Y=self.location.href:typeof document<"u"&&document.currentScript&&(Y=document.currentScript.src),fd&&(Y=fd),Y=Y.startsWith("blob:")?"":Y.slice(0,Y.replace(/[?#].*/,"").lastIndexOf("/")+1),x&&(L=h=>{var b=new XMLHttpRequest;return b.open("GET",h,!1),b.responseType="arraybuffer",b.send(null),new Uint8Array(b.response)}),j=async h=>{if(be(h))return new Promise((k,y)=>{var D=new XMLHttpRequest;D.open("GET",h,!0),D.responseType="arraybuffer",D.onload=()=>{D.status==200||D.status==0&&D.response?k(D.response):y(D.status)},D.onerror=y,D.send(null)});var b=await fetch(h,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url)});var V=console.log.bind(console),ee=console.error.bind(console),d=V,v=ee;Object.assign(p,K),K=null;var e,u,Q,oe,O,R,De,ce,Te,Be,Qe,je,Se,Je=p.wasmBinary,Xe=!1,be=h=>h.startsWith("file://");function le(){return e.buffer!=oe.buffer&&Ne(),oe}function Ie(){return e.buffer!=oe.buffer&&Ne(),O}function Oe(){return e.buffer!=oe.buffer&&Ne(),R}function tA(){return e.buffer!=oe.buffer&&Ne(),De}function Ve(){return e.buffer!=oe.buffer&&Ne(),ce}function Ue(){return e.buffer!=oe.buffer&&Ne(),Te}function BA(){return e.buffer!=oe.buffer&&Ne(),Be}function QA(){return e.buffer!=oe.buffer&&Ne(),Se}if(G){let h=function(b){try{var k=b.data,y=k.jg;if(y==="load"){let D=[];self.onmessage=F=>D.push(F),self.startWorker=()=>{postMessage({jg:"loaded"});for(let F of D)h(F);self.onmessage=h};for(let F of k.Xk)p[F]&&!p[F].proxy||(p[F]=(...N)=>{postMessage({jg:"callHandler",Wk:F,args:N})},F=="print"&&(d=p[F]),F=="printErr"&&(v=p[F]));e=k.pl,Ne(),Ze(k.ql)}else if(y==="run"){ze(k.ig),w(k.ig,0,0,1,0,0),ge(),ea(k.ig),Ee||(Wn(),Ee=!0);try{$e(k.ll,k.pg)}catch(D){if(D!="unwind")throw D}}else k.target!=="setimmediate"&&(y==="checkMailbox"?Ee&&qt():y&&(v(`worker: received unknown command ${y}`),v(k)))}catch(D){throw B(),D}};var Ze,Ee=!1;v=function(...b){b=b.join(" "),console.error(b)},self.alert=function(...b){postMessage({jg:"alert",text:b.join(" "),nl:oi()})},self.onunhandledrejection=b=>{throw b.reason||b},self.onmessage=h}function Ne(){var h=e.buffer;p.HEAP8=oe=new Int8Array(h),p.HEAP16=R=new Int16Array(h),p.HEAPU8=O=new Uint8Array(h),p.HEAPU16=De=new Uint16Array(h),p.HEAP32=ce=new Int32Array(h),p.HEAPU32=Te=new Uint32Array(h),p.HEAPF32=Be=new Float32Array(h),p.HEAPF64=Se=new Float64Array(h),p.HEAP64=Qe=new BigInt64Array(h),p.HEAPU64=je=new BigUint64Array(h)}function we(){G?startWorker(p):ye.qf()}G||(e=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),Ne());var aA,sA=0,gA=null;function dA(){if(--sA==0&&gA){var h=gA;gA=null,h()}}function $(h){throw v(h="Aborted("+h+")"),Xe=!0,h=new WebAssembly.RuntimeError(h+". Build with -sASSERTIONS for more info."),C(h),h}function mA(){return{a:{Ac:OA,$d:xe,v:ft,_:st,b:ir,o:or,A:HA,F:br,r:fs,Yb:ws,u:Ha,Bb:Qs,of:za,h:JA,Ub:ks,Hd:xr,kf:Es,mf:sa,Id:wA,Fd:DA,yd:qA,Ed:lr,yc:Ka,lf:Xa,hf:Ta,Gd:Za,jf:Ja,Nd:ka,qd:vs,cf:Mi,af:Fe,pd:lA,Ma:yA,oa:zA,bf:SA,sc:cr,df:Vr,Bd:da,ff:_r,pf:Kt,Ze:Pr,rd:fa,Ad:ea,Kd:Hr,Ec:Dr,be:UA,he:Ur,nb:Ea,ra:kn,le:La,ae:so,Fc:io,ka:Hi,ob:no,fe:ps,Y:Ls,Zb:ss,ce:Mn,ga:vn,ib:js,ee:yn,de:oo,Za:yi,vd:IA,wd:Ui,xd:ga,td:Ma,ud:xi,_e:kr,Pd:lo,Md:Bi,C:Bn,Xb:Ti,sd:ja,Ld:co,Db:uo,Jd:r0,gf:Zs,ba:Ki,Yd:Js,Cb:fo,zc:Dn,ef:go,Rd:Nr,Qd:Gn,Xd:pa,Dc:ei,Cc:Ai,Bc:Zi,_d:Qn,Wb:mo,xa:Qi,Wd:ls,Vd:Sn,Zd:Fn,Ud:On,Td:Co,Sd:cs,Cd:Fi,Dd:Oi,nf:dt,Vb:ha,xc:_i,zd:_n,wc:zn,Rb:D1,Hb:w6,la:oI,S:cI,R:lI,Ba:rd,Ha:x1,Tc:g6,gc:I6,ke:iI,Z:ln,y:g1,c:Ic,kd:X1,wa:b1,me:J6,Lc:$6,g:Ku,$a:sI,ta:mI,d:Uu,ja:Ae,k:d1,ie:wI,j:wc,Eb:U6,s:l1,t:F1,q:y1,tb:Fr,O:M1,Aa:s6,pa:j1,nc:Cs,kb:D0,cc:N6,qb:v6,cd:fe,nd:S1,$c:uA,lb:nn,ad:rA,_b:II,sa:Ds,Sb:E1,wb:uu,ca:aI,ma:U,ed:va,N:jr,bd:We,Wa:vr,H:Ju,Jc:uI,yb:Au,Le:AA,za:p6,Ka:au,B:I1,qc:ot,_c:kA,hd:Et,id:ed,rc:ou,Je:LA,Xa:$1,aa:u6,hb:gI,$b:hI,gb:CI,_a:dI,gd:lu,Gc:bI,jc:ad,fa:B1,J:_1,E:h1,Ja:ru,T:Dc,Rc:y6,Zc:ut,fd:Ca,X:bt,e:o1,bb:Tt,l:n1,ld:Y1,Na:eI,qa:Fa,Pb:Dt,i:Xu,md:V1,V:cu,va:us,Gb:x6,ub:mt,f:kc,oe:Y6,re:R6,m:u1,Wc:oa,n:f1,pe:V6,Yc:vt,se:j6,Vc:on,Mc:q6,we:D6,p:Ec,ne:Z6,Ua:Zn,Nb:cn,Ta:G0,fc:E6,D:k1,G:Mc,K:qu,ab:H6,qe:W6,Ob:ba,$:R1,ha:K1,Ia:F6,Fa:B0,Ra:h6,Ie:At,db:tu,Ga:W1,Oc:O6,jb:S6,Fb:Q6,Pa:B6,Ge:Va,ya:C6,te:z6,Ae:c6,Ee:la,ic:sd,Qa:m6,W:z1,sb:b6,Uc:a6,Jb:un,ua:d6,Ya:Z1,jd:nu,Qb:P1,vb:PA,dc:_6,P:H1,Ib:l6,na:G1,Qe:J1,ea:n6,Ab:L1,bc:L6,Pc:P6,ac:tI,Kc:AI,Nc:X6,cb:Ad,Ic:fI,zb:q1,z:C1,U:O1,Da:p1,La:$u,Oe:eu,pc:Ft,Tb:m1,L:w1,rb:M6,Ea:o6,Hc:pI,Sc:k6,Se:N1,x:Xn,I:Q1,da:c1,ze:f6,lc:Bc,Qc:G6,Oa:K6,fb:T1,kc:P0,eb:U1,hc:i6,Xe:Zu,Ne:iu,ec:T6,mc:T0,pb:rI,od:v1,oc:Mr,ia:du,Xc:ur,M:ra,xb:su,je:nI,Ca:Q0,Q:Tc,Lb:xc,Sa:yc,Va:Li,Kb:td,Mb:vc,w:Nn,a:e,Od:et,Re:Ji,Te:ri,mb:bo,vc:Ln,Ue:Io,$e:ia,He:ai,Ke:na,Be:jn,tc:zi,We:wo,Ce:Ar,Pe:qi,De:Ws,Ye:si,uc:ko,ge:Eo,Me:$i,ye:Mo,ue:Vs,xe:Ra,ve:Rn,dd:en,Fe:Lr,Ve:Wt}}}var EA={1642916:(h,b,k,y,D)=>{if(p===void 0||!p.mg)return 1;if((h=Ht(Number(h>>>0))).startsWith("./")&&(h=h.substring(2)),!(h=p.mg.get(h)))return 2;if(b=Number(b>>>0),k=Number(k>>>0),y=Number(y>>>0),b+k>h.byteLength)return 3;try{let F=h.subarray(b,b+k);switch(D){case 0:Ie().set(F,y>>>0);break;case 1:p.Sk?p.Sk(y,F):p.hl(y,F);break;default:return 4}return 0}catch{return 4}},1643740:(h,b,k)=>{h=Number(h),b=Number(b),k=Ht(k);let y=new Uint8Array(b);y.set(Ie().subarray(h>>>0,h+b>>>0)),h=new File([y],k,{type:"application/octet-stream"}),h=URL.createObjectURL(h),window.open(h,"_blank")},1644264:(h,b,k)=>{p.Uk(h,Ie().subarray(b>>>0,b+k>>>0))},1644328:()=>p.rl(),1644370:h=>{p.Tk(h)},1644407:()=>{p.al()},1644438:()=>{p.bl()},1644467:()=>{p.fl()},1644492:h=>p.$k(h),1644525:h=>p.dl(h),1644557:(h,b,k)=>{p.Pk(Number(h),Number(b),Number(k),!0)},1644620:(h,b,k)=>{p.Pk(Number(h),Number(b),Number(k))},1644677:()=>typeof wasmOffsetConverter<"u",1644734:h=>{p.fg("Abs",h,void 0)},1644785:h=>{p.fg("Neg",h,void 0)},1644836:h=>{p.fg("Floor",h,void 0)},1644889:h=>{p.fg("Ceil",h,void 0)},1644941:h=>{p.fg("Reciprocal",h,void 0)},1644999:h=>{p.fg("Sqrt",h,void 0)},1645051:h=>{p.fg("Exp",h,void 0)},1645102:h=>{p.fg("Erf",h,void 0)},1645153:h=>{p.fg("Sigmoid",h,void 0)},1645208:(h,b,k)=>{p.fg("HardSigmoid",h,{alpha:b,beta:k})},1645287:h=>{p.fg("Log",h,void 0)},1645338:h=>{p.fg("Sin",h,void 0)},1645389:h=>{p.fg("Cos",h,void 0)},1645440:h=>{p.fg("Tan",h,void 0)},1645491:h=>{p.fg("Asin",h,void 0)},1645543:h=>{p.fg("Acos",h,void 0)},1645595:h=>{p.fg("Atan",h,void 0)},1645647:h=>{p.fg("Sinh",h,void 0)},1645699:h=>{p.fg("Cosh",h,void 0)},1645751:h=>{p.fg("Asinh",h,void 0)},1645804:h=>{p.fg("Acosh",h,void 0)},1645857:h=>{p.fg("Atanh",h,void 0)},1645910:h=>{p.fg("Tanh",h,void 0)},1645962:h=>{p.fg("Not",h,void 0)},1646013:(h,b,k)=>{p.fg("Clip",h,{min:b,max:k})},1646082:h=>{p.fg("Clip",h,void 0)},1646134:(h,b)=>{p.fg("Elu",h,{alpha:b})},1646192:h=>{p.fg("Gelu",h,void 0)},1646244:h=>{p.fg("Relu",h,void 0)},1646296:(h,b)=>{p.fg("LeakyRelu",h,{alpha:b})},1646360:(h,b)=>{p.fg("ThresholdedRelu",h,{alpha:b})},1646430:(h,b)=>{p.fg("Cast",h,{to:b})},1646488:h=>{p.fg("Add",h,void 0)},1646539:h=>{p.fg("Sub",h,void 0)},1646590:h=>{p.fg("Mul",h,void 0)},1646641:h=>{p.fg("Div",h,void 0)},1646692:h=>{p.fg("Pow",h,void 0)},1646743:h=>{p.fg("Equal",h,void 0)},1646796:h=>{p.fg("Greater",h,void 0)},1646851:h=>{p.fg("GreaterOrEqual",h,void 0)},1646913:h=>{p.fg("Less",h,void 0)},1646965:h=>{p.fg("LessOrEqual",h,void 0)},1647024:(h,b,k,y,D)=>{p.fg("ReduceMean",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1647199:(h,b,k,y,D)=>{p.fg("ReduceMax",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1647373:(h,b,k,y,D)=>{p.fg("ReduceMin",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1647547:(h,b,k,y,D)=>{p.fg("ReduceProd",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1647722:(h,b,k,y,D)=>{p.fg("ReduceSum",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1647896:(h,b,k,y,D)=>{p.fg("ReduceL1",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1648069:(h,b,k,y,D)=>{p.fg("ReduceL2",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1648242:(h,b,k,y,D)=>{p.fg("ReduceLogSum",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1648419:(h,b,k,y,D)=>{p.fg("ReduceSumSquare",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1648599:(h,b,k,y,D)=>{p.fg("ReduceLogSumExp",h,{keepDims:!!b,noopWithEmptyAxes:!!k,axes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1648779:h=>{p.fg("Where",h,void 0)},1648832:(h,b,k)=>{p.fg("Transpose",h,{perm:b?Array.from(Ve().subarray(Number(b)>>>0,Number(k)>>>0)):[]})},1648956:(h,b,k,y)=>{p.fg("DepthToSpace",h,{blocksize:b,mode:Ht(k),format:y?"NHWC":"NCHW"})},1649089:(h,b,k,y)=>{p.fg("DepthToSpace",h,{blocksize:b,mode:Ht(k),format:y?"NHWC":"NCHW"})},1649222:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>{p.fg("ConvTranspose",h,{format:Z?"NHWC":"NCHW",autoPad:b,dilations:[k],group:y,kernelShape:[D],pads:[F,N],strides:[H],wIsConst:()=>!!le()[te>>>0],outputPadding:pe?Array.from(Ve().subarray(Number(pe)>>>0,Number(he)>>>0)):[],outputShape:ve?Array.from(Ve().subarray(Number(ve)>>>0,Number(Le)>>>0)):[],activation:Ht(qe)})},1649655:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("ConvTranspose",h,{format:H?"NHWC":"NCHW",autoPad:b,dilations:Array.from(Ve().subarray(Number(k)>>>0,2+(Number(k)>>>0)>>>0)),group:y,kernelShape:Array.from(Ve().subarray(Number(D)>>>0,2+(Number(D)>>>0)>>>0)),pads:Array.from(Ve().subarray(Number(F)>>>0,4+(Number(F)>>>0)>>>0)),strides:Array.from(Ve().subarray(Number(N)>>>0,2+(Number(N)>>>0)>>>0)),wIsConst:()=>!!le()[Z>>>0],outputPadding:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],outputShape:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[],activation:Ht(Le)})},1650316:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>{p.fg("ConvTranspose",h,{format:Z?"NHWC":"NCHW",autoPad:b,dilations:[k],group:y,kernelShape:[D],pads:[F,N],strides:[H],wIsConst:()=>!!le()[te>>>0],outputPadding:pe?Array.from(Ve().subarray(Number(pe)>>>0,Number(he)>>>0)):[],outputShape:ve?Array.from(Ve().subarray(Number(ve)>>>0,Number(Le)>>>0)):[],activation:Ht(qe)})},1650749:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("ConvTranspose",h,{format:H?"NHWC":"NCHW",autoPad:b,dilations:Array.from(Ve().subarray(Number(k)>>>0,2+(Number(k)>>>0)>>>0)),group:y,kernelShape:Array.from(Ve().subarray(Number(D)>>>0,2+(Number(D)>>>0)>>>0)),pads:Array.from(Ve().subarray(Number(F)>>>0,4+(Number(F)>>>0)>>>0)),strides:Array.from(Ve().subarray(Number(N)>>>0,2+(Number(N)>>>0)>>>0)),wIsConst:()=>!!le()[Z>>>0],outputPadding:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],outputShape:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[],activation:Ht(Le)})},1651410:(h,b)=>{p.fg("GlobalAveragePool",h,{format:b?"NHWC":"NCHW"})},1651501:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("AveragePool",h,{format:Le?"NHWC":"NCHW",auto_pad:b,ceil_mode:k,count_include_pad:y,storage_order:D,dilations:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[],kernel_shape:H?Array.from(Ve().subarray(Number(H)>>>0,Number(Z)>>>0)):[],pads:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],strides:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[]})},1651980:(h,b)=>{p.fg("GlobalAveragePool",h,{format:b?"NHWC":"NCHW"})},1652071:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("AveragePool",h,{format:Le?"NHWC":"NCHW",auto_pad:b,ceil_mode:k,count_include_pad:y,storage_order:D,dilations:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[],kernel_shape:H?Array.from(Ve().subarray(Number(H)>>>0,Number(Z)>>>0)):[],pads:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],strides:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[]})},1652550:(h,b)=>{p.fg("GlobalMaxPool",h,{format:b?"NHWC":"NCHW"})},1652637:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("MaxPool",h,{format:Le?"NHWC":"NCHW",auto_pad:b,ceil_mode:k,count_include_pad:y,storage_order:D,dilations:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[],kernel_shape:H?Array.from(Ve().subarray(Number(H)>>>0,Number(Z)>>>0)):[],pads:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],strides:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[]})},1653112:(h,b)=>{p.fg("GlobalMaxPool",h,{format:b?"NHWC":"NCHW"})},1653199:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>{p.fg("MaxPool",h,{format:Le?"NHWC":"NCHW",auto_pad:b,ceil_mode:k,count_include_pad:y,storage_order:D,dilations:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[],kernel_shape:H?Array.from(Ve().subarray(Number(H)>>>0,Number(Z)>>>0)):[],pads:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],strides:he?Array.from(Ve().subarray(Number(he)>>>0,Number(ve)>>>0)):[]})},1653674:(h,b,k,y,D)=>{p.fg("Gemm",h,{alpha:b,beta:k,transA:y,transB:D})},1653778:h=>{p.fg("MatMul",h,void 0)},1653832:(h,b,k,y)=>{p.fg("ArgMax",h,{keepDims:!!b,selectLastIndex:!!k,axis:y})},1653940:(h,b,k,y)=>{p.fg("ArgMin",h,{keepDims:!!b,selectLastIndex:!!k,axis:y})},1654048:(h,b)=>{p.fg("Softmax",h,{axis:b})},1654111:(h,b)=>{p.fg("Concat",h,{axis:b})},1654171:(h,b,k,y,D)=>{p.fg("Split",h,{axis:b,numOutputs:k,splitSizes:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1654327:h=>{p.fg("Expand",h,void 0)},1654381:(h,b)=>{p.fg("Gather",h,{axis:Number(b)})},1654452:(h,b)=>{p.fg("GatherElements",h,{axis:Number(b)})},1654531:(h,b)=>{p.fg("GatherND",h,{batch_dims:Number(b)})},1654610:(h,b,k,y,D,F,N,H,Z,te,pe)=>{p.fg("Resize",h,{antialias:b,axes:k?Array.from(Ve().subarray(Number(k)>>>0,Number(y)>>>0)):[],coordinateTransformMode:Ht(D),cubicCoeffA:F,excludeOutside:N,extrapolationValue:H,keepAspectRatioPolicy:Ht(Z),mode:Ht(te),nearestMode:Ht(pe)})},1654972:(h,b,k,y,D,F,N)=>{p.fg("Slice",h,{starts:b?Array.from(Ve().subarray(Number(b)>>>0,Number(k)>>>0)):[],ends:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[],axes:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[]})},1655236:h=>{p.fg("Tile",h,void 0)},1655288:(h,b,k)=>{p.fg("InstanceNormalization",h,{epsilon:b,format:k?"NHWC":"NCHW"})},1655402:(h,b,k)=>{p.fg("InstanceNormalization",h,{epsilon:b,format:k?"NHWC":"NCHW"})},1655516:h=>{p.fg("Range",h,void 0)},1655569:(h,b)=>{p.fg("Einsum",h,{equation:Ht(b)})},1655650:(h,b,k,y,D)=>{p.fg("Pad",h,{mode:b,value:k,pads:y?Array.from(Ve().subarray(Number(y)>>>0,Number(D)>>>0)):[]})},1655793:(h,b,k,y,D,F)=>{p.fg("BatchNormalization",h,{epsilon:b,momentum:k,spatial:!!D,trainingMode:!!y,format:F?"NHWC":"NCHW"})},1655962:(h,b,k,y,D,F)=>{p.fg("BatchNormalization",h,{epsilon:b,momentum:k,spatial:!!D,trainingMode:!!y,format:F?"NHWC":"NCHW"})},1656131:(h,b,k)=>{p.fg("CumSum",h,{exclusive:Number(b),reverse:Number(k)})},1656228:(h,b,k)=>{p.fg("DequantizeLinear",h,{axis:b,blockSize:k})},1656318:(h,b,k,y,D)=>{p.fg("GridSample",h,{align_corners:b,mode:Ht(k),padding_mode:Ht(y),format:D?"NHWC":"NCHW"})},1656488:(h,b,k,y,D)=>{p.fg("GridSample",h,{align_corners:b,mode:Ht(k),padding_mode:Ht(y),format:D?"NHWC":"NCHW"})},1656658:(h,b)=>{p.fg("ScatterND",h,{reduction:Ht(b)})},1656743:(h,b,k,y,D,F,N,H,Z)=>{p.fg("Attention",h,{numHeads:b,isUnidirectional:k,maskFilterValue:y,scale:D,doRotary:F,qkvHiddenSizes:N?Array.from(Ve().subarray(Number(H)>>>0,Number(H)+N>>>0)):[],pastPresentShareBuffer:!!Z})},1657015:h=>{p.fg("BiasAdd",h,void 0)},1657070:h=>{p.fg("BiasSplitGelu",h,void 0)},1657131:h=>{p.fg("FastGelu",h,void 0)},1657187:(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)=>{p.fg("Conv",h,{format:he?"NHWC":"NCHW",auto_pad:b,dilations:k?Array.from(Ve().subarray(Number(k)>>>0,Number(y)>>>0)):[],group:D,kernel_shape:F?Array.from(Ve().subarray(Number(F)>>>0,Number(N)>>>0)):[],pads:H?Array.from(Ve().subarray(Number(H)>>>0,Number(Z)>>>0)):[],strides:te?Array.from(Ve().subarray(Number(te)>>>0,Number(pe)>>>0)):[],w_is_const:()=>!!le()[Number(ve)>>>0],activation:Ht(Le),activation_params:qe?Array.from(BA().subarray(Number(qe)>>>0,Number(hA)>>>0)):[]})},1657771:h=>{p.fg("Gelu",h,void 0)},1657823:(h,b,k,y,D,F,N,H,Z)=>{p.fg("GroupQueryAttention",h,{numHeads:b,kvNumHeads:k,scale:y,softcap:D,doRotary:F,rotaryInterleaved:N,smoothSoftmax:H,localWindowSize:Z})},1658040:(h,b,k,y)=>{p.fg("LayerNormalization",h,{axis:b,epsilon:k,simplified:!!y})},1658151:(h,b,k,y)=>{p.fg("LayerNormalization",h,{axis:b,epsilon:k,simplified:!!y})},1658262:(h,b,k,y,D,F)=>{p.fg("MatMulNBits",h,{k:b,n:k,accuracyLevel:y,bits:D,blockSize:F})},1658389:(h,b,k,y,D,F)=>{p.fg("MultiHeadAttention",h,{numHeads:b,isUnidirectional:k,maskFilterValue:y,scale:D,doRotary:F})},1658548:(h,b)=>{p.fg("QuickGelu",h,{alpha:b})},1658612:(h,b,k,y,D)=>{p.fg("RotaryEmbedding",h,{interleaved:!!b,numHeads:k,rotaryEmbeddingDim:y,scale:D})},1658751:(h,b,k)=>{p.fg("SkipLayerNormalization",h,{epsilon:b,simplified:!!k})},1658853:(h,b,k)=>{p.fg("SkipLayerNormalization",h,{epsilon:b,simplified:!!k})},1658955:(h,b,k,y)=>{p.fg("GatherBlockQuantized",h,{gatherAxis:b,quantizeAxis:k,blockSize:y})},1659076:h=>{p.el(h)},1659110:(h,b)=>p.gl(Number(h),Number(b),p.ng.jl,p.ng.errors)};function xe(h,b,k){return zs(async()=>{await p.cl(Number(h),Number(b),Number(k))})}function OA(){return typeof wasmOffsetConverter<"u"}class pA{constructor(b){_e(this,"name","ExitStatus");this.message=`Program terminated with exit(${b})`,this.status=b}}var GA=h=>{h.terminate(),h.onmessage=()=>{}},VA=[],$A=h=>{gt.length==0&&(me(),Re(gt[0]));var b=gt.pop();if(!b)return 6;Ut.push(b),XA[h.ig]=b,b.ig=h.ig;var k={jg:"run",ll:h.kl,pg:h.pg,ig:h.ig};return b.postMessage(k,h.Rk),0},RA=0,FA=h=>-9007199254740992>h||9007199254740992{for(var y=2*k.length,D=de(),F=Ye(8*y),N=F>>>3,H=0;H>>0]=Z)}return h=_(h,0,y,F,b),ne(D),h};function et(h){if(G)return oA(0,1,h);if(Q=h,!(0{if(Q=h,G)throw It(h),"unwind";et(h)},gt=[],Ut=[],ua=[],XA={},rs=h=>{var b=h.ig;delete XA[b],gt.push(h),Ut.splice(Ut.indexOf(h),1),h.ig=0,W(b)};function ge(){ua.forEach(h=>h())}var Re=h=>new Promise(b=>{h.onmessage=D=>{var F=(D=D.data).jg;if(D.og&&D.og!=oi()){var N=XA[D.og];N?N.postMessage(D,D.Rk):v(`Internal error! Worker sent a message "${F}" to target pthread ${D.og}, but that thread no longer exists!`)}else F==="checkMailbox"?qt():F==="spawnThread"?$A(D):F==="cleanupThread"?rs(XA[D.ml]):F==="loaded"?(h.loaded=!0,b(h)):F==="alert"?alert(`Thread ${D.nl}: ${D.text}`):D.target==="setimmediate"?h.postMessage(D):F==="callHandler"?p[D.Wk](...D.args):F&&v(`worker sent an unknown command ${F}`)},h.onerror=D=>{throw v(`worker sent an error! ${D.filename}:${D.lineno}: ${D.message}`),D};var k,y=[];for(k of[])p.propertyIsEnumerable(k)&&y.push(k);h.postMessage({jg:"load",Xk:y,pl:e,ql:u})});function me(){var h=new Worker((()=>{let b=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new b("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});gt.push(h)}var ze=h=>{Ne();var b=Ue()[h+52>>>2>>>0];h=Ue()[h+56>>>2>>>0],Ge(b,b-h),ne(b)},$e=(h,b)=>{RA=0,h=Gt(h,b),0>>=0);if(le()[b.hg+12>>>0]==0){var k=1;le()[b.hg+12>>>0]=k,eA--}return k=0,le()[b.hg+13>>>0]=k,CA.push(b),bA(h),jA(h)}var Qt=0,st=()=>{J(0,0);var h=CA.pop();iA(h.Bg),Qt=0};class wt{constructor(b){this.Bg=b,this.hg=b-24}}function JA(h){throw Qt||(Qt=h>>>0),Qt}var zt=h=>{var b=Qt;if(!b)return Me(0),0;var k=new wt(b);Ue()[k.hg+16>>>2>>>0]=b;var y=Ue()[k.hg+4>>>2>>>0];if(!y)return Me(0),b;for(var D of h){if(D===0||D===y)break;if(MA(D,y,k.hg+16))return Me(D),b}return Me(y),b};function ir(){return zt([])}function or(h){return zt([h>>>0])}function HA(h,b){return zt([h>>>0,b>>>0])}function br(h,b,k){return zt([h>>>0,b>>>0,k>>>0])}function fs(h,b,k,y){return zt([h>>>0,b>>>0,k>>>0,y>>>0])}var ws=()=>{var h=CA.pop();h||$("no exception to throw");var b=h.Bg;if(le()[h.hg+13>>>0]==0){CA.push(h);var k=1;le()[h.hg+13>>>0]=k,k=0,le()[h.hg+12>>>0]=k,eA++}throw Qt=b};function Ha(h,b,k){var y=new wt(h>>>=0);throw b>>>=0,k>>>=0,Ue()[y.hg+16>>>2>>>0]=0,Ue()[y.hg+4>>>2>>>0]=b,Ue()[y.hg+8>>>2>>>0]=k,eA++,Qt=h}var Qs=()=>eA;function Da(h,b,k,y){return G?oA(2,1,h,b,k,y):za(h,b,k,y)}function za(h,b,k,y){if(h>>>=0,k>>>=0,y>>>=0,S===void 0)return 6;var D=[];return G&&D.length===0?Da(h,b>>>=0,k,y):(h={kl:k,ig:h,pg:y,Rk:D},G?(h.jg="spawnThread",postMessage(h,D),0):$A(h))}var Ua=typeof TextDecoder<"u"?new TextDecoder:void 0,as=(h,b=0,k=NaN)=>{var y=(b>>>=0)+k;for(k=b;h[k]&&!(k>=y);)++k;if(16(D=(240&D)==224?(15&D)<<12|F<<6|N:(7&D)<<18|F<<12|N<<6|63&h[b++])?y+=String.fromCharCode(D):(D-=65536,y+=String.fromCharCode(55296|D>>10,56320|1023&D))}}else y+=String.fromCharCode(D)}return y},Ht=(h,b)=>(h>>>=0)?as(Ie(),h,b):"";function ks(h,b,k){return G?oA(3,1,h,b,k):0}function xr(h,b){if(G)return oA(4,1,h,b)}var Ia=h=>{for(var b=0,k=0;k=y?b++:2047>=y?b+=2:55296<=y&&57343>=y?(b+=4,++k):b+=3}return b},wa=(h,b,k)=>{var y=Ie();if(b>>>=0,0=N&&(N=65536+((1023&N)<<10)|1023&h.charCodeAt(++F)),127>=N){if(b>=k)break;y[b++>>>0]=N}else{if(2047>=N){if(b+1>=k)break;y[b++>>>0]=192|N>>6}else{if(65535>=N){if(b+2>=k)break;y[b++>>>0]=224|N>>12}else{if(b+3>=k)break;y[b++>>>0]=240|N>>18,y[b++>>>0]=128|N>>12&63}y[b++>>>0]=128|N>>6&63}y[b++>>>0]=128|63&N}}y[b>>>0]=0,h=b-D}else h=0;return h};function Es(h,b){if(G)return oA(5,1,h,b)}function sa(h,b,k){if(G)return oA(6,1,h,b,k)}function wA(h,b,k){return G?oA(7,1,h,b,k):0}function DA(h,b){if(G)return oA(8,1,h,b)}function qA(h,b,k){if(G)return oA(9,1,h,b,k)}function lr(h,b,k,y){if(G)return oA(10,1,h,b,k,y)}function Ka(h,b,k,y){if(G)return oA(11,1,h,b,k,y)}function Xa(h,b,k,y){if(G)return oA(12,1,h,b,k,y)}function Ta(h){if(G)return oA(13,1,h)}function Za(h,b){if(G)return oA(14,1,h,b)}function Ja(h,b,k){if(G)return oA(15,1,h,b,k)}var ct,mr,ka=()=>$(""),ya=h=>{for(var b="";Ie()[h>>>0];)b+=ct[Ie()[h++>>>0]];return b},Ms={},Ss={};function $r(h,b,k={}){return function(y,D,F={}){var N=D.name;if(!y)throw new mr(`type "${N}" must have a positive integer typeid pointer`);if(Ss.hasOwnProperty(y)){if(F.Yk)return;throw new mr(`Cannot register type '${N}' twice`)}Ss[y]=D,Ms.hasOwnProperty(y)&&(D=Ms[y],delete Ms[y],D.forEach(H=>H()))}(h,b,k)}var gs=(h,b,k)=>{switch(b){case 1:return k?y=>le()[y>>>0]:y=>Ie()[y>>>0];case 2:return k?y=>Oe()[y>>>1>>>0]:y=>tA()[y>>>1>>>0];case 4:return k?y=>Ve()[y>>>2>>>0]:y=>Ue()[y>>>2>>>0];case 8:return k?y=>Qe[y>>>3]:y=>je[y>>>3];default:throw new TypeError(`invalid integer width (${b}): ${h}`)}};function vs(h,b,k){k>>>=0,$r(h>>>=0,{name:b=ya(b>>>0),fromWireType:y=>y,toWireType:function(y,D){if(typeof D!="bigint"&&typeof D!="number")throw D=D===null?"null":(y=typeof D)=="object"||y==="array"||y==="function"?D.toString():""+D,new TypeError(`Cannot convert "${D}" to ${this.name}`);return typeof D=="number"&&(D=BigInt(D)),D},kg:Na,readValueFromPointer:gs(b,k,b.indexOf("u")==-1),lg:null})}var Na=8;function Mi(h,b,k,y){$r(h>>>=0,{name:b=ya(b>>>0),fromWireType:function(D){return!!D},toWireType:function(D,F){return F?k:y},kg:Na,readValueFromPointer:function(D){return this.fromWireType(Ie()[D>>>0])},lg:null})}var Fs=[],Ga=[];function La(h){9<(h>>>=0)&&--Ga[h+1]==0&&(Ga[h]=void 0,Fs.push(h))}var He=h=>{if(!h)throw new mr("Cannot use deleted val. handle = "+h);return Ga[h]},se=h=>{switch(h){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let b=Fs.pop()||Ga.length;return Ga[b]=h,Ga[b+1]=1,b}};function ke(h){return this.fromWireType(Ue()[h>>>2>>>0])}var Pe={name:"emscripten::val",fromWireType:h=>{var b=He(h);return La(h),b},toWireType:(h,b)=>se(b),kg:Na,readValueFromPointer:ke,lg:null};function Fe(h){return $r(h>>>0,Pe)}var Ke=(h,b)=>{switch(b){case 4:return function(k){return this.fromWireType(BA()[k>>>2>>>0])};case 8:return function(k){return this.fromWireType(QA()[k>>>3>>>0])};default:throw new TypeError(`invalid float width (${b}): ${h}`)}};function lA(h,b,k){k>>>=0,$r(h>>>=0,{name:b=ya(b>>>0),fromWireType:y=>y,toWireType:(y,D)=>D,kg:Na,readValueFromPointer:Ke(b,k),lg:null})}function yA(h,b,k,y,D){if(h>>>=0,k>>>=0,b=ya(b>>>0),D===-1&&(D=4294967295),D=H=>H,y===0){var F=32-8*k;D=H=>H<>>F}var N=b.includes("unsigned")?function(H,Z){return Z>>>0}:function(H,Z){return Z};$r(h,{name:b,fromWireType:D,toWireType:N,kg:Na,readValueFromPointer:gs(b,k,y!==0),lg:null})}function zA(h,b,k){function y(F){var N=Ue()[F>>>2>>>0];return F=Ue()[F+4>>>2>>>0],new D(le().buffer,F,N)}var D=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];$r(h>>>=0,{name:k=ya(k>>>0),fromWireType:y,kg:Na,readValueFromPointer:y},{Yk:!0})}function SA(h,b){$r(h>>>=0,{name:b=ya(b>>>0),fromWireType:function(k){for(var y,D=Ue()[k>>>2>>>0],F=k+4,N=F,H=0;H<=D;++H){var Z=F+H;H!=D&&Ie()[Z>>>0]!=0||(N=Ht(N,Z-N),y===void 0?y=N:(y+="\0",y+=N),N=Z+1)}return Sa(k),y},toWireType:function(k,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var D=typeof y=="string";if(!(D||y instanceof Uint8Array||y instanceof Uint8ClampedArray||y instanceof Int8Array))throw new mr("Cannot pass non-string to std::string");var F=D?Ia(y):y.length,N=xs(4+F+1),H=N+4;if(Ue()[N>>>2>>>0]=F,D)wa(y,H,F+1);else if(D)for(D=0;D>>0]=Z}else for(D=0;D>>0]=y[D];return k!==null&&k.push(Sa,N),N},kg:Na,readValueFromPointer:ke,lg(k){Sa(k)}})}var cA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,ht=(h,b)=>{for(var k=h>>1,y=k+b/2;!(k>=y)&&tA()[k>>>0];)++k;if(32<(k<<=1)-h&&cA)return cA.decode(Ie().slice(h,k));for(k="",y=0;!(y>=b/2);++y){var D=Oe()[h+2*y>>>1>>>0];if(D==0)break;k+=String.fromCharCode(D)}return k},Ot=(h,b,k)=>{if(k??(k=2147483647),2>k)return 0;var y=b;k=(k-=2)<2*h.length?k/2:h.length;for(var D=0;D>>1>>>0]=F,b+=2}return Oe()[b>>>1>>>0]=0,b-y},_t=h=>2*h.length,Br=(h,b)=>{for(var k=0,y="";!(k>=b/4);){var D=Ve()[h+4*k>>>2>>>0];if(D==0)break;++k,65536<=D?(D-=65536,y+=String.fromCharCode(55296|D>>10,56320|1023&D)):y+=String.fromCharCode(D)}return y},Jt=(h,b,k)=>{if(b>>>=0,k??(k=2147483647),4>k)return 0;var y=b;k=y+k-4;for(var D=0;D=F&&(F=65536+((1023&F)<<10)|1023&h.charCodeAt(++D)),Ve()[b>>>2>>>0]=F,(b+=4)+4>k)break}return Ve()[b>>>2>>>0]=0,b-y},Wr=h=>{for(var b=0,k=0;k=y&&++k,b+=4}return b};function cr(h,b,k){if(h>>>=0,b>>>=0,k=ya(k>>>=0),b===2)var y=ht,D=Ot,F=_t,N=H=>tA()[H>>>1>>>0];else b===4&&(y=Br,D=Jt,F=Wr,N=H=>Ue()[H>>>2>>>0]);$r(h,{name:k,fromWireType:H=>{for(var Z,te=Ue()[H>>>2>>>0],pe=H+4,he=0;he<=te;++he){var ve=H+4+he*b;he!=te&&N(ve)!=0||(pe=y(pe,ve-pe),Z===void 0?Z=pe:(Z+="\0",Z+=pe),pe=ve+b)}return Sa(H),Z},toWireType:(H,Z)=>{if(typeof Z!="string")throw new mr(`Cannot pass non-string to C++ string type ${k}`);var te=F(Z),pe=xs(4+te+b);return Ue()[pe>>>2>>>0]=te/b,D(Z,pe+4,te+b),H!==null&&H.push(Sa,pe),pe},kg:Na,readValueFromPointer:ke,lg(H){Sa(H)}})}function Vr(h,b){$r(h>>>=0,{Zk:!0,name:b=ya(b>>>0),kg:0,fromWireType:()=>{},toWireType:()=>{}})}function da(h){w(h>>>0,!x,1,!M,131072,!1),ge()}var Yr=h=>{if(!Xe)try{if(h(),!(0>>=0,typeof Atomics.ol=="function"&&(Atomics.ol(Ve(),h>>>2,h).value.then(qt),h+=128,Atomics.store(Ve(),h>>>2,1))}var qt=()=>{var h=oi();h&&(ea(h),Yr(re))};function _r(h,b){(h>>>=0)==b>>>0?setTimeout(qt):G?postMessage({og:h,jg:"checkMailbox"}):(h=XA[h])&&h.postMessage({jg:"checkMailbox"})}var zr=[];function Kt(h,b,k,y,D){for(b>>>=0,y/=2,zr.length=y,k=D>>>0>>>3,D=0;D>>0];return(b?EA[b]:vo[h])(...zr)}var Pr=()=>{RA=0};function fa(h){h>>>=0,G?postMessage({jg:"cleanupThread",ml:h}):rs(XA[h])}function Hr(h){}var Ir=(h,b)=>{var k=Ss[h];if(k===void 0)throw h=An(h),k=ya(h),Sa(h),new mr(`${b} has unknown type ${k}`);return k},Cr=(h,b,k)=>{var y=[];return h=h.toWireType(y,k),y.length&&(Ue()[b>>>2>>>0]=se(y)),h};function Dr(h,b,k){return b>>>=0,k>>>=0,h=He(h>>>0),b=Ir(b,"emval::as"),Cr(b,k,h)}function UA(h,b){return b>>>=0,h=He(h>>>0),(b=Ir(b,"emval::as")).toWireType(null,h)}var jt=h=>{try{h()}catch(b){$(b)}},wr=0,Pa=null,bn=0,vi=[],In={},Os={},_s=0,Ri=null,Wi=[];function zs(h){return function(b){if(!Xe){if(wr===0){var k=!1,y=!1;b((D=0)=>{if(!Xe&&(bn=D,k=!0,y)){wr=2,jt(()=>Vt(Pa)),typeof MainLoop<"u"&&MainLoop.Vk&&MainLoop.resume(),D=!1;try{var F=function(){var Z=Ve()[Pa+8>>>2>>>0];return Z=ye[Os[Z]],--RA,Z()}()}catch(Z){F=Z,D=!0}var N=!1;if(!Pa){var H=Ri;H&&(Ri=null,(D?H.reject:H.resolve)(F),N=!0)}if(D&&!N)throw F}}),y=!0,k||(wr=1,Pa=function(){var D=xs(65548),F=D+12;Ue()[D>>>2>>>0]=F,Ue()[D+4>>>2>>>0]=F+65536,F=vi[0];var N=In[F];return N===void 0&&(N=_s++,In[F]=N,Os[N]=F),F=N,Ve()[D+8>>>2>>>0]=F,D}(),typeof MainLoop<"u"&&MainLoop.Vk&&MainLoop.pause(),jt(()=>Cc(Pa)))}else wr===2?(wr=0,jt(i1),Sa(Pa),Pa=null,Wi.forEach(Yr)):$(`invalid state: ${wr}`);return bn}}(b=>{h().then(b)})}function Ur(h){return h>>>=0,zs(async()=>{var b=await He(h);return se(b)})}var _A=[];function Ea(h,b,k,y){return k>>>=0,y>>>=0,(h=_A[h>>>0])(null,b=He(b>>>0),k,y)}var wn={},Ns=h=>{var b=wn[h];return b===void 0?ya(h):b};function kn(h,b,k,y,D){return k>>>=0,y>>>=0,D>>>=0,(h=_A[h>>>0])(b=He(b>>>0),b[k=Ns(k)],y,D)}function so(h,b){return b>>>=0,(h=He(h>>>0))==He(b)}var Vi=()=>typeof globalThis=="object"?globalThis:Function("return this")();function io(h){return(h>>>=0)==0?se(Vi()):(h=Ns(h),se(Vi()[h]))}var En=h=>{var b=_A.length;return _A.push(h),b},Yi=(h,b)=>{for(var k=Array(h),y=0;y>>2>>>0],"parameter "+y);return k},Rt=(h,b)=>Object.defineProperty(b,"name",{value:h});function Hi(h,b,k){var y=(b=Yi(h,b>>>0)).shift();h--;var D=`return function (obj, func, destructorsRef, args) { +`,F=0,N=[];k===0&&N.push("obj");for(var H=["retType"],Z=[y],te=0;tepe.name).join(", ")}) => ${y.name}>`,En(Rt(k,h))}function no(h){return h=Ns(h>>>0),se(p[h])}function ps(h,b){return b>>>=0,h=He(h>>>0),b=He(b),se(h[b])}function Ls(h){9<(h>>>=0)&&(Ga[h+1]+=1)}function ss(){return se([])}function Mn(h){h=He(h>>>0);for(var b=Array(h.length),k=0;k>>0))}function js(){return se({})}function yn(h){for(var b=He(h>>>=0);b.length;){var k=b.pop();b.pop()(k)}La(h)}function oo(h,b,k){b>>>=0,k>>>=0,h=He(h>>>0),b=He(b),k=He(k),h[b]=k}function yi(h,b){return b>>>=0,h=(h=Ir(h>>>0,"_emval_take_value")).readValueFromPointer(b),se(h)}function IA(h,b){h=FA(h),b>>>=0,h=new Date(1e3*h),Ve()[b>>>2>>>0]=h.getUTCSeconds(),Ve()[b+4>>>2>>>0]=h.getUTCMinutes(),Ve()[b+8>>>2>>>0]=h.getUTCHours(),Ve()[b+12>>>2>>>0]=h.getUTCDate(),Ve()[b+16>>>2>>>0]=h.getUTCMonth(),Ve()[b+20>>>2>>>0]=h.getUTCFullYear()-1900,Ve()[b+24>>>2>>>0]=h.getUTCDay(),h=(h.getTime()-Date.UTC(h.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,Ve()[b+28>>>2>>>0]=h}var xn=h=>h%4==0&&(h%100!=0||h%400==0),NA=[0,31,60,91,121,152,182,213,244,274,305,335],is=[0,31,59,90,120,151,181,212,243,273,304,334];function Ui(h,b){h=FA(h),b>>>=0,h=new Date(1e3*h),Ve()[b>>>2>>>0]=h.getSeconds(),Ve()[b+4>>>2>>>0]=h.getMinutes(),Ve()[b+8>>>2>>>0]=h.getHours(),Ve()[b+12>>>2>>>0]=h.getDate(),Ve()[b+16>>>2>>>0]=h.getMonth(),Ve()[b+20>>>2>>>0]=h.getFullYear()-1900,Ve()[b+24>>>2>>>0]=h.getDay();var k=(xn(h.getFullYear())?NA:is)[h.getMonth()]+h.getDate()-1|0;Ve()[b+28>>>2>>>0]=k,Ve()[b+36>>>2>>>0]=-60*h.getTimezoneOffset(),k=new Date(h.getFullYear(),6,1).getTimezoneOffset();var y=new Date(h.getFullYear(),0,1).getTimezoneOffset();h=0|(k!=y&&h.getTimezoneOffset()==Math.min(y,k)),Ve()[b+32>>>2>>>0]=h}function ga(h){h>>>=0;var b=new Date(Ve()[h+20>>>2>>>0]+1900,Ve()[h+16>>>2>>>0],Ve()[h+12>>>2>>>0],Ve()[h+8>>>2>>>0],Ve()[h+4>>>2>>>0],Ve()[h>>>2>>>0],0),k=Ve()[h+32>>>2>>>0],y=b.getTimezoneOffset(),D=new Date(b.getFullYear(),6,1).getTimezoneOffset(),F=new Date(b.getFullYear(),0,1).getTimezoneOffset(),N=Math.min(F,D);return 0>k?Ve()[h+32>>>2>>>0]=+(D!=F&&N==y):0>>2>>>0]=b.getDay(),k=(xn(b.getFullYear())?NA:is)[b.getMonth()]+b.getDate()-1|0,Ve()[h+28>>>2>>>0]=k,Ve()[h>>>2>>>0]=b.getSeconds(),Ve()[h+4>>>2>>>0]=b.getMinutes(),Ve()[h+8>>>2>>>0]=b.getHours(),Ve()[h+12>>>2>>>0]=b.getDate(),Ve()[h+16>>>2>>>0]=b.getMonth(),Ve()[h+20>>>2>>>0]=b.getYear(),h=b.getTime(),BigInt(isNaN(h)?-1:h/1e3)}function Ma(h,b,k,y,D,F,N){return G?oA(16,1,h,b,k,y,D,F,N):-52}function xi(h,b,k,y,D,F){if(G)return oA(17,1,h,b,k,y,D,F)}var hs={},Ki=()=>performance.timeOrigin+performance.now();function kr(h,b){if(G)return oA(18,1,h,b);if(hs[h]&&(clearTimeout(hs[h].id),delete hs[h]),!b)return 0;var k=setTimeout(()=>{delete hs[h],Yr(()=>q(h,performance.timeOrigin+performance.now()))},b);return hs[h]={id:k,wl:b},0}function lo(h,b,k,y){h>>>=0,b>>>=0,k>>>=0,y>>>=0;var D=new Date().getFullYear(),F=new Date(D,0,1).getTimezoneOffset();D=new Date(D,6,1).getTimezoneOffset();var N=Math.max(F,D);Ue()[h>>>2>>>0]=60*N,Ve()[b>>>2>>>0]=+(F!=D),h=(b=H=>{var Z=Math.abs(H);return`UTC${0<=H?"-":"+"}${String(Math.floor(Z/60)).padStart(2,"0")}${String(Z%60).padStart(2,"0")}`})(F),b=b(D),DDate.now();function Bi(h,b,k){return 0<=h&&3>=h?(h===0?h=Date.now():h=performance.timeOrigin+performance.now(),Qe[k>>>0>>>3]=BigInt(Math.round(1e6*h)),0):28}var ys=[],Di=(h,b)=>{ys.length=0;for(var k;k=Ie()[h++>>>0];){var y=k!=105;b+=(y&=k!=112)&&b%8?4:0,ys.push(k==112?Ue()[b>>>2>>>0]:k==106?Qe[b>>>3]:k==105?Ve()[b>>>2>>>0]:QA()[b>>>3>>>0]),b+=y?8:4}return ys};function Bn(h,b,k){return h>>>=0,b=Di(b>>>0,k>>>0),EA[h](...b)}function Ti(h,b,k){return h>>>=0,b=Di(b>>>0,k>>>0),EA[h](...b)}var TA=()=>{var h="getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE";TA.tg||(TA.tg={}),TA.tg[h]||(TA.tg[h]=1,v(h))},ja=()=>{};function uo(h,b){return v(Ht(h>>>0,b>>>0))}var r0=()=>{throw RA+=1,"unwind"};function Zs(){return 4294901760}var Js=()=>1,fo=()=>navigator.hardwareConcurrency;function Dn(){return $("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function go(h){h>>>=0;var b=Ie().length;if(h<=b||4294901760=k;k*=2){var y=b*(1+.2/k);y=Math.min(y,h+100663296);e:{y=(Math.min(4294901760,65536*Math.ceil(Math.max(h,y)/65536))-e.buffer.byteLength+65535)/65536|0;try{e.grow(y),Ne();var D=1;break e}catch{}D=void 0}if(D)return!0}return!1}var qs=()=>($("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),Rs={},Tn=h=>{h.forEach(b=>{qs()})};function Nr(){var h=Error().stack.toString().split(` +`);return h[0]=="Error"&&h.shift(),Tn(h),Rs.Qk=qs(),Rs.il=h,Rs.Qk}function Gn(h,b,k){if(h>>>=0,b>>>=0,Rs.Qk==h)var y=Rs.il;else(y=Error().stack.toString().split(` +`))[0]=="Error"&&y.shift(),Tn(y);for(var D=3;y[D]&&qs()!=h;)++D;for(h=0;h>>2>>>0]=qs();return h}var ns=h=>{var b=Ia(h)+1,k=Ye(b);return wa(h,k,b),k},YA=[],Kr=[],$s=[],Qa=(h,b)=>{$s[h]=new Promise(k=>b.finally(()=>k(h)))},nt=h=>{if(h)return YA[h]},Qr=(h,b,k)=>{Ue()[h>>>2>>>0]=b,Ue()[h+4>>>2>>>0]=k},ms=h=>{var b=Ue()[h>>>2>>>0];return h=Ue()[h+4>>>2>>>0],Ht(b,h)},nr=h=>{var b=Ue()[h>>>2>>>0];return h=Ue()[h+4>>>2>>>0],b?Ht(b,h):h===0?"":void 0},os=(h,b)=>{function k(D,F){D=h[D],Ve()[b+F>>>2>>>0]=D}function y(D,F){Qe[b+F>>>3]=BigInt(h[D])}k("maxTextureDimension1D",4),k("maxTextureDimension2D",8),k("maxTextureDimension3D",12),k("maxTextureArrayLayers",16),k("maxBindGroups",20),k("maxBindGroupsPlusVertexBuffers",24),k("maxBindingsPerBindGroup",28),k("maxDynamicUniformBuffersPerPipelineLayout",32),k("maxDynamicStorageBuffersPerPipelineLayout",36),k("maxSampledTexturesPerShaderStage",40),k("maxSamplersPerShaderStage",44),k("maxStorageBuffersPerShaderStage",48),k("maxStorageTexturesPerShaderStage",52),k("maxUniformBuffersPerShaderStage",56),k("minUniformBufferOffsetAlignment",80),k("minStorageBufferOffsetAlignment",84),y("maxUniformBufferBindingSize",64),y("maxStorageBufferBindingSize",72),k("maxVertexBuffers",88),y("maxBufferSize",96),k("maxVertexAttributes",104),k("maxVertexBufferArrayStride",108),k("maxInterStageShaderVariables",112),k("maxColorAttachments",116),k("maxColorAttachmentBytesPerSample",120),k("maxComputeWorkgroupStorageSize",124),k("maxComputeInvocationsPerWorkgroup",128),k("maxComputeWorkgroupSizeX",132),k("maxComputeWorkgroupSizeY",136),k("maxComputeWorkgroupSizeZ",140),k("maxComputeWorkgroupsPerDimension",144)},Pn={undefined:1,yl:1,sl:2},Xi={1:"validation",2:"out-of-memory",3:"internal"},po=[,"compatibility","core"],Gi={1:"depth-clip-control",2:"depth32float-stencil8",3:"timestamp-query",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"indirect-first-instance",10:"shader-f16",11:"rg11b10ufloat-renderable",12:"bgra8unorm-storage",13:"float32-filterable",14:"float32-blendable",15:"clip-distances",16:"dual-source-blending",17:"subgroups",18:"core-features-and-limits",327688:"subgroups-f16",327693:"chromium-experimental-unorm16-texture-formats",327694:"chromium-experimental-snorm16-texture-formats",327733:"chromium-experimental-multi-draw-indirect"},gr=[,"low-power","high-performance"],Pi={1:"occlusion",2:"timestamp"},ho={"depth-clip-control":"1","depth32float-stencil8":"2","timestamp-query":"3","texture-compression-bc":"4","texture-compression-bc-sliced-3d":"5","texture-compression-etc2":"6","texture-compression-astc":"7","texture-compression-astc-sliced-3d":"8","indirect-first-instance":"9","shader-f16":"10","rg11b10ufloat-renderable":"11","bgra8unorm-storage":"12","float32-filterable":"13","float32-blendable":"14","clip-distances":"15","dual-source-blending":"16",vl:"17","core-features-and-limits":"18","subgroups-f16":"327688","chromium-experimental-unorm16-texture-formats":"327693","chromium-experimental-snorm16-texture-formats":"327694","chromium-experimental-multi-draw-indirect":"327733"};function pa(h,b,k,y,D,F){b=FA(b),k=FA(k),y>>>=0,D>>>=0,F>>>=0,h=nt(h>>>0);var N={};if(F){var H=Ue()[F+12>>>2>>>0];if(H){var Z=Ue()[F+16>>>2>>>0];N.requiredFeatures=Array.from(Ue().subarray(Z>>>2>>>0,Z+4*H>>>2>>>0),he=>Gi[he])}var te=Ue()[F+20>>>2>>>0];if(te){let he=function(Le,qe){qe=te+qe,(qe=Ue()[qe>>>2>>>0])!=4294967295&&(pe[Le]=qe)},ve=function(Le,qe){qe=te+qe;var hA=Ue()[qe>>>2>>>0],vA=Ue()[qe+4>>>2>>>0];hA==4294967295&&vA==4294967295||(pe[Le]=4294967296*Ue()[qe+4>>>2>>>0]+Ue()[qe>>>2>>>0])};var pe={};he("maxTextureDimension1D",4),he("maxTextureDimension2D",8),he("maxTextureDimension3D",12),he("maxTextureArrayLayers",16),he("maxBindGroups",20),he("maxBindGroupsPlusVertexBuffers",24),he("maxDynamicUniformBuffersPerPipelineLayout",32),he("maxDynamicStorageBuffersPerPipelineLayout",36),he("maxSampledTexturesPerShaderStage",40),he("maxSamplersPerShaderStage",44),he("maxStorageBuffersPerShaderStage",48),he("maxStorageTexturesPerShaderStage",52),he("maxUniformBuffersPerShaderStage",56),he("minUniformBufferOffsetAlignment",80),he("minStorageBufferOffsetAlignment",84),ve("maxUniformBufferBindingSize",64),ve("maxStorageBufferBindingSize",72),he("maxVertexBuffers",88),ve("maxBufferSize",96),he("maxVertexAttributes",104),he("maxVertexBufferArrayStride",108),he("maxInterStageShaderVariables",112),he("maxColorAttachments",116),he("maxColorAttachmentBytesPerSample",120),he("maxComputeWorkgroupStorageSize",124),he("maxComputeInvocationsPerWorkgroup",128),he("maxComputeWorkgroupSizeX",132),he("maxComputeWorkgroupSizeY",136),he("maxComputeWorkgroupSizeZ",140),he("maxComputeWorkgroupsPerDimension",144),N.requiredLimits=pe}(H=Ue()[F+24>>>2>>>0])&&(H={label:nr(H+4)},N.defaultQueue=H),N.label=nr(F+4)}RA+=1,Qa(b,h.requestDevice(N).then(he=>{--RA,YA[D]=he.queue,YA[y]=he,k&&(RA+=1,Qa(k,he.lost.then(ve=>{--RA,he.onuncapturederror=()=>{};var Le=de(),qe=ns(ve.message);o(k,Pn[ve.reason],qe),ne(Le)}))),he.onuncapturederror=ve=>{var Le=5;ve.error instanceof GPUValidationError?Le=2:ve.error instanceof GPUOutOfMemoryError?Le=3:ve.error instanceof GPUInternalError&&(Le=4);var qe=de();ve=ns(ve.error.message),E(y,Le,ve),ne(qe)},m(b,1,y,0)},he=>{--RA;var ve=de();he=ns(he.message),m(b,3,y,he),k&&o(k,4,he),ne(ve)}))}function ei(h){var b=nt(h>>>=0),k=Kr[h];if(k){for(var y=0;y>>=0,k>>>=0;var y=nt(h>>>=0);k===0&&TA(),k==4294967295&&(k=void 0);try{var D=y.getMappedRange(b,k)}catch{return 0}var F=ue(16,D.byteLength);return Ie().set(new Uint8Array(D),F>>>0),Kr[h].push(()=>Sa(F)),F}function Zi(h,b,k){b>>>=0,k>>>=0;var y=nt(h>>>=0);k===0&&TA(),k==4294967295&&(k=void 0);try{var D=y.getMappedRange(b,k)}catch{return 0}var F=ue(16,D.byteLength);return Ie().fill(0,F,D.byteLength),Kr[h].push(()=>{new Uint8Array(D).set(Ie().subarray(F>>>0,F+D.byteLength>>>0)),Sa(F)}),F}function Qn(h,b,k,y,D){h>>>=0,b=FA(b),k=FA(k),D>>>=0;var F=nt(h);Kr[h]=[],D==4294967295&&(D=void 0),RA+=1,Qa(b,F.mapAsync(k,y>>>0,D).then(()=>{--RA,l(b,1,0)},N=>{--RA,de();var H=ns(N.message);l(b,N.name==="AbortError"?4:N.name==="OperationError"?3:0,H),delete Kr[h]}))}function mo(h){var b=nt(h>>>=0),k=Kr[h];if(k){for(var y=0;y>>0]}function ls(h,b,k){h>>>=0,b>>>=0,k>>>=0;var y=!!Ue()[b+32>>>2>>>0];b={label:nr(b+4),usage:Ue()[b+16>>>2>>>0],size:4294967296*Ue()[b+28>>>2>>>0]+Ue()[b+24>>>2>>>0],mappedAtCreation:y},h=nt(h);try{var D=h.createBuffer(b)}catch{return!1}return YA[k]=D,y&&(Kr[k]=[]),!0}function Sn(h,b,k){h>>>=0,b>>>=0,k>>>=0;var y=Ue()[b>>>2>>>0],D=Ue()[y+4>>>2>>>0];b={label:nr(b+4),code:""},D===2&&(b.code=ms(y+8)),h=nt(h).createShaderModule(b),YA[k]=h}var Fn=h=>{nt(h).destroy()};function On(h,b){b=FA(b),h=nt(h>>>0),RA+=1,Qa(b,h.popErrorScope().then(k=>{--RA;var y=5;k?k instanceof GPUValidationError?y=2:k instanceof GPUOutOfMemoryError?y=3:k instanceof GPUInternalError&&(y=4):y=1;var D=de();k=k?ns(k.message):0,c(b,1,y,k),ne(D)},k=>{--RA;var y=de();k=ns(k.message),c(b,1,5,k),ne(y)}))}function Co(h,b,k,y){if(b=FA(b),y>>>=0,k>>>=0){var D=Ue()[k+4>>>2>>>0];D={featureLevel:po[D],powerPreference:gr[Ue()[k+8>>>2>>>0]],forceFallbackAdapter:!!Ue()[k+12>>>2>>>0]},(k=Ue()[k>>>2>>>0])!==0&&(Ue(),D.Al=!!Ue()[k+8>>>2>>>0])}"gpu"in navigator?(RA+=1,Qa(b,navigator.gpu.requestAdapter(D).then(F=>{if(--RA,F)YA[y]=F,f(b,1,y,0);else{F=de();var N=ns("WebGPU not available on this browser (requestAdapter returned null)");f(b,3,y,N),ne(F)}},F=>{--RA;var N=de();F=ns(F.message),f(b,4,y,F),ne(N)}))):(k=de(),D=ns("WebGPU not available on this browser (navigator.gpu is not available)"),f(b,3,y,D),ne(k))}function cs(h,b,k){return h>>>=0,b>>>=0,k>>>=0,zs(async()=>{var y=[];if(k){var D=(4294967296*Ue()[k+4>>>2>>>0]+Ue()[k>>>2>>>0])/1e6;y.length=b+1,y[b]=new Promise(H=>setTimeout(H,D,0))}else y.length=b;for(var F=0;F>>2>>>0]+Ue()[h+8*F>>>2>>>0];if(!(N in $s))return N;y[F]=$s[N]}return y=await Promise.race(y),delete $s[y],y})}var ti,Tr={},Si=()=>{if(!ti){var h,b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(h in Tr)Tr[h]===void 0?delete b[h]:b[h]=Tr[h];var k=[];for(h in b)k.push(`${h}=${b[h]}`);ti=k}return ti};function Fi(h,b){if(G)return oA(19,1,h,b);h>>>=0,b>>>=0;var k=0;return Si().forEach((y,D)=>{var F=b+k;for(D=Ue()[h+4*D>>>2>>>0]=F,F=0;F>>0]=y.charCodeAt(F);le()[D>>>0]=0,k+=y.length+1}),0}function Oi(h,b){if(G)return oA(20,1,h,b);h>>>=0,b>>>=0;var k=Si();Ue()[h>>>2>>>0]=k.length;var y=0;return k.forEach(D=>y+=D.length+1),Ue()[b>>>2>>>0]=y,0}function ha(h){return G?oA(21,1,h):52}function _i(h,b,k,y){return G?oA(22,1,h,b,k,y):52}function _n(h,b,k,y){return G?oA(23,1,h,b,k,y):70}var qa=[null,[],[]];function zn(h,b,k,y){if(G)return oA(24,1,h,b,k,y);b>>>=0,k>>>=0,y>>>=0;for(var D=0,F=0;F>>2>>>0],H=Ue()[b+4>>>2>>>0];b+=8;for(var Z=0;Z>>0],pe=qa[h];te===0||te===10?((h===1?d:v)(as(pe)),pe.length=0):pe.push(te)}D+=H}return Ue()[y>>>2>>>0]=D,0}function Nn(h){return h>>>0}function Ji(h,b){return os(nt(h>>>0).limits,b>>>0),1}function ri(h,b){return nt(h>>>0).features.has(Gi[b])}function bo(h){return BigInt(nt(h>>>0).size)}function Ln(h){return BigInt(nt(h>>>0).usage)}function Io(h,b){if(h>>>=0,b>>>=0){var k=nr(b+4);k={label:k,timestampWrites:b=(b=Ue()[b+12>>>2>>>0])!==0?{querySet:nt(Ue()[b+4>>>2>>>0]),beginningOfPassWriteIndex:Ue()[b+8>>>2>>>0],endOfPassWriteIndex:Ue()[b+12>>>2>>>0]}:void 0}}return b=nt(h),h=ci(0),k=b.beginComputePass(k),YA[h]=k,h}function ia(h,b,k,y,D,F){k=FA(k),D=FA(D),F=FA(F),nt(h>>>0).copyBufferToBuffer(nt(b>>>0),k,nt(y>>>0),D,F)}function ai(h){var b=nt(h>>>0);return h=Ys(0),b=b.finish(),YA[h]=b,h}function na(h,b,k,y,D,F){F=FA(F),nt(h>>>0).resolveQuerySet(nt(b>>>0),k,y,nt(D>>>0),F)}function jn(h,b,k,y){nt(h>>>0).dispatchWorkgroups(b,k,y)}function zi(h){nt(h>>>0).end()}function wo(h,b,k,y,D){if(y>>>=0,D>>>=0,h=nt(h>>>0),k=nt(k>>>0),y==0)h.setBindGroup(b,k);else{for(var F=[],N=0;N>>2>>>0]);h.setBindGroup(b,k,F)}}function Ar(h,b){nt(h>>>0).setPipeline(nt(b>>>0))}function qi(h,b,k){nt(h>>>0).zl(nt(b>>>0),k)}function Ws(h,b){var k=nt(h>>>0);return h=Vn(0),b=k.getBindGroupLayout(b),YA[h]=b,h}function si(h,b){h>>>=0;var k=nr(4+(b>>>=0)),y=nt(Ue()[b+12>>>2>>>0]),D=Ue()[b+16>>>2>>>0];b=Ue()[b+20>>>2>>>0];for(var F=[],N=0;N>>2>>>0],he=Ue()[te+32>>>2>>>0],ve=Ue()[te+36>>>2>>>0],Le=Ue()[te+4>>>2>>>0];pe?(he=te+24,(he=Ue()[he>>>2>>>0]+4294967296*Ve()[he+4>>>2>>>0])==-1&&(he=void 0),te={binding:Le,resource:{buffer:nt(pe),offset:4294967296*Ue()[te+4+16>>>2>>>0]+Ue()[te+16>>>2>>>0],size:he}}):te=he?{binding:Le,resource:nt(he)}:{binding:Le,resource:nt(ve)},Z.call(H,te)}return k={label:k,layout:y,entries:F},y=nt(h),h=tn(0),k=y.createBindGroup(k),YA[h]=k,h}function ko(h,b){var k;return h>>>=0,(b>>>=0)&&(k={label:nr(b+4)}),b=nt(h),h=rn(0),k=b.createCommandEncoder(k),YA[h]=k,h}function Eo(h,b){h>>>=0;var k=b>>>0;b=nr(k+4);var y=(y=Ue()[k+12>>>2>>>0])?nt(y):"auto";if(k+=16){var D=nt(Ue()[k+4>>>2>>>0]),F=Ue()[k+16>>>2>>>0],N=Ue()[k+20>>>2>>>0];if(F){for(var H={},Z=0;Z>>3>>>0]}F=H}else F=void 0;k={module:D,constants:F,entryPoint:nr(k+8)}}else k=void 0;return b={label:b,layout:y,compute:k},y=nt(h),h=rt(0),b=y.createComputePipeline(b),YA[h]=b,h}function $i(h,b){h>>>=0,b>>>=0,b={type:Pi[Ue()[b+12>>>2>>>0]],count:Ue()[b+16>>>2>>>0]};var k=nt(h);return h=A(0),b=k.createQuerySet(b),YA[h]=b,h}function Mo(h,b){b>>>=0;var k=(h=nt(h>>>0)).adapterInfo.vendor+h.adapterInfo.architecture+h.adapterInfo.device+h.adapterInfo.description,y=Ia(k)+1,D=xs(y);return D&&wa(k,D,y),k=D,y=Ia(h.adapterInfo.vendor),Qr(b+4,k,y),k+=y,y=Ia(h.adapterInfo.architecture),Qr(b+12,k,y),k+=y,y=Ia(h.adapterInfo.device),Qr(b+20,k,y),Qr(b+28,k+y,Ia(h.adapterInfo.description)),Ve()[b+36>>>2>>>0]=2,h=h.adapterInfo.isFallbackAdapter?3:4,Ve()[b+40>>>2>>>0]=h,Ve()[b+44>>>2>>>0]=0,Ve()[b+48>>>2>>>0]=0,1}function Vs(h,b){b>>>=0,h=nt(h>>>0);var k=xs(4*h.features.size),y=0,D=0;h.features.forEach(F=>{(F=ho[F])!==void 0&&(Ve()[k+y>>>2>>>0]=F,y+=4,D++)}),Ue()[b+4>>>2>>>0]=k,Ue()[b>>>2>>>0]=D}function Ra(h,b){return os(nt(h>>>0).limits,b>>>0),1}function Rn(h,b){return nt(h>>>0).features.has(Gi[b])}function en(h,b){nt(h>>>0).pushErrorScope(Xi[b])}function Lr(h,b,k){b>>>=0,k>>>=0,h=nt(h>>>0),b=Array.from(Ve().subarray(k>>>2>>>0,k+4*b>>>2>>>0),y=>nt(y)),h.submit(b)}function Wt(h,b,k,y,D){k=FA(k),y>>>=0,D>>>=0,h=nt(h>>>0),b=nt(b>>>0),y=Ie().subarray(y>>>0,y+D>>>0),h.writeBuffer(b,k,y,0,D)}G||function(){for(var h=p.numThreads-1;h--;)me();VA.unshift(()=>{sA++,function(b){G?b():Promise.all(gt.map(Re)).then(b)}(()=>dA())})}();for(var ii=Array(256),ni=0;256>ni;++ni)ii[ni]=String.fromCharCode(ni);ct=ii,mr=p.BindingError=class extends Error{constructor(h){super(h),this.name="BindingError"}},p.InternalError=class extends Error{constructor(h){super(h),this.name="InternalError"}},Ga.push(0,1,void 0,1,null,1,!0,1,!1,1),p.count_emval_handles=()=>Ga.length/2-5-Fs.length;var ye,vo=[et,It,Da,ks,xr,Es,sa,wA,DA,qA,lr,Ka,Xa,Ta,Za,Ja,Ma,xi,kr,Fi,Oi,ha,_i,_n,zn];(async function(){function h(y,D){return ye=y.exports,ye=function(){var F=ye,N={};for(let[H,Z]of Object.entries(F))N[H]=typeof Z=="function"?(...te)=>{vi.push(H);try{return Z(...te)}finally{Xe||(vi.pop(),Pa&&wr===1&&vi.length===0&&(wr=0,RA+=1,jt(bc),typeof Fibers<"u"&&Fibers.xl()))}}:Z;return N}(),ye=function(){var F=ye,N=Z=>te=>Z(te)>>>0,H=Z=>()=>Z()>>>0;return(F=Object.assign({},F)).rf=N(F.rf),F.Wf=H(F.Wf),F.Yf=N(F.Yf),F.Jg=(Z=>(te,pe)=>Z(te,pe)>>>0)(F.Jg),F.Og=N(F.Og),F.Pg=H(F.Pg),F.Tg=N(F.Tg),F}(),ua.push(ye.Ag),u=D,dA(),ye}sA++;var b=mA();if(p.instantiateWasm)return new Promise(y=>{p.instantiateWasm(b,(D,F)=>{h(D,F),y(D.exports)})});if(G)return new Promise(y=>{Ze=D=>{var F=new WebAssembly.Instance(D,mA());y(h(F,D))}});aA??(aA=p.locateFile?p.locateFile?p.locateFile("ort-wasm-simd-threaded.jsep.wasm",Y):Y+"ort-wasm-simd-threaded.jsep.wasm":new URL("/assets/ort-wasm-simd-threaded.jsep-D5UMYBk4.wasm",import.meta.url).href);try{var k=await async function(y){var D=aA;if(!Je&&typeof WebAssembly.instantiateStreaming=="function"&&!be(D))try{var F=fetch(D,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(F,y)}catch(N){v(`wasm streaming compile failed: ${N}`),v("falling back to ArrayBuffer instantiation")}return async function(N,H){try{var Z=await async function(te){if(!Je)try{var pe=await j(te);return new Uint8Array(pe)}catch{}if(te==aA&&Je)te=new Uint8Array(Je);else{if(!L)throw"both async and sync fetching of the wasm failed";te=L(te)}return te}(N);return await WebAssembly.instantiate(Z,H)}catch(te){v(`failed to asynchronously prepare wasm: ${te}`),$(te)}}(D,y)}(b);return h(k.instance,k.module)}catch(y){return C(y),Promise.reject(y)}})();var An=h=>(An=ye.rf)(h),Wn=()=>(Wn=ye.sf)();p._OrtInit=(h,b)=>(p._OrtInit=ye.tf)(h,b),p._OrtGetLastError=(h,b)=>(p._OrtGetLastError=ye.uf)(h,b),p._OrtCreateSessionOptions=(h,b,k,y,D,F,N,H,Z,te)=>(p._OrtCreateSessionOptions=ye.vf)(h,b,k,y,D,F,N,H,Z,te),p._OrtAppendExecutionProvider=(h,b,k,y,D)=>(p._OrtAppendExecutionProvider=ye.wf)(h,b,k,y,D),p._OrtAddFreeDimensionOverride=(h,b,k)=>(p._OrtAddFreeDimensionOverride=ye.xf)(h,b,k),p._OrtAddSessionConfigEntry=(h,b,k)=>(p._OrtAddSessionConfigEntry=ye.yf)(h,b,k),p._OrtReleaseSessionOptions=h=>(p._OrtReleaseSessionOptions=ye.zf)(h),p._OrtCreateSession=(h,b,k)=>(p._OrtCreateSession=ye.Af)(h,b,k),p._OrtReleaseSession=h=>(p._OrtReleaseSession=ye.Bf)(h),p._OrtGetInputOutputCount=(h,b,k)=>(p._OrtGetInputOutputCount=ye.Cf)(h,b,k),p._OrtGetInputOutputMetadata=(h,b,k,y)=>(p._OrtGetInputOutputMetadata=ye.Df)(h,b,k,y),p._OrtFree=h=>(p._OrtFree=ye.Ef)(h),p._OrtCreateTensor=(h,b,k,y,D,F)=>(p._OrtCreateTensor=ye.Ff)(h,b,k,y,D,F),p._OrtGetTensorData=(h,b,k,y,D)=>(p._OrtGetTensorData=ye.Gf)(h,b,k,y,D),p._OrtReleaseTensor=h=>(p._OrtReleaseTensor=ye.Hf)(h),p._OrtCreateRunOptions=(h,b,k,y)=>(p._OrtCreateRunOptions=ye.If)(h,b,k,y),p._OrtAddRunConfigEntry=(h,b,k)=>(p._OrtAddRunConfigEntry=ye.Jf)(h,b,k),p._OrtReleaseRunOptions=h=>(p._OrtReleaseRunOptions=ye.Kf)(h),p._OrtCreateBinding=h=>(p._OrtCreateBinding=ye.Lf)(h),p._OrtBindInput=(h,b,k)=>(p._OrtBindInput=ye.Mf)(h,b,k),p._OrtBindOutput=(h,b,k,y)=>(p._OrtBindOutput=ye.Nf)(h,b,k,y),p._OrtClearBoundOutputs=h=>(p._OrtClearBoundOutputs=ye.Of)(h),p._OrtReleaseBinding=h=>(p._OrtReleaseBinding=ye.Pf)(h),p._OrtRunWithBinding=(h,b,k,y,D)=>(p._OrtRunWithBinding=ye.Qf)(h,b,k,y,D),p._OrtRun=(h,b,k,y,D,F,N,H)=>(p._OrtRun=ye.Rf)(h,b,k,y,D,F,N,H),p._OrtEndProfiling=h=>(p._OrtEndProfiling=ye.Sf)(h);var Ni=p._OrtGetWebGpuDevice=h=>(Ni=p._OrtGetWebGpuDevice=ye.Tf)(h);p._JsepOutput=(h,b,k)=>(p._JsepOutput=ye.Uf)(h,b,k),p._JsepGetNodeName=h=>(p._JsepGetNodeName=ye.Vf)(h);var oi=()=>(oi=ye.Wf)(),Sa=p._free=h=>(Sa=p._free=ye.Xf)(h),xs=p._malloc=h=>(xs=p._malloc=ye.Yf)(h),li=p._wgpuBufferRelease=h=>(li=p._wgpuBufferRelease=ye.Zf)(h),Xr=p._wgpuCreateInstance=h=>(Xr=p._wgpuCreateInstance=ye._f)(h),tn=h=>(tn=ye.$f)(h),Vn=h=>(Vn=ye.ag)(h),Ys=h=>(Ys=ye.bg)(h),rn=h=>(rn=ye.cg)(h),ci=h=>(ci=ye.dg)(h),rt=h=>(rt=ye.eg)(h),A=h=>(A=ye.gg)(h),t=(h,b)=>(t=ye.qg)(h,b),r=(h,b)=>(r=ye.rg)(h,b),a=h=>(a=ye.sg)(h),o=(h,b,k)=>(o=ye.ug)(h,b,k),l=(h,b,k)=>(l=ye.vg)(h,b,k),c=(h,b,k,y)=>(c=ye.wg)(h,b,k,y),f=(h,b,k,y)=>(f=ye.xg)(h,b,k,y),m=(h,b,k,y)=>(m=ye.yg)(h,b,k,y),E=(h,b,k)=>(E=ye.zg)(h,b,k),w=(h,b,k,y,D,F)=>(w=ye.Cg)(h,b,k,y,D,F),B=()=>(B=ye.Dg)(),_=(h,b,k,y,D)=>(_=ye.Eg)(h,b,k,y,D),W=h=>(W=ye.Fg)(h),X=h=>(X=ye.Gg)(h),q=(h,b)=>(q=ye.Hg)(h,b),re=()=>(re=ye.Ig)(),ue=(h,b)=>(ue=ye.Jg)(h,b),J=(h,b)=>(J=ye.Kg)(h,b),Me=h=>(Me=ye.Lg)(h),Ge=(h,b)=>(Ge=ye.Mg)(h,b),ne=h=>(ne=ye.Ng)(h),Ye=h=>(Ye=ye.Og)(h),de=()=>(de=ye.Pg)(),iA=h=>(iA=ye.Qg)(h),bA=h=>(bA=ye.Rg)(h),MA=(h,b,k)=>(MA=ye.Sg)(h,b,k),jA=h=>(jA=ye.Tg)(h),WA=p.dynCall_vii=(h,b,k)=>(WA=p.dynCall_vii=ye.Ug)(h,b,k),it=p.dynCall_iiii=(h,b,k,y)=>(it=p.dynCall_iiii=ye.Vg)(h,b,k,y),kt=p.dynCall_iii=(h,b,k)=>(kt=p.dynCall_iii=ye.Wg)(h,b,k),Gt=p.dynCall_ii=(h,b)=>(Gt=p.dynCall_ii=ye.Xg)(h,b),Nt=p.dynCall_iiiiiii=(h,b,k,y,D,F,N)=>(Nt=p.dynCall_iiiiiii=ye.Yg)(h,b,k,y,D,F,N),Xt=p.dynCall_vi=(h,b)=>(Xt=p.dynCall_vi=ye.Zg)(h,b),tr=p.dynCall_v=h=>(tr=p.dynCall_v=ye._g)(h),pr=p.dynCall_iiiiii=(h,b,k,y,D,F)=>(pr=p.dynCall_iiiiii=ye.$g)(h,b,k,y,D,F),rr=p.dynCall_viii=(h,b,k,y)=>(rr=p.dynCall_viii=ye.ah)(h,b,k,y),Er=p.dynCall_i=h=>(Er=p.dynCall_i=ye.bh)(h),Sr=p.dynCall_iiiii=(h,b,k,y,D)=>(Sr=p.dynCall_iiiii=ye.ch)(h,b,k,y,D),Zr=p.dynCall_viiii=(h,b,k,y,D)=>(Zr=p.dynCall_viiii=ye.dh)(h,b,k,y,D),Aa=p.dynCall_viiiii=(h,b,k,y,D,F)=>(Aa=p.dynCall_viiiii=ye.eh)(h,b,k,y,D,F),ta=p.dynCall_vijii=(h,b,k,y,D)=>(ta=p.dynCall_vijii=ye.fh)(h,b,k,y,D),ma=p.dynCall_vijjiii=(h,b,k,y,D,F,N)=>(ma=p.dynCall_vijjiii=ye.gh)(h,b,k,y,D,F,N),$a=p.dynCall_vijj=(h,b,k,y)=>($a=p.dynCall_vijj=ye.hh)(h,b,k,y),es=p.dynCall_vijji=(h,b,k,y,D)=>(es=p.dynCall_vijji=ye.ih)(h,b,k,y,D),Wa=p.dynCall_diii=(h,b,k,y)=>(Wa=p.dynCall_diii=ye.jh)(h,b,k,y),Hs=p.dynCall_viiij=(h,b,k,y,D)=>(Hs=p.dynCall_viiij=ye.kh)(h,b,k,y,D),ui=p.dynCall_iiij=(h,b,k,y)=>(ui=p.dynCall_iiij=ye.lh)(h,b,k,y),Bs=p.dynCall_viijii=(h,b,k,y,D,F)=>(Bs=p.dynCall_viijii=ye.mh)(h,b,k,y,D,F),di=p.dynCall_iif=(h,b,k)=>(di=p.dynCall_iif=ye.nh)(h,b,k),fi=p.dynCall_jiii=(h,b,k,y)=>(fi=p.dynCall_jiii=ye.oh)(h,b,k,y),Yn=p.dynCall_viijijj=(h,b,k,y,D,F,N)=>(Yn=p.dynCall_viijijj=ye.ph)(h,b,k,y,D,F,N),an=p.dynCall_vij=(h,b,k)=>(an=p.dynCall_vij=ye.qh)(h,b,k),Hn=p.dynCall_viij=(h,b,k,y)=>(Hn=p.dynCall_viij=ye.rh)(h,b,k,y),Un=p.dynCall_iiiiid=(h,b,k,y,D,F)=>(Un=p.dynCall_iiiiid=ye.sh)(h,b,k,y,D,F),a0=p.dynCall_viijj=(h,b,k,y,D)=>(a0=p.dynCall_viijj=ye.th)(h,b,k,y,D),U0=p.dynCall_iij=(h,b,k)=>(U0=p.dynCall_iij=ye.uh)(h,b,k),K0=p.dynCall_iiiiij=(h,b,k,y,D,F)=>(K0=p.dynCall_iiiiij=ye.vh)(h,b,k,y,D,F),s0=p.dynCall_j=h=>(s0=p.dynCall_j=ye.wh)(h),X0=p.dynCall_viiiiiii=(h,b,k,y,D,F,N,H)=>(X0=p.dynCall_viiiiiii=ye.xh)(h,b,k,y,D,F,N,H),Z0=p.dynCall_iiiiiiiii=(h,b,k,y,D,F,N,H,Z)=>(Z0=p.dynCall_iiiiiiiii=ye.yh)(h,b,k,y,D,F,N,H,Z),yo=p.dynCall_iiiiijiiiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(yo=p.dynCall_iiiiijiiiii=ye.zh)(h,b,k,y,D,F,N,H,Z,te,pe),J0=p.dynCall_iiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(J0=p.dynCall_iiiiiiiiiii=ye.Ah)(h,b,k,y,D,F,N,H,Z,te,pe),q0=p.dynCall_vijjjiiiiij=(h,b,k,y,D,F,N,H,Z,te,pe)=>(q0=p.dynCall_vijjjiiiiij=ye.Bh)(h,b,k,y,D,F,N,H,Z,te,pe),$0=p.dynCall_viiiiii=(h,b,k,y,D,F,N)=>($0=p.dynCall_viiiiii=ye.Ch)(h,b,k,y,D,F,N),i0=p.dynCall_viji=(h,b,k,y)=>(i0=p.dynCall_viji=ye.Dh)(h,b,k,y),el=p.dynCall_viiiiiiiii=(h,b,k,y,D,F,N,H,Z,te)=>(el=p.dynCall_viiiiiiiii=ye.Eh)(h,b,k,y,D,F,N,H,Z,te),Al=p.dynCall_fi=(h,b)=>(Al=p.dynCall_fi=ye.Fh)(h,b),n0=p.dynCall_fii=(h,b,k)=>(n0=p.dynCall_fii=ye.Gh)(h,b,k),tl=p.dynCall_ji=(h,b)=>(tl=p.dynCall_ji=ye.Hh)(h,b),rl=p.dynCall_di=(h,b)=>(rl=p.dynCall_di=ye.Ih)(h,b),al=p.dynCall_jii=(h,b,k)=>(al=p.dynCall_jii=ye.Jh)(h,b,k),sl=p.dynCall_dii=(h,b,k)=>(sl=p.dynCall_dii=ye.Kh)(h,b,k),xo=p.dynCall_viijiii=(h,b,k,y,D,F,N)=>(xo=p.dynCall_viijiii=ye.Lh)(h,b,k,y,D,F,N),il=p.dynCall_viiiiiiii=(h,b,k,y,D,F,N,H,Z)=>(il=p.dynCall_viiiiiiii=ye.Mh)(h,b,k,y,D,F,N,H,Z),nl=p.dynCall_iiiiiiiij=(h,b,k,y,D,F,N,H,Z)=>(nl=p.dynCall_iiiiiiiij=ye.Nh)(h,b,k,y,D,F,N,H,Z),ol=p.dynCall_iiiiiiii=(h,b,k,y,D,F,N,H)=>(ol=p.dynCall_iiiiiiii=ye.Oh)(h,b,k,y,D,F,N,H),ll=p.dynCall_viiji=(h,b,k,y,D)=>(ll=p.dynCall_viiji=ye.Ph)(h,b,k,y,D),cl=p.dynCall_viiiiij=(h,b,k,y,D,F,N)=>(cl=p.dynCall_viiiiij=ye.Qh)(h,b,k,y,D,F,N),ul=p.dynCall_viijjjiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(ul=p.dynCall_viijjjiiiiii=ye.Rh)(h,b,k,y,D,F,N,H,Z,te,pe,he),dl=p.dynCall_viiijiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(dl=p.dynCall_viiijiiiiiii=ye.Sh)(h,b,k,y,D,F,N,H,Z,te,pe,he),fl=p.dynCall_iiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(fl=p.dynCall_iiiiiiiiiiiii=ye.Th)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),gl=p.dynCall_viiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(gl=p.dynCall_viiiiiiiiii=ye.Uh)(h,b,k,y,D,F,N,H,Z,te,pe),o0=p.dynCall_viiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)=>(o0=p.dynCall_viiiiiiiiiiiiiiii=ye.Vh)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA),pl=p.dynCall_viid=(h,b,k,y)=>(pl=p.dynCall_viid=ye.Wh)(h,b,k,y),hl=p.dynCall_vid=(h,b,k)=>(hl=p.dynCall_vid=ye.Xh)(h,b,k),l0=p.dynCall_viiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(l0=p.dynCall_viiiiiiiiiii=ye.Yh)(h,b,k,y,D,F,N,H,Z,te,pe,he),ml=p.dynCall_viiijjjii=(h,b,k,y,D,F,N,H,Z)=>(ml=p.dynCall_viiijjjii=ye.Zh)(h,b,k,y,D,F,N,H,Z),Cl=p.dynCall_iid=(h,b,k)=>(Cl=p.dynCall_iid=ye._h)(h,b,k),bl=p.dynCall_viiiij=(h,b,k,y,D,F)=>(bl=p.dynCall_viiiij=ye.$h)(h,b,k,y,D,F),Il=p.dynCall_viiijiiiii=(h,b,k,y,D,F,N,H,Z,te)=>(Il=p.dynCall_viiijiiiii=ye.ai)(h,b,k,y,D,F,N,H,Z,te),c0=p.dynCall_jj=(h,b)=>(c0=p.dynCall_jj=ye.bi)(h,b),wl=p.dynCall_iiiijii=(h,b,k,y,D,F,N)=>(wl=p.dynCall_iiiijii=ye.ci)(h,b,k,y,D,F,N),kl=p.dynCall_iiijii=(h,b,k,y,D,F)=>(kl=p.dynCall_iiijii=ye.di)(h,b,k,y,D,F),u0=p.dynCall_viiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)=>(u0=p.dynCall_viiiiiiiiiiiiiii=ye.ei)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA),El=p.dynCall_iiijjj=(h,b,k,y,D,F)=>(El=p.dynCall_iiijjj=ye.fi)(h,b,k,y,D,F),Ml=p.dynCall_ij=(h,b)=>(Ml=p.dynCall_ij=ye.gi)(h,b),d0=p.dynCall_viiiiji=(h,b,k,y,D,F,N)=>(d0=p.dynCall_viiiiji=ye.hi)(h,b,k,y,D,F,N),vl=p.dynCall_iijjji=(h,b,k,y,D,F)=>(vl=p.dynCall_iijjji=ye.ii)(h,b,k,y,D,F),yl=p.dynCall_vjiiiiii=(h,b,k,y,D,F,N,H)=>(yl=p.dynCall_vjiiiiii=ye.ji)(h,b,k,y,D,F,N,H),f0=p.dynCall_vijjiiiii=(h,b,k,y,D,F,N,H,Z)=>(f0=p.dynCall_vijjiiiii=ye.ki)(h,b,k,y,D,F,N,H,Z),xl=p.dynCall_jiij=(h,b,k,y)=>(xl=p.dynCall_jiij=ye.li)(h,b,k,y),Bl=p.dynCall_iijijjijiji=(h,b,k,y,D,F,N,H,Z,te,pe)=>(Bl=p.dynCall_iijijjijiji=ye.mi)(h,b,k,y,D,F,N,H,Z,te,pe),Dl=p.dynCall_iijijji=(h,b,k,y,D,F,N)=>(Dl=p.dynCall_iijijji=ye.ni)(h,b,k,y,D,F,N),Tl=p.dynCall_ijijji=(h,b,k,y,D,F)=>(Tl=p.dynCall_ijijji=ye.oi)(h,b,k,y,D,F),g0=p.dynCall_iiiiiiij=(h,b,k,y,D,F,N,H)=>(g0=p.dynCall_iiiiiiij=ye.pi)(h,b,k,y,D,F,N,H),Gl=p.dynCall_viiijjiii=(h,b,k,y,D,F,N,H,Z)=>(Gl=p.dynCall_viiijjiii=ye.qi)(h,b,k,y,D,F,N,H,Z),Pl=p.dynCall_vif=(h,b,k)=>(Pl=p.dynCall_vif=ye.ri)(h,b,k),Ql=p.dynCall_viif=(h,b,k,y)=>(Ql=p.dynCall_viif=ye.si)(h,b,k,y),Sl=p.dynCall_iiiiijji=(h,b,k,y,D,F,N,H)=>(Sl=p.dynCall_iiiiijji=ye.ti)(h,b,k,y,D,F,N,H),Fl=p.dynCall_iiiiji=(h,b,k,y,D,F)=>(Fl=p.dynCall_iiiiji=ye.ui)(h,b,k,y,D,F),Ol=p.dynCall_iiiifi=(h,b,k,y,D,F)=>(Ol=p.dynCall_iiiifi=ye.vi)(h,b,k,y,D,F),p0=p.dynCall_iiiiiiiiijii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(p0=p.dynCall_iiiiiiiiijii=ye.wi)(h,b,k,y,D,F,N,H,Z,te,pe,he),_l=p.dynCall_iiiijjii=(h,b,k,y,D,F,N,H)=>(_l=p.dynCall_iiiijjii=ye.xi)(h,b,k,y,D,F,N,H),zl=p.dynCall_iiiiiijjjii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(zl=p.dynCall_iiiiiijjjii=ye.yi)(h,b,k,y,D,F,N,H,Z,te,pe),h0=p.dynCall_iiijiii=(h,b,k,y,D,F,N)=>(h0=p.dynCall_iiijiii=ye.zi)(h,b,k,y,D,F,N),Nl=p.dynCall_iiiiiiiijjjfi=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(Nl=p.dynCall_iiiiiiiijjjfi=ye.Ai)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),Ll=p.dynCall_iijiiii=(h,b,k,y,D,F,N)=>(Ll=p.dynCall_iijiiii=ye.Bi)(h,b,k,y,D,F,N),gi=p.dynCall_viiiijj=(h,b,k,y,D,F,N)=>(gi=p.dynCall_viiiijj=ye.Ci)(h,b,k,y,D,F,N),jl=p.dynCall_iijjjii=(h,b,k,y,D,F,N)=>(jl=p.dynCall_iijjjii=ye.Di)(h,b,k,y,D,F,N),Rl=p.dynCall_jij=(h,b,k)=>(Rl=p.dynCall_jij=ye.Ei)(h,b,k),Wl=p.dynCall_jjj=(h,b,k)=>(Wl=p.dynCall_jjj=ye.Fi)(h,b,k),Vl=p.dynCall_iiji=(h,b,k,y)=>(Vl=p.dynCall_iiji=ye.Gi)(h,b,k,y),m0=p.dynCall_viffiii=(h,b,k,y,D,F,N)=>(m0=p.dynCall_viffiii=ye.Hi)(h,b,k,y,D,F,N),Yl=p.dynCall_viifiii=(h,b,k,y,D,F,N)=>(Yl=p.dynCall_viifiii=ye.Ii)(h,b,k,y,D,F,N),Hl=p.dynCall_viiiiidiidi=(h,b,k,y,D,F,N,H,Z,te,pe)=>(Hl=p.dynCall_viiiiidiidi=ye.Ji)(h,b,k,y,D,F,N,H,Z,te,pe),Ul=p.dynCall_viiiiiiiiidi=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(Ul=p.dynCall_viiiiiiiiidi=ye.Ki)(h,b,k,y,D,F,N,H,Z,te,pe,he),Kl=p.dynCall_viiiiiiiiiiiiiifi=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)=>(Kl=p.dynCall_viiiiiiiiiiiiiifi=ye.Li)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA),Bo=p.dynCall_ijii=(h,b,k,y)=>(Bo=p.dynCall_ijii=ye.Mi)(h,b,k,y),Xl=p.dynCall_viijiiiijiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(Xl=p.dynCall_viijiiiijiii=ye.Ni)(h,b,k,y,D,F,N,H,Z,te,pe,he),Zl=p.dynCall_vijjjjjjjjjjjjji=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)=>(Zl=p.dynCall_vijjjjjjjjjjjjji=ye.Oi)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA),Jl=p.dynCall_viiijii=(h,b,k,y,D,F,N)=>(Jl=p.dynCall_viiijii=ye.Pi)(h,b,k,y,D,F,N),Kn=p.dynCall_vijjjiiji=(h,b,k,y,D,F,N,H,Z)=>(Kn=p.dynCall_vijjjiiji=ye.Qi)(h,b,k,y,D,F,N,H,Z),ql=p.dynCall_iiiijiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(ql=p.dynCall_iiiijiiiiiiiiii=ye.Ri)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),$l=p.dynCall_iiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te)=>($l=p.dynCall_iiiiiiiiii=ye.Si)(h,b,k,y,D,F,N,H,Z,te),e2=p.dynCall_vj=(h,b)=>(e2=p.dynCall_vj=ye.Ti)(h,b),A2=p.dynCall_vfiii=(h,b,k,y,D)=>(A2=p.dynCall_vfiii=ye.Ui)(h,b,k,y,D),Do=p.dynCall_viiiiff=(h,b,k,y,D,F,N)=>(Do=p.dynCall_viiiiff=ye.Vi)(h,b,k,y,D,F,N),t2=p.dynCall_viiiiiff=(h,b,k,y,D,F,N,H)=>(t2=p.dynCall_viiiiiff=ye.Wi)(h,b,k,y,D,F,N,H),r2=p.dynCall_viiff=(h,b,k,y,D)=>(r2=p.dynCall_viiff=ye.Xi)(h,b,k,y,D),a2=p.dynCall_viiiiiiiiifiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(a2=p.dynCall_viiiiiiiiifiiii=ye.Yi)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),A1=p.dynCall_viiiiiiiijj=(h,b,k,y,D,F,N,H,Z,te,pe)=>(A1=p.dynCall_viiiiiiiijj=ye.Zi)(h,b,k,y,D,F,N,H,Z,te,pe),s2=p.dynCall_iiiiiiiiiiiiiifii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)=>(s2=p.dynCall_iiiiiiiiiiiiiifii=ye._i)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA),i2=p.dynCall_viiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(i2=p.dynCall_viiiiiiiiiiiii=ye.$i)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),n2=p.dynCall_iiiiiiiiiiiiiiiiiiifii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr)=>(n2=p.dynCall_iiiiiiiiiiiiiiiiiiifii=ye.aj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr),sn=p.dynCall_vijjiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(sn=p.dynCall_vijjiiiiiii=ye.bj)(h,b,k,y,D,F,N,H,Z,te,pe),o2=p.dynCall_iiiijjj=(h,b,k,y,D,F,N)=>(o2=p.dynCall_iiiijjj=ye.cj)(h,b,k,y,D,F,N),l2=p.dynCall_fffffff=(h,b,k,y,D,F,N)=>(l2=p.dynCall_fffffff=ye.dj)(h,b,k,y,D,F,N),c2=p.dynCall_viiiiiijiifiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(c2=p.dynCall_viiiiiijiifiii=ye.ej)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),u2=p.dynCall_vjjjjjjffjifiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA)=>(u2=p.dynCall_vjjjjjjffjifiiiiii=ye.fj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA),d2=p.dynCall_viiiiiiffjifiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)=>(d2=p.dynCall_viiiiiiffjifiiiii=ye.gj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA),f2=p.dynCall_viiiiiiffjfiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)=>(f2=p.dynCall_viiiiiiffjfiiiii=ye.hj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA),g2=p.dynCall_viiiiiiffjiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(g2=p.dynCall_viiiiiiffjiiiii=ye.ij)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),To=p.dynCall_vjjjjjjjjfffjifiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)=>(To=p.dynCall_vjjjjjjjjfffjifiiiiii=ye.jj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt),t1=p.dynCall_vjjjjjjfffifijiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt)=>(t1=p.dynCall_vjjjjjjfffifijiiiii=ye.kj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt),p2=p.dynCall_vjjjjjjfffifiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA)=>(p2=p.dynCall_vjjjjjjfffifiiiiii=ye.lj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA),h2=p.dynCall_vjjjjjjjjfffiiifiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)=>(h2=p.dynCall_vjjjjjjjjfffiiifiiiii=ye.mj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt),m2=p.dynCall_vijiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(m2=p.dynCall_vijiiiiiiiiii=ye.nj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),C2=p.dynCall_vijjfffiii=(h,b,k,y,D,F,N,H,Z,te)=>(C2=p.dynCall_vijjfffiii=ye.oj)(h,b,k,y,D,F,N,H,Z,te),b2=p.dynCall_jiijjiif=(h,b,k,y,D,F,N,H)=>(b2=p.dynCall_jiijjiif=ye.pj)(h,b,k,y,D,F,N,H),C0=p.dynCall_vijjjjjjifiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(C0=p.dynCall_vijjjjjjifiiiii=ye.qj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),I2=p.dynCall_vjjjjjiiii=(h,b,k,y,D,F,N,H,Z,te)=>(I2=p.dynCall_vjjjjjiiii=ye.rj)(h,b,k,y,D,F,N,H,Z,te),w2=p.dynCall_vjjjjfiii=(h,b,k,y,D,F,N,H,Z)=>(w2=p.dynCall_vjjjjfiii=ye.sj)(h,b,k,y,D,F,N,H,Z),b0=p.dynCall_viiiiiijiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(b0=p.dynCall_viiiiiijiiiiii=ye.tj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),k2=p.dynCall_vijjii=(h,b,k,y,D,F)=>(k2=p.dynCall_vijjii=ye.uj)(h,b,k,y,D,F),E2=p.dynCall_viiiiijjiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(E2=p.dynCall_viiiiijjiiiii=ye.vj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),I0=p.dynCall_iiiiiji=(h,b,k,y,D,F,N)=>(I0=p.dynCall_iiiiiji=ye.wj)(h,b,k,y,D,F,N),M2=p.dynCall_viiiiijiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(M2=p.dynCall_viiiiijiiiiii=ye.xj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),v2=p.dynCall_iiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(v2=p.dynCall_iiiiiiiiiiii=ye.yj)(h,b,k,y,D,F,N,H,Z,te,pe,he),Go=p.dynCall_viiijiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(Go=p.dynCall_viiijiiiiii=ye.zj)(h,b,k,y,D,F,N,H,Z,te,pe),y2=p.dynCall_viiiijii=(h,b,k,y,D,F,N,H)=>(y2=p.dynCall_viiiijii=ye.Aj)(h,b,k,y,D,F,N,H),x2=p.dynCall_viijjiii=(h,b,k,y,D,F,N,H)=>(x2=p.dynCall_viijjiii=ye.Bj)(h,b,k,y,D,F,N,H),B2=p.dynCall_viiiji=(h,b,k,y,D,F)=>(B2=p.dynCall_viiiji=ye.Cj)(h,b,k,y,D,F),D2=p.dynCall_viiiiiijii=(h,b,k,y,D,F,N,H,Z,te)=>(D2=p.dynCall_viiiiiijii=ye.Dj)(h,b,k,y,D,F,N,H,Z,te),w0=p.dynCall_viiiiijjji=(h,b,k,y,D,F,N,H,Z,te)=>(w0=p.dynCall_viiiiijjji=ye.Ej)(h,b,k,y,D,F,N,H,Z,te),Po=p.dynCall_vijiii=(h,b,k,y,D,F)=>(Po=p.dynCall_vijiii=ye.Fj)(h,b,k,y,D,F),r1=p.dynCall_iiijiiii=(h,b,k,y,D,F,N,H)=>(r1=p.dynCall_iiijiiii=ye.Gj)(h,b,k,y,D,F,N,H),T2=p.dynCall_viiiiiijjiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(T2=p.dynCall_viiiiiijjiiiii=ye.Hj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),G2=p.dynCall_viiiiiiijiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(G2=p.dynCall_viiiiiiijiiiiii=ye.Ij)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),k0=p.dynCall_viiiiiji=(h,b,k,y,D,F,N,H)=>(k0=p.dynCall_viiiiiji=ye.Jj)(h,b,k,y,D,F,N,H),P2=p.dynCall_fiif=(h,b,k,y)=>(P2=p.dynCall_fiif=ye.Kj)(h,b,k,y),Q2=p.dynCall_viijjjiii=(h,b,k,y,D,F,N,H,Z)=>(Q2=p.dynCall_viijjjiii=ye.Lj)(h,b,k,y,D,F,N,H,Z),E0=p.dynCall_viiiiiifiii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(E0=p.dynCall_viiiiiifiii=ye.Mj)(h,b,k,y,D,F,N,H,Z,te,pe),S2=p.dynCall_viijji=(h,b,k,y,D,F)=>(S2=p.dynCall_viijji=ye.Nj)(h,b,k,y,D,F),F2=p.dynCall_iiiiiiiiiiijijji=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)=>(F2=p.dynCall_iiiiiiiiiiijijji=ye.Oj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA),M0=p.dynCall_jiijjiii=(h,b,k,y,D,F,N,H)=>(M0=p.dynCall_jiijjiii=ye.Pj)(h,b,k,y,D,F,N,H),a1=p.dynCall_viifiifijjjii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(a1=p.dynCall_viifiifijjjii=ye.Qj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),s1=p.dynCall_viiiiiiiiiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr,xa,pi)=>(s1=p.dynCall_viiiiiiiiiiiiiiiiiiiiiii=ye.Rj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr,xa,pi),v0=p.dynCall_viiiiifiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(v0=p.dynCall_viiiiifiiiiii=ye.Sj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),Qo=p.dynCall_vijjiiiiii=(h,b,k,y,D,F,N,H,Z,te)=>(Qo=p.dynCall_vijjiiiiii=ye.Tj)(h,b,k,y,D,F,N,H,Z,te),O2=p.dynCall_vijiiiiiiijjii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(O2=p.dynCall_vijiiiiiiijjii=ye.Uj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),_2=p.dynCall_viiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(_2=p.dynCall_viiiiiiiiiiii=ye.Vj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),z2=p.dynCall_viiiiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt)=>(z2=p.dynCall_viiiiiiiiiiiiiiiiii=ye.Wj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt),So=p.dynCall_viiiiiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt)=>(So=p.dynCall_viiiiiiiiiiiiiiiiiii=ye.Xj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt),N2=p.dynCall_viiijiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt)=>(N2=p.dynCall_viiijiiiiiiiiiiiiiii=ye.Yj)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt),L2=p.dynCall_viiiijjj=(h,b,k,y,D,F,N,H)=>(L2=p.dynCall_viiiijjj=ye.Zj)(h,b,k,y,D,F,N,H),j2=p.dynCall_viiiiiiijjj=(h,b,k,y,D,F,N,H,Z,te,pe)=>(j2=p.dynCall_viiiiiiijjj=ye._j)(h,b,k,y,D,F,N,H,Z,te,pe),Fo=p.dynCall_iiiiiiiiiiiiiiiiiiiifi=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr)=>(Fo=p.dynCall_iiiiiiiiiiiiiiiiiiiifi=ye.$j)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr),R2=p.dynCall_viiijiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(R2=p.dynCall_viiijiiiiiiiiii=ye.ak)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),W2=p.dynCall_viiiiif=(h,b,k,y,D,F,N)=>(W2=p.dynCall_viiiiif=ye.bk)(h,b,k,y,D,F,N),V2=p.dynCall_viiif=(h,b,k,y,D)=>(V2=p.dynCall_viiif=ye.ck)(h,b,k,y,D),Oo=p.dynCall_viiiiiiiiifi=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(Oo=p.dynCall_viiiiiiiiifi=ye.dk)(h,b,k,y,D,F,N,H,Z,te,pe,he),Y2=p.dynCall_viiiiid=(h,b,k,y,D,F,N)=>(Y2=p.dynCall_viiiiid=ye.ek)(h,b,k,y,D,F,N),H2=p.dynCall_viiid=(h,b,k,y,D)=>(H2=p.dynCall_viiid=ye.fk)(h,b,k,y,D),U2=p.dynCall_iiif=(h,b,k,y)=>(U2=p.dynCall_iiif=ye.gk)(h,b,k,y),K2=p.dynCall_iiiij=(h,b,k,y,D)=>(K2=p.dynCall_iiiij=ye.hk)(h,b,k,y,D),X2=p.dynCall_iiiiiif=(h,b,k,y,D,F,N)=>(X2=p.dynCall_iiiiiif=ye.ik)(h,b,k,y,D,F,N),Z2=p.dynCall_vijij=(h,b,k,y,D)=>(Z2=p.dynCall_vijij=ye.jk)(h,b,k,y,D),J2=p.dynCall_viiijji=(h,b,k,y,D,F,N)=>(J2=p.dynCall_viiijji=ye.kk)(h,b,k,y,D,F,N),q2=p.dynCall_viiiiiiffii=(h,b,k,y,D,F,N,H,Z,te,pe)=>(q2=p.dynCall_viiiiiiffii=ye.lk)(h,b,k,y,D,F,N,H,Z,te,pe),$2=p.dynCall_iifii=(h,b,k,y,D)=>($2=p.dynCall_iifii=ye.mk)(h,b,k,y,D),ec=p.dynCall_viiiiifi=(h,b,k,y,D,F,N,H)=>(ec=p.dynCall_viiiiifi=ye.nk)(h,b,k,y,D,F,N,H),y0=p.dynCall_iifjii=(h,b,k,y,D,F)=>(y0=p.dynCall_iifjii=ye.ok)(h,b,k,y,D,F),Ac=p.dynCall_vidi=(h,b,k,y)=>(Ac=p.dynCall_vidi=ye.pk)(h,b,k,y),tc=p.dynCall_viiijiji=(h,b,k,y,D,F,N,H)=>(tc=p.dynCall_viiijiji=ye.qk)(h,b,k,y,D,F,N,H),x0=p.dynCall_viiijij=(h,b,k,y,D,F,N)=>(x0=p.dynCall_viiijij=ye.rk)(h,b,k,y,D,F,N),rc=p.dynCall_vijjj=(h,b,k,y,D)=>(rc=p.dynCall_vijjj=ye.sk)(h,b,k,y,D),ac=p.dynCall_vjiij=(h,b,k,y,D)=>(ac=p.dynCall_vjiij=ye.tk)(h,b,k,y,D),sc=p.dynCall_diiiii=(h,b,k,y,D,F)=>(sc=p.dynCall_diiiii=ye.uk)(h,b,k,y,D,F),ic=p.dynCall_diiii=(h,b,k,y,D)=>(ic=p.dynCall_diiii=ye.vk)(h,b,k,y,D),_o=p.dynCall_iiiji=(h,b,k,y,D)=>(_o=p.dynCall_iiiji=ye.wk)(h,b,k,y,D),nc=p.dynCall_ijiijji=(h,b,k,y,D,F,N)=>(nc=p.dynCall_ijiijji=ye.xk)(h,b,k,y,D,F,N),oc=p.dynCall_viiijjiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he)=>(oc=p.dynCall_viiijjiiiiii=ye.yk)(h,b,k,y,D,F,N,H,Z,te,pe,he),lc=p.dynCall_viijjijjjjiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)=>(lc=p.dynCall_viijjijjjjiii=ye.zk)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve),cc=p.dynCall_ijiii=(h,b,k,y,D)=>(cc=p.dynCall_ijiii=ye.Ak)(h,b,k,y,D),uc=p.dynCall_ijiiiiji=(h,b,k,y,D,F,N,H)=>(uc=p.dynCall_ijiiiiji=ye.Bk)(h,b,k,y,D,F,N,H),zo=p.dynCall_iiifi=(h,b,k,y,D)=>(zo=p.dynCall_iiifi=ye.Ck)(h,b,k,y,D),dc=p.dynCall_ijiij=(h,b,k,y,D)=>(dc=p.dynCall_ijiij=ye.Dk)(h,b,k,y,D),fc=p.dynCall_viijiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)=>(fc=p.dynCall_viijiiiiiiiiii=ye.Ek)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le),gc=p.dynCall_fiiii=(h,b,k,y,D)=>(gc=p.dynCall_fiiii=ye.Fk)(h,b,k,y,D),pc=p.dynCall_jfi=(h,b,k)=>(pc=p.dynCall_jfi=ye.Gk)(h,b,k),hc=p.dynCall_viiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)=>(hc=p.dynCall_viiiiiiiiiiiiii=ye.Hk)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe),No=p.dynCall_viiiiiiiiiiiiiiiiiiii=(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)=>(No=p.dynCall_viiiiiiiiiiiiiiiiiiii=ye.Ik)(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt),mc=p.dynCall_fiii=(h,b,k,y)=>(mc=p.dynCall_fiii=ye.Jk)(h,b,k,y),Cc=h=>(Cc=ye.Kk)(h),bc=()=>(bc=ye.Lk)(),Vt=h=>(Vt=ye.Mk)(h),i1=()=>(i1=ye.Nk)();function Uu(h,b,k,y){var D=de();try{return it(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function Ku(h,b,k){var y=de();try{return kt(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function Xu(h,b,k){var y=de();try{WA(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function Ic(h,b){var k=de();try{return Gt(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function n1(h,b){var k=de();try{Xt(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function o1(h){var b=de();try{tr(h)}catch(k){if(ne(b),k!==k+0)throw k;J(1,0)}}function l1(h,b,k,y,D,F,N){var H=de();try{return Nt(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function c1(h,b,k,y,D){var F=de();try{ta(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function wc(h,b,k,y,D,F){var N=de();try{return pr(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function kc(h,b,k,y){var D=de();try{rr(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function Zu(h,b,k,y,D,F,N){var H=de();try{ma(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function u1(h,b,k,y,D){var F=de();try{Zr(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function d1(h,b,k,y,D){var F=de();try{return Sr(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function Ec(h,b,k,y,D,F,N){var H=de();try{$0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function f1(h,b,k,y,D,F){var N=de();try{Aa(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function g1(h){var b=de();try{return Er(h)}catch(k){if(ne(b),k!==k+0)throw k;J(1,0)}}function Ju(h,b,k,y){var D=de();try{return ui(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function p1(h,b,k,y,D,F){var N=de();try{Bs(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function h1(h,b,k,y){var D=de();try{return fi(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;return J(1,0),0n}}function m1(h,b,k,y,D,F,N){var H=de();try{Yn(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function Xn(h,b,k){var y=de();try{an(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function C1(h,b,k,y){var D=de();try{Hn(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function b1(h,b,k){var y=de();try{return di(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function I1(h,b,k){var y=de();try{return U0(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function w1(h,b,k,y,D){var F=de();try{a0(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function k1(h,b,k,y,D,F,N,H){var Z=de();try{X0(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function E1(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{return yo(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function M1(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{return J0(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function v1(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{q0(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function qu(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{el(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function y1(h,b,k,y,D,F,N,H,Z){var te=de();try{return Z0(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function x1(h,b){var k=de();try{return Al(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function B1(h,b){var k=de();try{return tl(h,b)}catch(y){if(ne(k),y!==y+0)throw y;return J(1,0),0n}}function D1(h,b){var k=de();try{return rl(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function T1(h,b,k,y){var D=de();try{$a(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function G1(h,b,k,y,D,F,N){var H=de();try{Jl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function $u(h,b,k,y,D,F,N){var H=de();try{xo(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function P1(h,b,k,y,D,F,N,H){var Z=de();try{y2(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function Mc(h,b,k,y,D,F,N,H,Z){var te=de();try{il(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function Q1(h,b,k,y){var D=de();try{i0(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function S1(h,b,k,y,D,F,N,H,Z){var te=de();try{return nl(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function F1(h,b,k,y,D,F,N,H){var Z=de();try{return ol(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function O1(h,b,k,y,D){var F=de();try{ll(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function _1(h,b,k){var y=de();try{return al(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;return J(1,0),0n}}function z1(h,b,k,y,D,F,N){var H=de();try{cl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function N1(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{ul(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function L1(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{dl(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function j1(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{return fl(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function R1(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{gl(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function W1(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA){var KA=de();try{o0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)}catch(pt){if(ne(KA),pt!==pt+0)throw pt;J(1,0)}}function V1(h,b,k,y){var D=de();try{pl(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function Y1(h,b,k){var y=de();try{hl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function H1(h,b,k,y,D){var F=de();try{Hs(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function U1(h,b,k,y,D){var F=de();try{es(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function K1(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{l0(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function X1(h,b,k){var y=de();try{return Cl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function Z1(h,b,k,y,D,F){var N=de();try{bl(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function J1(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{Il(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function q1(h,b,k,y,D,F,N,H,Z){var te=de();try{ml(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function $1(h,b){var k=de();try{return Ml(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function eu(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{fc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function Au(h,b,k,y,D,F){var N=de();try{return kl(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function tu(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA){var vA=de();try{u0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)}catch(KA){if(ne(vA),KA!==KA+0)throw KA;J(1,0)}}function ru(h,b,k,y){var D=de();try{return xl(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;return J(1,0),0n}}function au(h,b,k,y,D,F){var N=de();try{return El(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function su(h,b,k,y,D,F,N,H){var Z=de();try{yl(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function iu(h,b,k,y,D,F,N,H,Z){var te=de();try{f0(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function nu(h,b,k,y,D,F,N){var H=de();try{d0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function ou(h,b,k,y,D,F){var N=de();try{return vl(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function ed(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{return Bl(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function Et(h,b,k,y,D,F,N){var H=de();try{return Dl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function lu(h,b,k,y,D,F){var N=de();try{return Tl(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function Ca(h,b){var k=de();try{return c0(h,b)}catch(y){if(ne(k),y!==y+0)throw y;return J(1,0),0n}}function va(h,b,k,y,D,F,N){var H=de();try{return wl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function Fa(h,b,k){var y=de();try{Pl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function nn(h,b,k,y,D,F,N,H){var Z=de();try{return g0(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function Ad(h,b,k,y,D,F,N,H,Z){var te=de();try{Gl(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function cu(h,b,k,y){var D=de();try{Ql(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function uu(h,b,k,y,D,F,N,H){var Z=de();try{return Sl(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function U(h,b,k,y,D,F){var N=de();try{return Fl(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function Ae(h,b,k,y,D,F){var N=de();try{return Ol(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function fe(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{return p0(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function We(h,b,k,y,D,F,N,H){var Z=de();try{return _l(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function rA(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{return zl(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function AA(h,b,k,y,D,F,N){var H=de();try{return h0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function uA(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{return Nl(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function kA(h,b,k,y,D,F,N){var H=de();try{return Ll(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function PA(h,b,k,y,D,F,N){var H=de();try{gi(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function LA(h,b,k,y,D,F,N){var H=de();try{return jl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function ut(h,b,k){var y=de();try{return Rl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;return J(1,0),0n}}function bt(h,b,k){var y=de();try{return Wl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;return J(1,0),0n}}function ot(h,b,k,y){var D=de();try{return Vl(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function Dt(h,b,k,y,D,F,N){var H=de();try{m0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function mt(h,b,k,y,D,F,N){var H=de();try{Yl(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function vt(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{Hl(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function At(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA){var KA=de();try{Kl(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)}catch(pt){if(ne(KA),pt!==pt+0)throw pt;J(1,0)}}function Ft(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{Xl(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function ur(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA){var vA=de();try{Zl(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)}catch(KA){if(ne(vA),KA!==KA+0)throw KA;J(1,0)}}function Mr(h,b,k,y,D,F,N,H,Z){var te=de();try{Kn(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function jr(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{return ql(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function Fr(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{return $l(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function ra(h,b){var k=de();try{e2(h,b)}catch(y){if(ne(k),y!==y+0)throw y;J(1,0)}}function ba(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{a2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function Tt(h,b,k,y,D){var F=de();try{A2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function oa(h,b,k,y,D,F,N){var H=de();try{Do(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function us(h,b,k,y,D){var F=de();try{r2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function on(h,b,k,y,D,F,N,H){var Z=de();try{t2(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function Va(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{A1(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function Cs(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA){var KA=de();try{return s2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)}catch(pt){if(ne(KA),pt!==pt+0)throw pt;J(1,0)}}function B0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{i2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function ln(h,b,k,y,D){var F=de();try{return gc(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function D0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr){var xa=de();try{return n2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr)}catch(pi){if(ne(xa),pi!==pi+0)throw pi;J(1,0)}}function T0(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{sn(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function vr(h,b,k,y,D,F,N){var H=de();try{return o2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function la(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{c2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function Li(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA){var pt=de();try{u2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA)}catch(Pt){if(ne(pt),Pt!==Pt+0)throw Pt;J(1,0)}}function cn(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA){var KA=de();try{d2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA)}catch(pt){if(ne(KA),pt!==pt+0)throw pt;J(1,0)}}function Zn(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA){var vA=de();try{f2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)}catch(KA){if(ne(vA),KA!==KA+0)throw KA;J(1,0)}}function G0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{g2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function vc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt){var Rr=de();try{To(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)}catch(xa){if(ne(Rr),xa!==xa+0)throw xa;J(1,0)}}function yc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt){var Pt=de();try{t1(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt)}catch(Zt){if(ne(Pt),Zt!==Zt+0)throw Zt;J(1,0)}}function xc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA){var pt=de();try{p2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA)}catch(Pt){if(ne(pt),Pt!==Pt+0)throw Pt;J(1,0)}}function td(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt){var Rr=de();try{h2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)}catch(xa){if(ne(Rr),xa!==xa+0)throw xa;J(1,0)}}function Bc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{m2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function P0(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{C2(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function Dc(h,b,k,y,D,F,N,H){var Z=de();try{return b2(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;return J(1,0),0n}}function du(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{C0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function Tc(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{I2(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function Q0(h,b,k,y,D,F,N,H,Z){var te=de();try{w2(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function rd(h,b,k,y,D,F,N){var H=de();try{return l2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function ad(h,b,k){var y=de();try{return pc(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;return J(1,0),0n}}function sd(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{b0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function un(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{E2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function Ds(h,b,k,y,D,F,N){var H=de();try{return I0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function a6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{M2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function s6(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{return v2(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function i6(h,b,k,y,D,F){var N=de();try{k2(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function n6(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{Go(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function o6(h,b,k,y,D,F,N,H){var Z=de();try{x2(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function l6(h,b,k,y,D,F){var N=de();try{B2(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function c6(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{D2(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function u6(h,b,k,y){var D=de();try{return Bo(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function d6(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{w0(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function f6(h,b,k,y,D,F){var N=de();try{Po(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function g6(h,b,k){var y=de();try{return n0(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function p6(h,b,k,y,D,F,N,H){var Z=de();try{return r1(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function h6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{hc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function m6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{T2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function C6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{G2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function b6(h,b,k,y,D,F,N,H){var Z=de();try{k0(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function I6(h,b,k,y){var D=de();try{return P2(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function w6(h,b,k){var y=de();try{return sl(h,b,k)}catch(D){if(ne(y),D!==D+0)throw D;J(1,0)}}function k6(h,b,k,y,D,F,N,H,Z){var te=de();try{Q2(h,b,k,y,D,F,N,H,Z)}catch(pe){if(ne(te),pe!==pe+0)throw pe;J(1,0)}}function E6(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{E0(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function M6(h,b,k,y,D,F){var N=de();try{S2(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function v6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA){var vA=de();try{return F2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA)}catch(KA){if(ne(vA),KA!==KA+0)throw KA;J(1,0)}}function y6(h,b,k,y,D,F,N,H){var Z=de();try{return M0(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;return J(1,0),0n}}function x6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{a1(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function B6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr,xa,pi){var kI=de();try{s1(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr,xa,pi)}catch(id){if(ne(kI),id!==id+0)throw id;J(1,0)}}function D6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{v0(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function T6(h,b,k,y,D,F,N,H,Z,te){var pe=de();try{Qo(h,b,k,y,D,F,N,H,Z,te)}catch(he){if(ne(pe),he!==he+0)throw he;J(1,0)}}function G6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le){var qe=de();try{O2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le)}catch(hA){if(ne(qe),hA!==hA+0)throw hA;J(1,0)}}function P6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt){var Zt=de();try{N2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt)}catch(Rr){if(ne(Zt),Rr!==Rr+0)throw Rr;J(1,0)}}function Q6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt){var Rr=de();try{No(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt)}catch(xa){if(ne(Rr),xa!==xa+0)throw xa;J(1,0)}}function S6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt){var Zt=de();try{So(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt)}catch(Rr){if(ne(Zt),Rr!==Rr+0)throw Rr;J(1,0)}}function F6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{_2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function O6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt){var Pt=de();try{z2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt)}catch(Zt){if(ne(Pt),Zt!==Zt+0)throw Zt;J(1,0)}}function _6(h,b,k,y,D,F,N,H){var Z=de();try{L2(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function z6(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{j2(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function N6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr){var xa=de();try{return Fo(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe,hA,vA,KA,pt,Pt,Zt,Rr)}catch(pi){if(ne(xa),pi!==pi+0)throw pi;J(1,0)}}function L6(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe){var hA=de();try{R2(h,b,k,y,D,F,N,H,Z,te,pe,he,ve,Le,qe)}catch(vA){if(ne(hA),vA!==vA+0)throw vA;J(1,0)}}function j6(h,b,k,y,D,F,N){var H=de();try{W2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function R6(h,b,k,y,D){var F=de();try{V2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function W6(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{Oo(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function V6(h,b,k,y,D,F,N){var H=de();try{Y2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function Y6(h,b,k,y,D){var F=de();try{H2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function H6(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{Ul(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function U6(h,b,k,y,D,F,N){var H=de();try{return X2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function K6(h,b,k,y,D){var F=de();try{Z2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function X6(h,b,k,y,D,F,N){var H=de();try{J2(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function Z6(h,b,k,y,D,F,N,H,Z,te,pe){var he=de();try{q2(h,b,k,y,D,F,N,H,Z,te,pe)}catch(ve){if(ne(he),ve!==ve+0)throw ve;J(1,0)}}function J6(h,b,k,y,D){var F=de();try{return $2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function q6(h,b,k,y,D,F,N,H){var Z=de();try{ec(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function $6(h,b,k,y,D,F){var N=de();try{return y0(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function eI(h,b,k,y){var D=de();try{Ac(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function AI(h,b,k,y,D,F,N,H){var Z=de();try{tc(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function tI(h,b,k,y,D,F,N){var H=de();try{x0(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function rI(h,b,k,y,D){var F=de();try{rc(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function aI(h,b,k,y,D){var F=de();try{return K2(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function sI(h,b,k,y){var D=de();try{return U2(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function iI(h,b,k,y){var D=de();try{return mc(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function nI(h,b,k,y,D){var F=de();try{ac(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function oI(h,b,k,y){var D=de();try{return Wa(h,b,k,y)}catch(F){if(ne(D),F!==F+0)throw F;J(1,0)}}function lI(h,b,k,y,D,F){var N=de();try{return sc(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function cI(h,b,k,y,D){var F=de();try{return ic(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function uI(h,b,k,y,D){var F=de();try{return _o(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function dI(h,b,k,y,D,F,N){var H=de();try{return nc(h,b,k,y,D,F,N)}catch(Z){if(ne(H),Z!==Z+0)throw Z;J(1,0)}}function fI(h,b,k,y,D,F,N,H,Z,te,pe,he){var ve=de();try{oc(h,b,k,y,D,F,N,H,Z,te,pe,he)}catch(Le){if(ne(ve),Le!==Le+0)throw Le;J(1,0)}}function gI(h,b,k,y,D){var F=de();try{return cc(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function pI(h,b,k,y,D,F,N,H,Z,te,pe,he,ve){var Le=de();try{lc(h,b,k,y,D,F,N,H,Z,te,pe,he,ve)}catch(qe){if(ne(Le),qe!==qe+0)throw qe;J(1,0)}}function hI(h,b,k,y,D,F,N,H){var Z=de();try{return uc(h,b,k,y,D,F,N,H)}catch(te){if(ne(Z),te!==te+0)throw te;J(1,0)}}function mI(h,b,k,y,D){var F=de();try{return zo(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function CI(h,b,k,y,D){var F=de();try{return dc(h,b,k,y,D)}catch(N){if(ne(F),N!==N+0)throw N;J(1,0)}}function bI(h){var b=de();try{return s0(h)}catch(k){if(ne(b),k!==k+0)throw k;return J(1,0),0n}}function II(h,b,k,y,D,F){var N=de();try{return K0(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}function wI(h,b,k,y,D,F){var N=de();try{return Un(h,b,k,y,D,F)}catch(H){if(ne(N),H!==H+0)throw H;J(1,0)}}return p.stackSave=()=>de(),p.stackRestore=h=>ne(h),p.stackAlloc=h=>Ye(h),p.setValue=function(h,b,k="i8"){switch(k.endsWith("*")&&(k="*"),k){case"i1":case"i8":le()[h>>>0]=b;break;case"i16":Oe()[h>>>1>>>0]=b;break;case"i32":Ve()[h>>>2>>>0]=b;break;case"i64":Qe[h>>>3]=BigInt(b);break;case"float":BA()[h>>>2>>>0]=b;break;case"double":QA()[h>>>3>>>0]=b;break;case"*":Ue()[h>>>2>>>0]=b;break;default:$(`invalid type for setValue: ${k}`)}},p.getValue=function(h,b="i8"){switch(b.endsWith("*")&&(b="*"),b){case"i1":case"i8":return le()[h>>>0];case"i16":return Oe()[h>>>1>>>0];case"i32":return Ve()[h>>>2>>>0];case"i64":return Qe[h>>>3];case"float":return BA()[h>>>2>>>0];case"double":return QA()[h>>>3>>>0];case"*":return Ue()[h>>>2>>>0];default:$(`invalid type for getValue: ${b}`)}},p.UTF8ToString=Ht,p.stringToUTF8=wa,p.lengthBytesUTF8=Ia,function h(){if(0{let b=new WeakMap,k,y,D=1;p.webgpuRegisterDevice=H=>{if(y!==void 0)throw Error("another WebGPU EP inference session is being created.");if(H){var Z=b.get(H);if(!Z){let te=((pe,he=0)=>{var ve=a(he);return he=r(he,ve),YA[ve]=pe.queue,YA[he]=pe,he})(H,Z=Xr(0));Z=[D++,Z,te],b.set(H,Z)}return k=H,y=Z[0],Z}k=void 0,y=0};let F=new Map;p.webgpuOnCreateSession=H=>{if(y!==void 0){var Z=y;if(y=void 0,H){let te=Ni(Z);F.set(H,te),Z===0&&h(k??nt(te))}k=void 0}},p.webgpuOnReleaseSession=H=>{F.delete(H)};let N=Symbol("gpuBufferMetadata");p.webgpuRegisterBuffer=(H,Z,te)=>{if(te)return H[N]=[te,NaN],te;if(te=H[N])return te[1]++,te[0];if((Z=F.get(Z))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return Z=((pe,he=0)=>(pe.mapState!="pending"||$(),he=t(he,pe.mapState=="mapped"?3:1),YA[he]=pe,pe.mapState=="mapped"&&(Kr[he]=[]),he))(H,Z),H[N]=[Z,1],Z},p.webgpuUnregisterBuffer=H=>{let Z=H[N];if(!Z)throw Error("Buffer is not registered");Z[1]--,Z[1]===0&&(li(Z[0]),delete H[N])},p.webgpuGetBuffer=H=>nt(H),p.webgpuCreateDownloader=(H,Z,te)=>{if((te=F.get(te))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let pe=nt(te),he=16*Math.ceil(Number(Z)/16);return async()=>{let ve=pe.createBuffer({size:he,usage:9});try{let Le=pe.createCommandEncoder();return Le.copyBufferToBuffer(H,0,ve,0,he),pe.queue.submit([Le.finish()]),await ve.mapAsync(GPUMapMode.READ),ve.getMappedRange().slice(0,Z)}finally{ve.destroy()}}},p.Sk=(H,Z)=>{var te=Z.buffer;let pe=Z.byteOffset,he=Z.byteLength;if(Z=16*Math.ceil(Number(he)/16),H=nt(H),!k){var ve=Ni(y);k=nt(ve)}let Le=(ve=k.createBuffer({mappedAtCreation:!0,size:Z,usage:6})).getMappedRange();new Uint8Array(Le).set(new Uint8Array(te,pe,he)),ve.unmap(),(te=k.createCommandEncoder()).copyBufferToBuffer(ve,0,H,0,Z),k.queue.submit([te.finish()]),ve.destroy()}},I}),Dm=gd,mg=(n=(s=globalThis.self)==null?void 0:s.name)==null?void 0:n.startsWith("em-pthread"),mg&&gd()}),pd,bf,Cg,Ts,Tm,gu,bg,Ig,hd,wg,md,Gm,Cd,Pm,Nf=xA(()=>{zf(),pd=typeof location>"u"?void 0:location.origin,bf=import.meta.url>"file:"&&import.meta.url<"file;",Cg=()=>{{if(bf){let s=URL;return new URL(new s("ort.bundle.min.mjs",import.meta.url).href,pd).href}return import.meta.url}},Ts=Cg(),Tm=()=>{if(Ts&&!Ts.startsWith("blob:"))return Ts.substring(0,Ts.lastIndexOf("/")+1)},gu=(s,n)=>{try{let i=n??Ts;return(i?new URL(s,i):new URL(s)).origin===pd}catch{return!1}},bg=(s,n)=>{let i=n??Ts;try{return(i?new URL(s,i):new URL(s)).href}catch{return}},Ig=(s,n)=>`${n??"./"}${s}`,hd=async s=>{let n=await(await fetch(s,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},wg=async s=>(await import(s)).default,md=(nw(),qc(ym)).default,Gm=async()=>{if(!Ts)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(gu(Ts))return[void 0,md()];let s=await hd(Ts);return[s,md(s)]},Cd=(ow(),qc(Bm)).default,Pm=async(s,n,i)=>{if(!s&&!n&&Cd&&Ts&&gu(Ts))return[void 0,Cd];{let g="ort-wasm-simd-threaded.jsep.mjs",C=s??bg(g,n),p=i&&C&&!gu(C,n),I=p?await hd(C):C??Ig(g,n);return[p?I:void 0,await wg(I)]}}}),bd,pu,Pc,Id,kg,Eg,Mg,Lf,yr,A0=xA(()=>{Nf(),pu=!1,Pc=!1,Id=!1,kg=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Eg=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},Mg=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Lf=async s=>{if(pu)return Promise.resolve();if(Pc)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Id)throw new Error("previous call to 'initializeWebAssembly()' failed.");Pc=!0;let n=s.initTimeout,i=s.numThreads;if(s.simd!==!1){if(s.simd==="relaxed"){if(!Mg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Eg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let g=kg();i>1&&!g&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+i+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),s.numThreads=i=1);let C=s.wasmPaths,p=typeof C=="string"?C:void 0,I=C==null?void 0:C.mjs,M=(I==null?void 0:I.href)??I,x=C==null?void 0:C.wasm,G=(x==null?void 0:x.href)??x,S=s.wasmBinary,[T,P]=await Pm(M,p,i>1),j=!1,L=[];if(n>0&&L.push(new Promise(K=>{setTimeout(()=>{j=!0,K()},n)})),L.push(new Promise((K,ae)=>{let Y={numThreads:i};if(S)Y.wasmBinary=S;else if(G||p)Y.locateFile=V=>G??p+V;else if(M&&M.indexOf("blob:")!==0)Y.locateFile=V=>new URL(V,M).href;else if(T){let V=Tm();V&&(Y.locateFile=ee=>V+ee)}P(Y).then(V=>{Pc=!1,pu=!0,bd=V,K(),T&&URL.revokeObjectURL(T)},V=>{Pc=!1,Id=!0,ae(V)})})),await Promise.race(L),j)throw new Error(`WebAssembly backend initializing failed due to timeout: ${n}ms`)},yr=()=>{if(pu&&bd)return bd;throw new Error("WebAssembly is not initialized yet.")}}),wi,Pu,dr,jf=xA(()=>{A0(),wi=(s,n)=>{let i=yr(),g=i.lengthBytesUTF8(s)+1,C=i._malloc(g);return i.stringToUTF8(s,C,g),n.push(C),C},Pu=(s,n,i,g)=>{if(typeof s=="object"&&s!==null){if(i.has(s))throw new Error("Circular reference in options");i.add(s)}Object.entries(s).forEach(([C,p])=>{let I=n?n+C:C;if(typeof p=="object")Pu(p,I+".",i,g);else if(typeof p=="string"||typeof p=="number")g(I,p.toString());else if(typeof p=="boolean")g(I,p?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof p}`)})},dr=s=>{let n=yr(),i=n.stackSave();try{let g=n.PTR_SIZE,C=n.stackAlloc(2*g);n._OrtGetLastError(C,C+g);let p=Number(n.getValue(C,g===4?"i32":"i64")),I=n.getValue(C+g,"*"),M=I?n.UTF8ToString(I):"";throw new Error(`${s} ERROR_CODE: ${p}, ERROR_MESSAGE: ${M}`)}finally{n.stackRestore(i)}}}),Qm,lw=xA(()=>{A0(),jf(),Qm=s=>{let n=yr(),i=0,g=[],C=s||{};try{if((s==null?void 0:s.logSeverityLevel)===void 0)C.logSeverityLevel=2;else if(typeof s.logSeverityLevel!="number"||!Number.isInteger(s.logSeverityLevel)||s.logSeverityLevel<0||s.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${s.logSeverityLevel}`);if((s==null?void 0:s.logVerbosityLevel)===void 0)C.logVerbosityLevel=0;else if(typeof s.logVerbosityLevel!="number"||!Number.isInteger(s.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${s.logVerbosityLevel}`);(s==null?void 0:s.terminate)===void 0&&(C.terminate=!1);let p=0;return(s==null?void 0:s.tag)!==void 0&&(p=wi(s.tag,g)),i=n._OrtCreateRunOptions(C.logSeverityLevel,C.logVerbosityLevel,!!C.terminate,p),i===0&&dr("Can't create run options."),(s==null?void 0:s.extra)!==void 0&&Pu(s.extra,"",new WeakSet,(I,M)=>{let x=wi(I,g),G=wi(M,g);n._OrtAddRunConfigEntry(i,x,G)!==0&&dr(`Can't set a run config entry: ${I} - ${M}.`)}),[i,g]}catch(p){throw i!==0&&n._OrtReleaseRunOptions(i),g.forEach(I=>n._free(I)),p}}}),vg,yg,xg,Qc,Bg,Sm,cw=xA(()=>{A0(),jf(),vg=s=>{switch(s){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${s}`)}},yg=s=>{switch(s){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${s}`)}},xg=s=>{s.extra||(s.extra={}),s.extra.session||(s.extra.session={});let n=s.extra.session;n.use_ort_model_bytes_directly||(n.use_ort_model_bytes_directly="1"),s.executionProviders&&s.executionProviders.some(i=>(typeof i=="string"?i:i.name)==="webgpu")&&(s.enableMemPattern=!1)},Qc=(s,n,i,g)=>{let C=wi(n,g),p=wi(i,g);yr()._OrtAddSessionConfigEntry(s,C,p)!==0&&dr(`Can't set a session config entry: ${n} - ${i}.`)},Bg=async(s,n,i)=>{for(let g of n){let C=typeof g=="string"?g:g.name,p=[];switch(C){case"webnn":if(C="WEBNN",typeof g!="string"){let S=g==null?void 0:g.deviceType;S&&Qc(s,"deviceType",S,i)}break;case"webgpu":if(C="JS",typeof g!="string"){let S=g;if(S!=null&&S.preferredLayout){if(S.preferredLayout!=="NCHW"&&S.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${S.preferredLayout}`);Qc(s,"preferredLayout",S.preferredLayout,i)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${C}`)}let I=wi(C,i),M=p.length,x=0,G=0;if(M>0){x=yr()._malloc(M*yr().PTR_SIZE),i.push(x),G=yr()._malloc(M*yr().PTR_SIZE),i.push(G);for(let S=0;S{let n=yr(),i=0,g=[],C=s||{};xg(C);try{let p=vg(C.graphOptimizationLevel??"all"),I=yg(C.executionMode??"sequential"),M=typeof C.logId=="string"?wi(C.logId,g):0,x=C.logSeverityLevel??2;if(!Number.isInteger(x)||x<0||x>4)throw new Error(`log severity level is not valid: ${x}`);let G=C.logVerbosityLevel??0;if(!Number.isInteger(G)||G<0||G>4)throw new Error(`log verbosity level is not valid: ${G}`);let S=typeof C.optimizedModelFilePath=="string"?wi(C.optimizedModelFilePath,g):0;if(i=n._OrtCreateSessionOptions(p,!!C.enableCpuMemArena,!!C.enableMemPattern,I,!!C.enableProfiling,0,M,x,G,S),i===0&&dr("Can't create session options."),C.executionProviders&&await Bg(i,C.executionProviders,g),C.enableGraphCapture!==void 0){if(typeof C.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${C.enableGraphCapture}`);Qc(i,"enableGraphCapture",C.enableGraphCapture.toString(),g)}if(C.freeDimensionOverrides)for(let[T,P]of Object.entries(C.freeDimensionOverrides)){if(typeof T!="string")throw new Error(`free dimension override name must be a string: ${T}`);if(typeof P!="number"||!Number.isInteger(P)||P<0)throw new Error(`free dimension override value must be a non-negative integer: ${P}`);let j=wi(T,g);n._OrtAddFreeDimensionOverride(i,j,P)!==0&&dr(`Can't set a free dimension override: ${T} - ${P}.`)}return C.extra!==void 0&&Pu(C.extra,"",new WeakSet,(T,P)=>{Qc(i,T,P,g)}),[i,g]}catch(p){throw i!==0&&n._OrtReleaseSessionOptions(i)!==0&&dr("Can't release session options."),g.forEach(I=>n._free(I)),p}}}),Uo,hn,Ko,Yu,Qu,Rf,Wf,If,Ct=xA(()=>{Uo=s=>{switch(s){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${s}`)}},hn=s=>{switch(s){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${s}`)}},Ko=(s,n)=>{let i=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][s],g=typeof n=="number"?n:n.reduce((C,p)=>C*p,1);return i>0?Math.ceil(g*i):void 0},Yu=s=>{switch(s){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${s}`)}},Qu=s=>{switch(s){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${s}`)}},Rf=s=>s==="float32"||s==="float16"||s==="int32"||s==="int64"||s==="uint32"||s==="uint8"||s==="bool"||s==="uint4"||s==="int4",Wf=s=>s==="float32"||s==="float16"||s==="int32"||s==="int64"||s==="uint32"||s==="uint64"||s==="int8"||s==="uint8"||s==="bool"||s==="uint4"||s==="int4",If=s=>{switch(s){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${s}`)}}}),Vf,Fm=xA(()=>{zf(),Vf=async s=>{if(typeof s=="string"){let n=await fetch(s);if(!n.ok)throw new Error(`failed to load external data file: ${s}`);let i=n.headers.get("Content-Length"),g=i?parseInt(i,10):0;if(g<1073741824)return new Uint8Array(await n.arrayBuffer());{if(!n.body)throw new Error(`failed to load external data file: ${s}, no response body.`);let C=n.body.getReader(),p;try{p=new ArrayBuffer(g)}catch(M){if(M instanceof RangeError){let x=Math.ceil(g/65536);p=new WebAssembly.Memory({initial:x,maximum:x}).buffer}else throw M}let I=0;for(;;){let{done:M,value:x}=await C.read();if(M)break;let G=x.byteLength;new Uint8Array(p,I,G).set(x),I+=G}return new Uint8Array(p,0,g)}}else return s instanceof Blob?new Uint8Array(await s.arrayBuffer()):s instanceof Uint8Array?s:new Uint8Array(s)}}),Dg,Tg,Gg,Pg,Yf,Qg,Yt,Cn=xA(()=>{Ct(),Dg=["V","I","W","E","F"],Tg=(s,n)=>{console.log(`[${Dg[s]},${new Date().toISOString()}]${n}`)},Yf=(s,n)=>{Gg=s,Pg=n},Qg=(s,n)=>{let i=Qu(s),g=Qu(Gg);i>=g&&Tg(i,typeof n=="function"?n():n)},Yt=(...s)=>{Pg&&Qg(...s)}}),Sg,R0,nA,Su,Om,_m,zm,yt=xA(()=>{Sg=class{static calcMatMulShape(s,n){return s[1]!==n[0]?void 0:[s[0],n[1]]}},R0=class{static calcShape(s,n,i=!1){let g=s.length,C=n.length;if(g===0)return n;if(C===0)return s;let p=Math.max(s.length,n.length),I=new Array(p);if(i){if(g<2||C<2)return;let M=Sg.calcMatMulShape([s[g-2],s[g-1]],[n[C-2],n[C-1]]);if(M===void 0)return;[I[p-2],I[p-1]]=M}for(let M=i?3:1;M<=p;M++){let x=g-M<0?1:s[g-M],G=C-M<0?1:n[C-M];if(x!==G&&x>1&&G>1)return;let S=Math.max(x,G);if(x&&G)I[p-M]=Math.max(x,G);else{if(S>1)return;I[p-M]=0}}return I}static isValidBroadcast(s,n){let i=s.length,g=n.length;if(i>g)return!1;for(let C=1;C<=i;C++)if(s[i-C]!==1&&s[i-C]!==n[g-C])return!1;return!0}},nA=class Du{static size(n){return Du.getSizeFromDimensionRange(n,0,n.length)}static convertShape(n,i=4){let g=n.length;if(g===0)return[];let C=new Array(g),p=g-1;for(;p>=0;){if(n[p]%i===0){C[p]=n[p]/i;break}if(i%n[p]!==0)throw new Error("cannot convert shape");C[p]=1,i/=n[p],p--}for(p--;p>=0;p--)C[p]=n[p];return C}static sizeFromDimension(n,i){if(i<0||i>n.length)throw new Error(`invalid dimension of ${i} for sizeFromDimension as Tensor has ${n.length} dimensions.`);return Du.getSizeFromDimensionRange(n,i,n.length)}static sizeToDimension(n,i){if(i<0||i>n.length)throw new Error(`invalid dimension of ${i} for sizeToDimension as Tensor has ${n.length} dimensions.`);return Du.getSizeFromDimensionRange(n,0,i)}static getSizeFromDimensionRange(n,i,g){let C=1;for(let p=i;p=0;--C)g[C]=g[C+1]*n[C+1];return g}static normalizeAxis(n,i){if(n<-i&&n>=i)throw new Error("unsupported axis for this operation.");return n<0?n+i:n}static normalizeAxes(n,i){return n.map(g=>this.normalizeAxis(g,i??n.length))}static sortBasedOnPerm(n,i){return i?i.map(g=>n[g]):n.slice().reverse()}static padShape(n,i){let g=n.length;return n.map((C,p)=>C+i[p]+i[p+g])}static areEqual(n,i){return n.length!==i.length?!1:n.every((g,C)=>g===i[C])}},Su=class Hc{static adjustPoolAttributes(n,i,g,C,p,I){if(!n&&g.length!==i.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(n)for(let M=0;M=g.length?g.push(i[M+2]):g[M]=i[M+2];for(let M=0;M=g[M]||I[M+g.length]>=g[M])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(n,i,g,C,p,I,M){if(M){if(p.length!==2*(n.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(i.length!==n.length-2)throw new Error("length of strides should be the length of data dimensions");if(C.length!==n.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let x=0;x{Ct(),Hf=(s,n)=>new(Yu(n))(s)}),wd,wf,kd,Fg,Ed,Og,Md,vd,yd,_g,Lm,uw=xA(()=>{Ct(),Cn(),wd=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),wf=(s,n)=>{if(n==="int32")return s;let i=wd.get(n);if(!i)throw new Error(`WebNN backend does not support data type: ${n}`);let g=i/8;if(s.byteLength%g!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${g}.`);let C=s.byteLength/g,p=new(Yu(n))(s.buffer,s.byteOffset,C);switch(n){case"int64":case"uint64":{let I=new Int32Array(C);for(let M=0;M2147483647n||x<-2147483648n)throw new Error("Can not convert int64 data to int32 - value out of range.");I[M]=Number(x)}return new Uint8Array(I.buffer)}case"int8":case"uint8":case"uint32":{if(n==="uint32"&&p.some(M=>M>2147483647))throw new Error("Can not convert uint32 data to int32 - value out of range.");let I=Int32Array.from(p,Number);return new Uint8Array(I.buffer)}default:throw new Error(`Unsupported data conversion from ${n} to 'int32'`)}},kd=(s,n)=>{if(n==="int32")return s;if(s.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let i=s.byteLength/4,g=new Int32Array(s.buffer,s.byteOffset,i);switch(n){case"int64":{let C=BigInt64Array.from(g,BigInt);return new Uint8Array(C.buffer)}case"uint64":{if(g.some(p=>p<0))throw new Error("Can not convert int32 data to uin64 - negative value found.");let C=BigUint64Array.from(g,BigInt);return new Uint8Array(C.buffer)}case"int8":{if(g.some(p=>p<-128||p>127))throw new Error("Can not convert int32 data to int8 - value out of range.");let C=Int8Array.from(g,Number);return new Uint8Array(C.buffer)}case"uint8":{if(g.some(C=>C<0||C>255))throw new Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(g,Number)}case"uint32":{if(g.some(p=>p<0))throw new Error("Can not convert int32 data to uint32 - negative value found.");let C=Uint32Array.from(g,Number);return new Uint8Array(C.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${n}`)}},Fg=1,Ed=()=>Fg++,Og=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),Md=(s,n)=>{let i=wd.get(s);if(!i)throw new Error(`WebNN backend does not support data type: ${s}`);return n.length>0?Math.ceil(n.reduce((g,C)=>g*C)*i/8):0},vd=class{constructor(s){this.isDataConverted=!1;let{sessionId:n,context:i,tensor:g,dataType:C,shape:p,fallbackDataType:I}=s;this.sessionId=n,this.mlContext=i,this.mlTensor=g,this.dataType=C,this.tensorShape=p,this.fallbackDataType=I}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return Md(this.dataType,this.tensorShape)}destroy(){Yt("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(s){this.mlContext.writeTensor(this.mlTensor,s)}async read(s){if(this.fallbackDataType){let n=await this.mlContext.readTensor(this.mlTensor),i=kd(new Uint8Array(n),this.dataType);if(s){(s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength)).set(i);return}else return i.buffer}else return s?this.mlContext.readTensor(this.mlTensor,s):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(s,n,i){return this.mlContext===s&&this.dataType===n&&this.tensorShape.length===i.length&&this.tensorShape.every((g,C)=>g===i[C])}setIsDataConverted(s){this.isDataConverted=s}},yd=class{constructor(s,n){this.tensorManager=s,this.wrapper=n}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(s,n,i,g){let C=this.tensorManager.getMLContext(s),p;if(!C.opSupportLimits().input.dataTypes.includes(n)){if(p=Og.get(n),!p||!C.opSupportLimits().input.dataTypes.includes(p))throw new Error(`WebNN backend does not support data type: ${n}`);Yt("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${n} to ${p}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(C,n,i))return this.wrapper.tensor;if(g){if(this.wrapper.byteLength!==Md(n,i))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let I=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(s,n,i,I,!0,!0,p),g&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(s){let n=s;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType==="int32")n=wf(s,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw new Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(s.byteLength===this.wrapper.byteLength){this.wrapper.write(n);return}else Yt("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(n):this.activeUpload=new Uint8Array(n)}async download(s){var n,i;if(this.activeUpload){let g=(n=this.wrapper)!=null&&n.isDataConverted?kd(this.activeUpload,(i=this.wrapper)==null?void 0:i.type):this.activeUpload;if(s){s instanceof ArrayBuffer?new Uint8Array(s).set(g):new Uint8Array(s.buffer,s.byteOffset,s.byteLength).set(g);return}else return g.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return s?this.wrapper.read(s):this.wrapper.read()}},_g=class{constructor(s){this.backend=s,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(s){let n=this.backend.getMLContext(s);if(!n)throw new Error("MLContext not found for session.");return n}reserveTensorId(){let s=Ed();return this.tensorTrackersById.set(s,new yd(this)),s}releaseTensorId(s){let n=this.tensorTrackersById.get(s);n&&(this.tensorTrackersById.delete(s),n.tensorWrapper&&this.releaseTensor(n.tensorWrapper))}async ensureTensor(s,n,i,g,C){Yt("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${n}, dataType: ${i}, shape: ${g}, copyOld: ${C}}`);let p=this.tensorTrackersById.get(n);if(!p)throw new Error("Tensor not found.");return p.ensureTensor(s,i,g,C)}upload(s,n){let i=this.tensorTrackersById.get(s);if(!i)throw new Error("Tensor not found.");i.upload(n)}async download(s,n){Yt("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${s}, dstBuffer: ${n==null?void 0:n.byteLength}}`);let i=this.tensorTrackersById.get(s);if(!i)throw new Error("Tensor not found.");return i.download(n)}releaseTensorsForSession(s){for(let n of this.freeTensors)n.sessionId===s&&n.destroy();this.freeTensors=this.freeTensors.filter(n=>n.sessionId!==s)}registerTensor(s,n,i,g){let C=this.getMLContext(s),p=Ed(),I=new vd({sessionId:s,context:C,tensor:n,dataType:i,shape:g});return this.tensorTrackersById.set(p,new yd(this,I)),this.externalTensors.add(I),p}async getCachedTensor(s,n,i,g,C,p,I){let M=this.getMLContext(s);for(let[G,S]of this.freeTensors.entries())if(S.canReuseTensor(M,n,i)){Yt("verbose",()=>`[WebNN] Reusing tensor {dataType: ${n}, ${I?`fallbackDataType: ${I},`:""} shape: ${i}`);let T=this.freeTensors.splice(G,1)[0];return T.sessionId=s,T}Yt("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${n}, ${I?`fallbackDataType: ${I},`:""} shape: ${i}}`);let x=await M.createTensor({dataType:I??n,shape:i,dimensions:i,usage:g,writable:C,readable:p});return new vd({sessionId:s,context:M,tensor:x,dataType:n,shape:i,fallbackDataType:I})}releaseTensor(s){this.externalTensors.has(s)&&this.externalTensors.delete(s),this.freeTensors.push(s)}},Lm=(...s)=>new _g(...s)}),Sc,zg,jm,dw=xA(()=>{Ct(),A0(),Nm(),uw(),Cn(),Sc=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),zg=(s,n)=>{if(s===n)return!0;if(s===void 0||n===void 0)return!1;let i=Object.keys(s).sort(),g=Object.keys(n).sort();return i.length===g.length&&i.every((C,p)=>C===g[p]&&s[C]===n[C])},jm=class{constructor(s){this.tensorManager=Lm(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.sessionGraphOutputs=new Map,this.temporaryGraphInputs=[],this.temporaryGraphOutputs=[],this.temporarySessionTensorIds=new Map,Yf(s.logLevel,!!s.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(s){Yt("verbose",()=>`[WebNN] onRunStart {sessionId: ${s}}`),this.activeSessionId=s}onRunEnd(s){Yt("verbose",()=>`[WebNN] onRunEnd {sessionId: ${s}}`);let n=this.temporarySessionTensorIds.get(s);if(n){for(let i of n)Yt("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${i}}`),this.tensorManager.releaseTensorId(i);this.temporarySessionTensorIds.delete(s),this.activeSessionId=void 0}}async createMLContext(s){if(s instanceof GPUDevice){let i=this.mlContextCache.findIndex(g=>g.gpuDevice===s);if(i!==-1)return this.mlContextCache[i].mlContext;{let g=await navigator.ml.createContext(s);return this.mlContextCache.push({gpuDevice:s,mlContext:g}),g}}else if(s===void 0){let i=this.mlContextCache.findIndex(g=>g.options===void 0&&g.gpuDevice===void 0);if(i!==-1)return this.mlContextCache[i].mlContext;{let g=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:g}),g}}let n=this.mlContextCache.findIndex(i=>zg(i.options,s));if(n!==-1)return this.mlContextCache[n].mlContext;{let i=await navigator.ml.createContext(s);return this.mlContextCache.push({options:s,mlContext:i}),i}}registerMLContext(s,n){this.mlContextBySessionId.set(s,n);let i=this.sessionIdsByMLContext.get(n);i||(i=new Set,this.sessionIdsByMLContext.set(n,i)),i.add(s),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(s,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(s,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(s){this.sessionGraphInputs.delete(s),this.sessionGraphOutputs.delete(s);let n=this.mlContextBySessionId.get(s);if(!n)return;this.tensorManager.releaseTensorsForSession(s),this.mlContextBySessionId.delete(s);let i=this.sessionIdsByMLContext.get(n);if(i.delete(s),i.size===0){this.sessionIdsByMLContext.delete(n);let g=this.mlContextCache.findIndex(C=>C.mlContext===n);g!==-1&&this.mlContextCache.splice(g,1)}}getMLContext(s){return this.mlContextBySessionId.get(s)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(s){Yt("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${s}}`),this.tensorManager.releaseTensorId(s)}async ensureTensor(s,n,i,g,C){let p=Sc.get(i);if(!p)throw new Error(`Unsupported ONNX data type: ${i}`);return this.tensorManager.ensureTensor(s??this.currentSessionId,n,p,g,C)}async createTemporaryTensor(s,n,i){Yt("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${n}, shape: ${i}}`);let g=Sc.get(n);if(!g)throw new Error(`Unsupported ONNX data type: ${n}`);let C=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(s,C,g,i,!1);let p=this.temporarySessionTensorIds.get(s);return p?p.push(C):this.temporarySessionTensorIds.set(s,[C]),C}uploadTensor(s,n){if(!yr().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Yt("verbose",()=>`[WebNN] uploadTensor {tensorId: ${s}, data: ${n.byteLength}}`),this.tensorManager.upload(s,n)}async downloadTensor(s,n){return this.tensorManager.download(s,n)}createMLTensorDownloader(s,n){return async()=>{let i=await this.tensorManager.download(s);return Hf(i,n)}}registerMLTensor(s,n,i,g){let C=Sc.get(i);if(!C)throw new Error(`Unsupported ONNX data type: ${i}`);let p=this.tensorManager.registerTensor(s,n,C,g);return Yt("verbose",()=>`[WebNN] registerMLTensor {tensor: ${n}, dataType: ${C}, dimensions: ${g}} -> {tensorId: ${p}}`),p}registerMLConstant(s,n,i,g,C,p,I=!1){if(!p)throw new Error("External mounted files are not available.");let M=s;s.startsWith("./")&&(M=s.substring(2));let x=p.get(M);if(!x)throw new Error(`File with name ${M} not found in preloaded files.`);if(n+i>x.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let G=x.slice(n,n+i).buffer,S;switch(C.dataType){case"float32":S=new Float32Array(G);break;case"float16":S=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(G):new Uint16Array(G);break;case"int32":S=new Int32Array(G);break;case"uint32":S=new Uint32Array(G);break;case"int64":if(I){let T=wf(new Uint8Array(G),"int64");S=new Int32Array(T.buffer),C.dataType="int32"}else S=new BigInt64Array(G);break;case"uint64":S=new BigUint64Array(G);break;case"int8":S=new Int8Array(G);break;case"int4":case"uint4":case"uint8":S=new Uint8Array(G);break;default:throw new Error(`Unsupported data type: ${C.dataType} in creating WebNN Constant from external data.`)}return Yt("verbose",()=>`[WebNN] registerMLConstant {dataType: ${C.dataType}, shape: ${C.shape}}} ${I?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),g.constant(C,S)}registerGraphInput(s){this.temporaryGraphInputs.push(s)}registerGraphOutput(s){this.temporaryGraphOutputs.push(s)}isGraphInput(s,n){let i=this.sessionGraphInputs.get(s);return i?i.includes(n):!1}isGraphOutput(s,n){let i=this.sessionGraphOutputs.get(s);return i?i.includes(n):!1}isGraphInputOutputTypeSupported(s,n,i=!0){let g=this.mlContextBySessionId.get(s),C=Sc.get(Uo(n));return typeof C>"u"?!1:i?!!(g!=null&&g.opSupportLimits().input.dataTypes.includes(C)):!!(g!=null&&g.opSupportLimits().output.dataTypes.includes(C))}flush(){}}}),Uf=xA(()=>{}),xd,hu,mu,Ng,Lg,Bd,kf,jg,Rm,fw=xA(()=>{Cn(),Uf(),xd=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),hu=[],mu=s=>Math.ceil(Number(s)/16)*16,Ng=s=>{for(let n=0;nLg++,kf=async(s,n,i,g)=>{let C=mu(i),p=s.device.createBuffer({size:C,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let I=s.getCommandEncoder();s.endComputePass(),I.copyBufferToBuffer(n,0,p,0,C),s.flush(),await p.mapAsync(GPUMapMode.READ);let M=p.getMappedRange();if(g){let x=g();return x.set(new Uint8Array(M,0,i)),x}else return new Uint8Array(M.slice(0,i))}finally{p.destroy()}},jg=class{constructor(s){this.backend=s,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[n]of xd)hu.push(n),this.freeBuffers.set(n,[]),this.freeUniformBuffers.set(n,[]);this.sessionCount=0}upload(s,n){let i=n.buffer,g=n.byteOffset,C=n.byteLength,p=mu(C),I=this.storageCache.get(s);if(!I)throw new Error("gpu data for uploading does not exist");if(Number(I.originalSize)!==C)throw new Error(`inconsistent data size. gpu data size=${I.originalSize}, data size=${C}`);let M=this.backend.device.createBuffer({mappedAtCreation:!0,size:p,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),x=M.getMappedRange();new Uint8Array(x).set(new Uint8Array(i,g,C)),M.unmap();let G=this.backend.device.createCommandEncoder();G.copyBufferToBuffer(M,0,I.gpuData.buffer,0,p),this.backend.device.queue.submit([G.finish()]),M.destroy(),Yt("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${s})`)}memcpy(s,n){let i=this.storageCache.get(s);if(!i)throw new Error("source gpu data for memcpy does not exist");let g=this.storageCache.get(n);if(!g)throw new Error("destination gpu data for memcpy does not exist");if(i.originalSize!==g.originalSize)throw new Error("inconsistent source and destination gpu data size");let C=mu(i.originalSize),p=this.backend.getCommandEncoder();this.backend.endComputePass(),p.copyBufferToBuffer(i.gpuData.buffer,0,g.gpuData.buffer,0,C)}registerExternalBuffer(s,n,i){let g;if(i){if(g=i[0],s===i[1])return Yt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${g}, buffer is the same, skip.`),g;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet. + Please use the previous external buffer!`)}else g=Bd();return this.storageCache.set(g,{gpuData:{id:g,type:0,buffer:s},originalSize:n}),Yt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${g}, registered.`),g}unregisterExternalBuffer(s){s!==void 0&&(this.storageCache.delete(s),Yt("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${s}`))}create(s,n=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let i=Ng(s),g,C=(n&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,p=(n&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(C||p){let M=(C?this.freeBuffers:this.freeUniformBuffers).get(i);M?M.length>0?g=M.pop():g=this.backend.device.createBuffer({size:i,usage:n}):g=this.backend.device.createBuffer({size:i,usage:n})}else g=this.backend.device.createBuffer({size:i,usage:n});let I={id:Bd(),type:0,buffer:g};return this.storageCache.set(I.id,{gpuData:I,originalSize:Number(s)}),Yt("verbose",()=>`[WebGPU] GpuDataManager.create(size=${s}) => id=${I.id}`),I}get(s){var n;return(n=this.storageCache.get(s))==null?void 0:n.gpuData}release(s){let n=typeof s=="bigint"?Number(s):s,i=this.storageCache.get(n);if(!i){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Yt("verbose",()=>`[WebGPU] GpuDataManager.release(id=${n}), gpuDataId=${i.gpuData.id}`),this.storageCache.delete(n),this.buffersPending.push(i.gpuData.buffer),i.originalSize}async download(s,n){let i=this.storageCache.get(Number(s));if(!i)throw new Error("data does not exist");await kf(this.backend,i.gpuData.buffer,i.originalSize,n)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let s of this.buffersPending){let n=xd.get(s.size);if((s.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let i=this.freeBuffers.get(s.size)||[];n===void 0||i.length>=n?s.destroy():i.push(s)}else if((s.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let i=this.freeUniformBuffers.get(s.size)||[];n===void 0||i.length>=n?s.destroy():i.push(s)}else s.destroy()}this.buffersPending=[]}else{let s=this.capturedPendingBuffers.get(this.backend.currentSessionId);s||(s=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,s));for(let n of this.buffersPending)s.push(n);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(s=>{s.forEach(n=>{n.destroy()})}),this.freeUniformBuffers.forEach(s=>{s.forEach(n=>{n.destroy()})}),this.storageCache.forEach(s=>{s.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(s=>{s.forEach(n=>{n.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(s){let n=this.capturedPendingBuffers.get(s);n&&(n.forEach(i=>{i.destroy()}),this.capturedPendingBuffers.delete(s)),this.sessionCount-=1,this.sessionCount===0&&(Yt("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(i=>{i.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Rm=(...s)=>new jg(...s)}),Rg,sr,aa=xA(()=>{Rg=class{constructor(s){Object.assign(this,s)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(s=>`${this[s]}`).join(";")),this.key}},sr=s=>new Rg(s)}),W0,Cu,Ba,As,lt,qr,Ef,_0,ro,at,Fc,fA,tt,Wm,Kf,Wg,Vm,Bt=xA(()=>{Ct(),yt(),W0=64,Cu=(s,n)=>{if(n===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(s)){case 10:return n>1?`vec${n}`:"f16";case 1:return n>1?`vec${n}`:"f32";case 6:return n>1?`vec${n}`:"i32";case 12:return n>1?`vec${n}`:"u32";case 7:if(n>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","i32"];case 13:if(n>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","u32"];case 9:if(n!==4)throw new Error("bool must be vec4");return["u32","vec4"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${s}`)}},Ba=(s,n=1)=>{let i=Cu(s,n);return typeof i=="string"?i:i[0]},As=(s,n=1)=>{let i=Cu(s,n);return typeof i=="string"?i:i[1]},lt=(...s)=>{let n=[];return s.forEach(i=>{i.length!==0&&n.push({type:12,data:i},{type:12,data:nA.computeStrides(i)})}),n},qr=s=>s%4===0?4:s%2===0?2:1,Ef=(s="f32",n,i="0")=>!n||n===1?`${s}(${i})`:`vec${n}<${s}>(${i})`,_0=(s,n,i)=>s==="f32"?i:n===1?`f32(${i})`:`vec${n}(${i})`,ro=(s,n)=>n===4?`(${s}.x + ${s}.y + ${s}.z + ${s}.w)`:n===2?`(${s}.x + ${s}.y)`:n===3?`(${s}.x + ${s}.y + ${s}.z)`:s,at=(s,n,i,g)=>s.startsWith("uniforms.")&&i>4?typeof n=="string"?g==="f16"?`${s}[(${n}) / 8][(${n}) % 8 / 4][(${n}) % 8 % 4]`:`${s}[(${n}) / 4][(${n}) % 4]`:g==="f16"?`${s}[${Math.floor(n/8)}][${Math.floor(n%8/4)}][${n%8%4}]`:`${s}[${Math.floor(n/4)}][${n%4}]`:i>1?`${s}[${n}]`:s,Fc=(s,n,i,g,C)=>{let p=typeof i=="number",I=p?i:i.length,M=[...new Array(I).keys()],x=I<2?"u32":I<=4?`vec${I}`:`array`,G=Cu(n,C),S=typeof G=="string"?G:G[1],T=typeof G=="string"?G:G[0],P={indices:x,value:S,storage:T,tensor:n},j=be=>typeof be=="string"?be:`${be}u`,L={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},K=p?"uniforms.":"",ae=`${K}${s}_shape`,Y=`${K}${s}_strides`,V="";for(let be=0;be ${P.indices} { + var indices: ${P.indices}; + var current = offset; + ${V} + return indices; + }`,d=be=>(L.offsetToIndices=!0,I<2?be:`o2i_${s}(${be})`),v=[];if(I>=2)for(let be=I-1;be>=0;be--)v.push(`${at(Y,be,I)} * (indices[${be}])`);let e=I<2?"":` + fn i2o_${s}(indices: ${P.indices}) -> u32 { + return ${v.join("+")}; + }`,u=be=>(L.indicesToOffset=!0,I<2?be:`i2o_${s}(${be})`),Q=(...be)=>I===0?"0u":`${P.indices}(${be.map(j).join(",")})`,oe=(be,le)=>I<2?`${be}`:`${at(be,le,I)}`,O=(be,le,Ie)=>I<2?`${be}=${Ie};`:`${at(be,le,I)}=${Ie};`,R={},De=(be,le)=>{L.broadcastedIndicesToOffset=!0;let Ie=`${le.name}broadcastedIndicesTo${s}Offset`;if(Ie in R)return`${Ie}(${be})`;let Oe=[];for(let tA=I-1;tA>=0;tA--){let Ve=le.indicesGet("outputIndices",tA+le.rank-I);Oe.push(`${oe(Y,tA)} * (${Ve} % ${oe(ae,tA)})`)}return R[Ie]=`fn ${Ie}(outputIndices: ${le.type.indices}) -> u32 { + return ${Oe.length>0?Oe.join("+"):"0u"}; + }`,`${Ie}(${be})`},ce=(be,le)=>(()=>{if(P.storage===P.value)return`${s}[${be}]=${le};`;if(P.storage==="vec2"&&P.value==="i32")return`${s}[${be}]=vec2(u32(${le}), select(0u, 0xFFFFFFFFu, ${le} < 0));`;if(P.storage==="vec2"&&P.value==="u32")return`${s}[${be}]=vec2(u32(${le}), 0u);`;if(P.storage==="u32"&&P.value==="vec4")return`${s}[${be}]=dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(${le}));`;throw new Error(`not supported combination of storage type ${P.storage} and value type ${P.value} yet`)})(),Te=be=>(()=>{if(P.storage===P.value)return`${s}[${be}]`;if(P.storage==="vec2"&&P.value==="i32")return`i32(${s}[${be}].x)`;if(P.storage==="vec2"&&P.value==="u32")return`u32(${s}[${be}].x)`;if(P.storage==="u32"&&P.value==="vec4")return`vec4(bool(${s}[${be}] & 0xFFu), bool(${s}[${be}] & 0xFF00u), bool(${s}[${be}] & 0xFF0000u), bool(${s}[${be}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${P.storage} and value type ${P.value} yet`)})(),Be=I<2?"":` + fn get_${s}ByIndices(indices: ${P.indices}) -> ${S} { + return ${Te(`i2o_${s}(indices)`)}; + }`,Qe=I<2?"":(()=>{let be=M.map(Ie=>`d${Ie}: u32`).join(", "),le=M.map(Ie=>`d${Ie}`).join(", ");return` + fn get_${s}(${be}) -> ${S} { + return get_${s}ByIndices(${Q(le)}); + }`})(),je=(...be)=>{if(be.length!==I)throw new Error(`indices length must be ${I}`);let le=be.map(j).join(",");return I===0?Te("0u"):I===1?Te(le[0]):(L.get=!0,L.getByIndices=!0,L.indicesToOffset=!0,`get_${s}(${le})`)},Se=be=>I<2?Te(be):(L.getByIndices=!0,L.indicesToOffset=!0,`get_${s}ByIndices(${be})`),Je=I<2?"":` + fn set_${s}ByIndices(indices: ${P.indices}, value: ${S}) { + ${ce(`i2o_${s}(indices)`,"value")} + }`,Xe=I<2?"":(()=>{let be=M.map(Ie=>`d${Ie}: u32`).join(", "),le=M.map(Ie=>`d${Ie}`).join(", ");return` + fn set_${s}(${be}, value: ${S}) { + set_${s}ByIndices(${Q(le)}, value); + }`})();return{impl:()=>{let be=[],le=!1;return L.offsetToIndices&&(be.push(ee),le=!0),L.indicesToOffset&&(be.push(e),le=!0),L.broadcastedIndicesToOffset&&(Object.values(R).forEach(Ie=>be.push(Ie)),le=!0),L.set&&(be.push(Xe),le=!0),L.setByIndices&&(be.push(Je),le=!0),L.get&&(be.push(Qe),le=!0),L.getByIndices&&(be.push(Be),le=!0),!p&&le&&be.unshift(`const ${ae} = ${P.indices}(${i.join(",")});`,`const ${Y} = ${P.indices}(${nA.computeStrides(i).join(",")});`),be.join(` +`)},type:P,offsetToIndices:d,indicesToOffset:u,broadcastedIndicesToOffset:De,indices:Q,indicesGet:oe,indicesSet:O,set:(...be)=>{if(be.length!==I+1)throw new Error(`indices length must be ${I}`);let le=be[I];if(typeof le!="string")throw new Error("value must be string");let Ie=be.slice(0,I).map(j).join(",");return I===0?ce("0u",le):I===1?ce(Ie[0],le):(L.set=!0,L.setByIndices=!0,L.indicesToOffset=!0,`set_${s}(${Ie}, ${le})`)},setByOffset:ce,setByIndices:(be,le)=>I<2?ce(be,le):(L.setByIndices=!0,L.indicesToOffset=!0,`set_${s}ByIndices(${be}, ${le});`),get:je,getByOffset:Te,getByIndices:Se,usage:g,name:s,strides:Y,shape:ae,rank:I}},fA=(s,n,i,g=1)=>Fc(s,n,i,"input",g),tt=(s,n,i,g=1)=>Fc(s,n,i,"output",g),Wm=(s,n,i)=>Fc(s,n,i,"atomicOutput",1),Kf=(s,n,i,g=1)=>Fc(s,n,i,"internal",g),Wg=class{constructor(s,n){this.normalizedDispatchGroup=s,this.limits=n,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(s){return`if (global_idx >= ${typeof s=="number"?`${s}u`:s}) { return; }`}mainStart(s=W0){let n=typeof s=="number"?s:s[0],i=typeof s=="number"?1:s[1],g=typeof s=="number"?1:s[2];if(n>this.limits.maxComputeWorkgroupSizeX||i>this.limits.maxComputeWorkgroupSizeY||g>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${n}, ${i}, ${g}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(n*i*g>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${n}, ${i}, ${g}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let C=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,p=C?`@builtin(global_invocation_id) global_id : vec3, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(local_invocation_id) local_id : vec3`:`@builtin(global_invocation_id) global_id : vec3, + @builtin(local_invocation_id) local_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(num_workgroups) num_workgroups : vec3`,I=C?`let global_idx = global_id.x; + let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + + workgroup_id.y * num_workgroups[0] + workgroup_id.x; + let global_idx = workgroup_index * ${n*i*g}u + local_idx;`;return`@compute @workgroup_size(${n}, ${i}, ${g}) + fn main(${p}) { + ${I} + `}appendVariableUniforms(s){s.rank!==0&&(s.shape.startsWith("uniforms.")&&this.uniforms.push({name:s.shape.replace("uniforms.",""),type:"u32",length:s.rank}),s.strides.startsWith("uniforms.")&&this.uniforms.push({name:s.strides.replace("uniforms.",""),type:"u32",length:s.rank}))}declareVariable(s,n){if(s.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(s),this.appendVariableUniforms(s);let i=s.usage==="input"?"read":"read_write",g=s.usage==="atomicOutput"?"atomic":s.type.storage;return`@group(0) @binding(${n}) var ${s.name}: array<${g}>;`}declareVariables(...s){return s.map(n=>this.declareVariable(n,this.variableIndex++)).join(` +`)}registerInternalVariable(s){if(s.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(s),this.appendVariableUniforms(s)}registerInternalVariables(...s){return s.forEach(n=>this.registerInternalVariable(n)),this}registerUniform(s,n,i=1){return this.uniforms.push({name:s,type:n,length:i}),this}registerUniforms(s){return this.uniforms=this.uniforms.concat(s),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let s=[];for(let{name:n,type:i,length:g}of this.uniforms)if(g&&g>4)i==="f16"?s.push(`@align(16) ${n}:array, ${Math.ceil(g/8)}>`):s.push(`${n}:array, ${Math.ceil(g/4)}>`);else{let C=g==null||g===1?i:`vec${g}<${i}>`;s.push(`${n}:${C}`)}return` + struct Uniforms { ${s.join(", ")} }; + @group(0) @binding(${this.variableIndex}) var uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(s=>s.impl()).join(` +`)+this.internalVariables.map(s=>s.impl()).join(` +`)}get variablesInfo(){if(this.uniforms.length===0)return;let s=n=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(n)];return this.uniforms.map(n=>[s(n.type),n.length??1])}},Vm=(s,n)=>new Wg(s,n)}),Vg,Dd,Yg,Hg,Ug,Kg,Ps,Ym,Hm,ao=xA(()=>{Ct(),yt(),aa(),Bt(),Vg=(s,n)=>{if(!s||s.length!==1)throw new Error("Transpose requires 1 input.");if(n.length!==0&&n.length!==s[0].dims.length)throw new Error(`perm size ${n.length} does not match input rank ${s[0].dims.length}`)},Dd=(s,n)=>n.length!==0?n:[...new Array(s).keys()].reverse(),Yg=(s,n)=>nA.sortBasedOnPerm(s,Dd(s.length,n)),Hg=(s,n,i,g)=>{let C=`fn perm(i: ${g.type.indices}) -> ${i.type.indices} { + var a: ${i.type.indices};`;for(let p=0;p{let i=[],g=[];for(let C=0;C{let i=0;for(let g=0;g{let i=s.dataType,g=s.dims.length,C=Dd(g,n),p=Yg(s.dims,C),I=s.dims,M=p,x=g<2||Kg(C,s.dims),G;if(x)return G=L=>{let K=fA("input",i,I,4),ae=tt("output",i,M,4);return` + ${L.registerUniform("output_size","u32").declareVariables(K,ae)} + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + output[global_idx] = input[global_idx]; + }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let L=nA.size(p);return{outputs:[{dims:p,dataType:s.dataType}],dispatchGroup:{x:Math.ceil(L/64/4)},programUniforms:[{type:12,data:Math.ceil(L/4)}]}},getShaderSource:G};let{newShape:S,newPerm:T}=Ug(s.dims,C),P=nA.areEqual(T,[2,3,1]),j=nA.areEqual(T,[3,1,2]);if(S.length===2||P||j){I=P?[S[0],S[1]*S[2]]:j?[S[0]*S[1],S[2]]:S,M=[I[1],I[0]];let L=16;return G=K=>{let ae=fA("a",i,I.length),Y=tt("output",i,M.length);return` + ${K.registerUniform("output_size","u32").declareVariables(ae,Y)} + var tile : array, ${L}>; + ${K.mainStart([L,L,1])} + let stride = (uniforms.output_shape[1] - 1) / ${L} + 1; + let workgroup_id_x = workgroup_index % stride; + let workgroup_id_y = workgroup_index / stride; + let input_col = workgroup_id_y * ${L}u + local_id.x; + let input_row = workgroup_id_x * ${L}u + local_id.y; + if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { + tile[local_id.y][local_id.x] = ${ae.getByIndices(`${ae.type.indices}(input_row, input_col)`)}; + } + workgroupBarrier(); + + let output_col = workgroup_id_x * ${L}u + local_id.x; + let output_row = workgroup_id_y * ${L}u + local_id.y; + if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { + ${Y.setByIndices(`${Y.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} + } + }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let K=nA.size(p);return{outputs:[{dims:p,dataType:s.dataType}],dispatchGroup:{x:Math.ceil(M[1]/L),y:Math.ceil(M[0]/L)},programUniforms:[{type:12,data:K},...lt(I,M)]}},getShaderSource:G}}return G=L=>{let K=fA("a",i,I.length),ae=tt("output",i,M.length);return` + ${L.registerUniform("output_size","u32").declareVariables(K,ae)} + + ${Hg(C,g,K,ae)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${ae.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${ae.setByOffset("global_idx",K.getByIndices("aIndices"))} + }`},{name:"Transpose",shaderCache:{hint:`${n}`,inputDependencies:["rank"]},getRunData:()=>{let L=nA.size(p);return{outputs:[{dims:p,dataType:s.dataType}],dispatchGroup:{x:Math.ceil(L/64)},programUniforms:[{type:12,data:L},...lt(I,M)]}},getShaderSource:G}},Ym=(s,n)=>{Vg(s.inputs,n.perm),s.compute(Ps(s.inputs[0],n.perm))},Hm=s=>sr({perm:s.perm})}),Xg,Zg,Jg,qg,$g,e4,A4,t4,r4,a4,hi,Um,Km,Xm,Zm,Jm,qm,$m,eC,AC,tC,gw=xA(()=>{Ct(),yt(),Bt(),Xf(),ao(),Xg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},Zg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},Jg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},qg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},$g=(s,n)=>{let i=[];for(let g=n-s;g{let i=[],g=s.length;for(let p=0;ps[p]);return[i,C]},A4=(s,n)=>{let i=s.length+n.length,g=[],C=0;for(let p=0;p{for(let i=0;i{let i=[];if(!t4(s,n)){for(let g=0;gi.push(g))}return i},a4=(s,n,i,g,C,p,I)=>{let M=i[0].dims,x=nA.size(p),G=nA.size(I),S=fA("_A",i[0].dataType,M),T=tt("output",C,p),P=64;x===1&&(P=256);let j=` + var aBestValues : array; + `,L=K=>` + ${K.registerUniform("reduceSize","u32").declareVariables(S,T)} + ${j} + fn DIV_CEIL(a : u32, b : u32) -> u32 { + return ((a - 1u) / b + 1u); + } + ${K.mainStart(P)} + + let outputIndex = global_idx / ${P}; + let offset = outputIndex * uniforms.reduceSize; + + var bestValue = f32(${Jg[g]}); + let Length = uniforms.reduceSize; + for (var k = local_idx; k < Length; k = k + ${P}) { + let candidate = f32(${S.getByOffset("offset + k")}); + bestValue = ${Xg[g]}; + } + aBestValues[local_idx] = bestValue; + workgroupBarrier(); + + var reduceSize = min(Length, ${P}u); + for (var currentSize = reduceSize / 2u; reduceSize > 1u; + currentSize = reduceSize / 2u) { + let interval = DIV_CEIL(reduceSize, 2u); + if (local_idx < currentSize) { + let candidate = aBestValues[local_idx + interval]; + bestValue = ${Zg[g]}; + aBestValues[local_idx] = bestValue; + } + reduceSize = interval; + workgroupBarrier(); + } + + if (local_idx == 0u) { + ${T.setByOffset("outputIndex",`${g==="mean"?`${T.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${T.type.storage}(${qg[g]})`}`)}; + } + }`;return{name:s,shaderCache:{hint:`${n};${P}`,inputDependencies:["type"]},getShaderSource:L,getRunData:()=>({outputs:[{dims:p,dataType:C}],dispatchGroup:{x},programUniforms:[{type:12,data:G}]})}},hi=(s,n,i,g)=>{let C=s.inputs.length===1?i:Mf(s.inputs,i),p=C.axes;p.length===0&&!C.noopWithEmptyAxes&&(p=s.inputs[0].dims.map((j,L)=>L));let I=nA.normalizeAxes(p,s.inputs[0].dims.length),M=I,x=s.inputs[0],G=r4(M,s.inputs[0].dims.length);G.length>0&&(x=s.compute(Ps(s.inputs[0],G),{inputs:[0],outputs:[-1]})[0],M=$g(M.length,x.dims.length));let[S,T]=e4(x.dims,M),P=S;C.keepDims&&(P=A4(S,I)),s.compute(a4(n,C.cacheKey,[x],g,s.inputs[0].dataType,P,T),{inputs:[x]})},Um=(s,n)=>{hi(s,"ReduceMeanShared",n,"mean")},Km=(s,n)=>{hi(s,"ReduceL1Shared",n,"l1")},Xm=(s,n)=>{hi(s,"ReduceL2Shared",n,"l2")},Zm=(s,n)=>{hi(s,"ReduceLogSumExpShared",n,"logSumExp")},Jm=(s,n)=>{hi(s,"ReduceMaxShared",n,"max")},qm=(s,n)=>{hi(s,"ReduceMinShared",n,"min")},$m=(s,n)=>{hi(s,"ReduceProdShared",n,"prod")},eC=(s,n)=>{hi(s,"ReduceSumShared",n,"sum")},AC=(s,n)=>{hi(s,"ReduceSumSquareShared",n,"sumSquare")},tC=(s,n)=>{hi(s,"ReduceLogSumShared",n,"logSum")}}),mi,s4,Fu,Mf,Ci,i4,n4,o4,l4,c4,u4,d4,f4,g4,p4,bi,rC,aC,sC,iC,nC,oC,lC,cC,uC,dC,Xf=xA(()=>{Ct(),yt(),aa(),Bt(),gw(),mi=s=>{if(!s||s.length===0||s.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(s.length===2&&s[1].dims.length!==1)throw new Error("Invalid axes input dims.")},s4=s=>["","",`var value = ${s.getByIndices("input_indices")};`,""],Fu=(s,n,i,g,C,p,I=!1,M=!1)=>{let x=[],G=i[0].dims,S=G.length,T=nA.normalizeAxes(C,S),P=!M&&T.length===0;G.forEach((K,ae)=>{P||T.indexOf(ae)>=0?I&&x.push(1):x.push(K)});let j=x.length,L=nA.size(x);return{name:s,shaderCache:n,getShaderSource:K=>{let ae=[],Y=fA("_A",i[0].dataType,S),V=tt("output",p,j),ee=g(Y,V,T),d=ee[2];for(let v=0,e=0;v=0?(I&&e++,d=`for(var j${v}: u32 = 0; j${v} < ${G[v]}; j${v}++) { + ${ee[2].includes("last_index")?`let last_index = j${v};`:""} + ${Y.indicesSet("input_indices",v,`j${v}`)} + ${d} + }`):(ae.push(`${Y.indicesSet("input_indices",v,V.indicesGet("output_indices",e))};`),e++);return` + + ${K.registerUniform("output_size","u32").declareVariables(Y,V)} + + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var input_indices: ${Y.type.indices}; + let output_indices = ${V.offsetToIndices("global_idx")}; + + ${ae.join(` +`)} + ${ee[0]} // init ops for reduce max/min + ${ee[1]} + ${d} + ${ee[3]} + ${ee.length===4?V.setByOffset("global_idx","value"):ee.slice(4).join(` +`)} + }`},getRunData:()=>({outputs:[{dims:x,dataType:p}],dispatchGroup:{x:Math.ceil(L/64)},programUniforms:[{type:12,data:L},...lt(G,x)]})}},Mf=(s,n)=>{let i=[];return s[1].dims[0]>0&&s[1].getBigInt64Array().forEach(g=>i.push(Number(g))),sr({axes:i,keepDims:n.keepDims,noopWithEmptyAxes:n.noopWithEmptyAxes})},Ci=(s,n,i,g)=>{let C=s.inputs,p=C.length===1?i:Mf(C,i);s.compute(Fu(n,{hint:p.cacheKey,inputDependencies:["rank"]},[C[0]],p.noopWithEmptyAxes&&p.axes.length===0?s4:g,p.axes,C[0].dataType,p.keepDims,p.noopWithEmptyAxes),{inputs:[0]})},i4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceLogSum",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${i.getByIndices("input_indices")};`,"value = log(value);"])},n4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceL1",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += abs(${i.getByIndices("input_indices")});`,""])},o4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceL2",n,(i,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${i.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},l4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceLogSumExp",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += exp(${i.getByIndices("input_indices")});`,"value = log(value);"])},c4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceMax",n,(i,g,C)=>{let p=[];for(let I=0;I=0||C.length===0)&&p.push(i.indicesSet("input_indices",I,0));return[`${p.join(` +`)}`,`var value = ${i.getByIndices("input_indices")};`,`value = max(value, ${i.getByIndices("input_indices")});`,""]})},u4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceMean",n,(i,g,C)=>{let p=1;for(let I=0;I=0||C.length===0)&&(p*=s.inputs[0].dims[I]);return["var sum = f32(0);","",`sum += f32(${i.getByIndices("input_indices")});`,`let value = ${g.type.value}(sum / ${p});`]})},d4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceMin",n,(i,g,C)=>{let p=[];for(let I=0;I=0||C.length===0)&&p.push(`input_indices[${I}] = 0;`);return[`${p.join(` +`)}`,`var value = ${i.getByIndices("input_indices")};`,`value = min(value, ${i.getByIndices("input_indices")});`,""]})},f4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceProd",n,(i,g)=>[`var value = ${g.type.storage}(1);`,"",`value *= ${i.getByIndices("input_indices")};`,""])},g4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceSum",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${i.getByIndices("input_indices")};`,""])},p4=(s,n)=>{mi(s.inputs),Ci(s,"ReduceSumSquare",n,(i,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${i.getByIndices("input_indices")}; value += t * t;`,""])},bi=(s,n,i)=>{if(n.length===0)return i;let g=1,C=1;for(let p=0;p1024},rC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?u4(s,n):Um(s,n)},aC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?n4(s,n):Km(s,n)},sC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?o4(s,n):Xm(s,n)},iC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?l4(s,n):Zm(s,n)},nC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?c4(s,n):Jm(s,n)},oC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?d4(s,n):qm(s,n)},lC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?f4(s,n):$m(s,n)},cC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?g4(s,n):eC(s,n)},uC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?p4(s,n):AC(s,n)},dC=(s,n)=>{bi(s.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?i4(s,n):tC(s,n)}}),Td,fC,gC,vf,pw=xA(()=>{Ct(),aa(),Xf(),Td=s=>{if(!s||s.length===0||s.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(s[0].dataType!==1)throw new Error("Invalid input type.")},fC=(s,n)=>{Td(s.inputs);let i=(g,C,p)=>{let I=[];for(let M=0;M=0||p.length===0)&&I.push(`input_indices[${M}] = 0;`);return[`${I.join(` +`)}`,`var value = ${g.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${n.selectLastIndex>0?"<=":"<"} value) { + value = ${g.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",C.setByOffset("global_idx","best_index")]};s.compute(Fu("ArgMin",{hint:n.cacheKey,inputDependencies:["rank"]},[s.inputs[0]],i,[n.axis],7,n.keepDims),{inputs:[0]})},gC=(s,n)=>{Td(s.inputs);let i=(g,C,p)=>{let I=[];for(let M=0;M=0||p.length===0)&&I.push(`input_indices[${M}] = 0;`);return[`${I.join(` +`)}`,`var value = ${g.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${n.selectLastIndex>0?">=":">"} value) { + value = ${g.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",C.setByOffset("global_idx","best_index")]};s.compute(Fu("argMax",{hint:n.cacheKey,inputDependencies:["rank"]},[s.inputs[0]],i,[n.axis],7,n.keepDims),{inputs:[0]})},vf=s=>sr(s)}),h4,bu,m4,C4,b4,e1,I4,pC,Zf=xA(()=>{Ct(),yt(),Uf(),Bt(),h4=(s,n)=>{let i=s[0],g=s[1],C=s[2],p=s[3],I=s[4],M=s[5];if(I&&M)throw new Error("Attention cannot have both past and attention_bias");if(i.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let x=i.dims[0],G=i.dims[1],S=i.dims[2];if(C.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(g.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(g.dims[0]!==S)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(C.dims[0]!==g.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let T=C.dims[0]/3,P=T,j=P;if(n.qkvHiddenSizes.length>0){if(n.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let ee of n.qkvHiddenSizes)if(ee%n.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");T=n.qkvHiddenSizes[0],P=n.qkvHiddenSizes[1],j=n.qkvHiddenSizes[2]}let L=G;if(T!==P)throw new Error("qkv_hidden_sizes first element should be same as the second");if(C.dims[0]!==T+P+j)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let K=0;if(I){if(P!==j)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(I.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(I.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(I.dims[1]!==x)throw new Error('Input "past" second dimension must be batch_size');if(I.dims[2]!==n.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(I.dims[4]!==P/n.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');n.pastPresentShareBuffer||(K=I.dims[3])}let ae=L+K,Y=-1,V=0;if(p)throw new Error("Mask not supported");if(I)throw new Error("past is not supported");if(M){if(M.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(M.dims[0]!==x||M.dims[1]!==n.numHeads||M.dims[2]!==G||M.dims[3]!==ae)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:x,sequenceLength:G,pastSequenceLength:K,kvSequenceLength:L,totalSequenceLength:ae,maxSequenceLength:Y,inputHiddenSize:S,hiddenSize:T,vHiddenSize:j,headSize:Math.floor(T/n.numHeads),vHeadSize:Math.floor(j/n.numHeads),numHeads:n.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:n.maskFilterValue,maskType:V,scale:n.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},bu=(s,n,i)=>n&&s?` + let total_sequence_length_input = u32(${n.getByOffset("0")}); + let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length); + let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input; + let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input; + total_sequence_length = u32(${s==null?void 0:s.getByOffset("batchIdx")}) + 1; + var past_sequence_length: u32 = 0; + if (is_first_prompt == false) { + past_sequence_length = total_sequence_length - sequence_length; + } + `:` + ${i?"let past_sequence_length = uniforms.past_sequence_length":""}; + let present_sequence_length = total_sequence_length; + `,m4=(s,n,i,g,C,p,I,M)=>{let x=qr(I?1:p),G=64,S=p/x;S{let V=tt("x",s.dataType,s.dims,x),ee=[V],d=I?fA("seq_lens",I.dataType,I.dims):void 0;d&&ee.push(d);let v=M?fA("total_sequence_length_input",M.dataType,M.dims):void 0;v&&ee.push(v);let e=As(s.dataType),u=[{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}];return` + var thread_max: array; + var thread_sum: array; + ${Y.registerUniforms(u).declareVariables(...ee)} + ${Y.mainStart([G,1,1])} + let batchIdx = workgroup_id.z / uniforms.num_heads; + let headIdx = workgroup_id.z % uniforms.num_heads; + let sequence_length = uniforms.sequence_length; + var total_sequence_length = uniforms.total_sequence_length; + ${bu(d,v,!1)} + let local_offset = local_idx * uniforms.elements_per_thread; + let offset = (global_idx / ${G}) * uniforms.total_sequence_length + local_offset; + let seq_causal_length = ${I?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"}; + var thread_max_vector = ${L}(-3.402823e+38f); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + thread_max_vector = max(${L}(x[offset + i]), thread_max_vector); + } + thread_max[local_idx] = ${(()=>{switch(x){case 1:return"thread_max_vector";case 2:return"max(thread_max_vector.x, thread_max_vector.y)";case 4:return"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))";default:throw new Error(`Unsupported components: ${x}`)}})()}; + workgroupBarrier(); + + var max_value = f32(-3.402823e+38f); + for (var i = 0u; i < ${G}; i++) { + max_value = max(thread_max[i], max_value); + } + + var sum_vector = ${L}(0); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + sum_vector += exp(${L}(x[offset + i]) - max_value); + } + thread_sum[local_idx] = ${(()=>{switch(x){case 1:return"sum_vector";case 2:return"sum_vector.x + sum_vector.y";case 4:return"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w";default:throw new Error(`Unsupported components: ${x}`)}})()}; + workgroupBarrier(); + + var sum: f32 = 0; + for (var i = 0u; i < ${G}; i++) { + sum += thread_sum[i]; + } + + if (sum == 0) { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + x[offset + i] = ${V.type.value}(${e}(1.0) / ${e}(seq_causal_length)); + } + } else { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + var f32input = ${L}(x[offset + i]); + x[offset + i] = ${V.type.value}(exp(f32input - max_value) / sum); + } + } + ${I?` + for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) { + x[offset + total_seq_id] = ${V.type.value}(${e}(0)); + }`:""}; + }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${G};${j};${x}`,inputDependencies:K},getShaderSource:ae,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:C,z:n*i},programUniforms:P})}},C4=(s,n,i,g,C,p,I,M,x)=>{let G=I+p.kvSequenceLength,S=[p.batchSize,p.numHeads,p.sequenceLength,G],T=s>1&&g,P=p.kvNumHeads?p.kvNumHeads:p.numHeads,j=T?[p.batchSize,P,G,p.headSize]:void 0,L=p.nReps?p.nReps:1,K=p.scale===0?1/Math.sqrt(p.headSize):p.scale,ae=qr(p.headSize),Y=p.headSize/ae,V=12,ee={x:Math.ceil(G/V),y:Math.ceil(p.sequenceLength/V),z:p.batchSize*p.numHeads},d=[{type:12,data:p.sequenceLength},{type:12,data:Y},{type:12,data:G},{type:12,data:p.numHeads},{type:12,data:p.headSize},{type:1,data:K},{type:12,data:I},{type:12,data:p.kvSequenceLength},{type:12,data:L}],v=T&&g&&nA.size(g.dims)>0,e=["type","type"];v&&e.push("type"),C&&e.push("type"),M&&e.push("type"),x&&e.push("type");let u=[{dims:S,dataType:n.dataType,gpuDataType:0}];T&&u.push({dims:j,dataType:n.dataType,gpuDataType:0});let Q=oe=>{let O=fA("q",n.dataType,n.dims,ae),R=fA("key",i.dataType,i.dims,ae),De=[O,R];if(v){let Je=fA("past_key",g.dataType,g.dims,ae);De.push(Je)}C&&De.push(fA("attention_bias",C.dataType,C.dims));let ce=M?fA("seq_lens",M.dataType,M.dims):void 0;ce&&De.push(ce);let Te=x?fA("total_sequence_length_input",x.dataType,x.dims):void 0;Te&&De.push(Te);let Be=tt("output",n.dataType,S),Qe=[Be];T&&Qe.push(tt("present_key",n.dataType,j,ae));let je=As(1,ae),Se=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` + const TILE_SIZE = ${V}u; + + var tileQ: array<${O.type.storage}, ${V*V}>; + var tileK: array<${O.type.storage}, ${V*V}>; + ${oe.registerUniforms(Se).declareVariables(...De,...Qe)} + ${oe.mainStart([V,V,1])} + // x holds the N and y holds the M + let headIdx = workgroup_id.z % uniforms.num_heads; + let kvHeadIdx = ${L===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${L===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let m = workgroup_id.y * TILE_SIZE; + let n = workgroup_id.x * TILE_SIZE; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.N; + ${bu(ce,Te,!0)} + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; + let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + ${v&&T?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""}; + let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K; + ${T?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""} + var value = ${je}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x]; + } + if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${v&&T?` + if (n + local_id.y < past_sequence_length) { + tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x]; + }`:` + if (n + local_id.y < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + }`} + ${T?`if (n + local_id.y < present_sequence_length) { + present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx]; + }`:""} + } + workgroupBarrier(); + + for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { + value += ${je}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]); + } + + workgroupBarrier(); + } + + if (global_id.y < uniforms.M && global_id.x < total_sequence_length) { + let headOffset = workgroup_id.z * uniforms.M * uniforms.N; + let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x; + var sum: f32 = ${(()=>{switch(ae){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${ae}`)}})()}; + output[outputIdx] = ${Be.type.value} (sum * uniforms.alpha) + ${C?"attention_bias[outputIdx]":"0.0"}; + } + }`};return{name:"AttentionProbs",shaderCache:{hint:`${ae};${C!==void 0};${g!==void 0};${s}`,inputDependencies:e},getRunData:()=>({outputs:u,dispatchGroup:ee,programUniforms:d}),getShaderSource:Q}},b4=(s,n,i,g,C,p,I=void 0,M=void 0)=>{let x=p+C.kvSequenceLength,G=C.nReps?C.nReps:1,S=C.vHiddenSize*G,T=s>1&&g,P=C.kvNumHeads?C.kvNumHeads:C.numHeads,j=T?[C.batchSize,P,x,C.headSize]:void 0,L=[C.batchSize,C.sequenceLength,S],K=12,ae={x:Math.ceil(C.vHeadSize/K),y:Math.ceil(C.sequenceLength/K),z:C.batchSize*C.numHeads},Y=[{type:12,data:C.sequenceLength},{type:12,data:x},{type:12,data:C.vHeadSize},{type:12,data:C.numHeads},{type:12,data:C.headSize},{type:12,data:S},{type:12,data:p},{type:12,data:C.kvSequenceLength},{type:12,data:G}],V=T&&g&&nA.size(g.dims)>0,ee=["type","type"];V&&ee.push("type"),I&&ee.push("type"),M&&ee.push("type");let d=[{dims:L,dataType:n.dataType,gpuDataType:0}];T&&d.push({dims:j,dataType:n.dataType,gpuDataType:0});let v=e=>{let u=fA("probs",n.dataType,n.dims),Q=fA("v",i.dataType,i.dims),oe=[u,Q];V&&oe.push(fA("past_value",g.dataType,g.dims));let O=I?fA("seq_lens",I.dataType,I.dims):void 0;I&&oe.push(O);let R=M?fA("total_sequence_length_input",M.dataType,M.dims):void 0;M&&oe.push(R);let De=[tt("output",n.dataType,L)];T&&De.push(tt("present_value",n.dataType,j));let ce=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` + const TILE_SIZE = ${K}u; + var tileQ: array<${u.type.value}, ${K*K}>; + var tileV: array<${u.type.value}, ${K*K}>; + ${e.registerUniforms(ce).declareVariables(...oe,...De)} + ${e.mainStart([K,K,1])} + let headIdx = workgroup_id.z % uniforms.num_heads; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let kvHeadIdx = ${G===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${G===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let m = global_id.y; + let n = global_id.x; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.K; + ${bu(O,R,!0)} + let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch + ${V&&T?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""}; + let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n; + ${T?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""} + var value = ${u.type.storage}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${V&&T?` + if (w + local_id.y < past_sequence_length) { + tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N]; + } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N]; + } + `:` + if (w + local_id.y < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N]; + }`} + ${T?` + if (w + local_id.y < present_sequence_length) { + present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx]; + }`:""} + } + workgroupBarrier(); + for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) { + value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x]; + } + workgroupBarrier(); + } + + // we need to transpose output from BNSH_v to BSND_v + if (m < uniforms.M && n < uniforms.N) { + let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size + + headIdx * uniforms.N + n; + output[outputIdx] = value; + } + }`};return{name:"AttentionScore",shaderCache:{hint:`${g!==void 0};${s}`,inputDependencies:ee},getRunData:()=>({outputs:d,dispatchGroup:ae,programUniforms:Y}),getShaderSource:v}},e1=(s,n,i,g,C,p,I,M,x,G,S=void 0,T=void 0)=>{let P=Math.min(s.outputCount,1+(I?1:0)+(M?1:0)),j=P>1?G.pastSequenceLength:0,L=j+G.kvSequenceLength,K=x&&nA.size(x.dims)>0?x:void 0,ae=[n,i];P>1&&I&&nA.size(I.dims)>0&&ae.push(I),K&&ae.push(K),S&&ae.push(S),T&&ae.push(T);let Y=s.compute(C4(P,n,i,I,K,G,j,S,T),{inputs:ae,outputs:P>1?[-1,1]:[-1]})[0];s.compute(m4(Y,G.batchSize,G.numHeads,j,G.sequenceLength,L,S,T),{inputs:S&&T?[Y,S,T]:[Y],outputs:[]});let V=[Y,g];P>1&&M&&nA.size(M.dims)>0&&V.push(M),S&&V.push(S),T&&V.push(T),s.compute(b4(P,Y,g,M,G,j,S,T),{inputs:V,outputs:P>1?[0,2]:[0]})},I4=(s,n)=>{let i=[n.batchSize,n.numHeads,n.sequenceLength,n.headSize],g=n.sequenceLength,C=n.inputHiddenSize,p=n.headSize,I=12,M={x:Math.ceil(n.headSize/I),y:Math.ceil(n.sequenceLength/I),z:n.batchSize*n.numHeads},x=[s.inputs[0],s.inputs[1],s.inputs[2]],G=[{type:12,data:g},{type:12,data:C},{type:12,data:p},{type:12,data:n.numHeads},{type:12,data:n.headSize},{type:12,data:n.hiddenSize},{type:12,data:n.hiddenSize+n.hiddenSize+n.vHiddenSize}],S=T=>{let P=tt("output_q",x[0].dataType,i),j=tt("output_k",x[0].dataType,i),L=tt("output_v",x[0].dataType,i),K=fA("input",x[0].dataType,x[0].dims),ae=fA("weight",x[1].dataType,x[1].dims),Y=fA("bias",x[2].dataType,x[2].dims),V=K.type.storage,ee=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return` + const TILE_SIZE = ${I}u; + var tileInput: array<${V}, ${I*I}>; + var tileWeightQ: array<${V}, ${I*I}>; + var tileWeightK: array<${V}, ${I*I}>; + var tileWeightV: array<${V}, ${I*I}>; + ${T.registerUniforms(ee).declareVariables(K,ae,Y,P,j,L)} + ${T.mainStart([I,I,1])} + let batchIndex = workgroup_id.z / uniforms.num_heads; + let headNumber = workgroup_id.z % uniforms.num_heads; + let m = global_id.y; + let n = global_id.x; + + let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K; + let biasOffsetQ = headNumber * uniforms.head_size; + let biasOffsetK = uniforms.hidden_size + biasOffsetQ; + let biasOffsetV = uniforms.hidden_size + biasOffsetK; + + var valueQ = ${V}(0); + var valueK = ${V}(0); + var valueV = ${V}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + let offset = n + (w + local_id.y) * uniforms.ldb; + tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset]; + tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset]; + tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset]; + } + workgroupBarrier(); + for (var k: u32 = 0u; k({outputs:[{dims:i,dataType:s.inputs[0].dataType,gpuDataType:0},{dims:i,dataType:s.inputs[0].dataType,gpuDataType:0},{dims:i,dataType:s.inputs[0].dataType,gpuDataType:0}],dispatchGroup:M,programUniforms:G}),getShaderSource:S},{inputs:x,outputs:[-1,-1,-1]})},pC=(s,n)=>{let i=h4(s.inputs,n),[g,C,p]=I4(s,i);return e1(s,g,C,p,s.inputs[4],void 0,void 0,void 0,s.inputs[5],i)}}),w4,k4,E4,hC,hw=xA(()=>{Xs(),Ct(),yt(),aa(),Bt(),w4=(s,n)=>{if(!s||s.length!==5)throw new Error("BatchNormalization requires 5 inputs");let i=(g,C,p)=>{let I=C.length;if(I!==g.length)throw new Error(`${p}: num dimensions != ${I}`);C.forEach((M,x)=>{if(M!==g[x])throw new Error(`${p}: dim[${x}] do not match`)})};if(s[0].dims.length>1){let g=n.format==="NHWC"?n.spatial?s[0].dims.slice(-1):s[0].dims.slice(-1).concat(s[0].dims.slice(1,s[0].dims.length-1)):s[0].dims.slice(1,n.spatial?2:void 0);i(s[1].dims,g,"Invalid input scale"),i(s[2].dims,g,"Invalid input B"),i(s[3].dims,g,"Invalid input mean"),i(s[4].dims,g,"Invalid input var")}else i(s[1].dims,[1],"Invalid input scale"),i(s[2].dims,[1],"Invalid input B"),i(s[3].dims,[1],"Invalid input mean"),i(s[4].dims,[1],"Invalid input var")},k4=(s,n)=>{let{epsilon:i,spatial:g,format:C}=n,p=s[0].dims,I=g?qr(p[p.length-1]):1,M=C==="NHWC"&&p.length>1?I:1,x=nA.size(p)/I,G=g,S=G?p.length:p,T=fA("x",s[0].dataType,s[0].dims,I),P=fA("scale",s[1].dataType,s[1].dims,M),j=fA("bias",s[2].dataType,s[2].dims,M),L=fA("inputMean",s[3].dataType,s[3].dims,M),K=fA("inputVar",s[4].dataType,s[4].dims,M),ae=tt("y",s[0].dataType,S,I),Y=()=>{let ee="";if(g)ee=`let cOffset = ${p.length===1?"0u":C==="NHWC"?`outputIndices[${p.length-1}] / ${I}`:"outputIndices[1]"};`;else if(C==="NCHW")ee=` + ${ae.indicesSet("outputIndices","0","0")} + let cOffset = ${ae.indicesToOffset("outputIndices")};`;else{ee=`var cIndices = ${P.type.indices}(0); + cIndices[0] = outputIndices[${p.length-1}];`;for(let d=1;d` + const epsilon = ${i}; + ${ee.registerUniform("outputSize","u32").declareVariables(T,P,j,L,K,ae)} + ${ee.mainStart()} + ${ee.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${ae.offsetToIndices(`global_idx * ${I}`)}; + ${Y()} + let scale = ${P.getByOffset("cOffset")}; + let bias = ${j.getByOffset("cOffset")}; + let inputMean = ${L.getByOffset("cOffset")}; + let inputVar = ${K.getByOffset("cOffset")}; + let x = ${T.getByOffset("global_idx")}; + let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias; + ${ae.setByOffset("global_idx","value")} + }`;return{name:"BatchNormalization",shaderCache:{hint:`${n.epsilon}_${n.format}_${g}_${I}`,inputDependencies:G?["rank","type","type","type","type"]:void 0},getShaderSource:V,getRunData:()=>({outputs:[{dims:s[0].dims,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:G?[{type:12,data:x},...lt(p)]:[{type:12,data:x}]})}},E4=s=>sr(s),hC=(s,n)=>{let{inputs:i,outputCount:g}=s,C=E4({...n,outputCount:g});if(Gr.webgpu.validateInputContent&&w4(i,C),n.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");s.compute(k4(i,C))}}),M4,v4,mC,mw=xA(()=>{yt(),Bt(),M4=s=>{if(s[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(s[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(s[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(s[0].dims[2]!==s[1].dims[0])throw new Error("last dimension of input and bias are not the same")},v4=s=>{let n=s[0].dims,i=s[0].dims[2],g=nA.size(n)/4,C=s[0].dataType,p=fA("input",C,n,4),I=fA("bias",C,[i],4),M=fA("residual",C,n,4),x=tt("output",C,n,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:n,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(g/64)}}),getShaderSource:G=>` + const channels = ${i}u / 4; + ${G.declareVariables(p,I,M,x)} + + ${G.mainStart()} + ${G.guardAgainstOutOfBoundsWorkgroupSizes(g)} + let value = ${p.getByOffset("global_idx")} + + ${I.getByOffset("global_idx % channels")} + ${M.getByOffset("global_idx")}; + ${x.setByOffset("global_idx","value")} + }`}},mC=s=>{M4(s.inputs),s.compute(v4(s.inputs))}}),y4,$t,CC,bC,IC,wC,kC,EC,MC,vC,yC,x4,xC,BC,DC,TC,Uc,GC,Tu,PC,QC,SC,FC,OC,_C,zC,NC,LC,jC,RC,WC,VC,YC,HC,UC,Gd,KC,yf,xf,XC,ZC,JC,B4,D4,qC,Jf=xA(()=>{Ct(),yt(),aa(),Bt(),y4=(s,n,i,g,C,p,I)=>{let M=Math.ceil(n/4),x="";typeof C=="string"?x=`${C}(a)`:x=C("a");let G=fA("inputData",i,[M],4),S=tt("outputData",g,[M],4),T=[{name:"vec_size",type:"u32"}];return I&&T.push(...I),` + ${s.registerUniforms(T).declareVariables(G,S)} + + ${p??""} + + ${s.mainStart()} + ${s.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + + let a = ${G.getByOffset("global_idx")}; + ${S.setByOffset("global_idx",x)} + }`},$t=(s,n,i,g,C,p=s.dataType,I,M)=>{let x=[{type:12,data:Math.ceil(nA.size(s.dims)/4)}];return I&&x.push(...I),{name:n,shaderCache:{hint:C,inputDependencies:["type"]},getShaderSource:G=>y4(G,nA.size(s.dims),s.dataType,p,i,g,M),getRunData:G=>({outputs:[{dims:s.dims,dataType:p}],dispatchGroup:{x:Math.ceil(nA.size(G[0].dims)/64/4)},programUniforms:x})}},CC=s=>{s.compute($t(s.inputs[0],"Abs","abs"))},bC=s=>{s.compute($t(s.inputs[0],"Acos","acos"))},IC=s=>{s.compute($t(s.inputs[0],"Acosh","acosh"))},wC=s=>{s.compute($t(s.inputs[0],"Asin","asin"))},kC=s=>{s.compute($t(s.inputs[0],"Asinh","asinh"))},EC=s=>{s.compute($t(s.inputs[0],"Atan","atan"))},MC=s=>{s.compute($t(s.inputs[0],"Atanh","atanh"))},vC=s=>sr(s),yC=(s,n)=>{let i;switch(n.to){case 10:i="vec4";break;case 1:i="vec4";break;case 12:i="vec4";break;case 6:i="vec4";break;case 9:i="vec4";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${n.to}`)}s.compute($t(s.inputs[0],"Cast",i,void 0,n.cacheKey,n.to))},x4=s=>{let n,i,g=s.length>=2&&s[1].data!==0,C=s.length>=3&&s[2].data!==0;switch(s[0].dataType){case 1:n=g?s[1].getFloat32Array()[0]:-34028234663852886e22,i=C?s[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:n=g?s[1].getUint16Array()[0]:64511,i=C?s[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return sr({min:n,max:i})},xC=(s,n)=>{let i=n||x4(s.inputs),g=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"Clip",C=>`clamp(${C}, vec4<${g}>(uniforms.min), vec4<${g}>(uniforms.max))`,void 0,i.cacheKey,void 0,[{type:s.inputs[0].dataType,data:i.min},{type:s.inputs[0].dataType,data:i.max}],[{name:"min",type:g},{name:"max",type:g}]),{inputs:[0]})},BC=s=>{s.compute($t(s.inputs[0],"Ceil","ceil"))},DC=s=>{s.compute($t(s.inputs[0],"Cos","cos"))},TC=s=>{s.compute($t(s.inputs[0],"Cosh","cosh"))},Uc=s=>sr(s),GC=(s,n)=>{let i=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"Elu",g=>`elu_vf32(${g})`,` + const elu_alpha_ = ${i}(${n.alpha}); + + fn elu_f32(a: ${i}) -> ${i} { + return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); + } + + fn elu_vf32(v: vec4<${i}>) -> vec4<${i}> { + return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); + }`,n.cacheKey))},Tu=(s="f32")=>` +const r0: ${s} = 0.3275911; +const r1: ${s} = 0.254829592; +const r2: ${s} = -0.284496736; +const r3: ${s} = 1.421413741; +const r4: ${s} = -1.453152027; +const r5: ${s} = 1.061405429; + +fn erf_vf32(v: vec4<${s}>) -> vec4<${s}> { + let absv = abs(v); + let x = 1.0 / (1.0 + r0 * absv); + return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv)); +}`,PC=s=>{let n=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"Erf",i=>`erf_vf32(${i})`,Tu(n)))},QC=s=>{s.compute($t(s.inputs[0],"Exp","exp"))},SC=s=>{s.compute($t(s.inputs[0],"Floor","floor"))},FC=s=>{let n=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"Gelu",i=>`0.5 * ${i} * (1.0 + erf_vf32(${i} * 0.7071067811865475))`,Tu(n)))},OC=(s,n)=>{let i=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"LeakyRelu",g=>`select(leaky_relu_alpha_ * ${g}, ${g}, ${g} >= vec4<${i}>(0.0))`,`const leaky_relu_alpha_ = ${i}(${n.alpha});`,n.cacheKey))},_C=s=>{s.compute($t(s.inputs[0],"Not",n=>`!${n}`))},zC=s=>{s.compute($t(s.inputs[0],"Neg",n=>`-${n}`))},NC=s=>{s.compute($t(s.inputs[0],"Reciprocal",n=>`1.0/${n}`))},LC=s=>{let n=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"Relu",i=>`select(vec4<${n}>(0.0), ${i}, ${i} > vec4<${n}>(0.0))`))},jC=s=>{s.compute($t(s.inputs[0],"Sigmoid",n=>`(1.0 / (1.0 + exp(-${n})))`))},RC=s=>sr(s),WC=(s,n)=>{let i=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"HardSigmoid",g=>`max(vec4<${i}>(0.0), min(vec4<${i}>(1.0), ${n.alpha} * ${g} + vec4<${i}>(${n.beta})))`,void 0,n.cacheKey))},VC=s=>{s.compute($t(s.inputs[0],"Sin","sin"))},YC=s=>{s.compute($t(s.inputs[0],"Sinh","sinh"))},HC=s=>{s.compute($t(s.inputs[0],"Sqrt","sqrt"))},UC=s=>{s.compute($t(s.inputs[0],"Tan","tan"))},Gd=s=>`sign(${s}) * (1 - exp(-2 * abs(${s}))) / (1 + exp(-2 * abs(${s})))`,KC=s=>{s.compute($t(s.inputs[0],"Tanh",Gd))},yf=(s="f32")=>` +const fast_gelu_a: ${s} = 0.5; +const fast_gelu_b: ${s} = 0.7978845608028654; +const fast_gelu_c: ${s} = 0.035677408136300125; + +fn tanh_v(v: vec4<${s}>) -> vec4<${s}> { + return ${Gd("v")}; +} +`,xf=s=>`(fast_gelu_a + fast_gelu_a * tanh_v(${s} * (fast_gelu_c * ${s} * ${s} + fast_gelu_b))) * ${s}`,XC=s=>{let n=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"FastGelu",xf,yf(n),void 0,s.inputs[0].dataType))},ZC=(s,n)=>{let i=As(s.inputs[0].dataType);return s.compute($t(s.inputs[0],"ThresholdedRelu",g=>`select(vec4<${i}>(0.0), ${g}, ${g} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${i}>(${n.alpha});`,n.cacheKey)),0},JC=s=>{s.compute($t(s.inputs[0],"Log","log"))},B4=(s,n)=>` +const alpha = vec4<${s}>(${n}); +const one = ${s}(1.0); +const zero = ${s}(0.0); + +fn quick_gelu_impl(x: vec4<${s}>) -> vec4<${s}> { + let v = x *alpha; + var x1 : vec4<${s}>; + for (var i = 0; i < 4; i = i + 1) { + if (v[i] >= zero) { + x1[i] = one / (one + exp(-v[i])); + } else { + x1[i] = one - one / (one + exp(v[i])); + } + } + return x * x1; +} +`,D4=s=>`quick_gelu_impl(${s})`,qC=(s,n)=>{let i=As(s.inputs[0].dataType);s.compute($t(s.inputs[0],"QuickGelu",D4,B4(i,n.alpha),n.cacheKey,s.inputs[0].dataType))}}),T4,G4,$C,Cw=xA(()=>{yt(),Bt(),Jf(),T4=s=>{if(s[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(s[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(s[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(s[0].dims[2]!==s[1].dims[0])throw new Error("last dimension of input and bias are not the same")},G4=s=>{let n=s[0].dims.slice();n[2]=n[2]/2;let i=fA("input",s[0].dataType,s[0].dims,4),g=fA("bias",s[0].dataType,[s[0].dims[2]],4),C=tt("output",s[0].dataType,n,4),p=nA.size(n)/4,I=Ba(s[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:n,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)}}),getShaderSource:M=>` + const M_SQRT2 = sqrt(2.0); + const halfChannels = ${s[0].dims[2]/4/2}u; + + ${M.declareVariables(i,g,C)} + + ${Tu(I)} + + ${M.mainStart()} + ${M.guardAgainstOutOfBoundsWorkgroupSizes(p)} + let biasIdx = global_idx % halfChannels; + let batchIndex = global_idx / halfChannels; + let inputOffset = biasIdx + batchIndex * halfChannels * 2; + let valueLeft = input[inputOffset] + bias[biasIdx]; + let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels]; + let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1); + + ${C.setByOffset("global_idx","valueLeft * geluRight")} + }`}},$C=s=>{T4(s.inputs),s.compute(G4(s.inputs))}}),P4,Q4,Ii,e3,A3,t3,r3,a3,s3,i3,n3,o3,l3,bw=xA(()=>{Ct(),yt(),Bt(),P4=(s,n,i,g,C,p,I,M,x,G,S,T)=>{let P,j;typeof M=="string"?P=j=(V,ee)=>`${M}((${V}),(${ee}))`:typeof M=="function"?P=j=M:(P=M.scalar,j=M.vector);let L=tt("outputData",S,g.length,4),K=fA("aData",x,n.length,4),ae=fA("bData",G,i.length,4),Y;if(C)if(p){let V=nA.size(n)===1,ee=nA.size(i)===1,d=n.length>0&&n[n.length-1]%4===0,v=i.length>0&&i[i.length-1]%4===0;V||ee?Y=L.setByOffset("global_idx",j(V?`${K.type.value}(${K.getByOffset("0")}.x)`:K.getByOffset("global_idx"),ee?`${ae.type.value}(${ae.getByOffset("0")}.x)`:ae.getByOffset("global_idx"))):Y=` + let outputIndices = ${L.offsetToIndices("global_idx * 4u")}; + let offsetA = ${K.broadcastedIndicesToOffset("outputIndices",L)}; + let offsetB = ${ae.broadcastedIndicesToOffset("outputIndices",L)}; + ${L.setByOffset("global_idx",j(I||d?K.getByOffset("offsetA / 4u"):`${K.type.value}(${K.getByOffset("offsetA / 4u")}[offsetA % 4u])`,I||v?ae.getByOffset("offsetB / 4u"):`${ae.type.value}(${ae.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} + `}else Y=L.setByOffset("global_idx",j(K.getByOffset("global_idx"),ae.getByOffset("global_idx")));else{if(!p)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let V=(ee,d,v="")=>{let e=`aData[indexA${d}][componentA${d}]`,u=`bData[indexB${d}][componentB${d}]`;return` + let outputIndices${d} = ${L.offsetToIndices(`global_idx * 4u + ${d}u`)}; + let offsetA${d} = ${K.broadcastedIndicesToOffset(`outputIndices${d}`,L)}; + let offsetB${d} = ${ae.broadcastedIndicesToOffset(`outputIndices${d}`,L)}; + let indexA${d} = offsetA${d} / 4u; + let indexB${d} = offsetB${d} / 4u; + let componentA${d} = offsetA${d} % 4u; + let componentB${d} = offsetB${d} % 4u; + ${ee}[${d}] = ${v}(${P(e,u)}); + `};S===9?Y=` + var data = vec4(0); + ${V("data",0,"u32")} + ${V("data",1,"u32")} + ${V("data",2,"u32")} + ${V("data",3,"u32")} + outputData[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:Y=` + ${V("outputData[global_idx]",0)} + ${V("outputData[global_idx]",1)} + ${V("outputData[global_idx]",2)} + ${V("outputData[global_idx]",3)} + `}return` + ${s.registerUniform("vec_size","u32").declareVariables(K,ae,L)} + + ${T??""} + + ${s.mainStart()} + ${s.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${Y} + }`},Q4=(s,n,i,g,C,p,I=i.dataType)=>{let M=i.dims.map(K=>Number(K)??1),x=g.dims.map(K=>Number(K)??1),G=!nA.areEqual(M,x),S=M,T=nA.size(M),P=!1,j=!1,L=[G];if(G){let K=R0.calcShape(M,x,!1);if(!K)throw new Error("Can't perform binary op on the given tensors");S=K.slice(),T=nA.size(S);let ae=nA.size(M)===1,Y=nA.size(x)===1,V=M.length>0&&M[M.length-1]%4===0,ee=x.length>0&&x[x.length-1]%4===0;L.push(ae),L.push(Y),L.push(V),L.push(ee);let d=1;for(let v=1;vK.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:K=>P4(K,M,x,S,P,G,j,C,i.dataType,g.dataType,I,p),getRunData:()=>({outputs:[{dims:S,dataType:I}],dispatchGroup:{x:Math.ceil(T/64/4)},programUniforms:[{type:12,data:Math.ceil(nA.size(S)/4)},...lt(M,x,S)]})}},Ii=(s,n,i,g,C,p)=>{s.compute(Q4(n,C??"",s.inputs[0],s.inputs[1],i,g,p))},e3=s=>{Ii(s,"Add",(n,i)=>`${n}+${i}`)},A3=s=>{Ii(s,"Div",(n,i)=>`${n}/${i}`)},t3=s=>{Ii(s,"Equal",{scalar:(n,i)=>`u32(${n}==${i})`,vector:(n,i)=>`vec4(${n}==${i})`},void 0,void 0,9)},r3=s=>{Ii(s,"Mul",(n,i)=>`${n}*${i}`)},a3=s=>{let n=fA("input",s.inputs[0].dataType,s.inputs[0].dims).type.value;Ii(s,"Pow",{scalar:(i,g)=>`pow_custom(${i},${g})`,vector:(i,g)=>`pow_vector_custom(${i},${g})`},` + fn pow_custom(a : ${n}, b : ${n}) -> ${n} { + if (b == ${n}(0.0)) { + return ${n}(1.0); + } else if (a < ${n}(0.0) && f32(b) != floor(f32(b))) { + return ${n}(pow(f32(a), f32(b))); // NaN + } + return select(sign(a), ${n}(1.0), round(f32(abs(b) % ${n}(2.0))) != 1.0) * ${n}(${n==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); + } + fn pow_vector_custom(a : vec4<${n}>, b : vec4<${n}>) -> vec4<${n}> { + // TODO: implement vectorized pow + return vec4<${n}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); + } + `)},s3=s=>{Ii(s,"Sub",(n,i)=>`${n}-${i}`)},i3=s=>{Ii(s,"Greater",{scalar:(n,i)=>`u32(${n}>${i})`,vector:(n,i)=>`vec4(${n}>${i})`},void 0,void 0,9)},n3=s=>{Ii(s,"Less",{scalar:(n,i)=>`u32(${n}<${i})`,vector:(n,i)=>`vec4(${n}<${i})`},void 0,void 0,9)},o3=s=>{Ii(s,"GreaterOrEqual",{scalar:(n,i)=>`u32(${n}>=${i})`,vector:(n,i)=>`vec4(${n}>=${i})`},void 0,void 0,9)},l3=s=>{Ii(s,"LessOrEqual",{scalar:(n,i)=>`u32(${n}<=${i})`,vector:(n,i)=>`vec4(${n}<=${i})`},void 0,void 0,9)}}),S4,F4,O4,_4,c3,u3,Iw=xA(()=>{Ct(),yt(),aa(),Bt(),S4=(s,n)=>{if(!s||s.length<1)throw new Error("too few inputs");let i=0,g=s[i],C=g.dataType,p=g.dims.length;s.forEach((I,M)=>{if(M!==i){if(I.dataType!==C)throw new Error("input tensors should be one type");if(I.dims.length!==p)throw new Error("input tensors should have the same shape");I.dims.forEach((x,G)=>{if(G!==n&&x!==g.dims[G])throw new Error("non concat dimensions must match")})}})},F4=(s,n)=>` + fn calculateInputIndex(index: u32) -> u32 { + let sizeInConcatAxis = array(${n}); + for (var i: u32 = 0u; i < ${s}; i += 1u ) { + if (index < sizeInConcatAxis[i]) { + return i; + } + } + return ${s}u; + }`,O4=(s,n)=>{let i=s.length,g=[];for(let C=0;C{let C=nA.size(i),p=new Array(s.length),I=new Array(s.length),M=0,x=[],G=[],S=[{type:12,data:C}];for(let K=0;K`uniforms.sizeInConcatAxis${K}`).join(","),L=K=>` + + ${(()=>{K.registerUniform("outputSize","u32");for(let ae=0;ae(${j}); + ${P} -= sizeInConcatAxis[inputIndex - 1u]; + } + + ${O4(I,T)} + }`;return{name:"Concat",shaderCache:{hint:`${n}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:i,dataType:g}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:S}),getShaderSource:L}},c3=(s,n)=>{let i=s.inputs,g=i[0].dims,C=nA.normalizeAxis(n.axis,g.length);S4(i,C);let p=g.slice();p[C]=i.reduce((M,x)=>M+(x.dims.length>C?x.dims[C]:0),0);let I=i.filter(M=>nA.size(M.dims)>0);s.compute(_4(I,C,p,i[0].dataType),{inputs:I})},u3=s=>sr({axis:s.axis})}),qo,$o,e0,qf,t0=xA(()=>{Ct(),yt(),qo=(s,n,i="f32")=>{switch(s.activation){case"Relu":return`value = max(value, ${n}(0.0));`;case"Sigmoid":return`value = (${n}(1.0) / (${n}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${n}(${i}(uniforms.clip_min)), ${n}(${i}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${n}(0.0), min(${n}(1.0), ${i}(uniforms.alpha) * value + ${i}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${i}(uniforms.alpha) * value, value, value >= ${n}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value)); + value = sign(value) * (1.0 - e2x) / (1.0 + e2x); + `;case"":return"";default:throw new Error(`Unsupported activation ${s.activation}`)}},$o=(s,n)=>{s.activation==="Clip"?n.push({type:1,data:s.clipMax},{type:1,data:s.clipMin}):s.activation==="HardSigmoid"?n.push({type:1,data:s.alpha},{type:1,data:s.beta}):s.activation==="LeakyRelu"&&n.push({type:1,data:s.alpha})},e0=(s,n)=>{s.activation==="Clip"?n.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):s.activation==="HardSigmoid"?n.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):s.activation==="LeakyRelu"&&n.push({name:"alpha",type:"f32"})},qf=s=>{let n=(s==null?void 0:s.activation)||"";if(n==="HardSigmoid"){let[i,g]=(s==null?void 0:s.activation_params)||[.2,.5];return{activation:n,alpha:i,beta:g}}else if(n==="Clip"){let[i,g]=(s==null?void 0:s.activation_params)||[_m,zm];return{activation:n,clipMax:g,clipMin:i}}else if(n==="LeakyRelu"){let[i]=(s==null?void 0:s.activation_params)||[.01];return{activation:n,alpha:i}}return{activation:n}}}),_a,d3,$f=xA(()=>{_a=(s,n)=>{switch(s){case 1:return n;case 2:return`vec2<${n}>`;case 3:return`vec3<${n}>`;case 4:return`vec4<${n}>`;default:throw new Error(`${s}-component is not supported.`)}},d3=s=>` + ${s?"value = value + getBiasByOutputCoords(coords);":""} + `}),f3,ww=xA(()=>{f3=s=>` +fn getIndexFromCoords4D(coords : vec4, shape : vec4) -> i32 { + return dot(coords, vec4( + shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1)); +} +fn getOutputIndexFromCoords(coords : vec4) -> i32 { + return dot(coords, vec4( + i32(${s}.x), i32(${s}.y), i32(${s}.z), 1)); +} +`}),Xc,eg,Ag=xA(()=>{Ct(),yt(),Bt(),t0(),Xc=(s,n,i,g,C)=>{let p=g-i;return` + ${Array.from({length:i}).map((I,M)=>` + if (${at(n.shape,M,n.rank)} != 1) { + ${n.indicesSet(s,M,at(C,M+p,g))} + } else { + ${n.indicesSet(s,M,0)} + }`).join("")} +`},eg=(s,n,i,g,C=!1,p)=>{let I=s[0].dims,M=s[1].dims,x=I[I.length-2],G=M[M.length-1],S=I[I.length-1],T=qr(G),P=qr(S),j=qr(x),L=nA.size(i)/T/j,K=s.length>2,ae=g?g.slice(0,-2):i.slice(0,-2),Y=[nA.size(ae),x,G],V=[{type:12,data:L},{type:12,data:x},{type:12,data:G},{type:12,data:S}];$o(n,V),V.push(...lt(ae,I,M)),K&&V.push(...lt(s[2].dims)),V.push(...lt(Y));let ee=d=>{let v=Kf("batch_dims",s[0].dataType,ae.length),e=fA("a",s[0].dataType,I.length,P),u=fA("b",s[1].dataType,M.length,T),Q=tt("output",s[0].dataType,Y.length,T),oe=Ba(Q.type.tensor),O=qo(n,Q.type.value,oe),R=[e,u],De="";if(K){let Be=C?T:1;R.push(fA("bias",s[2].dataType,s[2].dims.length,Be)),De=`${C?`value += bias[col / ${Be}];`:`value += ${Q.type.value}(bias[row + i]);`}`}let ce=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];e0(n,ce);let Te=()=>{let Be=`var a_data: ${e.type.value};`;for(let Qe=0;Qe; + for (var k: u32 = 0u; k < uniforms.K; k = k + ${P}) { + ${Te()} + } + for (var i = 0u; i < ${j}u; i++) { + var value = values[i]; + ${De} + ${O} + let cur_indices = ${Q.type.indices}(batch, row + i, col); + let offset = ${Q.indicesToOffset("cur_indices")}; + ${Q.setByOffset(`offset / ${T}`,"value")}; + } + } + `};return{name:"MatMulNaive",shaderCache:{hint:`${n.activation};${T};${P};${j};${C}`,inputDependencies:K?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:p?p(i):i,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(L/64)},programUniforms:V}),getShaderSource:ee}}}),z4,N4,Bf,Pd,L4,Df,j4,Ou,tg=xA(()=>{Ct(),yt(),Bt(),t0(),Ag(),$f(),z4=(s,n)=>s?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart / innerElementSize + inputCol${n?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRow + innerRow, + kStart / innerElementSize + inputCol${n?", batchIndices":""}); + `,N4=(s,n)=>s?` + let ACached0 = mm_Asub[k * innerElementSize][localRow]; + let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; + let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; + ${n===3?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"} + for (var i = 0; i < rowPerThread; i = i + 1) { + acc[i] = BCached0 * ACached0[i] + acc[i]; + acc[i] = BCached1 * ACached1[i] + acc[i]; + acc[i] = BCached2 * ACached2[i] + acc[i]; + ${n===3?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"} + }`:` + for (var i = 0; i < rowPerThread; i = i + 1) { + let ACached = mm_Asub[tileRow + i][k]; + acc[i] = BCached0 * ACached.x + acc[i]; + acc[i] = BCached1 * ACached.y + acc[i]; + acc[i] = BCached2 * ACached.z + acc[i]; + ${n===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} + }`,Bf=(s,n,i="f32",g,C=!1,p=32,I=!1,M=32)=>{let x=n[1]*s[1],G=n[0]*s[0],S=C?x:p,T=C?p:x,P=S/n[0],j=p/n[1];if(!((C&&P===4&&s[1]===4||!C&&(P===3||P===4))&&S%n[0]===0&&p%n[1]===0&&s[0]===4))throw new Error(`If transposeA ${C} is true, innerElementSize ${P} and workPerThread[1] ${s[1]} must be 4. + Otherwise, innerElementSize ${P} must be 3 or 4. + tileAWidth ${S} must be divisible by workgroupSize[0]${n[0]}. tileInner ${p} must be divisible by workgroupSize[1] ${n[1]}. colPerThread ${s[0]} must be 4.`);return` +var mm_Asub: array, ${S/P}>, ${T}>; +var mm_Bsub: array, ${G/s[0]}>, ${p}>; + +const rowPerThread = ${s[1]}; +const colPerThread = ${s[0]}; +const innerElementSize = ${P}; +const tileInner = ${p}; + +@compute @workgroup_size(${n[0]}, ${n[1]}, ${n[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let localRow = i32(localId.y); + let tileRow = localRow * rowPerThread; + let tileCol = i32(localId.x); + + let globalRow =i32(globalId.y) * rowPerThread; + let globalCol = i32(globalId.x); + let batch = ${I?"0":"i32(globalId.z)"}; + ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} + let globalRowStart = i32(workgroupId.y) * ${x}; + + let num_tiles = ${I?`${Math.ceil(M/p)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${I?`i32(globalId.z) * ${M}`:"0"}; + + var acc: array, rowPerThread>; + + // Loop over shared dimension. + let tileRowB = localRow * ${j}; + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let inputRow = tileRow + innerRow; + let inputCol = tileCol; + ${z4(C,g)} + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${j}; innerRow = innerRow + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${g?", batchIndices":""}); + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + for (var k = 0; k < tileInner / innerElementSize; k = k + 1) { + let BCached0 = mm_Bsub[k * innerElementSize][tileCol]; + let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol]; + let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol]; + ${P===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} + + ${N4(C,P)} + } + + workgroupBarrier(); + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); + } +}`},Pd=(s,n)=>s?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart + inputCol${n?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRowStart + inputRow, + kStart + inputCol${n?", batchIndices":""}); + `,L4=s=>s?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Df=(s,n,i="f32",g,C=!1,p=32,I=!1,M=32,x=!1)=>{let G=s[1]*n[1],S=s[0]*n[0],T=C?G:p,P=C?p:G;if(!(P%n[1]===0&&T%n[0]===0&&p%n[1]===0))throw new Error(`tileAHight ${P} must be divisible by workgroupSize[1]${n[1]}, tileAWidth ${T} must be divisible by workgroupSize[0]${n[0]}, tileInner ${p} must be divisible by workgroupSize[1]${n[1]}`);let j=P/n[1],L=T/n[0],K=p/n[1],ae=x?` + let localRow = i32(localId.y); + let localCol = i32(localId.x); + let globalRowStart = i32(workgroupId.y) * ${G}; + let globalColStart = i32(workgroupId.x) * ${S}; + + // Loop over shared dimension. + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var inputRow = localRow; inputRow < ${P}; inputRow = inputRow + ${n[1]}) { + for (var inputCol = localCol; inputCol < ${T}; inputCol = inputCol + ${n[0]}) { + ${Pd(C,g)} + } + } + // Load one tile of B into local memory. + for (var inputRow = localRow; inputRow < ${p}; inputRow = inputRow + ${n[1]}) { + for (var inputCol = localCol; inputCol < ${S}; inputCol = inputCol + ${n[0]}) { + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalColStart + inputCol${g?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${i}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][localCol + inner * ${n[0]}]; + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let ACached = ${C?`mm_Asub[k][localRow + innerRow * ${n[1]}];`:`mm_Asub[localRow + innerRow * ${n[1]}][k];`} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + + ACached * BCached[innerCol]; + } + } + } + workgroupBarrier(); + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let gRow = globalRowStart + localRow + innerRow * ${n[1]}; + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let gCol = globalColStart + localCol + innerCol * ${n[0]}; + mm_write(batch, gRow, gCol, acc[innerRow][innerCol]); + } + } + `:` +let tileRow = i32(localId.y) * rowPerThread; +let tileCol = i32(localId.x) * colPerThread; + +let globalRow = i32(globalId.y) * rowPerThread; +let globalCol = i32(globalId.x) * colPerThread; +let globalRowStart = i32(workgroupId.y) * ${G}; + +let tileRowA = i32(localId.y) * ${j}; +let tileColA = i32(localId.x) * ${L}; +let tileRowB = i32(localId.y) * ${K}; +// Loop over shared dimension. +for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < ${j}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < ${L}; innerCol = innerCol + 1) { + let inputRow = tileRowA + innerRow; + let inputCol = tileColA + innerCol; + ${Pd(C,g)} + } + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${K}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol + innerCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalCol + innerCol${g?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${i}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][tileCol + inner]; + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + ${L4(C)} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol]; + } + } + } + + workgroupBarrier(); +} + +for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + mm_write(batch, globalRow + innerRow, globalCol + innerCol, + acc[innerRow][innerCol]); + } +} +`;return` + var mm_Asub : array, ${P}>; + var mm_Bsub : array, ${p}>; + const rowPerThread = ${s[1]}; + const colPerThread = ${s[0]}; + const tileInner = ${p}; + +@compute @workgroup_size(${n[0]}, ${n[1]}, ${n[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let batch = ${I?"0":"i32(globalId.z)"}; + ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} + let num_tiles = ${I?`${Math.ceil(M/p)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${I?`i32(globalId.z) * ${M}`:"0"}; + + var acc : array, rowPerThread>; + ${ae} + } +`},j4=(s,n,i,g,C=!1)=>{let[p,I,M,x]=g,G=Ba(g[0].type.tensor);return` + fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${p.type.indices}) -> ${_a(s,G)} { + var value = ${_a(s,G)}(0.0); + let col = colIn * ${s}; + if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) + { + var aIndices: ${I.type.indices}; + ${Xc("aIndices",I,I.rank-2,p.rank,"batchIndices")} + ${I.indicesSet("aIndices",I.rank-2,"u32(row)")} + ${I.indicesSet("aIndices",I.rank-1,"u32(colIn)")} + value = ${I.getByIndices("aIndices")}; + } + return value; + } + + fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${p.type.indices}) -> ${_a(s,G)} { + var value = ${_a(s,G)}(0.0); + let col = colIn * ${s}; + if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) + { + var bIndices: ${M.type.indices}; + ${Xc("bIndices",M,M.rank-2,p.rank,"batchIndices")} + ${M.indicesSet("bIndices",M.rank-2,"u32(row)")} + ${M.indicesSet("bIndices",M.rank-1,"u32(colIn)")} + value = ${M.getByIndices("bIndices")}; + } + return value; + } + + fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${_a(s,G)}) { + let col = colIn * ${s}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueIn; + let coords = vec3(batch, row, colIn); + ${n?`value = value + ${C?"bias[colIn]":`${_a(s,G)}(bias[row])`};`:""} + ${i} + ${x.setByIndices("vec3(coords)","value")} + } + } + `},Ou=(s,n,i,g,C=!1,p)=>{let I=s[0].dims,M=s[1].dims,x=I.slice(0,-2),G=M.slice(0,-2),S=g?g.slice(0,-2):i.slice(0,-2),T=nA.size(S),P=I[I.length-2],j=I[I.length-1],L=M[M.length-1],K=j%4===0&&L%4===0,ae=P<=8?[4,1,1]:[4,4,1],Y=[8,8,1],V=[Math.ceil(L/Y[0]/ae[0]),Math.ceil(P/Y[1]/ae[1]),Math.ceil(T/Y[2]/ae[2])],ee=K?4:1,d=[...x,P,j/ee],v=d.length,e=[...G,j,L/ee],u=e.length,Q=[T,P,L/ee],oe=[{type:6,data:P},{type:6,data:L},{type:6,data:j}];$o(n,oe),oe.push(...lt(S,d,e));let O=["rank","rank"],R=s.length>2;R&&(oe.push(...lt(s[2].dims)),O.push("rank")),oe.push(...lt(Q));let De=ce=>{let Te=S.length,Be=Kf("batchDims",s[0].dataType,Te,1),Qe=Ba(s[0].dataType),je=fA("a",s[0].dataType,v,ee),Se=fA("b",s[1].dataType,u,ee),Je=tt("result",s[0].dataType,Q.length,ee),Xe=[je,Se];if(R){let tA=C?ee:1;Xe.push(fA("bias",s[2].dataType,s[2].dims.length,tA))}let be=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];e0(n,be);let le=Ba(Je.type.tensor),Ie=qo(n,Je.type.value,le),Oe=j4(ee,R,Ie,[Be,je,Se,Je],C);return` + ${ce.registerUniforms(be).registerInternalVariables(Be).declareVariables(...Xe,Je)} + ${Oe} + ${K?Bf(ae,Y,Qe,Be):Df(ae,Y,Qe,Be)} + `};return{name:"MatMul",shaderCache:{hint:`${ae};${n.activation};${K};${C}`,inputDependencies:O},getRunData:()=>({outputs:[{dims:p?p(i):i,dataType:s[0].dataType}],dispatchGroup:{x:V[0],y:V[1],z:V[2]},programUniforms:oe}),getShaderSource:De}}}),R4,g3,kw=xA(()=>{Ct(),Cn(),Bt(),t0(),$f(),ww(),tg(),R4=(s,n,i,g,C=!1,p,I=4,M=4,x=4,G="f32")=>{let S=oe=>{switch(oe){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${G}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${oe} is not supported.`)}},T=oe=>{switch(oe){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${oe} is not supported.`)}},P=s?` + let coord = vec4(batch, xRow, xCol, xCh); + `:` + let coord = vec4(batch, xCh, xRow, xCol); + `,j=s?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,L=s?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",K=s?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",ae=s?"row":"col",Y=s?"col":"row",V=` + let inChannels = i32(uniforms.w_shape[2]); + let outWidth = ${s?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${ae} / outWidth; + let outCol = ${ae} % outWidth; + + let WRow = ${Y} / (i32(uniforms.w_shape[1]) * inChannels); + let WCol = ${Y} / inChannels % i32(uniforms.w_shape[1]); + let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0]; + let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1]; + let xCh = ${Y} % inChannels; + var resData = ${_a(I,G)}(0.0); + // The bounds checking is always needed since we use it to pad zero for + // the 'same' padding type. + if (xRow >= 0 && xRow < ${L} && xCol >= 0 && xCol < ${K}) { + ${P} + let xIndex = getIndexFromCoords4D(coord, vec4(uniforms.x_shape)); + ${S(I)} + } + return resData;`,ee=s?n&&g?` + let col = colIn * ${I}; + ${V}`:` + let col = colIn * ${I}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${V} + } + return ${_a(I,G)}(0.0);`:g&&i?` + let col = colIn * ${I}; + ${V}`:` + let col = colIn * ${I}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${V} + } + return ${_a(I,G)}(0.0);`,d=s?g&&i?T(M):` + let col = colIn * ${M}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${T(M)} + } + return ${_a(M,G)}(0.0);`:` + let col = colIn * ${M}; + if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) { + ${T(M)} + } + return ${_a(M,G)}(0.0);`,v=_a(x,G),e=_a(s?I:M,G),u=_a(s?M:I,G),Q=qo(p,v,G);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${e} { + ${s?ee:d} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${u} { + ${s?d:ee} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${v}) { + let col = colIn * ${x}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) + { + var value = valueIn; + let outWidth = ${s?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${j} + ${d3(C)} + ${Q} + setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); + } + }`},g3=(s,n,i,g,C,p,I,M,x)=>{let G=n.format==="NHWC",S=G?s[0].dims[3]:s[0].dims[1],T=i[0],P=G?i[2]:i[3],j=G?i[1]:i[2],L=G?i[3]:i[1],K=G&&(S%4===0||S%3===0)&&L%4===0,ae=G?L:P*j,Y=G?P*j:L,V=[8,8,1],ee=g<=8?[4,1,1]:[4,4,1],d=[Math.ceil(ae/V[0]/ee[0]),Math.ceil(Y/V[1]/ee[1]),Math.ceil(T/V[2]/ee[2])];Yt("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${d}`);let v=K?G&&S%4!==0?3:4:1,e=V[1]*ee[1],u=V[0]*ee[0],Q=Math.max(V[0]*v,V[1]),oe=g%e===0,O=C%u===0,R=p%Q===0,De=K?[v,4,4]:[1,1,1],ce=[{type:6,data:g},{type:6,data:C},{type:6,data:p},{type:6,data:[n.pads[0],n.pads[1]]},{type:6,data:n.strides},{type:6,data:n.dilations}];$o(n,ce),ce.push(...lt(s[0].dims,s[1].dims));let Te=["rank","rank"];I&&(ce.push(...lt(s[2].dims)),Te.push("rank")),ce.push(...lt(i));let Be=Qe=>{let je=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];e0(n,je);let Se=K?4:1,Je=Ba(s[0].dataType),Xe=` + fn setOutputAtIndex(flatIndex : i32, value : ${K?`vec4<${Je}>`:Je}) { + result[flatIndex] = ${K?`vec4<${Je}>`:Je}(value); + } + fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${K?`vec4<${Je}>`:Je}) { + let flatIndex = getOutputIndexFromCoords(vec4(d0, d1, d2, d3)); + setOutputAtIndex(flatIndex ${K?"/ 4":""}, value); + }`,be=fA("x",s[0].dataType,s[0].dims.length,v===3?1:v),le=fA("w",s[1].dataType,s[1].dims.length,Se),Ie=[be,le],Oe=tt("result",s[0].dataType,i.length,Se);if(I){let tA=fA("bias",s[2].dataType,s[2].dims.length,Se);Ie.push(tA),Xe+=` + fn getBiasByOutputCoords(coords : vec4) -> ${K?`vec4<${Je}>`:Je} { + return bias[coords.${G?"w":"y"}${K?"/ 4":""}]; + }`}return` + ${f3("uniforms.result_strides")} + //struct Uniforms { xShape : vec4, wShape : vec4, outShape : vec4, + // outShapeStrides: vec3, filterDims : vec2, pad : vec2, stride : vec2, + // dilation : vec2, dimAOuter : i32, dimBOuter : i32, dimInner : i32 }; + ${Qe.registerUniforms(je).declareVariables(...Ie,Oe)} + ${Xe} + ${R4(G,oe,O,R,I,n,De[0],De[1],De[2],Je)} + ${K?Bf(ee,V,Je,void 0,!G,Q):Df(ee,V,Je,void 0,!G,Q,!1,void 0,M)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${n.cacheKey};${v};${K};${oe};${O};${R};${e};${u};${Q}`,inputDependencies:Te},getRunData:()=>({outputs:[{dims:x?x(i):i,dataType:s[0].dataType}],dispatchGroup:{x:d[0],y:d[1],z:d[2]},programUniforms:ce}),getShaderSource:Be}}}),W4,Qd,Oc,V4,Sd,Y4,p3,h3,Ew=xA(()=>{Ct(),Cn(),yt(),Bt(),t0(),$f(),W4=s=>{let n=1;for(let i=0;itypeof s=="number"?[s,s,s]:s,Oc=(s,n)=>n<=1?s:s+(s-1)*(n-1),V4=(s,n,i,g=1)=>{let C=Oc(n,g);return Math.floor((s[0]*(i-1)-i+C)/2)},Sd=(s,n,i,g,C)=>{C==null&&(C=V4(s,n[0],g[0]));let p=[0,0,0,i];for(let I=0;I<3;I++)s[I]+2*C>=n[I]&&(p[I]=Math.trunc((s[I]-n[I]+2*C)/g[I]+1));return p},Y4=(s,n,i,g,C,p,I,M,x,G)=>{let S,T,P,j;if(s==="VALID"&&(s=0),typeof s=="number"){S={top:s,bottom:s,left:s,right:s,front:s,back:s};let L=Sd([n,i,g,1],[M,x,G],1,[C,p,I],s);T=L[0],P=L[1],j=L[2]}else if(Array.isArray(s)){if(!s.every((K,ae,Y)=>K===Y[0]))throw Error(`Unsupported padding parameter: ${s}`);S={top:s[0],bottom:s[1],left:s[2],right:s[3],front:s[4],back:s[5]};let L=Sd([n,i,g,1],[M,x,G],1,[C,p,I],s[0]);T=L[0],P=L[1],j=L[2]}else if(s==="SAME_UPPER"){T=Math.ceil(n/C),P=Math.ceil(i/p),j=Math.ceil(g/I);let L=(T-1)*C+M-n,K=(P-1)*p+x-i,ae=(j-1)*I+G-g,Y=Math.floor(L/2),V=L-Y,ee=Math.floor(K/2),d=K-ee,v=Math.floor(ae/2),e=ae-v;S={top:ee,bottom:d,left:v,right:e,front:Y,back:V}}else throw Error(`Unknown padding parameter: ${s}`);return{padInfo:S,outDepth:T,outHeight:P,outWidth:j}},p3=(s,n,i,g,C,p=!1,I="channelsLast")=>{let M,x,G,S,T;if(I==="channelsLast")[M,x,G,S,T]=s;else if(I==="channelsFirst")[M,T,x,G,S]=s;else throw new Error(`Unknown dataFormat ${I}`);let[P,,j,L,K]=n,[ae,Y,V]=Qd(i),[ee,d,v]=Qd(g),e=Oc(j,ee),u=Oc(L,d),Q=Oc(K,v),{padInfo:oe,outDepth:O,outHeight:R,outWidth:De}=Y4(C,x,G,S,ae,Y,V,e,u,Q),ce=p?P*T:P,Te=[0,0,0,0,0];return I==="channelsFirst"?Te=[M,ce,O,R,De]:I==="channelsLast"&&(Te=[M,O,R,De,ce]),{batchSize:M,dataFormat:I,inDepth:x,inHeight:G,inWidth:S,inChannels:T,outDepth:O,outHeight:R,outWidth:De,outChannels:ce,padInfo:oe,strideDepth:ae,strideHeight:Y,strideWidth:V,filterDepth:j,filterHeight:L,filterWidth:K,effectiveFilterDepth:e,effectiveFilterHeight:u,effectiveFilterWidth:Q,dilationDepth:ee,dilationHeight:d,dilationWidth:v,inShape:s,outShape:Te,filterShape:n}},h3=(s,n,i,g,C,p)=>{let I=p==="channelsLast";I?s[0].dims[3]:s[0].dims[1];let M=[64,1,1],x={x:i.map((ae,Y)=>Y)},G=[Math.ceil(W4(x.x.map(ae=>i[ae]))/M[0]),1,1];Yt("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${G}`);let S=1,T=nA.size(i),P=[{type:12,data:T},{type:12,data:g},{type:12,data:C},{type:12,data:n.strides},{type:12,data:n.dilations}];$o(n,P),P.push(...lt(s[0].dims,s[1].dims));let j=["rank","rank"],L=s.length===3;L&&(P.push(...lt(s[2].dims)),j.push("rank")),P.push(...lt(i));let K=ae=>{let Y=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:g.length},{name:"pads",type:"u32",length:C.length},{name:"strides",type:"u32",length:n.strides.length},{name:"dilations",type:"u32",length:n.dilations.length}];e0(n,Y);let V=1,ee=Ba(s[0].dataType),d=fA("x",s[0].dataType,s[0].dims.length,S),v=fA("W",s[1].dataType,s[1].dims.length,V),e=[d,v],u=tt("result",s[0].dataType,i.length,V),Q="";if(L){let R=fA("bias",s[2].dataType,s[2].dims.length,V);e.push(R),Q+=` + fn getBiasByOutputCoords(coords : array) -> ${ee} { + return bias[${I?at("coords",4,5):at("coords",1,5)}]; + }`}let oe=_a(S,ee),O=qo(n,oe,ee);return` + ${Q} + fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${d.getByIndices("aIndices")}; + } + fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${v.getByIndices("aIndices")}; + } + ${ae.registerUniforms(Y).declareVariables(...e,u)} + ${ae.mainStart()} + ${ae.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let coords = ${u.offsetToIndices("global_idx")}; + let batch = ${at("coords",0,d.rank)}; + let d2 = ${I?at("coords",d.rank-1,d.rank):at("coords",1,d.rank)}; + let xFRCCorner = vec3(${I?at("coords",1,d.rank):at("coords",2,d.rank)}, + ${I?at("coords",2,d.rank):at("coords",3,d.rank)}, + ${I?at("coords",3,d.rank):at("coords",4,d.rank)}) * uniforms.strides - uniforms.pads; + let xFCorner = xFRCCorner.x; + let xRCorner = xFRCCorner.y; + let xCCorner = xFRCCorner.z; + let xShapeY = ${I?at("uniforms.x_shape",1,d.rank):at("uniforms.x_shape",2,d.rank)}; + let xShapeZ = ${I?at("uniforms.x_shape",2,d.rank):at("uniforms.x_shape",3,d.rank)}; + let xShapeW = ${I?at("uniforms.x_shape",3,d.rank):at("uniforms.x_shape",4,d.rank)}; + let xShapeU = ${I?at("uniforms.x_shape",4,d.rank):at("uniforms.x_shape",1,d.rank)}; + let inputDepthNearestVec4 = (xShapeU / 4) * 4; + let inputDepthVec4Remainder = xShapeU % 4; + + var value = 0.0; + for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) { + let xF = xFCorner + wF * uniforms.dilations[0]; + if (xF < 0 || xF >= xShapeY) { + continue; + } + + for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) { + let xR = xRCorner + wR * uniforms.dilations[1]; + if (xR < 0 || xR >= xShapeZ) { + continue; + } + + for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) { + let xC = xCCorner + wC * uniforms.dilations[2]; + if (xC < 0 || xC >= xShapeW) { + continue; + } + + for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) { + ${I?`let xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3)); + `:`let xValues = vec4( + getX(batch, d1, xF, xR, xC), + getX(batch, d1 + 1, xF, xR, xC), + getX(batch, d1 + 2, xF, xR, xC), + getX(batch, d1 + 3, xF, xR, xC)); + `} + let wValues = vec4( + getW(d2, d1, wF, wR, wC), + getW(d2, d1 + 1, wF, wR, wC), + getW(d2, d1 + 2, wF, wR, wC), + getW(d2, d1 + 3, wF, wR, wC)); + value += dot(xValues, wValues); + } + if (inputDepthVec4Remainder == 1) { + ${I?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`} + } else if (inputDepthVec4Remainder == 2) { + ${I?`let xValues = vec2( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)); + `:`let xValues = vec2( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC)); + `} + let wValues = vec2( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC)); + value += dot(xValues, wValues); + } else if (inputDepthVec4Remainder == 3) { + ${I?`let xValues = vec3( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)); + `:`let xValues = vec3( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC)); + `} + let wValues = vec3( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC)); + value += dot(xValues, wValues); + } + } + } + } + ${L?"value = value + getBiasByOutputCoords(coords)":""}; + ${O} + result[global_idx] = f32(value); + }`};return{name:"Conv3DNaive",shaderCache:{hint:`${n.cacheKey};${I};${S};${L}`,inputDependencies:j},getRunData:()=>({outputs:[{dims:i,dataType:s[0].dataType}],dispatchGroup:{x:G[0],y:G[1],z:G[2]},programUniforms:P}),getShaderSource:K}}}),m3,C3,Mw=xA(()=>{Ct(),yt(),Bt(),t0(),m3=(s,n,i,g)=>{let C=s.length>2,p=C?"value += b[output_channel];":"",I=s[0].dims,M=s[1].dims,x=n.format==="NHWC",G=x?i[3]:i[1],S=G/n.group,T=x&&S>=4?qr(G):1,P=nA.size(i)/T,j=[{type:12,data:P},{type:12,data:n.dilations},{type:12,data:[n.strides[0],n.strides[1]]},{type:12,data:[n.pads[0],n.pads[1]]},{type:12,data:S}];$o(n,j),j.push(...lt(I,[M[0],M[1],M[2],M[3]/T]));let L=C?["rank","rank","rank"]:["rank","rank"];j.push(...lt([i[0],i[1],i[2],i[3]/T]));let K=ae=>{let Y=tt("output",s[0].dataType,i.length,T),V=Ba(Y.type.tensor),ee=qo(n,Y.type.value,V),d=fA("x",s[0].dataType,I.length),v=fA("w",s[1].dataType,M.length,T),e=[d,v];C&&e.push(fA("b",s[2].dataType,s[2].dims,T));let u=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:n.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];e0(n,u);let Q=x?` + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) { + continue; + } + + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + let xVal = ${d.get("batch","xHeight","xWidth","input_channel")}; + let wVal = ${v.get("wHeight","wWidth","wInChannel","output_channel")}; + value += xVal * wVal; + } + } + } + `:` + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) { + continue; + } + + let xVal = ${d.get("batch","input_channel","xHeight","xWidth")}; + let wVal = ${v.get("output_channel","wInChannel","wHeight","wWidth")}; + value += xVal * wVal; + } + } + } + `;return` + ${ae.registerUniforms(u).declareVariables(...e,Y)} + + ${ae.mainStart()} + ${ae.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let outputIndices = ${Y.offsetToIndices("global_idx")}; + let batch: u32 = outputIndices[0]; + let output_channel: u32 = outputIndices[${x?3:1}]; + let xRCCorner: vec2 = vec2(outputIndices[${x?1:2}], outputIndices[${x?2:3}]) * uniforms.strides - uniforms.pads; + let group_id: u32 = output_channel * ${T} / uniforms.output_channels_per_group; + var in_channel_offset = group_id * uniforms.w_shape[${x?2:1}]; + + var value: ${Y.type.value} = ${Y.type.value}(0); + ${Q} + ${p} + ${ee} + ${Y.setByOffset("global_idx","value")} + }`};return{name:"GroupedConv",shaderCache:{hint:`${n.cacheKey}_${T}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:g?g(i):i,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:j}),getShaderSource:K}},C3=(s,n,i,g)=>{let C=s.length>2,p=qr(i[3]),I=qr(i[2]),M=nA.size(i)/p/I,x=[s[0].dims[0],s[0].dims[1],s[0].dims[2],s[0].dims[3]/p],G=[s[1].dims[0],s[1].dims[1],s[1].dims[2],s[1].dims[3]/p],S=[i[0],i[1],i[2],i[3]/p],T=[{type:12,data:M},{type:6,data:[n.strides[0],n.strides[1]]},{type:6,data:[n.pads[0],n.pads[1]]}];$o(n,T),T.push(...lt(x,G,S));let P=(I-1)*n.strides[1]+G[1],j=L=>{let K=tt("output",s[0].dataType,S.length,p),ae=Ba(K.type.tensor),Y=qo(n,K.type.value,ae),V=fA("x",s[0].dataType,x.length,p),ee=fA("w",s[1].dataType,G.length,p),d=[V,ee];C&&d.push(fA("b",s[2].dataType,s[2].dims,p));let v=C?"value += b[output_channel];":"",e=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return e0(n,e),` + ${L.registerUniforms(e).declareVariables(...d,K)} + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let width0 = uniforms.output_shape[3]; + let output_channel = global_idx % width0; + var index1 = global_idx / width0; + let width1 = uniforms.output_shape[2] / ${I}u; + let col = (index1 % width1) * ${I}u; + index1 = index1 / width1; + let row = index1 % uniforms.output_shape[1]; + let batch = index1 / uniforms.output_shape[1]; + + let x_corner = vec2(i32(row), i32(col)) * uniforms.strides - uniforms.pads; + + var x_vals: array<${V.type.value}, ${P}>; + var values: array<${K.type.value}, ${I}>; + let input_channel = output_channel; + // Use constant instead of uniform can give better performance for w's height/width. + for (var w_height: u32 = 0u; w_height < ${G[0]}; w_height++) { + let x_height = x_corner.x + i32(w_height); + if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) { + for (var i = 0; i < ${P}; i++) { + let x_width = x_corner.y + i; + if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { + x_vals[i] = ${V.get("batch","u32(x_height)","u32(x_width)","input_channel")}; + } else { + x_vals[i] = ${V.type.value}(0); + } + } + for (var w_width: u32 = 0u; w_width < ${G[1]}; w_width++) { + let w_val = ${ee.get("w_height","w_width","0","output_channel")}; + for (var i = 0u; i < ${I}u; i++) { + values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); + } + } + } + } + + for (var i = 0u; i < ${I}u; i++) { + var value = values[i]; + ${v} + ${Y} + ${K.set("batch","row","col + i","output_channel","value")}; + } + }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${n.cacheKey};${p};${I};${P};${G[0]};${G[1]}`,inputDependencies:C?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:g?g(i):i,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:T}),getShaderSource:j}}}),H4,Iu,U4,wu,Tf,Fd,K4,X4,Gf,vw=xA(()=>{yt(),kw(),Ew(),tg(),Mw(),t0(),Ag(),ao(),H4=(s,n,i,g,C,p)=>{let I=s[0],M=s.slice(p?1:2,p?3:4),x=M.length,G=n[0],S=n.slice(2).map((P,j)=>P+(P-1)*(i[j]-1)),T=M.map((P,j)=>P+g[j]+g[j+x]).map((P,j)=>Math.floor((P-S[j]+C[j])/C[j]));return T.splice(0,0,I),T.splice(p?3:1,0,G),T},Iu=[2,3,1,0],U4=(s,n)=>{if(!s||s.length!==2&&s.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(s[0].dims.length>5)throw new Error("greater than 5D is not supported");if(s[0].dims.length!==s[1].dims.length)throw new Error("filter does not have same dimension as input");let i=s[0].dims[n.format==="NHWC"?s[0].dims.length-1:1],g=s[1].dims[1]*n.group;if(i!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(s.length===3&&(s[2].dims.length!==1||s[1].dims[0]!==s[2].dims[0]))throw new Error("invalid bias");let C=s[0].dims.length-2;if(n.dilations.length!==C)throw new Error(`dilations should be ${C}D`);if(n.strides.length!==C)throw new Error(`strides should be ${C}D`);if(n.pads.length!==C*2)throw new Error(`pads should be ${C*2}D`);if(n.kernelShape.length!==0&&n.kernelShape.length!==s[1].dims.length-2)throw new Error("invalid kernel shape")},wu=(s,n)=>{let i=s.kernelShape.slice();i.length{let n=qf(s),i=s.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][s.auto_pad],C=s.dilations,p=s.group,I=s.kernel_shape,M=s.pads,x=s.strides,G=s.w_is_const();return{autoPad:g,format:i,dilations:C,group:p,kernelShape:I,pads:M,strides:x,wIsConst:G,...n,cacheKey:`${s.format};${n.activation};`}},Fd=(s,n,i,g)=>{let C=i.format==="NHWC",p=H4(n[0].dims,n[1].dims,i.dilations,i.pads,i.strides,C);if(i.group!==1){let e=[n[0]];if(C){let u=s.kernelCustomData.wT??s.compute(Ps(n[1],Iu),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!s.kernelCustomData.wT&&(s.kernelCustomData.wT=u),e.push(u)}else e.push(n[1]);n.length===3&&e.push(n[2]),!s.adapterInfo.isArchitecture("ampere")&&C&&n[1].dims[0]===i.group&&n[1].dims[1]===1&&i.dilations[0]===1&&i.dilations[1]===1?s.compute(C3(e,i,p,g),{inputs:e}):s.compute(m3(e,i,p,g),{inputs:e});return}let I=n.length===3,M=n[0].dims[C?1:2],x=n[0].dims[C?2:3],G=n[0].dims[C?3:1],S=n[1].dims[2],T=n[1].dims[3],P=p[C?1:2],j=p[C?2:3],L=p[C?3:1],K=C&&S===M&&T===x&&i.pads[0]===0&&i.pads[1]===0;if(K||S===1&&T===1&&i.dilations[0]===1&&i.dilations[1]===1&&i.strides[0]===1&&i.strides[1]===1&&i.pads[0]===0&&i.pads[1]===0){let e=p[0],u,Q,oe,O=[];if(C){let ce=s.kernelCustomData.wT??s.compute(Ps(n[1],Iu),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];if(i.wIsConst&&!s.kernelCustomData.wT&&(s.kernelCustomData.wT=ce),K){let Te=M*x*G;u=n[0].reshape([1,e,Te]),Q=ce.reshape([1,Te,L]),oe=[1,e,L]}else u=n[0].reshape([e,M*x,G]),Q=ce.reshape([1,G,L]),oe=[e,P*j,L];O.push(u),O.push(Q)}else u=n[0].reshape([e,G,M*x]),Q=n[1].reshape([1,L,G]),oe=[e,L,P*j],O.push(Q),O.push(u);I&&O.push(n[2]);let R=oe[2],De=O[0].dims[O[0].dims.length-1];R<8&&De<8?s.compute(eg(O,i,p,oe,C,g),{inputs:O}):s.compute(Ou(O,i,p,oe,C,g),{inputs:O});return}let ae=!0,Y=s.kernelCustomData.wT??s.compute(Ps(n[1],Iu),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!s.kernelCustomData.wT&&(s.kernelCustomData.wT=Y);let V=[n[0],Y];I&&V.push(n[2]);let ee=C?P*j:L,d=C?L:P*j,v=S*T*G;s.compute(g3(V,i,p,ee,d,v,I,ae,g),{inputs:V})},K4=(s,n)=>{let i=n.format==="NHWC",g=[s.inputs[0].reshape(i?[s.inputs[0].dims[0],1,s.inputs[0].dims[1],s.inputs[0].dims[2]]:[s.inputs[0].dims[0],s.inputs[0].dims[1],1,s.inputs[0].dims[2]]),s.inputs[1].reshape([s.inputs[1].dims[0],s.inputs[1].dims[1],1,s.inputs[1].dims[2]])];s.inputs.length===3&&g.push(s.inputs[2]);let C=[0,n.pads[0],0,n.pads[1]],p=[1].concat(n.strides),I=[1].concat(n.dilations),M=[1].concat(n.kernelShape),x=wu({...n,pads:C,strides:p,dilations:I,kernelShape:M},g);Fd(s,g,x,G=>i?[G[0],G[2],G[3]]:[G[0],G[1],G[3]])},X4=(s,n,i)=>{let g=i.format==="NHWC"?"channelsLast":"channelsFirst",C=wu(i,n),p=i.autoPad==="NOTSET"?i.pads:i.autoPad,I=p3(n[0].dims,n[1].dims,i.strides,i.dilations,p,!1,g);s.compute(h3(n,C,I.outShape,[I.filterDepth,I.filterHeight,I.filterWidth],[I.padInfo.front,I.padInfo.top,I.padInfo.left],g))},Gf=(s,n)=>{if(U4(s.inputs,n),s.inputs[0].dims.length===3)K4(s,n);else if(s.inputs[0].dims.length===5)X4(s,s.inputs,n);else{let i=wu(n,s.inputs);Fd(s,s.inputs,i)}}}),b3,yw=xA(()=>{Ct(),Cn(),yt(),Bt(),b3=(s,n,i)=>{let g=s.length>2,C=n.outputShape,p=n.format==="NHWC",I=n.group,M=s[1].dims,x=M[2]/I,G=M[3],S=p?qr(x):1,T=p&&G===1&&x>=4,P=T?Math.floor(x/4)*4:Math.floor(x/S)*S,j=x-P,L=p?qr(G):1,K=p?G===1?S:L:1,ae=nA.size(C)/L,Y=[Math.ceil(ae/64),1,1];Yt("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${Y}`);let V=["rank","rank"],ee=[n.strides[0],n.strides[1]],d=[n.kernelShape[p?1:2],n.kernelShape[p?2:3]],v=[n.dilations[0],n.dilations[1]],e=[d[0]+(n.dilations[0]<=1?0:(n.kernelShape[p?1:2]-1)*(n.dilations[0]-1)),d[1]+(n.dilations[1]<=1?0:(n.kernelShape[p?2:3]-1)*(n.dilations[1]-1))],u=[e[0]-1-Math.floor((n.pads[0]+n.pads[2])/2),e[1]-1-Math.floor((n.pads[1]+n.pads[3])/2)],Q=[{type:12,data:ae},{type:12,data:ee},{type:12,data:d},{type:12,data:v},{type:12,data:e},{type:6,data:u},{type:12,data:P},{type:12,data:x},{type:12,data:G},...lt(s[0].dims,s[1].dims)];g&&(Q.push(...lt(s[2].dims)),V.push("rank")),Q.push(...lt(C));let oe=O=>{let R=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:ee.length},{name:"filter_dims",type:"u32",length:d.length},{name:"dilations",type:"u32",length:d.length},{name:"effective_filter_dims",type:"u32",length:e.length},{name:"pads",type:"i32",length:u.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],De=Ba(s[0].dataType),ce=p?1:2,Te=p?2:3,Be=p?3:1,Qe=fA("W",s[1].dataType,s[1].dims.length,K),je=fA("Dy",s[0].dataType,s[0].dims.length,S),Se=[je,Qe];g&&Se.push(fA("bias",s[2].dataType,[C[Be]].length,L));let Je=tt("result",s[0].dataType,C.length,L),Xe=()=>{let Ie="";if(T)S===4?Ie+=` + let xValue = ${je.getByOffset("x_offset")}; + let wValue = ${Qe.getByOffset("w_offset")}; + dotProd = dotProd + dot(xValue, wValue); + x_offset += 1u; + w_offset += 1u;`:S===2?Ie+=` + dotProd = dotProd + dot(vec4<${De}>(${je.getByOffset("x_offset")}, ${je.getByOffset("x_offset + 1u")}), vec4<${De}>(${Qe.getByOffset("w_offset")}, ${Qe.getByOffset("w_offset + 1u")})); + x_offset += 2u; + w_offset += 2u;`:S===1&&(Ie+=` + dotProd = dotProd + dot(vec4<${De}>(${je.getByOffset("x_offset")}, ${je.getByOffset("x_offset + 1u")}, ${je.getByOffset("x_offset + 2u")}, ${je.getByOffset("x_offset + 3u")}), vec4<${De}>(${Qe.getByOffset("w_offset")}, ${Qe.getByOffset("w_offset + 1u")}, ${Qe.getByOffset("w_offset + 2u")}, ${Qe.getByOffset("w_offset + 3u")})); + x_offset += 4u; + w_offset += 4u;`);else if(Ie+=` + let xValue = ${p?je.getByOffset(`${je.indicesToOffset(`${je.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${S}`):je.get("batch","inputChannel","idyR","idyC")}; + `,S===1)Ie+=` + let w_offset = ${Qe.indicesToOffset(`${Qe.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)}; + let wValue = ${Qe.getByOffset(`w_offset / ${K}`)}; + dotProd = dotProd + xValue * wValue;`;else for(let Oe=0;Oe{if(j===0)return"";if(!T)throw new Error(`packInputAs4 ${T} is not true.`);let Ie="";if(S===1){Ie+="dotProd = dotProd";for(let Oe=0;Oe(i32(r), i32(c)) - uniforms.pads; + let dyRCorner = dyCorner.x; + let dyCCorner = dyCorner.y; + let groupId = d1 / uniforms.output_channels_per_group; + let wOutChannel = d1 - groupId * uniforms.output_channels_per_group; + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + var dotProd = ${Je.type.value}(0.0); + var wR: u32 = 0; + if (uniforms.dilations.x == 1) { + // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0 + wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner); + } + for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) { + if (wR % uniforms.dilations.x != 0) { + continue; + } + let dyR = (${De}(dyRCorner) + ${De}(wR)) / ${De}(uniforms.strides[0]); + let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; + if (dyR < 0.0 || dyR >= ${De}(uniforms.Dy_shape[${ce}]) || fract(dyR) > 0.0 || + wRPerm < 0) { + continue; + } + let idyR: u32 = u32(dyR); + var wC: u32 = 0; + if (uniforms.dilations.y == 1) { + // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0 + wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner); + } + for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) { + if (wC % uniforms.dilations.y != 0) { + continue; + } + let dyC = (${De}(dyCCorner) + ${De}(wC)) / ${De}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; + if (dyC < 0.0 || dyC >= ${De}(uniforms.Dy_shape[${Te}]) || + fract(dyC) > 0.0 || wCPerm < 0) { + continue; + } + let idyC: u32 = u32(dyC); + var inputChannel = groupId * uniforms.input_channels_per_group; + ${T?` + var x_offset = ${je.indicesToOffset(`${je.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${S}; + var w_offset = ${Qe.indicesToOffset(`${Qe.type.indices}(wRPerm, wCPerm, inputChannel, wOutChannel)`)} / ${K}; + `:""} + for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group_int; d2 = d2 + ${T?4:S}) { + ${Xe()} + inputChannel = inputChannel + ${T?4:S}; + } + ${be()} + wC = wC + uniforms.strides.y - 1; + } + wR = wR + uniforms.strides[0] - 1; + } + let value = dotProd${g?` + bias[d1 / ${L}]`:""}; + ${Je.setByOffset("global_idx","value")}; + `;return` + ${O.registerUniforms(R).declareVariables(...Se,Je)} + ${O.mainStart()} + ${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}; + ${le}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${n.cacheKey};${S}${K}${L}${T}${j}`,inputDependencies:V},getRunData:()=>({dispatchGroup:{x:Y[0],y:Y[1],z:Y[2]},outputs:[{dims:i?i(C):C,dataType:s[0].dataType}],programUniforms:Q}),getShaderSource:oe}}}),Z4,J4,q4,Od,I3,$4,_d,ep,w3,xw=xA(()=>{yw(),t0(),ao(),Z4=(s,n,i,g,C,p)=>(s-1)*n+i+(g-1)*C+1-p,J4=(s,n,i,g,C)=>{let p=Math.floor(s/2);n==="SAME_UPPER"?(i[g]=p,i[C]=s-p):n==="SAME_LOWER"&&(i[g]=s-p,i[C]=p)},q4=(s,n,i,g,C,p,I,M,x,G)=>{let S=s.length-2,T=G.length===0;x.length{let i=s.kernelShape.slice();if(s.kernelShape.length===0||s.kernelShape.reduce((T,P)=>T*P,1)===0){i.length=0;for(let T=2;TT+P,0)===0){let T=n[0].dims.length-2;x=new Array(T).fill(1)}let G=s.strides.slice();if(G.reduce((T,P)=>T+P,0)===0){let T=n[0].dims.length-2;G=new Array(T).fill(1)}q4(M,i,x,s.autoPad,s.group,C,G,g,I,p);let S=Object.assign({},s);return Object.assign(S,{kernelShape:i,pads:C,outputPadding:I,outputShape:p,dilations:x,strides:G}),S},I3=s=>{let n=qf(s),i=s.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof s.autoPad>"u"?0:s.autoPad],C=s.dilations,p=s.group,I=s.kernelShape,M=s.pads,x=s.strides,G=s.wIsConst(),S=s.outputPadding,T=s.outputShape;return{autoPad:g,format:i,dilations:C,group:p,kernelShape:I,outputPadding:S,outputShape:T,pads:M,strides:x,wIsConst:G,...n,cacheKey:`${s.format};${n.activation};`}},$4=(s,n)=>{if(!s||s.length!==2&&s.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(s[0].dims.length!==4&&s[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(s[0].dims.length!==s[1].dims.length)throw new Error("filter does not have same dimension as input");let i=s[0].dims[n.format==="NHWC"?s[0].dims.length-1:1],g=s[1].dims[0];if(i!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let C=s[1].dims[1]*n.group;if(s.length===3&&(s[2].dims.length!==1||s[2].dims[0]!==C))throw new Error("invalid bias");let p=s[0].dims.length-2;if(n.dilations.reduce((I,M)=>I+M,0)>0&&n.dilations.length!==p)throw new Error(`dilations should be ${p}D`);if(n.strides.reduce((I,M)=>I+M,0)>0&&n.strides.length!==p)throw new Error(`strides should be ${p}D`);if(n.pads.reduce((I,M)=>I+M,0)>0&&n.pads.length!==p*2)throw new Error(`pads should be ${p*2}D`);if(n.outputPadding.length!==p&&n.outputPadding.length!==0)throw new Error(`output_padding should be ${p}D`);if(n.kernelShape.reduce((I,M)=>I+M,0)>0&&n.kernelShape.length!==0&&n.kernelShape.length!==s[1].dims.length-2)throw new Error("invalid kernel shape");if(n.outputShape.length!==0&&n.outputShape.length!==s[0].dims.length-2)throw new Error("invalid output shape")},_d=(s,n,i,g)=>{let C=s.kernelCustomData.wT??s.compute(Ps(n[1],[2,3,0,1]),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!s.kernelCustomData.wT&&(s.kernelCustomData.wT=C);let p=[n[0],C];n.length===3&&p.push(n[2]),s.compute(b3(p,i,g),{inputs:p})},ep=(s,n)=>{let i=n.format==="NHWC",g=[s.inputs[0].reshape(i?[s.inputs[0].dims[0],1,s.inputs[0].dims[1],s.inputs[0].dims[2]]:[s.inputs[0].dims[0],s.inputs[0].dims[1],1,s.inputs[0].dims[2]]),s.inputs[1].reshape([s.inputs[1].dims[0],s.inputs[1].dims[1],1,s.inputs[1].dims[2]])];s.inputs.length===3&&g.push(s.inputs[2]);let C=n.kernelShape;(C.length===0||C[0]===0)&&(C=[s.inputs[1].dims[2]]);let p=n.dilations;(p.length===0||p[0]===0)&&(p=[1]);let I=n.strides;(I.length===0||I[0]===0)&&(I=[1]);let M=n.pads;M.length===0&&(M=[0,0]),M=[0,M[0],0,M[1]],I=[1].concat(I),p=[1].concat(p),C=[1].concat(C);let x=n.outputPadding;x=[0].concat(x);let G=Od({...n,pads:M,strides:I,dilations:p,kernelShape:C,outputPadding:x},g);_d(s,g,G,S=>i?[S[0],S[2],S[3]]:[S[0],S[1],S[3]])},w3=(s,n)=>{if($4(s.inputs,n),s.inputs[0].dims.length===3)ep(s,n);else{let i=Od(n,s.inputs);_d(s,s.inputs,i)}}}),Ap,k3,E3,Bw=xA(()=>{Ct(),yt(),aa(),Bt(),Ap=(s,n,i,g)=>{let C=nA.size(n),p=n.length,I=fA("input",s,p),M=tt("output",s,p),x=i.dataType===6?i.getInt32Array()[0]:Number(i.getBigInt64Array()[0]),G=nA.normalizeAxis(x,p),S=T=>{let P=` i32(${I.indicesGet("inputIndices","uniforms.axis")}) `,j=at("uniforms.input_shape","uniforms.axis",p),L=g.reverse?P+(g.exclusive?" + 1":""):"0",K=g.reverse?j:P+(g.exclusive?"":" + 1");return` + ${T.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(I,M)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var inputIndices = ${M.offsetToIndices("global_idx")}; + var sum = ${M.type.value}(0); + let first : i32 = ${L}; + let last : i32 = ${K}; + for (var i : i32 = first; i < last; i++) { + ${I.indicesSet("inputIndices","uniforms.axis","u32(i)")}; + sum = sum + ${I.getByIndices("inputIndices")}; + } + ${M.setByOffset("global_idx","sum")}; + }`};return{name:"CumSum",shaderCache:{hint:g.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:n,dataType:s}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},{type:12,data:G},...lt(n,n)]}),getShaderSource:S}},k3=(s,n)=>{let i=s.inputs[0].dims,g=s.inputs[0].dataType,C=s.inputs[1];s.compute(Ap(g,i,C,n),{inputs:[0]})},E3=s=>{let n=s.exclusive===1,i=s.reverse===1;return sr({exclusive:n,reverse:i})}}),tp,rp,ap,M3,v3,Dw=xA(()=>{Ct(),yt(),aa(),Bt(),tp=s=>{if(!s||s.length!==1)throw new Error("DepthToSpace requires 1 input.");if(s[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},rp=(s,n,i,g)=>{let C=[];C.push(`fn perm(i: ${g.type.indices}) -> ${i.type.indices} { + var a: ${i.type.indices};`);for(let p=0;p{let i,g,C,p,I,M,x=n.format==="NHWC",G=n.blocksize,S=n.mode==="DCR";x?([i,g,C,p]=s.dims,I=S?[i,g,C,G,G,p/G**2]:[i,g,C,p/G**2,G,G],M=S?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([i,g,C,p]=[s.dims[0],s.dims[2],s.dims[3],s.dims[1]],I=S?[i,G,G,p/G**2,g,C]:[i,p/G**2,G,G,g,C],M=S?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let T=s.reshape(I),P=T.dims.length,j=s.dataType,L=fA("a",j,P),K=tt("output",j,P),ae=Y=>` + ${Y.registerUniform("output_size","u32").declareVariables(L,K)} + + ${rp(M,P,L,K)} + + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${K.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${K.setByOffset("global_idx",L.getByIndices("aIndices"))} + }`;return{name:"DepthToSpace",shaderCache:{hint:`${s.dims};${n.blocksize};${n.mode}`,inputDependencies:["rank"]},getRunData:Y=>{let V=x?[i,g*G,C*G,p/G**2]:[i,p/G**2,g*G,C*G],ee=nA.size(V),d=T.dims,v=nA.sortBasedOnPerm(d,M);return{outputs:[{dims:V,dataType:Y[0].dataType}],dispatchGroup:{x:Math.ceil(ee/64)},programUniforms:[{type:12,data:ee},...lt(d,v)]}},getShaderSource:ae}},M3=(s,n)=>{tp(s.inputs),s.compute(ap(s.inputs[0],n))},v3=s=>sr({blocksize:s.blocksize,mode:s.mode,format:s.format})}),ku,_c,zd,sp,ip,np,op,Nd,lp,y3,x3,Tw=xA(()=>{Ct(),yt(),aa(),Bt(),ku="[a-zA-Z]|\\.\\.\\.",_c="("+ku+")+",zd="^"+_c+"$",sp="("+_c+",)*"+_c,ip="^"+sp+"$",np=class{constructor(s=-1){this.symbolToIndices=new Map,this.inputIndex=s}addSymbol(s,n){let i=this.symbolToIndices.get(s);i===void 0?i=[n]:i.push(n),this.symbolToIndices.set(s,i)}},op=class{constructor(s,n){var C;this.equation=n,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[i,g]=n.includes("->")?n.split("->",2):[n,""];if(!i.match(RegExp(ip)))throw new Error("Invalid LHS term");if(i.split(",").forEach((p,I)=>{let M=s[I].dims.slice();if(!p.match(RegExp(zd)))throw new Error("Invalid LHS term");let x=this.processTerm(p,!0,M,I);this.lhs.push(x)}),g==="")g+=[...this.symbolToInfo.entries()].filter(([p,I])=>I.count===1||p==="...").map(([p])=>p).join("");else if(!g.match(RegExp(_c)))throw new Error("Invalid RHS");(C=g.match(RegExp(ku,"g")))==null||C.forEach(p=>{if(p==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let I=this.symbolToInfo.get(p);if(I===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(I.dimValue)}}),this.rhs=this.processTerm(g,!1,this.outputDims)}addSymbol(s,n,i){let g=this.symbolToInfo.get(s);if(g!==void 0){if(g.dimValue!==n&&g.count!==1)throw new Error("Dimension mismatch");g.count++,g.inputIndices.push(i)}else g={count:1,dimValue:n,inputIndices:[i]};this.symbolToInfo.set(s,g)}processTerm(s,n,i,g=-1){let C=i.length,p=!1,I=[],M=0;if(!s.match(RegExp(zd))&&!n&&s!=="")throw new Error("Invalid LHS term");let x=s.match(RegExp(ku,"g")),G=new np(g);return x==null||x.forEach((S,T)=>{if(S==="..."){if(p)throw new Error("Only one ellipsis is allowed per input term");p=!0;let P=C-x.length+1;if(P<0)throw new Error("Ellipsis out of bounds");if(I=i.slice(M,M+P),this.hasEllipsis){if(this.ellipsisDims.length!==I.length||this.ellipsisDims.toString()!==I.toString())throw new Error("Ellipsis dimensions mismatch")}else if(n)this.hasEllipsis=!0,this.ellipsisDims=I;else throw new Error("Ellipsis must be specified in the LHS");for(let j=0;js+"_max",lp=(s,n,i,g)=>{let C=s.map(G=>G.length).map((G,S)=>fA(`input${S}`,n,G)),p=nA.size(g),I=tt("output",n,g.length),M=[...i.symbolToInfo.keys()].filter(G=>!i.rhs.symbolToIndices.has(G)),x=G=>{let S=[],T="var prod = 1.0;",P="var sum = 0.0;",j="sum += prod;",L=[],K=[],ae=[],Y=[],V=i.symbolToInfo.size===i.rhs.symbolToIndices.size;i.symbolToInfo.forEach((d,v)=>{var e;if(i.rhs.symbolToIndices.has(v)){let u=(e=i.rhs.symbolToIndices.get(v))==null?void 0:e[0];u!==void 0&&i.lhs.forEach((Q,oe)=>{if(d.inputIndices.includes(oe)){let O=Q.symbolToIndices.get(v);if(O===void 0)throw new Error("Invalid symbol error");O.forEach(R=>{S.push(`${C[oe].indicesSet(`input${oe}Indices`,R,I.indicesGet("outputIndices",u))}`)})}})}else i.lhs.forEach((u,Q)=>{if(d.inputIndices.includes(Q)){let oe=u.symbolToIndices.get(v);if(oe===void 0)throw new Error("Invalid symbol error");oe.forEach(O=>{L.push(`${C[Q].indicesSet(`input${Q}Indices`,O,`${v}`)}`)}),Y.push(`prod *= ${C[Q].getByIndices(`input${Q}Indices`)};`)}}),K.push(`for(var ${v}: u32 = 0; ${v} < uniforms.${Nd(v)}; ${v}++) {`),ae.push("}")});let ee=V?[...S,`let sum = ${C.map((d,v)=>d.getByIndices(`input${v}Indices`)).join(" * ")};`]:[...S,P,...K,...L,T,...Y,j,...ae];return` + ${G.registerUniforms(M.map(d=>({name:`${Nd(d)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...C,I)} + + ${G.mainStart()} + ${G.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${I.offsetToIndices("global_idx")}; + ${C.map((d,v)=>`var input${v}Indices: ${C[v].type.indices};`).join(` +`)} + ${ee.join(` +`)}; + ${I.setByOffset("global_idx","sum")}; + }`};return{name:"Einsum",shaderCache:{hint:i.equation,inputDependencies:s.map(()=>"rank")},getRunData:()=>{let G=M.filter(T=>i.symbolToInfo.has(T)).map(T=>{var P;return{type:12,data:((P=i.symbolToInfo.get(T))==null?void 0:P.dimValue)||0}});G.push({type:12,data:p});let S=s.map((T,P)=>[...lt(T)]).reduce((T,P)=>T.concat(P),G);return S.push(...lt(g)),{outputs:[{dims:g,dataType:n}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:S}},getShaderSource:x}},y3=(s,n)=>{let i=new op(s.inputs,n.equation),g=i.outputDims,C=s.inputs.map((p,I)=>p.dims);s.compute(lp(C,s.inputs[0].dataType,i,g))},x3=s=>{let n=s.equation.replace(/\s+/g,"");return sr({equation:n})}}),cp,Ld,up,dp,B3,Gw=xA(()=>{Ct(),yt(),Bt(),cp=s=>{if(!s||s.length!==2)throw new Error("Expand requires 2 input.");let n=s[0].dims,i=Array.from(s[1].getBigInt64Array(),Number),g=i.length{let i=s.length-n.length,g=[];for(let C=0;Cs.length>n.length?Ld(s,n):Ld(n,s),dp=s=>{let n=s[0].dims,i=Array.from(s[1].getBigInt64Array(),Number),g=up(n,i),C=s[0].dataType,p=C===9||nA.size(n)===1,I=C===9||n.length>0&&n[n.length-1]%4===0?4:1,M=p||g.length>0&&g[g.length-1]%4===0?4:1,x=Math.ceil(nA.size(g)/M),G=T=>{let P=fA("input",C,n.length,I),j=tt("output",C,g.length,M),L;if(C===9){let K=(ae,Y,V="")=>` + let outputIndices${Y} = ${j.offsetToIndices(`outputOffset + ${Y}u`)}; + let offset${Y} = ${P.broadcastedIndicesToOffset(`outputIndices${Y}`,j)}; + let index${Y} = offset${Y} / 4u; + let component${Y} = offset${Y} % 4u; + ${ae}[${Y}] = ${V}(${P.getByOffset(`index${Y}`)}[component${Y}]); + `;L=` + let outputOffset = global_idx * ${M}; + var data = vec4(0); + ${K("data",0,"u32")} + ${K("data",1,"u32")} + ${K("data",2,"u32")} + ${K("data",3,"u32")} + ${j.setByOffset("global_idx","data")} + }`}else L=` + let outputIndices = ${j.offsetToIndices(`global_idx * ${M}`)}; + let inputOffset = ${P.broadcastedIndicesToOffset("outputIndices",j)}; + let data = ${j.type.value}(${P.getByOffset(`inputOffset / ${I}`)}); + ${j.setByOffset("global_idx","data")} + }`;return` + ${T.registerUniform("vec_size","u32").declareVariables(P,j)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${L}`},S=[{type:12,data:x},...lt(n,g)];return{name:"Expand",shaderCache:{hint:`${g.length};${I}${M}`,inputDependencies:["rank"]},getShaderSource:G,getRunData:()=>({outputs:[{dims:g,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:S})}},B3=s=>{cp(s.inputs),s.compute(dp(s.inputs),{inputs:[0]})}}),fp,D3,Pw=xA(()=>{Ct(),yt(),Bt(),Jf(),fp=s=>{let n=s[0].dataType,i=nA.size(s[0].dims),g=nA.size(s[1].dims),C=g%4===0,p=I=>{let M=fA("x",n,[1],4),x=fA("bias",n,[1],4),G=tt("y",n,[1],4),S=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],T=j=>` + let bias${j}_offset: u32 = (global_idx * 4 + ${j}) % uniforms.bias_size; + let bias${j} = ${x.getByOffset(`bias${j}_offset / 4`)}[bias${j}_offset % 4];`,P=C?` + let bias = ${x.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${T(0)}${T(1)}${T(2)}${T(3)} + let bias = ${M.type.value}(bias0, bias1, bias2, bias3);`;return`${I.registerUniforms(S).declareVariables(M,x,G)} + + ${yf(As(n))} + + ${I.mainStart(W0)} + ${I.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} + + let x = ${M.getByOffset("global_idx")}; + ${P} + let x_in = x + bias; + ${G.setByOffset("global_idx",xf("x_in"))} + }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${C}`,inputDependencies:["type","type"]},getShaderSource:p,getRunData:I=>({outputs:[{dims:I[0].dims,dataType:I[0].dataType}],programUniforms:[{type:12,data:Math.ceil(i/4)},{type:12,data:g}],dispatchGroup:{x:Math.ceil(i/W0/4)}})}},D3=s=>{s.inputs.length<2||nA.size(s.inputs[1].dims)===0?XC(s):s.compute(fp(s.inputs))}}),gp,pp,T3,G3,Qw=xA(()=>{Ct(),yt(),aa(),Bt(),gp=s=>{if(!s||s.length!==2)throw new Error("Gather requires 2 inputs.")},pp=(s,n)=>{let i=s[0].dims,g=s[1].dims,C=i.length,p=nA.normalizeAxis(n.axis,C),I=i.slice(0);I.splice(p,1,...g);let M=i[p],x=s[0].dataType===9?4:1,G=Math.ceil(nA.size(I)/x),S=[{type:12,data:G},{type:6,data:M},{type:12,data:p},...lt(s[0].dims,s[1].dims,I)],T=P=>{let j=fA("data",s[0].dataType,s[0].dims.length,x),L=fA("inputIndices",s[1].dataType,s[1].dims.length),K=tt("output",s[0].dataType,I.length,x),ae=V=>{let ee=g.length,d=`var indicesIndices${V} = ${L.type.indices}(0);`;for(let v=0;v1?`indicesIndices${V}[${v}]`:`indicesIndices${V}`} = ${I.length>1?`outputIndices${V}[uniforms.axis + ${v}]`:`outputIndices${V}`};`;d+=` + var idx${V} = ${L.getByIndices(`indicesIndices${V}`)}; + if (idx${V} < 0) { + idx${V} = idx${V} + uniforms.axisDimLimit; + } + var dataIndices${V} : ${j.type.indices}; + `;for(let v=0,e=0;v1?`dataIndices${V}[${v}]`:`dataIndices${V}`} = u32(idx${V});`,e+=ee):(d+=`${C>1?`dataIndices${V}[${v}]`:`dataIndices${V}`} = ${I.length>1?`outputIndices${V}[${e}]`:`outputIndices${V}`};`,e++);return d},Y;if(s[0].dataType===9){let V=(ee,d,v="")=>` + let outputIndices${d} = ${K.offsetToIndices(`outputOffset + ${d}u`)}; + ${ae(d)}; + let offset${d} = ${j.indicesToOffset(`dataIndices${d}`)}; + let index${d} = offset${d} / 4u; + let component${d} = offset${d} % 4u; + ${ee}[${d}] = ${v}(${j.getByOffset(`index${d}`)}[component${d}]); + `;Y=` + let outputOffset = global_idx * ${x}; + var value = vec4(0); + ${V("value",0,"u32")} + ${V("value",1,"u32")} + ${V("value",2,"u32")} + ${V("value",3,"u32")} + ${K.setByOffset("global_idx","value")} + `}else Y=` + let outputIndices = ${K.offsetToIndices("global_idx")}; + ${ae("")}; + let value = ${j.getByIndices("dataIndices")}; + ${K.setByOffset("global_idx","value")}; + `;return` + ${P.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(j,L,K)} + ${P.mainStart()} + ${P.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + ${Y} + }`};return{name:"Gather",shaderCache:{hint:n.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:I,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(G/64)},programUniforms:S}),getShaderSource:T}},T3=s=>sr({axis:s.axis}),G3=(s,n)=>{let i=s.inputs;gp(i),s.compute(pp(s.inputs,n))}}),hp,P3,Q3,Sw=xA(()=>{Ct(),yt(),Bt(),hp=(s,n,i,g,C,p,I,M,x)=>{let G=[{type:12,data:p},{type:12,data:g},{type:12,data:C},{type:12,data:i},{type:12,data:I},{type:12,data:M},{type:12,data:x}],S=[p];G.push(...lt(n.dims,S));let T=P=>{let j=fA("indices_data",n.dataType,n.dims.length),L=tt("input_slice_offsets_data",12,1,1),K=[j,L],ae=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:C.length},{name:"sizes_from_slice_dims_data",type:"u32",length:i.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return` + ${P.registerUniforms(ae).declareVariables(...K)} + ${P.mainStart()} + ${P.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let batch_idx = global_idx / uniforms.num_slices_per_batch; + let base_offset = batch_idx * uniforms.input_batch_stride; + + let slice_indices_base_offset = global_idx * uniforms.num_slice_dims; + var relative_slice_offset = 0; + for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) { + var index = i32(indices_data[dim_idx + slice_indices_base_offset].x); + let input_dim_idx = uniforms.batch_dims + dim_idx; + if (index < 0) { + ${C.length===1?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"} + } + ${i.length===1?"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);":"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);"} + } + + input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset); + }`};return s.compute({name:"computeSliceOffsets",shaderCache:{hint:`${C.length}_${i.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:S,dataType:s.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:G}),getShaderSource:T},{inputs:[n],outputs:[-1]})[0]},P3=(s,n)=>{let i=s.inputs,g=i[0].dims,C=i[0].dataType,p=i[1].dims,I=p[p.length-1],M=nA.sizeToDimension(p,p.length-1),x=nA.sizeFromDimension(g,n.batchDims+I),G=nA.sizeToDimension(g,n.batchDims),S=nA.sizeFromDimension(g,n.batchDims),T=M/G,P=new Array(I),j=x;for(let d=0;dg.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let ae=p.slice(0,-1).concat(g.slice(K)),Y=nA.size(ae),V=[{type:12,data:Y},{type:12,data:x},...lt(i[0].dims,L.dims,ae)],ee=d=>{let v=fA("data",i[0].dataType,i[0].dims.length),e=fA("slice_offsets",12,L.dims.length),u=tt("output",i[0].dataType,ae.length);return` + ${d.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(v,e,u)} + ${d.mainStart()} + ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let slice_offset = slice_offsets[global_idx / uniforms.slice_size]; + output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size]; + }`};s.compute({name:"GatherND",shaderCache:{hint:n.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:ae,dataType:C}],dispatchGroup:{x:Math.ceil(Y/64)},programUniforms:V}),getShaderSource:ee},{inputs:[i[0],L]})},Q3=s=>({batchDims:s.batch_dims,cacheKey:""})}),mp,Cp,S3,F3,Fw=xA(()=>{Ct(),yt(),aa(),Bt(),mp=(s,n)=>{if(s.length<3||s.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let i=nA.normalizeAxis(n.quantizeAxis,s[0].dims.length),g=n.blockSize,C=s[0],p=s[2],I=s.length===4?s[3]:void 0;if(p.dims.length!==C.dims.length||!C.dims.map((M,x)=>x===i?Math.ceil(M/g)===p.dims[x]:M===p.dims[x]).reduce((M,x)=>M&&x,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(I){if(I.dataType!==C.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(I.dims.length!==p.dims.length||!I.dims.map((M,x)=>M===p.dims[x]).reduce((M,x)=>M&&x,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},Cp=(s,n)=>{let i=s[0].dims,g=s[1].dims,C=i.length,p=nA.normalizeAxis(n.gatherAxis,C),I=nA.normalizeAxis(n.quantizeAxis,C),M=i.slice(0);M.splice(p,1,...g);let x=nA.size(M),G=s[2].dataType,S=s[0].dataType===22,T=[{type:12,data:x},{type:12,data:I},{type:12,data:p},{type:12,data:n.blockSize},...lt(...s.map((j,L)=>j.dims),M)],P=j=>{let L=fA("data",s[0].dataType,s[0].dims.length),K=fA("inputIndices",s[1].dataType,s[1].dims.length),ae=fA("scales",s[2].dataType,s[2].dims.length),Y=s.length>3?fA("zeroPoint",s[3].dataType,s[3].dims.length):void 0,V=tt("output",G,M.length),ee=[L,K,ae];Y&&ee.push(Y);let d=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${j.registerUniforms(d).declareVariables(...ee,V)} + ${j.mainStart()} + let output_indices = ${V.offsetToIndices("global_idx")}; + var indices_indices = ${K.type.indices}(0); + ${g.length>1?` + for (var i: u32 = 0; i < ${g.length}; i++) { + let index = ${V.indicesGet("output_indices","uniforms.gather_axis + i")}; + ${K.indicesSet("indices_indices","i","index")}; + }`:`indices_indices = ${V.indicesGet("output_indices","uniforms.gather_axis")};`}; + var data_indices = ${L.type.indices}(0); + for (var i: u32 = 0; i < uniforms.gather_axis; i++) { + let index = ${V.indicesGet("output_indices","i")}; + ${L.indicesSet("data_indices","i","index")}; + } + var index_from_indices = ${K.getByIndices("indices_indices")}; + if (index_from_indices < 0) { + index_from_indices += ${i[p]}; + } + ${L.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; + for (var i = uniforms.gather_axis + 1; i < ${M.length}; i++) { + let index = ${V.indicesGet("output_indices",`i + ${g.length} - 1`)}; + ${L.indicesSet("data_indices","i","index")}; + } + let data_offset = ${L.indicesToOffset("data_indices")}; + let data_index = data_offset % 8; + // Convert 4-bit packed data to 8-bit packed data. + let packed_4bit_quantized_data = ${L.getByOffset("data_offset / 8")}; + let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; + let quantized_data_vec = ${S?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data)); + let quantized_data = quantized_data_vec[data_index / 2]; + var scale_indices = data_indices; + let quantize_axis_index = ${ae.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; + ${ae.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; + var scale = ${ae.getByIndices("scale_indices")}; + ${Y?` + let zero_point_indices = scale_indices; + let zero_point_offset = ${Y.indicesToOffset("zero_point_indices")}; + let zero_point_index = zero_point_offset % 8; + let packed_4bit_zero_points = ${Y.getByOffset("zero_point_offset / 8")}; + let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; + let zero_point_vec = ${S?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); + let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"}; + let dequantized_data = ${As(G)}(quantized_data - zero_point) * scale; + ${V.setByOffset("global_idx","dequantized_data")}; + }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${n.cacheKey};${s.filter((j,L)=>L!==1).map(j=>j.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:s.length},(j,L)=>"rank")},getRunData:()=>({outputs:[{dims:M,dataType:G}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:T}),getShaderSource:P}},S3=(s,n)=>{let i=s.inputs;mp(i,n),s.compute(Cp(s.inputs,n))},F3=s=>sr({blockSize:s.blockSize,gatherAxis:s.gatherAxis,quantizeAxis:s.quantizeAxis})}),bp,Ip,O3,_3,Ow=xA(()=>{Ct(),yt(),aa(),Bt(),bp=s=>{if(!s||s.length!==2)throw new Error("GatherElements requires 2 inputs.");if(s[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(s[0].dims.length!==s[1].dims.length)throw new Error(`GatherElements requires that the data input and + indices input tensors be of same rank.`)},Ip=(s,n)=>{let i=s[0].dims,g=s[0].dataType,C=i.length,p=s[1].dims,I=s[1].dataType,M=nA.normalizeAxis(n.axis,C),x=i[M],G=p.slice(0),S=nA.size(G),T=fA("input",g,C),P=fA("indicesInput",I,p.length),j=tt("output",g,G.length),L=[{type:12,data:S},{type:6,data:x},{type:12,data:M}];return L.push(...lt(i,p,G)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:G,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(S/64)},programUniforms:L}),getShaderSource:K=>` + ${K.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(T,P,j)} + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let outputIndices = ${j.offsetToIndices("global_idx")}; + + var idx = ${P.getByOffset("global_idx")}; + if (idx < 0) { + idx = idx + uniforms.axisDimLimit; + } + var inputIndices = ${T.type.indices}(outputIndices); + ${T.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; + let value = ${T.getByIndices("inputIndices")}; + + ${j.setByOffset("global_idx","value")}; + }`}},O3=s=>sr({axis:s.axis}),_3=(s,n)=>{let i=s.inputs;bp(i),s.compute(Ip(s.inputs,n))}}),wp,kp,z3,N3,_w=xA(()=>{Ct(),yt(),Bt(),wp=s=>{if(!s)throw new Error("Input is missing");if(s.length<2||s.length>3)throw new Error("Invaid input number.");if(s.length===3&&s[2].dims.length>2)throw new Error("Invalid input shape of C");if(s[0].dataType!==s[1].dataType||s.length===3&&s[0].dataType!==s[2].dataType)throw new Error("Input types are mismatched")},kp=(s,n)=>{let i=s[0].dims.slice(),g=s[1].dims.slice(),[C,p,I]=Om.getShapeOfGemmResult(i,n.transA,g,n.transB,s.length===3?s[2].dims:void 0),M=[C,p];if(!M)throw new Error("Can't use gemm on the given tensors");let x=16,G=Math.ceil(p/x),S=Math.ceil(C/x),T=!0,P=nA.size(M),j=[{type:12,data:T?G:P},{type:12,data:C},{type:12,data:p},{type:12,data:I},{type:1,data:n.alpha},{type:1,data:n.beta}],L=["type","type"];s.length===3&&(j.push(...lt(s[2].dims)),L.push("rank")),j.push(...lt(M));let K=Y=>{let V="";n.transA&&n.transB?V="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":n.transA&&!n.transB?V="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!n.transA&&n.transB?V="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!n.transA&&!n.transB&&(V="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let ee=n.alpha===1?"":"value *= uniforms.alpha;",d=fA("a",s[0].dataType,s[0].dims),v=fA("b",s[1].dataType,s[1].dims),e=d.type.value,u=null,Q=[d,v];s.length===3&&(u=fA("c",s[2].dataType,s[2].dims.length),Q.push(u));let oe=tt("output",s[0].dataType,M.length);Q.push(oe);let O=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return` + ${Y.registerUniforms(O).declareVariables(...Q)} + + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let m = global_idx / uniforms.N; + let n = global_idx % uniforms.N; + + var value = ${e}(0); + for (var k: u32 = 0u; k < uniforms.K; k++) { + ${V} + } + + ${ee} + ${u!=null?`let cOffset = ${u.broadcastedIndicesToOffset("vec2(m, n)",oe)}; value += ${e}(uniforms.beta) * ${u.getByOffset("cOffset")};`:""} + output[global_idx] = value; + }`},ae=Y=>{let V=fA("a",s[0].dataType,s[0].dims),ee=fA("b",s[1].dataType,s[1].dims),d=null,v=[V,ee];s.length===3&&(d=fA("c",s[2].dataType,s[2].dims.length),v.push(d));let e=tt("output",s[0].dataType,M.length);v.push(e);let u=[{name:"num_tile_n",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}],Q="",oe="";n.transA&&n.transB?(oe=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${V.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${ee.type.value}(0); + } + `,Q="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):n.transA&&!n.transB?(oe=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${V.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${ee.type.value}(0); + } + `,Q="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!n.transA&&n.transB?(oe=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${V.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${ee.type.value}(0); + } + `,Q="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!n.transA&&!n.transB&&(oe=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${V.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${ee.type.value}(0); + } + `,Q="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let O=n.alpha===1?"":"value *= uniforms.alpha;";return` + ${Y.registerUniforms(u).declareVariables(...v)} + var tile_a: array, ${x}>; + var tile_b: array, ${x}>; + ${Y.mainStart([x,x,1])} + let tile_col_start = (workgroup_index % uniforms.num_tile_n) * ${x}; + let tile_row_start = (workgroup_index / uniforms.num_tile_n) * ${x}; + let num_tiles = (uniforms.K - 1) / ${x} + 1; + var k_start = 0u; + var value = ${e.type.value}(0); + for (var t: u32 = 0u; t < num_tiles; t++) { + ${oe} + k_start = k_start + ${x}; + workgroupBarrier(); + + for (var k: u32 = 0u; k < ${x}; k++) { + ${Q} + } + workgroupBarrier(); + } + + ${O} + let m = tile_row_start + local_id.y; + let n = tile_col_start + local_id.x; + ${d!=null?`let cOffset = ${d.broadcastedIndicesToOffset("vec2(m, n)",e)}; value += ${e.type.value}(uniforms.beta) * ${d.getByOffset("cOffset")};`:""} + if (m < uniforms.M && n < uniforms.N) { + output[m * uniforms.N + n] = value; + } + }`};return T?{name:"GemmShared",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:M,dataType:s[0].dataType}],dispatchGroup:{x:G*S},programUniforms:j}),getShaderSource:ae}:{name:"Gemm",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:M,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:j}),getShaderSource:K}},z3=s=>{let n=s.transA,i=s.transB,g=s.alpha,C=s.beta;return{transA:n,transB:i,alpha:g,beta:C,cacheKey:`${s.transA};${s.transB};${s.alpha===1}`}},N3=(s,n)=>{wp(s.inputs),s.compute(kp(s.inputs,n))}}),ji,dn,Lo,jo,Ep,Mp,vp,yp,xp,Bp,Dp,Tp,L3,j3,zw=xA(()=>{Ct(),yt(),aa(),Bt(),[ji,dn,Lo,jo]=[0,1,2,3],Ep=s=>{if(s[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(s[0].dims.length!==s[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(s[0].dims.length-2!==s[1].dims[s[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${s[0].dims.length-2}`);if(s[0].dims[0]!==s[1].dims[0])throw new Error("grid batch size must match input batch size")},Mp=` + fn gs_get_cubic_coeffs(x: f32) -> vec4 { + let cubic_alpha = -0.75f; + let x_abs = abs(x); + var coeffs: vec4; + coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha); + coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1); + coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1); + coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha); + return coeffs; + } +`,vp=s=>` + fn gs_bicubic_interpolate(p: mat4x4<${s}>, x: f32, y: f32) -> ${s} { + var v: vec4; + var coeffs = gs_get_cubic_coeffs(x); + for (var i = 0; i < 4; i++) { + v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3]; + } + coeffs = gs_get_cubic_coeffs(y); + let pixel = ${s}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]); + return pixel; + } +`,yp=s=>` + fn gs_denormalize(n: f32, length: i32) -> f32 { + ${s.alignCorners===0?` + // alignCorners: false => [-1, 1] to [-0.5, length - 0.5] + return ((n + 1.0) * f32(length) - 1.0) / 2.0; + `:` + // alignCorners: true => [-1, 1] to [0, length - 1] + return (n + 1.0) / 2.0 * (f32(length - 1)); + `} + } +`,xp=s=>` + ${s.paddingMode==="reflection"?` + fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 { + var dx = 0.0; + var fx = f32(x); + let range = x_max - x_min; + if (fx < x_min) { + dx = x_min - fx; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_min + r; + } else { + fx = x_max - r; + } + } else if (fx > x_max) { + dx = fx - x_max; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_max - r; + } else { + fx = x_min + r; + } + } + return u32(fx); + }`:""} +`,Bp=(s,n,i)=>` + fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4) -> ${n} { + var pixel = ${n}(0); + var indices = vec4(0); + indices[${ji}] = batch; + indices[${dn}] = channel;`+(()=>{switch(i.paddingMode){case"zeros":return` + if (r >= 0 && r < H && c >=0 && c < W) { + indices[${Lo}] = u32(r); + indices[${jo}] = u32(c); + } else { + return ${n}(0); + } + `;case"border":return` + indices[${Lo}] = u32(clamp(r, 0, H - 1)); + indices[${jo}] = u32(clamp(c, 0, W - 1)); + `;case"reflection":return` + indices[${Lo}] = gs_reflect(r, border[1], border[3]); + indices[${jo}] = gs_reflect(c, border[0], border[2]); + `;default:throw new Error(`padding mode ${i.paddingMode} is not supported`)}})()+` + return ${s.getByIndices("indices")}; + } +`,Dp=(s,n,i)=>(()=>{switch(i.mode){case"nearest":return` + let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${ji}], indices[${dn}], border); + `;case"bilinear":return` + let x1 = i32(floor(x)); + let y1 = i32(floor(y)); + let x2 = x1 + 1; + let y2 = y1 + 1; + + let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${ji}], indices[${dn}], border); + let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${ji}], indices[${dn}], border); + let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${ji}], indices[${dn}], border); + let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${ji}], indices[${dn}], border); + + let dx2 = ${n}(f32(x2) - x); + let dx1 = ${n}(x - f32(x1)); + let dy2 = ${n}(f32(y2) - y); + let dy1 = ${n}(y - f32(y1)); + let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22); + `;case"bicubic":return` + let x0 = i32(floor(x)) - 1; + let y0 = i32(floor(y)) - 1; + var p: mat4x4<${n}>; + for (var h = 0; h < 4; h++) { + for (var w = 0; w < 4; w++) { + p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${ji}], indices[${dn}], border); + } + } + + let dx = x - f32(x0 + 1); + let dy = y - f32(y0 + 1); + let result = gs_bicubic_interpolate(p, dx, dy); + `;default:throw new Error(`mode ${i.mode} is not supported`)}})()+`${s.setByOffset("global_idx","result")}`,Tp=(s,n)=>{let i=fA("x",s[0].dataType,s[0].dims.length),g=[s[1].dims[0],s[1].dims[1],s[1].dims[2]],C=fA("grid",s[1].dataType,g.length,2),p=[s[0].dims[0],s[0].dims[1],s[1].dims[1],s[1].dims[2]];n.format==="NHWC"&&(p=[s[0].dims[0],s[1].dims[1],s[1].dims[2],s[0].dims[3]],[ji,dn,Lo,jo]=[0,3,1,2]);let I=tt("output",s[0].dataType,p.length),M=i.type.value,x=nA.size(p),G=[{type:12,data:x},...lt(s[0].dims,g,p)],S=T=>` + ${T.registerUniform("output_size","u32").declareVariables(i,C,I)} + ${Mp} + ${vp(M)} + ${yp(n)} + ${xp(n)} + ${Bp(i,M,n)} + + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let H_in = i32(uniforms.x_shape[${Lo}]); + let W_in = i32(uniforms.x_shape[${jo}]); + + ${n.alignCorners===0?` + let x_min = -0.5; + let x_max = f32(W_in) - 0.5; + let y_min = -0.5; + let y_max = f32(H_in) - 0.5; + `:` + let x_min = 0.0; + let x_max = f32(W_in) - 1.0; + let y_min = 0.0; + let y_max = f32(H_in) - 1.0; + `}; + let border = vec4(x_min, y_min, x_max, y_max); + + let indices = ${I.offsetToIndices("global_idx")}; + var grid_indices = vec3(indices[${ji}], indices[${Lo}], indices[${jo}]); + let nxy = ${C.getByIndices("grid_indices")}; + var x = gs_denormalize(f32(nxy[0]), W_in); + var y = gs_denormalize(f32(nxy[1]), H_in); + + ${Dp(I,M,n)} + }`;return{name:"GridSample",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:["type","type"]},getRunData:T=>{let P=nA.size(p);return{outputs:[{dims:p,dataType:T[0].dataType}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:G}},getShaderSource:S}},L3=(s,n)=>{Ep(s.inputs),s.compute(Tp(s.inputs,n))},j3=s=>sr({alignCorners:s.align_corners,mode:s.mode,paddingMode:s.padding_mode,format:s.format})}),ds,Gp,R3,jd,Pp,Kc,W3,V3=xA(()=>{Ct(),yt(),aa(),Uf(),Zf(),Bt(),ao(),ds=(s,n)=>s.length>n&&s[n].dims.length>0?s[n]:void 0,Gp=(s,n)=>{let i=s[0],g=ds(s,1),C=ds(s,2),p=ds(s,3),I=ds(s,4),M=ds(s,5),x=ds(s,6),G=ds(s,7);if(i.dims.length!==3&&i.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let S=i.dims[0],T=i.dims[1],P=i.dims.length===3?i.dims[2]:n.numHeads*i.dims[4],j=T,L=0,K=0,ae=Math.floor(P/n.numHeads);if(x&&G&&nA.size(x.dims)&&nA.size(G.dims)){if(x.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(x.dims[0]!==S||x.dims[1]!==n.numHeads||x.dims[3]!==ae)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(G.dims[0]!==S||G.dims[1]!==n.numHeads||G.dims[3]!==ae)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(x.dims[2]!==G.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(G.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');L=x.dims[2],K=x.dims[2]}else if(x&&nA.size(x.dims)||G&&nA.size(G.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let Y;if(g&&nA.size(g.dims)>0){if(i.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(i.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(g.dims[2]!==i.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');Y=2,j=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==n.numHeads||g.dims[3]!==2||g.dims[4]!==ae)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(C)throw new Error('Expect "value" be none when "key" has packed kv format.');Y=5,j=g.dims[1]}else{if(g.dims[1]!==n.numHeads||g.dims[3]!==ae)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');Y=0,j=g.dims[2]}}else{if(i.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(i.dims[2]!==n.numHeads||i.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');Y=3}if(p&&nA.size(p.dims)>0){if(p.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(g&&g.dims.length===5&&g.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let V=L+j,ee=0;if(I&&nA.size(I.dims)>0){ee=8;let u=I.dims;throw u.length===1?u[0]===S?ee=1:u[0]===3*S+2&&(ee=3):u.length===2&&u[0]===S&&u[1]===V&&(ee=5),ee===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let d=!1,v=P;if(C&&nA.size(C.dims)>0){if(C.dims.length!==3&&C.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(i.dims[0]!==C.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(C.dims.length===3){if(j!==C.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');v=C.dims[2]}else{if(j!==C.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');v=C.dims[1]*C.dims[3],d=!0}}let e=!1;if(I&&nA.size(I.dims)>0)throw new Error("Key padding mask is not supported");if(M&&nA.size(M.dims)>0){if(M.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(M.dims[0]!==S||M.dims[1]!==n.numHeads||M.dims[2]!==T||M.dims[3]!==V)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:S,sequenceLength:T,pastSequenceLength:L,kvSequenceLength:j,totalSequenceLength:V,maxSequenceLength:K,inputHiddenSize:0,hiddenSize:P,vHiddenSize:v,headSize:ae,vHeadSize:Math.floor(v/n.numHeads),numHeads:n.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:n.maskFilterValue,maskType:ee,scale:n.scale,broadcastResPosBias:e,passPastInKv:d,qkvFormat:Y}},R3=s=>sr({...s}),jd=sr({perm:[0,2,1,3]}),Pp=(s,n,i,g,C,p,I)=>{let M=[g,C,p],x=nA.size(M),G=[{type:12,data:x},{type:12,data:I},{type:12,data:p}],S=T=>{let P=tt("qkv_with_bias",n.dataType,M),j=fA("qkv",n.dataType,M),L=fA("bias",i.dataType,M),K=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return` + ${T.registerUniforms(K).declareVariables(j,L,P)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset; + + qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx]; + }`};return s.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:M,dataType:n.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:G}),getShaderSource:S},{inputs:[n,i],outputs:[-1]})[0]},Kc=(s,n,i,g,C,p,I,M)=>{let x=p;if(I&&nA.size(I.dims)>0){if(g===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return x=Pp(s,p,I,n,g,i*C,M),x=x.reshape([n,g,i,C]),i===1||g===1?x:s.compute(Ps(x,jd.perm),{inputs:[x],outputs:[-1]})[0]}else return p.dims.length===3&&(x=p.reshape([n,g,i,C])),i===1||g===1?x:s.compute(Ps(x,jd.perm),{inputs:[x],outputs:[-1]})[0]},W3=(s,n)=>{let i=Gp(s.inputs,n),g=s.inputs[0],C=ds(s.inputs,1),p=ds(s.inputs,2),I=ds(s.inputs,3),M=ds(s.inputs,4),x=ds(s.inputs,5),G=ds(s.inputs,6),S=ds(s.inputs,7);if(g.dims.length===5)throw new Error("Packed QKV is not implemented");if((C==null?void 0:C.dims.length)===5)throw new Error("Packed KV is not implemented");let T=C&&p&&C.dims.length===4&&p.dims.length===4,P=Kc(s,i.batchSize,i.numHeads,i.sequenceLength,i.headSize,g,I,0);if(T)return e1(s,P,C,p,M,void 0,G,S,x,i);if(!C||!p)throw new Error("key and value must be provided");let j=Kc(s,i.batchSize,i.numHeads,i.kvSequenceLength,i.headSize,C,I,i.hiddenSize),L=Kc(s,i.batchSize,i.numHeads,i.kvSequenceLength,i.vHeadSize,p,I,2*i.hiddenSize);e1(s,P,j,L,M,void 0,G,S,x,i)}}),Qp,Sp,Fp,Op,Pf,Y3,H3,U3=xA(()=>{Ct(),yt(),aa(),Bt(),Qp=s=>{if(!s||s.length<1)throw new Error("too few inputs")},Sp=(s,n)=>{let i=[],g=n.numOutputs;return s[1].dims[0]>0&&(s[1].getBigInt64Array().forEach(C=>i.push(Number(C))),g=i.length),sr({numOutputs:g,axis:n.axis,splitSizes:i})},Fp=s=>` +fn calculateOutputIndex(index: u32) -> u32 { + for (var i: u32 = 0u; i < ${s}u; i += 1u ) { + if (index < ${at("uniforms.size_in_split_axis","i",s)}) { + return i; + } + } + return ${s}u; +}`,Op=s=>{let n=s.length,i=[];for(let g=0;g{let i=s[0].dims,g=nA.size(i),C=s[0].dataType,p=nA.normalizeAxis(n.axis,i.length),I=new Array(n.numOutputs),M=fA("input",C,i.length),x=new Array(n.numOutputs),G=[],S=[],T=0,P=[{type:12,data:g}];for(let L=0;L` + ${L.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",x.length).declareVariables(M,...I)} + ${Fp(x.length)} + ${Op(I)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} + + var indices = ${M.offsetToIndices("global_idx")}; + var index = ${M.indicesGet("indices",p)}; + let output_number = calculateOutputIndex(index); + if (output_number != 0) { + index -= ${at("uniforms.size_in_split_axis","output_number - 1u",x.length)}; + ${M.indicesSet("indices",p,"index")}; + } + writeBufferData(output_number, indices, global_idx); + }`;return{name:"Split",shaderCache:{hint:n.cacheKey,inputDependencies:["rank"]},getShaderSource:j,getRunData:()=>({outputs:G,dispatchGroup:{x:Math.ceil(g/64)},programUniforms:P})}},Y3=(s,n)=>{Qp(s.inputs);let i=s.inputs.length===1?n:Sp(s.inputs,n);s.compute(Pf(s.inputs,i),{inputs:[0]})},H3=s=>{let n=s.axis,i=s.splitSizes,g=s.numOutputs<0?i.length:s.numOutputs;if(g!==i.length)throw new Error("numOutputs and splitSizes length must be equal");return sr({axis:n,numOutputs:g,splitSizes:i})}}),_p,_u,K3,X3=xA(()=>{Ct(),yt(),aa(),Bt(),_p=(s,n)=>{let[i,g,C,p]=s,{numHeads:I,rotaryEmbeddingDim:M}=n;if(i.dims.length!==3&&i.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${i.dims.length}`);if(!nA.areEqual(g.dims,[])&&!nA.areEqual(g.dims,[1])&&g.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${g.dims.length}`);if(C.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${C.dims.length}`);if(p.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${p.dims.length}`);if(!nA.areEqual(C.dims,p.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(M>0&&I===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let x=i.dims[0],G=i.dims[i.dims.length-2],S=C.dims[0],T=nA.sizeFromDimension(i.dims,1)/G,P=M===0?C.dims[1]*2:T/I;if(M>P)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(g.dims.length===2){if(x!==g.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${g.dims[0]}`);if(G!==g.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${g.dims[1]}`)}if(P/2!==C.dims[1]&&M/2!==C.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${C.dims[1]}`);if(G>S)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},_u=(s,n)=>{let{interleaved:i,numHeads:g,rotaryEmbeddingDim:C,scale:p}=n,I=s[0].dims[0],M=nA.sizeFromDimension(s[0].dims,1),x=s[0].dims[s[0].dims.length-2],G=M/x,S=s[2].dims[1],T=C===0?S*2:G/g,P=new Array(I,x,G/T,T-S),j=nA.computeStrides(P),L=[{type:1,data:p},{type:12,data:P},{type:12,data:j},...s[0].dims.length===3?new Array({type:12,data:[M,G,T,1]}):[],...s[0].dims.length===4?new Array({type:12,data:[M,T,x*T,1]}):[],...lt(s[0].dims,s[1].dims,s[2].dims,s[3].dims,s[0].dims)],K=ae=>{let Y=fA("input",s[0].dataType,s[0].dims.length),V=fA("position_ids",s[1].dataType,s[1].dims.length),ee=fA("cos_cache",s[2].dataType,s[2].dims.length),d=fA("sin_cache",s[3].dataType,s[3].dims.length),v=tt("output",s[0].dataType,s[0].dims.length);return ae.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:P.length},{name:"global_strides",type:"u32",length:j.length},{name:"input_output_strides",type:"u32",length:j.length}]),` + ${ae.declareVariables(Y,V,ee,d,v)} + + ${ae.mainStart(W0)} + let half_rotary_emb_dim = uniforms.${ee.name}_shape[1]; + let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; + let size = uniforms.global_shape[0] * uniforms.global_strides[0]; + ${ae.guardAgainstOutOfBoundsWorkgroupSizes("size")} + + if (bsnh[3] < half_rotary_emb_dim) { + let position_ids_idx = + ${V.broadcastedIndicesToOffset("bsnh.xy",tt("",V.type.tensor,2))}; + let position_id = + u32(${V.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); + let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${i}); + let j = i + select(half_rotary_emb_dim, 1, ${i}); + let re = ${Y.getByOffset("i")} * ${ee.get("position_id","bsnh[3]")} - + ${Y.getByOffset("j")} * ${d.get("position_id","bsnh[3]")}; + ${v.setByOffset("i","re")} + let im = ${Y.getByOffset("i")} * ${d.get("position_id","bsnh[3]")} + + ${Y.getByOffset("j")} * ${ee.get("position_id","bsnh[3]")}; + ${v.setByOffset("j","im")} + } else { + let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; + ${v.setByOffset("k",Y.getByOffset("k"))} + } + }`};return{name:"RotaryEmbedding",shaderCache:{hint:sr({interleaved:i}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:K,getRunData:()=>({outputs:[{dims:s[0].dims,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(nA.size(P)/W0)},programUniforms:L})}},K3=(s,n)=>{_p(s.inputs,n),s.compute(_u(s.inputs,n))}}),zp,Np,Rd,Lp,Z3,Nw=xA(()=>{aa(),Ct(),Zf(),V3(),U3(),ao(),X3(),Bt(),zp=(s,n)=>{if(n.doRotary&&s.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let i=s[0],g=s[1],C=s[2],p=s[3],I=s[4];if(n.doRotary!==0&&s.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(n.localWindowSize!==-1)throw new Error("Local attention is not supported");if(n.softcap!==0)throw new Error("Softcap is not supported");if(n.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(n.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(i.dims.length!==3&&i.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let M=!1,x=i.dims[0],G=i.dims[1],S=i.dims.length===3?M?i.dims[2]/3:i.dims[2]:n.numHeads*i.dims[4],T=G,P=0,j=!g||g.dims.length===0,L=Math.floor(j?S/(n.numHeads+2*n.kvNumHeads):S/n.numHeads);j&&(S=L*n.numHeads);let K=p&&p.dims.length!==0,ae=I&&I.dims.length!==0;if(K&&p.dims.length===4&&p.dims[0]===x&&p.dims[1]!==n.kvNumHeads&&p.dims[2]===n.kvNumHeads&&p.dims[3]===L)throw new Error("BSNH pastKey/pastValue is not supported");if(K&&ae){if(p.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(I.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');P=p.dims[2]}else if(K||ae)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let Y=1;if(g&&g.dims.length>0){if(i.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(i.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(i.dims[2]%g.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');T=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==n.numHeads||g.dims[3]!==2||g.dims[4]!==L)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(C)throw new Error('Expect "value" be none when "key" has packed kv format.');T=g.dims[1]}else{if(g.dims[1]!==n.numHeads||g.dims[3]!==L)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');T=g.dims[2]}}else{if(i.dims.length!==3&&i.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(i.dims.length===5&&(i.dims[2]!==n.numHeads||i.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');Y=3}let V=0,ee=!1,d=n.kvNumHeads?L*n.kvNumHeads:S;if(C&&C.dims.length>0){if(C.dims.length!==3&&C.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(i.dims[0]!==C.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(C.dims.length===3){if(T!==C.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');d=C.dims[2]}else{if(T!==C.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');d=C.dims[1]*C.dims[3],ee=!0}}let v=s.length>4?s[5]:void 0;if(v&&v.dims.length!==1&&v.dims[0]!==x)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:x,sequenceLength:G,pastSequenceLength:P,kvSequenceLength:T,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:S,vHiddenSize:d,headSize:L,vHeadSize:Math.floor(d/n.kvNumHeads),numHeads:n.numHeads,kvNumHeads:n.kvNumHeads,nReps:n.numHeads/n.kvNumHeads,pastPresentShareBuffer:!1,maskType:V,scale:n.scale,broadcastResPosBias:!1,passPastInKv:ee,qkvFormat:Y}},Np=sr({perm:[0,2,1,3]}),Rd=(s,n,i)=>{let g=n,C=i.kvNumHeads;return n.dims.length===3&&i.kvSequenceLength!==0&&(g=n.reshape([i.batchSize,i.kvSequenceLength,C,i.headSize]),g=s.compute(Ps(g,Np.perm),{inputs:[g],outputs:[-1]})[0]),g},Lp=(s,n,i,g)=>{let C=7,p=["type","type"],I=[s*n],M=s*n,x=[{type:12,data:M},{type:12,data:n},{type:12,data:s}],G=S=>{let T=fA("seq_lens",i.dataType,i.dims),P=fA("total_seq_lens",g.dataType,g.dims),j=tt("pos_ids",C,I),L=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return` + ${S.registerUniforms(L).declareVariables(T,P,j)} + ${S.mainStart()} + ${S.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let total_sequence_length = u32(${P.getByOffset("0")}); + let is_subsequent_prompt = uniforms.sequence_length > 1 && uniforms.sequence_length != total_sequence_length; + let is_first_prompt = !is_subsequent_prompt && uniforms.sequence_length == total_sequence_length; + let batch_idx = global_idx / uniforms.sequence_length; + let sequence_idx = i32(global_idx % uniforms.sequence_length); + var pos_id: i32 = 0; + let seqlen = ${T.getByOffset("batch_idx")}; + let total_seqlen = seqlen + 1; + if (is_first_prompt) { + if (sequence_idx < total_seqlen) { + pos_id = sequence_idx; + } else { + pos_id = 1; + } + ${j.setByOffset("global_idx","pos_id")} + } else if (is_subsequent_prompt) { + let past_seqlen = total_seqlen - i32(uniforms.sequence_length); + if (past_seqlen + sequence_idx < total_seqlen) { + pos_id = past_seqlen + sequence_idx; + } else { + pos_id = 1; + } + ${j.setByOffset("global_idx","pos_id")} + } else if (global_idx < uniforms.batch_size) { + ${j.setByOffset("global_idx","seqlen")} + }; + } + `};return{name:"GeneratePositionIds",shaderCache:{hint:`${s};${n}`,inputDependencies:p},getRunData:()=>({outputs:[{dims:I,dataType:C}],dispatchGroup:{x:Math.ceil(M/64)},programUniforms:x}),getShaderSource:G}},Z3=(s,n)=>{var d;let i=zp(s.inputs,n);if(s.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(((d=s.inputs[1])==null?void 0:d.dims.length)===5)throw new Error("Packed KV is not implemented");let g=s.inputs[0],C=s.inputs[1]&&s.inputs[1].dims.length>0?s.inputs[1]:void 0,p=s.inputs[2]&&s.inputs[2].dims.length>0?s.inputs[2]:void 0,I=s.inputs[3]&&s.inputs[3].dims.length!==0?s.inputs[3]:void 0,M=s.inputs[4]&&s.inputs[4].dims.length!==0?s.inputs[4]:void 0,x=s.inputs.length>4?s.inputs[5]:void 0,G=s.inputs.length>5?s.inputs[6]:void 0,S=i.kvNumHeads?i.kvNumHeads:i.numHeads,T=sr({axis:2,numOutputs:3,splitSizes:[i.numHeads*i.headSize,S*i.headSize,S*i.headSize]}),[P,j,L]=!C&&!p?s.compute(Pf([g],T),{inputs:[g],outputs:[-1,-1,-1]}):[g,C,p],K,ae;if(n.doRotary){let v=s.compute(Lp(i.batchSize,i.sequenceLength,x,G),{inputs:[x,G],outputs:[-1]})[0],e=s.inputs[7],u=s.inputs[8],Q=sr({interleaved:n.rotaryInterleaved!==0,numHeads:i.numHeads,rotaryEmbeddingDim:0,scale:n.scale}),oe=[P,v,e,u],O=[-1];K=s.compute(_u(oe,Q),{inputs:oe,outputs:O})[0],oe.splice(0,1,j);let R=sr({interleaved:n.rotaryInterleaved!==0,numHeads:i.kvNumHeads,rotaryEmbeddingDim:0,scale:n.scale});ae=s.compute(_u(oe,R),{inputs:oe,outputs:O})[0]}let Y=Kc(s,i.batchSize,i.numHeads,i.sequenceLength,i.headSize,n.doRotary?K:P,void 0,0),V=Rd(s,n.doRotary?ae:j,i),ee=Rd(s,L,i);e1(s,Y,V,ee,void 0,void 0,I,M,void 0,i,x,G)}}),Wd,jp,Rp,J3,Lw=xA(()=>{Ct(),yt(),ao(),Bt(),Wd=(s,n,i,g,C,p,I,M)=>{let x=qr(p),G=x===1?"f32":`vec${x}f`,S=x===1?"vec2f":`mat2x${x}f`,T=C*I,P=64;T===1&&(P=256);let j=[C,I,p/x],L=[C,I,2],K=["rank","type","type"],ae=[];ae.push(...lt(j,L));let Y=V=>{let ee=fA("x",n.dataType,3,x),d=fA("scale",i.dataType,i.dims),v=fA("bias",g.dataType,g.dims),e=tt("output",1,3,2),u=[ee,d,v,e];return` + var workgroup_shared : array<${S}, ${P}>; + const workgroup_size = ${P}u; + ${V.declareVariables(...u)} + ${V.mainStart(P)} + let batch = workgroup_index / uniforms.x_shape[1]; + let channel = workgroup_index % uniforms.x_shape[1]; + let hight = uniforms.x_shape[2]; + // initialize workgroup memory + var sum = ${G}(0); + var squared_sum = ${G}(0); + for (var h = local_idx; h < hight; h += workgroup_size) { + let value = ${G}(${ee.get("batch","channel","h")}); + sum += value; + squared_sum += value * value; + } + workgroup_shared[local_idx] = ${S}(sum, squared_sum); + workgroupBarrier(); + + for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) { + if (local_idx < currSize) { + workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize]; + } + workgroupBarrier(); + } + if (local_idx == 0) { + let sum_final = ${ro("workgroup_shared[0][0]",x)} / f32(hight * ${x}); + let squared_sum_final = ${ro("workgroup_shared[0][1]",x)} / f32(hight * ${x}); + + let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${M})); + let channel_scale = inv_std_dev * f32(scale[channel]); + let channel_shift = f32(bias[channel]) - sum_final * channel_scale; + output[workgroup_index] = vec2f(channel_scale, channel_shift); + } + }`};return s.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${x};${M};${P}`,inputDependencies:K},getRunData:()=>({outputs:[{dims:L,dataType:1}],dispatchGroup:{x:T},programUniforms:ae}),getShaderSource:Y},{inputs:[n,i,g],outputs:[-1]})[0]},jp=(s,n,i)=>{let g=n[0].dims,C=g,p=2,I=g[0],M=g[1],x=nA.sizeFromDimension(g,p),G=qr(x),S=nA.size(C)/G,T=Wd(s,n[0],n[1],n[2],I,x,M,i.epsilon),P=[I,M,x/G],j=[I,M],L=["type","none"],K=ae=>{let Y=fA("x",n[0].dataType,P.length,G),V=fA("scale_shift",1,j.length,2),ee=tt("output",n[0].dataType,P.length,G),d=[Y,V,ee];return` + ${ae.registerUniform("output_size","u32").declareVariables(...d)} + ${ae.mainStart()} + ${ae.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let outputIndices = ${ee.offsetToIndices("global_idx")}; + let batch = outputIndices[0]; + let channel = outputIndices[1]; + let scale_shift = ${V.getByIndices("vec2(batch, channel)")}; + let value = ${Y.getByOffset("global_idx")} * ${ee.type.value}(scale_shift.x) + ${ee.type.value}(scale_shift.y); + ${ee.setByOffset("global_idx","value")}; + }`};s.compute({name:"InstanceNormalization",shaderCache:{hint:`${G}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:C,dataType:n[0].dataType}],dispatchGroup:{x:Math.ceil(S/64)},programUniforms:[{type:12,data:S},...lt(P,j,P)]}),getShaderSource:K},{inputs:[n[0],T]})},Rp=(s,n,i)=>{let g=n[0].dims,C=g,p=g[0],I=g[g.length-1],M=nA.sizeFromDimension(g,1)/I,x=qr(I),G=nA.size(C)/x,S=[{type:12,data:M},{type:12,data:Math.floor(I/x)}],T=["type","type"],P=!1,j=[0,g.length-1];for(let Y=0;Yg[j[V]])),K=Wd(s,L,n[1],n[2],p,M,I,i.epsilon),ae=Y=>{let V=Ba(n[0].dataType),ee=x===1?"vec2f":`mat${x}x2f`,d=u=>{let Q=u===0?"x":"y",oe=x===1?"f32":`vec${x}f`;switch(x){case 1:return`${V}(${oe}(scale.${Q}))`;case 2:return`vec2<${V}>(${oe}(scale[0].${Q}, scale[1].${Q}))`;case 4:return`vec4<${V}>(${oe}(scale[0].${Q}, scale[1].${Q}, scale[2].${Q}, scale[3].${Q}))`;default:throw new Error(`Not supported compoents ${x}`)}},v=fA("input",n[0].dataType,n[0].dims,x),e=tt("output",n[0].dataType,C,x);return` + @group(0) @binding(0) var input : array<${v.type.storage}>; + @group(0) @binding(1) var scale_input : array<${ee}>; + @group(0) @binding(2) var output : array<${e.type.storage}>; + struct Uniforms {H: u32, C : u32}; + @group(0) @binding(3) var uniforms: Uniforms; + + ${Y.mainStart()} + let current_image_number = global_idx / (uniforms.C * uniforms.H); + let current_channel_number = global_idx % uniforms.C; + + let scale_offset = current_image_number * uniforms.C + current_channel_number; + let scale = scale_input[scale_offset]; + output[global_idx] = fma(input[global_idx], ${d(0)}, ${d(1)}); + }`};s.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${x}`,inputDependencies:T},getRunData:()=>({outputs:[{dims:C,dataType:n[0].dataType}],dispatchGroup:{x:Math.ceil(G/64)},programUniforms:S}),getShaderSource:ae},{inputs:[n[0],K]})},J3=(s,n)=>{n.format==="NHWC"?Rp(s,s.inputs,n):jp(s,s.inputs,n)}}),Wp,Vp,q3,jw=xA(()=>{Ct(),yt(),Bt(),Wp=s=>{if(!s||s.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Vp=(s,n,i)=>{let g=n.simplified,C=s[0].dims,p=s[1],I=!g&&s[2],M=C,x=nA.normalizeAxis(n.axis,C.length),G=nA.sizeToDimension(C,x),S=nA.sizeFromDimension(C,x),T=nA.size(p.dims),P=I?nA.size(I.dims):0;if(T!==S||I&&P!==S)throw new Error(`Size of X.shape()[axis:] == ${S}. + Size of scale and bias (if provided) must match this. + Got scale size of ${T} and bias size of ${P}`);let j=[];for(let v=0;v1,V=i>2,ee=v=>{let e=Ba(s[0].dataType),u=[fA("x",s[0].dataType,s[0].dims,L),fA("scale",p.dataType,p.dims,L)];I&&u.push(fA("bias",I.dataType,I.dims,L)),u.push(tt("output",s[0].dataType,M,L)),Y&&u.push(tt("mean_data_output",1,j)),V&&u.push(tt("inv_std_output",1,j));let Q=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return` + ${v.registerUniforms(Q).declareVariables(...u)} + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} + let offset = global_idx * uniforms.norm_size_vectorized; + var mean_vector = ${Ef("f32",L)}; + var mean_square_vector = ${Ef("f32",L)}; + + for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { + let value = ${_0(e,L,"x[h + offset]")}; + mean_vector += value; + mean_square_vector += value * value; + } + let mean = ${ro("mean_vector",L)} / uniforms.norm_size; + let inv_std_dev = inverseSqrt(${ro("mean_square_vector",L)} / uniforms.norm_size ${g?"":"- mean * mean"} + uniforms.epsilon); + + for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { + let f32input = ${_0(e,L,"x[j + offset]")}; + let f32scale = ${_0(e,L,"scale[j]")}; + output[j + offset] = ${u[0].type.value}((f32input ${g?"":"- mean"}) * inv_std_dev * f32scale + ${I?`+ ${_0(e,L,"bias[j]")}`:""} + ); + } + + ${Y?"mean_data_output[global_idx] = mean":""}; + ${V?"inv_std_output[global_idx] = inv_std_dev":""}; + }`},d=[{dims:M,dataType:s[0].dataType}];return Y&&d.push({dims:j,dataType:1}),V&&d.push({dims:j,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${L};${i};${g}`,inputDependencies:K},getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(G/64)},programUniforms:ae}),getShaderSource:ee}},q3=(s,n)=>{Wp(s.inputs),s.compute(Vp(s.inputs,n,s.outputCount))}}),Yp,$3,Rw=xA(()=>{yt(),Ag(),tg(),Yp=s=>{if(!s||s.length!==2)throw new Error("MatMul requires 2 inputs.");if(s[0].dims[s[0].dims.length-1]!==s[1].dims[s[1].dims.length-2])throw new Error("shared dimension does not match.")},$3=s=>{Yp(s.inputs);let n=R0.calcShape(s.inputs[0].dims,s.inputs[1].dims,!0);if(!n)throw new Error("Can't use matmul on the given tensors");let i=n[n.length-1],g=s.inputs[0].dims[s.inputs[0].dims.length-1];if(i<8&&g<8)s.compute(eg(s.inputs,{activation:""},n));else{let C=n[n.length-2],p=nA.size(s.inputs[0].dims.slice(0,-2)),I=nA.size(s.inputs[1].dims.slice(0,-2));if(p!==1&&C===1&&I===1){let M=s.inputs[0].reshape([1,p,g]),x=s.inputs[1].reshape([1,g,i]),G=[1,p,i],S=[M,x];s.compute(Ou(S,{activation:""},n,G),{inputs:S})}else s.compute(Ou(s.inputs,{activation:""},n))}}}),Hp,Up,Kp,eb,Ab,Ww=xA(()=>{Ct(),yt(),aa(),Bt(),Hp=(s,n)=>{if(s.length<3||s.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let i=s[0],g=i.dims.length;if(i.dims[g-1]!==n.k)throw new Error("The last dim of input shape does not match the k value");let C=Math.floor((n.k+n.blockSize-1)/n.blockSize),p=n.blockSize/8*n.bits,I=s[1];if(!nA.areEqual(I.dims,[n.n,C,p]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let M=s[2].dims;if(nA.size(M)!==n.n*C)throw new Error("scales input size error.");if(s.length===4){let x=s[3].dims,G=n.bits>4?n.n*C:n.n*Math.floor((C+1)/2);if(nA.size(x)!==G)throw new Error("zeroPoints input size error.")}},Up=(s,n)=>{let i=s[0].dims,g=i.length,C=i[g-2],p=n.k,I=n.n,M=i.slice(0,g-2),x=nA.size(M),G=s[1].dims[2]/4,S=s[0].dataType,T=qr(n.k),P=qr(G),j=qr(I),L=M.concat([C,I]),K=C>1&&I/j%2===0?2:1,ae=nA.size(L)/j/K,Y=64,V=[],ee=[x,C,p/T],d=nA.convertShape(s[1].dims).slice();d.splice(-1,1,G/P),V.push(...lt(ee)),V.push(...lt(d)),V.push(...lt(s[2].dims)),s.length===4&&V.push(...lt(nA.convertShape(s[3].dims)));let v=[x,C,I/j];V.push(...lt(v));let e=u=>{let Q=ee.length,oe=fA("a",s[0].dataType,Q,T),O=fA("b",12,d.length,P),R=fA("scales",s[2].dataType,s[2].dims.length),De=[oe,O,R],ce=s.length===4?fA("zero_points",12,s[3].dims.length):void 0;ce&&De.push(ce);let Te=v.length,Be=tt("output",s[0].dataType,Te,j),Qe=Ba(s[0].dataType),je=(()=>{switch(T){case 1:return`array<${Qe}, 8>`;case 2:return`mat4x2<${Qe}>`;case 4:return`mat2x4<${Qe}>`;default:throw new Error(`${T}-component is not supported.`)}})(),Se=()=>{let be=` + // reuse a data + var input_offset = ${oe.indicesToOffset(`${oe.type.indices}(batch, row, word_offset)`)}; + var a_data: ${je}; + for (var j: u32 = 0; j < ${8/T}; j++) { + a_data[j] = ${oe.getByOffset("input_offset")}; + input_offset++; + } + `;for(let le=0;le> 4) & b_mask); + b_quantized_values = ${je}(${Array.from({length:4},(Ie,Oe)=>`${Qe}(b_value_lower[${Oe}]), ${Qe}(b_value_upper[${Oe}])`).join(", ")}); + b_dequantized_values = ${T===1?`${je}(${Array.from({length:8},(Ie,Oe)=>`(b_quantized_values[${Oe}] - ${ce?`zero_point${le}`:"zero_point"}) * scale${le}`).join(", ")});`:`(b_quantized_values - ${je}(${Array(8).fill(`${ce?`zero_point${le}`:"zero_point"}`).join(",")})) * scale${le};`}; + workgroup_shared[local_id.x * ${K} + ${Math.floor(le/j)}]${j>1?`[${le%j}]`:""} += ${Array.from({length:8/T},(Ie,Oe)=>`${T===1?`a_data[${Oe}] * b_dequantized_values[${Oe}]`:`dot(a_data[${Oe}], b_dequantized_values[${Oe}])`}`).join(" + ")}; + `;return be},Je=()=>{let be=` + var col_index = col * ${j}; + ${ce?` + let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2; + var zero_point_byte_count: u32; + var zero_point_word_index: u32; + var zero_point_byte_offset: u32; + let zero_point_nibble_offset: u32 = block & 0x1u; + var zero_point_bits_offset: u32; + var zero_point_word: u32;`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Qe}(8);`} + `;for(let le=0;le> 0x1u); + zero_point_word_index = zero_point_byte_count >> 0x2u; + zero_point_byte_offset = zero_point_byte_count & 0x3u; + zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + zero_point_word = ${ce.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point${le} = ${Qe}((zero_point_word) & 0xFu);`:""} + col_index += 1;`;return be},Xe=()=>{let be=`col_index = col * ${j};`;for(let le=0;le; + var b_value_upper: vec4; + var b_quantized_values: ${je}; + var b_dequantized_values: ${je};`,be};return` + var workgroup_shared: array<${Be.type.value}, ${K*Y}>; + ${u.declareVariables(...De,Be)} + ${u.mainStart([Y,1,1])} + let output_indices = ${Be.offsetToIndices(`(global_idx / ${Y}) * ${K}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let nBlocksPerCol = uniforms.b_shape[1]; + + for (var block = local_id.x; block < nBlocksPerCol; block += ${Y}) { + //process one block + var word_offset: u32 = block * ${n.blockSize/T}; + ${Je()} + for (var word: u32 = 0; word < ${G}; word += ${P}) { + ${Xe()} + for (var i: u32 = 0; i < ${P}; i++) { + ${Se()} + word_offset += ${8/T}; + } + } + } + workgroupBarrier(); + + if (local_id.x < ${K}) { + var output_value: ${Be.type.value} = ${Be.type.value}(0); + var workgroup_shared_offset: u32 = local_id.x; + for (var b: u32 = 0u; b < ${Y}u; b++) { + output_value += workgroup_shared[workgroup_shared_offset]; + workgroup_shared_offset += ${K}; + } + ${Be.setByIndices(`${Be.type.indices}(batch, row, col + local_id.x)`,"output_value")}; + } + }`};return{name:"MatMulNBits",shaderCache:{hint:`${n.blockSize};${n.bits};${T};${P};${j};${K};${Y}`,inputDependencies:Array(s.length).fill("rank")},getRunData:()=>({outputs:[{dims:L,dataType:S}],dispatchGroup:{x:ae},programUniforms:V}),getShaderSource:e}},Kp=(s,n)=>{let i=s[0].dims,g=i.length,C=i[g-2],p=n.k,I=n.n,M=i.slice(0,g-2),x=nA.size(M),G=s[1].dims[2]/4,S=s[0].dataType,T=qr(n.k),P=qr(G),j=M.concat([C,I]),L=128,K=I%8===0?8:I%4===0?4:1,ae=L/K,Y=ae*P*8,V=Y/T,ee=Y/n.blockSize,d=nA.size(j)/K,v=[],e=[x,C,p/T],u=nA.convertShape(s[1].dims).slice();u.splice(-1,1,G/P),v.push(...lt(e)),v.push(...lt(u)),v.push(...lt(s[2].dims)),s.length===4&&v.push(...lt(nA.convertShape(s[3].dims)));let Q=[x,C,I];v.push(...lt(Q));let oe=O=>{let R=e.length,De=fA("a",s[0].dataType,R,T),ce=fA("b",12,u.length,P),Te=fA("scales",s[2].dataType,s[2].dims.length),Be=[De,ce,Te],Qe=s.length===4?fA("zero_points",12,s[3].dims.length):void 0;Qe&&Be.push(Qe);let je=Q.length,Se=tt("output",s[0].dataType,je),Je=Ba(s[0].dataType),Xe=()=>{switch(T){case 1:return` + let a_data0 = vec4<${Je}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); + let a_data1 = vec4<${Je}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return` + let a_data0 = vec4<${Je}>(sub_a[word_offset], sub_a[word_offset + 1]); + let a_data1 = vec4<${Je}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return` + let a_data0 = sub_a[word_offset]; + let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${T}-component is not supported.`)}};return` + var sub_a: array<${De.type.value}, ${V}>; + var inter_results: array, ${K}>; + ${O.declareVariables(...Be,Se)} + ${O.mainStart([ae,K,1])} + let output_indices = ${Se.offsetToIndices(`workgroup_index * ${K}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let n_blocks_per_col = uniforms.b_shape[1]; + let num_tiles = (n_blocks_per_col - 1) / ${ee} + 1; + + // Loop over shared dimension. + for (var tile: u32 = 0; tile < num_tiles; tile += 1) { + let a_col_start = tile * ${V}; + // load one tile A data into shared memory. + for (var a_offset = local_idx; a_offset < ${V}; a_offset += ${L}) + { + let a_col = a_col_start + a_offset; + if (a_col < uniforms.a_shape[2]) + { + sub_a[a_offset] = ${De.getByIndices(`${De.type.indices}(batch, row, a_col)`)}; + } else { + sub_a[a_offset] = ${De.type.value}(0); + } + } + workgroupBarrier(); + + // each thread process one block + let b_row = col + local_id.y; + let block = tile * ${ee} + local_id.x; + ${Qe?` + let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2; + let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u); + let zero_point_word_index = zero_point_byte_count >> 0x2u; + let zero_point_byte_offset = zero_point_byte_count & 0x3u; + let zero_point_nibble_offset: u32 = block & 0x1u; + let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + let zero_point_word = ${Qe.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point = ${Je}((zero_point_word) & 0xFu);`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Je}(8);`} + let scale = ${Te.getByOffset("b_row * n_blocks_per_col + block")}; + let b_data = ${ce.getByIndices(`${ce.type.indices}(b_row, block, 0)`)}; + var word_offset = local_id.x * ${n.blockSize/T}; + for (var i: u32 = 0; i < ${P}; i++) { + ${Xe()} + let b_value = ${P===1?"b_data":"b_data[i]"}; + let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu); + let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu); + let b_quantized_values = mat2x4<${Je}>(${Array.from({length:4},(be,le)=>`${Je}(b_value_lower[${le}]), ${Je}(b_value_upper[${le}])`).join(", ")}); + let b_dequantized_values = (b_quantized_values - mat2x4<${Je}>(${Array(8).fill("zero_point").join(",")})) * scale; + inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(be,le)=>`${`dot(a_data${le}, b_dequantized_values[${le}])`}`).join(" + ")}; + word_offset += ${8/T}; + } + workgroupBarrier(); + } + + if (local_idx < ${K}) { + var output_value: ${Se.type.value} = ${Se.type.value}(0); + for (var b = 0u; b < ${ae}; b++) { + output_value += inter_results[local_idx][b]; + } + if (col + local_idx < uniforms.output_shape[2]) + { + ${Se.setByIndices(`${Se.type.indices}(batch, row, col + local_idx)`,"output_value")} + } + } + }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${n.blockSize};${T};${P};${ae};${K}`,inputDependencies:Array(s.length).fill("rank")},getRunData:()=>({outputs:[{dims:j,dataType:S}],dispatchGroup:{x:d},programUniforms:v}),getShaderSource:oe}},eb=(s,n)=>{Hp(s.inputs,n),n.blockSize===32&&s.adapterInfo.isVendor("intel")&&s.adapterInfo.isArchitecture("gen-12lp")?s.compute(Kp(s.inputs,n)):s.compute(Up(s.inputs,n))},Ab=s=>sr(s)}),Xp,Zp,Jp,qp,$p,eh,Ah,th,tb,Vw=xA(()=>{Ct(),yt(),Bt(),Xp=s=>{if(!s||s.length<1)throw new Error("Too few inputs");if(s[0].dataType!==1&&s[0].dataType!==10)throw new Error("Input type must be float or float16.");if(s.length>=2){let n=s[0].dims.length*2===s[1].dims[0];if(s.length===4&&(n=s[3].dims[0]*2===s[1].dims[0]),!n)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Zp=(s,n,i)=>{let g="";for(let C=n-1;C>=0;--C)g+=` + k = i32(${s.indicesGet("indices",C)}) - ${at("uniforms.pads",C,i)}; + if (k < 0) { + break; + } + if (k >= i32(${at("uniforms.x_shape",C,n)})) { + break; + } + offset += k * i32(${at("uniforms.x_strides",C,n)}); + `;return` + value = ${s.type.value}(uniforms.constant_value); + for (var i = 0; i < 1; i++) { + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + } + `},Jp=(s,n,i)=>{let g="";for(let C=n-1;C>=0;--C)g+=` + k = i32(${s.indicesGet("indices",C)}) - ${at("uniforms.pads",C,i)}; + if (k < 0) { + k = -k; + } + { + let _2n_1 = 2 * (i32(${at("uniforms.x_shape",C,n)}) - 1); + k = k % _2n_1; + if(k >= i32(${at("uniforms.x_shape",C,n)})) { + k = _2n_1 - k; + } + } + offset += k * i32(${at("uniforms.x_strides",C,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},qp=(s,n,i)=>{let g="";for(let C=n-1;C>=0;--C)g+=` + k = i32(${s.indicesGet("indices",C)}) - ${at("uniforms.pads",C,i)}; + if (k < 0) { + k = 0; + } + if (k >= i32(${at("uniforms.x_shape",C,n)})) { + k = i32(${at("uniforms.x_shape",C,n)}) - 1; + } + offset += k * i32(${at("uniforms.x_strides",C,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},$p=(s,n,i)=>{let g="";for(let C=n-1;C>=0;--C)g+=` + k = i32(${s.indicesGet("indices",C)}) - ${at("uniforms.pads",C,i)}; + if (k < 0) { + k += i32(${at("uniforms.x_shape",C,n)}]); + } + if (k >= i32(${at("uniforms.x_shape",C,n)})) { + k -= i32(${at("uniforms.x_shape",C,n)}); + } + offset += k * i32(${at("uniforms.x_strides",C,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},eh=(s,n,i)=>{switch(i.mode){case 0:return Zp(s,n,i.pads.length);case 1:return Jp(s,n,i.pads.length);case 2:return qp(s,n,i.pads.length);case 3:return $p(s,n,i.pads.length);default:throw new Error("Invalid mode")}},Ah=(s,n)=>{let i=nA.padShape(s[0].dims.slice(),n.pads),g=s[0].dims,C=nA.size(i),p=[{type:12,data:C},{type:6,data:n.pads}],I=s.length>=3&&s[2].data;n.mode===0&&p.push({type:I?s[2].dataType:1,data:n.value}),p.push(...lt(s[0].dims,i));let M=["rank"],x=G=>{let S=tt("output",s[0].dataType,i.length),T=fA("x",s[0].dataType,g.length),P=T.type.value,j=eh(S,g.length,n),L=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:n.pads.length}];return n.mode===0&&L.push({name:"constant_value",type:I?P:"f32"}),` + ${G.registerUniforms(L).declareVariables(T,S)} + ${G.mainStart()} + ${G.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${S.offsetToIndices("global_idx")}; + + var value = ${P}(0); + ${j} + output[global_idx] = value; + }`};return{name:"Pad",shaderCache:{hint:`${n.mode}${I}`,inputDependencies:M},getRunData:()=>({outputs:[{dims:i,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(nA.size(i)/64)},programUniforms:p}),getShaderSource:x}},th=(s,n)=>{if(s.length>1){let i=s[1].getBigInt64Array(),g=s.length>=3&&s[2].data?s[2].dataType===10?s[2].getUint16Array()[0]:s[2].getFloat32Array()[0]:0,C=s[0].dims.length,p=new Int32Array(2*C).fill(0);if(s.length>=4){let M=s[3].getBigInt64Array();for(let x=0;xp[Number(x)]=Number(M));let I=[];return p.forEach(M=>I.push(M)),{mode:n.mode,value:g,pads:I}}else return n},tb=(s,n)=>{Xp(s.inputs);let i=th(s.inputs,n);s.compute(Ah(s.inputs,i),{inputs:[0]})}}),zc,Vd,Yd,Hd,Ud,rh,ah,Kd,Xd,rb,ab,Zd,sb,ib,Jd,nb,ob,lb,cb,Yw=xA(()=>{Xs(),Ct(),yt(),Bt(),zc=s=>{if(Gr.webgpu.validateInputContent&&(!s||s.length!==1))throw new Error("Pool ops requires 1 input.")},Vd=(s,n,i)=>{let g=n.format==="NHWC",C=s.dims.slice();g&&C.splice(1,0,C.pop());let p=Object.hasOwnProperty.call(n,"dilations"),I=n.kernelShape.slice(),M=n.strides.slice(),x=p?n.dilations.slice():[],G=n.pads.slice();Su.adjustPoolAttributes(i,C,I,M,x,G);let S=Su.computePoolOutputShape(i,C,M,x,I,G,n.autoPad),T=Object.assign({},n);p?Object.assign(T,{kernelShape:I,strides:M,pads:G,dilations:x,cacheKey:n.cacheKey}):Object.assign(T,{kernelShape:I,strides:M,pads:G,cacheKey:n.cacheKey});let P=S.slice();return P.push(P.splice(1,1)[0]),[T,g?P:S]},Yd=(s,n)=>{let i=n.format==="NHWC",g=nA.size(s),C=nA.size(n.kernelShape),p=[{type:12,data:g},{type:12,data:C}],I=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(n.kernelShape.length<=2){let M=n.kernelShape[n.kernelShape.length-1],x=n.strides[n.strides.length-1],G=n.pads[n.pads.length/2-1],S=n.pads[n.pads.length-1],T=!!(G+S);p.push({type:12,data:M},{type:12,data:x},{type:12,data:G},{type:12,data:S}),I.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let P=!1;if(n.kernelShape.length===2){let j=n.kernelShape[n.kernelShape.length-2],L=n.strides[n.strides.length-2],K=n.pads[n.pads.length/2-2],ae=n.pads[n.pads.length-2];P=!!(K+ae),p.push({type:12,data:j},{type:12,data:L},{type:12,data:K},{type:12,data:ae}),I.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[p,I,!0,T,P]}else{if(i)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let M=nA.computeStrides(n.kernelShape);p.push({type:12,data:M},{type:12,data:n.pads},{type:12,data:n.strides}),I.push({name:"kernelStrides",type:"u32",length:M.length},{name:"pads",type:"u32",length:n.pads.length},{name:"strides",type:"u32",length:n.strides.length});let x=n.pads.reduce((G,S)=>G+S);return[p,I,!!x,!1,!1]}},Hd=(s,n,i,g,C,p,I,M,x,G,S,T)=>{let P=C.format==="NHWC",j=n.type.value,L=tt("output",n.type.tensor,g);if(C.kernelShape.length<=2){let K="",ae="",Y="",V=i-(P?2:1);if(S?K=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${V}] = indices[${V}] * uniforms.sw - uniforms.pwStart + i; + if (xIndices[${V}] < 0 || xIndices[${V}] + >= uniforms.x_shape[${V}]) { + pad++; + continue; + } + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${p} + }`:K=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${V}] = indices[${V}] * uniforms.sw - uniforms.pwStart + i; + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${p} + }`,C.kernelShape.length===2){let ee=i-(P?3:2);T?ae=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${ee}] = indices[${ee}] * uniforms.sh - uniforms.phStart + j; + if (xIndices[${ee}] < 0 || xIndices[${ee}] >= uniforms.x_shape[${ee}]) { + pad += i32(uniforms.kw); + continue; + } + `:ae=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${ee}] = indices[${ee}] * uniforms.sh - uniforms.phStart + j; + `,Y=` + } + `}return` + ${s.registerUniforms(x).declareVariables(n,L)} + + ${s.mainStart()} + ${s.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let indices = ${L.offsetToIndices("global_idx")}; + var xIndices = ${L.offsetToIndices("global_idx")}; + + var value = ${j}(${M}); + var pad = 0; + ${ae} + ${K} + ${Y} + ${I} + + output[global_idx] = value; + }`}else{if(P)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let K=C.kernelShape.length,ae=C.pads.length,Y="";return G?Y=` + if (xIndices[j] >= uniforms.x_shape[j]) { + pad++; + isPad = true; + break; + } + } + if (!isPad) { + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${p} + }`:Y=` + } + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${p} + `,` + ${s.registerUniforms(x).declareVariables(n,L)} + + ${s.mainStart()} + ${s.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let indices = ${L.offsetToIndices("global_idx")}; + var xIndices = ${L.offsetToIndices("global_idx")}; + + var offsets: array; + + var value = ${j}(${M}); + var pad = 0; + var isPad = false; + + for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { + var offset = i; + for (var j = 0u; j < ${K-1}u; j++) { + offsets[j] = offset / ${at("uniforms.kernelStrides","j",K)}; + offset -= offsets[j] * ${at("uniforms.kernelStrides","j",K)}; + } + offsets[${K-1}] = offset; + + isPad = false; + for (var j = ${i-K}u; j < ${i}u; j++) { + xIndices[j] = indices[j] * ${at("uniforms.strides",`j - ${i-K}u`,K)} + + offsets[j - ${i-K}u] - ${at("uniforms.pads","j - 2u",ae)}; + ${Y} + } + ${I} + + output[global_idx] = value; + }`}},Ud=s=>`${s.format};${s.ceilMode};${s.autoPad};${s.kernelShape.length}`,rh=s=>`${Ud(s)};${s.countIncludePad}`,ah=s=>`${Ud(s)};${s.storageOrder};${s.dilations}`,Kd=s=>({format:s.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][s.auto_pad],ceilMode:s.ceil_mode,kernelShape:s.kernel_shape,strides:s.strides,pads:s.pads}),Xd=(s,n,i,g)=>{let[C,p]=Vd(n,g,i),I=fA("x",n.dataType,n.dims.length),M=I.type.value,x="value += x_val;",G="";C.countIncludePad?G+=`value /= ${M}(uniforms.kernelSize);`:G+=`value /= ${M}(i32(uniforms.kernelSize) - pad);`;let[S,T,P,j,L]=Yd(p,C);S.push(...lt(n.dims,p));let K=["rank"];return{name:s,shaderCache:{hint:`${g.cacheKey};${P};${j};${L}`,inputDependencies:K},getRunData:()=>({outputs:[{dims:p,dataType:n.dataType}],dispatchGroup:{x:Math.ceil(nA.size(p)/64)},programUniforms:S}),getShaderSource:ae=>Hd(ae,I,n.dims.length,p.length,C,x,G,0,T,P,j,L)}},rb=s=>{let n=s.count_include_pad!==0,i=Kd(s);if(i.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let g={countIncludePad:n,...i,cacheKey:""};return{...g,cacheKey:rh(g)}},ab=(s,n)=>{zc(s.inputs),s.compute(Xd("AveragePool",s.inputs[0],!1,n))},Zd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},sb=s=>{let n=s.format;return{format:n,...Zd,cacheKey:n}},ib=(s,n)=>{zc(s.inputs),s.compute(Xd("GlobalAveragePool",s.inputs[0],!0,n))},Jd=(s,n,i,g)=>{let[C,p]=Vd(n,g,i),I=` + value = max(x_val, value); + `,M="",x=fA("x",n.dataType,n.dims.length),G=["rank"],[S,T,P,j,L]=Yd(p,C);return S.push(...lt(n.dims,p)),{name:s,shaderCache:{hint:`${g.cacheKey};${P};${j};${L}`,inputDependencies:G},getRunData:()=>({outputs:[{dims:p,dataType:n.dataType}],dispatchGroup:{x:Math.ceil(nA.size(p)/64)},programUniforms:S}),getShaderSource:K=>Hd(K,x,n.dims.length,p.length,C,I,M,n.dataType===10?-65504:-1e5,T,P,j,L)}},nb=(s,n)=>{zc(s.inputs),s.compute(Jd("MaxPool",s.inputs[0],!1,n))},ob=s=>{let n=s.storage_order,i=s.dilations,g=Kd(s);if(n!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(g.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let C={storageOrder:n,dilations:i,...g,cacheKey:""};return{...C,cacheKey:ah(C)}},lb=s=>{let n=s.format;return{format:n,...Zd,cacheKey:n}},cb=(s,n)=>{zc(s.inputs),s.compute(Jd("GlobalMaxPool",s.inputs[0],!0,n))}}),sh,ih,ub,db,Hw=xA(()=>{Ct(),yt(),aa(),Bt(),sh=(s,n)=>{if(s.length<2||s.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(s.length===3&&s[1].dims===s[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(s.length===3&&s[0].dataType!==s[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(s[0].dataType===6&&s.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(s[1].dims.length!==0&&s[1].dims.length!==1&&s[1].dims.length!==s[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(s.length>2){if(s[0].dataType!==s[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(s[1].dims.length!==s[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!s[1].dims.map((i,g)=>i===s[2].dims[g]).reduce((i,g)=>i&&g,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(n.blockSize>0){if(s[1].dims.length===0||s[1].dims.length===1&&s[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!s[1].dims.map((C,p)=>p===n.axis||C===s[0].dims[p]).reduce((C,p)=>C&&p,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(s[1].dims.length!==s[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let i=s[0].dims[n.axis],g=s[1].dims[n.axis];if(n.blockSizeMath.ceil(i/(g-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},ih=(s,n)=>{let i=nA.normalizeAxis(n.axis,s[0].dims.length),g=s[0].dataType,C=g===3,p=s[0].dims,I=s[1].dataType,M=nA.size(p),x=g===3||g===2,G=x?[Math.ceil(nA.size(s[0].dims)/4)]:s[0].dims,S=s[1].dims,T=s.length>2?s[2]:void 0,P=T?x?[Math.ceil(nA.size(T.dims)/4)]:T.dims:void 0,j=S.length===0||S.length===1&&S[0]===1,L=j===!1&&S.length===1,K=qr(M),ae=j&&(!x||K===4),Y=ae?K:1,V=ae&&!x?K:1,ee=fA("input",x?12:g,G.length,V),d=fA("scale",I,S.length),v=T?fA("zero_point",x?12:g,P.length):void 0,e=tt("output",I,p.length,Y),u=[ee,d];v&&u.push(v);let Q=[G,S];T&&Q.push(P);let oe=[{type:12,data:M/Y},{type:12,data:i},{type:12,data:n.blockSize},...lt(...Q,p)],O=R=>{let De=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${R.registerUniforms(De).declareVariables(...u,e)} + ${R.mainStart()} + ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${e.offsetToIndices("global_idx")}; + + // Set input x + ${x?` + let input = ${ee.getByOffset("global_idx / 4")}; + let x_vec = ${C?"unpack4xI8(input)":"unpack4xU8(input)"}; + let x_value = ${Y===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${ee.getByOffset("global_idx")};`}; + + // Set scale input + ${j?`let scale_value= ${d.getByOffset("0")}`:L?` + let scale_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let scale_value= ${d.getByOffset("scale_index")};`:` + var scale_indices: ${d.type.indices} = output_indices; + let index = ${d.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; + ${d.indicesSet("scale_indices","uniforms.axis","index")}; + let scale_value= ${d.getByIndices("scale_indices")};`}; + + // Set zero-point input + ${v?j?x?` + let zero_point_input = ${v.getByOffset("0")}; + let zero_point_vec = ${C?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${v.getByOffset("0")}`:L?x?` + let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let zero_point_input = ${v.getByOffset("zero_point_index / 4")}; + let zero_point_vec = ${C?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_index % 4]`:` + let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let zero_point_value = ${v.getByOffset("zero_point_index")};`:x?` + let zero_point_offset = ${d.indicesToOffset("scale_indices")}; + let zero_point_input = ${v.getByOffset("zero_point_offset / 4")}; + let zero_point_vec = ${C?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${v.getByIndices("scale_indices")};`:`let zero_point_value = ${x?C?"i32":"u32":ee.type.value}(0);`}; + // Compute and write output + ${e.setByOffset("global_idx",`${e.type.value}(x_value - zero_point_value) * scale_value`)}; + }`};return{name:"DequantizeLinear",shaderCache:{hint:n.cacheKey,inputDependencies:v?["rank","rank","rank"]:["rank","rank"]},getShaderSource:O,getRunData:()=>({outputs:[{dims:p,dataType:I}],dispatchGroup:{x:Math.ceil(M/Y/64),y:1,z:1},programUniforms:oe})}},ub=(s,n)=>{sh(s.inputs,n),s.compute(ih(s.inputs,n))},db=s=>sr({axis:s.axis,blockSize:s.blockSize})}),nh,oh,fb,Uw=xA(()=>{Xs(),Ct(),Bt(),nh=(s,n,i)=>{let g=s===n,C=sn&&i>0;if(g||C||p)throw new Error("Range these inputs' contents are invalid.")},oh=(s,n,i,g)=>{let C=Math.abs(Math.ceil((n-s)/i)),p=[C],I=C,M=[{type:12,data:I},{type:g,data:s},{type:g,data:i},...lt(p)],x=G=>{let S=tt("output",g,p.length),T=S.type.value,P=[{name:"outputSize",type:"u32"},{name:"start",type:T},{name:"delta",type:T}];return` + ${G.registerUniforms(P).declareVariables(S)} + ${G.mainStart()} + ${G.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + output[global_idx] = uniforms.start + ${T}(global_idx) * uniforms.delta; + }`};return{name:"Range",shaderCache:{hint:`${g}`},getShaderSource:x,getRunData:()=>({outputs:[{dims:p,dataType:g}],dispatchGroup:{x:Math.ceil(I/64)},programUniforms:M})}},fb=s=>{let n=0,i=0,g=0;s.inputs[0].dataType===6?(n=s.inputs[0].getInt32Array()[0],i=s.inputs[1].getInt32Array()[0],g=s.inputs[2].getInt32Array()[0]):s.inputs[0].dataType===1&&(n=s.inputs[0].getFloat32Array()[0],i=s.inputs[1].getFloat32Array()[0],g=s.inputs[2].getFloat32Array()[0]),Gr.webgpu.validateInputContent&&nh(n,i,g),s.compute(oh(n,i,g,s.inputs[0].dataType),{inputs:[]})}}),lh,ch,gb,pb,Kw=xA(()=>{Ct(),yt(),aa(),Bt(),lh=(s,n,i,g)=>{if(s!=="none"&&g!=="i32"&&g!=="u32"&&g!=="f32")throw new Error(`Input ${g} is not supported with reduction ${s}.`);let C=`{ + var oldValue = 0; + loop { + let newValueF32 =`,p=`; + let newValue = bitcast(newValueF32); + let res = atomicCompareExchangeWeak(&${n}, oldValue, newValue); + if res.exchanged { + break; + } + oldValue = res.old_value; + } + }`;switch(s){case"none":return`${n}=${i};`;case"add":return g==="i32"||g==="u32"?`atomicAdd(&${n}, bitcast<${g}>(${i}));`:` + ${C}bitcast<${g}>(oldValue) + (${i})${p}`;case"max":return g==="i32"||g==="u32"?`atomicMax(&${n}, bitcast<${g}>(${i}));`:` + ${C}max(bitcast(oldValue), (${i}))${p}`;case"min":return g==="i32"||g==="u32"?`atomicMin(&${n}, bitcast<${g}>(${i}));`:`${C}min(bitcast<${g}>(oldValue), (${i}))${p}`;case"mul":return`${C}(bitcast<${g}>(oldValue) * (${i}))${p}`;default:throw new Error(`Reduction ${s} is not supported.`)}},ch=(s,n)=>{let i=s[0].dims,g=s[1].dims,C=i,p=1,I=Math.ceil(nA.sizeToDimension(g,g.length-1)/p),M=g[g.length-1],x=nA.sizeFromDimension(i,M),G=[{type:12,data:I},{type:12,data:M},{type:12,data:x},...lt(s[1].dims,s[2].dims,C)],S=T=>{let P=fA("indices",s[1].dataType,s[1].dims.length),j=fA("updates",s[2].dataType,s[2].dims.length,p),L=n.reduction!=="none"&&n.reduction!==""?Wm("output",s[0].dataType,C.length):tt("output",s[0].dataType,C.length,p);return` + ${T.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(P,j,L)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var data_offset = 0u; + let indices_start = uniforms.last_index_dimension * global_idx; + let indices_end = indices_start + uniforms.last_index_dimension; + for (var i = indices_start; i < indices_end; i++) { + var index = i32(indices[i].x); + ${s[0].dims.length===1?` + let element_count_dim = uniforms.output_strides; + let dim_value = uniforms.output_shape;`:` + let element_count_dim = uniforms.output_strides[i - indices_start]; + let dim_value = uniforms.output_shape[i - indices_start];`} + if (index >= 0) { + if (index >= i32(dim_value)) { + index = i32(dim_value - 1); + } + } else { + if (index < -i32(dim_value)) { + index = 0; + } else { + index += i32(dim_value); + } + } + data_offset += u32((u32(index) * element_count_dim)); + } + + for (var i = 0u; i < uniforms.num_updates_elements; i++) { + let value = updates[uniforms.num_updates_elements * global_idx + i]; + ${lh(n.reduction,"output[data_offset + i]","value",L.type.value)} + } + + }`};return{name:"ScatterND",shaderCache:{hint:`${n.cacheKey}_${n.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:C,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(I/64)},programUniforms:G}),getShaderSource:S}},gb=s=>sr({reduction:s.reduction}),pb=(s,n)=>{s.compute(ch(s.inputs,n),{inputs:[s.inputs[1],s.inputs[2]],outputs:[]})}}),uh,dh,fh,qd,gh,ph,hh,mh,Ch,bh,Ih,wh,$d,kh,Eh,Mh,vh,yh,hb,mb,Xw=xA(()=>{Ct(),yt(),aa(),Bt(),uh=(s,n)=>{if(s.every(i=>i>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),s.length>0){if(n.mode==="linear"){if(!(s.length===2||s.length===3||s.length===4&&s[0]===1&&s[1]===1||s.length===4&&s[0]===1&&s[3]===1||s.length===5&&s[0]===1&&s[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and + one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(n.mode==="cubic"&&!(s.length===2||s.length===4&&s[0]===1&&s[1]===1||s.length===4&&s[0]===1&&s[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},dh=(s,n,i)=>{n.every(C=>C>=0&&C{throw new Error("Resize requires axes input values to be positive and less than rank")}));let g=new Array(i).fill(1);return n.forEach((C,p)=>g[C]=s[p]),g},fh=(s,n,i,g,C,p)=>{let[I,M,x]=i>10?[1,2,3]:[-1,s.length>1?1:-1,-1],G=s[0].dims.length;if(I>0&&s.length>I&&s[I].dims.length>0)s[I].getFloat32Array().forEach(S=>p.push(S));else if(n.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(M>0&&s.length>M&&s[M].dims.length===1&&s[M].dims[0]>0){if(s[M].getFloat32Array().forEach(S=>g.push(S)),g.length!==0&&g.length!==G&&i>=18&&g.length!==n.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");uh(g,n),n.axes.length>0&&dh(g,n.axes,G).forEach((S,T)=>g[T]=S)}if(x>0&&s.length>x&&s[x].dims.length===1&&s[x].dims[0]>0&&(s[x].getBigInt64Array().forEach(S=>C.push(Number(S))),C.length!==0&&C.length!==G&&i>=18&&C.length!==n.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(n.axes.length>0){if(g.length!==0&&g.length!==n.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(C.length!==0&&C.length!==n.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof g<"u"&&typeof C<"u"&&g.length>0&&C.length>G)throw new Error("Resize requires only of scales or sizes to be specified")},qd=(s,n,i,g)=>` + // The whole part and the fractional part are calculated separately due to inaccuracy of floating + // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an + // offset-by-one error later in floor(). + let big = (${s}) * (${n}); + let whole = ${g}(big / (${i})); + let fract = ${g}(big % (${i})) / ${g}(${i}); + return whole + fract; +`,gh=(s,n)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, + lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${n} { `+(()=>{switch(s){case"asymmetric":return` + if (xScale < 1.0 || floor(xScale) != xScale) { + return ${n}(xResized) / ${n}(xScale); + } else { + ${qd("xResized","lengthOriginal","lengthResized",n)} + } + `;case"pytorch_half_pixel":return`if (lengthResized > 1) { + return (${n}(xResized) + 0.5) / ${n}(xScale) - 0.5; + } else { + return 0.0; + }`;case"tf_half_pixel_for_nn":return`return (${n}(xResized) + 0.5) / ${n}(xScale);`;case"align_corners":return`if (lengthResized == 1) { + return 0.0; + } else { + ${qd("xResized","lengthOriginal - 1","lengthResized - 1",n)} + }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { + return ${n}(roiStart) * ${n}(lengthOriginal - 1) + + (${n}(xResized) * ${n}(roiEnd - roiStart) * ${n}(lengthOriginal - 1)) / + ${n}(lengthResized - 1); + } else { + return 0.5 * ${n}(roiStart + roiEnd) * ${n}(lengthOriginal - 1); + }`;case"half_pixel_symmetric":return`const outputWidth = ${n}xScale * ${n}(lengthResized); + const adjustment = ${n}(lengthResized) / outputWidth; + const center = ${n}(lengthOriginal) / 2; + const offset = center * (1 - adjustment); + return offset + ((${n}(xResized) + 0.5) / ${n}(xScale)) - 0.5;`;case"half_pixel":return`return ((${n}(xResized) + 0.5) / ${n}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${s} is not supported`)}})()+"}",ph=(s,n,i)=>`fn getNearestPixelFromOriginal(xOriginal: ${i}, isDownSample: bool) -> ${i} {`+(()=>{switch(s){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";case"simple":default:if(n<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${s} is not supported`)}})()+"}",hh=(s,n,i)=>{let g=new Array(i).fill(0).concat(new Array(i).fill(1)),C=s.length===0?g:s.slice();return n.length>0?(n.forEach((p,I)=>{g[p]=C[I],g[I+i]=C[n.length+I]}),g):C},mh=(s,n,i,g)=>{let C=[];if(i.length>0)if(g.length>0){if(s.forEach(p=>C.push(p)),Math.max(...g)>s.length)throw new Error("axes is out of bound");g.forEach((p,I)=>C[p]=i[I])}else i.forEach(p=>C.push(p));else{if(n.length===0)throw new Error("Resize requires either scales or sizes.");C=s.map((p,I)=>Math.round(p*n[I]))}return C},Ch=(s,n,i)=>{let g=(()=>{switch(i.keepAspectRatioPolicy){case"not_larger":return i.axes.length>0?Math.min(...i.axes.map(p=>n[p]),Number.MAX_VALUE):Math.min(...n,Number.MAX_VALUE);case"not_smaller":return i.axes.length>0?Math.max(...i.axes.map(p=>n[p]),Number.MIN_VALUE):Math.max(...n,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${i.keepAspectRatioPolicy} is not supported`)}})();n.fill(1,0,n.length);let C=s.slice();return i.axes.length>0?(i.axes.forEach(p=>n[p]=g),i.axes.forEach(p=>C[p]=Math.round(s[p]*n[p]))):(n.fill(g,0,n.length),C.forEach((p,I)=>C[I]=Math.round(p*n[I]))),C},bh=(s,n,i,g,C)=>` + fn calculateOriginalIndicesFromOutputIndices(output_indices: ${s.type.indices}) -> array<${s.type.value}, ${i.length}> { + var original_indices: array<${s.type.value}, ${i.length}>; + for (var i:u32 = 0; i < ${i.length}; i++) { + var output_index = ${s.indicesGet("output_indices","i")}; + var scale = ${at("uniforms.scales","i",g)}; + var roi_low = ${at("uniforms.roi","i",C)}; + var roi_hi = ${at("uniforms.roi",`i + ${n.length}`,C)}; + if (scale == 1.0) { + original_indices[i] = ${s.type.value}(output_index); + } else { + var input_shape_i = ${at("uniforms.input_shape","i",n.length)}; + var output_shape_i = ${at("uniforms.output_shape","i",i.length)}; + original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + } + } + return original_indices; + }`,Ih=(s,n,i,g,C,p,I)=>` + fn calculateInputIndicesFromOutputIndices(output_indices: ${n.type.indices}) -> ${s.type.indices} { + var input_indices: ${s.type.indices}; + for (var i:u32 = 0; i < ${g.length}; i++) { + var output_index = ${n.indicesGet("output_indices","i")}; + var input_index: u32; + var scale = ${at("uniforms.scales","i",C)}; + if (scale == 1.0) { + input_index = output_index; + } else { + var roi_low = ${at("uniforms.roi","i",p)}; + var roi_hi = ${at("uniforms.roi",`i + ${i.length}`,p)}; + var input_shape_i = ${at("uniforms.input_shape","i",i.length)}; + var output_shape_i = ${at("uniforms.output_shape","i",g.length)}; + var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + if (!${I} || (original_idx >= 0 && original_idx < ${n.type.value}(input_shape_i))) { + if (original_idx < 0) { + input_index = 0; + } else if (original_idx > ${n.type.value}(input_shape_i - 1)) { + input_index = input_shape_i - 1; + } else { + input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1)); + } + } else { + input_index = u32(original_idx); + } + } + ${s.indicesSet("input_indices","i","input_index")} + } + return input_indices; + }`,wh=(s,n)=>` + fn checkInputIndices(input_indices: ${s.type.indices}) -> bool { + for (var i:u32 = 0; i < ${n.length}; i++) { + var input_index = ${s.indicesGet("input_indices","i")}; + if (input_index < 0 || input_index >= ${at("uniforms.input_shape","i",n.length)}) { + return false; + } + } + return true; + }`,$d=(s,n,i,g)=>s.rank>g?` + ${s.indicesSet("input_indices",n,"channel")}; + ${s.indicesSet("input_indices",i,"batch")}; +`:"",kh=(s,n,i,g,C)=>{let[p,I,M,x]=i.length===2?[-1,0,1,-1]:[0,2,3,1],G=s.type.value;return` + fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${G} { + var input_indices: ${s.type.indices}; + ${s.indicesSet("input_indices",I,`max(0, min(row, ${i[I]} - 1))`)}; + ${s.indicesSet("input_indices",M,`max(0, min(col, ${i[M]} - 1))`)}; + ${$d(s,x,p,2)} + return ${s.getByIndices("input_indices")}; + } + + fn bilinearInterpolation(output_indices: ${n.type.indices}) -> ${G} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var row:${G} = originalIndices[${I}]; + var col:${G} = originalIndices[${M}]; + ${g?`if (row < 0 || row > (${i[I]} - 1) || col < 0 || col > (${i[M]} - 1)) { + return ${C}; + }`:""}; + row = max(0, min(row, ${i[I]} - 1)); + col = max(0, min(col, ${i[M]} - 1)); + var row1: u32 = u32(row); + var col1: u32 = u32(col); + var row2: u32 = u32(row + 1); + var col2: u32 = u32(col + 1); + var channel: u32 = ${i.length>2?`u32(originalIndices[${x}])`:"0"}; + var batch: u32 = ${i.length>2?`u32(originalIndices[${p}])`:"0"}; + var x11: ${G} = getInputValue(batch, channel, row1, col1); + var x12: ${G} = getInputValue(batch, channel, row1, col2); + var x21: ${G} = getInputValue(batch, channel, row2, col1); + var x22: ${G} = getInputValue(batch, channel, row2, col2); + var dx1: ${G} = abs(row - ${G}(row1)); + var dx2: ${G} = abs(${G}(row2) - row); + var dy1: ${G} = abs(col - ${G}(col1)); + var dy2: ${G} = abs(${G}(col2) - col); + if (row1 == row2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (col1 == col2) { + dy1 = 0.5; + dy2 = 0.5; + } + return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1); + }`},Eh=(s,n,i,g,C,p,I,M,x,G)=>{let S=i.length===2,[T,P]=S?[0,1]:[2,3],j=s.type.value,L=K=>{let ae=K===T?"row":"col";return` + fn ${ae}CubicInterpolation(input_indices: ${s.type.indices}, output_indices: ${n.type.indices}) -> ${j} { + var output_index = ${n.indicesGet("output_indices",K)}; + var originalIdx: ${j} = getOriginalCoordinateFromResizedCoordinate(output_index, ${C[K]}, + ${g[K]}, ${i[K]}, ${p[K]}, ${p[K]} + ${i.length}); + var fractOriginalIdx: ${j} = originalIdx - floor(originalIdx); + var coefs = getCubicInterpolationCoefs(fractOriginalIdx); + + if (${M} && (originalIdx < 0 || originalIdx > (${i[K]} - 1))) { + return ${x}; + } + var data: array<${j}, 4> = array<${j}, 4>(0.0, 0.0, 0.0, 0.0); + for (var i: i32 = -1; i < 3; i++) { + var ${ae}: ${j} = originalIdx + ${j}(i); + if (${ae} < 0 || ${ae} >= ${i[K]}) { + ${G?`coefs[i + 1] = 0.0; + continue;`:M?`return ${x};`:`${ae} = max(0, min(${ae}, ${i[K]} - 1));`}; + } + var input_indices_copy: ${s.type.indices} = input_indices; + ${s.indicesSet("input_indices_copy",K,`u32(${ae})`)}; + data[i + 1] = ${K===T?s.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; + } + return cubicInterpolation1D(data, coefs); + }`};return` + ${L(T)}; + ${L(P)}; + fn getCubicInterpolationCoefs(s: ${j}) -> array<${j}, 4> { + var absS = abs(s); + var coeffs: array<${j}, 4> = array<${j}, 4>(0.0, 0.0, 0.0, 0.0); + var oneMinusAbsS: ${j} = 1.0 - absS; + var twoMinusAbsS: ${j} = 2.0 - absS; + var onePlusAbsS: ${j} = 1.0 + absS; + coeffs[0] = ((${I} * onePlusAbsS - 5 * ${I}) * onePlusAbsS + 8 * ${I}) * onePlusAbsS - 4 * ${I}; + coeffs[1] = ((${I} + 2) * absS - (${I} + 3)) * absS * absS + 1; + coeffs[2] = ((${I} + 2) * oneMinusAbsS - (${I} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; + coeffs[3] = ((${I} * twoMinusAbsS - 5 * ${I}) * twoMinusAbsS + 8 * ${I}) * twoMinusAbsS - 4 * ${I}; + return coeffs; + } + + fn cubicInterpolation1D(x: array<${j}, 4>, coefs: array<${j}, 4>) -> ${j} { + var coefsSum: ${j} = coefs[0] + coefs[1] + coefs[2] + coefs[3]; + return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum; + } + + fn bicubicInterpolation(output_indices: ${n.type.indices}) -> ${j} { + var input_indices: ${s.type.indices} = output_indices; + return colCubicInterpolation(input_indices, output_indices); + } + `},Mh=(s,n,i,g,C)=>{let[p,I,M,x,G]=i.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],S=s.type.value;return` + fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${S} { + var input_indices: ${s.type.indices}; + ${s.indicesSet("input_indices",I,`max(0, min(depth, ${i[I]} - 1))`)}; + ${s.indicesSet("input_indices",M,`max(0, min(height, ${i[M]} - 1))`)}; + ${s.indicesSet("input_indices",x,`max(0, min(width, ${i[x]} - 1))`)}; + ${$d(s,G,p,3)} + return ${s.getByIndices("input_indices")}; + } + + fn trilinearInterpolation(output_indices: ${n.type.indices}) -> ${S} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var depth:${S} = originalIndices[${I}]; + var height:${S} = originalIndices[${M}]; + var width:${S} = originalIndices[${x}]; + ${g?`if (depth < 0 || depth > (${i[I]} - 1) || height < 0 || height > (${i[M]} - 1) || width < 0 || (width > ${i[x]} - 1)) { + return ${C}; + }`:""}; + + depth = max(0, min(depth, ${i[I]} - 1)); + height = max(0, min(height, ${i[M]} - 1)); + width = max(0, min(width, ${i[x]} - 1)); + var depth1: u32 = u32(depth); + var height1: u32 = u32(height); + var width1: u32 = u32(width); + var depth2: u32 = u32(depth + 1); + var height2: u32 = u32(height + 1); + var width2: u32 = u32(width + 1); + var channel: u32 = ${i.length>3?`u32(originalIndices[${G}])`:"0"}; + var batch: u32 = ${i.length>3?`u32(originalIndices[${p}])`:"0"}; + + var x111: ${S} = getInputValue(batch, channel, depth1, height1, width1); + var x112: ${S} = getInputValue(batch, channel, depth1, height1, width2); + var x121: ${S} = getInputValue(batch, channel, depth1, height2, width1); + var x122: ${S} = getInputValue(batch, channel, depth1, height2, width2); + var x211: ${S} = getInputValue(batch, channel, depth2, height1, width1); + var x212: ${S} = getInputValue(batch, channel, depth2, height1, width2); + var x221: ${S} = getInputValue(batch, channel, depth2, height2, width1); + var x222: ${S} = getInputValue(batch, channel, depth2, height2, width2); + var dx1: ${S} = abs(depth - ${S}(depth1)); + var dx2: ${S} = abs(${S}(depth2) - depth); + var dy1: ${S} = abs(height - ${S}(height1)); + var dy2: ${S} = abs(${S}(height2) - height); + var dz1: ${S} = abs(width - ${S}(width1)); + var dz2: ${S} = abs(${S}(width2) - width); + if (depth1 == depth2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (height1 == height2) { + dy1 = 0.5; + dy2 = 0.5; + } + if (width1 == width2) { + dz1 = 0.5; + dz2 = 0.5; + } + return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 + + x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1); + }`},vh=(s,n,i,g,C,p)=>{let I=s.dims,M=hh(p,n.axes,I.length),x=mh(I,g,C,n.axes),G=g.slice();g.length===0&&(G=I.map((V,ee)=>V===0?1:x[ee]/V),n.keepAspectRatioPolicy!=="stretch"&&(x=Ch(I,G,n)));let S=tt("output",s.dataType,x.length),T=fA("input",s.dataType,I.length),P=nA.size(x),j=I.length===x.length&&I.every((V,ee)=>V===x[ee]),L=n.coordinateTransformMode==="tf_crop_and_resize",K=n.extrapolationValue,ae=T.type.value,Y=V=>` + ${j?"":` + ${gh(n.coordinateTransformMode,ae)}; + ${(()=>{switch(n.mode){case"nearest":return` + ${wh(T,I)}; + ${ph(n.nearestMode,i,ae)}; + ${Ih(T,S,I,x,G.length,M.length,L)}; + `;case"linear":return` + ${bh(S,I,x,G.length,M.length)}; + ${(()=>{if(I.length===2||I.length===4)return`${kh(T,S,I,L,K)}`;if(I.length===3||I.length===5)return`${Mh(T,S,I,L,K)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; + `;case"cubic":return` + ${(()=>{if(I.length===2||I.length===4)return`${Eh(T,S,I,x,G,M,n.cubicCoeffA,L,n.extrapolationValue,n.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; + `;default:throw Error("Invalid resize mode")}})()}; + `} + ${V.registerUniform("output_size","u32").registerUniform("scales","f32",G.length).registerUniform("roi","f32",M.length).declareVariables(T,S)} + ${V.mainStart()} + ${V.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + ${j?"output[global_idx] = input[global_idx];":` + let output_indices = ${S.offsetToIndices("global_idx")}; + var input_indices: ${T.type.indices}; + ${(()=>{switch(n.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); + if (checkInputIndices(input_indices)) { + output[global_idx] = ${T.getByIndices("input_indices")}; + } else { + output[global_idx] = ${n.extrapolationValue}; + }`;case"linear":return`output[global_idx] = ${I.length===2||I.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${n.mode}`)}})()}; +`} + }`;return{name:"Resize",shaderCache:{hint:`${n.cacheKey}|${i}|${G.length>0?n.mode==="cubic"?G:G.length:""}|${C.length>0?C:""}|${M.length>0?M:""}|${j}|${n.mode==="nearest"?I.length:I}`,inputDependencies:["rank"]},getShaderSource:Y,getRunData:()=>({outputs:[{dims:x,dataType:s.dataType}],dispatchGroup:{x:Math.ceil(P/64)},programUniforms:[{type:12,data:P},{type:1,data:G},{type:1,data:M},...lt(I,x)]})}},yh=s=>{let n=s.customDataBuffer;return new Uint32Array(n,n.byteOffset,1)[0]},hb=(s,n)=>{let i=[],g=[],C=[],p=yh(s);if(n.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");fh(s.inputs,n,p,i,g,C),s.compute(vh(s.inputs[0],n,p,i,g,C),{inputs:[0]})},mb=s=>{let n=s.antialias,i=s.axes,g=s.coordinateTransformMode,C=s.cubicCoeffA,p=s.excludeOutside!==0,I=s.extrapolationValue,M=s.keepAspectRatioPolicy,x=s.mode,G=s.nearestMode===""?"simple":s.nearestMode;return sr({antialias:n,axes:i,coordinateTransformMode:g,cubicCoeffA:C,excludeOutside:p,extrapolationValue:I,keepAspectRatioPolicy:M,mode:x,nearestMode:G})}}),xh,Bh,Cb,Zw=xA(()=>{Ct(),yt(),Bt(),xh=s=>{if(!s||s.length<3)throw new Error("layerNorm requires at least 3 inputs.");let n=s[0],i=s[1],g=s[2];if(n.dataType!==i.dataType||n.dataType!==g.dataType)throw new Error("All inputs must have the same data type");if(n.dims.length!==3&&n.dims.length!==2)throw new Error("Input must be 2D or 3D");if(i.dims.length!==3&&i.dims.length!==2)throw new Error("Skip must be 2D or 3D");let C=n.dims[n.dims.length-1],p=n.dims[n.dims.length-2];if(i.dims[i.dims.length-1]!==C)throw new Error("Skip must have the same hidden size as input");if(i.dims[i.dims.length-2]!==p)throw new Error("Skip must have the same sequence length as input");if(g.dims.length!==1)throw new Error("Gamma must be 1D");if(g.dims[g.dims.length-1]!==C)throw new Error("Gamma must have the same hidden size as input");if(s.length>3){let I=s[3];if(I.dims.length!==1)throw new Error("Beta must be 1D");if(I.dims[I.dims.length-1]!==C)throw new Error("Beta must have the same hidden size as input")}if(s.length>4){let I=s[4];if(I.dims.length!==1)throw new Error("Bias must be 1D");if(I.dims[I.dims.length-1]!==C)throw new Error("Bias must have the same hidden size as input")}},Bh=(s,n,i,g)=>{let C=n.simplified,p=s[0].dims,I=nA.size(p),M=p,x=I,G=p.slice(-1)[0],S=g?p.slice(0,-1).concat(1):[],T=!C&&s.length>3,P=s.length>4,j=g&&i>1,L=g&&i>2,K=i>3,ae=64,Y=qr(G),V=[{type:12,data:x},{type:12,data:Y},{type:12,data:G},{type:1,data:n.epsilon}],ee=v=>{let e=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],u=[fA("x",s[0].dataType,s[0].dims,Y),fA("skip",s[1].dataType,s[1].dims,Y),fA("gamma",s[2].dataType,s[2].dims,Y)];T&&u.push(fA("beta",s[3].dataType,s[3].dims,Y)),P&&u.push(fA("bias",s[4].dataType,s[4].dims,Y)),u.push(tt("output",s[0].dataType,M,Y)),j&&u.push(tt("mean_output",1,S)),L&&u.push(tt("inv_std_output",1,S)),K&&u.push(tt("input_skip_bias_sum",s[0].dataType,M,Y));let Q=Ba(s[0].dataType),oe=Ba(1,Y);return` + + ${v.registerUniforms(e).declareVariables(...u)} + var sum_shared : array<${oe}, ${ae}>; + var sum_squared_shared : array<${oe}, ${ae}>; + + ${v.mainStart([ae,1,1])} + let ix = local_id.x; + let iy = global_id.x / ${ae}; + + let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; + var stride = hidden_size_vectorized / ${ae}; + let offset = ix * stride + iy * hidden_size_vectorized; + let offset1d = stride * ix; + if (ix == ${ae-1}) { + stride = hidden_size_vectorized - stride * ix; + } + for (var i: u32 = 0; i < stride; i++) { + let skip_value = skip[offset + i]; + let bias_value = ${P?"bias[offset1d + i]":Q+"(0.0)"}; + let input_value = x[offset + i]; + let value = input_value + skip_value + bias_value; + ${K?"input_skip_bias_sum[offset + i] = value;":""} + output[offset + i] = value; + let f32_value = ${_0(Q,Y,"value")}; + sum_shared[ix] += f32_value; + sum_squared_shared[ix] += f32_value * f32_value; + } + workgroupBarrier(); + + var reduce_size : u32 = ${ae}; + for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) { + reduce_size = curr_size + (reduce_size & 1); + if (ix < curr_size) { + sum_shared[ix] += sum_shared[ix + reduce_size]; + sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size]; + } + workgroupBarrier(); + } + + let sum = sum_shared[0]; + let square_sum = sum_squared_shared[0]; + let mean = ${ro("sum",Y)} / f32(uniforms.hidden_size); + let inv_std_dev = inverseSqrt(${ro("square_sum",Y)} / f32(uniforms.hidden_size) ${C?"":"- mean * mean"} + uniforms.epsilon); + ${j?"mean_output[global_idx] = mean;":""} + ${L?"inv_std_output[global_idx] = inv_std_dev;":""} + + for (var i: u32 = 0; i < stride; i++) { + output[offset + i] = (output[offset + i] ${C?"":`- ${Q}(mean)`}) * + ${Q}(inv_std_dev) * gamma[offset1d + i] + ${T?"+ beta[offset1d + i]":""}; + } + }`},d=[{dims:M,dataType:s[0].dataType}];return i>1&&d.push({dims:S,dataType:1}),i>2&&d.push({dims:S,dataType:1}),i>3&&d.push({dims:p,dataType:s[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${Y};${j};${L};${K}`,inputDependencies:s.map((v,e)=>"type")},getShaderSource:ee,getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(x/G)},programUniforms:V})}},Cb=(s,n)=>{xh(s.inputs);let i=[0];s.outputCount>1&&i.push(-3),s.outputCount>2&&i.push(-3),s.outputCount>3&&i.push(3),s.compute(Bh(s.inputs,n,s.outputCount,!1),{outputs:i})}}),Dh,Nc,Th,ef,Gh,Ph,bb,Ib,Jw=xA(()=>{Ct(),yt(),aa(),Bt(),Dh=(s,n)=>{if(!s||s.length<1)throw new Error("too few inputs");if(n.axes.length!==0){if(n.axes.length!==n.starts.length||n.axes.length!==n.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(n.starts.length!==n.ends.length)throw new Error("starts and ends must have the same length");s.slice(1).forEach((i,g)=>{if(s[g+1].dataType!==6&&s[g+1].dataType!==7)throw new Error(`Input ${g} must be an array of int32 or int64`)})},Nc=(s,n)=>{let i=[];if(s.length>n)if(s[n].dataType===7)s[n].getBigInt64Array().forEach(g=>i.push(Number(g)));else if(s[n].dataType===6)s[n].getInt32Array().forEach(g=>i.push(Number(g)));else throw new Error(`Input ${n} must be an array of int32 or int64`);return i},Th=(s,n)=>{if(s.length>1){let i=Nc(s,1),g=Nc(s,2),C=Nc(s,3);return C.length===0&&(C=[...Array(s[0].dims.length).keys()]),sr({starts:i,ends:g,axes:C})}else return n},ef=(s,n,i,g,C)=>{let p=s;return s<0&&(p+=i[g[n]]),C[n]<0?Math.max(0,Math.min(p,i[g[n]]-1)):Math.max(0,Math.min(p,i[g[n]]))},Gh=(s,n,i)=>`fn calculateInputIndices(output_indices: ${n.type.indices}) -> ${s.type.indices} { + var input_indices: ${s.type.indices}; + var carry = 0u; + for (var i = ${i.length}; i >= 0; i--) { + let input_shape_i = ${at("uniforms.input_shape","i",i.length)}; + let steps_i = ${at("uniforms.steps","i",i.length)}; + let signs_i = ${at("uniforms.signs","i",i.length)}; + let starts_i = ${at("uniforms.starts","i",i.length)}; + var output_index = ${n.indicesGet("output_indices","i")}; + var input_index = output_index * steps_i + starts_i + carry; + carry = input_index / input_shape_i; + input_index = input_index % input_shape_i; + if (signs_i < 0) { + input_index = input_shape_i - input_index - 1u + starts_i; + } + ${s.indicesSet("input_indices","i","input_index")}; + } + return input_indices; + }`,Ph=(s,n)=>{let i=s[0].dims,g=nA.size(i),C=n.axes.length>0?nA.normalizeAxes(n.axes,i.length):[...Array(i.length).keys()],p=Nc(s,4);p.forEach(Y=>Y!==0||(()=>{throw new Error("step cannot be 0")})),p.length===0&&(p=Array(C.length).fill(1));let I=n.starts.map((Y,V)=>ef(Y,V,i,C,p)),M=n.ends.map((Y,V)=>ef(Y,V,i,C,p));if(C.length!==I.length||C.length!==M.length)throw new Error("start, ends and axes should have the same number of elements");if(C.length!==i.length)for(let Y=0;YMath.sign(Y));p.forEach((Y,V,ee)=>{if(Y<0){let d=(M[V]-I[V])/Y,v=I[V],e=v+d*p[V];I[V]=e,M[V]=v,ee[V]=-Y}});let G=i.slice(0);C.forEach((Y,V)=>{G[Y]=Math.ceil((M[Y]-I[Y])/p[Y])});let S={dims:G,dataType:s[0].dataType},T=tt("output",s[0].dataType,G.length),P=fA("input",s[0].dataType,s[0].dims.length),j=nA.size(G),L=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:I.length},{name:"signs",type:"i32",length:x.length},{name:"steps",type:"u32",length:p.length}],K=[{type:12,data:j},{type:12,data:I},{type:6,data:x},{type:12,data:p},...lt(s[0].dims,G)],ae=Y=>` + ${Y.registerUniforms(L).declareVariables(P,T)} + ${Gh(P,T,i)} + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let output_indices = ${T.offsetToIndices("global_idx")}; + let input_indices = calculateInputIndices(output_indices); + ${T.setByOffset("global_idx",P.getByIndices("input_indices"))} + }`;return{name:"Slice",shaderCache:{hint:`${x.length}_${I.length}_${p.length}`,inputDependencies:["rank"]},getShaderSource:ae,getRunData:()=>({outputs:[S],dispatchGroup:{x:Math.ceil(g/64)},programUniforms:K})}},bb=(s,n)=>{Dh(s.inputs,n);let i=Th(s.inputs,n);s.compute(Ph(s.inputs,i),{inputs:[0]})},Ib=s=>{let n=s.starts,i=s.ends,g=s.axes;return sr({starts:n,ends:i,axes:g})}}),Qh,Sh,wb,kb,qw=xA(()=>{Ct(),yt(),aa(),ao(),Bt(),Qh=s=>{if(!s||s.length!==1)throw new Error("Softmax op requires 1 input.")},Sh=(s,n)=>{let i=s.inputs[0],g=i.dims,C=nA.size(g),p=g.length,I=nA.normalizeAxis(n.axis,p),M=IQ),G[I]=p-1,G[p-1]=I,x=s.compute(Ps(i,G),{inputs:[i],outputs:[-1]})[0]):x=i;let S=x.dims,T=S[p-1],P=C/T,j=qr(T),L=T/j,K=64;P===1&&(K=256);let ae=(u,Q)=>Q===4?`max(max(${u}.x, ${u}.y), max(${u}.z, ${u}.w))`:Q===2?`max(${u}.x, ${u}.y)`:Q===3?`max(max(${u}.x, ${u}.y), ${u}.z)`:u,Y=fA("x",x.dataType,x.dims,j),V=tt("result",x.dataType,x.dims,j),ee=Y.type.value,d=Ba(x.dataType)==="f32"?`var threadMax = ${ee}(-3.402823e+38f);`:`var threadMax = ${ee}(-65504.0h);`,v=u=>` + var rowMaxShared : ${ee}; + var rowSumShared : ${ee}; + var threadShared : array<${ee}, ${K}>; + + fn getValue(row: i32, col: i32, row_stride: i32) -> ${ee} { + let index = row * row_stride + col; + return x[index]; + } + + fn setValue(row: i32, col: i32, row_stride: i32, value: ${ee}) { + let index = row * row_stride + col; + result[index] = value; + } + ${u.registerUniform("packedCols","i32").declareVariables(Y,V)} + ${u.mainStart(K)} + let gindex = i32(global_idx); + let lindex = i32(local_idx); + const wg = ${K}; + let row = gindex / wg; + let cols = uniforms.packedCols; + let row_stride : i32 = uniforms.packedCols; + + // find the rows max + ${d} + for (var col = lindex; col < cols; col += wg) { + let value = getValue(row, col, row_stride); + threadMax = max(threadMax, value); + } + if (lindex < cols) { + threadShared[lindex] = threadMax; + } + workgroupBarrier(); + + var reduceSize = min(cols, wg); + for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) { + reduceSize = currSize + (reduceSize & 1); + if (lindex < currSize) { + threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]); + } + workgroupBarrier(); + } + if (lindex == 0) { + rowMaxShared = ${ee}(${ae("threadShared[0]",j)}); + } + workgroupBarrier(); + + // find the rows sum + var threadSum = ${ee}(0.0); + for (var col = lindex; col < cols; col += wg) { + let subExp = exp(getValue(row, col, row_stride) - rowMaxShared); + threadSum += subExp; + } + threadShared[lindex] = threadSum; + workgroupBarrier(); + + for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) { + if (lindex < currSize) { + threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize]; + } + workgroupBarrier(); + } + if (lindex == 0) { + rowSumShared = ${ee}(${ro("threadShared[0]",j)}); + } + workgroupBarrier(); + + // calculate final value for each element in the row + for (var col = lindex; col < cols; col += wg) { + let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared; + setValue(row, col, row_stride, value); + } + }`,e=s.compute({name:"Softmax",shaderCache:{hint:`${j};${K}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:S,dataType:x.dataType}],dispatchGroup:{x:P},programUniforms:[{type:6,data:L}]}),getShaderSource:v},{inputs:[x],outputs:[M?-1:0]})[0];M&&s.compute(Ps(e,G),{inputs:[e]})},wb=(s,n)=>{Qh(s.inputs),Sh(s,n)},kb=s=>sr({axis:s.axis})}),Af,Fh,Oh,_h,Eb,$w=xA(()=>{Ct(),yt(),Bt(),Af=s=>Array.from(s.getBigInt64Array(),Number),Fh=s=>{if(!s||s.length!==2)throw new Error("Tile requires 2 inputs.");if(s[0].dataType!==1&&s[0].dataType!==10&&s[0].dataType!==6&&s[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(s[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(s[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(Af(s[1]).length!==s[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Oh=(s,n)=>{let i=[];for(let g=0;g{let i=s[0].dims,g=n??Af(s[1]),C=Oh(i,g),p=nA.size(C),I=s[0].dataType,M=fA("input",I,i.length),x=tt("output",I,C.length),G=S=>` + const inputShape = ${M.indices(...i)}; + ${S.registerUniform("output_size","u32").declareVariables(M,x)} + ${S.mainStart()} + ${S.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${x.offsetToIndices("global_idx")}; + var input_indices: ${M.type.indices}; + for (var i = 0; i < ${i.length}; i++) { + let input_dim_i = ${M.indicesGet("uniforms.input_shape","i")}; + let input_dim_value = ${x.indicesGet("output_indices","i")} % input_dim_i; + + ${M.indicesSet("input_indices","i","input_dim_value")} + } + ${x.setByOffset("global_idx",M.getByIndices("input_indices"))} + }`;return{name:"Tile",shaderCache:{hint:`${g}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:C,dataType:s[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},...lt(s[0].dims,C)]}),getShaderSource:G}},Eb=s=>{Fh(s.inputs),s.compute(_h(s.inputs),{inputs:[0]})}}),zh,Nh,Mb,e5=xA(()=>{Ct(),yt(),Bt(),zh=(s,n,i,g,C)=>{let p=tt("output_data",C,i.length,4),I=fA("a_data",n[1].dataType,n[1].dims.length,4),M=fA("b_data",n[2].dataType,n[2].dims.length,4),x=fA("c_data",n[0].dataType,n[0].dims.length,4),G,S=(T,P,j)=>`select(${P}, ${T}, ${j})`;if(!g)G=p.setByOffset("global_idx",S(I.getByOffset("global_idx"),M.getByOffset("global_idx"),x.getByOffset("global_idx")));else{let T=(P,j,L="")=>{let K=`a_data[index_a${j}][component_a${j}]`,ae=`b_data[index_b${j}][component_b${j}]`,Y=`bool(c_data[index_c${j}] & (0xffu << (component_c${j} * 8)))`;return` + let output_indices${j} = ${p.offsetToIndices(`global_idx * 4u + ${j}u`)}; + let offset_a${j} = ${I.broadcastedIndicesToOffset(`output_indices${j}`,p)}; + let offset_b${j} = ${M.broadcastedIndicesToOffset(`output_indices${j}`,p)}; + let offset_c${j} = ${x.broadcastedIndicesToOffset(`output_indices${j}`,p)}; + let index_a${j} = offset_a${j} / 4u; + let index_b${j} = offset_b${j} / 4u; + let index_c${j} = offset_c${j} / 4u; + let component_a${j} = offset_a${j} % 4u; + let component_b${j} = offset_b${j} % 4u; + let component_c${j} = offset_c${j} % 4u; + ${P}[${j}] = ${L}(${S(K,ae,Y)}); + `};C===9?G=` + var data = vec4(0); + ${T("data",0,"u32")} + ${T("data",1,"u32")} + ${T("data",2,"u32")} + ${T("data",3,"u32")} + output_data[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:G=` + ${T("output_data[global_idx]",0)} + ${T("output_data[global_idx]",1)} + ${T("output_data[global_idx]",2)} + ${T("output_data[global_idx]",3)} + `}return` + ${s.registerUniform("vec_size","u32").declareVariables(x,I,M,p)} + ${s.mainStart()} + ${s.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${G} + }`},Nh=s=>{let n=s[1].dims,i=s[2].dims,g=s[0].dims,C=s[1].dataType,p=!(nA.areEqual(n,i)&&nA.areEqual(i,g)),I=n,M=nA.size(n);if(p){let G=R0.calcShape(R0.calcShape(n,i,!1),g,!1);if(!G)throw new Error("Can't perform where op on the given tensors");I=G,M=nA.size(I)}let x=Math.ceil(M/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:G=>zh(G,s,I,p,C),getRunData:()=>({outputs:[{dims:I,dataType:C}],dispatchGroup:{x:Math.ceil(M/64/4)},programUniforms:[{type:12,data:x},...lt(g,n,i,I)]})}},Mb=s=>{s.compute(Nh(s.inputs))}}),vb,A5=xA(()=>{pw(),Zf(),hw(),mw(),Cw(),bw(),Iw(),vw(),xw(),Bw(),Dw(),Tw(),Gw(),Pw(),Qw(),Sw(),Fw(),Ow(),_w(),zw(),Nw(),Lw(),jw(),Rw(),Ww(),V3(),Vw(),Yw(),Hw(),Uw(),Kw(),Xf(),Xw(),X3(),Zw(),Jw(),qw(),U3(),$w(),ao(),Jf(),e5(),vb=new Map([["Abs",[CC]],["Acos",[bC]],["Acosh",[IC]],["Add",[e3]],["ArgMax",[gC,vf]],["ArgMin",[fC,vf]],["Asin",[wC]],["Asinh",[kC]],["Atan",[EC]],["Atanh",[MC]],["Attention",[pC]],["AveragePool",[ab,rb]],["BatchNormalization",[hC]],["BiasAdd",[mC]],["BiasSplitGelu",[$C]],["Cast",[yC,vC]],["Ceil",[BC]],["Clip",[xC]],["Concat",[c3,u3]],["Conv",[Gf,Tf]],["ConvTranspose",[w3,I3]],["Cos",[DC]],["Cosh",[TC]],["CumSum",[k3,E3]],["DepthToSpace",[M3,v3]],["DequantizeLinear",[ub,db]],["Div",[A3]],["Einsum",[y3,x3]],["Elu",[GC,Uc]],["Equal",[t3]],["Erf",[PC]],["Exp",[QC]],["Expand",[B3]],["FastGelu",[D3]],["Floor",[SC]],["FusedConv",[Gf,Tf]],["Gather",[G3,T3]],["GatherElements",[_3,O3]],["GatherBlockQuantized",[S3,F3]],["GatherND",[P3,Q3]],["Gelu",[FC]],["Gemm",[N3,z3]],["GlobalAveragePool",[ib,sb]],["GlobalMaxPool",[cb,lb]],["Greater",[i3]],["GreaterOrEqual",[o3]],["GridSample",[L3,j3]],["GroupQueryAttention",[Z3]],["HardSigmoid",[WC,RC]],["InstanceNormalization",[J3]],["LayerNormalization",[q3]],["LeakyRelu",[OC,Uc]],["Less",[n3]],["LessOrEqual",[l3]],["Log",[JC]],["MatMul",[$3]],["MatMulNBits",[eb,Ab]],["MaxPool",[nb,ob]],["Mul",[r3]],["MultiHeadAttention",[W3,R3]],["Neg",[zC]],["Not",[_C]],["Pad",[tb]],["Pow",[a3]],["QuickGelu",[qC,Uc]],["Range",[fb]],["Reciprocal",[NC]],["ReduceMin",[oC]],["ReduceMean",[rC]],["ReduceMax",[nC]],["ReduceSum",[cC]],["ReduceProd",[lC]],["ReduceL1",[aC]],["ReduceL2",[sC]],["ReduceLogSum",[dC]],["ReduceLogSumExp",[iC]],["ReduceSumSquare",[uC]],["Relu",[LC]],["Resize",[hb,mb]],["RotaryEmbedding",[K3]],["ScatterND",[pb,gb]],["Sigmoid",[jC]],["Sin",[VC]],["Sinh",[YC]],["Slice",[bb,Ib]],["SkipLayerNormalization",[Cb]],["Split",[Y3,H3]],["Sqrt",[HC]],["Softmax",[wb,kb]],["Sub",[s3]],["Tan",[UC]],["Tanh",[KC]],["ThresholdedRelu",[ZC,Uc]],["Tile",[Eb]],["Transpose",[Ym,Hm]],["Where",[Mb]]])}),yb,t5=xA(()=>{Xs(),Cn(),Bt(),yb=class{constructor(s){this.backend=s,this.repo=new Map,this.attributesBound=!1}getArtifact(s){return this.repo.get(s)}setArtifact(s,n){this.repo.set(s,n)}run(s,n,i,g,C){Ei(s.programInfo.name);let p=this.backend.device,I=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let M=[];for(let G of n)M.push({binding:M.length,resource:{buffer:G.buffer}});for(let G of i)M.push({binding:M.length,resource:{buffer:G.buffer}});C&&M.push({binding:M.length,resource:C});let x=p.createBindGroup({layout:s.computePipeline.getBindGroupLayout(0),entries:M,label:s.programInfo.name});if(this.backend.sessionStatus==="capturing"){let G={kernelId:this.backend.currentKernelId,computePipeline:s.computePipeline,bindGroup:x,dispatchGroup:g};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(G)}I.setPipeline(s.computePipeline),I.setBindGroup(0,x),I.dispatchWorkgroups(...g),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),Ks(s.programInfo.name)}dispose(){}build(s,n){Ei(s.name);let i=this.backend.device,g=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(G=>{i.features.has(G.feature)&&g.push(`enable ${G.extension};`)});let C=Vm(n,this.backend.device.limits),p=s.getShaderSource(C),I=`${g.join(` +`)} +${C.additionalImplementations} +${p}`,M=i.createShaderModule({code:I,label:s.name});Yt("verbose",()=>`[WebGPU] ${s.name} shader code: ${I}`);let x=i.createComputePipeline({compute:{module:M,entryPoint:"main"},layout:"auto",label:s.name});return Ks(s.name),{programInfo:s,computePipeline:x,uniformVariablesInfo:C.variablesInfo}}normalizeDispatchGroupSize(s){let n=typeof s=="number"?s:s.x,i=typeof s=="number"?1:s.y||1,g=typeof s=="number"?1:s.z||1,C=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(n<=C&&i<=C&&g<=C)return[n,i,g];let p=n*i*g,I=Math.ceil(Math.sqrt(p));if(I>C){if(I=Math.ceil(Math.cbrt(p)),I>C)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[I,I,I]}else return[I,I,1]}}}),xb={};H0(xb,{WebGpuBackend:()=>Bb});var Lh,jh,Rh,Bb,r5=xA(()=>{Xs(),Ct(),Cn(),Nm(),fw(),A5(),t5(),Lh=(s,n)=>{if(n.length!==s.length)throw new Error(`inputDependencies length ${n.length} is not equal to inputTensors length ${s.length}.`);let i=[];for(let g=0;g{var C,p;let g=s.name;return(C=s.shaderCache)!=null&&C.hint&&(g+="["+s.shaderCache.hint+"]"),g+=":"+i+`:${Lh(n,((p=s.shaderCache)==null?void 0:p.inputDependencies)??new Array(n.length).fill("dims"))}`,g},Rh=class{constructor(s){s&&(this.architecture=s.architecture,this.vendor=s.vendor)}isArchitecture(s){return this.architecture===s}isVendor(s){return this.vendor===s}},Bb=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let s=this.kernelCustomData.get(this.currentKernelId);return s||(s={},this.kernelCustomData.set(this.currentKernelId,s)),s}async initialize(s,n){this.env=s;let i=[],g={requiredLimits:{maxComputeWorkgroupStorageSize:n.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:n.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:n.limits.maxStorageBufferBindingSize,maxBufferSize:n.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:n.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:n.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:n.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:n.limits.maxComputeWorkgroupSizeZ},requiredFeatures:i},C=p=>n.features.has(p)&&i.push(p)&&!0;C("chromium-experimental-timestamp-query-inside-passes")||C("timestamp-query"),C("shader-f16"),C("subgroups"),this.device=await n.requestDevice(g),this.adapterInfo=new Rh(n.info||await n.requestAdapterInfo()),this.gpuDataManager=Rm(this),this.programManager=new yb(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Yf(s.logLevel,!!s.debug),this.device.onuncapturederror=p=>{p.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${p.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:n,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let s=this.getCommandEncoder(),n={};this.queryType==="at-passes"&&(n.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=s.beginComputePass(n)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Ei(),this.endComputePass();let s;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),s=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(s,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,s,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&s.mapAsync(GPUMapMode.READ).then(()=>{var g;let n=new BigUint64Array(s.getMappedRange()),i=this.pendingQueries.get(s);for(let C=0;C"u"&&(this.queryTimeBase=j);let K=Number(j-this.queryTimeBase),ae=Number(L-this.queryTimeBase);if(!Number.isSafeInteger(K)||!Number.isSafeInteger(ae))throw new RangeError("incorrect timestamp range");if((g=this.env.webgpu.profiling)!=null&&g.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:T.map(Y=>({dims:Y.dims,dataType:hn(Y.dataType)})),outputsMetadata:P.map(Y=>({dims:Y.dims,dataType:hn(Y.dataType)})),kernelId:I,kernelType:x,kernelName:G,programName:S,startTime:K,endTime:ae});else{let Y="";T.forEach((ee,d)=>{Y+=`input[${d}]: [${ee.dims}] | ${hn(ee.dataType)}, `});let V="";P.forEach((ee,d)=>{V+=`output[${d}]: [${ee.dims}] | ${hn(ee.dataType)}, `}),console.log(`[profiling] kernel "${I}|${x}|${G}|${S}" ${Y}${V}execution time: ${ae-K} ns`)}$c("GPU",`${S}::${j}::${L}`)}s.unmap(),this.pendingQueries.delete(s)}),Ks()}run(s,n,i,g,C,p){Ei(s.name);let I=[];for(let V=0;Vee):i;if(S.length!==M.length)throw new Error(`Output size ${S.length} must be equal to ${M.length}.`);let T=[],P=[];for(let V=0;V=p)throw new Error(`Invalid output index: ${S[V]}`);if(S[V]===-3)continue;let ee=S[V]===-1,d=S[V]===-2,v=ee||d?C(M[V].dataType,M[V].dims):g(S[V],M[V].dataType,M[V].dims);if(T.push(v),v.data===0)continue;let e=this.gpuDataManager.get(v.data);if(!e)throw new Error(`no GPU data for output: ${v.data}`);if(ee&&this.temporaryData.push(e),d){let u=this.kernelPersistentData.get(this.currentKernelId);u||(u=[],this.kernelPersistentData.set(this.currentKernelId,u)),u.push(e)}P.push(e)}if(I.length!==n.length||P.length!==T.length){if(P.length===0)return Ks(s.name),T;throw new Error(`Program ${s.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let j;if(G){let V=0,ee=[];G.forEach(u=>{let Q=typeof u.data=="number"?[u.data]:u.data;if(Q.length===0)return;let oe=u.type===10?2:4,O,R;u.type===10?(R=Q.length>4?16:Q.length>2?8:Q.length*oe,O=Q.length>4?16:oe*Q.length):(R=Q.length<=2?Q.length*oe:16,O=16),V=Math.ceil(V/R)*R,ee.push(V);let De=u.type===10?8:4;V+=Q.length>4?Math.ceil(Q.length/De)*O:Q.length*oe});let d=16;V=Math.ceil(V/d)*d;let v=new ArrayBuffer(V);G.forEach((u,Q)=>{let oe=ee[Q],O=typeof u.data=="number"?[u.data]:u.data;if(u.type===6)new Int32Array(v,oe,O.length).set(O);else if(u.type===12)new Uint32Array(v,oe,O.length).set(O);else if(u.type===10)new Uint16Array(v,oe,O.length).set(O);else if(u.type===1)new Float32Array(v,oe,O.length).set(O);else throw new Error(`Unsupported uniform type: ${hn(u.type)}`)});let e=this.gpuDataManager.create(V,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(e.buffer,0,v,0,V),this.gpuDataManager.release(e.id),j={offset:0,size:V,buffer:e.buffer}}let L=this.programManager.normalizeDispatchGroupSize(x),K=L[1]===1&&L[2]===1,ae=jh(s,n,K),Y=this.programManager.getArtifact(ae);if(Y||(Y=this.programManager.build(s,L),this.programManager.setArtifact(ae,Y),Yt("info",()=>`[artifact] key: ${ae}, programName: ${s.name}`)),G&&Y.uniformVariablesInfo){if(G.length!==Y.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${Y.uniformVariablesInfo.length}, got ${G.length} in program "${Y.programInfo.name}".`);for(let V=0;V`[ProgramManager] run "${s.name}" (key=${ae}) with ${L[0]}x${L[1]}x${L[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let V={kernelId:this.currentKernelId,programName:Y.programInfo.name,inputTensorViews:n,outputTensorViews:T};this.pendingKernels.push(V),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(V)}return this.programManager.run(Y,I,P,L,j),Ks(s.name),T}upload(s,n){this.gpuDataManager.upload(s,n)}memcpy(s,n){this.gpuDataManager.memcpy(s,n)}async download(s,n){await this.gpuDataManager.download(s,n)}alloc(s){return this.gpuDataManager.create(s).id}free(s){return this.gpuDataManager.release(s)}createKernel(s,n,i,g){let C=vb.get(s);if(!C)throw new Error(`kernel not implemented: ${s}`);let p={kernelType:s,kernelName:g,kernelEntry:C[0],attributes:[C[1],i]};this.kernels.set(n,p)}releaseKernel(s){let n=this.kernelPersistentData.get(s);if(n){for(let i of n)this.gpuDataManager.release(i.id);this.kernelPersistentData.delete(s)}this.kernelCustomData.delete(s),this.kernels.delete(s)}computeKernel(s,n,i){let g=this.kernels.get(s);if(!g)throw new Error(`kernel not created: ${s}`);let C=g.kernelType,p=g.kernelName,I=g.kernelEntry,M=g.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${C}] ${p}" is not allowed to be called recursively`);this.currentKernelId=s,M[0]&&(M[1]=M[0](M[1]),M[0]=void 0),Yt("info",()=>`[WebGPU] Start to run kernel "[${C}] ${p}"...`);let x=this.env.debug;this.temporaryData=[];try{return x&&this.device.pushErrorScope("validation"),I(n,M[1]),0}catch(G){return i.push(Promise.resolve(`[WebGPU] Kernel "[${C}] ${p}" failed. ${G}`)),1}finally{x&&i.push(this.device.popErrorScope().then(G=>G?`GPU validation error for kernel "[${C}] ${p}": ${G.message}`:null));for(let G of this.temporaryData)this.gpuDataManager.release(G.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(s,n,i,g){let C=this.sessionExternalDataMapping.get(s);C||(C=new Map,this.sessionExternalDataMapping.set(s,C));let p=C.get(n),I=this.gpuDataManager.registerExternalBuffer(i,g,p);return C.set(n,[I,i]),I}unregisterBuffers(s){let n=this.sessionExternalDataMapping.get(s);n&&(n.forEach(i=>this.gpuDataManager.unregisterExternalBuffer(i[0])),this.sessionExternalDataMapping.delete(s))}getBuffer(s){let n=this.gpuDataManager.get(s);if(!n)throw new Error(`no GPU data for buffer: ${s}`);return n.buffer}createDownloader(s,n,i){return async()=>{let g=await kf(this,s,n);return Hf(g.buffer,i)}}writeTimestamp(s){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,s)}setQueryType(){var s;this.queryType="none",(((s=this.env.webgpu.profiling)==null?void 0:s.mode)==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Yt("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Yt("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Yt("info","replay"),this.sessionStatus="replaying";let s=this.capturedCommandList.get(this.currentSessionId),n=this.capturedPendingKernels.get(this.currentSessionId),i=s.length;this.pendingKernels=[];for(let g=0;g=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(s){this.unregisterBuffers(s),this.capturedCommandList.has(s)&&this.capturedCommandList.delete(s),this.capturedPendingKernels.has(s)&&this.capturedPendingKernels.delete(s),this.gpuDataManager.onReleaseSession(s)}onRunStart(s){this.currentSessionId=s,this.setQueryType()}}}),Db={};H0(Db,{init:()=>Tb});var Eu,Wh,Tb,a5=xA(()=>{Ct(),Cn(),yt(),dw(),Eu=class Gb{constructor(n,i,g,C){this.module=n,this.dataType=i,this.data=g,this.dims=C}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let n=nA.size(this.dims);return n===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,n)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let n=nA.size(this.dims);return n===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,n)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let n=nA.size(this.dims);return n===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,n)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let n=nA.size(this.dims);return n===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,n)}reshape(n){if(nA.size(n)!==nA.size(this.dims))throw new Error("Invalid new shape");return new Gb(this.module,this.dataType,this.data,n)}},Wh=class{constructor(s,n,i){this.module=s,this.backend=n,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=n.adapterInfo;let g=s.PTR_SIZE,C=i/s.PTR_SIZE,p=g===4?"i32":"i64";this.opKernelContext=Number(s.getValue(g*C++,p));let I=Number(s.getValue(g*C++,p));this.outputCount=Number(s.getValue(g*C++,p)),this.customDataOffset=Number(s.getValue(g*C++,"*")),this.customDataSize=Number(s.getValue(g*C++,p));let M=[];for(let x=0;xtypeof M=="number"?this.inputs[M]:M))??this.inputs,g=(n==null?void 0:n.outputs)??[],C=(M,x,G)=>new Eu(this.module,x,this.output(M,G),G),p=(M,x)=>{let G=Ko(M,x);if(!G)throw new Error(`Unsupported data type: ${M}`);let S=G>0?this.backend.gpuDataManager.create(G).id:0;return new Eu(this.module,M,S,x)};return this.backend.run(s,i,g,C,p,this.outputCount)}output(s,n){let i=this.module.stackSave();try{let g=this.module.PTR_SIZE,C=g===4?"i32":"i64",p=this.module.stackAlloc((1+n.length)*g);this.module.setValue(p,n.length,C);for(let I=0;I{let C=n.jsepInit;if(!C)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(s==="webgpu"){let p=(r5(),qc(xb)).WebGpuBackend,I=new p;await I.initialize(i,g),C("webgpu",[I,M=>I.alloc(Number(M)),M=>I.free(M),(M,x,G,S=!1)=>{if(S)Yt("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(M)}, dst=${Number(x)}, size=${Number(G)}`),I.memcpy(Number(M),Number(x));else{Yt("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(M)}, gpuDataId=${Number(x)}, size=${Number(G)}`);let T=n.HEAPU8.subarray(Number(M>>>0),Number(M>>>0)+Number(G));I.upload(Number(x),T)}},async(M,x,G)=>{Yt("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${M}, dataOffset=${x}, size=${G}`),await I.download(Number(M),()=>n.HEAPU8.subarray(Number(x)>>>0,Number(x+G)>>>0))},(M,x,G)=>I.createKernel(M,Number(x),G,n.UTF8ToString(n._JsepGetNodeName(Number(x)))),M=>I.releaseKernel(M),(M,x,G,S)=>{Yt("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${G}, kernel=${M}, contextDataOffset=${x}`);let T=new Wh(n,I,Number(x));return I.computeKernel(Number(M),T,S)},()=>I.captureBegin(),()=>I.captureEnd(),()=>I.replay()])}else{let p=new jm(i);C("webnn",[p,()=>p.reserveTensorId(),I=>p.releaseTensorId(I),async(I,M,x,G,S)=>p.ensureTensor(I,M,x,G,S),(I,M)=>{p.uploadTensor(I,M)},async(I,M)=>p.downloadTensor(I,M),!!i.trace])}}}),Vh,rg,ag,qn,Yh,tf,zu,sg,ig,rf,ng,og,lg,Pb=xA(()=>{Xs(),lw(),cw(),Ct(),A0(),jf(),Fm(),Vh=(s,n)=>{yr()._OrtInit(s,n)!==0&&dr("Can't initialize onnxruntime.")},rg=async s=>{Vh(s.wasm.numThreads,Qu(s.logLevel))},ag=async(s,n)=>{var i,g;(g=(i=yr()).asyncInit)==null||g.call(i);{let C=(a5(),qc(Db)).init;if(n==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let p=s.webgpu.adapter;if(p){if(typeof p.limits!="object"||typeof p.features!="object"||typeof p.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let I=s.webgpu.powerPreference;if(I!==void 0&&I!=="low-power"&&I!=="high-performance")throw new Error(`Invalid powerPreference setting: "${I}"`);let M=s.webgpu.forceFallbackAdapter;if(M!==void 0&&typeof M!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${M}"`);if(p=await navigator.gpu.requestAdapter({powerPreference:I,forceFallbackAdapter:M}),!p)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await C("webgpu",yr(),s,p)}if(n==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await C("webnn",yr(),s)}}},qn=new Map,Yh=s=>{let n=yr(),i=n.stackSave();try{let g=n.PTR_SIZE,C=n.stackAlloc(2*g);n._OrtGetInputOutputCount(s,C,C+g)!==0&&dr("Can't get session input/output count.");let p=g===4?"i32":"i64";return[Number(n.getValue(C,p)),Number(n.getValue(C+g,p))]}finally{n.stackRestore(i)}},tf=(s,n)=>{let i=yr(),g=i.stackSave(),C=0;try{let p=i.PTR_SIZE,I=i.stackAlloc(2*p);i._OrtGetInputOutputMetadata(s,n,I,I+p)!==0&&dr("Can't get session input/output metadata.");let M=Number(i.getValue(I,"*"));C=Number(i.getValue(I+p,"*"));let x=i.HEAP32[C/4];if(x===0)return[M,0];let G=i.HEAPU32[C/4+1],S=[];for(let T=0;T{let n=yr(),i=n._malloc(s.byteLength);if(i===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${s.byteLength}.`);return n.HEAPU8.set(s,i),[i,s.byteLength]},sg=async(s,n)=>{var T,P,j,L;let i,g,C=yr();Array.isArray(s)?[i,g]=s:s.buffer===C.HEAPU8.buffer?[i,g]=[s.byteOffset,s.byteLength]:[i,g]=zu(s);let p=0,I=0,M=0,x=[],G=[],S=[];try{if([I,x]=await Sm(n),(n==null?void 0:n.externalData)&&C.mountExternalData){let Q=[];for(let oe of n.externalData){let O=typeof oe=="string"?oe:oe.path;Q.push(Vf(typeof oe=="string"?oe:oe.data).then(R=>{C.mountExternalData(O,R)}))}await Promise.all(Q)}for(let Q of(n==null?void 0:n.executionProviders)??[])if((typeof Q=="string"?Q:Q.name)==="webnn"){if(C.shouldTransferToMLTensor=!1,typeof Q!="string"){let oe=Q,O=oe==null?void 0:oe.context,R=oe==null?void 0:oe.gpuDevice,De=oe==null?void 0:oe.deviceType,ce=oe==null?void 0:oe.powerPreference;O?C.currentContext=O:R?C.currentContext=await C.webnnCreateMLContext(R):C.currentContext=await C.webnnCreateMLContext({deviceType:De,powerPreference:ce})}else C.currentContext=await C.webnnCreateMLContext();break}p=await C._OrtCreateSession(i,g,I),(T=C.webgpuOnCreateSession)==null||T.call(C,p),p===0&&dr("Can't create a session."),(P=C.jsepOnCreateSession)==null||P.call(C),C.currentContext&&(C.webnnRegisterMLContext(p,C.currentContext),C.currentContext=void 0,C.shouldTransferToMLTensor=!0);let[K,ae]=Yh(p),Y=!!(n!=null&&n.enableGraphCapture),V=[],ee=[],d=[],v=[],e=[];for(let Q=0;QQ==="gpu-buffer"||Q==="ml-tensor"||Q==="ml-tensor-cpu-output")&&(M=C._OrtCreateBinding(p),M===0&&dr("Can't create IO binding."),u={handle:M,outputPreferredLocations:e,outputPreferredLocationsEncoded:e.map(Q=>Q==="ml-tensor-cpu-output"?"ml-tensor":Q).map(Q=>If(Q))}),qn.set(p,[p,G,S,u,Y,!1]),[p,V,ee,d,v]}catch(K){throw G.forEach(ae=>C._OrtFree(ae)),S.forEach(ae=>C._OrtFree(ae)),M!==0&&C._OrtReleaseBinding(M)!==0&&dr("Can't release IO binding."),p!==0&&C._OrtReleaseSession(p)!==0&&dr("Can't release session."),K}finally{C._free(i),I!==0&&C._OrtReleaseSessionOptions(I)!==0&&dr("Can't release session options."),x.forEach(K=>C._free(K)),(L=C.unmountExternalData)==null||L.call(C)}},ig=s=>{var x,G,S;let n=yr(),i=qn.get(s);if(!i)throw new Error(`cannot release session. invalid session id: ${s}`);let[g,C,p,I,M]=i;I&&(M&&n._OrtClearBoundOutputs(I.handle)!==0&&dr("Can't clear bound outputs."),n._OrtReleaseBinding(I.handle)!==0&&dr("Can't release IO binding.")),(x=n.jsepOnReleaseSession)==null||x.call(n,s),(G=n.webnnOnReleaseSession)==null||G.call(n,s),(S=n.webgpuOnReleaseSession)==null||S.call(n,s),C.forEach(T=>n._OrtFree(T)),p.forEach(T=>n._OrtFree(T)),n._OrtReleaseSession(g)!==0&&dr("Can't release session."),qn.delete(s)},rf=async(s,n,i,g,C,p,I=!1)=>{if(!s){n.push(0);return}let M=yr(),x=M.PTR_SIZE,G=s[0],S=s[1],T=s[3],P=T,j,L;if(G==="string"&&(T==="gpu-buffer"||T==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(I&&T!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${p} when enableGraphCapture is true.`);if(T==="gpu-buffer"){let Y=s[2].gpuBuffer;L=Ko(Uo(G),S);{let V=M.jsepRegisterBuffer;if(!V)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');j=V(g,p,Y,L)}}else if(T==="ml-tensor"){let Y=s[2].mlTensor;L=Ko(Uo(G),S);let V=M.webnnRegisterMLTensor;if(!V)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');j=V(g,Y,Uo(G),S)}else{let Y=s[2];if(Array.isArray(Y)){L=x*Y.length,j=M._malloc(L),i.push(j);for(let V=0;VM.setValue(ae+ee*x,V,x===4?"i32":"i64"));let Y=M._OrtCreateTensor(Uo(G),j,L,ae,S.length,If(P));Y===0&&dr(`Can't create tensor for input/output. session=${g}, index=${p}.`),n.push(Y)}finally{M.stackRestore(K)}},ng=async(s,n,i,g,C,p)=>{var R,De,ce,Te;let I=yr(),M=I.PTR_SIZE,x=qn.get(s);if(!x)throw new Error(`cannot run inference. invalid session id: ${s}`);let G=x[0],S=x[1],T=x[2],P=x[3],j=x[4],L=x[5],K=n.length,ae=g.length,Y=0,V=[],ee=[],d=[],v=[],e=I.stackSave(),u=I.stackAlloc(K*M),Q=I.stackAlloc(K*M),oe=I.stackAlloc(ae*M),O=I.stackAlloc(ae*M);try{[Y,V]=Qm(p),Ao("wasm prepareInputOutputTensor");for(let Se=0;SeNe*we,1);Ie=hn(Ve);let Ee=P==null?void 0:P.outputPreferredLocations[g[Se]];if(Ie==="string"){if(Ee==="gpu-buffer"||Ee==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Ne=[];for(let we=0;we0){let Ne=I.jsepGetBuffer;if(!Ne)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let we=Ne(Oe),aA=Ko(Ve,Ze);if(aA===void 0||!Rf(Ie))throw new Error(`Unsupported data type: ${Ie}`);le=!0,Qe.push([Ie,QA,{gpuBuffer:we,download:I.jsepCreateDownloader(we,aA,Ie),dispose:()=>{I._OrtReleaseTensor(Je)!==0&&dr("Can't release tensor.")}},"gpu-buffer"])}else if(Ee==="ml-tensor"&&Ze>0){let Ne=I.webnnEnsureTensor,we=I.webnnIsGraphInputOutputTypeSupported;if(!Ne||!we)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Ko(Ve,Ze)===void 0||!Wf(Ie))throw new Error(`Unsupported data type: ${Ie}`);if(!we(s,Ie,!1))throw new Error(`preferredLocation "ml-tensor" for ${Ie} output is not supported by current WebNN Context.`);let aA=await Ne(s,Oe,Ve,QA,!1);le=!0,Qe.push([Ie,QA,{mlTensor:aA,download:I.webnnCreateMLTensorDownloader(Oe,Ie),dispose:()=>{I.webnnReleaseTensorId(Oe),I._OrtReleaseTensor(Je)}},"ml-tensor"])}else if(Ee==="ml-tensor-cpu-output"&&Ze>0){let Ne=I.webnnCreateMLTensorDownloader(Oe,Ie)(),we=Qe.length;le=!0,je.push((async()=>{let aA=[we,await Ne];return I.webnnReleaseTensorId(Oe),I._OrtReleaseTensor(Je),aA})()),Qe.push([Ie,QA,[],"cpu"])}else{let Ne=Yu(Ie),we=new Ne(Ze);new Uint8Array(we.buffer,we.byteOffset,we.byteLength).set(I.HEAPU8.subarray(Oe,Oe+we.byteLength)),Qe.push([Ie,QA,we,"cpu"])}}finally{I.stackRestore(Xe),Ie==="string"&&Oe&&I._free(Oe),le||I._OrtReleaseTensor(Je)}}P&&!j&&(I._OrtClearBoundOutputs(P.handle)!==0&&dr("Can't clear bound outputs."),qn.set(s,[G,S,T,P,j,!1]));for(let[Se,Je]of await Promise.all(je))Qe[Se][2]=Je;return to("wasm ProcessOutputTensor"),Qe}finally{(Te=I.webnnOnRunEnd)==null||Te.call(I,G),I.stackRestore(e),ee.forEach(Be=>I._OrtReleaseTensor(Be)),d.forEach(Be=>I._OrtReleaseTensor(Be)),v.forEach(Be=>I._free(Be)),Y!==0&&I._OrtReleaseRunOptions(Y),V.forEach(Be=>I._free(Be))}},og=s=>{let n=yr(),i=qn.get(s);if(!i)throw new Error("invalid session id");let g=i[0],C=n._OrtEndProfiling(g);C===0&&dr("Can't get an profile file name."),n._OrtFree(C)},lg=s=>{let n=[];for(let i of s){let g=i[2];!Array.isArray(g)&&"buffer"in g&&n.push(g.buffer)}return n}}),$n,bs,S0,Lc,jc,Mu,af,vu,Ro,Wo,Hh,Qb,Sb,Fb,Ob,_b,zb,Nb,Lb=xA(()=>{Xs(),Pb(),A0(),Nf(),$n=()=>!!Gr.wasm.proxy&&typeof document<"u",S0=!1,Lc=!1,jc=!1,vu=new Map,Ro=(s,n)=>{let i=vu.get(s);i?i.push(n):vu.set(s,[n])},Wo=()=>{if(S0||!Lc||jc||!bs)throw new Error("worker not ready")},Hh=s=>{switch(s.data.type){case"init-wasm":S0=!1,s.data.err?(jc=!0,af[1](s.data.err)):(Lc=!0,af[0]()),Mu&&(URL.revokeObjectURL(Mu),Mu=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let n=vu.get(s.data.type);s.data.err?n.shift()[1](s.data.err):n.shift()[0](s.data.out);break}}},Qb=async()=>{if(!Lc){if(S0)throw new Error("multiple calls to 'initWasm()' detected.");if(jc)throw new Error("previous call to 'initWasm()' failed.");if(S0=!0,$n())return new Promise((s,n)=>{bs==null||bs.terminate(),Gm().then(([i,g])=>{try{bs=g,bs.onerror=p=>n(p),bs.onmessage=Hh,af=[s,n];let C={type:"init-wasm",in:Gr};!C.in.wasm.wasmPaths&&(i||bf)&&(C.in.wasm.wasmPaths={wasm:new URL("/assets/ort-wasm-simd-threaded.jsep-D5UMYBk4.wasm",import.meta.url).href}),bs.postMessage(C),Mu=i}catch(C){n(C)}},n)});try{await Lf(Gr.wasm),await rg(Gr),Lc=!0}catch(s){throw jc=!0,s}finally{S0=!1}}},Sb=async s=>{if($n())return Wo(),new Promise((n,i)=>{Ro("init-ep",[n,i]);let g={type:"init-ep",in:{epName:s,env:Gr}};bs.postMessage(g)});await ag(Gr,s)},Fb=async s=>$n()?(Wo(),new Promise((n,i)=>{Ro("copy-from",[n,i]);let g={type:"copy-from",in:{buffer:s}};bs.postMessage(g,[s.buffer])})):zu(s),Ob=async(s,n)=>{if($n()){if(n!=null&&n.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Wo(),new Promise((i,g)=>{Ro("create",[i,g]);let C={type:"create",in:{model:s,options:{...n}}},p=[];s instanceof Uint8Array&&p.push(s.buffer),bs.postMessage(C,p)})}else return sg(s,n)},_b=async s=>{if($n())return Wo(),new Promise((n,i)=>{Ro("release",[n,i]);let g={type:"release",in:s};bs.postMessage(g)});ig(s)},zb=async(s,n,i,g,C,p)=>{if($n()){if(i.some(I=>I[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(C.some(I=>I))throw new Error("pre-allocated output tensor is not supported for proxy.");return Wo(),new Promise((I,M)=>{Ro("run",[I,M]);let x=i,G={type:"run",in:{sessionId:s,inputIndices:n,inputs:x,outputIndices:g,options:p}};bs.postMessage(G,lg(x))})}else return ng(s,n,i,g,C,p)},Nb=async s=>{if($n())return Wo(),new Promise((n,i)=>{Ro("end-profiling",[n,i]);let g={type:"end-profiling",in:s};bs.postMessage(g)});og(s)}}),sf,Uh,jb,s5=xA(()=>{Xs(),Lb(),Ct(),zf(),Fm(),sf=(s,n)=>{switch(s.location){case"cpu":return[s.type,s.dims,s.data,"cpu"];case"gpu-buffer":return[s.type,s.dims,{gpuBuffer:s.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[s.type,s.dims,{mlTensor:s.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${s.location} for ${n()}`)}},Uh=s=>{switch(s[3]){case"cpu":return new ki(s[0],s[2],s[1]);case"gpu-buffer":{let n=s[0];if(!Rf(n))throw new Error(`not supported data type: ${n} for deserializing GPU tensor`);let{gpuBuffer:i,download:g,dispose:C}=s[2];return ki.fromGpuBuffer(i,{dataType:n,dims:s[1],download:g,dispose:C})}case"ml-tensor":{let n=s[0];if(!Wf(n))throw new Error(`not supported data type: ${n} for deserializing MLTensor tensor`);let{mlTensor:i,download:g,dispose:C}=s[2];return ki.fromMLTensor(i,{dataType:n,dims:s[1],download:g,dispose:C})}default:throw new Error(`invalid data location: ${s[3]}`)}},jb=class{async fetchModelAndCopyToWasmMemory(s){return Fb(await Vf(s))}async loadModel(s,n){Ei();let i;typeof s=="string"?i=await this.fetchModelAndCopyToWasmMemory(s):i=s,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await Ob(i,n),Ks()}async dispose(){return _b(this.sessionId)}async run(s,n,i){Ei();let g=[],C=[];Object.entries(s).forEach(T=>{let P=T[0],j=T[1],L=this.inputNames.indexOf(P);if(L===-1)throw new Error(`invalid input '${P}'`);g.push(j),C.push(L)});let p=[],I=[];Object.entries(n).forEach(T=>{let P=T[0],j=T[1],L=this.outputNames.indexOf(P);if(L===-1)throw new Error(`invalid output '${P}'`);p.push(j),I.push(L)});let M=g.map((T,P)=>sf(T,()=>`input "${this.inputNames[C[P]]}"`)),x=p.map((T,P)=>T?sf(T,()=>`output "${this.outputNames[I[P]]}"`):null),G=await zb(this.sessionId,C,M,I,x,i),S={};for(let T=0;TSf,initializeFlags:()=>Qf,wasmBackend:()=>Wb});var Qf,Sf,Wb,i5=xA(()=>{Xs(),Lb(),s5(),Qf=()=>{(typeof Gr.wasm.initTimeout!="number"||Gr.wasm.initTimeout<0)&&(Gr.wasm.initTimeout=0);let s=Gr.wasm.simd;if(typeof s!="boolean"&&s!==void 0&&s!=="fixed"&&s!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${s}". Reset it to \`false\` and ignore SIMD feature checking.`),Gr.wasm.simd=!1),typeof Gr.wasm.proxy!="boolean"&&(Gr.wasm.proxy=!1),typeof Gr.wasm.trace!="boolean"&&(Gr.wasm.trace=!1),typeof Gr.wasm.numThreads!="number"||!Number.isInteger(Gr.wasm.numThreads)||Gr.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Gr.wasm.numThreads=1;else{let n=typeof navigator>"u"?HI("node:os").cpus().length:navigator.hardwareConcurrency;Gr.wasm.numThreads=Math.min(4,Math.ceil((n||1)/2))}},Sf=class{async init(s){Qf(),await Qb(),await Sb(s)}async createInferenceSessionHandler(s,n){let i=new jb;return await i.loadModel(s,n),i}},Wb=new Sf});Xs();Xs();Xs();var n5="1.23.0",o5=vm;{let s=(i5(),qc(Rb)).wasmBackend;Xo("webgpu",s,5),Xo("webnn",s,5),Xo("cpu",s,10),Xo("wasm",s,10)}Object.defineProperty(Gr.versions,"web",{value:n5,enumerable:!0});/** +* @license +* Copyright 2021 Google LLC. All Rights Reserved. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ============================================================================= +*//** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + *//** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */var l5=Object.freeze({__proto__:null,get InferenceSession(){return _f},get TRACE(){return $c},get TRACE_EVENT_BEGIN(){return Ao},get TRACE_EVENT_END(){return to},get TRACE_FUNC_BEGIN(){return Ei},get TRACE_FUNC_END(){return Ks},get Tensor(){return ki},default:o5,get env(){return Gr},get registerBackend(){return Xo}}),fn={},c5={"./node_modules/@huggingface/jinja/dist/index.js":(s,n,i)=>{i.r(n),i.d(n,{Environment:()=>EA,Interpreter:()=>xe,Template:()=>rs,parse:()=>Ie,tokenize:()=>T});var g=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",NullLiteral:"NullLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndSet:"EndSet",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro",Break:"Break",Continue:"Continue"}),C=Object.freeze({set:g.Set,for:g.For,in:g.In,is:g.Is,if:g.If,else:g.Else,endset:g.EndSet,endif:g.EndIf,elif:g.ElseIf,endfor:g.EndFor,and:g.And,or:g.Or,not:g.Not,"not in":g.NotIn,macro:g.Macro,endmacro:g.EndMacro,break:g.Break,continue:g.Continue,true:g.BooleanLiteral,false:g.BooleanLiteral,none:g.NullLiteral,True:g.BooleanLiteral,False:g.BooleanLiteral,None:g.NullLiteral}),p=class{constructor(ge,Re){this.value=ge,this.type=Re}};function I(ge){return/\w/.test(ge)}function M(ge){return/[0-9]/.test(ge)}var x=[["{%",g.OpenStatement],["%}",g.CloseStatement],["{{",g.OpenExpression],["}}",g.CloseExpression],["(",g.OpenParen],[")",g.CloseParen],["{",g.OpenCurlyBracket],["}",g.CloseCurlyBracket],["[",g.OpenSquareBracket],["]",g.CloseSquareBracket],[",",g.Comma],[".",g.Dot],[":",g.Colon],["|",g.Pipe],["<=",g.ComparisonBinaryOperator],[">=",g.ComparisonBinaryOperator],["==",g.ComparisonBinaryOperator],["!=",g.ComparisonBinaryOperator],["<",g.ComparisonBinaryOperator],[">",g.ComparisonBinaryOperator],["+",g.AdditiveBinaryOperator],["-",g.AdditiveBinaryOperator],["*",g.MultiplicativeBinaryOperator],["/",g.MultiplicativeBinaryOperator],["%",g.MultiplicativeBinaryOperator],["=",g.Equals]],G=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function S(ge,Re={}){return ge.endsWith(` +`)&&(ge=ge.slice(0,-1)),ge=ge.replace(/{#.*?#}/gs,"{##}"),Re.lstrip_blocks&&(ge=ge.replace(/^[ \t]*({[#%])/gm,"$1")),Re.trim_blocks&&(ge=ge.replace(/([#%]})\n/g,"$1")),ge.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}function T(ge,Re={}){var eA,ft,Qt;const me=[],ze=S(ge,Re);let $e=0;const CA=st=>{let wt="";for(;st(ze[$e]);){if(ze[$e]==="\\"){if(++$e,$e>=ze.length)throw new SyntaxError("Unexpected end of input");const JA=ze[$e++],zt=G.get(JA);if(zt===void 0)throw new SyntaxError(`Unexpected escaped character: ${JA}`);wt+=zt;continue}if(wt+=ze[$e++],$e>=ze.length)throw new SyntaxError("Unexpected end of input")}return wt};e:for(;$e0){me.push(new p(JA,g.Text));continue}}CA(JA=>/\s/.test(JA));const wt=ze[$e];if(wt==="-"||wt==="+"){const JA=(ft=me.at(-1))==null?void 0:ft.type;if(JA===g.Text||JA===void 0)throw new SyntaxError(`Unexpected character: ${wt}`);switch(JA){case g.Identifier:case g.NumericLiteral:case g.BooleanLiteral:case g.NullLiteral:case g.StringLiteral:case g.CloseParen:case g.CloseSquareBracket:break;default:{++$e;const zt=CA(M);me.push(new p(`${wt}${zt}`,zt.length>0?g.NumericLiteral:g.UnaryOperator));continue}}}for(const[JA,zt]of x)if(ze.slice($e,$e+JA.length)===JA){me.push(new p(JA,zt)),$e+=JA.length;continue e}if(wt==="'"||wt==='"'){++$e;const JA=CA(zt=>zt!==wt);me.push(new p(JA,g.StringLiteral)),++$e;continue}if(M(wt)){const JA=CA(M);me.push(new p(JA,g.NumericLiteral));continue}if(I(wt)){const JA=CA(I),zt=Object.hasOwn(C,JA)?C[JA]:g.Identifier;zt===g.In&&((Qt=me.at(-1))==null?void 0:Qt.type)===g.Not?(me.pop(),me.push(new p("not in",g.NotIn))):me.push(new p(JA,zt));continue}throw new SyntaxError(`Unexpected character: ${wt}`)}return me}var P=class{constructor(){_e(this,"type","Statement")}},j=class extends P{constructor(Re){super();_e(this,"type","Program");this.body=Re}},L=class extends P{constructor(Re,me,ze){super();_e(this,"type","If");this.test=Re,this.body=me,this.alternate=ze}},K=class extends P{constructor(Re,me,ze,$e){super();_e(this,"type","For");this.loopvar=Re,this.iterable=me,this.body=ze,this.defaultBlock=$e}},ae=class extends P{constructor(){super(...arguments);_e(this,"type","Break")}},Y=class extends P{constructor(){super(...arguments);_e(this,"type","Continue")}},V=class extends P{constructor(Re,me,ze){super();_e(this,"type","Set");this.assignee=Re,this.value=me,this.body=ze}},ee=class extends P{constructor(Re,me,ze){super();_e(this,"type","Macro");this.name=Re,this.args=me,this.body=ze}},d=class extends P{constructor(){super(...arguments);_e(this,"type","Expression")}},v=class extends d{constructor(Re,me,ze){super();_e(this,"type","MemberExpression");this.object=Re,this.property=me,this.computed=ze}},e=class extends d{constructor(Re,me){super();_e(this,"type","CallExpression");this.callee=Re,this.args=me}},u=class extends d{constructor(Re){super();_e(this,"type","Identifier");this.value=Re}},Q=class extends d{constructor(Re){super();_e(this,"type","Literal");this.value=Re}},oe=class extends Q{constructor(){super(...arguments);_e(this,"type","NumericLiteral")}},O=class extends Q{constructor(){super(...arguments);_e(this,"type","StringLiteral")}},R=class extends Q{constructor(){super(...arguments);_e(this,"type","BooleanLiteral")}},De=class extends Q{constructor(){super(...arguments);_e(this,"type","NullLiteral")}},ce=class extends Q{constructor(){super(...arguments);_e(this,"type","ArrayLiteral")}},Te=class extends Q{constructor(){super(...arguments);_e(this,"type","TupleLiteral")}},Be=class extends Q{constructor(){super(...arguments);_e(this,"type","ObjectLiteral")}},Qe=class extends d{constructor(Re,me,ze){super();_e(this,"type","BinaryExpression");this.operator=Re,this.left=me,this.right=ze}},je=class extends d{constructor(Re,me){super();_e(this,"type","FilterExpression");this.operand=Re,this.filter=me}},Se=class extends d{constructor(Re,me){super();_e(this,"type","SelectExpression");this.iterable=Re,this.test=me}},Je=class extends d{constructor(Re,me,ze){super();_e(this,"type","TestExpression");this.operand=Re,this.negate=me,this.test=ze}},Xe=class extends d{constructor(Re,me){super();_e(this,"type","UnaryExpression");this.operator=Re,this.argument=me}},be=class extends d{constructor(Re=void 0,me=void 0,ze=void 0){super();_e(this,"type","SliceExpression");this.start=Re,this.stop=me,this.step=ze}},le=class extends d{constructor(Re,me){super();_e(this,"type","KeywordArgumentExpression");this.key=Re,this.value=me}};function Ie(ge){const Re=new j([]);let me=0;function ze(wA,DA){const qA=ge[me++];if(!qA||qA.type!==wA)throw new Error(`Parser Error: ${DA}. ${qA.type} !== ${wA}.`);return qA}function $e(){switch(ge[me].type){case g.Text:return ft();case g.OpenStatement:return Qt();case g.OpenExpression:return st();default:throw new SyntaxError(`Unexpected token type: ${ge[me].type}`)}}function CA(...wA){return me+wA.length<=ge.length&&wA.some((DA,qA)=>DA!==ge[me+qA].type)}function eA(...wA){return me+wA.length<=ge.length&&wA.every((DA,qA)=>DA===ge[me+qA].type)}function ft(){return new O(ze(g.Text,"Expected text token").value)}function Qt(){ze(g.OpenStatement,"Expected opening statement token");let wA;switch(ge[me].type){case g.Set:++me,wA=wt(),ze(g.CloseStatement,"Expected closing statement token");break;case g.If:++me,wA=JA(),ze(g.OpenStatement,"Expected {% token"),ze(g.EndIf,"Expected endif token"),ze(g.CloseStatement,"Expected %} token");break;case g.Macro:++me,wA=zt(),ze(g.OpenStatement,"Expected {% token"),ze(g.EndMacro,"Expected endmacro token"),ze(g.CloseStatement,"Expected %} token");break;case g.For:++me,wA=or(),ze(g.OpenStatement,"Expected {% token"),ze(g.EndFor,"Expected endfor token"),ze(g.CloseStatement,"Expected %} token");break;case g.Break:++me,ze(g.CloseStatement,"Expected closing statement token"),wA=new ae;break;case g.Continue:++me,ze(g.CloseStatement,"Expected closing statement token"),wA=new Y;break;default:throw new SyntaxError(`Unknown statement type: ${ge[me].type}`)}return wA}function st(){ze(g.OpenExpression,"Expected opening expression token");const wA=HA();return ze(g.CloseExpression,"Expected closing expression token"),wA}function wt(){var DA,qA;const wA=HA();if(eA(g.Equals)){++me;const lr=HA();return new V(wA,lr,[])}else{const lr=[];for(ze(g.CloseStatement,"Expected %} token");!(((DA=ge[me])==null?void 0:DA.type)===g.OpenStatement&&((qA=ge[me+1])==null?void 0:qA.type)===g.EndSet);){const Ka=$e();lr.push(Ka)}return ze(g.OpenStatement,"Expected {% token"),ze(g.EndSet,"Expected endset token"),new V(wA,null,lr)}}function JA(){var lr,Ka,Xa,Ta,Za,Ja,ct,mr;const wA=HA();ze(g.CloseStatement,"Expected closing statement token");const DA=[],qA=[];for(;!(((lr=ge[me])==null?void 0:lr.type)===g.OpenStatement&&(((Ka=ge[me+1])==null?void 0:Ka.type)===g.ElseIf||((Xa=ge[me+1])==null?void 0:Xa.type)===g.Else||((Ta=ge[me+1])==null?void 0:Ta.type)===g.EndIf));)DA.push($e());if(((Za=ge[me])==null?void 0:Za.type)===g.OpenStatement&&((Ja=ge[me+1])==null?void 0:Ja.type)!==g.EndIf)if(++me,eA(g.ElseIf))ze(g.ElseIf,"Expected elseif token"),qA.push(JA());else for(ze(g.Else,"Expected else token"),ze(g.CloseStatement,"Expected closing statement token");!(((ct=ge[me])==null?void 0:ct.type)===g.OpenStatement&&((mr=ge[me+1])==null?void 0:mr.type)===g.EndIf);)qA.push($e());return new L(wA,DA,qA)}function zt(){const wA=sa();if(wA.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const DA=as();ze(g.CloseStatement,"Expected closing statement token");const qA=[];for(;CA(g.OpenStatement,g.EndMacro);)qA.push($e());return new ee(wA,DA,qA)}function ir(wA=!1){const DA=wA?sa:HA,qA=[DA()],lr=eA(g.Comma);for(;lr&&(++me,qA.push(DA()),!!eA(g.Comma)););return lr?new Te(qA):qA[0]}function or(){const wA=ir(!0);if(!(wA instanceof u||wA instanceof Te))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${wA.type} instead`);ze(g.In,"Expected `in` keyword following loop variable");const DA=HA();ze(g.CloseStatement,"Expected closing statement token");const qA=[];for(;CA(g.OpenStatement,g.EndFor)&&CA(g.OpenStatement,g.Else);)qA.push($e());const lr=[];if(eA(g.OpenStatement,g.Else))for(++me,++me,ze(g.CloseStatement,"Expected closing statement token");CA(g.OpenStatement,g.EndFor);)lr.push($e());return new K(wA,DA,qA,lr)}function HA(){return br()}function br(){const wA=fs();if(eA(g.If)){++me;const DA=fs();if(eA(g.Else)){++me;const qA=fs();return new L(DA,[wA],[qA])}else return new Se(wA,DA)}return wA}function fs(){let wA=ws();for(;eA(g.Or);){const DA=ge[me];++me;const qA=ws();wA=new Qe(DA,wA,qA)}return wA}function ws(){let wA=Ha();for(;eA(g.And);){const DA=ge[me];++me;const qA=Ha();wA=new Qe(DA,wA,qA)}return wA}function Ha(){let wA;for(;eA(g.Not);){const DA=ge[me];++me;const qA=Ha();wA=new Xe(DA,qA)}return wA??Qs()}function Qs(){let wA=Da();for(;eA(g.ComparisonBinaryOperator)||eA(g.In)||eA(g.NotIn);){const DA=ge[me];++me;const qA=Da();wA=new Qe(DA,wA,qA)}return wA}function Da(){let wA=Ia();for(;eA(g.AdditiveBinaryOperator);){const DA=ge[me];++me;const qA=Ia();wA=new Qe(DA,wA,qA)}return wA}function za(){const wA=xr(sa());return eA(g.OpenParen)?Ua(wA):wA}function Ua(wA){let DA=new e(wA,as());return DA=xr(DA),eA(g.OpenParen)&&(DA=Ua(DA)),DA}function as(){ze(g.OpenParen,"Expected opening parenthesis for arguments list");const wA=Ht();return ze(g.CloseParen,"Expected closing parenthesis for arguments list"),wA}function Ht(){const wA=[];for(;!eA(g.CloseParen);){let DA=HA();if(eA(g.Equals)){if(++me,!(DA instanceof u))throw new SyntaxError("Expected identifier for keyword argument");const qA=HA();DA=new le(DA,qA)}wA.push(DA),eA(g.Comma)&&++me}return wA}function ks(){const wA=[];let DA=!1;for(;!eA(g.CloseSquareBracket);)eA(g.Colon)?(wA.push(void 0),++me,DA=!0):(wA.push(HA()),eA(g.Colon)&&(++me,DA=!0));if(wA.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(DA){if(wA.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new be(...wA)}return wA[0]}function xr(wA){for(;eA(g.Dot)||eA(g.OpenSquareBracket);){const DA=ge[me];++me;let qA;const lr=DA.type!==g.Dot;if(lr)qA=ks(),ze(g.CloseSquareBracket,"Expected closing square bracket");else if(qA=sa(),qA.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");wA=new v(wA,qA,lr)}return wA}function Ia(){let wA=wa();for(;eA(g.MultiplicativeBinaryOperator);){const DA=ge[me];++me;const qA=wa();wA=new Qe(DA,wA,qA)}return wA}function wa(){let wA=Es();for(;eA(g.Is);){++me;const DA=eA(g.Not);DA&&++me;let qA=sa();if(qA instanceof R?qA=new u(qA.value.toString()):qA instanceof De&&(qA=new u("none")),!(qA instanceof u))throw new SyntaxError("Expected identifier for the test");wA=new Je(wA,DA,qA)}return wA}function Es(){let wA=za();for(;eA(g.Pipe);){++me;let DA=sa();if(!(DA instanceof u))throw new SyntaxError("Expected identifier for the filter");eA(g.OpenParen)&&(DA=Ua(DA)),wA=new je(wA,DA)}return wA}function sa(){const wA=ge[me];switch(wA.type){case g.NumericLiteral:return++me,new oe(Number(wA.value));case g.StringLiteral:return++me,new O(wA.value);case g.BooleanLiteral:return++me,new R(wA.value.toLowerCase()==="true");case g.NullLiteral:return++me,new De(null);case g.Identifier:return++me,new u(wA.value);case g.OpenParen:{++me;const DA=ir();if(ge[me].type!==g.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${ge[me].type} instead`);return++me,DA}case g.OpenSquareBracket:{++me;const DA=[];for(;!eA(g.CloseSquareBracket);)DA.push(HA()),eA(g.Comma)&&++me;return++me,new ce(DA)}case g.OpenCurlyBracket:{++me;const DA=new Map;for(;!eA(g.CloseCurlyBracket);){const qA=HA();ze(g.Colon,"Expected colon between key and value in object literal");const lr=HA();DA.set(qA,lr),eA(g.Comma)&&++me}return++me,new Be(DA)}default:throw new SyntaxError(`Unexpected token: ${wA.type}`)}}for(;me=0?(Re=(Re??(Re=0))<0?Math.max(ge.length+Re,0):Math.min(Re,ge.length),me=(me??(me=ge.length))<0?Math.max(ge.length+me,0):Math.min(me,ge.length)):(Re=(Re??(Re=ge.length-1))<0?Math.max(ge.length+Re,-1):Math.min(Re,ge.length-1),me=(me??(me=-1))<-1?Math.max(ge.length+me,-1):Math.min(me,ge.length-1));const CA=[];for(let eA=Re;$e*eA<$e*me;eA+=ze)CA.push(ge[eA]);return CA}function Ve(ge){return ge.replace(/\b\w/g,Re=>Re.toUpperCase())}var Ue=class extends Error{},BA=class extends Error{},QA=class{constructor(ge=void 0){_e(this,"type","RuntimeValue");_e(this,"value");_e(this,"builtins",new Map);this.value=ge}__bool__(){return new Ne(!!this.value)}},Ze=class extends QA{constructor(){super(...arguments);_e(this,"type","NumericValue")}},Ee=class extends QA{constructor(){super(...arguments);_e(this,"type","StringValue");_e(this,"builtins",new Map([["upper",new dA(()=>new Ee(this.value.toUpperCase()))],["lower",new dA(()=>new Ee(this.value.toLowerCase()))],["strip",new dA(()=>new Ee(this.value.trim()))],["title",new dA(()=>new Ee(Ve(this.value)))],["length",new Ze(this.value.length)],["rstrip",new dA(()=>new Ee(this.value.trimEnd()))],["lstrip",new dA(()=>new Ee(this.value.trimStart()))],["startswith",new dA(Re=>{if(Re.length===0)throw new Error("startswith() requires at least one argument");const me=Re[0];if(!(me instanceof Ee))throw new Error("startswith() argument must be a string");return new Ne(this.value.startsWith(me.value))})],["endswith",new dA(Re=>{if(Re.length===0)throw new Error("endswith() requires at least one argument");const me=Re[0];if(!(me instanceof Ee))throw new Error("endswith() argument must be a string");return new Ne(this.value.endsWith(me.value))})],["split",new dA(Re=>{const me=Re[0]??new $;if(!(me instanceof Ee||me instanceof $))throw new Error("sep argument must be a string or null");const ze=Re[1]??new Ze(-1);if(!(ze instanceof Ze))throw new Error("maxsplit argument must be a number");let $e=[];if(me instanceof $){const CA=this.value.trimStart();for(const{0:eA,index:ft}of CA.matchAll(/\S+/g)){if(ze.value!==-1&&$e.length>=ze.value&&ft!==void 0){$e.push(eA+CA.slice(ft+eA.length));break}$e.push(eA)}}else{if(me.value==="")throw new Error("empty separator");$e=this.value.split(me.value),ze.value!==-1&&$e.length>ze.value&&$e.push($e.splice(ze.value).join(me.value))}return new sA($e.map(CA=>new Ee(CA)))})]]))}},Ne=class extends QA{constructor(){super(...arguments);_e(this,"type","BooleanValue")}},we=class extends QA{constructor(){super(...arguments);_e(this,"type","ObjectValue");_e(this,"builtins",new Map([["get",new dA(([Re,me])=>{if(!(Re instanceof Ee))throw new Error(`Object key must be a string: got ${Re.type}`);return this.value.get(Re.value)??me??new $})],["items",new dA(()=>new sA(Array.from(this.value.entries()).map(([Re,me])=>new sA([new Ee(Re),me]))))]]))}__bool__(){return new Ne(this.value.size>0)}},aA=class extends we{constructor(){super(...arguments);_e(this,"type","KeywordArgumentsValue")}},sA=class extends QA{constructor(){super(...arguments);_e(this,"type","ArrayValue");_e(this,"builtins",new Map([["length",new Ze(this.value.length)]]))}__bool__(){return new Ne(this.value.length>0)}},gA=class extends sA{constructor(){super(...arguments);_e(this,"type","TupleValue")}},dA=class extends QA{constructor(){super(...arguments);_e(this,"type","FunctionValue")}},$=class extends QA{constructor(){super(...arguments);_e(this,"type","NullValue")}},mA=class extends QA{constructor(){super(...arguments);_e(this,"type","UndefinedValue")}},EA=class{constructor(ge){_e(this,"variables",new Map([["namespace",new dA(ge=>{if(ge.length===0)return new we(new Map);if(ge.length!==1||!(ge[0]instanceof we))throw new Error("`namespace` expects either zero arguments or a single object argument");return ge[0]})]]));_e(this,"tests",new Map([["boolean",ge=>ge.type==="BooleanValue"],["callable",ge=>ge instanceof dA],["odd",ge=>{if(ge.type!=="NumericValue")throw new Error(`Cannot apply test "odd" to type: ${ge.type}`);return ge.value%2!==0}],["even",ge=>{if(ge.type!=="NumericValue")throw new Error(`Cannot apply test "even" to type: ${ge.type}`);return ge.value%2===0}],["false",ge=>ge.type==="BooleanValue"&&!ge.value],["true",ge=>ge.type==="BooleanValue"&&ge.value],["none",ge=>ge.type==="NullValue"],["string",ge=>ge.type==="StringValue"],["number",ge=>ge.type==="NumericValue"],["integer",ge=>ge.type==="NumericValue"&&Number.isInteger(ge.value)],["iterable",ge=>ge.type==="ArrayValue"||ge.type==="StringValue"],["mapping",ge=>ge.type==="ObjectValue"],["lower",ge=>{const Re=ge.value;return ge.type==="StringValue"&&Re===Re.toLowerCase()}],["upper",ge=>{const Re=ge.value;return ge.type==="StringValue"&&Re===Re.toUpperCase()}],["none",ge=>ge.type==="NullValue"],["defined",ge=>ge.type!=="UndefinedValue"],["undefined",ge=>ge.type==="UndefinedValue"],["equalto",(ge,Re)=>ge.value===Re.value],["eq",(ge,Re)=>ge.value===Re.value]]));this.parent=ge}set(ge,Re){return this.declareVariable(ge,OA(Re))}declareVariable(ge,Re){if(this.variables.has(ge))throw new SyntaxError(`Variable already declared: ${ge}`);return this.variables.set(ge,Re),Re}setVariable(ge,Re){return this.variables.set(ge,Re),Re}resolve(ge){if(this.variables.has(ge))return this;if(this.parent)return this.parent.resolve(ge);throw new Error(`Unknown variable: ${ge}`)}lookupVariable(ge){try{return this.resolve(ge).variables.get(ge)??new mA}catch{return new mA}}},xe=class{constructor(ge){_e(this,"global");this.global=ge??new EA}run(ge){return this.evaluate(ge,this.global)}evaluateBinaryExpression(ge,Re){const me=this.evaluate(ge.left,Re);switch(ge.operator.value){case"and":return me.__bool__().value?this.evaluate(ge.right,Re):me;case"or":return me.__bool__().value?me:this.evaluate(ge.right,Re)}const ze=this.evaluate(ge.right,Re);switch(ge.operator.value){case"==":return new Ne(me.value==ze.value);case"!=":return new Ne(me.value!=ze.value)}if(me instanceof mA||ze instanceof mA)throw new Error("Cannot perform operation on undefined values");if(me instanceof $||ze instanceof $)throw new Error("Cannot perform operation on null values");if(me instanceof Ze&&ze instanceof Ze)switch(ge.operator.value){case"+":return new Ze(me.value+ze.value);case"-":return new Ze(me.value-ze.value);case"*":return new Ze(me.value*ze.value);case"/":return new Ze(me.value/ze.value);case"%":return new Ze(me.value%ze.value);case"<":return new Ne(me.value":return new Ne(me.value>ze.value);case">=":return new Ne(me.value>=ze.value);case"<=":return new Ne(me.value<=ze.value)}else if(me instanceof sA&&ze instanceof sA)switch(ge.operator.value){case"+":return new sA(me.value.concat(ze.value))}else if(ze instanceof sA){const $e=ze.value.find(CA=>CA.value===me.value)!==void 0;switch(ge.operator.value){case"in":return new Ne($e);case"not in":return new Ne(!$e)}}if(me instanceof Ee||ze instanceof Ee)switch(ge.operator.value){case"+":return new Ee(me.value.toString()+ze.value.toString())}if(me instanceof Ee&&ze instanceof Ee)switch(ge.operator.value){case"in":return new Ne(ze.value.includes(me.value));case"not in":return new Ne(!ze.value.includes(me.value))}if(me instanceof Ee&&ze instanceof we)switch(ge.operator.value){case"in":return new Ne(ze.value.has(me.value));case"not in":return new Ne(!ze.value.has(me.value))}throw new SyntaxError(`Unknown operator "${ge.operator.value}" between ${me.type} and ${ze.type}`)}evaluateArguments(ge,Re){const me=[],ze=new Map;for(const $e of ge)if($e.type==="KeywordArgumentExpression"){const CA=$e;ze.set(CA.key.value,this.evaluate(CA.value,Re))}else{if(ze.size>0)throw new Error("Positional arguments must come before keyword arguments");me.push(this.evaluate($e,Re))}return[me,ze]}evaluateFilterExpression(ge,Re){const me=this.evaluate(ge.operand,Re);if(ge.filter.type==="Identifier"){const ze=ge.filter;if(ze.value==="tojson")return new Ee(pA(me));if(me instanceof sA)switch(ze.value){case"list":return me;case"first":return me.value[0];case"last":return me.value[me.value.length-1];case"length":return new Ze(me.value.length);case"reverse":return new sA(me.value.reverse());case"sort":return new sA(me.value.sort(($e,CA)=>{if($e.type!==CA.type)throw new Error(`Cannot compare different types: ${$e.type} and ${CA.type}`);switch($e.type){case"NumericValue":return $e.value-CA.value;case"StringValue":return $e.value.localeCompare(CA.value);default:throw new Error(`Cannot compare type: ${$e.type}`)}}));case"join":return new Ee(me.value.map($e=>$e.value).join(""));case"string":return new Ee(pA(me));default:throw new Error(`Unknown ArrayValue filter: ${ze.value}`)}else if(me instanceof Ee)switch(ze.value){case"length":return new Ze(me.value.length);case"upper":return new Ee(me.value.toUpperCase());case"lower":return new Ee(me.value.toLowerCase());case"title":return new Ee(Ve(me.value));case"capitalize":return new Ee(me.value.charAt(0).toUpperCase()+me.value.slice(1));case"trim":return new Ee(me.value.trim());case"indent":return new Ee(me.value.split(` +`).map(($e,CA)=>CA===0||$e.length===0?$e:" "+$e).join(` +`));case"join":case"string":return me;default:throw new Error(`Unknown StringValue filter: ${ze.value}`)}else if(me instanceof Ze)switch(ze.value){case"abs":return new Ze(Math.abs(me.value));default:throw new Error(`Unknown NumericValue filter: ${ze.value}`)}else if(me instanceof we)switch(ze.value){case"items":return new sA(Array.from(me.value.entries()).map(([$e,CA])=>new sA([new Ee($e),CA])));case"length":return new Ze(me.value.size);default:throw new Error(`Unknown ObjectValue filter: ${ze.value}`)}throw new Error(`Cannot apply filter "${ze.value}" to type: ${me.type}`)}else if(ge.filter.type==="CallExpression"){const ze=ge.filter;if(ze.callee.type!=="Identifier")throw new Error(`Unknown filter: ${ze.callee.type}`);const $e=ze.callee.value;if($e==="tojson"){const[,CA]=this.evaluateArguments(ze.args,Re),eA=CA.get("indent")??new $;if(!(eA instanceof Ze||eA instanceof $))throw new Error("If set, indent must be a number");return new Ee(pA(me,eA.value))}else if($e==="join"){let CA;if(me instanceof Ee)CA=Array.from(me.value);else if(me instanceof sA)CA=me.value.map(st=>st.value);else throw new Error(`Cannot apply filter "${$e}" to type: ${me.type}`);const[eA,ft]=this.evaluateArguments(ze.args,Re),Qt=eA.at(0)??ft.get("separator")??new Ee("");if(!(Qt instanceof Ee))throw new Error("separator must be a string");return new Ee(CA.join(Qt.value))}if(me instanceof sA){switch($e){case"selectattr":case"rejectattr":{const CA=$e==="selectattr";if(me.value.some(JA=>!(JA instanceof we)))throw new Error(`\`${$e}\` can only be applied to array of objects`);if(ze.args.some(JA=>JA.type!=="StringLiteral"))throw new Error(`arguments of \`${$e}\` must be strings`);const[eA,ft,Qt]=ze.args.map(JA=>this.evaluate(JA,Re));let st;if(ft){const JA=Re.tests.get(ft.value);if(!JA)throw new Error(`Unknown test: ${ft.value}`);st=JA}else st=(...JA)=>JA[0].__bool__().value;const wt=me.value.filter(JA=>{const zt=JA.value.get(eA.value),ir=zt?st(zt,Qt):!1;return CA?ir:!ir});return new sA(wt)}case"map":{const[,CA]=this.evaluateArguments(ze.args,Re);if(CA.has("attribute")){const eA=CA.get("attribute");if(!(eA instanceof Ee))throw new Error("attribute must be a string");const ft=CA.get("default"),Qt=me.value.map(st=>{if(!(st instanceof we))throw new Error("items in map must be an object");return st.value.get(eA.value)??ft??new mA});return new sA(Qt)}else throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${$e}`)}else if(me instanceof Ee){switch($e){case"indent":{const[CA,eA]=this.evaluateArguments(ze.args,Re),ft=CA.at(0)??eA.get("width")??new Ze(4);if(!(ft instanceof Ze))throw new Error("width must be a number");const Qt=CA.at(1)??eA.get("first")??new Ne(!1),st=CA.at(2)??eA.get("blank")??new Ne(!1),wt=me.value.split(` +`),JA=" ".repeat(ft.value),zt=wt.map((ir,or)=>!Qt.value&&or===0||!st.value&&ir.length===0?ir:JA+ir);return new Ee(zt.join(` +`))}}throw new Error(`Unknown StringValue filter: ${$e}`)}else throw new Error(`Cannot apply filter "${$e}" to type: ${me.type}`)}throw new Error(`Unknown filter: ${ge.filter.type}`)}evaluateTestExpression(ge,Re){const me=this.evaluate(ge.operand,Re),ze=Re.tests.get(ge.test.value);if(!ze)throw new Error(`Unknown test: ${ge.test.value}`);const $e=ze(me);return new Ne(ge.negate?!$e:$e)}evaluateUnaryExpression(ge,Re){const me=this.evaluate(ge.argument,Re);switch(ge.operator.value){case"not":return new Ne(!me.value);default:throw new SyntaxError(`Unknown operator: ${ge.operator.value}`)}}evalProgram(ge,Re){return this.evaluateBlock(ge.body,Re)}evaluateBlock(ge,Re){let me="";for(const ze of ge){const $e=this.evaluate(ze,Re);$e.type!=="NullValue"&&$e.type!=="UndefinedValue"&&(me+=$e.value)}return new Ee(me)}evaluateIdentifier(ge,Re){return Re.lookupVariable(ge.value)}evaluateCallExpression(ge,Re){const[me,ze]=this.evaluateArguments(ge.args,Re);ze.size>0&&me.push(new aA(ze));const $e=this.evaluate(ge.callee,Re);if($e.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${$e.type}`);return $e.value(me,Re)}evaluateSliceExpression(ge,Re,me){if(!(ge instanceof sA||ge instanceof Ee))throw new Error("Slice object must be an array or string");const ze=this.evaluate(Re.start,me),$e=this.evaluate(Re.stop,me),CA=this.evaluate(Re.step,me);if(!(ze instanceof Ze||ze instanceof mA))throw new Error("Slice start must be numeric or undefined");if(!($e instanceof Ze||$e instanceof mA))throw new Error("Slice stop must be numeric or undefined");if(!(CA instanceof Ze||CA instanceof mA))throw new Error("Slice step must be numeric or undefined");return ge instanceof sA?new sA(tA(ge.value,ze.value,$e.value,CA.value)):new Ee(tA(Array.from(ge.value),ze.value,$e.value,CA.value).join(""))}evaluateMemberExpression(ge,Re){const me=this.evaluate(ge.object,Re);let ze;if(ge.computed){if(ge.property.type==="SliceExpression")return this.evaluateSliceExpression(me,ge.property,Re);ze=this.evaluate(ge.property,Re)}else ze=new Ee(ge.property.value);let $e;if(me instanceof we){if(!(ze instanceof Ee))throw new Error(`Cannot access property with non-string: got ${ze.type}`);$e=me.value.get(ze.value)??me.builtins.get(ze.value)}else if(me instanceof sA||me instanceof Ee)if(ze instanceof Ze)$e=me.value.at(ze.value),me instanceof Ee&&($e=new Ee(me.value.at(ze.value)));else if(ze instanceof Ee)$e=me.builtins.get(ze.value);else throw new Error(`Cannot access property with non-string/non-number: got ${ze.type}`);else{if(!(ze instanceof Ee))throw new Error(`Cannot access property with non-string: got ${ze.type}`);$e=me.builtins.get(ze.value)}return $e instanceof QA?$e:new mA}evaluateSet(ge,Re){const me=ge.value?this.evaluate(ge.value,Re):this.evaluateBlock(ge.body,Re);if(ge.assignee.type==="Identifier"){const ze=ge.assignee.value;Re.setVariable(ze,me)}else if(ge.assignee.type==="MemberExpression"){const ze=ge.assignee,$e=this.evaluate(ze.object,Re);if(!($e instanceof we))throw new Error("Cannot assign to member of non-object");if(ze.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");$e.value.set(ze.property.value,me)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(ge.assignee)}`);return new $}evaluateIf(ge,Re){const me=this.evaluate(ge.test,Re);return this.evaluateBlock(me.__bool__().value?ge.body:ge.alternate,Re)}evaluateFor(ge,Re){const me=new EA(Re);let ze,$e;if(ge.iterable.type==="SelectExpression"){const st=ge.iterable;$e=this.evaluate(st.iterable,me),ze=st.test}else $e=this.evaluate(ge.iterable,me);if(!($e instanceof sA))throw new Error(`Expected iterable type in for loop: got ${$e.type}`);const CA=[],eA=[];for(let st=0;st<$e.value.length;++st){const wt=new EA(me),JA=$e.value[st];let zt;if(ge.loopvar.type==="Identifier")zt=ir=>ir.setVariable(ge.loopvar.value,JA);else if(ge.loopvar.type==="TupleLiteral"){const ir=ge.loopvar;if(JA.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${JA.type}`);const or=JA;if(ir.value.length!==or.value.length)throw new Error(`Too ${ir.value.length>or.value.length?"few":"many"} items to unpack`);zt=HA=>{for(let br=0;br0?CA[st-1]:new mA],["nextitem",st{var eA;const $e=new EA(ze);me=me.slice();let CA;((eA=me.at(-1))==null?void 0:eA.type)==="KeywordArgumentsValue"&&(CA=me.pop());for(let ft=0;ftthis.evaluate(me,Re)));case"TupleLiteral":return new gA(ge.value.map(me=>this.evaluate(me,Re)));case"ObjectLiteral":{const me=new Map;for(const[ze,$e]of ge.value){const CA=this.evaluate(ze,Re);if(!(CA instanceof Ee))throw new Error(`Object keys must be strings: got ${CA.type}`);me.set(CA.value,this.evaluate($e,Re))}return new we(me)}case"Identifier":return this.evaluateIdentifier(ge,Re);case"CallExpression":return this.evaluateCallExpression(ge,Re);case"MemberExpression":return this.evaluateMemberExpression(ge,Re);case"UnaryExpression":return this.evaluateUnaryExpression(ge,Re);case"BinaryExpression":return this.evaluateBinaryExpression(ge,Re);case"FilterExpression":return this.evaluateFilterExpression(ge,Re);case"TestExpression":return this.evaluateTestExpression(ge,Re);default:throw new SyntaxError(`Unknown node type: ${ge.type}`)}}};function OA(ge){switch(typeof ge){case"number":return new Ze(ge);case"string":return new Ee(ge);case"boolean":return new Ne(ge);case"undefined":return new mA;case"object":return ge===null?new $:Array.isArray(ge)?new sA(ge.map(OA)):new we(new Map(Object.entries(ge).map(([Re,me])=>[Re,OA(me)])));case"function":return new dA((Re,me)=>{const ze=ge(...Re.map($e=>$e.value))??null;return OA(ze)});default:throw new Error(`Cannot convert to runtime value: ${ge}`)}}function pA(ge,Re,me){const ze=me??0;switch(ge.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(ge.value);case"ArrayValue":case"ObjectValue":{const $e=Re?" ".repeat(Re):"",CA=` +`+$e.repeat(ze),eA=CA+$e;if(ge.type==="ArrayValue"){const ft=ge.value.map(Qt=>pA(Qt,Re,ze+1));return Re?`[${eA}${ft.join(`,${eA}`)}${CA}]`:`[${ft.join(", ")}]`}else{const ft=Array.from(ge.value.entries()).map(([Qt,st])=>{const wt=`"${Qt}": ${pA(st,Re,ze+1)}`;return Re?`${eA}${wt}`:wt});return Re?`{${ft.join(",")}${CA}}`:`{${ft.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${ge.type}`)}}var GA=` +`,VA="{%- ",$A=" -%}",RA={MultiplicativeBinaryOperator:2,AdditiveBinaryOperator:1,ComparisonBinaryOperator:0};function FA(ge,Re=" "){const me=typeof Re=="number"?" ".repeat(Re):Re;return et(ge.body,0,me).replace(/\n$/,"")}function oA(...ge){return VA+ge.join(" ")+$A}function et(ge,Re,me){return ge.map(ze=>It(ze,Re,me)).join(GA)}function It(ge,Re,me){const ze=me.repeat(Re);switch(ge.type){case"Program":return et(ge.body,Re,me);case"If":return dt(ge,Re,me);case"For":return gt(ge,Re,me);case"Set":return Ut(ge,Re,me);case"Macro":return ua(ge,Re,me);case"Break":return ze+oA("break");case"Continue":return ze+oA("continue");default:return ze+"{{- "+XA(ge)+" -}}"}}function dt(ge,Re,me){const ze=me.repeat(Re),$e=[];let CA=ge;for(;CA&&($e.push({test:CA.test,body:CA.body}),CA.alternate.length===1&&CA.alternate[0].type==="If");)CA=CA.alternate[0];let eA=ze+oA("if",XA($e[0].test))+GA+et($e[0].body,Re+1,me);for(let ft=1;ft<$e.length;ft++)eA+=GA+ze+oA("elif",XA($e[ft].test))+GA+et($e[ft].body,Re+1,me);return CA&&CA.alternate.length>0&&(eA+=GA+ze+oA("else")+GA+et(CA.alternate,Re+1,me)),eA+=GA+ze+oA("endif"),eA}function gt(ge,Re,me){const ze=me.repeat(Re);let $e="";if(ge.iterable.type==="SelectExpression"){const eA=ge.iterable;$e=`${XA(eA.iterable)} if ${XA(eA.test)}`}else $e=XA(ge.iterable);let CA=ze+oA("for",XA(ge.loopvar),"in",$e)+GA+et(ge.body,Re+1,me);return ge.defaultBlock.length>0&&(CA+=GA+ze+oA("else")+GA+et(ge.defaultBlock,Re+1,me)),CA+=GA+ze+oA("endfor"),CA}function Ut(ge,Re,me){const ze=me.repeat(Re),$e=XA(ge.assignee),CA=ge.value?XA(ge.value):"",eA=ze+oA("set",`${$e}${ge.value?" = "+CA:""}`);return ge.body.length===0?eA:eA+GA+et(ge.body,Re+1,me)+GA+ze+oA("endset")}function ua(ge,Re,me){const ze=me.repeat(Re),$e=ge.args.map(XA).join(", ");return ze+oA("macro",`${ge.name.value}(${$e})`)+GA+et(ge.body,Re+1,me)+GA+ze+oA("endmacro")}function XA(ge,Re=-1){switch(ge.type){case"Identifier":return ge.value;case"NullLiteral":return"none";case"NumericLiteral":case"BooleanLiteral":return`${ge.value}`;case"StringLiteral":return JSON.stringify(ge.value);case"BinaryExpression":{const me=ge,ze=RA[me.operator.type]??0,$e=XA(me.left,ze),CA=XA(me.right,ze+1),eA=`${$e} ${me.operator.value} ${CA}`;return zeXA($e,-1)).join(", ");return`${XA(me.callee,-1)}(${ze})`}case"MemberExpression":{const me=ge;let ze=XA(me.object,-1);me.object.type!=="Identifier"&&(ze=`(${ze})`);let $e=XA(me.property,-1);return!me.computed&&me.property.type!=="Identifier"&&($e=`(${$e})`),me.computed?`${ze}[${$e}]`:`${ze}.${$e}`}case"FilterExpression":{const me=ge,ze=XA(me.operand,1/0);return me.filter.type==="CallExpression"?`${ze} | ${XA(me.filter,-1)}`:`${ze} | ${me.filter.value}`}case"SelectExpression":{const me=ge;return`${XA(me.iterable,-1)} | select(${XA(me.test,-1)})`}case"TestExpression":{const me=ge;return`${XA(me.operand,-1)} is${me.negate?" not":""} ${me.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const me=ge.value.map($e=>XA($e,-1)),ze=ge.type==="ArrayLiteral"?"[]":"()";return`${ze[0]}${me.join(", ")}${ze[1]}`}case"ObjectLiteral":return`{ ${Array.from(ge.value.entries()).map(([ze,$e])=>`${XA(ze,-1)}: ${XA($e,-1)}`).join(", ")} }`;case"SliceExpression":{const me=ge,ze=me.start?XA(me.start,-1):"",$e=me.stop?XA(me.stop,-1):"",CA=me.step?`:${XA(me.step,-1)}`:"";return`${ze}:${$e}${CA}`}case"KeywordArgumentExpression":{const me=ge;return`${me.key.value}=${XA(me.value,-1)}`}case"If":{const me=ge,ze=XA(me.test,-1),$e=XA(me.body[0],0),CA=XA(me.alternate[0],-1);return`${$e} if ${ze} else ${CA}`}default:throw new Error(`Unknown expression type: ${ge.type}`)}}var rs=class{constructor(ge){_e(this,"parsed");const Re=T(ge,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=Ie(Re)}render(ge){const Re=new EA;if(Re.set("false",!1),Re.set("true",!0),Re.set("raise_exception",$e=>{throw new Error($e)}),Re.set("range",Oe),ge)for(const[$e,CA]of Object.entries(ge))Re.set($e,CA);return new xe(Re).run(this.parsed).value}format(ge){return FA(this.parsed,(ge==null?void 0:ge.indent)||" ")}}},"./src/backends/onnx.js":(s,n,i)=>{var g;i.r(n),i.d(n,{Tensor:()=>M.Tensor,createInferenceSession:()=>ae,deviceToExecutionProviders:()=>L,isONNXProxy:()=>ee,isONNXTensor:()=>Y});var C=i("./src/env.js"),p=i("?2ce3"),I=i("onnxruntime-web"),M=i("onnxruntime-common");const x=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),G=[];let S,T;const P=Symbol.for("onnxruntime");if(P in globalThis)T=globalThis[P];else if(C.apis.IS_NODE_ENV){switch(T=p??(g||(g=i.t(p,2))),process.platform){case"win32":G.push("dml");break;case"linux":process.arch==="x64"&&G.push("cuda");break}G.push("cpu"),S=["cpu"]}else T=I,C.apis.IS_WEBNN_AVAILABLE&&G.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),C.apis.IS_WEBGPU_AVAILABLE&&G.push("webgpu"),G.push("wasm"),S=["wasm"];const j=T.InferenceSession;function L(d=null){if(!d)return S;switch(d){case"auto":return G;case"gpu":return G.filter(v=>["webgpu","cuda","dml","webnn-gpu"].includes(v))}if(G.includes(d))return[x[d]??d];throw new Error(`Unsupported device: "${d}". Should be one of: ${G.join(", ")}.`)}let K=null;async function ae(d,v,e){K&&await K;const u=j.create(d,v);K??(K=u);const Q=await u;return Q.config=e,Q}function Y(d){return d instanceof T.Tensor}const V=T==null?void 0:T.env;V!=null&&V.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!V.wasm.wasmPaths&&(V.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${C.env.version}/dist/`),V.wasm.proxy=!1),V!=null&&V.webgpu&&(V.webgpu.powerPreference="high-performance");function ee(){var d;return(d=V==null?void 0:V.wasm)==null?void 0:d.proxy}C.env.backends.onnx=V},"./src/base/feature_extraction_utils.js":(s,n,i)=>{i.r(n),i.d(n,{FeatureExtractor:()=>I,validate_audio_inputs:()=>M});var g=i("./src/utils/constants.js"),C=i("./src/utils/generic.js"),p=i("./src/utils/hub.js");class I extends C.Callable{constructor(G){super(),this.config=G}static async from_pretrained(G,S){const T=await(0,p.getModelJSON)(G,g.FEATURE_EXTRACTOR_NAME,!0,S);return new this(T)}}function M(x,G){var S;if(!(x instanceof Float32Array||x instanceof Float64Array))throw new Error(`${G} expects input to be a Float32Array or a Float64Array, but got ${((S=x==null?void 0:x.constructor)==null?void 0:S.name)??typeof x} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}},"./src/base/image_processors_utils.js":(s,n,i)=>{i.r(n),i.d(n,{ImageProcessor:()=>d,center_to_corners_format:()=>T,post_process_instance_segmentation:()=>ee,post_process_object_detection:()=>P,post_process_panoptic_segmentation:()=>V,post_process_semantic_segmentation:()=>j});var g=i("./src/utils/generic.js"),C=i("./src/utils/tensor.js"),p=i("./src/utils/maths.js");i("./src/utils/image.js");var I=i("./src/utils/core.js"),M=i("./src/utils/hub.js"),x=i("./src/utils/constants.js");function G(v,e,u=0,Q=null){const oe=v/e;let O=(0,p.bankers_round)(oe)*e;return Q!==null&&O>Q&&(O=Math.floor(oe)*e),Oe&&le.push(Oe)}else{let Oe=(0,p.max)(be.data)[1];if(Oe===ce-1||(Ie=(0,p.softmax)(be.data),Ie[Oe]Ve*Qe[(Ue+1)%2])),je.boxes.push(tA),je.classes.push(Oe),je.scores.push(Ie[Oe])}}Te.push(je)}return Te}function j(v,e=null){const u=v.logits,Q=u.dims[0];if(e!==null&&e.length!==Q)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const oe=[];for(let O=0;OQe[le]&&(Qe[le]=be[le],je[le]=Xe)}const Se=new Array(De.dims[0]);for(let Xe=0;XeXe!==void 0);oe.push({segmentation:Be,labels:Je})}return oe}function L(v,e,u,Q){const oe=[],O=[],R=[];for(let De=0;Deu&&(oe.push(Te),O.push(je),R.push(Be))}return[oe,O,R]}function K(v,e,u,Q=.5,oe=.8){const O=[];let R=0,De=0;const ce=e[u].data;for(let Be=0;Be=Q&&++De;let Te=R>0&&De>0;return Te&&(Te=R/De>oe),[Te,O]}function ae(v,e,u,Q,oe,O=null,R=null){const[De,ce]=R??v[0].dims,Te=new C.Tensor("int32",new Int32Array(De*ce),[De,ce]),Be=[];if(R!==null)for(let Xe=0;Xeje[Ie]&&(Qe[Ie]=Xe,je[Ie]=le[Ie])}let Se=0;const Je=Te.data;for(let Xe=0;Xe200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(v,e)/Math.min(v,e)}`);let O=Math.round(v/u)*u,R=Math.round(e/u)*u;if(O*R>oe){const De=Math.sqrt(v*e/oe);O=Math.floor(v/De/u)*u,R=Math.floor(e/De/u)*u}else if(O*RO?Te=Math.floor(O*ce/oe):O>oe&&(ce=Math.floor(oe*Te/O)),await e.resize(Te,ce,{resample:Q}))}async crop_margin(e,u=200){const Q=e.clone().grayscale(),oe=(0,p.min)(Q.data)[0],R=(0,p.max)(Q.data)[0]-oe;if(R===0)return e;const De=u/255;let ce=Q.width,Te=Q.height,Be=0,Qe=0;const je=Q.data;for(let Se=0;Sethis.preprocess(O)));return{pixel_values:(0,C.stack)(Q.map(O=>O.pixel_values),0),original_sizes:Q.map(O=>O.original_size),reshaped_input_sizes:Q.map(O=>O.reshaped_input_size)}}static async from_pretrained(e,u){const Q=await(0,M.getModelJSON)(e,x.IMAGE_PROCESSOR_NAME,!0,u);return new this(Q)}}},"./src/base/processing_utils.js":(s,n,i)=>{i.r(n),i.d(n,{Processor:()=>I});var g=i("./src/utils/constants.js"),C=i("./src/utils/generic.js"),p=i("./src/utils/hub.js");class I extends C.Callable{constructor(x,G){super(),this.config=x,this.components=G}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(x,G={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(x,{tokenize:!1,...G})}batch_decode(...x){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...x)}decode(...x){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...x)}async _call(x,...G){for(const S of[this.image_processor,this.feature_extractor,this.tokenizer])if(S)return S(x,...G);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(x,G){const[S,T]=await Promise.all([this.uses_processor_config?(0,p.getModelJSON)(x,g.PROCESSOR_NAME,!0,G):{},Promise.all(this.classes.filter(P=>P in this).map(async P=>{const j=await this[P].from_pretrained(x,G);return[P.replace(/_class$/,""),j]})).then(Object.fromEntries)]);return new this(S,T)}}_e(I,"classes",["image_processor_class","tokenizer_class","feature_extractor_class"]),_e(I,"uses_processor_config",!1)},"./src/configs.js":(s,n,i)=>{i.r(n),i.d(n,{AutoConfig:()=>G,PretrainedConfig:()=>x,getKeyValueShapes:()=>M});var g=i("./src/utils/core.js"),C=i("./src/utils/hub.js");async function p(S,T){return await(0,C.getModelJSON)(S,"config.json",!0,T)}function I(S){const T={};let P={};switch(S.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"smolvlm":P=I(S.text_config);break;case"moondream1":P=I(S.phi_config);break;case"musicgen":P=I(S.decoder);break;case"multi_modality":P=I(S.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":T.num_heads="n_head",T.num_layers="n_layer",T.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":T.num_heads="num_attention_heads",T.num_layers="num_hidden_layers",T.hidden_size="hidden_size";break;case"llama":case"olmo":case"olmo2":case"mobilellm":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":T.num_heads="num_key_value_heads",T.num_layers="num_hidden_layers",T.hidden_size="hidden_size",T.num_attention_heads="num_attention_heads";break;case"qwen3":case"gemma":case"gemma2":case"gemma3_text":case"glm":case"helium":T.num_heads="num_key_value_heads",T.num_layers="num_hidden_layers",T.dim_kv="head_dim";break;case"openelm":T.num_heads="num_kv_heads",T.num_layers="num_transformer_layers",T.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":T.num_heads="num_heads",T.num_layers="num_layers",T.hidden_size="hidden_size";break;case"bloom":T.num_heads="n_head",T.num_layers="n_layer",T.hidden_size="hidden_size";break;case"mpt":T.num_heads="n_heads",T.num_layers="n_layers",T.hidden_size="d_model";break;case"exaone":T.num_heads="num_key_value_heads",T.num_layers="num_layers",T.dim_kv="head_dim",T.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":T.num_decoder_layers="num_decoder_layers",T.num_decoder_heads="num_heads",T.decoder_dim_kv="d_kv",T.num_encoder_layers="num_layers",T.num_encoder_heads="num_heads",T.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":T.num_decoder_layers="decoder_layers",T.num_decoder_heads="decoder_attention_heads",T.decoder_hidden_size="d_model",T.num_encoder_layers="encoder_layers",T.num_encoder_heads="encoder_attention_heads",T.encoder_hidden_size="d_model";break;case"speecht5":T.num_decoder_layers="decoder_layers",T.num_decoder_heads="decoder_attention_heads",T.decoder_hidden_size="hidden_size",T.num_encoder_layers="encoder_layers",T.num_encoder_heads="encoder_attention_heads",T.encoder_hidden_size="hidden_size";break;case"trocr":T.num_encoder_layers=T.num_decoder_layers="decoder_layers",T.num_encoder_heads=T.num_decoder_heads="decoder_attention_heads",T.encoder_hidden_size=T.decoder_hidden_size="d_model";break;case"musicgen_decoder":T.num_encoder_layers=T.num_decoder_layers="num_hidden_layers",T.num_encoder_heads=T.num_decoder_heads="num_attention_heads",T.encoder_hidden_size=T.decoder_hidden_size="hidden_size";break;case"moonshine":T.num_decoder_layers="decoder_num_hidden_layers",T.num_decoder_heads="decoder_num_key_value_heads",T.num_encoder_layers="encoder_num_hidden_layers",T.num_encoder_heads="encoder_num_key_value_heads",T.encoder_hidden_size=T.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const L=I(S.decoder),K="num_decoder_layers"in L,ae=(0,g.pick)(S,["model_type","is_encoder_decoder"]);return K?(ae.num_decoder_layers=L.num_decoder_layers,ae.num_decoder_heads=L.num_decoder_heads,ae.decoder_hidden_size=L.decoder_hidden_size,ae.num_encoder_layers=L.num_encoder_layers,ae.num_encoder_heads=L.num_encoder_heads,ae.encoder_hidden_size=L.encoder_hidden_size):(ae.num_layers=L.num_layers,ae.num_heads=L.num_heads,ae.hidden_size=L.hidden_size),ae}const j={...P,...(0,g.pick)(S,["model_type","multi_query","is_encoder_decoder"])};for(const L in T)j[L]=S[T[L]];return j}function M(S,{prefix:T="past_key_values",batch_size:P=1}={}){const j={},L=S.normalized_config;if(L.is_encoder_decoder&&"num_encoder_heads"in L&&"num_decoder_heads"in L){const K=L.encoder_dim_kv??L.encoder_hidden_size/L.num_encoder_heads,ae=L.decoder_dim_kv??L.decoder_hidden_size/L.num_decoder_heads,Y=[P,L.num_encoder_heads,0,K],V=[P,L.num_decoder_heads,0,ae];for(let ee=0;ee{var Q,oe;i.r(n),i.d(n,{apis:()=>ae,env:()=>e});var g=i("?569f"),C=i("?3f59"),p=i("?154a");const I="3.5.1",M=typeof window<"u"&&typeof window.document<"u",x=typeof self<"u"&&((Q=self.constructor)==null?void 0:Q.name)==="DedicatedWorkerGlobalScope",G=typeof self<"u"&&"caches"in self,S=typeof navigator<"u"&&"gpu"in navigator,T=typeof navigator<"u"&&"ml"in navigator,P=typeof process<"u",j=P&&((oe=process==null?void 0:process.release)==null?void 0:oe.name)==="node",L=!u(g),K=!u(C),ae=Object.freeze({IS_BROWSER_ENV:M,IS_WEBWORKER_ENV:x,IS_WEB_CACHE_AVAILABLE:G,IS_WEBGPU_AVAILABLE:S,IS_WEBNN_AVAILABLE:T,IS_PROCESS_AVAILABLE:P,IS_NODE_ENV:j,IS_FS_AVAILABLE:L,IS_PATH_AVAILABLE:K}),Y=L&&K;let V="./";if(Y){const O=Object(import.meta).url;O?V=C.dirname(C.dirname(p.fileURLToPath(O))):typeof __dirname<"u"&&(V=C.dirname(__dirname))}const ee=Y?C.join(V,"/.cache/"):null,d="/models/",v=Y?C.join(V,d):d,e={version:I,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(M||x),localModelPath:v,useFS:L,useBrowserCache:G,useFSCache:L,cacheDir:ee,useCustomCache:!1,customCache:null};function u(O){return Object.keys(O).length===0}},"./src/generation/configuration_utils.js":(s,n,i)=>{i.r(n),i.d(n,{GenerationConfig:()=>C});var g=i("./src/utils/core.js");class C{constructor(I){_e(this,"max_length",20);_e(this,"max_new_tokens",null);_e(this,"min_length",0);_e(this,"min_new_tokens",null);_e(this,"early_stopping",!1);_e(this,"max_time",null);_e(this,"do_sample",!1);_e(this,"num_beams",1);_e(this,"num_beam_groups",1);_e(this,"penalty_alpha",null);_e(this,"use_cache",!0);_e(this,"temperature",1);_e(this,"top_k",50);_e(this,"top_p",1);_e(this,"typical_p",1);_e(this,"epsilon_cutoff",0);_e(this,"eta_cutoff",0);_e(this,"diversity_penalty",0);_e(this,"repetition_penalty",1);_e(this,"encoder_repetition_penalty",1);_e(this,"length_penalty",1);_e(this,"no_repeat_ngram_size",0);_e(this,"bad_words_ids",null);_e(this,"force_words_ids",null);_e(this,"renormalize_logits",!1);_e(this,"constraints",null);_e(this,"forced_bos_token_id",null);_e(this,"forced_eos_token_id",null);_e(this,"remove_invalid_values",!1);_e(this,"exponential_decay_length_penalty",null);_e(this,"suppress_tokens",null);_e(this,"streamer",null);_e(this,"begin_suppress_tokens",null);_e(this,"forced_decoder_ids",null);_e(this,"guidance_scale",null);_e(this,"num_return_sequences",1);_e(this,"output_attentions",!1);_e(this,"output_hidden_states",!1);_e(this,"output_scores",!1);_e(this,"return_dict_in_generate",!1);_e(this,"pad_token_id",null);_e(this,"bos_token_id",null);_e(this,"eos_token_id",null);_e(this,"encoder_no_repeat_ngram_size",0);_e(this,"decoder_start_token_id",null);_e(this,"generation_kwargs",{});Object.assign(this,(0,g.pick)(I,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(s,n,i)=>{i.r(n),i.d(n,{ClassifierFreeGuidanceLogitsProcessor:()=>Y,ForcedBOSTokenLogitsProcessor:()=>x,ForcedEOSTokenLogitsProcessor:()=>G,LogitsProcessor:()=>p,LogitsProcessorList:()=>M,LogitsWarper:()=>I,MinLengthLogitsProcessor:()=>L,MinNewTokensLengthLogitsProcessor:()=>K,NoBadWordsLogitsProcessor:()=>ae,NoRepeatNGramLogitsProcessor:()=>P,RepetitionPenaltyLogitsProcessor:()=>j,SuppressTokensAtBeginLogitsProcessor:()=>S,TemperatureLogitsWarper:()=>V,TopKLogitsWarper:()=>d,TopPLogitsWarper:()=>ee,WhisperTimeStampLogitsProcessor:()=>T});var g=i("./src/utils/generic.js");i("./src/utils/tensor.js");var C=i("./src/utils/maths.js");class p extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class I extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class M extends g.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,u){let Q=u;for(const oe of this.processors)Q=oe(e,Q);return Q}[Symbol.iterator](){return this.processors.values()}}class x extends p{constructor(e){super(),this.bos_token_id=e}_call(e,u){for(let Q=0;Q=1&&O[O.length-1]>=this.timestamp_begin,De=O.length<2||O[O.length-2]>=this.timestamp_begin;if(R&&(De?oe.subarray(this.timestamp_begin).fill(-1/0):oe.subarray(0,this.eos_token_id).fill(-1/0)),e[Q].length===this.begin_index&&this.max_initial_timestamp_index!==null){const Qe=this.timestamp_begin+this.max_initial_timestamp_index;oe.subarray(Qe+1).fill(-1/0)}const ce=(0,C.log_softmax)(oe),Te=Math.log(ce.subarray(this.timestamp_begin).map(Math.exp).reduce((Qe,je)=>Qe+je)),Be=(0,C.max)(ce.subarray(0,this.timestamp_begin))[0];Te>Be&&oe.subarray(0,this.timestamp_begin).fill(-1/0)}return u}}class P extends p{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const u=e.length,Q=[];for(let O=0;O1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,u){if(u.dims[0]!==2*e.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${u.dims[0]} for the logits and ${e.length} for the input ids.`);const Q=e.length,oe=u.slice([0,Q],null),O=u.slice([Q,u.dims[0]],null);for(let R=0;R1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(Q)||Q<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${Q}`);this.top_p=e,this.filter_value=u,this.min_tokens_to_keep=Q}}class d extends I{constructor(e,{filter_value:u=-1/0,min_tokens_to_keep:Q=1}={}){if(super(),!Number.isInteger(e)||e<0)throw new Error(`\`top_k\` must be a positive integer, but is ${e}`);this.top_k=Math.max(e,Q),this.filter_value=u}}},"./src/generation/logits_sampler.js":(s,n,i)=>{i.r(n),i.d(n,{LogitsSampler:()=>I});var g=i("./src/utils/generic.js"),C=i("./src/utils/tensor.js"),p=i("./src/utils/maths.js");i("./src/generation/configuration_utils.js");class I extends g.Callable{constructor(T){super(),this.generation_config=T}async _call(T){return this.sample(T)}async sample(T){throw Error("sample should be implemented in subclasses.")}getLogits(T,P){let j=T.dims.at(-1),L=T.data;if(P===-1)L=L.slice(-j);else{let K=P*j;L=L.slice(K,K+j)}return L}randomSelect(T){let P=0;for(let L=0;L1)return new G(T);if(T.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${T.num_return_sequences}.`);return new M(T)}}class M extends I{async sample(T){const P=(0,p.max)(T.data)[1];return[[BigInt(P),0]]}}class x extends I{async sample(T){let P=T.dims.at(-1);this.generation_config.top_k>0&&(P=Math.min(this.generation_config.top_k,P));const[j,L]=await(0,C.topk)(T,P),K=(0,p.softmax)(j.data);return Array.from({length:this.generation_config.num_beams},()=>{const ae=this.randomSelect(K);return[L.data[ae],Math.log(K[ae])]})}}class G extends I{async sample(T){let P=T.dims.at(-1);this.generation_config.top_k>0&&(P=Math.min(this.generation_config.top_k,P));const[j,L]=await(0,C.topk)(T,P),K=(0,p.softmax)(j.data);return Array.from({length:this.generation_config.num_beams},(ae,Y)=>[L.data[Y],Math.log(K[Y])])}}},"./src/generation/stopping_criteria.js":(s,n,i)=>{i.r(n),i.d(n,{EosTokenCriteria:()=>M,InterruptableStoppingCriteria:()=>x,MaxLengthCriteria:()=>I,StoppingCriteria:()=>C,StoppingCriteriaList:()=>p});var g=i("./src/utils/generic.js");class C extends g.Callable{_call(S,T){throw Error("StoppingCriteria needs to be subclassed")}}class p extends g.Callable{constructor(){super(),this.criteria=[]}push(S){this.criteria.push(S)}extend(S){S instanceof p?S=S.criteria:S instanceof C&&(S=[S]),this.criteria.push(...S)}_call(S,T){const P=new Array(S.length).fill(!1);for(const j of this.criteria){const L=j(S,T);for(let K=0;KT.length>=this.max_length)}}class M extends C{constructor(S){super(),Array.isArray(S)||(S=[S]),this.eos_token_id=S}_call(S,T){return S.map(P=>{const j=P.at(-1);return this.eos_token_id.some(L=>j==L)})}}class x extends C{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(S,T){return new Array(S.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(s,n,i)=>{i.r(n),i.d(n,{BaseStreamer:()=>I,TextStreamer:()=>x,WhisperTextStreamer:()=>G});var g=i("./src/utils/core.js"),C=i("./src/tokenizers.js"),p=i("./src/env.js");class I{put(T){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const M=p.apis.IS_PROCESS_AVAILABLE?S=>process.stdout.write(S):S=>console.log(S);class x extends I{constructor(T,{skip_prompt:P=!1,callback_function:j=null,token_callback_function:L=null,skip_special_tokens:K=!0,decode_kwargs:ae={},...Y}={}){super(),this.tokenizer=T,this.skip_prompt=P,this.callback_function=j??M,this.token_callback_function=L,this.decode_kwargs={skip_special_tokens:K,...ae,...Y},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(T){var ae;if(T.length>1)throw Error("TextStreamer only supports batch size of 1");const P=this.next_tokens_are_prompt;if(P&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;const j=T[0];(ae=this.token_callback_function)==null||ae.call(this,j),this.token_cache=(0,g.mergeArrays)(this.token_cache,j);const L=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let K;P||L.endsWith(` +`)?(K=L.slice(this.print_len),this.token_cache=[],this.print_len=0):L.length>0&&(0,C.is_chinese_char)(L.charCodeAt(L.length-1))?(K=L.slice(this.print_len),this.print_len+=K.length):(K=L.slice(this.print_len,L.lastIndexOf(" ")+1),this.print_len+=K.length),this.on_finalized_text(K,!1)}end(){let T;this.token_cache.length>0?(T=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):T="",this.next_tokens_are_prompt=!0,this.on_finalized_text(T,!0)}on_finalized_text(T,P){var j,L;T.length>0&&((j=this.callback_function)==null||j.call(this,T)),P&&this.callback_function===M&&p.apis.IS_PROCESS_AVAILABLE&&((L=this.callback_function)==null||L.call(this,` +`))}}class G extends x{constructor(T,{skip_prompt:P=!1,callback_function:j=null,token_callback_function:L=null,on_chunk_start:K=null,on_chunk_end:ae=null,on_finalize:Y=null,time_precision:V=.02,skip_special_tokens:ee=!0,decode_kwargs:d={}}={}){super(T,{skip_prompt:P,skip_special_tokens:ee,callback_function:j,token_callback_function:L,decode_kwargs:d}),this.timestamp_begin=T.timestamp_begin,this.on_chunk_start=K,this.on_chunk_end=ae,this.on_finalize=Y,this.time_precision=V,this.waiting_for_timestamp=!1}put(T){var j,L;if(T.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const P=T[0];if(P.length===1){const K=Number(P[0])-this.timestamp_begin;if(K>=0){const ae=K*this.time_precision;this.waiting_for_timestamp?(j=this.on_chunk_end)==null||j.call(this,ae):(L=this.on_chunk_start)==null||L.call(this,ae),this.waiting_for_timestamp=!this.waiting_for_timestamp,T=[[]]}}return super.put(T)}end(){var T;super.end(),(T=this.on_finalize)==null||T.call(this)}}},"./src/models.js":(s,n,i)=>{i.r(n),i.d(n,{ASTForAudioClassification:()=>Ns,ASTModel:()=>wn,ASTPreTrainedModel:()=>Ea,AlbertForMaskedLM:()=>Pe,AlbertForQuestionAnswering:()=>ke,AlbertForSequenceClassification:()=>se,AlbertModel:()=>He,AlbertPreTrainedModel:()=>La,AutoModel:()=>Mc,AutoModelForAudioClassification:()=>J1,AutoModelForAudioFrameClassification:()=>$1,AutoModelForAudioTextToText:()=>ou,AutoModelForCTC:()=>Z1,AutoModelForCausalLM:()=>N1,AutoModelForDepthEstimation:()=>ru,AutoModelForDocumentQuestionAnswering:()=>eu,AutoModelForImageClassification:()=>W1,AutoModelForImageFeatureExtraction:()=>iu,AutoModelForImageMatting:()=>Au,AutoModelForImageSegmentation:()=>V1,AutoModelForImageTextToText:()=>nu,AutoModelForImageToImage:()=>tu,AutoModelForMaskGeneration:()=>X1,AutoModelForMaskedLM:()=>L1,AutoModelForNormalEstimation:()=>au,AutoModelForObjectDetection:()=>U1,AutoModelForPoseEstimation:()=>su,AutoModelForQuestionAnswering:()=>j1,AutoModelForSemanticSegmentation:()=>Y1,AutoModelForSeq2SeqLM:()=>F1,AutoModelForSequenceClassification:()=>Q1,AutoModelForSpeechSeq2Seq:()=>O1,AutoModelForTextToSpectrogram:()=>_1,AutoModelForTextToWaveform:()=>z1,AutoModelForTokenClassification:()=>S1,AutoModelForUniversalSegmentation:()=>H1,AutoModelForVision2Seq:()=>R1,AutoModelForXVector:()=>q1,AutoModelForZeroShotObjectDetection:()=>K1,BartForConditionalGeneration:()=>Jt,BartForSequenceClassification:()=>Wr,BartModel:()=>Br,BartPretrainedModel:()=>_t,BaseModelOutput:()=>sA,BeitForImageClassification:()=>MA,BeitModel:()=>bA,BeitPreTrainedModel:()=>iA,BertForMaskedLM:()=>$,BertForQuestionAnswering:()=>xe,BertForSequenceClassification:()=>mA,BertForTokenClassification:()=>EA,BertModel:()=>dA,BertPreTrainedModel:()=>gA,BlenderbotForConditionalGeneration:()=>zr,BlenderbotModel:()=>_r,BlenderbotPreTrainedModel:()=>qt,BlenderbotSmallForConditionalGeneration:()=>fa,BlenderbotSmallModel:()=>Pr,BlenderbotSmallPreTrainedModel:()=>Kt,BloomForCausalLM:()=>ii,BloomModel:()=>Wt,BloomPreTrainedModel:()=>Lr,CLIPModel:()=>Ui,CLIPPreTrainedModel:()=>is,CLIPSegForImageSegmentation:()=>r0,CLIPSegModel:()=>uo,CLIPSegPreTrainedModel:()=>ja,CLIPTextModel:()=>ga,CLIPTextModelWithProjection:()=>Ma,CLIPVisionModel:()=>xi,CLIPVisionModelWithProjection:()=>hs,CamembertForMaskedLM:()=>JA,CamembertForQuestionAnswering:()=>or,CamembertForSequenceClassification:()=>zt,CamembertForTokenClassification:()=>ir,CamembertModel:()=>wt,CamembertPreTrainedModel:()=>st,CausalLMOutput:()=>nn,CausalLMOutputWithPast:()=>Ad,ChineseCLIPModel:()=>ys,ChineseCLIPPreTrainedModel:()=>Bi,ClapAudioModelWithProjection:()=>B2,ClapModel:()=>y2,ClapPreTrainedModel:()=>Go,ClapTextModelWithProjection:()=>x2,CodeGenForCausalLM:()=>Pn,CodeGenModel:()=>os,CodeGenPreTrainedModel:()=>nr,CohereForCausalLM:()=>_n,CohereModel:()=>_i,CoherePreTrainedModel:()=>ha,ConvBertForMaskedLM:()=>rs,ConvBertForQuestionAnswering:()=>me,ConvBertForSequenceClassification:()=>ge,ConvBertForTokenClassification:()=>Re,ConvBertModel:()=>XA,ConvBertPreTrainedModel:()=>ua,ConvNextForImageClassification:()=>kl,ConvNextModel:()=>wl,ConvNextPreTrainedModel:()=>c0,ConvNextV2ForImageClassification:()=>Ml,ConvNextV2Model:()=>El,ConvNextV2PreTrainedModel:()=>u0,DFineForObjectDetection:()=>ui,DFineModel:()=>Hs,DFinePreTrainedModel:()=>Wa,DPTForDepthEstimation:()=>rl,DPTModel:()=>tl,DPTPreTrainedModel:()=>n0,DacDecoderModel:()=>hc,DacDecoderOutput:()=>fc,DacEncoderModel:()=>pc,DacEncoderOutput:()=>dc,DacModel:()=>gc,DacPreTrainedModel:()=>zo,DebertaForMaskedLM:()=>fs,DebertaForQuestionAnswering:()=>Qs,DebertaForSequenceClassification:()=>ws,DebertaForTokenClassification:()=>Ha,DebertaModel:()=>br,DebertaPreTrainedModel:()=>HA,DebertaV2ForMaskedLM:()=>Ua,DebertaV2ForQuestionAnswering:()=>ks,DebertaV2ForSequenceClassification:()=>as,DebertaV2ForTokenClassification:()=>Ht,DebertaV2Model:()=>za,DebertaV2PreTrainedModel:()=>Da,DecisionTransformerModel:()=>X2,DecisionTransformerPreTrainedModel:()=>K2,DeiTForImageClassification:()=>Un,DeiTModel:()=>Hn,DeiTPreTrainedModel:()=>an,DepthAnythingForDepthEstimation:()=>sl,DepthAnythingPreTrainedModel:()=>al,DepthProForDepthEstimation:()=>cl,DepthProPreTrainedModel:()=>ll,DetrForObjectDetection:()=>it,DetrForSegmentation:()=>kt,DetrModel:()=>WA,DetrObjectDetectionOutput:()=>Gt,DetrPreTrainedModel:()=>jA,DetrSegmentationOutput:()=>Nt,Dinov2ForImageClassification:()=>yl,Dinov2Model:()=>vl,Dinov2PreTrainedModel:()=>d0,Dinov2WithRegistersForImageClassification:()=>Bl,Dinov2WithRegistersModel:()=>xl,Dinov2WithRegistersPreTrainedModel:()=>f0,DistilBertForMaskedLM:()=>wA,DistilBertForQuestionAnswering:()=>sa,DistilBertForSequenceClassification:()=>wa,DistilBertForTokenClassification:()=>Es,DistilBertModel:()=>Ia,DistilBertPreTrainedModel:()=>xr,DonutSwinModel:()=>Il,DonutSwinPreTrainedModel:()=>bl,EfficientNetForImageClassification:()=>F2,EfficientNetModel:()=>S2,EfficientNetPreTrainedModel:()=>E0,ElectraForMaskedLM:()=>CA,ElectraForQuestionAnswering:()=>Qt,ElectraForSequenceClassification:()=>eA,ElectraForTokenClassification:()=>ft,ElectraModel:()=>$e,ElectraPreTrainedModel:()=>ze,EsmForMaskedLM:()=>lr,EsmForSequenceClassification:()=>Ka,EsmForTokenClassification:()=>Xa,EsmModel:()=>qA,EsmPreTrainedModel:()=>DA,ExaoneForCausalLM:()=>mo,ExaoneModel:()=>Qn,ExaonePreTrainedModel:()=>Zi,FalconForCausalLM:()=>v2,FalconModel:()=>M2,FalconPreTrainedModel:()=>I0,FastViTForImageClassification:()=>E,FastViTModel:()=>m,FastViTPreTrainedModel:()=>f,Florence2ForConditionalGeneration:()=>vn,Florence2PreTrainedModel:()=>Mn,GLPNForDepthEstimation:()=>Cl,GLPNModel:()=>ml,GLPNPreTrainedModel:()=>l0,GPT2LMHeadModel:()=>fo,GPT2Model:()=>Js,GPT2PreTrainedModel:()=>Zs,GPTBigCodeForCausalLM:()=>ms,GPTBigCodeModel:()=>Qr,GPTBigCodePreTrainedModel:()=>nt,GPTJForCausalLM:()=>Qa,GPTJModel:()=>$s,GPTJPreTrainedModel:()=>Kr,GPTNeoForCausalLM:()=>Nr,GPTNeoModel:()=>Tn,GPTNeoPreTrainedModel:()=>Rs,GPTNeoXForCausalLM:()=>YA,GPTNeoXModel:()=>ns,GPTNeoXPreTrainedModel:()=>Gn,Gemma2ForCausalLM:()=>bo,Gemma2Model:()=>ri,Gemma2PreTrainedModel:()=>Ji,Gemma3ForCausalLM:()=>ia,Gemma3Model:()=>Io,Gemma3PreTrainedModel:()=>Ln,GemmaForCausalLM:()=>Nn,GemmaModel:()=>zn,GemmaPreTrainedModel:()=>qa,GlmForCausalLM:()=>Ai,GlmModel:()=>ei,GlmPreTrainedModel:()=>pa,GraniteForCausalLM:()=>Oi,GraniteModel:()=>Fi,GranitePreTrainedModel:()=>Si,GroundingDinoForObjectDetection:()=>Tl,GroundingDinoPreTrainedModel:()=>Dl,GroupViTModel:()=>c,GroupViTPreTrainedModel:()=>l,HeliumForCausalLM:()=>ho,HeliumModel:()=>Pi,HeliumPreTrainedModel:()=>gr,HieraForImageClassification:()=>K0,HieraModel:()=>U0,HieraPreTrainedModel:()=>a0,HubertForCTC:()=>i2,HubertForSequenceClassification:()=>n2,HubertModel:()=>s2,HubertPreTrainedModel:()=>A1,IJepaForImageClassification:()=>tn,IJepaModel:()=>Xr,IJepaPreTrainedModel:()=>li,Idefics3ForConditionalGeneration:()=>yi,Idefics3PreTrainedModel:()=>oo,ImageMattingOutput:()=>cu,JAISLMHeadModel:()=>qs,JAISModel:()=>go,JAISPreTrainedModel:()=>Dn,JinaCLIPModel:()=>Bn,JinaCLIPPreTrainedModel:()=>Di,JinaCLIPTextModel:()=>Ti,JinaCLIPVisionModel:()=>TA,LiteWhisperForConditionalGeneration:()=>io,LlamaForCausalLM:()=>Gi,LlamaModel:()=>po,LlamaPreTrainedModel:()=>Xi,LlavaForConditionalGeneration:()=>ps,LlavaOnevisionForConditionalGeneration:()=>Ls,LlavaPreTrainedModel:()=>no,LongT5ForConditionalGeneration:()=>SA,LongT5Model:()=>zA,LongT5PreTrainedModel:()=>yA,M2M100ForConditionalGeneration:()=>Ll,M2M100Model:()=>Nl,M2M100PreTrainedModel:()=>h0,MBartForCausalLM:()=>ea,MBartForConditionalGeneration:()=>da,MBartForSequenceClassification:()=>Yr,MBartModel:()=>Vr,MBartPreTrainedModel:()=>cr,MPNetForMaskedLM:()=>Ms,MPNetForQuestionAnswering:()=>gs,MPNetForSequenceClassification:()=>Ss,MPNetForTokenClassification:()=>$r,MPNetModel:()=>ya,MPNetPreTrainedModel:()=>ka,MT5ForConditionalGeneration:()=>Ot,MT5Model:()=>ht,MT5PreTrainedModel:()=>cA,MarianMTModel:()=>zl,MarianModel:()=>_l,MarianPreTrainedModel:()=>p0,MaskFormerForInstanceSegmentation:()=>hl,MaskFormerModel:()=>pl,MaskFormerPreTrainedModel:()=>o0,MaskedLMOutput:()=>va,Metric3DForDepthEstimation:()=>dl,Metric3DPreTrainedModel:()=>ul,Metric3Dv2ForDepthEstimation:()=>gl,Metric3Dv2PreTrainedModel:()=>fl,MgpstrForSceneTextRecognition:()=>ec,MgpstrModelOutput:()=>q2,MgpstrPreTrainedModel:()=>$2,MimiDecoderModel:()=>uc,MimiDecoderOutput:()=>oc,MimiEncoderModel:()=>cc,MimiEncoderOutput:()=>nc,MimiModel:()=>lc,MimiPreTrainedModel:()=>_o,MistralForCausalLM:()=>w2,MistralModel:()=>I2,MistralPreTrainedModel:()=>C0,MobileBertForMaskedLM:()=>Ja,MobileBertForQuestionAnswering:()=>mr,MobileBertForSequenceClassification:()=>ct,MobileBertModel:()=>Za,MobileBertPreTrainedModel:()=>Ta,MobileLLMForCausalLM:()=>Sn,MobileLLMModel:()=>ls,MobileLLMPreTrainedModel:()=>Qi,MobileNetV1ForImageClassification:()=>_2,MobileNetV1ForSemanticSegmentation:()=>z2,MobileNetV1Model:()=>O2,MobileNetV1PreTrainedModel:()=>Qo,MobileNetV2ForImageClassification:()=>L2,MobileNetV2ForSemanticSegmentation:()=>j2,MobileNetV2Model:()=>N2,MobileNetV2PreTrainedModel:()=>So,MobileNetV3ForImageClassification:()=>W2,MobileNetV3ForSemanticSegmentation:()=>V2,MobileNetV3Model:()=>R2,MobileNetV3PreTrainedModel:()=>Fo,MobileNetV4ForImageClassification:()=>H2,MobileNetV4ForSemanticSegmentation:()=>U2,MobileNetV4Model:()=>Y2,MobileNetV4PreTrainedModel:()=>Oo,MobileViTForImageClassification:()=>X,MobileViTModel:()=>W,MobileViTPreTrainedModel:()=>_,MobileViTV2ForImageClassification:()=>ue,MobileViTV2Model:()=>re,MobileViTV2PreTrainedModel:()=>q,ModelOutput:()=>aA,ModernBertForMaskedLM:()=>GA,ModernBertForSequenceClassification:()=>VA,ModernBertForTokenClassification:()=>$A,ModernBertModel:()=>pA,ModernBertPreTrainedModel:()=>OA,Moondream1ForConditionalGeneration:()=>ss,MoonshineForConditionalGeneration:()=>Rt,MoonshineModel:()=>Yi,MoonshinePreTrainedModel:()=>En,MptForCausalLM:()=>vo,MptModel:()=>ye,MptPreTrainedModel:()=>ni,MultiModalityCausalLM:()=>J2,MultiModalityPreTrainedModel:()=>Z2,MusicgenForCausalLM:()=>s1,MusicgenForConditionalGeneration:()=>v0,MusicgenModel:()=>a1,MusicgenPreTrainedModel:()=>M0,NomicBertModel:()=>FA,NomicBertPreTrainedModel:()=>RA,OPTForCausalLM:()=>Ni,OPTModel:()=>Wn,OPTPreTrainedModel:()=>An,Olmo2ForCausalLM:()=>Tr,Olmo2Model:()=>ti,Olmo2PreTrainedModel:()=>cs,OlmoForCausalLM:()=>Co,OlmoModel:()=>On,OlmoPreTrainedModel:()=>Fn,OpenELMForCausalLM:()=>jn,OpenELMModel:()=>na,OpenELMPreTrainedModel:()=>ai,OwlViTForObjectDetection:()=>Ge,OwlViTModel:()=>Me,OwlViTPreTrainedModel:()=>J,Owlv2ForObjectDetection:()=>de,Owlv2Model:()=>Ye,Owlv2PreTrainedModel:()=>ne,PaliGemmaForConditionalGeneration:()=>yn,PaliGemmaPreTrainedModel:()=>js,PatchTSMixerForPrediction:()=>ac,PatchTSMixerModel:()=>rc,PatchTSMixerPreTrainedModel:()=>x0,PatchTSTForPrediction:()=>tc,PatchTSTModel:()=>Ac,PatchTSTPreTrainedModel:()=>y0,Phi3ForCausalLM:()=>en,Phi3Model:()=>Rn,Phi3PreTrainedModel:()=>Ra,Phi3VForCausalLM:()=>NA,Phi3VPreTrainedModel:()=>xn,PhiForCausalLM:()=>Vs,PhiModel:()=>Mo,PhiPreTrainedModel:()=>$i,PreTrainedModel:()=>we,PretrainedMixin:()=>Vt,PvtForImageClassification:()=>rt,PvtModel:()=>ci,PvtPreTrainedModel:()=>rn,PyAnnoteForAudioFrameClassification:()=>Hl,PyAnnoteModel:()=>Yl,PyAnnotePreTrainedModel:()=>m0,QuestionAnsweringModelOutput:()=>Fa,Qwen2ForCausalLM:()=>Ar,Qwen2Model:()=>wo,Qwen2PreTrainedModel:()=>zi,Qwen2VLForConditionalGeneration:()=>Eo,Qwen2VLPreTrainedModel:()=>ko,Qwen3ForCausalLM:()=>si,Qwen3Model:()=>Ws,Qwen3PreTrainedModel:()=>qi,RFDetrForObjectDetection:()=>$a,RFDetrModel:()=>ma,RFDetrObjectDetectionOutput:()=>es,RFDetrPreTrainedModel:()=>ta,RTDetrForObjectDetection:()=>pr,RTDetrModel:()=>tr,RTDetrObjectDetectionOutput:()=>rr,RTDetrPreTrainedModel:()=>Xt,RTDetrV2ForObjectDetection:()=>Zr,RTDetrV2Model:()=>Sr,RTDetrV2ObjectDetectionOutput:()=>Aa,RTDetrV2PreTrainedModel:()=>Er,ResNetForImageClassification:()=>Z0,ResNetModel:()=>X0,ResNetPreTrainedModel:()=>s0,RoFormerForMaskedLM:()=>It,RoFormerForQuestionAnswering:()=>Ut,RoFormerForSequenceClassification:()=>dt,RoFormerForTokenClassification:()=>gt,RoFormerModel:()=>et,RoFormerPreTrainedModel:()=>oA,RobertaForMaskedLM:()=>Cr,RobertaForQuestionAnswering:()=>jt,RobertaForSequenceClassification:()=>Dr,RobertaForTokenClassification:()=>UA,RobertaModel:()=>Ir,RobertaPreTrainedModel:()=>Hr,SamImageSegmentationOutput:()=>Ol,SamModel:()=>Fl,SamPreTrainedModel:()=>Sl,SapiensForDepthEstimation:()=>nl,SapiensForNormalEstimation:()=>ol,SapiensForSemanticSegmentation:()=>il,SapiensPreTrainedModel:()=>xo,SegformerForImageClassification:()=>T2,SegformerForSemanticSegmentation:()=>G2,SegformerModel:()=>r1,SegformerPreTrainedModel:()=>Po,Seq2SeqLMOutput:()=>ed,SequenceClassifierOutput:()=>Et,SiglipModel:()=>kr,SiglipPreTrainedModel:()=>Ki,SiglipTextModel:()=>lo,SiglipVisionModel:()=>co,SmolVLMForConditionalGeneration:()=>IA,SnacDecoderModel:()=>bc,SnacEncoderModel:()=>Cc,SnacModel:()=>mc,SnacPreTrainedModel:()=>No,SpeechT5ForSpeechToText:()=>p2,SpeechT5ForTextToSpeech:()=>h2,SpeechT5HifiGan:()=>m2,SpeechT5Model:()=>t1,SpeechT5PreTrainedModel:()=>To,SqueezeBertForMaskedLM:()=>Mi,SqueezeBertForQuestionAnswering:()=>Ga,SqueezeBertForSequenceClassification:()=>Fs,SqueezeBertModel:()=>Na,SqueezeBertPreTrainedModel:()=>vs,StableLmForCausalLM:()=>Q2,StableLmModel:()=>P2,StableLmPreTrainedModel:()=>k0,Starcoder2ForCausalLM:()=>E2,Starcoder2Model:()=>k2,Starcoder2PreTrainedModel:()=>b0,StyleTextToSpeech2Model:()=>g2,StyleTextToSpeech2PreTrainedModel:()=>f2,Swin2SRForImageSuperResolution:()=>Al,Swin2SRModel:()=>el,Swin2SRPreTrainedModel:()=>i0,SwinForImageClassification:()=>q0,SwinForSemanticSegmentation:()=>$0,SwinModel:()=>J0,SwinPreTrainedModel:()=>yo,T5ForConditionalGeneration:()=>lA,T5Model:()=>Ke,T5PreTrainedModel:()=>Fe,TableTransformerForObjectDetection:()=>fi,TableTransformerModel:()=>di,TableTransformerObjectDetectionOutput:()=>Yn,TableTransformerPreTrainedModel:()=>Bs,TokenClassifierOutput:()=>Ca,TrOCRForCausalLM:()=>b2,TrOCRPreTrainedModel:()=>C2,UltravoxModel:()=>ic,UltravoxPreTrainedModel:()=>sc,UniSpeechForCTC:()=>Zl,UniSpeechForSequenceClassification:()=>Jl,UniSpeechModel:()=>Xl,UniSpeechPreTrainedModel:()=>Bo,UniSpeechSatForAudioFrameClassification:()=>A2,UniSpeechSatForCTC:()=>$l,UniSpeechSatForSequenceClassification:()=>e2,UniSpeechSatModel:()=>ql,UniSpeechSatPreTrainedModel:()=>Kn,ViTForImageClassification:()=>xs,ViTMAEModel:()=>t,ViTMAEPreTrainedModel:()=>A,ViTMSNForImageClassification:()=>o,ViTMSNModel:()=>a,ViTMSNPreTrainedModel:()=>r,ViTModel:()=>Sa,ViTPreTrainedModel:()=>oi,VisionEncoderDecoderModel:()=>Hi,VitMatteForImageMatting:()=>B,VitMattePreTrainedModel:()=>w,VitPoseForPoseEstimation:()=>Ys,VitPosePreTrainedModel:()=>Vn,VitsModel:()=>w0,VitsModelOutput:()=>uu,VitsPreTrainedModel:()=>D2,Wav2Vec2BertForCTC:()=>r2,Wav2Vec2BertForSequenceClassification:()=>a2,Wav2Vec2BertModel:()=>t2,Wav2Vec2BertPreTrainedModel:()=>Do,Wav2Vec2ForAudioFrameClassification:()=>Vl,Wav2Vec2ForCTC:()=>Rl,Wav2Vec2ForSequenceClassification:()=>Wl,Wav2Vec2Model:()=>jl,Wav2Vec2PreTrainedModel:()=>gi,WavLMForAudioFrameClassification:()=>d2,WavLMForCTC:()=>l2,WavLMForSequenceClassification:()=>c2,WavLMForXVector:()=>u2,WavLMModel:()=>o2,WavLMPreTrainedModel:()=>sn,WeSpeakerResNetModel:()=>Kl,WeSpeakerResNetPreTrainedModel:()=>Ul,WhisperForConditionalGeneration:()=>Vi,WhisperModel:()=>so,WhisperPreTrainedModel:()=>kn,XLMForQuestionAnswering:()=>Os,XLMForSequenceClassification:()=>vi,XLMForTokenClassification:()=>In,XLMModel:()=>Pa,XLMPreTrainedModel:()=>wr,XLMRobertaForMaskedLM:()=>Wi,XLMRobertaForQuestionAnswering:()=>_A,XLMRobertaForSequenceClassification:()=>zs,XLMRobertaForTokenClassification:()=>Ur,XLMRobertaModel:()=>Ri,XLMRobertaPreTrainedModel:()=>_s,XLMWithLMHeadModel:()=>bn,XVectorOutput:()=>lu,YolosForObjectDetection:()=>Pl,YolosModel:()=>Gl,YolosObjectDetectionOutput:()=>Ql,YolosPreTrainedModel:()=>g0});var g=i("./src/configs.js"),C=i("./src/backends/onnx.js"),p=i("./src/utils/dtypes.js"),I=i("./src/utils/generic.js"),M=i("./src/utils/core.js"),x=i("./src/utils/hub.js"),G=i("./src/utils/constants.js"),S=i("./src/generation/logits_process.js"),T=i("./src/generation/configuration_utils.js"),P=i("./src/utils/tensor.js"),j=i("./src/utils/image.js"),L=i("./src/utils/maths.js"),K=i("./src/generation/stopping_criteria.js"),ae=i("./src/generation/logits_sampler.js"),Y=i("./src/env.js"),V=i("./src/models/whisper/generation_whisper.js"),ee=i("./src/models/whisper/common_whisper.js");const d={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11},v=new Map,e=new Map,u=new Map;async function Q(U,Ae,fe){var ba;let We=((ba=fe.config)==null?void 0:ba["transformers.js_config"])??{},rA=fe.device??We.device;rA&&typeof rA!="string"&&(rA.hasOwnProperty(Ae)?rA=rA[Ae]:(console.warn(`device not specified for "${Ae}". Using the default device.`),rA=null));const AA=rA??(Y.apis.IS_NODE_ENV?"cpu":"wasm"),uA=(0,C.deviceToExecutionProviders)(AA),kA=We.device_config??{};kA.hasOwnProperty(AA)&&(We={...We,...kA[AA]});let PA=fe.dtype??We.dtype;if(typeof PA!="string"&&(PA&&PA.hasOwnProperty(Ae)?PA=PA[Ae]:(PA=p.DEFAULT_DEVICE_DTYPE_MAPPING[AA]??p.DATA_TYPES.fp32,console.warn(`dtype not specified for "${Ae}". Using the default dtype (${PA}) for this device (${AA}).`))),PA===p.DATA_TYPES.auto){let Tt=We.dtype;typeof Tt!="string"&&(Tt=Tt==null?void 0:Tt[Ae]),Tt&&Tt!==p.DATA_TYPES.auto&&p.DATA_TYPES.hasOwnProperty(Tt)?PA=Tt:PA=p.DEFAULT_DEVICE_DTYPE_MAPPING[AA]??p.DATA_TYPES.fp32}const LA=PA;if(p.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(LA)){if(LA===p.DATA_TYPES.fp16&&AA==="webgpu"&&!await(0,p.isWebGpuFp16Supported)())throw new Error(`The device (${AA}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${LA}. Should be one of: ${Object.keys(p.DATA_TYPES).join(", ")}`);const ut=We.kv_cache_dtype,bt=ut?typeof ut=="string"?ut:ut[LA]??"float32":void 0;if(bt&&!["float32","float16"].includes(bt))throw new Error(`Invalid kv_cache_dtype: ${bt}. Should be one of: float32, float16`);const ot={dtype:LA,kv_cache_dtype:bt,device:AA},Dt=p.DEFAULT_DTYPE_SUFFIX_MAPPING[LA],mt=`${Ae}${Dt}.onnx`,vt=`${fe.subfolder??""}/${mt}`,At={...fe.session_options};At.executionProviders??(At.executionProviders=uA);const Ft=We.free_dimension_overrides;Ft?At.freeDimensionOverrides??(At.freeDimensionOverrides=Ft):AA.startsWith("webnn")&&!At.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${AA}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);const ur=Y.apis.IS_NODE_ENV&&Y.env.useFSCache,Mr=(0,x.getModelFile)(U,vt,!0,fe,ur),jr=fe.use_external_data_format??We.use_external_data_format;let Fr=[];if(jr){let Tt;typeof jr=="object"?jr.hasOwnProperty(mt)?Tt=jr[mt]:jr.hasOwnProperty(Ae)?Tt=jr[Ae]:Tt=!1:Tt=jr;const oa=+Tt;if(oa>x.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${oa}) exceeds the maximum allowed value (${x.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let us=0;us{const ln=await(0,x.getModelFile)(U,Va,!0,fe,ur);Cs(ln instanceof Uint8Array?{path:on,data:ln}:on)}))}}else At.externalData!==void 0&&(Fr=At.externalData.map(async Tt=>{if(typeof Tt.data=="string"){const oa=await(0,x.getModelFile)(U,Tt.data,!0,fe);return{...Tt,data:oa}}return Tt}));if(Fr.length>0){const Tt=await Promise.all(Fr);Y.apis.IS_NODE_ENV||(At.externalData=Tt)}if(AA==="webgpu"){const Tt=(0,g.getKeyValueShapes)(fe.config,{prefix:"present"});if(Object.keys(Tt).length>0&&!(0,C.isONNXProxy)()){const oa={};for(const us in Tt)oa[us]="gpu-buffer";At.preferredOutputLocation=oa}}return{buffer_or_path:await Mr,session_options:At,session_config:ot}}async function oe(U,Ae,fe){return Object.fromEntries(await Promise.all(Object.keys(Ae).map(async We=>{const{buffer_or_path:rA,session_options:AA,session_config:uA}=await Q(U,Ae[We],fe),kA=await(0,C.createInferenceSession)(rA,AA,uA);return[We,kA]})))}async function O(U,Ae,fe){return Object.fromEntries(await Promise.all(Object.keys(Ae).map(async We=>{const rA=await(0,x.getModelJSON)(U,Ae[We],!1,fe);return[We,rA]})))}function R(U,Ae){const fe=Object.create(null),We=[];for(const uA of U.inputNames){const kA=Ae[uA];if(!(kA instanceof P.Tensor)){We.push(uA);continue}fe[uA]=(0,C.isONNXProxy)()?kA.clone():kA}if(We.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${We.join(", ")}.`);const rA=Object.keys(Ae).length,AA=U.inputNames.length;if(rA>AA){let uA=Object.keys(Ae).filter(kA=>!U.inputNames.includes(kA));console.warn(`WARNING: Too many inputs were provided (${rA} > ${AA}). The following inputs will be ignored: "${uA.join(", ")}".`)}return fe}let De=Promise.resolve();async function ce(U,Ae){const fe=R(U,Ae);try{const We=Object.fromEntries(Object.entries(fe).map(([uA,kA])=>[uA,kA.ort_tensor])),rA=()=>U.run(We),AA=await(Y.apis.IS_BROWSER_ENV||Y.apis.IS_WEBWORKER_ENV?De=De.then(rA):rA());return Te(AA)}catch(We){const rA=Object.fromEntries(Object.entries(fe).map(([AA,uA])=>{const kA={type:uA.type,dims:uA.dims,location:uA.location};return kA.location!=="gpu-buffer"&&(kA.data=uA.data),[AA,kA]}));throw console.error(`An error occurred during model execution: "${We}".`),console.error("Inputs given to model:",rA),We}}function Te(U){for(let Ae in U)(0,C.isONNXTensor)(U[Ae])?U[Ae]=new P.Tensor(U[Ae]):typeof U[Ae]=="object"&&Te(U[Ae]);return U}function Be(U){if(U instanceof P.Tensor)return U;if(U.length===0)throw Error("items must be non-empty");if(Array.isArray(U[0])){if(U.some(Ae=>Ae.length!==U[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new P.Tensor("int64",BigInt64Array.from(U.flat().map(Ae=>BigInt(Ae))),[U.length,U[0].length])}else return new P.Tensor("int64",BigInt64Array.from(U.map(Ae=>BigInt(Ae))),[1,U.length])}function Qe(U){return new P.Tensor("bool",[U],[1])}async function je(U,Ae){let{encoder_outputs:fe,input_ids:We,decoder_input_ids:rA,...AA}=Ae;if(!fe){const kA=(0,M.pick)(Ae,U.sessions.model.inputNames);fe=(await Se(U,kA)).last_hidden_state}return AA.input_ids=rA,AA.encoder_hidden_states=fe,U.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(AA.encoder_attention_mask=Ae.attention_mask),await Xe(U,AA,!0)}async function Se(U,Ae){const fe=U.sessions.model,We=(0,M.pick)(Ae,fe.inputNames);if(fe.inputNames.includes("inputs_embeds")&&!We.inputs_embeds){if(!Ae.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");We.inputs_embeds=await U.encode_text({input_ids:Ae.input_ids})}if(fe.inputNames.includes("token_type_ids")&&!We.token_type_ids){if(!We.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");We.token_type_ids=(0,P.zeros_like)(We.input_ids)}if(fe.inputNames.includes("pixel_mask")&&!We.pixel_mask){if(!We.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const rA=We.pixel_values.dims;We.pixel_mask=(0,P.ones)([rA[0],rA[2],rA[3]])}return await ce(fe,We)}async function Je(U,Ae){const fe=await U.encode(Ae);return await U.decode(fe)}async function Xe(U,Ae,fe=!1){const We=U.sessions[fe?"decoder_model_merged":"model"],{past_key_values:rA,...AA}=Ae;if(We.inputNames.includes("use_cache_branch")&&(AA.use_cache_branch=Qe(!!rA)),We.inputNames.includes("position_ids")&&AA.attention_mask&&!AA.position_ids){const kA=["paligemma","gemma3_text","gemma3"].includes(U.config.model_type)?1:0;AA.position_ids=BA(AA,rA,kA)}U.addPastKeyValues(AA,rA);const uA=(0,M.pick)(AA,We.inputNames);return await ce(We,uA)}function be({modality_token_id:U,inputs_embeds:Ae,modality_features:fe,input_ids:We,attention_mask:rA}){const AA=We.tolist().map(LA=>LA.reduce((ut,bt,ot)=>(bt==U&&ut.push(ot),ut),[])),uA=AA.reduce((LA,ut)=>LA+ut.length,0),kA=fe.dims[0];if(uA!==kA)throw new Error(`Number of tokens and features do not match: tokens: ${uA}, features ${kA}`);let PA=0;for(let LA=0;LAAA.dims[1])){if(rAkA==U.config.image_token_index)){const kA=U.config.num_image_tokens;if(!kA)throw new Error("`num_image_tokens` is missing in the model configuration.");const PA=AA.dims[1]-(rA-kA);fe.input_ids=AA.slice(null,[-PA,null]),fe.attention_mask=(0,P.ones)([1,rA+PA])}}}return fe}function Ze(U,Ae,fe,We){return fe.past_key_values&&(Ae=Ae.map(rA=>[rA.at(-1)])),{...fe,decoder_input_ids:Be(Ae)}}function Ee(U,...Ae){return U.config.is_encoder_decoder?Ze(U,...Ae):QA(U,...Ae)}function Ne(U,Ae,fe,We){const rA=!!fe.past_key_values;return We.guidance_scale!==null&&We.guidance_scale>1&&(rA?fe.input_ids=(0,P.cat)([fe.input_ids,fe.input_ids],0):(fe.input_ids=(0,P.cat)([fe.input_ids,(0,P.full_like)(fe.input_ids,BigInt(We.pad_token_id))],0),fe.attention_mask=(0,P.cat)([fe.attention_mask,(0,P.full_like)(fe.attention_mask,0n)],0))),(rA||!fe.pixel_values)&&(fe.pixel_values=(0,P.full)([0,0,3,384,384],1)),rA&&(fe.images_seq_mask=new P.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),fe.images_emb_mask=new P.Tensor("bool",new Array(0).fill(!1),[1,1,0])),fe}class we extends I.Callable{constructor(fe,We,rA){super();_e(this,"main_input_name","input_ids");_e(this,"forward_params",["input_ids","attention_mask"]);this.config=fe,this.sessions=We,this.configs=rA;const AA=u.get(this.constructor),uA=v.get(AA);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,uA){case d.DecoderOnly:this.can_generate=!0,this._forward=Xe,this._prepare_inputs_for_generation=QA;break;case d.Seq2Seq:case d.Vision2Seq:case d.Musicgen:this.can_generate=!0,this._forward=je,this._prepare_inputs_for_generation=Ze;break;case d.EncoderDecoder:this._forward=je;break;case d.ImageTextToText:this.can_generate=!0,this._forward=Ve,this._prepare_inputs_for_generation=Ee;break;case d.AudioTextToText:this.can_generate=!0,this._forward=tA,this._prepare_inputs_for_generation=Ee;break;case d.Phi3V:this.can_generate=!0,this._prepare_inputs_for_generation=Ee;break;case d.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=Ne;break;case d.AutoEncoder:this._forward=Je;break;default:this._forward=Se;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){var We;const fe=[];for(const rA of Object.values(this.sessions))(We=rA==null?void 0:rA.handler)!=null&&We.dispose&&fe.push(rA.handler.dispose());return await Promise.all(fe)}static async from_pretrained(fe,{progress_callback:We=null,config:rA=null,cache_dir:AA=null,local_files_only:uA=!1,revision:kA="main",model_file_name:PA=null,subfolder:LA="onnx",device:ut=null,dtype:bt=null,use_external_data_format:ot=null,session_options:Dt={}}={}){let mt={progress_callback:We,config:rA,cache_dir:AA,local_files_only:uA,revision:kA,model_file_name:PA,subfolder:LA,device:ut,dtype:bt,use_external_data_format:ot,session_options:Dt};const vt=u.get(this),At=v.get(vt);rA=mt.config=await g.AutoConfig.from_pretrained(fe,mt);let Ft;if(At===d.DecoderOnly)Ft=await Promise.all([oe(fe,{model:mt.model_file_name??"model"},mt),O(fe,{generation_config:"generation_config.json"},mt)]);else if(At===d.Seq2Seq||At===d.Vision2Seq)Ft=await Promise.all([oe(fe,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt),O(fe,{generation_config:"generation_config.json"},mt)]);else if(At===d.MaskGeneration)Ft=await Promise.all([oe(fe,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},mt)]);else if(At===d.EncoderDecoder)Ft=await Promise.all([oe(fe,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt)]);else if(At===d.ImageTextToText){const ur={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};rA.is_encoder_decoder&&(ur.model="encoder_model"),Ft=await Promise.all([oe(fe,ur,mt),O(fe,{generation_config:"generation_config.json"},mt)])}else if(At===d.AudioTextToText){const ur={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};Ft=await Promise.all([oe(fe,ur,mt),O(fe,{generation_config:"generation_config.json"},mt)])}else if(At===d.Musicgen)Ft=await Promise.all([oe(fe,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},mt),O(fe,{generation_config:"generation_config.json"},mt)]);else if(At===d.MultiModality)Ft=await Promise.all([oe(fe,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},mt),O(fe,{generation_config:"generation_config.json"},mt)]);else if(At===d.Phi3V)Ft=await Promise.all([oe(fe,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},mt),O(fe,{generation_config:"generation_config.json"},mt)]);else if(At===d.AutoEncoder)Ft=await Promise.all([oe(fe,{encoder_model:"encoder_model",decoder_model:"decoder_model"},mt)]);else{if(At!==d.EncoderOnly){const ur=vt??(rA==null?void 0:rA.model_type);ur!=="custom"&&console.warn(`Model type for '${ur}' not found, assuming encoder-only architecture. Please report this at ${G.GITHUB_ISSUE_URL}.`)}Ft=await Promise.all([oe(fe,{model:mt.model_file_name??"model"},mt)])}return new this(rA,...Ft)}async _call(fe){return await this.forward(fe)}async forward(fe){return await this._forward(this,fe)}get generation_config(){var fe;return((fe=this.configs)==null?void 0:fe.generation_config)??null}_get_logits_warper(fe){const We=new S.LogitsProcessorList;return fe.temperature!==null&&fe.temperature!==1&&We.push(new S.TemperatureLogitsWarper(fe.temperature)),fe.top_k!==null&&fe.top_k!==0&&We.push(new S.TopKLogitsWarper(fe.top_k)),fe.top_p!==null&&fe.top_p<1&&We.push(new S.TopPLogitsWarper(fe.top_p)),We}_get_logits_processor(fe,We,rA=null){const AA=new S.LogitsProcessorList;if(fe.repetition_penalty!==null&&fe.repetition_penalty!==1&&AA.push(new S.RepetitionPenaltyLogitsProcessor(fe.repetition_penalty)),fe.no_repeat_ngram_size!==null&&fe.no_repeat_ngram_size>0&&AA.push(new S.NoRepeatNGramLogitsProcessor(fe.no_repeat_ngram_size)),fe.bad_words_ids!==null&&AA.push(new S.NoBadWordsLogitsProcessor(fe.bad_words_ids,fe.eos_token_id)),fe.min_length!==null&&fe.eos_token_id!==null&&fe.min_length>0&&AA.push(new S.MinLengthLogitsProcessor(fe.min_length,fe.eos_token_id)),fe.min_new_tokens!==null&&fe.eos_token_id!==null&&fe.min_new_tokens>0&&AA.push(new S.MinNewTokensLengthLogitsProcessor(We,fe.min_new_tokens,fe.eos_token_id)),fe.forced_bos_token_id!==null&&AA.push(new S.ForcedBOSTokenLogitsProcessor(fe.forced_bos_token_id)),fe.forced_eos_token_id!==null&&AA.push(new S.ForcedEOSTokenLogitsProcessor(fe.max_length,fe.forced_eos_token_id)),fe.begin_suppress_tokens!==null){const uA=We>1||fe.forced_bos_token_id===null?We:We+1;AA.push(new S.SuppressTokensAtBeginLogitsProcessor(fe.begin_suppress_tokens,uA))}return fe.guidance_scale!==null&&fe.guidance_scale>1&&AA.push(new S.ClassifierFreeGuidanceLogitsProcessor(fe.guidance_scale)),rA!==null&&AA.extend(rA),AA}_prepare_generation_config(fe,We,rA=T.GenerationConfig){const AA={...this.config};for(const kA of["decoder","generator","text_config"])kA in AA&&Object.assign(AA,AA[kA]);const uA=new rA(AA);return Object.assign(uA,this.generation_config??{}),fe&&Object.assign(uA,fe),We&&Object.assign(uA,(0,M.pick)(We,Object.getOwnPropertyNames(uA))),uA}_get_stopping_criteria(fe,We=null){const rA=new K.StoppingCriteriaList;return fe.max_length!==null&&rA.push(new K.MaxLengthCriteria(fe.max_length,this.config.max_position_embeddings??null)),fe.eos_token_id!==null&&rA.push(new K.EosTokenCriteria(fe.eos_token_id)),We&&rA.extend(We),rA}_validate_model_class(){if(!this.can_generate){const fe=[kc,Ec,wc,Ic],We=u.get(this.constructor),rA=new Set,AA=this.config.model_type;for(const kA of fe){const PA=kA.get(AA);PA&&rA.add(PA[0])}let uA=`The current model class (${We}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw rA.size>0&&(uA+=` Please use the following class instead: ${[...rA].join(", ")}`),Error(uA)}}prepare_inputs_for_generation(...fe){return this._prepare_inputs_for_generation(this,...fe)}_update_model_kwargs_for_generation({generated_input_ids:fe,outputs:We,model_inputs:rA,is_encoder_decoder:AA}){return rA.past_key_values=this.getPastKeyValues(We,rA.past_key_values),rA.input_ids=new P.Tensor("int64",fe.flat(),[fe.length,1]),AA||(rA.attention_mask=(0,P.cat)([rA.attention_mask,(0,P.ones)([rA.attention_mask.dims[0],1])],1)),rA.position_ids=null,rA}_prepare_model_inputs({inputs:fe,bos_token_id:We,model_kwargs:rA}){const AA=(0,M.pick)(rA,this.forward_params),uA=this.main_input_name;if(uA in AA){if(fe)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else AA[uA]=fe;return{inputs_tensor:AA[uA],model_inputs:AA,model_input_name:uA}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:fe,model_inputs:We,model_input_name:rA,generation_config:AA}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!We.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:kA,pixel_values:PA,attention_mask:LA,...ut}=We,bt=await this._prepare_inputs_embeds(We);We={...ut,...(0,M.pick)(bt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:uA}=await Se(this,We);if(AA.guidance_scale!==null&&AA.guidance_scale>1)uA=(0,P.cat)([uA,(0,P.full_like)(uA,0)],0),"attention_mask"in We&&(We.attention_mask=(0,P.cat)([We.attention_mask,(0,P.zeros_like)(We.attention_mask)],0));else if(We.decoder_input_ids){const kA=Be(We.decoder_input_ids).dims[0];if(kA!==uA.dims[0]){if(uA.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${uA.dims[0]}) than the decoder inputs (${kA}).`);uA=(0,P.cat)(Array.from({length:kA},()=>uA),0)}}return We.encoder_outputs=uA,We}_prepare_decoder_input_ids_for_generation({batch_size:fe,model_input_name:We,model_kwargs:rA,decoder_start_token_id:AA,bos_token_id:uA,generation_config:kA}){let{decoder_input_ids:PA,...LA}=rA;if(!(PA instanceof P.Tensor)){if(PA)Array.isArray(PA[0])||(PA=Array.from({length:fe},()=>PA));else if(AA??(AA=uA),this.config.model_type==="musicgen")PA=Array.from({length:fe*this.config.decoder.num_codebooks},()=>[AA]);else if(Array.isArray(AA)){if(AA.length!==fe)throw new Error(`\`decoder_start_token_id\` expcted to have length ${fe} but got ${AA.length}`);PA=AA}else PA=Array.from({length:fe},()=>[AA]);PA=Be(PA)}return rA.decoder_attention_mask=(0,P.ones_like)(PA),{input_ids:PA,model_inputs:LA}}async generate({inputs:fe=null,generation_config:We=null,logits_processor:rA=null,stopping_criteria:AA=null,streamer:uA=null,...kA}){this._validate_model_class(),We=this._prepare_generation_config(We,kA);let{inputs_tensor:PA,model_inputs:LA,model_input_name:ut}=this._prepare_model_inputs({inputs:fe,model_kwargs:kA});const bt=this.config.is_encoder_decoder;bt&&("encoder_outputs"in LA||(LA=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:PA,model_inputs:LA,model_input_name:ut,generation_config:We})));let ot;bt?{input_ids:ot,model_inputs:LA}=this._prepare_decoder_input_ids_for_generation({batch_size:LA[ut].dims.at(0),model_input_name:ut,model_kwargs:LA,decoder_start_token_id:We.decoder_start_token_id,bos_token_id:We.bos_token_id,generation_config:We}):ot=LA[ut];let Dt=ot.dims.at(-1);We.max_new_tokens!==null&&(We.max_length=Dt+We.max_new_tokens);const mt=this._get_logits_processor(We,Dt,rA),vt=this._get_stopping_criteria(We,AA),At=LA[ut].dims.at(0),Ft=ae.LogitsSampler.getSampler(We),ur=new Array(At).fill(0),Mr=ot.tolist();uA&&uA.put(Mr);let jr,Fr={};for(;;){if(LA=this.prepare_inputs_for_generation(Mr,LA,We),jr=await this.forward(LA),We.output_attentions&&We.return_dict_in_generate){const Va=this.getAttentions(jr);for(const Cs in Va)Cs in Fr||(Fr[Cs]=[]),Fr[Cs].push(Va[Cs])}const Tt=jr.logits.slice(null,-1,null),oa=mt(Mr,Tt),us=[];for(let Va=0;VaVa))break;LA=this._update_model_kwargs_for_generation({generated_input_ids:us,outputs:jr,model_inputs:LA,is_encoder_decoder:bt})}uA&&uA.end();const ra=this.getPastKeyValues(jr,LA.past_key_values,!0),ba=new P.Tensor("int64",Mr.flat(),[Mr.length,Mr[0].length]);if(We.return_dict_in_generate)return{sequences:ba,past_key_values:ra,...Fr};for(const Tt of Object.values(jr))Tt.location==="gpu-buffer"&&Tt.dispose();return ba}getPastKeyValues(fe,We,rA=!1){const AA=Object.create(null);for(const uA in fe)if(uA.startsWith("present")){const kA=uA.replace("present","past_key_values"),PA=uA.includes("encoder");if(PA&&We?AA[kA]=We[kA]:AA[kA]=fe[uA],We&&(!PA||rA)){const LA=We[kA];LA.location==="gpu-buffer"&&LA.dispose()}}return AA}getAttentions(fe){const We={};for(const rA of["cross_attentions","encoder_attentions","decoder_attentions"])for(const AA in fe)AA.startsWith(rA)&&(rA in We||(We[rA]=[]),We[rA].push(fe[AA]));return We}addPastKeyValues(fe,We){var rA,AA,uA;if(We)Object.assign(fe,We);else{const kA=this.sessions.decoder_model_merged??this.sessions.model,PA=((rA=kA==null?void 0:kA.config)==null?void 0:rA.kv_cache_dtype)??"float32",LA=PA==="float16"?new P.DataTypeMap.float16:[],ut=((uA=(AA=fe[this.main_input_name]??fe.attention_mask)==null?void 0:AA.dims)==null?void 0:uA[0])??1,bt=(0,g.getKeyValueShapes)(this.config,{batch_size:ut});for(const ot in bt)fe[ot]=new P.Tensor(PA,LA,bt[ot])}}async encode_image({pixel_values:fe}){const We=(await ce(this.sessions.vision_encoder,{pixel_values:fe})).image_features;return this.config.num_image_tokens||(console.warn(`The number of image tokens was not set in the model configuration. Setting it to the number of features detected by the vision encoder (${We.dims[1]}).`),this.config.num_image_tokens=We.dims[1]),We}async encode_text({input_ids:fe}){return(await ce(this.sessions.embed_tokens,{input_ids:fe})).inputs_embeds}async encode_audio({audio_values:fe}){return(await ce(this.sessions.audio_encoder,{audio_values:fe})).audio_features}}class aA{}class sA extends aA{constructor({last_hidden_state:Ae,hidden_states:fe=null,attentions:We=null}){super(),this.last_hidden_state=Ae,this.hidden_states=fe,this.attentions=We}}class gA extends we{}class dA extends gA{}class $ extends gA{async _call(Ae){return new va(await super._call(Ae))}}class mA extends gA{async _call(Ae){return new Et(await super._call(Ae))}}class EA extends gA{async _call(Ae){return new Ca(await super._call(Ae))}}class xe extends gA{async _call(Ae){return new Fa(await super._call(Ae))}}class OA extends we{}class pA extends OA{}class GA extends OA{async _call(Ae){return new va(await super._call(Ae))}}class VA extends OA{async _call(Ae){return new Et(await super._call(Ae))}}class $A extends OA{async _call(Ae){return new Ca(await super._call(Ae))}}class RA extends we{}class FA extends RA{}class oA extends we{}class et extends oA{}class It extends oA{async _call(Ae){return new va(await super._call(Ae))}}class dt extends oA{async _call(Ae){return new Et(await super._call(Ae))}}class gt extends oA{async _call(Ae){return new Ca(await super._call(Ae))}}class Ut extends oA{async _call(Ae){return new Fa(await super._call(Ae))}}class ua extends we{}class XA extends ua{}class rs extends ua{async _call(Ae){return new va(await super._call(Ae))}}class ge extends ua{async _call(Ae){return new Et(await super._call(Ae))}}class Re extends ua{async _call(Ae){return new Ca(await super._call(Ae))}}class me extends ua{async _call(Ae){return new Fa(await super._call(Ae))}}class ze extends we{}class $e extends ze{}class CA extends ze{async _call(Ae){return new va(await super._call(Ae))}}class eA extends ze{async _call(Ae){return new Et(await super._call(Ae))}}class ft extends ze{async _call(Ae){return new Ca(await super._call(Ae))}}class Qt extends ze{async _call(Ae){return new Fa(await super._call(Ae))}}class st extends we{}class wt extends st{}class JA extends st{async _call(Ae){return new va(await super._call(Ae))}}class zt extends st{async _call(Ae){return new Et(await super._call(Ae))}}class ir extends st{async _call(Ae){return new Ca(await super._call(Ae))}}class or extends st{async _call(Ae){return new Fa(await super._call(Ae))}}class HA extends we{}class br extends HA{}class fs extends HA{async _call(Ae){return new va(await super._call(Ae))}}class ws extends HA{async _call(Ae){return new Et(await super._call(Ae))}}class Ha extends HA{async _call(Ae){return new Ca(await super._call(Ae))}}class Qs extends HA{async _call(Ae){return new Fa(await super._call(Ae))}}class Da extends we{}class za extends Da{}class Ua extends Da{async _call(Ae){return new va(await super._call(Ae))}}class as extends Da{async _call(Ae){return new Et(await super._call(Ae))}}class Ht extends Da{async _call(Ae){return new Ca(await super._call(Ae))}}class ks extends Da{async _call(Ae){return new Fa(await super._call(Ae))}}class xr extends we{}class Ia extends xr{}class wa extends xr{async _call(Ae){return new Et(await super._call(Ae))}}class Es extends xr{async _call(Ae){return new Ca(await super._call(Ae))}}class sa extends xr{async _call(Ae){return new Fa(await super._call(Ae))}}class wA extends xr{async _call(Ae){return new va(await super._call(Ae))}}class DA extends we{}class qA extends DA{}class lr extends DA{async _call(Ae){return new va(await super._call(Ae))}}class Ka extends DA{async _call(Ae){return new Et(await super._call(Ae))}}class Xa extends DA{async _call(Ae){return new Ca(await super._call(Ae))}}class Ta extends we{}class Za extends Ta{}class Ja extends Ta{async _call(Ae){return new va(await super._call(Ae))}}class ct extends Ta{async _call(Ae){return new Et(await super._call(Ae))}}class mr extends Ta{async _call(Ae){return new Fa(await super._call(Ae))}}class ka extends we{}class ya extends ka{}class Ms extends ka{async _call(Ae){return new va(await super._call(Ae))}}class Ss extends ka{async _call(Ae){return new Et(await super._call(Ae))}}class $r extends ka{async _call(Ae){return new Ca(await super._call(Ae))}}class gs extends ka{async _call(Ae){return new Fa(await super._call(Ae))}}class vs extends we{}class Na extends vs{}class Mi extends vs{async _call(Ae){return new va(await super._call(Ae))}}class Fs extends vs{async _call(Ae){return new Et(await super._call(Ae))}}class Ga extends vs{async _call(Ae){return new Fa(await super._call(Ae))}}class La extends we{}class He extends La{}class se extends La{async _call(Ae){return new Et(await super._call(Ae))}}class ke extends La{async _call(Ae){return new Fa(await super._call(Ae))}}class Pe extends La{async _call(Ae){return new va(await super._call(Ae))}}class Fe extends we{constructor(){super(...arguments);_e(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class Ke extends Fe{}class lA extends Fe{}class yA extends we{}class zA extends yA{}class SA extends yA{}class cA extends we{}class ht extends cA{}class Ot extends cA{}class _t extends we{}class Br extends _t{}class Jt extends _t{}class Wr extends _t{async _call(Ae){return new Et(await super._call(Ae))}}class cr extends we{}class Vr extends cr{}class da extends cr{}class Yr extends cr{async _call(Ae){return new Et(await super._call(Ae))}}class ea extends cr{}class qt extends we{}class _r extends qt{}class zr extends qt{}class Kt extends we{}class Pr extends Kt{}class fa extends Kt{}class Hr extends we{}class Ir extends Hr{}class Cr extends Hr{async _call(Ae){return new va(await super._call(Ae))}}class Dr extends Hr{async _call(Ae){return new Et(await super._call(Ae))}}class UA extends Hr{async _call(Ae){return new Ca(await super._call(Ae))}}class jt extends Hr{async _call(Ae){return new Fa(await super._call(Ae))}}class wr extends we{}class Pa extends wr{}class bn extends wr{async _call(Ae){return new va(await super._call(Ae))}}class vi extends wr{async _call(Ae){return new Et(await super._call(Ae))}}class In extends wr{async _call(Ae){return new Ca(await super._call(Ae))}}class Os extends wr{async _call(Ae){return new Fa(await super._call(Ae))}}class _s extends we{}class Ri extends _s{}class Wi extends _s{async _call(Ae){return new va(await super._call(Ae))}}class zs extends _s{async _call(Ae){return new Et(await super._call(Ae))}}class Ur extends _s{async _call(Ae){return new Ca(await super._call(Ae))}}class _A extends _s{async _call(Ae){return new Fa(await super._call(Ae))}}class Ea extends we{}class wn extends Ea{}class Ns extends Ea{}class kn extends we{constructor(){super(...arguments);_e(this,"requires_attention_mask",!1);_e(this,"main_input_name","input_features");_e(this,"forward_params",["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class so extends kn{}class Vi extends kn{_prepare_generation_config(Ae,fe){return super._prepare_generation_config(Ae,fe,V.WhisperGenerationConfig)}_retrieve_init_tokens(Ae){const fe=[Ae.decoder_start_token_id];let We=Ae.language;const rA=Ae.task;if(Ae.is_multilingual){We||(console.warn("No language specified - defaulting to English (en)."),We="en");const uA=`<|${(0,ee.whisper_language_to_code)(We)}|>`;fe.push(Ae.lang_to_id[uA]),fe.push(Ae.task_to_id[rA??"transcribe"])}else if(We||rA)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!Ae.return_timestamps&&Ae.no_timestamps_token_id&&fe.at(-1)!==Ae.no_timestamps_token_id?fe.push(Ae.no_timestamps_token_id):Ae.return_timestamps&&fe.at(-1)===Ae.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),fe.pop()),fe.filter(AA=>AA!=null)}async generate({inputs:Ae=null,generation_config:fe=null,logits_processor:We=null,stopping_criteria:rA=null,...AA}){fe=this._prepare_generation_config(fe,AA);const uA=AA.decoder_input_ids??this._retrieve_init_tokens(fe);if(fe.return_timestamps&&(We??(We=new S.LogitsProcessorList),We.push(new S.WhisperTimeStampLogitsProcessor(fe,uA))),fe.begin_suppress_tokens&&(We??(We=new S.LogitsProcessorList),We.push(new S.SuppressTokensAtBeginLogitsProcessor(fe.begin_suppress_tokens,uA.length))),fe.return_token_timestamps){if(!fe.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");fe.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),fe.output_attentions=!0,fe.return_dict_in_generate=!0}const kA=await super.generate({inputs:Ae,generation_config:fe,logits_processor:We,decoder_input_ids:uA,...AA});return fe.return_token_timestamps&&(kA.token_timestamps=this._extract_token_timestamps(kA,fe.alignment_heads,fe.num_frames)),kA}_extract_token_timestamps(Ae,fe,We=null,rA=.02){if(!Ae.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");We==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let AA=this.config.median_filter_width;AA===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),AA=7);const uA=Ae.cross_attentions,kA=Array.from({length:this.config.decoder_layers},(vt,At)=>(0,P.cat)(uA.map(Ft=>Ft[At]),2)),PA=(0,P.stack)(fe.map(([vt,At])=>{if(vt>=kA.length)throw new Error(`Layer index ${vt} is out of bounds for cross attentions (length ${kA.length}).`);return We?kA[vt].slice(null,At,null,[0,We]):kA[vt].slice(null,At)})).transpose(1,0,2,3),[LA,ut]=(0,P.std_mean)(PA,-2,0,!0),bt=PA.clone();for(let vt=0;vtFt[ba+1]-Ft[ba]),jr=(0,M.mergeArrays)([1],Mr).map(ra=>!!ra),Fr=[];for(let ra=0;raot.findIndex(Dt=>Dt==AA)),PA=kA.every(ot=>ot===-1),LA=kA.every(ot=>ot!==-1);if(!PA&&!LA)throw new Error("Every input should contain either 0 or 1 image token.");if(PA)return{inputs_embeds:Ae,attention_mask:rA};const ut=[],bt=[];for(let ot=0;otArray.from({length:Ae.dims[0]},Mr=>Array.from({length:Ae.dims[1]},jr=>1))),mt=fe?fe.tolist():[],vt=We?We.tolist():[];let At=0,Ft=0;for(let ur=0;urot[ur][la]==1),Fr=Mr.reduce((vr,la,Li)=>(la==PA&&vr.push(Li),vr),[]).map(vr=>Mr[vr+1]),ra=Fr.filter(vr=>vr==uA).length,ba=Fr.filter(vr=>vr==kA).length;let Tt=[],oa=0,us=ra,on=ba;for(let vr=0;vrDs>oa&&un==uA),Li=Mr.findIndex((un,Ds)=>Ds>oa&&un==kA),cn=us>0&&la!==-1?la:Mr.length+1,Zn=on>0&&Li!==-1?Li:Mr.length+1;let G0,vc,yc,xc;cn0?(0,L.max)(Tt.at(-1))[0]+1:0;Tt.push(Array.from({length:3*Dc},(un,Ds)=>du+Ds%Dc));const Tc=Dc+du,Q0=td*Bc*P0,rd=Array.from({length:Q0},(un,Ds)=>Tc+Math.floor(Ds/(Bc*P0))),ad=Array.from({length:Q0},(un,Ds)=>Tc+Math.floor(Ds/P0)%Bc),sd=Array.from({length:Q0},(un,Ds)=>Tc+Ds%P0);Tt.push([rd,ad,sd].flat()),oa=G0+Q0}if(oa0?(0,L.max)(Tt.at(-1))[0]+1:0,la=Mr.length-oa;Tt.push(Array.from({length:3*la},(Li,cn)=>vr+cn%la))}const Va=Tt.reduce((vr,la)=>vr+la.length,0),Cs=new Array(Va);let B0=0;for(let vr=0;vr<3;++vr)for(let la=0;labt[At%bt.length]),mt=Array.from({length:ot[0]},(vt,At)=>(0,L.max)(bt.subarray(ot[1]*At,ot[1]*(At+1)))[0]+1n+BigInt(ot[1]));return[new P.Tensor("int64",Dt,[3,...ot]),new P.Tensor("int64",mt,[mt.length,1])]}else{const[bt,ot]=Ae.dims,Dt=BigInt64Array.from({length:3*bt*ot},(mt,vt)=>BigInt(Math.floor(vt%ot/bt)));return[new P.Tensor("int64",Dt,[3,...Ae.dims]),(0,P.zeros)([bt,1])]}}async encode_image({pixel_values:Ae,image_grid_thw:fe}){return(await ce(this.sessions.vision_encoder,{pixel_values:Ae,grid_thw:fe})).image_features}_merge_input_ids_with_image_features(Ae){return le({image_token_id:this.config.image_token_id,...Ae})}prepare_inputs_for_generation(Ae,fe,We){if(fe.attention_mask&&!fe.position_ids)if(!fe.past_key_values)[fe.position_ids,fe.rope_deltas]=this.get_rope_index(fe.input_ids,fe.image_grid_thw,fe.video_grid_thw,fe.attention_mask);else{fe.pixel_values=null;const rA=BigInt(Object.values(fe.past_key_values)[0].dims.at(-2)),AA=fe.rope_deltas.map(uA=>rA+uA);fe.position_ids=(0,P.stack)([AA,AA,AA],0)}return fe}}class $i extends we{}class Mo extends $i{}class Vs extends $i{}class Ra extends we{}class Rn extends Ra{}class en extends Ra{}class Lr extends we{}class Wt extends Lr{}class ii extends Lr{}class ni extends we{}class ye extends ni{}class vo extends ni{}class An extends we{}class Wn extends An{}class Ni extends An{}class oi extends we{}class Sa extends oi{}class xs extends oi{async _call(Ae){return new Et(await super._call(Ae))}}class li extends we{}class Xr extends li{}class tn extends li{async _call(Ae){return new Et(await super._call(Ae))}}class Vn extends we{}class Ys extends Vn{}class rn extends we{}class ci extends rn{}class rt extends rn{async _call(Ae){return new Et(await super._call(Ae))}}class A extends we{}class t extends A{}class r extends we{}class a extends r{}class o extends r{async _call(Ae){return new Et(await super._call(Ae))}}class l extends we{}class c extends l{}class f extends we{}class m extends f{}class E extends f{async _call(Ae){return new Et(await super._call(Ae))}}class w extends we{}class B extends w{async _call(Ae){return new cu(await super._call(Ae))}}class _ extends we{}class W extends _{}class X extends _{async _call(Ae){return new Et(await super._call(Ae))}}class q extends we{}class re extends q{}class ue extends q{async _call(Ae){return new Et(await super._call(Ae))}}class J extends we{}class Me extends J{}class Ge extends J{}class ne extends we{}class Ye extends ne{}class de extends ne{}class iA extends we{}class bA extends iA{}class MA extends iA{async _call(Ae){return new Et(await super._call(Ae))}}class jA extends we{}class WA extends jA{}class it extends jA{async _call(Ae){return new Gt(await super._call(Ae))}}class kt extends jA{async _call(Ae){return new Nt(await super._call(Ae))}}class Gt extends aA{constructor({logits:Ae,pred_boxes:fe}){super(),this.logits=Ae,this.pred_boxes=fe}}class Nt extends aA{constructor({logits:Ae,pred_boxes:fe,pred_masks:We}){super(),this.logits=Ae,this.pred_boxes=fe,this.pred_masks=We}}class Xt extends we{}class tr extends Xt{}class pr extends Xt{async _call(Ae){return new rr(await super._call(Ae))}}class rr extends aA{constructor({logits:Ae,pred_boxes:fe}){super(),this.logits=Ae,this.pred_boxes=fe}}class Er extends we{}class Sr extends Er{}class Zr extends Er{async _call(Ae){return new Aa(await super._call(Ae))}}class Aa extends rr{}class ta extends we{}class ma extends ta{}class $a extends ta{async _call(Ae){return new es(await super._call(Ae))}}class es extends rr{}class Wa extends we{}class Hs extends Wa{}class ui extends Wa{async _call(Ae){return new rr(await super._call(Ae))}}class Bs extends we{}class di extends Bs{}class fi extends Bs{async _call(Ae){return new Yn(await super._call(Ae))}}class Yn extends Gt{}class an extends we{}class Hn extends an{}class Un extends an{async _call(Ae){return new Et(await super._call(Ae))}}class a0 extends we{}class U0 extends a0{}class K0 extends a0{async _call(Ae){return new Et(await super._call(Ae))}}class s0 extends we{}class X0 extends s0{}class Z0 extends s0{async _call(Ae){return new Et(await super._call(Ae))}}class yo extends we{}class J0 extends yo{}class q0 extends yo{async _call(Ae){return new Et(await super._call(Ae))}}class $0 extends yo{}class i0 extends we{}class el extends i0{}class Al extends i0{}class n0 extends we{}class tl extends n0{}class rl extends n0{}class al extends we{}class sl extends al{}class xo extends we{}class il extends xo{}class nl extends xo{}class ol extends xo{}class ll extends we{}class cl extends ll{}class ul extends we{}class dl extends ul{}class fl extends we{}class gl extends fl{}class o0 extends we{}class pl extends o0{}class hl extends o0{}class l0 extends we{}class ml extends l0{}class Cl extends l0{}class bl extends we{}class Il extends bl{}class c0 extends we{}class wl extends c0{}class kl extends c0{async _call(Ae){return new Et(await super._call(Ae))}}class u0 extends we{}class El extends u0{}class Ml extends u0{async _call(Ae){return new Et(await super._call(Ae))}}class d0 extends we{}class vl extends d0{}class yl extends d0{async _call(Ae){return new Et(await super._call(Ae))}}class f0 extends we{}class xl extends f0{}class Bl extends f0{async _call(Ae){return new Et(await super._call(Ae))}}class Dl extends we{}class Tl extends Dl{}class g0 extends we{}class Gl extends g0{}class Pl extends g0{async _call(Ae){return new Ql(await super._call(Ae))}}class Ql extends aA{constructor({logits:Ae,pred_boxes:fe}){super(),this.logits=Ae,this.pred_boxes=fe}}class Sl extends we{}class Fl extends Sl{async get_image_embeddings({pixel_values:Ae}){return await Se(this,{pixel_values:Ae})}async forward(Ae){if((!Ae.image_embeddings||!Ae.image_positional_embeddings)&&(Ae={...Ae,...await this.get_image_embeddings(Ae)}),!Ae.input_labels&&Ae.input_points){const We=Ae.input_points.dims.slice(0,-1),rA=We.reduce((AA,uA)=>AA*uA,1);Ae.input_labels=new P.Tensor("int64",new BigInt64Array(rA).fill(1n),We)}const fe={image_embeddings:Ae.image_embeddings,image_positional_embeddings:Ae.image_positional_embeddings};return Ae.input_points&&(fe.input_points=Ae.input_points),Ae.input_labels&&(fe.input_labels=Ae.input_labels),Ae.input_boxes&&(fe.input_boxes=Ae.input_boxes),await ce(this.sessions.prompt_encoder_mask_decoder,fe)}async _call(Ae){return new Ol(await super._call(Ae))}}class Ol extends aA{constructor({iou_scores:Ae,pred_masks:fe}){super(),this.iou_scores=Ae,this.pred_masks=fe}}class p0 extends we{}class _l extends p0{}class zl extends p0{}class h0 extends we{}class Nl extends h0{}class Ll extends h0{}class gi extends we{}class jl extends gi{}class Rl extends gi{async _call(Ae){return new nn(await super._call(Ae))}}class Wl extends gi{async _call(Ae){return new Et(await super._call(Ae))}}class Vl extends gi{async _call(Ae){return new Ca(await super._call(Ae))}}class m0 extends we{}class Yl extends m0{}class Hl extends m0{async _call(Ae){return new Ca(await super._call(Ae))}}class Ul extends we{}class Kl extends Ul{}class Bo extends we{}class Xl extends Bo{}class Zl extends Bo{async _call(Ae){return new nn(await super._call(Ae))}}class Jl extends Bo{async _call(Ae){return new Et(await super._call(Ae))}}class Kn extends we{}class ql extends Kn{}class $l extends Kn{async _call(Ae){return new nn(await super._call(Ae))}}class e2 extends Kn{async _call(Ae){return new Et(await super._call(Ae))}}class A2 extends Kn{async _call(Ae){return new Ca(await super._call(Ae))}}class Do extends we{}class t2 extends Do{}class r2 extends Do{async _call(Ae){return new nn(await super._call(Ae))}}class a2 extends Do{async _call(Ae){return new Et(await super._call(Ae))}}class A1 extends we{}class s2 extends gi{}class i2 extends gi{async _call(Ae){return new nn(await super._call(Ae))}}class n2 extends gi{async _call(Ae){return new Et(await super._call(Ae))}}class sn extends we{}class o2 extends sn{}class l2 extends sn{async _call(Ae){return new nn(await super._call(Ae))}}class c2 extends sn{async _call(Ae){return new Et(await super._call(Ae))}}class u2 extends sn{async _call(Ae){return new lu(await super._call(Ae))}}class d2 extends sn{async _call(Ae){return new Ca(await super._call(Ae))}}class f2 extends we{}class g2 extends f2{}class To extends we{}class t1 extends To{}class p2 extends To{}class h2 extends To{async generate_speech(Ae,fe,{threshold:We=.5,minlenratio:rA=0,maxlenratio:AA=20,vocoder:uA=null}={}){const kA={input_ids:Ae},{encoder_outputs:PA,encoder_attention_mask:LA}=await Se(this,kA),ut=PA.dims[1]/this.config.reduction_factor,bt=Math.floor(ut*AA),ot=Math.floor(ut*rA),Dt=this.config.num_mel_bins;let mt=[],vt=null,At=null,Ft=0;for(;;){++Ft;const jr=Qe(!!At);let Fr;At?Fr=At.output_sequence_out:Fr=new P.Tensor("float32",new Float32Array(Dt),[1,1,Dt]);let ra={use_cache_branch:jr,output_sequence:Fr,encoder_attention_mask:LA,speaker_embeddings:fe,encoder_hidden_states:PA};this.addPastKeyValues(ra,vt),At=await ce(this.sessions.decoder_model_merged,ra),vt=this.getPastKeyValues(At,vt);const{prob:ba,spectrum:Tt}=At;if(mt.push(Tt),Ft>=ot&&(Array.from(ba.data).filter(oa=>oa>=We).length>0||Ft>=bt))break}const ur=(0,P.cat)(mt),{waveform:Mr}=await ce(uA.sessions.model,{spectrogram:ur});return{spectrogram:ur,waveform:Mr}}}class m2 extends we{constructor(){super(...arguments);_e(this,"main_input_name","spectrogram")}}class C2 extends we{}class b2 extends C2{}class C0 extends we{}class I2 extends C0{}class w2 extends C0{}class b0 extends we{}class k2 extends b0{}class E2 extends b0{}class I0 extends we{}class M2 extends I0{}class v2 extends I0{}class Go extends we{}class y2 extends Go{}class x2 extends Go{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"text_model"})}}class B2 extends Go{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"audio_model"})}}class D2 extends we{}class w0 extends D2{async _call(Ae){return new uu(await super._call(Ae))}}class Po extends we{}class r1 extends Po{}class T2 extends Po{}class G2 extends Po{}class k0 extends we{}class P2 extends k0{}class Q2 extends k0{}class E0 extends we{}class S2 extends E0{}class F2 extends E0{async _call(Ae){return new Et(await super._call(Ae))}}class M0 extends we{}class a1 extends M0{}class s1 extends M0{}class v0 extends we{constructor(){super(...arguments);_e(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}_apply_and_filter_by_delay_pattern_mask(fe){const[We,rA]=fe.dims,AA=this.config.decoder.num_codebooks,uA=rA-AA;let kA=0;for(let ut=0;ut0&&Dt<=uA&&(fe.data[kA++]=fe.data[ut])}const PA=Math.floor(We/AA),LA=kA/(PA*AA);return new P.Tensor(fe.type,fe.data.slice(0,kA),[PA,AA,LA])}prepare_inputs_for_generation(fe,We,rA){let AA=structuredClone(fe);for(let kA=0;kA=PA&&(AA[kA][PA]=BigInt(this.config.decoder.pad_token_id));return rA.guidance_scale!==null&&rA.guidance_scale>1&&(AA=AA.concat(AA)),super.prepare_inputs_for_generation(AA,We,rA)}async generate(fe){const We=await super.generate(fe),rA=this._apply_and_filter_by_delay_pattern_mask(We).unsqueeze_(0),{audio_values:AA}=await ce(this.sessions.encodec_decode,{audio_codes:rA});return AA}}class Qo extends we{}class O2 extends Qo{}class _2 extends Qo{async _call(Ae){return new Et(await super._call(Ae))}}class z2 extends Qo{}class So extends we{}class N2 extends So{}class L2 extends So{async _call(Ae){return new Et(await super._call(Ae))}}class j2 extends So{}class Fo extends we{}class R2 extends Fo{}class W2 extends Fo{async _call(Ae){return new Et(await super._call(Ae))}}class V2 extends Fo{}class Oo extends we{}class Y2 extends Oo{}class H2 extends Oo{async _call(Ae){return new Et(await super._call(Ae))}}class U2 extends Oo{}class K2 extends we{}class X2 extends K2{}class Z2 extends we{}class J2 extends Z2{constructor(...fe){super(...fe);_e(this,"forward_params",["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"]);this._generation_mode="text"}async forward(fe){const We=this._generation_mode??"text";let rA;if(We==="text"||!fe.past_key_values){const LA=this.sessions.prepare_inputs_embeds,ut=(0,M.pick)(fe,LA.inputNames);rA=await ce(LA,ut)}else{const LA=this.sessions.gen_img_embeds,ut=(0,M.pick)({image_ids:fe.input_ids},LA.inputNames);rA=await ce(LA,ut)}const AA={...fe,...rA},uA=await Xe(this,AA),kA=this.sessions[We==="text"?"lm_head":"gen_head"];if(!kA)throw new Error(`Unable to find "${kA}" generation head`);const PA=await ce(kA,(0,M.pick)(uA,kA.inputNames));return{...rA,...uA,...PA}}async generate(fe){return this._generation_mode="text",super.generate(fe)}async generate_images(fe){this._generation_mode="image";const We=(fe.inputs??fe[this.main_input_name]).dims[1],AA=(await super.generate(fe)).slice(null,[We,null]),uA=this.sessions.image_decode,{decoded_image:kA}=await ce(uA,{generated_tokens:AA}),PA=kA.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),LA=[];for(const ut of PA){const bt=j.RawImage.fromTensor(ut);LA.push(bt)}return LA}}class q2 extends aA{constructor({char_logits:Ae,bpe_logits:fe,wp_logits:We}){super(),this.char_logits=Ae,this.bpe_logits=fe,this.wp_logits=We}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class $2 extends we{}class ec extends $2{async _call(Ae){return new q2(await super._call(Ae))}}class y0 extends we{}class Ac extends y0{}class tc extends y0{}class x0 extends we{}class rc extends x0{}class ac extends x0{}class sc extends we{constructor(){super(...arguments);_e(this,"forward_params",["input_ids","attention_mask","position_ids","audio_values","past_key_values"])}}class ic extends sc{_merge_input_ids_with_audio_features(Ae){const fe=Ae.audio_features.dims.at(-1),We=Ae.audio_features.view(-1,fe);return Ie({audio_token_id:this.config.ignore_index,...Ae,audio_features:We})}}class _o extends we{constructor(){super(...arguments);_e(this,"main_input_name","input_values");_e(this,"forward_params",["input_values"])}}class nc extends aA{constructor({audio_codes:Ae}){super(),this.audio_codes=Ae}}class oc extends aA{constructor({audio_values:Ae}){super(),this.audio_values=Ae}}class lc extends _o{async encode(Ae){return new nc(await ce(this.sessions.encoder_model,Ae))}async decode(Ae){return new oc(await ce(this.sessions.decoder_model,Ae))}}class cc extends _o{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"encoder_model"})}}class uc extends _o{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"decoder_model"})}}class zo extends we{constructor(){super(...arguments);_e(this,"main_input_name","input_values");_e(this,"forward_params",["input_values"])}}class dc extends aA{constructor({audio_codes:Ae}){super(),this.audio_codes=Ae}}class fc extends aA{constructor({audio_values:Ae}){super(),this.audio_values=Ae}}class gc extends zo{async encode(Ae){return new dc(await ce(this.sessions.encoder_model,Ae))}async decode(Ae){return new fc(await ce(this.sessions.decoder_model,Ae))}}class pc extends zo{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"encoder_model"})}}class hc extends zo{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"decoder_model"})}}class No extends we{constructor(){super(...arguments);_e(this,"main_input_name","input_values");_e(this,"forward_params",["input_values"])}}class mc extends No{async encode(Ae){return await ce(this.sessions.encoder_model,Ae)}async decode(Ae){return await ce(this.sessions.decoder_model,Ae)}}class Cc extends No{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"encoder_model"})}}class bc extends No{static async from_pretrained(Ae,fe={}){return super.from_pretrained(Ae,{...fe,model_file_name:fe.model_file_name??"decoder_model"})}}class Vt{static async from_pretrained(Ae,{progress_callback:fe=null,config:We=null,cache_dir:rA=null,local_files_only:AA=!1,revision:uA="main",model_file_name:kA=null,subfolder:PA="onnx",device:LA=null,dtype:ut=null,use_external_data_format:bt=null,session_options:ot={}}={}){const Dt={progress_callback:fe,config:We,cache_dir:rA,local_files_only:AA,revision:uA,model_file_name:kA,subfolder:PA,device:LA,dtype:ut,use_external_data_format:bt,session_options:ot};if(Dt.config=await g.AutoConfig.from_pretrained(Ae,Dt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);const mt=Dt.config.model_type;for(const vt of this.MODEL_CLASS_MAPPINGS){let At=vt.get(mt);if(!At){for(const Ft of vt.values())if(Ft[0]===mt){At=Ft;break}if(!At)continue}return await At[1].from_pretrained(Ae,Dt)}if(this.BASE_IF_FAIL)return P1.has(mt)||console.warn(`Unknown model class "${mt}", attempting to construct from base class.`),await we.from_pretrained(Ae,Dt);throw Error(`Unsupported model type: ${mt}`)}}_e(Vt,"MODEL_CLASS_MAPPINGS",null),_e(Vt,"BASE_IF_FAIL",!1);const i1=new Map([["bert",["BertModel",dA]],["modernbert",["ModernBertModel",pA]],["nomic_bert",["NomicBertModel",FA]],["roformer",["RoFormerModel",et]],["electra",["ElectraModel",$e]],["esm",["EsmModel",qA]],["convbert",["ConvBertModel",XA]],["camembert",["CamembertModel",wt]],["deberta",["DebertaModel",br]],["deberta-v2",["DebertaV2Model",za]],["mpnet",["MPNetModel",ya]],["albert",["AlbertModel",He]],["distilbert",["DistilBertModel",Ia]],["roberta",["RobertaModel",Ir]],["xlm",["XLMModel",Pa]],["xlm-roberta",["XLMRobertaModel",Ri]],["clap",["ClapModel",y2]],["clip",["CLIPModel",Ui]],["clipseg",["CLIPSegModel",uo]],["chinese_clip",["ChineseCLIPModel",ys]],["siglip",["SiglipModel",kr]],["jina_clip",["JinaCLIPModel",Bn]],["mobilebert",["MobileBertModel",Za]],["squeezebert",["SqueezeBertModel",Na]],["wav2vec2",["Wav2Vec2Model",jl]],["wav2vec2-bert",["Wav2Vec2BertModel",t2]],["unispeech",["UniSpeechModel",Xl]],["unispeech-sat",["UniSpeechSatModel",ql]],["hubert",["HubertModel",s2]],["wavlm",["WavLMModel",o2]],["audio-spectrogram-transformer",["ASTModel",wn]],["vits",["VitsModel",w0]],["pyannote",["PyAnnoteModel",Yl]],["wespeaker-resnet",["WeSpeakerResNetModel",Kl]],["detr",["DetrModel",WA]],["rt_detr",["RTDetrModel",tr]],["rt_detr_v2",["RTDetrV2Model",Sr]],["rf_detr",["RFDetrModel",ma]],["d_fine",["DFineModel",Hs]],["table-transformer",["TableTransformerModel",di]],["vit",["ViTModel",Sa]],["ijepa",["IJepaModel",Xr]],["pvt",["PvtModel",ci]],["vit_msn",["ViTMSNModel",a]],["vit_mae",["ViTMAEModel",t]],["groupvit",["GroupViTModel",c]],["fastvit",["FastViTModel",m]],["mobilevit",["MobileViTModel",W]],["mobilevitv2",["MobileViTV2Model",re]],["owlvit",["OwlViTModel",Me]],["owlv2",["Owlv2Model",Ye]],["beit",["BeitModel",bA]],["deit",["DeiTModel",Hn]],["hiera",["HieraModel",U0]],["convnext",["ConvNextModel",wl]],["convnextv2",["ConvNextV2Model",El]],["dinov2",["Dinov2Model",vl]],["dinov2_with_registers",["Dinov2WithRegistersModel",xl]],["resnet",["ResNetModel",X0]],["swin",["SwinModel",J0]],["swin2sr",["Swin2SRModel",el]],["donut-swin",["DonutSwinModel",Il]],["yolos",["YolosModel",Gl]],["dpt",["DPTModel",tl]],["glpn",["GLPNModel",ml]],["hifigan",["SpeechT5HifiGan",m2]],["efficientnet",["EfficientNetModel",S2]],["decision_transformer",["DecisionTransformerModel",X2]],["patchtst",["PatchTSTForPrediction",Ac]],["patchtsmixer",["PatchTSMixerForPrediction",rc]],["mobilenet_v1",["MobileNetV1Model",O2]],["mobilenet_v2",["MobileNetV2Model",N2]],["mobilenet_v3",["MobileNetV3Model",R2]],["mobilenet_v4",["MobileNetV4Model",Y2]],["maskformer",["MaskFormerModel",pl]],["mgp-str",["MgpstrForSceneTextRecognition",ec]],["style_text_to_speech_2",["StyleTextToSpeech2Model",g2]]]),Uu=new Map([["t5",["T5Model",Ke]],["longt5",["LongT5Model",zA]],["mt5",["MT5Model",ht]],["bart",["BartModel",Br]],["mbart",["MBartModel",Vr]],["marian",["MarianModel",_l]],["whisper",["WhisperModel",so]],["m2m_100",["M2M100Model",Nl]],["blenderbot",["BlenderbotModel",_r]],["blenderbot-small",["BlenderbotSmallModel",Pr]]]),Ku=new Map([["mimi",["MimiModel",lc]],["dac",["DacModel",gc]],["snac",["SnacModel",mc]]]),Xu=new Map([["bloom",["BloomModel",Wt]],["jais",["JAISModel",go]],["gpt2",["GPT2Model",Js]],["gptj",["GPTJModel",$s]],["gpt_bigcode",["GPTBigCodeModel",Qr]],["gpt_neo",["GPTNeoModel",Tn]],["gpt_neox",["GPTNeoXModel",ns]],["codegen",["CodeGenModel",os]],["llama",["LlamaModel",po]],["exaone",["ExaoneModel",Qn]],["olmo",["OlmoModel",On]],["olmo2",["Olmo2Model",ti]],["mobilellm",["MobileLLMModel",ls]],["granite",["GraniteModel",Fi]],["cohere",["CohereModel",_i]],["gemma",["GemmaModel",zn]],["gemma2",["Gemma2Model",ri]],["gemma3_text",["Gemma3Model",Io]],["helium",["HeliumModel",Pi]],["glm",["GlmModel",ei]],["openelm",["OpenELMModel",na]],["qwen2",["Qwen2Model",wo]],["qwen3",["Qwen3Model",Ws]],["phi",["PhiModel",Mo]],["phi3",["Phi3Model",Rn]],["mpt",["MptModel",ye]],["opt",["OPTModel",Wn]],["mistral",["MistralModel",I2]],["starcoder2",["Starcoder2Model",k2]],["falcon",["FalconModel",M2]],["stablelm",["StableLmModel",P2]]]),Ic=new Map([["speecht5",["SpeechT5ForSpeechToText",p2]],["whisper",["WhisperForConditionalGeneration",Vi]],["lite-whisper",["LiteWhisperForConditionalGeneration",io]],["moonshine",["MoonshineForConditionalGeneration",Rt]]]),n1=new Map([["speecht5",["SpeechT5ForTextToSpeech",h2]]]),o1=new Map([["vits",["VitsModel",w0]],["musicgen",["MusicgenForConditionalGeneration",v0]]]),l1=new Map([["bert",["BertForSequenceClassification",mA]],["modernbert",["ModernBertForSequenceClassification",VA]],["roformer",["RoFormerForSequenceClassification",dt]],["electra",["ElectraForSequenceClassification",eA]],["esm",["EsmForSequenceClassification",Ka]],["convbert",["ConvBertForSequenceClassification",ge]],["camembert",["CamembertForSequenceClassification",zt]],["deberta",["DebertaForSequenceClassification",ws]],["deberta-v2",["DebertaV2ForSequenceClassification",as]],["mpnet",["MPNetForSequenceClassification",Ss]],["albert",["AlbertForSequenceClassification",se]],["distilbert",["DistilBertForSequenceClassification",wa]],["roberta",["RobertaForSequenceClassification",Dr]],["xlm",["XLMForSequenceClassification",vi]],["xlm-roberta",["XLMRobertaForSequenceClassification",zs]],["bart",["BartForSequenceClassification",Wr]],["mbart",["MBartForSequenceClassification",Yr]],["mobilebert",["MobileBertForSequenceClassification",ct]],["squeezebert",["SqueezeBertForSequenceClassification",Fs]]]),c1=new Map([["bert",["BertForTokenClassification",EA]],["modernbert",["ModernBertForTokenClassification",$A]],["roformer",["RoFormerForTokenClassification",gt]],["electra",["ElectraForTokenClassification",ft]],["esm",["EsmForTokenClassification",Xa]],["convbert",["ConvBertForTokenClassification",Re]],["camembert",["CamembertForTokenClassification",ir]],["deberta",["DebertaForTokenClassification",Ha]],["deberta-v2",["DebertaV2ForTokenClassification",Ht]],["mpnet",["MPNetForTokenClassification",$r]],["distilbert",["DistilBertForTokenClassification",Es]],["roberta",["RobertaForTokenClassification",UA]],["xlm",["XLMForTokenClassification",In]],["xlm-roberta",["XLMRobertaForTokenClassification",Ur]]]),wc=new Map([["t5",["T5ForConditionalGeneration",lA]],["longt5",["LongT5ForConditionalGeneration",SA]],["mt5",["MT5ForConditionalGeneration",Ot]],["bart",["BartForConditionalGeneration",Jt]],["mbart",["MBartForConditionalGeneration",da]],["marian",["MarianMTModel",zl]],["m2m_100",["M2M100ForConditionalGeneration",Ll]],["blenderbot",["BlenderbotForConditionalGeneration",zr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",fa]]]),kc=new Map([["bloom",["BloomForCausalLM",ii]],["gpt2",["GPT2LMHeadModel",fo]],["jais",["JAISLMHeadModel",qs]],["gptj",["GPTJForCausalLM",Qa]],["gpt_bigcode",["GPTBigCodeForCausalLM",ms]],["gpt_neo",["GPTNeoForCausalLM",Nr]],["gpt_neox",["GPTNeoXForCausalLM",YA]],["codegen",["CodeGenForCausalLM",Pn]],["llama",["LlamaForCausalLM",Gi]],["exaone",["ExaoneForCausalLM",mo]],["olmo",["OlmoForCausalLM",Co]],["olmo2",["Olmo2ForCausalLM",Tr]],["mobilellm",["MobileLLMForCausalLM",Sn]],["granite",["GraniteForCausalLM",Oi]],["cohere",["CohereForCausalLM",_n]],["gemma",["GemmaForCausalLM",Nn]],["gemma2",["Gemma2ForCausalLM",bo]],["gemma3_text",["Gemma3ForCausalLM",ia]],["helium",["HeliumForCausalLM",ho]],["glm",["GlmForCausalLM",Ai]],["openelm",["OpenELMForCausalLM",jn]],["qwen2",["Qwen2ForCausalLM",Ar]],["qwen3",["Qwen3ForCausalLM",si]],["phi",["PhiForCausalLM",Vs]],["phi3",["Phi3ForCausalLM",en]],["mpt",["MptForCausalLM",vo]],["opt",["OPTForCausalLM",Ni]],["mbart",["MBartForCausalLM",ea]],["mistral",["MistralForCausalLM",w2]],["starcoder2",["Starcoder2ForCausalLM",E2]],["falcon",["FalconForCausalLM",v2]],["trocr",["TrOCRForCausalLM",b2]],["stablelm",["StableLmForCausalLM",Q2]],["phi3_v",["Phi3VForCausalLM",NA]]]),Zu=new Map([["multi_modality",["MultiModalityCausalLM",J2]]]),u1=new Map([["bert",["BertForMaskedLM",$]],["modernbert",["ModernBertForMaskedLM",GA]],["roformer",["RoFormerForMaskedLM",It]],["electra",["ElectraForMaskedLM",CA]],["esm",["EsmForMaskedLM",lr]],["convbert",["ConvBertForMaskedLM",rs]],["camembert",["CamembertForMaskedLM",JA]],["deberta",["DebertaForMaskedLM",fs]],["deberta-v2",["DebertaV2ForMaskedLM",Ua]],["mpnet",["MPNetForMaskedLM",Ms]],["albert",["AlbertForMaskedLM",Pe]],["distilbert",["DistilBertForMaskedLM",wA]],["roberta",["RobertaForMaskedLM",Cr]],["xlm",["XLMWithLMHeadModel",bn]],["xlm-roberta",["XLMRobertaForMaskedLM",Wi]],["mobilebert",["MobileBertForMaskedLM",Ja]],["squeezebert",["SqueezeBertForMaskedLM",Mi]]]),d1=new Map([["bert",["BertForQuestionAnswering",xe]],["roformer",["RoFormerForQuestionAnswering",Ut]],["electra",["ElectraForQuestionAnswering",Qt]],["convbert",["ConvBertForQuestionAnswering",me]],["camembert",["CamembertForQuestionAnswering",or]],["deberta",["DebertaForQuestionAnswering",Qs]],["deberta-v2",["DebertaV2ForQuestionAnswering",ks]],["mpnet",["MPNetForQuestionAnswering",gs]],["albert",["AlbertForQuestionAnswering",ke]],["distilbert",["DistilBertForQuestionAnswering",sa]],["roberta",["RobertaForQuestionAnswering",jt]],["xlm",["XLMForQuestionAnswering",Os]],["xlm-roberta",["XLMRobertaForQuestionAnswering",_A]],["mobilebert",["MobileBertForQuestionAnswering",mr]],["squeezebert",["SqueezeBertForQuestionAnswering",Ga]]]),Ec=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Hi]],["idefics3",["Idefics3ForConditionalGeneration",yi]],["smolvlm",["SmolVLMForConditionalGeneration",IA]]]),f1=new Map([["llava",["LlavaForConditionalGeneration",ps]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",Ls]],["moondream1",["Moondream1ForConditionalGeneration",ss]],["florence2",["Florence2ForConditionalGeneration",vn]],["qwen2-vl",["Qwen2VLForConditionalGeneration",Eo]],["idefics3",["Idefics3ForConditionalGeneration",yi]],["smolvlm",["SmolVLMForConditionalGeneration",IA]],["paligemma",["PaliGemmaForConditionalGeneration",yn]]]),g1=new Map([["ultravox",["UltravoxModel",ic]]]),Ju=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Hi]]]),p1=new Map([["vit",["ViTForImageClassification",xs]],["ijepa",["IJepaForImageClassification",tn]],["pvt",["PvtForImageClassification",rt]],["vit_msn",["ViTMSNForImageClassification",o]],["fastvit",["FastViTForImageClassification",E]],["mobilevit",["MobileViTForImageClassification",X]],["mobilevitv2",["MobileViTV2ForImageClassification",ue]],["beit",["BeitForImageClassification",MA]],["deit",["DeiTForImageClassification",Un]],["hiera",["HieraForImageClassification",K0]],["convnext",["ConvNextForImageClassification",kl]],["convnextv2",["ConvNextV2ForImageClassification",Ml]],["dinov2",["Dinov2ForImageClassification",yl]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Bl]],["resnet",["ResNetForImageClassification",Z0]],["swin",["SwinForImageClassification",q0]],["segformer",["SegformerForImageClassification",T2]],["efficientnet",["EfficientNetForImageClassification",F2]],["mobilenet_v1",["MobileNetV1ForImageClassification",_2]],["mobilenet_v2",["MobileNetV2ForImageClassification",L2]],["mobilenet_v3",["MobileNetV3ForImageClassification",W2]],["mobilenet_v4",["MobileNetV4ForImageClassification",H2]]]),h1=new Map([["detr",["DetrForObjectDetection",it]],["rt_detr",["RTDetrForObjectDetection",pr]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Zr]],["rf_detr",["RFDetrForObjectDetection",$a]],["d_fine",["DFineForObjectDetection",ui]],["table-transformer",["TableTransformerForObjectDetection",fi]],["yolos",["YolosForObjectDetection",Pl]]]),m1=new Map([["owlvit",["OwlViTForObjectDetection",Ge]],["owlv2",["Owlv2ForObjectDetection",de]],["grounding-dino",["GroundingDinoForObjectDetection",Tl]]]),Xn=new Map([["detr",["DetrForSegmentation",kt]],["clipseg",["CLIPSegForImageSegmentation",r0]]]),C1=new Map([["segformer",["SegformerForSemanticSegmentation",G2]],["sapiens",["SapiensForSemanticSegmentation",il]],["swin",["SwinForSemanticSegmentation",$0]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",z2]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",j2]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",V2]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",U2]]]),b1=new Map([["detr",["DetrForSegmentation",kt]],["maskformer",["MaskFormerForInstanceSegmentation",hl]]]),I1=new Map([["sam",["SamModel",Fl]]]),w1=new Map([["wav2vec2",["Wav2Vec2ForCTC",Rl]],["wav2vec2-bert",["Wav2Vec2BertForCTC",r2]],["unispeech",["UniSpeechForCTC",Zl]],["unispeech-sat",["UniSpeechSatForCTC",$l]],["wavlm",["WavLMForCTC",l2]],["hubert",["HubertForCTC",i2]]]),k1=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",Wl]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",a2]],["unispeech",["UniSpeechForSequenceClassification",Jl]],["unispeech-sat",["UniSpeechSatForSequenceClassification",e2]],["wavlm",["WavLMForSequenceClassification",c2]],["hubert",["HubertForSequenceClassification",n2]],["audio-spectrogram-transformer",["ASTForAudioClassification",Ns]]]),E1=new Map([["wavlm",["WavLMForXVector",u2]]]),M1=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",A2]],["wavlm",["WavLMForAudioFrameClassification",d2]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",Vl]],["pyannote",["PyAnnoteForAudioFrameClassification",Hl]]]),v1=new Map([["vitmatte",["VitMatteForImageMatting",B]]]),qu=new Map([["patchtst",["PatchTSTForPrediction",tc]],["patchtsmixer",["PatchTSMixerForPrediction",ac]]]),y1=new Map([["swin2sr",["Swin2SRForImageSuperResolution",Al]]]),x1=new Map([["dpt",["DPTForDepthEstimation",rl]],["depth_anything",["DepthAnythingForDepthEstimation",sl]],["glpn",["GLPNForDepthEstimation",Cl]],["sapiens",["SapiensForDepthEstimation",nl]],["depth_pro",["DepthProForDepthEstimation",cl]],["metric3d",["Metric3DForDepthEstimation",dl]],["metric3dv2",["Metric3Dv2ForDepthEstimation",gl]]]),B1=new Map([["sapiens",["SapiensForNormalEstimation",ol]]]),D1=new Map([["vitpose",["VitPoseForPoseEstimation",Ys]]]),T1=new Map([["clip",["CLIPVisionModelWithProjection",hs]],["siglip",["SiglipVisionModel",co]],["jina_clip",["JinaCLIPVisionModel",TA]]]),G1=[[i1,d.EncoderOnly],[Uu,d.EncoderDecoder],[Xu,d.DecoderOnly],[Ku,d.AutoEncoder],[l1,d.EncoderOnly],[c1,d.EncoderOnly],[wc,d.Seq2Seq],[Ic,d.Seq2Seq],[kc,d.DecoderOnly],[Zu,d.MultiModality],[u1,d.EncoderOnly],[d1,d.EncoderOnly],[Ec,d.Vision2Seq],[f1,d.ImageTextToText],[g1,d.AudioTextToText],[p1,d.EncoderOnly],[Xn,d.EncoderOnly],[b1,d.EncoderOnly],[C1,d.EncoderOnly],[v1,d.EncoderOnly],[qu,d.EncoderOnly],[y1,d.EncoderOnly],[x1,d.EncoderOnly],[B1,d.EncoderOnly],[D1,d.EncoderOnly],[h1,d.EncoderOnly],[m1,d.EncoderOnly],[I1,d.MaskGeneration],[w1,d.EncoderOnly],[k1,d.EncoderOnly],[n1,d.Seq2Seq],[o1,d.EncoderOnly],[E1,d.EncoderOnly],[M1,d.EncoderOnly],[T1,d.EncoderOnly]];for(const[U,Ae]of G1)for(const[fe,We]of U.values())v.set(fe,Ae),u.set(We,fe),e.set(fe,We);const $u=[["MusicgenForConditionalGeneration",v0,d.Musicgen],["Phi3VForCausalLM",NA,d.Phi3V],["CLIPTextModelWithProjection",Ma,d.EncoderOnly],["SiglipTextModel",lo,d.EncoderOnly],["JinaCLIPTextModel",Ti,d.EncoderOnly],["ClapTextModelWithProjection",x2,d.EncoderOnly],["ClapAudioModelWithProjection",B2,d.EncoderOnly],["DacEncoderModel",pc,d.EncoderOnly],["DacDecoderModel",hc,d.EncoderOnly],["MimiEncoderModel",cc,d.EncoderOnly],["MimiDecoderModel",uc,d.EncoderOnly],["SnacEncoderModel",Cc,d.EncoderOnly],["SnacDecoderModel",bc,d.EncoderOnly]];for(const[U,Ae,fe]of $u)v.set(U,fe),u.set(Ae,U),e.set(U,Ae);const P1=new Map([["modnet",Xn],["birefnet",Xn],["isnet",Xn],["ben",Xn]]);for(const[U,Ae]of P1.entries())Ae.set(U,["PreTrainedModel",we]),v.set(U,d.EncoderOnly),u.set(we,U),e.set(U,we);class Mc extends Vt{}_e(Mc,"MODEL_CLASS_MAPPINGS",G1.map(Ae=>Ae[0])),_e(Mc,"BASE_IF_FAIL",!0);class Q1 extends Vt{}_e(Q1,"MODEL_CLASS_MAPPINGS",[l1]);class S1 extends Vt{}_e(S1,"MODEL_CLASS_MAPPINGS",[c1]);class F1 extends Vt{}_e(F1,"MODEL_CLASS_MAPPINGS",[wc]);class O1 extends Vt{}_e(O1,"MODEL_CLASS_MAPPINGS",[Ic]);class _1 extends Vt{}_e(_1,"MODEL_CLASS_MAPPINGS",[n1]);class z1 extends Vt{}_e(z1,"MODEL_CLASS_MAPPINGS",[o1]);class N1 extends Vt{}_e(N1,"MODEL_CLASS_MAPPINGS",[kc]);class L1 extends Vt{}_e(L1,"MODEL_CLASS_MAPPINGS",[u1]);class j1 extends Vt{}_e(j1,"MODEL_CLASS_MAPPINGS",[d1]);class R1 extends Vt{}_e(R1,"MODEL_CLASS_MAPPINGS",[Ec]);class W1 extends Vt{}_e(W1,"MODEL_CLASS_MAPPINGS",[p1]);class V1 extends Vt{}_e(V1,"MODEL_CLASS_MAPPINGS",[Xn]);class Y1 extends Vt{}_e(Y1,"MODEL_CLASS_MAPPINGS",[C1]);class H1 extends Vt{}_e(H1,"MODEL_CLASS_MAPPINGS",[b1]);class U1 extends Vt{}_e(U1,"MODEL_CLASS_MAPPINGS",[h1]);class K1 extends Vt{}_e(K1,"MODEL_CLASS_MAPPINGS",[m1]);class X1 extends Vt{}_e(X1,"MODEL_CLASS_MAPPINGS",[I1]);class Z1 extends Vt{}_e(Z1,"MODEL_CLASS_MAPPINGS",[w1]);class J1 extends Vt{}_e(J1,"MODEL_CLASS_MAPPINGS",[k1]);class q1 extends Vt{}_e(q1,"MODEL_CLASS_MAPPINGS",[E1]);class $1 extends Vt{}_e($1,"MODEL_CLASS_MAPPINGS",[M1]);class eu extends Vt{}_e(eu,"MODEL_CLASS_MAPPINGS",[Ju]);class Au extends Vt{}_e(Au,"MODEL_CLASS_MAPPINGS",[v1]);class tu extends Vt{}_e(tu,"MODEL_CLASS_MAPPINGS",[y1]);class ru extends Vt{}_e(ru,"MODEL_CLASS_MAPPINGS",[x1]);class au extends Vt{}_e(au,"MODEL_CLASS_MAPPINGS",[B1]);class su extends Vt{}_e(su,"MODEL_CLASS_MAPPINGS",[D1]);class iu extends Vt{}_e(iu,"MODEL_CLASS_MAPPINGS",[T1]);class nu extends Vt{}_e(nu,"MODEL_CLASS_MAPPINGS",[f1]);class ou extends Vt{}_e(ou,"MODEL_CLASS_MAPPINGS",[g1]);class ed extends aA{constructor({logits:Ae,past_key_values:fe,encoder_outputs:We,decoder_attentions:rA=null,cross_attentions:AA=null}){super(),this.logits=Ae,this.past_key_values=fe,this.encoder_outputs=We,this.decoder_attentions=rA,this.cross_attentions=AA}}class Et extends aA{constructor({logits:Ae,...fe}){super(),this.logits=Ae;const We=Object.values(fe);We.length>0&&(this.attentions=We)}}class lu extends aA{constructor({logits:Ae,embeddings:fe}){super(),this.logits=Ae,this.embeddings=fe}}class Ca extends aA{constructor({logits:Ae}){super(),this.logits=Ae}}class va extends aA{constructor({logits:Ae}){super(),this.logits=Ae}}class Fa extends aA{constructor({start_logits:Ae,end_logits:fe}){super(),this.start_logits=Ae,this.end_logits=fe}}class nn extends aA{constructor({logits:Ae}){super(),this.logits=Ae}}class Ad extends aA{constructor({logits:Ae,past_key_values:fe}){super(),this.logits=Ae,this.past_key_values=fe}}class cu extends aA{constructor({alphas:Ae}){super(),this.alphas=Ae}}class uu extends aA{constructor({waveform:Ae,spectrogram:fe}){super(),this.waveform=Ae,this.spectrogram=fe}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(s,n,i)=>{i.r(n),i.d(n,{ASTFeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var C=i("./src/utils/audio.js");class p extends g.FeatureExtractor{constructor(M){super(M);const x=this.config.sampling_rate,G=(0,C.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(x/2),x,null,"kaldi",!0);this.mel_filters=G,this.window=(0,C.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(M,x){return(0,C.spectrogram)(M,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:x,transpose:!0})}async _call(M){(0,g.validate_audio_inputs)(M,"ASTFeatureExtractor");const x=await this._extract_fbank_features(M,this.config.max_length);if(this.config.do_normalize){const G=this.std*2,S=x.data;for(let T=0;T{i.r(n),i.d(n,{AutoFeatureExtractor:()=>I});var g=i("./src/utils/constants.js"),C=i("./src/utils/hub.js");i("./src/base/feature_extraction_utils.js");var p=i("./src/models/feature_extractors.js");class I{static async from_pretrained(x,G={}){const S=await(0,C.getModelJSON)(x,g.FEATURE_EXTRACTOR_NAME,!0,G),T=S.feature_extractor_type,P=p[T];if(!P)throw new Error(`Unknown feature_extractor_type: '${T}'. Please report this at ${g.GITHUB_ISSUE_URL}.`);return new P(S)}}},"./src/models/auto/image_processing_auto.js":(s,n,i)=>{i.r(n),i.d(n,{AutoImageProcessor:()=>M});var g=i("./src/utils/constants.js"),C=i("./src/utils/hub.js"),p=i("./src/base/image_processors_utils.js"),I=i("./src/models/image_processors.js");class M{static async from_pretrained(G,S={}){const T=await(0,C.getModelJSON)(G,g.IMAGE_PROCESSOR_NAME,!0,S),P=T.image_processor_type??T.feature_extractor_type;let j=I[P];return j||(P!==void 0&&console.warn(`Image processor type '${P}' not found, assuming base ImageProcessor. Please report this at ${g.GITHUB_ISSUE_URL}.`),j=p.ImageProcessor),new j(T)}}},"./src/models/auto/processing_auto.js":(s,n,i)=>{i.r(n),i.d(n,{AutoProcessor:()=>G});var g=i("./src/utils/constants.js"),C=i("./src/utils/hub.js"),p=i("./src/base/processing_utils.js"),I=i("./src/models/processors.js"),M=i("./src/models/image_processors.js"),x=i("./src/models/feature_extractors.js");class G{static async from_pretrained(T,P={}){const j=await(0,C.getModelJSON)(T,g.IMAGE_PROCESSOR_NAME,!0,P),{image_processor_type:L,feature_extractor_type:K,processor_class:ae}=j;if(ae&&I[ae])return I[ae].from_pretrained(T,P);if(!L&&!K)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const Y={};if(L){const ee=M[L];if(!ee)throw new Error(`Unknown image_processor_type: '${L}'.`);Y.image_processor=new ee(j)}if(K){const ee=M[K];if(ee)Y.image_processor=new ee(j);else{const d=x[K];if(!d)throw new Error(`Unknown feature_extractor_type: '${K}'.`);Y.feature_extractor=new d(j)}}const V={};return new p.Processor(V,Y)}}},"./src/models/beit/image_processing_beit.js":(s,n,i)=>{i.r(n),i.d(n,{BeitFeatureExtractor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/bit/image_processing_bit.js":(s,n,i)=>{i.r(n),i.d(n,{BitImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/chinese_clip/image_processing_chinese_clip.js":(s,n,i)=>{i.r(n),i.d(n,{ChineseCLIPFeatureExtractor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/clap/feature_extraction_clap.js":(s,n,i)=>{i.r(n),i.d(n,{ClapFeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var C=i("./src/utils/audio.js");class p extends g.FeatureExtractor{constructor(M){super(M),this.mel_filters=(0,C.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,C.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,C.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(M,x,G,S){let T;const P=M.length-x;if(P>0)if(G==="rand_trunc"){const j=Math.floor(Math.random()*(P+1));M=M.subarray(j,j+x),T=await this._extract_fbank_features(M,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${G}" not implemented`);else{if(P<0){let j=new Float64Array(x);if(j.set(M),S==="repeat")for(let L=M.length;L{i.r(n),i.d(n,{CLIPFeatureExtractor:()=>p,CLIPImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/convnext/image_processing_convnext.js":(s,n,i)=>{i.r(n),i.d(n,{ConvNextFeatureExtractor:()=>p,ConvNextImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{constructor(M){super(M),this.crop_pct=this.config.crop_pct??224/256}async resize(M){var G;const x=(G=this.size)==null?void 0:G.shortest_edge;if(x===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(x<384){const S=Math.floor(x/this.crop_pct),[T,P]=this.get_resize_output_image_size(M,{shortest_edge:S});M=await M.resize(T,P,{resample:this.resample}),M=await M.center_crop(x,x)}else M=await M.resize(x,x,{resample:this.resample});return M}}class p extends C{}},"./src/models/dac/feature_extraction_dac.js":(s,n,i)=>{i.r(n),i.d(n,{DacFeatureExtractor:()=>C});var g=i("./src/models/encodec/feature_extraction_encodec.js");class C extends g.EncodecFeatureExtractor{}},"./src/models/deit/image_processing_deit.js":(s,n,i)=>{i.r(n),i.d(n,{DeiTFeatureExtractor:()=>p,DeiTImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/detr/image_processing_detr.js":(s,n,i)=>{i.r(n),i.d(n,{DetrFeatureExtractor:()=>I,DetrImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");class p extends g.ImageProcessor{async _call(x){const G=await super._call(x),S=[G.pixel_values.dims[0],64,64],T=(0,C.full)(S,1n);return{...G,pixel_mask:T}}post_process_object_detection(...x){return(0,g.post_process_object_detection)(...x)}post_process_panoptic_segmentation(...x){return(0,g.post_process_panoptic_segmentation)(...x)}post_process_instance_segmentation(...x){return(0,g.post_process_instance_segmentation)(...x)}}class I extends p{}},"./src/models/donut/image_processing_donut.js":(s,n,i)=>{i.r(n),i.d(n,{DonutFeatureExtractor:()=>p,DonutImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{pad_image(M,x,G,S={}){const[T,P,j]=x;let L=this.image_mean;Array.isArray(this.image_mean)||(L=new Array(j).fill(L));let K=this.image_std;Array.isArray(K)||(K=new Array(j).fill(L));const ae=L.map((Y,V)=>-Y/K[V]);return super.pad_image(M,x,G,{center:!0,constant_values:ae,...S})}}class p extends C{}},"./src/models/dpt/image_processing_dpt.js":(s,n,i)=>{i.r(n),i.d(n,{DPTFeatureExtractor:()=>p,DPTImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/efficientnet/image_processing_efficientnet.js":(s,n,i)=>{i.r(n),i.d(n,{EfficientNetImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{constructor(I){super(I),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(M=>M*M))}}},"./src/models/encodec/feature_extraction_encodec.js":(s,n,i)=>{i.r(n),i.d(n,{EncodecFeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js"),C=i("./src/utils/tensor.js");class p extends g.FeatureExtractor{async _call(M){(0,g.validate_audio_inputs)(M,"EncodecFeatureExtractor"),M instanceof Float64Array&&(M=new Float32Array(M));const x=this.config.feature_size;if(M.length%x!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${x}).`);const G=[1,x,M.length/x];return{input_values:new C.Tensor("float32",M,G)}}}},"./src/models/feature_extractors.js":(s,n,i)=>{i.r(n),i.d(n,{ASTFeatureExtractor:()=>g.ASTFeatureExtractor,ClapFeatureExtractor:()=>p.ClapFeatureExtractor,DacFeatureExtractor:()=>I.DacFeatureExtractor,EncodecFeatureExtractor:()=>C.EncodecFeatureExtractor,ImageFeatureExtractor:()=>K.ImageProcessor,MoonshineFeatureExtractor:()=>M.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>x.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>G.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>S.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>T.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>P.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>j.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>L.WhisperFeatureExtractor});var g=i("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),C=i("./src/models/encodec/feature_extraction_encodec.js"),p=i("./src/models/clap/feature_extraction_clap.js"),I=i("./src/models/dac/feature_extraction_dac.js"),M=i("./src/models/moonshine/feature_extraction_moonshine.js"),x=i("./src/models/pyannote/feature_extraction_pyannote.js"),G=i("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),S=i("./src/models/snac/feature_extraction_snac.js"),T=i("./src/models/speecht5/feature_extraction_speecht5.js"),P=i("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),j=i("./src/models/wespeaker/feature_extraction_wespeaker.js"),L=i("./src/models/whisper/feature_extraction_whisper.js"),K=i("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(s,n,i)=>{i.r(n),i.d(n,{Florence2Processor:()=>I});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");class I extends g.Processor{constructor(x,G){super(x,G);const{tasks_answer_post_processing_type:S,task_prompts_without_inputs:T,task_prompts_with_input:P}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(S??{})),this.task_prompts_without_inputs=new Map(Object.entries(T??{})),this.task_prompts_with_input=new Map(Object.entries(P??{})),this.regexes={quad_boxes:/(.+?)/gm,bboxes:/([^<]+)?/gm},this.size_per_bin=1e3}construct_prompts(x){typeof x=="string"&&(x=[x]);const G=[];for(const S of x)if(this.task_prompts_without_inputs.has(S))G.push(this.task_prompts_without_inputs.get(S));else{for(const[T,P]of this.task_prompts_with_input)if(S.includes(T)){G.push(P.replaceAll("{input}",S).replaceAll(T,""));break}G.length!==x.length&&G.push(S)}return G}post_process_generation(x,G,S){const T=this.tasks_answer_post_processing_type.get(G)??"pure_text";x=x.replaceAll("","").replaceAll("","");let P;switch(T){case"pure_text":P=x;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const j=T==="ocr"?"quad_boxes":"bboxes",L=x.matchAll(this.regexes[j]),K=[],ae=[];for(const[Y,V,...ee]of L)K.push(V?V.trim():K.at(-1)??""),ae.push(ee.map((d,v)=>(Number(d)+.5)/this.size_per_bin*S[v%2]));P={labels:K,[j]:ae};break;default:throw new Error(`Task "${G}" (of type "${T}") not yet implemented.`)}return{[G]:P}}async _call(x,G=null,S={}){if(!x&&!G)throw new Error("Either text or images must be provided");const T=await this.image_processor(x,S),P=G?this.tokenizer(G,S):{};return{...T,...P}}}_e(I,"tokenizer_class",p.AutoTokenizer),_e(I,"image_processor_class",C.AutoImageProcessor)},"./src/models/glpn/image_processing_glpn.js":(s,n,i)=>{i.r(n),i.d(n,{GLPNFeatureExtractor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/grounding_dino/image_processing_grounding_dino.js":(s,n,i)=>{i.r(n),i.d(n,{GroundingDinoImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");class p extends g.ImageProcessor{async _call(M){const x=await super._call(M),G=x.pixel_values.dims,S=(0,C.ones)([G[0],G[2],G[3]]);return{...x,pixel_mask:S}}}},"./src/models/grounding_dino/processing_grounding_dino.js":(s,n,i)=>{i.r(n),i.d(n,{GroundingDinoProcessor:()=>x});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js"),I=i("./src/base/image_processors_utils.js");function M(G,S){const P=G.dims.at(-1)-1,j=G.tolist();j.fill(!1,0,1),j.fill(!1,P);const L=S.tolist();return j.map((K,ae)=>K?ae:null).filter(K=>K!==null).map(K=>L[K])}class x extends g.Processor{async _call(S,T,P={}){const j=S?await this.image_processor(S,P):{};return{...T?this.tokenizer(T,P):{},...j}}post_process_grounded_object_detection(S,T,{box_threshold:P=.25,text_threshold:j=.25,target_sizes:L=null}={}){const{logits:K,pred_boxes:ae}=S,Y=K.dims[0];if(L!==null&&L.length!==Y)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const V=K.dims.at(1),ee=K.sigmoid(),d=ee.max(-1).tolist(),v=ae.tolist().map(u=>u.map(Q=>(0,I.center_to_corners_format)(Q))),e=[];for(let u=0;uce.map((Te,Be)=>Te*Q[(Be+1)%2])));const oe=d[u],O=[],R=[],De=[];for(let ce=0;ce{i.r(n),i.d(n,{Idefics3ImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");class p extends g.ImageProcessor{constructor(M){super(M),this.do_image_splitting=M.do_image_splitting??!0,this.max_image_size=M.max_image_size}get_resize_for_vision_encoder(M,x){let[G,S]=M.dims.slice(-2);const T=S/G;return S>=G?(S=Math.ceil(S/x)*x,G=Math.floor(S/T),G=Math.ceil(G/x)*x):(G=Math.ceil(G/x)*x,S=Math.floor(G*T),S=Math.ceil(S/x)*x),{height:G,width:S}}async _call(M,{do_image_splitting:x=null,return_row_col_info:G=!1}={}){let S;if(!Array.isArray(M))S=[[M]];else{if(M.length===0||!M[0])throw new Error("No images provided.");Array.isArray(M[0])?S=M:S=[M]}let T=[],P=[],j=[];const L=[],K=[];for(const u of S){let Q=await Promise.all(u.map(R=>this.preprocess(R)));L.push(...Q.map(R=>R.original_size)),K.push(...Q.map(R=>R.reshaped_input_size)),Q.forEach(R=>R.pixel_values.unsqueeze_(0));const{longest_edge:oe}=this.max_image_size;let O;if(x??this.do_image_splitting){let R=new Array(Q.length),De=new Array(Q.length);O=await Promise.all(Q.map(async(ce,Te)=>{const Be=this.get_resize_for_vision_encoder(ce.pixel_values,oe),Qe=await(0,C.interpolate_4d)(ce.pixel_values,{size:[Be.height,Be.width]}),{frames:je,num_splits_h:Se,num_splits_w:Je}=await this.split_image(Qe,this.max_image_size);return R[Te]=Se,De[Te]=Je,(0,C.cat)(je,0)})),P.push(R),j.push(De)}else{const R=[oe,oe];O=await Promise.all(Q.map(De=>(0,C.interpolate_4d)(De.pixel_values,{size:R}))),P.push(new Array(Q.length).fill(0)),j.push(new Array(Q.length).fill(0))}T.push((0,C.cat)(O,0))}const ae=T.length,[Y,V,ee,d]=T[0].dims;let v,e;if(ae===1)v=T[0].unsqueeze_(0),e=(0,C.full)([ae,Y,ee,d],!0);else{const u=Math.max(...T.map(O=>O.dims.at(0)));e=(0,C.full)([ae,u,ee,d],!0);const Q=e.data,oe=u*ee*d;for(let O=0;OG||j>S){L=Math.ceil(P/G),K=Math.ceil(j/S);const ae=Math.ceil(P/L),Y=Math.ceil(j/K);for(let d=0;d{i.r(n),i.d(n,{Idefics3Processor:()=>S});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");i("./src/utils/image.js");var I=i("./src/utils/core.js");function M(T,P,j,L,K,ae){let Y="";for(let V=0;V`+K.repeat(T);Y+=` +`}return Y+=` +${L}${ae}`+K.repeat(T)+`${L}`,Y}function x(T,P,j,L){return`${P}${L}`+j.repeat(T)+`${P}`}function G(T,P,j,L,K,ae){return T===0&&P===0?x(j,L,K,ae):M(j,T,P,L,K,ae)}class S extends g.Processor{constructor(){super(...arguments);_e(this,"fake_image_token","");_e(this,"image_token","");_e(this,"global_img_token","")}async _call(j,L=null,K={}){K.return_row_col_info??(K.return_row_col_info=!0);let ae;L&&(ae=await this.image_processor(L,K)),Array.isArray(j)||(j=[j]);const Y=ae.rows??[new Array(j.length).fill(0)],V=ae.cols??[new Array(j.length).fill(0)],ee=this.config.image_seq_len,d=[],v=[];for(let u=0;uG(Te,O[Be],ee,this.fake_image_token,this.image_token,this.global_img_token)),De=Q.split(this.image_token);if(De.length===0)throw new Error("The image token should be present in the text.");let ce=De[0];for(let Te=0;Te{i.r(n),i.d(n,{BeitFeatureExtractor:()=>g.BeitFeatureExtractor,BitImageProcessor:()=>C.BitImageProcessor,CLIPFeatureExtractor:()=>I.CLIPFeatureExtractor,CLIPImageProcessor:()=>I.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>p.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>M.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>M.ConvNextImageProcessor,DPTFeatureExtractor:()=>T.DPTFeatureExtractor,DPTImageProcessor:()=>T.DPTImageProcessor,DeiTFeatureExtractor:()=>x.DeiTFeatureExtractor,DeiTImageProcessor:()=>x.DeiTImageProcessor,DetrFeatureExtractor:()=>G.DetrFeatureExtractor,DetrImageProcessor:()=>G.DetrImageProcessor,DonutFeatureExtractor:()=>S.DonutFeatureExtractor,DonutImageProcessor:()=>S.DonutImageProcessor,EfficientNetImageProcessor:()=>P.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>j.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>L.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>K.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>Y.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>V.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>ee.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>d.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>d.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>v.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>v.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>e.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>e.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>u.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>u.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>Q.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>Q.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>oe.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>oe.MobileViTImageProcessor,NougatImageProcessor:()=>O.NougatImageProcessor,OwlViTFeatureExtractor:()=>De.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>De.OwlViTImageProcessor,Owlv2ImageProcessor:()=>R.Owlv2ImageProcessor,Phi3VImageProcessor:()=>ce.Phi3VImageProcessor,PvtImageProcessor:()=>Te.PvtImageProcessor,Qwen2VLImageProcessor:()=>Be.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>Qe.RTDetrImageProcessor,SamImageProcessor:()=>je.SamImageProcessor,SegformerFeatureExtractor:()=>Se.SegformerFeatureExtractor,SegformerImageProcessor:()=>Se.SegformerImageProcessor,SiglipImageProcessor:()=>Je.SiglipImageProcessor,SmolVLMImageProcessor:()=>Xe.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>be.Swin2SRImageProcessor,VLMImageProcessor:()=>ae.VLMImageProcessor,ViTFeatureExtractor:()=>le.ViTFeatureExtractor,ViTImageProcessor:()=>le.ViTImageProcessor,VitMatteImageProcessor:()=>Ie.VitMatteImageProcessor,VitPoseImageProcessor:()=>Oe.VitPoseImageProcessor,YolosFeatureExtractor:()=>tA.YolosFeatureExtractor,YolosImageProcessor:()=>tA.YolosImageProcessor});var g=i("./src/models/beit/image_processing_beit.js"),C=i("./src/models/bit/image_processing_bit.js"),p=i("./src/models/chinese_clip/image_processing_chinese_clip.js"),I=i("./src/models/clip/image_processing_clip.js"),M=i("./src/models/convnext/image_processing_convnext.js"),x=i("./src/models/deit/image_processing_deit.js"),G=i("./src/models/detr/image_processing_detr.js"),S=i("./src/models/donut/image_processing_donut.js"),T=i("./src/models/dpt/image_processing_dpt.js"),P=i("./src/models/efficientnet/image_processing_efficientnet.js"),j=i("./src/models/glpn/image_processing_glpn.js"),L=i("./src/models/grounding_dino/image_processing_grounding_dino.js"),K=i("./src/models/idefics3/image_processing_idefics3.js"),ae=i("./src/models/janus/image_processing_janus.js"),Y=i("./src/models/jina_clip/image_processing_jina_clip.js"),V=i("./src/models/llava_onevision/image_processing_llava_onevision.js"),ee=i("./src/models/mask2former/image_processing_mask2former.js"),d=i("./src/models/maskformer/image_processing_maskformer.js"),v=i("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),e=i("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),u=i("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),Q=i("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),oe=i("./src/models/mobilevit/image_processing_mobilevit.js"),O=i("./src/models/nougat/image_processing_nougat.js"),R=i("./src/models/owlv2/image_processing_owlv2.js"),De=i("./src/models/owlvit/image_processing_owlvit.js"),ce=i("./src/models/phi3_v/image_processing_phi3_v.js"),Te=i("./src/models/pvt/image_processing_pvt.js"),Be=i("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),Qe=i("./src/models/rt_detr/image_processing_rt_detr.js"),je=i("./src/models/sam/image_processing_sam.js"),Se=i("./src/models/segformer/image_processing_segformer.js"),Je=i("./src/models/siglip/image_processing_siglip.js"),Xe=i("./src/models/smolvlm/image_processing_smolvlm.js"),be=i("./src/models/swin2sr/image_processing_swin2sr.js"),le=i("./src/models/vit/image_processing_vit.js"),Ie=i("./src/models/vitmatte/image_processing_vitmatte.js"),Oe=i("./src/models/vitpose/image_processing_vitpose.js"),tA=i("./src/models/yolos/image_processing_yolos.js")},"./src/models/janus/image_processing_janus.js":(s,n,i)=>{i.r(n),i.d(n,{VLMImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{constructor(I){super({do_pad:!0,pad_size:{width:I.image_size,height:I.image_size},...I}),this.constant_values=this.config.background_color.map(M=>M*this.rescale_factor)}pad_image(I,M,x,G){return super.pad_image(I,M,x,{constant_values:this.constant_values,center:!0,...G})}}},"./src/models/janus/processing_janus.js":(s,n,i)=>{i.r(n),i.d(n,{VLChatProcessor:()=>G});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js"),I=i("./src/utils/core.js"),M=i("./src/utils/tensor.js"),x=i("./src/utils/image.js");class G extends g.Processor{constructor(T,P){super(T,P),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(T,{images:P=null,chat_template:j="default"}={}){P?Array.isArray(P)||(P=[P]):P=await Promise.all(T.filter(O=>O.images).flatMap(O=>O.images).map(O=>x.RawImage.read(O)));const L=this.tokenizer,K=L.apply_chat_template(T,{tokenize:!1,add_generation_prompt:!0,chat_template:j}),ae=O=>L.encode(O,{add_special_tokens:!1}),Y=K.split(this.image_tag),V=Y.length-1;if(P.length!==V)throw new Error(`Number of images provided (${P.length}) does not match number of "${this.image_tag}" image tags (${V})`);const[ee,d,v]=L.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let e=ae(Y[0]),u=new Array(e.length).fill(!1);for(let O=1;O0){const O=await this.image_processor(P);return O.pixel_values.unsqueeze_(0),{...oe,...O}}return oe}}_e(G,"image_processor_class",C.AutoImageProcessor),_e(G,"tokenizer_class",p.AutoTokenizer),_e(G,"uses_processor_config",!0)},"./src/models/jina_clip/image_processing_jina_clip.js":(s,n,i)=>{i.r(n),i.d(n,{JinaCLIPImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{constructor(I){const{resize_mode:M,fill_color:x,interpolation:G,size:S,...T}=I,P=M==="squash"?{width:S,height:S}:M==="shortest"?{shortest_edge:S}:{longest_edge:S},j=G==="bicubic"?3:2;super({...T,size:P,resample:j,do_center_crop:!0,crop_size:S,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(s,n,i)=>{i.r(n),i.d(n,{JinaCLIPProcessor:()=>I});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");class I extends g.Processor{async _call(x=null,G=null,S={}){if(!x&&!G)throw new Error("Either text or images must be provided");const T=x?this.tokenizer(x,S):{},P=G?await this.image_processor(G,S):{};return{...T,...P}}}_e(I,"tokenizer_class",p.AutoTokenizer),_e(I,"image_processor_class",C.AutoImageProcessor)},"./src/models/llava_onevision/image_processing_llava_onevision.js":(s,n,i)=>{i.r(n),i.d(n,{LlavaOnevisionImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/mask2former/image_processing_mask2former.js":(s,n,i)=>{i.r(n),i.d(n,{Mask2FormerImageProcessor:()=>C});var g=i("./src/models/maskformer/image_processing_maskformer.js");class C extends g.MaskFormerImageProcessor{}},"./src/models/maskformer/image_processing_maskformer.js":(s,n,i)=>{i.r(n),i.d(n,{MaskFormerFeatureExtractor:()=>p,MaskFormerImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_panoptic_segmentation(...M){return(0,g.post_process_panoptic_segmentation)(...M)}post_process_instance_segmentation(...M){return(0,g.post_process_instance_segmentation)(...M)}}class p extends C{}},"./src/models/mgp_str/processing_mgp_str.js":(s,n,i)=>{i.r(n),i.d(n,{MgpstrProcessor:()=>x});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js"),I=i("./src/utils/maths.js");const M={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class x extends g.Processor{get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(S,T){if(!M.hasOwnProperty(T))throw new Error(`Format ${T} is not supported.`);const[P,j]=M[T],L=this[P].bind(this),[K,ae]=S.dims,Y=[],V=[],ee=S.tolist();for(let v=0;v0?Q.reduce((O,R)=>O*R,1):0;V.push(u),Y.push(oe)}return[L(V),Y]}char_decode(S){return this.char_tokenizer.batch_decode(S).map(T=>T.replaceAll(" ",""))}bpe_decode(S){return this.bpe_tokenizer.batch_decode(S)}wp_decode(S){return this.wp_tokenizer.batch_decode(S).map(T=>T.replaceAll(" ",""))}batch_decode([S,T,P]){const[j,L]=this._decode_helper(S,"char"),[K,ae]=this._decode_helper(T,"bpe"),[Y,V]=this._decode_helper(P,"wp"),ee=[],d=[];for(let v=0;v{i.r(n),i.d(n,{MobileNetV1FeatureExtractor:()=>p,MobileNetV1ImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(s,n,i)=>{i.r(n),i.d(n,{MobileNetV2FeatureExtractor:()=>p,MobileNetV2ImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(s,n,i)=>{i.r(n),i.d(n,{MobileNetV3FeatureExtractor:()=>p,MobileNetV3ImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(s,n,i)=>{i.r(n),i.d(n,{MobileNetV4FeatureExtractor:()=>p,MobileNetV4ImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/mobilevit/image_processing_mobilevit.js":(s,n,i)=>{i.r(n),i.d(n,{MobileViTFeatureExtractor:()=>p,MobileViTImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/moonshine/feature_extraction_moonshine.js":(s,n,i)=>{i.r(n),i.d(n,{MoonshineFeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js"),C=i("./src/utils/tensor.js");class p extends g.FeatureExtractor{async _call(M){(0,g.validate_audio_inputs)(M,"MoonshineFeatureExtractor"),M instanceof Float64Array&&(M=new Float32Array(M));const x=[1,M.length];return{input_values:new C.Tensor("float32",M,x)}}}},"./src/models/moonshine/processing_moonshine.js":(s,n,i)=>{i.r(n),i.d(n,{MoonshineProcessor:()=>I});var g=i("./src/models/auto/feature_extraction_auto.js"),C=i("./src/tokenizers.js"),p=i("./src/base/processing_utils.js");class I extends p.Processor{async _call(x){return await this.feature_extractor(x)}}_e(I,"tokenizer_class",C.AutoTokenizer),_e(I,"feature_extractor_class",g.AutoFeatureExtractor)},"./src/models/nougat/image_processing_nougat.js":(s,n,i)=>{i.r(n),i.d(n,{NougatImageProcessor:()=>C});var g=i("./src/models/donut/image_processing_donut.js");class C extends g.DonutImageProcessor{}},"./src/models/owlv2/image_processing_owlv2.js":(s,n,i)=>{i.r(n),i.d(n,{Owlv2ImageProcessor:()=>C});var g=i("./src/models/owlvit/image_processing_owlvit.js");class C extends g.OwlViTImageProcessor{}},"./src/models/owlvit/image_processing_owlvit.js":(s,n,i)=>{i.r(n),i.d(n,{OwlViTFeatureExtractor:()=>p,OwlViTImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_object_detection(...M){return(0,g.post_process_object_detection)(...M)}}class p extends C{}},"./src/models/owlvit/processing_owlvit.js":(s,n,i)=>{i.r(n),i.d(n,{OwlViTProcessor:()=>I});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");class I extends g.Processor{}_e(I,"tokenizer_class",p.AutoTokenizer),_e(I,"image_processor_class",C.AutoImageProcessor)},"./src/models/paligemma/processing_paligemma.js":(s,n,i)=>{i.r(n),i.d(n,{PaliGemmaProcessor:()=>x});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");const I="";function M(G,S,T,P,j){return`${P.repeat(T*j)}${S}${G} +`}class x extends g.Processor{async _call(S,T=null,P={}){T||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),T=""),Array.isArray(S)||(S=[S]),Array.isArray(T)||(T=[T]);const j=this.tokenizer.bos_token,L=this.image_processor.config.image_seq_length;let K;T.some(V=>V.includes(I))?K=T.map(V=>{const ee=V.replaceAll(I,I.repeat(L)),d=ee.lastIndexOf(I),v=d===-1?0:d+I.length;return ee.slice(0,v)+j+ee.slice(v)+` +`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),K=T.map(V=>M(V,j,L,I,S.length)));const ae=this.tokenizer(K,P);return{...await this.image_processor(S,P),...ae}}}_e(x,"tokenizer_class",p.AutoTokenizer),_e(x,"image_processor_class",C.AutoImageProcessor),_e(x,"uses_processor_config",!1)},"./src/models/phi3_v/image_processing_phi3_v.js":(s,n,i)=>{i.r(n),i.d(n,{Phi3VImageProcessor:()=>S});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");const p=336,I=[2,3],{ceil:M,floor:x,sqrt:G}=Math;class S extends g.ImageProcessor{constructor(P){super({...P,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=P.num_crops}calc_num_image_tokens_from_image_size(P,j){const{num_img_tokens:L}=this.config;return x((x(j/p)*x(P/p)+1)*L+1+(x(j/p)+1)*G(L))}get_resize_output_image_size(P,j){const L=this._num_crops,[K,ae]=P.size;let Y=K/ae,V=1;for(;V*Math.ceil(V/Y)<=L;)V+=1;V-=1;const ee=Math.floor(V*336),d=Math.floor(ee/Y);return[ee,d]}pad_image(P,j,L,K={}){const[ae,Y]=j,V=p*M(ae/p),ee=p*M(Y/p),d=[1,1,1].map((v,e)=>(v-this.image_mean[e])/this.image_std[e]);return super.pad_image(P,j,{width:ee,height:V},{center:!0,constant_values:d,...K})}async _call(P,{num_crops:j=null}={}){if(this._num_crops=j??(j=this.config.num_crops),j<4||G(j)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(P)||(P=[P]);const L=P.length,K=await Promise.all(P.map(u=>this.preprocess(u))),ae=K.map(u=>u.original_size),Y=K.map(u=>u.reshaped_input_size),V=[];for(const{pixel_values:u}of K){u.unsqueeze_(0);const[Q,oe]=u.dims.slice(-2),O=await(0,C.interpolate_4d)(u,{size:[p,p],mode:"bicubic"});if(j>0){const R=[],De=G(j),ce=x(oe/De),Te=x(Q/De);for(let Qe=0;Qeu.map(Q=>p*M(Q/p))),v=new C.Tensor("int64",d.flat(),[L,2]),e=d.map(([u,Q])=>this.calc_num_image_tokens_from_image_size(Q,u));return{pixel_values:ee,original_sizes:ae,reshaped_input_sizes:Y,image_sizes:v,num_img_tokens:e}}}},"./src/models/phi3_v/processing_phi3_v.js":(s,n,i)=>{i.r(n),i.d(n,{Phi3VProcessor:()=>x});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");i("./src/utils/image.js");const I="<|image|>",M=/<\|image_\d+\|>/g;class x extends g.Processor{async _call(S,T=null,{padding:P=!0,truncation:j=!0,num_crops:L=null}={}){Array.isArray(S)||(S=[S]);let K,ae;if(T){ae=await this.image_processor(T,{num_crops:L});const{num_img_tokens:Y}=ae,V=S.map((d,v)=>d.split(M).join(I.repeat(Y[v])));K=this.tokenizer(V,{padding:P,truncation:j});const ee=this.tokenizer.model.convert_tokens_to_ids([I])[0];K.input_ids.map_(d=>d==ee?-d:d)}else K=this.tokenizer(S);return{...K,...ae}}}_e(x,"image_processor_class",C.AutoImageProcessor),_e(x,"tokenizer_class",p.AutoTokenizer)},"./src/models/processors.js":(s,n,i)=>{i.r(n),i.d(n,{Florence2Processor:()=>g.Florence2Processor,GroundingDinoProcessor:()=>C.GroundingDinoProcessor,Idefics3Processor:()=>p.Idefics3Processor,JinaCLIPProcessor:()=>M.JinaCLIPProcessor,MgpstrProcessor:()=>x.MgpstrProcessor,MoonshineProcessor:()=>G.MoonshineProcessor,OwlViTProcessor:()=>S.OwlViTProcessor,PaliGemmaProcessor:()=>P.PaliGemmaProcessor,Phi3VProcessor:()=>T.Phi3VProcessor,PyAnnoteProcessor:()=>j.PyAnnoteProcessor,Qwen2VLProcessor:()=>L.Qwen2VLProcessor,SamProcessor:()=>K.SamProcessor,SmolVLMProcessor:()=>ae.SmolVLMProcessor,SpeechT5Processor:()=>Y.SpeechT5Processor,UltravoxProcessor:()=>V.UltravoxProcessor,VLChatProcessor:()=>I.VLChatProcessor,Wav2Vec2Processor:()=>ee.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>d.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>v.WhisperProcessor});var g=i("./src/models/florence2/processing_florence2.js"),C=i("./src/models/grounding_dino/processing_grounding_dino.js"),p=i("./src/models/idefics3/processing_idefics3.js"),I=i("./src/models/janus/processing_janus.js"),M=i("./src/models/jina_clip/processing_jina_clip.js"),x=i("./src/models/mgp_str/processing_mgp_str.js"),G=i("./src/models/moonshine/processing_moonshine.js"),S=i("./src/models/owlvit/processing_owlvit.js"),T=i("./src/models/phi3_v/processing_phi3_v.js"),P=i("./src/models/paligemma/processing_paligemma.js"),j=i("./src/models/pyannote/processing_pyannote.js"),L=i("./src/models/qwen2_vl/processing_qwen2_vl.js"),K=i("./src/models/sam/processing_sam.js"),ae=i("./src/models/smolvlm/processing_smolvlm.js"),Y=i("./src/models/speecht5/processing_speecht5.js"),V=i("./src/models/ultravox/processing_ultravox.js"),ee=i("./src/models/wav2vec2/processing_wav2vec2.js"),d=i("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),v=i("./src/models/whisper/processing_whisper.js")},"./src/models/pvt/image_processing_pvt.js":(s,n,i)=>{i.r(n),i.d(n,{PvtImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/pyannote/feature_extraction_pyannote.js":(s,n,i)=>{i.r(n),i.d(n,{PyAnnoteFeatureExtractor:()=>I});var g=i("./src/base/feature_extraction_utils.js"),C=i("./src/utils/tensor.js"),p=i("./src/utils/maths.js");class I extends g.FeatureExtractor{async _call(x){(0,g.validate_audio_inputs)(x,"PyAnnoteFeatureExtractor"),x instanceof Float64Array&&(x=new Float32Array(x));const G=[1,1,x.length];return{input_values:new C.Tensor("float32",x,G)}}samples_to_frames(x){return(x-this.config.offset)/this.config.step}post_process_speaker_diarization(x,G){const S=G/this.samples_to_frames(G)/this.config.sampling_rate,T=[];for(const P of x.tolist()){const j=[];let L=-1;for(let K=0;K({id:K,start:ae*S,end:Y*S,confidence:V/(Y-ae)})))}return T}}},"./src/models/pyannote/processing_pyannote.js":(s,n,i)=>{i.r(n),i.d(n,{PyAnnoteProcessor:()=>p});var g=i("./src/base/processing_utils.js"),C=i("./src/models/pyannote/feature_extraction_pyannote.js");class p extends g.Processor{async _call(M){return await this.feature_extractor(M)}post_process_speaker_diarization(...M){return this.feature_extractor.post_process_speaker_diarization(...M)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}_e(p,"feature_extractor_class",C.PyAnnoteFeatureExtractor)},"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(s,n,i)=>{i.r(n),i.d(n,{Qwen2VLImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");class p extends g.ImageProcessor{async _call(M,...x){const{pixel_values:G,original_sizes:S,reshaped_input_sizes:T}=await super._call(M,...x);let P=G;const{temporal_patch_size:j,merge_size:L,patch_size:K}=this.config;P.dims[0]===1&&(P=(0,C.cat)(Array.from({length:j},()=>P),0));const ae=P.dims[0]/j,Y=P.dims[1],V=Math.floor(P.dims[2]/K),ee=Math.floor(P.dims[3]/K),d=P.view(ae,j,Y,Math.floor(V/L),L,K,Math.floor(ee/L),L,K).permute(0,3,6,4,7,2,1,5,8).view(ae*V*ee,Y*j*K*K),v=new C.Tensor("int64",[ae,V,ee],[1,3]);return{pixel_values:d,image_grid_thw:v,original_sizes:S,reshaped_input_sizes:T}}}},"./src/models/qwen2_vl/processing_qwen2_vl.js":(s,n,i)=>{i.r(n),i.d(n,{Qwen2VLProcessor:()=>I});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js"),p=i("./src/tokenizers.js");i("./src/utils/image.js");class I extends g.Processor{async _call(x,G=null,...S){Array.isArray(x)||(x=[x]);let T,P;if(G&&(T=await this.image_processor(G),P=T.image_grid_thw),P){let L=this.image_processor.config.merge_size**2,K=0;const ae=P.tolist();x=x.map(Y=>{for(;Y.includes("<|image_pad|>");){const V=Number(ae[K++].reduce((ee,d)=>ee*d,1n));Y=Y.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(V/L)))}return Y.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(x),...T}}}_e(I,"image_processor_class",C.AutoImageProcessor),_e(I,"tokenizer_class",p.AutoTokenizer)},"./src/models/rt_detr/image_processing_rt_detr.js":(s,n,i)=>{i.r(n),i.d(n,{RTDetrImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_object_detection(...I){return(0,g.post_process_object_detection)(...I)}}},"./src/models/sam/image_processing_sam.js":(s,n,i)=>{i.r(n),i.d(n,{SamImageProcessor:()=>I});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/core.js"),p=i("./src/utils/tensor.js");class I extends g.ImageProcessor{reshape_input_points(x,G,S,T=!1){x=structuredClone(x);let P=(0,C.calculateDimensions)(x);if(P.length===3)T||(P=[1,...P]),x=[x];else if(P.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let j=0;jT!==G.dims[P]))throw Error(`The first ${S.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new p.Tensor("int64",x.flat(1/0).map(BigInt),S)}async _call(x,{input_points:G=null,input_labels:S=null,input_boxes:T=null}={}){const P=await super._call(x);if(G&&(P.input_points=this.reshape_input_points(G,P.original_sizes,P.reshaped_input_sizes)),S){if(!P.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");P.input_labels=this.add_input_labels(S,P.input_points)}return T&&(P.input_boxes=this.reshape_input_points(T,P.original_sizes,P.reshaped_input_sizes,!0)),P}async post_process_masks(x,G,S,{mask_threshold:T=0,binarize:P=!0,pad_size:j=null}={}){const L=[];j=j??this.pad_size;const K=[j.height,j.width];for(let ae=0;aeT&&(v[e]=1);ee=new p.Tensor("bool",v,ee.dims)}L.push(ee)}return L}generate_crop_boxes(x,G,{crop_n_layers:S=0,overlap_ratio:T=512/1500,points_per_crop:P=32,crop_n_points_downscale_factor:j=1}={}){}}},"./src/models/sam/processing_sam.js":(s,n,i)=>{i.r(n),i.d(n,{SamProcessor:()=>p});var g=i("./src/base/processing_utils.js"),C=i("./src/models/auto/image_processing_auto.js");class p extends g.Processor{async _call(...M){return await this.image_processor(...M)}post_process_masks(...M){return this.image_processor.post_process_masks(...M)}reshape_input_points(...M){return this.image_processor.reshape_input_points(...M)}}_e(p,"image_processor_class",C.AutoImageProcessor)},"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(s,n,i)=>{i.r(n),i.d(n,{SeamlessM4TFeatureExtractor:()=>I});var g=i("./src/base/feature_extraction_utils.js"),C=i("./src/utils/tensor.js"),p=i("./src/utils/audio.js");class I extends g.FeatureExtractor{constructor(x){super(x);const G=this.config.sampling_rate,S=(0,p.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(G/2),G,null,"kaldi",!0);this.mel_filters=S,this.window=(0,p.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(x,G){return x=x.map(S=>S*32768),(0,p.spectrogram)(x,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:G,transpose:!0})}async _call(x,{padding:G=!0,pad_to_multiple_of:S=2,do_normalize_per_mel_bins:T=!0,return_attention_mask:P=!0}={}){(0,g.validate_audio_inputs)(x,"SeamlessM4TFeatureExtractor");let j=await this._extract_fbank_features(x,this.config.max_length);if(T){const[v,e]=j.dims,u=j.data;for(let Q=0;Q0){const oe=new Float32Array(e*(v+Q));oe.set(u),oe.fill(this.config.padding_value,u.length);const O=v+Q;j=new C.Tensor(j.type,oe,[O,e]),P&&(L=new C.Tensor("int64",new BigInt64Array(O),[1,O]),L.data.fill(1n,0,v))}}const[K,ae]=j.dims,Y=this.config.stride;if(K%Y!==0)throw new Error(`The number of frames (${K}) must be a multiple of the stride (${Y}).`);const ee=j.view(1,Math.floor(K/Y),ae*Y),d={input_features:ee};if(P){const v=ee.dims[1],e=new BigInt64Array(v);if(L){const u=L.data;for(let Q=1,oe=0;Q{i.r(n),i.d(n,{SegformerFeatureExtractor:()=>p,SegformerImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_semantic_segmentation(...M){return(0,g.post_process_semantic_segmentation)(...M)}}class p extends C{}},"./src/models/siglip/image_processing_siglip.js":(s,n,i)=>{i.r(n),i.d(n,{SiglipImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}},"./src/models/smolvlm/image_processing_smolvlm.js":(s,n,i)=>{i.r(n),i.d(n,{SmolVLMImageProcessor:()=>g.Idefics3ImageProcessor});var g=i("./src/models/idefics3/image_processing_idefics3.js")},"./src/models/smolvlm/processing_smolvlm.js":(s,n,i)=>{i.r(n),i.d(n,{SmolVLMProcessor:()=>g.Idefics3Processor});var g=i("./src/models/idefics3/processing_idefics3.js")},"./src/models/snac/feature_extraction_snac.js":(s,n,i)=>{i.r(n),i.d(n,{SnacFeatureExtractor:()=>C});var g=i("./src/models/dac/feature_extraction_dac.js");class C extends g.DacFeatureExtractor{}},"./src/models/speecht5/feature_extraction_speecht5.js":(s,n,i)=>{i.r(n),i.d(n,{SpeechT5FeatureExtractor:()=>C});var g=i("./src/base/feature_extraction_utils.js");class C extends g.FeatureExtractor{}},"./src/models/speecht5/processing_speecht5.js":(s,n,i)=>{i.r(n),i.d(n,{SpeechT5Processor:()=>I});var g=i("./src/base/processing_utils.js"),C=i("./src/tokenizers.js"),p=i("./src/models/auto/feature_extraction_auto.js");class I extends g.Processor{async _call(x){return await this.feature_extractor(x)}}_e(I,"tokenizer_class",C.AutoTokenizer),_e(I,"feature_extractor_class",p.AutoFeatureExtractor)},"./src/models/swin2sr/image_processing_swin2sr.js":(s,n,i)=>{i.r(n),i.d(n,{Swin2SRImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{pad_image(I,M,x,G={}){const[S,T,P]=M;return super.pad_image(I,M,{width:T+(x-T%x)%x,height:S+(x-S%x)%x},{mode:"symmetric",center:!1,constant_values:-1,...G})}}},"./src/models/ultravox/processing_ultravox.js":(s,n,i)=>{i.r(n),i.d(n,{UltravoxProcessor:()=>I});var g=i("./src/models/auto/feature_extraction_auto.js"),C=i("./src/tokenizers.js"),p=i("./src/base/processing_utils.js");class I extends p.Processor{async _call(x,G=null,S={}){if(Array.isArray(x))throw new Error("Batched inputs are not supported yet.");let T={};if(G){const j=G.length,{input_features:L}=await this.feature_extractor(G,{...S,max_length:j}),K=Math.round(j/this.config.encoder_ds_factor+1e-4),ae=1+Math.ceil(K/this.config.stack_factor);T.audio_token_len=[ae],T.audio_values=L;const Y=this.config.audio_placeholder;if(!x.includes(Y))throw new Error(`The input text does not contain the image token ${Y}.`);x=x.replaceAll(Y,Y.repeat(ae))}return{...this.tokenizer(x,{add_special_tokens:!1,...S}),...T}}}_e(I,"tokenizer_class",C.AutoTokenizer),_e(I,"feature_extractor_class",g.AutoFeatureExtractor),_e(I,"uses_processor_config",!0)},"./src/models/vit/image_processing_vit.js":(s,n,i)=>{i.r(n),i.d(n,{ViTFeatureExtractor:()=>p,ViTImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{}class p extends C{}},"./src/models/vitmatte/image_processing_vitmatte.js":(s,n,i)=>{i.r(n),i.d(n,{VitMatteImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js"),C=i("./src/utils/tensor.js");class p extends g.ImageProcessor{async _call(M,x){Array.isArray(M)||(M=[M]),Array.isArray(x)||(x=[x]);const G=await Promise.all(M.map(P=>this.preprocess(P))),S=await Promise.all(x.map(P=>this.preprocess(P,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,C.stack)(G.map((P,j)=>(0,C.cat)([P.pixel_values,S[j].pixel_values],0)),0),original_sizes:G.map(P=>P.original_size),reshaped_input_sizes:G.map(P=>P.reshaped_input_size)}}}},"./src/models/vitpose/image_processing_vitpose.js":(s,n,i)=>{i.r(n),i.d(n,{VitPoseImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_pose_estimation(I,M,{threshold:x=null}={}){const G=I.tolist(),[S,T,P,j]=I.dims,L=[];for(let K=0;K{i.r(n),i.d(n,{Wav2Vec2FeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js"),C=i("./src/utils/tensor.js");class p extends g.FeatureExtractor{_zero_mean_unit_var_norm(M){const G=M.reduce((T,P)=>T+P,0)/M.length,S=M.reduce((T,P)=>T+(P-G)**2,0)/M.length;return M.map(T=>(T-G)/Math.sqrt(S+1e-7))}async _call(M){(0,g.validate_audio_inputs)(M,"Wav2Vec2FeatureExtractor"),M instanceof Float64Array&&(M=new Float32Array(M));let x=M;this.config.do_normalize&&(x=this._zero_mean_unit_var_norm(x));const G=[1,x.length];return{input_values:new C.Tensor("float32",x,G),attention_mask:new C.Tensor("int64",new BigInt64Array(x.length).fill(1n),G)}}}},"./src/models/wav2vec2/processing_wav2vec2.js":(s,n,i)=>{i.r(n),i.d(n,{Wav2Vec2Processor:()=>I});var g=i("./src/tokenizers.js"),C=i("./src/models/auto/feature_extraction_auto.js"),p=i("./src/base/processing_utils.js");class I extends p.Processor{async _call(x){return await this.feature_extractor(x)}}_e(I,"tokenizer_class",g.AutoTokenizer),_e(I,"feature_extractor_class",C.AutoFeatureExtractor)},"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(s,n,i)=>{i.r(n),i.d(n,{Wav2Vec2ProcessorWithLM:()=>I});var g=i("./src/tokenizers.js"),C=i("./src/models/auto/feature_extraction_auto.js"),p=i("./src/base/processing_utils.js");class I extends p.Processor{async _call(x){return await this.feature_extractor(x)}}_e(I,"tokenizer_class",g.AutoTokenizer),_e(I,"feature_extractor_class",C.AutoFeatureExtractor)},"./src/models/wespeaker/feature_extraction_wespeaker.js":(s,n,i)=>{i.r(n),i.d(n,{WeSpeakerFeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var C=i("./src/utils/audio.js");class p extends g.FeatureExtractor{constructor(M){super(M);const x=this.config.sampling_rate,G=(0,C.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(x/2),x,null,"kaldi",!0);this.mel_filters=G,this.window=(0,C.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(M){return M=M.map(x=>x*32768),(0,C.spectrogram)(M,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(M){(0,g.validate_audio_inputs)(M,"WeSpeakerFeatureExtractor");const x=(await this._extract_fbank_features(M)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const G=x.mean(1).data,S=x.data,[T,P,j]=x.dims;for(let L=0;L{i.r(n),i.d(n,{WHISPER_LANGUAGE_MAPPING:()=>C,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>p,whisper_language_to_code:()=>I});const g=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],C=new Map(g),p=new Map([...g.map(([M,x])=>[x,M]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function I(M){M=M.toLowerCase();let x=p.get(M);if(x===void 0){const G=M.match(/^<\|([a-z]{2})\|>$/);if(G&&(M=G[1]),C.has(M))x=M;else{const T=M.length===2?C.keys():C.values();throw new Error(`Language "${M}" is not supported. Must be one of: ${JSON.stringify(Array.from(T))}`)}}return x}},"./src/models/whisper/feature_extraction_whisper.js":(s,n,i)=>{i.r(n),i.d(n,{WhisperFeatureExtractor:()=>I});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var C=i("./src/utils/audio.js"),p=i("./src/utils/maths.js");class I extends g.FeatureExtractor{constructor(x){var G;super(x),(G=this.config).mel_filters??(G.mel_filters=(0,C.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney")),this.window=(0,C.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(x){const G=await(0,C.spectrogram)(x,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(x.length/this.config.hop_length),this.config.nb_max_frames)}),S=G.data,T=(0,p.max)(S)[0];for(let P=0;PT?(x.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),S=x.slice(0,T)):(S=new Float32Array(T),S.set(x)),{input_features:(await this._extract_fbank_features(S)).unsqueeze_(0)}}}},"./src/models/whisper/generation_whisper.js":(s,n,i)=>{i.r(n),i.d(n,{WhisperGenerationConfig:()=>C});var g=i("./src/generation/configuration_utils.js");class C extends g.GenerationConfig{constructor(){super(...arguments);_e(this,"return_timestamps",null);_e(this,"return_token_timestamps",null);_e(this,"num_frames",null);_e(this,"alignment_heads",null);_e(this,"task",null);_e(this,"language",null);_e(this,"no_timestamps_token_id",null);_e(this,"prompt_ids",null);_e(this,"is_multilingual",null);_e(this,"lang_to_id",null);_e(this,"task_to_id",null);_e(this,"max_initial_timestamp_index",1)}}},"./src/models/whisper/processing_whisper.js":(s,n,i)=>{i.r(n),i.d(n,{WhisperProcessor:()=>I});var g=i("./src/models/auto/feature_extraction_auto.js"),C=i("./src/tokenizers.js"),p=i("./src/base/processing_utils.js");class I extends p.Processor{async _call(x){return await this.feature_extractor(x)}}_e(I,"tokenizer_class",C.AutoTokenizer),_e(I,"feature_extractor_class",g.AutoFeatureExtractor)},"./src/models/yolos/image_processing_yolos.js":(s,n,i)=>{i.r(n),i.d(n,{YolosFeatureExtractor:()=>p,YolosImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js");class C extends g.ImageProcessor{post_process_object_detection(...M){return(0,g.post_process_object_detection)(...M)}}class p extends C{}},"./src/ops/registry.js":(s,n,i)=>{i.r(n),i.d(n,{TensorOpRegistry:()=>x});var g=i("./src/backends/onnx.js"),C=i("./src/utils/tensor.js"),p=i("./src/env.js");const I=p.apis.IS_BROWSER_ENV||p.apis.IS_WEBWORKER_ENV,M=async(G,S,T)=>{const P=await(0,g.createInferenceSession)(new Uint8Array(G),S);let j=Promise.resolve();return async L=>{const K=(0,g.isONNXProxy)(),ae=Object.fromEntries(Object.entries(L).map(([V,ee])=>[V,(K?ee.clone():ee).ort_tensor])),Y=await(j=I?j.then(()=>P.run(ae)):P.run(ae));return Array.isArray(T)?T.map(V=>new C.Tensor(Y[V])):new C.Tensor(Y[T])}};class x{static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=M([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=M([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=M([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=M([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=M([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=M([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=M([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=M([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}_e(x,"session_options",{})},"./src/pipelines.js":(s,n,i)=>{i.r(n),i.d(n,{AudioClassificationPipeline:()=>De,AutomaticSpeechRecognitionPipeline:()=>Te,BackgroundRemovalPipeline:()=>Se,DepthEstimationPipeline:()=>tA,DocumentQuestionAnsweringPipeline:()=>le,FeatureExtractionPipeline:()=>O,FillMaskPipeline:()=>ee,ImageClassificationPipeline:()=>Qe,ImageFeatureExtractionPipeline:()=>R,ImageSegmentationPipeline:()=>je,ImageToImagePipeline:()=>Oe,ImageToTextPipeline:()=>Be,ObjectDetectionPipeline:()=>Xe,Pipeline:()=>K,QuestionAnsweringPipeline:()=>V,SummarizationPipeline:()=>v,Text2TextGenerationPipeline:()=>d,TextClassificationPipeline:()=>ae,TextGenerationPipeline:()=>Q,TextToAudioPipeline:()=>Ie,TokenClassificationPipeline:()=>Y,TranslationPipeline:()=>e,ZeroShotAudioClassificationPipeline:()=>ce,ZeroShotClassificationPipeline:()=>oe,ZeroShotImageClassificationPipeline:()=>Je,ZeroShotObjectDetectionPipeline:()=>be,pipeline:()=>BA});var g=i("./src/tokenizers.js"),C=i("./src/models.js"),p=i("./src/models/auto/processing_auto.js");i("./src/base/processing_utils.js");var I=i("./src/utils/generic.js"),M=i("./src/utils/core.js"),x=i("./src/utils/maths.js"),G=i("./src/utils/audio.js"),S=i("./src/utils/tensor.js"),T=i("./src/utils/image.js");async function P(Ze){return Array.isArray(Ze)||(Ze=[Ze]),await Promise.all(Ze.map(Ee=>T.RawImage.read(Ee)))}async function j(Ze,Ee){return Array.isArray(Ze)||(Ze=[Ze]),await Promise.all(Ze.map(Ne=>typeof Ne=="string"||Ne instanceof URL?(0,G.read_audio)(Ne,Ee):Ne instanceof Float64Array?new Float32Array(Ne):Ne))}function L(Ze,Ee){Ee&&(Ze=Ze.map(gA=>gA|0));const[Ne,we,aA,sA]=Ze;return{xmin:Ne,ymin:we,xmax:aA,ymax:sA}}class K extends I.Callable{constructor({task:Ee,model:Ne,tokenizer:we=null,processor:aA=null}){super(),this.task=Ee,this.model=Ne,this.tokenizer=we,this.processor=aA}async dispose(){await this.model.dispose()}}class ae extends K{constructor(Ee){super(Ee)}async _call(Ee,{top_k:Ne=1}={}){const we=this.tokenizer(Ee,{padding:!0,truncation:!0}),aA=await this.model(we),sA=this.model.config.problem_type==="multi_label_classification"?$=>$.sigmoid():$=>new S.Tensor("float32",(0,x.softmax)($.data),$.dims),gA=this.model.config.id2label,dA=[];for(const $ of aA.logits){const mA=sA($),EA=await(0,S.topk)(mA,Ne),xe=EA[0].tolist(),pA=EA[1].tolist().map((GA,VA)=>({label:gA?gA[GA]:`LABEL_${GA}`,score:xe[VA]}));Ne===1?dA.push(...pA):dA.push(pA)}return Array.isArray(Ee)||Ne===1?dA:dA[0]}}class Y extends K{constructor(Ee){super(Ee)}async _call(Ee,{ignore_labels:Ne=["O"]}={}){const we=Array.isArray(Ee),aA=this.tokenizer(we?Ee:[Ee],{padding:!0,truncation:!0}),gA=(await this.model(aA)).logits,dA=this.model.config.id2label,$=[];for(let mA=0;mAoA==this.tokenizer.sep_token_id);$[xe].map((oA,et)=>oA==1&&(et===0||et>pA&&mA.findIndex(It=>It==OA[et])===-1));const GA=sA[xe].tolist(),VA=gA[xe].tolist();for(let oA=1;oAet==OA[oA])!==-1)&&(GA[oA]=-1/0,VA[oA]=-1/0);const $A=(0,x.softmax)(GA).map((oA,et)=>[oA,et]),RA=(0,x.softmax)(VA).map((oA,et)=>[oA,et]);$A[0][0]=0,RA[0][0]=0;const FA=(0,M.product)($A,RA).filter(oA=>oA[0][1]<=oA[1][1]).map(oA=>[oA[0][1],oA[1][1],oA[0][0]*oA[1][0]]).sort((oA,et)=>et[2]-oA[2]);for(let oA=0;oAGA==this.tokenizer.mask_token_id);if(mA===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const EA=aA[dA][mA],xe=await(0,S.topk)(new S.Tensor("float32",(0,x.softmax)(EA.data),EA.dims),Ne),OA=xe[0].tolist(),pA=xe[1].tolist();sA.push(pA.map((GA,VA)=>{const $A=$.slice();return $A[mA]=GA,{score:OA[VA],token:Number(GA),token_str:this.tokenizer.decode([GA]),sequence:this.tokenizer.decode($A,{skip_special_tokens:!0})}}))}return Array.isArray(Ee)?sA:sA[0]}}class d extends K{constructor(Ne){super(Ne);_e(this,"_key","generated_text")}async _call(Ne,we={}){Array.isArray(Ne)||(Ne=[Ne]),this.model.config.prefix&&(Ne=Ne.map(mA=>this.model.config.prefix+mA));const aA=this.model.config.task_specific_params;aA&&aA[this.task]&&aA[this.task].prefix&&(Ne=Ne.map(mA=>aA[this.task].prefix+mA));const sA=this.tokenizer,gA={padding:!0,truncation:!0};let dA;this instanceof e&&"_build_translation_inputs"in sA?dA=sA._build_translation_inputs(Ne,gA,we):dA=sA(Ne,gA);const $=await this.model.generate({...dA,...we});return sA.batch_decode($,{skip_special_tokens:!0}).map(mA=>({[this._key]:mA}))}}class v extends d{constructor(Ne){super(Ne);_e(this,"_key","summary_text")}}class e extends d{constructor(Ne){super(Ne);_e(this,"_key","translation_text")}}function u(Ze){return Array.isArray(Ze)&&Ze.every(Ee=>"role"in Ee&&"content"in Ee)}class Q extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne={}){let we=!1,aA=!1,sA;if(typeof Ee=="string")sA=Ee=[Ee];else if(Array.isArray(Ee)&&Ee.every(pA=>typeof pA=="string"))we=!0,sA=Ee;else{if(u(Ee))Ee=[Ee];else if(Array.isArray(Ee)&&Ee.every(u))we=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");aA=!0,sA=Ee.map(pA=>this.tokenizer.apply_chat_template(pA,{tokenize:!1,add_generation_prompt:!0}))}const gA=Ne.add_special_tokens??!1,dA=aA?!1:Ne.return_full_text??!0;this.tokenizer.padding_side="left";const $=this.tokenizer(sA,{add_special_tokens:gA,padding:!0,truncation:!0}),mA=await this.model.generate({...$,...Ne}),EA=this.tokenizer.batch_decode(mA,{skip_special_tokens:!0});let xe;!dA&&$.input_ids.dims.at(-1)>0&&(xe=this.tokenizer.batch_decode($.input_ids,{skip_special_tokens:!0}).map(pA=>pA.length));const OA=Array.from({length:Ee.length},pA=>[]);for(let pA=0;pA[Ne.toLowerCase(),we])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(Ee,Ne,{hypothesis_template:we="This example is {}.",multi_label:aA=!1}={}){const sA=Array.isArray(Ee);sA||(Ee=[Ee]),Array.isArray(Ne)||(Ne=[Ne]);const gA=Ne.map(mA=>we.replace("{}",mA)),dA=aA||Ne.length===1,$=[];for(const mA of Ee){const EA=[];for(const pA of gA){const GA=this.tokenizer(mA,{text_pair:pA,padding:!0,truncation:!0}),VA=await this.model(GA);dA?EA.push([VA.logits.data[this.contradiction_id],VA.logits.data[this.entailment_id]]):EA.push(VA.logits.data[this.entailment_id])}const OA=(dA?EA.map(pA=>(0,x.softmax)(pA)[1]):(0,x.softmax)(EA)).map((pA,GA)=>[pA,GA]).sort((pA,GA)=>GA[0]-pA[0]);$.push({sequence:mA,labels:OA.map(pA=>Ne[pA[1]]),scores:OA.map(pA=>pA[0])})}return sA?$:$[0]}}class O extends K{constructor(Ee){super(Ee)}async _call(Ee,{pooling:Ne="none",normalize:we=!1,quantize:aA=!1,precision:sA="binary"}={}){const gA=this.tokenizer(Ee,{padding:!0,truncation:!0}),dA=await this.model(gA);let $=dA.last_hidden_state??dA.logits??dA.token_embeddings;if(Ne!=="none")if(Ne==="mean")$=(0,S.mean_pooling)($,gA.attention_mask);else if(Ne==="cls")$=$.slice(null,0);else throw Error(`Pooling method '${Ne}' not supported.`);return we&&($=$.normalize(2,-1)),aA&&($=(0,S.quantize_embeddings)($,sA)),$}}class R extends K{constructor(Ee){super(Ee)}async _call(Ee,{pool:Ne=null}={}){const we=await P(Ee),{pixel_values:aA}=await this.processor(we),sA=await this.model({pixel_values:aA});let gA;if(Ne){if(!("pooler_output"in sA))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");gA=sA.pooler_output}else gA=sA.last_hidden_state??sA.logits??sA.image_embeds;return gA}}class De extends K{constructor(Ee){super(Ee)}async _call(Ee,{top_k:Ne=5}={}){const we=this.processor.feature_extractor.config.sampling_rate,aA=await j(Ee,we),sA=this.model.config.id2label,gA=[];for(const dA of aA){const $=await this.processor(dA),EA=(await this.model($)).logits[0],xe=await(0,S.topk)(new S.Tensor("float32",(0,x.softmax)(EA.data),EA.dims),Ne),OA=xe[0].tolist(),GA=xe[1].tolist().map((VA,$A)=>({label:sA?sA[VA]:`LABEL_${VA}`,score:OA[$A]}));gA.push(GA)}return Array.isArray(Ee)?gA:gA[0]}}class ce extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne,{hypothesis_template:we="This is a sound of {}."}={}){const aA=!Array.isArray(Ee);aA&&(Ee=[Ee]);const sA=Ne.map(EA=>we.replace("{}",EA)),gA=this.tokenizer(sA,{padding:!0,truncation:!0}),dA=this.processor.feature_extractor.config.sampling_rate,$=await j(Ee,dA),mA=[];for(const EA of $){const xe=await this.processor(EA),OA=await this.model({...gA,...xe}),pA=(0,x.softmax)(OA.logits_per_audio.data);mA.push([...pA].map((GA,VA)=>({score:GA,label:Ne[VA]})))}return aA?mA[0]:mA}}class Te extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(Ee,Ne);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(Ee,Ne);case"moonshine":return this._call_moonshine(Ee,Ne);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(Ee,Ne){Ne.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),Ne.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const we=!Array.isArray(Ee);we&&(Ee=[Ee]);const aA=this.processor.feature_extractor.config.sampling_rate,sA=await j(Ee,aA),gA=[];for(const dA of sA){const $=await this.processor(dA),EA=(await this.model($)).logits[0],xe=[];for(const pA of EA)xe.push((0,x.max)(pA.data)[1]);const OA=this.tokenizer.decode(xe);gA.push({text:OA})}return we?gA[0]:gA}async _call_whisper(Ee,Ne){const we=Ne.return_timestamps??!1,aA=Ne.chunk_length_s??0,sA=Ne.force_full_sequences??!1;let gA=Ne.stride_length_s??null;const dA={...Ne};we==="word"&&(dA.return_token_timestamps=!0,dA.return_timestamps=!1);const $=!Array.isArray(Ee);$&&(Ee=[Ee]);const mA=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,EA=this.processor.feature_extractor.config.hop_length,xe=this.processor.feature_extractor.config.sampling_rate,OA=await j(Ee,xe),pA=[];for(const GA of OA){let VA=[];if(aA>0){if(gA===null)gA=aA/6;else if(aA<=gA)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const FA=xe*aA,oA=xe*gA,et=FA-2*oA;let It=0;for(;;){const dt=It+FA,gt=GA.subarray(It,dt),Ut=await this.processor(gt),ua=It===0,XA=dt>=GA.length;if(VA.push({stride:[gt.length,ua?0:oA,XA?0:oA],input_features:Ut.input_features,is_last:XA}),XA)break;It+=et}}else VA=[{stride:[GA.length,0,0],input_features:(await this.processor(GA)).input_features,is_last:!0}];for(const FA of VA){dA.num_frames=Math.floor(FA.stride[0]/EA);const oA=await this.model.generate({inputs:FA.input_features,...dA});we==="word"?(FA.tokens=oA.sequences.tolist()[0],FA.token_timestamps=oA.token_timestamps.tolist()[0].map(et=>(0,x.round)(et,2))):FA.tokens=oA[0].tolist(),FA.stride=FA.stride.map(et=>et/xe)}const[$A,RA]=this.tokenizer._decode_asr(VA,{time_precision:mA,return_timestamps:we,force_full_sequences:sA});pA.push({text:$A,...RA})}return $?pA[0]:pA}async _call_moonshine(Ee,Ne){const we=!Array.isArray(Ee);we&&(Ee=[Ee]);const aA=this.processor.feature_extractor.config.sampling_rate,sA=await j(Ee,aA),gA=[];for(const dA of sA){const $=await this.processor(dA),mA=Math.floor(dA.length/aA)*6,EA=await this.model.generate({max_new_tokens:mA,...Ne,...$}),xe=this.processor.batch_decode(EA,{skip_special_tokens:!0})[0];gA.push({text:xe})}return we?gA[0]:gA}}class Be extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne={}){const we=Array.isArray(Ee),aA=await P(Ee),{pixel_values:sA}=await this.processor(aA),gA=[];for(const dA of sA){dA.dims=[1,...dA.dims];const $=await this.model.generate({inputs:dA,...Ne}),mA=this.tokenizer.batch_decode($,{skip_special_tokens:!0}).map(EA=>({generated_text:EA.trim()}));gA.push(mA)}return we?gA:gA[0]}}class Qe extends K{constructor(Ee){super(Ee)}async _call(Ee,{top_k:Ne=5}={}){const we=await P(Ee),{pixel_values:aA}=await this.processor(we),sA=await this.model({pixel_values:aA}),gA=this.model.config.id2label,dA=[];for(const $ of sA.logits){const mA=await(0,S.topk)(new S.Tensor("float32",(0,x.softmax)($.data),$.dims),Ne),EA=mA[0].tolist(),OA=mA[1].tolist().map((pA,GA)=>({label:gA?gA[pA]:`LABEL_${pA}`,score:EA[GA]}));dA.push(OA)}return Array.isArray(Ee)?dA:dA[0]}}class je extends K{constructor(Ee){super(Ee),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(Ee,{threshold:Ne=.5,mask_threshold:we=.5,overlap_mask_area_threshold:aA=.8,label_ids_to_fuse:sA=null,target_sizes:gA=null,subtask:dA=null}={}){if(Array.isArray(Ee)&&Ee.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const mA=await P(Ee),EA=mA.map(FA=>[FA.height,FA.width]),xe=await this.processor(mA),{inputNames:OA,outputNames:pA}=this.model.sessions.model;if(!OA.includes("pixel_values")){if(OA.length!==1)throw Error(`Expected a single input name, but got ${OA.length} inputs: ${OA}.`);const FA=OA[0];if(FA in xe)throw Error(`Input name ${FA} already exists in the inputs.`);xe[FA]=xe.pixel_values}const GA=await this.model(xe);let VA=null;if(dA!==null)VA=this.subtasks_mapping[dA];else if(this.processor.image_processor){for(const[FA,oA]of Object.entries(this.subtasks_mapping))if(oA in this.processor.image_processor){VA=this.processor.image_processor[oA].bind(this.processor.image_processor),dA=FA;break}}const $A=this.model.config.id2label,RA=[];if(dA)if(dA==="panoptic"||dA==="instance"){const FA=VA(GA,Ne,we,aA,sA,gA??EA)[0],oA=FA.segmentation;for(const et of FA.segments_info){const It=new Uint8ClampedArray(oA.data.length);for(let gt=0;gtUt<-1e-5||Ut>1+1e-5)&&dt.sigmoid_();const gt=await T.RawImage.fromTensor(dt.mul_(255).to("uint8")).resize(It[1],It[0]);RA.push({label:null,score:null,mask:gt})}}return RA}}class Se extends je{constructor(Ee){super(Ee)}async _call(Ee,Ne={}){if(Array.isArray(Ee)&&Ee.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");const aA=await P(Ee),sA=await super._call(Ee,Ne);return aA.map((dA,$)=>{const mA=dA.clone();return mA.putAlpha(sA[$].mask),mA})}}class Je extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne,{hypothesis_template:we="This is a photo of {}"}={}){const aA=Array.isArray(Ee),sA=await P(Ee),gA=Ne.map(OA=>we.replace("{}",OA)),dA=this.tokenizer(gA,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:$}=await this.processor(sA),mA=await this.model({...dA,pixel_values:$}),EA=this.model.config.model_type==="siglip"?OA=>OA.sigmoid().data:OA=>(0,x.softmax)(OA.data),xe=[];for(const OA of mA.logits_per_image){const GA=[...EA(OA)].map((VA,$A)=>({score:VA,label:Ne[$A]}));GA.sort((VA,$A)=>$A.score-VA.score),xe.push(GA)}return aA?xe:xe[0]}}class Xe extends K{constructor(Ee){super(Ee)}async _call(Ee,{threshold:Ne=.9,percentage:we=!1}={}){const aA=Array.isArray(Ee);if(aA&&Ee.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const sA=await P(Ee),gA=we?null:sA.map(pA=>[pA.height,pA.width]),{pixel_values:dA,pixel_mask:$}=await this.processor(sA),mA=await this.model({pixel_values:dA,pixel_mask:$}),EA=this.processor.image_processor.post_process_object_detection(mA,Ne,gA),xe=this.model.config.id2label,OA=EA.map(pA=>pA.boxes.map((GA,VA)=>({score:pA.scores[VA],label:xe[pA.classes[VA]],box:L(GA,!we)})));return aA?OA:OA[0]}}class be extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne,{threshold:we=.1,top_k:aA=null,percentage:sA=!1}={}){const gA=Array.isArray(Ee),dA=await P(Ee),$=this.tokenizer(Ne,{padding:!0,truncation:!0}),mA=await this.processor(dA),EA=[];for(let xe=0;xe({score:RA.scores[oA],label:RA.labels[oA],box:L(FA,!sA)}))}else{const RA=this.processor.image_processor.post_process_object_detection(VA,we,pA,!0)[0];$A=RA.boxes.map((FA,oA)=>({score:RA.scores[oA],label:Ne[RA.classes[oA]],box:L(FA,!sA)}))}$A.sort((RA,FA)=>FA.score-RA.score),aA!==null&&($A=$A.slice(0,aA)),EA.push($A)}return gA?EA:EA[0]}}class le extends K{constructor(Ee){super(Ee)}async _call(Ee,Ne,we={}){const aA=(await P(Ee))[0],{pixel_values:sA}=await this.processor(aA),gA=`${Ne}`,dA=this.tokenizer(gA,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,$=await this.model.generate({inputs:sA,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:dA,...we}),EA=this.tokenizer.batch_decode($)[0].match(/(.*?)<\/s_answer>/);let xe=null;return EA&&EA.length>=2&&(xe=EA[1].trim()),[{answer:xe}]}}class Ie extends K{constructor(Ne){super(Ne);_e(this,"DEFAULT_VOCODER_ID","Xenova/speecht5_hifigan");this.vocoder=Ne.vocoder??null}async _call(Ne,{speaker_embeddings:we=null}={}){return this.processor?this._call_text_to_spectrogram(Ne,{speaker_embeddings:we}):this._call_text_to_waveform(Ne)}async _call_text_to_waveform(Ne){const we=this.tokenizer(Ne,{padding:!0,truncation:!0}),{waveform:aA}=await this.model(we),sA=this.model.config.sampling_rate;return new G.RawAudio(aA.data,sA)}async _call_text_to_spectrogram(Ne,{speaker_embeddings:we}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await C.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof we=="string"||we instanceof URL)&&(we=new Float32Array(await(await fetch(we)).arrayBuffer())),we instanceof Float32Array)we=new S.Tensor("float32",we,[1,we.length]);else if(!(we instanceof S.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:aA}=this.tokenizer(Ne,{padding:!0,truncation:!0}),{waveform:sA}=await this.model.generate_speech(aA,we,{vocoder:this.vocoder}),gA=this.processor.feature_extractor.config.sampling_rate;return new G.RawAudio(sA.data,gA)}}class Oe extends K{constructor(Ee){super(Ee)}async _call(Ee){const Ne=await P(Ee),we=await this.processor(Ne),aA=await this.model(we),sA=[];for(const gA of aA.reconstruction){const dA=gA.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");sA.push(T.RawImage.fromTensor(dA))}return sA.length>1?sA:sA[0]}}class tA extends K{constructor(Ee){super(Ee)}async _call(Ee){const Ne=await P(Ee),we=await this.processor(Ne),{predicted_depth:aA}=await this.model(we),sA=[];for(let gA=0;gA1?sA:sA[0]}}const Ve=Object.freeze({"text-classification":{tokenizer:g.AutoTokenizer,pipeline:ae,model:C.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:g.AutoTokenizer,pipeline:Y,model:C.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:g.AutoTokenizer,pipeline:V,model:C.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:g.AutoTokenizer,pipeline:ee,model:C.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:g.AutoTokenizer,pipeline:v,model:C.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:g.AutoTokenizer,pipeline:e,model:C.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:g.AutoTokenizer,pipeline:d,model:C.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:g.AutoTokenizer,pipeline:Q,model:C.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:g.AutoTokenizer,pipeline:oe,model:C.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:De,model:C.AutoModelForAudioClassification,processor:p.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:g.AutoTokenizer,pipeline:ce,model:C.AutoModel,processor:p.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:g.AutoTokenizer,pipeline:Te,model:[C.AutoModelForSpeechSeq2Seq,C.AutoModelForCTC],processor:p.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:g.AutoTokenizer,pipeline:Ie,model:[C.AutoModelForTextToWaveform,C.AutoModelForTextToSpectrogram],processor:[p.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:g.AutoTokenizer,pipeline:Be,model:C.AutoModelForVision2Seq,processor:p.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:Qe,model:C.AutoModelForImageClassification,processor:p.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:je,model:[C.AutoModelForImageSegmentation,C.AutoModelForSemanticSegmentation,C.AutoModelForUniversalSegmentation],processor:p.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:Se,model:[C.AutoModelForImageSegmentation,C.AutoModelForSemanticSegmentation,C.AutoModelForUniversalSegmentation],processor:p.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:g.AutoTokenizer,pipeline:Je,model:C.AutoModel,processor:p.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Xe,model:C.AutoModelForObjectDetection,processor:p.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:g.AutoTokenizer,pipeline:be,model:C.AutoModelForZeroShotObjectDetection,processor:p.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:g.AutoTokenizer,pipeline:le,model:C.AutoModelForDocumentQuestionAnswering,processor:p.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:Oe,model:C.AutoModelForImageToImage,processor:p.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:tA,model:C.AutoModelForDepthEstimation,processor:p.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:g.AutoTokenizer,pipeline:O,model:C.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:p.AutoProcessor,pipeline:R,model:[C.AutoModelForImageFeatureExtraction,C.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Ue=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function BA(Ze,Ee=null,{progress_callback:Ne=null,config:we=null,cache_dir:aA=null,local_files_only:sA=!1,revision:gA="main",device:dA=null,dtype:$=null,subfolder:mA="onnx",use_external_data_format:EA=null,model_file_name:xe=null,session_options:OA={}}={}){Ze=Ue[Ze]??Ze;const pA=Ve[Ze.split("_",1)[0]];if(!pA)throw Error(`Unsupported pipeline: ${Ze}. Must be one of [${Object.keys(Ve)}]`);Ee||(Ee=pA.default.model,console.log(`No model specified. Using default model: "${Ee}".`));const GA={progress_callback:Ne,config:we,cache_dir:aA,local_files_only:sA,revision:gA,device:dA,dtype:$,subfolder:mA,use_external_data_format:EA,model_file_name:xe,session_options:OA},VA=new Map([["tokenizer",pA.tokenizer],["model",pA.model],["processor",pA.processor]]),$A=await QA(VA,Ee,GA);$A.task=Ze,(0,M.dispatchCallback)(Ne,{status:"ready",task:Ze,model:Ee});const RA=pA.pipeline;return new RA($A)}async function QA(Ze,Ee,Ne){const we=Object.create(null),aA=[];for(const[sA,gA]of Ze.entries()){if(!gA)continue;let dA;Array.isArray(gA)?dA=new Promise(async($,mA)=>{var xe,OA;let EA;for(const pA of gA){if(pA===null){$(null);return}try{$(await pA.from_pretrained(Ee,Ne));return}catch(GA){if((xe=GA.message)!=null&&xe.includes("Unsupported model type"))EA=GA;else if((OA=GA.message)!=null&&OA.includes("Could not locate file"))EA=GA;else{mA(GA);return}}}mA(EA)}):dA=gA.from_pretrained(Ee,Ne),we[sA]=dA,aA.push(dA)}await Promise.all(aA);for(const[sA,gA]of Object.entries(we))we[sA]=await gA;return we}},"./src/tokenizers.js":(s,n,i)=>{i.r(n),i.d(n,{AlbertTokenizer:()=>Qt,AutoTokenizer:()=>La,BartTokenizer:()=>za,BertTokenizer:()=>ft,BlenderbotSmallTokenizer:()=>gs,BlenderbotTokenizer:()=>$r,BloomTokenizer:()=>ks,CLIPTokenizer:()=>ka,CamembertTokenizer:()=>fs,CodeGenTokenizer:()=>mr,CodeLlamaTokenizer:()=>wa,CohereTokenizer:()=>Fs,ConvBertTokenizer:()=>or,DebertaTokenizer:()=>JA,DebertaV2Tokenizer:()=>zt,DistilBertTokenizer:()=>br,ElectraTokenizer:()=>Ha,EsmTokenizer:()=>qA,FalconTokenizer:()=>wA,GPT2Tokenizer:()=>Da,GPTNeoXTokenizer:()=>DA,GemmaTokenizer:()=>Ka,Grok1Tokenizer:()=>Xa,HerbertTokenizer:()=>ir,LlamaTokenizer:()=>Ia,M2M100Tokenizer:()=>Ja,MBart50Tokenizer:()=>as,MBartTokenizer:()=>Ua,MPNetTokenizer:()=>sa,MarianTokenizer:()=>Ms,MgpstrTokenizer:()=>Ga,MobileBertTokenizer:()=>st,NllbTokenizer:()=>Za,NougatTokenizer:()=>Na,PreTrainedTokenizer:()=>eA,Qwen2Tokenizer:()=>lr,RoFormerTokenizer:()=>HA,RobertaTokenizer:()=>Ht,SiglipTokenizer:()=>ya,SpeechT5Tokenizer:()=>vs,SqueezeBertTokenizer:()=>wt,T5Tokenizer:()=>Qs,TokenizerModel:()=>R,VitsTokenizer:()=>Mi,Wav2Vec2CTCTokenizer:()=>Ss,WhisperTokenizer:()=>ct,XLMRobertaTokenizer:()=>Es,XLMTokenizer:()=>ws,is_chinese_char:()=>ee});var g=i("./src/utils/generic.js"),C=i("./src/utils/core.js"),p=i("./src/utils/hub.js"),I=i("./src/utils/maths.js"),M=i("./src/utils/tensor.js"),x=i("./src/utils/data-structures.js"),G=i("./node_modules/@huggingface/jinja/dist/index.js"),S=i("./src/models/whisper/common_whisper.js");async function T(He,se){const ke=await Promise.all([(0,p.getModelJSON)(He,"tokenizer.json",!0,se),(0,p.getModelJSON)(He,"tokenizer_config.json",!0,se)]);return se.legacy!==null&&(ke[1].legacy=se.legacy),ke}function P(He,se){const ke=[];let Pe=0;for(const Fe of He.matchAll(se)){const Ke=Fe[0];Pe0&&ke.push(Ke),Pe=Fe.index+Ke.length}return Pe=19968&&He<=40959||He>=13312&&He<=19903||He>=131072&&He<=173791||He>=173824&&He<=177983||He>=177984&&He<=178207||He>=178208&&He<=183983||He>=63744&&He<=64255||He>=194560&&He<=195103}function d(He,se,ke){const Pe=[];let Fe=0;for(;Fethis.tokens_to_ids.get(ke)??this.unk_token_id)}convert_ids_to_tokens(se){return se.map(ke=>this.vocab[ke]??this.unk_token)}}class De extends R{constructor(se){super(se),this.tokens_to_ids=L(se.vocab),this.unk_token_id=this.tokens_to_ids.get(se.unk_token),this.unk_token=se.unk_token,this.max_input_chars_per_word=se.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[ke,Pe]of this.tokens_to_ids)this.vocab[Pe]=ke}encode(se){const ke=[];for(const Pe of se){const Fe=[...Pe];if(Fe.length>this.max_input_chars_per_word){ke.push(this.unk_token);continue}let Ke=!1,lA=0;const yA=[];for(;lA0&&(cA=this.config.continuing_subword_prefix+cA),this.tokens_to_ids.has(cA)){SA=cA;break}--zA}if(SA===null){Ke=!0;break}yA.push(SA),lA=zA}Ke?ke.push(this.unk_token):ke.push(...yA)}return ke}}class ce extends R{constructor(se,ke){super(se);const Pe=se.vocab.length;this.vocab=new Array(Pe),this.scores=new Array(Pe);for(let Fe=0;Fe[Fe,Ke])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=ke.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,I.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new x.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(se){const ke=se.chars,Pe=1;let Fe=0;for(;Fe{const He=[...Array.from({length:94},(Fe,Ke)=>Ke+33),...Array.from({length:12},(Fe,Ke)=>Ke+161),...Array.from({length:82},(Fe,Ke)=>Ke+174)],se=He.slice();let ke=0;for(let Fe=0;Fe<256;++Fe)He.includes(Fe)||(He.push(Fe),se.push(256+ke),ke+=1);const Pe=se.map(Fe=>String.fromCharCode(Fe));return Object.fromEntries(He.map((Fe,Ke)=>[Fe,Pe[Ke]]))})(),Be=(0,C.reverseDictionary)(Te);class Qe extends R{constructor(se){super(se),this.tokens_to_ids=L(se.vocab),this.unk_token_id=this.tokens_to_ids.get(se.unk_token),this.unk_token=se.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[Pe,Fe]of this.tokens_to_ids)this.vocab[Fe]=Pe;const ke=Array.isArray(se.merges[0]);this.merges=ke?se.merges:se.merges.map(Pe=>Pe.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((Pe,Fe)=>[JSON.stringify(Pe),Fe])),this.end_of_word_suffix=se.end_of_word_suffix,this.continuing_subword_suffix=se.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new x.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(se){if(se.length===0)return[];const ke=this.cache.get(se);if(ke!==void 0)return ke;const Pe=Array.from(se);this.end_of_word_suffix&&(Pe[Pe.length-1]+=this.end_of_word_suffix);let Fe=[];if(Pe.length>1){const Ke=new x.PriorityQueue((zA,SA)=>zA.score`<0x${yA.toString(16).toUpperCase().padStart(2,"0")}>`);lA.every(yA=>this.tokens_to_ids.has(yA))?ke.push(...lA):ke.push(this.unk_token)}else ke.push(this.unk_token)}return ke}}class je extends R{constructor(se,ke){super(se),this.tokens_to_ids=L(ke.target_lang?se.vocab[ke.target_lang]:se.vocab),this.bos_token=ke.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=ke.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=ke.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=ke.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[Pe,Fe]of this.tokens_to_ids)this.vocab[Fe]=Pe}encode(se){return se}}class Se extends g.Callable{constructor(se){super(),this.config=se}static fromConfig(se){if(se===null)return null;switch(se.type){case"BertNormalizer":return new Ze(se);case"Precompiled":return new XA(se);case"Sequence":return new QA(se);case"Replace":return new Je(se);case"NFC":return new be(se);case"NFD":return new le(se);case"NFKC":return new Ie(se);case"NFKD":return new Oe(se);case"Strip":return new tA(se);case"StripAccents":return new Ve(se);case"Lowercase":return new Ue(se);case"Prepend":return new BA(se);default:throw new Error(`Unknown Normalizer type: ${se.type}`)}}normalize(se){throw Error("normalize should be implemented in subclass.")}_call(se){return this.normalize(se)}}class Je extends Se{normalize(se){const ke=j(this.config.pattern);return ke===null?se:se.replaceAll(ke,this.config.content)}}class Xe extends Se{constructor(){super(...arguments);_e(this,"form")}normalize(ke){return ke=ke.normalize(this.form),ke}}class be extends Xe{constructor(){super(...arguments);_e(this,"form","NFC")}}class le extends Xe{constructor(){super(...arguments);_e(this,"form","NFD")}}class Ie extends Xe{constructor(){super(...arguments);_e(this,"form","NFKC")}}class Oe extends Xe{constructor(){super(...arguments);_e(this,"form","NFKD")}}class tA extends Se{normalize(se){return this.config.strip_left&&this.config.strip_right?se=se.trim():(this.config.strip_left&&(se=se.trimStart()),this.config.strip_right&&(se=se.trimEnd())),se}}class Ve extends Se{normalize(se){return se=Y(se),se}}class Ue extends Se{normalize(se){return se=se.toLowerCase(),se}}class BA extends Se{normalize(se){return se=this.config.prepend+se,se}}class QA extends Se{constructor(se){super(se),this.normalizers=se.normalizers.map(ke=>Se.fromConfig(ke))}normalize(se){return this.normalizers.reduce((ke,Pe)=>Pe.normalize(ke),se)}}class Ze extends Se{_tokenize_chinese_chars(se){const ke=[];for(let Pe=0;Pethis.pre_tokenize_text(Pe,ke)):this.pre_tokenize_text(se,ke)).flat()}_call(se,ke){return this.pre_tokenize(se,ke)}}class Ne extends Ee{constructor(se){super(),this.pattern=new RegExp(`[^\\s${e}]+|[${e}]`,"gu")}pre_tokenize_text(se,ke){return se.trim().match(this.pattern)||[]}}class we extends Ee{constructor(se){super(),this.config=se,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=new RegExp("'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+","gu"),this.byte_encoder=Te,this.text_encoder=new TextEncoder}pre_tokenize_text(se,ke){return this.add_prefix_space&&!se.startsWith(" ")&&(se=" "+se),(this.use_regex?se.match(this.pattern)||[]:[se]).map(Fe=>Array.from(this.text_encoder.encode(Fe),Ke=>this.byte_encoder[Ke]).join(""))}}class aA extends Ee{constructor(se){super(),this.config=se,this.pattern=j(this.config.pattern,this.config.invert)}pre_tokenize_text(se,ke){var Pe;return this.pattern===null?[]:this.config.invert?se.match(this.pattern)||[]:((Pe=this.config.behavior)==null?void 0:Pe.toLowerCase())==="removed"?se.split(this.pattern).filter(Fe=>Fe):P(se,this.pattern)}}class sA extends Ee{constructor(se){super(),this.config=se,this.pattern=new RegExp(`[^${e}]+|[${e}]+`,"gu")}pre_tokenize_text(se,ke){return se.match(this.pattern)||[]}}class gA extends Ee{constructor(se){super(),this.config=se;const ke=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(ke,"gu")}pre_tokenize_text(se,ke){return se.match(this.pattern)||[]}}class dA extends g.Callable{constructor(se){super(),this.config=se}static fromConfig(se){if(se===null)return null;switch(se.type){case"TemplateProcessing":return new EA(se);case"ByteLevel":return new xe(se);case"RobertaProcessing":return new mA(se);case"BertProcessing":return new $(se);case"Sequence":return new OA(se);default:throw new Error(`Unknown PostProcessor type: ${se.type}`)}}post_process(se,...ke){throw Error("post_process should be implemented in subclass.")}_call(se,...ke){return this.post_process(se,...ke)}}class $ extends dA{constructor(se){super(se),this.cls=se.cls[0],this.sep=se.sep[0]}post_process(se,ke=null,{add_special_tokens:Pe=!0}={}){Pe&&(se=(0,C.mergeArrays)([this.cls],se,[this.sep]));let Fe=new Array(se.length).fill(0);if(ke!==null){const Ke=Pe&&this instanceof mA?[this.sep]:[],lA=Pe?[this.sep]:[];se=(0,C.mergeArrays)(se,Ke,ke,lA),Fe=(0,C.mergeArrays)(Fe,new Array(ke.length+Ke.length+lA.length).fill(1))}return{tokens:se,token_type_ids:Fe}}}class mA extends ${}class EA extends dA{constructor(se){super(se),this.single=se.single,this.pair=se.pair}post_process(se,ke=null,{add_special_tokens:Pe=!0}={}){const Fe=ke===null?this.single:this.pair;let Ke=[],lA=[];for(const yA of Fe)"SpecialToken"in yA?Pe&&(Ke.push(yA.SpecialToken.id),lA.push(yA.SpecialToken.type_id)):"Sequence"in yA&&(yA.Sequence.id==="A"?(Ke=(0,C.mergeArrays)(Ke,se),lA=(0,C.mergeArrays)(lA,new Array(se.length).fill(yA.Sequence.type_id))):yA.Sequence.id==="B"&&(Ke=(0,C.mergeArrays)(Ke,ke),lA=(0,C.mergeArrays)(lA,new Array(ke.length).fill(yA.Sequence.type_id))));return{tokens:Ke,token_type_ids:lA}}}class xe extends dA{post_process(se,ke=null){return ke&&(se=(0,C.mergeArrays)(se,ke)),{tokens:se}}}class OA extends dA{constructor(se){super(se),this.processors=se.processors.map(ke=>dA.fromConfig(ke))}post_process(se,ke=null,Pe={}){let Fe;for(const Ke of this.processors)if(Ke instanceof xe)se=Ke.post_process(se).tokens,ke&&(ke=Ke.post_process(ke).tokens);else{const lA=Ke.post_process(se,ke,Pe);se=lA.tokens,Fe=lA.token_type_ids}return{tokens:se,token_type_ids:Fe}}}class pA extends g.Callable{constructor(se){super(),this.config=se,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=se.trim_offsets}static fromConfig(se){if(se===null)return null;switch(se.type){case"WordPiece":return new FA(se);case"Metaspace":return new ua(se);case"ByteLevel":return new oA(se);case"Replace":return new GA(se);case"ByteFallback":return new VA(se);case"Fuse":return new $A(se);case"Strip":return new RA(se);case"Sequence":return new It(se);case"CTC":return new et(se);case"BPEDecoder":return new dt(se);default:throw new Error(`Unknown Decoder type: ${se.type}`)}}_call(se){return this.decode(se)}decode(se){return this.decode_chain(se).join("")}decode_chain(se){throw Error("`decode_chain` should be implemented in subclass.")}}class GA extends pA{decode_chain(se){const ke=j(this.config.pattern);return ke===null?se:se.map(Pe=>Pe.replaceAll(ke,this.config.content))}}class VA extends pA{constructor(se){super(se),this.text_decoder=new TextDecoder}decode_chain(se){const ke=[];let Pe=[];for(const Fe of se){let Ke=null;if(Fe.length===6&&Fe.startsWith("<0x")&&Fe.endsWith(">")){const lA=parseInt(Fe.slice(3,5),16);isNaN(lA)||(Ke=lA)}if(Ke!==null)Pe.push(Ke);else{if(Pe.length>0){const lA=this.text_decoder.decode(Uint8Array.from(Pe));ke.push(lA),Pe=[]}ke.push(Fe)}}if(Pe.length>0){const Fe=this.text_decoder.decode(Uint8Array.from(Pe));ke.push(Fe),Pe=[]}return ke}}class $A extends pA{decode_chain(se){return[se.join("")]}}class RA extends pA{constructor(se){super(se),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(se){return se.map(ke=>{let Pe=0;for(let Ke=0;Ke(Pe!==0&&(ke.startsWith(this.config.prefix)?ke=ke.replace(this.config.prefix,""):ke=" "+ke),this.cleanup&&(ke=ae(ke)),ke))}}class oA extends pA{constructor(se){super(se),this.byte_decoder=Be,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(se){const ke=se.join(""),Pe=new Uint8Array([...ke].map(Ke=>this.byte_decoder[Ke]));return this.text_decoder.decode(Pe)}decode_chain(se){const ke=[];let Pe=[];for(const Fe of se)this.added_tokens.find(Ke=>Ke.content===Fe)!==void 0?(Pe.length>0&&(ke.push(this.convert_tokens_to_string(Pe)),Pe=[]),ke.push(Fe)):Pe.push(Fe);return Pe.length>0&&ke.push(this.convert_tokens_to_string(Pe)),ke}}class et extends pA{constructor(se){super(se),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(se){if(se.length===0)return"";const ke=[se[0]];for(let Ke=1;KeKe!==this.pad_token).join("");return this.cleanup&&(Fe=ae(Fe).replaceAll(this.word_delimiter_token," ").trim()),Fe}decode_chain(se){return[this.convert_tokens_to_string(se)]}}class It extends pA{constructor(se){super(se),this.decoders=se.decoders.map(ke=>pA.fromConfig(ke))}decode_chain(se){return this.decoders.reduce((ke,Pe)=>Pe.decode_chain(ke),se)}}class dt extends pA{constructor(se){super(se),this.suffix=this.config.suffix}decode_chain(se){return se.map((ke,Pe)=>ke.replaceAll(this.suffix,Pe===se.length-1?"":" "))}}class gt extends pA{decode_chain(se){let ke="";for(let Pe=1;PePe.normalize("NFKC")).join("~"):se=se.normalize("NFKC"),se}}class rs extends Ee{constructor(se){super(),this.tokenizers=se.pretokenizers.map(ke=>Ee.fromConfig(ke))}pre_tokenize_text(se,ke){return this.tokenizers.reduce((Pe,Fe)=>Fe.pre_tokenize(Pe,ke),[se])}}class ge extends Ee{constructor(se){super()}pre_tokenize_text(se,ke){return se.match(/\w+|[^\w\s]+/g)||[]}}class Re extends Ee{constructor(se){super()}pre_tokenize_text(se,ke){return v(se)}}class me extends Ee{constructor(se){super(),this.config=se,this.pattern=j(this.config.pattern),this.content=this.config.content}pre_tokenize_text(se,ke){return this.pattern===null?[se]:[se.replaceAll(this.pattern,this.config.content)]}}const ze=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function $e(He,se,ke,Pe){for(const Fe of Object.keys(He)){const Ke=se-He[Fe].length,lA=ke(Fe),yA=new Array(Ke).fill(lA);He[Fe]=Pe==="right"?(0,C.mergeArrays)(He[Fe],yA):(0,C.mergeArrays)(yA,He[Fe])}}function CA(He,se){for(const ke of Object.keys(He))He[ke].length=se}class eA extends g.Callable{constructor(ke,Pe){super();_e(this,"return_token_type_ids",!1);_e(this,"padding_side","right");this._tokenizer_config=Pe,this.normalizer=Se.fromConfig(ke.normalizer),this.pre_tokenizer=Ee.fromConfig(ke.pre_tokenizer),this.model=R.fromConfig(ke.model,Pe),this.post_processor=dA.fromConfig(ke.post_processor),this.decoder=pA.fromConfig(ke.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const Fe of ke.added_tokens){const Ke=new O(Fe);this.added_tokens.push(Ke),this.model.tokens_to_ids.set(Ke.content,Ke.id),this.model.vocab[Ke.id]=Ke.content,Ke.special&&(this.special_tokens.push(Ke.content),this.all_special_ids.push(Ke.id))}if(this.additional_special_tokens=Pe.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new x.DictionarySplitter(this.added_tokens.map(Fe=>Fe.content)),this.added_tokens_map=new Map(this.added_tokens.map(Fe=>[Fe.content,Fe])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=Pe.model_max_length,this.remove_space=Pe.remove_space,this.clean_up_tokenization_spaces=Pe.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=Pe.do_lowercase_and_remove_accent??!1,Pe.padding_side&&(this.padding_side=Pe.padding_side),this.legacy=!1,this.chat_template=Pe.chat_template??null,Array.isArray(this.chat_template)){const Fe=Object.create(null);for(const{name:Ke,template:lA}of this.chat_template){if(typeof Ke!="string"||typeof lA!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');Fe[Ke]=lA}this.chat_template=Fe}this._compiled_template_cache=new Map}getToken(...ke){for(const Pe of ke){const Fe=this._tokenizer_config[Pe];if(Fe)if(typeof Fe=="object"){if(Fe.__type==="AddedToken")return Fe.content;throw Error(`Unknown token: ${Fe}`)}else return Fe}return null}static async from_pretrained(ke,{progress_callback:Pe=null,config:Fe=null,cache_dir:Ke=null,local_files_only:lA=!1,revision:yA="main",legacy:zA=null}={}){const SA=await T(ke,{progress_callback:Pe,config:Fe,cache_dir:Ke,local_files_only:lA,revision:yA,legacy:zA});return new this(...SA)}_call(ke,{text_pair:Pe=null,add_special_tokens:Fe=!0,padding:Ke=!1,truncation:lA=null,max_length:yA=null,return_tensor:zA=!0,return_token_type_ids:SA=null}={}){const cA=Array.isArray(ke);let ht;if(cA){if(ke.length===0)throw Error("text array must be non-empty");if(Pe!==null){if(Array.isArray(Pe)){if(ke.length!==Pe.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");ht=ke.map((_t,Br)=>this._encode_plus(_t,{text_pair:Pe[Br],add_special_tokens:Fe,return_token_type_ids:SA}))}else ht=ke.map(_t=>this._encode_plus(_t,{add_special_tokens:Fe,return_token_type_ids:SA}))}else{if(ke==null)throw Error("text may not be null or undefined");if(Array.isArray(Pe))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");ht=[this._encode_plus(ke,{text_pair:Pe,add_special_tokens:Fe,return_token_type_ids:SA})]}if(yA===null?yA=this.model_max_length:lA===null&&(Ke===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),yA=this.model_max_length):Ke===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),lA=!0)),Ke===!0&&(yA=Math.min((0,I.max)(ht.map(_t=>_t.input_ids.length))[0],yA??1/0)),yA=Math.min(yA,this.model_max_length??1/0),Ke||lA)for(let _t=0;_tyA?lA&&CA(ht[_t],yA):Ke&&$e(ht[_t],yA,Br=>Br==="input_ids"?this.pad_token_id:0,this.padding_side));const Ot={};if(zA){if(!(Ke&&lA)&&ht.some(Br=>{var Jt;for(const Wr of Object.keys(Br))if(Br[Wr].length!==((Jt=ht[0][Wr])==null?void 0:Jt.length))return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const _t=[ht.length,ht[0].input_ids.length];for(const Br of Object.keys(ht[0]))Ot[Br]=new M.Tensor("int64",BigInt64Array.from(ht.flatMap(Jt=>Jt[Br]).map(BigInt)),_t)}else{for(const _t of Object.keys(ht[0]))Ot[_t]=ht.map(Br=>Br[_t]);if(!cA)for(const _t of Object.keys(Ot))Ot[_t]=Ot[_t][0]}return Ot}_encode_text(ke){if(ke===null)return null;const Pe=this.added_tokens_splitter.split(ke);for(let Ke=0;Ke0&&(Pe[Ke-1]=Pe[Ke-1].trimEnd()),lA.rstrip&&Ke{if(Ke.length===0)return[];if(this.added_tokens_map.has(Ke))return[Ke];if(this.remove_space===!0&&(Ke=Ke.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(Ke=V(Ke)),this.normalizer!==null&&(Ke=this.normalizer(Ke)),Ke.length===0)return[];const yA=this.pre_tokenizer!==null?this.pre_tokenizer(Ke,{section_index:lA}):[Ke];return this.model(yA)})}_encode_plus(ke,{text_pair:Pe=null,add_special_tokens:Fe=!0,return_token_type_ids:Ke=null}={}){const{tokens:lA,token_type_ids:yA}=this._tokenize_helper(ke,{pair:Pe,add_special_tokens:Fe}),zA=this.model.convert_tokens_to_ids(lA),SA={input_ids:zA,attention_mask:new Array(zA.length).fill(1)};return(Ke??this.return_token_type_ids)&&yA&&(SA.token_type_ids=yA),SA}_tokenize_helper(ke,{pair:Pe=null,add_special_tokens:Fe=!1}={}){const Ke=this._encode_text(ke),lA=this._encode_text(Pe);return this.post_processor?this.post_processor(Ke,lA,{add_special_tokens:Fe}):{tokens:(0,C.mergeArrays)(Ke??[],lA??[])}}tokenize(ke,{pair:Pe=null,add_special_tokens:Fe=!1}={}){return this._tokenize_helper(ke,{pair:Pe,add_special_tokens:Fe}).tokens}encode(ke,{text_pair:Pe=null,add_special_tokens:Fe=!0,return_token_type_ids:Ke=null}={}){return this._encode_plus(ke,{text_pair:Pe,add_special_tokens:Fe,return_token_type_ids:Ke}).input_ids}batch_decode(ke,Pe={}){return ke instanceof M.Tensor&&(ke=ke.tolist()),ke.map(Fe=>this.decode(Fe,Pe))}decode(ke,Pe={}){if(ke instanceof M.Tensor&&(ke=K(ke)),!Array.isArray(ke)||ke.length===0||!(0,C.isIntegralNumber)(ke[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(ke,Pe)}decode_single(ke,{skip_special_tokens:Pe=!1,clean_up_tokenization_spaces:Fe=null}){let Ke=this.model.convert_ids_to_tokens(ke);Pe&&(Ke=Ke.filter(yA=>!this.special_tokens.includes(yA)));let lA=this.decoder?this.decoder(Ke):Ke.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(lA=lA.replaceAll(this.decoder.end_of_word_suffix," "),Pe&&(lA=lA.trim())),(Fe??this.clean_up_tokenization_spaces)&&(lA=ae(lA)),lA}get_chat_template({chat_template:ke=null,tools:Pe=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Fe=this.chat_template;if(ke!==null&&Object.hasOwn(Fe,ke))ke=Fe[ke];else if(ke===null)if(Pe!==null&&"tool_use"in Fe)ke=Fe.tool_use;else if("default"in Fe)ke=Fe.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(Fe).sort()}.`)}else if(ke===null)if(this.chat_template)ke=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return ke}apply_chat_template(ke,{tools:Pe=null,documents:Fe=null,chat_template:Ke=null,add_generation_prompt:lA=!1,tokenize:yA=!0,padding:zA=!1,truncation:SA=!1,max_length:cA=null,return_tensor:ht=!0,return_dict:Ot=!1,tokenizer_kwargs:_t={},...Br}={}){if(Ke=this.get_chat_template({chat_template:Ke,tools:Pe}),typeof Ke!="string")throw Error(`chat_template must be a string, but got ${typeof Ke}`);let Jt=this._compiled_template_cache.get(Ke);Jt===void 0&&(Jt=new G.Template(Ke),this._compiled_template_cache.set(Ke,Jt));const Wr=Object.create(null);for(const Vr of ze){const da=this.getToken(Vr);da&&(Wr[Vr]=da)}const cr=Jt.render({messages:ke,add_generation_prompt:lA,tools:Pe,documents:Fe,...Wr,...Br});if(yA){const Vr=this._call(cr,{add_special_tokens:!1,padding:zA,truncation:SA,max_length:cA,return_tensor:ht,..._t});return Ot?Vr:Vr.input_ids}return cr}}class ft extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class Qt extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class st extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class wt extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class JA extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class zt extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class ir extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class or extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class HA extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class br extends eA{}class fs extends eA{}class ws extends eA{constructor(ke,Pe){super(ke,Pe);_e(this,"return_token_type_ids",!0);console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class Ha extends eA{constructor(){super(...arguments);_e(this,"return_token_type_ids",!0)}}class Qs extends eA{}class Da extends eA{}class za extends eA{}class Ua extends eA{constructor(se,ke){super(se,ke),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(Pe=>this.languageRegex.test(Pe)),this.lang_to_token=Pe=>Pe}_build_translation_inputs(se,ke,Pe){return Ta(this,se,ke,Pe)}}class as extends Ua{}class Ht extends eA{}class ks extends eA{}const xr="▁";class Ia extends eA{constructor(ke,Pe){super(ke,Pe);_e(this,"padding_side","left");this.legacy=Pe.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Ut({replacement:xr,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(ke){if(ke===null)return null;if(this.legacy||ke.length===0)return super._encode_text(ke);let Pe=super._encode_text(xr+ke.replaceAll(xr," "));return Pe.length>1&&Pe[0]===xr&&this.special_tokens.includes(Pe[1])&&(Pe=Pe.slice(1)),Pe}}class wa extends eA{}class Es extends eA{}class sa extends eA{}class wA extends eA{}class DA extends eA{}class qA extends eA{}class lr extends eA{}class Ka extends eA{}class Xa extends eA{}function Ta(He,se,ke,Pe){if(!("language_codes"in He)||!Array.isArray(He.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in He)||!(He.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in He)||typeof He.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const Fe=Pe.src_lang,Ke=Pe.tgt_lang;if(!He.language_codes.includes(Ke))throw new Error(`Target language code "${Ke}" is not valid. Must be one of: {${He.language_codes.join(", ")}}`);if(Fe!==void 0){if(!He.language_codes.includes(Fe))throw new Error(`Source language code "${Fe}" is not valid. Must be one of: {${He.language_codes.join(", ")}}`);for(const lA of He.post_processor.config.single)if("SpecialToken"in lA&&He.languageRegex.test(lA.SpecialToken.id)){lA.SpecialToken.id=He.lang_to_token(Fe);break}}return Pe.forced_bos_token_id=He.model.convert_tokens_to_ids([He.lang_to_token(Ke)])[0],He._call(se,ke)}class Za extends eA{constructor(se,ke){super(se,ke),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(Pe=>this.languageRegex.test(Pe)),this.lang_to_token=Pe=>Pe}_build_translation_inputs(se,ke,Pe){return Ta(this,se,ke,Pe)}}class Ja extends eA{constructor(se,ke){super(se,ke),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(Pe=>this.languageRegex.test(Pe)).map(Pe=>Pe.slice(2,-2)),this.lang_to_token=Pe=>`__${Pe}__`}_build_translation_inputs(se,ke,Pe){return Ta(this,se,ke,Pe)}}class ct extends eA{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(se,{return_timestamps:ke=!1,return_language:Pe=!1,time_precision:Fe=null,force_full_sequences:Ke=!0}={}){if(Fe===null)throw Error("Must specify time_precision");let lA=null;const yA=ke==="word";function zA(){return{language:lA,timestamp:[null,null],text:""}}const SA=[];let cA=zA(),ht=0;const Ot=this.timestamp_begin,Br=Ot+1500;let Jt=[],Wr=[],cr=!1,Vr=null;const da=new Set(this.all_special_ids);for(const qt of se){const _r=qt.tokens,zr=yA?qt.token_timestamps:null;let Kt=null,Pr=Ot;if("stride"in qt){const[Ir,Cr,Dr]=qt.stride;if(ht-=Cr,Vr=Ir-Dr,Cr&&(Pr=Cr/Fe+Ot),Dr)for(let UA=_r.length-1;UA>=0;--UA){const jt=Number(_r[UA]);if(jt>=Ot){if(Kt!==null&&(jt-Ot)*Fe=Ot&&Cr<=Br){const Dr=(Cr-Ot)*Fe+ht,UA=(0,I.round)(Dr,2);if(Kt!==null&&Cr>=Kt)cr=!0;else if(cr||Jt.length>0&&Cr0?(Jt.push(fa),yA&&Wr.push(Hr)):Jt.every(Ir=>Ir.length===0)&&(cA=zA(),Jt=[],fa=[],Wr=[],Hr=[])}if(Jt.length>0){if(Ke&&ke)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[qt,_r]=this.findLongestCommonSequence(Jt,Wr),zr=this.decode(qt);cA.text=zr,yA&&(cA.words=this.collateWordTimestamps(qt,_r,lA)),SA.push(cA)}let Yr=Object.create(null);const ea=SA.map(qt=>qt.text).join("");if(ke||Pe){for(let qt=0;qt0;let yA=lA?[]:null,zA=lA?ke[0]:null;for(let SA=1;SACr===Pr[Dr]&&zA[ea+Dr]<=ke[SA][zr+Dr]).length:fa=_r.filter((Cr,Dr)=>Cr===Pr[Dr]).length;const Hr=Yr/1e4,Ir=fa/Yr+Hr;fa>1&&Ir>ht&&(ht=Ir,Ot=[ea,qt,zr,Kt])}const[Br,Jt,Wr,cr]=Ot,Vr=Math.floor((Jt+Br)/2),da=Math.floor((cr+Wr)/2);Ke.push(...Pe.slice(0,Vr)),Pe=cA.slice(da),Fe=Pe.length,lA&&(yA.push(...zA.slice(0,Vr)),zA=ke[SA].slice(da))}return Ke.push(...Pe),lA?(yA.push(...zA),[Ke,yA]):[Ke,[]]}collateWordTimestamps(se,ke,Pe){const[Fe,Ke,lA]=this.combineTokensIntoWords(se,Pe),yA=[];for(let zA=0;zA=Fe){const yA=((lA-Fe)*Pe).toFixed(2);Ke.push(`<|${yA}|>`),Ke.push([])}else Ke[Ke.length-1].push(lA);return Ke=Ke.map(lA=>typeof lA=="string"?lA:super.decode(lA,ke)),Ke.join("")}splitTokensOnUnicode(se){const ke=this.decode(se,{decode_with_timestamps:!0}),Pe="�",Fe=[],Ke=[],lA=[];let yA=[],zA=[],SA=0;for(let cA=0;cA=this.model.tokens_to_ids.get("<|endoftext|>"),Br=cA.startsWith(" "),Jt=cA.trim(),Wr=zA.test(Jt);if(_t||Br||Wr||Ke.length===0)Ke.push(cA),lA.push(ht),yA.push(Ot);else{const cr=Ke.length-1;Ke[cr]+=cA,lA[cr].push(...ht),yA[cr].push(...Ot)}}return[Ke,lA,yA]}mergePunctuations(se,ke,Pe,Fe,Ke){const lA=structuredClone(se),yA=structuredClone(ke),zA=structuredClone(Pe);let SA=lA.length-2,cA=lA.length-1;for(;SA>=0;)lA[SA].startsWith(" ")&&Fe.includes(lA[SA].trim())?(lA[cA]=lA[SA]+lA[cA],yA[cA]=(0,C.mergeArrays)(yA[SA],yA[cA]),zA[cA]=(0,C.mergeArrays)(zA[SA],zA[cA]),lA[SA]="",yA[SA]=[],zA[SA]=[]):cA=SA,--SA;for(SA=0,cA=1;cAht),yA.filter(ht=>ht.length>0),zA.filter(ht=>ht.length>0)]}}class mr extends eA{}class ka extends eA{}class ya extends eA{}class Ms extends eA{constructor(se,ke){super(se,ke),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(Pe=>this.languageRegex.test(Pe)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(se){if(se===null)return null;const[ke,...Pe]=se.trim().split(this.languageRegex);if(Pe.length===0)return super._encode_text(ke);if(Pe.length===2){const[Fe,Ke]=Pe;return this.supported_language_codes.includes(Fe)||console.warn(`Unsupported language code "${Fe}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,C.mergeArrays)([Fe],super._encode_text(Ke))}}}class Ss extends eA{}class $r extends eA{}class gs extends eA{}class vs extends eA{}class Na extends eA{}class Mi extends eA{constructor(se,ke){super(se,ke),this.decoder=new gt({})}}class Fs extends eA{}class Ga extends eA{}class La{static async from_pretrained(se,{progress_callback:ke=null,config:Pe=null,cache_dir:Fe=null,local_files_only:Ke=!1,revision:lA="main",legacy:yA=null}={}){var Ot;const[zA,SA]=await T(se,{progress_callback:ke,config:Pe,cache_dir:Fe,local_files_only:Ke,revision:lA,legacy:yA}),cA=((Ot=SA.tokenizer_class)==null?void 0:Ot.replace(/Fast$/,""))??"PreTrainedTokenizer";let ht=this.TOKENIZER_CLASS_MAPPING[cA];return ht||(console.warn(`Unknown tokenizer class "${cA}", attempting to construct from base class.`),ht=eA),new ht(zA,SA)}}_e(La,"TOKENIZER_CLASS_MAPPING",{T5Tokenizer:Qs,DistilBertTokenizer:br,CamembertTokenizer:fs,DebertaTokenizer:JA,DebertaV2Tokenizer:zt,BertTokenizer:ft,HerbertTokenizer:ir,ConvBertTokenizer:or,RoFormerTokenizer:HA,XLMTokenizer:ws,ElectraTokenizer:Ha,MobileBertTokenizer:st,SqueezeBertTokenizer:wt,AlbertTokenizer:Qt,GPT2Tokenizer:Da,BartTokenizer:za,MBartTokenizer:Ua,MBart50Tokenizer:as,RobertaTokenizer:Ht,WhisperTokenizer:ct,CodeGenTokenizer:mr,CLIPTokenizer:ka,SiglipTokenizer:ya,MarianTokenizer:Ms,BloomTokenizer:ks,NllbTokenizer:Za,M2M100Tokenizer:Ja,LlamaTokenizer:Ia,CodeLlamaTokenizer:wa,XLMRobertaTokenizer:Es,MPNetTokenizer:sa,FalconTokenizer:wA,GPTNeoXTokenizer:DA,EsmTokenizer:qA,Wav2Vec2CTCTokenizer:Ss,BlenderbotTokenizer:$r,BlenderbotSmallTokenizer:gs,SpeechT5Tokenizer:vs,NougatTokenizer:Na,VitsTokenizer:Mi,Qwen2Tokenizer:lr,GemmaTokenizer:Ka,Grok1Tokenizer:Xa,CohereTokenizer:Fs,MgpstrTokenizer:Ga,PreTrainedTokenizer:eA})},"./src/utils/audio.js":(s,n,i)=>{i.r(n),i.d(n,{RawAudio:()=>De,hamming:()=>P,hanning:()=>T,mel_filter_bank:()=>ee,read_audio:()=>G,spectrogram:()=>Q,window_function:()=>oe});var g=i("./src/utils/hub.js"),C=i("./src/utils/maths.js"),p=i("./src/utils/core.js"),I=i("./src/env.js"),M=i("?7a2c"),x=i("./src/utils/tensor.js");async function G(ce,Te){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const Be=await(await(0,g.getFile)(ce)).arrayBuffer(),Qe=new AudioContext({sampleRate:Te});typeof Te>"u"&&console.warn(`No sampling rate provided, using default of ${Qe.sampleRate}Hz.`);const je=await Qe.decodeAudioData(Be);let Se;if(je.numberOfChannels===2){const Je=Math.sqrt(2),Xe=je.getChannelData(0),be=je.getChannelData(1);Se=new Float32Array(Xe.length);for(let le=0;le2595*Math.log10(1+ce/700),kaldi:ce=>1127*Math.log(1+ce/700),slaney:(ce,Te=1e3,Be=15,Qe=27/Math.log(6.4))=>ce>=Te?Be+Math.log(ce/Te)*Qe:3*ce/200};function L(ce,Te="htk"){const Be=j[Te];if(!Be)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof ce=="number"?Be(ce):ce.map(Qe=>Be(Qe))}const K={htk:ce=>700*(10**(ce/2595)-1),kaldi:ce=>700*(Math.exp(ce/1127)-1),slaney:(ce,Te=1e3,Be=15,Qe=Math.log(6.4)/27)=>ce>=Be?Te*Math.exp(Qe*(ce-Be)):200*ce/3};function ae(ce,Te="htk"){const Be=K[Te];if(!Be)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof ce=="number"?Be(ce):ce.map(Qe=>Be(Qe))}function Y(ce,Te){const Be=Float64Array.from({length:Te.length-1},(Je,Xe)=>Te[Xe+1]-Te[Xe]),Qe=Array.from({length:ce.length},()=>new Array(Te.length));for(let Je=0;Jenew Array(ce.length));for(let Je=0;Jece+Qe*Se)}function ee(ce,Te,Be,Qe,je,Se=null,Je="htk",Xe=!1){if(Se!==null&&Se!=="slaney")throw new Error('norm must be one of null or "slaney"');if(ce<2)throw new Error(`Require num_frequency_bins: ${ce} >= 2`);if(Be>Qe)throw new Error(`Require min_frequency: ${Be} <= max_frequency: ${Qe}`);const be=L(Be,Je),le=L(Qe,Je),Ie=V(be,le,Te+2);let Oe=ae(Ie,Je),tA;if(Xe){const Ue=je/((ce-1)*2);tA=L(Float64Array.from({length:ce},(BA,QA)=>QA*Ue),Je),Oe=Ie}else tA=V(0,Math.floor(je/2),ce);const Ve=Y(tA,Oe);if(Se!==null&&Se==="slaney")for(let Ue=0;Ueje)throw Error(`frame_length (${Be}) may not be larger than fft_length (${je})`);if(aA!==Be)throw new Error(`Length of the window (${aA}) must equal frame_length (${Be})`);if(Qe<=0)throw new Error("hop_length must be greater than zero");if(Se===null&&Ie!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(Je){if(Xe!=="reflect")throw new Error(`pad_mode="${Xe}" not implemented yet.`);const $A=Math.floor((je-1)/2)+1;ce=d(ce,$A,$A)}let sA=Math.floor(1+Math.floor((ce.length-Be)/Qe));Ze!==null&&sAsA?Ne&&($=Ee):$=dA=Ee);const mA=new C.FFT(je),EA=new Float64Array(je),xe=new Float64Array(mA.outputBufferSize),OA=new Float32Array(gA*$);for(let $A=0;$A=1;--oA)EA[oA]-=le*EA[oA-1];EA[0]*=1-le}for(let oA=0;oAMath.pow(Xe,.85));break;default:throw new Error(`Unknown window type ${Te}.`)}if(Be&&(Je=Je.subarray(0,ce)),Qe===null)return Je;if(ce>Qe)throw new Error(`Length of the window (${ce}) may not be larger than frame_length (${Qe})`);return Je}function O(ce,Te){let Be=44;const Qe=new ArrayBuffer(Be+ce.length*4),je=new DataView(Qe);R(je,0,"RIFF"),je.setUint32(4,36+ce.length*4,!0),R(je,8,"WAVE"),R(je,12,"fmt "),je.setUint32(16,16,!0),je.setUint16(20,3,!0),je.setUint16(22,1,!0),je.setUint32(24,Te,!0),je.setUint32(28,Te*4,!0),je.setUint16(32,4,!0),je.setUint16(34,32,!0),R(je,36,"data"),je.setUint32(40,ce.length*4,!0);for(let Se=0;Se{let Se=await je.arrayBuffer();M.writeFileSync(Qe,Buffer.from(Se))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await Be(Te,this.toBlob())}}},"./src/utils/constants.js":(s,n,i)=>{i.r(n),i.d(n,{CHAT_TEMPLATE_NAME:()=>x,CONFIG_NAME:()=>C,FEATURE_EXTRACTOR_NAME:()=>p,GENERATION_CONFIG_NAME:()=>G,GITHUB_ISSUE_URL:()=>g,IMAGE_PROCESSOR_NAME:()=>I,PROCESSOR_NAME:()=>M});const g="https://github.com/huggingface/transformers.js/issues/new/choose",C="config.json",p="preprocessor_config.json",I=p,M="processor_config.json",x="chat_template.json",G="generation_config.json"},"./src/utils/core.js":(s,n,i)=>{i.r(n),i.d(n,{calculateDimensions:()=>G,calculateReflectOffset:()=>j,count:()=>Y,dispatchCallback:()=>g,escapeRegExp:()=>p,isIntegralNumber:()=>M,isNullishDimension:()=>x,isTypedArray:()=>I,len:()=>ae,mergeArrays:()=>T,pick:()=>K,pop:()=>S,product:()=>P,reverseDictionary:()=>C,saveBlob:()=>L});function g(V,ee){V&&V(ee)}function C(V){return Object.fromEntries(Object.entries(V).map(([ee,d])=>[d,ee]))}function p(V){return V.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function I(V){var ee,d,v;return((v=(d=(ee=V==null?void 0:V.prototype)==null?void 0:ee.__proto__)==null?void 0:d.constructor)==null?void 0:v.name)==="TypedArray"}function M(V){return Number.isInteger(V)||typeof V=="bigint"}function x(V){return V==null||V===-1}function G(V){const ee=[];let d=V;for(;Array.isArray(d);)ee.push(d.length),d=d[0];return ee}function S(V,ee,d=void 0){const v=V[ee];if(v!==void 0)return delete V[ee],v;if(d===void 0)throw Error(`Key ${ee} does not exist in object.`);return d}function T(...V){return Array.prototype.concat.apply([],V)}function P(...V){return V.reduce((ee,d)=>ee.flatMap(v=>d.map(e=>[v,e])))}function j(V,ee){return Math.abs((V+ee)%(2*ee)-ee)}function L(V,ee){const d=URL.createObjectURL(ee),v=document.createElement("a");v.href=d,v.download=V,v.click(),v.remove(),URL.revokeObjectURL(d)}function K(V,ee){return Object.assign({},...ee.map(d=>{if(V[d]!==void 0)return{[d]:V[d]}}))}function ae(V){let ee=0;for(const d of V)++ee;return ee}function Y(V,ee){let d=0;for(const v of V)v===ee&&++d;return d}},"./src/utils/data-structures.js":(s,n,i)=>{i.r(n),i.d(n,{CharTrie:()=>C,DictionarySplitter:()=>x,LRUCache:()=>G,PriorityQueue:()=>g,TokenLattice:()=>I});class g{constructor(T=(j,L)=>j>L,P=1/0){this._heap=[],this._comparator=T,this._maxSize=P}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...T){return this.extend(T)}extend(T){for(const P of T)if(this.size0&&this._swap(0,P),this._heap.pop(),this._siftDown(),T}replace(T){const P=this.peek();return this._heap[0]=T,this._siftDown(),P}_parent(T){return(T+1>>>1)-1}_left(T){return(T<<1)+1}_right(T){return T+1<<1}_greater(T,P){return this._comparator(this._heap[T],this._heap[P])}_swap(T,P){const j=this._heap[T];this._heap[T]=this._heap[P],this._heap[P]=j}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(T){for(;T>0&&this._greater(T,this._parent(T));)this._swap(T,this._parent(T)),T=this._parent(T)}_siftDown(){let T=0;for(;this._left(T)[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const L=new M(this.bosTokenId,0,0,0,0),K=new M(this.eosTokenId,1,this.len,0,0);this.nodes.push(L.clone()),this.nodes.push(K.clone()),this.beginNodes[this.len].push(K),this.endNodes[0].push(L)}insert(T,P,j,L){const K=this.nodes.length,ae=new M(L,K,T,P,j);this.beginNodes[T].push(ae),this.endNodes[T+P].push(ae),this.nodes.push(ae)}viterbi(){const T=this.len;let P=0;for(;P<=T;){if(this.beginNodes[P].length==0)return[];for(let Y of this.beginNodes[P]){Y.prev=null;let V=0,ee=null;for(let d of this.endNodes[P]){const v=d.backtraceScore+Y.score;(ee===null||v>V)&&(ee=d.clone(),V=v)}if(ee!==null)Y.prev=ee,Y.backtraceScore=V;else return[]}++P}const j=[],K=this.beginNodes[T][0].prev;if(K===null)return[];let ae=K.clone();for(;ae.prev!==null;)j.push(ae.clone()),ae=ae.clone().prev.clone();return j.reverse(),j}piece(T){return this.chars.slice(T.pos,T.pos+T.length).join("")}tokens(){return this.viterbi().map(P=>this.piece(P))}tokenIds(){return this.viterbi().map(P=>P.tokenId)}}class M{constructor(T,P,j,L,K){this.tokenId=T,this.nodeId=P,this.pos=j,this.length=L,this.score=K,this.prev=null,this.backtraceScore=0}clone(){const T=new M(this.tokenId,this.nodeId,this.pos,this.length,this.score);return T.prev=this.prev,T.backtraceScore=this.backtraceScore,T}}class x{constructor(T){this.trie=this._buildTrie(T)}_buildTrie(T){var j;const P=Object.create(null);for(const L of T){let K=P;for(let ae=0;aeL&&P.push(T.slice(L,K)),P.push(Y),K+=Y.length,L=K):++K}return Lthis.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}},"./src/utils/devices.js":(s,n,i)=>{i.r(n),i.d(n,{DEVICE_TYPES:()=>g});const g=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})},"./src/utils/dtypes.js":(s,n,i)=>{i.r(n),i.d(n,{DATA_TYPES:()=>I,DEFAULT_DEVICE_DTYPE_MAPPING:()=>M,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>x,isWebGpuFp16Supported:()=>p});var g=i("./src/env.js"),C=i("./src/utils/devices.js");const p=function(){let G;return async function(){if(G===void 0)if(!g.apis.IS_WEBGPU_AVAILABLE)G=!1;else try{G=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{G=!1}return G}}(),I=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),M=Object.freeze({[C.DEVICE_TYPES.wasm]:I.q8}),x=Object.freeze({[I.fp32]:"",[I.fp16]:"_fp16",[I.int8]:"_int8",[I.uint8]:"_uint8",[I.q8]:"_quantized",[I.q4]:"_q4",[I.q4f16]:"_q4f16",[I.bnb4]:"_bnb4"})},"./src/utils/generic.js":(s,n,i)=>{i.r(n),i.d(n,{Callable:()=>g});const g=class{constructor(){let C=function(...p){return C._call(...p)};return Object.setPrototypeOf(C,new.target.prototype)}_call(...C){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(s,n,i)=>{i.r(n),i.d(n,{MAX_EXTERNAL_DATA_CHUNKS:()=>M,getFile:()=>j,getModelFile:()=>V,getModelJSON:()=>ee});var g=i("?7a2c"),C=i("?a42a"),p=i("./src/env.js"),I=i("./src/utils/core.js");const M=100,x={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class G{constructor(u){if(this.filePath=u,this.headers=new Headers,this.exists=g.existsSync(u),this.exists){this.status=200,this.statusText="OK";let Q=g.statSync(u);this.headers.set("content-length",Q.size.toString()),this.updateContentType();const oe=g.createReadStream(u);this.body=new ReadableStream({start(O){oe.on("data",R=>O.enqueue(R)),oe.on("end",()=>O.close()),oe.on("error",R=>O.error(R))},cancel(){oe.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const u=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",x[u]??"application/octet-stream")}clone(){let u=new G(this.filePath);return u.exists=this.exists,u.status=this.status,u.statusText=this.statusText,u.headers=new Headers(this.headers),u}async arrayBuffer(){return(await g.promises.readFile(this.filePath)).buffer}async blob(){const u=await g.promises.readFile(this.filePath);return new Blob([u],{type:this.headers.get("content-type")})}async text(){return await g.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function S(e,u=null,Q=null){let oe;try{oe=new URL(e)}catch{return!1}return!(u&&!u.includes(oe.protocol)||Q&&!Q.includes(oe.hostname))}const T=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function P(e){return!(!T.test(e)||e.includes("..")||e.includes("--")||e.endsWith(".git")||e.endsWith(".ipynb"))}async function j(e){var u;if(p.env.useFS&&!S(e,["http:","https:","blob:"]))return new G(e instanceof URL?e.protocol==="file:"?e.pathname:e.toString():e);if(typeof process<"u"&&((u=process==null?void 0:process.release)==null?void 0:u.name)==="node"){const Q=!!(fn!=null&&fn.TESTING_REMOTELY),oe=p.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${oe}; is_ci/${Q};`),S(e,["http:","https:"],["huggingface.co","hf.co"])){const De=(fn==null?void 0:fn.HF_TOKEN)??(fn==null?void 0:fn.HF_ACCESS_TOKEN);De&&O.set("Authorization",`Bearer ${De}`)}return fetch(e,{headers:O})}else return fetch(e)}const L={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function K(e,u,Q){if(!Q)return null;const oe=L[e]??`Error (${e}) occurred while trying to load file`;throw Error(`${oe}: "${u}".`)}class ae{constructor(u){this.path=u}async match(u){let Q=C.join(this.path,u),oe=new G(Q);if(oe.exists)return oe}async put(u,Q,oe=void 0){let O=C.join(this.path,u);try{const R=Q.headers.get("Content-Length"),De=parseInt(R??"0");let ce=0;await g.promises.mkdir(C.dirname(O),{recursive:!0});const Te=g.createWriteStream(O),Be=Q.body.getReader();for(;;){const{done:Qe,value:je}=await Be.read();if(Qe)break;await new Promise((Je,Xe)=>{Te.write(je,be=>{if(be){Xe(be);return}Je()})}),ce+=je.length;const Se=De?ce/De*100:0;oe==null||oe({progress:Se,loaded:ce,total:De})}Te.close()}catch(R){try{await g.promises.unlink(O)}catch{}throw R}}}async function Y(e,...u){for(let Q of u)try{let oe=await e.match(Q);if(oe)return oe}catch{continue}}async function V(e,u,Q=!0,oe={},O=!1){if(!p.env.allowLocalModels){if(oe.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!p.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,I.dispatchCallback)(oe.progress_callback,{status:"initiate",name:e,file:u});let R;if(!R&&p.env.useCustomCache){if(!p.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!p.env.customCache.match||!p.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");R=p.env.customCache}if(!R&&p.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{R=await caches.open("transformers-cache")}catch(Oe){console.warn("An error occurred while opening the browser cache:",Oe)}}if(!R&&p.env.useFSCache){if(!p.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");R=new ae(oe.cache_dir??p.env.cacheDir)}const De=oe.revision??"main",ce=v(e,u),Te=P(e),Be=Te?v(p.env.localModelPath,ce):ce,Qe=v(p.env.remoteHost,p.env.remotePathTemplate.replaceAll("{model}",e).replaceAll("{revision}",encodeURIComponent(De)),u);let je;const Se=R instanceof ae?De==="main"?ce:v(e,De,u):Qe;let Je=!1,Xe;R&&(Xe=await Y(R,Be,Se));const be=Xe!==void 0;if(Xe===void 0){if(p.env.allowLocalModels)if(S(ce,["http:","https:"])){if(oe.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${ce}.`);if(!p.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${ce}.`)}else try{Xe=await j(Be),je=Be}catch(tA){console.warn(`Unable to load from local path "${Be}": "${tA}"`)}if(Xe===void 0||Xe.status===404){if(oe.local_files_only||!p.env.allowRemoteModels){if(Q)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${Be}".`);return null}if(!Te)throw Error(`Local file missing at "${Be}" and download aborted due to invalid model ID "${e}".`);if(Xe=await j(Qe),Xe.status!==200)return K(Xe.status,Qe,Q);je=Se}Je=R&&typeof Response<"u"&&Xe instanceof Response&&Xe.status===200}(0,I.dispatchCallback)(oe.progress_callback,{status:"download",name:e,file:u});let le;if(!(p.apis.IS_NODE_ENV&&O)){let Oe;oe.progress_callback?be&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(Oe=new Uint8Array(await Xe.arrayBuffer()),(0,I.dispatchCallback)(oe.progress_callback,{status:"progress",name:e,file:u,progress:100,loaded:Oe.length,total:Oe.length})):Oe=await d(Xe,tA=>{(0,I.dispatchCallback)(oe.progress_callback,{status:"progress",name:e,file:u,...tA})}):Oe=new Uint8Array(await Xe.arrayBuffer()),le=Oe}if(Je&&je&&await R.match(je)===void 0&&(le?await R.put(je,new Response(le,{headers:Xe.headers})).catch(Oe=>{console.warn(`Unable to add response to browser cache: ${Oe}.`)}):await R.put(je,Xe,oe.progress_callback)),(0,I.dispatchCallback)(oe.progress_callback,{status:"done",name:e,file:u}),le){if(!p.apis.IS_NODE_ENV&&O)throw new Error("Cannot return path in a browser environment.");return le}if(Xe instanceof G)return Xe.filePath;const Ie=await(R==null?void 0:R.match(je));if(Ie instanceof G)return Ie.filePath;if(Ie instanceof Response)return new Uint8Array(await Ie.arrayBuffer());if(typeof Ie=="string")return Ie;throw new Error("Unable to get model file path or buffer.")}async function ee(e,u,Q=!0,oe={}){const O=await V(e,u,Q,oe,!1);if(O===null)return{};const De=new TextDecoder("utf-8").decode(O);return JSON.parse(De)}async function d(e,u){const Q=e.headers.get("Content-Length");Q===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let oe=parseInt(Q??"0"),O=new Uint8Array(oe),R=0;const De=e.body.getReader();async function ce(){const{done:Te,value:Be}=await De.read();if(Te)return;const Qe=R+Be.length;if(Qe>oe){oe=Qe;const Se=new Uint8Array(oe);Se.set(O),O=Se}O.set(Be,R),R=Qe;const je=R/oe*100;return u({progress:je,loaded:R,total:oe}),ce()}return await ce(),O}function v(...e){return e=e.map((u,Q)=>(Q&&(u=u.replace(new RegExp("^/"),"")),Q!==e.length-1&&(u=u.replace(new RegExp("/$"),"")),u)),e.join("/")}},"./src/utils/image.js":(s,n,i)=>{i.r(n),i.d(n,{RawImage:()=>L,load_image:()=>K});var g=i("./src/utils/core.js"),C=i("./src/utils/hub.js"),p=i("./src/env.js"),I=i("./src/utils/tensor.js"),M=i("?2b25");let x,G,S;const T=p.apis.IS_BROWSER_ENV||p.apis.IS_WEBWORKER_ENV;if(T)x=(ae,Y)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(ae,Y)},S=self.createImageBitmap,G=self.ImageData;else if(M)S=async ae=>{const V=(await ae.metadata()).channels,{data:ee,info:d}=await ae.rotate().raw().toBuffer({resolveWithObject:!0}),v=new L(new Uint8ClampedArray(ee),d.width,d.height,d.channels);return V!==void 0&&V!==d.channels&&v.convert(V),v};else throw new Error("Unable to load image processing library.");const P={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},j=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class L{constructor(Y,V,ee,d){this.data=Y,this.width=V,this.height=ee,this.channels=d}get size(){return[this.width,this.height]}static async read(Y){if(Y instanceof L)return Y;if(typeof Y=="string"||Y instanceof URL)return await this.fromURL(Y);if(Y instanceof Blob)return await this.fromBlob(Y);if(typeof HTMLCanvasElement<"u"&&Y instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&Y instanceof OffscreenCanvas)return this.fromCanvas(Y);throw new Error(`Unsupported input type: ${typeof Y}`)}static fromCanvas(Y){if(!T)throw new Error("fromCanvas() is only supported in browser environments.");const ee=Y.getContext("2d").getImageData(0,0,Y.width,Y.height).data;return new L(ee,Y.width,Y.height,4)}static async fromURL(Y){const V=await(0,C.getFile)(Y);if(V.status!==200)throw new Error(`Unable to read image from "${Y}" (${V.status} ${V.statusText})`);const ee=await V.blob();return this.fromBlob(ee)}static async fromBlob(Y){if(T){const V=await S(Y),ee=x(V.width,V.height).getContext("2d");return ee.drawImage(V,0,0),new this(ee.getImageData(0,0,V.width,V.height).data,V.width,V.height,4)}else{const V=M(await Y.arrayBuffer());return await S(V)}}static fromTensor(Y,V="CHW"){if(Y.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${Y.dims.length} dimensions.`);if(V==="CHW")Y=Y.transpose(1,2,0);else if(V!=="HWC")throw new Error(`Unsupported channel format: ${V}`);if(!(Y.data instanceof Uint8ClampedArray||Y.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${Y.type}`);switch(Y.dims[2]){case 1:case 2:case 3:case 4:return new L(Y.data,Y.dims[1],Y.dims[0],Y.dims[2]);default:throw new Error(`Unsupported number of channels: ${Y.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const Y=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let V=0,ee=0;V=0?Q=ee:O=-ee,d>=0?oe=d:R=-d,u.drawImage(e,Q,oe,Y,V,O,R,Y,V),new L(u.getImageData(0,0,Y,V).data,Y,V,4).convert(v)}else{let v=this.toSharp();if(ee>=0&&d>=0)v=v.extract({left:Math.floor(ee),top:Math.floor(d),width:Y,height:V});else if(ee<=0&&d<=0){const e=Math.floor(-d),u=Math.floor(-ee);v=v.extend({top:e,left:u,right:Y-this.width-u,bottom:V-this.height-e})}else{let e=[0,0],u=0;d<0?(e[0]=Math.floor(-d),e[1]=V-this.height-e[0]):u=Math.floor(d);let Q=[0,0],oe=0;ee<0?(Q[0]=Math.floor(-ee),Q[1]=Y-this.width-Q[0]):oe=Math.floor(ee),v=v.extend({top:e[0],bottom:e[1],left:Q[0],right:Q[1]}).extract({left:oe,top:u,width:Y,height:V})}return await S(v)}}async toBlob(Y="image/png",V=1){if(!T)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:Y,quality:V})}toTensor(Y="CHW"){let V=new I.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(Y!=="HWC")if(Y==="CHW")V=V.permute(2,0,1);else throw new Error(`Unsupported channel format: ${Y}`);return V}toCanvas(){if(!T)throw new Error("toCanvas() is only supported in browser environments.");const Y=this.clone().rgba(),V=x(Y.width,Y.height),ee=new G(Y.data,Y.width,Y.height);return V.getContext("2d").putImageData(ee,0,0),V}split(){const{data:Y,width:V,height:ee,channels:d}=this,v=Y.constructor,e=Y.length/d,u=Array.from({length:d},()=>new v(e));for(let Q=0;Qnew L(Q,V,ee,1))}_update(Y,V,ee,d=null){return this.data=Y,this.width=V,this.height=ee,d!==null&&(this.channels=d),this}clone(){return new L(this.data.slice(),this.width,this.height,this.channels)}convert(Y){if(this.channels===Y)return this;switch(Y){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(Y){if(T){if(p.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const V=Y.split(".").pop().toLowerCase(),ee=j.get(V)??"image/png",d=await this.toBlob(ee);(0,g.saveBlob)(Y,d)}else{if(p.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(Y);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(T)throw new Error("toSharp() is only supported in server-side environments.");return M(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const K=L.read.bind(L)},"./src/utils/maths.js":(s,n,i)=>{i.r(n),i.d(n,{FFT:()=>K,bankers_round:()=>V,cos_sim:()=>x,dot:()=>M,dynamic_time_warping:()=>ee,interpolate_data:()=>g,log_softmax:()=>I,magnitude:()=>G,max:()=>T,medianFilter:()=>ae,min:()=>S,permute_data:()=>C,round:()=>Y,softmax:()=>p});function g(d,[v,e,u],[Q,oe],O="bilinear",R=!1){const De=oe/u,ce=Q/e,Te=new d.constructor(Q*oe*v),Be=e*u,Qe=Q*oe;for(let je=0;je=0;--R)Q[R]=De,u[R]=v[e[R]],De*=u[R];const oe=e.map((R,De)=>Q[e.indexOf(De)]),O=new d.constructor(d.length);for(let R=0;R=0;--ce)De+=Te%v[ce]*oe[ce],Te=Math.floor(Te/v[ce]);O[De]=d[R]}return[O,u]}function p(d){const v=T(d)[0],e=d.map(oe=>Math.exp(oe-v)),u=e.reduce((oe,O)=>oe+O,0);return e.map(oe=>oe/u)}function I(d){const v=T(d)[0];let e=0;for(let oe=0;oeoe-v-u)}function M(d,v){let e=0;for(let u=0;uv+e*e,0))}function S(d){if(d.length===0)throw Error("Array must not be empty");let v=d[0],e=0;for(let u=1;uv&&(v=d[u],e=u);return[v,e]}function P(d){return d>0&&(d&d-1)===0}class j{constructor(v){if(this.size=v|0,this.size<=1||!P(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=v<<1,this.table=new Float64Array(this.size*2);for(let u=0;uu;u<<=1)++e;this._width=e%2===0?e-1:e,this._bitrev=new Int32Array(1<>>Q&3)<>>1);for(let Q=0;Q>>1]=v[Q];return u}toComplexArray(v,e){const u=e||this.createComplexArray();for(let Q=0;Q>>1],u[Q+1]=0;return u}transform(v,e){if(v===e)throw new Error("Input and output buffers must be different");this._transform4(v,e,1)}realTransform(v,e){if(v===e)throw new Error("Input and output buffers must be different");this._realTransform4(v,e,1)}inverseTransform(v,e){if(v===e)throw new Error("Input and output buffers must be different");this._transform4(v,e,-1);for(let u=0;u>=2;O>=2;O>>=2){R=Q/O<<1;const Qe=R>>>2;for(De=0;De>>1,O>>>1)}else for(De=0,ce=0;De>>1,O>>>1,u)}const Be=this.table;for(O>>=2;O>=2;O>>=2){R=Q/O<<1;const je=R>>>1,Se=je>>>1,Je=Se>>>1;for(De=0;De>>1;for(let je=2;je>1;++Te){const Be=(Te+1-v)**2/2,Qe=Math.sqrt(De**2+ce**2)**Be,je=Be*Math.atan2(ce,De),Se=2*Te;oe[Se]=Qe*Math.cos(je),oe[Se+1]=Qe*Math.sin(je),O[Se]=oe[Se],O[Se+1]=-oe[Se+1]}this._slicedChirpBuffer=oe.subarray(e,u),this._f=new j(Q>>1),this._f.transform(this._chirpBuffer,O)}_transform(v,e,u){const Q=this._buffer1,oe=this._buffer2,O=this._outBuffer1,R=this._outBuffer2,De=this._chirpBuffer,ce=this._slicedChirpBuffer,Te=this._a;if(u)for(let Be=0;Be>1,Se=e[je];Q[Be]=Se*ce[Be],Q[Qe]=Se*ce[Qe]}else for(let Be=0;Be=d.length&&(De=2*(d.length-1)-De),u[O++]=d[De]}u.sort(),e[oe]=u[Q]}return e}function Y(d,v){const e=Math.pow(10,v);return Math.round(d*e)/e}function V(d){const v=Math.round(d);return Math.abs(d)%1===.5?v%2===0?v:v-1:v}function ee(d){const v=d.length,e=d[0].length,u=[v+1,e+1],Q=Array.from({length:u[0]},()=>Array(u[1]).fill(1/0));Q[0][0]=0;const oe=Array.from({length:u[0]},()=>Array(u[1]).fill(-1));for(let Te=1;Te0||R>0;)switch(De.push(O-1),ce.push(R-1),oe[O][R]){case 0:--O,--R;break;case 1:--O;break;case 2:--R;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${O}, ${R}]. Please file a bug report.`)}return De.reverse(),ce.reverse(),[De,ce]}},"./src/utils/tensor.js":(s,n,i)=>{i.r(n),i.d(n,{DataTypeMap:()=>I,Tensor:()=>M,cat:()=>e,full:()=>ce,full_like:()=>Te,interpolate:()=>S,interpolate_4d:()=>T,layer_norm:()=>V,matmul:()=>P,mean:()=>O,mean_pooling:()=>Y,ones:()=>Be,ones_like:()=>Qe,permute:()=>G,quantize_embeddings:()=>Xe,rand:()=>Je,rfft:()=>j,slice:()=>ae,stack:()=>u,std_mean:()=>oe,topk:()=>L,zeros:()=>je,zeros_like:()=>Se});var g=i("./src/utils/maths.js"),C=i("./src/backends/onnx.js"),p=i("./src/ops/registry.js");const I=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class M{constructor(...le){_e(this,"ort_tensor");return(0,C.isONNXTensor)(le[0])?this.ort_tensor=le[0]:this.ort_tensor=new C.Tensor(le[0],le[1],le[2]),new Proxy(this,{get:(Ie,Oe)=>{if(typeof Oe=="string"){let tA=Number(Oe);if(Number.isInteger(tA))return Ie._getitem(tA)}return Ie[Oe]},set:(Ie,Oe,tA)=>Ie[Oe]=tA})}get dims(){return this.ort_tensor.dims}set dims(le){this.ort_tensor.dims=le}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[le,...Ie]=this.dims;if(Ie.length>0){const Oe=Ie.reduce((tA,Ve)=>tA*Ve);for(let tA=0;tA0){const tA=Oe.reduce((Ve,Ue)=>Ve*Ue);return this._subarray(le,tA,Oe)}else return new M(this.type,[this.data[le]],Oe)}indexOf(le){const Ie=this.data;for(let Oe=0;Oewe)throw new Error(`Invalid slice: ${Ee}`);const aA=[Math.max(Ne,0),Math.min(we,this.dims[Ze])];Oe.push(aA),Ie.push(aA[1]-aA[0])}else throw new Error(`Invalid slice: ${Ee}`)}const tA=Oe.map(([Ze,Ee])=>Ee-Ze),Ve=tA.reduce((Ze,Ee)=>Ze*Ee),Ue=this.data,BA=new Ue.constructor(Ve),QA=this.stride();for(let Ze=0;Ze=0;--Ne){const aA=tA[Ne];Ee+=(we%aA+Oe[Ne][0])*QA[Ne],we=Math.floor(we/aA)}BA[Ze]=Ue[Ee]}return new M(this.type,BA,Ie)}permute(...le){return G(this,le)}transpose(...le){return this.permute(...le)}sum(le=null,Ie=!1){return this.norm(1,le,Ie)}norm(le="fro",Ie=null,Oe=!1){if(le==="fro")le=2;else if(typeof le=="string")throw Error(`Unsupported norm: ${le}`);const tA=this.data,Ve=(Ze,Ee)=>Ze+Ee**le;if(Ie===null){const Ze=tA.reduce(Ve,0)**(1/le);return new M(this.type,[Ze],[])}const[Ue,BA,QA]=Q(Ve,this,Ie,Oe);if(le!==1)for(let Ze=0;Ze=0;--QA){const Ne=this.dims[QA];if(QA!==Ie){const we=Ze%Ne;BA+=we*Ee,Ee*=this.dims[QA]}Ze=Math.floor(Ze/Ne)}tA[Ue]/=Ve[BA]}return this}normalize(le=2,Ie=1){return this.clone().normalize_(le,Ie)}stride(){return R(this.dims)}squeeze(le=null){return new M(this.type,this.data,ee(this.dims,le))}squeeze_(le=null){return this.dims=ee(this.dims,le),this}unsqueeze(le=null){return new M(this.type,this.data,d(this.dims,le))}unsqueeze_(le=null){return this.dims=d(this.dims,le),this}flatten_(le=0,Ie=-1){Ie=(Ie+this.dims.length)%this.dims.length;let Oe=this.dims.slice(0,le),tA=this.dims.slice(le,Ie+1),Ve=this.dims.slice(Ie+1);return this.dims=[...Oe,tA.reduce((Ue,BA)=>Ue*BA,1),...Ve],this}flatten(le=0,Ie=-1){return this.clone().flatten_(le,Ie)}view(...le){let Ie=-1;for(let tA=0;tABA!==Ie?Ve*Ue:Ve,1);le[Ie]=Oe.length/tA}return new M(this.type,Oe,le)}neg_(){const le=this.data;for(let Ie=0;Iele?1:0;return new M("bool",Ie,this.dims)}lt(le){const Ie=new Uint8Array(this.data.length),Oe=this.data;for(let tA=0;tAMath.min(Ue,BA),this,le,Ie,1/0);return new M(Oe,tA,Ve)}max(le=null,Ie=!1){if(le===null){const Ue=(0,g.max)(this.data)[0];return new M(this.type,[Ue],[])}const[Oe,tA,Ve]=Q((Ue,BA)=>Math.max(Ue,BA),this,le,Ie,-1/0);return new M(Oe,tA,Ve)}argmin(le=null,Ie=!1){if(le!==null)throw new Error("`dim !== null` not yet implemented.");const Oe=(0,g.min)(this.data)[1];return new M("int64",[BigInt(Oe)],[])}argmax(le=null,Ie=!1){if(le!==null)throw new Error("`dim !== null` not yet implemented.");const Oe=(0,g.max)(this.data)[1];return new M("int64",[BigInt(Oe)],[])}to(le){if(this.type===le)return this;if(!I.hasOwnProperty(le))throw new Error(`Unsupported type: ${le}`);let Ie;const Oe=["int64","uint64"].includes(this.type),tA=["int64","uint64"].includes(le);return Oe&&!tA?Ie=Number:!Oe&&tA&&(Ie=BigInt),new M(le,I[le].from(this.data,Ie),this.dims)}}function x(be,le){const Ie=be.length,Oe=le.reduce((Ve,Ue)=>Ve*Ue);if(Ie!==Oe)throw Error(`cannot reshape array of size ${Ie} into shape (${le})`);let tA=be;for(let Ve=le.length-1;Ve>=0;Ve--)tA=tA.reduce((Ue,BA)=>{let QA=Ue[Ue.length-1];return QA.lengthnew M("int64",be,[be.length]);async function ae(be,le,Ie,Oe,tA){return await(await p.TensorOpRegistry.slice)({x:be,s:K(le),e:K(Ie),a:K(Oe),t:K(tA??new Array(Oe.length).fill(1))})}function Y(be,le){const Ie=be.data,Oe=le.data,tA=[be.dims[0],be.dims[2]],Ve=new Ie.constructor(tA[0]*tA[1]),[Ue,BA,QA]=be.dims;let Ze=0;for(let Ee=0;EeIe!==1):typeof le=="number"?be[le]===1&&be.splice(le,1):Array.isArray(le)&&(be=be.filter((Ie,Oe)=>Ie!==1||!le.includes(Oe))),be}function d(be,le){return le=v(le,be.length+1),be=be.slice(),be.splice(le,0,1),be}function v(be,le,Ie=null,Oe=!0){if(be<-le||be>=le){if(Oe)throw new Error(`IndexError: index ${be} is out of bounds for dimension${Ie===null?"":" "+Ie} with size ${le}`);return be<-le?0:le}return be<0&&(be=(be%le+le)%le),be}function e(be,le=0){le=v(le,be[0].dims.length);const Ie=be[0].dims.slice();Ie[le]=be.reduce((Ue,BA)=>Ue+BA.dims[le],0);const Oe=Ie.reduce((Ue,BA)=>Ue*BA,1),tA=new be[0].data.constructor(Oe),Ve=be[0].type;if(le===0){let Ue=0;for(const BA of be){const QA=BA.data;tA.set(QA,Ue),Ue+=QA.length}}else{let Ue=0;for(let BA=0;BA=0;--we){const gA=Ze[we];let dA=aA%gA;we===le&&(dA+=Ue),Ne+=dA*sA,sA*=Ie[we],aA=Math.floor(aA/gA)}tA[Ne]=QA[Ee]}Ue+=Ze[le]}}return new M(Ve,tA,Ie)}function u(be,le=0){return e(be.map(Ie=>Ie.unsqueeze(le)),le)}function Q(be,le,Ie=null,Oe=!1,tA=null){const Ve=le.data,Ue=le.dims;Ie=v(Ie,Ue.length);const BA=Ue.slice();BA[Ie]=1;const QA=new Ve.constructor(Ve.length/Ue[Ie]);tA!==null&&QA.fill(tA);for(let Ze=0;Ze=0;--Ne){const sA=Ue[Ne];if(Ne!==Ie){const gA=we%sA;Ee+=gA*aA,aA*=BA[Ne]}we=Math.floor(we/sA)}QA[Ee]=be(QA[Ee],Ve[Ze],Ze,Ee)}return Oe||BA.splice(Ie,1),[le.type,QA,BA]}function oe(be,le=null,Ie=1,Oe=!1){const tA=be.data,Ve=be.dims;if(le===null){const aA=tA.reduce(($,mA)=>$+mA,0)/tA.length,sA=Math.sqrt(tA.reduce(($,mA)=>$+(mA-aA)**2,0)/(tA.length-Ie)),gA=new M(be.type,[aA],[]);return[new M(be.type,[sA],[]),gA]}le=v(le,Ve.length);const Ue=O(be,le,Oe),BA=Ue.data,[QA,Ze,Ee]=Q((we,aA,sA,gA)=>we+(aA-BA[gA])**2,be,le,Oe);for(let we=0;weZe+Ee,0);return new M(be.type,[QA/tA.length],[])}le=v(le,Oe.length);const[Ve,Ue,BA]=Q((QA,Ze)=>QA+Ze,be,le,Ie);if(Oe[le]!==1)for(let QA=0;QA=0;--Ie)le[Ie]=Oe,Oe*=be[Ie];return le}function De(be,le,Ie,Oe){const tA=be.reduce((Ve,Ue)=>Ve*Ue,1);return new M(Ie,new Oe(tA).fill(le),be)}function ce(be,le){let Ie,Oe;if(typeof le=="number")Ie="float32",Oe=Float32Array;else if(typeof le=="bigint")Ie="int64",Oe=BigInt64Array;else if(typeof le=="boolean")Ie="bool",Oe=Uint8Array;else throw new Error(`Unsupported data type: ${typeof le}`);return De(be,le,Ie,Oe)}function Te(be,le){return ce(be.dims,le)}function Be(be){return De(be,1n,"int64",BigInt64Array)}function Qe(be){return Be(be.dims)}function je(be){return De(be,0n,"int64",BigInt64Array)}function Se(be){return je(be.dims)}function Je(be){const le=be.reduce((Ie,Oe)=>Ie*Oe,1);return new M("float32",Float32Array.from({length:le},()=>Math.random()),be)}function Xe(be,le){if(be.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(be.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(le))throw new Error("The precision must be either 'binary' or 'ubinary'");const Ie=le==="binary",Oe=Ie?"int8":"uint8",tA=Ie?Int8Array:Uint8Array,Ve=be.data,Ue=new tA(Ve.length/8);for(let BA=0;BA0?1:0,Ze=Math.floor(BA/8),Ee=BA%8;Ue[Ze]|=QA<<7-Ee,Ie&&Ee===0&&(Ue[Ze]-=128)}return new M(Oe,Ue,[be.dims[0],be.dims[1]/8])}},"./src/utils/video.js":(s,n,i)=>{i.r(n),i.d(n,{RawVideo:()=>I,RawVideoFrame:()=>p,load_video:()=>M});var g=i("./src/utils/image.js"),C=i("./src/env.js");class p{constructor(G,S){this.image=G,this.timestamp=S}}class I{constructor(G,S){G.length>0&&G[0]instanceof g.RawImage&&(G=G.map((T,P)=>new p(T,(P+1)/(G.length+1)*S))),this.frames=G,this.duration=S}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function M(x,{num_frames:G=null,fps:S=null}={}){if(!C.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(G==null&&S==null)throw new Error("Either num_frames or fps must be provided.");const T=[],P=document.createElement("video");if(P.crossOrigin="anonymous",P.muted=!0,typeof x=="string")P.src=x;else if(x instanceof Blob)P.src=URL.createObjectURL(x);else if(x instanceof HTMLVideoElement)P.src=x.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(ee=>P.onloadedmetadata=ee),P.seekable.start(0)===P.seekable.end(0)){const d=await(await fetch(P.src)).blob();P.src=URL.createObjectURL(d),await new Promise(v=>P.onloadedmetadata=v)}const j=P.duration;let L,K;G!=null?(L=G,K=G===1?0:j/(G-1)):(K=1/S,L=Math.floor(j/K));let ae=[];for(let ee=0;ee{P.onseeked=u}),V.drawImage(P,0,0,Y.width,Y.height);const d=V.getImageData(0,0,Y.width,Y.height),v=new g.RawImage(d.data,Y.width,Y.height,4),e=new p(v,ee);T.push(e)}return P.remove(),new I(T,j)}},"?154a":()=>{},"?2b25":()=>{},"?2ce3":()=>{},"?3f59":()=>{},"?569f":()=>{},"?7a2c":()=>{},"?a42a":()=>{},"onnxruntime-common":s=>{s.exports=RI},"onnxruntime-web":s=>{s.exports=l5}},Kh={};function ar(s){var n=Kh[s];if(n!==void 0)return n.exports;var i=Kh[s]={exports:{}};return c5[s](i,i.exports,ar),i.exports}(()=>{var s=Object.getPrototypeOf?i=>Object.getPrototypeOf(i):i=>i.__proto__,n;ar.t=function(i,g){if(g&1&&(i=this(i)),g&8||typeof i=="object"&&i&&(g&4&&i.__esModule||g&16&&typeof i.then=="function"))return i;var C=Object.create(null);ar.r(C);var p={};n=n||[null,s({}),s([]),s(s)];for(var I=g&2&&i;typeof I=="object"&&!~n.indexOf(I);I=s(I))Object.getOwnPropertyNames(I).forEach(M=>p[M]=()=>i[M]);return p.default=()=>i,ar.d(C,p),C}})();ar.d=(s,n)=>{for(var i in n)ar.o(n,i)&&!ar.o(s,i)&&Object.defineProperty(s,i,{enumerable:!0,get:n[i]})};ar.o=(s,n)=>Object.prototype.hasOwnProperty.call(s,n);ar.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var z={};(()=>{/*!*****************************!*\ + !*** ./src/transformers.js ***! + \*****************************/ar.r(z),ar.d(z,{ASTFeatureExtractor:()=>T.ASTFeatureExtractor,ASTForAudioClassification:()=>i.ASTForAudioClassification,ASTModel:()=>i.ASTModel,ASTPreTrainedModel:()=>i.ASTPreTrainedModel,AlbertForMaskedLM:()=>i.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>i.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>i.AlbertForSequenceClassification,AlbertModel:()=>i.AlbertModel,AlbertPreTrainedModel:()=>i.AlbertPreTrainedModel,AlbertTokenizer:()=>g.AlbertTokenizer,AudioClassificationPipeline:()=>n.AudioClassificationPipeline,AutoConfig:()=>C.AutoConfig,AutoFeatureExtractor:()=>P.AutoFeatureExtractor,AutoImageProcessor:()=>K.AutoImageProcessor,AutoModel:()=>i.AutoModel,AutoModelForAudioClassification:()=>i.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>i.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>i.AutoModelForAudioTextToText,AutoModelForCTC:()=>i.AutoModelForCTC,AutoModelForCausalLM:()=>i.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>i.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>i.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>i.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>i.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>i.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>i.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>i.AutoModelForImageTextToText,AutoModelForImageToImage:()=>i.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>i.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>i.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>i.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>i.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>i.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>i.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>i.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>i.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>i.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>i.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>i.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>i.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>i.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>i.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>i.AutoModelForVision2Seq,AutoModelForXVector:()=>i.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>i.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>V.AutoProcessor,AutoTokenizer:()=>g.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>n.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>n.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>i.BartForConditionalGeneration,BartForSequenceClassification:()=>i.BartForSequenceClassification,BartModel:()=>i.BartModel,BartPretrainedModel:()=>i.BartPretrainedModel,BartTokenizer:()=>g.BartTokenizer,BaseModelOutput:()=>i.BaseModelOutput,BaseStreamer:()=>ee.BaseStreamer,BeitFeatureExtractor:()=>L.BeitFeatureExtractor,BeitForImageClassification:()=>i.BeitForImageClassification,BeitModel:()=>i.BeitModel,BeitPreTrainedModel:()=>i.BeitPreTrainedModel,BertForMaskedLM:()=>i.BertForMaskedLM,BertForQuestionAnswering:()=>i.BertForQuestionAnswering,BertForSequenceClassification:()=>i.BertForSequenceClassification,BertForTokenClassification:()=>i.BertForTokenClassification,BertModel:()=>i.BertModel,BertPreTrainedModel:()=>i.BertPreTrainedModel,BertTokenizer:()=>g.BertTokenizer,BitImageProcessor:()=>L.BitImageProcessor,BlenderbotForConditionalGeneration:()=>i.BlenderbotForConditionalGeneration,BlenderbotModel:()=>i.BlenderbotModel,BlenderbotPreTrainedModel:()=>i.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>i.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>i.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>i.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>g.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>g.BlenderbotTokenizer,BloomForCausalLM:()=>i.BloomForCausalLM,BloomModel:()=>i.BloomModel,BloomPreTrainedModel:()=>i.BloomPreTrainedModel,BloomTokenizer:()=>g.BloomTokenizer,CLIPFeatureExtractor:()=>L.CLIPFeatureExtractor,CLIPImageProcessor:()=>L.CLIPImageProcessor,CLIPModel:()=>i.CLIPModel,CLIPPreTrainedModel:()=>i.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>i.CLIPSegForImageSegmentation,CLIPSegModel:()=>i.CLIPSegModel,CLIPSegPreTrainedModel:()=>i.CLIPSegPreTrainedModel,CLIPTextModel:()=>i.CLIPTextModel,CLIPTextModelWithProjection:()=>i.CLIPTextModelWithProjection,CLIPTokenizer:()=>g.CLIPTokenizer,CLIPVisionModel:()=>i.CLIPVisionModel,CLIPVisionModelWithProjection:()=>i.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>i.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>i.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>i.CamembertForSequenceClassification,CamembertForTokenClassification:()=>i.CamembertForTokenClassification,CamembertModel:()=>i.CamembertModel,CamembertPreTrainedModel:()=>i.CamembertPreTrainedModel,CamembertTokenizer:()=>g.CamembertTokenizer,CausalLMOutput:()=>i.CausalLMOutput,CausalLMOutputWithPast:()=>i.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>L.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>i.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>i.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>i.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>T.ClapFeatureExtractor,ClapModel:()=>i.ClapModel,ClapPreTrainedModel:()=>i.ClapPreTrainedModel,ClapTextModelWithProjection:()=>i.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>v.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>i.CodeGenForCausalLM,CodeGenModel:()=>i.CodeGenModel,CodeGenPreTrainedModel:()=>i.CodeGenPreTrainedModel,CodeGenTokenizer:()=>g.CodeGenTokenizer,CodeLlamaTokenizer:()=>g.CodeLlamaTokenizer,CohereForCausalLM:()=>i.CohereForCausalLM,CohereModel:()=>i.CohereModel,CoherePreTrainedModel:()=>i.CoherePreTrainedModel,CohereTokenizer:()=>g.CohereTokenizer,ConvBertForMaskedLM:()=>i.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>i.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>i.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>i.ConvBertForTokenClassification,ConvBertModel:()=>i.ConvBertModel,ConvBertPreTrainedModel:()=>i.ConvBertPreTrainedModel,ConvBertTokenizer:()=>g.ConvBertTokenizer,ConvNextFeatureExtractor:()=>L.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>i.ConvNextForImageClassification,ConvNextImageProcessor:()=>L.ConvNextImageProcessor,ConvNextModel:()=>i.ConvNextModel,ConvNextPreTrainedModel:()=>i.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>i.ConvNextV2ForImageClassification,ConvNextV2Model:()=>i.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>i.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>i.DFineForObjectDetection,DFineModel:()=>i.DFineModel,DFinePreTrainedModel:()=>i.DFinePreTrainedModel,DPTFeatureExtractor:()=>L.DPTFeatureExtractor,DPTForDepthEstimation:()=>i.DPTForDepthEstimation,DPTImageProcessor:()=>L.DPTImageProcessor,DPTModel:()=>i.DPTModel,DPTPreTrainedModel:()=>i.DPTPreTrainedModel,DacDecoderModel:()=>i.DacDecoderModel,DacDecoderOutput:()=>i.DacDecoderOutput,DacEncoderModel:()=>i.DacEncoderModel,DacEncoderOutput:()=>i.DacEncoderOutput,DacFeatureExtractor:()=>T.DacFeatureExtractor,DacModel:()=>i.DacModel,DacPreTrainedModel:()=>i.DacPreTrainedModel,DataTypeMap:()=>x.DataTypeMap,DebertaForMaskedLM:()=>i.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>i.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>i.DebertaForSequenceClassification,DebertaForTokenClassification:()=>i.DebertaForTokenClassification,DebertaModel:()=>i.DebertaModel,DebertaPreTrainedModel:()=>i.DebertaPreTrainedModel,DebertaTokenizer:()=>g.DebertaTokenizer,DebertaV2ForMaskedLM:()=>i.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>i.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>i.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>i.DebertaV2ForTokenClassification,DebertaV2Model:()=>i.DebertaV2Model,DebertaV2PreTrainedModel:()=>i.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>g.DebertaV2Tokenizer,DecisionTransformerModel:()=>i.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>i.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>L.DeiTFeatureExtractor,DeiTForImageClassification:()=>i.DeiTForImageClassification,DeiTImageProcessor:()=>L.DeiTImageProcessor,DeiTModel:()=>i.DeiTModel,DeiTPreTrainedModel:()=>i.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>i.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>i.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>n.DepthEstimationPipeline,DepthProForDepthEstimation:()=>i.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>i.DepthProPreTrainedModel,DetrFeatureExtractor:()=>L.DetrFeatureExtractor,DetrForObjectDetection:()=>i.DetrForObjectDetection,DetrForSegmentation:()=>i.DetrForSegmentation,DetrImageProcessor:()=>L.DetrImageProcessor,DetrModel:()=>i.DetrModel,DetrObjectDetectionOutput:()=>i.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>i.DetrPreTrainedModel,DetrSegmentationOutput:()=>i.DetrSegmentationOutput,Dinov2ForImageClassification:()=>i.Dinov2ForImageClassification,Dinov2Model:()=>i.Dinov2Model,Dinov2PreTrainedModel:()=>i.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>i.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>i.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>i.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>i.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>i.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>i.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>i.DistilBertForTokenClassification,DistilBertModel:()=>i.DistilBertModel,DistilBertPreTrainedModel:()=>i.DistilBertPreTrainedModel,DistilBertTokenizer:()=>g.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>n.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>L.DonutFeatureExtractor,DonutImageProcessor:()=>L.DonutImageProcessor,DonutSwinModel:()=>i.DonutSwinModel,DonutSwinPreTrainedModel:()=>i.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>i.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>L.EfficientNetImageProcessor,EfficientNetModel:()=>i.EfficientNetModel,EfficientNetPreTrainedModel:()=>i.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>i.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>i.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>i.ElectraForSequenceClassification,ElectraForTokenClassification:()=>i.ElectraForTokenClassification,ElectraModel:()=>i.ElectraModel,ElectraPreTrainedModel:()=>i.ElectraPreTrainedModel,ElectraTokenizer:()=>g.ElectraTokenizer,EncodecFeatureExtractor:()=>T.EncodecFeatureExtractor,EosTokenCriteria:()=>d.EosTokenCriteria,EsmForMaskedLM:()=>i.EsmForMaskedLM,EsmForSequenceClassification:()=>i.EsmForSequenceClassification,EsmForTokenClassification:()=>i.EsmForTokenClassification,EsmModel:()=>i.EsmModel,EsmPreTrainedModel:()=>i.EsmPreTrainedModel,EsmTokenizer:()=>g.EsmTokenizer,ExaoneForCausalLM:()=>i.ExaoneForCausalLM,ExaoneModel:()=>i.ExaoneModel,ExaonePreTrainedModel:()=>i.ExaonePreTrainedModel,FFT:()=>G.FFT,FalconForCausalLM:()=>i.FalconForCausalLM,FalconModel:()=>i.FalconModel,FalconPreTrainedModel:()=>i.FalconPreTrainedModel,FalconTokenizer:()=>g.FalconTokenizer,FastViTForImageClassification:()=>i.FastViTForImageClassification,FastViTModel:()=>i.FastViTModel,FastViTPreTrainedModel:()=>i.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>n.FeatureExtractionPipeline,FeatureExtractor:()=>S.FeatureExtractor,FillMaskPipeline:()=>n.FillMaskPipeline,Florence2ForConditionalGeneration:()=>i.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>i.Florence2PreTrainedModel,Florence2Processor:()=>Y.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>v.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>v.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>L.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>i.GLPNForDepthEstimation,GLPNModel:()=>i.GLPNModel,GLPNPreTrainedModel:()=>i.GLPNPreTrainedModel,GPT2LMHeadModel:()=>i.GPT2LMHeadModel,GPT2Model:()=>i.GPT2Model,GPT2PreTrainedModel:()=>i.GPT2PreTrainedModel,GPT2Tokenizer:()=>g.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>i.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>i.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>i.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>i.GPTJForCausalLM,GPTJModel:()=>i.GPTJModel,GPTJPreTrainedModel:()=>i.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>i.GPTNeoForCausalLM,GPTNeoModel:()=>i.GPTNeoModel,GPTNeoPreTrainedModel:()=>i.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>i.GPTNeoXForCausalLM,GPTNeoXModel:()=>i.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>i.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>g.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>i.Gemma2ForCausalLM,Gemma2Model:()=>i.Gemma2Model,Gemma2PreTrainedModel:()=>i.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>i.Gemma3ForCausalLM,Gemma3Model:()=>i.Gemma3Model,Gemma3PreTrainedModel:()=>i.Gemma3PreTrainedModel,GemmaForCausalLM:()=>i.GemmaForCausalLM,GemmaModel:()=>i.GemmaModel,GemmaPreTrainedModel:()=>i.GemmaPreTrainedModel,GemmaTokenizer:()=>g.GemmaTokenizer,GlmForCausalLM:()=>i.GlmForCausalLM,GlmModel:()=>i.GlmModel,GlmPreTrainedModel:()=>i.GlmPreTrainedModel,GraniteForCausalLM:()=>i.GraniteForCausalLM,GraniteModel:()=>i.GraniteModel,GranitePreTrainedModel:()=>i.GranitePreTrainedModel,Grok1Tokenizer:()=>g.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>i.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>L.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>i.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>Y.GroundingDinoProcessor,GroupViTModel:()=>i.GroupViTModel,GroupViTPreTrainedModel:()=>i.GroupViTPreTrainedModel,HeliumForCausalLM:()=>i.HeliumForCausalLM,HeliumModel:()=>i.HeliumModel,HeliumPreTrainedModel:()=>i.HeliumPreTrainedModel,HerbertTokenizer:()=>g.HerbertTokenizer,HieraForImageClassification:()=>i.HieraForImageClassification,HieraModel:()=>i.HieraModel,HieraPreTrainedModel:()=>i.HieraPreTrainedModel,HubertForCTC:()=>i.HubertForCTC,HubertForSequenceClassification:()=>i.HubertForSequenceClassification,HubertModel:()=>i.HubertModel,HubertPreTrainedModel:()=>i.HubertPreTrainedModel,IJepaForImageClassification:()=>i.IJepaForImageClassification,IJepaModel:()=>i.IJepaModel,IJepaPreTrainedModel:()=>i.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>i.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>L.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>i.Idefics3PreTrainedModel,Idefics3Processor:()=>Y.Idefics3Processor,ImageClassificationPipeline:()=>n.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>n.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>T.ImageFeatureExtractor,ImageMattingOutput:()=>i.ImageMattingOutput,ImageProcessor:()=>j.ImageProcessor,ImageSegmentationPipeline:()=>n.ImageSegmentationPipeline,ImageToImagePipeline:()=>n.ImageToImagePipeline,ImageToTextPipeline:()=>n.ImageToTextPipeline,InterruptableStoppingCriteria:()=>d.InterruptableStoppingCriteria,JAISLMHeadModel:()=>i.JAISLMHeadModel,JAISModel:()=>i.JAISModel,JAISPreTrainedModel:()=>i.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>L.JinaCLIPImageProcessor,JinaCLIPModel:()=>i.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>i.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>Y.JinaCLIPProcessor,JinaCLIPTextModel:()=>i.JinaCLIPTextModel,JinaCLIPVisionModel:()=>i.JinaCLIPVisionModel,LiteWhisperForConditionalGeneration:()=>i.LiteWhisperForConditionalGeneration,LlamaForCausalLM:()=>i.LlamaForCausalLM,LlamaModel:()=>i.LlamaModel,LlamaPreTrainedModel:()=>i.LlamaPreTrainedModel,LlamaTokenizer:()=>g.LlamaTokenizer,LlavaForConditionalGeneration:()=>i.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>i.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>L.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>i.LlavaPreTrainedModel,LogitsProcessor:()=>v.LogitsProcessor,LogitsProcessorList:()=>v.LogitsProcessorList,LogitsWarper:()=>v.LogitsWarper,LongT5ForConditionalGeneration:()=>i.LongT5ForConditionalGeneration,LongT5Model:()=>i.LongT5Model,LongT5PreTrainedModel:()=>i.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>i.M2M100ForConditionalGeneration,M2M100Model:()=>i.M2M100Model,M2M100PreTrainedModel:()=>i.M2M100PreTrainedModel,M2M100Tokenizer:()=>g.M2M100Tokenizer,MBart50Tokenizer:()=>g.MBart50Tokenizer,MBartForCausalLM:()=>i.MBartForCausalLM,MBartForConditionalGeneration:()=>i.MBartForConditionalGeneration,MBartForSequenceClassification:()=>i.MBartForSequenceClassification,MBartModel:()=>i.MBartModel,MBartPreTrainedModel:()=>i.MBartPreTrainedModel,MBartTokenizer:()=>g.MBartTokenizer,MPNetForMaskedLM:()=>i.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>i.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>i.MPNetForSequenceClassification,MPNetForTokenClassification:()=>i.MPNetForTokenClassification,MPNetModel:()=>i.MPNetModel,MPNetPreTrainedModel:()=>i.MPNetPreTrainedModel,MPNetTokenizer:()=>g.MPNetTokenizer,MT5ForConditionalGeneration:()=>i.MT5ForConditionalGeneration,MT5Model:()=>i.MT5Model,MT5PreTrainedModel:()=>i.MT5PreTrainedModel,MarianMTModel:()=>i.MarianMTModel,MarianModel:()=>i.MarianModel,MarianPreTrainedModel:()=>i.MarianPreTrainedModel,MarianTokenizer:()=>g.MarianTokenizer,Mask2FormerImageProcessor:()=>L.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>L.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>i.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>L.MaskFormerImageProcessor,MaskFormerModel:()=>i.MaskFormerModel,MaskFormerPreTrainedModel:()=>i.MaskFormerPreTrainedModel,MaskedLMOutput:()=>i.MaskedLMOutput,MaxLengthCriteria:()=>d.MaxLengthCriteria,Metric3DForDepthEstimation:()=>i.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>i.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>i.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>i.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>i.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>i.MgpstrModelOutput,MgpstrPreTrainedModel:()=>i.MgpstrPreTrainedModel,MgpstrProcessor:()=>Y.MgpstrProcessor,MgpstrTokenizer:()=>g.MgpstrTokenizer,MimiDecoderModel:()=>i.MimiDecoderModel,MimiDecoderOutput:()=>i.MimiDecoderOutput,MimiEncoderModel:()=>i.MimiEncoderModel,MimiEncoderOutput:()=>i.MimiEncoderOutput,MimiModel:()=>i.MimiModel,MimiPreTrainedModel:()=>i.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>v.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>v.MinNewTokensLengthLogitsProcessor,MistralForCausalLM:()=>i.MistralForCausalLM,MistralModel:()=>i.MistralModel,MistralPreTrainedModel:()=>i.MistralPreTrainedModel,MobileBertForMaskedLM:()=>i.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>i.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>i.MobileBertForSequenceClassification,MobileBertModel:()=>i.MobileBertModel,MobileBertPreTrainedModel:()=>i.MobileBertPreTrainedModel,MobileBertTokenizer:()=>g.MobileBertTokenizer,MobileLLMForCausalLM:()=>i.MobileLLMForCausalLM,MobileLLMModel:()=>i.MobileLLMModel,MobileLLMPreTrainedModel:()=>i.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>L.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>i.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>i.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>L.MobileNetV1ImageProcessor,MobileNetV1Model:()=>i.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>i.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>L.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>i.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>i.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>L.MobileNetV2ImageProcessor,MobileNetV2Model:()=>i.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>i.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>L.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>i.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>i.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>L.MobileNetV3ImageProcessor,MobileNetV3Model:()=>i.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>i.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>L.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>i.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>i.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>L.MobileNetV4ImageProcessor,MobileNetV4Model:()=>i.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>i.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>L.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>i.MobileViTForImageClassification,MobileViTImageProcessor:()=>L.MobileViTImageProcessor,MobileViTModel:()=>i.MobileViTModel,MobileViTPreTrainedModel:()=>i.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>i.MobileViTV2ForImageClassification,MobileViTV2Model:()=>i.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>i.MobileViTV2PreTrainedModel,ModelOutput:()=>i.ModelOutput,ModernBertForMaskedLM:()=>i.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>i.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>i.ModernBertForTokenClassification,ModernBertModel:()=>i.ModernBertModel,ModernBertPreTrainedModel:()=>i.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>i.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>T.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>i.MoonshineForConditionalGeneration,MoonshineModel:()=>i.MoonshineModel,MoonshinePreTrainedModel:()=>i.MoonshinePreTrainedModel,MoonshineProcessor:()=>Y.MoonshineProcessor,MptForCausalLM:()=>i.MptForCausalLM,MptModel:()=>i.MptModel,MptPreTrainedModel:()=>i.MptPreTrainedModel,MultiModalityCausalLM:()=>i.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>i.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>i.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>i.MusicgenForConditionalGeneration,MusicgenModel:()=>i.MusicgenModel,MusicgenPreTrainedModel:()=>i.MusicgenPreTrainedModel,NllbTokenizer:()=>g.NllbTokenizer,NoBadWordsLogitsProcessor:()=>v.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>v.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>i.NomicBertModel,NomicBertPreTrainedModel:()=>i.NomicBertPreTrainedModel,NougatImageProcessor:()=>L.NougatImageProcessor,NougatTokenizer:()=>g.NougatTokenizer,OPTForCausalLM:()=>i.OPTForCausalLM,OPTModel:()=>i.OPTModel,OPTPreTrainedModel:()=>i.OPTPreTrainedModel,ObjectDetectionPipeline:()=>n.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>i.Olmo2ForCausalLM,Olmo2Model:()=>i.Olmo2Model,Olmo2PreTrainedModel:()=>i.Olmo2PreTrainedModel,OlmoForCausalLM:()=>i.OlmoForCausalLM,OlmoModel:()=>i.OlmoModel,OlmoPreTrainedModel:()=>i.OlmoPreTrainedModel,OpenELMForCausalLM:()=>i.OpenELMForCausalLM,OpenELMModel:()=>i.OpenELMModel,OpenELMPreTrainedModel:()=>i.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>L.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>i.OwlViTForObjectDetection,OwlViTImageProcessor:()=>L.OwlViTImageProcessor,OwlViTModel:()=>i.OwlViTModel,OwlViTPreTrainedModel:()=>i.OwlViTPreTrainedModel,OwlViTProcessor:()=>Y.OwlViTProcessor,Owlv2ForObjectDetection:()=>i.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>L.Owlv2ImageProcessor,Owlv2Model:()=>i.Owlv2Model,Owlv2PreTrainedModel:()=>i.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>i.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>i.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>Y.PaliGemmaProcessor,PatchTSMixerForPrediction:()=>i.PatchTSMixerForPrediction,PatchTSMixerModel:()=>i.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>i.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>i.PatchTSTForPrediction,PatchTSTModel:()=>i.PatchTSTModel,PatchTSTPreTrainedModel:()=>i.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>i.Phi3ForCausalLM,Phi3Model:()=>i.Phi3Model,Phi3PreTrainedModel:()=>i.Phi3PreTrainedModel,Phi3VForCausalLM:()=>i.Phi3VForCausalLM,Phi3VImageProcessor:()=>L.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>i.Phi3VPreTrainedModel,Phi3VProcessor:()=>Y.Phi3VProcessor,PhiForCausalLM:()=>i.PhiForCausalLM,PhiModel:()=>i.PhiModel,PhiPreTrainedModel:()=>i.PhiPreTrainedModel,Pipeline:()=>n.Pipeline,PreTrainedModel:()=>i.PreTrainedModel,PreTrainedTokenizer:()=>g.PreTrainedTokenizer,PretrainedConfig:()=>C.PretrainedConfig,PretrainedMixin:()=>i.PretrainedMixin,Processor:()=>ae.Processor,PvtForImageClassification:()=>i.PvtForImageClassification,PvtImageProcessor:()=>L.PvtImageProcessor,PvtModel:()=>i.PvtModel,PvtPreTrainedModel:()=>i.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>T.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>i.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>i.PyAnnoteModel,PyAnnotePreTrainedModel:()=>i.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>Y.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>i.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>n.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>i.Qwen2ForCausalLM,Qwen2Model:()=>i.Qwen2Model,Qwen2PreTrainedModel:()=>i.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>g.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>i.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>L.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>i.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>Y.Qwen2VLProcessor,Qwen3ForCausalLM:()=>i.Qwen3ForCausalLM,Qwen3Model:()=>i.Qwen3Model,Qwen3PreTrainedModel:()=>i.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>i.RFDetrForObjectDetection,RFDetrModel:()=>i.RFDetrModel,RFDetrObjectDetectionOutput:()=>i.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>i.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>i.RTDetrForObjectDetection,RTDetrImageProcessor:()=>L.RTDetrImageProcessor,RTDetrModel:()=>i.RTDetrModel,RTDetrObjectDetectionOutput:()=>i.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>i.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>i.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>i.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>i.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>i.RTDetrV2PreTrainedModel,RawAudio:()=>p.RawAudio,RawImage:()=>I.RawImage,RawVideo:()=>M.RawVideo,RawVideoFrame:()=>M.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>v.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>i.ResNetForImageClassification,ResNetModel:()=>i.ResNetModel,ResNetPreTrainedModel:()=>i.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>i.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>i.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>i.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>i.RoFormerForTokenClassification,RoFormerModel:()=>i.RoFormerModel,RoFormerPreTrainedModel:()=>i.RoFormerPreTrainedModel,RoFormerTokenizer:()=>g.RoFormerTokenizer,RobertaForMaskedLM:()=>i.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>i.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>i.RobertaForSequenceClassification,RobertaForTokenClassification:()=>i.RobertaForTokenClassification,RobertaModel:()=>i.RobertaModel,RobertaPreTrainedModel:()=>i.RobertaPreTrainedModel,RobertaTokenizer:()=>g.RobertaTokenizer,SamImageProcessor:()=>L.SamImageProcessor,SamImageSegmentationOutput:()=>i.SamImageSegmentationOutput,SamModel:()=>i.SamModel,SamPreTrainedModel:()=>i.SamPreTrainedModel,SamProcessor:()=>Y.SamProcessor,SapiensForDepthEstimation:()=>i.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>i.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>i.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>i.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>T.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>L.SegformerFeatureExtractor,SegformerForImageClassification:()=>i.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>i.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>L.SegformerImageProcessor,SegformerModel:()=>i.SegformerModel,SegformerPreTrainedModel:()=>i.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>i.Seq2SeqLMOutput,SequenceClassifierOutput:()=>i.SequenceClassifierOutput,SiglipImageProcessor:()=>L.SiglipImageProcessor,SiglipModel:()=>i.SiglipModel,SiglipPreTrainedModel:()=>i.SiglipPreTrainedModel,SiglipTextModel:()=>i.SiglipTextModel,SiglipTokenizer:()=>g.SiglipTokenizer,SiglipVisionModel:()=>i.SiglipVisionModel,SmolVLMForConditionalGeneration:()=>i.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>L.SmolVLMImageProcessor,SmolVLMProcessor:()=>Y.SmolVLMProcessor,SnacDecoderModel:()=>i.SnacDecoderModel,SnacEncoderModel:()=>i.SnacEncoderModel,SnacFeatureExtractor:()=>T.SnacFeatureExtractor,SnacModel:()=>i.SnacModel,SnacPreTrainedModel:()=>i.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>T.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>i.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>i.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>i.SpeechT5HifiGan,SpeechT5Model:()=>i.SpeechT5Model,SpeechT5PreTrainedModel:()=>i.SpeechT5PreTrainedModel,SpeechT5Processor:()=>Y.SpeechT5Processor,SpeechT5Tokenizer:()=>g.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>i.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>i.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>i.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>i.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>i.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>g.SqueezeBertTokenizer,StableLmForCausalLM:()=>i.StableLmForCausalLM,StableLmModel:()=>i.StableLmModel,StableLmPreTrainedModel:()=>i.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>i.Starcoder2ForCausalLM,Starcoder2Model:()=>i.Starcoder2Model,Starcoder2PreTrainedModel:()=>i.Starcoder2PreTrainedModel,StoppingCriteria:()=>d.StoppingCriteria,StoppingCriteriaList:()=>d.StoppingCriteriaList,StyleTextToSpeech2Model:()=>i.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>i.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>n.SummarizationPipeline,SuppressTokensAtBeginLogitsProcessor:()=>v.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>i.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>L.Swin2SRImageProcessor,Swin2SRModel:()=>i.Swin2SRModel,Swin2SRPreTrainedModel:()=>i.Swin2SRPreTrainedModel,SwinForImageClassification:()=>i.SwinForImageClassification,SwinForSemanticSegmentation:()=>i.SwinForSemanticSegmentation,SwinModel:()=>i.SwinModel,SwinPreTrainedModel:()=>i.SwinPreTrainedModel,T5ForConditionalGeneration:()=>i.T5ForConditionalGeneration,T5Model:()=>i.T5Model,T5PreTrainedModel:()=>i.T5PreTrainedModel,T5Tokenizer:()=>g.T5Tokenizer,TableTransformerForObjectDetection:()=>i.TableTransformerForObjectDetection,TableTransformerModel:()=>i.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>i.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>i.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>v.TemperatureLogitsWarper,Tensor:()=>x.Tensor,Text2TextGenerationPipeline:()=>n.Text2TextGenerationPipeline,TextClassificationPipeline:()=>n.TextClassificationPipeline,TextGenerationPipeline:()=>n.TextGenerationPipeline,TextStreamer:()=>ee.TextStreamer,TextToAudioPipeline:()=>n.TextToAudioPipeline,TokenClassificationPipeline:()=>n.TokenClassificationPipeline,TokenClassifierOutput:()=>i.TokenClassifierOutput,TokenizerModel:()=>g.TokenizerModel,TopKLogitsWarper:()=>v.TopKLogitsWarper,TopPLogitsWarper:()=>v.TopPLogitsWarper,TrOCRForCausalLM:()=>i.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>i.TrOCRPreTrainedModel,TranslationPipeline:()=>n.TranslationPipeline,UltravoxModel:()=>i.UltravoxModel,UltravoxPreTrainedModel:()=>i.UltravoxPreTrainedModel,UltravoxProcessor:()=>Y.UltravoxProcessor,UniSpeechForCTC:()=>i.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>i.UniSpeechForSequenceClassification,UniSpeechModel:()=>i.UniSpeechModel,UniSpeechPreTrainedModel:()=>i.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>i.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>i.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>i.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>i.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>i.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>Y.VLChatProcessor,VLMImageProcessor:()=>L.VLMImageProcessor,ViTFeatureExtractor:()=>L.ViTFeatureExtractor,ViTForImageClassification:()=>i.ViTForImageClassification,ViTImageProcessor:()=>L.ViTImageProcessor,ViTMAEModel:()=>i.ViTMAEModel,ViTMAEPreTrainedModel:()=>i.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>i.ViTMSNForImageClassification,ViTMSNModel:()=>i.ViTMSNModel,ViTMSNPreTrainedModel:()=>i.ViTMSNPreTrainedModel,ViTModel:()=>i.ViTModel,ViTPreTrainedModel:()=>i.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>i.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>i.VitMatteForImageMatting,VitMatteImageProcessor:()=>L.VitMatteImageProcessor,VitMattePreTrainedModel:()=>i.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>i.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>L.VitPoseImageProcessor,VitPosePreTrainedModel:()=>i.VitPosePreTrainedModel,VitsModel:()=>i.VitsModel,VitsModelOutput:()=>i.VitsModelOutput,VitsPreTrainedModel:()=>i.VitsPreTrainedModel,VitsTokenizer:()=>g.VitsTokenizer,Wav2Vec2BertForCTC:()=>i.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>i.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>i.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>i.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>g.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>T.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>i.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>i.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>i.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>i.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>i.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>Y.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>Y.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>i.WavLMForAudioFrameClassification,WavLMForCTC:()=>i.WavLMForCTC,WavLMForSequenceClassification:()=>i.WavLMForSequenceClassification,WavLMForXVector:()=>i.WavLMForXVector,WavLMModel:()=>i.WavLMModel,WavLMPreTrainedModel:()=>i.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>T.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>i.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>i.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>T.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>i.WhisperForConditionalGeneration,WhisperModel:()=>i.WhisperModel,WhisperPreTrainedModel:()=>i.WhisperPreTrainedModel,WhisperProcessor:()=>Y.WhisperProcessor,WhisperTextStreamer:()=>ee.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>v.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>g.WhisperTokenizer,XLMForQuestionAnswering:()=>i.XLMForQuestionAnswering,XLMForSequenceClassification:()=>i.XLMForSequenceClassification,XLMForTokenClassification:()=>i.XLMForTokenClassification,XLMModel:()=>i.XLMModel,XLMPreTrainedModel:()=>i.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>i.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>i.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>i.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>i.XLMRobertaForTokenClassification,XLMRobertaModel:()=>i.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>i.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>g.XLMRobertaTokenizer,XLMTokenizer:()=>g.XLMTokenizer,XLMWithLMHeadModel:()=>i.XLMWithLMHeadModel,XVectorOutput:()=>i.XVectorOutput,YolosFeatureExtractor:()=>L.YolosFeatureExtractor,YolosForObjectDetection:()=>i.YolosForObjectDetection,YolosImageProcessor:()=>L.YolosImageProcessor,YolosModel:()=>i.YolosModel,YolosObjectDetectionOutput:()=>i.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>i.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>n.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>n.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>n.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>n.ZeroShotObjectDetectionPipeline,bankers_round:()=>G.bankers_round,cat:()=>x.cat,cos_sim:()=>G.cos_sim,dot:()=>G.dot,dynamic_time_warping:()=>G.dynamic_time_warping,env:()=>s.env,full:()=>x.full,full_like:()=>x.full_like,getKeyValueShapes:()=>C.getKeyValueShapes,hamming:()=>p.hamming,hanning:()=>p.hanning,interpolate:()=>x.interpolate,interpolate_4d:()=>x.interpolate_4d,interpolate_data:()=>G.interpolate_data,is_chinese_char:()=>g.is_chinese_char,layer_norm:()=>x.layer_norm,load_image:()=>I.load_image,load_video:()=>M.load_video,log_softmax:()=>G.log_softmax,magnitude:()=>G.magnitude,matmul:()=>x.matmul,max:()=>G.max,mean:()=>x.mean,mean_pooling:()=>x.mean_pooling,medianFilter:()=>G.medianFilter,mel_filter_bank:()=>p.mel_filter_bank,min:()=>G.min,ones:()=>x.ones,ones_like:()=>x.ones_like,permute:()=>x.permute,permute_data:()=>G.permute_data,pipeline:()=>n.pipeline,quantize_embeddings:()=>x.quantize_embeddings,rand:()=>x.rand,read_audio:()=>p.read_audio,rfft:()=>x.rfft,round:()=>G.round,slice:()=>x.slice,softmax:()=>G.softmax,spectrogram:()=>p.spectrogram,stack:()=>x.stack,std_mean:()=>x.std_mean,topk:()=>x.topk,window_function:()=>p.window_function,zeros:()=>x.zeros,zeros_like:()=>x.zeros_like});var s=ar("./src/env.js"),n=ar("./src/pipelines.js"),i=ar("./src/models.js"),g=ar("./src/tokenizers.js"),C=ar("./src/configs.js"),p=ar("./src/utils/audio.js"),I=ar("./src/utils/image.js"),M=ar("./src/utils/video.js"),x=ar("./src/utils/tensor.js"),G=ar("./src/utils/maths.js"),S=ar("./src/base/feature_extraction_utils.js"),T=ar("./src/models/feature_extractors.js"),P=ar("./src/models/auto/feature_extraction_auto.js"),j=ar("./src/base/image_processors_utils.js"),L=ar("./src/models/image_processors.js"),K=ar("./src/models/auto/image_processing_auto.js"),ae=ar("./src/base/processing_utils.js"),Y=ar("./src/models/processors.js"),V=ar("./src/models/auto/processing_auto.js"),ee=ar("./src/generation/streamers.js"),d=ar("./src/generation/stopping_criteria.js"),v=ar("./src/generation/logits_process.js")})();z.ASTFeatureExtractor;z.ASTForAudioClassification;z.ASTModel;z.ASTPreTrainedModel;z.AlbertForMaskedLM;z.AlbertForQuestionAnswering;z.AlbertForSequenceClassification;z.AlbertModel;z.AlbertPreTrainedModel;z.AlbertTokenizer;z.AudioClassificationPipeline;z.AutoConfig;z.AutoFeatureExtractor;z.AutoImageProcessor;z.AutoModel;z.AutoModelForAudioClassification;z.AutoModelForAudioFrameClassification;z.AutoModelForAudioTextToText;z.AutoModelForCTC;z.AutoModelForCausalLM;z.AutoModelForDepthEstimation;z.AutoModelForDocumentQuestionAnswering;z.AutoModelForImageClassification;z.AutoModelForImageFeatureExtraction;z.AutoModelForImageMatting;z.AutoModelForImageSegmentation;z.AutoModelForImageTextToText;z.AutoModelForImageToImage;z.AutoModelForMaskGeneration;z.AutoModelForMaskedLM;z.AutoModelForNormalEstimation;z.AutoModelForObjectDetection;z.AutoModelForPoseEstimation;z.AutoModelForQuestionAnswering;z.AutoModelForSemanticSegmentation;z.AutoModelForSeq2SeqLM;z.AutoModelForSequenceClassification;z.AutoModelForSpeechSeq2Seq;z.AutoModelForTextToSpectrogram;z.AutoModelForTextToWaveform;z.AutoModelForTokenClassification;z.AutoModelForUniversalSegmentation;z.AutoModelForVision2Seq;z.AutoModelForXVector;z.AutoModelForZeroShotObjectDetection;z.AutoProcessor;const u5=z.AutoTokenizer;z.AutomaticSpeechRecognitionPipeline;z.BackgroundRemovalPipeline;z.BartForConditionalGeneration;z.BartForSequenceClassification;z.BartModel;z.BartPretrainedModel;z.BartTokenizer;z.BaseModelOutput;z.BaseStreamer;z.BeitFeatureExtractor;z.BeitForImageClassification;z.BeitModel;z.BeitPreTrainedModel;z.BertForMaskedLM;z.BertForQuestionAnswering;z.BertForSequenceClassification;z.BertForTokenClassification;z.BertModel;z.BertPreTrainedModel;z.BertTokenizer;z.BitImageProcessor;z.BlenderbotForConditionalGeneration;z.BlenderbotModel;z.BlenderbotPreTrainedModel;z.BlenderbotSmallForConditionalGeneration;z.BlenderbotSmallModel;z.BlenderbotSmallPreTrainedModel;z.BlenderbotSmallTokenizer;z.BlenderbotTokenizer;z.BloomForCausalLM;z.BloomModel;z.BloomPreTrainedModel;z.BloomTokenizer;z.CLIPFeatureExtractor;z.CLIPImageProcessor;z.CLIPModel;z.CLIPPreTrainedModel;z.CLIPSegForImageSegmentation;z.CLIPSegModel;z.CLIPSegPreTrainedModel;z.CLIPTextModel;z.CLIPTextModelWithProjection;z.CLIPTokenizer;z.CLIPVisionModel;z.CLIPVisionModelWithProjection;z.CamembertForMaskedLM;z.CamembertForQuestionAnswering;z.CamembertForSequenceClassification;z.CamembertForTokenClassification;z.CamembertModel;z.CamembertPreTrainedModel;z.CamembertTokenizer;z.CausalLMOutput;z.CausalLMOutputWithPast;z.ChineseCLIPFeatureExtractor;z.ChineseCLIPModel;z.ChineseCLIPPreTrainedModel;z.ClapAudioModelWithProjection;z.ClapFeatureExtractor;z.ClapModel;z.ClapPreTrainedModel;z.ClapTextModelWithProjection;z.ClassifierFreeGuidanceLogitsProcessor;z.CodeGenForCausalLM;z.CodeGenModel;z.CodeGenPreTrainedModel;z.CodeGenTokenizer;z.CodeLlamaTokenizer;z.CohereForCausalLM;z.CohereModel;z.CoherePreTrainedModel;z.CohereTokenizer;z.ConvBertForMaskedLM;z.ConvBertForQuestionAnswering;z.ConvBertForSequenceClassification;z.ConvBertForTokenClassification;z.ConvBertModel;z.ConvBertPreTrainedModel;z.ConvBertTokenizer;z.ConvNextFeatureExtractor;z.ConvNextForImageClassification;z.ConvNextImageProcessor;z.ConvNextModel;z.ConvNextPreTrainedModel;z.ConvNextV2ForImageClassification;z.ConvNextV2Model;z.ConvNextV2PreTrainedModel;z.DFineForObjectDetection;z.DFineModel;z.DFinePreTrainedModel;z.DPTFeatureExtractor;z.DPTForDepthEstimation;z.DPTImageProcessor;z.DPTModel;z.DPTPreTrainedModel;z.DacDecoderModel;z.DacDecoderOutput;z.DacEncoderModel;z.DacEncoderOutput;z.DacFeatureExtractor;z.DacModel;z.DacPreTrainedModel;z.DataTypeMap;z.DebertaForMaskedLM;z.DebertaForQuestionAnswering;z.DebertaForSequenceClassification;z.DebertaForTokenClassification;z.DebertaModel;z.DebertaPreTrainedModel;z.DebertaTokenizer;z.DebertaV2ForMaskedLM;z.DebertaV2ForQuestionAnswering;z.DebertaV2ForSequenceClassification;z.DebertaV2ForTokenClassification;z.DebertaV2Model;z.DebertaV2PreTrainedModel;z.DebertaV2Tokenizer;z.DecisionTransformerModel;z.DecisionTransformerPreTrainedModel;z.DeiTFeatureExtractor;z.DeiTForImageClassification;z.DeiTImageProcessor;z.DeiTModel;z.DeiTPreTrainedModel;z.DepthAnythingForDepthEstimation;z.DepthAnythingPreTrainedModel;z.DepthEstimationPipeline;z.DepthProForDepthEstimation;z.DepthProPreTrainedModel;z.DetrFeatureExtractor;z.DetrForObjectDetection;z.DetrForSegmentation;z.DetrImageProcessor;z.DetrModel;z.DetrObjectDetectionOutput;z.DetrPreTrainedModel;z.DetrSegmentationOutput;z.Dinov2ForImageClassification;z.Dinov2Model;z.Dinov2PreTrainedModel;z.Dinov2WithRegistersForImageClassification;z.Dinov2WithRegistersModel;z.Dinov2WithRegistersPreTrainedModel;z.DistilBertForMaskedLM;z.DistilBertForQuestionAnswering;z.DistilBertForSequenceClassification;z.DistilBertForTokenClassification;z.DistilBertModel;z.DistilBertPreTrainedModel;z.DistilBertTokenizer;z.DocumentQuestionAnsweringPipeline;z.DonutFeatureExtractor;z.DonutImageProcessor;z.DonutSwinModel;z.DonutSwinPreTrainedModel;z.EfficientNetForImageClassification;z.EfficientNetImageProcessor;z.EfficientNetModel;z.EfficientNetPreTrainedModel;z.ElectraForMaskedLM;z.ElectraForQuestionAnswering;z.ElectraForSequenceClassification;z.ElectraForTokenClassification;z.ElectraModel;z.ElectraPreTrainedModel;z.ElectraTokenizer;z.EncodecFeatureExtractor;z.EosTokenCriteria;z.EsmForMaskedLM;z.EsmForSequenceClassification;z.EsmForTokenClassification;z.EsmModel;z.EsmPreTrainedModel;z.EsmTokenizer;z.ExaoneForCausalLM;z.ExaoneModel;z.ExaonePreTrainedModel;z.FFT;z.FalconForCausalLM;z.FalconModel;z.FalconPreTrainedModel;z.FalconTokenizer;z.FastViTForImageClassification;z.FastViTModel;z.FastViTPreTrainedModel;z.FeatureExtractionPipeline;z.FeatureExtractor;z.FillMaskPipeline;z.Florence2ForConditionalGeneration;z.Florence2PreTrainedModel;z.Florence2Processor;z.ForcedBOSTokenLogitsProcessor;z.ForcedEOSTokenLogitsProcessor;z.GLPNFeatureExtractor;z.GLPNForDepthEstimation;z.GLPNModel;z.GLPNPreTrainedModel;z.GPT2LMHeadModel;z.GPT2Model;z.GPT2PreTrainedModel;z.GPT2Tokenizer;z.GPTBigCodeForCausalLM;z.GPTBigCodeModel;z.GPTBigCodePreTrainedModel;z.GPTJForCausalLM;z.GPTJModel;z.GPTJPreTrainedModel;z.GPTNeoForCausalLM;z.GPTNeoModel;z.GPTNeoPreTrainedModel;z.GPTNeoXForCausalLM;z.GPTNeoXModel;z.GPTNeoXPreTrainedModel;z.GPTNeoXTokenizer;z.Gemma2ForCausalLM;z.Gemma2Model;z.Gemma2PreTrainedModel;z.Gemma3ForCausalLM;z.Gemma3Model;z.Gemma3PreTrainedModel;z.GemmaForCausalLM;z.GemmaModel;z.GemmaPreTrainedModel;z.GemmaTokenizer;z.GlmForCausalLM;z.GlmModel;z.GlmPreTrainedModel;z.GraniteForCausalLM;z.GraniteModel;z.GranitePreTrainedModel;z.Grok1Tokenizer;z.GroundingDinoForObjectDetection;z.GroundingDinoImageProcessor;z.GroundingDinoPreTrainedModel;z.GroundingDinoProcessor;z.GroupViTModel;z.GroupViTPreTrainedModel;z.HeliumForCausalLM;z.HeliumModel;z.HeliumPreTrainedModel;z.HerbertTokenizer;z.HieraForImageClassification;z.HieraModel;z.HieraPreTrainedModel;z.HubertForCTC;z.HubertForSequenceClassification;z.HubertModel;z.HubertPreTrainedModel;z.IJepaForImageClassification;z.IJepaModel;z.IJepaPreTrainedModel;z.Idefics3ForConditionalGeneration;z.Idefics3ImageProcessor;z.Idefics3PreTrainedModel;z.Idefics3Processor;z.ImageClassificationPipeline;z.ImageFeatureExtractionPipeline;z.ImageFeatureExtractor;z.ImageMattingOutput;z.ImageProcessor;z.ImageSegmentationPipeline;z.ImageToImagePipeline;z.ImageToTextPipeline;z.InterruptableStoppingCriteria;z.JAISLMHeadModel;z.JAISModel;z.JAISPreTrainedModel;z.JinaCLIPImageProcessor;z.JinaCLIPModel;z.JinaCLIPPreTrainedModel;z.JinaCLIPProcessor;z.JinaCLIPTextModel;z.JinaCLIPVisionModel;z.LiteWhisperForConditionalGeneration;z.LlamaForCausalLM;z.LlamaModel;z.LlamaPreTrainedModel;z.LlamaTokenizer;z.LlavaForConditionalGeneration;z.LlavaOnevisionForConditionalGeneration;z.LlavaOnevisionImageProcessor;z.LlavaPreTrainedModel;z.LogitsProcessor;z.LogitsProcessorList;z.LogitsWarper;z.LongT5ForConditionalGeneration;z.LongT5Model;z.LongT5PreTrainedModel;z.M2M100ForConditionalGeneration;z.M2M100Model;z.M2M100PreTrainedModel;z.M2M100Tokenizer;z.MBart50Tokenizer;z.MBartForCausalLM;z.MBartForConditionalGeneration;z.MBartForSequenceClassification;z.MBartModel;z.MBartPreTrainedModel;z.MBartTokenizer;z.MPNetForMaskedLM;z.MPNetForQuestionAnswering;z.MPNetForSequenceClassification;z.MPNetForTokenClassification;z.MPNetModel;z.MPNetPreTrainedModel;z.MPNetTokenizer;z.MT5ForConditionalGeneration;z.MT5Model;z.MT5PreTrainedModel;z.MarianMTModel;z.MarianModel;z.MarianPreTrainedModel;z.MarianTokenizer;z.Mask2FormerImageProcessor;z.MaskFormerFeatureExtractor;z.MaskFormerForInstanceSegmentation;z.MaskFormerImageProcessor;z.MaskFormerModel;z.MaskFormerPreTrainedModel;z.MaskedLMOutput;z.MaxLengthCriteria;z.Metric3DForDepthEstimation;z.Metric3DPreTrainedModel;z.Metric3Dv2ForDepthEstimation;z.Metric3Dv2PreTrainedModel;z.MgpstrForSceneTextRecognition;z.MgpstrModelOutput;z.MgpstrPreTrainedModel;z.MgpstrProcessor;z.MgpstrTokenizer;z.MimiDecoderModel;z.MimiDecoderOutput;z.MimiEncoderModel;z.MimiEncoderOutput;z.MimiModel;z.MimiPreTrainedModel;z.MinLengthLogitsProcessor;z.MinNewTokensLengthLogitsProcessor;z.MistralForCausalLM;z.MistralModel;z.MistralPreTrainedModel;z.MobileBertForMaskedLM;z.MobileBertForQuestionAnswering;z.MobileBertForSequenceClassification;z.MobileBertModel;z.MobileBertPreTrainedModel;z.MobileBertTokenizer;z.MobileLLMForCausalLM;z.MobileLLMModel;z.MobileLLMPreTrainedModel;z.MobileNetV1FeatureExtractor;z.MobileNetV1ForImageClassification;z.MobileNetV1ForSemanticSegmentation;z.MobileNetV1ImageProcessor;z.MobileNetV1Model;z.MobileNetV1PreTrainedModel;z.MobileNetV2FeatureExtractor;z.MobileNetV2ForImageClassification;z.MobileNetV2ForSemanticSegmentation;z.MobileNetV2ImageProcessor;z.MobileNetV2Model;z.MobileNetV2PreTrainedModel;z.MobileNetV3FeatureExtractor;z.MobileNetV3ForImageClassification;z.MobileNetV3ForSemanticSegmentation;z.MobileNetV3ImageProcessor;z.MobileNetV3Model;z.MobileNetV3PreTrainedModel;z.MobileNetV4FeatureExtractor;z.MobileNetV4ForImageClassification;z.MobileNetV4ForSemanticSegmentation;z.MobileNetV4ImageProcessor;z.MobileNetV4Model;z.MobileNetV4PreTrainedModel;z.MobileViTFeatureExtractor;z.MobileViTForImageClassification;z.MobileViTImageProcessor;z.MobileViTModel;z.MobileViTPreTrainedModel;z.MobileViTV2ForImageClassification;z.MobileViTV2Model;z.MobileViTV2PreTrainedModel;z.ModelOutput;z.ModernBertForMaskedLM;z.ModernBertForSequenceClassification;z.ModernBertForTokenClassification;z.ModernBertModel;z.ModernBertPreTrainedModel;z.Moondream1ForConditionalGeneration;z.MoonshineFeatureExtractor;z.MoonshineForConditionalGeneration;z.MoonshineModel;z.MoonshinePreTrainedModel;z.MoonshineProcessor;z.MptForCausalLM;z.MptModel;z.MptPreTrainedModel;z.MultiModalityCausalLM;z.MultiModalityPreTrainedModel;z.MusicgenForCausalLM;z.MusicgenForConditionalGeneration;z.MusicgenModel;z.MusicgenPreTrainedModel;z.NllbTokenizer;z.NoBadWordsLogitsProcessor;z.NoRepeatNGramLogitsProcessor;z.NomicBertModel;z.NomicBertPreTrainedModel;z.NougatImageProcessor;z.NougatTokenizer;z.OPTForCausalLM;z.OPTModel;z.OPTPreTrainedModel;z.ObjectDetectionPipeline;z.Olmo2ForCausalLM;z.Olmo2Model;z.Olmo2PreTrainedModel;z.OlmoForCausalLM;z.OlmoModel;z.OlmoPreTrainedModel;z.OpenELMForCausalLM;z.OpenELMModel;z.OpenELMPreTrainedModel;z.OwlViTFeatureExtractor;z.OwlViTForObjectDetection;z.OwlViTImageProcessor;z.OwlViTModel;z.OwlViTPreTrainedModel;z.OwlViTProcessor;z.Owlv2ForObjectDetection;z.Owlv2ImageProcessor;z.Owlv2Model;z.Owlv2PreTrainedModel;z.PaliGemmaForConditionalGeneration;z.PaliGemmaPreTrainedModel;z.PaliGemmaProcessor;z.PatchTSMixerForPrediction;z.PatchTSMixerModel;z.PatchTSMixerPreTrainedModel;z.PatchTSTForPrediction;z.PatchTSTModel;z.PatchTSTPreTrainedModel;z.Phi3ForCausalLM;z.Phi3Model;z.Phi3PreTrainedModel;z.Phi3VForCausalLM;z.Phi3VImageProcessor;z.Phi3VPreTrainedModel;z.Phi3VProcessor;z.PhiForCausalLM;z.PhiModel;z.PhiPreTrainedModel;z.Pipeline;z.PreTrainedModel;z.PreTrainedTokenizer;z.PretrainedConfig;z.PretrainedMixin;z.Processor;z.PvtForImageClassification;z.PvtImageProcessor;z.PvtModel;z.PvtPreTrainedModel;z.PyAnnoteFeatureExtractor;z.PyAnnoteForAudioFrameClassification;z.PyAnnoteModel;z.PyAnnotePreTrainedModel;z.PyAnnoteProcessor;z.QuestionAnsweringModelOutput;z.QuestionAnsweringPipeline;z.Qwen2ForCausalLM;z.Qwen2Model;z.Qwen2PreTrainedModel;z.Qwen2Tokenizer;z.Qwen2VLForConditionalGeneration;z.Qwen2VLImageProcessor;z.Qwen2VLPreTrainedModel;z.Qwen2VLProcessor;z.Qwen3ForCausalLM;z.Qwen3Model;z.Qwen3PreTrainedModel;z.RFDetrForObjectDetection;z.RFDetrModel;z.RFDetrObjectDetectionOutput;z.RFDetrPreTrainedModel;z.RTDetrForObjectDetection;z.RTDetrImageProcessor;z.RTDetrModel;z.RTDetrObjectDetectionOutput;z.RTDetrPreTrainedModel;z.RTDetrV2ForObjectDetection;z.RTDetrV2Model;z.RTDetrV2ObjectDetectionOutput;z.RTDetrV2PreTrainedModel;const d5=z.RawAudio;z.RawImage;z.RawVideo;z.RawVideoFrame;z.RepetitionPenaltyLogitsProcessor;z.ResNetForImageClassification;z.ResNetModel;z.ResNetPreTrainedModel;z.RoFormerForMaskedLM;z.RoFormerForQuestionAnswering;z.RoFormerForSequenceClassification;z.RoFormerForTokenClassification;z.RoFormerModel;z.RoFormerPreTrainedModel;z.RoFormerTokenizer;z.RobertaForMaskedLM;z.RobertaForQuestionAnswering;z.RobertaForSequenceClassification;z.RobertaForTokenClassification;z.RobertaModel;z.RobertaPreTrainedModel;z.RobertaTokenizer;z.SamImageProcessor;z.SamImageSegmentationOutput;z.SamModel;z.SamPreTrainedModel;z.SamProcessor;z.SapiensForDepthEstimation;z.SapiensForNormalEstimation;z.SapiensForSemanticSegmentation;z.SapiensPreTrainedModel;z.SeamlessM4TFeatureExtractor;z.SegformerFeatureExtractor;z.SegformerForImageClassification;z.SegformerForSemanticSegmentation;z.SegformerImageProcessor;z.SegformerModel;z.SegformerPreTrainedModel;z.Seq2SeqLMOutput;z.SequenceClassifierOutput;z.SiglipImageProcessor;z.SiglipModel;z.SiglipPreTrainedModel;z.SiglipTextModel;z.SiglipTokenizer;z.SiglipVisionModel;z.SmolVLMForConditionalGeneration;z.SmolVLMImageProcessor;z.SmolVLMProcessor;z.SnacDecoderModel;z.SnacEncoderModel;z.SnacFeatureExtractor;z.SnacModel;z.SnacPreTrainedModel;z.SpeechT5FeatureExtractor;z.SpeechT5ForSpeechToText;z.SpeechT5ForTextToSpeech;z.SpeechT5HifiGan;z.SpeechT5Model;z.SpeechT5PreTrainedModel;z.SpeechT5Processor;z.SpeechT5Tokenizer;z.SqueezeBertForMaskedLM;z.SqueezeBertForQuestionAnswering;z.SqueezeBertForSequenceClassification;z.SqueezeBertModel;z.SqueezeBertPreTrainedModel;z.SqueezeBertTokenizer;z.StableLmForCausalLM;z.StableLmModel;z.StableLmPreTrainedModel;z.Starcoder2ForCausalLM;z.Starcoder2Model;z.Starcoder2PreTrainedModel;z.StoppingCriteria;z.StoppingCriteriaList;const f5=z.StyleTextToSpeech2Model;z.StyleTextToSpeech2PreTrainedModel;z.SummarizationPipeline;z.SuppressTokensAtBeginLogitsProcessor;z.Swin2SRForImageSuperResolution;z.Swin2SRImageProcessor;z.Swin2SRModel;z.Swin2SRPreTrainedModel;z.SwinForImageClassification;z.SwinForSemanticSegmentation;z.SwinModel;z.SwinPreTrainedModel;z.T5ForConditionalGeneration;z.T5Model;z.T5PreTrainedModel;z.T5Tokenizer;z.TableTransformerForObjectDetection;z.TableTransformerModel;z.TableTransformerObjectDetectionOutput;z.TableTransformerPreTrainedModel;z.TemperatureLogitsWarper;const Xh=z.Tensor;z.Text2TextGenerationPipeline;z.TextClassificationPipeline;z.TextGenerationPipeline;z.TextStreamer;z.TextToAudioPipeline;z.TokenClassificationPipeline;z.TokenClassifierOutput;z.TokenizerModel;z.TopKLogitsWarper;z.TopPLogitsWarper;z.TrOCRForCausalLM;z.TrOCRPreTrainedModel;z.TranslationPipeline;z.UltravoxModel;z.UltravoxPreTrainedModel;z.UltravoxProcessor;z.UniSpeechForCTC;z.UniSpeechForSequenceClassification;z.UniSpeechModel;z.UniSpeechPreTrainedModel;z.UniSpeechSatForAudioFrameClassification;z.UniSpeechSatForCTC;z.UniSpeechSatForSequenceClassification;z.UniSpeechSatModel;z.UniSpeechSatPreTrainedModel;z.VLChatProcessor;z.VLMImageProcessor;z.ViTFeatureExtractor;z.ViTForImageClassification;z.ViTImageProcessor;z.ViTMAEModel;z.ViTMAEPreTrainedModel;z.ViTMSNForImageClassification;z.ViTMSNModel;z.ViTMSNPreTrainedModel;z.ViTModel;z.ViTPreTrainedModel;z.VisionEncoderDecoderModel;z.VitMatteForImageMatting;z.VitMatteImageProcessor;z.VitMattePreTrainedModel;z.VitPoseForPoseEstimation;z.VitPoseImageProcessor;z.VitPosePreTrainedModel;z.VitsModel;z.VitsModelOutput;z.VitsPreTrainedModel;z.VitsTokenizer;z.Wav2Vec2BertForCTC;z.Wav2Vec2BertForSequenceClassification;z.Wav2Vec2BertModel;z.Wav2Vec2BertPreTrainedModel;z.Wav2Vec2CTCTokenizer;z.Wav2Vec2FeatureExtractor;z.Wav2Vec2ForAudioFrameClassification;z.Wav2Vec2ForCTC;z.Wav2Vec2ForSequenceClassification;z.Wav2Vec2Model;z.Wav2Vec2PreTrainedModel;z.Wav2Vec2Processor;z.Wav2Vec2ProcessorWithLM;z.WavLMForAudioFrameClassification;z.WavLMForCTC;z.WavLMForSequenceClassification;z.WavLMForXVector;z.WavLMModel;z.WavLMPreTrainedModel;z.WeSpeakerFeatureExtractor;z.WeSpeakerResNetModel;z.WeSpeakerResNetPreTrainedModel;z.WhisperFeatureExtractor;z.WhisperForConditionalGeneration;z.WhisperModel;z.WhisperPreTrainedModel;z.WhisperProcessor;z.WhisperTextStreamer;z.WhisperTimeStampLogitsProcessor;z.WhisperTokenizer;z.XLMForQuestionAnswering;z.XLMForSequenceClassification;z.XLMForTokenClassification;z.XLMModel;z.XLMPreTrainedModel;z.XLMRobertaForMaskedLM;z.XLMRobertaForQuestionAnswering;z.XLMRobertaForSequenceClassification;z.XLMRobertaForTokenClassification;z.XLMRobertaModel;z.XLMRobertaPreTrainedModel;z.XLMRobertaTokenizer;z.XLMTokenizer;z.XLMWithLMHeadModel;z.XVectorOutput;z.YolosFeatureExtractor;z.YolosForObjectDetection;z.YolosImageProcessor;z.YolosModel;z.YolosObjectDetectionOutput;z.YolosPreTrainedModel;z.ZeroShotAudioClassificationPipeline;z.ZeroShotClassificationPipeline;z.ZeroShotImageClassificationPipeline;z.ZeroShotObjectDetectionPipeline;z.bankers_round;z.cat;z.cos_sim;z.dot;z.dynamic_time_warping;const Hu=z.env;z.full;z.full_like;z.getKeyValueShapes;z.hamming;z.hanning;z.interpolate;z.interpolate_4d;z.interpolate_data;z.is_chinese_char;z.layer_norm;z.load_image;z.load_video;z.log_softmax;z.magnitude;z.matmul;z.max;z.mean;z.mean_pooling;z.medianFilter;z.mel_filter_bank;z.min;z.ones;z.ones_like;z.permute;z.permute_data;z.pipeline;z.quantize_embeddings;z.rand;z.read_audio;z.rfft;z.round;z.slice;z.softmax;z.spectrogram;z.stack;z.std_mean;z.topk;z.window_function;z.zeros;z.zeros_like;var Ce=Ce!==void 0?Ce:{};Ce.expectedDataFileDownloads||(Ce.expectedDataFileDownloads=0);var g5=typeof importScripts=="function",nf=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Zh=typeof atob=="function"?atob:function(s){var n,i,g,C,p,I,M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",x="",G=0;s=s.replace(/[^A-Za-z0-9\+\/\=]/g,"");do n=M.indexOf(s.charAt(G++))<<2|(C=M.indexOf(s.charAt(G++)))>>4,i=(15&C)<<4|(p=M.indexOf(s.charAt(G++)))>>2,g=(3&p)<<6|(I=M.indexOf(s.charAt(G++))),x+=String.fromCharCode(n),p!==64&&(x+=String.fromCharCode(i)),I!==64&&(x+=String.fromCharCode(g));while(G1&&(cg=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(s){if(!(s instanceof p5))throw s}),process.on("unhandledRejection",function(s){throw s}),Ce.inspect=function(){return"[Emscripten Module object]"}),Ce.expectedDataFileDownloads++,function(){if(Ce.ENVIRONMENT_IS_PTHREAD)return;const s="/usr/share/espeak-ng-data",n=s+"/lang",i=s+"/voices";(function(g){var C=null,p=null;function I(){function M(P,j){if(!P)throw j+new Error().stack}function x(P,j,L){this.start=P,this.end=j,this.audio=L}Ce.FS_createPath("/","usr",!0,!0),Ce.FS_createPath("/usr","share",!0,!0),Ce.FS_createPath("/usr/share","espeak-ng-data",!0,!0),Ce.FS_createPath(s,"lang",!0,!0),Ce.FS_createPath(n,"aav",!0,!0),Ce.FS_createPath(n,"art",!0,!0),Ce.FS_createPath(n,"azc",!0,!0),Ce.FS_createPath(n,"bat",!0,!0),Ce.FS_createPath(n,"bnt",!0,!0),Ce.FS_createPath(n,"ccs",!0,!0),Ce.FS_createPath(n,"cel",!0,!0),Ce.FS_createPath(n,"cus",!0,!0),Ce.FS_createPath(n,"dra",!0,!0),Ce.FS_createPath(n,"esx",!0,!0),Ce.FS_createPath(n,"gmq",!0,!0),Ce.FS_createPath(n,"gmw",!0,!0),Ce.FS_createPath(n,"grk",!0,!0),Ce.FS_createPath(n,"inc",!0,!0),Ce.FS_createPath(n,"ine",!0,!0),Ce.FS_createPath(n,"ira",!0,!0),Ce.FS_createPath(n,"iro",!0,!0),Ce.FS_createPath(n,"itc",!0,!0),Ce.FS_createPath(n,"jpx",!0,!0),Ce.FS_createPath(n,"map",!0,!0),Ce.FS_createPath(n,"miz",!0,!0),Ce.FS_createPath(n,"myn",!0,!0),Ce.FS_createPath(n,"poz",!0,!0),Ce.FS_createPath(n,"roa",!0,!0),Ce.FS_createPath(n,"sai",!0,!0),Ce.FS_createPath(n,"sem",!0,!0),Ce.FS_createPath(n,"sit",!0,!0),Ce.FS_createPath(n,"tai",!0,!0),Ce.FS_createPath(n,"trk",!0,!0),Ce.FS_createPath(n,"urj",!0,!0),Ce.FS_createPath(n,"zle",!0,!0),Ce.FS_createPath(n,"zls",!0,!0),Ce.FS_createPath(n,"zlw",!0,!0),Ce.FS_createPath(s,"voices",!0,!0),Ce.FS_createPath(i,"!v",!0,!0),Ce.FS_createPath(i,"mb",!0,!0),x.prototype={requests:{},open:function(P,j){this.name=j,this.requests[j]=this,Ce.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var P=this.byteArray.subarray(this.start,this.end);this.finish(P)},finish:function(P){Ce.FS_createDataFile(this.name,null,P,!0,!0,!0),Ce.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var G=g.files,S=0;S{const M=function(T){if(typeof nf=="boolean"&&nf){var P=Buffer.from(T,"base64");return new Uint8Array(P.buffer,P.byteOffset,P.byteLength)}try{for(var j=Zh(T),L=new Uint8Array(j.length),K=0;K=0;--p)C[48+p]=52+p,C[65+p]=p,C[97+p]=26+p;function I(Y,V,ee){for(var d,v,e=0,u=V,Q=ee.length,oe=V+(3*Q>>2)-(ee[Q-2]=="=")-(ee[Q-1]=="=");e>4,u>2),u>2]!=e[A+4>>2]){if(na(e[e[32972]+60>>2]),q=e[47192],ta=t+12|0,Hs=t+8|0,$=m=$-6832|0,e[m+6816>>2]=0,e[m+6808>>2]=32,e[m+6800>>2]=0,q){e[47351]=0,e[47350]=0,e[47352]=0,d[189076]=0,A=e[33284],e[47353]=(0|A)>0?A:0,e[47355]=e[47354]+1,cA(bA=m+5184|0,0,1600),Sr=m+6800|0,$=c=$-2608|0,e[c+2156>>2]=32,e[c+2148>>2]=0,u[134760]&&(d[190280]=0,d[134760]=0),e[q+8216>>2]=0,e[q+8220>>2]=0,e[q+288>>2]=0,e[m+780>>2]=0,d[189360]=0;e:if(A=e[33691])e[c+2152>>2]=A;else{A:{r:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2]){e[c+2152>>2]=0;break e}if(!(r=e[33285]))break r}e[33285]=0;break A}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}e[c+2152>>2]=r}fi=bA+2|0,Ye=32;e:{for(;;){ne=Ye;A:{r:{s:{if(r=e[33691],(o=e[33285])?A=0:(o=e[33285],A=e[33283],A=e[A>>2]==e[A+4>>2]),r|!A|o||!(e[32524]<0)){if(!Qi(e[c+2156>>2])){if((o=(0|(A=e[49828]))>0)&(0|(r=A))<(0|(A=e[33284])))break s;if(!((0|(r=e[49845]))<=0|(0|A)<(0|r))){e[49845]=0,d[134760]=1,e[33285]=e[c+2152>>2],a=16384;break e}}Ye=e[c+2156>>2],e[c+2156>>2]=e[c+2152>>2];i:{o:{c:{u:{l:{if((0|(r=e[32524]))>=0){if(u[r+134736|0])break l;e[32524]=-1}if(r=e[33285])break c;if(A=e[33283],e[A>>2]!=e[A+4>>2])break u;r=32;break i}e[33691]|r||(e[c+2156>>2]=d[134736],r=1),e[32524]=r+1,r=d[r+134736|0];break i}if(!(r=e[33285]))break o}e[33285]=0;break i}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}e[c+2152>>2]=r,e[33691]=0;i:if(!(E|!e[47203])){o:{if((0|(A=e[c+2156>>2]))!=60){if((0|r)!=35&r-97>>>0>25|(0|A)!=38)break i;for(o=e[33285],l=0;;){c:{if(e[c+2156>>2]=r,!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break c;r=e[c+2156>>2]}if(!(!((r=!!(0|Qi(r)))|(0|(A=e[c+2156>>2]))==35)|l>>>0>19)){d[(c+112|0)+l|0]=A,l=l+1|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A),o=e[33285]);continue}}break}d[(c+112|0)+l|0]=0;c:{u:{if(!(r=e[33285])){if(r=0,A=e[33283],e[A>>2]==e[A+4>>2])break c;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}e[c+2152>>2]=r,e[c+100>>2]=e[c+2156>>2],e[c+104>>2]=r,e[c+96>>2]=c+112,IA(134736,84252,c+96|0);c:{if(e[c+2156>>2]==59){l=c+2156|0,X=c+2152|0,$=o=$-32|0;u:if(u[0|(r=c+112|0)]!=35)A=-1,(0|(r=cs(130752,r)))!=-1&&(e[l>>2]=r,e[X>>2]||(e[X>>2]=32),A=r);else{if(u[0|(A=r+1|0)]==120){e[o>>2]=l,A=dt(r+2|0,90005,o);break u}e[o+16>>2]=l,A=dt(A,90070,o+16|0)}if($=o+32|0,(0|A)>0)break c}e[32524]=0,e[c+2156>>2]=38,e[c+2152>>2]=32;break i}if((0|(A=e[c+2156>>2]))>32)break i;if(!(r=e[33692]-20|0)|(0|r)==16)break o;break i}if((0|r)!=47&&!ls(r)&&(0|(A=e[c+2152>>2]))!=63&&(0|A)!=33)break i;if((0|(A=e[c+2148>>2]))>780){e[33691]=e[c+2156>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],a=16384;break e}for(X=e[33285],l=0,r=e[c+2152>>2];e[c+2156>>2]=r,o=0,X||(A=e[33283],o=e[A>>2]==e[A+4>>2],r=e[c+2156>>2]),!((0|r)==62|o|l>>>0>499);)e[(c+144|0)+(l<<2)>>2]=r,l=l+1|0,(r=e[33285])?(X=0,e[33285]=0):(e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A),X=e[33285]);e[(o=c+144|0)+(l<<2)>>2]=0,e[c+2152>>2]=32,de=c+2148|0,ne=e[32525],r=0,$=Ge=$-560|0;c:if(ho(o,84333,3)&&ho(o,84477,4)){for(A=(o+(Ln(o)<<2)|0)-4|0,(0|(MA=e[A>>2]))==47&&(e[A>>2]=32);;){if(A=e[o+(r<<2)>>2]){if(Nr(A))A=r;else if(d[(Ge+512|0)+r|0]=Kr(A<<24>>24),A=39,(0|(r=r+1|0))!=39)continue}else A=r;break}if(d[(Ge+512|0)+A|0]=0,u[Ge+512|0]!=47){if((0|(X=cs(130480,Ge+512|0)))!=16&&(r=e[de>>2],e[de>>2]=r+1,d[r+189424|0]=32),(0|MA)==47&&(r=0,!(502241>>>X&1)))break c}else(0|(r=cs(130480,Ge+512|1)))!=16&&(l=e[de>>2],e[de>>2]=l+1,d[l+189424|0]=32),X=r+32|0;l=o+(A<<2)|0,A=e[33708],E=R(A,76)+133076|0,r=262174;u:{l:{n:{p:switch(X-1|0){case 33:C:if(!((0|A)<=1)){for(;;){if(e[R(r=A-1|0,76)+133152>>2]==2)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=br(l,34,A);break c;case 32:C:if(!((0|A)<=1)){for(;;){if(e[R(r=A-1|0,76)+133152>>2]==1)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=br(l,33,A)+524328|0;break c;case 9:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=(E=r<<6)+134912|0)>>2]=10,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=Kt(l,88301),o=Kt(l,88390),fo(A,88479)?fo(A,88528)||(e[28+(134912+(r<<6)|0)>>2]=ps(o,130224)):e[24+(E+134912|0)>>2]=ps(o,130192),sa(de,e[33709]);break n;case 2:for((0|(A=e[33709]))<=18&&(e[33709]=A+1),e[(A=(ui=A<<6)+134912|0)>>2]=3,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,Nt=1;;){if(o=Kt(l,e[(Xt=Nt<<2)+130448>>2])){MA=0,A=e[Xt+131072>>2];C:if(X=e[A>>2])for(;;){for(r=0;E=d[r+X|0],(ne=e[(r<<2)+o>>2])&&(r=r+1|0,(0|E)==(0|ne)););m:switch(ne-34|0){case 0:case 5:if(!E)break C;break;default:break m}if(!(X=e[A+((MA=MA+1|0)<<3)>>2]))break}Yn=Xt+(ui+134912|0)|0;C:if((0|(A=e[4+(A+(MA<<3)|0)>>2]))>=0)A=(0|R(A,e[4+(Xt+134912|0)>>2]))/100|0;else{for(;o=(A=o)+4|0,Nr(e[A>>2]););for(Bs=e[A>>2]==43,o=((di=e[(A=A+(Bs<<2)|0)>>2]==45)<<2)+A|0,MA=Ge+96|0,$=X=($=E=$-16|0)-224|0,cA(X+16|0,0,144),A=X+160|4,e[X+24>>2]=A,e[X+60>>2]=A,e[X+92>>2]=-1,e[X+64>>2]=60,e[X+20>>2]=A,e[X+48>>2]=19,r=o;r=(A=r)+4|0,ne=(ne=e[A>>2])?Tr(124960,ne):0;);e[X+100>>2]=A,ja(r=X+16|0,0,0),RA(X,r,1,1),r=e[X+8>>2],an=e[X+12>>2],ne=e[X>>2],Hn=e[X+4>>2],MA&&(Un=MA,MA=e[X+136>>2]+(e[X+20>>2]-e[X+60>>2]|0)|0,e[Un>>2]=MA?A+(MA<<2)|0:o),e[(A=E)+8>>2]=r,e[A+12>>2]=an,e[A>>2]=ne,e[A+4>>2]=Hn,$=X+224|0,Me=Ms(e[A>>2],e[A+4>>2],e[A+8>>2],e[A+12>>2]),$=A+16|0;m:{r=100;b:if((0|(A=o))!=(0|(o=e[Ge+96>>2]))){r=di?-1:Bs;h:{if((0|(A=e[o>>2]))!=115){if((0|A)!=37)break h;if(ce(Me=r?+(0|r)*Me+100:Me)<2147483648){r=~~Me;break b}r=-2147483648;break b}if(e[o+4>>2]==116){L(+(kt=Me*+(0|r)/12)),A=0|T(1),T(0);y:{if((r=(A=A>>>20&2047)-969|0)>>>0>=63){if(Me=kt+1,(0|r)<0)break y;if(L(+kt),r=0|T(1),o=0|T(0),!(A>>>0<1033)){if(Me=0,!o&(0|r)==-1048576||(Me=kt+1,A>>>0>=2047))break y;if((0|r)>0|(0|r)>=0){O[(A=$-16|0)+8>>3]=3105036184601418e216,Me=3105036184601418e216*O[A+8>>3];break y}if(!(r>>>0<3230714880)){O[(A=$-16|0)+8>>3]=12882297539194267e-247,Me=12882297539194267e-247*O[A+8>>3];break y}}E=A,A=!(o<<1)&(0|(A=r<<1|o>>>31))==-2129002496|A>>>0<2165964800?E:0}ma=(kt=(Me=kt-((Zr=(Me=O[14416])+kt)-Me))*Me)*kt*(Me*O[14421]+O[14420]),kt*=Me*O[14419]+O[14418],Me*=O[14417],L(+Zr),T(1),E=0|T(0),Me=ma+(kt+(Me+O[(o=E<<4&2032)+115376>>3])),ne=e[(o=o+115384|0)>>2],X=e[o+4>>2],o=(r=ne)+(ne=0)|0,r=(E<<13)+X|0,r=o>>>0>>0?r+1|0:r,A?(P(0,0|o),P(1,0|r),Me=(kt=+j())*Me+kt):-2147483648&E?(P(0,0|o),P(1,r+1071644672|0),(Me=(Zr=(kt=+j())*Me)+kt)<1&&(e[(A=$-16|0)+8>>2]=0,e[A+12>>2]=1048576,O[A+8>>3]=22250738585072014e-324*O[A+8>>3],Me=(Me=(ma=Me+1)+(Zr+(kt-Me)+(Me+(1-ma)))+-1)==0?0:Me),Me*=22250738585072014e-324):(P(0,0|o),P(1,r+-1048576|0),Me=(kt=+j())*Me+kt,Me+=Me)}if(ce(Me*=100)<2147483648){r=~~Me;break b}r=-2147483648;break b}}if((0|Nt)!=1)break m;if(r)r=(A=ce(Me=Me*+(0|r)*100)<2147483648?~~Me:-2147483648)+100|0;else{if(ce(Me*=100)<2147483648){r=~~Me;break b}r=-2147483648}}A=(0|R(r,e[Xt+134848>>2]))/100|0;break C}A=ce(Me)<2147483648?~~Me:-2147483648,r&&(A=e[Xt+134848>>2]+R(A,r)|0)}e[Yn+4>>2]=A}if((0|(Nt=Nt+1|0))==5)break}sa(de,e[33709]);break n;case 11:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=12,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=(A=Kt(l,88658))?ps(A,130400):3,o=134912+(r<<6)|0,e[e[47192]+148>>2]!=1?(e[52+(134912+(r<<6)|0)>>2]=A,A=u[A+102776|0]):(e[20+(134912+(r<<6)|0)>>2]=u[A+102764|0],A=u[A+102770|0]),e[o+12>>2]=A,sa(de,e[33709]);break n;case 34:case 41:case 43:if(!((0|(A=e[33709]))<=0)){if(l=X-32|0,X=0,o=0,r=0,A>>>0>=4)for(E=-4&A,MA=0;Nt=2|r,Xt=1|r,o=(0|l)==e[134912+((ne=3|r)<<6)>>2]?ne:(0|l)==e[134912+(Nt<<6)>>2]?Nt:(0|l)==e[134912+(Xt<<6)>>2]?Xt:(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+4|0,(0|E)!=(0|(MA=MA+4|0)););if(E=3&A)for(;o=(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+1|0,(0|E)!=(0|(X=X+1|0)););(0|o)<=0||(e[33709]=o,A=o)}sa(de,A);break n;case 7:if(A=Kt(l,88741),r=Kt(l,88860),(0|ps(A,130176))!=1)break n;A=e[de>>2],e[de>>2]=A+1,d[A+189424|0]=91,A=e[de>>2],e[de>>2]=A+1,d[A+189424|0]=91,A=Yi((A=e[de>>2])+189424|0,r,800-A|0)+e[de>>2]|0,e[de>>2]=A+1,d[A+189424|0]=93,A=e[de>>2],e[de>>2]=A+1,d[A+189424|0]=93;break n;case 35:e[33692]==36&&(d[e[de>>2]+189424|0]=0,(o=cs(131104,r=(A=e[33707])+189424|0))&&(e[de>>2]=kr(o,r)+A)),A=e[de>>2],e[de>>2]=A+1,d[A+189424|0]=1,A=e[de>>2],e[de>>2]=A+1,d[A+189424|0]=89,e[33692]=0;break n;case 8:if(!(A=Kt(l,89299)))break n;d[134824]=1,r=e[de>>2],e[de>>2]=Yi(r+189424|0,A,800-r|0)+e[de>>2];break n;case 13:d[134824]=1;break n;case 40:case 45:d[134824]=0;break n;case 4:if(!(A=Kt(l,89360)))break n;if(Yi(Ge+352|0,A,160),u[Ge+352|0]&&!gr(199328,Ge+352|0)){d[134760]=1,d[199328]=0,r=16384;break c}if((0|(A=Pn(Ge+352|0)))<0)break n;e[Ge+20>>2]=A,e[Ge+16>>2]=1,IA(A=Ge+352|0,89460,Ge+16|0),_A(e[de>>2]+189424|0,A),e[de>>2]=e[de>>2]+TA(A);break n;case 10:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=11,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1;C:if(A=Kt(l,89514)){if(Yi(Ge+352|0,A,160),e[34441]){if((0|(A=Pn(Ge+352|0)))<0||0|rt[e[34441]](1,A+e[33282]|0,ne))break C;e[Ge+68>>2]=A,e[Ge+64>>2]=1,IA(Ge+352|0,89658,Ge- -64|0)}else{if(!ne|u[Ge+352|0]==47?A=Vi(Ge+352|0):(e[Ge+48>>2]=ne,e[Ge+52>>2]=Ge+352,IA(A=Ge+96|0,89564,Ge+48|0),A=Vi(A)),(0|A)<0)break C;e[Ge+36>>2]=A,e[Ge+32>>2]=1,IA(Ge+352|0,89623,Ge+32|0)}A=Ge+352|0,_A(e[de>>2]+189424|0,A),e[de>>2]=e[de>>2]+TA(A),e[4+(134912+(r<<6)|0)>>2]=1}if(sa(de,e[33709]),(0|MA)==47){Pa(11,de),r=16384;break c}d[134772]=1,r=16384;break c;case 42:Pa(43,de),d[134772]=0,r=16384;break c;case 12:C:{if(A=Kt(l,89714)){if(r=16384,(E=(0|(A=ps(A,130336)))<0?2:A)>>>0<=2&&(A=e[de>>2],e[Ge+84>>2]=E,e[Ge+80>>2]=1,IA(A+189424|0,89770,Ge+80|0),e[de>>2]=e[de>>2]+3,r=0),A=e[102784+(E<<2)>>2],!(o=Kt(l,89907)))break C;break l}if(r=16384,o=Kt(l,89907))break l;A=21;break u}if(E>>>0<3)break n;break u;case 0:(A=Kt(l,89965))&&(Yi(r=Ge+352|0,A,160),Pn(r)),r=br(l,1,e[33708])?147456:0;break c;case 1:r=br(l,2,A)?147456:0;break c;case 5:r=0,e[E>>2]==6&&(r=br(l,38,A),A=e[33708]),r=524358+(br(l,6,A)|r)|0;break c;case 6:r=0,(0|(o=e[E>>2]))==6&&(r=br(l,38,A),o=e[E>>2]),(0|o)==7&&(r=br(l,39,e[33708])|r),r=524358+(r|br(l,7,e[33708]))|0;break c;case 37:if(r=524328,e[E>>2]!=6)break c;r=br(l,38,A)+524328|0;break c;case 38:if(r=524358,(-2&e[E>>2])!=6)break c;r=br(l,39,A)+524358|0;break c;case 14:case 46:break c;case 3:break p;default:break n}A=Kt(l,88893),r=Kt(l,88992),o=Kt(l,89153),l=ps(A,130272),r=ps(r,130320),A=Tn(o,0),e[Ge>>2]=1,o=(0|A)<2?193:A- -64|0,r=(0|(A=(0|r)==1?19:l))==64?o:A,e[Ge+4>>2]=r,IA(A=Ge+352|0,89230,Ge),_A(e[de>>2]+189424|0,A),A=e[de>>2]+TA(A)|0,e[de>>2]=A,e[33707]=A,e[33692]=r}r=0;break c}A=Tn(o,1),o=e[33722],Qn(1,e[33713]),(0|(A=(0|(o=(0|R(A,o))/100<<8))/(0|R(e[36429],10))|0))<=199&&(A=(0|o)/(0|R(e[36428],10))|0),r=r||16384}o=A>>>5|0,l=A,r=((A=(0|A)>4095)?o>>>0>=4095?4095:o:l)+(A?8388608|r:r)|0}if($=Ge+560|0,r){if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,!(131072&r)){a=r;break e}_A(189360,134784),a=r;break e}e[c+2156>>2]=32;c:{u:{if(!(r=e[33285])){if(E=0,A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}e[c+2152>>2]=r,E=0;continue}e[c+2156>>2]=A+57344}if(u[134824])continue;if(o=e[c+2156>>2],!((0|(A=e[c+2152>>2]))!=10|e[47268]!=-1)){(0|(a=Za(o)))==16384?(A=e[c+2148>>2],v[bA+(A<<1)>>1]=e[33284]-e[47353],e[Sr>>2]=A,a=524328,A=kr(e[c+2156>>2],A+189424|0)+e[c+2148>>2]|0):A=e[c+2148>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0;break e}i:if((0|o)==1){if((0|A)!=66){if((0|A)!=86)break i;for(A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=0;;){o:{c:{u:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break o;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}if(e[c+2156>>2]=r,!(Nr(r)||(0|(A=e[c+2148>>2]))>=799)){e[c+2148>>2]=A+1,d[A+189424|0]=e[c+2156>>2];continue}}break}d[e[c+2148>>2]+189424|0]=0,a=147456;break e}r=e[c+2148>>2],d[0|(A=r+189424|0)]=32,d[A+1|0]=32,d[A+2|0]=32,d[A+3|0]=0,e[c+2148>>2]=r+3;o:{c:{u:{l:{n:{p:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break l;if(!(r=e[33285]))break p}e[33285]=0;break n}e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A)}if(e[c+2152>>2]=r,o=0,(0|r)!=48)break u;break c}r=e[c+2152>>2]}if(e[47208]=0,e[47201]=1,(0|r)==49)break o;for(o=e[33285],l=0;;){u:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break u;r=e[c+2152>>2]}if(!(Nr(r)|l>>>0>58)){e[188832+(l<<2)>>2]=e[c+2152>>2],(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A),o=e[33285]),l=l+1|0,e[c+2152>>2]=r,A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=32;continue}}break}o=2,e[188832+(l<<2)>>2]=0}e[47201]=o}o:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break o}e[33285]=0,e[c+2152>>2]=r;continue}e[33284]=e[33284]+1,A=e[33283],e[c+2152>>2]=rt[e[A+8>>2]](A);continue}pr=pr+1|0,r=0,A=e[q+340>>2];i:if(l=Q[A>>1]){for(;;){if((65535&l)!=(0|o)){if(l=Q[A+((r=r+2|0)<<1)>>1])continue;break i}break}o:switch(0|(A=Q[A+(r<<1|2)>>1])){case 1:continue;case 0:break i;default:break o}e[c+2156>>2]=A,o=A}Qi(o)?(ue=1,r=e[c+2156>>2]):WA?(e[33285]=e[c+2152>>2],r=1328,e[c+2156>>2]=1328,e[c+2152>>2]=32,WA=0):(0|(r=e[c+2156>>2]))!=3851?(WA=0,(0|r)!=3405|e[c+2152>>2]!=8205||(r=3406,e[c+2156>>2]=3406)):(r=32,e[c+2156>>2]=32,WA=0);i:if(os(r)){if(e[q+8216>>2]=e[q+8216>>2]+1,e[33692]|e[47200]!=2||os(Ye)||(e[c+2544>>2]=0,e[c+2548>>2]=0,e[c+2304>>2]=84731,!DA(q,c+2304|0,c+2160|0,c+2544|0,0,0))||(Ut(q,A=c+2160|0,c+2544|0,-1,0),da(r=A,A=c+2336|0),e[c+80>>2]=A,IA(r=c+2240|0,85451,c+80|0),A=e[c+2148>>2],(0|(r=TA(r)+A|0))>=800))break i;_A(A+189424|0,c+2240|0),e[c+2148>>2]=r}else ls(e[c+2156>>2])&&(e[q+8220>>2]=e[q+8220>>2]+1);if(r=e[c+2152>>2],A=e[c+2156>>2],e[47204])if((0|E)>0)E=E-1|0;else{if(!((0|A)!=91|(0|r)!=91)){o=0,E=-1;break A}E=(0|A)==93&&(0|r)==93?2:E}if((0|A)==10){for(o=e[33285],l=0;;){i:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break i;r=e[c+2152>>2]}if(Nr(r)){l=(e[c+2152>>2]==10)+l|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|rt[e[A+8>>2]](A),o=e[33285]),e[c+2152>>2]=r;continue}}break}if((0|l)>0){a&&cA(A=rr+189424|0,32,UA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],a=e[47203]?524358:R((0|l)>=3?3:l,30)+524328|0;break e}if(A=e[47268]<(0|pr),pr=0,!A){A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],a=262174;break e}}if(o=0,e[33692]|E)break A;if(A=0,!a)break r;if(Nr(e[c+2156>>2])){A=a;break r}if(Rt(e[c+2156>>2])&&Ai(e[c+2156>>2]))break r;e[33691]=e[c+2156>>2],d[0|(A=rr+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2];break e}WA&&(e[c+2148>>2]=kr(1328,e[c+2148>>2]+189424|0)+e[c+2148>>2]),a&&cA(A=rr+189424|0,32,UA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0}a=589864;break e}if(!((0|(r=e[c+2156>>2]))!=46|e[c+2152>>2]!=46)){r:{s:{i:{if(!(r=e[33285])){if(r=e[33283],e[r>>2]==e[r+4>>2])break r;if(!(r=e[33285]))break i}e[33285]=0;break s}e[33284]=e[33284]+1,r=e[33283],r=0|rt[e[r+8>>2]](r)}if(f=r,(0|r)==46)for(e[c+2152>>2]=32,e[c+2156>>2]=8230,f=e[33285];;){s:{i:{if(!f){if(r=e[33283],e[r>>2]==e[r+4>>2]){f=46;break r}if(!(f=e[33285]))break i}e[33285]=0,r=0;break s}e[33284]=e[33284]+1,r=e[33283],f=0|rt[e[r+8>>2]](r),r=e[33285]}if((0|f)!=46)break r;e[c+2152>>2]=32,e[c+2156>>2]=8230,f=r}}(0|(r=e[c+2156>>2]))!=8230?e[33285]=f:(e[c+2152>>2]=f,r=8230)}if(MA=0,(0|(X=Za(r)))!=16384){r:if(536621&X)for(r=e[33285];;){if(!r&&(r=e[33283],e[r>>2]==e[r+4>>2])||!(536621&Za(e[c+2152>>2])))break r;(f=e[33285])?(e[33285]=0,r=0):(e[33284]=e[33284]+1,r=e[33283],f=0|rt[e[r+8>>2]](r),r=e[33285]),e[c+2152>>2]=f}if(1048576&X){e[m+780>>2]=X>>>12&15,WA=1,E=0,a=A;continue}(Nr(e[c+2152>>2])|32768&X||si(e[c+2152>>2])||(0|(r=e[c+2152>>2]))==63||(l=0,e[33285]||(r=e[33283],l=e[r>>2]==e[r+4>>2],r=e[c+2152>>2]),l||(0|r)==1))&&(MA=1)}if((0|(r=e[c+2156>>2]))==57404&&(e[c+2156>>2]=60,r=60),e[47201]){a=0;r:if(!(1<<(l=wr(r))&1879048255&&l>>>0<=30)){if(!((l=wr(r))>>>0>27)){if(116672&(E=1<>2]))){e[q+288>>2]=0,o=e[c+2156>>2],d[c+2336|0]=0,E=e[c+2152>>2],r=0;r:{s:if(!((0|(a=e[34064]))<=0))for(;;){if((0|o)==e[136272+(r<<4)>>2]){if(e[136276+(r<<4)>>2])break r;if(Ht(0,r))break s;break r}if((0|a)==(0|(r=r+1|0)))break}r=-1}r:if((0|r)>=0)e[c>>2]=r,IA(c+2336|0,86007,c),e[33285]=E;else if((l=!MA)|(0|o)!=46|(0|E)==46||(e[c+2600>>2]=0,e[c+2604>>2]=0,e[c+2540>>2]=86036,!DA(q,c+2540|0,c+2544|0,c+2600|0,0,0))?r=Es(c+2240|0,q,o,0):(Ut(q,r=c+2544|0,c+2600|0,-1,0),da(a=r,r=c+2160|0),e[c+64>>2]=r,IA(r=c+2304|0,85451,c- -64|0)),a=r,l|!e[c+2148>>2]|2&u[q+76|0]){for(r=e[33285],l=1;;){s:{i:{if(!r){if(r=e[33283],e[r>>2]==e[r+4>>2]|(0|o)==60|(0|o)!=(0|E))break s;if(l=l+1|0,E=e[33285])break i;e[33284]=e[33284]+1,r=e[33283],E=0|rt[e[r+8>>2]](r),r=e[33285];continue}if((0|o)==60|(0|o)!=(0|E))break s;E=r,l=l+1|0}r=0,e[33285]=0;continue}break}if(e[c+2152>>2]=E,MA&&(e[33285]=E),(0|l)==1){e[c+16>>2]=a,IA(c+2336|0,86219,c+16|0);break r}if((0|l)<=3){if(d[c+2336|0]=0,(0|(r=e[50786]))<=299&&(e[c+2336>>2]=u[86728]|u[86729]<<8|u[86730]<<16|u[86731]<<24,v[c+2340>>1]=u[86732]|u[86733]<<8),(0|l)>0){for(;e[c+32>>2]=a,IA(r=c+2160|0,86219,c+32|0),E=l>>>0>1,Xr(c+2336|0,r),l=l-1|0,E;);r=e[50786]}if((0|r)>299)break r;e[c+2160>>2]=u[86857]|u[86858]<<8|u[86859]<<16|u[86860]<<24,r=u[86860]|u[86861]<<8|u[86862]<<16|u[86863]<<24,d[c+2163|0]=r,d[c+2164|0]=r>>>8,d[c+2165|0]=r>>>16,d[c+2166|0]=r>>>24,Xr(c+2336|0,c+2160|0);break r}e[c+56>>2]=a,e[c+52>>2]=l,e[c+48>>2]=a,IA(c+2336|0,86932,c+48|0)}else e[33691]=o,e[33285]=E,v[c+2336>>1]=32;if(l=TA(a=c+2336|0),_A((r=e[c+2148>>2])+189424|0,a),e[c+2148>>2]=r+l,MA){if((0|o)==45){a=16384;break e}if(a=Za(o),!(2&u[q+76|0]|(0|r)<=0)){a=(-32769&a)==266270?262148:(28672&a)==4096?266244:262148;break e}if(!(524288&a)){a=(28672&a)==4096?266244:262148;break e}if((0|a)>=0)break e}o=e[c+2156>>2]}}if(o|!(2097152&X)||(r=_A(e[c+2148>>2]+189424|0,Es(c+2336|0,q,e[c+2156>>2],1)),u[0|r]?(e[c+2148>>2]=e[c+2148>>2]+TA(r),X&=-28673,o=e[c+2156>>2]):o=0),E=0,MA){r:if(Nr(f=e[c+2152>>2]))for(l=e[33285],r=0;;){if(!l&&(a=e[33283],e[a>>2]==e[a+4>>2])||!Nr(f))break r;r=((0|f)==10)+r|0,(f=e[33285])?(e[33285]=0,l=0):(e[33284]=e[33284]+1,a=e[33283],f=0|rt[e[a+8>>2]](a),l=e[33285])}else r=0;a=(0|(E=e[c+2156>>2]))==46&&(0|r)<2?4194304|X:X;r:{if(!r){l=1,(0|E)!=44|(0|Ye)!=46|e[q+212>>2]!=26741|ne-48>>>0>=10||f-48>>>0>=10&&!Ai(f)||(e[c+2156>>2]=1367,l=0),(0|(X=e[c+2156>>2]))!=46|(0|f)!=39||(E=l,X=e[33283],(0|(Ge=e[X>>2]))==e[X+4>>2]?l=0:(l=0|rt[e[X+8>>2]](X),e[X>>2]=Ge),X=e[c+2156>>2],l=(0|l)!=115&E);s:if((0|X)!=46)l&=ue;else{i:if(1&d[q+106|0]){if(!(Ye-48>>>0<10)&&((E=Ye-73|0)>>>0>15|!(1<>>0<=15||Nr(ne))))break i;l=Ye-48>>>0>=10?0:!Ai(f)&(0|f)!=45&l}if(Ai(f)&&(l=u[q+208|0]!=0&l),ue){X=e[c+2156>>2];break s}X=32,e[c+2156>>2]=32,l=0}if(!(!l|(0|X)!=46|!e[47203]|(0|f)!=60)){rr=e[c+2148>>2],A=a;break r}if(!l)break r}if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=f,Ye-48>>>0<10&&(a=Rt(f)?a:-4194305&a),(0|r)<2)break e;a=(0|a)==536621?536656:(0|a)==532520?532555:524358;break e}(e[33285]||(E=0,r=e[33283],e[r>>2]!=e[r+4>>2]))&&(E=0,Nr(e[c+2152>>2])&&(e[33285]=f))}a=A}if(e[33712]!=1){if((0|o)!=(0|(r=e[c+2156>>2])))l=e[c+2148>>2],(0|r)==57404&&(r=60,e[c+2156>>2]=60);else{A:{if(si(o))r=57384;else{if(r=45,e[c+2156>>2]==45)break A;r=32}e[c+2156>>2]=r}l=e[c+2148>>2]}e[c+2148>>2]=kr(r,l+189424|0)+e[c+2148>>2],Nr(e[c+2156>>2])||si(e[c+2156>>2])||(A=e[c+2148>>2],v[bA+(A<<1)>>1]=e[33284]-e[47353],(0|A)<=(l+1|0)||cA(fi+(l<<1)|0,255,A+~l<<1)),r=e[c+2148>>2],e[Sr>>2]=r;A:{r:{if((0|r)>725){if(!Rt(e[c+2156>>2]))break r;r=e[c+2148>>2]}if((0|r)<796)continue;break A}if(r=e[c+2148>>2],!(e[c+2156>>2]-48>>>0>=10)&&(0|r)<796)continue}break}}d[0|(A=r+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],a=16384}$=c+2608|0,WA=a,ta&&(A=e[m+780>>2],e[ta>>2]=A||WA>>>12&7),A=(m+5184|0)+(e[m+6800>>2]<<1)|0,v[A+6>>1]=0,v[A+2>>1]=0,v[A+4>>1]=32767,X=R(4095&WA,8388608&WA?320:10),a=189424;e:{A:{r:if(A=u[189424]){for(;;){if(!!(255&(A=A<<24>>24))&A>>>0<33){if(A=u[0|(a=a+1|0)])continue;break r}break}if(u[0|a])break A}X=(0|(r=X-(A=e[47566])|0))>0?r:0,e[47566]=X+A,WA=u[190268]?524288|WA:WA,e[q+8240>>2]=WA;break e}e[47566]=X,A=u[190268],e[q+8240>>2]=WA,A&&(it=1,e[47568]=e[47568]+1,(0|(A=e[47569]))<=0||(A=A-1|0,e[47569]=A,A||(d[190280]=0)))}e[49572]=1,e[47572]=655360,e[47573]=0,e[q+8184>>2]=0,e[q+8188>>2]=0,A=0,e[q+288>>2]=0,e[(r=q- -8192|0)>>2]=0,e[r+4>>2]=0,e[q+8200>>2]=0,e[q+8224>>2]=0,e[q+8228>>2]=0,e[(r=q+8232|0)>>2]=0,e[r+4>>2]=0,d[m+786|0]=32,v[m+784>>1]=8192,e[m+6812>>2]=32,v[m+1588>>1]=3,e[m+1584>>2]=0,a=0;e:if(!((0|(r=e[m+6800>>2]))<=0)){for(;;){if(v[(m+5184|0)+(a<<1)>>1]>0)break e;if((0|r)==(0|(a=a+1|0)))break}a=r}if(r=Q[(m+5184|0)+(a<<1)>>1],v[m+1592>>1]=r,r)for(;A=!!(65535&~r)+A|0,r=Q[(m+5184|0)+((a=a+1|0)<<1)>>1];);for(d[m+1594|0]=A,l=3,bA=1,a=0;;){ne=e[m+6808>>2],Cr(m+6808|0,(de=(m+784|0)+l|0)-1|0),!u[q+170|0]|e[m+6808>>2]-48>>>0>=10||Rt(ne)&&(e[m+6808>>2]=97),J?e[m+6812>>2]=J:B&&Cr(m+6812|0,B+189423|0),r=B;e:{A:if(a||(r=UA(m+6816|0,B+189424|0)+B|0,a=e[m+6816>>2])){if(ue=UA(m+6804|0,A=r+189424|0),(0|a)==1){if(o=r-1|0,J=32,Ye=0,e[m+6812>>2]!=32){r=o,A=32;break A}B=0,a=r;r:{s:switch(u[0|A]-43|0){case 0:a=r+1|0,B=64;break r;case 2:break s;default:break r}a=r+1|0,B=96}if(d[0|(A=a+189424|0)]-48>>>0>=10)f=a+1|0,ue=-1;else{for(ue=js(A);a=(A=a)+1|0,d[A+189424|0]-48>>>0<10;);f=a,a=A}if((0|(J=e[47350]))>247)A=0;else if(A=0,!((0|(a=d[a+189424|0]))<0)&&(a=Os(84868,255&a,14))){r=(A=a-84868|0)+1|0,(0|ue)==-1&&(ue=e[105536+(r<<2)>>2],B=0);r:{s:switch(A-8|0){case 0:e[49574]=0,e[49573]=ue;break r;case 4:break s;default:break r}(0|ue)>=3?d[199304]=1:d[199304]=0}A=1,e[47350]=J+1,e[198304+(J<<2)>>2]=(r+B|0)+(ue<<8),r=f}J=e[m+6812>>2],cA(o+189424|0,32,r-o|0),Aa=A+Aa|0,a=0;break e}J=0,(0|a)==32|e[49573]!=36?(Ye=0,A=a):(e[m+6812>>2]!=32|e[m+6804>>2]!=32||(e[49573]=20),Ye=0,A=ai(a,q))}else e[m+6804>>2]=32,Ye=1,J=0,ue=0,A=32;A:if(tr){if(tr=1,bA=8,a=0,(0|A)!=93|e[m+6804>>2]!=93)break A;r=r+1|0,A=32,tr=0}else if((240&(a=e[49573]))!=64)if(tr=0,16&a)a=0;else{r:{s:{i:{o:{if(!((0|(f=(0|A)==8242||(0|A)==8217||(0|A)==146||(0|A)==180?39:A))!=8216&(0|f)!=63))if(Rt(e[m+6808>>2])){if(f=A,Rt(e[m+6804>>2])){f=39;break o}}else f=A;c:{if((0|f)!=1367){if((0|f)==1328){W|=1024,f=32;break o}if((A=f-44032|0)>>>0>11183)break o;if(o=((a=((E=65535&A)>>>0)/28|0)>>>0)%21|0,A=A-R(a,28)&65535,f-50500>>>0>587)break c;a=A?A+4519|0:0,o=o+4449|0;break s}W|=131072,rr=e[m+6804>>2],A=e[m+6812>>2],f=32;break i}a=50500+(A+R(o,28)|0)|0,o=(E>>>0)/588|4352;break s}if(rr=e[m+6804>>2],A=e[m+6812>>2],!((a=f-12592|0)>>>0>51)){o=4352|u[a+103296|0],a=0;break s}}c=r+189424|0;i:if(!((0|(a=e[q+212>>2]))!=28268&(0|a)!=24934|(0|f)!=39)&&!ls(A)&&(UA(m+6820|0,c+1|0),ri(e[m+6820>>2]))){o=601,a=0;o:switch(rr-110|0){case 6:break s;case 0:break o;default:break i}if(e[q+212>>2]!=24934)break s;d[0|c]=32;break s}if(e[m+6824>>2]=32,(0|(A=e[49897]))>0)e[49897]=A-1,a=0;else{if(!f){a=0,o=0;break r}i:{o:{c:{u:if((MA=e[q+180>>2])&&(E=f,(Ge=os(f))&&(E=ai(f,q)),!$i(MA)))for(;;){e[m+16>>2]=0,e[m+624>>2]=E,A=UA(m+16|0,MA)+MA|0;l:if(e[m+624>>2]==e[m+16>>2]){if(u[0|A]){for(o=1,Nt=0,a=c;Xt=UA(m+16|0,A),pr=UA(m+624|0,a),Sr=ai(e[m+624>>2],q),e[m+624>>2]=Sr,a=a+pr|0,Nt=(pr=(0|Sr)==e[m+16>>2])+Nt|0,o&=pr,u[0|(A=A+Xt|0)];);if(!o)break l;e[49897]=Nt}if(!(A=A+1|0))break u;if(8&u[188788]&&(e[m>>2]=MA,e[m+4>>2]=A,Ar(e[47195],85187,m)),A=UA(m+6828|0,A)+A|0,u[0|A])break c;a=0;break o}for(;a=A,A=A+1|0,u[0|a];);for(;u[0|(a=(A=a)+1|0)];);if($i(MA=A+2|0))break}a=0,o=f;break i}UA(m+6824|0,A),Ge&&os(rr)&&(e[m+6824>>2]=$s(e[m+6824>>2])),a=e[m+6824>>2]}o=e[m+6828>>2],W|=2097152,Ge&&(o=$s(o))}if((0|o)!=8)break s}o=r;break e}a?e[m+6804>>2]=a:a=0}Rt(o)||ri(o)||Tr(e[q+336>>2],o)||!Rt(e[m+6808>>2])|!(!u[q+170|0]|o-48>>>0>=10)&e[m+6804>>2]-48>>>0>=10||(o=32,iA=1);r:{s:{i:{o:{c:{if(e[m+6808>>2]-48>>>0<10){if(o-48>>>0<10){A=_;break c}if(1<<(A=o-32|0)&20481&&A>>>0<=14)break o;iA=1}else if(A=0,e[m+6812>>2]!=44||(A=_,(0|o)!=44))break c;o=32;break o}if((0|o)==91&&((0|(f=e[m+6804>>2]))==2||(o=91,(0|f)==91&&e[47204])))break i;_=A}if(Rt(o)){o:{c:{u:{if(Rt(e[m+6808>>2])){if(!u[q+171|0]||(A=e[m+6808>>2],!((0|o)>12352)&&(0|A)<12353))break u}else A=e[m+6808>>2];if(Er=Tr(e[q+336>>2],A)?Er:0,(0|(A=e[m+6808>>2]))!=32&&!Tr(e[q+336>>2],A)){A=32,re=si(e[m+6808>>2])?re:256|re;break c}W=os(o)?2|W:W,e[m+6808>>2]!=32|d[de-2|0]-48>>>0>=10|e[m+6812>>2]-48>>>0<10||(d[(m+784|0)+l|0]=32,A=1588+(R(jA,12)+m|0)|0,v[A>>1]=Q[A>>1]+1,l=l+1|0)}if(A=32,(0|o)==32)break o;if(Er=Er+1|0,(0|(f=e[q+600>>2]))<=0){A=o;break o}if(!((0|o)<=591&(0|(E=e[m+6808>>2]))>=(0|f))){if((0|o)<(0|f)){A=o;break o}if((0|Er)<2){A=o;break o}if(!((0|E)<=591)){A=o;break o}}if(!Rt(E)){A=o;break o}W|=16384,re|=128}iA=1}if($a=$a+1|0,os(A)){if(f=ai(A,q),e[q- -64>>2]){A=es?f:712,a=es?a:f,es=1;break A}if(Ai(e[m+6812>>2])){if(e[m+6808>>2]==32){A=f;break A}if(A=32,e[q+212>>2]!=26465)break r;for(o=85240,E=(m+784|0)+l|0,ue=0;;){if(c=TA(o),u[0|(ne=E-c|0)]==32&&!ga(ne+1|0,o,c=c-1|0)){if((0|(o=d[o+c|0]))==(0|f)){A=f;break A}if((0|o)==65&&co(q,f)){A=f;break A}}if(o=e[131184+((ue=ue+1|0)<<2)>>2],(0|ue)==11)break}break r}if(A=32,(0|f)==32)break A;if(!os(e[m+6812>>2])){A=f;break A}if(!Ai(e[m+6804>>2])){A=f;break A}if(UA(m+16|0,189424+(r+ue|0)|0),!(e[q+212>>2]!=28268|(0|Er)!=2|(0|f)!=106|e[m+6812>>2]!=73)){A=f;break A}if(e[m+6808>>2]==32){A=f;break A}if(!Rt(e[m+16>>2])){A=f;break A}re|=256,J=32,iA=1;break A}if(!bA){bA=0;break A}if((0|Er)<3){bA=0;break A}if((0|A)!=115){bA=0;break A}if(e[q+212>>2]!=25966){bA=0;break A}if(e[m+6804>>2]!=32){bA=0;break A}if(bA|=4,A=32,u[(o=l+m|0)+783|0]!=39)break A;d[o+783|0]=32;break A}A=32;o:{c:{u:{l:{n:switch(o-39|0){default:if((0|o)==95)break A;case 1:case 2:case 3:case 4:case 5:if(o-48>>>0>=10||u[q+170|0]&&Rt(e[m+6808>>2])&&!((f=e[m+6804>>2])-48>>>0<10|f-2406>>>0<10))break o;if((0|(E=e[m+6808>>2]))==32)break c;if(f=e[m+6808>>2],E-48>>>0<10)break u;if((0|(E=f))==(0|(f=e[q+128>>2])))break l;iA=1;break A;case 6:if(!ri(e[m+6812>>2])&&Rt(e[m+6804>>2])){if(e[m+6808>>2]!=32){iA=1;break A}if(W|=128,(0|jA)<=0)break A;o=1572+(R(jA,12)+m|0)|0,e[o>>2]=16384|e[o>>2];break A}if(o=e[m+6804>>2],!(e[m+6812>>2]!=32|(0|o)!=32)){Gt=4;break A}if((0|o)==45){r=r+1|0,Gt=4;break A}if(A=45,e[m+6808>>2]!=32||!Rt(ne)||Rt(e[m+6812>>2]))break A;d[(m+784|0)+l|0]=32,o=1588+(R(jA,12)+m|0)|0,v[o>>1]=Q[o>>1]+1,l=l+1|0;break A;case 7:if(e[m+6808>>2]==46){iA=1;break A}if(A=46,(0|jA)<=0||(o=1572+(R(jA,12)+m|0)|0,1&d[o+1|0])||!Rt(e[m+6812>>2]))break A;e[o>>2]=65536|e[o>>2],A=(A=ri(e[m+6804>>2]))||e[m+6804>>2]==45?32:46;break A;case 0:break n}n:{if((0|(f=e[m+6812>>2]))!=46||(o=115,e[m+6804>>2]!=115)){if(!Qi(f))break n;o=e[m+6804>>2]}if(Rt(o))break s}if(1&(o=e[q+88>>2])){if(Rt(e[m+6804>>2]))break s;o=e[q+88>>2]}if(2&o&&Rt(e[m+6812>>2]))break s;if(!(!Tr(e[q+332>>2],e[m+6812>>2])|(0|ne)!=32)){r=(e[m+6804>>2]==32)+r|0;break s}if(f=(0|(o=e[m+6808>>2]))!=115|Wa,Wa=0,!(1&f))break A;Wa=!!(0|ri(o)),Gt=4;break A}if((0|f)==44&_){iA=1;break A}_=1;break o}if((0|f)!=32)break o}Rt(ne)&&(Rt(e[m+6812>>2])||(d[(m+784|0)+l|0]=32,A=1588+(R(jA,12)+m|0)|0,v[A>>1]=Q[A>>1]+1,l=l+1|0))}A=o;break A}tr=1,o=r+1|0,_=A;break e}A=39,Wa=0;break A}iA=1,J=32}else{if(A-48>>>0<10){a=0,o=(0|(f=e[49574]+1|0))>(15&e[49573]),e[49574]=o?0:f,A=o?32:A,iA|=o,tr=0;break A}a=0,e[49574]=0,A=(o=e[m+6808>>2]-48>>>0<10)?32:A,iA|=o,tr=0}if(ri(A)){if(e[m+6808>>2]==32){W|=262144,o=r;break e}if(o=e[m+6816>>2]-9>>>0<2,E=1&iA){ue=0;A:if(!((0|w)>(0|(A=r-1|0))))for(;;){if(!(f=v[(m+5184|0)+(A<<1)>>1]))break A;if(ue=((0|f)>0)+ue|0,!((0|w)<=(0|(A=A-1|0))))break}d[1594+(R(jA,12)+m|0)|0]=ue}if(re=o?262144|re:re,d[(m+784|0)+l|0]=32,A=l+1|0,!((0|jA)>298||(o=(m+1584|0)+R(jA,12)|0,(0|(f=Q[o+4>>1]))>=(0|A)))){if((0|Aa)<=0?w=e[o>>2]:(w=198300+(e[47350]<<2)|0,e[w>>2]=128|e[w>>2],Aa=0,w=64|e[o>>2]),c=e[47352],d[o+6|0]=c,e[o>>2]=w|($a?bA:-2&bA)|(u[199304]?2048:0)|W,(0|c)>0){for(;W=(w=m+784|0)+A|0,w=w+(A=A-1|0)|0,d[0|W]=u[0|w],(0|A)>(0|f););d[0|w]=32,v[o+4>>1]=f+1,A=l+2|0}f=(m+1584|0)+R(jA=jA+1|0,12)|0,e[f>>2]=0,v[f+4>>1]=A,l=r;A:if(!((0|(o=e[m+6800>>2]))<=(0|r))){for(;;){if(v[(m+5184|0)+(l<<1)>>1]>0)break A;if((0|o)==(0|(l=l+1|0)))break}l=o}if(ue=Q[(m+5184|0)+(l<<1)>>1],v[f+8>>1]=ue,$a=0,o=0,ue)for(;o=!!(65535&~ue)+o|0,ue=Q[(m+5184|0)+((l=l+1|0)<<1)>>1];);d[f+10|0]=o,e[47352]=0,bA=1,W=re,re=0,es=0}iA=0,a=E?0:a,o=E?B:r}else(0|l)>795?(o=r,r=w,A=l):(A=kr(A,(m+784|0)+l|0)+l|0,o=r,r=w);e[47352]<(0|Gt)&&(e[47352]=Gt),Gt=0,w=r,l=A}if(Ye||(B=o,!((0|l)<799)))break}(0|Aa)<=0|jA||(A=198300+(e[47350]<<2)|0,e[A>>2]=128|e[A>>2],e[m+1584>>2]=64|e[m+1584>>2],jA=1),A=(m+784|0)+l|0,e[q+8204>>2]=A-1,r=0,d[0|A]=0,d[m+1590|0]=0,d[1590+(R(jA,12)+m|0)|0]=8;e:if((0|jA)<=0)e[m+1584>>2]=512|e[m+1584>>2],l=e[49572];else{A=jA-1|0;A:if((0|jA)!=1)for(a=A;;){if(!si(d[Q[1588+(R(a,12)+m|0)>>1]+(m+784|0)|0])){r=a;break A}if(f=(0|a)>1,a=a-1|0,!f)break}if(r=(m+1584|0)+R(r,12)|0,e[r>>2]=16|e[r>>2],4194304&WA&&(A=(m+1584|0)+R(A,12)|0,256&(r=e[A>>2])||(e[A>>2]=65536|r)),e[m+1584>>2]=512|e[m+1584>>2],!((0|jA)<=0|(0|(l=e[49572]))>990))for(f=3|(A=m+624|0),E=2|A,J=m+754|0,Ye=!(4194304&WA),B=0,w=0;;){e[47354]=e[47354]+1;A:{if((0|(A=e[49827]))<=0||(A=A-1|0,e[49827]=A,A)){if(u[190280])break A}else d[190280]=0;A=Q[1588+(R(B,12)+m|0)>>1]+(m+784|0)|0;r:if(!(d[0|A]-48>>>0>=10)&&(r=m+624|0,a=A,e[q+112>>2]!=1227133512)){for(;;){s:{if(d[0|a]-48>>>0<10)d[0|r]=u[0|a],r=r+1|0,a=a+1|0;else{if(e[q+124>>2]!=d[0|a]|u[a+1|0]!=32||(l=a+2|0,u[a+3|0]==32|d[0|l]-48>>>0>=10|u[a+4|0]==32))break s;B=B+1|0,a=l}if(r>>>0>>0)continue;break r}break}cA(A+(r=r-(_=m+624|0)|0)|0,32,(a=(l=a-A|0)-r|0)>>>0<=l>>>0?a:0),ct(A,_,r)}for(r=0;a=r,r=r+1|0,d[A+a|0]-48>>>0<10;);r:if(a-5>>>0<=27){for(d[m+626|0]=32,v[m+624>>1]=8224,u[0|A]!=48&e[q+132>>2]>=(0|a)||(r=(m+1584|0)+R(B,12)|0,e[r>>2]=524288|e[r>>2]),re=(m+1584|0)+R(B,12)|0,ue=0,l=f;r=A,!((A=d[0|A])-48>>>0>=10&(0|A)!=e[q+128>>2])&&(d[0|l]=A,A=l+1|0,_=a,(0|(a=a-1|0))<=0?l=A:e[q+112>>2]>>>a&1?(c=e[re+4>>2],W=(m+16|0)+R(ue,12)|0,e[W>>2]=e[re>>2],e[W+4>>2]=c,e[W+8>>2]=e[re+8>>2],ue=ue+1|0,(0|(W=e[q+124>>2]))!=32&&(d[l+1|0]=W,A=l+2|0),d[0|A]=32,l=A+1|0,8&u[re+2|0]||((Gt=e[q+112>>2])>>>_-2&1&&(d[A+1|0]=48,d[A+2|0]=48,Gt=e[q+112>>2],l=A+3|0),Gt>>>_-3&1&&(d[0|l]=48,l=l+1|0))):l=A,A=r+1|0,l>>>0>>0););if(a=e[re+4>>2],A=(m+16|0)+R(ue,12)|0,e[A>>2]=e[re>>2],e[A+4>>2]=a,a=e[re+20>>2],e[A+16>>2]=e[re+16>>2],e[A+20>>2]=a,a=e[re+12>>2],e[A+8>>2]=e[re+8>>2],e[A+12>>2]=a,a=1,(0|ue)>0)for(;A=(m+16|0)+R(a,12)|0,e[A>>2]=-262209&e[A>>2],(0|ue)>=(0|(a=a+1|0)););if(A=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,a=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24,d[0|l]=a,d[l+1|0]=a>>>8,d[l+2|0]=a>>>16,d[l+3|0]=a>>>24,d[l+4|0]=A,d[l+5|0]=A>>>8,d[l+6|0]=A>>>16,d[l+7|0]=A>>>24,A=u[r+12|0]|u[r+13|0]<<8|u[r+14|0]<<16|u[r+15|0]<<24,r=u[r+8|0]|u[r+9|0]<<8|u[r+10|0]<<16|u[r+11|0]<<24,d[l+8|0]=r,d[l+9|0]=r>>>8,d[l+10|0]=r>>>16,d[l+11|0]=r>>>24,d[l+12|0]=A,d[l+13|0]=A>>>8,d[l+14|0]=A>>>16,d[l+15|0]=A>>>24,d[l+16|0]=0,l>>>0<=f>>>0)break r;for(A=u[re+6|0],ue=0,a=f;;){for(w=ge(q,a,(m+16|0)+R(ue,12)|0,255&A);A=u[0|a],a=a+1|0,(0|A)!=32;);if(A=0,d[re+6|0]=0,ue=ue+1|0,!(a>>>0>>0))break}}else{if(e[47352]=0,w=ge(q,A,r=(m+1584|0)+R(B,12)|0,u[r+6|0]),(0|(a=e[47352]))>u[r+18|0]&&(d[r+18|0]=a,e[47352]=0),!(!(4096&w)|u[0|A]==32))for(;cA(m+624|0,0,150),e[m+624>>2]=538976288,e[m+628>>2]=538976288,d[m+632|0]=32,ge(q,ct(E,A,a=UA(m+16|0,A)),r,0),u[0|(A=A+a|0)]!=32;);50331648&w&&(X=(A=Ye|(~e[33264]+jA|0)!=(0|B))?X:10,A|!ta||(e[ta>>2]=4,X=10))}if(128&w&&!((0|(r=e[33264]))<=0)){if(A=0,a=r,l=3&r)for(;_=(m+1584|0)+R(a+B|0,12)|0,e[_>>2]=1048576|e[_>>2],a=a-1|0,(0|l)!=(0|(A=A+1|0)););if(r>>>0>=4)for(;A=(m+1584|0)+R(a+B|0,12)|0,e[A>>2]=1048576|e[A>>2],e[(r=A-12|0)>>2]=1048576|e[r>>2],e[(r=A-24|0)>>2]=1048576|e[r>>2],e[(A=A-36|0)>>2]=1048576|e[A>>2],a=a-4|0;);e[33264]=a}}if(l=e[49572],(0|jA)<=(0|(B=B+1|0)))break e;if(!((0|l)<991))break}}if((0|(a=e[47351]))<(0|(f=e[47350]))){for(J=e[47202],Ye=e[49846],ue=e[47352];;){A=(r=e[198304+(a<<2)>>2])>>8;e:{A:switch((31&r)-9|0){case 0:J=A;break e;case 4:Ye=A;break e;case 3:break A;default:break e}ue=r>>>0>=256?A+ue|0:0}if(!(!(128&r)&(0|f)>(0|(a=a+1|0))))break}e[47352]=ue,e[47351]=a,e[49846]=Ye,e[47202]=J}e[49572]=l+2,e[(A=190288+(l<<3)|0)>>2]=589824,v[A+4>>1]=o,e[A+8>>2]=589824,v[A+12>>1]=o,r=jA&&e[47199]?X:10,e[33285]?A=0:(A=e[33283],A=e[A>>2]==e[A+4>>2]),X=A?r:X,B=it,f=0,jA=0,$=E=$-32192|0,e[E+24>>2]=0,e[E+28>>2]=0,e[E+16>>2]=0,e[E+20>>2]=0,e[E+8>>2]=0,e[E+12>>2]=0,e[E>>2]=0,e[E+4>>2]=0,o=e[49572],c=Q[190284+(o<<3)>>1];e:{if((0|(a=o-3|0))<0)A=a;else{for(;;){if(f=(0|(r=127&u[(A=190288+(a<<3)|0)+3|0]))<(0|f)?f:r,Q[A+4>>1])A=a;else if(A=-1,r=(0|a)>0,a=a-1|0,r)continue;break}if(f>>>0>3)break e}for(;;){if((0|(A=A-1|0))<0)break e;if(64&u[0|(r=190288+(A<<3)|0)]){d[r+3|0]=4;break e}if(!(u[r+3|0]<4))break}}if(A=e[q+292>>2],a=0,(0|o)<=0)f=0;else for(_=-1,f=0;;){r=A,e[q+292>>2]!=(0|A)&&(v[(A=190288+(a<<3)|0)>>1]=32|Q[A>>1]),(0|f)>0&&(re=e[(w=190288+(a<<3)|0)+4>>2],e[(l=(A=a-f<<3)+190288|0)>>2]=e[w>>2],e[l+4>>2]=re,(0|_)!=-1&&(v[4+(A+190288|0)>>1]=_),_=-1);e:{if(u[2+((l=a<<3)+190288|0)|0]==21){if(A=u[(w=l+190288|0)+7|0],2&u[0|w])break e;A:if((0|A)!=(0|r)){if(w=u[10+(l+190288|0)|0]-9|0){if((0|w)==12)break A;break e}if(u[18+(l+190288|0)|0]!=21)break e}(0|_)==-1&&(_=(A=Q[4+(l+190288|0)>>1])||-1),f=f+1|0}A=r}if((0|o)==(0|(a=a+1|0)))break}if(e[49572]=o-f,na(A),(r=e[q+36>>2])&&!((0|(A=(f=e[49572])-1|0))<0))for(J=256&r,W=4&r,Ye=8&r,re=15&r,iA=16&r,it=2&r,r=r>>>8&1,a=0;;){if(l=f,o=a,f=A,(0|(A=u[(w=(bA=A<<3)+190288|0)+2|0]))==21){e:{A:{if((0|(a=l-2|0))>=0)for(;;){if(u[2+((A=a<<3)+190288|0)|0]==21)break A;if(A=(0|a)>0,a=a-1|0,!A)break}A=e[q+292>>2];break e}A=u[7+(A+190288|0)|0]}na(A),A=u[w+2|0]}if(a=o,(A=e[144464+((255&A)<<2)>>2])&&(a=r,!(32&u[0|w]))){a=u[A+11|0],_=0,it&&((0|(l=u[0|A]))!=118&(0|l)!=82||(o=iA?0:o,_=1));e:{A:{r:{s:switch((l=253&a)-4|0){case 1:break r;case 0:break s;default:break A}if(re&&(a=1,!o)||(0|(a=o))!=2||(a=2,!(A=u[A+13|0])))break e;d[w+2|0]=A;break e}if(re&&(a=2,!o)||(0|(a=o))!=1||(a=1,!(A=u[A+13|0])))break e;d[w+2|0]=A;break e}a=0,Ye&&(a=l?o:0)}a=A=_?0:a,Q[4+(bA+190288|0)>>1]&&(a=A=W?0:A,J&&(a=A||1))}if(!((0|(A=f-1|0))>=0))break}if(na(e[q+292>>2]),e[49572]<=0)iA=-2,a=0;else{for(a=-1,o=0,w=0,Ye=0;;){A=w<<3,(0|a)!=-1&&(v[4+(A+190288|0)>>1]=a),u[(_=A+190288|0)+2|0]==21&&na(u[7+(A+190288|0)|0]),re=e[49572];e:{if(!(32&u[0|(l=A+190288|0)])){o=(0|(r=re-1|0))>(0|w)?e[144464+(u[10+(A+190288|0)|0]<<2)>>2]:o,!(Q[l+12>>1]|(0|r)==(0|w))&&(ue=0,u[o+11|0]|!o)||(ue=1),f=u[_+2|0];A:if(!((0|(iA=e[49848]))<=0))for(r=A+190288|0,a=0;;){if(J=R(a,3),u[J+199408|0]==(255&f)&&!((W=u[2+(J+199408|0)|0])&(1^ue)|(4&u[r+3|0]?2&W:0)|(Q[r+4>>1]?0:4&W))){if(f=u[1+(J+199408|0)|0],d[_+2|0]=f,!(2&u[e[144464+(f<<2)>>2]+4|0])|u[r+3|0]<2)break A;d[r+3|0]=0;break A}if((0|iA)==(0|(a=a+1|0)))break}if(!(255&f)){a=Q[4+(A+190288|0)>>1];break e}}a=e[l+4>>2],A=(E+32|0)+(Ye<<5)|0,r=e[l>>2],e[A>>2]=r,e[A+4>>2]=a,r=e[144464+(r>>>14&1020)>>2],e[A+8>>2]=r,d[A+17|0]=u[r+11|0],Ye=Ye+1|0,a=-1}if(!((0|Ye)<1e3&(0|re)>(0|(w=w+1|0))))break}if(f=0,a=0,!((0|(iA=Ye-2|0))<=0))for(;;){e:if(Q[4+((E+32|0)+(f<<5)|0)>>1]){for(r=(0|f)>(0|iA)?f:iA,a=0,A=f;;){if((0|A)!=(0|r)){if(a=(0|a)>(0|(l=u[3+((o=E+32|0)+(A<<5)|0)|0]))?a:l,!Q[4+(o+((A=A+1|0)<<5)|0)>>1])continue}else A=r;break}if((0|A)<=(0|f))break e;if(r=~f+A|0,o=0,l=A-f&7)for(;d[6+((E+32|0)+(f<<5)|0)|0]=a,f=f+1|0,(0|l)!=(0|(o=o+1|0)););if(r>>>0<7)break e;for(;d[(r=(E+32|0)+(f<<5)|0)+6|0]=a,d[r+38|0]=a,d[r+70|0]=a,d[r+102|0]=a,d[r+134|0]=a,d[r+166|0]=a,d[r+198|0]=a,d[r+230|0]=a,(0|(f=f+8|0))!=(0|A););}else A=f+1|0;if(f=A,!((0|iA)>(0|A)))break}}for(e[E+40>>2]=e[36125],na(e[q+292>>2]),ne=(0|a)<4,w=1,J=1,re=0,r=0,a=0,it=0;;){e:{A:{r:{s:{if(r){if(o=(A=E+32|0)+((_=a-1|0)<<5)|0,re=u[2+(A+(a<<5)|0)|0],(0|_)>0){if(A=w-(a=(0|w)>0)|0,_>>>0>=(f=a?w:2)>>>0)for(;l=(a=(E+32|0)+(f<<5)|0)-32|0,w=e[a+12>>2],e[l+8>>2]=e[a+8>>2],e[l+12>>2]=w,w=e[a+4>>2],e[l>>2]=e[a>>2],e[l+4>>2]=w,w=e[a+28>>2],e[l+24>>2]=e[a+24>>2],e[l+28>>2]=w,w=e[a+20>>2],e[l+16>>2]=e[a+16>>2],e[l+20>>2]=w,(0|_)>=(0|(f=f+1|0)););w=A}ue=e[144464+(re<<2)>>2],e[o>>2]=0,e[o+4>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,d[o+2|0]=r,A=e[144464+(r<<2)>>2],e[o+8>>2]=A,re=o}else{if((0|a)>=(0|iA)|(0|it)>=997)break s;l=u[(o=(f=a<<5)+(E+32|0)|0)+2|0],A=e[144464+(l<<2)>>2],e[o+8>>2]=A,_=Q[o+4>>1],(0|l)==21&&na(u[7+(f+(E+32|0)|0)|0]),w=_?a:w,ue=e[144464+(u[o+34|0]<<2)>>2],e[o+40>>2]=ue,_=a}if(!A){r=0,a=_+1|0;continue}if(XA(q,256,o,E+32040|0,E),(0|(a=e[E+32052>>2]))>0&&(f=(E+32|0)+(_<<5)|0,ue=e[144464+(a<<2)>>2],e[f+40>>2]=ue,d[f+34|0]=a,d[f+49|0]=u[ue+11|0]),a=0,r)r=A;else if((0|(f=e[E+32056>>2]))<=0)r=A;else{r=e[144464+(f<<2)>>2],e[o+8>>2]=r,a=u[o+2|0],d[o+2|0]=f,f=Q[o>>1];i:if(u[r+11|0]!=2)v[o>>1]=65531&f;else{if(v[o>>1]=4|f,u[A+11|0]==2)break i;d[o+3|0]=0}XA(q,256,o,E+32040|0,E)}if((0|(l=e[E+32048>>2]))<=0)f=r;else{if(f=e[144464+(l<<2)>>2],d[o+2|0]=l,e[o+8>>2]=f,A=u[f+11|0],Ye=1,(0|l)==1){bA=(0|A)==2;break A}l=Q[o>>1];i:if((0|A)!=2)v[o>>1]=65531&l;else{if(v[o>>1]=4|l,u[r+11|0]==2)break i;d[o+3|0]=0}XA(q,256,o,E+32040|0,E)}if(bA=0,(0|(A=u[f+11|0]))!=2){Ye=0;break A}if(bA=1,Ye=0,A=2,u[o+3|0]>1){jA=0;break A}l=o+3|0,jA=jA+1|0,r=o;i:{if(8&(W=e[q+12>>2])){for(;;){o:switch(W=r,r=r+32|0,u[W+49|0]){case 0:break A;case 2:break o;default:continue}break}if(u[0|(r=W+35|0)]>1)break A;if(u[o+6|0]<=3&&(d[0|l]=0),u[W+38|0]<4)break i;break A}if(1&jA|(0|jA)<2)break A;if(2&W)break r;if(ne)r=l;else if(r=l,Q[o+36>>1])break r}d[0|r]=0;break A}e[36423]=it+2,v[(A=145840+(it<<5)|0)>>1]=0,d[A+2|0]=9,d[A+20|0]=2,e[A+12>>2]=X,v[A+4>>1]=c,d[A+17|0]=0,d[A+18|0]=0,e[A+8>>2]=e[36125],v[A+32>>1]=0,d[A+34|0]=9,d[A+52|0]=0,e[A+44>>2]=0,v[A+36>>1]=0,d[A+49|0]=0,d[A+50|0]=0,e[A+40>>2]=e[36126],na(e[q+292>>2]),$=E+32192|0;break e}jA=1}if(!(8&(r=Q[o+32>>1]))|(0|_)<=0||(l=u[ue+11|0])>>>0>15|!(1<>1]=8^r),Ge=Q[o+36>>1]){A:if(r=e[q+4>>2]){r:switch(0|A){default:a=512&r?11:a;break;case 0:break A;case 2:break r}if(u[ue+11|0]==2){(l=12&r)&&(a=(0|l)!=12?23:11);r:if(bA){s:switch(3&r){case 2:a=10;break r;case 0:break r;default:break s}a=23}u[o+35|0]<4||(a=256&r?10:a)}}if(!((0|o)==(0|re)|(0|it)<=0)){A:{r:{s:switch(0|(r=7&e[q>>2])){case 0:break A;case 1:break s;default:break r}if(a-12>>>0>4294967293)break A}a=u[r+101916|0]}a=e[47205]>0?24:a}}if(e[o+72>>2]=e[144464+(u[o+66|0]<<2)>>2],r=e[E+32060>>2],r=a||r||a,!Ye){d[(l=(W=it<<5)+145840|0)+17|0]=A,e[l+8>>2]=f,d[l+16|0]=0,v[l>>1]=Q[o>>1],d[l+3|0]=15&u[o+3|0],d[l+6|0]=u[o+6|0],a=u[o+7|0],v[l+4>>1]=0,d[l+7|0]=a,Ye=u[f+10|0],d[l+2|0]=Ye;A:if(a=Q[o+4>>1]){if(v[l+4>>1]=a,B=1&B?5:1,d[(o=W+145840|0)+20|0]=B,a=J,J=0,!a){B=0;break A}d[o+20|0]=8|B,B=0}else d[20+(W+145840|0)|0]=0;e[(a=W+145840|0)+12>>2]=e[E+32084>>2]<<1,!Ge|(0|Ye)!=24||(0|(o=e[47205]))<=0||(e[l+8>>2]=e[36126],e[a+12>>2]=R(o,14)),(1<>>0<=8:0)|2&u[f+7|0]&&(e[a+12>>2]=128,d[l+16|0]=0),d[(A=W+145840|0)+21|0]=255,d[A+22|0]=255,v[A+18>>1]=5120,it=it+1|0}a=_+1|0;continue}break}v[88922]=1,e[44462]=0,Aa&&(v[145776+(e[36423]<<5)>>1]=2,A=198304+(e[47350]<<2)|0,e[A>>2]=128,e[(A=A-4|0)>>2]=128|e[A>>2]),d[190268]=WA>>>19&1,Hs&&(e[Hs>>2]=WA<<14>>31&189360)}$=m+6832|0,iA=e[47192],bA=e[t+12>>2],r=0,l=0,w=0,W=0,re=0,Gt=0,X=0,$=c=$-6e3|0;e:if(!((0|(o=(it=e[36423])-1|0))<=0)){for(;d[2+(c+R(r,6)|0)|0]=0,4&u[(A=r<<5)+145840|0]?(a=c+R(W,6)|0,d[a+1|0]=0,A=A+145840|0,d[a+3|0]=u[A+49|0],A=u[A+3|0],d[0|a]=A,W=W+1|0,Gt=(A>>>0>3)+Gt|0):u[e[8+(A+145840|0)>>2]+10|0]!=27|(0|W)<=0||(A=(c+R(W,6)|0)-4|0,d[0|A]=4|u[0|A]),(0|o)!=(0|(r=r+1|0)););if(d[c+R(W,6)|0]=0,W)if(e[iA+148>>2]==1){if(!((0|it)<=0)){for(A=-2&it,a=1&it,r=145840;w=u[r+17|0]==2&&u[r+3|0]>3?l:w,w=u[r+49|0]==2&&u[r+35|0]>3?1|l:w,r=r- -64|0,l=l+2|0,(0|A)!=(0|(re=re+2|0)););!a|u[r+17|0]!=2||(w=u[r+3|0]>3?l:w)}if(d[(f=(A=w<<5)+145840|0)+3|0]=7,e[iA+212>>2]==30313&&(u[(A=A+145840|0)+7|0]||(d[A+7|0]=pa(55),it=e[36423])),!((0|it)<=0)){for(re=0,r=145840,A=145840,l=_=e[36125],o=0,J=1;;){if(u[r+17|0]?B=e[36125]:(B=e[36125],_=(a=u[e[r+8>>2]+14|0]>50)?B:_,J|=a),a=u[r+20|0]?B:l,4&u[0|r]){B=u[r+7|0],l=e[144464+(B<<2)>>2];A:{if((0|(W=e[iA+212>>2]))==6840683){if(e[a>>2]!=49||(W=e[l>>2]-49|0)>>>0>5|!(1<>2]}if(!((0|W)!=6516078&(0|W)!=31336)){W=0,B||(o=pa(1&(W=o|J)?13621:12593),d[r+7|0]=o,l=e[144464+(o<<2)>>2]),(0|w)!=(0|re)|(1024|e[l>>2])!=13621||(d[f+3|0]=6),e[_>>2]==3420466&&(d[A+7|0]=pa(e[l>>2]==3420466?13619:12594));r:{if(e[a>>2]==12597){if((0|(B=e[l>>2]))!=12597)break r;d[A+7|0]=pa(13109)}B=e[l>>2]}o=W,(0|B)==12593&&((0|(B=e[_>>2]))==13621&&(d[r+7|0]=pa(12850),B=e[_>>2]),(0|B)==13619&&(d[r+7|0]=pa(13107),B=e[_>>2]),(0|B)==3420466&&(d[r+7|0]=pa(13364)),d[r+3|0]=0)}}J=0,_=l,A=r}else l=a;if(r=r+32|0,!((0|(re=re+1|0))<(0|(a=e[36423]))))break}if(l=0,r=145840,!((0|a)<=0))for(;4&u[0|r]&&((A=u[r+7|0])||(d[r+7|0]=17,A=17),A=e[144464+(A<<2)>>2],d[r+21|0]=u[A+12|0],d[r+22|0]=u[A+13|0]),r=r+32|0,(0|a)!=(0|(l=l+1|0)););}}else{if(A=e[iA+152>>2],A=iA+R(ne=(0|A)>7?1:A,6)|0,q=u[0|(ne?A+637:iA+157)],WA=u[0|(ne?636+(A+bA|0):156+(iA+bA|0))],d[133068]=(0|bA)==4,!((0|W)<=0)){for(Ye=W-1|0,ue=bA-1>>>0>1,a=0,o=0;;){m=c+R(o,6)|0,X=((A=u[0|m])<<24>>24>3)+X|0;A:if((0|A)==6){A=o-3|0,r=o;r:{for(;;){if((0|r)<=(0|a)|(0|A)>=(0|r))break r;s:switch(f=c+R(r=r-1|0,6)|0,u[0|f]-4|0){case 2:break r;case 0:break s;default:continue}break}d[0|f]=3}r=o;r:{for(;;){if((0|W)<=(0|(r=r+1|0)))break r;s:switch(u[c+R(r,6)|0]-4|0){case 0:break r;case 2:break s;default:continue}break}d[m+2|0]=2,d[0|m]=5,A=a;break A}if(u[0|m]==6){d[m+2|0]=2,E=0;r:if((0|W)<=(0|(A=o+1|0)))f=o,tr=0;else if(tr=1,(0|(l=d[c+R(A,6)|0]))>4)f=o;else{for(w=(Gt-X|0)>1,f=o;;){if(r=A,(255&l)==4&&(A=w+1|0,w=1,!((0|A)<=1))){A=r;break r}if(tr=(0|W)>(0|(A=r+1|0)),(0|A)==(0|W))break;if(f=r,(0|(l=d[c+R(A,6)|0]))>4)break r}f=Ye,A=W}l=-1,B=0,w=0,J=-1,re=0,_=-1;r:{if((0|(r=a))<(0|A)){for(;l=(Ge=(0|(_=d[c+R(r,6)|0]))>3)&&(0|l)<0?r-a|0:l,E=(re=(0|w)>(0|_))?E:(0|w)<(0|_)?r:B,J=Ge?r:J,B=re?B:r,Ge=(0|r)!=(0|f),w=re?w:_,r=r+1|0,Ge;);if(re=B,_=J,(0|l)>=0)break r}l=A,B=re,J=_}e[33269]=f-B,e[33268]=l,e[33270]=B,e[33271]=E;r:if(u[133068])e[33270]=A,e[33271]=A;else if((0|J)>=0){if((0|A)!=(0|W))break r;d[c+R(J,6)|0]=7}else d[c+R(B,6)|0]=7;Re(c,ne,a,A,WA),!tr&!!(0|bA)||(WA=ue?u[iA+156|0]:u[iA+157|0])}else A=a}else A=a;if((0|A)>=(0|o))a=A;else if(4&u[m+2|0]){for(a=o+1|0,l=-1,J=0,B=0,w=0,r=A,E=-1;l=(re=(0|(f=d[c+R(r,6)|0]))>3)&&(0|l)<0?r-A|0:l,J=(_=(0|f)<(0|w))?J:(0|f)>(0|w)?r:B,E=re?r:E,B=_?B:r,re=(0|r)!=(0|o),w=_?w:f,r=r+1|0,re;);e[33269]=o-B,e[33270]=B,e[33271]=J,e[33268]=(0|l)<0?a:l,u[133068]?(e[33270]=a,e[33271]=a):(0|E)>=0?d[c+R(E,6)|0]=7:d[c+R(B,6)|0]=7,Re(c,ne,A,a,q)}else a=A;if((0|W)==(0|(o=o+1|0)))break}if(!((0|a)>=(0|W))){for(l=-1,J=0,B=0,w=0,r=a,E=-1;l=(f=(0|(A=d[c+R(r,6)|0]))>3)&&(0|l)<0?r-a|0:l,J=(o=(0|A)<(0|w))?J:(0|A)>(0|w)?r:B,E=f?r:E,B=o?B:r,w=o?w:A,(0|W)!=(0|(r=r+1|0)););e[33270]=B,e[33271]=J,e[33269]=~B+W,e[33268]=(0|l)<0?W:l,u[133068]?(e[33270]=W,e[33271]=W):(0|E)>=0?d[c+R(E,6)|0]=7:d[c+R(B,6)|0]=7,Re(c,ne,a,W,WA)}}if((0|it)<=0)break e;for(r=0,re=0;;){if(_=a=(f=r<<5)+145840|0,A=c+R(re,6)|0,l=u[0|A],d[a+3|0]=l,4&u[0|a]){o=f+145840|0,a=u[A+4|0],d[o+21|0]=a,w=u[A+5|0],d[o+16|0]=0,d[o+22|0]=w;A:{if(1&(B=u[A+2|0]))A=2;else{if(l>>>0<6)break A;A=u[A+1|0]}d[o+16|0]=A}a>>>0<=(255&w)>>>0?(A=w,w=a):(d[o+21|0]=w,d[o+22|0]=a,A=a),(a=u[7+(f+145840|0)|0])&&(A=(255&A)+(255&w)>>>1|0,a=e[144464+(a<<2)>>2],d[o+22|0]=A+u[a+13|0],d[o+21|0]=A+u[a+12|0]),2&B&&(d[_+3|0]=8|l),re=re+1|0}if((0|it)==(0|(r=r+1|0)))break}}}if($=c+6e3|0,re=e[47192],r=0,ue=0,E=0,X=0,$=c=$-160|0,e[36423]>=2)for(bA=e[30450],l=1;;){if(l=(A=l)+1|0,W=u[(o=(w=A<<5)+145840|0)+3|0],2&(B=Q[o>>1])){for(;(31&(f=e[198304+(X<<2)>>2]))==2&&(qA(127&f,f>>>8|0),e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,B=e[50786],_=e[32972],(0|(a=e[_+84>>2]))>0&&(B=(0|R(a,B))/100|0),J=u[((0|(a=(0|B)>=359?359:B))<=80?80:a)+101856|0],a=(0|(a=(0|B)>=450?450:B))>399?6:(0|a)>379?7:J,e[32526]=(0|R(a,e[_+72>>2]))/256,e[32527]=(0|R(a,e[_+76>>2]))/256,e[32528]=(0|R(a,e[_+80>>2]))/256,a>>>0>7||(_=a-1|0,e[32528]=_,e[32526]=a,e[32527]=_)),X=X+1|0,!(128&f););B=Q[o>>1]}_=l<<5,J=A-1|0,a=7&W;e:{A:{r:{s:{i:{o:{c:{u:{l:{n:switch(WA=u[17+(w+145840|0)|0],0|(f=4&B?2:WA)){case 2:break i;case 3:case 8:break o;case 5:break c;case 6:case 7:break u;case 4:break l;case 0:break n;default:break e}r=0;break e}if((0|(A=u[17+(145840+(J<<5)|0)|0]))!=6?(a=(0|A)==4?60:e[34063]>0||a>>>0<4?48:60,d[18+(w+145840|0)|0]=a):(a=25,d[18+(w+145840|0)|0]=25),!(16&u[0|re])|!u[20+(w+145840|0)|0]||(d[18+(w+145840|0)|0]=60,a=60),64&u[e[8+(w+145840|0)>>2]+6|0]&&(a=a+30|0,d[18+(w+145840|0)|0]=a),r=0,!(8&B))break e;d[18+(w+145840|0)|0]=u[re+164|0]+a;break e}!(o=u[(A=w+145840|0)+20|0])|1&d[e[A+8>>2]+7|0]&u[17+(145840+(J<<5)|0)|0]==2||(d[18+(w+145840|0)|0]=15),a=u[17+(_+145840|0)|0],8&u[e[8+(w+145840|0)>>2]+4|0]|a|u[17+(145840+(J<<5)|0)|0]!=8||(d[18+(w+145840|0)|0]=25),64&u[e[8+((A=J<<5)+145840|0)>>2]+5|0]&&(d[18+(w+145840|0)|0]=30),!o|!(16&e[re>>2])||(d[18+(w+145840|0)|0]=30);u:if(u[20+(_+145840|0)|0]|!(32&u[e[8+(w+145840|0)>>2]+4|0])|(0|a)!=4)e[12+(w+145840|0)>>2]=256;else{if(o=w+145840|0,u[17+(A+145840|0)|0]==2){e[o+12>>2]=200;break u}e[o+12>>2]=150}if((0|f)!=7||(ue|=(0|a)==2,(254&u[17+(A+145840|0)|0])!=2))break e;e[12+(w+145840|0)>>2]=e[12+(A+145840|0)>>2]+255>>>1;break e}(254&(a=u[17+((A=J<<5)+145840|0)|0]))==6|(0|a)==3|32&e[e[8+(A+145840|0)>>2]+4>>2]&&(d[18+(w+145840|0)|0]=30);c:if((254&(o=u[17+(_+145840|0)|0]))==2){ue=u[20+(_+145840|0)|0]&&(0|o)!=2?ue:1,d[(o=w+145840|0)+18|0]=40,W=0;u:{l:switch(0|a){case 0:if((A=e[12+(A+145840|0)>>2])>>>0>39)break u;W=40-A|0;break u;case 2:break u;default:break l}if(u[20+(w+145840|0)|0])break c;W=20;l:switch(a-3|0){case 1:if(W=0,!(8&u[e[8+(A+145840|0)>>2]+4|0]))break u;break c;case 0:break u;case 5:break l;default:break c}W=12}d[o+18|0]=W}if(!(16&u[0|re])|!u[20+(w+145840|0)|0]||u[(A=w+145840|0)+18|0]>19)break e;d[A+18|0]=20;break e}o=u[re+296|0],f=a=w+145840|0,e[a+12>>2]=256,d[a+19|0]=o;o:if(u[a+20|0]){B=25;c:switch(u[17+(145840+(J<<5)|0)|0]-2|0){case 0:if(B=12,1&d[e[8+(w+145840|0)>>2]+7|0])break o;break;case 1:break c;default:break o}d[18+(w+145840|0)|0]=B}if((0|(_=u[17+(_+145840|0)|0]))==2){E=1;break e}if(d[(o=w+145840|0)+22|0]=r,(254&u[17+((a=J<<5)+145840|0)|0])==2)break s;if(a=r,(0|(f=e[36423]))<=(0|A))break A;for(;;){if(u[17+((a=A<<5)+145840|0)|0]==2){a=u[22+(a+145840|0)|0],d[o+22|0]=a;break A}if((0|f)==(0|(A=A+1|0)))break}break r}if(iA=w+145840|0,Ye=a^a>>>0<2,a=(it=8&W)?25:u[296+(Ye+re|0)|0]-E|0,d[iA+19|0]=a,(e[36423]-3|0)>(0|A)||(0|(f=255&a))<=(0|(a=e[re+52>>2]))||(d[iA+19|0]=a),a=0,W=0,!(B=u[o+52|0]))for(;f=e[o+40>>2],W=u[o+49|0]==2?(~e[f+4>>2]>>>20&1)+W|0:W,a=u[f+10|0]==27?2:a,f=o,o=o+32|0,!(B=u[f+84|0]););f=iA+96|0,A=(ne=A+2<<5)+145840|0,e[34063]=W,m=u[e[o+40>>2]+10|0],_=_+145840|0,u[17+(ne+145840|0)|0]|u[e[_+8>>2]+10|0]!=23?(o=f,f=A,A=_):o=w+145968|0,_=u[e[f+8>>2]+15|0];i:if(W)_=u[e[re+96>>2]+(u[e[A+8>>2]+15|0]+R(_,10)|0)|0],u[A+17|0]!=8|(254&u[f+17|0])!=4||(_=8&u[e[o+8>>2]+4|0]?_-15|0:_);else{if(q=e[re+100>>2],ne=u[e[A+8>>2]+15|0],o=u[A+20|0],_=u[q+(ne+R(o|u[f+20|0]?(0|_)==1:_,10)|0)|0],!o|!(32&u[0|re]))break i;_=u[1+(q+R(ne,10)|0)|0]+_>>>1|0}o=B>>>1|0,ne=!W,B=(0|(_=(0|R(e[130104+(W?(0|W)==1?4:8:0)>>2],_))/128|0))<=8?8:_;i:if((0|Ye)!=7)it&&(B=e[re+200>>2]+B|0);else{if(B=(_=e[re+200>>2])+B|0,!it)break i;B=((0|_)/2|0)+B|0}_=o&ne|(0|m)==27,(o=Q[304+(re+(Ye<<1)|0)>>1])||(o=Q[re+316>>1]),B=R(o<<16>>16,B),(W=u[(o=w+145840|0)+7|0])&&(Ye=u[e[144464+(W<<2)>>2]+14|0])&&(B=(0|R(B,Ye))/100|0),(_|(0|a)==2)==1&&(2097152&(a=e[re+12>>2])||(B=(0|R(262144&a?282:256+((280-(u[e[8+(w+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,B))/256|0)),Ye=w+145840|0,a=R(e[32526],e[re+196>>2]),it=(0|WA)!=2?256:(0|((0|a)>(0|B)?B:a))/128|0,e[Ye+12>>2]=it,(a=u[Ye+16|0])>>>0>=19&&(qi(84371,28,bA),d[Ye+16|0]=0,W=u[o+7|0],a=0),B=a+1|0,(a=255&W)?(qs(a,c+8|0),a=jn(e[c+132>>2])):a=e[129280+((255&B)<<2)>>2],_=w+145840|0,1&(E|ue)&&(o=(w=J<<5)+145840|0,E=u[0|a],a=u[_+21|0],a=((0|R(E,u[_+22|0]-a|0))/256|0)+a|0,d[o+22|0]=a,r=(a-(r=(0|a)==255?255:r)|0)>16?a-16|0:r,d[o+21|0]=r,o=0,(0|r)<(0|a)&&(d[Ye+16|0]=B,o=2),e[(r=w+145840|0)+12>>2]=it,d[r+16|0]=o,a=u[iA+19|0],d[r+19|0]=u[r+17|0]!=3&&a>>>0>18?18:a),r=(0|WA)!=2,o=-2&(a=Q[A>>1]),v[A>>1]=o;i:{o:{c:switch(u[A+17|0]-3|0){case 5:if(u[f+17|0]==2)break i;o=1|a;break o;case 0:break c;default:break i}if(v[A>>1]=1|a,u[f+17|0]!=2&&e[e[A+8>>2]>>2]!=12146)break i}v[A>>1]=o}r?(0|(A=r<<4))<=((a=u[_+22|0])-(o=u[_+21|0])|0)||(o=(0|(A=a-A|0))>0?A:0,d[_+21|0]=o):(a=u[_+22|0],o=u[_+21|0]),A=255&o,r=((0|R(u[e[129280+(u[Ye+16|0]<<2)>>2]+127|0],a-A|0))/256|0)+A|0,E=0,ue=0;break e}o=e[12+(a+145840|0)>>2],e[f+12>>2]=o,(0|WA)==3&&(o=e[32526],e[f+12>>2]=o),a=r;s:switch(_-5|0){case 0:e[f+12>>2]=(R(o,160)>>>0)/100;break r;case 2:break s;default:break A}e[f+12>>2]=(R(o,120)>>>0)/100}a=r}ue=0,d[(A=w+145840|0)+16|0]=0,o=A,a=(A=255&a)-16|0,d[o+21|0]=A>>>0>=a>>>0?a:0}if(!(e[36423]>(0|l)))break}if($=c+160|0,15&(o=e[47197])|e[36456]){A=0,f=0,$=a=$-80|0;e:if((r=e[33222])||(e[33223]=500,r=gt(500),e[33222]=r,r)){if(!((e[36423]-2|0)<2)){for(A=o>>8,re=128&o?0:A,W=A&o<<24>>31,_=2&o,o=a+32|1,w=1;;){if($r(a,e[(l=(J=w<<5)+145840|0)+8>>2],l,_,a+72|0),A=a+32|0,(13&(r=u[l+20|0]))==1&&(d[a+32|0]=32,A=o),!re|(0|re)!=32&!!(0|r)|w>>>0<2||(UA(a+76|0,a),e[a+76>>2]-880>>>0>4294967103||(A=kr(re,A)+A|0)),4&u[0|l]&&((r=u[3+(J+145840|0)|0])>>>0<2||(r=r>>>0>=5?5:r,r=_?r>>>0>3?712:716:d[r+94144|0],e[a+76>>2]=r,A=kr(r,A)+A|0)),B=0,e[a+72>>2]=0,u[0|(r=a)])for(;r=UA(a+76|0,r)+r|0,e[a+72>>2]>>>B-1&1|!W|(0|B)<=0||(E=e[a+76>>2])-880>>>0>4294967103||_i(E)&&(A=kr(W,A)+A|0),B=B+1|0,A=kr(e[a+76>>2],A)+A|0,u[0|r];);if(u[e[l+8>>2]+10|0]!=21&&(8&(r=Q[l>>1])&&(A=$r(A,e[36128],l,_,0),r=Q[l>>1]),!(4&r)|u[17+(J+145840|0)|0]==2||(A=$r(A,e[36136],l,_,0)),(r=u[7+(J+145840|0)|0])&&(A=$r(A,e[144464+(r<<2)>>2],l,_,0))),(A=(l=A-(a+32|0)|0)+f|0)>>>0>2]=r,Ar(e[47195],84367,t)),(A=e[36456])&&rt[0|A](r)}u[190280]?(e[36423]=0,A=1):($A(0),(A=e[t+8>>2])?($=r=$+-64|0,Wt(r,A,60),Wi(r,1),a=0,(A=It(r,0))&&(a=A,u[202976]&&(a=It(202976,2))),$=r- -64|0,e[44468]=a):a=e[44468],A=1,a&&(r=e[32972],(a=gt(1344))&&(r=ct(a,r,1344),a=216192+(e[50758]<<4)|0,e[a>>2]=11,e[a+8>>2]=r,r=e[50758]+1|0,e[50758]=(0|r)<=169?r:0),e[44468]=0))}else A=0,d[190280]=0;else A=0,e[36423]=0,e[50758]=0,e[50757]=0;return $=t+16|0,A}function pA(A,t){var r=0,a=0,o=0,l=0;r=1073741825;e:{A:{r:{s:{i:{o:{c:{u:{l:{n:{p:{C:{m:{b:{h:{y:{I:{x:{N:{L:{U:{B:{M:{Q:{S:{Ae:{j:{q:{_:{oe:{R:{Se:{K:{f:{g:{re:{k:{ae:{w:{a:{tA:{te:{t:{pe:{W:{he:{be:{rA:{de:{z:{Fe:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{je:{Re:{We:{ke:{aA:{se:{Ve:{Ye:{Ee:{He:{P:{Me:{V:{hA:{mA:{CA:{bA:{IA:{wA:{kA:{EA:{MA:{vA:{yA:{xA:{BA:{DA:{TA:{GA:{PA:{QA:{SA:{FA:{OA:{_A:{zA:{NA:{LA:{jA:{RA:{WA:{VA:{YA:switch(0|t){case 0:t=A-9>>>0<5?1073741825:0,t=(A=(0|A)==133)?1073741825:t;break S;case 1:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{if((0|(t=-256&A))<=2047){if(!t)break ge;if((0|t)==1536)break fe;if((0|t)!=1792||(r=0,a=1,(0|A)!=1807))break d;break t}if((0|t)<=69631){if((0|t)==2048)break le;if((0|t)!=8192)break d;switch(r=131076,A-8204|0){case 1:break ie;case 0:break t;default:break ee}}if((0|t)==69632)break Z;if((0|t)!=917504)break d;switch(r=8388608,A-917505|0){case 62:break G;case 58:break O;case 57:break D;case 45:break T;case 43:break X;case 32:break Y;case 0:break t;default:break F}}if(r=16,(0|A)!=173)break d;break t}if(r=0,a=1,A-1536>>>0<6)break t;a=(0|A)==1757,t=(A=(0|A)==1564)?2:0;break Q}if(r=0,a=1,(0|A)!=2274)break d;break t}return xe=64,4}if(r=1073741826,(-2&A)==8206)break t;if(A-8234>>>0<5)return xe=0,2;if(r=128,A-8289>>>0<4||(r=2,A-8294>>>0<4))break t;if(r=8388608,A-8298>>>0>=6)break d;break t}t=!(A-69821&-17),A=0;break M}xe=536870976;break B}xe=268435520;break B}xe=-2147483584;break B}xe=134217792;break B}xe=67108928;break B}xe=1073741888;break B}if(r=131072,a=64,A-917536>>>0<96)break t}break a;case 2:d:{F:{G:{O:{D:{T:{X:{if((0|(t=-256&A))<=130303){if((0|t)<=127743){if((0|t)<=64767){if((0|t)<=11007){if((0|t)==8192)break X;if((0|t)!=9216)break d;if(A-9255>>>0>=25)break T;break w}if((0|t)==11008)break D;if((0|t)!=11776||(r=-2147483648,A-11845>>>0>=59))break d;break t}if((0|t)<=126975){if((0|t)==64768)break O;if((0|t)!=65280||(r=4194304,A-65520>>>0>=9))break d;break t}if((0|t)==126976|(0|t)==127232|(0|t)==127488)break te;break d}if((0|t)<=129023){if((0|t)<=128255){if((0|t)==127744|(0|t)==128e3)break te;break d}if((0|t)==128256|(0|t)==128512|(0|t)==128768)break te;break d}if((0|t)<=129535){if((0|t)==129024|(0|t)==129280)break te;break d}if((0|t)==129536|(0|t)==129792|(0|t)==130048)break te;break d}if((0|t)<=919039){if((0|t)<=917759){if((0|t)<=130815){if((0|t)==130304)break te;if((0|t)!=130560)break d;break te}if((0|t)==130816)break te;if((0|t)!=917504)break d;if((-128&A)!=917632)break G;break ae}if((0|t)<=918271){if((0|t)==917760)break F;if(r=4194304,(0|t)!=918016)break d;break t}if((0|t)==918272|(0|t)==918528)break ae;if(r=4194304,(0|t)!=918784)break d;break t}if((0|t)<=920319){if((0|t)<=919551){if((0|t)==919040)break ae;if(r=4194304,(0|t)!=919296)break d;break t}if((0|t)==919552|(0|t)==919808)break ae;if(r=4194304,(0|t)!=920064)break d;break t}if((0|t)<=920831){if((0|t)==920320)break ae;if(r=4194304,(0|t)!=920576)break d;break t}if((0|t)==920832|(0|t)==921088)break ae;if(r=4194304,(0|t)!=921344)break d;break t}if(r=4194304,(0|A)!=8293)break d;break t}if(r=-2147483648,A-9291>>>0>=21)break d;break t}if((-16&A)==11248|A-11219>>>0<25|(0|A)==11209|A-11194>>>0<3||(0|(t=-2&A))==11124)break w;if(r=-2147483648,(0|t)!=11158)break d;break t}if(r=65536,A-64976>>>0>=32)break d;break t}if((0|A)==917504)break ae;if(r=4194304,A-917506>>>0>=30)break d;break t}if(r=4194304,A>>>0>917999)break t}t=(A=!(65534&~A))>>>16|0,A<<=16;break M;case 6:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{if((0|(t=-256&A))<=7679){if((0|t)<=767){if(!t)break le;if((0|t)==256)break ie;if((0|t)!=512)break a;if((0|A)!=585)break ee;break U}if((0|t)==768)break Z;if((0|t)==1024)break Y;if((0|t)!=7424||(r=16777216,(0|A)!=7574))break a;break t}if((0|t)<=119807){if((0|t)==7680)break X;if((0|t)==8448)break T;if((0|t)!=65280||(r=256,A-65345>>>0>=6))break a;break t}if((0|t)<=120319){if((0|t)==119808)break D;if((0|t)!=120064)break a;if(A>>>0>=120070)break O;break k}if((0|t)==120320)break G;if((0|t)!=120576)break a;if(A>>>0>=120597)break F;break k}if(r=768,A-97>>>0<6)break t;if(r=16777216,A-105>>>0>=2)break a;break t}r=(t=(0|A)==329)>>>9|0,t=(A=(0|A)==303)?16777216:t<<23;break L}if((0|A)==616)break U;if(r=16777216,(0|A)!=669)break a;break t}r=128;Z:switch(A-976|0){case 35:break d;case 0:case 1:case 2:case 5:case 32:case 33:break t;default:break Z}if((-2&A)!=1012)break a;break t}a=(A=!(A-1110&-3))>>>8|0,A<<=24;break N}a=(t=(0|A)==7883)>>>8|0,t=(A=(0|A)==7725)?16777216:t<<24;break Q}if(A-8458>>>0<10)break k;if((t=A-8495|0)>>>0<11)break VA;break pe}if((0|(t=-2&A))==119842)break re;if(A-119808>>>0<85)break k;if(A-119894>>>0<2|A-119946>>>0<2)break re;if((0|A)==119995|A-119896>>>0<69|A-119982>>>0<12)break k;if((0|t)==119998)break re;if(A-119997>>>0<7)break k;if(r=16777344,(0|t)==120050)break t;if(r=128,A>>>0<=120004)break a;break t}if((-2&A)==120102)break re;if(A-120094>>>0<28)break k;O:{if((0|A)<=120257){if(A-120154>>>0<2)break re;if(r=16777344,A-120206>>>0>=2)break O;break t}if(A-120258>>>0<2)break re;if(r=16777344,A-120310>>>0<2)break t}if(r=128,A>>>0<=120145)break a;break t}if(A-120362>>>0<2|A-120414>>>0<2)break re;if(r=16777344,A-120466>>>0<2)break t;if(A-120540>>>0<31|A>>>0>120571|A>>>0<120486)break k;if(r=128,A-120514>>>0>=25)break a;break t}if(A-120772>>>0<8|A-120746>>>0<25|A-120714>>>0<31|A-120688>>>0<25||(0|A)!=120597&A>>>0<120629|A-120656>>>0<31)break k;if(r=128,A-120630>>>0<25)break t;break a}break U;case 7:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{E:{ce:{J:{H:{ne:{ue:{ve:{ye:{if((0|(t=-256&A))<=11263){if((0|t)<=3583){if((0|t)<=1535){if((0|t)==512)break ye;if((0|t)==768)break ve;if((0|t)!=1280||(r=4096,(0|A)!=1369))break a;break t}if((0|t)==1536)break ue;if((0|t)==1792)break ne;if((0|t)!=2304||(r=4096,(0|A)!=2417))break a;break t}if((0|t)<=7167){if((0|t)==3584)break H;if((0|t)==6144)break J;if((0|t)!=6656||(r=8192,(0|A)!=6823))break a;break t}if((0|t)==7168)break ce;if((0|t)==7424)break E;if((0|t)!=8192)break a;if(r=16793600,!(t=A-8305|0))break t;if((0|t)==14)break ge;break fe}if((0|t)<=43263){if((0|t)<=40959){if((0|t)==11264)break le;if((0|t)==11776)break ie;if((0|t)!=12288)break a;switch(r=8192,A-12293|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:break Z;case 0:case 44:case 45:case 46:case 47:case 48:break t;default:break ee}}if((0|t)==40960)break Y;if((0|t)==42496)break X;if((0|t)!=42752)break a;if(A-42775>>>0>=9)break T;break g}if((0|t)<=65279){if((0|t)==43264)break D;if((0|t)==43520)break O;if((0|t)!=43776||(r=20480,(-4&A)!=43868))break a;break t}if((0|t)==65280)break G;if((0|t)==92928)break F;if((0|t)!=93952)break a;if(r=4096,A-94099>>>0<13)break t;if(r=8192,(-2&A)!=94176)break a;break t}if(r=16797696,(0|A)==690)break t;if(A-688>>>0<9)return xe=0,20480;if(A-697>>>0<7)break g;if((0|(t=-2&A))==704)return xe=0,20480;if(r=4096,A-710>>>0<10||(r=12288,(0|t)==720)||(r=20480,A-736>>>0<5))break t;r=(A=(-3&A)==748)>>>20|0,A<<=12;break x}t=(0|A)==890?20480:0,t=(A=(0|A)==884)?4096:t;break S}if(r=8192,(0|A)==1600)break t;if(r=4096,A-1765>>>0>=2)break a;break t}if(r=4096,(-2&A)==2036)break t;if(r=8192,(0|A)!=2042)break a;break t}t=(A=!(A-3654&-129))>>>19|0,A<<=13;break M}if(r=8192,(0|A)!=6211)break a;break t}if(r=12288,(0|A)==7291)break t;if(r=4096,A-7288>>>0>=6)break a;break t}if(r=16797696,(0|A)==7522||(r=20480,A-7468>>>0<63))break t;r=16384;E:switch(A-7588|0){default:if((0|A)==7544)break t;case 1:case 2:case 3:if(A-7579>>>0>=37)break a;break t;case 0:case 4:break E}return xe=0,16793600}return xe=0,16384}if(r=16384,A-8336>>>0>=13)break a;break t}t=(r=(0|A)==11389)>>>18|0,r=(A=(0|A)==11388)?16793600:r<<14;break I}if(r=-2147479552,(0|A)!=11823)break a;break t}if(A-12445>>>0<2)break t;if((0|A)==12540)break d}if(A-12541>>>0>=2)break a;break t}if(r=8192,(0|A)!=40981)break a;break t}if((0|A)==42508)break y;if((0|A)==42623)break g;if(r=20480,(-2&A)!=42652)break a;break t}if((0|A)==42864)return xe=0,16384;if((0|A)==42888)break g;if(r=20480,(-2&A)!=43e3)break a;break t}r=(t=(0|A)==43494)>>>19|0,t=(A=(0|A)==43471)?8192:t<<13;break L}if((0|A)==43632||(0|A)==43741)break y;if(r=8192,A-43763>>>0>=2)break a;break t}if(r=12288,(0|A)==65392)break t;if(r=135168,(-2&A)!=65438)break a;break t}if(r=8192,(-2&A)==92994)break t;break a}return xe=0,12288;case 8:r=128;d:{F:{G:{O:{D:{T:{X:{Y:{Z:{if((0|(t=-256&A))<=12543){if((0|t)<=5887){if((0|t)<=3583){if(!t)break Z;if((0|t)!=1536||(t=8388608,(0|A)!=1651))break v;break de}if((0|t)==3584)break Y;if((0|t)!=4352||(r=4194304,A-4447>>>0>=2))break v;break z}if((0|t)<=8447){if((0|t)==5888)break X;if((0|t)!=6400||(t=A-6581|0)>>>0>=6)break v;r=e[(t=81432+(t<<3)|0)>>2],a=e[t+4>>2];break z}if((0|t)==8448)break T;if((0|t)!=12288||(t=2048,(0|A)!=12294))break v;break de}if((0|t)<=68863){if((0|t)<=63999){if((0|t)==12544)break D;if((0|t)!=43520)break v;if((t=A-43701|0)>>>0<8)break F;break Fe}if((0|t)==64e3)break d;if((0|t)!=65280||(t=4194304,(0|A)!=65440))break v;break de}if((0|t)<=100095){if((0|t)==68864)break O;if((0|t)!=70400||(r=8192,(0|A)!=70493))break v;break be}if((0|t)==100096)break G;if((0|t)!=126464)break v;break z}a=(t=!(A-170&-17))>>>18|0,r=t<<14;break z}if(r=33554432,A-3648>>>0<5)break z;if(t=0,l=33554432,(0|A)==3759)break de;if(A-3776>>>0>=5)break v;break z}if(r=8388608,A-6051>>>0>=2)break v;break z}if(A-8501>>>0>=4)break v;break z}if(t=4194304,(0|A)!=12644)break v;break de}if(r=4096,(-2&A)!=68898)break v;break z}if(r=2048,A-100333>>>0<5)break z;break v}if(r=33554432,!(211>>>t&1))break Fe;break z}if((t=A-64014|0)>>>0>=28)break v;r=e[(t=81480+(t<<3)|0)>>2],a=e[t+4>>2];break z;case 10:d:{F:{G:{O:{D:{T:{if((0|(t=-256&A))<=119807){if((0|t)<=8447){if(!t)break T;if((0|t)!=768)break a;switch(r=128,A-976|0){case 0:case 1:case 2:case 36:case 37:break t;default:break a}}if((0|t)==8448)break D;if((0|t)!=65280||(r=256,A-65313>>>0>=6))break a;break t}if((0|t)<=120319){if((0|t)==119808)break O;if((0|t)!=120064)break a;if(A>>>0>=120070)break G;break k}if((0|t)==120320)break F;if((0|t)!=120576)break a;if(A-120772>>>0>=8)break d;break k}if(r=768,A-65>>>0>=6)break a;break t}r=128;D:switch(A-8450|0){case 0:case 5:break t;default:break D}if(A-8458>>>0<10)break k;if((t=A-8469|0)>>>0<20)break WA;if((-4&A)==8508)break t;break Oe}if(A-119982>>>0<12|A>>>0>120004|A-119977>>>0<4|A-119973>>>0<2||(0|A)==119970|(-2&A)==119966|A-119808>>>0<85)break k;if(r=128,A-119894>>>0>=71)break a;break t}if(A-120138>>>0<7|A>>>0>120145|(0|A)==120134|A-120128>>>0<5||A-120123>>>0<4|A-120094>>>0<28|(0|A)!=120070&A>>>0<120075|A-120086>>>0<7)break k;if(r=128,A-120077>>>0>=8)break a;break t}if(A-120540>>>0<31|A>>>0<120486)break k;if(r=128,A-120488>>>0>=25)break a;break t}if(A-120714>>>0<31|A-120598>>>0<31)break k;if(r=128,A-120656>>>0<31)break t;break a;case 11:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{E:{ce:{J:{if((0|(t=-256&A))<=43263){if((0|t)<=3839){if((0|t)<=3071){if((0|t)==2304)break J;if((0|t)!=2816)break f;if((0|A)>3005)break E;if((0|A)!=2878)break ce;return xe=0,132096}if((0|t)==3072)break ge;if((0|t)!=3328)break f;switch(r=132096,A-3535|0){case 0:case 16:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break f;default:break fe}}if((0|t)<=6911){if((0|t)==3840)break le;if((0|t)!=4096)break f;if(r=1024,A-4139>>>0<2)break t;switch(A-4145|0){case 0:case 7:case 10:case 11:case 37:case 38:case 49:case 54:case 55:case 82:case 83:break t;case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 105:case 106:break d;default:break ie}}if((0|t)==6912)break ee;if((0|t)==7168)break Z;if((0|t)!=12288||(r=135168,(-2&A)!=12334))break f;break t}if((0|t)<=70399){if((0|t)<=43775){if((0|t)==43264)break Y;if((0|t)!=43520)break f;return xe=0,A-43643&-3?1024:4096}if((0|t)==43776)break X;if((0|t)==69888)break T;if((0|t)!=70144||(r=4096,(0|A)!=70197))break f;break t}if((0|t)<=70911){if((0|t)==70400)break D;if((0|t)!=70656)break f;t=(0|A)==70845?132096:1024,t=(A=(0|A)==70832)?132096:t;break S}if((0|t)==70912)break O;if((0|t)==71168)break G;if((0|t)!=119040)break f;switch(r=131072,A-119141|0){case 8:break g;case 1:break a;case 0:break t;default:break F}}t=(0|A)==2519?132096:1024,t=(A=(0|A)==2494)?132096:t;break S}if(r=132096,(0|A)!=2903)break f;break t}if((0|A)==3006)return xe=0,132096;if(r=132096,(0|A)!=3031)break f;break t}if((A=A-3266|0)>>>0>20||(r=132096,!(1<>>22|0,A<<=10;break x}r=1024;ee:switch(A-6965|0){default:if((0|A)==6916)break t;break;case 0:case 6:break t;case 1:case 2:case 3:case 4:case 5:break ee}if(A-6973>>>0<5)break t;ee:switch(A-6979|0){case 1:break g;case 0:break t;default:break ee}if((0|A)==7042|(0|A)==7073|(-2&A)==7078)break t;if((0|A)==7082)break g;if((0|A)==7143|A-7146>>>0<3)break t;r=(A=(0|A)==7150)>>>22|0,A<<=10;break x}t=(0|A)==7415?4096:1024,t=(A=(0|A)==7393)?4096:t;break S}t=(0|A)==43456?4096:1024,t=(A=(0|A)==43347)?4096:t;break S}if(r=4096,(0|A)!=44012)break f;break t}if(r=4096,(0|A)!=70080)break f;break t}r=132096;D:switch(A-70462|0){case 0:case 25:break t;case 15:break D;default:break f}break g}if(r=132096,(0|A)!=71087)break f;break t}if(r=4096,(0|A)!=71350)break f;break t}if(r=135168,A-119150>>>0<5)break t;break f}break g;case 12:t=((0|A)==8419)<<6,A=0;break M;case 13:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{E:{ce:{J:{H:{ne:{ue:{ve:{ye:{Ue:{xe:{Ke:{sA:{Xe:{iA:{Ze:{nA:{oA:{Be:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{me:{Ge:{Pe:{Qe:{AA:{dA:{Ce:{fA:{gA:{pA:{if((0|(t=-256&A))<=43775){if((0|t)<=5887){if((0|t)<=2559){if((0|t)<=1535){if((0|t)==768)break pA;if((0|t)==1024)break gA;if((0|t)!=1280)break a;if(A-1425>>>0>=17)break fA;break g}if((0|t)<=2047){if((0|t)==1536)break Ce;if((0|t)!=1792)break a;if(r=1024,(0|A)==1809)break t;if((-16&A)!=1840)break dA;return xe=0,5120}if((0|t)==2048)break AA;if((0|t)!=2304)break a;if(A>>>0>=2307)break Qe;break f}if((0|t)<=3583){if((0|t)<=3071){if((0|t)==2560)break Pe;if((0|t)!=2816)break a;switch(r=1024,A-2876|0){case 0:break g;case 3:break t;case 1:case 2:break me;default:break Ge}}if((0|t)==3072)break eA;if((0|t)!=3328)break a;if((0|(t=-2&A))!=3328)break uA;break f}if((0|t)<=4095){if((0|t)==3584)break $e;if((0|t)!=3840)break a;if((0|(t=-2&A))!=3864)break cA;break g}if((0|t)==4096)break Te;if((0|t)!=4864||(r=1024,(0|A)!=4959))break a;break t}if((0|t)<=8191){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break lA;if((0|t)!=6400)break a;if((t=A-6432|0)>>>0<=18&&(r=1024,1<>>0>=3)break a;break t}if((0|t)<=7167){if((0|t)==6656)break qe;if((0|t)!=6912)break a;if(r=1024,(-4&A)==6912)break t;if((0|A)!=6964)break Je;break g}if((0|t)==7168)break Be;if((0|t)!=7424)break a;if(r=4096,A-7620>>>0<12||(r=1024,A-7655>>>0<14))break t;if((A=A-7669|0)>>>0>=11)break a;t=e[(A=82104+(A<<3)|0)>>2];break h}if((0|t)<=42495){if((0|t)<=11519){if((0|t)==8192)break oA;if((0|t)!=11264||(r=4096,A-11503>>>0>=3))break a;break t}if((0|t)==11520)break nA;if((0|t)!=12288)break a;if(A-12330>>>0>=4)break Ze;break g}if((0|t)<=43263){if((0|t)==42496)break iA;if((0|t)!=43008)break a;if(A-43045>>>0>=2)break Xe;break f}if((0|t)==43264)break sA;if((0|t)!=43520)break a;switch(r=1024,A-43561|0){case 83:case 150:case 152:break g;case 0:case 1:case 2:case 3:case 4:case 5:case 8:case 9:case 12:case 13:case 26:case 35:case 135:case 137:case 138:case 139:case 142:case 143:case 149:break t;default:break Ke}}if((0|t)<=71423){if((0|t)<=69375){if((0|t)<=66047){if((0|t)==43776)break xe;if((0|t)==64256)break Ue;if((0|t)!=65024)break a;if(r=536870912,A-65024>>>0<15||(a=64,(0|A)==65039))break t;if(r=4096,a=0,(-16&A)!=65056)break a;break t}if((0|t)<=68095){if((0|t)==66048)break ye;if((0|t)!=66304||(r=1024,A-66422>>>0>=5))break a;break t}if((0|t)==68096)break ve;if((0|t)!=68864||(r=5120,(-4&A)!=68900))break a;break t}if((0|t)<=70399){if((0|t)<=69887){if((0|t)==69376)break ue;if((0|t)!=69632)break a;if(A-69688>>>0>=14)break ne;break f}if((0|t)==69888)break H;if((0|t)!=70144)break a;if(r=1024,A-70191>>>0<3)break t;switch(A-70196|0){case 2:break g;case 0:case 3:case 10:break t;case 1:case 4:case 5:case 6:case 7:case 8:case 9:break ce;default:break J}}if((0|t)<=70911){if((0|t)==70400)break E;if((0|t)!=70656)break a;if((-8&A)!=70712)break ge;break f}if((0|t)==70912)break fe;if((0|t)!=71168)break a;if(r=1024,A-71219>>>0<8)break t;switch(A-71229|0){case 2:break g;case 0:case 3:break t;case 1:break ie;default:break le}}if((0|t)<=92927){if((0|t)<=72703){if((0|t)==71424)break _A;if((0|t)==71680)break ee;if((0|t)!=72192)break a;if(A-72193>>>0>=10)break Z;break f}if((0|t)<=73215){if((0|t)==72704)break Y;if((0|t)!=72960)break a;if((t=A-73009|0)>>>0<19)break FA;break $}if((0|t)==73216)break X;if((0|t)!=92672||(r=4096,A-92912>>>0>=5))break a;break t}if((0|t)<=122879){if((0|t)<=113663){if((0|t)==92928)break T;if((0|t)!=93952||(r=4096,A-94095>>>0>=4))break a;break t}if((0|t)==113664)break D;if((0|t)!=119040)break a;switch(r=4096,A-119143|0){case 0:case 1:case 2:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 67:case 68:case 69:case 70:break t;default:break a}}if((0|t)<=125183){if((0|t)==122880)break O;if((0|t)!=124928||(r=4096,A-125136>>>0>=7))break a;break t}if((0|t)==125184)break G;if((0|t)!=917760||(r=536870912,A-917760>>>0>=240))break a;break t}if(A-768>>>0<69)break g;if(r=21504,(0|A)==837)break t;if(A-838>>>0<9)break g;if(r=4194304,(0|A)==847)break t;if((-8&A)==848)break g;if(r=4096,A-861>>>0>=6)break a;break t}if(r=4096,A-1155>>>0>=5)break a;break t}if(r=4096,A-1443>>>0<13||(r=5120,A-1456>>>0<14))break t;if((A=A-1471|0)>>>0>=9)break a;t=e[(A=81944+(A<<3)|0)>>2];break h}if(A-1552>>>0<11)break f;if(r=5120,A-1611>>>0<8)break t;if(A-1619>>>0<4)break f;Ce:switch(A-1623|0){case 1:break g;case 0:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 25:case 127:case 128:case 129:case 130:case 131:case 132:case 133:break f;default:break Ce}if(r=4096,A-1759>>>0<2)break t;if((t=A-1761|0)>>>0<8)break RA;break Ie}if(A-1856>>>0<11)break g;if(r=5120,A-1958>>>0<11)break t;if(r=4096,A-2027>>>0>=9)break a;break t}r=1024;AA:switch((-2&A)-2070|0){case 2:break g;case 0:break t;default:break AA}if(A-2260>>>0<12|A-2089>>>0<4|A-2075>>>0<9|A-2085>>>0<3)break f;if(A-2275>>>0<7)return xe=0,5120;if(r=4096,A-2282>>>0<6||(r=5120,A-2288>>>0<15))break t;if(r=1024,(0|A)!=2303)break a;break t}r=1024;Qe:switch(A-2362|0){case 2:break g;case 0:break t;default:break Qe}if(A-2369>>>0<8)break f;r=4096;Qe:switch(A-2381|0){case 0:case 4:case 5:case 6:case 7:case 111:break t;case 8:case 9:case 10:case 21:case 22:case 52:break f;default:break Qe}if(A-2497>>>0<4)break f;if((0|A)==2509)break t;if(r=1024,(-2&A)!=2530)break a;break t}if(A-2561>>>0<2)break f;r=4096;Pe:switch(A-2620|0){case 0:case 17:case 128:case 145:break t;case 5:case 6:case 11:case 12:case 15:case 16:case 21:case 52:case 53:case 57:case 69:case 70:case 133:case 134:case 135:case 136:case 137:case 139:case 140:case 166:case 167:case 190:case 191:case 192:break f;default:break Pe}if(A-2813>>>0>=3)break a;break t}if((0|A)==2817)break f}if(A-2881>>>0<4)break f;r=4096;me:switch(A-2893|0){case 0:break t;case 9:break f;default:break me}if((-2&A)==2914)break f;r=1024;me:switch(A-3008|0){default:if((0|A)!=2946)break a;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:break a;case 0:break t;case 13:break me}break g}r=1024;eA:switch(A-3072|0){case 77:case 188:case 205:break g;case 0:case 62:case 63:case 64:case 70:case 71:case 72:case 74:case 75:case 76:case 85:case 86:case 98:case 99:case 129:case 191:case 198:case 204:break t;default:break eA}if((-2&A)!=3298)break a;break t}if(r=4096,A-3387>>>0<2)break t;if(A-3393>>>0<4)break f;if((0|A)==3405)break t;if((0|t)==3426)break f;switch(A-3530|0){case 0:break t;case 8:case 9:case 10:case 12:break f;default:break a}}if((t=A-3633|0)>>>0<10)break jA;break we}if((r=A-3893|0)>>>0>4|!(1<>>22|0,r=(A=(0|A)==4237)?4096:r<<10;break I}r=1024;De:{Te:switch(A-5906|0){case 0:case 1:case 32:case 33:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:break De;default:break Te}switch(A-5970|0){case 0:case 1:case 32:case 33:break t;default:break De}}if(r=4194304,(-2&A)==6068)break t;if((t=A-6071|0)>>>0<16)break LA;break ze}if(r=536870912,A-6155>>>0<3||(r=67109888,A-6277>>>0<2))break t;if(r=1024,(0|A)!=6313)break a;break t}if(A-6679>>>0<2)break f;r=1024;qe:switch(A-6683|0){case 0:case 59:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 71:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 88:case 89:break t;default:break qe}if(r=4096,A-6832>>>0<14)break t;if((A=A-6773|0)>>>0>=11)break a;t=e[(A=82016+(A<<3)|0)>>2];break h}if(A-6966>>>0<5)break t;Je:switch(A-6972|0){case 0:case 6:break t;default:break Je}if(A-7019>>>0<9)break g;switch(A-7040|0){case 43:break g;case 0:case 1:case 34:case 35:case 36:case 37:case 40:case 41:case 44:case 45:case 104:case 105:case 109:case 111:case 112:case 113:break t;default:break a}}if(r=1024,A-7212>>>0<8)break t;r=12288;Be:switch(A-7222|0){case 1:break g;case 0:break t;default:break Be}if(A-7380>>>0<13)break g;r=4096;Be:switch(A-7376|0){case 0:case 1:case 2:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 29:case 36:break t;default:break Be}if((-2&A)!=7416)break a;break t}if(r=128,A-8400>>>0<13)break t;if((A=A-8417|0)>>>0>=15)break a;t=e[(A=82192+(A<<3)|0)>>2];break h}if(r=1024,(-32&A)!=11744)break a;break t}if(r=4096,A-12441>>>0>=2)break a;break t}if((0|A)==42607)break g;if(A-42612>>>0<8)break f;if((0|(A&=-2))==42620)break g;if((0|A)==42654)break d;if(r=4096,(0|A)!=42736)break a;break t}r=4096;Xe:switch(A-43204|0){case 0:break t;case 1:break f;default:break Xe}if(A-43232>>>0>=18)break a;break t}if(A-43302>>>0<5)break f;if(A-43307>>>0<3)break g;if(A-43335>>>0<11|A-43392>>>0<3)break f;if(r=4096,(0|A)==43443||(r=1024,A-43446>>>0<4))break t;a=(t=(0|A)==43493)>>>20|0,t=(A=(0|A)==43452)?1024:t<<12;break Q}if((-2&A)==43756)break t;if(r=4096,(0|A)!=43766)break a;break t}r=1024;xe:switch(A-44005|0){case 0:case 3:break t;case 8:break xe;default:break a}break g}if(r=5120,(0|A)!=64286)break a;break t}if(r=4096,(0|A)!=66272)break a;break t}if((-4&A)==68108)break f;if((t=A-68097|0)>>>0<6)break NA;break Ne}if(r=4096,A-69446>>>0>=11)break a;break t}if(A-69811>>>0<4)break f;if(r=1024,(0|A)==69633)break t;if(r=4096,A-69817>>>0>=2)break a;break t}r=1024;H:switch(A-69888|0){case 51:case 52:case 115:break g;case 0:case 1:case 2:case 39:case 40:case 41:case 42:case 43:case 45:case 46:case 47:case 48:case 49:case 50:break t;default:break H}if((-2&A)==70016|A-70070>>>0<9)break t;if(r=4096,A-70090>>>0>=3)break a;break t}if((0|A)==70367)break t}if(A-70371>>>0<6)break t;if(r=4096,A-70377>>>0>=2)break a;break t}if((-2&A)==70400)break f;r=4096;E:switch(A-70460|0){case 0:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 52:case 53:case 54:case 55:case 56:break t;case 4:break E;default:break a}break f}if((0|A)==70722)break g;if(A-70723>>>0<2)break f;if((t=A-70835|0)>>>0<=13)break F;break Le}if((t=A-71090|0)>>>0<12)break zA;break je}switch(A-71339|0){case 0:case 2:break t;default:break ie}}if(A-71344>>>0<6)break t;if(r=4096,(0|A)!=71351)break a;break t}if(r=1024,A-71727>>>0<10)break t;if(r=4096,A-71737>>>0>=2)break a;break t}if((0|A)==72244)break g;if(A-72245>>>0<10)break f;if(r=4096,(0|A)==72263)break t;if(A-72273>>>0<11)break f;if(r=1024,A-72330>>>0<13)break t;r=(t=(0|A)==72345)>>>20|0,t=(A=(0|A)==72344)?8192:t<<12;break L}if((t=A-72752|0)>>>0<16)break OA;break Re}if(r=1024,A-73459>>>0>=2)break a;break t}if(r=1024,A-92976>>>0>=7)break a;break t}if(r=1024,(0|A)!=113822)break a;break t}if(r=1024,A-122888>>>0<17)break t;if((A=A-122880|0)>>>0>=43)break a;t=e[(A=82816+(A<<3)|0)>>2];break h}if(r=12288,A-125252>>>0<3||(r=1024,(0|A)==125255)||(r=4096,A-125256>>>0<3))break t;break a}if(!(1<>>0>=10))break d;break t}if(r=256,A-65296>>>0>=10)break d;break t}if(r=128,A-120782>>>0<50)break t}break a;case 15:d:{if((0|(t=-256&A))!=12288){if((0|t)!=8448)break d;t=(A=(0|(r=-16&A))==8560)>>>18|0,a=A<<14,r=(A=(0|r)==8544)?32768:a;break I}if(A-12321>>>0<9||A-12344>>>0<3)return xe=0,2048;if(r=2048,(0|A)==12295)break t}break a;case 16:d:{F:{G:{if((0|(t=-256&A))<=9215){if((0|t)==4864)break G;if((0|t)!=6400||(r=134217728,(0|A)!=6618))break d;break t}if((0|t)==9216)break F;if((0|t)!=127232)break d;if(r=0,a=-2147483648,(0|A)==127232)break t;if(a=268435456,A-127233>>>0>=10)break d;break t}if(r=134217728,A-4969>>>0>=9)break d;break t}if(r=0,a=-2147483648,A-9352>>>0<20)break t}break a;case 17:a=(A=(0|A)==8256)>>>25|0,A<<=7;break N;case 18:d:{F:{G:{O:{if((0|(t=-256&A))<=11775){if((0|t)<=6143){if(r=-2147483624,!t)break t;if((0|t)!=1280||(r=24,(0|A)!=1418))break d;break t}if((0|t)==6144)break O;if((0|t)!=8192)break d;if(r=-2147483624,(-2&A)==8208)break t;A=A-8211>>>0<2,t=-2147483640;break b}if((0|t)<=65023){if((0|t)==11776)break G;if((0|t)!=12288)break d;t=(0|A)==12336,r=(A=(0|A)==12316)||t?-2147483640:8,xe=A?0:t?130:0;break m}if((0|t)==65024)break F;if((0|t)!=65280||(r=24,(0|A)!=65293))break d;break t}if(r=24,(0|A)!=6150)break d;break t}if(r=-2147483624,(0|A)==11799)break t;A=(-2&A)==11834,t=-2147483640;break b}if(r=8,a=8388608,A-65073>>>0<2||(r=152,a=0,(0|A)==65123))break t}return xe=0,8;case 19:d:{F:{G:{O:{D:{T:{if((0|(t=-256&A))<=11775){if((0|t)<=8959){if(t)break T;break w}if((0|t)==8960)break D;if((0|t)==9984)break O;if((0|t)!=10496)break a;break K}if((0|t)<=64767){if(r=-2147483648,(0|t)==11776)break t;if((0|t)!=12288)break a;switch(r=-2147483616,A-12301|0){case 0:case 2:break t;default:break G}}if((0|t)==64768)break F;if((0|t)==65024)break d;if((0|t)!=65280)break a;if(r=32,(0|A)==65379)break t;break a}if((0|t)!=8192)break a;T:switch(A-8318|0){default:if(r=-2147483648,(0|A)!=8262)break a;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break a;case 0:case 16:break T}break k}r=-2147483520;D:switch(A-8969|0){case 1:break a;case 0:case 2:break t;default:break D}if((0|A)!=9002)break a;return xe=0,-2139095040}if(r=-2147483520,(0|A)==10182)break t;break Se}return xe=0,(-2&A)==12318?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64830)break a;break t}a=(A=!(A-65090&-3))>>>27|0,A<<=5;break N;case 20:case 21:if(!(A&=-256))break C;if(r=-2147483616,(0|A)==8192)break t;break tA;case 22:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{E:{ce:{J:{H:{ne:{ue:{ve:{ye:{Ue:{xe:{Ke:{sA:{Xe:{iA:{Ze:{nA:{oA:{Be:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{me:{Ge:{Pe:{Qe:{AA:{dA:{Ce:{if((0|(t=-256&A))<=43519){if((0|t)<=5887){if((0|t)<=2303){if((0|t)<=1535){if(!t)break Ce;if((0|t)==768)break dA;if((0|t)!=1280)break a;if(r=0,a=538968064,A-1371>>>0<2)break t;switch(a=268435456,A-1373|0){case 0:break t;case 1:break Qe;default:break AA}}if((0|t)==1536)break Ge;if((0|t)==1792)break me;if((0|t)!=2048)break a;if((t=A-2103|0)>>>0<8)break QA;break We}if((0|t)<=3839){if((0|t)==2304)break eA;if((0|t)==3328)break uA;if((0|t)!=3584||(r=64,(-2&A)!=3674))break a;break t}if((0|t)<=4863){if((0|t)==3840)break $e;if((0|t)!=4096)break a;if(r=268435520,(-2&A)==4170)break t;if(r=0,a=16777216,(0|A)!=4347)break a;break t}if((0|t)==4864)break cA;if((0|t)!=5632)break a;switch(r=64,A-5741|0){case 1:break i;case 0:break t;default:break Te}}if((0|t)<=11263){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break GA;if((0|t)!=6400)break a;t=(0|A)==6469,r=(A=(0|A)==6468)||t?268435520:0,xe=A?536870912:t?1073741824:0;break m}if((0|t)<=7167){if((0|t)==6656)break lA;if((0|t)!=6912)break a;if((0|(t=-2&A))!=7002)break qe;break R}if((0|t)==7168)break Je;if((0|t)!=8192)break a;switch(r=-2147483520,A-8214|0){case 1:break w;case 0:break t;case 16:break Be;default:break oA}}if((0|t)<=41983){if((0|t)==11264)break nA;if((0|t)==11776)break Ze;if((0|t)!=12288)break a;switch(r=-2147483584,a=272629760,A-12289|0){case 2:break w;case 0:break t;case 1:break Xe;default:break iA}}if((0|t)<=43007){if((0|t)==41984)break sA;if((0|t)!=42496)break a;switch(r=64,a=268435456,A-42739|0){case 4:break o;case 0:break i;case 3:break r;case 2:break t;case 1:break xe;default:break Ke}}if((0|t)==43008)break Ue;if((0|t)!=43264)break a;switch(r=4096,A-43310|0){case 0:break t;case 1:break R;default:break ye}}if((0|t)<=70655){if((0|t)<=67839){if((0|t)<=65279){if((0|t)==43520)break ve;if((0|t)==43776)break ue;if((0|t)!=65024)break a;if(r=0,a=268435456,(0|(l=-2&A))==65040)break t;if((t=A-65042|0)>>>0<8)break DA;break ke}if((0|t)==65280)break ne;if((0|t)==66304)break H;if((0|t)!=67584||(r=64,(0|A)!=67671))break a;break t}if((0|t)<=69375){if((0|t)==67840)break J;if((0|t)==68096)break ce;if((0|t)!=68352)break a;switch(r=64,A-68410|0){case 0:case 1:case 2:case 3:case 4:case 5:case 95:case 96:case 97:case 98:break t;default:break a}}if((0|t)<=69887){if((0|t)==69376)break E;if((0|t)!=69632)break a;if(A-69703>>>0>=2)break ge;break R}if((0|t)==69888)break fe;if((0|t)!=70144)break a;if((t=A-70200|0)>>>0<=4)break le;if((0|A)!=70313)break a;break R}if((0|t)<=74751){if((0|t)<=71423){if((0|t)==70656)break ie;if((0|t)==70912)break ee;if((0|t)!=71168||(r=268435520,A-71233>>>0>=2))break a;break t}if((0|t)<=72703){if((0|t)==71424)break Z;if((0|t)!=72192)break a;if(A-72258>>>0>=2)break Y;break R}if((0|t)==72704)break X;if((0|t)!=73216||(r=268435520,A-73463>>>0>=2))break a;break t}if((0|t)<=93695){if((0|t)==74752)break T;if((0|t)==92672)break O;if((0|t)!=92928)break a;if(r=268435520,A-92983>>>0<2)break t;t=(0|A)==92996?268435520:0,t=(A=(0|A)==92985)?64:t;break S}if((0|t)<=121343){if((0|t)==93696)break D;if((0|t)!=113664||(r=268435520,a=-2147483648,(0|A)!=113823))break a;break t}if((0|t)==121344)break BA;if((0|t)!=125184)break a;r=((0|A)==125279)<<30,t=0,xe=(A=(0|A)==125278)?536870912:r;break n}r=-1879048128,a=536870912;Ce:{fA:{gA:{pA:{HA:switch(A-33|0){default:switch(A-183|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:break Ce;case 8:break gA;case 0:break pA;default:break fA}case 2:case 9:xe=66;break u;case 11:return xe=268435456,-2147483584;case 13:return xe=-2147483648,-1879048128;case 25:return xe=134217728,-2147483584;case 26:return xe=67108864,-2147483584;case 1:case 6:break C;case 0:break t;case 3:case 4:case 5:case 7:case 8:case 10:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 27:case 28:case 29:break Ce;case 30:break HA}return xe=1073741824,-1879048128}return xe=0,134230016}xe=1078984704;break u}if((0|A)==161)break aA}break w}t=(0|A)==903,r=(A=(0|A)==894)?64:t?134217792:0,xe=A?1073741824:t?67108864:0;break m}if((0|A)==1417)break Pe;if((0|A)!=1475)break a;break oe}xe=1075838976;break c}xe=-2143289344;break s}r=64,a=268435456;Ge:switch(A-1548|0){case 15:break r;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 16:case 17:break a;case 0:break t;case 19:break Ge;case 18:break R;default:break G}break o}if((t=A-1792|0)>>>0<6)break SA;if(r=64,a=134217728,(-2&A)==1798)break t;a=67108864;me:{Ge:{Pe:switch(A-1800|0){default:switch(A-2040|0){case 1:break me;case 0:break Ge;default:break a}case 3:break a;case 0:break t;case 1:break Pe;case 2:case 4:break oe}xe=1073741824;break A}xe=268435456;break A}xe=536870912;break s}t=(0|A)==2405,r=(A=(0|A)==2404)||t?268435520:0,xe=A?-2143289344:t?16777216:0;break m}if(r=0,a=-2143289344,(0|A)!=3572)break a;break t}r=64;$e:switch(A-3848|0){case 5:xe=-2143289344;break A;case 6:xe=16777216;break A;case 0:break t;default:break $e}if(A-3854>>>0<5)break t;if(r=0,a=268435456,(0|A)!=3860)break a;break t}if((t=A-4961|0)>>>0<4)break PA;if(r=64,a=134217728,A-4965>>>0<2)break t;t=(0|A)==4968,r=(A=(0|A)==4967)||t?268435520:0,xe=A?1073741824:t?16777216:0;break m}if(A-5867>>>0>=3)break a;break t}if(r=268435520,A-5941>>>0<2)break t;if((A=A-6100|0)>>>0>=7)break a;t=e[(A=83240+(A<<3)|0)>>2];break h}if(r=268435520,(-4&A)!=6824)break a;break t}if(r=64,(0|A)==7005)break t;if(r=268435520,(0|t)!=7006)break a;break t}if(A-7227>>>0<2)break R;if(r=64,A-7229>>>0<3||(r=268435520,(-2&A)==7294))break t;if(r=4096,(0|A)!=7379)break a;break t}xe=33554432;break u}if((-8&A)==8224)break w;if(A-8242>>>0<3)break t;if(A-8240>>>0<9)break w;if((t=A-8251|0)>>>0<21)break TA;break se}if((0|A)==11513){xe=-2147483648;break c}if(r=0,a=1073741824,(-2&A)==11514)break t;if(a=-2147483648,(0|A)!=11518)break a;break t}r=-1879048128;Ze:switch(A-11822|0){case 4:case 6:xe=268435456;break u;case 5:xe=-2147483648;break u;case 7:xe=67108864;break u;case 14:return xe=-2147483648,-1879048128;case 19:return xe=268435456,-2147483584;case 30:case 32:return xe=0,-2147483584;case 0:break t;default:break Ze}break w}if((0|A)==12349)break _;if((0|A)!=12539)break a;return xe=0,16}return xe=-2143289344,-1879048128}t=(0|A)==42239,r=(A=(0|A)==42238)?64:t?268435520:0,xe=A?268435456:t?-2147483648:0;break m}Ke:switch(A-42509|0){case 1:break i;case 0:break t;case 2:break Ke;default:break a}break o}xe=134217728;break A}if(A-43126>>>0<2)break R;if(r=268435520,A-43214>>>0>=2)break a;break t}if((0|A)==43463)break oe;if(r=268435520,(-2&A)!=43464)break a;break t}if(A-43613>>>0<3)break R;if(r=64,(0|A)==43743)break t;if(r=268435520,(-2&A)!=43760)break a;break t}if(r=268435520,(0|A)!=44011)break a;break t}r=268435520,a=541065216;ne:switch(A-65281|0){case 1:case 6:return xe=0,32;case 11:xe=272629760;break A;case 13:xe=-2143289344;break s;case 100:return xe=0,16;case 25:xe=138412032;break A;case 26:xe=71303168;break A;case 30:xe=1077936128;break s;case 96:break i;case 59:break k;case 0:break t;case 99:break ne;default:break a}xe=268435456;break A}r=(t=(0|A)==66512)>>>26|0,t=(A=(0|A)==66463)?64:t<<6;break L}if(r=64,(0|A)!=67871)break a;break t}if(r=268435520,(-2&A)==68182)break t;if(r=64,A-68336>>>0>=6)break a;break t}if(r=268435520,A-69461>>>0>=5)break a;break t}if(r=64,A-69705>>>0<5)break t;if(r=268435520,A-69822>>>0>=4)break a;break t}if(A-69953>>>0<2)break R;if((t=A-70085|0)>>>0<=26)break F;break Ve}if((0|t)!=2)break R;break oe}if(r=268435520,A-70731>>>0<2)break t;a=(t=(0|A)==70747)>>>26|0,t=(A=(0|A)==70733)?64:t<<6,xe=A?268435456:a;break n}r=268435520;ee:switch((-2&A)-71106|0){case 0:break t;case 2:break d;default:break ee}if(r=8192,A-71110>>>0<3)break t;if(r=268435520,A-71113>>>0>=15)break a;break t}if(r=268435520,A-71484>>>0>=3)break a;break t}if(r=268435520,A-72347>>>0<2)break t;if(r=64,A-72353>>>0>=2)break a;break t}if(r=268435520,A-72769>>>0<2)break t;r=(t=(0|A)==72817)>>>26|0,t=(A=(0|A)==72771)?64:t<<6;break L}if(r=64,a=134217728,A-74865>>>0<2)break t;if(a=0,A-74864>>>0>=5)break a;break t}t=(0|A)==93848?268435520:0,t=(A=(0|A)==93847)?64:t;break S}if(r=268435520,(-2&A)==92782)break t;if(a=-2147483648,(0|A)!=92917)break a;break t}if((0|A)==1748)break i;break a}if(!(1<>>0<=17&&(r=-2147483616,1<>>27|0,A<<=5;break x;case 24:r=(A=A>>>0<256)>>>1|0,A<<=31;break x;case 25:d:{F:{G:{O:{D:{T:{X:{Y:{if((0|(t=-256&A))<=12287){if((0|t)<=767){if(!t)break Y;if((0|t)!=512)break d;if(A-751>>>0>=17)break X;break g}if((0|t)==768)break T;if((0|t)!=7936)break d;switch(r=4096,A-8125|0){case 0:case 2:case 3:case 4:case 16:case 17:case 18:case 32:case 33:case 34:case 48:case 49:case 50:case 64:case 65:break t;default:break d}}if((0|t)<=43775){if((0|t)==12288)break D;if((0|t)!=42752||(r=4096,(-2&A)!=42784))break d;break t}if((0|t)==43776)break O;if((0|t)==65280)break G;if(r=0,a=78,(0|t)!=127744)break d;break t}Y:switch(A-168|0){default:r=-2147479424;Z:switch(A-94|0){case 0:break t;case 2:break Z;default:break d}return xe=0,-2147479552;case 0:case 7:break g;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 13:case 14:case 15:break d;case 12:case 16:break Y}break g}if((0|A)==749|A-741>>>0<7)break g;if(A-706>>>0>=4)break F;break g}if((A=A-885|0)>>>0>16||(r=4096,!(1<>>0>=2)break d;break t}if(r=4096,(0|A)!=43867)break d;break t}r=4224;G:switch(A-65342|0){default:if((0|A)!=65507)break d;break;case 0:break t;case 1:break d;case 2:break G}break g}if(r=4096,A-722>>>0<14)break t}break a;case 26:d:{F:{G:{O:{D:{T:{if((0|(t=-256&A))<=9471){if((0|t)<=8447){if(t)break d;break w}if((0|t)==8448)break T;if((0|t)==8704)break D;if(r=-2147483648,(0|t)!=8960)break a;break t}if((0|t)<=10495){if((0|t)==9472)break O;if((0|t)==9728)break G;if((0|t)==9984)break w;break a}if((0|t)==10496)break F;if((0|t)==10752)break w;if(r=-2147483648,(0|t)!=11008)break a;break t}if((0|A)==8472)return xe=0,67108864;if((0|A)==8596)break q;if(r=-2147483648,A>>>0<=8591)break a;break t}if(r=-2147483640,(0|A)==8722)break t;t=-2147483648,xe=(A=A-8942>>>0<4)?33554432:0;break n}if(r=-2147483648,a=130,A-9723>>>0<2)break t;t=-2147483648,xe=(A=A-9725>>>0<2)?134:0;break n}if(r=-2147483648,a=128,(0|A)==9839)break t;break w}if(r=-2147483648,a=130,(-2&A)==10548)break t;t=-2147483648,xe=(A=(0|A)==10626)?134217728:0;break n}if((0|t)==8192)break Ye;break a;case 27:d:{F:{G:{O:{D:{T:{X:{Y:{Z:{ee:{ie:{le:{fe:{ge:{E:{ce:{J:{H:{ne:{ue:{ve:{ye:{Ue:{xe:{if((0|(t=-256&A))<=12287){if((0|t)<=9727){if((0|t)<=8959){if(!t)break xe;if((0|t)!=8448)break a;switch(r=0,a=130,A-8482|0){case 7:break k;case 0:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:break ue;case 12:break ye;default:break Ue}}if((0|t)==8960)break ne;if((0|t)==9216)break H;if((0|t)!=9472)break a;switch(r=-2147483520,(-2&A)-9632|0){case 0:break t;case 10:break q;default:break J}}if((0|t)<=11007){if((0|t)==9728)break ce;if((0|t)==9984)break E;if(r=-2147483648,(0|t)!=10240)break a;break t}if((0|t)==11008)break ge;if((0|t)==11776)break fe;if((0|t)!=12032)break a;if(r=1048576,A>>>0<12246)break t;switch(r=262144,(-2&A)-12272|0){case 0:break t;case 2:break d;default:break le}}if((0|t)<=127999){if((0|t)<=127231){if((0|t)==12288)break ie;if((0|t)==12800)break ee;if((0|t)!=126976)break a;t=(0|A)==127183,r=0,xe=(A=(0|A)==126980)||t?134:128;break m}if((0|t)==127232)break Z;if((0|t)==127488)break Y;if((0|t)!=127744)break a;if(A>>>0>=127777)break X;break j}if((0|t)<=128767){if((0|t)==128e3)break T;if((0|t)==128256)break D;if((0|t)!=128512)break a;if((t=A-128581|0)>>>0<11)break CA;break Ee}if((0|t)==128768)break O;if((0|t)==129280)break G;if((0|t)!=129536)break a;xe=128;break c}t=(0|A)==174,r=-2147483648,xe=(A=(0|A)==169)||t?130:0;break m}switch(A-8616|0){case 0:break w;case 1:case 2:break ve;default:break ue}}return xe=0,67108864}return xe=130,-2147483520}if(r=-2147483520,A-8597>>>0<5)break t;if(A-8604>>>0<18)break K;if((t=A-8624|0)>>>0<8)break xA;break He}if(A>>>0<8968)break w;if((0|(t=-2&A))==8986)break l;if(A-8972>>>0<20|A-8994>>>0<6)break w;if((0|A)==9e3)break q;if(A-9003>>>0<81)break w;if(r=-2147483648,a=128,(0|A)==9096)break t;if(A-9085>>>0<30)break w;if(r=-2147483520,a=0,(0|t)==9140)break t;ne:switch(A-9143|0){case 0:case 25:break t;case 24:break q;default:break ne}if(A-9140>>>0<40)break w;if((0|A)==9186)break t;if((t=A-9193|0)>>>0<4)break l;r=-2147483648,a=134;ne:switch(A-9200|0){case 0:case 3:break t;default:break ne}if(t>>>0<11)break q;if(a=130,A-9208>>>0<3)break t;if(a=0,A>>>0<=9186)break a;break t}if(r=-2147483648,A-9216>>>0<75||(r=33792,a=130,(0|A)==9410)||(a=0,A-9398>>>0<26))break t;if(r=17408,A-9424>>>0>=26)break a;break t}if(A-9646>>>0<8)break K;if(a=130,(0|A)==9654)break t;if((-4&A)==9660)break K;J:switch(A-9664|0){case 0:break t;case 6:case 7:case 10:case 11:case 15:case 16:case 17:case 18:case 19:case 34:case 36:break K;default:break J}return xe=0,A-9703>>>0<6?-2147483520:-2147483648}ce:switch((-16&A)-9728>>>4|0){case 0:if(A>>>0<9733)break q;r=-2147483520,a=128;J:switch(A-9733|0){case 0:break t;case 9:break J;case 1:break K;default:break P}break q;case 2:if((t=A-9760|0)>>>0<11)break vA;if(r=-2147483648,a=130,A>>>0<=9773)break P;break t;case 3:if(r=-2147483648,a=130,A-9784>>>0>=3)break P;break t;case 4:r=-2147483520,a=130;J:switch(A-9792|0){case 0:case 2:break t;default:break J}if(r=-2147483648,a=134,A>>>0<=9799)break P;break t;case 5:if(r=-2147483648,a=134,A>>>0<9812)break t;if(a=130,(0|A)!=9823)break P;break t;case 6:if((0|A)==9734)break K;if((0|A)==9824)return xe=130,-2147483520;if(r=-2147483520,a=128,A-9825>>>0<2)break t;if((t=A-9827|0)>>>0<6)break MA;break Me;case 8:if(r=-2147483648,A>>>0<=9861)break P;break t;case 10:r=-2147483648,a=130;J:switch(A-9888|0){case 1:break l;case 0:break t;default:break J}if(a=134,(-2&A)!=9898)break P;break t;case 11:if(r=-2147483648,a=130,(-2&A)==9904)break t;if(a=134,A-9917>>>0>=2)break P;break t;case 12:if((-2&A)==9924)break l;r=-2147483648,a=130;J:switch(A-9928|0){case 0:case 7:break t;case 6:break J;default:break P}break l;case 14:t=(0|A)==9962,r=-2147483648,xe=(A=(0|A)==9961)?130:t?134:128;break m;case 13:break wA;case 9:break kA;case 15:break ce;case 7:break EA;case 1:break yA;default:break P}if((0|A)==9972|A>>>0<9970)break q;if(r=-2147483648,a=134,A>>>0<9974||(0|A)!=9974&&(a=130,A>>>0<9977))break t;if((A=A-9977|0)>>>0<5)break IA;break P}E:{ce:{J:{H:{ne:switch((-16&A)-9984>>>4|0){case 0:if(r=0,a=130,(0|A)==9986||(a=128,A>>>0<9989)||(a=134,(0|A)==9989))break E;a=150;ue:switch((-2&A)-9994|0){case 0:break E;case 2:break J;default:break ue}if(a=130,A-9992>>>0<6)break E;t=(0|A)==9999,r=0,a=(A=(0|A)==9998)?128:t?130:0;break E;case 1:if(r=0,a=128,A>>>0<10002)break E;if((A=A-10002|0)>>>0>11||(a=130,!(1<>>0<2)break E;a=(A=A-10069&-3)?0:536871046;break E;case 6:if((t=A-10082|0)>>>0<3)break ce;if(r=0,a=128,A>>>0<=10084)break H;break E;case 9:if(r=0,a=134,A-10133>>>0>=3)break H;break E;case 10:if(r=0,a=130,(0|A)!=10145)break H;break E;case 11:t=(0|A)==10175,r=0,a=(A=(0|A)==10160)||t?134:0;break E;case 3:break ne;default:break H}if(r=0,a=130,A-10035>>>0<2)break E}r=0,a=0;break E}a=146;break E}r=e[(A=83992+(t<<3)|0)>>2],a=e[A+4>>2]}return xe=a,-2147483648|r}if(r=-2147483648,a=130,A-11013>>>0<3||(a=134,A-11035>>>0<2))break t;t=(0|A)==11093,r=-2147483648,xe=(A=(0|A)==11088)||t?134:0;break m}if(A-11904>>>0>=26)break F;return xe=0,1048576}if(A-12276>>>0>=8)break a;break t}if((A=A-12306|0)>>>0>14||(r=-2147483648,!(1<>>0<26||A-127312>>>0<26)return xe=0,33792;if((t=A-127344|0)>>>0<=15&&(r=33792,a=130,1<>>0<26))break t;if((0|A)==127374)break j;if(r=0,a=134,A-127377>>>0<10)break t;if(a=102,A>>>0<=127461)break a;break t}r=0,a=134;Y:{Z:switch(A-127489|0){case 0:case 25:break t;case 1:break _;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break Y;default:break Z}switch(A-127535|0){case 0:break t;case 8:break _;default:break Y}}if((-2&A)==127568|A-127538>>>0<9)break t;if(a=128,A>>>0<=127583)break a;break t}if((0|A)==127777)break _;if(A-127789>>>0<9|A-127799>>>0<70)break j;if((0|A)==127877)break Ae;if(A-127870>>>0<22)break j;if(A-127780>>>0<112)break _;r=0,a=130;X:switch(A-127894|0){case 44:case 45:case 46:case 49:break Ae;case 0:case 1:case 3:case 4:case 5:break t;default:break X}if(A-127904>>>0<42)break j;if(a=150,(0|A)==127946||(a=146,A-127947>>>0<2))break t;if(A-127951>>>0<5)break j;if(a=134,A-127968>>>0<17||(a=130,A-127902>>>0<83))break t;if((t=A-127987|0)>>>0<5)break bA;break V}r=0,a=130;T:switch(A-128063|0){case 0:case 2:break t;default:break T}if((0|A)==128124|(-5&A)-128129>>>0<3|(0|A)==128110|A-128112>>>0<9||(-2&A)==128066|A-128102>>>0<4|A-128070>>>0<11)break Ae;T:switch(A-128253|0){case 1:xe=128;break c;case 0:break _;default:break T}if(a=150,(0|A)==128170)break t;break j}if(A>>>0<128318)break j;if(r=0,A>>>0<128326)break t;if(A-128329>>>0<2)break _;if(A-128331>>>0<4|A-128336>>>0<24)break j;if(A-128367>>>0<2)break _;if((-2&A)==128372){xe=146;break c}if(A-128371>>>0<7)break _;if(a=150,!(t=A-128378|0))break t;if((0|t)==13|A-128394>>>0<4)break _;if(a=146,(0|A)==128400||(a=150,A-128405>>>0<2))break t;a=134;D:switch(A-128420|0){case 0:break t;case 1:case 4:case 13:case 14:case 24:case 30:case 31:case 32:case 45:case 46:case 47:case 56:case 57:case 58:case 61:case 63:case 68:case 75:case 79:case 86:break _;default:break D}A=A>>>0>128506,t=0;break p}if(r=0,a=128,A-128981>>>0>=4)break a;break t}if(A>>>0<129292)break a;if(A-129328>>>0<10)break Ae;r=0,a=150;G:switch(A-129304|0){case 35:break a;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break t;default:break G}if(A-129341>>>0<2)break Ae;if(a=0,(0|A)==129350||(a=198,(-4&A)==129456))break t;if((t=A-129461|0)>>>0<5)break mA;break hA}if(r=1048576,A-11931>>>0<89)break t;break a}return xe=0,524288;case 29:return xe=16777216,1073741825;case 28:break t;case 30:break YA;default:break a}return xe=0,(0|A)==32?1073741825:1}if(!(1079>>>t&1))break pe;t=e[(A=81344+(t<<3)|0)>>2];break h}if(557553>>>t&1)break k;if((-4&A)!=8508)break Oe;break t}if(!(207>>>t&1))break Ie;break f}if(r=1024,!(1017>>>t&1))break we;break t}if(r=1024,!(32895>>>t&1))break ze;break t}if(r=1024,!(55>>>t&1))break Ne;break t}if(r=1024,!(3087>>>t&1))break je;break t}if((A=A-71453|0)>>>0>=15)break a;t=e[(A=82312+(A<<3)|0)>>2];break h}if(!(49023>>>t&1))break Re;t=e[(A=82432+(t<<3)|0)>>2];break h}if(!(514623>>>t&1))break $;t=e[(A=82664+(t<<3)|0)>>2];break h}t=e[(A=83160+(t<<3)|0)>>2];break h}if(r=268435520,!(197>>>t&1))break We;break t}t=e[(A=83208+(t<<3)|0)>>2];break h}if((A=A-6145|0)>>>0>=10)break a;t=e[(A=83296+(A<<3)|0)>>2];break h}if(!(1077711>>>t&1))break se;t=e[(A=83376+(t<<3)|0)>>2];break h}if(!(159>>>t&1))break ke;t=e[(A=83544+(t<<3)|0)>>2];break h}if((A=A-121479|0)>>>0>=4)break a;t=e[(A=83608+(A<<3)|0)>>2];break h}if(!(195>>>t&1))break He;break K}if((A=A-9745|0)>>>0>=13)break P;t=e[(A=83640+(A<<3)|0)>>2];break h}if(1101>>>t&1)break q;if(r=-2147483648,a=130,A>>>0<=9773)break P;break t}if(!(45>>>t&1))break Me;t=e[(A=83744+(t<<3)|0)>>2];break h}if((A=A-9851|0)>>>0>=5)break P;t=e[(A=83792+(A<<3)|0)>>2];break h}if((A=A-9874|0)>>>0>=11)break P;t=e[(A=83832+(A<<3)|0)>>2];break h}if((A=A-9937|0)>>>0>=4)break P;t=e[(A=83920+(A<<3)|0)>>2];break h}t=e[(A=83952+(A<<3)|0)>>2];break h}if(!(23>>>t&1))break V;t=e[(A=84016+(t<<3)|0)>>2];break h}if(r=0,a=150,!(1991>>>t&1))break Ee;break t}if(a=150,27>>>t&1)break t}t=0,xe=(A=A-129489>>>0<13)?150:134;break n}A=A-127992>>>0<3,t=0;break p}if(A-9837>>>0<2)break t}xe=128;break u}if(A-8623>>>0<13)break w;if(A-8636>>>0<18)break K;if((t=A-8656|0)>>>0<22&&(a=0,3157995>>>t&1)||(r=-2147483648,a=0,A-8661>>>0<31))break t;break a}if(A>>>0<128592)break j;if(r=0,a=0,A>>>0<128640)break t;if(!((t=A-128675|0)>>>0>29|!(1<>>0<128710)break j;if(a=150,(0|A)==128716)break t;if(A-128715>>>0<5)break _;if(A-128720>>>0<3)break j;if(!((t=A-128736|0)>>>0>=10|!(575>>>t&1)))break _;if(a=134,A-128747>>>0<2)break t;a=130;Ee:switch(A-128752|0){case 0:case 3:break t;default:break Ee}A=A-128756>>>0<6,t=0;break p}r=-2147483648;Ye:switch(A-8260|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:break a;case 0:case 14:break t;default:break Ye}if((0|(A=A-8315|0))!=16&&A)break a;return xe=0,8}if(r=268435520,a=1073741824,(0|A)!=69955)break a;break t}if(A-8266>>>0<8)break w;if(r=-2147483640,(0|A)==8275)break t;if(r=-2147483648,A-8277>>>0>=10)break a;break t}xe=542113792;break u}if(r=-2147483648,a=0,A-65093>>>0<2||(r=64,a=268435456,(0|l)==65104))break t;r=268435520,a=-2147483648;ke:switch(A-65106|0){case 3:xe=134217728;break A;case 5:xe=536870912;break s;case 4:break o;case 2:break r;case 0:break t;case 15:case 22:break ke;default:break a}break k}if((0|A)==2142)break oe;if(r=64,A-2096>>>0<15)break t;break a}if(r=1024,A-72850>>>0<22)break t;if((A=A-72874|0)>>>0>=13)break a;t=e[(A=82560+(A<<3)|0)>>2];break h}if(r=4096,A-71103>>>0<2)break t;if(r=1024,(-2&A)!=71132)break a;break t}if((0|A)==70726)break g;if(r=4096,(-2&A)!=70850)break a;break t}if(r=4096,A-68325>>>0>=2)break a;break t}if((0|A)==6109)break g;if(r=4096,A-6089>>>0>=11)break a;break t}_e:switch(A-3959|0){case 0:case 2:return xe=0,8389632;default:break _e}if((0|t)==3968|A-3953>>>0<14)break f;if(!((t=A-3970|0)>>>0>=6|!(55>>>t&1)))break g;if(A-3981>>>0<11)break f;if(r=1024,A-3993>>>0<36)break t;if(r=4096,(0|A)!=4038)break a;break t}if(A-3655>>>0<6)break g;if(!((t=A-3761|0)>>>0>11|!(1<>>0<5)break t;if(r=1024,(0|A)!=3789)break a;break t}if(A-1770>>>0<3)break t;if(r=1024,(0|A)!=1773)break a;break t}if((-2&A)==73028)break g;r=1024;$:switch(A-73104|0){default:if((0|A)!=73031)break a;break t;case 2:case 3:case 4:case 6:break a;case 0:case 1:case 5:break t;case 7:break $}break g}if((A=A-8492|0)>>>0>=30)break a;t=e[(A=81704+(A<<3)|0)>>2];break h}r=0;break z}a=(t=(-3&A)==43712)>>>20|0,r=t<<12}if((0|(o=-65536&A))==131072)break rA;if((0|o)==65536)break be;if(t=r,l=a,o)break he}if(A-13312>>>0<6582||A-19968>>>0<20976)break e;if(o=2048,A-63744>>>0<366)return xe=l,2048|t;if(r=t,a=l,A-64112>>>0>=106)break he;break W}if(o=2099200,A-183984>>>0<7473|A-178208>>>0<5762|A-177984>>>0<222|A-131072>>>0<42711||A-173824>>>0<4149||(o=2048,A-194560>>>0<542))break W;break he}if(o=2048,A-110960>>>0<396|A-94208>>>0<6125|A-100352>>>0<755)break W}o=0}return xe=a,r|o}if((-4&A)==8508)break k;if(r=128,!(A-8517>>>0<3)&&(r=16777344,(-2&A)!=8520))break a}xe=a;break m}t=(A=A>>>0>131069)?65536:0,xe=A?0:128;break n}if((0|A)==11776)break w}xe=0;break c}xe=0;break u}return xe=0,4194304}return xe=0,128}return xe=0,16777344}return xe=0,4096}return xe=0,1024}return xe=0,-2147483520}return xe=0,A-10214>>>0<10?-2147483520:-2147483648}xe=0;break s}xe=0;break A}xe=130;break c}xe=130;break u}xe=134;break c}return xe=150,0}xe=0;break n}xe=A?0:a;break n}return xe=t,A}return 131072}return xe=0,16777216}xe=A?0:r;break n}return xe=a,A}return xe=r,A}xe=A?0:t;break m}return xe=0,8192}xe=e[A+4>>2];break n}xe=A?8388608:0;break n}return r}return xe=0,-2147483616}xe=A?134:128}return t}xe=134}return-2147483648}return 0}xe=1073741824;break s}xe=-2147483648}return 268435520}xe=67108864}return 64}return xe=l,2099200|t}function GA(A){var t,r=0,a=0,o=0,l=0,c=0;(t=gt(8244))&&(e[t+328>>2]=2,d[132848]=0,e[t+684>>2]=0,e[t+688>>2]=0,e[t+320>>2]=0,e[t+324>>2]=0,d[t+268|0]=0,d[t+228|0]=0,e[t+8216>>2]=0,e[t+8220>>2]=0,e[t+224>>2]=104944,e[t+216>>2]=383,e[t+220>>2]=96,cA(t+344|0,0,292),e[t+8196>>2]=0,e[(r=t+8188|0)>>2]=0,e[r+4>>2]=0,e[t+8180>>2]=0,e[t+8184>>2]=0,d[t+460|0]=22,d[t+461|0]=129,d[t+466|0]=38,d[t+462|0]=38,d[t+463|0]=36,d[t+464|0]=22,d[t+465|0]=224,d[t+456|0]=22,d[t+457|0]=22,d[t+458|0]=44,d[t+459|0]=22,d[t+454|0]=46,d[t+455|0]=129,d[t+446|0]=22,d[t+447|0]=38,d[t+448|0]=28,d[t+449|0]=193,d[t+450|0]=38,d[t+451|0]=22,d[t+452|0]=46,d[t+453|0]=46,d[t+441|0]=129,d[t+442|0]=38,d[t+443|0]=22,d[t+444|0]=38,d[t+445|0]=193,e[t+332>>2]=104912,e[t+336>>2]=104916,e[t+340>>2]=105232,d[t+296|0]=18,d[t+297|0]=18,v[t+304>>1]=182,v[t+306>>1]=140,d[t+298|0]=20,v[t+308>>1]=220,v[t+310>>1]=220,v[t+312>>1]=220,d[t+299|0]=20,d[t+300|0]=20,v[t+314>>1]=240,d[t+301|0]=22,v[t+316>>1]=260,v[t+318>>1]=280,d[t+302|0]=22,d[t+303|0]=20,r=cA(t,0,212),e[r+200>>2]=20,e[r+192>>2]=25966,e[r+196>>2]=500,e[r+80>>2]=95,e[r+16>>2]=1,e[r+20>>2]=3,e[r+8>>2]=2,e[r+52>>2]=19,d[r+168|0]=3,e[r+92>>2]=2,e[r+72>>2]=4,e[r+40>>2]=115,e[r+44>>2]=95,e[r+140>>2]=105244,On(r,201),e[r+120>>2]=2,e[r+124>>2]=44,e[r+164>>2]=100,e[r+128>>2]=46,e[r+132>>2]=14,e[r+112>>2]=1227133512,e[r+116>>2]=49,e[r+104>>2]=1,a=e[26313],e[r+636>>2]=e[26312],e[r+640>>2]=a,a=e[26315],e[r+644>>2]=e[26314],e[r+648>>2]=a,a=e[26317],e[r+652>>2]=e[26316],e[r+656>>2]=a,a=e[26319],e[r+660>>2]=e[26318],e[r+664>>2]=a,a=e[26321],e[r+668>>2]=e[26320],e[r+672>>2]=a,a=e[26323],e[r+676>>2]=e[26322],e[r+680>>2]=a,a=u[104928]|u[104929]<<8,d[r+160|0]=a,d[r+161|0]=a>>>8,a=u[104924]|u[104925]<<8|u[104926]<<16|u[104927]<<24,d[r+156|0]=a,d[r+157|0]=a>>>8,d[r+158|0]=a>>>16,d[r+159|0]=a>>>24),o=_A(t+228|0,A),r=0;e:{A:if(a=u[0|A]){for(;r=(a<<24>>24)+(r<<8)|0,a=u[0|(A=A+1|0)];);r:{s:{i:{o:{c:{u:{l:{n:{p:{C:{m:{b:{h:{y:{I:{x:{N:{L:{U:{B:{M:{Q:{S:{Ae:{j:{q:{_:{oe:{R:{Se:{K:{f:{g:{re:{k:{ae:{w:{a:{tA:{te:{t:{pe:{W:{he:{be:{rA:{de:{z:{Fe:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{je:{Re:{We:{ke:{aA:{se:{Ve:{Ye:{Ee:{He:{P:{Me:{if((0|r)<=28008){if((0|r)<=26464){if((0|r)<=25696){V:switch(r-24934|0){case 20:break n;case 1:case 2:case 3:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 18:case 19:break A;case 8:break $;case 12:break We;case 7:break ke;case 0:break aA;case 13:break Me;default:break V}V:switch(r-25189|0){case 1:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 11:case 12:case 13:break A;case 14:break pe;case 2:break je;case 0:break Re;case 9:break Me;default:break V}switch(r-25441|0){case 18:break x;case 0:break $;case 24:break Ne;default:break A}}V:switch(r-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break Fe;case 9:break Oe;case 7:break $;case 3:break Ie;case 2:break we;case 0:break He;default:break V}V:switch(r-26209|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:break A;case 17:break de;case 8:break z;case 0:break v;default:break V}switch(r-25697|0){case 4:break _e;case 0:break ze;default:break A}}if((0|r)<=27488){V:switch(r-26729|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 13:case 14:case 15:break A;case 16:break tA;case 12:break te;case 11:break t;case 9:break pe;case 0:break W;default:break V}V:switch(r-26977|0){case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 15:case 16:case 17:break A;case 19:break k;case 18:break ae;case 3:break w;case 14:break a;case 0:break $;default:break V}switch(r-26465|0){case 20:break W;case 13:break he;case 0:case 3:break be;default:break A}}V:switch(r-27489|0){case 13:break p;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 12:case 15:case 16:case 17:case 18:case 19:case 21:case 22:case 23:break A;case 24:break oe;case 20:break R;case 14:break Se;case 11:break K;case 10:break f;case 0:break g;default:break V}switch(r-27745|0){case 19:break q;case 0:break _;case 21:break Ye;default:break A}}if((0|r)<=29792){if((0|r)<=28768){V:switch(r-28009|0){case 3:break p;case 11:break Ae;case 2:break j;case 1:case 4:case 5:case 6:case 7:case 8:case 12:case 13:case 14:case 15:break A;case 10:break w;case 9:break W;case 0:case 16:break se;default:break V}V:switch(r-28258|0){case 0:break Q;case 10:break S;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break W;default:break V}switch(r-28525|0){case 0:break M;case 5:break W;default:break A}}if((0|r)<=29539){V:switch(r-28769|0){case 19:break U;case 11:break B;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 20:case 21:case 22:case 23:break A;case 0:break W;case 24:break se;default:break V}V:switch(r-29295|0){case 6:break N;case 0:break L;case 1:case 2:case 3:case 4:case 5:break A;default:break V}if((0|r)==29045)break se;break A}switch(r-29540|0){case 19:break C;case 18:break m;case 13:break b;case 8:break y;case 5:break I;case 7:break x;case 14:break pe;case 0:break c;default:break A}}if((0|r)>6514801)break P;if((0|r)<=30058)switch(r-29793|0){case 19:break l;case 17:break n;case 0:case 4:break p;case 13:break C;case 7:break se;default:break A}if((0|r)<=30312)switch(r-30059|0){case 0:break u;case 15:break se;case 7:break c;default:break A}if((0|r)==30313)break o;if((0|r)==31336)break i;if((0|r)!=6451321)break A}if(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=2432,e[t+8>>2]=0,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25889],e[t+304>>2]=e[25888],e[t+308>>2]=A,A=e[25891],e[t+312>>2]=e[25890],e[t+316>>2]=A,za(t),d[t+345|0]=2|u[t+345|0],d[t+406|0]=16|u[t+406|0],d[t+407|0]=16|u[t+407|0],d[t+408|0]=16|u[t+408|0],d[t+409|0]=16|u[t+409|0],d[t+410|0]=16|u[t+410|0],d[t+411|0]=16|u[t+411|0],d[t+412|0]=16|u[t+412|0],d[t+413|0]=16|u[t+413|0],d[t+414|0]=16|u[t+414|0],d[t+415|0]=16|u[t+415|0],d[t+416|0]=16|u[t+416|0],d[t+417|0]=16|u[t+417|0],d[t+418|0]=16|u[t+418|0],d[t+419|0]=16|u[t+419|0],d[t+420|0]=16|u[t+420|0],d[t+456|0]=4|u[t+456|0],d[t+457|0]=4|u[t+457|0],e[t+112>>2]=613567144,e[t+104>>2]=16,(0|r)!=6451321)break e;e[t+104>>2]=1,e[t+108>>2]=512,r=6451321;break e}if((0|r)>7364975)break Ve;if((0|r)>6840682)break Ee;if((0|r)==6514802)break Le;if((0|r)==6516078)break i;if((0|r)!=6779491)break A}if(e[t+600>>2]=896,e[t+328>>2]=8,e[t+296>>2]=336858127,e[t+300>>2]=353768980,e[t+332>>2]=103632,A=e[25905],e[t+304>>2]=e[25904],e[t+308>>2]=A,A=e[25907],e[t+312>>2]=e[25906],e[t+316>>2]=A,cA(t+344|0,0,256),d[t+388|0]=129,d[t+389|0]=129,d[t+390|0]=129,d[t+391|0]=129,d[t+420|0]=129,d[t+421|0]=129,d[t+422|0]=129,d[t+423|0]=129,d[t+360|0]=129,d[t+392|0]=129,d[t+393|0]=129,d[t+417|0]=129,d[t+418|0]=129,d[t+419|0]=129,d[t+420|0]=129,d[t+408|0]=6,d[t+409|0]=4,d[t+410|0]=6,d[t+411|0]=6,d[t+412|0]=6,d[t+413|0]=193,d[t+414|0]=6,d[t+415|0]=6,d[t+406|0]=6,d[t+407|0]=129,d[t+398|0]=4,d[t+399|0]=193,d[t+400|0]=6,d[t+401|0]=193,d[t+402|0]=6,d[t+403|0]=4,d[t+404|0]=4,d[t+405|0]=4,d[t+394|0]=4,d[t+395|0]=4,d[t+396|0]=4,d[t+397|0]=193,e[t+44>>2]=130,e[t+8>>2]=2,e[t+12>>2]=6,e[t+16>>2]=0,e[t+20>>2]=2,e[t+104>>2]=264,e[t+108>>2]=6146,d[t+391|0]=193,d[t+389|0]=193,d[t+390|0]=193,d[t+421|0]=193,e[t+100>>2]=e[t+96>>2],d[t+416|0]=4|u[t+416|0],(0|r)!=6779491)break e;e[t+40>>2]=1,r=6779491;break e}if((0|r)==6840683)break rA;if((0|r)==6972015)break re;if((0|r)!=7107687)break A}e[t+296>>2]=134875662,e[t+300>>2]=252968960,e[t+328>>2]=5,d[t+169|0]=1,e[t+132>>2]=33,e[t+104>>2]=99336,e[t+8>>2]=0,e[t+12>>2]=262182,A=e[26069],e[t+304>>2]=e[26068],e[t+308>>2]=A,A=e[26071],e[t+312>>2]=e[26070],e[t+316>>2]=A;break e}if((0|r)<=7564649){if((0|r)==7364976)break $;if((0|r)==7435619)break se;if((0|r)!=7563374)break A;e[t+148>>2]=1,e[t+112>>2]=24,e[t+104>>2]=1,e[t+100>>2]=e[t+96>>2],r=7563374;break e}if((0|r)==7564650)break h;if((0|r)==7959909)break i;if((0|r)!=1885958500)break A}e[t+104>>2]=0;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=16779472,e[t+32>>2]=1,e[t+24>>2]=1,A=e[25881],e[t+304>>2]=e[25880],e[t+308>>2]=A,A=e[25883],e[t+312>>2]=e[25882],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=24934;break e}e[t+600>>2]=4608,e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=0,e[t+12>>2]=36,e[t+104>>2]=1024,e[t+100>>2]=e[t+96>>2],e[t+40>>2]=1,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=24941;break e}for(e[t+600>>2]=1536,e[t+224>>2]=0,e[t+216>>2]=1631,e[t+220>>2]=1536,e[t+104>>2]=2884720,e[t+328>>2]=7,e[t+40>>2]=1,$=r=$-16|0,e[r+12>>2]=-1,A=89684;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=1|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=89743;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=2|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=89795;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=4|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=89941;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=16|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=90045;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=32|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=90045;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=8|u[0|l]),A=A+o|0,a;);for(e[r+12>>2]=-1,A=90045;o=UA(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(d[0|(l=(t+a|0)-1192|0)]=64|u[0|l]),A=A+o|0,a;);$=r+16|0,r=24946;break e}e[t+600>>2]=1056,e[t+12>>2]=34,e[t+216>>2]=1118,e[t+220>>2]=1072,cA(t+344|0,0,256),d[t+406|0]=4,d[t+366|0]=4,d[t+367|0]=4,d[t+369|0]=4,d[t+370|0]=4,d[t+371|0]=4,d[t+372|0]=4,d[t+361|0]=4,d[t+362|0]=4,d[t+363|0]=4,d[t+364|0]=4,d[t+373|0]=4,d[t+380|0]=4,d[t+381|0]=4,d[t+382|0]=4,d[t+383|0]=4,d[t+375|0]=4,d[t+376|0]=4,d[t+377|0]=4,d[t+378|0]=4,d[t+384|0]=4,d[t+360|0]=129,e[t+328>>2]=6,e[t+296>>2]=134744588,e[t+300>>2]=286261248,e[t+40>>2]=1,e[t+8>>2]=0,e[t+104>>2]=1032,e[t+108>>2]=66,A=e[25885],e[t+304>>2]=e[25884],e[t+308>>2]=A,A=e[25887],e[t+312>>2]=e[25886],e[t+316>>2]=A,r=25189;break e}wA(t),e[t+328>>2]=6,e[t+56>>2]=2,e[t+36>>2]=263,e[t+40>>2]=1074,e[t+124>>2]=32,e[t+104>>2]=184554728,e[t+8>>2]=2,d[t+386|0]=64&u[t+386|0]|129,r=25191;break e}e[t+12>>2]=262182,e[t+40>>2]=1,r=6514802;break e}e[t+328>>2]=14,e[t+296>>2]=303173393,e[t+300>>2]=336986112,e[t+104>>2]=1024,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,e[t+44>>2]=120,A=e[25893],e[t+304>>2]=e[25892],e[t+308>>2]=A,A=e[25895],e[t+312>>2]=e[25894],e[t+316>>2]=A,d[t+463|0]=64&u[t+463|0]|129,d[t+465|0]=64&u[t+465|0]|129,r=25465;break e}e[t+8>>2]=0,e[t+104>>2]=184618072,e[t+32>>2]=1,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25697;break e}e[t+296>>2]=336860180,e[t+300>>2]=336991764,e[t+8>>2]=0,e[t+104>>2]=16846872,e[t>>2]=8,e[t+4>>2]=48,e[t+80>>2]=87,e[t+32>>2]=1,e[t+36>>2]=256,e[t+40>>2]=2,A=e[25897],e[t+304>>2]=e[25896],e[t+308>>2]=A,A=e[25899],e[t+312>>2]=e[25898],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25701;break e}e[t+132>>2]=33,e[t+104>>2]=16779328,e[t+8>>2]=0,e[t+12>>2]=8,e[t+204>>2]=101,e[t+60>>2]=2,e[t+40>>2]=2,A=e[25901],e[t+304>>2]=e[25900],e[t+308>>2]=A,A=e[25903],e[t+312>>2]=e[25902],e[t+316>>2]=A,d[t+441|0]=64|u[t+441|0],d[t+445|0]=64|u[t+445|0],d[t+449|0]=64|u[t+449|0],d[t+455|0]=64|u[t+455|0],d[t+461|0]=64|u[t+461|0],d[t+465|0]=64|u[t+465|0],r=25966;break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782344,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=103640,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=25967;break e}e[t+296>>2]=269422096,e[t+300>>2]=370545684,e[t+104>>2]=86017320,e[t+108>>2]=6144,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=534,e[t+100>>2]=e[t+96>>2],e[t+44>>2]=120,A=e[25913],e[t+304>>2]=e[25912],e[t+308>>2]=A,A=e[25915],e[t+312>>2]=e[25914],e[t+316>>2]=A;$:{Ie:{if((0|r)<=26976){if((0|r)==24942)break Ie;if((0|r)!=25441)break $;e[t+12>>2]=566,e[t+336>>2]=103664,r=25441;break e}if((0|r)!=26977){if((0|r)!=7364976)break $;e[t+8>>2]=3,e[t+12>>2]=310,r=7364976;break e}e[t+104>>2]=85984264,r=26977;break e}e[t+104>>2]=153093416,e[t+108>>2]=2048,e[t+140>>2]=103676,r=24942;break e}e[t+40>>2]=2;break e}e[t+296>>2]=303173648,e[t+300>>2]=303174162,e[t+104>>2]=3147080,e[t+12>>2]=65792,e[t+84>>2]=1,A=e[25921],e[t+304>>2]=e[25920],e[t+308>>2]=A,A=e[25923],e[t+312>>2]=e[25922],e[t+316>>2]=A,r=25973;break e}e[t+600>>2]=1536,e[t+216>>2]=1740,e[t+220>>2]=1568,e[t+104>>2]=96,e[t+224>>2]=103696,e[t+340>>2]=103872,e[t+40>>2]=1,r=26209;break e}e[t+328>>2]=5}e[t+104>>2]=86024,e[t+164>>2]=130,d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=3,e[t+12>>2]=36,e[t+144>>2]=2,e[t+104>>2]=118658312,e[t+28>>2]=1,e[t+100>>2]=e[t+96>>2],A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26226;break e}v[t+170>>1]=257,e[t+148>>2]=1,e[t+12>>2]=2,r=6840683;break e}e[t+144>>2]=2,e[t+104>>2]=2098176,e[t+8>>2]=0,e[t+12>>2]=32,e[t+40>>2]=3,e[t+28>>2]=1;break e}e[t+8>>2]=3,e[t+100>>2]=e[t+96>>2],r=26478;break e}e[t+328>>2]=18,e[t+296>>2]=320081425,e[t+300>>2]=353768980,e[t+600>>2]=2304,e[t+112>>2]=84648,e[t+104>>2]=16,e[t+8>>2]=6,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25973],e[t+304>>2]=e[25972],e[t+308>>2]=A,A=e[25975],e[t+312>>2]=e[25974],e[t+316>>2]=A;W:{he:{be:{if((0|r)<=28529){if((0|r)==26485)break be;if((0|r)!=28261)break W;A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+132>>2]=22,e[t+112>>2]=-1431655768,e[t+108>>2]=32768|e[t+108>>2],za(t);break e}if((0|r)==28530)break he;if((0|r)!=28769)break W;e[t+600>>2]=2560,za(t);break e}A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+600>>2]=2688,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+8>>2]=2,za(t);break e}e[t+600>>2]=2816}za(t);break e}d[0|o]=104,d[o+1|0]=98,d[o+2|0]=115,d[o+3|0]=0,(0|r)!=29554?(A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A):(A=e[25977],e[t+304>>2]=e[25976],e[t+308>>2]=A,A=e[25979],e[t+312>>2]=e[25978],e[t+316>>2]=A),e[t+328>>2]=3,e[t+296>>2]=336859409,e[t+300>>2]=353768980,v[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=16,e[t+144>>2]=1,e[t+184>>2]=1056,e[t+104>>2]=33572172,e[t+108>>2]=330,e[t+36>>2]=3,d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129;break e}e[t+104>>2]=17990912,e[t+8>>2]=3,e[t+12>>2]=36,r=26740;break e}e[t+328>>2]=3,e[t+296>>2]=320016657,e[t+300>>2]=353768980,e[t+124>>2]=32,e[t+128>>2]=44,e[t+104>>2]=186758144,e[t+12>>2]=1081398,e[t+16>>2]=2,e[t+4>>2]=32,e[t+8>>2]=0,e[t+116>>2]=899,e[t+120>>2]=1,d[t+169|0]=1,e[t+76>>2]=2,A=e[25981],e[t+304>>2]=e[25980],e[t+308>>2]=A,A=e[25983],e[t+312>>2]=e[25982],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,On(t,3),r=26741;break e}for(e[t+600>>2]=1328,e[t+8>>2]=3,A=e[25985],e[t+304>>2]=e[25984],e[t+308>>2]=A,A=e[25987],e[t+312>>2]=e[25986],e[t+316>>2]=A,o=cA(t+344|0,0,256),d[t+429|0]=129,d[t+416|0]=129,d[t+403|0]=129,d[t+399|0]=129,d[t+400|0]=129,d[t+397|0]=129,d[t+393|0]=129,a=103952,l=50,c=50;d[0|(A=o+c|0)]=2|u[0|A],A=o+u[a+1|0]|0,d[0|A]=2|u[0|A],A=o+u[a+2|0]|0,d[0|A]=2|u[0|A],c=u[0|(a=a+3|0)],A=103952,(0|a)!=103982;);for(a=t+344|0;d[0|(o=a+l|0)]=4|u[0|o],o=a+u[A+1|0]|0,d[0|o]=4|u[0|o],o=a+u[A+2|0]|0,d[0|o]=4|u[0|o],l=u[0|(A=A+3|0)],(0|A)!=103982;);d[t+168|0]=6,e[t+104>>2]=5128,d[t+413|0]=4|u[t+413|0];break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782440,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=104e3,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=26991;break e}e[t+296>>2]=303174160,e[t+300>>2]=353768980,e[t+104>>2]=16781320,e[t+144>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,A=e[26005],e[t+304>>2]=e[26004],e[t+308>>2]=A,A=e[26007],e[t+312>>2]=e[26006],e[t+316>>2]=A;break e}for(e[t+8>>2]=0,e[t+12>>2]=16,e[t+56>>2]=2,e[t+28>>2]=17,A=e[26009],e[t+304>>2]=e[26008],e[t+308>>2]=A,A=e[26011],e[t+312>>2]=e[26010],e[t+316>>2]=A,A=0,a=t+344|0;d[0|(o=A+a|0)]=231&u[0|o],d[0|(o=a+(1|A)|0)]=231&u[0|o],d[0|(o=a+(2|A)|0)]=231&u[0|o],d[0|(o=a+(3|A)|0)]=231&u[0|o],(0|(A=A+4|0))!=256;);e[t+104>>2]=2280,e[t+108>>2]=2,e[t+608>>2]=104048,d[t+451|0]=16|u[t+451|0],d[t+456|0]=16|u[t+456|0],d[t+459|0]=16|u[t+459|0],d[t+460|0]=16|u[t+460|0],d[t+450|0]=8|u[t+450|0],d[t+462|0]=8|u[t+462|0],d[t+458|0]=8|u[t+458|0],d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=269618961,e[t+300>>2]=370546196,e[t+12>>2]=131110,e[t+144>>2]=2,e[t+104>>2]=184559112,e[t+108>>2]=8192,e[t+16>>2]=0,e[t+20>>2]=2,e[t+4>>2]=1,e[t+8>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+140>>2]=103676,e[t+68>>2]=2,e[t+56>>2]=1,e[t+44>>2]=130,e[t+28>>2]=2,A=e[26025],e[t+304>>2]=e[26024],e[t+308>>2]=A,A=e[26027],e[t+312>>2]=e[26026],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26996;break e}e[t+4>>2]=524,e[t+8>>2]=2,e[t+196>>2]=368,e[t+104>>2]=0,e[t+336>>2]=104128,e[t- -64>>2]=1,A=e[26029],e[t+304>>2]=e[26028],e[t+308>>2]=A,A=e[26031],e[t+312>>2]=e[26030],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=6972015;break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,o=cA(t+344|0,0,256),d[t+431|0]=1,d[t+429|0]=1,d[t+411|0]=1,d[t+405|0]=1,d[t+400|0]=1,d[t+396|0]=1,d[t+392|0]=1,A=104160,a=49;d[0|(a=a+o|0)]=4|u[0|a],a=o+u[A+1|0]|0,d[0|a]=4|u[0|a],a=o+u[A+2|0]|0,d[0|a]=4|u[0|a],a=u[0|(A=A+3|0)],(0|A)!=104193;);e[t+600>>2]=4256,e[t+8>>2]=0,e[t+12>>2]=16,d[t+168|0]=7,e[t+132>>2]=32,d[t+392|0]=128|u[t+392|0],d[t+396|0]=128|u[t+396|0],d[t+400|0]=128|u[t+400|0],d[t+405|0]=128|u[t+405|0],d[t+411|0]=128|u[t+411|0],d[t+429|0]=128|u[t+429|0],d[t+431|0]=128|u[t+431|0],e[t+188>>2]=1056,e[t+192>>2]=29301,e[t+104>>2]=19964960;break e}for(e[t+600>>2]=1056,o=cA(t+344|0,0,256),d[t+393|0]=1,d[t+365|0]=1,d[t+360|0]=1,d[t+545|0]=1,d[t+529|0]=1,d[t+391|0]=1,d[t+389|0]=1,d[t+390|0]=1,d[t+387|0]=1,d[t+379|0]=1,d[t+374|0]=1,d[t+368|0]=1,d[t+489|0]=1,d[t+487|0]=1,d[t+398|0]=1,A=104224,a=17;d[0|(a=a+o|0)]=4|u[0|a],a=o+u[A+1|0]|0,d[0|a]=4|u[0|a],a=o+u[A+2|0]|0,d[0|a]=4|u[0|a],a=u[0|(A=A+3|0)],(0|A)!=104251;);d[t+360|0]=128|u[t+360|0],d[t+365|0]=128|u[t+365|0],d[t+393|0]=128|u[t+393|0],d[t+368|0]=128|u[t+368|0],d[t+374|0]=128|u[t+374|0],d[t+379|0]=128|u[t+379|0],d[t+387|0]=128|u[t+387|0],d[t+389|0]=128|u[t+389|0],d[t+390|0]=128|u[t+390|0],d[t+391|0]=128|u[t+391|0],d[t+529|0]=128|u[t+529|0],d[t+545|0]=128|u[t+545|0],d[t+489|0]=128|u[t+489|0],d[t+487|0]=128|u[t+487|0],d[t+398|0]=128|u[t+398|0],A=e[26055],e[t+312>>2]=e[26054],e[t+316>>2]=A,A=e[26053],e[t+304>>2]=e[26052],e[t+308>>2]=A,e[t+296>>2]=353636370,e[t+300>>2]=336925972,e[t+200>>2]=0,e[t+8>>2]=7,e[t+12>>2]=2097184,d[t+168|0]=2,e[t+104>>2]=50176,e[t+84>>2]=1,On(t,3);break e}e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=184618072,e[t+8>>2]=12,e[t+12>>2]=32,A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,r=27500;break e}e[t+184>>2]=42752,e[t+600>>2]=4352,cA(t+344|0,0,256),d[t+456|0]=1,d[t+457|0]=1,d[t+458|0]=1,d[t+459|0]=1,d[t+449|0]=1,d[t+450|0]=1,d[t+451|0]=1,d[t+452|0]=1,d[t+453|0]=1,d[t+454|0]=1,d[t+455|0]=1,d[t+456|0]=1,d[t+441|0]=1,d[t+442|0]=1,d[t+443|0]=1,d[t+444|0]=1,d[t+445|0]=1,d[t+446|0]=1,d[t+447|0]=1,d[t+448|0]=1,d[t+460|0]=65,d[t+461|0]=65,d[t+532|0]=32,d[t+527|0]=32,d[t+519|0]=32,d[t+515|0]=32,d[t+349|0]=32,d[t+350|0]=32,d[t+346|0]=32,e[t+132>>2]=20,e[t+112>>2]=286331152,e[t+104>>2]=1024,e[t+108>>2]=16384,e[t+40>>2]=1,e[t+8>>2]=8,d[t+458|0]=65,d[t+453|0]=65,d[t+447|0]=65,d[t+448|0]=65,d[t+443|0]=65,d[t+444|0]=65,r=27503;break e}e[t+328>>2]=10,e[t+296>>2]=336859666,e[t+300>>2]=353768980,d[t+168|0]=2,e[t+104>>2]=263264,e[t+8>>2]=7,A=e[26065],e[t+304>>2]=e[26064],e[t+308>>2]=A,A=e[26067],e[t+312>>2]=e[26066],e[t+316>>2]=A,r=27509;break e}e[t+104>>2]=1,r=27513;break e}e[t+116>>2]=5e3,e[t+104>>2]=16777216,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27745;break e}e[t+116>>2]=5e3,e[t+104>>2]=99336,e[t+108>>2]=256,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27764;break e}e[t+328>>2]=6,e[t+296>>2]=336859409,e[t+300>>2]=353768980,e[t+600>>2]=1056,e[t+104>>2]=2114600,e[t+108>>2]=138,e[t+8>>2]=4,e[t+632>>2]=104288,e[t+604>>2]=104288,A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A,r=28011;break e}e[t+328>>2]=4,e[t+104>>2]=1,e[t+8>>2]=2,e[t+36>>2]=256,r=28020;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+12>>2]=128,e[t+104>>2]=2169880,e[t+32>>2]=1,e[t+36>>2]=256,e[t+24>>2]=1,e[t+136>>2]=85767,A=e[26097],e[t+304>>2]=e[26096],e[t+308>>2]=A,A=e[26099],e[t+312>>2]=e[26098],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28268;break e}e[t+8>>2]=0,e[t+104>>2]=71752,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28258;break e}e[t+296>>2]=336858898,e[t+300>>2]=370546196,e[t+104>>2]=1088,e[t+108>>2]=512,e[t+8>>2]=2,e[t+12>>2]=524310,A=e[26105],e[t+304>>2]=e[26104],e[t+308>>2]=A,A=e[26107],e[t+312>>2]=e[26106],e[t+316>>2]=A,r=28525;break e}e[t+328>>2]=3,e[t+296>>2]=320015633,e[t+300>>2]=353768980,d[t+168|0]=7,e[t+8>>2]=2,e[t+12>>2]=6,e[t+104>>2]=20488,e[t+108>>2]=192,e[t+36>>2]=9,e[t+60>>2]=260,A=e[26109],e[t+304>>2]=e[26108],e[t+308>>2]=A,A=e[26111],e[t+312>>2]=e[26110],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28780;break e}for(e[t+296>>2]=353569552,e[t+300>>2]=353768980,e[t+116>>2]=5e3,e[t+104>>2]=33570920,e[t+108>>2]=14336,e[t+8>>2]=3,e[t+12>>2]=139286,e[t+100>>2]=e[t+96>>2],A=e[26113],e[t+304>>2]=e[26112],e[t+308>>2]=A,A=e[26115],e[t+312>>2]=e[26114],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,A=0,a=t+344|0;d[0|(o=A+a|0)]=253&u[0|o],d[0|(o=a+(1|A)|0)]=253&u[0|o],d[0|(o=a+(2|A)|0)]=253&u[0|o],d[0|(o=a+(3|A)|0)]=253&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=2|u[t+442|0],d[t+443|0]=2|u[t+443|0],d[t+444|0]=2|u[t+444|0],d[t+446|0]=2|u[t+446|0],d[t+447|0]=2|u[t+447|0],d[t+450|0]=2|u[t+450|0],d[t+451|0]=2|u[t+451|0],d[t+453|0]=2|u[t+453|0],d[t+454|0]=2|u[t+454|0],d[t+456|0]=2|u[t+456|0],d[t+457|0]=2|u[t+457|0],d[t+459|0]=2|u[t+459|0],d[t+460|0]=2|u[t+460|0],d[t+462|0]=2|u[t+462|0],d[t+464|0]=2|u[t+464|0],d[t+466|0]=2|u[t+466|0],e[t+144>>2]=2,e[t+68>>2]=2;break e}e[t+296>>2]=303172879,e[t+300>>2]=353768980,e[t+328>>2]=3,e[t+8>>2]=3,e[t+12>>2]=262,e[t+104>>2]=16805928,e[t+108>>2]=30,A=e[26117],e[t+304>>2]=e[26116],e[t+308>>2]=A,A=e[26119],e[t+312>>2]=e[26118],e[t+316>>2]=A,r=29295;break e}kn(t),r=29301;break e}for(e[t+328>>2]=3,e[t+296>>2]=336859153,e[t+300>>2]=353768980,v[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=22,e[t+124>>2]=0,e[t+128>>2]=44,e[t+104>>2]=16794624,e[t+108>>2]=128,e[t+36>>2]=3,e[t+60>>2]=4,A=e[25869],e[t+304>>2]=e[25868],e[t+308>>2]=A,A=e[25871],e[t+312>>2]=e[25870],e[t+316>>2]=A,(0|r)==25459&&(e[t+108>>2]=136),d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129,A=0,a=t+344|0;d[0|(o=A+a|0)]=223&u[0|o],d[0|(o=a+(1|A)|0)]=223&u[0|o],d[0|(o=a+(2|A)|0)]=223&u[0|o],d[0|(o=a+(3|A)|0)]=223&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=32|u[t+442|0],d[t+444|0]=32|u[t+444|0],d[t+447|0]=32|u[t+447|0],d[t+450|0]=32|u[t+450|0],d[t+452|0]=32|u[t+452|0],d[t+453|0]=32|u[t+453|0],d[t+454|0]=32|u[t+454|0],d[t+458|0]=32|u[t+458|0],d[t+462|0]=32|u[t+462|0],d[t+463|0]=32|u[t+463|0],d[t+466|0]=32|u[t+466|0],d[t+441|0]=32|u[t+441|0],d[t+445|0]=32|u[t+445|0],d[t+449|0]=32|u[t+449|0],d[t+455|0]=32|u[t+455|0],d[t+461|0]=32|u[t+461|0],d[t+465|0]=32|u[t+465|0];break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=3456,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+100>>2]=e[t+96>>2],A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,cA(t+344|0,0,256),d[t+365|0]=1,d[t+366|0]=1,d[t+357|0]=1,d[t+358|0]=1,d[t+359|0]=1,d[t+360|0]=1,d[t+361|0]=1,d[t+362|0]=1,d[t+363|0]=1,d[t+364|0]=1,d[t+349|0]=1,d[t+350|0]=1,d[t+351|0]=1,d[t+352|0]=1,d[t+353|0]=1,d[t+354|0]=1,d[t+355|0]=1,d[t+356|0]=1,A=74,a=74;d[(o=t+a|0)+344|0]=1|u[o+344|0],d[o+345|0]=1|u[o+345|0],d[o+346|0]=1|u[o+346|0],(0|(a=a+3|0))!=116;);for(;d[(a=A+t|0)+344|0]=2|u[a+344|0],d[a+345|0]=2|u[a+345|0],d[a+346|0]=2|u[a+346|0],(0|(A=A+3|0))!=116;);for(a=26;d[(A=t+a|0)+344|0]=4|u[A+344|0],d[A+345|0]=4|u[A+345|0],d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+348|0]=4|u[A+348|0],(0|(a=a+5|0))!=71;);e[t+112>>2]=84648,e[t+104>>2]=270589952,e[t+108>>2]=65536,e[t+40>>2]=1,e[t+204>>2]=e[t+600>>2]+74;break e}e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=3,e[t+124>>2]=32,e[t+104>>2]=16864280,e[t+108>>2]=256,e[t+68>>2]=2,e[t+36>>2]=259,e[t+40>>2]=118,e[t+28>>2]=1,d[t+458|0]=128|u[t+458|0],r=29548;break e}e[t+296>>2]=370544658,e[t+300>>2]=370546196,e[t+164>>2]=130,e[t+8>>2]=0,e[t+12>>2]=86,e[t+104>>2]=87064,d[t+169|0]=1,e[t+152>>2]=3,A=e[26121],e[t+304>>2]=e[26120],e[t+308>>2]=A,A=e[26123],e[t+312>>2]=e[26122],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=7564650;break e}e[t+296>>2]=269487120,e[t+300>>2]=320148500,e[t+8>>2]=3,e[t+12>>2]=278,e[t+144>>2]=2,e[t+104>>2]=32872,A=e[26125],e[t+304>>2]=e[26124],e[t+308>>2]=A,A=e[26127],e[t+312>>2]=e[26126],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29553;break e}e[t+296>>2]=336859152,e[t+300>>2]=353768980,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=6408,A=e[26129],e[t+304>>2]=e[26128],e[t+308>>2]=A,A=e[26131],e[t+312>>2]=e[26130],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29558;break e}e[t+296>>2]=320015376,e[t+300>>2]=353768980,d[t+168|0]=4,e[t+12>>2]=22,e[t+4>>2]=1,e[t+8>>2]=2,e[t+104>>2]=1248,e[t+100>>2]=e[t+96>>2],A=e[26133],e[t+304>>2]=e[26132],e[t+308>>2]=A,A=e[26135],e[t+312>>2]=e[26134],e[t+316>>2]=A;break e}e[t+296>>2]=303174162,e[t+300>>2]=370545684,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+112>>2]=5288,e[t+100>>2]=e[t+96>>2],A=e[25877],e[t+304>>2]=e[25876],e[t+308>>2]=A,A=e[25879],e[t+312>>2]=e[25878],e[t+316>>2]=A;p:switch(r-29793|0){default:if((0|r)!=27502){if((0|r)!=28012)break r;A=e[26137],e[t+304>>2]=e[26136],e[t+308>>2]=A,A=e[26139],e[t+312>>2]=e[26138],e[t+316>>2]=A,e[t+600>>2]=3328,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=2098176,e[t+108>>2]=131072,e[t+8>>2]=13;break r}e[t+104>>2]=1,e[t+600>>2]=3200;break r;case 4:break p;case 1:case 2:case 3:break r;case 0:break s}e[t+104>>2]=1,e[t+108>>2]=524288,e[t+600>>2]=3072;break r}e[t+328>>2]=10,e[t+296>>2]=353636370,e[t+300>>2]=336925972,d[t+173|0]=1,e[t+8>>2]=7,e[t+12>>2]=32,d[t+168|0]=2,e[t+84>>2]=1,A=e[26141],e[t+304>>2]=e[26140],e[t+308>>2]=A,e[t+104>>2]=(0|r)==24954?2118920:2114824,A=e[26143],e[t+312>>2]=e[26142],e[t+316>>2]=A;break e}wA(t),e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+104>>2]=2131208,e[t+8>>2]=3,e[t+12>>2]=32,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=29812;break e}kn(t),r=30059;break e}e[t+112>>2]=21160,e[t+104>>2]=16,e[t+600>>2]=1536,e[t+40>>2]=1;break e}e[t+296>>2]=269488144,e[t+300>>2]=370546198,e[t+8>>2]=0,e[t>>2]=33,e[t+148>>2]=1,e[t+104>>2]=12615688,e[t+16>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+632>>2]=104592,e[t+604>>2]=104592,A=e[26145],e[t+304>>2]=e[26144],e[t+308>>2]=A,A=e[26147],e[t+312>>2]=e[26146],e[t+316>>2]=A,r=30313;break e}if(e[t+296>>2]=370544662,e[t+300>>2]=370546198,e[t+8>>2]=3,e[t+12>>2]=2,e[t+148>>2]=1,e[t+184>>2]=12544,v[t+170>>1]=257,e[t+176>>2]=1,d[t+172|0]=1,e[t>>2]=33,e[t+4>>2]=0,e[t+100>>2]=e[t+96>>2],A=e[26225],e[t+304>>2]=e[26224],e[t+308>>2]=A,A=e[26227],e[t+312>>2]=e[26226],e[t+316>>2]=A,(0|r)!=7959909)break e;e[t+112>>2]=24,e[t+104>>2]=1,e[t+108>>2]=1048576,r=7959909;break e}A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,e[t+600>>2]=2944,e[t+104>>2]=2097152,e[t+108>>2]=262144,e[t+48>>2]=1}za(t),d[t+422|0]=2|u[t+422|0];break e}e[t+40>>2]=1}return e[t+212>>2]=r,8&(A=e[t+104>>2])&&(e[t+124>>2]=46,e[t+128>>2]=44),4&A&&(e[t+124>>2]=0),t}function VA(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0;e:{r=e[32538],e[47354]=0,e[47568]=0,e[49828]=0,e[47569]=0,d[199328]=0,e[49827]=0,e[49845]=0,d[190280]=0,d[190268]=1,e[47202]=0,e[49573]=0,e[49846]=0,d[199304]=0,d[199388]=0,e[33691]=0,e[33285]=0,e[33708]=1,e[33709]=1,e[33288]=0,t=e[33730],e[33712]=e[33729],e[33713]=t,t=e[33732],e[33714]=e[33731],e[33715]=t,t=e[33734],e[33716]=e[33733],e[33717]=t,t=e[33736],e[33718]=e[33735],e[33719]=t,t=e[33738],e[33720]=e[33737],e[33721]=t,t=e[33740],e[33722]=e[33739],e[33723]=t,t=e[33742],e[33724]=e[33741],e[33725]=t,e[33726]=e[33743],d[134784]=0,d[134824]=0,d[134772]=0,d[134760]=0,e[33284]=-1,e[33692]=0,e[32525]=0,e[47201]=e[33717],e[47200]=e[33718],wo(),e[34438]=0,e[34437]=0,t=e[33730],e[34048]=e[33729],e[34049]=t,t=e[33732],e[34050]=e[33731],e[34051]=t,t=e[33734],e[34052]=e[33733],e[34053]=t,t=e[33736],e[34054]=e[33735],e[34055]=t,t=e[33738],e[34056]=e[33737],e[34057]=t,t=e[33740],e[34058]=e[33739],e[34059]=t,t=e[33742],e[34060]=e[33741],e[34061]=t,e[34062]=e[33743];A:{r:{if(1&r){if(e[e[32539]>>2]=0,e[47569]|e[49845]|e[49827])break r;break A}if(e[e[32539]>>2]=0,!(e[49845]|e[49827]||e[47569]))break A}d[190280]=1}e[49828]=0,t=268436735;A:if(!(!e[34391]|!e[34388])&&(e[47204]=0,e[47203]=0,e[47199]=0,e[34439]=0,(e[47192]||!(t=bn(86228)))&&((t=e[33283])||((t=gt(16))&&(e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0),e[33283]=t),l=268439807,(r=e[e[47192]+328>>2])>>>0>20|!e[129104+(r<<3)>>2]?t=l:(A?(l=4,o=TA(A)+1|0):(l=2,o=0),e[t+8>>2]=l,e[t>>2]=A,e[t+12>>2]=e[129108+(r<<3)>>2],e[t+4>>2]=A?A+o|0:0,t=0),!t))){OA(0);r:{for(;;){e[34436]=0,A=e[34391],e[51290]=A,e[54046]=A+e[34390],e[50767]<=102399&&(e[50767]=102400);s:if(!((c=e[51290])>>>0>=oe[54046]))for(;;){if((((0|(A=(o=e[50757])-(f=e[50758])|0))<=0?A+170|0:A)-171|0)>=-1){if((0|(A=e[54731]))<=0)break s;l=0,e[50763]=0,e[50762]=0,e[50765]=2147483647,A=u[218920]?e[54732]:A;i:{for(;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break i;if(e[51290]=c+1,t=(A=e[51293])+1|0,e[51293]=(0|t)<=5499?t:0,t=(A=R(e[50755],v[205184+(A<<1)>>1]))>>8,d[0|c]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&(rt[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,v[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),c=e[51290],!(oe[54046]>=c+2>>>0))break}l=1}d[218920]=l;break s}A=e[(r=216192+(o<<4)|0)+4>>2];i:{o:{c:{u:{l:{n:{p:{C:{m:{b:{h:{y:{I:{x:{N:{L:switch((255&(t=e[r>>2]))-1|0){case 9:break c;case 7:break u;case 10:break l;case 11:break n;case 13:break p;case 0:break C;case 1:break m;case 2:break b;case 3:break h;case 6:break y;case 5:break I;case 4:break x;case 15:break N;case 8:break L;default:break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[50768]=0,c=r||99232,e[50766]=c,e[50769]=A?2097152/(0|A)|0:0,A=e[50971],o=(0|R(A,e[50788]))/50|0,r=R(o-A|0,-18),A=((0|(A=e[50785]))>=101?101:A)-e[50790]|0,t=(l=r+((0|R(e[50970],u[((0|A)>0?A:0)+105680|0]))/128|0)|0)+((0|R(o,(0|(A=t>>16))<(0|(r=65535&t))?A:r))/2|0)|0,e[50770]=t,A=(l+((0|R(o,(0|A)>(0|r)?A:r))/2|0)|0)-t|0,e[50771]=A,r=u[0|c],e[33072]=e[50976],e[50767]=t+(R(A,r)>>8);break o}rt[e[e[50756]>>2]](A,e[r+8>>2]),HA(A);break o}if(u[218920]||(e[54731]=e[54731]-A),e[50781]=100,e[50773]=0,Na(),e[50763]=0,e[50762]=0,e[50765]=2147483647,!A)break o;for(A=u[218920]?e[54732]:A;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break o;if(A=e[51290],e[51290]=A+1,o=(t=e[51293])+1|0,e[51293]=(0|o)<=5499?o:0,o=A,t=(A=R(e[50755],v[205184+(t<<1)>>1]))>>8,d[0|o]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&(rt[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,v[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),o=1,!(oe[54046]>=e[51290]+2>>>0))break}break i}for(e[50773]=0,e[54731]=e[54729],Na(),t=e[r+12>>2],o=e[r+8>>2],u[218920]?A=e[54733]:e[54734]=0,f=t>>8,l=255&t,e[50762]=0,e[50763]=0;;){if(r=A-1|0,e[54733]=r,(0|A)<=0)break o;if(t=(A=e[54734])+1|0,l?c=R(l,d[A+o|0]):(c=u[A+o|0]|d[t+o|0]<<8,t=A+2|0),e[54734]=t,m=(A=e[51293])+1|0,e[51293]=m,t=(0|(A=(0|(A=((0|R(f,R(e[33037],R(e[33038],c))>>10))/32|0)+(R(e[50755],v[205184+(A<<1)>>1])>>8)|0))<=-32768?-32768:A))>=32767?32767:A,(0|m)>=5500&&(e[51293]=0),d[e[51290]]=t,d[e[51290]+1|0]=t>>>8,(c=e[50756])?(A=r,(r=e[c+12>>2])&&(rt[0|r](t<<16>>16),A=e[54733])):A=r,r=e[51290],e[51290]=r+2,m=(c=e[51292])+1|0,e[51292]=m,v[205184+(c<<1)>>1]=(0|R(t,3))/4,(0|m)>=5500&&(e[51292]=0),!(oe[54046]>=r+4>>>0))break}o=1;break i}t=e[r+12>>2],o=A>>>16|0,e[50777]=o,A&=65535,e[50773]=A,l=255&t,e[50774]=l,e[50775]=t>>8,l||(e[50777]=o<<1,e[50773]=A<<1),e[50778]=0,e[50776]=0,e[50772]=e[r+8>>2];break o}e[50773]=0}if(e[54731]=e[54729],t=e[50759],u[218920]){if(!t)break o}else{if(!t)break o;for(l=e[r+12>>2],c=e[r+8>>2],r=A>>16,e[55912]=255&r,d[218960]=1,e[55908]=0,67108864&A&&(e[55908]=3,e[55909]=e[110496+(r>>>6&12)>>2]),134217728&A&&(e[55908]=4,e[55909]=e[110512+(r>>>6&12)>>2]),A&=65504;;){if((0|f)!=(0|(o=(0|(r=o+1|0))<=169?r:0)))if((0|(r=e[216192+(o<<4)>>2]))!=3){if(r-5>>>0>1)continue}else d[218960]=0;break}for(e[55913]=e[50762],A=(A=A+32&131008)||64,e[50763]=A+e[50763],e[55684]=R(v[101997],7800)+(Q[102024]<<8)<<8,e[55704]=R(v[101998],9e3)+(Q[102025]<<8)<<8,W=e[50980],a=+(0|A),B=+(A>>>2|0),A=0;(0|A)!=7&&(o=v[(m=(r=A<<1)+t|0)+218>>1]<<8,f=R(A,80)+222176|0,m=v[m+164>>1],_=o+R(m,v[2+(r+c|0)>>1])<<8,e[f>>2]=_,w=+(0|_),O[f+16>>3]=w,O[f+48>>3]=16*(+(o+R(m,v[2+(r+l|0)>>1])<<8)-w)/B),o=(r=R(A,80))+222176|0,m=v[(_=t+(A<<1)|0)+182>>1],q=R(m,u[(f=A+c|0)+18|0])<<6,e[o+4>>2]=q,w=+(0|q),O[o+24>>3]=w,X=o,o=A+l|0,O[X+56>>3]=64*(+(R(m,u[o+18|0])<<6)-w)/a,(0|A)>(0|W)|A>>>0>5||(m=r+222176|0,q=v[_+200>>1],_=R(q,u[f+26|0])<<10,e[m+8>>2]=_,w=+(0|_),O[m+32>>3]=w,X=m- -64|0,m=q<<10,O[X>>3]=64*(+(0|R(m,u[o+26|0]))-w)/a,A>>>0<=2?(r=r+222176|0,f=R(m,u[f+32|0]),e[r+12>>2]=f,w=+(0|f),O[r+40>>3]=w,O[r+72>>3]=64*(+(0|R(m,u[o+32|0]))-w)/a):e[r+222188>>2]=_),(0|(A=A+1|0))!=8;);}for(;;){if(A=e[50762],!u[218960]&(0|A)==e[50763])break o;b:{h:{if(63&A){if(7&A)break b;y:if(!((0|(r=e[54736]))<=0||(0|(t=e[54735]))<=0))for(o=e[50826],A=1;;){if(e[(c=(l=A<<2)+o|0)>>2]=e[c>>2]+e[l+203312>>2],A>>>0>28|(0|A)>=(0|r))break y;if(l=(0|A)<(0|t),A=A+1|0,!l)break}if((0|(A=e[33073]))>255)break b;e[33073]=A+1;break b}if(A)if(e[50759]){if(r=e[50768]+e[50769]|0,e[50768]=r,r=(t=e[50766])?R(u[t+((0|(r>>=8))>=127?127:r)|0],e[50771])>>8:0,e[55911]=e[55911]+e[55915],t=(0|(t=e[55914]))<=23551?t:0,e[55914]=t+e[50761],t=(r+e[50770]|0)+R(e[33072],u[110528+(t>>6)|0]-128|0)|0,e[50767]=t,!(o=e[51291])&(0|(r=o?o<<12:t))>102399||(t=(0|r)<=102400?102400:r,e[50767]=t),(0|A)!=e[55913]){if(A=0,!((0|(f=e[50980]))<0)){for(;c=R(A,80),a=O[(r=c+222176|0)+48>>3]+O[r+16>>3],O[r+16>>3]=a,B=O[r+56>>3]+O[r+24>>3],O[r+24>>3]=B,w=O[r- -64>>3]+O[r+32>>3],O[r+32>>3]=w,o=ce(a)<2147483648?~~a:-2147483648,e[r>>2]=o,o=ce(w)<2147483648?~~w:-2147483648,e[r+8>>2]=o,l=ce(B)<2147483648?~~B:-2147483648,e[r+4>>2]=(0|l)>0?l:0,(0|A)>2||(a=O[(r=c+222176|0)+72>>3]+O[r+40>>3],O[r+40>>3]=a,o=ce(a)<2147483648?~~a:-2147483648),e[c+222188>>2]=o,(0|f)>=(0|(A=A+1|0)););if((0|A)>=8)break h}for(;(0|A)!=7&&(r=R(A,80)+222176|0,a=O[r+48>>3]+O[r+16>>3],O[r+16>>3]=a,o=ce(a)<2147483648?~~a:-2147483648,e[r>>2]=o),r=R(A,80)+222176|0,a=O[r+56>>3]+O[r+24>>3],O[r+24>>3]=a,o=ce(a)<2147483648?~~a:-2147483648,e[r+4>>2]=(0|o)>0?o:0,(0|(A=A+1|0))!=8;);}}else t=e[50767];else e[50826]=218976,e[54742]=0,e[54736]=wa(e[50767]<<4,218976,0),t=e[50767],e[54737]=890/(t>>12),e[54739]=(0|R(e[50781],R(e[50779],t>>8)))/8e4}if(e[55906]=t>>11,e[54735]=e[54736],e[55904]=R(e[50760],t>>7),e[55905]=e[50754]/(t>>12),r=1^(A=e[54742]),e[54742]=r,e[50826]=R(A,1600)+218976,e[54736]=wa(t<<4,R(r,1600)+218976|0,1),!(!(t=e[50759])|!e[51022]))for(B=O[25430],w=O[25429],A=1;e[(r=t+(A<<2)|0)+272>>2]&&(o=e[r+308>>2],r=R(A,40)+203456|0,E=Ea(B*+v[2+(R(A,80)+222176|0)>>1]),E*=a=mr(w*+(0|o)),E+=E,O[r+8>>3]=E,a*=-a,O[r+16>>3]=a,O[r>>3]=1-E-a),(0|(A=A+1|0))!=9;);}if(l=e[50762]+1|0,e[50762]=l,c=(A=e[50765])+e[55904]|0,e[50765]=c,(0|c)<0&(0|A)>0){if(m=e[55905],t=e[50800]+((0|m)/-2|0)|0,e[55907]=t,(0|(_=e[50763]))<(0|l))break o;if(W=e[54738]+1|0,e[54738]=W,f=e[50767],!((0|(A=(r=e[50980])+1|0))>8)&&(o=f<<3,1&r&&(e[203264+(A<<2)>>2]=(1+(e[R(A,80)+222176>>2]/(0|o)|0)|0)/2,A=r+2|0),(0|r)!=7))for(;r=203264+(A<<2)|0,q=R(A,80)+222176|0,e[r>>2]=(1+(e[q>>2]/(0|o)|0)|0)/2,e[r+4>>2]=(1+(e[q+80>>2]/(0|o)|0)|0)/2,(0|(A=A+2|0))!=9;);A=(0|R(e[50781],R(e[50779],f>>8)))/8e4|0,e[54739]=A;b:if(!((0|(r=e[55908]))<=0)){h:switch(r-3|0){case 0:if((_-l|0)>=m<<1)break b;e[55908]=2,A=(0|R(e[55909],A))/256|0,e[54739]=A;break b;case 1:e[55908]=2,A=(0|R(e[55909],A))/256|0,e[54739]=A;break b;default:break h}e[55908]=r-1}(r=e[55910])&&(o=A,A=e[55911]>>8,A=(0|R(o,u[r+((0|A)>=127?127:A)|0]))/128|0,e[54739]=A),(0|(r=e[e[32972]+92>>2]))>7||(r=15&(o=u[e[55912]+(106336+(r<<3)|0)|0]),(o=o>>>4|0)&&((0|o)!=15?(0|W)%(0|o)|0||(e[54739]=(0|R(A,r))/16):(e[55912]=0,e[54739]=(0|R(A,r))/16)))}else t=e[55907];if(l=t+1|0,e[55907]=l,r=c>>>16|0,o=0,!((0|l)<0|(0|l)>=e[50799])){if(!((0|(A=(t=e[50980])+1|0))>8)){if(f=1&(c=8-t|0),(0|t)!=7)for(m=-2&c,t=0;o=R(e[(_=(c=A<<2)+4|0)+203216>>2],v[106400+(R(r,e[_+203264>>2])>>>4&4094)>>1])+(R(e[c+203216>>2],v[106400+(R(r,e[c+203264>>2])>>>4&4094)>>1])+o|0)|0,A=A+2|0,(0|m)!=(0|(t=t+2|0)););f&&(o=R(e[(A<<=2)+203216>>2],v[106400+(R(r,e[A+203264>>2])>>>4&4094)>>1])+o|0)}o=R(u[l+132160|0],(0|o)/e[55906]|0)}if(A=1,(0|(l=e[54737]))<=0)t=r;else for(c=e[50826],t=r;o=R(e[c+(A<<2)>>2],v[106400+((65504&t)>>>4|0)>>1])+o|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if((0|(l=e[54735]))>=(0|A))for(c=e[50826];o=o-R(e[c+(A<<2)>>2],v[106400+((65504&t)>>>4|0)>>1])|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if(l=(0|(A=e[54728]))==64?o:R(A,o>>6),e[51022]){if(e[50759])for(r=YA(e[33209],0,1103515245,0),A=xe,A=Rn(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,B=+((16383&A)- -8192|0),t=e[50759],c=0,A=1;(o=e[272+(t+(A<<2)|0)>>2])&&(f=e[R(A,80)+222180>>2],r=R(A,40)+203456|0,a=O[r+32>>3],w=O[r+24>>3],O[r+32>>3]=w,a=a*O[r+16>>3]+(O[r>>3]*B+w*O[r+8>>3]),O[r+24>>3]=a,r=ce(a)<2147483648?~~a:-2147483648,c=R(r,R(o,f>>14))+c|0),(0|(A=A+1|0))!=9;);else c=0;l=l+c|0}t=0,(0|(A=e[50776]))>=e[50773]||(r=e[50778],t=e[50772],(c=e[50774])?(o=A+1|0,e[50776]=o,A=R(c,d[t+(A+r|0)|0])):(c=u[0|(t=t+(A+r|0)|0)],t=d[t+1|0],o=A+2|0,e[50776]=o,A=c|t<<8),t=(0|R(R(A,e[50780])>>10,e[50775]))/32|0,(0|(A=e[50777]))>(r+o|0)||(e[50778]=r+((0|R(A,3))/-4|0))),r=(A=e[51293])+1|0,e[51293]=r,A=((R(e[54739],l>>8)>>13)+t|0)+(R(e[50755],v[205184+(A<<1)>>1])>>8)|0,(0|r)>=5500&&(e[51293]=0),r=e[33073];b:{h:{if((0|(t=R(r,A)))>=8388608){if((0|r)>=(0|(c=8388608/(0|A)|0)))break h;break b}if((0|t)>-8388353||(0|r)<(0|(c=-8388608/(0|A)|0)))break b}r=c-1|0,e[33073]=r,t=R(A,r)}if(A=e[51290],e[51290]=A+1,r=A,A=t>>8,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=t>>>16,(r=e[50756])&&(r=e[r+8>>2])&&rt[0|r](A<<16>>16),t=(r=e[51292])+1|0,e[51292]=t,v[205184+(r<<1)>>1]=A,(0|t)>=5500&&(e[51292]=0),!(oe[54046]>=e[51290]+2>>>0))break}o=1;break i}e[50773]=0}e[54731]=e[54729],o=1,f=65535&A,t=u[218920],c=e[r+8>>2],l=e[r+12>>2],a=0,w=0,$=r=$+-64|0,m=e[50759];C:if((0|(A=e[m+132>>2]))!=6){if(!t){for(A-1>>>0<=4&&(e[55921]=A,e[55964]=e[110896+(A<<2)>>2]),A=e[m+88>>2],e[54741]=1,e[55922]=(0|A)/32,t=e[50758],A=e[50757];;){m:if((0|t)!=(0|(A=(0|(A=A+1|0))<=169?A:0)))if((0|(_=e[216192+(A<<4)>>2]))!=1){if(_-5>>>0>1)continue}else{if(e[54741]=0,A=e[8+(216192+(A<<4)|0)>>2],!(Q[l+4>>1]!=Q[A+4>>1]|Q[A+6>>1]!=Q[l+6>>1]|Q[A+8>>1]!=Q[l+8>>1]|Q[A+10>>1]!=Q[l+10>>1])&&Q[A+12>>1]==Q[l+12>>1])break m;e[54741]=2}break}for((Q[c+4>>1]!=Q[113564]|Q[c+6>>1]!=Q[113565]|Q[c+8>>1]!=Q[113566]|Q[c+10>>1]!=Q[113567]||Q[c+12>>1]!=Q[113568])&&(Sn(),e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0),A=Q[l+4>>1]|Q[l+6>>1]<<16,t=Q[l>>1]|Q[l+2>>1]<<16,v[113562]=t,v[113563]=t>>>16,v[113564]=A,v[113565]=A>>>16,A=Q[l+60>>1]|Q[l+62>>1]<<16,t=Q[l+56>>1]|Q[l+58>>1]<<16,v[113590]=t,v[113591]=t>>>16,v[113592]=A,v[113593]=A>>>16,A=Q[l+52>>1]|Q[l+54>>1]<<16,t=Q[l+48>>1]|Q[l+50>>1]<<16,v[113586]=t,v[113587]=t>>>16,v[113588]=A,v[113589]=A>>>16,A=Q[l+44>>1]|Q[l+46>>1]<<16,t=Q[l+40>>1]|Q[l+42>>1]<<16,v[113582]=t,v[113583]=t>>>16,v[113584]=A,v[113585]=A>>>16,A=Q[l+36>>1]|Q[l+38>>1]<<16,t=Q[l+32>>1]|Q[l+34>>1]<<16,v[113578]=t,v[113579]=t>>>16,v[113580]=A,v[113581]=A>>>16,A=Q[l+28>>1]|Q[l+30>>1]<<16,t=Q[l+24>>1]|Q[l+26>>1]<<16,v[113574]=t,v[113575]=t>>>16,v[113576]=A,v[113577]=A>>>16,A=Q[l+20>>1]|Q[l+22>>1]<<16,t=Q[l+16>>1]|Q[l+18>>1]<<16,v[113570]=t,v[113571]=t>>>16,v[113572]=A,v[113573]=A>>>16,A=Q[l+12>>1]|Q[l+14>>1]<<16,t=Q[l+8>>1]|Q[l+10>>1]<<16,v[113566]=t,v[113567]=t>>>16,v[113568]=A,v[113569]=A>>>16,B=+(0|f),(X=1&v[c>>1])?(A=u[c+39|0],e[56680]=A,O[28364]=A>>>0,O[28354]=+(u[l+39|0]-A<<6)/B,A=u[c+40|0],O[28366]=A>>>0,O[28356]=+(u[l+40|0]-A<<6)/B,A=u[c+41|0],e[56682]=A,O[28368]=A>>>0,O[28358]=+(u[l+41|0]-A<<6)/B,t=u[c+42|0],e[56684]=t,O[28370]=t>>>0,A=u[c+43|0],a=+(u[l+43|0]-A<<6)/B,w=+(u[l+42|0]-t<<6)/B,E=+(A>>>0)):(e[56728]=0,e[56729]=0,A=0,e[56680]=0,e[56708]=0,e[56709]=0,e[56732]=0,e[56733]=0,e[56712]=0,e[56713]=0,e[56682]=0,e[56736]=0,e[56737]=0,e[56716]=0,e[56717]=0,e[56684]=0,e[56740]=0,e[56741]=0,E=0),e[56688]=A,O[28360]=w,O[28372]=E,O[28362]=a,e[56692]=0,e[56748]=0,e[56749]=0,e[56694]=0,e[56752]=0,e[56753]=0,e[56696]=0,e[56756]=0,e[56757]=0,e[56700]=0,e[56760]=0,e[56761]=0,e[56704]=0,e[56764]=0,e[56765]=0,e[50764]=f,A=1;W=v[(_=(f=A<<1)+m|0)+164>>1],t=(Ge=R(A,80))+222896|0,w=+v[_+218>>1],a=.00390625*+(0|R(W,v[2+(c+f|0)>>1]))+w,O[t+16>>3]=a,q=ce(a)<2147483648?~~a:-2147483648,e[t>>2]=q,O[t+48>>3]=64*(.00390625*+(0|R(W,v[2+(l+f|0)>>1]))+w-a)/B,A>>>0<=3&&(t=Ge+222896|0,a=.00390625*+v[_+200>>1]*+(u[35+(A+c|0)|0]<<1),O[t+24>>3]=a,f=ce(a)<2147483648?~~a:-2147483648,e[t+4>>2]=f,O[t+56>>3]=64*(+(u[35+(A+l|0)|0]<<1)-a)/B),(0|(A=A+1|0))!=6;);if(a=+((A=u[c+40|0])<<1),O[27864]=a,t=e[56618],A||(a=+(0|t),O[27864]=a),A=ce(a)<2147483648?~~a:-2147483648,e[55724]=A,f=u[l+40|0],e[55730]=0,e[55731]=1079394304,e[55738]=0,e[55739]=0,e[55725]=89,A=1,O[27868]=64*(+(0|(f?f<<1:t))-a)/B,X)for(;t=R(A,80)+222896|0,m=u[(f=A+c|0)+56|0]<<2,e[t+12>>2]=m,a=+(0|m),O[t+40>>3]=a,m=A+l|0,O[t+72>>3]=64*(+(u[m+56|0]<<2)-a)/B,f=u[f+49|0],e[t+8>>2]=f,a=+(f>>>0),O[t+32>>3]=a,O[t- -64>>3]=64*(+u[m+49|0]-a)/B,(0|(A=A+1|0))!=7;);e[56606]=0}for(;;){if((0|(q=e[50764]))>(0|(l=e[56606]))){for(A=e[50767],e[56609]=e[55724],e[56619]=e[55725],e[56610]=e[55744],e[56611]=e[55764],e[56612]=e[55784],e[56613]=e[55804],X=R(A,10),e[56607]=(0|X)/4096,e[56620]=e[55745],e[56621]=e[55765],e[56622]=e[55785],e[56614]=e[55824],e[56630]=e[55746],e[56631]=e[55766],e[56632]=e[55786],e[56633]=e[55806],e[56634]=e[55826],e[56635]=e[55846],Ge=e[56680],e[56608]=Ge,c=e[56694],e[56656]=c,f=e[56696],e[56653]=f,m=e[56700],e[56655]=m,_=e[56684],e[56649]=_,e[56651]=e[56704],e[56654]=e[56688],e[56652]=e[56682],e[56650]=e[56692],A=0;t=R(A,80)+222896|0,a=O[t+48>>3]+O[t+16>>3],O[t+16>>3]=a,B=O[t+56>>3]+O[t+24>>3],O[t+24>>3]=B,w=O[t+72>>3]+O[t+40>>3],O[t+40>>3]=w,E=O[t- -64>>3]+O[t+32>>3],O[t+32>>3]=E,W=ce(a)<2147483648?~~a:-2147483648,e[t>>2]=W,W=ce(B)<2147483648?~~B:-2147483648,e[t+4>>2]=W,W=ce(w)<2147483648?~~w:-2147483648,e[t+12>>2]=W,W=ce(E)<2147483648?~~E:-2147483648,e[t+8>>2]=W,(0|(A=A+1|0))!=9;);for(a=O[28354]+O[28364],O[28364]=a,O[28366]=O[28356]+O[28366],B=O[28358]+O[28368],O[28368]=B,w=O[28360]+O[28370],O[28370]=w,E=O[28362]+O[28372],O[28372]=E,A=ce(a)<2147483648?~~a:-2147483648,e[56680]=A,A=ce(B)<2147483648?~~B:-2147483648,e[56682]=A,A=ce(w)<2147483648?~~w:-2147483648,e[56684]=A,A=ce(E)<2147483648?~~E:-2147483648,e[56688]=A,a=O[28374]+0,O[28374]=a,A=ce(a)<2147483648?~~a:-2147483648,e[56692]=A,a=O[28376]+0,O[28376]=a,A=ce(a)<2147483648?~~a:-2147483648,e[56694]=A,a=O[28378]+0,O[28378]=a,A=ce(a)<2147483648?~~a:-2147483648,e[56696]=A,a=O[28380]+0,O[28380]=a,A=ce(a)<2147483648?~~a:-2147483648,e[56700]=A,a=O[28382]+0,O[28382]=a,A=ce(a)<2147483648?~~a:-2147483648,e[56704]=A,e[56659]=e[55724],e[56669]=e[55725],e[56660]=e[55744],e[56670]=e[55745],e[56661]=e[55764],e[56671]=e[55765],e[56662]=e[55784],e[56672]=e[55785],e[56663]=e[55804],e[56664]=e[55824],e[56665]=e[55844],A=e[50768]+e[50769]|0,e[50768]=A,A>>=8,e[50767]=e[50770]+(R(e[50771],u[e[50766]+((0|A)>=127?127:A)|0])>>8),A=q-l|0,e[55923]=(0|A)>=64?64:A,e[55961]=(0|X)/40960,A=Ge-7|0,e[56658]=(0|A)>0?A:0,O[27974]=_>>>0<=87?.001*+v[111136+(_<<1)>>1]*.05:0,O[27975]=f>>>0<=87?.001*+v[111136+(f<<1)>>1]*.25:0,O[27973]=c>>>0<=87?.001*+v[111136+(c<<1)>>1]:0,O[27971]=m>>>0<=87?.001*+v[111136+(m<<1)>>1]*.05:0,a=(A=e[56629])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.6:0,O[r>>3]=a,a=(A=e[56630])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.4:0,O[r+8>>3]=a,a=(A=e[56631])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.15:0,O[r+16>>3]=a,a=(A=e[56632])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.06:0,O[r+24>>3]=a,a=(A=e[56633])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.04:0,O[r+32>>3]=a,a=(A=e[56634])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.022:0,O[r+40>>3]=a,a=(A=e[56635])>>>0<=87?.001*+v[111136+(A<<1)>>1]*.03:0,O[r+48>>3]=a,a=(A=(0|(A=e[56657]-3|0))<=0?57:A)>>>0<=87?.001*+v[111136+(A<<1)>>1]:0,O[27977]=a/+e[55964],B=O[27968],w=O[27967],A=1;t=(l=A<<6)+223664|0,E=(a=mr(w*+e[(f=(c=A<<2)+226428|0)+48>>2]))*-a,O[t+216>>3]=E,a*=Ea(B*+e[f+8>>2]),a+=a,O[t+208>>3]=a,J=1-a-E,O[t+200>>3]=J,A>>>0<=5&&(f=e[(c=c+226428|0)+208>>2],t=l+223664|0,ue=(re=mr(w*+e[c+248>>2]))*Ea(B*+(0|f)),ue+=ue,O[t+1488>>3]=ue,re*=-re,O[t+1496>>3]=re,Me=1-ue-re,O[t+1480>>3]=Me,O[t+256>>3]=.015625*(re-E),O[t+248>>3]=.015625*(ue-a),O[t+240>>3]=.015625*(Me-J)),(0|(A=A+1|0))!=10;);for(re=(a=mr(w*+e[56619]))*-a,O[27985]=re,ue=(a*=Ea(B*+(0-e[56609]|0)))+a,O[27984]=ue,a=1-ue-re,O[27983]=a,a!=0&&(a=1/a,O[27983]=a,re*=E=-a,O[27985]=re,ue*=E,O[27984]=ue),J=(E=mr(w*+e[56669]))*-E,O[28145]=J,Me=(E*=Ea(B*+(0-e[56659]|0)))+E,O[28144]=Me,E=1-Me-J,O[28143]=E,E!=0&&(E=1/E,O[28143]=E,J*=de=-E,O[28145]=J,Me*=de,O[28144]=Me),O[27990]=.015625*(J-re),O[27989]=.015625*(Me-ue),O[27988]=.015625*(E-a),A=0;c=e[(l=226428+(A<<2)|0)+8>>2],t=223664+(A<<6)|0,E=(a=mr(w*+e[l+128>>2]))*Ea(B*+(0|c)),E+=E,O[t+848>>3]=E,a*=-a,O[t+856>>3]=a,O[t+840>>3]=O[r+(A<<3)>>3]*(1-E-a),(0|(A=A+1|0))!=7;);if(w=(a=mr(w*+(e[55918]/2|0)))*-a,O[28137]=w,a*=Ea(0*B),a+=a,O[28136]=a,O[28135]=1-a-w,A=1,(0|$e())!=1)continue;break C}break}A=1,e[54741]>0&&(e[54741]=0,e[55963]=64,e[56606]=l+-64,e[55923]=64,(0|$e())==1)||(A=0)}else{if($=_=$-752|0,!t){cA(A=_+376|0,0,376),Ta(m,c,A),Ta(m,l,A=cA(_,0,376)),t=e[50768]+R(e[50769],f>>>6|0)|0,e[50768]=t,t>>=8,t=e[50770]+(R(e[50771],u[e[50766]+((0|t)>=127?127:t)|0])>>8)|0,e[50767]=t,O[A+368>>3]=(0|t)/4096|0,e[50773]&&(O[A+736>>3]=O[A+736>>3]/5,O[A+360>>3]=O[A+360>>3]/5),t=e[e[56797]+4>>2],rt[e[e[t>>2]>>2]](t,A+376|0,110,110,-1,0),l=f-110|0,m=e[50758],t=e[50757];m:{for(;;){if((0|m)!=(0|(t=(t+1|0)%170|0))&&!((W=e[216192+(t<<4)>>2])-5>>>0<2)){if(c=1,(0|W)!=1)continue;break m}break}l=f-220|0,c=0}(0|l)>0&&(t=e[e[56797]+4>>2],rt[e[e[t>>2]>>2]](t,A,l,l||1,-1,0)),c||(e[A+352>>2]=0,e[A+356>>2]=0,O[A>>3]=O[A+368>>3],t=e[e[56797]+4>>2],rt[e[e[t>>2]>>2]](t,A,55,55,-1,0),e[A+360>>2]=0,e[A+364>>2]=0,t=e[e[56797]+4>>2],rt[e[e[t>>2]>>2]](t,A,55,55,-1,0))}A=e[e[56797]+8>>2],t=e[51290],f=0|rt[e[e[A>>2]>>2]](A,e[54046]-t>>>1|0,t),m=e[51290];m:if(f&&!((0|(t=e[50776]))>=(0|(Ge=e[50773]))))for(ne=e[50777],iA=(0|R(ne,3))/-4|0,a=.0009765625*+e[50780],W=e[50772],l=e[50778],bA=e[50775],q=e[50774],A=0;;){if(X=u[W+(c=t+l|0)|0],q?X=R(q,X<<24>>24):(t=t+1|0,e[50776]=t,X|=d[W+(c=t+l|0)|0]<<8),X=ce(B=a*+(0|X))<2147483648?~~B:-2147483648,v[(Ye=m+(A<<1)|0)>>1]=Q[Ye>>1]+((0|R(X,bA))/40|0),(0|c)>=(0|ne)&&(l=l+iA|0,e[50778]=l),t=t+1|0,e[50776]=t,(0|t)>=(0|Ge))break m;if(!(f>>>0>(A=A+1|0)>>>0))break}A=m+(f<<1)|0,e[51290]=A,$=_+752|0,A=oe[54046]<=A>>>0}if($=r- -64|0,A)break i;break o}e[50781]=A||100;break o}qA(A,e[r+8>>2]);break o}A=e[r+8>>2],e[50759]=ct(203816,A,1344),e[50801]=e[A+108>>2]?105792:106064,A=(0|R(e[A+120>>2],26))/100|0,e[33038]=A,(0|(o=e[50754]))<=11e3&&(d[203300]=1,e[33038]=A<<1),e[54728]=e[50982],A=e[50979],t=e[50978],cA(205184,0,11e3),e[51293]=0,A=(t=(c=(0|(l=e[50789]))>0)?130:(0|t)>=5499?5499:t)?c?l:(0|A)>=100?100:A:0,e[50755]=A,t=(0|R(t,o))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|R(500-A|0,(0|R(u[e[50797]+105596|0],(0|R(e[50787],55))/100|0))/16|0))/500,A=256,(0|(t=(0|(t=e[50785]))>=101?101:t))>=51&&(A=256+(((R(t,25)-1250&65535)>>>0)/50|0)|0),v[101990]=(0|R(v[102026],A))/256,v[101991]=(0|R(v[102027],A))/256,v[101992]=(0|R(v[102028],A))/256,v[101993]=(0|R(v[102029],A))/256,v[101994]=(0|R(v[102030],A))/256,v[101995]=(0|R(v[102031],A))/256,A=e[50790],v[101999]=(0|R(v[102035],R(A,-6)+256|0))/256,v[102e3]=(0|R(v[102036],R(A,-3)+256|0))/256,fa(8,0,e[50986],0,e[51290]),HA(e[r+8>>2]);break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[55911]=0,e[55915]=A?2097152/(0|A)|0:0,e[55910]=r,A=(0|R(t,e[33037]))/16|0,e[50779]=A,e[50780]=(0|R(R(A,e[50985]),15))/100;break o}fa(t>>8,A,e[r+8>>2],e[r+12>>2],c)}o=0,A=e[50757]+1|0,e[50757]=(0|A)<=169?A:0}if(d[218920]=o,!((c=e[51290])>>>0>2]=0,e[A>>2]=0,e[A+24>>2]=e[34438];s:if(2&(A=e[32538])){if(c=e[34388],(-2&A)==2&&(!(r=t?c:0)|e[r>>2]!=8||(0|(r=e[r+28>>2]))!=e[34389]&&(e[34389]=r)),o=1,(0|t)<2)break s;for(;;){r=t?c+R(o,36)|0:0;i:{o:switch(0|A){case 2:case 3:if(!r|e[r>>2]!=8||(0|(r=e[r+28>>2]))==e[34389])break i;e[34389]=r;break i;case 0:break o;default:break i}(A=e[34440])?(rt[0|A](l,0,r),t=e[34436],A=e[32538]):A=0}if(!((0|(o=o+1|0))<(0|t)))break}}else if((A=e[34440])&&0|rt[0|A](l,r,e[34388]))break r;if(!$A(1)&&!(170-((0|(A=e[50757]-e[50758]|0))<=0?A+170|0:A)|0||(A=e[34388],e[A>>2]=0,e[A+4>>2]=e[34437],e[A+24>>2]=e[34438],OA(1))))break}if(t=0,2&u[130152]||!(A=e[34440])||!(0|rt[0|A](0,0,e[34388])))break A}OA(2),t=268439295}if((0|t)<=268437502){if(!t|(0|t)==268436479|(0|t)!=268437247)break e;return}}}function $A(A){var t,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0;$=t=$-720|0,r=e[47198],A||(e[36443]=0,e[36442]=1,e[36444]=0,e[36440]=0,e[36441]=0,A=e[50758],e[36454]=A,e[36427]=-1,e[36424]=-1,e[36446]=0,e[36447]=0,e[36439]=-1,e[36426]=0,e[36455]=A,e[36448]=0,e[36449]=0,e[36450]=0,e[36451]=0,e[36452]=0,e[36453]=0,me(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0));e:{A:if(!((0|(A=e[36442]))>997|e[36423]<=(0|A)))for(X=r>>>1&1,q=t+48|4,re=t+348|0,ue=t+652|0,J=e[32322],B=e[32320],Me=t+60|0,Ge=t+648|0,ne=t+56|0,Ye=t+620|0,_=t- -64|0;;){if(a=145840+(A<<5)|0,!(A=e[50756])|!e[A>>2]||(e[t+12>>2]=0,$r(A=t+16|0,e[a+8>>2],a,0,t+12|0),r=zi(A),o=u[a+17|0],A=216192+(e[50758]<<4)|0,e[A>>2]=16,e[A+8>>2]=o,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),A=1,(0|(o=(0|(r=e[50757]-e[50758]|0))<=0?r+170|0:r))<=(0|((r=u[a+17|0])?(0|r)==2?25:15:10)))break e;if(E=e[36442],2&u[0|a])for(w=2047&Q[a+4>>1];;){if(o=e[36443],f=127&(r=e[198304+(o<<2)>>2])){A=r>>>8|0,e[36443]=o+1;r:{s:{i:switch((31&r)-2|0){case 0:qA(96&r|8,A),Xa(2);break r;case 5:if((0|A)>=e[34064]||!e[(f=(o=A<<4)+136272|0)+4>>2])break r;cr(10,0),A=216192+(e[50758]<<4)|0,e[A>>2]=6,f=e[f+4>>2],e[A+8>>2]=e[8+(o+136272|0)>>2]+44,e[A+12>>2]=5376,e[A+4>>2]=f;break s;case 8:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[47353],o=216192+(e[50758]<<4)|0,e[o>>2]=778,e[o+8>>2]=A,e[o+4>>2]=f+w&16777215;break s;case 9:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[33284],o=216192+(e[50758]<<4)|0,e[o>>2]=1034,e[o+8>>2]=A,e[o+4>>2]=f+1&16777215;break s;default:break i}cr(10,0),o=216192+(e[50758]<<4)|0,e[o>>2]=12,e[o+8>>2]=A,e[o+4>>2]=f}A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}if(!(128&r))continue}break}(A=u[a+20|0])&&(1&d[e[47192]+48|0]&u[a+17|0]==2|1&d[e[a+8>>2]+7|0]||(e[36426]=0),r=e[47353]+(2047&Q[a+4>>1])|0,e[36445]=r,4&A&&((0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(o=e[47568],A=216192+(e[50758]<<4)|0,e[A>>2]=522,e[A+8>>2]=o,e[A+4>>2]=16777215&r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),1&d[a+20|0]&&(r=Q[a+4>>1],o=e[36444],e[36444]=o+1,(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(w=e[36445],f=e[47355],A=216192+(e[50758]<<4)|0,e[A>>2]=266,e[A+8>>2]=o+f,e[A+4>>2]=16777215&w|(63488&r)<<13,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0))),(0|(A=e[36441]))>0&&(r=216192+(e[36425]<<4)|0,e[r+4>>2]||(e[r+4>>2]=A),e[36441]=0),A=E+1<<5,r=E-1<<5,!(o=u[a+18|0])|2&u[e[a+8>>2]+7|0]||cr(o,1),f=A+145840|0,l=r+145840|0,w=1;r:{s:{if(e[47198]&&(m=e[a+8>>2],u[m+10|0]!=15)){i:if(u[a+17|0]==2)switch(u[l+17|0]-3|0){case 0:case 5:break s;default:break i}w=0,$r(t+704|0,m,a,X,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}i:switch(u[a+17|0]){case 0:cr(e[a+12>>2],0),d[a+23|0]=u[e[a+8>>2]+14|0];break r;case 4:r=e[a+8>>2],(0|(A=u[f+17|0]))==2|!u[f+20|0]&(0|A)==3||(v[a>>1]=8192|Q[a>>1]),2&u[r+7|0]&&(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[_>>2]=0,e[_+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,XA(0,1,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[_>>2]=e[t+640>>2],e[36424]<0&&(o=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=o,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,w=u[f+22|0],o=u[f+21|0],f=e[129280+(u[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,w|=o<<16,o=(0|o)==255,e[A+12>>2]=o?3604556:w,e[A+8>>2]=o?B:f,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),FA(r,0,t+48|0,a,0)),XA(0,0,a,t+552|0,145784),e[t+552>>2]=4|e[t+552>>2],(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],me(),e[36427]=-1,e[36422]=0,(A=e[t+624>>2])&&(o=A,A=e[t+644>>2],Ja(o,2,e[t+596>>2]<<1,e[t+552>>2],0,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 6:XA(0,0,a,t+552|0,145784),8&u[0|a]&&(A=e[a+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],me(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],Ja(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32))),A=e[a+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],me(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],Ja(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 5:o=e[a+8>>2],e[q+40>>2]=0,e[(A=q)+32>>2]=0,e[A+36>>2]=0,e[A+24>>2]=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+8>>2]=0,e[A+12>>2]=0,e[A>>2]=0,e[A+4>>2]=0,e[t+48>>2]=4;o:{c:{u:{l:switch(u[f+17|0]-2|0){case 0:r=u[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[a+22|0],m=u[a+21|0],w=e[129280+(u[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?B:w,w=1;break c;case 1:break l;default:break u}if(!u[f+20|0]){r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[f+22|0],m=u[f+21|0],w=e[129280+(u[f+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?B:w,w=1;break c}}if(w=0,e[36424]>=0)break o;r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[a+22|0],m=u[a+21|0],w=e[129280+(u[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?B:w,w=0}W=e[50758],e[36424]=W,e[36440]=0,e[(W=216192+(W<<4)|0)>>2]=9,e[W+4>>2]=0,e[W+12>>2]=c?3604556:255&r|(255&m)<<16,e[W+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}o:if(!(2&u[o+7|0])&u[l+17|0]!=2)8&u[0|a]&&cr(50,0);else{if(XA(0,1,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],FA(o,0,t+48|0,a,0),!(8&u[0|a]))break o;cr(25,1),FA(o,0,t+48|0,a,0)}o:if(w){if(e[36455]!=e[36454])break o;e[36455]=e[50758]}else v[a>>1]=8192|Q[a>>1];if(XA(0,0,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],FA(o,0,t+48|0,a,0),u[a+20|0]|u[84+(145840+(E<<5)|0)|0]||((0|(A=u[f+17|0]))==7&&(cr(20,0),A=u[f+17|0]),(255&A)!=6))break r;cr(12,0);break r;case 7:o:{c:{u:{l:{n:switch((A=u[f+17|0])-2|0){case 1:break l;case 0:break n;default:break u}r=u[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,w=u[a+22|0],A=u[a+21|0],o=e[129280+(u[a+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?B:o;break c}r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,w=u[f+22|0],A=u[f+21|0],o=e[129280+(u[f+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?B:o;break c}if(e[36424]>=0)break o;r=u[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,w=u[a+22|0],A=u[a+21|0],o=e[129280+(u[a+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?B:o}o=e[50758],e[36424]=o,e[36440]=0,e[(o=216192+(o<<4)|0)>>2]=9,e[o+4>>2]=0,e[o+12>>2]=m?3604556:(255&A)<<16|w,e[o+8>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,A=u[f+17|0]}o:{c:{u:switch((255&A)-2|0){case 1:if(u[f+20|0])break c;break;case 0:break u;default:break c}if(e[36455]!=e[36454])break o;e[36455]=e[50758];break o}v[a>>1]=8192|Q[a>>1]}XA(0,0,a,t+552|0,145784),e[t+56>>2]=0,e[t+60>>2]=0,e[_>>2]=0,e[_+4>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[t+88>>2]=0,e[t+56>>2]=e[t+620>>2],e[_>>2]=e[t+640>>2],e[t+80>>2]=e[t+656>>2],e[t+48>>2]=0,e[t+52>>2]=0,e[t+76>>2]=e[t+636>>2],e[t+92>>2]=e[t+596>>2]<<1,8&u[0|a]&&FA(e[a+8>>2],0,t+48|0,a,0),FA(e[a+8>>2],0,t+48|0,a,0);break r;case 8:if(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[_>>2]=0,e[_+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,1&d[0|a]||(r=u[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,o=u[a+22|0],r=u[a+21|0],w=e[129280+(u[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:o,e[A+8>>2]=r?B:w,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),XA(0,0,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+92>>2]=e[t+596>>2]<<1,u[f+17|0]==2){e[36455]==e[36454]&&(e[36455]=e[50758]),FA(e[a+8>>2],0,t+48|0,a,0);break r}if(!(!(1&d[0|a])|u[l+17|0]!=2)){FA(e[a+8>>2],0,t+48|0,a,0);break r}e[36426]=0,FA(e[a+8>>2],0,t+48|0,a,0),e[36426]=0;break r;case 3:e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[_>>2]=0,e[_+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,o=e[e[a+8>>2]+4>>2],1&d[0|a]||(r=u[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,w=u[a+22|0],r=u[a+21|0],m=e[129280+(u[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,w|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:w,e[A+8>>2]=r?B:m,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),u[f+17|0]!=2|e[36455]!=e[36454]||(e[36455]=e[50758]),XA(0,0,a,t+552|0,145784),(0|(A=e[t+584>>2]-u[a+18|0]|0))>0&&cr(A,1),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],e[t+92>>2]=e[t+596>>2]<<1,FA(e[a+8>>2],0,t+48|0,a,o<<24>>31&5);break r;case 2:break i;default:break r}m=e[a+8>>2]}E=u[a+3|0],e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[_>>2]=0,e[_+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,XA(0,0,a,t+552|0,145784),A=e[t+628>>2],e[t+56>>2]=A,e[t+92>>2]=e[t+596>>2]<<1;s:{if(!A||(c=0,o=Ge,r=Me,2&u[t+552|0])){if(u[l+17|0]?(c=0,XA(0,0,l,t+400|0,0),A=e[t+476>>2],e[t+56>>2]=A,!A|!(2&u[t+400|0])||(e[t+72>>2]=e[t+496>>2],c=1),r=e[t+512>>2],e[t+84>>2]=e[t+508>>2],e[t+88>>2]=r):c=0,A)break s;e[t+48>>2]=1,e[t+52>>2]=1,o=Ye,r=ne}e[r>>2]=e[o>>2]}e[t+64>>2]=e[t+640>>2],r=u[a+16|0],A=0,(o=u[a+7|0])?(qs(o,t+96|0),r=jn(e[t+220>>2]),(0|(o=e[t+224>>2]))<=0||(A=jn(o))):r=e[129280+(r<<2)>>2],e[36455]==e[36454]&&(e[36455]=e[50758]),o=(o=15&E)>>>0<2?1:o>>>0>6?3:2;s:{i:switch(u[l+17|0]-3|0){case 2:case 4:c=u[a+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[a+22|0],l=u[a+21|0],(0|(A=e[36440]))<=0||(0|(E=e[36424]))<0||e[(E=216192+(E<<4)|0)+4>>2]||(e[E+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?B:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,FA(m,1,t+48|0,a,o);break s;case 0:case 5:c=u[a+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,FA(m,1,t+48|0,a,o),c=u[a+22|0],l=u[a+21|0],(0|(A=e[36440]))<=0||(0|(E=e[36424]))<0||e[(E=216192+(E<<4)|0)+4>>2]||(e[E+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?B:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0;break s;default:break i}c?(c=u[a+22|0],(0|(l=e[36440]))<=0||(0|(E=e[36424]))<0||e[(E=216192+(E<<4)|0)+4>>2]||(e[E+4>>2]=l),l=e[50758],e[36424]=l,e[36440]=0,e[(l=216192+(l<<4)|0)>>2]=9,e[l+4>>2]=0,e[l+12>>2]=(c|c<<16)-983040,e[l+8>>2]=J,l=e[50758]+1|0,e[50758]=(0|l)<=169?l:0,c=u[a+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)>>2]=8,e[l+4>>2]=0,e[l+12>>2]=c-1,e[l+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,FA(m,1,t+48|0,a,o),l=u[a+21|0],c=u[a+22|0],(0|(A=e[36440]))<=0||(0|(E=e[36424]))<0||e[(E=216192+(E<<4)|0)+4>>2]||(e[E+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?B:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0):(1&d[0|a]||(c=u[a+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[a+22|0],l=u[a+21|0],(0|(A=e[36440]))<=0||(0|(E=e[36424]))<0||e[(E=216192+(E<<4)|0)+4>>2]||(e[E+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?B:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),FA(m,1,t+48|0,a,o))}!e[47198]|1^w||($r(t+704|0,e[a+8>>2],a,X,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),e[t+56>>2]=e[t+620>>2],e[t+84>>2]=0,e[t+88>>2]=0,e[t+64>>2]=e[t+640>>2],r=e[t+632>>2],e[t+68>>2]=r,A=ue;s:{if(!r&&(!u[f+17|0]||(e[t+72>>2]=0,XA(0,0,f,t+248|0,0),e[t+52>>2]=1,A=e[t+368>>2],e[t+84>>2]=e[t+364>>2],e[t+88>>2]=A,r=e[t+328>>2],e[t+68>>2]=r,A=re,!r)))break s;e[t+72>>2]=e[A>>2]}FA(m,2,t+48|0,a,o)}if(A=e[36442]+1|0,e[36442]=A,(0|A)>997)break A;if(!(e[36423]>(0|A)))break}(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],me(),e[36427]=-1,A=0,e[36423]<=0||(r=e[47568],o=e[33284],(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))>=6&&(A=216192+(e[50758]<<4)|0,e[A>>2]=1290,e[A+8>>2]=r,e[A+4>>2]=16777215&o,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),e[36423]=0,A=0)}return $=t+720|0,A}function RA(A,t,r,a){var o,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0;$=o=$-48|0;e:{if(r>>>0<=2){for(bA=e[(r<<=2)+124732>>2],MA=e[r+124720>>2];(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);W=1;A:{r:switch(r-43|0){case 0:case 2:break r;default:break A}W=(0|r)==45?-1:1,(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r])}A:{r:{for(;;){if(d[f+84056|0]==(32|r)){if(f>>>0>6||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))!=8)continue;break r}break}if((0|f)!=3){if((0|f)==8)break r;if(!a|f>>>0<4)break A;if((0|f)==8)break r}if((0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),!(!a|f>>>0<4))for(r=(0|r)<0;r||(e[t+4>>2]=e[t+4>>2]-1),(f=f-1|0)>>>0>3;);}$=B=$-16|0,ae(De(De(0|W)*De(1/0))),(t=2147483647&(m=T(2)))-8388608>>>0<=2130706431?(r=t,r<<=25,a=(t=t>>>7|0)+1065353216|0):(r=m<<25,a=m>>>7|2147418112,t>>>0>=2139095040||(r=0,a=0,t&&(jt(B,r=t,0,0,0,(t=Te(t))+81|0),w=e[B>>2],E=e[B+4>>2],r=e[B+8>>2],a=65536^e[B+12>>2]|16265-t<<16))),e[o>>2]=w,e[o+4>>2]=E,e[o+8>>2]=r,e[o+12>>2]=-2147483648&m|a,$=B+16|0,w=e[o+8>>2],E=e[o+12>>2],m=e[o>>2],_=e[o+4>>2];break e}A:{r:{s:if(!f){for(f=0;;){if(d[f+84473|0]!=(32|r))break s;if(f>>>0>1||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))==3)break}break r}s:switch(0|f){case 0:if((0|r)==48){if((0|(f=e[t+4>>2]))==e[t+104>>2]?f=Fe(t):(e[t+4>>2]=f+1,f=u[0|f]),(-33&f)==88){$=c=$-432|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=Fe(t):(e[t+4>>2]=r+1,f=u[0|r]);i:{o:{for(;;){if((0|f)!=48){if((0|f)!=46)break i;if((0|(r=e[t+4>>2]))!=e[t+104>>2]){e[t+4>>2]=r+1,f=u[0|r];break o}break}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(iA=1,e[t+4>>2]=r+1,f=u[0|r]):(iA=1,f=Fe(t))}f=Fe(t)}if(re=1,(0|f)==48){for(;ue=(r=ue)-1|0,J=J-!r|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=Fe(t):(e[t+4>>2]=r+1,f=u[0|r]),(0|f)==48;);iA=1}}for(_=1073676288;;){i:{r=32|f;o:{if(!((jA=f-48|0)>>>0<10)){if((0|f)!=46&r-97>>>0>=6)break i;if((0|f)==46){if(re)break i;re=1,ue=w,J=E;break o}}r=(0|f)>57?r-87|0:jA,(0|E)<=0&w>>>0<=7|(0|E)<0?l=r+(l<<4)|0:!E&w>>>0<=28?(Ma(c+48|0,r),eA(c+32|0,Ye,de,m,_,0,0,0,1073414144),Ye=e[c+32>>2],de=e[c+36>>2],m=e[c+40>>2],_=e[c+44>>2],eA(c+16|0,e[c+48>>2],e[c+52>>2],e[c+56>>2],e[c+60>>2],Ye,de,m,_),or(c,e[c+16>>2],e[c+20>>2],e[c+24>>2],e[c+28>>2],B,q,Ge,ne),Ge=e[c+8>>2],ne=e[c+12>>2],B=e[c>>2],q=e[c+4>>2]):X|!r||(eA(c+80|0,Ye,de,m,_,0,0,0,1073610752),or(c- -64|0,e[c+80>>2],e[c+84>>2],e[c+88>>2],e[c+92>>2],B,q,Ge,ne),Ge=e[c+72>>2],ne=e[c+76>>2],X=1,B=e[c+64>>2],q=e[c+68>>2]),E=(w=w+1|0)?E:E+1|0,iA=1}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(e[t+4>>2]=r+1,f=u[0|r]):f=Fe(t);continue}break}i:if(iA){if((0|E)<=0&w>>>0<=7|(0|E)<0)for(m=w,_=E;l<<=4,(0|(m=m+1|0))!=8|(_=m?_:_+1|0););o:{c:{u:{if((-33&f)==80){if(m=Ka(t,a),_=r=xe,m|(0|r)!=-2147483648)break o;if(a){if((0|(r=e[t+116>>2]))>0|(0|r)>=0)break u;break c}B=0,q=0,ja(t,0,0),r=0,t=0;break i}if(m=0,_=0,e[t+116>>2]<0)break o}e[t+4>>2]=e[t+4>>2]-1}m=0,_=0}if(l)if(r=m+((t=re?ue:w)<<2)|0,t=(E=(re?J:E)<<2|t>>>30)+_|0,(w=r-32|0)>>>0>0-bA>>>0&(0|(t=E=(r>>>0>>0?t+1|0:t)-(r>>>0<32)|0))>=0|(0|t)>0)e[56798]=68,Ma(c+160|0,W),eA(c+144|0,e[c+160>>2],e[c+164>>2],e[c+168>>2],e[c+172>>2],-1,-1,-1,2147418111),eA(c+128|0,e[c+144>>2],e[c+148>>2],e[c+152>>2],e[c+156>>2],-1,-1,-1,2147418111),B=e[c+128>>2],q=e[c+132>>2],r=e[c+140>>2],t=e[c+136>>2];else if((0|E)>=(0|(r=(t=bA-226|0)>>31))&t>>>0<=w>>>0|(0|r)<(0|E)){if((0|l)>=0)for(;or(c+416|0,B,q,Ge,ne,0,0,0,-1073807360),or(c+400|0,B,q,Ge,ne,(t=r=(0|(t=Ri(B,q,Ge,ne,1073610752)))>=0)?e[c+416>>2]:B,t?e[c+420>>2]:q,t?e[c+424>>2]:Ge,t?e[c+428>>2]:ne),w=(t=w)-1|0,E=E-!t|0,Ge=e[c+408>>2],ne=e[c+412>>2],B=e[c+400>>2],q=e[c+404>>2],(0|(l=r|l<<1))>=0;);t=E-((bA>>31)+(w>>>0>>0)|0)|0,(0|(r=(r=32+(w-bA|0)|0)>>>0>>0&(0|(t=r>>>0<32?t+1|0:t))<=0|(0|t)<0?(0|r)>0?r:0:MA))>=113?(Ma(c+384|0,W),ue=e[c+392>>2],J=e[c+396>>2],Ye=e[c+384>>2],de=e[c+388>>2],m=0,t=0):(ea(c+352|0,Ls(1,144-r|0)),Ma(c+336|0,W),Ye=e[c+336>>2],de=e[c+340>>2],ue=e[c+344>>2],J=e[c+348>>2],_n(c+368|0,e[c+352>>2],e[c+356>>2],e[c+360>>2],e[c+364>>2],Ye,de,ue,J),Me=e[c+376>>2],WA=e[c+380>>2],m=e[c+372>>2],t=e[c+368>>2]),ys(c+320|0,(a=!(1&l)&!!(0|Vr(B,q,Ge,ne,0,0,0,0))&(0|r)<32)+l|0),eA(c+304|0,Ye,de,ue,J,e[c+320>>2],e[c+324>>2],e[c+328>>2],e[c+332>>2]),r=t,or(c+272|0,e[c+304>>2],e[c+308>>2],e[c+312>>2],e[c+316>>2],t,m,Me,WA),eA(c+288|0,Ye,de,ue,J,(t=a)?0:B,t?0:q,t?0:Ge,t?0:ne),or(c+256|0,e[c+288>>2],e[c+292>>2],e[c+296>>2],e[c+300>>2],e[c+272>>2],e[c+276>>2],e[c+280>>2],e[c+284>>2]),Gi(c+240|0,e[c+256>>2],e[c+260>>2],e[c+264>>2],e[c+268>>2],r,m,Me,WA),Vr(t=e[c+240>>2],a=e[c+244>>2],r=e[c+248>>2],m=e[c+252>>2],0,0,0,0)||(e[56798]=68),yA(c+224|0,t,a,r,m,w),B=e[c+224>>2],q=e[c+228>>2],r=e[c+236>>2],t=e[c+232>>2]}else e[56798]=68,Ma(c+208|0,W),eA(c+192|0,e[c+208>>2],e[c+212>>2],e[c+216>>2],e[c+220>>2],0,0,0,65536),eA(c+176|0,e[c+192>>2],e[c+196>>2],e[c+200>>2],e[c+204>>2],0,0,0,65536),B=e[c+176>>2],q=e[c+180>>2],r=e[c+188>>2],t=e[c+184>>2];else ea(c+112|0,0*+(0|W)),B=e[c+112>>2],q=e[c+116>>2],r=e[c+124>>2],t=e[c+120>>2]}else{o:{c:{if((0|(r=e[t+116>>2]))>0|(0|r)>=0){if(r=e[t+4>>2],e[t+4>>2]=r-1,!a)break c;if(e[t+4>>2]=r-2,!re)break o;e[t+4>>2]=r-3;break o}if(a)break o}ja(t,0,0)}ea(c+96|0,0*+(0|W)),B=e[c+96>>2],q=e[c+100>>2],r=e[c+108>>2],t=e[c+104>>2]}e[o+16>>2]=B,e[o+20>>2]=q,e[o+24>>2]=t,e[o+28>>2]=r,$=c+432|0,w=e[o+24>>2],E=e[o+28>>2],m=e[o+16>>2],_=e[o+20>>2];break e}e[t+116>>2]<0||(e[t+4>>2]=e[t+4>>2]-1)}f=t,Me=W,c=a,t=0,W=0,$=l=$-8976|0,WA=(jA=0-bA|0)-MA|0;i:{o:{for(;;){if((0|r)!=48){if((0|r)!=46)break i;if((0|(r=e[f+4>>2]))!=e[f+104>>2]){e[f+4>>2]=r+1,r=u[0|r];break o}break}(0|(t=e[f+4>>2]))!=e[f+104>>2]?(e[f+4>>2]=t+1,r=u[0|t]):r=Fe(f),t=1}r=Fe(f)}if(X=1,(0|r)==48){for(;w=(t=w)-1|0,E=E-!t|0,(0|(t=e[f+4>>2]))==e[f+104>>2]?r=Fe(f):(e[f+4>>2]=t+1,r=u[0|t]),(0|r)==48;);t=1}}e[l+784>>2]=0;i:{o:{c:{u:{l:{if((a=(0|r)==46)|(B=r-48|0)>>>0<=9)for(;;){n:{if(1&a){if(!X){w=m,E=_,X=1;break n}a=!t;break l}_=(m=m+1|0)?_:_+1|0,(0|W)<=2044?(iA=(0|r)==48?iA:m,t=(l+784|0)+(W<<2)|0,re&&(B=(R(e[t>>2],10)+r|0)-48|0),e[t>>2]=B,t=1,re=(r=(0|(a=re+1|0))==9)?0:a,W=r+W|0):(0|r)!=48&&(e[l+8960>>2]=1|e[l+8960>>2],iA=18396)}if((0|(r=e[f+4>>2]))==e[f+104>>2]?r=Fe(f):(e[f+4>>2]=r+1,r=u[0|r]),!((a=(0|r)==46)|(B=r-48|0)>>>0<10))break}if(w=X?w:m,E=X?E:_,!(!t|(-33&r)!=69)){if(B=Ka(f,c),q=t=xe,!(B|(0|t)!=-2147483648)){if(!c)break c;B=0,q=0,e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}E=E+q|0,E=(w=w+B|0)>>>0>>0?E+1|0:E;break o}if(a=!t,(0|r)<0)break u}e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}if(!a)break o;e[56798]=28}m=0,_=0,ja(f,0,0),r=0,t=0;break i}if(t=e[l+784>>2])if(m>>>0>9&(0|_)>=0|(0|_)>0|(0|m)!=(0|w)|(0|E)!=(0|_)|(t>>>MA|0?(0|MA)<=30:0))if(w>>>0>jA>>>1>>>0&(0|E)>=0|(0|E)>0)e[56798]=68,Ma(l+96|0,Me),eA(l+80|0,e[l+96>>2],e[l+100>>2],e[l+104>>2],e[l+108>>2],-1,-1,-1,2147418111),eA(l- -64|0,e[l+80>>2],e[l+84>>2],e[l+88>>2],e[l+92>>2],-1,-1,-1,2147418111),m=e[l+64>>2],_=e[l+68>>2],r=e[l+76>>2],t=e[l+72>>2];else if((r=w>>>0<(t=bA-226|0)>>>0)&(0|E)<=(0|(t>>=31))|(0|t)>(0|E))e[56798]=68,Ma(l+144|0,Me),eA(l+128|0,e[l+144>>2],e[l+148>>2],e[l+152>>2],e[l+156>>2],0,0,0,65536),eA(l+112|0,e[l+128>>2],e[l+132>>2],e[l+136>>2],e[l+140>>2],0,0,0,65536),m=e[l+112>>2],_=e[l+116>>2],r=e[l+124>>2],t=e[l+120>>2];else{if(re){if((0|re)<=8){for(f=e[(t=(l+784|0)+(W<<2)|0)>>2];f=R(f,10),(0|(re=re+1|0))!=9;);e[t>>2]=f}W=W+1|0}if(X=w,!((0|iA)>(0|w)|(0|iA)>=9|(0|w)>17)){if((0|X)==9){Ma(l+192|0,Me),ys(l+176|0,e[l+784>>2]),eA(l+160|0,e[l+192>>2],e[l+196>>2],e[l+200>>2],e[l+204>>2],e[l+176>>2],e[l+180>>2],e[l+184>>2],e[l+188>>2]),m=e[l+160>>2],_=e[l+164>>2],r=e[l+172>>2],t=e[l+168>>2];break i}if((0|X)<=8){Ma(l+272|0,Me),ys(l+256|0,e[l+784>>2]),eA(l+240|0,e[l+272>>2],e[l+276>>2],e[l+280>>2],e[l+284>>2],e[l+256>>2],e[l+260>>2],e[l+264>>2],e[l+268>>2]),Ma(l+224|0,e[124720+(0-X<<2)>>2]),ua(l+208|0,e[l+240>>2],e[l+244>>2],e[l+248>>2],e[l+252>>2],e[l+224>>2],e[l+228>>2],e[l+232>>2],e[l+236>>2]),m=e[l+208>>2],_=e[l+212>>2],r=e[l+220>>2],t=e[l+216>>2];break i}if(t=27+(R(X,-3)+MA|0)|0,!((r=e[l+784>>2])>>>t|0&&(0|t)<=30)){Ma(l+352|0,Me),ys(l+336|0,r),eA(l+320|0,e[l+352>>2],e[l+356>>2],e[l+360>>2],e[l+364>>2],e[l+336>>2],e[l+340>>2],e[l+344>>2],e[l+348>>2]),Ma(l+304|0,e[124648+(X<<2)>>2]),eA(l+288|0,e[l+320>>2],e[l+324>>2],e[l+328>>2],e[l+332>>2],e[l+304>>2],e[l+308>>2],e[l+312>>2],e[l+316>>2]),m=e[l+288>>2],_=e[l+292>>2],r=e[l+300>>2],t=e[l+296>>2];break i}}for(;!e[(l+784|0)+((W=(r=W)-1|0)<<2)>>2];);if(re=0,t=(0|X)%9|0){if(a=0,t=(0|X)<0?t+9|0:t,r){for(E=1e9/(0|(w=e[124720+(0-t<<2)>>2]))|0,B=0,f=0;m=(m=B)+(W=((_=e[(B=(l+784|0)+(f<<2)|0)>>2])>>>0)/(w>>>0)|0)|0,e[B>>2]=m,a=(m=!m&(0|a)==(0|f))?a+1&2047:a,X=m?X-9|0:X,B=R(E,_-R(w,W)|0),(0|(f=f+1|0))!=(0|r););B&&(e[(l+784|0)+(r<<2)>>2]=B,r=r+1|0)}else r=0;X=9+(X-t|0)|0}else a=0;for(;;){f=(l+784|0)+(a<<2)|0;o:{for(;;){if(((0|X)!=36|oe[f>>2]>=10384593)&(0|X)>=36)break o;for(W=r+2047|0,B=0,t=r;r=t,w=B,B=(t=e[(W=(l+784|0)+((m=2047&W)<<2)|0)>>2])<<29,t=_=t>>>3|0,!(E=(w=w+B|0)>>>0>>0?t+1|0:t)&w>>>0<1000000001?B=0:w=(t=w)-YA(B=xs(t,E,1e9),xe,1e9,0)|0,e[W>>2]=w,t=(0|m)!=(r-1&2047)||(0|a)==(0|m)||w?r:m,W=m-1|0,(0|a)!=(0|m););if(re=re-29|0,B)break}(0|(a=a-1&2047))==(0|t)&&(f=r=(w=l+784|0)+((t+2046&2047)<<2)|0,E=e[r>>2],r=t-1&2047,e[f>>2]=E|e[w+(r<<2)>>2]),X=X+9|0,e[(l+784|0)+(a<<2)>>2]=B;continue}break}o:{c:for(;;){for(w=r+1&2047,B=(l+784|0)+((r-1&2047)<<2)|0;;){m=(0|X)>45?9:1;u:{for(;;){t=a,f=0;l:{for(;;){if((0|(a=t+f&2047))!=(0|r)&&!((a=e[(l+784|0)+(a<<2)>>2])>>>0<(E=e[124672+(f<<2)>>2])>>>0)){if(a>>>0>E>>>0)break l;if((0|(f=f+1|0))!=4)continue}break}if((0|X)==36){for(w=0,E=0,f=0,m=0,_=0;(0|(a=t+f&2047))==(0|r)&&(e[780+(l+((r=r+1&2047)<<2)|0)>>2]=0),ys(l+768|0,e[(l+784|0)+(a<<2)>>2]),eA(l+752|0,w,E,m,_,0,0,1342177280,1075633366),or(l+736|0,e[l+752>>2],e[l+756>>2],e[l+760>>2],e[l+764>>2],e[l+768>>2],e[l+772>>2],e[l+776>>2],e[l+780>>2]),m=e[l+744>>2],_=e[l+748>>2],w=e[l+736>>2],E=e[l+740>>2],(0|(f=f+1|0))!=4;);if(Ma(l+720|0,Me),eA(l+704|0,w,E,m,_,e[l+720>>2],e[l+724>>2],e[l+728>>2],e[l+732>>2]),m=e[l+712>>2],_=e[l+716>>2],w=0,E=0,B=e[l+704>>2],q=e[l+708>>2],(0|(a=(W=(0|(f=(c=re+113|0)-bA|0))<(0|MA))?(0|f)>0?f:0:MA))<=112)break u;break o}}if(re=m+re|0,a=r,(0|t)!=(0|r))break}for(_=1e9>>>m|0,W=~(-1<>2])>>>m|0)|0,e[f>>2]=E,a=(E=!E&(0|t)==(0|a))?a+1&2047:a,X=E?X-9|0:X,f=R(_,c&W),(0|r)!=(0|(t=t+1&2047)););if(!f)continue;if((0|a)!=(0|w)){e[(l+784|0)+(r<<2)>>2]=f,r=w;continue c}e[B>>2]=1|e[B>>2];continue}break}break}ea(l+656|0,Ls(1,225-a|0)),_n(l+688|0,e[l+656>>2],e[l+660>>2],e[l+664>>2],e[l+668>>2],B,q,m,_),Ye=e[l+696>>2],de=e[l+700>>2],Ge=e[l+688>>2],ne=e[l+692>>2],ea(l+640|0,Ls(1,113-a|0)),Ua(l+672|0,B,q,m,_,e[l+640>>2],e[l+644>>2],e[l+648>>2],e[l+652>>2]),Gi(l+624|0,B,q,m,_,w=e[l+672>>2],E=e[l+676>>2],ue=e[l+680>>2],J=e[l+684>>2]),or(l+608|0,Ge,ne,Ye,de,e[l+624>>2],e[l+628>>2],e[l+632>>2],e[l+636>>2]),m=e[l+616>>2],_=e[l+620>>2],B=e[l+608>>2],q=e[l+612>>2]}if((0|(X=t+4&2047))!=(0|r)){o:if((X=e[(l+784|0)+(X<<2)>>2])>>>0<=499999999){if(!X&(t+5&2047)==(0|r))break o;ea(l+496|0,.25*+(0|Me)),or(l+480|0,w,E,ue,J,e[l+496>>2],e[l+500>>2],e[l+504>>2],e[l+508>>2]),ue=e[l+488>>2],J=e[l+492>>2],w=e[l+480>>2],E=e[l+484>>2]}else(0|X)==5e8?(it=+(0|Me),(t+5&2047)!=(0|r)?(ea(l+560|0,.75*it),or(l+544|0,w,E,ue,J,e[l+560>>2],e[l+564>>2],e[l+568>>2],e[l+572>>2]),ue=e[l+552>>2],J=e[l+556>>2],w=e[l+544>>2],E=e[l+548>>2]):(ea(l+528|0,.5*it),or(l+512|0,w,E,ue,J,e[l+528>>2],e[l+532>>2],e[l+536>>2],e[l+540>>2]),ue=e[l+520>>2],J=e[l+524>>2],w=e[l+512>>2],E=e[l+516>>2])):(ea(l+592|0,.75*+(0|Me)),or(l+576|0,w,E,ue,J,e[l+592>>2],e[l+596>>2],e[l+600>>2],e[l+604>>2]),ue=e[l+584>>2],J=e[l+588>>2],w=e[l+576>>2],E=e[l+580>>2]);(0|a)>111||(Ua(l+464|0,w,E,ue,J,0,0,0,1073676288),Vr(e[l+464>>2],e[l+468>>2],e[l+472>>2],e[l+476>>2],0,0,0,0)||(or(l+448|0,w,E,ue,J,0,0,0,1073676288),ue=e[l+456>>2],J=e[l+460>>2],w=e[l+448>>2],E=e[l+452>>2]))}or(l+432|0,B,q,m,_,w,E,ue,J),Gi(l+416|0,e[l+432>>2],e[l+436>>2],e[l+440>>2],e[l+444>>2],Ge,ne,Ye,de),m=e[l+424>>2],_=e[l+428>>2],B=e[l+416>>2],q=e[l+420>>2],(WA-2|0)>=(2147483647&c)||(e[l+408>>2]=m,e[l+412>>2]=2147483647&_,e[l+400>>2]=B,e[l+404>>2]=q,eA(l+384|0,B,q,m,_,0,0,0,1073610752),m=(t=(0|(t=Ri(e[l+400>>2],e[l+404>>2],e[l+408>>2],e[l+412>>2],1081081856)))>=0)?e[l+392>>2]:m,_=t?e[l+396>>2]:_,B=t?e[l+384>>2]:B,q=t?e[l+388>>2]:q,re=t+re|0,!(!!(0|Vr(w,E,ue,J,0,0,0,0))&(t?W&(0|a)!=(0|f):W))&(re+110|0)<=(0|WA)||(e[56798]=68)),yA(l+368|0,B,q,m,_,re),m=e[l+368>>2],_=e[l+372>>2],r=e[l+380>>2],t=e[l+376>>2]}else Ma(l+48|0,Me),ys(l+32|0,t),eA(l+16|0,e[l+48>>2],e[l+52>>2],e[l+56>>2],e[l+60>>2],e[l+32>>2],e[l+36>>2],e[l+40>>2],e[l+44>>2]),m=e[l+16>>2],_=e[l+20>>2],r=e[l+28>>2],t=e[l+24>>2];else ea(l,0*+(0|Me)),m=e[l>>2],_=e[l+4>>2],r=e[l+12>>2],t=e[l+8>>2]}e[o+40>>2]=t,e[o+44>>2]=r,e[o+32>>2]=m,e[o+36>>2]=_,$=l+8976|0,w=e[o+40>>2],E=e[o+44>>2],m=e[o+32>>2],_=e[o+36>>2];break e;case 3:break r;default:break s}(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);break A}if((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)!=40){if(E=2147450880,e[t+116>>2]<0)break e;e[t+4>>2]=e[t+4>>2]-1;break e}for(f=1;(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Fe(t):(e[t+4>>2]=r+1,r=u[0|r]),r-48>>>0<10|r-65>>>0<26|(0|r)==95||!(r-97>>>0>=26);)f=f+1|0;if(E=2147450880,(0|r)==41)break e;(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);r:{if(a){if(f)break r;break e}break A}for(;f=f-1|0,(0|r)>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),f;);break e}e[56798]=28,ja(t,0,0)}E=0}e[A>>2]=m,e[A+4>>2]=_,e[A+8>>2]=w,e[A+12>>2]=E,$=o+48|0}function FA(A,t,r,a,o){var l,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0;if($=l=$-112|0,e[r+8>>2]){bA=e[50754]/70|0,q=(B=e[a+12>>2])||256;e:if((0|t)!=2){if((0|t)==1){A:if(u[A+11|0]!=3)switch(u[a-15|0]-3|0){case 0:case 5:break A;default:break e}q=(0|(B=e[e[47192]+44>>2]))<(0|q)?q:B}}else{if((0|(B=e[e[47192]+80>>2]))<=0|!(8&u[0|a]|B>>>0<=u[A+14|0]|32&u[A+6|0]))break e;bA<<=1}if(e[36436]=0,J=A,MA=t,w=a,$=X=$-16|0,A=e[34460]+e[r+8>>2]|0,t=(t=u[A+2|0])>>>0>=24?24:t,e[X+12>>2]=t,f=e[r+12>>2]+e[r+24>>2]|0,e[36422]=f,t){for(B=A+4|0,c=1&v[A+4>>1];A=145488+(E<<3)|0,a=B+(c?E<<6:R(E,44))|0,e[A+4>>2]=a,W=Q[a>>1],v[A+2>>1]=W,v[A>>1]=u[a+16|0],m=2&W?E:m,(0|(E=E+1|0))!=(0|t););B=145488,(0|m)<=0||((0|MA)!=1?(t=t-m|0,e[X+12>>2]=t,B=145488+(m<<3)|0):(t=m+1|0,e[X+12>>2]=t,B=145488))}else t=0,B=145488;if(!(!e[r+4>>2]|e[r+20>>2]|u[J+11|0]!=2)){if(c=e[r+36>>2],a=e[r+40>>2],A=0,(0|(t=e[X+12>>2]))>=2){m=c>>>12|0,W=a>>>26&7,Me=a>>>18&248,re=R(ue=63&a,50),ne=63&(Ye=c>>>6|0),E=c<<1&126,de=R(a>>>16&31,50)-750|0,iA=R(a>>>11&31,50)-750|0,Ge=R(a>>>6&31,50)-750|0;e:{A:if((0|MA)!=1){if(!(m|ue))break e;if(8&m?(t=e[4+(B+((f=t-1|0)<<3)|0)>>2],v[t>>1]<0?A=t:(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,f=Q[t+20>>1]|Q[t+22>>1]<<16,A=177888+(A<<6)|0,c=Q[t+16>>1]|Q[t+18>>1]<<16,v[A+16>>1]=c,v[A+18>>1]=c>>>16,v[A+20>>1]=f,v[A+22>>1]=f>>>16,f=Q[t+4>>1]|Q[t+6>>1]<<16,c=Q[t>>1]|Q[t+2>>1]<<16,v[A>>1]=c,v[A+2>>1]=c>>>16,v[A+4>>1]=f,v[A+6>>1]=f>>>16,f=Q[t+12>>1]|Q[t+14>>1]<<16,c=Q[t+8>>1]|Q[t+10>>1]<<16,v[A+8>>1]=c,v[A+10>>1]=c>>>16,v[A+12>>1]=f,v[A+14>>1]=f>>>16,f=Q[t+28>>1]|Q[t+30>>1]<<16,c=Q[t+24>>1]|Q[t+26>>1]<<16,v[A+24>>1]=c,v[A+26>>1]=c>>>16,v[A+28>>1]=f,v[A+30>>1]=f>>>16,f=Q[t+36>>1]|Q[t+38>>1]<<16,c=Q[t+32>>1]|Q[t+34>>1]<<16,v[A+32>>1]=c,v[A+34>>1]=c>>>16,v[A+36>>1]=f,v[A+38>>1]=f>>>16,f=Q[t+44>>1]|Q[t+46>>1]<<16,c=Q[t+40>>1]|Q[t+42>>1]<<16,v[A+40>>1]=c,v[A+42>>1]=c>>>16,v[A+44>>1]=f,v[A+46>>1]=f>>>16,f=Q[t+52>>1]|Q[t+54>>1]<<16,c=Q[t+48>>1]|Q[t+50>>1]<<16,v[A+48>>1]=c,v[A+50>>1]=c>>>16,v[A+52>>1]=f,v[A+54>>1]=f>>>16,f=Q[t+60>>1]|Q[t+62>>1]<<16,t=Q[t+56>>1]|Q[t+58>>1]<<16,v[A+56>>1]=t,v[A+58>>1]=t>>>16,v[A+60>>1]=f,v[A+62>>1]=f>>>16,d[A+16|0]=0,v[A>>1]=32768|Q[A>>1],f=e[X+12>>2]-1|0),e[4+(B+(f<<3)|0)>>2]=A,t=1792,(0|(f=v[A+4>>1]))<300||(t=1536,f>>>0<400||(t=f>>>0<500?1280:1024)),e[36436]=t,c=35):(e[X+12>>2]=t+1,v[(A=(f=B+(t<<3)|0)-8|0)>>1]=E,t=e[A+4>>2],A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(Ye=A<<6)+177888|0)&&(c=Q[t+4>>1]|Q[t+6>>1]<<16,_=Q[t>>1]|Q[t+2>>1]<<16,v[A>>1]=_,v[A+2>>1]=_>>>16,v[A+4>>1]=c,v[A+6>>1]=c>>>16,c=Q[t+60>>1]|Q[t+62>>1]<<16,_=Q[t+56>>1]|Q[t+58>>1]<<16,v[A+56>>1]=_,v[A+58>>1]=_>>>16,v[A+60>>1]=c,v[A+62>>1]=c>>>16,c=Q[t+52>>1]|Q[t+54>>1]<<16,_=Q[t+48>>1]|Q[t+50>>1]<<16,v[A+48>>1]=_,v[A+50>>1]=_>>>16,v[A+52>>1]=c,v[A+54>>1]=c>>>16,c=Q[t+44>>1]|Q[t+46>>1]<<16,_=Q[t+40>>1]|Q[t+42>>1]<<16,v[A+40>>1]=_,v[A+42>>1]=_>>>16,v[A+44>>1]=c,v[A+46>>1]=c>>>16,c=Q[t+36>>1]|Q[t+38>>1]<<16,_=Q[t+32>>1]|Q[t+34>>1]<<16,v[A+32>>1]=_,v[A+34>>1]=_>>>16,v[A+36>>1]=c,v[A+38>>1]=c>>>16,c=Q[t+28>>1]|Q[t+30>>1]<<16,_=Q[t+24>>1]|Q[t+26>>1]<<16,v[A+24>>1]=_,v[A+26>>1]=_>>>16,v[A+28>>1]=c,v[A+30>>1]=c>>>16,c=Q[t+20>>1]|Q[t+22>>1]<<16,_=Q[t+16>>1]|Q[t+18>>1]<<16,v[A+16>>1]=_,v[A+18>>1]=_>>>16,v[A+20>>1]=c,v[A+22>>1]=c>>>16,c=Q[t+12>>1]|Q[t+14>>1]<<16,t=Q[t+8>>1]|Q[t+10>>1]<<16,v[A+8>>1]=t,v[A+10>>1]=t>>>16,v[A+12>>1]=c,v[A+14>>1]=c>>>16,d[Ye+177904|0]=0,v[A>>1]=32768|Q[A>>1]),v[f>>1]=0,e[f+4>>2]=A,E>>>0>=37&&(e[36422]=(E+e[36422]|0)-36),c=ne<<1,ue&&ke(A,re,Ge,iA,W,de,Me,m)),e[e[32972]+132>>2]||(t=u[A+17|0])&&(t=v[102896+(((0|(t=(c<<6>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|R(t,u[A+18|0]))/512,d[A+19|0]=(0|R(t,u[A+19|0]))/512,d[A+20|0]=(0|R(t,u[A+20|0]))/512,d[A+21|0]=(0|R(t,u[A+21|0]))/512,d[A+22|0]=(0|R(t,u[A+22|0]))/512,d[A+23|0]=(0|R(t,u[A+23|0]))/512,d[A+24|0]=(0|R(t,u[A+24|0]))/512,d[A+25|0]=(0|R(t,u[A+25|0]))/512),a-536870912>>>0<=1073741823){if(W=e[44469],(0|(f=e[X+12>>2]))>0)for(A=R(a>>>29|0,10)+102854|0,Me=v[A+4>>1],ue=v[A+2>>1],re=v[A>>1],de=v[A+6>>1],iA=v[A+8>>1],c=0;t=e[(Ge=B+(c<<3)|0)+4>>2],v[t>>1]<0?A=t:(A=(ne=(W=(0|(A=W+1|0))<=169?A:0)<<6)+177888|0)?(a=Q[t+4>>1]|Q[t+6>>1]<<16,f=Q[t>>1]|Q[t+2>>1]<<16,v[A>>1]=f,v[A+2>>1]=f>>>16,v[A+4>>1]=a,v[A+6>>1]=a>>>16,a=Q[t+60>>1]|Q[t+62>>1]<<16,f=Q[t+56>>1]|Q[t+58>>1]<<16,v[A+56>>1]=f,v[A+58>>1]=f>>>16,v[A+60>>1]=a,v[A+62>>1]=a>>>16,a=Q[t+52>>1]|Q[t+54>>1]<<16,f=Q[t+48>>1]|Q[t+50>>1]<<16,v[A+48>>1]=f,v[A+50>>1]=f>>>16,v[A+52>>1]=a,v[A+54>>1]=a>>>16,a=Q[t+44>>1]|Q[t+46>>1]<<16,f=Q[t+40>>1]|Q[t+42>>1]<<16,v[A+40>>1]=f,v[A+42>>1]=f>>>16,v[A+44>>1]=a,v[A+46>>1]=a>>>16,a=Q[t+36>>1]|Q[t+38>>1]<<16,f=Q[t+32>>1]|Q[t+34>>1]<<16,v[A+32>>1]=f,v[A+34>>1]=f>>>16,v[A+36>>1]=a,v[A+38>>1]=a>>>16,a=Q[t+28>>1]|Q[t+30>>1]<<16,f=Q[t+24>>1]|Q[t+26>>1]<<16,v[A+24>>1]=f,v[A+26>>1]=f>>>16,v[A+28>>1]=a,v[A+30>>1]=a>>>16,a=Q[t+20>>1]|Q[t+22>>1]<<16,f=Q[t+16>>1]|Q[t+18>>1]<<16,v[A+16>>1]=f,v[A+18>>1]=f>>>16,v[A+20>>1]=a,v[A+22>>1]=a>>>16,a=Q[t+12>>1]|Q[t+14>>1]<<16,t=Q[t+8>>1]|Q[t+10>>1]<<16,v[A+8>>1]=t,v[A+10>>1]=t>>>16,v[A+12>>1]=a,v[A+14>>1]=a>>>16,d[ne+177904|0]=0,v[A>>1]=32768|Q[A>>1],f=e[X+12>>2]):A=0,e[Ge+4>>2]=A,v[A+8>>1]=(0|R(Me,v[A+8>>1]))/256,v[A+6>>1]=(0|R(ue,v[A+6>>1]))/256,v[A+4>>1]=(0|R(re,v[A+4>>1]))/256,v[A+12>>1]=(0|R(iA,v[A+12>>1]))/256,v[A+10>>1]=(0|R(de,v[A+10>>1]))/256,(0|f)>(0|(c=c+1|0)););e[44469]=W}if(!A)break e}else{t=e[B+4>>2],(0|(f=v[t>>1]))<0?A=t:(a=(0|(a=e[44469]+1|0))<=169?a:0,e[44469]=a,(a=(f=a<<6)+177888|0)&&(A=Q[t+4>>1]|Q[t+6>>1]<<16,_=Q[t>>1]|Q[t+2>>1]<<16,v[a>>1]=_,v[a+2>>1]=_>>>16,v[a+4>>1]=A,v[a+6>>1]=A>>>16,A=Q[t+60>>1]|Q[t+62>>1]<<16,_=Q[t+56>>1]|Q[t+58>>1]<<16,v[a+56>>1]=_,v[a+58>>1]=_>>>16,v[a+60>>1]=A,v[a+62>>1]=A>>>16,A=Q[t+52>>1]|Q[t+54>>1]<<16,_=Q[t+48>>1]|Q[t+50>>1]<<16,v[a+48>>1]=_,v[a+50>>1]=_>>>16,v[a+52>>1]=A,v[a+54>>1]=A>>>16,A=Q[t+44>>1]|Q[t+46>>1]<<16,_=Q[t+40>>1]|Q[t+42>>1]<<16,v[a+40>>1]=_,v[a+42>>1]=_>>>16,v[a+44>>1]=A,v[a+46>>1]=A>>>16,A=Q[t+36>>1]|Q[t+38>>1]<<16,_=Q[t+32>>1]|Q[t+34>>1]<<16,v[a+32>>1]=_,v[a+34>>1]=_>>>16,v[a+36>>1]=A,v[a+38>>1]=A>>>16,A=Q[t+28>>1]|Q[t+30>>1]<<16,_=Q[t+24>>1]|Q[t+26>>1]<<16,v[a+24>>1]=_,v[a+26>>1]=_>>>16,v[a+28>>1]=A,v[a+30>>1]=A>>>16,A=Q[t+20>>1]|Q[t+22>>1]<<16,_=Q[t+16>>1]|Q[t+18>>1]<<16,v[a+16>>1]=_,v[a+18>>1]=_>>>16,v[a+20>>1]=A,v[a+22>>1]=A>>>16,A=Q[t+12>>1]|Q[t+14>>1]<<16,t=Q[t+8>>1]|Q[t+10>>1]<<16,v[a+8>>1]=t,v[a+10>>1]=t>>>16,v[a+12>>1]=A,v[a+14>>1]=A>>>16,d[f+177904|0]=0,f=-32768|Q[a>>1],v[a>>1]=f,A=a)),e[B+4>>2]=A,v[B>>1]=E||50,v[B+2>>1]=16384|Q[B+2>>1],v[A>>1]=16384|f,f=e[B+12>>2],t=u[f+17|0],a=e[32972],e[a+132>>2]&&(d[A+39|0]=u[f+39|0]-4);r:if(ue){if(2048&c){t=(R(t,31&Ye)>>>0)/30|0,e[a+132>>2]||(a=u[A+17|0])&&(t=v[102896+(((0|(t=(t<<6>>>0)/(a>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|R(t,u[A+18|0]))/512,d[A+19|0]=(0|R(t,u[A+19|0]))/512,d[A+20|0]=(0|R(t,u[A+20|0]))/512,d[A+21|0]=(0|R(t,u[A+21|0]))/512,d[A+22|0]=(0|R(t,u[A+22|0]))/512,d[A+23|0]=(0|R(t,u[A+23|0]))/512,d[A+24|0]=(0|R(t,u[A+24|0]))/512,d[A+25|0]=(0|R(t,u[A+25|0]))/512),ke(A,re,Ge,iA,W,de,Me,m);break r}if(ke(A,re,Ge,iA,W,de,Me,m),e[e[32972]+132>>2]||!(t=u[A+17|0]))break r;t=v[102896+(((0|(t=(ne<<7>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|R(t,u[A+18|0]))/512,d[A+19|0]=(0|R(t,u[A+19|0]))/512,d[A+20|0]=(0|R(t,u[A+20|0]))/512,d[A+21|0]=(0|R(t,u[A+21|0]))/512,d[A+22|0]=(0|R(t,u[A+22|0]))/512,d[A+23|0]=(0|R(t,u[A+23|0]))/512,d[A+24|0]=(0|R(t,u[A+24|0]))/512,d[A+25|0]=(0|R(t,u[A+25|0]))/512}else if(a=e[a+132>>2],8&m){if(a||!(a=u[A+17|0]))break r;t=((16320&R(t,48))>>>0)/(a>>>0)|0,t=v[102896+((t>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|R(t,u[A+18|0]))/512,d[A+19|0]=(0|R(t,u[A+19|0]))/512,d[A+20|0]=(0|R(t,u[A+20|0]))/512,d[A+21|0]=(0|R(t,u[A+21|0]))/512,d[A+22|0]=(0|R(t,u[A+22|0]))/512,d[A+23|0]=(0|R(t,u[A+23|0]))/512,d[A+24|0]=(0|R(t,u[A+24|0]))/512,d[A+25|0]=(0|R(t,u[A+25|0]))/512}else a||(t=u[A+17|0])&&(t=v[102896+(((t=1792/(t>>>0)|0)>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|R(t,u[A+18|0]))/512,d[A+19|0]=(0|R(t,u[A+19|0]))/512,d[A+20|0]=(0|R(t,u[A+20|0]))/512,d[A+21|0]=(0|R(t,u[A+21|0]))/512,d[A+22|0]=(0|R(t,u[A+22|0]))/512,d[A+23|0]=(0|R(t,u[A+23|0]))/512,d[A+24|0]=(0|R(t,u[A+24|0]))/512,d[A+25|0]=(0|R(t,u[A+25|0]))/512);if(!(8&m))break A;t=2816,(0|(a=v[A+4>>1]))<300||(t=2560,a>>>0<400||(t=a>>>0<500?2304:2048)),e[36436]=t}4&m&&(v[A>>1]=32|Q[A>>1]),2&m&&(v[A>>1]=16|Q[A>>1])}64&m&&cr(20,0),A=E&m<<27>>31}else A=0;f=A+e[36422]|0,e[36422]=f,t=e[X+12>>2]}if((0|(a=t-1|0))<=0)c=0;else{if(A=0,E=0,c=0,t-2>>>0>=3)for(Me=-4&a,W=0;c=(((v[(m=E<<3)+B>>1]+c|0)+v[B+(8|m)>>1]|0)+v[B+(16|m)>>1]|0)+v[B+(24|m)>>1]|0,E=E+4|0,(0|Me)!=(0|(W=W+4|0)););if(m=3&a)for(;c=v[B+(E<<3)>>1]+c|0,E=E+1|0,(0|m)!=(0|(A=A+1|0)););}if(A=t,(m=e[r+20>>2])&&(A=a,E=m+e[34460]|0,(W=u[E+2|0])&&(ue=Q[E+4>>1],v[B+(a<<3)>>1]=u[E+20|0],m=1,A=t,(0|W)!=1))){if(Me=E+4|0,ue&=1,de=1&(E=W-1|0),(0|W)!=2)for(iA=-2&E,W=0;Ge=Me+(m<<6)|0,ne=Me+R(m,44)|0,Ye=u[(re=ue?Ge:ne)+16|0],e[(E=B+(A<<3)|0)+4>>2]=re,v[E>>1]=Ye,v[E+2>>1]=Q[re>>1],Ge=u[(re=ue?Ge- -64|0:ne+44|0)+16|0],e[E+12>>2]=re,v[E+8>>1]=Ge,v[E+10>>1]=Q[re>>1],m=m+2|0,A=A+2|0,(0|iA)!=(0|(W=W+2|0)););de&&(m=Me+(ue?m<<6:R(m,44))|0,W=u[m+16|0],e[(E=B+(A<<3)|0)+4>>2]=m,v[E>>1]=W,v[E+2>>1]=Q[m>>1],A=A+1|0)}e:if(!((0|c)<=0)){A:{r:switch(MA-1|0){case 1:if(m=(0|(m=(e[r+44>>2]+f|0)-45|0))<=10?10:m,8&u[0|w]&&(m=m+(u[e[36128]+14|0]<<1)|0),(0|a)<=0)break e;if(w=(m<<8)/(0|c)|0,E=0,(0|t)!=2)for(t=-2&a,m=0;v[(c=(f=E<<3)+B|0)>>1]=(0|R(w,v[c>>1]))/256,v[(f=B+(8|f)|0)>>1]=(0|R(w,v[f>>1]))/256,E=E+2|0,(0|t)!=(0|(m=m+2|0)););if(!(1&a))break e;v[(t=B+(E<<3)|0)>>1]=(0|R(w,v[t>>1]))/256;break e;case 0:if(e[r>>2]!=1||(0|(m=e[r+44>>2]))>129)break A;v[B>>1]=(0|R(m,v[B>>1]))/130;break A;default:break r}(0|(m=e[r+44>>2]))<=0||(f=(m-c|0)+f|0,e[36422]=f)}if(!(!f|(0|a)<=0)){if(w=(c+f<<8)/(0|c)|0,E=0,(0|t)!=2)for(t=-2&a,m=0;v[(c=(f=E<<3)+B|0)>>1]=(0|R(w,v[c>>1]))/256,v[(f=B+(8|f)|0)>>1]=(0|R(w,v[f>>1]))/256,E=E+2|0,(0|t)!=(0|(m=m+2|0)););1&a&&(v[(t=B+(E<<3)|0)>>1]=(0|R(w,v[t>>1]))/256)}}if(e[l+108>>2]=A,$=X+16|0,B){if((0|(A=e[r+16>>2]))!=e[36438]&&(e[36438]=A,t=216192+(e[50758]<<4)|0,e[t>>2]=14,e[t+4>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),E=(A=e[e[32972]+132>>2])?1:3,t=e[B+4>>2],e[r+28>>2]|!u[145748]||(d[145748]=0,E=A?2:4),(a=e[36426])&&(!((2&(A=Q[a>>1]))>>>1|u[a+16|0]<2)|16&A||(f=216192+(e[36439]<<4)|0,e[f+12>>2]=t,8&A&&(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(m=A<<6)+177888|0)&&(w=Q[t+4>>1]|Q[t+6>>1]<<16,c=Q[t>>1]|Q[t+2>>1]<<16,v[A>>1]=c,v[A+2>>1]=c>>>16,v[A+4>>1]=w,v[A+6>>1]=w>>>16,w=Q[t+60>>1]|Q[t+62>>1]<<16,c=Q[t+56>>1]|Q[t+58>>1]<<16,v[A+56>>1]=c,v[A+58>>1]=c>>>16,v[A+60>>1]=w,v[A+62>>1]=w>>>16,w=Q[t+52>>1]|Q[t+54>>1]<<16,c=Q[t+48>>1]|Q[t+50>>1]<<16,v[A+48>>1]=c,v[A+50>>1]=c>>>16,v[A+52>>1]=w,v[A+54>>1]=w>>>16,w=Q[t+44>>1]|Q[t+46>>1]<<16,c=Q[t+40>>1]|Q[t+42>>1]<<16,v[A+40>>1]=c,v[A+42>>1]=c>>>16,v[A+44>>1]=w,v[A+46>>1]=w>>>16,w=Q[t+36>>1]|Q[t+38>>1]<<16,c=Q[t+32>>1]|Q[t+34>>1]<<16,v[A+32>>1]=c,v[A+34>>1]=c>>>16,v[A+36>>1]=w,v[A+38>>1]=w>>>16,w=Q[t+28>>1]|Q[t+30>>1]<<16,c=Q[t+24>>1]|Q[t+26>>1]<<16,v[A+24>>1]=c,v[A+26>>1]=c>>>16,v[A+28>>1]=w,v[A+30>>1]=w>>>16,w=Q[t+20>>1]|Q[t+22>>1]<<16,c=Q[t+16>>1]|Q[t+18>>1]<<16,v[A+16>>1]=c,v[A+18>>1]=c>>>16,v[A+20>>1]=w,v[A+22>>1]=w>>>16,w=Q[t+12>>1]|Q[t+14>>1]<<16,c=Q[t+8>>1]|Q[t+10>>1]<<16,v[A+8>>1]=c,v[A+10>>1]=c>>>16,v[A+12>>1]=w,v[A+14>>1]=w>>>16,d[m+177904|0]=0,v[A>>1]=32768|Q[A>>1]),v[(m=m+177888|0)+8>>1]=Q[a+8>>1],d[m+21|0]=u[a+21|0],v[m+10>>1]=Q[a+10>>1],d[m+22|0]=u[a+22|0],v[m+12>>1]=Q[a+12>>1],d[m+23|0]=u[a+23|0],v[m+14>>1]=Q[a+14>>1],d[m+24|0]=u[a+24|0],d[m+25|0]=u[a+25|0],e[f+12>>2]=A))),(0|MA)!=2|u[J+11|0]!=2||(me(),e[36427]=e[50758]),!((0|(J=e[l+108>>2]))<2)){for(A=e[36433],w=(R(256-A|0,q)+(A<<8)|0)/256|0,A=e[36432],f=(R(256-A|0,q)+(A<<8)|0)/256|0,c=e[50754],A=0,a=1;m=Q[(X=(B+(a<<3)|0)-8|0)+2>>1],m=(0|R((0|R(c,v[X>>1]))/1e3|0,4&m?f:16384&m?w:q))/256|0,e[(a<<2)+l>>2]=m,A=A+m|0,(0|J)!=(0|(a=a+1|0)););if(!((0|A)<=0|(0|A)>=(0|bA)|(0|J)<2)){if(a=1,w=1&(m=J-1|0),(0|J)!=2)for(f=-2&m,q=0;e[(m=(a<<2)+l|0)>>2]=(0|R(e[m>>2],bA))/(0|A),e[m+4>>2]=(0|R(e[m+4>>2],bA))/(0|A),a=a+2|0,(0|f)!=(0|(q=q+2|0)););w&&(e[(a=(a<<2)+l|0)>>2]=(0|R(e[a>>2],bA))/(0|A))}if(q=0,!((0|J)<2))for(J=MA+256|0,a=1;A=e[4+(B+(a<<3)|0)>>2],!(m=e[r+28>>2])|128&u[0|t]||(e[36422]=0,Ja(m,J,0,c=e[r>>2],0,w=(w=e[r+32>>2])?(w<<5)/100|0:32),d[145748]=1,e[r+28>>2]=0),(0|o)<0||(o=64&u[0|t]?6:o,(e[l+108>>2]-1|0)==(0|a)&&(o=(m=o)|(3840&(o=e[36436])?o:0))),m=e[(a<<2)+l>>2],e[36440]=m+e[36440],e[36441]=m+e[36441],m?(w=e[50758],e[36439]=w,(0|o)>=0&&(e[(w=216192+(w<<4)|0)>>2]=E,e[w+12>>2]=A,e[w+8>>2]=t,e[w+4>>2]=m+(o<<16),t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0),e[36426]=A,q=m+q|0):e[36426]=0,t=A,(0|(a=a+1|0))>2];);}!e[36438]|(0|MA)==1||(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}}$=l+112|0}function oA(A,t,r,a){var o,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0;$=o=$-1856|0,e[o+164>>2]=0,r?_=e[r>>2]:cA(r=o- -64|0,0,96),e[33264]=0,e[o+1824>>2]=0,e[o+1828>>2]=0,e[o+1832>>2]=0,e[o+1836>>2]=0,d[o+1616|0]=0,d[o+992|0]=0,d[o+1200|0]=0,d[o+784|0]=0;e:if(e[A+688>>2]){for(e[o+1840>>2]=t,u[0|(l=t)]==32&&(l=t+1|0,e[o+1840>>2]=l),W=o+416|1,Ye=o+1844|1,iA=o+1848|1,bA=o+1852|1,e[o+1820>>2]=l,UA(o+168|0,l),l=e[o+1820>>2];(32|u[0|l])!=32;)l=UA(o+164|0,l)+e[o+1820>>2]|0,e[o+1820>>2]=l,re=re+1|0;ct(o+256|0,t,de=(0|(f=l-t|0))>=159?159:f),!(Ge=4194304&_)|(0|re)!=1?(J=((0|(l=e[47202]))==36)<<2,(0|re)==1|(0|l)!=36||(l=e[o+1840>>2]-1|0,e[o+1840>>2]=l,d[0|l]=95,J=0,c=!!(0|DA(A,o+1840|0,o+1616|0,o+1832|0,0,r)),l=e[47202])):(c=1,UA(o+172|0,l+1|0),Rt(e[o+172>>2])&&(0|gs(e[o+164>>2]))==(0|gs(e[o+172>>2]))&&(c=0),J=(0|(l=e[47202]))==36?4:c,c=0);A:{r:{s:{i:{o:if(16&l)X=15&l,J=0;else{if(ue=1,c||(ue=!!(0|DA(A,o+1840|0,o+1616|0,o+1832|0,2,r))),50331648&(l=e[o+1832>>2])&&(f=e[o+1820>>2],u[f+1|0]==46&&(d[f+1|0]=32,l=e[o+1832>>2])),536870912&l){if(!a)break e;_A(a,e[o+1840>>2]);break e}if(8192&l|!(128&l)|ue)a=e[33264];else if(l=e[o+1840>>2],e[o+1820>>2]=l,!((0|(a=e[33264]))<=0))for(c=0;u[0|l]==32&&(d[0|l]=45,c=c+1|0,l=e[o+1820>>2],a=e[33264]),l=l+1|0,e[o+1820>>2]=l,(0|a)>(0|c););c:if(!(a|(0|re)!=1)&&(f=UA(o+576|0,B=e[o+1840>>2]),u[f+B|0]==32)){c=o+1408|0,a=B;u:{l:{n:{for(;;){p:if(Rt(e[o+576>>2])){C:{if(u[(m=a+f|0)+1|0]==46){X=0;m:switch(u[(l=f+2|0)+a|0]-32|0){case 0:break C;case 7:break m;default:break p}if(X=1,f=l,u[m+3|0]==115)break C;break p}if(X=1,(0|w)<=0)break n}if(!((0|f)<=0)){if(q=3&f,E=0,f>>>0<4)l=0;else for(Me=-4&f,l=0,m=0;d[0|c]=u[a+l|0],d[c+1|0]=u[(1|l)+a|0],d[c+2|0]=u[(2|l)+a|0],d[c+3|0]=u[(3|l)+a|0],l=l+4|0,c=c+4|0,(0|Me)!=(0|(m=m+4|0)););if(q)for(;d[0|c]=u[a+l|0],l=l+1|0,c=c+1|0,(0|q)!=(0|(E=E+1|0)););}if(w=w+1|0,X)a=a+f|0;else if(f=UA(o+576|0,a=3+(a+f|0)|0),u[a+f|0]==32)continue}break}if(!((0|w)<2)){(f=(f=c-(l=o+1408|0)|0)+(l=ct(B,l,f))|0)>>>0>>0&&cA(f,32,(o+1408|0)+a-(l+c)|0),e[33264]=(w<<1)-2,e[o+1836>>2]=0;break l}}if(!w)break c;if(e[o+1832>>2]=0,e[o+1836>>2]=0,!e[33264])break u}e[o+1832>>2]=128}J=1}if(u[o+1616|0]==21){_A(189088,o+1616|0),l=0;break e}if(MA=u[o+1833|0],c=1,!ue){if(e[o+168>>2]-48>>>0<10){if(NA(A,84174,189088),l=0,u[189088]==21)break e;if(!(!(128&u[A+109|0])|32&u[r+2|0])){d[189088]=21,d[189089]=0;break e}c=!!(0|rs(A,e[o+1840>>2],o+1616|0,o+1832|0,r,0))}else c=0;if(!(c|(3&_)==2)&&(16777216&(a=e[A+104>>2])||(c=0,!(!(33554432&a)|!(1&_))))&&(16&_||(c=0,!(1&d[r+13|0])))){Me=e[o+1840>>2],l=0,w=0,m=0,$=q=$-224|0,d[0|(E=o+1616|0)]=0,e[q+216>>2]=0,e[q+220>>2]=0;c:if(!(d[Me-2|0]-48>>>0<10|(1&d[0|r]?0:2&u[A+107|0])||(a=u[0|(f=Me+1|0)],(!(2561&Q[A+106>>1])|!(1&d[r+2|0]))&(0|a)==32))){if((0|(w=u[0|Me]))!=32){for(X=32767,a=0;;){if(!(l=Os(101868,w<<24>>24,8))){w=0;break c}if(B=0,(0|(l=e[(l<<2)-305584>>2]))==(0|a)&&!((0|(B=m+1|0))<=2)){w=0;break c}u:{l:{n:{p:{if(!((0|a)<2)){if((0|a)==10|(0|a)==100)break p;if(!((0|a)>(0|l))){w=0;break c}}if(!a)break l;if((0|a)<(0|l))break n;break l}if((0|a)>=(0|l))break l}if(w=0,(0|ne)%10|(0|R(a,10))<(0|l))break c;l=l-a|0,X=a;break u}if((0|l)>=(0|X)){w=0;break c}ne=a+ne|0}if(w=u[0|f],f=c=f+1|0,a=l,m=B,(0|w)==32)break}a=u[0|c]}else c=f;if((a<<24>>24)-48>>>0<10)w=0;else if((0|(a=l+ne|0))>2])w=0;else if((0|a)>e[A+116>>2])w=0;else if(NA(A,85600,q+176|0),l=E,4&u[A+107|0]||(l=_A(E,l=q+176|0)+TA(l)|0),e[q+4>>2]=e[A+140>>2],e[q>>2]=a,IA(q+16|0,85839,q),w=0,u[0|c]!=46){Br(A,Me,c,r,1)&&(e[r>>2]=32768|e[r>>2]),f=0;u:if(8&u[A+107|0]){if(m=e[r>>2],e[A+212>>2]==26741){if(32768&m)break u;if(!(16384&m))break c;f=1,m=0;l:{n:switch(u[0|c]-97|0){case 0:case 4:break n;default:break l}n:{p:{C:{m:switch((X=u[c+1|0])-116|0){case 6:break l;case 1:case 2:case 3:case 4:case 5:break p;case 0:break m;default:break C}if(u[c+2|0]!=116)break n;break l}if((0|X)==32)break l}if(!((0|a)%1e3|0)&&(0|X)==108)break l}m=1}if(m)break u;break c}e[r>>2]=32768|m}e[(a=A+8232|0)>>2]=0,e[a+4>>2]=0,rs(A,q+16|2,l,q+216|0,r,f),w=1,4&u[A+107|0]&&Xr(E,q+176|0)}}$=q+224|0,w?(e[o+1832>>2]=8192|e[o+1832>>2],c=1):c=0}}if(X=ue?J:32&MA?1:J,J=0,!(!(1&_)|(0|re)<2)&&ls(e[o+168>>2])){c:{if(1&d[188785]){if(!(!(a=8192&(l=e[o+1832>>2]))|c))break c;J=a>>>2^2048;break o}if(c)break i;l=e[o+1832>>2]}if(!(128&l|re>>>0>3)&&!((0|(l=e[A+8220>>2]))<4)&&(a=1,(0|l)>=e[A+8216>>2]))break A}}if(E=0,(0|X)<=0)break s;a=X;break A}if((0|(a=X))>0)break A;E=0,B=0,m=0,w=0;break r}if(c)B=0,m=0,w=0;else{a=e[o+1840>>2],e[o+1820>>2]=a,l=999,w=0,B=0,W=0;s:{i:{o:{for(;;){c:{u:{l:{if(l-1>>>0>=2){if((0|re)<2||(UA(o+1408|0,a),(0|(l=e[o+1408>>2]))<577&e[A+600>>2]>0)||(l=gs(l),(e[l+4>>2]!=e[A+600>>2]?l:0)|e[A+40>>2]==1))break l;l=u[0|a],e[o+1408>>2]=l<<24>>24;n:switch(l-32|0){default:if(!l)break l;break;case 0:case 7:break l;case 1:case 2:case 3:case 4:case 5:case 6:break n}E=UA(o+1408|0,a),ue=9;n:{p:{C:{m:if(-33&(l=e[o+1408>>2])){for(c=0,m=0;;){b:{h:{if((0|l)==39){if((0|B)>0|(0|c)>1)break m;if(m=c?m:39,e[A+40>>2]!=3)break h;break b}m=c?m:l}c=c+1|0}if(!co(A,l)){if((0|(l=e[o+1408>>2]))!=39&&!ls(l))break l;if(E=UA(o+1408|0,a+E|0)+E|0,-33&(l=e[o+1408>>2]))continue;break m}break}if((0|c)<=2)break C;ue=c}else m=0;if((0|(l=e[A+40>>2]))!=2)break p;$=l=$-208|0,d[0|l]=0,c=u[0|(f=a-1|0)],d[0|f]=32,a=ft(A,a,l,200,0,-2147483648,0),d[0|f]=c,$=l+208|0,a=!a|(32768&a)>>>15;break n}l=e[A+40>>2],ue=c}a=(d[A+168|0]+1|0)<(ue-((0|l)==(0|m))|0)}if(!a)break l;a=e[o+1820>>2]}if(u[0|a]!=39)break u;w=67108864,J=0}if(E=0,Wr(A,o+992|0,0,B),a=e[o+1820>>2],(0|(l=u[0|a]))!=32)break c;B=0,m=0;break r}if(J=0,a=wt(A,a,o+992|0,1&(W|=(0|B)>0))+e[o+1820>>2]|0,e[o+1820>>2]=a,u[o+992|0]==21)break o;for(B=B+1|0,c=0;c=(l=c)+1|0,u[a+l|0]!=32;);w=67108864;continue}break}if(!u[o+992|0]|(0|l)==39||(d[a-1|0]=32,a=e[o+1820>>2]),f=ft(A,a,o+1616|0,200,o+784|0,_,o+1832|0),(0|(a=u[o+1616|0]))==21){_A(189088,o+1616|0),l=0;break e}if(!(a|u[o+784|0])&&(UA(o+1408|0,e[o+1820>>2]),(0|re)==1&&(Rt(e[o+1408>>2])||ns(e[o+1408>>2])))){Ki(A,e[o+1820>>2],o+1616|0,X)&&_A(189088,o+1616|0),l=0;break e}e[o+172>>2]=d[e[o+1820>>2]-1|0];c:if(1024&f)for(Me=o+176|1,X=0,l=1,W=0,B=0;;){if((ue=131072&f)|!(1&l)||(d[o+1408|0]=0,!(a=ft(A,e[o+1820>>2],o+1408|0,200,o+576|0,805306368|_,o+1832|0)))){2048&f&&(e[A+8184>>2]=1),d[e[o+1820>>2]-1|0]=e[o+172>>2];u:{l:{n:{p:if(ue){if(d[o+176|0]=0,l=e[o+1820>>2],a=1,m=63&f){if(q=1&f,B=m-1|0,c=0,(0|m)!=1)for(ne=m-q|0,m=0;E=l,e[o+1820>>2]=l+1,d[0|(Ge=(o+176|0)+a|0)]=(0|c)!=(0|B)?u[0|l]:0,l=l+2|0,e[o+1820>>2]=l,d[Ge+1|0]=(0|B)!=(1|c)?u[E+1|0]:0,c=c+2|0,a=a+2|0,(0|ne)!=(0|(m=m+2|0)););q&&(m=l+1|0,e[o+1820>>2]=m,d[(o+176|0)+a|0]=(0|c)!=(0|B)?u[0|l]:0,a=a+1|0,l=m)}d[(o+176|0)+a|0]=0}else{if(l=e[o+1820>>2],!(m=15&f))break n;if(a=0,c=m,E=3&f)for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128||(c=c-1|0,(0|E)!=(0|(a=a+1|0))););if(m>>>0<4)break p;for(;;)if(l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])!=128){for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);if(a=(0|c)>4,c=c-4|0,!a)break}}if(a=l-1|0,e[o+172>>2]=d[0|a],d[0|a]=32,a=_|=8388608,!ue)break l;if(Wt(o+576|0,o+784|0,12),e[o+1852>>2]=Me,a=_A(o+1200|0,l=o+1616|0),DA(A,o+1852|0,l,o+1832|0,0,r)&&_A(a,o+1616|0),!(32&u[o+1833|0]))break u;d[0|a]=0,Ki(A,e[o+1852>>2],a,1);break u}a=l-1|0,e[o+172>>2]=d[0|a],d[0|a]=32,a=8388608|_}_=a,Xr(o+1200|0,o+784|0)}if(d[o+784|0]=0,m=1,a=DA(A,o+1820|0,o+1616|0,o+1824|0,1024,r),e[o+1832>>2]||(l=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=l,m=W),a){E=0,B=f;break s}if(E=ft(A,e[o+1820>>2],o+1616|0,200,o+784|0,8404992&_,o+1832|0),l=1,B=f,W=m,u[o+1616|0]==21){d[e[o+1820>>2]-1|0]=e[o+172>>2],_A(189088,o+1616|0),l=0;break e}}else l=o+416|0,ir(A,e[o+1820>>2],a,l),E=ft(A,e[o+1820>>2],o+1616|0,200,o+784|0,268435456|_,o+1832|0),ct(e[o+1820>>2],l,TA(l)),1024&E||(_A(o+1616|0,o+1408|0),l=_A(o+784|0,o+576|0),8&u[188788]&&(da(m=l,l=o+576|0),f=e[47195],e[o+48>>2]=l,Ar(f,85205,o+48|0)),E=a),l=0;if(a=(c=1024&E)>>>10|0,X>>>0>48)break c;if(X=X+1|0,f=E,!c)break}else E=f,B=0,W=0,a=0;if(a|!E)break i;for(f=_A(o+1408|0,o+1616|0),c=ir(A,e[o+1820>>2],E,o+416|0),m=W,l=E;;){c:{if(d[o+1616|0]=0,u[o+1200|0]){if(d[e[o+1820>>2]-1|0]=e[o+172>>2],a=DA(A,o+1840|0,o+1616|0,o+1824|0,c,r),d[e[o+1820>>2]-1|0]=32,u[o+1616|0]==21){A=o+416|0,ct(e[o+1820>>2],A,TA(A)),_A(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(W=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=W),a){d[o+1200|0]=0;break c}m=e[o+1824>>2]?1:m}if(a=DA(A,o+1820|0,o+1616|0,o+1824|0,c,r),u[o+1616|0]==21){A=o+416|0,ct(e[o+1820>>2],A,TA(A)),_A(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(W=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=W),!a)if(16384&l)_A(o+1616|0,f);else{_|=c<<11&8192|l<<9&134217728;u:if(524288&l){if(W=_A(o+576|0,a=o+784|0),l=ft(A,e[o+1820>>2],o+1616|0,200,a,_,o+1832|0),Xr(a,W),a=0,!l){l=0;break u}if(1024&l)break u;a=1,c=ir(A,e[o+1820>>2],l,0)}else l=0,ft(A,e[o+1820>>2],o+1616|0,200,0,_,o+1832|0),a=0;if(u[o+1616|0]==21){_A(189088,o+1616|0),A=o+416|0,ct(e[o+1820>>2],A,TA(A)),d[e[o+1820>>2]-1|0]=e[o+172>>2],l=0;break e}if(a)continue}}break}65536&E||(wn(A,o+1616|0,200,o+784|0),d[o+784|0]=0),a=o+416|0,ct(e[o+1820>>2],a,TA(a));break s}_A(189088,A=o+992|0),l=!ga(1|A,84744,3)<<12;break e}E=0,m=W}d[e[o+1820>>2]-1|0]=e[o+172>>2]}}if(a=e[o+164>>2],e[o+1852>>2]=8026656,e[o+1848>>2]=8022304,e[o+1844>>2]=7566112,4&_){r:{if((l=255&a)&&((0|l)==102||(Ye=iA,Eo(a<<24>>24))))break r;Ye=bA}ft(A,Ye,189088,200,0,0,0)}for(a=0,l=o+1200|0,W=u[o+784|0];;){r:{s:{i:switch(0|(f=u[0|l])){case 0:break r;case 6:case 7:break i;default:break s}a=f}l=l+1|0;continue}break}r:if(a|m){if(e[A+32>>2]|65536&B){for(c=0,Ut(A,o+1616|0,o+1832|0,3,0),l=o+1200|0;;){s:switch(u[0|l]){case 6:c&&(d[0|l]=5),c=1;default:l=l+1|0;continue;case 0:break s}break}e[o+24>>2]=o+1616,e[o+20>>2]=o+1200,e[o+16>>2]=o+992,ss(189088,200,85233,o+16|0),d[189287]=0,Ut(A,189088,o+1832|0,-1,0);break r}e[o+8>>2]=o+1616,e[o+4>>2]=o+1200,e[o>>2]=o+992,ss(189088,200,85233,o),d[189287]=0,Ut(A,189088,o+1832|0,-1,0)}else Ut(A,a=o+1616|0,o+1832|0,-1,!!(0|W)<<1),e[o+40>>2]=a,e[o+36>>2]=o+1200,e[o+32>>2]=o+992,ss(189088,200,85233,o+32|0),d[189287]=0;u[o+784|0]&&(a=TA(189088),d[983+(o-a|0)|0]=0,_A(a+189088|0,o+784|0)),16&(a=_|J)&&(e[o+1832>>2]=-268435457&e[o+1832>>2]);r:if(!(128&a)|!(16&u[A+14|0]))if(3072&a){if(La(A,6),!(2048&a))break r;e[o+1832>>2]=268435456|e[o+1832>>2]}else 16&u[R(e[33264],12)+r|0]&&(1536&(r=e[o+1832>>2])?La(A,4):2048&r&&La(A,3));else La(A,3);8192&E&&(e[A+8192>>2]=2,e[A+8184>>2]=2);r:{if(8&(r=e[o+1836>>2]))e[A+8184>>2]=0,e[A+8188>>2]=3,a=A+8196|0;else if(1&r)e[A+8192>>2]=0,e[A+8184>>2]=2,a=A+8196|0;else if(2&r)e[A+8192>>2]=2,e[A+8184>>2]=0,e[A+8188>>2]=0,a=A+8196|0;else{if(!(4&r))break r;e[A+8184>>2]=0,e[A+8192>>2]=0,e[A+8196>>2]=2,a=A+8188|0}e[a>>2]=0}!u[e[o+1820>>2]]|256&r||((0|(r=e[A+8184>>2]))>0&&(e[A+8184>>2]=r-1),(0|(r=e[A+8192>>2]))>0&&(e[A+8192>>2]=r-1),(0|(r=e[A+8196>>2]))>0&&(e[A+8196>>2]=r-1),(0|(r=e[A+8188>>2]))<=0||(e[A+8188>>2]=r-1)),(0|re)!=1|e[A+212>>2]!=25966||!ls(e[o+168>>2])|e[o+168>>2]==105||(e[o+1832>>2]=16777216|e[o+1832>>2]);r:if(2&u[A+68|0]&&98304&(a=e[o+1832>>2])&&!((0|(r=TA(189088)-1|0))<=0))for(l=0;;){if(A=l+1|0,u[l+189088|0]==6){r=d[0|(A=A+189088|0)];s:{if(65536&a){if((0|pa(69))==(0|r)?(re=pa(101),d[0|A]=re):re=u[0|A],c=111,(0|pa(79))==re<<24>>24)break s;break r}if((0|pa(101))==(0|r)?(re=pa(69),d[0|A]=re):re=u[0|A],c=79,(0|pa(111))!=re<<24>>24)break r}d[0|A]=pa(c);break r}if((0|r)==(0|(l=A)))break}A=e[o+1832>>2],ct(t,o+256|0,de),l=A|w;break e}if(l=0,d[o+1616|0]=0,Ki(A,e[o+1840>>2],o+1616|0,a)){if(f=_A(189088,o+1616|0),!Ge){if(a=e[o+164>>2],e[o+1408>>2]=8026656,e[o+576>>2]=8022304,e[o+416>>2]=7566112,4&_){t=o+576|1,r=o+1408|1;A:{if((l=255&a)&&((0|l)==102||(W=t,Eo(a<<24>>24))))break A;W=r}ft(A,W,f,200,0,0,0)}l=128&e[o+1832>>2]}}else l=((0|re)>1)<<12}else d[189088]=0;return $=o+1856|0,l}function et(A,t,r,a,o,l,c,f){var m,E,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0,kt=0,Gt=0,Nt=0,Xt=0,tr=0,pr=0,rr=0,Er=0,Sr=0,Zr=0,Aa=0,ta=0,ma=0,$a=0,es=0,Wa=0,Hs=0,ui=0,Bs=0,di=0,fi=0;$=m=$-384|0,E=e[t>>2];e:{A:{r:{s:{if(o){if(u[0|o]!=7)break s;e[t>>2]=(a||1)+E;break r}e[l>>2]=0,e[t>>2]=E+1;break e}kt=86135,Sr=268435456&c,Zr=134217728&c,Aa=8388608&c,ta=16384&c,ma=8192&c,Xt=r-1|0,tr=a-r|0,$a=2&c,es=128&c,Wa=c>>>31|0,Hs=-2147483648&c,pr=m+96|1;s:for(;;)for(e[m+268>>2]=0,re=(_=e[t>>2])+a|0,iA=-2,Ye=-6,r=o,bA=Hs,jA=0,Gt=0,de=1,w=0,MA=0,it=0;;){W=_,ue=w;i:{o:{c:{u:{l:{n:{p:{C:{m:{b:{h:{y:{I:{x:{N:{L:{for(;Me=r,r=r+1|0,!((B=u[0|Me])>>>0>9);){X=r;U:switch(0|B){case 0:if(!(r=rr)){rr=0,r=86135;break N}for(;;){B=1;B:{M:switch(0|(w=u[0|r])){case 0:case 3:break L;case 5:break M;default:break B}B=2}r=(r+B|0)+(((0|w)==9)<<1)|0}case 1:if(it=1,!Wa)continue;break l;case 2:it=2;continue;case 4:rr=r;continue;case 5:r=Me+2|0,w=e[A+320>>2];B:{if((_=u[Me+1|0])>>>0>=32){if(!(w>>>_-32&1))break B;break l}if(!(w>>>_&1))break l}de=de+1|0;continue;case 9:r=Me+3|0;continue;case 8:it=1,Gt=1,bA=0;break;case 3:break x;default:break U}}X=0,w=ue,_=W;U:switch(0|it){case 0:B:{M:{if((0|(w=u[0|re]))!=(0|B)){if((0|w)!=69)break l;if((0|B)==101)break M;break l}if(X=0,(192&B)==128)break B}X=21}re=re+1|0,jA=jA+1|0;break i;case 1:break I;case 2:break U;default:break b}if(e[m+264>>2]=e[m+268>>2],!u[re-1|0])break l;Ye=(0|(w=Ye+6|0))>=19?19:w,ne=re+1|0,Ge=UA(m+268|0,re),J=u[0|re],X=20,w=ue;U:{B:switch(B-11|0){case 6:r=Me+2|0,w=e[m+268>>2],_=d[Me+1|0];M:if(B=e[604+(((_=((0|_)<65?191:-65)+_|0)<<2)+A|0)>>2])w=!!(0|Tr(B,w));else{if((0|_)>7)break l;Q:{if((0|(B=e[A+600>>2]))>0){if((w=w-B|0)-1>>>0<255)break Q;break l}if((B=w-192|0)>>>0<=413){w=u[344+(u[B+94240|0]+A|0)|0]&1<<_;break M}if(w>>>0>255)break l}w=u[344+(A+w|0)|0]&1<<_}if(!w)break l;re=re+Ge|0,X=((0|_)==2?19:20)-Ye|0;break i;case 7:if(r=Me+2|0,w=d[Me+1|0],!(w=e[4788+((((0|w)<65?191:-65)+w<<2)+A|0)>>2]))break l;M:for(;;){if((0|(X=u[0|w]))==7)break l;if((0|X)==126){X=20-Ye|0;break i}Q:if(J){if(q=re,B=w,(0|X)==(0|J))for(;;){if((0|(X=u[0|(B=B+1|0)]))!=(0|(w=u[0|(q=q+1|0)])))break Q;if(!w)break}}else B=w,q=re;if(X){for(;;)if(_=u[0|B],B=w=B+1|0,!_)continue M}break}if((0|(w=q-re|0))<0)break l;re=w+re|0,X=20-Ye|0;break i;case 14:B=e[m+268>>2];M:{Q:if(w=e[A+604>>2])w=!!(0|Tr(w,B));else{S:{if((0|(w=e[A+600>>2]))>0){if((q=B-w|0)-1>>>0<255)break S;break M}if((w=B-192|0)>>>0<=413){w=1&d[344+(u[w+94240|0]+A|0)|0];break Q}if(q=B,B>>>0>255)break o}w=1&d[344+(A+q|0)|0]}if(w)break l;B=e[m+268>>2]}if(!Zr)break o;if((0|B)==32)break l;break o;case 4:if((w=e[m+268>>2])-48>>>0<10|w-2406>>>0<10)break o;if(!u[A+170|0])break l;X=20-Ye|0;break i;case 5:if(_i(e[m+268>>2]))break l;break c;case 0:if(e[m+268>>2]==e[m+264>>2])break c;break l;case 17:r=Me+2|0,w=32768,X=0;M:{Q:switch((B=u[Me+1|0])-1|0){case 0:break b;case 1:break Q;default:break M}if(X=1,w=ue,!Aa)break b;break l}if((0|(w=240&B))==16){if(X=23,w=ue,f>>>(15&B)&16384)break b;break l}if((0|B)!=3&(0|w)!=32||(ct(w=m+96|0,Xt,_=1+(e[t>>2]+(jA+tr|0)|0)|0),d[0|(w=w+_|0)]=32,d[w+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=pr,DA(A,m+16|0,m+272|0,133060,0,0),X=23,!((0|B)!=3|(0|(q=e[33265]))>=0|16384&e[33266])))break i;if(w=ue,_=W,q>>>(15&B)&16384)break b;break l;case 34:M:{if(w=J-32|0){if((0|w)==13)break M;break l}if(!ta)break l}q=22-Ye|0;break u;case 10:if(w=1,u[0|r]==21)break U;break n;case 18:if((0|(q=e[m+268>>2]))!=32)for(B=re+Ge|0;;){M:{Q:if(w=e[A+632>>2])w=!!(0|Tr(w,q));else{S:{if((0|(w=e[A+600>>2]))>0){if((q=q-w|0)-1>>>0<255)break S;break M}if((w=q-192|0)>>>0<=413){w=128&u[344+(u[w+94240|0]+A|0)|0];break Q}if(q>>>0>255)break M}w=128&u[344+(A+q|0)|0]}if(w)break l}if(B=UA(m+268|0,B)+B|0,(0|(q=e[m+268>>2]))==32)break}q=19-Ye|0;break u;case 49:break p;case 2:break C;case 3:break m;case 1:break b;case 13:break h;case 12:break B;default:break y}UA(m+272|0,r),Ge=-1;B:if((0|(w=e[m+272>>2]))!=(0|(B=e[m+268>>2])))if(-33&B)for(;;){J=re,Ge=-1;M:if((0|w)==18&&(w=d[Me+2|0],X=e[4788+((((0|w)<65?191:-65)+w<<2)+A|0)>>2])){for(;;){if((0|(_=u[0|X]))==7)break M;if((0|_)==126){Ge=0;break M}Q:if((0|(re=u[0|J]))==(0|_)){if(w=J,B=X,re)for(;;){if((0|(_=u[0|(B=B+1|0)]))!=(0|(X=u[0|(w=w+1|0)])))break Q;if(!X)break}}else B=X,w=J;if(!_){w=w-J|0;break}for(;w=u[0|B],B=X=B+1|0,w;);}Ge=w}if(_=UA(m+268|0,J),(0|(w=e[m+272>>2]))==(0|(B=e[m+268>>2]))|!(-33&B))break B;if(re=_+J|0,(0|Ge)!=-1)break}else J=re;else J=re;re=(0|w)==(0|B)||(0|Ge)>=0?J:ne,X=0;break i}for(;w=w+1|0,u[0|(r=r+1|0)]==21;);break n}r=r+1|0}X=Me}if(!(u[W-1|0]!=32&Gt|bA||((0|(B=Gt?de+4|0:de))>=(0|Nt)&&(ui=MA,Bs=ue,Nt=B,di=jA,kt=r),!(8&e[47197])|Sr|(0|B)<=0))){for(da(r,Me=m+272|0),ne=e[47195],_=m+16|0,r=0,J=0,bA=0,MA=0,$=re=$-496|0,d[re+80|0]=0,(0|a)>0?(ct(re+288|0,E,a),ue=a):ue=0,d[ue+(w=re+288|0)|0]=0,W=TA(w)+w|0,Ge=(0|c)<0;;){if(q=u[0|o],ue=o,o=o+1|0,q>>>0>9)for(;;){x:{N:{L:{U:{B:{M:switch((w=255&q)-14|0){case 4:break L;case 3:break U;case 0:break B;case 14:break M;default:break N}if(ue=ue+2|0,q=32,!Ge&(0|(o=u[0|o]))==1)break x;d[0|W]=36,_A(w=W+1|0,o=Pi(128960,o)),W=TA(o)+w|0;break x}w=u[ue+2|0],q=u[0|o],e[re+36>>2]=127&u[ue+3|0],e[re+32>>2]=4&w?80:83,IA(re+48|0,85131,re+32|0),1&w&&(o=TA(o=re+48|0)+o|0,d[0|o]=101,d[o+1|0]=0),2&(o=127&w)&&(w=TA(w=re+48|0)+w|0,d[0|w]=105,d[w+1|0]=0),4&o&&(w=TA(w=re+48|0)+w|0,d[0|w]=112,d[w+1|0]=0),8&o&&(w=TA(w=re+48|0)+w|0,d[0|w]=118,d[w+1|0]=0),16&o&&(w=TA(w=re+48|0)+w|0,d[0|w]=100,d[w+1|0]=0),32&o&&(w=TA(w=re+48|0)+w|0,d[0|w]=102,d[w+1|0]=0),o>>>0>=64&&(o=TA(o=re+48|0)+o|0,d[0|o]=113,d[o+1|0]=0),1&q&&(o=TA(o=re+48|0)+o|0,d[0|o]=116,d[o+1|0]=0),ue=ue+4|0,W=_A(W,o=re+48|0)+TA(o)|0,q=32;break x}ue=ue+2|0,q=u[d[0|o]+93871|0];break x}o=d[0|o],d[0|W]=76,w=((o=o+((0|o)<65?191:-65)|0)>>>0)/10|0,d[W+1|0]=w+48,q=o-R(w,10)|48,(0|MA)==1&&(d[0|W]=q,q=76),ue=ue+2|0,W=W+2|0;break x}q=w>>>0<=31?u[w+93904|0]:(0|w)==32?95:q,ue=o}if(d[0|W]=q,o=ue+1|0,W=W+1|0,!((q=u[0|ue])>>>0>=10))break}w=1;x:switch(0|q){case 1:w=r;case 8:d[0|W]=0,W=re+80|0,r=w,MA=1;continue;case 2:d[0|W]=0,ue=TA(w=re+288|0)+w|0,W=u[84899]|u[84900]<<8,d[0|ue]=W,d[ue+1|0]=W>>>8,MA=2,d[ue+2|0]=u[84901],W=TA(w)+w|0;continue;case 5:J=d[0|o],o=ue+2|0;continue;case 9:bA=(u[0|o]+R(u[ue+2|0],255)|0)-256|0,o=ue+3|0;continue;case 0:case 3:break x;default:continue}break}if(d[0|W]=0,W=_,(0|bA)>0&&(e[re+16>>2]=bA,IA(_,85581,re+16|0),W=_+7|0),(0|J)>0&&(e[re>>2]=J,IA(W,85694,re),W=TA(W)+W|0),1&((0|(o=TA(re+80|0)))>0|r)){1&r&&(d[0|W]=95,W=W+1|0);x:if(!((0|(ue=o-1|0))<0|W>>>0>=_>>>0))for(;;){if(d[0|W]=u[(re+80|0)+ue|0],W=W+1|0,(0|ue)<=0)break x;if(ue=ue-1|0,!(W>>>0<_>>>0))break}d[0|W]=41,d[W+1|0]=32,W=W+2|0}d[0|W]=0,d[(r=re+288|0)+((_+3|0)-W|0)|0]=0,Xr(W,r),(0|(r=TA(_)))<=7&&(cA(r+_|0,32,8-r|0),r=8),d[r+_|0]=0,$=re+496|0,e[m+4>>2]=_,e[m>>2]=(0|a)>1?B+35|0:B,e[m+8>>2]=Me,Ar(ne,89088,m)}r=X;break l}if(!u[0|W])break l;iA=(0|(w=iA+2|0))>=19?19:w,UA(m+264|0,W),w=Cr(m+268|0,_=W-1|0),J=u[0|_],ne=_;I:{x:{N:{L:{U:{B:switch(B-10|0){case 13:if(w=(0|(WA=u[0|r]))==(0|(B=u[0|W])),Ge=-1,(0|B)==32|(0|B)==(0|WA))break L;if(B)break U;break N;case 7:r=Me+2|0,X=e[m+268>>2],W=d[Me+1|0];M:if(B=e[604+(((W=((0|W)<65?191:-65)+W|0)<<2)+A|0)>>2])B=!!(0|Tr(B,X));else{if((0|W)>7)break l;Q:{if((0|(B=e[A+600>>2]))>0){if((X=X-B|0)-1>>>0<255)break Q;break l}if((B=X-192|0)>>>0<=413){B=u[344+(u[B+94240|0]+A|0)|0]&1<>>0>255)break l}B=u[344+(A+X|0)|0]&1<>2]))break l;M:{for(;;){if((0|(J=u[0|w]))==7)break l;if((0|J)==126){Ge=0;break M}B=_;Q:{S:{if((0|(Me=(Ge=TA(w))-1|0))>0)for(B=W-Ge|0,X=0,q=_;;){if(!u[0|(q=q-1|0)])break S;if((0|Me)==(0|(X=X+1|0)))break}Ae:if(!((0|(X=u[0|B]))!=(0|J)|!X))for(;;){if((0|(J=u[0|(w=w+1|0)]))!=(0|(X=u[0|(B=B+1|0)])))break Ae;if(!X)break}if(!J)break Q}for(B=w;X=u[0|B],B=w=B+1|0,X;);continue}break}if((0|Ge)<0)break l}X=20-Ye|0,_=1+(_-Ge|0)|0;break I;case 15:B=e[m+268>>2];M:{Q:if(W=e[A+604>>2])W=!!(0|Tr(W,B));else{S:{if((0|(W=e[A+600>>2]))>0){if((B=B-W|0)-1>>>0<255)break S;break M}if((W=B-192|0)>>>0<=413){W=1&d[344+(u[W+94240|0]+A|0)|0];break Q}if(B>>>0>255)break M}W=1&d[344+(A+B|0)|0]}if(W)break l}X=20-iA|0,_=1+(_-w|0)|0;break I;case 1:if(e[m+268>>2]!=e[m+264>>2])break l;X=21-iA|0,_=1+(_-w|0)|0;break I;case 5:if(!((W=e[m+268>>2])-48>>>0<10|W-2406>>>0<10))break l;X=21-iA|0,_=1+(_-w|0)|0;break I;case 6:if(_i(e[m+268>>2]))break l;X=21-Ye|0,_=1+(_-w|0)|0;break I;case 18:if(r=Me+2|0,!((0|(B=u[Me+1|0]))==3|(240&B)==32)||(ct(w=m+96|0,Xt,_=1+(e[t>>2]+(jA+tr|0)|0)|0),d[0|(w=w+_|0)]=32,d[w+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=pr,DA(A,m+16|0,m+272|0,133060,0,0),X=23,!((0|B)!=3|(0|(q=e[33265]))>=0|16384&e[33266])))break i;if(w=ue,_=W,q>>>(15&B)&16384)break b;break l;case 11:if(B=1,u[0|r]==21)for(;B=B+1|0,u[0|(r=r+1|0)]==21;);if(e[A+8208>>2]<(0|B))break l;X=18+(B-iA|0)|0;break I;case 0:if(X=19,w=ue,_=W,e[A+8212>>2]>0)break b;break l;case 19:if(X=3,(0|(q=e[m+268>>2]))==32)break I;for(B=1+(_-w|0)|0;;){M:{Q:if(w=e[A+632>>2])w=!!(0|Tr(w,q));else{S:{if((0|(w=e[A+600>>2]))>0){if((q=q-w|0)-1>>>0<255)break S;break M}if((w=q-192|0)>>>0<=413){w=128&u[344+(u[w+94240|0]+A|0)|0];break Q}if(q>>>0>255)break M}w=128&u[344+(A+q|0)|0]}if(w)break l}if(B=B-Cr(m+268|0,B-1|0)|0,(0|(q=e[m+268>>2]))==32)break}break I;case 16:if(X=1,w=ue,_=W,e[A+8184>>2])break b;break l;case 9:if(X=1,w=ue,_=W,$a)break b;break l;case 36:for(;;){if(X=50,w=ue,!(W=(255&J)-32|0))break l;if((0|W)==14)break b;J=u[0|(ne=ne-1|0)]}case 35:break B;default:break x}B:{if(w=J-32|0){if((0|w)==13)break B;break l}if(!es)break l}X=22-Ye|0;break I}U:{for(;;){Ge=-1,q=W,W=W-1|0;B:if((0|WA)==18&&(w=d[Me+2|0],X=e[4788+((((0|w)<65?191:-65)+w<<2)+A|0)>>2]))for(fi=q+1|0;;){if((0|(ne=u[0|X]))==7){Ge=-1;break B}if((0|ne)==126){Ge=0;break B}B=q;M:{if((0|(Er=(Ge=TA(X))-1|0))>0)for(B=fi-Ge|0,J=0,w=q;;){if(!u[0|(w=w-1|0)])break M;if((0|Er)==(0|(J=J+1|0)))break}Q:if(!((0|(w=u[0|B]))!=(0|ne)|!w))for(;;){if((0|(ne=u[0|(X=X+1|0)]))!=(0|(w=u[0|(B=B+1|0)])))break Q;if(!w)break}if(!ne)break B}for(B=X;w=u[0|B],B=X=B+1|0,w;);}if(w=(0|(B=u[0|W]))==(0|WA),(0|B)==32|(0|B)==(0|WA))break U;if(!B){W=q;break N}if((0|Ge)!=-1)break}W=q;break N}W=q}_=w?W:_}X=0,_=(0|Ge)<0?_:W+1|0;break I}if((0|B)!=(0|J))break l;X=4,(0|B)!=32&&(X=(192&B)!=128?21-iA|0:0)}w=ue;break b}if((0|B)!=(0|J))break l;q=(192&B)!=128?21-Ye|0:0;break u}if(X=1,ma)break l}de=X+de|0;continue}if(w=d[Me+1|0],ue=u[Me+3|0],_=u[Me+2|0],1&!(e[A+8208>>2]|4&_)&d[A+84|0])break l;r=Me+4|0,q=0,ue=127&ue|(127&_)<<8|w<<16;break u}C:if(!(ne>>>0<=(B=e[t>>2]+a|0)>>>0)){for(;;){if(u[0|B]!=101){if(w=B>>>0>>0,B=B+1|0,w)continue;break C}break}q=0,MA=B;break u}q=0;break u}X=-20;break i}if(J=0,(0|(B=e[m+268>>2]))!=32)for(q=re+Ge|0,X=0;;){if(!X){n:{p:if(_=e[A+632>>2])B=!!(0|Tr(_,B));else{C:{if((0|(_=e[A+600>>2]))>0){if((B=B-_|0)-1>>>0<255)break C;break n}if((_=B-192|0)>>>0<=413){B=128&u[344+(u[_+94240|0]+A|0)|0];break p}if(B>>>0>255)break n}B=128&u[344+(A+B|0)|0]}B&&(J=J+1|0)}B=e[m+268>>2]}n:if(_=e[A+632>>2])X=!!(0|Tr(_,B));else{p:{if((0|(_=e[A+600>>2]))>0){if(X=0,(B=B-_|0)-1>>>0<255)break p;break n}if((_=B-192|0)>>>0<=413){X=128&u[344+(u[_+94240|0]+A|0)|0];break n}if(X=0,B>>>0>255)break n}X=128&u[344+(A+B|0)|0]}if(q=UA(m+268|0,q)+q|0,(0|(B=e[m+268>>2]))==32)break}if(!((0|w)>(0|J))){q=18+(w-Ye|0)|0;break u}}for(;w=u[0|r],r=o=r+1|0,w;);if(u[0|o]!=7)continue s;if(A=a+di|0,e[t>>2]=e[t>>2]+(A||1),Nt)break A;break r}w=ue,re=ne,_=W,de=q+de|0;continue}re=re+Ge|0,X=21-Ye|0;break i}re=re+Ge|0,X=20-Ye|0}w=ue,_=W,de=X+de|0}}kt=86135}e[l+12>>2]=ui,e[l+8>>2]=Bs,e[l+4>>2]=kt,e[l>>2]=Nt}$=m+384|0}function It(A,t){var r,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0,kt=0,Gt=0,Nt=0;$=r=$-1168|0,e[r+928>>2]=0,e[r+932>>2]=0,e[r+920>>2]=0,e[r+924>>2]=0,e[r+912>>2]=0,e[r+916>>2]=0,e[r+904>>2]=0,e[r+908>>2]=0,e[r+896>>2]=0,e[r+900>>2]=0;e:{A:{if(A){if(u[0|A]|8&t)break A;break e}if(!(8&t))break e}if(Wt(r+1088|0,A,40),16&t){if((0|Qa(_A(r+704|0,A)))<=0)break e;q=8&t}else(q=8&t)|u[r+1088|0]||(v[r+1088>>1]=u[85055]|u[85056]<<8,d[r+1090|0]=u[85057]),e[r+496>>2]=137584,e[r+500>>2]=47,e[r+504>>2]=47,IA(a=r+512|0,85286,r+496|0),e[r+484>>2]=r+1088,e[r+480>>2]=a,IA(a=r+704|0,85425,r+480|0),(0|Qa(a))>0||(e[r+468>>2]=47,e[r+472>>2]=47,e[r+464>>2]=137584,IA(a=r+512|0,85648,r+464|0),e[r+452>>2]=r+1088,e[r+448>>2]=a,IA(r+704|0,85425,r+448|0));if(o=q?86012:85055,!(re=ka(r+704|0,85712))){if(a=0,3&t)break e;o=(0|hs(a=r+1088|0))<0?o:a}if((X=2&t)||(a=e[47192])&&(ko(a),e[47192]=0),Me=_A(r+992|0,o),J=_A(r+944|0,o),X?((a=Ra(200992,43))&&(d[0|a]=0),e[r+432>>2]=A+3,IA(A=r+704|0,86030,r+432|0),Xr(200992,A)):(e[32972]=199592,Wt(200992,A,40),d[201088]=0,d[201040]=0,e[50299]=200992,e[50298]=201088,e[50297]=201040),Qs(X),re){for(ne=e[30450],Ye=r+548|0,de=r+544|0,iA=r+540|0,bA=r+536|0,MA=r+532|0,jA=r+528|0,WA=12|(A=r+512|0),it=8|A,kt=4|A;Ot(r+704|0,190,re);){A=r+704|0;A:{if(u[r+704|0]!=35){r:if(!((0|(A=TA(r+704|0)-1|0))<=0))for(;;){if(!((0|(o=d[0|(a=(r+704|0)+A|0)]))==32|o-9>>>0<5))break r;if(d[0|a]=0,!((0|(A=A-1|0))>0))break}if(!(A=ws(r+704|0)))break A}d[0|A]=0}A=r+704|0;A:if(a=u[r+704|0])for(;;){if((0|(a=a<<24>>24))==32|a-9>>>0<5)break A;if(!(a=u[0|(A=A+1|0)]))break}if(d[0|A]=0,u[r+704|0])if(A=A+1|0,a=cs(129744,r+704|0)){l=0,$=o=$-416|0;A:if(c=e[47192]){r:switch(a-19|0){case 16:if(e[o+32>>2]=o+412,(0|dt(A,84249,o+32|0))!=1)break A;e[c+324>>2]=e[o+412>>2];break A;case 8:En(A,c+320|0,27);break A;case 2:if(e[o+48>>2]=188784,dt(A,84249,o+48|0),!(A=u[188784]))break A;e[c+152>>2]=A;break A;case 11:if(u[0|A]){for(f=e[30450];;)if(a=A,A=A+1|0,!((0|(l=d[0|a]))==32|l-9>>>0<5)){for(l=js(a),e[o+412>>2]=l,(0|l)>0&&(l>>>0<=31?e[c+104>>2]=e[c+104>>2]|1<>>0<=63?e[c+108>>2]=e[c+108>>2]|1<>2]=l,Ar(f,84700,o- -64|0)),a=A);a=(A=a)+1|0,(l=d[0|A])-48>>>0<10|(32|l)-97>>>0<26;);if(!l)break}}8&(A=e[c+104>>2])&&(e[c+124>>2]=46,e[c+128>>2]=44),4&A&&(e[c+124>>2]=0);break A;default:if((65280&a)!=256)break A;e[o+16>>2]=24+(c+((255&a)<<2)|0),dt(A,84249,o+16|0);break A;case 1:e[o+144>>2]=c,e[o+148>>2]=c+4,dt(A,85642,o+144|0);break A;case 3:if(a=0,cA(l=o+160|0,0,240),e[o+132>>2]=o+360,e[o+128>>2]=o+320,e[o+124>>2]=o+280,e[o+120>>2]=o+240,e[o+116>>2]=o+200,e[o+112>>2]=l,l=dt(A,85037,o+112|0),e[o+412>>2]=l,e[c+152>>2]=0,(0|l)<=0)break A;for(w=e[30450];;){s:if(gr(f=(o+160|0)+R(a,40)|0,85301)){i:{if((0|(E=e[34454]))>0)for(W=e[34455],A=0;;){if(!gr(f,W+R(A,68)|0))break i;if((0|E)==(0|(A=A+1|0)))break}e[o+96>>2]=f,Ar(w,85562,o+96|0),l=e[o+412>>2];break s}d[156+(a+c|0)|0]=A}if(!((0|l)>(0|(a=a+1|0))))break}break A;case 9:e[o+88>>2]=c+20,e[o+84>>2]=c+16,e[o+80>>2]=c+8,dt(A,84778,o+80|0);break A;case 10:En(A,c+12|0,29);break A;case 5:if((0|(w=yn(A,o+160|0)))<=0)break A;if(a=0,A=0,w>>>0>=4)for(W=-4&w,f=c+304|0;E=o+160|0,v[f+(A<<1)>>1]=e[E+(A<<2)>>2],v[f+((m=1|A)<<1)>>1]=e[E+(m<<2)>>2],v[f+((m=2|A)<<1)>>1]=e[E+(m<<2)>>2],v[f+((m=3|A)<<1)>>1]=e[E+(m<<2)>>2],A=A+4|0,(0|W)!=(0|(l=l+4|0)););if(!(l=3&w))break A;for(;v[304+(c+(A<<1)|0)>>1]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(a=a+1|0)););break A;case 6:if((0|(w=yn(A,o+160|0)))<=0)break A;if(a=0,A=0,w>>>0>=4)for(W=-4&w,f=c+296|0;E=o+160|0,d[A+f|0]=e[E+(A<<2)>>2],d[(m=1|A)+f|0]=e[E+(m<<2)>>2],d[(m=2|A)+f|0]=e[E+(m<<2)>>2],d[(m=3|A)+f|0]=e[E+(m<<2)>>2],A=A+4|0,(0|W)!=(0|(l=l+4|0)););if(!(l=3&w))break A;for(;d[296+(A+c|0)|0]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(a=a+1|0)););break A;case 7:if((0|(w=yn(A,o+160|0)))<=0)break A;if(a=0,A=0,w>>>0>=4)for(W=-4&w,f=c+304|0;m=E=f+(A<<1)|0,B=Q[E>>1],E=o+160|0,v[m>>1]=B+Q[E+(A<<2)>>1],v[(B=f+((m=1|A)<<1)|0)>>1]=Q[B>>1]+Q[E+(m<<2)>>1],v[(B=f+((m=2|A)<<1)|0)>>1]=Q[B>>1]+Q[E+(m<<2)>>1],v[(B=f+((m=3|A)<<1)|0)>>1]=Q[B>>1]+Q[E+(m<<2)>>1],A=A+4|0,(0|W)!=(0|(l=l+4|0)););if(!(l=3&w))break A;for(;v[(f=c+(A<<1)|0)+304>>1]=Q[f+304>>1]+Q[(o+160|0)+(A<<2)>>1],A=A+1|0,(0|l)!=(0|(a=a+1|0)););break A;case 4:d[c+169|0]=1;break A;case 0:break r}d[c+208|0]=1}else e[o>>2]=Pi(129568,a),Ar(e[30450],89101,o);$=o+416|0}else{A:switch(cs(131904,r+704|0)-1|0){case 1:if(X||(d[r+1040|0]=0,e[r+512>>2]=5,e[r+32>>2]=r+1040,e[r+36>>2]=r+512,dt(A,86237,r+32|0),e[r+1040>>2]==1769103734&e[r+1044>>2]==7630433))continue;if((A=TA(r+1040|0)+2|0)>>>0<99-ue>>>0&&(d[0|(a=ue+201088|0)]=e[r+512>>2],_A(a+1|0,r+1040|0),ue=A+ue|0),!Gt){if(A=0,(a=f=r+1040|0)||(a=e[57150])){if(A=86875,e[(o=$-32|0)+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,c=0,l=u[86875])if(u[86876]){for(;e[(c=o+(l>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>l&1))break r;if(l=u[A+1|0],A=A+1|0,!l)break}c=A-a|0}else{for(A=a;o=A,A=A+1|0,u[0|o]==(0|l););c=o-a|0}if(u[0|(A=c+a|0)]){a=86875,$=l=$-32|0,o=d[86875];r:if(u[86876]&&o){if(cA(l,0,32),o=u[86875])for(;e[(c=l+(o>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>o&1)break r;if(o=u[a+1|0],a=a+1|0,!o)break}}else a=_s(A,o);$=l+32|0,u[0|(a=(a-A|0)+A|0)]?(e[57150]=a+1,d[0|a]=0):e[57150]=0}else e[57150]=0,A=0}a=_A(Me,A),_A(J,A),hs(_A(r+896|0,A)),e[47192]=GA(a),Wt(e[32972]+40|0,f,20)}Gt=1;continue;case 0:if(X)continue;for(;a=A,A=A+1|0,(0|(o=d[0|a]))==32|o-9>>>0<5;);Wt(201040,a,40);continue;case 2:e[r+1152>>2]=0,a=r+512|0,e[r+48>>2]=a,e[r+52>>2]=r+1152,dt(A,86237,r+48|0),d[201200]=cs(132112,a),d[201201]=e[r+1152>>2];continue;case 4:e[r+64>>2]=J,dt(A,86939,r- -64|0);continue;case 3:e[r+80>>2]=r+896,dt(A,86939,r+80|0);continue;case 8:if(e[r+1152>>2]=100,e[r+1164>>2]=100,e[r+1148>>2]=100,e[r+112>>2]=r+1144,e[r+1144>>2]=0,e[r+96>>2]=r+512,e[r+100>>2]=r+1152,e[r+104>>2]=r+1164,e[r+108>>2]=r+1148,(0|dt(A,91156,r+96|0))<2||(A=e[r+512>>2])>>>0>8||((0|(a=e[r+1152>>2]))>=0&&(o=e[32972]+(A<<1)|0,a=ce(_=2.56001*+(0|a))<2147483648?~~_:-2147483648,v[o+236>>1]=a,v[o+164>>1]=a),(0|(a=e[r+1164>>2]))>=0&&(o=e[32972]+(A<<1)|0,a=ce(_=2.56001*+(0|a))<2147483648?~~_:-2147483648,v[o+254>>1]=a,v[o+182>>1]=a),(0|(o=e[r+1148>>2]))<0?a=e[32972]:(f=(a=e[32972])+(A<<1)|0,o=ce(_=2.56001*+(0|o))<2147483648?~~_:-2147483648,v[f+200>>1]=o),v[218+((A<<1)+a|0)>>1]=e[r+1144>>2],A))continue;v[a+200>>1]=(0|R(v[a+200>>1],105))/100;continue;case 9:if(e[r+132>>2]=r+696,e[r+128>>2]=r+700,(0|dt(A,87106,r+128|0))!=2)continue;if(A=e[32972],a=e[r+700>>2],e[A+64>>2]=(a<<12)-36864,e[A+68>>2]=R(e[r+696>>2]-a|0,108),ce(_=256*(+(a-82|0)/82*.25+1))<2147483648){e[A+116>>2]=~~_;continue}e[A+116>>2]=-2147483648;continue;case 35:Nt||hs(r+896|0),e[r+1164>>2]=0,d[r+1156|0]=u[91267],e[r+1152>>2]=u[91263]|u[91264]<<8|u[91265]<<16|u[91266]<<24,e[r+144>>2]=r+1164,e[r+148>>2]=r+512,e[r+152>>2]=r+1152,(0|dt(A,91302,r+144|0))<2|e[49848]>59||(A=oo(r+512|0))&&(d[R(e[49848],3)+199408|0]=A,A=oo(r+1152|0),a=e[49848],o=R(a,3)+199408|0,d[o+1|0]=A,e[49848]=a+1,d[o+2|0]=e[r+1164>>2]),Nt=1;continue;case 10:e[r+1140>>2]=0,a=e[32972],e[a+100>>2]=0,e[r+164>>2]=a+100,e[r+160>>2]=a+96,dt(A,87106,r+160|0);continue;case 11:if(e[r+176>>2]=r+1140,(0|dt(A,87268,r+176|0))!=1)continue;e[e[32972]+88>>2]=e[r+1140>>2]<<5;continue;case 12:if(e[r+192>>2]=r+1140,(0|dt(A,87268,r+192|0))!=1)continue;e[e[32972]+92>>2]=e[r+1140>>2];continue;case 13:if(e[r+208>>2]=r+1140,(0|dt(A,87268,r+208|0))!=1)continue;a=e[32972],(0|(A=e[r+1140>>2]))>=5&&(e[a+108>>2]=1,e[r+1140>>2]=4,A=4),e[a+104>>2]=A+1;continue;case 14:for(e[r+552>>2]=-1,e[r+556>>2]=-1,e[r+544>>2]=-1,e[r+548>>2]=-1,e[r+536>>2]=-1,e[r+540>>2]=-1,e[r+528>>2]=-1,e[r+532>>2]=-1,e[r+240>>2]=jA,e[r+244>>2]=MA,e[r+248>>2]=bA,e[r+252>>2]=iA,e[r+256>>2]=de,e[r+260>>2]=Ye,e[r+520>>2]=-1,e[r+524>>2]=-1,e[r+512>>2]=-1,e[r+516>>2]=-1,e[r+228>>2]=kt,e[r+232>>2]=it,e[r+236>>2]=WA,e[r+224>>2]=r+512,dt(A,84222,r+224|0),W=e[32972],A=0,l=e[r+516>>2],o=0;;){if(a=o,c=l,f=A,(0|(o=e[(l=(A<<=2)+(r+512|0)|0)>>2]))==-1&&(o=8e3,e[l>>2]=8e3,f&&(e[(r+512|0)+(4|A)>>2]=e[508+(A+r|0)>>2])),l=e[(r+512|0)+(4|A)>>2],!((0|a)>=(0|(o=(0|o)/8|0))||(0|(E=o-a|0))<=0||(w=a+1|0,A=a,1&E&&(d[344+(a+W|0)|0]=(0|c)>=255?255:c,A=w),(0|o)==(0|w))))for(w=l-c|0;B=W+344|0,m=c+((0|R(w,A-a|0))/(0|E)|0)|0,d[B+A|0]=(0|m)>=255?255:m,m=c+((0|R(w,(Ge=A+1|0)-a|0))/(0|E)|0)|0,d[B+Ge|0]=(0|m)>=255?255:m,(0|o)!=(0|(A=A+2|0)););if(A=f+2|0,!(f>>>0<10))break}continue;case 15:if(e[r+272>>2]=r+1140,(0|dt(A,87268,r+272|0))!=1)continue;e[e[32972]+112>>2]=(e[r+1140>>2]<<6)/100;continue;case 16:a=e[32972],e[(o=a+300|0)>>2]=0,e[o+4>>2]=0,e[(l=a+292|0)>>2]=0,e[l+4>>2]=0,e[(c=a+284|0)>>2]=0,e[c+4>>2]=0,e[(f=a+276|0)>>2]=0,e[f+4>>2]=0,e[r+316>>2]=a+304,e[r+312>>2]=o,e[r+308>>2]=a+296,e[r+304>>2]=l,e[r+300>>2]=a+288,e[r+296>>2]=c,e[r+292>>2]=a+280,e[r+288>>2]=f,a=dt(A,84553,r+288|0),A=e[32972],e[A+272>>2]=a,e[A+276>>2]=0-e[A+276>>2],e[A+284>>2]=0-e[A+284>>2],e[A+292>>2]=0-e[A+292>>2],e[A+300>>2]=0-e[A+300>>2];continue;case 17:a=e[32972],e[(o=a+336|0)>>2]=0,e[o+4>>2]=0,e[(l=a+328|0)>>2]=0,e[l+4>>2]=0,e[(c=a+320|0)>>2]=0,e[c+4>>2]=0,e[(f=a+312|0)>>2]=0,e[f+4>>2]=0,e[r+348>>2]=a+340,e[r+344>>2]=o,e[r+340>>2]=a+332,e[r+336>>2]=l,e[r+332>>2]=a+324,e[r+328>>2]=c,e[r+324>>2]=a+316,e[r+320>>2]=f,A=dt(A,84553,r+320|0),e[e[32972]+308>>2]=A;continue;case 36:a=e[32972],e[r+352>>2]=a+120,e[r+356>>2]=a+124,e[r+1140>>2]=dt(A,87106,r+352|0);continue;case 33:e[r+368>>2]=e[32972]+84,dt(A,87268,r+368|0),Xa(3);continue;case 31:a=e[32972],e[(o=a+156|0)>>2]=0,e[o+4>>2]=0,e[(l=a+148|0)>>2]=0,e[l+4>>2]=0,e[(c=a+140|0)>>2]=0,e[c+4>>2]=0,e[(f=a+132|0)>>2]=0,e[f+4>>2]=0,e[r+412>>2]=a+160,e[r+408>>2]=o,e[r+404>>2]=a+152,e[r+400>>2]=l,e[r+396>>2]=a+144,e[r+392>>2]=c,e[r+388>>2]=a+136,e[r+384>>2]=f,dt(A,84553,r+384|0),A=e[32972],e[A+152>>2]=e[A+152>>2]-40;continue;case 32:e[r+416>>2]=145740,dt(A,87268,r+416|0),Xa(3);continue;case 6:case 7:continue;default:break A}e[r+16>>2]=r+704,Ar(ne,87359,r+16|0)}}nr(re)}A:{if((A=e[47192])|X){if(X)break A}else A=GA(Me),e[47192]=A;r:{if(!q){if((0|(A=hs(r+896|0)))<0&&(e[r>>2]=r+896,Ar(e[30450],87567,r),A=0),e[e[32972]+60>>2]=A,a=e[47192],e[a+292>>2]=A,Da(a,J,4&t),u[132848])break r;ko(e[47192]),a=0;break e}e[e[32972]+60>>2]=0,e[A+292>>2]=0}d[ue+201088|0]=0}a=e[32972]}return $=r+1168|0,a}function dt(A,t,r){var a,o,l,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0;$=l=$-16|0,e[l+12>>2]=r,$=c=$-144|0,a=cA(c,0,144),e[a+76>>2]=-1,e[a+44>>2]=A,e[a+32>>2]=18,e[a+84>>2]=A,c=t,Ye=r,A=0,$=o=$-304|0;e:{A:{r:if(e[a+4>>2]||(Bn(a),e[a+4>>2])){if(!(t=u[0|c]))break e;s:{i:{o:{c:{for(;;){u:{l:if((0|(t&=255))==32|t-9>>>0<5){for(;t=c,c=c+1|0,(0|(r=u[t+1|0]))==32|r-9>>>0<5;);for(ja(a,0,0);(0|(r=e[a+4>>2]))==e[a+104>>2]?r=Fe(a):(e[a+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);c=e[a+4>>2],(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(c=c-1|0,e[a+4>>2]=c),c=r=c-e[a+44>>2]|0,w=ue+e[a+124>>2]|0,w=(f=r>>31)+((r=X+e[a+120>>2]|0)>>>0>>0?w+1|0:w)|0,ue=(X=r+c|0)>>>0>>0?w+1|0:w}else{n:{p:{C:{if(u[0|c]==37){if((0|(t=u[c+1|0]))==42)break C;if((0|t)!=37)break p}if(ja(a,0,0),u[0|c]!=37)(0|(t=e[a+4>>2]))==e[a+104>>2]?t=Fe(a):(e[a+4>>2]=t+1,t=u[0|t]);else{for(;(0|(t=e[a+4>>2]))==e[a+104>>2]?t=Fe(a):(e[a+4>>2]=t+1,t=u[0|t]),(0|t)==32|t-9>>>0<5;);c=c+1|0}if(u[0|c]!=(0|t)){if((0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),(0|t)>=0||(m=0,de))break e;break r}E=(f=t=e[a+4>>2]-e[a+44>>2]|0)>>31,t=ue+e[a+124>>2]|0,m=((r=X+e[a+120>>2]|0)>>>0>>0?t+1|0:t)+E|0,ue=(X=r+f|0)>>>0>>0?m+1|0:m,t=c;break l}B=0,t=c+2|0;break n}u[c+2|0]!=36|t-48>>>0>=10?(B=e[Ye>>2],Ye=Ye+4|0,t=c+1|0):(t=u[c+1|0]-48|0,e[(r=$-16|0)+12>>2]=Ye,t=(t>>>0>1?(t<<2)-4|0:0)+Ye|0,e[r+8>>2]=t+4,B=e[t>>2],t=c+3|0)}if(_=0,c=0,u[0|t]-48>>>0<10)for(;c=(u[0|t]+R(c,10)|0)-48|0,r=u[t+1|0],t=t+1|0,r-48>>>0<10;);(0|(q=u[0|t]))==109&&(W=0,_=!!(0|B),q=u[t+1|0],A=0,t=t+1|0),t=(r=t)+1|0,f=3,m=_;n:{p:switch(q-65|0){case 39:f=r+2|0,t=(r=u[r+1|0]==104)?f:t,f=r?-2:-1;break n;case 43:f=r+2|0,t=(r=u[r+1|0]==108)?f:t,f=r?3:1;break n;case 51:case 57:f=1;break n;case 11:f=2;break n;case 41:break n;case 0:case 2:case 4:case 5:case 6:case 18:case 23:case 26:case 32:case 34:case 35:case 36:case 37:case 38:case 40:case 45:case 46:case 47:case 50:case 52:case 55:break p;default:break s}f=0,t=r}m=f,Ge=(f=(47&(r=u[0|t]))==3)?1:m;n:if((0|(Me=f?32|r:r))!=91){p:{if((0|Me)!=110){if((0|Me)!=99)break p;c=(0|c)<=1?1:c;break n}po(B,Ge,X,ue);break l}for(ja(a,0,0);(0|(r=e[a+4>>2]))==e[a+104>>2]?r=Fe(a):(e[a+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);r=e[a+4>>2],(0|(f=e[a+116>>2]))>0|(0|f)>=0&&(r=r-1|0,e[a+4>>2]=r),f=r=r-e[a+44>>2]|0,w=ue+e[a+124>>2]|0,ue=(m=r>>31)+((r=X+e[a+120>>2]|0)>>>0>>0?w+1|0:w)|0,ue=(X=r+f|0)>>>0>>0?ue+1|0:ue}if(re=c,ja(a,c,J=c>>31),(0|(r=e[a+4>>2]))==e[a+104>>2]){if((0|Fe(a))<0)break i}else e[a+4>>2]=r+1;(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),r=16;n:{p:{C:{m:{b:switch(Me-88|0){default:if((r=Me-65|0)>>>0>6|!(1<>2]-e[a+44>>2]|0,e[a+120>>2]!=(0-r|0)|e[a+124>>2]!=(0-((r>>31)+!!(0|r)|0)|0))break C;break o;case 3:case 11:case 27:if((16|Me)==115){if(cA(o+32|0,-1,257),d[o+32|0]=0,(0|Me)!=115)break p;d[o+65|0]=0,d[o+46|0]=0,v[o+42>>1]=0,v[o+44>>1]=0;break p}cA(o+32|0,E=(0|(f=u[t+1|0]))==94,257),d[o+32|0]=0,r=E?t+2|0:t+1|0;h:{y:{I:{if((0|(t=u[(E?2:1)+t|0]))!=45){if((0|t)==93)break I;f=(0|f)!=94,t=r;break h}f=(0|f)!=94,d[o+78|0]=f;break y}f=(0|f)!=94,d[o+126|0]=f}t=r+1|0}for(;;){if((0|(r=u[0|t]))==45){if(r=45,!(!(E=u[t+1|0])|(0|E)==93)){if(m=t+1|0,E>>>0<=(t=u[t-1|0])>>>0)r=E;else for(;d[(t=t+1|0)+(o+32|0)|0]=f,(r=u[0|m])>>>0>t>>>0;);t=m}}else{if(!r)break i;if((0|r)==93)break p}d[33+(r+o|0)|0]=f,t=t+1|0}case 23:r=8;break m;case 12:case 29:r=10;break m;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 22:case 25:case 26:case 28:case 30:case 31:break n;case 0:case 24:case 32:break m;case 17:break b}r=0}E=0,w=0,f=0,m=0,q=0,$=ne=$-16|0;m:if((0|r)!=1&r>>>0<=36){for(;(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),(0|c)==32|c-9>>>0<5;);b:{h:switch(c-43|0){case 0:case 2:break h;default:break b}q=(0|c)==45?-1:0,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c])}b:{h:{y:{I:{if(!(!!(0|r)&(0|r)!=16|(0|c)!=48)){if((0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),(-33&c)==88){if(r=16,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),u[c+121329|0]<16)break y;(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),ja(a,0,0);break m}if(r)break I;r=8;break y}if(!((r=r||10)>>>0>u[c+121329|0])){(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),ja(a,0,0),e[56798]=28;break m}}if((0|r)==10){if((f=c-48|0)>>>0<=9){for(r=0;m=(r=R(r,10)+f|0)>>>0<429496729,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),m&(f=c-48|0)>>>0<=9;);E=r}I:if(!(f>>>0>9)){for(r=YA(E,0,10,0),m=xe;;){if(w=m,m=(0|(w=(E=r+f|0)>>>0>>0?w+1|0:w))==429496729&E>>>0>=2576980378|w>>>0>429496729,(0|(r=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=r+1,c=u[0|r]),m|(f=c-48|0)>>>0>9)break I;if(r=YA(E,w,10,0),!((0|(m=xe))==-1&~f>>>0>=r>>>0|(0|m)!=-1))break}r=10;break h}if(r=10,f>>>0<=9)break h;break b}}if(r-1&r){if((m=u[c+121329|0])>>>0>>0){for(;E=(f=R(r,f)+m|0)>>>0<119304647,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),E&(m=u[c+121329|0])>>>0>>0;);E=f}if(r>>>0<=m>>>0)break h;for(;;){if(f=YA(E,w,r,0),(0|(re=xe))==-1&~(m&=255)>>>0>>0||(w=re,w=(E=f+m|0)>>>0>>0?w+1|0:w,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),r>>>0<=(m=u[c+121329|0])>>>0))break h;if(Ur(ne,r,0,0,0,E,w,0,0),e[ne+8>>2]|e[ne+12>>2])break}}else{if(re=d[84400+(R(r,23)>>>5&7)|0],(f=u[c+121329|0])>>>0>>0){for(;E=(m=m<>>0<134217728,(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),E&(f=u[c+121329|0])>>>0>>0;);E=m}if(!(r>>>0<=f>>>0||(J=31&re,(63&re)>>>0>=32?(m=0,J=-1>>>J|0):J=(m=-1>>>J|0)|(1<>>0>J>>>0)))for(;;){if(iA=255&f,f=E,c=31&re,(63&re)>>>0>=32?(w=f<>>32-c|w<>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),r>>>0<=(f=u[c+121329|0])>>>0)break h;if(!((0|m)==(0|w)&E>>>0<=J>>>0|m>>>0>w>>>0))break}}}if(!(u[c+121329|0]>=r>>>0)){for(;(0|(c=e[a+4>>2]))==e[a+104>>2]?c=Fe(a):(e[a+4>>2]=c+1,c=u[0|c]),u[c+121329|0]>>0;);e[56798]=68,q=0,E=-1,w=-1}}(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),E=(r=E^q)-q|0,w=((c=q>>31)^w)-((r>>>0>>0)+c|0)|0}else e[56798]=28;if($=ne+16|0,r=e[a+4>>2]-e[a+44>>2]|0,e[a+120>>2]==(0-r|0)&e[a+124>>2]==(0-((r>>31)+!!(0|r)|0)|0))break o;if(!(!B|(0|Me)!=112)){e[B>>2]=E;break n}po(B,Ge,E,w);break n}if(!B)break n;c=e[o+16>>2],r=e[o+20>>2],f=e[o+8>>2],_=e[o+12>>2];C:switch(0|Ge){case 0:$=w=$-32|0;m:if(0|(m=(E=2147483647&r)-1065418752|0)>>>0<(re=E-1082064896|0)>>>0){if(E=(33554431&r)<<7|c>>>25,re=m=0,!(!m&(0|(c&=33554431))==16777216?!(f|_):!m&c>>>0<16777216)){m=E+1073741825|0;break m}if(m=E+1073741824|0,16777216^c|f|_|re)break m;m=(1&E)+m|0}else(!c&(0|E)==2147418112?!(f|_):E>>>0<2147418112)?(m=2139095040,E>>>0>1082064895||(m=0,(E=E>>>16|0)>>>0<16145||(jt(w+16|0,f,_,c,m=65535&r|65536,E-16129|0),Hr(w,f,_,c,m,16257-E|0),c=e[w+8>>2],m=(33554431&e[w+12>>2])<<7|c>>>25,E=e[w>>2]|!!(e[w+16>>2]|e[w+24>>2]|e[w+20>>2]|e[w+28>>2]),_=e[w+4>>2],(!(f=0)&(0|(c&=33554431))==16777216?!(E|_):!f&c>>>0<16777216)?16777216^c|E|f|_||(m=(1&m)+m|0):m=m+1|0))):m=4194303&((33554431&r)<<7|c>>>25)|2143289344;$=w+32|0,e[B>>2]=-2147483648&r|m;break n;case 1:O[B>>3]=Ms(f,_,c,r);break n;case 2:break C;default:break n}e[B>>2]=f,e[B+4>>2]=_,e[B+8>>2]=c,e[B+12>>2]=r;break n}f=(ne=(0|Me)!=99)?31:c+1|0;p:if((0|Ge)!=1){if(_){if(c=0,!(r=gt(f)))break c;for(;;){for(A=r;;){if((0|(r=e[a+4>>2]))==e[a+104>>2]?r=Fe(a):(e[a+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0]){f=0,W=A;break p}if(d[A+c|0]=r,(0|f)==(0|(c=c+1|0)))break}if(m=1,!(r=xr(A,f=f<<1|1)))break}W=A,A=0;break s}if(c=0,B)for(;;){if((0|(A=e[a+4>>2]))==e[a+104>>2]?A=Fe(a):(e[a+4>>2]=A+1,A=u[0|A]),!u[33+(A+o|0)|0]){f=0,W=A=B;break p}d[c+B|0]=A,c=c+1|0}for(;(0|(A=e[a+4>>2]))==e[a+104>>2]?A=Fe(a):(e[a+4>>2]=A+1,A=u[0|A]),u[33+(A+o|0)|0];);A=0,W=0,f=0}else{if(r=B,_&&!(r=gt(f<<2)))break c;for(e[o+296>>2]=0,e[o+300>>2]=0,c=0;;){A=r;C:{for(;;){if((0|(r=e[a+4>>2]))==e[a+104>>2]?r=Fe(a):(e[a+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0])break C;d[o+27|0]=r,E=o+28|0,r=e[(m=(r=o+296|0)||228604)>>2];m:{b:{h:{y:{if(!(W=o+27|0)){if(r)break y;r=0;break m}if(!r){if((0|(w=(r=u[0|W])<<24>>24))>=0){E&&(e[E>>2]=r),r=!!(0|w);break m}if(!e[e[56841]>>2]){if(r=1,!E)break h;e[E>>2]=57343&w,r=1;break m}if((r=r-194|0)>>>0>50)break y;r=e[124752+(r<<2)>>2];break b}if(q=1,!(((Ge=(w=u[0|W])>>>3|0)-16|(r>>26)+Ge)>>>0>7))for(;;){if(q=q-1|0,(0|(r=w-128|r<<6))>=0){e[m>>2]=0,E&&(e[E>>2]=r),r=1-q|0;break m}if(!q)break b;if((192&(w=u[0|(W=W+1|0)]))!=128)break}}e[m>>2]=0,e[56798]=25,r=-1}break m}e[m>>2]=r,r=-2}if((0|r)!=-2){if(W=0,(0|r)==-1)break i;if(A&&(e[(c<<2)+A>>2]=e[o+28>>2],c=c+1|0),!(!_|(0|c)!=(0|f)))break}}if(m=1,r=xr(A,(f=f<<1|1)<<2))continue;break s}break}if(W=0,f=A,o+296|0&&e[o+296>>2])break i}if(r=e[a+4>>2],(0|(E=e[a+116>>2]))>0|(0|E)>=0&&(r=r-1|0,e[a+4>>2]=r),r=(E=r-e[a+44>>2]|0)+e[a+120>>2]|0,w=e[a+124>>2]+(E>>31)|0,!((w=r>>>0>>0?w+1|0:w)|r)|!(ne|(0|r)==(0|re)&(0|w)==(0|J)))break u;_&&(e[B>>2]=A),(0|Me)!=99&&(f&&(e[(c<<2)+f>>2]=0),W?d[c+W|0]=0:W=0),A=f}c=r=e[a+4>>2]-e[a+44>>2]|0,m=ue+e[a+124>>2]|0,ue=(f=r>>31)+((r=X+e[a+120>>2]|0)>>>0>>0?m+1|0:m)|0,ue=(X=r+c|0)>>>0>>0?ue+1|0:ue,de=!!(0|B)+de|0}if(c=t+1|0,t=u[t+1|0])continue;break e}break}A=f;break o}m=1,W=0,A=0;break s}m=_;break A}m=_}if(de)break A}de=-1}m&&(HA(W),HA(A))}return $=o+304|0,$=a+144|0,$=l+16|0,de}function gt(A){var t,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;$=t=$-16|0;e:{A:{r:{s:{i:{o:{c:{u:{l:{if((A|=0)>>>0<=244){if(3&(r=(f=e[57152])>>>(a=(m=A>>>0<11?16:A+11&-8)>>>3|0)|0)){r=(A=(a=a+(1&~r)|0)<<3)+228648|0,o=e[A+228656>>2],(0|r)!=(0|(A=e[o+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):e[57152]=ia(-2,a)&f,A=o+8|0,r=a<<3,e[o+4>>2]=3|r,e[(r=r+o|0)+4>>2]=1|e[r+4>>2];break e}if((B=e[57154])>>>0>=m>>>0)break l;if(r){r=(A=(o=en(0-(A=(0-(A=2<>2],(0|r)!=(0|(A=e[l+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):(f=ia(-2,o)&f,e[57152]=f),e[l+4>>2]=3|m,o=(A=o<<3)-m|0,e[(a=l+m|0)+4>>2]=1|o,e[A+l>>2]=o,B&&(r=228648+(-8&B)|0,c=e[57157],(A=1<<(B>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=c,e[A+12>>2]=c,e[c+12>>2]=r,e[c+8>>2]=A),A=l+8|0,e[57157]=a,e[57154]=o;break e}if(!(w=e[57153]))break l;for(a=e[228912+(en(0-w&w)<<2)>>2],c=(-8&e[a+4>>2])-m|0,r=a;(A=e[r+16>>2])||(A=e[r+20>>2]);)c=(o=(r=(-8&e[A+4>>2])-m|0)>>>0>>0)?r:c,a=o?A:a,r=A;if(E=e[a+24>>2],(0|(o=e[a+12>>2]))!=(0|a)){A=e[a+8>>2],e[A+12>>2]=o,e[o+8>>2]=A;break A}if(!(A=e[(r=a+20|0)>>2])){if(!(A=e[a+16>>2]))break u;r=a+16|0}for(;l=r,o=A,(A=e[(r=A+20|0)>>2])||(r=o+16|0,A=e[o+16>>2]););e[l>>2]=0;break A}if(m=-1,!(A>>>0>4294967231)&&(m=-8&(A=A+11|0),w=e[57153])){c=0-m|0,f=0,m>>>0<256||(f=31,m>>>0>16777215||(f=62+((m>>>38-(A=Te(A>>>8|0))&1)-(A<<1)|0)|0));n:{p:{if(r=e[228912+(f<<2)>>2])for(A=0,a=m<<((0|f)!=31?25-(f>>>1|0):0);;){if(!((l=(-8&e[r+4>>2])-m|0)>>>0>=c>>>0||(o=r,c=l,l))){c=0,A=r;break p}if(l=e[r+20>>2],r=e[16+((a>>>29&4)+r|0)>>2],A=l?(0|l)==(0|r)?A:l:A,a<<=1,!r)break}else A=0;if(!(A|o)){if(o=0,!(A=(0-(A=2<>2]}if(!A)break n}for(;c=(a=(r=(-8&e[A+4>>2])-m|0)>>>0>>0)?r:c,o=a?A:o,A=(r=e[A+16>>2])||e[A+20>>2];);}if(!(!o|e[57154]-m>>>0<=c>>>0)){if(f=e[o+24>>2],(0|o)!=(0|(a=e[o+12>>2]))){A=e[o+8>>2],e[A+12>>2]=a,e[a+8>>2]=A;break r}if(!(A=e[(r=o+20|0)>>2])){if(!(A=e[o+16>>2]))break c;r=o+16|0}for(;l=r,a=A,(A=e[(r=A+20|0)>>2])||(r=a+16|0,A=e[a+16>>2]););e[l>>2]=0;break r}}}if((A=e[57154])>>>0>=m>>>0){o=e[57157],(r=A-m|0)>>>0>=16?(e[(a=o+m|0)+4>>2]=1|r,e[A+o>>2]=r,e[o+4>>2]=3|m):(e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2],a=0,r=0),e[57154]=r,e[57157]=a,A=o+8|0;break e}if((E=e[57155])>>>0>m>>>0){r=E-m|0,e[57155]=r,A=(a=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[a+4>>2]=3|m,A=a+8|0;break e}if(A=0,w=m+47|0,e[57270]?a=e[57272]:(e[57273]=-1,e[57274]=-1,e[57271]=4096,e[57272]=4096,e[57270]=t+12&-16^1431655768,e[57275]=0,e[57263]=0,a=4096),(r=(l=w+a|0)&(c=0-a|0))>>>0<=m>>>0||(o=e[57262])&&o>>>0<(f=(a=e[57260])+r|0)>>>0|a>>>0>=f>>>0)break e;l:{if(!(4&u[229052])){n:{p:{C:{m:{if(o=e[57158])for(A=229056;;){if((a=e[A>>2])>>>0<=o>>>0&o>>>0>2]>>>0)break m;if(!(A=e[A+8>>2]))break}if((0|(a=ei(0)))==-1||(f=r,(A=(o=e[57271])-1|0)&a&&(f=(r-a|0)+(A+a&0-o)|0),f>>>0<=m>>>0)||(o=e[57262])&&o>>>0<(c=(A=e[57260])+f|0)>>>0|A>>>0>=c>>>0)break n;if((0|a)!=(0|(A=ei(f))))break C;break l}if((0|(a=ei(f=c&l-E)))==(e[A>>2]+e[A+4>>2]|0))break p;A=a}if((0|A)==-1)break n;if(m+48>>>0<=f>>>0){a=A;break l}if((0|ei(a=(a=e[57272])+(w-f|0)&0-a))==-1)break n;f=a+f|0,a=A;break l}if((0|a)!=-1)break l}e[57263]=4|e[57263]}if((0|(a=ei(r)))==-1|(0|(A=ei(0)))==-1|A>>>0<=a>>>0||(f=A-a|0)>>>0<=m+40>>>0)break s}A=e[57260]+f|0,e[57260]=A,A>>>0>oe[57261]&&(e[57261]=A);l:{if(l=e[57158]){for(A=229056;;){if(((o=e[A>>2])+(r=e[A+4>>2])|0)==(0|a))break l;if(!(A=e[A+8>>2]))break}break o}for((A=e[57156])>>>0<=a>>>0&&A||(e[57156]=a),A=0,e[57265]=f,e[57264]=a,e[57160]=-1,e[57161]=e[57270],e[57267]=0;r=(o=A<<3)+228648|0,e[o+228656>>2]=r,e[o+228660>>2]=r,(0|(A=A+1|0))!=32;);r=(o=f-40|0)-(A=a+8&7?-8-a&7:0)|0,e[57155]=r,A=A+a|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(a+o|0)>>2]=40,e[57159]=e[57274];break i}if(8&u[A+12|0]|o>>>0>l>>>0|a>>>0<=l>>>0)break o;e[A+4>>2]=r+f,a=(A=l+8&7?-8-l&7:0)+l|0,e[57158]=a,A=(r=e[57155]+f|0)-A|0,e[57155]=A,e[a+4>>2]=1|A,e[4+(r+l|0)>>2]=40,e[57159]=e[57274];break i}o=0;break A}a=0;break r}oe[57156]>a>>>0&&(e[57156]=a),r=a+f|0,A=229056;o:{c:{u:{l:{n:{p:{for(;;){if((0|r)!=e[A>>2]){if(A=e[A+8>>2])continue;break p}break}if(!(8&u[A+12|0]))break n}for(A=229056;;){if((r=e[A>>2])>>>0<=l>>>0&&(c=r+e[A+4>>2]|0)>>>0>l>>>0)break l;A=e[A+8>>2]}}if(e[A>>2]=a,e[A+4>>2]=e[A+4>>2]+f,e[(w=(a+8&7?-8-a&7:0)+a|0)+4>>2]=3|m,A=(f=r+(r+8&7?-8-r&7:0)|0)-(E=m+w|0)|0,(0|l)==(0|f)){e[57158]=E,A=e[57155]+A|0,e[57155]=A,e[E+4>>2]=1|A;break c}if(e[57157]==(0|f)){e[57157]=E,A=e[57154]+A|0,e[57154]=A,e[E+4>>2]=1|A,e[A+E>>2]=A;break c}if((3&(c=e[f+4>>2]))==1){l=-8&c;n:if(c>>>0<=255){if(o=e[f+8>>2],r=c>>>3|0,(0|(a=e[f+12>>2]))==(0|o)){e[57152]=e[57152]&ia(-2,r);break n}e[o+12>>2]=a,e[a+8>>2]=o}else{if(m=e[f+24>>2],(0|f)==(0|(a=e[f+12>>2])))if((r=e[(c=f+20|0)>>2])||(r=e[(c=f+16|0)>>2])){for(;o=c,(r=e[(c=(a=r)+20|0)>>2])||(c=a+16|0,r=e[a+16>>2]););e[o>>2]=0}else a=0;else r=e[f+8>>2],e[r+12>>2]=a,e[a+8>>2]=r;if(m){o=e[f+28>>2];p:{if(e[(r=228912+(o<<2)|0)>>2]==(0|f)){if(e[r>>2]=a,a)break p;e[57153]=e[57153]&ia(-2,o);break n}if(e[m+(e[m+16>>2]==(0|f)?16:20)>>2]=a,!a)break n}e[a+24>>2]=m,(r=e[f+16>>2])&&(e[a+16>>2]=r,e[r+24>>2]=a),(r=e[f+20>>2])&&(e[a+20>>2]=r,e[r+24>>2]=a)}}c=e[(f=l+f|0)+4>>2],A=A+l|0}if(e[f+4>>2]=-2&c,e[E+4>>2]=1|A,e[A+E>>2]=A,A>>>0<=255){r=228648+(-8&A)|0,(a=e[57152])&(A=1<<(A>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=E,e[A+12>>2]=E,e[E+12>>2]=r,e[E+8>>2]=A;break c}if(c=31,A>>>0<=16777215&&(c=62+((A>>>38-(r=Te(A>>>8|0))&1)-(r<<1)|0)|0),e[E+28>>2]=c,e[E+16>>2]=0,e[E+20>>2]=0,r=228912+(c<<2)|0,(o=e[57153])&(a=1<>>1|0):0),a=e[r>>2];;){if(r=a,(-8&e[a+4>>2])==(0|A))break u;if(a=c>>>29|0,c<<=1,!(a=e[(o=(4&a)+r|0)+16>>2]))break}e[o+16>>2]=E}else e[57153]=a|o,e[r>>2]=E;e[E+24>>2]=r,e[E+12>>2]=E,e[E+8>>2]=E;break c}for(r=(o=f-40|0)-(A=a+8&7?-8-a&7:0)|0,e[57155]=r,A=A+a|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(a+o|0)>>2]=40,e[57159]=e[57274],e[(o=(A=(c+(c-39&7?39-c&7:0)|0)-47|0)>>>0>>0?l:A)+4>>2]=27,A=e[57267],e[o+16>>2]=e[57266],e[o+20>>2]=A,A=e[57265],e[o+8>>2]=e[57264],e[o+12>>2]=A,e[57266]=o+8,e[57265]=f,e[57264]=a,e[57267]=0,A=o+24|0;e[A+4>>2]=7,r=A+8|0,A=A+4|0,r>>>0>>0;);if((0|o)==(0|l))break i;if(e[o+4>>2]=-2&e[o+4>>2],c=o-l|0,e[l+4>>2]=1|c,e[o>>2]=c,c>>>0<=255){r=228648+(-8&c)|0,(a=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;break i}if(A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=Te(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0,(o=e[57153])&(a=1<>>1|0):0),o=e[r>>2];;){if((0|c)==(-8&e[(r=o)+4>>2]))break o;if(a=A>>>29|0,A<<=1,!(o=e[(a=(4&a)+r|0)+16>>2]))break}e[a+16>>2]=l}else e[57153]=a|o,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break i}A=e[r+8>>2],e[A+12>>2]=E,e[r+8>>2]=E,e[E+24>>2]=0,e[E+12>>2]=r,e[E+8>>2]=A}A=w+8|0;break e}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}if(!((A=e[57155])>>>0<=m>>>0)){r=A-m|0,e[57155]=r,A=(a=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[a+4>>2]=3|m,A=a+8|0;break e}}e[56798]=48,A=0;break e}r:if(f){r=e[o+28>>2];s:{if(e[(A=228912+(r<<2)|0)>>2]==(0|o)){if(e[A>>2]=a,a)break s;w=ia(-2,r)&w,e[57153]=w;break r}if(e[f+(e[f+16>>2]==(0|o)?16:20)>>2]=a,!a)break r}e[a+24>>2]=f,(A=e[o+16>>2])&&(e[a+16>>2]=A,e[A+24>>2]=a),(A=e[o+20>>2])&&(e[a+20>>2]=A,e[A+24>>2]=a)}r:if(c>>>0<=15)A=c+m|0,e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2];else if(e[o+4>>2]=3|m,e[(l=o+m|0)+4>>2]=1|c,e[l+c>>2]=c,c>>>0<=255)r=228648+(-8&c)|0,(a=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;else{A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=Te(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0;s:{if((a=1<>>1|0):0),m=e[r>>2];;){if((-8&e[(r=m)+4>>2])==(0|c))break s;if(a=A>>>29|0,A<<=1,!(m=e[(a=(4&a)+r|0)+16>>2]))break}e[a+16>>2]=l}else e[57153]=a|w,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break r}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}A=o+8|0;break e}A:if(E){r=e[a+28>>2];r:{if(e[(A=228912+(r<<2)|0)>>2]==(0|a)){if(e[A>>2]=o,o)break r;e[57153]=ia(-2,r)&w;break A}if(e[E+(e[E+16>>2]==(0|a)?16:20)>>2]=o,!o)break A}e[o+24>>2]=E,(A=e[a+16>>2])&&(e[o+16>>2]=A,e[A+24>>2]=o),(A=e[a+20>>2])&&(e[o+20>>2]=A,e[A+24>>2]=o)}c>>>0<=15?(A=c+m|0,e[a+4>>2]=3|A,e[(A=A+a|0)+4>>2]=1|e[A+4>>2]):(e[a+4>>2]=3|m,e[(o=a+m|0)+4>>2]=1|c,e[o+c>>2]=c,B&&(r=228648+(-8&B)|0,l=e[57157],(A=1<<(B>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A),e[57157]=o,e[57154]=c),A=a+8|0}return $=t+16|0,0|A}function Ut(A,t,r,a,o){var l,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0;$=l=$-544|0,cA(l+320|0,0,100),cA(l+208|0,0,100),E=r?e[r>>2]:E,X=e[A+12>>2],w=e[36115];e:{A:{r:{s:{for(;;){if(c=(0|(c=u[t+f|0]))>=(0|w)?13:c,d[l+f|0]=c,!c){c=f;break s}if(m=(0|w)<=(0|(m=u[(c=1|f)+t|0]))?13:m,d[c+l|0]=m,!m)break s;if((0|(f=f+2|0))==200)break}f=198,re=u[l+199|0];break r}if(!c)break A;re=u[l+(f=c-1|0)|0],(0|c)!=1&&(f=c-2|0)}if(Ge=8&E,e[l+536>>2]=(Ge>>>3|0?3:7)&E,E=u[l+f|0],w=1,_=(0|(B=ks(A,l,l+432|0,l+540|0,l+536|0,1)))>=0?B:0,J=u[0|l])for(f=l,c=J;c=e[144464+((255&c)<<2)>>2],u[c+11|0]==2&&(1048576&(c=e[c+4>>2])||(m=(2097152&c)>>>21|0,m|=c=u[e[144464+(u[0|(W=f+1|0)]<<2)>>2]+10|0]==12,d[(l+208|0)+w|0]=m,q=e[144464+(u[(c?2:1)+f|0]<<2)>>2],m=u[q+11|0]-10>>>0<4294967289|!(32&u[q+6|0])&u[e[144464+(u[(c?3:2)+f|0]<<2)>>2]+11|0]==2?m:m?2:1,f=c?W:f,d[(l+320|0)+w|0]=m,w=w+1|0)),c=u[0|(f=f+1|0)];);f=r=r?_:B;r:{s:{i:{o:{c:{u:{l:{n:{p:{C:{m:{b:switch(e[A+8>>2]-1|0){case 11:if((0|(r=e[l+540>>2]))<2)break p;if(f=1,_=1&(c=r-1|0),(0|r)!=2)break m;w=0;break C;case 8:if((0|(c=e[l+540>>2]))<2)break s;if(w=3&(m=c-1|0),f=1,c-2>>>0>=3)for(_=-4&m,m=0;E=d[0|(c=(l+432|0)+f|0)],d[0|c]=(0|E)<0?4:E,E=d[c+1|0],d[c+1|0]=(0|E)<0?4:E,E=d[c+2|0],d[c+2|0]=(0|E)<0?4:E,E=c,c=d[c+3|0],d[E+3|0]=(0|c)<0?4:c,f=f+4|0,(0|_)!=(0|(m=m+4|0)););if(!w)break s;for(c=0;m=d[0|(E=(l+432|0)+f|0)],d[0|E]=(0|m)<0?4:m,f=f+1|0,(0|w)!=(0|(c=c+1|0)););break s;case 7:if(!u[l+322|0]|d[l+321|0]>0)break s;case 0:if(e[l+536>>2]|e[l+540>>2]<3)break s;if(e[l+536>>2]=2,f=4,r)break r;d[l+434|0]=4;break r;case 1:if(e[l+536>>2])break r;h:{y:{if((0|(w=e[l+540>>2]))>=3){r=w-2|0,e[l+536>>2]=r,f=r;I:if(512&X&&(c=e[144464+(re<<2)>>2],(0|(m=u[c+11|0]))!=2)){f=e[c>>2],c=l;x:{N:{if((0|(_=e[A+212>>2]))!=26977){if((0|_)!=24942)break N;L:switch(f-110|0){case 0:case 5:if(f=r,u[e[144464+(E<<2)>>2]+11|0]==2)break I;break;default:break L}f=w-1|0;break x}if((0|f)==115&&(f=r,u[e[144464+(E<<2)>>2]+11|0]==2))break I;f=w-1|0;break x}N:{L:{if((0|f)==115){if(f=r,(0|(m=u[e[144464+(E<<2)>>2]+11|0]))!=8)break L;break I}if((0|m)!=8)break N;m=u[e[144464+(E<<2)>>2]+11|0]}if(f=r,(255&m)==2)break I}f=w-1|0}e[c+536>>2]=f}if(524288&X&&(d[(c=w-1|0)+(w=l+208|0)|0]<=d[r+w|0]||(e[l+536>>2]=c,f=c)),u[(l+432|0)+f|0]>1){c=f;break h}if(c=2,r=f-1|0,f>>>0>=2)break y;e[l+536>>2]=f+1;break h}r=1}c=r,e[l+536>>2]=c}if(f=4,d[0|(r=(l+432|0)+c|0)]>=0||d[(c=(l+432|0)+c|0)-1|0]>=4&d[c+1|0]>3)break r;d[0|r]=4;break r;case 2:if(e[l+536>>2])break r;for(r=(f=e[l+540>>2])-1|0,r&=r>>31;;){if((0|(f=f-1|0))<=0)break i;if(!(d[0|(c=(l+432|0)+f|0)]>=0))break}e[l+536>>2]=f,f=4,d[0|c]=4;break r;case 3:if(e[l+536>>2])break s;if(c=(0|(f=e[l+540>>2]-3|0))<=1?1:f,e[l+536>>2]=c,f=4,r)break r;d[c+(l+432|0)|0]=4;break r;case 4:if(e[l+536>>2])break r;if(c=(r=e[l+540>>2])-3|0,e[l+536>>2]=c,(0|r)<=15){h:{y:switch(u[e[144464+(re<<2)>>2]+11|0]-2|0){case 0:c=d[r+94176|0];break h;case 2:c=d[r+94192|0];break h;default:break y}c=d[r+94160|0]}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r;case 5:if(e[l+536>>2])break r;if(w=-1,m=0,!((0|(r=(c=e[l+540>>2])-1|0))<2)){if(f=1,W=1&c,(0|c)!=3)for(q=(-2&c)-4|0,c=0;d[(l+432|0)+f|0]<0&&(m=(E=(0|(_=d[(l+320|0)+f|0]))<(0|w))?m:f,w=E?w:_),d[(E=f+1|0)+(l+432|0)|0]<0&&(m=(_=(0|(Me=d[E+(l+320|0)|0]))<(0|w))?m:E,w=_?w:Me),f=f+2|0,E=(0|c)!=(0|q),c=c+2|0,E;);!W|d[(l+432|0)+f|0]>=0||(w=(c=(0|(E=d[(l+320|0)+f|0]))<(0|w))?w:E,m=c?m:f)}e[l+536>>2]=m,u[r+(l+320|0)|0]!=2|(0|w)>1?(0|w)>0||(m=1,e[l+536>>2]=1):(e[l+536>>2]=r,m=r),f=4,d[(l+432|0)+m|0]=4;break r;case 14:break o;case 12:break c;case 6:break b;default:break r}if(e[l+536>>2])break r;w=(r=e[l+540>>2])-1|0,e[l+536>>2]=w;b:if(!((0|r)<2))for(f=1;;){if(u[(l+432|0)+f|0]==1){w=f-1|0,e[l+536>>2]=w;break b}if((0|r)==(0|(f=f+1|0)))break}f=4,d[(l+432|0)+w|0]=4;break r}for(W=-2&c,w=0,m=0;c=u[0|(q=(E=l+432|0)+f|0)],ue=q,Me=d[(q=l+208|0)+f|0]>0,d[0|ue]=Me||(0|c)==4?3:c,ne=(0|(E=u[0|(ue=(c=f+1|0)+E|0)]))==4?3:E,E=d[c+q|0]>0,d[0|ue]=E?3:ne,w=E?c:Me?f:w,f=f+2|0,(0|W)!=(0|(m=m+2|0)););}if(_&&(E=(0|(c=u[0|(m=(l+432|0)+f|0)]))==4?3:c,c=d[(l+208|0)+f|0]>0,d[0|m]=c?3:E,w=c?f:w),c=e[l+536>>2])break u;if((0|w)>0){e[l+536>>2]=w,c=w;break u}if((0|r)<6)break n;c=r-3|0;break l}if(c=e[l+536>>2])break u}c=r-1|0}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r}if(e[l+536>>2])break r;c=1,e[l+536>>2]=1,u[l+209|0]|e[l+540>>2]<3|d[l+210|0]<=0||(c=2,e[l+536>>2]=2),f=4,d[l+432|c]=4;break r}if(e[l+536>>2]||(0|(c=e[l+540>>2]))<3)break s;if(cA(l+432|1,0,c-1|0),e[l+536>>2]=2,r||(d[l+434|0]=4),f=4,c>>>0<4)break r;d[431+(c+l|0)|0]=3;break r}e[l+536>>2]=r,f=4;break r}f=r}!(256&X)|2&o||(0|(r=e[l+540>>2]))<3|(0|B)>2||u[0|(c=(r=r+(l+432|0)|0)-1|0)]!=4|u[e[144464+(re<<2)>>2]+11|0]!=2||(d[0|c]=1,d[r-2|0]=4);r:{s:{if(Ge)B=e[l+540>>2];else{if(r=d[l+433|0],!(!(4096&X)|(0|(B=e[l+540>>2]))!=3)){if((0|r)==4){d[l+434|0]=3;break s}if(u[l+434|0]==4){d[l+433|0]=3;break s}}if(!(!(8192&X)|(0|r)>=0|(0|B)<4|d[l+434|0]<4)){d[l+433|0]=3;break s}}if(m=0,(0|B)<2)break r}for(w=(0|f)<4?4:3,q=128&X,Me=64&X,ue=32&X,_=B-1|0,ne=16&X,Ye=!(32768&X),re=0,E=0,f=1;;){s:{i:if((0|(c=d[0|(W=(l+432|0)+f|0)]))>=0)m=w;else{m=3;o:{c:if(!(!(!ne|(0|w)>3)&(0|f)==(0|_))){if(!(1&(re|Ye)))break o;if(!(d[431+(l+f|0)|0]>1)){if((0|(c=d[(r=f+1|0)+(l+432|0)|0]))>=2){if((0|w)!=4||(m=4,c>>>0>=3))break c}else if(!(!ue|(0|w)!=3)){w=3;break s}if(!Me|f>>>0<2||(m=u[(l+320|0)+f|0]))break o;if((0|_)>(0|(c=f))){for(;;){if(d[(l+320|0)+c|0]>0)break s;if((0|_)==(0|(c=c+1|0)))break}if(m)break o}if(d[r+(l+320|0)|0]<=0)break o;break s}m=w}c=u[0|W];break i}d[0|W]=w,re=1,m=3,c=w}i:{if(c<<24>>24>=4){if(r=E||f,!E|!q)break i;d[0|W]=3}w=m;break s}w=m,E=r}if(m=1,(0|B)==(0|(f=f+1|0)))break}}if(a=!Ge|(0|a)>=0?a:e[((0|B)<3?16:20)+A>>2],w=0,c=0,m){if(re=3&(r=B-1|0),m=0,B-2>>>0<3)f=1;else for(Ge=-4&r,f=1,E=0;c=(r=(0|(c=(W=(0|(c=(_=(0|(c=(B=(0|(_=d[(r=l+432|0)+f|0]))<(0|c))?c:_))>(0|(W=d[(q=f+1|0)+r|0])))?c:W))>(0|(ue=d[(Me=f+2|0)+r|0])))?c:ue))>(0|(ne=d[(ue=f+3|0)+r|0])))?c:ne,w=r?W?_?B?w:f:q:Me:ue,f=f+4|0,(0|Ge)!=(0|(E=E+4|0)););if(re)for(;c=(r=(0|(E=d[(l+432|0)+f|0]))<(0|c))?c:E,w=r?w:f,f=f+1|0,(0|re)!=(0|(m=m+1|0)););}if((0|a)<0?a=c:(0|a)<=(0|c)&(0|c)>4||(d[(l+432|0)+w|0]=a),re=t+197|0,B=1,!(1&o)&&(r=e[144464+(J<<2)>>2])){if(c=l,!((0|(m=u[r+11|0]))!=1&(0|J)!=15))for(;r=u[0|(c=c+1|0)],(0|(m=u[e[144464+(r<<2)>>2]+11|0]))==1|(0|r)==15;);!(48&(r=e[A+4>>2]))|(0|m)!=2||(d[0|t]=(32&r)>>>5|0&&d[l+433|0]>3?11:23,t=t+1|0)}r:if(!(t>>>0>=re>>>0))for(_=65536&X,W=2&X,Ge=4&X,f=l;;){if(!(c=u[0|f]))break r;if(o=f,f=f+1|0,r=e[144464+(c<<2)>>2]){s:{i:{o:switch(u[r+11|0]){case 0:e[A+8200>>2]=0;break s;case 2:if(!(16&u[r+6|0]))break i;break;default:break o}if(u[0|f]!=20)break s}if((0|(J=e[l+540>>2]))<(0|B))break e;E=d[0|(X=(l+432|0)+B|0)],e[A+8200>>2]=E;i:{o:{if(!((0|(r=E))>1)){if(m=J-1|0,!(!Ge|(0|B)<2|(0|a)<2)&&(r=0,(0|m)==(0|B)))break o;if(r=1,!((0|B)==1|W|(J-2|0)==(0|B)&d[m+(l+432|0)|0]<2|(0|m)==(0|B)||d[431+(l+B|0)|0]>=0&&(r=E,_))){r=0,d[0|X]=0;break o}}if(r&&(0|r)<2)break i}d[0|t]=u[r+94151|0],t=t+1|0,E=d[0|X]}m=(0|a)>(0|E),u[0|f]==12&&1&(J=e[A+28>>2])&&(f=(16&J?(0|w)!=(0|B):(0|r)<4)?o+2|0:f),a=m?a:E,B=B+1|0}if((0|c)!=1&&(d[0|t]=c,t=t+1|0),!(t>>>0>>0))break}}d[0|t]=0}return void($=l+544|0)}Ie(86136,86634,1353,94208),K()}function ua(A,t,r,a,o,l,c,f,m){var E,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0,kt=0,Gt=0,Nt=0,Xt=0,tr=0,pr=0,rr=0,Er=0,Sr=0,Zr=0;$=E=$-336|0,W=f,q=65535&m,X=a,_=65535&o,Ge=-2147483648&(o^m);e:{if(!((J=m>>>16&32767)-32767>>>0>4294934529&(re=o>>>16&32767)-32767>>>0>=4294934530)){if(!(!a&(0|(w=2147483647&o))==2147418112?!(t|r):w>>>0<2147418112)){ue=a,Ge=32768|o;break e}if(!(!f&(0|(o=2147483647&m))==2147418112?!(l|c):o>>>0<2147418112)){ue=f,Ge=32768|m,t=l,r=c;break e}if(!(t|a|2147418112^w|r)){if(!(l|f|2147418112^o|c)){t=0,r=0,Ge=2147450880;break e}Ge|=2147418112,t=0,r=0;break e}if(!(l|f|2147418112^o|c)){t=0,r=0;break e}if(!(t|a|r|w)){ue=(t=!(l|f|o|c))?0:ue,Ge=t?2147450880:Ge,t=0,r=0;break e}if(!(l|f|o|c)){Ge|=2147418112,t=0,r=0;break e}(0|w)==65535|w>>>0<65535&&(m=a=!(_|X),w=a?t:X,f=a<<=6,jt(E+320|0,t,r,X,_,(a=a+((0|(m=Te(m?r:_)))==32?Te(w)+32|0:m)|0)-15|0),ne=16-a|0,X=e[E+328>>2],_=e[E+332>>2],r=e[E+324>>2],t=e[E+320>>2]),o>>>0>65535||(f=a=!(W|q),m=a?l:W,o=a<<=6,jt(E+304|0,l,c,W,q,(a=a+((0|(f=Te(f?c:q)))==32?Te(m)+32|0:f)|0)-15|0),ne=(a+ne|0)-16|0,W=e[E+312>>2],q=e[E+316>>2],l=e[E+304>>2],c=e[E+308>>2])}if(MA=o=65536|q,jA=W,w=o<<15|(a=W)>>>17,Ur(E+288|0,a=o=a<<15|c>>>17,f=w,0,0,m=0-a|0,w=1963258675-(w+!!(0|a)|0)|0,0,0),Ur(E+272|0,0-(a=e[E+296>>2])|0,0-(e[E+300>>2]+!!(0|a)|0)|0,0,0,m,w,0,0),Ur(E+256|0,m=(a=e[E+280>>2])<<1|e[E+276>>2]>>>31,a=e[E+284>>2]<<1|a>>>31,0,0,o,f,0,0),Ur(E+240|0,m,a,0,0,0-(w=e[E+264>>2])|0,0-(e[E+268>>2]+!!(0|w)|0)|0,0,0),Ur(E+224|0,w=(m=e[E+248>>2])<<1|e[E+244>>2]>>>31,a=e[E+252>>2]<<1|m>>>31,0,0,o,f,0,0),Ur(E+208|0,w,a,0,0,0-(m=e[E+232>>2])|0,0-(e[E+236>>2]+!!(0|m)|0)|0,0,0),Ur(E+192|0,m=(a=e[E+216>>2])<<1|e[E+212>>2]>>>31,a=e[E+220>>2]<<1|a>>>31,0,0,o,f,0,0),Ur(E+176|0,m,a,0,0,0-(w=e[E+200>>2])|0,0-(e[E+204>>2]+!!(0|w)|0)|0,0,0),Ur(E+160|0,m=o,a=f,0,0,f=(W=(o=e[E+184>>2])<<1|e[E+180>>2]>>>31)-1|0,o=(e[E+188>>2]<<1|o>>>31)-!W|0,0,0),Ur(E+144|0,l<<15,c<<15|l>>>17,0,0,a=f,o,0,0),Me=E+112|0,iA=e[E+168>>2],f=e[E+172>>2],B=(W=e[E+160>>2])+(m=e[E+152>>2])|0,w=(q=e[E+164>>2])+e[E+156>>2]|0,m=w=m>>>0>B>>>0?w+1|0:w,w=(w=(0|q)==(0|w)&B>>>0>>0|w>>>0>>0)>>>0>(q=w+iA|0)>>>0?f+1|0:f,Ur(Me,a,o,0,0,0-(f=(W=!m&B>>>0>1|!!(0|m))+q|0)|0,0-(!!(0|f)+(w=W>>>0>f>>>0?w+1|0:w)|0)|0,0,0),Ur(E+128|0,1-B|0,0-((B>>>0>1)+m|0)|0,0,0,a,o,0,0),Xt=(re-J|0)+ne|0,Me=o=e[E+116>>2],W=(a=e[E+112>>2])<<1,re=w=o<<1|a>>>31,a=w,bA=f=e[E+140>>2],a=a+(w=f<<1|(o=e[E+136>>2])>>>31)|0,o=a=(f=(m=o<<1|e[E+132>>2]>>>31)+W|0)>>>0>>0?a+1|0:a,de=a=a-(f>>>0<13927)|0,iA=a,tr=w=65536|_,pr=X,Er=(a=X)<<1,Sr=w=w<<1|a>>>31,it=w,kt=a=YA(de,B=0,w,0),Ye=w=xe,ne=t<<1,J=a=r<<1|t>>>31,q=w=0,de=(0|o)==(0|de)&(m=f-13927|0)>>>0>>0|o>>>0>de>>>0,o=(0|o)==(0|re)&f>>>0>>0|o>>>0>>0,a=e[E+120>>2],w=f=e[E+124>>2]<<1|a>>>31,w=(a=(B=bA>>>31|0)+(a=a<<1|Me>>>31)|0)>>>0>>0?w+1|0:w,B=(f=a)>>>0>(a=a+o|0)>>>0?w+1|0:w,B=(o=a)>>>0>(a=a+de|0)>>>0?B+1|0:B,o=a-1|0,w=YA(J,q,de=B-!a|0,re=0),f=xe+Ye|0,Me=(0|Ye)==(0|(f=(a=w+kt|0)>>>0>>0?f+1|0:f))&a>>>0>>0|f>>>0>>0,bA=o,o=YA(o,w=0,WA=(rr=r>>>31|0)|X<<1,Ye=0),w=xe+f|0,B=0,W=w=o>>>0>(X=o+a|0)>>>0?w+1|0:w,B=(o=a=(0|w)==(0|f)&a>>>0>X>>>0|f>>>0>w>>>0)>>>0>(a=a+Me|0)>>>0?1:B,o=YA(it,q,de,re),w=xe+B|0,Me=a=o+a|0,a=a>>>0>>0?w+1|0:w,o=YA(it,q,bA,Ye),_=xe,f=o,o=YA(WA,Ye,de,re),w=xe+_|0,o=w=o>>>0>(B=f+o|0)>>>0?w+1|0:w,a=a+(w=(0|_)==(0|w)&f>>>0>B>>>0|w>>>0<_>>>0)|0,Me=_=Me+o|0,_=a=_>>>0>>0?a+1|0:a,w=B+W|0,o=w=(a=(o=0)+X|0)>>>0>>0?w+1|0:w,f=(0|w)==(0|W)&a>>>0>>0|w>>>0>>0,w=_,B=f,Gt=f=f+Me|0,B=w=B>>>0>f>>>0?w+1|0:w,Me=a,_=a,X=o,kt=m,a=YA(m,0,WA,Ye),f=xe,o=a,m=YA(iA,ue,J,ue),w=xe+f|0,m=(0|f)==(0|(w=(a=a+m|0)>>>0>>0?w+1|0:w))&a>>>0>>0|f>>>0>w>>>0,f=w,o=YA(bA,Ye,Nt=-2&ne,0),w=xe+w|0,o=w=o>>>0>(W=o+a|0)>>>0?w+1|0:w,a=(0|w)==(0|f)&a>>>0>W>>>0|f>>>0>w>>>0,f=0,a=((m=a+m|0)>>>0>>0?1:f)+X|0,w=B,m=a=(_=m+_|0)>>>0>>0?a+1|0:a,f=a=(0|a)==(0|X)&_>>>0>>0|a>>>0>>0,Zr=a=a+Gt|0,Me=w=f>>>0>a>>>0?w+1|0:w,a=YA(it,q,kt,ue),Gt=xe,it=a,f=YA(de,re,Nt,ue),w=xe+Gt|0,X=a=a+f|0,B=a+(q=YA(iA,ue,WA,Ye))|0,a=(f=a>>>0>>0?w+1|0:w)+xe|0,a=B>>>0>>0?a+1|0:a,re=B,q=B+(w=YA(J,ue,bA,Ye))|0,B=xe+a|0,WA=(0|a)==(0|(B=w>>>0>q>>>0?B+1|0:B))&q>>>0>>0|a>>>0>B>>>0,w=((a=(a=(a=(0|a)==(0|f)&X>>>0>re>>>0|a>>>0>>0)+(w=(0|f)==(0|Gt)&X>>>0>>0|f>>>0>>0)|0)+WA|0)|(bA=0))+m|0,X=w=(f=B)>>>0>(re=f+_|0)>>>0?w+1|0:w,a=(0|m)==(0|w)&_>>>0>re>>>0|m>>>0>w>>>0,w=Me,f=a,bA=a=a+Zr|0,m=w=f>>>0>a>>>0?w+1|0:w,a=YA(iA,ue,Nt,ue),iA=xe,_=a,f=YA(J,ue,kt,ue),w=xe+iA|0,f=(0|(w=(a=a+f|0)>>>0>>0?w+1|0:w))==(0|iA)&a>>>0<_>>>0|w>>>0>>0,_=w,a=w+W|0,w=(f|(Me=0))+o|0,_=(0|o)==(0|(w=a>>>0<_>>>0?w+1|0:w))&a>>>0>>0|o>>>0>w>>>0,B=(f=w)+(w=q)|0,w=0,w=((o=a=(0|f)==(0|(B=(W=(q=0)+a|0)>>>0>>0?B+1|0:B))&a>>>0>W>>>0|f>>>0>B>>>0)>>>0>(a=a+_|0)>>>0?1:w)+X|0,B=m,o=w=(o=a)>>>0>(a=a+re|0)>>>0?w+1|0:w,m=B=(m=f=(0|X)==(0|w)&a>>>0>>0|w>>>0>>0)>>>0>(f=f+bA|0)>>>0?B+1|0:B,(0|B)==131071|B>>>0<131071?(pr=Er|rr,tr=Ye|Sr,Ur(E+80|0,a,o,f,m,l,c,jA,MA),q=B=e[E+84>>2],w=t<<17,X=(r=(W=0)-(_=e[E+88>>2])|0)-(B=!!(B|(t=e[E+80>>2])))|0,_=(w-(e[E+92>>2]+(_>>>0>W>>>0)|0)|0)-(r>>>0>>0)|0,W=0-t|0,q=0-(!!(0|t)+q|0)|0,t=Xt+16382|0):(Ur(E+96|0,a=(1&o)<<31|a>>>1,o=f<<31|o>>>1,f=(1&m)<<31|f>>>1,m=m>>>1|0,l,c,jA,MA),J=X=e[E+100>>2],X=(W=0-(ne=e[E+104>>2])|0)-(_=!!(X|(B=e[E+96>>2])))|0,_=((t<<16)-(e[E+108>>2]+(q>>>0>>0)|0)|0)-(_>>>0>W>>>0)|0,W=0-B|0,q=0-(!!(0|B)+J|0)|0,ne=t,J=r,t=Xt+16383|0),(0|t)>=32767)Ge|=2147418112,t=0,r=0;else{if((0|t)>0)B=_<<1|X>>>31,X=X<<1|q>>>31,_=B,ne=f,J=65535&m|t<<16,B=q<<1|W>>>31,m=W<<1;else{if((0|t)<=-113){t=0,r=0;break e}Hr(E- -64|0,a,o,f,m,1-t|0),jt(E+48|0,ne,J,pr,tr,t+112|0),Ur(E+32|0,l,c,jA,MA,a=e[E+64>>2],o=e[E+68>>2],ne=e[E+72>>2],J=e[E+76>>2]),t=e[E+40>>2],W=(r=e[E+56>>2])-(X=t<<1|(B=e[E+36>>2])>>>31)|0,_=e[E+60>>2]-((e[E+44>>2]<<1|t>>>31)+(r>>>0>>0)|0)|0,w=(t=e[E+32>>2])<<1,X=W-(t=(0|(f=B<<1|t>>>31))==(0|(m=e[E+52>>2]))&w>>>0>(r=e[E+48>>2])>>>0|f>>>0>m>>>0)|0,_=_-(t>>>0>W>>>0)|0,B=m-((r>>>0>>0)+f|0)|0,m=r-w|0}t=m,Ur(E+16|0,l,c,jA,MA,3,0,0,0),Ur(E,l,c,jA,MA,5,0,0,0),f=B+(r=0)|0,f=m>>>0>(t=t+(w=1&a)|0)>>>0?f+1|0:f,m=t,c=(0|c)==(0|f)&t>>>0>l>>>0|c>>>0>>0,B=_,t=(0|r)==(0|f)&t>>>0>>0|r>>>0>f>>>0,w=o,r=w=(r=t=(t=(0|(B=t>>>0>(l=t+X|0)>>>0?B+1|0:B))==(0|MA))&(0|l)==(0|jA)?c:t&l>>>0>jA>>>0|B>>>0>MA>>>0)>>>0>(t=t+a|0)>>>0?w+1|0:w,a=(0|o)==(0|w)&t>>>0>>0|o>>>0>w>>>0,w=J,w=(o=a)>>>0>(a=a+ne|0)>>>0?w+1|0:w,c=a,_=(0|(o=e[E+20>>2]))==(0|f)&oe[E+16>>2]>>0|o>>>0>>0,o=e[E+28>>2],o=w>>>0<2147418112&((0|(a=e[E+24>>2]))==(0|l)&(0|o)==(0|B)?_:(0|o)==(0|B)&a>>>0>>0|o>>>0>>0),a=r,w=(r=t=(0|r)==(0|(a=(_=o)>>>0>(o=t+o|0)>>>0?a+1|0:a))&t>>>0>o>>>0|r>>>0>a>>>0)>>>0>(t=t+c|0)>>>0?w+1|0:w,c=t,f=(0|(r=e[E+4>>2]))==(0|f)&oe[E>>2]>>0|r>>>0>>0,r=e[E+12>>2],r=B=(r=t=w>>>0<2147418112&((0|(t=e[E+8>>2]))==(0|l)&(0|r)==(0|B)?f:(0|r)==(0|B)&t>>>0>>0|r>>>0>>0))>>>0>(t=t+o|0)>>>0?a+1|0:a,o=(0|a)==(0|B)&t>>>0>>0|a>>>0>B>>>0,a=w,l=o,ue|=o=o+c|0,Ge|=a=l>>>0>o>>>0?a+1|0:a}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=ue,e[A+12>>2]=Ge,$=E+336|0}function XA(A,t,r,a,o){var l,c,f,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0;if($=c=$-80|0,f=e[r+8>>2],!o|!Q[r+4>>1]||(e[o+8>>2]=0),l=cA(a,0,152),e[l+44>>2]=u[f+14|0],e[l+40>>2]=u[f+15|0],a=Q[f+8>>1]){for(a=e[34459]+(a<<1)|0,ue=256&t,J=r+32|0,ne=r-32|0,Ye=r- -64|0,de=r+96|0,iA=r+-64|0,bA=r-28|0,MA=1&t,jA=r-24|0,Me=e[30450];;){m=15&(_=(t=Q[a>>1])>>>8|0);e:{A:{r:{s:{i:{o:{c:{u:{l:{n:{p:{C:switch(0|(w=t>>>12|0)){case 10:break c;case 9:break u;case 6:break l;case 2:case 3:break n;case 1:break p;case 0:break C;case 11:case 12:case 13:case 14:case 15:break o;default:break i}E=255&t;C:{m:{b:switch(0|m){case 13:if(E)break m;m=a,t=0;break C;case 0:m=a;h:switch(E-1|0){case 1:break e;case 0:break A;default:break h}e[c+20>>2]=Io(c+75|0,e[f>>2]),e[c+16>>2]=t,Ar(Me,85851,c+16|0);break e;case 5:if(u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2)break e;e[l+20>>2]=E;break e;case 12:break b;default:break s}e[l+44>>2]=e[l+44>>2]+(t<<24>>31&-256|E);break e}d[l+132|0]=u[a+3|0],m=a+2|0,d[l+133|0]=u[0|m],t=2,E>>>0<3||(d[l+134|0]=u[a+5|0],m=a+4|0,d[l+135|0]=u[0|m],t=4,E>>>0<5||(d[l+136|0]=u[a+7|0],m=a+6|0,d[l+137|0]=u[0|m],t=6,E>>>0<7||(d[l+138|0]=u[a+9|0],m=a+8|0,d[l+139|0]=u[0|m],t=8,E>>>0<9||(d[l+140|0]=u[a+11|0],m=a+10|0,d[l+141|0]=u[0|m],t=10,E>>>0<11||(d[l+142|0]=u[a+13|0],m=a+12|0,d[l+143|0]=u[0|m],t=12,E>>>0<13||(d[l+144|0]=u[a+15|0],m=a+14|0,d[l+145|0]=u[0|m],t=14,E>>>0<15||(d[l+146|0]=u[a+17|0],m=a+16|0,d[l+147|0]=u[0|m],t=16)))))))}d[132+(t+l|0)|0]=0,E=X;break A}if(!A|m>>>0>7||(w=r,u[e[144464+(u[r+2|0]<<2)>>2]+11|0]!=2&&(w=J,u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2))||!(1&(m=e[A+56>>2]))&&16&u[0|r])break e;E=15&u[w+3|0],E=2&m&&u[w+6|0]<=E>>>0?4:E;p:{C:{m:{b:switch((m=7&_)-3|0){case 1:break C;case 0:break b;default:break m}if(E>>>0>3)break p;break e}if(e[102832+(m<<2)>>2]>(0|E))break p;break e}if(u[w+6|0]>E>>>0)break e}e[l+8>>2]=255&t,E=1;break r}if((57344&t)==8192){for(WA=e[32972],_=1,Ge=0;;){B=255&t,m=(W=4095&t)>>>8|0;n:if(W>>>0<=3583){(0|(E=(m>>>0)%7|0))==6&&(E=Q[a+2>>1]),re=0,m=r;p:{C:{m:switch(0|E){case 6:if(w=0,Q[r+36>>1]|Q[r+68>>1])break n;case 3:m=Ye;break C;case 9:if(w=0,Q[r+36>>1]|Q[r+68>>1])break n;if(m=de,!Q[r+100>>1])break p;break n;case 7:if(w=0,Q[r+36>>1])break n;for(E=1;;){if(u[e[144464+(u[(m=(E<<5)+r|0)+2|0]<<2)>>2]+11|0]==2)break C;if(Q[4+(((E=E+1|0)<<5)+r|0)>>1])break}break n;case 5:if(w=0,Q[r+4>>1])break n;case 0:re=1,m=ne;break C;case 4:if(w=0,Q[r+36>>1])break n;case 2:m=J;break C;case 8:if(w=0,!o)break n;if(re=1,e[(m=o)+8>>2])break p;break n;case 10:break m;default:break C}if(w=0,Q[r+4>>1]|Q[bA>>1])break n;re=1,m=iA;break p}C:switch(0|E){case 0:case 5:break C;default:break p}m=(u[m+2|0]==1?-32:0)+m|0}if(ue?(E=e[144464+(u[m+2|0]<<2)>>2],e[m+8>>2]=E):E=e[m+8>>2],W>>>0<=1791){if(w=1,e[e[144464+(B<<2)>>2]>>2]==e[E>>2])break n;if(!(!re|u[E+11|0]!=2)){w=(0|B)==u[E+13|0];break n}w=(0|B)==u[E+12|0];break n}B=31&W,w=0;p:switch(W>>>5&7){case 0:w=(0|B)==u[E+11|0];break n;case 1:w=(0|B)==(15&Q[E+6>>1]);break n;case 2:w=e[E+4>>2]>>>B&1;break n;case 4:break p;default:break n}p:switch(0|B){case 0:case 1:case 2:case 3:case 4:if(u[e[144464+(u[m+2|0]<<2)>>2]+11|0]!=2){if(u[e[144464+(u[m+34|0]<<2)>>2]+11|0]!=2)break n;m=m+32|0}E=15&u[m+3|0],E=!A|!(2&u[A+56|0])?E:u[m+6|0]<=E>>>0?4:E;C:{m:switch(B-3|0){case 1:w=u[m+6|0]<=E>>>0;break n;case 0:if(w=1,E>>>0<=3)break C;break n;default:break m}if(w=1,e[102832+(B<<2)>>2]>(0|E))break n}w=0;break n;case 17:if(!u[E+11|0]){w=1;break n}w=(32&u[r+1|0])>>>5|0;break n;case 18:w=Q[m+4>>1]!=0;break n;case 19:if(w=1,Q[m+36>>1])break n;w=!u[e[m+40>>2]+11|0];break n;case 9:if(Q[m+4>>1])break n;for(;;){if(w=!!(0|(E=12&u[m-29|0])),E)break n;if(Q[(m=m-32|0)+4>>1])break}break n;case 10:w=u[E+11|0]!=2;break n;case 11:for(;;){if(w=!!(0|(E=Q[m+36>>1])),E)break n;if(E=m,m=m+32|0,u[e[E+40>>2]+11|0]==2)break}break n;case 12:if(w=1,(254&u[E+11|0])==2)break n;w=(16&u[E+4|0])>>>4|0;break n;case 13:for(;w=(u[e[m+8>>2]+11|0]==2)+w|0,E=Q[m+4>>1],m=m-32|0,!E;);w=(0|w)==1;break n;case 14:for(;w=(u[e[m+8>>2]+11|0]==2)+w|0,E=Q[m+4>>1],m=m-32|0,!E;);w=(0|w)==2;break n;case 16:break p;default:break n}w=(16&u[0|m])>>>4|0}else if(w=0,(0|m)==15){p:switch(B-1|0){case 0:w=MA;break n;case 1:break p;default:break n}w=e[WA+132>>2]!=0}n:if(1970>>>(m=(E=65535&t)>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&E)!=3328)break n;m=1+(1+(255&E)>>>1|0)|0;break n;case 6:m=(E>>>9&7)-5>>>0<2?12:1;break n;case 2:case 3:m=(0|(m=3840&E))==3328||(0|m)==1536?2:1;break n;default:break p}m=4,(E=Q[a+4>>1])>>>0>61439||(m=(0|E)==2?3:2)}if(a=((m=Q[(a=(m<<1)+a|0)>>1]==3)<<1)+a|0,m^=w,_=Ge?m|_:m&_,Ge=4096&t,(57344&(t=Q[a>>1]))!=8192)break}if(!(1&_))if((63488&t)!=26624){n:if(1970>>>(m=t>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&t)!=3328)break n;m=1+(1+(255&t)>>>1|0)|0;break n;case 6:m=(t>>>9&7)-5>>>0<2?12:1;break n;case 2:case 3:m=(0|(t&=3840))==3328||(0|t)==1536?2:1;break n;default:break p}m=4,(t=Q[a+4>>1])>>>0>61439||(m=(0|t)==2?3:2)}a=(((65024&Q[(t=(m<<1)+a|0)>>1])==24576)<<1)+t|0}else a=((255&t)<<1)+a|0}m=a-2|0,E=X;break A}l:switch(m>>>1|0){case 0:a=(((255&t)<<1)+a|0)-2|0;break e;case 5:e[l>>2]=2|e[l>>2],((t=u[e[r+40>>2]+12|0])-28&255)>>>0<=5&&(m=Q[(t=((t<<2)+a|0)-112|0)+4>>1],t=Q[t+2>>1],e[l+96>>2]=t>>>4<<24>>24,e[l+76>>2]=(15&t)<<18|m<<2),a=a+24|0;break e;case 6:break l;default:break e}((t=u[e[jA>>2]+13|0])-28&255)>>>0<=5&&(m=Q[(t=((t<<2)+a|0)-112|0)+4>>1],t=Q[t+2>>1],e[l+100>>2]=t>>>4<<24>>24,e[l+80>>2]=(15&t)<<18|m<<2),a=a+24|0;break e}t=Q[(a=a+2|0)>>1]|t<<16&983040;u:switch(m-1|0){case 0:if((0|q)>9)break e;e[(c+32|0)+(q<<2)>>2]=a,a=(e[34459]+(t<<1)|0)-2|0,q=q+1|0;break e;case 1:e[l+124>>2]=t;break e;case 2:break u;default:break e}e[l+128>>2]=t;break e}e[(m=(((0|m)!=1)<<3)+l|0)+108>>2]=Q[a+2>>1]|(255&t)<<16,t=Q[a+4>>1]<<16,a=a+6|0,e[m+112>>2]=t|Q[a>>1];break e}if(E=Q[(m=a+2|0)>>1],W=t>>>4|0,e[(_=((B=w-11|0)<<2)+l|0)+88>>2]=255&W,e[_+68>>2]=t<<18&3932160|E<<2,(0|(a=Q[a+4>>1]))==2){a=m;break e}if(E=t>>>0<=53247?a>>>0>61439?2:1:X-((0|B)==4)|0,w-13>>>0>1)break A;e[_+88>>2]=W<<24>>24;break A}e[c+4>>2]=Io(c+75|0,e[f>>2]),e[c>>2]=t,Ar(Me,85851,c);break e}e[4+((m<<2)+l|0)>>2]=E,E=ue&&(0|m)==1?1:X}m=a}(0|E)!=1|(0|q)<=0?(a=m,X=E):(a=e[(c+32|0)+((q=q-1|0)<<2)>>2],X=0)}if(a=a+2|0,(0|X)==1)break}!o|u[r+17|0]!=2||(A=e[r+4>>2],e[o>>2]=e[r>>2],e[o+4>>2]=A,A=e[r+28>>2],e[o+24>>2]=e[r+24>>2],e[o+28>>2]=A,A=e[r+20>>2],e[o+16>>2]=e[r+16>>2],e[o+20>>2]=A,A=e[r+12>>2],e[o+8>>2]=e[r+8>>2],e[o+12>>2]=A),d[r+23|0]=e[l+44>>2],(A=e[l+68>>2])?(e[r+24>>2]=A,A=l+88|0):(e[r+24>>2]=e[l+72>>2],A=l+92|0),e[r+28>>2]=e[A>>2]}$=c+80|0}function rs(A,t,r,a,o,l){var c,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0;$=c=$-848|0;e:if(!(!e[A+104>>2]|8&u[o+2|0]|e[47202]==193)){for(e[a>>2]=0,e[33272]=0,e[33274]=l,d[c+192|0]=0,e[33273]=c+192;w=(l=w)+1|0,d[0|(J=t+l|0)]-48>>>0<10;);e[56798]=0,Ye=c+188|0,_=-2147483648,$=ue=$-16|0;A:if(f=u[0|t]){B=t;r:{for(;;){if(!((0|(f=f<<24>>24))==32|f-9>>>0<5))break r;if(f=u[B+1|0],B=B+1|0,!f)break}break A}r:switch((f=u[0|B])-43|0){case 0:case 2:break r;default:break A}q=(0|f)==45?-1:0,B=B+1|0}else B=t;for(;f=-48,(((W=d[0|B])-48&255)>>>0<10||(f=-87,(W-97&255)>>>0<26||(f=-55,!((W-65&255)>>>0>25))))&&!((0|(W=f+W|0))>=10);)Ur(ue,10,0,0,0,X,re,0,0),f=1,e[ue+8>>2]|e[ue+12>>2]||(Ge=YA(X,re,10,0),(0|(ne=xe))==-1&~W>>>0>>0||(f=ne,re=(X=W+Ge|0)>>>0>>0?f+1|0:f,Me=1,f=E)),B=B+1|0,E=f;Ye&&(e[Ye>>2]=Me?B:t);A:{r:{if(E)e[56798]=68,X=-2147483648,re=0;else if(!re&X>>>0<2147483648)break r;if(!q){e[56798]=68,_=2147483647;break A}if(!(!re&X>>>0<=2147483648)){e[56798]=68;break A}}_=(q^X)-q|0}if($=ue+16|0,q=_,!(e[56798]|e[c+188>>2]==(0|t))){A:{r:{s:{if(!(!((0|(W=64&u[A+109|0]?4:3))!=(0|l)|e[A+124>>2]!=d[t-2|0])&d[t-3|0]-48>>>0<10)){i:{if(e[A+124>>2]!=32){if(!(16&u[A+105|0]))break s;if((0|l)==3)break i;break s}if((0|l)!=3)break s}if(4&u[o+2|0]|d[t-2|0]-48>>>0>=10)break s}d[133104]=0,d[c+288|0]=0,de=1;break r}if(d[133104]=0,e[33275]=0,d[c+288|0]=0,iA=1,Me=0,u[0|t]==48)break A}Me=Br(A,t,J,o,0)}u[0|J]!=46|d[t+w|0]-48>>>0<10|1&d[o+13|0]|d[J+2|0]-48>>>0<10||(d[0|J]=0);A:if(!Me||(Ge=1,e[A+212>>2]==26741)){if(_=c+256|0,e[c+844>>2]=_,m=w,64&u[o+1|0]&&(d[c+256|0]=45,_=c+256|1,e[c+844>>2]=_,m=l+2|0),B=u[t+m|0]){for(;!((255&B)==32|(0|m)>28)&&(f=e[c+844>>2],e[c+844>>2]=f+1,d[0|f]=B,B=u[(m=m+1|0)+t|0]););_=e[c+844>>2]}if(d[0|_]=0,Ge=1,f=d[c+256|0]){if(!(E=e[A+136>>2])||gr(c+256|0,E)){if(f-48>>>0<10||(e[c+176>>2]=c+256,IA(f=c+800|0,88653,c+176|0),!NA(A,f,133104)))break A;e[a>>2]=128|e[a>>2],e[c+160>>2]=c+256,IA(f=c+800|0,88773,c+160|0),NA(A,f,133116),Ge=0}Me=2}}Ye=e[o>>2],d[c+352|0]=0,d[c+624|0]=0;A:{r:{s:if(!(!iA|u[0|t]!=48||(0|(f=d[t+1|0]))==32|(0|f)==e[A+128>>2])){i:{if((0|l)==2){if(u[t+3|0]!=58|d[t+5|0]-48>>>0>=10||!((0|(f=d[t+7|0]))==32|f-9>>>0<5))break i;break s}if((0|l)>3)break r}if(u[0|t]==48&&!((0|(f=l-1|0))<=0))for(m=0;;){if(NA(A,88875,TA(E=c+288|0)+E|0),u[(m=m+1|0)+t|0]!=48)break s;if(!((0|f)>(0|m)))break}}s:{i:{if(!((0|(f=d[0|J]))==32&&16&u[A+105|0])){if(ne=2,X=l+2|0,(0|f)==e[A+124>>2])break i;re=1,_=0,f=0;break s}ne=1,X=l+2|0}if(4&u[o+14|0])_=1,f=0,re=1;else for(f=0,B=1,m=l,re=1;;){E=f,f=B,B=(ue=m+ne|0)+t|0,m=0;i:{for(;;){if(_=1,!(d[m+B|0]-48>>>0>=10)){if((0|W)!=(0|(m=m+1|0)))continue;break i}break}f=E;break s}if(d[B+W|0]-48>>>0<10){f=E;break s}if(m=0,d[B-1|0]-48>>>0<10){f=E;break s}i:{for(;;){if(u[(m+ue|0)+t|0]==48){if((0|W)!=(0|(m=m+1|0)))continue;break i}break}re=0}if((0|(E=d[(m=W+ue|0)+t|0]))!=e[A+124>>2]&(!(16&u[A+105|0])|(0|E)!=32))break s;if(X=m+2|0,4&u[2+(R(B=f+1|0,12)+o|0)|0])break}}m=!q;s:if(!(!re|!(64&u[1+(R(f,12)+o|0)|0])|e[A+212>>2]!=26741)){i:switch(u[0|(E=t+X|0)]-97|0){case 0:case 4:break i;default:break s}i:{o:{c:{u:switch((B=u[E+1|0])-116|0){case 6:break s;case 1:case 2:case 3:case 4:case 5:break o;case 0:break u;default:break c}if(u[E+2|0]!=116)break i;break s}if((0|B)==32)break s}if(!(!!((0|q)%1e3|0)&(0|f)!=1)&&(0|B)==108)break s}e[33274]=1|e[33274]}X=32768&Ye,m&=de;s:if(e[A+128>>2]!=d[0|J]|d[t+w|0]-48>>>0>=10){i:{if(!m){if(m=0,E=1,!((0|f)>0&_))break i;q=(w=zt(A,q,f,re,c+624|0))?0:q,m=!!(0|w),B=0;break s}m=1,q=0,e[33275]==1&&(e[c+144>>2]=f+1,IA(w=c+800|0,89026,c+144|0),NA(A,w,c+688|0)||(e[c+128>>2]=f,IA(w=c+800|0,89026,c+128|0),NA(A,w,c+624|0)))}E=1,B=0}else NA(A,88882,c+624|0),E=0,B=256;_=X?2:Me;s:{if(f|u[c+624|0]|u[0|J]!=46){if(f)break s}else NA(A,89192,c+624|0);if(e[c+844>>2]=t,d[t+1|0]-48>>>0<10)for(;w=e[c+844>>2],e[c+844>>2]=w+1,d[w+2|0]-48>>>0<10;);if(d[e[c+844>>2]-1|0]-48>>>0>=10||(e[c+416>>2]=e[c+844>>2]-1,DA(A,c+416|0,c+192|0,a,4,o)&&(e[33272]=2)),u[c+192|0]|u[e[c+844>>2]]==48||DA(A,c+844|0,c+192|0,a,4,o)&&(e[33272]=1),iA){if(!_&E&&(e[c+112>>2]=q,IA(o=c+800|0,89214,c+112|0),NA(A,o,r)))break A;if(1&d[A+110|0]){for(w=t;(32|u[0|w])!=32;)w=w+1|0;e[c+416>>2]=w,u[w+1|0]==37&&(NA(A,89328,r),o=TA(r),d[e[c+416>>2]+1|0]=32,r=r+o|0)}}}Ha(A,q,c+416|0,m,f,_|B|de),!(2&u[A+109|0])|(0|f)<=0?(e[c+60>>2]=15,e[c- -64>>2]=c+624,e[c+56>>2]=c+416,e[c+52>>2]=c+352,e[c+48>>2]=c+288,IA(r,89415,c+48|0)):(e[c+88>>2]=15,e[c+96>>2]=c+416,e[c+92>>2]=c+352,e[c+84>>2]=c+624,e[c+80>>2]=c+288,IA(r,89346,c+80|0));s:if(!E)for(;;){for(l=l+1|0,E=0;E=(w=E)+1|0,d[(f=l+w|0)+t|0]-48>>>0<10;);o=2;i:{o:{c:{u:{l:{n:switch((E=57344&e[A+104>>2])+-8192>>>13|0){case 6:break o;case 2:break c;case 0:case 4:case 5:break u;case 1:break l;case 3:break n;default:break i}o=5}if((0|(E=u[0|(m=t+l|0)]))==48)for(;NA(A,88875,f=c+688|0),Xr(r,f),w=w-1|0,(0|(E=u[0|(m=(l=l+1|0)+t|0)]))==48;);if((0|o)<(0|w)|(E<<24>>24)-48>>>0>=10)break i;o=c+688|0,Ha(A,js(m),o,0,0,0),Xr(r,o),l=l+w|0;break i}if(Ha(A,js(o=t+l|0),c+416|0,0,0,0),!((0|E)==8192&u[0|o]!=48)){if(e[c+16>>2]=w,IA(o=c+800|0,89508,c+16|0),!NA(A,o,c+688|0))break i;Xr((0|E)==49152?r:c+416|0,c+688|0)}Xr(r,c+416|0),l=f;break i}if((0|w)>4||u[0|(o=t+l|0)]==48)break i;Ha(A,l=js(o),o=c+688|0,0,0,0),Xr(r,o),l=f;break i}if(!((0|w)<=1))for(;;){if(e[c+32>>2]=d[t+l|0],IA(o=c+800|0,89575,c+32|0),!NA(A,o,c+688|0))break i;if(Xr(r,c+688|0),l=l+1|0,!((0|(w=w-1|0))>1))break}}i:if(!((E=u[0|(w=t+l|0)])-48>>>0>=10||TA(r)>>>0>=190))for(;;){if(o=c+688|0,st(A,d[0|w]-48|0,0,2,o),f=TA(r),e[c>>2]=15,e[c+4>>2]=o,IA(r+f|0,89594,c),(E=u[0|(w=(l=l+1|0)+t|0)])-48>>>0>=10)break i;if(!(TA(r)>>>0<=189))break}if(NA(A,89678,c+688|0)&&Xr(r,c+688|0),e[A+128>>2]!=(0|E)|d[1+(t+l|0)|0]-48>>>0>=10)break s;NA(A,88882,o=c+688|0),Xr(r,o)}if(!(o=u[0|r])|(0|o)==21||(o=UA(c+184|0,t=1+(t+l|0)|0),l=e[c+184>>2],!(2&u[A+106|0])|(0|l)!=32||(UA(c+184|0,t+o|0),l=e[c+184>>2]),ls(l)|re||(A=TA(r)+r|0,d[0|A]=11,d[A+1|0]=0)),e[a>>2]=-2147483648|e[a>>2],e[33275]=e[33275]-1,m=1,Ge)break e;e[33264]=1;break e}e[a>>2]=-129&e[a>>2],m=0;break e}m=1}}return $=c+848|0,m}function ge(A,t,r,a){var o,l,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0;if($=o=$-416|0,Me=Q[r+8>>1],X=u[r+10|0],64&(l=e[r>>2])){for(e[r>>2]=-65&l,d[199388]=1,m=e[47202],_=e[49846],w=e[47352],B=e[47351],E=e[47350];;){c=(f=e[198304+(B<<2)>>2])>>8;e:{A:switch((31&f)-9|0){case 0:m=c;break e;case 4:_=c;break e;case 3:break A;default:break e}w=f>>>0>=256?c+w|0:0}if(!(!(128&f)&(0|E)>(0|(B=B+1|0))))break}e[47352]=w,e[47351]=B,e[49846]=_,e[47202]=m}_=0;e:if(!((0|(c=e[49572]))>997)){if(1048576&l||!u[0|t])u[199388]&&(e[49572]=c+1,d[199388]=0,e[(A=190288+(c<<3)|0)>>2]=983042,e[A+4>>2]=0),d[189088]=0;else if(!((0|c)>990)){(0|(c=e[A+8224>>2]))>0&&(e[A+8224>>2]=c-1),m=512&l?a:a+4|0,w=(240&e[47202])==16,(ue=2&l)&&((0|(f=e[47200]))<3||(0|(c=e[47350]))>243||(u[199388]&&(e[(B=198300+(c<<2)|0)>>2]=-129&e[B>>2]),e[47350]=c+1,d[199388]=1,Ge=(0|f)==3?20:f,e[198304+(c<<2)>>2]=Ge<<8|193)),E=w?m:a;A:{r:{if(!(8&l)){for(;a=u[(c=W)+t|0],d[c+(o+240|0)|0]=a,223&a&&(W=c+1|0,c>>>0<160););if(d[o+66|0]=0,W=o- -64|2,_=se(e[47192],t,r,W),e[o+412>>2]=_,!(4096&_))break r;ct(t,o+240|0,c);break e}s:if(ga(t,87276,3))lr(t,189088,o+240|0);else{if(B=0,223&(c=u[0|(W=t+3|0)]))for(;d[(o+240|0)+B|0]=Kr(c<<24>>24),B=B+1|0,223&(c=u[0|(W=W+1|0)]););d[(a=o+240|0)+B|0]=0,c=0;i:if(!((0|(r=e[34461]))<=0)){for(;;){if(!gr(a,R(c,44)+137856|0)){e[34457]=c;break i}if((0|r)==(0|(c=c+1|0)))break}c=r}if((0|(r=(0|r)==(0|c)?-1:c))<=0)break s;na(r),d[189090]=0,d[189089]=r,d[189088]=21}_=-2147483648,e[o+412>>2]=-2147483648,a=-1;break A}if(!(!(8388608&_)|8&u[r+12|0])){for($=w=$-208|0,B=e[A+60>>2],f=t;a=f,f=f+1|0,u[0|a]!=32;);UA(w+204|0,f);r:if(ls(e[w+204>>2])){m=_A(w,189088),f=(!(256&B)|(re=oA(A,f,r+12|0,0))>>>15)&!(67108864&re)&u[189088]!=21;s:{i:{if(512&B){if(!(f&!(16&u[r+12|0])))break i;break s}if(f)break s}_A(189088,m);break r}if(d[0|a]=45,e[r>>2]=-2&e[r>>2],_=0,f=189088,q=oA(e[47192],t,r,0),e[o+412>>2]=q,!((0|B)<=0)&&(m=u[189088])){for(;_=(u[e[144464+(m<<2)>>2]+11|0]==2)+_|0,m=u[0|(f=f+1|0)];);if(!((31&B)>=(0|_))){d[0|a]=32,e[o+412>>2]=oA(e[47192],t,r,0);break r}}e[o+412>>2]=128|(q||re),e[33264]=1}$=w+208|0}if(a=-1,u[189088]==21){if(B=_A(o+16|0,132848),w=e[o+412>>2],f=ct(t,o+240|0,c),m=o- -64|1,(0|(a=is(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(v[o+64>>1]=8192,w=oA(e[47193],m,r,0)):w=se(e[47193],f,r,W)),u[189088]==21&&(c=ct(f,o+240|0,c),(0|(a=is(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(v[o+64>>1]=8192,w=oA(e[47193],m,r,0)):w=se(e[47193],c,r,W)),_=4096,u[189088]==21))break e;e[o+412>>2]=w,(0|a)>=0||(d[189090]=0,v[94544]=3341,(0|a)==-1&&(_A(132848,B),na(e[e[32972]+60>>2]),a=e[e[32972]+60>>2]))}_=e[o+412>>2],128&l||(E=268435456&_&&(0|E)<=1?1:E,!(256&_)|528&l|e[A+8224>>2]|2&u[r-11|0]||(e[A+8224>>2]=3,E=(0|E)<=4?4:E)),E=(0|E)<=0&&e[49846]>2?1:E}if(r=u[199388],!((0|E)<=0|(0|(W=e[49572]))>990)){e[49572]=W+1,f=1&r,r=0,v[(c=190288+(W<<3)|0)>>1]=f?2:0,d[c+7|0]=0,d[c+3|0]=0,f=E>>>0>1,d[c+2|0]=f?9:11,v[c+4>>1]=0,e[A+8236>>2]=0;A:if(!(!(c=f?E-2|0:0)|(0|(W=e[49572]))>990))for(m=A+8236|0;;){if(e[49572]=W+1,v[(f=190288+(W<<3)|0)>>1]=0,d[f+7|0]=0,d[f+3|0]=0,w=c>>>0>1,d[f+2|0]=w?9:11,v[f+4>>1]=0,e[m>>2]=0,W=e[49572],(0|(c=w?c-2|0:0))<=0)break A;if(!((0|W)<991))break}e[A+8228>>2]=0,e[A+8232>>2]=0}d[199388]=1&r,!ue|e[47200]!=1||(e[49572]=W+2,d[199388]=0,v[(c=190288+(W<<3)|0)>>1]=1&r?2:0,d[c+7|0]=0,v[c+2>>1]=10,v[c+4>>1]=0,v[c+12>>1]=0,e[c+8>>2]=1179648,d[c+15|0]=0,1&l&&Rt(d[t+1|0])&&(r=u[199388],d[199388]=0,t=e[49572],e[49572]=t+2,v[(t=190288+(t<<3)|0)>>1]=r?2:0,d[t+7|0]=0,v[t+2>>1]=10,v[t+4>>1]=0,v[t+12>>1]=0,e[t+8>>2]=1179648,d[t+15|0]=0)),c=X>>>0<31;A:if(!((0|a)<0))if(t=e[49572],r=u[190290+((E=t-1|0)<<3)|0],u[189088]!=9|u[189089]!=21)(0|r)!=21&&(f=u[199388],d[199388]=0,d[(r=190288+(t<<3)|0)+7|0]=0,v[r+2>>1]=21,v[r+4>>1]=0,v[r>>1]=f?2:0,E=t),e[49572]=E+1,d[190295+(E<<3)|0]=a;else{if((0|r)!=21)break A;e[49572]=E}t=2047&Me,r=(c?X:31)<<11,w=(ne=128&l)?u[e[144464+(u[189088]<<2)>>2]+11|0]?189088:189089:189088,(E=u[0|w])|!(1&d[199388])||(E=23,d[0|w]=23,d[w+1|0]=0),Ye=t|r,m=e[49572];A:if(E)if((0|m)>994)t=0;else for(bA=((-1610612736&_)==-2147483648)<<4,Me=Ye+1|0,MA=A+8233|0,t=0,f=1,re=0,de=1,X=-1,ue=-1,c=0;;){B=w+1|0;r:{if((0|(q=255&E))!=255){if(r=e[144464+(q<<2)>>2])break r;e[o>>2]=q,$=r=$-16|0,e[r+12>>2]=o,ye(132552,87474,o),$=r+16|0,m=e[49572]}if(!(E=u[0|B]))break A;if(w=B,(0|m)<995)continue;break A}r:if((0|(J=255&E))!=21)if((0|(w=u[r+11|0]))!=1){r=Me;s:switch(J-12|0){case 8:d[(r=190288+((X=m-1|0)<<3)|0)+3|0]=f,v[r>>1]=4|Q[r>>1],r=c;break r;case 0:v[(r=190280+(m<<3)|0)>>1]=8|Q[r>>1],r=c;break r;case 10:_|=16384,e[o+412>>2]=_,r=c;break r;case 3:break r;default:break s}q=u[199388],d[199388]=0,d[(r=(J=m<<3)+190288|0)+7|0]=0,d[r+2|0]=E,v[r+4>>1]=c,c=(q?2:0)|bA,v[r>>1]=c,(0|w)==2?((0|f)>=4&&(d[189076]=1),(0|X)<0||(0|(t=m-1|0))!=(0|X)&&(d[190291+(t<<3)|0]=f),v[r>>1]=4|c,iA=(t=(0|f)>(0|ue))?m:iA,ue=t?f:ue,c=1,re&&(d[r+7|0]=re),X=m,re=0,t=f):(!de|!(64&u[0|MA])||(v[r>>1]=8|c),c=f),m=m+1|0,e[49572]=m,d[J+190291|0]=t,r=0,de=0,f=c}else{if(!Q[r+8>>1]){f=u[r+14|0],r=c;break r}if((0|X)<0){r=c,re=q;break r}d[190295+(X<<3)|0]=E,r=c}else e[(r=190288+(m<<3)|0)>>2]=1376256,v[r+4>>1]=0,d[r+7|0]=u[w+1|0],e[49572]=m+1,na(u[w+1|0]),B=w+2|0,m=e[49572],r=c;if(!(E=u[0|B]))break A;if(w=B,c=r,!((0|m)<995))break}else t=0;131072&l&&(r=m+1|0,e[49572]=r,f=u[199388],d[199388]=0,d[(c=190288+(m<<3)|0)+7|0]=0,v[c+2>>1]=27,v[c+4>>1]=0,v[c>>1]=f?2:0,m=r),ne||(v[190292+(W<<3)>>1]=Ye),e[A+8228>>2]=0,u[e[144464+(u[190282+(m<<3)|0]<<2)>>2]+11|0]!=2|(0|t)<4||(e[A+8228>>2]=1),(0|a)>=0&&(_A(132848,o+16|0),na(e[e[32972]+60>>2]),r=u[199388],d[199388]=0,a=e[49572],v[(t=190288+(a<<3)|0)>>1]=r?2:0,v[t+2>>1]=21,v[t+4>>1]=0,d[t+7|0]=e[e[32972]+60>>2],m=a+1|0,e[49572]=m),(0|Ge)>0&&(d[199388]=0,e[49572]=m+1,e[(t=190288+(m<<3)|0)>>2]=655362,r=e[47350],e[47350]=r+1,d[t+7|0]=0,v[t+4>>1]=0,e[198304+(r<<2)>>2]=Ge<<8|225),1024&_&&(v[(t=190288+(iA<<3)|0)>>1]=64|Q[t>>1]),e[A+8232>>2]=_}}return $=o+416|0,_}function Re(A,t,r,a,o){var l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0;e:if(t){if(ue=o<<4,c=(t=e[33268])+r|0,!((0|t)<=0||(l=u[0|(m=ue+129360|0)],B=u[m+1|0]-l<<8,B=(0|t)!=1?(0|B)/(0|t)|0:B,(0|r)>=(0|c))))for(_=B>>>0>255,q=B>>>8|0,l<<=8,m=0-B>>>8|0,Ge=(0|B)<=0,t=r;Ge?(E=(w=(w=(0|(f=(0|(f=e[101024+(d[R(t,6)+A|0]<<2)>>2]))<(0|m)?m:f))>=18?18:f)+(f=(0|(f=(0|(l=l+B|0))/256|0))>0?f:0)|0)>>>0>=254?254:w,f=f>>>0>=254?254:f):(f=R(t,6)+A|0,d[f+2|0]=_|u[f+2|0],f=(w=(0|(f=(0|l)/256|0))>0?f:0)>>>0>=254?254:w,E=(w=w+q|0)>>>0>=254?254:w,l=l+B|0),w=R(t,6)+A|0,d[w+5|0]=f,d[w+4|0]=E,(0|c)!=(0|(t=t+1|0)););if(2&u[188785]?(m=e[33271],e[33270]=m):m=e[33270],q=(_=u[(l=(t=o<<4)+129360|0)+3|0])-(f=u[l+2|0])<<8,Ge=e[l+4>>2],(0|r)>0?(Ye=101056,J=5,w=(0|q)/(u[t+129368|0]-1|0)|0):(Ye=e[(t=t+129360|0)+12>>2],J=u[t+10|0],w=0),(0|c)<(0|m)){for(B=(0|r)<=0,re=((t=q>>31)^q)-t|0,W=129360+(o<<4)|0,f<<=8,ne=_<<8,_=0;;){A:{if(E=R(c,6)+A|0,!(!(1&B)&(0|(l=d[0|E]))<4)){r=0,t=c;r:if(1&((0|l)==5|B)){for(;(0|(w=d[R(t,6)+A|0]))<=6&&(r=((0|w)>3)+r|0,(0|m)!=(0|(t=t+1|0))););if(X=0,(0|(Me=(0|(t=u[W+8|0]))>(0|r)?r:t))<2){w=0,_=f;break r}w=(0|q)/(Me-1|0)|0,_=f}else(0|Me)>0?_=w+_|0:(_=ne+(R(re,d[X+Ye|0])>>6)|0,(0|J)>(0|(X=X+1|0))||(Ye=e[W+12>>2],X=0));if(Me=Me-1|0,!((0|l)<4)){d[0|E]=6,r=(t=(0|(t=(0|_)/256|0))>0?t:0)+(((r=(l=e[Ge+(l<<2)>>2])>>31)^l)-r|0)|0;break A}}(0|l)!=3?(t=(0|_)/256|0,(63&u[E-6|0])>>>0>=3?(r=(l=e[Ge+(l<<2)>>2])>>31,r=(t=(0|(t=t-d[W+9|0]|0))>0?t:0)+((r^l)-r|0)|0):r=(t=(0|t)>0?t:0)+(((r=(l=e[Ge+(l<<2)>>2])>>31)^l)-r|0)|0):r=(t=(0|(t=(0|_)/256|0))>0?t:0)+(((r=(l=e[Ge+12>>2])>>31)^l)-r|0)|0}if(d[E+5|0]=t>>>0>=254?254:t,B=0,t=(0|r)>0?r:0,d[E+4|0]=t>>>0>=254?254:t,d[E+2|0]=u[E+2|0]|l>>>31,(0|m)==(0|(c=c+1|0)))break}c=m}if(!(u[133068]||((268435455&o)==3&&(t=R(c,6)+A|0,d[t+2|0]=2|u[t+2|0]),e[33269]?(t=u[(l=100768+(o<<4)|0)+5|0],f=l+3|0,r=u[l+4|0]-t|0):(t=u[(r=100768+(o<<4)|0)+2|0],f=ue+100768|0,r=u[r+1|0]-t|0),l=R(c,6)+A|0,d[l+5|0]=t>>>0>=254?254:t,d[l+2|0]=u[l+2|0]|r>>>31,t=(w=t)+(((t=r>>31)^r)-t|0)|0,d[l+4|0]=t>>>0>=254?254:t,r=R(m,6)+A|0,d[r+1|0]=u[0|f],t=c+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=a-t|0))<=0||(o=u[(c=100768+(o<<4)|0)+12|0],c=u[c+13|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|a)))))for(w=c>>>0>255,B=c>>>8|0,r=o<<8,o=0-c>>>8|0,_=(0|c)<=0;_?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[R(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=R(t,6)+A|0,d[l+2|0]=w|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+B|0)>>>0>=254?254:l,r=r+c|0),l=R(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|a)!=(0|(t=t+1|0)););}else{if(t=(J=e[34455])+R(o,68)|0,c=u[t+24|0],m=u[t+25|0],l=(t=e[33268])+r|0,!((0|t)<=0||(E=m-c<<8,E=(0|t)!=1?(0|E)/(0|t)|0:E,(0|r)>=(0|l))))for(w=E>>>0>255,B=E>>>8|0,t=c<<8,m=0-E>>>8|0,_=(0|E)<=0;_?(c=(c=(q=(0|(c=(0|(c=e[101024+(d[R(r,6)+A|0]<<2)>>2]))<(0|m)?m:c))>=18?18:c)+(f=(0|(c=(0|(t=t+E|0))/256|0))>0?c:0)|0)>>>0>=254?254:c,f=f>>>0>=254?254:f):(c=R(r,6)+A|0,d[c+2|0]=w|u[c+2|0],f=(c=(0|(c=(0|t)/256|0))>0?c:0)>>>0>=254?254:c,c=(c=c+B|0)>>>0>=254?254:c,t=t+E|0),q=R(r,6)+A|0,d[q+5|0]=f,d[q+4|0]=c,(0|l)!=(0|(r=r+1|0)););2&u[188785]?(r=e[33271],e[33270]=r):r=e[33270],m=r,t=J+R(o,68)|0;A:if((0|(B=u[t+33|0]))!=255)for(;;){if((0|(m=m-1|0))<(0|l)){m=r;break A}if(!(d[R(m,6)+A|0]<4))break}if((0|r)>(0|l)){for(MA=((c=(iA=(_=u[t+32|0])-(E=u[0|(f=t+31|0)])<<8)>>31)^iA)-c|0,ne=(0|(t=u[0|(w=t+30|0)]))==255,q=B<<8,Ge=E<<8,jA=_<<8,ue=J+R(o,68)|0,WA=(0|t)!=255,_=0,B=0,t=1,E=0;;){A:{if(W=R(l,6)+A|0,!(!(1&t)&(0|(re=d[0|W]))<4)){r:if(1&((0|re)==5|t)){s:if(WA){if(de=1,t=0,c=w,!((0|m)<=(0|(E=l+1|0)))){for(;;){if(c=w,(0|(B=d[R(E,6)+A|0]))>6)break s;if(t=((0|B)>3)+t|0,(0|m)==(0|(E=E+1|0)))break}c=w}}else{if(t=0,E=l,c=f,(0|m)<=(0|l))break s;for(;;){if(c=f,(0|(B=d[R(E,6)+A|0]))>6)break s;if(t=((0|B)>3)+t|0,(0|m)==(0|(E=E+1|0)))break}c=f}if(B=u[0|c]<<8,bA=0,(0|(E=(0|t)<(0|(c=u[ue+34|0]))?t:c))<2){Ye=0;break r}Ye=(0|iA)/(E-1|0)|0}else(0|l)!=(0|m)?de?(ne=1,E=E+1|0,de=0,B=Ge):(0|E)>0?(B=B+Ye|0,de=0):(de=0,B=(R(d[16+(ue+bA|0)|0],MA)>>6)+jA|0,bA=(0|(t=bA+1|0))1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}d[0|W]=6,d[W+1|0]=u[ue+26|0],_=0,X=u[ue+27|0],l=(0|(l=(0|B)/256|0))>0?l:0,d[W+5|0]=l>>>0>=254?254:l,l=l+X|0,d[W+4|0]=l>>>0>=254?254:l,Me=t-c|0;break A}}if((0|re)>=2){t=c=l+1|0;r:if(!((0|r)<=(0|l)))for(;;){if(d[R(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}_=0,l=(0|(l=(0|B)/256|0))>0?l:0,d[W+5|0]=l>>>0>=254?254:l,X=e[100976+(re<<2)>>2],d[W+2|0]=u[W+2|0]|X>>>31,l=(0|(l=(re=l)+(((l=X>>31)^X)-l|0)|0))>0?l:0,d[W+4|0]=l>>>0>=254?254:l,Me=t-c|0}else(0|Me)<=1?(X=d[36+(ue+ne|0)|0],t=0):(X=d[(t=ue+ne|0)+36|0],t=(d[t+39|0]-X|0)/(Me-1|0)|0),c=e[100976+(re<<2)>>2],d[W+2|0]=u[W+2|0]|c>>>31,t=(0|(t=(((0|B)/256|0)+X|0)+R(t,_)|0))>0?t:0,d[W+5|0]=t>>>0>=254?254:t,t=(0|(t=t+(((re=c)^(c>>=31))-c|0)|0))>0?t:0,d[W+4|0]=t>>>0>=254?254:t,_=_+1|0,c=l+1|0}if(t=0,(0|r)==(0|(l=c)))break}l=r}if(u[133068]||(c=R(l,6)+A|0,e[33269]?(f=J+R(o,68)|0,t=u[f+47|0],m=u[f+46|0]-t|0,f=f+45|0):(f=J+R(o,68)|0,t=u[f+44|0],m=u[f+43|0]-t|0,f=f+42|0),f=u[0|f],w=(((w=m>>31)^m)-w|0)+t|0,d[c+4|0]=w>>>0>=254?254:w,d[c+5|0]=t>>>0>=254?254:t,t=R(l,6)+A|0,d[t+2|0]=u[t+2|0]|m>>>31,r=R(r,6)+A|0,d[r+1|0]=f,t=l+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=a-t|0))<=0)||(c=J+R(o,68)|0,o=u[c+48|0],c=u[c+49|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|a)))break e;for(w=c>>>0>255,B=c>>>8|0,r=o<<8,o=0-c>>>8|0,_=(0|c)<=0;_?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[R(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=R(t,6)+A|0,d[l+2|0]=w|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+B|0)>>>0>=254?254:l,r=r+c|0),l=R(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|a)!=(0|(t=t+1|0)););}}function me(){var A,t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0;if((0|(A=e[36455]))!=(0|(m=e[36454]))){e:if(!((0|(W=e[36427]))<0|(0|m)==(0|W))){r=B=e[8+(216192+((E=W)<<4)|0)>>2];A:{for(;;){if((a=e[(c=216192+((E=(0|(a=E-1|0))<0?169:a)<<4)|0)>>2])-5>>>0<2)break A;r:{if((0|a)<=4){if(e[c+12>>2]!=(0|r))break A;if(a=Q[c+4>>1],e[c+12>>2]=B,r=e[c+8>>2],16&(t=Q[r>>1]))break r;for(q=32&t?(R(a,12)>>>0)/10|0:a,o=0,a=r,f=0;;){t=Q[r>>1];s:if(!(f>>>0<3&&8&t)){if(t=t<<16>>16,(0|(X=(w=v[2+((_=f<<1)+r|0)>>1])-(l=v[(_=B+_|0)+2>>1])|0))>(0|(w=(0|R(q,(0|R(e[200944+(f<<2)>>2],(0|X)>0?w+(l<<1)|0:(w<<1)+l|0))/3e3|0))/256|0)))o||((0|t)<0?a=r:(a=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(a=Q[r+4>>1]|Q[r+6>>1]<<16,l=Q[r>>1]|Q[r+2>>1]<<16,v[t>>1]=l,v[t+2>>1]=l>>>16,v[t+4>>1]=a,v[t+6>>1]=a>>>16,a=Q[r+60>>1]|Q[r+62>>1]<<16,l=Q[r+56>>1]|Q[r+58>>1]<<16,v[t+56>>1]=l,v[t+58>>1]=l>>>16,v[t+60>>1]=a,v[t+62>>1]=a>>>16,a=Q[r+52>>1]|Q[r+54>>1]<<16,l=Q[r+48>>1]|Q[r+50>>1]<<16,v[t+48>>1]=l,v[t+50>>1]=l>>>16,v[t+52>>1]=a,v[t+54>>1]=a>>>16,a=Q[r+44>>1]|Q[r+46>>1]<<16,l=Q[r+40>>1]|Q[r+42>>1]<<16,v[t+40>>1]=l,v[t+42>>1]=l>>>16,v[t+44>>1]=a,v[t+46>>1]=a>>>16,a=Q[r+36>>1]|Q[r+38>>1]<<16,l=Q[r+32>>1]|Q[r+34>>1]<<16,v[t+32>>1]=l,v[t+34>>1]=l>>>16,v[t+36>>1]=a,v[t+38>>1]=a>>>16,a=Q[r+28>>1]|Q[r+30>>1]<<16,l=Q[r+24>>1]|Q[r+26>>1]<<16,v[t+24>>1]=l,v[t+26>>1]=l>>>16,v[t+28>>1]=a,v[t+30>>1]=a>>>16,a=Q[r+20>>1]|Q[r+22>>1]<<16,l=Q[r+16>>1]|Q[r+18>>1]<<16,v[t+16>>1]=l,v[t+18>>1]=l>>>16,v[t+20>>1]=a,v[t+22>>1]=a>>>16,a=Q[r+12>>1]|Q[r+14>>1]<<16,l=Q[r+8>>1]|Q[r+10>>1]<<16,v[t+8>>1]=l,v[t+10>>1]=l>>>16,v[t+12>>1]=a,v[t+14>>1]=a>>>16,d[o+177904|0]=0,v[t>>1]=32768|Q[t>>1],a=t))),t=w+Q[_+2>>1]|0;else{if((0-w|0)<=(0|X))break s;o||((0|t)<0?a=r:(a=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(a=Q[r+4>>1]|Q[r+6>>1]<<16,l=Q[r>>1]|Q[r+2>>1]<<16,v[t>>1]=l,v[t+2>>1]=l>>>16,v[t+4>>1]=a,v[t+6>>1]=a>>>16,a=Q[r+60>>1]|Q[r+62>>1]<<16,l=Q[r+56>>1]|Q[r+58>>1]<<16,v[t+56>>1]=l,v[t+58>>1]=l>>>16,v[t+60>>1]=a,v[t+62>>1]=a>>>16,a=Q[r+52>>1]|Q[r+54>>1]<<16,l=Q[r+48>>1]|Q[r+50>>1]<<16,v[t+48>>1]=l,v[t+50>>1]=l>>>16,v[t+52>>1]=a,v[t+54>>1]=a>>>16,a=Q[r+44>>1]|Q[r+46>>1]<<16,l=Q[r+40>>1]|Q[r+42>>1]<<16,v[t+40>>1]=l,v[t+42>>1]=l>>>16,v[t+44>>1]=a,v[t+46>>1]=a>>>16,a=Q[r+36>>1]|Q[r+38>>1]<<16,l=Q[r+32>>1]|Q[r+34>>1]<<16,v[t+32>>1]=l,v[t+34>>1]=l>>>16,v[t+36>>1]=a,v[t+38>>1]=a>>>16,a=Q[r+28>>1]|Q[r+30>>1]<<16,l=Q[r+24>>1]|Q[r+26>>1]<<16,v[t+24>>1]=l,v[t+26>>1]=l>>>16,v[t+28>>1]=a,v[t+30>>1]=a>>>16,a=Q[r+20>>1]|Q[r+22>>1]<<16,l=Q[r+16>>1]|Q[r+18>>1]<<16,v[t+16>>1]=l,v[t+18>>1]=l>>>16,v[t+20>>1]=a,v[t+22>>1]=a>>>16,a=Q[r+12>>1]|Q[r+14>>1]<<16,l=Q[r+8>>1]|Q[r+10>>1]<<16,v[t+8>>1]=l,v[t+10>>1]=l>>>16,v[t+12>>1]=a,v[t+14>>1]=a>>>16,d[o+177904|0]=0,v[t>>1]=32768|Q[t>>1],a=t))),t=Q[_+2>>1]-w|0}o=1,v[2+((f<<1)+a|0)>>1]=t,e[c+8>>2]=a}if((0|(f=f+1|0))==6)break}B=a}if((0|m)!=(0|E))continue;break A}break}B=r}for(a=0;;){if((r=e[(E=216192+(W<<4)|0)>>2])-5>>>0<2)break e;if((0|r)<=4){if(r=e[E+8>>2],t=Q[E+4>>1],a){if((0|r)!=(0|a))break e;e[E+8>>2]=B}else B=r;if(16&(a=Q[B>>1]))break e;for(_=32&a?(R(t,6)>>>0)/5|0:t,o=0,r=a=e[E+12>>2],f=0;;){A:{r:if((0|(m=(c=v[2+((t=f<<1)+a|0)>>1])-(t=v[(w=t+B|0)+2>>1])|0))>(0|(c=(0|R(_,(0|R(e[200944+(f<<2)>>2],(0|m)>0?c+(t<<1)|0:(c<<1)+t|0))/3e3|0))/256|0))){if(!o){if(v[a>>1]<0){r=a,t=t+c|0;break r}r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=Q[a+20>>1]|Q[a+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=Q[a+16>>1]|Q[a+18>>1]<<16,v[t>>1]=m,v[t+2>>1]=m>>>16,v[t+4>>1]=o,v[t+6>>1]=o>>>16,t=Q[a+4>>1]|Q[a+6>>1]<<16,o=Q[a>>1]|Q[a+2>>1]<<16,v[r>>1]=o,v[r+2>>1]=o>>>16,v[r+4>>1]=t,v[r+6>>1]=t>>>16,t=Q[a+12>>1]|Q[a+14>>1]<<16,o=Q[a+8>>1]|Q[a+10>>1]<<16,v[r+8>>1]=o,v[r+10>>1]=o>>>16,v[r+12>>1]=t,v[r+14>>1]=t>>>16,t=Q[a+28>>1]|Q[a+30>>1]<<16,o=Q[a+24>>1]|Q[a+26>>1]<<16,v[r+24>>1]=o,v[r+26>>1]=o>>>16,v[r+28>>1]=t,v[r+30>>1]=t>>>16,t=Q[a+36>>1]|Q[a+38>>1]<<16,o=Q[a+32>>1]|Q[a+34>>1]<<16,v[r+32>>1]=o,v[r+34>>1]=o>>>16,v[r+36>>1]=t,v[r+38>>1]=t>>>16,t=Q[a+44>>1]|Q[a+46>>1]<<16,o=Q[a+40>>1]|Q[a+42>>1]<<16,v[r+40>>1]=o,v[r+42>>1]=o>>>16,v[r+44>>1]=t,v[r+46>>1]=t>>>16,t=Q[a+52>>1]|Q[a+54>>1]<<16,o=Q[a+48>>1]|Q[a+50>>1]<<16,v[r+48>>1]=o,v[r+50>>1]=o>>>16,v[r+52>>1]=t,v[r+54>>1]=t>>>16,t=Q[a+60>>1]|Q[a+62>>1]<<16,o=Q[a+56>>1]|Q[a+58>>1]<<16,v[r+56>>1]=o,v[r+58>>1]=o>>>16,v[r+60>>1]=t,v[r+62>>1]=t>>>16,d[r+16|0]=0,v[r>>1]=32768|Q[r>>1],t=Q[w+2>>1]}t=t+c|0}else{if((0|m)>=(0-c|0))break A;o||(v[a>>1]<0?r=a:(r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=Q[a+20>>1]|Q[a+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=Q[a+16>>1]|Q[a+18>>1]<<16,v[t>>1]=m,v[t+2>>1]=m>>>16,v[t+4>>1]=o,v[t+6>>1]=o>>>16,t=Q[a+4>>1]|Q[a+6>>1]<<16,o=Q[a>>1]|Q[a+2>>1]<<16,v[r>>1]=o,v[r+2>>1]=o>>>16,v[r+4>>1]=t,v[r+6>>1]=t>>>16,t=Q[a+12>>1]|Q[a+14>>1]<<16,o=Q[a+8>>1]|Q[a+10>>1]<<16,v[r+8>>1]=o,v[r+10>>1]=o>>>16,v[r+12>>1]=t,v[r+14>>1]=t>>>16,t=Q[a+28>>1]|Q[a+30>>1]<<16,o=Q[a+24>>1]|Q[a+26>>1]<<16,v[r+24>>1]=o,v[r+26>>1]=o>>>16,v[r+28>>1]=t,v[r+30>>1]=t>>>16,t=Q[a+36>>1]|Q[a+38>>1]<<16,o=Q[a+32>>1]|Q[a+34>>1]<<16,v[r+32>>1]=o,v[r+34>>1]=o>>>16,v[r+36>>1]=t,v[r+38>>1]=t>>>16,t=Q[a+44>>1]|Q[a+46>>1]<<16,o=Q[a+40>>1]|Q[a+42>>1]<<16,v[r+40>>1]=o,v[r+42>>1]=o>>>16,v[r+44>>1]=t,v[r+46>>1]=t>>>16,t=Q[a+52>>1]|Q[a+54>>1]<<16,o=Q[a+48>>1]|Q[a+50>>1]<<16,v[r+48>>1]=o,v[r+50>>1]=o>>>16,v[r+52>>1]=t,v[r+54>>1]=t>>>16,t=Q[a+60>>1]|Q[a+62>>1]<<16,o=Q[a+56>>1]|Q[a+58>>1]<<16,v[r+56>>1]=o,v[r+58>>1]=o>>>16,v[r+60>>1]=t,v[r+62>>1]=t>>>16,d[r+16|0]=0,v[r>>1]=32768|Q[r>>1],t=Q[w+2>>1])),t=t-c|0}o=1,v[2+((f<<1)+r|0)>>1]=t,e[E+12>>2]=r}if((0|(f=f+1|0))==6)break}B=r}if((0|A)==(0|(W=(0|(r=W+1|0))<=169?r:0)))break}}e[36454]=A}}function ze(A,t){var r,a,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0;$=r=$-48|0,L(+A),l=0|T(1),o=0|T(0),a=l;e:{A:{r:{if((m=2147483647&l)>>>0<=1074752122){if((1048575&l)==598523)break r;if(m>>>0<=1073928572){if((0|a)>0|(0|a)>=0){f=(A+=-1.5707963267341256)+-6077100506506192e-26,O[t>>3]=f,O[t+8>>3]=A-f-6077100506506192e-26,l=1;break e}f=(A+=1.5707963267341256)+6077100506506192e-26,O[t>>3]=f,O[t+8>>3]=A-f+6077100506506192e-26,l=-1;break e}if((0|a)>0|(0|a)>=0){f=(A+=-3.1415926534682512)+-12154201013012384e-26,O[t>>3]=f,O[t+8>>3]=A-f-12154201013012384e-26,l=2;break e}f=(A+=3.1415926534682512)+12154201013012384e-26,O[t>>3]=f,O[t+8>>3]=A-f+12154201013012384e-26,l=-2;break e}if(m>>>0<=1075594811){if(m>>>0<=1075183036){if((0|m)==1074977148)break r;if((0|a)>0|(0|a)>=0){f=(A+=-4.712388980202377)+-18231301519518578e-26,O[t>>3]=f,O[t+8>>3]=A-f-18231301519518578e-26,l=3;break e}f=(A+=4.712388980202377)+18231301519518578e-26,O[t>>3]=f,O[t+8>>3]=A-f+18231301519518578e-26,l=-3;break e}if((0|m)==1075388923)break r;if((0|a)>0|(0|a)>=0){f=(A+=-6.2831853069365025)+-2430840202602477e-25,O[t>>3]=f,O[t+8>>3]=A-f-2430840202602477e-25,l=4;break e}f=(A+=6.2831853069365025)+2430840202602477e-25,O[t>>3]=f,O[t+8>>3]=A-f+2430840202602477e-25,l=-4;break e}if(m>>>0>1094263290)break A}o=(Ge=(f=A+-1.5707963267341256*(B=.6366197723675814*A+6755399441055744-6755399441055744))-(W=6077100506506192e-26*B))<-.7853981633974483,l=ce(B)<2147483648?~~B:-2147483648,o?(l=l-1|0,W=6077100506506192e-26*(B+=-1),f=A+-1.5707963267341256*B):Ge>.7853981633974483&&(l=l+1|0,W=6077100506506192e-26*(B+=1),f=A+-1.5707963267341256*B),A=f-W,O[t>>3]=A,L(+A),o=0|T(1),T(0),((c=m>>>20|0)-(o>>>20&2047)|0)<17||(W=f,A=(f-=A=6077100506303966e-26*B)-(W=20222662487959506e-37*B-(W-f-A)),O[t>>3]=A,L(+A),o=0|T(1),T(0),(c-(o>>>20&2047)|0)<50||(W=f,A=(f-=A=20222662487111665e-37*B)-(W=84784276603689e-45*B-(W-f-A)),O[t>>3]=A)),O[t+8>>3]=f-A-W;break e}if(m>>>0>=2146435072)A-=A,O[t>>3]=A,O[t+8>>3]=A,l=0;else{for(P(0,0|o),P(1,1048575&a|1096810496),A=+j(),l=0,o=1;c=(r+16|0)+(l<<3)|0,f=+(0|(l=ce(A)<2147483648?~~A:-2147483648)),O[c>>3]=f,A=16777216*(A-f),l=1,c=o,o=0,c;);for(O[r+32>>3]=A,l=2;l=(o=l)-1|0,O[(r+16|0)+(o<<3)>>3]==0;);if(ne=r+16|0,c=0,$=E=$-560|0,m=R(Me=(0|(m=((l=(m>>>20|0)-1046|0)-3|0)/24|0))>0?m:0,-24)+l|0,((X=e[28105])+(w=(ue=o+1|0)-1|0)|0)>=0)for(l=X+ue|0,o=Me-w|0;O[(E+320|0)+(c<<3)>>3]=(0|o)<0?0:+e[112432+(o<<2)>>2],o=o+1|0,(0|l)!=(0|(c=c+1|0)););for(re=m-24|0,l=0,c=(0|X)>0?X:0,q=(0|ue)<=0;;){if(q)A=0;else for(_=l+w|0,o=0,A=0;A=O[(o<<3)+ne>>3]*O[(E+320|0)+(_-o<<3)>>3]+A,(0|ue)!=(0|(o=o+1|0)););if(O[(l<<3)+E>>3]=A,o=(0|l)==(0|c),l=l+1|0,o)break}bA=47-m|0,Ye=48-m|0,MA=m-25|0,l=X;A:{for(;;){if(A=O[(l<<3)+E>>3],o=0,c=l,!(_=(0|l)<=0))for(;q=(E+480|0)+(o<<2)|0,w=ce(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,w=ce(A=-16777216*(f=+(0|w))+A)<2147483648?~~A:-2147483648,e[q>>2]=w,A=O[((c=c-1|0)<<3)+E>>3]+f,(0|l)!=(0|(o=o+1|0)););A=Ls(A,re),A+=-8*Qe(.125*A),A-=+(0|(q=ce(A)<2147483648?~~A:-2147483648));r:{s:{i:{if(de=(0|re)<=0){if(re)break i;w=e[476+((l<<2)+E|0)>>2]>>23}else J=c=(l<<2)+E|0,c=(w=e[c+476>>2])-((o=w>>Ye)<>2]=c,q=o+q|0,w=c>>bA;if((0|w)<=0)break r;break s}if(w=2,!(A>=.5)){w=0;break r}}if(o=0,c=0,!_)for(;iA=e[(J=(E+480|0)+(o<<2)|0)>>2],_=16777215,c||(_=16777216,iA)?(e[J>>2]=_-iA,c=1):c=0,(0|l)!=(0|(o=o+1|0)););s:if(!de){o=8388607;i:switch(0|MA){case 1:o=4194303;break;case 0:break i;default:break s}e[(_=(l<<2)+E|0)+476>>2]=e[_+476>>2]&o}q=q+1|0,(0|w)==2&&(A=1-A,w=2,c&&(A-=Ls(1,re)))}if(A!=0)break;if(c=0,!((0|X)>=(0|(o=l)))){for(;c=e[(E+480|0)+((o=o-1|0)<<2)>>2]|c,(0|o)>(0|X););if(c){for(m=re;m=m-24|0,!e[(E+480|0)+((l=l-1|0)<<2)>>2];);break A}}for(o=1;c=o,o=o+1|0,!e[(E+480|0)+(X-c<<2)>>2];);for(c=l+c|0;;){if(w=l+ue|0,l=l+1|0,O[(E+320|0)+(w<<3)>>3]=e[112432+(Me+l<<2)>>2],o=0,A=0,(0|ue)>0)for(;A=O[(o<<3)+ne>>3]*O[(E+320|0)+(w-o<<3)>>3]+A,(0|ue)!=(0|(o=o+1|0)););if(O[(l<<3)+E>>3]=A,!((0|l)<(0|c)))break}l=c}(A=Ls(A,24-m|0))>=16777216?(re=(E+480|0)+(l<<2)|0,o=ce(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,c=ce(A=-16777216*+(0|o)+A)<2147483648?~~A:-2147483648,e[re>>2]=c,l=l+1|0):(o=ce(A)<2147483648?~~A:-2147483648,m=re),e[(E+480|0)+(l<<2)>>2]=o}if(A=Ls(1,m),!((0|l)<0)){for(o=l;c=o,O[(o<<3)+E>>3]=A*+e[(E+480|0)+(o<<2)>>2],o=o-1|0,A*=5960464477539063e-23,c;);if(_=0,!((0|l)<0))for(m=(0|X)>0?X:0,c=l;;){for(re=m>>>0<_>>>0?m:_,X=l-c|0,o=0,A=0;A=O[115200+(o<<3)>>3]*O[(o+c<<3)+E>>3]+A,ue=(0|o)!=(0|re),o=o+1|0,ue;);if(O[(E+160|0)+(X<<3)>>3]=A,c=c-1|0,o=(0|l)!=(0|_),_=_+1|0,!o)break}}if(A=0,(0|l)>=0)for(o=l;c=o,o=o-1|0,A+=O[(E+160|0)+(c<<3)>>3],c;);if(O[r>>3]=w?-A:A,A=O[E+160>>3]-A,o=1,(0|l)>0)for(;A+=O[(E+160|0)+(o<<3)>>3],c=(0|o)!=(0|l),o=o+1|0,c;);O[r+8>>3]=w?-A:A,$=E+560|0,l=7&q,A=O[r>>3],(0|a)<0?(O[t>>3]=-A,O[t+8>>3]=-O[r+8>>3],l=0-l|0):(O[t>>3]=A,O[t+8>>3]=O[r+8>>3])}}return $=r+48|0,l}function $e(){var A=0,t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0,kt=0,Gt=0,Nt=0,Xt=0,tr=0,pr=0,rr=0,Er=0,Sr=0,Zr=0,Aa=0,ta=0,ma=0,$a=0,es=0,Wa=0;e[55925]=0,A=e[56772],e[56772]=A+1,r=e[55961],_=e[55922],X=Ns(39.89822670059037*(t=+(0|A))),E=Ns(22.30530784048753*t),t=+(0|_)/50*(+(0|r)/100)*(Ns(14.765485471872028*t)+(X+E))*10,A=ce(t)<2147483648?~~t:-2147483648,e[56607]=A+e[56607];e:if(!(e[55923]<=0)){for(;;){for(r=YA(e[33209],0,1103515245,0),A=xe,A=Rn(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,A=8191+((A>>>0)%16383|0)|0,e[55929]=A,it=+(0|A),t=.75*O[28387]+it,O[28387]=t,kt=(0|(A=e[55924]))>(0|(Ye=e[55928]))?.5*t:t,tr=(o=.033*+e[56652])>0?1-o:1,r=e[56650]<<2,bA=(0|(iA=e[55921]))==1&&(0|r)>263?263:r,pr=111136+((Gt=e[56651])<<1)|0,rr=111136+((MA=e[56658])<<1)|0,Er=(0|MA)>0,Nt=e[55918],Sr=R(Nt,40),Zr=e[55925],Aa=O[27967],Xt=e[56607],t=O[27979],re=O[27969],f=O[27970],jA=e[56780],Me=e[56654],B=O[27976],W=O[27972],ue=O[28388],J=O[28389],_=e[55927],a=O[28383],w=e[55926],Ge=e[55956],ta=O[27975],E=O[28131],l=O[28130],c=O[28123],q=O[28121],m=O[28122],de=O[28120],ne=O[28119],ma=O[28129],$a=O[28128],es=O[28127],Wa=Ea(0*O[27968]),WA=0;;){X=l;A:{r:switch(iA-1|0){case 0:ue=0,l=q*c,c=m,m=a=l+(ne*(ue=(0|A)<=2?O[111312+(A<<3)>>3]:ue)+de*c);break A;case 1:if(a=0,(0|A)>=(0|_)){J=0;break A}l=O[27965]-O[27966],O[27965]=l,a=.028*(J=l+J);break A;case 2:if(!w){Ge=100,a=0;break A}Ge=100,r=ce(l=+(0|A)/+(0|w)*100)<2147483648?~~l:-2147483648,a=+v[110928+((0|r)%100<<1)>>1],a=t*((+v[110928+((r+1|0)%100<<1)>>1]-a)*(l-+(0|r))+a);break A;case 3:break r;default:break A}w?(Ge=256,r=ce(l=+(0|A)/+(0|w)*256)<2147483648?~~l:-2147483648,a=+v[111344+((0|r)%256<<1)>>1],a=t*((+v[111344+((r+1|0)%256<<1)>>1]-a)*(l-+(0|r))+a)):(Ge=256,a=0)}if((0|A)>=(0|w)&&((0|Xt)>0?(A=(0|Sr)/(0|Xt)|0,B=0,W=0,W=MA>>>0<=87?.001*+v[rr>>1]:W,B=Gt>>>0<=87?.001*+v[pr>>1]*.1:B,Ye=A>>Er,_=(0|(r=(w=(A-1|0)<=(0|bA))?A-2|0:bA))<=40?40:r,l=+v[111776+((_=w||(0|r)<40?_:bA)<<1)>>1],O[27966]=l,q=l,l=+(0|_),O[27965]=q*l*.333,Me=(0|(r=A-_|0))>(0|Me)?Me:r,jA=0-(r=(0|jA)<0?0-Me|0:Me)|0,ne=(l*=.00833)*l,ne*=1-(de=(q=(l=mr(Aa*+((0|Nt)/(0|_)|0)))*Wa)+q)-(q=l*-l),A=(0|(w=A+r|0))!=4):(e[55930]=0,e[55931]=0,e[55932]=0,e[55933]=0,Ye=4,B=0,W=0,w=4,A=0),f=(A|=!Zr)?o:f,re=A?tr:re,A=0),A=A+1|0,l=a=ma*E+(es*a+$a*X),E=X,(0|(WA=WA+1|0))==4)break}if(e[55926]=w,e[55956]=Ge,e[55924]=A,O[28383]=a,e[55927]=_,O[28389]=J,O[28388]=ue,O[27972]=W,O[27976]=B,e[55928]=Ye,e[56654]=Me,e[56780]=jA,O[27970]=f,O[27969]=re,O[28122]=m,O[28120]=de,O[28119]=ne,O[28123]=c,O[28121]=q,O[28131]=E,O[28130]=a,(0|iA)==5&&(a=6e3*((t=+(0|A)/+(0|w))+t+-1),O[28383]=a),t=a*re+O[28384]*f,O[28383]=t,O[28384]=t,(0|A)<(0|_)&&(t=B*it+t,O[28383]=t),f=kt*O[27974],X=t*O[27973]+f,E=0,e[55916]!=2&&(E=O[27987],m=O[27986],O[27987]=m,t=f+t*W,O[27986]=t,f=O[28059],c=O[28058],O[28059]=c,t=f*O[28057]+(O[28055]*(E*O[27985]+(O[27983]*t+m*O[27984]))+c*O[28056]),O[28058]=t,E=O[28049],f=O[28051],m=O[28048],c=O[28047],o=O[28050],O[28051]=o,t=E*f+(c*t+m*o),O[28050]=t,E=O[28043],f=O[28041],m=O[28040],c=O[28039],o=O[28042],O[28043]=o,t=f*E+(c*t+m*o),O[28042]=t,E=O[28035],f=O[28033],m=O[28032],c=O[28031],o=O[28034],O[28035]=o,t=f*E+(c*t+m*o),O[28034]=t,E=O[28027],f=O[28025],m=O[28024],c=O[28023],o=O[28026],O[28027]=o,t=f*E+(c*t+m*o),O[28026]=t,E=O[28019],f=O[28017],m=O[28016],c=O[28015],o=O[28018],O[28019]=o,t=f*E+(c*t+m*o),O[28018]=t,E=O[28011],f=O[28009],m=O[28008],c=O[28007],o=O[28010],O[28011]=o,t=f*E+(c*t+m*o),O[28010]=t,E=O[28003],f=O[28001],m=O[28e3],c=O[27999],o=O[28002],O[28003]=o,t=f*E+(c*t+m*o),O[28002]=t,E=O[27995],f=O[27993],m=O[27992],c=O[27991],o=O[27994],O[27995]=o,E=f*E+(c*t+m*o),O[27994]=E),t=O[28385],O[28385]=X,f=O[28075],m=O[28074],O[28075]=m,c=O[28067],o=O[28066],O[28067]=o,f=f*O[28073]+(O[28071]*X+m*O[28072]),O[28074]=f,m=c*O[28065]+(O[28063]*X+o*O[28064]),O[28066]=m,c=O[28081],o=O[28083],l=O[28079],a=O[28080],B=O[28082],O[28083]=B,X=c*o+(l*(t=ta*kt+X-t)+a*B),O[28082]=X,c=O[28091],o=O[28089],l=O[28087],a=O[28088],B=O[28090],O[28091]=B,c=o*c+(l*t+a*B),O[28090]=c,o=O[28099],l=O[28097],a=O[28095],B=O[28096],W=O[28098],O[28099]=W,o=l*o+(a*t+B*W),O[28098]=o,l=O[28107],a=O[28105],B=O[28103],W=O[28104],re=O[28106],O[28107]=re,l=a*l+(B*t+W*re),O[28106]=l,a=O[28115],B=O[28113],W=O[28111],re=O[28112],ue=O[28114],O[28115]=ue,a=B*a+(W*t+re*ue),O[28114]=a,B=O[28139],W=O[28137],re=O[28136],ue=O[28135],J=O[27971],q=O[28138],O[28139]=q,t=W*B+(ue*(t*J-(a-(l-(o-(c-(X-(E+f+m)))))))+re*q),O[28138]=t,t=O[27977]*(t*+e[50779]),a=+(0|(A=ce(t)<2147483648?~~t:-2147483648)),(0|(A=e[50776]))>1],e[50755])>>8,A=ce(a)<2147483648?~~a:-2147483648,(0|r)>=5500&&(e[51293]=0),r=e[51290],e[51290]=r+1,A=(0|(A=(0|(A=A+w|0))<=-32768?-32768:A))>=32767?32767:A,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=A>>>8,w=(r=e[51292])+1|0,e[51292]=w,v[205184+(r<<1)>>1]=A,(0|w)>=5500&&(e[51292]=0),w=1,e[56606]=e[56606]+1,oe[54046]>>0)break e;if(A=e[55925]+1|0,e[55925]=A,!((0|A)>2]=t,E=f+55|0,m=f+56|0;e:{A:{r:{s:{i:for(;;){if(_=t,(2147483647^ue)<(0|w))break s;ue=w+ue|0;o:{c:{u:{if(B=u[0|(w=_)])for(;;){l:{n:if(t=255&B){if((0|t)!=37)break l;for(B=w;;){if(u[B+1|0]!=37){t=B;break n}if(w=w+1|0,X=u[B+2|0],B=t=B+2|0,(0|X)!=37)break}}else t=w;if((0|(w=w-_|0))>(0|(iA=2147483647^ue)))break s;if(A&&Lr(A,_,w),w)continue i;e[f+76>>2]=t,w=t+1|0,J=-1,u[t+2|0]!=36|d[t+1|0]-48>>>0>=10||(J=d[t+1|0]-48|0,ne=1,w=t+3|0),e[f+76>>2]=w,q=0;n:if((t=(B=d[0|w])-32|0)>>>0>31)re=w;else if(re=w,75913&(t=1<>2]=re,q|=t,(t=(B=d[w+1|0])-32|0)>>>0>=32)break n;if(w=re,!(75913&(t=1<>2]}else{if(u[re+2|0]!=36|d[re+1|0]-48>>>0>=10){if(ne)break u;if(B=re+1|0,!A){e[f+76>>2]=B,ne=0,Me=0;break n}t=e[r>>2],e[r>>2]=t+4,ne=0,t=e[t>>2]}else e[((d[re+1|0]<<2)+o|0)-192>>2]=10,B=re+3|0,ne=1,t=e[((d[re+1|0]<<3)+a|0)-384>>2];if(e[f+76>>2]=B,Me=t,(0|t)>=0)break n;Me=0-Me|0,q|=8192}if(w=0,W=-1,u[0|B]==46)if(u[B+1|0]!=42)e[f+76>>2]=B+1,W=Rs(f+76|0),t=e[f+76>>2],de=1;else{if(u[B+3|0]!=36|d[B+2|0]-48>>>0>=10){if(ne)break u;t=B+2|0,W=0,A&&(B=e[r>>2],e[r>>2]=B+4,W=e[B>>2])}else e[((d[B+2|0]<<2)+o|0)-192>>2]=10,t=B+4|0,W=e[((d[B+2|0]<<3)+a|0)-384>>2];e[f+76>>2]=t,de=~W>>>31|0}else t=B,de=0;for(;;){if(Ge=w,re=28,X=t,(w=d[0|t])-123>>>0<4294967238)break r;if(t=X+1|0,!((w=u[123983+(w+R(Ge,58)|0)|0])-1>>>0<8))break}e[f+76>>2]=t;n:{p:{if((0|w)!=27){if(!w)break r;if((0|J)>=0){e[(J<<2)+o>>2]=w,w=e[(B=(J<<3)+a|0)+4>>2],e[f+64>>2]=e[B>>2],e[f+68>>2]=w;break p}if(!A)break o;lA(f- -64|0,w,r,c);break n}if((0|J)>=0)break r}if(w=0,!A)continue i}B=-65537&q,q=8192&q?B:q,J=0,Ye=84065,re=m;n:{p:{C:{m:{b:{h:{y:{I:{x:{N:{L:{U:{B:{M:{Q:{S:switch(w=d[0|X],(w=Ge&&(15&w)==3?-33&w:w)-88|0){case 11:break n;case 9:case 13:case 14:case 15:break p;case 27:break y;case 12:case 17:break N;case 23:break L;case 0:case 32:break U;case 24:break B;case 22:break M;case 29:break Q;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break c;default:break S}S:switch(w-65|0){case 0:case 4:case 5:case 6:break p;case 2:break b;case 1:case 3:break c;default:break S}if((0|w)==83)break h;break c}B=e[f+64>>2],X=e[f+68>>2],Ye=84065;break x}w=0;M:switch(255&Ge){case 0:case 1:case 6:e[e[f+64>>2]>>2]=ue;continue i;case 2:_=e[f+64>>2],e[_>>2]=ue,e[_+4>>2]=ue>>31;continue i;case 3:v[e[f+64>>2]>>1]=ue;continue i;case 4:d[e[f+64>>2]]=ue;continue i;case 7:break M;default:continue i}_=e[f+64>>2],e[_>>2]=ue,e[_+4>>2]=ue>>31;continue i}W=W>>>0<=8?8:W,q|=8,w=120}if(_=m,bA=32&w,(B=e[f+64>>2])|(X=e[f+68>>2]))for(;d[0|(_=_-1|0)]=bA|u[124512+(15&B)|0],MA=!X&B>>>0>15|!!(0|X),Ge=X,X=X>>>4|0,B=(15&Ge)<<28|B>>>4,MA;);if(!(e[f+64>>2]|e[f+68>>2])|!(8&q))break I;Ye=84065+(w>>>4|0)|0,J=2;break I}if(w=m,X=_=e[f+68>>2],_|(B=e[f+64>>2]))for(;d[0|(w=w-1|0)]=7&B|48,Ge=!X&B>>>0>7|!!(0|X),X=(_=X)>>>3|0,B=(7&_)<<29|B>>>3,Ge;);if(_=w,!(8&q))break I;W=(0|(w=m-_|0))<(0|W)?W:w+1|0;break I}B=e[f+64>>2],X=w=e[f+68>>2],(0|w)<0?(X=_=0-(X+!!(0|B)|0)|0,B=0-B|0,e[f+64>>2]=B,e[f+68>>2]=_,J=1,Ye=84065):2048&q?(J=1,Ye=84066):Ye=(J=1&q)?84067:84065}_=Js(B,X,m)}if((0|W)<0&&de)break s;if(q=de?-65537&q:q,!(W|!!((w=e[f+64>>2])|(B=e[f+68>>2])))){_=m,W=0;break c}W=(0|(w=!(w|B)+(m-_|0)|0))<(0|W)?W:w;break c}if(re=(w=(w=Os(_=(w=e[f+64>>2])||84639,0,X=W>>>0>=2147483647?2147483647:W))?w-_|0:X)+_|0,(0|W)>=0){q=B,W=w;break c}if(q=B,W=w,u[0|re])break s;break c}if(W){B=e[f+64>>2];break m}w=0,Qr(A,32,Me,0,q);break C}e[f+12>>2]=0,e[f+8>>2]=e[f+64>>2],B=f+8|0,e[f+64>>2]=B,W=-1}w=0;m:{for(;;){if(!(_=e[B>>2]))break m;if(!((_=(0|(X=vi(f+4|0,_)))<0)|X>>>0>W-w>>>0)){if(B=B+4|0,W>>>0>(w=w+X|0)>>>0)continue;break m}break}if(_)break A}if(re=61,(0|w)<0)break r;if(Qr(A,32,Me,w,q),w)for(re=0,B=e[f+64>>2];;){if(!(_=e[B>>2])||(re=(_=vi(f+4|0,_))+re|0)>>>0>w>>>0)break C;if(Lr(A,f+4|0,_),B=B+4|0,!(w>>>0>re>>>0))break}else w=0}Qr(A,32,Me,w,8192^q),w=(0|w)<(0|Me)?Me:w;continue i}if((0|W)<0&&de)break s;if(re=61,(0|(w=0|rt[0|l](A,O[f+64>>3],Me,W,q,w)))>=0)continue i;break r}d[f+55|0]=e[f+64>>2],W=1,_=E,q=B;break c}B=u[w+1|0],w=w+1|0}if(A)break e;if(!ne)break o;for(w=1;;){if(A=e[(w<<2)+o>>2]){if(lA((w<<3)+a|0,A,r,c),ue=1,(0|(w=w+1|0))!=10)continue;break e}break}if(ue=1,w>>>0>=10)break e;for(;;){if(e[(w<<2)+o>>2])break u;if((0|(w=w+1|0))==10)break}break e}re=28;break r}if((0|(B=(0|W)>(0|(X=re-_|0))?W:X))>(2147483647^J))break s;if(re=61,(0|iA)<(0|(w=(0|(W=B+J|0))<(0|Me)?Me:W)))break r;Qr(A,32,w,W,q),Lr(A,Ye,J),Qr(A,48,w,W,65536^q),Qr(A,48,B,X,0),Lr(A,_,X),Qr(A,32,w,W,8192^q);continue}break}ue=0;break e}re=61}e[56798]=re}ue=-1}return $=f+80|0,ue}function eA(A,t,r,a,o,l,c,f,m){var E,w,B,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0,kt=0,Gt=0,Nt=0,Xt=0,tr=0,pr=0,rr=0,Er=0,Sr=0,Zr=0,Aa=0,ta=0,ma=0;$=E=$-96|0,Ye=65535&m,re=-2147483648&(o^m),jA=J=65535&o;e:{if(!((w=m>>>16&32767)-32767>>>0>4294934529&(B=o>>>16&32767)-32767>>>0>=4294934530)){if(_=a,!(!a&(0|(Me=Ge=2147483647&o))==2147418112?!(t|r):Me>>>0<2147418112)){X=a,re=32768|o;break e}if(!(!(o=f)&(0|(ue=Ge=2147483647&m))==2147418112?!(l|c):ue>>>0<2147418112)){X=f,re=32768|m,t=l,r=c;break e}if(!(t|_|2147418112^Me|r)){if(!(o|l|c|ue)){re=2147450880,t=0,r=0;break e}re|=2147418112,t=0,r=0;break e}if(!(o|l|2147418112^ue|c)){if(o=t|_,a=r|Me,t=0,r=0,!(a|o)){re=2147450880;break e}re|=2147418112;break e}if(!(t|_|r|Me)){t=0,r=0;break e}if(!(o|l|c|ue)){t=0,r=0;break e}(0|Me)==65535|Me>>>0<65535&&(Ge=(_=!(a|J))<<6,o=Te(m=_?t:a)+32|0,jt(E+80|0,t,r,a,J,(m=Ge+((0|(m=Te(_?r:J)))==32?o:m)|0)-15|0),ne=16-m|0,a=e[E+88>>2],jA=e[E+92>>2],r=e[E+84>>2],t=e[E+80>>2]),ue>>>0>65535||(J=(m=!(f|Ye))<<6,_=Te(o=m?l:f)+32|0,jt(E- -64|0,l,c,f,Ye,(o=J+((0|(o=Te(m?c:Ye)))==32?_:o)|0)-15|0),ne=16+(ne-o|0)|0,f=e[E+72>>2],Ye=e[E+76>>2],l=e[E+64>>2],c=e[E+68>>2])}if(o=l,l=c<<15|l>>>17,Er=r,Ge=YA(de=-32768&(m=o<<15),o=0,r,0),MA=o=xe,Sr=l,Me=t,t=YA(l,0,t,0),l=xe+o|0,r=t>>>0>(m=t+Ge|0)>>>0?l+1|0:l,_=0,t=YA(Me,W,de,W),o=(l=m)+xe|0,J=o=t>>>0>(ue=_+t|0)>>>0?o+1|0:o,Zr=(0|l)==(0|o)&_>>>0>ue>>>0|o>>>0>>0,Aa=a,iA=YA(de,W,a,0),ta=xe,t=YA(Er,W,Sr,W),_=xe+ta|0,_=t>>>0>(bA=t+iA|0)>>>0?_+1|0:_,t=Ye<<15|f>>>17,a=YA(WA=f<<15|c>>>17,0,Me,W),l=xe+_|0,kt=l=a>>>0>(it=a+bA|0)>>>0?l+1|0:l,l=(a=(0|r)==(0|MA)&m>>>0>>0|r>>>0>>0)+l|0,Ye=l=r>>>0>(Gt=r+it|0)>>>0?l+1|0:l,c=Gt,r=l,jA=YA(de,W,Nt=65536|jA,q),ma=xe,a=YA(Aa,X,Sr,W),o=xe+ma|0,m=o=a>>>0>(Xt=a+jA|0)>>>0?o+1|0:o,t=YA(tr=-2147483648|t,0,Me,W),l=xe+o|0,l=t>>>0>(pr=t+Xt|0)>>>0?l+1|0:l,t=YA(WA,X,Er,W),rr=l,l=l+xe|0,Ge=t>>>0>(MA=t+pr|0)>>>0?l+1|0:l,o=r+MA|0,l=de=(t=0)>>>0>(Me=t+c|0)>>>0?o+1|0:o,r=(t=Me+Zr|0)>>>0>>0?l+1|0:l,ne=((B+w|0)+ne|0)-16383|0,a=YA(tr,X,Er,W),f=xe,o=YA(Nt,X,Sr,W),l=xe+f|0,q=(0|f)==(0|(l=o>>>0>(c=o+a|0)>>>0?l+1|0:l))&a>>>0>c>>>0|l>>>0>>0,f=l,o=YA(WA,X,Aa,X),l=xe+l|0,o=l=(a=o+c|0)>>>0>>0?l+1|0:l,c=(0|l)==(0|f)&a>>>0>>0|l>>>0>>0,l=0,l=(f=c)>>>0>(c=c+q|0)>>>0?1:l,f=c,c=YA(tr,X,Nt,X),l=xe+l|0,Zr=f=f+c|0,c=c>>>0>f>>>0?l+1|0:l,f=a,W=o,o=(0|_)==(0|ta)&iA>>>0>bA>>>0|_>>>0>>0,l=0,o=((q=_=(0|_)==(0|kt)&bA>>>0>it>>>0|_>>>0>kt>>>0)>>>0>(_=o+_|0)>>>0?1:l)+W|0,l=c,q=o=(a=a+_|0)>>>0<_>>>0?o+1|0:o,iA=a,o=a=(0|o)==(0|W)&a>>>0>>0|o>>>0>>0,_=a=a+Zr|0,c=l=o>>>0>a>>>0?l+1|0:l,o=YA(WA,X,Nt,X),W=xe,a=YA(tr,X,Aa,X),l=xe+W|0,a=l=a>>>0>(f=a+o|0)>>>0?l+1|0:l,o=(l=(0|W)==(0|l)&o>>>0>f>>>0|l>>>0>>0)+c|0,c=o=a>>>0>(bA=a+_|0)>>>0?o+1|0:o,l=f+q|0,o=l=(a=(o=0)+iA|0)>>>0>>0?l+1|0:l,f=(0|q)==(0|l)&a>>>0>>0|l>>>0>>0,l=c,l=(c=f+(W=bA)|0)>>>0>>0?l+1|0:l,iA=c,f=a,_=o,o=(a=(a=(a=(0|m)==(0|ma)&jA>>>0>Xt>>>0|m>>>0>>0)+(m=(0|m)==(0|rr)&Xt>>>0>pr>>>0|m>>>0>rr>>>0)|0)+(o=(0|Ge)==(0|rr)&MA>>>0>>0|Ge>>>0>>0)|0)+_|0,l=c=l,_=c=(f=(0|(o=(a=m=(q=Ge)+f|0)>>>0>>0?o+1|0:o))==(0|_)&f>>>0>a>>>0|o>>>0<_>>>0)+iA|0,c=l=f>>>0>c>>>0?l+1|0:l,f=a,l=0,m=o,o=o+((W=q=(0|Ye)==(0|de)&Me>>>0>>0|Ye>>>0>de>>>0)>>>0>(q=q+((0|Ye)==(0|kt)&it>>>0>Gt>>>0|Ye>>>0>>0)|0)>>>0?1:l)|0,l=c,m=l=(c=f=(0|(o=(a=a+q|0)>>>0>>0?o+1|0:o))==(0|m)&a>>>0>>0|o>>>0>>0)>>>0>(f=f+_|0)>>>0?l+1|0:l,65536&l?ne=ne+1|0:(_=J>>>31|0,l=m<<1|f>>>31,f=f<<1|o>>>31,m=l,l=o<<1|a>>>31,a=a<<1|r>>>31,o=l,l=J<<1|ue>>>31,ue<<=1,J=l,l=r<<1|t>>>31,t=t<<1|_,r=l|(c=0)),(0|ne)>=32767)re|=2147418112,t=0,r=0;else{A:{if((0|ne)<=0){if((c=1-ne|0)>>>0<=127){jt(E+48|0,ue,J,t,r,l=ne+127|0),jt(E+32|0,a,o,f,m,l),Hr(E+16|0,ue,J,t,r,c),Hr(E,a,o,f,m,c),ue=e[E+32>>2]|e[E+16>>2]|!!(e[E+48>>2]|e[E+56>>2]|e[E+52>>2]|e[E+60>>2]),J=e[E+36>>2]|e[E+20>>2],t=e[E+40>>2]|e[E+24>>2],r=e[E+44>>2]|e[E+28>>2],a=e[E>>2],o=e[E+4>>2],c=e[E+8>>2],l=e[E+12>>2];break A}t=0,r=0;break e}c=f,l=65535&m|ne<<16}X|=c,re|=l,(!t&(0|r)==-2147483648?!(ue|J):(0|r)>0|(0|r)>=0)?t|ue|-2147483648^r|J?(t=a,r=o):(_=re,re=(a=(0|(l=o))==(0|(r=(r=t=1&a)>>>0>(t=t+a|0)>>>0?l+1|0:l))&t>>>0>>0|r>>>0>>0)>>>0>(X=a+X|0)>>>0?_+1|0:_):(a=(0|o)==(0|(r=(t=a+1|0)?o:o+1|0))&t>>>0>>0|r>>>0>>0,o=re,re=(X=a+X|0)>>>0>>0?o+1|0:o)}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=X,e[A+12>>2]=re,$=E+96|0}function ft(A,t,r,a,o,l,c){var f,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0;$=f=$-480|0,e[f+476>>2]=0,e[f+456>>2]=0,e[f+460>>2]=0,e[f+448>>2]=0,e[f+452>>2]=0,e[f+440>>2]=0,e[f+444>>2]=0,e[f+432>>2]=0,e[f+436>>2]=0,m=0;e:if(e[A+684>>2]){for(X=c?e[c>>2]:X;w=u[t+m|0],d[(f+112|0)+m|0]=w,E=m+1|0,w&&(w=m>>>0<158,m=E,w););if(d[E+(f+112|0)|0]=0,!((ue=268435456&l)|!(8&e[47197]))){E=0;A:if(223&(w=u[0|t]))for(m=0;;){if(d[(f+272|0)+m|0]=w,!(223&(w=u[(E=m+1|0)+t|0])))break A;if(B=m>>>0<118,m=E,!B)break}d[(m=f+272|0)+E|0]=0,e[f+48>>2]=m,Ar(e[47195],(0|l)>=0?87019:86877,f+48|0)}e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0,o&&(d[0|o]=0);A:{r:if(223&(m=u[0|t]))for(J=536870912&l,Me=4096&l,Ge=f+105|0,E=t,w=0;;){B=UA(f+476|0,E),re=!!(0|Rt(e[f+476>>2]))+re|0,W=u[(m=(_=255&m)+A|0)+7668|0];s:if(!((q=e[f+476>>2])-48>>>0<10|q-2406>>>0<10)|(re?u[A+170|0]:0)){i:if((w=e[f+476>>2]-e[A+600>>2]|0)>>>0>127||!(w=e[6192+((w<<2)+A|0)>>2])){if(W){for(q=5168+((_<<2)+A|0)|0,W=W+(m=u[m+7924|0])|0,ne=_|u[E+1|0]<<8,w=0;e[(E=(m<<2)+A|0)+7184>>2]==(0|ne)&&(e[f+472>>2]=e[f+464>>2],et(A,f+472|0,t,2,e[E+6704>>2],f+432|0,l,X),(0|(E=e[f+432>>2]))>0&&(E=E+35|0,e[f+432>>2]=E),w=1,et(A,f+464|0,t,1,e[q>>2],f+448|0,l,X),e[f+448>>2]>(0|E)||(E=e[f+444>>2],e[f+456>>2]=e[f+440>>2],e[f+460>>2]=E,E=e[f+436>>2],e[f+448>>2]=e[f+432>>2],e[f+452>>2]=E,e[f+464>>2]=e[f+472>>2])),W>>>0>(m=m+1|0)>>>0;);if(w)break i}o:{c:{if(!(m=e[5168+((_<<2)+A|0)>>2])){if(et(A,f+464|0,t,0,e[A+5168>>2],f+448|0,l,X),e[f+448>>2])break o;if(16&u[188808])break c;if(w=UA(f+468|0,_=(E=e[f+464>>2])-1|0),m=e[f+468>>2],!(e[A+600>>2]<=0|(0|m)>577)){if(_i(m)){e[f+32>>2]=21,IA(r,87049,f+32|0);break A}m=e[f+468>>2]}if((0|m)==57384&&((0|(W=e[A+92>>2]))<=e[47352]||(e[47352]=W)),si(m)&&((0|(m=e[A+72>>2]))<=e[47352]||(e[47352]=m)),!((W=(m=e[f+468>>2])-192|0)>>>0>413)&&(W=u[W+94240|0])&&(w=w-1|0,!(u[E-2|0]==32&u[w+E|0]==32))){for(e[f+472>>2]=_,d[0|_]=W;B=u[(m=E)+w|0],d[0|m]=B,E=m+1|0,(0|B)!=32;);if((0|w)>0&&cA(m,32,w),e[A+24>>2]&&!((0|Si(94222,e[f+468>>2]))<=0)){e[f+464>>2]=_,w=0;break s}w=0,d[0|r]=0,e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0;break s}if(!(m=gs(m))||(0|(E=e[m+4>>2]))==e[A+600>>2])break c;if((0|E)==e[A+188>>2]){e[f+4>>2]=Zi(f- -64|0,e[A+192>>2]),e[f>>2]=21,IA(r,87218,f);break A}if(!(4&u[m+16|0]))break c;e[f+20>>2]=Zi(f- -64|0,e[m+12>>2]),e[f+16>>2]=21,IA(r,87218,f+16|0);break A}if(et(A,f+464|0,t,1,m,f+448|0,l,X),e[f+448>>2])break o}c:if(!((m=e[f+476>>2])-768>>>0<112)){if(Rt(m)){if(d[(B+e[f+464>>2]|0)-1|0]<33&(0|re)<=1)break c;if(d[0|r]=0,!c)break r;e[c>>2]=4096|e[c>>2];break r}SA(A,e[f+476>>2],-1,f+272|0,0),u[f+272|0]&&(e[f+448>>2]=1,e[f+452>>2]=f+272)}e[f+464>>2]=(B+e[f+464>>2]|0)-1;break i}e[A+288>>2]=0}else et(A,f+464|0,t,B,w,f+448|0,l,X);if(E=(m=e[f+452>>2])||86135,e[f+452>>2]=E,w=0,!(e[f+448>>2]<=0)){if(m=1|e[f+456>>2],(0|l)<0)break e;if(!(u[0|E]!=21|Me)){_A(r,E);break A}if(!(!(8&e[47197])|ue))i:if(m=e[47195],(0|(B=e[m+76>>2]))>=0&(!B|e[56823]!=(-1073741825&B)))_=e[(B=m+76|0)>>2],e[B>>2]=_||1073741823,e[m+80>>2]==10||(0|(_=e[m+20>>2]))==e[m+16>>2]?Di(m):(e[m+20>>2]=_+1,d[0|_]=10),e[B>>2]=0;else{if(e[m+80>>2]!=10&&(0|(B=e[m+20>>2]))!=e[m+16>>2]){e[m+20>>2]=B+1,d[0|B]=10;break i}Di(m)}if(B=-32769&(m=e[f+456>>2]),e[f+456>>2]=B,!(!o|!B|(1024&m?J:0))){A=e[f+464>>2],_A(o,E),m=B|(Ye=(r=A)-ct(t,A=f+112|0,TA(A))|0,(1151&m)==1024?Ye:0);break e}(m=e[f+460>>2])&&(d[0|m]=69),wn(A,r,a,E)}}else d[f+104|0]=95,ct(Ge,E,B),m=1,d[105+(f+B|0)|0]=0,NA(A,f+104|0,f- -64|0),w-1>>>0<=4294967293&&(m=TA(m=f- -64|0)+m|0,d[0|m]=11,d[m+1|0]=0,m=0),wn(A,r,a,f- -64|0),e[f+464>>2]=E+B,w=m;if(E=e[f+464>>2],!(223&(m=u[0|E])))break}ct(t,A=f+112|0,TA(A))}m=0}return $=f+480|0,m}function Qt(A,t){var r,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0;$=r=$-2976|0,e[t>>2]=1,a=e[A+20>>2],e[(f=r+2960|0)>>2]=e[A+16>>2],e[f+4>>2]=a,a=e[A+12>>2],e[(f=r+2952|0)>>2]=e[A+8>>2],e[f+4>>2]=a,a=e[A+4>>2],e[r+2944>>2]=e[A>>2],e[r+2948>>2]=a,e[50303]||ht();e:if(A=e[r+2948>>2],u[0|A]&&A||((A=e[r+2944>>2])||(A=(A=e[r+2952>>2])||85055,e[r+2944>>2]=A),Wt(a=r+80|0,A,60),Wi(a,0),!(l=Yr(201216,a))||(e[r+2948>>2]=e[l+4>>2]+1,u[r+2958|0]|u[r+2956|0]|u[r+2957|0]))){re=r+1536|0,$=X=$-336|0;A:if(!(!(A=e[(q=r+2944|0)+4>>2])|!u[0|A])){if((0|(ue=TA(A)))>=0){for(a=ue>>>0>=79?79:ue,w=1;A=Kr(d[e[q+4>>2]+o|0]),d[(X+256|0)+o|0]=A,w=((255&A)==45)+w|0,A=(0|a)!=(0|o),o=o+1|0,A;);if((0|w)!=1)break A}w=1}if((0|(B=e[50303]))<=0)e[re>>2]=0,A=0;else{for(f=(0|w)>=0;;){E=e[201216+(Ge<<2)>>2];A:if(ga(e[E+8>>2],88032,3)){if((A=e[q+4>>2])&&ga(A,91687,3)){if(f){A=100;r:if(w){if(a=0,o=e[E+4>>2],!(J=u[0|o])){if(!ga(X+256|0,90013,9))break r;break A}for(;;){for(ne=1,m=o+1|0,Me=1,Ye=0,o=0;(0|o)<(0|ue)&&(0|(A=d[(X+256|0)+o|0]))!=45||(A=0),Ye=((_=(0|(W=u[o+m|0]))==45)&!!(0|(Me=(_?0:W)<<24>>24==(0|A)?Me:0)))+Ye|0,o=o+1|0,ne=_+ne|0,W;);if(o=o+m|0,(_=Me+Ye|0)&&(a=(0|(A=R((m=(0|(A=w-_|0))<=0?5:5-A|0)-((0|(A=ne-_|0))>0?A:0)|0,100)-(J<<24>>24<<1)|0))>(0|a)?A:a),!(J=u[0|o]))break}if(!(A=a))break A}(a=e[q>>2])&&(A=gr(a,e[E>>2])?gr(a,e[E+8>>2])?A:A+400|0:A+500|0),((o=u[q+12|0])-1&255)>>>0>1||((a=u[E+12|0])-1&255)>>>0>1||(A=(0|a)!=(0|o)?A-50|0:A+50|0),o=u[q+13|0],A=u[E+12|0]!=2|o>>>0>12?A:u[E+13|0]>12?A+5|0:A,(a=u[E+13|0])&&((a=((o?R(o,100):3e3)>>>0)/(a>>>0)|0)>>>0<=99&&(a=1e4/(a>>>0)|0),A=(m=A)+((A=5-(((a-100&65535)>>>0)/10|0)|0)>>31&A)|0,A=o?A+10|0:A),A=(0|A)<=1?1:A}else{if(ga(e[E+8>>2],X+256|0,ue))break A;A=100}e[re+(c<<2)>>2]=E,e[E+16>>2]=A}else e[re+(c<<2)>>2]=E;c=c+1|0}if((0|B)==(0|(Ge=Ge+1|0)))break}e[re+(c<<2)>>2]=0,A=0,c&&(ya(re,c,8),A=c)}if($=X+336|0,w=A,A||(e[t>>2]=0,A=Yr(201216,85055),e[r+1536>>2]=A,w=!!(0|A)),t=u[r+2957|0],f=2,(0|(A=u[r+2956|0]))!=2&&(f=2,(t-1&255)>>>0<12||(iA=(0|A)!=1,f=(0|A)==1)),B=(c=e[132136+(f<<2)>>2])+(W=t>>>0<60)|0,A=0,(0|w)>0)for(a=0;;){l=e[(r+1536|0)+(de<<2)>>2];A:{r:{s:{if(iA){if(W||(t=0,a))break r}else{if(t=u[l+12|0],a|W)break s;t=(0|t)!=(0|f)}if(o=0,t|u[l+13|0]<60)break A;break r}if((0|t)!=(0|f)){o=a;break A}}e[(r+80|0)+(a<<2)>>2]=l,o=a+1|0}A:if(u[l+15|0]){if(_=0,t=A,a=o,!((0|A)>11))for(;;){if((o=u[0|B])||(B=c,o=u[0|c]),A=e[l+12>>2],m=R(t,24)+202624|0,e[m+8>>2]=e[l+8>>2],e[m+12>>2]=A,A=e[l+4>>2],e[m>>2]=e[l>>2],e[m+4>>2]=A,A=e[l+20>>2],e[m+16>>2]=e[l+16>>2],e[m+20>>2]=A,d[m+14|0]=o,e[(r+80|0)+(a<<2)>>2]=m,B=B+1|0,a=a+1|0,A=t+1|0,(_=_+1|0)>>>0>=u[l+15|0])break A;if(o=(0|t)<11,t=A,!o)break}}else a=o;if((0|(de=de+1|0))==(0|w))break}else{if(!l)break e;a=0}A:if(!(!(o=u[0|B])|(0|A)>=12))for(;;){if(t=e[l+12>>2],c=R(A,24)+202624|0,e[c+8>>2]=e[l+8>>2],e[c+12>>2]=t,t=e[l+4>>2],e[c>>2]=e[l>>2],e[c+4>>2]=t,t=e[l+20>>2],e[c+16>>2]=e[l+16>>2],e[c+20>>2]=t,d[c+14|0]=o,e[(r+80|0)+(a<<2)>>2]=c,a=a+1|0,!(o=u[0|(B=B+1|0)]))break A;if(t=(0|A)<11,A=A+1|0,!t)break}a?(A=e[(r+80|0)+(u[r+2958|0]%(0|a)<<2)>>2],(t=u[A+14|0])?(d[202976]=0,e[r+48>>2]=47,IA(r+2971|0,91351,r+48|0),d[r+2971|0]=0,t>>>0<=9?(e[r+20>>2]=t,e[r+16>>2]=r+2971,IA(202976,91378,r+16|0)):(e[r+36>>2]=t-10,e[r+32>>2]=r+2971,IA(202976,91503,r+32|0)),A=e[A+8>>2],e[r+4>>2]=202976,e[r>>2]=A,A=202912,IA(202912,87760,r)):A=e[A+8>>2]):A=0}else{if(A=e[l+8>>2],!u[202976])break e;e[r+64>>2]=A,e[r+68>>2]=202976,A=202912,IA(202912,87760,r- -64|0)}return $=r+2976|0,A}function st(A,t,r,a,o){var l,c,f=0,m=0,E=0,w=0,B=0,_=0,W=0;$=l=$-464|0,d[l+432|0]=0,d[l+368|0]=0,d[l+304|0]=0,d[l+292|0]=0,B=(0|t)/10|0,f=e[33273];e:{if(!(c=2&a)|e[33272]!=2){W=32&a?113:111,w=1&a,_=t-R(B,10)|0;A:{r:{s:{i:{o:{c:{u:{l:if(u[0|f])f=0;else{n:{if(8&a){if(e[l+288>>2]=t,IA(m=l+452|0,91198,l+288|0),f=NA(A,m,l+304|0)){m=0;break l}e[l+272>>2]=t,IA(m=l+452|0,91314,l+272|0),f=NA(A,m,l+304|0),m=0}else{if(!w)break n;if(E=_A(l+432|0,133104),4&a){if(e[l+260>>2]=W,e[l+256>>2]=t,IA(m=l+452|0,91324,l+256|0),f=NA(A,m,l+304|0),u[133116]&&f)break u;if(m=f,f)break l}e[l+244>>2]=W,e[l+240>>2]=t,IA(m=l+452|0,91384,l+240|0),m=f=NA(A,m,l+304|0)}if(f)break l}n:{if(c){if(!(1&d[133096]))break n;e[l+208>>2]=t,IA(f=l+452|0,91498,l+208|0),f=NA(A,f,l+304|0)}else E=e[A+108>>2],e[l+224>>2]=t,IA(f=l+452|0,(0|r)>=2?91700:(262144&E)>>>18|0?91534:91700,l+224|0),f=NA(A,f,l+304|0);if(f)break l}!w|!(32&u[A+109|0])?(e[l+192>>2]=t,IA(f=l+452|0,91766,l+192|0),f=NA(A,f,l+304|0)):f=0}if(!(16&a)|(0|t)>9)break o;f=m;break c}if(_A(E,133116),!(16&a)|(0|t)>9)break i}NA(A,88875,l+368|0);break r}if(!f)break s;f=m}d[l+368|0]=0;break r}s:if(w&&(e[l+180>>2]=W,e[l+176>>2]=B,IA(f=l+452|0,91846,l+176|0),NA(A,f,l+368|0))){if(m=1,!_|!(16&u[A+109|0]))break s;Xr(l+368|0,133104)}else m||(e[l+160>>2]=B,IA(m=l+452|0,512&a?91936:92016,l+160|0),NA(A,m,l+368|0),m=0);if(f=_,u[l+368|0]||(f=_,16&u[A+106|0]&&(e[l+144>>2]=254&B,IA(f=l+452|0,92016,l+144|0),NA(A,f,l+368|0),f=(0|t)%20|0)),d[l+304|0]=0,B=f,(0|f)<=0)f=m;else{if(c&&(f=e[33273],u[0|f])){_A(l+304|0,f),d[l+432|0]=0,E=w;break A}if(E=0,8&a&&(e[l+128>>2]=B,IA(a=l+452|0,91314,l+128|0),E=NA(A,a,l+304|0)),!w|16&u[A+104|0]||(e[l+116>>2]=W,e[l+112>>2]=B,IA(a=l+452|0,91384,l+112|0),m=(E=NA(A,a,l+304|0))?1:m),f=m,!E){s:{if(!c|!(1&e[33274])){if(!(16&u[A+104|0])&&c)break s;m=e[A+108>>2],e[l+96>>2]=B,IA(a=l+452|0,(0|r)>=2?91700:(262144&m)>>>18|0?91534:91700,l+96|0),r=NA(A,a,l+304|0)}else e[l+80>>2]=B,IA(r=l+452|0,91498,l+80|0),r=NA(A,r,l+304|0);if(r)break r}e[l+64>>2]=B,IA(r=l+452|0,91766,l- -64|0),NA(A,r,l+304|0)}}}E=w,u[l+432|0]|f|!w||((0|t)<20|(16&u[A+104|0]?0:_)||(NA(A,92162,l+432|0),E=1,!u[l+432|0]))&&(NA(A,92205,l+432|0),E=1)}if(!(!(r=d[l+304|0])|!(48&(t=e[A+104>>2]))|!u[l+368|0])){if(NA(A,90824,l+292|0),!E|!(8&u[A+109|0])||(d[l+292|0]=0),16&u[A+104|0]){e[l+28>>2]=l+432,e[l+24>>2]=l+368,e[l+20>>2]=l+292,e[l+16>>2]=l+304,IA(o,91059,l+16|0),a=1;break e}e[l+12>>2]=l+432,e[l+8>>2]=l+304,e[l+4>>2]=l+292,e[l>>2]=l+368,IA(o,91059,l),a=1;break e}512&t&&(!r|(0|(t=TA(l+368|0)-1|0))<0||(f=u[e[144464+(d[0|(t=t+(l+368|0)|0)]<<2)>>2]+11|0]!=2,(0|(a=u[e[144464+(r<<2)>>2]+11|0]))==1&&(a=u[e[144464+(d[l+305|0]<<2)>>2]+11|0]),f|(255&a)!=2||(d[0|t]=0))),!(8&u[A+110|0])|!u[l+432|0]?(e[l+56>>2]=l+432,e[l+52>>2]=l+304,e[l+48>>2]=l+368,IA(o,92282,l+48|0)):(e[l+36>>2]=l+304,e[l+32>>2]=l+368,(0|(t=IA(o,90368,l+32|0)))>0&&(t=u[e[144464+(u[(r=t-1|0)+o|0]<<2)>>2]+11|0]==2?r:t),_A(t+o|0,l+432|0))}else _A(o,f);a=0}e:if(268435456&(A=e[A+104>>2])){if((0|TA(o))<=0)break e;for(t=0,A=0;u[0|(r=A+o|0)]==6&&(t&&(d[0|r]=5),t=1),A=A+1|0,(0|TA(o))>(0|A););}else if(256&A&&(t=0,!((0|(A=(w=TA(o))-1|0))<0))){if(A)for(_=-2&w,f=0;u[0|(m=A+o|0)]==6?(r=1,t&&(d[0|m]=5)):r=t,u[0|(m=m-1|0)]==6?(t=1,r&&(d[0|m]=5)):t=r,A=A-2|0,(0|_)!=(0|(f=f+2|0)););1&w&&(!t|u[0|(A=A+o|0)]!=6||(d[0|A]=5))}return $=l+464|0,a}function wt(A,t,r,a){var o,l,c=0,f=0,m=0,E=0,w=0,B=0,_=0;if($=o=$-352|0,d[o+304|0]=0,d[o+224|0]=0,d[o+64|0]=0,m=e[e[47192]+292>>2],_=UA(o+348|0,t),(1048320&(c=e[o+348>>2]))==57344&&(c&=255,e[o+348>>2]=c),2&a&&os(c)&&NA(A,85437,o+304|0),c=ai(e[o+348>>2],A),e[o+348>>2]=c,B=1&a,SA(A,c,d[0|(l=t+_|0)],o+224|0,B),!(t=u[o+224|0])){e:if((t=ns(e[o+348>>2]))&&(e[o+348>>2]=16383&t,4&a)){A:switch(1073741823&(t>>=14)){case 0:case 3:break e;default:break A}NA(A,t=e[131232+(t<<2)>>2],o+304|0),u[o+304|0]||(d[o+306|0]=ii(84744),w=t,t=o+304|3,NA(e[47194],w,t),u[o+307|0]&&(v[o+304>>1]=5385,t=TA(t)+(o+304|0)|0,d[t+5|0]=0,d[t+4|0]=m,d[t+3|0]=21))}SA(A,e[o+348>>2],d[0|l],o+224|0,B),t=u[o+224|0]}e:{A:{if(t&=255){if((0|t)!=21)break A;_A(r,o+224|0),_=0;break e}if(t=1632,!((0|(c=e[o+348>>2]))<1632)){for(E=103360;;){if((0|c)>=(t+10|0)){if(!(t=e[(E=E+4|0)>>2]))break A;if((0|t)<=(0|c))continue;break A}break}(0|(t=48+(c-t|0)|0))<=0||SA(A,t,0,o+224|0,B)}}A:{r:{s:{i:{if(t=gs(e[o+348>>2])){if(c=e[t+4>>2],!t|1&(E=e[t+16>>2])||(f=e[47192],e[f+600>>2]==(0|c)|e[f+188>>2]==(0|c)|e[f+184>>2]==(0|c)||(d[o+144|0]=0,NA(f,e[t>>2],o- -64|0)?(0|(f=e[47192]))!=(0|A)&&(m=e[A+292>>2],_A(o+144|0,o- -64|0),d[o+66|0]=e[f+292>>2]):(d[o+66|0]=ii(84744),NA(e[47194],e[t>>2],o+144|0)),u[o+144|0]&&(v[o+64>>1]=5385,_A(3|(f=o- -64|0),w=o+144|0),f=TA(w)+f|0,d[f+5|0]=0,d[f+4|0]=m,d[f+3|0]=21))),u[o+224|0])break A;if(!c||(m=e[47192],e[m+188>>2]!=(0|c)))break i;t=e[m+192>>2];break r}if(u[o+224|0])break A;E=0,c=0;break s}if((t=e[t+12>>2])&&!(2&E))break r}t=25966}if((e[A+212>>2]==(0|t)&(0|t)!=27503||(d[o+226|0]=ii(Zi(o+47|0,t)),(t=e[47194])&&((0|(m=e[o+348>>2]))>55215||(0|(f=m-44032|0))<0?SA(t,m,d[0|l],o+224|3,B):(d[o+52|0]=32,t=w=o+53|0,m-50500>>>0>=588&&(t=kr(4352+((f>>>0)/588|0)|0,w)+w|0),kr(4449+(((m=(f>>>0)/28|0)>>>0)%21|0)|0,t),kr(4519+(f-R(m,28)|0)|0,t+3|0),d[t+6|0]=32,d[t+7|0]=0,d[o+227|0]=0,t=o+224|3,ft(e[47194],w,t,77,0,0,0),Ut(e[47194],t,0,-1,0)),t=o+224|3,u[o+227|0]==21&&(d[o+226|0]=ii(o+224|4),SA(e[47194],e[o+348>>2],d[0|l],t,B)),na(e[e[32972]+60>>2]),u[o+227|0]&&(v[o+224>>1]=5385,t=TA(t)+(o+224|0)|0,d[t+3|0]=21,B=e[A+292>>2],d[t+5|0]=0,d[t+4|0]=B)),!u[o+224|0]))&&(16&E||(ls(e[o+348>>2])&&NA(e[47192],85683,o+224|0),u[o+224|0]||(Nr(e[o+348>>2])||NA(e[47192],85778,o+224|0),u[o+224|0]||lr(85992,o+224|0,0))),!(8&E)||4&a)){if(t=e[o+348>>2],(0|c)!=10240?(e[o+32>>2]=t,IA(o+52|0,86013,o+32|0)):(c=o+52|0,1&t&&(d[o+52|0]=49,c=o+53|0),2&t&&(d[0|c]=50,c=c+1|0),4&t&&(d[0|c]=51,c=c+1|0,t=e[o+348>>2]),8&t&&(d[0|c]=52,c=c+1|0,t=e[o+348>>2]),16&t&&(d[0|c]=53,c=c+1|0,t=e[o+348>>2]),32&t&&(d[0|c]=54,c=c+1|0,t=e[o+348>>2]),64&t&&(d[0|c]=55,c=c+1|0,t=e[o+348>>2]),128&t&&(d[0|c]=56,c=c+1|0),d[0|c]=0),t=o+224|0,E=u[o+52|0])for(c=o+52|0;t=TA(t)+t|0,d[0|t]=23,t=t+1|0,SA(e[47192],E<<24>>24,0,t,1),(a=u[0|t])&&(0|a)!=21||(0|(a=d[0|c]))<97||lr(e[130860+((255&a)<<2)>>2],t,0),E=u[0|(c=c+1|0)];);t=TA(t)+t|0,d[0|t]=9,d[t+1|0]=0}}t=TA(r),2&u[A+144|0]?(e[o+16>>2]=255,e[o+28>>2]=o+304,e[o+24>>2]=o+224,e[o+20>>2]=o- -64,IA(o+144|0,86210,o+16|0)):(e[o>>2]=255,e[o+12>>2]=o+224,e[o+8>>2]=o+304,e[o+4>>2]=o- -64,IA(o+144|0,86210,o)),TA(o+144|0)+t>>>0>199||_A(t+r|0,o+144|0)}return $=o+352|0,_}function JA(A,t,r,a,o,l,c){var f,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0,bA=0,MA=0,jA=0,WA=0,it=0;$=f=$-528|0,ue=c?e[c>>2]:0,de=e[o+4>>2];e:{A:{if(e[A+220>>2]>0){Wt(E=f+352|0,t,160),$=W=$-176|0,q=1-(X=e[A+220>>2])|0,re=e[A+224>>2],J=e[A+216>>2],B=E;r:{s:{for(;;){if(Me=UA(W+172|0,B),m=e[W+172>>2]){if((0|m)<(0|X)|(0|m)>(0|J))break s;if(re){if((0|(m=d[re+(m-X|0)|0]))<=0)break s}else m=m+q|0;if(B=B+Me|0,d[_+W|0]=m,m=160,(0|(_=_+1|0))!=160)continue}else m=_;break}if(re=0,d[m+W|0]=0,q=d[0|W],e[W+172>>2]=q,q){for(iA=2+(J-X|0)|0,X=m=W;;){J=m+1|0;i:{if((Me=e[A+8180>>2])&&(_=0,!((0|(B=v[Me>>1]))>(0|(ne=(d[0|J]<<8)+q|0)))))for(;;){if((0|B)==(0|ne)){q=_+iA|0,e[W+172>>2]=q,m=m+2|0;break i}if(!((0|ne)>=(0|(B=v[Me+((_=_+1|0)<<1)>>1]))))break}m=J}if(Ge=63&q|Ge<<6,(0|(_=re+6|0))<8?re=_:(re=re-2|0,d[0|X]=Ge>>re,X=X+1|0),q=d[0|m],e[W+172>>2]=q,!q)break}(0|re)<=0||(d[0|X]=Ge<<8-re,X=X+1|0)}else X=W;d[0|X]=0,ct(E,W,m=X-W|0),X=64|m;break r}X=TA(E)}$=W+176|0,W=E}else X=TA(t),W=t;if(E=u[0|W]){for(m=0,_=W;w=1023&(w=(w<<3)+E|0)^w>>>8,m=m+1|0,E=u[0|(_=_+1|0)];);m=m+w&1023}else m=0;if(w=e[692+((m<<2)+A|0)>>2]){if(m=u[0|w])break A;m=0;break e}if(m=0,!o)break e;e[o>>2]=0;break e}for(Me=1073741824&de,ne=2048&l,de=512&ue,iA=65536&ue,bA=1&ue,MA=2&ue,ue=8&l,jA=1024&l,J=4&l,WA=63&X,it=A+8233|0;;){l=(255&m)+w|0;A:{r:if((127&(m=u[w+1|0]))==(0|X)&&!ga(W,w+2|0,WA)){w=2+((63&m)+w|0)|0;s:{if(m<<24>>24<0)re=0,d[0|a]=0;else{if((0|(re=TA(w)))>=160)break s;_A(a,w),w=1+(w+re|0)|0}if(E=0,l>>>0<=w>>>0)m=r,B=0;else{_=0,B=0;i:{for(;;){w=(m=w)+1|0;o:if((m=u[0|m])>>>0>=100){if(q=e[A+320>>2],m>>>0>=132){_|=q>>>m-132&1;break o}_|=!(q>>>m-100&1)}else{if(m>>>0>=81){q=m-80|0,Ge=l-w|0;c:if(c)for(m=0;;){if(Ye=R(m,12)+c|0,!u[Ye+10|0])break c;if(_=!!(12&u[Ye+1|0])|_,Ye=(0|m)!=(0|q),m=m+1|0,!Ye)break}if(go(r,w,Ge)|1&_)break r;e[33264]=q,m=r+Ge|0,B|=128,w=l;break i}m>>>0>=65?(B=15&m|-16&B,B=12&~m?B:512|B):m>>>0>=32?E|=1<>>0>w>>>0))break}if(m=r,1&_)break A}if(65536&E&&!J||jA&&49152&E)break A}if(J&&(16384&E||!ue&&32768&E)||(MA?0:512&E)|(bA?0:1024&E)|(iA?0:33554432&B)||!(!(131072&E)|oe[e[47192]+8204>>2]<=m>>>0|Me)|(de?0:262144&E)|(8&u[e[47192]+8242|0]?0:8192&E)||16&E&&(!e[A+8184>>2]&(!ue|!e[A+8192>>2])||!(!ue|e[A+212>>2]!=25966)&&2097152&e[A+8232>>2])||(e[A+8188>>2]?0:64&E)|(!e[A+8196>>2]|ne?32&E:0)||!(!(65536&B)|e[A+212>>2]!=26741|128&u[0|it])|(e[47192]!=(0|A)?524288&E:0))break A;i:{o:{c:{if(!o){if(!re)break c;break i}if(e[o+4>>2]=E,e[o>>2]=1073741824|B,re)break o}if(m=0,!(8&u[188788]))break e;io(o,A=f+272|0),e[f>>2]=t,e[f+4>>2]=A,Ar(e[47195],89330,f);break e}e[o>>2]=-1073741824|B}if(8&u[188788]&&(da(a,f- -64|0),u[e[47192]+172|0]==(B>>>29&1)&&(!c|!(128&B)?(e[f+48>>2]=t,Ar(e[47195],89426,f+48|0)):(ct(A=f+352|0,a=r,r=m-r|0),d[351+(r+f|0)|0]=0,e[f+32>>2]=t,e[f+36>>2]=A,Ar(e[47195],89397,f+32|0)),io(o,A=f+272|0),t=e[47195],e[f+16>>2]=f- -64,e[f+20>>2]=A,Ar(t,89534,f+16|0))),u[UA(f- -64|0,W)+W|0]|!o||Rt(e[f+64>>2]))break e;e[o>>2]=134217728|e[o>>2];break e}Ie(89236,86634,2467,94846),K()}w=l}if(!(m=u[0|w]))break}m=0}return $=f+528|0,m}function zt(A,t,r,a,o){var l,c=0,f=0;$=l=$-304|0,d[l+278|0]=0;e:{if((0|t)>0&&(1&a&&(2&a&&(e[l+164>>2]=r,e[l+160>>2]=t,IA(c=l+290|0,89701,l+160|0),c=NA(A,c,l+224|0))||1&d[133096]&&(e[l+148>>2]=r,e[l+144>>2]=t,IA(c=l+290|0,89757,l+144|0),c=NA(A,c,l+224|0))||(e[l+132>>2]=r,e[l+128>>2]=t,IA(c=l+290|0,89894,l+128|0),c=NA(A,c,l+224|0)))||(e[l+116>>2]=r,e[l+112>>2]=t,IA(c=l+290|0,89974,l+112|0),c=NA(A,c,l+224|0))))break e;if((0|(f=(0|t)%100|0))>=20&&NA(A,90022,l+278|0),1&a){if(2&a){c=f-11|0;A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(c>>>0<9)break r;if(a=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;a=90453;break A;case 1:if(t-2>>>0>=3)break r;a=90453;break A;case 2:if(c>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;a=90453;break A;case 3:if(a=90508,c>>>0<9)break A;a=(a=(0|t)%10|0)?(0|a)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(c>>>0<9)){if(a=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){a=90453;break A}}}a=90586}if(e[l+100>>2]=r,e[l+96>>2]=a,IA(a=l+290|0,90058,l+96|0),c=0,NA(A,a,l+224|0))break e}if(a=f-11|0,1&d[133096]){A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,a>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+84>>2]=r,e[l+80>>2]=c,IA(f=l+290|0,90110,l+80|0),c=0,NA(A,f,l+224|0))break e}A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,a>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+68>>2]=r,e[l+64>>2]=c,IA(f=l+290|0,90139,l- -64|0),c=0,NA(A,f,l+224|0))break e}else a=f-11|0;A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(c=90418,(0|(a=(0|t)%10|0))==1)break A;if(a-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,a>>>0<9)break A;c=(a=(0|t)%10|0)?(0|a)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(c=90537,(0|(a=(0|t)%10|0))==1)break A;if(!(a-2>>>0>=3)){c=90453;break A}}}c=90586}e[l+52>>2]=r,e[l+48>>2]=c,IA(a=l+290|0,90218,l+48|0),c=0,NA(A,a,l+224|0)||((0|r)<4||(e[l+32>>2]=r-1,IA(a=l+290|0,89026,l+32|0),NA(A,a,l+176|0)||(NA(A,90273,l+224|0),e[33275]=3)),u[l+224|0]||(e[l+16>>2]=t,IA(a=l+290|0,90303,l+16|0),(c=NA(A,a,l+224|0))||NA(A,90347,l+224|0),e[33275]=2))}return e[l+4>>2]=l+224,e[l>>2]=l+278,IA(o,90368,l),$=l+304|0,!((0|t)!=1|(0|r)!=1)&&(t=1,32&u[A+106|0])||(t=c),t}function ir(A,t,r,a){var o,l=0,c=0,f=0,m=0,E=0,w=0,B=0;$=o=$+-64|0,v[o+48>>1]=0,e[o+40>>2]=0,e[o+44>>2]=0,e[o+32>>2]=0,e[o+36>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,l=t;e:{for(;;){A:{r:{if((0|(c=u[0|l]))!=69){if((0|c)!=32)break r;if(a&&(d[ct(c=a,t,a=(0|(a=l-t|0))>=159?159:a)+a|0]=0),a=63&r)break A;break e}d[0|l]=101}l=l+1|0;continue}break}if(1&r){A:if((l=l-1|0)>>>0>>0)c=a;else for(c=a;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}f=a-1|0}else f=a,c=a;if((0|a)!=1)for(;;){a=f;A:if(!((l=l-1|0)>>>0>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}A:if(!((l=l-1|0)>>>0>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}if(f=a-2|0,!((0|a)>2))break}if((0|c)<=0)f=0;else{if(m=3&(f=(a=(t=c-1|0)>>>0>=48?48:t)+1|0),t=0,c=0,a>>>0>=3)for(B=-4&f,a=0;E=l+c|0,d[c+o|0]=u[0|E],d[0|E]=32,E=(w=1|c)+l|0,d[o+w|0]=u[0|E],d[0|E]=32,E=(w=2|c)+l|0,d[o+w|0]=u[0|E],d[0|E]=32,E=(w=3|c)+l|0,d[o+w|0]=u[0|E],d[0|E]=32,c=c+4|0,(0|B)!=(0|(a=a+4|0)););if(m)for(;a=l+c|0,d[c+o|0]=u[0|a],d[0|a]=32,c=c+1|0,(0|m)!=(0|(t=t+1|0)););}}if(d[o+f|0]=0,m=65520&r,!(512&r)|u[0|(a=l-1|0)]!=105||(d[0|a]=121),c=4|m,256&r){e:{A:{r:{if((0|(t=e[A+212>>2]))!=25966){if((0|t)!=28268)break r;if(d[0|a]<0||128&(t=d[0|(f=l-2|0)]))break e;if(m=e[A+632>>2])t=!!(0|Tr(m,t));else{if((0|(m=e[A+600>>2]))>0&&(t=t-m|0)-1>>>0>254)break e;t=128&u[344+(A+t|0)|0]}if(!t)break e;if(t=d[0|a],m=e[A+612>>2])t=!!(0|Tr(m,t));else{s:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break s;break e}if((0|t)<0)break e}t=4&u[344+(A+t|0)|0]}if(!t)break e;t=d[l-3|0];s:{if(m=e[A+632>>2])t=!!(0|Tr(m,t));else{i:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break i;break s}if((0|t)<0)break s}t=128&u[344+(A+t|0)|0]}if(t)break e}d[0|l]=u[0|a],d[0|a]=u[0|f],d[l+1|0]=32;break e}if(f=d[l-2|0],t=e[A+632>>2])t=!!(0|Tr(t,f));else{s:{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0<255)break s;break A}if((0|f)<0)break A}t=128&u[344+(A+f|0)|0]}if(!t)break A;if(f=d[0|a],t=e[A+608>>2])t=!!(0|Tr(t,f));else{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0>=255)break A}else if((0|f)<0)break A;t=2&u[344+(A+f|0)|0]}if(!t)break A;c=ga(87771,l-3|0,3)?20|m:c;break e}c=e[A+204>>2]?20|m:c;break e}(u[0|a]==99||(f=u[(t=l-2|0)+1|0]<<8,(u[0|t]|f)==29554|(f|u[0|t])==29289||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29301||!ga(88115,l-3|0,3)||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29550|u[0|a]==117||!ga(88384,l-5|0,5)||(u[0|(t=l-4|0)]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735287154||(u[0|t]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735549292))&&(c=20|m)}16&c&&(kr(e[A+204>>2],l),8&u[188788]&&qi(88683,6,e[47195]))}return e[A+8184>>2]|!(2048&r)||(e[A+8184>>2]=1),Q[o>>1]!=115&&ga(o,88850,3)||(c|=8),$=o- -64|0,u[0|o]==39?65531&c:c}function or(A,t,r,a,o,l,c,f,m){var E,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0;$=E=$-112|0,w=2147483647&m;e:{if(_=!(t|r),(a|(B=2147483647&o)?B-2147418112>>>0<2147549184:_)||!(!f&(0|(X=w-2147418112|0))==-2147418112?l|c:(0|X)==-2147418112&!!(0|f)|X>>>0>2147549184)){if(!(!a&(0|B)==2147418112?_:B>>>0<2147418112)){f=a,m=32768|o,l=t,c=r;break e}if(!(!f&(0|w)==2147418112?!(l|c):w>>>0<2147418112)){m|=32768;break e}if(!(t|a|2147418112^B|r)){W=a,f=(a=!(t^l|a^f|r^c|o^m^-2147483648))?0:W,m=a?2147450880:o,l=a?0:t,c=a?0:r;break e}if(!(l|f|2147418112^w|c))break e;if(!(t|a|r|B)){if(l|f|c|w)break e;l&=t,c&=r,f&=a,m&=o;break e}if(!(l|f|c|w)){l=t,c=r,f=a,m=o;break e}}B=(_=ue=(W=(0|w)==(0|B))&(0|a)==(0|f)?(0|r)==(0|c)&t>>>0>>0|r>>>0>>0:W&a>>>0>>0|w>>>0>B>>>0)?l:t,X=_?c:r,J=W=_?m:o,_=_?f:a,re=65535&W,a=ue?a:f,Me=o=ue?o:m,W=o>>>16&32767,(q=J>>>16&32767)||(m=o=!(_|re),w=o?B:_,f=o<<=6,jt(E+96|0,B,X,_,re,(o=o+((0|(m=Te(m?X:re)))==32?Te(w)+32|0:m)|0)-15|0),_=e[E+104>>2],re=e[E+108>>2],X=e[E+100>>2],q=16-o|0,B=e[E+96>>2]),l=ue?t:l,c=ue?r:c,f=a,m=65535&Me,W||(o=t=!(f|m),w=t?l:f,r=t<<=6,jt(E+80|0,l,c,f,m,(t=t+((0|(o=Te(o?c:m)))==32?Te(w)+32|0:o)|0)-15|0),W=16-t|0,f=e[E+88>>2],m=e[E+92>>2],c=e[E+84>>2],l=e[E+80>>2]),r=m<<3|f>>>29,t=f<<3|c>>>29,r|=524288,f=_<<3|X>>>29,m=re<<3|_>>>29,ue=J^Me,o=c<<3|l>>>29,a=l<<3,(0|W)!=(0|q)&&((l=q-W|0)>>>0>127?(t=0,r=0,o=0,a=1):(jt(E- -64|0,a,o,t,r,128-l|0),Hr(E+48|0,a,o,t,r,l),t=e[E+56>>2],r=e[E+60>>2],o=e[E+52>>2],a=e[E+48>>2]|!!(e[E+64>>2]|e[E+72>>2]|e[E+68>>2]|e[E+76>>2]))),_=a,w=o,W=f,re=524288|m,o=X<<3|B>>>29,X=B<<3,B=o;A:if((0|ue)<0){if(l=0,c=0,f=0,m=0,!(_^X|t^W|w^B|r^re))break e;if(a=X-_|0,o=B-((_>>>0>X>>>0)+w|0)|0,f=(l=W-t|0)-(c=(0|w)==(0|B)&_>>>0>X>>>0|w>>>0>B>>>0)|0,m=t=(re-((t>>>0>W>>>0)+r|0)|0)-(l>>>0>>0)|0,t>>>0>524287)break A;l=t=!(f|m),c=t?a:f,r=t<<=6,jt(E+32|0,a,o,f,m,t=(t=t+((0|(l=Te(l?o:m)))==32?Te(c)+32|0:l)|0)-12|0),q=q-t|0,f=e[E+40>>2],m=e[E+44>>2],a=e[E+32>>2],o=e[E+36>>2]}else o=w+B|0,l=(0|w)==(0|(o=(a=_+X|0)>>>0>>0?o+1|0:o))&a>>>0<_>>>0|o>>>0>>0,w=r+re|0,w=(t=t+W|0)>>>0>>0?w+1|0:w,1048576&(m=(f=t+l|0)>>>0>>0?w+1|0:w)&&(a=1&_|(1&o)<<31|a>>>1,o=f<<31|o>>>1,q=q+1|0,f=(1&m)<<31|f>>>1,m=m>>>1|0);if(r=0,B=-2147483648&J,(0|q)>=32767)f=r,m=2147418112|B,l=0,c=0;else if(W=0,(0|q)>0?W=q:(jt(E+16|0,a,o,f,m,q+127|0),Hr(E,a,o,f,m,1-q|0),a=e[E>>2]|!!(e[E+16>>2]|e[E+24>>2]|e[E+20>>2]|e[E+28>>2]),o=e[E+4>>2],f=e[E+8>>2],m=e[E+12>>2]),X=7&a,a=(0|(t=f<<29|o>>>3))==(0|(c=(a=(7&o)<<29|a>>>3)>>>0>(l=(X>>>0>4)+a|0)>>>0?t+1|0:t))&a>>>0>l>>>0|t>>>0>c>>>0,t=r|(7&m)<<29|f>>>3,m=B|m>>>3&65535|W<<16,m=t>>>0>(f=a+t|0)>>>0?m+1|0:m,(0|X)!=4){if(!X)break e}else w=c+(t=0)|0,m=(t=(0|t)==(0|(c=(a=l)>>>0>(l=l+(r=1&l)|0)>>>0?w+1|0:w))&r>>>0>l>>>0|t>>>0>c>>>0)>>>0>(f=t+f|0)>>>0?m+1|0:m}e[A>>2]=l,e[A+4>>2]=c,e[A+8>>2]=f,e[A+12>>2]=m,$=E+112|0}function HA(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0;e:if(A|=0){l=(a=A-8|0)+(A=-8&(t=e[A-4>>2]))|0;A:if(!(1&t)){if(!(3&t)||(a=a-(t=e[a>>2])|0)>>>0>2])))return e[57154]=A,e[l+4>>2]=-2&t,e[a+4>>2]=1|A,void(e[A+a>>2]=A)}else{if(t>>>0<=255){if(o=e[a+8>>2],t=t>>>3|0,(0|(r=e[a+12>>2]))==(0|o)){e[57152]=e[57152]&ia(-2,t);break A}e[o+12>>2]=r,e[r+8>>2]=o;break A}if(f=e[a+24>>2],(0|a)==(0|(t=e[a+12>>2])))if((r=e[(o=a+20|0)>>2])||(r=e[(o=a+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[a+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(!f)break A;o=e[a+28>>2];r:{if(e[(r=228912+(o<<2)|0)>>2]==(0|a)){if(e[r>>2]=t,t)break r;e[57153]=e[57153]&ia(-2,o);break A}if(e[f+(e[f+16>>2]==(0|a)?16:20)>>2]=t,!t)break A}if(e[t+24>>2]=f,(r=e[a+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),!(r=e[a+20>>2]))break A;e[t+20>>2]=r,e[r+24>>2]=t}}if(!(a>>>0>=l>>>0)&&1&(t=e[l+4>>2])){A:{if(!(2&t)){if(e[57158]==(0|l)){if(e[57158]=a,A=e[57155]+A|0,e[57155]=A,e[a+4>>2]=1|A,e[57157]!=(0|a))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|l))return e[57157]=a,A=e[57154]+A|0,e[57154]=A,e[a+4>>2]=1|A,void(e[A+a>>2]=A);A=(-8&t)+A|0;r:if(t>>>0<=255){if(o=e[l+8>>2],t=t>>>3|0,(0|(r=e[l+12>>2]))==(0|o)){e[57152]=e[57152]&ia(-2,t);break r}e[o+12>>2]=r,e[r+8>>2]=o}else{if(f=e[l+24>>2],(0|l)==(0|(t=e[l+12>>2])))if((r=e[(o=l+20|0)>>2])||(r=e[(o=l+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[l+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(f){o=e[l+28>>2];s:{if(e[(r=228912+(o<<2)|0)>>2]==(0|l)){if(e[r>>2]=t,t)break s;e[57153]=e[57153]&ia(-2,o);break r}if(e[f+(e[f+16>>2]==(0|l)?16:20)>>2]=t,!t)break r}e[t+24>>2]=f,(r=e[l+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),(r=e[l+20>>2])&&(e[t+20>>2]=r,e[r+24>>2]=t)}}if(e[a+4>>2]=1|A,e[A+a>>2]=A,e[57157]!=(0|a))break A;return void(e[57154]=A)}e[l+4>>2]=-2&t,e[a+4>>2]=1|A,e[A+a>>2]=A}if(A>>>0<=255)return t=228648+(-8&A)|0,(r=e[57152])&(A=1<<(A>>>3))?A=e[t+8>>2]:(e[57152]=A|r,A=t),e[t+8>>2]=a,e[A+12>>2]=a,e[a+12>>2]=t,void(e[a+8>>2]=A);o=31,A>>>0<=16777215&&(o=62+((A>>>38-(t=Te(A>>>8|0))&1)-(t<<1)|0)|0),e[a+28>>2]=o,e[a+16>>2]=0,e[a+20>>2]=0,c=228912+(o<<2)|0;A:{r:{if((r=e[57153])&(t=1<>>1|0):0),t=e[c>>2];;){if(r=t,(-8&e[t+4>>2])==(0|A))break r;if(t=o>>>29|0,o<<=1,!(t=e[(c=r+(4&t)|0)+16>>2]))break}e[c+16>>2]=a,e[a+24>>2]=r}else e[57153]=t|r,e[c>>2]=a,e[a+24>>2]=c;e[a+12>>2]=a,e[a+8>>2]=a;break A}A=e[r+8>>2],e[A+12>>2]=a,e[r+8>>2]=a,e[a+24>>2]=0,e[a+12>>2]=r,e[a+8>>2]=A}A=e[57160]-1|0,e[57160]=A||-1}}}function br(A,t,r){var a,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0;$=a=$-176|0;e:{if(32&t)W=r-((0|r)>1)|0;else{l=Kt(A,93302);A:{r:{s:{if((0|t)!=2){if(l)break s;t=0;break e}if(W=r+1|0,B=(X=R(r,76)+133152|0)+56|0,_=Kt(A,89360),c=Kt(A,93318),f=Kt(A,93426),m=Kt(A,93499),l)break r;break A}W=r+1|0,B=(X=R(r,76)+133152|0)+56|0,m=0}for(A=0,E=(0|(o=e[l-4>>2]))!=34?(0|o)==39?o:0:o,q=R(r,76)+133208|0;;){if(o=A,!(A=e[l>>2]))break A;r:{if(!E){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|E))break A}if(l=l+4|0,!((0|(w=kr(A,w+q|0)+w|0))<16))break}}E=0,d[w+B|0]=0,w=R(r,76)+133168|0,l=0;A:if(_)for(A=0,B=(0|(o=e[_-4>>2]))!=34?(0|o)==39?o:0:o;;){if(o=A,!(A=e[_>>2]))break A;r:{if(!B){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|B))break A}if(_=_+4|0,!((0|(l=kr(A,l+w|0)+l|0))<36))break}if(d[l+w|0]=0,!(!c|e[c>>2]-48>>>0>=10)){for(;E=(e[c>>2]+R(E,10)|0)-48|0,e[(c=c+4|0)>>2]-48>>>0<10;);(0|E)<=0||(E=E-1|0)}if(o=R(r,76)+133152|0,e[o+4>>2]=E,A=0,l=0,!(!f|e[f>>2]-48>>>0>=10))for(;l=(e[f>>2]+R(l,10)|0)-48|0,e[(f=f+4|0)>>2]-48>>>0<10;);e[o+12>>2]=l,l=R(r,76)+133152|0;A:{r:if(m){for(;r=d[A+93099|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););s:{i:switch(o-34|0){case 0:case 5:break i;default:break s}if(!r){A=0;break A}}for(A=0;r=d[A+93116|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););s:{i:switch(o-34|0){case 0:case 5:break i;default:break s}if(!r){A=1;break A}}for(A=0;r=d[A+93197|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););s:switch(o-34|0){case 0:case 5:break s;default:break r}if(!r){A=2;break A}}A=3}e[l+8>>2]=e[131156+(A<<3)>>2],e[X>>2]=t}if(_A(137776,133168),r=_A(a+96|0,133208),d[a+157|0]=e[33291],d[a+156|0]=e[33290],A=e[33289],e[a+152>>2]=0,d[a+158|0]=A,(0|W)>0)for(c=0;;){if(f=1,t=R(c,76)+133152|0,u[0|(A=t+16|0)]&&Yr(0,A)&&(_A(137776,A),f=0,d[0|r]=0,d[a+158|0]=0,v[a+156>>1]=0),u[0|(A=t+56|0)]){m=_A(r,A),o=e[33679];A:if(u[0|(A=o)])for(;;){if(!gr(A=A+1|0,m)){_A(m,o+1|0);break A}if(A=1+(TA(A)+A|0)|0,!u[0|A])break}f&&(d[137776]=0)}if((A=e[t+8>>2])&&(d[a+156|0]=A),(A=e[t+12>>2])&&(d[a+157|0]=A),(A=e[t+4>>2])&&(d[a+158|0]=A),(0|W)==(0|(c=c+1|0)))break}e[a+148>>2]=r,e[a+144>>2]=137776,(A=Qt(a+144|0,a+172|0))?Ra(A,43)||(t=u[a+156|0],!u[134672]|((0|t)!=u[134724]?t:0)||(e[a>>2]=A,e[a+4>>2]=134672,IA(t=a+16|0,93533,a),A=137776,Wt(137776,t,40))):A=92003,t=0,gr(A,134784)&&(_A(134784,A),t=131072)}return $=a+176|0,t}function fs(A,t){var r,a=0,o=0,l=0,c=0,f=0;r=A+t|0;e:{A:if(!(1&(a=e[A+4>>2]))){if(!(3&a))break e;t=(a=e[A>>2])+t|0;r:{if((0|(A=A-a|0))!=e[57157]){if(a>>>0<=255){if(l=e[A+8>>2],a=a>>>3|0,(0|(o=e[A+12>>2]))!=(0|l))break r;e[57152]=e[57152]&ia(-2,a);break A}if(f=e[A+24>>2],(0|(a=e[A+12>>2]))==(0|A))if((o=e[(l=A+20|0)>>2])||(o=e[(l=A+16|0)>>2])){for(;c=l,(o=e[(l=(a=o)+20|0)>>2])||(l=a+16|0,o=e[a+16>>2]););e[c>>2]=0}else a=0;else o=e[A+8>>2],e[o+12>>2]=a,e[a+8>>2]=o;if(!f)break A;l=e[A+28>>2];s:{if(e[(o=228912+(l<<2)|0)>>2]==(0|A)){if(e[o>>2]=a,a)break s;e[57153]=e[57153]&ia(-2,l);break A}if(e[f+(e[f+16>>2]==(0|A)?16:20)>>2]=a,!a)break A}if(e[a+24>>2]=f,(o=e[A+16>>2])&&(e[a+16>>2]=o,e[o+24>>2]=a),!(o=e[A+20>>2]))break A;e[a+20>>2]=o,e[o+24>>2]=a;break A}if(3&~(a=e[r+4>>2]))break A;return e[57154]=t,e[r+4>>2]=-2&a,e[A+4>>2]=1|t,void(e[r>>2]=t)}e[l+12>>2]=o,e[o+8>>2]=l}A:{if(!(2&(a=e[r+4>>2]))){if(e[57158]==(0|r)){if(e[57158]=A,t=e[57155]+t|0,e[57155]=t,e[A+4>>2]=1|t,e[57157]!=(0|A))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|r))return e[57157]=A,t=e[57154]+t|0,e[57154]=t,e[A+4>>2]=1|t,void(e[A+t>>2]=t);t=(-8&a)+t|0;r:if(a>>>0<=255){if(l=e[r+8>>2],a=a>>>3|0,(0|(o=e[r+12>>2]))==(0|l)){e[57152]=e[57152]&ia(-2,a);break r}e[l+12>>2]=o,e[o+8>>2]=l}else{if(f=e[r+24>>2],(0|r)==(0|(a=e[r+12>>2])))if((l=e[(o=r+20|0)>>2])||(l=e[(o=r+16|0)>>2])){for(;c=o,(l=e[(o=(a=l)+20|0)>>2])||(o=a+16|0,l=e[a+16>>2]););e[c>>2]=0}else a=0;else o=e[r+8>>2],e[o+12>>2]=a,e[a+8>>2]=o;if(f){l=e[r+28>>2];s:{if(e[(o=228912+(l<<2)|0)>>2]==(0|r)){if(e[o>>2]=a,a)break s;e[57153]=e[57153]&ia(-2,l);break r}if(e[f+(e[f+16>>2]==(0|r)?16:20)>>2]=a,!a)break r}e[a+24>>2]=f,(o=e[r+16>>2])&&(e[a+16>>2]=o,e[o+24>>2]=a),(o=e[r+20>>2])&&(e[a+20>>2]=o,e[o+24>>2]=a)}}if(e[A+4>>2]=1|t,e[A+t>>2]=t,e[57157]!=(0|A))break A;return void(e[57154]=t)}e[r+4>>2]=-2&a,e[A+4>>2]=1|t,e[A+t>>2]=t}if(t>>>0<=255)return a=228648+(-8&t)|0,(o=e[57152])&(t=1<<(t>>>3))?t=e[a+8>>2]:(e[57152]=t|o,t=a),e[a+8>>2]=A,e[t+12>>2]=A,e[A+12>>2]=a,void(e[A+8>>2]=t);l=31,t>>>0<=16777215&&(l=62+((t>>>38-(a=Te(t>>>8|0))&1)-(a<<1)|0)|0),e[A+28>>2]=l,e[A+16>>2]=0,e[A+20>>2]=0,c=228912+(l<<2)|0;A:{if((o=e[57153])&(a=1<>>1|0):0),a=e[c>>2];;){if(o=a,(-8&e[a+4>>2])==(0|t))break A;if(a=l>>>29|0,l<<=1,!(a=e[(c=o+(4&a)|0)+16>>2]))break}e[c+16>>2]=A,e[A+24>>2]=o}else e[57153]=a|o,e[c>>2]=A,e[A+24>>2]=c;return e[A+12>>2]=A,void(e[A+8>>2]=A)}t=e[o+8>>2],e[t+12>>2]=A,e[o+8>>2]=A,e[A+24>>2]=0,e[A+12>>2]=o,e[A+8>>2]=t}}function ws(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0;if(!(t=d[88105]))return A;if(A=Ra(A,t)){if(!u[88106])return A;if(u[A+1|0]){if(!u[88107]){o=!!(0|(r=u[A+1|0]));e:if(r&&(0|(t=r|u[0|A]<<8))!=(0|(f=u[88106]|u[88105]<<8)))for(r=A+1|0;;){if(o=!!(0|(a=u[(A=r)+1|0])),!a)break e;if(r=A+1|0,(0|f)==(0|(t=a|t<<8&65280)))break}return o?A:0}if(u[A+2|0]){if(!u[88108]){r=A+2|0,o=!!(0|(t=u[A+2|0]));e:if(t&&(0|(t=u[A+1|0]<<16|u[0|A]<<24|t<<8))!=(0|(f=u[88106]<<16|u[88105]<<24|u[88107]<<8)))for(;;){if(A=r+1|0,o=!!(0|(a=u[r+1|0])),!a)break e;if(r=A,(0|f)==(0|(t=(t|a)<<8)))break}else A=r;return o?A-2|0:0}if(u[A+3|0]){if(!u[88109]){r=A+3|0,o=!!(0|(t=u[A+3|0]));e:if(t&&(0|(t=t|u[A+1|0]<<16|u[0|A]<<24|u[A+2|0]<<8))!=(0|(f=(A=u[88105]|u[88106]<<8|u[88107]<<16|u[88108]<<24)<<24|(65280&A)<<8|A>>>8&65280|A>>>24)))for(;;){if(A=r+1|0,o=!!(0|(a=u[r+1|0])),!a)break e;if(r=A,(0|f)==(0|(t=a|t<<8)))break}else A=r;return o?A-3|0:0}f=A,$=m=$-1056|0,e[(A=m+1048|0)>>2]=0,e[A+4>>2]=0,e[(A=m+1040|0)>>2]=0,e[A+4>>2]=0,e[m+1032>>2]=0,e[m+1036>>2]=0,e[m+1024>>2]=0,e[m+1028>>2]=0;e:{A:{r:{s:{if(t=u[88105]){for(;;){if(!u[l+f|0])break A;if(l=l+1|0,e[((255&t)<<2)+m>>2]=l,e[(A=(m+1024|0)+(t>>>3&28)|0)>>2]=e[A>>2]|1<>>0>1)break s}else E=-1,A=1;c=-1,r=1;break r}for(a=1,t=1;;){s:if((0|(c=u[88105+(t+E|0)|0]))!=(0|(o=u[A+88105|0])))o>>>0>>0?(a=A-E|0,r=A,t=1):(E=r,r=r+1|0,a=1,t=1);else{if((0|t)==(0|a)){r=r+a|0,t=1;break s}t=t+1|0}if(!(l>>>0>(A=r+t|0)>>>0))break}if(r=1,c=-1,l>>>0<=1)A=a;else{for(A=0,o=1,t=1;;){s:if((0|(B=u[88105+(t+c|0)|0]))!=(0|(w=u[r+88105|0])))w>>>0>B>>>0?(o=r-c|0,A=r,t=1):(c=A,A=A+1|0,o=1,t=1);else{if((0|t)==(0|o)){A=A+o|0,t=1;break s}t=t+1|0}if(!(l>>>0>(r=A+t|0)>>>0))break}A=a,r=o}}for(t=A,ga(88105,(a=(A=c+1>>>0>E+1>>>0)?r:t)+88105|0,B=(w=A?c:E)+1|0)?(a=((A=~w+l|0)>>>0>>0?w:A)+1|0,o=0):o=l-a|0,W=l-1|0,_=63|l,c=0,A=f;;){if(!(f-A>>>0>=l>>>0))if(r=Os(f,0,_)){if(f=r,r-A>>>0>>0)break A}else f=f+_|0;r=u[A+W|0],t=l;r:{if(e[(m+1024|0)+(r>>>3&28)>>2]>>>r&1)if((0|(r=e[(r<<2)+m>>2]))==(0|l)){s:{if(E=u[(r=(t=B)>>>0>c>>>0?t:c)+88105|0])for(;;){if(u[A+r|0]!=(255&E))break s;if(!(E=u[(r=r+1|0)+88105|0]))break}for(;;){if(t>>>0<=c>>>0)break e;if(u[(t=t-1|0)+88105|0]!=u[A+t|0])break}t=a,c=o;break r}t=r-w|0}else t=(r=l-r|0)>>>0>c>>>0?r:c;c=0}A=A+t|0}}A=0}$=m+1056|0,r=A}}}}return r}function Ha(A,t,r,a,o,l){var c,f,m,E,w=0,B=0,_=0;if($=c=$-560|0,d[c+448|0]=0,d[c+144|0]=0,d[c+120|0]=0,m=34&l,f=t-R(B=(0|t)/100|0,100)|0,1&(E=64&u[A+106|0]?(0|t)>999|l:0)|(0|t)>99){e:{A:{r:{if(!(!m|f)){if(!NA(A,90606,c+304|0))break r;break e}if(f)break A}if(NA(A,90691,c+304|0))break e}NA(A,90725,c+304|0)}w=l,(0|t)<1e3||(w=l,!(8&u[A+105|0])|t-2e3>>>0<4294967196&&(d[c+208|0]=0,zt(A,w=(B>>>0)/10|0,a=16384&e[A+108>>2]?0:o+1|0,!((t>>>0)%1e3|0)|m,c+272|0)||st(A,w,o,e[A+212>>2]==28012?520:(0|a)<4?(e[A+108>>2]>>>a&1)<<3:0,c+208|0),2&u[A+109|0]?(e[c+108>>2]=15,e[c+100>>2]=15,e[c+104>>2]=c+208,e[c+96>>2]=c+272,IA(c+144|0,90761,c+96|0)):(e[c+92>>2]=15,e[c+84>>2]=15,e[c+88>>2]=c+272,e[c+80>>2]=c+208,IA(c+144|0,90761,c+80|0)),a=1,1&(!!(0|(B=B-R(w,10)|0))|E)||(d[c+304|0]=0),w=1|l)),d[c+208|0]=0;e:if(!(~E&(0|B)<=0))if(!(4&u[A+106|0])|!(1&w|u[c+144|0])||NA(A,90824,c+120|0),!m|(16&u[A+109|0]?0:f)||(e[c+64>>2]=B,IA(a=c+548|0,90875,c- -64|0),_=NA(A,a,c+208|0),!(4096&e[A+108>>2])|(0|f)<=0||Xr(c+208|0,133104)),a=1,1&(~E|!!(0|B))){A:{r:{s:{i:{if(!(131072&e[A+108>>2])||1&w|(0|B)!=1){if(f|_||(e[c+48>>2]=B,IA(a=c+548|0,90985,c+48|0),_=NA(A,a,c+208|0)),_||(e[c+32>>2]=B,IA(a=c+548|0,91027,c+32|0),NA(A,a,c+208|0)))break i;if((0|B)!=1)break r;break s}if(!_)break s}d[c+304|0]=0;break A}if(a=1,4&u[A+105|0])break e}st(A,B,o,0,c+208|0)}a=1}else NA(A,88875,c+208|0);e[c+28>>2]=c+304,e[c+24>>2]=c+208,e[c+20>>2]=c+120,e[c+16>>2]=c+144,IA(c+448|0,91059,c+16|0)}else w=l;d[c+132|0]=0;e:{A:{if((0|f)>0)16&u[A+109|0]&&2&w||(!(1&w)|o&&(0|t)<=100||!(64&(a=e[A+104>>2]))&(!(8388608&a)|f>>>0>9)||NA(A,90824,c+132|0),!(1&w|u[c+144|0])|!(524288&e[A+104>>2])|B||NA(A,90824,c+132|0)),d[c+336|0]=0;else if(d[c+336|0]=0,!f&a)break A;if(o?(l=e[A+108>>2],t=(0|o)<4?(l>>>o&1)<<3:0):(a=m?3:2,t=32&l|((0|t)<100?1&w?a:4|a:a),l=e[A+108>>2]),t=(0|o)==1&&e[A+212>>2]==28012?520|t:t,1048576&l&&(a=16|t,t=(0|B)>0||1&w?a:t),!st(A,f,o,256&w|t,c+336|0)|!(128&u[A+104|0]))break e;d[c+132|0]=0;break e}u[133104]&&((0|(A=TA(c+448|0)))<=0||u[(A=A+c|0)+447|0]==10&&(d[A+447|0]=0),_A(c+336|0,133104))}e[c+8>>2]=15,e[c+12>>2]=c+336,e[c+4>>2]=c+132,e[c>>2]=c+448,IA(r,91101,c),$=c+560|0}function Qs(A){var t,r,a,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0;for(o=e[32972],e[o+64>>2]=290816,e[o+68>>2]=4104,e[o+96>>2]=0,e[o+100>>2]=0,e[o+120>>2]=90,e[o+124>>2]=100,e[o+112>>2]=64,e[o+116>>2]=256,e[o+104>>2]=5,e[o+108>>2]=0,e[o+84>>2]=100,e[o+88>>2]=64,l=e[50754],e[o+132>>2]=0,e[o+136>>2]=0,e[o+128>>2]=l,e[o+140>>2]=0,e[o+144>>2]=0,e[o+148>>2]=0,e[o+152>>2]=0,e[o+156>>2]=0,e[o+160>>2]=0,e[36435]=450,e[o+92>>2]=2,e[50870]=0,e[50871]=0,e[50872]=0,e[50873]=0,e[50880]=0,e[50881]=0,e[50882]=0,e[50883]=0,e[50890]=0,e[50891]=0,e[50892]=0,e[50893]=0,c=-3.141592653589793/+e[50754],O[25429]=c,m=-2*c,O[25430]=m,t=(c=mr(200*c))*-c,O[25434]=t,O[25439]=t,O[25444]=t,c=(m=c*Ea(2e3*m))+m,O[25433]=c,O[25438]=c,O[25443]=c,m=1-c-t,O[25432]=m,O[25437]=m,O[25442]=m,e[50902]=0,e[50903]=0,e[50900]=0,e[50901]=0,O[25449]=t,O[25448]=c,e[50912]=0,e[50913]=0,O[25447]=m,e[50910]=0,e[50911]=0,O[25454]=t,O[25453]=c,e[50922]=0,e[50923]=0,O[25452]=m,e[50920]=0,e[50921]=0,O[25459]=t,O[25458]=c,e[50932]=0,e[50933]=0,O[25457]=m,e[50930]=0,e[50931]=0,O[25464]=t,O[25463]=c,O[25462]=m,e[50942]=0,e[50943]=0,e[50940]=0,e[50941]=0,O[25469]=t,O[25468]=c,O[25467]=m,e[50952]=0,e[50953]=0,e[50950]=0,e[50951]=0,O[25474]=t,O[25473]=c,O[25472]=m,r=e[32972],l=0;v[(E=(l<<1)+r|0)+236>>1]=256,v[E+164>>1]=256,o=u[l+105376|0]<<1,v[E+254>>1]=o,v[E+182>>1]=o,v[E+200>>1]=u[l+105385|0]<<1,e[(o=(f=l<<2)+r|0)+308>>2]=e[f+105408>>2],e[o+272>>2]=0,v[E+218>>1]=0,e[f+200944>>2]=(0|R(e[f+105456>>2],22050))/e[50754],(0|(l=l+1|0))!=9;);for(W=e[32961],l=0,a=r+344|0;;){if(o=w,B=W,E=l,(0|(w=e[(l=(f=l<<2)+131840|0)>>2]))==-1&&(w=8e3,e[l>>2]=8e3,E&&(e[131840+(4|f)>>2]=e[f+131836>>2])),W=e[131840+(4|f)>>2],!((0|o)>=(0|(w=(0|w)/8|0))||(0|(_=w-o|0))<=0||(f=o+1|0,l=o,1&_&&(d[344+(o+r|0)|0]=(0|B)>=255?255:B,l=f),(0|f)==(0|w))))for(X=W-B|0;f=((0|R(l-o|0,X))/(0|_)|0)+B|0,d[l+a|0]=(0|f)>=255?255:f,q=((0|R((f=l+1|0)-o|0,X))/(0|_)|0)+B|0,d[f+a|0]=(0|q)>=255?255:q,(0|w)!=(0|(l=l+2|0)););if(l=E+2|0,!(E>>>0<10))break}l=e[32972],e[l+80>>2]=232,e[l+72>>2]=256,e[l+76>>2]=238,A||(e[49848]=0),v[l+200>>1]=(0|R(v[l+200>>1],105))/100}function Da(A,t,r){var a,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;$=a=$-288|0,(0|t)!=132848&&qt(132848,t,40),(0|(o=A+228|0))!=(0|t)&&qt(o,t,40),e[a+88>>2]=t,e[a+84>>2]=47,e[a+80>>2]=137584,IA(o=a+96|0,84089,a+80|0),l=Qa(o),(o=e[A+688>>2])&&(HA(o),e[A+688>>2]=0),o=ka(a+96|0,84577);e:if((0|l)>0&&o)if(r=gt(l),e[A+688>>2]=r,r)if(E=vn(r,l,o),nr(o),E>>>0<=1032)e[a+16>>2]=a+96,Ar(e[30450],85164,a+16|0),r=2;else if(o=e[A+688>>2],r=e[o+4>>2],!((0|(l=e[o>>2]))!=1024|(0|r)<=0)&(0|r)<134217729){o=r+o|0,e[A+684>>2]=o,B=cA(A+5168|0,0,1024),cA(A+7664|0,0,260),cA(A+7924|0,255,256),cA(A+4788|0,0,380),cA(A+6192|0,0,512);A:if((0|(r=u[0|o]))!=7)for(;;){if((0|(l=255&r))!=6){if(!l)break A;l=e[A+684>>2],e[a+72>>2]=r<<24>>24,e[a+64>>2]=132848,e[a+68>>2]=o-l,Ar(e[30450],88950,a- -64|0);break}r:{s:{i:{o:{c:switch((l=u[0|(r=o+1|0)])-18|0){case 0:break o;case 2:break c;default:break i}for(r=4+(-4&r)|0,e[A+180>>2]=r;r=(o=r)+1|0,!$i(o););for(;l=u[0|o],r=o,o=o+1|0,(0|l)!=7;);break r}if(r=o+3|0,(0|(o=((0|(o=d[o+2|0]))<65?191:-65)+o|0))>94)break s;e[4788+((o<<2)+A|0)>>2]=r;break s}r=1+((f=TA(r))+r|0)|0;i:switch(0|f){case 1:e[5168+((l<<2)+A|0)>>2]=r;break s;case 0:e[B>>2]=r;break s;default:break i}f=u[o+2|0],(0|l)!=1?(o=e[A+7664>>2],u[0|(w=(c=A+l|0)+7924|0)]==255&&(d[0|w]=o),d[0|(c=c+7668|0)]=u[0|c]+1,e[(c=(o<<2)+A|0)+6704>>2]=r,e[A+7664>>2]=o+1,e[c+7184>>2]=l|f<<8):e[6188+((f<<2)+A|0)>>2]=r}if(u[0|r]!=7)for(;r=1+(TA(r)+r|0)|0,u[0|r]!=7;);}r=u[0|(o=r+1|0)]}for(o=e[A+688>>2]+8|0;;){for(e[692+((r=m<<2)+A|0)>>2]=o;l=u[0|o];)o=o+l|0;for(o=o+1|0,e[692+((4|r)+A|0)>>2]=o;r=u[0|o];)o=r+o|0;if(o=o+1|0,(0|(m=m+2|0))==1024)break}r=0,(0|(A=e[A+324>>2]))<=0|A>>>0<=E>>>0||(e[a+48>>2]=t,Ar(e[30450],85519,a+48|0))}else e[a+40>>2]=r,e[a+36>>2]=l,e[a+32>>2]=a+96,Ar(e[30450],85349,a+32|0),r=2;else nr(o),r=3;else{if(r||(e[a>>2]=a+96,Ar(e[30450],84963,a)),r=1,!o)break e;nr(o)}return $=a+288|0,r}function za(A){var t,r=0,a=0;for(t=cA(A+344|0,0,256),d[A+364|0]=1,d[A+356|0]=1,d[A+357|0]=1,d[A+358|0]=1,d[A+359|0]=1,d[A+360|0]=1,d[A+361|0]=1,d[A+362|0]=1,d[A+363|0]=1,d[A+348|0]=1,d[A+349|0]=1,d[A+350|0]=1,d[A+351|0]=1,d[A+352|0]=1,d[A+353|0]=1,d[A+354|0]=1,d[A+355|0]=1,d[A+431|0]=3,d[A+429|0]=3,d[A+430|0]=3,d[A+406|0]=3,d[A+407|0]=3,d[A+408|0]=3,d[A+409|0]=3,d[A+410|0]=3,d[A+411|0]=3,d[A+412|0]=3,d[A+413|0]=3,d[A+414|0]=3,d[A+415|0]=3,d[A+416|0]=3,d[A+417|0]=3,d[A+418|0]=3,d[A+419|0]=3,d[A+420|0]=3,d[A+421|0]=3,d[A+440|0]=3,d[A+441|0]=3,d[A+442|0]=3,d[A+443|0]=3,a=21;d[(r=A+a|0)+344|0]=4|u[r+344|0],(0|(r=a+1|0))!=58;)d[0|(r=r+t|0)]=4|u[0|r],d[(r=a+t|0)+2|0]=4|u[r+2|0],d[r+3|0]=4|u[r+3|0],a=a+4|0;d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+432|0]=4|u[A+432|0],d[A+433|0]=4|u[A+433|0],d[A+434|0]=4|u[A+434|0],d[A+435|0]=4|u[A+435|0],d[A+436|0]=4|u[A+436|0],d[A+437|0]=4|u[A+437|0],d[A+438|0]=4|u[A+438|0],d[A+439|0]=4|u[A+439|0],d[A+467|0]=4|u[A+467|0],d[A+468|0]=4|u[A+468|0],d[A+470|0]=4|u[A+470|0],d[A+471|0]=4|u[A+471|0],d[A+348|0]=64|u[A+348|0],d[A+349|0]=64|u[A+349|0],d[A+350|0]=64|u[A+350|0],d[A+351|0]=64|u[A+351|0],d[A+352|0]=64|u[A+352|0],d[A+353|0]=64|u[A+353|0],d[A+354|0]=64|u[A+354|0],d[A+355|0]=64|u[A+355|0],d[A+356|0]=64|u[A+356|0],d[A+357|0]=64|u[A+357|0],d[A+358|0]=64|u[A+358|0],d[A+359|0]=64|u[A+359|0],d[A+360|0]=64|u[A+360|0],d[A+361|0]=64|u[A+361|0],d[A+362|0]=64|u[A+362|0],d[A+363|0]=64|u[A+363|0],d[A+364|0]=64|u[A+364|0],d[A+406|0]=64|u[A+406|0],d[A+407|0]=64|u[A+407|0],d[A+408|0]=64|u[A+408|0],d[A+409|0]=64|u[A+409|0],d[A+410|0]=64|u[A+410|0],d[A+411|0]=64|u[A+411|0],d[A+412|0]=64|u[A+412|0],d[A+413|0]=64|u[A+413|0],d[A+414|0]=64|u[A+414|0],d[A+415|0]=64|u[A+415|0],d[A+416|0]=64|u[A+416|0],d[A+417|0]=64|u[A+417|0],d[A+418|0]=64|u[A+418|0],d[A+419|0]=64|u[A+419|0],d[A+420|0]=64|u[A+420|0],d[A+440|0]=64|u[A+440|0],d[A+441|0]=64|u[A+441|0],d[A+429|0]=64|u[A+429|0],d[A+430|0]=64|u[A+430|0],d[A+431|0]=64|u[A+431|0],d[A+442|0]=64|u[A+442|0],d[A+443|0]=64|u[A+443|0],e[A+40>>2]=1,e[A+204>>2]=e[A+600>>2]+77}function Ua(A,t,r,a,o,l,c,f,m){var E,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0;$=E=$-128|0;e:{A:{if(Vr(l,c,f,m,0,0,0,0)){B=65535&m;r:s:{if((0|(W=m>>>16&32767))!=32767){if(w=4,W)break s;w=l|f|c|B?3:2;break r}w=!(l|f|c|B)}if((0|(X=32767&(J=o>>>16|0)))!=32767&&w)break A}eA(E+16|0,t,r,a,o,l,c,f,m),ua(E,t=e[E+16>>2],a=e[E+20>>2],o=e[E+24>>2],r=e[E+28>>2],t,a,o,r),a=e[E+8>>2],o=e[E+12>>2],f=e[E>>2],m=e[E+4>>2];break e}if(W=f,(0|Vr(t,r,w=a,q=2147483647&o,l,c,f,_=2147483647&m))<=0){if(Vr(t,r,w,q,l,c,W,_)){f=t,m=r;break e}eA(E+112|0,t,r,a,o,0,0,0,0),a=e[E+120>>2],o=e[E+124>>2],f=e[E+112>>2],m=e[E+116>>2]}else{if(re=m>>>16&32767,X?(m=r,f=t):(eA(E+96|0,t,r,w,q,0,0,0,1081540608),w=e[E+104>>2],q=f=e[E+108>>2],X=(f>>>16|0)-120|0,m=e[E+100>>2],f=e[E+96>>2]),re||(eA(E+80|0,l,c,W,_,0,0,0,1081540608),W=e[E+88>>2],_=l=e[E+92>>2],re=(l>>>16|0)-120|0,c=e[E+84>>2],l=e[E+80>>2]),ue=W,Me=65535&_|65536,q=65535&q|65536,(0|X)>(0|re)){for(;;){if(W=(_=w-ue|0)-(B=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,(0|(B=(q-((w>>>0>>0)+Me|0)|0)-(B>>>0>_>>>0)|0))>0|(0|B)>=0){if(w=f,!((f=f-l|0)|W|(m=m-((l>>>0>w>>>0)+c|0)|0)|B)){eA(E+32|0,t,r,a,o,0,0,0,0),a=e[E+40>>2],o=e[E+44>>2],f=e[E+32>>2],m=e[E+36>>2];break e}B=B<<1|W>>>31,w=W<<1|m>>>31}else B=q<<1|w>>>31,w=w<<1|m>>>31;if(q=B,B=m<<1|f>>>31,f<<=1,m=B,!((0|(X=X-1|0))>(0|re)))break}X=re}if(W=(_=w-ue|0)-(B=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,_=B=(q-((w>>>0>>0)+Me|0)|0)-(B>>>0>_>>>0)|0,(0|B)<0)W=w,_=q;else if(w=f,!((f=f-l|0)|W|(m=m-((l>>>0>w>>>0)+c|0)|0)|_)){eA(E+48|0,t,r,a,o,0,0,0,0),a=e[E+56>>2],o=e[E+60>>2],f=e[E+48>>2],m=e[E+52>>2];break e}if((0|_)==65535|_>>>0<65535)for(;t=m>>>31|0,X=X-1|0,q=m<<1|f>>>31,f<<=1,m=q,r=t,t=_<<1|W>>>31,W=r|W<<1,_=t,t>>>0<65536;);t=32768&J,(0|X)<=0?(eA(E- -64|0,f,m,W,65535&_|(t|X+120)<<16,0,0,0,1065811968),a=e[E+72>>2],o=e[E+76>>2],f=e[E+64>>2],m=e[E+68>>2]):(a=W,o=65535&_|(t|X)<<16)}}e[A>>2]=f,e[A+4>>2]=m,e[A+8>>2]=a,e[A+12>>2]=o,$=E+128|0}function as(A,t,r){var a,o,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0;if($=a=$-1040|0,(0|(c=Dn(A,589824,0)))>=0&&((l=Fn(1,2072))?e[l+8>>2]=c:(Se(0|c),l=0)),o=l,l){e:if(l=lo(o))for(W=e[30450],_=(a+96|0)+t|0;;){if((0|(c=e[50303]))>=348){e[a+4>>2]=350,e[a>>2]=c+1,Ar(W,91860,a);break e}if(u[l+19|0]!=46)if(e[a+88>>2]=l+19,e[a+84>>2]=47,e[a+80>>2]=A,IA(l=a+96|0,91924,a+80|0),(0|(l=Qa(l)))!=-31){if(!((0|l)<=0)&&(B=ka(a+96|0,85712))){f=0,d[a+832|0]=0,d[a+752|0]=0,e[a+360>>2]=0,e[a+356>>2]=4,E=0;A:for(;;){for(w=299-E|0;Ot(a+912|0,120,B);){l=a+912|0;r:{if(u[a+912|0]!=35){s:if(!((0|(l=TA(a+912|0)-1|0))<=0))for(;;){if(!((0|(c=d[0|(m=(a+912|0)+l|0)]))==32|c-9>>>0<5))break s;if(d[0|m]=0,!((0|(l=l-1|0))>0))break}if(!(l=ws(a+912|0)))break r}d[0|l]=0}l=a+912|0;r:if(c=u[a+912|0])for(;;){if(Nr(c<<24>>24))break r;if(!(c=u[0|(l=l+1|0)]))break}if(d[0|l]=0,u[a+912|0]){l=l+1|0;r:switch(cs(131904,a+912|0)-1|0){case 0:for(;c=l,l=l+1|0,(0|(m=d[0|c]))==32|m-9>>>0<5;);Wt(a+832|0,c,80);continue;case 1:if(d[a+672|0]=0,e[a+364>>2]=5,c=a+672|0,e[a+16>>2]=c,e[a+20>>2]=a+364,dt(l,86237,a+16|0),(c=TA(c)+2|0)>>>0>=w>>>0)continue;d[0|(l=(a+368|0)+E|0)]=e[a+364>>2],_A(l+1|0,a+672|0),f=f+1|0,E=c+E|0;continue A;case 2:if(e[a+52>>2]=a+360,e[a+48>>2]=a+752,dt(l,86237,a+48|0),!r)continue;e[a+32>>2]=_,Ar(W,92042,a+32|0);continue;case 5:break r;default:continue}e[a+64>>2]=a+356,dt(l,87268,a- -64|0)}}break}d[(a+368|0)+E|0]=0,c=cs(132112,a+752|0),f?(m=TA(_)+E|0,w=ct((f=Fn(28+(TA(a+832|0)+m|0)|0,1))+24|0,a+368|0,l=E+1|0),e[f+4>>2]=w,l=_A(l+w|0,_),e[f>>2]=l,e[f+8>>2]=l,u[a+832|0]&&(e[f>>2]=_A(2+(m+w|0)|0,a+832|0)),l=e[a+360>>2],d[f+14|0]=0,d[f+12|0]=c,d[f+13|0]=l,d[f+15|0]=e[a+356>>2],nr(B),l=e[50303],e[50303]=l+1,e[201216+(l<<2)>>2]=f):nr(B)}}else as(a+96|0,t,r);if(!(l=lo(o)))break}Mo(e[o+8>>2]),HA(o)}$=a+1040|0}function Ht(A,t){var r,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;$=r=$-352|0;e:if(A||(A=e[136284+(t<<4)>>2])){u[0|A]!=47&&(e[r+12>>2]=A,e[r+4>>2]=47,e[r+8>>2]=47,e[r>>2]=137584,IA(A=r+16|0,84114,r)),d[r+240|0]=0;A:{r:{if(a=ka(A,84577)){if((0|bo(a,20))==-1)break A;if(l=Ji(a),o=Ji(a),f=Ji(a),!((0|l)!=65537|(0|o)!=e[50754])&(0|f)==o<<1)break r;nr(a),v[r+256>>1]=u[84864]|u[84865]<<8,A=u[84852]|u[84853]<<8|u[84854]<<16|u[84855]<<24,e[r+240>>2]=u[84848]|u[84849]<<8|u[84850]<<16|u[84851]<<24,e[r+244>>2]=A,A=u[84860]|u[84861]<<8|u[84862]<<16|u[84863]<<24,e[r+248>>2]=u[84856]|u[84857]<<8|u[84858]<<16|u[84859]<<24,e[r+252>>2]=A,$=l=$-16|0;s:{if((a=TA(A=r+240|0))>>>0>=6&&!ga(f=(A+a|0)-6|0,84274,6)){for(E=100;;){for(m=0,$=a=$-16|0,u[227196]||(d[227197]=tA(),d[227196]=1),B=+le(),ce(c=B/1e3)<9223372036854776e3?(w=ce(c)>=1?~~(c>0?Be(Qe(23283064365386963e-26*c),4294967295):je(23283064365386963e-26*(c-+(~~c>>>0>>>0))))>>>0:0,o=~~c>>>0):(w=-2147483648,o=0),e[a>>2]=o,e[a+4>>2]=w,c=1e3*(B-(+(YA(o,w,1e3,0)>>>0)+4294967296*+(0|xe)))*1e3,o=ce(c)<2147483648?~~c:-2147483648,e[a+8>>2]=o,o=f+(a>>>4|0)^R(e[a+8>>2],65537);d[f+m|0]=65+(15&o|o<<1&32),o=o>>>5|0,(0|(m=m+1|0))!=6;);if($=a+16|0,e[l>>2]=384,(0|(a=Dn(A,194,l)))>=0)break s;if(E=E-1|0,e[56798]!=20||!E)break}ct(f,84274,6)}else e[56798]=28;a=-1}$=l+16|0,(0|a)<0||Mo(a)}if(!(a=ka(A,84577))){A=ms(0,e[56798],A);break e}}if((0|(l=Qa(A)))<0){nr(a),A=ms(0,0-l|0,A);break e}if((0|bo(a,0))==-1){t=e[56798],nr(a),A=ms(0,t,A);break e}if(!(o=xr(e[(f=136280+(t<<4)|0)>>2],l))){nr(a),A=48;break e}if((0|vn(o,l,a))!=(0|l)){t=e[56798],nr(a),u[r+240|0]&&zn(r+240|0),HA(o),A=ms(0,t,A);break e}nr(a),u[r+240|0]&&zn(r+240|0),e[136276+(t<<4)>>2]=(u[o+40|0]|u[o+41|0]<<8|u[o+42|0]<<16|u[o+43|0]<<24)/2,e[f>>2]=o,A=0;break e}t=e[56798],nr(a),A=ms(0,t,A)}else A=28;return $=r+352|0,A}function ks(A,t,r,a,o,l){var c,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0;for(d[0|r]=1,c=1&l,Me=1,q=-1,re=-1,w=1,l=t;;){Ge=J-2|0,ue=B,W=re;e:{A:{for(;;){if(!(_=u[0|l])){re=W,B=ue;break e}if(l=l+1|0,X=e[144464+(_<<2)>>2]){r:{if((0|(f=u[X+11|0]))!=1){if(16&u[X+6|0]|(0|f)!=2)break r;d[0|(B=r+w|0)]=q,f=(0|q)<4|(0|W)>(0|q),!(2&u[X+4|0])|!c|(0|q)>=0||(d[0|B]=1),B=f?ue:w,re=f?W:q,q=-1,w=w+1|0;break A}if(!Q[X+8>>1]){f=0,E=w;s:if((0|_)!=8)f=u[X+14|0],e[o>>2]&&f>>>0>=4||(W=(0|f)<(0|W)?W:f,q=f);else{for(;;){if(_=f,E=E-1|0,e[o>>2]|(0|E)<=0||(0|(X=d[0|(m=r+E|0)]))>3)break s;if(f=_+1|0,!(X>>>0<2))break}if(d[0|m]=4,ue=(0|W)<4?E:ue,W=(0|W)<=4?4:W,E>>>0<2)break s;if(X=3&(E=~_+J|0),f=1,Ge-_>>>0>=3)for(_=-4&E,E=0;u[0|(m=r+f|0)]==4&&(d[0|m]=3),u[m+1|0]==4&&(d[m+1|0]=3),u[m+2|0]==4&&(d[m+2|0]=3),u[m+3|0]==4&&(d[m+3|0]=3),f=f+4|0,(0|_)!=(0|(E=E+4|0)););if(m=0,!X)break s;for(;u[0|(_=r+f|0)]==4&&(d[0|_]=3),f=f+1|0,(0|X)!=(0|(m=m+1|0)););}if(Me)continue;break e}}break}}re=W,B=ue,(0|_)==20&&(d[r+w|0]=c&&(0|q)<0?1:q,w=w+1|0)}if(d[0|t]=_,J=w-1|0,t=t+1|0,Me=(0|w)<99)continue}break}d[r+w|0]=1,d[0|t]=0;e:if((0|(t=e[o>>2]))>0)re=4,(0|t)>=(0|w)&&(e[o>>2]=J,t=J),d[t+r|0]=4,B=e[o>>2];else if((0|re)==5&&(re=4,!((0|w)<2))){if(l=1,W=1&(t=w-1|0),(0|w)!=2)for(ue=-2&t,E=0;;){m=4;A:{r:{s:switch(u[0|(t=(f=l)+r|0)]-4|0){case 1:break r;case 0:break s;default:break A}m=2&u[A+14|0]?1:3,f=B}d[0|t]=m,B=f}m=4;A:{r:{s:switch(u[0|(t=(f=l+1|0)+r|0)]-4|0){case 1:break r;case 0:break s;default:break A}m=2&u[A+14|0]?1:3,f=B}d[0|t]=m,B=f}if(l=l+2|0,(0|ue)==(0|(E=E+2|0)))break}if(W){m=4;A:{r:switch(u[0|(t=r+l|0)]-4|0){case 1:break A;case 0:break r;default:break e}m=2&u[A+14|0]?1:3,l=B}d[0|t]=m,B=l}}return e[o>>2]=B,e[a>>2]=w,re}function xr(A,t){var r,a,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0;if(!A)return gt(t);if(t>>>0>=4294967232)return e[56798]=48,0;r=t>>>0<11?16:t+11&-8,c=-8&(a=e[(f=A-8|0)+4>>2]);e:if(3&a){m=c+f|0;A:if(c>>>0>=r>>>0){if((l=c-r|0)>>>0<16)break A;e[f+4>>2]=1&a|r|2,e[(o=f+r|0)+4>>2]=3|l,e[m+4>>2]=1|e[m+4>>2],fs(o,l)}else if(e[57158]!=(0|m))if(e[57157]!=(0|m)){if(2&(l=e[m+4>>2])||(w=c+(-8&l)|0)>>>0>>0)break e;_=w-r|0;r:if(l>>>0<=255){if(c=e[m+8>>2],o=l>>>3|0,(0|(l=e[m+12>>2]))==(0|c)){e[57152]=e[57152]&ia(-2,o);break r}e[c+12>>2]=l,e[l+8>>2]=c}else{if(B=e[m+24>>2],(0|(E=e[m+12>>2]))==(0|m))if((o=e[(c=m+20|0)>>2])||(o=e[(c=m+16|0)>>2])){for(;l=c,E=o,(o=e[(c=o+20|0)>>2])||(c=E+16|0,o=e[E+16>>2]););e[l>>2]=0}else E=0;else o=e[m+8>>2],e[o+12>>2]=E,e[E+8>>2]=o;if(B){l=e[m+28>>2];s:{if(e[(o=228912+(l<<2)|0)>>2]==(0|m)){if(e[o>>2]=E,E)break s;e[57153]=e[57153]&ia(-2,l);break r}if(e[(e[B+16>>2]==(0|m)?16:20)+B>>2]=E,!E)break r}e[E+24>>2]=B,(o=e[m+16>>2])&&(e[E+16>>2]=o,e[o+24>>2]=E),(o=e[m+20>>2])&&(e[E+20>>2]=o,e[o+24>>2]=E)}}_>>>0<=15?(e[f+4>>2]=1&a|w|2,e[(o=f+w|0)+4>>2]=1|e[o+4>>2]):(e[f+4>>2]=1&a|r|2,e[(l=f+r|0)+4>>2]=3|_,e[(o=f+w|0)+4>>2]=1|e[o+4>>2],fs(l,_))}else{if((l=c+e[57154]|0)>>>0>>0)break e;(o=l-r|0)>>>0>=16?(e[f+4>>2]=1&a|r|2,e[(c=f+r|0)+4>>2]=1|o,e[(l=l+f|0)>>2]=o,e[l+4>>2]=-2&e[l+4>>2]):(e[f+4>>2]=l|1&a|2,e[(o=l+f|0)+4>>2]=1|e[o+4>>2],o=0,c=0),e[57157]=c,e[57154]=o}else{if((c=c+e[57155]|0)>>>0<=r>>>0)break e;e[f+4>>2]=1&a|r|2,o=c-r|0,e[(l=f+r|0)+4>>2]=1|o,e[57155]=o,e[57158]=l}o=f}else{if(r>>>0<256||c>>>0>=r+4>>>0&&(o=f,c-r>>>0<=e[57272]<<1>>>0))break e;o=0}return o?o+8|0:(f=gt(t))?(ct(f,A,t>>>0>(o=(3&(o=e[A-4>>2])?-4:-8)+(-8&o)|0)>>>0?o:t),HA(A),f):0}function Ia(){var A,t,r=0,a=0;return A=ha(12),e[A>>2]=22050,t=ha(432),e[(a=t)+4>>2]=0,e[a+8>>2]=0,e[a>>2]=132304,e[a+32>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,cA(a+40|0,0,376),e[a+420>>2]=0,e[a+424>>2]=-1,d[a+416|0]=1,r=cA(ha(408),0,408),e[a+28>>2]=r,d[r+8|0]=1,e[A+4>>2]=a,r=ha(1096),e[r+8>>2]=22050,e[r+4>>2]=22050,e[r>>2]=132352,e[r+64>>2]=22050,e[r+56>>2]=0,e[r+60>>2]=0,e[r+32>>2]=0,e[r+36>>2]=0,e[r+24>>2]=22050,e[r+16>>2]=0,e[r+20>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,d[r+48|0]=0,e[r+128>>2]=0,e[r+132>>2]=0,v[r+96>>1]=0,e[r+72>>2]=22050,e[r+136>>2]=0,e[r+140>>2]=0,v[r+168>>1]=0,e[r+144>>2]=22050,e[r+200>>2]=0,e[r+204>>2]=0,e[r+208>>2]=0,e[r+212>>2]=0,e[r+216>>2]=22050,v[r+240>>1]=0,e[r+280>>2]=0,e[r+284>>2]=0,e[r+272>>2]=0,e[r+276>>2]=0,e[r+288>>2]=22050,v[r+312>>1]=0,e[r+344>>2]=0,e[r+348>>2]=0,e[r+352>>2]=0,e[r+356>>2]=0,e[r+360>>2]=22050,v[r+384>>1]=0,e[r+416>>2]=0,e[r+420>>2]=0,e[r+424>>2]=0,e[r+428>>2]=0,e[r+432>>2]=22050,v[r+456>>1]=0,e[r+488>>2]=0,e[r+492>>2]=0,e[r+496>>2]=0,e[r+500>>2]=0,e[r+504>>2]=22050,v[r+528>>1]=1,e[r+560>>2]=0,e[r+564>>2]=0,e[r+568>>2]=0,e[r+572>>2]=0,v[r+600>>1]=0,e[r+576>>2]=22050,e[r+640>>2]=0,e[r+644>>2]=0,e[r+632>>2]=0,e[r+636>>2]=0,v[r+680>>1]=0,e[r+656>>2]=22050,e[r+648>>2]=22050,e[r+720>>2]=0,e[r+724>>2]=0,e[r+712>>2]=0,e[r+716>>2]=0,v[r+752>>1]=0,e[r+728>>2]=22050,e[r+792>>2]=0,e[r+796>>2]=0,e[r+784>>2]=0,e[r+788>>2]=0,v[r+824>>1]=0,e[r+800>>2]=22050,e[r+864>>2]=0,e[r+868>>2]=0,e[r+856>>2]=0,e[r+860>>2]=0,e[r+872>>2]=22050,v[r+896>>1]=0,e[r+936>>2]=0,e[r+940>>2]=0,e[r+928>>2]=0,e[r+932>>2]=0,v[r+968>>1]=0,e[r+944>>2]=22050,e[r+1008>>2]=0,e[r+1012>>2]=0,e[r+1e3>>2]=0,e[r+1004>>2]=0,v[r+1040>>1]=0,e[r+1016>>2]=22050,e[r+1088>>2]=0,e[(a=r+1080|0)>>2]=0,e[a+4>>2]=0,e[(a=r+1072|0)>>2]=0,e[a+4>>2]=0,e[A+8>>2]=r,rt[e[e[r>>2]+4>>2]](r,t),A}function wa(A,t,r){var a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0;e:if(B=e[50759]){if(a=e[50980],o=R(a,80)+222176|0,(0|(m=(0|(o=(0|(o=(e[o+12>>2]+e[o>>2]|0)/(0|A)|0))<(0|(w=((0|R(e[50754],19))/40<<16)/(0|A)|0))?o:w))>=399?399:o))>=0&&(cA(t,0,4+(m<<2)|0),a=e[50980]),(0|a)>=0)for(_=e[50801];;){if(l=R(c,80)+222176|0,e[l+4>>2]&&(f=e[l>>2])){if(W=f+e[l+12>>2]|0,a=1+((f-e[l+8>>2]|0)/(0|A)|0)|0,(0|f)>(0|(a=R(o=(0|a)<=1?1:a,A))))for(;e[(E=(o<<2)+t|0)>>2]=e[E>>2]+R(e[l+4>>2],u[((f-a|0)/(e[l+8>>2]>>8)|0)+_|0]),o=o+1|0,(0|f)>(0|(a=A+a|0)););if(!((0|a)>=(0|W)))for(;e[(E=(o<<2)+t|0)>>2]=e[E>>2]+R(e[l+4>>2],u[((a-f|0)/(e[l+12>>2]>>8)|0)+_|0]),o=o+1|0,(0|W)>(0|(a=A+a|0)););}if(!((0|(c=c+1|0))<=e[50980]))break}if(o=1,!((0|(l=65536e3/(0|A)|0))<=0||(0|(a=R(e[55565],10)))<=0))for(l=(0|a)/(0|l)|0;e[(f=(o<<2)+t|0)>>2]=e[f>>2]+a,o=o+1|0,(0|(a=a-l|0))>0;);if((0|c)<=8)for(;o=(a=c<<2)+203216|0,l=R(c,80)+222176|0,f=e[l+4>>2]>>14,e[o>>2]=(0|R(R(f,f),5))/2,r?a=e[a+203264>>2]:(f=a+203264|0,a=e[l>>2]/(0|A)|0,e[f>>2]=a),(0|a)>=(0|w)&&(e[o>>2]=0),(0|(c=c+1|0))!=9;);if(o=0,(0|m)>=0)for(a=0;l=e[(c=(a<<2)+t|0)>>2]>>15,l=R(l,l)>>8,e[c>>2]=l,(0|o)<=524287999&&(e[c>>2]=R(l,u[344+((o>>19)+B|0)|0])>>13),o=A+o|0,c=(0|a)!=(0|m),a=a+1|0,c;);if(e[t+4>>2]=(0|R(e[t+4>>2],u[203300]?6:10))/8,1&r)for(A=e[50826],a=1;;){if(e[(r=a<<2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,(0|(r=a+1|0))==30)break e;e[(r<<=2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,a=a+2|0}}else m=1;return m}function Es(A,t,r,a){var o,l=0,c=0;$=o=$-176|0,d[0|A]=0,v[o+80>>1]=24320,e[o+104>>2]=0,e[o+108>>2]=0,d[82+(kr(r,l=o+80|2)+o|0)|0]=0;e:{A:{if(!a){if(a=o+80|1,e[o+12>>2]=a,DA(t,o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,DA(t,o+12|0,o+16|0,o+104|0,0,0)||(d[o+81|0]=32,ft(t,l,o+16|0,60,0,0,0))),(r=u[o+16|0])&&(0|r)!=21)break A;r:{if(e[t+212>>2]!=25966){if(is(85719,188772,189296),d[o+81|0]=95,e[o+12>>2]=a,DA(e[47193],o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,DA(e[47193],o+12|0,o+16|0,o+104|0,0,0)),u[o+16|0])break r;na(e[e[32972]+60>>2]),r=u[o+16|0]}if(255&r)break A;t=u[87124]|u[87125]<<8|u[87126]<<16|u[87127]<<24,r=u[87120]|u[87121]<<8|u[87122]<<16|u[87123]<<24,d[0|A]=r,d[A+1|0]=r>>>8,d[A+2|0]=r>>>16,d[A+3|0]=r>>>24,d[A+4|0]=t,d[A+5|0]=t>>>8,d[A+6|0]=t>>>16,d[A+7|0]=t>>>24,d[A+16|0]=u[87136],t=u[87132]|u[87133]<<8|u[87134]<<16|u[87135]<<24,r=u[87128]|u[87129]<<8|u[87130]<<16|u[87131]<<24,d[A+8|0]=r,d[A+9|0]=r>>>8,d[A+10|0]=r>>>16,d[A+11|0]=r>>>24,d[A+12|0]=t,d[A+13|0]=t>>>8,d[A+14|0]=t>>>16,d[A+15|0]=t>>>24;break e}a=o+16|0,l=o+104|0,$=r=$-112|0,(c=e[47193])?(Ut(c,a,l,-1,0),da(l=a,a=r+48|0),t=e[t+212>>2],d[r+43|0]=t>>>24,d[0|(c=(l=r+43|0)+(t>>>0>16777215)|0)]=t>>>16,d[0|(c=c+!!(16711680&t)|0)]=t>>>8,d[0|(c=c+!!(65280&t)|0)]=t,d[c+!!(255&t)|0]=0,e[r+16>>2]=85719,e[r+24>>2]=l,e[r+20>>2]=a,IA(A,85662,r+16|0)):(Ut(t,a,l,-1,0),da(a,t=r+48|0),e[r>>2]=t,IA(A,85451,r)),$=r+112|0,na(e[e[32972]+60>>2]);break e}if(e[o+12>>2]=l,DA(t,o+12|0,o+16|0,o+104|0,0,0),!u[o+16|0])break e}Ut(r=t,t=o+16|0,o+104|0,-1,0),da(r=t,t=o+112|0),e[o>>2]=t,IA(A,85451,o)}return $=o+176|0,A}function sa(A,t){var r,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0;if($=r=$-112|0,e[r+72>>2]=-1,e[(a=r- -64|0)>>2]=-1,e[a+4>>2]=-1,e[r+56>>2]=-1,e[r+60>>2]=-1,e[r+48>>2]=-1,e[r+52>>2]=-1,e[r+40>>2]=-1,e[r+44>>2]=-1,e[r+32>>2]=-1,e[r+36>>2]=-1,e[r+24>>2]=-1,e[r+28>>2]=-1,e[r+16>>2]=-1,e[r+20>>2]=-1,(0|t)>0){for(l=e[r+72>>2],c=e[r+68>>2],f=e[r+64>>2],m=e[r+60>>2],E=e[r+56>>2],w=e[r+52>>2],B=e[r+48>>2],_=e[r+44>>2],W=e[r+40>>2],X=e[r+36>>2],q=e[r+32>>2],re=e[r+28>>2],ue=e[r+24>>2],J=e[r+20>>2],Me=e[r+16>>2];o=l,l=(0|(l=e[(a=134912+(Ge<<6)|0)+60>>2]))<0?o:l,o=c,c=(0|(c=e[a+56>>2]))<0?o:c,o=f,f=(0|(f=e[a+52>>2]))<0?o:f,o=m,m=(0|(m=e[a+48>>2]))<0?o:m,o=E,E=(0|(E=e[a+44>>2]))<0?o:E,o=w,w=(0|(w=e[a+40>>2]))<0?o:w,o=B,B=(0|(B=e[a+36>>2]))<0?o:B,o=_,_=(0|(_=e[a+32>>2]))<0?o:_,o=W,W=(0|(W=e[a+28>>2]))<0?o:W,o=X,X=(0|(X=e[a+24>>2]))<0?o:X,o=q,q=(0|(q=e[a+20>>2]))<0?o:q,o=re,re=(0|(re=e[a+16>>2]))<0?o:re,o=ue,ue=(0|(ue=e[a+12>>2]))<0?o:ue,o=J,J=(0|(J=e[a+8>>2]))<0?o:J,Me=(0|(a=e[a+4>>2]))<0?Me:a,(0|(Ge=Ge+1|0))!=(0|t););e[r+72>>2]=l,e[r+68>>2]=c,e[r+64>>2]=f,e[r+60>>2]=m,e[r+56>>2]=E,e[r+52>>2]=w,e[r+48>>2]=B,e[r+44>>2]=_,e[r+40>>2]=W,e[r+36>>2]=X,e[r+32>>2]=q,e[r+28>>2]=re,e[r+24>>2]=ue,e[r+20>>2]=J,e[r+16>>2]=Me}for(t=0;;){if((0|(a=e[(l=t<<2)+(r+16|0)>>2]))!=e[(l=l+134848|0)>>2]){d[r+80|0]=0;e:{A:switch(t-1|0){case 4:e[47201]=a-1;break e;case 5:e[47200]=a;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}e[r+4>>2]=a,e[r>>2]=1,e[r+8>>2]=d[t+102812|0],IA(r+80|0,91942,r)}e[l>>2]=a,a=r+80|0,_A(e[A>>2]+189424|0,a),e[A>>2]=e[A>>2]+TA(a)}if((0|(t=t+1|0))==15)break}$=r+112|0}function wA(A){var t,r,a,o=0,l=0,c=0,f=0;for(o=17,e[A+328>>2]=17,e[A+224>>2]=0,e[A+216>>2]=1105,e[A+220>>2]=1072,e[A+600>>2]=1056,e[A+8180>>2]=105296,c=cA(A+344|0,0,256),d[A+393|0]=1,d[A+365|0]=1,d[A+360|0]=1,d[A+545|0]=1,d[A+529|0]=1,d[A+391|0]=1,d[A+379|0]=1,d[A+374|0]=1,d[A+489|0]=1,d[A+487|0]=1,d[A+398|0]=1,d[A+387|0]=1,d[A+388|0]=2,d[A+389|0]=1,d[A+390|0]=1,d[A+385|0]=2,d[A+383|0]=2,d[A+368|0]=1,d[A+369|0]=2,l=104224;d[0|(o=o+c|0)]=4|u[0|o],o=c+u[l+1|0]|0,d[0|o]=4|u[0|o],o=c+u[l+2|0]|0,d[0|o]=4|u[0|o],o=u[0|(l=l+3|0)],(0|l)!=104251;);d[A+386|0]=8|u[A+386|0],d[A+382|0]=8|u[A+382|0],d[A+384|0]=8|u[A+384|0],d[A+369|0]=16|u[A+369|0],d[A+370|0]=16|u[A+370|0],d[A+371|0]=16|u[A+371|0],l=u[A+361|0],c=u[A+362|0],o=u[A+363|0],f=u[A+364|0],t=u[A+366|0],r=u[A+367|0],d[A+372|0]=16|u[A+372|0],d[A+373|0]=16|u[A+373|0],d[A+375|0]=16|u[A+375|0],d[A+376|0]=16|u[A+376|0],d[A+377|0]=16|u[A+377|0],d[A+378|0]=16|u[A+378|0],d[A+380|0]=16|u[A+380|0],d[A+381|0]=16|u[A+381|0],d[A+383|0]=16|u[A+383|0],d[A+385|0]=16|u[A+385|0],a=u[A+388|0],d[A+367|0]=48|r,d[A+366|0]=40|t,d[A+364|0]=48|f,d[A+363|0]=48|o,d[A+362|0]=48|c,d[A+361|0]=48|l,d[A+388|0]=80|a,l=u[A+390|0],c=u[A+391|0],o=u[A+393|0],d[A+360|0]=128|u[A+360|0],f=u[A+365|0],d[A+393|0]=192|o,d[A+365|0]=128|f,d[A+368|0]=128|u[A+368|0],d[A+374|0]=128|u[A+374|0],d[A+379|0]=128|u[A+379|0],d[A+387|0]=128|u[A+387|0],o=u[A+389|0],d[A+391|0]=192|c,d[A+390|0]=192|l,d[A+389|0]=128|o,d[A+529|0]=128|u[A+529|0],d[A+545|0]=128|u[A+545|0],d[A+489|0]=128|u[A+489|0],d[A+487|0]=128|u[A+487|0],d[A+398|0]=128|u[A+398|0]}function DA(A,t,r,a,o,l){var c,f=0,m=0,E=0,w=0,B=0,_=0;$=c=$-192|0,f=B=e[t>>2];e:{A:{for(;m=1,(0|(E=d[0|f]))>=0||(m=2,E>>>0<4294967264||(m=E>>>0<4294967280?3:4)),!(u[0|(E=m+f|0)]!=32|u[E+1|0]!=46);){if(w-160>>>0<4294967135)break A;ct((_=c+32|0)+w|0,f,m),d[(m=m+w|0)+_|0]=46,f=E+3|0,w=m+1|0}if(w){for(m=0;E=m,m=m+1|0,223&u[f+E|0];);if(!((_=E+w|0)+1>>>0>160)&&(ct((m=c+32|0)+w|0,f,E),d[m+_|0]=0,JA(A,m,f,r,a,o,l))){e[a>>2]=128|e[a>>2],e[33264]=w,A=1;break e}}}for(f=0;;){if(B=(m=B)+1|0,223&(m=u[0|m]))if(!f|(0|m)!=46|d[31+(f+c|0)|0]-48>>>0>=10){if(d[(c+32|0)+f|0]=m,m=159,(0|(f=f+1|0))!=159)continue}else m=f;else m=f;break}d[(f=c+32|0)+m|0]=0,f=JA(A,f,B,r,a,o,l);A:if(8&u[a+3|0]){if(!gr(r,E=A+268|0)){if(E=e[A+288>>2]+1|0,e[A+288>>2]=E,(0|E)<4)break A;d[0|r]=0;break A}Wt(E,r,20),e[A+288>>2]=1}else e[A+288>>2]=0;A:{if(!f){if(f=0,8&u[a+5|0]&&(E=UA(c+28|0,f=c+32|u[c+32|0]==95),vs(A,e[c+28>>2],r),f=f+E|0),!(m>>>0<2|f)){if(d[0|r]=0,!(16&o&&u[0|(f=31+(m+c|0)|0)]==101)&&(!(4096&o)||u[0|(f=(m=(c+32|0)+m|0)-1|0)]!=u[m-2|0]))break A;d[0|f]=0,f=JA(A,c+32|0,B,r,a,o,l)}if(!f)break A}if(w=e[a>>2],u[A+172|0]&&(w^=536870912,e[a>>2]=w),A=1,!(536870912&w))break e;2&o&&(v[66448]=8192,e[c+16>>2]=r,IA(132898,87470,c+16|0),A=e[t>>2],e[t>>2]=132898,8&u[188788]&&(ct(t=c+32|0,a=A,A=f-A|0),d[A+t|0]=0,e[c+4>>2]=132898,A=e[47195],e[c>>2]=t,Ar(A,87652,c)))}d[0|r]=0,A=0}return $=c+192|0,A}function qA(A,t){var r=0,a=0,o=0;r=31&A;e:{A:{r:{if((0|(A&=96))==96)A=-1;else{if((0|A)!=64)break r;A=1}if(r>>>0>=15)break e;t=e[203136+(r<<2)>>2]+R(A,t)|0;break A}if(r>>>0>=15)break e}A=e[(a=r<<2)+105616>>2],e[a+203136>>2]=(0|t)>=0?(0|A)>(0|t)?t:A:0}e:{A:{r:{s:{i:switch(r-1|0){case 5:if(!(A=e[50759]))break A;e[54728]=e[50982],t=e[50979],r=e[50978],cA(205184,0,11e3),e[51293]=0,t=(r=(o=(0|(a=e[50789]))>0)?130:(0|r)>=5499?5499:r)?o?a:(0|t)>=100?100:t:0,e[50755]=t,r=(0|R(r,e[50754]))/1e3|0,e[51292]=r,e[54729]=(0|t)>20?r<<1:t?r:0,e[33037]=(0|R(500-t|0,(0|R(u[e[50797]+105596|0],(0|R(e[50787],55))/100|0))/16|0))/500;break s;case 0:break i;case 2:case 12:break e;case 4:break r;default:break A}if(!(A=e[50759]))break A}return t=256,(0|(r=(0|(r=e[50785]))>=101?101:r))>=51&&(t=256+(((R(r,25)-1250&65535)>>>0)/50|0)|0),v[A+164>>1]=(0|R(v[A+236>>1],t))/256,v[A+166>>1]=(0|R(v[A+238>>1],t))/256,v[A+168>>1]=(0|R(v[A+240>>1],t))/256,v[A+170>>1]=(0|R(v[A+242>>1],t))/256,v[A+172>>1]=(0|R(v[A+244>>1],t))/256,v[A+174>>1]=(0|R(v[A+246>>1],t))/256,A=e[50790],v[102e3]=(0|R(v[102036],R(A,-3)+256|0))/256,void(v[101999]=(0|R(v[102035],R(A,-6)+256|0))/256)}e[50759]&&(e[54728]=e[50982],A=e[50979],t=e[50978],cA(205184,0,11e3),e[51293]=0,A=(t=(a=(0|(r=e[50789]))>0)?130:(0|t)>=5499?5499:t)?a?r:(0|A)>=100?100:A:0,e[50755]=A,t=(0|R(t,e[50754]))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|R(500-A|0,(0|R(u[e[50797]+105596|0],(0|R(e[50787],55))/100|0))/16|0))/500)}return}e[33037]=(0|R(u[e[50797]+105596|0],(0|R(e[50787],55))/100|0))/16}function lr(A,t,r){var a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0;r&&(e[r>>2]=0);e:{A:if(!((0|(a=d[0|A]))<0)){for(;;){if((0|(l=255&a))==32|l-9>>>0<5){if((0|(a=d[0|(A=A+1|0)]))>=0)continue;break A}break}if(!(255&a))break e}for(;;){if((0|(a=m=255&a))==32|a-9>>>0<5)break e;if((0|m)!=124||(0|(a=u[0|(l=A+1|0)]))==124){A:{if((0|(B=e[36115]))>=2){for(a=1,l=-1,E=0;;){r:if(!(!(w=e[144464+(a<<2)>>2])|u[w+11|0]==15)){f=e[w>>2];s:{i:{if(m>>>0>=33){if(_=0,c=0,(255&f)==(0|m)&&(c=1,(o=u[A+1|0])>>>0<33|(0|o)!=(f>>>8&255)||(c=2,(o=u[A+2|0])>>>0<33|(0|o)!=(f>>>16&255)||(c=(o=(o=u[A+3|0])>>>0>32&(0|o)==(f>>>24|0))?4:3,_=0-o|0))),(0|l)>=(0|c))break r;if(o=4,!(1&_))break i;break s}if(c=0,(0|l)>=0)break r}if(f>>>((o=c)<<3)&255)break r}E=u[w+10|0],l=o}if((0|B)==(0|(a=a+1|0)))break}if(E)break A}return r&&UA(r,A),void(d[0|t]=0)}d[0|t]=E,A=((0|l)<=1?1:l)+A|0,t=l=t+1|0;A:if((0|E)==21){r:if((0|(o=u[0|A]))==32|o-9>>>0<5)a=l;else if(a=l,o)for(;;){if(d[0|a]=Kr(o),a=a+1|0,(0|(o=u[0|(A=A+1|0)]))==32|o-9>>>0<5)break r;if(!o)break}if(d[0|a]=0,!o){if(t=a,gr(l,85593))break A;return void(d[0|l]=0)}d[0|a]=124,t=a+1|0}a=u[0|A]}else A=l;if(!(255&a))break}}d[0|t]=0}function Ka(A,t){var r=0,a=0,o=0,l=0,c=0;e:{A:{r:{s:{i:switch((0|(r=e[A+4>>2]))==e[A+104>>2]?r=Fe(A):(e[A+4>>2]=r+1,r=u[0|r]),r-43|0){case 0:case 2:break i;default:break s}if(l=(0|r)==45,c=!t,(0|(r=e[A+4>>2]))==e[A+104>>2]?r=Fe(A):(e[A+4>>2]=r+1,r=u[0|r]),c|(t=r-58|0)>>>0>4294967285)break r;if(e[A+116>>2]<0)break A;e[A+4>>2]=e[A+4>>2]-1;break A}t=r-58|0}if(!(t>>>0<4294967286)){if((t=r-48|0)>>>0<10){for(;o=(0|(a=(a=R(a,10)+r|0)-48|0))<214748364,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Fe(A):(e[A+4>>2]=t+1,r=u[0|t]),o&(t=r-48|0)>>>0<=9;);o=a>>31}r:if(!(t>>>0>=10))for(;;){if(t=(a=YA(a,o,10,0))+r|0,r=xe,r=t>>>0>>0?r+1|0:r,a=t-48|0,o=r-(t>>>0<48)|0,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Fe(A):(e[A+4>>2]=t+1,r=u[0|t]),(t=r-48|0)>>>0>9)break r;if(!(a>>>0<2061584302&(0|o)<=21474836|(0|o)<21474836))break}if(t>>>0<10)for(;(0|(t=e[A+4>>2]))==e[A+104>>2]?t=Fe(A):(e[A+4>>2]=t+1,t=u[0|t]),t-48>>>0<10;);(0|(t=e[A+116>>2]))>0|(0|t)>=0&&(e[A+4>>2]=e[A+4>>2]-1),A=a,a=l?0-A|0:A,o=l?0-(!!(0|A)+o|0)|0:o;break e}}if(o=-2147483648,!(e[A+116>>2]<0))return e[A+4>>2]=e[A+4>>2]-1,xe=-2147483648,0}return xe=o,a}function Xa(A){var t=0,r=0,a=0,o=0;if(e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,t=e[203136+((0|A)==2?32:8)>>2],a=e[32972],(0|(r=e[a+84>>2]))>0&&(t=(0|R(t,r))/100|0),r=(0|t)>=359?359:t,r=(0|(t=(0|t)>=450?450:t))>399?6:(0|t)>379?7:u[((0|r)<=80?80:r)+101856|0],1&A&&(e[32526]=(0|R(r,e[a+72>>2]))/256,e[32527]=(0|R(r,e[a+76>>2]))/256,e[32528]=(0|R(r,e[a+80>>2]))/256,r>>>0>7||(o=r-1|0,e[32528]=o,e[32526]=r,e[32527]=o)),2&A){A=e[a+72>>2];e:{A:{r:{s:{i:{o:{c:{u:{if((0|t)>=351)a=t-350|0,e[36432]=85-(((255&a)>>>0)/3|0)&255,a=60-(a>>>3|0)|0;else{if((0|t)<251)break u;a=t-250|0,e[36432]=110-(a>>>2|0),a=110-(a>>>1|0)|0}if(e[36433]=a,A=(0|R(A,r))/256|0,e[36431]=110+((0|R(A,150))/128|0),t>>>0<=349)break c;if(r=t-350|0,e[36431]=u[r+102224|0],t>>>0<390)break i;if(e[36434]=450+((t+112<<24>>24)/-2<<24>>24),t>>>0<441)break o;e[36434]=860-t,A=12;break A}A=(0|R(A,r))/256|0,e[36431]=(0|t)>=170?110+((0|R(A,150))/128|0)|0:128+((A<<7)/130|0)|0}A=(A<<8)/115|0;break A}if(A=12,t>>>0>430)break A;if(A=13,t>>>0<=400)break s;break A}if(A=(A<<8)/115|0,e[36428]=A,t>>>0<375)break r}A=14;break A}if((0|t)<351)break e;A=u[r+102336|0]}e[36428]=A}e[36429]=(0|A)<=16?16:A}}function Ta(A,t,r){var a,o,l,c;a=.000244140625*+e[50767],O[r>>3]=a,O[r+40>>3]=.015625*+e[A+112>>2],O[r+48>>3]=.015625*+e[A+276>>2],O[r+56>>3]=.00390625*+(0|R(v[A+166>>1],v[t+4>>1]))+ +v[A+220>>1],O[r+64>>3]=.00390625*+(0|R(v[A+168>>1],v[t+6>>1]))+ +v[A+222>>1],O[r+72>>3]=.00390625*+(0|R(v[A+170>>1],v[t+8>>1]))+ +v[A+224>>1],O[r+80>>3]=.00390625*+(0|R(v[A+172>>1],v[t+10>>1]))+ +v[A+226>>1],O[r+88>>3]=.00390625*+(0|R(v[A+174>>1],v[t+12>>1]))+ +v[A+228>>1],o=v[A+230>>1],l=v[A+176>>1],c=v[t+14>>1],e[r+112>>2]=0,e[r+116>>2]=1080623104,e[r+104>>2]=0,e[r+108>>2]=1081032704,O[r+96>>3]=.00390625*+(0|R(l,c))+ +(0|o),u[t+40|0]?(e[r+184>>2]=0,e[r+188>>2]=1072693248,O[r+104>>3]=u[t+40|0]<<1):(e[r+184>>2]=0,e[r+188>>2]=0),O[r+120>>3]=.00390625*+v[A+202>>1]*+(u[t+35|0]<<1),O[r+128>>3]=.00390625*+v[A+204>>1]*+(u[t+36|0]<<1),O[r+136>>3]=.00390625*+v[A+206>>1]*+(u[t+37|0]<<1),t=u[t+38|0],A=v[A+208>>1],e[r+176>>2]=0,e[r+180>>2]=1079574528,e[r+160>>2]=0,e[r+164>>2]=1083129856,e[r+152>>2]=0,e[r+156>>2]=1083129856,e[r+352>>2]=0,e[r+356>>2]=1072693248,e[r+168>>2]=0,e[r+172>>2]=1079574528,O[r+144>>3]=.00390625*+(0|A)*+(t<<1),A=e[50779],O[r+368>>3]=a,O[r+360>>3]=+(0|A)/100*3}function Za(A){var t=0;pA(A,wr(A));e:{A:{r:{s:{i:{o:{c:{u:{l:{n:{if((0|(A=-1048576&xe))<268435455|(0|A)<=268435455){p:{C:{if((0|A)<33554431|(0|A)<=33554431){if((0|A)<8388607|(0|A)<=8388607){if(t=524328,!0&(0|A)==-2147483648)break e;if(0|(0|A)!=-2143289344)break A;return 557096}if(!0&(0|A)==8388608)break C;if(0|(0|A)!=16777216)break A;return 524358}if((0|A)>71303167)break p;if(!0&(0|A)==33554432)break r;if(0|(0|A)!=67108864)break A}return 266270}if(!0&(0|A)==71303168)break n;if(!0&(0|A)==134217728)break s;if(0|(0|A)!=138412032)break A;return 294942}if((0|A)<542113791|(0|A)<=542113791){if((0|A)<536870911|(0|A)<=536870911){if(!0&(0|A)==268435456)break i;if(0|(0|A)!=272629760)break A;return 299028}if(!0&(0|A)==536870912)break c;if(!0&(0|A)==538968064)break o;if(0|(0|A)!=541065216)break A;return 569389}if((0|A)<1075838975|(0|A)<=1075838975){if(!0&(0|A)==542113792)break n;if(0|(0|A)!=1073741824)break A;return 532520}if(!0&(0|A)==1075838976)break u;if(!0&(0|A)==1077936128)break l;if(0|(0|A)!=1078984704)break A}return 299038}return 565288}return 1581096}return 536621}return 1585197}return 266260}return 262174}return 2396190}t=16384}return t}function Ja(A,t,r,a,o,l){var c,f,m=0,E=0,w=0,B=0;if(f=8388607&A,E=e[34456],m=u[0|(A=f+E|0)]|u[A+1|0]<<8){c=!(w=u[A+2|0]),A=e[36434]<0?(0|R(r,o))/256|0:r,r=(0|R(o,e[36431]))/256|0,r=(0|A)<(0|(r=(4&a)>>>2|0&&(0|r)>(0|o)?o:r))?r:A,w||(m=m>>>1|0,r=(0|r)/2|0);e:if(!((0|l)<0)){if(a=f+4|0,256&t)A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=7,e[t+8>>2]=a+E,e[t+4>>2]=m<<16|r,l=w|l<<8;else{if(A=e[50758],e[36439]=A,e[(A=216192+(A<<4)|0)>>2]=6,l=w|l<<8,e[A+12>>2]=l,e[A+8>>2]=a+E,E=A,A=R(t=m>>>2|0,3),o=(0|r)>(0|m),e[E+4>>2]=o?A:r,E=e[50758]+1|0,e[50758]=(0|E)<=169?E:0,(0|A)<(0|(r=o?r-A|0:0)))for(o=t<<1,w=a+(w?t:o)|0;t=e[50758],e[36439]=t,e[(t=216192+(t<<4)|0)>>2]=6,e[t+4>>2]=o,e[t+12>>2]=l,e[t+8>>2]=w+e[34456],t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0,(0|A)<(0|(r=r-o|0)););if((0|r)<=0)break e;A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=6,e[t+4>>2]=r,e[t+8>>2]=e[34456]+(a+(m-r<>2]=l,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}}}function ct(A,t,r){var a,o=0,l=0;if(r>>>0>=512)return Ve(0|A,0|t,0|r),A;a=A+r|0;e:if(3&(A^t))if(a>>>0<4)r=A;else if((o=a-4|0)>>>0>>0)r=A;else for(r=A;d[0|r]=u[0|t],d[r+1|0]=u[t+1|0],d[r+2|0]=u[t+2|0],d[r+3|0]=u[t+3|0],t=t+4|0,o>>>0>=(r=r+4|0)>>>0;);else{A:if(3&A)if(r)for(r=A;;){if(d[0|r]=u[0|t],t=t+1|0,!(3&(r=r+1|0)))break A;if(!(r>>>0>>0))break}else r=A;else r=A;if(!((o=-4&a)>>>0<64||(l=o+-64|0)>>>0>>0))for(;e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],e[r+12>>2]=e[t+12>>2],e[r+16>>2]=e[t+16>>2],e[r+20>>2]=e[t+20>>2],e[r+24>>2]=e[t+24>>2],e[r+28>>2]=e[t+28>>2],e[r+32>>2]=e[t+32>>2],e[r+36>>2]=e[t+36>>2],e[r+40>>2]=e[t+40>>2],e[r+44>>2]=e[t+44>>2],e[r+48>>2]=e[t+48>>2],e[r+52>>2]=e[t+52>>2],e[r+56>>2]=e[t+56>>2],e[r+60>>2]=e[t+60>>2],t=t- -64|0,l>>>0>=(r=r- -64|0)>>>0;);if(r>>>0>=o>>>0)break e;for(;e[r>>2]=e[t>>2],t=t+4|0,o>>>0>(r=r+4|0)>>>0;);}if(r>>>0>>0)for(;d[0|r]=u[0|t],t=t+1|0,(0|a)!=(0|(r=r+1|0)););return A}function mr(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0;L(+A),t=0|T(1),T(0);e:{if((a=(t=t>>>20&2047)-969|0)>>>0<63)m=t;else{if((0|a)<0)return A+1;if(!(t>>>0<1033)){if(L(+A),a=0|T(1),r=0,!(0|T(0))&(0|a)==-1048576)break e;return t>>>0>=2047?A+1:(0|a)<0?(O[(t=$-16|0)+8>>3]=12882297539194267e-247,12882297539194267e-247*O[t+8>>3]):(O[(t=$-16|0)+8>>3]=3105036184601418e216,3105036184601418e216*O[t+8>>3])}}if(r=O[14409],l=(r=(A=(r=(o=O[14408]*A+r)-r)*O[14411]+(r*O[14410]+A))*A)*r*(A*O[14415]+O[14414]),r*=A*O[14413]+O[14412],L(+o),T(1),f=0|T(0),A=l+(r+(O[(a=f<<4&2032)+115376>>3]+A)),c=e[(a=a+115384|0)>>2],t=(f<<13)+(t=e[a+4>>2])|0,t=(a=(a=c)+(c=0)|0)>>>0>>0?t+1|0:t,!m)return-2147483648&f?(P(0,0|a),P(1,t+1071644672|0),(A=(o=(r=+j())*A)+r)<1&&(e[(t=$-16|0)+8>>2]=0,e[t+12>>2]=1048576,O[t+8>>3]=22250738585072014e-324*O[t+8>>3],A=(A=(l=A+1)+(o+(r-A)+(A+(1-l)))+-1)==0?0:A),A*=22250738585072014e-324):(P(0,0|a),P(1,t-1058013184|0),A=5486124068793689e288*((r=+j())*A+r)),A;P(0,0|a),P(1,0|t),r=(r=+j())*A+r}return r}function ka(A,t){var r,a=0,o=0,l=0,c=0;$=r=$-16|0;e:{if(Ra(84270,d[0|t])){if(o=2,Ra(t,43)||(o=u[0|t]!=114),o=Ra(t,120)?128|o:o,l=o=Ra(t,101)?524288|o:o,c=64|o,l=(0|(o=u[0|t]))==114?l:c,l=(0|o)==119?512|l:l,e[r>>2]=438,e[r+4>>2]=0,(A=0|be(-100,0|A,32768|((0|o)==97?1024|l:l),0|r))>>>0>=4294963201&&(e[56798]=0-A,A=-1),(0|A)<0)break e;$=o=$-32|0;A:{r:{if(Ra(84270,d[0|t])){if(a=gt(1176))break r}else e[56798]=28;t=0;break A}cA(a,0,144),Ra(t,43)||(e[a>>2]=u[0|t]==114?8:4),u[0|t]==97?(1024&(t=0|Xe(0|A,3,0))||(t|=1024,e[o+16>>2]=t,e[o+20>>2]=t>>31,Xe(0|A,4,o+16|0)),t=128|e[a>>2],e[a>>2]=t):t=e[a>>2],e[a+80>>2]=-1,e[a+48>>2]=1024,e[a+60>>2]=A,e[a+44>>2]=a+152,8&t||(e[o>>2]=o+24,e[o+4>>2]=0,0|Oe(0|A,21523,0|o)||(e[a+80>>2]=10)),e[a+40>>2]=10,e[a+36>>2]=11,e[a+32>>2]=12,e[a+12>>2]=13,u[227205]||(e[a+76>>2]=-1),e[a+56>>2]=e[56816],(t=e[56816])&&(e[t+52>>2]=a),e[56816]=a,t=a}if($=o+32|0,a=t)break e;Se(0|A)}else e[56798]=28;a=0}return $=r+16|0,a}function ya(A,t,r){var a,o=0,l=0,c=0,f=0,m=0;if(c=A,$=a=$-208|0,e[a+8>>2]=1,e[a+12>>2]=0,f=t<<2){for(e[a+16>>2]=4,e[a+20>>2]=4,t=4,o=4,l=2;A=t,t=(o+4|0)+t|0,e[(a+16|0)+(l<<2)>>2]=t,l=l+1|0,o=A,t>>>0>>0;);if((A=(c+f|0)-4|0)>>>0<=c>>>0)l=0,t=1,A=0;else{for(l=1,t=1;3&~l?(oe[(a+16|0)+((o=t-1|0)<<2)>>2]>=A-c>>>0?_r(c,r,a+8|0,t,0,a+16|0):yi(c,r,t,a+16|0),(0|t)!=1?(Fi(a+8|0,o),t=1):(Fi(a+8|0,1),t=0)):(yi(c,r,t,a+16|0),Oi(a+8|0,2),t=t+2|0),l=1|(o=e[a+8>>2]),e[a+8>>2]=l,A>>>0>(c=c+4|0)>>>0;);l=o>>>0>1,A=e[a+12>>2]!=0}if(_r(c,r,a+8|0,t,0,a+16|0),l|(0|t)!=1|A)for(;(0|t)<=1?(Oi(o=a+8|0,A=mo(o)),l=e[a+8>>2],A=A+t|0):(Fi(o=a+8|0,2),e[a+8>>2]=7^e[a+8>>2],Oi(o,1),_r((m=c-4|0)-e[(f=a+16|0)+((A=t-2|0)<<2)>>2]|0,r,o,t-1|0,1,f),Fi(o,1),l=1|e[a+8>>2],e[a+8>>2]=l,_r(m,r,o,A,1,f)),t=A,c=c-4|0,e[a+12>>2]|(0|t)!=1|(0|l)!=1;);}$=a+208|0}function Ms(A,t,r,a){var o,l=0,c=0,f=0;$=o=$-32|0,f=l=2147483647&a,c=l-1006698496|0;e:if(0|(l=l-1140785152|0)>>>0>c>>>0){if(l=r<<4|t>>>28,r=a<<4|r>>>28,(0|(t&=268435455))==134217728&!!(0|A)|t>>>0>134217728){c=r+1073741824|0,c=(l=l+1|0)?c:c+1|0;break e}if(c=r+1073741824|0,A|(0|t)!=134217728)break e;c=(A=1&l)>>>0>(l=A+l|0)>>>0?c+1|0:c}else(!r&(0|f)==2147418112?!(A|t):f>>>0<2147418112)?(l=0,c=2146435072,f>>>0>1140785151||(c=0,(f=f>>>16|0)>>>0<15249||(jt(o+16|0,A,t,r,l=65535&a|65536,f-15233|0),Hr(o,A,t,r,l,15361-f|0),l=(t=e[o+8>>2])<<4,t=e[o+12>>2]<<4|t>>>28,r=e[o>>2],f=c=e[o+4>>2],l|=c>>>28,c=t,(0|(A=268435455&f))==134217728&!!(0|(t=r|!!(e[o+16>>2]|e[o+24>>2]|e[o+20>>2]|e[o+28>>2])))|A>>>0>134217728?c=(l=l+1|0)?c:c+1|0:t|(0|A)!=134217728||(c=(A=l)>>>0>(l=l+(1&l)|0)>>>0?c+1|0:c)))):(l=r<<4|t>>>28,c=524287&(A=a<<4|r>>>28)|2146959360);return $=o+32|0,P(0,0|l),P(1,-2147483648&a|c),+j()}function Ss(A){var t,r=0,a=0,o=0,l=0,c=0;if(L(+A),c=0|T(1),o=0|T(0),(0|(l=c>>>20&2047))==2047)return(A*=1)/A;if(!(a=o<<1)&(0|(r=c<<1|o>>>31))==2145386496|r>>>0<2145386496)return!a&(0|r)==2145386496?0*A:A;if(l)r=1048575&c|1048576;else{if(l=0,a=o<<12,(0|(r=c<<12|o>>>20))>0|(0|r)>=0)for(;l=l-1|0,r=r<<1|a>>>31,a<<=1,(0|r)>0|(0|r)>=0;);a=31&(r=1-l|0),(63&r)>>>0>=32?(r=o<>>32-a|c<1023){for(;;){if(!((0|(o=r+-1048576|0))<0||(r=o)|a))return 0*A;if(r=r<<1|a>>>31,a<<=1,!((0|(l=l-1|0))>1023))break}l=1023}if(!((0|(o=r+-1048576|0))<0||(r=o)|a))return 0*A;if((0|r)==1048575|r>>>0<1048575)for(;l=l-1|0,o=r>>>0<524288,r=r<<1|a>>>31,a<<=1,o;);return t=-2147483648&c,(0|l)>0?r=r+-1048576|l<<20:(o=1-l|0,c=r,l=a,a=31&o,(63&o)>>>0>=32?(r=0,a=c>>>a|0):(r=c>>>a|0,a=((1<>>a)),P(0,0|a),P(1,r|t),+j()}function $r(A,t,r,a,o){var l,c=0,f=0;$=l=$-160|0;e:{A:{r:{s:switch((c=u[t+10|0])-15|0){case 6:break r;case 0:break s;default:break A}d[0|A]=0;break e}e[l>>2]=R(u[r+7|0],44)+137856,IA(A,86002,l),A=TA(A)+A|0;break e}if(a){if(d[l+140|0]=0,r?XA(0,0,r,l+8|0,0):qs(c,l+8|0),r=l+140|0,c=u[l+140|0]){if((0|c)==32){d[0|A]=0;break e}224&(c=c<<24>>24)||(o&&(e[o>>2]=c),r=l+141|0)}if(!((0|(o=TA(r)))<=0)){A=_A(A,r)+o|0,d[0|A]=0;break e}}o=0;A:if(!(!(r=255&(c=e[t>>2]))|(0|r)==47)){if(a){if((0|(f=255&c))==95)break A;r:{s:{if((0|f)==35){if(f=3,u[t+11|0]!=2)break s;break A}if((f=r-32|0)>>>0>95)break r}r=Q[93952+(f<<1)>>1]}o=kr(r,A)}else d[0|A]=c,o=1;for(;;){if(!(r=255&(c>>=8))|(0|r)==47)break A;if(a){if((0|r)==35&u[t+11|0]==2)break A;if(r-48>>>0<10)continue;(f=r-32|0)>>>0<=95&&(r=Q[93952+(f<<1)>>1]),o=kr(r,A+o|0)+o|0}else d[A+o|0]=c,o=o+1|0}}d[0|(A=A+o|0)]=0}return $=l+160|0,A}function gs(A){var t,r=0;t=A,r=131280;e:{A:{if(!((0|A)<=1023||(r=131300,A>>>0<1328||(r=131320,A>>>0<1424||(r=131340,A>>>0<1536||(r=131360,A>>>0<1792||(r=131380,A>>>0<1872||(r=131400,A>>>0<2432||(r=131420,A>>>0<2560||(r=131440,A>>>0<2688||(r=131460,A>>>0<2816||(r=131480,A>>>0<2944||(r=131500,A>>>0<3072||(r=131520,A>>>0<3200||(r=131540,A>>>0<3328||(r=131560,A>>>0<3456||(r=131580,A>>>0<3584||(r=131600,A>>>0<3712||(r=131620,A>>>0<3840||(r=131640,A>>>0<4096||(r=131660,A>>>0<4256||(r=131680,A>>>0<4352||(r=131700,A>>>0<4608||(r=131720,A>>>0<5024||(r=131740,A>>>0<10496||(r=131760,A>>>0<12544||(r=131780,A>>>0<40960))))))))))))))))))))))))))){if(A>>>0>=55296)break A;r=131800}if((0|t)>=Q[(A=r)+8>>1])break e}A=0}return A}function vs(A,t,r){var a,o=0,l=0,c=0,f=0;$=a=$-208|0,d[a+80|0]=0;e:{if((o=t-224|0)>>>0<=158)t=101072+(o<<1)|0;else{if((t=t-592|0)>>>0>88)break e;t=101392+(t<<1)|0}if(t=Q[t>>1]){if(c=t<<16>>16,f=(o=63&t)>>>0>37?o+59|0:v[101584+(o<<1)>>1],o=t>>>6|0,(0|c)<0)o=59+(63&o)|0,t=t>>>12&7;else{if(!(l=31&o))break e;o=0,t=t>>>11&15}(l=NA(A,e[129920+(l<<3)>>2],a+112|0))&&Gn(A,f,a+176|0)&&(t&&4096&NA(A,e[129920+(t<<3)>>2],a+80|0)&&(r=TA(t=_A(r,a+80|0)),d[a+80|0]=0,r=t+r|0),o?(Gn(t=A,o,A=a+144|0),e[a+68>>2]=a+80,e[a- -64>>2]=A,e[a+60>>2]=6,e[a+52>>2]=23,e[a+56>>2]=a+176,e[a+48>>2]=a+112,IA(r,84101,a+48|0)):(0|c)<0?_A(r,a+176|0):1&e[A+144>>2]|4096&l?(e[a+36>>2]=23,e[a+40>>2]=6,e[a+44>>2]=a+176,e[a+32>>2]=a+112,IA(r,84430,a+32|0)):(e[a+16>>2]=23,e[a+8>>2]=23,e[a>>2]=4,e[a+12>>2]=a+112,e[a+4>>2]=a+176,IA(r,84802,a)))}}$=a+208|0}function Na(){Sn(),e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56244]=0,e[56245]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0}function Mi(A,t){var r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;e:{if((0|(l=e[A+4>>2]))==e[A>>2])if((c=e[A+8>>2])>>>0<(r=e[A+12>>2])>>>0)r=(o=(1+(r-c>>2)|0)/2<<2)+c|0,(0|l)!=(0|c)&&(Ke(r=r-(a=c-l|0)|0,l,a),l=e[A+8>>2]),e[A+4>>2]=r,e[A+8>>2]=o+l;else{if((a=(0|r)==(0|l)?1:r-l>>1)>>>0>=1073741824)break e;if(w=(m=ha(r=a<<2))+r|0,f=r=(a+3&-4)+m|0,(0|l)!=(0|c)){if(B=-4&(c=c-l|0),o=r,a=l,c=1+((E=c-4|0)>>>2|0)&7)for(f=0;e[o>>2]=e[a>>2],a=a+4|0,o=o+4|0,(0|c)!=(0|(f=f+1|0)););if(f=r+B|0,!(E>>>0<28))for(;e[o>>2]=e[a>>2],e[o+4>>2]=e[a+4>>2],e[o+8>>2]=e[a+8>>2],e[o+12>>2]=e[a+12>>2],e[o+16>>2]=e[a+16>>2],e[o+20>>2]=e[a+20>>2],e[o+24>>2]=e[a+24>>2],e[o+28>>2]=e[a+28>>2],a=a+32|0,(0|f)!=(0|(o=o+32|0)););}e[A+12>>2]=w,e[A+8>>2]=f,e[A+4>>2]=r,e[A>>2]=m,l&&(HA(l),r=e[A+4>>2])}else r=l;return e[r-4>>2]=e[t>>2],void(e[A+4>>2]=e[A+4>>2]-4)}Nn(),K()}function Fs(A,t,r){var a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;e:{A:{r:{s:{i:{o:{c:{u:{l:{if(t){if(!r)break l;break u}return mA=(t=A)-R(A=(A>>>0)/(r>>>0)|0,r)|0,EA=0,xe=0,A}if(!A)break c;break o}if(!((a=r-1|0)&r))break i;l=0-(c=(Te(r)+33|0)-Te(t)|0)|0;break r}return mA=0,EA=t-R(A=(t>>>0)/0|0,0)|0,xe=0,A}if((a=32-Te(t)|0)>>>0<31)break s;break A}if(mA=A&a,EA=0,(0|r)==1)break e;return r=31&(a=en(r)),(63&a)>>>0>=32?A=t>>>r|0:(o=t>>>r|0,A=((1<>>r),xe=o,A}c=a+1|0,l=63-a|0}if(a=31&(o=63&c),o>>>0>=32?(o=0,f=t>>>a|0):(o=t>>>a|0,f=((1<>>a),a=31&(l&=63),l>>>0>=32?(t=A<>>32-a|t<>>31,f=(o=f<<1|t>>>31)-(E=r&(l=w-(m+(o>>>0>a>>>0)|0)>>31))|0,o=m-(o>>>0>>0)|0,t=t<<1|A>>>31,A=B|A<<1,B=m=1&l,c=c-1|0;);return mA=f,EA=o,xe=t<<1|A>>>31,m|A<<1}mA=A,EA=t,A=0,t=0}return xe=t,A}function Ga(A,t){var r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0;e:{if((0|(r=e[A+8>>2]))==e[A+12>>2])if((a=e[A+4>>2])>>>0>(c=e[A>>2])>>>0)o=Ke((l=(1+(a-c>>2)|0)/-2<<2)+a|0,a,r=r-a|0)+r|0,e[A+8>>2]=o,e[A+4>>2]=l+e[A+4>>2];else{if((l=(0|r)==(0|c)?1:r-c>>1)>>>0>=1073741824)break e;if(w=(f=ha(o=l<<2))+o|0,o=l=(-4&l)+f|0,(0|r)!=(0|a)){if(B=-4&(r=r-a|0),E=1+((m=r-4|0)>>>2|0)&7)for(o=0,r=l;e[r>>2]=e[a>>2],a=a+4|0,r=r+4|0,(0|E)!=(0|(o=o+1|0)););else r=l;if(o=l+B|0,!(m>>>0<28))for(;e[r>>2]=e[a>>2],e[r+4>>2]=e[a+4>>2],e[r+8>>2]=e[a+8>>2],e[r+12>>2]=e[a+12>>2],e[r+16>>2]=e[a+16>>2],e[r+20>>2]=e[a+20>>2],e[r+24>>2]=e[a+24>>2],e[r+28>>2]=e[a+28>>2],a=a+32|0,(0|o)!=(0|(r=r+32|0)););}e[A+12>>2]=w,e[A+8>>2]=o,e[A+4>>2]=l,e[A>>2]=f,c&&(HA(c),o=e[A+8>>2])}else o=r;return e[o>>2]=e[t>>2],void(e[A+8>>2]=e[A+8>>2]+4)}Nn(),K()}function La(A,t){var r,a=0,o=0,l=0,c=0,f=0;o=189088,$=r=$-320|0,e[r+312>>2]=0,l=ks(A,c=_A(r+112|0,189088),r,r+316|0,r+312|0,0),a=e[r+316>>2];e:if((0|t)<=3){if((0|a)<2)break e;if(l=3&(t=a-1|0),A=1,a-2>>>0>=3)for(f=-4&t,t=0;d[0|(a=A+r|0)]>=4&&(d[0|a]=3),d[(a=A+r|0)+1|0]>=4&&(d[a+1|0]=3),d[a+2|0]>=4&&(d[a+2|0]=3),d[a+3|0]>=4&&(d[a+3|0]=3),A=A+4|0,(0|f)!=(0|(t=t+4|0)););if(!l)break e;for(t=0;d[0|(a=A+r|0)]>=4&&(d[0|a]=3),A=A+1|0,(0|l)!=(0|(t=t+1|0)););}else if(A=1,!((0|a)<=1)){for(;;){if((0|l)>d[0|(f=A+r|0)]){if((0|a)!=(0|(A=A+1|0)))continue;break e}break}d[0|f]=t}if(A=u[0|c])for(t=1;a=e[144464+((255&A)<<2)>>2],u[a+11|0]!=2|16&u[a+6|0]||(l=255&(a=d[t+r|0]),(0|a)<2&&l||(d[0|o]=u[l+94151|0],o=o+1|0,A=u[0|c]),t=t+1|0),d[0|o]=A,o=o+1|0,A=u[0|(c=c+1|0)];);d[0|o]=0,$=r+320|0}function He(A){var t=0,r=0,a=0,o=0,l=0,c=0;r=t=e[(A|=0)>>2],e[A>>2]=t+1;e:{A:{r:{s:{i:{o:{c:switch(((l=u[0|t])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break i;case 6:break o;case 4:case 5:break c;default:break e}if((a=t+2|0)>>>0>=(o=e[A+4>>2])>>>0)break s;if(e[A>>2]=a,(192&(r=u[r+1|0]))!=128)break r;return 63&r|l<<6&1984}if((a=t+3|0)>>>0>=(o=e[A+4>>2])>>>0)break s;if(r=t+2|0,e[A>>2]=r,(192&(t=u[t+1|0]))!=128){a=r;break r}if(e[A>>2]=a,(192&(r=u[0|r]))!=128)break r;return 63&r|(63&t|l<<6&960)<<6}if(!((o=e[A+4>>2])>>>0<=(r=t+4|0)>>>0)){if(a=t+2|0,e[A>>2]=a,(192&(o=u[t+1|0]))!=128||(a=t+3|0,e[A>>2]=a,(192&(c=u[t+2|0]))!=128)||(e[A>>2]=r,t=u[0|a],a=r,(192&t)!=128))break r;return 0|((A=63&t|c<<6&4032|(63&o|l<<6&960)<<12)>>>0>=1114112?65533:A)}}e[A>>2]=o;break A}e[A>>2]=a-1}l=65533}return 0|l}function se(A,t,r,a){var o,l,c=0,f=0,m=0,E=0,w=0,B=0;if($=o=$-432|0,!(!a|!(536870912&(l=oA(A,t,r,a))))&&(v[o+48>>1]=8192,a=_A(o+48|2,a),u[0|a])){for(m=o+224|0,c=1,E=200;;){if(UA(o+44|0,a),t=os(e[o+44>>2]),f=e[r>>2],t?(e[r>>2]=2|f,kr(Kr(e[o+44>>2]),a)):e[r>>2]=-3&f,B=e[33264],oA(A,a,r,0),1&c?(e[o+16>>2]=189088,f=ss(m,E,84130,o+16|0)):(e[o+32>>2]=15,e[o+36>>2]=189088,f=ss(m,E,84434,o+32|0)),c=(t=e[33264])+1|0,e[33264]=c,t>>>0<=2147483646){for(;;)if(t=a,a=a+1|0,(0|(w=d[0|t]))==32|w-9>>>0<5){for(;t=(a=t)+1|0,(0|(w=d[0|a]))==32|w-9>>>0<5;);if(c=c-1|0,e[33264]=c,!((0|c)>0))break}}if(m=m+f|0,e[33264]=B,!(u[0|a]&&(c=0,(0|(E=E-f|0))>1)))break}(o+224|0)!=(0|m)&&(e[o>>2]=o+224,ss(189088,200,84130,o))}return $=o+432|0,l}function ke(A,t,r,a,o,l,c,f){var m,E;m=e[32972],E=e[m+116>>2],v[A+8>>1]=Q[A+8>>1]+l,l=32&f?0-l|0:l,v[A+10>>1]=l+Q[A+10>>1],v[A+12>>1]=l+Q[A+12>>1],a=(0|a)>(0|(l=((l=(0|R(t,E))/256|0)-(t=v[A+6>>1])|0)/2|0))?l:a,v[A+6>>1]=((0|r)<(0|a)?a:r)+t;e:{A:switch(o-1|0){case 0:t=(0|(t=235-(r=v[A+4>>1])|0))<=-100?-100:t,v[A+4>>1]=((0|t)>=-60?-60:t)+r;break e;case 1:t=(0|(t=(0|(t=235-(r=v[A+4>>1])|0))<=-300?-300:t))>=-150?-150:t,v[A+4>>1]=t+r,v[A+2>>1]=t+Q[A+2>>1];break e;case 2:break A;default:break e}t=(0|(t=(0|(t=100-(r=v[A+4>>1])|0))<=-400?-400:t))>-300?-400:t,v[A+4>>1]=t+r,v[A+2>>1]=t+Q[A+2>>1]}e[m+132>>2]||(d[A+20|0]=(R(u[A+20|0],c)>>>0)/100,d[A+21|0]=(R(u[A+21|0],c)>>>0)/100,d[A+22|0]=(R(u[A+22|0],c)>>>0)/100,d[A+23|0]=(R(u[A+23|0],c)>>>0)/100,d[A+24|0]=(R(u[A+24|0],c)>>>0)/100,d[A+25|0]=(R(u[A+25|0],c)>>>0)/100)}function Pe(A){var t,r=0,a=0,o=0,l=0;$=t=$-48|0;e:{if(A){u[0|A]||(A=xi(84285),u[0|A]&&A||(A=xi(121696),u[0|A]&&A||(A=xi(84614),u[0|A]&&A||(A=84891))));A:{for(;;){if(!(!(a=u[A+r|0])|(0|a)==47)){if(o=23,(0|(r=r+1|0))!=23)continue;break A}break}o=r}a=84891;A:{r:{if(r=u[0|A],(u[A+o|0]|(0|r)==46||(a=A,(0|r)==67))&&!u[a+1|0]||!gr(a,84891)||!gr(a,85136)){if(r=121652,u[a+1|0]==46)break r;A=0;break A}if(r=e[56851])for(;;){if(!gr(a,r+8|0))break r;if(!(r=e[r+32>>2]))break}(A=gt(36))&&(r=e[30414],e[A>>2]=e[30413],e[A+4>>2]=r,ct(r=A+8|0,a,o),d[r+o|0]=0,e[A+32>>2]=e[56851],e[56851]=A),r=A||121652}A=r}if((0|A)==-1)break e;e[56809]=A}else A=e[56809];l=A?A+8|0:84309}return $=t+48|0,l}function Fe(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0;m=!!((t=e[A+112>>2])|(a=e[A+116>>2])),o=t,c=t=(l=e[A+4>>2])-(f=e[A+44>>2])|0,r=t+e[A+120>>2]|0,t=e[A+124>>2]+(t>>31)|0;e:{if(!(((0|(t=r>>>0>>0?t+1|0:t))>=(0|a)&r>>>0>=o>>>0|(0|t)>(0|a))&m)){if((0|(m=ti(A)))>=0)break e;l=e[A+4>>2],f=e[A+44>>2]}return e[A+112>>2]=-1,e[A+116>>2]=-1,e[A+104>>2]=l,a=(c=r)+(r=f-l|0)|0,t=(r>>31)+t|0,e[A+120>>2]=a,e[A+124>>2]=r>>>0>a>>>0?t+1|0:t,-1}return t=(a=r+1|0)?t:t+1|0,l=e[A+4>>2],f=e[A+8>>2],c=o=e[A+116>>2],o|(r=e[A+112>>2])&&(o=r-a|0,(0|(r=c-(t+(r>>>0>>0)|0)|0))>=(0|(c=(E=f-l|0)>>31))&o>>>0>=E>>>0|(0|r)>(0|c)||(f=o+l|0)),e[A+104>>2]=f,a=(o=(r=e[A+44>>2])-l|0)+a|0,t=(o>>31)+t|0,e[A+120>>2]=a,e[A+124>>2]=a>>>0>>0?t+1|0:t,r>>>0>=l>>>0&&(d[l-1|0]=m),m}function Ke(A,t,r){var a=0,o=0;e:if((0|A)!=(0|t)){if(t-(o=A+r|0)>>>0<=0-(r<<1)>>>0)return ct(A,t,r);if(a=3&(A^t),A>>>0>>0){if(a)a=A;else{if(3&A)for(a=A;;){if(!r)break e;if(d[0|a]=u[0|t],t=t+1|0,r=r-1|0,!(3&(a=a+1|0)))break}else a=A;if(!(r>>>0<=3))for(;e[a>>2]=e[t>>2],t=t+4|0,a=a+4|0,(r=r-4|0)>>>0>3;);}if(r)for(;d[0|a]=u[0|t],a=a+1|0,t=t+1|0,r=r-1|0;);}else{if(!a){if(3&o)for(;;){if(!r)break e;if(d[0|(a=(r=r-1|0)+A|0)]=u[t+r|0],!(3&a))break}if(!(r>>>0<=3))for(;e[(r=r-4|0)+A>>2]=e[t+r>>2],r>>>0>3;);}if(!r)break e;for(;d[(r=r-1|0)+A|0]=u[t+r|0],r;);}}return A}function lA(A,t,r,a){e:switch(t-9|0){case 0:return t=e[r>>2],e[r>>2]=t+4,void(e[A>>2]=e[t>>2]);case 6:return t=e[r>>2],e[r>>2]=t+4,t=v[t>>1],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 7:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=Q[t>>1],void(e[A+4>>2]=0);case 8:return t=e[r>>2],e[r>>2]=t+4,t=d[0|t],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 9:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=u[0|t],void(e[A+4>>2]=0);case 16:return t=e[r>>2]+7&-8,e[r>>2]=t+8,void(O[A>>3]=O[t>>3]);case 17:rt[0|a](A,r);default:return;case 1:case 4:case 14:return t=e[r>>2],e[r>>2]=t+4,t=e[t>>2],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 2:case 5:case 11:case 15:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=e[t>>2],void(e[A+4>>2]=0);case 3:case 10:case 12:case 13:break e}t=e[r>>2]+7&-8,e[r>>2]=t+8,r=e[t+4>>2],e[A>>2]=e[t>>2],e[A+4>>2]=r}function yA(A,t,r,a,o,l){var c;$=c=$-80|0;e:if((0|l)>=16384){if(eA(c+32|0,t,r,a,o,0,0,0,2147352576),a=e[c+40>>2],o=e[c+44>>2],t=e[c+32>>2],r=e[c+36>>2],l>>>0<32767){l=l-16383|0;break e}eA(c+16|0,t,r,a,o,0,0,0,2147352576),l=((0|l)>=49149?49149:l)-32766|0,a=e[c+24>>2],o=e[c+28>>2],t=e[c+16>>2],r=e[c+20>>2]}else(0|l)>-16383||(eA(c- -64|0,t,r,a,o,0,0,0,7471104),a=e[c+72>>2],o=e[c+76>>2],t=e[c+64>>2],r=e[c+68>>2],l>>>0>4294934644?l=l+16269|0:(eA(c+48|0,t,r,a,o,0,0,0,7471104),l=((0|l)<=-48920?-48920:l)+32538|0,a=e[c+56>>2],o=e[c+60>>2],t=e[c+48>>2],r=e[c+52>>2]));eA(c,t,r,a,o,0,0,0,l+16383<<16),t=e[c+12>>2],e[A+8>>2]=e[c+8>>2],e[A+12>>2]=t,t=e[c+4>>2],e[A>>2]=e[c>>2],e[A+4>>2]=t,$=c+80|0}function zA(A,t){var r,a,o=0;$=r=$+-64|0,o=e[A>>2],a=e[o-4>>2],o=e[o-8>>2],e[r+32>>2]=0,e[r+36>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,e[r+48>>2]=0,e[r+52>>2]=0,d[r+55|0]=0,d[r+56|0]=0,d[r+57|0]=0,d[r+58|0]=0,d[r+59|0]=0,d[r+60|0]=0,d[r+61|0]=0,d[r+62|0]=0,e[r+24>>2]=0,e[r+28>>2]=0,e[r+20>>2]=0,e[r+16>>2]=125084,e[r+12>>2]=A,e[r+8>>2]=t,A=A+o|0,o=0;e:if(qa(a,t,0))e[r+56>>2]=1,rt[e[e[a>>2]+20>>2]](a,r+8|0,A,A,1,0),o=e[r+32>>2]==1?A:0;else{rt[e[e[a>>2]+24>>2]](a,r+8|0,A,1,0);A:switch(e[r+44>>2]){case 0:o=e[r+48>>2]==1&&e[r+36>>2]==1&&e[r+40>>2]==1?e[r+28>>2]:0;break e;case 1:break A;default:break e}e[r+32>>2]!=1&&e[r+48>>2]|e[r+36>>2]!=1|e[r+40>>2]!=1||(o=e[r+24>>2])}return $=r- -64|0,o}function SA(A,t,r,a,o){var l,c,f=0;$=l=$-80|0,v[l+72>>1]=0,e[l+64>>2]=0,e[l+68>>2]=0,d[0|a]=0,f=kr(t,c=2|(f=l- -64|0))+f|0,d[f+2|0]=32;e:if((0|r)!=-1)t>>>0>=33&&!Nr(t)?(d[f+3|0]=(0|r)==32?32:31,d[l+65|0]=95,NA(A,l- -64|1,l+16|0)||(d[l+65|0]=32,NA(A,c,l+16|0)||ft(A,c,l+16|0,40,0,268435456,0)),u[l+16|0]||vs(A,t,l+16|0),t=_A(a,l+16|0),!(r=u[0|t])|(0|r)==21||(e[l+56>>2]=0,e[l+60>>2]=0,Ut(A,t,l+56|0,-1,1&o))):(e[l>>2]=t,IA(t=l- -64|1,85485,l),NA(A,t,a));else{if(NA(A,c,a)||(d[l+65|0]=95,NA(A,l- -64|1,l+16|0)|e[A+212>>2]==25966))break e;ii(85055),NA(e[47194],c,l+16|0)&&(d[0|a]=21,d[a+1|0]=0),na(e[e[32972]+60>>2])}$=l+80|0}function cA(A,t,r){var a=0,o=0,l=0,c=0;if(r&&(d[0|A]=t,d[(a=A+r|0)-1|0]=t,!(r>>>0<3||(d[A+2|0]=t,d[A+1|0]=t,d[a-3|0]=t,d[a-2|0]=t,r>>>0<7||(d[A+3|0]=t,d[a-4|0]=t,r>>>0<9||(o=(a=0-A&3)+A|0,t=R(255&t,16843009),e[o>>2]=t,e[(r=(a=r-a&-4)+o|0)-4>>2]=t,a>>>0<9||(e[o+8>>2]=t,e[o+4>>2]=t,e[r-8>>2]=t,e[r-12>>2]=t,a>>>0<25||(e[o+24>>2]=t,e[o+20>>2]=t,e[o+16>>2]=t,e[o+12>>2]=t,e[r-16>>2]=t,e[r-20>>2]=t,e[r-24>>2]=t,e[r-28>>2]=t,(r=a-(c=4&o|24)|0)>>>0<32))))))))for(a=YA(t,0,1,1),l=xe,t=o+c|0;e[t+24>>2]=a,e[t+28>>2]=l,e[t+16>>2]=a,e[t+20>>2]=l,e[t+8>>2]=a,e[t+12>>2]=l,e[t>>2]=a,e[t+4>>2]=l,t=t+32|0,(r=r-32|0)>>>0>31;);return A}function ht(){var A,t=0,r=0,a=0,o=0,l=0;if($=A=$-208|0,(0|(a=e[50303]))>0)for(;(o=e[(r=201216+(t<<2)|0)>>2])&&(HA(o),e[r>>2]=0),(0|a)!=(0|(t=t+1|0)););if(e[50303]=0,e[A+16>>2]=137584,e[A+20>>2]=47,IA(t=A+32|0,87827,A+16|0),as(t,TA(t)+1|0,0),e[A+4>>2]=47,e[A>>2]=137584,IA(t,87933,A),as(t,TA(t)+1|0,1),t=e[50303],e[(r=t<<2)+201216>>2]=0,r=xr(a=e[50741],r+4|0)){if(e[50741]=r,ya(201216,t,7),a=e[50741],r=0,t=e[50304])for(o=0;l=e[t+4>>2],u[0|l]&&gr(l+1|0,86589)&&ga(e[t+8>>2],88032,3)&&(e[(r<<2)+a>>2]=t,r=r+1|0),t=e[201216+((o=o+1|0)<<2)>>2];);e[(r<<2)+a>>2]=0}return $=A+208|0,a}function Ot(A,t,r){var a=0,o=0,l=0,c=0;if(l=t-1|0,(0|t)>=2){t=A;e:{for(;;){A:{r:{if((0|(a=e[r+4>>2]))!=(0|(o=e[r+8>>2]))){if((c=Os(a,10,o-a|0))?o=1+(c-(a=e[r+4>>2])|0)|0:(a=e[r+4>>2],o=e[r+8>>2]-a|0),ct(t,a,a=o>>>0>>0?o:l),o=a+e[r+4>>2]|0,e[r+4>>2]=o,t=t+a|0,c||!(l=l-a|0))break A;if((0|o)!=e[r+8>>2]){e[r+4>>2]=o+1,a=u[0|o];break r}}if(!((0|(a=ti(r)))>=0)){if(a=0,(0|A)==(0|t))break e;if(16&u[0|r])break A;break e}}if(d[0|t]=a,t=t+1|0,(255&a)!=10&&(l=l-1|0))continue}break}A?(d[0|t]=0,a=A):a=0}}else if(t=e[r+72>>2],e[r+72>>2]=t-1|t,!l)return d[0|A]=0,A;return a}function _t(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0;if(t=R(A,44),(0|(A=e[t+137896>>2]))>0&&_t(A-1|0),A=e[36115],!((0|(t=e[(r=t+137856|0)+36>>2]))<=0)){if(o=e[r+32>>2],f=1&t,(0|t)!=1)for(m=-2&t,r=0;t=u[(l=(a=r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=l,(0|A)>=(0|t)?t=A:cA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=u[(a=(16|a)+o|0)+10|0],e[144464+(A<<2)>>2]=a,(0|A)<=(0|t)?A=t:cA(144464+((t=t+1|0)<<2)|0,0,A-t<<2),r=r+2|0,(0|m)!=(0|(c=c+2|0)););else r=0;f&&(t=u[(r=(r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=r,(0|A)>=(0|t)||(cA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=t))}e[36115]=A}function Br(A,t,r,a,o){var l,c=0,f=0,m=0;$=l=$-16|0;e:if(1&d[A+106|0]&&(c=u[0|r],!(!(1&d[a+2|0])&(0|c)!=46||256&(m=e[a+12>>2])|!(!(2&m)||o)||(UA(l+12|0,(0|c)!=46?r:r+2|0),!(c=u[0|r])|!u[r+1|0])))){if(!(!(m=e[l+12>>2])|2&u[a+2|0])){if(!Rt(m))break e;c=u[0|r]}(0|c)==46&&(d[0|r]=32),f=2,e[A+212>>2]!=26741|o||(r=Rt(e[l+12>>2])?se(A,r+2|0,0,0):0,128&u[A+8233|0]&&(!(!(o=e[l+12>>2])|2&u[a+2|0])&o-48>>>0>=10||(f=0)),f=32768&r?0:f,131072&r&&(f=163840&e[A+8232>>2]?34:u[t-2|0]!=45?f:0))}return $=l+16|0,f}function Jt(A,t,r,a,o){var l,c=0,f=0;if($=l=$-208|0,e[l+204>>2]=r,cA(r=l+160|0,0,40),e[l+200>>2]=e[l+204>>2],(0|CA(0,t,l+200|0,l+80|0,r,a,o))<0)o=-1;else{e[A+76>>2]>=0,c=e[A>>2],e[A+72>>2]<=0&&(e[A>>2]=-33&c);e:{A:{if(e[A+48>>2]){if(e[A+16>>2])break A}else e[A+48>>2]=80,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,f=e[A+44>>2],e[A+44>>2]=l;if(r=-1,Xi(A))break e}r=CA(A,t,l+200|0,l+80|0,l+160|0,a,o)}f&&(rt[e[A+36>>2]](A,0,0),e[A+48>>2]=0,e[A+44>>2]=f,e[A+28>>2]=0,t=e[A+20>>2],e[A+16>>2]=0,e[A+20>>2]=0,r=t?r:-1),t=A,A=e[A>>2],e[t>>2]=A|32&c,o=32&A?-1:r}return $=l+208|0,o}function Wr(A,t,r,a){var o,l=0,c=0,f=0,m=0,E=0,w=0,B=0;if($=o=$-208|0,c=u[0|t])for(;d[l+o|0]=c,m=((255&c)==6&(0|f)!=21)+m|0,f=c<<24>>24,c=u[(l=l+1|0)+t|0];);if(d[l+o|0]=0,l=u[0|o])for(w=m-2|0,f=0,B=(0|a)<2,c=0;;){e:{A:if((255&l)!=6|B|(0|c)==21){if((0|(a=255&l))==255){if(!E|(0|r)<2)break e;a=r>>>0>2?11:(0|f)%3|0?23:11}c=a,a=f}else{if(l=f+1|0,u[A+169|0]){c=(0|l)>1?5:6,a=l;break A}if(c=6,a=m,(0|l)==(0|m))break A;c=(0|l)%3|0||(0|f)==(0|w)?5:6,a=l}f=a,d[0|t]=c,t=t+1|0}if(!(l=u[(E=E+1|0)+o|0]))break}(0|r)>=2&&(d[0|t]=11,t=t+1|0),d[0|t]=0,$=o+208|0}function cr(A,t){var r=0;r=0,A&&(r=e[50754],r=(A=(A=(0|R(e[145712+(t?12:((0|A)>199)<<2)>>2],A))/256|0)>>>0>(t=e[36430])>>>0?A:t)>>>0<=89999?(R(A,r)>>>0)/1e3|0:(R(A,(0|r)/25|0)>>>0)/40|0),(0|(A=e[36440]))<=0||(0|(t=e[36424]))<0||(e[(t=216192+(t<<4)|0)+4>>2]||(e[t+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],me(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function Vr(A,t,r,a,o,l,c,f){var m,E=0,w=0,B=0;E=1,m=w=2147483647&a;e:if(!((B=(0|w)==2147418112)&!r?A|t:B&!!(0|r)|w>>>0>2147418112)&&!((B=(0|(w=2147483647&f))==2147418112)&!c?o|l:B&!!(0|c)|w>>>0>2147418112)){if(!(A|o|r|c|t|l|w|m))return 0;if((0|(E=a&f))>0|(0|E)>=0){if(E=-1,(0|r)==(0|c)&(0|a)==(0|f)?(0|t)==(0|l)&A>>>0>>0|t>>>0>>0:r>>>0>>0&(0|a)<=(0|f)|(0|a)<(0|f))break e;return!!(A^o|r^c|t^l|a^f)}E=-1,((0|r)==(0|c)&(0|a)==(0|f)?(0|t)==(0|l)&A>>>0>o>>>0|t>>>0>l>>>0:r>>>0>c>>>0&(0|a)>=(0|f)|(0|a)>(0|f))||(E=!!(A^o|r^c|t^l|a^f))}return E}function da(A,t){var r=0,a=0,o=0,l=0;for(r=u[85836]|u[85837]<<8,d[0|t]=r,d[t+1|0]=r>>>8,d[t+2|0]=u[85838];;)if(o=u[0|A],A=r=A+1|0,(0|o)!=255){if(!o)break;if(!(a=e[144464+(o<<2)>>2]))continue;if(u[a+11|0]==1&&(l=u[a+14|0],!(Q[a+8>>1]|l>>>0>4))){if(l>>>0<2)continue;d[0|t]=u[l+93943|0],t=t+1|0;continue}if(255&(A=e[a>>2]))for(;d[0|t]=A,t=t+1|0,a=65280&A,A=A>>>8|0,a;);if(A=r,(0|o)!=21||(32|(r=d[0|A]))-97>>>0>=26)continue;for(;d[0|t]=r,t=t+1|0,(32|(r=d[0|(A=A+1|0)]))-97>>>0<26;);}d[0|t]=0}function Yr(A,t){var r,a,o=0,l=0,c=0;$=r=$-112|0,A||(e[50303]||ht(),A=201216),Wt(o=r+16|0,t,40),e[r>>2]=47,e[r+4>>2]=o,IA(t=r- -64|0,87599,r),a=TA(t),c=-1;e:{A:{r:{if(l=e[A>>2]){t=0,o=-1;s:{for(;;){if(Mn(r+16|0,e[l>>2])){if(Mn(r+16|0,l=e[l+8>>2])?c=Mn(r- -64|0,l+(TA(l)-a|0)|0)?c:t:o=t,l=e[((t=t+1|0)<<2)+A>>2])continue;break s}break}if((0|t)>=0)break A;t=(0|o)<0?c:o;break r}if((0|(t=o))>=0)break r}t=c}if(o=0,(0|t)<0)break e}o=e[(t<<2)+A>>2]}return $=r+112|0,o}function ea(A,t){var r,a,o=0,l=0,c=0,f=0,m=0;$=r=$-16|0,L(+t),a=0|T(1),l=0|T(0),(0|(c=(o=2147483647&a)+-1048576|0))==2145386495|c>>>0<2145386495?(f=l<<28,c=o>>>4|0,o=(15&o)<<28|l>>>4,l=c+1006632960|0):(0|o)==2146435072|o>>>0>2146435072?(f=l<<28,o=(15&a)<<28|l>>>4,l=a>>>4|2147418112):o|l?(jt(r,l,c=o,0,0,(o=o?Te(o):Te(l)+32|0)+49|0),m=e[r>>2],f=e[r+4>>2],c=15372-o<<16,o=e[r+8>>2],l=c|65536^e[r+12>>2]):(o=0,l=0),e[A>>2]=m,e[A+4>>2]=f,e[A+8>>2]=o,e[A+12>>2]=-2147483648&a|l,$=r+16|0}function qt(A,t,r){var a=0,o=0;e:{A:{r:{if(!(3&((o=A)^t))){a=!!(0|r);s:if(!(!(3&t)|!r))for(;;){if(a=u[0|t],d[0|o]=a,!a)break e;if(o=o+1|0,a=!!(0|(r=r-1|0)),!(3&(t=t+1|0)))break s;if(!r)break}if(!a)break A;if(!u[0|t])break e;if(!(r>>>0<4))for(;;){if(~(a=e[t>>2])&a-16843009&-2139062144)break r;if(e[o>>2]=a,o=o+4|0,t=t+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break A}for(;;){if(a=u[0|t],d[0|o]=a,!a)break e;if(o=o+1|0,t=t+1|0,!(r=r-1|0))break}}r=0}return cA(o,0,r),A}function _r(A,t,r,a,o,l){var c,f=0,m=0,E=0;$=c=$-240|0,f=e[r>>2],e[c+232>>2]=f,r=e[r+4>>2],e[c>>2]=A,e[c+236>>2]=r,E=1;e:{A:{r:{if(r|(0|f)!=1){for(f=A;;){if((0|Vs(r=f-e[(m=(a<<2)+l|0)>>2]|0,A,t))<=0){r=f;break r}s:{if(!((0|a)<2|o)&&(o=e[m-8>>2],(0|Vs(m=f-4|0,r,t))>=0||(0|Vs(m-o|0,r,t))>=0))break s;if(e[(E<<2)+c>>2]=r,Oi(f=c+232|0,o=mo(f)),E=E+1|0,a=a+o|0,o=0,f=r,e[c+236>>2]|e[c+232>>2]!=1)continue;break A}break}r=f;break A}r=A}if(o)break e}xn(c,E),yi(r,t,a,l)}$=c+240|0}function zr(A,t){var r=0;e[4+((r=A<<2)+134912|0)>>2]=t,e[r+136192>>2]=t,r=28;e:{A:{r:switch(A-1|0){case 0:e[50792]=t,e[50786]=t,Xa(3);break A;case 1:e[50787]=t,e[33037]=(0|R(u[e[50797]+105596|0],(0|R(e[50787],55))/100|0))/16;break A;case 2:A=(0|t)>=99?99:t,e[50785]=(0|A)>0?A:0;break A;case 3:e[50788]=(0|t)>=99?99:t;break A;case 12:e[47268]=t;break A;case 6:e[47205]=t;break A;case 9:break A;case 8:break r;default:break e}(A=255&t)&&(e[e[47192]+152>>2]=A),e[47196]=t}r=0}return r}function Kt(A,t){var r=0,a=0,o=0;e:if(e[A>>2])for(;;){if(Nr(e[A-4>>2])){if(a=0,(0|(r=d[0|t]))==e[A>>2])for(;(0|(r=d[(a=a+1|0)+t|0]))==e[(A=A+4|0)>>2];);if(!r){for(;t=A,A=A+4|0,Nr(e[t>>2]););for(o=t+((e[t>>2]==61)<<2)|0;o=(A=o)+4|0,Nr(e[A>>2]););A:switch((t=e[A>>2])-34|0){case 0:case 5:break e;default:break A}return Nr(t)||e[A>>2]==47?102808:A}}if(!e[(A=A+4|0)>>2])break}return o}function Pr(A,t,r,a){var o,l,c=0,f=0,m=0;return!u[A+25|0]|O[A+8>>3]!=r|O[A+16>>3]!=a?(O[A+16>>3]=a,O[A+8>>3]=r,a=(c=mr(-3.141592653589793/(f=+e[A>>2])*a))*-c,O[A+48>>3]=a,c*=Ea(-6.283185307179586/f*r),c+=c,O[A+40>>3]=c,f=1-c-a,O[A+32>>3]=f,!(m=u[A+24|0])|r==0||(f=1/f,O[A+32>>3]=f,a*=r=-f,O[A+48>>3]=a,c*=r,O[A+40>>3]=c,m=1)):(m=u[A+24|0],a=O[A+48>>3],c=O[A+40>>3],f=O[A+32>>3]),d[A+25|0]=1,r=O[A+64>>3],o=O[A+56>>3],O[A+64>>3]=o,l=t,t=a*r+(f*t+c*o),O[A+56>>3]=m?l:t,t}function fa(A,t,r,a,o){var l=0,c=0,f=0,m=0,E=0;if((f=e[34388])&&!((0|(c=e[34436]))>=(e[34393]-2|0))){if(e[34436]=c+1,l=R(c,36)+f|0,e[l>>2]=A,e[l+4>>2]=e[34437],E=e[34438],e[l+12>>2]=t>>>24,e[l+8>>2]=16777215&t,e[l+24>>2]=E,t=e[50754],o=e[34439]+((o-e[34392]|0)/2|0)|0,e[l+20>>2]=o,t=ce(m=1e3*+(0|o)/+(0|t))<2147483648?~~m:-2147483648,e[l+16>>2]=t,A-3>>>0<=1)return void(e[28+(R(c,36)+f|0)>>2]=e[33282]+r);t=28+(R(c,36)+f|0)|0,e[t>>2]=r,(0|A)==7&&(e[t+4>>2]=a)}}function Hr(A,t,r,a,o,l){var c=0,f=0,m=0,E=0;64&l?(t=31&(r=l+-64|0),(63&r)>>>0>=32?(r=0,t=o>>>t|0):(r=o>>>t|0,t=((1<>>t),a=0,o=0):l&&(m=a,c=31&(f=64-l|0),(63&f)>>>0>=32?(f=m<>>32-c|o<>>0>=32?(c=0,t=r>>>t|0):(c=r>>>t|0,t=((1<>>t),t|=E,r=c|f,c=a,a=31&l,(63&l)>>>0>=32?(f=0,a=o>>>a|0):(f=o>>>a|0,a=((1<>>a),o=f),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=o}function Ir(A){var t=0,r=0;if(!A){if(e[33174]&&(t=Ir(e[33174])),e[33136]&&(t=Ir(e[33136])|t),A=e[56816])for(;e[A+20>>2]!=e[A+28>>2]&&(t=Ir(A)|t),A=e[A+56>>2];);return t}return e[A+76>>2]>=0,e[A+20>>2]==e[A+28>>2]||(rt[e[A+36>>2]](A,0,0),e[A+20>>2])?((0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(t=r-t|0,rt[e[A+40>>2]](A,t,t>>31,1)),t=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0):t=-1,t}function Cr(A,t){var r=0,a=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t-1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(a=1,(0|(o=224&r))!=192)if((240&r)!=224){if(a=3,(248&r)!=240){r&=255,a=0;break e}}else a=2,c=1;r=u[a+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:a=2)):a=1)):a=0}return e[A>>2]=r,a+1|0}function Dr(A,t,r,a){var o,l=0,c=0;return $=o=$-224|0,A?(e[o>>2]=137584,e[o+4>>2]=47,e[o+8>>2]=t,IA(t=o+16|0,85430,o),(0|(l=Qa(t)))<0?t=ms(a,0-l|0,o+16|0):(t=ka(o+16|0,85659))?((c=e[A>>2])&&HA(c),l?(c=gt(l),e[A>>2]=c,c?(0|vn(c,l,t))==(0|l)?(nr(t),t=0,r&&(e[r>>2]=l)):(r=e[56798],nr(t),HA(e[A>>2]),e[A>>2]=0,t=ms(a,r,o+16|0)):(nr(t),t=48)):(t=0,e[A>>2]=0)):t=ms(a,e[56798],o+16|0)):t=28,$=o+224|0,t}function UA(A,t){var r=0,a=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t+1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(a=1,(0|(o=224&r))!=192)if((240&r)!=224){if(a=3,(248&r)!=240){r&=255,a=0;break e}}else a=2,c=1;r=u[a+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:a=2)):a=1)):a=0}return e[A>>2]=r,a+1|0}function jt(A,t,r,a,o,l){var c=0,f=0,m=0;64&l?(a=t,t=31&(o=l+-64|0),(63&o)>>>0>=32?(o=a<>>32-t|r<>>0>=32?(f=c<>>32-a|o<>>0>=32?(o=0,t=r>>>a|0):(o=r>>>a|0,t=((1<>>a),a=m|t,o|=f,t=31&l,(63&l)>>>0>=32?(f=c<>>32-t|r<>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=o}function wr(A){var t=0;return A>>>0<=55295?t=u[e[125552+(A>>>6&67108860)>>2]+(255&A)|0]:(t=4,A>>>0<57344||(A>>>0<63488?t=3:A>>>0<=195327?t=u[e[126416+(A-63488>>>6&67108860)>>2]+(255&A)|0]:(t=2,A>>>0<917504||(A>>>0<=918015?t=u[e[128476+(A-917504>>>6&67108860)>>2]+(255&A)|0]:A>>>0<983040||(A>>>0<1048574?t=3:A>>>0<1048576||(t=3,A>>>0<1114110||(t=A>>>0<1114112?2:5))))))),255&t}function Pa(A,t){var r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0;if(!((0|(r=e[33709]))<=0)){if(o=(0|A)>31?A-32|0:A,A=0,r>>>0>=4)for(w=-4&r;f=2|A,m=1|A,a=e[134912+((c=3|A)<<6)>>2]==(0|o)?c:e[134912+(f<<6)>>2]==(0|o)?f:e[134912+(m<<6)>>2]==(0|o)?m:e[134912+(A<<6)>>2]==(0|o)?A:a,A=A+4|0,(0|w)!=(0|(l=l+4|0)););if(l=3&r)for(;a=e[134912+(A<<6)>>2]==(0|o)?A:a,A=A+1|0,(0|l)!=(0|(E=E+1|0)););(0|a)<=0||(e[33709]=a,r=a)}sa(t,r)}function bn(A){var t,r=0,a=0,o=0;for($=t=$-96|0,Wt(t,A,60),Wi(t,1);o=Kr(d[0|(a=t+r|0)]),d[0|a]=o,r=r+1|0,255&o;);e[t+92>>2]=0,e[t+84>>2]=0,e[t+88>>2]=0,e[t+76>>2]=0,e[t+80>>2]=0,e[t+72>>2]=A;e:{A:{r:{if(It(t,1)){if(u[202976])break r;break A}if(e[50303]||ht(),r=268437247,!(A=Yr(201216,t))||!It(e[A+8>>2],0))break e;if(!u[202976])break A}It(202976,2)}Co(e[32972]),e[t+76>>2]=e[32972]+40,Hi(t+72|0,202976),r=0}return $=t+96|0,r}function vi(A,t){if(!A)return 0;e:{A:{if(A){if(t>>>0<=127)break A;if(e[e[56841]>>2]){if(t>>>0<=2047){d[A+1|0]=63&t|128,d[0|A]=t>>>6|192,A=2;break e}if(!((-8192&t)!=57344&t>>>0>=55296)){d[A+2|0]=63&t|128,d[0|A]=t>>>12|224,d[A+1|0]=t>>>6&63|128,A=3;break e}if(t-65536>>>0<=1048575){d[A+3|0]=63&t|128,d[0|A]=t>>>18|240,d[A+2|0]=t>>>6&63|128,d[A+1|0]=t>>>12&63|128,A=4;break e}}else if((-128&t)==57216)break A;e[56798]=25,A=-1}else A=1;break e}d[0|A]=t,A=1}return A}function In(A){var t=0,r=0,a=0,o=0;if(e[A+20>>2]=0,(a=(r=e[A+8>>2])-(t=e[A+4>>2])|0)>>>0>=9)for(;HA(e[t>>2]),t=e[A+4>>2]+4|0,e[A+4>>2]=t,(a=(r=e[A+8>>2])-t|0)>>>0>8;);o=512;e:switch((a>>>2|0)-1|0){case 1:o=1024;case 0:e[A+16>>2]=o;break;default:break e}if((0|t)!=(0|r)){for(;HA(e[t>>2]),(0|r)!=(0|(t=t+4|0)););(0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(e[A+8>>2]=t+(3+(r-t|0)&-4))}(A=e[A>>2])&&HA(A)}function Os(A,t,r){var a=0,o=0;a=!!(0|r);e:{A:{r:if(!(!(3&A)|!r))for(o=255&t;;){if((0|o)==u[0|A])break A;if(a=!!(0|(r=r-1|0)),!(3&(A=A+1|0)))break r;if(!r)break}if(!a)break e;if(!(u[0|A]==(255&t)|r>>>0<4))for(a=R(255&t,16843009);;){if(~(o=a^e[A>>2])&o-16843009&-2139062144)break A;if(A=A+4|0,!((r=r-4|0)>>>0>3))break}if(!r)break e}for(t&=255;;){if((0|t)==u[0|A])return A;if(A=A+1|0,!(r=r-1|0))break}}return 0}function _s(A,t){var r=0,a=0;e:{if(a=255&t){if(3&A)for(;;){if(!(r=u[0|A])|(0|r)==(255&t))break e;if(!(3&(A=A+1|0)))break}A:if(!(~(r=e[A>>2])&r-16843009&-2139062144))for(a=R(a,16843009);;){if(~(r^=a)&r-16843009&-2139062144)break A;if(r=e[A+4>>2],A=A+4|0,r-16843009&~r&-2139062144)break}for(;(a=u[0|(r=A)])&&(A=r+1|0,(0|a)!=(255&t)););return r}return TA(A)+A|0}return A}function Ri(A,t,r,a,o){var l,c=0,f=0;f=-1;e:if(!(((c=(0|(l=2147483647&a))==2147418112)&!r?A|t:c&!!(0|r)|l>>>0>2147418112)||(c=2147483647&o)>>>0>2147418112&(0|c)!=2147418112)){if(!(A|r|c|l|t))return 0;if((0|(c=a&o))>0|(0|c)>=0){if((!!(0|r)|(0|a)!=(0|o))&(0|a)<(0|o))break e;return!!(A|r|a^o|t)}(!r&(0|a)==(0|o)?A|t:!!(0|r)&(0|a)>=(0|o)|(0|a)>(0|o))||(f=!!(A|r|a^o|t))}return f}function Wi(A,t){var r,a=0;$=r=$+-64|0,d[202976]=0,e[r+48>>2]=47,IA(r+59|0,91351,r+48|0),t||(d[r+59|0]=0);e:{A:{if(A&&(A=Ra(A,43))){if(d[0|A]=0,d[0|(A=A+1|0)]-48>>>0>=10)break A;a=js(A)}if((0|a)<=0)break e;if(a>>>0<=9){e[r+4>>2]=a,e[r>>2]=r+59,IA(202976,91378,r);break e}e[r+20>>2]=a-10,e[r+16>>2]=r+59,IA(202976,91503,r+16|0);break e}e[r+36>>2]=A,e[r+32>>2]=r+59,IA(202976,85425,r+32|0)}$=r- -64|0}function zs(A){var t,r=0,a=0,o=0;$=t=$-80|0,r=Qt(A,t+12|0),e[t+12>>2]?(Wt(a=t+16|0,r,60),r=0,Wi(a,1),!It(a,0)|!u[202976]||It(202976,2),Co(e[32972]),Hi(A,86012)):r=268437247,$=t+80|0;e:{A:{r:{s:{if((0|r)<=268437502){if(!r)break e;if((0|r)==268436479)break A;if((0|r)!=268437247)break s;return 2}if((0|r)==268437503|(0|r)==268437759)break r;if((0|r)==268439295)break e}return-1}return 2}o=1}return o}function Ur(A,t,r,a,o,l,c,f,m){var E,w,B;m=YA(t,r,f,m),f=xe,o=YA(a,o,l,c),a=xe+f|0,f=o>>>0>(m=o+m|0)>>>0?a+1|0:a,E=c,w=r,c=(r=YA(c,o=0,r,a=0))+m|0,m=xe+f|0,B=c,r=r>>>0>c>>>0?m+1|0:m,c=YA(l,0,t,0),f=xe,a=YA(l,m=0,w,a),l=xe+m|0,l=a>>>0>(f=f+a|0)>>>0?l+1|0:l,a=r,l=l>>>0>(m=l+B|0)>>>0?a+1|0:a,r=YA(t,0,E,o)+f|0,o=xe,f=(o=r>>>0>>0?o+1|0:o)+m|0,m=l,e[A+8>>2]=f,e[A+12>>2]=o>>>0>f>>>0?m+1|0:m,e[A>>2]=c,e[A+4>>2]=r}function _A(A,t){var r=0,a=0;e:{if(3&((a=A)^t))r=u[0|t];else{if(3&t)for(;;){if(r=u[0|t],d[0|a]=r,!r)break e;if(a=a+1|0,!(3&(t=t+1|0)))break}if(!(~(r=e[t>>2])&r-16843009&-2139062144))for(;e[a>>2]=r,r=e[t+4>>2],a=a+4|0,t=t+4|0,!(r-16843009&~r&-2139062144););}if(d[0|a]=r,255&r)for(;r=u[t+1|0],d[a+1|0]=r,a=a+1|0,t=t+1|0,r;);}return A}function Ea(A){var t,r=0,a=0;$=t=$-16|0,L(+A),a=0|T(1),T(0);e:if((a&=2147483647)>>>0<=1072243195){if(r=1,a>>>0<1044816030)break e;r=Zs(A,0)}else if(r=A-A,!(a>>>0>=2146435072)){A:switch(3&ze(A,t)){case 0:r=Zs(O[t>>3],O[t+8>>3]);break e;case 1:r=-Bi(O[t>>3],O[t+8>>3],1);break e;case 2:r=-Zs(O[t>>3],O[t+8>>3]);break e;default:break A}r=Bi(O[t>>3],O[t+8>>3],1)}return $=t+16|0,A=r}function wn(A,t,r,a){var o=0,l=0,c=0;if(!((TA(a)+TA(t)|0)>=(0|r))){for(c=e[36115],r=a;o=u[0|r];)if(r=r+1|0,!((0|o)>=(0|c))){e:{A:switch(o=e[144464+(o<<2)>>2],u[o+11|0]-1|0){case 1:break e;case 0:break A;default:continue}l=u[o+14|0]<4|l;continue}1&(u[o+4|0]>>>1|l)||(e[A+8212>>2]=e[A+8212>>2]+1),e[A+8208>>2]=e[A+8208>>2]+1,l=0}t&&Xr(t,a)}}function Ns(A){var t,r=0;$=t=$-16|0,L(+A),r=0|T(1),T(0);e:if((r&=2147483647)>>>0<=1072243195){if(r>>>0<1045430272)break e;A=Bi(A,0,0)}else if(r>>>0>=2146435072)A-=A;else{A:switch(3&ze(A,t)){case 0:A=Bi(O[t>>3],O[t+8>>3],1);break e;case 1:A=Zs(O[t>>3],O[t+8>>3]);break e;case 2:A=-Bi(O[t>>3],O[t+8>>3],1);break e;default:break A}A=-Zs(O[t>>3],O[t+8>>3])}return $=t+16|0,A}function kn(A){var t=0;e[A+296>>2]=303173648,e[A+300>>2]=370677780,t=e[26341],e[A+304>>2]=e[26340],e[A+308>>2]=t,t=e[26343],e[A+312>>2]=e[26342],e[A+316>>2]=t,wA(A),e[A+56>>2]=2,e[A+36>>2]=3,e[A+40>>2]=1074,d[A+168|0]=5,e[A+132>>2]=32,e[A+104>>2]=1032,e[A+108>>2]=66,e[A+8>>2]=5,e[A+12>>2]=32,d[A+365|0]=64|u[A+365|0],d[A+368|0]=64|u[A+368|0],d[A+396|0]=64|u[A+396|0],d[A+399|0]=64|u[A+399|0]}function so(A,t,r){var a=0,o=0,l=0;e:{if(!(a=e[r+16>>2])){if(Xi(r))break e;a=e[r+16>>2]}if(a-(l=e[r+20>>2])>>>0>>0)return 0|rt[e[r+36>>2]](r,A,t);A:if(e[r+80>>2]<0)a=0;else{for(o=t;;){if(!(a=o)){a=0;break A}if(u[(o=a-1|0)+A|0]==10)break}if((o=0|rt[e[r+36>>2]](r,A,a))>>>0>>0)break e;A=A+a|0,t=t-a|0,l=e[r+20>>2]}ct(l,A,t),e[r+20>>2]=e[r+20>>2]+t,o=t+a|0}return o}function Vi(A){var t,r=0,a=0;e:{if((0|(t=e[34064]))>0)for(;;){if((a=e[136284+(r<<4)>>2])&&!gr(A,a)){if(e[136276+(r<<4)>>2])return r;if(a=-1,Ht(0,r))break e;return r}if((0|t)==(0|(r=r+1|0)))break}a=-1,Ht(A,t)||(r=xr(e[12+(136272+(e[34064]<<4)|0)>>2],TA(A)+1|0),a=e[34064],e[12+(136272+(a<<4)|0)>>2]=r,_A(r,A),e[34064]=a+1)}return a}function io(A,t){var r,a=0,o=0,l=0,c=0;for($=r=$-16|0,d[0|t]=0,(a=15&e[A>>2])&&(t=(o=TA(t=_A(t,Pi(128496,64|a))))+t|0),a=8;;){e:{A:{if(a>>>0<=29){if(e[A>>2]>>>a&1)break A;break e}if(!(e[A+4>>2]>>>a-32&1)|a>>>0<32)break e}(0|(o=(c=TA(l=Pi(128496,a))+1|0)+o|0))>=80||(e[r>>2]=l,IA(t,84439,r),t=t+c|0)}if((0|(a=a+1|0))==64)break}$=r+16|0}function En(A,t,r){var a,o=0,l=0,c=0;if($=a=$-16|0,u[0|A]){for(c=e[30450];;)if(l=A,A=A+1|0,!((0|(o=d[0|l]))==32|o-9>>>0<5)){for((0|(o=js(l)))>0&&((0|o)<32?e[t>>2]=e[t>>2]|1<>2]=o,e[a>>2]=l,Ar(c,84902,a)),l=A);l=(A=l)+1|0,(o=d[0|A])-48>>>0<10|(32|o)-97>>>0<26;);if(!o)break}}$=a+16|0}function Yi(A,t,r){var a=0,o=0,l=0,c=0;e:if(t&&!((0|(o=r-4|0))<=0))for(l=(0|(r=e[t-4>>2]))!=34?(0|r)==39?r:0:r,r=0;;){if(c=r,!(r=e[t>>2]))break e;A:{if(!l){if((0|r)==32|r-9>>>0<5)break e;if((0|r)!=47)break A;break e}if((0|c)!=92&&(0|r)==(0|l))break e}if(t=t+4|0,!((0|o)>(0|(a=kr(r,A+a|0)+a|0))))break}return d[A+a|0]=0,a}function Rt(A){var t=0;e:if(!ls(A)){t=0;A:if(!(A>>>0<768)){if(A-2305>>>0<=1270){if((124&A)>>>0<100)break e;if(t=1,Si(93850,A))break A;return A-3450>>>0<6}if((0|A)==1541|A-1456>>>0<19|(0|A)==1648||(0|(t=-256&A))==10240|(0|t)==4352|A-3904>>>0<125|A>>>0<880)break e;t=1,A-1611>>>0<20||(t=A-12353>>>0<30400)}return t}return 1}function Hi(A,t){var r=0;A?((r=e[A+4>>2])&&_A(133208,r),(r=e[A>>2])&&Wt(133168,r,40),e[33289]=u[A+14|0],e[33291]=u[A+13|0],e[33290]=u[A+12|0],Wt(134672,u[0|t]!=33|u[t+1|0]!=118?t:(u[t+2|0]==47?3:0)+t|0,40),A=e[50298],e[33678]=e[50297],e[33679]=A,A=e[50302],e[33682]=e[50301],e[33683]=A,A=e[50300],e[33680]=e[50299],e[33681]=A):cA(133152,0,76)}function no(A,t,r,a){d[A+53|0]=1;e:if(e[A+4>>2]==(0|r)){d[A+52|0]=1;A:{if(!(r=e[A+16>>2])){if(e[A+36>>2]=1,e[A+24>>2]=a,e[A+16>>2]=t,(0|a)!=1)break e;if(e[A+48>>2]==1)break A;break e}if((0|t)==(0|r)){if((0|(r=e[A+24>>2]))==2&&(e[A+24>>2]=a,r=a),e[A+48>>2]!=1)break e;if((0|r)==1)break A;break e}e[A+36>>2]=e[A+36>>2]+1}d[A+54|0]=1}}function ps(A,t){var r=0,a=0,o=0,l=0,c=0;e:if(r=e[t>>2])for(;;){a=0;A:if(A){for(;c=d[a+r|0],(o=e[(a<<2)+A>>2])&&(a=a+1|0,(0|c)==(0|o)););r:switch(o-34|0){case 0:case 5:break r;default:break A}if(!c)break e}if(!(r=e[((l=l+1|0)<<3)+t>>2]))break}return e[4+((l<<3)+t|0)>>2]}function Ls(A,t){e:if((0|t)>=1024){if(A*=898846567431158e293,t>>>0<2047){t=t-1023|0;break e}A*=898846567431158e293,t=((0|t)>=3069?3069:t)-2046|0}else(0|t)>-1023||(A*=2004168360008973e-307,t>>>0>4294965304?t=t+969|0:(A*=2004168360008973e-307,t=((0|t)<=-2960?-2960:t)+1938|0));return P(0,0),P(1,t+1023<<20),A*+j()}function ss(A,t,r,a){var o,l,c,f=0;return $=l=$-16|0,e[l+12>>2]=a,$=o=$-160|0,c=t?A:o+158|0,e[o+144>>2]=c,f=-1,A=t-1|0,e[o+148>>2]=A>>>0<=t>>>0?A:0,A=cA(o,0,144),e[A+76>>2]=-1,e[A+36>>2]=17,e[A+80>>2]=-1,e[A+44>>2]=A+159,e[A+84>>2]=A+144,(0|t)<0?e[56798]=61:(d[0|c]=0,f=Jt(A,r,a,15,16)),$=A+160|0,$=l+16|0,f}function Mn(A,t){var r=0,a=0,o=0;e:if(r=u[0|A])for(;;){if(!(a=u[0|t])){o=r;break e}if((0|r)!=(0|a)&&(0|(a=r-65>>>0<26?32|r:r))!=(0|((r=u[0|t])-65>>>0<26?32|r:r))){o=u[0|A];break e}if(t=t+1|0,r=u[A+1|0],A=A+1|0,!r)break}return(o=(A=255&o)-65>>>0<26?32|A:A)-((A=u[0|t])-65>>>0<26?32|A:A)|0}function vn(A,t,r){var a=0,o=0;if(a=e[r+72>>2],e[r+72>>2]=a-1|a,(0|(a=e[r+4>>2]))==(0|(o=e[r+8>>2]))?a=t:(ct(A,a,a=t>>>0>(a=o-a|0)>>>0?a:t),e[r+4>>2]=a+e[r+4>>2],A=A+a|0,a=t-a|0),a)for(;;){if(Bn(r)||!(o=0|rt[e[r+32>>2]](r,A,a)))return t-a|0;if(A=A+o|0,!(a=a-o|0))break}return t}function js(A){for(var t=0,r=0,a=0,o=0;A=(t=A)+1|0,(0|(r=d[0|t]))==32|r-9>>>0<5;);e:{A:{r:switch((r=d[0|t])-43|0){case 0:break A;case 2:break r;default:break e}o=1}r=d[0|A],t=A}if(r-48>>>0<10)for(;a=48+(R(a,10)-d[0|t]|0)|0,A=d[t+1|0],t=t+1|0,A-48>>>0<10;);return o?a:0-a|0}function yn(A,t){var r,a,o,l=0;return $=r=$-32|0,e[t>>2]=0,e[t+4>>2]=0,e[(l=a=t+24|0)>>2]=0,e[l+4>>2]=0,e[(l=o=t+16|0)>>2]=0,e[l+4>>2]=0,e[(l=t+8|0)>>2]=0,e[l+4>>2]=0,e[r+28>>2]=t+28,e[r+24>>2]=a,e[r+20>>2]=t+20,e[r+16>>2]=o,e[r+12>>2]=t+12,e[r+8>>2]=l,e[r+4>>2]=t+4,e[r>>2]=t,A=dt(A,84553,r),$=r+32|0,A}function oo(A){var t=0,r=0,a=0;if((t=u[0|A])&&((r=u[A+1|0])?(r=t|r<<8,(t=u[A+2|0])&&(r|=t<<16,(A=u[A+3|0])&&(r|=A<<24))):r=t),(0|(t=e[36115]))>0)for(A=0;;){if(!(!(a=e[144464+(A<<2)>>2])|e[a>>2]!=(0|r)))return u[a+10|0];if((0|t)==(0|(A=A+1|0)))break}return 0}function yi(A,t,r,a){var o,l=0,c=0,f=0,m=0,E=0;$=o=$-240|0,e[o>>2]=A,f=1;e:if(!((0|r)<2))for(l=A;;){if((0|Vs(A,c=(l=l-4|0)-e[((m=r-2|0)<<2)+a>>2]|0,t))>=0&&(0|Vs(A,l,t))>=0)break e;if(E=c,l=(c=(0|Vs(c,l,t))>=0)?E:l,e[(f<<2)+o>>2]=l,f=f+1|0,!((0|(r=c?r-1|0:m))>1))break}xn(o,f),$=o+240|0}function IA(A,t,r){var a,o,l,c=0;return $=o=$-16|0,e[o+12>>2]=r,$=a=$-160|0,ct(l=a+8|0,124528,144),e[a+52>>2]=A,e[a+28>>2]=A,c=(c=-2-A|0)>>>0>2147483647?2147483647:c,e[a+56>>2]=c,A=A+c|0,e[a+36>>2]=A,e[a+24>>2]=A,A=ye(l,t,r),c&&(t=e[a+28>>2],d[t-((0|t)==e[a+24>>2])|0]=0),$=a+160|0,$=o+16|0,A}function xn(A,t){var r,a=0,o=0,l=0,c=0,f=0;if(a=4,$=r=$-256|0,(0|t)>=2)for(e[(f=(t<<2)+A|0)>>2]=r;;){for(l=a>>>0>=256?256:a,ct(e[f>>2],e[A>>2],l),o=0;c=(o<<2)+A|0,o=o+1|0,ct(e[c>>2],e[(o<<2)+A>>2],l),e[c>>2]=e[c>>2]+l,(0|t)!=(0|o););if(!(a=a-l|0))break}$=r+256|0}function NA(A,t,r){var a,o=0;return $=a=$-96|0,e[a+88>>2]=0,e[a+92>>2]=1073741824,e[a+84>>2]=t,t=DA(A,a+84|0,r,a+88|0,2,0),536870912&(o=e[a+88>>2])?(t=e[47202],e[47202]=0,d[a+2|0]=32,v[a>>1]=8192,Wt(o=3|a,e[a+84>>2],77),A=se(A,o,0,0),_A(r,189088),e[47202]=t):A=t?o:0,$=a+96|0,A}function is(A,t,r){var a=0,o=0,l=0;o=hs(A),a=e[t>>2];e:{A:if((0|o)>=0){if(a){if(!gr(A,r))break A;(l=e[a+688>>2])&&HA(l),HA(a),e[t>>2]=0}e[t>>2]=GA(A),A=_A(r,A),Da(r=e[t>>2],r+228|0,0)&&(na(e[e[32972]+60>>2]),d[0|A]=0,o=-1),a=e[t>>2],e[a+292>>2]=o}else if(!a)break e;d[a+268|0]=0}return o}function Ui(A){var t=0,r=0;return(0|(t=e[A+76>>2]))>=0&(!t|e[56823]!=(-1073741825&t))?(r=e[(t=A+76|0)>>2],e[t>>2]=r||1073741823,(0|(r=e[A+4>>2]))==e[A+8>>2]?A=ti(A):(e[A+4>>2]=r+1,A=u[0|r]),e[t>>2]=0,A):(0|(t=e[A+4>>2]))!=e[A+8>>2]?(e[A+4>>2]=t+1,u[0|t]):ti(A)}function ga(A,t,r){var a=0,o=0;e:{A:{if(r>>>0>=4){if(3&(A|t))break A;for(;;){if(e[A>>2]!=e[t>>2])break A;if(t=t+4|0,A=A+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break e}for(;;){if((0|(a=u[0|A]))==(0|(o=u[0|t]))){if(t=t+1|0,A=A+1|0,r=r-1|0)continue;break e}break}return a-o|0}return 0}function Ma(A,t){var r,a=0,o=0,l=0;$=r=$-16|0,t?(jt(r,o=((a=t>>31)^t)-a|0,0,0,0,(a=Te(o))+81|0),o=0+e[r+8>>2]|0,a=(65536^e[r+12>>2])+(16414-a<<16)|0,l=-2147483648&t|(a=o>>>0>>0?a+1|0:a),a=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=a,e[A+8>>2]=o,e[A+12>>2]=l,$=r+16|0}function xi(A){var t,r=0,a=0,o=0;if((0|(r=_s(A,61)))==(0|A))return 0;e:if(!u[(t=r-A|0)+A|0]&&(r=e[56800])&&(a=e[r>>2])){for(;;){if(go(A,a,t)||(a=e[r>>2]+t|0,u[0|a]!=61)){if(a=e[r+4>>2],r=r+4|0,a)continue;break e}break}o=a+1|0}return o}function hs(A){var t=0,r=0;e:if(!((0|(r=e[34461]))<=0)){for(;;){if(!gr(A,R(t,44)+137856|0)){e[34457]=t;break e}if((0|r)==(0|(t=t+1|0)))break}return-1}return(A=(0|t)==(0|r))?-1:((0|(A=A?-1:t))!=e[36114]&&(e[36115]=0,_t(A),e[36114]=A,e[36115]=e[36115]+1),t)}function Ki(A,t,r,a){var o=0,l=0;e:if((32|u[0|t])!=32){if(o=((0|a)>2)<<1,l=wt(A,t,r,o=(0|a)>1?4|o:o),u[0|r]!=21)for(o|=1,t=t+l|0,l=1;;){if((32|u[0|t])==32)break e;if(t=wt(A,t,r,o)+t|0,l=l+1|0,u[0|r]==21)break}return _A(189088,r),0}return Wr(A,r,a,l),t}function kr(A,t){var r,a=0,o=0,l=0;if(A>>>0<=127)return d[0|t]=A,1;if(A>>>0>=1114112)return d[0|t]=32,1;for(a=R(r=A>>>0<2048?1:A>>>0<65536?2:3,6),d[0|t]=u[r+93842|0]|A>>>a;a=a-6|0,d[(o=o+1|0)+t|0]=A>>>a&63|128,(0|(l=l+1|0))!=(0|r););return r+1|0}function lo(A){var t=0,r=0;e:{if((0|(t=e[A+12>>2]))>=e[A+16>>2]){if(t=0,(0|(r=0|we(e[A+8>>2],A+24|0,2048)))<=0){if(!r|(0|r)==-44)break e;return e[56798]=0-r,0}e[A+16>>2]=r}r=t,t=A+t|0,e[A+12>>2]=r+Q[t+40>>1],r=e[t+36>>2],e[A>>2]=e[t+32>>2],e[A+4>>2]=r,t=t+24|0}return t}function co(A,t){var r,a=0;if(a=e[A+632>>2])return!!(0|Tr(a,t));e:{A:{if((0|(r=e[A+600>>2]))>0){if(a=0,(t=t-r|0)-1>>>0<255)break A;break e}if((a=t-192|0)>>>0<=413)return 128&u[344+(u[a+94240|0]+A|0)|0];if(a=0,t>>>0>255)break e}a=128&u[344+(A+t|0)|0]}return a}function Bi(A,t,r){var a,o,l;return l=(a=A*A)*(a*a)*(158969099521155e-24*a-25050760253406863e-24)+(a*(27557313707070068e-22*a-.0001984126982985795)+.00833333333332249),o=a*A,r?A-(a*(.5*t-l*o)-t+.16666666666666632*o):o*(a*l-.16666666666666632)+A}function ys(A,t){var r,a=0,o=0,l=0;$=r=$-16|0,t?(jt(r,a=t,0,0,0,(t=Te(t))+81|0),a=0+e[r+8>>2]|0,t=(65536^e[r+12>>2])+(16414-t<<16)|0,l=o>>>0>a>>>0?t+1|0:t,o=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=o,e[A+8>>2]=a,e[A+12>>2]=l,$=r+16|0}function Di(A){var t,r=0;$=t=$-16|0,d[t+15|0]=10;e:{if(!(r=e[A+16>>2])){if(Xi(A))break e;r=e[A+16>>2]}(0|r)==(0|(r=e[A+20>>2]))|e[A+80>>2]==10?rt[e[A+36>>2]](A,t+15|0,1):(e[A+20>>2]=r+1,d[0|r]=10)}$=t+16|0}function Bn(A){var t,r=0;return r=e[A+72>>2],e[A+72>>2]=r-1|r,e[A+20>>2]!=e[A+28>>2]&&rt[e[A+36>>2]](A,0,0),e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,4&(r=e[A>>2])?(e[A>>2]=32|r,-1):(t=e[A+44>>2]+e[A+48>>2]|0,e[A+8>>2]=t,e[A+4>>2]=t,r<<27>>31)}function Ti(A){var t=0;e:{A:{r:{s:{if((0|(A=bn(A)))<=268437502){if(!A)break e;if((0|A)==268436479)break A;if((0|A)!=268437247)break s;return 2}if((0|A)==268437503|(0|A)==268437759)break r;if((0|A)==268439295)break e}return-1}return 2}t=1}return t}function TA(A){var t=0,r=0,a=0;e:{if(3&(t=A))for(;;){if(!u[0|t])break e;if(!(3&(t=t+1|0)))break}for(;r=t,t=t+4|0,!(~(a=e[r>>2])&a-16843009&-2139062144););for(;r=(t=r)+1|0,u[0|t];);}return t-A|0}function ja(A,t,r){var a,o=0,l=0,c=0;e[A+112>>2]=t,e[A+116>>2]=r,a=e[A+4>>2],o=e[A+44>>2]-a|0,e[A+120>>2]=o,e[A+124>>2]=o>>31,o=e[A+8>>2],t|r&&((0|r)>=(0|(c=(l=o-a|0)>>31))&t>>>0>=l>>>0|(0|r)>(0|c)||(o=t+a|0)),e[A+104>>2]=o}function uo(A,t){var r,a,o=0;if(L(+A),r=0|T(1),a=0|T(0),(0|(o=r>>>20&2047))!=2047){if(!o)return A==0?o=0:(A=uo(18446744073709552e3*A,t),o=e[t>>2]+-64|0),e[t>>2]=o,A;e[t>>2]=o-1022,P(0,0|a),P(1,-2146435073&r|1071644672),A=+j()}return A}function r0(A,t,r){return e[A+20>>2]!=e[A+28>>2]&&(rt[e[A+36>>2]](A,0,0),!e[A+20>>2])||(e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,rt[e[A+40>>2]](A,t,r,0),(0|xe)<0)?-1:(e[A+4>>2]=0,e[A+8>>2]=0,e[A>>2]=-17&e[A>>2],0)}function Zs(A,t){var r,a,o=0;return(a=1-(o=.5*(r=A*A)))+(1-a-o+(r*(r*(r*(2480158728947673e-20*r-.001388888888887411)+.0416666666666666)+(o=r*r)*o*(r*(-11359647557788195e-27*r+2087572321298175e-24)-27557314351390663e-23))-A*t))}function Js(A,t,r){var a=0,o=0;if(t)for(;r=r-1|0,o=A,A=xs(A,t,10),a=xe,d[0|r]=o-YA(A,a,10,0)|48,o=t>>>0>9,t=a,o;);if(A)for(;t=(A>>>0)/10|0,d[0|(r=r-1|0)]=A-R(t,10)|48,a=A>>>0>9,A=t,a;);return r}function fo(A,t){var r=0,a=0,o=0;e:if(A){for(;o=d[t+r|0],(a=e[(r<<2)+A>>2])&&(r=r+1|0,(0|o)==(0|a)););A:switch(a-34|0){case 0:case 5:break A;default:break e}if(!o)return 0}return 1}function Dn(A,t,r){var a,o=0;return $=a=$-16|0,!(64&t)&&(o=0,4259840&~t)||(e[a+12>>2]=r+4,o=e[r>>2]),e[a>>2]=o,e[a+4>>2]=0,(A=0|be(-100,0|A,32768|t,0|a))>>>0>=4294963201&&(e[56798]=0-A,A=-1),$=a+16|0,A}function go(A,t,r){var a=0,o=0,l=0;if(!r)return 0;e:if(a=u[0|A]){for(;;){if((o=u[0|t])&&!(!(r=r-1|0)|(0|a)!=(0|o))){if(t=t+1|0,a=u[A+1|0],A=A+1|0,a)continue;break e}break}l=a}return(255&l)-u[0|t]|0}function qs(A,t){var r,a=0;$=a=$-128|0,a=cA(a,0,128),d[a+98|0]=9,d[a+66|0]=9,d[a+34|0]=A,v[a+68>>1]=1,r=e[36125],e[a+104>>2]=r,e[a+72>>2]=r,e[a+40>>2]=e[144464+(A<<2)>>2],d[a+2|0]=9,e[a+8>>2]=r,XA(0,0,a+32|0,t,0),$=a+128|0}function Rs(A){var t=0,r=0,a=0;if(d[e[A>>2]]-48>>>0>=10)return 0;for(;a=e[A>>2],r=-1,t>>>0<=214748364&&(r=(0|(r=d[0|a]-48|0))>(2147483647^(t=R(t,10)))?-1:r+t|0),e[A>>2]=a+1,t=r,d[a+1|0]-48>>>0<10;);return t}function Tn(A,t){var r=0;if(!(!A|e[A>>2]-48>>>0>=10)){if(e[A>>2]-48>>>0<10)for(;r=(e[A>>2]+R(r,10)|0)-48|0,e[(A=A+4|0)>>2]-48>>>0<10;);(0|t)==1&&(r=(0|Kr(e[A>>2]))==115?R(r,1e3):r)}return r}function Nr(A){var t=0;t=1;e:{A:switch(0|wr(A)){case 30:if(t=0,(0|A)==160|(0|A)==8199|(0|A)==8239)break e;return 1;case 0:if(A-9>>>0<5)return 1;if((0|A)==133)break e;break;case 28:case 29:break e;default:break A}t=0}return t}function Gn(A,t,r){var a,o=0;return $=a=$-16|0,d[a+6|0]=0,d[a+7|0]=95,o=kr(o=t,t=a+8|0)+a|0,d[o+8|0]=32,d[o+9|0]=0,NA(A,a+7|0,r)||(d[a+7|0]=32,NA(A,t,r)||ft(A,t,r,20,0,0,0)),$=a+16|0,d[0|r]}function ns(A){var t=0,r=0;r=170;e:if(!((0|A)<170))for(;;){if((0|A)==(0|r))return Q[101616+(t<<1|2)>>1];if((2147483646&(t=t+2|0))==124)break e;if(!((0|(r=Q[101616+(t<<1)>>1]))<=(0|A)))break}return 0}function YA(A,t,r,a){var o,l,c,f,m=0,E=0;return f=R(m=r>>>16|0,E=A>>>16|0),m=(65535&(E=((c=R(o=65535&r,l=65535&A))>>>16|0)+R(E,o)|0))+R(m,l)|0,xe=(R(t,r)+f|0)+R(A,a)+(E>>>16)+(m>>>16)|0,65535&c|m<<16}function Kr(A){var t=0,r=0,a=0,o=0;for(t=2778;;){if((0|(r=e[1040+((a=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1048+(a<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?a+1|0:o))<=(0|(t=r?t:a-1|0))))break}return A}function $s(A){var t=0,r=0,a=0,o=0;for(t=2778;;){if((0|(r=e[1040+((a=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1044+(a<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?a+1|0:o))<=(0|(t=r?t:a-1|0))))break}return A}function Qa(A){var t,r=0;return $=t=$-112|0,(A=0|Ze(0|A,0|t))>>>0>=4294963201&&(e[56798]=0-A,A=-1),r=0-e[56798]|0,A||(r=-31,(61440&e[t+12>>2])!=16384&&(r=e[t+40>>2])),$=t+112|0,A=r}function nt(A,t,r){var a;if(!(a=e[A+16>>2]))return e[A+36>>2]=1,e[A+24>>2]=r,void(e[A+16>>2]=t);e:{if((0|t)==(0|a)){if(e[A+24>>2]!=2)break e;return void(e[A+24>>2]=r)}d[A+54|0]=1,e[A+24>>2]=2,e[A+36>>2]=e[A+36>>2]+1}}function Qr(A,t,r,a,o){var l;if($=l=$-256|0,!(73728&o|(0|r)<=(0|a))){if(cA(l,255&t,(r=(a=r-a|0)>>>0<256)?a:256),!r)for(;Lr(A,l,256),(a=a-256|0)>>>0>255;);Lr(A,l,a)}$=l+256|0}function ms(A,t,r){var a=0;e:{if(A){if(a=e[A>>2]){HA(e[a+4>>2]),a=e[A>>2];break e}if(a=gt(16),e[A>>2]=a,a)break e;t=48}return t}return e[a>>2]=0,e[a+4>>2]=zi(r),A=e[A>>2],e[A+8>>2]=0,e[A+12>>2]=0,t}function nr(A){var t=0,r=0;Ir(A),rt[e[A+12>>2]](A),1&d[0|A]||((t=e[A+52>>2])&&(e[t+56>>2]=e[A+56>>2]),(r=e[A+56>>2])&&(e[r+52>>2]=t),e[56816]==(0|A)&&(e[56816]=r),HA(e[A+96>>2]),HA(A))}function os(A){var t=0,r=0;t=1;e:{A:{r:{s:switch((r=wr(A))-9|0){case 1:break e;case 6:case 18:break r;case 0:break s;default:break A}return(0|Kr(A))!=(0|A)}return pA(A,r)>>>15&1}t=0}return t}function Pn(A){var t,r,a,o=0,l=0;if(a=TA(A)+1|0,o=e[33282],(0|(r=(t=e[33287])+a|0))>=e[33286]){if(!(o=xr(o,l=r+1e3|0)))return-1;e[33286]=l,e[33282]=o}return ct(o+t|0,A,a),e[33287]=r,t}function Xi(A){var t=0;return t=e[A+72>>2],e[A+72>>2]=t-1|t,8&(t=e[A>>2])?(e[A>>2]=32|t,-1):(e[A+4>>2]=0,e[A+8>>2]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],0)}function po(A,t,r,a){e:if(A){A:switch(t+2|0){case 0:return void(d[0|A]=r);case 1:return void(v[A>>1]=r);case 2:case 3:return void(e[A>>2]=r);case 5:break A;default:break e}e[A>>2]=r,e[A+4>>2]=a}}function Gi(A,t,r,a,o,l,c,f,m){var E;$=E=$-16|0,or(E,t,r,a,o,l,c,f,-2147483648^m),a=e[E>>2],r=e[E+4>>2],t=e[E+12>>2],e[A+8>>2]=e[E+8>>2],e[A+12>>2]=t,e[A>>2]=a,e[A+4>>2]=r,$=E+16|0}function gr(A,t){var r=0,a=0;e:if(!(!(r=u[0|A])|(0|r)!=(0|(a=u[0|t]))))for(;;){if(a=u[t+1|0],!(r=u[A+1|0]))break e;if(t=t+1|0,A=A+1|0,(0|r)!=(0|a))break}return r-a|0}function Pi(A,t){var r=0,a=0,o=0;if(!(r=e[A>>2]))return 84399;if(e[A+4>>2]!=(0|t))for(;;){if(!(r=e[(a=A+8|0)>>2]))return 84399;if(o=A,A=a,e[o+12>>2]==(0|t))break}return r}function ho(A,t,r){var a=0,o=0,l=0;e:if(r){for(;;){if(!(!(a=e[t>>2])|!(o=e[A>>2])|(0|a)!=(0|o))){if(t=t+4|0,A=A+4|0,r=r-1|0)continue;break e}break}l=o-a|0}return l}function pa(A){var t,r=0,a=0;if((0|(t=e[36115]))>0)for(;;){if(!(!(a=e[144464+(r<<2)>>2])|e[a>>2]!=(0|A)))return u[a+10|0];if((0|t)==(0|(r=r+1|0)))break}return 0}function ei(A){var t,r;return(A=(t=e[33175])+(r=A+7&-8)|0)>>>0<=t>>>0&&r||A>>>0>ee.byteLength/65536<<16>>>0&&!(0|QA(0|A))?(e[56798]=48,-1):(e[33175]=A,t)}function Ai(A){var t=0;e:if(!((t=wr(A))>>>0>27)){if(!(1<>>14&1}return 0}function Zi(A,t){var r=0;return d[0|A]=t>>>24,d[0|(r=(t>>>0>16777215)+A|0)]=t>>>16,d[0|(r=r+!!(16711680&t)|0)]=t>>>8,d[0|(r=r+!!(65280&t)|0)]=t,d[r+!!(255&t)|0]=0,A}function Qn(A,t){e:if((0|(A=zr(A,t)))<=268437502){if(!A|(0|A)==268436479|(0|A)!=268437247)break e;return}}function mo(A){var t=0;return t=e[A>>2]-1|0,(t=d[121600+(R(0-t&t,124511785)>>>27|0)|0])||(A=e[A+4>>2],t=(A=d[121600+(R(0-A&A,124511785)>>>27|0)|0])?A+32|0:0),t}function Qi(A){var t=0,r=0,a=0;e:{if(!((t=wr(A))>>>0>27)){if(r=1,116672&(a=1<>>10&1}r=0}return r}function ls(A){var t=0,r=0,a=0;e:{if(!((t=wr(A))>>>0>27)){if(r=1,34752&(a=1<>>10&1}r=0}return r}function Sn(){var A,t=0;(A=e[56797])&&((t=e[A+8>>2])&&rt[e[e[t>>2]+12>>2]](t),(t=e[A+4>>2])&&rt[e[e[t>>2]+16>>2]](t),HA(A)),e[56797]=0,e[56797]=Ia()}function Fn(A,t){var r=0;return A&&(r=YA(A,0,t,0),(A|t)>>>0<65536||(r=xe?-1:r)),!(A=gt(r))|!(3&u[A-4|0])||cA(A,0,r),A}function On(A,t){var r,a;a=e[130128+(t-R(r=(0|t)/100|0,100)<<2)>>2],e[A+100>>2]=a,e[A+96>>2]=a,t+99>>>0>=199&&(e[A+100>>2]=e[130128+(r<<2)>>2])}function Co(A){var t=0;(t=gt(1344))&&(A=ct(t,A,1344),t=216192+(e[50758]<<4)|0,e[t>>2]=11,e[t+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function cs(A,t){var r=0;e:if(r=e[A>>2])for(;;){if(t&&!gr(t,r))break e;if(!(r=e[(A=A+8|0)>>2]))break}return e[A+4>>2]}function ti(A){var t,r=0;return $=t=$-16|0,r=-1,Bn(A)||(0|rt[e[A+32>>2]](A,t+15|0,1))==1&&(r=u[t+15|0]),$=t+16|0,r}function Tr(A,t){var r=0,a=0;if(t){for(;a=A,(r=e[A>>2])&&(A=a+4|0,(0|t)!=(0|r)););return r?a:0}return(Ln(A)<<2)+A|0}function Si(A,t){var r=0,a=0;if(r=Q[A>>1])for(;;){if(a=a+1|0,(0|t)==(0|r))return a;if(!(r=Q[(a<<1)+A>>1]))break}return 0}function Fi(A,t){var r=0,a=0;t>>>0<=31?(a=e[A>>2],r=A+4|0):(t=t-32|0,r=A),r=e[r>>2],e[A>>2]=a<>2]=r<>>32-t}function Oi(A,t){var r=0,a=0;r=e[A+4>>2],t>>>0<=31?a=e[A>>2]:(t=t-32|0,a=r,r=0),e[A+4>>2]=r>>>t,e[A>>2]=r<<32-t|a>>>t}function ha(A){var t=0;A=A||1;e:{for(;;){if(t=gt(A))break e;if(!(t=e[57276]))break;rt[0|t]()}BA(),K()}return t}function _i(A){return A>>>0<=131071?u[117424+(A>>>3&31|u[117424+(A>>>8|0)|0]<<5)|0]>>>(7&A)&1:A>>>0<196606}function _n(A,t,r,a,o,l,c,f,m){e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=65535&o|(m>>>16&32768|o>>>16&32767)<<16}function qa(A,t,r){return r?(0|A)==(0|t)?1:!gr(e[A+4>>2],e[t+4>>2]):e[A+4>>2]==e[t+4>>2]}function zn(A){var t=0;(0|(t=0|Ne(-100,0|A,0)))==-31&&(t=0|Ee(0|A)),t>>>0>=4294963201&&(e[56798]=0-t)}function Nn(){var A;A=gt(84)+80|0,e[A>>2]=125420,e[A>>2]=125380,e[A>>2]=125400,dA(0|A,125512,9),K()}function Ji(A){var t,r;return t=Ui(A),r=Ui(A),Ui(A)<<16&16711680|r<<8&65280|255&t|Ui(A)<<24}function ri(A){var t=0;return A?(t=1,A-9472>>>0<160|A-65529>>>0<7||(t=Nr(A)),t):0}function bo(A,t){var r;return r=t>>31,A=(e[A+76>>2],r0(A,t,r))}function Ln(A){var t=0,r=0;for(r=A;r=(t=r)+4|0,e[t>>2];);return t-A>>2}function Io(A,t){return d[0|A]=t,d[A+4|0]=0,d[A+3|0]=t>>>24,d[A+2|0]=t>>>16,d[A+1|0]=t>>>8,A}function ia(A,t){var r=0;return(-1>>>(r=31&t)&A)<>>A}function ai(A,t){var r=0;return(0|A)==73&&(r=305,u[t+173|0])||(r=Kr(A)),r}function na(A){e[36114]!=(0|A)&&(e[36115]=0,_t(A),e[36114]=A,e[36115]=e[36115]+1)}function jn(A){return A?e[34460]+A|0:(qi(85328,20,e[30450]),e[32320])}function zi(A){var t,r;return(r=gt(t=TA(A)+1|0))?ct(r,A,t):0}function wo(){var A;e[33287]=0,(A=e[33282])&&(HA(A),e[33286]=0,e[33282]=0)}function Ar(A,t,r){var a;$=a=$-16|0,e[a+12>>2]=r,ye(A,t,r),$=a+16|0}function qi(A,t,r){A=(e[r+76>>2],so(A,t,r))}function Ws(A,t){return t?A<<24|(65280&A)<<8|A>>>8&65280|A>>>24:A}function si(A){return A=A-8212>>>0>=12?Si(93856,A):1}function ko(A){var t=0;A&&((t=e[A+688>>2])&&HA(t),HA(A))}function Eo(A){return A=(0|A)<=127?Ra(87712,A):0}function $i(A){return!(A=u[0|A]?1:ga(A,A+1|0,3))}function Mo(A){(A=(0|(A=0|Se(0|A)))!=27?A:0)&&(e[56798]=A)}function Vs(A,t,r){return A|=0,t|=0,0|rt[0|(r|=0)](A,t)}function Ra(A,t){return A=_s(A,t),u[0|A]==(255&t)?A:0}function Rn(A,t){return Fs(A,t,2147483647),xe=EA,mA}function en(A){return A?31-Te(A-1^A)|0:32}function Lr(A,t,r){32&u[0|A]||so(t,r,A)}function Wt(A,t,r){d[(qt(A,t,r)+r|0)-1|0]=0}function ii(A){return is(A,188776,189328)}function ni(A,t){t|=0,e[(A|=0)+8>>2]=t}function ye(A,t,r){return Jt(A,t,r,0,0)}function vo(A){return e[(A|=0)+12>>2]}function An(A){return e[(A|=0)+16>>2]}function Wn(A){return e[(A|=0)+20>>2]}function Ni(A){return e[(A|=0)+8>>2]}function oi(A){return e[(A|=0)+4>>2]}function Sa(A){return e[(A|=0)>>2]}function xs(A,t,r){return Fs(A,t,r)}function li(A){(A|=0)&&HA(A)}function Xr(A,t){_A(TA(A)+A|0,t)}function tn(A){return 0|(A|=0)}function Vn(A){return 0}function Ys(A){HA(A|=0)}function rn(A){}I(g=u,1024,"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"),I(g,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),I(g,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),I(g,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),I(g,81475,"AgAAAAAAACAAAAAAAAAAIA=="),I(g,81506,"IA=="),I(g,81522,"IAAAAAAAAAAg"),I(g,81618,"IA=="),I(g,81634,"IA=="),I(g,81650,"IAAAAAAAAAAg"),I(g,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),I(g,81728,"gAAAAAAAAACAAAAAAAAAAIA="),I(g,81760,"gAAAAAAAAACA"),I(g,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),I(g,81961,"FAAAAAAAAAAU"),I(g,81985,"FAAAAAAAAAAE"),I(g,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),I(g,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),I(g,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),I(g,82224,"gAAAAAAAAACA"),I(g,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),I(g,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),I(g,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),I(g,82625,"BAAAAAAAAAAE"),I(g,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),I(g,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),I(g,83097,"BAAAAAAAAAAE"),I(g,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),I(g,83288,"QA=="),I(g,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),I(g,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),I(g,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),I(g,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VTLlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAkdTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdABHb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),I(g,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),I(g,94846,"TG9va3VwRGljdDIAAAAAAAAAgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAABQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsAGgHNAM4ADgEQAUMBRwHTANQAUAHWANcAWAFuAdoAcAHcAN0AYgHfAFUB4QDiAAMB5AA6AQcB5wANAekAGQHrABsB7QDuAA8BEQFEAUgB8wD0AFEB9gD3AFkBbwH6AHEB/AD9AGMB2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAmAdgCowCkAP3/JAGnAKgAMAFeAR4BNAGtAP3/ewGwACcBsgCzALQAtQAlAbcAuAAxAV8BHwE1Ab0A/f98AcAAwQDCAP3/xAAKAQgBxwDIAMkAygDLAMwAzQDOAM8A/f/RANIA0wDUACAB1gDXABwB2QDaANsA3ABsAVwB3wDgAOEA4gD9/+QACwEJAecA6ADpAOoA6wDsAO0A7gDvAP3/8QDyAPMA9AAhAfYA9wAdAfkA+gD7APwAbQFdAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAE4AVYBpAAoATsBpwCoAGABEgEiAWYBrQB9Aa8AsAAFAdsCVwG0ACkBPAHHArgAYQETASMBZwFKAX4BSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgAqARABRQFMATYB1ADVANYA1wDYAHIB2gDbANwAaAFqAd8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4AKwERAUYBTQE3AfQA9QD2APcA+ABzAfoA+wD8AGkBawHZAoAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBK0ADgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EFiFRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXASnAF4EXwSAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAD9//3//f+kAP3//f/9//3//f/9//3/DAatAP3//f/9//3//f/9//3//f/9//3//f/9//3/Gwb9//3//f8fBv3/IQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6Bv3//f/9//3//f9ABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBv3//f/9//3//f/9//3//f/9//3//f/9//3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAGCAZIKMArCCvIKYApwCoAKkAegOrAKwArQD9/xUgsACxALIAswCEA4UDhgO3AIgDiQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAP3/ogCjAKQApQCmAKcAqACpANcAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkA9wC7ALwAvQC+AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f8XINAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBf3//f8OIA8g/f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8AHgHRANIA0wDUANUA1gDXANgA2QDaANsA3AAwAV4B3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAB8B8QDyAPMA9AD1APYA9wD4APkA+gD7APwAMQFfAf8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAESASIBKgEoATYBpwA7ARABYAFmAX0BrQBqAUoBsAAFARMBIwErASkBNwG3ADwBEQFhAWcBfgEVIGsBSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgDPANAARQFMAdMA1ADVANYAaAHYAHIB2gDbANwA3QDeAN8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4A7wDwAEYBTQHzAPQA9QD2AGkB+ABzAfoA+wD8AP0A/gA4AYAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEOAg4DDgQOBQ4GDgcOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOGg4bDhwOHQ4eDh8OIA4hDiIOIw4kDiUOJg4nDigOKQ4qDisOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoO/f/9//3//f8/DkAOQQ5CDkMORA5FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsO/f/9//3//f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAdIKIAowCkAB4gpgCnANgAqQBWAasArACtAK4AxgCwALEAsgCzABwgtQC2ALcA+AC5AFcBuwC8AL0AvgDmAAQBLgEAAQYBxADFABgBEgEMAckAeQEWASIBNgEqATsBYAFDAUUB0wBMAdUA1gDXAHIBQQFaAWoB3AB7AX0B3wAFAS8BAQEHAeQA5QAZARMBDQHpAHoBFwEjATcBKwE8AWEBRAFGAfMATQH1APYA9wBzAUIBWwFrAfwAfAF+ARkggACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAh4DHqMACgELAQoepwCAHqkAgh4LHvIerQCuAHgBHh4fHiABIQFAHkEetgBWHoEeVx6DHmAe8x6EHoUeYR7AAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPAHQB0QDSANMA1ADVANYAah7YANkA2gDbANwA3QB2Ad8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wB1AfEA8gDzAPQA9QD2AGse+AD5APoA+wD8AP0AdwH/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAKEAogCjAKwgpQBgAacAYQGpAKoAqwCsAK0ArgCvALAAsQCyALMAfQG1ALYAtwB+AbkAugC7AFIBUwF4Ab8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwDQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEAQUBQQGsIB4gYAGnAGEBqQAYAqsAeQGtAHoBewGwALEADAFCAX0BHSC2ALcAfgENARkCuwBSAVMBeAF8AcAAwQDCAAIBxAAGAcYAxwDIAMkAygDLAMwAzQDOAM8AEAFDAdIA0wDUAFAB1gBaAXAB2QDaANsA3AAYARoC3wDgAOEA4gADAeQABwHmAOcA6ADpAOoA6wDsAO0A7gDvABEBRAHyAPMA9ABRAfYAWwFxAfkA+gD7APwAGQEbAv8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAEFAUEBrCAeIGABpwBhAakAGAKrAHkBrQB6AXsBsACxAAwBQgF9AR0gtgC3AH4BDQEZArsAUgFTAXgBfAHAAMEAwgACAcQABgHGAMcAyADJAMoAywDMAM0AzgDPABABQwHSANMA1ABQAdYAWgFwAdkA2gDbANwAGAEaAt8A4ADhAOIAAwHkAAcB5gDnAOgA6QDqAOsA7ADtAO4A7wARAUQB8gDzAPQAUQH2AFsBcQH5APoA+wD8ABkBGwL/AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/wEJAgkDCQUJBgkHCQgJCQkKCQsJDgkPCRAJDQkSCRMJFAkRCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCV8JMAkxCTIJMwk0CTUJNgk3CTgJOQkgAD4JPwlACUEJQglDCUYJRwlICUUJSglLCUwJSQlNCTwJZAn9//3//f/9//3/IAAwADEAMgAzADQANQA2ADcAOAA5AP3//f/9//3//f8CAAAAAAAAAAEAAAADAAAA//36+Pb08vDu7Oro5uTi4N7c2tjW1NLQzszKyMbEwsC+vLq4trSysK6sqqimpKKgnpyamJaUkpCOjIqIhoSCgH58enh2dHJwbmxqaGZkYmBeXFpYVlRSUE5MSkhGREJAPjw6ODY0MjAuLCooJiQiIB4cGhgWFBIQDgwKCAYEAgAAAgQGCAoMDhASFBYYGhweICIkJigqLC4wMjQ2ODo8PkBCREZISkxOUFJUVlhaXF5gYmRmaGpsbnBydHZ4enx+gIKEhoiKjI6QkpSWmJqcnqCipKaoqqyusLK0tri6vL7AwsTGyMrMztDS1NbY2tze4OLk5ujq7O7w8vT2+Pr9///06uDWzMO6saifl4+Hf3hxamNcVlBKRD85NC8rJiIeGhcTEA0LCAYEAgEAAAAAAAAAAQIDBAUHCAoMDhATFRcaHR8iJSgsLjAyNDY5Oz1AQkVHSkxPUVRXWl1fYmVoa25xdHh7foGFiIuPkpaZnaCkqKyvs7e7v8PHy8/T19vgz8zJxsPAvbm0sKunopyXkoyGgXt1b2ljXVdQSkQ+ODMtJyIcFxINCAQCAgEAAAAAAAEBAgMEBQcICgwNDxIUFhkbHiEkJyotMDQ2ODo8P0FDRkhLTVBSVVhaXWBjZmlsb3J1eHt+gYWIi4+SlpmdoKSorK+zt7u/w8fLz9PX2+D/+fTu6eTf2tXQy8bBvbizr6qmoZ2ZlZCMiISAfXl1cW5qZ2NgXVlWU1BNSkdEQT48OTc0Mi8tKygmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),I(g,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),I(g,99973,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4gmJmZmpydn6Gkp6mssLO2ur7BxcnN0dTY3N/j5urt8PL19/n7/P3+/v////////79+/r49vPx7uzp5uTg3drX09DMyMTAvLi0sKyno5+alpGNiIR/e3ZybWllYFxYVFBMSERAPDk1Mi8rKCYjIB0aFxUSDw0KCAcFAwIBAAAAAAD+///////+/fz6+Pb08e7r6OXh3trW0s3JxL+6trCrpqGclpGLhoB7dW9qZF9ZVE9JRD86NTArJiIdGRURDQoHBAMBAAAAAAAAAAABAQIEBQcJCw0QEhUYGx4iJSktMTU6PkNITFFXW15iZWhrbnF0dnh7fH6AgYKDg4SEg4OCgXJycXFwb21samhmZGFfXFpXVFFOS0hFQj87ODUyLywpJiMgHRsYFhQSEA4MCwoJCAcHBwcHBgUFBQUFBQUFBQYHBwgJCgwNDxASFBYYGx0gIyYpLC8zNzs/Q0dMUVZbYGVqb3R5f4SJj5Wboaets7rAx87V3OPq8fX3+vz9/v///v79/fz7+/r6+fj49/f29vX09PPz8vLx8PDv7u7t7Ovq6uno5+bl5OPi4eDe3dzb2djW1dPS0M7My8nHxcPAvry5t7Wyr62qp6ShnpqXlJCNiYWBfXl1cW1oZGFeW1dUUU1KRkNAPDk1Mi4qJyMfHBgUEQ0LCQcFBAMCAQAAAAAAAAAAAQEBAgIDAwQEBQYGBwgICQoLDAwNDg8QERITFBYXGBkbHB0fICIjJSYoKSstLzAyNDY4Ojw+QEJER0lLTlBSVVdaXV9iZWdqbXBzdnl8f4KGiYyQk5aanaCjpqmsr7K1uLu+wcTHys3Q09bZ3N/i5Ofp7O7w8vT2+Pr7/X9/f4CBg4SHiYyPkpaZnaGlqq6yt7vAxcnN0tba3uLm6u3w8/X4+vv8/f7+/fz7+ff08Ozn4tzVzsa9tKmekoiCfXdybGZgWlROSUI8NzItKCQfGxgUEQ4MCQcGBQQEBAQFBggKDRAUGB0jKS83PkdQWmRwfIOFiIqMjo+RkpOTAEAIAEYSAAAAAAAAGAwAAARQEgZOFgAAAAAAACI0AAAEWBYGUhYAAAAAAAAiQAAAAFwIAFxQAAAAAAAATAgBAABWBABeQgAAAAAAACIKAAAAPgoAPhQAAAAAAAAcEAAABEQSBkQWAAAAAAAAHiwAAAZAEABCIAAAAAAAACASAAACRC4AKiAAAAAAAAAuOgAABE4YBkgWAAAAAAAAKjQAAARYIgBAIAAAAAAAAC5SAAAAOAwAOBQAAAAAAAAYDAAAAEYSAEYYAAAAAAAAIBQAAAkAAAAJAAAAEAAAABAAAAAQAAAAFwAAADcAAAAgAAAAACgYCAAKNCAUCgYmGA4EAAYAAAAHAAAACQAAAAkAAAAUAAAAFAAAABQAAAAZAAAA5iAUCA=="),I(g,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),I(g,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),I(g,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),I(g,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),I(g,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),I(g,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),I(g,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),I(g,102708,"rwAAAGQAAAAyAAAAMg=="),I(g,102744,"ZA=="),I(g,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),I(g,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAnMCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),I(g,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),I(g,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),I(g,103790,"LQAAAAAAAAAu"),I(g,103816,"Lw=="),I(g,103833,"MAAAAAAAMQ=="),I(g,103856,"Mg=="),I(g,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),I(g,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),I(g,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),I(g,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),I(g,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),I(g,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),I(g,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),I(g,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),I(g,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),I(g,105170,"MgAz"),I(g,105195,"NAAAAAAANQA2"),I(g,105226,"NwA4ADkArQABAAwgAQ=="),I(g,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),I(g,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),I(g,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),I(g,105540,"MgAAAK8AAABkAAAAMg=="),I(g,105568,"rw=="),I(g,105596,"EBAKEBY="),I(g,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),I(g,105668,"BA=="),I(g,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),I(g,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),I(g,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),I(g,106341,"RvIpAC8ALwBF8ikALwAuAEXyKAAuAC0ANPIoAC0tLAA08igAKysrADTyKAAqKioANPIoACkpKQA08igAAOf/zv+1/5z/g/9q/1H/N/8e/wX/7P7T/rr+of6I/m/+Vf48/iP+Cv7x/dj9v/2m/Y39dP1b/UL9Kf0Q/ff83vzF/Kz8k/x6/GH8SPwv/Bb8/fvk+8v7svuZ+4D7Z/tP+zb7HfsE++v60vq6+qH6iPpv+lf6Pvol+g369Pnb+cP5qvmR+Xn5YPlH+S/5Fvn++OX4zfi0+Jz4g/hr+FP4Ovgi+Ar48ffZ98H3qPeQ93j3YPdH9y/3F/f/9uf2z/a39p/2h/Zv9lf2P/Yn9g/29/Xf9cf1sPWY9YD1aPVR9Tn1IfUK9fL02/TD9Kz0lPR99GX0TvQ29B/0CPTw89nzwvOr85TzfPNl807zN/Mg8wnz8vLb8sTyrvKX8oDyafJS8jzyJfIO8vjx4fHL8bTxnvGH8XHxW/FE8S7xGPEB8evw1fC/8Knwk/B98GfwUfA78CXwEPD67+Tvzu+576Pvje9472LvTe847yLvDe/47uLuze647qPuju557mTuT+467iXuEO777eft0u297antlO2A7WvtV+1C7S7tGu0F7fHs3ezJ7LXsoeyN7HnsZexR7D3sKuwW7ALs7+vb68jrtOuh643reutn61TrQest6xrrB+v06uLqz+q86qnqluqE6nHqX+pM6jrqJ+oV6gPq8One6czpuumo6ZbphOly6WHpT+k96SzpGukI6ffo5ujU6MPosuig6I/ofuht6FzoS+g76CroGegI6Pjn5+fX58bntuel55Xnhed152XnVedF5zXnJecV5wXn9ubm5tfmx+a45qjmmeaK5nvma+Zc5k3mPuYw5iHmEuYD5vXl5uXY5cnlu+Wt5Z7lkOWC5XTlZuVY5UrlPOUv5SHlE+UG5fjk6+Te5NDkw+S25KnknOSP5ILkdeRo5FzkT+RD5DbkKuQd5BHkBeT54+3j4ePV48njveOx46XjmuOO44Pjd+Ns42HjVuNL4z/jNOMq4x/jFOMJ4//i9OLq4t/i1eLK4sDituKs4qLimOKO4oTie+Jx4mfiXuJU4kviQuI54i/iJuId4hTiDOID4vrh8eHp4eDh2OHQ4cfhv+G34a/hp+Gf4Zfhj+GI4YDheOFx4WrhYuFb4VThTeFG4T/hOOEx4SrhJOEd4RbhEOEK4QPh/eD34PHg6+Dl4N/g2eDU4M7gyeDD4L7guOCz4K7gqeCk4J/gmuCV4JHgjOCH4IPgfuB64HbgcuBu4GrgZuBi4F7gWuBX4FPgT+BM4EngReBC4D/gPOA54DbgM+Ax4C7gK+Ap4CfgJOAi4CDgHuAc4BrgGOAW4BTgEuAR4A/gDuAN4AvgCuAJ4AjgB+AG4AXgBeAE4APgA+AC4ALgAuAC4ALgAeAC4ALgAuAC4ALgA+AD4ATgBeAF4AbgB+AI4AngCuAL4A3gDuAP4BHgEuAU4BbgGOAa4BzgHuAg4CLgJOAn4CngK+Au4DHgM+A24DngPOA/4ELgReBJ4EzgT+BT4FfgWuBe4GLgZuBq4G7gcuB24HrgfuCD4IfgjOCR4JXgmuCf4KTgqeCu4LPguOC+4MPgyeDO4NTg2eDf4OXg6+Dx4Pfg/eAD4QrhEOEW4R3hJOEq4THhOOE/4UbhTeFU4VvhYuFq4XHheOGA4Yjhj+GX4Z/hp+Gv4bfhv+HH4dDh2OHg4enh8eH64QPiDOIU4h3iJuIv4jniQuJL4lTiXuJn4nHie+KE4o7imOKi4qzituLA4sri1eLf4uri9OL/4gnjFOMf4yrjNOM/40vjVuNh42zjd+OD447jmuOl47HjvePJ49Xj4ePt4/njBeQR5B3kKuQ25EPkT+Rc5GjkdeSC5I/knOSp5Lbkw+TQ5N7k6+T45AblE+Uh5S/lPOVK5VjlZuV05YLlkOWe5a3lu+XJ5djl5uX15QPmEuYh5jDmPuZN5lzma+Z75ormmeao5rjmx+bX5ubm9uYF5xXnJec150XnVedl53XnheeV56XntufG59fn5+f45wjoGegq6DvoS+hc6G3ofuiP6KDosujD6NTo5uj36AjpGuks6T3pT+lh6XLphOmW6ajpuunM6d7p8OkD6hXqJ+o66kzqX+px6oTqluqp6rzqz+ri6vTqB+sa6y3rQetU62freuuN66HrtOvI69vr7+sC7BbsKuw97FHsZex57I3soey17Mns3ezx7AXtGu0u7ULtV+1r7YDtlO2p7b3t0u3n7fvtEO4l7jruT+5k7nnuju6j7rjuze7i7vjuDe8i7zjvTe9i73jvje+j77nvzu/k7/rvEPAl8DvwUfBn8H3wk/Cp8L/w1fDr8AHxGPEu8UTxW/Fx8YfxnvG08cvx4fH48Q7yJfI88lLyafKA8pfyrvLE8tvy8vIJ8yDzN/NO82XzfPOU86vzwvPZ8/DzCPQf9Db0TvRl9H30lPSs9MP02/Ty9Ar1IfU59VH1aPWA9Zj1sPXH9d/19/UP9if2P/ZX9m/2h/af9rf2z/bn9v/2F/cv90f3YPd495D3qPfB99n38fcK+CL4OvhT+Gv4g/ic+LT4zfjl+P74Fvkv+Uf5YPl5+ZH5qvnD+dv59PkN+iX6PvpX+m/6iPqh+rr60vrr+gT7Hfs2+0/7Z/uA+5n7svvL++T7/fsW/C/8SPxh/Hr8k/ys/MX83vz3/BD9Kf1C/Vv9dP2N/ab9v/3Y/fH9Cv4j/jz+Vf5v/oj+of66/tP+7P4F/x7/N/9R/2r/g/+c/7X/zv/n/wAAGQAyAEsAZAB9AJYArwDJAOIA+wAUAS0BRgFfAXgBkQGrAcQB3QH2AQ8CKAJBAloCcwKMAqUCvgLXAvACCQMiAzsDVANtA4YDnwO4A9ED6gMDBBwENQROBGcEgASZBLEEygTjBPwEFQUuBUYFXwV4BZEFqQXCBdsF8wUMBiUGPQZWBm8GhwagBrkG0QbqBgIHGwczB0wHZAd9B5UHrQfGB94H9gcPCCcIPwhYCHAIiAigCLkI0QjpCAEJGQkxCUkJYQl5CZEJqQnBCdkJ8QkJCiEKOQpQCmgKgAqYCq8KxwrfCvYKDgslCz0LVAtsC4MLmwuyC8oL4Qv4CxAMJww+DFUMbAyEDJsMsgzJDOAM9wwODSUNPA1SDWkNgA2XDa4NxA3bDfINCA4fDjUOTA5iDnkOjw6lDrwO0g7oDv8OFQ8rD0EPVw9tD4MPmQ+vD8UP2w/wDwYQHBAyEEcQXRBzEIgQnhCzEMgQ3hDzEAgRHhEzEUgRXRFyEYcRnBGxEcYR2xHwEQUSGRIuEkMSVxJsEoASlRKpEr4S0hLmEvsSDxMjEzcTSxNfE3MThxObE68TwxPWE+oT/hMRFCUUOBRMFF8UcxSGFJkUrBS/FNMU5hT5FAwVHhUxFUQVVxVqFXwVjxWhFbQVxhXZFesV/RUQFiIWNBZGFlgWahZ8Fo4WnxaxFsMW1BbmFvgWCRcaFywXPRdOF2AXcReCF5MXpBe1F8UX1hfnF/gXCBgZGCkYOhhKGFsYaxh7GIsYmxirGLsYyxjbGOsY+xgKGRoZKRk5GUgZWBlnGXYZhRmVGaQZsxnCGdAZ3xnuGf0ZCxoaGigaNxpFGlMaYhpwGn4ajBqaGqgathrEGtEa3xrtGvoaCBsVGyIbMBs9G0obVxtkG3EbfhuLG5gbpBuxG70byhvWG+Mb7xv7GwccExwfHCscNxxDHE8cWxxmHHIcfRyJHJQcnxyqHLUcwRzMHNYc4RzsHPccAR0MHRYdIR0rHTYdQB1KHVQdXh1oHXIdfB2FHY8dmR2iHawdtR2+Hccd0R3aHeMd7B30Hf0dBh4PHhceIB4oHjAeOR5BHkkeUR5ZHmEeaR5xHngegB6IHo8elh6eHqUerB6zHroewR7IHs8e1h7cHuMe6h7wHvYe/R4DHwkfDx8VHxsfIR8nHywfMh83Hz0fQh9IH00fUh9XH1wfYR9mH2sfbx90H3kffR+CH4Yfih+OH5Iflh+aH54foh+mH6kfrR+xH7Qftx+7H74fwR/EH8cfyh/NH88f0h/VH9cf2R/cH94f4B/iH+Qf5h/oH+of7B/uH+8f8R/yH/Mf9R/2H/cf+B/5H/of+x/7H/wf/R/9H/4f/h/+H/4f/h//H/4f/h/+H/4f/h/9H/0f/B/7H/sf+h/5H/gf9x/2H/Uf8x/yH/Ef7x/uH+wf6h/oH+Yf5B/iH+Af3h/cH9kf1x/VH9Ifzx/NH8ofxx/EH8Efvh+7H7cftB+xH60fqR+mH6Ifnh+aH5Yfkh+OH4ofhh+CH30feR90H28fax9mH2EfXB9XH1IfTR9IH0IfPR83HzIfLB8nHyEfGx8VHw8fCR8DH/0e9h7wHuoe4x7cHtYezx7IHsEeuh6zHqwepR6eHpYejx6IHoAeeB5xHmkeYR5ZHlEeSR5BHjkeMB4oHiAeFx4PHgYe/R30Hewd4x3aHdEdxx2+HbUdrB2iHZkdjx2FHXwdch1oHV4dVB1KHUAdNh0rHSEdFh0MHQEd9xzsHOEc1hzMHMEctRyqHJ8clByJHH0cchxmHFscTxxDHDccKxwfHBMcBxz7G+8b4xvWG8obvRuxG6QbmBuLG34bcRtkG1cbShs9GzAbIhsVGwgb+hrtGt8a0RrEGrYaqBqaGowafhpwGmIaUxpFGjcaKBoaGgsa/RnuGd8Z0BnCGbMZpBmVGYUZdhlnGVgZSBk5GSkZGhkKGfsY6xjbGMsYuxirGJsYixh7GGsYWxhKGDoYKRgZGAgY+BfnF9YXxRe1F6QXkxeCF3EXYBdOFz0XLBcaFwkX+BbmFtQWwxaxFp8WjhZ8FmoWWBZGFjQWIhYQFv0V6xXZFcYVtBWhFY8VfBVqFVcVRBUxFR4VDBX5FOYU0xS/FKwUmRSGFHMUXxRMFDgUJRQRFP4T6hPWE8MTrxObE4cTcxNfE0sTNxMjEw8T+xLmEtISvhKpEpUSgBJsElcSQxIuEhkSBRLwEdsRxhGxEZwRhxFyEV0RSBEzER4RCBHzEN4QyBCzEJ4QiBBzEF0QRxAyEBwQBhDwD9sPxQ+vD5kPgw9tD1cPQQ8rDxUP/w7oDtIOvA6lDo8OeQ5iDkwONQ4fDggO8g3bDcQNrg2XDYANaQ1SDTwNJQ0ODfcM4AzJDLIMmwyEDGwMVQw+DCcMEAz4C+ELyguyC5sLgwtsC1QLPQslCw4L9grfCscKrwqYCoAKaApQCjkKIQoJCvEJ2QnBCakJkQl5CWEJSQkxCRkJAQnpCNEIuQigCIgIcAhYCD8IJwgPCPYH3gfGB60HlQd9B2QHTAczBxsHAgfqBtEGuQagBocGbwZWBj0GJQYMBvMF2wXCBakFkQV4BV8FRgUuBRUF/ATjBMoEsQSZBIAEZwROBDUEHAQDBOoD0QO4A58DhgNtA1QDOwMiAwkD8ALXAr4CpQKMAnMCWgJBAigCDwL2Ad0BxAGrAZEBeAFfAUYBLQEUAfsA4gDJAK8AlgB9AGQASwAyABkAMAAAADAAAABAAAAAUAAAAJAAAACgAAAAsAAAAMAAAACAm7XL3Ojt7Obczr+wo5iQjIuMj5KUlZKMg3hpWUk8MSopLTZEVml9j5+qsbKtpJaHeGlcU09PVV5reoiWoquwsa6ooJiRi4iJjZSdqLK7wMG9tKWSfGNKMh4OBQIFDx4wRFltf4yWnJ+fnZuZmZyhqbO/ytXc4N7YzLumj3dgSzouKCkvOkhZanqGkJSVkYmAdWtiXFpcYWl0gIqUmp6dmJCGfHFoYmBja3iIm6/C0t/m5+LXxrKchG9bS0A5Nzg9Q0pQVFZVUk1IQj8+QUlWZ3yTq8PZ6vb8+/Tn1cCqlIBxZF1aXGFocHd9f397dGthV05IRkhOWWZ1hJOfp6uqpJmLe2pbTkZDRU1aa3+SprjFz9PSzcS5raGWjomHh4qNkZKRjIR4aFVBLhwOBQEFDx80TWiBmrDBzdPT0Mi/taukn5ydoKWqrrGwq6OWh3ZjUUI2Ly0xOkhZa36OnKaqqaOYintsXVJKSEpQWmd1gi0AAAAmAAAALQAAAC0AAAA3AAAALQ=="),I(g,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),I(g,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),I(g,111324,"qMtoQQAAAACoy2jBAAAAAAAAAAAXCtQJkglQCQ8JzgiPCE8IEwjVB5oHYgcoB/MGvgaLBloGKwb9BdMFqQWBBVwFOAUWBfcE1wS7BKAEhgRuBFcEQQQtBBkEBwT1A+QD1APFA7YDqAOZA40DfwNxA2UDVwNLAz4DMgMkAxgDCwP+AvIC5ALYAssCvgKxAqQClwKLAn0CcgJkAlkCTAJAAjQCKAIcAhICBQL7AfAB5QHbAdABxgG7AbIBqAGeAZQBigGBAXcBbgFjAVsBUAFIAT0BNAErASABGAENAQQB+gDwAOcA3ADUAMgAwAC1AKwAoQCYAI4AhQB7AHEAaQBeAFYATABDADkAMQAnAB4AFgALAAQA+//y/+n/4P/X/87/xP+7/7L/qf+g/5X/jf+C/3r/cP9m/1z/Uv9J/z//Nf8r/yL/F/8O/wT/+v7x/uf+3f7T/sr+wP62/q3+o/6b/pD+h/59/nP+av5f/lb+TP5C/jj+Lf4j/hn+Df4D/vf97P3h/dX9yf29/bH9pf2Y/Yz9f/1z/Wb9Wf1M/T/9M/0k/Rn9Cv3//PH85fzY/Mz8vvyz/KT8mPyL/H78cfxi/FX8Rfw4/Cb8GfwG/Pb74vvQ+7r7pfuO+3b7XPtB+yT7Bvvl+sT6n/p5+lP6KPr++dD5oflw+Tz5CfnR+Jr4YPgm+Oj3q/ds9yz36/aq9mj2Jvbj9bAEdgRABA4E3wO0A4sDZQNBAx8DAAPiAsYCqwKSAnoCZAJOAjoCJwIVAgMC8wHjAdQBxgG4AasBnwGTAYcBfAFyAWgBXgFVAUwBQwE7ATMBLAEkAR0BFgEQAQkBAwH9APcA8gDtAOcA4gDdANkA1ADQAMwAxwDDAMAAvAC4ALQAsQCuAKoApwCkAKEAngCbAJkAlgCTAJEAjgCMAIkAhwCFAIMAgAB+AHwAegB4AHcAdQBzAHEAbwBuAGwAagBpAGcAZgBkAGMAYQBgAF8AXQBcAFsAWgBYAFcAVgBVAFQAUwBSAFAATwBOAE0ATABLAEsASgBJAEgARwBGAEUARABEAEMAQgBBAEAAQAA/AD4APQA9ADwAOwA7ADoAOQA5ADgAOAA3ADcANgA2ADUANQA0ADQAMwAzADIAMgAxADEAMAAwAC8ALwAuAC4ALQAtACwALAArACsAKgAqACkAKQApACkAKAAoACcAJwAmACYAJgAmACUAJQAkACQAJAAkACMAIwAjACMAIgAiACEAIQAhACEAIAAgACAAIAAfAB8AHwAfAB4AHgAeAB4AHQAdAB0AHQAcABwAHAAcABsAGwAxNkZyYW1lTWFuYWdlckltcGwAMTJGcmFtZU1hbmFnZXIAMjNTcGVlY2hXYXZlR2VuZXJhdG9ySW1wbAAxOVNwZWVjaFdhdmVHZW5lcmF0b3IAMTNXYXZlR2VuZXJhdG9y"),I(g,112416,"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"),I(g,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),I(g,115390,"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gryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/EhETFBUWFxgZGhscHR4fICERIiMkESUmJygpKissES0uLxAQMBAQEBAQEBAxMjMQNDUQEBERERERERERERERERERERERERERERERERE2ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERNxERERE4ETk6Ozw9PhERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEUBBEUJDREVGR0hJShFLTE1OT1BREFJTVFVWV1hZWltcXRBeX2AQERERYWJjEBAQEBAQEBAQEBERERFkEBAQEBAQEBAQEBAQEBAQERFlEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERFmZxAQaGkREREREREREREREREREREREREREREREWoREWsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEWxtEBAQEBAQEBAQbhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQb3BxchAQEBAQEBAQc3R1EBAQEBB2dxAQEBB4EBB5EBAQEBAQEBAQEBAQEBA="),I(g,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),I(g,118072,"IAAAAAAA37xA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAA/7+2AP///4cHAAAA/wf//////////v/D////////////////7x/+4f+fAAD///////8A4P///////////////wMA//////8HMAT////8/x8AAP///wH/BwAAAAAAAP//3z8AAPD/+AP////////////v/9/h/8///v/vn/n///3F459ZgLDP/wMQ7of5///9bcOHGQJewP8/AO6/+////e3jvxsBAM//AB7un/n///3t458ZwLDP/wIA7Mc91hjH/8PHHYEAwP8AAO/f/f///f/j3x1gB8//AADv3/3///3v498dYEDP/wYA79/9/////+ffXfCAz/8A/Oz/f/z///svf4Bf/8D/DAD+/////3//Bz8g/wMAAAAA1vf//6///ztfIP/zAAAAAAEAAAD/AwAA//7///8f/v8D///+////HwAAAAAAAAAA////////f/n/A////////////z//////vyD///////f///////////89fz3//////z3/////PX89/3//////////Pf//////////BwAAAAD//wAA/////////////z8//v//////////////////////////////////////////////////////////n////v//B////////////8f/Af/fDwD//w8A//8PAP/fDQD////////P//8BgBD/AwAAAAD/A///////////////Af//////B///////////PwD///9//w//AcD/////Px8A//////8P////A/8DAAAAAP///w//////////f/7/HwD/A/8DgA=="),I(g,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),I(g,118910,"AoAAAP8f"),I(g,118928,"hPwvPlC9//PgQwAA//////8B"),I(g,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),I(g,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),I(g,119184,"////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8P"),I(g,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),I(g,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),I(g,119824,"////////fwD//z8A/w=="),I(g,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),I(g,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),I(g,120048,"////H4AA//8/"),I(g,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),I(g,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),I(g,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),I(g,120336,"/////////wE="),I(g,120356,"////////////AwCA"),I(g,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),I(g,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),I(g,120524,"//9/AP////////////////////////8D"),I(g,120560,"/////////////////38AAP///////////////////////////////w8="),I(g,120624,"//////9/"),I(g,120656,"//////////9/"),I(g,120688,"/////////wH///9//wM="),I(g,120714,"////PwAA////////AAAPAP8D+P//4P//"),I(g,120760,"//////////8="),I(g,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),I(g,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),I(g,121136,"//////8fgD//Qw=="),I(g,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),I(g,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),I(g,121302,"////A////wP///8D"),I(g,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),I(g,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),I(g,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),I(g,121776,"Qy5VVEYtOA=="),I(g,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),I(g,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),I(g,123928,"IQQAAAAAAAAAAC8C"),I(g,123960,"NQRHBFYE"),I(g,123982,"oAQ="),I(g,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),I(g,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),I(g,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),I(g,124187,"DA=="),I(g,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),I(g,124245,"EA=="),I(g,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),I(g,124303,"Eg=="),I(g,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),I(g,124370,"GgAAABoaGgAAAAAAAAk="),I(g,124419,"FA=="),I(g,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),I(g,124477,"Fg=="),I(g,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),I(g,124564,"EQ=="),I(g,124604,"//////////8="),I(g,124672,"0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),I(g,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),I(g,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEAEQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),I(g,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),I(g,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),I(g,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),I(g,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),I(g,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),I(g,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),I(g,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),I(g,131076,"QP8BAAD/AQCA/wEAwP8B"),I(g,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),I(g,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),I(g,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),I(g,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),I(g,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),I(g,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),I(g,131888,"qAsD"),I(g,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),I(g,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),I(g,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+YkIiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),I(g,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),I(g,132412,"DQ=="),I(g,132436,"CwAAAAoAAADoeAM="),I(g,132460,"Ag=="),I(g,132476,"//////////8="),I(g,132544,"MAUCAAAAAAAF"),I(g,132564,"MA=="),I(g,132588,"CwAAADEAAAD4eAMAAAQ="),I(g,132612,"AQ=="),I(g,132628,"/////wo="),I(g,132696,"yAUCAAB/BA==");var ci,rt=(ci=[null,function(A){var t,r=0;return r=e[(A|=0)>>2],e[A>>2]=r+1,r=255&(t=d[0|r]),(0|t)<0&&(r=Q[(e[A+12>>2]+(r<<1)|0)-256>>1]),0|r},Vn,function(A){var t,r;return t=e[(A|=0)>>2],r=e[t>>2],e[A>>2]=t+4,0|r},function(A){var t=0,r=0;return t=e[(A|=0)>>2],(0|(r=He(A)))==65533&&(e[A>>2]=t+1,e[A+8>>2]=1,r=255&(t=d[0|t]),(0|t)>=0||(r=Q[(e[A+12>>2]+(r<<1)|0)-256>>1])),0|r},He,function(A){var t,r,a=0;return(a=e[4+(A|=0)>>2])>>>0<=(r=(t=e[A>>2])+1|0)>>>0?(e[A>>2]=a,65533):(e[A>>2]=r,a=u[0|t],e[A>>2]=t+2,a|u[t+1|0]<<8)},function(A,t){var r,a,o;return t|=0,A=e[(A|=0)>>2],r=e[A+4>>2],a=e[t>>2],(t=gr(r+1|0,(o=e[a+4>>2])+1|0))||(t=d[0|r]-d[0|o]|0)||(t=gr(e[A>>2],e[a>>2])),0|t},function(A,t){var r;return A|=0,t=e[(t|=0)>>2],r=e[A>>2],(A=e[t+16>>2]-e[r+16>>2]|0)||(A=gr(e[r>>2],e[t>>2])),0|A},tn,function(A,t,r,a){var o;return t|=0,r|=0,a|=0,$=o=$-16|0,(A=0|Ue(e[60+(A|=0)>>2],0|t,0|r,255&a,o+8|0))?(e[56798]=A,A=-1):A=0,$=o+16|0,xe=A?-1:e[o+12>>2],0|(A?-1:e[o+8>>2])},function(A,t,r){t|=0,r|=0;var a,o=0,l=0,c=0,f=0,m=0,E=0;$=a=$-32|0,o=e[28+(A|=0)>>2],e[a+16>>2]=o,c=e[A+20>>2],e[a+28>>2]=r,e[a+24>>2]=t,t=c-o|0,e[a+20>>2]=t,c=t+r|0,m=2;e:{A:{t=a+16|0,(o=0|Je(e[A+60>>2],0|t,2,a+12|0))?(e[56798]=o,o=-1):o=0;r:{if(o)o=t;else for(;;){if((0|(l=e[a+12>>2]))==(0|c))break r;if((0|l)<0){o=t;break A}if(f=l-((E=(f=e[t+4>>2])>>>0>>0)?f:0)|0,e[(o=(E<<3)+t|0)>>2]=f+e[o>>2],e[(t=(E?12:4)+t|0)>>2]=e[t>>2]-f,c=c-l|0,t=o,m=m-E|0,(l=0|Je(e[A+60>>2],0|t,0|m,a+12|0))?(e[56798]=l,l=-1):l=0,l)break}if((0|c)!=-1)break A}t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],A=r;break e}e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A>>2]=32|e[A>>2],A=0,(0|m)!=2&&(A=r-e[o+4>>2]|0)}return $=a+32|0,0|A},function(A,t,r){A|=0,t|=0,r|=0;var a,o=0,l=0,c=0;$=a=$-32|0,e[a+16>>2]=t,o=e[A+48>>2],e[a+20>>2]=r-!!(0|o),l=e[A+44>>2],e[a+28>>2]=o,e[a+24>>2]=l;e:{A:{if((o=0|gA(e[A+60>>2],a+16|0,2,a+12|0))?(e[56798]=o,o=-1):o=0,o)t=32;else{if((0|(o=e[a+12>>2]))>0)break A;t=o?32:16}e[A>>2]=t|e[A>>2];break e}c=o,(l=e[a+20>>2])>>>0>=o>>>0||(o=e[A+44>>2],e[A+4>>2]=o,e[A+8>>2]=o+(c-l|0),e[A+48>>2]&&(e[A+4>>2]=o+1,d[(t+r|0)-1|0]=u[0|o]),c=r)}return $=a+32|0,0|c},function(A){return 0|Se(e[60+(A|=0)>>2])},Vs,function(A,t,r,a,o,l){A|=0,t=+t,r|=0,a|=0,o|=0,l|=0;var c,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0,iA=0;$=c=$-560|0,e[c+44>>2]=0,L(+t),f=0|T(1),T(0),(0|f)<0?(J=1,de=84997,L(+(t=-t)),f=0|T(1),T(0)):2048&o?(J=1,de=85e3):(de=(J=1&o)?85003:84998,iA=!J);e:if(2146435072&~f){Ge=c+16|0;A:{r:{s:{if(t=uo(t,c+44|0),(t+=t)!=0){if(f=e[c+44>>2],e[c+44>>2]=f-1,(0|(ne=32|l))!=97)break s;break A}if((0|(ne=32|l))==97)break A;B=e[c+44>>2],_=(0|a)<0?6:a;break r}B=f-29|0,e[c+44>>2]=B,t*=268435456,_=(0|a)<0?6:a}for(m=re=(c+48|0)+((0|B)>=0?288:0)|0;a=t<4294967296&t>=0?~~t>>>0:0,e[m>>2]=a,m=m+4|0,(t=1e9*(t-+(a>>>0)))!=0;);if((0|B)<=0)a=B,f=m,E=re;else for(E=re,a=B;;){if(X=(0|a)>=29?29:a,!(E>>>0>(f=m-4|0)>>>0)){for(a=0;w=e[f>>2],Ye=a,a=31&X,(63&X)>>>0>=32?(W=w<>>32-a,a=w<>>0>Ye>>>0?w+1|0:w,1e9),e[f>>2]=Ye-YA(a,xe,1e9,0),E>>>0<=(f=f-4|0)>>>0;);a&&(e[(E=E-4|0)>>2]=a)}for(;E>>>0<(f=m)>>>0&&!e[(m=f-4|0)>>2];);if(a=e[c+44>>2]-X|0,e[c+44>>2]=a,m=f,!((0|a)>0))break}if((0|a)<0)for(Me=1+((_+25>>>0)/9|0)|0,q=(0|ne)==102;;){if(W=(0|(a=0-a|0))>=9?9:a,f>>>0<=E>>>0)m=e[E>>2];else{for(X=1e9>>>W|0,w=~(-1<>2],e[m>>2]=Ye+(a>>>W|0),a=R(X,a&w),(m=m+4|0)>>>0>>0;);m=e[E>>2],a&&(e[f>>2]=a,f=f+4|0)}if(a=W+e[c+44>>2]|0,e[c+44>>2]=a,E=(!m<<2)+E|0,f=f-(m=q?re:E)>>2>(0|Me)?m+(Me<<2)|0:f,!((0|a)<0))break}if(a=0,!(f>>>0<=E>>>0||(a=R(re-E>>2,9),m=10,(w=e[E>>2])>>>0<10)))for(;a=a+1|0,w>>>0>=(m=R(m,10))>>>0;);if((0|(m=(_-((0|ne)!=102?a:0)|0)-((0|ne)==103&!!(0|_))|0))<(R(f-re>>2,9)-9|0)){if(B=((((0|B)<0?4:292)+c|0)+((w=(0|(X=m+9216|0))/9|0)<<2)|0)-4048|0,m=10,(0|(W=X-R(w,9)|0))<=7)for(;m=R(m,10),(0|(W=W+1|0))!=8;);if(!(!(q=(X=e[B>>2])-R(m,Me=(X>>>0)/(m>>>0)|0)|0)&(0|(w=B+4|0))==(0|f))&&(!(1&Me)&&(t=9007199254740992,!(1&d[B-4|0])|(0|m)!=1e9|E>>>0>=B>>>0)||(t=9007199254740994),ue=(0|f)==(0|w)?1:1.5,ue=(w=m>>>1|0)>>>0>q>>>0?.5:(0|w)==(0|q)?ue:1.5,u[0|de]!=45|iA||(ue=-ue,t=-t),w=X-q|0,e[B>>2]=w,t+ue!=t)){if(a=m+w|0,e[B>>2]=a,a>>>0>=1e9)for(;e[B>>2]=0,(B=B-4|0)>>>0>>0&&(e[(E=E-4|0)>>2]=0),a=e[B>>2]+1|0,e[B>>2]=a,a>>>0>999999999;);if(a=R(re-E>>2,9),m=10,!((w=e[E>>2])>>>0<10))for(;a=a+1|0,w>>>0>=(m=R(m,10))>>>0;);}f=f>>>0>(m=B+4|0)>>>0?m:f}for(;w=f,!(X=f>>>0<=E>>>0)&&!e[(f=w-4|0)>>2];);if((0|ne)==103){if(_=((f=(0|(m=_||1))>(0|a)&(0|a)>-5)?~a:-1)+m|0,l=(f?-1:-2)+l|0,!(B=8&o)){if(f=-9,!X&&(B=e[w-4>>2])&&(W=10,f=0,!((B>>>0)%10|0))){for(;m=f,f=f+1|0,!((B>>>0)%((W=R(W,10))>>>0)|0););f=~m}m=R(w-re>>2,9),(-33&l)!=70?(B=0,_=(0|(f=(0|(f=((a+m|0)+f|0)-9|0))>0?f:0))>(0|_)?_:f):(B=0,_=(0|(f=(0|(f=(f+m|0)-9|0))>0?f:0))>(0|_)?_:f)}}else B=8&o;if(W=-1,(0|((X=B|_)?2147483645:2147483646))<(0|_))break e;if(q=1+(!!(0|X)+_|0)|0,(0|(m=-33&l))!=70){if((Ge-(f=Js(((f=a>>31)^a)-f|0,0,Ge))|0)<=1)for(;d[0|(f=f-1|0)]=48,(Ge-f|0)<2;);if(d[0|(Me=f-2|0)]=l,d[f-1|0]=(0|a)<0?45:43,(0|(f=Ge-Me|0))>(2147483647^q))break e}else{if((2147483647^q)<(0|a))break e;f=(0|a)>0?a:0}if((0|(a=f+q|0))>(2147483647^J))break e;Qr(A,32,r,q=a+J|0,o),Lr(A,de,J),Qr(A,48,r,q,65536^o);r:{s:{i:{if((0|m)==70){for(a=8|(l=c+16|0),B=9|l,E=m=E>>>0>re>>>0?re:E;;){f=Js(e[E>>2],0,B);o:if((0|m)==(0|E))(0|f)==(0|B)&&(d[c+24|0]=48,f=a);else{if(c+16>>>0>=f>>>0)break o;for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);}if(Lr(A,f,B-f|0),!(re>>>0>=(E=E+4|0)>>>0))break}if(X&&Lr(A,85998,1),(0|_)<=0|E>>>0>=w>>>0)break i;for(;;){if((f=Js(e[E>>2],0,B))>>>0>c+16>>>0)for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);if(Lr(A,f,(0|_)>=9?9:_),f=_-9|0,w>>>0<=(E=E+4|0)>>>0)break s;if(a=(0|_)>9,_=f,!a)break}break s}o:if(!((0|_)<0))for(re=E>>>0>>0?w:E+4|0,a=8|(l=c+16|0),w=9|l,m=E;;){(0|w)==(0|(f=Js(e[m>>2],0,w)))&&(d[c+24|0]=48,f=a);c:if((0|m)==(0|E))Lr(A,f,1),f=f+1|0,B|_&&Lr(A,85998,1);else{if(c+16>>>0>=f>>>0)break c;for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);}if(Lr(A,f,(0|(l=w-f|0))>(0|_)?_:l),_=_-l|0,re>>>0<=(m=m+4|0)>>>0)break o;if(!((0|_)>=0))break}Qr(A,48,_+18|0,18,0),Lr(A,Me,Ge-Me|0);break r}f=_}Qr(A,48,f+9|0,9,0)}Qr(A,32,r,q,8192^o),W=(0|r)<(0|q)?q:r;break e}if(B=(l<<26>>31&9)+de|0,!(a>>>0>11)){for(f=12-a|0,ue=16;ue*=16,f=f-1|0;);t=u[0|B]!=45?t+ue-ue:-(ue+(-t-ue))}for((0|Ge)==(0|(f=Js(((f=e[c+44>>2])^(m=f>>31))-m|0,0,Ge)))&&(d[c+15|0]=48,f=c+15|0),re=2|J,E=32&l,m=e[c+44>>2],d[0|(_=f-2|0)]=l+15,d[f-1|0]=(0|m)<0?45:43,f=8&o,m=c+16|0;l=m,w=ce(t)<2147483648?~~t:-2147483648,d[0|m]=E|u[w+124512|0],!((0|a)>0|f)&(t=16*(t-+(0|w)))==0|((m=l+1|0)-(c+16|0)|0)!=1||(d[l+1|0]=46,m=l+2|0),t!=0;);W=-1,(2147483645-(l=(f=Ge-_|0)+re|0)|0)<(0|a)||(Qr(A,32,r,l=(a=!a||((E=m-(c+16|0)|0)-2|0)>=(0|a)?E=m-(c+16|0)|0:a+2|0)+l|0,o),Lr(A,B,re),Qr(A,48,r,l,65536^o),Lr(A,c+16|0,E),Qr(A,48,a-E|0,0,0),Lr(A,_,f),Qr(A,32,r,l,8192^o),W=(0|r)<(0|l)?l:r)}else Qr(A,32,r,f=J+3|0,-65537&o),Lr(A,de,J),a=32&l,Lr(A,t!=t?a?85596:85774:a?85247:85460,3),Qr(A,32,r,f,8192^o),W=(0|r)<(0|f)?f:r;return $=c+560|0,0|W},function(A,t){var r;A|=0,r=t|=0,t=e[t>>2]+7&-8,e[r>>2]=t+16,O[A>>3]=Ms(e[t>>2],e[t+4>>2],e[t+8>>2],e[t+12>>2])},function(A,t,r){t|=0,r|=0;var a,o,l=0,c=0;return a=e[84+(A|=0)>>2],c=e[a+4>>2],o=e[A+28>>2],(l=(l=e[A+20>>2]-o|0)>>>0>c>>>0?c:l)&&(ct(e[a>>2],o,l),e[a>>2]=l+e[a>>2],c=e[a+4>>2]-l|0,e[a+4>>2]=c),l=e[a>>2],(c=r>>>0>c>>>0?c:r)&&(ct(l,t,c),l=c+e[a>>2]|0,e[a>>2]=l,e[a+4>>2]=e[a+4>>2]-c),d[0|l]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,0|r},function(A,t,r){r|=0;var a,o,l=0;return ct(t|=0,a=e[84+(A|=0)>>2],r=r>>>0>(l=(o=Os(a,0,l=r+256|0))?o-a|0:l)>>>0?l:r),t=a+l|0,e[A+84>>2]=t,e[A+8>>2]=t,e[A+4>>2]=r+a,0|r},function(A,t,r){t|=0,r|=0;var a,o=0,l=0,c=0;o=e[84+(A|=0)>>2],a=e[o>>2]?o:84412,o=0;e:if(e[A+48>>2])for(;;){if(!(l=e[(o<<2)+a>>2]))break e;if(d[e[A+44>>2]+o|0]=(0|l)>=128?64:l,!((o=o+1|0)>>>0>2]))break}return l=e[A+44>>2],e[A+4>>2]=l,e[A+84>>2]=(o<<2)+a,e[A+8>>2]=o+l,!r|!o||(e[A+4>>2]=l+1,d[0|t]=u[0|l],c=1),0|c},tn,Ys,rn,rn,function(A,t,r){r|=0;var a,o=0;return $=a=$+-64|0,o=1,qa(A|=0,t|=0,0)||(o=0,t&&(o=0,(t=zA(t,125132))&&(cA(4|(o=a+8|0),0,52),e[a+56>>2]=1,e[a+20>>2]=-1,e[a+16>>2]=A,e[a+8>>2]=t,rt[e[e[t>>2]+28>>2]](t,o,e[r>>2],1),(0|(A=e[a+32>>2]))==1&&(e[r>>2]=e[a+24>>2]),o=(0|A)==1))),$=a- -64|0,0|o},function(A,t,r,a,o,l){r|=0,a|=0,o|=0,l|=0,qa(A|=0,e[8+(t|=0)>>2],l)&&no(t,r,a,o)},function(A,t,r,a,o){if(r|=0,a|=0,o|=0,qa(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=a);else e:if(qa(A,e[t>>2],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|a)!=1)break e;return void(e[t+32>>2]=1)}e[t+20>>2]=r,e[t+32>>2]=a,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2||(d[t+54|0]=1),e[t+44>>2]=4}},function(A,t,r,a){r|=0,a|=0,qa(A|=0,e[8+(t|=0)>>2],0)&&nt(t,r,a)},Ys,function(A,t,r,a,o,l){r|=0,a|=0,o|=0,l|=0,qa(A|=0,e[8+(t|=0)>>2],l)?no(t,r,a,o):(A=e[A+8>>2],rt[e[e[A>>2]+20>>2]](A,t,r,a,o,l))},function(A,t,r,a,o){if(r|=0,a|=0,o|=0,qa(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=a);else e:{if(qa(A,e[t>>2],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|a)!=1)break e;return void(e[t+32>>2]=1)}e[t+32>>2]=a;A:if(e[t+44>>2]!=4){if(v[t+52>>1]=0,A=e[A+8>>2],rt[e[e[A>>2]+20>>2]](A,t,r,r,1,o),u[t+53|0]){if(e[t+44>>2]=3,!u[t+52|0])break A;break e}e[t+44>>2]=4}if(e[t+20>>2]=r,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2)break e;return void(d[t+54|0]=1)}A=e[A+8>>2],rt[e[e[A>>2]+24>>2]](A,t,r,a,o)}},function(A,t,r,a){r|=0,a|=0,qa(A|=0,e[8+(t|=0)>>2],0)?nt(t,r,a):(A=e[A+8>>2],rt[e[e[A>>2]+28>>2]](A,t,r,a))},Ys,function(A){return 84787},Ys,function(A){return 85058},Ys,function(A){return 84147},function(A){var t;return t=A|=0,A=e[A>>2],e[t>>2]=A+1,0|((0|(A=d[0|A]))<0?65533:255&A)},function(A,t,r,a,o,l){A|=0,t|=0,r|=0,a|=0,o|=0,l|=0;var c,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0;if(c=ha(408),e[c+4>>2]=a,e[c>>2]=r,t?(ct(c+16|0,t,376),O[c+392>>3]=(O[t+368>>3]-O[t>>3])/+(r>>>0),t=0):t=1,e[c+400>>2]=o,d[c+8|0]=t,l){if(r=e[A+24>>2])for(t=e[A+20>>2],a=e[A+8>>2];(o=e[e[(t>>>8&16777212)+a>>2]+((1023&t)<<2)>>2])&&(HA(o),r=e[A+24>>2],a=e[A+8>>2],t=e[A+20>>2]),t=t+1|0,e[A+20>>2]=t,r=r-1|0,e[A+24>>2]=r,t>>>0>=2048&&(HA(e[a>>2]),a=e[A+8>>2]+4|0,e[A+8>>2]=a,t=e[A+20>>2]-1024|0,e[A+20>>2]=t,r=e[A+24>>2]),r;);t=e[A+28>>2],e[A+420>>2]=e[t>>2],(r=e[A+32>>2])&&(d[t+8|0]=u[r+8|0],ct(t+16|0,A+40|0,376),(t=e[A+32>>2])&&HA(t),e[A+32>>2]=0)}if(r=(a=e[A+24>>2])+e[A+20>>2]|0,o=e[A+12>>2],(0|r)==(0|((0|(t=e[A+8>>2]))!=(0|o)?(o-t<<8)-1:0))){$=f=$-32|0;e:{A:{r:{s:{if((t=e[16+(l=A+4|0)>>2])>>>0>=1024){if(e[l+16>>2]=t-1024,t=e[l+4>>2],_=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0>>0)r=Ke((a=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=a+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break s;if(W=(a=r<<2)+(E=ha(a))|0,r=a=E+(-4&r)|0,(0|t)!=(0|o)){if(X=-4&(t=t-o|0),B=1+((w=t-4|0)>>>2|0)&7)for(r=0,t=a;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|B)!=(0|(r=r+1|0)););else t=a;if(r=a+X|0,!(w>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=W,e[l+8>>2]=r,e[l+4>>2]=a,e[l>>2]=E,m&&(HA(m),r=e[l+8>>2])}else r=t;e[r>>2]=_,e[l+8>>2]=e[l+8>>2]+4;break e}if((m=(o=e[l+8>>2])-e[l+4>>2]>>2)>>>0<(a=(t=e[l+12>>2])-(r=e[l>>2])|0)>>2>>>0){if((0|t)!=(0|o)){e[f+8>>2]=ha(4096),Ga(l,f+8|0);break e}if(e[f+8>>2]=ha(4096),Mi(l,f+8|0),t=e[l+4>>2],_=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0>>0)r=Ke((a=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=a+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break s;if(W=(a=r<<2)+(E=ha(a))|0,r=a=E+(-4&r)|0,(0|t)!=(0|o)){if(X=-4&(t=t-o|0),B=1+((w=t-4|0)>>>2|0)&7)for(r=0,t=a;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|B)!=(0|(r=r+1|0)););else t=a;if(r=a+X|0,!(w>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=W,e[l+8>>2]=r,e[l+4>>2]=a,e[l>>2]=E,m&&(HA(m),r=e[l+8>>2])}else r=t;e[r>>2]=_,e[l+8>>2]=e[l+8>>2]+4;break e}if(e[f+24>>2]=l+12,!((t=(0|t)==(0|r)?1:a>>1)>>>0>=1073741824)){if(t=ha(r=t<<2),e[f+8>>2]=t,a=t+(m<<2)|0,e[f+16>>2]=a,e[f+20>>2]=t+r,e[f+12>>2]=a,e[f+4>>2]=ha(4096),Ga(f+8|0,f+4|0),(0|(o=e[l+8>>2]))==e[l+4>>2]){t=o;break A}for(;Mi(f+8|0,o=o-4|0),e[l+4>>2]!=(0|o););break r}}Nn(),K()}t=e[l+8>>2]}r=e[l>>2],e[l>>2]=e[f+8>>2],e[f+8>>2]=r,e[l+4>>2]=e[f+12>>2],e[f+12>>2]=o,e[l+8>>2]=e[f+16>>2],e[f+16>>2]=t,a=e[l+12>>2],e[l+12>>2]=e[f+20>>2],e[f+20>>2]=a,(0|t)!=(0|o)&&(e[f+16>>2]=t+(3+(o-t|0)&-4)),r&&HA(r)}$=f+32|0,r=(a=e[A+24>>2])+e[A+20>>2]|0,t=e[A+8>>2]}e[e[t+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2]=c,e[A+24>>2]=a+1},function(A){var t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0;r=e[420+(A|=0)>>2]+1|0,e[A+420>>2]=r;e:{if(t=e[A+32>>2]){if(r>>>0>(f=e[t+4>>2])>>>0){(r=e[A+28>>2])&&(HA(r),t=e[A+32>>2]),e[A+32>>2]=0,e[A+28>>2]=t;break e}for(l=A+40|0,c=t+16|0,m=e[A+28>>2]+16|0,E=+(r>>>0)/+(f>>>0),t=0;;){if(a=O[(r=t<<3)+c>>3],o=O[r+m>>3],O[r+l>>3]=a==a?(a-o)*E+o:o,(0|(r=1|t))==47)break e;a=O[(r<<=3)+c>>3],o=O[r+m>>3],O[r+l>>3]=a==a?(a-o)*E+o:o,t=t+2|0}}if(t=e[A+28>>2],r>>>0>oe[t>>2]){if(l=e[A+24>>2]){if(d[A+416|0]=0,c=e[A+8>>2],r=e[A+20>>2],t=e[e[c+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2],e[A+32>>2]=t,e[A+24>>2]=l-1,r=r+1|0,e[A+20>>2]=r,r>>>0>=2048&&(HA(e[c>>2]),e[A+8>>2]=e[A+8>>2]+4,e[A+20>>2]=e[A+20>>2]-1024,t=e[A+32>>2]),u[t+8|0])ct(t+16|0,e[A+28>>2]+16|0,376),t=e[A+32>>2],e[t+368>>2]=0,e[t+372>>2]=0,a=O[A+40>>3],e[t+392>>2]=0,e[t+396>>2]=0,O[t+16>>3]=a;else if(r=e[A+28>>2],u[r+8|0]&&(ct(r+16|0,t+16|0,376),t=e[A+28>>2],e[t+368>>2]=0,e[t+372>>2]=0,!(t=e[A+32>>2])))break e;(0|(r=e[t+400>>2]))!=-1&&(e[A+424>>2]=r),e[A+420>>2]=0,O[t+16>>3]=O[t+392>>3]*+oe[t+4>>2]+O[t+16>>3];break e}d[A+416|0]=1}else a=O[t+392>>3]+O[A+40>>3],O[A+40>>3]=a,O[t+16>>3]=a}return 0|(u[A+416|0]?0:A+40)},function(A){return e[424+(A|=0)>>2]},function(A){var t=0;return e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&HA(t),(t=e[A+32>>2])&&HA(t),In(A+4|0),0|A},function(A){var t=0;e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&HA(t),(t=e[A+32>>2])&&HA(t),In(A+4|0),HA(A)},function(A,t,r){t|=0,r|=0;var a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0;if(!e[1088+(A|=0)>>2])return 0;e:if(t){for(E=A+648|0,m=A- -64|0;;){if(a=e[A+1088>>2],!(a=0|rt[e[e[a>>2]+4>>2]](a)))break e;if(o=Ss(O[A+32>>3]+O[a+16>>3]/+e[A+24>>2]),O[A+32>>3]=o,o=Ns(6.283185307179586*o),o=Ss(O[A+16>>3]+O[a>>3]*(.06*o*O[a+8>>3]+1)/+e[A+8>>2]),O[A+16>>3]=o,f=YA(e[56848],e[56849],1284865837,1481765933),l=xe,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,c=.75*O[A+40>>3]+ +(l>>>1|0)/2147483647,O[A+40>>3]=c,w=O[a+24>>3],l=o>=O[a+32>>3],d[A+48|0]=l,c=(_=w)*(w=.2*c),c=Pr(m+512|0,Pr(m+440|0,o=O[a+352>>3]*(w*O[a+48>>3]+O[a+40>>3]*(o+o+-1+(l?c:.01*c)))*.5,O[a+104>>3],O[a+168>>3]),O[a+112>>3],O[a+176>>3]),c=Pr(m+8|0,Pr(m+80|0,Pr(m+152|0,Pr(m+224|0,Pr(m+296|0,Pr(m+368|0,c==c?(c-o)*O[a+184>>3]+o:o,O[a+96>>3],O[a+160>>3]),O[a+88>>3],O[a+152>>3]),O[a+80>>3],O[a+144>>3]),O[a+72>>3],O[a+136>>3]),O[a+64>>3],O[a+128>>3]),O[a+56>>3],O[a+120>>3]),f=YA(e[56848],e[56849],1284865837,1481765933),l=xe,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,o=.75*O[A+56>>3]+ +(l>>>1|0)/2147483647,O[A+56>>3]=o,l=(B<<1)+r|0,w=Pr(E+8|0,o=O[a+352>>3]*(O[a+192>>3]*(.3*o))*.5,O[a+200>>3],O[a+248>>3]),W=O[a+296>>3],X=Pr(E+80|0,o,O[a+208>>3],O[a+256>>3]),q=O[a+304>>3],re=Pr(E+152|0,o,O[a+216>>3],O[a+264>>3]),ue=O[a+312>>3],J=Pr(E+224|0,o,O[a+224>>3],O[a+272>>3]),Me=O[a+320>>3],Ge=Pr(E+296|0,o,O[a+232>>3],O[a+280>>3]),ne=O[a+328>>3],_=c,c=(Pr(E+368|0,o,O[a+240>>3],O[a+288>>3])-o)*O[a+336>>3]+(ne*(Ge-o)+(Me*(J-o)+(ue*(re-o)+(q*(X-o)+(W*(w-o)+0))))),o=(_+(o==o?(o-c)*O[a+344>>3]+c:c))*O[a+360>>3]*4e3,a=(0|(a=ce(o)<2147483648?~~o:-2147483648))>=32e3?32e3:a,v[l>>1]=(0|a)<=-32e3?-32e3:a,(0|(B=B+1|0))==(0|t))break}B=t}return 0|(t>>>0>B>>>0?B:t)},function(A,t){t|=0,e[1088+(A|=0)>>2]=t},tn,Ys,Vn,function(A,t,r,a){return xe=0,0}],ci.grow=function(A){var t=this.length;return this.length=this.length+A,t},ci.set=function(A,t){this[A]=t},ci.get=function(A){return this[A]},ci);return{v:function(){var A,t=0;$=A=$-16|0,0|sA(A+12|0,A+8|0)||(t=gt(4+(e[A+12>>2]<<2)|0),e[56800]=t,t&&(!(t=gt(e[A+8>>2]))||(e[e[56800]+(e[A+12>>2]<<2)>>2]=0,0|aA(e[56800],0|t)))&&(e[56800]=0)),$=A+16|0,e[56841]=227236,e[56823]=42},w:li,x:Sa,y:function(A,t){t|=0,e[(A|=0)>>2]=t},z:function(A,t){return t|=0,d[e[(A|=0)+4>>2]+t|0]},A:Ni,B:ni,C:function(A){return u[(A|=0)+12|0]},D:function(A,t){t|=0,d[(A|=0)+12|0]=t},E:function(A){return u[(A|=0)+13|0]},F:function(A,t){t|=0,d[(A|=0)+13|0]=t},G:function(A){return u[(A|=0)+14|0]},H:function(A,t){t|=0,d[(A|=0)+14|0]=t},I:function(A){return u[(A|=0)+15|0]},J:function(A,t){t|=0,d[(A|=0)+15|0]=t},K:An,L:function(A,t){t|=0,e[(A|=0)+16>>2]=t},M:Wn,N:function(A,t){t|=0,e[(A|=0)+20>>2]=t},O:li,P:Sa,Q:oi,R:Ni,S:vo,T:An,U:Wn,V:function(A){return e[(A|=0)+24>>2]},W:li,X:function(){var A,t=0,r=0,a=0,o=0,l=0,c=0,f=0,m=0,E=0,w=0,B=0,_=0,W=0,X=0,q=0,re=0,ue=0,J=0,Me=0,Ge=0,ne=0,Ye=0,de=0;if(A=ha(20),e[A+16>>2]=0,e[A+8>>2]=175,e[A+12>>2]=50,!(t=e[33208])){$=t=($=Me=$-16|0)-80|0;e:{if((r=xi(84292))&&(e[t+32>>2]=r,ss(137584,160,85959,t+32|0),(0|Qa(137584))==-31||(e[t+16>>2]=r,ss(137584,160,86031,t+16|0),(0|Qa(137584))==-31)))break e;(r=xi(84619))&&(e[t>>2]=r,ss(137584,160,85959,t),(0|Qa(137584))==-31)||(r=u[84826]|u[84827]<<8|u[84828]<<16|u[84829]<<24,e[34396]=u[84822]|u[84823]<<8|u[84824]<<16|u[84825]<<24,e[34397]=r,v[68804]=u[84846]|u[84847]<<8,r=u[84842]|u[84843]<<8|u[84844]<<16|u[84845]<<24,e[34400]=u[84838]|u[84839]<<8|u[84840]<<16|u[84841]<<24,e[34401]=r,r=u[84834]|u[84835]<<8|u[84836]<<16|u[84837]<<24,e[34398]=u[84830]|u[84831]<<8|u[84832]<<16|u[84833]<<24,e[34399]=r)}if($=t+80|0,e[Me+12>>2]=0,o=Me+12|0,$=f=$-16|0,e[f+12>>2]=22050,Pe(85144)||Pe(85315)||Pe(85473)||Pe(85698),B=f+12|0,$=l=$-16|0,e[l+12>>2]=0,!((t=Dr(137832,84262,0,o))||(t=Dr(137836,84420,0,o))||(t=Dr(137840,84813,0,o))||(t=Dr(137820,85016,l+12|0,o))))if(e[34454]=oe[l+12>>2]/68,r=e[34460],e[34456]=r,r&&(0|(E=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24))==83969){if(_=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,r=e[34458],X=u[0|r],e[34461]=X,X)for(t=r+4|0,E=0;a=R(E,44)+137856|0,o=u[0|t],e[a+36>>2]=o,e[a+40>>2]=u[t+1|0],c=u[t+8|0]|u[t+9|0]<<8|u[t+10|0]<<16|u[t+11|0]<<24,r=u[t+4|0]|u[t+5|0]<<8|u[t+6|0]<<16|u[t+7|0]<<24,d[0|a]=r,d[a+1|0]=r>>>8,d[a+2|0]=r>>>16,d[a+3|0]=r>>>24,d[a+4|0]=c,d[a+5|0]=c>>>8,d[a+6|0]=c>>>16,d[a+7|0]=c>>>24,c=u[t+16|0]|u[t+17|0]<<8|u[t+18|0]<<16|u[t+19|0]<<24,r=u[t+12|0]|u[t+13|0]<<8|u[t+14|0]<<16|u[t+15|0]<<24,d[a+8|0]=r,d[a+9|0]=r>>>8,d[a+10|0]=r>>>16,d[a+11|0]=r>>>24,d[a+12|0]=c,d[a+13|0]=c>>>8,d[a+14|0]=c>>>16,d[a+15|0]=c>>>24,c=u[t+24|0]|u[t+25|0]<<8|u[t+26|0]<<16|u[t+27|0]<<24,r=u[t+20|0]|u[t+21|0]<<8|u[t+22|0]<<16|u[t+23|0]<<24,d[a+16|0]=r,d[a+17|0]=r>>>8,d[a+18|0]=r>>>16,d[a+19|0]=r>>>24,d[a+20|0]=c,d[a+21|0]=c>>>8,d[a+22|0]=c>>>16,d[a+23|0]=c>>>24,c=u[t+32|0]|u[t+33|0]<<8|u[t+34|0]<<16|u[t+35|0]<<24,r=u[t+28|0]|u[t+29|0]<<8|u[t+30|0]<<16|u[t+31|0]<<24,d[a+24|0]=r,d[a+25|0]=r>>>8,d[a+26|0]=r>>>16,d[a+27|0]=r>>>24,d[a+28|0]=c,d[a+29|0]=c>>>8,d[a+30|0]=c>>>16,d[a+31|0]=c>>>24,r=t+36|0,e[a+32>>2]=r,t=r+(o<<4)|0,(0|X)!=(0|(E=E+1|0)););(0|X)<=e[34457]&&(e[34457]=0),t=0,B&&(e[B>>2]=_)}else e:{A:{if(o){if(r=e[o>>2]){HA(e[r+4>>2]),t=e[o>>2];break A}if(t=gt(16),e[o>>2]=t,t)break A;t=48}else t=268436223;break e}e[t>>2]=1,e[t+4>>2]=zi(137584),r=e[o>>2],e[r+12>>2]=83969,e[r+8>>2]=E,t=268436223}if($=l+16|0,r=t,!t){if(B=e[f+12>>2],e[50754]=B,e[50759]=0,e[50760]=134217728/(0|B),e[50762]=0,e[50763]=0,e[50765]=2147483647,e[50781]=100,e[50779]=32,e[50761]=(B<<6)/(0|B),t=e[26385],e[50784]=e[26384],e[50785]=t,t=e[26387],e[50786]=e[26386],e[50787]=t,t=e[26389],e[50788]=e[26388],e[50789]=t,t=e[26391],e[50790]=e[26390],e[50791]=t,t=e[26393],e[50792]=e[26392],e[50793]=t,t=e[26395],e[50794]=e[26394],e[50795]=t,t=e[26397],e[50796]=e[26396],e[50797]=t,e[50798]=e[26398],_=(0|(t=(0|(o=R(B,60)))/12800|0))>=128?128:t,e[50799]=_,e[50800]=(0|_)/2,!((0|B)==22050|(0|o)<12800)){if(B=1&(t=(0|_)<=1?1:_),ue=+(0|_),E=0,(0|_)>=2)for(_=2147483646&t,t=0;q=E+132160|0,m=127*(1-Ea(6.283185307179586*+(0|E)/ue)),W=ce(m)<2147483648?~~m:-2147483648,d[0|q]=W,q=(o=1|E)+132160|0,m=127*(1-Ea(6.283185307179586*+(0|o)/ue)),W=ce(m)<2147483648?~~m:-2147483648,d[0|q]=W,E=E+2|0,(0|_)!=(0|(t=t+2|0)););B&&(t=E+132160|0,m=127*(1-Ea(6.283185307179586*+(0|E)/ue)),q=ce(m)<2147483648?~~m:-2147483648,d[0|t]=q)}if(e[50801]=105792,e[56797]=Ia(),e[55964]=38,e[55921]=1,e[55918]=22050,e[56606]=0,e[55960]=110928,e[55958]=0,e[55959]=1074266112,e[55956]=100,e[55922]=20,e[55923]=220,e[55916]=1,e[55917]=0,Sn(),e[56244]=0,e[56245]=0,e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,ue=-3.141592653589793/+(0|(t=e[55918])),O[27967]=ue,o=(0|R(t,630))/1e4|0,e[55920]=o,t=(0|R(t,950))/1e4|0,e[55919]=t,m=-2*ue,O[27968]=m,ue=(Ye=mr(ue*+(0|o)))*-Ye,O[28129]=ue,m=Ye*Ea(m*+(0|t)),m+=m,O[28128]=m,O[28127]=1-m-ue,e[55990]=0,e[55991]=0,e[55988]=0,e[55989]=0,e[56006]=0,e[56007]=0,e[56004]=0,e[56005]=0,e[56022]=0,e[56023]=0,e[56020]=0,e[56021]=0,e[56038]=0,e[56039]=0,e[56036]=0,e[56037]=0,e[56054]=0,e[56055]=0,e[56052]=0,e[56053]=0,e[56070]=0,e[56071]=0,e[56068]=0,e[56069]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0,e[56639]=59,e[56640]=59,e[56629]=0,e[56630]=59,e[56619]=89,e[56620]=160,e[56609]=280,e[56610]=688,e[56611]=1064,e[56621]=70,e[56631]=59,e[56612]=2806,e[56613]=3260,e[56622]=160,e[56623]=200,e[56632]=59,e[56633]=59,e[56641]=89,e[56642]=149,e[56643]=200,e[56644]=200,e[56634]=59,e[56635]=59,e[56624]=200,e[56625]=500,e[56614]=3700,e[56615]=6500,e[56645]=500,e[56646]=0,e[56616]=7e3,e[56626]=500,e[56636]=0,e[56647]=0,e[56637]=0,e[56627]=500,e[56617]=8e3,e[56669]=89,e[56648]=0,e[56638]=0,e[56628]=89,e[56618]=280,e[56657]=62,e[56655]=0,e[56656]=0,e[56653]=50,e[56654]=0,e[56651]=0,e[56652]=0,e[56649]=0,e[56650]=40,e[56607]=1e3,e[56608]=59,$=l=$-416|0,e[l+16>>2]=137584,e[l+20>>2]=47,e[l+24>>2]=85952,IA(t=l+240|0,85699,l+16|0),c=ka(t,86034)){if(Ot(l+240|0,170,c))for(B=5|(t=l+240|0),_=10|t;u[l+240|0]!=47&&(e[l+240>>2]!=1701736308?ga(l+240|0,86614,9)||(e[l+4>>2]=l+32,e[l>>2]=l+239,(0|dt(_,86829,l))==2&&(o=e[34064],e[(X=136272+(o<<4)|0)>>2]=d[l+239|0],t=zi(l+32|0),e[34064]=o+1,e[X+12>>2]=t,e[X+4>>2]=0)):($=t=$-48|0,e[32960]=-1,e[32961]=-1,e[32970]=-1,e[32971]=-1,e[32968]=-1,e[32969]=-1,e[32966]=-1,e[32967]=-1,e[32964]=-1,e[32965]=-1,e[32962]=-1,e[32963]=-1,e[t+36>>2]=131876,e[t+32>>2]=131872,e[t+28>>2]=131868,e[t+24>>2]=131864,e[t+20>>2]=131860,e[t+16>>2]=131856,e[t+12>>2]=131852,e[t+8>>2]=131848,e[t+4>>2]=131844,e[t>>2]=131840,dt(B,84222,t),$=t+48|0)),Ot(l+240|0,170,c););nr(c)}$=l+416|0,e[50297]=0,e[50298]=0,e[50301]=0,e[50302]=0,e[50299]=0,e[50300]=0,Hi(0,85698),e[36425]=0,e[36424]=0,e[36426]=0,e[36427]=-1,wo(),Qs(0),a=e[25690],e[34062]=a,w=e[25689],l=e[25688],e[34060]=l,e[34061]=w,re=e[25687],c=e[25686],e[34058]=c,e[34059]=re,J=e[25685],X=e[25684],e[34056]=X,e[34057]=J,Ge=e[25683],B=e[25682],e[34054]=B,e[34055]=Ge,ne=e[25681],_=e[25680],e[34052]=_,e[34053]=ne,W=e[25679],o=e[25678],e[34050]=o,e[34051]=W,q=e[25677],t=e[25676],e[34048]=t,e[34049]=q,e[33729]=t,e[33730]=q,e[33731]=o,e[33732]=W,e[33733]=_,e[33734]=ne,e[33735]=B,e[33736]=Ge,e[33737]=X,e[33738]=J,e[33739]=c,e[33740]=re,e[33741]=l,e[33742]=w,e[33743]=a,zr(1,175),zr(2,100),zr(6,e[47200]),zr(5,e[47201]),zr(7,0),e[47198]=0,e[47197]=0,m=+le()/1e3,o=YA(t=ce(m)<9223372036854776e3?~~m>>>0:0,0,1103515245,0),t=xe,t=(o=o+12345|0)>>>0<12345?t+1|0:t,e[33209]=Rn(o,t)}if($=f+16|0,r){q=e[30450],Ge=e[Me+12>>2],f=(w=$-560|0)+48|0,$=a=($=w)-16|0;e:{A:switch(0|ia(r-268435967|0,24)){case 0:Wt(f,84133,512);break e;case 1:Wt(f,84580,512);break e;case 2:Wt(f,84747,512);break e;case 3:Wt(f,85084,512);break e;case 4:Wt(f,85251,512);break e;case 5:Wt(f,85380,512);break e;case 6:Wt(f,85607,512);break e;case 7:Wt(f,85722,512);break e;case 8:Wt(f,85913,512);break e;case 9:Wt(f,86046,512);break e;case 10:Wt(f,86153,512);break e;case 11:Wt(f,86678,512);break e;case 12:Wt(f,86773,512);break e;case 14:Wt(f,86958,512);break e;case 15:Wt(f,87071,512);break e;default:break A}if(1879048192&r)e[a>>2]=r,ss(f,512,87182,a);else{if(E=0,l=Q[123728+((r>>>0<=153?r:0)<<1)>>1]+121804|0,r=e[e[56841]+20>>2]){ne=e[r+4>>2],re=e[r>>2],J=e[re>>2]+1794895138|0,W=Ws(e[re+8>>2],J),o=Ws(e[re+12>>2],J),t=Ws(e[re+16>>2],J);A:if(!(ne>>>2>>>0<=W>>>0||3&(t|o)|(r=ne-(W<<2)|0)>>>0<=o>>>0|t>>>0>=r>>>0))for(B=t>>>2|0,_=o>>>2|0;;){if(X=Ws(e[(r=((t=(o=(c=W>>>1|0)+de|0)<<1)+_<<2)+re|0)>>2],J),(r=Ws(e[r+4>>2],J))>>>0>=ne>>>0|X>>>0>=ne-r>>>0|u[(r+X|0)+re|0])break A;if(!(r=gr(l,r+re|0))){if(t=Ws(e[(r=(t+B<<2)+re|0)>>2],J),(r=Ws(e[r+4>>2],J))>>>0>=ne>>>0|t>>>0>=ne-r>>>0)break A;E=u[(t+r|0)+re|0]?0:r+re|0;break A}if((0|W)==1)break A;W=(r=(0|r)<0)?c:W-c|0,de=r?de:o}}if((r=TA(t=E||l))>>>0>=512){ct(f,t,511),d[f+511|0]=0;break e}ct(f,t,r+1|0)}}$=a+16|0;e:if(Ge){A:switch(e[Ge>>2]){case 0:e[w+16>>2]=e[Ge+4>>2],e[w+20>>2]=w+48,Ar(q,87384,w+16|0);break e;case 1:break A;default:break e}t=e[Ge+12>>2],r=e[Ge+8>>2],e[w+36>>2]=e[Ge+4>>2],xe=r,e[w+40>>2]=t,e[w+44>>2]=xe,e[w+32>>2]=w+48,Ar(q,87521,w+32|0)}else e[w>>2]=w+48,Ar(q,87700,w);$=w+560|0,(0|Me)!=-12&&(r=e[Me+12>>2])&&(HA(e[r+4>>2]),HA(e[Me+12>>2]),e[Me+12>>2]=0)}r=e[24806],e[34389]=0,e[32538]=r,r=(1e3+((r=R(e[50754],100))-((0|r)%1e3|0)|0)|0)/500|0,e[34390]=r,r=xr(e[34391],r),e[34392]=r,r&&(e[34391]=r,e[34393]=40,(r=xr(e[34388],1440))&&(e[34388]=r)),e[47198]=0,$=Me+16|0,t=e[50754],e[33208]=t}return e[A+4>>2]=t,e[A>>2]=ht(),0|A},Y:function(A,t,r){A|=0,t|=0,r|=0,e[34440]=r,Qn(3,e[A+12>>2]),Qn(1,e[A+8>>2]),(A=e[A+16>>2])?zs(A):Ti(1024),VA(t),e[34440]=0},Z:function(A,t,r){return A|=0,t|=0,r|=0,e[34440]=0,(A=ka(r,1032))?(e[47195]=A,e[47197]=130,A||(e[47195]=e[30450]),VA(t),e[47195]=0,e[47197]=0,e[47195]=e[30450],nr(A),0):-1},_:function(A){return 36},$:function(A,t,r){var a;return A|=0,t|=0,$=a=$-32|0,(r|=0)?(e[a+24>>2]=0,e[a+28>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+12>>2]=r,e[a+8>>2]=t,d[a+21|0]=0,t=zs(a+8|0)):t=Ti(t),e[A+16>>2]=201188,$=a+32|0,0|t},aa:function(A,t,r,a){var o;return A|=0,t|=0,$=o=$-32|0,(r|=0)|(a|=0)?(e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+12>>2]=r,e[o+8>>2]=t,d[o+22|0]=0,d[o+20|0]=a,t=zs(o+8|0)):t=Ti(t),e[A+16>>2]=201188,$=o+32|0,0|t},ba:function(A,t,r,a,o){var l;return A|=0,t|=0,$=l=$-32|0,(a|=0)|(o|=0)|(r|=0)?(e[l+24>>2]=0,e[l+28>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+12>>2]=r,e[l+8>>2]=t,d[l+21|0]=o,d[l+20|0]=a,t=zs(l+8|0)):t=Ti(t),e[A+16>>2]=201188,$=l+32|0,0|t},ca:function(A,t,r,a,o,l){var c;return A|=0,t|=0,$=c=$-32|0,(a|=0)|(o|=0)|(l|=0)|(r|=0)?(e[c+24>>2]=0,e[c+28>>2]=0,e[c+16>>2]=0,e[c+20>>2]=0,e[c+12>>2]=r,e[c+8>>2]=t,d[c+22|0]=l,d[c+21|0]=o,d[c+20|0]=a,t=zs(c+8|0)):t=Ti(t),e[A+16>>2]=201188,$=c+32|0,0|t},da:function(A,t){return t|=0,e[e[(A|=0)>>2]+(t<<2)>>2]},ea:function(A,t,r){t|=0,r|=0,e[e[(A|=0)>>2]+(t<<2)>>2]=r},fa:oi,ga:Ni,ha:ni,ia:vo,ja:function(A,t){t|=0,e[(A|=0)+12>>2]=t},ka:li,la:function(){return 0},ma:function(){return 1},na:function(){return 2},oa:function(){return 3},pa:function(){return 4},qa:function(){return 5},ra:function(){return 6},sa:function(){return 7},ta:function(){return 8},ua:rt,va:function(){return 227192},wa:HA,xa:gt,ya:function(A){return(A|=0)?0|!!(0|zA(A,125228)):0}}}(i)}(n)},instantiate:function(s,n){return{then:function(i){var g=new Y0.Module(s);i({instance:new Y0.Instance(g,n)})}}},RuntimeError:Error};typeof Y0!="object"&&mn("no native wasm support detected");var Vb=!1;function of(s,n){s||mn(n)}var ts,N0,Lu,er,ca,Yb,Hb,qh=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function z0(s,n,i){for(var g=n+i,C=n;s[C]&&!(C>=g);)++C;if(C-n>16&&s.buffer&&qh)return qh.decode(s.subarray(n,C));for(var p="";n>10,56320|1023&G)}}else p+=String.fromCharCode((31&I)<<6|M)}else p+=String.fromCharCode(I)}return p}function L0(s,n){return s?z0(N0,s,n):""}function ug(s,n,i,g){if(!(g>0))return 0;for(var C=i,p=i+g-1,I=0;I=55296&&M<=57343&&(M=65536+((1023&M)<<10)|1023&s.charCodeAt(++I)),M<=127){if(i>=p)break;n[i++]=M}else if(M<=2047){if(i+1>=p)break;n[i++]=192|M>>6,n[i++]=128|63&M}else if(M<=65535){if(i+2>=p)break;n[i++]=224|M>>12,n[i++]=128|M>>6&63,n[i++]=128|63&M}else{if(i+3>=p)break;n[i++]=240|M>>18,n[i++]=128|M>>12&63,n[i++]=128|M>>6&63,n[i++]=128|63&M}}return n[i]=0,i-C}function Ub(s){for(var n=0,i=0;i=55296&&g<=57343?(n+=4,++i):n+=3}return n}var gn,lf=Ce.INITIAL_MEMORY||16777216;Gu=Ce.wasmMemory?Ce.wasmMemory:new Y0.Memory({initial:lf/65536,maximum:lf/65536}),gn=Gu.buffer,Ce.HEAP8=ts=new Int8Array(gn),Ce.HEAP16=Lu=new Int16Array(gn),Ce.HEAP32=er=new Int32Array(gn),Ce.HEAPU8=N0=new Uint8Array(gn),Ce.HEAPU16=new Uint16Array(gn),Ce.HEAPU32=ca=new Uint32Array(gn),Ce.HEAPF32=Yb=new Float32Array(gn),Ce.HEAPF64=Hb=new Float64Array(gn),lf=Gu.buffer.byteLength;var $h=[],Kb=[],em=[],Xb=!1;function Zb(s){Kb.unshift(s)}var Mt,Jr,Jo=0,Zc=null;function Jb(s){Jo++,Ce.monitorRunDependencies&&Ce.monitorRunDependencies(Jo)}function qb(s){if(Jo--,Ce.monitorRunDependencies&&Ce.monitorRunDependencies(Jo),Jo==0&&Zc){var n=Zc;Zc=null,n()}}function mn(s){throw Ce.onAbort&&Ce.onAbort(s),V0(s="Aborted("+s+")"),Vb=!0,s+=". Build with -sASSERTIONS for more info.",new Y0.RuntimeError(s)}function p5(s){this.name="ExitStatus",this.message="Program terminated with exit("+s+")",this.status=s}function cf(s){for(;s.length>0;)s.shift()(Ce)}function h5(s,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":case"i8":return ts[s|0];case"i16":return Lu[s>>1];case"i32":case"i64":return er[s>>2];case"float":return Yb[s>>2];case"double":return Hb[s>>3];case"*":return ca[s>>2];default:mn("invalid type for getValue: "+n)}return null}function m5(s){this.excPtr=s,this.ptr=s-24,this.set_type=function(n){ca[this.ptr+4>>2]=n},this.get_type=function(){return ca[this.ptr+4>>2]},this.set_destructor=function(n){ca[this.ptr+8>>2]=n},this.get_destructor=function(){return ca[this.ptr+8>>2]},this.set_refcount=function(n){er[this.ptr>>2]=n},this.set_caught=function(n){n=n?1:0,ts[this.ptr+12|0]=n},this.get_caught=function(){return ts[this.ptr+12|0]!=0},this.set_rethrown=function(n){n=n?1:0,ts[this.ptr+13|0]=n},this.get_rethrown=function(){return ts[this.ptr+13|0]!=0},this.init=function(n,i){this.set_adjusted_ptr(0),this.set_type(n),this.set_destructor(i),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var n=er[this.ptr>>2];er[this.ptr>>2]=n+1},this.release_ref=function(){var n=er[this.ptr>>2];return er[this.ptr>>2]=n-1,n===1},this.set_adjusted_ptr=function(n){ca[this.ptr+16>>2]=n},this.get_adjusted_ptr=function(){return ca[this.ptr+16>>2]},this.get_exception_ptr=function(){if(e6(this.get_type()))return ca[this.excPtr>>2];var n=this.get_adjusted_ptr();return n!==0?n:this.excPtr}}var hr={isAbs:s=>s.charAt(0)==="/",splitPath:s=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(s).slice(1),normalizeArray:(s,n)=>{for(var i=0,g=s.length-1;g>=0;g--){var C=s[g];C==="."?s.splice(g,1):C===".."?(s.splice(g,1),i++):i&&(s.splice(g,1),i--)}if(n)for(;i;i--)s.unshift("..");return s},normalize:s=>{var n=hr.isAbs(s),i=s.substr(-1)==="/";return(s=hr.normalizeArray(s.split("/").filter(g=>!!g),!n).join("/"))||n||(s="."),s&&i&&(s+="/"),(n?"/":"")+s},dirname:s=>{var n=hr.splitPath(s),i=n[0],g=n[1];return i||g?(g&&(g=g.substr(0,g.length-1)),i+g):"."},basename:s=>{if(s==="/")return"/";var n=(s=(s=hr.normalize(s)).replace(/\/$/,"")).lastIndexOf("/");return n===-1?s:s.substr(n+1)},join:function(){var s=Array.prototype.slice.call(arguments);return hr.normalize(s.join("/"))},join2:(s,n)=>hr.normalize(s+"/"+n)},eo={resolve:function(){for(var s="",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var g=i>=0?arguments[i]:ie.cwd();if(typeof g!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!g)return"";s=g+"/"+s,n=hr.isAbs(g)}return(n?"/":"")+(s=hr.normalizeArray(s.split("/").filter(C=>!!C),!n).join("/"))||"."},relative:(s,n)=>{function i(G){for(var S=0;S=0&&G[T]==="";T--);return S>T?[]:G.slice(S,T-S+1)}s=eo.resolve(s).substr(1),n=eo.resolve(n).substr(1);for(var g=i(s.split("/")),C=i(n.split("/")),p=Math.min(g.length,C.length),I=p,M=0;M0&&(Nu(z0(s.output,0)),s.output=[])}},default_tty1_ops:{put_char:function(s,n){n===null||n===10?(V0(z0(s.output,0)),s.output=[]):n!=0&&s.output.push(n)},fsync:function(s){s.output&&s.output.length>0&&(V0(z0(s.output,0)),s.output=[])}}};function e8(s){mn()}var St={ops_table:null,mount:function(s){return St.createNode(null,"/",16895,0)},createNode:function(s,n,i,g){if(ie.isBlkdev(i)||ie.isFIFO(i))throw new ie.ErrnoError(63);St.ops_table||(St.ops_table={dir:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,lookup:St.node_ops.lookup,mknod:St.node_ops.mknod,rename:St.node_ops.rename,unlink:St.node_ops.unlink,rmdir:St.node_ops.rmdir,readdir:St.node_ops.readdir,symlink:St.node_ops.symlink},stream:{llseek:St.stream_ops.llseek}},file:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:{llseek:St.stream_ops.llseek,read:St.stream_ops.read,write:St.stream_ops.write,allocate:St.stream_ops.allocate,mmap:St.stream_ops.mmap,msync:St.stream_ops.msync}},link:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr,readlink:St.node_ops.readlink},stream:{}},chrdev:{node:{getattr:St.node_ops.getattr,setattr:St.node_ops.setattr},stream:ie.chrdev_stream_ops}});var C=ie.createNode(s,n,i,g);return ie.isDir(C.mode)?(C.node_ops=St.ops_table.dir.node,C.stream_ops=St.ops_table.dir.stream,C.contents={}):ie.isFile(C.mode)?(C.node_ops=St.ops_table.file.node,C.stream_ops=St.ops_table.file.stream,C.usedBytes=0,C.contents=null):ie.isLink(C.mode)?(C.node_ops=St.ops_table.link.node,C.stream_ops=St.ops_table.link.stream):ie.isChrdev(C.mode)&&(C.node_ops=St.ops_table.chrdev.node,C.stream_ops=St.ops_table.chrdev.stream),C.timestamp=Date.now(),s&&(s.contents[n]=C,s.timestamp=C.timestamp),C},getFileDataAsTypedArray:function(s){return s.contents?s.contents.subarray?s.contents.subarray(0,s.usedBytes):new Uint8Array(s.contents):new Uint8Array(0)},expandFileStorage:function(s,n){var i=s.contents?s.contents.length:0;if(!(i>=n)){n=Math.max(n,i*(i<1048576?2:1.125)>>>0),i!=0&&(n=Math.max(n,256));var g=s.contents;s.contents=new Uint8Array(n),s.usedBytes>0&&s.contents.set(g.subarray(0,s.usedBytes),0)}},resizeFileStorage:function(s,n){if(s.usedBytes!=n)if(n==0)s.contents=null,s.usedBytes=0;else{var i=s.contents;s.contents=new Uint8Array(n),i&&s.contents.set(i.subarray(0,Math.min(n,s.usedBytes))),s.usedBytes=n}},node_ops:{getattr:function(s){var n={};return n.dev=ie.isChrdev(s.mode)?s.id:1,n.ino=s.id,n.mode=s.mode,n.nlink=1,n.uid=0,n.gid=0,n.rdev=s.rdev,ie.isDir(s.mode)?n.size=4096:ie.isFile(s.mode)?n.size=s.usedBytes:ie.isLink(s.mode)?n.size=s.link.length:n.size=0,n.atime=new Date(s.timestamp),n.mtime=new Date(s.timestamp),n.ctime=new Date(s.timestamp),n.blksize=4096,n.blocks=Math.ceil(n.size/n.blksize),n},setattr:function(s,n){n.mode!==void 0&&(s.mode=n.mode),n.timestamp!==void 0&&(s.timestamp=n.timestamp),n.size!==void 0&&St.resizeFileStorage(s,n.size)},lookup:function(s,n){throw ie.genericErrors[44]},mknod:function(s,n,i,g){return St.createNode(s,n,i,g)},rename:function(s,n,i){if(ie.isDir(s.mode)){var g;try{g=ie.lookupNode(n,i)}catch{}if(g)for(var C in g.contents)throw new ie.ErrnoError(55)}delete s.parent.contents[s.name],s.parent.timestamp=Date.now(),s.name=i,n.contents[i]=s,n.timestamp=s.parent.timestamp,s.parent=n},unlink:function(s,n){delete s.contents[n],s.timestamp=Date.now()},rmdir:function(s,n){var i=ie.lookupNode(s,n);for(var g in i.contents)throw new ie.ErrnoError(55);delete s.contents[n],s.timestamp=Date.now()},readdir:function(s){var n=[".",".."];for(var i in s.contents)s.contents.hasOwnProperty(i)&&n.push(i);return n},symlink:function(s,n,i){var g=St.createNode(s,n,41471,0);return g.link=i,g},readlink:function(s){if(!ie.isLink(s.mode))throw new ie.ErrnoError(28);return s.link}},stream_ops:{read:function(s,n,i,g,C){var p=s.node.contents;if(C>=s.node.usedBytes)return 0;var I=Math.min(s.node.usedBytes-C,g);if(I>8&&p.subarray)n.set(p.subarray(C,C+I),i);else for(var M=0;M0||i+n{if(!(s=eo.resolve(s)))return{path:"",node:null};if((n=Object.assign({follow_mount:!0,recurse_count:0},n)).recurse_count>8)throw new ie.ErrnoError(32);for(var i=s.split("/").filter(G=>!!G),g=ie.root,C="/",p=0;p40)throw new ie.ErrnoError(32)}}return{path:C,node:g}},getPath:s=>{for(var n;;){if(ie.isRoot(s)){var i=s.mount.mountpoint;return n?i[i.length-1]!=="/"?i+"/"+n:i+n:i}n=n?s.name+"/"+n:s.name,s=s.parent}},hashName:(s,n)=>{for(var i=0,g=0;g>>0)%ie.nameTable.length},hashAddNode:s=>{var n=ie.hashName(s.parent.id,s.name);s.name_next=ie.nameTable[n],ie.nameTable[n]=s},hashRemoveNode:s=>{var n=ie.hashName(s.parent.id,s.name);if(ie.nameTable[n]===s)ie.nameTable[n]=s.name_next;else for(var i=ie.nameTable[n];i;){if(i.name_next===s){i.name_next=s.name_next;break}i=i.name_next}},lookupNode:(s,n)=>{var i=ie.mayLookup(s);if(i)throw new ie.ErrnoError(i,s);for(var g=ie.hashName(s.id,n),C=ie.nameTable[g];C;C=C.name_next){var p=C.name;if(C.parent.id===s.id&&p===n)return C}return ie.lookup(s,n)},createNode:(s,n,i,g)=>{var C=new ie.FSNode(s,n,i,g);return ie.hashAddNode(C),C},destroyNode:s=>{ie.hashRemoveNode(s)},isRoot:s=>s===s.parent,isMountpoint:s=>!!s.mounted,isFile:s=>(61440&s)==32768,isDir:s=>(61440&s)==16384,isLink:s=>(61440&s)==40960,isChrdev:s=>(61440&s)==8192,isBlkdev:s=>(61440&s)==24576,isFIFO:s=>(61440&s)==4096,isSocket:s=>!(49152&~s),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:s=>{var n=ie.flagModes[s];if(n===void 0)throw new Error("Unknown file open mode: "+s);return n},flagsToPermissionString:s=>{var n=["r","w","rw"][3&s];return 512&s&&(n+="w"),n},nodePermissions:(s,n)=>ie.ignorePermissions||(!n.includes("r")||292&s.mode)&&(!n.includes("w")||146&s.mode)&&(!n.includes("x")||73&s.mode)?0:2,mayLookup:s=>{var n=ie.nodePermissions(s,"x");return n||(s.node_ops.lookup?0:2)},mayCreate:(s,n)=>{try{return ie.lookupNode(s,n),20}catch{}return ie.nodePermissions(s,"wx")},mayDelete:(s,n,i)=>{var g;try{g=ie.lookupNode(s,n)}catch(p){return p.errno}var C=ie.nodePermissions(s,"wx");if(C)return C;if(i){if(!ie.isDir(g.mode))return 54;if(ie.isRoot(g)||ie.getPath(g)===ie.cwd())return 10}else if(ie.isDir(g.mode))return 31;return 0},mayOpen:(s,n)=>s?ie.isLink(s.mode)?32:ie.isDir(s.mode)&&(ie.flagsToPermissionString(n)!=="r"||512&n)?31:ie.nodePermissions(s,ie.flagsToPermissionString(n)):44,MAX_OPEN_FDS:4096,nextfd:(s=0,n=ie.MAX_OPEN_FDS)=>{for(var i=s;i<=n;i++)if(!ie.streams[i])return i;throw new ie.ErrnoError(33)},getStream:s=>ie.streams[s],createStream:(s,n,i)=>{ie.FSStream||(ie.FSStream=function(){this.shared={}},ie.FSStream.prototype={},Object.defineProperties(ie.FSStream.prototype,{object:{get:function(){return this.node},set:function(C){this.node=C}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(C){this.shared.flags=C}},position:{get:function(){return this.shared.position},set:function(C){this.shared.position=C}}})),s=Object.assign(new ie.FSStream,s);var g=ie.nextfd(n,i);return s.fd=g,ie.streams[g]=s,s},closeStream:s=>{ie.streams[s]=null},chrdev_stream_ops:{open:s=>{var n=ie.getDevice(s.node.rdev);s.stream_ops=n.stream_ops,s.stream_ops.open&&s.stream_ops.open(s)},llseek:()=>{throw new ie.ErrnoError(70)}},major:s=>s>>8,minor:s=>255&s,makedev:(s,n)=>s<<8|n,registerDevice:(s,n)=>{ie.devices[s]={stream_ops:n}},getDevice:s=>ie.devices[s],getMounts:s=>{for(var n=[],i=[s];i.length;){var g=i.pop();n.push(g),i.push.apply(i,g.mounts)}return n},syncfs:(s,n)=>{typeof s=="function"&&(n=s,s=!1),ie.syncFSRequests++,ie.syncFSRequests>1&&V0("warning: "+ie.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var i=ie.getMounts(ie.root.mount),g=0;function C(I){return ie.syncFSRequests--,n(I)}function p(I){if(I)return p.errored?void 0:(p.errored=!0,C(I));++g>=i.length&&C(null)}i.forEach(I=>{if(!I.type.syncfs)return p(null);I.type.syncfs(I,s,p)})},mount:(s,n,i)=>{var g,C=i==="/",p=!i;if(C&&ie.root)throw new ie.ErrnoError(10);if(!C&&!p){var I=ie.lookupPath(i,{follow_mount:!1});if(i=I.path,g=I.node,ie.isMountpoint(g))throw new ie.ErrnoError(10);if(!ie.isDir(g.mode))throw new ie.ErrnoError(54)}var M={type:s,opts:n,mountpoint:i,mounts:[]},x=s.mount(M);return x.mount=M,M.root=x,C?ie.root=x:g&&(g.mounted=M,g.mount&&g.mount.mounts.push(M)),x},unmount:s=>{var n=ie.lookupPath(s,{follow_mount:!1});if(!ie.isMountpoint(n.node))throw new ie.ErrnoError(28);var i=n.node,g=i.mounted,C=ie.getMounts(g);Object.keys(ie.nameTable).forEach(I=>{for(var M=ie.nameTable[I];M;){var x=M.name_next;C.includes(M.mount)&&ie.destroyNode(M),M=x}}),i.mounted=null;var p=i.mount.mounts.indexOf(g);i.mount.mounts.splice(p,1)},lookup:(s,n)=>s.node_ops.lookup(s,n),mknod:(s,n,i)=>{var g=ie.lookupPath(s,{parent:!0}).node,C=hr.basename(s);if(!C||C==="."||C==="..")throw new ie.ErrnoError(28);var p=ie.mayCreate(g,C);if(p)throw new ie.ErrnoError(p);if(!g.node_ops.mknod)throw new ie.ErrnoError(63);return g.node_ops.mknod(g,C,n,i)},create:(s,n)=>(n=n!==void 0?n:438,n&=4095,n|=32768,ie.mknod(s,n,0)),mkdir:(s,n)=>(n=n!==void 0?n:511,n&=1023,n|=16384,ie.mknod(s,n,0)),mkdirTree:(s,n)=>{for(var i=s.split("/"),g="",C=0;C(i===void 0&&(i=n,n=438),n|=8192,ie.mknod(s,n,i)),symlink:(s,n)=>{if(!eo.resolve(s))throw new ie.ErrnoError(44);var i=ie.lookupPath(n,{parent:!0}).node;if(!i)throw new ie.ErrnoError(44);var g=hr.basename(n),C=ie.mayCreate(i,g);if(C)throw new ie.ErrnoError(C);if(!i.node_ops.symlink)throw new ie.ErrnoError(63);return i.node_ops.symlink(i,g,s)},rename:(s,n)=>{var i,g,C=hr.dirname(s),p=hr.dirname(n),I=hr.basename(s),M=hr.basename(n);if(i=ie.lookupPath(s,{parent:!0}).node,g=ie.lookupPath(n,{parent:!0}).node,!i||!g)throw new ie.ErrnoError(44);if(i.mount!==g.mount)throw new ie.ErrnoError(75);var x,G=ie.lookupNode(i,I),S=eo.relative(s,p);if(S.charAt(0)!==".")throw new ie.ErrnoError(28);if((S=eo.relative(n,C)).charAt(0)!==".")throw new ie.ErrnoError(55);try{x=ie.lookupNode(g,M)}catch{}if(G!==x){var T=ie.isDir(G.mode),P=ie.mayDelete(i,I,T);if(P)throw new ie.ErrnoError(P);if(P=x?ie.mayDelete(g,M,T):ie.mayCreate(g,M))throw new ie.ErrnoError(P);if(!i.node_ops.rename)throw new ie.ErrnoError(63);if(ie.isMountpoint(G)||x&&ie.isMountpoint(x))throw new ie.ErrnoError(10);if(g!==i&&(P=ie.nodePermissions(i,"w")))throw new ie.ErrnoError(P);ie.hashRemoveNode(G);try{i.node_ops.rename(G,g,M)}catch(j){throw j}finally{ie.hashAddNode(G)}}},rmdir:s=>{var n=ie.lookupPath(s,{parent:!0}).node,i=hr.basename(s),g=ie.lookupNode(n,i),C=ie.mayDelete(n,i,!0);if(C)throw new ie.ErrnoError(C);if(!n.node_ops.rmdir)throw new ie.ErrnoError(63);if(ie.isMountpoint(g))throw new ie.ErrnoError(10);n.node_ops.rmdir(n,i),ie.destroyNode(g)},readdir:s=>{var n=ie.lookupPath(s,{follow:!0}).node;if(!n.node_ops.readdir)throw new ie.ErrnoError(54);return n.node_ops.readdir(n)},unlink:s=>{var n=ie.lookupPath(s,{parent:!0}).node;if(!n)throw new ie.ErrnoError(44);var i=hr.basename(s),g=ie.lookupNode(n,i),C=ie.mayDelete(n,i,!1);if(C)throw new ie.ErrnoError(C);if(!n.node_ops.unlink)throw new ie.ErrnoError(63);if(ie.isMountpoint(g))throw new ie.ErrnoError(10);n.node_ops.unlink(n,i),ie.destroyNode(g)},readlink:s=>{var n=ie.lookupPath(s).node;if(!n)throw new ie.ErrnoError(44);if(!n.node_ops.readlink)throw new ie.ErrnoError(28);return eo.resolve(ie.getPath(n.parent),n.node_ops.readlink(n))},stat:(s,n)=>{var i=ie.lookupPath(s,{follow:!n}).node;if(!i)throw new ie.ErrnoError(44);if(!i.node_ops.getattr)throw new ie.ErrnoError(63);return i.node_ops.getattr(i)},lstat:s=>ie.stat(s,!0),chmod:(s,n,i)=>{var g;if(typeof s=="string"?g=ie.lookupPath(s,{follow:!i}).node:g=s,!g.node_ops.setattr)throw new ie.ErrnoError(63);g.node_ops.setattr(g,{mode:4095&n|-4096&g.mode,timestamp:Date.now()})},lchmod:(s,n)=>{ie.chmod(s,n,!0)},fchmod:(s,n)=>{var i=ie.getStream(s);if(!i)throw new ie.ErrnoError(8);ie.chmod(i.node,n)},chown:(s,n,i,g)=>{var C;if(typeof s=="string"?C=ie.lookupPath(s,{follow:!g}).node:C=s,!C.node_ops.setattr)throw new ie.ErrnoError(63);C.node_ops.setattr(C,{timestamp:Date.now()})},lchown:(s,n,i)=>{ie.chown(s,n,i,!0)},fchown:(s,n,i)=>{var g=ie.getStream(s);if(!g)throw new ie.ErrnoError(8);ie.chown(g.node,n,i)},truncate:(s,n)=>{if(n<0)throw new ie.ErrnoError(28);var i;if(typeof s=="string"?i=ie.lookupPath(s,{follow:!0}).node:i=s,!i.node_ops.setattr)throw new ie.ErrnoError(63);if(ie.isDir(i.mode))throw new ie.ErrnoError(31);if(!ie.isFile(i.mode))throw new ie.ErrnoError(28);var g=ie.nodePermissions(i,"w");if(g)throw new ie.ErrnoError(g);i.node_ops.setattr(i,{size:n,timestamp:Date.now()})},ftruncate:(s,n)=>{var i=ie.getStream(s);if(!i)throw new ie.ErrnoError(8);if(!(2097155&i.flags))throw new ie.ErrnoError(28);ie.truncate(i.node,n)},utime:(s,n,i)=>{var g=ie.lookupPath(s,{follow:!0}).node;g.node_ops.setattr(g,{timestamp:Math.max(n,i)})},open:(s,n,i)=>{if(s==="")throw new ie.ErrnoError(44);var g;if(i=i===void 0?438:i,i=64&(n=typeof n=="string"?ie.modeStringToFlags(n):n)?4095&i|32768:0,typeof s=="object")g=s;else{s=hr.normalize(s);try{g=ie.lookupPath(s,{follow:!(131072&n)}).node}catch{}}var C=!1;if(64&n)if(g){if(128&n)throw new ie.ErrnoError(20)}else g=ie.mknod(s,i,0),C=!0;if(!g)throw new ie.ErrnoError(44);if(ie.isChrdev(g.mode)&&(n&=-513),65536&n&&!ie.isDir(g.mode))throw new ie.ErrnoError(54);if(!C){var p=ie.mayOpen(g,n);if(p)throw new ie.ErrnoError(p)}512&n&&!C&&ie.truncate(g,0),n&=-131713;var I=ie.createStream({node:g,path:ie.getPath(g),flags:n,seekable:!0,position:0,stream_ops:g.stream_ops,ungotten:[],error:!1});return I.stream_ops.open&&I.stream_ops.open(I),!Ce.logReadFiles||1&n||(ie.readFiles||(ie.readFiles={}),s in ie.readFiles||(ie.readFiles[s]=1)),I},close:s=>{if(ie.isClosed(s))throw new ie.ErrnoError(8);s.getdents&&(s.getdents=null);try{s.stream_ops.close&&s.stream_ops.close(s)}catch(n){throw n}finally{ie.closeStream(s.fd)}s.fd=null},isClosed:s=>s.fd===null,llseek:(s,n,i)=>{if(ie.isClosed(s))throw new ie.ErrnoError(8);if(!s.seekable||!s.stream_ops.llseek)throw new ie.ErrnoError(70);if(i!=0&&i!=1&&i!=2)throw new ie.ErrnoError(28);return s.position=s.stream_ops.llseek(s,n,i),s.ungotten=[],s.position},read:(s,n,i,g,C)=>{if(g<0||C<0)throw new ie.ErrnoError(28);if(ie.isClosed(s))throw new ie.ErrnoError(8);if((2097155&s.flags)==1)throw new ie.ErrnoError(8);if(ie.isDir(s.node.mode))throw new ie.ErrnoError(31);if(!s.stream_ops.read)throw new ie.ErrnoError(28);var p=C!==void 0;if(p){if(!s.seekable)throw new ie.ErrnoError(70)}else C=s.position;var I=s.stream_ops.read(s,n,i,g,C);return p||(s.position+=I),I},write:(s,n,i,g,C,p)=>{if(g<0||C<0)throw new ie.ErrnoError(28);if(ie.isClosed(s))throw new ie.ErrnoError(8);if(!(2097155&s.flags))throw new ie.ErrnoError(8);if(ie.isDir(s.node.mode))throw new ie.ErrnoError(31);if(!s.stream_ops.write)throw new ie.ErrnoError(28);s.seekable&&1024&s.flags&&ie.llseek(s,0,2);var I=C!==void 0;if(I){if(!s.seekable)throw new ie.ErrnoError(70)}else C=s.position;var M=s.stream_ops.write(s,n,i,g,C,p);return I||(s.position+=M),M},allocate:(s,n,i)=>{if(ie.isClosed(s))throw new ie.ErrnoError(8);if(n<0||i<=0)throw new ie.ErrnoError(28);if(!(2097155&s.flags))throw new ie.ErrnoError(8);if(!ie.isFile(s.node.mode)&&!ie.isDir(s.node.mode))throw new ie.ErrnoError(43);if(!s.stream_ops.allocate)throw new ie.ErrnoError(138);s.stream_ops.allocate(s,n,i)},mmap:(s,n,i,g,C)=>{if(2&g&&!(2&C)&&(2097155&s.flags)!=2)throw new ie.ErrnoError(2);if((2097155&s.flags)==1)throw new ie.ErrnoError(2);if(!s.stream_ops.mmap)throw new ie.ErrnoError(43);return s.stream_ops.mmap(s,n,i,g,C)},msync:(s,n,i,g,C)=>s.stream_ops.msync?s.stream_ops.msync(s,n,i,g,C):0,munmap:s=>0,ioctl:(s,n,i)=>{if(!s.stream_ops.ioctl)throw new ie.ErrnoError(59);return s.stream_ops.ioctl(s,n,i)},readFile:(s,n={})=>{if(n.flags=n.flags||0,n.encoding=n.encoding||"binary",n.encoding!=="utf8"&&n.encoding!=="binary")throw new Error('Invalid encoding type "'+n.encoding+'"');var i,g=ie.open(s,n.flags),C=ie.stat(s).size,p=new Uint8Array(C);return ie.read(g,p,0,C,0),n.encoding==="utf8"?i=z0(p,0):n.encoding==="binary"&&(i=p),ie.close(g),i},writeFile:(s,n,i={})=>{i.flags=i.flags||577;var g=ie.open(s,i.flags,i.mode);if(typeof n=="string"){var C=new Uint8Array(Ub(n)+1),p=ug(n,C,0,C.length);ie.write(g,C,0,p,void 0,i.canOwn)}else{if(!ArrayBuffer.isView(n))throw new Error("Unsupported data type");ie.write(g,n,0,n.byteLength,void 0,i.canOwn)}ie.close(g)},cwd:()=>ie.currentPath,chdir:s=>{var n=ie.lookupPath(s,{follow:!0});if(n.node===null)throw new ie.ErrnoError(44);if(!ie.isDir(n.node.mode))throw new ie.ErrnoError(54);var i=ie.nodePermissions(n.node,"x");if(i)throw new ie.ErrnoError(i);ie.currentPath=n.path},createDefaultDirectories:()=>{ie.mkdir("/tmp"),ie.mkdir("/home"),ie.mkdir("/home/web_user")},createDefaultDevices:()=>{ie.mkdir("/dev"),ie.registerDevice(ie.makedev(1,3),{read:()=>0,write:(s,n,i,g,C)=>g}),ie.mkdev("/dev/null",ie.makedev(1,3)),Zo.register(ie.makedev(5,0),Zo.default_tty_ops),Zo.register(ie.makedev(6,0),Zo.default_tty1_ops),ie.mkdev("/dev/tty",ie.makedev(5,0)),ie.mkdev("/dev/tty1",ie.makedev(6,0)),ie.mkdir("/dev/shm"),ie.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{ie.mkdir("/proc");var s=ie.mkdir("/proc/self");ie.mkdir("/proc/self/fd"),ie.mount({mount:()=>{var n=ie.createNode(s,"fd",16895,73);return n.node_ops={lookup:(i,g)=>{var C=+g,p=ie.getStream(C);if(!p)throw new ie.ErrnoError(8);var I={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>p.path}};return I.parent=I,I}},n}},{},"/proc/self/fd")},createStandardStreams:()=>{Ce.stdin?ie.createDevice("/dev","stdin",Ce.stdin):ie.symlink("/dev/tty","/dev/stdin"),Ce.stdout?ie.createDevice("/dev","stdout",null,Ce.stdout):ie.symlink("/dev/tty","/dev/stdout"),Ce.stderr?ie.createDevice("/dev","stderr",null,Ce.stderr):ie.symlink("/dev/tty1","/dev/stderr"),ie.open("/dev/stdin",0),ie.open("/dev/stdout",1),ie.open("/dev/stderr",1)},ensureErrnoError:()=>{ie.ErrnoError||(ie.ErrnoError=function(s,n){this.node=n,this.setErrno=function(i){this.errno=i},this.setErrno(s),this.message="FS error"},ie.ErrnoError.prototype=new Error,ie.ErrnoError.prototype.constructor=ie.ErrnoError,[44].forEach(s=>{ie.genericErrors[s]=new ie.ErrnoError(s),ie.genericErrors[s].stack=""}))},staticInit:()=>{ie.ensureErrnoError(),ie.nameTable=new Array(4096),ie.mount(St,{},"/"),ie.createDefaultDirectories(),ie.createDefaultDevices(),ie.createSpecialDirectories(),ie.filesystems={MEMFS:St}},init:(s,n,i)=>{ie.init.initialized=!0,ie.ensureErrnoError(),Ce.stdin=s||Ce.stdin,Ce.stdout=n||Ce.stdout,Ce.stderr=i||Ce.stderr,ie.createStandardStreams()},quit:()=>{ie.init.initialized=!1;for(var s=0;s{var i=0;return s&&(i|=365),n&&(i|=146),i},findObject:(s,n)=>{var i=ie.analyzePath(s,n);return i.exists?i.object:null},analyzePath:(s,n)=>{try{s=(g=ie.lookupPath(s,{follow:!n})).path}catch{}var i={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var g=ie.lookupPath(s,{parent:!0});i.parentExists=!0,i.parentPath=g.path,i.parentObject=g.node,i.name=hr.basename(s),g=ie.lookupPath(s,{follow:!n}),i.exists=!0,i.path=g.path,i.object=g.node,i.name=g.node.name,i.isRoot=g.path==="/"}catch(C){i.error=C.errno}return i},createPath:(s,n,i,g)=>{s=typeof s=="string"?s:ie.getPath(s);for(var C=n.split("/").reverse();C.length;){var p=C.pop();if(p){var I=hr.join2(s,p);try{ie.mkdir(I)}catch{}s=I}}return I},createFile:(s,n,i,g,C)=>{var p=hr.join2(typeof s=="string"?s:ie.getPath(s),n),I=ie.getMode(g,C);return ie.create(p,I)},createDataFile:(s,n,i,g,C,p)=>{var I=n;s&&(s=typeof s=="string"?s:ie.getPath(s),I=n?hr.join2(s,n):s);var M=ie.getMode(g,C),x=ie.create(I,M);if(i){if(typeof i=="string"){for(var G=new Array(i.length),S=0,T=i.length;S{var C=hr.join2(typeof s=="string"?s:ie.getPath(s),n),p=ie.getMode(!!i,!!g);ie.createDevice.major||(ie.createDevice.major=64);var I=ie.makedev(ie.createDevice.major++,0);return ie.registerDevice(I,{open:M=>{M.seekable=!1},close:M=>{g&&g.buffer&&g.buffer.length&&g(10)},read:(M,x,G,S,T)=>{for(var P=0,j=0;j{for(var P=0;P{if(s.isDevice||s.isFolder||s.link||s.contents)return!0;throw typeof XMLHttpRequest<"u"?new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."):new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(s,n,i,g,C)=>{function p(){this.lengthKnown=!1,this.chunks=[]}if(p.prototype.get=function(T){if(!(T>this.length-1||T<0)){var P=T%this.chunkSize,j=T/this.chunkSize|0;return this.getter(j)[P]}},p.prototype.setDataGetter=function(T){this.getter=T},p.prototype.cacheLength=function(){var T=new XMLHttpRequest;if(T.open("HEAD",i,!1),T.send(null),!(T.status>=200&&T.status<300||T.status===304))throw new Error("Couldn't load "+i+". Status: "+T.status);var P,j=Number(T.getResponseHeader("Content-length")),L=(P=T.getResponseHeader("Accept-Ranges"))&&P==="bytes",K=(P=T.getResponseHeader("Content-Encoding"))&&P==="gzip",ae=1048576;L||(ae=j);var Y=this;Y.setDataGetter(V=>{var ee=V*ae,d=(V+1)*ae-1;if(d=Math.min(d,j-1),Y.chunks[V]===void 0&&(Y.chunks[V]=((v,e)=>{if(v>e)throw new Error("invalid range ("+v+", "+e+") or no bytes requested!");if(e>j-1)throw new Error("only "+j+" bytes available! programmer error!");var u=new XMLHttpRequest;if(u.open("GET",i,!1),j!==ae&&u.setRequestHeader("Range","bytes="+v+"-"+e),u.responseType="arraybuffer",u.overrideMimeType&&u.overrideMimeType("text/plain; charset=x-user-defined"),u.send(null),!(u.status>=200&&u.status<300||u.status===304))throw new Error("Couldn't load "+i+". Status: "+u.status);return u.response!==void 0?new Uint8Array(u.response||[]):$b(u.responseText||"",!0)})(ee,d)),Y.chunks[V]===void 0)throw new Error("doXHR failed!");return Y.chunks[V]}),!K&&j||(ae=j=1,j=this.getter(0).length,ae=j,Nu("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=j,this._chunkSize=ae,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!g5)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var I=new p;Object.defineProperties(I,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var M={isDevice:!1,contents:I}}else M={isDevice:!1,url:i};var x=ie.createFile(s,n,M,g,C);M.contents?x.contents=M.contents:M.url&&(x.contents=null,x.url=M.url),Object.defineProperties(x,{usedBytes:{get:function(){return this.contents.length}}});var G={};function S(T,P,j,L,K){var ae=T.node.contents;if(K>=ae.length)return 0;var Y=Math.min(ae.length-K,L);if(ae.slice)for(var V=0;V{var P=x.stream_ops[T];G[T]=function(){return ie.forceLoadFile(x),P.apply(null,arguments)}}),G.read=(T,P,j,L,K)=>(ie.forceLoadFile(x),S(T,P,j,L,K)),G.mmap=(T,P,j,L,K)=>{ie.forceLoadFile(x);var ae=e8();if(!ae)throw new ie.ErrnoError(48);return S(T,ts,ae,P,j),{ptr:ae,allocated:!0}},x.stream_ops=G,x},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(s,n,i)=>{n=n||(()=>{}),i=i||(()=>{});var g=ie.indexedDB();try{var C=g.open(ie.DB_NAME(),ie.DB_VERSION)}catch(p){return i(p)}C.onupgradeneeded=()=>{Nu("creating db"),C.result.createObjectStore(ie.DB_STORE_NAME)},C.onsuccess=()=>{var p=C.result.transaction([ie.DB_STORE_NAME],"readwrite"),I=p.objectStore(ie.DB_STORE_NAME),M=0,x=0,G=s.length;function S(){x==0?n():i()}s.forEach(T=>{var P=I.put(ie.analyzePath(T).object.contents,T);P.onsuccess=()=>{++M+x==G&&S()},P.onerror=()=>{x++,M+x==G&&S()}}),p.onerror=i},C.onerror=i},loadFilesFromDB:(s,n,i)=>{n=n||(()=>{}),i=i||(()=>{});var g=ie.indexedDB();try{var C=g.open(ie.DB_NAME(),ie.DB_VERSION)}catch(p){return i(p)}C.onupgradeneeded=i,C.onsuccess=()=>{var p=C.result;try{var I=p.transaction([ie.DB_STORE_NAME],"readonly")}catch(P){return void i(P)}var M=I.objectStore(ie.DB_STORE_NAME),x=0,G=0,S=s.length;function T(){G==0?n():i()}s.forEach(P=>{var j=M.get(P);j.onsuccess=()=>{ie.analyzePath(P).exists&&ie.unlink(P),ie.createDataFile(hr.dirname(P),hr.basename(P),j.result,!0,!0,!0),++x+G==S&&T()},j.onerror=()=>{G++,x+G==S&&T()}}),I.onerror=i},C.onerror=i}},Or={DEFAULT_POLLMASK:5,calculateAt:function(s,n,i){if(hr.isAbs(n))return n;var g;if(s===-100?g=ie.cwd():g=Or.getStreamFromFD(s).path,n.length==0){if(!i)throw new ie.ErrnoError(44);return g}return hr.join2(g,n)},doStat:function(s,n,i){try{var g=s(n)}catch(M){if(M&&M.node&&hr.normalize(n)!==hr.normalize(ie.getPath(M.node)))return-54;throw M}er[i>>2]=g.dev,er[i+8>>2]=g.ino,er[i+12>>2]=g.mode,ca[i+16>>2]=g.nlink,er[i+20>>2]=g.uid,er[i+24>>2]=g.gid,er[i+28>>2]=g.rdev,Jr=[g.size>>>0,(Mt=g.size,+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[i+40>>2]=Jr[0],er[i+44>>2]=Jr[1],er[i+48>>2]=4096,er[i+52>>2]=g.blocks;var C=g.atime.getTime(),p=g.mtime.getTime(),I=g.ctime.getTime();return Jr=[Math.floor(C/1e3)>>>0,(Mt=Math.floor(C/1e3),+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[i+56>>2]=Jr[0],er[i+60>>2]=Jr[1],ca[i+64>>2]=C%1e3*1e3,Jr=[Math.floor(p/1e3)>>>0,(Mt=Math.floor(p/1e3),+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[i+72>>2]=Jr[0],er[i+76>>2]=Jr[1],ca[i+80>>2]=p%1e3*1e3,Jr=[Math.floor(I/1e3)>>>0,(Mt=Math.floor(I/1e3),+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[i+88>>2]=Jr[0],er[i+92>>2]=Jr[1],ca[i+96>>2]=I%1e3*1e3,Jr=[g.ino>>>0,(Mt=g.ino,+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[i+104>>2]=Jr[0],er[i+108>>2]=Jr[1],0},doMsync:function(s,n,i,g,C){if(!ie.isFile(n.node.mode))throw new ie.ErrnoError(43);if(2&g)return 0;var p=N0.slice(s,s+i);ie.msync(n,p,C,i,g)},varargs:void 0,get:function(){return Or.varargs+=4,er[Or.varargs-4>>2]},getStr:function(s){return L0(s)},getStreamFromFD:function(s){var n=ie.getStream(s);if(!n)throw new ie.ErrnoError(8);return n}},uf={};function Jc(){if(!Jc.strings){var s={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:cg||"./this.program"};for(var n in uf)uf[n]===void 0?delete s[n]:s[n]=uf[n];var i=[];for(var n in s)i.push(n+"="+s[n]);Jc.strings=i}return Jc.strings}var Am=function(s,n,i,g){s||(s=this),this.parent=s,this.mount=s.mount,this.mounted=null,this.id=ie.nextInode++,this.name=n,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=g};Object.defineProperties(Am.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(s){s?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(s){s?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ie.isDir(this.mode)}},isDevice:{get:function(){return ie.isChrdev(this.mode)}}}),ie.FSNode=Am,ie.staticInit(),Ce.FS_createPath=ie.createPath,Ce.FS_createDataFile=ie.createDataFile,Ce.FS_unlink=ie.unlink,Ce.FS_createLazyFile=ie.createLazyFile,Ce.FS_createDevice=ie.createDevice;var C5={g:function(s,n,i,g){mn("Assertion failed: "+L0(s)+", at: "+[n?L0(n):"unknown filename",i,g?L0(g):"unknown function"])},u:function(s,n,i){throw new m5(s).init(n,i),s},d:function(s,n,i){Or.varargs=i;try{var g=Or.getStreamFromFD(s);switch(n){case 0:return(C=Or.get())<0?-28:ie.createStream(g,C).fd;case 1:case 2:case 6:case 7:return 0;case 3:return g.flags;case 4:var C=Or.get();return g.flags|=C,0;case 5:return C=Or.get(),Lu[C+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return p=28,er[$8()>>2]=p,-1}}catch(I){if(ie===void 0||!(I instanceof ie.ErrnoError))throw I;return-I.errno}var p},q:function(s,n,i){try{var g=Or.getStreamFromFD(s);g.getdents||(g.getdents=ie.readdir(g.path));for(var C=280,p=0,I=ie.llseek(g,0,1),M=Math.floor(I/C);M>>0,(Mt=x,+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[n+p>>2]=Jr[0],er[n+p+4>>2]=Jr[1],Jr=[(M+1)*C>>>0,(Mt=(M+1)*C,+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[n+p+8>>2]=Jr[0],er[n+p+12>>2]=Jr[1],Lu[n+p+16>>1]=280,ts[n+p+18|0]=G,ug(S,N0,n+p+19,256),p+=C,M+=1}return ie.llseek(g,M*C,0),p}catch(P){if(ie===void 0||!(P instanceof ie.ErrnoError))throw P;return-P.errno}},h:function(s,n,i){Or.varargs=i;try{var g=Or.getStreamFromFD(s);switch(n){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return g.tty?0:-59;case 21519:if(!g.tty)return-59;var C=Or.get();return er[C>>2]=0,0;case 21520:return g.tty?-28:-59;case 21531:return C=Or.get(),ie.ioctl(g,n,C);default:return-28}}catch(p){if(ie===void 0||!(p instanceof ie.ErrnoError))throw p;return-p.errno}},e:function(s,n,i,g){Or.varargs=g;try{n=Or.getStr(n),n=Or.calculateAt(s,n);var C=g?Or.get():0;return ie.open(n,i,C).fd}catch(p){if(ie===void 0||!(p instanceof ie.ErrnoError))throw p;return-p.errno}},o:function(s){try{return s=Or.getStr(s),ie.rmdir(s),0}catch(n){if(ie===void 0||!(n instanceof ie.ErrnoError))throw n;return-n.errno}},n:function(s,n){try{return s=Or.getStr(s),Or.doStat(ie.stat,s,n)}catch(i){if(ie===void 0||!(i instanceof ie.ErrnoError))throw i;return-i.errno}},p:function(s,n,i){try{return n=Or.getStr(n),n=Or.calculateAt(s,n),i===0?ie.unlink(n):i===512?ie.rmdir(n):mn("Invalid flags passed to unlinkat"),0}catch(g){if(ie===void 0||!(g instanceof ie.ErrnoError))throw g;return-g.errno}},i:function(){return!0},l:function(){mn("")},f:function(){return Date.now()},j:function(s,n,i){N0.copyWithin(s,n,n+i)},m:function(s){N0.length,mn("OOM")},r:function(s,n){var i=0;return Jc().forEach(function(g,C){var p=n+i;ca[s+4*C>>2]=p,function(I,M){for(var x=0;x>2]=i.length;var g=0;return i.forEach(function(C){g+=C.length+1}),ca[n>>2]=g,0},b:function(s){try{var n=Or.getStreamFromFD(s);return ie.close(n),0}catch(i){if(ie===void 0||!(i instanceof ie.ErrnoError))throw i;return i.errno}},t:function(s,n,i,g){try{var C=function(p,I,M,x){for(var G=0,S=0;S>2],P=ca[I+4>>2];I+=8;var j=ie.read(p,ts,T,P,x);if(j<0)return-1;if(G+=j,j>2]=C,0}catch(p){if(ie===void 0||!(p instanceof ie.ErrnoError))throw p;return p.errno}},k:function(s,n,i,g,C){try{var p=(x=i)+2097152>>>0<4194305-!!(M=n)?(M>>>0)+4294967296*x:NaN;if(isNaN(p))return 61;var I=Or.getStreamFromFD(s);return ie.llseek(I,p,g),Jr=[I.position>>>0,(Mt=I.position,+Math.abs(Mt)>=1?Mt>0?(0|Math.min(+Math.floor(Mt/4294967296),4294967295))>>>0:~~+Math.ceil((Mt-+(~~Mt>>>0))/4294967296)>>>0:0)],er[C>>2]=Jr[0],er[C+4>>2]=Jr[1],I.getdents&&p===0&&g===0&&(I.getdents=null),0}catch(G){if(ie===void 0||!(G instanceof ie.ErrnoError))throw G;return G.errno}var M,x},c:function(s,n,i,g){try{var C=function(p,I,M,x){for(var G=0,S=0;S>2],P=ca[I+4>>2];I+=8;var j=ie.write(p,ts,T,P,x);if(j<0)return-1;G+=j}return G}(Or.getStreamFromFD(s),n,i);return ca[g>>2]=C,0}catch(p){if(ie===void 0||!(p instanceof ie.ErrnoError))throw p;return p.errno}},a:Gu};(function(){var s,n={a:C5};function i(C,p){var I=C.exports;Ce.asm=I,Ce.asm.ua,Zb(Ce.asm.v),qb()}function g(C){i(C.instance)}if(Jb(),Ce.instantiateWasm)try{return Ce.instantiateWasm(n,i)}catch(C){return V0("Module.instantiateWasm callback failed with error: "+C),!1}s=g,async function(){return[]}().then(function(C){return Y0.instantiate(C,n)}).then(function(C){return C}).then(s,function(C){V0("failed to asynchronously prepare wasm: "+C),mn(C)})})(),Ce.___wasm_call_ctors=function(){return(Ce.___wasm_call_ctors=Ce.asm.v).apply(null,arguments)};var A8=Ce._emscripten_bind_VoidPtr___destroy___0=function(){return(A8=Ce._emscripten_bind_VoidPtr___destroy___0=Ce.asm.w).apply(null,arguments)},t8=Ce._emscripten_bind_espeak_VOICE_get_name_0=function(){return(t8=Ce._emscripten_bind_espeak_VOICE_get_name_0=Ce.asm.x).apply(null,arguments)},r8=Ce._emscripten_bind_espeak_VOICE_set_name_1=function(){return(r8=Ce._emscripten_bind_espeak_VOICE_set_name_1=Ce.asm.y).apply(null,arguments)},a8=Ce._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(a8=Ce._emscripten_bind_espeak_VOICE_get_languages_1=Ce.asm.z).apply(null,arguments)},s8=Ce._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(s8=Ce._emscripten_bind_espeak_VOICE_get_identifier_0=Ce.asm.A).apply(null,arguments)},i8=Ce._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return(i8=Ce._emscripten_bind_espeak_VOICE_set_identifier_1=Ce.asm.B).apply(null,arguments)},n8=Ce._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(n8=Ce._emscripten_bind_espeak_VOICE_get_gender_0=Ce.asm.C).apply(null,arguments)},o8=Ce._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(o8=Ce._emscripten_bind_espeak_VOICE_set_gender_1=Ce.asm.D).apply(null,arguments)},l8=Ce._emscripten_bind_espeak_VOICE_get_age_0=function(){return(l8=Ce._emscripten_bind_espeak_VOICE_get_age_0=Ce.asm.E).apply(null,arguments)},c8=Ce._emscripten_bind_espeak_VOICE_set_age_1=function(){return(c8=Ce._emscripten_bind_espeak_VOICE_set_age_1=Ce.asm.F).apply(null,arguments)},u8=Ce._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(u8=Ce._emscripten_bind_espeak_VOICE_get_variant_0=Ce.asm.G).apply(null,arguments)},d8=Ce._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(d8=Ce._emscripten_bind_espeak_VOICE_set_variant_1=Ce.asm.H).apply(null,arguments)},f8=Ce._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(f8=Ce._emscripten_bind_espeak_VOICE_get_xx1_0=Ce.asm.I).apply(null,arguments)},g8=Ce._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(g8=Ce._emscripten_bind_espeak_VOICE_set_xx1_1=Ce.asm.J).apply(null,arguments)},p8=Ce._emscripten_bind_espeak_VOICE_get_score_0=function(){return(p8=Ce._emscripten_bind_espeak_VOICE_get_score_0=Ce.asm.K).apply(null,arguments)},h8=Ce._emscripten_bind_espeak_VOICE_set_score_1=function(){return(h8=Ce._emscripten_bind_espeak_VOICE_set_score_1=Ce.asm.L).apply(null,arguments)},m8=Ce._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(m8=Ce._emscripten_bind_espeak_VOICE_get_spare_0=Ce.asm.M).apply(null,arguments)},C8=Ce._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(C8=Ce._emscripten_bind_espeak_VOICE_set_spare_1=Ce.asm.N).apply(null,arguments)},b8=Ce._emscripten_bind_espeak_VOICE___destroy___0=function(){return(b8=Ce._emscripten_bind_espeak_VOICE___destroy___0=Ce.asm.O).apply(null,arguments)},I8=Ce._emscripten_bind_espeak_EVENT_get_type_0=function(){return(I8=Ce._emscripten_bind_espeak_EVENT_get_type_0=Ce.asm.P).apply(null,arguments)},w8=Ce._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(w8=Ce._emscripten_bind_espeak_EVENT_get_unique_identifier_0=Ce.asm.Q).apply(null,arguments)},k8=Ce._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(k8=Ce._emscripten_bind_espeak_EVENT_get_text_position_0=Ce.asm.R).apply(null,arguments)},E8=Ce._emscripten_bind_espeak_EVENT_get_length_0=function(){return(E8=Ce._emscripten_bind_espeak_EVENT_get_length_0=Ce.asm.S).apply(null,arguments)},M8=Ce._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(M8=Ce._emscripten_bind_espeak_EVENT_get_audio_position_0=Ce.asm.T).apply(null,arguments)},v8=Ce._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(v8=Ce._emscripten_bind_espeak_EVENT_get_sample_0=Ce.asm.U).apply(null,arguments)},y8=Ce._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(y8=Ce._emscripten_bind_espeak_EVENT_get_user_data_0=Ce.asm.V).apply(null,arguments)},x8=Ce._emscripten_bind_espeak_EVENT___destroy___0=function(){return(x8=Ce._emscripten_bind_espeak_EVENT___destroy___0=Ce.asm.W).apply(null,arguments)},B8=Ce._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(B8=Ce._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=Ce.asm.X).apply(null,arguments)},D8=Ce._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(D8=Ce._emscripten_bind_eSpeakNGWorker_synth__2=Ce.asm.Y).apply(null,arguments)},T8=Ce._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(T8=Ce._emscripten_bind_eSpeakNGWorker_synth_ipa__2=Ce.asm.Z).apply(null,arguments)},G8=Ce._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(G8=Ce._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=Ce.asm._).apply(null,arguments)},P8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return(P8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_2=Ce.asm.$).apply(null,arguments)},Q8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(Q8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_3=Ce.asm.aa).apply(null,arguments)},S8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(S8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_4=Ce.asm.ba).apply(null,arguments)},F8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(F8=Ce._emscripten_bind_eSpeakNGWorker_set_voice_5=Ce.asm.ca).apply(null,arguments)},O8=Ce._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(O8=Ce._emscripten_bind_eSpeakNGWorker_get_voices_1=Ce.asm.da).apply(null,arguments)},_8=Ce._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(_8=Ce._emscripten_bind_eSpeakNGWorker_set_voices_2=Ce.asm.ea).apply(null,arguments)},z8=Ce._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(z8=Ce._emscripten_bind_eSpeakNGWorker_get_samplerate_0=Ce.asm.fa).apply(null,arguments)},N8=Ce._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(N8=Ce._emscripten_bind_eSpeakNGWorker_get_rate_0=Ce.asm.ga).apply(null,arguments)},L8=Ce._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(L8=Ce._emscripten_bind_eSpeakNGWorker_set_rate_1=Ce.asm.ha).apply(null,arguments)},j8=Ce._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(j8=Ce._emscripten_bind_eSpeakNGWorker_get_pitch_0=Ce.asm.ia).apply(null,arguments)},R8=Ce._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(R8=Ce._emscripten_bind_eSpeakNGWorker_set_pitch_1=Ce.asm.ja).apply(null,arguments)},W8=Ce._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(W8=Ce._emscripten_bind_eSpeakNGWorker___destroy___0=Ce.asm.ka).apply(null,arguments)},V8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return(V8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=Ce.asm.la).apply(null,arguments)},Y8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(Y8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=Ce.asm.ma).apply(null,arguments)},H8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return(H8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=Ce.asm.na).apply(null,arguments)},U8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(U8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=Ce.asm.oa).apply(null,arguments)},K8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(K8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=Ce.asm.pa).apply(null,arguments)},X8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(X8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=Ce.asm.qa).apply(null,arguments)},Z8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(Z8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=Ce.asm.ra).apply(null,arguments)},J8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(J8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=Ce.asm.sa).apply(null,arguments)},q8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return(q8=Ce._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=Ce.asm.ta).apply(null,arguments)},$8=Ce.___errno_location=function(){return($8=Ce.___errno_location=Ce.asm.va).apply(null,arguments)};Ce._free=function(){return(Ce._free=Ce.asm.wa).apply(null,arguments)},Ce._malloc=function(){return(Ce._malloc=Ce.asm.xa).apply(null,arguments)};var ju,e6=Ce.___cxa_is_pointer_type=function(){return(e6=Ce.___cxa_is_pointer_type=Ce.asm.ya).apply(null,arguments)};function A6(s){function n(){ju||(ju=!0,Ce.calledRun=!0,Vb||(Xb=!0,Ce.noFSInit||ie.init.initialized||ie.init(),ie.ignorePermissions=!1,cf(Kb),Ce.onRuntimeInitialized&&Ce.onRuntimeInitialized(),function(){if(Ce.postRun)for(typeof Ce.postRun=="function"&&(Ce.postRun=[Ce.postRun]);Ce.postRun.length;)i=Ce.postRun.shift(),em.unshift(i);var i;cf(em)}()))}Jo>0||(function(){if(Ce.preRun)for(typeof Ce.preRun=="function"&&(Ce.preRun=[Ce.preRun]);Ce.preRun.length;)i=Ce.preRun.shift(),$h.unshift(i);var i;cf($h)}(),Jo>0||(Ce.setStatus?(Ce.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Ce.setStatus("")},1),n()},1)):n()))}if(Ce.___start_em_js=132724,Ce.___stop_em_js=132822,Ce.addRunDependency=Jb,Ce.removeRunDependency=qb,Ce.FS_createPath=ie.createPath,Ce.FS_createDataFile=ie.createDataFile,Ce.FS_createLazyFile=ie.createLazyFile,Ce.FS_createDevice=ie.createDevice,Ce.FS_unlink=ie.unlink,Zc=function s(){ju||A6(),ju||(Zc=s)},Ce.preInit)for(typeof Ce.preInit=="function"&&(Ce.preInit=[Ce.preInit]);Ce.preInit.length>0;)Ce.preInit.pop()();function Is(){}function Ru(s){return(s||Is).__cache__}function j0(s,n){var i=Ru(n),g=i[s];return g||((g=Object.create((n||Is).prototype)).ptr=s,i[s]=g)}A6(),Is.prototype=Object.create(Is.prototype),Is.prototype.constructor=Is,Is.prototype.__class__=Is,Is.__cache__={},Ce.WrapperObject=Is,Ce.getCache=Ru,Ce.wrapPointer=j0,Ce.castObject=function(s,n){return j0(s.ptr,n)},Ce.NULL=j0(0),Ce.destroy=function(s){if(!s.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";s.__destroy__(),delete Ru(s.__class__)[s.ptr]},Ce.compare=function(s,n){return s.ptr===n.ptr},Ce.getPointer=function(s){return s.ptr},Ce.getClass=function(s){return s.__class__};var fr={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(fr.needed){for(var s=0;s=fr.size?(of(C>0),fr.needed+=C,i=Ce._malloc(C),fr.temps.push(i)):(i=fr.buffer+fr.pos,fr.pos+=C),i},copy:function(s,n,i){switch(i>>>=0,n.BYTES_PER_ELEMENT){case 2:i>>>=1;break;case 4:i>>>=2;break;case 8:i>>>=3}for(var g=0;g{Ce.calledRun?s(new Ce.eSpeakNGWorker):Ce.onRuntimeInitialized=()=>s(new Ce.eSpeakNGWorker)}),I5=["en"],w5=t6.then(s=>{const n=s.list_voices().map(({name:g,identifier:C,languages:p})=>({name:g,identifier:C,languages:p.filter(I=>I5.includes(I.name.split("-")[0]))})).filter(g=>g.languages.length>0),i=new Set;for(const g of n){i.add(g.identifier);for(const C of g.languages)i.add(C.name)}return{voices:n,identifiers:i}}),k5=async(s,n="en-us")=>{var C;const i=await t6,{identifiers:g}=await w5;if(!g.has(n))throw new Error(`Invalid language identifier: "${n}". Should be one of: ${Array.from(g).toSorted().join(", ")}.`);return i.set_voice(n),((C=i.synthesize_ipa(s).ipa)==null?void 0:C.split(` +`).filter(p=>p.length>0))??[]};var yu={};function E5(s){if(s.includes("."))return s;if(s.includes(":")){let[p,I]=s.split(":").map(Number);return I===0?`${p} o'clock`:I<10?`${p} oh ${I}`:`${p} ${I}`}let n=parseInt(s.slice(0,4),10);if(n<1100||n%1e3<10)return s;let i=s.slice(0,2),g=parseInt(s.slice(2,4),10),C=s.endsWith("s")?"s":"";if(n%1e3>=100&&n%1e3<=999){if(g===0)return`${i} hundred${C}`;if(g<10)return`${i} oh ${g}${C}`}return`${i} ${g}${C}`}function M5(s){const n=s[0]==="$"?"dollar":"pound";if(isNaN(Number(s.slice(1))))return`${s.slice(1)} ${n}s`;if(!s.includes(".")){let p=s.slice(1)==="1"?"":"s";return`${s.slice(1)} ${n}${p}`}const[i,g]=s.slice(1).split("."),C=parseInt(g.padEnd(2,"0"),10);return`${i} ${n}${i==="1"?"":"s"} and ${C} ${s[0]==="$"?C===1?"cent":"cents":C===1?"penny":"pence"}`}function v5(s){let[n,i]=s.split(".");return`${n} point ${i.split("").join(" ")}`}const y5=new RegExp(`(\\s*[${tm=';:,.!?¡¿—…"«»“”(){}[]',tm.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var tm;async function rm(s,n="a",i=!0){i&&(s=function(M){return M.replace(/[‘’]/g,"'").replace(/«/g,"“").replace(/»/g,"”").replace(/[“”]/g,'"').replace(/\(/g,"«").replace(/\)/g,"»").replace(/、/g,", ").replace(/。/g,". ").replace(/!/g,"! ").replace(/,/g,", ").replace(/:/g,": ").replace(/;/g,"; ").replace(/?/g,"? ").replace(/[^\S \n]/g," ").replace(/ +/," ").replace(new RegExp("(?<=\\n) +(?=\\n)","g"),"").replace(/\bD[Rr]\.(?= [A-Z])/g,"Doctor").replace(/\b(?:Mr\.|MR\.(?= [A-Z]))/g,"Mister").replace(/\b(?:Ms\.|MS\.(?= [A-Z]))/g,"Miss").replace(/\b(?:Mrs\.|MRS\.(?= [A-Z]))/g,"Mrs").replace(/\betc\.(?! [A-Z])/gi,"etc").replace(/\b(y)eah?\b/gi,"$1e'a").replace(new RegExp("\\d*\\.\\d+|\\b\\d{4}s?\\b|(?x.replace(/\./g,"-")).replace(new RegExp("(?<=[A-Z])\\.(?=[A-Z])","gi"),"-").trim()}(s));const g=function(M,x){const G=[];let S=0;for(const T of M.matchAll(x)){const P=T[0];S0&&G.push({match:!0,text:P}),S=T.index+P.length}return SM?x:(await k5(x,C)).join(" ")))).join("").replace(/kəkˈoːɹoʊ/g,"kˈoʊkəɹoʊ").replace(/kəkˈɔːɹəʊ/g,"kˈəʊkəɹəʊ").replace(/ʲ/g,"j").replace(/r/g,"ɹ").replace(/x/g,"k").replace(/ɬ/g,"l").replace(new RegExp("(?<=[a-zɹː])(?=hˈʌndɹɪd)","g")," ").replace(/ z(?=[;:,.!?¡¿—…"«»“” ]|$)/g,"z");return n==="a"&&(I=I.replace(new RegExp("(?<=nˈaɪn)ti(?!ː)","g"),"di")),I.trim()}function df(s,n=!0){return".!?…。?!".includes(s)||n&&s===` +`}function x5(s,n){let i=n;for(;i0&&i0&&this._sentences.push(n),this._buffer="",this._resolve()}_resolve(){this._resolver&&(this._resolver(),this._resolver=null)}_process(){let n=0;const i=this._buffer,g=i.length;let C=0,p=[];const I=M=>{let x=M;for(;x+1=0&&/\S/.test(i[T]);)T--;T=Math.max(n,T+1);const P=x5(i,T);if(!P){++C;continue}if((/https?[,:]\/\//.test(P)||P.includes("@"))&&!df(P.at(-1))){C=T+P.length;continue}if(D5(P)){++C;continue}if(/^([A-Za-z]\.)+$/.test(P)&&S0&&this._resolve()}async*[Symbol.asyncIterator](){if(this._resolver)throw new Error("Another iterator is already active.");for(;;)if(this._sentences.length>0)yield this._sentences.shift();else{if(this._closed)break;await new Promise(n=>{this._resolver=n})}}[Symbol.iterator](){this.flush();const n=this._sentences[Symbol.iterator]();return this._sentences=[],n}get sentences(){return this._sentences}}const Rc=Object.freeze({af_heart:{name:"Heart",language:"en-us",gender:"Female",traits:"❤️",targetQuality:"A",overallGrade:"A"},af_alloy:{name:"Alloy",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_aoede:{name:"Aoede",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_bella:{name:"Bella",language:"en-us",gender:"Female",traits:"🔥",targetQuality:"A",overallGrade:"A-"},af_jessica:{name:"Jessica",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_kore:{name:"Kore",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_nicole:{name:"Nicole",language:"en-us",gender:"Female",traits:"🎧",targetQuality:"B",overallGrade:"B-"},af_nova:{name:"Nova",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_river:{name:"River",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_sarah:{name:"Sarah",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_sky:{name:"Sky",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C-"},am_adam:{name:"Adam",language:"en-us",gender:"Male",targetQuality:"D",overallGrade:"F+"},am_echo:{name:"Echo",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_eric:{name:"Eric",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_fenrir:{name:"Fenrir",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_liam:{name:"Liam",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_michael:{name:"Michael",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_onyx:{name:"Onyx",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_puck:{name:"Puck",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_santa:{name:"Santa",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D-"},bf_emma:{name:"Emma",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"B",overallGrade:"B-"},bf_isabella:{name:"Isabella",language:"en-gb",gender:"Female",targetQuality:"B",overallGrade:"C"},bm_george:{name:"George",language:"en-gb",gender:"Male",targetQuality:"B",overallGrade:"C"},bm_lewis:{name:"Lewis",language:"en-gb",gender:"Male",targetQuality:"C",overallGrade:"D+"},bf_alice:{name:"Alice",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bf_lily:{name:"Lily",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bm_daniel:{name:"Daniel",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"C",overallGrade:"D"},bm_fable:{name:"Fable",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"B",overallGrade:"C"}}),ff=new Map;async function P5(s){if(ff.has(s))return ff.get(s);const n=new Float32Array(await async function(i){if(yu&&Object.hasOwn(yu,"readFile")){const M=typeof __dirname<"u"?__dirname:import.meta.dirname,x=yu.resolve(M,`../voices/${i}.bin`),{buffer:G}=await yu.readFile(x);return G}const g=`https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX/resolve/main/voices/${i}.bin`;let C;try{C=await caches.open("kokoro-voices");const M=await C.match(g);if(M)return await M.arrayBuffer()}catch(M){console.warn("Unable to open cache",M)}const p=await fetch(g),I=await p.arrayBuffer();if(C)try{await C.put(g,new Response(I,{headers:p.headers}))}catch(M){console.warn("Unable to cache file",M)}return I}(s));return ff.set(s,n),n}class dg{constructor(n,i){this.model=n,this.tokenizer=i}static async from_pretrained(n,{dtype:i="fp32",device:g=null,progress_callback:C=null}={}){const p=f5.from_pretrained(n,{progress_callback:C,dtype:i,device:g}),I=u5.from_pretrained(n,{progress_callback:C}),M=await Promise.all([p,I]);return new dg(...M)}get voices(){return Rc}list_voices(){console.table(Rc)}_validate_voice(n){if(!Rc.hasOwnProperty(n))throw console.error(`Voice "${n}" not found. Available voices:`),console.table(Rc),new Error(`Voice "${n}" not found. Should be one of: ${Object.keys(Rc).join(", ")}.`);return n.at(0)}async generate(n,{voice:i="af_heart",speed:g=1}={}){const C=this._validate_voice(i),p=await rm(n,C),{input_ids:I}=this.tokenizer(p,{truncation:!0});return this.generate_from_ids(I,{voice:i,speed:g})}async generate_from_ids(n,{voice:i="af_heart",speed:g=1}={}){const C=256*Math.min(Math.max(n.dims.at(-1)-2,0),509),p=(await P5(i)).slice(C,C+256),I={input_ids:n,style:new Xh("float32",p,[1,256]),speed:new Xh("float32",[g],[1])},{waveform:M}=await this.model(I);return new d5(M.data,24e3)}async*stream(n,{voice:i="af_heart",speed:g=1,split_pattern:C=null}={}){const p=this._validate_voice(i);let I;if(n instanceof Wu)I=n;else{if(typeof n!="string")throw new Error("Invalid input type. Expected string or TextSplitterStream.");{I=new Wu;const M=C?n.split(C).map(x=>x.trim()).filter(x=>x.length>0):[n];I.push(...M)}}for await(const M of I){const x=await rm(M,p),{input_ids:G}=this.tokenizer(x,{truncation:!0}),S=await this.generate_from_ids(G,{voice:i,speed:g});yield{text:M,phonemes:x,audio:S}}}}async function Q5(){try{if(!await navigator.gpu.requestAdapter())throw new Error("WebGPU is not supported (no adapter found)");return!0}catch(s){self.postMessage({status:"error",data:s.toString()})}}const S5="/models/",F5="onnx-community/Kokoro-82M-v1.0-ONNX";Hu.localModelPath=S5;Hu.allowRemoteModels=!0;Hu.allowLocalModels=!0;Hu.backends.onnx.wasm.proxy=!1;let Wc=!1,gf=!1,Vc=new Wu;class Vu{static async Init(n,i=null){if(!this.model){const g=await Q5()?"webgpu":"wasm";this.model_id=n,this.model=await dg.from_pretrained(this.model_id,{dtype:g==="webgpu"?"fp32":"q4",device:g,progress_callback:i})}}}_e(Vu,"model_id",""),_e(Vu,"model",null);async function O5(s){await Vu.Init(s,n=>{}),self.postMessage({status:"ready"})}self.addEventListener("message",async s=>{if(s.data.type)switch(s.data.type){case"load":O5(F5);return;case"interrupt":gf=!0,Vc.close(),Vc=new Wu;return;case"speak":Wc||(gf=!1);break;case"flush":Vc.flush();break;default:console.warn("Unknown TTS worker command type:",s.data.type);return}const{text:n,voice:i,speed:g}=s.data.data;if(s.data.type==="speak"&&Vc.push(n),!Wc){Wc=!0;const C=Vu.model;try{const p=C.stream(Vc,{voice:i,speed:g});for await(const{text:I,audio:M}of p){if(gf){console.log("TTS Worker: Interrupt detected, clearing buffer."),Wc=!1;return}self.postMessage({status:"stream",chunk:{audio:M.toBlob(),text:I}})}}catch(p){console.error("Error during TTS streaming:",p)}finally{Wc=!1}}});