diff --git "a/assets/worker-mhDFBK8A.js" "b/assets/worker-mhDFBK8A.js" new file mode 100644--- /dev/null +++ "b/assets/worker-mhDFBK8A.js" @@ -0,0 +1,2899 @@ +const P0=new Map,Mi=[],Z8=(a,o,n)=>{if(o&&typeof o.init=="function"&&typeof o.createInferenceSessionHandler=="function"){const u=P0.get(a);if(u===void 0)P0.set(a,{backend:o,priority:n});else{if(u.priority>n)return;if(u.priority===n&&u.backend!==o)throw new Error(`cannot register backend "${a}" using priority ${n}`)}if(n>=0){const m=Mi.indexOf(a);m!==-1&&Mi.splice(m,1);for(let b=0;b{const o=P0.get(a);if(!o)return"backend not found.";if(o.initialized)return o.backend;if(o.aborted)return o.error;{const n=!!o.initPromise;try{return n||(o.initPromise=o.backend.init(a)),await o.initPromise,o.initialized=!0,o.backend}catch(u){return n||(o.error=`${u}`,o.aborted=!0),o.error}finally{delete o.initPromise}}},q8=async a=>{const o=a.executionProviders||[],n=o.map(E=>typeof E=="string"?E:E.name),u=n.length===0?Mi:n;let m;const b=[],C=new Set;for(const E of u){const x=await J8(E);typeof x=="string"?b.push({name:E,err:x}):(m||(m=x),m===x&&C.add(E))}if(!m)throw new Error(`no available backend found. ERR: ${b.map(E=>`[${E.name}] ${E.err}`).join(", ")}`);for(const{name:E,err:x}of b)n.includes(E)&&console.warn(`removing requested execution provider "${E}" from session options because it is not available: ${x}`);const w=o.filter(E=>C.has(typeof E=="string"?E:E.name));return[m,new Proxy(a,{get:(E,x)=>x==="executionProviders"?w:Reflect.get(E,x)})]},$8="1.21.0";let nf="warning";const Na={wasm:{},webgl:{},webgpu:{},versions:{common:$8},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);nf=a}},get logLevel(){return nf}};Object.defineProperty(Na,"logLevel",{enumerable:!0});const eI=Na,AI=(a,o)=>{const n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=a.dims[3],n.height=a.dims[2];const u=n.getContext("2d");if(u!=null){let m,b;o?.tensorLayout!==void 0&&o.tensorLayout==="NHWC"?(m=a.dims[2],b=a.dims[3]):(m=a.dims[3],b=a.dims[2]);const C=o?.format!==void 0?o.format:"RGB",w=o?.norm;let E,x;w===void 0||w.mean===void 0?E=[255,255,255,255]:typeof w.mean=="number"?E=[w.mean,w.mean,w.mean,w.mean]:(E=[w.mean[0],w.mean[1],w.mean[2],0],w.mean[3]!==void 0&&(E[3]=w.mean[3])),w===void 0||w.bias===void 0?x=[0,0,0,0]:typeof w.bias=="number"?x=[w.bias,w.bias,w.bias,w.bias]:(x=[w.bias[0],w.bias[1],w.bias[2],0],w.bias[3]!==void 0&&(x[3]=w.bias[3]));const D=b*m;let B=0,v=D,F=D*2,S=-1;C==="RGBA"?(B=0,v=D,F=D*2,S=D*3):C==="RGB"?(B=0,v=D,F=D*2):C==="RBG"&&(B=0,F=D,v=D*2);for(let L=0;L{const n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let u;if(n!=null){let m,b,C;o?.tensorLayout!==void 0&&o.tensorLayout==="NHWC"?(m=a.dims[2],b=a.dims[1],C=a.dims[3]):(m=a.dims[3],b=a.dims[2],C=a.dims[1]);const w=o!==void 0&&o.format!==void 0?o.format:"RGB",E=o?.norm;let x,D;E===void 0||E.mean===void 0?x=[255,255,255,255]:typeof E.mean=="number"?x=[E.mean,E.mean,E.mean,E.mean]:(x=[E.mean[0],E.mean[1],E.mean[2],255],E.mean[3]!==void 0&&(x[3]=E.mean[3])),E===void 0||E.bias===void 0?D=[0,0,0,0]:typeof E.bias=="number"?D=[E.bias,E.bias,E.bias,E.bias]:(D=[E.bias[0],E.bias[1],E.bias[2],0],E.bias[3]!==void 0&&(D[3]=E.bias[3]));const B=b*m;if(o!==void 0&&(o.format!==void 0&&C===4&&o.format!=="RGBA"||C===3&&o.format!=="RGB"&&o.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const v=4;let F=0,S=1,L=2,Z=3,N=0,z=B,K=B*2,f=-1;w==="RGBA"?(N=0,z=B,K=B*2,f=B*3):w==="RGB"?(N=0,z=B,K=B*2):w==="RBG"&&(N=0,K=B,z=B*2),u=n.createImageData(m,b);for(let k=0;k{if(a===void 0)throw new Error("Image buffer must be defined");if(o.height===void 0||o.width===void 0)throw new Error("Image height and width must be defined");if(o.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:n,width:u}=o,m=o.norm??{mean:255,bias:0};let b,C;typeof m.mean=="number"?b=[m.mean,m.mean,m.mean,m.mean]:b=[m.mean[0],m.mean[1],m.mean[2],m.mean[3]??255],typeof m.bias=="number"?C=[m.bias,m.bias,m.bias,m.bias]:C=[m.bias[0],m.bias[1],m.bias[2],m.bias[3]??0];const w=o.format!==void 0?o.format:"RGBA",E=o.tensorFormat!==void 0&&o.tensorFormat!==void 0?o.tensorFormat:"RGB",x=n*u,D=E==="RGBA"?new Float32Array(x*4):new Float32Array(x*3);let B=4,v=0,F=1,S=2,L=3,Z=0,N=x,z=x*2,K=-1;w==="RGB"&&(B=3,v=0,F=1,S=2,L=-1),E==="RGBA"?K=x*3:E==="RBG"?(Z=0,z=x,N=x*2):E==="BGR"&&(z=0,N=x,Z=x*2);for(let k=0;k{const n=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,u=typeof ImageData<"u"&&a instanceof ImageData,m=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,b=typeof a=="string";let C,w=o??{};const E=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},x=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(n){const D=E();D.width=a.width,D.height=a.height;const B=x(D);if(B!=null){let v=a.height,F=a.width;if(o!==void 0&&o.resizedHeight!==void 0&&o.resizedWidth!==void 0&&(v=o.resizedHeight,F=o.resizedWidth),o!==void 0){if(w=o,o.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");w.tensorFormat="RGBA",w.height=v,w.width=F}else w.tensorFormat="RGBA",w.height=v,w.width=F;B.drawImage(a,0,0),C=B.getImageData(0,0,F,v).data}else throw new Error("Can not access image data")}else if(u){let D,B;if(o!==void 0&&o.resizedWidth!==void 0&&o.resizedHeight!==void 0?(D=o.resizedHeight,B=o.resizedWidth):(D=a.height,B=a.width),o!==void 0&&(w=o),w.format="RGBA",w.height=D,w.width=B,o!==void 0){const v=E();v.width=B,v.height=D;const F=x(v);if(F!=null)F.putImageData(a,0,0),C=F.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(m){if(o===void 0)throw new Error("Please provide image config with format for Imagebitmap");const D=E();D.width=a.width,D.height=a.height;const B=x(D);if(B!=null){const v=a.height,F=a.width;return B.drawImage(a,0,0,F,v),C=B.getImageData(0,0,F,v).data,w.height=v,w.width=F,Fl(C,w)}else throw new Error("Can not access image data")}else{if(b)return new Promise((D,B)=>{const v=E(),F=x(v);if(!a||!F)return B();const S=new Image;S.crossOrigin="Anonymous",S.src=a,S.onload=()=>{v.width=S.width,v.height=S.height,F.drawImage(S,0,0,v.width,v.height);const L=F.getImageData(0,0,v.width,v.height);w.height=v.height,w.width=v.width,D(Fl(L.data,w))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return Fl(C,w);throw new Error("Input data provided is not supported - aborted tensor creation")},sI=(a,o)=>{const{width:n,height:u,download:m,dispose:b}=o,C=[1,u,n,4];return new Ia({location:"texture",type:"float32",texture:a,dims:C,download:m,dispose:b})},aI=(a,o)=>{const{dataType:n,dims:u,download:m,dispose:b}=o;return new Ia({location:"gpu-buffer",type:n??"float32",gpuBuffer:a,dims:u,download:m,dispose:b})},nI=(a,o)=>{const{dataType:n,dims:u,download:m,dispose:b}=o;return new Ia({location:"ml-tensor",type:n??"float32",mlTensor:a,dims:u,download:m,dispose:b})},iI=(a,o,n)=>new Ia({location:"cpu-pinned",type:a,data:o,dims:n??[o.length]}),so=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),G0=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let of=!1;const oI=()=>{if(!of){of=!0;const a=typeof BigInt64Array<"u"&&BigInt64Array.from,o=typeof BigUint64Array<"u"&&BigUint64Array.from,n=globalThis.Float16Array,u=typeof n<"u"&&n.from;a&&(so.set("int64",BigInt64Array),G0.set(BigInt64Array,"int64")),o&&(so.set("uint64",BigUint64Array),G0.set(BigUint64Array,"uint64")),u?(so.set("float16",n),G0.set(n,"float16")):so.set("float16",Uint16Array)}},lI=a=>{let o=1;for(let n=0;n{switch(a.location){case"cpu":return new Ia(a.type,a.data,o);case"cpu-pinned":return new Ia({location:"cpu-pinned",data:a.data,type:a.type,dims:o});case"texture":return new Ia({location:"texture",texture:a.texture,type:a.type,dims:o});case"gpu-buffer":return new Ia({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:o});case"ml-tensor":return new Ia({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:o});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}};let Ia=class{constructor(o,n,u){oI();let m,b;if(typeof o=="object"&&"location"in o)switch(this.dataLocation=o.location,m=o.type,b=o.dims,o.location){case"cpu-pinned":{const w=so.get(m);if(!w)throw new TypeError(`unsupported type "${m}" to create tensor from pinned buffer`);if(!(o.data instanceof w))throw new TypeError(`buffer should be of type ${w.name}`);this.cpuData=o.data;break}case"texture":{if(m!=="float32")throw new TypeError(`unsupported type "${m}" to create tensor from texture`);this.gpuTextureData=o.texture,this.downloader=o.download,this.disposer=o.dispose;break}case"gpu-buffer":{if(m!=="float32"&&m!=="float16"&&m!=="int32"&&m!=="int64"&&m!=="uint32"&&m!=="uint8"&&m!=="bool"&&m!=="uint4"&&m!=="int4")throw new TypeError(`unsupported type "${m}" to create tensor from gpu buffer`);this.gpuBufferData=o.gpuBuffer,this.downloader=o.download,this.disposer=o.dispose;break}case"ml-tensor":{if(m!=="float32"&&m!=="float16"&&m!=="int32"&&m!=="int64"&&m!=="uint32"&&m!=="uint64"&&m!=="int8"&&m!=="uint8"&&m!=="bool"&&m!=="uint4"&&m!=="int4")throw new TypeError(`unsupported type "${m}" to create tensor from MLTensor`);this.mlTensorData=o.mlTensor,this.downloader=o.download,this.disposer=o.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let w,E;if(typeof o=="string")if(m=o,E=u,o==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");w=n}else{const x=so.get(o);if(x===void 0)throw new TypeError(`Unsupported tensor type: ${o}.`);if(Array.isArray(n)){if(o==="float16"&&x===Uint16Array||o==="uint4"||o==="int4")throw new TypeError(`Creating a ${o} tensor from number array is not supported. Please use ${x.name} as data.`);o==="uint64"||o==="int64"?w=x.from(n,BigInt):w=x.from(n)}else if(n instanceof x)w=n;else if(n instanceof Uint8ClampedArray)if(o==="uint8")w=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(o==="float16"&&n instanceof Uint16Array&&x!==Uint16Array)w=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${m} tensor's data must be type of ${x}`)}else if(E=n,Array.isArray(o)){if(o.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const x=typeof o[0];if(x==="string")m="string",w=o;else if(x==="boolean")m="bool",w=Uint8Array.from(o);else throw new TypeError(`Invalid element type of data array: ${x}.`)}else if(o instanceof Uint8ClampedArray)m="uint8",w=Uint8Array.from(o);else{const x=G0.get(o.constructor);if(x===void 0)throw new TypeError(`Unsupported type for tensor data: ${o.constructor}.`);m=x,w=o}if(E===void 0)E=[w.length];else if(!Array.isArray(E))throw new TypeError("A tensor's dims must be a number array");b=E,this.cpuData=w,this.dataLocation="cpu"}const C=lI(b);if(this.cpuData&&C!==this.cpuData.length&&!((m==="uint4"||m==="int4")&&Math.ceil(C/2)===this.cpuData.length))throw new Error(`Tensor's size(${C}) does not match data length(${this.cpuData.length}).`);this.type=m,this.dims=b,this.size=C}static async fromImage(o,n){return rI(o,n)}static fromTexture(o,n){return sI(o,n)}static fromGpuBuffer(o,n){return aI(o,n)}static fromMLTensor(o,n){return nI(o,n)}static fromPinnedBuffer(o,n,u){return iI(o,n,u)}toDataURL(o){return AI(this,o)}toImageData(o){return tI(this,o)}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(o){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 n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,o&&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(o){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return cI(this,o)}};const to=Ia,Jp=(a,o)=>{(typeof Na.trace>"u"?!Na.wasm.trace:!Na.trace)||console.timeStamp(`${a}::ORT::${o}`)},qp=(a,o)=>{const n=new Error().stack?.split(/\r\n|\r|\n/g)||[];let u=!1;for(let m=0;m{(typeof Na.trace>"u"?!Na.wasm.trace:!Na.trace)||qp("BEGIN",a)},W2=a=>{(typeof Na.trace>"u"?!Na.wasm.trace:!Na.trace)||qp("END",a)};let uI=class $p{constructor(o){this.handler=o}async run(o,n,u){j2();const m={};let b={};if(typeof o!="object"||o===null||o instanceof to||Array.isArray(o))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof to)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;for(const x of n){if(typeof x!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(x)===-1)throw new RangeError(`'fetches' contains invalid output name: ${x}.`);m[x]=null}if(typeof u=="object"&&u!==null)b=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else{let x=!1;const D=Object.getOwnPropertyNames(n);for(const B of this.outputNames)if(D.indexOf(B)!==-1){const v=n[B];(v===null||v instanceof to)&&(x=!0,C=!1,m[B]=v)}if(x){if(typeof u=="object"&&u!==null)b=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else b=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const x of this.inputNames)if(typeof o[x]>"u")throw new Error(`input '${x}' is missing in 'feeds'.`);if(C)for(const x of this.outputNames)m[x]=null;const w=await this.handler.run(o,m,b),E={};for(const x in w)if(Object.hasOwnProperty.call(w,x)){const D=w[x];D instanceof to?E[x]=D:E[x]=new to(D.type,D.data,D.dims)}return W2(),E}async release(){return this.handler.dispose()}static async create(o,n,u,m){j2();let b,C={};if(typeof o=="string"){if(b=o,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(o instanceof Uint8Array){if(b=o,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(o instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&o instanceof SharedArrayBuffer){const D=o;let B=0,v=o.byteLength;if(typeof n=="object"&&n!==null)C=n;else if(typeof n=="number"){if(B=n,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(v=o.byteLength-B,typeof u=="number"){if(v=u,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||B+v>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof m=="object"&&m!==null)C=m;else if(typeof m<"u")throw new TypeError("'options' must be an object.")}else if(typeof u<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");b=new Uint8Array(D,B,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const[w,E]=await q8(C),x=await w.createInferenceSessionHandler(b,E);return W2(),new $p(x)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};const dI=uI;var fI=Object.freeze({__proto__:null,InferenceSession:dI,TRACE:Jp,TRACE_FUNC_BEGIN:j2,TRACE_FUNC_END:W2,Tensor:to,env:eI,registerBackend:Z8});/*! + * ONNX Runtime Web v1.22.0-dev.20250409-89f8206ba4 + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */var ic=Object.defineProperty,gI=Object.getOwnPropertyDescriptor,pI=Object.getOwnPropertyNames,mI=Object.prototype.hasOwnProperty,hI=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(o,n)=>(typeof require<"u"?require:o)[n]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')}),CA=(a,o)=>()=>(a&&(o=a(a=0)),o),po=(a,o)=>{for(var n in o)ic(a,n,{get:o[n],enumerable:!0})},CI=(a,o,n,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of pI(o))!mI.call(a,m)&&m!==n&&ic(a,m,{get:()=>o[m],enumerable:!(u=gI(o,m))||u.enumerable});return a},Xo=a=>CI(ic({},"__esModule",{value:!0}),a),Po,Un,Bi,lf,em,Am=CA(()=>{Po=new Map,Un=[],Bi=(a,o,n)=>{if(o&&typeof o.init=="function"&&typeof o.createInferenceSessionHandler=="function"){let u=Po.get(a);if(u===void 0)Po.set(a,{backend:o,priority:n});else{if(u.priority>n)return;if(u.priority===n&&u.backend!==o)throw new Error(`cannot register backend "${a}" using priority ${n}`)}if(n>=0){let m=Un.indexOf(a);m!==-1&&Un.splice(m,1);for(let b=0;b{let o=Po.get(a);if(!o)return"backend not found.";if(o.initialized)return o.backend;if(o.aborted)return o.error;{let n=!!o.initPromise;try{return n||(o.initPromise=o.backend.init(a)),await o.initPromise,o.initialized=!0,o.backend}catch(u){return n||(o.error=`${u}`,o.aborted=!0),o.error}finally{delete o.initPromise}}},em=async a=>{let o=a.executionProviders||[],n=o.map(E=>typeof E=="string"?E:E.name),u=n.length===0?Un:n,m,b=[],C=new Set;for(let E of u){let x=await lf(E);typeof x=="string"?b.push({name:E,err:x}):(m||(m=x),m===x&&C.add(E))}if(!m)throw new Error(`no available backend found. ERR: ${b.map(E=>`[${E.name}] ${E.err}`).join(", ")}`);for(let{name:E,err:x}of b)n.includes(E)&&console.warn(`removing requested execution provider "${E}" from session options because it is not available: ${x}`);let w=o.filter(E=>C.has(typeof E=="string"?E:E.name));return[m,new Proxy(a,{get:(E,x)=>x==="executionProviders"?w:Reflect.get(E,x)})]}}),bI=CA(()=>{Am()}),tm,II=CA(()=>{tm="1.22.0-dev.20250409-89f8206ba4"}),Sl,ba,rm=CA(()=>{II(),Sl="warning",ba={wasm:{},webgl:{},webgpu:{},versions:{common:tm},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);Sl=a}},get logLevel(){return Sl}},Object.defineProperty(ba,"logLevel",{enumerable:!0})}),Cr,wI=CA(()=>{rm(),Cr=ba}),sm,am,kI=CA(()=>{sm=(a,o)=>{let n=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);n.width=a.dims[3],n.height=a.dims[2];let u=n.getContext("2d");if(u!=null){let m,b;o?.tensorLayout!==void 0&&o.tensorLayout==="NHWC"?(m=a.dims[2],b=a.dims[3]):(m=a.dims[3],b=a.dims[2]);let C=o?.format!==void 0?o.format:"RGB",w=o?.norm,E,x;w===void 0||w.mean===void 0?E=[255,255,255,255]:typeof w.mean=="number"?E=[w.mean,w.mean,w.mean,w.mean]:(E=[w.mean[0],w.mean[1],w.mean[2],0],w.mean[3]!==void 0&&(E[3]=w.mean[3])),w===void 0||w.bias===void 0?x=[0,0,0,0]:typeof w.bias=="number"?x=[w.bias,w.bias,w.bias,w.bias]:(x=[w.bias[0],w.bias[1],w.bias[2],0],w.bias[3]!==void 0&&(x[3]=w.bias[3]));let D=b*m,B=0,v=D,F=D*2,S=-1;C==="RGBA"?(B=0,v=D,F=D*2,S=D*3):C==="RGB"?(B=0,v=D,F=D*2):C==="RBG"&&(B=0,F=D,v=D*2);for(let L=0;L{let n=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),u;if(n!=null){let m,b,C;o?.tensorLayout!==void 0&&o.tensorLayout==="NHWC"?(m=a.dims[2],b=a.dims[1],C=a.dims[3]):(m=a.dims[3],b=a.dims[2],C=a.dims[1]);let w=o!==void 0&&o.format!==void 0?o.format:"RGB",E=o?.norm,x,D;E===void 0||E.mean===void 0?x=[255,255,255,255]:typeof E.mean=="number"?x=[E.mean,E.mean,E.mean,E.mean]:(x=[E.mean[0],E.mean[1],E.mean[2],255],E.mean[3]!==void 0&&(x[3]=E.mean[3])),E===void 0||E.bias===void 0?D=[0,0,0,0]:typeof E.bias=="number"?D=[E.bias,E.bias,E.bias,E.bias]:(D=[E.bias[0],E.bias[1],E.bias[2],0],E.bias[3]!==void 0&&(D[3]=E.bias[3]));let B=b*m;if(o!==void 0&&(o.format!==void 0&&C===4&&o.format!=="RGBA"||C===3&&o.format!=="RGB"&&o.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let v=4,F=0,S=1,L=2,Z=3,N=0,z=B,K=B*2,f=-1;w==="RGBA"?(N=0,z=B,K=B*2,f=B*3):w==="RGB"?(N=0,z=B,K=B*2):w==="RBG"&&(N=0,K=B,z=B*2),u=n.createImageData(m,b);for(let k=0;k{oc(),m0=(a,o)=>{if(a===void 0)throw new Error("Image buffer must be defined");if(o.height===void 0||o.width===void 0)throw new Error("Image height and width must be defined");if(o.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:n,width:u}=o,m=o.norm??{mean:255,bias:0},b,C;typeof m.mean=="number"?b=[m.mean,m.mean,m.mean,m.mean]:b=[m.mean[0],m.mean[1],m.mean[2],m.mean[3]??255],typeof m.bias=="number"?C=[m.bias,m.bias,m.bias,m.bias]:C=[m.bias[0],m.bias[1],m.bias[2],m.bias[3]??0];let w=o.format!==void 0?o.format:"RGBA",E=o.tensorFormat!==void 0&&o.tensorFormat!==void 0?o.tensorFormat:"RGB",x=n*u,D=E==="RGBA"?new Float32Array(x*4):new Float32Array(x*3),B=4,v=0,F=1,S=2,L=3,Z=0,N=x,z=x*2,K=-1;w==="RGB"&&(B=3,v=0,F=1,S=2,L=-1),E==="RGBA"?K=x*3:E==="RBG"?(Z=0,z=x,N=x*2):E==="BGR"&&(z=0,N=x,Z=x*2);for(let f=0;f{let n=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,u=typeof ImageData<"u"&&a instanceof ImageData,m=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,b=typeof a=="string",C,w=o??{},E=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},x=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(n){let D=E();D.width=a.width,D.height=a.height;let B=x(D);if(B!=null){let v=a.height,F=a.width;if(o!==void 0&&o.resizedHeight!==void 0&&o.resizedWidth!==void 0&&(v=o.resizedHeight,F=o.resizedWidth),o!==void 0){if(w=o,o.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");w.tensorFormat="RGBA",w.height=v,w.width=F}else w.tensorFormat="RGBA",w.height=v,w.width=F;B.drawImage(a,0,0),C=B.getImageData(0,0,F,v).data}else throw new Error("Can not access image data")}else if(u){let D,B;if(o!==void 0&&o.resizedWidth!==void 0&&o.resizedHeight!==void 0?(D=o.resizedHeight,B=o.resizedWidth):(D=a.height,B=a.width),o!==void 0&&(w=o),w.format="RGBA",w.height=D,w.width=B,o!==void 0){let v=E();v.width=B,v.height=D;let F=x(v);if(F!=null)F.putImageData(a,0,0),C=F.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(m){if(o===void 0)throw new Error("Please provide image config with format for Imagebitmap");let D=E();D.width=a.width,D.height=a.height;let B=x(D);if(B!=null){let v=a.height,F=a.width;return B.drawImage(a,0,0,F,v),C=B.getImageData(0,0,F,v).data,w.height=v,w.width=F,m0(C,w)}else throw new Error("Can not access image data")}else{if(b)return new Promise((D,B)=>{let v=E(),F=x(v);if(!a||!F)return B();let S=new Image;S.crossOrigin="Anonymous",S.src=a,S.onload=()=>{v.width=S.width,v.height=S.height,F.drawImage(S,0,0,v.width,v.height);let L=F.getImageData(0,0,v.width,v.height);w.height=v.height,w.width=v.width,D(m0(L.data,w))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return m0(C,w);throw new Error("Input data provided is not supported - aborted tensor creation")},im=(a,o)=>{let{width:n,height:u,download:m,dispose:b}=o,C=[1,u,n,4];return new la({location:"texture",type:"float32",texture:a,dims:C,download:m,dispose:b})},om=(a,o)=>{let{dataType:n,dims:u,download:m,dispose:b}=o;return new la({location:"gpu-buffer",type:n??"float32",gpuBuffer:a,dims:u,download:m,dispose:b})},lm=(a,o)=>{let{dataType:n,dims:u,download:m,dispose:b}=o;return new la({location:"ml-tensor",type:n??"float32",mlTensor:a,dims:u,download:m,dispose:b})},cm=(a,o,n)=>new la({location:"cpu-pinned",type:a,data:o,dims:n??[o.length]})}),vi,jo,Ol,um,MI=CA(()=>{vi=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),jo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Ol=!1,um=()=>{if(!Ol){Ol=!0;let a=typeof BigInt64Array<"u"&&BigInt64Array.from,o=typeof BigUint64Array<"u"&&BigUint64Array.from,n=globalThis.Float16Array,u=typeof n<"u"&&n.from;a&&(vi.set("int64",BigInt64Array),jo.set(BigInt64Array,"int64")),o&&(vi.set("uint64",BigUint64Array),jo.set(BigUint64Array,"uint64")),u?(vi.set("float16",n),jo.set(n,"float16")):vi.set("float16",Uint16Array)}}}),dm,fm,vI=CA(()=>{oc(),dm=a=>{let o=1;for(let n=0;n{switch(a.location){case"cpu":return new la(a.type,a.data,o);case"cpu-pinned":return new la({location:"cpu-pinned",data:a.data,type:a.type,dims:o});case"texture":return new la({location:"texture",texture:a.texture,type:a.type,dims:o});case"gpu-buffer":return new la({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:o});case"ml-tensor":return new la({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:o});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}}}),la,oc=CA(()=>{kI(),EI(),MI(),vI(),la=class{constructor(a,o,n){um();let u,m;if(typeof a=="object"&&"location"in a)switch(this.dataLocation=a.location,u=a.type,m=a.dims,a.location){case"cpu-pinned":{let C=vi.get(u);if(!C)throw new TypeError(`unsupported type "${u}" to create tensor from pinned buffer`);if(!(a.data instanceof C))throw new TypeError(`buffer should be of type ${C.name}`);this.cpuData=a.data;break}case"texture":{if(u!=="float32")throw new TypeError(`unsupported type "${u}" to create tensor from texture`);this.gpuTextureData=a.texture,this.downloader=a.download,this.disposer=a.dispose;break}case"gpu-buffer":{if(u!=="float32"&&u!=="float16"&&u!=="int32"&&u!=="int64"&&u!=="uint32"&&u!=="uint8"&&u!=="bool"&&u!=="uint4"&&u!=="int4")throw new TypeError(`unsupported type "${u}" to create tensor from gpu buffer`);this.gpuBufferData=a.gpuBuffer,this.downloader=a.download,this.disposer=a.dispose;break}case"ml-tensor":{if(u!=="float32"&&u!=="float16"&&u!=="int32"&&u!=="int64"&&u!=="uint32"&&u!=="uint64"&&u!=="int8"&&u!=="uint8"&&u!=="bool"&&u!=="uint4"&&u!=="int4")throw new TypeError(`unsupported type "${u}" to create tensor from MLTensor`);this.mlTensorData=a.mlTensor,this.downloader=a.download,this.disposer=a.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let C,w;if(typeof a=="string")if(u=a,w=n,a==="string"){if(!Array.isArray(o))throw new TypeError("A string tensor's data must be a string array.");C=o}else{let E=vi.get(a);if(E===void 0)throw new TypeError(`Unsupported tensor type: ${a}.`);if(Array.isArray(o)){if(a==="float16"&&E===Uint16Array||a==="uint4"||a==="int4")throw new TypeError(`Creating a ${a} tensor from number array is not supported. Please use ${E.name} as data.`);a==="uint64"||a==="int64"?C=E.from(o,BigInt):C=E.from(o)}else if(o instanceof E)C=o;else if(o instanceof Uint8ClampedArray)if(a==="uint8")C=Uint8Array.from(o);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(a==="float16"&&o instanceof Uint16Array&&E!==Uint16Array)C=new globalThis.Float16Array(o.buffer,o.byteOffset,o.length);else throw new TypeError(`A ${u} tensor's data must be type of ${E}`)}else if(w=o,Array.isArray(a)){if(a.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let E=typeof a[0];if(E==="string")u="string",C=a;else if(E==="boolean")u="bool",C=Uint8Array.from(a);else throw new TypeError(`Invalid element type of data array: ${E}.`)}else if(a instanceof Uint8ClampedArray)u="uint8",C=Uint8Array.from(a);else{let E=jo.get(a.constructor);if(E===void 0)throw new TypeError(`Unsupported type for tensor data: ${a.constructor}.`);u=E,C=a}if(w===void 0)w=[C.length];else if(!Array.isArray(w))throw new TypeError("A tensor's dims must be a number array");m=w,this.cpuData=C,this.dataLocation="cpu"}let b=dm(m);if(this.cpuData&&b!==this.cpuData.length&&!((u==="uint4"||u==="int4")&&Math.ceil(b/2)===this.cpuData.length))throw new Error(`Tensor's size(${b}) does not match data length(${this.cpuData.length}).`);this.type=u,this.dims=m,this.size=b}static async fromImage(a,o){return nm(a,o)}static fromTexture(a,o){return im(a,o)}static fromGpuBuffer(a,o){return om(a,o)}static fromMLTensor(a,o){return lm(a,o)}static fromPinnedBuffer(a,o,n){return cm(a,o,n)}toDataURL(a){return sm(this,a)}toImageData(a){return am(this,a)}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(a){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 o=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=o,a&&this.disposer&&(this.disposer(),this.disposer=void 0),o}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(a){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return fm(this,a)}}}),za,gm=CA(()=>{oc(),za=la}),Zo,_l,La,wa,pm=CA(()=>{rm(),Zo=(a,o)=>{(typeof ba.trace>"u"?!ba.wasm.trace:!ba.trace)||console.timeStamp(`${a}::ORT::${o}`)},_l=(a,o)=>{let n=new Error().stack?.split(/\r\n|\r|\n/g)||[],u=!1;for(let m=0;m{(typeof ba.trace>"u"?!ba.wasm.trace:!ba.trace)||_l("BEGIN",a)},wa=a=>{(typeof ba.trace>"u"?!ba.wasm.trace:!ba.trace)||_l("END",a)}}),mm,xI=CA(()=>{Am(),gm(),pm(),mm=class hm{constructor(o){this.handler=o}async run(o,n,u){La();let m={},b={};if(typeof o!="object"||o===null||o instanceof za||Array.isArray(o))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof za)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;for(let x of n){if(typeof x!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(x)===-1)throw new RangeError(`'fetches' contains invalid output name: ${x}.`);m[x]=null}if(typeof u=="object"&&u!==null)b=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else{let x=!1,D=Object.getOwnPropertyNames(n);for(let B of this.outputNames)if(D.indexOf(B)!==-1){let v=n[B];(v===null||v instanceof za)&&(x=!0,C=!1,m[B]=v)}if(x){if(typeof u=="object"&&u!==null)b=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else b=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let x of this.inputNames)if(typeof o[x]>"u")throw new Error(`input '${x}' is missing in 'feeds'.`);if(C)for(let x of this.outputNames)m[x]=null;let w=await this.handler.run(o,m,b),E={};for(let x in w)if(Object.hasOwnProperty.call(w,x)){let D=w[x];D instanceof za?E[x]=D:E[x]=new za(D.type,D.data,D.dims)}return wa(),E}async release(){return this.handler.dispose()}static async create(o,n,u,m){La();let b,C={};if(typeof o=="string"){if(b=o,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(o instanceof Uint8Array){if(b=o,typeof n=="object"&&n!==null)C=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(o instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&o instanceof SharedArrayBuffer){let D=o,B=0,v=o.byteLength;if(typeof n=="object"&&n!==null)C=n;else if(typeof n=="number"){if(B=n,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(v=o.byteLength-B,typeof u=="number"){if(v=u,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||B+v>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof m=="object"&&m!==null)C=m;else if(typeof m<"u")throw new TypeError("'options' must be an object.")}else if(typeof u<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof n<"u")throw new TypeError("'options' must be an object.");b=new Uint8Array(D,B,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[w,E]=await em(C),x=await w.createInferenceSessionHandler(b,E);return wa(),new hm(x)}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}}}),lc,BI=CA(()=>{xI(),lc=mm}),yI=CA(()=>{}),DI=CA(()=>{}),TI=CA(()=>{}),PI=CA(()=>{}),Cm={};po(Cm,{InferenceSession:()=>lc,TRACE:()=>Zo,TRACE_FUNC_BEGIN:()=>La,TRACE_FUNC_END:()=>wa,Tensor:()=>za,env:()=>Cr,registerBackend:()=>Bi});var Ra=CA(()=>{bI(),wI(),BI(),gm(),yI(),DI(),pm(),TI(),PI()}),cc=CA(()=>{}),bm={};po(bm,{default:()=>Im});var zl,Nl,Im,GI=CA(()=>{vC(),Qi(),uc(),zl="ort-wasm-proxy-worker",Nl=globalThis.self?.name===zl,Nl&&(self.onmessage=a=>{let{type:o,in:n}=a.data;try{switch(o){case"init-wasm":dc(n.wasm).then(()=>{Tc(n).then(()=>{postMessage({type:o})},u=>{postMessage({type:o,err:u})})},u=>{postMessage({type:o,err:u})});break;case"init-ep":{let{epName:u,env:m}=n;Pc(m,u).then(()=>{postMessage({type:o})},b=>{postMessage({type:o,err:b})});break}case"copy-from":{let{buffer:u}=n,m=j0(u);postMessage({type:o,out:m});break}case"create":{let{model:u,options:m}=n;Gc(u,m).then(b=>{postMessage({type:o,out:b})},b=>{postMessage({type:o,err:b})});break}case"release":Qc(n),postMessage({type:o});break;case"run":{let{sessionId:u,inputIndices:m,inputs:b,outputIndices:C,options:w}=n;Fc(u,m,b,C,new Array(C.length).fill(null),w).then(E=>{E.some(x=>x[3]!=="cpu")?postMessage({type:o,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:o,out:E},Oc([...b,...E]))},E=>{postMessage({type:o,err:E})});break}case"end-profiling":Sc(n),postMessage({type:o});break;default:}}catch(u){postMessage({type:o,err:u})}}),Im=Nl?null:a=>new Worker(a??oa,{type:"module",name:zl})}),wm={};po(wm,{default:()=>km});var Ll,Rl,km,cf,QI=CA(()=>{Rl=(Ll=import.meta.url,async function(a={}){var o,n,u=a,m=new Promise((G,W)=>{o=G,n=W}),b=typeof window=="object",C=typeof WorkerGlobalScope<"u",w=C&&self.name?.startsWith("em-pthread");u.mountExternalData=(G,W)=>{G.startsWith("./")&&(G=G.substring(2)),(u.Eb||(u.Eb=new Map)).set(G,W)},u.unmountExternalData=()=>{delete u.Eb};var E=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let x=G=>async(...W)=>{try{if(u.Fb)throw Error("Session already started");let q=u.Fb={dc:W[0],errors:[]},se=await G(...W);if(u.Fb!==q)throw Error("Session mismatch");u.Jb?.flush();let ue=q.errors;if(0$e),0{if(G==="webgpu"){[u.Jb,u.Ub,u.Yb,u.Kb,u.Xb,u.jb,u.Zb,u.ac,u.Vb,u.Wb,u.$b]=W;let q=u.Jb;u.jsepRegisterBuffer=(se,ue,Pe,$e)=>q.registerBuffer(se,ue,Pe,$e),u.jsepGetBuffer=se=>q.getBuffer(se),u.jsepCreateDownloader=(se,ue,Pe)=>q.createDownloader(se,ue,Pe),u.jsepOnCreateSession=se=>{q.onCreateSession(se)},u.jsepOnReleaseSession=se=>{q.onReleaseSession(se)},u.jsepOnRunStart=se=>q.onRunStart(se),u.bc=(se,ue)=>{q.upload(se,ue)}}else if(G==="webnn"){let q=W[0];[u.nc,u.Nb,u.webnnEnsureTensor,u.Ob,u.webnnDownloadTensor]=W.slice(1),u.webnnReleaseTensorId=u.Nb,u.webnnUploadTensor=u.Ob,u.webnnOnRunStart=se=>q.onRunStart(se),u.webnnOnRunEnd=q.onRunEnd.bind(q),u.webnnRegisterMLContext=(se,ue)=>{q.registerMLContext(se,ue)},u.webnnOnReleaseSession=se=>{q.onReleaseSession(se)},u.webnnCreateMLTensorDownloader=(se,ue)=>q.createMLTensorDownloader(se,ue),u.webnnRegisterMLTensor=(se,ue,Pe,$e)=>q.registerMLTensor(se,ue,Pe,$e),u.webnnCreateMLContext=se=>q.createMLContext(se),u.webnnRegisterMLConstant=(se,ue,Pe,$e,dA,xA)=>q.registerMLConstant(se,ue,Pe,$e,dA,u.Eb,xA),u.webnnRegisterGraphInput=q.registerGraphInput.bind(q),u.webnnIsGraphInput=q.isGraphInput.bind(q),u.webnnCreateTemporaryTensor=q.createTemporaryTensor.bind(q),u.webnnIsInt64Supported=q.isInt64Supported.bind(q)}};let D=()=>{let G=(W,q,se)=>(...ue)=>{let Pe=Tt,$e=q?.();ue=W(...ue);let dA=q?.();return $e!==dA&&(W=dA,se($e),q=se=null),Tt!=Pe?new Promise((xA,_A)=>{or={resolve:xA,reject:_A}}):ue};(()=>{for(let W of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])u[W]=G(u[W],()=>u[W],q=>u[W]=q)})(),x!==void 0&&(u._OrtRun=x(u._OrtRun),u._OrtRunWithBinding=x(u._OrtRunWithBinding)),D=void 0};u.asyncInit=()=>{D?.()};var B,v,F=Object.assign({},u),S=(G,W)=>{throw W},L="";(b||C)&&(C?L=self.location.href:typeof document<"u"&&document.currentScript&&(L=document.currentScript.src),Ll&&(L=Ll),L=L.startsWith("blob:")?"":L.slice(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1),C&&(v=G=>{var W=new XMLHttpRequest;return W.open("GET",G,!1),W.responseType="arraybuffer",W.send(null),new Uint8Array(W.response)}),B=async G=>{if(Oe(G))return new Promise((q,se)=>{var ue=new XMLHttpRequest;ue.open("GET",G,!0),ue.responseType="arraybuffer",ue.onload=()=>{ue.status==200||ue.status==0&&ue.response?q(ue.response):se(ue.status)},ue.onerror=se,ue.send(null)});var W=await fetch(G,{credentials:"same-origin"});if(W.ok)return W.arrayBuffer();throw Error(W.status+" : "+W.url)});var Z=console.log.bind(console),N=console.error.bind(console),z=Z,K=N;Object.assign(u,F),F=null;var f,k,e,d,y,te,T,O,he,ee,Ce,we,xe,De=u.wasmBinary,Be=!1,Oe=G=>G.startsWith("file://");function _e(){return f.buffer!=d.buffer&&eA(),d}function ne(){return f.buffer!=d.buffer&&eA(),y}function Ae(){return f.buffer!=d.buffer&&eA(),te}function pe(){return f.buffer!=d.buffer&&eA(),T}function le(){return f.buffer!=d.buffer&&eA(),O}function Qe(){return f.buffer!=d.buffer&&eA(),he}function iA(){return f.buffer!=d.buffer&&eA(),ee}function qe(){return f.buffer!=d.buffer&&eA(),xe}if(w){let G=function(W){try{var q=W.data,se=q.Bb;if(se==="load"){let ue=[];self.onmessage=Pe=>ue.push(Pe),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let Pe of ue)G(Pe);self.onmessage=G};for(let Pe of q.Rb)u[Pe]&&!u[Pe].proxy||(u[Pe]=(...$e)=>{postMessage({Bb:"callHandler",Qb:Pe,args:$e})},Pe=="print"&&(z=u[Pe]),Pe=="printErr"&&(K=u[Pe]));f=q.kc,eA(),oA(q.lc)}else if(se==="run"){Ht(q.Ab),Ka(q.Ab,0,0,1,0,0),bs(),Ie(q.Ab),TA||(ya(),TA=!0);try{Vr(q.fc,q.Hb)}catch(ue){if(ue!="unwind")throw ue}}else q.target!=="setimmediate"&&(se==="checkMailbox"?TA&&ye():se&&(K(`worker: received unknown command ${se}`),K(q)))}catch(ue){throw zn(),ue}};var oA,TA=!1;K=function(...W){W=W.join(" "),console.error(W)},self.alert=function(...W){postMessage({Bb:"alert",text:W.join(" "),ic:Ua()})},self.onunhandledrejection=W=>{throw W.reason||W},self.onmessage=G}function eA(){var G=f.buffer;u.HEAP8=d=new Int8Array(G),u.HEAP16=te=new Int16Array(G),u.HEAPU8=y=new Uint8Array(G),u.HEAPU16=T=new Uint16Array(G),u.HEAP32=O=new Int32Array(G),u.HEAPU32=he=new Uint32Array(G),u.HEAPF32=ee=new Float32Array(G),u.HEAPF64=xe=new Float64Array(G),u.HEAP64=Ce=new BigInt64Array(G),u.HEAPU64=we=new BigUint64Array(G)}function be(){w?startWorker(u):XA.Ca()}w||(f=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),eA());var ze,ge=0,Ye=null;function aA(){if(--ge==0&&Ye){var G=Ye;Ye=null,G()}}function Ze(G){throw K(G="Aborted("+G+")"),Be=!0,G=new WebAssembly.RuntimeError(G+". Build with -sASSERTIONS for more info."),n(G),G}function Ve(){return{a:{L:rA,Aa:We,b:ka,$:da,A:ot,pa:js,X:ce,Z:ke,qa:Me,na:Le,ga:sA,ma:OA,J:HA,Y:BA,V:gt,oa:lt,W:Tr,va:Is,E:_s,Q:Ws,O:xr,D:is,u:uA,r:mA,P:QA,z:en,R:Se,ja:X,T:je,aa:yA,M:MA,F:Je,ia:Ie,sa:bA,t:cr,Ba:Lr,w:Vs,o:Ms,l:WA,c:ns,n:yr,j:$n,v:Ma,p:Dn,f:ei,s:tn,m:Hs,e:Qr,k:GA,i:os,g:Tn,d:rn,da:va,ea:Ai,fa:Wa,ba:yt,ca:sn,N:Aa,xa:Bs,ua:an,h:Sn,C:on,G:lA,ta:Fn,x:ti,ra:FA,U:ln,q:ea,y:cn,K:Hr,S:ls,za:mr,ya:un,ka:aa,la:dn,_:DA,B:Ha,I:kA,ha:ys,H:On,a:f,wa:SA}}}var V={829644:(G,W,q,se,ue)=>{if(u===void 0||!u.Eb)return 1;if((G=Ut(Number(G>>>0))).startsWith("./")&&(G=G.substring(2)),!(G=u.Eb.get(G)))return 2;if(W=Number(W>>>0),q=Number(q>>>0),se=Number(se>>>0),W+q>G.byteLength)return 3;try{let Pe=G.subarray(W,W+q);switch(ue){case 0:ne().set(Pe,se>>>0);break;case 1:u.mc?u.mc(se,Pe):u.bc(se,Pe);break;default:return 4}return 0}catch{return 4}},830468:(G,W,q)=>{u.Ob(G,ne().subarray(W>>>0,W+q>>>0))},830532:()=>u.nc(),830574:G=>{u.Nb(G)},830611:()=>{u.Vb()},830642:()=>{u.Wb()},830671:()=>{u.$b()},830696:G=>u.Ub(G),830729:G=>u.Yb(G),830761:(G,W,q)=>{u.Kb(Number(G),Number(W),Number(q),!0)},830824:(G,W,q)=>{u.Kb(Number(G),Number(W),Number(q))},830881:()=>typeof wasmOffsetConverter<"u",830938:G=>{u.jb("Abs",G,void 0)},830989:G=>{u.jb("Neg",G,void 0)},831040:G=>{u.jb("Floor",G,void 0)},831093:G=>{u.jb("Ceil",G,void 0)},831145:G=>{u.jb("Reciprocal",G,void 0)},831203:G=>{u.jb("Sqrt",G,void 0)},831255:G=>{u.jb("Exp",G,void 0)},831306:G=>{u.jb("Erf",G,void 0)},831357:G=>{u.jb("Sigmoid",G,void 0)},831412:(G,W,q)=>{u.jb("HardSigmoid",G,{alpha:W,beta:q})},831491:G=>{u.jb("Log",G,void 0)},831542:G=>{u.jb("Sin",G,void 0)},831593:G=>{u.jb("Cos",G,void 0)},831644:G=>{u.jb("Tan",G,void 0)},831695:G=>{u.jb("Asin",G,void 0)},831747:G=>{u.jb("Acos",G,void 0)},831799:G=>{u.jb("Atan",G,void 0)},831851:G=>{u.jb("Sinh",G,void 0)},831903:G=>{u.jb("Cosh",G,void 0)},831955:G=>{u.jb("Asinh",G,void 0)},832008:G=>{u.jb("Acosh",G,void 0)},832061:G=>{u.jb("Atanh",G,void 0)},832114:G=>{u.jb("Tanh",G,void 0)},832166:G=>{u.jb("Not",G,void 0)},832217:(G,W,q)=>{u.jb("Clip",G,{min:W,max:q})},832286:G=>{u.jb("Clip",G,void 0)},832338:(G,W)=>{u.jb("Elu",G,{alpha:W})},832396:G=>{u.jb("Gelu",G,void 0)},832448:G=>{u.jb("Relu",G,void 0)},832500:(G,W)=>{u.jb("LeakyRelu",G,{alpha:W})},832564:(G,W)=>{u.jb("ThresholdedRelu",G,{alpha:W})},832634:(G,W)=>{u.jb("Cast",G,{to:W})},832692:G=>{u.jb("Add",G,void 0)},832743:G=>{u.jb("Sub",G,void 0)},832794:G=>{u.jb("Mul",G,void 0)},832845:G=>{u.jb("Div",G,void 0)},832896:G=>{u.jb("Pow",G,void 0)},832947:G=>{u.jb("Equal",G,void 0)},833e3:G=>{u.jb("Greater",G,void 0)},833055:G=>{u.jb("GreaterOrEqual",G,void 0)},833117:G=>{u.jb("Less",G,void 0)},833169:G=>{u.jb("LessOrEqual",G,void 0)},833228:(G,W,q,se,ue)=>{u.jb("ReduceMean",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},833403:(G,W,q,se,ue)=>{u.jb("ReduceMax",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},833577:(G,W,q,se,ue)=>{u.jb("ReduceMin",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},833751:(G,W,q,se,ue)=>{u.jb("ReduceProd",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},833926:(G,W,q,se,ue)=>{u.jb("ReduceSum",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834100:(G,W,q,se,ue)=>{u.jb("ReduceL1",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834273:(G,W,q,se,ue)=>{u.jb("ReduceL2",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834446:(G,W,q,se,ue)=>{u.jb("ReduceLogSum",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834623:(G,W,q,se,ue)=>{u.jb("ReduceSumSquare",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834803:(G,W,q,se,ue)=>{u.jb("ReduceLogSumExp",G,{keepDims:!!W,noopWithEmptyAxes:!!q,axes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},834983:G=>{u.jb("Where",G,void 0)},835036:(G,W,q)=>{u.jb("Transpose",G,{perm:W?Array.from(le().subarray(Number(W)>>>0,Number(q)>>>0)):[]})},835160:(G,W,q,se)=>{u.jb("DepthToSpace",G,{blocksize:W,mode:Ut(q),format:se?"NHWC":"NCHW"})},835293:(G,W,q,se)=>{u.jb("DepthToSpace",G,{blocksize:W,mode:Ut(q),format:se?"NHWC":"NCHW"})},835426:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr,es)=>{u.jb("ConvTranspose",G,{format:xA?"NHWC":"NCHW",autoPad:W,dilations:[q],group:se,kernelShape:[ue],pads:[Pe,$e],strides:[dA],wIsConst:()=>!!_e()[_A>>>0],outputPadding:it?Array.from(le().subarray(Number(it)>>>0,Number(Mt)>>>0)):[],outputShape:Ft?Array.from(le().subarray(Number(Ft)>>>0,Number(Rr)>>>0)):[],activation:Ut(es)})},835859:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("ConvTranspose",G,{format:dA?"NHWC":"NCHW",autoPad:W,dilations:Array.from(le().subarray(Number(q)>>>0,2+(Number(q)>>>0)>>>0)),group:se,kernelShape:Array.from(le().subarray(Number(ue)>>>0,2+(Number(ue)>>>0)>>>0)),pads:Array.from(le().subarray(Number(Pe)>>>0,4+(Number(Pe)>>>0)>>>0)),strides:Array.from(le().subarray(Number($e)>>>0,2+(Number($e)>>>0)>>>0)),wIsConst:()=>!!_e()[xA>>>0],outputPadding:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],outputShape:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[],activation:Ut(Rr)})},836520:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr,es)=>{u.jb("ConvTranspose",G,{format:xA?"NHWC":"NCHW",autoPad:W,dilations:[q],group:se,kernelShape:[ue],pads:[Pe,$e],strides:[dA],wIsConst:()=>!!_e()[_A>>>0],outputPadding:it?Array.from(le().subarray(Number(it)>>>0,Number(Mt)>>>0)):[],outputShape:Ft?Array.from(le().subarray(Number(Ft)>>>0,Number(Rr)>>>0)):[],activation:Ut(es)})},836953:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("ConvTranspose",G,{format:dA?"NHWC":"NCHW",autoPad:W,dilations:Array.from(le().subarray(Number(q)>>>0,2+(Number(q)>>>0)>>>0)),group:se,kernelShape:Array.from(le().subarray(Number(ue)>>>0,2+(Number(ue)>>>0)>>>0)),pads:Array.from(le().subarray(Number(Pe)>>>0,4+(Number(Pe)>>>0)>>>0)),strides:Array.from(le().subarray(Number($e)>>>0,2+(Number($e)>>>0)>>>0)),wIsConst:()=>!!_e()[xA>>>0],outputPadding:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],outputShape:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[],activation:Ut(Rr)})},837614:(G,W)=>{u.jb("GlobalAveragePool",G,{format:W?"NHWC":"NCHW"})},837705:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("AveragePool",G,{format:Rr?"NHWC":"NCHW",auto_pad:W,ceil_mode:q,count_include_pad:se,storage_order:ue,dilations:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[],kernel_shape:dA?Array.from(le().subarray(Number(dA)>>>0,Number(xA)>>>0)):[],pads:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],strides:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[]})},838184:(G,W)=>{u.jb("GlobalAveragePool",G,{format:W?"NHWC":"NCHW"})},838275:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("AveragePool",G,{format:Rr?"NHWC":"NCHW",auto_pad:W,ceil_mode:q,count_include_pad:se,storage_order:ue,dilations:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[],kernel_shape:dA?Array.from(le().subarray(Number(dA)>>>0,Number(xA)>>>0)):[],pads:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],strides:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[]})},838754:(G,W)=>{u.jb("GlobalMaxPool",G,{format:W?"NHWC":"NCHW"})},838841:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("MaxPool",G,{format:Rr?"NHWC":"NCHW",auto_pad:W,ceil_mode:q,count_include_pad:se,storage_order:ue,dilations:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[],kernel_shape:dA?Array.from(le().subarray(Number(dA)>>>0,Number(xA)>>>0)):[],pads:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],strides:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[]})},839316:(G,W)=>{u.jb("GlobalMaxPool",G,{format:W?"NHWC":"NCHW"})},839403:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr)=>{u.jb("MaxPool",G,{format:Rr?"NHWC":"NCHW",auto_pad:W,ceil_mode:q,count_include_pad:se,storage_order:ue,dilations:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[],kernel_shape:dA?Array.from(le().subarray(Number(dA)>>>0,Number(xA)>>>0)):[],pads:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],strides:Mt?Array.from(le().subarray(Number(Mt)>>>0,Number(Ft)>>>0)):[]})},839878:(G,W,q,se,ue)=>{u.jb("Gemm",G,{alpha:W,beta:q,transA:se,transB:ue})},839982:G=>{u.jb("MatMul",G,void 0)},840036:(G,W,q,se)=>{u.jb("ArgMax",G,{keepDims:!!W,selectLastIndex:!!q,axis:se})},840144:(G,W,q,se)=>{u.jb("ArgMin",G,{keepDims:!!W,selectLastIndex:!!q,axis:se})},840252:(G,W)=>{u.jb("Softmax",G,{axis:W})},840315:(G,W)=>{u.jb("Concat",G,{axis:W})},840375:(G,W,q,se,ue)=>{u.jb("Split",G,{axis:W,numOutputs:q,splitSizes:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},840531:G=>{u.jb("Expand",G,void 0)},840585:(G,W)=>{u.jb("Gather",G,{axis:Number(W)})},840656:(G,W)=>{u.jb("GatherElements",G,{axis:Number(W)})},840735:(G,W)=>{u.jb("GatherND",G,{batch_dims:Number(W)})},840814:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it)=>{u.jb("Resize",G,{antialias:W,axes:q?Array.from(le().subarray(Number(q)>>>0,Number(se)>>>0)):[],coordinateTransformMode:Ut(ue),cubicCoeffA:Pe,excludeOutside:$e,extrapolationValue:dA,keepAspectRatioPolicy:Ut(xA),mode:Ut(_A),nearestMode:Ut(it)})},841176:(G,W,q,se,ue,Pe,$e)=>{u.jb("Slice",G,{starts:W?Array.from(le().subarray(Number(W)>>>0,Number(q)>>>0)):[],ends:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[],axes:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[]})},841440:G=>{u.jb("Tile",G,void 0)},841492:(G,W,q)=>{u.jb("InstanceNormalization",G,{epsilon:W,format:q?"NHWC":"NCHW"})},841606:(G,W,q)=>{u.jb("InstanceNormalization",G,{epsilon:W,format:q?"NHWC":"NCHW"})},841720:G=>{u.jb("Range",G,void 0)},841773:(G,W)=>{u.jb("Einsum",G,{equation:Ut(W)})},841854:(G,W,q,se,ue)=>{u.jb("Pad",G,{mode:W,value:q,pads:se?Array.from(le().subarray(Number(se)>>>0,Number(ue)>>>0)):[]})},841997:(G,W,q,se,ue,Pe)=>{u.jb("BatchNormalization",G,{epsilon:W,momentum:q,spatial:!!ue,trainingMode:!!se,format:Pe?"NHWC":"NCHW"})},842166:(G,W,q,se,ue,Pe)=>{u.jb("BatchNormalization",G,{epsilon:W,momentum:q,spatial:!!ue,trainingMode:!!se,format:Pe?"NHWC":"NCHW"})},842335:(G,W,q)=>{u.jb("CumSum",G,{exclusive:Number(W),reverse:Number(q)})},842432:(G,W,q)=>{u.jb("DequantizeLinear",G,{axis:W,blockSize:q})},842522:(G,W,q,se,ue)=>{u.jb("GridSample",G,{align_corners:W,mode:Ut(q),padding_mode:Ut(se),format:ue?"NHWC":"NCHW"})},842692:(G,W,q,se,ue)=>{u.jb("GridSample",G,{align_corners:W,mode:Ut(q),padding_mode:Ut(se),format:ue?"NHWC":"NCHW"})},842862:(G,W)=>{u.jb("ScatterND",G,{reduction:Ut(W)})},842947:(G,W,q,se,ue,Pe,$e,dA,xA)=>{u.jb("Attention",G,{numHeads:W,isUnidirectional:q,maskFilterValue:se,scale:ue,doRotary:Pe,qkvHiddenSizes:$e?Array.from(le().subarray(Number(dA)>>>0,Number(dA)+$e>>>0)):[],pastPresentShareBuffer:!!xA})},843219:G=>{u.jb("BiasAdd",G,void 0)},843274:G=>{u.jb("BiasSplitGelu",G,void 0)},843335:G=>{u.jb("FastGelu",G,void 0)},843391:(G,W,q,se,ue,Pe,$e,dA,xA,_A,it,Mt,Ft,Rr,es,mn)=>{u.jb("Conv",G,{format:Mt?"NHWC":"NCHW",auto_pad:W,dilations:q?Array.from(le().subarray(Number(q)>>>0,Number(se)>>>0)):[],group:ue,kernel_shape:Pe?Array.from(le().subarray(Number(Pe)>>>0,Number($e)>>>0)):[],pads:dA?Array.from(le().subarray(Number(dA)>>>0,Number(xA)>>>0)):[],strides:_A?Array.from(le().subarray(Number(_A)>>>0,Number(it)>>>0)):[],w_is_const:()=>!!_e()[Number(Ft)>>>0],activation:Ut(Rr),activation_params:es?Array.from(iA().subarray(Number(es)>>>0,Number(mn)>>>0)):[]})},843975:G=>{u.jb("Gelu",G,void 0)},844027:(G,W,q,se,ue,Pe,$e,dA,xA)=>{u.jb("GroupQueryAttention",G,{numHeads:W,kvNumHeads:q,scale:se,softcap:ue,doRotary:Pe,rotaryInterleaved:$e,smoothSoftmax:dA,localWindowSize:xA})},844244:(G,W,q,se)=>{u.jb("LayerNormalization",G,{axis:W,epsilon:q,simplified:!!se})},844355:(G,W,q,se)=>{u.jb("LayerNormalization",G,{axis:W,epsilon:q,simplified:!!se})},844466:(G,W,q,se,ue,Pe)=>{u.jb("MatMulNBits",G,{k:W,n:q,accuracyLevel:se,bits:ue,blockSize:Pe})},844593:(G,W,q,se,ue,Pe)=>{u.jb("MultiHeadAttention",G,{numHeads:W,isUnidirectional:q,maskFilterValue:se,scale:ue,doRotary:Pe})},844752:(G,W)=>{u.jb("QuickGelu",G,{alpha:W})},844816:(G,W,q,se,ue)=>{u.jb("RotaryEmbedding",G,{interleaved:!!W,numHeads:q,rotaryEmbeddingDim:se,scale:ue})},844955:(G,W,q)=>{u.jb("SkipLayerNormalization",G,{epsilon:W,simplified:!!q})},845057:(G,W,q)=>{u.jb("SkipLayerNormalization",G,{epsilon:W,simplified:!!q})},845159:(G,W,q,se)=>{u.jb("GatherBlockQuantized",G,{gatherAxis:W,quantizeAxis:q,blockSize:se})},845280:G=>{u.Zb(G)},845314:(G,W)=>u.ac(Number(G),Number(W),u.Fb.dc,u.Fb.errors)};function We(G,W,q){return er(async()=>{await u.Xb(Number(G),Number(W),Number(q))})}function rA(){return typeof wasmOffsetConverter<"u"}class fe{name="ExitStatus";constructor(W){this.message=`Program terminated with exit(${W})`,this.status=W}}var EA=G=>{G.terminate(),G.onmessage=()=>{}},Ue=[],LA=G=>{PA.length==0&&(Ss(),Rt(PA[0]));var W=PA.pop();if(!W)return 6;at.push(W),zA[G.Ab]=W,W.Ab=G.Ab;var q={Bb:"run",fc:G.ec,Hb:G.Hb,Ab:G.Ab};return W.postMessage(q,G.Mb),0},IA=0,hA=(G,W,...q)=>{for(var se=2*q.length,ue=Gs(),Pe=Ir(8*se),$e=Pe>>>3,dA=0;dA>>0]=xA)}return G=et(G,0,se,Pe,W),Ps(ue),G};function SA(G){if(w)return hA(0,1,G);if(e=G,!(0{if(e=G,w)throw pA(G),"unwind";SA(G)},PA=[],at=[],jA=[],zA={},Vt=G=>{var W=G.Ab;delete zA[W],PA.push(G),at.splice(at.indexOf(G),1),G.Ab=0,Ts(W)};function bs(){jA.forEach(G=>G())}var Rt=G=>new Promise(W=>{G.onmessage=ue=>{var Pe=(ue=ue.data).Bb;if(ue.Gb&&ue.Gb!=Ua()){var $e=zA[ue.Gb];$e?$e.postMessage(ue,ue.Mb):K(`Internal error! Worker sent a message "${Pe}" to target pthread ${ue.Gb}, but that thread no longer exists!`)}else Pe==="checkMailbox"?ye():Pe==="spawnThread"?LA(ue):Pe==="cleanupThread"?Vt(zA[ue.hc]):Pe==="loaded"?(G.loaded=!0,W(G)):Pe==="alert"?alert(`Thread ${ue.ic}: ${ue.text}`):ue.target==="setimmediate"?G.postMessage(ue):Pe==="callHandler"?u[ue.Qb](...ue.args):Pe&&K(`worker sent an unknown command ${Pe}`)},G.onerror=ue=>{throw K(`worker sent an error! ${ue.filename}:${ue.lineno}: ${ue.message}`),ue};var q,se=[];for(q of[])u.propertyIsEnumerable(q)&&se.push(q);G.postMessage({Bb:"load",Rb:se,kc:f,lc:k})});function Ss(){var G=new Worker((()=>{let W=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new W("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});PA.push(G)}var Ht=G=>{eA();var W=Qe()[G+52>>>2>>>0];G=Qe()[G+56>>>2>>>0],Fr(W,W-G),Ps(W)},Vr=(G,W)=>{IA=0,G=gn(G,W),0>>=0);throw W>>>=0,q>>>=0,Qe()[se.Ib+16>>>2>>>0]=0,Qe()[se.Ib+4>>>2>>>0]=W,Qe()[se.Ib+8>>>2>>>0]=q,G}function ua(G,W,q,se){return w?hA(2,1,G,W,q,se):da(G,W,q,se)}function da(G,W,q,se){if(G>>>=0,q>>>=0,se>>>=0,E===void 0)return 6;var ue=[];return w&&ue.length===0?ua(G,W>>>=0,q,se):(G={ec:q,Ab:G,Hb:se,Mb:ue},w?(G.Bb="spawnThread",postMessage(G,ue),0):LA(G))}var wA=typeof TextDecoder<"u"?new TextDecoder:void 0,Dr=(G,W=0,q=NaN)=>{var se=(W>>>=0)+q;for(q=W;G[q]&&!(q>=se);)++q;if(16(ue=(240&ue)==224?(15&ue)<<12|Pe<<6|$e:(7&ue)<<18|Pe<<12|$e<<6|63&G[W++])?se+=String.fromCharCode(ue):(ue-=65536,se+=String.fromCharCode(55296|ue>>10,56320|1023&ue))}}else se+=String.fromCharCode(ue)}return se},Ut=(G,W)=>(G>>>=0)?Dr(ne(),G,W):"";function ot(G,W,q){return w?hA(3,1,G,W,q):0}function js(G,W){if(w)return hA(4,1,G,W)}var U=G=>{for(var W=0,q=0;q=se?W++:2047>=se?W+=2:55296<=se&&57343>=se?(W+=4,++q):W+=3}return W},Ee=(G,W,q)=>{var se=ne();if(W>>>=0,0=$e&&($e=65536+((1023&$e)<<10)|1023&G.charCodeAt(++Pe)),127>=$e){if(W>=q)break;se[W++>>>0]=$e}else{if(2047>=$e){if(W+1>=q)break;se[W++>>>0]=192|$e>>6}else{if(65535>=$e){if(W+2>=q)break;se[W++>>>0]=224|$e>>12}else{if(W+3>=q)break;se[W++>>>0]=240|$e>>18,se[W++>>>0]=128|$e>>12&63}se[W++>>>0]=128|$e>>6&63}se[W++>>>0]=128|63&$e}}se[W>>>0]=0,G=W-ue}else G=0;return G};function ce(G,W){if(w)return hA(5,1,G,W)}function ke(G,W,q){if(w)return hA(6,1,G,W,q)}function Me(G,W,q){return w?hA(7,1,G,W,q):0}function Le(G,W){if(w)return hA(8,1,G,W)}function sA(G,W,q){if(w)return hA(9,1,G,W,q)}function OA(G,W,q,se){if(w)return hA(10,1,G,W,q,se)}function HA(G,W,q,se){if(w)return hA(11,1,G,W,q,se)}function BA(G,W,q,se){if(w)return hA(12,1,G,W,q,se)}function gt(G){if(w)return hA(13,1,G)}function lt(G,W){if(w)return hA(14,1,G,W)}function Tr(G,W,q){if(w)return hA(15,1,G,W,q)}var Gt,br,Is=()=>Ze(""),Dt=G=>{for(var W="";ne()[G>>>0];)W+=Gt[ne()[G++>>>0]];return W},Pr={},Os={};function Er(G,W,q={}){return function(se,ue,Pe={}){var $e=ue.name;if(!se)throw new br(`type "${$e}" must have a positive integer typeid pointer`);if(Os.hasOwnProperty(se)){if(Pe.Sb)return;throw new br(`Cannot register type '${$e}' twice`)}Os[se]=ue,Pr.hasOwnProperty(se)&&(ue=Pr[se],delete Pr[se],ue.forEach(dA=>dA()))}(G,W,q)}var ps=(G,W,q)=>{switch(W){case 1:return q?se=>_e()[se>>>0]:se=>ne()[se>>>0];case 2:return q?se=>Ae()[se>>>1>>>0]:se=>pe()[se>>>1>>>0];case 4:return q?se=>le()[se>>>2>>>0]:se=>Qe()[se>>>2>>>0];case 8:return q?se=>Ce[se>>>3]:se=>we[se>>>3];default:throw new TypeError(`invalid integer width (${W}): ${G}`)}};function _s(G,W,q){q>>>=0,Er(G>>>=0,{name:W=Dt(W>>>0),fromWireType:se=>se,toWireType:function(se,ue){if(typeof ue!="bigint"&&typeof ue!="number")throw ue=ue===null?"null":(se=typeof ue)=="object"||se==="array"||se==="function"?ue.toString():""+ue,new TypeError(`Cannot convert "${ue}" to ${this.name}`);return typeof ue=="number"&&(ue=BigInt(ue)),ue},Cb:zt,readValueFromPointer:ps(W,q,W.indexOf("u")==-1),Db:null})}var zt=8;function Ws(G,W,q,se){Er(G>>>=0,{name:W=Dt(W>>>0),fromWireType:function(ue){return!!ue},toWireType:function(ue,Pe){return Pe?q:se},Cb:zt,readValueFromPointer:function(ue){return this.fromWireType(ne()[ue>>>0])},Db:null})}var zs=[],pr=[];function ns(G){9<(G>>>=0)&&--pr[G+1]==0&&(pr[G]=void 0,zs.push(G))}var Mr=G=>{if(!G)throw new br("Cannot use deleted val. handle = "+G);return pr[G]},vr=G=>{switch(G){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let W=zs.pop()||pr.length;return pr[W]=G,pr[W+1]=1,W}};function ws(G){return this.fromWireType(Qe()[G>>>2>>>0])}var qA={name:"emscripten::val",fromWireType:G=>{var W=Mr(G);return ns(G),W},toWireType:(G,W)=>vr(W),Cb:zt,readValueFromPointer:ws,Db:null};function xr(G){return Er(G>>>0,qA)}var ms=(G,W)=>{switch(W){case 4:return function(q){return this.fromWireType(iA()[q>>>2>>>0])};case 8:return function(q){return this.fromWireType(qe()[q>>>3>>>0])};default:throw new TypeError(`invalid float width (${W}): ${G}`)}};function is(G,W,q){q>>>=0,Er(G>>>=0,{name:W=Dt(W>>>0),fromWireType:se=>se,toWireType:(se,ue)=>ue,Cb:zt,readValueFromPointer:ms(W,q),Db:null})}function uA(G,W,q,se,ue){if(G>>>=0,q>>>=0,W=Dt(W>>>0),ue===-1&&(ue=4294967295),ue=dA=>dA,se===0){var Pe=32-8*q;ue=dA=>dA<>>Pe}var $e=W.includes("unsigned")?function(dA,xA){return xA>>>0}:function(dA,xA){return xA};Er(G,{name:W,fromWireType:ue,toWireType:$e,Cb:zt,readValueFromPointer:ps(W,q,se!==0),Db:null})}function mA(G,W,q){function se(Pe){var $e=Qe()[Pe>>>2>>>0];return Pe=Qe()[Pe+4>>>2>>>0],new ue(_e().buffer,Pe,$e)}var ue=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][W];Er(G>>>=0,{name:q=Dt(q>>>0),fromWireType:se,Cb:zt,readValueFromPointer:se},{Sb:!0})}function QA(G,W){Er(G>>>=0,{name:W=Dt(W>>>0),fromWireType:function(q){for(var se,ue=Qe()[q>>>2>>>0],Pe=q+4,$e=Pe,dA=0;dA<=ue;++dA){var xA=Pe+dA;dA!=ue&&ne()[xA>>>0]!=0||($e=Ut($e,xA-$e),se===void 0?se=$e:(se+="\0",se+=$e),$e=xA+1)}return Ds(q),se},toWireType:function(q,se){se instanceof ArrayBuffer&&(se=new Uint8Array(se));var ue=typeof se=="string";if(!(ue||se instanceof Uint8Array||se instanceof Uint8ClampedArray||se instanceof Int8Array))throw new br("Cannot pass non-string to std::string");var Pe=ue?U(se):se.length,$e=ur(4+Pe+1),dA=$e+4;if(Qe()[$e>>>2>>>0]=Pe,ue)Ee(se,dA,Pe+1);else if(ue)for(ue=0;ue>>0]=xA}else for(ue=0;ue>>0]=se[ue];return q!==null&&q.push(Ds,$e),$e},Cb:zt,readValueFromPointer:ws,Db(q){Ds(q)}})}var jt=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,fa=(G,W)=>{for(var q=G>>1,se=q+W/2;!(q>=se)&&pe()[q>>>0];)++q;if(32<(q<<=1)-G&&jt)return jt.decode(ne().slice(G,q));for(q="",se=0;!(se>=W/2);++se){var ue=Ae()[G+2*se>>>1>>>0];if(ue==0)break;q+=String.fromCharCode(ue)}return q},$s=(G,W,q)=>{if(q??=2147483647,2>q)return 0;var se=W;q=(q-=2)<2*G.length?q/2:G.length;for(var ue=0;ue>>1>>>0]=Pe,W+=2}return Ae()[W>>>1>>>0]=0,W-se},ga=G=>2*G.length,Ys=(G,W)=>{for(var q=0,se="";!(q>=W/4);){var ue=le()[G+4*q>>>2>>>0];if(ue==0)break;++q,65536<=ue?(ue-=65536,se+=String.fromCharCode(55296|ue>>10,56320|1023&ue)):se+=String.fromCharCode(ue)}return se},ja=(G,W,q)=>{if(W>>>=0,q??=2147483647,4>q)return 0;var se=W;q=se+q-4;for(var ue=0;ue=Pe&&(Pe=65536+((1023&Pe)<<10)|1023&G.charCodeAt(++ue)),le()[W>>>2>>>0]=Pe,(W+=4)+4>q)break}return le()[W>>>2>>>0]=0,W-se},pa=G=>{for(var W=0,q=0;q=se&&++q,W+=4}return W};function en(G,W,q){if(G>>>=0,W>>>=0,q=Dt(q>>>=0),W===2)var se=fa,ue=$s,Pe=ga,$e=dA=>pe()[dA>>>1>>>0];else W===4&&(se=Ys,ue=ja,Pe=pa,$e=dA=>Qe()[dA>>>2>>>0]);Er(G,{name:q,fromWireType:dA=>{for(var xA,_A=Qe()[dA>>>2>>>0],it=dA+4,Mt=0;Mt<=_A;++Mt){var Ft=dA+4+Mt*W;Mt!=_A&&$e(Ft)!=0||(it=se(it,Ft-it),xA===void 0?xA=it:(xA+="\0",xA+=it),it=Ft+W)}return Ds(dA),xA},toWireType:(dA,xA)=>{if(typeof xA!="string")throw new br(`Cannot pass non-string to C++ string type ${q}`);var _A=Pe(xA),it=ur(4+_A+W);return Qe()[it>>>2>>>0]=_A/W,ue(xA,it+4,_A+W),dA!==null&&dA.push(Ds,it),it},Cb:zt,readValueFromPointer:ws,Db(dA){Ds(dA)}})}function Se(G,W){Er(G>>>=0,{Tb:!0,name:W=Dt(W>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function X(G){Ka(G>>>0,!C,1,!b,131072,!1),bs()}var de=G=>{if(!Be)try{if(G(),!(0>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(le(),G>>>2,G).value.then(ye),G+=128,Atomics.store(le(),G>>>2,1))}var ye=()=>{var G=Ua();G&&(Ie(G),de(fn))};function je(G,W){(G>>>=0)==W>>>0?setTimeout(ye):w?postMessage({Gb:G,Bb:"checkMailbox"}):(G=zA[G])&&G.postMessage({Bb:"checkMailbox"})}var AA=[];function yA(G,W,q,se,ue){for(W>>>=0,se/=2,AA.length=se,q=ue>>>0>>>3,ue=0;ue>>0];return(W?V[W]:si[G])(...AA)}var MA=()=>{IA=0};function Je(G){G>>>=0,w?postMessage({Bb:"cleanupThread",hc:G}):Vt(zA[G])}function bA(G){}var ct=(G,W)=>{var q=Os[G];if(q===void 0)throw G=_n(G),q=Dt(G),Ds(G),new br(`${W} has unknown type ${q}`);return q},nt=(G,W,q)=>{var se=[];return G=G.toWireType(se,q),se.length&&(Qe()[W>>>2>>>0]=vr(se)),G};function cr(G,W,q){return W>>>=0,q>>>=0,G=Mr(G>>>0),W=ct(W,"emval::as"),nt(W,q,G)}function Lr(G,W){return W>>>=0,G=Mr(G>>>0),(W=ct(W,"emval::as")).toWireType(null,G)}var qt=G=>{try{G()}catch(W){Ze(W)}},Qt=0,Tt=null,Gr=0,ks=[],ir={},Es={},$t=0,or=null,Bt=[];function er(G){return function(W){if(!Be){if(Qt===0){var q=!1,se=!1;W((ue=0)=>{if(!Be&&(Gr=ue,q=!0,se)){Qt=2,qt(()=>pn(Tt)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),ue=!1;try{var Pe=function(){var xA=le()[Tt+8>>>2>>>0];return xA=XA[Es[xA]],--IA,xA()}()}catch(xA){Pe=xA,ue=!0}var $e=!1;if(!Tt){var dA=or;dA&&(or=null,(ue?dA.reject:dA.resolve)(Pe),$e=!0)}if(ue&&!$e)throw Pe}}),se=!0,q||(Qt=1,Tt=function(){var ue=ur(65548),Pe=ue+12;Qe()[ue>>>2>>>0]=Pe,Qe()[ue+4>>>2>>>0]=Pe+65536,Pe=ks[0];var $e=ir[Pe];return $e===void 0&&($e=$t++,ir[Pe]=$e,Es[$e]=Pe),Pe=$e,le()[ue+8>>>2>>>0]=Pe,ue}(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),qt(()=>Za(Tt)))}else Qt===2?(Qt=0,qt(Ar),Ds(Tt),Tt=null,Bt.forEach(de)):Ze(`invalid state: ${Qt}`);return Gr}}(W=>{G().then(W)})}function Vs(G){return G>>>=0,er(async()=>{var W=await Mr(G);return vr(W)})}var lr=[];function Ms(G,W,q,se){return q>>>=0,se>>>=0,(G=lr[G>>>0])(null,W=Mr(W>>>0),q,se)}var Br={},Kt=G=>{var W=Br[G];return W===void 0?Dt(G):W};function WA(G,W,q,se,ue){return q>>>=0,se>>>=0,ue>>>=0,(G=lr[G>>>0])(W=Mr(W>>>0),W[q=Kt(q)],se,ue)}var wt=()=>typeof globalThis=="object"?globalThis:Function("return this")();function yr(G){return(G>>>=0)==0?vr(wt()):(G=Kt(G),vr(wt()[G]))}var Ea=G=>{var W=lr.length;return lr.push(G),W},An=(G,W)=>{for(var q=Array(G),se=0;se>>2>>>0],"parameter "+se);return q},ma=(G,W)=>Object.defineProperty(W,"name",{value:G});function $n(G,W,q){var se=(W=An(G,W>>>0)).shift();G--;var ue=`return function (obj, func, destructorsRef, args) { +`,Pe=0,$e=[];q===0&&$e.push("obj");for(var dA=["retType"],xA=[se],_A=0;_Ait.name).join(", ")}) => ${se.name}>`,Ea(ma(q,G))}function Ma(G){return G=Kt(G>>>0),vr(u[G])}function Dn(G,W){return W>>>=0,G=Mr(G>>>0),W=Mr(W),vr(G[W])}function ei(G){9<(G>>>=0)&&(pr[G+1]+=1)}function tn(){return vr([])}function Hs(G){G=Mr(G>>>0);for(var W=Array(G.length),q=0;q>>0))}function GA(){return vr({})}function os(G){for(var W=Mr(G>>>=0);W.length;){var q=W.pop();W.pop()(q)}ns(G)}function Tn(G,W,q){W>>>=0,q>>>=0,G=Mr(G>>>0),W=Mr(W),q=Mr(q),G[W]=q}function rn(G,W){return W>>>=0,G=(G=ct(G>>>0,"_emval_take_value")).readValueFromPointer(W),vr(G)}function va(G,W){G=-9007199254740992>G||9007199254740992>>=0,G=new Date(1e3*G),le()[W>>>2>>>0]=G.getUTCSeconds(),le()[W+4>>>2>>>0]=G.getUTCMinutes(),le()[W+8>>>2>>>0]=G.getUTCHours(),le()[W+12>>>2>>>0]=G.getUTCDate(),le()[W+16>>>2>>>0]=G.getUTCMonth(),le()[W+20>>>2>>>0]=G.getUTCFullYear()-1900,le()[W+24>>>2>>>0]=G.getUTCDay(),G=(G.getTime()-Date.UTC(G.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,le()[W+28>>>2>>>0]=G}var Pn=G=>G%4==0&&(G%100!=0||G%400==0),Gn=[0,31,60,91,121,152,182,213,244,274,305,335],Qn=[0,31,59,90,120,151,181,212,243,273,304,334];function Ai(G,W){G=-9007199254740992>G||9007199254740992>>=0,G=new Date(1e3*G),le()[W>>>2>>>0]=G.getSeconds(),le()[W+4>>>2>>>0]=G.getMinutes(),le()[W+8>>>2>>>0]=G.getHours(),le()[W+12>>>2>>>0]=G.getDate(),le()[W+16>>>2>>>0]=G.getMonth(),le()[W+20>>>2>>>0]=G.getFullYear()-1900,le()[W+24>>>2>>>0]=G.getDay();var q=(Pn(G.getFullYear())?Gn:Qn)[G.getMonth()]+G.getDate()-1|0;le()[W+28>>>2>>>0]=q,le()[W+36>>>2>>>0]=-60*G.getTimezoneOffset(),q=new Date(G.getFullYear(),6,1).getTimezoneOffset();var se=new Date(G.getFullYear(),0,1).getTimezoneOffset();G=0|(q!=se&&G.getTimezoneOffset()==Math.min(se,q)),le()[W+32>>>2>>>0]=G}function Wa(G){G>>>=0;var W=new Date(le()[G+20>>>2>>>0]+1900,le()[G+16>>>2>>>0],le()[G+12>>>2>>>0],le()[G+8>>>2>>>0],le()[G+4>>>2>>>0],le()[G>>>2>>>0],0),q=le()[G+32>>>2>>>0],se=W.getTimezoneOffset(),ue=new Date(W.getFullYear(),6,1).getTimezoneOffset(),Pe=new Date(W.getFullYear(),0,1).getTimezoneOffset(),$e=Math.min(Pe,ue);return 0>q?le()[G+32>>>2>>>0]=+(ue!=Pe&&$e==se):0>>2>>>0]=W.getDay(),q=(Pn(W.getFullYear())?Gn:Qn)[W.getMonth()]+W.getDate()-1|0,le()[G+28>>>2>>>0]=q,le()[G>>>2>>>0]=W.getSeconds(),le()[G+4>>>2>>>0]=W.getMinutes(),le()[G+8>>>2>>>0]=W.getHours(),le()[G+12>>>2>>>0]=W.getDate(),le()[G+16>>>2>>>0]=W.getMonth(),le()[G+20>>>2>>>0]=W.getYear(),G=W.getTime(),BigInt(isNaN(G)?-1:G/1e3)}function yt(G,W,q,se,ue,Pe,$e){return w?hA(16,1,G,W,q,se,ue,Pe,$e):-52}function sn(G,W,q,se,ue,Pe){if(w)return hA(17,1,G,W,q,se,ue,Pe)}var xa={},ea=()=>performance.timeOrigin+performance.now();function Aa(G,W){if(w)return hA(18,1,G,W);if(xa[G]&&(clearTimeout(xa[G].id),delete xa[G]),!W)return 0;var q=setTimeout(()=>{delete xa[G],de(()=>Ns(G,performance.timeOrigin+performance.now()))},W);return xa[G]={id:q,qc:W},0}function Bs(G,W,q,se){G>>>=0,W>>>=0,q>>>=0,se>>>=0;var ue=new Date().getFullYear(),Pe=new Date(ue,0,1).getTimezoneOffset();ue=new Date(ue,6,1).getTimezoneOffset();var $e=Math.max(Pe,ue);Qe()[G>>>2>>>0]=60*$e,le()[W>>>2>>>0]=+(Pe!=ue),G=(W=dA=>{var xA=Math.abs(dA);return`UTC${0<=dA?"-":"+"}${String(Math.floor(xA/60)).padStart(2,"0")}${String(xA%60).padStart(2,"0")}`})(Pe),W=W(ue),ueDate.now();function an(G,W,q){return 0<=G&&3>=G?(G===0?G=Date.now():G=performance.timeOrigin+performance.now(),Ce[q>>>0>>>3]=BigInt(Math.round(1e6*G)),0):28}var ta=[],nn=(G,W)=>{ta.length=0;for(var q;q=ne()[G++>>>0];){var se=q!=105;W+=(se&=q!=112)&&W%8?4:0,ta.push(q==112?Qe()[W>>>2>>>0]:q==106?Ce[W>>>3]:q==105?le()[W>>>2>>>0]:qe()[W>>>3>>>0]),W+=se?8:4}return ta};function Sn(G,W,q){return G>>>=0,W=nn(W>>>0,q>>>0),V[G](...W)}function on(G,W,q){return G>>>=0,W=nn(W>>>0,q>>>0),V[G](...W)}var lA=()=>{};function ti(G,W){return K(Ut(G>>>0,W>>>0))}var FA=()=>{throw IA+=1,"unwind"};function ln(){return 4294901760}var cn=()=>navigator.hardwareConcurrency;function Hr(){return Ze("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function ls(G){G>>>=0;var W=ne().length;if(G<=W||4294901760=q;q*=2){var se=W*(1+.2/q);se=Math.min(se,G+100663296);e:{se=(Math.min(4294901760,65536*Math.ceil(Math.max(G,se)/65536))-f.buffer.byteLength+65535)/65536|0;try{f.grow(se),eA();var ue=1;break e}catch{}ue=void 0}if(ue)return!0}return!1}var ra=()=>(Ze("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),Us={},Ya=G=>{G.forEach(W=>{ra()})};function mr(){var G=Error().stack.toString().split(` +`);return G[0]=="Error"&&G.shift(),Ya(G),Us.Lb=ra(),Us.cc=G,Us.Lb}function un(G,W,q){if(G>>>=0,W>>>=0,Us.Lb==G)var se=Us.cc;else(se=Error().stack.toString().split(` +`))[0]=="Error"&&se.shift(),Ya(se);for(var ue=3;se[ue]&&ra()!=G;)++ue;for(G=0;G>>2>>>0]=ra();return G}var Va,ha={},sa=()=>{if(!Va){var G,W={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(G in ha)ha[G]===void 0?delete W[G]:W[G]=ha[G];var q=[];for(G in W)q.push(`${G}=${W[G]}`);Va=q}return Va};function aa(G,W){if(w)return hA(19,1,G,W);G>>>=0,W>>>=0;var q=0;return sa().forEach((se,ue)=>{var Pe=W+q;for(ue=Qe()[G+4*ue>>>2>>>0]=Pe,Pe=0;Pe>>0]=se.charCodeAt(Pe);_e()[ue>>>0]=0,q+=se.length+1}),0}function dn(G,W){if(w)return hA(20,1,G,W);G>>>=0,W>>>=0;var q=sa();Qe()[G>>>2>>>0]=q.length;var se=0;return q.forEach(ue=>se+=ue.length+1),Qe()[W>>>2>>>0]=se,0}function Ha(G){return w?hA(21,1,G):52}function kA(G,W,q,se){return w?hA(22,1,G,W,q,se):52}function ys(G,W,q,se){return w?hA(23,1,G,W,q,se):70}var ri=[null,[],[]];function On(G,W,q,se){if(w)return hA(24,1,G,W,q,se);W>>>=0,q>>>=0,se>>>=0;for(var ue=0,Pe=0;Pe>>2>>>0],dA=Qe()[W+4>>>2>>>0];W+=8;for(var xA=0;xA>>0],it=ri[G];_A===0||_A===10?((G===1?z:K)(Dr(it)),it.length=0):it.push(_A)}ue+=dA}return Qe()[se>>>2>>>0]=ue,0}w||function(){for(var G=u.numThreads-1;G--;)Ss();Ue.unshift(()=>{ge++,function(W){w?W():Promise.all(PA.map(Rt)).then(W)}(()=>aA())})}();for(var Ba=Array(256),Ks=0;256>Ks;++Ks)Ba[Ks]=String.fromCharCode(Ks);Gt=Ba,br=u.BindingError=class extends Error{constructor(G){super(G),this.name="BindingError"}},u.InternalError=class extends Error{constructor(G){super(G),this.name="InternalError"}},pr.push(0,1,void 0,1,null,1,!0,1,!1,1),u.count_emval_handles=()=>pr.length/2-5-zs.length;var XA,si=[SA,pA,ua,ot,js,ce,ke,Me,Le,sA,OA,HA,BA,gt,lt,Tr,yt,sn,Aa,aa,dn,Ha,kA,ys,On];(async function(){function G(se,ue){return XA=se.exports,XA=function(){var Pe=XA,$e={};for(let[dA,xA]of Object.entries(Pe))$e[dA]=typeof xA=="function"?(..._A)=>{ks.push(dA);try{return xA(..._A)}finally{Be||(ks.pop(),Tt&&Qt===1&&ks.length===0&&(Qt=0,IA+=1,qt(Nn),typeof Fibers<"u"&&Fibers.rc()))}}:xA;return $e}(),XA=function(){var Pe=XA,$e=xA=>_A=>xA(_A)>>>0,dA=xA=>()=>xA()>>>0;return(Pe=Object.assign({},Pe)).Da=$e(Pe.Da),Pe.fb=dA(Pe.fb),Pe.hb=$e(Pe.hb),Pe.tb=$e(Pe.tb),Pe.ub=dA(Pe.ub),Pe.__cxa_get_exception_ptr=$e(Pe.__cxa_get_exception_ptr),Pe}(),jA.push(XA.ib),k=ue,aA(),XA}ge++;var W=Ve();if(u.instantiateWasm)return new Promise(se=>{u.instantiateWasm(W,(ue,Pe)=>{G(ue,Pe),se(ue.exports)})});if(w)return new Promise(se=>{oA=ue=>{var Pe=new WebAssembly.Instance(ue,Ve());se(G(Pe,ue))}});ze??=u.locateFile?u.locateFile?u.locateFile("ort-wasm-simd-threaded.jsep.wasm",L):L+"ort-wasm-simd-threaded.jsep.wasm":new URL("/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm",import.meta.url).href;try{var q=await async function(se){var ue=ze;if(!De&&typeof WebAssembly.instantiateStreaming=="function"&&!Oe(ue))try{var Pe=fetch(ue,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(Pe,se)}catch($e){K(`wasm streaming compile failed: ${$e}`),K("falling back to ArrayBuffer instantiation")}return async function($e,dA){try{var xA=await async function(_A){if(!De)try{var it=await B(_A);return new Uint8Array(it)}catch{}if(_A==ze&&De)_A=new Uint8Array(De);else{if(!v)throw"both async and sync fetching of the wasm failed";_A=v(_A)}return _A}($e);return await WebAssembly.instantiate(xA,dA)}catch(_A){K(`failed to asynchronously prepare wasm: ${_A}`),Ze(_A)}}(ue,se)}(W);return G(q.instance,q.module)}catch(se){return n(se),Promise.reject(se)}})();var _n=G=>(_n=XA.Da)(G),ya=()=>(ya=XA.Ea)();u._OrtInit=(G,W)=>(u._OrtInit=XA.Fa)(G,W),u._OrtGetLastError=(G,W)=>(u._OrtGetLastError=XA.Ga)(G,W),u._OrtCreateSessionOptions=(G,W,q,se,ue,Pe,$e,dA,xA,_A)=>(u._OrtCreateSessionOptions=XA.Ha)(G,W,q,se,ue,Pe,$e,dA,xA,_A),u._OrtAppendExecutionProvider=(G,W,q,se,ue)=>(u._OrtAppendExecutionProvider=XA.Ia)(G,W,q,se,ue),u._OrtAddFreeDimensionOverride=(G,W,q)=>(u._OrtAddFreeDimensionOverride=XA.Ja)(G,W,q),u._OrtAddSessionConfigEntry=(G,W,q)=>(u._OrtAddSessionConfigEntry=XA.Ka)(G,W,q),u._OrtReleaseSessionOptions=G=>(u._OrtReleaseSessionOptions=XA.La)(G),u._OrtCreateSession=(G,W,q)=>(u._OrtCreateSession=XA.Ma)(G,W,q),u._OrtReleaseSession=G=>(u._OrtReleaseSession=XA.Na)(G),u._OrtGetInputOutputCount=(G,W,q)=>(u._OrtGetInputOutputCount=XA.Oa)(G,W,q),u._OrtGetInputOutputMetadata=(G,W,q,se)=>(u._OrtGetInputOutputMetadata=XA.Pa)(G,W,q,se),u._OrtFree=G=>(u._OrtFree=XA.Qa)(G),u._OrtCreateTensor=(G,W,q,se,ue,Pe)=>(u._OrtCreateTensor=XA.Ra)(G,W,q,se,ue,Pe),u._OrtGetTensorData=(G,W,q,se,ue)=>(u._OrtGetTensorData=XA.Sa)(G,W,q,se,ue),u._OrtReleaseTensor=G=>(u._OrtReleaseTensor=XA.Ta)(G),u._OrtCreateRunOptions=(G,W,q,se)=>(u._OrtCreateRunOptions=XA.Ua)(G,W,q,se),u._OrtAddRunConfigEntry=(G,W,q)=>(u._OrtAddRunConfigEntry=XA.Va)(G,W,q),u._OrtReleaseRunOptions=G=>(u._OrtReleaseRunOptions=XA.Wa)(G),u._OrtCreateBinding=G=>(u._OrtCreateBinding=XA.Xa)(G),u._OrtBindInput=(G,W,q)=>(u._OrtBindInput=XA.Ya)(G,W,q),u._OrtBindOutput=(G,W,q,se)=>(u._OrtBindOutput=XA.Za)(G,W,q,se),u._OrtClearBoundOutputs=G=>(u._OrtClearBoundOutputs=XA._a)(G),u._OrtReleaseBinding=G=>(u._OrtReleaseBinding=XA.$a)(G),u._OrtRunWithBinding=(G,W,q,se,ue)=>(u._OrtRunWithBinding=XA.ab)(G,W,q,se,ue),u._OrtRun=(G,W,q,se,ue,Pe,$e,dA)=>(u._OrtRun=XA.bb)(G,W,q,se,ue,Pe,$e,dA),u._OrtEndProfiling=G=>(u._OrtEndProfiling=XA.cb)(G),u._JsepOutput=(G,W,q)=>(u._JsepOutput=XA.db)(G,W,q),u._JsepGetNodeName=G=>(u._JsepGetNodeName=XA.eb)(G);var Ua=()=>(Ua=XA.fb)(),Ds=u._free=G=>(Ds=u._free=XA.gb)(G),ur=u._malloc=G=>(ur=u._malloc=XA.hb)(G),Ka=(G,W,q,se,ue,Pe)=>(Ka=XA.kb)(G,W,q,se,ue,Pe),zn=()=>(zn=XA.lb)(),et=(G,W,q,se,ue)=>(et=XA.mb)(G,W,q,se,ue),Ts=G=>(Ts=XA.nb)(G),Xa=G=>(Xa=XA.ob)(G),Ns=(G,W)=>(Ns=XA.pb)(G,W),fn=()=>(fn=XA.qb)(),Fr=(G,W)=>(Fr=XA.rb)(G,W),Ps=G=>(Ps=XA.sb)(G),Ir=G=>(Ir=XA.tb)(G),Gs=()=>(Gs=XA.ub)(),gn=u.dynCall_ii=(G,W)=>(gn=u.dynCall_ii=XA.vb)(G,W),Za=G=>(Za=XA.wb)(G),Nn=()=>(Nn=XA.xb)(),pn=G=>(pn=XA.yb)(G),Ar=()=>(Ar=XA.zb)();return u.stackSave=()=>Gs(),u.stackRestore=G=>Ps(G),u.stackAlloc=G=>Ir(G),u.setValue=function(G,W,q="i8"){switch(q.endsWith("*")&&(q="*"),q){case"i1":case"i8":_e()[G>>>0]=W;break;case"i16":Ae()[G>>>1>>>0]=W;break;case"i32":le()[G>>>2>>>0]=W;break;case"i64":Ce[G>>>3]=BigInt(W);break;case"float":iA()[G>>>2>>>0]=W;break;case"double":qe()[G>>>3>>>0]=W;break;case"*":Qe()[G>>>2>>>0]=W;break;default:Ze(`invalid type for setValue: ${q}`)}},u.getValue=function(G,W="i8"){switch(W.endsWith("*")&&(W="*"),W){case"i1":case"i8":return _e()[G>>>0];case"i16":return Ae()[G>>>1>>>0];case"i32":return le()[G>>>2>>>0];case"i64":return Ce[G>>>3];case"float":return iA()[G>>>2>>>0];case"double":return qe()[G>>>3>>>0];case"*":return Qe()[G>>>2>>>0];default:Ze(`invalid type for getValue: ${W}`)}},u.UTF8ToString=Ut,u.stringToUTF8=Ee,u.lengthBytesUTF8=U,function G(){if(0{cc(),jl=typeof location>"u"?void 0:location.origin,Y2=import.meta.url>"file:"&&import.meta.url<"file;",uf=()=>{{if(Y2){let a=URL;return new URL(new a("ort.bundle.min.mjs",import.meta.url).href,jl).href}return import.meta.url}},oa=uf(),Em=()=>{if(oa&&!oa.startsWith("blob:"))return oa.substring(0,oa.lastIndexOf("/")+1)},h0=(a,o)=>{try{let n=o??oa;return(n?new URL(a,n):new URL(a)).origin===jl}catch{return!1}},df=(a,o)=>{let n=o??oa;try{return(n?new URL(a,n):new URL(a)).href}catch{return}},ff=(a,o)=>`${o??"./"}${a}`,Wl=async a=>{let o=await(await fetch(a,{credentials:"same-origin"})).blob();return URL.createObjectURL(o)},gf=async a=>(await import(a)).default,Yl=(GI(),Xo(bm)).default,Mm=async()=>{if(!oa)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(h0(oa))return[void 0,Yl()];let a=await Wl(oa);return[a,Yl(a)]},Vl=(QI(),Xo(wm)).default,vm=async(a,o,n)=>{if(!a&&!o&&Vl&&oa&&h0(oa))return[void 0,Vl];{let u="ort-wasm-simd-threaded.jsep.mjs",m=a??df(u,o),b=n&&m&&!h0(m,o),C=b?await Wl(m):m??ff(u,o);return[b?C:void 0,await gf(C)]}}}),Hl,C0,Go,Ul,pf,mf,hf,dc,gr,Qi=CA(()=>{uc(),C0=!1,Go=!1,Ul=!1,pf=()=>{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}},mf=()=>{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}},hf=()=>{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}},dc=async a=>{if(C0)return Promise.resolve();if(Go)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Ul)throw new Error("previous call to 'initializeWebAssembly()' failed.");Go=!0;let o=a.initTimeout,n=a.numThreads;if(a.simd!==!1){if(a.simd==="relaxed"){if(!hf())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!mf())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let u=pf();n>1&&!u&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+n+", 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."),a.numThreads=n=1);let m=a.wasmPaths,b=typeof m=="string"?m:void 0,C=m?.mjs,w=C?.href??C,E=m?.wasm,x=E?.href??E,D=a.wasmBinary,[B,v]=await vm(w,b,n>1),F=!1,S=[];if(o>0&&S.push(new Promise(L=>{setTimeout(()=>{F=!0,L()},o)})),S.push(new Promise((L,Z)=>{let N={numThreads:n};if(D)N.wasmBinary=D;else if(x||b)N.locateFile=z=>x??b+z;else if(w&&w.indexOf("blob:")!==0)N.locateFile=z=>new URL(z,w).href;else if(B){let z=Em();z&&(N.locateFile=K=>z+K)}v(N).then(z=>{Go=!1,C0=!0,Hl=z,L(),B&&URL.revokeObjectURL(B)},z=>{Go=!1,Ul=!0,Z(z)})})),await Promise.race(S),F)throw new Error(`WebAssembly backend initializing failed due to timeout: ${o}ms`)},gr=()=>{if(C0&&Hl)return Hl;throw new Error("WebAssembly is not initialized yet.")}}),_a,O0,rr,fc=CA(()=>{Qi(),_a=(a,o)=>{let n=gr(),u=n.lengthBytesUTF8(a)+1,m=n._malloc(u);return n.stringToUTF8(a,m,u),o.push(m),m},O0=(a,o,n,u)=>{if(typeof a=="object"&&a!==null){if(n.has(a))throw new Error("Circular reference in options");n.add(a)}Object.entries(a).forEach(([m,b])=>{let C=o?o+m:m;if(typeof b=="object")O0(b,C+".",n,u);else if(typeof b=="string"||typeof b=="number")u(C,b.toString());else if(typeof b=="boolean")u(C,b?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof b}`)})},rr=a=>{let o=gr(),n=o.stackSave();try{let u=o.PTR_SIZE,m=o.stackAlloc(2*u);o._OrtGetLastError(m,m+u);let b=Number(o.getValue(m,u===4?"i32":"i64")),C=o.getValue(m+u,"*"),w=C?o.UTF8ToString(C):"";throw new Error(`${a} ERROR_CODE: ${b}, ERROR_MESSAGE: ${w}`)}finally{o.stackRestore(n)}}}),xm,FI=CA(()=>{Qi(),fc(),xm=a=>{let o=gr(),n=0,u=[],m=a||{};try{if(a?.logSeverityLevel===void 0)m.logSeverityLevel=2;else if(typeof a.logSeverityLevel!="number"||!Number.isInteger(a.logSeverityLevel)||a.logSeverityLevel<0||a.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${a.logSeverityLevel}`);if(a?.logVerbosityLevel===void 0)m.logVerbosityLevel=0;else if(typeof a.logVerbosityLevel!="number"||!Number.isInteger(a.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);a?.terminate===void 0&&(m.terminate=!1);let b=0;return a?.tag!==void 0&&(b=_a(a.tag,u)),n=o._OrtCreateRunOptions(m.logSeverityLevel,m.logVerbosityLevel,!!m.terminate,b),n===0&&rr("Can't create run options."),a?.extra!==void 0&&O0(a.extra,"",new WeakSet,(C,w)=>{let E=_a(C,u),x=_a(w,u);o._OrtAddRunConfigEntry(n,E,x)!==0&&rr(`Can't set a run config entry: ${C} - ${w}.`)}),[n,u]}catch(b){throw n!==0&&o._OrtReleaseRunOptions(n),u.forEach(C=>o._free(C)),b}}}),Cf,bf,If,Qo,wf,Bm,SI=CA(()=>{Qi(),fc(),Cf=a=>{switch(a){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${a}`)}},bf=a=>{switch(a){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${a}`)}},If=a=>{a.extra||(a.extra={}),a.extra.session||(a.extra.session={});let o=a.extra.session;o.use_ort_model_bytes_directly||(o.use_ort_model_bytes_directly="1"),a.executionProviders&&a.executionProviders.some(n=>(typeof n=="string"?n:n.name)==="webgpu")&&(a.enableMemPattern=!1)},Qo=(a,o,n,u)=>{let m=_a(o,u),b=_a(n,u);gr()._OrtAddSessionConfigEntry(a,m,b)!==0&&rr(`Can't set a session config entry: ${o} - ${n}.`)},wf=async(a,o,n)=>{for(let u of o){let m=typeof u=="string"?u:u.name,b=[];switch(m){case"webnn":if(m="WEBNN",typeof u!="string"){let D=u?.deviceType;D&&Qo(a,"deviceType",D,n)}break;case"webgpu":if(m="JS",typeof u!="string"){let D=u;if(D?.preferredLayout){if(D.preferredLayout!=="NCHW"&&D.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${D.preferredLayout}`);Qo(a,"preferredLayout",D.preferredLayout,n)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${m}`)}let C=_a(m,n),w=b.length,E=0,x=0;if(w>0){E=gr()._malloc(w*gr().PTR_SIZE),n.push(E),x=gr()._malloc(w*gr().PTR_SIZE),n.push(x);for(let D=0;D{let o=gr(),n=0,u=[],m=a||{};If(m);try{let b=Cf(m.graphOptimizationLevel??"all"),C=bf(m.executionMode??"sequential"),w=typeof m.logId=="string"?_a(m.logId,u):0,E=m.logSeverityLevel??2;if(!Number.isInteger(E)||E<0||E>4)throw new Error(`log serverity level is not valid: ${E}`);let x=m.logVerbosityLevel??0;if(!Number.isInteger(x)||x<0||x>4)throw new Error(`log verbosity level is not valid: ${x}`);let D=typeof m.optimizedModelFilePath=="string"?_a(m.optimizedModelFilePath,u):0;if(n=o._OrtCreateSessionOptions(b,!!m.enableCpuMemArena,!!m.enableMemPattern,C,!!m.enableProfiling,0,w,E,x,D),n===0&&rr("Can't create session options."),m.executionProviders&&await wf(n,m.executionProviders,u),m.enableGraphCapture!==void 0){if(typeof m.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${m.enableGraphCapture}`);Qo(n,"enableGraphCapture",m.enableGraphCapture.toString(),u)}if(m.freeDimensionOverrides)for(let[B,v]of Object.entries(m.freeDimensionOverrides)){if(typeof B!="string")throw new Error(`free dimension override name must be a string: ${B}`);if(typeof v!="number"||!Number.isInteger(v)||v<0)throw new Error(`free dimension override value must be a non-negative integer: ${v}`);let F=_a(B,u);o._OrtAddFreeDimensionOverride(n,F,v)!==0&&rr(`Can't set a free dimension override: ${B} - ${v}.`)}return m.extra!==void 0&&O0(m.extra,"",new WeakSet,(B,v)=>{Qo(n,B,v,u)}),[n,u]}catch(b){throw n!==0&&o._OrtReleaseSessionOptions(n)!==0&&rr("Can't release session options."),u.forEach(C=>o._free(C)),b}}}),ro,xn,xi,gc,_0,pc,mc,V2,st=CA(()=>{ro=a=>{switch(a){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: ${a}`)}},xn=a=>{switch(a){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: ${a}`)}},xi=(a,o)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][a],u=typeof o=="number"?o:o.reduce((m,b)=>m*b,1);return n>0?Math.ceil(u*n):void 0},gc=a=>{switch(a){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: ${a}`)}},_0=a=>{switch(a){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: ${a}`)}},pc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",mc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint64"||a==="int8"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",V2=a=>{switch(a){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: ${a}`)}}}),hc,ym=CA(()=>{cc(),hc=async a=>{if(typeof a=="string"){let o=await fetch(a);if(!o.ok)throw new Error(`failed to load external data file: ${a}`);let n=o.headers.get("Content-Length"),u=n?parseInt(n,10):0;if(u<1073741824)return new Uint8Array(await o.arrayBuffer());{if(!o.body)throw new Error(`failed to load external data file: ${a}, no response body.`);let m=o.body.getReader(),b;try{b=new ArrayBuffer(u)}catch(w){if(w instanceof RangeError){let E=Math.ceil(u/65536);b=new WebAssembly.Memory({initial:E,maximum:E}).buffer}else throw w}let C=0;for(;;){let{done:w,value:E}=await m.read();if(w)break;let x=E.byteLength;new Uint8Array(b,C,x).set(E),C+=x}return new Uint8Array(b,0,u)}}else return a instanceof Blob?new Uint8Array(await a.arrayBuffer()):a instanceof Uint8Array?a:new Uint8Array(a)}}),kf,Ef,Mf,vf,Cc,xf,Pt,yn=CA(()=>{st(),kf=["V","I","W","E","F"],Ef=(a,o)=>{console.log(`[${kf[a]},${new Date().toISOString()}]${o}`)},Cc=(a,o)=>{Mf=a,vf=o},xf=(a,o)=>{let n=_0(a),u=_0(Mf);n>=u&&Ef(n,typeof o=="function"?o():o)},Pt=(...a)=>{vf&&xf(...a)}}),Bf,co,Ke,z0,Dm,Tm,Pm,pt=CA(()=>{Bf=class{static calcMatMulShape(a,o){return a[1]!==o[0]?void 0:[a[0],o[1]]}},co=class{static calcShape(a,o,n=!1){let u=a.length,m=o.length;if(u===0)return o;if(m===0)return a;let b=Math.max(a.length,o.length),C=new Array(b);if(n){if(u<2||m<2)return;let w=Bf.calcMatMulShape([a[u-2],a[u-1]],[o[m-2],o[m-1]]);if(w===void 0)return;[C[b-2],C[b-1]]=w}for(let w=n?3:1;w<=b;w++){let E=u-w<0?1:a[u-w],x=m-w<0?1:o[m-w];if(E!==x&&E>1&&x>1)return;let D=Math.max(E,x);if(E&&x)C[b-w]=Math.max(E,x);else{if(D>1)return;C[b-w]=0}}return C}static isValidBroadcast(a,o){let n=a.length,u=o.length;if(n>u)return!1;for(let m=1;m<=n;m++)if(a[n-m]!==1&&a[n-m]!==o[u-m])return!1;return!0}},Ke=class Q0{static size(o){return Q0.getSizeFromDimensionRange(o,0,o.length)}static convertShape(o,n=4){let u=o.length;if(u===0)return[];let m=new Array(u),b=u-1;for(;b>=0;){if(o[b]%n===0){m[b]=o[b]/n;break}if(n%o[b]!==0)throw new Error("cannot convert shape");m[b]=1,n/=o[b],b--}for(b--;b>=0;b--)m[b]=o[b];return m}static sizeFromDimension(o,n){if(n<0||n>o.length)throw new Error(`invalid dimension of ${n} for sizeFromDimension as Tensor has ${o.length} dimensions.`);return Q0.getSizeFromDimensionRange(o,n,o.length)}static sizeToDimension(o,n){if(n<0||n>o.length)throw new Error(`invalid dimension of ${n} for sizeToDimension as Tensor has ${o.length} dimensions.`);return Q0.getSizeFromDimensionRange(o,0,n)}static getSizeFromDimensionRange(o,n,u){let m=1;for(let b=n;b=0;--m)u[m]=u[m+1]*o[m+1];return u}static normalizeAxis(o,n){if(o<-n&&o>=n)throw new Error("unsupported axis for this operation.");return o<0?o+n:o}static normalizeAxes(o,n){return o.map(u=>this.normalizeAxis(u,n??o.length))}static sortBasedOnPerm(o,n){return n?n.map(u=>o[u]):o.slice().reverse()}static padShape(o,n){let u=o.length;return o.map((m,b)=>m+n[b]+n[b+u])}static areEqual(o,n){return o.length!==n.length?!1:o.every((u,m)=>u===n[m])}},z0=class Wo{static adjustPoolAttributes(o,n,u,m,b,C){if(!o&&u.length!==n.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(o)for(let w=0;w=u.length?u.push(n[w+2]):u[w]=n[w+2];for(let w=0;w=u[w]||C[w+u.length]>=u[w])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(o,n,u,m,b,C,w){if(w){if(b.length!==2*(o.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(n.length!==o.length-2)throw new Error("length of strides should be the length of data dimensions");if(m.length!==o.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let E=0;E{st(),bc=(a,o)=>new(gc(o))(a)}),H2,Kl,yf,Xl,Df,Zl,Jl,ql,Tf,Qm,OI=CA(()=>{yn(),H2=(a,o=!0)=>{if(a.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let n=a.byteLength/8,u=new BigInt64Array(a.buffer,a.byteOffset,n),m=new Int32Array(n);for(let b=0;b2147483647n||C<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${b}: ${C}`);m[b]=Number(C)}return o?new Uint8Array(m.buffer):m},Kl=(a,o=!0)=>{if(a.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let n=a.byteLength/4,u=new Int32Array(a.buffer,a.byteOffset,n),m=BigInt64Array.from(u,BigInt);return o?new Uint8Array(m.buffer):m},yf=1,Xl=()=>yf++,Df=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Zl=(a,o)=>{let n=Df.get(a);if(!n)throw new Error("Unsupported data type.");return o.length>0?Math.ceil(o.reduce((u,m)=>u*m)*n/8):0},Jl=class{constructor(a){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:o,context:n,tensor:u,dataType:m,shape:b,shouldConvertInt64toInt32:C=!1}=a;this.sessionId=o,this.mlContext=n,this.mlTensor=u,this.dataType=m,this.tensorShape=b,this.shouldConvertInt64toInt32=C}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return Zl(this.dataType,this.tensorShape)}destroy(){Pt("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(a){this.mlContext.writeTensor(this.mlTensor,a)}async read(a,o){if(a){let n=await this.mlContext.readTensor(this.mlTensor),u=Kl(new Uint8Array(n));if(o){(o instanceof ArrayBuffer?new Uint8Array(o):new Uint8Array(o.buffer,o.byteOffset,o.byteLength)).set(u);return}else return u.buffer}else return o?this.mlContext.readTensor(this.mlTensor,o):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(a,o,n){return this.mlContext===a&&this.dataType===o&&this.tensorShape.length===n.length&&this.tensorShape.every((u,m)=>u===n[m])}setIsInt64ToInt32Converted(a){this.isInt64ToInt32Converted=a}},ql=class{constructor(a,o){this.tensorManager=a,this.wrapper=o}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(a,o,n,u){let m=o,b=this.tensorManager.getMLContext(a),C=m==="int64"&&!b.opSupportLimits().input.dataTypes.includes("int64");if(C&&(m="int32",Pt("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(b,m,n))return this.wrapper.tensor;if(u){if(this.wrapper.byteLength!==Zl(m,n))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 w=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(a,m,n,w,!0,!0,C),u&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(a){let o=a;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(o=H2(a,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),o.byteLength===this.wrapper.byteLength){this.wrapper.write(o);return}else Pt("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(o):this.activeUpload=new Uint8Array(o)}async download(a){if(this.activeUpload){let o=this.wrapper?.isInt64ToInt32Converted?Kl(this.activeUpload):this.activeUpload;if(a){a instanceof ArrayBuffer?new Uint8Array(a).set(o):new Uint8Array(a.buffer,a.byteOffset,a.byteLength).set(o);return}else return o.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return a?this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32,a):this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32)}},Tf=class{constructor(a){this.backend=a,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(a){let o=this.backend.getMLContext(a);if(!o)throw new Error("MLContext not found for session.");return o}reserveTensorId(){let a=Xl();return this.tensorTrackersById.set(a,new ql(this)),a}releaseTensorId(a){let o=this.tensorTrackersById.get(a);o&&(this.tensorTrackersById.delete(a),o.tensorWrapper&&this.releaseTensor(o.tensorWrapper))}async ensureTensor(a,o,n,u,m){Pt("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${o}, dataType: ${n}, shape: ${u}, copyOld: ${m}}`);let b=this.tensorTrackersById.get(o);if(!b)throw new Error("Tensor not found.");return b.ensureTensor(a,n,u,m)}upload(a,o){let n=this.tensorTrackersById.get(a);if(!n)throw new Error("Tensor not found.");n.upload(o)}async download(a,o){Pt("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${a}, dstBuffer: ${o?.byteLength}}`);let n=this.tensorTrackersById.get(a);if(!n)throw new Error("Tensor not found.");return n.download(o)}releaseTensorsForSession(a){for(let o of this.freeTensors)o.sessionId===a&&o.destroy();this.freeTensors=this.freeTensors.filter(o=>o.sessionId!==a)}registerTensor(a,o,n,u){let m=this.getMLContext(a),b=Xl(),C=new Jl({sessionId:a,context:m,tensor:o,dataType:n,shape:u});return this.tensorTrackersById.set(b,new ql(this,C)),this.externalTensors.add(C),b}async getCachedTensor(a,o,n,u,m,b,C=!1){let w=this.getMLContext(a);for(let[x,D]of this.freeTensors.entries())if(D.canReuseTensor(w,o,n)){Pt("verbose",()=>`[WebNN] Reusing tensor {dataType: ${o}, shape: ${n}}`);let B=this.freeTensors.splice(x,1)[0];return B.sessionId=a,B}Pt("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${o}, shape: ${n}}`);let E=await w.createTensor({dataType:o,shape:n,dimensions:n,usage:u,writable:m,readable:b});return new Jl({sessionId:a,context:w,tensor:E,dataType:o,shape:n,shouldConvertInt64toInt32:C})}releaseTensor(a){this.externalTensors.has(a)&&this.externalTensors.delete(a),this.freeTensors.push(a)}},Qm=(...a)=>new Tf(...a)}),b0,Pf,Fm,_I=CA(()=>{st(),Qi(),Gm(),OI(),yn(),b0=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Pf=(a,o)=>{if(a===o)return!0;if(a===void 0||o===void 0)return!1;let n=Object.keys(a).sort(),u=Object.keys(o).sort();return n.length===u.length&&n.every((m,b)=>m===u[b]&&a[m]===o[m])},Fm=class{constructor(a){this.tensorManager=Qm(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,Cc(a.logLevel,!!a.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(a){Pt("verbose",()=>`[WebNN] onRunStart {sessionId: ${a}}`),this.activeSessionId=a}onRunEnd(a){Pt("verbose",()=>`[WebNN] onRunEnd {sessionId: ${a}}`);let o=this.temporarySessionTensorIds.get(a);if(o){for(let n of o)Pt("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${n}}`),this.tensorManager.releaseTensorId(n);this.temporarySessionTensorIds.delete(a),this.activeSessionId=void 0}}async createMLContext(a){if(a instanceof GPUDevice){let n=this.mlContextCache.findIndex(u=>u.gpuDevice===a);if(n!==-1)return this.mlContextCache[n].mlContext;{let u=await navigator.ml.createContext(a);return this.mlContextCache.push({gpuDevice:a,mlContext:u}),u}}else if(a===void 0){let n=this.mlContextCache.findIndex(u=>u.options===void 0&&u.gpuDevice===void 0);if(n!==-1)return this.mlContextCache[n].mlContext;{let u=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:u}),u}}let o=this.mlContextCache.findIndex(n=>Pf(n.options,a));if(o!==-1)return this.mlContextCache[o].mlContext;{let n=await navigator.ml.createContext(a);return this.mlContextCache.push({options:a,mlContext:n}),n}}registerMLContext(a,o){this.mlContextBySessionId.set(a,o);let n=this.sessionIdsByMLContext.get(o);n||(n=new Set,this.sessionIdsByMLContext.set(o,n)),n.add(a),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(a,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(a){this.sessionGraphInputs.delete(a);let o=this.mlContextBySessionId.get(a);if(!o)return;this.tensorManager.releaseTensorsForSession(a),this.mlContextBySessionId.delete(a);let n=this.sessionIdsByMLContext.get(o);if(n.delete(a),n.size===0){this.sessionIdsByMLContext.delete(o);let u=this.mlContextCache.findIndex(m=>m.mlContext===o);u!==-1&&this.mlContextCache.splice(u,1)}}getMLContext(a){return this.mlContextBySessionId.get(a)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(a){Pt("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${a}}`),this.tensorManager.releaseTensorId(a)}async ensureTensor(a,o,n,u,m){let b=b0.get(n);if(!b)throw new Error(`Unsupported ONNX data type: ${n}`);return this.tensorManager.ensureTensor(a??this.currentSessionId,o,b,u,m)}async createTemporaryTensor(a,o,n){Pt("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${o}, shape: ${n}}`);let u=b0.get(o);if(!u)throw new Error(`Unsupported ONNX data type: ${o}`);let m=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(a,m,u,n,!1);let b=this.temporarySessionTensorIds.get(a);return b?b.push(m):this.temporarySessionTensorIds.set(a,[m]),m}uploadTensor(a,o){if(!gr().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Pt("verbose",()=>`[WebNN] uploadTensor {tensorId: ${a}, data: ${o.byteLength}}`),this.tensorManager.upload(a,o)}async downloadTensor(a,o){return this.tensorManager.download(a,o)}createMLTensorDownloader(a,o){return async()=>{let n=await this.tensorManager.download(a);return bc(n,o)}}registerMLTensor(a,o,n,u){let m=b0.get(n);if(!m)throw new Error(`Unsupported ONNX data type: ${n}`);let b=this.tensorManager.registerTensor(a,o,m,u);return Pt("verbose",()=>`[WebNN] registerMLTensor {tensor: ${o}, dataType: ${m}, dimensions: ${u}} -> {tensorId: ${b}}`),b}registerMLConstant(a,o,n,u,m,b,C=!1){if(!b)throw new Error("External mounted files are not available.");let w=a;a.startsWith("./")&&(w=a.substring(2));let E=b.get(w);if(!E)throw new Error(`File with name ${w} not found in preloaded files.`);if(o+n>E.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let x=E.slice(o,o+n).buffer,D;switch(m.dataType){case"float32":D=new Float32Array(x);break;case"float16":D=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(x):new Uint16Array(x);break;case"int32":D=new Int32Array(x);break;case"uint32":D=new Uint32Array(x);break;case"int64":C?(D=H2(new Uint8Array(x),!1),m.dataType="int32"):D=new BigInt64Array(x);break;case"uint64":D=new BigUint64Array(x);break;case"int8":D=new Int8Array(x);break;case"int4":case"uint4":case"uint8":D=new Uint8Array(x);break;default:throw new Error(`Unsupported data type: ${m.dataType} in creating WebNN Constant from external data.`)}return Pt("verbose",()=>`[WebNN] registerMLConstant {dataType: ${m.dataType}, shape: ${m.shape}}} ${C?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),u.constant(m,D)}registerGraphInput(a){this.temporaryGraphInputs.push(a)}isGraphInput(a,o){let n=this.sessionGraphInputs.get(a);return n?n.includes(o):!1}isInt64Supported(a){return!!this.mlContextBySessionId.get(a)?.opSupportLimits().input.dataTypes.includes("int64")}flush(){}}}),Ic=CA(()=>{}),$l,I0,w0,Gf,Qf,e2,U2,Ff,Sm,zI=CA(()=>{yn(),Ic(),$l=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]]),I0=[],w0=a=>Math.ceil(Number(a)/16)*16,Gf=a=>{for(let o=0;oQf++,U2=async(a,o,n,u)=>{let m=w0(n),b=a.device.createBuffer({size:m,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let C=a.getCommandEncoder();a.endComputePass(),C.copyBufferToBuffer(o,0,b,0,m),a.flush(),await b.mapAsync(GPUMapMode.READ);let w=b.getMappedRange();if(u){let E=u();return E.set(new Uint8Array(w,0,n)),E}else return new Uint8Array(w.slice(0,n))}finally{b.destroy()}},Ff=class{constructor(a){this.backend=a,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[o]of $l)I0.push(o),this.freeBuffers.set(o,[]),this.freeUniformBuffers.set(o,[]);this.sessionCount=0}upload(a,o){let n=o.buffer,u=o.byteOffset,m=o.byteLength,b=w0(m),C=this.storageCache.get(a);if(!C)throw new Error("gpu data for uploading does not exist");if(Number(C.originalSize)!==m)throw new Error(`inconsistent data size. gpu data size=${C.originalSize}, data size=${m}`);let w=this.backend.device.createBuffer({mappedAtCreation:!0,size:b,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),E=w.getMappedRange();new Uint8Array(E).set(new Uint8Array(n,u,m)),w.unmap();let x=this.backend.device.createCommandEncoder();x.copyBufferToBuffer(w,0,C.gpuData.buffer,0,b),this.backend.device.queue.submit([x.finish()]),w.destroy(),Pt("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${a})`)}memcpy(a,o){let n=this.storageCache.get(a);if(!n)throw new Error("source gpu data for memcpy does not exist");let u=this.storageCache.get(o);if(!u)throw new Error("destination gpu data for memcpy does not exist");if(n.originalSize!==u.originalSize)throw new Error("inconsistent source and destination gpu data size");let m=w0(n.originalSize),b=this.backend.getCommandEncoder();this.backend.endComputePass(),b.copyBufferToBuffer(n.gpuData.buffer,0,u.gpuData.buffer,0,m)}registerExternalBuffer(a,o,n){let u;if(n){if(u=n[0],a===n[1])return Pt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${o}) => id=${u}, buffer is the same, skip.`),u;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 u=e2();return this.storageCache.set(u,{gpuData:{id:u,type:0,buffer:a},originalSize:o}),Pt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${o}) => id=${u}, registered.`),u}unregisterExternalBuffer(a){a!==void 0&&(this.storageCache.delete(a),Pt("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${a}`))}create(a,o=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let n=Gf(a),u,m=(o&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,b=(o&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(m||b){let w=(m?this.freeBuffers:this.freeUniformBuffers).get(n);w?w.length>0?u=w.pop():u=this.backend.device.createBuffer({size:n,usage:o}):u=this.backend.device.createBuffer({size:n,usage:o})}else u=this.backend.device.createBuffer({size:n,usage:o});let C={id:e2(),type:0,buffer:u};return this.storageCache.set(C.id,{gpuData:C,originalSize:Number(a)}),Pt("verbose",()=>`[WebGPU] GpuDataManager.create(size=${a}) => id=${C.id}`),C}get(a){return this.storageCache.get(a)?.gpuData}release(a){let o=typeof a=="bigint"?Number(a):a,n=this.storageCache.get(o);if(!n){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Pt("verbose",()=>`[WebGPU] GpuDataManager.release(id=${o}), gpuDataId=${n.gpuData.id}`),this.storageCache.delete(o),this.buffersPending.push(n.gpuData.buffer),n.originalSize}async download(a,o){let n=this.storageCache.get(Number(a));if(!n)throw new Error("data does not exist");await U2(this.backend,n.gpuData.buffer,n.originalSize,o)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let a of this.buffersPending){let o=$l.get(a.size);if((a.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let n=this.freeBuffers.get(a.size)||[];o===void 0||n.length>=o?a.destroy():n.push(a)}else if((a.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let n=this.freeUniformBuffers.get(a.size)||[];o===void 0||n.length>=o?a.destroy():n.push(a)}else a.destroy()}this.buffersPending=[]}else{let a=this.capturedPendingBuffers.get(this.backend.currentSessionId);a||(a=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,a));for(let o of this.buffersPending)a.push(o);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(a=>{a.forEach(o=>{o.destroy()})}),this.freeUniformBuffers.forEach(a=>{a.forEach(o=>{o.destroy()})}),this.storageCache.forEach(a=>{a.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(a=>{a.forEach(o=>{o.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(a){let o=this.capturedPendingBuffers.get(a);o&&(o.forEach(n=>{n.destroy()}),this.capturedPendingBuffers.delete(a)),this.sessionCount-=1,this.sessionCount===0&&(Pt("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(n=>{n.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Sm=(...a)=>new Ff(...a)}),Sf,Yt,Yr=CA(()=>{Sf=class{constructor(a){Object.assign(this,a)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(a=>`${this[a]}`).join(";")),this.key}},Yt=a=>new Sf(a)}),uo,k0,gs,Qs,JA,Nr,K2,ao,Jn,KA,Fo,tA,UA,Om,wc,Of,_m,Ct=CA(()=>{st(),pt(),uo=64,k0=(a,o)=>{if(o===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(a)){case 10:return o>1?`vec${o}`:"f16";case 1:return o>1?`vec${o}`:"f32";case 6:return o>1?`vec${o}`:"i32";case 12:return o>1?`vec${o}`:"u32";case 7:if(o>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","i32"];case 13:if(o>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","u32"];case 9:if(o!==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: ${a}`)}},gs=(a,o=1)=>{let n=k0(a,o);return typeof n=="string"?n:n[0]},Qs=(a,o=1)=>{let n=k0(a,o);return typeof n=="string"?n:n[1]},JA=(...a)=>{let o=[];return a.forEach(n=>{n.length!==0&&o.push({type:12,data:n},{type:12,data:Ke.computeStrides(n)})}),o},Nr=a=>a%4===0?4:a%2===0?2:1,K2=(a="f32",o,n="0")=>!o||o===1?`${a}(${n})`:`vec${o}<${a}>(${n})`,ao=(a,o,n)=>a==="f32"?n:o===1?`f32(${n})`:`vec${o}(${n})`,Jn=(a,o)=>o===4?`(${a}.x + ${a}.y + ${a}.z + ${a}.w)`:o===2?`(${a}.x + ${a}.y)`:o===3?`(${a}.x + ${a}.y + ${a}.z)`:a,KA=(a,o,n,u)=>a.startsWith("uniforms.")&&n>4?typeof o=="string"?u==="f16"?`${a}[(${o}) / 8][(${o}) % 8 / 4][(${o}) % 8 % 4]`:`${a}[(${o}) / 4][(${o}) % 4]`:u==="f16"?`${a}[${Math.floor(o/8)}][${Math.floor(o%8/4)}][${o%8%4}]`:`${a}[${Math.floor(o/4)}][${o%4}]`:n>1?`${a}[${o}]`:a,Fo=(a,o,n,u,m)=>{let b=typeof n=="number",C=b?n:n.length,w=[...new Array(C).keys()],E=C<2?"u32":C<=4?`vec${C}`:`array`,x=k0(o,m),D=typeof x=="string"?x:x[1],B=typeof x=="string"?x:x[0],v={indices:E,value:D,storage:B,tensor:o},F=ne=>typeof ne=="string"?ne:`${ne}u`,S={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},L=b?"uniforms.":"",Z=`${L}${a}_shape`,N=`${L}${a}_strides`,z="";for(let ne=0;ne ${v.indices} { + var indices: ${v.indices}; + var current = offset; + ${z} + return indices; + }`,f=ne=>(S.offsetToIndices=!0,C<2?ne:`o2i_${a}(${ne})`),k=[];if(C>=2)for(let ne=C-1;ne>=0;ne--)k.push(`${KA(N,ne,C)} * (indices[${ne}])`);let e=C<2?"":` + fn i2o_${a}(indices: ${v.indices}) -> u32 { + return ${k.join("+")}; + }`,d=ne=>(S.indicesToOffset=!0,C<2?ne:`i2o_${a}(${ne})`),y=(...ne)=>C===0?"0u":`${v.indices}(${ne.map(F).join(",")})`,te=(ne,Ae)=>C<2?`${ne}`:`${KA(ne,Ae,C)}`,T=(ne,Ae,pe)=>C<2?`${ne}=${pe};`:`${KA(ne,Ae,C)}=${pe};`,O={},he=(ne,Ae)=>{S.broadcastedIndicesToOffset=!0;let pe=`${Ae.name}broadcastedIndicesTo${a}Offset`;if(pe in O)return`${pe}(${ne})`;let le=[];for(let Qe=C-1;Qe>=0;Qe--){let iA=Ae.indicesGet("outputIndices",Qe+Ae.rank-C);le.push(`${te(N,Qe)} * (${iA} % ${te(Z,Qe)})`)}return O[pe]=`fn ${pe}(outputIndices: ${Ae.type.indices}) -> u32 { + return ${le.length>0?le.join("+"):"0u"}; + }`,`${pe}(${ne})`},ee=(ne,Ae)=>(()=>{if(v.storage===v.value)return`${a}[${ne}]=${Ae};`;if(v.storage==="vec2"&&v.value==="i32")return`${a}[${ne}]=vec2(u32(${Ae}), select(0u, 0xFFFFFFFFu, ${Ae} < 0));`;if(v.storage==="vec2"&&v.value==="u32")return`${a}[${ne}]=vec2(u32(${Ae}), 0u);`;if(v.storage==="u32"&&v.value==="vec4")return`${a}[${ne}]=dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(${Ae}));`;throw new Error(`not supported combination of storage type ${v.storage} and value type ${v.value} yet`)})(),Ce=ne=>(()=>{if(v.storage===v.value)return`${a}[${ne}]`;if(v.storage==="vec2"&&v.value==="i32")return`i32(${a}[${ne}].x)`;if(v.storage==="vec2"&&v.value==="u32")return`u32(${a}[${ne}].x)`;if(v.storage==="u32"&&v.value==="vec4")return`vec4(bool(${a}[${ne}] & 0xFFu), bool(${a}[${ne}] & 0xFF00u), bool(${a}[${ne}] & 0xFF0000u), bool(${a}[${ne}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${v.storage} and value type ${v.value} yet`)})(),we=C<2?"":` + fn get_${a}ByIndices(indices: ${v.indices}) -> ${D} { + return ${Ce(`i2o_${a}(indices)`)}; + }`,xe=C<2?"":(()=>{let ne=w.map(pe=>`d${pe}: u32`).join(", "),Ae=w.map(pe=>`d${pe}`).join(", ");return` + fn get_${a}(${ne}) -> ${D} { + return get_${a}ByIndices(${y(Ae)}); + }`})(),De=(...ne)=>{if(ne.length!==C)throw new Error(`indices length must be ${C}`);let Ae=ne.map(F).join(",");return C===0?Ce("0u"):C===1?Ce(Ae[0]):(S.get=!0,S.getByIndices=!0,S.indicesToOffset=!0,`get_${a}(${Ae})`)},Be=ne=>C<2?Ce(ne):(S.getByIndices=!0,S.indicesToOffset=!0,`get_${a}ByIndices(${ne})`),Oe=C<2?"":` + fn set_${a}ByIndices(indices: ${v.indices}, value: ${D}) { + ${ee(`i2o_${a}(indices)`,"value")} + }`,_e=C<2?"":(()=>{let ne=w.map(pe=>`d${pe}: u32`).join(", "),Ae=w.map(pe=>`d${pe}`).join(", ");return` + fn set_${a}(${ne}, value: ${D}) { + set_${a}ByIndices(${y(Ae)}, value); + }`})();return{impl:()=>{let ne=[],Ae=!1;return S.offsetToIndices&&(ne.push(K),Ae=!0),S.indicesToOffset&&(ne.push(e),Ae=!0),S.broadcastedIndicesToOffset&&(Object.values(O).forEach(pe=>ne.push(pe)),Ae=!0),S.set&&(ne.push(_e),Ae=!0),S.setByIndices&&(ne.push(Oe),Ae=!0),S.get&&(ne.push(xe),Ae=!0),S.getByIndices&&(ne.push(we),Ae=!0),!b&&Ae&&ne.unshift(`const ${Z} = ${v.indices}(${n.join(",")});`,`const ${N} = ${v.indices}(${Ke.computeStrides(n).join(",")});`),ne.join(` +`)},type:v,offsetToIndices:f,indicesToOffset:d,broadcastedIndicesToOffset:he,indices:y,indicesGet:te,indicesSet:T,set:(...ne)=>{if(ne.length!==C+1)throw new Error(`indices length must be ${C}`);let Ae=ne[C];if(typeof Ae!="string")throw new Error("value must be string");let pe=ne.slice(0,C).map(F).join(",");return C===0?ee("0u",Ae):C===1?ee(pe[0],Ae):(S.set=!0,S.setByIndices=!0,S.indicesToOffset=!0,`set_${a}(${pe}, ${Ae})`)},setByOffset:ee,setByIndices:(ne,Ae)=>C<2?ee(ne,Ae):(S.setByIndices=!0,S.indicesToOffset=!0,`set_${a}ByIndices(${ne}, ${Ae});`),get:De,getByOffset:Ce,getByIndices:Be,usage:u,name:a,strides:N,shape:Z,rank:C}},tA=(a,o,n,u=1)=>Fo(a,o,n,"input",u),UA=(a,o,n,u=1)=>Fo(a,o,n,"output",u),Om=(a,o,n)=>Fo(a,o,n,"atomicOutput",1),wc=(a,o,n,u=1)=>Fo(a,o,n,"internal",u),Of=class{constructor(a,o){this.normalizedDispatchGroup=a,this.limits=o,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(a){return`if (global_idx >= ${typeof a=="number"?`${a}u`:a}) { return; }`}mainStart(a=uo){let o=typeof a=="number"?a:a[0],n=typeof a=="number"?1:a[1],u=typeof a=="number"?1:a[2];if(o>this.limits.maxComputeWorkgroupSizeX||n>this.limits.maxComputeWorkgroupSizeY||u>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${o}, ${n}, ${u}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(o*n*u>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${o}, ${n}, ${u}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let m=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,b=m?`@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`,C=m?`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 * ${o*n*u}u + local_idx;`;return`@compute @workgroup_size(${o}, ${n}, ${u}) + fn main(${b}) { + ${C} + `}appendVariableUniforms(a){a.rank!==0&&(a.shape.startsWith("uniforms.")&&this.uniforms.push({name:a.shape.replace("uniforms.",""),type:"u32",length:a.rank}),a.strides.startsWith("uniforms.")&&this.uniforms.push({name:a.strides.replace("uniforms.",""),type:"u32",length:a.rank}))}declareVariable(a,o){if(a.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(a),this.appendVariableUniforms(a);let n=a.usage==="input"?"read":"read_write",u=a.usage==="atomicOutput"?"atomic":a.type.storage;return`@group(0) @binding(${o}) var ${a.name}: array<${u}>;`}declareVariables(...a){return a.map(o=>this.declareVariable(o,this.variableIndex++)).join(` +`)}registerInternalVariable(a){if(a.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(a),this.appendVariableUniforms(a)}registerInternalVariables(...a){return a.forEach(o=>this.registerInternalVariable(o)),this}registerUniform(a,o,n=1){return this.uniforms.push({name:a,type:o,length:n}),this}registerUniforms(a){return this.uniforms=this.uniforms.concat(a),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let a=[];for(let{name:o,type:n,length:u}of this.uniforms)if(u&&u>4)n==="f16"?a.push(`@align(16) ${o}:array, ${Math.ceil(u/8)}>`):a.push(`${o}:array, ${Math.ceil(u/4)}>`);else{let m=u==null||u===1?n:`vec${u}<${n}>`;a.push(`${o}:${m}`)}return` + struct Uniforms { ${a.join(", ")} }; + @group(0) @binding(${this.variableIndex}) var uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(a=>a.impl()).join(` +`)+this.internalVariables.map(a=>a.impl()).join(` +`)}get variablesInfo(){if(this.uniforms.length===0)return;let a=o=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(o)];return this.uniforms.map(o=>[a(o.type),o.length??1])}},_m=(a,o)=>new Of(a,o)}),_f,A2,zf,Nf,Lf,Rf,ca,zm,Nm,qn=CA(()=>{st(),pt(),Yr(),Ct(),_f=(a,o)=>{if(!a||a.length!==1)throw new Error("Transpose requires 1 input.");if(o.length!==0&&o.length!==a[0].dims.length)throw new Error(`perm size ${o.length} does not match input rank ${a[0].dims.length}`)},A2=(a,o)=>o.length!==0?o:[...new Array(a).keys()].reverse(),zf=(a,o)=>Ke.sortBasedOnPerm(a,A2(a.length,o)),Nf=(a,o,n,u)=>{let m=`fn perm(i: ${u.type.indices}) -> ${n.type.indices} { + var a: ${n.type.indices};`;for(let b=0;b{let n=[],u=[];for(let m=0;m{let n=0;for(let u=0;u{let n=a.dataType,u=a.dims.length,m=A2(u,o),b=zf(a.dims,m),C=a.dims,w=b,E=u<2||Rf(m,a.dims),x;if(E)return x=S=>{let L=tA("input",n,C,4),Z=UA("output",n,w,4);return` + ${S.registerUniform("output_size","u32").declareVariables(L,Z)} + ${S.mainStart()} + ${S.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + output[global_idx] = input[global_idx]; + }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let S=Ke.size(b);return{outputs:[{dims:b,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(S/64/4)},programUniforms:[{type:12,data:Math.ceil(S/4)}]}},getShaderSource:x};let{newShape:D,newPerm:B}=Lf(a.dims,m),v=Ke.areEqual(B,[2,3,1]),F=Ke.areEqual(B,[3,1,2]);if(D.length===2||v||F){C=v?[D[0],D[1]*D[2]]:F?[D[0]*D[1],D[2]]:D,w=[C[1],C[0]];let S=16;return x=L=>{let Z=tA("a",n,C.length),N=UA("output",n,w.length);return` + ${L.registerUniform("output_size","u32").declareVariables(Z,N)} + var tile : array, ${S}>; + ${L.mainStart([S,S,1])} + let stride = (uniforms.output_shape[1] - 1) / ${S} + 1; + let workgroup_id_x = workgroup_index % stride; + let workgroup_id_y = workgroup_index / stride; + let input_col = workgroup_id_y * ${S}u + local_id.x; + let input_row = workgroup_id_x * ${S}u + local_id.y; + if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { + tile[local_id.y][local_id.x] = ${Z.getByIndices(`${Z.type.indices}(input_row, input_col)`)}; + } + workgroupBarrier(); + + let output_col = workgroup_id_x * ${S}u + local_id.x; + let output_row = workgroup_id_y * ${S}u + local_id.y; + if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { + ${N.setByIndices(`${N.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} + } + }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let L=Ke.size(b);return{outputs:[{dims:b,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(w[1]/S),y:Math.ceil(w[0]/S)},programUniforms:[{type:12,data:L},...JA(C,w)]}},getShaderSource:x}}return x=S=>{let L=tA("a",n,C.length),Z=UA("output",n,w.length);return` + ${S.registerUniform("output_size","u32").declareVariables(L,Z)} + + ${Nf(m,u,L,Z)} + + ${S.mainStart()} + ${S.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${Z.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${Z.setByOffset("global_idx",L.getByIndices("aIndices"))} + }`},{name:"Transpose",shaderCache:{hint:`${o}`,inputDependencies:["rank"]},getRunData:()=>{let S=Ke.size(b);return{outputs:[{dims:b,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(S/64)},programUniforms:[{type:12,data:S},...JA(C,w)]}},getShaderSource:x}},zm=(a,o)=>{_f(a.inputs,o.perm),a.compute(ca(a.inputs[0],o.perm))},Nm=a=>Yt({perm:a.perm})}),jf,Wf,Yf,Vf,Hf,Uf,Kf,Xf,Zf,Jf,Ga,Lm,Rm,jm,Wm,Ym,Vm,Hm,Um,Km,Xm,NI=CA(()=>{st(),pt(),Ct(),kc(),qn(),jf={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"},Wf={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"},Yf={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},Vf={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},Hf=(a,o)=>{let n=[];for(let u=o-a;u{let n=[],u=a.length;for(let b=0;ba[b]);return[n,m]},Kf=(a,o)=>{let n=a.length+o.length,u=[],m=0;for(let b=0;b{for(let n=0;n{let n=[];if(!Xf(a,o)){for(let u=0;un.push(u))}return n},Jf=(a,o,n,u,m,b,C)=>{let w=n[0].dims,E=Ke.size(b),x=Ke.size(C),D=tA("_A",n[0].dataType,w),B=UA("output",m,b),v=64;E===1&&(v=256);let F=` + var aBestValues : array; + `,S=L=>` + ${L.registerUniform("reduceSize","u32").declareVariables(D,B)} + ${F} + fn DIV_CEIL(a : u32, b : u32) -> u32 { + return ((a - 1u) / b + 1u); + } + ${L.mainStart(v)} + + let outputIndex = global_idx / ${v}; + let offset = outputIndex * uniforms.reduceSize; + + var bestValue = f32(${Yf[u]}); + let Length = uniforms.reduceSize; + for (var k = local_idx; k < Length; k = k + ${v}) { + let candidate = f32(${D.getByOffset("offset + k")}); + bestValue = ${jf[u]}; + } + aBestValues[local_idx] = bestValue; + workgroupBarrier(); + + var reduceSize = min(Length, ${v}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 = ${Wf[u]}; + aBestValues[local_idx] = bestValue; + } + reduceSize = interval; + workgroupBarrier(); + } + + if (local_idx == 0u) { + ${B.setByOffset("outputIndex",`${u==="mean"?`${B.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${B.type.storage}(${Vf[u]})`}`)}; + } + }`;return{name:a,shaderCache:{hint:`${o};${v}`,inputDependencies:["type"]},getShaderSource:S,getRunData:()=>({outputs:[{dims:b,dataType:m}],dispatchGroup:{x:E},programUniforms:[{type:12,data:x}]})}},Ga=(a,o,n,u)=>{let m=a.inputs.length===1?n:X2(a.inputs,n),b=m.axes;b.length===0&&!m.noopWithEmptyAxes&&(b=a.inputs[0].dims.map((F,S)=>S));let C=Ke.normalizeAxes(b,a.inputs[0].dims.length),w=C,E=a.inputs[0],x=Zf(w,a.inputs[0].dims.length);x.length>0&&(E=a.compute(ca(a.inputs[0],x),{inputs:[0],outputs:[-1]})[0],w=Hf(w.length,E.dims.length));let[D,B]=Uf(E.dims,w),v=D;m.keepDims&&(v=Kf(D,C)),a.compute(Jf(o,m.cacheKey,[E],u,a.inputs[0].dataType,v,B),{inputs:[E]})},Lm=(a,o)=>{Ga(a,"ReduceMeanShared",o,"mean")},Rm=(a,o)=>{Ga(a,"ReduceL1Shared",o,"l1")},jm=(a,o)=>{Ga(a,"ReduceL2Shared",o,"l2")},Wm=(a,o)=>{Ga(a,"ReduceLogSumExpShared",o,"logSumExp")},Ym=(a,o)=>{Ga(a,"ReduceMaxShared",o,"max")},Vm=(a,o)=>{Ga(a,"ReduceMinShared",o,"min")},Hm=(a,o)=>{Ga(a,"ReduceProdShared",o,"prod")},Um=(a,o)=>{Ga(a,"ReduceSumShared",o,"sum")},Km=(a,o)=>{Ga(a,"ReduceSumSquareShared",o,"sumSquare")},Xm=(a,o)=>{Ga(a,"ReduceLogSumShared",o,"logSum")}}),Qa,qf,N0,X2,Fa,$f,eg,Ag,tg,rg,sg,ag,ng,ig,og,Sa,Zm,Jm,qm,$m,eh,Ah,th,rh,sh,ah,kc=CA(()=>{st(),pt(),Yr(),Ct(),NI(),Qa=a=>{if(!a||a.length===0||a.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(a.length===2&&a[1].dims.length!==1)throw new Error("Invalid axes input dims.")},qf=a=>["","",`var value = ${a.getByIndices("input_indices")};`,""],N0=(a,o,n,u,m,b,C=!1,w=!1)=>{let E=[],x=n[0].dims,D=x.length,B=Ke.normalizeAxes(m,D),v=!w&&B.length===0;x.forEach((L,Z)=>{v||B.indexOf(Z)>=0?C&&E.push(1):E.push(L)});let F=E.length,S=Ke.size(E);return{name:a,shaderCache:o,getShaderSource:L=>{let Z=[],N=tA("_A",n[0].dataType,D),z=UA("output",b,F),K=u(N,z,B),f=K[2];for(let k=0,e=0;k=0?(C&&e++,f=`for(var j${k}: u32 = 0; j${k} < ${x[k]}; j${k}++) { + ${K[2].includes("last_index")?`let last_index = j${k};`:""} + ${N.indicesSet("input_indices",k,`j${k}`)} + ${f} + }`):(Z.push(`${N.indicesSet("input_indices",k,z.indicesGet("output_indices",e))};`),e++);return` + + ${L.registerUniform("output_size","u32").declareVariables(N,z)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var input_indices: ${N.type.indices}; + let output_indices = ${z.offsetToIndices("global_idx")}; + + ${Z.join(` +`)} + ${K[0]} // init ops for reduce max/min + ${K[1]} + ${f} + ${K[3]} + ${K.length===4?z.setByOffset("global_idx","value"):K.slice(4).join(` +`)} + }`},getRunData:()=>({outputs:[{dims:E,dataType:b}],dispatchGroup:{x:Math.ceil(S/64)},programUniforms:[{type:12,data:S},...JA(x,E)]})}},X2=(a,o)=>{let n=[];return a[1].dims[0]>0&&a[1].getBigInt64Array().forEach(u=>n.push(Number(u))),Yt({axes:n,keepDims:o.keepDims,noopWithEmptyAxes:o.noopWithEmptyAxes})},Fa=(a,o,n,u)=>{let m=a.inputs,b=m.length===1?n:X2(m,n);a.compute(N0(o,{hint:b.cacheKey,inputDependencies:["rank"]},[m[0]],b.noopWithEmptyAxes&&b.axes.length===0?qf:u,b.axes,m[0].dataType,b.keepDims,b.noopWithEmptyAxes),{inputs:[0]})},$f=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceLogSum",o,(n,u)=>[`var value = ${u.type.storage}(0);`,"",`value += ${n.getByIndices("input_indices")};`,"value = log(value);"])},eg=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceL1",o,(n,u)=>[`var value = ${u.type.storage}(0);`,"",`value += abs(${n.getByIndices("input_indices")});`,""])},Ag=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceL2",o,(n,u)=>[`var t = ${u.type.value}(0); var value = ${u.type.value}(0);`,"",`t = ${n.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},tg=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceLogSumExp",o,(n,u)=>[`var value = ${u.type.storage}(0);`,"",`value += exp(${n.getByIndices("input_indices")});`,"value = log(value);"])},rg=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceMax",o,(n,u,m)=>{let b=[];for(let C=0;C=0||m.length===0)&&b.push(n.indicesSet("input_indices",C,0));return[`${b.join(` +`)}`,`var value = ${n.getByIndices("input_indices")};`,`value = max(value, ${n.getByIndices("input_indices")});`,""]})},sg=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceMean",o,(n,u,m)=>{let b=1;for(let C=0;C=0||m.length===0)&&(b*=a.inputs[0].dims[C]);return["var sum = f32(0);","",`sum += f32(${n.getByIndices("input_indices")});`,`let value = ${u.type.value}(sum / ${b});`]})},ag=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceMin",o,(n,u,m)=>{let b=[];for(let C=0;C=0||m.length===0)&&b.push(`input_indices[${C}] = 0;`);return[`${b.join(` +`)}`,`var value = ${n.getByIndices("input_indices")};`,`value = min(value, ${n.getByIndices("input_indices")});`,""]})},ng=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceProd",o,(n,u)=>[`var value = ${u.type.storage}(1);`,"",`value *= ${n.getByIndices("input_indices")};`,""])},ig=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceSum",o,(n,u)=>[`var value = ${u.type.storage}(0);`,"",`value += ${n.getByIndices("input_indices")};`,""])},og=(a,o)=>{Qa(a.inputs),Fa(a,"ReduceSumSquare",o,(n,u)=>[`var t = ${u.type.value}(0); var value = ${u.type.value}(0);`,"",`t = ${n.getByIndices("input_indices")}; value += t * t;`,""])},Sa=(a,o,n)=>{if(o.length===0)return n;let u=1,m=1;for(let b=0;b1024},Zm=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?sg(a,o):Lm(a,o)},Jm=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?eg(a,o):Rm(a,o)},qm=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?Ag(a,o):jm(a,o)},$m=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?tg(a,o):Wm(a,o)},eh=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?rg(a,o):Ym(a,o)},Ah=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?ag(a,o):Vm(a,o)},th=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?ng(a,o):Hm(a,o)},rh=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?ig(a,o):Um(a,o)},sh=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?og(a,o):Km(a,o)},ah=(a,o)=>{Sa(a.inputs[0].dims,o.axes,o.noopWithEmptyAxes)?$f(a,o):Xm(a,o)}}),t2,nh,ih,Z2,LI=CA(()=>{st(),Yr(),kc(),t2=a=>{if(!a||a.length===0||a.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(a[0].dataType!==1)throw new Error("Invalid input type.")},nh=(a,o)=>{t2(a.inputs);let n=(u,m,b)=>{let C=[];for(let w=0;w=0||b.length===0)&&C.push(`input_indices[${w}] = 0;`);return[`${C.join(` +`)}`,`var value = ${u.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${u.getByIndices("input_indices")} ${o.selectLastIndex>0?"<=":"<"} value) { + value = ${u.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",m.setByOffset("global_idx","best_index")]};a.compute(N0("ArgMin",{hint:o.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],n,[o.axis],7,o.keepDims),{inputs:[0]})},ih=(a,o)=>{t2(a.inputs);let n=(u,m,b)=>{let C=[];for(let w=0;w=0||b.length===0)&&C.push(`input_indices[${w}] = 0;`);return[`${C.join(` +`)}`,`var value = ${u.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${u.getByIndices("input_indices")} ${o.selectLastIndex>0?">=":">"} value) { + value = ${u.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",m.setByOffset("global_idx","best_index")]};a.compute(N0("argMax",{hint:o.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],n,[o.axis],7,o.keepDims),{inputs:[0]})},Z2=a=>Yt(a)}),lg,E0,cg,ug,dg,Jo,fg,oh,Ec=CA(()=>{st(),pt(),Ic(),Ct(),lg=(a,o)=>{let n=a[0],u=a[1],m=a[2],b=a[3],C=a[4],w=a[5];if(C&&w)throw new Error("Attention cannot have both past and attention_bias");if(n.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let E=n.dims[0],x=n.dims[1],D=n.dims[2];if(m.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(u.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(u.dims[0]!==D)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(m.dims[0]!==u.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let B=m.dims[0]/3,v=B,F=v;if(o.qkvHiddenSizes.length>0){if(o.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let K of o.qkvHiddenSizes)if(K%o.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");B=o.qkvHiddenSizes[0],v=o.qkvHiddenSizes[1],F=o.qkvHiddenSizes[2]}let S=x;if(B!==v)throw new Error("qkv_hidden_sizes first element should be same as the second");if(m.dims[0]!==B+v+F)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let L=0;if(C){if(v!==F)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(C.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(C.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(C.dims[1]!==E)throw new Error('Input "past" second dimension must be batch_size');if(C.dims[2]!==o.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(C.dims[4]!==v/o.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');o.pastPresentShareBuffer||(L=C.dims[3])}let Z=S+L,N=-1,z=0;if(b)throw new Error("Mask not supported");if(C)throw new Error("past is not supported");if(w){if(w.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(w.dims[0]!==E||w.dims[1]!==o.numHeads||w.dims[2]!==x||w.dims[3]!==Z)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:E,sequenceLength:x,pastSequenceLength:L,kvSequenceLength:S,totalSequenceLength:Z,maxSequenceLength:N,inputHiddenSize:D,hiddenSize:B,vHiddenSize:F,headSize:Math.floor(B/o.numHeads),vHeadSize:Math.floor(F/o.numHeads),numHeads:o.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:o.maskFilterValue,maskType:z,scale:o.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},E0=(a,o,n)=>o&&a?` + let total_sequence_length_input = u32(${o.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(${a?.getByOffset("batchIdx")}) + 1; + var past_sequence_length: u32 = 0; + if (is_first_prompt == false) { + past_sequence_length = total_sequence_length - sequence_length; + } + `:` + ${n?"let past_sequence_length = uniforms.past_sequence_length":""}; + let present_sequence_length = total_sequence_length; + `,cg=(a,o,n,u,m,b,C,w)=>{let E=Nr(C?1:b),x=64,D=b/E;D{let z=UA("x",a.dataType,a.dims,E),K=[z],f=C?tA("seq_lens",C.dataType,C.dims):void 0;f&&K.push(f);let k=w?tA("total_sequence_length_input",w.dataType,w.dims):void 0;k&&K.push(k);let e=Qs(a.dataType),d=[{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; + ${N.registerUniforms(d).declareVariables(...K)} + ${N.mainStart([x,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; + ${E0(f,k,!1)} + let local_offset = local_idx * uniforms.elements_per_thread; + let offset = (global_idx / ${x}) * uniforms.total_sequence_length + local_offset; + let seq_causal_length = ${C?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"}; + var thread_max_vector = ${S}(-3.402823e+38f); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + thread_max_vector = max(${S}(x[offset + i]), thread_max_vector); + } + thread_max[local_idx] = ${(()=>{switch(E){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: ${E}`)}})()}; + workgroupBarrier(); + + var max_value = f32(-3.402823e+38f); + for (var i = 0u; i < ${x}; i++) { + max_value = max(thread_max[i], max_value); + } + + var sum_vector = ${S}(0); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + sum_vector += exp(${S}(x[offset + i]) - max_value); + } + thread_sum[local_idx] = ${(()=>{switch(E){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: ${E}`)}})()}; + workgroupBarrier(); + + var sum: f32 = 0; + for (var i = 0u; i < ${x}; 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] = ${z.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 = ${S}(x[offset + i]); + x[offset + i] = ${z.type.value}(exp(f32input - max_value) / sum); + } + } + ${C?` + 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] = ${z.type.value}(${e}(0)); + }`:""}; + }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${x};${F};${E}`,inputDependencies:L},getShaderSource:Z,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:m,z:o*n},programUniforms:v})}},ug=(a,o,n,u,m,b,C,w,E)=>{let x=C+b.kvSequenceLength,D=[b.batchSize,b.numHeads,b.sequenceLength,x],B=a>1&&u,v=b.kvNumHeads?b.kvNumHeads:b.numHeads,F=B?[b.batchSize,v,x,b.headSize]:void 0,S=b.nReps?b.nReps:1,L=b.scale===0?1/Math.sqrt(b.headSize):b.scale,Z=Nr(b.headSize),N=b.headSize/Z,z=12,K={x:Math.ceil(x/z),y:Math.ceil(b.sequenceLength/z),z:b.batchSize*b.numHeads},f=[{type:12,data:b.sequenceLength},{type:12,data:N},{type:12,data:x},{type:12,data:b.numHeads},{type:12,data:b.headSize},{type:1,data:L},{type:12,data:C},{type:12,data:b.kvSequenceLength},{type:12,data:S}],k=B&&u&&Ke.size(u.dims)>0,e=["type","type"];k&&e.push("type"),m&&e.push("type"),w&&e.push("type"),E&&e.push("type");let d=[{dims:D,dataType:o.dataType,gpuDataType:0}];B&&d.push({dims:F,dataType:o.dataType,gpuDataType:0});let y=te=>{let T=tA("q",o.dataType,o.dims,Z),O=tA("key",n.dataType,n.dims,Z),he=[T,O];if(k){let Oe=tA("past_key",u.dataType,u.dims,Z);he.push(Oe)}m&&he.push(tA("attention_bias",m.dataType,m.dims));let ee=w?tA("seq_lens",w.dataType,w.dims):void 0;ee&&he.push(ee);let Ce=E?tA("total_sequence_length_input",E.dataType,E.dims):void 0;Ce&&he.push(Ce);let we=UA("output",o.dataType,D),xe=[we];B&&xe.push(UA("present_key",o.dataType,F,Z));let De=Qs(1,Z),Be=[{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 = ${z}u; + + var tileQ: array<${T.type.storage}, ${z*z}>; + var tileK: array<${T.type.storage}, ${z*z}>; + ${te.registerUniforms(Be).declareVariables(...he,...xe)} + ${te.mainStart([z,z,1])} + // x holds the N and y holds the M + let headIdx = workgroup_id.z % uniforms.num_heads; + let kvHeadIdx = ${S===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${S===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; + ${E0(ee,Ce,!0)} + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; + let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + ${k&&B?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""}; + let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K; + ${B?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""} + var value = ${De}(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; + ${k&&B?` + 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]; + }`} + ${B?`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 += ${De}(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(Z){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: ${Z}`)}})()}; + output[outputIdx] = ${we.type.value} (sum * uniforms.alpha) + ${m?"attention_bias[outputIdx]":"0.0"}; + } + }`};return{name:"AttentionProbs",shaderCache:{hint:`${Z};${m!==void 0};${u!==void 0};${a}`,inputDependencies:e},getRunData:()=>({outputs:d,dispatchGroup:K,programUniforms:f}),getShaderSource:y}},dg=(a,o,n,u,m,b,C=void 0,w=void 0)=>{let E=b+m.kvSequenceLength,x=m.nReps?m.nReps:1,D=m.vHiddenSize*x,B=a>1&&u,v=m.kvNumHeads?m.kvNumHeads:m.numHeads,F=B?[m.batchSize,v,E,m.headSize]:void 0,S=[m.batchSize,m.sequenceLength,D],L=12,Z={x:Math.ceil(m.vHeadSize/L),y:Math.ceil(m.sequenceLength/L),z:m.batchSize*m.numHeads},N=[{type:12,data:m.sequenceLength},{type:12,data:E},{type:12,data:m.vHeadSize},{type:12,data:m.numHeads},{type:12,data:m.headSize},{type:12,data:D},{type:12,data:b},{type:12,data:m.kvSequenceLength},{type:12,data:x}],z=B&&u&&Ke.size(u.dims)>0,K=["type","type"];z&&K.push("type"),C&&K.push("type"),w&&K.push("type");let f=[{dims:S,dataType:o.dataType,gpuDataType:0}];B&&f.push({dims:F,dataType:o.dataType,gpuDataType:0});let k=e=>{let d=tA("probs",o.dataType,o.dims),y=tA("v",n.dataType,n.dims),te=[d,y];z&&te.push(tA("past_value",u.dataType,u.dims));let T=C?tA("seq_lens",C.dataType,C.dims):void 0;C&&te.push(T);let O=w?tA("total_sequence_length_input",w.dataType,w.dims):void 0;w&&te.push(O);let he=[UA("output",o.dataType,S)];B&&he.push(UA("present_value",o.dataType,F));let ee=[{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 = ${L}u; + var tileQ: array<${d.type.value}, ${L*L}>; + var tileV: array<${d.type.value}, ${L*L}>; + ${e.registerUniforms(ee).declareVariables(...te,...he)} + ${e.mainStart([L,L,1])} + let headIdx = workgroup_id.z % uniforms.num_heads; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let kvHeadIdx = ${x===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${x===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; + ${E0(T,O,!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 + ${z&&B?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""}; + let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n; + ${B?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""} + var value = ${d.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; + ${z&&B?` + 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]; + }`} + ${B?` + 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:`${u!==void 0};${a}`,inputDependencies:K},getRunData:()=>({outputs:f,dispatchGroup:Z,programUniforms:N}),getShaderSource:k}},Jo=(a,o,n,u,m,b,C,w,E,x,D=void 0,B=void 0)=>{let v=Math.min(a.outputCount,1+(C?1:0)+(w?1:0)),F=v>1?x.pastSequenceLength:0,S=F+x.kvSequenceLength,L=E&&Ke.size(E.dims)>0?E:void 0,Z=[o,n];v>1&&C&&Ke.size(C.dims)>0&&Z.push(C),L&&Z.push(L),D&&Z.push(D),B&&Z.push(B);let N=a.compute(ug(v,o,n,C,L,x,F,D,B),{inputs:Z,outputs:v>1?[-1,1]:[-1]})[0];a.compute(cg(N,x.batchSize,x.numHeads,F,x.sequenceLength,S,D,B),{inputs:D&&B?[N,D,B]:[N],outputs:[]});let z=[N,u];v>1&&w&&Ke.size(w.dims)>0&&z.push(w),D&&z.push(D),B&&z.push(B),a.compute(dg(v,N,u,w,x,F,D,B),{inputs:z,outputs:v>1?[0,2]:[0]})},fg=(a,o)=>{let n=[o.batchSize,o.numHeads,o.sequenceLength,o.headSize],u=o.sequenceLength,m=o.inputHiddenSize,b=o.headSize,C=12,w={x:Math.ceil(o.headSize/C),y:Math.ceil(o.sequenceLength/C),z:o.batchSize*o.numHeads},E=[a.inputs[0],a.inputs[1],a.inputs[2]],x=[{type:12,data:u},{type:12,data:m},{type:12,data:b},{type:12,data:o.numHeads},{type:12,data:o.headSize},{type:12,data:o.hiddenSize},{type:12,data:o.hiddenSize+o.hiddenSize+o.vHiddenSize}],D=B=>{let v=UA("output_q",E[0].dataType,n),F=UA("output_k",E[0].dataType,n),S=UA("output_v",E[0].dataType,n),L=tA("input",E[0].dataType,E[0].dims),Z=tA("weight",E[1].dataType,E[1].dims),N=tA("bias",E[2].dataType,E[2].dims),z=L.type.storage,K=[{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 = ${C}u; + var tileInput: array<${z}, ${C*C}>; + var tileWeightQ: array<${z}, ${C*C}>; + var tileWeightK: array<${z}, ${C*C}>; + var tileWeightV: array<${z}, ${C*C}>; + ${B.registerUniforms(K).declareVariables(L,Z,N,v,F,S)} + ${B.mainStart([C,C,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 = ${z}(0); + var valueK = ${z}(0); + var valueV = ${z}(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:n,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:a.inputs[0].dataType,gpuDataType:0}],dispatchGroup:w,programUniforms:x}),getShaderSource:D},{inputs:E,outputs:[-1,-1,-1]})},oh=(a,o)=>{let n=lg(a.inputs,o),[u,m,b]=fg(a,n);return Jo(a,u,m,b,a.inputs[4],void 0,void 0,void 0,a.inputs[5],n)}}),gg,pg,mg,lh,RI=CA(()=>{Ra(),st(),pt(),Yr(),Ct(),gg=(a,o)=>{if(!a||a.length!==5)throw new Error("BatchNormalization requires 5 inputs");let n=(u,m,b)=>{let C=m.length;if(C!==u.length)throw new Error(`${b}: num dimensions != ${C}`);m.forEach((w,E)=>{if(w!==u[E])throw new Error(`${b}: dim[${E}] do not match`)})};if(a[0].dims.length>1){let u=o.format==="NHWC"?o.spatial?a[0].dims.slice(-1):a[0].dims.slice(-1).concat(a[0].dims.slice(1,a[0].dims.length-1)):a[0].dims.slice(1,o.spatial?2:void 0);n(a[1].dims,u,"Invalid input scale"),n(a[2].dims,u,"Invalid input B"),n(a[3].dims,u,"Invalid input mean"),n(a[4].dims,u,"Invalid input var")}else n(a[1].dims,[1],"Invalid input scale"),n(a[2].dims,[1],"Invalid input B"),n(a[3].dims,[1],"Invalid input mean"),n(a[4].dims,[1],"Invalid input var")},pg=(a,o)=>{let{epsilon:n,spatial:u,format:m}=o,b=a[0].dims,C=u?Nr(b[b.length-1]):1,w=m==="NHWC"&&b.length>1?C:1,E=Ke.size(b)/C,x=u,D=x?b.length:b,B=tA("x",a[0].dataType,a[0].dims,C),v=tA("scale",a[1].dataType,a[1].dims,w),F=tA("bias",a[2].dataType,a[2].dims,w),S=tA("inputMean",a[3].dataType,a[3].dims,w),L=tA("inputVar",a[4].dataType,a[4].dims,w),Z=UA("y",a[0].dataType,D,C),N=()=>{let K="";if(u)K=`let cOffset = ${b.length===1?"0u":m==="NHWC"?`outputIndices[${b.length-1}] / ${C}`:"outputIndices[1]"};`;else if(m==="NCHW")K=` + ${Z.indicesSet("outputIndices","0","0")} + let cOffset = ${Z.indicesToOffset("outputIndices")};`;else{K=`var cIndices = ${v.type.indices}(0); + cIndices[0] = outputIndices[${b.length-1}];`;for(let f=1;f` + const epsilon = ${n}; + ${K.registerUniform("outputSize","u32").declareVariables(B,v,F,S,L,Z)} + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${Z.offsetToIndices(`global_idx * ${C}`)}; + ${N()} + let scale = ${v.getByOffset("cOffset")}; + let bias = ${F.getByOffset("cOffset")}; + let inputMean = ${S.getByOffset("cOffset")}; + let inputVar = ${L.getByOffset("cOffset")}; + let x = ${B.getByOffset("global_idx")}; + let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias; + ${Z.setByOffset("global_idx","value")} + }`;return{name:"BatchNormalization",shaderCache:{hint:`${o.epsilon}_${o.format}_${u}_${C}`,inputDependencies:x?["rank","type","type","type","type"]:void 0},getShaderSource:z,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:x?[{type:12,data:E},...JA(b)]:[{type:12,data:E}]})}},mg=a=>Yt(a),lh=(a,o)=>{let{inputs:n,outputCount:u}=a,m=mg({...o,outputCount:u});if(Cr.webgpu.validateInputContent&&gg(n,m),o.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");a.compute(pg(n,m))}}),hg,Cg,ch,jI=CA(()=>{pt(),Ct(),hg=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(a[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Cg=a=>{let o=a[0].dims,n=a[0].dims[2],u=Ke.size(o)/4,m=a[0].dataType,b=tA("input",m,o,4),C=tA("bias",m,[n],4),w=tA("residual",m,o,4),E=UA("output",m,o,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:o,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(u/64)}}),getShaderSource:x=>` + const channels = ${n}u / 4; + ${x.declareVariables(b,C,w,E)} + + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes(u)} + let value = ${b.getByOffset("global_idx")} + + ${C.getByOffset("global_idx % channels")} + ${w.getByOffset("global_idx")}; + ${E.setByOffset("global_idx","value")} + }`}},ch=a=>{hg(a.inputs),a.compute(Cg(a.inputs))}}),bg,Nt,uh,dh,fh,gh,ph,mh,hh,Ch,bh,Ig,Ih,wh,kh,Eh,Yo,Mh,F0,vh,xh,Bh,yh,Dh,Th,Ph,Gh,Qh,Fh,Sh,Oh,_h,zh,Nh,Lh,r2,Rh,J2,q2,jh,Wh,Yh,wg,kg,Vh,Mc=CA(()=>{st(),pt(),Yr(),Ct(),bg=(a,o,n,u,m,b,C)=>{let w=Math.ceil(o/4),E="";typeof m=="string"?E=`${m}(a)`:E=m("a");let x=tA("inputData",n,[w],4),D=UA("outputData",u,[w],4),B=[{name:"vec_size",type:"u32"}];return C&&B.push(...C),` + ${a.registerUniforms(B).declareVariables(x,D)} + + ${b??""} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + + let a = ${x.getByOffset("global_idx")}; + ${D.setByOffset("global_idx",E)} + }`},Nt=(a,o,n,u,m,b=a.dataType,C,w)=>{let E=[{type:12,data:Math.ceil(Ke.size(a.dims)/4)}];return C&&E.push(...C),{name:o,shaderCache:{hint:m,inputDependencies:["type"]},getShaderSource:x=>bg(x,Ke.size(a.dims),a.dataType,b,n,u,w),getRunData:x=>({outputs:[{dims:a.dims,dataType:b}],dispatchGroup:{x:Math.ceil(Ke.size(x[0].dims)/64/4)},programUniforms:E})}},uh=a=>{a.compute(Nt(a.inputs[0],"Abs","abs"))},dh=a=>{a.compute(Nt(a.inputs[0],"Acos","acos"))},fh=a=>{a.compute(Nt(a.inputs[0],"Acosh","acosh"))},gh=a=>{a.compute(Nt(a.inputs[0],"Asin","asin"))},ph=a=>{a.compute(Nt(a.inputs[0],"Asinh","asinh"))},mh=a=>{a.compute(Nt(a.inputs[0],"Atan","atan"))},hh=a=>{a.compute(Nt(a.inputs[0],"Atanh","atanh"))},Ch=a=>Yt(a),bh=(a,o)=>{let n;switch(o.to){case 10:n="vec4";break;case 1:n="vec4";break;case 12:n="vec4";break;case 6:n="vec4";break;case 9:n="vec4";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${o.to}`)}a.compute(Nt(a.inputs[0],"Cast",n,void 0,o.cacheKey,o.to))},Ig=a=>{let o,n,u=a.length>=2&&a[1].data!==0,m=a.length>=3&&a[2].data!==0;switch(a[0].dataType){case 1:o=u?a[1].getFloat32Array()[0]:-34028234663852886e22,n=m?a[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:o=u?a[1].getUint16Array()[0]:64511,n=m?a[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return Yt({min:o,max:n})},Ih=(a,o)=>{let n=o||Ig(a.inputs),u=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"Clip",m=>`clamp(${m}, vec4<${u}>(uniforms.min), vec4<${u}>(uniforms.max))`,void 0,n.cacheKey,void 0,[{type:a.inputs[0].dataType,data:n.min},{type:a.inputs[0].dataType,data:n.max}],[{name:"min",type:u},{name:"max",type:u}]),{inputs:[0]})},wh=a=>{a.compute(Nt(a.inputs[0],"Ceil","ceil"))},kh=a=>{a.compute(Nt(a.inputs[0],"Cos","cos"))},Eh=a=>{a.compute(Nt(a.inputs[0],"Cosh","cosh"))},Yo=a=>Yt(a),Mh=(a,o)=>{let n=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"Elu",u=>`elu_vf32(${u})`,` + const elu_alpha_ = ${n}(${o.alpha}); + + fn elu_f32(a: ${n}) -> ${n} { + return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); + } + + fn elu_vf32(v: vec4<${n}>) -> vec4<${n}> { + return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); + }`,o.cacheKey))},F0=(a="f32")=>` +const r0: ${a} = 0.3275911; +const r1: ${a} = 0.254829592; +const r2: ${a} = -0.284496736; +const r3: ${a} = 1.421413741; +const r4: ${a} = -1.453152027; +const r5: ${a} = 1.061405429; + +fn erf_vf32(v: vec4<${a}>) -> vec4<${a}> { + 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)); +}`,vh=a=>{let o=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"Erf",n=>`erf_vf32(${n})`,F0(o)))},xh=a=>{a.compute(Nt(a.inputs[0],"Exp","exp"))},Bh=a=>{a.compute(Nt(a.inputs[0],"Floor","floor"))},yh=a=>{let o=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"Gelu",n=>`0.5 * ${n} * (1.0 + erf_vf32(${n} * 0.7071067811865475))`,F0(o)))},Dh=(a,o)=>{let n=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"LeakyRelu",u=>`select(leaky_relu_alpha_ * ${u}, ${u}, ${u} >= vec4<${n}>(0.0))`,`const leaky_relu_alpha_ = ${n}(${o.alpha});`,o.cacheKey))},Th=a=>{a.compute(Nt(a.inputs[0],"Not",o=>`!${o}`))},Ph=a=>{a.compute(Nt(a.inputs[0],"Neg",o=>`-${o}`))},Gh=a=>{a.compute(Nt(a.inputs[0],"Reciprocal",o=>`1.0/${o}`))},Qh=a=>{let o=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"Relu",n=>`select(vec4<${o}>(0.0), ${n}, ${n} > vec4<${o}>(0.0))`))},Fh=a=>{a.compute(Nt(a.inputs[0],"Sigmoid",o=>`(1.0 / (1.0 + exp(-${o})))`))},Sh=a=>Yt(a),Oh=(a,o)=>{let n=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"HardSigmoid",u=>`max(vec4<${n}>(0.0), min(vec4<${n}>(1.0), ${o.alpha} * ${u} + vec4<${n}>(${o.beta})))`,void 0,o.cacheKey))},_h=a=>{a.compute(Nt(a.inputs[0],"Sin","sin"))},zh=a=>{a.compute(Nt(a.inputs[0],"Sinh","sinh"))},Nh=a=>{a.compute(Nt(a.inputs[0],"Sqrt","sqrt"))},Lh=a=>{a.compute(Nt(a.inputs[0],"Tan","tan"))},r2=a=>`sign(${a}) * (1 - exp(-2 * abs(${a}))) / (1 + exp(-2 * abs(${a})))`,Rh=a=>{a.compute(Nt(a.inputs[0],"Tanh",r2))},J2=(a="f32")=>` +const fast_gelu_a: ${a} = 0.5; +const fast_gelu_b: ${a} = 0.7978845608028654; +const fast_gelu_c: ${a} = 0.035677408136300125; + +fn tanh_v(v: vec4<${a}>) -> vec4<${a}> { + return ${r2("v")}; +} +`,q2=a=>`(fast_gelu_a + fast_gelu_a * tanh_v(${a} * (fast_gelu_c * ${a} * ${a} + fast_gelu_b))) * ${a}`,jh=a=>{let o=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"FastGelu",q2,J2(o),void 0,a.inputs[0].dataType))},Wh=(a,o)=>{let n=Qs(a.inputs[0].dataType);return a.compute(Nt(a.inputs[0],"ThresholdedRelu",u=>`select(vec4<${n}>(0.0), ${u}, ${u} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${n}>(${o.alpha});`,o.cacheKey)),0},Yh=a=>{a.compute(Nt(a.inputs[0],"Log","log"))},wg=(a,o)=>` +const alpha = vec4<${a}>(${o}); +const one = ${a}(1.0); +const zero = ${a}(0.0); + +fn quick_gelu_impl(x: vec4<${a}>) -> vec4<${a}> { + let v = x *alpha; + var x1 : vec4<${a}>; + 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; +} +`,kg=a=>`quick_gelu_impl(${a})`,Vh=(a,o)=>{let n=Qs(a.inputs[0].dataType);a.compute(Nt(a.inputs[0],"QuickGelu",kg,wg(n,o.alpha),o.cacheKey,a.inputs[0].dataType))}}),Eg,Mg,Hh,WI=CA(()=>{pt(),Ct(),Mc(),Eg=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(a[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Mg=a=>{let o=a[0].dims.slice();o[2]=o[2]/2;let n=tA("input",a[0].dataType,a[0].dims,4),u=tA("bias",a[0].dataType,[a[0].dims[2]],4),m=UA("output",a[0].dataType,o,4),b=Ke.size(o)/4,C=gs(a[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:o,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(b/64)}}),getShaderSource:w=>` + const M_SQRT2 = sqrt(2.0); + const halfChannels = ${a[0].dims[2]/4/2}u; + + ${w.declareVariables(n,u,m)} + + ${F0(C)} + + ${w.mainStart()} + ${w.guardAgainstOutOfBoundsWorkgroupSizes(b)} + 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); + + ${m.setByOffset("global_idx","valueLeft * geluRight")} + }`}},Hh=a=>{Eg(a.inputs),a.compute(Mg(a.inputs))}}),vg,xg,Oa,Uh,Kh,Xh,Zh,Jh,qh,$h,e3,A3,t3,YI=CA(()=>{st(),pt(),Ct(),vg=(a,o,n,u,m,b,C,w,E,x,D,B)=>{let v,F;typeof w=="string"?v=F=(z,K)=>`${w}((${z}),(${K}))`:typeof w=="function"?v=F=w:(v=w.scalar,F=w.vector);let S=UA("outputData",D,u.length,4),L=tA("aData",E,o.length,4),Z=tA("bData",x,n.length,4),N;if(m)if(b){let z=Ke.size(o)===1,K=Ke.size(n)===1,f=o.length>0&&o[o.length-1]%4===0,k=n.length>0&&n[n.length-1]%4===0;z||K?N=S.setByOffset("global_idx",F(z?`${L.type.value}(${L.getByOffset("0")}.x)`:L.getByOffset("global_idx"),K?`${Z.type.value}(${Z.getByOffset("0")}.x)`:Z.getByOffset("global_idx"))):N=` + let outputIndices = ${S.offsetToIndices("global_idx * 4u")}; + let offsetA = ${L.broadcastedIndicesToOffset("outputIndices",S)}; + let offsetB = ${Z.broadcastedIndicesToOffset("outputIndices",S)}; + ${S.setByOffset("global_idx",F(C||f?L.getByOffset("offsetA / 4u"):`${L.type.value}(${L.getByOffset("offsetA / 4u")}[offsetA % 4u])`,C||k?Z.getByOffset("offsetB / 4u"):`${Z.type.value}(${Z.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} + `}else N=S.setByOffset("global_idx",F(L.getByOffset("global_idx"),Z.getByOffset("global_idx")));else{if(!b)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let z=(K,f,k="")=>{let e=`aData[indexA${f}][componentA${f}]`,d=`bData[indexB${f}][componentB${f}]`;return` + let outputIndices${f} = ${S.offsetToIndices(`global_idx * 4u + ${f}u`)}; + let offsetA${f} = ${L.broadcastedIndicesToOffset(`outputIndices${f}`,S)}; + let offsetB${f} = ${Z.broadcastedIndicesToOffset(`outputIndices${f}`,S)}; + let indexA${f} = offsetA${f} / 4u; + let indexB${f} = offsetB${f} / 4u; + let componentA${f} = offsetA${f} % 4u; + let componentB${f} = offsetB${f} % 4u; + ${K}[${f}] = ${k}(${v(e,d)}); + `};D===9?N=` + var data = vec4(0); + ${z("data",0,"u32")} + ${z("data",1,"u32")} + ${z("data",2,"u32")} + ${z("data",3,"u32")} + outputData[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:N=` + ${z("outputData[global_idx]",0)} + ${z("outputData[global_idx]",1)} + ${z("outputData[global_idx]",2)} + ${z("outputData[global_idx]",3)} + `}return` + ${a.registerUniform("vec_size","u32").declareVariables(L,Z,S)} + + ${B??""} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${N} + }`},xg=(a,o,n,u,m,b,C=n.dataType)=>{let w=n.dims.map(L=>Number(L)??1),E=u.dims.map(L=>Number(L)??1),x=!Ke.areEqual(w,E),D=w,B=Ke.size(w),v=!1,F=!1,S=[x];if(x){let L=co.calcShape(w,E,!1);if(!L)throw new Error("Can't perform binary op on the given tensors");D=L.slice(),B=Ke.size(D);let Z=Ke.size(w)===1,N=Ke.size(E)===1,z=w.length>0&&w[w.length-1]%4===0,K=E.length>0&&E[E.length-1]%4===0;S.push(Z),S.push(N),S.push(z),S.push(K);let f=1;for(let k=1;kL.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:L=>vg(L,w,E,D,v,x,F,m,n.dataType,u.dataType,C,b),getRunData:()=>({outputs:[{dims:D,dataType:C}],dispatchGroup:{x:Math.ceil(B/64/4)},programUniforms:[{type:12,data:Math.ceil(Ke.size(D)/4)},...JA(w,E,D)]})}},Oa=(a,o,n,u,m,b)=>{a.compute(xg(o,m??"",a.inputs[0],a.inputs[1],n,u,b))},Uh=a=>{Oa(a,"Add",(o,n)=>`${o}+${n}`)},Kh=a=>{Oa(a,"Div",(o,n)=>`${o}/${n}`)},Xh=a=>{Oa(a,"Equal",{scalar:(o,n)=>`u32(${o}==${n})`,vector:(o,n)=>`vec4(${o}==${n})`},void 0,void 0,9)},Zh=a=>{Oa(a,"Mul",(o,n)=>`${o}*${n}`)},Jh=a=>{let o=tA("input",a.inputs[0].dataType,a.inputs[0].dims).type.value;Oa(a,"Pow",{scalar:(n,u)=>`pow_custom(${n},${u})`,vector:(n,u)=>`pow_vector_custom(${n},${u})`},` + fn pow_custom(a : ${o}, b : ${o}) -> ${o} { + if (b == ${o}(0.0)) { + return ${o}(1.0); + } else if (a < ${o}(0.0) && f32(b) != floor(f32(b))) { + return ${o}(pow(f32(a), f32(b))); // NaN + } + return select(sign(a), ${o}(1.0), round(f32(abs(b) % ${o}(2.0))) != 1.0) * ${o}(${o==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); + } + fn pow_vector_custom(a : vec4<${o}>, b : vec4<${o}>) -> vec4<${o}> { + // TODO: implement vectorized pow + return vec4<${o}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); + } + `)},qh=a=>{Oa(a,"Sub",(o,n)=>`${o}-${n}`)},$h=a=>{Oa(a,"Greater",{scalar:(o,n)=>`u32(${o}>${n})`,vector:(o,n)=>`vec4(${o}>${n})`},void 0,void 0,9)},e3=a=>{Oa(a,"Less",{scalar:(o,n)=>`u32(${o}<${n})`,vector:(o,n)=>`vec4(${o}<${n})`},void 0,void 0,9)},A3=a=>{Oa(a,"GreaterOrEqual",{scalar:(o,n)=>`u32(${o}>=${n})`,vector:(o,n)=>`vec4(${o}>=${n})`},void 0,void 0,9)},t3=a=>{Oa(a,"LessOrEqual",{scalar:(o,n)=>`u32(${o}<=${n})`,vector:(o,n)=>`vec4(${o}<=${n})`},void 0,void 0,9)}}),Bg,yg,Dg,Tg,r3,s3,VI=CA(()=>{st(),pt(),Yr(),Ct(),Bg=(a,o)=>{if(!a||a.length<1)throw new Error("too few inputs");let n=0,u=a[n],m=u.dataType,b=u.dims.length;a.forEach((C,w)=>{if(w!==n){if(C.dataType!==m)throw new Error("input tensors should be one type");if(C.dims.length!==b)throw new Error("input tensors should have the same shape");C.dims.forEach((E,x)=>{if(x!==o&&E!==u.dims[x])throw new Error("non concat dimensions must match")})}})},yg=(a,o)=>` + fn calculateInputIndex(index: u32) -> u32 { + let sizeInConcatAxis = array(${o}); + for (var i: u32 = 0u; i < ${a}; i += 1u ) { + if (index < sizeInConcatAxis[i]) { + return i; + } + } + return ${a}u; + }`,Dg=(a,o)=>{let n=a.length,u=[];for(let m=0;m{let m=Ke.size(n),b=new Array(a.length),C=new Array(a.length),w=0,E=[],x=[],D=[{type:12,data:m}];for(let L=0;L`uniforms.sizeInConcatAxis${L}`).join(","),S=L=>` + + ${(()=>{L.registerUniform("outputSize","u32");for(let Z=0;Z(${F}); + ${v} -= sizeInConcatAxis[inputIndex - 1u]; + } + + ${Dg(C,B)} + }`;return{name:"Concat",shaderCache:{hint:`${o}`,inputDependencies:E},getRunData:()=>({outputs:[{dims:n,dataType:u}],dispatchGroup:{x:Math.ceil(m/64)},programUniforms:D}),getShaderSource:S}},r3=(a,o)=>{let n=a.inputs,u=n[0].dims,m=Ke.normalizeAxis(o.axis,u.length);Bg(n,m);let b=u.slice();b[m]=n.reduce((w,E)=>w+(E.dims.length>m?E.dims[m]:0),0);let C=n.filter(w=>Ke.size(w.dims)>0);a.compute(Tg(C,m,b,n[0].dataType),{inputs:C})},s3=a=>Yt({axis:a.axis})}),Ti,Pi,Gi,vc,Fi=CA(()=>{st(),pt(),Ti=(a,o,n="f32")=>{switch(a.activation){case"Relu":return`value = max(value, ${o}(0.0));`;case"Sigmoid":return`value = (${o}(1.0) / (${o}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${o}(${n}(uniforms.clip_min)), ${o}(${n}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${o}(0.0), min(${o}(1.0), ${n}(uniforms.alpha) * value + ${n}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${n}(uniforms.alpha) * value, value, value >= ${o}(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 ${a.activation}`)}},Pi=(a,o)=>{a.activation==="Clip"?o.push({type:1,data:a.clipMax},{type:1,data:a.clipMin}):a.activation==="HardSigmoid"?o.push({type:1,data:a.alpha},{type:1,data:a.beta}):a.activation==="LeakyRelu"&&o.push({type:1,data:a.alpha})},Gi=(a,o)=>{a.activation==="Clip"?o.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):a.activation==="HardSigmoid"?o.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):a.activation==="LeakyRelu"&&o.push({name:"alpha",type:"f32"})},vc=a=>{let o=a?.activation||"";if(o==="HardSigmoid"){let[n,u]=a?.activation_params||[.2,.5];return{activation:o,alpha:n,beta:u}}else if(o==="Clip"){let[n,u]=a?.activation_params||[Tm,Pm];return{activation:o,clipMax:u,clipMin:n}}else if(o==="LeakyRelu"){let[n]=a?.activation_params||[.01];return{activation:o,alpha:n}}return{activation:o}}}),Cs,a3,xc=CA(()=>{Cs=(a,o)=>{switch(a){case 1:return o;case 2:return`vec2<${o}>`;case 3:return`vec3<${o}>`;case 4:return`vec4<${o}>`;default:throw new Error(`${a}-component is not supported.`)}},a3=a=>` + ${a?"value = value + getBiasByOutputCoords(coords);":""} + `}),n3,HI=CA(()=>{n3=a=>` +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(${a}.x), i32(${a}.y), i32(${a}.z), 1)); +} +`}),Ho,Bc,yc=CA(()=>{st(),pt(),Ct(),Fi(),Ho=(a,o,n,u,m)=>{let b=u-n;return` + ${Array.from({length:n}).map((C,w)=>` + if (${KA(o.shape,w,o.rank)} != 1) { + ${o.indicesSet(a,w,KA(m,w+b,u))} + } else { + ${o.indicesSet(a,w,0)} + }`).join("")} +`},Bc=(a,o,n,u,m=!1,b)=>{let C=a[0].dims,w=a[1].dims,E=C[C.length-2],x=w[w.length-1],D=C[C.length-1],B=Nr(x),v=Nr(D),F=Nr(E),S=Ke.size(n)/B/F,L=a.length>2,Z=u?u.slice(0,-2):n.slice(0,-2),N=[Ke.size(Z),E,x],z=[{type:12,data:S},{type:12,data:E},{type:12,data:x},{type:12,data:D}];Pi(o,z),z.push(...JA(Z,C,w)),L&&z.push(...JA(a[2].dims)),z.push(...JA(N));let K=f=>{let k=wc("batch_dims",a[0].dataType,Z.length),e=tA("a",a[0].dataType,C.length,v),d=tA("b",a[1].dataType,w.length,B),y=UA("output",a[0].dataType,N.length,B),te=gs(y.type.tensor),T=Ti(o,y.type.value,te),O=[e,d],he="";if(L){let we=m?B:1;O.push(tA("bias",a[2].dataType,a[2].dims.length,we)),he=`${m?`value += bias[col / ${we}];`:`value += ${y.type.value}(bias[row + i]);`}`}let ee=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Gi(o,ee);let Ce=()=>{let we=`var a_data: ${e.type.value};`;for(let xe=0;xe; + for (var k: u32 = 0u; k < uniforms.K; k = k + ${v}) { + ${Ce()} + } + for (var i = 0u; i < ${F}u; i++) { + var value = values[i]; + ${he} + ${T} + let cur_indices = ${y.type.indices}(batch, row + i, col); + let offset = ${y.indicesToOffset("cur_indices")}; + ${y.setByOffset(`offset / ${B}`,"value")}; + } + } + `};return{name:"MatMulNaive",shaderCache:{hint:`${o.activation};${B};${v};${F};${m}`,inputDependencies:L?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:b?b(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(S/64)},programUniforms:z}),getShaderSource:K}}}),Pg,Gg,$2,s2,Qg,ec,Fg,L0,Dc=CA(()=>{st(),pt(),Ct(),Fi(),yc(),xc(),Pg=(a,o)=>a?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart / innerElementSize + inputCol${o?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRow + innerRow, + kStart / innerElementSize + inputCol${o?", batchIndices":""}); + `,Gg=(a,o)=>a?` + let ACached0 = mm_Asub[k * innerElementSize][localRow]; + let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; + let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; + ${o===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]; + ${o===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]; + ${o===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} + }`,$2=(a,o,n="f32",u,m=!1,b=32,C=!1,w=32)=>{let E=o[1]*a[1],x=o[0]*a[0],D=m?E:b,B=m?b:E,v=D/o[0],F=b/o[1];if(!((m&&v===4&&a[1]===4||!m&&(v===3||v===4))&&D%o[0]===0&&b%o[1]===0&&a[0]===4))throw new Error(`If transposeA ${m} is true, innerElementSize ${v} and workPerThread[1] ${a[1]} must be 4. + Otherwise, innerElementSize ${v} must be 3 or 4. + tileAWidth ${D} must be divisible by workgroupSize[0]${o[0]}. tileInner ${b} must be divisible by workgroupSize[1] ${o[1]}. colPerThread ${a[0]} must be 4.`);return` +var mm_Asub: array, ${D/v}>, ${B}>; +var mm_Bsub: array, ${x/a[0]}>, ${b}>; + +const rowPerThread = ${a[1]}; +const colPerThread = ${a[0]}; +const innerElementSize = ${v}; +const tileInner = ${b}; + +@compute @workgroup_size(${o[0]}, ${o[1]}, ${o[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 = ${C?"0":"i32(globalId.z)"}; + ${u?`let batchIndices = ${u.offsetToIndices("u32(batch)")};`:""} + let globalRowStart = i32(workgroupId.y) * ${E}; + + let num_tiles = ${C?`${Math.ceil(w/b)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${C?`i32(globalId.z) * ${w}`:"0"}; + + var acc: array, rowPerThread>; + + // Loop over shared dimension. + let tileRowB = localRow * ${F}; + 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; + ${Pg(m,u)} + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${F}; innerRow = innerRow + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${u?", 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]; + ${v===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} + + ${Gg(m,v)} + } + + workgroupBarrier(); + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); + } +}`},s2=(a,o)=>a?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart + inputCol${o?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRowStart + inputRow, + kStart + inputCol${o?", batchIndices":""}); + `,Qg=a=>a?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",ec=(a,o,n="f32",u,m=!1,b=32,C=!1,w=32,E=!1)=>{let x=a[1]*o[1],D=a[0]*o[0],B=m?x:b,v=m?b:x;if(!(v%o[1]===0&&B%o[0]===0&&b%o[1]===0))throw new Error(`tileAHight ${v} must be divisible by workgroupSize[1]${o[1]}, tileAWidth ${B} must be divisible by workgroupSize[0]${o[0]}, tileInner ${b} must be divisible by workgroupSize[1]${o[1]}`);let F=v/o[1],S=B/o[0],L=b/o[1],Z=E?` + let localRow = i32(localId.y); + let localCol = i32(localId.x); + let globalRowStart = i32(workgroupId.y) * ${x}; + let globalColStart = i32(workgroupId.x) * ${D}; + + // 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 < ${v}; inputRow = inputRow + ${o[1]}) { + for (var inputCol = localCol; inputCol < ${B}; inputCol = inputCol + ${o[0]}) { + ${s2(m,u)} + } + } + // Load one tile of B into local memory. + for (var inputRow = localRow; inputRow < ${b}; inputRow = inputRow + ${o[1]}) { + for (var inputCol = localCol; inputCol < ${D}; inputCol = inputCol + ${o[0]}) { + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalColStart + inputCol${u?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${n}, 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 * ${o[0]}]; + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let ACached = ${m?`mm_Asub[k][localRow + innerRow * ${o[1]}];`:`mm_Asub[localRow + innerRow * ${o[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 * ${o[1]}; + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let gCol = globalColStart + localCol + innerCol * ${o[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) * ${x}; + +let tileRowA = i32(localId.y) * ${F}; +let tileColA = i32(localId.x) * ${S}; +let tileRowB = i32(localId.y) * ${L}; +// 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 < ${F}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < ${S}; innerCol = innerCol + 1) { + let inputRow = tileRowA + innerRow; + let inputCol = tileColA + innerCol; + ${s2(m,u)} + } + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${L}; 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${u?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${n}, 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) { + ${Qg(m)} + 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, ${v}>; + var mm_Bsub : array, ${b}>; + const rowPerThread = ${a[1]}; + const colPerThread = ${a[0]}; + const tileInner = ${b}; + +@compute @workgroup_size(${o[0]}, ${o[1]}, ${o[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let batch = ${C?"0":"i32(globalId.z)"}; + ${u?`let batchIndices = ${u.offsetToIndices("u32(batch)")};`:""} + let num_tiles = ${C?`${Math.ceil(w/b)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${C?`i32(globalId.z) * ${w}`:"0"}; + + var acc : array, rowPerThread>; + ${Z} + } +`},Fg=(a,o,n,u,m=!1)=>{let[b,C,w,E]=u,x=gs(u[0].type.tensor);return` + fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${b.type.indices}) -> ${Cs(a,x)} { + var value = ${Cs(a,x)}(0.0); + let col = colIn * ${a}; + if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) + { + var aIndices: ${C.type.indices}; + ${Ho("aIndices",C,C.rank-2,b.rank,"batchIndices")} + ${C.indicesSet("aIndices",C.rank-2,"u32(row)")} + ${C.indicesSet("aIndices",C.rank-1,"u32(colIn)")} + value = ${C.getByIndices("aIndices")}; + } + return value; + } + + fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${b.type.indices}) -> ${Cs(a,x)} { + var value = ${Cs(a,x)}(0.0); + let col = colIn * ${a}; + if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) + { + var bIndices: ${w.type.indices}; + ${Ho("bIndices",w,w.rank-2,b.rank,"batchIndices")} + ${w.indicesSet("bIndices",w.rank-2,"u32(row)")} + ${w.indicesSet("bIndices",w.rank-1,"u32(colIn)")} + value = ${w.getByIndices("bIndices")}; + } + return value; + } + + fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${Cs(a,x)}) { + let col = colIn * ${a}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueIn; + let coords = vec3(batch, row, colIn); + ${o?`value = value + ${m?"bias[colIn]":`${Cs(a,x)}(bias[row])`};`:""} + ${n} + ${E.setByIndices("vec3(coords)","value")} + } + } + `},L0=(a,o,n,u,m=!1,b)=>{let C=a[0].dims,w=a[1].dims,E=C.slice(0,-2),x=w.slice(0,-2),D=u?u.slice(0,-2):n.slice(0,-2),B=Ke.size(D),v=C[C.length-2],F=C[C.length-1],S=w[w.length-1],L=F%4===0&&S%4===0,Z=v<=8?[4,1,1]:[4,4,1],N=[8,8,1],z=[Math.ceil(S/N[0]/Z[0]),Math.ceil(v/N[1]/Z[1]),Math.ceil(B/N[2]/Z[2])],K=L?4:1,f=[...E,v,F/K],k=f.length,e=[...x,F,S/K],d=e.length,y=[B,v,S/K],te=[{type:6,data:v},{type:6,data:S},{type:6,data:F}];Pi(o,te),te.push(...JA(D,f,e));let T=["rank","rank"],O=a.length>2;O&&(te.push(...JA(a[2].dims)),T.push("rank")),te.push(...JA(y));let he=ee=>{let Ce=D.length,we=wc("batchDims",a[0].dataType,Ce,1),xe=gs(a[0].dataType),De=tA("a",a[0].dataType,k,K),Be=tA("b",a[1].dataType,d,K),Oe=UA("result",a[0].dataType,y.length,K),_e=[De,Be];if(O){let Qe=m?K:1;_e.push(tA("bias",a[2].dataType,a[2].dims.length,Qe))}let ne=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Gi(o,ne);let Ae=gs(Oe.type.tensor),pe=Ti(o,Oe.type.value,Ae),le=Fg(K,O,pe,[we,De,Be,Oe],m);return` + ${ee.registerUniforms(ne).registerInternalVariables(we).declareVariables(..._e,Oe)} + ${le} + ${L?$2(Z,N,xe,we):ec(Z,N,xe,we)} + `};return{name:"MatMul",shaderCache:{hint:`${Z};${o.activation};${L};${m}`,inputDependencies:T},getRunData:()=>({outputs:[{dims:b?b(n):n,dataType:a[0].dataType}],dispatchGroup:{x:z[0],y:z[1],z:z[2]},programUniforms:te}),getShaderSource:he}}}),Sg,i3,UI=CA(()=>{st(),yn(),Ct(),Fi(),xc(),HI(),Dc(),Sg=(a,o,n,u,m=!1,b,C=4,w=4,E=4,x="f32")=>{let D=te=>{switch(te){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${x}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${te} is not supported.`)}},B=te=>{switch(te){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 ${te} is not supported.`)}},v=a?` + let coord = vec4(batch, xRow, xCol, xCh); + `:` + let coord = vec4(batch, xCh, xRow, xCol); + `,F=a?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,S=a?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",L=a?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",Z=a?"row":"col",N=a?"col":"row",z=` + let inChannels = i32(uniforms.w_shape[2]); + let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${Z} / outWidth; + let outCol = ${Z} % outWidth; + + let WRow = ${N} / (i32(uniforms.w_shape[1]) * inChannels); + let WCol = ${N} / 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 = ${N} % inChannels; + var resData = ${Cs(C,x)}(0.0); + // The bounds checking is always needed since we use it to pad zero for + // the 'same' padding type. + if (xRow >= 0 && xRow < ${S} && xCol >= 0 && xCol < ${L}) { + ${v} + let xIndex = getIndexFromCoords4D(coord, vec4(uniforms.x_shape)); + ${D(C)} + } + return resData;`,K=a?o&&u?` + let col = colIn * ${C}; + ${z}`:` + let col = colIn * ${C}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${z} + } + return ${Cs(C,x)}(0.0);`:u&&n?` + let col = colIn * ${C}; + ${z}`:` + let col = colIn * ${C}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${z} + } + return ${Cs(C,x)}(0.0);`,f=a?u&&n?B(w):` + let col = colIn * ${w}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${B(w)} + } + return ${Cs(w,x)}(0.0);`:` + let col = colIn * ${w}; + if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) { + ${B(w)} + } + return ${Cs(w,x)}(0.0);`,k=Cs(E,x),e=Cs(a?C:w,x),d=Cs(a?w:C,x),y=Ti(b,k,x);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${e} { + ${a?K:f} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${d} { + ${a?f:K} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${k}) { + let col = colIn * ${E}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) + { + var value = valueIn; + let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${F} + ${a3(m)} + ${y} + setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); + } + }`},i3=(a,o,n,u,m,b,C,w,E)=>{let x=o.format==="NHWC",D=x?a[0].dims[3]:a[0].dims[1],B=n[0],v=x?n[2]:n[3],F=x?n[1]:n[2],S=x?n[3]:n[1],L=x&&(D%4===0||D%3===0)&&S%4===0,Z=x?S:v*F,N=x?v*F:S,z=[8,8,1],K=u<=8?[4,1,1]:[4,4,1],f=[Math.ceil(Z/z[0]/K[0]),Math.ceil(N/z[1]/K[1]),Math.ceil(B/z[2]/K[2])];Pt("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${f}`);let k=L?x&&D%4!==0?3:4:1,e=z[1]*K[1],d=z[0]*K[0],y=Math.max(z[0]*k,z[1]),te=u%e===0,T=m%d===0,O=b%y===0,he=L?[k,4,4]:[1,1,1],ee=[{type:6,data:u},{type:6,data:m},{type:6,data:b},{type:6,data:[o.pads[0],o.pads[1]]},{type:6,data:o.strides},{type:6,data:o.dilations}];Pi(o,ee),ee.push(...JA(a[0].dims,a[1].dims));let Ce=["rank","rank"];C&&(ee.push(...JA(a[2].dims)),Ce.push("rank")),ee.push(...JA(n));let we=xe=>{let De=[{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}];Gi(o,De);let Be=L?4:1,Oe=gs(a[0].dataType),_e=` + fn setOutputAtIndex(flatIndex : i32, value : ${L?`vec4<${Oe}>`:Oe}) { + result[flatIndex] = ${L?`vec4<${Oe}>`:Oe}(value); + } + fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${L?`vec4<${Oe}>`:Oe}) { + let flatIndex = getOutputIndexFromCoords(vec4(d0, d1, d2, d3)); + setOutputAtIndex(flatIndex ${L?"/ 4":""}, value); + }`,ne=tA("x",a[0].dataType,a[0].dims.length,k===3?1:k),Ae=tA("w",a[1].dataType,a[1].dims.length,Be),pe=[ne,Ae],le=UA("result",a[0].dataType,n.length,Be);if(C){let Qe=tA("bias",a[2].dataType,a[2].dims.length,Be);pe.push(Qe),_e+=` + fn getBiasByOutputCoords(coords : vec4) -> ${L?`vec4<${Oe}>`:Oe} { + return bias[coords.${x?"w":"y"}${L?"/ 4":""}]; + }`}return` + ${n3("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 }; + ${xe.registerUniforms(De).declareVariables(...pe,le)} + ${_e} + ${Sg(x,te,T,O,C,o,he[0],he[1],he[2],Oe)} + ${L?$2(K,z,Oe,void 0,!x,y):ec(K,z,Oe,void 0,!x,y,!1,void 0,w)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${o.cacheKey};${k};${L};${te};${T};${O};${e};${d};${y}`,inputDependencies:Ce},getRunData:()=>({outputs:[{dims:E?E(n):n,dataType:a[0].dataType}],dispatchGroup:{x:f[0],y:f[1],z:f[2]},programUniforms:ee}),getShaderSource:we}}}),Og,a2,So,_g,n2,zg,o3,l3,KI=CA(()=>{st(),yn(),pt(),Ct(),Fi(),xc(),Og=a=>{let o=1;for(let n=0;ntypeof a=="number"?[a,a,a]:a,So=(a,o)=>o<=1?a:a+(a-1)*(o-1),_g=(a,o,n,u=1)=>{let m=So(o,u);return Math.floor((a[0]*(n-1)-n+m)/2)},n2=(a,o,n,u,m)=>{m==null&&(m=_g(a,o[0],u[0]));let b=[0,0,0,n];for(let C=0;C<3;C++)a[C]+2*m>=o[C]&&(b[C]=Math.trunc((a[C]-o[C]+2*m)/u[C]+1));return b},zg=(a,o,n,u,m,b,C,w,E,x)=>{let D,B,v,F;if(a==="VALID"&&(a=0),typeof a=="number"){D={top:a,bottom:a,left:a,right:a,front:a,back:a};let S=n2([o,n,u,1],[w,E,x],1,[m,b,C],a);B=S[0],v=S[1],F=S[2]}else if(Array.isArray(a)){if(!a.every((L,Z,N)=>L===N[0]))throw Error(`Unsupported padding parameter: ${a}`);D={top:a[0],bottom:a[1],left:a[2],right:a[3],front:a[4],back:a[5]};let S=n2([o,n,u,1],[w,E,x],1,[m,b,C],a[0]);B=S[0],v=S[1],F=S[2]}else if(a==="SAME_UPPER"){B=Math.ceil(o/m),v=Math.ceil(n/b),F=Math.ceil(u/C);let S=(B-1)*m+w-o,L=(v-1)*b+E-n,Z=(F-1)*C+x-u,N=Math.floor(S/2),z=S-N,K=Math.floor(L/2),f=L-K,k=Math.floor(Z/2),e=Z-k;D={top:K,bottom:f,left:k,right:e,front:N,back:z}}else throw Error(`Unknown padding parameter: ${a}`);return{padInfo:D,outDepth:B,outHeight:v,outWidth:F}},o3=(a,o,n,u,m,b=!1,C="channelsLast")=>{let w,E,x,D,B;if(C==="channelsLast")[w,E,x,D,B]=a;else if(C==="channelsFirst")[w,B,E,x,D]=a;else throw new Error(`Unknown dataFormat ${C}`);let[v,,F,S,L]=o,[Z,N,z]=a2(n),[K,f,k]=a2(u),e=So(F,K),d=So(S,f),y=So(L,k),{padInfo:te,outDepth:T,outHeight:O,outWidth:he}=zg(m,E,x,D,Z,N,z,e,d,y),ee=b?v*B:v,Ce=[0,0,0,0,0];return C==="channelsFirst"?Ce=[w,ee,T,O,he]:C==="channelsLast"&&(Ce=[w,T,O,he,ee]),{batchSize:w,dataFormat:C,inDepth:E,inHeight:x,inWidth:D,inChannels:B,outDepth:T,outHeight:O,outWidth:he,outChannels:ee,padInfo:te,strideDepth:Z,strideHeight:N,strideWidth:z,filterDepth:F,filterHeight:S,filterWidth:L,effectiveFilterDepth:e,effectiveFilterHeight:d,effectiveFilterWidth:y,dilationDepth:K,dilationHeight:f,dilationWidth:k,inShape:a,outShape:Ce,filterShape:o}},l3=(a,o,n,u,m,b)=>{let C=b==="channelsLast";C?a[0].dims[3]:a[0].dims[1];let w=[64,1,1],E={x:n.map((Z,N)=>N)},x=[Math.ceil(Og(E.x.map(Z=>n[Z]))/w[0]),1,1];Pt("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${x}`);let D=1,B=Ke.size(n),v=[{type:12,data:B},{type:12,data:u},{type:12,data:m},{type:12,data:o.strides},{type:12,data:o.dilations}];Pi(o,v),v.push(...JA(a[0].dims,a[1].dims));let F=["rank","rank"],S=a.length===3;S&&(v.push(...JA(a[2].dims)),F.push("rank")),v.push(...JA(n));let L=Z=>{let N=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:u.length},{name:"pads",type:"u32",length:m.length},{name:"strides",type:"u32",length:o.strides.length},{name:"dilations",type:"u32",length:o.dilations.length}];Gi(o,N);let z=1,K=gs(a[0].dataType),f=tA("x",a[0].dataType,a[0].dims.length,D),k=tA("W",a[1].dataType,a[1].dims.length,z),e=[f,k],d=UA("result",a[0].dataType,n.length,z),y="";if(S){let O=tA("bias",a[2].dataType,a[2].dims.length,z);e.push(O),y+=` + fn getBiasByOutputCoords(coords : array) -> ${K} { + return bias[${C?KA("coords",4,5):KA("coords",1,5)}]; + }`}let te=Cs(D,K),T=Ti(o,te,K);return` + ${y} + fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${f.getByIndices("aIndices")}; + } + fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${k.getByIndices("aIndices")}; + } + ${Z.registerUniforms(N).declareVariables(...e,d)} + ${Z.mainStart()} + ${Z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let coords = ${d.offsetToIndices("global_idx")}; + let batch = ${KA("coords",0,f.rank)}; + let d2 = ${C?KA("coords",f.rank-1,f.rank):KA("coords",1,f.rank)}; + let xFRCCorner = vec3(${C?KA("coords",1,f.rank):KA("coords",2,f.rank)}, + ${C?KA("coords",2,f.rank):KA("coords",3,f.rank)}, + ${C?KA("coords",3,f.rank):KA("coords",4,f.rank)}) * uniforms.strides - uniforms.pads; + let xFCorner = xFRCCorner.x; + let xRCorner = xFRCCorner.y; + let xCCorner = xFRCCorner.z; + let xShapeY = ${C?KA("uniforms.x_shape",1,f.rank):KA("uniforms.x_shape",2,f.rank)}; + let xShapeZ = ${C?KA("uniforms.x_shape",2,f.rank):KA("uniforms.x_shape",3,f.rank)}; + let xShapeW = ${C?KA("uniforms.x_shape",3,f.rank):KA("uniforms.x_shape",4,f.rank)}; + let xShapeU = ${C?KA("uniforms.x_shape",4,f.rank):KA("uniforms.x_shape",1,f.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) { + ${C?`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) { + ${C?`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) { + ${C?`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) { + ${C?`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); + } + } + } + } + ${S?"value = value + getBiasByOutputCoords(coords)":""}; + ${T} + result[global_idx] = f32(value); + }`};return{name:"Conv3DNaive",shaderCache:{hint:`${o.cacheKey};${C};${D};${S}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:x[0],y:x[1],z:x[2]},programUniforms:v}),getShaderSource:L}}}),c3,u3,XI=CA(()=>{st(),pt(),Ct(),Fi(),c3=(a,o,n,u)=>{let m=a.length>2,b=m?"value += b[output_channel];":"",C=a[0].dims,w=a[1].dims,E=o.format==="NHWC",x=E?n[3]:n[1],D=x/o.group,B=E&&D>=4?Nr(x):1,v=Ke.size(n)/B,F=[{type:12,data:v},{type:12,data:o.dilations},{type:12,data:[o.strides[0],o.strides[1]]},{type:12,data:[o.pads[0],o.pads[1]]},{type:12,data:D}];Pi(o,F),F.push(...JA(C,[w[0],w[1],w[2],w[3]/B]));let S=m?["rank","rank","rank"]:["rank","rank"];F.push(...JA([n[0],n[1],n[2],n[3]/B]));let L=Z=>{let N=UA("output",a[0].dataType,n.length,B),z=gs(N.type.tensor),K=Ti(o,N.type.value,z),f=tA("x",a[0].dataType,C.length),k=tA("w",a[1].dataType,w.length,B),e=[f,k];m&&e.push(tA("b",a[2].dataType,a[2].dims,B));let d=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:o.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Gi(o,d);let y=E?` + 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 = ${f.get("batch","xHeight","xWidth","input_channel")}; + let wVal = ${k.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 = ${f.get("batch","input_channel","xHeight","xWidth")}; + let wVal = ${k.get("output_channel","wInChannel","wHeight","wWidth")}; + value += xVal * wVal; + } + } + } + `;return` + ${Z.registerUniforms(d).declareVariables(...e,N)} + + ${Z.mainStart()} + ${Z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let outputIndices = ${N.offsetToIndices("global_idx")}; + let batch: u32 = outputIndices[0]; + let output_channel: u32 = outputIndices[${E?3:1}]; + let xRCCorner: vec2 = vec2(outputIndices[${E?1:2}], outputIndices[${E?2:3}]) * uniforms.strides - uniforms.pads; + let group_id: u32 = output_channel * ${B} / uniforms.output_channels_per_group; + var in_channel_offset = group_id * uniforms.w_shape[${E?2:1}]; + + var value: ${N.type.value} = ${N.type.value}(0); + ${y} + ${b} + ${K} + ${N.setByOffset("global_idx","value")} + }`};return{name:"GroupedConv",shaderCache:{hint:`${o.cacheKey}_${B}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:u?u(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:F}),getShaderSource:L}},u3=(a,o,n,u)=>{let m=a.length>2,b=Nr(n[3]),C=Nr(n[2]),w=Ke.size(n)/b/C,E=[a[0].dims[0],a[0].dims[1],a[0].dims[2],a[0].dims[3]/b],x=[a[1].dims[0],a[1].dims[1],a[1].dims[2],a[1].dims[3]/b],D=[n[0],n[1],n[2],n[3]/b],B=[{type:12,data:w},{type:6,data:[o.strides[0],o.strides[1]]},{type:6,data:[o.pads[0],o.pads[1]]}];Pi(o,B),B.push(...JA(E,x,D));let v=(C-1)*o.strides[1]+x[1],F=S=>{let L=UA("output",a[0].dataType,D.length,b),Z=gs(L.type.tensor),N=Ti(o,L.type.value,Z),z=tA("x",a[0].dataType,E.length,b),K=tA("w",a[1].dataType,x.length,b),f=[z,K];m&&f.push(tA("b",a[2].dataType,a[2].dims,b));let k=m?"value += b[output_channel];":"",e=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Gi(o,e),` + ${S.registerUniforms(e).declareVariables(...f,L)} + ${S.mainStart()} + ${S.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] / ${C}u; + let col = (index1 % width1) * ${C}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<${z.type.value}, ${v}>; + var values: array<${L.type.value}, ${C}>; + 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 < ${x[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 < ${v}; i++) { + let x_width = x_corner.y + i; + if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { + x_vals[i] = ${z.get("batch","u32(x_height)","u32(x_width)","input_channel")}; + } else { + x_vals[i] = ${z.type.value}(0); + } + } + for (var w_width: u32 = 0u; w_width < ${x[1]}; w_width++) { + let w_val = ${K.get("w_height","w_width","0","output_channel")}; + for (var i = 0u; i < ${C}u; i++) { + values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); + } + } + } + } + + for (var i = 0u; i < ${C}u; i++) { + var value = values[i]; + ${k} + ${N} + ${L.set("batch","row","col + i","output_channel","value")}; + } + }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${o.cacheKey};${b};${C};${v};${x[0]};${x[1]}`,inputDependencies:m?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:u?u(n):n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(w/64)},programUniforms:B}),getShaderSource:F}}}),Ng,M0,Lg,v0,Ac,i2,Rg,jg,tc,ZI=CA(()=>{pt(),UI(),KI(),Dc(),XI(),Fi(),yc(),qn(),Ng=(a,o,n,u,m,b)=>{let C=a[0],w=a.slice(b?1:2,b?3:4),E=w.length,x=o[0],D=o.slice(2).map((v,F)=>v+(v-1)*(n[F]-1)),B=w.map((v,F)=>v+u[F]+u[F+E]).map((v,F)=>Math.floor((v-D[F]+m[F])/m[F]));return B.splice(0,0,C),B.splice(b?3:1,0,x),B},M0=[2,3,1,0],Lg=(a,o)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length>5)throw new Error("greater than 5D is not supported");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let n=a[0].dims[o.format==="NHWC"?a[0].dims.length-1:1],u=a[1].dims[1]*o.group;if(n!==u)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(a.length===3&&(a[2].dims.length!==1||a[1].dims[0]!==a[2].dims[0]))throw new Error("invalid bias");let m=a[0].dims.length-2;if(o.dilations.length!==m)throw new Error(`dilations should be ${m}D`);if(o.strides.length!==m)throw new Error(`strides should be ${m}D`);if(o.pads.length!==m*2)throw new Error(`pads should be ${m*2}D`);if(o.kernelShape.length!==0&&o.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape")},v0=(a,o)=>{let n=a.kernelShape.slice();n.length{let o=vc(a),n=a.format,u=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],m=a.dilations,b=a.group,C=a.kernel_shape,w=a.pads,E=a.strides,x=a.w_is_const();return{autoPad:u,format:n,dilations:m,group:b,kernelShape:C,pads:w,strides:E,wIsConst:x,...o,cacheKey:`${a.format};${o.activation};`}},i2=(a,o,n,u)=>{let m=n.format==="NHWC",b=Ng(o[0].dims,o[1].dims,n.dilations,n.pads,n.strides,m);if(n.group!==1){let e=[o[0]];if(m){let d=a.kernelCustomData.wT??a.compute(ca(o[1],M0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=d),e.push(d)}else e.push(o[1]);o.length===3&&e.push(o[2]),!a.adapterInfo.isArchitecture("ampere")&&m&&o[1].dims[0]===n.group&&o[1].dims[1]===1&&n.dilations[0]===1&&n.dilations[1]===1?a.compute(u3(e,n,b,u),{inputs:e}):a.compute(c3(e,n,b,u),{inputs:e});return}let C=o.length===3,w=o[0].dims[m?1:2],E=o[0].dims[m?2:3],x=o[0].dims[m?3:1],D=o[1].dims[2],B=o[1].dims[3],v=b[m?1:2],F=b[m?2:3],S=b[m?3:1],L=m&&D===w&&B===E&&n.pads[0]===0&&n.pads[1]===0;if(L||D===1&&B===1&&n.dilations[0]===1&&n.dilations[1]===1&&n.strides[0]===1&&n.strides[1]===1&&n.pads[0]===0&&n.pads[1]===0){let e=b[0],d,y,te,T=[];if(m){let ee=a.kernelCustomData.wT??a.compute(ca(o[1],M0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];if(n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=ee),L){let Ce=w*E*x;d=o[0].reshape([1,e,Ce]),y=ee.reshape([1,Ce,S]),te=[1,e,S]}else d=o[0].reshape([e,w*E,x]),y=ee.reshape([1,x,S]),te=[e,v*F,S];T.push(d),T.push(y)}else d=o[0].reshape([e,x,w*E]),y=o[1].reshape([1,S,x]),te=[e,S,v*F],T.push(y),T.push(d);C&&T.push(o[2]);let O=te[2],he=T[0].dims[T[0].dims.length-1];O<8&&he<8?a.compute(Bc(T,n,b,te,m,u),{inputs:T}):a.compute(L0(T,n,b,te,m,u),{inputs:T});return}let Z=!0,N=a.kernelCustomData.wT??a.compute(ca(o[1],M0),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=N);let z=[o[0],N];C&&z.push(o[2]);let K=m?v*F:S,f=m?S:v*F,k=D*B*x;a.compute(i3(z,n,b,K,f,k,C,Z,u),{inputs:z})},Rg=(a,o)=>{let n=o.format==="NHWC",u=[a.inputs[0].reshape(n?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&u.push(a.inputs[2]);let m=[0,o.pads[0],0,o.pads[1]],b=[1].concat(o.strides),C=[1].concat(o.dilations),w=[1].concat(o.kernelShape),E=v0({...o,pads:m,strides:b,dilations:C,kernelShape:w},u);i2(a,u,E,x=>n?[x[0],x[2],x[3]]:[x[0],x[1],x[3]])},jg=(a,o,n)=>{let u=n.format==="NHWC"?"channelsLast":"channelsFirst",m=v0(n,o),b=n.autoPad==="NOTSET"?n.pads:n.autoPad,C=o3(o[0].dims,o[1].dims,n.strides,n.dilations,b,!1,u);a.compute(l3(o,m,C.outShape,[C.filterDepth,C.filterHeight,C.filterWidth],[C.padInfo.front,C.padInfo.top,C.padInfo.left],u))},tc=(a,o)=>{if(Lg(a.inputs,o),a.inputs[0].dims.length===3)Rg(a,o);else if(a.inputs[0].dims.length===5)jg(a,a.inputs,o);else{let n=v0(o,a.inputs);i2(a,a.inputs,n)}}}),d3,JI=CA(()=>{st(),yn(),pt(),Ct(),d3=(a,o,n)=>{let u=a.length>2,m=o.outputShape,b=o.format==="NHWC",C=o.group,w=a[1].dims,E=w[2]/C,x=w[3],D=b?Nr(E):1,B=b&&x===1&&E>=4,v=B?Math.floor(E/4)*4:Math.floor(E/D)*D,F=E-v,S=b?Nr(x):1,L=b?x===1?D:S:1,Z=Ke.size(m)/S,N=[Math.ceil(Z/64),1,1];Pt("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${N}`);let z=["rank","rank"],K=[o.strides[0],o.strides[1]],f=[o.kernelShape[b?1:2],o.kernelShape[b?2:3]],k=[o.dilations[0],o.dilations[1]],e=[f[0]+(o.dilations[0]<=1?0:(o.kernelShape[b?1:2]-1)*(o.dilations[0]-1)),f[1]+(o.dilations[1]<=1?0:(o.kernelShape[b?2:3]-1)*(o.dilations[1]-1))],d=[e[0]-1-Math.floor((o.pads[0]+o.pads[2])/2),e[1]-1-Math.floor((o.pads[1]+o.pads[3])/2)],y=[{type:12,data:Z},{type:12,data:K},{type:12,data:f},{type:12,data:k},{type:12,data:e},{type:6,data:d},{type:12,data:v},{type:12,data:E},{type:12,data:x},...JA(a[0].dims,a[1].dims)];u&&(y.push(...JA(a[2].dims)),z.push("rank")),y.push(...JA(m));let te=T=>{let O=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:K.length},{name:"filter_dims",type:"u32",length:f.length},{name:"dilations",type:"u32",length:f.length},{name:"effective_filter_dims",type:"u32",length:e.length},{name:"pads",type:"i32",length:d.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],he=gs(a[0].dataType),ee=b?1:2,Ce=b?2:3,we=b?3:1,xe=tA("W",a[1].dataType,a[1].dims.length,L),De=tA("Dy",a[0].dataType,a[0].dims.length,D),Be=[De,xe];u&&Be.push(tA("bias",a[2].dataType,[m[we]].length,S));let Oe=UA("result",a[0].dataType,m.length,S),_e=()=>{let pe="";if(B)D===4?pe+=` + let xValue = ${De.getByOffset("x_offset")}; + let wValue = ${xe.getByOffset("w_offset")}; + dotProd = dotProd + dot(xValue, wValue); + x_offset += 1u; + w_offset += 1u;`:D===2?pe+=` + dotProd = dotProd + dot(vec4<${he}>(${De.getByOffset("x_offset")}, ${De.getByOffset("x_offset + 1u")}), vec4<${he}>(${xe.getByOffset("w_offset")}, ${xe.getByOffset("w_offset + 1u")})); + x_offset += 2u; + w_offset += 2u;`:D===1&&(pe+=` + dotProd = dotProd + dot(vec4<${he}>(${De.getByOffset("x_offset")}, ${De.getByOffset("x_offset + 1u")}, ${De.getByOffset("x_offset + 2u")}, ${De.getByOffset("x_offset + 3u")}), vec4<${he}>(${xe.getByOffset("w_offset")}, ${xe.getByOffset("w_offset + 1u")}, ${xe.getByOffset("w_offset + 2u")}, ${xe.getByOffset("w_offset + 3u")})); + x_offset += 4u; + w_offset += 4u;`);else if(pe+=` + let xValue = ${b?De.getByOffset(`${De.indicesToOffset(`${De.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}`):De.get("batch","inputChannel","idyR","idyC")}; + `,D===1)pe+=` + let w_offset = ${xe.indicesToOffset(`${xe.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)}; + let wValue = ${xe.getByOffset(`w_offset / ${L}`)}; + dotProd = dotProd + xValue * wValue;`;else for(let le=0;le{if(F===0)return"";if(!B)throw new Error(`packInputAs4 ${B} is not true.`);let pe="";if(D===1){pe+="dotProd = dotProd";for(let le=0;le(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 = ${Oe.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 = (${he}(dyRCorner) + ${he}(wR)) / ${he}(uniforms.strides[0]); + let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; + if (dyR < 0.0 || dyR >= ${he}(uniforms.Dy_shape[${ee}]) || 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 = (${he}(dyCCorner) + ${he}(wC)) / ${he}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; + if (dyC < 0.0 || dyC >= ${he}(uniforms.Dy_shape[${Ce}]) || + fract(dyC) > 0.0 || wCPerm < 0) { + continue; + } + let idyC: u32 = u32(dyC); + var inputChannel = groupId * uniforms.input_channels_per_group; + ${B?` + var x_offset = ${De.indicesToOffset(`${De.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}; + var w_offset = ${xe.indicesToOffset(`${xe.type.indices}(wRPerm, wCPerm, inputChannel, wOutChannel)`)} / ${L}; + `:""} + for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group_int; d2 = d2 + ${B?4:D}) { + ${_e()} + inputChannel = inputChannel + ${B?4:D}; + } + ${ne()} + wC = wC + uniforms.strides.y - 1; + } + wR = wR + uniforms.strides[0] - 1; + } + let value = dotProd${u?` + bias[d1 / ${S}]`:""}; + ${Oe.setByOffset("global_idx","value")}; + `;return` + ${T.registerUniforms(O).declareVariables(...Be,Oe)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}; + ${Ae}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${o.cacheKey};${D}${L}${S}${B}${F}`,inputDependencies:z},getRunData:()=>({dispatchGroup:{x:N[0],y:N[1],z:N[2]},outputs:[{dims:n?n(m):m,dataType:a[0].dataType}],programUniforms:y}),getShaderSource:te}}}),Wg,Yg,Vg,o2,f3,Hg,l2,Ug,g3,qI=CA(()=>{JI(),Fi(),qn(),Wg=(a,o,n,u,m,b)=>(a-1)*o+n+(u-1)*m+1-b,Yg=(a,o,n,u,m)=>{let b=Math.floor(a/2);o==="SAME_UPPER"?(n[u]=b,n[m]=a-b):o==="SAME_LOWER"&&(n[u]=a-b,n[m]=b)},Vg=(a,o,n,u,m,b,C,w,E,x)=>{let D=a.length-2,B=x.length===0;E.length{let n=a.kernelShape.slice();if(a.kernelShape.length===0||a.kernelShape.reduce((B,v)=>B*v,1)===0){n.length=0;for(let B=2;BB+v,0)===0){let B=o[0].dims.length-2;E=new Array(B).fill(1)}let x=a.strides.slice();if(x.reduce((B,v)=>B+v,0)===0){let B=o[0].dims.length-2;x=new Array(B).fill(1)}Vg(w,n,E,a.autoPad,a.group,m,x,u,C,b);let D=Object.assign({},a);return Object.assign(D,{kernelShape:n,pads:m,outputPadding:C,outputShape:b,dilations:E,strides:x}),D},f3=a=>{let o=vc(a),n=a.format,u=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof a.autoPad>"u"?0:a.autoPad],m=a.dilations,b=a.group,C=a.kernelShape,w=a.pads,E=a.strides,x=a.wIsConst(),D=a.outputPadding,B=a.outputShape;return{autoPad:u,format:n,dilations:m,group:b,kernelShape:C,outputPadding:D,outputShape:B,pads:w,strides:E,wIsConst:x,...o,cacheKey:`${a.format};${o.activation};`}},Hg=(a,o)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length!==4&&a[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let n=a[0].dims[o.format==="NHWC"?a[0].dims.length-1:1],u=a[1].dims[0];if(n!==u)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let m=a[1].dims[1]*o.group;if(a.length===3&&(a[2].dims.length!==1||a[2].dims[0]!==m))throw new Error("invalid bias");let b=a[0].dims.length-2;if(o.dilations.reduce((C,w)=>C+w,0)>0&&o.dilations.length!==b)throw new Error(`dilations should be ${b}D`);if(o.strides.reduce((C,w)=>C+w,0)>0&&o.strides.length!==b)throw new Error(`strides should be ${b}D`);if(o.pads.reduce((C,w)=>C+w,0)>0&&o.pads.length!==b*2)throw new Error(`pads should be ${b*2}D`);if(o.outputPadding.length!==b&&o.outputPadding.length!==0)throw new Error(`output_padding should be ${b}D`);if(o.kernelShape.reduce((C,w)=>C+w,0)>0&&o.kernelShape.length!==0&&o.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape");if(o.outputShape.length!==0&&o.outputShape.length!==a[0].dims.length-2)throw new Error("invalid output shape")},l2=(a,o,n,u)=>{let m=a.kernelCustomData.wT??a.compute(ca(o[1],[2,3,0,1]),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=m);let b=[o[0],m];o.length===3&&b.push(o[2]),a.compute(d3(b,n,u),{inputs:b})},Ug=(a,o)=>{let n=o.format==="NHWC",u=[a.inputs[0].reshape(n?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&u.push(a.inputs[2]);let m=o.kernelShape;(m.length===0||m[0]===0)&&(m=[a.inputs[1].dims[2]]);let b=o.dilations;(b.length===0||b[0]===0)&&(b=[1]);let C=o.strides;(C.length===0||C[0]===0)&&(C=[1]);let w=o.pads;w.length===0&&(w=[0,0]),w=[0,w[0],0,w[1]],C=[1].concat(C),b=[1].concat(b),m=[1].concat(m);let E=o.outputPadding;E=[0].concat(E);let x=o2({...o,pads:w,strides:C,dilations:b,kernelShape:m,outputPadding:E},u);l2(a,u,x,D=>n?[D[0],D[2],D[3]]:[D[0],D[1],D[3]])},g3=(a,o)=>{if(Hg(a.inputs,o),a.inputs[0].dims.length===3)Ug(a,o);else{let n=o2(o,a.inputs);l2(a,a.inputs,n)}}}),Kg,p3,m3,$I=CA(()=>{st(),pt(),Yr(),Ct(),Kg=(a,o,n,u)=>{let m=Ke.size(o),b=o.length,C=tA("input",a,b),w=UA("output",a,b),E=n.dataType===6?n.getInt32Array()[0]:Number(n.getBigInt64Array()[0]),x=Ke.normalizeAxis(E,b),D=B=>{let v=` i32(${C.indicesGet("inputIndices","uniforms.axis")}) `,F=KA("uniforms.input_shape","uniforms.axis",b),S=u.reverse?v+(u.exclusive?" + 1":""):"0",L=u.reverse?F:v+(u.exclusive?"":" + 1");return` + ${B.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(C,w)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var inputIndices = ${w.offsetToIndices("global_idx")}; + var sum = ${w.type.value}(0); + let first : i32 = ${S}; + let last : i32 = ${L}; + for (var i : i32 = first; i < last; i++) { + ${C.indicesSet("inputIndices","uniforms.axis","u32(i)")}; + sum = sum + ${C.getByIndices("inputIndices")}; + } + ${w.setByOffset("global_idx","sum")}; + }`};return{name:"CumSum",shaderCache:{hint:u.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:a}],dispatchGroup:{x:Math.ceil(m/64)},programUniforms:[{type:12,data:m},{type:12,data:x},...JA(o,o)]}),getShaderSource:D}},p3=(a,o)=>{let n=a.inputs[0].dims,u=a.inputs[0].dataType,m=a.inputs[1];a.compute(Kg(u,n,m,o),{inputs:[0]})},m3=a=>{let o=a.exclusive===1,n=a.reverse===1;return Yt({exclusive:o,reverse:n})}}),Xg,Zg,Jg,h3,C3,e6=CA(()=>{st(),pt(),Yr(),Ct(),Xg=a=>{if(!a||a.length!==1)throw new Error("DepthToSpace requires 1 input.");if(a[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},Zg=(a,o,n,u)=>{let m=[];m.push(`fn perm(i: ${u.type.indices}) -> ${n.type.indices} { + var a: ${n.type.indices};`);for(let b=0;b{let n,u,m,b,C,w,E=o.format==="NHWC",x=o.blocksize,D=o.mode==="DCR";E?([n,u,m,b]=a.dims,C=D?[n,u,m,x,x,b/x**2]:[n,u,m,b/x**2,x,x],w=D?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([n,u,m,b]=[a.dims[0],a.dims[2],a.dims[3],a.dims[1]],C=D?[n,x,x,b/x**2,u,m]:[n,b/x**2,x,x,u,m],w=D?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let B=a.reshape(C),v=B.dims.length,F=a.dataType,S=tA("a",F,v),L=UA("output",F,v),Z=N=>` + ${N.registerUniform("output_size","u32").declareVariables(S,L)} + + ${Zg(w,v,S,L)} + + ${N.mainStart()} + ${N.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${L.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${L.setByOffset("global_idx",S.getByIndices("aIndices"))} + }`;return{name:"DepthToSpace",shaderCache:{hint:`${a.dims};${o.blocksize};${o.mode}`,inputDependencies:["rank"]},getRunData:N=>{let z=E?[n,u*x,m*x,b/x**2]:[n,b/x**2,u*x,m*x],K=Ke.size(z),f=B.dims,k=Ke.sortBasedOnPerm(f,w);return{outputs:[{dims:z,dataType:N[0].dataType}],dispatchGroup:{x:Math.ceil(K/64)},programUniforms:[{type:12,data:K},...JA(f,k)]}},getShaderSource:Z}},h3=(a,o)=>{Xg(a.inputs),a.compute(Jg(a.inputs[0],o))},C3=a=>Yt({blocksize:a.blocksize,mode:a.mode,format:a.format})}),x0,Oo,c2,qg,$g,e4,A4,u2,t4,b3,I3,A6=CA(()=>{st(),pt(),Yr(),Ct(),x0="[a-zA-Z]|\\.\\.\\.",Oo="("+x0+")+",c2="^"+Oo+"$",qg="("+Oo+",)*"+Oo,$g="^"+qg+"$",e4=class{constructor(a=-1){this.symbolToIndices=new Map,this.inputIndex=a}addSymbol(a,o){let n=this.symbolToIndices.get(a);n===void 0?n=[o]:n.push(o),this.symbolToIndices.set(a,n)}},A4=class{constructor(a,o){this.equation=o,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[n,u]=o.includes("->")?o.split("->",2):[o,""];if(!n.match(RegExp($g)))throw new Error("Invalid LHS term");if(n.split(",").forEach((m,b)=>{let C=a[b].dims.slice();if(!m.match(RegExp(c2)))throw new Error("Invalid LHS term");let w=this.processTerm(m,!0,C,b);this.lhs.push(w)}),u==="")u+=[...this.symbolToInfo.entries()].filter(([m,b])=>b.count===1||m==="...").map(([m])=>m).join("");else if(!u.match(RegExp(Oo)))throw new Error("Invalid RHS");u.match(RegExp(x0,"g"))?.forEach(m=>{if(m==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let b=this.symbolToInfo.get(m);if(b===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(b.dimValue)}}),this.rhs=this.processTerm(u,!1,this.outputDims)}addSymbol(a,o,n){let u=this.symbolToInfo.get(a);if(u!==void 0){if(u.dimValue!==o&&u.count!==1)throw new Error("Dimension mismatch");u.count++,u.inputIndices.push(n)}else u={count:1,dimValue:o,inputIndices:[n]};this.symbolToInfo.set(a,u)}processTerm(a,o,n,u=-1){let m=n.length,b=!1,C=[],w=0;if(!a.match(RegExp(c2))&&!o&&a!=="")throw new Error("Invalid LHS term");let E=a.match(RegExp(x0,"g")),x=new e4(u);return E?.forEach((D,B)=>{if(D==="..."){if(b)throw new Error("Only one ellipsis is allowed per input term");b=!0;let v=m-E.length+1;if(v<0)throw new Error("Ellipsis out of bounds");if(C=n.slice(w,w+v),this.hasEllipsis){if(this.ellipsisDims.length!==C.length||this.ellipsisDims.toString()!==C.toString())throw new Error("Ellipsis dimensions mismatch")}else if(o)this.hasEllipsis=!0,this.ellipsisDims=C;else throw new Error("Ellipsis must be specified in the LHS");for(let F=0;Fa+"_max",t4=(a,o,n,u)=>{let m=a.map(x=>x.length).map((x,D)=>tA(`input${D}`,o,x)),b=Ke.size(u),C=UA("output",o,u.length),w=[...n.symbolToInfo.keys()].filter(x=>!n.rhs.symbolToIndices.has(x)),E=x=>{let D=[],B="var prod = 1.0;",v="var sum = 0.0;",F="sum += prod;",S=[],L=[],Z=[],N=[],z=n.symbolToInfo.size===n.rhs.symbolToIndices.size;n.symbolToInfo.forEach((f,k)=>{if(n.rhs.symbolToIndices.has(k)){let e=n.rhs.symbolToIndices.get(k)?.[0];e!==void 0&&n.lhs.forEach((d,y)=>{if(f.inputIndices.includes(y)){let te=d.symbolToIndices.get(k);if(te===void 0)throw new Error("Invalid symbol error");te.forEach(T=>{D.push(`${m[y].indicesSet(`input${y}Indices`,T,C.indicesGet("outputIndices",e))}`)})}})}else n.lhs.forEach((e,d)=>{if(f.inputIndices.includes(d)){let y=e.symbolToIndices.get(k);if(y===void 0)throw new Error("Invalid symbol error");y.forEach(te=>{S.push(`${m[d].indicesSet(`input${d}Indices`,te,`${k}`)}`)}),N.push(`prod *= ${m[d].getByIndices(`input${d}Indices`)};`)}}),L.push(`for(var ${k}: u32 = 0; ${k} < uniforms.${u2(k)}; ${k}++) {`),Z.push("}")});let K=z?[...D,`let sum = ${m.map((f,k)=>f.getByIndices(`input${k}Indices`)).join(" * ")};`]:[...D,v,...L,...S,B,...N,F,...Z];return` + ${x.registerUniforms(w.map(f=>({name:`${u2(f)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...m,C)} + + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${C.offsetToIndices("global_idx")}; + ${m.map((f,k)=>`var input${k}Indices: ${m[k].type.indices};`).join(` +`)} + ${K.join(` +`)}; + ${C.setByOffset("global_idx","sum")}; + }`};return{name:"Einsum",shaderCache:{hint:n.equation,inputDependencies:a.map(()=>"rank")},getRunData:()=>{let x=w.filter(B=>n.symbolToInfo.has(B)).map(B=>({type:12,data:n.symbolToInfo.get(B)?.dimValue||0}));x.push({type:12,data:b});let D=a.map((B,v)=>[...JA(B)]).reduce((B,v)=>B.concat(v),x);return D.push(...JA(u)),{outputs:[{dims:u,dataType:o}],dispatchGroup:{x:Math.ceil(b/64)},programUniforms:D}},getShaderSource:E}},b3=(a,o)=>{let n=new A4(a.inputs,o.equation),u=n.outputDims,m=a.inputs.map((b,C)=>b.dims);a.compute(t4(m,a.inputs[0].dataType,n,u))},I3=a=>{let o=a.equation.replace(/\s+/g,"");return Yt({equation:o})}}),r4,d2,s4,a4,w3,t6=CA(()=>{st(),pt(),Ct(),r4=a=>{if(!a||a.length!==2)throw new Error("Expand requires 2 input.");let o=a[0].dims,n=Array.from(a[1].getBigInt64Array(),Number),u=n.length{let n=a.length-o.length,u=[];for(let m=0;ma.length>o.length?d2(a,o):d2(o,a),a4=a=>{let o=a[0].dims,n=Array.from(a[1].getBigInt64Array(),Number),u=s4(o,n),m=a[0].dataType,b=m===9||Ke.size(o)===1,C=m===9||o.length>0&&o[o.length-1]%4===0?4:1,w=b||u.length>0&&u[u.length-1]%4===0?4:1,E=Math.ceil(Ke.size(u)/w),x=B=>{let v=tA("input",m,o.length,C),F=UA("output",m,u.length,w),S;if(m===9){let L=(Z,N,z="")=>` + let outputIndices${N} = ${F.offsetToIndices(`outputOffset + ${N}u`)}; + let offset${N} = ${v.broadcastedIndicesToOffset(`outputIndices${N}`,F)}; + let index${N} = offset${N} / 4u; + let component${N} = offset${N} % 4u; + ${Z}[${N}] = ${z}(${v.getByOffset(`index${N}`)}[component${N}]); + `;S=` + let outputOffset = global_idx * ${w}; + var data = vec4(0); + ${L("data",0,"u32")} + ${L("data",1,"u32")} + ${L("data",2,"u32")} + ${L("data",3,"u32")} + ${F.setByOffset("global_idx","data")} + }`}else S=` + let outputIndices = ${F.offsetToIndices(`global_idx * ${w}`)}; + let inputOffset = ${v.broadcastedIndicesToOffset("outputIndices",F)}; + let data = ${F.type.value}(${v.getByOffset(`inputOffset / ${C}`)}); + ${F.setByOffset("global_idx","data")} + }`;return` + ${B.registerUniform("vec_size","u32").declareVariables(v,F)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${S}`},D=[{type:12,data:E},...JA(o,u)];return{name:"Expand",shaderCache:{hint:`${u.length};${C}${w}`,inputDependencies:["rank"]},getShaderSource:x,getRunData:()=>({outputs:[{dims:u,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:D})}},w3=a=>{r4(a.inputs),a.compute(a4(a.inputs),{inputs:[0]})}}),n4,k3,r6=CA(()=>{st(),pt(),Ct(),Mc(),n4=a=>{let o=a[0].dataType,n=Ke.size(a[0].dims),u=Ke.size(a[1].dims),m=u%4===0,b=C=>{let w=tA("x",o,[1],4),E=tA("bias",o,[1],4),x=UA("y",o,[1],4),D=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],B=F=>` + let bias${F}_offset: u32 = (global_idx * 4 + ${F}) % uniforms.bias_size; + let bias${F} = ${E.getByOffset(`bias${F}_offset / 4`)}[bias${F}_offset % 4];`,v=m?` + let bias = ${E.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${B(0)}${B(1)}${B(2)}${B(3)} + let bias = ${w.type.value}(bias0, bias1, bias2, bias3);`;return`${C.registerUniforms(D).declareVariables(w,E,x)} + + ${J2(Qs(o))} + + ${C.mainStart(uo)} + ${C.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} + + let x = ${w.getByOffset("global_idx")}; + ${v} + let x_in = x + bias; + ${x.setByOffset("global_idx",q2("x_in"))} + }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${m}`,inputDependencies:["type","type"]},getShaderSource:b,getRunData:C=>({outputs:[{dims:C[0].dims,dataType:C[0].dataType}],programUniforms:[{type:12,data:Math.ceil(n/4)},{type:12,data:u}],dispatchGroup:{x:Math.ceil(n/uo/4)}})}},k3=a=>{a.inputs.length<2||Ke.size(a.inputs[1].dims)===0?jh(a):a.compute(n4(a.inputs))}}),i4,o4,E3,M3,s6=CA(()=>{st(),pt(),Yr(),Ct(),i4=a=>{if(!a||a.length!==2)throw new Error("Gather requires 2 inputs.")},o4=(a,o)=>{let n=a[0].dims,u=a[1].dims,m=n.length,b=Ke.normalizeAxis(o.axis,m),C=n.slice(0);C.splice(b,1,...u);let w=n[b],E=a[0].dataType===9?4:1,x=Math.ceil(Ke.size(C)/E),D=[{type:12,data:x},{type:6,data:w},{type:12,data:b},...JA(a[0].dims,a[1].dims,C)],B=v=>{let F=tA("data",a[0].dataType,a[0].dims.length,E),S=tA("inputIndices",a[1].dataType,a[1].dims.length),L=UA("output",a[0].dataType,C.length,E),Z=z=>{let K=u.length,f=`var indicesIndices${z} = ${S.type.indices}(0);`;for(let k=0;k1?`indicesIndices${z}[${k}]`:`indicesIndices${z}`} = ${C.length>1?`outputIndices${z}[uniforms.axis + ${k}]`:`outputIndices${z}`};`;f+=` + var idx${z} = ${S.getByIndices(`indicesIndices${z}`)}; + if (idx${z} < 0) { + idx${z} = idx${z} + uniforms.axisDimLimit; + } + var dataIndices${z} : ${F.type.indices}; + `;for(let k=0,e=0;k1?`dataIndices${z}[${k}]`:`dataIndices${z}`} = u32(idx${z});`,e+=K):(f+=`${m>1?`dataIndices${z}[${k}]`:`dataIndices${z}`} = ${C.length>1?`outputIndices${z}[${e}]`:`outputIndices${z}`};`,e++);return f},N;if(a[0].dataType===9){let z=(K,f,k="")=>` + let outputIndices${f} = ${L.offsetToIndices(`outputOffset + ${f}u`)}; + ${Z(f)}; + let offset${f} = ${F.indicesToOffset(`dataIndices${f}`)}; + let index${f} = offset${f} / 4u; + let component${f} = offset${f} % 4u; + ${K}[${f}] = ${k}(${F.getByOffset(`index${f}`)}[component${f}]); + `;N=` + let outputOffset = global_idx * ${E}; + var value = vec4(0); + ${z("value",0,"u32")} + ${z("value",1,"u32")} + ${z("value",2,"u32")} + ${z("value",3,"u32")} + ${L.setByOffset("global_idx","value")} + `}else N=` + let outputIndices = ${L.offsetToIndices("global_idx")}; + ${Z("")}; + let value = ${F.getByIndices("dataIndices")}; + ${L.setByOffset("global_idx","value")}; + `;return` + ${v.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(F,S,L)} + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + ${N} + }`};return{name:"Gather",shaderCache:{hint:o.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:C,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:D}),getShaderSource:B}},E3=a=>Yt({axis:a.axis}),M3=(a,o)=>{let n=a.inputs;i4(n),a.compute(o4(a.inputs,o))}}),l4,v3,x3,a6=CA(()=>{st(),pt(),Ct(),l4=(a,o,n,u,m,b,C,w,E)=>{let x=[{type:12,data:b},{type:12,data:u},{type:12,data:m},{type:12,data:n},{type:12,data:C},{type:12,data:w},{type:12,data:E}],D=[b];x.push(...JA(o.dims,D));let B=v=>{let F=tA("indices_data",o.dataType,o.dims.length),S=UA("input_slice_offsets_data",12,1,1),L=[F,S],Z=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:m.length},{name:"sizes_from_slice_dims_data",type:"u32",length:n.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return` + ${v.registerUniforms(Z).declareVariables(...L)} + ${v.mainStart()} + ${v.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) { + ${m.length===1?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"} + } + ${n.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 a.compute({name:"computeSliceOffsets",shaderCache:{hint:`${m.length}_${n.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:D,dataType:a.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(b/64)},programUniforms:x}),getShaderSource:B},{inputs:[o],outputs:[-1]})[0]},v3=(a,o)=>{let n=a.inputs,u=n[0].dims,m=n[0].dataType,b=n[1].dims,C=b[b.length-1],w=Ke.sizeToDimension(b,b.length-1),E=Ke.sizeFromDimension(u,o.batchDims+C),x=Ke.sizeToDimension(u,o.batchDims),D=Ke.sizeFromDimension(u,o.batchDims),B=w/x,v=new Array(C),F=E;for(let f=0;fu.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let Z=b.slice(0,-1).concat(u.slice(L)),N=Ke.size(Z),z=[{type:12,data:N},{type:12,data:E},...JA(n[0].dims,S.dims,Z)],K=f=>{let k=tA("data",n[0].dataType,n[0].dims.length),e=tA("slice_offsets",12,S.dims.length),d=UA("output",n[0].dataType,Z.length);return` + ${f.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(k,e,d)} + ${f.mainStart()} + ${f.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]; + }`};a.compute({name:"GatherND",shaderCache:{hint:o.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:Z,dataType:m}],dispatchGroup:{x:Math.ceil(N/64)},programUniforms:z}),getShaderSource:K},{inputs:[n[0],S]})},x3=a=>({batchDims:a.batch_dims,cacheKey:""})}),c4,u4,B3,y3,n6=CA(()=>{st(),pt(),Yr(),Ct(),c4=(a,o)=>{if(a.length<3||a.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let n=Ke.normalizeAxis(o.quantizeAxis,a[0].dims.length),u=o.blockSize,m=a[0],b=a[2],C=a.length===4?a[3]:void 0;if(b.dims.length!==m.dims.length||!m.dims.map((w,E)=>E===n?Math.ceil(w/u)===b.dims[E]:w===b.dims[E]).reduce((w,E)=>w&&E,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(C){if(C.dataType!==m.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(C.dims.length!==b.dims.length||!C.dims.map((w,E)=>w===b.dims[E]).reduce((w,E)=>w&&E,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},u4=(a,o)=>{let n=a[0].dims,u=a[1].dims,m=n.length,b=Ke.normalizeAxis(o.gatherAxis,m),C=Ke.normalizeAxis(o.quantizeAxis,m),w=n.slice(0);w.splice(b,1,...u);let E=Ke.size(w),x=a[2].dataType,D=a[0].dataType===22,B=[{type:12,data:E},{type:12,data:C},{type:12,data:b},{type:12,data:o.blockSize},...JA(...a.map((F,S)=>F.dims),w)],v=F=>{let S=tA("data",a[0].dataType,a[0].dims.length),L=tA("inputIndices",a[1].dataType,a[1].dims.length),Z=tA("scales",a[2].dataType,a[2].dims.length),N=a.length>3?tA("zeroPoint",a[3].dataType,a[3].dims.length):void 0,z=UA("output",x,w.length),K=[S,L,Z];N&&K.push(N);let f=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${F.registerUniforms(f).declareVariables(...K,z)} + ${F.mainStart()} + let output_indices = ${z.offsetToIndices("global_idx")}; + var indices_indices = ${L.type.indices}(0); + ${u.length>1?` + for (var i: u32 = 0; i < ${u.length}; i++) { + let index = ${z.indicesGet("output_indices","uniforms.gather_axis + i")}; + ${L.indicesSet("indices_indices","i","index")}; + }`:`indices_indices = ${z.indicesGet("output_indices","uniforms.gather_axis")};`}; + var data_indices = ${S.type.indices}(0); + for (var i: u32 = 0; i < uniforms.gather_axis; i++) { + let index = ${z.indicesGet("output_indices","i")}; + ${S.indicesSet("data_indices","i","index")}; + } + var index_from_indices = ${L.getByIndices("indices_indices")}; + if (index_from_indices < 0) { + index_from_indices += ${n[b]}; + } + ${S.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; + for (var i = uniforms.gather_axis + 1; i < ${w.length}; i++) { + let index = ${z.indicesGet("output_indices",`i + ${u.length} - 1`)}; + ${S.indicesSet("data_indices","i","index")}; + } + let data_offset = ${S.indicesToOffset("data_indices")}; + let data_index = data_offset % 8; + // Convert 4-bit packed data to 8-bit packed data. + let packed_4bit_quantized_data = ${S.getByOffset("data_offset / 8")}; + let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; + let quantized_data_vec = ${D?"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 = ${Z.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; + ${Z.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; + var scale = ${Z.getByIndices("scale_indices")}; + ${N?` + let zero_point_indices = scale_indices; + let zero_point_offset = ${N.indicesToOffset("zero_point_indices")}; + let zero_point_index = zero_point_offset % 8; + let packed_4bit_zero_points = ${N.getByOffset("zero_point_offset / 8")}; + let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; + let zero_point_vec = ${D?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); + let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"}; + let dequantized_data = ${Qs(x)}(quantized_data - zero_point) * scale; + ${z.setByOffset("global_idx","dequantized_data")}; + }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${o.cacheKey};${a.filter((F,S)=>S!==1).map(F=>F.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:a.length},(F,S)=>"rank")},getRunData:()=>({outputs:[{dims:w,dataType:x}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:B}),getShaderSource:v}},B3=(a,o)=>{let n=a.inputs;c4(n,o),a.compute(u4(a.inputs,o))},y3=a=>Yt({blockSize:a.blockSize,gatherAxis:a.gatherAxis,quantizeAxis:a.quantizeAxis})}),d4,f4,D3,T3,i6=CA(()=>{st(),pt(),Yr(),Ct(),d4=a=>{if(!a||a.length!==2)throw new Error("GatherElements requires 2 inputs.");if(a[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(a[0].dims.length!==a[1].dims.length)throw new Error(`GatherElements requires that the data input and + indices input tensors be of same rank.`)},f4=(a,o)=>{let n=a[0].dims,u=a[0].dataType,m=n.length,b=a[1].dims,C=a[1].dataType,w=Ke.normalizeAxis(o.axis,m),E=n[w],x=b.slice(0),D=Ke.size(x),B=tA("input",u,m),v=tA("indicesInput",C,b.length),F=UA("output",u,x.length),S=[{type:12,data:D},{type:6,data:E},{type:12,data:w}];return S.push(...JA(n,b,x)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:x,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:S}),getShaderSource:L=>` + ${L.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(B,v,F)} + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let outputIndices = ${F.offsetToIndices("global_idx")}; + + var idx = ${v.getByOffset("global_idx")}; + if (idx < 0) { + idx = idx + uniforms.axisDimLimit; + } + var inputIndices = ${B.type.indices}(outputIndices); + ${B.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; + let value = ${B.getByIndices("inputIndices")}; + + ${F.setByOffset("global_idx","value")}; + }`}},D3=a=>Yt({axis:a.axis}),T3=(a,o)=>{let n=a.inputs;d4(n),a.compute(f4(a.inputs,o))}}),g4,p4,P3,G3,o6=CA(()=>{st(),pt(),Ct(),g4=a=>{if(!a)throw new Error("Input is missing");if(a.length<2||a.length>3)throw new Error("Invaid input number.");if(a.length===3&&a[2].dims.length>2)throw new Error("Invalid input shape of C");if(a[0].dataType!==a[1].dataType||a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("Input types are mismatched")},p4=(a,o)=>{let n=a[0].dims.slice(),u=a[1].dims.slice(),[m,b,C]=Dm.getShapeOfGemmResult(n,o.transA,u,o.transB,a.length===3?a[2].dims:void 0),w=[m,b];if(!w)throw new Error("Can't use gemm on the given tensors");let E=16,x=Math.ceil(b/E),D=Math.ceil(m/E),B=!0,v=Ke.size(w),F=[{type:12,data:B?x:v},{type:12,data:m},{type:12,data:b},{type:12,data:C},{type:1,data:o.alpha},{type:1,data:o.beta}],S=["type","type"];a.length===3&&(F.push(...JA(a[2].dims)),S.push("rank")),F.push(...JA(w));let L=N=>{let z="";o.transA&&o.transB?z="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":o.transA&&!o.transB?z="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!o.transA&&o.transB?z="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!o.transA&&!o.transB&&(z="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let K=o.alpha===1?"":"value *= uniforms.alpha;",f=tA("a",a[0].dataType,a[0].dims),k=tA("b",a[1].dataType,a[1].dims),e=f.type.value,d=null,y=[f,k];a.length===3&&(d=tA("c",a[2].dataType,a[2].dims.length),y.push(d));let te=UA("output",a[0].dataType,w.length);y.push(te);let T=[{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` + ${N.registerUniforms(T).declareVariables(...y)} + + ${N.mainStart()} + ${N.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++) { + ${z} + } + + ${K} + ${d!=null?`let cOffset = ${d.broadcastedIndicesToOffset("vec2(m, n)",te)}; value += ${e}(uniforms.beta) * ${d.getByOffset("cOffset")};`:""} + output[global_idx] = value; + }`},Z=N=>{let z=tA("a",a[0].dataType,a[0].dims),K=tA("b",a[1].dataType,a[1].dims),f=null,k=[z,K];a.length===3&&(f=tA("c",a[2].dataType,a[2].dims.length),k.push(f));let e=UA("output",a[0].dataType,w.length);k.push(e);let d=[{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"}],y="",te="";o.transA&&o.transB?(te=` + 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] = ${z.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] = ${K.type.value}(0); + } + `,y="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):o.transA&&!o.transB?(te=` + 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] = ${z.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] = ${K.type.value}(0); + } + `,y="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!o.transA&&o.transB?(te=` + 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] = ${z.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] = ${K.type.value}(0); + } + `,y="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!o.transA&&!o.transB&&(te=` + 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] = ${z.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] = ${K.type.value}(0); + } + `,y="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let T=o.alpha===1?"":"value *= uniforms.alpha;";return` + ${N.registerUniforms(d).declareVariables(...k)} + var tile_a: array, ${E}>; + var tile_b: array, ${E}>; + ${N.mainStart([E,E,1])} + let tile_col_start = (workgroup_index % uniforms.num_tile_n) * ${E}; + let tile_row_start = (workgroup_index / uniforms.num_tile_n) * ${E}; + let num_tiles = (uniforms.K - 1) / ${E} + 1; + var k_start = 0u; + var value = ${e.type.value}(0); + for (var t: u32 = 0u; t < num_tiles; t++) { + ${te} + k_start = k_start + ${E}; + workgroupBarrier(); + + for (var k: u32 = 0u; k < ${E}; k++) { + ${y} + } + workgroupBarrier(); + } + + ${T} + let m = tile_row_start + local_id.y; + let n = tile_col_start + local_id.x; + ${f!=null?`let cOffset = ${f.broadcastedIndicesToOffset("vec2(m, n)",e)}; value += ${e.type.value}(uniforms.beta) * ${f.getByOffset("cOffset")};`:""} + if (m < uniforms.M && n < uniforms.N) { + output[m * uniforms.N + n] = value; + } + }`};return B?{name:"GemmShared",shaderCache:{hint:`${o.cacheKey}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:w,dataType:a[0].dataType}],dispatchGroup:{x:x*D},programUniforms:F}),getShaderSource:Z}:{name:"Gemm",shaderCache:{hint:`${o.cacheKey}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:w,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:F}),getShaderSource:L}},P3=a=>{let o=a.transA,n=a.transB,u=a.alpha,m=a.beta;return{transA:o,transB:n,alpha:u,beta:m,cacheKey:`${a.transA};${a.transB};${a.alpha===1}`}},G3=(a,o)=>{g4(a.inputs),a.compute(p4(a.inputs,o))}}),$a,En,bi,Ii,m4,h4,C4,b4,I4,w4,k4,E4,Q3,F3,l6=CA(()=>{st(),pt(),Yr(),Ct(),[$a,En,bi,Ii]=[0,1,2,3],m4=a=>{if(a[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(a[0].dims.length!==a[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(a[0].dims.length-2!==a[1].dims[a[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${a[0].dims.length-2}`);if(a[0].dims[0]!==a[1].dims[0])throw new Error("grid batch size must match input batch size")},h4=` + 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; + } +`,C4=a=>` + fn gs_bicubic_interpolate(p: mat4x4<${a}>, x: f32, y: f32) -> ${a} { + 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 = ${a}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]); + return pixel; + } +`,b4=a=>` + fn gs_denormalize(n: f32, length: i32) -> f32 { + ${a.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)); + `} + } +`,I4=a=>` + ${a.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); + }`:""} +`,w4=(a,o,n)=>` + fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4) -> ${o} { + var pixel = ${o}(0); + var indices = vec4(0); + indices[${$a}] = batch; + indices[${En}] = channel;`+(()=>{switch(n.paddingMode){case"zeros":return` + if (r >= 0 && r < H && c >=0 && c < W) { + indices[${bi}] = u32(r); + indices[${Ii}] = u32(c); + } else { + return ${o}(0); + } + `;case"border":return` + indices[${bi}] = u32(clamp(r, 0, H - 1)); + indices[${Ii}] = u32(clamp(c, 0, W - 1)); + `;case"reflection":return` + indices[${bi}] = gs_reflect(r, border[1], border[3]); + indices[${Ii}] = gs_reflect(c, border[0], border[2]); + `;default:throw new Error(`padding mode ${n.paddingMode} is not supported`)}})()+` + return ${a.getByIndices("indices")}; + } +`,k4=(a,o,n)=>(()=>{switch(n.mode){case"nearest":return` + let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${$a}], indices[${En}], 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[${$a}], indices[${En}], border); + let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${$a}], indices[${En}], border); + let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${$a}], indices[${En}], border); + let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${$a}], indices[${En}], border); + + let dx2 = ${o}(f32(x2) - x); + let dx1 = ${o}(x - f32(x1)); + let dy2 = ${o}(f32(y2) - y); + let dy1 = ${o}(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<${o}>; + 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[${$a}], indices[${En}], 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 ${n.mode} is not supported`)}})()+`${a.setByOffset("global_idx","result")}`,E4=(a,o)=>{let n=tA("x",a[0].dataType,a[0].dims.length),u=[a[1].dims[0],a[1].dims[1],a[1].dims[2]],m=tA("grid",a[1].dataType,u.length,2),b=[a[0].dims[0],a[0].dims[1],a[1].dims[1],a[1].dims[2]];o.format==="NHWC"&&(b=[a[0].dims[0],a[1].dims[1],a[1].dims[2],a[0].dims[3]],[$a,En,bi,Ii]=[0,3,1,2]);let C=UA("output",a[0].dataType,b.length),w=n.type.value,E=Ke.size(b),x=[{type:12,data:E},...JA(a[0].dims,u,b)],D=B=>` + ${B.registerUniform("output_size","u32").declareVariables(n,m,C)} + ${h4} + ${C4(w)} + ${b4(o)} + ${I4(o)} + ${w4(n,w,o)} + + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let H_in = i32(uniforms.x_shape[${bi}]); + let W_in = i32(uniforms.x_shape[${Ii}]); + + ${o.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 = ${C.offsetToIndices("global_idx")}; + var grid_indices = vec3(indices[${$a}], indices[${bi}], indices[${Ii}]); + let nxy = ${m.getByIndices("grid_indices")}; + var x = gs_denormalize(f32(nxy[0]), W_in); + var y = gs_denormalize(f32(nxy[1]), H_in); + + ${k4(C,w,o)} + }`;return{name:"GridSample",shaderCache:{hint:`${o.cacheKey}`,inputDependencies:["type","type"]},getRunData:B=>{let v=Ke.size(b);return{outputs:[{dims:b,dataType:B[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:x}},getShaderSource:D}},Q3=(a,o)=>{m4(a.inputs),a.compute(E4(a.inputs,o))},F3=a=>Yt({alignCorners:a.align_corners,mode:a.mode,paddingMode:a.padding_mode,format:a.format})}),Rs,M4,S3,f2,v4,Vo,O3,_3=CA(()=>{st(),pt(),Yr(),Ic(),Ec(),Ct(),qn(),Rs=(a,o)=>a.length>o&&a[o].dims.length>0?a[o]:void 0,M4=(a,o)=>{let n=a[0],u=Rs(a,1),m=Rs(a,2),b=Rs(a,3),C=Rs(a,4),w=Rs(a,5),E=Rs(a,6),x=Rs(a,7);if(n.dims.length!==3&&n.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let D=n.dims[0],B=n.dims[1],v=n.dims.length===3?n.dims[2]:o.numHeads*n.dims[4],F=B,S=0,L=0,Z=Math.floor(v/o.numHeads);if(E&&x&&Ke.size(E.dims)&&Ke.size(x.dims)){if(E.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(E.dims[0]!==D||E.dims[1]!==o.numHeads||E.dims[3]!==Z)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(x.dims[0]!==D||x.dims[1]!==o.numHeads||x.dims[3]!==Z)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(E.dims[2]!==x.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(x.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');S=E.dims[2],L=E.dims[2]}else if(E&&Ke.size(E.dims)||x&&Ke.size(x.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let N;if(u&&Ke.size(u.dims)>0){if(n.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(u.dims.length<3||u.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==u.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(u.dims.length===3){if(u.dims[2]!==n.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');N=2,F=u.dims[1]}else if(u.dims.length===5){if(u.dims[2]!==o.numHeads||u.dims[3]!==2||u.dims[4]!==Z)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(m)throw new Error('Expect "value" be none when "key" has packed kv format.');N=5,F=u.dims[1]}else{if(u.dims[1]!==o.numHeads||u.dims[3]!==Z)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');N=0,F=u.dims[2]}}else{if(n.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(n.dims[2]!==o.numHeads||n.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');N=3}if(b&&Ke.size(b.dims)>0){if(b.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(u&&u.dims.length===5&&u.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let z=S+F,K=0;if(C&&Ke.size(C.dims)>0){K=8;let d=C.dims;throw d.length===1?d[0]===D?K=1:d[0]===3*D+2&&(K=3):d.length===2&&d[0]===D&&d[1]===z&&(K=5),K===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let f=!1,k=v;if(m&&Ke.size(m.dims)>0){if(m.dims.length!==3&&m.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(n.dims[0]!==m.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(m.dims.length===3){if(F!==m.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');k=m.dims[2]}else{if(F!==m.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');k=m.dims[1]*m.dims[3],f=!0}}let e=!1;if(C&&Ke.size(C.dims)>0)throw new Error("Key padding mask is not supported");if(w&&Ke.size(w.dims)>0){if(w.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(w.dims[0]!==D||w.dims[1]!==o.numHeads||w.dims[2]!==B||w.dims[3]!==z)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:D,sequenceLength:B,pastSequenceLength:S,kvSequenceLength:F,totalSequenceLength:z,maxSequenceLength:L,inputHiddenSize:0,hiddenSize:v,vHiddenSize:k,headSize:Z,vHeadSize:Math.floor(k/o.numHeads),numHeads:o.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:o.maskFilterValue,maskType:K,scale:o.scale,broadcastResPosBias:e,passPastInKv:f,qkvFormat:N}},S3=a=>Yt({...a}),f2=Yt({perm:[0,2,1,3]}),v4=(a,o,n,u,m,b,C)=>{let w=[u,m,b],E=Ke.size(w),x=[{type:12,data:E},{type:12,data:C},{type:12,data:b}],D=B=>{let v=UA("qkv_with_bias",o.dataType,w),F=tA("qkv",o.dataType,w),S=tA("bias",n.dataType,w),L=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return` + ${B.registerUniforms(L).declareVariables(F,S,v)} + ${B.mainStart()} + ${B.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 a.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:w,dataType:o.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:x}),getShaderSource:D},{inputs:[o,n],outputs:[-1]})[0]},Vo=(a,o,n,u,m,b,C,w)=>{let E=b;if(C&&Ke.size(C.dims)>0){if(u===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return E=v4(a,b,C,o,u,n*m,w),E=E.reshape([o,u,n,m]),n===1||u===1?E:a.compute(ca(E,f2.perm),{inputs:[E],outputs:[-1]})[0]}else return b.dims.length===3&&(E=b.reshape([o,u,n,m])),n===1||u===1?E:a.compute(ca(E,f2.perm),{inputs:[E],outputs:[-1]})[0]},O3=(a,o)=>{let n=M4(a.inputs,o),u=a.inputs[0],m=Rs(a.inputs,1),b=Rs(a.inputs,2),C=Rs(a.inputs,3),w=Rs(a.inputs,4),E=Rs(a.inputs,5),x=Rs(a.inputs,6),D=Rs(a.inputs,7);if(u.dims.length===5)throw new Error("Packed QKV is not implemented");if(m?.dims.length===5)throw new Error("Packed KV is not implemented");let B=m&&b&&m.dims.length===4&&b.dims.length===4,v=Vo(a,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,u,C,0);if(B)return Jo(a,v,m,b,w,void 0,x,D,E,n);if(!m||!b)throw new Error("key and value must be provided");let F=Vo(a,n.batchSize,n.numHeads,n.kvSequenceLength,n.headSize,m,C,n.hiddenSize),S=Vo(a,n.batchSize,n.numHeads,n.kvSequenceLength,n.vHeadSize,b,C,2*n.hiddenSize);Jo(a,v,F,S,w,void 0,x,D,E,n)}}),x4,B4,y4,D4,rc,z3,N3,L3=CA(()=>{st(),pt(),Yr(),Ct(),x4=a=>{if(!a||a.length<1)throw new Error("too few inputs")},B4=(a,o)=>{let n=[],u=o.numOutputs;return a[1].dims[0]>0&&(a[1].getBigInt64Array().forEach(m=>n.push(Number(m))),u=n.length),Yt({numOutputs:u,axis:o.axis,splitSizes:n})},y4=a=>` +fn calculateOutputIndex(index: u32) -> u32 { + for (var i: u32 = 0u; i < ${a}u; i += 1u ) { + if (index < ${KA("uniforms.size_in_split_axis","i",a)}) { + return i; + } + } + return ${a}u; +}`,D4=a=>{let o=a.length,n=[];for(let u=0;u{let n=a[0].dims,u=Ke.size(n),m=a[0].dataType,b=Ke.normalizeAxis(o.axis,n.length),C=new Array(o.numOutputs),w=tA("input",m,n.length),E=new Array(o.numOutputs),x=[],D=[],B=0,v=[{type:12,data:u}];for(let S=0;S` + ${S.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",E.length).declareVariables(w,...C)} + ${y4(E.length)} + ${D4(C)} + + ${S.mainStart()} + ${S.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} + + var indices = ${w.offsetToIndices("global_idx")}; + var index = ${w.indicesGet("indices",b)}; + let output_number = calculateOutputIndex(index); + if (output_number != 0) { + index -= ${KA("uniforms.size_in_split_axis","output_number - 1u",E.length)}; + ${w.indicesSet("indices",b,"index")}; + } + writeBufferData(output_number, indices, global_idx); + }`;return{name:"Split",shaderCache:{hint:o.cacheKey,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:x,dispatchGroup:{x:Math.ceil(u/64)},programUniforms:v})}},z3=(a,o)=>{x4(a.inputs);let n=a.inputs.length===1?o:B4(a.inputs,o);a.compute(rc(a.inputs,n),{inputs:[0]})},N3=a=>{let o=a.axis,n=a.splitSizes,u=a.numOutputs<0?n.length:a.numOutputs;if(u!==n.length)throw new Error("numOutputs and splitSizes lengh must be equal");return Yt({axis:o,numOutputs:u,splitSizes:n})}}),T4,R0,R3,j3=CA(()=>{st(),pt(),Yr(),Ct(),T4=(a,o)=>{let[n,u,m,b]=a,{numHeads:C,rotaryEmbeddingDim:w}=o;if(n.dims.length!==3&&n.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${n.dims.length}`);if(!Ke.areEqual(u.dims,[])&&!Ke.areEqual(u.dims,[1])&&u.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${u.dims.length}`);if(m.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${m.dims.length}`);if(b.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${b.dims.length}`);if(!Ke.areEqual(m.dims,b.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(w>0&&C===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let E=n.dims[0],x=n.dims[n.dims.length-2],D=m.dims[0],B=Ke.sizeFromDimension(n.dims,1)/x,v=w===0?m.dims[1]*2:B/C;if(w>v)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(u.dims.length===2){if(E!==u.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${u.dims[0]}`);if(x!==u.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${u.dims[1]}`)}if(v/2!==m.dims[1]&&w/2!==m.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${m.dims[1]}`);if(x>D)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},R0=(a,o)=>{let{interleaved:n,numHeads:u,rotaryEmbeddingDim:m,scale:b}=o,C=a[0].dims[0],w=Ke.sizeFromDimension(a[0].dims,1),E=a[0].dims[a[0].dims.length-2],x=w/E,D=a[2].dims[1],B=m===0?D*2:x/u,v=new Array(C,E,x/B,B-D),F=Ke.computeStrides(v),S=[{type:1,data:b},{type:12,data:v},{type:12,data:F},...a[0].dims.length===3?new Array({type:12,data:[w,x,B,1]}):[],...a[0].dims.length===4?new Array({type:12,data:[w,B,E*B,1]}):[],...JA(a[0].dims,a[1].dims,a[2].dims,a[3].dims,a[0].dims)],L=Z=>{let N=tA("input",a[0].dataType,a[0].dims.length),z=tA("position_ids",a[1].dataType,a[1].dims.length),K=tA("cos_cache",a[2].dataType,a[2].dims.length),f=tA("sin_cache",a[3].dataType,a[3].dims.length),k=UA("output",a[0].dataType,a[0].dims.length);return Z.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:v.length},{name:"global_strides",type:"u32",length:F.length},{name:"input_output_strides",type:"u32",length:F.length}]),` + ${Z.declareVariables(N,z,K,f,k)} + + ${Z.mainStart(uo)} + let half_rotary_emb_dim = uniforms.${K.name}_shape[1]; + let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; + let size = uniforms.global_shape[0] * uniforms.global_strides[0]; + ${Z.guardAgainstOutOfBoundsWorkgroupSizes("size")} + + if (bsnh[3] < half_rotary_emb_dim) { + let position_ids_idx = + ${z.broadcastedIndicesToOffset("bsnh.xy",UA("",z.type.tensor,2))}; + let position_id = + u32(${z.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); + let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${n}); + let j = i + select(half_rotary_emb_dim, 1, ${n}); + let re = ${N.getByOffset("i")} * ${K.get("position_id","bsnh[3]")} - + ${N.getByOffset("j")} * ${f.get("position_id","bsnh[3]")}; + ${k.setByOffset("i","re")} + let im = ${N.getByOffset("i")} * ${f.get("position_id","bsnh[3]")} + + ${N.getByOffset("j")} * ${K.get("position_id","bsnh[3]")}; + ${k.setByOffset("j","im")} + } else { + let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; + ${k.setByOffset("k",N.getByOffset("k"))} + } + }`};return{name:"RotaryEmbedding",shaderCache:{hint:Yt({interleaved:n}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:L,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Ke.size(v)/uo)},programUniforms:S})}},R3=(a,o)=>{T4(a.inputs,o),a.compute(R0(a.inputs,o))}}),P4,G4,g2,Q4,W3,c6=CA(()=>{Yr(),st(),Ec(),_3(),L3(),qn(),j3(),Ct(),P4=(a,o)=>{if(o.doRotary&&a.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let n=a[0],u=a[1],m=a[2],b=a[3],C=a[4];if(o.doRotary!==0&&a.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(o.localWindowSize!==-1)throw new Error("Local attention is not supported");if(o.softcap!==0)throw new Error("Softcap is not supported");if(o.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(o.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(n.dims.length!==3&&n.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let w=!1,E=n.dims[0],x=n.dims[1],D=n.dims.length===3?w?n.dims[2]/3:n.dims[2]:o.numHeads*n.dims[4],B=x,v=0,F=!u||u.dims.length===0,S=Math.floor(F?D/(o.numHeads+2*o.kvNumHeads):D/o.numHeads);F&&(D=S*o.numHeads);let L=b&&b.dims.length!==0,Z=C&&C.dims.length!==0;if(L&&b.dims.length===4&&b.dims[0]===E&&b.dims[1]!==o.kvNumHeads&&b.dims[2]===o.kvNumHeads&&b.dims[3]===S)throw new Error("BSNH pastKey/pastValue is not supported");if(L&&Z){if(b.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(C.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');v=b.dims[2]}else if(L||Z)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let N=1;if(u&&u.dims.length>0){if(n.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(u.dims.length<3||u.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==u.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(u.dims.length===3){if(n.dims[2]%u.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');B=u.dims[1]}else if(u.dims.length===5){if(u.dims[2]!==o.numHeads||u.dims[3]!==2||u.dims[4]!==S)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(m)throw new Error('Expect "value" be none when "key" has packed kv format.');B=u.dims[1]}else{if(u.dims[1]!==o.numHeads||u.dims[3]!==S)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');B=u.dims[2]}}else{if(n.dims.length!==3&&n.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(n.dims.length===5&&(n.dims[2]!==o.numHeads||n.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');N=3}let z=0,K=!1,f=o.kvNumHeads?S*o.kvNumHeads:D;if(m&&m.dims.length>0){if(m.dims.length!==3&&m.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(n.dims[0]!==m.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(m.dims.length===3){if(B!==m.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');f=m.dims[2]}else{if(B!==m.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');f=m.dims[1]*m.dims[3],K=!0}}let k=a.length>4?a[5]:void 0;if(k&&k.dims.length!==1&&k.dims[0]!==E)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:E,sequenceLength:x,pastSequenceLength:v,kvSequenceLength:B,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:D,vHiddenSize:f,headSize:S,vHeadSize:Math.floor(f/o.kvNumHeads),numHeads:o.numHeads,kvNumHeads:o.kvNumHeads,nReps:o.numHeads/o.kvNumHeads,pastPresentShareBuffer:!1,maskType:z,scale:o.scale,broadcastResPosBias:!1,passPastInKv:K,qkvFormat:N}},G4=Yt({perm:[0,2,1,3]}),g2=(a,o,n)=>{let u=o,m=n.kvNumHeads;return o.dims.length===3&&n.kvSequenceLength!==0&&(u=o.reshape([n.batchSize,n.kvSequenceLength,m,n.headSize]),u=a.compute(ca(u,G4.perm),{inputs:[u],outputs:[-1]})[0]),u},Q4=(a,o,n,u)=>{let m=7,b=["type","type"],C=[a*o],w=a*o,E=[{type:12,data:w},{type:12,data:o},{type:12,data:a}],x=D=>{let B=tA("seq_lens",n.dataType,n.dims),v=tA("total_seq_lens",u.dataType,u.dims),F=UA("pos_ids",m,C),S=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return` + ${D.registerUniforms(S).declareVariables(B,v,F)} + ${D.mainStart()} + ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let total_sequence_length = u32(${v.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 = ${B.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; + } + ${F.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; + } + ${F.setByOffset("global_idx","pos_id")} + } else if (global_idx < uniforms.batch_size) { + ${F.setByOffset("global_idx","seqlen")} + }; + } + `};return{name:"GeneratePositionIds",shaderCache:{hint:`${a};${o}`,inputDependencies:b},getRunData:()=>({outputs:[{dims:C,dataType:m}],dispatchGroup:{x:Math.ceil(w/64)},programUniforms:E}),getShaderSource:x}},W3=(a,o)=>{let n=P4(a.inputs,o);if(a.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(a.inputs[1]?.dims.length===5)throw new Error("Packed KV is not implemented");let u=a.inputs[0],m=a.inputs[1]&&a.inputs[1].dims.length>0?a.inputs[1]:void 0,b=a.inputs[2]&&a.inputs[2].dims.length>0?a.inputs[2]:void 0,C=a.inputs[3]&&a.inputs[3].dims.length!==0?a.inputs[3]:void 0,w=a.inputs[4]&&a.inputs[4].dims.length!==0?a.inputs[4]:void 0,E=a.inputs.length>4?a.inputs[5]:void 0,x=a.inputs.length>5?a.inputs[6]:void 0,D=n.kvNumHeads?n.kvNumHeads:n.numHeads,B=Yt({axis:2,numOutputs:3,splitSizes:[n.numHeads*n.headSize,D*n.headSize,D*n.headSize]}),[v,F,S]=!m&&!b?a.compute(rc([u],B),{inputs:[u],outputs:[-1,-1,-1]}):[u,m,b],L,Z;if(o.doRotary){let f=a.compute(Q4(n.batchSize,n.sequenceLength,E,x),{inputs:[E,x],outputs:[-1]})[0],k=a.inputs[7],e=a.inputs[8],d=Yt({interleaved:o.rotaryInterleaved!==0,numHeads:n.numHeads,rotaryEmbeddingDim:0,scale:o.scale}),y=[v,f,k,e],te=[-1];L=a.compute(R0(y,d),{inputs:y,outputs:te})[0],y.splice(0,1,F);let T=Yt({interleaved:o.rotaryInterleaved!==0,numHeads:n.kvNumHeads,rotaryEmbeddingDim:0,scale:o.scale});Z=a.compute(R0(y,T),{inputs:y,outputs:te})[0]}let N=Vo(a,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,o.doRotary?L:v,void 0,0),z=g2(a,o.doRotary?Z:F,n),K=g2(a,S,n);Jo(a,N,z,K,void 0,void 0,C,w,void 0,n,E,x)}}),p2,F4,S4,Y3,u6=CA(()=>{st(),pt(),qn(),Ct(),p2=(a,o,n,u,m,b,C,w)=>{let E=Nr(b),x=E===1?"f32":`vec${E}f`,D=E===1?"vec2f":`mat2x${E}f`,B=m*C,v=64;B===1&&(v=256);let F=[m,C,b/E],S=[m,C,2],L=["rank","type","type"],Z=[];Z.push(...JA(F,S));let N=z=>{let K=tA("x",o.dataType,3,E),f=tA("scale",n.dataType,n.dims),k=tA("bias",u.dataType,u.dims),e=UA("output",1,3,2),d=[K,f,k,e];return` + var workgroup_shared : array<${D}, ${v}>; + const workgroup_size = ${v}u; + ${z.declareVariables(...d)} + ${z.mainStart(v)} + 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 = ${x}(0); + var squared_sum = ${x}(0); + for (var h = local_idx; h < hight; h += workgroup_size) { + let value = ${x}(${K.get("batch","channel","h")}); + sum += value; + squared_sum += value * value; + } + workgroup_shared[local_idx] = ${D}(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 = ${Jn("workgroup_shared[0][0]",E)} / f32(hight * ${E}); + let squared_sum_final = ${Jn("workgroup_shared[0][1]",E)} / f32(hight * ${E}); + + let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${w})); + 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 a.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${E};${w};${v}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:S,dataType:1}],dispatchGroup:{x:B},programUniforms:Z}),getShaderSource:N},{inputs:[o,n,u],outputs:[-1]})[0]},F4=(a,o,n)=>{let u=o[0].dims,m=u,b=2,C=u[0],w=u[1],E=Ke.sizeFromDimension(u,b),x=Nr(E),D=Ke.size(m)/x,B=p2(a,o[0],o[1],o[2],C,E,w,n.epsilon),v=[C,w,E/x],F=[C,w],S=["type","none"],L=Z=>{let N=tA("x",o[0].dataType,v.length,x),z=tA("scale_shift",1,F.length,2),K=UA("output",o[0].dataType,v.length,x),f=[N,z,K];return` + ${Z.registerUniform("output_size","u32").declareVariables(...f)} + ${Z.mainStart()} + ${Z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let outputIndices = ${K.offsetToIndices("global_idx")}; + let batch = outputIndices[0]; + let channel = outputIndices[1]; + let scale_shift = ${z.getByIndices("vec2(batch, channel)")}; + let value = ${N.getByOffset("global_idx")} * ${K.type.value}(scale_shift.x) + ${K.type.value}(scale_shift.y); + ${K.setByOffset("global_idx","value")}; + }`};a.compute({name:"InstanceNormalization",shaderCache:{hint:`${x}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:m,dataType:o[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:[{type:12,data:D},...JA(v,F,v)]}),getShaderSource:L},{inputs:[o[0],B]})},S4=(a,o,n)=>{let u=o[0].dims,m=u,b=u[0],C=u[u.length-1],w=Ke.sizeFromDimension(u,1)/C,E=Nr(C),x=Ke.size(m)/E,D=[{type:12,data:w},{type:12,data:Math.floor(C/E)}],B=["type","type"],v=!1,F=[0,u.length-1];for(let N=0;Nu[F[z]])),L=p2(a,S,o[1],o[2],b,w,C,n.epsilon),Z=N=>{let z=gs(o[0].dataType),K=E===1?"vec2f":`mat${E}x2f`,f=d=>{let y=d===0?"x":"y",te=E===1?"f32":`vec${E}f`;switch(E){case 1:return`${z}(${te}(scale.${y}))`;case 2:return`vec2<${z}>(${te}(scale[0].${y}, scale[1].${y}))`;case 4:return`vec4<${z}>(${te}(scale[0].${y}, scale[1].${y}, scale[2].${y}, scale[3].${y}))`;default:throw new Error(`Not supported compoents ${E}`)}},k=tA("input",o[0].dataType,o[0].dims,E),e=UA("output",o[0].dataType,m,E);return` + @group(0) @binding(0) var input : array<${k.type.storage}>; + @group(0) @binding(1) var scale_input : array<${K}>; + @group(0) @binding(2) var output : array<${e.type.storage}>; + struct Uniforms {H: u32, C : u32}; + @group(0) @binding(3) var uniforms: Uniforms; + + ${N.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], ${f(0)}, ${f(1)}); + }`};a.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${E}`,inputDependencies:B},getRunData:()=>({outputs:[{dims:m,dataType:o[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:D}),getShaderSource:Z},{inputs:[o[0],L]})},Y3=(a,o)=>{o.format==="NHWC"?S4(a,a.inputs,o):F4(a,a.inputs,o)}}),O4,_4,V3,d6=CA(()=>{st(),pt(),Ct(),O4=a=>{if(!a||a.length<2)throw new Error("layerNorm requires at least 2 inputs.")},_4=(a,o,n)=>{let u=o.simplified,m=a[0].dims,b=a[1],C=!u&&a[2],w=m,E=Ke.normalizeAxis(o.axis,m.length),x=Ke.sizeToDimension(m,E),D=Ke.sizeFromDimension(m,E),B=Ke.size(b.dims),v=C?Ke.size(C.dims):0;if(B!==D||C&&v!==D)throw new Error(`Size of X.shape()[axis:] == ${D}. + Size of scale and bias (if provided) must match this. + Got scale size of ${B} and bias size of ${v}`);let F=[];for(let k=0;k1,z=n>2,K=k=>{let e=gs(a[0].dataType),d=[tA("x",a[0].dataType,a[0].dims,S),tA("scale",b.dataType,b.dims,S)];C&&d.push(tA("bias",C.dataType,C.dims,S)),d.push(UA("output",a[0].dataType,w,S)),N&&d.push(UA("mean_data_output",1,F)),z&&d.push(UA("inv_std_output",1,F));let y=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return` + ${k.registerUniforms(y).declareVariables(...d)} + ${k.mainStart()} + ${k.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} + let offset = global_idx * uniforms.norm_size_vectorized; + var mean_vector = ${K2("f32",S)}; + var mean_square_vector = ${K2("f32",S)}; + + for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { + let value = ${ao(e,S,"x[h + offset]")}; + mean_vector += value; + mean_square_vector += value * value; + } + let mean = ${Jn("mean_vector",S)} / uniforms.norm_size; + let inv_std_dev = inverseSqrt(${Jn("mean_square_vector",S)} / uniforms.norm_size ${u?"":"- mean * mean"} + uniforms.epsilon); + + for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { + let f32input = ${ao(e,S,"x[j + offset]")}; + let f32scale = ${ao(e,S,"scale[j]")}; + output[j + offset] = ${d[0].type.value}((f32input ${u?"":"- mean"}) * inv_std_dev * f32scale + ${C?`+ ${ao(e,S,"bias[j]")}`:""} + ); + } + + ${N?"mean_data_output[global_idx] = mean":""}; + ${z?"inv_std_output[global_idx] = inv_std_dev":""}; + }`},f=[{dims:w,dataType:a[0].dataType}];return N&&f.push({dims:F,dataType:1}),z&&f.push({dims:F,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${S};${n};${u}`,inputDependencies:L},getRunData:()=>({outputs:f,dispatchGroup:{x:Math.ceil(x/64)},programUniforms:Z}),getShaderSource:K}},V3=(a,o)=>{O4(a.inputs),a.compute(_4(a.inputs,o,a.outputCount))}}),z4,H3,f6=CA(()=>{pt(),yc(),Dc(),z4=a=>{if(!a||a.length!==2)throw new Error("MatMul requires 2 inputs.");if(a[0].dims[a[0].dims.length-1]!==a[1].dims[a[1].dims.length-2])throw new Error("shared dimension does not match.")},H3=a=>{z4(a.inputs);let o=co.calcShape(a.inputs[0].dims,a.inputs[1].dims,!0);if(!o)throw new Error("Can't use matmul on the given tensors");let n=o[o.length-1],u=a.inputs[0].dims[a.inputs[0].dims.length-1];if(n<8&&u<8)a.compute(Bc(a.inputs,{activation:""},o));else{let m=o[o.length-2],b=Ke.size(a.inputs[0].dims.slice(0,-2)),C=Ke.size(a.inputs[1].dims.slice(0,-2));if(b!==1&&m===1&&C===1){let w=a.inputs[0].reshape([1,b,u]),E=a.inputs[1].reshape([1,u,n]),x=[1,b,n],D=[w,E];a.compute(L0(D,{activation:""},o,x),{inputs:D})}else a.compute(L0(a.inputs,{activation:""},o))}}}),N4,L4,R4,U3,K3,g6=CA(()=>{st(),pt(),Yr(),Ct(),N4=(a,o)=>{if(a.length<3||a.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let n=a[0],u=n.dims.length;if(n.dims[u-1]!==o.k)throw new Error("The last dim of input shape does not match the k value");let m=Math.floor((o.k+o.blockSize-1)/o.blockSize),b=o.blockSize/8*o.bits,C=a[1];if(!Ke.areEqual(C.dims,[o.n,m,b]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let w=a[2].dims;if(Ke.size(w)!==o.n*m)throw new Error("scales input size error.");if(a.length===4){let E=a[3].dims,x=o.bits>4?o.n*m:o.n*Math.floor((m+1)/2);if(Ke.size(E)!==x)throw new Error("zeroPoints input size error.")}},L4=(a,o)=>{let n=a[0].dims,u=n.length,m=n[u-2],b=o.k,C=o.n,w=n.slice(0,u-2),E=Ke.size(w),x=a[1].dims[2]/4,D=a[0].dataType,B=Nr(o.k),v=Nr(x),F=Nr(C),S=w.concat([m,C]),L=m>1&&C/F%2===0?2:1,Z=Ke.size(S)/F/L,N=64,z=[],K=[E,m,b/B],f=Ke.convertShape(a[1].dims).slice();f.splice(-1,1,x/v),z.push(...JA(K)),z.push(...JA(f)),z.push(...JA(a[2].dims)),a.length===4&&z.push(...JA(Ke.convertShape(a[3].dims)));let k=[E,m,C/F];z.push(...JA(k));let e=d=>{let y=K.length,te=tA("a",a[0].dataType,y,B),T=tA("b",12,f.length,v),O=tA("scales",a[2].dataType,a[2].dims.length),he=[te,T,O],ee=a.length===4?tA("zero_points",12,a[3].dims.length):void 0;ee&&he.push(ee);let Ce=k.length,we=UA("output",a[0].dataType,Ce,F),xe=gs(a[0].dataType),De=(()=>{switch(B){case 1:return`array<${xe}, 8>`;case 2:return`mat4x2<${xe}>`;case 4:return`mat2x4<${xe}>`;default:throw new Error(`${B}-component is not supported.`)}})(),Be=()=>{let ne=` + // reuse a data + var input_offset = ${te.indicesToOffset(`${te.type.indices}(batch, row, word_offset)`)}; + var a_data: ${De}; + for (var j: u32 = 0; j < ${8/B}; j++) { + a_data[j] = ${te.getByOffset("input_offset")}; + input_offset++; + } + `;for(let Ae=0;Ae> 4) & b_mask); + b_quantized_values = ${De}(${Array.from({length:4},(pe,le)=>`${xe}(b_value_lower[${le}]), ${xe}(b_value_upper[${le}])`).join(", ")}); + b_dequantized_values = ${B===1?`${De}(${Array.from({length:8},(pe,le)=>`(b_quantized_values[${le}] - ${ee?`zero_point${Ae}`:"zero_point"}) * scale${Ae}`).join(", ")});`:`(b_quantized_values - ${De}(${Array(8).fill(`${ee?`zero_point${Ae}`:"zero_point"}`).join(",")})) * scale${Ae};`}; + workgroup_shared[local_id.x * ${L} + ${Math.floor(Ae/F)}]${F>1?`[${Ae%F}]`:""} += ${Array.from({length:8/B},(pe,le)=>`${B===1?`a_data[${le}] * b_dequantized_values[${le}]`:`dot(a_data[${le}], b_dequantized_values[${le}])`}`).join(" + ")}; + `;return ne},Oe=()=>{let ne=` + var col_index = col * ${F}; + ${ee?` + 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 = ${xe}(8);`} + `;for(let Ae=0;Ae> 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 = ${ee.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point${Ae} = ${xe}((zero_point_word) & 0xFu);`:""} + col_index += 1;`;return ne},_e=()=>{let ne=`col_index = col * ${F};`;for(let Ae=0;Ae; + var b_value_upper: vec4; + var b_quantized_values: ${De}; + var b_dequantized_values: ${De};`,ne};return` + var workgroup_shared: array<${we.type.value}, ${L*N}>; + ${d.declareVariables(...he,we)} + ${d.mainStart([N,1,1])} + let output_indices = ${we.offsetToIndices(`(global_idx / ${N}) * ${L}`)}; + 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 += ${N}) { + //process one block + var word_offset: u32 = block * ${o.blockSize/B}; + ${Oe()} + for (var word: u32 = 0; word < ${x}; word += ${v}) { + ${_e()} + for (var i: u32 = 0; i < ${v}; i++) { + ${Be()} + word_offset += ${8/B}; + } + } + } + workgroupBarrier(); + + if (local_id.x < ${L}) { + var output_value: ${we.type.value} = ${we.type.value}(0); + var workgroup_shared_offset: u32 = local_id.x; + for (var b: u32 = 0u; b < ${N}u; b++) { + output_value += workgroup_shared[workgroup_shared_offset]; + workgroup_shared_offset += ${L}; + } + ${we.setByIndices(`${we.type.indices}(batch, row, col + local_id.x)`,"output_value")}; + } + }`};return{name:"MatMulNBits",shaderCache:{hint:`${o.blockSize};${o.bits};${B};${v};${F};${L};${N}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:S,dataType:D}],dispatchGroup:{x:Z},programUniforms:z}),getShaderSource:e}},R4=(a,o)=>{let n=a[0].dims,u=n.length,m=n[u-2],b=o.k,C=o.n,w=n.slice(0,u-2),E=Ke.size(w),x=a[1].dims[2]/4,D=a[0].dataType,B=Nr(o.k),v=Nr(x),F=w.concat([m,C]),S=128,L=C%8===0?8:C%4===0?4:1,Z=S/L,N=Z*v*8,z=N/B,K=N/o.blockSize,f=Ke.size(F)/L,k=[],e=[E,m,b/B],d=Ke.convertShape(a[1].dims).slice();d.splice(-1,1,x/v),k.push(...JA(e)),k.push(...JA(d)),k.push(...JA(a[2].dims)),a.length===4&&k.push(...JA(Ke.convertShape(a[3].dims)));let y=[E,m,C];k.push(...JA(y));let te=T=>{let O=e.length,he=tA("a",a[0].dataType,O,B),ee=tA("b",12,d.length,v),Ce=tA("scales",a[2].dataType,a[2].dims.length),we=[he,ee,Ce],xe=a.length===4?tA("zero_points",12,a[3].dims.length):void 0;xe&&we.push(xe);let De=y.length,Be=UA("output",a[0].dataType,De),Oe=gs(a[0].dataType),_e=()=>{switch(B){case 1:return` + let a_data0 = vec4<${Oe}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); + let a_data1 = vec4<${Oe}>(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<${Oe}>(sub_a[word_offset], sub_a[word_offset + 1]); + let a_data1 = vec4<${Oe}>(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(`${B}-component is not supported.`)}};return` + var sub_a: array<${he.type.value}, ${z}>; + var inter_results: array, ${L}>; + ${T.declareVariables(...we,Be)} + ${T.mainStart([Z,L,1])} + let output_indices = ${Be.offsetToIndices(`workgroup_index * ${L}`)}; + 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) / ${K} + 1; + + // Loop over shared dimension. + for (var tile: u32 = 0; tile < num_tiles; tile += 1) { + let a_col_start = tile * ${z}; + // load one tile A data into shared memory. + for (var a_offset = local_idx; a_offset < ${z}; a_offset += ${S}) + { + let a_col = a_col_start + a_offset; + if (a_col < uniforms.a_shape[2]) + { + sub_a[a_offset] = ${he.getByIndices(`${he.type.indices}(batch, row, a_col)`)}; + } else { + sub_a[a_offset] = ${he.type.value}(0); + } + } + workgroupBarrier(); + + // each thread process one block + let b_row = col + local_id.y; + let block = tile * ${K} + local_id.x; + ${xe?` + 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 = ${xe.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point = ${Oe}((zero_point_word) & 0xFu);`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Oe}(8);`} + let scale = ${Ce.getByOffset("b_row * n_blocks_per_col + block")}; + let b_data = ${ee.getByIndices(`${ee.type.indices}(b_row, block, 0)`)}; + var word_offset = local_id.x * ${o.blockSize/B}; + for (var i: u32 = 0; i < ${v}; i++) { + ${_e()} + let b_value = ${v===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<${Oe}>(${Array.from({length:4},(ne,Ae)=>`${Oe}(b_value_lower[${Ae}]), ${Oe}(b_value_upper[${Ae}])`).join(", ")}); + let b_dequantized_values = (b_quantized_values - mat2x4<${Oe}>(${Array(8).fill("zero_point").join(",")})) * scale; + inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(ne,Ae)=>`${`dot(a_data${Ae}, b_dequantized_values[${Ae}])`}`).join(" + ")}; + word_offset += ${8/B}; + } + workgroupBarrier(); + } + + if (local_idx < ${L}) { + var output_value: ${Be.type.value} = ${Be.type.value}(0); + for (var b = 0u; b < ${Z}; b++) { + output_value += inter_results[local_idx][b]; + } + if (col + local_idx < uniforms.output_shape[2]) + { + ${Be.setByIndices(`${Be.type.indices}(batch, row, col + local_idx)`,"output_value")} + } + } + }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${o.blockSize};${B};${v};${Z};${L}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:F,dataType:D}],dispatchGroup:{x:f},programUniforms:k}),getShaderSource:te}},U3=(a,o)=>{N4(a.inputs,o),o.blockSize===32&&a.adapterInfo.isVendor("intel")&&a.adapterInfo.isArchitecture("gen-12lp")?a.compute(R4(a.inputs,o)):a.compute(L4(a.inputs,o))},K3=a=>Yt(a)}),j4,W4,Y4,V4,H4,U4,K4,X4,X3,p6=CA(()=>{st(),pt(),Ct(),j4=a=>{if(!a||a.length<1)throw new Error("Too few inputs");if(a[0].dataType!==1&&a[0].dataType!==10)throw new Error("Input type must be float or float16.");if(a.length>=2){let o=a[0].dims.length*2===a[1].dims[0];if(a.length===4&&(o=a[3].dims[0]*2===a[1].dims[0]),!o)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},W4=(a,o,n)=>{let u="";for(let m=o-1;m>=0;--m)u+=` + k = i32(${a.indicesGet("indices",m)}) - ${KA("uniforms.pads",m,n)}; + if (k < 0) { + break; + } + if (k >= i32(${KA("uniforms.x_shape",m,o)})) { + break; + } + offset += k * i32(${KA("uniforms.x_strides",m,o)}); + `;return` + value = ${a.type.value}(uniforms.constant_value); + for (var i = 0; i < 1; i++) { + var offset = 0; + var k = 0; + ${u} + value = x[offset]; + } + `},Y4=(a,o,n)=>{let u="";for(let m=o-1;m>=0;--m)u+=` + k = i32(${a.indicesGet("indices",m)}) - ${KA("uniforms.pads",m,n)}; + if (k < 0) { + k = -k; + } + { + let _2n_1 = 2 * (i32(${KA("uniforms.x_shape",m,o)}) - 1); + k = k % _2n_1; + if(k >= i32(${KA("uniforms.x_shape",m,o)})) { + k = _2n_1 - k; + } + } + offset += k * i32(${KA("uniforms.x_strides",m,o)}); + `;return` + var offset = 0; + var k = 0; + ${u} + value = x[offset]; + `},V4=(a,o,n)=>{let u="";for(let m=o-1;m>=0;--m)u+=` + k = i32(${a.indicesGet("indices",m)}) - ${KA("uniforms.pads",m,n)}; + if (k < 0) { + k = 0; + } + if (k >= i32(${KA("uniforms.x_shape",m,o)})) { + k = i32(${KA("uniforms.x_shape",m,o)}) - 1; + } + offset += k * i32(${KA("uniforms.x_strides",m,o)}); + `;return` + var offset = 0; + var k = 0; + ${u} + value = x[offset]; + `},H4=(a,o,n)=>{let u="";for(let m=o-1;m>=0;--m)u+=` + k = i32(${a.indicesGet("indices",m)}) - ${KA("uniforms.pads",m,n)}; + if (k < 0) { + k += i32(${KA("uniforms.x_shape",m,o)}]); + } + if (k >= i32(${KA("uniforms.x_shape",m,o)})) { + k -= i32(${KA("uniforms.x_shape",m,o)}); + } + offset += k * i32(${KA("uniforms.x_strides",m,o)}); + `;return` + var offset = 0; + var k = 0; + ${u} + value = x[offset]; + `},U4=(a,o,n)=>{switch(n.mode){case 0:return W4(a,o,n.pads.length);case 1:return Y4(a,o,n.pads.length);case 2:return V4(a,o,n.pads.length);case 3:return H4(a,o,n.pads.length);default:throw new Error("Invalid mode")}},K4=(a,o)=>{let n=Ke.padShape(a[0].dims.slice(),o.pads),u=a[0].dims,m=Ke.size(n),b=[{type:12,data:m},{type:6,data:o.pads}],C=a.length>=3&&a[2].data;o.mode===0&&b.push({type:C?a[2].dataType:1,data:o.value}),b.push(...JA(a[0].dims,n));let w=["rank"],E=x=>{let D=UA("output",a[0].dataType,n.length),B=tA("x",a[0].dataType,u.length),v=B.type.value,F=U4(D,u.length,o),S=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:o.pads.length}];return o.mode===0&&S.push({name:"constant_value",type:C?v:"f32"}),` + ${x.registerUniforms(S).declareVariables(B,D)} + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${D.offsetToIndices("global_idx")}; + + var value = ${v}(0); + ${F} + output[global_idx] = value; + }`};return{name:"Pad",shaderCache:{hint:`${o.mode}${C}`,inputDependencies:w},getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Ke.size(n)/64)},programUniforms:b}),getShaderSource:E}},X4=(a,o)=>{if(a.length>1){let n=a[1].getBigInt64Array(),u=a.length>=3&&a[2].data?a[2].dataType===10?a[2].getUint16Array()[0]:a[2].getFloat32Array()[0]:0,m=a[0].dims.length,b=new Int32Array(2*m).fill(0);if(a.length>=4){let w=a[3].getBigInt64Array();for(let E=0;Eb[Number(E)]=Number(w));let C=[];return b.forEach(w=>C.push(w)),{mode:o.mode,value:u,pads:C}}else return o},X3=(a,o)=>{j4(a.inputs);let n=X4(a.inputs,o);a.compute(K4(a.inputs,n),{inputs:[0]})}}),_o,m2,h2,C2,b2,Z4,J4,I2,w2,Z3,J3,k2,q3,$3,E2,eC,AC,tC,rC,m6=CA(()=>{Ra(),st(),pt(),Ct(),_o=a=>{if(Cr.webgpu.validateInputContent&&(!a||a.length!==1))throw new Error("Pool ops requires 1 input.")},m2=(a,o,n)=>{let u=o.format==="NHWC",m=a.dims.slice();u&&m.splice(1,0,m.pop());let b=Object.hasOwnProperty.call(o,"dilations"),C=o.kernelShape.slice(),w=o.strides.slice(),E=b?o.dilations.slice():[],x=o.pads.slice();z0.adjustPoolAttributes(n,m,C,w,E,x);let D=z0.computePoolOutputShape(n,m,w,E,C,x,o.autoPad),B=Object.assign({},o);b?Object.assign(B,{kernelShape:C,strides:w,pads:x,dilations:E,cacheKey:o.cacheKey}):Object.assign(B,{kernelShape:C,strides:w,pads:x,cacheKey:o.cacheKey});let v=D.slice();return v.push(v.splice(1,1)[0]),[B,u?v:D]},h2=(a,o)=>{let n=o.format==="NHWC",u=Ke.size(a),m=Ke.size(o.kernelShape),b=[{type:12,data:u},{type:12,data:m}],C=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(o.kernelShape.length<=2){let w=o.kernelShape[o.kernelShape.length-1],E=o.strides[o.strides.length-1],x=o.pads[o.pads.length/2-1],D=o.pads[o.pads.length-1],B=!!(x+D);b.push({type:12,data:w},{type:12,data:E},{type:12,data:x},{type:12,data:D}),C.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let v=!1;if(o.kernelShape.length===2){let F=o.kernelShape[o.kernelShape.length-2],S=o.strides[o.strides.length-2],L=o.pads[o.pads.length/2-2],Z=o.pads[o.pads.length-2];v=!!(L+Z),b.push({type:12,data:F},{type:12,data:S},{type:12,data:L},{type:12,data:Z}),C.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[b,C,!0,B,v]}else{if(n)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let w=Ke.computeStrides(o.kernelShape);b.push({type:12,data:w},{type:12,data:o.pads},{type:12,data:o.strides}),C.push({name:"kernelStrides",type:"u32",length:w.length},{name:"pads",type:"u32",length:o.pads.length},{name:"strides",type:"u32",length:o.strides.length});let E=o.pads.reduce((x,D)=>x+D);return[b,C,!!E,!1,!1]}},C2=(a,o,n,u,m,b,C,w,E,x,D,B)=>{let v=m.format==="NHWC",F=o.type.value,S=UA("output",o.type.tensor,u);if(m.kernelShape.length<=2){let L="",Z="",N="",z=n-(v?2:1);if(D?L=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${z}] = indices[${z}] * uniforms.sw - uniforms.pwStart + i; + if (xIndices[${z}] < 0 || xIndices[${z}] + >= uniforms.x_shape[${z}]) { + pad++; + continue; + } + let x_val = x[${o.indicesToOffset("xIndices")}]; + ${b} + }`:L=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${z}] = indices[${z}] * uniforms.sw - uniforms.pwStart + i; + let x_val = x[${o.indicesToOffset("xIndices")}]; + ${b} + }`,m.kernelShape.length===2){let K=n-(v?3:2);B?Z=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${K}] = indices[${K}] * uniforms.sh - uniforms.phStart + j; + if (xIndices[${K}] < 0 || xIndices[${K}] >= uniforms.x_shape[${K}]) { + pad += i32(uniforms.kw); + continue; + } + `:Z=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${K}] = indices[${K}] * uniforms.sh - uniforms.phStart + j; + `,N=` + } + `}return` + ${a.registerUniforms(E).declareVariables(o,S)} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let indices = ${S.offsetToIndices("global_idx")}; + var xIndices = ${S.offsetToIndices("global_idx")}; + + var value = ${F}(${w}); + var pad = 0; + ${Z} + ${L} + ${N} + ${C} + + output[global_idx] = value; + }`}else{if(v)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let L=m.kernelShape.length,Z=m.pads.length,N="";return x?N=` + if (xIndices[j] >= uniforms.x_shape[j]) { + pad++; + isPad = true; + break; + } + } + if (!isPad) { + let x_val = x[${o.indicesToOffset("xIndices")}]; + ${b} + }`:N=` + } + let x_val = x[${o.indicesToOffset("xIndices")}]; + ${b} + `,` + ${a.registerUniforms(E).declareVariables(o,S)} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let indices = ${S.offsetToIndices("global_idx")}; + var xIndices = ${S.offsetToIndices("global_idx")}; + + var offsets: array; + + var value = ${F}(${w}); + var pad = 0; + var isPad = false; + + for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { + var offset = i; + for (var j = 0u; j < ${L-1}u; j++) { + offsets[j] = offset / ${KA("uniforms.kernelStrides","j",L)}; + offset -= offsets[j] * ${KA("uniforms.kernelStrides","j",L)}; + } + offsets[${L-1}] = offset; + + isPad = false; + for (var j = ${n-L}u; j < ${n}u; j++) { + xIndices[j] = indices[j] * ${KA("uniforms.strides",`j - ${n-L}u`,L)} + + offsets[j - ${n-L}u] - ${KA("uniforms.pads","j - 2u",Z)}; + ${N} + } + ${C} + + output[global_idx] = value; + }`}},b2=a=>`${a.format};${a.ceilMode};${a.autoPad};${a.kernelShape.length}`,Z4=a=>`${b2(a)};${a.countIncludePad}`,J4=a=>`${b2(a)};${a.storageOrder};${a.dilations}`,I2=a=>({format:a.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],ceilMode:a.ceil_mode,kernelShape:a.kernel_shape,strides:a.strides,pads:a.pads}),w2=(a,o,n,u)=>{let[m,b]=m2(o,u,n),C=tA("x",o.dataType,o.dims.length),w=C.type.value,E="value += x_val;",x="";m.countIncludePad?x+=`value /= ${w}(uniforms.kernelSize);`:x+=`value /= ${w}(i32(uniforms.kernelSize) - pad);`;let[D,B,v,F,S]=h2(b,m);D.push(...JA(o.dims,b));let L=["rank"];return{name:a,shaderCache:{hint:`${u.cacheKey};${v};${F};${S}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:b,dataType:o.dataType}],dispatchGroup:{x:Math.ceil(Ke.size(b)/64)},programUniforms:D}),getShaderSource:Z=>C2(Z,C,o.dims.length,b.length,m,E,x,0,B,v,F,S)}},Z3=a=>{let o=a.count_include_pad!==0,n=I2(a);if(n.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let u={countIncludePad:o,...n,cacheKey:""};return{...u,cacheKey:Z4(u)}},J3=(a,o)=>{_o(a.inputs),a.compute(w2("AveragePool",a.inputs[0],!1,o))},k2={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},q3=a=>{let o=a.format;return{format:o,...k2,cacheKey:o}},$3=(a,o)=>{_o(a.inputs),a.compute(w2("GlobalAveragePool",a.inputs[0],!0,o))},E2=(a,o,n,u)=>{let[m,b]=m2(o,u,n),C=` + value = max(x_val, value); + `,w="",E=tA("x",o.dataType,o.dims.length),x=["rank"],[D,B,v,F,S]=h2(b,m);return D.push(...JA(o.dims,b)),{name:a,shaderCache:{hint:`${u.cacheKey};${v};${F};${S}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:b,dataType:o.dataType}],dispatchGroup:{x:Math.ceil(Ke.size(b)/64)},programUniforms:D}),getShaderSource:L=>C2(L,E,o.dims.length,b.length,m,C,w,o.dataType===10?-65504:-1e5,B,v,F,S)}},eC=(a,o)=>{_o(a.inputs),a.compute(E2("MaxPool",a.inputs[0],!1,o))},AC=a=>{let o=a.storage_order,n=a.dilations,u=I2(a);if(o!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(u.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let m={storageOrder:o,dilations:n,...u,cacheKey:""};return{...m,cacheKey:J4(m)}},tC=a=>{let o=a.format;return{format:o,...k2,cacheKey:o}},rC=(a,o)=>{_o(a.inputs),a.compute(E2("GlobalMaxPool",a.inputs[0],!0,o))}}),q4,$4,sC,aC,h6=CA(()=>{st(),pt(),Yr(),Ct(),q4=(a,o)=>{if(a.length<2||a.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(a.length===3&&a[1].dims===a[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[0].dataType===6&&a.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(a[1].dims.length!==0&&a[1].dims.length!==1&&a[1].dims.length!==a[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(a.length>2){if(a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[1].dims.length!==a[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!a[1].dims.map((n,u)=>n===a[2].dims[u]).reduce((n,u)=>n&&u,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(o.blockSize>0){if(a[1].dims.length===0||a[1].dims.length===1&&a[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!a[1].dims.map((m,b)=>b===o.axis||m===a[0].dims[b]).reduce((m,b)=>m&&b,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(a[1].dims.length!==a[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let n=a[0].dims[o.axis],u=a[1].dims[o.axis];if(o.blockSizeMath.ceil(n/(u-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},$4=(a,o)=>{let n=Ke.normalizeAxis(o.axis,a[0].dims.length),u=a[0].dataType,m=u===3,b=a[0].dims,C=a[1].dataType,w=Ke.size(b),E=u===3||u===2,x=E?[Math.ceil(Ke.size(a[0].dims)/4)]:a[0].dims,D=a[1].dims,B=a.length>2?a[2]:void 0,v=B?E?[Math.ceil(Ke.size(B.dims)/4)]:B.dims:void 0,F=D.length===0||D.length===1&&D[0]===1,S=F===!1&&D.length===1,L=Nr(w),Z=F&&(!E||L===4),N=Z?L:1,z=Z&&!E?L:1,K=tA("input",E?12:u,x.length,z),f=tA("scale",C,D.length),k=B?tA("zero_point",E?12:u,v.length):void 0,e=UA("output",C,b.length,N),d=[K,f];k&&d.push(k);let y=[x,D];B&&y.push(v);let te=[{type:12,data:w/N},{type:12,data:n},{type:12,data:o.blockSize},...JA(...y,b)],T=O=>{let he=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${O.registerUniforms(he).declareVariables(...d,e)} + ${O.mainStart()} + ${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${e.offsetToIndices("global_idx")}; + + // Set input x + ${E?` + let input = ${K.getByOffset("global_idx / 4")}; + let x_vec = ${m?"unpack4xI8(input)":"unpack4xU8(input)"}; + let x_value = ${N===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${K.getByOffset("global_idx")};`}; + + // Set scale input + ${F?`let scale_value= ${f.getByOffset("0")}`:S?` + let scale_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let scale_value= ${f.getByOffset("scale_index")};`:` + var scale_indices: ${f.type.indices} = output_indices; + let index = ${f.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; + ${f.indicesSet("scale_indices","uniforms.axis","index")}; + let scale_value= ${f.getByIndices("scale_indices")};`}; + + // Set zero-point input + ${k?F?E?` + let zero_point_input = ${k.getByOffset("0")}; + let zero_point_vec = ${m?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${k.getByOffset("0")}`:S?E?` + let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let zero_point_input = ${k.getByOffset("zero_point_index / 4")}; + let zero_point_vec = ${m?"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 = ${k.getByOffset("zero_point_index")};`:E?` + let zero_point_offset = ${f.indicesToOffset("scale_indices")}; + let zero_point_input = ${k.getByOffset("zero_point_offset / 4")}; + let zero_point_vec = ${m?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${k.getByIndices("scale_indices")};`:`let zero_point_value = ${E?m?"i32":"u32":K.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:o.cacheKey,inputDependencies:k?["rank","rank","rank"]:["rank","rank"]},getShaderSource:T,getRunData:()=>({outputs:[{dims:b,dataType:C}],dispatchGroup:{x:Math.ceil(w/N/64),y:1,z:1},programUniforms:te})}},sC=(a,o)=>{q4(a.inputs,o),a.compute($4(a.inputs,o))},aC=a=>Yt({axis:a.axis,blockSize:a.blockSize})}),ep,Ap,nC,C6=CA(()=>{Ra(),st(),Ct(),ep=(a,o,n)=>{let u=a===o,m=ao&&n>0;if(u||m||b)throw new Error("Range these inputs' contents are invalid.")},Ap=(a,o,n,u)=>{let m=Math.abs(Math.ceil((o-a)/n)),b=[m],C=m,w=[{type:12,data:C},{type:u,data:a},{type:u,data:n},...JA(b)],E=x=>{let D=UA("output",u,b.length),B=D.type.value,v=[{name:"outputSize",type:"u32"},{name:"start",type:B},{name:"delta",type:B}];return` + ${x.registerUniforms(v).declareVariables(D)} + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + output[global_idx] = uniforms.start + ${B}(global_idx) * uniforms.delta; + }`};return{name:"Range",shaderCache:{hint:`${u}`},getShaderSource:E,getRunData:()=>({outputs:[{dims:b,dataType:u}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:w})}},nC=a=>{let o=0,n=0,u=0;a.inputs[0].dataType===6?(o=a.inputs[0].getInt32Array()[0],n=a.inputs[1].getInt32Array()[0],u=a.inputs[2].getInt32Array()[0]):a.inputs[0].dataType===1&&(o=a.inputs[0].getFloat32Array()[0],n=a.inputs[1].getFloat32Array()[0],u=a.inputs[2].getFloat32Array()[0]),Cr.webgpu.validateInputContent&&ep(o,n,u),a.compute(Ap(o,n,u,a.inputs[0].dataType),{inputs:[]})}}),tp,M2,v2,rp,iC,oC,b6=CA(()=>{st(),pt(),Yr(),Ct(),tp=(a,o,n,u)=>{if(a!=="none"&&u!=="i32"&&u!=="u32"&&u!=="f32")throw new Error(`Input ${u} is not supported with reduction ${a}.`);let m=`{ + var oldValue = 0; + loop { + let newValueF32 =`,b=`; + let newValue = bitcast(newValueF32); + let res = atomicCompareExchangeWeak(&${o}, oldValue, newValue); + if res.exchanged { + break; + } + oldValue = res.old_value; + } + }`;switch(a){case"none":return`${o}=${n};`;case"add":return u==="i32"||u==="u32"?`atomicAdd(&${o}, bitcast<${u}>(${n}));`:` + ${m}bitcast<${u}>(oldValue) + (${n})${b}`;case"max":return u==="i32"||u==="u32"?`atomicMax(&${o}, bitcast<${u}>(${n}));`:` + ${m}max(bitcast(oldValue), (${n}))${b}`;case"min":return u==="i32"||u==="u32"?`atomicMin(&${o}, bitcast<${u}>(${n}));`:`${m}min(bitcast<${u}>(oldValue), (${n}))${b}`;case"mul":return`${m}(bitcast<${u}>(oldValue) * (${n}))${b}`;default:throw new Error(`Reduction ${a} is not supported.`)}},M2=(a,o)=>`${a===1?` + let element_count_dim = uniforms.output_strides; + let dim_value = uniforms.output_shape;`:` + let element_count_dim = uniforms.output_strides[${o?"i - indices_start":"i"}]; + let dim_value = uniforms.output_shape[${o?"i - indices_start":"i"} + uniforms.last_index_dimension];`} + + 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));`,v2=(a,o,n)=>`for (var i = 0u; i < uniforms.num_updates_elements; i++) { + let value = updates[uniforms.num_updates_elements * ${n?"global_idx":"idx"} + i]; + ${tp(a.reduction,"output[data_offset + i]","value",o)} + }`,rp=(a,o)=>{let n=a[0].dims,u=a[1].dims,m=n,b=1,C=Math.ceil(Ke.size(u)/b),w=u[u.length-1],E=Ke.sizeFromDimension(n,w),x=Ke.sizeFromDimension(u,0)/w,D=[{type:12,data:C},{type:12,data:w},{type:12,data:E},...JA(a[1].dims,a[2].dims,m)],B=v=>{let F=tA("indices",a[1].dataType,a[1].dims.length),S=tA("updates",a[2].dataType,a[2].dims.length,b),L=o.reduction!=="none"&&o.reduction!==""?Om("output",a[0].dataType,m.length):UA("output",a[0].dataType,m.length,b);return` + ${v.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(F,S,L)} + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var hasDuplicates = false; + if (${o.reduction==="none"}) { + for (var i = 0; i < ${x}; i = i + 1) { + for (var j = i + 1; j < ${x}; j = j + 1) { + var index_i = i32(indices[i].x); + var index_j = i32(indices[j].x); + if (index_i == index_j) { + hasDuplicates = true; + break; + } + } + if (hasDuplicates) { + break; + } + } + } + + if (${o.reduction==="none"} && hasDuplicates) { + if (global_idx != 0u) { + return; + } + // Process each index-update pair individually when duplicates exist + for (var idx = 0u; idx < ${x}u; idx++) { + var data_offset = 0u; + for (var i = 0u; i < uniforms.last_index_dimension; i++) { + var index = i32(indices[idx * uniforms.last_index_dimension + i].x); + ${M2(n.length,!1)} + } + ${v2(o,L.type.value,!1)} + } + return; + } + + var data_offset = 0u; + var indices_start = uniforms.last_index_dimension * global_idx; + var indices_end = indices_start + uniforms.last_index_dimension; + for (var i = indices_start; i < indices_end; i++) { + var index = i32(indices[i].x); + ${M2(n.length,!0)} + } + ${v2(o,L.type.value,!0)} + }`};return{name:"ScatterND",shaderCache:{hint:`${o.cacheKey}_${o.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:m,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:D}),getShaderSource:B}},iC=a=>Yt({reduction:a.reduction}),oC=(a,o)=>{a.compute(rp(a.inputs,o),{inputs:[a.inputs[1],a.inputs[2]],outputs:[]})}}),sp,ap,np,x2,ip,op,lp,cp,up,dp,fp,gp,B2,pp,mp,hp,Cp,bp,lC,cC,I6=CA(()=>{st(),pt(),Yr(),Ct(),sp=(a,o)=>{if(a.every(n=>n>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),a.length>0){if(o.mode==="linear"){if(!(a.length===2||a.length===3||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1||a.length===5&&a[0]===1&&a[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(o.mode==="cubic"&&!(a.length===2||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},ap=(a,o,n)=>{o.every(m=>m>=0&&m{throw new Error("Resize requires axes input values to be positive and less than rank")}));let u=new Array(n).fill(1);return o.forEach((m,b)=>u[m]=a[b]),u},np=(a,o,n,u,m,b)=>{let[C,w,E]=n>10?[1,2,3]:[-1,a.length>1?1:-1,-1],x=a[0].dims.length;if(C>0&&a.length>C&&a[C].dims.length>0)a[C].getFloat32Array().forEach(D=>b.push(D));else if(o.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(w>0&&a.length>w&&a[w].dims.length===1&&a[w].dims[0]>0){if(a[w].getFloat32Array().forEach(D=>u.push(D)),u.length!==0&&u.length!==x&&n>=18&&u.length!==o.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");sp(u,o),o.axes.length>0&&ap(u,o.axes,x).forEach((D,B)=>u[B]=D)}if(E>0&&a.length>E&&a[E].dims.length===1&&a[E].dims[0]>0&&(a[E].getBigInt64Array().forEach(D=>m.push(Number(D))),m.length!==0&&m.length!==x&&n>=18&&m.length!==o.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(o.axes.length>0){if(u.length!==0&&u.length!==o.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(m.length!==0&&m.length!==o.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof u<"u"&&typeof m<"u"&&u.length>0&&m.length>x)throw new Error("Resize requires only of scales or sizes to be specified")},x2=(a,o,n,u)=>` + // 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 = (${a}) * (${o}); + let whole = ${u}(big / (${n})); + let fract = ${u}(big % (${n})) / ${u}(${n}); + return whole + fract; +`,ip=(a,o)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, + lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${o} { `+(()=>{switch(a){case"asymmetric":return` + if (xScale < 1.0 || floor(xScale) != xScale) { + return ${o}(xResized) / ${o}(xScale); + } else { + ${x2("xResized","lengthOriginal","lengthResized",o)} + } + `;case"pytorch_half_pixel":return`if (lengthResized > 1) { + return (${o}(xResized) + 0.5) / ${o}(xScale) - 0.5; + } else { + return 0.0; + }`;case"tf_half_pixel_for_nn":return`return (${o}(xResized) + 0.5) / ${o}(xScale);`;case"align_corners":return`if (lengthResized == 1) { + return 0.0; + } else { + ${x2("xResized","lengthOriginal - 1","lengthResized - 1",o)} + }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { + return ${o}(roiStart) * ${o}(lengthOriginal - 1) + + (${o}(xResized) * ${o}(roiEnd - roiStart) * ${o}(lengthOriginal - 1)) / + ${o}(lengthResized - 1); + } else { + return 0.5 * ${o}(roiStart + roiEnd) * ${o}(lengthOriginal - 1); + }`;case"half_pixel_symmetric":return`const outputWidth = ${o}xScale * ${o}(lengthResized); + const adjustment = ${o}(lengthResized) / outputWidth; + const center = ${o}(lengthOriginal) / 2; + const offset = center * (1 - adjustment); + return offset + ((${o}(xResized) + 0.5) / ${o}(xScale)) - 0.5;`;case"half_pixel":return`return ((${o}(xResized) + 0.5) / ${o}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${a} is not supported`)}})()+"}",op=(a,o,n)=>`fn getNearestPixelFromOriginal(xOriginal: ${n}, isDownSample: bool) -> ${n} {`+(()=>{switch(a){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(o<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${a} is not supported`)}})()+"}",lp=(a,o,n)=>{let u=new Array(n).fill(0).concat(new Array(n).fill(1)),m=a.length===0?u:a.slice();return o.length>0?(o.forEach((b,C)=>{u[b]=m[C],u[C+n]=m[o.length+C]}),u):m},cp=(a,o,n,u)=>{let m=[];if(n.length>0)if(u.length>0){if(a.forEach(b=>m.push(b)),Math.max(...u)>a.length)throw new Error("axes is out of bound");u.forEach((b,C)=>m[b]=n[C])}else n.forEach(b=>m.push(b));else{if(o.length===0)throw new Error("Resize requires either scales or sizes.");m=a.map((b,C)=>Math.round(b*o[C]))}return m},up=(a,o,n)=>{let u=(()=>{switch(n.keepAspectRatioPolicy){case"not_larger":return n.axes.length>0?Math.min(...n.axes.map(b=>o[b]),Number.MAX_VALUE):Math.min(...o,Number.MAX_VALUE);case"not_smaller":return n.axes.length>0?Math.max(...n.axes.map(b=>o[b]),Number.MIN_VALUE):Math.max(...o,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${n.keepAspectRatioPolicy} is not supported`)}})();o.fill(1,0,o.length);let m=a.slice();return n.axes.length>0?(n.axes.forEach(b=>o[b]=u),n.axes.forEach(b=>m[b]=Math.round(a[b]*o[b]))):(o.fill(u,0,o.length),m.forEach((b,C)=>m[C]=Math.round(b*o[C]))),m},dp=(a,o,n,u,m)=>` + fn calculateOriginalIndicesFromOutputIndices(output_indices: ${a.type.indices}) -> array<${a.type.value}, ${n.length}> { + var original_indices: array<${a.type.value}, ${n.length}>; + for (var i:u32 = 0; i < ${n.length}; i++) { + var output_index = ${a.indicesGet("output_indices","i")}; + var scale = ${KA("uniforms.scales","i",u)}; + var roi_low = ${KA("uniforms.roi","i",m)}; + var roi_hi = ${KA("uniforms.roi",`i + ${o.length}`,m)}; + if (scale == 1.0) { + original_indices[i] = ${a.type.value}(output_index); + } else { + var input_shape_i = ${KA("uniforms.input_shape","i",o.length)}; + var output_shape_i = ${KA("uniforms.output_shape","i",n.length)}; + original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + } + } + return original_indices; + }`,fp=(a,o,n,u,m,b,C)=>` + fn calculateInputIndicesFromOutputIndices(output_indices: ${o.type.indices}) -> ${a.type.indices} { + var input_indices: ${a.type.indices}; + for (var i:u32 = 0; i < ${u.length}; i++) { + var output_index = ${o.indicesGet("output_indices","i")}; + var input_index: u32; + var scale = ${KA("uniforms.scales","i",m)}; + if (scale == 1.0) { + input_index = output_index; + } else { + var roi_low = ${KA("uniforms.roi","i",b)}; + var roi_hi = ${KA("uniforms.roi",`i + ${n.length}`,b)}; + var input_shape_i = ${KA("uniforms.input_shape","i",n.length)}; + var output_shape_i = ${KA("uniforms.output_shape","i",u.length)}; + var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + if (!${C} || (original_idx >= 0 && original_idx < ${o.type.value}(input_shape_i))) { + if (original_idx < 0) { + input_index = 0; + } else if (original_idx > ${o.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); + } + } + ${a.indicesSet("input_indices","i","input_index")} + } + return input_indices; + }`,gp=(a,o)=>` + fn checkInputIndices(input_indices: ${a.type.indices}) -> bool { + for (var i:u32 = 0; i < ${o.length}; i++) { + var input_index = ${a.indicesGet("input_indices","i")}; + if (input_index < 0 || input_index >= ${KA("uniforms.input_shape","i",o.length)}) { + return false; + } + } + return true; + }`,B2=(a,o,n,u)=>a.rank>u?` + ${a.indicesSet("input_indices",o,"channel")}; + ${a.indicesSet("input_indices",n,"batch")}; +`:"",pp=(a,o,n,u,m)=>{let[b,C,w,E]=n.length===2?[-1,0,1,-1]:[0,2,3,1],x=a.type.value;return` + fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${x} { + var input_indices: ${a.type.indices}; + ${a.indicesSet("input_indices",C,`max(0, min(row, ${n[C]} - 1))`)}; + ${a.indicesSet("input_indices",w,`max(0, min(col, ${n[w]} - 1))`)}; + ${B2(a,E,b,2)} + return ${a.getByIndices("input_indices")}; + } + + fn bilinearInterpolation(output_indices: ${o.type.indices}) -> ${x} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var row:${x} = originalIndices[${C}]; + var col:${x} = originalIndices[${w}]; + ${u?`if (row < 0 || row > (${n[C]} - 1) || col < 0 || col > (${n[w]} - 1)) { + return ${m}; + }`:""}; + row = max(0, min(row, ${n[C]} - 1)); + col = max(0, min(col, ${n[w]} - 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 = ${n.length>2?`u32(originalIndices[${E}])`:"0"}; + var batch: u32 = ${n.length>2?`u32(originalIndices[${b}])`:"0"}; + var x11: ${x} = getInputValue(batch, channel, row1, col1); + var x12: ${x} = getInputValue(batch, channel, row1, col2); + var x21: ${x} = getInputValue(batch, channel, row2, col1); + var x22: ${x} = getInputValue(batch, channel, row2, col2); + var dx1: ${x} = abs(row - ${x}(row1)); + var dx2: ${x} = abs(${x}(row2) - row); + var dy1: ${x} = abs(col - ${x}(col1)); + var dy2: ${x} = abs(${x}(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); + }`},mp=(a,o,n,u,m,b,C,w,E,x)=>{let D=n.length===2,[B,v]=D?[0,1]:[2,3],F=a.type.value,S=L=>{let Z=L===B?"row":"col";return` + fn ${Z}CubicInterpolation(input_indices: ${a.type.indices}, output_indices: ${o.type.indices}) -> ${F} { + var output_index = ${o.indicesGet("output_indices",L)}; + var originalIdx: ${F} = getOriginalCoordinateFromResizedCoordinate(output_index, ${m[L]}, + ${u[L]}, ${n[L]}, ${b[L]}, ${b[L]} + ${n.length}); + var fractOriginalIdx: ${F} = originalIdx - floor(originalIdx); + var coefs = getCubicInterpolationCoefs(fractOriginalIdx); + + if (${w} && (originalIdx < 0 || originalIdx > (${n[L]} - 1))) { + return ${E}; + } + var data: array<${F}, 4> = array<${F}, 4>(0.0, 0.0, 0.0, 0.0); + for (var i: i32 = -1; i < 3; i++) { + var ${Z}: ${F} = originalIdx + ${F}(i); + if (${Z} < 0 || ${Z} >= ${n[L]}) { + ${x?`coefs[i + 1] = 0.0; + continue;`:w?`return ${E};`:`${Z} = max(0, min(${Z}, ${n[L]} - 1));`}; + } + var input_indices_copy: ${a.type.indices} = input_indices; + ${a.indicesSet("input_indices_copy",L,`u32(${Z})`)}; + data[i + 1] = ${L===B?a.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; + } + return cubicInterpolation1D(data, coefs); + }`};return` + ${S(B)}; + ${S(v)}; + fn getCubicInterpolationCoefs(s: ${F}) -> array<${F}, 4> { + var absS = abs(s); + var coeffs: array<${F}, 4> = array<${F}, 4>(0.0, 0.0, 0.0, 0.0); + var oneMinusAbsS: ${F} = 1.0 - absS; + var twoMinusAbsS: ${F} = 2.0 - absS; + var onePlusAbsS: ${F} = 1.0 + absS; + coeffs[0] = ((${C} * onePlusAbsS - 5 * ${C}) * onePlusAbsS + 8 * ${C}) * onePlusAbsS - 4 * ${C}; + coeffs[1] = ((${C} + 2) * absS - (${C} + 3)) * absS * absS + 1; + coeffs[2] = ((${C} + 2) * oneMinusAbsS - (${C} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; + coeffs[3] = ((${C} * twoMinusAbsS - 5 * ${C}) * twoMinusAbsS + 8 * ${C}) * twoMinusAbsS - 4 * ${C}; + return coeffs; + } + + fn cubicInterpolation1D(x: array<${F}, 4>, coefs: array<${F}, 4>) -> ${F} { + var coefsSum: ${F} = 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: ${o.type.indices}) -> ${F} { + var input_indices: ${a.type.indices} = output_indices; + return colCubicInterpolation(input_indices, output_indices); + } + `},hp=(a,o,n,u,m)=>{let[b,C,w,E,x]=n.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],D=a.type.value;return` + fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${D} { + var input_indices: ${a.type.indices}; + ${a.indicesSet("input_indices",C,`max(0, min(depth, ${n[C]} - 1))`)}; + ${a.indicesSet("input_indices",w,`max(0, min(height, ${n[w]} - 1))`)}; + ${a.indicesSet("input_indices",E,`max(0, min(width, ${n[E]} - 1))`)}; + ${B2(a,x,b,3)} + return ${a.getByIndices("input_indices")}; + } + + fn trilinearInterpolation(output_indices: ${o.type.indices}) -> ${D} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var depth:${D} = originalIndices[${C}]; + var height:${D} = originalIndices[${w}]; + var width:${D} = originalIndices[${E}]; + ${u?`if (depth < 0 || depth > (${n[C]} - 1) || height < 0 || height > (${n[w]} - 1) || width < 0 || (width > ${n[E]} - 1)) { + return ${m}; + }`:""}; + + depth = max(0, min(depth, ${n[C]} - 1)); + height = max(0, min(height, ${n[w]} - 1)); + width = max(0, min(width, ${n[E]} - 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 = ${n.length>3?`u32(originalIndices[${x}])`:"0"}; + var batch: u32 = ${n.length>3?`u32(originalIndices[${b}])`:"0"}; + + var x111: ${D} = getInputValue(batch, channel, depth1, height1, width1); + var x112: ${D} = getInputValue(batch, channel, depth1, height1, width2); + var x121: ${D} = getInputValue(batch, channel, depth1, height2, width1); + var x122: ${D} = getInputValue(batch, channel, depth1, height2, width2); + var x211: ${D} = getInputValue(batch, channel, depth2, height1, width1); + var x212: ${D} = getInputValue(batch, channel, depth2, height1, width2); + var x221: ${D} = getInputValue(batch, channel, depth2, height2, width1); + var x222: ${D} = getInputValue(batch, channel, depth2, height2, width2); + var dx1: ${D} = abs(depth - ${D}(depth1)); + var dx2: ${D} = abs(${D}(depth2) - depth); + var dy1: ${D} = abs(height - ${D}(height1)); + var dy2: ${D} = abs(${D}(height2) - height); + var dz1: ${D} = abs(width - ${D}(width1)); + var dz2: ${D} = abs(${D}(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); + }`},Cp=(a,o,n,u,m,b)=>{let C=a.dims,w=lp(b,o.axes,C.length),E=cp(C,u,m,o.axes),x=u.slice();u.length===0&&(x=C.map((z,K)=>z===0?1:E[K]/z),o.keepAspectRatioPolicy!=="stretch"&&(E=up(C,x,o)));let D=UA("output",a.dataType,E.length),B=tA("input",a.dataType,C.length),v=Ke.size(E),F=C.length===E.length&&C.every((z,K)=>z===E[K]),S=o.coordinateTransformMode==="tf_crop_and_resize",L=o.extrapolationValue,Z=B.type.value,N=z=>` + ${F?"":` + ${ip(o.coordinateTransformMode,Z)}; + ${(()=>{switch(o.mode){case"nearest":return` + ${gp(B,C)}; + ${op(o.nearestMode,n,Z)}; + ${fp(B,D,C,E,x.length,w.length,S)}; + `;case"linear":return` + ${dp(D,C,E,x.length,w.length)}; + ${(()=>{if(C.length===2||C.length===4)return`${pp(B,D,C,S,L)}`;if(C.length===3||C.length===5)return`${hp(B,D,C,S,L)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; + `;case"cubic":return` + ${(()=>{if(C.length===2||C.length===4)return`${mp(B,D,C,E,x,w,o.cubicCoeffA,S,o.extrapolationValue,o.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; + `;default:throw Error("Invalid resize mode")}})()}; + `} + ${z.registerUniform("output_size","u32").registerUniform("scales","f32",x.length).registerUniform("roi","f32",w.length).declareVariables(B,D)} + ${z.mainStart()} + ${z.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + ${F?"output[global_idx] = input[global_idx];":` + let output_indices = ${D.offsetToIndices("global_idx")}; + var input_indices: ${B.type.indices}; + ${(()=>{switch(o.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); + if (checkInputIndices(input_indices)) { + output[global_idx] = ${B.getByIndices("input_indices")}; + } else { + output[global_idx] = ${o.extrapolationValue}; + }`;case"linear":return`output[global_idx] = ${C.length===2||C.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${o.mode}`)}})()}; +`} + }`;return{name:"Resize",shaderCache:{hint:`${o.cacheKey}|${n}|${x.length>0?o.mode==="cubic"?x:x.length:""}|${m.length>0?m:""}|${w.length>0?w:""}|${F}|${o.mode==="nearest"?C.length:C}`,inputDependencies:["rank"]},getShaderSource:N,getRunData:()=>({outputs:[{dims:E,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:[{type:12,data:v},{type:1,data:x},{type:1,data:w},...JA(C,E)]})}},bp=a=>{let o=a.customDataBuffer;return new Uint32Array(o,o.byteOffset,1)[0]},lC=(a,o)=>{let n=[],u=[],m=[],b=bp(a);if(o.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");np(a.inputs,o,b,n,u,m),a.compute(Cp(a.inputs[0],o,b,n,u,m),{inputs:[0]})},cC=a=>{let o=a.antialias,n=a.axes,u=a.coordinateTransformMode,m=a.cubicCoeffA,b=a.excludeOutside!==0,C=a.extrapolationValue,w=a.keepAspectRatioPolicy,E=a.mode,x=a.nearestMode===""?"simple":a.nearestMode;return Yt({antialias:o,axes:n,coordinateTransformMode:u,cubicCoeffA:m,excludeOutside:b,extrapolationValue:C,keepAspectRatioPolicy:w,mode:E,nearestMode:x})}}),Ip,wp,uC,w6=CA(()=>{st(),pt(),Ct(),Ip=a=>{if(!a||a.length<3)throw new Error("layerNorm requires at least 3 inputs.");let o=a[0],n=a[1],u=a[2];if(o.dataType!==n.dataType||o.dataType!==u.dataType)throw new Error("All inputs must have the same data type");if(o.dims.length!==3&&o.dims.length!==2)throw new Error("Input must be 2D or 3D");if(n.dims.length!==3&&n.dims.length!==2)throw new Error("Skip must be 2D or 3D");let m=o.dims[o.dims.length-1],b=o.dims[o.dims.length-2];if(n.dims[n.dims.length-1]!==m)throw new Error("Skip must have the same hidden size as input");if(n.dims[n.dims.length-2]!==b)throw new Error("Skip must have the same sequence length as input");if(u.dims.length!==1)throw new Error("Gamma must be 1D");if(u.dims[u.dims.length-1]!==m)throw new Error("Gamma must have the same hidden size as input");if(a.length>3){let C=a[3];if(C.dims.length!==1)throw new Error("Beta must be 1D");if(C.dims[C.dims.length-1]!==m)throw new Error("Beta must have the same hidden size as input")}if(a.length>4){let C=a[4];if(C.dims.length!==1)throw new Error("Bias must be 1D");if(C.dims[C.dims.length-1]!==m)throw new Error("Bias must have the same hidden size as input")}},wp=(a,o,n,u)=>{let m=o.simplified,b=a[0].dims,C=Ke.size(b),w=b,E=C,x=b.slice(-1)[0],D=u?b.slice(0,-1).concat(1):[],B=!m&&a.length>3,v=a.length>4,F=u&&n>1,S=u&&n>2,L=n>3,Z=64,N=Nr(x),z=[{type:12,data:E},{type:12,data:N},{type:12,data:x},{type:1,data:o.epsilon}],K=k=>{let e=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],d=[tA("x",a[0].dataType,a[0].dims,N),tA("skip",a[1].dataType,a[1].dims,N),tA("gamma",a[2].dataType,a[2].dims,N)];B&&d.push(tA("beta",a[3].dataType,a[3].dims,N)),v&&d.push(tA("bias",a[4].dataType,a[4].dims,N)),d.push(UA("output",a[0].dataType,w,N)),F&&d.push(UA("mean_output",1,D)),S&&d.push(UA("inv_std_output",1,D)),L&&d.push(UA("input_skip_bias_sum",a[0].dataType,w,N));let y=gs(a[0].dataType),te=gs(1,N);return` + + ${k.registerUniforms(e).declareVariables(...d)} + var sum_shared : array<${te}, ${Z}>; + var sum_squared_shared : array<${te}, ${Z}>; + + ${k.mainStart([Z,1,1])} + let ix = local_id.x; + let iy = global_id.x / ${Z}; + + let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; + var stride = hidden_size_vectorized / ${Z}; + let offset = ix * stride + iy * hidden_size_vectorized; + let offset1d = stride * ix; + if (ix == ${Z-1}) { + stride = hidden_size_vectorized - stride * ix; + } + for (var i: u32 = 0; i < stride; i++) { + let skip_value = skip[offset + i]; + let bias_value = ${v?"bias[offset1d + i]":y+"(0.0)"}; + let input_value = x[offset + i]; + let value = input_value + skip_value + bias_value; + ${L?"input_skip_bias_sum[offset + i] = value;":""} + output[offset + i] = value; + let f32_value = ${ao(y,N,"value")}; + sum_shared[ix] += f32_value; + sum_squared_shared[ix] += f32_value * f32_value; + } + workgroupBarrier(); + + var reduce_size : u32 = ${Z}; + 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 = ${Jn("sum",N)} / f32(uniforms.hidden_size); + let inv_std_dev = inverseSqrt(${Jn("square_sum",N)} / f32(uniforms.hidden_size) ${m?"":"- mean * mean"} + uniforms.epsilon); + ${F?"mean_output[global_idx] = mean;":""} + ${S?"inv_std_output[global_idx] = inv_std_dev;":""} + + for (var i: u32 = 0; i < stride; i++) { + output[offset + i] = (output[offset + i] ${m?"":`- ${y}(mean)`}) * + ${y}(inv_std_dev) * gamma[offset1d + i] + ${B?"+ beta[offset1d + i]":""}; + } + }`},f=[{dims:w,dataType:a[0].dataType}];return n>1&&f.push({dims:D,dataType:1}),n>2&&f.push({dims:D,dataType:1}),n>3&&f.push({dims:b,dataType:a[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${N};${F};${S};${L}`,inputDependencies:a.map((k,e)=>"type")},getShaderSource:K,getRunData:()=>({outputs:f,dispatchGroup:{x:Math.ceil(E/x)},programUniforms:z})}},uC=(a,o)=>{Ip(a.inputs);let n=[0];a.outputCount>1&&n.push(-3),a.outputCount>2&&n.push(-3),a.outputCount>3&&n.push(3),a.compute(wp(a.inputs,o,a.outputCount,!1),{outputs:n})}}),kp,zo,Ep,y2,Mp,vp,dC,fC,k6=CA(()=>{st(),pt(),Yr(),Ct(),kp=(a,o)=>{if(!a||a.length<1)throw new Error("too few inputs");if(o.axes.length!==0){if(o.axes.length!==o.starts.length||o.axes.length!==o.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(o.starts.length!==o.ends.length)throw new Error("starts and ends must have the same length");a.slice(1).forEach((n,u)=>{if(a[u+1].dataType!==6&&a[u+1].dataType!==7)throw new Error(`Input ${u} must be an array of int32 or int64`)})},zo=(a,o)=>{let n=[];if(a.length>o)if(a[o].dataType===7)a[o].getBigInt64Array().forEach(u=>n.push(Number(u)));else if(a[o].dataType===6)a[o].getInt32Array().forEach(u=>n.push(Number(u)));else throw new Error(`Input ${o} must be an array of int32 or int64`);return n},Ep=(a,o)=>{if(a.length>1){let n=zo(a,1),u=zo(a,2),m=zo(a,3);return m.length===0&&(m=[...Array(a[0].dims.length).keys()]),Yt({starts:n,ends:u,axes:m})}else return o},y2=(a,o,n,u,m)=>{let b=a;return a<0&&(b+=n[u[o]]),m[o]<0?Math.max(0,Math.min(b,n[u[o]]-1)):Math.max(0,Math.min(b,n[u[o]]))},Mp=(a,o,n)=>`fn calculateInputIndices(output_indices: ${o.type.indices}) -> ${a.type.indices} { + var input_indices: ${a.type.indices}; + var carry = 0u; + for (var i = ${n.length}; i >= 0; i--) { + let input_shape_i = ${KA("uniforms.input_shape","i",n.length)}; + let steps_i = ${KA("uniforms.steps","i",n.length)}; + let signs_i = ${KA("uniforms.signs","i",n.length)}; + let starts_i = ${KA("uniforms.starts","i",n.length)}; + var output_index = ${o.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; + } + ${a.indicesSet("input_indices","i","input_index")}; + } + return input_indices; + }`,vp=(a,o)=>{let n=a[0].dims,u=Ke.size(n),m=o.axes.length>0?Ke.normalizeAxes(o.axes,n.length):[...Array(n.length).keys()],b=zo(a,4);b.forEach(N=>N!==0||(()=>{throw new Error("step cannot be 0")})),b.length===0&&(b=Array(m.length).fill(1));let C=o.starts.map((N,z)=>y2(N,z,n,m,b)),w=o.ends.map((N,z)=>y2(N,z,n,m,b));if(m.length!==C.length||m.length!==w.length)throw new Error("start, ends and axes should have the same number of elements");if(m.length!==n.length)for(let N=0;NMath.sign(N));b.forEach((N,z,K)=>{if(N<0){let f=(w[z]-C[z])/N,k=C[z],e=k+f*b[z];C[z]=e,w[z]=k,K[z]=-N}});let x=n.slice(0);m.forEach((N,z)=>{x[N]=Math.ceil((w[N]-C[N])/b[N])});let D={dims:x,dataType:a[0].dataType},B=UA("output",a[0].dataType,x.length),v=tA("input",a[0].dataType,a[0].dims.length),F=Ke.size(x),S=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:C.length},{name:"signs",type:"i32",length:E.length},{name:"steps",type:"u32",length:b.length}],L=[{type:12,data:F},{type:12,data:C},{type:6,data:E},{type:12,data:b},...JA(a[0].dims,x)],Z=N=>` + ${N.registerUniforms(S).declareVariables(v,B)} + ${Mp(v,B,n)} + ${N.mainStart()} + ${N.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let output_indices = ${B.offsetToIndices("global_idx")}; + let input_indices = calculateInputIndices(output_indices); + ${B.setByOffset("global_idx",v.getByIndices("input_indices"))} + }`;return{name:"Slice",shaderCache:{hint:`${E.length}_${C.length}_${b.length}`,inputDependencies:["rank"]},getShaderSource:Z,getRunData:()=>({outputs:[D],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:L})}},dC=(a,o)=>{kp(a.inputs,o);let n=Ep(a.inputs,o);a.compute(vp(a.inputs,n),{inputs:[0]})},fC=a=>{let o=a.starts,n=a.ends,u=a.axes;return Yt({starts:o,ends:n,axes:u})}}),xp,Bp,gC,pC,E6=CA(()=>{st(),pt(),Yr(),qn(),Ct(),xp=a=>{if(!a||a.length!==1)throw new Error("Softmax op requires 1 input.")},Bp=(a,o)=>{let n=a.inputs[0],u=n.dims,m=Ke.size(u),b=u.length,C=Ke.normalizeAxis(o.axis,b),w=Cy),x[C]=b-1,x[b-1]=C,E=a.compute(ca(n,x),{inputs:[n],outputs:[-1]})[0]):E=n;let D=E.dims,B=D[b-1],v=m/B,F=Nr(B),S=B/F,L=64;v===1&&(L=256);let Z=(d,y)=>y===4?`max(max(${d}.x, ${d}.y), max(${d}.z, ${d}.w))`:y===2?`max(${d}.x, ${d}.y)`:y===3?`max(max(${d}.x, ${d}.y), ${d}.z)`:d,N=tA("x",E.dataType,E.dims,F),z=UA("result",E.dataType,E.dims,F),K=N.type.value,f=gs(E.dataType)==="f32"?`var threadMax = ${K}(-3.402823e+38f);`:`var threadMax = ${K}(-65504.0h);`,k=d=>` + var rowMaxShared : ${K}; + var rowSumShared : ${K}; + var threadShared : array<${K}, ${L}>; + + fn getValue(row: i32, col: i32, row_stride: i32) -> ${K} { + let index = row * row_stride + col; + return x[index]; + } + + fn setValue(row: i32, col: i32, row_stride: i32, value: ${K}) { + let index = row * row_stride + col; + result[index] = value; + } + ${d.registerUniform("packedCols","i32").declareVariables(N,z)} + ${d.mainStart(L)} + let gindex = i32(global_idx); + let lindex = i32(local_idx); + const wg = ${L}; + let row = gindex / wg; + let cols = uniforms.packedCols; + let row_stride : i32 = uniforms.packedCols; + + // find the rows max + ${f} + 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 = ${K}(${Z("threadShared[0]",F)}); + } + workgroupBarrier(); + + // find the rows sum + var threadSum = ${K}(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 = ${K}(${Jn("threadShared[0]",F)}); + } + 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=a.compute({name:"Softmax",shaderCache:{hint:`${F};${L}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:D,dataType:E.dataType}],dispatchGroup:{x:v},programUniforms:[{type:6,data:S}]}),getShaderSource:k},{inputs:[E],outputs:[w?-1:0]})[0];w&&a.compute(ca(e,x),{inputs:[e]})},gC=(a,o)=>{xp(a.inputs),Bp(a,o)},pC=a=>Yt({axis:a.axis})}),D2,yp,Dp,Tp,mC,M6=CA(()=>{st(),pt(),Ct(),D2=a=>Array.from(a.getBigInt64Array(),Number),yp=a=>{if(!a||a.length!==2)throw new Error("Tile requires 2 inputs.");if(a[0].dataType!==1&&a[0].dataType!==10&&a[0].dataType!==6&&a[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(a[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(a[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(D2(a[1]).length!==a[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Dp=(a,o)=>{let n=[];for(let u=0;u{let n=a[0].dims,u=o??D2(a[1]),m=Dp(n,u),b=Ke.size(m),C=a[0].dataType,w=tA("input",C,n.length),E=UA("output",C,m.length),x=D=>` + const inputShape = ${w.indices(...n)}; + ${D.registerUniform("output_size","u32").declareVariables(w,E)} + ${D.mainStart()} + ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${E.offsetToIndices("global_idx")}; + var input_indices: ${w.type.indices}; + for (var i = 0; i < ${n.length}; i++) { + let input_dim_i = ${w.indicesGet("uniforms.input_shape","i")}; + let input_dim_value = ${E.indicesGet("output_indices","i")} % input_dim_i; + + ${w.indicesSet("input_indices","i","input_dim_value")} + } + ${E.setByOffset("global_idx",w.getByIndices("input_indices"))} + }`;return{name:"Tile",shaderCache:{hint:`${u}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:m,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(b/64)},programUniforms:[{type:12,data:b},...JA(a[0].dims,m)]}),getShaderSource:x}},mC=a=>{yp(a.inputs),a.compute(Tp(a.inputs),{inputs:[0]})}}),Pp,Gp,hC,v6=CA(()=>{st(),pt(),Ct(),Pp=(a,o,n,u,m)=>{let b=UA("output_data",m,n.length,4),C=tA("a_data",o[1].dataType,o[1].dims.length,4),w=tA("b_data",o[2].dataType,o[2].dims.length,4),E=tA("c_data",o[0].dataType,o[0].dims.length,4),x,D=(B,v,F)=>`select(${v}, ${B}, ${F})`;if(!u)x=b.setByOffset("global_idx",D(C.getByOffset("global_idx"),w.getByOffset("global_idx"),E.getByOffset("global_idx")));else{let B=(v,F,S="")=>{let L=`a_data[index_a${F}][component_a${F}]`,Z=`b_data[index_b${F}][component_b${F}]`,N=`bool(c_data[index_c${F}] & (0xffu << (component_c${F} * 8)))`;return` + let output_indices${F} = ${b.offsetToIndices(`global_idx * 4u + ${F}u`)}; + let offset_a${F} = ${C.broadcastedIndicesToOffset(`output_indices${F}`,b)}; + let offset_b${F} = ${w.broadcastedIndicesToOffset(`output_indices${F}`,b)}; + let offset_c${F} = ${E.broadcastedIndicesToOffset(`output_indices${F}`,b)}; + let index_a${F} = offset_a${F} / 4u; + let index_b${F} = offset_b${F} / 4u; + let index_c${F} = offset_c${F} / 4u; + let component_a${F} = offset_a${F} % 4u; + let component_b${F} = offset_b${F} % 4u; + let component_c${F} = offset_c${F} % 4u; + ${v}[${F}] = ${S}(${D(L,Z,N)}); + `};m===9?x=` + var data = vec4(0); + ${B("data",0,"u32")} + ${B("data",1,"u32")} + ${B("data",2,"u32")} + ${B("data",3,"u32")} + output_data[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:x=` + ${B("output_data[global_idx]",0)} + ${B("output_data[global_idx]",1)} + ${B("output_data[global_idx]",2)} + ${B("output_data[global_idx]",3)} + `}return` + ${a.registerUniform("vec_size","u32").declareVariables(E,C,w,b)} + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${x} + }`},Gp=a=>{let o=a[1].dims,n=a[2].dims,u=a[0].dims,m=a[1].dataType,b=!(Ke.areEqual(o,n)&&Ke.areEqual(n,u)),C=o,w=Ke.size(o);if(b){let x=co.calcShape(co.calcShape(o,n,!1),u,!1);if(!x)throw new Error("Can't perform where op on the given tensors");C=x,w=Ke.size(C)}let E=Math.ceil(w/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:x=>Pp(x,a,C,b,m),getRunData:()=>({outputs:[{dims:C,dataType:m}],dispatchGroup:{x:Math.ceil(w/64/4)},programUniforms:[{type:12,data:E},...JA(u,o,n,C)]})}},hC=a=>{a.compute(Gp(a.inputs))}}),CC,x6=CA(()=>{LI(),Ec(),RI(),jI(),WI(),YI(),VI(),ZI(),qI(),$I(),e6(),A6(),t6(),r6(),s6(),a6(),n6(),i6(),o6(),l6(),c6(),u6(),d6(),f6(),g6(),_3(),p6(),m6(),h6(),C6(),b6(),kc(),I6(),j3(),w6(),k6(),E6(),L3(),M6(),qn(),Mc(),v6(),CC=new Map([["Abs",[uh]],["Acos",[dh]],["Acosh",[fh]],["Add",[Uh]],["ArgMax",[ih,Z2]],["ArgMin",[nh,Z2]],["Asin",[gh]],["Asinh",[ph]],["Atan",[mh]],["Atanh",[hh]],["Attention",[oh]],["AveragePool",[J3,Z3]],["BatchNormalization",[lh]],["BiasAdd",[ch]],["BiasSplitGelu",[Hh]],["Cast",[bh,Ch]],["Ceil",[wh]],["Clip",[Ih]],["Concat",[r3,s3]],["Conv",[tc,Ac]],["ConvTranspose",[g3,f3]],["Cos",[kh]],["Cosh",[Eh]],["CumSum",[p3,m3]],["DepthToSpace",[h3,C3]],["DequantizeLinear",[sC,aC]],["Div",[Kh]],["Einsum",[b3,I3]],["Elu",[Mh,Yo]],["Equal",[Xh]],["Erf",[vh]],["Exp",[xh]],["Expand",[w3]],["FastGelu",[k3]],["Floor",[Bh]],["FusedConv",[tc,Ac]],["Gather",[M3,E3]],["GatherElements",[T3,D3]],["GatherBlockQuantized",[B3,y3]],["GatherND",[v3,x3]],["Gelu",[yh]],["Gemm",[G3,P3]],["GlobalAveragePool",[$3,q3]],["GlobalMaxPool",[rC,tC]],["Greater",[$h]],["GreaterOrEqual",[A3]],["GridSample",[Q3,F3]],["GroupQueryAttention",[W3]],["HardSigmoid",[Oh,Sh]],["InstanceNormalization",[Y3]],["LayerNormalization",[V3]],["LeakyRelu",[Dh,Yo]],["Less",[e3]],["LessOrEqual",[t3]],["Log",[Yh]],["MatMul",[H3]],["MatMulNBits",[U3,K3]],["MaxPool",[eC,AC]],["Mul",[Zh]],["MultiHeadAttention",[O3,S3]],["Neg",[Ph]],["Not",[Th]],["Pad",[X3]],["Pow",[Jh]],["QuickGelu",[Vh,Yo]],["Range",[nC]],["Reciprocal",[Gh]],["ReduceMin",[Ah]],["ReduceMean",[Zm]],["ReduceMax",[eh]],["ReduceSum",[rh]],["ReduceProd",[th]],["ReduceL1",[Jm]],["ReduceL2",[qm]],["ReduceLogSum",[ah]],["ReduceLogSumExp",[$m]],["ReduceSumSquare",[sh]],["Relu",[Qh]],["Resize",[lC,cC]],["RotaryEmbedding",[R3]],["ScatterND",[oC,iC]],["Sigmoid",[Fh]],["Sin",[_h]],["Sinh",[zh]],["Slice",[dC,fC]],["SkipLayerNormalization",[uC]],["Split",[z3,N3]],["Sqrt",[Nh]],["Softmax",[gC,pC]],["Sub",[qh]],["Tan",[Lh]],["Tanh",[Rh]],["ThresholdedRelu",[Wh,Yo]],["Tile",[mC]],["Transpose",[zm,Nm]],["Where",[hC]]])}),bC,B6=CA(()=>{Ra(),yn(),Ct(),bC=class{constructor(a){this.backend=a,this.repo=new Map,this.attributesBound=!1}getArtifact(a){return this.repo.get(a)}setArtifact(a,o){this.repo.set(a,o)}run(a,o,n,u,m){La(a.programInfo.name);let b=this.backend.device,C=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let w=[];for(let x of o)w.push({binding:w.length,resource:{buffer:x.buffer}});for(let x of n)w.push({binding:w.length,resource:{buffer:x.buffer}});m&&w.push({binding:w.length,resource:m});let E=b.createBindGroup({layout:a.computePipeline.getBindGroupLayout(0),entries:w,label:a.programInfo.name});if(this.backend.sessionStatus==="capturing"){let x={kernelId:this.backend.currentKernelId,computePipeline:a.computePipeline,bindGroup:E,dispatchGroup:u};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(x)}C.setPipeline(a.computePipeline),C.setBindGroup(0,E),C.dispatchWorkgroups(...u),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(),wa(a.programInfo.name)}dispose(){}build(a,o){La(a.name);let n=this.backend.device,u=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(x=>{n.features.has(x.feature)&&u.push(`enable ${x.extension};`)});let m=_m(o,this.backend.device.limits),b=a.getShaderSource(m),C=`${u.join(` +`)} +${m.additionalImplementations} +${b}`,w=n.createShaderModule({code:C,label:a.name});Pt("verbose",()=>`[WebGPU] ${a.name} shader code: ${C}`);let E=n.createComputePipeline({compute:{module:w,entryPoint:"main"},layout:"auto",label:a.name});return wa(a.name),{programInfo:a,computePipeline:E,uniformVariablesInfo:m.variablesInfo}}normalizeDispatchGroupSize(a){let o=typeof a=="number"?a:a.x,n=typeof a=="number"?1:a.y||1,u=typeof a=="number"?1:a.z||1,m=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(o<=m&&n<=m&&u<=m)return[o,n,u];let b=o*n*u,C=Math.ceil(Math.sqrt(b));if(C>m){if(C=Math.ceil(Math.cbrt(b)),C>m)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[C,C,C]}else return[C,C,1]}}}),IC={};po(IC,{WebGpuBackend:()=>wC});var Qp,Fp,Sp,wC,y6=CA(()=>{Ra(),st(),yn(),Gm(),zI(),x6(),B6(),Qp=(a,o)=>{if(o.length!==a.length)throw new Error(`inputDependencies length ${o.length} is not equal to inputTensors length ${a.length}.`);let n=[];for(let u=0;u{let u=a.name;return a.shaderCache?.hint&&(u+="["+a.shaderCache.hint+"]"),u+=":"+n+`:${Qp(o,a.shaderCache?.inputDependencies??new Array(o.length).fill("dims"))}`,u},Sp=class{constructor(a){a&&(this.architecture=a.architecture,this.vendor=a.vendor)}isArchitecture(a){return this.architecture===a}isVendor(a){return this.vendor===a}},wC=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 a=this.kernelCustomData.get(this.currentKernelId);return a||(a={},this.kernelCustomData.set(this.currentKernelId,a)),a}async initialize(a,o){this.env=a;let n=[],u={requiredLimits:{maxComputeWorkgroupStorageSize:o.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:o.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:o.limits.maxStorageBufferBindingSize,maxBufferSize:o.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:o.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:o.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:o.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:o.limits.maxComputeWorkgroupSizeZ},requiredFeatures:n},m=b=>o.features.has(b)&&n.push(b)&&!0;m("chromium-experimental-timestamp-query-inside-passes")||m("timestamp-query"),m("shader-f16"),m("subgroups"),this.device=await o.requestDevice(u),this.adapterInfo=new Sp(o.info||await o.requestAdapterInfo()),this.gpuDataManager=Sm(this),this.programManager=new bC(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Cc(a.logLevel,!!a.debug),this.device.onuncapturederror=b=>{b.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${b.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:o,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 a=this.getCommandEncoder(),o={};this.queryType==="at-passes"&&(o.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=a.beginComputePass(o)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;La(),this.endComputePass();let a;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),a=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(a,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,a,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&a.mapAsync(GPUMapMode.READ).then(()=>{let o=new BigUint64Array(a.getMappedRange()),n=this.pendingQueries.get(a);for(let u=0;u"u"&&(this.queryTimeBase=v);let S=Number(v-this.queryTimeBase),L=Number(F-this.queryTimeBase);if(!Number.isSafeInteger(S)||!Number.isSafeInteger(L))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:D.map(Z=>({dims:Z.dims,dataType:xn(Z.dataType)})),outputsMetadata:B.map(Z=>({dims:Z.dims,dataType:xn(Z.dataType)})),kernelId:b,kernelType:w,kernelName:E,programName:x,startTime:S,endTime:L});else{let Z="";D.forEach((z,K)=>{Z+=`input[${K}]: [${z.dims}] | ${xn(z.dataType)}, `});let N="";B.forEach((z,K)=>{N+=`output[${K}]: [${z.dims}] | ${xn(z.dataType)}, `}),console.log(`[profiling] kernel "${b}|${w}|${E}|${x}" ${Z}${N}execution time: ${L-S} ns`)}Zo("GPU",`${x}::${v}::${F}`)}a.unmap(),this.pendingQueries.delete(a)}),wa()}run(a,o,n,u,m,b){La(a.name);let C=[];for(let z=0;zK):n;if(D.length!==w.length)throw new Error(`Output size ${D.length} must be equal to ${w.length}.`);let B=[],v=[];for(let z=0;z=b)throw new Error(`Invalid output index: ${D[z]}`);if(D[z]===-3)continue;let K=D[z]===-1,f=D[z]===-2,k=K||f?m(w[z].dataType,w[z].dims):u(D[z],w[z].dataType,w[z].dims);if(B.push(k),k.data===0)continue;let e=this.gpuDataManager.get(k.data);if(!e)throw new Error(`no GPU data for output: ${k.data}`);if(K&&this.temporaryData.push(e),f){let d=this.kernelPersistentData.get(this.currentKernelId);d||(d=[],this.kernelPersistentData.set(this.currentKernelId,d)),d.push(e)}v.push(e)}if(C.length!==o.length||v.length!==B.length){if(v.length===0)return wa(a.name),B;throw new Error(`Program ${a.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let F;if(x){let z=0,K=[];x.forEach(d=>{let y=typeof d.data=="number"?[d.data]:d.data;if(y.length===0)return;let te=d.type===10?2:4,T,O;d.type===10?(O=y.length>4?16:y.length>2?8:y.length*te,T=y.length>4?16:te*y.length):(O=y.length<=2?y.length*te:16,T=16),z=Math.ceil(z/O)*O,K.push(z);let he=d.type===10?8:4;z+=y.length>4?Math.ceil(y.length/he)*T:y.length*te});let f=16;z=Math.ceil(z/f)*f;let k=new ArrayBuffer(z);x.forEach((d,y)=>{let te=K[y],T=typeof d.data=="number"?[d.data]:d.data;if(d.type===6)new Int32Array(k,te,T.length).set(T);else if(d.type===12)new Uint32Array(k,te,T.length).set(T);else if(d.type===10)new Uint16Array(k,te,T.length).set(T);else if(d.type===1)new Float32Array(k,te,T.length).set(T);else throw new Error(`Unsupported uniform type: ${xn(d.type)}`)});let e=this.gpuDataManager.create(z,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(e.buffer,0,k,0,z),this.gpuDataManager.release(e.id),F={offset:0,size:z,buffer:e.buffer}}let S=this.programManager.normalizeDispatchGroupSize(E),L=S[1]===1&&S[2]===1,Z=Fp(a,o,L),N=this.programManager.getArtifact(Z);if(N||(N=this.programManager.build(a,S),this.programManager.setArtifact(Z,N),Pt("info",()=>`[artifact] key: ${Z}, programName: ${a.name}`)),x&&N.uniformVariablesInfo){if(x.length!==N.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${N.uniformVariablesInfo.length}, got ${x.length} in program "${N.programInfo.name}".`);for(let z=0;z`[ProgramManager] run "${a.name}" (key=${Z}) with ${S[0]}x${S[1]}x${S[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let z={kernelId:this.currentKernelId,programName:N.programInfo.name,inputTensorViews:o,outputTensorViews:B};this.pendingKernels.push(z),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(z)}return this.programManager.run(N,C,v,S,F),wa(a.name),B}upload(a,o){this.gpuDataManager.upload(a,o)}memcpy(a,o){this.gpuDataManager.memcpy(a,o)}async download(a,o){await this.gpuDataManager.download(a,o)}alloc(a){return this.gpuDataManager.create(a).id}free(a){return this.gpuDataManager.release(a)}createKernel(a,o,n,u){let m=CC.get(a);if(!m)throw new Error(`kernel not implemented: ${a}`);let b={kernelType:a,kernelName:u,kernelEntry:m[0],attributes:[m[1],n]};this.kernels.set(o,b)}releaseKernel(a){let o=this.kernelPersistentData.get(a);if(o){for(let n of o)this.gpuDataManager.release(n.id);this.kernelPersistentData.delete(a)}this.kernelCustomData.delete(a),this.kernels.delete(a)}computeKernel(a,o,n){let u=this.kernels.get(a);if(!u)throw new Error(`kernel not created: ${a}`);let m=u.kernelType,b=u.kernelName,C=u.kernelEntry,w=u.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${m}] ${b}" is not allowed to be called recursively`);this.currentKernelId=a,w[0]&&(w[1]=w[0](w[1]),w[0]=void 0),Pt("info",()=>`[WebGPU] Start to run kernel "[${m}] ${b}"...`);let E=this.env.debug;this.temporaryData=[];try{return E&&this.device.pushErrorScope("validation"),C(o,w[1]),0}catch(x){return n.push(Promise.resolve(`[WebGPU] Kernel "[${m}] ${b}" failed. ${x}`)),1}finally{E&&n.push(this.device.popErrorScope().then(x=>x?`GPU validation error for kernel "[${m}] ${b}": ${x.message}`:null));for(let x of this.temporaryData)this.gpuDataManager.release(x.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(a,o,n,u){let m=this.sessionExternalDataMapping.get(a);m||(m=new Map,this.sessionExternalDataMapping.set(a,m));let b=m.get(o),C=this.gpuDataManager.registerExternalBuffer(n,u,b);return m.set(o,[C,n]),C}unregisterBuffers(a){let o=this.sessionExternalDataMapping.get(a);o&&(o.forEach(n=>this.gpuDataManager.unregisterExternalBuffer(n[0])),this.sessionExternalDataMapping.delete(a))}getBuffer(a){let o=this.gpuDataManager.get(a);if(!o)throw new Error(`no GPU data for buffer: ${a}`);return o.buffer}createDownloader(a,o,n){return async()=>{let u=await U2(this,a,o);return bc(u.buffer,n)}}writeTimestamp(a){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,a)}setQueryType(){this.queryType="none",(this.env.webgpu.profiling?.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(){Pt("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(){Pt("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Pt("info","replay"),this.sessionStatus="replaying";let a=this.capturedCommandList.get(this.currentSessionId),o=this.capturedPendingKernels.get(this.currentSessionId),n=a.length;this.pendingKernels=[];for(let u=0;u=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(a){this.unregisterBuffers(a),this.capturedCommandList.has(a)&&this.capturedCommandList.delete(a),this.capturedPendingKernels.has(a)&&this.capturedPendingKernels.delete(a),this.gpuDataManager.onReleaseSession(a)}onRunStart(a){this.currentSessionId=a,this.setQueryType()}}}),kC={};po(kC,{init:()=>EC});var B0,Op,EC,D6=CA(()=>{st(),yn(),pt(),_I(),B0=class MC{constructor(o,n,u,m){this.module=o,this.dataType=n,this.data=u,this.dims=m}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let o=Ke.size(this.dims);return o===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,o)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let o=Ke.size(this.dims);return o===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,o)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let o=Ke.size(this.dims);return o===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,o)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let o=Ke.size(this.dims);return o===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,o)}reshape(o){if(Ke.size(o)!==Ke.size(this.dims))throw new Error("Invalid new shape");return new MC(this.module,this.dataType,this.data,o)}},Op=class{constructor(a,o,n){this.module=a,this.backend=o,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=o.adapterInfo;let u=a.PTR_SIZE,m=n/a.PTR_SIZE,b=u===4?"i32":"i64";this.opKernelContext=Number(a.getValue(u*m++,b));let C=Number(a.getValue(u*m++,b));this.outputCount=Number(a.getValue(u*m++,b)),this.customDataOffset=Number(a.getValue(u*m++,"*")),this.customDataSize=Number(a.getValue(u*m++,b));let w=[];for(let E=0;Etypeof C=="number"?this.inputs[C]:C)??this.inputs,u=o?.outputs??[],m=(C,w,E)=>new B0(this.module,w,this.output(C,E),E),b=(C,w)=>{let E=xi(C,w);if(!E)throw new Error(`Unsupported data type: ${C}`);let x=E>0?this.backend.gpuDataManager.create(E).id:0;return new B0(this.module,C,x,w)};return this.backend.run(a,n,u,m,b,this.outputCount)}output(a,o){let n=this.module.stackSave();try{let u=this.module.PTR_SIZE,m=u===4?"i32":"i64",b=this.module.stackAlloc((1+o.length)*u);this.module.setValue(b,o.length,m);for(let C=0;C{let m=o.jsepInit;if(!m)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(a==="webgpu"){let b=(y6(),Xo(IC)).WebGpuBackend,C=new b;await C.initialize(n,u),m("webgpu",[C,w=>C.alloc(Number(w)),w=>C.free(w),(w,E,x,D=!1)=>{if(D)Pt("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(w)}, dst=${Number(E)}, size=${Number(x)}`),C.memcpy(Number(w),Number(E));else{Pt("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(w)}, gpuDataId=${Number(E)}, size=${Number(x)}`);let B=o.HEAPU8.subarray(Number(w>>>0),Number(w>>>0)+Number(x));C.upload(Number(E),B)}},async(w,E,x)=>{Pt("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${w}, dataOffset=${E}, size=${x}`),await C.download(Number(w),()=>o.HEAPU8.subarray(Number(E)>>>0,Number(E+x)>>>0))},(w,E,x)=>C.createKernel(w,Number(E),x,o.UTF8ToString(o._JsepGetNodeName(Number(E)))),w=>C.releaseKernel(w),(w,E,x,D)=>{Pt("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${x}, kernel=${w}, contextDataOffset=${E}`);let B=new Op(o,C,Number(E));return C.computeKernel(Number(w),B,D)},()=>C.captureBegin(),()=>C.captureEnd(),()=>C.replay()])}else{let b=new Fm(n);m("webnn",[b,()=>b.reserveTensorId(),C=>b.releaseTensorId(C),async(C,w,E,x,D)=>b.ensureTensor(C,w,E,x,D),(C,w)=>{b.uploadTensor(C,w)},async(C,w)=>b.downloadTensor(C,w)])}}}),_p,Tc,Pc,Kn,zp,T2,j0,Gc,Qc,P2,Fc,Sc,Oc,vC=CA(()=>{FI(),SI(),st(),Qi(),fc(),ym(),_p=(a,o)=>{gr()._OrtInit(a,o)!==0&&rr("Can't initialize onnxruntime.")},Tc=async a=>{_p(a.wasm.numThreads,_0(a.logLevel))},Pc=async(a,o)=>{gr().asyncInit?.();{let n=(D6(),Xo(kC)).init;if(o==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let u=a.webgpu.adapter;if(u){if(typeof u.limits!="object"||typeof u.features!="object"||typeof u.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let m=a.webgpu.powerPreference;if(m!==void 0&&m!=="low-power"&&m!=="high-performance")throw new Error(`Invalid powerPreference setting: "${m}"`);let b=a.webgpu.forceFallbackAdapter;if(b!==void 0&&typeof b!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${b}"`);if(u=await navigator.gpu.requestAdapter({powerPreference:m,forceFallbackAdapter:b}),!u)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await n("webgpu",gr(),a,u)}if(o==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await n("webnn",gr(),a)}}},Kn=new Map,zp=a=>{let o=gr(),n=o.stackSave();try{let u=o.PTR_SIZE,m=o.stackAlloc(2*u);o._OrtGetInputOutputCount(a,m,m+u)!==0&&rr("Can't get session input/output count.");let b=u===4?"i32":"i64";return[Number(o.getValue(m,b)),Number(o.getValue(m+u,b))]}finally{o.stackRestore(n)}},T2=(a,o)=>{let n=gr(),u=n.stackSave(),m=0;try{let b=n.PTR_SIZE,C=n.stackAlloc(2*b);n._OrtGetInputOutputMetadata(a,o,C,C+b)!==0&&rr("Can't get session input/output metadata.");let w=Number(n.getValue(C,"*"));m=Number(n.getValue(C+b,"*"));let E=n.HEAP32[m/4];if(E===0)return[w,0];let x=n.HEAPU32[m/4+1],D=[];for(let B=0;B{let o=gr(),n=o._malloc(a.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);return o.HEAPU8.set(a,n),[n,a.byteLength]},Gc=async(a,o)=>{let n,u,m=gr();Array.isArray(a)?[n,u]=a:a.buffer===m.HEAPU8.buffer?[n,u]=[a.byteOffset,a.byteLength]:[n,u]=j0(a);let b=0,C=0,w=0,E=[],x=[],D=[];try{if([C,E]=await Bm(o),o?.externalData&&m.mountExternalData){let f=[];for(let k of o.externalData){let e=typeof k=="string"?k:k.path;f.push(hc(typeof k=="string"?k:k.data).then(d=>{m.mountExternalData(e,d)}))}await Promise.all(f)}for(let f of o?.executionProviders??[])if((typeof f=="string"?f:f.name)==="webnn"){if(m.shouldTransferToMLTensor=!1,typeof f!="string"){let k=f,e=k?.context,d=k?.gpuDevice,y=k?.deviceType,te=k?.powerPreference;e?m.currentContext=e:d?m.currentContext=await m.webnnCreateMLContext(d):m.currentContext=await m.webnnCreateMLContext({deviceType:y,powerPreference:te})}else m.currentContext=await m.webnnCreateMLContext();break}b=await m._OrtCreateSession(n,u,C),m.webgpuOnCreateSession?.(b),b===0&&rr("Can't create a session."),m.jsepOnCreateSession?.(),m.currentContext&&(m.webnnRegisterMLContext(b,m.currentContext),m.currentContext=void 0,m.shouldTransferToMLTensor=!0);let[B,v]=zp(b),F=!!o?.enableGraphCapture,S=[],L=[],Z=[],N=[],z=[];for(let f=0;ff==="gpu-buffer"||f==="ml-tensor")&&(w=m._OrtCreateBinding(b),w===0&&rr("Can't create IO binding."),K={handle:w,outputPreferredLocations:z,outputPreferredLocationsEncoded:z.map(f=>V2(f))}),Kn.set(b,[b,x,D,K,F,!1]),[b,S,L,Z,N]}catch(B){throw x.forEach(v=>m._OrtFree(v)),D.forEach(v=>m._OrtFree(v)),w!==0&&m._OrtReleaseBinding(w)!==0&&rr("Can't release IO binding."),b!==0&&m._OrtReleaseSession(b)!==0&&rr("Can't release session."),B}finally{m._free(n),C!==0&&m._OrtReleaseSessionOptions(C)!==0&&rr("Can't release session options."),E.forEach(B=>m._free(B)),m.unmountExternalData?.()}},Qc=a=>{let o=gr(),n=Kn.get(a);if(!n)throw new Error(`cannot release session. invalid session id: ${a}`);let[u,m,b,C,w]=n;C&&(w&&o._OrtClearBoundOutputs(C.handle)!==0&&rr("Can't clear bound outputs."),o._OrtReleaseBinding(C.handle)!==0&&rr("Can't release IO binding.")),o.jsepOnReleaseSession?.(a),o.webnnOnReleaseSession?.(a),o.webgpuOnReleaseSession?.(a),m.forEach(E=>o._OrtFree(E)),b.forEach(E=>o._OrtFree(E)),o._OrtReleaseSession(u)!==0&&rr("Can't release session."),Kn.delete(a)},P2=async(a,o,n,u,m,b,C=!1)=>{if(!a){o.push(0);return}let w=gr(),E=w.PTR_SIZE,x=a[0],D=a[1],B=a[3],v=B,F,S;if(x==="string"&&(B==="gpu-buffer"||B==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(C&&B!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${b} when enableGraphCapture is true.`);if(B==="gpu-buffer"){let N=a[2].gpuBuffer;S=xi(ro(x),D);{let z=w.jsepRegisterBuffer;if(!z)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');F=z(u,b,N,S)}}else if(B==="ml-tensor"){let N=a[2].mlTensor;S=xi(ro(x),D);let z=w.webnnRegisterMLTensor;if(!z)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');F=z(u,N,ro(x),D)}else{let N=a[2];if(Array.isArray(N)){S=E*N.length,F=w._malloc(S),n.push(F);for(let z=0;zw.setValue(Z+K*E,z,E===4?"i32":"i64"));let N=w._OrtCreateTensor(ro(x),F,S,Z,D.length,V2(v));N===0&&rr(`Can't create tensor for input/output. session=${u}, index=${b}.`),o.push(N)}finally{w.stackRestore(L)}},Fc=async(a,o,n,u,m,b)=>{let C=gr(),w=C.PTR_SIZE,E=Kn.get(a);if(!E)throw new Error(`cannot run inference. invalid session id: ${a}`);let x=E[0],D=E[1],B=E[2],v=E[3],F=E[4],S=E[5],L=o.length,Z=u.length,N=0,z=[],K=[],f=[],k=[],e=C.stackSave(),d=C.stackAlloc(L*w),y=C.stackAlloc(L*w),te=C.stackAlloc(Z*w),T=C.stackAlloc(Z*w);try{[N,z]=xm(b);for(let ee=0;eeqe*oA,1);Be=xn(ne);let iA=v?.outputPreferredLocations[u[ee]];if(Be==="string"){if(iA==="gpu-buffer"||iA==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let qe=[];for(let oA=0;oA0){let qe=C.jsepGetBuffer;if(!qe)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let oA=qe(Oe),TA=xi(ne,Qe);if(TA===void 0||!pc(Be))throw new Error(`Unsupported data type: ${Be}`);De=!0,he.push([Be,le,{gpuBuffer:oA,download:C.jsepCreateDownloader(oA,TA,Be),dispose:()=>{C._OrtReleaseTensor(Ce)!==0&&rr("Can't release tensor.")}},"gpu-buffer"])}else if(iA==="ml-tensor"&&Qe>0){let qe=C.webnnEnsureTensor,oA=C.webnnIsInt64Supported;if(!qe||!oA)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(xi(ne,Qe)===void 0||!mc(Be))throw new Error(`Unsupported data type: ${Be}`);if(Be==="int64"&&!oA(a))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let TA=await qe(a,Oe,ne,le,!1);De=!0,he.push([Be,le,{mlTensor:TA,download:C.webnnCreateMLTensorDownloader(Oe,Be),dispose:()=>{C.webnnReleaseTensorId(Oe),C._OrtReleaseTensor(Ce)}},"ml-tensor"])}else{let qe=gc(Be),oA=new qe(Qe);new Uint8Array(oA.buffer,oA.byteOffset,oA.byteLength).set(C.HEAPU8.subarray(Oe,Oe+oA.byteLength)),he.push([Be,le,oA,"cpu"])}}finally{C.stackRestore(we),Be==="string"&&Oe&&C._free(Oe),De||C._OrtReleaseTensor(Ce),C.webnnOnRunEnd?.(x)}}return v&&!F&&(C._OrtClearBoundOutputs(v.handle)!==0&&rr("Can't clear bound outputs."),Kn.set(a,[x,D,B,v,F,!1])),he}finally{C.stackRestore(e),K.forEach(O=>C._OrtReleaseTensor(O)),f.forEach(O=>C._OrtReleaseTensor(O)),k.forEach(O=>C._free(O)),N!==0&&C._OrtReleaseRunOptions(N),z.forEach(O=>C._free(O))}},Sc=a=>{let o=gr(),n=Kn.get(a);if(!n)throw new Error("invalid session id");let u=n[0],m=o._OrtEndProfiling(u);m===0&&rr("Can't get an profile file name."),o._OrtFree(m)},Oc=a=>{let o=[];for(let n of a){let u=n[2];!Array.isArray(u)&&"buffer"in u&&o.push(u.buffer)}return o}}),Xn,Ca,Ao,No,Lo,y0,G2,D0,wi,ki,Np,xC,BC,yC,DC,TC,PC,GC,QC=CA(()=>{Ra(),vC(),Qi(),uc(),Xn=()=>!!Cr.wasm.proxy&&typeof document<"u",Ao=!1,No=!1,Lo=!1,D0=new Map,wi=(a,o)=>{let n=D0.get(a);n?n.push(o):D0.set(a,[o])},ki=()=>{if(Ao||!No||Lo||!Ca)throw new Error("worker not ready")},Np=a=>{switch(a.data.type){case"init-wasm":Ao=!1,a.data.err?(Lo=!0,G2[1](a.data.err)):(No=!0,G2[0]()),y0&&(URL.revokeObjectURL(y0),y0=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let o=D0.get(a.data.type);a.data.err?o.shift()[1](a.data.err):o.shift()[0](a.data.out);break}}},xC=async()=>{if(!No){if(Ao)throw new Error("multiple calls to 'initWasm()' detected.");if(Lo)throw new Error("previous call to 'initWasm()' failed.");if(Ao=!0,Xn())return new Promise((a,o)=>{Ca?.terminate(),Mm().then(([n,u])=>{try{Ca=u,Ca.onerror=b=>o(b),Ca.onmessage=Np,G2=[a,o];let m={type:"init-wasm",in:Cr};!m.in.wasm.wasmPaths&&(n||Y2)&&(m.in.wasm.wasmPaths={wasm:new URL("/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm",import.meta.url).href}),Ca.postMessage(m),y0=n}catch(m){o(m)}},o)});try{await dc(Cr.wasm),await Tc(Cr),No=!0}catch(a){throw Lo=!0,a}finally{Ao=!1}}},BC=async a=>{if(Xn())return ki(),new Promise((o,n)=>{wi("init-ep",[o,n]);let u={type:"init-ep",in:{epName:a,env:Cr}};Ca.postMessage(u)});await Pc(Cr,a)},yC=async a=>Xn()?(ki(),new Promise((o,n)=>{wi("copy-from",[o,n]);let u={type:"copy-from",in:{buffer:a}};Ca.postMessage(u,[a.buffer])})):j0(a),DC=async(a,o)=>{if(Xn()){if(o?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return ki(),new Promise((n,u)=>{wi("create",[n,u]);let m={type:"create",in:{model:a,options:{...o}}},b=[];a instanceof Uint8Array&&b.push(a.buffer),Ca.postMessage(m,b)})}else return Gc(a,o)},TC=async a=>{if(Xn())return ki(),new Promise((o,n)=>{wi("release",[o,n]);let u={type:"release",in:a};Ca.postMessage(u)});Qc(a)},PC=async(a,o,n,u,m,b)=>{if(Xn()){if(n.some(C=>C[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(m.some(C=>C))throw new Error("pre-allocated output tensor is not supported for proxy.");return ki(),new Promise((C,w)=>{wi("run",[C,w]);let E=n,x={type:"run",in:{sessionId:a,inputIndices:o,inputs:E,outputIndices:u,options:b}};Ca.postMessage(x,Oc(E))})}else return Fc(a,o,n,u,m,b)},GC=async a=>{if(Xn())return ki(),new Promise((o,n)=>{wi("end-profiling",[o,n]);let u={type:"end-profiling",in:a};Ca.postMessage(u)});Sc(a)}}),Q2,Lp,FC,T6=CA(()=>{Ra(),QC(),st(),cc(),ym(),Q2=(a,o)=>{switch(a.location){case"cpu":return[a.type,a.dims,a.data,"cpu"];case"gpu-buffer":return[a.type,a.dims,{gpuBuffer:a.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[a.type,a.dims,{mlTensor:a.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${a.location} for ${o()}`)}},Lp=a=>{switch(a[3]){case"cpu":return new za(a[0],a[2],a[1]);case"gpu-buffer":{let o=a[0];if(!pc(o))throw new Error(`not supported data type: ${o} for deserializing GPU tensor`);let{gpuBuffer:n,download:u,dispose:m}=a[2];return za.fromGpuBuffer(n,{dataType:o,dims:a[1],download:u,dispose:m})}case"ml-tensor":{let o=a[0];if(!mc(o))throw new Error(`not supported data type: ${o} for deserializing MLTensor tensor`);let{mlTensor:n,download:u,dispose:m}=a[2];return za.fromMLTensor(n,{dataType:o,dims:a[1],download:u,dispose:m})}default:throw new Error(`invalid data location: ${a[3]}`)}},FC=class{async fetchModelAndCopyToWasmMemory(a){return yC(await hc(a))}async loadModel(a,o){La();let n;typeof a=="string"?n=await this.fetchModelAndCopyToWasmMemory(a):n=a,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await DC(n,o),wa()}async dispose(){return TC(this.sessionId)}async run(a,o,n){La();let u=[],m=[];Object.entries(a).forEach(B=>{let v=B[0],F=B[1],S=this.inputNames.indexOf(v);if(S===-1)throw new Error(`invalid input '${v}'`);u.push(F),m.push(S)});let b=[],C=[];Object.entries(o).forEach(B=>{let v=B[0],F=B[1],S=this.outputNames.indexOf(v);if(S===-1)throw new Error(`invalid output '${v}'`);b.push(F),C.push(S)});let w=u.map((B,v)=>Q2(B,()=>`input "${this.inputNames[m[v]]}"`)),E=b.map((B,v)=>B?Q2(B,()=>`output "${this.outputNames[C[v]]}"`):null),x=await PC(this.sessionId,m,w,C,E,n),D={};for(let B=0;Bac,initializeFlags:()=>sc,wasmBackend:()=>OC});var sc,ac,OC,P6=CA(()=>{Ra(),QC(),T6(),sc=()=>{(typeof Cr.wasm.initTimeout!="number"||Cr.wasm.initTimeout<0)&&(Cr.wasm.initTimeout=0);let a=Cr.wasm.simd;if(typeof a!="boolean"&&a!==void 0&&a!=="fixed"&&a!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${a}". Reset it to \`false\` and ignore SIMD feature checking.`),Cr.wasm.simd=!1),typeof Cr.wasm.proxy!="boolean"&&(Cr.wasm.proxy=!1),typeof Cr.wasm.trace!="boolean"&&(Cr.wasm.trace=!1),typeof Cr.wasm.numThreads!="number"||!Number.isInteger(Cr.wasm.numThreads)||Cr.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Cr.wasm.numThreads=1;else{let o=typeof navigator>"u"?hI("node:os").cpus().length:navigator.hardwareConcurrency;Cr.wasm.numThreads=Math.min(4,Math.ceil((o||1)/2))}},ac=class{async init(a){sc(),await xC(),await BC(a)}async createInferenceSessionHandler(a,o){let n=new FC;return await n.loadModel(a,o),n}},OC=new ac});Ra();Ra();Ra();var G6="1.22.0-dev.20250409-89f8206ba4",Q6=Cm;{let a=(P6(),Xo(SC)).wasmBackend;Bi("webgpu",a,5),Bi("webnn",a,5),Bi("cpu",a,10),Bi("wasm",a,10)}Object.defineProperty(Cr.versions,"web",{value:G6,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 F6=Object.freeze({__proto__:null,get InferenceSession(){return lc},get TRACE(){return Zo},get TRACE_FUNC_BEGIN(){return La},get TRACE_FUNC_END(){return wa},get Tensor(){return za},default:Q6,get env(){return Cr},get registerBackend(){return Bi}}),F2={},S6={"onnxruntime-common":a=>{a.exports=fI},"onnxruntime-web":a=>{a.exports=F6},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(a,o,n)=>{n.r(o),n.d(o,{Environment:()=>pA,Interpreter:()=>PA,Template:()=>js,parse:()=>iA,tokenize:()=>D});var u=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",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",Comment:"Comment"}),m=class{constructor(U,Ee){this.value=U,this.type=Ee}};function b(U){return/\w/.test(U)}function C(U){return/[0-9]/.test(U)}var w=[["{%",u.OpenStatement],["%}",u.CloseStatement],["{{",u.OpenExpression],["}}",u.CloseExpression],["(",u.OpenParen],[")",u.CloseParen],["{",u.OpenCurlyBracket],["}",u.CloseCurlyBracket],["[",u.OpenSquareBracket],["]",u.CloseSquareBracket],[",",u.Comma],[".",u.Dot],[":",u.Colon],["|",u.Pipe],["<=",u.ComparisonBinaryOperator],[">=",u.ComparisonBinaryOperator],["==",u.ComparisonBinaryOperator],["!=",u.ComparisonBinaryOperator],["<",u.ComparisonBinaryOperator],[">",u.ComparisonBinaryOperator],["+",u.AdditiveBinaryOperator],["-",u.AdditiveBinaryOperator],["~",u.AdditiveBinaryOperator],["*",u.MultiplicativeBinaryOperator],["/",u.MultiplicativeBinaryOperator],["%",u.MultiplicativeBinaryOperator],["=",u.Equals]],E=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function x(U,Ee={}){return U.endsWith(` +`)&&(U=U.slice(0,-1)),Ee.lstrip_blocks&&(U=U.replace(/^[ \t]*({[#%-])/gm,"$1")),Ee.trim_blocks&&(U=U.replace(/([#%-]})\n/g,"$1")),U.replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{").replace(/-#}\s*/g,"#}").replace(/\s*{#-/g,"{#").replace(/{%\s*(end)?generation\s*%}/gs,"")}function D(U,Ee={}){const ce=[],ke=x(U,Ee);let Me=0,Le=0;const sA=OA=>{let HA="";for(;OA(ke[Me]);){if(ke[Me]==="\\"){if(++Me,Me>=ke.length)throw new SyntaxError("Unexpected end of input");const BA=ke[Me++],gt=E.get(BA);if(gt===void 0)throw new SyntaxError(`Unexpected escaped character: ${BA}`);HA+=gt;continue}if(HA+=ke[Me++],Me>=ke.length)throw new SyntaxError("Unexpected end of input")}return HA};e:for(;Me0){ce.push(new m(BA,u.Text));continue}}if(ke[Me]==="{"&&ke[Me+1]==="#"){Me+=2;let BA="";for(;ke[Me]!=="#"||ke[Me+1]!=="}";){if(Me+2>=ke.length)throw new SyntaxError("Missing end of comment tag");BA+=ke[Me++]}ce.push(new m(BA,u.Comment)),Me+=2;continue}sA(BA=>/\s/.test(BA));const HA=ke[Me];if(HA==="-"||HA==="+"){const BA=ce.at(-1)?.type;if(BA===u.Text||BA===void 0)throw new SyntaxError(`Unexpected character: ${HA}`);switch(BA){case u.Identifier:case u.NumericLiteral:case u.StringLiteral:case u.CloseParen:case u.CloseSquareBracket:break;default:{++Me;const gt=sA(C);ce.push(new m(`${HA}${gt}`,gt.length>0?u.NumericLiteral:u.UnaryOperator));continue}}}for(const[BA,gt]of w){if(BA==="}}"&&Le>0)continue;if(ke.slice(Me,Me+BA.length)===BA){ce.push(new m(BA,gt)),gt===u.OpenExpression?Le=0:gt===u.OpenCurlyBracket?++Le:gt===u.CloseCurlyBracket&&--Le,Me+=BA.length;continue e}}if(HA==="'"||HA==='"'){++Me;const BA=sA(gt=>gt!==HA);ce.push(new m(BA,u.StringLiteral)),++Me;continue}if(C(HA)){let BA=sA(C);if(ke[Me]==="."&&C(ke[Me+1])){++Me;const gt=sA(C);BA=`${BA}.${gt}`}ce.push(new m(BA,u.NumericLiteral));continue}if(b(HA)){const BA=sA(b);ce.push(new m(BA,u.Identifier));continue}throw new SyntaxError(`Unexpected character: ${HA}`)}return ce}var B=class{type="Statement"},v=class extends B{constructor(U){super(),this.body=U}type="Program"},F=class extends B{constructor(U,Ee,ce){super(),this.test=U,this.body=Ee,this.alternate=ce}type="If"},S=class extends B{constructor(U,Ee,ce,ke){super(),this.loopvar=U,this.iterable=Ee,this.body=ce,this.defaultBlock=ke}type="For"},L=class extends B{type="Break"},Z=class extends B{type="Continue"},N=class extends B{constructor(U,Ee,ce){super(),this.assignee=U,this.value=Ee,this.body=ce}type="Set"},z=class extends B{constructor(U,Ee,ce){super(),this.name=U,this.args=Ee,this.body=ce}type="Macro"},K=class extends B{constructor(U){super(),this.value=U}type="Comment"},f=class extends B{type="Expression"},k=class extends f{constructor(U,Ee,ce){super(),this.object=U,this.property=Ee,this.computed=ce}type="MemberExpression"},e=class extends f{constructor(U,Ee){super(),this.callee=U,this.args=Ee}type="CallExpression"},d=class extends f{constructor(U){super(),this.value=U}type="Identifier"},y=class extends f{constructor(U){super(),this.value=U}type="Literal"},te=class extends y{type="IntegerLiteral"},T=class extends y{type="FloatLiteral"},O=class extends y{type="StringLiteral"},he=class extends y{type="ArrayLiteral"},ee=class extends y{type="TupleLiteral"},Ce=class extends y{type="ObjectLiteral"},we=class extends f{constructor(U,Ee,ce){super(),this.operator=U,this.left=Ee,this.right=ce}type="BinaryExpression"},xe=class extends f{constructor(U,Ee){super(),this.operand=U,this.filter=Ee}type="FilterExpression"},De=class extends B{constructor(U,Ee){super(),this.filter=U,this.body=Ee}type="FilterStatement"},Be=class extends f{constructor(U,Ee){super(),this.lhs=U,this.test=Ee}type="SelectExpression"},Oe=class extends f{constructor(U,Ee,ce){super(),this.operand=U,this.negate=Ee,this.test=ce}type="TestExpression"},_e=class extends f{constructor(U,Ee){super(),this.operator=U,this.argument=Ee}type="UnaryExpression"},ne=class extends f{constructor(U=void 0,Ee=void 0,ce=void 0){super(),this.start=U,this.stop=Ee,this.step=ce}type="SliceExpression"},Ae=class extends f{constructor(U,Ee){super(),this.key=U,this.value=Ee}type="KeywordArgumentExpression"},pe=class extends f{constructor(U){super(),this.argument=U}type="SpreadExpression"},le=class extends B{constructor(U,Ee,ce){super(),this.call=U,this.callerArgs=Ee,this.body=ce}type="CallStatement"},Qe=class extends f{constructor(U,Ee,ce){super(),this.condition=U,this.trueExpr=Ee,this.falseExpr=ce}type="Ternary"};function iA(U){const Ee=new v([]);let ce=0;function ke(uA,mA){const QA=U[ce++];if(!QA||QA.type!==uA)throw new Error(`Parser Error: ${mA}. ${QA.type} !== ${uA}.`);return QA}function Me(uA){if(!HA(uA))throw new SyntaxError(`Expected ${uA}`);++ce}function Le(){switch(U[ce].type){case u.Comment:return new K(U[ce++].value);case u.Text:return BA();case u.OpenStatement:return gt();case u.OpenExpression:return lt();default:throw new SyntaxError(`Unexpected token type: ${U[ce].type}`)}}function sA(...uA){return ce+uA.length<=U.length&&uA.every((mA,QA)=>mA===U[ce+QA].type)}function OA(...uA){return U[ce]?.type===u.OpenStatement&&U[ce+1]?.type===u.Identifier&&uA.includes(U[ce+1]?.value)}function HA(...uA){return ce+uA.length<=U.length&&uA.every((mA,QA)=>U[ce+QA].type==="Identifier"&&mA===U[ce+QA].value)}function BA(){return new O(ke(u.Text,"Expected text token").value)}function gt(){if(ke(u.OpenStatement,"Expected opening statement token"),U[ce].type!==u.Identifier)throw new SyntaxError(`Unknown statement, got ${U[ce].type}`);const uA=U[ce].value;let mA;switch(uA){case"set":++ce,mA=Tr();break;case"if":++ce,mA=Gt(),ke(u.OpenStatement,"Expected {% token"),Me("endif"),ke(u.CloseStatement,"Expected %} token");break;case"macro":++ce,mA=br(),ke(u.OpenStatement,"Expected {% token"),Me("endmacro"),ke(u.CloseStatement,"Expected %} token");break;case"for":++ce,mA=Dt(),ke(u.OpenStatement,"Expected {% token"),Me("endfor"),ke(u.CloseStatement,"Expected %} token");break;case"call":{++ce;let QA=null;sA(u.OpenParen)&&(QA=ns());const jt=is();if(jt.type!=="Identifier")throw new SyntaxError("Expected identifier following call statement");const fa=ns();ke(u.CloseStatement,"Expected closing statement token");const $s=[];for(;!OA("endcall");)$s.push(Le());ke(u.OpenStatement,"Expected '{%'"),Me("endcall"),ke(u.CloseStatement,"Expected closing statement token");const ga=new e(jt,fa);mA=new le(ga,QA,$s);break}case"break":++ce,ke(u.CloseStatement,"Expected closing statement token"),mA=new L;break;case"continue":++ce,ke(u.CloseStatement,"Expected closing statement token"),mA=new Z;break;case"filter":{++ce;let QA=is();QA instanceof d&&sA(u.OpenParen)&&(QA=pr(QA)),ke(u.CloseStatement,"Expected closing statement token");const jt=[];for(;!OA("endfilter");)jt.push(Le());ke(u.OpenStatement,"Expected '{%'"),Me("endfilter"),ke(u.CloseStatement,"Expected '%}'"),mA=new De(QA,jt);break}default:throw new SyntaxError(`Unknown statement type: ${uA}`)}return mA}function lt(){ke(u.OpenExpression,"Expected opening expression token");const uA=Pr();return ke(u.CloseExpression,"Expected closing expression token"),uA}function Tr(){const uA=Is();let mA=null;const QA=[];if(sA(u.Equals))++ce,mA=Is();else{for(ke(u.CloseStatement,"Expected %} token");!OA("endset");)QA.push(Le());ke(u.OpenStatement,"Expected {% token"),Me("endset")}return ke(u.CloseStatement,"Expected closing statement token"),new N(uA,mA,QA)}function Gt(){const uA=Pr();ke(u.CloseStatement,"Expected closing statement token");const mA=[],QA=[];for(;!OA("elif","else","endif");)mA.push(Le());if(OA("elif")){++ce,++ce;const jt=Gt();QA.push(jt)}else if(OA("else"))for(++ce,++ce,ke(u.CloseStatement,"Expected closing statement token");!OA("endif");)QA.push(Le());return new F(uA,mA,QA)}function br(){const uA=is();if(uA.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const mA=ns();ke(u.CloseStatement,"Expected closing statement token");const QA=[];for(;!OA("endmacro");)QA.push(Le());return new z(uA,mA,QA)}function Is(uA=!1){const mA=uA?is:Pr,QA=[mA()],jt=sA(u.Comma);for(;jt&&(++ce,QA.push(mA()),!!sA(u.Comma)););return jt?new ee(QA):QA[0]}function Dt(){const uA=Is(!0);if(!(uA instanceof d||uA instanceof ee))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${uA.type} instead`);if(!HA("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++ce;const mA=Pr();ke(u.CloseStatement,"Expected closing statement token");const QA=[];for(;!OA("endfor","else");)QA.push(Le());const jt=[];if(OA("else"))for(++ce,++ce,ke(u.CloseStatement,"Expected closing statement token");!OA("endfor");)jt.push(Le());return new S(uA,mA,QA,jt)}function Pr(){return Os()}function Os(){const uA=Er();if(HA("if")){++ce;const mA=Er();if(HA("else")){++ce;const QA=Os();return new Qe(mA,uA,QA)}else return new Be(uA,mA)}return uA}function Er(){let uA=ps();for(;HA("or");){const mA=U[ce];++ce;const QA=ps();uA=new we(mA,uA,QA)}return uA}function ps(){let uA=_s();for(;HA("and");){const mA=U[ce];++ce;const QA=_s();uA=new we(mA,uA,QA)}return uA}function _s(){let uA;for(;HA("not");){const mA=U[ce];++ce;const QA=_s();uA=new _e(mA,QA)}return uA??zt()}function zt(){let uA=Ws();for(;;){let mA;if(HA("not","in"))mA=new m("not in",u.Identifier),ce+=2;else if(HA("in"))mA=U[ce++];else if(sA(u.ComparisonBinaryOperator))mA=U[ce++];else break;const QA=Ws();uA=new we(mA,uA,QA)}return uA}function Ws(){let uA=qA();for(;sA(u.AdditiveBinaryOperator);){const mA=U[ce];++ce;const QA=qA();uA=new we(mA,uA,QA)}return uA}function zs(){const uA=ws(is());return sA(u.OpenParen)?pr(uA):uA}function pr(uA){let mA=new e(uA,ns());return mA=ws(mA),sA(u.OpenParen)&&(mA=pr(mA)),mA}function ns(){ke(u.OpenParen,"Expected opening parenthesis for arguments list");const uA=Mr();return ke(u.CloseParen,"Expected closing parenthesis for arguments list"),uA}function Mr(){const uA=[];for(;!sA(u.CloseParen);){let mA;if(U[ce].type===u.MultiplicativeBinaryOperator&&U[ce].value==="*"){++ce;const QA=Pr();mA=new pe(QA)}else if(mA=Pr(),sA(u.Equals)){if(++ce,!(mA instanceof d))throw new SyntaxError("Expected identifier for keyword argument");const QA=Pr();mA=new Ae(mA,QA)}uA.push(mA),sA(u.Comma)&&++ce}return uA}function vr(){const uA=[];let mA=!1;for(;!sA(u.CloseSquareBracket);)sA(u.Colon)?(uA.push(void 0),++ce,mA=!0):(uA.push(Pr()),sA(u.Colon)&&(++ce,mA=!0));if(uA.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(mA){if(uA.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new ne(...uA)}return uA[0]}function ws(uA){for(;sA(u.Dot)||sA(u.OpenSquareBracket);){const mA=U[ce];++ce;let QA;const jt=mA.type===u.OpenSquareBracket;if(jt)QA=vr(),ke(u.CloseSquareBracket,"Expected closing square bracket");else if(QA=is(),QA.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");uA=new k(uA,QA,jt)}return uA}function qA(){let uA=xr();for(;sA(u.MultiplicativeBinaryOperator);){const mA=U[ce++],QA=xr();uA=new we(mA,uA,QA)}return uA}function xr(){let uA=ms();for(;HA("is");){++ce;const mA=HA("not");mA&&++ce;const QA=is();if(!(QA instanceof d))throw new SyntaxError("Expected identifier for the test");uA=new Oe(uA,mA,QA)}return uA}function ms(){let uA=zs();for(;sA(u.Pipe);){++ce;let mA=is();if(!(mA instanceof d))throw new SyntaxError("Expected identifier for the filter");sA(u.OpenParen)&&(mA=pr(mA)),uA=new xe(uA,mA)}return uA}function is(){const uA=U[ce++];switch(uA.type){case u.NumericLiteral:{const mA=uA.value;return mA.includes(".")?new T(Number(mA)):new te(Number(mA))}case u.StringLiteral:{let mA=uA.value;for(;sA(u.StringLiteral);)mA+=U[ce++].value;return new O(mA)}case u.Identifier:return new d(uA.value);case u.OpenParen:{const mA=Is();return ke(u.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),mA}case u.OpenSquareBracket:{const mA=[];for(;!sA(u.CloseSquareBracket);)mA.push(Pr()),sA(u.Comma)&&++ce;return++ce,new he(mA)}case u.OpenCurlyBracket:{const mA=new Map;for(;!sA(u.CloseCurlyBracket);){const QA=Pr();ke(u.Colon,"Expected colon between key and value in object literal");const jt=Pr();mA.set(QA,jt),sA(u.Comma)&&++ce}return++ce,new Ce(mA)}default:throw new SyntaxError(`Unexpected token: ${uA.type}`)}}for(;ce=0?(Ee=(Ee??=0)<0?Math.max(U.length+Ee,0):Math.min(Ee,U.length),ce=(ce??=U.length)<0?Math.max(U.length+ce,0):Math.min(ce,U.length)):(Ee=(Ee??=U.length-1)<0?Math.max(U.length+Ee,-1):Math.min(Ee,U.length-1),ce=(ce??=-1)<-1?Math.max(U.length+ce,-1):Math.min(ce,U.length-1));const Le=[];for(let sA=Ee;Me*sAEe.toUpperCase())}function eA(U){return be(new Date,U)}function be(U,Ee){const ce=new Intl.DateTimeFormat(void 0,{month:"long"}),ke=new Intl.DateTimeFormat(void 0,{month:"short"}),Me=Le=>Le<10?"0"+Le:Le.toString();return Ee.replace(/%[YmdbBHM%]/g,Le=>{switch(Le){case"%Y":return U.getFullYear().toString();case"%m":return Me(U.getMonth()+1);case"%d":return Me(U.getDate());case"%b":return ke.format(U);case"%B":return ce.format(U);case"%H":return Me(U.getHours());case"%M":return Me(U.getMinutes());case"%%":return"%";default:return Le}})}function ze(U){return U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ge(U,Ee,ce,ke){if(ke===0)return U;let Me=ke==null||ke<0?1/0:ke;const Le=Ee.length===0?new RegExp("(?=)","gu"):new RegExp(ze(Ee),"gu");return U.replaceAll(Le,sA=>Me>0?(--Me,ce):sA)}var Ye=class extends Error{},aA=class extends Error{},Ze=class{type="RuntimeValue";value;builtins=new Map;constructor(U=void 0){this.value=U}__bool__(){return new rA(!!this.value)}toString(){return String(this.value)}},Ve=class extends Ze{type="IntegerValue"},V=class extends Ze{type="FloatValue";toString(){return this.value%1===0?this.value.toFixed(1):this.value.toString()}},We=class extends Ze{type="StringValue";builtins=new Map([["upper",new IA(()=>new We(this.value.toUpperCase()))],["lower",new IA(()=>new We(this.value.toLowerCase()))],["strip",new IA(()=>new We(this.value.trim()))],["title",new IA(()=>new We(TA(this.value)))],["capitalize",new IA(()=>new We(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],["length",new Ve(this.value.length)],["rstrip",new IA(()=>new We(this.value.trimEnd()))],["lstrip",new IA(()=>new We(this.value.trimStart()))],["startswith",new IA(U=>{if(U.length===0)throw new Error("startswith() requires at least one argument");const Ee=U[0];if(Ee instanceof We)return new rA(this.value.startsWith(Ee.value));if(Ee instanceof Ue){for(const ce of Ee.value){if(!(ce instanceof We))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(ce.value))return new rA(!0)}return new rA(!1)}throw new Error("startswith() argument must be a string or tuple of strings")})],["endswith",new IA(U=>{if(U.length===0)throw new Error("endswith() requires at least one argument");const Ee=U[0];if(Ee instanceof We)return new rA(this.value.endsWith(Ee.value));if(Ee instanceof Ue){for(const ce of Ee.value){if(!(ce instanceof We))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(ce.value))return new rA(!0)}return new rA(!1)}throw new Error("endswith() argument must be a string or tuple of strings")})],["split",new IA(U=>{const Ee=U[0]??new hA;if(!(Ee instanceof We||Ee instanceof hA))throw new Error("sep argument must be a string or null");const ce=U[1]??new Ve(-1);if(!(ce instanceof Ve))throw new Error("maxsplit argument must be a number");let ke=[];if(Ee instanceof hA){const Me=this.value.trimStart();for(const{0:Le,index:sA}of Me.matchAll(/\S+/g)){if(ce.value!==-1&&ke.length>=ce.value&&sA!==void 0){ke.push(Le+Me.slice(sA+Le.length));break}ke.push(Le)}}else{if(Ee.value==="")throw new Error("empty separator");ke=this.value.split(Ee.value),ce.value!==-1&&ke.length>ce.value&&ke.push(ke.splice(ce.value).join(Ee.value))}return new Ue(ke.map(Me=>new We(Me)))})],["replace",new IA(U=>{if(U.length<2)throw new Error("replace() requires at least two arguments");const Ee=U[0],ce=U[1];if(!(Ee instanceof We&&ce instanceof We))throw new Error("replace() arguments must be strings");let ke;if(U.length>2?U[2].type==="KeywordArgumentsValue"?ke=U[2].value.get("count")??new hA:ke=U[2]:ke=new hA,!(ke instanceof Ve||ke instanceof hA))throw new Error("replace() count argument must be a number or null");return new We(ge(this.value,Ee.value,ce.value,ke.value))})]])},rA=class extends Ze{type="BooleanValue"},fe=class extends Ze{type="ObjectValue";__bool__(){return new rA(this.value.size>0)}builtins=new Map([["get",new IA(([U,Ee])=>{if(!(U instanceof We))throw new Error(`Object key must be a string: got ${U.type}`);return this.value.get(U.value)??Ee??new hA})],["items",new IA(()=>this.items())],["keys",new IA(()=>this.keys())],["values",new IA(()=>this.values())]]);items(){return new Ue(Array.from(this.value.entries()).map(([U,Ee])=>new Ue([new We(U),Ee])))}keys(){return new Ue(Array.from(this.value.keys()).map(U=>new We(U)))}values(){return new Ue(Array.from(this.value.values()))}},EA=class extends fe{type="KeywordArgumentsValue"},Ue=class extends Ze{type="ArrayValue";builtins=new Map([["length",new Ve(this.value.length)]]);__bool__(){return new rA(this.value.length>0)}},LA=class extends Ue{type="TupleValue"},IA=class extends Ze{type="FunctionValue"},hA=class extends Ze{type="NullValue"},SA=class extends Ze{type="UndefinedValue"},pA=class{constructor(U){this.parent=U}variables=new Map([["namespace",new IA(U=>{if(U.length===0)return new fe(new Map);if(U.length!==1||!(U[0]instanceof fe))throw new Error("`namespace` expects either zero arguments or a single object argument");return U[0]})]]);tests=new Map([["boolean",U=>U.type==="BooleanValue"],["callable",U=>U instanceof IA],["odd",U=>{if(!(U instanceof Ve))throw new Error(`cannot odd on ${U.type}`);return U.value%2!==0}],["even",U=>{if(!(U instanceof Ve))throw new Error(`cannot even on ${U.type}`);return U.value%2===0}],["false",U=>U.type==="BooleanValue"&&!U.value],["true",U=>U.type==="BooleanValue"&&U.value],["none",U=>U.type==="NullValue"],["string",U=>U.type==="StringValue"],["number",U=>U instanceof Ve||U instanceof V],["integer",U=>U instanceof Ve],["iterable",U=>U.type==="ArrayValue"||U.type==="StringValue"],["mapping",U=>U.type==="ObjectValue"],["lower",U=>{const Ee=U.value;return U.type==="StringValue"&&Ee===Ee.toLowerCase()}],["upper",U=>{const Ee=U.value;return U.type==="StringValue"&&Ee===Ee.toUpperCase()}],["none",U=>U.type==="NullValue"],["defined",U=>U.type!=="UndefinedValue"],["undefined",U=>U.type==="UndefinedValue"],["equalto",(U,Ee)=>U.value===Ee.value],["eq",(U,Ee)=>U.value===Ee.value]]);set(U,Ee){return this.declareVariable(U,at(Ee))}declareVariable(U,Ee){if(this.variables.has(U))throw new SyntaxError(`Variable already declared: ${U}`);return this.variables.set(U,Ee),Ee}setVariable(U,Ee){return this.variables.set(U,Ee),Ee}resolve(U){if(this.variables.has(U))return this;if(this.parent)return this.parent.resolve(U);throw new Error(`Unknown variable: ${U}`)}lookupVariable(U){try{return this.resolve(U).variables.get(U)??new SA}catch{return new SA}}};function DA(U){U.set("false",!1),U.set("true",!0),U.set("none",null),U.set("raise_exception",Ee=>{throw new Error(Ee)}),U.set("range",qe),U.set("strftime_now",eA),U.set("True",!0),U.set("False",!1),U.set("None",null)}var PA=class{global;constructor(U){this.global=U??new pA}run(U){return this.evaluate(U,this.global)}evaluateBinaryExpression(U,Ee){const ce=this.evaluate(U.left,Ee);switch(U.operator.value){case"and":return ce.__bool__().value?this.evaluate(U.right,Ee):ce;case"or":return ce.__bool__().value?ce:this.evaluate(U.right,Ee)}const ke=this.evaluate(U.right,Ee);switch(U.operator.value){case"==":return new rA(ce.value==ke.value);case"!=":return new rA(ce.value!=ke.value)}if(ce instanceof SA||ke instanceof SA){if(ke instanceof SA&&["in","not in"].includes(U.operator.value))return new rA(U.operator.value==="not in");throw new Error(`Cannot perform operation ${U.operator.value} on undefined values`)}else{if(ce instanceof hA||ke instanceof hA)throw new Error("Cannot perform operation on null values");if(U.operator.value==="~")return new We(ce.value.toString()+ke.value.toString());if((ce instanceof Ve||ce instanceof V)&&(ke instanceof Ve||ke instanceof V)){const Me=ce.value,Le=ke.value;switch(U.operator.value){case"+":case"-":case"*":{const sA=U.operator.value==="+"?Me+Le:U.operator.value==="-"?Me-Le:Me*Le;return ce instanceof V||ke instanceof V?new V(sA):new Ve(sA)}case"/":return new V(Me/Le);case"%":{const sA=Me%Le;return ce instanceof V||ke instanceof V?new V(sA):new Ve(sA)}case"<":return new rA(Me":return new rA(Me>Le);case">=":return new rA(Me>=Le);case"<=":return new rA(Me<=Le)}}else if(ce instanceof Ue&&ke instanceof Ue)switch(U.operator.value){case"+":return new Ue(ce.value.concat(ke.value))}else if(ke instanceof Ue){const Me=ke.value.find(Le=>Le.value===ce.value)!==void 0;switch(U.operator.value){case"in":return new rA(Me);case"not in":return new rA(!Me)}}}if(ce instanceof We||ke instanceof We)switch(U.operator.value){case"+":return new We(ce.value.toString()+ke.value.toString())}if(ce instanceof We&&ke instanceof We)switch(U.operator.value){case"in":return new rA(ke.value.includes(ce.value));case"not in":return new rA(!ke.value.includes(ce.value))}if(ce instanceof We&&ke instanceof fe)switch(U.operator.value){case"in":return new rA(ke.value.has(ce.value));case"not in":return new rA(!ke.value.has(ce.value))}throw new SyntaxError(`Unknown operator "${U.operator.value}" between ${ce.type} and ${ke.type}`)}evaluateArguments(U,Ee){const ce=[],ke=new Map;for(const Me of U)if(Me.type==="SpreadExpression"){const Le=Me,sA=this.evaluate(Le.argument,Ee);if(!(sA instanceof Ue))throw new Error(`Cannot unpack non-iterable type: ${sA.type}`);for(const OA of sA.value)ce.push(OA)}else if(Me.type==="KeywordArgumentExpression"){const Le=Me;ke.set(Le.key.value,this.evaluate(Le.value,Ee))}else{if(ke.size>0)throw new Error("Positional arguments must come before keyword arguments");ce.push(this.evaluate(Me,Ee))}return[ce,ke]}applyFilter(U,Ee,ce){if(Ee.type==="Identifier"){const ke=Ee;if(ke.value==="tojson")return new We(jA(U));if(U instanceof Ue)switch(ke.value){case"list":return U;case"first":return U.value[0];case"last":return U.value[U.value.length-1];case"length":return new Ve(U.value.length);case"reverse":return new Ue(U.value.reverse());case"sort":return new Ue(U.value.sort((Me,Le)=>{if(Me.type!==Le.type)throw new Error(`Cannot compare different types: ${Me.type} and ${Le.type}`);switch(Me.type){case"IntegerValue":case"FloatValue":return Me.value-Le.value;case"StringValue":return Me.value.localeCompare(Le.value);default:throw new Error(`Cannot compare type: ${Me.type}`)}}));case"join":return new We(U.value.map(Me=>Me.value).join(""));case"string":return new We(jA(U));case"unique":{const Me=new Set,Le=[];for(const sA of U.value)Me.has(sA.value)||(Me.add(sA.value),Le.push(sA));return new Ue(Le)}default:throw new Error(`Unknown ArrayValue filter: ${ke.value}`)}else if(U instanceof We)switch(ke.value){case"length":case"upper":case"lower":case"title":case"capitalize":{const Me=U.builtins.get(ke.value);if(Me instanceof IA)return Me.value([],ce);if(Me instanceof Ve)return Me;throw new Error(`Unknown StringValue filter: ${ke.value}`)}case"trim":return new We(U.value.trim());case"indent":return new We(U.value.split(` +`).map((Me,Le)=>Le===0||Me.length===0?Me:" "+Me).join(` +`));case"join":case"string":return U;case"int":{const Me=parseInt(U.value,10);return new Ve(isNaN(Me)?0:Me)}case"float":{const Me=parseFloat(U.value);return new V(isNaN(Me)?0:Me)}default:throw new Error(`Unknown StringValue filter: ${ke.value}`)}else if(U instanceof Ve||U instanceof V)switch(ke.value){case"abs":return U instanceof Ve?new Ve(Math.abs(U.value)):new V(Math.abs(U.value));case"int":return new Ve(Math.floor(U.value));case"float":return new V(U.value);default:throw new Error(`Unknown NumericValue filter: ${ke.value}`)}else if(U instanceof fe)switch(ke.value){case"items":return new Ue(Array.from(U.value.entries()).map(([Me,Le])=>new Ue([new We(Me),Le])));case"length":return new Ve(U.value.size);default:throw new Error(`Unknown ObjectValue filter: ${ke.value}`)}else if(U instanceof rA)switch(ke.value){case"bool":return new rA(U.value);case"int":return new Ve(U.value?1:0);case"float":return new V(U.value?1:0);case"string":return new We(U.value?"true":"false");default:throw new Error(`Unknown BooleanValue filter: ${ke.value}`)}throw new Error(`Cannot apply filter "${ke.value}" to type: ${U.type}`)}else if(Ee.type==="CallExpression"){const ke=Ee;if(ke.callee.type!=="Identifier")throw new Error(`Unknown filter: ${ke.callee.type}`);const Me=ke.callee.value;if(Me==="tojson"){const[,Le]=this.evaluateArguments(ke.args,ce),sA=Le.get("indent")??new hA;if(!(sA instanceof Ve||sA instanceof hA))throw new Error("If set, indent must be a number");return new We(jA(U,sA.value))}else if(Me==="join"){let Le;if(U instanceof We)Le=Array.from(U.value);else if(U instanceof Ue)Le=U.value.map(BA=>BA.value);else throw new Error(`Cannot apply filter "${Me}" to type: ${U.type}`);const[sA,OA]=this.evaluateArguments(ke.args,ce),HA=sA.at(0)??OA.get("separator")??new We("");if(!(HA instanceof We))throw new Error("separator must be a string");return new We(Le.join(HA.value))}else if(Me==="int"||Me==="float"){const[Le,sA]=this.evaluateArguments(ke.args,ce),OA=Le.at(0)??sA.get("default")??(Me==="int"?new Ve(0):new V(0));if(U instanceof We){const HA=Me==="int"?parseInt(U.value,10):parseFloat(U.value);return isNaN(HA)?OA:Me==="int"?new Ve(HA):new V(HA)}else{if(U instanceof Ve||U instanceof V)return U;if(U instanceof rA)return Me==="int"?new Ve(U.value?1:0):new V(U.value?1:0);throw new Error(`Cannot apply filter "${Me}" to type: ${U.type}`)}}else if(Me==="default"){const[Le,sA]=this.evaluateArguments(ke.args,ce),OA=Le[0]??new We(""),HA=Le[1]??sA.get("boolean")??new rA(!1);if(!(HA instanceof rA))throw new Error("`default` filter flag must be a boolean");return U instanceof SA||HA.value&&!U.__bool__().value?OA:U}if(U instanceof Ue){switch(Me){case"selectattr":case"rejectattr":{const Le=Me==="selectattr";if(U.value.some(lt=>!(lt instanceof fe)))throw new Error(`\`${Me}\` can only be applied to array of objects`);if(ke.args.some(lt=>lt.type!=="StringLiteral"))throw new Error(`arguments of \`${Me}\` must be strings`);const[sA,OA,HA]=ke.args.map(lt=>this.evaluate(lt,ce));let BA;if(OA){const lt=ce.tests.get(OA.value);if(!lt)throw new Error(`Unknown test: ${OA.value}`);BA=lt}else BA=(...lt)=>lt[0].__bool__().value;const gt=U.value.filter(lt=>{const Tr=lt.value.get(sA.value),Gt=Tr?BA(Tr,HA):!1;return Le?Gt:!Gt});return new Ue(gt)}case"map":{const[,Le]=this.evaluateArguments(ke.args,ce);if(Le.has("attribute")){const sA=Le.get("attribute");if(!(sA instanceof We))throw new Error("attribute must be a string");const OA=Le.get("default"),HA=U.value.map(BA=>{if(!(BA instanceof fe))throw new Error("items in map must be an object");return BA.value.get(sA.value)??OA??new SA});return new Ue(HA)}else throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${Me}`)}else if(U instanceof We){switch(Me){case"indent":{const[Le,sA]=this.evaluateArguments(ke.args,ce),OA=Le.at(0)??sA.get("width")??new Ve(4);if(!(OA instanceof Ve))throw new Error("width must be a number");const HA=Le.at(1)??sA.get("first")??new rA(!1),BA=Le.at(2)??sA.get("blank")??new rA(!1),gt=U.value.split(` +`),lt=" ".repeat(OA.value),Tr=gt.map((Gt,br)=>!HA.value&&br===0||!BA.value&&Gt.length===0?Gt:lt+Gt);return new We(Tr.join(` +`))}case"replace":{const Le=U.builtins.get("replace");if(!(Le instanceof IA))throw new Error("replace filter not available");const[sA,OA]=this.evaluateArguments(ke.args,ce);return Le.value([...sA,new EA(OA)],ce)}}throw new Error(`Unknown StringValue filter: ${Me}`)}else throw new Error(`Cannot apply filter "${Me}" to type: ${U.type}`)}throw new Error(`Unknown filter: ${Ee.type}`)}evaluateFilterExpression(U,Ee){const ce=this.evaluate(U.operand,Ee);return this.applyFilter(ce,U.filter,Ee)}evaluateTestExpression(U,Ee){const ce=this.evaluate(U.operand,Ee),ke=Ee.tests.get(U.test.value);if(!ke)throw new Error(`Unknown test: ${U.test.value}`);const Me=ke(ce);return new rA(U.negate?!Me:Me)}evaluateSelectExpression(U,Ee){return this.evaluate(U.test,Ee).__bool__().value?this.evaluate(U.lhs,Ee):new SA}evaluateUnaryExpression(U,Ee){const ce=this.evaluate(U.argument,Ee);switch(U.operator.value){case"not":return new rA(!ce.value);default:throw new SyntaxError(`Unknown operator: ${U.operator.value}`)}}evaluateTernaryExpression(U,Ee){return this.evaluate(U.condition,Ee).__bool__().value?this.evaluate(U.trueExpr,Ee):this.evaluate(U.falseExpr,Ee)}evalProgram(U,Ee){return this.evaluateBlock(U.body,Ee)}evaluateBlock(U,Ee){let ce="";for(const ke of U){const Me=this.evaluate(ke,Ee);Me.type!=="NullValue"&&Me.type!=="UndefinedValue"&&(ce+=Me.toString())}return new We(ce)}evaluateIdentifier(U,Ee){return Ee.lookupVariable(U.value)}evaluateCallExpression(U,Ee){const[ce,ke]=this.evaluateArguments(U.args,Ee);ke.size>0&&ce.push(new EA(ke));const Me=this.evaluate(U.callee,Ee);if(Me.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${Me.type}`);return Me.value(ce,Ee)}evaluateSliceExpression(U,Ee,ce){if(!(U instanceof Ue||U instanceof We))throw new Error("Slice object must be an array or string");const ke=this.evaluate(Ee.start,ce),Me=this.evaluate(Ee.stop,ce),Le=this.evaluate(Ee.step,ce);if(!(ke instanceof Ve||ke instanceof SA))throw new Error("Slice start must be numeric or undefined");if(!(Me instanceof Ve||Me instanceof SA))throw new Error("Slice stop must be numeric or undefined");if(!(Le instanceof Ve||Le instanceof SA))throw new Error("Slice step must be numeric or undefined");return U instanceof Ue?new Ue(oA(U.value,ke.value,Me.value,Le.value)):new We(oA(Array.from(U.value),ke.value,Me.value,Le.value).join(""))}evaluateMemberExpression(U,Ee){const ce=this.evaluate(U.object,Ee);let ke;if(U.computed){if(U.property.type==="SliceExpression")return this.evaluateSliceExpression(ce,U.property,Ee);ke=this.evaluate(U.property,Ee)}else ke=new We(U.property.value);let Me;if(ce instanceof fe){if(!(ke instanceof We))throw new Error(`Cannot access property with non-string: got ${ke.type}`);Me=ce.value.get(ke.value)??ce.builtins.get(ke.value)}else if(ce instanceof Ue||ce instanceof We)if(ke instanceof Ve)Me=ce.value.at(ke.value),ce instanceof We&&(Me=new We(ce.value.at(ke.value)));else if(ke instanceof We)Me=ce.builtins.get(ke.value);else throw new Error(`Cannot access property with non-string/non-number: got ${ke.type}`);else{if(!(ke instanceof We))throw new Error(`Cannot access property with non-string: got ${ke.type}`);Me=ce.builtins.get(ke.value)}return Me instanceof Ze?Me:new SA}evaluateSet(U,Ee){const ce=U.value?this.evaluate(U.value,Ee):this.evaluateBlock(U.body,Ee);if(U.assignee.type==="Identifier"){const ke=U.assignee.value;Ee.setVariable(ke,ce)}else if(U.assignee.type==="TupleLiteral"){const ke=U.assignee;if(!(ce instanceof Ue))throw new Error(`Cannot unpack non-iterable type in set: ${ce.type}`);const Me=ce.value;if(Me.length!==ke.value.length)throw new Error(`Too ${ke.value.length>Me.length?"few":"many"} items to unpack in set`);for(let Le=0;LeGt.setVariable(U.loopvar.value,lt);else if(U.loopvar.type==="TupleLiteral"){const Gt=U.loopvar;if(lt.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${lt.type}`);const br=lt;if(Gt.value.length!==br.value.length)throw new Error(`Too ${Gt.value.length>br.value.length?"few":"many"} items to unpack`);Tr=Is=>{for(let Dt=0;Dt0?Le[BA-1]:new SA],["nextitem",BA{const Me=new pA(ke);ce=ce.slice();let Le;ce.at(-1)?.type==="KeywordArgumentsValue"&&(Le=ce.pop());for(let sA=0;sA{const BA=new pA(HA);if(U.callerArgs)for(let gt=0;gtthis.evaluate(ce,Ee)));case"TupleLiteral":return new LA(U.value.map(ce=>this.evaluate(ce,Ee)));case"ObjectLiteral":{const ce=new Map;for(const[ke,Me]of U.value){const Le=this.evaluate(ke,Ee);if(!(Le instanceof We))throw new Error(`Object keys must be strings: got ${Le.type}`);ce.set(Le.value,this.evaluate(Me,Ee))}return new fe(ce)}case"Identifier":return this.evaluateIdentifier(U,Ee);case"CallExpression":return this.evaluateCallExpression(U,Ee);case"MemberExpression":return this.evaluateMemberExpression(U,Ee);case"UnaryExpression":return this.evaluateUnaryExpression(U,Ee);case"BinaryExpression":return this.evaluateBinaryExpression(U,Ee);case"FilterExpression":return this.evaluateFilterExpression(U,Ee);case"FilterStatement":return this.evaluateFilterStatement(U,Ee);case"TestExpression":return this.evaluateTestExpression(U,Ee);case"SelectExpression":return this.evaluateSelectExpression(U,Ee);case"Ternary":return this.evaluateTernaryExpression(U,Ee);case"Comment":return new hA;default:throw new SyntaxError(`Unknown node type: ${U.type}`)}}};function at(U){switch(typeof U){case"number":return Number.isInteger(U)?new Ve(U):new V(U);case"string":return new We(U);case"boolean":return new rA(U);case"undefined":return new SA;case"object":return U===null?new hA:Array.isArray(U)?new Ue(U.map(at)):new fe(new Map(Object.entries(U).map(([Ee,ce])=>[Ee,at(ce)])));case"function":return new IA((Ee,ce)=>{const ke=U(...Ee.map(Me=>Me.value))??null;return at(ke)});default:throw new Error(`Cannot convert to runtime value: ${U}`)}}function jA(U,Ee,ce){const ke=ce??0;switch(U.type){case"NullValue":case"UndefinedValue":return"null";case"IntegerValue":case"FloatValue":case"StringValue":case"BooleanValue":return JSON.stringify(U.value);case"ArrayValue":case"ObjectValue":{const Me=Ee?" ".repeat(Ee):"",Le=` +`+Me.repeat(ke),sA=Le+Me;if(U.type==="ArrayValue"){const OA=U.value.map(HA=>jA(HA,Ee,ke+1));return Ee?`[${sA}${OA.join(`,${sA}`)}${Le}]`:`[${OA.join(", ")}]`}else{const OA=Array.from(U.value.entries()).map(([HA,BA])=>{const gt=`"${HA}": ${jA(BA,Ee,ke+1)}`;return Ee?`${sA}${gt}`:gt});return Ee?`{${OA.join(",")}${Le}}`:`{${OA.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${U.type}`)}}var zA=` +`,Vt="{%- ",bs=" -%}";function Rt(U){switch(U.operator.type){case"MultiplicativeBinaryOperator":return 4;case"AdditiveBinaryOperator":return 3;case"ComparisonBinaryOperator":return 2;case"Identifier":return U.operator.value==="and"?1:U.operator.value==="in"||U.operator.value==="not in"?2:0}return 0}function Ss(U,Ee=" "){const ce=typeof Ee=="number"?" ".repeat(Ee):Ee;return Vr(U.body,0,ce).replace(/\n$/,"")}function Ht(...U){return Vt+U.join(" ")+bs}function Vr(U,Ee,ce){return U.map(ke=>xs(ke,Ee,ce)).join(zA)}function xs(U,Ee,ce){const ke=ce.repeat(Ee);switch(U.type){case"Program":return Vr(U.body,Ee,ce);case"If":return ka(U,Ee,ce);case"For":return ua(U,Ee,ce);case"Set":return da(U,Ee,ce);case"Macro":return wA(U,Ee,ce);case"Break":return ke+Ht("break");case"Continue":return ke+Ht("continue");case"CallStatement":return Dr(U,Ee,ce);case"FilterStatement":return Ut(U,Ee,ce);case"Comment":return ke+"{# "+U.value+" #}";default:return ke+"{{- "+ot(U)+" -}}"}}function ka(U,Ee,ce){const ke=ce.repeat(Ee),Me=[];let Le=U;for(;Le&&(Me.push({test:Le.test,body:Le.body}),Le.alternate.length===1&&Le.alternate[0].type==="If");)Le=Le.alternate[0];let sA=ke+Ht("if",ot(Me[0].test))+zA+Vr(Me[0].body,Ee+1,ce);for(let OA=1;OA0&&(sA+=zA+ke+Ht("else")+zA+Vr(Le.alternate,Ee+1,ce)),sA+=zA+ke+Ht("endif"),sA}function ua(U,Ee,ce){const ke=ce.repeat(Ee);let Me="";if(U.iterable.type==="SelectExpression"){const sA=U.iterable;Me=`${ot(sA.lhs)} if ${ot(sA.test)}`}else Me=ot(U.iterable);let Le=ke+Ht("for",ot(U.loopvar),"in",Me)+zA+Vr(U.body,Ee+1,ce);return U.defaultBlock.length>0&&(Le+=zA+ke+Ht("else")+zA+Vr(U.defaultBlock,Ee+1,ce)),Le+=zA+ke+Ht("endfor"),Le}function da(U,Ee,ce){const ke=ce.repeat(Ee),Me=ot(U.assignee),Le=U.value?ot(U.value):"",sA=ke+Ht("set",`${Me}${U.value?" = "+Le:""}`);return U.body.length===0?sA:sA+zA+Vr(U.body,Ee+1,ce)+zA+ke+Ht("endset")}function wA(U,Ee,ce){const ke=ce.repeat(Ee),Me=U.args.map(ot).join(", ");return ke+Ht("macro",`${U.name.value}(${Me})`)+zA+Vr(U.body,Ee+1,ce)+zA+ke+Ht("endmacro")}function Dr(U,Ee,ce){const ke=ce.repeat(Ee),Me=U.callerArgs&&U.callerArgs.length>0?`(${U.callerArgs.map(ot).join(", ")})`:"",Le=ot(U.call);let sA=ke+Ht(`call${Me}`,Le)+zA;return sA+=Vr(U.body,Ee+1,ce)+zA,sA+=ke+Ht("endcall"),sA}function Ut(U,Ee,ce){const ke=ce.repeat(Ee),Me=U.filter.type==="Identifier"?U.filter.value:ot(U.filter);let Le=ke+Ht("filter",Me)+zA;return Le+=Vr(U.body,Ee+1,ce)+zA,Le+=ke+Ht("endfilter"),Le}function ot(U,Ee=-1){switch(U.type){case"SpreadExpression":return`*${ot(U.argument)}`;case"Identifier":return U.value;case"IntegerLiteral":return`${U.value}`;case"FloatLiteral":return`${U.value}`;case"StringLiteral":return JSON.stringify(U.value);case"BinaryExpression":{const ce=U,ke=Rt(ce),Me=ot(ce.left,ke),Le=ot(ce.right,ke+1),sA=`${Me} ${ce.operator.value} ${Le}`;return ke`${ot(ke)}: ${ot(Me)}`).join(", ")}}`;case"SliceExpression":{const ce=U,ke=ce.start?ot(ce.start):"",Me=ce.stop?ot(ce.stop):"",Le=ce.step?`:${ot(ce.step)}`:"";return`${ke}:${Me}${Le}`}case"KeywordArgumentExpression":{const ce=U;return`${ce.key.value}=${ot(ce.value)}`}case"Ternary":{const ce=U,ke=`${ot(ce.trueExpr)} if ${ot(ce.condition,0)} else ${ot(ce.falseExpr)}`;return Ee>-1?`(${ke})`:ke}default:throw new Error(`Unknown expression type: ${U.type}`)}}var js=class{parsed;constructor(U){const Ee=D(U,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=iA(Ee)}render(U){const Ee=new pA;if(DA(Ee),U)for(const[Me,Le]of Object.entries(U))Ee.set(Me,Le);return new PA(Ee).run(this.parsed).value}format(U){return Ss(this.parsed,U?.indent||" ")}}},"./src/backends/onnx.js":(a,o,n)=>{var u;n.r(o),n.d(o,{Tensor:()=>w.Tensor,createInferenceSession:()=>Z,deviceToExecutionProviders:()=>S,isONNXProxy:()=>K,isONNXTensor:()=>N});var m=n("./src/env.js"),b=n("?2ce3"),C=n("onnxruntime-web"),w=n("onnxruntime-common");const E=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"}}),x=[];let D,B;const v=Symbol.for("onnxruntime");if(v in globalThis)B=globalThis[v];else if(m.apis.IS_NODE_ENV){switch(B=b??(u||(u=n.t(b,2))),process.platform){case"win32":x.push("dml");break;case"linux":process.arch==="x64"&&x.push("cuda");break}x.push("cpu"),D=["cpu"]}else B=C,m.apis.IS_WEBNN_AVAILABLE&&x.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),m.apis.IS_WEBGPU_AVAILABLE&&x.push("webgpu"),x.push("wasm"),D=["wasm"];const F=B.InferenceSession;function S(f=null){if(!f)return D;switch(f){case"auto":return x;case"gpu":return x.filter(k=>["webgpu","cuda","dml","webnn-gpu"].includes(k))}if(x.includes(f))return[E[f]??f];throw new Error(`Unsupported device: "${f}". Should be one of: ${x.join(", ")}.`)}let L=null;async function Z(f,k,e){L&&await L;const d=F.create(f,k);L??=d;const y=await d;return y.config=e,y}function N(f){return f instanceof B.Tensor}const z=B?.env;z?.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!z.wasm.wasmPaths&&(z.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${m.env.version}/dist/`),z.wasm.proxy=!1),z?.webgpu&&(z.webgpu.powerPreference="high-performance");function K(){return z?.wasm?.proxy}m.env.backends.onnx=z},"./src/base/feature_extraction_utils.js":(a,o,n)=>{n.r(o),n.d(o,{FeatureExtractor:()=>C,validate_audio_inputs:()=>w});var u=n("./src/utils/constants.js"),m=n("./src/utils/generic.js"),b=n("./src/utils/hub.js");class C extends m.Callable{constructor(x){super(),this.config=x}static async from_pretrained(x,D={}){const B=await(0,b.getModelJSON)(x,u.FEATURE_EXTRACTOR_NAME,!0,D);return new this(B)}}function w(E,x){if(!(E instanceof Float32Array||E instanceof Float64Array))throw new Error(`${x} expects input to be a Float32Array or a Float64Array, but got ${E?.constructor?.name??typeof E} 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":(a,o,n)=>{n.r(o),n.d(o,{ImageProcessor:()=>f,center_to_corners_format:()=>B,post_process_instance_segmentation:()=>K,post_process_object_detection:()=>v,post_process_panoptic_segmentation:()=>z,post_process_semantic_segmentation:()=>F});var u=n("./src/utils/generic.js"),m=n("./src/utils/tensor.js"),b=n("./src/utils/maths.js");n("./src/utils/image.js");var C=n("./src/utils/core.js"),w=n("./src/utils/hub.js"),E=n("./src/utils/constants.js");function x(k,e,d=0,y=null){const te=k/e;let T=(0,b.bankers_round)(te)*e;return y!==null&&T>y&&(T=Math.floor(te)*e),Te&&Ae.push(le)}else{let le=(0,b.max)(ne.data)[1];if(le===ee-1||(pe=(0,b.softmax)(ne.data),pe[le]iA*xe[(qe+1)%2])),De.boxes.push(Qe),De.classes.push(le),De.scores.push(pe[le])}}Ce.push(De)}return Ce}function F(k,e=null){const d=k.logits,y=d.dims[0];if(e!==null&&e.length!==y)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const te=[];for(let T=0;Txe[Ae]&&(xe[Ae]=ne[Ae],De[Ae]=_e)}const Be=new Array(he.dims[0]);for(let _e=0;_e_e!==void 0);te.push({segmentation:we,labels:Oe})}return te}function S(k,e,d,y){const te=[],T=[],O=[];for(let he=0;hed&&(te.push(Ce),T.push(De),O.push(we))}return[te,T,O]}function L(k,e,d,y=.5,te=.8){const T=[];let O=0,he=0;const ee=e[d].data;for(let we=0;we=y&&++he;let Ce=O>0&&he>0;return Ce&&(Ce=O/he>te),[Ce,T]}function Z(k,e,d,y,te,T=null,O=null){const[he,ee]=O??k[0].dims,Ce=new m.Tensor("int32",new Int32Array(he*ee),[he,ee]),we=[];if(O!==null)for(let _e=0;_eDe[pe]&&(xe[pe]=_e,De[pe]=Ae[pe])}let Be=0;const Oe=Ce.data;for(let _e=0;_e200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(k,e)/Math.min(k,e)}`);let T=Math.round(k/d)*d,O=Math.round(e/d)*d;if(T*O>te){const he=Math.sqrt(k*e/te);T=Math.floor(k/he/d)*d,O=Math.floor(e/he/d)*d}else if(T*OT?Ce=Math.floor(T*ee/te):T>te&&(ee=Math.floor(te*Ce/T)),await e.resize(Ce,ee,{resample:y}))}async crop_margin(e,d=200){const y=e.clone().grayscale(),te=(0,b.min)(y.data)[0],O=(0,b.max)(y.data)[0]-te;if(O===0)return e;const he=d/255;let ee=y.width,Ce=y.height,we=0,xe=0;const De=y.data;for(let Be=0;Bethis.preprocess(T)));return{pixel_values:(0,m.stack)(y.map(T=>T.pixel_values),0),original_sizes:y.map(T=>T.original_size),reshaped_input_sizes:y.map(T=>T.reshaped_input_size)}}static async from_pretrained(e,d={}){const y=await(0,w.getModelJSON)(e,E.IMAGE_PROCESSOR_NAME,!0,d);return new this(y)}}},"./src/base/processing_utils.js":(a,o,n)=>{n.r(o),n.d(o,{Processor:()=>C});var u=n("./src/utils/constants.js"),m=n("./src/utils/generic.js"),b=n("./src/utils/hub.js");class C extends m.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;static uses_chat_template_file=!1;constructor(E,x,D){super(),this.config=E,this.components=x,this.chat_template=D}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(E,x={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(E,{tokenize:!1,chat_template:this.chat_template??void 0,...x})}batch_decode(...E){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...E)}decode(...E){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...E)}async _call(E,...x){for(const D of[this.image_processor,this.feature_extractor,this.tokenizer])if(D)return D(E,...x);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(E,x={}){const[D,B,v]=await Promise.all([this.uses_processor_config?(0,b.getModelJSON)(E,u.PROCESSOR_NAME,!0,x):{},Promise.all(this.classes.filter(F=>F in this).map(async F=>{const S=await this[F].from_pretrained(E,x);return[F.replace(/_class$/,""),S]})).then(Object.fromEntries),this.uses_chat_template_file?(0,b.getModelText)(E,u.CHAT_TEMPLATE_NAME,!0,x):null]);return new this(D,B,v)}}},"./src/configs.js":(a,o,n)=>{n.r(o),n.d(o,{AutoConfig:()=>D,PretrainedConfig:()=>x,getCacheShapes:()=>w});var u=n("./src/utils/core.js"),m=n("./src/utils/hub.js");async function b(B,v){return await(0,m.getModelJSON)(B,"config.json",!0,v)}function C(B){const v={};let F={};switch(B.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"voxtral":case"smolvlm":case"gemma3n":F=C(B.text_config);break;case"moondream1":F=C(B.phi_config);break;case"musicgen":F=C(B.decoder);break;case"multi_modality":F=C(B.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":v.num_heads="n_head",v.num_layers="n_layer",v.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":case"modernbert-decoder":v.num_heads="num_attention_heads",v.num_layers="num_hidden_layers",v.hidden_size="hidden_size";break;case"llama":case"arcee":case"lfm2":case"smollm3":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":case"llava_qwen2":v.num_heads="num_key_value_heads",v.num_layers="num_hidden_layers",v.hidden_size="hidden_size",v.num_attention_heads="num_attention_heads",v.dim_kv="head_dim";break;case"qwen3":case"gemma":case"gemma2":case"gemma3_text":case"gemma3n_text":case"glm":case"helium":case"ernie4_5":v.num_heads="num_key_value_heads",v.num_layers="num_hidden_layers",v.dim_kv="head_dim";break;case"openelm":v.num_heads="num_kv_heads",v.num_layers="num_transformer_layers",v.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":v.num_heads="num_heads",v.num_layers="num_layers",v.hidden_size="hidden_size";break;case"bloom":v.num_heads="n_head",v.num_layers="n_layer",v.hidden_size="hidden_size";break;case"mpt":v.num_heads="n_heads",v.num_layers="n_layers",v.hidden_size="d_model";break;case"exaone":v.num_heads="num_key_value_heads",v.num_layers="num_layers",v.dim_kv="head_dim",v.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":v.num_decoder_layers="num_decoder_layers",v.num_decoder_heads="num_heads",v.decoder_dim_kv="d_kv",v.num_encoder_layers="num_layers",v.num_encoder_heads="num_heads",v.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":v.num_decoder_layers="decoder_layers",v.num_decoder_heads="decoder_attention_heads",v.decoder_hidden_size="d_model",v.num_encoder_layers="encoder_layers",v.num_encoder_heads="encoder_attention_heads",v.encoder_hidden_size="d_model";break;case"speecht5":v.num_decoder_layers="decoder_layers",v.num_decoder_heads="decoder_attention_heads",v.decoder_hidden_size="hidden_size",v.num_encoder_layers="encoder_layers",v.num_encoder_heads="encoder_attention_heads",v.encoder_hidden_size="hidden_size";break;case"trocr":v.num_encoder_layers=v.num_decoder_layers="decoder_layers",v.num_encoder_heads=v.num_decoder_heads="decoder_attention_heads",v.encoder_hidden_size=v.decoder_hidden_size="d_model";break;case"musicgen_decoder":v.num_encoder_layers=v.num_decoder_layers="num_hidden_layers",v.num_encoder_heads=v.num_decoder_heads="num_attention_heads",v.encoder_hidden_size=v.decoder_hidden_size="hidden_size";break;case"moonshine":v.num_decoder_layers="decoder_num_hidden_layers",v.num_decoder_heads="decoder_num_key_value_heads",v.num_encoder_layers="encoder_num_hidden_layers",v.num_encoder_heads="encoder_num_key_value_heads",v.encoder_hidden_size=v.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const L=C(B.decoder),Z="num_decoder_layers"in L,N=(0,u.pick)(B,["model_type","is_encoder_decoder"]);return Z?(N.num_decoder_layers=L.num_decoder_layers,N.num_decoder_heads=L.num_decoder_heads,N.decoder_hidden_size=L.decoder_hidden_size,N.num_encoder_layers=L.num_encoder_layers,N.num_encoder_heads=L.num_encoder_heads,N.encoder_hidden_size=L.encoder_hidden_size):(N.num_layers=L.num_layers,N.num_heads=L.num_heads,N.hidden_size=L.hidden_size),N}const S={...F,...(0,u.pick)(B,["model_type","multi_query","is_encoder_decoder"])};for(const L in v)S[L]=B[v[L]];return S}function w(B,v){if(B.model_type==="lfm2"){const F=v?.prefix??"past_key_values",S=F==="present"?"present":"past",L={},{layer_types:Z,num_attention_heads:N,num_key_value_heads:z,hidden_size:K,conv_L_cache:f}=B,k=K/N,e=v?.batch_size??1;for(let d=0;d{n.r(o),n.d(o,{apis:()=>N,env:()=>d});var u=n("?db59"),m=n("?383f"),b=n("?fa4b");const C="3.7.1",w=typeof window<"u"&&typeof window.document<"u",E=typeof self<"u"&&["DedicatedWorkerGlobalScope","ServiceWorkerGlobalScope","SharedWorkerGlobalScope"].includes(self.constructor?.name),x=typeof self<"u"&&"caches"in self,D=typeof navigator<"u"&&"gpu"in navigator,B=typeof navigator<"u"&&"ml"in navigator,v=typeof process<"u",F=v&&process?.release?.name==="node",S=!y(u),L=!y(m),Z=typeof globalThis.Deno<"u",N=Object.freeze({IS_BROWSER_ENV:w,IS_WEBWORKER_ENV:E,IS_WEB_CACHE_AVAILABLE:x,IS_WEBGPU_AVAILABLE:D,IS_WEBNN_AVAILABLE:B,IS_PROCESS_AVAILABLE:v,IS_NODE_ENV:F,IS_FS_AVAILABLE:S,IS_PATH_AVAILABLE:L}),z=S&&L;let K="./";if(z){const te=Object(import.meta).url;te?K=m.dirname(m.dirname(b.fileURLToPath(te))):typeof __dirname<"u"&&(K=m.dirname(__dirname))}const f=z?m.join(K,"/.cache/"):null,k="/models/",e=z?m.join(K,k):k,d={version:C,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(w||E),localModelPath:e,useFS:S,useBrowserCache:x&&!Z,useFSCache:S,cacheDir:f,useCustomCache:!1,customCache:null};function y(te){return Object.keys(te).length===0}},"./src/generation/configuration_utils.js":(a,o,n)=>{n.r(o),n.d(o,{GenerationConfig:()=>m});var u=n("./src/utils/core.js");class m{max_length=20;max_new_tokens=null;min_length=0;min_new_tokens=null;early_stopping=!1;max_time=null;do_sample=!1;num_beams=1;num_beam_groups=1;penalty_alpha=null;use_cache=!0;temperature=1;top_k=50;top_p=1;typical_p=1;epsilon_cutoff=0;eta_cutoff=0;diversity_penalty=0;repetition_penalty=1;encoder_repetition_penalty=1;length_penalty=1;no_repeat_ngram_size=0;bad_words_ids=null;force_words_ids=null;renormalize_logits=!1;constraints=null;forced_bos_token_id=null;forced_eos_token_id=null;remove_invalid_values=!1;exponential_decay_length_penalty=null;suppress_tokens=null;streamer=null;begin_suppress_tokens=null;forced_decoder_ids=null;guidance_scale=null;num_return_sequences=1;output_attentions=!1;output_hidden_states=!1;output_scores=!1;return_dict_in_generate=!1;pad_token_id=null;bos_token_id=null;eos_token_id=null;encoder_no_repeat_ngram_size=0;decoder_start_token_id=null;generation_kwargs={};constructor(C){Object.assign(this,(0,u.pick)(C,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(a,o,n)=>{n.r(o),n.d(o,{ClassifierFreeGuidanceLogitsProcessor:()=>N,ForcedBOSTokenLogitsProcessor:()=>E,ForcedEOSTokenLogitsProcessor:()=>x,LogitsProcessor:()=>b,LogitsProcessorList:()=>w,LogitsWarper:()=>C,MinLengthLogitsProcessor:()=>S,MinNewTokensLengthLogitsProcessor:()=>L,NoBadWordsLogitsProcessor:()=>Z,NoRepeatNGramLogitsProcessor:()=>v,RepetitionPenaltyLogitsProcessor:()=>F,SuppressTokensAtBeginLogitsProcessor:()=>D,TemperatureLogitsWarper:()=>z,TopKLogitsWarper:()=>f,TopPLogitsWarper:()=>K,WhisperTimeStampLogitsProcessor:()=>B});var u=n("./src/utils/generic.js");n("./src/utils/tensor.js");var m=n("./src/utils/maths.js");class b extends u.Callable{_call(e,d){throw Error("`_call` should be implemented in a subclass")}}class C extends u.Callable{_call(e,d){throw Error("`_call` should be implemented in a subclass")}}class w extends u.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,d){let y=d;for(const te of this.processors)y=te(e,y);return y}[Symbol.iterator](){return this.processors.values()}}class E extends b{constructor(e){super(),this.bos_token_id=e}_call(e,d){for(let y=0;y=1&&T[T.length-1]>=this.timestamp_begin,he=T.length<2||T[T.length-2]>=this.timestamp_begin;if(O&&(he?te.subarray(this.timestamp_begin).fill(-1/0):te.subarray(0,this.eos_token_id).fill(-1/0)),e[y].length===this.begin_index&&this.max_initial_timestamp_index!==null){const xe=this.timestamp_begin+this.max_initial_timestamp_index;te.subarray(xe+1).fill(-1/0)}const ee=(0,m.log_softmax)(te),Ce=Math.log(ee.subarray(this.timestamp_begin).map(Math.exp).reduce((xe,De)=>xe+De)),we=(0,m.max)(ee.subarray(0,this.timestamp_begin))[0];Ce>we&&te.subarray(0,this.timestamp_begin).fill(-1/0)}return d}}class v extends b{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const d=e.length,y=[];for(let T=0;T1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,d){if(d.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 ${d.dims[0]} for the logits and ${e.length} for the input ids.`);const y=e.length,te=d.slice([0,y],null),T=d.slice([y,d.dims[0]],null);for(let O=0;O1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(y)||y<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${y}`);this.top_p=e,this.filter_value=d,this.min_tokens_to_keep=y}}class f extends C{constructor(e,{filter_value:d=-1/0,min_tokens_to_keep:y=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,y),this.filter_value=d}}},"./src/generation/logits_sampler.js":(a,o,n)=>{n.r(o),n.d(o,{LogitsSampler:()=>C});var u=n("./src/utils/generic.js"),m=n("./src/utils/tensor.js"),b=n("./src/utils/maths.js");n("./src/generation/configuration_utils.js");class C extends u.Callable{constructor(B){super(),this.generation_config=B}async _call(B){return this.sample(B)}async sample(B){throw Error("sample should be implemented in subclasses.")}getLogits(B,v){let F=B.dims.at(-1),S=B.data;if(v===-1)S=S.slice(-F);else{let L=v*F;S=S.slice(L,L+F)}return S}randomSelect(B){let v=0;for(let S=0;S1)return new x(B);if(B.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${B.num_return_sequences}.`);return new w(B)}}class w extends C{async sample(B){const v=(0,b.max)(B.data)[1];return[[BigInt(v),0]]}}class E extends C{async sample(B){let v=B.dims.at(-1);this.generation_config.top_k>0&&(v=Math.min(this.generation_config.top_k,v));const[F,S]=await(0,m.topk)(B,v),L=(0,b.softmax)(F.data);return Array.from({length:this.generation_config.num_beams},()=>{const Z=this.randomSelect(L);return[S.data[Z],Math.log(L[Z])]})}}class x extends C{async sample(B){let v=B.dims.at(-1);this.generation_config.top_k>0&&(v=Math.min(this.generation_config.top_k,v));const[F,S]=await(0,m.topk)(B,v),L=(0,b.softmax)(F.data);return Array.from({length:this.generation_config.num_beams},(Z,N)=>[S.data[N],Math.log(L[N])])}}},"./src/generation/stopping_criteria.js":(a,o,n)=>{n.r(o),n.d(o,{EosTokenCriteria:()=>w,InterruptableStoppingCriteria:()=>E,MaxLengthCriteria:()=>C,StoppingCriteria:()=>m,StoppingCriteriaList:()=>b});var u=n("./src/utils/generic.js");class m extends u.Callable{_call(D,B){throw Error("StoppingCriteria needs to be subclassed")}}class b extends u.Callable{constructor(){super(),this.criteria=[]}push(D){this.criteria.push(D)}extend(D){D instanceof b?D=D.criteria:D instanceof m&&(D=[D]),this.criteria.push(...D)}_call(D,B){const v=new Array(D.length).fill(!1);for(const F of this.criteria){const S=F(D,B);for(let L=0;LB.length>=this.max_length)}}class w extends m{constructor(D){super(),Array.isArray(D)||(D=[D]),this.eos_token_id=D}_call(D,B){return D.map(v=>{const F=v.at(-1);return this.eos_token_id.some(S=>F==S)})}}class E extends m{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(D,B){return new Array(D.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(a,o,n)=>{n.r(o),n.d(o,{BaseStreamer:()=>C,TextStreamer:()=>E,WhisperTextStreamer:()=>x});var u=n("./src/utils/core.js"),m=n("./src/tokenizers.js"),b=n("./src/env.js");class C{put(B){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const w=b.apis.IS_PROCESS_AVAILABLE?D=>process.stdout.write(D):D=>console.log(D);class E extends C{constructor(B,{skip_prompt:v=!1,callback_function:F=null,token_callback_function:S=null,skip_special_tokens:L=!0,decode_kwargs:Z={},...N}={}){super(),this.tokenizer=B,this.skip_prompt=v,this.callback_function=F??w,this.token_callback_function=S,this.decode_kwargs={skip_special_tokens:L,...Z,...N},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(B){if(B.length>1)throw Error("TextStreamer only supports batch size of 1");const v=this.next_tokens_are_prompt;if(v&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;const F=B[0];this.token_callback_function?.(F),this.token_cache=(0,u.mergeArrays)(this.token_cache,F);const S=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let L;v||S.endsWith(` +`)?(L=S.slice(this.print_len),this.token_cache=[],this.print_len=0):S.length>0&&(0,m.is_chinese_char)(S.charCodeAt(S.length-1))?(L=S.slice(this.print_len),this.print_len+=L.length):(L=S.slice(this.print_len,S.lastIndexOf(" ")+1),this.print_len+=L.length),this.on_finalized_text(L,!1)}end(){let B;this.token_cache.length>0?(B=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):B="",this.next_tokens_are_prompt=!0,this.on_finalized_text(B,!0)}on_finalized_text(B,v){B.length>0&&this.callback_function?.(B),v&&this.callback_function===w&&b.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.(` +`)}}class x extends E{constructor(B,{skip_prompt:v=!1,callback_function:F=null,token_callback_function:S=null,on_chunk_start:L=null,on_chunk_end:Z=null,on_finalize:N=null,time_precision:z=.02,skip_special_tokens:K=!0,decode_kwargs:f={}}={}){super(B,{skip_prompt:v,skip_special_tokens:K,callback_function:F,token_callback_function:S,decode_kwargs:f}),this.timestamp_begin=B.timestamp_begin,this.on_chunk_start=L,this.on_chunk_end=Z,this.on_finalize=N,this.time_precision=z,this.waiting_for_timestamp=!1}put(B){if(B.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const v=B[0];if(v.length===1){const F=Number(v[0])-this.timestamp_begin;if(F>=0){const S=F*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(S):this.on_chunk_start?.(S),this.waiting_for_timestamp=!this.waiting_for_timestamp,this.token_callback_function?.(v);return}}return super.put(B)}end(){super.end(),this.on_finalize?.()}}},"./src/models.js":(a,o,n)=>{n.r(o),n.d(o,{ASTForAudioClassification:()=>xa,ASTModel:()=>sn,ASTPreTrainedModel:()=>yt,AlbertForMaskedLM:()=>ct,AlbertForQuestionAnswering:()=>bA,AlbertForSequenceClassification:()=>Je,AlbertModel:()=>MA,AlbertPreTrainedModel:()=>yA,ArceeForCausalLM:()=>Rr,ArceeModel:()=>Ft,ArceePreTrainedModel:()=>Mt,AutoModel:()=>d8,AutoModelForAudioClassification:()=>P8,AutoModelForAudioFrameClassification:()=>Q8,AutoModelForAudioTextToText:()=>j8,AutoModelForCTC:()=>T8,AutoModelForCausalLM:()=>b8,AutoModelForDepthEstimation:()=>_8,AutoModelForDocumentQuestionAnswering:()=>F8,AutoModelForImageClassification:()=>E8,AutoModelForImageFeatureExtraction:()=>L8,AutoModelForImageMatting:()=>S8,AutoModelForImageSegmentation:()=>M8,AutoModelForImageTextToText:()=>R8,AutoModelForImageToImage:()=>O8,AutoModelForMaskGeneration:()=>D8,AutoModelForMaskedLM:()=>I8,AutoModelForNormalEstimation:()=>z8,AutoModelForObjectDetection:()=>B8,AutoModelForPoseEstimation:()=>N8,AutoModelForQuestionAnswering:()=>w8,AutoModelForSemanticSegmentation:()=>v8,AutoModelForSeq2SeqLM:()=>p8,AutoModelForSequenceClassification:()=>f8,AutoModelForSpeechSeq2Seq:()=>m8,AutoModelForTextToSpectrogram:()=>h8,AutoModelForTextToWaveform:()=>C8,AutoModelForTokenClassification:()=>g8,AutoModelForUniversalSegmentation:()=>x8,AutoModelForVision2Seq:()=>k8,AutoModelForXVector:()=>G8,AutoModelForZeroShotObjectDetection:()=>y8,BartForConditionalGeneration:()=>or,BartForSequenceClassification:()=>Bt,BartModel:()=>$t,BartPretrainedModel:()=>Es,BaseModelOutput:()=>aA,BeitForImageClassification:()=>jn,BeitModel:()=>kn,BeitPreTrainedModel:()=>Js,BertForMaskedLM:()=>V,BertForQuestionAnswering:()=>fe,BertForSequenceClassification:()=>We,BertForTokenClassification:()=>rA,BertModel:()=>Ve,BertPreTrainedModel:()=>Ze,BlenderbotForConditionalGeneration:()=>wt,BlenderbotModel:()=>WA,BlenderbotPreTrainedModel:()=>Kt,BlenderbotSmallForConditionalGeneration:()=>An,BlenderbotSmallModel:()=>Ea,BlenderbotSmallPreTrainedModel:()=>yr,BloomForCausalLM:()=>s,BloomModel:()=>r,BloomPreTrainedModel:()=>t,CLIPModel:()=>dn,CLIPPreTrainedModel:()=>aa,CLIPSegForImageSegmentation:()=>et,CLIPSegModel:()=>zn,CLIPSegPreTrainedModel:()=>Ka,CLIPTextModel:()=>Ha,CLIPTextModelWithProjection:()=>kA,CLIPVisionModel:()=>ys,CLIPVisionModelWithProjection:()=>ri,CamembertForMaskedLM:()=>BA,CamembertForQuestionAnswering:()=>Tr,CamembertForSequenceClassification:()=>gt,CamembertForTokenClassification:()=>lt,CamembertModel:()=>HA,CamembertPreTrainedModel:()=>OA,CausalLMOutput:()=>pi,CausalLMOutputWithPast:()=>Y8,ChineseCLIPModel:()=>_n,ChineseCLIPPreTrainedModel:()=>si,ClapAudioModelWithProjection:()=>zu,ClapModel:()=>Ou,ClapPreTrainedModel:()=>r0,ClapTextModelWithProjection:()=>_u,CodeGenForCausalLM:()=>dA,CodeGenModel:()=>$e,CodeGenPreTrainedModel:()=>Pe,CohereForCausalLM:()=>Ni,CohereModel:()=>wo,CoherePreTrainedModel:()=>zi,ConvBertForMaskedLM:()=>Ut,ConvBertForQuestionAnswering:()=>U,ConvBertForSequenceClassification:()=>ot,ConvBertForTokenClassification:()=>js,ConvBertModel:()=>Dr,ConvBertPreTrainedModel:()=>wA,ConvNextForImageClassification:()=>T1,ConvNextModel:()=>D1,ConvNextPreTrainedModel:()=>sl,ConvNextV2ForImageClassification:()=>G1,ConvNextV2Model:()=>P1,ConvNextV2PreTrainedModel:()=>al,DFineForObjectDetection:()=>Xc,DFineModel:()=>Kc,DFinePreTrainedModel:()=>X0,DPTForDepthEstimation:()=>u1,DPTModel:()=>c1,DPTPreTrainedModel:()=>Al,DacDecoderModel:()=>xd,DacDecoderOutput:()=>Ed,DacEncoderModel:()=>vd,DacEncoderOutput:()=>kd,DacModel:()=>Md,DacPreTrainedModel:()=>c0,DebertaForMaskedLM:()=>Is,DebertaForQuestionAnswering:()=>Os,DebertaForSequenceClassification:()=>Dt,DebertaForTokenClassification:()=>Pr,DebertaModel:()=>br,DebertaPreTrainedModel:()=>Gt,DebertaV2ForMaskedLM:()=>_s,DebertaV2ForQuestionAnswering:()=>zs,DebertaV2ForSequenceClassification:()=>zt,DebertaV2ForTokenClassification:()=>Ws,DebertaV2Model:()=>ps,DebertaV2PreTrainedModel:()=>Er,DecisionTransformerModel:()=>ad,DecisionTransformerPreTrainedModel:()=>sd,DeiTForImageClassification:()=>e1,DeiTModel:()=>$c,DeiTPreTrainedModel:()=>J0,DepthAnythingForDepthEstimation:()=>f1,DepthAnythingPreTrainedModel:()=>d1,DepthProForDepthEstimation:()=>C1,DepthProPreTrainedModel:()=>h1,DetrForObjectDetection:()=>Yn,DetrForSegmentation:()=>Ui,DetrModel:()=>Wn,DetrObjectDetectionOutput:()=>Ki,DetrPreTrainedModel:()=>Da,DetrSegmentationOutput:()=>Bo,Dinov2ForImageClassification:()=>F1,Dinov2Model:()=>Q1,Dinov2PreTrainedModel:()=>nl,Dinov2WithRegistersForImageClassification:()=>O1,Dinov2WithRegistersModel:()=>S1,Dinov2WithRegistersPreTrainedModel:()=>il,DistilBertForMaskedLM:()=>qA,DistilBertForQuestionAnswering:()=>ws,DistilBertForSequenceClassification:()=>Mr,DistilBertForTokenClassification:()=>vr,DistilBertModel:()=>ns,DistilBertPreTrainedModel:()=>pr,DonutSwinModel:()=>y1,DonutSwinPreTrainedModel:()=>B1,EfficientNetForImageClassification:()=>Vu,EfficientNetModel:()=>Yu,EfficientNetPreTrainedModel:()=>Cl,ElectraForMaskedLM:()=>ke,ElectraForQuestionAnswering:()=>sA,ElectraForSequenceClassification:()=>Me,ElectraForTokenClassification:()=>Le,ElectraModel:()=>ce,ElectraPreTrainedModel:()=>Ee,Ernie4_5_ForCausalLM:()=>Pu,Ernie4_5_Model:()=>Tu,Ernie4_5_PretrainedModel:()=>fl,EsmForMaskedLM:()=>is,EsmForSequenceClassification:()=>uA,EsmForTokenClassification:()=>mA,EsmModel:()=>ms,EsmPreTrainedModel:()=>xr,ExaoneForCausalLM:()=>Co,ExaoneModel:()=>hn,ExaonePreTrainedModel:()=>li,FalconForCausalLM:()=>Su,FalconModel:()=>Fu,FalconPreTrainedModel:()=>pl,FastViTForImageClassification:()=>bt,FastViTModel:()=>$A,FastViTPreTrainedModel:()=>RA,Florence2ForConditionalGeneration:()=>cn,Florence2PreTrainedModel:()=>ln,GLPNForDepthEstimation:()=>x1,GLPNModel:()=>v1,GLPNPreTrainedModel:()=>rl,GPT2LMHeadModel:()=>Ns,GPT2Model:()=>Xa,GPT2PreTrainedModel:()=>Ts,GPTBigCodeForCausalLM:()=>ue,GPTBigCodeModel:()=>se,GPTBigCodePreTrainedModel:()=>q,GPTJForCausalLM:()=>W,GPTJModel:()=>G,GPTJPreTrainedModel:()=>Ar,GPTNeoForCausalLM:()=>gn,GPTNeoModel:()=>Gs,GPTNeoPreTrainedModel:()=>Ir,GPTNeoXForCausalLM:()=>pn,GPTNeoXModel:()=>Nn,GPTNeoXPreTrainedModel:()=>Za,Gemma2ForCausalLM:()=>Ur,Gemma2Model:()=>di,Gemma2PreTrainedModel:()=>ui,Gemma3ForCausalLM:()=>ko,Gemma3Model:()=>Rn,Gemma3PreTrainedModel:()=>St,Gemma3nForConditionalGeneration:()=>Ya,Gemma3nPreTrainedModel:()=>Us,GemmaForCausalLM:()=>Zs,GemmaModel:()=>qa,GemmaPreTrainedModel:()=>Li,GlmForCausalLM:()=>Si,GlmModel:()=>ho,GlmPreTrainedModel:()=>Xs,GraniteForCausalLM:()=>bn,GraniteModel:()=>Ja,GranitePreTrainedModel:()=>ci,GroundingDinoForObjectDetection:()=>z1,GroundingDinoPreTrainedModel:()=>_1,GroupViTModel:()=>NA,GroupViTPreTrainedModel:()=>gA,HeliumForCausalLM:()=>mo,HeliumModel:()=>oi,HeliumPreTrainedModel:()=>hs,HieraForImageClassification:()=>t1,HieraModel:()=>A1,HieraPreTrainedModel:()=>q0,HubertForCTC:()=>gu,HubertForSequenceClassification:()=>pu,HubertModel:()=>fu,HubertPreTrainedModel:()=>$b,IJepaForImageClassification:()=>H,IJepaModel:()=>Y,IJepaPreTrainedModel:()=>_,Idefics3ForConditionalGeneration:()=>un,Idefics3PreTrainedModel:()=>mr,ImageMattingOutput:()=>rf,JAISLMHeadModel:()=>Ps,JAISModel:()=>Fr,JAISPreTrainedModel:()=>fn,JinaCLIPModel:()=>Ua,JinaCLIPPreTrainedModel:()=>ya,JinaCLIPTextModel:()=>Ds,JinaCLIPVisionModel:()=>ur,Lfm2ForCausalLM:()=>jr,Lfm2Model:()=>mn,Lfm2PreTrainedModel:()=>es,LiteWhisperForConditionalGeneration:()=>Fn,LlamaForCausalLM:()=>it,LlamaModel:()=>_A,LlamaPreTrainedModel:()=>xA,LlavaForConditionalGeneration:()=>lA,LlavaOnevisionForConditionalGeneration:()=>ti,LlavaPreTrainedModel:()=>on,LlavaQwen2ForCausalLM:()=>ra,LongT5ForConditionalGeneration:()=>Tt,LongT5Model:()=>Qt,LongT5PreTrainedModel:()=>qt,M2M100ForConditionalGeneration:()=>K1,M2M100Model:()=>U1,M2M100PreTrainedModel:()=>cl,MBartForCausalLM:()=>Br,MBartForConditionalGeneration:()=>lr,MBartForSequenceClassification:()=>Ms,MBartModel:()=>Vs,MBartPreTrainedModel:()=>er,MPNetForMaskedLM:()=>pa,MPNetForQuestionAnswering:()=>X,MPNetForSequenceClassification:()=>en,MPNetForTokenClassification:()=>Se,MPNetModel:()=>ja,MPNetPreTrainedModel:()=>Ys,MT5ForConditionalGeneration:()=>ir,MT5Model:()=>ks,MT5PreTrainedModel:()=>Gr,MarianMTModel:()=>H1,MarianModel:()=>V1,MarianPreTrainedModel:()=>ll,MaskFormerForInstanceSegmentation:()=>M1,MaskFormerModel:()=>E1,MaskFormerPreTrainedModel:()=>tl,MaskedLMOutput:()=>ds,Metric3DForDepthEstimation:()=>I1,Metric3DPreTrainedModel:()=>b1,Metric3Dv2ForDepthEstimation:()=>k1,Metric3Dv2PreTrainedModel:()=>w1,MgpstrForSceneTextRecognition:()=>cd,MgpstrModelOutput:()=>od,MgpstrPreTrainedModel:()=>ld,MimiDecoderModel:()=>wd,MimiDecoderOutput:()=>Cd,MimiEncoderModel:()=>Id,MimiEncoderOutput:()=>hd,MimiModel:()=>bd,MimiPreTrainedModel:()=>l0,MistralForCausalLM:()=>Du,MistralModel:()=>yu,MistralPreTrainedModel:()=>dl,MobileBertForMaskedLM:()=>fa,MobileBertForQuestionAnswering:()=>ga,MobileBertForSequenceClassification:()=>$s,MobileBertModel:()=>jt,MobileBertPreTrainedModel:()=>QA,MobileLLMForCausalLM:()=>As,MobileLLMModel:()=>bo,MobileLLMPreTrainedModel:()=>Oi,MobileNetV1ForImageClassification:()=>Uu,MobileNetV1ForSemanticSegmentation:()=>Ku,MobileNetV1Model:()=>Hu,MobileNetV1PreTrainedModel:()=>a0,MobileNetV2ForImageClassification:()=>Zu,MobileNetV2ForSemanticSegmentation:()=>Ju,MobileNetV2Model:()=>Xu,MobileNetV2PreTrainedModel:()=>n0,MobileNetV3ForImageClassification:()=>$u,MobileNetV3ForSemanticSegmentation:()=>ed,MobileNetV3Model:()=>qu,MobileNetV3PreTrainedModel:()=>i0,MobileNetV4ForImageClassification:()=>td,MobileNetV4ForSemanticSegmentation:()=>rd,MobileNetV4Model:()=>Ad,MobileNetV4PreTrainedModel:()=>o0,MobileViTForImageClassification:()=>hr,MobileViTModel:()=>ar,MobileViTPreTrainedModel:()=>Xt,MobileViTV2ForImageClassification:()=>Wr,MobileViTV2Model:()=>Sr,MobileViTV2PreTrainedModel:()=>dr,ModelOutput:()=>Ye,ModernBertDecoderForCausalLM:()=>bs,ModernBertDecoderModel:()=>Vt,ModernBertDecoderPreTrainedModel:()=>zA,ModernBertForMaskedLM:()=>PA,ModernBertForSequenceClassification:()=>at,ModernBertForTokenClassification:()=>jA,ModernBertModel:()=>DA,ModernBertPreTrainedModel:()=>pA,Moondream1ForConditionalGeneration:()=>FA,MoonshineForConditionalGeneration:()=>nn,MoonshineModel:()=>ta,MoonshinePreTrainedModel:()=>an,MptForCausalLM:()=>c,MptModel:()=>l,MptPreTrainedModel:()=>i,MultiModalityCausalLM:()=>id,MultiModalityPreTrainedModel:()=>nd,MusicgenForCausalLM:()=>r8,MusicgenForConditionalGeneration:()=>Il,MusicgenModel:()=>t8,MusicgenPreTrainedModel:()=>bl,NeoBertForMaskedLM:()=>LA,NeoBertForQuestionAnswering:()=>SA,NeoBertForSequenceClassification:()=>IA,NeoBertForTokenClassification:()=>hA,NeoBertModel:()=>Ue,NeoBertPreTrainedModel:()=>EA,NomicBertModel:()=>Ss,NomicBertPreTrainedModel:()=>Rt,OPTForCausalLM:()=>I,OPTModel:()=>p,OPTPreTrainedModel:()=>g,Olmo2ForCausalLM:()=>tr,Olmo2Model:()=>Io,Olmo2PreTrainedModel:()=>Ln,OlmoForCausalLM:()=>_i,OlmoModel:()=>ts,OlmoPreTrainedModel:()=>Cn,OpenELMForCausalLM:()=>Mo,OpenELMModel:()=>Eo,OpenELMPreTrainedModel:()=>fi,OwlViTForObjectDetection:()=>cs,OwlViTModel:()=>rs,OwlViTPreTrainedModel:()=>Kr,Owlv2ForObjectDetection:()=>ia,Owlv2Model:()=>na,Owlv2PreTrainedModel:()=>us,PaliGemmaForConditionalGeneration:()=>ls,PaliGemmaPreTrainedModel:()=>Hr,PatchTSMixerForPrediction:()=>gd,PatchTSMixerModel:()=>fd,PatchTSMixerPreTrainedModel:()=>kl,PatchTSTForPrediction:()=>dd,PatchTSTModel:()=>ud,PatchTSTPreTrainedModel:()=>wl,Phi3ForCausalLM:()=>A,Phi3Model:()=>ZA,Phi3PreTrainedModel:()=>wn,Phi3VForCausalLM:()=>sa,Phi3VPreTrainedModel:()=>ha,PhiForCausalLM:()=>xo,PhiModel:()=>In,PhiPreTrainedModel:()=>Hi,PreTrainedModel:()=>ge,PretrainedMixin:()=>Zt,PvtForImageClassification:()=>ve,PvtModel:()=>me,PvtPreTrainedModel:()=>ie,PyAnnoteForAudioFrameClassification:()=>eu,PyAnnoteModel:()=>$1,PyAnnotePreTrainedModel:()=>ul,QuestionAnsweringModelOutput:()=>vs,Qwen2ForCausalLM:()=>vo,Qwen2Model:()=>ji,Qwen2PreTrainedModel:()=>Ri,Qwen2VLForConditionalGeneration:()=>Vi,Qwen2VLPreTrainedModel:()=>Jr,Qwen3ForCausalLM:()=>gi,Qwen3Model:()=>Yi,Qwen3PreTrainedModel:()=>Wi,RFDetrForObjectDetection:()=>Hc,RFDetrModel:()=>Vc,RFDetrObjectDetectionOutput:()=>Uc,RFDetrPreTrainedModel:()=>K0,RTDetrForObjectDetection:()=>Rc,RTDetrModel:()=>Lc,RTDetrObjectDetectionOutput:()=>yo,RTDetrPreTrainedModel:()=>Xi,RTDetrV2ForObjectDetection:()=>Wc,RTDetrV2Model:()=>jc,RTDetrV2ObjectDetectionOutput:()=>Yc,RTDetrV2PreTrainedModel:()=>U0,ResNetForImageClassification:()=>s1,ResNetModel:()=>r1,ResNetPreTrainedModel:()=>$0,RoFormerForMaskedLM:()=>xs,RoFormerForQuestionAnswering:()=>da,RoFormerForSequenceClassification:()=>ka,RoFormerForTokenClassification:()=>ua,RoFormerModel:()=>Vr,RoFormerPreTrainedModel:()=>Ht,RobertaForMaskedLM:()=>Ma,RobertaForQuestionAnswering:()=>tn,RobertaForSequenceClassification:()=>Dn,RobertaForTokenClassification:()=>ei,RobertaModel:()=>$n,RobertaPreTrainedModel:()=>ma,SamImageSegmentationOutput:()=>Y1,SamModel:()=>W1,SamPreTrainedModel:()=>j1,SapiensForDepthEstimation:()=>p1,SapiensForNormalEstimation:()=>m1,SapiensForSemanticSegmentation:()=>g1,SapiensPreTrainedModel:()=>$o,SegformerForImageClassification:()=>Lu,SegformerForSemanticSegmentation:()=>Ru,SegformerModel:()=>A8,SegformerPreTrainedModel:()=>s0,Seq2SeqLMOutput:()=>W8,SequenceClassifierOutput:()=>ut,SiglipModel:()=>Ba,SiglipPreTrainedModel:()=>On,SiglipTextModel:()=>Ks,SiglipVisionModel:()=>XA,SmolLM3ForCausalLM:()=>ii,SmolLM3Model:()=>ni,SmolLM3PreTrainedModel:()=>ai,SmolVLMForConditionalGeneration:()=>Va,SnacDecoderModel:()=>Dd,SnacEncoderModel:()=>yd,SnacModel:()=>Bd,SnacPreTrainedModel:()=>u0,SpeechT5ForSpeechToText:()=>Eu,SpeechT5ForTextToSpeech:()=>Mu,SpeechT5HifiGan:()=>vu,SpeechT5Model:()=>e8,SpeechT5PreTrainedModel:()=>t0,SqueezeBertForMaskedLM:()=>ye,SqueezeBertForQuestionAnswering:()=>AA,SqueezeBertForSequenceClassification:()=>je,SqueezeBertModel:()=>Ie,SqueezeBertPreTrainedModel:()=>de,StableLmForCausalLM:()=>Wu,StableLmModel:()=>ju,StableLmPreTrainedModel:()=>hl,Starcoder2ForCausalLM:()=>Qu,Starcoder2Model:()=>Gu,Starcoder2PreTrainedModel:()=>gl,StyleTextToSpeech2Model:()=>ku,StyleTextToSpeech2PreTrainedModel:()=>wu,Swin2SRForImageSuperResolution:()=>l1,Swin2SRModel:()=>o1,Swin2SRPreTrainedModel:()=>el,SwinForImageClassification:()=>n1,SwinForSemanticSegmentation:()=>i1,SwinModel:()=>a1,SwinPreTrainedModel:()=>qo,T5ForConditionalGeneration:()=>Lr,T5Model:()=>cr,T5PreTrainedModel:()=>nt,TableTransformerForObjectDetection:()=>Jc,TableTransformerModel:()=>Zc,TableTransformerObjectDetectionOutput:()=>qc,TableTransformerPreTrainedModel:()=>Z0,TokenClassifierOutput:()=>ss,TrOCRForCausalLM:()=>Bu,TrOCRPreTrainedModel:()=>xu,UltravoxModel:()=>El,UltravoxPreTrainedModel:()=>pd,UniSpeechForCTC:()=>su,UniSpeechForSequenceClassification:()=>au,UniSpeechModel:()=>ru,UniSpeechPreTrainedModel:()=>e0,UniSpeechSatForAudioFrameClassification:()=>lu,UniSpeechSatForCTC:()=>iu,UniSpeechSatForSequenceClassification:()=>ou,UniSpeechSatModel:()=>nu,UniSpeechSatPreTrainedModel:()=>Do,ViTForImageClassification:()=>P,ViTMAEModel:()=>Fe,ViTMAEPreTrainedModel:()=>Te,ViTMSNForImageClassification:()=>cA,ViTMSNModel:()=>Xe,ViTMSNPreTrainedModel:()=>Ne,ViTModel:()=>M,ViTPreTrainedModel:()=>h,VisionEncoderDecoderModel:()=>Sn,VitMatteForImageMatting:()=>Ot,VitMattePreTrainedModel:()=>vt,VitPoseForPoseEstimation:()=>re,VitPosePreTrainedModel:()=>J,VitsModel:()=>ml,VitsModelOutput:()=>sf,VitsPreTrainedModel:()=>Nu,VoxtralForConditionalGeneration:()=>md,Wav2Vec2BertForCTC:()=>uu,Wav2Vec2BertForSequenceClassification:()=>du,Wav2Vec2BertModel:()=>cu,Wav2Vec2BertPreTrainedModel:()=>A0,Wav2Vec2ForAudioFrameClassification:()=>q1,Wav2Vec2ForCTC:()=>Z1,Wav2Vec2ForSequenceClassification:()=>J1,Wav2Vec2Model:()=>X1,Wav2Vec2PreTrainedModel:()=>Vn,WavLMForAudioFrameClassification:()=>Iu,WavLMForCTC:()=>hu,WavLMForSequenceClassification:()=>Cu,WavLMForXVector:()=>bu,WavLMModel:()=>mu,WavLMPreTrainedModel:()=>Zi,WeSpeakerResNetModel:()=>tu,WeSpeakerResNetPreTrainedModel:()=>Au,WhisperForConditionalGeneration:()=>Bs,WhisperModel:()=>Aa,WhisperPreTrainedModel:()=>ea,XLMForQuestionAnswering:()=>rn,XLMForSequenceClassification:()=>os,XLMForTokenClassification:()=>Tn,XLMModel:()=>Qr,XLMPreTrainedModel:()=>Hs,XLMRobertaForMaskedLM:()=>Gn,XLMRobertaForQuestionAnswering:()=>Wa,XLMRobertaForSequenceClassification:()=>Qn,XLMRobertaForTokenClassification:()=>Ai,XLMRobertaModel:()=>Pn,XLMRobertaPreTrainedModel:()=>va,XLMWithLMHeadModel:()=>GA,XVectorOutput:()=>tf,YolosForObjectDetection:()=>L1,YolosModel:()=>N1,YolosObjectDetectionOutput:()=>R1,YolosPreTrainedModel:()=>ol});var u=n("./src/configs.js"),m=n("./src/backends/onnx.js"),b=n("./src/utils/dtypes.js"),C=n("./src/utils/generic.js"),w=n("./src/utils/core.js"),E=n("./src/utils/hub.js"),x=n("./src/utils/constants.js"),D=n("./src/generation/logits_process.js"),B=n("./src/generation/configuration_utils.js"),v=n("./src/utils/tensor.js"),F=n("./src/utils/image.js"),S=n("./src/utils/maths.js"),L=n("./src/generation/stopping_criteria.js"),Z=n("./src/generation/logits_sampler.js"),N=n("./src/env.js"),z=n("./src/models/whisper/generation_whisper.js"),K=n("./src/models/whisper/common_whisper.js");const f={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12},k=new Map,e=new Map,d=new Map;async function y(R,j,oe){let Ge=oe.config?.["transformers.js_config"]??{},Re=oe.device??Ge.device;Re&&typeof Re!="string"&&(Re.hasOwnProperty(j)?Re=Re[j]:(console.warn(`device not specified for "${j}". Using the default device.`),Re=null));const He=Re??(N.apis.IS_NODE_ENV?"cpu":"wasm"),nA=(0,m.deviceToExecutionProviders)(He),fA=Ge.device_config??{};fA.hasOwnProperty(He)&&(Ge={...Ge,...fA[He]});let vA=oe.dtype??Ge.dtype;if(typeof vA!="string"&&(vA&&vA.hasOwnProperty(j)?vA=vA[j]:(vA=b.DEFAULT_DEVICE_DTYPE_MAPPING[He]??b.DATA_TYPES.fp32,console.warn(`dtype not specified for "${j}". Using the default dtype (${vA}) for this device (${He}).`))),vA===b.DATA_TYPES.auto){let kt=Ge.dtype;typeof kt!="string"&&(kt=kt?.[j]),kt&&kt!==b.DATA_TYPES.auto&&b.DATA_TYPES.hasOwnProperty(kt)?vA=kt:vA=b.DEFAULT_DEVICE_DTYPE_MAPPING[He]??b.DATA_TYPES.fp32}const YA=vA;if(b.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(YA)){if(YA===b.DATA_TYPES.fp16&&He==="webgpu"&&!await(0,b.isWebGpuFp16Supported)())throw new Error(`The device (${He}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${YA}. Should be one of: ${Object.keys(b.DATA_TYPES).join(", ")}`);const dt=Ge.kv_cache_dtype,mt=dt?typeof dt=="string"?dt:dt[YA]??"float32":void 0;if(mt&&!["float32","float16"].includes(mt))throw new Error(`Invalid kv_cache_dtype: ${mt}. Should be one of: float32, float16`);const It={dtype:YA,kv_cache_dtype:mt,device:He},tt=b.DEFAULT_DTYPE_SUFFIX_MAPPING[YA],Jt=`${j}${tt}.onnx`,rt=`${oe.subfolder??""}/${Jt}`,At={...oe.session_options};At.executionProviders??=nA;const _t=Ge.free_dimension_overrides;_t?At.freeDimensionOverrides??=_t:He.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"]["${He}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);const fr=N.apis.IS_NODE_ENV&&N.env.useFSCache,Or=(0,E.getModelFile)(R,rt,!0,oe,fr),qr=oe.use_external_data_format??Ge.use_external_data_format;let $r=[];if(qr){let kt;typeof qr=="object"?qr.hasOwnProperty(Jt)?kt=qr[Jt]:qr.hasOwnProperty(j)?kt=qr[j]:kt=!1:kt=qr;const _r=+kt;if(_r>E.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${_r}) exceeds the maximum allowed value (${E.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let fs=0;fs<_r;++fs){const mi=`${Jt}_data${fs===0?"":"_"+fs}`,Ls=`${oe.subfolder??""}/${mi}`;$r.push(new Promise(async(Ta,qi)=>{const $i=await(0,E.getModelFile)(R,Ls,!0,oe,fr);Ta($i instanceof Uint8Array?{path:mi,data:$i}:mi)}))}}else At.externalData!==void 0&&($r=At.externalData.map(async kt=>{if(typeof kt.data=="string"){const _r=await(0,E.getModelFile)(R,kt.data,!0,oe);return{...kt,data:_r}}return kt}));if($r.length>0){const kt=await Promise.all($r);N.apis.IS_NODE_ENV||(At.externalData=kt)}if(He==="webgpu"){const kt=(0,u.getCacheShapes)(oe.config,{prefix:"present"});if(Object.keys(kt).length>0&&!(0,m.isONNXProxy)()){const _r={};for(const fs in kt)_r[fs]="gpu-buffer";At.preferredOutputLocation=_r}}return{buffer_or_path:await Or,session_options:At,session_config:It}}async function te(R,j,oe){return Object.fromEntries(await Promise.all(Object.keys(j).map(async Ge=>{const{buffer_or_path:Re,session_options:He,session_config:nA}=await y(R,j[Ge],oe),fA=await(0,m.createInferenceSession)(Re,He,nA);return[Ge,fA]})))}async function T(R,j,oe){return Object.fromEntries(await Promise.all(Object.keys(j).map(async Ge=>{const Re=await(0,E.getModelJSON)(R,j[Ge],!1,oe);return[Ge,Re]})))}function O(R,j){const oe=Object.create(null),Ge=[];for(const nA of R.inputNames){const fA=j[nA];if(!(fA instanceof v.Tensor)){Ge.push(nA);continue}oe[nA]=(0,m.isONNXProxy)()?fA.clone():fA}if(Ge.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${Ge.join(", ")}.`);const Re=Object.keys(j).length,He=R.inputNames.length;if(Re>He){let nA=Object.keys(j).filter(fA=>!R.inputNames.includes(fA));console.warn(`WARNING: Too many inputs were provided (${Re} > ${He}). The following inputs will be ignored: "${nA.join(", ")}".`)}return oe}let he=Promise.resolve();async function ee(R,j){const oe=O(R,j);try{const Ge=Object.fromEntries(Object.entries(oe).map(([nA,fA])=>[nA,fA.ort_tensor])),Re=()=>R.run(Ge),He=await(N.apis.IS_BROWSER_ENV||N.apis.IS_WEBWORKER_ENV?he=he.then(Re):Re());return Ce(He)}catch(Ge){const Re=Object.fromEntries(Object.entries(oe).map(([He,nA])=>{const fA={type:nA.type,dims:nA.dims,location:nA.location};return fA.location!=="gpu-buffer"&&(fA.data=nA.data),[He,fA]}));throw console.error(`An error occurred during model execution: "${Ge}".`),console.error("Inputs given to model:",Re),Ge}}function Ce(R){for(let j in R)(0,m.isONNXTensor)(R[j])?R[j]=new v.Tensor(R[j]):typeof R[j]=="object"&&Ce(R[j]);return R}function we(R){if(R instanceof v.Tensor)return R;if(R.length===0)throw Error("items must be non-empty");if(Array.isArray(R[0])){if(R.some(j=>j.length!==R[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 v.Tensor("int64",BigInt64Array.from(R.flat().map(j=>BigInt(j))),[R.length,R[0].length])}else return new v.Tensor("int64",BigInt64Array.from(R.map(j=>BigInt(j))),[1,R.length])}function xe(R){return new v.Tensor("bool",[R],[1])}async function De(R,j){let{encoder_outputs:oe,input_ids:Ge,decoder_input_ids:Re,...He}=j;if(!oe){const fA=(0,w.pick)(j,R.sessions.model.inputNames);oe=(await Be(R,fA)).last_hidden_state}return He.input_ids=Re,He.encoder_hidden_states=oe,R.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(He.encoder_attention_mask=j.attention_mask),await _e(R,He,!0)}async function Be(R,j){const oe=R.sessions.model,Ge=(0,w.pick)(j,oe.inputNames);if(oe.inputNames.includes("inputs_embeds")&&!Ge.inputs_embeds){if(!j.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");Ge.inputs_embeds=await R.encode_text({input_ids:j.input_ids})}if(oe.inputNames.includes("token_type_ids")&&!Ge.token_type_ids){if(!Ge.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");Ge.token_type_ids=(0,v.zeros_like)(Ge.input_ids)}if(oe.inputNames.includes("pixel_mask")&&!Ge.pixel_mask){if(!Ge.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const Re=Ge.pixel_values.dims;Ge.pixel_mask=(0,v.ones)([Re[0],Re[2],Re[3]])}return await ee(oe,Ge)}async function Oe(R,j){const oe=await R.encode(j);return await R.decode(oe)}async function _e(R,j,oe=!1){const Ge=R.sessions[oe?"decoder_model_merged":"model"],{past_key_values:Re,...He}=j;if(Ge.inputNames.includes("use_cache_branch")&&(He.use_cache_branch=xe(!!Re)),Ge.inputNames.includes("position_ids")&&He.attention_mask&&!He.position_ids){const fA=["paligemma","gemma3_text","gemma3"].includes(R.config.model_type)?1:0;He.position_ids=oA(He,Re,fA)}R.addPastKeyValues(He,Re);const nA=(0,w.pick)(He,Ge.inputNames);return await ee(Ge,nA)}function ne({modality_token_id:R,inputs_embeds:j,modality_features:oe,input_ids:Ge,attention_mask:Re}){const He=Ge.tolist().map(YA=>YA.reduce((dt,mt,It)=>(mt==R&&dt.push(It),dt),[])),nA=He.reduce((YA,dt)=>YA+dt.length,0),fA=oe.dims[0];if(nA!==fA)throw new Error(`Number of tokens and features do not match: tokens: ${nA}, features ${fA}`);let vA=0;for(let YA=0;YAHe.dims[1]||Re[Re.at(-1)])),{...oe,decoder_input_ids:we(j)}}function be(R,...j){return R.config.is_encoder_decoder?eA(R,...j):TA(R,...j)}function ze(R,j,oe,Ge){const Re=!!oe.past_key_values;return Ge.guidance_scale!==null&&Ge.guidance_scale>1&&(Re?oe.input_ids=(0,v.cat)([oe.input_ids,oe.input_ids],0):(oe.input_ids=(0,v.cat)([oe.input_ids,(0,v.full_like)(oe.input_ids,BigInt(Ge.pad_token_id))],0),oe.attention_mask=(0,v.cat)([oe.attention_mask,(0,v.full_like)(oe.attention_mask,0n)],0))),(Re||!oe.pixel_values)&&(oe.pixel_values=(0,v.full)([0,0,3,384,384],1)),Re&&(oe.images_seq_mask=new v.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),oe.images_emb_mask=new v.Tensor("bool",new Array(0).fill(!1),[1,1,0])),oe}class ge extends C.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(j,oe,Ge){super(),this.config=j,this.sessions=oe,this.configs=Ge;const Re=d.get(this.constructor),He=k.get(Re);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,He){case f.DecoderOnly:this.can_generate=!0,this._forward=_e,this._prepare_inputs_for_generation=TA;break;case f.Seq2Seq:case f.Vision2Seq:case f.Musicgen:this.can_generate=!0,this._forward=De,this._prepare_inputs_for_generation=eA;break;case f.EncoderDecoder:this._forward=De;break;case f.ImageTextToText:this.can_generate=!0,this._forward=iA,this._prepare_inputs_for_generation=be;break;case f.AudioTextToText:this.can_generate=!0,this._forward=Qe,this._prepare_inputs_for_generation=be;break;case f.Phi3V:case f.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=be;break;case f.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=ze;break;case f.AutoEncoder:this._forward=Oe;break;default:this._forward=Be;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){const j=[];for(const oe of Object.values(this.sessions))oe?.handler?.dispose&&j.push(oe.handler.dispose());return await Promise.all(j)}static async from_pretrained(j,{progress_callback:oe=null,config:Ge=null,cache_dir:Re=null,local_files_only:He=!1,revision:nA="main",model_file_name:fA=null,subfolder:vA="onnx",device:YA=null,dtype:dt=null,use_external_data_format:mt=null,session_options:It={}}={}){let tt={progress_callback:oe,config:Ge,cache_dir:Re,local_files_only:He,revision:nA,model_file_name:fA,subfolder:vA,device:YA,dtype:dt,use_external_data_format:mt,session_options:It};const Jt=d.get(this),rt=k.get(Jt);Ge=tt.config=await u.AutoConfig.from_pretrained(j,tt);let At;if(rt===f.DecoderOnly)At=await Promise.all([te(j,{model:tt.model_file_name??"model"},tt),T(j,{generation_config:"generation_config.json"},tt)]);else if(rt===f.Seq2Seq||rt===f.Vision2Seq)At=await Promise.all([te(j,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},tt),T(j,{generation_config:"generation_config.json"},tt)]);else if(rt===f.MaskGeneration)At=await Promise.all([te(j,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},tt)]);else if(rt===f.EncoderDecoder)At=await Promise.all([te(j,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},tt)]);else if(rt===f.ImageTextToText){const _t={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};Ge.is_encoder_decoder&&(_t.model="encoder_model"),At=await Promise.all([te(j,_t,tt),T(j,{generation_config:"generation_config.json"},tt)])}else if(rt===f.AudioTextToText){const _t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};At=await Promise.all([te(j,_t,tt),T(j,{generation_config:"generation_config.json"},tt)])}else if(rt===f.ImageAudioTextToText){const _t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};At=await Promise.all([te(j,_t,tt),T(j,{generation_config:"generation_config.json"},tt)])}else if(rt===f.Musicgen)At=await Promise.all([te(j,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},tt),T(j,{generation_config:"generation_config.json"},tt)]);else if(rt===f.MultiModality)At=await Promise.all([te(j,{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"},tt),T(j,{generation_config:"generation_config.json"},tt)]);else if(rt===f.Phi3V)At=await Promise.all([te(j,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},tt),T(j,{generation_config:"generation_config.json"},tt)]);else if(rt===f.AutoEncoder)At=await Promise.all([te(j,{encoder_model:"encoder_model",decoder_model:"decoder_model"},tt)]);else{if(rt!==f.EncoderOnly){const _t=Jt??Ge?.model_type;_t!=="custom"&&console.warn(`Model type for '${_t}' not found, assuming encoder-only architecture. Please report this at ${x.GITHUB_ISSUE_URL}.`)}At=await Promise.all([te(j,{model:tt.model_file_name??"model"},tt)])}return new this(Ge,...At)}async _call(j){return await this.forward(j)}async forward(j){return await this._forward(this,j)}get generation_config(){return this.configs?.generation_config??null}_get_logits_warper(j){const oe=new D.LogitsProcessorList;return j.temperature!==null&&j.temperature!==1&&oe.push(new D.TemperatureLogitsWarper(j.temperature)),j.top_k!==null&&j.top_k!==0&&oe.push(new D.TopKLogitsWarper(j.top_k)),j.top_p!==null&&j.top_p<1&&oe.push(new D.TopPLogitsWarper(j.top_p)),oe}_get_logits_processor(j,oe,Ge=null){const Re=new D.LogitsProcessorList;if(j.repetition_penalty!==null&&j.repetition_penalty!==1&&Re.push(new D.RepetitionPenaltyLogitsProcessor(j.repetition_penalty)),j.no_repeat_ngram_size!==null&&j.no_repeat_ngram_size>0&&Re.push(new D.NoRepeatNGramLogitsProcessor(j.no_repeat_ngram_size)),j.bad_words_ids!==null&&Re.push(new D.NoBadWordsLogitsProcessor(j.bad_words_ids,j.eos_token_id)),j.min_length!==null&&j.eos_token_id!==null&&j.min_length>0&&Re.push(new D.MinLengthLogitsProcessor(j.min_length,j.eos_token_id)),j.min_new_tokens!==null&&j.eos_token_id!==null&&j.min_new_tokens>0&&Re.push(new D.MinNewTokensLengthLogitsProcessor(oe,j.min_new_tokens,j.eos_token_id)),j.forced_bos_token_id!==null&&Re.push(new D.ForcedBOSTokenLogitsProcessor(j.forced_bos_token_id)),j.forced_eos_token_id!==null&&Re.push(new D.ForcedEOSTokenLogitsProcessor(j.max_length,j.forced_eos_token_id)),j.begin_suppress_tokens!==null){const He=oe>1||j.forced_bos_token_id===null?oe:oe+1;Re.push(new D.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,He))}return j.guidance_scale!==null&&j.guidance_scale>1&&Re.push(new D.ClassifierFreeGuidanceLogitsProcessor(j.guidance_scale)),Ge!==null&&Re.extend(Ge),Re}_prepare_generation_config(j,oe,Ge=B.GenerationConfig){const Re={...this.config};for(const nA of["decoder","generator","text_config"])nA in Re&&Object.assign(Re,Re[nA]);const He=new Ge(Re);return Object.assign(He,this.generation_config??{}),j&&Object.assign(He,j),oe&&Object.assign(He,(0,w.pick)(oe,Object.getOwnPropertyNames(He))),He}_get_stopping_criteria(j,oe=null){const Ge=new L.StoppingCriteriaList;return j.max_length!==null&&Ge.push(new L.MaxLengthCriteria(j.max_length,this.config.max_position_embeddings??null)),j.eos_token_id!==null&&Ge.push(new L.EosTokenCriteria(j.eos_token_id)),oe&&Ge.extend(oe),Ge}_validate_model_class(){if(!this.can_generate){const j=[xl,Bl,vl,Ml],oe=d.get(this.constructor),Ge=new Set,Re=this.config.model_type;for(const nA of j){const fA=nA.get(Re);fA&&Ge.add(fA[0])}let He=`The current model class (${oe}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw Ge.size>0&&(He+=` Please use the following class instead: ${[...Ge].join(", ")}`),Error(He)}}prepare_inputs_for_generation(...j){return this._prepare_inputs_for_generation(this,...j)}_update_model_kwargs_for_generation({generated_input_ids:j,outputs:oe,model_inputs:Ge,is_encoder_decoder:Re}){return Ge.past_key_values=this.getPastKeyValues(oe,Ge.past_key_values),Ge.input_ids=new v.Tensor("int64",j.flat(),[j.length,1]),Re||(Ge.attention_mask=(0,v.cat)([Ge.attention_mask,(0,v.ones)([Ge.attention_mask.dims[0],1])],1)),Ge.position_ids=null,Ge}_prepare_model_inputs({inputs:j,bos_token_id:oe,model_kwargs:Ge}){const Re=(0,w.pick)(Ge,this.forward_params),He=this.main_input_name;if(He in Re){if(j)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else Re[He]=j;return{inputs_tensor:Re[He],model_inputs:Re,model_input_name:He}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:j,model_inputs:oe,model_input_name:Ge,generation_config:Re}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!oe.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:nA,pixel_values:fA,attention_mask:vA,...YA}=oe,dt=await this._prepare_inputs_embeds(oe);oe={...YA,...(0,w.pick)(dt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:He}=await Be(this,oe);if(Re.guidance_scale!==null&&Re.guidance_scale>1)He=(0,v.cat)([He,(0,v.full_like)(He,0)],0),"attention_mask"in oe&&(oe.attention_mask=(0,v.cat)([oe.attention_mask,(0,v.zeros_like)(oe.attention_mask)],0));else if(oe.decoder_input_ids){const nA=we(oe.decoder_input_ids).dims[0];if(nA!==He.dims[0]){if(He.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${He.dims[0]}) than the decoder inputs (${nA}).`);He=(0,v.cat)(Array.from({length:nA},()=>He),0)}}return oe.encoder_outputs=He,oe}_prepare_decoder_input_ids_for_generation({batch_size:j,model_input_name:oe,model_kwargs:Ge,decoder_start_token_id:Re,bos_token_id:He,generation_config:nA}){let{decoder_input_ids:fA,...vA}=Ge;if(!(fA instanceof v.Tensor)){if(fA)Array.isArray(fA[0])||(fA=Array.from({length:j},()=>fA));else if(Re??=He,this.config.model_type==="musicgen")fA=Array.from({length:j*this.config.decoder.num_codebooks},()=>[Re]);else if(Array.isArray(Re)){if(Re.length!==j)throw new Error(`\`decoder_start_token_id\` expcted to have length ${j} but got ${Re.length}`);fA=Re}else fA=Array.from({length:j},()=>[Re]);fA=we(fA)}return Ge.decoder_attention_mask=(0,v.ones_like)(fA),{input_ids:fA,model_inputs:vA}}async generate({inputs:j=null,generation_config:oe=null,logits_processor:Ge=null,stopping_criteria:Re=null,streamer:He=null,...nA}){this._validate_model_class(),oe=this._prepare_generation_config(oe,nA);let{inputs_tensor:fA,model_inputs:vA,model_input_name:YA}=this._prepare_model_inputs({inputs:j,model_kwargs:nA});const dt=this.config.is_encoder_decoder;dt&&("encoder_outputs"in vA||(vA=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:fA,model_inputs:vA,model_input_name:YA,generation_config:oe})));let mt;dt?{input_ids:mt,model_inputs:vA}=this._prepare_decoder_input_ids_for_generation({batch_size:vA[YA].dims.at(0),model_input_name:YA,model_kwargs:vA,decoder_start_token_id:oe.decoder_start_token_id,bos_token_id:oe.bos_token_id,generation_config:oe}):mt=vA[YA];let It=mt.dims.at(-1);oe.max_new_tokens!==null&&(oe.max_length=It+oe.max_new_tokens);const tt=this._get_logits_processor(oe,It,Ge),Jt=this._get_stopping_criteria(oe,Re),rt=vA[YA].dims.at(0),At=Z.LogitsSampler.getSampler(oe),_t=new Array(rt).fill(0),fr=mt.tolist();He&&He.put(fr);let Or,qr={};for(;;){if(vA=this.prepare_inputs_for_generation(fr,vA,oe),Or=await this.forward(vA),oe.output_attentions&&oe.return_dict_in_generate){const Ls=this.getAttentions(Or);for(const Ta in Ls)Ta in qr||(qr[Ta]=[]),qr[Ta].push(Ls[Ta])}const kt=Or.logits.slice(null,-1,null),_r=tt(fr,kt),fs=[];for(let Ls=0;Ls<_r.dims.at(0);++Ls){const Ta=_r[Ls],qi=await At(Ta);for(const[$i,d0]of qi){const To=BigInt($i);_t[Ls]+=d0,fr[Ls].push(To),fs.push([To]);break}}if(He&&He.put(fs),Jt(fr).every(Ls=>Ls))break;vA=this._update_model_kwargs_for_generation({generated_input_ids:fs,outputs:Or,model_inputs:vA,is_encoder_decoder:dt})}He&&He.end();const $r=this.getPastKeyValues(Or,vA.past_key_values,!0),Xr=new v.Tensor("int64",fr.flat(),[fr.length,fr[0].length]);if(oe.return_dict_in_generate)return{sequences:Xr,past_key_values:$r,...qr};for(const kt of Object.values(Or))kt.location==="gpu-buffer"&&kt.dispose();return Xr}getPastKeyValues(j,oe,Ge=!1){const Re=Object.create(null);for(const He in j)if(He.startsWith("present")){const nA=He.replace("present_conv","past_conv").replace("present","past_key_values"),fA=He.includes("encoder");if(fA&&oe?Re[nA]=oe[nA]:Re[nA]=j[He],oe&&(!fA||Ge)){const vA=oe[nA];vA.location==="gpu-buffer"&&vA.dispose()}}return Re}getAttentions(j){const oe={};for(const Ge of["cross_attentions","encoder_attentions","decoder_attentions"])for(const Re in j)Re.startsWith(Ge)&&(Ge in oe||(oe[Ge]=[]),oe[Ge].push(j[Re]));return oe}addPastKeyValues(j,oe){if(oe)Object.assign(j,oe);else{const Ge=this.sessions.decoder_model_merged??this.sessions.model,Re=(j[this.main_input_name]??j.attention_mask)?.dims?.[0]??1,He=Ge?.config?.kv_cache_dtype??"float32",nA=He==="float16"?v.DataTypeMap.float16:v.DataTypeMap.float32,fA=(0,u.getCacheShapes)(this.config,{batch_size:Re});for(const vA in fA){const YA=fA[vA].reduce((dt,mt)=>dt*mt,1);j[vA]=new v.Tensor(He,new nA(YA),fA[vA])}}}async encode_image({pixel_values:j}){return(await ee(this.sessions.vision_encoder,{pixel_values:j})).image_features}async encode_text({input_ids:j}){return(await ee(this.sessions.embed_tokens,{input_ids:j})).inputs_embeds}async encode_audio({audio_values:j}){return(await ee(this.sessions.audio_encoder,{audio_values:j})).audio_features}}class Ye{}class aA extends Ye{constructor({last_hidden_state:j,hidden_states:oe=null,attentions:Ge=null}){super(),this.last_hidden_state=j,this.hidden_states=oe,this.attentions=Ge}}class Ze extends ge{}class Ve extends Ze{}class V extends Ze{async _call(j){return new ds(await super._call(j))}}class We extends Ze{async _call(j){return new ut(await super._call(j))}}class rA extends Ze{async _call(j){return new ss(await super._call(j))}}class fe extends Ze{async _call(j){return new vs(await super._call(j))}}class EA extends ge{}class Ue extends EA{}class LA extends EA{async _call(j){return new ds(await super._call(j))}}class IA extends EA{async _call(j){return new ut(await super._call(j))}}class hA extends EA{async _call(j){return new ss(await super._call(j))}}class SA extends EA{async _call(j){return new vs(await super._call(j))}}class pA extends ge{}class DA extends pA{}class PA extends pA{async _call(j){return new ds(await super._call(j))}}class at extends pA{async _call(j){return new ut(await super._call(j))}}class jA extends pA{async _call(j){return new ss(await super._call(j))}}class zA extends ge{}class Vt extends zA{}class bs extends zA{}class Rt extends ge{}class Ss extends Rt{}class Ht extends ge{}class Vr extends Ht{}class xs extends Ht{async _call(j){return new ds(await super._call(j))}}class ka extends Ht{async _call(j){return new ut(await super._call(j))}}class ua extends Ht{async _call(j){return new ss(await super._call(j))}}class da extends Ht{async _call(j){return new vs(await super._call(j))}}class wA extends ge{}class Dr extends wA{}class Ut extends wA{async _call(j){return new ds(await super._call(j))}}class ot extends wA{async _call(j){return new ut(await super._call(j))}}class js extends wA{async _call(j){return new ss(await super._call(j))}}class U extends wA{async _call(j){return new vs(await super._call(j))}}class Ee extends ge{}class ce extends Ee{}class ke extends Ee{async _call(j){return new ds(await super._call(j))}}class Me extends Ee{async _call(j){return new ut(await super._call(j))}}class Le extends Ee{async _call(j){return new ss(await super._call(j))}}class sA extends Ee{async _call(j){return new vs(await super._call(j))}}class OA extends ge{}class HA extends OA{}class BA extends OA{async _call(j){return new ds(await super._call(j))}}class gt extends OA{async _call(j){return new ut(await super._call(j))}}class lt extends OA{async _call(j){return new ss(await super._call(j))}}class Tr extends OA{async _call(j){return new vs(await super._call(j))}}class Gt extends ge{}class br extends Gt{}class Is extends Gt{async _call(j){return new ds(await super._call(j))}}class Dt extends Gt{async _call(j){return new ut(await super._call(j))}}class Pr extends Gt{async _call(j){return new ss(await super._call(j))}}class Os extends Gt{async _call(j){return new vs(await super._call(j))}}class Er extends ge{}class ps extends Er{}class _s extends Er{async _call(j){return new ds(await super._call(j))}}class zt extends Er{async _call(j){return new ut(await super._call(j))}}class Ws extends Er{async _call(j){return new ss(await super._call(j))}}class zs extends Er{async _call(j){return new vs(await super._call(j))}}class pr extends ge{}class ns extends pr{}class Mr extends pr{async _call(j){return new ut(await super._call(j))}}class vr extends pr{async _call(j){return new ss(await super._call(j))}}class ws extends pr{async _call(j){return new vs(await super._call(j))}}class qA extends pr{async _call(j){return new ds(await super._call(j))}}class xr extends ge{}class ms extends xr{}class is extends xr{async _call(j){return new ds(await super._call(j))}}class uA extends xr{async _call(j){return new ut(await super._call(j))}}class mA extends xr{async _call(j){return new ss(await super._call(j))}}class QA extends ge{}class jt extends QA{}class fa extends QA{async _call(j){return new ds(await super._call(j))}}class $s extends QA{async _call(j){return new ut(await super._call(j))}}class ga extends QA{async _call(j){return new vs(await super._call(j))}}class Ys extends ge{}class ja extends Ys{}class pa extends Ys{async _call(j){return new ds(await super._call(j))}}class en extends Ys{async _call(j){return new ut(await super._call(j))}}class Se extends Ys{async _call(j){return new ss(await super._call(j))}}class X extends Ys{async _call(j){return new vs(await super._call(j))}}class de extends ge{}class Ie extends de{}class ye extends de{async _call(j){return new ds(await super._call(j))}}class je extends de{async _call(j){return new ut(await super._call(j))}}class AA extends de{async _call(j){return new vs(await super._call(j))}}class yA extends ge{}class MA extends yA{}class Je extends yA{async _call(j){return new ut(await super._call(j))}}class bA extends yA{async _call(j){return new vs(await super._call(j))}}class ct extends yA{async _call(j){return new ds(await super._call(j))}}class nt extends ge{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class cr extends nt{}class Lr extends nt{}class qt extends ge{}class Qt extends qt{}class Tt extends qt{}class Gr extends ge{}class ks extends Gr{}class ir extends Gr{}class Es extends ge{}class $t extends Es{}class or extends Es{}class Bt extends Es{async _call(j){return new ut(await super._call(j))}}class er extends ge{}class Vs extends er{}class lr extends er{}class Ms extends er{async _call(j){return new ut(await super._call(j))}}class Br extends er{}class Kt extends ge{}class WA extends Kt{}class wt extends Kt{}class yr extends ge{}class Ea extends yr{}class An extends yr{}class ma extends ge{}class $n extends ma{}class Ma extends ma{async _call(j){return new ds(await super._call(j))}}class Dn extends ma{async _call(j){return new ut(await super._call(j))}}class ei extends ma{async _call(j){return new ss(await super._call(j))}}class tn extends ma{async _call(j){return new vs(await super._call(j))}}class Hs extends ge{}class Qr extends Hs{}class GA extends Hs{async _call(j){return new ds(await super._call(j))}}class os extends Hs{async _call(j){return new ut(await super._call(j))}}class Tn extends Hs{async _call(j){return new ss(await super._call(j))}}class rn extends Hs{async _call(j){return new vs(await super._call(j))}}class va extends ge{}class Pn extends va{}class Gn extends va{async _call(j){return new ds(await super._call(j))}}class Qn extends va{async _call(j){return new ut(await super._call(j))}}class Ai extends va{async _call(j){return new ss(await super._call(j))}}class Wa extends va{async _call(j){return new vs(await super._call(j))}}class yt extends ge{}class sn extends yt{}class xa extends yt{}class ea extends ge{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class Aa extends ea{}class Bs extends ea{_prepare_generation_config(j,oe){return super._prepare_generation_config(j,oe,z.WhisperGenerationConfig)}_retrieve_init_tokens(j){const oe=[j.decoder_start_token_id];let Ge=j.language;const Re=j.task;if(j.is_multilingual){Ge||(console.warn("No language specified - defaulting to English (en)."),Ge="en");const nA=`<|${(0,K.whisper_language_to_code)(Ge)}|>`;oe.push(j.lang_to_id[nA]),oe.push(j.task_to_id[Re??"transcribe"])}else if(Ge||Re)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!j.return_timestamps&&j.no_timestamps_token_id&&oe.at(-1)!==j.no_timestamps_token_id?oe.push(j.no_timestamps_token_id):j.return_timestamps&&oe.at(-1)===j.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),oe.pop()),oe.filter(He=>He!=null)}async generate({inputs:j=null,generation_config:oe=null,logits_processor:Ge=null,stopping_criteria:Re=null,...He}){oe=this._prepare_generation_config(oe,He);const nA=He.decoder_input_ids??this._retrieve_init_tokens(oe);if(oe.return_timestamps&&(Ge??=new D.LogitsProcessorList,Ge.push(new D.WhisperTimeStampLogitsProcessor(oe,nA))),oe.begin_suppress_tokens&&(Ge??=new D.LogitsProcessorList,Ge.push(new D.SuppressTokensAtBeginLogitsProcessor(oe.begin_suppress_tokens,nA.length))),oe.return_token_timestamps){if(!oe.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.");oe.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),oe.output_attentions=!0,oe.return_dict_in_generate=!0}const fA=await super.generate({inputs:j,generation_config:oe,logits_processor:Ge,decoder_input_ids:nA,...He});return oe.return_token_timestamps&&(fA.token_timestamps=this._extract_token_timestamps(fA,oe.alignment_heads,oe.num_frames)),fA}_extract_token_timestamps(j,oe,Ge=null,Re=.02){if(!j.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`.");Ge==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 He=this.config.median_filter_width;He===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),He=7);const nA=j.cross_attentions,fA=Array.from({length:this.config.decoder_layers},(rt,At)=>(0,v.cat)(nA.map(_t=>_t[At]),2)),vA=(0,v.stack)(oe.map(([rt,At])=>{if(rt>=fA.length)throw new Error(`Layer index ${rt} is out of bounds for cross attentions (length ${fA.length}).`);return Ge?fA[rt].slice(null,At,null,[0,Ge]):fA[rt].slice(null,At)})).transpose(1,0,2,3),[YA,dt]=(0,v.std_mean)(vA,-2,0,!0),mt=vA.clone();for(let rt=0;rt_t[kt+1]-_t[kt]),qr=(0,w.mergeArrays)([1],Or).map(Xr=>!!Xr),$r=[];for(let Xr=0;XrArray.from({length:j.dims[0]},Or=>Array.from({length:j.dims[1]},qr=>1))),Jt=oe?oe.tolist():[],rt=Ge?Ge.tolist():[];let At=0,_t=0;for(let fr=0;frIt[fr][as]==1),$r=Or.reduce((wr,as,Hn)=>(as==vA&&wr.push(Hn),wr),[]).map(wr=>Or[wr+1]),Xr=$r.filter(wr=>wr==nA).length,kt=$r.filter(wr=>wr==fA).length;let _r=[],fs=0,mi=Xr,Ls=kt;for(let wr=0;wr<$r.length;++wr){const as=Or.findIndex((Ci,Pa)=>Pa>fs&&Ci==nA),Hn=Or.findIndex((Ci,Pa)=>Pa>fs&&Ci==fA),hi=mi>0&&as!==-1?as:Or.length+1,eo=Ls>0&&Hn!==-1?Hn:Or.length+1;let f0,yl,Dl,Tl;hi0?(0,S.max)(_r.at(-1))[0]+1:0;_r.push(Array.from({length:3*Gl},(Ci,Pa)=>af+Pa%Gl));const Ql=Gl+af,p0=H8*Pl*g0,U8=Array.from({length:p0},(Ci,Pa)=>Ql+Math.floor(Pa/(Pl*g0))),K8=Array.from({length:p0},(Ci,Pa)=>Ql+Math.floor(Pa/g0)%Pl),X8=Array.from({length:p0},(Ci,Pa)=>Ql+Pa%g0);_r.push([U8,K8,X8].flat()),fs=f0+p0}if(fs0?(0,S.max)(_r.at(-1))[0]+1:0,as=Or.length-fs;_r.push(Array.from({length:3*as},(Hn,hi)=>wr+hi%as))}const Ta=_r.reduce((wr,as)=>wr+as.length,0),qi=new Array(Ta);let $i=0;for(let wr=0;wr<3;++wr)for(let as=0;as<_r.length;++as){const Hn=_r[as],hi=Hn.length/3;for(let eo=wr*hi;eo<(wr+1)*hi;++eo)qi[$i++]=Hn[eo]}let d0=0;const To=It[fr];for(let wr=0;wrmt[At%mt.length]),Jt=Array.from({length:It[0]},(rt,At)=>(0,S.max)(mt.subarray(It[1]*At,It[1]*(At+1)))[0]+1n+BigInt(It[1]));return[new v.Tensor("int64",tt,[3,...It]),new v.Tensor("int64",Jt,[Jt.length,1])]}else{const[mt,It]=j.dims,tt=BigInt64Array.from({length:3*mt*It},(Jt,rt)=>BigInt(Math.floor(rt%It/mt)));return[new v.Tensor("int64",tt,[3,...j.dims]),(0,v.zeros)([mt,1])]}}async encode_image({pixel_values:j,image_grid_thw:oe}){return(await ee(this.sessions.vision_encoder,{pixel_values:j,grid_thw:oe})).image_features}_merge_input_ids_with_image_features(j){return Ae({image_token_id:this.config.image_token_id,...j})}prepare_inputs_for_generation(j,oe,Ge){if(oe.attention_mask&&!oe.position_ids)if(!oe.past_key_values)[oe.position_ids,oe.rope_deltas]=this.get_rope_index(oe.input_ids,oe.image_grid_thw,oe.video_grid_thw,oe.attention_mask);else{oe.pixel_values=null;const Re=BigInt(Object.values(oe.past_key_values)[0].dims.at(-2)),He=oe.rope_deltas.map(nA=>Re+nA);oe.position_ids=(0,v.stack)([He,He,He],0)}return oe}}class Hi extends ge{}class In extends Hi{}class xo extends Hi{}class wn extends ge{}class ZA extends wn{}class A extends wn{}class t extends ge{}class r extends t{}class s extends t{}class i extends ge{}class l extends i{}class c extends i{}class g extends ge{}class p extends g{}class I extends g{}class h extends ge{}class M extends h{}class P extends h{async _call(j){return new ut(await super._call(j))}}class _ extends ge{}class Y extends _{}class H extends _{async _call(j){return new ut(await super._call(j))}}class J extends ge{}class re extends J{}class ie extends ge{}class me extends ie{}class ve extends ie{async _call(j){return new ut(await super._call(j))}}class Te extends ge{}class Fe extends Te{}class Ne extends ge{}class Xe extends Ne{}class cA extends Ne{async _call(j){return new ut(await super._call(j))}}class gA extends ge{}class NA extends gA{}class RA extends ge{}class $A extends RA{}class bt extends RA{async _call(j){return new ut(await super._call(j))}}class vt extends ge{}class Ot extends vt{async _call(j){return new rf(await super._call(j))}}class Xt extends ge{}class ar extends Xt{}class hr extends Xt{async _call(j){return new ut(await super._call(j))}}class dr extends ge{}class Sr extends dr{}class Wr extends dr{async _call(j){return new ut(await super._call(j))}}class Kr extends ge{}class rs extends Kr{}class cs extends Kr{}class us extends ge{}class na extends us{}class ia extends us{}class Js extends ge{}class kn extends Js{}class jn extends Js{async _call(j){return new ut(await super._call(j))}}class Da extends ge{}class Wn extends Da{}class Yn extends Da{async _call(j){return new Ki(await super._call(j))}}class Ui extends Da{async _call(j){return new Bo(await super._call(j))}}class Ki extends Ye{constructor({logits:j,pred_boxes:oe}){super(),this.logits=j,this.pred_boxes=oe}}class Bo extends Ye{constructor({logits:j,pred_boxes:oe,pred_masks:Ge}){super(),this.logits=j,this.pred_boxes=oe,this.pred_masks=Ge}}class Xi extends ge{}class Lc extends Xi{}class Rc extends Xi{async _call(j){return new yo(await super._call(j))}}class yo extends Ye{constructor({logits:j,pred_boxes:oe}){super(),this.logits=j,this.pred_boxes=oe}}class U0 extends ge{}class jc extends U0{}class Wc extends U0{async _call(j){return new Yc(await super._call(j))}}class Yc extends yo{}class K0 extends ge{}class Vc extends K0{}class Hc extends K0{async _call(j){return new Uc(await super._call(j))}}class Uc extends yo{}class X0 extends ge{}class Kc extends X0{}class Xc extends X0{async _call(j){return new yo(await super._call(j))}}class Z0 extends ge{}class Zc extends Z0{}class Jc extends Z0{async _call(j){return new qc(await super._call(j))}}class qc extends Ki{}class J0 extends ge{}class $c extends J0{}class e1 extends J0{async _call(j){return new ut(await super._call(j))}}class q0 extends ge{}class A1 extends q0{}class t1 extends q0{async _call(j){return new ut(await super._call(j))}}class $0 extends ge{}class r1 extends $0{}class s1 extends $0{async _call(j){return new ut(await super._call(j))}}class qo extends ge{}class a1 extends qo{}class n1 extends qo{async _call(j){return new ut(await super._call(j))}}class i1 extends qo{}class el extends ge{}class o1 extends el{}class l1 extends el{}class Al extends ge{}class c1 extends Al{}class u1 extends Al{}class d1 extends ge{}class f1 extends d1{}class $o extends ge{}class g1 extends $o{}class p1 extends $o{}class m1 extends $o{}class h1 extends ge{}class C1 extends h1{}class b1 extends ge{}class I1 extends b1{}class w1 extends ge{}class k1 extends w1{}class tl extends ge{}class E1 extends tl{}class M1 extends tl{}class rl extends ge{}class v1 extends rl{}class x1 extends rl{}class B1 extends ge{}class y1 extends B1{}class sl extends ge{}class D1 extends sl{}class T1 extends sl{async _call(j){return new ut(await super._call(j))}}class al extends ge{}class P1 extends al{}class G1 extends al{async _call(j){return new ut(await super._call(j))}}class nl extends ge{}class Q1 extends nl{}class F1 extends nl{async _call(j){return new ut(await super._call(j))}}class il extends ge{}class S1 extends il{}class O1 extends il{async _call(j){return new ut(await super._call(j))}}class _1 extends ge{}class z1 extends _1{}class ol extends ge{}class N1 extends ol{}class L1 extends ol{async _call(j){return new R1(await super._call(j))}}class R1 extends Ye{constructor({logits:j,pred_boxes:oe}){super(),this.logits=j,this.pred_boxes=oe}}class j1 extends ge{}class W1 extends j1{async get_image_embeddings({pixel_values:j}){return await Be(this,{pixel_values:j})}async forward(j){if((!j.image_embeddings||!j.image_positional_embeddings)&&(j={...j,...await this.get_image_embeddings(j)}),!j.input_labels&&j.input_points){const Ge=j.input_points.dims.slice(0,-1),Re=Ge.reduce((He,nA)=>He*nA,1);j.input_labels=new v.Tensor("int64",new BigInt64Array(Re).fill(1n),Ge)}const oe={image_embeddings:j.image_embeddings,image_positional_embeddings:j.image_positional_embeddings};return j.input_points&&(oe.input_points=j.input_points),j.input_labels&&(oe.input_labels=j.input_labels),j.input_boxes&&(oe.input_boxes=j.input_boxes),await ee(this.sessions.prompt_encoder_mask_decoder,oe)}async _call(j){return new Y1(await super._call(j))}}class Y1 extends Ye{constructor({iou_scores:j,pred_masks:oe}){super(),this.iou_scores=j,this.pred_masks=oe}}class ll extends ge{}class V1 extends ll{}class H1 extends ll{}class cl extends ge{}class U1 extends cl{}class K1 extends cl{}class Vn extends ge{}class X1 extends Vn{}class Z1 extends Vn{async _call(j){return new pi(await super._call(j))}}class J1 extends Vn{async _call(j){return new ut(await super._call(j))}}class q1 extends Vn{async _call(j){return new ss(await super._call(j))}}class ul extends ge{}class $1 extends ul{}class eu extends ul{async _call(j){return new ss(await super._call(j))}}class Au extends ge{}class tu extends Au{}class e0 extends ge{}class ru extends e0{}class su extends e0{async _call(j){return new pi(await super._call(j))}}class au extends e0{async _call(j){return new ut(await super._call(j))}}class Do extends ge{}class nu extends Do{}class iu extends Do{async _call(j){return new pi(await super._call(j))}}class ou extends Do{async _call(j){return new ut(await super._call(j))}}class lu extends Do{async _call(j){return new ss(await super._call(j))}}class A0 extends ge{}class cu extends A0{}class uu extends A0{async _call(j){return new pi(await super._call(j))}}class du extends A0{async _call(j){return new ut(await super._call(j))}}class $b extends ge{}class fu extends Vn{}class gu extends Vn{async _call(j){return new pi(await super._call(j))}}class pu extends Vn{async _call(j){return new ut(await super._call(j))}}class Zi extends ge{}class mu extends Zi{}class hu extends Zi{async _call(j){return new pi(await super._call(j))}}class Cu extends Zi{async _call(j){return new ut(await super._call(j))}}class bu extends Zi{async _call(j){return new tf(await super._call(j))}}class Iu extends Zi{async _call(j){return new ss(await super._call(j))}}class wu extends ge{}class ku extends wu{}class t0 extends ge{}class e8 extends t0{}class Eu extends t0{}class Mu extends t0{async generate_speech(j,oe,{threshold:Ge=.5,minlenratio:Re=0,maxlenratio:He=20,vocoder:nA=null}={}){const fA={input_ids:j},{encoder_outputs:vA,encoder_attention_mask:YA}=await Be(this,fA),dt=vA.dims[1]/this.config.reduction_factor,mt=Math.floor(dt*He),It=Math.floor(dt*Re),tt=this.config.num_mel_bins;let Jt=[],rt=null,At=null,_t=0;for(;;){++_t;const qr=xe(!!At);let $r;At?$r=At.output_sequence_out:$r=new v.Tensor("float32",new Float32Array(tt),[1,1,tt]);let Xr={use_cache_branch:qr,output_sequence:$r,encoder_attention_mask:YA,speaker_embeddings:oe,encoder_hidden_states:vA};this.addPastKeyValues(Xr,rt),At=await ee(this.sessions.decoder_model_merged,Xr),rt=this.getPastKeyValues(At,rt);const{prob:kt,spectrum:_r}=At;if(Jt.push(_r),_t>=It&&(Array.from(kt.data).filter(fs=>fs>=Ge).length>0||_t>=mt))break}const fr=(0,v.cat)(Jt),{waveform:Or}=await ee(nA.sessions.model,{spectrogram:fr});return{spectrogram:fr,waveform:Or}}}class vu extends ge{main_input_name="spectrogram"}class xu extends ge{}class Bu extends xu{}class dl extends ge{}class yu extends dl{}class Du extends dl{}class fl extends ge{}class Tu extends fl{}class Pu extends fl{}class gl extends ge{}class Gu extends gl{}class Qu extends gl{}class pl extends ge{}class Fu extends pl{}class Su extends pl{}class r0 extends ge{}class Ou extends r0{}class _u extends r0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"text_model"})}}class zu extends r0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"audio_model"})}}class Nu extends ge{}class ml extends Nu{async _call(j){return new sf(await super._call(j))}}class s0 extends ge{}class A8 extends s0{}class Lu extends s0{}class Ru extends s0{}class hl extends ge{}class ju extends hl{}class Wu extends hl{}class Cl extends ge{}class Yu extends Cl{}class Vu extends Cl{async _call(j){return new ut(await super._call(j))}}class bl extends ge{}class t8 extends bl{}class r8 extends bl{}class Il extends ge{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(j){const[oe,Ge]=j.dims,Re=this.config.decoder.num_codebooks,He=Ge-Re;let nA=0;for(let YA=0;YA0&&It<=He&&(j.data[nA++]=j.data[YA])}const fA=Math.floor(oe/Re),vA=nA/(fA*Re);return new v.Tensor(j.type,j.data.slice(0,nA),[fA,Re,vA])}prepare_inputs_for_generation(j,oe,Ge){let Re=structuredClone(j);for(let nA=0;nA=fA&&(Re[nA][fA]=BigInt(this.config.decoder.pad_token_id));return Ge.guidance_scale!==null&&Ge.guidance_scale>1&&(Re=Re.concat(Re)),super.prepare_inputs_for_generation(Re,oe,Ge)}async generate(j){const oe=await super.generate(j),Ge=this._apply_and_filter_by_delay_pattern_mask(oe).unsqueeze_(0),{audio_values:Re}=await ee(this.sessions.encodec_decode,{audio_codes:Ge});return Re}}class a0 extends ge{}class Hu extends a0{}class Uu extends a0{async _call(j){return new ut(await super._call(j))}}class Ku extends a0{}class n0 extends ge{}class Xu extends n0{}class Zu extends n0{async _call(j){return new ut(await super._call(j))}}class Ju extends n0{}class i0 extends ge{}class qu extends i0{}class $u extends i0{async _call(j){return new ut(await super._call(j))}}class ed extends i0{}class o0 extends ge{}class Ad extends o0{}class td extends o0{async _call(j){return new ut(await super._call(j))}}class rd extends o0{}class sd extends ge{}class ad extends sd{}class nd extends ge{}class id extends nd{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...j){super(...j),this._generation_mode="text"}async forward(j){const oe=this._generation_mode??"text";let Ge;if(oe==="text"||!j.past_key_values){const vA=this.sessions.prepare_inputs_embeds,YA=(0,w.pick)(j,vA.inputNames);Ge=await ee(vA,YA)}else{const vA=this.sessions.gen_img_embeds,YA=(0,w.pick)({image_ids:j.input_ids},vA.inputNames);Ge=await ee(vA,YA)}const Re={...j,...Ge},He=await _e(this,Re),nA=this.sessions[oe==="text"?"lm_head":"gen_head"];if(!nA)throw new Error(`Unable to find "${nA}" generation head`);const fA=await ee(nA,(0,w.pick)(He,nA.inputNames));return{...Ge,...He,...fA}}async generate(j){return this._generation_mode="text",super.generate(j)}async generate_images(j){this._generation_mode="image";const oe=(j.inputs??j[this.main_input_name]).dims[1],Re=(await super.generate(j)).slice(null,[oe,null]),He=this.sessions.image_decode,{decoded_image:nA}=await ee(He,{generated_tokens:Re}),fA=nA.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),vA=[];for(const YA of fA){const dt=F.RawImage.fromTensor(YA);vA.push(dt)}return vA}}class od extends Ye{constructor({char_logits:j,bpe_logits:oe,wp_logits:Ge}){super(),this.char_logits=j,this.bpe_logits=oe,this.wp_logits=Ge}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class ld extends ge{}class cd extends ld{async _call(j){return new od(await super._call(j))}}class wl extends ge{}class ud extends wl{}class dd extends wl{}class kl extends ge{}class fd extends kl{}class gd extends kl{}class pd extends ge{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class El extends pd{_merge_input_ids_with_audio_features(j){const oe=j.audio_features.dims.at(-1),Ge=j.audio_features.view(-1,oe);return pe({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...j,audio_features:Ge})}}class md extends El{}class l0 extends ge{main_input_name="input_values";forward_params=["input_values"]}class hd extends Ye{constructor({audio_codes:j}){super(),this.audio_codes=j}}class Cd extends Ye{constructor({audio_values:j}){super(),this.audio_values=j}}class bd extends l0{async encode(j){return new hd(await ee(this.sessions.encoder_model,j))}async decode(j){return new Cd(await ee(this.sessions.decoder_model,j))}}class Id extends l0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"encoder_model"})}}class wd extends l0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"decoder_model"})}}class c0 extends ge{main_input_name="input_values";forward_params=["input_values"]}class kd extends Ye{constructor({audio_codes:j}){super(),this.audio_codes=j}}class Ed extends Ye{constructor({audio_values:j}){super(),this.audio_values=j}}class Md extends c0{async encode(j){return new kd(await ee(this.sessions.encoder_model,j))}async decode(j){return new Ed(await ee(this.sessions.decoder_model,j))}}class vd extends c0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"encoder_model"})}}class xd extends c0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"decoder_model"})}}class u0 extends ge{main_input_name="input_values";forward_params=["input_values"]}class Bd extends u0{async encode(j){return await ee(this.sessions.encoder_model,j)}async decode(j){return await ee(this.sessions.decoder_model,j)}}class yd extends u0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"encoder_model"})}}class Dd extends u0{static async from_pretrained(j,oe={}){return super.from_pretrained(j,{...oe,model_file_name:oe.model_file_name??"decoder_model"})}}class Zt{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(j,{progress_callback:oe=null,config:Ge=null,cache_dir:Re=null,local_files_only:He=!1,revision:nA="main",model_file_name:fA=null,subfolder:vA="onnx",device:YA=null,dtype:dt=null,use_external_data_format:mt=null,session_options:It={}}={}){const tt={progress_callback:oe,config:Ge,cache_dir:Re,local_files_only:He,revision:nA,model_file_name:fA,subfolder:vA,device:YA,dtype:dt,use_external_data_format:mt,session_options:It};if(tt.config=await u.AutoConfig.from_pretrained(j,tt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);const Jt=tt.config.model_type;for(const rt of this.MODEL_CLASS_MAPPINGS){let At=rt.get(Jt);if(!At){for(const _t of rt.values())if(_t[0]===Jt){At=_t;break}if(!At)continue}return await At[1].from_pretrained(j,tt)}if(this.BASE_IF_FAIL)return Af.has(Jt)||console.warn(`Unknown model class "${Jt}", attempting to construct from base class.`),await ge.from_pretrained(j,tt);throw Error(`Unsupported model type: ${Jt}`)}}const s8=new Map([["bert",["BertModel",Ve]],["neobert",["NeoBertModel",Ue]],["modernbert",["ModernBertModel",DA]],["nomic_bert",["NomicBertModel",Ss]],["roformer",["RoFormerModel",Vr]],["electra",["ElectraModel",ce]],["esm",["EsmModel",ms]],["convbert",["ConvBertModel",Dr]],["camembert",["CamembertModel",HA]],["deberta",["DebertaModel",br]],["deberta-v2",["DebertaV2Model",ps]],["mpnet",["MPNetModel",ja]],["albert",["AlbertModel",MA]],["distilbert",["DistilBertModel",ns]],["roberta",["RobertaModel",$n]],["xlm",["XLMModel",Qr]],["xlm-roberta",["XLMRobertaModel",Pn]],["clap",["ClapModel",Ou]],["clip",["CLIPModel",dn]],["clipseg",["CLIPSegModel",zn]],["chinese_clip",["ChineseCLIPModel",_n]],["siglip",["SiglipModel",Ba]],["jina_clip",["JinaCLIPModel",Ua]],["mobilebert",["MobileBertModel",jt]],["squeezebert",["SqueezeBertModel",Ie]],["wav2vec2",["Wav2Vec2Model",X1]],["wav2vec2-bert",["Wav2Vec2BertModel",cu]],["unispeech",["UniSpeechModel",ru]],["unispeech-sat",["UniSpeechSatModel",nu]],["hubert",["HubertModel",fu]],["wavlm",["WavLMModel",mu]],["audio-spectrogram-transformer",["ASTModel",sn]],["vits",["VitsModel",ml]],["pyannote",["PyAnnoteModel",$1]],["wespeaker-resnet",["WeSpeakerResNetModel",tu]],["detr",["DetrModel",Wn]],["rt_detr",["RTDetrModel",Lc]],["rt_detr_v2",["RTDetrV2Model",jc]],["rf_detr",["RFDetrModel",Vc]],["d_fine",["DFineModel",Kc]],["table-transformer",["TableTransformerModel",Zc]],["vit",["ViTModel",M]],["ijepa",["IJepaModel",Y]],["pvt",["PvtModel",me]],["vit_msn",["ViTMSNModel",Xe]],["vit_mae",["ViTMAEModel",Fe]],["groupvit",["GroupViTModel",NA]],["fastvit",["FastViTModel",$A]],["mobilevit",["MobileViTModel",ar]],["mobilevitv2",["MobileViTV2Model",Sr]],["owlvit",["OwlViTModel",rs]],["owlv2",["Owlv2Model",na]],["beit",["BeitModel",kn]],["deit",["DeiTModel",$c]],["hiera",["HieraModel",A1]],["convnext",["ConvNextModel",D1]],["convnextv2",["ConvNextV2Model",P1]],["dinov2",["Dinov2Model",Q1]],["dinov2_with_registers",["Dinov2WithRegistersModel",S1]],["resnet",["ResNetModel",r1]],["swin",["SwinModel",a1]],["swin2sr",["Swin2SRModel",o1]],["donut-swin",["DonutSwinModel",y1]],["yolos",["YolosModel",N1]],["dpt",["DPTModel",c1]],["glpn",["GLPNModel",v1]],["hifigan",["SpeechT5HifiGan",vu]],["efficientnet",["EfficientNetModel",Yu]],["decision_transformer",["DecisionTransformerModel",ad]],["patchtst",["PatchTSTForPrediction",ud]],["patchtsmixer",["PatchTSMixerForPrediction",fd]],["mobilenet_v1",["MobileNetV1Model",Hu]],["mobilenet_v2",["MobileNetV2Model",Xu]],["mobilenet_v3",["MobileNetV3Model",qu]],["mobilenet_v4",["MobileNetV4Model",Ad]],["maskformer",["MaskFormerModel",E1]],["mgp-str",["MgpstrForSceneTextRecognition",cd]],["style_text_to_speech_2",["StyleTextToSpeech2Model",ku]]]),a8=new Map([["t5",["T5Model",cr]],["longt5",["LongT5Model",Qt]],["mt5",["MT5Model",ks]],["bart",["BartModel",$t]],["mbart",["MBartModel",Vs]],["marian",["MarianModel",V1]],["whisper",["WhisperModel",Aa]],["m2m_100",["M2M100Model",U1]],["blenderbot",["BlenderbotModel",WA]],["blenderbot-small",["BlenderbotSmallModel",Ea]]]),n8=new Map([["mimi",["MimiModel",bd]],["dac",["DacModel",Md]],["snac",["SnacModel",Bd]]]),i8=new Map([["bloom",["BloomModel",r]],["jais",["JAISModel",Fr]],["gpt2",["GPT2Model",Xa]],["gptj",["GPTJModel",G]],["gpt_bigcode",["GPTBigCodeModel",se]],["gpt_neo",["GPTNeoModel",Gs]],["gpt_neox",["GPTNeoXModel",Nn]],["codegen",["CodeGenModel",$e]],["llama",["LlamaModel",_A]],["arcee",["ArceeModel",Ft]],["lfm2",["Lfm2Model",mn]],["smollm3",["SmolLM3Model",ni]],["exaone",["ExaoneModel",hn]],["olmo",["OlmoModel",ts]],["olmo2",["Olmo2Model",Io]],["mobilellm",["MobileLLMModel",bo]],["granite",["GraniteModel",Ja]],["cohere",["CohereModel",wo]],["gemma",["GemmaModel",qa]],["gemma2",["Gemma2Model",di]],["gemma3_text",["Gemma3Model",Rn]],["helium",["HeliumModel",oi]],["glm",["GlmModel",ho]],["openelm",["OpenELMModel",Eo]],["qwen2",["Qwen2Model",ji]],["qwen3",["Qwen3Model",Yi]],["phi",["PhiModel",In]],["phi3",["Phi3Model",ZA]],["mpt",["MptModel",l]],["opt",["OPTModel",p]],["mistral",["MistralModel",yu]],["ernie4_5",["Ernie4_5_Model",Tu]],["starcoder2",["Starcoder2Model",Gu]],["falcon",["FalconModel",Fu]],["stablelm",["StableLmModel",ju]],["modernbert-decoder",["ModernBertDecoderModel",Vt]]]),Ml=new Map([["speecht5",["SpeechT5ForSpeechToText",Eu]],["whisper",["WhisperForConditionalGeneration",Bs]],["lite-whisper",["LiteWhisperForConditionalGeneration",Fn]],["moonshine",["MoonshineForConditionalGeneration",nn]]]),Td=new Map([["speecht5",["SpeechT5ForTextToSpeech",Mu]]]),Pd=new Map([["vits",["VitsModel",ml]],["musicgen",["MusicgenForConditionalGeneration",Il]]]),Gd=new Map([["bert",["BertForSequenceClassification",We]],["neobert",["NeoBertForSequenceClassification",IA]],["modernbert",["ModernBertForSequenceClassification",at]],["roformer",["RoFormerForSequenceClassification",ka]],["electra",["ElectraForSequenceClassification",Me]],["esm",["EsmForSequenceClassification",uA]],["convbert",["ConvBertForSequenceClassification",ot]],["camembert",["CamembertForSequenceClassification",gt]],["deberta",["DebertaForSequenceClassification",Dt]],["deberta-v2",["DebertaV2ForSequenceClassification",zt]],["mpnet",["MPNetForSequenceClassification",en]],["albert",["AlbertForSequenceClassification",Je]],["distilbert",["DistilBertForSequenceClassification",Mr]],["roberta",["RobertaForSequenceClassification",Dn]],["xlm",["XLMForSequenceClassification",os]],["xlm-roberta",["XLMRobertaForSequenceClassification",Qn]],["bart",["BartForSequenceClassification",Bt]],["mbart",["MBartForSequenceClassification",Ms]],["mobilebert",["MobileBertForSequenceClassification",$s]],["squeezebert",["SqueezeBertForSequenceClassification",je]]]),Qd=new Map([["bert",["BertForTokenClassification",rA]],["neobert",["NeoBertForTokenClassification",hA]],["modernbert",["ModernBertForTokenClassification",jA]],["roformer",["RoFormerForTokenClassification",ua]],["electra",["ElectraForTokenClassification",Le]],["esm",["EsmForTokenClassification",mA]],["convbert",["ConvBertForTokenClassification",js]],["camembert",["CamembertForTokenClassification",lt]],["deberta",["DebertaForTokenClassification",Pr]],["deberta-v2",["DebertaV2ForTokenClassification",Ws]],["mpnet",["MPNetForTokenClassification",Se]],["distilbert",["DistilBertForTokenClassification",vr]],["roberta",["RobertaForTokenClassification",ei]],["xlm",["XLMForTokenClassification",Tn]],["xlm-roberta",["XLMRobertaForTokenClassification",Ai]]]),vl=new Map([["t5",["T5ForConditionalGeneration",Lr]],["longt5",["LongT5ForConditionalGeneration",Tt]],["mt5",["MT5ForConditionalGeneration",ir]],["bart",["BartForConditionalGeneration",or]],["mbart",["MBartForConditionalGeneration",lr]],["marian",["MarianMTModel",H1]],["m2m_100",["M2M100ForConditionalGeneration",K1]],["blenderbot",["BlenderbotForConditionalGeneration",wt]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",An]]]),xl=new Map([["bloom",["BloomForCausalLM",s]],["gpt2",["GPT2LMHeadModel",Ns]],["jais",["JAISLMHeadModel",Ps]],["gptj",["GPTJForCausalLM",W]],["gpt_bigcode",["GPTBigCodeForCausalLM",ue]],["gpt_neo",["GPTNeoForCausalLM",gn]],["gpt_neox",["GPTNeoXForCausalLM",pn]],["codegen",["CodeGenForCausalLM",dA]],["llama",["LlamaForCausalLM",it]],["arcee",["ArceeForCausalLM",Rr]],["lfm2",["Lfm2ForCausalLM",jr]],["smollm3",["SmolLM3ForCausalLM",ii]],["exaone",["ExaoneForCausalLM",Co]],["olmo",["OlmoForCausalLM",_i]],["olmo2",["Olmo2ForCausalLM",tr]],["mobilellm",["MobileLLMForCausalLM",As]],["granite",["GraniteForCausalLM",bn]],["cohere",["CohereForCausalLM",Ni]],["gemma",["GemmaForCausalLM",Zs]],["gemma2",["Gemma2ForCausalLM",Ur]],["gemma3_text",["Gemma3ForCausalLM",ko]],["helium",["HeliumForCausalLM",mo]],["glm",["GlmForCausalLM",Si]],["openelm",["OpenELMForCausalLM",Mo]],["qwen2",["Qwen2ForCausalLM",vo]],["qwen3",["Qwen3ForCausalLM",gi]],["phi",["PhiForCausalLM",xo]],["phi3",["Phi3ForCausalLM",A]],["mpt",["MptForCausalLM",c]],["opt",["OPTForCausalLM",I]],["mbart",["MBartForCausalLM",Br]],["mistral",["MistralForCausalLM",Du]],["ernie4_5",["Ernie4_5_ForCausalLM",Pu]],["starcoder2",["Starcoder2ForCausalLM",Qu]],["falcon",["FalconForCausalLM",Su]],["trocr",["TrOCRForCausalLM",Bu]],["stablelm",["StableLmForCausalLM",Wu]],["modernbert-decoder",["ModernBertDecoderForCausalLM",bs]],["phi3_v",["Phi3VForCausalLM",sa]]]),o8=new Map([["multi_modality",["MultiModalityCausalLM",id]]]),Fd=new Map([["bert",["BertForMaskedLM",V]],["neobert",["NeoBertForMaskedLM",LA]],["modernbert",["ModernBertForMaskedLM",PA]],["roformer",["RoFormerForMaskedLM",xs]],["electra",["ElectraForMaskedLM",ke]],["esm",["EsmForMaskedLM",is]],["convbert",["ConvBertForMaskedLM",Ut]],["camembert",["CamembertForMaskedLM",BA]],["deberta",["DebertaForMaskedLM",Is]],["deberta-v2",["DebertaV2ForMaskedLM",_s]],["mpnet",["MPNetForMaskedLM",pa]],["albert",["AlbertForMaskedLM",ct]],["distilbert",["DistilBertForMaskedLM",qA]],["roberta",["RobertaForMaskedLM",Ma]],["xlm",["XLMWithLMHeadModel",GA]],["xlm-roberta",["XLMRobertaForMaskedLM",Gn]],["mobilebert",["MobileBertForMaskedLM",fa]],["squeezebert",["SqueezeBertForMaskedLM",ye]]]),Sd=new Map([["bert",["BertForQuestionAnswering",fe]],["neobert",["NeoBertForQuestionAnswering",SA]],["roformer",["RoFormerForQuestionAnswering",da]],["electra",["ElectraForQuestionAnswering",sA]],["convbert",["ConvBertForQuestionAnswering",U]],["camembert",["CamembertForQuestionAnswering",Tr]],["deberta",["DebertaForQuestionAnswering",Os]],["deberta-v2",["DebertaV2ForQuestionAnswering",zs]],["mpnet",["MPNetForQuestionAnswering",X]],["albert",["AlbertForQuestionAnswering",bA]],["distilbert",["DistilBertForQuestionAnswering",ws]],["roberta",["RobertaForQuestionAnswering",tn]],["xlm",["XLMForQuestionAnswering",rn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",Wa]],["mobilebert",["MobileBertForQuestionAnswering",ga]],["squeezebert",["SqueezeBertForQuestionAnswering",AA]]]),Bl=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Sn]],["idefics3",["Idefics3ForConditionalGeneration",un]],["smolvlm",["SmolVLMForConditionalGeneration",Va]]]),Od=new Map([["llava",["LlavaForConditionalGeneration",lA]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",ti]],["moondream1",["Moondream1ForConditionalGeneration",FA]],["florence2",["Florence2ForConditionalGeneration",cn]],["qwen2-vl",["Qwen2VLForConditionalGeneration",Vi]],["idefics3",["Idefics3ForConditionalGeneration",un]],["smolvlm",["SmolVLMForConditionalGeneration",Va]],["paligemma",["PaliGemmaForConditionalGeneration",ls]],["llava_qwen2",["LlavaQwen2ForCausalLM",ra]],["gemma3n",["Gemma3nForConditionalGeneration",Ya]]]),_d=new Map([["ultravox",["UltravoxModel",El]],["voxtral",["VoxtralForConditionalGeneration",md]]]),l8=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",Sn]]]),zd=new Map([["vit",["ViTForImageClassification",P]],["ijepa",["IJepaForImageClassification",H]],["pvt",["PvtForImageClassification",ve]],["vit_msn",["ViTMSNForImageClassification",cA]],["fastvit",["FastViTForImageClassification",bt]],["mobilevit",["MobileViTForImageClassification",hr]],["mobilevitv2",["MobileViTV2ForImageClassification",Wr]],["beit",["BeitForImageClassification",jn]],["deit",["DeiTForImageClassification",e1]],["hiera",["HieraForImageClassification",t1]],["convnext",["ConvNextForImageClassification",T1]],["convnextv2",["ConvNextV2ForImageClassification",G1]],["dinov2",["Dinov2ForImageClassification",F1]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",O1]],["resnet",["ResNetForImageClassification",s1]],["swin",["SwinForImageClassification",n1]],["segformer",["SegformerForImageClassification",Lu]],["efficientnet",["EfficientNetForImageClassification",Vu]],["mobilenet_v1",["MobileNetV1ForImageClassification",Uu]],["mobilenet_v2",["MobileNetV2ForImageClassification",Zu]],["mobilenet_v3",["MobileNetV3ForImageClassification",$u]],["mobilenet_v4",["MobileNetV4ForImageClassification",td]]]),Nd=new Map([["detr",["DetrForObjectDetection",Yn]],["rt_detr",["RTDetrForObjectDetection",Rc]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Wc]],["rf_detr",["RFDetrForObjectDetection",Hc]],["d_fine",["DFineForObjectDetection",Xc]],["table-transformer",["TableTransformerForObjectDetection",Jc]],["yolos",["YolosForObjectDetection",L1]]]),Ld=new Map([["owlvit",["OwlViTForObjectDetection",cs]],["owlv2",["Owlv2ForObjectDetection",ia]],["grounding-dino",["GroundingDinoForObjectDetection",z1]]]),Ji=new Map([["detr",["DetrForSegmentation",Ui]],["clipseg",["CLIPSegForImageSegmentation",et]]]),Rd=new Map([["segformer",["SegformerForSemanticSegmentation",Ru]],["sapiens",["SapiensForSemanticSegmentation",g1]],["swin",["SwinForSemanticSegmentation",i1]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",Ku]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",Ju]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",ed]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",rd]]]),jd=new Map([["detr",["DetrForSegmentation",Ui]],["maskformer",["MaskFormerForInstanceSegmentation",M1]]]),Wd=new Map([["sam",["SamModel",W1]]]),Yd=new Map([["wav2vec2",["Wav2Vec2ForCTC",Z1]],["wav2vec2-bert",["Wav2Vec2BertForCTC",uu]],["unispeech",["UniSpeechForCTC",su]],["unispeech-sat",["UniSpeechSatForCTC",iu]],["wavlm",["WavLMForCTC",hu]],["hubert",["HubertForCTC",gu]]]),Vd=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",J1]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",du]],["unispeech",["UniSpeechForSequenceClassification",au]],["unispeech-sat",["UniSpeechSatForSequenceClassification",ou]],["wavlm",["WavLMForSequenceClassification",Cu]],["hubert",["HubertForSequenceClassification",pu]],["audio-spectrogram-transformer",["ASTForAudioClassification",xa]]]),Hd=new Map([["wavlm",["WavLMForXVector",bu]]]),Ud=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",lu]],["wavlm",["WavLMForAudioFrameClassification",Iu]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",q1]],["pyannote",["PyAnnoteForAudioFrameClassification",eu]]]),Kd=new Map([["vitmatte",["VitMatteForImageMatting",Ot]]]),c8=new Map([["patchtst",["PatchTSTForPrediction",dd]],["patchtsmixer",["PatchTSMixerForPrediction",gd]]]),Xd=new Map([["swin2sr",["Swin2SRForImageSuperResolution",l1]]]),Zd=new Map([["dpt",["DPTForDepthEstimation",u1]],["depth_anything",["DepthAnythingForDepthEstimation",f1]],["glpn",["GLPNForDepthEstimation",x1]],["sapiens",["SapiensForDepthEstimation",p1]],["depth_pro",["DepthProForDepthEstimation",C1]],["metric3d",["Metric3DForDepthEstimation",I1]],["metric3dv2",["Metric3Dv2ForDepthEstimation",k1]]]),Jd=new Map([["sapiens",["SapiensForNormalEstimation",m1]]]),qd=new Map([["vitpose",["VitPoseForPoseEstimation",re]]]),$d=new Map([["clip",["CLIPVisionModelWithProjection",ri]],["siglip",["SiglipVisionModel",XA]],["jina_clip",["JinaCLIPVisionModel",ur]]]),ef=[[s8,f.EncoderOnly],[a8,f.EncoderDecoder],[i8,f.DecoderOnly],[n8,f.AutoEncoder],[Gd,f.EncoderOnly],[Qd,f.EncoderOnly],[vl,f.Seq2Seq],[Ml,f.Seq2Seq],[xl,f.DecoderOnly],[o8,f.MultiModality],[Fd,f.EncoderOnly],[Sd,f.EncoderOnly],[Bl,f.Vision2Seq],[Od,f.ImageTextToText],[_d,f.AudioTextToText],[zd,f.EncoderOnly],[Ji,f.EncoderOnly],[jd,f.EncoderOnly],[Rd,f.EncoderOnly],[Kd,f.EncoderOnly],[c8,f.EncoderOnly],[Xd,f.EncoderOnly],[Zd,f.EncoderOnly],[Jd,f.EncoderOnly],[qd,f.EncoderOnly],[Nd,f.EncoderOnly],[Ld,f.EncoderOnly],[Wd,f.MaskGeneration],[Yd,f.EncoderOnly],[Vd,f.EncoderOnly],[Td,f.Seq2Seq],[Pd,f.EncoderOnly],[Hd,f.EncoderOnly],[Ud,f.EncoderOnly],[$d,f.EncoderOnly]];for(const[R,j]of ef)for(const[oe,Ge]of R.values())k.set(oe,j),d.set(Ge,oe),e.set(oe,Ge);const u8=[["MusicgenForConditionalGeneration",Il,f.Musicgen],["Phi3VForCausalLM",sa,f.Phi3V],["CLIPTextModelWithProjection",kA,f.EncoderOnly],["SiglipTextModel",Ks,f.EncoderOnly],["JinaCLIPTextModel",Ds,f.EncoderOnly],["ClapTextModelWithProjection",_u,f.EncoderOnly],["ClapAudioModelWithProjection",zu,f.EncoderOnly],["DacEncoderModel",vd,f.EncoderOnly],["DacDecoderModel",xd,f.EncoderOnly],["MimiEncoderModel",Id,f.EncoderOnly],["MimiDecoderModel",wd,f.EncoderOnly],["SnacEncoderModel",yd,f.EncoderOnly],["SnacDecoderModel",Dd,f.EncoderOnly],["Gemma3nForConditionalGeneration",Ya,f.ImageAudioTextToText]];for(const[R,j,oe]of u8)k.set(R,oe),d.set(j,R),e.set(R,j);const Af=new Map([["modnet",Ji],["birefnet",Ji],["isnet",Ji],["ben",Ji]]);for(const[R,j]of Af.entries())j.set(R,["PreTrainedModel",ge]),k.set(R,f.EncoderOnly),d.set(ge,R),e.set(R,ge);class d8 extends Zt{static MODEL_CLASS_MAPPINGS=ef.map(j=>j[0]);static BASE_IF_FAIL=!0}class f8 extends Zt{static MODEL_CLASS_MAPPINGS=[Gd]}class g8 extends Zt{static MODEL_CLASS_MAPPINGS=[Qd]}class p8 extends Zt{static MODEL_CLASS_MAPPINGS=[vl]}class m8 extends Zt{static MODEL_CLASS_MAPPINGS=[Ml]}class h8 extends Zt{static MODEL_CLASS_MAPPINGS=[Td]}class C8 extends Zt{static MODEL_CLASS_MAPPINGS=[Pd]}class b8 extends Zt{static MODEL_CLASS_MAPPINGS=[xl]}class I8 extends Zt{static MODEL_CLASS_MAPPINGS=[Fd]}class w8 extends Zt{static MODEL_CLASS_MAPPINGS=[Sd]}class k8 extends Zt{static MODEL_CLASS_MAPPINGS=[Bl]}class E8 extends Zt{static MODEL_CLASS_MAPPINGS=[zd]}class M8 extends Zt{static MODEL_CLASS_MAPPINGS=[Ji]}class v8 extends Zt{static MODEL_CLASS_MAPPINGS=[Rd]}class x8 extends Zt{static MODEL_CLASS_MAPPINGS=[jd]}class B8 extends Zt{static MODEL_CLASS_MAPPINGS=[Nd]}class y8 extends Zt{static MODEL_CLASS_MAPPINGS=[Ld]}class D8 extends Zt{static MODEL_CLASS_MAPPINGS=[Wd]}class T8 extends Zt{static MODEL_CLASS_MAPPINGS=[Yd]}class P8 extends Zt{static MODEL_CLASS_MAPPINGS=[Vd]}class G8 extends Zt{static MODEL_CLASS_MAPPINGS=[Hd]}class Q8 extends Zt{static MODEL_CLASS_MAPPINGS=[Ud]}class F8 extends Zt{static MODEL_CLASS_MAPPINGS=[l8]}class S8 extends Zt{static MODEL_CLASS_MAPPINGS=[Kd]}class O8 extends Zt{static MODEL_CLASS_MAPPINGS=[Xd]}class _8 extends Zt{static MODEL_CLASS_MAPPINGS=[Zd]}class z8 extends Zt{static MODEL_CLASS_MAPPINGS=[Jd]}class N8 extends Zt{static MODEL_CLASS_MAPPINGS=[qd]}class L8 extends Zt{static MODEL_CLASS_MAPPINGS=[$d]}class R8 extends Zt{static MODEL_CLASS_MAPPINGS=[Od]}class j8 extends Zt{static MODEL_CLASS_MAPPINGS=[_d]}class W8 extends Ye{constructor({logits:j,past_key_values:oe,encoder_outputs:Ge,decoder_attentions:Re=null,cross_attentions:He=null}){super(),this.logits=j,this.past_key_values=oe,this.encoder_outputs=Ge,this.decoder_attentions=Re,this.cross_attentions=He}}class ut extends Ye{constructor({logits:j,...oe}){super(),this.logits=j;const Ge=Object.values(oe);Ge.length>0&&(this.attentions=Ge)}}class tf extends Ye{constructor({logits:j,embeddings:oe}){super(),this.logits=j,this.embeddings=oe}}class ss extends Ye{constructor({logits:j}){super(),this.logits=j}}class ds extends Ye{constructor({logits:j}){super(),this.logits=j}}class vs extends Ye{constructor({start_logits:j,end_logits:oe}){super(),this.start_logits=j,this.end_logits=oe}}class pi extends Ye{constructor({logits:j}){super(),this.logits=j}}class Y8 extends Ye{constructor({logits:j,past_key_values:oe}){super(),this.logits=j,this.past_key_values=oe}}class rf extends Ye{constructor({alphas:j}){super(),this.alphas=j}}class sf extends Ye{constructor({waveform:j,spectrogram:oe}){super(),this.waveform=j,this.spectrogram=oe}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(a,o,n)=>{n.r(o),n.d(o,{ASTFeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var m=n("./src/utils/audio.js");class b extends u.FeatureExtractor{constructor(w){super(w);const E=this.config.sampling_rate,x=(0,m.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(E/2),E,null,"kaldi",!0);this.mel_filters=x,this.window=(0,m.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(w,E){return(0,m.spectrogram)(w,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:E,transpose:!0})}async _call(w){(0,u.validate_audio_inputs)(w,"ASTFeatureExtractor");const E=await this._extract_fbank_features(w,this.config.max_length);if(this.config.do_normalize){const x=this.std*2,D=E.data;for(let B=0;B{n.r(o),n.d(o,{AutoFeatureExtractor:()=>C});var u=n("./src/utils/constants.js"),m=n("./src/utils/hub.js");n("./src/base/feature_extraction_utils.js");var b=n("./src/models/feature_extractors.js");class C{static async from_pretrained(E,x={}){const D=await(0,m.getModelJSON)(E,u.FEATURE_EXTRACTOR_NAME,!0,x),B=D.feature_extractor_type,v=b[B];if(!v)throw new Error(`Unknown feature_extractor_type: '${B}'. Please report this at ${u.GITHUB_ISSUE_URL}.`);return new v(D)}}},"./src/models/auto/image_processing_auto.js":(a,o,n)=>{n.r(o),n.d(o,{AutoImageProcessor:()=>w});var u=n("./src/utils/constants.js"),m=n("./src/utils/hub.js"),b=n("./src/base/image_processors_utils.js"),C=n("./src/models/image_processors.js");class w{static async from_pretrained(x,D={}){const B=await(0,m.getModelJSON)(x,u.IMAGE_PROCESSOR_NAME,!0,D),v=B.image_processor_type??B.feature_extractor_type;let F=C[v?.replace(/Fast$/,"")];return F||(v!==void 0&&console.warn(`Image processor type '${v}' not found, assuming base ImageProcessor. Please report this at ${u.GITHUB_ISSUE_URL}.`),F=b.ImageProcessor),new F(B)}}},"./src/models/auto/processing_auto.js":(a,o,n)=>{n.r(o),n.d(o,{AutoProcessor:()=>x});var u=n("./src/utils/constants.js"),m=n("./src/utils/hub.js"),b=n("./src/base/processing_utils.js"),C=n("./src/models/processors.js"),w=n("./src/models/image_processors.js"),E=n("./src/models/feature_extractors.js");class x{static async from_pretrained(B,v={}){const F=await(0,m.getModelJSON)(B,u.IMAGE_PROCESSOR_NAME,!0,v),{image_processor_type:S,feature_extractor_type:L,processor_class:Z}=F;if(Z&&C[Z])return C[Z].from_pretrained(B,v);if(!S&&!L)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const N={};if(S){const K=w[S.replace(/Fast$/,"")];if(!K)throw new Error(`Unknown image_processor_type: '${S}'.`);N.image_processor=new K(F)}if(L){const K=w[L];if(K)N.image_processor=new K(F);else{const f=E[L];if(!f)throw new Error(`Unknown feature_extractor_type: '${L}'.`);N.feature_extractor=new f(F)}}const z={};return new b.Processor(z,N,null)}}},"./src/models/beit/image_processing_beit.js":(a,o,n)=>{n.r(o),n.d(o,{BeitFeatureExtractor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/bit/image_processing_bit.js":(a,o,n)=>{n.r(o),n.d(o,{BitImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/chinese_clip/image_processing_chinese_clip.js":(a,o,n)=>{n.r(o),n.d(o,{ChineseCLIPFeatureExtractor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/clap/feature_extraction_clap.js":(a,o,n)=>{n.r(o),n.d(o,{ClapFeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var m=n("./src/utils/audio.js");class b extends u.FeatureExtractor{constructor(w){super(w),this.mel_filters=(0,m.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,m.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,m.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(w,E,x,D){let B;const v=w.length-E;if(v>0)if(x==="rand_trunc"){const F=Math.floor(Math.random()*(v+1));w=w.subarray(F,F+E),B=await this._extract_fbank_features(w,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${x}" not implemented`);else{if(v<0){let F=new Float64Array(E);if(F.set(w),D==="repeat")for(let S=w.length;S{n.r(o),n.d(o,{CLIPFeatureExtractor:()=>b,CLIPImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/convnext/image_processing_convnext.js":(a,o,n)=>{n.r(o),n.d(o,{ConvNextFeatureExtractor:()=>b,ConvNextImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{constructor(w){super(w),this.crop_pct=this.config.crop_pct??224/256}async resize(w){const E=this.size?.shortest_edge;if(E===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(E<384){const x=Math.floor(E/this.crop_pct),[D,B]=this.get_resize_output_image_size(w,{shortest_edge:x});w=await w.resize(D,B,{resample:this.resample}),w=await w.center_crop(E,E)}else w=await w.resize(E,E,{resample:this.resample});return w}}class b extends m{}},"./src/models/dac/feature_extraction_dac.js":(a,o,n)=>{n.r(o),n.d(o,{DacFeatureExtractor:()=>m});var u=n("./src/models/encodec/feature_extraction_encodec.js");class m extends u.EncodecFeatureExtractor{}},"./src/models/deit/image_processing_deit.js":(a,o,n)=>{n.r(o),n.d(o,{DeiTFeatureExtractor:()=>b,DeiTImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/detr/image_processing_detr.js":(a,o,n)=>{n.r(o),n.d(o,{DetrFeatureExtractor:()=>C,DetrImageProcessor:()=>b});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");class b extends u.ImageProcessor{async _call(E){const x=await super._call(E),D=[x.pixel_values.dims[0],64,64],B=(0,m.full)(D,1n);return{...x,pixel_mask:B}}post_process_object_detection(...E){return(0,u.post_process_object_detection)(...E)}post_process_panoptic_segmentation(...E){return(0,u.post_process_panoptic_segmentation)(...E)}post_process_instance_segmentation(...E){return(0,u.post_process_instance_segmentation)(...E)}}class C extends b{}},"./src/models/donut/image_processing_donut.js":(a,o,n)=>{n.r(o),n.d(o,{DonutFeatureExtractor:()=>b,DonutImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{pad_image(w,E,x,D={}){const[B,v,F]=E;let S=this.image_mean;Array.isArray(this.image_mean)||(S=new Array(F).fill(S));let L=this.image_std;Array.isArray(L)||(L=new Array(F).fill(S));const Z=S.map((N,z)=>-N/L[z]);return super.pad_image(w,E,x,{center:!0,constant_values:Z,...D})}}class b extends m{}},"./src/models/dpt/image_processing_dpt.js":(a,o,n)=>{n.r(o),n.d(o,{DPTFeatureExtractor:()=>b,DPTImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/efficientnet/image_processing_efficientnet.js":(a,o,n)=>{n.r(o),n.d(o,{EfficientNetImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{constructor(C){super(C),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(w=>w*w))}}},"./src/models/encodec/feature_extraction_encodec.js":(a,o,n)=>{n.r(o),n.d(o,{EncodecFeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js");class b extends u.FeatureExtractor{async _call(w){(0,u.validate_audio_inputs)(w,"EncodecFeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));const E=this.config.feature_size;if(w.length%E!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${E}).`);const x=[1,E,w.length/E];return{input_values:new m.Tensor("float32",w,x)}}}},"./src/models/feature_extractors.js":(a,o,n)=>{n.r(o),n.d(o,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ClapFeatureExtractor:()=>b.ClapFeatureExtractor,DacFeatureExtractor:()=>C.DacFeatureExtractor,EncodecFeatureExtractor:()=>m.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>w.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>Z.ImageProcessor,MoonshineFeatureExtractor:()=>E.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>x.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>D.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>B.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>v.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>F.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>S.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>L.WhisperFeatureExtractor});var u=n("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),m=n("./src/models/encodec/feature_extraction_encodec.js"),b=n("./src/models/clap/feature_extraction_clap.js"),C=n("./src/models/dac/feature_extraction_dac.js"),w=n("./src/models/gemma3n/feature_extraction_gemma3n.js"),E=n("./src/models/moonshine/feature_extraction_moonshine.js"),x=n("./src/models/pyannote/feature_extraction_pyannote.js"),D=n("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),B=n("./src/models/snac/feature_extraction_snac.js"),v=n("./src/models/speecht5/feature_extraction_speecht5.js"),F=n("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),S=n("./src/models/wespeaker/feature_extraction_wespeaker.js"),L=n("./src/models/whisper/feature_extraction_whisper.js"),Z=n("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(a,o,n)=>{n.r(o),n.d(o,{Florence2Processor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");class C extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;constructor(E,x,D){super(E,x,D);const{tasks_answer_post_processing_type:B,task_prompts_without_inputs:v,task_prompts_with_input:F}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(B??{})),this.task_prompts_without_inputs=new Map(Object.entries(v??{})),this.task_prompts_with_input=new Map(Object.entries(F??{})),this.regexes={quad_boxes:/(.+?)/gm,bboxes:/([^<]+)?/gm},this.size_per_bin=1e3}construct_prompts(E){typeof E=="string"&&(E=[E]);const x=[];for(const D of E)if(this.task_prompts_without_inputs.has(D))x.push(this.task_prompts_without_inputs.get(D));else{for(const[B,v]of this.task_prompts_with_input)if(D.includes(B)){x.push(v.replaceAll("{input}",D).replaceAll(B,""));break}x.length!==E.length&&x.push(D)}return x}post_process_generation(E,x,D){const B=this.tasks_answer_post_processing_type.get(x)??"pure_text";E=E.replaceAll("","").replaceAll("","");let v;switch(B){case"pure_text":v=E;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const F=B==="ocr"?"quad_boxes":"bboxes",S=E.matchAll(this.regexes[F]),L=[],Z=[];for(const[N,z,...K]of S)L.push(z?z.trim():L.at(-1)??""),Z.push(K.map((f,k)=>(Number(f)+.5)/this.size_per_bin*D[k%2]));v={labels:L,[F]:Z};break;default:throw new Error(`Task "${x}" (of type "${B}") not yet implemented.`)}return{[x]:v}}async _call(E,x=null,D={}){if(!E&&!x)throw new Error("Either text or images must be provided");const B=await this.image_processor(E,D),v=x?this.tokenizer(this.construct_prompts(x),D):{};return{...B,...v}}}},"./src/models/gemma3n/feature_extraction_gemma3n.js":(a,o,n)=>{n.r(o),n.d(o,{Gemma3nAudioFeatureExtractor:()=>C});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js"),b=n("./src/utils/audio.js");class C extends u.FeatureExtractor{constructor(E){super(E);const{fft_length:x,feature_size:D,min_frequency:B,max_frequency:v,sampling_rate:F,frame_length:S}=this.config,L=(0,b.mel_filter_bank)(Math.floor(1+x/2),D,B,v,F,null,"htk",!1);this.mel_filters=L,this.window=(0,b.window_function)(S,"hann")}async _extract_fbank_features(E,x){return(0,b.spectrogram)(E,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(E,{max_length:x=48e4,truncation:D=!0,padding:B=!0,pad_to_multiple_of:v=128}={}){if((0,u.validate_audio_inputs)(E,"Gemma3nAudioFeatureExtractor"),D&&E.length>x&&(E=E.slice(0,x)),B&&E.length%v!==0){const L=v-E.length%v,Z=new Float64Array(E.length+L);Z.set(E),this.config.padding_value!==0&&Z.fill(this.config.padding_value,E.length),E=Z}const F=await this._extract_fbank_features(E,this.config.max_length),S=(0,m.full)([1,F.dims[0]],!0);return{input_features:F.unsqueeze_(0),input_features_mask:S}}}},"./src/models/gemma3n/processing_gemma3n.js":(a,o,n)=>{n.r(o),n.d(o,{Gemma3nProcessor:()=>w});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/models/auto/feature_extraction_auto.js"),C=n("./src/tokenizers.js");n("./src/utils/image.js"),n("./src/utils/audio.js");class w extends u.Processor{static image_processor_class=m.AutoImageProcessor;static feature_extractor_class=b.AutoFeatureExtractor;static tokenizer_class=C.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(x,D,B){super(x,D,B),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;const{audio_token_id:v,boa_token:F,audio_token:S,eoa_token:L,image_token_id:Z,boi_token:N,image_token:z,eoi_token:K}=this.tokenizer.config;this.audio_token_id=v,this.boa_token=F,this.audio_token=S;const f=S.repeat(this.audio_seq_length);this.full_audio_sequence=` + +${F}${f}${L} + +`,this.image_token_id=Z,this.boi_token=N,this.image_token=z;const k=z.repeat(this.image_seq_length);this.full_image_sequence=` + +${N}${k}${K} + +`}async _call(x,D=null,B=null,v={}){typeof x=="string"&&(x=[x]);let F;B&&(F=await this.feature_extractor(B,v),x=x.map(Z=>Z.replaceAll(this.audio_token,this.full_audio_sequence)));let S;return D&&(S=await this.image_processor(D,v),x=x.map(Z=>Z.replaceAll(this.image_token,this.full_image_sequence))),{...this.tokenizer(x,v),...S,...F}}}},"./src/models/glpn/image_processing_glpn.js":(a,o,n)=>{n.r(o),n.d(o,{GLPNFeatureExtractor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/grounding_dino/image_processing_grounding_dino.js":(a,o,n)=>{n.r(o),n.d(o,{GroundingDinoImageProcessor:()=>b});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");class b extends u.ImageProcessor{async _call(w){const E=await super._call(w),x=E.pixel_values.dims,D=(0,m.ones)([x[0],x[2],x[3]]);return{...E,pixel_mask:D}}}},"./src/models/grounding_dino/processing_grounding_dino.js":(a,o,n)=>{n.r(o),n.d(o,{GroundingDinoProcessor:()=>E});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js"),C=n("./src/base/image_processors_utils.js");function w(x,D){const v=x.dims.at(-1)-1,F=x.tolist();F.fill(!1,0,1),F.fill(!1,v);const S=D.tolist();return F.map((L,Z)=>L?Z:null).filter(L=>L!==null).map(L=>S[L])}class E extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;async _call(D,B,v={}){const F=D?await this.image_processor(D,v):{};return{...B?this.tokenizer(B,v):{},...F}}post_process_grounded_object_detection(D,B,{box_threshold:v=.25,text_threshold:F=.25,target_sizes:S=null}={}){const{logits:L,pred_boxes:Z}=D,N=L.dims[0];if(S!==null&&S.length!==N)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const z=L.dims.at(1),K=L.sigmoid(),f=K.max(-1).tolist(),k=Z.tolist().map(d=>d.map(y=>(0,C.center_to_corners_format)(y))),e=[];for(let d=0;dee.map((Ce,we)=>Ce*y[(we+1)%2])));const te=f[d],T=[],O=[],he=[];for(let ee=0;ee{n.r(o),n.d(o,{Idefics3ImageProcessor:()=>b});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");class b extends u.ImageProcessor{constructor(w){super(w),this.do_image_splitting=w.do_image_splitting??!0,this.max_image_size=w.max_image_size}get_resize_for_vision_encoder(w,E){let[x,D]=w.dims.slice(-2);const B=D/x;return D>=x?(D=Math.ceil(D/E)*E,x=Math.floor(D/B),x=Math.ceil(x/E)*E):(x=Math.ceil(x/E)*E,D=Math.floor(x*B),D=Math.ceil(D/E)*E),{height:x,width:D}}async _call(w,{do_image_splitting:E=null,return_row_col_info:x=!1}={}){let D;if(!Array.isArray(w))D=[[w]];else{if(w.length===0||!w[0])throw new Error("No images provided.");Array.isArray(w[0])?D=w:D=[w]}let B=[],v=[],F=[];const S=[],L=[];for(const d of D){let y=await Promise.all(d.map(O=>this.preprocess(O)));S.push(...y.map(O=>O.original_size)),L.push(...y.map(O=>O.reshaped_input_size)),y.forEach(O=>O.pixel_values.unsqueeze_(0));const{longest_edge:te}=this.max_image_size;let T;if(E??this.do_image_splitting){let O=new Array(y.length),he=new Array(y.length);T=await Promise.all(y.map(async(ee,Ce)=>{const we=this.get_resize_for_vision_encoder(ee.pixel_values,te),xe=await(0,m.interpolate_4d)(ee.pixel_values,{size:[we.height,we.width]}),{frames:De,num_splits_h:Be,num_splits_w:Oe}=await this.split_image(xe,this.max_image_size);return O[Ce]=Be,he[Ce]=Oe,(0,m.cat)(De,0)})),v.push(O),F.push(he)}else{const O=[te,te];T=await Promise.all(y.map(he=>(0,m.interpolate_4d)(he.pixel_values,{size:O}))),v.push(new Array(y.length).fill(0)),F.push(new Array(y.length).fill(0))}B.push((0,m.cat)(T,0))}const Z=B.length,[N,z,K,f]=B[0].dims;let k,e;if(Z===1)k=B[0].unsqueeze_(0),e=(0,m.full)([Z,N,K,f],!0);else{const d=Math.max(...B.map(T=>T.dims.at(0)));e=(0,m.full)([Z,d,K,f],!0);const y=e.data,te=d*K*f;for(let T=0;Tx||F>D){S=Math.ceil(v/x),L=Math.ceil(F/D);const Z=Math.ceil(v/S),N=Math.ceil(F/L);for(let f=0;f{n.r(o),n.d(o,{Idefics3Processor:()=>D});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");n("./src/utils/image.js");var C=n("./src/utils/core.js");function w(B,v,F,S,L,Z){let N="";for(let z=0;z`+L.repeat(B);N+=` +`}return N+=` +${S}${Z}`+L.repeat(B)+`${S}`,N}function E(B,v,F,S){return`${v}${S}`+F.repeat(B)+`${v}`}function x(B,v,F,S,L,Z){return B===0&&v===0?E(F,S,L,Z):w(F,B,v,S,L,Z)}class D extends u.Processor{static image_processor_class=m.AutoImageProcessor;static tokenizer_class=b.AutoTokenizer;static uses_processor_config=!0;fake_image_token="";image_token="";global_img_token="";async _call(v,F=null,S={}){S.return_row_col_info??=!0;let L;F&&(L=await this.image_processor(F,S)),Array.isArray(v)||(v=[v]);const Z=L.rows??[new Array(v.length).fill(0)],N=L.cols??[new Array(v.length).fill(0)],z=this.config.image_seq_len,K=[],f=[];for(let e=0;ex(ee,te[Ce],z,this.fake_image_token,this.image_token,this.global_img_token)),O=d.split(this.image_token);if(O.length===0)throw new Error("The image token should be present in the text.");let he=O[0];for(let ee=0;ee{n.r(o),n.d(o,{BeitFeatureExtractor:()=>u.BeitFeatureExtractor,BitImageProcessor:()=>m.BitImageProcessor,CLIPFeatureExtractor:()=>C.CLIPFeatureExtractor,CLIPImageProcessor:()=>C.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>b.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>w.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>w.ConvNextImageProcessor,DPTFeatureExtractor:()=>B.DPTFeatureExtractor,DPTImageProcessor:()=>B.DPTImageProcessor,DeiTFeatureExtractor:()=>E.DeiTFeatureExtractor,DeiTImageProcessor:()=>E.DeiTImageProcessor,DetrFeatureExtractor:()=>x.DetrFeatureExtractor,DetrImageProcessor:()=>x.DetrImageProcessor,DonutFeatureExtractor:()=>D.DonutFeatureExtractor,DonutImageProcessor:()=>D.DonutImageProcessor,EfficientNetImageProcessor:()=>v.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>F.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>S.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>L.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>N.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>z.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>K.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>f.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>f.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>k.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>k.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>e.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>e.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>d.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>d.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>y.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>y.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>te.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>te.MobileViTImageProcessor,NougatImageProcessor:()=>T.NougatImageProcessor,OwlViTFeatureExtractor:()=>he.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>he.OwlViTImageProcessor,Owlv2ImageProcessor:()=>O.Owlv2ImageProcessor,Phi3VImageProcessor:()=>ee.Phi3VImageProcessor,PvtImageProcessor:()=>Ce.PvtImageProcessor,Qwen2VLImageProcessor:()=>we.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>xe.RTDetrImageProcessor,SamImageProcessor:()=>De.SamImageProcessor,SegformerFeatureExtractor:()=>Be.SegformerFeatureExtractor,SegformerImageProcessor:()=>Be.SegformerImageProcessor,SiglipImageProcessor:()=>Oe.SiglipImageProcessor,SmolVLMImageProcessor:()=>_e.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>ne.Swin2SRImageProcessor,VLMImageProcessor:()=>Z.VLMImageProcessor,ViTFeatureExtractor:()=>Ae.ViTFeatureExtractor,ViTImageProcessor:()=>Ae.ViTImageProcessor,VitMatteImageProcessor:()=>pe.VitMatteImageProcessor,VitPoseImageProcessor:()=>le.VitPoseImageProcessor,YolosFeatureExtractor:()=>Qe.YolosFeatureExtractor,YolosImageProcessor:()=>Qe.YolosImageProcessor});var u=n("./src/models/beit/image_processing_beit.js"),m=n("./src/models/bit/image_processing_bit.js"),b=n("./src/models/chinese_clip/image_processing_chinese_clip.js"),C=n("./src/models/clip/image_processing_clip.js"),w=n("./src/models/convnext/image_processing_convnext.js"),E=n("./src/models/deit/image_processing_deit.js"),x=n("./src/models/detr/image_processing_detr.js"),D=n("./src/models/donut/image_processing_donut.js"),B=n("./src/models/dpt/image_processing_dpt.js"),v=n("./src/models/efficientnet/image_processing_efficientnet.js"),F=n("./src/models/glpn/image_processing_glpn.js"),S=n("./src/models/grounding_dino/image_processing_grounding_dino.js"),L=n("./src/models/idefics3/image_processing_idefics3.js"),Z=n("./src/models/janus/image_processing_janus.js"),N=n("./src/models/jina_clip/image_processing_jina_clip.js"),z=n("./src/models/llava_onevision/image_processing_llava_onevision.js"),K=n("./src/models/mask2former/image_processing_mask2former.js"),f=n("./src/models/maskformer/image_processing_maskformer.js"),k=n("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),e=n("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),d=n("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),y=n("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),te=n("./src/models/mobilevit/image_processing_mobilevit.js"),T=n("./src/models/nougat/image_processing_nougat.js"),O=n("./src/models/owlv2/image_processing_owlv2.js"),he=n("./src/models/owlvit/image_processing_owlvit.js"),ee=n("./src/models/phi3_v/image_processing_phi3_v.js"),Ce=n("./src/models/pvt/image_processing_pvt.js"),we=n("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),xe=n("./src/models/rt_detr/image_processing_rt_detr.js"),De=n("./src/models/sam/image_processing_sam.js"),Be=n("./src/models/segformer/image_processing_segformer.js"),Oe=n("./src/models/siglip/image_processing_siglip.js"),_e=n("./src/models/smolvlm/image_processing_smolvlm.js"),ne=n("./src/models/swin2sr/image_processing_swin2sr.js"),Ae=n("./src/models/vit/image_processing_vit.js"),pe=n("./src/models/vitmatte/image_processing_vitmatte.js"),le=n("./src/models/vitpose/image_processing_vitpose.js"),Qe=n("./src/models/yolos/image_processing_yolos.js")},"./src/models/janus/image_processing_janus.js":(a,o,n)=>{n.r(o),n.d(o,{VLMImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{constructor(C){super({do_pad:!0,pad_size:{width:C.image_size,height:C.image_size},...C}),this.constant_values=this.config.background_color.map(w=>w*this.rescale_factor)}pad_image(C,w,E,x){return super.pad_image(C,w,E,{constant_values:this.constant_values,center:!0,...x})}}},"./src/models/janus/processing_janus.js":(a,o,n)=>{n.r(o),n.d(o,{VLChatProcessor:()=>x});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js"),C=n("./src/utils/core.js"),w=n("./src/utils/tensor.js"),E=n("./src/utils/image.js");class x extends u.Processor{static image_processor_class=m.AutoImageProcessor;static tokenizer_class=b.AutoTokenizer;static uses_processor_config=!0;constructor(B,v,F){super(B,v,F),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(B,{images:v=null,chat_template:F="default"}={}){v?Array.isArray(v)||(v=[v]):v=await Promise.all(B.filter(T=>T.images).flatMap(T=>T.images).map(T=>E.RawImage.read(T)));const S=this.tokenizer,L=S.apply_chat_template(B,{tokenize:!1,add_generation_prompt:!0,chat_template:F}),Z=T=>S.encode(T,{add_special_tokens:!1}),N=L.split(this.image_tag),z=N.length-1;if(v.length!==z)throw new Error(`Number of images provided (${v.length}) does not match number of "${this.image_tag}" image tags (${z})`);const[K,f,k]=S.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let e=Z(N[0]),d=new Array(e.length).fill(!1);for(let T=1;T0){const T=await this.image_processor(v);return T.pixel_values.unsqueeze_(0),{...te,...T}}return te}}},"./src/models/jina_clip/image_processing_jina_clip.js":(a,o,n)=>{n.r(o),n.d(o,{JinaCLIPImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{constructor(C){const{resize_mode:w,fill_color:E,interpolation:x,size:D,...B}=C,v=w==="squash"?{width:D,height:D}:w==="shortest"?{shortest_edge:D}:{longest_edge:D},F=x==="bicubic"?3:2;super({...B,size:v,resample:F,do_center_crop:!0,crop_size:D,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(a,o,n)=>{n.r(o),n.d(o,{JinaCLIPProcessor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");class C extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;async _call(E=null,x=null,D={}){if(!E&&!x)throw new Error("Either text or images must be provided");const B=E?this.tokenizer(E,D):{},v=x?await this.image_processor(x,D):{};return{...B,...v}}}},"./src/models/llava/processing_llava.js":(a,o,n)=>{n.r(o),n.d(o,{LlavaProcessor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");class C extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;static uses_processor_config=!0;async _call(E,x=null,D={}){const B=await this.image_processor(E,D);if(x){const[F,S]=B.pixel_values.dims.slice(-2),{image_token:L,patch_size:Z,num_additional_image_tokens:N}=this.config,z=Math.floor(F/Z)*Math.floor(S/Z)+N;x=structuredClone(x),Array.isArray(x)||(x=[x]);for(let K=0;K{n.r(o),n.d(o,{LlavaOnevisionImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/mask2former/image_processing_mask2former.js":(a,o,n)=>{n.r(o),n.d(o,{Mask2FormerImageProcessor:()=>m});var u=n("./src/models/maskformer/image_processing_maskformer.js");class m extends u.MaskFormerImageProcessor{}},"./src/models/maskformer/image_processing_maskformer.js":(a,o,n)=>{n.r(o),n.d(o,{MaskFormerFeatureExtractor:()=>b,MaskFormerImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_panoptic_segmentation(...w){return(0,u.post_process_panoptic_segmentation)(...w)}post_process_instance_segmentation(...w){return(0,u.post_process_instance_segmentation)(...w)}}class b extends m{}},"./src/models/mgp_str/processing_mgp_str.js":(a,o,n)=>{n.r(o),n.d(o,{MgpstrProcessor:()=>E});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js"),C=n("./src/utils/maths.js");const w={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class E extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;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(D,B){if(!w.hasOwnProperty(B))throw new Error(`Format ${B} is not supported.`);const[v,F]=w[B],S=this[v].bind(this),[L,Z]=D.dims,N=[],z=[],K=D.tolist();for(let k=0;k0?y.reduce((T,O)=>T*O,1):0;z.push(d),N.push(te)}return[S(z),N]}char_decode(D){return this.char_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}bpe_decode(D){return this.bpe_tokenizer.batch_decode(D)}wp_decode(D){return this.wp_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}batch_decode([D,B,v]){const[F,S]=this._decode_helper(D,"char"),[L,Z]=this._decode_helper(B,"bpe"),[N,z]=this._decode_helper(v,"wp"),K=[],f=[];for(let k=0;k{n.r(o),n.d(o,{MobileNetV1FeatureExtractor:()=>b,MobileNetV1ImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(a,o,n)=>{n.r(o),n.d(o,{MobileNetV2FeatureExtractor:()=>b,MobileNetV2ImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(a,o,n)=>{n.r(o),n.d(o,{MobileNetV3FeatureExtractor:()=>b,MobileNetV3ImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(a,o,n)=>{n.r(o),n.d(o,{MobileNetV4FeatureExtractor:()=>b,MobileNetV4ImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/mobilevit/image_processing_mobilevit.js":(a,o,n)=>{n.r(o),n.d(o,{MobileViTFeatureExtractor:()=>b,MobileViTImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/moonshine/feature_extraction_moonshine.js":(a,o,n)=>{n.r(o),n.d(o,{MoonshineFeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js");class b extends u.FeatureExtractor{async _call(w){(0,u.validate_audio_inputs)(w,"MoonshineFeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));const E=[1,w.length];return{input_values:new m.Tensor("float32",w,E)}}}},"./src/models/moonshine/processing_moonshine.js":(a,o,n)=>{n.r(o),n.d(o,{MoonshineProcessor:()=>C});var u=n("./src/models/auto/feature_extraction_auto.js"),m=n("./src/tokenizers.js"),b=n("./src/base/processing_utils.js");class C extends b.Processor{static tokenizer_class=m.AutoTokenizer;static feature_extractor_class=u.AutoFeatureExtractor;async _call(E){return await this.feature_extractor(E)}}},"./src/models/nougat/image_processing_nougat.js":(a,o,n)=>{n.r(o),n.d(o,{NougatImageProcessor:()=>m});var u=n("./src/models/donut/image_processing_donut.js");class m extends u.DonutImageProcessor{}},"./src/models/owlv2/image_processing_owlv2.js":(a,o,n)=>{n.r(o),n.d(o,{Owlv2ImageProcessor:()=>m});var u=n("./src/models/owlvit/image_processing_owlvit.js");class m extends u.OwlViTImageProcessor{}},"./src/models/owlvit/image_processing_owlvit.js":(a,o,n)=>{n.r(o),n.d(o,{OwlViTFeatureExtractor:()=>b,OwlViTImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_object_detection(...w){return(0,u.post_process_object_detection)(...w)}}class b extends m{}},"./src/models/owlvit/processing_owlvit.js":(a,o,n)=>{n.r(o),n.d(o,{OwlViTProcessor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");class C extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor}},"./src/models/paligemma/processing_paligemma.js":(a,o,n)=>{n.r(o),n.d(o,{PaliGemmaProcessor:()=>E});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");const C="";function w(x,D,B,v,F){return`${v.repeat(B*F)}${D}${x} +`}class E extends u.Processor{static tokenizer_class=b.AutoTokenizer;static image_processor_class=m.AutoImageProcessor;static uses_processor_config=!1;async _call(D,B=null,v={}){B||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),B=""),Array.isArray(D)||(D=[D]),Array.isArray(B)||(B=[B]);const F=this.tokenizer.bos_token,S=this.image_processor.config.image_seq_length;let L;B.some(z=>z.includes(C))?L=B.map(z=>{const K=z.replaceAll(C,C.repeat(S)),f=K.lastIndexOf(C),k=f===-1?0:f+C.length;return K.slice(0,k)+F+K.slice(k)+` +`}):(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."),L=B.map(z=>w(z,F,S,C,D.length)));const Z=this.tokenizer(L,v);return{...await this.image_processor(D,v),...Z}}}},"./src/models/phi3_v/image_processing_phi3_v.js":(a,o,n)=>{n.r(o),n.d(o,{Phi3VImageProcessor:()=>D});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");const b=336,C=[2,3],{ceil:w,floor:E,sqrt:x}=Math;class D extends u.ImageProcessor{constructor(v){super({...v,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=v.num_crops}calc_num_image_tokens_from_image_size(v,F){const{num_img_tokens:S}=this.config;return E((E(F/b)*E(v/b)+1)*S+1+(E(F/b)+1)*x(S))}get_resize_output_image_size(v,F){const S=this._num_crops,[L,Z]=v.size;let N=L/Z,z=1;for(;z*Math.ceil(z/N)<=S;)z+=1;z-=1;const K=Math.floor(z*336),f=Math.floor(K/N);return[K,f]}pad_image(v,F,S,L={}){const[Z,N]=F,z=b*w(Z/b),K=b*w(N/b),f=[1,1,1].map((k,e)=>(k-this.image_mean[e])/this.image_std[e]);return super.pad_image(v,F,{width:K,height:z},{center:!0,constant_values:f,...L})}async _call(v,{num_crops:F=null}={}){if(this._num_crops=F??=this.config.num_crops,F<4||x(F)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(v)||(v=[v]);const S=v.length,L=await Promise.all(v.map(d=>this.preprocess(d))),Z=L.map(d=>d.original_size),N=L.map(d=>d.reshaped_input_size),z=[];for(const{pixel_values:d}of L){d.unsqueeze_(0);const[y,te]=d.dims.slice(-2),T=await(0,m.interpolate_4d)(d,{size:[b,b],mode:"bicubic"});if(F>0){const O=[],he=x(F),ee=E(te/he),Ce=E(y/he);for(let xe=0;xed.map(y=>b*w(y/b))),k=new m.Tensor("int64",f.flat(),[S,2]),e=f.map(([d,y])=>this.calc_num_image_tokens_from_image_size(y,d));return{pixel_values:K,original_sizes:Z,reshaped_input_sizes:N,image_sizes:k,num_img_tokens:e}}}},"./src/models/phi3_v/processing_phi3_v.js":(a,o,n)=>{n.r(o),n.d(o,{Phi3VProcessor:()=>E});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");n("./src/utils/image.js");const C="<|image|>",w=/<\|image_\d+\|>/g;class E extends u.Processor{static image_processor_class=m.AutoImageProcessor;static tokenizer_class=b.AutoTokenizer;async _call(D,B=null,{padding:v=!0,truncation:F=!0,num_crops:S=null}={}){Array.isArray(D)||(D=[D]);let L,Z;if(B){Z=await this.image_processor(B,{num_crops:S});const{num_img_tokens:N}=Z,z=D.map((f,k)=>f.split(w).join(C.repeat(N[k])));L=this.tokenizer(z,{padding:v,truncation:F});const K=this.tokenizer.model.convert_tokens_to_ids([C])[0];L.input_ids.map_(f=>f==K?-f:f)}else L=this.tokenizer(D);return{...L,...Z}}}},"./src/models/processors.js":(a,o,n)=>{n.r(o),n.d(o,{Florence2Processor:()=>u.Florence2Processor,Gemma3nProcessor:()=>m.Gemma3nProcessor,GroundingDinoProcessor:()=>b.GroundingDinoProcessor,Idefics3Processor:()=>C.Idefics3Processor,JinaCLIPProcessor:()=>E.JinaCLIPProcessor,LlavaProcessor:()=>x.LlavaProcessor,MgpstrProcessor:()=>D.MgpstrProcessor,MoonshineProcessor:()=>B.MoonshineProcessor,OwlViTProcessor:()=>v.OwlViTProcessor,PaliGemmaProcessor:()=>S.PaliGemmaProcessor,Phi3VProcessor:()=>F.Phi3VProcessor,PyAnnoteProcessor:()=>L.PyAnnoteProcessor,Qwen2VLProcessor:()=>Z.Qwen2VLProcessor,SamProcessor:()=>N.SamProcessor,SmolVLMProcessor:()=>z.SmolVLMProcessor,SpeechT5Processor:()=>K.SpeechT5Processor,UltravoxProcessor:()=>f.UltravoxProcessor,VLChatProcessor:()=>w.VLChatProcessor,VoxtralProcessor:()=>k.VoxtralProcessor,Wav2Vec2Processor:()=>e.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>d.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>y.WhisperProcessor});var u=n("./src/models/florence2/processing_florence2.js"),m=n("./src/models/gemma3n/processing_gemma3n.js"),b=n("./src/models/grounding_dino/processing_grounding_dino.js"),C=n("./src/models/idefics3/processing_idefics3.js"),w=n("./src/models/janus/processing_janus.js"),E=n("./src/models/jina_clip/processing_jina_clip.js"),x=n("./src/models/llava/processing_llava.js"),D=n("./src/models/mgp_str/processing_mgp_str.js"),B=n("./src/models/moonshine/processing_moonshine.js"),v=n("./src/models/owlvit/processing_owlvit.js"),F=n("./src/models/phi3_v/processing_phi3_v.js"),S=n("./src/models/paligemma/processing_paligemma.js"),L=n("./src/models/pyannote/processing_pyannote.js"),Z=n("./src/models/qwen2_vl/processing_qwen2_vl.js"),N=n("./src/models/sam/processing_sam.js"),z=n("./src/models/smolvlm/processing_smolvlm.js"),K=n("./src/models/speecht5/processing_speecht5.js"),f=n("./src/models/ultravox/processing_ultravox.js"),k=n("./src/models/voxtral/processing_voxtral.js"),e=n("./src/models/wav2vec2/processing_wav2vec2.js"),d=n("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),y=n("./src/models/whisper/processing_whisper.js")},"./src/models/pvt/image_processing_pvt.js":(a,o,n)=>{n.r(o),n.d(o,{PvtImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/pyannote/feature_extraction_pyannote.js":(a,o,n)=>{n.r(o),n.d(o,{PyAnnoteFeatureExtractor:()=>C});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js"),b=n("./src/utils/maths.js");class C extends u.FeatureExtractor{async _call(E){(0,u.validate_audio_inputs)(E,"PyAnnoteFeatureExtractor"),E instanceof Float64Array&&(E=new Float32Array(E));const x=[1,1,E.length];return{input_values:new m.Tensor("float32",E,x)}}samples_to_frames(E){return(E-this.config.offset)/this.config.step}post_process_speaker_diarization(E,x){const D=x/this.samples_to_frames(x)/this.config.sampling_rate,B=[];for(const v of E.tolist()){const F=[];let S=-1;for(let L=0;L({id:L,start:Z*D,end:N*D,confidence:z/(N-Z)})))}return B}}},"./src/models/pyannote/processing_pyannote.js":(a,o,n)=>{n.r(o),n.d(o,{PyAnnoteProcessor:()=>b});var u=n("./src/base/processing_utils.js"),m=n("./src/models/pyannote/feature_extraction_pyannote.js");class b extends u.Processor{static feature_extractor_class=m.PyAnnoteFeatureExtractor;async _call(w){return await this.feature_extractor(w)}post_process_speaker_diarization(...w){return this.feature_extractor.post_process_speaker_diarization(...w)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}},"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(a,o,n)=>{n.r(o),n.d(o,{Qwen2VLImageProcessor:()=>b});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");class b extends u.ImageProcessor{async _call(w,...E){const{pixel_values:x,original_sizes:D,reshaped_input_sizes:B}=await super._call(w,...E);let v=x;const{temporal_patch_size:F,merge_size:S,patch_size:L}=this.config;v.dims[0]===1&&(v=(0,m.cat)(Array.from({length:F},()=>v),0));const Z=v.dims[0]/F,N=v.dims[1],z=Math.floor(v.dims[2]/L),K=Math.floor(v.dims[3]/L),f=v.view(Z,F,N,Math.floor(z/S),S,L,Math.floor(K/S),S,L).permute(0,3,6,4,7,2,1,5,8).view(Z*z*K,N*F*L*L),k=new m.Tensor("int64",[Z,z,K],[1,3]);return{pixel_values:f,image_grid_thw:k,original_sizes:D,reshaped_input_sizes:B}}}},"./src/models/qwen2_vl/processing_qwen2_vl.js":(a,o,n)=>{n.r(o),n.d(o,{Qwen2VLProcessor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js"),b=n("./src/tokenizers.js");n("./src/utils/image.js");class C extends u.Processor{static image_processor_class=m.AutoImageProcessor;static tokenizer_class=b.AutoTokenizer;async _call(E,x=null,...D){Array.isArray(E)||(E=[E]);let B,v;if(x&&(B=await this.image_processor(x),v=B.image_grid_thw),v){let S=this.image_processor.config.merge_size**2,L=0;const Z=v.tolist();E=E.map(N=>{for(;N.includes("<|image_pad|>");){const z=Number(Z[L++].reduce((K,f)=>K*f,1n));N=N.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(z/S)))}return N.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(E),...B}}}},"./src/models/rt_detr/image_processing_rt_detr.js":(a,o,n)=>{n.r(o),n.d(o,{RTDetrImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_object_detection(...C){return(0,u.post_process_object_detection)(...C)}}},"./src/models/sam/image_processing_sam.js":(a,o,n)=>{n.r(o),n.d(o,{SamImageProcessor:()=>C});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/core.js"),b=n("./src/utils/tensor.js");class C extends u.ImageProcessor{reshape_input_points(E,x,D,B=!1){E=structuredClone(E);let v=(0,m.calculateDimensions)(E);if(v.length===3)B||(v=[1,...v]),E=[E];else if(v.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 F=0;FB!==x.dims[v]))throw Error(`The first ${D.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new b.Tensor("int64",E.flat(1/0).map(BigInt),D)}async _call(E,{input_points:x=null,input_labels:D=null,input_boxes:B=null}={}){const v=await super._call(E);if(x&&(v.input_points=this.reshape_input_points(x,v.original_sizes,v.reshaped_input_sizes)),D){if(!v.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");v.input_labels=this.add_input_labels(D,v.input_points)}return B&&(v.input_boxes=this.reshape_input_points(B,v.original_sizes,v.reshaped_input_sizes,!0)),v}async post_process_masks(E,x,D,{mask_threshold:B=0,binarize:v=!0,pad_size:F=null}={}){const S=[];F=F??this.pad_size;const L=[F.height,F.width];for(let Z=0;ZB&&(k[e]=1);K=new b.Tensor("bool",k,K.dims)}S.push(K)}return S}generate_crop_boxes(E,x,{crop_n_layers:D=0,overlap_ratio:B=512/1500,points_per_crop:v=32,crop_n_points_downscale_factor:F=1}={}){}}},"./src/models/sam/processing_sam.js":(a,o,n)=>{n.r(o),n.d(o,{SamProcessor:()=>b});var u=n("./src/base/processing_utils.js"),m=n("./src/models/auto/image_processing_auto.js");class b extends u.Processor{static image_processor_class=m.AutoImageProcessor;async _call(...w){return await this.image_processor(...w)}post_process_masks(...w){return this.image_processor.post_process_masks(...w)}reshape_input_points(...w){return this.image_processor.reshape_input_points(...w)}}},"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(a,o,n)=>{n.r(o),n.d(o,{SeamlessM4TFeatureExtractor:()=>C});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js"),b=n("./src/utils/audio.js");class C extends u.FeatureExtractor{constructor(E){super(E);const x=this.config.sampling_rate,D=(0,b.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(x/2),x,null,"kaldi",!0);this.mel_filters=D,this.window=(0,b.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(E,x){return E=E.map(D=>D*32768),(0,b.spectrogram)(E,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(E,{padding:x=!0,pad_to_multiple_of:D=2,do_normalize_per_mel_bins:B=!0,return_attention_mask:v=!0}={}){(0,u.validate_audio_inputs)(E,"SeamlessM4TFeatureExtractor");let F=await this._extract_fbank_features(E,this.config.max_length);if(B){const[k,e]=F.dims,d=F.data;for(let y=0;y0){const te=new Float32Array(e*(k+y));te.set(d),te.fill(this.config.padding_value,d.length);const T=k+y;F=new m.Tensor(F.type,te,[T,e]),v&&(S=new m.Tensor("int64",new BigInt64Array(T),[1,T]),S.data.fill(1n,0,k))}}const[L,Z]=F.dims,N=this.config.stride;if(L%N!==0)throw new Error(`The number of frames (${L}) must be a multiple of the stride (${N}).`);const K=F.view(1,Math.floor(L/N),Z*N),f={input_features:K};if(v){const k=K.dims[1],e=new BigInt64Array(k);if(S){const d=S.data;for(let y=1,te=0;y{n.r(o),n.d(o,{SegformerFeatureExtractor:()=>b,SegformerImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_semantic_segmentation(...w){return(0,u.post_process_semantic_segmentation)(...w)}}class b extends m{}},"./src/models/siglip/image_processing_siglip.js":(a,o,n)=>{n.r(o),n.d(o,{SiglipImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}},"./src/models/smolvlm/image_processing_smolvlm.js":(a,o,n)=>{n.r(o),n.d(o,{SmolVLMImageProcessor:()=>u.Idefics3ImageProcessor});var u=n("./src/models/idefics3/image_processing_idefics3.js")},"./src/models/smolvlm/processing_smolvlm.js":(a,o,n)=>{n.r(o),n.d(o,{SmolVLMProcessor:()=>u.Idefics3Processor});var u=n("./src/models/idefics3/processing_idefics3.js")},"./src/models/snac/feature_extraction_snac.js":(a,o,n)=>{n.r(o),n.d(o,{SnacFeatureExtractor:()=>m});var u=n("./src/models/dac/feature_extraction_dac.js");class m extends u.DacFeatureExtractor{}},"./src/models/speecht5/feature_extraction_speecht5.js":(a,o,n)=>{n.r(o),n.d(o,{SpeechT5FeatureExtractor:()=>m});var u=n("./src/base/feature_extraction_utils.js");class m extends u.FeatureExtractor{}},"./src/models/speecht5/processing_speecht5.js":(a,o,n)=>{n.r(o),n.d(o,{SpeechT5Processor:()=>C});var u=n("./src/base/processing_utils.js"),m=n("./src/tokenizers.js"),b=n("./src/models/auto/feature_extraction_auto.js");class C extends u.Processor{static tokenizer_class=m.AutoTokenizer;static feature_extractor_class=b.AutoFeatureExtractor;async _call(E){return await this.feature_extractor(E)}}},"./src/models/swin2sr/image_processing_swin2sr.js":(a,o,n)=>{n.r(o),n.d(o,{Swin2SRImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{pad_image(C,w,E,x={}){const[D,B,v]=w;return super.pad_image(C,w,{width:B+(E-B%E)%E,height:D+(E-D%E)%E},{mode:"symmetric",center:!1,constant_values:-1,...x})}}},"./src/models/ultravox/processing_ultravox.js":(a,o,n)=>{n.r(o),n.d(o,{UltravoxProcessor:()=>C});var u=n("./src/models/auto/feature_extraction_auto.js"),m=n("./src/tokenizers.js"),b=n("./src/base/processing_utils.js");class C extends b.Processor{static tokenizer_class=m.AutoTokenizer;static feature_extractor_class=u.AutoFeatureExtractor;static uses_processor_config=!0;async _call(E,x=null,D={}){if(Array.isArray(E))throw new Error("Batched inputs are not supported yet.");let B={};if(x){const F=x.length,{input_features:S}=await this.feature_extractor(x,{...D,max_length:F}),L=Math.round(F/this.config.encoder_ds_factor+1e-4),Z=1+Math.ceil(L/this.config.stack_factor);B.audio_token_len=[Z],B.audio_values=S;const N=this.config.audio_placeholder;if(!E.includes(N))throw new Error(`The input text does not contain the image token ${N}.`);E=E.replaceAll(N,N.repeat(Z))}return{...this.tokenizer(E,{add_special_tokens:!1,...D}),...B}}}},"./src/models/vit/image_processing_vit.js":(a,o,n)=>{n.r(o),n.d(o,{ViTFeatureExtractor:()=>b,ViTImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{}class b extends m{}},"./src/models/vitmatte/image_processing_vitmatte.js":(a,o,n)=>{n.r(o),n.d(o,{VitMatteImageProcessor:()=>b});var u=n("./src/base/image_processors_utils.js"),m=n("./src/utils/tensor.js");class b extends u.ImageProcessor{async _call(w,E){Array.isArray(w)||(w=[w]),Array.isArray(E)||(E=[E]);const x=await Promise.all(w.map(v=>this.preprocess(v))),D=await Promise.all(E.map(v=>this.preprocess(v,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,m.stack)(x.map((v,F)=>(0,m.cat)([v.pixel_values,D[F].pixel_values],0)),0),original_sizes:x.map(v=>v.original_size),reshaped_input_sizes:x.map(v=>v.reshaped_input_size)}}}},"./src/models/vitpose/image_processing_vitpose.js":(a,o,n)=>{n.r(o),n.d(o,{VitPoseImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_pose_estimation(C,w,{threshold:E=null}={}){const x=C.tolist(),[D,B,v,F]=C.dims,S=[];for(let L=0;L{n.r(o),n.d(o,{VoxtralProcessor:()=>B});var u=n("./src/models/auto/feature_extraction_auto.js"),m=n("./src/tokenizers.js"),b=n("./src/base/processing_utils.js"),C=n("./src/utils/tensor.js");const w="[AUDIO]",E="[BEGIN_AUDIO]",x=375;function D(v,F){const S=[];for(let L=0;LD(T,f)),e=k.map(T=>T.length),d=k.flat(),y=(await Promise.all(d.map(T=>this.feature_extractor(T,L)))).map(T=>T.input_features);Z.audio_values=y.length>1?(0,C.cat)(y,0):y[0];let te=z[0];for(let T=0;T{n.r(o),n.d(o,{Wav2Vec2FeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js"),m=n("./src/utils/tensor.js");class b extends u.FeatureExtractor{_zero_mean_unit_var_norm(w){const x=w.reduce((B,v)=>B+v,0)/w.length,D=w.reduce((B,v)=>B+(v-x)**2,0)/w.length;return w.map(B=>(B-x)/Math.sqrt(D+1e-7))}async _call(w){(0,u.validate_audio_inputs)(w,"Wav2Vec2FeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));let E=w;this.config.do_normalize&&(E=this._zero_mean_unit_var_norm(E));const x=[1,E.length];return{input_values:new m.Tensor("float32",E,x),attention_mask:new m.Tensor("int64",new BigInt64Array(E.length).fill(1n),x)}}}},"./src/models/wav2vec2/processing_wav2vec2.js":(a,o,n)=>{n.r(o),n.d(o,{Wav2Vec2Processor:()=>C});var u=n("./src/tokenizers.js"),m=n("./src/models/auto/feature_extraction_auto.js"),b=n("./src/base/processing_utils.js");class C extends b.Processor{static tokenizer_class=u.AutoTokenizer;static feature_extractor_class=m.AutoFeatureExtractor;async _call(E){return await this.feature_extractor(E)}}},"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(a,o,n)=>{n.r(o),n.d(o,{Wav2Vec2ProcessorWithLM:()=>C});var u=n("./src/tokenizers.js"),m=n("./src/models/auto/feature_extraction_auto.js"),b=n("./src/base/processing_utils.js");class C extends b.Processor{static tokenizer_class=u.AutoTokenizer;static feature_extractor_class=m.AutoFeatureExtractor;async _call(E){return await this.feature_extractor(E)}}},"./src/models/wespeaker/feature_extraction_wespeaker.js":(a,o,n)=>{n.r(o),n.d(o,{WeSpeakerFeatureExtractor:()=>b});var u=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var m=n("./src/utils/audio.js");class b extends u.FeatureExtractor{constructor(w){super(w);const E=this.config.sampling_rate,x=(0,m.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(E/2),E,null,"kaldi",!0);this.mel_filters=x,this.window=(0,m.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(w){return w=w.map(E=>E*32768),(0,m.spectrogram)(w,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(w){(0,u.validate_audio_inputs)(w,"WeSpeakerFeatureExtractor");const E=(await this._extract_fbank_features(w)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const x=E.mean(1).data,D=E.data,[B,v,F]=E.dims;for(let S=0;S{n.r(o),n.d(o,{WHISPER_LANGUAGE_MAPPING:()=>m,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>b,whisper_language_to_code:()=>C});const u=[["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"]],m=new Map(u),b=new Map([...u.map(([w,E])=>[E,w]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function C(w){w=w.toLowerCase();let E=b.get(w);if(E===void 0){const x=w.match(/^<\|([a-z]{2})\|>$/);if(x&&(w=x[1]),m.has(w))E=w;else{const B=w.length===2?m.keys():m.values();throw new Error(`Language "${w}" is not supported. Must be one of: ${JSON.stringify(Array.from(B))}`)}}return E}},"./src/models/whisper/feature_extraction_whisper.js":(a,o,n)=>{n.r(o),n.d(o,{WhisperFeatureExtractor:()=>C});var u=n("./src/base/feature_extraction_utils.js");n("./src/utils/tensor.js");var m=n("./src/utils/audio.js"),b=n("./src/utils/maths.js");class C extends u.FeatureExtractor{constructor(E){super(E),this.config.mel_filters??=(0,m.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,m.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(E){const x=await(0,m.spectrogram)(E,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(E.length/this.config.hop_length),this.config.nb_max_frames)}),D=x.data,B=(0,b.max)(D)[0];for(let v=0;vB?(E.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`."),D=E.slice(0,B)):(D=new Float32Array(B),D.set(E)),{input_features:(await this._extract_fbank_features(D)).unsqueeze_(0)}}}},"./src/models/whisper/generation_whisper.js":(a,o,n)=>{n.r(o),n.d(o,{WhisperGenerationConfig:()=>m});var u=n("./src/generation/configuration_utils.js");class m extends u.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}},"./src/models/whisper/processing_whisper.js":(a,o,n)=>{n.r(o),n.d(o,{WhisperProcessor:()=>C});var u=n("./src/models/auto/feature_extraction_auto.js"),m=n("./src/tokenizers.js"),b=n("./src/base/processing_utils.js");class C extends b.Processor{static tokenizer_class=m.AutoTokenizer;static feature_extractor_class=u.AutoFeatureExtractor;async _call(E){return await this.feature_extractor(E)}}},"./src/models/yolos/image_processing_yolos.js":(a,o,n)=>{n.r(o),n.d(o,{YolosFeatureExtractor:()=>b,YolosImageProcessor:()=>m});var u=n("./src/base/image_processors_utils.js");class m extends u.ImageProcessor{post_process_object_detection(...w){return(0,u.post_process_object_detection)(...w)}}class b extends m{}},"./src/ops/registry.js":(a,o,n)=>{n.r(o),n.d(o,{TensorOpRegistry:()=>E});var u=n("./src/backends/onnx.js"),m=n("./src/utils/tensor.js"),b=n("./src/env.js");const C=b.apis.IS_BROWSER_ENV||b.apis.IS_WEBWORKER_ENV,w=async(x,D,B)=>{const v=await(0,u.createInferenceSession)(new Uint8Array(x),D);let F=Promise.resolve();return async S=>{const L=(0,u.isONNXProxy)(),Z=Object.fromEntries(Object.entries(S).map(([z,K])=>[z,(L?K.clone():K).ort_tensor])),N=await(F=C?F.then(()=>v.run(Z)):v.run(Z));return Array.isArray(B)?B.map(z=>new m.Tensor(N[z])):new m.Tensor(N[B])}};class E{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=w([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=w([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=w([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=w([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=w([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=w([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=w([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=w([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}}},"./src/pipelines.js":(a,o,n)=>{n.r(o),n.d(o,{AudioClassificationPipeline:()=>he,AutomaticSpeechRecognitionPipeline:()=>Ce,BackgroundRemovalPipeline:()=>Be,DepthEstimationPipeline:()=>Qe,DocumentQuestionAnsweringPipeline:()=>Ae,FeatureExtractionPipeline:()=>T,FillMaskPipeline:()=>K,ImageClassificationPipeline:()=>xe,ImageFeatureExtractionPipeline:()=>O,ImageSegmentationPipeline:()=>De,ImageToImagePipeline:()=>le,ImageToTextPipeline:()=>we,ObjectDetectionPipeline:()=>_e,Pipeline:()=>L,QuestionAnsweringPipeline:()=>z,SummarizationPipeline:()=>k,Text2TextGenerationPipeline:()=>f,TextClassificationPipeline:()=>Z,TextGenerationPipeline:()=>y,TextToAudioPipeline:()=>pe,TokenClassificationPipeline:()=>N,TranslationPipeline:()=>e,ZeroShotAudioClassificationPipeline:()=>ee,ZeroShotClassificationPipeline:()=>te,ZeroShotImageClassificationPipeline:()=>Oe,ZeroShotObjectDetectionPipeline:()=>ne,pipeline:()=>oA});var u=n("./src/tokenizers.js"),m=n("./src/models.js"),b=n("./src/models/auto/processing_auto.js");n("./src/base/processing_utils.js");var C=n("./src/utils/generic.js"),w=n("./src/utils/core.js"),E=n("./src/utils/maths.js"),x=n("./src/utils/audio.js"),D=n("./src/utils/tensor.js"),B=n("./src/utils/image.js");async function v(eA){return Array.isArray(eA)||(eA=[eA]),await Promise.all(eA.map(be=>B.RawImage.read(be)))}async function F(eA,be){return Array.isArray(eA)||(eA=[eA]),await Promise.all(eA.map(ze=>typeof ze=="string"||ze instanceof URL?(0,x.read_audio)(ze,be):ze instanceof Float64Array?new Float32Array(ze):ze))}function S(eA,be){be&&(eA=eA.map(Ze=>Ze|0));const[ze,ge,Ye,aA]=eA;return{xmin:ze,ymin:ge,xmax:Ye,ymax:aA}}class L extends C.Callable{constructor({task:be,model:ze,tokenizer:ge=null,processor:Ye=null}){super(),this.task=be,this.model=ze,this.tokenizer=ge,this.processor=Ye}async dispose(){await this.model.dispose()}}class Z extends L{constructor(be){super(be)}async _call(be,{top_k:ze=1}={}){const ge=this.tokenizer(be,{padding:!0,truncation:!0}),Ye=await this.model(ge),aA=this.model.config.problem_type==="multi_label_classification"?V=>V.sigmoid():V=>new D.Tensor("float32",(0,E.softmax)(V.data),V.dims),Ze=this.model.config.id2label,Ve=[];for(const V of Ye.logits){const We=aA(V),rA=await(0,D.topk)(We,ze),fe=rA[0].tolist(),Ue=rA[1].tolist().map((LA,IA)=>({label:Ze?Ze[LA]:`LABEL_${LA}`,score:fe[IA]}));ze===1?Ve.push(...Ue):Ve.push(Ue)}return Array.isArray(be)||ze===1?Ve:Ve[0]}}class N extends L{constructor(be){super(be)}async _call(be,{ignore_labels:ze=["O"]}={}){const ge=Array.isArray(be),Ye=this.tokenizer(ge?be:[be],{padding:!0,truncation:!0}),Ze=(await this.model(Ye)).logits,Ve=this.model.config.id2label,V=[];for(let We=0;WeDA==this.tokenizer.sep_token_id);V[fe].map((DA,PA)=>DA==1&&(PA===0||PA>Ue&&We.findIndex(at=>at==EA[PA])===-1));const LA=aA[fe].tolist(),IA=Ze[fe].tolist();for(let DA=1;DAPA==EA[DA])!==-1)&&(LA[DA]=-1/0,IA[DA]=-1/0);const hA=(0,E.softmax)(LA).map((DA,PA)=>[DA,PA]),SA=(0,E.softmax)(IA).map((DA,PA)=>[DA,PA]);hA[0][0]=0,SA[0][0]=0;const pA=(0,w.product)(hA,SA).filter(DA=>DA[0][1]<=DA[1][1]).map(DA=>[DA[0][1],DA[1][1],DA[0][0]*DA[1][0]]).sort((DA,PA)=>PA[2]-DA[2]);for(let DA=0;DALA==this.tokenizer.mask_token_id);if(We===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const rA=Ye[Ve][We],fe=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(rA.data),rA.dims),ze),EA=fe[0].tolist(),Ue=fe[1].tolist();aA.push(Ue.map((LA,IA)=>{const hA=V.slice();return hA[We]=LA,{score:EA[IA],token:Number(LA),token_str:this.tokenizer.decode([LA]),sequence:this.tokenizer.decode(hA,{skip_special_tokens:!0})}}))}return Array.isArray(be)?aA:aA[0]}}class f extends L{_key="generated_text";constructor(be){super(be)}async _call(be,ze={}){Array.isArray(be)||(be=[be]),this.model.config.prefix&&(be=be.map(V=>this.model.config.prefix+V));const ge=this.model.config.task_specific_params;ge&&ge[this.task]&&ge[this.task].prefix&&(be=be.map(V=>ge[this.task].prefix+V));const Ye=this.tokenizer,aA={padding:!0,truncation:!0};let Ze;this instanceof e&&"_build_translation_inputs"in Ye?Ze=Ye._build_translation_inputs(be,aA,ze):Ze=Ye(be,aA);const Ve=await this.model.generate({...Ze,...ze});return Ye.batch_decode(Ve,{skip_special_tokens:!0}).map(V=>({[this._key]:V}))}}class k extends f{_key="summary_text";constructor(be){super(be)}}class e extends f{_key="translation_text";constructor(be){super(be)}}function d(eA){return Array.isArray(eA)&&eA.every(be=>"role"in be&&"content"in be)}class y extends L{constructor(be){super(be)}async _call(be,ze={}){let ge=!1,Ye=!1,aA=ze.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,Ze;if(typeof be=="string")Ze=be=[be];else if(Array.isArray(be)&&be.every(Ue=>typeof Ue=="string"))ge=!0,Ze=be;else{if(d(be))be=[be];else if(Array.isArray(be)&&be.every(d))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");Ye=!0,Ze=be.map(Ue=>this.tokenizer.apply_chat_template(Ue,{tokenize:!1,add_generation_prompt:!0})),aA=!1}const Ve=Ye?!1:ze.return_full_text??!0;this.tokenizer.padding_side="left";const V=this.tokenizer(Ze,{add_special_tokens:aA,padding:!0,truncation:!0}),We=await this.model.generate({...V,...ze}),rA=this.tokenizer.batch_decode(We,{skip_special_tokens:!0});let fe;!Ve&&V.input_ids.dims.at(-1)>0&&(fe=this.tokenizer.batch_decode(V.input_ids,{skip_special_tokens:!0}).map(Ue=>Ue.length));const EA=Array.from({length:be.length},Ue=>[]);for(let Ue=0;Ue[ze.toLowerCase(),ge])),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(be,ze,{hypothesis_template:ge="This example is {}.",multi_label:Ye=!1}={}){const aA=Array.isArray(be);aA||(be=[be]),Array.isArray(ze)||(ze=[ze]);const Ze=ze.map(We=>ge.replace("{}",We)),Ve=Ye||ze.length===1,V=[];for(const We of be){const rA=[];for(const Ue of Ze){const LA=this.tokenizer(We,{text_pair:Ue,padding:!0,truncation:!0}),IA=await this.model(LA);Ve?rA.push([IA.logits.data[this.contradiction_id],IA.logits.data[this.entailment_id]]):rA.push(IA.logits.data[this.entailment_id])}const EA=(Ve?rA.map(Ue=>(0,E.softmax)(Ue)[1]):(0,E.softmax)(rA)).map((Ue,LA)=>[Ue,LA]).sort((Ue,LA)=>LA[0]-Ue[0]);V.push({sequence:We,labels:EA.map(Ue=>ze[Ue[1]]),scores:EA.map(Ue=>Ue[0])})}return aA?V:V[0]}}class T extends L{constructor(be){super(be)}async _call(be,{pooling:ze="none",normalize:ge=!1,quantize:Ye=!1,precision:aA="binary"}={}){const Ze=this.tokenizer(be,{padding:!0,truncation:!0}),Ve=await this.model(Ze);let V=Ve.last_hidden_state??Ve.logits??Ve.token_embeddings;switch(ze){case"none":break;case"mean":V=(0,D.mean_pooling)(V,Ze.attention_mask);break;case"first_token":case"cls":V=V.slice(null,0);break;case"last_token":case"eos":V=V.slice(null,-1);break;default:throw Error(`Pooling method '${ze}' not supported.`)}return ge&&(V=V.normalize(2,-1)),Ye&&(V=(0,D.quantize_embeddings)(V,aA)),V}}class O extends L{constructor(be){super(be)}async _call(be,{pool:ze=null}={}){const ge=await v(be),{pixel_values:Ye}=await this.processor(ge),aA=await this.model({pixel_values:Ye});let Ze;if(ze){if(!("pooler_output"in aA))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");Ze=aA.pooler_output}else Ze=aA.last_hidden_state??aA.logits??aA.image_embeds;return Ze}}class he extends L{constructor(be){super(be)}async _call(be,{top_k:ze=5}={}){const ge=this.processor.feature_extractor.config.sampling_rate,Ye=await F(be,ge),aA=this.model.config.id2label,Ze=[];for(const Ve of Ye){const V=await this.processor(Ve),rA=(await this.model(V)).logits[0],fe=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(rA.data),rA.dims),ze),EA=fe[0].tolist(),LA=fe[1].tolist().map((IA,hA)=>({label:aA?aA[IA]:`LABEL_${IA}`,score:EA[hA]}));Ze.push(LA)}return Array.isArray(be)?Ze:Ze[0]}}class ee extends L{constructor(be){super(be)}async _call(be,ze,{hypothesis_template:ge="This is a sound of {}."}={}){const Ye=!Array.isArray(be);Ye&&(be=[be]);const aA=ze.map(rA=>ge.replace("{}",rA)),Ze=this.tokenizer(aA,{padding:!0,truncation:!0}),Ve=this.processor.feature_extractor.config.sampling_rate,V=await F(be,Ve),We=[];for(const rA of V){const fe=await this.processor(rA),EA=await this.model({...Ze,...fe}),Ue=(0,E.softmax)(EA.logits_per_audio.data);We.push([...Ue].map((LA,IA)=>({score:LA,label:ze[IA]})))}return Ye?We[0]:We}}class Ce extends L{constructor(be){super(be)}async _call(be,ze={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(be,ze);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(be,ze);case"moonshine":return this._call_moonshine(be,ze);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(be,ze){ze.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),ze.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const ge=!Array.isArray(be);ge&&(be=[be]);const Ye=this.processor.feature_extractor.config.sampling_rate,aA=await F(be,Ye),Ze=[];for(const Ve of aA){const V=await this.processor(Ve),rA=(await this.model(V)).logits[0],fe=[];for(const Ue of rA)fe.push((0,E.max)(Ue.data)[1]);const EA=this.tokenizer.decode(fe);Ze.push({text:EA})}return ge?Ze[0]:Ze}async _call_whisper(be,ze){const ge=ze.return_timestamps??!1,Ye=ze.chunk_length_s??0,aA=ze.force_full_sequences??!1;let Ze=ze.stride_length_s??null;const Ve={...ze};ge==="word"&&(Ve.return_token_timestamps=!0,Ve.return_timestamps=!1);const V=!Array.isArray(be);V&&(be=[be]);const We=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,rA=this.processor.feature_extractor.config.hop_length,fe=this.processor.feature_extractor.config.sampling_rate,EA=await F(be,fe),Ue=[];for(const LA of EA){let IA=[];if(Ye>0){if(Ze===null)Ze=Ye/6;else if(Ye<=Ze)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const pA=fe*Ye,DA=fe*Ze,PA=pA-2*DA;let at=0;for(;;){const jA=at+pA,zA=LA.subarray(at,jA),Vt=await this.processor(zA),bs=at===0,Rt=jA>=LA.length;if(IA.push({stride:[zA.length,bs?0:DA,Rt?0:DA],input_features:Vt.input_features,is_last:Rt}),Rt)break;at+=PA}}else IA=[{stride:[LA.length,0,0],input_features:(await this.processor(LA)).input_features,is_last:!0}];for(const pA of IA){Ve.num_frames=Math.floor(pA.stride[0]/rA);const DA=await this.model.generate({inputs:pA.input_features,...Ve});ge==="word"?(pA.tokens=DA.sequences.tolist()[0],pA.token_timestamps=DA.token_timestamps.tolist()[0].map(PA=>(0,E.round)(PA,2))):pA.tokens=DA[0].tolist(),pA.stride=pA.stride.map(PA=>PA/fe)}const[hA,SA]=this.tokenizer._decode_asr(IA,{time_precision:We,return_timestamps:ge,force_full_sequences:aA});Ue.push({text:hA,...SA})}return V?Ue[0]:Ue}async _call_moonshine(be,ze){const ge=!Array.isArray(be);ge&&(be=[be]);const Ye=this.processor.feature_extractor.config.sampling_rate,aA=await F(be,Ye),Ze=[];for(const Ve of aA){const V=await this.processor(Ve),We=Math.floor(Ve.length/Ye)*6,rA=await this.model.generate({max_new_tokens:We,...ze,...V}),fe=this.processor.batch_decode(rA,{skip_special_tokens:!0})[0];Ze.push({text:fe})}return ge?Ze[0]:Ze}}class we extends L{constructor(be){super(be)}async _call(be,ze={}){const ge=Array.isArray(be),Ye=await v(be),{pixel_values:aA}=await this.processor(Ye),Ze=[];for(const Ve of aA){Ve.dims=[1,...Ve.dims];const V=await this.model.generate({inputs:Ve,...ze}),We=this.tokenizer.batch_decode(V,{skip_special_tokens:!0}).map(rA=>({generated_text:rA.trim()}));Ze.push(We)}return ge?Ze:Ze[0]}}class xe extends L{constructor(be){super(be)}async _call(be,{top_k:ze=5}={}){const ge=await v(be),{pixel_values:Ye}=await this.processor(ge),aA=await this.model({pixel_values:Ye}),Ze=this.model.config.id2label,Ve=[];for(const V of aA.logits){const We=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(V.data),V.dims),ze),rA=We[0].tolist(),EA=We[1].tolist().map((Ue,LA)=>({label:Ze?Ze[Ue]:`LABEL_${Ue}`,score:rA[LA]}));Ve.push(EA)}return Array.isArray(be)?Ve:Ve[0]}}class De extends L{constructor(be){super(be),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(be,{threshold:ze=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:Ye=.8,label_ids_to_fuse:aA=null,target_sizes:Ze=null,subtask:Ve=null}={}){if(Array.isArray(be)&&be.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const We=await v(be),rA=We.map(pA=>[pA.height,pA.width]),fe=await this.processor(We),{inputNames:EA,outputNames:Ue}=this.model.sessions.model;if(!EA.includes("pixel_values")){if(EA.length!==1)throw Error(`Expected a single input name, but got ${EA.length} inputs: ${EA}.`);const pA=EA[0];if(pA in fe)throw Error(`Input name ${pA} already exists in the inputs.`);fe[pA]=fe.pixel_values}const LA=await this.model(fe);let IA=null;if(Ve!==null)IA=this.subtasks_mapping[Ve];else if(this.processor.image_processor){for(const[pA,DA]of Object.entries(this.subtasks_mapping))if(DA in this.processor.image_processor){IA=this.processor.image_processor[DA].bind(this.processor.image_processor),Ve=pA;break}}const hA=this.model.config.id2label,SA=[];if(Ve)if(Ve==="panoptic"||Ve==="instance"){const pA=IA(LA,ze,ge,Ye,aA,Ze??rA)[0],DA=pA.segmentation;for(const PA of pA.segments_info){const at=new Uint8ClampedArray(DA.data.length);for(let zA=0;zAVt<-1e-5||Vt>1+1e-5)&&jA.sigmoid_();const zA=await B.RawImage.fromTensor(jA.mul_(255).to("uint8")).resize(at[1],at[0]);SA.push({label:null,score:null,mask:zA})}}return SA}}class Be extends De{constructor(be){super(be)}async _call(be,ze={}){if(Array.isArray(be)&&be.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");const Ye=await v(be),aA=await super._call(be,ze);return Ye.map((Ve,V)=>{const We=Ve.clone();return We.putAlpha(aA[V].mask),We})}}class Oe extends L{constructor(be){super(be)}async _call(be,ze,{hypothesis_template:ge="This is a photo of {}"}={}){const Ye=Array.isArray(be),aA=await v(be),Ze=ze.map(EA=>ge.replace("{}",EA)),Ve=this.tokenizer(Ze,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:V}=await this.processor(aA),We=await this.model({...Ve,pixel_values:V}),rA=this.model.config.model_type==="siglip"?EA=>EA.sigmoid().data:EA=>(0,E.softmax)(EA.data),fe=[];for(const EA of We.logits_per_image){const LA=[...rA(EA)].map((IA,hA)=>({score:IA,label:ze[hA]}));LA.sort((IA,hA)=>hA.score-IA.score),fe.push(LA)}return Ye?fe:fe[0]}}class _e extends L{constructor(be){super(be)}async _call(be,{threshold:ze=.9,percentage:ge=!1}={}){const Ye=Array.isArray(be);if(Ye&&be.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const aA=await v(be),Ze=ge?null:aA.map(Ue=>[Ue.height,Ue.width]),{pixel_values:Ve,pixel_mask:V}=await this.processor(aA),We=await this.model({pixel_values:Ve,pixel_mask:V}),rA=this.processor.image_processor.post_process_object_detection(We,ze,Ze),fe=this.model.config.id2label,EA=rA.map(Ue=>Ue.boxes.map((LA,IA)=>({score:Ue.scores[IA],label:fe[Ue.classes[IA]],box:S(LA,!ge)})));return Ye?EA:EA[0]}}class ne extends L{constructor(be){super(be)}async _call(be,ze,{threshold:ge=.1,top_k:Ye=null,percentage:aA=!1}={}){const Ze=Array.isArray(be),Ve=await v(be),V=this.tokenizer(ze,{padding:!0,truncation:!0}),We=await this.processor(Ve),rA=[];for(let fe=0;fe({score:SA.scores[DA],label:SA.labels[DA],box:S(pA,!aA)}))}else{const SA=this.processor.image_processor.post_process_object_detection(IA,ge,Ue,!0)[0];hA=SA.boxes.map((pA,DA)=>({score:SA.scores[DA],label:ze[SA.classes[DA]],box:S(pA,!aA)}))}hA.sort((SA,pA)=>pA.score-SA.score),Ye!==null&&(hA=hA.slice(0,Ye)),rA.push(hA)}return Ze?rA:rA[0]}}class Ae extends L{constructor(be){super(be)}async _call(be,ze,ge={}){const Ye=(await v(be))[0],{pixel_values:aA}=await this.processor(Ye),Ze=`${ze}`,Ve=this.tokenizer(Ze,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,V=await this.model.generate({inputs:aA,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:Ve,...ge}),rA=this.tokenizer.batch_decode(V)[0].match(/(.*?)<\/s_answer>/);let fe=null;return rA&&rA.length>=2&&(fe=rA[1].trim()),[{answer:fe}]}}class pe extends L{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(be){super(be),this.vocoder=be.vocoder??null}async _call(be,{speaker_embeddings:ze=null}={}){return this.processor?this._call_text_to_spectrogram(be,{speaker_embeddings:ze}):this._call_text_to_waveform(be)}async _call_text_to_waveform(be){const ze=this.tokenizer(be,{padding:!0,truncation:!0}),{waveform:ge}=await this.model(ze),Ye=this.model.config.sampling_rate;return new x.RawAudio(ge.data,Ye)}async _call_text_to_spectrogram(be,{speaker_embeddings:ze}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await m.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof ze=="string"||ze instanceof URL)&&(ze=new Float32Array(await(await fetch(ze)).arrayBuffer())),ze instanceof Float32Array)ze=new D.Tensor("float32",ze,[1,ze.length]);else if(!(ze instanceof D.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:ge}=this.tokenizer(be,{padding:!0,truncation:!0}),{waveform:Ye}=await this.model.generate_speech(ge,ze,{vocoder:this.vocoder}),aA=this.processor.feature_extractor.config.sampling_rate;return new x.RawAudio(Ye.data,aA)}}class le extends L{constructor(be){super(be)}async _call(be){const ze=await v(be),ge=await this.processor(ze),Ye=await this.model(ge),aA=[];for(const Ze of Ye.reconstruction){const Ve=Ze.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");aA.push(B.RawImage.fromTensor(Ve))}return aA.length>1?aA:aA[0]}}class Qe extends L{constructor(be){super(be)}async _call(be){const ze=await v(be),ge=await this.processor(ze),{predicted_depth:Ye}=await this.model(ge),aA=[];for(let Ze=0;Ze1?aA:aA[0]}}const iA=Object.freeze({"text-classification":{tokenizer:u.AutoTokenizer,pipeline:Z,model:m.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:u.AutoTokenizer,pipeline:N,model:m.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:u.AutoTokenizer,pipeline:z,model:m.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:u.AutoTokenizer,pipeline:K,model:m.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:u.AutoTokenizer,pipeline:k,model:m.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:u.AutoTokenizer,pipeline:e,model:m.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:u.AutoTokenizer,pipeline:f,model:m.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:u.AutoTokenizer,pipeline:y,model:m.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:u.AutoTokenizer,pipeline:te,model:m.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:he,model:m.AutoModelForAudioClassification,processor:b.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:u.AutoTokenizer,pipeline:ee,model:m.AutoModel,processor:b.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:u.AutoTokenizer,pipeline:Ce,model:[m.AutoModelForSpeechSeq2Seq,m.AutoModelForCTC],processor:b.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:u.AutoTokenizer,pipeline:pe,model:[m.AutoModelForTextToWaveform,m.AutoModelForTextToSpectrogram],processor:[b.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:u.AutoTokenizer,pipeline:we,model:m.AutoModelForVision2Seq,processor:b.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:xe,model:m.AutoModelForImageClassification,processor:b.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:De,model:[m.AutoModelForImageSegmentation,m.AutoModelForSemanticSegmentation,m.AutoModelForUniversalSegmentation],processor:b.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:Be,model:[m.AutoModelForImageSegmentation,m.AutoModelForSemanticSegmentation,m.AutoModelForUniversalSegmentation],processor:b.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:u.AutoTokenizer,pipeline:Oe,model:m.AutoModel,processor:b.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:_e,model:m.AutoModelForObjectDetection,processor:b.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:u.AutoTokenizer,pipeline:ne,model:m.AutoModelForZeroShotObjectDetection,processor:b.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:u.AutoTokenizer,pipeline:Ae,model:m.AutoModelForDocumentQuestionAnswering,processor:b.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:le,model:m.AutoModelForImageToImage,processor:b.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Qe,model:m.AutoModelForDepthEstimation,processor:b.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:u.AutoTokenizer,pipeline:T,model:m.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:b.AutoProcessor,pipeline:O,model:[m.AutoModelForImageFeatureExtraction,m.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),qe=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function oA(eA,be=null,{progress_callback:ze=null,config:ge=null,cache_dir:Ye=null,local_files_only:aA=!1,revision:Ze="main",device:Ve=null,dtype:V=null,subfolder:We="onnx",use_external_data_format:rA=null,model_file_name:fe=null,session_options:EA={}}={}){eA=qe[eA]??eA;const Ue=iA[eA.split("_",1)[0]];if(!Ue)throw Error(`Unsupported pipeline: ${eA}. Must be one of [${Object.keys(iA)}]`);be||(be=Ue.default.model,console.log(`No model specified. Using default model: "${be}".`));const LA={progress_callback:ze,config:ge,cache_dir:Ye,local_files_only:aA,revision:Ze,device:Ve,dtype:V,subfolder:We,use_external_data_format:rA,model_file_name:fe,session_options:EA},IA=new Map([["tokenizer",Ue.tokenizer],["model",Ue.model],["processor",Ue.processor]]),hA=await TA(IA,be,LA);hA.task=eA,(0,w.dispatchCallback)(ze,{status:"ready",task:eA,model:be});const SA=Ue.pipeline;return new SA(hA)}async function TA(eA,be,ze){const ge=Object.create(null),Ye=[];for(const[aA,Ze]of eA.entries()){if(!Ze)continue;let Ve;Array.isArray(Ze)?Ve=new Promise(async(V,We)=>{let rA;for(const fe of Ze){if(fe===null){V(null);return}try{V(await fe.from_pretrained(be,ze));return}catch(EA){if(EA.message?.includes("Unsupported model type"))rA=EA;else if(EA.message?.includes("Could not locate file"))rA=EA;else{We(EA);return}}}We(rA)}):Ve=Ze.from_pretrained(be,ze),ge[aA]=Ve,Ye.push(Ve)}await Promise.all(Ye);for(const[aA,Ze]of Object.entries(ge))ge[aA]=await Ze;return ge}},"./src/tokenizers.js":(a,o,n)=>{n.r(o),n.d(o,{AlbertTokenizer:()=>Ut,AutoTokenizer:()=>en,BartTokenizer:()=>lt,BertTokenizer:()=>Dr,BlenderbotSmallTokenizer:()=>jt,BlenderbotTokenizer:()=>QA,BloomTokenizer:()=>Is,CLIPTokenizer:()=>ms,CamembertTokenizer:()=>sA,CodeGenTokenizer:()=>xr,CodeLlamaTokenizer:()=>Os,CohereTokenizer:()=>Ys,ConvBertTokenizer:()=>ke,DebertaTokenizer:()=>U,DebertaV2Tokenizer:()=>Ee,DistilBertTokenizer:()=>Le,ElectraTokenizer:()=>HA,Ernie4_5_Tokenizer:()=>pa,EsmTokenizer:()=>Ws,FalconTokenizer:()=>_s,GPT2Tokenizer:()=>gt,GPTNeoXTokenizer:()=>zt,GemmaTokenizer:()=>pr,Grok1Tokenizer:()=>ns,HerbertTokenizer:()=>ce,LlamaTokenizer:()=>Pr,M2M100Tokenizer:()=>ws,MBart50Tokenizer:()=>Gt,MBartTokenizer:()=>Tr,MPNetTokenizer:()=>ps,MarianTokenizer:()=>uA,MgpstrTokenizer:()=>ja,MobileBertTokenizer:()=>ot,NllbTokenizer:()=>vr,NougatTokenizer:()=>$s,PreTrainedTokenizer:()=>wA,Qwen2Tokenizer:()=>zs,RoFormerTokenizer:()=>Me,RobertaTokenizer:()=>br,SiglipTokenizer:()=>is,SpeechT5Tokenizer:()=>fa,SqueezeBertTokenizer:()=>js,T5Tokenizer:()=>BA,TokenizerModel:()=>O,VitsTokenizer:()=>ga,Wav2Vec2CTCTokenizer:()=>mA,WhisperTokenizer:()=>qA,XLMRobertaTokenizer:()=>Er,XLMTokenizer:()=>OA,is_chinese_char:()=>K});var u=n("./src/utils/generic.js"),m=n("./src/utils/core.js"),b=n("./src/utils/hub.js"),C=n("./src/utils/maths.js"),w=n("./src/utils/tensor.js"),E=n("./src/utils/data-structures.js"),x=n("./node_modules/@huggingface/jinja/dist/index.js"),D=n("./src/models/whisper/common_whisper.js");async function B(Se,X){const de=await Promise.all([(0,b.getModelJSON)(Se,"tokenizer.json",!0,X),(0,b.getModelJSON)(Se,"tokenizer_config.json",!0,X)]);return X.legacy!==null&&(de[1].legacy=X.legacy),de}function v(Se,X){const de=[];let Ie=0;for(const ye of Se.matchAll(X)){const je=ye[0];Ie0&&de.push(je),Ie=ye.index+je.length}return Ie=19968&&Se<=40959||Se>=13312&&Se<=19903||Se>=131072&&Se<=173791||Se>=173824&&Se<=177983||Se>=177984&&Se<=178207||Se>=178208&&Se<=183983||Se>=63744&&Se<=64255||Se>=194560&&Se<=195103}function f(Se,X,de){const Ie=[];let ye=0;for(;yethis.tokens_to_ids.get(de)??this.unk_token_id)}convert_ids_to_tokens(X){return X.map(de=>this.vocab[de]??this.unk_token)}}class he extends O{constructor(X){super(X),this.tokens_to_ids=S(X.vocab),this.unk_token_id=this.tokens_to_ids.get(X.unk_token),this.unk_token=X.unk_token,this.max_input_chars_per_word=X.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[de,Ie]of this.tokens_to_ids)this.vocab[Ie]=de}encode(X){const de=[];for(const Ie of X){const ye=[...Ie];if(ye.length>this.max_input_chars_per_word){de.push(this.unk_token);continue}let je=!1,AA=0;const yA=[];for(;AA0&&(bA=this.config.continuing_subword_prefix+bA),this.tokens_to_ids.has(bA)){Je=bA;break}--MA}if(Je===null){je=!0;break}yA.push(Je),AA=MA}je?de.push(this.unk_token):de.push(...yA)}return de}}class ee extends O{constructor(X,de){super(X);const Ie=X.vocab.length;this.vocab=new Array(Ie),this.scores=new Array(Ie);for(let ye=0;ye[ye,je])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=de.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,C.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new E.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(X){const de=X.chars,Ie=1;let ye=0;for(;ye{const Se=[...Array.from({length:94},(ye,je)=>je+33),...Array.from({length:12},(ye,je)=>je+161),...Array.from({length:82},(ye,je)=>je+174)],X=Se.slice();let de=0;for(let ye=0;ye<256;++ye)Se.includes(ye)||(Se.push(ye),X.push(256+de),de+=1);const Ie=X.map(ye=>String.fromCharCode(ye));return Object.fromEntries(Se.map((ye,je)=>[ye,Ie[je]]))})(),we=(0,m.reverseDictionary)(Ce);class xe extends O{constructor(X){super(X),this.tokens_to_ids=S(X.vocab),this.unk_token_id=this.tokens_to_ids.get(X.unk_token),this.unk_token=X.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[Ie,ye]of this.tokens_to_ids)this.vocab[ye]=Ie;const de=Array.isArray(X.merges[0]);this.merges=de?X.merges:X.merges.map(Ie=>Ie.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((Ie,ye)=>[JSON.stringify(Ie),ye])),this.end_of_word_suffix=X.end_of_word_suffix,this.continuing_subword_suffix=X.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 E.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(X){if(X.length===0)return[];const de=this.cache.get(X);if(de!==void 0)return de;const Ie=Array.from(X);this.end_of_word_suffix&&(Ie[Ie.length-1]+=this.end_of_word_suffix);let ye=[];if(Ie.length>1){const je=new E.PriorityQueue((MA,Je)=>MA.score`<0x${yA.toString(16).toUpperCase().padStart(2,"0")}>`);AA.every(yA=>this.tokens_to_ids.has(yA))?de.push(...AA):de.push(this.unk_token)}else de.push(this.unk_token)}return de}}class De extends O{constructor(X,de){super(X),this.tokens_to_ids=S(de.target_lang?X.vocab[de.target_lang]:X.vocab),this.bos_token=de.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=de.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=de.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=de.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[Ie,ye]of this.tokens_to_ids)this.vocab[ye]=Ie}encode(X){return X}}class Be extends u.Callable{constructor(X){super(),this.config=X}static fromConfig(X){if(X===null)return null;switch(X.type){case"BertNormalizer":return new eA(X);case"Precompiled":return new Rt(X);case"Sequence":return new TA(X);case"Replace":return new Oe(X);case"NFC":return new ne(X);case"NFD":return new Ae(X);case"NFKC":return new pe(X);case"NFKD":return new le(X);case"Strip":return new Qe(X);case"StripAccents":return new iA(X);case"Lowercase":return new qe(X);case"Prepend":return new oA(X);default:throw new Error(`Unknown Normalizer type: ${X.type}`)}}normalize(X){throw Error("normalize should be implemented in subclass.")}_call(X){return this.normalize(X)}}class Oe extends Be{normalize(X){const de=F(this.config.pattern);return de===null?X:X.replaceAll(de,this.config.content)}}class _e extends Be{form=void 0;normalize(X){return X=X.normalize(this.form),X}}class ne extends _e{form="NFC"}class Ae extends _e{form="NFD"}class pe extends _e{form="NFKC"}class le extends _e{form="NFKD"}class Qe extends Be{normalize(X){return this.config.strip_left&&this.config.strip_right?X=X.trim():(this.config.strip_left&&(X=X.trimStart()),this.config.strip_right&&(X=X.trimEnd())),X}}class iA extends Be{normalize(X){return X=N(X),X}}class qe extends Be{normalize(X){return X=X.toLowerCase(),X}}class oA extends Be{normalize(X){return X=this.config.prepend+X,X}}class TA extends Be{constructor(X){super(X),this.normalizers=X.normalizers.map(de=>Be.fromConfig(de))}normalize(X){return this.normalizers.reduce((de,Ie)=>Ie.normalize(de),X)}}class eA extends Be{_tokenize_chinese_chars(X){const de=[];for(let Ie=0;Iethis.pre_tokenize_text(Ie,de)):this.pre_tokenize_text(X,de)).flat()}_call(X,de){return this.pre_tokenize(X,de)}}class ze extends be{constructor(X){super(),this.pattern=new RegExp(`[^\\s${e}]+|[${e}]`,"gu")}pre_tokenize_text(X,de){return X.trim().match(this.pattern)||[]}}class ge extends be{constructor(X){super(),this.config=X,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=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=Ce,this.text_encoder=new TextEncoder}pre_tokenize_text(X,de){return this.add_prefix_space&&!X.startsWith(" ")&&(X=" "+X),(this.use_regex?X.match(this.pattern)||[]:[X]).map(ye=>Array.from(this.text_encoder.encode(ye),je=>this.byte_encoder[je]).join(""))}}class Ye extends be{constructor(X){super(),this.config=X,this.pattern=F(this.config.pattern,this.config.invert)}pre_tokenize_text(X,de){return this.pattern===null?[]:this.config.invert?X.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?X.split(this.pattern).filter(Ie=>Ie):v(X,this.pattern)}}class aA extends be{constructor(X){super(),this.config=X,this.pattern=new RegExp(`[^${e}]+|[${e}]+`,"gu")}pre_tokenize_text(X,de){return X.match(this.pattern)||[]}}class Ze extends be{constructor(X){super(),this.config=X;const de=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(de,"gu")}pre_tokenize_text(X,de){return X.match(this.pattern)||[]}}class Ve extends u.Callable{constructor(X){super(),this.config=X}static fromConfig(X){if(X===null)return null;switch(X.type){case"TemplateProcessing":return new rA(X);case"ByteLevel":return new fe(X);case"RobertaProcessing":return new We(X);case"BertProcessing":return new V(X);case"Sequence":return new EA(X);default:throw new Error(`Unknown PostProcessor type: ${X.type}`)}}post_process(X,...de){throw Error("post_process should be implemented in subclass.")}_call(X,...de){return this.post_process(X,...de)}}class V extends Ve{constructor(X){super(X),this.cls=X.cls[0],this.sep=X.sep[0]}post_process(X,de=null,{add_special_tokens:Ie=!0}={}){Ie&&(X=(0,m.mergeArrays)([this.cls],X,[this.sep]));let ye=new Array(X.length).fill(0);if(de!==null){const je=Ie&&this instanceof We?[this.sep]:[],AA=Ie?[this.sep]:[];X=(0,m.mergeArrays)(X,je,de,AA),ye=(0,m.mergeArrays)(ye,new Array(de.length+je.length+AA.length).fill(1))}return{tokens:X,token_type_ids:ye}}}class We extends V{}class rA extends Ve{constructor(X){super(X),this.single=X.single,this.pair=X.pair}post_process(X,de=null,{add_special_tokens:Ie=!0}={}){const ye=de===null?this.single:this.pair;let je=[],AA=[];for(const yA of ye)"SpecialToken"in yA?Ie&&(je.push(yA.SpecialToken.id),AA.push(yA.SpecialToken.type_id)):"Sequence"in yA&&(yA.Sequence.id==="A"?(je=(0,m.mergeArrays)(je,X),AA=(0,m.mergeArrays)(AA,new Array(X.length).fill(yA.Sequence.type_id))):yA.Sequence.id==="B"&&(je=(0,m.mergeArrays)(je,de),AA=(0,m.mergeArrays)(AA,new Array(de.length).fill(yA.Sequence.type_id))));return{tokens:je,token_type_ids:AA}}}class fe extends Ve{post_process(X,de=null){return de&&(X=(0,m.mergeArrays)(X,de)),{tokens:X}}}class EA extends Ve{constructor(X){super(X),this.processors=X.processors.map(de=>Ve.fromConfig(de))}post_process(X,de=null,Ie={}){let ye;for(const je of this.processors)if(je instanceof fe)X=je.post_process(X).tokens,de&&(de=je.post_process(de).tokens);else{const AA=je.post_process(X,de,Ie);X=AA.tokens,ye=AA.token_type_ids}return{tokens:X,token_type_ids:ye}}}class Ue extends u.Callable{constructor(X){super(),this.config=X,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=X.trim_offsets}static fromConfig(X){if(X===null)return null;switch(X.type){case"WordPiece":return new pA(X);case"Metaspace":return new bs(X);case"ByteLevel":return new DA(X);case"Replace":return new LA(X);case"ByteFallback":return new IA(X);case"Fuse":return new hA(X);case"Strip":return new SA(X);case"Sequence":return new at(X);case"CTC":return new PA(X);case"BPEDecoder":return new jA(X);default:throw new Error(`Unknown Decoder type: ${X.type}`)}}_call(X){return this.decode(X)}decode(X){return this.decode_chain(X).join("")}decode_chain(X){throw Error("`decode_chain` should be implemented in subclass.")}}class LA extends Ue{decode_chain(X){const de=F(this.config.pattern);return de===null?X:X.map(Ie=>Ie.replaceAll(de,this.config.content))}}class IA extends Ue{constructor(X){super(X),this.text_decoder=new TextDecoder}decode_chain(X){const de=[];let Ie=[];for(const ye of X){let je=null;if(ye.length===6&&ye.startsWith("<0x")&&ye.endsWith(">")){const AA=parseInt(ye.slice(3,5),16);isNaN(AA)||(je=AA)}if(je!==null)Ie.push(je);else{if(Ie.length>0){const AA=this.text_decoder.decode(Uint8Array.from(Ie));de.push(AA),Ie=[]}de.push(ye)}}if(Ie.length>0){const ye=this.text_decoder.decode(Uint8Array.from(Ie));de.push(ye),Ie=[]}return de}}class hA extends Ue{decode_chain(X){return[X.join("")]}}class SA extends Ue{constructor(X){super(X),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(X){return X.map(de=>{let Ie=0;for(let je=0;je(Ie!==0&&(de.startsWith(this.config.prefix)?de=de.replace(this.config.prefix,""):de=" "+de),this.cleanup&&(de=Z(de)),de))}}class DA extends Ue{constructor(X){super(X),this.byte_decoder=we,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(X){const de=X.join(""),Ie=new Uint8Array([...de].map(je=>this.byte_decoder[je]));return this.text_decoder.decode(Ie)}decode_chain(X){const de=[];let Ie=[];for(const ye of X)this.added_tokens.find(je=>je.content===ye)!==void 0?(Ie.length>0&&(de.push(this.convert_tokens_to_string(Ie)),Ie=[]),de.push(ye)):Ie.push(ye);return Ie.length>0&&de.push(this.convert_tokens_to_string(Ie)),de}}class PA extends Ue{constructor(X){super(X),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(X){if(X.length===0)return"";const de=[X[0]];for(let je=1;jeje!==this.pad_token).join("");return this.cleanup&&(ye=Z(ye).replaceAll(this.word_delimiter_token," ").trim()),ye}decode_chain(X){return[this.convert_tokens_to_string(X)]}}class at extends Ue{constructor(X){super(X),this.decoders=X.decoders.map(de=>Ue.fromConfig(de))}decode_chain(X){return this.decoders.reduce((de,Ie)=>Ie.decode_chain(de),X)}}class jA extends Ue{constructor(X){super(X),this.suffix=this.config.suffix}decode_chain(X){return X.map((de,Ie)=>de.replaceAll(this.suffix,Ie===X.length-1?"":" "))}}class zA extends Ue{decode_chain(X){let de="";for(let Ie=1;IeIe.normalize("NFKC")).join("~"):X=X.normalize("NFKC"),X}}class Ss extends be{constructor(X){super(),this.tokenizers=X.pretokenizers.map(de=>be.fromConfig(de))}pre_tokenize_text(X,de){return this.tokenizers.reduce((Ie,ye)=>ye.pre_tokenize(Ie,de),[X])}}class Ht extends be{constructor(X){super()}pre_tokenize_text(X,de){return X.match(/\w+|[^\w\s]+/g)||[]}}class Vr extends be{constructor(X){super()}pre_tokenize_text(X,de){return k(X)}}class xs extends be{constructor(X){super(),this.config=X,this.pattern=F(this.config.pattern),this.content=this.config.content}pre_tokenize_text(X,de){return this.pattern===null?[X]:[X.replaceAll(this.pattern,this.config.content)]}}const ka=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function ua(Se,X,de,Ie){for(const ye of Object.keys(Se)){const je=X-Se[ye].length,AA=de(ye),yA=new Array(je).fill(AA);Se[ye]=Ie==="right"?(0,m.mergeArrays)(Se[ye],yA):(0,m.mergeArrays)(yA,Se[ye])}}function da(Se,X){for(const de of Object.keys(Se))Se[de].length=X}class wA extends u.Callable{return_token_type_ids=!1;padding_side="right";constructor(X,de){super(),this.config=de,this.normalizer=Be.fromConfig(X.normalizer),this.pre_tokenizer=be.fromConfig(X.pre_tokenizer),this.model=O.fromConfig(X.model,de),this.post_processor=Ve.fromConfig(X.post_processor),this.decoder=Ue.fromConfig(X.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const Ie of X.added_tokens){const ye=new T(Ie);this.added_tokens.push(ye),this.model.tokens_to_ids.set(ye.content,ye.id),this.model.vocab[ye.id]=ye.content,ye.special&&(this.special_tokens.push(ye.content),this.all_special_ids.push(ye.id))}if(this.additional_special_tokens=de.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 E.DictionarySplitter(this.added_tokens.map(Ie=>Ie.content)),this.added_tokens_map=new Map(this.added_tokens.map(Ie=>[Ie.content,Ie])),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=de.model_max_length,this.remove_space=de.remove_space,this.clean_up_tokenization_spaces=de.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=de.do_lowercase_and_remove_accent??!1,de.padding_side&&(this.padding_side=de.padding_side),this.add_bos_token=de.add_bos_token,this.add_eos_token=de.add_eos_token,this.legacy=!1,this.chat_template=de.chat_template??null,Array.isArray(this.chat_template)){const Ie=Object.create(null);for(const{name:ye,template:je}of this.chat_template){if(typeof ye!="string"||typeof je!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');Ie[ye]=je}this.chat_template=Ie}this._compiled_template_cache=new Map}getToken(...X){for(const de of X){const Ie=this.config[de];if(Ie)if(typeof Ie=="object"){if(Ie.__type==="AddedToken")return Ie.content;throw Error(`Unknown token: ${Ie}`)}else return Ie}return null}static async from_pretrained(X,{progress_callback:de=null,config:Ie=null,cache_dir:ye=null,local_files_only:je=!1,revision:AA="main",legacy:yA=null}={}){const MA=await B(X,{progress_callback:de,config:Ie,cache_dir:ye,local_files_only:je,revision:AA,legacy:yA});return new this(...MA)}_call(X,{text_pair:de=null,add_special_tokens:Ie=!0,padding:ye=!1,truncation:je=null,max_length:AA=null,return_tensor:yA=!0,return_token_type_ids:MA=null}={}){const Je=Array.isArray(X);let bA;if(Je){if(X.length===0)throw Error("text array must be non-empty");if(de!==null){if(Array.isArray(de)){if(X.length!==de.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");bA=X.map((nt,cr)=>this._encode_plus(nt,{text_pair:de[cr],add_special_tokens:Ie,return_token_type_ids:MA}))}else bA=X.map(nt=>this._encode_plus(nt,{add_special_tokens:Ie,return_token_type_ids:MA}))}else{if(X==null)throw Error("text may not be null or undefined");if(Array.isArray(de))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");bA=[this._encode_plus(X,{text_pair:de,add_special_tokens:Ie,return_token_type_ids:MA})]}if(AA===null?AA=this.model_max_length:je===null&&(ye===!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'`."),AA=this.model_max_length):ye===!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."),je=!0)),ye===!0&&(AA=Math.min((0,C.max)(bA.map(nt=>nt.input_ids.length))[0],AA??1/0)),AA=Math.min(AA,this.model_max_length??1/0),ye||je)for(let nt=0;ntAA?je&&da(bA[nt],AA):ye&&ua(bA[nt],AA,cr=>cr==="input_ids"?this.pad_token_id:0,this.padding_side));const ct={};if(yA){if(!(ye&&je)&&bA.some(cr=>{for(const Lr of Object.keys(cr))if(cr[Lr].length!==bA[0][Lr]?.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 nt=[bA.length,bA[0].input_ids.length];for(const cr of Object.keys(bA[0]))ct[cr]=new w.Tensor("int64",BigInt64Array.from(bA.flatMap(Lr=>Lr[cr]).map(BigInt)),nt)}else{for(const nt of Object.keys(bA[0]))ct[nt]=bA.map(cr=>cr[nt]);if(!Je)for(const nt of Object.keys(ct))ct[nt]=ct[nt][0]}return ct}_encode_text(X){if(X===null)return null;const de=this.added_tokens_splitter.split(X);for(let ye=0;ye0&&(de[ye-1]=de[ye-1].trimEnd()),je.rstrip&&ye{if(ye.length===0)return[];if(this.added_tokens_map.has(ye))return[ye];if(this.remove_space===!0&&(ye=ye.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(ye=z(ye)),this.normalizer!==null&&(ye=this.normalizer(ye)),ye.length===0)return[];const AA=this.pre_tokenizer!==null?this.pre_tokenizer(ye,{section_index:je}):[ye];return this.model(AA)})}_encode_plus(X,{text_pair:de=null,add_special_tokens:Ie=!0,return_token_type_ids:ye=null}={}){const{tokens:je,token_type_ids:AA}=this._tokenize_helper(X,{pair:de,add_special_tokens:Ie}),yA=this.model.convert_tokens_to_ids(je),MA={input_ids:yA,attention_mask:new Array(yA.length).fill(1)};return(ye??this.return_token_type_ids)&&AA&&(MA.token_type_ids=AA),MA}_tokenize_helper(X,{pair:de=null,add_special_tokens:Ie=!1}={}){const ye=this._encode_text(X),je=this._encode_text(de);return this.post_processor?this.post_processor(ye,je,{add_special_tokens:Ie}):{tokens:(0,m.mergeArrays)(ye??[],je??[])}}tokenize(X,{pair:de=null,add_special_tokens:Ie=!1}={}){return this._tokenize_helper(X,{pair:de,add_special_tokens:Ie}).tokens}encode(X,{text_pair:de=null,add_special_tokens:Ie=!0,return_token_type_ids:ye=null}={}){return this._encode_plus(X,{text_pair:de,add_special_tokens:Ie,return_token_type_ids:ye}).input_ids}batch_decode(X,de={}){return X instanceof w.Tensor&&(X=X.tolist()),X.map(Ie=>this.decode(Ie,de))}decode(X,de={}){if(X instanceof w.Tensor&&(X=L(X)),!Array.isArray(X)||X.length===0||!(0,m.isIntegralNumber)(X[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(X,de)}decode_single(X,{skip_special_tokens:de=!1,clean_up_tokenization_spaces:Ie=null}){let ye=this.model.convert_ids_to_tokens(X);de&&(ye=ye.filter(AA=>!this.special_tokens.includes(AA)));let je=this.decoder?this.decoder(ye):ye.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(je=je.replaceAll(this.decoder.end_of_word_suffix," "),de&&(je=je.trim())),(Ie??this.clean_up_tokenization_spaces)&&(je=Z(je)),je}get_chat_template({chat_template:X=null,tools:de=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Ie=this.chat_template;if(X!==null&&Object.hasOwn(Ie,X))X=Ie[X];else if(X===null)if(de!==null&&"tool_use"in Ie)X=Ie.tool_use;else if("default"in Ie)X=Ie.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(Ie).sort()}.`)}else if(X===null)if(this.chat_template)X=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 X}apply_chat_template(X,{tools:de=null,documents:Ie=null,chat_template:ye=null,add_generation_prompt:je=!1,tokenize:AA=!0,padding:yA=!1,truncation:MA=!1,max_length:Je=null,return_tensor:bA=!0,return_dict:ct=!1,tokenizer_kwargs:nt={},...cr}={}){if(ye=this.get_chat_template({chat_template:ye,tools:de}),typeof ye!="string")throw Error(`chat_template must be a string, but got ${typeof ye}`);let Lr=this._compiled_template_cache.get(ye);Lr===void 0&&(Lr=new x.Template(ye),this._compiled_template_cache.set(ye,Lr));const qt=Object.create(null);for(const Tt of ka){const Gr=this.getToken(Tt);Gr&&(qt[Tt]=Gr)}const Qt=Lr.render({messages:X,add_generation_prompt:je,tools:de,documents:Ie,...qt,...cr});if(AA){const Tt=this._call(Qt,{add_special_tokens:!1,padding:yA,truncation:MA,max_length:Je,return_tensor:bA,...nt});return ct?Tt:Tt.input_ids}return Qt}}class Dr extends wA{return_token_type_ids=!0}class Ut extends wA{return_token_type_ids=!0}class ot extends wA{return_token_type_ids=!0}class js extends wA{return_token_type_ids=!0}class U extends wA{return_token_type_ids=!0}class Ee extends wA{return_token_type_ids=!0}class ce extends wA{return_token_type_ids=!0}class ke extends wA{return_token_type_ids=!0}class Me extends wA{return_token_type_ids=!0}class Le extends wA{}class sA extends wA{}class OA extends wA{return_token_type_ids=!0;constructor(X,de){super(X,de),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 wA{return_token_type_ids=!0}class BA extends wA{}class gt extends wA{}class lt extends wA{}class Tr extends wA{constructor(X,de){super(X,de),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(Ie=>this.languageRegex.test(Ie)),this.lang_to_token=Ie=>Ie}_build_translation_inputs(X,de,Ie){return Mr(this,X,de,Ie)}}class Gt extends Tr{}class br extends wA{}class Is extends wA{}const Dt="▁";class Pr extends wA{padding_side="left";constructor(X,de){super(X,de),this.legacy=de.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Vt({replacement:Dt,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(X){if(X===null)return null;if(this.legacy||X.length===0)return super._encode_text(X);let de=super._encode_text(Dt+X.replaceAll(Dt," "));return de.length>1&&de[0]===Dt&&this.special_tokens.includes(de[1])&&(de=de.slice(1)),de}}class Os extends wA{}class Er extends wA{}class ps extends wA{}class _s extends wA{}class zt extends wA{}class Ws extends wA{}class zs extends wA{}class pr extends wA{}class ns extends wA{}function Mr(Se,X,de,Ie){if(!("language_codes"in Se)||!Array.isArray(Se.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in Se)||!(Se.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in Se)||typeof Se.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const ye=Ie.src_lang,je=Ie.tgt_lang;if(!Se.language_codes.includes(je))throw new Error(`Target language code "${je}" is not valid. Must be one of: {${Se.language_codes.join(", ")}}`);if(ye!==void 0){if(!Se.language_codes.includes(ye))throw new Error(`Source language code "${ye}" is not valid. Must be one of: {${Se.language_codes.join(", ")}}`);for(const AA of Se.post_processor.config.single)if("SpecialToken"in AA&&Se.languageRegex.test(AA.SpecialToken.id)){AA.SpecialToken.id=Se.lang_to_token(ye);break}}return Ie.forced_bos_token_id=Se.model.convert_tokens_to_ids([Se.lang_to_token(je)])[0],Se._call(X,de)}class vr extends wA{constructor(X,de){super(X,de),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(Ie=>this.languageRegex.test(Ie)),this.lang_to_token=Ie=>Ie}_build_translation_inputs(X,de,Ie){return Mr(this,X,de,Ie)}}class ws extends wA{constructor(X,de){super(X,de),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(Ie=>this.languageRegex.test(Ie)).map(Ie=>Ie.slice(2,-2)),this.lang_to_token=Ie=>`__${Ie}__`}_build_translation_inputs(X,de,Ie){return Mr(this,X,de,Ie)}}class qA extends wA{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(X,{return_timestamps:de=!1,return_language:Ie=!1,time_precision:ye=null,force_full_sequences:je=!0}={}){if(ye===null)throw Error("Must specify time_precision");let AA=null;const yA=de==="word";function MA(){return{language:AA,timestamp:[null,null],text:""}}const Je=[];let bA=MA(),ct=0;const nt=this.timestamp_begin,Lr=nt+1500;let qt=[],Qt=[],Tt=!1,Gr=null;const ks=new Set(this.all_special_ids);for(const $t of X){const or=$t.tokens,Bt=yA?$t.token_timestamps:null;let er=null,Vs=nt;if("stride"in $t){const[Br,Kt,WA]=$t.stride;if(ct-=Kt,Gr=Br-WA,Kt&&(Vs=Kt/ye+nt),WA)for(let wt=or.length-1;wt>=0;--wt){const yr=Number(or[wt]);if(yr>=nt){if(er!==null&&(yr-nt)*ye=nt&&Kt<=Lr){const WA=(Kt-nt)*ye+ct,wt=(0,C.round)(WA,2);if(er!==null&&Kt>=er)Tt=!0;else if(Tt||qt.length>0&&Kt0?(qt.push(lr),yA&&Qt.push(Ms)):qt.every(Br=>Br.length===0)&&(bA=MA(),qt=[],lr=[],Qt=[],Ms=[])}if(qt.length>0){if(je&&de)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[$t,or]=this.findLongestCommonSequence(qt,Qt),Bt=this.decode($t);bA.text=Bt,yA&&(bA.words=this.collateWordTimestamps($t,or,AA)),Je.push(bA)}let ir=Object.create(null);const Es=Je.map($t=>$t.text).join("");if(de||Ie){for(let $t=0;$t0;let yA=AA?[]:null,MA=AA?de[0]:null;for(let Je=1;JeKt===Vs[WA]&&MA[Es+WA]<=de[Je][Bt+WA]).length:lr=or.filter((Kt,WA)=>Kt===Vs[WA]).length;const Ms=ir/1e4,Br=lr/ir+Ms;lr>1&&Br>ct&&(ct=Br,nt=[Es,$t,Bt,er])}const[Lr,qt,Qt,Tt]=nt,Gr=Math.floor((qt+Lr)/2),ks=Math.floor((Tt+Qt)/2);je.push(...Ie.slice(0,Gr)),Ie=bA.slice(ks),ye=Ie.length,AA&&(yA.push(...MA.slice(0,Gr)),MA=de[Je].slice(ks))}return je.push(...Ie),AA?(yA.push(...MA),[je,yA]):[je,[]]}collateWordTimestamps(X,de,Ie){const[ye,je,AA]=this.combineTokensIntoWords(X,Ie),yA=[];for(let MA=0;MA=ye){const yA=((AA-ye)*Ie).toFixed(2);je.push(`<|${yA}|>`),je.push([])}else je[je.length-1].push(AA);return je=je.map(AA=>typeof AA=="string"?AA:super.decode(AA,de)),je.join("")}splitTokensOnUnicode(X){const de=this.decode(X,{decode_with_timestamps:!0}),Ie="�",ye=[],je=[],AA=[];let yA=[],MA=[],Je=0;for(let bA=0;bA=this.model.tokens_to_ids.get("<|endoftext|>"),Lr=bA.startsWith(" "),qt=bA.trim(),Qt=MA.test(qt);if(cr||Lr||Qt||je.length===0)je.push(bA),AA.push(ct),yA.push(nt);else{const Tt=je.length-1;je[Tt]+=bA,AA[Tt].push(...ct),yA[Tt].push(...nt)}}return[je,AA,yA]}mergePunctuations(X,de,Ie,ye,je){const AA=structuredClone(X),yA=structuredClone(de),MA=structuredClone(Ie);let Je=AA.length-2,bA=AA.length-1;for(;Je>=0;)AA[Je].startsWith(" ")&&ye.includes(AA[Je].trim())?(AA[bA]=AA[Je]+AA[bA],yA[bA]=(0,m.mergeArrays)(yA[Je],yA[bA]),MA[bA]=(0,m.mergeArrays)(MA[Je],MA[bA]),AA[Je]="",yA[Je]=[],MA[Je]=[]):bA=Je,--Je;for(Je=0,bA=1;bAct),yA.filter(ct=>ct.length>0),MA.filter(ct=>ct.length>0)]}}class xr extends wA{}class ms extends wA{}class is extends wA{}class uA extends wA{constructor(X,de){super(X,de),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(Ie=>this.languageRegex.test(Ie)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(X){if(X===null)return null;const[de,...Ie]=X.trim().split(this.languageRegex);if(Ie.length===0)return super._encode_text(de);if(Ie.length===2){const[ye,je]=Ie;return this.supported_language_codes.includes(ye)||console.warn(`Unsupported language code "${ye}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,m.mergeArrays)([ye],super._encode_text(je))}}}class mA extends wA{}class QA extends wA{}class jt extends wA{}class fa extends wA{}class $s extends wA{}class ga extends wA{constructor(X,de){super(X,de),this.decoder=new zA({})}}class Ys extends wA{}class ja extends wA{}class pa extends wA{}class en{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:BA,DistilBertTokenizer:Le,CamembertTokenizer:sA,DebertaTokenizer:U,DebertaV2Tokenizer:Ee,BertTokenizer:Dr,HerbertTokenizer:ce,ConvBertTokenizer:ke,RoFormerTokenizer:Me,XLMTokenizer:OA,ElectraTokenizer:HA,MobileBertTokenizer:ot,SqueezeBertTokenizer:js,AlbertTokenizer:Ut,GPT2Tokenizer:gt,BartTokenizer:lt,MBartTokenizer:Tr,MBart50Tokenizer:Gt,RobertaTokenizer:br,WhisperTokenizer:qA,CodeGenTokenizer:xr,CLIPTokenizer:ms,SiglipTokenizer:is,MarianTokenizer:uA,BloomTokenizer:Is,NllbTokenizer:vr,M2M100Tokenizer:ws,LlamaTokenizer:Pr,CodeLlamaTokenizer:Os,XLMRobertaTokenizer:Er,MPNetTokenizer:ps,FalconTokenizer:_s,GPTNeoXTokenizer:zt,EsmTokenizer:Ws,Wav2Vec2CTCTokenizer:mA,BlenderbotTokenizer:QA,BlenderbotSmallTokenizer:jt,SpeechT5Tokenizer:fa,NougatTokenizer:$s,VitsTokenizer:ga,Qwen2Tokenizer:zs,GemmaTokenizer:pr,Grok1Tokenizer:ns,CohereTokenizer:Ys,MgpstrTokenizer:ja,Ernie4_5_Tokenizer:pa,PreTrainedTokenizer:wA};static async from_pretrained(X,{progress_callback:de=null,config:Ie=null,cache_dir:ye=null,local_files_only:je=!1,revision:AA="main",legacy:yA=null}={}){const[MA,Je]=await B(X,{progress_callback:de,config:Ie,cache_dir:ye,local_files_only:je,revision:AA,legacy:yA}),bA=Je.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer";let ct=this.TOKENIZER_CLASS_MAPPING[bA];return ct||(console.warn(`Unknown tokenizer class "${bA}", attempting to construct from base class.`),ct=wA),new ct(MA,Je)}}},"./src/utils/audio.js":(a,o,n)=>{n.r(o),n.d(o,{RawAudio:()=>he,hamming:()=>v,hanning:()=>B,mel_filter_bank:()=>K,read_audio:()=>x,spectrogram:()=>y,window_function:()=>te});var u=n("./src/utils/hub.js"),m=n("./src/utils/maths.js"),b=n("./src/utils/core.js"),C=n("./src/env.js"),w=n("./src/utils/tensor.js"),E=n("?7992");async function x(ee,Ce){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 we=await(await(0,u.getFile)(ee)).arrayBuffer(),xe=new AudioContext({sampleRate:Ce});typeof Ce>"u"&&console.warn(`No sampling rate provided, using default of ${xe.sampleRate}Hz.`);const De=await xe.decodeAudioData(we);let Be;if(De.numberOfChannels===2){const Oe=Math.sqrt(2),_e=De.getChannelData(0),ne=De.getChannelData(1);Be=new Float32Array(_e.length);for(let Ae=0;Ae2595*Math.log10(1+ee/700),kaldi:ee=>1127*Math.log(1+ee/700),slaney:(ee,Ce=1e3,we=15,xe=27/Math.log(6.4))=>ee>=Ce?we+Math.log(ee/Ce)*xe:3*ee/200};function S(ee,Ce="htk"){const we=F[Ce];if(!we)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof ee=="number"?we(ee):ee.map(xe=>we(xe))}const L={htk:ee=>700*(10**(ee/2595)-1),kaldi:ee=>700*(Math.exp(ee/1127)-1),slaney:(ee,Ce=1e3,we=15,xe=Math.log(6.4)/27)=>ee>=we?Ce*Math.exp(xe*(ee-we)):200*ee/3};function Z(ee,Ce="htk"){const we=L[Ce];if(!we)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof ee=="number"?we(ee):ee.map(xe=>we(xe))}function N(ee,Ce){const we=Float64Array.from({length:Ce.length-1},(Oe,_e)=>Ce[_e+1]-Ce[_e]),xe=Array.from({length:ee.length},()=>new Array(Ce.length));for(let Oe=0;Oenew Array(ee.length));for(let Oe=0;Oeee+xe*Be)}function K(ee,Ce,we,xe,De,Be=null,Oe="htk",_e=!1){if(Be!==null&&Be!=="slaney")throw new Error('norm must be one of null or "slaney"');if(ee<2)throw new Error(`Require num_frequency_bins: ${ee} >= 2`);if(we>xe)throw new Error(`Require min_frequency: ${we} <= max_frequency: ${xe}`);const ne=S(we,Oe),Ae=S(xe,Oe),pe=z(ne,Ae,Ce+2);let le=Z(pe,Oe),Qe;if(_e){const qe=De/((ee-1)*2);Qe=S(Float64Array.from({length:ee},(oA,TA)=>TA*qe),Oe),le=pe}else Qe=z(0,Math.floor(De/2),ee);const iA=N(Qe,le);if(Be!==null&&Be==="slaney")for(let qe=0;qeDe)throw Error(`frame_length (${we}) may not be larger than fft_length (${De})`);if(aA!==we)throw new Error(`Length of the window (${aA}) must equal frame_length (${we})`);if(xe<=0)throw new Error("hop_length must be greater than zero");if(Be===null&&le!==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(!pe)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(Oe){if(_e!=="reflect")throw new Error(`pad_mode="${_e}" not implemented yet.`);const SA=Math.floor((De-1)/2)+1;ee=f(ee,SA,SA)}let Ze=Math.floor(1+Math.floor((ee.length-we)/xe));be!==null&&ZeZe?ge&&(We=ze):We=V=ze);const rA=new m.FFT(De),fe=new Float64Array(De),EA=new Float64Array(rA.outputBufferSize),Ue=new Float32Array(Ve*We);for(let SA=0;SA=1;--PA)fe[PA]-=Ae*fe[PA-1];fe[0]*=1-Ae}for(let PA=0;PAMath.pow(_e,.85));break;default:throw new Error(`Unknown window type ${Ce}.`)}if(we&&(Oe=Oe.subarray(0,ee)),xe===null)return Oe;if(ee>xe)throw new Error(`Length of the window (${ee}) may not be larger than frame_length (${xe})`);return Oe}function T(ee,Ce){let we=44;const xe=new ArrayBuffer(we+ee.length*4),De=new DataView(xe);O(De,0,"RIFF"),De.setUint32(4,36+ee.length*4,!0),O(De,8,"WAVE"),O(De,12,"fmt "),De.setUint32(16,16,!0),De.setUint16(20,3,!0),De.setUint16(22,1,!0),De.setUint32(24,Ce,!0),De.setUint32(28,Ce*4,!0),De.setUint16(32,4,!0),De.setUint16(34,32,!0),O(De,36,"data"),De.setUint32(40,ee.length*4,!0);for(let Be=0;Be{let Be=await De.arrayBuffer();E.writeFileSync(xe,Buffer.from(Be))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await we(Ce,this.toBlob())}}},"./src/utils/constants.js":(a,o,n)=>{n.r(o),n.d(o,{CHAT_TEMPLATE_NAME:()=>E,CONFIG_NAME:()=>m,FEATURE_EXTRACTOR_NAME:()=>b,GENERATION_CONFIG_NAME:()=>x,GITHUB_ISSUE_URL:()=>u,IMAGE_PROCESSOR_NAME:()=>C,PROCESSOR_NAME:()=>w});const u="https://github.com/huggingface/transformers.js/issues/new/choose",m="config.json",b="preprocessor_config.json",C=b,w="processor_config.json",E="chat_template.jinja",x="generation_config.json"},"./src/utils/core.js":(a,o,n)=>{n.r(o),n.d(o,{calculateDimensions:()=>x,calculateReflectOffset:()=>F,count:()=>N,dispatchCallback:()=>u,escapeRegExp:()=>b,isIntegralNumber:()=>w,isNullishDimension:()=>E,isTypedArray:()=>C,len:()=>Z,mergeArrays:()=>B,pick:()=>L,pop:()=>D,product:()=>v,reverseDictionary:()=>m,saveBlob:()=>S});function u(z,K){z&&z(K)}function m(z){return Object.fromEntries(Object.entries(z).map(([K,f])=>[f,K]))}function b(z){return z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(z){return z?.prototype?.__proto__?.constructor?.name==="TypedArray"}function w(z){return Number.isInteger(z)||typeof z=="bigint"}function E(z){return z==null||z===-1}function x(z){const K=[];let f=z;for(;Array.isArray(f);)K.push(f.length),f=f[0];return K}function D(z,K,f=void 0){const k=z[K];if(k!==void 0)return delete z[K],k;if(f===void 0)throw Error(`Key ${K} does not exist in object.`);return f}function B(...z){return Array.prototype.concat.apply([],z)}function v(...z){return z.reduce((K,f)=>K.flatMap(k=>f.map(e=>[k,e])))}function F(z,K){return Math.abs((z+K)%(2*K)-K)}function S(z,K){const f=URL.createObjectURL(K),k=document.createElement("a");k.href=f,k.download=z,k.click(),k.remove(),URL.revokeObjectURL(f)}function L(z,K){return Object.assign({},...K.map(f=>{if(z[f]!==void 0)return{[f]:z[f]}}))}function Z(z){let K=0;for(const f of z)++K;return K}function N(z,K){let f=0;for(const k of z)k===K&&++f;return f}},"./src/utils/data-structures.js":(a,o,n)=>{n.r(o),n.d(o,{CharTrie:()=>m,DictionarySplitter:()=>E,LRUCache:()=>x,PriorityQueue:()=>u,TokenLattice:()=>C});class u{constructor(B=(F,S)=>F>S,v=1/0){this._heap=[],this._comparator=B,this._maxSize=v}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...B){return this.extend(B)}extend(B){for(const v of B)if(this.size0&&this._swap(0,v),this._heap.pop(),this._siftDown(),B}replace(B){const v=this.peek();return this._heap[0]=B,this._siftDown(),v}_parent(B){return(B+1>>>1)-1}_left(B){return(B<<1)+1}_right(B){return B+1<<1}_greater(B,v){return this._comparator(this._heap[B],this._heap[v])}_swap(B,v){const F=this._heap[B];this._heap[B]=this._heap[v],this._heap[v]=F}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(B){for(;B>0&&this._greater(B,this._parent(B));)this._swap(B,this._parent(B)),B=this._parent(B)}_siftDown(){let B=0;for(;this._left(B)[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const S=new w(this.bosTokenId,0,0,0,0),L=new w(this.eosTokenId,1,this.len,0,0);this.nodes.push(S.clone()),this.nodes.push(L.clone()),this.beginNodes[this.len].push(L),this.endNodes[0].push(S)}insert(B,v,F,S){const L=this.nodes.length,Z=new w(S,L,B,v,F);this.beginNodes[B].push(Z),this.endNodes[B+v].push(Z),this.nodes.push(Z)}viterbi(){const B=this.len;let v=0;for(;v<=B;){if(this.beginNodes[v].length==0)return[];for(let N of this.beginNodes[v]){N.prev=null;let z=0,K=null;for(let f of this.endNodes[v]){const k=f.backtraceScore+N.score;(K===null||k>z)&&(K=f.clone(),z=k)}if(K!==null)N.prev=K,N.backtraceScore=z;else return[]}++v}const F=[],L=this.beginNodes[B][0].prev;if(L===null)return[];let Z=L.clone();for(;Z.prev!==null;)F.push(Z.clone()),Z=Z.clone().prev.clone();return F.reverse(),F}piece(B){return this.chars.slice(B.pos,B.pos+B.length).join("")}tokens(){return this.viterbi().map(v=>this.piece(v))}tokenIds(){return this.viterbi().map(v=>v.tokenId)}}class w{constructor(B,v,F,S,L){this.tokenId=B,this.nodeId=v,this.pos=F,this.length=S,this.score=L,this.prev=null,this.backtraceScore=0}clone(){const B=new w(this.tokenId,this.nodeId,this.pos,this.length,this.score);return B.prev=this.prev,B.backtraceScore=this.backtraceScore,B}}class E{constructor(B){this.trie=this._buildTrie(B)}_buildTrie(B){const v=Object.create(null);for(const F of B){let S=v;for(let L=0;LS&&v.push(B.slice(S,L)),v.push(N),L+=N.length,S=L):++L}return Sthis.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}},"./src/utils/devices.js":(a,o,n)=>{n.r(o),n.d(o,{DEVICE_TYPES:()=>u});const u=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":(a,o,n)=>{n.r(o),n.d(o,{DATA_TYPES:()=>C,DEFAULT_DEVICE_DTYPE_MAPPING:()=>w,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>E,isWebGpuFp16Supported:()=>b});var u=n("./src/env.js"),m=n("./src/utils/devices.js");const b=function(){let x;return async function(){if(x===void 0)if(!u.apis.IS_WEBGPU_AVAILABLE)x=!1;else try{x=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{x=!1}return x}}(),C=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),w=Object.freeze({[m.DEVICE_TYPES.wasm]:C.q8}),E=Object.freeze({[C.fp32]:"",[C.fp16]:"_fp16",[C.int8]:"_int8",[C.uint8]:"_uint8",[C.q8]:"_quantized",[C.q4]:"_q4",[C.q4f16]:"_q4f16",[C.bnb4]:"_bnb4"})},"./src/utils/generic.js":(a,o,n)=>{n.r(o),n.d(o,{Callable:()=>u});const u=class{constructor(){let m=function(...b){return m._call(...b)};return Object.setPrototypeOf(m,new.target.prototype)}_call(...m){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(a,o,n)=>{n.r(o),n.d(o,{MAX_EXTERNAL_DATA_CHUNKS:()=>w,getFile:()=>F,getModelFile:()=>z,getModelJSON:()=>f,getModelText:()=>K});var u=n("?7992"),m=n("?5af5"),b=n("./src/env.js"),C=n("./src/utils/core.js");const w=100,E={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 x{constructor(y){if(this.filePath=y,this.headers=new Headers,this.exists=u.existsSync(y),this.exists){this.status=200,this.statusText="OK";let te=u.statSync(y);this.headers.set("content-length",te.size.toString()),this.updateContentType();const T=u.createReadStream(y);this.body=new ReadableStream({start(O){T.on("data",he=>O.enqueue(he)),T.on("end",()=>O.close()),T.on("error",he=>O.error(he))},cancel(){T.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const y=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",E[y]??"application/octet-stream")}clone(){let y=new x(this.filePath);return y.exists=this.exists,y.status=this.status,y.statusText=this.statusText,y.headers=new Headers(this.headers),y}async arrayBuffer(){return(await u.promises.readFile(this.filePath)).buffer}async blob(){const y=await u.promises.readFile(this.filePath);return new Blob([y],{type:this.headers.get("content-type")})}async text(){return await u.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function D(d,y=null,te=null){let T;try{T=new URL(d)}catch{return!1}return!(y&&!y.includes(T.protocol)||te&&!te.includes(T.hostname))}const B=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function v(d){return!(!B.test(d)||d.includes("..")||d.includes("--")||d.endsWith(".git")||d.endsWith(".ipynb"))}async function F(d){if(b.env.useFS&&!D(d,["http:","https:","blob:"]))return new x(d instanceof URL?d.protocol==="file:"?d.pathname:d.toString():d);if(typeof process<"u"&&process?.release?.name==="node"){const y=!!F2?.TESTING_REMOTELY,te=b.env.version,T=new Headers;if(T.set("User-Agent",`transformers.js/${te}; is_ci/${y};`),D(d,["http:","https:"],["huggingface.co","hf.co"])){const he=F2?.HF_TOKEN??F2?.HF_ACCESS_TOKEN;he&&T.set("Authorization",`Bearer ${he}`)}return fetch(d,{headers:T})}else return fetch(d)}const S={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 L(d,y,te){if(!te)return null;const T=S[d]??`Error (${d}) occurred while trying to load file`;throw Error(`${T}: "${y}".`)}class Z{constructor(y){this.path=y}async match(y){let te=m.join(this.path,y),T=new x(te);if(T.exists)return T}async put(y,te,T=void 0){let O=m.join(this.path,y);try{const he=te.headers.get("Content-Length"),ee=parseInt(he??"0");let Ce=0;await u.promises.mkdir(m.dirname(O),{recursive:!0});const we=u.createWriteStream(O),xe=te.body.getReader();for(;;){const{done:De,value:Be}=await xe.read();if(De)break;await new Promise((_e,ne)=>{we.write(Be,Ae=>{if(Ae){ne(Ae);return}_e()})}),Ce+=Be.length;const Oe=ee?Ce/ee*100:0;T?.({progress:Oe,loaded:Ce,total:ee})}we.close()}catch(he){try{await u.promises.unlink(O)}catch{}throw he}}}async function N(d,...y){for(let te of y)try{let T=await d.match(te);if(T)return T}catch{continue}}async function z(d,y,te=!0,T={},O=!1){if(!b.env.allowLocalModels){if(T.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(!b.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,C.dispatchCallback)(T.progress_callback,{status:"initiate",name:d,file:y});let he;if(!he&&b.env.useCustomCache){if(!b.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!b.env.customCache.match||!b.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");he=b.env.customCache}if(!he&&b.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{he=await caches.open("transformers-cache")}catch(Qe){console.warn("An error occurred while opening the browser cache:",Qe)}}if(!he&&b.env.useFSCache){if(!b.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");he=new Z(T.cache_dir??b.env.cacheDir)}const ee=T.revision??"main",Ce=e(d,y),we=v(d),xe=we?e(b.env.localModelPath,Ce):Ce,De=e(b.env.remoteHost,b.env.remotePathTemplate.replaceAll("{model}",d).replaceAll("{revision}",encodeURIComponent(ee)),y);let Be;const Oe=he instanceof Z?ee==="main"?Ce:e(d,ee,y):De;let _e=!1,ne;he&&(ne=await N(he,xe,Oe));const Ae=ne!==void 0;if(ne===void 0){if(b.env.allowLocalModels)if(D(Ce,["http:","https:"])){if(T.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${Ce}.`);if(!b.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${Ce}.`)}else try{ne=await F(xe),Be=xe}catch(iA){console.warn(`Unable to load from local path "${xe}": "${iA}"`)}if(ne===void 0||ne.status===404){if(T.local_files_only||!b.env.allowRemoteModels){if(te)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${xe}".`);return null}if(!we)throw Error(`Local file missing at "${xe}" and download aborted due to invalid model ID "${d}".`);if(ne=await F(De),ne.status!==200)return L(ne.status,De,te);Be=Oe}_e=he&&typeof Response<"u"&&ne instanceof Response&&ne.status===200}(0,C.dispatchCallback)(T.progress_callback,{status:"download",name:d,file:y});let pe;if(!(b.apis.IS_NODE_ENV&&O)){let Qe;T.progress_callback?Ae&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(Qe=new Uint8Array(await ne.arrayBuffer()),(0,C.dispatchCallback)(T.progress_callback,{status:"progress",name:d,file:y,progress:100,loaded:Qe.length,total:Qe.length})):Qe=await k(ne,iA=>{(0,C.dispatchCallback)(T.progress_callback,{status:"progress",name:d,file:y,...iA})}):Qe=new Uint8Array(await ne.arrayBuffer()),pe=Qe}if(_e&&Be&&await he.match(Be)===void 0&&(pe?await he.put(Be,new Response(pe,{headers:ne.headers})).catch(Qe=>{console.warn(`Unable to add response to browser cache: ${Qe}.`)}):await he.put(Be,ne,T.progress_callback)),(0,C.dispatchCallback)(T.progress_callback,{status:"done",name:d,file:y}),pe){if(!b.apis.IS_NODE_ENV&&O)throw new Error("Cannot return path in a browser environment.");return pe}if(ne instanceof x)return ne.filePath;const le=await he?.match(Be);if(le instanceof x)return le.filePath;if(le instanceof Response)return new Uint8Array(await le.arrayBuffer());if(typeof le=="string")return le;throw new Error("Unable to get model file path or buffer.")}async function K(d,y,te=!0,T={}){const O=await z(d,y,te,T,!1);return O===null?null:new TextDecoder("utf-8").decode(O)}async function f(d,y,te=!0,T={}){const O=await K(d,y,te,T);return O===null?{}:JSON.parse(O)}async function k(d,y){const te=d.headers.get("Content-Length");te===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let T=parseInt(te??"0"),O=new Uint8Array(T),he=0;const ee=d.body.getReader();async function Ce(){const{done:we,value:xe}=await ee.read();if(we)return;const De=he+xe.length;if(De>T){T=De;const Oe=new Uint8Array(T);Oe.set(O),O=Oe}O.set(xe,he),he=De;const Be=he/T*100;return y({progress:Be,loaded:he,total:T}),Ce()}return await Ce(),O}function e(...d){return d=d.map((y,te)=>(te&&(y=y.replace(new RegExp("^/"),"")),te!==d.length-1&&(y=y.replace(new RegExp("/$"),"")),y)),d.join("/")}},"./src/utils/image.js":(a,o,n)=>{n.r(o),n.d(o,{RawImage:()=>S,load_image:()=>L});var u=n("./src/utils/core.js"),m=n("./src/utils/hub.js"),b=n("./src/env.js"),C=n("./src/utils/tensor.js"),w=n("?2b25");let E,x,D;const B=b.apis.IS_BROWSER_ENV||b.apis.IS_WEBWORKER_ENV;if(B)E=(Z,N)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(Z,N)},D=self.createImageBitmap,x=self.ImageData;else if(w)D=async Z=>{const z=(await Z.metadata()).channels,{data:K,info:f}=await Z.rotate().raw().toBuffer({resolveWithObject:!0}),k=new S(new Uint8ClampedArray(K),f.width,f.height,f.channels);return z!==void 0&&z!==f.channels&&k.convert(z),k};else throw new Error("Unable to load image processing library.");const v={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},F=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class S{constructor(N,z,K,f){this.data=N,this.width=z,this.height=K,this.channels=f}get size(){return[this.width,this.height]}static async read(N){if(N instanceof S)return N;if(typeof N=="string"||N instanceof URL)return await this.fromURL(N);if(N instanceof Blob)return await this.fromBlob(N);if(typeof HTMLCanvasElement<"u"&&N instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&N instanceof OffscreenCanvas)return this.fromCanvas(N);throw new Error(`Unsupported input type: ${typeof N}`)}static fromCanvas(N){if(!B)throw new Error("fromCanvas() is only supported in browser environments.");const K=N.getContext("2d").getImageData(0,0,N.width,N.height).data;return new S(K,N.width,N.height,4)}static async fromURL(N){const z=await(0,m.getFile)(N);if(z.status!==200)throw new Error(`Unable to read image from "${N}" (${z.status} ${z.statusText})`);const K=await z.blob();return this.fromBlob(K)}static async fromBlob(N){if(B){const z=await D(N),K=E(z.width,z.height).getContext("2d");return K.drawImage(z,0,0),new this(K.getImageData(0,0,z.width,z.height).data,z.width,z.height,4)}else{const z=w(await N.arrayBuffer());return await D(z)}}static fromTensor(N,z="CHW"){if(N.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${N.dims.length} dimensions.`);if(z==="CHW")N=N.transpose(1,2,0);else if(z!=="HWC")throw new Error(`Unsupported channel format: ${z}`);if(!(N.data instanceof Uint8ClampedArray||N.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${N.type}`);switch(N.dims[2]){case 1:case 2:case 3:case 4:return new S(N.data,N.dims[1],N.dims[0],N.dims[2]);default:throw new Error(`Unsupported number of channels: ${N.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const N=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let z=0,K=0;z=0?y=K:T=-K,f>=0?te=f:O=-f,d.drawImage(e,y,te,N,z,T,O,N,z),new S(d.getImageData(0,0,N,z).data,N,z,4).convert(k)}else{let k=this.toSharp();if(K>=0&&f>=0)k=k.extract({left:Math.floor(K),top:Math.floor(f),width:N,height:z});else if(K<=0&&f<=0){const e=Math.floor(-f),d=Math.floor(-K);k=k.extend({top:e,left:d,right:N-this.width-d,bottom:z-this.height-e})}else{let e=[0,0],d=0;f<0?(e[0]=Math.floor(-f),e[1]=z-this.height-e[0]):d=Math.floor(f);let y=[0,0],te=0;K<0?(y[0]=Math.floor(-K),y[1]=N-this.width-y[0]):te=Math.floor(K),k=k.extend({top:e[0],bottom:e[1],left:y[0],right:y[1]}).extract({left:te,top:d,width:N,height:z})}return await D(k)}}async toBlob(N="image/png",z=1){if(!B)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:N,quality:z})}toTensor(N="CHW"){let z=new C.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(N!=="HWC")if(N==="CHW")z=z.permute(2,0,1);else throw new Error(`Unsupported channel format: ${N}`);return z}toCanvas(){if(!B)throw new Error("toCanvas() is only supported in browser environments.");const N=this.clone().rgba(),z=E(N.width,N.height),K=new x(N.data,N.width,N.height);return z.getContext("2d").putImageData(K,0,0),z}split(){const{data:N,width:z,height:K,channels:f}=this,k=N.constructor,e=N.length/f,d=Array.from({length:f},()=>new k(e));for(let y=0;ynew S(y,z,K,1))}_update(N,z,K,f=null){return this.data=N,this.width=z,this.height=K,f!==null&&(this.channels=f),this}clone(){return new S(this.data.slice(),this.width,this.height,this.channels)}convert(N){if(this.channels===N)return this;switch(N){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(N){if(B){if(b.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const z=N.split(".").pop().toLowerCase(),K=F.get(z)??"image/png",f=await this.toBlob(K);(0,u.saveBlob)(N,f)}else{if(b.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(N);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(B)throw new Error("toSharp() is only supported in server-side environments.");return w(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const L=S.read.bind(S)},"./src/utils/maths.js":(a,o,n)=>{n.r(o),n.d(o,{FFT:()=>L,bankers_round:()=>z,cos_sim:()=>E,dot:()=>w,dynamic_time_warping:()=>K,interpolate_data:()=>u,log_softmax:()=>C,magnitude:()=>x,max:()=>B,medianFilter:()=>Z,min:()=>D,permute_data:()=>m,round:()=>N,softmax:()=>b});function u(f,[k,e,d],[y,te],T="bilinear",O=!1){const he=te/d,ee=y/e,Ce=new f.constructor(y*te*k),we=e*d,xe=y*te;for(let De=0;De=0;--O)y[O]=he,d[O]=k[e[O]],he*=d[O];const te=e.map((O,he)=>y[e.indexOf(he)]),T=new f.constructor(f.length);for(let O=0;O=0;--ee)he+=Ce%k[ee]*te[ee],Ce=Math.floor(Ce/k[ee]);T[he]=f[O]}return[T,d]}function b(f){const k=B(f)[0],e=f.map(te=>Math.exp(te-k)),d=e.reduce((te,T)=>te+T,0);return e.map(te=>te/d)}function C(f){const k=B(f)[0];let e=0;for(let te=0;tete-k-d)}function w(f,k){let e=0;for(let d=0;dk+e*e,0))}function D(f){if(f.length===0)throw Error("Array must not be empty");let k=f[0],e=0;for(let d=1;dk&&(k=f[d],e=d);return[k,e]}function v(f){return f>0&&(f&f-1)===0}class F{constructor(k){if(this.size=k|0,this.size<=1||!v(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=k<<1,this.table=new Float64Array(this.size*2);for(let d=0;dd;d<<=1)++e;this._width=e%2===0?e-1:e,this._bitrev=new Int32Array(1<>>y&3)<>>1);for(let y=0;y>>1]=k[y];return d}toComplexArray(k,e){const d=e||this.createComplexArray();for(let y=0;y>>1],d[y+1]=0;return d}transform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._transform4(k,e,1)}realTransform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._realTransform4(k,e,1)}inverseTransform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._transform4(k,e,-1);for(let d=0;d>=2;T>=2;T>>=2){O=y/T<<1;const xe=O>>>2;for(he=0;he>>1,T>>>1)}else for(he=0,ee=0;he>>1,T>>>1,d)}const we=this.table;for(T>>=2;T>=2;T>>=2){O=y/T<<1;const De=O>>>1,Be=De>>>1,Oe=Be>>>1;for(he=0;he>>1;for(let De=2;De>1;++Ce){const we=(Ce+1-k)**2/2,xe=Math.sqrt(he**2+ee**2)**we,De=we*Math.atan2(ee,he),Be=2*Ce;te[Be]=xe*Math.cos(De),te[Be+1]=xe*Math.sin(De),T[Be]=te[Be],T[Be+1]=-te[Be+1]}this._slicedChirpBuffer=te.subarray(e,d),this._f=new F(y>>1),this._f.transform(this._chirpBuffer,T)}_transform(k,e,d){const y=this._buffer1,te=this._buffer2,T=this._outBuffer1,O=this._outBuffer2,he=this._chirpBuffer,ee=this._slicedChirpBuffer,Ce=this._a;if(d)for(let we=0;we>1,Be=e[De];y[we]=Be*ee[we],y[xe]=Be*ee[xe]}else for(let we=0;we=f.length&&(he=2*(f.length-1)-he),d[T++]=f[he]}d.sort(),e[te]=d[y]}return e}function N(f,k){const e=Math.pow(10,k);return Math.round(f*e)/e}function z(f){const k=Math.round(f);return Math.abs(f)%1===.5?k%2===0?k:k-1:k}function K(f){const k=f.length,e=f[0].length,d=[k+1,e+1],y=Array.from({length:d[0]},()=>Array(d[1]).fill(1/0));y[0][0]=0;const te=Array.from({length:d[0]},()=>Array(d[1]).fill(-1));for(let Ce=1;Ce0||O>0;)switch(he.push(T-1),ee.push(O-1),te[T][O]){case 0:--T,--O;break;case 1:--T;break;case 2:--O;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${T}, ${O}]. Please file a bug report.`)}return he.reverse(),ee.reverse(),[he,ee]}},"./src/utils/tensor.js":(a,o,n)=>{n.r(o),n.d(o,{DataTypeMap:()=>C,Tensor:()=>w,cat:()=>e,full:()=>ee,full_like:()=>Ce,interpolate:()=>D,interpolate_4d:()=>B,layer_norm:()=>z,matmul:()=>v,mean:()=>T,mean_pooling:()=>N,ones:()=>we,ones_like:()=>xe,permute:()=>x,quantize_embeddings:()=>_e,rand:()=>Oe,rfft:()=>F,slice:()=>Z,stack:()=>d,std_mean:()=>te,topk:()=>S,zeros:()=>De,zeros_like:()=>Be});var u=n("./src/utils/maths.js"),m=n("./src/backends/onnx.js"),b=n("./src/ops/registry.js");const C=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 w{get dims(){return this.ort_tensor.dims}set dims(Ae){this.ort_tensor.dims=Ae}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}ort_tensor;constructor(...Ae){return(0,m.isONNXTensor)(Ae[0])?this.ort_tensor=Ae[0]:this.ort_tensor=new m.Tensor(Ae[0],Ae[1],Ae[2]),new Proxy(this,{get:(pe,le)=>{if(typeof le=="string"){let Qe=Number(le);if(Number.isInteger(Qe))return pe._getitem(Qe)}return pe[le]},set:(pe,le,Qe)=>pe[le]=Qe})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[Ae,...pe]=this.dims;if(pe.length>0){const le=pe.reduce((Qe,iA)=>Qe*iA);for(let Qe=0;Qe0){const Qe=le.reduce((iA,qe)=>iA*qe);return this._subarray(Ae,Qe,le)}else return new w(this.type,[this.data[Ae]],le)}indexOf(Ae){const pe=this.data;for(let le=0;leYe)throw new Error(`Invalid slice: ${ze}`);const aA=[Math.max(ge,0),Math.min(Ye,this.dims[be])];le.push(aA),pe.push(aA[1]-aA[0])}else throw new Error(`Invalid slice: ${ze}`)}const Qe=le.map(([be,ze])=>ze-be),iA=Qe.reduce((be,ze)=>be*ze),qe=this.data,oA=new qe.constructor(iA),TA=this.stride();let eA=!0;for(let be=1;be=0;--ge){const aA=Qe[ge];ze+=(Ye%aA+le[ge][0])*TA[ge],Ye=Math.floor(Ye/aA)}oA[be]=qe[ze]}return new w(this.type,oA,pe)}permute(...Ae){return x(this,Ae)}transpose(...Ae){return this.permute(...Ae)}sum(Ae=null,pe=!1){return this.norm(1,Ae,pe)}norm(Ae="fro",pe=null,le=!1){if(Ae==="fro")Ae=2;else if(typeof Ae=="string")throw Error(`Unsupported norm: ${Ae}`);const Qe=this.data,iA=(eA,be)=>eA+be**Ae;if(pe===null){const eA=Qe.reduce(iA,0)**(1/Ae);return new w(this.type,[eA],[])}const[qe,oA,TA]=y(iA,this,pe,le);if(Ae!==1)for(let eA=0;eA=0;--TA){const ze=this.dims[TA];if(TA!==pe){const ge=eA%ze;oA+=ge*be,be*=this.dims[TA]}eA=Math.floor(eA/ze)}Qe[qe]/=iA[oA]}return this}normalize(Ae=2,pe=1){return this.clone().normalize_(Ae,pe)}stride(){return O(this.dims)}squeeze(Ae=null){return new w(this.type,this.data,K(this.dims,Ae))}squeeze_(Ae=null){return this.dims=K(this.dims,Ae),this}unsqueeze(Ae=null){return new w(this.type,this.data,f(this.dims,Ae))}unsqueeze_(Ae=null){return this.dims=f(this.dims,Ae),this}flatten_(Ae=0,pe=-1){pe=(pe+this.dims.length)%this.dims.length;let le=this.dims.slice(0,Ae),Qe=this.dims.slice(Ae,pe+1),iA=this.dims.slice(pe+1);return this.dims=[...le,Qe.reduce((qe,oA)=>qe*oA,1),...iA],this}flatten(Ae=0,pe=-1){return this.clone().flatten_(Ae,pe)}view(...Ae){let pe=-1;for(let Qe=0;QeoA!==pe?iA*qe:iA,1);Ae[pe]=le.length/Qe}return new w(this.type,le,Ae)}neg_(){const Ae=this.data;for(let pe=0;peAe?1:0;return new w("bool",pe,this.dims)}lt(Ae){const pe=new Uint8Array(this.data.length),le=this.data;for(let Qe=0;QeMath.min(qe,oA),this,Ae,pe,1/0);return new w(le,Qe,iA)}max(Ae=null,pe=!1){if(Ae===null){const qe=(0,u.max)(this.data)[0];return new w(this.type,[qe],[])}const[le,Qe,iA]=y((qe,oA)=>Math.max(qe,oA),this,Ae,pe,-1/0);return new w(le,Qe,iA)}argmin(Ae=null,pe=!1){if(Ae!==null)throw new Error("`dim !== null` not yet implemented.");const le=(0,u.min)(this.data)[1];return new w("int64",[BigInt(le)],[])}argmax(Ae=null,pe=!1){if(Ae!==null)throw new Error("`dim !== null` not yet implemented.");const le=(0,u.max)(this.data)[1];return new w("int64",[BigInt(le)],[])}to(Ae){if(this.type===Ae)return this;if(!C.hasOwnProperty(Ae))throw new Error(`Unsupported type: ${Ae}`);let pe;const le=["int64","uint64"].includes(this.type),Qe=["int64","uint64"].includes(Ae);return le&&!Qe?pe=Number:!le&&Qe&&(pe=BigInt),new w(Ae,C[Ae].from(this.data,pe),this.dims)}}function E(ne,Ae){const pe=ne.length,le=Ae.reduce((iA,qe)=>iA*qe);if(pe!==le)throw Error(`cannot reshape array of size ${pe} into shape (${Ae})`);let Qe=ne;for(let iA=Ae.length-1;iA>=0;iA--)Qe=Qe.reduce((qe,oA)=>{let TA=qe[qe.length-1];return TA.lengthnew w("int64",ne,[ne.length]);async function Z(ne,Ae,pe,le,Qe){return await(await b.TensorOpRegistry.slice)({x:ne,s:L(Ae),e:L(pe),a:L(le),t:L(Qe??new Array(le.length).fill(1))})}function N(ne,Ae){const pe=ne.data,le=Ae.data,Qe=[ne.dims[0],ne.dims[2]],iA=new pe.constructor(Qe[0]*Qe[1]),[qe,oA,TA]=ne.dims;let eA=0;for(let be=0;bepe!==1):typeof Ae=="number"?ne[Ae]===1&&ne.splice(Ae,1):Array.isArray(Ae)&&(ne=ne.filter((pe,le)=>pe!==1||!Ae.includes(le))),ne}function f(ne,Ae){return Ae=k(Ae,ne.length+1),ne=ne.slice(),ne.splice(Ae,0,1),ne}function k(ne,Ae,pe=null,le=!0){if(ne<-Ae||ne>=Ae){if(le)throw new Error(`IndexError: index ${ne} is out of bounds for dimension${pe===null?"":" "+pe} with size ${Ae}`);return ne<-Ae?0:Ae}return ne<0&&(ne=(ne%Ae+Ae)%Ae),ne}function e(ne,Ae=0){Ae=k(Ae,ne[0].dims.length);const pe=ne[0].dims.slice();pe[Ae]=ne.reduce((qe,oA)=>qe+oA.dims[Ae],0);const le=pe.reduce((qe,oA)=>qe*oA,1),Qe=new ne[0].data.constructor(le),iA=ne[0].type;if(Ae===0){let qe=0;for(const oA of ne){const TA=oA.data;Qe.set(TA,qe),qe+=TA.length}}else{let qe=0;for(let oA=0;oA=0;--ge){const Ze=eA[ge];let Ve=Ye%Ze;ge===Ae&&(Ve+=qe),ze+=Ve*aA,aA*=pe[ge],Ye=Math.floor(Ye/Ze)}Qe[ze]=TA[be]}qe+=eA[Ae]}}return new w(iA,Qe,pe)}function d(ne,Ae=0){return e(ne.map(pe=>pe.unsqueeze(Ae)),Ae)}function y(ne,Ae,pe=null,le=!1,Qe=null){const iA=Ae.data,qe=Ae.dims;pe=k(pe,qe.length);const oA=qe.slice();oA[pe]=1;const TA=new iA.constructor(iA.length/qe[pe]);Qe!==null&&TA.fill(Qe);for(let eA=0;eA=0;--ze){const aA=qe[ze];if(ze!==pe){const Ze=ge%aA;be+=Ze*Ye,Ye*=oA[ze]}ge=Math.floor(ge/aA)}TA[be]=ne(TA[be],iA[eA],eA,be)}return le||oA.splice(pe,1),[Ae.type,TA,oA]}function te(ne,Ae=null,pe=1,le=!1){const Qe=ne.data,iA=ne.dims;if(Ae===null){const Ye=Qe.reduce((V,We)=>V+We,0)/Qe.length,aA=Math.sqrt(Qe.reduce((V,We)=>V+(We-Ye)**2,0)/(Qe.length-pe)),Ze=new w(ne.type,[Ye],[]);return[new w(ne.type,[aA],[]),Ze]}Ae=k(Ae,iA.length);const qe=T(ne,Ae,le),oA=qe.data,[TA,eA,be]=y((ge,Ye,aA,Ze)=>ge+(Ye-oA[Ze])**2,ne,Ae,le);for(let ge=0;geeA+be,0);return new w(ne.type,[TA/Qe.length],[])}Ae=k(Ae,le.length);const[iA,qe,oA]=y((TA,eA)=>TA+eA,ne,Ae,pe);if(le[Ae]!==1)for(let TA=0;TA=0;--pe)Ae[pe]=le,le*=ne[pe];return Ae}function he(ne,Ae,pe,le){const Qe=ne.reduce((iA,qe)=>iA*qe,1);return new w(pe,new le(Qe).fill(Ae),ne)}function ee(ne,Ae){let pe,le;if(typeof Ae=="number")pe="float32",le=Float32Array;else if(typeof Ae=="bigint")pe="int64",le=BigInt64Array;else if(typeof Ae=="boolean")pe="bool",le=Uint8Array;else throw new Error(`Unsupported data type: ${typeof Ae}`);return he(ne,Ae,pe,le)}function Ce(ne,Ae){return ee(ne.dims,Ae)}function we(ne){return he(ne,1n,"int64",BigInt64Array)}function xe(ne){return we(ne.dims)}function De(ne){return he(ne,0n,"int64",BigInt64Array)}function Be(ne){return De(ne.dims)}function Oe(ne){const Ae=ne.reduce((pe,le)=>pe*le,1);return new w("float32",Float32Array.from({length:Ae},()=>Math.random()),ne)}function _e(ne,Ae){if(ne.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(ne.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(Ae))throw new Error("The precision must be either 'binary' or 'ubinary'");const pe=Ae==="binary",le=pe?"int8":"uint8",Qe=pe?Int8Array:Uint8Array,iA=ne.data,qe=new Qe(iA.length/8);for(let oA=0;oA0?1:0,eA=Math.floor(oA/8),be=oA%8;qe[eA]|=TA<<7-be,pe&&be===0&&(qe[eA]-=128)}return new w(le,qe,[ne.dims[0],ne.dims[1]/8])}},"./src/utils/video.js":(a,o,n)=>{n.r(o),n.d(o,{RawVideo:()=>C,RawVideoFrame:()=>b,load_video:()=>w});var u=n("./src/utils/image.js"),m=n("./src/env.js");class b{constructor(x,D){this.image=x,this.timestamp=D}}class C{constructor(x,D){x.length>0&&x[0]instanceof u.RawImage&&(x=x.map((B,v)=>new b(B,(v+1)/(x.length+1)*D))),this.frames=x,this.duration=D}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 w(E,{num_frames:x=null,fps:D=null}={}){if(!m.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(x==null&&D==null)throw new Error("Either num_frames or fps must be provided.");const B=[],v=document.createElement("video");if(v.crossOrigin="anonymous",v.muted=!0,typeof E=="string")v.src=E;else if(E instanceof Blob)v.src=URL.createObjectURL(E);else if(E instanceof HTMLVideoElement)v.src=E.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(K=>v.onloadedmetadata=K),v.seekable.start(0)===v.seekable.end(0)){const f=await(await fetch(v.src)).blob();v.src=URL.createObjectURL(f),await new Promise(k=>v.onloadedmetadata=k)}const F=v.duration;let S,L;x!=null?(S=x,L=x===1?0:F/(x-1)):(L=1/D,S=Math.floor(F/L));let Z=[];for(let K=0;K{v.onseeked=d}),z.drawImage(v,0,0,N.width,N.height);const f=z.getImageData(0,0,N.width,N.height),k=new u.RawImage(f.data,N.width,N.height,4),e=new b(k,K);B.push(e)}return v.remove(),new C(B,F)}}},Rp={};function Wt(a){var o=Rp[a];if(o!==void 0)return o.exports;var n=Rp[a]={exports:{}};return S6[a](n,n.exports,Wt),n.exports}(()=>{var a=Object.getPrototypeOf?n=>Object.getPrototypeOf(n):n=>n.__proto__,o;Wt.t=function(n,u){if(u&1&&(n=this(n)),u&8||typeof n=="object"&&n&&(u&4&&n.__esModule||u&16&&typeof n.then=="function"))return n;var m=Object.create(null);Wt.r(m);var b={};o=o||[null,a({}),a([]),a(a)];for(var C=u&2&&n;typeof C=="object"&&!~o.indexOf(C);C=a(C))Object.getOwnPropertyNames(C).forEach(w=>b[w]=()=>n[w]);return b.default=()=>n,Wt.d(m,b),m}})();Wt.d=(a,o)=>{for(var n in o)Wt.o(o,n)&&!Wt.o(a,n)&&Object.defineProperty(a,n,{enumerable:!0,get:o[n]})};Wt.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o);Wt.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var Q={};(()=>{/*!*****************************!*\ + !*** ./src/transformers.js ***! + \*****************************/Wt.r(Q),Wt.d(Q,{ASTFeatureExtractor:()=>B.ASTFeatureExtractor,ASTForAudioClassification:()=>n.ASTForAudioClassification,ASTModel:()=>n.ASTModel,ASTPreTrainedModel:()=>n.ASTPreTrainedModel,AlbertForMaskedLM:()=>n.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>n.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>n.AlbertForSequenceClassification,AlbertModel:()=>n.AlbertModel,AlbertPreTrainedModel:()=>n.AlbertPreTrainedModel,AlbertTokenizer:()=>u.AlbertTokenizer,ArceeForCausalLM:()=>n.ArceeForCausalLM,ArceeModel:()=>n.ArceeModel,ArceePreTrainedModel:()=>n.ArceePreTrainedModel,AudioClassificationPipeline:()=>o.AudioClassificationPipeline,AutoConfig:()=>m.AutoConfig,AutoFeatureExtractor:()=>v.AutoFeatureExtractor,AutoImageProcessor:()=>L.AutoImageProcessor,AutoModel:()=>n.AutoModel,AutoModelForAudioClassification:()=>n.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>n.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>n.AutoModelForAudioTextToText,AutoModelForCTC:()=>n.AutoModelForCTC,AutoModelForCausalLM:()=>n.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>n.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>n.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>n.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>n.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>n.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>n.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>n.AutoModelForImageTextToText,AutoModelForImageToImage:()=>n.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>n.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>n.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>n.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>n.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>n.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>n.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>n.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>n.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>n.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>n.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>n.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>n.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>n.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>n.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>n.AutoModelForVision2Seq,AutoModelForXVector:()=>n.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>n.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>z.AutoProcessor,AutoTokenizer:()=>u.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>o.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>o.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>n.BartForConditionalGeneration,BartForSequenceClassification:()=>n.BartForSequenceClassification,BartModel:()=>n.BartModel,BartPretrainedModel:()=>n.BartPretrainedModel,BartTokenizer:()=>u.BartTokenizer,BaseModelOutput:()=>n.BaseModelOutput,BaseStreamer:()=>K.BaseStreamer,BeitFeatureExtractor:()=>S.BeitFeatureExtractor,BeitForImageClassification:()=>n.BeitForImageClassification,BeitModel:()=>n.BeitModel,BeitPreTrainedModel:()=>n.BeitPreTrainedModel,BertForMaskedLM:()=>n.BertForMaskedLM,BertForQuestionAnswering:()=>n.BertForQuestionAnswering,BertForSequenceClassification:()=>n.BertForSequenceClassification,BertForTokenClassification:()=>n.BertForTokenClassification,BertModel:()=>n.BertModel,BertPreTrainedModel:()=>n.BertPreTrainedModel,BertTokenizer:()=>u.BertTokenizer,BitImageProcessor:()=>S.BitImageProcessor,BlenderbotForConditionalGeneration:()=>n.BlenderbotForConditionalGeneration,BlenderbotModel:()=>n.BlenderbotModel,BlenderbotPreTrainedModel:()=>n.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>n.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>n.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>n.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>u.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>u.BlenderbotTokenizer,BloomForCausalLM:()=>n.BloomForCausalLM,BloomModel:()=>n.BloomModel,BloomPreTrainedModel:()=>n.BloomPreTrainedModel,BloomTokenizer:()=>u.BloomTokenizer,CLIPFeatureExtractor:()=>S.CLIPFeatureExtractor,CLIPImageProcessor:()=>S.CLIPImageProcessor,CLIPModel:()=>n.CLIPModel,CLIPPreTrainedModel:()=>n.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>n.CLIPSegForImageSegmentation,CLIPSegModel:()=>n.CLIPSegModel,CLIPSegPreTrainedModel:()=>n.CLIPSegPreTrainedModel,CLIPTextModel:()=>n.CLIPTextModel,CLIPTextModelWithProjection:()=>n.CLIPTextModelWithProjection,CLIPTokenizer:()=>u.CLIPTokenizer,CLIPVisionModel:()=>n.CLIPVisionModel,CLIPVisionModelWithProjection:()=>n.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>n.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>n.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>n.CamembertForSequenceClassification,CamembertForTokenClassification:()=>n.CamembertForTokenClassification,CamembertModel:()=>n.CamembertModel,CamembertPreTrainedModel:()=>n.CamembertPreTrainedModel,CamembertTokenizer:()=>u.CamembertTokenizer,CausalLMOutput:()=>n.CausalLMOutput,CausalLMOutputWithPast:()=>n.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>S.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>n.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>n.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>n.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>B.ClapFeatureExtractor,ClapModel:()=>n.ClapModel,ClapPreTrainedModel:()=>n.ClapPreTrainedModel,ClapTextModelWithProjection:()=>n.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>k.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>n.CodeGenForCausalLM,CodeGenModel:()=>n.CodeGenModel,CodeGenPreTrainedModel:()=>n.CodeGenPreTrainedModel,CodeGenTokenizer:()=>u.CodeGenTokenizer,CodeLlamaTokenizer:()=>u.CodeLlamaTokenizer,CohereForCausalLM:()=>n.CohereForCausalLM,CohereModel:()=>n.CohereModel,CoherePreTrainedModel:()=>n.CoherePreTrainedModel,CohereTokenizer:()=>u.CohereTokenizer,ConvBertForMaskedLM:()=>n.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>n.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>n.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>n.ConvBertForTokenClassification,ConvBertModel:()=>n.ConvBertModel,ConvBertPreTrainedModel:()=>n.ConvBertPreTrainedModel,ConvBertTokenizer:()=>u.ConvBertTokenizer,ConvNextFeatureExtractor:()=>S.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>n.ConvNextForImageClassification,ConvNextImageProcessor:()=>S.ConvNextImageProcessor,ConvNextModel:()=>n.ConvNextModel,ConvNextPreTrainedModel:()=>n.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>n.ConvNextV2ForImageClassification,ConvNextV2Model:()=>n.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>n.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>n.DFineForObjectDetection,DFineModel:()=>n.DFineModel,DFinePreTrainedModel:()=>n.DFinePreTrainedModel,DPTFeatureExtractor:()=>S.DPTFeatureExtractor,DPTForDepthEstimation:()=>n.DPTForDepthEstimation,DPTImageProcessor:()=>S.DPTImageProcessor,DPTModel:()=>n.DPTModel,DPTPreTrainedModel:()=>n.DPTPreTrainedModel,DacDecoderModel:()=>n.DacDecoderModel,DacDecoderOutput:()=>n.DacDecoderOutput,DacEncoderModel:()=>n.DacEncoderModel,DacEncoderOutput:()=>n.DacEncoderOutput,DacFeatureExtractor:()=>B.DacFeatureExtractor,DacModel:()=>n.DacModel,DacPreTrainedModel:()=>n.DacPreTrainedModel,DataTypeMap:()=>E.DataTypeMap,DebertaForMaskedLM:()=>n.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>n.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>n.DebertaForSequenceClassification,DebertaForTokenClassification:()=>n.DebertaForTokenClassification,DebertaModel:()=>n.DebertaModel,DebertaPreTrainedModel:()=>n.DebertaPreTrainedModel,DebertaTokenizer:()=>u.DebertaTokenizer,DebertaV2ForMaskedLM:()=>n.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>n.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>n.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>n.DebertaV2ForTokenClassification,DebertaV2Model:()=>n.DebertaV2Model,DebertaV2PreTrainedModel:()=>n.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>u.DebertaV2Tokenizer,DecisionTransformerModel:()=>n.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>n.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>S.DeiTFeatureExtractor,DeiTForImageClassification:()=>n.DeiTForImageClassification,DeiTImageProcessor:()=>S.DeiTImageProcessor,DeiTModel:()=>n.DeiTModel,DeiTPreTrainedModel:()=>n.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>n.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>n.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>o.DepthEstimationPipeline,DepthProForDepthEstimation:()=>n.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>n.DepthProPreTrainedModel,DetrFeatureExtractor:()=>S.DetrFeatureExtractor,DetrForObjectDetection:()=>n.DetrForObjectDetection,DetrForSegmentation:()=>n.DetrForSegmentation,DetrImageProcessor:()=>S.DetrImageProcessor,DetrModel:()=>n.DetrModel,DetrObjectDetectionOutput:()=>n.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>n.DetrPreTrainedModel,DetrSegmentationOutput:()=>n.DetrSegmentationOutput,Dinov2ForImageClassification:()=>n.Dinov2ForImageClassification,Dinov2Model:()=>n.Dinov2Model,Dinov2PreTrainedModel:()=>n.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>n.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>n.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>n.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>n.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>n.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>n.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>n.DistilBertForTokenClassification,DistilBertModel:()=>n.DistilBertModel,DistilBertPreTrainedModel:()=>n.DistilBertPreTrainedModel,DistilBertTokenizer:()=>u.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>o.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>S.DonutFeatureExtractor,DonutImageProcessor:()=>S.DonutImageProcessor,DonutSwinModel:()=>n.DonutSwinModel,DonutSwinPreTrainedModel:()=>n.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>n.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>S.EfficientNetImageProcessor,EfficientNetModel:()=>n.EfficientNetModel,EfficientNetPreTrainedModel:()=>n.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>n.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>n.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>n.ElectraForSequenceClassification,ElectraForTokenClassification:()=>n.ElectraForTokenClassification,ElectraModel:()=>n.ElectraModel,ElectraPreTrainedModel:()=>n.ElectraPreTrainedModel,ElectraTokenizer:()=>u.ElectraTokenizer,EncodecFeatureExtractor:()=>B.EncodecFeatureExtractor,EosTokenCriteria:()=>f.EosTokenCriteria,Ernie4_5_ForCausalLM:()=>n.Ernie4_5_ForCausalLM,Ernie4_5_Model:()=>n.Ernie4_5_Model,Ernie4_5_PretrainedModel:()=>n.Ernie4_5_PretrainedModel,Ernie4_5_Tokenizer:()=>u.Ernie4_5_Tokenizer,EsmForMaskedLM:()=>n.EsmForMaskedLM,EsmForSequenceClassification:()=>n.EsmForSequenceClassification,EsmForTokenClassification:()=>n.EsmForTokenClassification,EsmModel:()=>n.EsmModel,EsmPreTrainedModel:()=>n.EsmPreTrainedModel,EsmTokenizer:()=>u.EsmTokenizer,ExaoneForCausalLM:()=>n.ExaoneForCausalLM,ExaoneModel:()=>n.ExaoneModel,ExaonePreTrainedModel:()=>n.ExaonePreTrainedModel,FFT:()=>x.FFT,FalconForCausalLM:()=>n.FalconForCausalLM,FalconModel:()=>n.FalconModel,FalconPreTrainedModel:()=>n.FalconPreTrainedModel,FalconTokenizer:()=>u.FalconTokenizer,FastViTForImageClassification:()=>n.FastViTForImageClassification,FastViTModel:()=>n.FastViTModel,FastViTPreTrainedModel:()=>n.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>o.FeatureExtractionPipeline,FeatureExtractor:()=>D.FeatureExtractor,FillMaskPipeline:()=>o.FillMaskPipeline,Florence2ForConditionalGeneration:()=>n.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>n.Florence2PreTrainedModel,Florence2Processor:()=>N.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>k.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>k.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>S.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>n.GLPNForDepthEstimation,GLPNModel:()=>n.GLPNModel,GLPNPreTrainedModel:()=>n.GLPNPreTrainedModel,GPT2LMHeadModel:()=>n.GPT2LMHeadModel,GPT2Model:()=>n.GPT2Model,GPT2PreTrainedModel:()=>n.GPT2PreTrainedModel,GPT2Tokenizer:()=>u.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>n.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>n.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>n.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>n.GPTJForCausalLM,GPTJModel:()=>n.GPTJModel,GPTJPreTrainedModel:()=>n.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>n.GPTNeoForCausalLM,GPTNeoModel:()=>n.GPTNeoModel,GPTNeoPreTrainedModel:()=>n.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>n.GPTNeoXForCausalLM,GPTNeoXModel:()=>n.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>n.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>u.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>n.Gemma2ForCausalLM,Gemma2Model:()=>n.Gemma2Model,Gemma2PreTrainedModel:()=>n.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>n.Gemma3ForCausalLM,Gemma3Model:()=>n.Gemma3Model,Gemma3PreTrainedModel:()=>n.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>B.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>n.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>n.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>N.Gemma3nProcessor,GemmaForCausalLM:()=>n.GemmaForCausalLM,GemmaModel:()=>n.GemmaModel,GemmaPreTrainedModel:()=>n.GemmaPreTrainedModel,GemmaTokenizer:()=>u.GemmaTokenizer,GlmForCausalLM:()=>n.GlmForCausalLM,GlmModel:()=>n.GlmModel,GlmPreTrainedModel:()=>n.GlmPreTrainedModel,GraniteForCausalLM:()=>n.GraniteForCausalLM,GraniteModel:()=>n.GraniteModel,GranitePreTrainedModel:()=>n.GranitePreTrainedModel,Grok1Tokenizer:()=>u.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>n.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>S.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>n.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>N.GroundingDinoProcessor,GroupViTModel:()=>n.GroupViTModel,GroupViTPreTrainedModel:()=>n.GroupViTPreTrainedModel,HeliumForCausalLM:()=>n.HeliumForCausalLM,HeliumModel:()=>n.HeliumModel,HeliumPreTrainedModel:()=>n.HeliumPreTrainedModel,HerbertTokenizer:()=>u.HerbertTokenizer,HieraForImageClassification:()=>n.HieraForImageClassification,HieraModel:()=>n.HieraModel,HieraPreTrainedModel:()=>n.HieraPreTrainedModel,HubertForCTC:()=>n.HubertForCTC,HubertForSequenceClassification:()=>n.HubertForSequenceClassification,HubertModel:()=>n.HubertModel,HubertPreTrainedModel:()=>n.HubertPreTrainedModel,IJepaForImageClassification:()=>n.IJepaForImageClassification,IJepaModel:()=>n.IJepaModel,IJepaPreTrainedModel:()=>n.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>n.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>S.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>n.Idefics3PreTrainedModel,Idefics3Processor:()=>N.Idefics3Processor,ImageClassificationPipeline:()=>o.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>o.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>B.ImageFeatureExtractor,ImageMattingOutput:()=>n.ImageMattingOutput,ImageProcessor:()=>F.ImageProcessor,ImageSegmentationPipeline:()=>o.ImageSegmentationPipeline,ImageToImagePipeline:()=>o.ImageToImagePipeline,ImageToTextPipeline:()=>o.ImageToTextPipeline,InterruptableStoppingCriteria:()=>f.InterruptableStoppingCriteria,JAISLMHeadModel:()=>n.JAISLMHeadModel,JAISModel:()=>n.JAISModel,JAISPreTrainedModel:()=>n.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>S.JinaCLIPImageProcessor,JinaCLIPModel:()=>n.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>n.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>N.JinaCLIPProcessor,JinaCLIPTextModel:()=>n.JinaCLIPTextModel,JinaCLIPVisionModel:()=>n.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>n.Lfm2ForCausalLM,Lfm2Model:()=>n.Lfm2Model,Lfm2PreTrainedModel:()=>n.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>n.LiteWhisperForConditionalGeneration,LlamaForCausalLM:()=>n.LlamaForCausalLM,LlamaModel:()=>n.LlamaModel,LlamaPreTrainedModel:()=>n.LlamaPreTrainedModel,LlamaTokenizer:()=>u.LlamaTokenizer,LlavaForConditionalGeneration:()=>n.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>n.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>S.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>n.LlavaPreTrainedModel,LlavaProcessor:()=>N.LlavaProcessor,LlavaQwen2ForCausalLM:()=>n.LlavaQwen2ForCausalLM,LogitsProcessor:()=>k.LogitsProcessor,LogitsProcessorList:()=>k.LogitsProcessorList,LogitsWarper:()=>k.LogitsWarper,LongT5ForConditionalGeneration:()=>n.LongT5ForConditionalGeneration,LongT5Model:()=>n.LongT5Model,LongT5PreTrainedModel:()=>n.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>n.M2M100ForConditionalGeneration,M2M100Model:()=>n.M2M100Model,M2M100PreTrainedModel:()=>n.M2M100PreTrainedModel,M2M100Tokenizer:()=>u.M2M100Tokenizer,MBart50Tokenizer:()=>u.MBart50Tokenizer,MBartForCausalLM:()=>n.MBartForCausalLM,MBartForConditionalGeneration:()=>n.MBartForConditionalGeneration,MBartForSequenceClassification:()=>n.MBartForSequenceClassification,MBartModel:()=>n.MBartModel,MBartPreTrainedModel:()=>n.MBartPreTrainedModel,MBartTokenizer:()=>u.MBartTokenizer,MPNetForMaskedLM:()=>n.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>n.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>n.MPNetForSequenceClassification,MPNetForTokenClassification:()=>n.MPNetForTokenClassification,MPNetModel:()=>n.MPNetModel,MPNetPreTrainedModel:()=>n.MPNetPreTrainedModel,MPNetTokenizer:()=>u.MPNetTokenizer,MT5ForConditionalGeneration:()=>n.MT5ForConditionalGeneration,MT5Model:()=>n.MT5Model,MT5PreTrainedModel:()=>n.MT5PreTrainedModel,MarianMTModel:()=>n.MarianMTModel,MarianModel:()=>n.MarianModel,MarianPreTrainedModel:()=>n.MarianPreTrainedModel,MarianTokenizer:()=>u.MarianTokenizer,Mask2FormerImageProcessor:()=>S.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>S.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>n.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>S.MaskFormerImageProcessor,MaskFormerModel:()=>n.MaskFormerModel,MaskFormerPreTrainedModel:()=>n.MaskFormerPreTrainedModel,MaskedLMOutput:()=>n.MaskedLMOutput,MaxLengthCriteria:()=>f.MaxLengthCriteria,Metric3DForDepthEstimation:()=>n.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>n.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>n.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>n.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>n.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>n.MgpstrModelOutput,MgpstrPreTrainedModel:()=>n.MgpstrPreTrainedModel,MgpstrProcessor:()=>N.MgpstrProcessor,MgpstrTokenizer:()=>u.MgpstrTokenizer,MimiDecoderModel:()=>n.MimiDecoderModel,MimiDecoderOutput:()=>n.MimiDecoderOutput,MimiEncoderModel:()=>n.MimiEncoderModel,MimiEncoderOutput:()=>n.MimiEncoderOutput,MimiModel:()=>n.MimiModel,MimiPreTrainedModel:()=>n.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>k.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>k.MinNewTokensLengthLogitsProcessor,MistralForCausalLM:()=>n.MistralForCausalLM,MistralModel:()=>n.MistralModel,MistralPreTrainedModel:()=>n.MistralPreTrainedModel,MobileBertForMaskedLM:()=>n.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>n.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>n.MobileBertForSequenceClassification,MobileBertModel:()=>n.MobileBertModel,MobileBertPreTrainedModel:()=>n.MobileBertPreTrainedModel,MobileBertTokenizer:()=>u.MobileBertTokenizer,MobileLLMForCausalLM:()=>n.MobileLLMForCausalLM,MobileLLMModel:()=>n.MobileLLMModel,MobileLLMPreTrainedModel:()=>n.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>S.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>n.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>n.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>S.MobileNetV1ImageProcessor,MobileNetV1Model:()=>n.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>n.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>S.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>n.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>n.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>S.MobileNetV2ImageProcessor,MobileNetV2Model:()=>n.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>n.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>S.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>n.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>n.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>S.MobileNetV3ImageProcessor,MobileNetV3Model:()=>n.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>n.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>S.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>n.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>n.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>S.MobileNetV4ImageProcessor,MobileNetV4Model:()=>n.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>n.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>S.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>n.MobileViTForImageClassification,MobileViTImageProcessor:()=>S.MobileViTImageProcessor,MobileViTModel:()=>n.MobileViTModel,MobileViTPreTrainedModel:()=>n.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>n.MobileViTV2ForImageClassification,MobileViTV2Model:()=>n.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>n.MobileViTV2PreTrainedModel,ModelOutput:()=>n.ModelOutput,ModernBertDecoderForCausalLM:()=>n.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>n.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>n.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>n.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>n.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>n.ModernBertForTokenClassification,ModernBertModel:()=>n.ModernBertModel,ModernBertPreTrainedModel:()=>n.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>n.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>B.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>n.MoonshineForConditionalGeneration,MoonshineModel:()=>n.MoonshineModel,MoonshinePreTrainedModel:()=>n.MoonshinePreTrainedModel,MoonshineProcessor:()=>N.MoonshineProcessor,MptForCausalLM:()=>n.MptForCausalLM,MptModel:()=>n.MptModel,MptPreTrainedModel:()=>n.MptPreTrainedModel,MultiModalityCausalLM:()=>n.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>n.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>n.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>n.MusicgenForConditionalGeneration,MusicgenModel:()=>n.MusicgenModel,MusicgenPreTrainedModel:()=>n.MusicgenPreTrainedModel,NeoBertForMaskedLM:()=>n.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>n.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>n.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>n.NeoBertForTokenClassification,NeoBertModel:()=>n.NeoBertModel,NeoBertPreTrainedModel:()=>n.NeoBertPreTrainedModel,NllbTokenizer:()=>u.NllbTokenizer,NoBadWordsLogitsProcessor:()=>k.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>k.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>n.NomicBertModel,NomicBertPreTrainedModel:()=>n.NomicBertPreTrainedModel,NougatImageProcessor:()=>S.NougatImageProcessor,NougatTokenizer:()=>u.NougatTokenizer,OPTForCausalLM:()=>n.OPTForCausalLM,OPTModel:()=>n.OPTModel,OPTPreTrainedModel:()=>n.OPTPreTrainedModel,ObjectDetectionPipeline:()=>o.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>n.Olmo2ForCausalLM,Olmo2Model:()=>n.Olmo2Model,Olmo2PreTrainedModel:()=>n.Olmo2PreTrainedModel,OlmoForCausalLM:()=>n.OlmoForCausalLM,OlmoModel:()=>n.OlmoModel,OlmoPreTrainedModel:()=>n.OlmoPreTrainedModel,OpenELMForCausalLM:()=>n.OpenELMForCausalLM,OpenELMModel:()=>n.OpenELMModel,OpenELMPreTrainedModel:()=>n.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>S.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>n.OwlViTForObjectDetection,OwlViTImageProcessor:()=>S.OwlViTImageProcessor,OwlViTModel:()=>n.OwlViTModel,OwlViTPreTrainedModel:()=>n.OwlViTPreTrainedModel,OwlViTProcessor:()=>N.OwlViTProcessor,Owlv2ForObjectDetection:()=>n.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>S.Owlv2ImageProcessor,Owlv2Model:()=>n.Owlv2Model,Owlv2PreTrainedModel:()=>n.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>n.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>n.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>N.PaliGemmaProcessor,PatchTSMixerForPrediction:()=>n.PatchTSMixerForPrediction,PatchTSMixerModel:()=>n.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>n.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>n.PatchTSTForPrediction,PatchTSTModel:()=>n.PatchTSTModel,PatchTSTPreTrainedModel:()=>n.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>n.Phi3ForCausalLM,Phi3Model:()=>n.Phi3Model,Phi3PreTrainedModel:()=>n.Phi3PreTrainedModel,Phi3VForCausalLM:()=>n.Phi3VForCausalLM,Phi3VImageProcessor:()=>S.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>n.Phi3VPreTrainedModel,Phi3VProcessor:()=>N.Phi3VProcessor,PhiForCausalLM:()=>n.PhiForCausalLM,PhiModel:()=>n.PhiModel,PhiPreTrainedModel:()=>n.PhiPreTrainedModel,Pipeline:()=>o.Pipeline,PreTrainedModel:()=>n.PreTrainedModel,PreTrainedTokenizer:()=>u.PreTrainedTokenizer,PretrainedConfig:()=>m.PretrainedConfig,PretrainedMixin:()=>n.PretrainedMixin,Processor:()=>Z.Processor,PvtForImageClassification:()=>n.PvtForImageClassification,PvtImageProcessor:()=>S.PvtImageProcessor,PvtModel:()=>n.PvtModel,PvtPreTrainedModel:()=>n.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>B.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>n.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>n.PyAnnoteModel,PyAnnotePreTrainedModel:()=>n.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>N.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>n.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>o.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>n.Qwen2ForCausalLM,Qwen2Model:()=>n.Qwen2Model,Qwen2PreTrainedModel:()=>n.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>u.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>n.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>S.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>n.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>N.Qwen2VLProcessor,Qwen3ForCausalLM:()=>n.Qwen3ForCausalLM,Qwen3Model:()=>n.Qwen3Model,Qwen3PreTrainedModel:()=>n.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>n.RFDetrForObjectDetection,RFDetrModel:()=>n.RFDetrModel,RFDetrObjectDetectionOutput:()=>n.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>n.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>n.RTDetrForObjectDetection,RTDetrImageProcessor:()=>S.RTDetrImageProcessor,RTDetrModel:()=>n.RTDetrModel,RTDetrObjectDetectionOutput:()=>n.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>n.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>n.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>n.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>n.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>n.RTDetrV2PreTrainedModel,RawAudio:()=>b.RawAudio,RawImage:()=>C.RawImage,RawVideo:()=>w.RawVideo,RawVideoFrame:()=>w.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>k.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>n.ResNetForImageClassification,ResNetModel:()=>n.ResNetModel,ResNetPreTrainedModel:()=>n.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>n.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>n.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>n.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>n.RoFormerForTokenClassification,RoFormerModel:()=>n.RoFormerModel,RoFormerPreTrainedModel:()=>n.RoFormerPreTrainedModel,RoFormerTokenizer:()=>u.RoFormerTokenizer,RobertaForMaskedLM:()=>n.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>n.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>n.RobertaForSequenceClassification,RobertaForTokenClassification:()=>n.RobertaForTokenClassification,RobertaModel:()=>n.RobertaModel,RobertaPreTrainedModel:()=>n.RobertaPreTrainedModel,RobertaTokenizer:()=>u.RobertaTokenizer,SamImageProcessor:()=>S.SamImageProcessor,SamImageSegmentationOutput:()=>n.SamImageSegmentationOutput,SamModel:()=>n.SamModel,SamPreTrainedModel:()=>n.SamPreTrainedModel,SamProcessor:()=>N.SamProcessor,SapiensForDepthEstimation:()=>n.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>n.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>n.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>n.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>B.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>S.SegformerFeatureExtractor,SegformerForImageClassification:()=>n.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>n.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>S.SegformerImageProcessor,SegformerModel:()=>n.SegformerModel,SegformerPreTrainedModel:()=>n.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>n.Seq2SeqLMOutput,SequenceClassifierOutput:()=>n.SequenceClassifierOutput,SiglipImageProcessor:()=>S.SiglipImageProcessor,SiglipModel:()=>n.SiglipModel,SiglipPreTrainedModel:()=>n.SiglipPreTrainedModel,SiglipTextModel:()=>n.SiglipTextModel,SiglipTokenizer:()=>u.SiglipTokenizer,SiglipVisionModel:()=>n.SiglipVisionModel,SmolLM3ForCausalLM:()=>n.SmolLM3ForCausalLM,SmolLM3Model:()=>n.SmolLM3Model,SmolLM3PreTrainedModel:()=>n.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>n.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>S.SmolVLMImageProcessor,SmolVLMProcessor:()=>N.SmolVLMProcessor,SnacDecoderModel:()=>n.SnacDecoderModel,SnacEncoderModel:()=>n.SnacEncoderModel,SnacFeatureExtractor:()=>B.SnacFeatureExtractor,SnacModel:()=>n.SnacModel,SnacPreTrainedModel:()=>n.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>B.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>n.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>n.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>n.SpeechT5HifiGan,SpeechT5Model:()=>n.SpeechT5Model,SpeechT5PreTrainedModel:()=>n.SpeechT5PreTrainedModel,SpeechT5Processor:()=>N.SpeechT5Processor,SpeechT5Tokenizer:()=>u.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>n.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>n.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>n.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>n.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>n.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>u.SqueezeBertTokenizer,StableLmForCausalLM:()=>n.StableLmForCausalLM,StableLmModel:()=>n.StableLmModel,StableLmPreTrainedModel:()=>n.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>n.Starcoder2ForCausalLM,Starcoder2Model:()=>n.Starcoder2Model,Starcoder2PreTrainedModel:()=>n.Starcoder2PreTrainedModel,StoppingCriteria:()=>f.StoppingCriteria,StoppingCriteriaList:()=>f.StoppingCriteriaList,StyleTextToSpeech2Model:()=>n.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>n.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>o.SummarizationPipeline,SuppressTokensAtBeginLogitsProcessor:()=>k.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>n.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>S.Swin2SRImageProcessor,Swin2SRModel:()=>n.Swin2SRModel,Swin2SRPreTrainedModel:()=>n.Swin2SRPreTrainedModel,SwinForImageClassification:()=>n.SwinForImageClassification,SwinForSemanticSegmentation:()=>n.SwinForSemanticSegmentation,SwinModel:()=>n.SwinModel,SwinPreTrainedModel:()=>n.SwinPreTrainedModel,T5ForConditionalGeneration:()=>n.T5ForConditionalGeneration,T5Model:()=>n.T5Model,T5PreTrainedModel:()=>n.T5PreTrainedModel,T5Tokenizer:()=>u.T5Tokenizer,TableTransformerForObjectDetection:()=>n.TableTransformerForObjectDetection,TableTransformerModel:()=>n.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>n.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>n.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>k.TemperatureLogitsWarper,Tensor:()=>E.Tensor,Text2TextGenerationPipeline:()=>o.Text2TextGenerationPipeline,TextClassificationPipeline:()=>o.TextClassificationPipeline,TextGenerationPipeline:()=>o.TextGenerationPipeline,TextStreamer:()=>K.TextStreamer,TextToAudioPipeline:()=>o.TextToAudioPipeline,TokenClassificationPipeline:()=>o.TokenClassificationPipeline,TokenClassifierOutput:()=>n.TokenClassifierOutput,TokenizerModel:()=>u.TokenizerModel,TopKLogitsWarper:()=>k.TopKLogitsWarper,TopPLogitsWarper:()=>k.TopPLogitsWarper,TrOCRForCausalLM:()=>n.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>n.TrOCRPreTrainedModel,TranslationPipeline:()=>o.TranslationPipeline,UltravoxModel:()=>n.UltravoxModel,UltravoxPreTrainedModel:()=>n.UltravoxPreTrainedModel,UltravoxProcessor:()=>N.UltravoxProcessor,UniSpeechForCTC:()=>n.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>n.UniSpeechForSequenceClassification,UniSpeechModel:()=>n.UniSpeechModel,UniSpeechPreTrainedModel:()=>n.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>n.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>n.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>n.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>n.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>n.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>N.VLChatProcessor,VLMImageProcessor:()=>S.VLMImageProcessor,ViTFeatureExtractor:()=>S.ViTFeatureExtractor,ViTForImageClassification:()=>n.ViTForImageClassification,ViTImageProcessor:()=>S.ViTImageProcessor,ViTMAEModel:()=>n.ViTMAEModel,ViTMAEPreTrainedModel:()=>n.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>n.ViTMSNForImageClassification,ViTMSNModel:()=>n.ViTMSNModel,ViTMSNPreTrainedModel:()=>n.ViTMSNPreTrainedModel,ViTModel:()=>n.ViTModel,ViTPreTrainedModel:()=>n.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>n.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>n.VitMatteForImageMatting,VitMatteImageProcessor:()=>S.VitMatteImageProcessor,VitMattePreTrainedModel:()=>n.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>n.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>S.VitPoseImageProcessor,VitPosePreTrainedModel:()=>n.VitPosePreTrainedModel,VitsModel:()=>n.VitsModel,VitsModelOutput:()=>n.VitsModelOutput,VitsPreTrainedModel:()=>n.VitsPreTrainedModel,VitsTokenizer:()=>u.VitsTokenizer,VoxtralForConditionalGeneration:()=>n.VoxtralForConditionalGeneration,VoxtralProcessor:()=>N.VoxtralProcessor,Wav2Vec2BertForCTC:()=>n.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>n.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>n.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>n.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>u.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>B.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>n.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>n.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>n.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>n.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>n.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>N.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>N.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>n.WavLMForAudioFrameClassification,WavLMForCTC:()=>n.WavLMForCTC,WavLMForSequenceClassification:()=>n.WavLMForSequenceClassification,WavLMForXVector:()=>n.WavLMForXVector,WavLMModel:()=>n.WavLMModel,WavLMPreTrainedModel:()=>n.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>B.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>n.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>n.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>B.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>n.WhisperForConditionalGeneration,WhisperModel:()=>n.WhisperModel,WhisperPreTrainedModel:()=>n.WhisperPreTrainedModel,WhisperProcessor:()=>N.WhisperProcessor,WhisperTextStreamer:()=>K.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>k.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>u.WhisperTokenizer,XLMForQuestionAnswering:()=>n.XLMForQuestionAnswering,XLMForSequenceClassification:()=>n.XLMForSequenceClassification,XLMForTokenClassification:()=>n.XLMForTokenClassification,XLMModel:()=>n.XLMModel,XLMPreTrainedModel:()=>n.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>n.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>n.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>n.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>n.XLMRobertaForTokenClassification,XLMRobertaModel:()=>n.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>n.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>u.XLMRobertaTokenizer,XLMTokenizer:()=>u.XLMTokenizer,XLMWithLMHeadModel:()=>n.XLMWithLMHeadModel,XVectorOutput:()=>n.XVectorOutput,YolosFeatureExtractor:()=>S.YolosFeatureExtractor,YolosForObjectDetection:()=>n.YolosForObjectDetection,YolosImageProcessor:()=>S.YolosImageProcessor,YolosModel:()=>n.YolosModel,YolosObjectDetectionOutput:()=>n.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>n.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>o.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>o.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>o.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>o.ZeroShotObjectDetectionPipeline,bankers_round:()=>x.bankers_round,cat:()=>E.cat,cos_sim:()=>x.cos_sim,dot:()=>x.dot,dynamic_time_warping:()=>x.dynamic_time_warping,env:()=>a.env,full:()=>E.full,full_like:()=>E.full_like,getCacheShapes:()=>m.getCacheShapes,hamming:()=>b.hamming,hanning:()=>b.hanning,interpolate:()=>E.interpolate,interpolate_4d:()=>E.interpolate_4d,interpolate_data:()=>x.interpolate_data,is_chinese_char:()=>u.is_chinese_char,layer_norm:()=>E.layer_norm,load_image:()=>C.load_image,load_video:()=>w.load_video,log_softmax:()=>x.log_softmax,magnitude:()=>x.magnitude,matmul:()=>E.matmul,max:()=>x.max,mean:()=>E.mean,mean_pooling:()=>E.mean_pooling,medianFilter:()=>x.medianFilter,mel_filter_bank:()=>b.mel_filter_bank,min:()=>x.min,ones:()=>E.ones,ones_like:()=>E.ones_like,permute:()=>E.permute,permute_data:()=>x.permute_data,pipeline:()=>o.pipeline,quantize_embeddings:()=>E.quantize_embeddings,rand:()=>E.rand,read_audio:()=>b.read_audio,rfft:()=>E.rfft,round:()=>x.round,slice:()=>E.slice,softmax:()=>x.softmax,spectrogram:()=>b.spectrogram,stack:()=>E.stack,std_mean:()=>E.std_mean,topk:()=>E.topk,window_function:()=>b.window_function,zeros:()=>E.zeros,zeros_like:()=>E.zeros_like});var a=Wt("./src/env.js"),o=Wt("./src/pipelines.js"),n=Wt("./src/models.js"),u=Wt("./src/tokenizers.js"),m=Wt("./src/configs.js"),b=Wt("./src/utils/audio.js"),C=Wt("./src/utils/image.js"),w=Wt("./src/utils/video.js"),E=Wt("./src/utils/tensor.js"),x=Wt("./src/utils/maths.js"),D=Wt("./src/base/feature_extraction_utils.js"),B=Wt("./src/models/feature_extractors.js"),v=Wt("./src/models/auto/feature_extraction_auto.js"),F=Wt("./src/base/image_processors_utils.js"),S=Wt("./src/models/image_processors.js"),L=Wt("./src/models/auto/image_processing_auto.js"),Z=Wt("./src/base/processing_utils.js"),N=Wt("./src/models/processors.js"),z=Wt("./src/models/auto/processing_auto.js"),K=Wt("./src/generation/streamers.js"),f=Wt("./src/generation/stopping_criteria.js"),k=Wt("./src/generation/logits_process.js")})();Q.ASTFeatureExtractor;Q.ASTForAudioClassification;Q.ASTModel;Q.ASTPreTrainedModel;Q.AlbertForMaskedLM;Q.AlbertForQuestionAnswering;Q.AlbertForSequenceClassification;Q.AlbertModel;Q.AlbertPreTrainedModel;Q.AlbertTokenizer;Q.ArceeForCausalLM;Q.ArceeModel;Q.ArceePreTrainedModel;Q.AudioClassificationPipeline;Q.AutoConfig;Q.AutoFeatureExtractor;Q.AutoImageProcessor;Q.AutoModel;Q.AutoModelForAudioClassification;Q.AutoModelForAudioFrameClassification;Q.AutoModelForAudioTextToText;Q.AutoModelForCTC;Q.AutoModelForCausalLM;Q.AutoModelForDepthEstimation;Q.AutoModelForDocumentQuestionAnswering;Q.AutoModelForImageClassification;Q.AutoModelForImageFeatureExtraction;Q.AutoModelForImageMatting;Q.AutoModelForImageSegmentation;Q.AutoModelForImageTextToText;Q.AutoModelForImageToImage;Q.AutoModelForMaskGeneration;Q.AutoModelForMaskedLM;Q.AutoModelForNormalEstimation;Q.AutoModelForObjectDetection;Q.AutoModelForPoseEstimation;Q.AutoModelForQuestionAnswering;Q.AutoModelForSemanticSegmentation;Q.AutoModelForSeq2SeqLM;Q.AutoModelForSequenceClassification;Q.AutoModelForSpeechSeq2Seq;Q.AutoModelForTextToSpectrogram;Q.AutoModelForTextToWaveform;Q.AutoModelForTokenClassification;Q.AutoModelForUniversalSegmentation;Q.AutoModelForVision2Seq;Q.AutoModelForXVector;Q.AutoModelForZeroShotObjectDetection;Q.AutoProcessor;var O6=Q.AutoTokenizer;Q.AutomaticSpeechRecognitionPipeline;Q.BackgroundRemovalPipeline;Q.BartForConditionalGeneration;Q.BartForSequenceClassification;Q.BartModel;Q.BartPretrainedModel;Q.BartTokenizer;Q.BaseModelOutput;Q.BaseStreamer;Q.BeitFeatureExtractor;Q.BeitForImageClassification;Q.BeitModel;Q.BeitPreTrainedModel;Q.BertForMaskedLM;Q.BertForQuestionAnswering;Q.BertForSequenceClassification;Q.BertForTokenClassification;Q.BertModel;Q.BertPreTrainedModel;Q.BertTokenizer;Q.BitImageProcessor;Q.BlenderbotForConditionalGeneration;Q.BlenderbotModel;Q.BlenderbotPreTrainedModel;Q.BlenderbotSmallForConditionalGeneration;Q.BlenderbotSmallModel;Q.BlenderbotSmallPreTrainedModel;Q.BlenderbotSmallTokenizer;Q.BlenderbotTokenizer;Q.BloomForCausalLM;Q.BloomModel;Q.BloomPreTrainedModel;Q.BloomTokenizer;Q.CLIPFeatureExtractor;Q.CLIPImageProcessor;Q.CLIPModel;Q.CLIPPreTrainedModel;Q.CLIPSegForImageSegmentation;Q.CLIPSegModel;Q.CLIPSegPreTrainedModel;Q.CLIPTextModel;Q.CLIPTextModelWithProjection;Q.CLIPTokenizer;Q.CLIPVisionModel;Q.CLIPVisionModelWithProjection;Q.CamembertForMaskedLM;Q.CamembertForQuestionAnswering;Q.CamembertForSequenceClassification;Q.CamembertForTokenClassification;Q.CamembertModel;Q.CamembertPreTrainedModel;Q.CamembertTokenizer;Q.CausalLMOutput;Q.CausalLMOutputWithPast;Q.ChineseCLIPFeatureExtractor;Q.ChineseCLIPModel;Q.ChineseCLIPPreTrainedModel;Q.ClapAudioModelWithProjection;Q.ClapFeatureExtractor;Q.ClapModel;Q.ClapPreTrainedModel;Q.ClapTextModelWithProjection;Q.ClassifierFreeGuidanceLogitsProcessor;Q.CodeGenForCausalLM;Q.CodeGenModel;Q.CodeGenPreTrainedModel;Q.CodeGenTokenizer;Q.CodeLlamaTokenizer;Q.CohereForCausalLM;Q.CohereModel;Q.CoherePreTrainedModel;Q.CohereTokenizer;Q.ConvBertForMaskedLM;Q.ConvBertForQuestionAnswering;Q.ConvBertForSequenceClassification;Q.ConvBertForTokenClassification;Q.ConvBertModel;Q.ConvBertPreTrainedModel;Q.ConvBertTokenizer;Q.ConvNextFeatureExtractor;Q.ConvNextForImageClassification;Q.ConvNextImageProcessor;Q.ConvNextModel;Q.ConvNextPreTrainedModel;Q.ConvNextV2ForImageClassification;Q.ConvNextV2Model;Q.ConvNextV2PreTrainedModel;Q.DFineForObjectDetection;Q.DFineModel;Q.DFinePreTrainedModel;Q.DPTFeatureExtractor;Q.DPTForDepthEstimation;Q.DPTImageProcessor;Q.DPTModel;Q.DPTPreTrainedModel;Q.DacDecoderModel;Q.DacDecoderOutput;Q.DacEncoderModel;Q.DacEncoderOutput;Q.DacFeatureExtractor;Q.DacModel;Q.DacPreTrainedModel;Q.DataTypeMap;Q.DebertaForMaskedLM;Q.DebertaForQuestionAnswering;Q.DebertaForSequenceClassification;Q.DebertaForTokenClassification;Q.DebertaModel;Q.DebertaPreTrainedModel;Q.DebertaTokenizer;Q.DebertaV2ForMaskedLM;Q.DebertaV2ForQuestionAnswering;Q.DebertaV2ForSequenceClassification;Q.DebertaV2ForTokenClassification;Q.DebertaV2Model;Q.DebertaV2PreTrainedModel;Q.DebertaV2Tokenizer;Q.DecisionTransformerModel;Q.DecisionTransformerPreTrainedModel;Q.DeiTFeatureExtractor;Q.DeiTForImageClassification;Q.DeiTImageProcessor;Q.DeiTModel;Q.DeiTPreTrainedModel;Q.DepthAnythingForDepthEstimation;Q.DepthAnythingPreTrainedModel;Q.DepthEstimationPipeline;Q.DepthProForDepthEstimation;Q.DepthProPreTrainedModel;Q.DetrFeatureExtractor;Q.DetrForObjectDetection;Q.DetrForSegmentation;Q.DetrImageProcessor;Q.DetrModel;Q.DetrObjectDetectionOutput;Q.DetrPreTrainedModel;Q.DetrSegmentationOutput;Q.Dinov2ForImageClassification;Q.Dinov2Model;Q.Dinov2PreTrainedModel;Q.Dinov2WithRegistersForImageClassification;Q.Dinov2WithRegistersModel;Q.Dinov2WithRegistersPreTrainedModel;Q.DistilBertForMaskedLM;Q.DistilBertForQuestionAnswering;Q.DistilBertForSequenceClassification;Q.DistilBertForTokenClassification;Q.DistilBertModel;Q.DistilBertPreTrainedModel;Q.DistilBertTokenizer;Q.DocumentQuestionAnsweringPipeline;Q.DonutFeatureExtractor;Q.DonutImageProcessor;Q.DonutSwinModel;Q.DonutSwinPreTrainedModel;Q.EfficientNetForImageClassification;Q.EfficientNetImageProcessor;Q.EfficientNetModel;Q.EfficientNetPreTrainedModel;Q.ElectraForMaskedLM;Q.ElectraForQuestionAnswering;Q.ElectraForSequenceClassification;Q.ElectraForTokenClassification;Q.ElectraModel;Q.ElectraPreTrainedModel;Q.ElectraTokenizer;Q.EncodecFeatureExtractor;Q.EosTokenCriteria;Q.Ernie4_5_ForCausalLM;Q.Ernie4_5_Model;Q.Ernie4_5_PretrainedModel;Q.Ernie4_5_Tokenizer;Q.EsmForMaskedLM;Q.EsmForSequenceClassification;Q.EsmForTokenClassification;Q.EsmModel;Q.EsmPreTrainedModel;Q.EsmTokenizer;Q.ExaoneForCausalLM;Q.ExaoneModel;Q.ExaonePreTrainedModel;Q.FFT;Q.FalconForCausalLM;Q.FalconModel;Q.FalconPreTrainedModel;Q.FalconTokenizer;Q.FastViTForImageClassification;Q.FastViTModel;Q.FastViTPreTrainedModel;Q.FeatureExtractionPipeline;Q.FeatureExtractor;Q.FillMaskPipeline;Q.Florence2ForConditionalGeneration;Q.Florence2PreTrainedModel;Q.Florence2Processor;Q.ForcedBOSTokenLogitsProcessor;Q.ForcedEOSTokenLogitsProcessor;Q.GLPNFeatureExtractor;Q.GLPNForDepthEstimation;Q.GLPNModel;Q.GLPNPreTrainedModel;Q.GPT2LMHeadModel;Q.GPT2Model;Q.GPT2PreTrainedModel;Q.GPT2Tokenizer;Q.GPTBigCodeForCausalLM;Q.GPTBigCodeModel;Q.GPTBigCodePreTrainedModel;Q.GPTJForCausalLM;Q.GPTJModel;Q.GPTJPreTrainedModel;Q.GPTNeoForCausalLM;Q.GPTNeoModel;Q.GPTNeoPreTrainedModel;Q.GPTNeoXForCausalLM;Q.GPTNeoXModel;Q.GPTNeoXPreTrainedModel;Q.GPTNeoXTokenizer;Q.Gemma2ForCausalLM;Q.Gemma2Model;Q.Gemma2PreTrainedModel;Q.Gemma3ForCausalLM;Q.Gemma3Model;Q.Gemma3PreTrainedModel;Q.Gemma3nAudioFeatureExtractor;Q.Gemma3nForConditionalGeneration;Q.Gemma3nPreTrainedModel;Q.Gemma3nProcessor;Q.GemmaForCausalLM;Q.GemmaModel;Q.GemmaPreTrainedModel;Q.GemmaTokenizer;Q.GlmForCausalLM;Q.GlmModel;Q.GlmPreTrainedModel;Q.GraniteForCausalLM;Q.GraniteModel;Q.GranitePreTrainedModel;Q.Grok1Tokenizer;Q.GroundingDinoForObjectDetection;Q.GroundingDinoImageProcessor;Q.GroundingDinoPreTrainedModel;Q.GroundingDinoProcessor;Q.GroupViTModel;Q.GroupViTPreTrainedModel;Q.HeliumForCausalLM;Q.HeliumModel;Q.HeliumPreTrainedModel;Q.HerbertTokenizer;Q.HieraForImageClassification;Q.HieraModel;Q.HieraPreTrainedModel;Q.HubertForCTC;Q.HubertForSequenceClassification;Q.HubertModel;Q.HubertPreTrainedModel;Q.IJepaForImageClassification;Q.IJepaModel;Q.IJepaPreTrainedModel;Q.Idefics3ForConditionalGeneration;Q.Idefics3ImageProcessor;Q.Idefics3PreTrainedModel;Q.Idefics3Processor;Q.ImageClassificationPipeline;Q.ImageFeatureExtractionPipeline;Q.ImageFeatureExtractor;Q.ImageMattingOutput;Q.ImageProcessor;Q.ImageSegmentationPipeline;Q.ImageToImagePipeline;Q.ImageToTextPipeline;Q.InterruptableStoppingCriteria;Q.JAISLMHeadModel;Q.JAISModel;Q.JAISPreTrainedModel;Q.JinaCLIPImageProcessor;Q.JinaCLIPModel;Q.JinaCLIPPreTrainedModel;Q.JinaCLIPProcessor;Q.JinaCLIPTextModel;Q.JinaCLIPVisionModel;Q.Lfm2ForCausalLM;Q.Lfm2Model;Q.Lfm2PreTrainedModel;Q.LiteWhisperForConditionalGeneration;Q.LlamaForCausalLM;Q.LlamaModel;Q.LlamaPreTrainedModel;Q.LlamaTokenizer;Q.LlavaForConditionalGeneration;Q.LlavaOnevisionForConditionalGeneration;Q.LlavaOnevisionImageProcessor;Q.LlavaPreTrainedModel;Q.LlavaProcessor;Q.LlavaQwen2ForCausalLM;Q.LogitsProcessor;Q.LogitsProcessorList;Q.LogitsWarper;Q.LongT5ForConditionalGeneration;Q.LongT5Model;Q.LongT5PreTrainedModel;Q.M2M100ForConditionalGeneration;Q.M2M100Model;Q.M2M100PreTrainedModel;Q.M2M100Tokenizer;Q.MBart50Tokenizer;Q.MBartForCausalLM;Q.MBartForConditionalGeneration;Q.MBartForSequenceClassification;Q.MBartModel;Q.MBartPreTrainedModel;Q.MBartTokenizer;Q.MPNetForMaskedLM;Q.MPNetForQuestionAnswering;Q.MPNetForSequenceClassification;Q.MPNetForTokenClassification;Q.MPNetModel;Q.MPNetPreTrainedModel;Q.MPNetTokenizer;Q.MT5ForConditionalGeneration;Q.MT5Model;Q.MT5PreTrainedModel;Q.MarianMTModel;Q.MarianModel;Q.MarianPreTrainedModel;Q.MarianTokenizer;Q.Mask2FormerImageProcessor;Q.MaskFormerFeatureExtractor;Q.MaskFormerForInstanceSegmentation;Q.MaskFormerImageProcessor;Q.MaskFormerModel;Q.MaskFormerPreTrainedModel;Q.MaskedLMOutput;Q.MaxLengthCriteria;Q.Metric3DForDepthEstimation;Q.Metric3DPreTrainedModel;Q.Metric3Dv2ForDepthEstimation;Q.Metric3Dv2PreTrainedModel;Q.MgpstrForSceneTextRecognition;Q.MgpstrModelOutput;Q.MgpstrPreTrainedModel;Q.MgpstrProcessor;Q.MgpstrTokenizer;Q.MimiDecoderModel;Q.MimiDecoderOutput;Q.MimiEncoderModel;Q.MimiEncoderOutput;Q.MimiModel;Q.MimiPreTrainedModel;Q.MinLengthLogitsProcessor;Q.MinNewTokensLengthLogitsProcessor;Q.MistralForCausalLM;Q.MistralModel;Q.MistralPreTrainedModel;Q.MobileBertForMaskedLM;Q.MobileBertForQuestionAnswering;Q.MobileBertForSequenceClassification;Q.MobileBertModel;Q.MobileBertPreTrainedModel;Q.MobileBertTokenizer;Q.MobileLLMForCausalLM;Q.MobileLLMModel;Q.MobileLLMPreTrainedModel;Q.MobileNetV1FeatureExtractor;Q.MobileNetV1ForImageClassification;Q.MobileNetV1ForSemanticSegmentation;Q.MobileNetV1ImageProcessor;Q.MobileNetV1Model;Q.MobileNetV1PreTrainedModel;Q.MobileNetV2FeatureExtractor;Q.MobileNetV2ForImageClassification;Q.MobileNetV2ForSemanticSegmentation;Q.MobileNetV2ImageProcessor;Q.MobileNetV2Model;Q.MobileNetV2PreTrainedModel;Q.MobileNetV3FeatureExtractor;Q.MobileNetV3ForImageClassification;Q.MobileNetV3ForSemanticSegmentation;Q.MobileNetV3ImageProcessor;Q.MobileNetV3Model;Q.MobileNetV3PreTrainedModel;Q.MobileNetV4FeatureExtractor;Q.MobileNetV4ForImageClassification;Q.MobileNetV4ForSemanticSegmentation;Q.MobileNetV4ImageProcessor;Q.MobileNetV4Model;Q.MobileNetV4PreTrainedModel;Q.MobileViTFeatureExtractor;Q.MobileViTForImageClassification;Q.MobileViTImageProcessor;Q.MobileViTModel;Q.MobileViTPreTrainedModel;Q.MobileViTV2ForImageClassification;Q.MobileViTV2Model;Q.MobileViTV2PreTrainedModel;Q.ModelOutput;Q.ModernBertDecoderForCausalLM;Q.ModernBertDecoderModel;Q.ModernBertDecoderPreTrainedModel;Q.ModernBertForMaskedLM;Q.ModernBertForSequenceClassification;Q.ModernBertForTokenClassification;Q.ModernBertModel;Q.ModernBertPreTrainedModel;Q.Moondream1ForConditionalGeneration;Q.MoonshineFeatureExtractor;Q.MoonshineForConditionalGeneration;Q.MoonshineModel;Q.MoonshinePreTrainedModel;Q.MoonshineProcessor;Q.MptForCausalLM;Q.MptModel;Q.MptPreTrainedModel;Q.MultiModalityCausalLM;Q.MultiModalityPreTrainedModel;Q.MusicgenForCausalLM;Q.MusicgenForConditionalGeneration;Q.MusicgenModel;Q.MusicgenPreTrainedModel;Q.NeoBertForMaskedLM;Q.NeoBertForQuestionAnswering;Q.NeoBertForSequenceClassification;Q.NeoBertForTokenClassification;Q.NeoBertModel;Q.NeoBertPreTrainedModel;Q.NllbTokenizer;Q.NoBadWordsLogitsProcessor;Q.NoRepeatNGramLogitsProcessor;Q.NomicBertModel;Q.NomicBertPreTrainedModel;Q.NougatImageProcessor;Q.NougatTokenizer;Q.OPTForCausalLM;Q.OPTModel;Q.OPTPreTrainedModel;Q.ObjectDetectionPipeline;Q.Olmo2ForCausalLM;Q.Olmo2Model;Q.Olmo2PreTrainedModel;Q.OlmoForCausalLM;Q.OlmoModel;Q.OlmoPreTrainedModel;Q.OpenELMForCausalLM;Q.OpenELMModel;Q.OpenELMPreTrainedModel;Q.OwlViTFeatureExtractor;Q.OwlViTForObjectDetection;Q.OwlViTImageProcessor;Q.OwlViTModel;Q.OwlViTPreTrainedModel;Q.OwlViTProcessor;Q.Owlv2ForObjectDetection;Q.Owlv2ImageProcessor;Q.Owlv2Model;Q.Owlv2PreTrainedModel;Q.PaliGemmaForConditionalGeneration;Q.PaliGemmaPreTrainedModel;Q.PaliGemmaProcessor;Q.PatchTSMixerForPrediction;Q.PatchTSMixerModel;Q.PatchTSMixerPreTrainedModel;Q.PatchTSTForPrediction;Q.PatchTSTModel;Q.PatchTSTPreTrainedModel;Q.Phi3ForCausalLM;Q.Phi3Model;Q.Phi3PreTrainedModel;Q.Phi3VForCausalLM;Q.Phi3VImageProcessor;Q.Phi3VPreTrainedModel;Q.Phi3VProcessor;Q.PhiForCausalLM;Q.PhiModel;Q.PhiPreTrainedModel;Q.Pipeline;Q.PreTrainedModel;Q.PreTrainedTokenizer;Q.PretrainedConfig;Q.PretrainedMixin;Q.Processor;Q.PvtForImageClassification;Q.PvtImageProcessor;Q.PvtModel;Q.PvtPreTrainedModel;Q.PyAnnoteFeatureExtractor;Q.PyAnnoteForAudioFrameClassification;Q.PyAnnoteModel;Q.PyAnnotePreTrainedModel;Q.PyAnnoteProcessor;Q.QuestionAnsweringModelOutput;Q.QuestionAnsweringPipeline;Q.Qwen2ForCausalLM;Q.Qwen2Model;Q.Qwen2PreTrainedModel;Q.Qwen2Tokenizer;Q.Qwen2VLForConditionalGeneration;Q.Qwen2VLImageProcessor;Q.Qwen2VLPreTrainedModel;Q.Qwen2VLProcessor;Q.Qwen3ForCausalLM;Q.Qwen3Model;Q.Qwen3PreTrainedModel;Q.RFDetrForObjectDetection;Q.RFDetrModel;Q.RFDetrObjectDetectionOutput;Q.RFDetrPreTrainedModel;Q.RTDetrForObjectDetection;Q.RTDetrImageProcessor;Q.RTDetrModel;Q.RTDetrObjectDetectionOutput;Q.RTDetrPreTrainedModel;Q.RTDetrV2ForObjectDetection;Q.RTDetrV2Model;Q.RTDetrV2ObjectDetectionOutput;Q.RTDetrV2PreTrainedModel;var _6=Q.RawAudio;Q.RawImage;Q.RawVideo;Q.RawVideoFrame;Q.RepetitionPenaltyLogitsProcessor;Q.ResNetForImageClassification;Q.ResNetModel;Q.ResNetPreTrainedModel;Q.RoFormerForMaskedLM;Q.RoFormerForQuestionAnswering;Q.RoFormerForSequenceClassification;Q.RoFormerForTokenClassification;Q.RoFormerModel;Q.RoFormerPreTrainedModel;Q.RoFormerTokenizer;Q.RobertaForMaskedLM;Q.RobertaForQuestionAnswering;Q.RobertaForSequenceClassification;Q.RobertaForTokenClassification;Q.RobertaModel;Q.RobertaPreTrainedModel;Q.RobertaTokenizer;Q.SamImageProcessor;Q.SamImageSegmentationOutput;Q.SamModel;Q.SamPreTrainedModel;Q.SamProcessor;Q.SapiensForDepthEstimation;Q.SapiensForNormalEstimation;Q.SapiensForSemanticSegmentation;Q.SapiensPreTrainedModel;Q.SeamlessM4TFeatureExtractor;Q.SegformerFeatureExtractor;Q.SegformerForImageClassification;Q.SegformerForSemanticSegmentation;Q.SegformerImageProcessor;Q.SegformerModel;Q.SegformerPreTrainedModel;Q.Seq2SeqLMOutput;Q.SequenceClassifierOutput;Q.SiglipImageProcessor;Q.SiglipModel;Q.SiglipPreTrainedModel;Q.SiglipTextModel;Q.SiglipTokenizer;Q.SiglipVisionModel;Q.SmolLM3ForCausalLM;Q.SmolLM3Model;Q.SmolLM3PreTrainedModel;Q.SmolVLMForConditionalGeneration;Q.SmolVLMImageProcessor;Q.SmolVLMProcessor;Q.SnacDecoderModel;Q.SnacEncoderModel;Q.SnacFeatureExtractor;Q.SnacModel;Q.SnacPreTrainedModel;Q.SpeechT5FeatureExtractor;Q.SpeechT5ForSpeechToText;Q.SpeechT5ForTextToSpeech;Q.SpeechT5HifiGan;Q.SpeechT5Model;Q.SpeechT5PreTrainedModel;Q.SpeechT5Processor;Q.SpeechT5Tokenizer;Q.SqueezeBertForMaskedLM;Q.SqueezeBertForQuestionAnswering;Q.SqueezeBertForSequenceClassification;Q.SqueezeBertModel;Q.SqueezeBertPreTrainedModel;Q.SqueezeBertTokenizer;Q.StableLmForCausalLM;Q.StableLmModel;Q.StableLmPreTrainedModel;Q.Starcoder2ForCausalLM;Q.Starcoder2Model;Q.Starcoder2PreTrainedModel;Q.StoppingCriteria;Q.StoppingCriteriaList;var z6=Q.StyleTextToSpeech2Model;Q.StyleTextToSpeech2PreTrainedModel;Q.SummarizationPipeline;Q.SuppressTokensAtBeginLogitsProcessor;Q.Swin2SRForImageSuperResolution;Q.Swin2SRImageProcessor;Q.Swin2SRModel;Q.Swin2SRPreTrainedModel;Q.SwinForImageClassification;Q.SwinForSemanticSegmentation;Q.SwinModel;Q.SwinPreTrainedModel;Q.T5ForConditionalGeneration;Q.T5Model;Q.T5PreTrainedModel;Q.T5Tokenizer;Q.TableTransformerForObjectDetection;Q.TableTransformerModel;Q.TableTransformerObjectDetectionOutput;Q.TableTransformerPreTrainedModel;Q.TemperatureLogitsWarper;var jp=Q.Tensor;Q.Text2TextGenerationPipeline;Q.TextClassificationPipeline;Q.TextGenerationPipeline;Q.TextStreamer;Q.TextToAudioPipeline;Q.TokenClassificationPipeline;Q.TokenClassifierOutput;Q.TokenizerModel;Q.TopKLogitsWarper;Q.TopPLogitsWarper;Q.TrOCRForCausalLM;Q.TrOCRPreTrainedModel;Q.TranslationPipeline;Q.UltravoxModel;Q.UltravoxPreTrainedModel;Q.UltravoxProcessor;Q.UniSpeechForCTC;Q.UniSpeechForSequenceClassification;Q.UniSpeechModel;Q.UniSpeechPreTrainedModel;Q.UniSpeechSatForAudioFrameClassification;Q.UniSpeechSatForCTC;Q.UniSpeechSatForSequenceClassification;Q.UniSpeechSatModel;Q.UniSpeechSatPreTrainedModel;Q.VLChatProcessor;Q.VLMImageProcessor;Q.ViTFeatureExtractor;Q.ViTForImageClassification;Q.ViTImageProcessor;Q.ViTMAEModel;Q.ViTMAEPreTrainedModel;Q.ViTMSNForImageClassification;Q.ViTMSNModel;Q.ViTMSNPreTrainedModel;Q.ViTModel;Q.ViTPreTrainedModel;Q.VisionEncoderDecoderModel;Q.VitMatteForImageMatting;Q.VitMatteImageProcessor;Q.VitMattePreTrainedModel;Q.VitPoseForPoseEstimation;Q.VitPoseImageProcessor;Q.VitPosePreTrainedModel;Q.VitsModel;Q.VitsModelOutput;Q.VitsPreTrainedModel;Q.VitsTokenizer;Q.VoxtralForConditionalGeneration;Q.VoxtralProcessor;Q.Wav2Vec2BertForCTC;Q.Wav2Vec2BertForSequenceClassification;Q.Wav2Vec2BertModel;Q.Wav2Vec2BertPreTrainedModel;Q.Wav2Vec2CTCTokenizer;Q.Wav2Vec2FeatureExtractor;Q.Wav2Vec2ForAudioFrameClassification;Q.Wav2Vec2ForCTC;Q.Wav2Vec2ForSequenceClassification;Q.Wav2Vec2Model;Q.Wav2Vec2PreTrainedModel;Q.Wav2Vec2Processor;Q.Wav2Vec2ProcessorWithLM;Q.WavLMForAudioFrameClassification;Q.WavLMForCTC;Q.WavLMForSequenceClassification;Q.WavLMForXVector;Q.WavLMModel;Q.WavLMPreTrainedModel;Q.WeSpeakerFeatureExtractor;Q.WeSpeakerResNetModel;Q.WeSpeakerResNetPreTrainedModel;Q.WhisperFeatureExtractor;Q.WhisperForConditionalGeneration;Q.WhisperModel;Q.WhisperPreTrainedModel;Q.WhisperProcessor;Q.WhisperTextStreamer;Q.WhisperTimeStampLogitsProcessor;Q.WhisperTokenizer;Q.XLMForQuestionAnswering;Q.XLMForSequenceClassification;Q.XLMForTokenClassification;Q.XLMModel;Q.XLMPreTrainedModel;Q.XLMRobertaForMaskedLM;Q.XLMRobertaForQuestionAnswering;Q.XLMRobertaForSequenceClassification;Q.XLMRobertaForTokenClassification;Q.XLMRobertaModel;Q.XLMRobertaPreTrainedModel;Q.XLMRobertaTokenizer;Q.XLMTokenizer;Q.XLMWithLMHeadModel;Q.XVectorOutput;Q.YolosFeatureExtractor;Q.YolosForObjectDetection;Q.YolosImageProcessor;Q.YolosModel;Q.YolosObjectDetectionOutput;Q.YolosPreTrainedModel;Q.ZeroShotAudioClassificationPipeline;Q.ZeroShotClassificationPipeline;Q.ZeroShotImageClassificationPipeline;Q.ZeroShotObjectDetectionPipeline;Q.bankers_round;Q.cat;Q.cos_sim;Q.dot;Q.dynamic_time_warping;Q.env;Q.full;Q.full_like;Q.getCacheShapes;Q.hamming;Q.hanning;Q.interpolate;Q.interpolate_4d;Q.interpolate_data;Q.is_chinese_char;Q.layer_norm;Q.load_image;Q.load_video;Q.log_softmax;Q.magnitude;Q.matmul;Q.max;Q.mean;Q.mean_pooling;Q.medianFilter;Q.mel_filter_bank;Q.min;Q.ones;Q.ones_like;Q.permute;Q.permute_data;Q.pipeline;Q.quantize_embeddings;Q.rand;Q.read_audio;Q.rfft;Q.round;Q.slice;Q.softmax;Q.spectrogram;Q.stack;Q.std_mean;Q.topk;Q.window_function;Q.zeros;Q.zeros_like;var ae=ae!==void 0?ae:{};ae.expectedDataFileDownloads||(ae.expectedDataFileDownloads=0);var N6=typeof importScripts=="function",S2=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Wp=typeof atob=="function"?atob:function(a){var o,n,u,m,b,C,w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",E="",x=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");do o=w.indexOf(a.charAt(x++))<<2|(m=w.indexOf(a.charAt(x++)))>>4,n=(15&m)<<4|(b=w.indexOf(a.charAt(x++)))>>2,u=(3&b)<<6|(C=w.indexOf(a.charAt(x++))),E+=String.fromCharCode(o),b!==64&&(E+=String.fromCharCode(n)),C!==64&&(E+=String.fromCharCode(u));while(x1&&(_c=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(a){if(!(a instanceof L6))throw a}),process.on("unhandledRejection",function(a){throw a}),ae.inspect=function(){return"[Emscripten Module object]"}),ae.expectedDataFileDownloads++,function(){if(ae.ENVIRONMENT_IS_PTHREAD)return;const a="/usr/share/espeak-ng-data",o=a+"/lang",n=a+"/voices";(function(u){var m=null,b=null;function C(){function w(v,F){if(!v)throw F+new Error().stack}function E(v,F,S){this.start=v,this.end=F,this.audio=S}ae.FS_createPath("/","usr",!0,!0),ae.FS_createPath("/usr","share",!0,!0),ae.FS_createPath("/usr/share","espeak-ng-data",!0,!0),ae.FS_createPath(a,"lang",!0,!0),ae.FS_createPath(o,"aav",!0,!0),ae.FS_createPath(o,"art",!0,!0),ae.FS_createPath(o,"azc",!0,!0),ae.FS_createPath(o,"bat",!0,!0),ae.FS_createPath(o,"bnt",!0,!0),ae.FS_createPath(o,"ccs",!0,!0),ae.FS_createPath(o,"cel",!0,!0),ae.FS_createPath(o,"cus",!0,!0),ae.FS_createPath(o,"dra",!0,!0),ae.FS_createPath(o,"esx",!0,!0),ae.FS_createPath(o,"gmq",!0,!0),ae.FS_createPath(o,"gmw",!0,!0),ae.FS_createPath(o,"grk",!0,!0),ae.FS_createPath(o,"inc",!0,!0),ae.FS_createPath(o,"ine",!0,!0),ae.FS_createPath(o,"ira",!0,!0),ae.FS_createPath(o,"iro",!0,!0),ae.FS_createPath(o,"itc",!0,!0),ae.FS_createPath(o,"jpx",!0,!0),ae.FS_createPath(o,"map",!0,!0),ae.FS_createPath(o,"miz",!0,!0),ae.FS_createPath(o,"myn",!0,!0),ae.FS_createPath(o,"poz",!0,!0),ae.FS_createPath(o,"roa",!0,!0),ae.FS_createPath(o,"sai",!0,!0),ae.FS_createPath(o,"sem",!0,!0),ae.FS_createPath(o,"sit",!0,!0),ae.FS_createPath(o,"tai",!0,!0),ae.FS_createPath(o,"trk",!0,!0),ae.FS_createPath(o,"urj",!0,!0),ae.FS_createPath(o,"zle",!0,!0),ae.FS_createPath(o,"zls",!0,!0),ae.FS_createPath(o,"zlw",!0,!0),ae.FS_createPath(a,"voices",!0,!0),ae.FS_createPath(n,"!v",!0,!0),ae.FS_createPath(n,"mb",!0,!0),E.prototype={requests:{},open:function(v,F){this.name=F,this.requests[F]=this,ae.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var v=this.byteArray.subarray(this.start,this.end);this.finish(v)},finish:function(v){ae.FS_createDataFile(this.name,null,v,!0,!0,!0),ae.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var x=u.files,D=0;D{const w=function(B){if(typeof S2=="boolean"&&S2){var v=Buffer.from(B,"base64");return new Uint8Array(v.buffer,v.byteOffset,v.byteLength)}try{for(var F=Wp(B),S=new Uint8Array(F.length),L=0;L=0;--b)m[48+b]=52+b,m[65+b]=b,m[97+b]=26+b;function C(N,z,K){for(var f,k,e=0,d=z,y=K.length,te=z+(3*y>>2)-(K[y-2]=="=")-(K[y-1]=="=");e>4,d>2),d>2]!=e[A+4>>2]){if(ts(e[e[32972]+60>>2]),H=e[47192],cs=t+12|0,kn=t+8|0,V=p=V-6832|0,e[p+6816>>2]=0,e[p+6808>>2]=32,e[p+6800>>2]=0,H){e[47351]=0,e[47350]=0,e[47352]=0,f[189076]=0,A=e[33284],e[47353]=(0|A)>0?A:0,e[47355]=e[47354]+1,Je(cA=p+5184|0,0,1600),Wr=p+6800|0,V=c=V-2608|0,e[c+2156>>2]=32,e[c+2148>>2]=0,d[134760]&&(f[190280]=0,f[134760]=0),e[H+8216>>2]=0,e[H+8220>>2]=0,e[H+288>>2]=0,e[p+780>>2]=0,f[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|ZA[e[A+8>>2]](A)}e[c+2152>>2]=r}Yn=cA+2|0,Fe=32;e:{for(;;){Te=Fe;A:{r:{a:{if(r=e[33691],(i=e[33285])?A=0:(i=e[33285],A=e[33283],A=e[A>>2]==e[A+4>>2]),r|!A|i||!(e[32524]<0)){if(!xA(e[c+2156>>2])){if((i=(0|(A=e[49828]))>0)&(0|(r=A))<(0|(A=e[33284])))break a;if(!((0|(r=e[49845]))<=0|(0|A)<(0|r))){e[49845]=0,f[134760]=1,e[33285]=e[c+2152>>2],s=16384;break e}}Fe=e[c+2156>>2],e[c+2156>>2]=e[c+2152>>2];n:{o:{c:{u:{l:{if((0|(r=e[32524]))>=0){if(d[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 n}e[33691]|r||(e[c+2156>>2]=f[134736],r=1),e[32524]=r+1,r=f[r+134736|0];break n}if(!(r=e[33285]))break o}e[33285]=0;break n}e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A)}e[c+2152>>2]=r,e[33691]=0;n:if(!(I|!e[47203])){o:{if((0|(A=e[c+2156>>2]))!=60){if((0|r)!=35&r-97>>>0>25|(0|A)!=38)break n;for(i=e[33285],l=0;;){c:{if(e[c+2156>>2]=r,!i){if(A=e[33283],e[A>>2]==e[A+4>>2])break c;r=e[c+2156>>2]}if(!(!((r=!!(0|xA(r)))|(0|(A=e[c+2156>>2]))==35)|l>>>0>19)){f[(c+112|0)+l|0]=A,l=l+1|0,(r=e[33285])?(e[33285]=0,i=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A),i=e[33285]);continue}}break}f[(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|ZA[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,lA(134736,84252,c+96|0);c:{if(e[c+2156>>2]==59){l=c+2156|0,Y=c+2152|0,V=i=V-32|0;u:if(d[0|(r=c+112|0)]!=35)A=-1,(0|(r=es(130752,r)))!=-1&&(e[l>>2]=r,e[Y>>2]||(e[Y>>2]=32),A=r);else{if(d[0|(A=r+1|0)]==120){e[i>>2]=l,A=jA(r+2|0,90005,i);break u}e[i+16>>2]=l,A=jA(A,90070,i+16|0)}if(V=i+32|0,(0|A)>0)break c}e[32524]=0,e[c+2156>>2]=38,e[c+2152>>2]=32;break n}if((0|(A=e[c+2156>>2]))>32)break n;if(!(r=e[33692]-20|0)|(0|r)==16)break o;break n}if((0|r)!=47&&!_A(r)&&(0|(A=e[c+2152>>2]))!=63&&(0|A)!=33)break n;if((0|(A=e[c+2148>>2]))>780){e[33691]=e[c+2156>>2],f[0|(A=A+189424|0)]=32,f[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384;break e}for(Y=e[33285],l=0,r=e[c+2152>>2];e[c+2156>>2]=r,i=0,Y||(A=e[33283],i=e[A>>2]==e[A+4>>2],r=e[c+2156>>2]),!((0|r)==62|i|l>>>0>499);)e[(c+144|0)+(l<<2)>>2]=r,l=l+1|0,(r=e[33285])?(Y=0,e[33285]=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A),Y=e[33285]);e[(i=c+144|0)+(l<<2)>>2]=0,e[c+2152>>2]=32,Ne=c+2148|0,Te=e[32525],r=0,V=ve=V-560|0;c:if(W(i,84333,3)&&W(i,84477,4)){for(A=(i+(Oi(i)<<2)|0)-4|0,(0|(gA=e[A>>2]))==47&&(e[A>>2]=32);;){if(A=e[i+(r<<2)>>2]){if(ur(A))A=r;else if(f[(ve+512|0)+r|0]=Ts(A<<24>>24),A=39,(0|(r=r+1|0))!=39)continue}else A=r;break}if(f[(ve+512|0)+A|0]=0,d[ve+512|0]!=47){if((0|(Y=es(130480,ve+512|0)))!=16&&(r=e[Ne>>2],e[Ne>>2]=r+1,f[r+189424|0]=32),(0|gA)==47&&(r=0,!(502241>>>Y&1)))break c}else(0|(r=es(130480,ve+512|1)))!=16&&(l=e[Ne>>2],e[Ne>>2]=l+1,f[l+189424|0]=32),Y=r+32|0;l=i+(A<<2)|0,A=e[33708],I=O(A,76)+133076|0,r=262174;u:{l:{i:{p:switch(Y-1|0){case 33:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==2)break C;if(e[33708]=r,i=A>>>0>2,A=r,!i)break}A=1}r=Le(l,34,A);break c;case 32:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==1)break C;if(e[33708]=r,i=A>>>0>2,A=r,!i)break}A=1}r=Le(l,33,A)+524328|0;break c;case 9:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=(I=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=Bt(l,88301),i=Bt(l,88390),XA(A,88479)?XA(A,88528)||(e[28+(134912+(r<<6)|0)>>2]=ea(i,130224)):e[24+(I+134912|0)>>2]=ea(i,130192),ps(Ne,e[33709]);break i;case 2:for((0|(A=e[33709]))<=18&&(e[33709]=A+1),e[(A=(jn=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,Ot=1;;){if(i=Bt(l,e[(Xt=Ot<<2)+130448>>2])){gA=0,A=e[Xt+131072>>2];C:if(Y=e[A>>2])for(;;){for(r=0;I=f[r+Y|0],(Te=e[(r<<2)+i>>2])&&(r=r+1|0,(0|I)==(0|Te)););h:switch(Te-34|0){case 0:case 5:if(!I)break C;break;default:break h}if(!(Y=e[A+((gA=gA+1|0)<<3)>>2]))break}Ui=Xt+(jn+134912|0)|0;C:if((0|(A=e[4+(A+(gA<<3)|0)>>2]))>=0)A=(0|O(A,e[4+(Xt+134912|0)>>2]))/100|0;else{for(;i=(A=i)+4|0,ur(e[A>>2]););for(Da=e[A>>2]==43,i=((Wn=e[(A=A+(Da<<2)|0)>>2]==45)<<2)+A|0,gA=ve+96|0,V=Y=(V=I=V-16|0)-224|0,Je(Y+16|0,0,144),A=Y+160|4,e[Y+24>>2]=A,e[Y+60>>2]=A,e[Y+92>>2]=-1,e[Y+64>>2]=60,e[Y+20>>2]=A,e[Y+48>>2]=19,r=i;r=(A=r)+4|0,Te=(Te=e[A>>2])?jr(124960,Te):0;);e[Y+100>>2]=A,ys(r=Y+16|0,0,0),SA(Y,r,1,1),r=e[Y+8>>2],Ki=e[Y+12>>2],Te=e[Y>>2],Bo=e[Y+4>>2],gA&&(Xi=gA,gA=e[Y+136>>2]+(e[Y+20>>2]-e[Y+60>>2]|0)|0,e[Xi>>2]=gA?A+(gA<<2)|0:i),e[(A=I)+8>>2]=r,e[A+12>>2]=Ki,e[A>>2]=Te,e[A+4>>2]=Bo,V=Y+224|0,me=uA(e[A>>2],e[A+4>>2],e[A+8>>2],e[A+12>>2]),V=A+16|0;h:{r=100;b:if((0|(A=i))!=(0|(i=e[ve+96>>2]))){r=Wn?-1:Da;m:{if((0|(A=e[i>>2]))!=115){if((0|A)!=37)break m;if(ee(me=r?+(0|r)*me+100:me)<2147483648){r=~~me;break b}r=-2147483648;break b}if(e[i+4>>2]==116){S(+(bt=me*+(0|r)/12)),A=0|B(1),B(0);x:{if((r=(A=A>>>20&2047)-969|0)>>>0>=63){if(me=bt+1,(0|r)<0)break x;if(S(+bt),r=0|B(1),i=0|B(0),!(A>>>0<1033)){if(me=0,!i&(0|r)==-1048576||(me=bt+1,A>>>0>=2047))break x;if((0|r)>0|(0|r)>=0){T[(A=V-16|0)+8>>3]=3105036184601418e216,me=3105036184601418e216*T[A+8>>3];break x}if(!(r>>>0<3230714880)){T[(A=V-16|0)+8>>3]=12882297539194267e-247,me=12882297539194267e-247*T[A+8>>3];break x}}I=A,A=!(i<<1)&(0|(A=r<<1|i>>>31))==-2129002496|A>>>0<2165964800?I:0}us=(bt=(me=bt-((Kr=(me=T[14416])+bt)-me))*me)*bt*(me*T[14421]+T[14420]),bt*=me*T[14419]+T[14418],me*=T[14417],S(+Kr),B(1),I=0|B(0),me=us+(bt+(me+T[(i=I<<4&2032)+115376>>3])),Te=e[(i=i+115384|0)>>2],Y=e[i+4>>2],i=(r=Te)+(Te=0)|0,r=(I<<13)+Y|0,r=i>>>0>>0?r+1|0:r,A?(v(0,0|i),v(1,0|r),me=(bt=+F())*me+bt):-2147483648&I?(v(0,0|i),v(1,r+1071644672|0),(me=(Kr=(bt=+F())*me)+bt)<1&&(e[(A=V-16|0)+8>>2]=0,e[A+12>>2]=1048576,T[A+8>>3]=22250738585072014e-324*T[A+8>>3],me=(me=(us=me+1)+(Kr+(bt-me)+(me+(1-us)))+-1)==0?0:me),me*=22250738585072014e-324):(v(0,0|i),v(1,r+-1048576|0),me=(bt=+F())*me+bt,me+=me)}if(ee(me*=100)<2147483648){r=~~me;break b}r=-2147483648;break b}}if((0|Ot)!=1)break h;if(r)r=(A=ee(me=me*+(0|r)*100)<2147483648?~~me:-2147483648)+100|0;else{if(ee(me*=100)<2147483648){r=~~me;break b}r=-2147483648}}A=(0|O(r,e[Xt+134848>>2]))/100|0;break C}A=ee(me)<2147483648?~~me:-2147483648,r&&(A=e[Xt+134848>>2]+O(A,r)|0)}e[Ui+4>>2]=A}if((0|(Ot=Ot+1|0))==5)break}ps(Ne,e[33709]);break i;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=Bt(l,88658))?ea(A,130400):3,i=134912+(r<<6)|0,e[e[47192]+148>>2]!=1?(e[52+(134912+(r<<6)|0)>>2]=A,A=d[A+102776|0]):(e[20+(134912+(r<<6)|0)>>2]=d[A+102764|0],A=d[A+102770|0]),e[i+12>>2]=A,ps(Ne,e[33709]);break i;case 34:case 41:case 43:if(!((0|(A=e[33709]))<=0)){if(l=Y-32|0,Y=0,i=0,r=0,A>>>0>=4)for(I=-4&A,gA=0;Ot=2|r,Xt=1|r,i=(0|l)==e[134912+((Te=3|r)<<6)>>2]?Te:(0|l)==e[134912+(Ot<<6)>>2]?Ot:(0|l)==e[134912+(Xt<<6)>>2]?Xt:(0|l)==e[134912+(r<<6)>>2]?r:i,r=r+4|0,(0|I)!=(0|(gA=gA+4|0)););if(I=3&A)for(;i=(0|l)==e[134912+(r<<6)>>2]?r:i,r=r+1|0,(0|I)!=(0|(Y=Y+1|0)););(0|i)<=0||(e[33709]=i,A=i)}ps(Ne,A);break i;case 7:if(A=Bt(l,88741),r=Bt(l,88860),(0|ea(A,130176))!=1)break i;A=e[Ne>>2],e[Ne>>2]=A+1,f[A+189424|0]=91,A=e[Ne>>2],e[Ne>>2]=A+1,f[A+189424|0]=91,A=Wa((A=e[Ne>>2])+189424|0,r,800-A|0)+e[Ne>>2]|0,e[Ne>>2]=A+1,f[A+189424|0]=93,A=e[Ne>>2],e[Ne>>2]=A+1,f[A+189424|0]=93;break i;case 35:e[33692]==36&&(f[e[Ne>>2]+189424|0]=0,(i=es(131104,r=(A=e[33707])+189424|0))&&(e[Ne>>2]=mr(i,r)+A)),A=e[Ne>>2],e[Ne>>2]=A+1,f[A+189424|0]=1,A=e[Ne>>2],e[Ne>>2]=A+1,f[A+189424|0]=89,e[33692]=0;break i;case 8:if(!(A=Bt(l,89299)))break i;f[134824]=1,r=e[Ne>>2],e[Ne>>2]=Wa(r+189424|0,A,800-r|0)+e[Ne>>2];break i;case 13:f[134824]=1;break i;case 40:case 45:f[134824]=0;break i;case 4:if(!(A=Bt(l,89360)))break i;if(Wa(ve+352|0,A,160),d[ve+352|0]&&!Ar(199328,ve+352|0)){f[134760]=1,f[199328]=0,r=16384;break c}if((0|(A=gn(ve+352|0)))<0)break i;e[ve+20>>2]=A,e[ve+16>>2]=1,lA(A=ve+352|0,89460,ve+16|0),GA(e[Ne>>2]+189424|0,A),e[Ne>>2]=e[Ne>>2]+kA(A);break i;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=Bt(l,89514)){if(Wa(ve+352|0,A,160),e[34441]){if((0|(A=gn(ve+352|0)))<0||0|ZA[e[34441]](1,A+e[33282]|0,Te))break C;e[ve+68>>2]=A,e[ve+64>>2]=1,lA(ve+352|0,89658,ve- -64|0)}else{if(!Te|d[ve+352|0]==47?A=Gn(ve+352|0):(e[ve+48>>2]=Te,e[ve+52>>2]=ve+352,lA(A=ve+96|0,89564,ve+48|0),A=Gn(A)),(0|A)<0)break C;e[ve+36>>2]=A,e[ve+32>>2]=1,lA(ve+352|0,89623,ve+32|0)}A=ve+352|0,GA(e[Ne>>2]+189424|0,A),e[Ne>>2]=e[Ne>>2]+kA(A),e[4+(134912+(r<<6)|0)>>2]=1}if(ps(Ne,e[33709]),(0|gA)==47){Ea(11,Ne),r=16384;break c}f[134772]=1,r=16384;break c;case 42:Ea(43,Ne),f[134772]=0,r=16384;break c;case 12:C:{if(A=Bt(l,89714)){if(r=16384,(I=(0|(A=ea(A,130336)))<0?2:A)>>>0<=2&&(A=e[Ne>>2],e[ve+84>>2]=I,e[ve+80>>2]=1,lA(A+189424|0,89770,ve+80|0),e[Ne>>2]=e[Ne>>2]+3,r=0),A=e[102784+(I<<2)>>2],!(i=Bt(l,89907)))break C;break l}if(r=16384,i=Bt(l,89907))break l;A=21;break u}if(I>>>0<3)break i;break u;case 0:(A=Bt(l,89965))&&(Wa(r=ve+352|0,A,160),gn(r)),r=Le(l,1,e[33708])?147456:0;break c;case 1:r=Le(l,2,A)?147456:0;break c;case 5:r=0,e[I>>2]==6&&(r=Le(l,38,A),A=e[33708]),r=524358+(Le(l,6,A)|r)|0;break c;case 6:r=0,(0|(i=e[I>>2]))==6&&(r=Le(l,38,A),i=e[I>>2]),(0|i)==7&&(r=Le(l,39,e[33708])|r),r=524358+(r|Le(l,7,e[33708]))|0;break c;case 37:if(r=524328,e[I>>2]!=6)break c;r=Le(l,38,A)+524328|0;break c;case 38:if(r=524358,(-2&e[I>>2])!=6)break c;r=Le(l,39,A)+524358|0;break c;case 14:case 46:break c;case 3:break p;default:break i}A=Bt(l,88893),r=Bt(l,88992),i=Bt(l,89153),l=ea(A,130272),r=ea(r,130320),A=Ds(i,0),e[ve>>2]=1,i=(0|A)<2?193:A- -64|0,r=(0|(A=(0|r)==1?19:l))==64?i:A,e[ve+4>>2]=r,lA(A=ve+352|0,89230,ve),GA(e[Ne>>2]+189424|0,A),A=e[Ne>>2]+kA(A)|0,e[Ne>>2]=A,e[33707]=A,e[33692]=r}r=0;break c}A=Ds(i,1),i=e[33722],$e(1,e[33713]),(0|(A=(0|(i=(0|O(A,i))/100<<8))/(0|O(e[36429],10))|0))<=199&&(A=(0|i)/(0|O(e[36428],10))|0),r=r||16384}i=A>>>5|0,l=A,r=((A=(0|A)>4095)?i>>>0>=4095?4095:i:l)+(A?8388608|r:r)|0}if(V=ve+560|0,r){if(A=e[c+2148>>2]+189424|0,f[0|A]=32,f[A+1|0]=0,!(131072&r)){s=r;break e}GA(189360,134784),s=r;break e}e[c+2156>>2]=32;c:{u:{if(!(r=e[33285])){if(I=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|ZA[e[A+8>>2]](A)}e[c+2152>>2]=r,I=0;continue}e[c+2156>>2]=A+57344}if(d[134824])continue;if(i=e[c+2156>>2],!((0|(A=e[c+2152>>2]))!=10|e[47268]!=-1)){(0|(s=vr(i)))==16384?(A=e[c+2148>>2],k[cA+(A<<1)>>1]=e[33284]-e[47353],e[Wr>>2]=A,s=524328,A=mr(e[c+2156>>2],A+189424|0)+e[c+2148>>2]|0):A=e[c+2148>>2],f[0|(A=A+189424|0)]=32,f[A+1|0]=0;break e}n:if((0|i)==1){if((0|A)!=66){if((0|A)!=86)break n;for(A=e[c+2148>>2],e[c+2148>>2]=A+1,f[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|ZA[e[A+8>>2]](A)}if(e[c+2156>>2]=r,!(ur(r)||(0|(A=e[c+2148>>2]))>=799)){e[c+2148>>2]=A+1,f[A+189424|0]=e[c+2156>>2];continue}}break}f[e[c+2148>>2]+189424|0]=0,s=147456;break e}r=e[c+2148>>2],f[0|(A=r+189424|0)]=32,f[A+1|0]=32,f[A+2|0]=32,f[A+3|0]=0,e[c+2148>>2]=r+3;o:{c:{u:{l:{i:{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 i}e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A)}if(e[c+2152>>2]=r,i=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(i=e[33285],l=0;;){u:{if(!i){if(A=e[33283],e[A>>2]==e[A+4>>2])break u;r=e[c+2152>>2]}if(!(ur(r)|l>>>0>58)){e[188832+(l<<2)>>2]=e[c+2152>>2],(r=e[33285])?(e[33285]=0,i=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A),i=e[33285]),l=l+1|0,e[c+2152>>2]=r,A=e[c+2148>>2],e[c+2148>>2]=A+1,f[A+189424|0]=32;continue}}break}i=2,e[188832+(l<<2)>>2]=0}e[47201]=i}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]=ZA[e[A+8>>2]](A);continue}hr=hr+1|0,r=0,A=e[H+340>>2];n:if(l=y[A>>1]){for(;;){if((65535&l)!=(0|i)){if(l=y[A+((r=r+2|0)<<1)>>1])continue;break n}break}o:switch(0|(A=y[A+(r<<1|2)>>1])){case 1:continue;case 0:break n;default:break o}e[c+2156>>2]=A,i=A}xA(i)?(re=1,r=e[c+2156>>2]):RA?(e[33285]=e[c+2152>>2],r=1328,e[c+2156>>2]=1328,e[c+2152>>2]=32,RA=0):(0|(r=e[c+2156>>2]))!=3851?(RA=0,(0|r)!=3405|e[c+2152>>2]!=8205||(r=3406,e[c+2156>>2]=3406)):(r=32,e[c+2156>>2]=32,RA=0);n:if(Gs(r)){if(e[H+8216>>2]=e[H+8216>>2]+1,e[33692]|e[47200]!=2||Gs(Fe)||(e[c+2544>>2]=0,e[c+2548>>2]=0,e[c+2304>>2]=84731,!zt(H,c+2304|0,c+2160|0,c+2544|0,0,0))||(Vt(H,A=c+2160|0,c+2544|0,-1,0),Gr(r=A,A=c+2336|0),e[c+80>>2]=A,lA(r=c+2240|0,85451,c+80|0),A=e[c+2148>>2],(0|(r=kA(r)+A|0))>=800))break n;GA(A+189424|0,c+2240|0),e[c+2148>>2]=r}else _A(e[c+2156>>2])&&(e[H+8220>>2]=e[H+8220>>2]+1);if(r=e[c+2152>>2],A=e[c+2156>>2],e[47204])if((0|I)>0)I=I-1|0;else{if(!((0|A)!=91|(0|r)!=91)){i=0,I=-1;break A}I=(0|A)==93&&(0|r)==93?2:I}if((0|A)==10){for(i=e[33285],l=0;;){n:{if(!i){if(A=e[33283],e[A>>2]==e[A+4>>2])break n;r=e[c+2152>>2]}if(ur(r)){l=(e[c+2152>>2]==10)+l|0,(r=e[33285])?(e[33285]=0,i=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ZA[e[A+8>>2]](A),i=e[33285]),e[c+2152>>2]=r;continue}}break}if((0|l)>0){s&&Je(A=dr+189424|0,32,WA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,f[0|A]=32,f[A+1|0]=0,e[33285]=e[c+2152>>2],s=e[47203]?524358:O((0|l)>=3?3:l,30)+524328|0;break e}if(A=e[47268]<(0|hr),hr=0,!A){A=e[c+2148>>2]+189424|0,f[0|A]=32,f[A+1|0]=0,e[33285]=e[c+2152>>2],s=262174;break e}}if(i=0,e[33692]|I)break A;if(A=0,!s)break r;if(ur(e[c+2156>>2])){A=s;break r}if(yt(e[c+2156>>2])&&ue(e[c+2156>>2]))break r;e[33691]=e[c+2156>>2],f[0|(A=dr+189424|0)]=32,f[A+1|0]=0,e[33285]=e[c+2152>>2];break e}RA&&(e[c+2148>>2]=mr(1328,e[c+2148>>2]+189424|0)+e[c+2148>>2]),s&&Je(A=dr+189424|0,32,WA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,f[0|A]=32,f[A+1|0]=0}s=589864;break e}if(!((0|(r=e[c+2156>>2]))!=46|e[c+2152>>2]!=46)){r:{a:{n:{if(!(r=e[33285])){if(r=e[33283],e[r>>2]==e[r+4>>2])break r;if(!(r=e[33285]))break n}e[33285]=0;break a}e[33284]=e[33284]+1,r=e[33283],r=0|ZA[e[r+8>>2]](r)}if(g=r,(0|r)==46)for(e[c+2152>>2]=32,e[c+2156>>2]=8230,g=e[33285];;){a:{n:{if(!g){if(r=e[33283],e[r>>2]==e[r+4>>2]){g=46;break r}if(!(g=e[33285]))break n}e[33285]=0,r=0;break a}e[33284]=e[33284]+1,r=e[33283],g=0|ZA[e[r+8>>2]](r),r=e[33285]}if((0|g)!=46)break r;e[c+2152>>2]=32,e[c+2156>>2]=8230,g=r}}(0|(r=e[c+2156>>2]))!=8230?e[33285]=g:(e[c+2152>>2]=g,r=8230)}if(gA=0,(0|(Y=vr(r)))!=16384){r:if(536621&Y)for(r=e[33285];;){if(!r&&(r=e[33283],e[r>>2]==e[r+4>>2])||!(536621&vr(e[c+2152>>2])))break r;(g=e[33285])?(e[33285]=0,r=0):(e[33284]=e[33284]+1,r=e[33283],g=0|ZA[e[r+8>>2]](r),r=e[33285]),e[c+2152>>2]=g}if(1048576&Y){e[p+780>>2]=Y>>>12&15,RA=1,I=0,s=A;continue}(ur(e[c+2152>>2])|32768&Y||bn(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))&&(gA=1)}if((0|(r=e[c+2156>>2]))==57404&&(e[c+2156>>2]=60,r=60),e[47201]){s=0;r:if(!(1<<(l=yr(r))&1879048255&&l>>>0<=30)){if(!((l=yr(r))>>>0>27)){if(116672&(I=1<>2]))){e[H+288>>2]=0,i=e[c+2156>>2],f[c+2336|0]=0,I=e[c+2152>>2],r=0;r:{a:if(!((0|(s=e[34064]))<=0))for(;;){if((0|i)==e[136272+(r<<4)>>2]){if(e[136276+(r<<4)>>2])break r;if(br(0,r))break a;break r}if((0|s)==(0|(r=r+1|0)))break}r=-1}r:if((0|r)>=0)e[c>>2]=r,lA(c+2336|0,86007,c),e[33285]=I;else if((l=!gA)|(0|i)!=46|(0|I)==46||(e[c+2600>>2]=0,e[c+2604>>2]=0,e[c+2540>>2]=86036,!zt(H,c+2540|0,c+2544|0,c+2600|0,0,0))?r=Er(c+2240|0,H,i,0):(Vt(H,r=c+2544|0,c+2600|0,-1,0),Gr(s=r,r=c+2160|0),e[c+64>>2]=r,lA(r=c+2304|0,85451,c- -64|0)),s=r,l|!e[c+2148>>2]|2&d[H+76|0]){for(r=e[33285],l=1;;){a:{n:{if(!r){if(r=e[33283],e[r>>2]==e[r+4>>2]|(0|i)==60|(0|i)!=(0|I))break a;if(l=l+1|0,I=e[33285])break n;e[33284]=e[33284]+1,r=e[33283],I=0|ZA[e[r+8>>2]](r),r=e[33285];continue}if((0|i)==60|(0|i)!=(0|I))break a;I=r,l=l+1|0}r=0,e[33285]=0;continue}break}if(e[c+2152>>2]=I,gA&&(e[33285]=I),(0|l)==1){e[c+16>>2]=s,lA(c+2336|0,86219,c+16|0);break r}if((0|l)<=3){if(f[c+2336|0]=0,(0|(r=e[50786]))<=299&&(e[c+2336>>2]=d[86728]|d[86729]<<8|d[86730]<<16|d[86731]<<24,k[c+2340>>1]=d[86732]|d[86733]<<8),(0|l)>0){for(;e[c+32>>2]=s,lA(r=c+2160|0,86219,c+32|0),I=l>>>0>1,Jr(c+2336|0,r),l=l-1|0,I;);r=e[50786]}if((0|r)>299)break r;e[c+2160>>2]=d[86857]|d[86858]<<8|d[86859]<<16|d[86860]<<24,r=d[86860]|d[86861]<<8|d[86862]<<16|d[86863]<<24,f[c+2163|0]=r,f[c+2164|0]=r>>>8,f[c+2165|0]=r>>>16,f[c+2166|0]=r>>>24,Jr(c+2336|0,c+2160|0);break r}e[c+56>>2]=s,e[c+52>>2]=l,e[c+48>>2]=s,lA(c+2336|0,86932,c+48|0)}else e[33691]=i,e[33285]=I,k[c+2336>>1]=32;if(l=kA(s=c+2336|0),GA((r=e[c+2148>>2])+189424|0,s),e[c+2148>>2]=r+l,gA){if((0|i)==45){s=16384;break e}if(s=vr(i),!(2&d[H+76|0]|(0|r)<=0)){s=(-32769&s)==266270?262148:(28672&s)==4096?266244:262148;break e}if(!(524288&s)){s=(28672&s)==4096?266244:262148;break e}if((0|s)>=0)break e}i=e[c+2156>>2]}}if(i|!(2097152&Y)||(r=GA(e[c+2148>>2]+189424|0,Er(c+2336|0,H,e[c+2156>>2],1)),d[0|r]?(e[c+2148>>2]=e[c+2148>>2]+kA(r),Y&=-28673,i=e[c+2156>>2]):i=0),I=0,gA){r:if(ur(g=e[c+2152>>2]))for(l=e[33285],r=0;;){if(!l&&(s=e[33283],e[s>>2]==e[s+4>>2])||!ur(g))break r;r=((0|g)==10)+r|0,(g=e[33285])?(e[33285]=0,l=0):(e[33284]=e[33284]+1,s=e[33283],g=0|ZA[e[s+8>>2]](s),l=e[33285])}else r=0;s=(0|(I=e[c+2156>>2]))==46&&(0|r)<2?4194304|Y:Y;r:{if(!r){l=1,(0|I)!=44|(0|Fe)!=46|e[H+212>>2]!=26741|Te-48>>>0>=10||g-48>>>0>=10&&!ue(g)||(e[c+2156>>2]=1367,l=0),(0|(Y=e[c+2156>>2]))!=46|(0|g)!=39||(I=l,Y=e[33283],(0|(ve=e[Y>>2]))==e[Y+4>>2]?l=0:(l=0|ZA[e[Y+8>>2]](Y),e[Y>>2]=ve),Y=e[c+2156>>2],l=(0|l)!=115&I);a:if((0|Y)!=46)l&=re;else{n:if(1&f[H+106|0]){if(!(Fe-48>>>0<10)&&((I=Fe-73|0)>>>0>15|!(1<>>0<=15||ur(Te))))break n;l=Fe-48>>>0>=10?0:!ue(g)&(0|g)!=45&l}if(ue(g)&&(l=d[H+208|0]!=0&l),re){Y=e[c+2156>>2];break a}Y=32,e[c+2156>>2]=32,l=0}if(!(!l|(0|Y)!=46|!e[47203]|(0|g)!=60)){dr=e[c+2148>>2],A=s;break r}if(!l)break r}if(A=e[c+2148>>2]+189424|0,f[0|A]=32,f[A+1|0]=0,e[33285]=g,Fe-48>>>0<10&&(s=yt(g)?s:-4194305&s),(0|r)<2)break e;s=(0|s)==536621?536656:(0|s)==532520?532555:524358;break e}(e[33285]||(I=0,r=e[33283],e[r>>2]!=e[r+4>>2]))&&(I=0,ur(e[c+2152>>2])&&(e[33285]=g))}s=A}if(e[33712]!=1){if((0|i)!=(0|(r=e[c+2156>>2])))l=e[c+2148>>2],(0|r)==57404&&(r=60,e[c+2156>>2]=60);else{A:{if(bn(i))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]=mr(r,l+189424|0)+e[c+2148>>2],ur(e[c+2156>>2])||bn(e[c+2156>>2])||(A=e[c+2148>>2],k[cA+(A<<1)>>1]=e[33284]-e[47353],(0|A)<=(l+1|0)||Je(Yn+(l<<1)|0,255,A+~l<<1)),r=e[c+2148>>2],e[Wr>>2]=r;A:{r:{if((0|r)>725){if(!yt(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}}f[0|(A=r+189424|0)]=32,f[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384}V=c+2608|0,RA=s,cs&&(A=e[p+780>>2],e[cs>>2]=A||RA>>>12&7),A=(p+5184|0)+(e[p+6800>>2]<<1)|0,k[A+6>>1]=0,k[A+2>>1]=0,k[A+4>>1]=32767,Y=O(4095&RA,8388608&RA?320:10),s=189424;e:{A:{r:if(A=d[189424]){for(;;){if(!!(255&(A=A<<24>>24))&A>>>0<33){if(A=d[0|(s=s+1|0)])continue;break r}break}if(d[0|s])break A}Y=(0|(r=Y-(A=e[47566])|0))>0?r:0,e[47566]=Y+A,RA=d[190268]?524288|RA:RA,e[H+8240>>2]=RA;break e}e[47566]=Y,A=d[190268],e[H+8240>>2]=RA,A&&($A=1,e[47568]=e[47568]+1,(0|(A=e[47569]))<=0||(A=A-1|0,e[47569]=A,A||(f[190280]=0)))}e[49572]=1,e[47572]=655360,e[47573]=0,e[H+8184>>2]=0,e[H+8188>>2]=0,A=0,e[H+288>>2]=0,e[(r=H- -8192|0)>>2]=0,e[r+4>>2]=0,e[H+8200>>2]=0,e[H+8224>>2]=0,e[H+8228>>2]=0,e[(r=H+8232|0)>>2]=0,e[r+4>>2]=0,f[p+786|0]=32,k[p+784>>1]=8192,e[p+6812>>2]=32,k[p+1588>>1]=3,e[p+1584>>2]=0,s=0;e:if(!((0|(r=e[p+6800>>2]))<=0)){for(;;){if(k[(p+5184|0)+(s<<1)>>1]>0)break e;if((0|r)==(0|(s=s+1|0)))break}s=r}if(r=y[(p+5184|0)+(s<<1)>>1],k[p+1592>>1]=r,r)for(;A=!!(65535&~r)+A|0,r=y[(p+5184|0)+((s=s+1|0)<<1)>>1];);for(f[p+1594|0]=A,l=3,cA=1,s=0;;){Te=e[p+6808>>2],Br(p+6808|0,(Ne=(p+784|0)+l|0)-1|0),!d[H+170|0]|e[p+6808>>2]-48>>>0>=10||yt(Te)&&(e[p+6808>>2]=97),ie?e[p+6812>>2]=ie:M&&Br(p+6812|0,M+189423|0),r=M;e:{A:if(s||(r=WA(p+6816|0,M+189424|0)+M|0,s=e[p+6816>>2])){if(re=WA(p+6804|0,A=r+189424|0),(0|s)==1){if(i=r-1|0,ie=32,Fe=0,e[p+6812>>2]!=32){r=i,A=32;break A}M=0,s=r;r:{a:switch(d[0|A]-43|0){case 0:s=r+1|0,M=64;break r;case 2:break a;default:break r}s=r+1|0,M=96}if(f[0|(A=s+189424|0)]-48>>>0>=10)g=s+1|0,re=-1;else{for(re=ta(A);s=(A=s)+1|0,f[A+189424|0]-48>>>0<10;);g=s,s=A}if((0|(ie=e[47350]))>247)A=0;else if(A=0,!((0|(s=f[s+189424|0]))<0)&&(s=Ma(84868,255&s,14))){r=(A=s-84868|0)+1|0,(0|re)==-1&&(re=e[105536+(r<<2)>>2],M=0);r:{a:switch(A-8|0){case 0:e[49574]=0,e[49573]=re;break r;case 4:break a;default:break r}(0|re)>=3?f[199304]=1:f[199304]=0}A=1,e[47350]=ie+1,e[198304+(ie<<2)>>2]=(r+M|0)+(re<<8),r=g}ie=e[p+6812>>2],Je(i+189424|0,32,r-i|0),rs=A+rs|0,s=0;break e}ie=0,(0|s)==32|e[49573]!=36?(Fe=0,A=s):(e[p+6812>>2]!=32|e[p+6804>>2]!=32||(e[49573]=20),Fe=0,A=Cn(s,H))}else e[p+6804>>2]=32,Fe=1,ie=0,re=0,A=32;A:if(ar){if(ar=1,cA=8,s=0,(0|A)!=93|e[p+6804>>2]!=93)break A;r=r+1|0,A=32,ar=0}else if((240&(s=e[49573]))!=64)if(ar=0,16&s)s=0;else{r:{a:{n:{o:{if(!((0|(g=(0|A)==8242||(0|A)==8217||(0|A)==146||(0|A)==180?39:A))!=8216&(0|g)!=63))if(yt(e[p+6808>>2])){if(g=A,yt(e[p+6804>>2])){g=39;break o}}else g=A;c:{if((0|g)!=1367){if((0|g)==1328){_|=1024,g=32;break o}if((A=g-44032|0)>>>0>11183)break o;if(i=((s=((I=65535&A)>>>0)/28|0)>>>0)%21|0,A=A-O(s,28)&65535,g-50500>>>0>587)break c;s=A?A+4519|0:0,i=i+4449|0;break a}_|=131072,dr=e[p+6804>>2],A=e[p+6812>>2],g=32;break n}s=50500+(A+O(i,28)|0)|0,i=(I>>>0)/588|4352;break a}if(dr=e[p+6804>>2],A=e[p+6812>>2],!((s=g-12592|0)>>>0>51)){i=4352|d[s+103296|0],s=0;break a}}c=r+189424|0;n:if(!((0|(s=e[H+212>>2]))!=28268&(0|s)!=24934|(0|g)!=39)&&!_A(A)&&(WA(p+6820|0,c+1|0),hn(e[p+6820>>2]))){i=601,s=0;o:switch(dr-110|0){case 6:break a;case 0:break o;default:break n}if(e[H+212>>2]!=24934)break a;f[0|c]=32;break a}if(e[p+6824>>2]=32,(0|(A=e[49897]))>0)e[49897]=A-1,s=0;else{if(!g){s=0,i=0;break r}n:{o:{c:{u:if((gA=e[H+180>>2])&&(I=g,(ve=Gs(g))&&(I=Cn(g,H)),!Ni(gA)))for(;;){e[p+16>>2]=0,e[p+624>>2]=I,A=WA(p+16|0,gA)+gA|0;l:if(e[p+624>>2]==e[p+16>>2]){if(d[0|A]){for(i=1,Ot=0,s=c;Xt=WA(p+16|0,A),hr=WA(p+624|0,s),Wr=Cn(e[p+624>>2],H),e[p+624>>2]=Wr,s=s+hr|0,Ot=(hr=(0|Wr)==e[p+16>>2])+Ot|0,i&=hr,d[0|(A=A+Xt|0)];);if(!i)break l;e[49897]=Ot}if(!(A=A+1|0))break u;if(8&d[188788]&&(e[p>>2]=gA,e[p+4>>2]=A,tr(e[47195],85187,p)),A=WA(p+6828|0,A)+A|0,d[0|A])break c;s=0;break o}for(;s=A,A=A+1|0,d[0|s];);for(;d[0|(s=(A=s)+1|0)];);if(Ni(gA=A+2|0))break}s=0,i=g;break n}WA(p+6824|0,A),ve&&Gs(dr)&&(e[p+6824>>2]=Xa(e[p+6824>>2])),s=e[p+6824>>2]}i=e[p+6828>>2],_|=2097152,ve&&(i=Xa(i))}if((0|i)!=8)break a}i=r;break e}s?e[p+6804>>2]=s:s=0}yt(i)||hn(i)||jr(e[H+336>>2],i)||!yt(e[p+6808>>2])|!(!d[H+170|0]|i-48>>>0>=10)&e[p+6804>>2]-48>>>0>=10||(i=32,Xe=1);r:{a:{n:{o:{c:{if(e[p+6808>>2]-48>>>0<10){if(i-48>>>0<10){A=P;break c}if(1<<(A=i-32|0)&20481&&A>>>0<=14)break o;Xe=1}else if(A=0,e[p+6812>>2]!=44||(A=P,(0|i)!=44))break c;i=32;break o}if((0|i)==91&&((0|(g=e[p+6804>>2]))==2||(i=91,(0|g)==91&&e[47204])))break n;P=A}if(yt(i)){o:{c:{u:{if(yt(e[p+6808>>2])){if(!d[H+171|0]||(A=e[p+6808>>2],!((0|i)>12352)&&(0|A)<12353))break u}else A=e[p+6808>>2];if(Sr=jr(e[H+336>>2],A)?Sr:0,(0|(A=e[p+6808>>2]))!=32&&!jr(e[H+336>>2],A)){A=32,J=bn(e[p+6808>>2])?J:256|J;break c}_=Gs(i)?2|_:_,e[p+6808>>2]!=32|f[Ne-2|0]-48>>>0>=10|e[p+6812>>2]-48>>>0<10||(f[(p+784|0)+l|0]=32,A=1588+(O(NA,12)+p|0)|0,k[A>>1]=y[A>>1]+1,l=l+1|0)}if(A=32,(0|i)==32)break o;if(Sr=Sr+1|0,(0|(g=e[H+600>>2]))<=0){A=i;break o}if(!((0|i)<=591&(0|(I=e[p+6808>>2]))>=(0|g))){if((0|i)<(0|g)){A=i;break o}if((0|Sr)<2){A=i;break o}if(!((0|I)<=591)){A=i;break o}}if(!yt(I)){A=i;break o}_|=16384,J|=128}Xe=1}if(na=na+1|0,Gs(A)){if(g=Cn(A,H),e[H- -64>>2]){A=ia?g:712,s=ia?s:g,ia=1;break A}if(ue(e[p+6812>>2])){if(e[p+6808>>2]==32){A=g;break A}if(A=32,e[H+212>>2]!=26465)break r;for(i=85240,I=(p+784|0)+l|0,re=0;;){if(c=kA(i),d[0|(Te=I-c|0)]==32&&!Hr(Te+1|0,i,c=c-1|0)){if((0|(i=f[i+c|0]))==(0|g)){A=g;break A}if((0|i)==65&&Va(H,g)){A=g;break A}}if(i=e[131184+((re=re+1|0)<<2)>>2],(0|re)==11)break}break r}if(A=32,(0|g)==32)break A;if(!Gs(e[p+6812>>2])){A=g;break A}if(!ue(e[p+6804>>2])){A=g;break A}if(WA(p+16|0,189424+(r+re|0)|0),!(e[H+212>>2]!=28268|(0|Sr)!=2|(0|g)!=106|e[p+6812>>2]!=73)){A=g;break A}if(e[p+6808>>2]==32){A=g;break A}if(!yt(e[p+16>>2])){A=g;break A}J|=256,ie=32,Xe=1;break A}if(!cA){cA=0;break A}if((0|Sr)<3){cA=0;break A}if((0|A)!=115){cA=0;break A}if(e[H+212>>2]!=25966){cA=0;break A}if(e[p+6804>>2]!=32){cA=0;break A}if(cA|=4,A=32,d[(i=l+p|0)+783|0]!=39)break A;f[i+783|0]=32;break A}A=32;o:{c:{u:{l:{i:switch(i-39|0){default:if((0|i)==95)break A;case 1:case 2:case 3:case 4:case 5:if(i-48>>>0>=10||d[H+170|0]&&yt(e[p+6808>>2])&&!((g=e[p+6804>>2])-48>>>0<10|g-2406>>>0<10))break o;if((0|(I=e[p+6808>>2]))==32)break c;if(g=e[p+6808>>2],I-48>>>0<10)break u;if((0|(I=g))==(0|(g=e[H+128>>2])))break l;Xe=1;break A;case 6:if(!hn(e[p+6812>>2])&&yt(e[p+6804>>2])){if(e[p+6808>>2]!=32){Xe=1;break A}if(_|=128,(0|NA)<=0)break A;i=1572+(O(NA,12)+p|0)|0,e[i>>2]=16384|e[i>>2];break A}if(i=e[p+6804>>2],!(e[p+6812>>2]!=32|(0|i)!=32)){vt=4;break A}if((0|i)==45){r=r+1|0,vt=4;break A}if(A=45,e[p+6808>>2]!=32||!yt(Te)||yt(e[p+6812>>2]))break A;f[(p+784|0)+l|0]=32,i=1588+(O(NA,12)+p|0)|0,k[i>>1]=y[i>>1]+1,l=l+1|0;break A;case 7:if(e[p+6808>>2]==46){Xe=1;break A}if(A=46,(0|NA)<=0||(i=1572+(O(NA,12)+p|0)|0,1&f[i+1|0])||!yt(e[p+6812>>2]))break A;e[i>>2]=65536|e[i>>2],A=(A=hn(e[p+6804>>2]))||e[p+6804>>2]==45?32:46;break A;case 0:break i}i:{if((0|(g=e[p+6812>>2]))!=46||(i=115,e[p+6804>>2]!=115)){if(!xA(g))break i;i=e[p+6804>>2]}if(yt(i))break a}if(1&(i=e[H+88>>2])){if(yt(e[p+6804>>2]))break a;i=e[H+88>>2]}if(2&i&&yt(e[p+6812>>2]))break a;if(!(!jr(e[H+332>>2],e[p+6812>>2])|(0|Te)!=32)){r=(e[p+6804>>2]==32)+r|0;break a}if(g=(0|(i=e[p+6808>>2]))!=115|Js,Js=0,!(1&g))break A;Js=!!(0|hn(i)),vt=4;break A}if((0|g)==44&P){Xe=1;break A}P=1;break o}if((0|g)!=32)break o}yt(Te)&&(yt(e[p+6812>>2])||(f[(p+784|0)+l|0]=32,A=1588+(O(NA,12)+p|0)|0,k[A>>1]=y[A>>1]+1,l=l+1|0))}A=i;break A}ar=1,i=r+1|0,P=A;break e}A=39,Js=0;break A}Xe=1,ie=32}else{if(A-48>>>0<10){s=0,i=(0|(g=e[49574]+1|0))>(15&e[49573]),e[49574]=i?0:g,A=i?32:A,Xe|=i,ar=0;break A}s=0,e[49574]=0,A=(i=e[p+6808>>2]-48>>>0<10)?32:A,Xe|=i,ar=0}if(hn(A)){if(e[p+6808>>2]==32){_|=262144,i=r;break e}if(i=e[p+6816>>2]-9>>>0<2,I=1&Xe){re=0;A:if(!((0|h)>(0|(A=r-1|0))))for(;;){if(!(g=k[(p+5184|0)+(A<<1)>>1]))break A;if(re=((0|g)>0)+re|0,!((0|h)<=(0|(A=A-1|0))))break}f[1594+(O(NA,12)+p|0)|0]=re}if(J=i?262144|J:J,f[(p+784|0)+l|0]=32,A=l+1|0,!((0|NA)>298||(i=(p+1584|0)+O(NA,12)|0,(0|(g=y[i+4>>1]))>=(0|A)))){if((0|rs)<=0?h=e[i>>2]:(h=198300+(e[47350]<<2)|0,e[h>>2]=128|e[h>>2],rs=0,h=64|e[i>>2]),c=e[47352],f[i+6|0]=c,e[i>>2]=h|(na?cA:-2&cA)|(d[199304]?2048:0)|_,(0|c)>0){for(;_=(h=p+784|0)+A|0,h=h+(A=A-1|0)|0,f[0|_]=d[0|h],(0|A)>(0|g););f[0|h]=32,k[i+4>>1]=g+1,A=l+2|0}g=(p+1584|0)+O(NA=NA+1|0,12)|0,e[g>>2]=0,k[g+4>>1]=A,l=r;A:if(!((0|(i=e[p+6800>>2]))<=(0|r))){for(;;){if(k[(p+5184|0)+(l<<1)>>1]>0)break A;if((0|i)==(0|(l=l+1|0)))break}l=i}if(re=y[(p+5184|0)+(l<<1)>>1],k[g+8>>1]=re,na=0,i=0,re)for(;i=!!(65535&~re)+i|0,re=y[(p+5184|0)+((l=l+1|0)<<1)>>1];);f[g+10|0]=i,e[47352]=0,cA=1,_=J,J=0,ia=0}Xe=0,s=I?0:s,i=I?M:r}else(0|l)>795?(i=r,r=h,A=l):(A=mr(A,(p+784|0)+l|0)+l|0,i=r,r=h);e[47352]<(0|vt)&&(e[47352]=vt),vt=0,h=r,l=A}if(Fe||(M=i,!((0|l)<799)))break}(0|rs)<=0|NA||(A=198300+(e[47350]<<2)|0,e[A>>2]=128|e[A>>2],e[p+1584>>2]=64|e[p+1584>>2],NA=1),A=(p+784|0)+l|0,e[H+8204>>2]=A-1,r=0,f[0|A]=0,f[p+1590|0]=0,f[1590+(O(NA,12)+p|0)|0]=8;e:if((0|NA)<=0)e[p+1584>>2]=512|e[p+1584>>2],l=e[49572];else{A=NA-1|0;A:if((0|NA)!=1)for(s=A;;){if(!bn(f[y[1588+(O(s,12)+p|0)>>1]+(p+784|0)|0])){r=s;break A}if(g=(0|s)>1,s=s-1|0,!g)break}if(r=(p+1584|0)+O(r,12)|0,e[r>>2]=16|e[r>>2],4194304&RA&&(A=(p+1584|0)+O(A,12)|0,256&(r=e[A>>2])||(e[A>>2]=65536|r)),e[p+1584>>2]=512|e[p+1584>>2],!((0|NA)<=0|(0|(l=e[49572]))>990))for(g=3|(A=p+624|0),I=2|A,ie=p+754|0,Fe=!(4194304&RA),M=0,h=0;;){e[47354]=e[47354]+1;A:{if((0|(A=e[49827]))<=0||(A=A-1|0,e[49827]=A,A)){if(d[190280])break A}else f[190280]=0;A=y[1588+(O(M,12)+p|0)>>1]+(p+784|0)|0;r:if(!(f[0|A]-48>>>0>=10)&&(r=p+624|0,s=A,e[H+112>>2]!=1227133512)){for(;;){a:{if(f[0|s]-48>>>0<10)f[0|r]=d[0|s],r=r+1|0,s=s+1|0;else{if(e[H+124>>2]!=f[0|s]|d[s+1|0]!=32||(l=s+2|0,d[s+3|0]==32|f[0|l]-48>>>0>=10|d[s+4|0]==32))break a;M=M+1|0,s=l}if(r>>>0>>0)continue;break r}break}Je(A+(r=r-(P=p+624|0)|0)|0,32,(s=(l=s-A|0)-r|0)>>>0<=l>>>0?s:0),qA(A,P,r)}for(r=0;s=r,r=r+1|0,f[A+s|0]-48>>>0<10;);r:if(s-5>>>0<=27){for(f[p+626|0]=32,k[p+624>>1]=8224,d[0|A]!=48&e[H+132>>2]>=(0|s)||(r=(p+1584|0)+O(M,12)|0,e[r>>2]=524288|e[r>>2]),J=(p+1584|0)+O(M,12)|0,re=0,l=g;r=A,!((A=f[0|A])-48>>>0>=10&(0|A)!=e[H+128>>2])&&(f[0|l]=A,A=l+1|0,P=s,(0|(s=s-1|0))<=0?l=A:e[H+112>>2]>>>s&1?(c=e[J+4>>2],_=(p+16|0)+O(re,12)|0,e[_>>2]=e[J>>2],e[_+4>>2]=c,e[_+8>>2]=e[J+8>>2],re=re+1|0,(0|(_=e[H+124>>2]))!=32&&(f[l+1|0]=_,A=l+2|0),f[0|A]=32,l=A+1|0,8&d[J+2|0]||((vt=e[H+112>>2])>>>P-2&1&&(f[A+1|0]=48,f[A+2|0]=48,vt=e[H+112>>2],l=A+3|0),vt>>>P-3&1&&(f[0|l]=48,l=l+1|0))):l=A,A=r+1|0,l>>>0>>0););if(s=e[J+4>>2],A=(p+16|0)+O(re,12)|0,e[A>>2]=e[J>>2],e[A+4>>2]=s,s=e[J+20>>2],e[A+16>>2]=e[J+16>>2],e[A+20>>2]=s,s=e[J+12>>2],e[A+8>>2]=e[J+8>>2],e[A+12>>2]=s,s=1,(0|re)>0)for(;A=(p+16|0)+O(s,12)|0,e[A>>2]=-262209&e[A>>2],(0|re)>=(0|(s=s+1|0)););if(A=d[r+4|0]|d[r+5|0]<<8|d[r+6|0]<<16|d[r+7|0]<<24,s=d[0|r]|d[r+1|0]<<8|d[r+2|0]<<16|d[r+3|0]<<24,f[0|l]=s,f[l+1|0]=s>>>8,f[l+2|0]=s>>>16,f[l+3|0]=s>>>24,f[l+4|0]=A,f[l+5|0]=A>>>8,f[l+6|0]=A>>>16,f[l+7|0]=A>>>24,A=d[r+12|0]|d[r+13|0]<<8|d[r+14|0]<<16|d[r+15|0]<<24,r=d[r+8|0]|d[r+9|0]<<8|d[r+10|0]<<16|d[r+11|0]<<24,f[l+8|0]=r,f[l+9|0]=r>>>8,f[l+10|0]=r>>>16,f[l+11|0]=r>>>24,f[l+12|0]=A,f[l+13|0]=A>>>8,f[l+14|0]=A>>>16,f[l+15|0]=A>>>24,f[l+16|0]=0,l>>>0<=g>>>0)break r;for(A=d[J+6|0],re=0,s=g;;){for(h=Ht(H,s,(p+16|0)+O(re,12)|0,255&A);A=d[0|s],s=s+1|0,(0|A)!=32;);if(A=0,f[J+6|0]=0,re=re+1|0,!(s>>>0>>0))break}}else{if(e[47352]=0,h=Ht(H,A,r=(p+1584|0)+O(M,12)|0,d[r+6|0]),(0|(s=e[47352]))>d[r+18|0]&&(f[r+18|0]=s,e[47352]=0),!(!(4096&h)|d[0|A]==32))for(;Je(p+624|0,0,150),e[p+624>>2]=538976288,e[p+628>>2]=538976288,f[p+632|0]=32,Ht(H,qA(I,A,s=WA(p+16|0,A)),r,0),d[0|(A=A+s|0)]!=32;);50331648&h&&(Y=(A=Fe|(~e[33264]+NA|0)!=(0|M))?Y:10,A|!cs||(e[cs>>2]=4,Y=10))}if(128&h&&!((0|(r=e[33264]))<=0)){if(A=0,s=r,l=3&r)for(;P=(p+1584|0)+O(s+M|0,12)|0,e[P>>2]=1048576|e[P>>2],s=s-1|0,(0|l)!=(0|(A=A+1|0)););if(r>>>0>=4)for(;A=(p+1584|0)+O(s+M|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],s=s-4|0;);e[33264]=s}}if(l=e[49572],(0|NA)<=(0|(M=M+1|0)))break e;if(!((0|l)<991))break}}if((0|(s=e[47351]))<(0|(g=e[47350]))){for(ie=e[47202],Fe=e[49846],re=e[47352];;){A=(r=e[198304+(s<<2)>>2])>>8;e:{A:switch((31&r)-9|0){case 0:ie=A;break e;case 4:Fe=A;break e;case 3:break A;default:break e}re=r>>>0>=256?A+re|0:0}if(!(!(128&r)&(0|g)>(0|(s=s+1|0))))break}e[47352]=re,e[47351]=s,e[49846]=Fe,e[47202]=ie}e[49572]=l+2,e[(A=190288+(l<<3)|0)>>2]=589824,k[A+4>>1]=i,e[A+8>>2]=589824,k[A+12>>1]=i,r=NA&&e[47199]?Y:10,e[33285]?A=0:(A=e[33283],A=e[A>>2]==e[A+4>>2]),Y=A?r:Y,M=$A,g=0,NA=0,V=I=V-32192|0,e[I+24>>2]=0,e[I+28>>2]=0,e[I+16>>2]=0,e[I+20>>2]=0,e[I+8>>2]=0,e[I+12>>2]=0,e[I>>2]=0,e[I+4>>2]=0,i=e[49572],c=y[190284+(i<<3)>>1];e:{if((0|(s=i-3|0))<0)A=s;else{for(;;){if(g=(0|(r=127&d[(A=190288+(s<<3)|0)+3|0]))<(0|g)?g:r,y[A+4>>1])A=s;else if(A=-1,r=(0|s)>0,s=s-1|0,r)continue;break}if(g>>>0>3)break e}for(;;){if((0|(A=A-1|0))<0)break e;if(64&d[0|(r=190288+(A<<3)|0)]){f[r+3|0]=4;break e}if(!(d[r+3|0]<4))break}}if(A=e[H+292>>2],s=0,(0|i)<=0)g=0;else for(P=-1,g=0;;){r=A,e[H+292>>2]!=(0|A)&&(k[(A=190288+(s<<3)|0)>>1]=32|y[A>>1]),(0|g)>0&&(J=e[(h=190288+(s<<3)|0)+4>>2],e[(l=(A=s-g<<3)+190288|0)>>2]=e[h>>2],e[l+4>>2]=J,(0|P)!=-1&&(k[4+(A+190288|0)>>1]=P),P=-1);e:{if(d[2+((l=s<<3)+190288|0)|0]==21){if(A=d[(h=l+190288|0)+7|0],2&d[0|h])break e;A:if((0|A)!=(0|r)){if(h=d[10+(l+190288|0)|0]-9|0){if((0|h)==12)break A;break e}if(d[18+(l+190288|0)|0]!=21)break e}(0|P)==-1&&(P=(A=y[4+(l+190288|0)>>1])||-1),g=g+1|0}A=r}if((0|i)==(0|(s=s+1|0)))break}if(e[49572]=i-g,ts(A),(r=e[H+36>>2])&&!((0|(A=(g=e[49572])-1|0))<0))for(ie=256&r,_=4&r,Fe=8&r,J=15&r,Xe=16&r,$A=2&r,r=r>>>8&1,s=0;;){if(l=g,i=s,g=A,(0|(A=d[(h=(cA=A<<3)+190288|0)+2|0]))==21){e:{A:{if((0|(s=l-2|0))>=0)for(;;){if(d[2+((A=s<<3)+190288|0)|0]==21)break A;if(A=(0|s)>0,s=s-1|0,!A)break}A=e[H+292>>2];break e}A=d[7+(A+190288|0)|0]}ts(A),A=d[h+2|0]}if(s=i,(A=e[144464+((255&A)<<2)>>2])&&(s=r,!(32&d[0|h]))){s=d[A+11|0],P=0,$A&&((0|(l=d[0|A]))!=118&(0|l)!=82||(i=Xe?0:i,P=1));e:{A:{r:{a:switch((l=253&s)-4|0){case 1:break r;case 0:break a;default:break A}if(J&&(s=1,!i)||(0|(s=i))!=2||(s=2,!(A=d[A+13|0])))break e;f[h+2|0]=A;break e}if(J&&(s=2,!i)||(0|(s=i))!=1||(s=1,!(A=d[A+13|0])))break e;f[h+2|0]=A;break e}s=0,Fe&&(s=l?i:0)}s=A=P?0:s,y[4+(cA+190288|0)>>1]&&(s=A=_?0:A,ie&&(s=A||1))}if(!((0|(A=g-1|0))>=0))break}if(ts(e[H+292>>2]),e[49572]<=0)Xe=-2,s=0;else{for(s=-1,i=0,h=0,Fe=0;;){A=h<<3,(0|s)!=-1&&(k[4+(A+190288|0)>>1]=s),d[(P=A+190288|0)+2|0]==21&&ts(d[7+(A+190288|0)|0]),J=e[49572];e:{if(!(32&d[0|(l=A+190288|0)])){i=(0|(r=J-1|0))>(0|h)?e[144464+(d[10+(A+190288|0)|0]<<2)>>2]:i,!(y[l+12>>1]|(0|r)==(0|h))&&(re=0,d[i+11|0]|!i)||(re=1),g=d[P+2|0];A:if(!((0|(Xe=e[49848]))<=0))for(r=A+190288|0,s=0;;){if(ie=O(s,3),d[ie+199408|0]==(255&g)&&!((_=d[2+(ie+199408|0)|0])&(1^re)|(4&d[r+3|0]?2&_:0)|(y[r+4>>1]?0:4&_))){if(g=d[1+(ie+199408|0)|0],f[P+2|0]=g,!(2&d[e[144464+(g<<2)>>2]+4|0])|d[r+3|0]<2)break A;f[r+3|0]=0;break A}if((0|Xe)==(0|(s=s+1|0)))break}if(!(255&g)){s=y[4+(A+190288|0)>>1];break e}}s=e[l+4>>2],A=(I+32|0)+(Fe<<5)|0,r=e[l>>2],e[A>>2]=r,e[A+4>>2]=s,r=e[144464+(r>>>14&1020)>>2],e[A+8>>2]=r,f[A+17|0]=d[r+11|0],Fe=Fe+1|0,s=-1}if(!((0|Fe)<1e3&(0|J)>(0|(h=h+1|0))))break}if(g=0,s=0,!((0|(Xe=Fe-2|0))<=0))for(;;){e:if(y[4+((I+32|0)+(g<<5)|0)>>1]){for(r=(0|g)>(0|Xe)?g:Xe,s=0,A=g;;){if((0|A)!=(0|r)){if(s=(0|s)>(0|(l=d[3+((i=I+32|0)+(A<<5)|0)|0]))?s:l,!y[4+(i+((A=A+1|0)<<5)|0)>>1])continue}else A=r;break}if((0|A)<=(0|g))break e;if(r=~g+A|0,i=0,l=A-g&7)for(;f[6+((I+32|0)+(g<<5)|0)|0]=s,g=g+1|0,(0|l)!=(0|(i=i+1|0)););if(r>>>0<7)break e;for(;f[(r=(I+32|0)+(g<<5)|0)+6|0]=s,f[r+38|0]=s,f[r+70|0]=s,f[r+102|0]=s,f[r+134|0]=s,f[r+166|0]=s,f[r+198|0]=s,f[r+230|0]=s,(0|(g=g+8|0))!=(0|A););}else A=g+1|0;if(g=A,!((0|Xe)>(0|A)))break}}for(e[I+40>>2]=e[36125],ts(e[H+292>>2]),Te=(0|s)<4,h=1,ie=1,J=0,r=0,s=0,$A=0;;){e:{A:{r:{a:{if(r){if(i=(A=I+32|0)+((P=s-1|0)<<5)|0,J=d[2+(A+(s<<5)|0)|0],(0|P)>0){if(A=h-(s=(0|h)>0)|0,P>>>0>=(g=s?h:2)>>>0)for(;l=(s=(I+32|0)+(g<<5)|0)-32|0,h=e[s+12>>2],e[l+8>>2]=e[s+8>>2],e[l+12>>2]=h,h=e[s+4>>2],e[l>>2]=e[s>>2],e[l+4>>2]=h,h=e[s+28>>2],e[l+24>>2]=e[s+24>>2],e[l+28>>2]=h,h=e[s+20>>2],e[l+16>>2]=e[s+16>>2],e[l+20>>2]=h,(0|P)>=(0|(g=g+1|0)););h=A}re=e[144464+(J<<2)>>2],e[i>>2]=0,e[i+4>>2]=0,e[i+24>>2]=0,e[i+28>>2]=0,e[i+16>>2]=0,e[i+20>>2]=0,e[i+8>>2]=0,e[i+12>>2]=0,f[i+2|0]=r,A=e[144464+(r<<2)>>2],e[i+8>>2]=A,J=i}else{if((0|s)>=(0|Xe)|(0|$A)>=997)break a;l=d[(i=(g=s<<5)+(I+32|0)|0)+2|0],A=e[144464+(l<<2)>>2],e[i+8>>2]=A,P=y[i+4>>1],(0|l)==21&&ts(d[7+(g+(I+32|0)|0)|0]),h=P?s:h,re=e[144464+(d[i+34|0]<<2)>>2],e[i+40>>2]=re,P=s}if(!A){r=0,s=P+1|0;continue}if(Rt(H,256,i,I+32040|0,I),(0|(s=e[I+32052>>2]))>0&&(g=(I+32|0)+(P<<5)|0,re=e[144464+(s<<2)>>2],e[g+40>>2]=re,f[g+34|0]=s,f[g+49|0]=d[re+11|0]),s=0,r)r=A;else if((0|(g=e[I+32056>>2]))<=0)r=A;else{r=e[144464+(g<<2)>>2],e[i+8>>2]=r,s=d[i+2|0],f[i+2|0]=g,g=y[i>>1];n:if(d[r+11|0]!=2)k[i>>1]=65531&g;else{if(k[i>>1]=4|g,d[A+11|0]==2)break n;f[i+3|0]=0}Rt(H,256,i,I+32040|0,I)}if((0|(l=e[I+32048>>2]))<=0)g=r;else{if(g=e[144464+(l<<2)>>2],f[i+2|0]=l,e[i+8>>2]=g,A=d[g+11|0],Fe=1,(0|l)==1){cA=(0|A)==2;break A}l=y[i>>1];n:if((0|A)!=2)k[i>>1]=65531&l;else{if(k[i>>1]=4|l,d[r+11|0]==2)break n;f[i+3|0]=0}Rt(H,256,i,I+32040|0,I)}if(cA=0,(0|(A=d[g+11|0]))!=2){Fe=0;break A}if(cA=1,Fe=0,A=2,d[i+3|0]>1){NA=0;break A}l=i+3|0,NA=NA+1|0,r=i;n:{if(8&(_=e[H+12>>2])){for(;;){o:switch(_=r,r=r+32|0,d[_+49|0]){case 0:break A;case 2:break o;default:continue}break}if(d[0|(r=_+35|0)]>1)break A;if(d[i+6|0]<=3&&(f[0|l]=0),d[_+38|0]<4)break n;break A}if(1&NA|(0|NA)<2)break A;if(2&_)break r;if(Te)r=l;else if(r=l,y[i+36>>1])break r}f[0|r]=0;break A}e[36423]=$A+2,k[(A=145840+($A<<5)|0)>>1]=0,f[A+2|0]=9,f[A+20|0]=2,e[A+12>>2]=Y,k[A+4>>1]=c,f[A+17|0]=0,f[A+18|0]=0,e[A+8>>2]=e[36125],k[A+32>>1]=0,f[A+34|0]=9,f[A+52|0]=0,e[A+44>>2]=0,k[A+36>>1]=0,f[A+49|0]=0,f[A+50|0]=0,e[A+40>>2]=e[36126],ts(e[H+292>>2]),V=I+32192|0;break e}NA=1}if(!(8&(r=y[i+32>>1]))|(0|P)<=0||(l=d[re+11|0])>>>0>15|!(1<>1]=8^r),ve=y[i+36>>1]){A:if(r=e[H+4>>2]){r:switch(0|A){default:s=512&r?11:s;break;case 0:break A;case 2:break r}if(d[re+11|0]==2){(l=12&r)&&(s=(0|l)!=12?23:11);r:if(cA){a:switch(3&r){case 2:s=10;break r;case 0:break r;default:break a}s=23}d[i+35|0]<4||(s=256&r?10:s)}}if(!((0|i)==(0|J)|(0|$A)<=0)){A:{r:{a:switch(0|(r=7&e[H>>2])){case 0:break A;case 1:break a;default:break r}if(s-12>>>0>4294967293)break A}s=d[r+101916|0]}s=e[47205]>0?24:s}}if(e[i+72>>2]=e[144464+(d[i+66|0]<<2)>>2],r=e[I+32060>>2],r=s||r||s,!Fe){f[(l=(_=$A<<5)+145840|0)+17|0]=A,e[l+8>>2]=g,f[l+16|0]=0,k[l>>1]=y[i>>1],f[l+3|0]=15&d[i+3|0],f[l+6|0]=d[i+6|0],s=d[i+7|0],k[l+4>>1]=0,f[l+7|0]=s,Fe=d[g+10|0],f[l+2|0]=Fe;A:if(s=y[i+4>>1]){if(k[l+4>>1]=s,M=1&M?5:1,f[(i=_+145840|0)+20|0]=M,s=ie,ie=0,!s){M=0;break A}f[i+20|0]=8|M,M=0}else f[20+(_+145840|0)|0]=0;e[(s=_+145840|0)+12>>2]=e[I+32084>>2]<<1,!ve|(0|Fe)!=24||(0|(i=e[47205]))<=0||(e[l+8>>2]=e[36126],e[s+12>>2]=O(i,14)),(1<>>0<=8:0)|2&d[g+7|0]&&(e[s+12>>2]=128,f[l+16|0]=0),f[(A=_+145840|0)+21|0]=255,f[A+22|0]=255,k[A+18>>1]=5120,$A=$A+1|0}s=P+1|0;continue}break}k[88922]=1,e[44462]=0,rs&&(k[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]),f[190268]=RA>>>19&1,kn&&(e[kn>>2]=RA<<14>>31&189360)}V=p+6832|0,Xe=e[47192],cA=e[t+12>>2],r=0,l=0,h=0,_=0,J=0,vt=0,Y=0,V=c=V-6e3|0;e:if(!((0|(i=($A=e[36423])-1|0))<=0)){for(;f[2+(c+O(r,6)|0)|0]=0,4&d[(A=r<<5)+145840|0]?(s=c+O(_,6)|0,f[s+1|0]=0,A=A+145840|0,f[s+3|0]=d[A+49|0],A=d[A+3|0],f[0|s]=A,_=_+1|0,vt=(A>>>0>3)+vt|0):d[e[8+(A+145840|0)>>2]+10|0]!=27|(0|_)<=0||(A=(c+O(_,6)|0)-4|0,f[0|A]=4|d[0|A]),(0|i)!=(0|(r=r+1|0)););if(f[c+O(_,6)|0]=0,_)if(e[Xe+148>>2]==1){if(!((0|$A)<=0)){for(A=-2&$A,s=1&$A,r=145840;h=d[r+17|0]==2&&d[r+3|0]>3?l:h,h=d[r+49|0]==2&&d[r+35|0]>3?1|l:h,r=r- -64|0,l=l+2|0,(0|A)!=(0|(J=J+2|0)););!s|d[r+17|0]!=2||(h=d[r+3|0]>3?l:h)}if(f[(g=(A=h<<5)+145840|0)+3|0]=7,e[Xe+212>>2]==30313&&(d[(A=A+145840|0)+7|0]||(f[A+7|0]=q(55),$A=e[36423])),!((0|$A)<=0)){for(J=0,r=145840,A=145840,l=P=e[36125],i=0,ie=1;;){if(d[r+17|0]?M=e[36125]:(M=e[36125],P=(s=d[e[r+8>>2]+14|0]>50)?M:P,ie|=s),s=d[r+20|0]?M:l,4&d[0|r]){M=d[r+7|0],l=e[144464+(M<<2)>>2];A:{if((0|(_=e[Xe+212>>2]))==6840683){if(e[s>>2]!=49||(_=e[l>>2]-49|0)>>>0>5|!(1<<_&41))break A;f[A+7|0]=q(50),_=e[Xe+212>>2]}if(!((0|_)!=6516078&(0|_)!=31336)){_=0,M||(i=q(1&(_=i|ie)?13621:12593),f[r+7|0]=i,l=e[144464+(i<<2)>>2]),(0|h)!=(0|J)|(1024|e[l>>2])!=13621||(f[g+3|0]=6),e[P>>2]==3420466&&(f[A+7|0]=q(e[l>>2]==3420466?13619:12594));r:{if(e[s>>2]==12597){if((0|(M=e[l>>2]))!=12597)break r;f[A+7|0]=q(13109)}M=e[l>>2]}i=_,(0|M)==12593&&((0|(M=e[P>>2]))==13621&&(f[r+7|0]=q(12850),M=e[P>>2]),(0|M)==13619&&(f[r+7|0]=q(13107),M=e[P>>2]),(0|M)==3420466&&(f[r+7|0]=q(13364)),f[r+3|0]=0)}}ie=0,P=l,A=r}else l=s;if(r=r+32|0,!((0|(J=J+1|0))<(0|(s=e[36423]))))break}if(l=0,r=145840,!((0|s)<=0))for(;4&d[0|r]&&((A=d[r+7|0])||(f[r+7|0]=17,A=17),A=e[144464+(A<<2)>>2],f[r+21|0]=d[A+12|0],f[r+22|0]=d[A+13|0]),r=r+32|0,(0|s)!=(0|(l=l+1|0)););}}else{if(A=e[Xe+152>>2],A=Xe+O(Te=(0|A)>7?1:A,6)|0,H=d[0|(Te?A+637:Xe+157)],RA=d[0|(Te?636+(A+cA|0):156+(Xe+cA|0))],f[133068]=(0|cA)==4,!((0|_)<=0)){for(Fe=_-1|0,re=cA-1>>>0>1,s=0,i=0;;){p=c+O(i,6)|0,Y=((A=d[0|p])<<24>>24>3)+Y|0;A:if((0|A)==6){A=i-3|0,r=i;r:{for(;;){if((0|r)<=(0|s)|(0|A)>=(0|r))break r;a:switch(g=c+O(r=r-1|0,6)|0,d[0|g]-4|0){case 2:break r;case 0:break a;default:continue}break}f[0|g]=3}r=i;r:{for(;;){if((0|_)<=(0|(r=r+1|0)))break r;a:switch(d[c+O(r,6)|0]-4|0){case 0:break r;case 2:break a;default:continue}break}f[p+2|0]=2,f[0|p]=5,A=s;break A}if(d[0|p]==6){f[p+2|0]=2,I=0;r:if((0|_)<=(0|(A=i+1|0)))g=i,ar=0;else if(ar=1,(0|(l=f[c+O(A,6)|0]))>4)g=i;else{for(h=(vt-Y|0)>1,g=i;;){if(r=A,(255&l)==4&&(A=h+1|0,h=1,!((0|A)<=1))){A=r;break r}if(ar=(0|_)>(0|(A=r+1|0)),(0|A)==(0|_))break;if(g=r,(0|(l=f[c+O(A,6)|0]))>4)break r}g=Fe,A=_}l=-1,M=0,h=0,ie=-1,J=0,P=-1;r:{if((0|(r=s))<(0|A)){for(;l=(ve=(0|(P=f[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,I=(J=(0|h)>(0|P))?I:(0|h)<(0|P)?r:M,ie=ve?r:ie,M=J?M:r,ve=(0|r)!=(0|g),h=J?h:P,r=r+1|0,ve;);if(J=M,P=ie,(0|l)>=0)break r}l=A,M=J,ie=P}e[33269]=g-M,e[33268]=l,e[33270]=M,e[33271]=I;r:if(d[133068])e[33270]=A,e[33271]=A;else if((0|ie)>=0){if((0|A)!=(0|_))break r;f[c+O(ie,6)|0]=7}else f[c+O(M,6)|0]=7;Vr(c,Te,s,A,RA),!ar&!!(0|cA)||(RA=re?d[Xe+156|0]:d[Xe+157|0])}else A=s}else A=s;if((0|A)>=(0|i))s=A;else if(4&d[p+2|0]){for(s=i+1|0,l=-1,ie=0,M=0,h=0,r=A,I=-1;l=(J=(0|(g=f[c+O(r,6)|0]))>3)&&(0|l)<0?r-A|0:l,ie=(P=(0|g)<(0|h))?ie:(0|g)>(0|h)?r:M,I=J?r:I,M=P?M:r,J=(0|r)!=(0|i),h=P?h:g,r=r+1|0,J;);e[33269]=i-M,e[33270]=M,e[33271]=ie,e[33268]=(0|l)<0?s:l,d[133068]?(e[33270]=s,e[33271]=s):(0|I)>=0?f[c+O(I,6)|0]=7:f[c+O(M,6)|0]=7,Vr(c,Te,A,s,H)}else s=A;if((0|_)==(0|(i=i+1|0)))break}if(!((0|s)>=(0|_))){for(l=-1,ie=0,M=0,h=0,r=s,I=-1;l=(g=(0|(A=f[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,ie=(i=(0|A)<(0|h))?ie:(0|A)>(0|h)?r:M,I=g?r:I,M=i?M:r,h=i?h:A,(0|_)!=(0|(r=r+1|0)););e[33270]=M,e[33271]=ie,e[33269]=~M+_,e[33268]=(0|l)<0?_:l,d[133068]?(e[33270]=_,e[33271]=_):(0|I)>=0?f[c+O(I,6)|0]=7:f[c+O(M,6)|0]=7,Vr(c,Te,s,_,RA)}}if((0|$A)<=0)break e;for(r=0,J=0;;){if(P=s=(g=r<<5)+145840|0,A=c+O(J,6)|0,l=d[0|A],f[s+3|0]=l,4&d[0|s]){i=g+145840|0,s=d[A+4|0],f[i+21|0]=s,h=d[A+5|0],f[i+16|0]=0,f[i+22|0]=h;A:{if(1&(M=d[A+2|0]))A=2;else{if(l>>>0<6)break A;A=d[A+1|0]}f[i+16|0]=A}s>>>0<=(255&h)>>>0?(A=h,h=s):(f[i+21|0]=h,f[i+22|0]=s,A=s),(s=d[7+(g+145840|0)|0])&&(A=(255&A)+(255&h)>>>1|0,s=e[144464+(s<<2)>>2],f[i+22|0]=A+d[s+13|0],f[i+21|0]=A+d[s+12|0]),2&M&&(f[P+3|0]=8|l),J=J+1|0}if((0|$A)==(0|(r=r+1|0)))break}}}if(V=c+6e3|0,J=e[47192],r=0,re=0,I=0,Y=0,V=c=V-160|0,e[36423]>=2)for(cA=e[30450],l=1;;){if(l=(A=l)+1|0,_=d[(i=(h=A<<5)+145840|0)+3|0],2&(M=y[i>>1])){for(;(31&(g=e[198304+(Y<<2)>>2]))==2&&(Ws(127&g,g>>>8|0),e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,M=e[50786],P=e[32972],(0|(s=e[P+84>>2]))>0&&(M=(0|O(s,M))/100|0),ie=d[((0|(s=(0|M)>=359?359:M))<=80?80:s)+101856|0],s=(0|(s=(0|M)>=450?450:M))>399?6:(0|s)>379?7:ie,e[32526]=(0|O(s,e[P+72>>2]))/256,e[32527]=(0|O(s,e[P+76>>2]))/256,e[32528]=(0|O(s,e[P+80>>2]))/256,s>>>0>7||(P=s-1|0,e[32528]=P,e[32526]=s,e[32527]=P)),Y=Y+1|0,!(128&g););M=y[i>>1]}P=l<<5,ie=A-1|0,s=7&_;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:switch(RA=d[17+(h+145840|0)|0],0|(g=4&M?2:RA)){case 2:break n;case 3:case 8:break o;case 5:break c;case 6:case 7:break u;case 4:break l;case 0:break i;default:break e}r=0;break e}if((0|(A=d[17+(145840+(ie<<5)|0)|0]))!=6?(s=(0|A)==4?60:e[34063]>0||s>>>0<4?48:60,f[18+(h+145840|0)|0]=s):(s=25,f[18+(h+145840|0)|0]=25),!(16&d[0|J])|!d[20+(h+145840|0)|0]||(f[18+(h+145840|0)|0]=60,s=60),64&d[e[8+(h+145840|0)>>2]+6|0]&&(s=s+30|0,f[18+(h+145840|0)|0]=s),r=0,!(8&M))break e;f[18+(h+145840|0)|0]=d[J+164|0]+s;break e}!(i=d[(A=h+145840|0)+20|0])|1&f[e[A+8>>2]+7|0]&d[17+(145840+(ie<<5)|0)|0]==2||(f[18+(h+145840|0)|0]=15),s=d[17+(P+145840|0)|0],8&d[e[8+(h+145840|0)>>2]+4|0]|s|d[17+(145840+(ie<<5)|0)|0]!=8||(f[18+(h+145840|0)|0]=25),64&d[e[8+((A=ie<<5)+145840|0)>>2]+5|0]&&(f[18+(h+145840|0)|0]=30),!i|!(16&e[J>>2])||(f[18+(h+145840|0)|0]=30);u:if(d[20+(P+145840|0)|0]|!(32&d[e[8+(h+145840|0)>>2]+4|0])|(0|s)!=4)e[12+(h+145840|0)>>2]=256;else{if(i=h+145840|0,d[17+(A+145840|0)|0]==2){e[i+12>>2]=200;break u}e[i+12>>2]=150}if((0|g)!=7||(re|=(0|s)==2,(254&d[17+(A+145840|0)|0])!=2))break e;e[12+(h+145840|0)>>2]=e[12+(A+145840|0)>>2]+255>>>1;break e}(254&(s=d[17+((A=ie<<5)+145840|0)|0]))==6|(0|s)==3|32&e[e[8+(A+145840|0)>>2]+4>>2]&&(f[18+(h+145840|0)|0]=30);c:if((254&(i=d[17+(P+145840|0)|0]))==2){re=d[20+(P+145840|0)|0]&&(0|i)!=2?re:1,f[(i=h+145840|0)+18|0]=40,_=0;u:{l:switch(0|s){case 0:if((A=e[12+(A+145840|0)>>2])>>>0>39)break u;_=40-A|0;break u;case 2:break u;default:break l}if(d[20+(h+145840|0)|0])break c;_=20;l:switch(s-3|0){case 1:if(_=0,!(8&d[e[8+(A+145840|0)>>2]+4|0]))break u;break c;case 0:break u;case 5:break l;default:break c}_=12}f[i+18|0]=_}if(!(16&d[0|J])|!d[20+(h+145840|0)|0]||d[(A=h+145840|0)+18|0]>19)break e;f[A+18|0]=20;break e}i=d[J+296|0],g=s=h+145840|0,e[s+12>>2]=256,f[s+19|0]=i;o:if(d[s+20|0]){M=25;c:switch(d[17+(145840+(ie<<5)|0)|0]-2|0){case 0:if(M=12,1&f[e[8+(h+145840|0)>>2]+7|0])break o;break;case 1:break c;default:break o}f[18+(h+145840|0)|0]=M}if((0|(P=d[17+(P+145840|0)|0]))==2){I=1;break e}if(f[(i=h+145840|0)+22|0]=r,(254&d[17+((s=ie<<5)+145840|0)|0])==2)break a;if(s=r,(0|(g=e[36423]))<=(0|A))break A;for(;;){if(d[17+((s=A<<5)+145840|0)|0]==2){s=d[22+(s+145840|0)|0],f[i+22|0]=s;break A}if((0|g)==(0|(A=A+1|0)))break}break r}if(Xe=h+145840|0,Fe=s^s>>>0<2,s=($A=8&_)?25:d[296+(Fe+J|0)|0]-I|0,f[Xe+19|0]=s,(e[36423]-3|0)>(0|A)||(0|(g=255&s))<=(0|(s=e[J+52>>2]))||(f[Xe+19|0]=s),s=0,_=0,!(M=d[i+52|0]))for(;g=e[i+40>>2],_=d[i+49|0]==2?(~e[g+4>>2]>>>20&1)+_|0:_,s=d[g+10|0]==27?2:s,g=i,i=i+32|0,!(M=d[g+84|0]););g=Xe+96|0,A=(Te=A+2<<5)+145840|0,e[34063]=_,p=d[e[i+40>>2]+10|0],P=P+145840|0,d[17+(Te+145840|0)|0]|d[e[P+8>>2]+10|0]!=23?(i=g,g=A,A=P):i=h+145968|0,P=d[e[g+8>>2]+15|0];n:if(_)P=d[e[J+96>>2]+(d[e[A+8>>2]+15|0]+O(P,10)|0)|0],d[A+17|0]!=8|(254&d[g+17|0])!=4||(P=8&d[e[i+8>>2]+4|0]?P-15|0:P);else{if(H=e[J+100>>2],Te=d[e[A+8>>2]+15|0],i=d[A+20|0],P=d[H+(Te+O(i|d[g+20|0]?(0|P)==1:P,10)|0)|0],!i|!(32&d[0|J]))break n;P=d[1+(H+O(Te,10)|0)|0]+P>>>1|0}i=M>>>1|0,Te=!_,M=(0|(P=(0|O(e[130104+(_?(0|_)==1?4:8:0)>>2],P))/128|0))<=8?8:P;n:if((0|Fe)!=7)$A&&(M=e[J+200>>2]+M|0);else{if(M=(P=e[J+200>>2])+M|0,!$A)break n;M=((0|P)/2|0)+M|0}P=i&Te|(0|p)==27,(i=y[304+(J+(Fe<<1)|0)>>1])||(i=y[J+316>>1]),M=O(i<<16>>16,M),(_=d[(i=h+145840|0)+7|0])&&(Fe=d[e[144464+(_<<2)>>2]+14|0])&&(M=(0|O(M,Fe))/100|0),(P|(0|s)==2)==1&&(2097152&(s=e[J+12>>2])||(M=(0|O(262144&s?282:256+((280-(d[e[8+(h+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,M))/256|0)),Fe=h+145840|0,s=O(e[32526],e[J+196>>2]),$A=(0|RA)!=2?256:(0|((0|s)>(0|M)?M:s))/128|0,e[Fe+12>>2]=$A,(s=d[Fe+16|0])>>>0>=19&&(ci(84371,28,cA),f[Fe+16|0]=0,_=d[i+7|0],s=0),M=s+1|0,(s=255&_)?(ya(s,c+8|0),s=_i(e[c+132>>2])):s=e[129280+((255&M)<<2)>>2],P=h+145840|0,1&(I|re)&&(i=(h=ie<<5)+145840|0,I=d[0|s],s=d[P+21|0],s=((0|O(I,d[P+22|0]-s|0))/256|0)+s|0,f[i+22|0]=s,r=(s-(r=(0|s)==255?255:r)|0)>16?s-16|0:r,f[i+21|0]=r,i=0,(0|r)<(0|s)&&(f[Fe+16|0]=M,i=2),e[(r=h+145840|0)+12>>2]=$A,f[r+16|0]=i,s=d[Xe+19|0],f[r+19|0]=d[r+17|0]!=3&&s>>>0>18?18:s),r=(0|RA)!=2,i=-2&(s=y[A>>1]),k[A>>1]=i;n:{o:{c:switch(d[A+17|0]-3|0){case 5:if(d[g+17|0]==2)break n;i=1|s;break o;case 0:break c;default:break n}if(k[A>>1]=1|s,d[g+17|0]!=2&&e[e[A+8>>2]>>2]!=12146)break n}k[A>>1]=i}r?(0|(A=r<<4))<=((s=d[P+22|0])-(i=d[P+21|0])|0)||(i=(0|(A=s-A|0))>0?A:0,f[P+21|0]=i):(s=d[P+22|0],i=d[P+21|0]),A=255&i,r=((0|O(d[e[129280+(d[Fe+16|0]<<2)>>2]+127|0],s-A|0))/256|0)+A|0,I=0,re=0;break e}i=e[12+(s+145840|0)>>2],e[g+12>>2]=i,(0|RA)==3&&(i=e[32526],e[g+12>>2]=i),s=r;a:switch(P-5|0){case 0:e[g+12>>2]=(O(i,160)>>>0)/100;break r;case 2:break a;default:break A}e[g+12>>2]=(O(i,120)>>>0)/100}s=r}re=0,f[(A=h+145840|0)+16|0]=0,i=A,s=(A=255&s)-16|0,f[i+21|0]=A>>>0>=s>>>0?s:0}if(!(e[36423]>(0|l)))break}if(V=c+160|0,15&(i=e[47197])|e[36456]){A=0,g=0,V=s=V-80|0;e:if((r=e[33222])||(e[33223]=500,r=zA(500),e[33222]=r,r)){if(!((e[36423]-2|0)<2)){for(A=i>>8,J=128&i?0:A,_=A&i<<24>>31,P=2&i,i=s+32|1,h=1;;){if(QA(s,e[(l=(ie=h<<5)+145840|0)+8>>2],l,P,s+72|0),A=s+32|0,(13&(r=d[l+20|0]))==1&&(f[s+32|0]=32,A=i),!J|(0|J)!=32&!!(0|r)|h>>>0<2||(WA(s+76|0,s),e[s+76>>2]-880>>>0>4294967103||(A=mr(J,A)+A|0)),4&d[0|l]&&((r=d[3+(ie+145840|0)|0])>>>0<2||(r=r>>>0>=5?5:r,r=P?r>>>0>3?712:716:f[r+94144|0],e[s+76>>2]=r,A=mr(r,A)+A|0)),M=0,e[s+72>>2]=0,d[0|(r=s)])for(;r=WA(s+76|0,r)+r|0,e[s+72>>2]>>>M-1&1|!_|(0|M)<=0||(I=e[s+76>>2])-880>>>0>4294967103||oi(I)&&(A=mr(_,A)+A|0),M=M+1|0,A=mr(e[s+76>>2],A)+A|0,d[0|r];);if(d[e[l+8>>2]+10|0]!=21&&(8&(r=y[l>>1])&&(A=QA(A,e[36128],l,P,0),r=y[l>>1]),!(4&r)|d[17+(ie+145840|0)|0]==2||(A=QA(A,e[36136],l,P,0)),(r=d[7+(ie+145840|0)|0])&&(A=QA(A,e[144464+(r<<2)>>2],l,P,0))),(A=(l=A-(s+32|0)|0)+g|0)>>>0>2]=r,tr(e[47195],84367,t)),(A=e[36456])&&ZA[0|A](r)}d[190280]?(e[36423]=0,A=1):(hA(0),(A=e[t+8>>2])?(V=r=V+-64|0,St(r,A,60),tn(r,1),s=0,(A=at(r,0))&&(s=A,d[202976]&&(s=at(202976,2))),V=r- -64|0,e[44468]=s):s=e[44468],A=1,s&&(r=e[32972],(s=zA(1344))&&(r=qA(s,r,1344),s=216192+(e[50758]<<4)|0,e[s>>2]=11,e[s+8>>2]=r,r=e[50758]+1|0,e[50758]=(0|r)<=169?r:0),e[44468]=0))}else A=0,f[190280]=0;else A=0,e[36423]=0,e[50758]=0,e[50757]=0;return V=t+16|0,A}function Ue(A,t){var r=0,s=0,i=0,l=0;r=1073741825;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{M:{Q:{F:{Ae:{R:{q:{_:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{z:{Se:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{Re:{je:{We:{ke:{sA:{ae:{Ye:{Ve:{Ee:{He:{G:{Me:{Y:{mA:{hA:{CA:{bA:{IA:{wA:{kA:{EA:{MA:{vA:{xA:{BA:{yA:{DA:{TA:{PA:{GA:{QA:{FA:{SA:{OA:{_A:{zA:{NA:{LA:{RA:{jA:{WA:{YA:{VA:switch(0|t){case 0:t=A-9>>>0<5?1073741825:0,t=(A=(0|A)==133)?1073741825:t;break F;case 1:d:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{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,s=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 ne;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 P;case 58:break O;case 57:break D;case 45:break T;case 43:break X;case 32:break V;case 0:break t;default:break S}}if(r=16,(0|A)!=173)break d;break t}if(r=0,s=1,A-1536>>>0<6)break t;s=(0|A)==1757,t=(A=(0|A)==1564)?2:0;break Q}if(r=0,s=1,(0|A)!=2274)break d;break t}return fe=64,4}if(r=1073741826,(-2&A)==8206)break t;if(A-8234>>>0<5)return fe=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}fe=536870976;break y}fe=268435520;break y}fe=-2147483584;break y}fe=134217792;break y}fe=67108928;break y}fe=1073741888;break y}if(r=131072,s=64,A-917536>>>0<96)break t}break s;case 2:d:{S:{P:{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 P;break se}if((0|t)<=918271){if((0|t)==917760)break S;if(r=4194304,(0|t)!=918016)break d;break t}if((0|t)==918272|(0|t)==918528)break se;if(r=4194304,(0|t)!=918784)break d;break t}if((0|t)<=920319){if((0|t)<=919551){if((0|t)==919040)break se;if(r=4194304,(0|t)!=919296)break d;break t}if((0|t)==919552|(0|t)==919808)break se;if(r=4194304,(0|t)!=920064)break d;break t}if((0|t)<=920831){if((0|t)==920320)break se;if(r=4194304,(0|t)!=920576)break d;break t}if((0|t)==920832|(0|t)==921088)break se;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 se;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:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{le:{if((0|(t=-256&A))<=7679){if((0|t)<=767){if(!t)break le;if((0|t)==256)break ne;if((0|t)!=512)break s;if((0|A)!=585)break ee;break U}if((0|t)==768)break Z;if((0|t)==1024)break V;if((0|t)!=7424||(r=16777216,(0|A)!=7574))break s;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 s;break t}if((0|t)<=120319){if((0|t)==119808)break D;if((0|t)!=120064)break s;if(A>>>0>=120070)break O;break k}if((0|t)==120320)break P;if((0|t)!=120576)break s;if(A>>>0>=120597)break S;break k}if(r=768,A-97>>>0<6)break t;if(r=16777216,A-105>>>0>=2)break s;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 s;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 s;break t}s=(A=!(A-1110&-3))>>>8|0,A<<=24;break N}s=(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 YA;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 s;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 s;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 s;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 s}break U;case 7:d:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{H:{ie:{ue:{ve:{xe:{if((0|(t=-256&A))<=11263){if((0|t)<=3583){if((0|t)<=1535){if((0|t)==512)break xe;if((0|t)==768)break ve;if((0|t)!=1280||(r=4096,(0|A)!=1369))break s;break t}if((0|t)==1536)break ue;if((0|t)==1792)break ie;if((0|t)!=2304||(r=4096,(0|A)!=2417))break s;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 s;break t}if((0|t)==7168)break ce;if((0|t)==7424)break E;if((0|t)!=8192)break s;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 ne;if((0|t)!=12288)break s;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 V;if((0|t)==42496)break X;if((0|t)!=42752)break s;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 s;break t}if((0|t)==65280)break P;if((0|t)==92928)break S;if((0|t)!=93952)break s;if(r=4096,A-94099>>>0<13)break t;if(r=8192,(-2&A)!=94176)break s;break t}if(r=16797696,(0|A)==690)break t;if(A-688>>>0<9)return fe=0,20480;if(A-697>>>0<7)break g;if((0|(t=-2&A))==704)return fe=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 B}t=(0|A)==890?20480:0,t=(A=(0|A)==884)?4096:t;break F}if(r=8192,(0|A)==1600)break t;if(r=4096,A-1765>>>0>=2)break s;break t}if(r=4096,(-2&A)==2036)break t;if(r=8192,(0|A)!=2042)break s;break t}t=(A=!(A-3654&-129))>>>19|0,A<<=13;break M}if(r=8192,(0|A)!=6211)break s;break t}if(r=12288,(0|A)==7291)break t;if(r=4096,A-7288>>>0>=6)break s;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 s;break t;case 0:case 4:break E}return fe=0,16793600}return fe=0,16384}if(r=16384,A-8336>>>0>=13)break s;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 s;break t}if(A-12445>>>0<2)break t;if((0|A)==12540)break d}if(A-12541>>>0>=2)break s;break t}if(r=8192,(0|A)!=40981)break s;break t}if((0|A)==42508)break x;if((0|A)==42623)break g;if(r=20480,(-2&A)!=42652)break s;break t}if((0|A)==42864)return fe=0,16384;if((0|A)==42888)break g;if(r=20480,(-2&A)!=43e3)break s;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 x;if(r=8192,A-43763>>>0>=2)break s;break t}if(r=12288,(0|A)==65392)break t;if(r=135168,(-2&A)!=65438)break s;break t}if(r=8192,(-2&A)==92994)break t;break s}return fe=0,12288;case 8:r=128;d:{S:{P:{O:{D:{T:{X:{V:{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 V;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],s=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 S;break Se}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 P;if((0|t)!=126464)break v;break z}s=(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 Se;break z}if((t=A-64014|0)>>>0>=28)break v;r=e[(t=81480+(t<<3)|0)>>2],s=e[t+4>>2];break z;case 10:d:{S:{P:{O:{D:{T:{if((0|(t=-256&A))<=119807){if((0|t)<=8447){if(!t)break T;if((0|t)!=768)break s;switch(r=128,A-976|0){case 0:case 1:case 2:case 36:case 37:break t;default:break s}}if((0|t)==8448)break D;if((0|t)!=65280||(r=256,A-65313>>>0>=6))break s;break t}if((0|t)<=120319){if((0|t)==119808)break O;if((0|t)!=120064)break s;if(A>>>0>=120070)break P;break k}if((0|t)==120320)break S;if((0|t)!=120576)break s;if(A-120772>>>0>=8)break d;break k}if(r=768,A-65>>>0>=6)break s;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 s;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 s;break t}if(A-120540>>>0<31|A>>>0<120486)break k;if(r=128,A-120488>>>0>=25)break s;break t}if(A-120714>>>0<31|A-120598>>>0<31)break k;if(r=128,A-120656>>>0<31)break t;break s;case 11:d:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{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 fe=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 ne}}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 V;if((0|t)!=43520)break f;return fe=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 F}if((0|t)==70912)break O;if((0|t)==71168)break P;if((0|t)!=119040)break f;switch(r=131072,A-119141|0){case 8:break g;case 1:break s;case 0:break t;default:break S}}t=(0|A)==2519?132096:1024,t=(A=(0|A)==2494)?132096:t;break F}if(r=132096,(0|A)!=2903)break f;break t}if((0|A)==3006)return fe=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 B}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 B}t=(0|A)==7415?4096:1024,t=(A=(0|A)==7393)?4096:t;break F}t=(0|A)==43456?4096:1024,t=(A=(0|A)==43347)?4096:t;break F}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:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Pe:{Ge:{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 s;if(A-1425>>>0>=17)break fA;break g}if((0|t)<=2047){if((0|t)==1536)break Ce;if((0|t)!=1792)break s;if(r=1024,(0|A)==1809)break t;if((-16&A)!=1840)break dA;return fe=0,5120}if((0|t)==2048)break AA;if((0|t)!=2304)break s;if(A>>>0>=2307)break Qe;break f}if((0|t)<=3583){if((0|t)<=3071){if((0|t)==2560)break Ge;if((0|t)!=2816)break s;switch(r=1024,A-2876|0){case 0:break g;case 3:break t;case 1:case 2:break he;default:break Pe}}if((0|t)==3072)break eA;if((0|t)!=3328)break s;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 s;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 s;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 s;if((t=A-6432|0)>>>0<=18&&(r=1024,1<>>0>=3)break s;break t}if((0|t)<=7167){if((0|t)==6656)break qe;if((0|t)!=6912)break s;if(r=1024,(-4&A)==6912)break t;if((0|A)!=6964)break Je;break g}if((0|t)==7168)break ye;if((0|t)!=7424)break s;if(r=4096,A-7620>>>0<12||(r=1024,A-7655>>>0<14))break t;if((A=A-7669|0)>>>0>=11)break s;t=e[(A=82104+(A<<3)|0)>>2];break m}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 s;break t}if((0|t)==11520)break iA;if((0|t)!=12288)break s;if(A-12330>>>0>=4)break Ze;break g}if((0|t)<=43263){if((0|t)==42496)break nA;if((0|t)!=43008)break s;if(A-43045>>>0>=2)break Xe;break f}if((0|t)==43264)break aA;if((0|t)!=43520)break s;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 Be;if((0|t)==64256)break Ue;if((0|t)!=65024)break s;if(r=536870912,A-65024>>>0<15||(s=64,(0|A)==65039))break t;if(r=4096,s=0,(-16&A)!=65056)break s;break t}if((0|t)<=68095){if((0|t)==66048)break xe;if((0|t)!=66304||(r=1024,A-66422>>>0>=5))break s;break t}if((0|t)==68096)break ve;if((0|t)!=68864||(r=5120,(-4&A)!=68900))break s;break t}if((0|t)<=70399){if((0|t)<=69887){if((0|t)==69376)break ue;if((0|t)!=69632)break s;if(A-69688>>>0>=14)break ie;break f}if((0|t)==69888)break H;if((0|t)!=70144)break s;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 s;if((-8&A)!=70712)break ge;break f}if((0|t)==70912)break fe;if((0|t)!=71168)break s;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 ne;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 s;if(A-72193>>>0>=10)break Z;break f}if((0|t)<=73215){if((0|t)==72704)break V;if((0|t)!=72960)break s;if((t=A-73009|0)>>>0<19)break SA;break $}if((0|t)==73216)break X;if((0|t)!=92672||(r=4096,A-92912>>>0>=5))break s;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 s;break t}if((0|t)==113664)break D;if((0|t)!=119040)break s;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 s}}if((0|t)<=125183){if((0|t)==122880)break O;if((0|t)!=124928||(r=4096,A-125136>>>0>=7))break s;break t}if((0|t)==125184)break P;if((0|t)!=917760||(r=536870912,A-917760>>>0>=240))break s;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 s;break t}if(r=4096,A-1155>>>0>=5)break s;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 s;t=e[(A=81944+(A<<3)|0)>>2];break m}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 jA;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 s;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 fe=0,5120;if(r=4096,A-2282>>>0<6||(r=5120,A-2288>>>0<15))break t;if(r=1024,(0|A)!=2303)break s;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 s;break t}if(A-2561>>>0<2)break f;r=4096;Ge: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 Ge}if(A-2813>>>0>=3)break s;break t}if((0|A)==2817)break f}if(A-2881>>>0<4)break f;r=4096;he:switch(A-2893|0){case 0:break t;case 9:break f;default:break he}if((-2&A)==2914)break f;r=1024;he:switch(A-3008|0){default:if((0|A)!=2946)break s;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 s;case 0:break t;case 13:break he}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 s;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 s}}if((t=A-3633|0)>>>0<10)break RA;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 s;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 s;t=e[(A=82016+(A<<3)|0)>>2];break m}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 s}}if(r=1024,A-7212>>>0<8)break t;r=12288;ye:switch(A-7222|0){case 1:break g;case 0:break t;default:break ye}if(A-7380>>>0<13)break g;r=4096;ye: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 ye}if((-2&A)!=7416)break s;break t}if(r=128,A-8400>>>0<13)break t;if((A=A-8417|0)>>>0>=15)break s;t=e[(A=82192+(A<<3)|0)>>2];break m}if(r=1024,(-32&A)!=11744)break s;break t}if(r=4096,A-12441>>>0>=2)break s;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 s;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 s;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;s=(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 s;break t}r=1024;Be:switch(A-44005|0){case 0:case 3:break t;case 8:break Be;default:break s}break g}if(r=5120,(0|A)!=64286)break s;break t}if(r=4096,(0|A)!=66272)break s;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 s;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 s;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 s;break t}if((0|A)==70367)break t}if(A-70371>>>0<6)break t;if(r=4096,A-70377>>>0>=2)break s;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 s}break f}if((0|A)==70722)break g;if(A-70723>>>0<2)break f;if((t=A-70835|0)>>>0<=13)break S;break Le}if((t=A-71090|0)>>>0<12)break zA;break Re}switch(A-71339|0){case 0:case 2:break t;default:break ne}}if(A-71344>>>0<6)break t;if(r=4096,(0|A)!=71351)break s;break t}if(r=1024,A-71727>>>0<10)break t;if(r=4096,A-71737>>>0>=2)break s;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 je}if(r=1024,A-73459>>>0>=2)break s;break t}if(r=1024,A-92976>>>0>=7)break s;break t}if(r=1024,(0|A)!=113822)break s;break t}if(r=1024,A-122888>>>0<17)break t;if((A=A-122880|0)>>>0>=43)break s;t=e[(A=82816+(A<<3)|0)>>2];break m}if(r=12288,A-125252>>>0<3||(r=1024,(0|A)==125255)||(r=4096,A-125256>>>0<3))break t;break s}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 s;case 15:d:{if((0|(t=-256&A))!=12288){if((0|t)!=8448)break d;t=(A=(0|(r=-16&A))==8560)>>>18|0,s=A<<14,r=(A=(0|r)==8544)?32768:s;break I}if(A-12321>>>0<9||A-12344>>>0<3)return fe=0,2048;if(r=2048,(0|A)==12295)break t}break s;case 16:d:{S:{P:{if((0|(t=-256&A))<=9215){if((0|t)==4864)break P;if((0|t)!=6400||(r=134217728,(0|A)!=6618))break d;break t}if((0|t)==9216)break S;if((0|t)!=127232)break d;if(r=0,s=-2147483648,(0|A)==127232)break t;if(s=268435456,A-127233>>>0>=10)break d;break t}if(r=134217728,A-4969>>>0>=9)break d;break t}if(r=0,s=-2147483648,A-9352>>>0<20)break t}break s;case 17:s=(A=(0|A)==8256)>>>25|0,A<<=7;break N;case 18:d:{S:{P:{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 P;if((0|t)!=12288)break d;t=(0|A)==12336,r=(A=(0|A)==12316)||t?-2147483640:8,fe=A?0:t?130:0;break h}if((0|t)==65024)break S;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,s=8388608,A-65073>>>0<2||(r=152,s=0,(0|A)==65123))break t}return fe=0,8;case 19:d:{S:{P:{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 s;break K}if((0|t)<=64767){if(r=-2147483648,(0|t)==11776)break t;if((0|t)!=12288)break s;switch(r=-2147483616,A-12301|0){case 0:case 2:break t;default:break P}}if((0|t)==64768)break S;if((0|t)==65024)break d;if((0|t)!=65280)break s;if(r=32,(0|A)==65379)break t;break s}if((0|t)!=8192)break s;T:switch(A-8318|0){default:if(r=-2147483648,(0|A)!=8262)break s;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 s;case 0:case 16:break T}break k}r=-2147483520;D:switch(A-8969|0){case 1:break s;case 0:case 2:break t;default:break D}if((0|A)!=9002)break s;return fe=0,-2139095040}if(r=-2147483520,(0|A)==10182)break t;break Fe}return fe=0,(-2&A)==12318?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64830)break s;break t}s=(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:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Pe:{Ge:{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 s;if(r=0,s=538968064,A-1371>>>0<2)break t;switch(s=268435456,A-1373|0){case 0:break t;case 1:break Qe;default:break AA}}if((0|t)==1536)break Pe;if((0|t)==1792)break he;if((0|t)!=2048)break s;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 s;break t}if((0|t)<=4863){if((0|t)==3840)break $e;if((0|t)!=4096)break s;if(r=268435520,(-2&A)==4170)break t;if(r=0,s=16777216,(0|A)!=4347)break s;break t}if((0|t)==4864)break cA;if((0|t)!=5632)break s;switch(r=64,A-5741|0){case 1:break n;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 PA;if((0|t)!=6400)break s;t=(0|A)==6469,r=(A=(0|A)==6468)||t?268435520:0,fe=A?536870912:t?1073741824:0;break h}if((0|t)<=7167){if((0|t)==6656)break lA;if((0|t)!=6912)break s;if((0|(t=-2&A))!=7002)break qe;break j}if((0|t)==7168)break Je;if((0|t)!=8192)break s;switch(r=-2147483520,A-8214|0){case 1:break w;case 0:break t;case 16:break ye;default:break oA}}if((0|t)<=41983){if((0|t)==11264)break iA;if((0|t)==11776)break Ze;if((0|t)!=12288)break s;switch(r=-2147483584,s=272629760,A-12289|0){case 2:break w;case 0:break t;case 1:break Xe;default:break nA}}if((0|t)<=43007){if((0|t)==41984)break aA;if((0|t)!=42496)break s;switch(r=64,s=268435456,A-42739|0){case 4:break o;case 0:break n;case 3:break r;case 2:break t;case 1:break Be;default:break Ke}}if((0|t)==43008)break Ue;if((0|t)!=43264)break s;switch(r=4096,A-43310|0){case 0:break t;case 1:break j;default:break xe}}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 s;if(r=0,s=268435456,(0|(l=-2&A))==65040)break t;if((t=A-65042|0)>>>0<8)break DA;break ke}if((0|t)==65280)break ie;if((0|t)==66304)break H;if((0|t)!=67584||(r=64,(0|A)!=67671))break s;break t}if((0|t)<=69375){if((0|t)==67840)break J;if((0|t)==68096)break ce;if((0|t)!=68352)break s;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 s}}if((0|t)<=69887){if((0|t)==69376)break E;if((0|t)!=69632)break s;if(A-69703>>>0>=2)break ge;break j}if((0|t)==69888)break fe;if((0|t)!=70144)break s;if((t=A-70200|0)>>>0<=4)break le;if((0|A)!=70313)break s;break j}if((0|t)<=74751){if((0|t)<=71423){if((0|t)==70656)break ne;if((0|t)==70912)break ee;if((0|t)!=71168||(r=268435520,A-71233>>>0>=2))break s;break t}if((0|t)<=72703){if((0|t)==71424)break Z;if((0|t)!=72192)break s;if(A-72258>>>0>=2)break V;break j}if((0|t)==72704)break X;if((0|t)!=73216||(r=268435520,A-73463>>>0>=2))break s;break t}if((0|t)<=93695){if((0|t)==74752)break T;if((0|t)==92672)break O;if((0|t)!=92928)break s;if(r=268435520,A-92983>>>0<2)break t;t=(0|A)==92996?268435520:0,t=(A=(0|A)==92985)?64:t;break F}if((0|t)<=121343){if((0|t)==93696)break D;if((0|t)!=113664||(r=268435520,s=-2147483648,(0|A)!=113823))break s;break t}if((0|t)==121344)break yA;if((0|t)!=125184)break s;r=((0|A)==125279)<<30,t=0,fe=(A=(0|A)==125278)?536870912:r;break i}r=-1879048128,s=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:fe=66;break u;case 11:return fe=268435456,-2147483584;case 13:return fe=-2147483648,-1879048128;case 25:return fe=134217728,-2147483584;case 26:return fe=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 fe=1073741824,-1879048128}return fe=0,134230016}fe=1078984704;break u}if((0|A)==161)break sA}break w}t=(0|A)==903,r=(A=(0|A)==894)?64:t?134217792:0,fe=A?1073741824:t?67108864:0;break h}if((0|A)==1417)break Ge;if((0|A)!=1475)break s;break oe}fe=1075838976;break c}fe=-2143289344;break a}r=64,s=268435456;Pe: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 s;case 0:break t;case 19:break Pe;case 18:break j;default:break P}break o}if((t=A-1792|0)>>>0<6)break FA;if(r=64,s=134217728,(-2&A)==1798)break t;s=67108864;he:{Pe:{Ge:switch(A-1800|0){default:switch(A-2040|0){case 1:break he;case 0:break Pe;default:break s}case 3:break s;case 0:break t;case 1:break Ge;case 2:case 4:break oe}fe=1073741824;break A}fe=268435456;break A}fe=536870912;break a}t=(0|A)==2405,r=(A=(0|A)==2404)||t?268435520:0,fe=A?-2143289344:t?16777216:0;break h}if(r=0,s=-2143289344,(0|A)!=3572)break s;break t}r=64;$e:switch(A-3848|0){case 5:fe=-2143289344;break A;case 6:fe=16777216;break A;case 0:break t;default:break $e}if(A-3854>>>0<5)break t;if(r=0,s=268435456,(0|A)!=3860)break s;break t}if((t=A-4961|0)>>>0<4)break GA;if(r=64,s=134217728,A-4965>>>0<2)break t;t=(0|A)==4968,r=(A=(0|A)==4967)||t?268435520:0,fe=A?1073741824:t?16777216:0;break h}if(A-5867>>>0>=3)break s;break t}if(r=268435520,A-5941>>>0<2)break t;if((A=A-6100|0)>>>0>=7)break s;t=e[(A=83240+(A<<3)|0)>>2];break m}if(r=268435520,(-4&A)!=6824)break s;break t}if(r=64,(0|A)==7005)break t;if(r=268435520,(0|t)!=7006)break s;break t}if(A-7227>>>0<2)break j;if(r=64,A-7229>>>0<3||(r=268435520,(-2&A)==7294))break t;if(r=4096,(0|A)!=7379)break s;break t}fe=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 ae}if((0|A)==11513){fe=-2147483648;break c}if(r=0,s=1073741824,(-2&A)==11514)break t;if(s=-2147483648,(0|A)!=11518)break s;break t}r=-1879048128;Ze:switch(A-11822|0){case 4:case 6:fe=268435456;break u;case 5:fe=-2147483648;break u;case 7:fe=67108864;break u;case 14:return fe=-2147483648,-1879048128;case 19:return fe=268435456,-2147483584;case 30:case 32:return fe=0,-2147483584;case 0:break t;default:break Ze}break w}if((0|A)==12349)break _;if((0|A)!=12539)break s;return fe=0,16}return fe=-2143289344,-1879048128}t=(0|A)==42239,r=(A=(0|A)==42238)?64:t?268435520:0,fe=A?268435456:t?-2147483648:0;break h}Ke:switch(A-42509|0){case 1:break n;case 0:break t;case 2:break Ke;default:break s}break o}fe=134217728;break A}if(A-43126>>>0<2)break j;if(r=268435520,A-43214>>>0>=2)break s;break t}if((0|A)==43463)break oe;if(r=268435520,(-2&A)!=43464)break s;break t}if(A-43613>>>0<3)break j;if(r=64,(0|A)==43743)break t;if(r=268435520,(-2&A)!=43760)break s;break t}if(r=268435520,(0|A)!=44011)break s;break t}r=268435520,s=541065216;ie:switch(A-65281|0){case 1:case 6:return fe=0,32;case 11:fe=272629760;break A;case 13:fe=-2143289344;break a;case 100:return fe=0,16;case 25:fe=138412032;break A;case 26:fe=71303168;break A;case 30:fe=1077936128;break a;case 96:break n;case 59:break k;case 0:break t;case 99:break ie;default:break s}fe=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 s;break t}if(r=268435520,(-2&A)==68182)break t;if(r=64,A-68336>>>0>=6)break s;break t}if(r=268435520,A-69461>>>0>=5)break s;break t}if(r=64,A-69705>>>0<5)break t;if(r=268435520,A-69822>>>0>=4)break s;break t}if(A-69953>>>0<2)break j;if((t=A-70085|0)>>>0<=26)break S;break Ye}if((0|t)!=2)break j;break oe}if(r=268435520,A-70731>>>0<2)break t;s=(t=(0|A)==70747)>>>26|0,t=(A=(0|A)==70733)?64:t<<6,fe=A?268435456:s;break i}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 s;break t}if(r=268435520,A-71484>>>0>=3)break s;break t}if(r=268435520,A-72347>>>0<2)break t;if(r=64,A-72353>>>0>=2)break s;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,s=134217728,A-74865>>>0<2)break t;if(s=0,A-74864>>>0>=5)break s;break t}t=(0|A)==93848?268435520:0,t=(A=(0|A)==93847)?64:t;break F}if(r=268435520,(-2&A)==92782)break t;if(s=-2147483648,(0|A)!=92917)break s;break t}if((0|A)==1748)break n;break s}if(!(1<>>0<=17&&(r=-2147483616,1<>>27|0,A<<=5;break B;case 24:r=(A=A>>>0<256)>>>1|0,A<<=31;break B;case 25:d:{S:{P:{O:{D:{T:{X:{V:{if((0|(t=-256&A))<=12287){if((0|t)<=767){if(!t)break V;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 P;if(r=0,s=78,(0|t)!=127744)break d;break t}V:switch(A-168|0){default:r=-2147479424;Z:switch(A-94|0){case 0:break t;case 2:break Z;default:break d}return fe=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 V}break g}if((0|A)==749|A-741>>>0<7)break g;if(A-706>>>0>=4)break S;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;P:switch(A-65342|0){default:if((0|A)!=65507)break d;break;case 0:break t;case 1:break d;case 2:break P}break g}if(r=4096,A-722>>>0<14)break t}break s;case 26:d:{S:{P:{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 s;break t}if((0|t)<=10495){if((0|t)==9472)break O;if((0|t)==9728)break P;if((0|t)==9984)break w;break s}if((0|t)==10496)break S;if((0|t)==10752)break w;if(r=-2147483648,(0|t)!=11008)break s;break t}if((0|A)==8472)return fe=0,67108864;if((0|A)==8596)break q;if(r=-2147483648,A>>>0<=8591)break s;break t}if(r=-2147483640,(0|A)==8722)break t;t=-2147483648,fe=(A=A-8942>>>0<4)?33554432:0;break i}if(r=-2147483648,s=130,A-9723>>>0<2)break t;t=-2147483648,fe=(A=A-9725>>>0<2)?134:0;break i}if(r=-2147483648,s=128,(0|A)==9839)break t;break w}if(r=-2147483648,s=130,(-2&A)==10548)break t;t=-2147483648,fe=(A=(0|A)==10626)?134217728:0;break i}if((0|t)==8192)break Ve;break s;case 27:d:{S:{P:{O:{D:{T:{X:{V:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{H:{ie:{ue:{ve:{xe:{Ue:{Be:{if((0|(t=-256&A))<=12287){if((0|t)<=9727){if((0|t)<=8959){if(!t)break Be;if((0|t)!=8448)break s;switch(r=0,s=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 xe;default:break Ue}}if((0|t)==8960)break ie;if((0|t)==9216)break H;if((0|t)!=9472)break s;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 s;break t}if((0|t)==11008)break ge;if((0|t)==11776)break fe;if((0|t)!=12032)break s;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 ne;if((0|t)==12800)break ee;if((0|t)!=126976)break s;t=(0|A)==127183,r=0,fe=(A=(0|A)==126980)||t?134:128;break h}if((0|t)==127232)break Z;if((0|t)==127488)break V;if((0|t)!=127744)break s;if(A>>>0>=127777)break X;break R}if((0|t)<=128767){if((0|t)==128e3)break T;if((0|t)==128256)break D;if((0|t)!=128512)break s;if((t=A-128581|0)>>>0<11)break CA;break Ee}if((0|t)==128768)break O;if((0|t)==129280)break P;if((0|t)!=129536)break s;fe=128;break c}t=(0|A)==174,r=-2147483648,fe=(A=(0|A)==169)||t?130:0;break h}switch(A-8616|0){case 0:break w;case 1:case 2:break ve;default:break ue}}return fe=0,67108864}return fe=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 BA;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,s=128,(0|A)==9096)break t;if(A-9085>>>0<30)break w;if(r=-2147483520,s=0,(0|t)==9140)break t;ie:switch(A-9143|0){case 0:case 25:break t;case 24:break q;default:break ie}if(A-9140>>>0<40)break w;if((0|A)==9186)break t;if((t=A-9193|0)>>>0<4)break l;r=-2147483648,s=134;ie:switch(A-9200|0){case 0:case 3:break t;default:break ie}if(t>>>0<11)break q;if(s=130,A-9208>>>0<3)break t;if(s=0,A>>>0<=9186)break s;break t}if(r=-2147483648,A-9216>>>0<75||(r=33792,s=130,(0|A)==9410)||(s=0,A-9398>>>0<26))break t;if(r=17408,A-9424>>>0>=26)break s;break t}if(A-9646>>>0<8)break K;if(s=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 fe=0,A-9703>>>0<6?-2147483520:-2147483648}ce:switch((-16&A)-9728>>>4|0){case 0:if(A>>>0<9733)break q;r=-2147483520,s=128;J:switch(A-9733|0){case 0:break t;case 9:break J;case 1:break K;default:break G}break q;case 2:if((t=A-9760|0)>>>0<11)break vA;if(r=-2147483648,s=130,A>>>0<=9773)break G;break t;case 3:if(r=-2147483648,s=130,A-9784>>>0>=3)break G;break t;case 4:r=-2147483520,s=130;J:switch(A-9792|0){case 0:case 2:break t;default:break J}if(r=-2147483648,s=134,A>>>0<=9799)break G;break t;case 5:if(r=-2147483648,s=134,A>>>0<9812)break t;if(s=130,(0|A)!=9823)break G;break t;case 6:if((0|A)==9734)break K;if((0|A)==9824)return fe=130,-2147483520;if(r=-2147483520,s=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 G;break t;case 10:r=-2147483648,s=130;J:switch(A-9888|0){case 1:break l;case 0:break t;default:break J}if(s=134,(-2&A)!=9898)break G;break t;case 11:if(r=-2147483648,s=130,(-2&A)==9904)break t;if(s=134,A-9917>>>0>=2)break G;break t;case 12:if((-2&A)==9924)break l;r=-2147483648,s=130;J:switch(A-9928|0){case 0:case 7:break t;case 6:break J;default:break G}break l;case 14:t=(0|A)==9962,r=-2147483648,fe=(A=(0|A)==9961)?130:t?134:128;break h;case 13:break wA;case 9:break kA;case 15:break ce;case 7:break EA;case 1:break xA;default:break G}if((0|A)==9972|A>>>0<9970)break q;if(r=-2147483648,s=134,A>>>0<9974||(0|A)!=9974&&(s=130,A>>>0<9977))break t;if((A=A-9977|0)>>>0<5)break IA;break G}E:{ce:{J:{H:{ie:switch((-16&A)-9984>>>4|0){case 0:if(r=0,s=130,(0|A)==9986||(s=128,A>>>0<9989)||(s=134,(0|A)==9989))break E;s=150;ue:switch((-2&A)-9994|0){case 0:break E;case 2:break J;default:break ue}if(s=130,A-9992>>>0<6)break E;t=(0|A)==9999,r=0,s=(A=(0|A)==9998)?128:t?130:0;break E;case 1:if(r=0,s=128,A>>>0<10002)break E;if((A=A-10002|0)>>>0>11||(s=130,!(1<>>0<2)break E;s=(A=A-10069&-3)?0:536871046;break E;case 6:if((t=A-10082|0)>>>0<3)break ce;if(r=0,s=128,A>>>0<=10084)break H;break E;case 9:if(r=0,s=134,A-10133>>>0>=3)break H;break E;case 10:if(r=0,s=130,(0|A)!=10145)break H;break E;case 11:t=(0|A)==10175,r=0,s=(A=(0|A)==10160)||t?134:0;break E;case 3:break ie;default:break H}if(r=0,s=130,A-10035>>>0<2)break E}r=0,s=0;break E}s=146;break E}r=e[(A=83992+(t<<3)|0)>>2],s=e[A+4>>2]}return fe=s,-2147483648|r}if(r=-2147483648,s=130,A-11013>>>0<3||(s=134,A-11035>>>0<2))break t;t=(0|A)==11093,r=-2147483648,fe=(A=(0|A)==11088)||t?134:0;break h}if(A-11904>>>0>=26)break S;return fe=0,1048576}if(A-12276>>>0>=8)break s;break t}if((A=A-12306|0)>>>0>14||(r=-2147483648,!(1<>>0<26||A-127312>>>0<26)return fe=0,33792;if((t=A-127344|0)>>>0<=15&&(r=33792,s=130,1<>>0<26))break t;if((0|A)==127374)break R;if(r=0,s=134,A-127377>>>0<10)break t;if(s=102,A>>>0<=127461)break s;break t}r=0,s=134;V:{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 V;default:break Z}switch(A-127535|0){case 0:break t;case 8:break _;default:break V}}if((-2&A)==127568|A-127538>>>0<9)break t;if(s=128,A>>>0<=127583)break s;break t}if((0|A)==127777)break _;if(A-127789>>>0<9|A-127799>>>0<70)break R;if((0|A)==127877)break Ae;if(A-127870>>>0<22)break R;if(A-127780>>>0<112)break _;r=0,s=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 R;if(s=150,(0|A)==127946||(s=146,A-127947>>>0<2))break t;if(A-127951>>>0<5)break R;if(s=134,A-127968>>>0<17||(s=130,A-127902>>>0<83))break t;if((t=A-127987|0)>>>0<5)break bA;break Y}r=0,s=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:fe=128;break c;case 0:break _;default:break T}if(s=150,(0|A)==128170)break t;break R}if(A>>>0<128318)break R;if(r=0,A>>>0<128326)break t;if(A-128329>>>0<2)break _;if(A-128331>>>0<4|A-128336>>>0<24)break R;if(A-128367>>>0<2)break _;if((-2&A)==128372){fe=146;break c}if(A-128371>>>0<7)break _;if(s=150,!(t=A-128378|0))break t;if((0|t)==13|A-128394>>>0<4)break _;if(s=146,(0|A)==128400||(s=150,A-128405>>>0<2))break t;s=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,s=128,A-128981>>>0>=4)break s;break t}if(A>>>0<129292)break s;if(A-129328>>>0<10)break Ae;r=0,s=150;P:switch(A-129304|0){case 35:break s;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break t;default:break P}if(A-129341>>>0<2)break Ae;if(s=0,(0|A)==129350||(s=198,(-4&A)==129456))break t;if((t=A-129461|0)>>>0<5)break hA;break mA}if(r=1048576,A-11931>>>0<89)break t;break s}return fe=0,524288;case 29:return fe=16777216,1073741825;case 28:break t;case 30:break VA;default:break s}return fe=0,(0|A)==32?1073741825:1}if(!(1079>>>t&1))break pe;t=e[(A=81344+(t<<3)|0)>>2];break m}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 Re;break t}if((A=A-71453|0)>>>0>=15)break s;t=e[(A=82312+(A<<3)|0)>>2];break m}if(!(49023>>>t&1))break je;t=e[(A=82432+(t<<3)|0)>>2];break m}if(!(514623>>>t&1))break $;t=e[(A=82664+(t<<3)|0)>>2];break m}t=e[(A=83160+(t<<3)|0)>>2];break m}if(r=268435520,!(197>>>t&1))break We;break t}t=e[(A=83208+(t<<3)|0)>>2];break m}if((A=A-6145|0)>>>0>=10)break s;t=e[(A=83296+(A<<3)|0)>>2];break m}if(!(1077711>>>t&1))break ae;t=e[(A=83376+(t<<3)|0)>>2];break m}if(!(159>>>t&1))break ke;t=e[(A=83544+(t<<3)|0)>>2];break m}if((A=A-121479|0)>>>0>=4)break s;t=e[(A=83608+(A<<3)|0)>>2];break m}if(!(195>>>t&1))break He;break K}if((A=A-9745|0)>>>0>=13)break G;t=e[(A=83640+(A<<3)|0)>>2];break m}if(1101>>>t&1)break q;if(r=-2147483648,s=130,A>>>0<=9773)break G;break t}if(!(45>>>t&1))break Me;t=e[(A=83744+(t<<3)|0)>>2];break m}if((A=A-9851|0)>>>0>=5)break G;t=e[(A=83792+(A<<3)|0)>>2];break m}if((A=A-9874|0)>>>0>=11)break G;t=e[(A=83832+(A<<3)|0)>>2];break m}if((A=A-9937|0)>>>0>=4)break G;t=e[(A=83920+(A<<3)|0)>>2];break m}t=e[(A=83952+(A<<3)|0)>>2];break m}if(!(23>>>t&1))break Y;t=e[(A=84016+(t<<3)|0)>>2];break m}if(r=0,s=150,!(1991>>>t&1))break Ee;break t}if(s=150,27>>>t&1)break t}t=0,fe=(A=A-129489>>>0<13)?150:134;break i}A=A-127992>>>0<3,t=0;break p}if(A-9837>>>0<2)break t}fe=128;break u}if(A-8623>>>0<13)break w;if(A-8636>>>0<18)break K;if((t=A-8656|0)>>>0<22&&(s=0,3157995>>>t&1)||(r=-2147483648,s=0,A-8661>>>0<31))break t;break s}if(A>>>0<128592)break R;if(r=0,s=0,A>>>0<128640)break t;if(!((t=A-128675|0)>>>0>29|!(1<>>0<128710)break R;if(s=150,(0|A)==128716)break t;if(A-128715>>>0<5)break _;if(A-128720>>>0<3)break R;if(!((t=A-128736|0)>>>0>=10|!(575>>>t&1)))break _;if(s=134,A-128747>>>0<2)break t;s=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;Ve: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 s;case 0:case 14:break t;default:break Ve}if((0|(A=A-8315|0))!=16&&A)break s;return fe=0,8}if(r=268435520,s=1073741824,(0|A)!=69955)break s;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 s;break t}fe=542113792;break u}if(r=-2147483648,s=0,A-65093>>>0<2||(r=64,s=268435456,(0|l)==65104))break t;r=268435520,s=-2147483648;ke:switch(A-65106|0){case 3:fe=134217728;break A;case 5:fe=536870912;break a;case 4:break o;case 2:break r;case 0:break t;case 15:case 22:break ke;default:break s}break k}if((0|A)==2142)break oe;if(r=64,A-2096>>>0<15)break t;break s}if(r=1024,A-72850>>>0<22)break t;if((A=A-72874|0)>>>0>=13)break s;t=e[(A=82560+(A<<3)|0)>>2];break m}if(r=4096,A-71103>>>0<2)break t;if(r=1024,(-2&A)!=71132)break s;break t}if((0|A)==70726)break g;if(r=4096,(-2&A)!=70850)break s;break t}if(r=4096,A-68325>>>0>=2)break s;break t}if((0|A)==6109)break g;if(r=4096,A-6089>>>0>=11)break s;break t}_e:switch(A-3959|0){case 0:case 2:return fe=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 s;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 s;break t}if(A-1770>>>0<3)break t;if(r=1024,(0|A)!=1773)break s;break t}if((-2&A)==73028)break g;r=1024;$:switch(A-73104|0){default:if((0|A)!=73031)break s;break t;case 2:case 3:case 4:case 6:break s;case 0:case 1:case 5:break t;case 7:break $}break g}if((A=A-8492|0)>>>0>=30)break s;t=e[(A=81704+(A<<3)|0)>>2];break m}r=0;break z}s=(t=(-3&A)==43712)>>>20|0,r=t<<12}if((0|(i=-65536&A))==131072)break rA;if((0|i)==65536)break be;if(t=r,l=s,i)break me}if(A-13312>>>0<6582||A-19968>>>0<20976)break e;if(i=2048,A-63744>>>0<366)return fe=l,2048|t;if(r=t,s=l,A-64112>>>0>=106)break me;break W}if(i=2099200,A-183984>>>0<7473|A-178208>>>0<5762|A-177984>>>0<222|A-131072>>>0<42711||A-173824>>>0<4149||(i=2048,A-194560>>>0<542))break W;break me}if(i=2048,A-110960>>>0<396|A-94208>>>0<6125|A-100352>>>0<755)break W}i=0}return fe=s,r|i}if((-4&A)==8508)break k;if(r=128,!(A-8517>>>0<3)&&(r=16777344,(-2&A)!=8520))break s}fe=s;break h}t=(A=A>>>0>131069)?65536:0,fe=A?0:128;break i}if((0|A)==11776)break w}fe=0;break c}fe=0;break u}return fe=0,4194304}return fe=0,128}return fe=0,16777344}return fe=0,4096}return fe=0,1024}return fe=0,-2147483520}return fe=0,A-10214>>>0<10?-2147483520:-2147483648}fe=0;break a}fe=0;break A}fe=130;break c}fe=130;break u}fe=134;break c}return fe=150,0}fe=0;break i}fe=A?0:s;break i}return fe=t,A}return 131072}return fe=0,16777216}fe=A?0:r;break i}return fe=s,A}return fe=r,A}fe=A?0:t;break h}return fe=0,8192}fe=e[A+4>>2];break i}fe=A?8388608:0;break i}return r}return fe=0,-2147483616}fe=A?134:128}return t}fe=134}return-2147483648}return 0}fe=1073741824;break a}fe=-2147483648}return 268435520}fe=67108864}return 64}return fe=l,2099200|t}function LA(A){var t,r=0,s=0,i=0,l=0,c=0;(t=zA(8244))&&(e[t+328>>2]=2,f[132848]=0,e[t+684>>2]=0,e[t+688>>2]=0,e[t+320>>2]=0,e[t+324>>2]=0,f[t+268|0]=0,f[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,Je(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,f[t+460|0]=22,f[t+461|0]=129,f[t+466|0]=38,f[t+462|0]=38,f[t+463|0]=36,f[t+464|0]=22,f[t+465|0]=224,f[t+456|0]=22,f[t+457|0]=22,f[t+458|0]=44,f[t+459|0]=22,f[t+454|0]=46,f[t+455|0]=129,f[t+446|0]=22,f[t+447|0]=38,f[t+448|0]=28,f[t+449|0]=193,f[t+450|0]=38,f[t+451|0]=22,f[t+452|0]=46,f[t+453|0]=46,f[t+441|0]=129,f[t+442|0]=38,f[t+443|0]=22,f[t+444|0]=38,f[t+445|0]=193,e[t+332>>2]=104912,e[t+336>>2]=104916,e[t+340>>2]=105232,f[t+296|0]=18,f[t+297|0]=18,k[t+304>>1]=182,k[t+306>>1]=140,f[t+298|0]=20,k[t+308>>1]=220,k[t+310>>1]=220,k[t+312>>1]=220,f[t+299|0]=20,f[t+300|0]=20,k[t+314>>1]=240,f[t+301|0]=22,k[t+316>>1]=260,k[t+318>>1]=280,f[t+302|0]=22,f[t+303|0]=20,r=Je(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,f[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,Ft(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,s=e[26313],e[r+636>>2]=e[26312],e[r+640>>2]=s,s=e[26315],e[r+644>>2]=e[26314],e[r+648>>2]=s,s=e[26317],e[r+652>>2]=e[26316],e[r+656>>2]=s,s=e[26319],e[r+660>>2]=e[26318],e[r+664>>2]=s,s=e[26321],e[r+668>>2]=e[26320],e[r+672>>2]=s,s=e[26323],e[r+676>>2]=e[26322],e[r+680>>2]=s,s=d[104928]|d[104929]<<8,f[r+160|0]=s,f[r+161|0]=s>>>8,s=d[104924]|d[104925]<<8|d[104926]<<16|d[104927]<<24,f[r+156|0]=s,f[r+157|0]=s>>>8,f[r+158|0]=s>>>16,f[r+159|0]=s>>>24),i=GA(t+228|0,A),r=0;e:{A:if(s=d[0|A]){for(;r=(s<<24>>24)+(r<<8)|0,s=d[0|(A=A+1|0)];);r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{M:{Q:{F:{Ae:{R:{q:{_:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{z:{Se:{v:{Oe:{$:{Ie:{we:{_e:{ze:{Ne:{Le:{Re:{je:{We:{ke:{sA:{ae:{Ye:{Ve:{Ee:{He:{G:{Me:{if((0|r)<=28008){if((0|r)<=26464){if((0|r)<=25696){Y:switch(r-24934|0){case 20:break i;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 sA;case 13:break Me;default:break Y}Y: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 Re;case 0:break je;case 9:break Me;default:break Y}switch(r-25441|0){case 18:break B;case 0:break $;case 24:break Ne;default:break A}}Y:switch(r-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break Se;case 9:break Oe;case 7:break $;case 3:break Ie;case 2:break we;case 0:break He;default:break Y}Y: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 Y}switch(r-25697|0){case 4:break _e;case 0:break ze;default:break A}}if((0|r)<=27488){Y: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 Y}Y: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 se;case 3:break w;case 14:break s;case 0:break $;default:break Y}switch(r-26465|0){case 20:break W;case 13:break me;case 0:case 3:break be;default:break A}}Y: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 j;case 14:break Fe;case 11:break K;case 10:break f;case 0:break g;default:break Y}switch(r-27745|0){case 19:break q;case 0:break _;case 21:break Ve;default:break A}}if((0|r)<=29792){if((0|r)<=28768){Y:switch(r-28009|0){case 3:break p;case 11:break Ae;case 2:break R;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 ae;default:break Y}Y:switch(r-28258|0){case 0:break Q;case 10:break F;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break W;default:break Y}switch(r-28525|0){case 0:break M;case 5:break W;default:break A}}if((0|r)<=29539){Y:switch(r-28769|0){case 19:break U;case 11:break y;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 ae;default:break Y}Y: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 Y}if((0|r)==29045)break ae;break A}switch(r-29540|0){case 19:break C;case 18:break h;case 13:break b;case 8:break x;case 5:break I;case 7:break B;case 14:break pe;case 0:break c;default:break A}}if((0|r)>6514801)break G;if((0|r)<=30058)switch(r-29793|0){case 19:break l;case 17:break i;case 0:case 4:break p;case 13:break C;case 7:break ae;default:break A}if((0|r)<=30312)switch(r-30059|0){case 0:break u;case 15:break ae;case 7:break c;default:break A}if((0|r)==30313)break o;if((0|r)==31336)break n;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,lt(t),f[t+345|0]=2|d[t+345|0],f[t+406|0]=16|d[t+406|0],f[t+407|0]=16|d[t+407|0],f[t+408|0]=16|d[t+408|0],f[t+409|0]=16|d[t+409|0],f[t+410|0]=16|d[t+410|0],f[t+411|0]=16|d[t+411|0],f[t+412|0]=16|d[t+412|0],f[t+413|0]=16|d[t+413|0],f[t+414|0]=16|d[t+414|0],f[t+415|0]=16|d[t+415|0],f[t+416|0]=16|d[t+416|0],f[t+417|0]=16|d[t+417|0],f[t+418|0]=16|d[t+418|0],f[t+419|0]=16|d[t+419|0],f[t+420|0]=16|d[t+420|0],f[t+456|0]=4|d[t+456|0],f[t+457|0]=4|d[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 Ye;if((0|r)>6840682)break Ee;if((0|r)==6514802)break Le;if((0|r)==6516078)break n;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,Je(t+344|0,0,256),f[t+388|0]=129,f[t+389|0]=129,f[t+390|0]=129,f[t+391|0]=129,f[t+420|0]=129,f[t+421|0]=129,f[t+422|0]=129,f[t+423|0]=129,f[t+360|0]=129,f[t+392|0]=129,f[t+393|0]=129,f[t+417|0]=129,f[t+418|0]=129,f[t+419|0]=129,f[t+420|0]=129,f[t+408|0]=6,f[t+409|0]=4,f[t+410|0]=6,f[t+411|0]=6,f[t+412|0]=6,f[t+413|0]=193,f[t+414|0]=6,f[t+415|0]=6,f[t+406|0]=6,f[t+407|0]=129,f[t+398|0]=4,f[t+399|0]=193,f[t+400|0]=6,f[t+401|0]=193,f[t+402|0]=6,f[t+403|0]=4,f[t+404|0]=4,f[t+405|0]=4,f[t+394|0]=4,f[t+395|0]=4,f[t+396|0]=4,f[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,f[t+391|0]=193,f[t+389|0]=193,f[t+390|0]=193,f[t+421|0]=193,e[t+100>>2]=e[t+96>>2],f[t+416|0]=4|d[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,f[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 ae;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 m;if((0|r)==7959909)break n;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,f[t+465|0]=64&d[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,V=r=V-16|0,e[r+12>>2]=-1,A=89684;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=1|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=89743;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=2|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=89795;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=4|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=89941;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=16|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=90045;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=32|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=90045;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=8|d[0|l]),A=A+i|0,s;);for(e[r+12>>2]=-1,A=90045;i=WA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(f[0|(l=(t+s|0)-1192|0)]=64|d[0|l]),A=A+i|0,s;);V=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,Je(t+344|0,0,256),f[t+406|0]=4,f[t+366|0]=4,f[t+367|0]=4,f[t+369|0]=4,f[t+370|0]=4,f[t+371|0]=4,f[t+372|0]=4,f[t+361|0]=4,f[t+362|0]=4,f[t+363|0]=4,f[t+364|0]=4,f[t+373|0]=4,f[t+380|0]=4,f[t+381|0]=4,f[t+382|0]=4,f[t+383|0]=4,f[t+375|0]=4,f[t+376|0]=4,f[t+377|0]=4,f[t+378|0]=4,f[t+384|0]=4,f[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}_s(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,f[t+386|0]=64&d[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,f[t+463|0]=64&d[t+463|0]|129,f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,f[t+441|0]=64|d[t+441|0],f[t+445|0]=64|d[t+445|0],f[t+449|0]=64|d[t+449|0],f[t+455|0]=64|d[t+455|0],f[t+461|0]=64|d[t+461|0],f[t+465|0]=64|d[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[t+465|0]|129,r=26226;break e}k[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:{me:{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],lt(t);break e}if((0|r)==28530)break me;if((0|r)!=28769)break W;e[t+600>>2]=2560,lt(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,lt(t);break e}e[t+600>>2]=2816}lt(t);break e}f[0|i]=104,f[i+1|0]=98,f[i+2|0]=115,f[i+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,k[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,f[t+465|0]=64&d[t+465|0]|129,f[t+458|0]=64&d[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,f[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,f[t+465|0]=64&d[t+465|0]|129,Ft(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,i=Je(t+344|0,0,256),f[t+429|0]=129,f[t+416|0]=129,f[t+403|0]=129,f[t+399|0]=129,f[t+400|0]=129,f[t+397|0]=129,f[t+393|0]=129,s=103952,l=50,c=50;f[0|(A=i+c|0)]=2|d[0|A],A=i+d[s+1|0]|0,f[0|A]=2|d[0|A],A=i+d[s+2|0]|0,f[0|A]=2|d[0|A],c=d[0|(s=s+3|0)],A=103952,(0|s)!=103982;);for(s=t+344|0;f[0|(i=s+l|0)]=4|d[0|i],i=s+d[A+1|0]|0,f[0|i]=4|d[0|i],i=s+d[A+2|0]|0,f[0|i]=4|d[0|i],l=d[0|(A=A+3|0)],(0|A)!=103982;);f[t+168|0]=6,e[t+104>>2]=5128,f[t+413|0]=4|d[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,s=t+344|0;f[0|(i=A+s|0)]=231&d[0|i],f[0|(i=s+(1|A)|0)]=231&d[0|i],f[0|(i=s+(2|A)|0)]=231&d[0|i],f[0|(i=s+(3|A)|0)]=231&d[0|i],(0|(A=A+4|0))!=256;);e[t+104>>2]=2280,e[t+108>>2]=2,e[t+608>>2]=104048,f[t+451|0]=16|d[t+451|0],f[t+456|0]=16|d[t+456|0],f[t+459|0]=16|d[t+459|0],f[t+460|0]=16|d[t+460|0],f[t+450|0]=8|d[t+450|0],f[t+462|0]=8|d[t+462|0],f[t+458|0]=8|d[t+458|0],f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,i=Je(t+344|0,0,256),f[t+431|0]=1,f[t+429|0]=1,f[t+411|0]=1,f[t+405|0]=1,f[t+400|0]=1,f[t+396|0]=1,f[t+392|0]=1,A=104160,s=49;f[0|(s=s+i|0)]=4|d[0|s],s=i+d[A+1|0]|0,f[0|s]=4|d[0|s],s=i+d[A+2|0]|0,f[0|s]=4|d[0|s],s=d[0|(A=A+3|0)],(0|A)!=104193;);e[t+600>>2]=4256,e[t+8>>2]=0,e[t+12>>2]=16,f[t+168|0]=7,e[t+132>>2]=32,f[t+392|0]=128|d[t+392|0],f[t+396|0]=128|d[t+396|0],f[t+400|0]=128|d[t+400|0],f[t+405|0]=128|d[t+405|0],f[t+411|0]=128|d[t+411|0],f[t+429|0]=128|d[t+429|0],f[t+431|0]=128|d[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,i=Je(t+344|0,0,256),f[t+393|0]=1,f[t+365|0]=1,f[t+360|0]=1,f[t+545|0]=1,f[t+529|0]=1,f[t+391|0]=1,f[t+389|0]=1,f[t+390|0]=1,f[t+387|0]=1,f[t+379|0]=1,f[t+374|0]=1,f[t+368|0]=1,f[t+489|0]=1,f[t+487|0]=1,f[t+398|0]=1,A=104224,s=17;f[0|(s=s+i|0)]=4|d[0|s],s=i+d[A+1|0]|0,f[0|s]=4|d[0|s],s=i+d[A+2|0]|0,f[0|s]=4|d[0|s],s=d[0|(A=A+3|0)],(0|A)!=104251;);f[t+360|0]=128|d[t+360|0],f[t+365|0]=128|d[t+365|0],f[t+393|0]=128|d[t+393|0],f[t+368|0]=128|d[t+368|0],f[t+374|0]=128|d[t+374|0],f[t+379|0]=128|d[t+379|0],f[t+387|0]=128|d[t+387|0],f[t+389|0]=128|d[t+389|0],f[t+390|0]=128|d[t+390|0],f[t+391|0]=128|d[t+391|0],f[t+529|0]=128|d[t+529|0],f[t+545|0]=128|d[t+545|0],f[t+489|0]=128|d[t+489|0],f[t+487|0]=128|d[t+487|0],f[t+398|0]=128|d[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,f[t+168|0]=2,e[t+104>>2]=50176,e[t+84>>2]=1,Ft(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,Je(t+344|0,0,256),f[t+456|0]=1,f[t+457|0]=1,f[t+458|0]=1,f[t+459|0]=1,f[t+449|0]=1,f[t+450|0]=1,f[t+451|0]=1,f[t+452|0]=1,f[t+453|0]=1,f[t+454|0]=1,f[t+455|0]=1,f[t+456|0]=1,f[t+441|0]=1,f[t+442|0]=1,f[t+443|0]=1,f[t+444|0]=1,f[t+445|0]=1,f[t+446|0]=1,f[t+447|0]=1,f[t+448|0]=1,f[t+460|0]=65,f[t+461|0]=65,f[t+532|0]=32,f[t+527|0]=32,f[t+519|0]=32,f[t+515|0]=32,f[t+349|0]=32,f[t+350|0]=32,f[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,f[t+458|0]=65,f[t+453|0]=65,f[t+447|0]=65,f[t+448|0]=65,f[t+443|0]=65,f[t+444|0]=65,r=27503;break e}e[t+328>>2]=10,e[t+296>>2]=336859666,e[t+300>>2]=353768980,f[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,f[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[t+465|0]|129,A=0,s=t+344|0;f[0|(i=A+s|0)]=253&d[0|i],f[0|(i=s+(1|A)|0)]=253&d[0|i],f[0|(i=s+(2|A)|0)]=253&d[0|i],f[0|(i=s+(3|A)|0)]=253&d[0|i],(0|(A=A+4|0))!=256;);f[t+442|0]=2|d[t+442|0],f[t+443|0]=2|d[t+443|0],f[t+444|0]=2|d[t+444|0],f[t+446|0]=2|d[t+446|0],f[t+447|0]=2|d[t+447|0],f[t+450|0]=2|d[t+450|0],f[t+451|0]=2|d[t+451|0],f[t+453|0]=2|d[t+453|0],f[t+454|0]=2|d[t+454|0],f[t+456|0]=2|d[t+456|0],f[t+457|0]=2|d[t+457|0],f[t+459|0]=2|d[t+459|0],f[t+460|0]=2|d[t+460|0],f[t+462|0]=2|d[t+462|0],f[t+464|0]=2|d[t+464|0],f[t+466|0]=2|d[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}va(t),r=29301;break e}for(e[t+328>>2]=3,e[t+296>>2]=336859153,e[t+300>>2]=353768980,k[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),f[t+465|0]=64&d[t+465|0]|129,f[t+458|0]=64&d[t+458|0]|129,A=0,s=t+344|0;f[0|(i=A+s|0)]=223&d[0|i],f[0|(i=s+(1|A)|0)]=223&d[0|i],f[0|(i=s+(2|A)|0)]=223&d[0|i],f[0|(i=s+(3|A)|0)]=223&d[0|i],(0|(A=A+4|0))!=256;);f[t+442|0]=32|d[t+442|0],f[t+444|0]=32|d[t+444|0],f[t+447|0]=32|d[t+447|0],f[t+450|0]=32|d[t+450|0],f[t+452|0]=32|d[t+452|0],f[t+453|0]=32|d[t+453|0],f[t+454|0]=32|d[t+454|0],f[t+458|0]=32|d[t+458|0],f[t+462|0]=32|d[t+462|0],f[t+463|0]=32|d[t+463|0],f[t+466|0]=32|d[t+466|0],f[t+441|0]=32|d[t+441|0],f[t+445|0]=32|d[t+445|0],f[t+449|0]=32|d[t+449|0],f[t+455|0]=32|d[t+455|0],f[t+461|0]=32|d[t+461|0],f[t+465|0]=32|d[t+465|0];break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=3456,f[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,Je(t+344|0,0,256),f[t+365|0]=1,f[t+366|0]=1,f[t+357|0]=1,f[t+358|0]=1,f[t+359|0]=1,f[t+360|0]=1,f[t+361|0]=1,f[t+362|0]=1,f[t+363|0]=1,f[t+364|0]=1,f[t+349|0]=1,f[t+350|0]=1,f[t+351|0]=1,f[t+352|0]=1,f[t+353|0]=1,f[t+354|0]=1,f[t+355|0]=1,f[t+356|0]=1,A=74,s=74;f[(i=t+s|0)+344|0]=1|d[i+344|0],f[i+345|0]=1|d[i+345|0],f[i+346|0]=1|d[i+346|0],(0|(s=s+3|0))!=116;);for(;f[(s=A+t|0)+344|0]=2|d[s+344|0],f[s+345|0]=2|d[s+345|0],f[s+346|0]=2|d[s+346|0],(0|(A=A+3|0))!=116;);for(s=26;f[(A=t+s|0)+344|0]=4|d[A+344|0],f[A+345|0]=4|d[A+345|0],f[A+346|0]=4|d[A+346|0],f[A+347|0]=4|d[A+347|0],f[A+348|0]=4|d[A+348|0],(0|(s=s+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,f[t+458|0]=128|d[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,f[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[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,f[t+465|0]=64&d[t+465|0]|129,r=29558;break e}e[t+296>>2]=320015376,e[t+300>>2]=353768980,f[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,f[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 a}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,f[t+173|0]=1,e[t+8>>2]=7,e[t+12>>2]=32,f[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}_s(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}va(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,k[t+170>>1]=257,e[t+176>>2]=1,f[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}lt(t),f[t+422|0]=2|d[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 IA(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0;e:{r=e[32538],e[47354]=0,e[47568]=0,e[49828]=0,e[47569]=0,f[199328]=0,e[49827]=0,e[49845]=0,f[190280]=0,f[190268]=1,e[47202]=0,e[49573]=0,e[49846]=0,f[199304]=0,f[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],f[134784]=0,f[134824]=0,f[134772]=0,f[134760]=0,e[33284]=-1,e[33692]=0,e[32525]=0,e[47201]=e[33717],e[47200]=e[33718],Io(),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}f[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=An(86228)))&&((t=e[33283])||((t=zA(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,i=kA(A)+1|0):(l=2,i=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+i|0:0,t=0),!t))){EA(0);r:{for(;;){e[34436]=0,A=e[34391],e[51290]=A,e[54046]=A+e[34390],e[50767]<=102399&&(e[50767]=102400);a:if(!((c=e[51290])>>>0>=te[54046]))for(;;){if((((0|(A=(i=e[50757])-(g=e[50758])|0))<=0?A+170|0:A)-171|0)>=-1){if((0|(A=e[54731]))<=0)break a;l=0,e[50763]=0,e[50762]=0,e[50765]=2147483647,A=d[218920]?e[54732]:A;n:{for(;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break n;if(e[51290]=c+1,t=(A=e[51293])+1|0,e[51293]=(0|t)<=5499?t:0,t=(A=O(e[50755],k[205184+(A<<1)>>1]))>>8,f[0|c]=t,i=e[51290],e[51290]=i+1,f[0|i]=A>>>16,(i=e[50756])?(A=r,(r=e[i+4>>2])&&(ZA[0|r](t<<16>>16),A=e[54732])):A=r,i=(r=e[51292])+1|0,e[51292]=i,k[205184+(r<<1)>>1]=t,(0|i)>=5500&&(e[51292]=0),c=e[51290],!(te[54046]>=c+2>>>0))break}l=1}f[218920]=l;break a}A=e[(r=216192+(i<<4)|0)+4>>2];n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{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 i;case 13:break p;case 0:break C;case 1:break h;case 2:break b;case 3:break m;case 6:break x;case 5:break I;case 4:break B;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],i=(0|O(A,e[50788]))/50|0,r=O(i-A|0,-18),A=((0|(A=e[50785]))>=101?101:A)-e[50790]|0,t=(l=r+((0|O(e[50970],d[((0|A)>0?A:0)+105680|0]))/128|0)|0)+((0|O(i,(0|(A=t>>16))<(0|(r=65535&t))?A:r))/2|0)|0,e[50770]=t,A=(l+((0|O(i,(0|A)>(0|r)?A:r))/2|0)|0)-t|0,e[50771]=A,r=d[0|c],e[33072]=e[50976],e[50767]=t+(O(A,r)>>8);break o}ZA[e[e[50756]>>2]](A,e[r+8>>2]),Me(A);break o}if(d[218920]||(e[54731]=e[54731]-A),e[50781]=100,e[50773]=0,$s(),e[50763]=0,e[50762]=0,e[50765]=2147483647,!A)break o;for(A=d[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,i=(t=e[51293])+1|0,e[51293]=(0|i)<=5499?i:0,i=A,t=(A=O(e[50755],k[205184+(t<<1)>>1]))>>8,f[0|i]=t,i=e[51290],e[51290]=i+1,f[0|i]=A>>>16,(i=e[50756])?(A=r,(r=e[i+4>>2])&&(ZA[0|r](t<<16>>16),A=e[54732])):A=r,i=(r=e[51292])+1|0,e[51292]=i,k[205184+(r<<1)>>1]=t,(0|i)>=5500&&(e[51292]=0),i=1,!(te[54046]>=e[51290]+2>>>0))break}break n}for(e[50773]=0,e[54731]=e[54729],$s(),t=e[r+12>>2],i=e[r+8>>2],d[218920]?A=e[54733]:e[54734]=0,g=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=O(l,f[A+i|0]):(c=d[A+i|0]|f[t+i|0]<<8,t=A+2|0),e[54734]=t,p=(A=e[51293])+1|0,e[51293]=p,t=(0|(A=(0|(A=((0|O(g,O(e[33037],O(e[33038],c))>>10))/32|0)+(O(e[50755],k[205184+(A<<1)>>1])>>8)|0))<=-32768?-32768:A))>=32767?32767:A,(0|p)>=5500&&(e[51293]=0),f[e[51290]]=t,f[e[51290]+1|0]=t>>>8,(c=e[50756])?(A=r,(r=e[c+12>>2])&&(ZA[0|r](t<<16>>16),A=e[54733])):A=r,r=e[51290],e[51290]=r+2,p=(c=e[51292])+1|0,e[51292]=p,k[205184+(c<<1)>>1]=(0|O(t,3))/4,(0|p)>=5500&&(e[51292]=0),!(te[54046]>=r+4>>>0))break}i=1;break n}t=e[r+12>>2],i=A>>>16|0,e[50777]=i,A&=65535,e[50773]=A,l=255&t,e[50774]=l,e[50775]=t>>8,l||(e[50777]=i<<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],d[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,f[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|g)!=(0|(i=(0|(r=i+1|0))<=169?r:0)))if((0|(r=e[216192+(i<<4)>>2]))!=3){if(r-5>>>0>1)continue}else f[218960]=0;break}for(e[55913]=e[50762],A=(A=A+32&131008)||64,e[50763]=A+e[50763],e[55684]=O(k[101997],7800)+(y[102024]<<8)<<8,e[55704]=O(k[101998],9e3)+(y[102025]<<8)<<8,_=e[50980],s=+(0|A),M=+(A>>>2|0),A=0;(0|A)!=7&&(i=k[(p=(r=A<<1)+t|0)+218>>1]<<8,g=O(A,80)+222176|0,p=k[p+164>>1],P=i+O(p,k[2+(r+c|0)>>1])<<8,e[g>>2]=P,h=+(0|P),T[g+16>>3]=h,T[g+48>>3]=16*(+(i+O(p,k[2+(r+l|0)>>1])<<8)-h)/M),i=(r=O(A,80))+222176|0,p=k[(P=t+(A<<1)|0)+182>>1],H=O(p,d[(g=A+c|0)+18|0])<<6,e[i+4>>2]=H,h=+(0|H),T[i+24>>3]=h,Y=i,i=A+l|0,T[Y+56>>3]=64*(+(O(p,d[i+18|0])<<6)-h)/s,(0|A)>(0|_)|A>>>0>5||(p=r+222176|0,H=k[P+200>>1],P=O(H,d[g+26|0])<<10,e[p+8>>2]=P,h=+(0|P),T[p+32>>3]=h,Y=p- -64|0,p=H<<10,T[Y>>3]=64*(+(0|O(p,d[i+26|0]))-h)/s,A>>>0<=2?(r=r+222176|0,g=O(p,d[g+32|0]),e[r+12>>2]=g,h=+(0|g),T[r+40>>3]=h,T[r+72>>3]=64*(+(0|O(p,d[i+32|0]))-h)/s):e[r+222188>>2]=P),(0|(A=A+1|0))!=8;);}for(;;){if(A=e[50762],!d[218960]&(0|A)==e[50763])break o;b:{m:{if(63&A){if(7&A)break b;x:if(!((0|(r=e[54736]))<=0||(0|(t=e[54735]))<=0))for(i=e[50826],A=1;;){if(e[(c=(l=A<<2)+i|0)>>2]=e[c>>2]+e[l+203312>>2],A>>>0>28|(0|A)>=(0|r))break x;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])?O(d[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)+O(e[33072],d[110528+(t>>6)|0]-128|0)|0,e[50767]=t,!(i=e[51291])&(0|(r=i?i<<12:t))>102399||(t=(0|r)<=102400?102400:r,e[50767]=t),(0|A)!=e[55913]){if(A=0,!((0|(g=e[50980]))<0)){for(;c=O(A,80),s=T[(r=c+222176|0)+48>>3]+T[r+16>>3],T[r+16>>3]=s,M=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=M,h=T[r- -64>>3]+T[r+32>>3],T[r+32>>3]=h,i=ee(s)<2147483648?~~s:-2147483648,e[r>>2]=i,i=ee(h)<2147483648?~~h:-2147483648,e[r+8>>2]=i,l=ee(M)<2147483648?~~M:-2147483648,e[r+4>>2]=(0|l)>0?l:0,(0|A)>2||(s=T[(r=c+222176|0)+72>>3]+T[r+40>>3],T[r+40>>3]=s,i=ee(s)<2147483648?~~s:-2147483648),e[c+222188>>2]=i,(0|g)>=(0|(A=A+1|0)););if((0|A)>=8)break m}for(;(0|A)!=7&&(r=O(A,80)+222176|0,s=T[r+48>>3]+T[r+16>>3],T[r+16>>3]=s,i=ee(s)<2147483648?~~s:-2147483648,e[r>>2]=i),r=O(A,80)+222176|0,s=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=s,i=ee(s)<2147483648?~~s:-2147483648,e[r+4>>2]=(0|i)>0?i:0,(0|(A=A+1|0))!=8;);}}else t=e[50767];else e[50826]=218976,e[54742]=0,e[54736]=Os(e[50767]<<4,218976,0),t=e[50767],e[54737]=890/(t>>12),e[54739]=(0|O(e[50781],O(e[50779],t>>8)))/8e4}if(e[55906]=t>>11,e[54735]=e[54736],e[55904]=O(e[50760],t>>7),e[55905]=e[50754]/(t>>12),r=1^(A=e[54742]),e[54742]=r,e[50826]=O(A,1600)+218976,e[54736]=Os(t<<4,O(r,1600)+218976|0,1),!(!(t=e[50759])|!e[51022]))for(M=T[25430],h=T[25429],A=1;e[(r=t+(A<<2)|0)+272>>2]&&(i=e[r+308>>2],r=O(A,40)+203456|0,I=os(M*+k[2+(O(A,80)+222176|0)>>1]),I*=s=xr(h*+(0|i)),I+=I,T[r+8>>3]=I,s*=-s,T[r+16>>3]=s,T[r>>3]=1-I-s),(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(p=e[55905],t=e[50800]+((0|p)/-2|0)|0,e[55907]=t,(0|(P=e[50763]))<(0|l))break o;if(_=e[54738]+1|0,e[54738]=_,g=e[50767],!((0|(A=(r=e[50980])+1|0))>8)&&(i=g<<3,1&r&&(e[203264+(A<<2)>>2]=(1+(e[O(A,80)+222176>>2]/(0|i)|0)|0)/2,A=r+2|0),(0|r)!=7))for(;r=203264+(A<<2)|0,H=O(A,80)+222176|0,e[r>>2]=(1+(e[H>>2]/(0|i)|0)|0)/2,e[r+4>>2]=(1+(e[H+80>>2]/(0|i)|0)|0)/2,(0|(A=A+2|0))!=9;);A=(0|O(e[50781],O(e[50779],g>>8)))/8e4|0,e[54739]=A;b:if(!((0|(r=e[55908]))<=0)){m:switch(r-3|0){case 0:if((P-l|0)>=p<<1)break b;e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;case 1:e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;default:break m}e[55908]=r-1}(r=e[55910])&&(i=A,A=e[55911]>>8,A=(0|O(i,d[r+((0|A)>=127?127:A)|0]))/128|0,e[54739]=A),(0|(r=e[e[32972]+92>>2]))>7||(r=15&(i=d[e[55912]+(106336+(r<<3)|0)|0]),(i=i>>>4|0)&&((0|i)!=15?(0|_)%(0|i)|0||(e[54739]=(0|O(A,r))/16):(e[55912]=0,e[54739]=(0|O(A,r))/16)))}else t=e[55907];if(l=t+1|0,e[55907]=l,r=c>>>16|0,i=0,!((0|l)<0|(0|l)>=e[50799])){if(!((0|(A=(t=e[50980])+1|0))>8)){if(g=1&(c=8-t|0),(0|t)!=7)for(p=-2&c,t=0;i=O(e[(P=(c=A<<2)+4|0)+203216>>2],k[106400+(O(r,e[P+203264>>2])>>>4&4094)>>1])+(O(e[c+203216>>2],k[106400+(O(r,e[c+203264>>2])>>>4&4094)>>1])+i|0)|0,A=A+2|0,(0|p)!=(0|(t=t+2|0)););g&&(i=O(e[(A<<=2)+203216>>2],k[106400+(O(r,e[A+203264>>2])>>>4&4094)>>1])+i|0)}i=O(d[l+132160|0],(0|i)/e[55906]|0)}if(A=1,(0|(l=e[54737]))<=0)t=r;else for(c=e[50826],t=r;i=O(e[c+(A<<2)>>2],k[106400+((65504&t)>>>4|0)>>1])+i|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if((0|(l=e[54735]))>=(0|A))for(c=e[50826];i=i-O(e[c+(A<<2)>>2],k[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?i:O(A,i>>6),e[51022]){if(e[50759])for(r=et(e[33209],0,1103515245,0),A=fe,A=ui(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,M=+((16383&A)- -8192|0),t=e[50759],c=0,A=1;(i=e[272+(t+(A<<2)|0)>>2])&&(g=e[O(A,80)+222180>>2],r=O(A,40)+203456|0,s=T[r+32>>3],h=T[r+24>>3],T[r+32>>3]=h,s=s*T[r+16>>3]+(T[r>>3]*M+h*T[r+8>>3]),T[r+24>>3]=s,r=ee(s)<2147483648?~~s:-2147483648,c=O(r,O(i,g>>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])?(i=A+1|0,e[50776]=i,A=O(c,f[t+(A+r|0)|0])):(c=d[0|(t=t+(A+r|0)|0)],t=f[t+1|0],i=A+2|0,e[50776]=i,A=c|t<<8),t=(0|O(O(A,e[50780])>>10,e[50775]))/32|0,(0|(A=e[50777]))>(r+i|0)||(e[50778]=r+((0|O(A,3))/-4|0))),r=(A=e[51293])+1|0,e[51293]=r,A=((O(e[54739],l>>8)>>13)+t|0)+(O(e[50755],k[205184+(A<<1)>>1])>>8)|0,(0|r)>=5500&&(e[51293]=0),r=e[33073];b:{m:{if((0|(t=O(r,A)))>=8388608){if((0|r)>=(0|(c=8388608/(0|A)|0)))break m;break b}if((0|t)>-8388353||(0|r)<(0|(c=-8388608/(0|A)|0)))break b}r=c-1|0,e[33073]=r,t=O(A,r)}if(A=e[51290],e[51290]=A+1,r=A,A=t>>8,f[0|r]=A,r=e[51290],e[51290]=r+1,f[0|r]=t>>>16,(r=e[50756])&&(r=e[r+8>>2])&&ZA[0|r](A<<16>>16),t=(r=e[51292])+1|0,e[51292]=t,k[205184+(r<<1)>>1]=A,(0|t)>=5500&&(e[51292]=0),!(te[54046]>=e[51290]+2>>>0))break}i=1;break n}e[50773]=0}e[54731]=e[54729],i=1,g=65535&A,t=d[218920],c=e[r+8>>2],l=e[r+12>>2],s=0,h=0,V=r=V+-64|0,p=e[50759];C:if((0|(A=e[p+132>>2]))!=6){if(!t){for(A-1>>>0<=4&&(e[55921]=A,e[55964]=e[110896+(A<<2)>>2]),A=e[p+88>>2],e[54741]=1,e[55922]=(0|A)/32,t=e[50758],A=e[50757];;){h:if((0|t)!=(0|(A=(0|(A=A+1|0))<=169?A:0)))if((0|(P=e[216192+(A<<4)>>2]))!=1){if(P-5>>>0>1)continue}else{if(e[54741]=0,A=e[8+(216192+(A<<4)|0)>>2],!(y[l+4>>1]!=y[A+4>>1]|y[A+6>>1]!=y[l+6>>1]|y[A+8>>1]!=y[l+8>>1]|y[A+10>>1]!=y[l+10>>1])&&y[A+12>>1]==y[l+12>>1])break h;e[54741]=2}break}for((y[c+4>>1]!=y[113564]|y[c+6>>1]!=y[113565]|y[c+8>>1]!=y[113566]|y[c+10>>1]!=y[113567]||y[c+12>>1]!=y[113568])&&(it(),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=y[l+4>>1]|y[l+6>>1]<<16,t=y[l>>1]|y[l+2>>1]<<16,k[113562]=t,k[113563]=t>>>16,k[113564]=A,k[113565]=A>>>16,A=y[l+60>>1]|y[l+62>>1]<<16,t=y[l+56>>1]|y[l+58>>1]<<16,k[113590]=t,k[113591]=t>>>16,k[113592]=A,k[113593]=A>>>16,A=y[l+52>>1]|y[l+54>>1]<<16,t=y[l+48>>1]|y[l+50>>1]<<16,k[113586]=t,k[113587]=t>>>16,k[113588]=A,k[113589]=A>>>16,A=y[l+44>>1]|y[l+46>>1]<<16,t=y[l+40>>1]|y[l+42>>1]<<16,k[113582]=t,k[113583]=t>>>16,k[113584]=A,k[113585]=A>>>16,A=y[l+36>>1]|y[l+38>>1]<<16,t=y[l+32>>1]|y[l+34>>1]<<16,k[113578]=t,k[113579]=t>>>16,k[113580]=A,k[113581]=A>>>16,A=y[l+28>>1]|y[l+30>>1]<<16,t=y[l+24>>1]|y[l+26>>1]<<16,k[113574]=t,k[113575]=t>>>16,k[113576]=A,k[113577]=A>>>16,A=y[l+20>>1]|y[l+22>>1]<<16,t=y[l+16>>1]|y[l+18>>1]<<16,k[113570]=t,k[113571]=t>>>16,k[113572]=A,k[113573]=A>>>16,A=y[l+12>>1]|y[l+14>>1]<<16,t=y[l+8>>1]|y[l+10>>1]<<16,k[113566]=t,k[113567]=t>>>16,k[113568]=A,k[113569]=A>>>16,M=+(0|g),(Y=1&k[c>>1])?(A=d[c+39|0],e[56680]=A,T[28364]=A>>>0,T[28354]=+(d[l+39|0]-A<<6)/M,A=d[c+40|0],T[28366]=A>>>0,T[28356]=+(d[l+40|0]-A<<6)/M,A=d[c+41|0],e[56682]=A,T[28368]=A>>>0,T[28358]=+(d[l+41|0]-A<<6)/M,t=d[c+42|0],e[56684]=t,T[28370]=t>>>0,A=d[c+43|0],s=+(d[l+43|0]-A<<6)/M,h=+(d[l+42|0]-t<<6)/M,I=+(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,I=0),e[56688]=A,T[28360]=h,T[28372]=I,T[28362]=s,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]=g,A=1;_=k[(P=(g=A<<1)+p|0)+164>>1],t=(ve=O(A,80))+222896|0,h=+k[P+218>>1],s=.00390625*+(0|O(_,k[2+(c+g|0)>>1]))+h,T[t+16>>3]=s,H=ee(s)<2147483648?~~s:-2147483648,e[t>>2]=H,T[t+48>>3]=64*(.00390625*+(0|O(_,k[2+(l+g|0)>>1]))+h-s)/M,A>>>0<=3&&(t=ve+222896|0,s=.00390625*+k[P+200>>1]*+(d[35+(A+c|0)|0]<<1),T[t+24>>3]=s,g=ee(s)<2147483648?~~s:-2147483648,e[t+4>>2]=g,T[t+56>>3]=64*(+(d[35+(A+l|0)|0]<<1)-s)/M),(0|(A=A+1|0))!=6;);if(s=+((A=d[c+40|0])<<1),T[27864]=s,t=e[56618],A||(s=+(0|t),T[27864]=s),A=ee(s)<2147483648?~~s:-2147483648,e[55724]=A,g=d[l+40|0],e[55730]=0,e[55731]=1079394304,e[55738]=0,e[55739]=0,e[55725]=89,A=1,T[27868]=64*(+(0|(g?g<<1:t))-s)/M,Y)for(;t=O(A,80)+222896|0,p=d[(g=A+c|0)+56|0]<<2,e[t+12>>2]=p,s=+(0|p),T[t+40>>3]=s,p=A+l|0,T[t+72>>3]=64*(+(d[p+56|0]<<2)-s)/M,g=d[g+49|0],e[t+8>>2]=g,s=+(g>>>0),T[t+32>>3]=s,T[t- -64>>3]=64*(+d[p+49|0]-s)/M,(0|(A=A+1|0))!=7;);e[56606]=0}for(;;){if((0|(H=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],Y=O(A,10),e[56607]=(0|Y)/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],ve=e[56680],e[56608]=ve,c=e[56694],e[56656]=c,g=e[56696],e[56653]=g,p=e[56700],e[56655]=p,P=e[56684],e[56649]=P,e[56651]=e[56704],e[56654]=e[56688],e[56652]=e[56682],e[56650]=e[56692],A=0;t=O(A,80)+222896|0,s=T[t+48>>3]+T[t+16>>3],T[t+16>>3]=s,M=T[t+56>>3]+T[t+24>>3],T[t+24>>3]=M,h=T[t+72>>3]+T[t+40>>3],T[t+40>>3]=h,I=T[t- -64>>3]+T[t+32>>3],T[t+32>>3]=I,_=ee(s)<2147483648?~~s:-2147483648,e[t>>2]=_,_=ee(M)<2147483648?~~M:-2147483648,e[t+4>>2]=_,_=ee(h)<2147483648?~~h:-2147483648,e[t+12>>2]=_,_=ee(I)<2147483648?~~I:-2147483648,e[t+8>>2]=_,(0|(A=A+1|0))!=9;);for(s=T[28354]+T[28364],T[28364]=s,T[28366]=T[28356]+T[28366],M=T[28358]+T[28368],T[28368]=M,h=T[28360]+T[28370],T[28370]=h,I=T[28362]+T[28372],T[28372]=I,A=ee(s)<2147483648?~~s:-2147483648,e[56680]=A,A=ee(M)<2147483648?~~M:-2147483648,e[56682]=A,A=ee(h)<2147483648?~~h:-2147483648,e[56684]=A,A=ee(I)<2147483648?~~I:-2147483648,e[56688]=A,s=T[28374]+0,T[28374]=s,A=ee(s)<2147483648?~~s:-2147483648,e[56692]=A,s=T[28376]+0,T[28376]=s,A=ee(s)<2147483648?~~s:-2147483648,e[56694]=A,s=T[28378]+0,T[28378]=s,A=ee(s)<2147483648?~~s:-2147483648,e[56696]=A,s=T[28380]+0,T[28380]=s,A=ee(s)<2147483648?~~s:-2147483648,e[56700]=A,s=T[28382]+0,T[28382]=s,A=ee(s)<2147483648?~~s:-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]+(O(e[50771],d[e[50766]+((0|A)>=127?127:A)|0])>>8),A=H-l|0,e[55923]=(0|A)>=64?64:A,e[55961]=(0|Y)/40960,A=ve-7|0,e[56658]=(0|A)>0?A:0,T[27974]=P>>>0<=87?.001*+k[111136+(P<<1)>>1]*.05:0,T[27975]=g>>>0<=87?.001*+k[111136+(g<<1)>>1]*.25:0,T[27973]=c>>>0<=87?.001*+k[111136+(c<<1)>>1]:0,T[27971]=p>>>0<=87?.001*+k[111136+(p<<1)>>1]*.05:0,s=(A=e[56629])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.6:0,T[r>>3]=s,s=(A=e[56630])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.4:0,T[r+8>>3]=s,s=(A=e[56631])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.15:0,T[r+16>>3]=s,s=(A=e[56632])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.06:0,T[r+24>>3]=s,s=(A=e[56633])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.04:0,T[r+32>>3]=s,s=(A=e[56634])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.022:0,T[r+40>>3]=s,s=(A=e[56635])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.03:0,T[r+48>>3]=s,s=(A=(0|(A=e[56657]-3|0))<=0?57:A)>>>0<=87?.001*+k[111136+(A<<1)>>1]:0,T[27977]=s/+e[55964],M=T[27968],h=T[27967],A=1;t=(l=A<<6)+223664|0,I=(s=xr(h*+e[(g=(c=A<<2)+226428|0)+48>>2]))*-s,T[t+216>>3]=I,s*=os(M*+e[g+8>>2]),s+=s,T[t+208>>3]=s,ie=1-s-I,T[t+200>>3]=ie,A>>>0<=5&&(g=e[(c=c+226428|0)+208>>2],t=l+223664|0,re=(J=xr(h*+e[c+248>>2]))*os(M*+(0|g)),re+=re,T[t+1488>>3]=re,J*=-J,T[t+1496>>3]=J,me=1-re-J,T[t+1480>>3]=me,T[t+256>>3]=.015625*(J-I),T[t+248>>3]=.015625*(re-s),T[t+240>>3]=.015625*(me-ie)),(0|(A=A+1|0))!=10;);for(J=(s=xr(h*+e[56619]))*-s,T[27985]=J,re=(s*=os(M*+(0-e[56609]|0)))+s,T[27984]=re,s=1-re-J,T[27983]=s,s!=0&&(s=1/s,T[27983]=s,J*=I=-s,T[27985]=J,re*=I,T[27984]=re),ie=(I=xr(h*+e[56669]))*-I,T[28145]=ie,me=(I*=os(M*+(0-e[56659]|0)))+I,T[28144]=me,I=1-me-ie,T[28143]=I,I!=0&&(I=1/I,T[28143]=I,ie*=Ne=-I,T[28145]=ie,me*=Ne,T[28144]=me),T[27990]=.015625*(ie-J),T[27989]=.015625*(me-re),T[27988]=.015625*(I-s),A=0;c=e[(l=226428+(A<<2)|0)+8>>2],t=223664+(A<<6)|0,I=(s=xr(h*+e[l+128>>2]))*os(M*+(0|c)),I+=I,T[t+848>>3]=I,s*=-s,T[t+856>>3]=s,T[t+840>>3]=T[r+(A<<3)>>3]*(1-I-s),(0|(A=A+1|0))!=7;);if(h=(s=xr(h*+(e[55918]/2|0)))*-s,T[28137]=h,s*=os(0*M),s+=s,T[28136]=s,T[28135]=1-s-h,A=1,(0|ua())!=1)continue;break C}break}A=1,e[54741]>0&&(e[54741]=0,e[55963]=64,e[56606]=l+-64,e[55923]=64,(0|ua())==1)||(A=0)}else{if(V=P=V-752|0,!t){Je(A=P+376|0,0,376),Mr(p,c,A),Mr(p,l,A=Je(P,0,376)),t=e[50768]+O(e[50769],g>>>6|0)|0,e[50768]=t,t>>=8,t=e[50770]+(O(e[50771],d[e[50766]+((0|t)>=127?127:t)|0])>>8)|0,e[50767]=t,T[A+368>>3]=(0|t)/4096|0,e[50773]&&(T[A+736>>3]=T[A+736>>3]/5,T[A+360>>3]=T[A+360>>3]/5),t=e[e[56797]+4>>2],ZA[e[e[t>>2]>>2]](t,A+376|0,110,110,-1,0),l=g-110|0,p=e[50758],t=e[50757];h:{for(;;){if((0|p)!=(0|(t=(t+1|0)%170|0))&&!((_=e[216192+(t<<4)>>2])-5>>>0<2)){if(c=1,(0|_)!=1)continue;break h}break}l=g-220|0,c=0}(0|l)>0&&(t=e[e[56797]+4>>2],ZA[e[e[t>>2]>>2]](t,A,l,l||1,-1,0)),c||(e[A+352>>2]=0,e[A+356>>2]=0,T[A>>3]=T[A+368>>3],t=e[e[56797]+4>>2],ZA[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],ZA[e[e[t>>2]>>2]](t,A,55,55,-1,0))}A=e[e[56797]+8>>2],t=e[51290],g=0|ZA[e[e[A>>2]>>2]](A,e[54046]-t>>>1|0,t),p=e[51290];h:if(g&&!((0|(t=e[50776]))>=(0|(ve=e[50773]))))for(Te=e[50777],Xe=(0|O(Te,3))/-4|0,s=.0009765625*+e[50780],_=e[50772],l=e[50778],cA=e[50775],H=e[50774],A=0;;){if(Y=d[_+(c=t+l|0)|0],H?Y=O(H,Y<<24>>24):(t=t+1|0,e[50776]=t,Y|=f[_+(c=t+l|0)|0]<<8),Y=ee(M=s*+(0|Y))<2147483648?~~M:-2147483648,k[(Fe=p+(A<<1)|0)>>1]=y[Fe>>1]+((0|O(Y,cA))/40|0),(0|c)>=(0|Te)&&(l=l+Xe|0,e[50778]=l),t=t+1|0,e[50776]=t,(0|t)>=(0|ve))break h;if(!(g>>>0>(A=A+1|0)>>>0))break}A=p+(g<<1)|0,e[51290]=A,V=P+752|0,A=te[54046]<=A>>>0}if(V=r- -64|0,A)break n;break o}e[50781]=A||100;break o}Ws(A,e[r+8>>2]);break o}A=e[r+8>>2],e[50759]=qA(203816,A,1344),e[50801]=e[A+108>>2]?105792:106064,A=(0|O(e[A+120>>2],26))/100|0,e[33038]=A,(0|(i=e[50754]))<=11e3&&(f[203300]=1,e[33038]=A<<1),e[54728]=e[50982],A=e[50979],t=e[50978],Je(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|O(t,i))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(d[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500,A=256,(0|(t=(0|(t=e[50785]))>=101?101:t))>=51&&(A=256+(((O(t,25)-1250&65535)>>>0)/50|0)|0),k[101990]=(0|O(k[102026],A))/256,k[101991]=(0|O(k[102027],A))/256,k[101992]=(0|O(k[102028],A))/256,k[101993]=(0|O(k[102029],A))/256,k[101994]=(0|O(k[102030],A))/256,k[101995]=(0|O(k[102031],A))/256,A=e[50790],k[101999]=(0|O(k[102035],O(A,-6)+256|0))/256,k[102e3]=(0|O(k[102036],O(A,-3)+256|0))/256,Vs(8,0,e[50986],0,e[51290]),Me(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|O(t,e[33037]))/16|0,e[50779]=A,e[50780]=(0|O(O(A,e[50985]),15))/100;break o}Vs(t>>8,A,e[r+8>>2],e[r+12>>2],c)}i=0,A=e[50757]+1|0,e[50757]=(0|A)<=169?A:0}if(f[218920]=i,!((c=e[51290])>>>0>2]=0,e[A>>2]=0,e[A+24>>2]=e[34438];a: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)),i=1,(0|t)<2)break a;for(;;){r=t?c+O(i,36)|0:0;n:{o:switch(0|A){case 2:case 3:if(!r|e[r>>2]!=8||(0|(r=e[r+28>>2]))==e[34389])break n;e[34389]=r;break n;case 0:break o;default:break n}(A=e[34440])?(ZA[0|A](l,0,r),t=e[34436],A=e[32538]):A=0}if(!((0|(i=i+1|0))<(0|t)))break}}else if((A=e[34440])&&0|ZA[0|A](l,r,e[34388]))break r;if(!hA(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],EA(1))))break}if(t=0,2&d[130152]||!(A=e[34440])||!(0|ZA[0|A](0,0,e[34388])))break A}EA(2),t=268439295}if((0|t)<=268437502){if(!t|(0|t)==268436479|(0|t)!=268437247)break e;return}}}function hA(A){var t,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0;V=t=V-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,xs(),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(Y=r>>>1&1,H=t+48|4,J=t+348|0,re=t+652|0,ie=e[32322],M=e[32320],me=t+60|0,ve=t+648|0,Te=t+56|0,Fe=t+620|0,P=t- -64|0;;){if(s=145840+(A<<5)|0,!(A=e[50756])|!e[A>>2]||(e[t+12>>2]=0,QA(A=t+16|0,e[s+8>>2],s,0,t+12|0),r=Ln(A),i=d[s+17|0],A=216192+(e[50758]<<4)|0,e[A>>2]=16,e[A+8>>2]=i,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),A=1,(0|(i=(0|(r=e[50757]-e[50758]|0))<=0?r+170|0:r))<=(0|((r=d[s+17|0])?(0|r)==2?25:15:10)))break e;if(I=e[36442],2&d[0|s])for(h=2047&y[s+4>>1];;){if(i=e[36443],g=127&(r=e[198304+(i<<2)>>2])){A=r>>>8|0,e[36443]=i+1;r:{a:{n:switch((31&r)-2|0){case 0:Ws(96&r|8,A),ns(2);break r;case 5:if((0|A)>=e[34064]||!e[(g=(i=A<<4)+136272|0)+4>>2])break r;Qt(10,0),A=216192+(e[50758]<<4)|0,e[A>>2]=6,g=e[g+4>>2],e[A+8>>2]=e[8+(i+136272|0)>>2]+44,e[A+12>>2]=5376,e[A+4>>2]=g;break a;case 8:if((0|((0|(i=e[50757]-e[50758]|0))<=0?i+170:i))<6)break r;g=e[47353],i=216192+(e[50758]<<4)|0,e[i>>2]=778,e[i+8>>2]=A,e[i+4>>2]=g+h&16777215;break a;case 9:if((0|((0|(i=e[50757]-e[50758]|0))<=0?i+170:i))<6)break r;g=e[33284],i=216192+(e[50758]<<4)|0,e[i>>2]=1034,e[i+8>>2]=A,e[i+4>>2]=g+1&16777215;break a;default:break n}Qt(10,0),i=216192+(e[50758]<<4)|0,e[i>>2]=12,e[i+8>>2]=A,e[i+4>>2]=g}A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}if(!(128&r))continue}break}(A=d[s+20|0])&&(1&f[e[47192]+48|0]&d[s+17|0]==2|1&f[e[s+8>>2]+7|0]||(e[36426]=0),r=e[47353]+(2047&y[s+4>>1])|0,e[36445]=r,4&A&&((0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(i=e[47568],A=216192+(e[50758]<<4)|0,e[A>>2]=522,e[A+8>>2]=i,e[A+4>>2]=16777215&r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),1&f[s+20|0]&&(r=y[s+4>>1],i=e[36444],e[36444]=i+1,(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(h=e[36445],g=e[47355],A=216192+(e[50758]<<4)|0,e[A>>2]=266,e[A+8>>2]=i+g,e[A+4>>2]=16777215&h|(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=I+1<<5,r=I-1<<5,!(i=d[s+18|0])|2&d[e[s+8>>2]+7|0]||Qt(i,1),g=A+145840|0,l=r+145840|0,h=1;r:{a:{if(e[47198]&&(p=e[s+8>>2],d[p+10|0]!=15)){n:if(d[s+17|0]==2)switch(d[l+17|0]-3|0){case 0:case 5:break a;default:break n}h=0,QA(t+704|0,p,s,Y,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)}n:switch(d[s+17|0]){case 0:Qt(e[s+12>>2],0),f[s+23|0]=d[e[s+8>>2]+14|0];break r;case 4:r=e[s+8>>2],(0|(A=d[g+17|0]))==2|!d[g+20|0]&(0|A)==3||(k[s>>1]=8192|y[s>>1]),2&d[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[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,Rt(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[P>>2]=e[t+640>>2],e[36424]<0&&(i=d[g+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=i,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,h=d[g+22|0],i=d[g+21|0],g=e[129280+(d[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(p=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=p),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,h|=i<<16,i=(0|i)==255,e[A+12>>2]=i?3604556:h,e[A+8>>2]=i?M:g,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),pA(r,0,t+48|0,s,0)),Rt(0,0,s,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],xs(),e[36427]=-1,e[36422]=0,(A=e[t+624>>2])&&(i=A,A=e[t+644>>2],ws(i,2,e[t+596>>2]<<1,e[t+552>>2],0,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 6:Rt(0,0,s,t+552|0,145784),8&d[0|s]&&(A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(i=e[36424]))<0||(e[(i=216192+(i<<4)|0)+4>>2]||(e[i+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],xs(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(i=A,A=e[t+644>>2],ws(r,2,e[t+596>>2]<<1,e[t+552>>2],i,A?(A<<5)/100|0:32))),A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(i=e[36424]))<0||(e[(i=216192+(i<<4)|0)+4>>2]||(e[i+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],xs(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(i=A,A=e[t+644>>2],ws(r,2,e[t+596>>2]<<1,e[t+552>>2],i,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 5:i=e[s+8>>2],e[H+40>>2]=0,e[(A=H)+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(d[g+17|0]-2|0){case 0:r=d[s+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=d[s+22|0],p=d[s+21|0],h=e[129280+(d[s+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&~p))?M:h,h=1;break c;case 1:break l;default:break u}if(!d[g+20|0]){r=d[g+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=d[g+22|0],p=d[g+21|0],h=e[129280+(d[g+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&~p))?M:h,h=1;break c}}if(h=0,e[36424]>=0)break o;r=d[g+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=d[s+22|0],p=d[s+21|0],h=e[129280+(d[s+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&~p))?M:h,h=0}_=e[50758],e[36424]=_,e[36440]=0,e[(_=216192+(_<<4)|0)>>2]=9,e[_+4>>2]=0,e[_+12>>2]=c?3604556:255&r|(255&p)<<16,e[_+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}o:if(!(2&d[i+7|0])&d[l+17|0]!=2)8&d[0|s]&&Qt(50,0);else{if(Rt(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],pA(i,0,t+48|0,s,0),!(8&d[0|s]))break o;Qt(25,1),pA(i,0,t+48|0,s,0)}o:if(h){if(e[36455]!=e[36454])break o;e[36455]=e[50758]}else k[s>>1]=8192|y[s>>1];if(Rt(0,0,s,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],pA(i,0,t+48|0,s,0),d[s+20|0]|d[84+(145840+(I<<5)|0)|0]||((0|(A=d[g+17|0]))==7&&(Qt(20,0),A=d[g+17|0]),(255&A)!=6))break r;Qt(12,0);break r;case 7:o:{c:{u:{l:{i:switch((A=d[g+17|0])-2|0){case 1:break l;case 0:break i;default:break u}r=d[s+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,h=d[s+22|0],A=d[s+21|0],i=e[129280+(d[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(p=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=p),r=(p=!(255&~A))?M:i;break c}r=d[g+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,h=d[g+22|0],A=d[g+21|0],i=e[129280+(d[g+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(p=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=p),r=(p=!(255&~A))?M:i;break c}if(e[36424]>=0)break o;r=d[s+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,h=d[s+22|0],A=d[s+21|0],i=e[129280+(d[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(p=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=p),r=(p=!(255&~A))?M:i}i=e[50758],e[36424]=i,e[36440]=0,e[(i=216192+(i<<4)|0)>>2]=9,e[i+4>>2]=0,e[i+12>>2]=p?3604556:(255&A)<<16|h,e[i+8>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,A=d[g+17|0]}o:{c:{u:switch((255&A)-2|0){case 1:if(d[g+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}k[s>>1]=8192|y[s>>1]}Rt(0,0,s,t+552|0,145784),e[t+56>>2]=0,e[t+60>>2]=0,e[P>>2]=0,e[P+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[P>>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&d[0|s]&&pA(e[s+8>>2],0,t+48|0,s,0),pA(e[s+8>>2],0,t+48|0,s,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[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,1&f[0|s]||(r=d[s+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,i=d[s+22|0],r=d[s+21|0],h=e[129280+(d[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(p=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=p),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,i|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:i,e[A+8>>2]=r?M:h,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),d[l+17|0]==8&&(e[36426]=0),Rt(0,0,s,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,d[g+17|0]==2){e[36455]==e[36454]&&(e[36455]=e[50758]),pA(e[s+8>>2],0,t+48|0,s,0);break r}if(!(!(1&f[0|s])|d[l+17|0]!=2)){pA(e[s+8>>2],0,t+48|0,s,0);break r}e[36426]=0,pA(e[s+8>>2],0,t+48|0,s,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[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,i=e[e[s+8>>2]+4>>2],1&f[0|s]||(r=d[s+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,h=d[s+22|0],r=d[s+21|0],p=e[129280+(d[s+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,h|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:h,e[A+8>>2]=r?M:p,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),d[l+17|0]==8&&(e[36426]=0),d[g+17|0]!=2|e[36455]!=e[36454]||(e[36455]=e[50758]),Rt(0,0,s,t+552|0,145784),(0|(A=e[t+584>>2]-d[s+18|0]|0))>0&&Qt(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,pA(e[s+8>>2],0,t+48|0,s,i<<24>>31&5);break r;case 2:break n;default:break r}p=e[s+8>>2]}I=d[s+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[P>>2]=0,e[P+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,Rt(0,0,s,t+552|0,145784),A=e[t+628>>2],e[t+56>>2]=A,e[t+92>>2]=e[t+596>>2]<<1;a:{if(!A||(c=0,i=ve,r=me,2&d[t+552|0])){if(d[l+17|0]?(c=0,Rt(0,0,l,t+400|0,0),A=e[t+476>>2],e[t+56>>2]=A,!A|!(2&d[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 a;e[t+48>>2]=1,e[t+52>>2]=1,i=Fe,r=Te}e[r>>2]=e[i>>2]}e[t+64>>2]=e[t+640>>2],r=d[s+16|0],A=0,(i=d[s+7|0])?(ya(i,t+96|0),r=_i(e[t+220>>2]),(0|(i=e[t+224>>2]))<=0||(A=_i(i))):r=e[129280+(r<<2)>>2],e[36455]==e[36454]&&(e[36455]=e[50758]),i=(i=15&I)>>>0<2?1:i>>>0>6?3:2;a:{n:switch(d[l+17|0]-3|0){case 2:case 4:c=d[s+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=d[s+22|0],l=d[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+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?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,pA(p,1,t+48|0,s,i);break a;case 0:case 5:c=d[s+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,pA(p,1,t+48|0,s,i),c=d[s+22|0],l=d[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+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?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0;break a;default:break n}c?(c=d[s+22|0],(0|(l=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+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]=ie,l=e[50758]+1|0,e[50758]=(0|l)<=169?l:0,c=d[s+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,pA(p,1,t+48|0,s,i),l=d[s+21|0],c=d[s+22|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+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?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0):(1&f[0|s]||(c=d[s+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=d[s+22|0],l=d[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+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?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),pA(p,1,t+48|0,s,i))}!e[47198]|1^h||(QA(t+704|0,e[s+8>>2],s,Y,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=re;a:{if(!r&&(!d[g+17|0]||(e[t+72>>2]=0,Rt(0,0,g,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=J,!r)))break a;e[t+72>>2]=e[A>>2]}pA(p,2,t+48|0,s,i)}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],xs(),e[36427]=-1,A=0,e[36423]<=0||(r=e[47568],i=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&i,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),e[36423]=0,A=0)}return V=t+720|0,A}function SA(A,t,r,s){var i,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0;V=i=V-48|0;e:{if(r>>>0<=2){for(cA=e[(r<<=2)+124732>>2],gA=e[r+124720>>2];(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Ie(t):(e[t+4>>2]=r+1,r=d[0|r]),(0|r)==32|r-9>>>0<5;);_=1;A:{r:switch(r-43|0){case 0:case 2:break r;default:break A}_=(0|r)==45?-1:1,(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Ie(t):(e[t+4>>2]=r+1,r=d[0|r])}A:{r:{for(;;){if(f[g+84056|0]==(32|r)){if(g>>>0>6||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Ie(t):(e[t+4>>2]=r+1,r=d[0|r])),(0|(g=g+1|0))!=8)continue;break r}break}if((0|g)!=3){if((0|g)==8)break r;if(!s|g>>>0<4)break A;if((0|g)==8)break r}if((0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),!(!s|g>>>0<4))for(r=(0|r)<0;r||(e[t+4>>2]=e[t+4>>2]-1),(g=g-1|0)>>>0>3;);}V=M=V-16|0,Z(he(he(0|_)*he(1/0))),(t=2147483647&(p=B(2)))-8388608>>>0<=2130706431?(r=t,r<<=25,s=(t=t>>>7|0)+1065353216|0):(r=p<<25,s=p>>>7|2147418112,t>>>0>=2139095040||(r=0,s=0,t&&(wt(M,r=t,0,0,0,(t=Ce(t))+81|0),h=e[M>>2],I=e[M+4>>2],r=e[M+8>>2],s=65536^e[M+12>>2]|16265-t<<16))),e[i>>2]=h,e[i+4>>2]=I,e[i+8>>2]=r,e[i+12>>2]=-2147483648&p|s,V=M+16|0,h=e[i+8>>2],I=e[i+12>>2],p=e[i>>2],P=e[i+4>>2];break e}A:{r:{a:if(!g){for(g=0;;){if(f[g+84473|0]!=(32|r))break a;if(g>>>0>1||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Ie(t):(e[t+4>>2]=r+1,r=d[0|r])),(0|(g=g+1|0))==3)break}break r}a:switch(0|g){case 0:if((0|r)==48){if((0|(g=e[t+4>>2]))==e[t+104>>2]?g=Ie(t):(e[t+4>>2]=g+1,g=d[0|g]),(-33&g)==88){V=c=V-432|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?g=Ie(t):(e[t+4>>2]=r+1,g=d[0|r]);n:{o:{for(;;){if((0|g)!=48){if((0|g)!=46)break n;if((0|(r=e[t+4>>2]))!=e[t+104>>2]){e[t+4>>2]=r+1,g=d[0|r];break o}break}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(Xe=1,e[t+4>>2]=r+1,g=d[0|r]):(Xe=1,g=Ie(t))}g=Ie(t)}if(J=1,(0|g)==48){for(;re=(r=re)-1|0,ie=ie-!r|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?g=Ie(t):(e[t+4>>2]=r+1,g=d[0|r]),(0|g)==48;);Xe=1}}for(P=1073676288;;){n:{r=32|g;o:{if(!((NA=g-48|0)>>>0<10)){if((0|g)!=46&r-97>>>0>=6)break n;if((0|g)==46){if(J)break n;J=1,re=h,ie=I;break o}}r=(0|g)>57?r-87|0:NA,(0|I)<=0&h>>>0<=7|(0|I)<0?l=r+(l<<4)|0:!I&h>>>0<=28?(ls(c+48|0,r),wA(c+32|0,Fe,Ne,p,P,0,0,0,1073414144),Fe=e[c+32>>2],Ne=e[c+36>>2],p=e[c+40>>2],P=e[c+44>>2],wA(c+16|0,e[c+48>>2],e[c+52>>2],e[c+56>>2],e[c+60>>2],Fe,Ne,p,P),ke(c,e[c+16>>2],e[c+20>>2],e[c+24>>2],e[c+28>>2],M,H,ve,Te),ve=e[c+8>>2],Te=e[c+12>>2],M=e[c>>2],H=e[c+4>>2]):Y|!r||(wA(c+80|0,Fe,Ne,p,P,0,0,0,1073610752),ke(c- -64|0,e[c+80>>2],e[c+84>>2],e[c+88>>2],e[c+92>>2],M,H,ve,Te),ve=e[c+72>>2],Te=e[c+76>>2],Y=1,M=e[c+64>>2],H=e[c+68>>2]),I=(h=h+1|0)?I:I+1|0,Xe=1}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(e[t+4>>2]=r+1,g=d[0|r]):g=Ie(t);continue}break}n:if(Xe){if((0|I)<=0&h>>>0<=7|(0|I)<0)for(p=h,P=I;l<<=4,(0|(p=p+1|0))!=8|(P=p?P:P+1|0););o:{c:{u:{if((-33&g)==80){if(p=pr(t,s),P=r=fe,p|(0|r)!=-2147483648)break o;if(s){if((0|(r=e[t+116>>2]))>0|(0|r)>=0)break u;break c}M=0,H=0,ys(t,0,0),r=0,t=0;break n}if(p=0,P=0,e[t+116>>2]<0)break o}e[t+4>>2]=e[t+4>>2]-1}p=0,P=0}if(l)if(r=p+((t=J?re:h)<<2)|0,t=(I=(J?ie:I)<<2|t>>>30)+P|0,(h=r-32|0)>>>0>0-cA>>>0&(0|(t=I=(r>>>0

>>0?t+1|0:t)-(r>>>0<32)|0))>=0|(0|t)>0)e[56798]=68,ls(c+160|0,_),wA(c+144|0,e[c+160>>2],e[c+164>>2],e[c+168>>2],e[c+172>>2],-1,-1,-1,2147418111),wA(c+128|0,e[c+144>>2],e[c+148>>2],e[c+152>>2],e[c+156>>2],-1,-1,-1,2147418111),M=e[c+128>>2],H=e[c+132>>2],r=e[c+140>>2],t=e[c+136>>2];else if((0|I)>=(0|(r=(t=cA-226|0)>>31))&t>>>0<=h>>>0|(0|r)<(0|I)){if((0|l)>=0)for(;ke(c+416|0,M,H,ve,Te,0,0,0,-1073807360),ke(c+400|0,M,H,ve,Te,(t=r=(0|(t=ei(M,H,ve,Te,1073610752)))>=0)?e[c+416>>2]:M,t?e[c+420>>2]:H,t?e[c+424>>2]:ve,t?e[c+428>>2]:Te),h=(t=h)-1|0,I=I-!t|0,ve=e[c+408>>2],Te=e[c+412>>2],M=e[c+400>>2],H=e[c+404>>2],(0|(l=r|l<<1))>=0;);t=I-((cA>>31)+(h>>>0>>0)|0)|0,(0|(r=(r=32+(h-cA|0)|0)>>>0>>0&(0|(t=r>>>0<32?t+1|0:t))<=0|(0|t)<0?(0|r)>0?r:0:gA))>=113?(ls(c+384|0,_),re=e[c+392>>2],ie=e[c+396>>2],Fe=e[c+384>>2],Ne=e[c+388>>2],p=0,t=0):(ir(c+352|0,Aa(1,144-r|0)),ls(c+336|0,_),Fe=e[c+336>>2],Ne=e[c+340>>2],re=e[c+344>>2],ie=e[c+348>>2],mo(c+368|0,e[c+352>>2],e[c+356>>2],e[c+360>>2],e[c+364>>2],Fe,Ne,re,ie),me=e[c+376>>2],RA=e[c+380>>2],p=e[c+372>>2],t=e[c+368>>2]),sa(c+320|0,(s=!(1&l)&!!(0|Tt(M,H,ve,Te,0,0,0,0))&(0|r)<32)+l|0),wA(c+304|0,Fe,Ne,re,ie,e[c+320>>2],e[c+324>>2],e[c+328>>2],e[c+332>>2]),r=t,ke(c+272|0,e[c+304>>2],e[c+308>>2],e[c+312>>2],e[c+316>>2],t,p,me,RA),wA(c+288|0,Fe,Ne,re,ie,(t=s)?0:M,t?0:H,t?0:ve,t?0:Te),ke(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]),pn(c+240|0,e[c+256>>2],e[c+260>>2],e[c+264>>2],e[c+268>>2],r,p,me,RA),Tt(t=e[c+240>>2],s=e[c+244>>2],r=e[c+248>>2],p=e[c+252>>2],0,0,0,0)||(e[56798]=68),AA(c+224|0,t,s,r,p,h),M=e[c+224>>2],H=e[c+228>>2],r=e[c+236>>2],t=e[c+232>>2]}else e[56798]=68,ls(c+208|0,_),wA(c+192|0,e[c+208>>2],e[c+212>>2],e[c+216>>2],e[c+220>>2],0,0,0,65536),wA(c+176|0,e[c+192>>2],e[c+196>>2],e[c+200>>2],e[c+204>>2],0,0,0,65536),M=e[c+176>>2],H=e[c+180>>2],r=e[c+188>>2],t=e[c+184>>2];else ir(c+112|0,0*+(0|_)),M=e[c+112>>2],H=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,!s)break c;if(e[t+4>>2]=r-2,!J)break o;e[t+4>>2]=r-3;break o}if(s)break o}ys(t,0,0)}ir(c+96|0,0*+(0|_)),M=e[c+96>>2],H=e[c+100>>2],r=e[c+108>>2],t=e[c+104>>2]}e[i+16>>2]=M,e[i+20>>2]=H,e[i+24>>2]=t,e[i+28>>2]=r,V=c+432|0,h=e[i+24>>2],I=e[i+28>>2],p=e[i+16>>2],P=e[i+20>>2];break e}e[t+116>>2]<0||(e[t+4>>2]=e[t+4>>2]-1)}g=t,me=_,c=s,t=0,_=0,V=l=V-8976|0,RA=(NA=0-cA|0)-gA|0;n:{o:{for(;;){if((0|r)!=48){if((0|r)!=46)break n;if((0|(r=e[g+4>>2]))!=e[g+104>>2]){e[g+4>>2]=r+1,r=d[0|r];break o}break}(0|(t=e[g+4>>2]))!=e[g+104>>2]?(e[g+4>>2]=t+1,r=d[0|t]):r=Ie(g),t=1}r=Ie(g)}if(Y=1,(0|r)==48){for(;h=(t=h)-1|0,I=I-!t|0,(0|(t=e[g+4>>2]))==e[g+104>>2]?r=Ie(g):(e[g+4>>2]=t+1,r=d[0|t]),(0|r)==48;);t=1}}e[l+784>>2]=0;n:{o:{c:{u:{l:{if((s=(0|r)==46)|(M=r-48|0)>>>0<=9)for(;;){i:{if(1&s){if(!Y){h=p,I=P,Y=1;break i}s=!t;break l}P=(p=p+1|0)?P:P+1|0,(0|_)<=2044?(Xe=(0|r)==48?Xe:p,t=(l+784|0)+(_<<2)|0,J&&(M=(O(e[t>>2],10)+r|0)-48|0),e[t>>2]=M,t=1,J=(r=(0|(s=J+1|0))==9)?0:s,_=r+_|0):(0|r)!=48&&(e[l+8960>>2]=1|e[l+8960>>2],Xe=18396)}if((0|(r=e[g+4>>2]))==e[g+104>>2]?r=Ie(g):(e[g+4>>2]=r+1,r=d[0|r]),!((s=(0|r)==46)|(M=r-48|0)>>>0<10))break}if(h=Y?h:p,I=Y?I:P,!(!t|(-33&r)!=69)){if(M=pr(g,c),H=t=fe,!(M|(0|t)!=-2147483648)){if(!c)break c;M=0,H=0,e[g+116>>2]<0||(e[g+4>>2]=e[g+4>>2]-1)}I=I+H|0,I=(h=h+M|0)>>>0>>0?I+1|0:I;break o}if(s=!t,(0|r)<0)break u}e[g+116>>2]<0||(e[g+4>>2]=e[g+4>>2]-1)}if(!s)break o;e[56798]=28}p=0,P=0,ys(g,0,0),r=0,t=0;break n}if(t=e[l+784>>2])if(p>>>0>9&(0|P)>=0|(0|P)>0|(0|p)!=(0|h)|(0|I)!=(0|P)|(t>>>gA|0?(0|gA)<=30:0))if(h>>>0>NA>>>1>>>0&(0|I)>=0|(0|I)>0)e[56798]=68,ls(l+96|0,me),wA(l+80|0,e[l+96>>2],e[l+100>>2],e[l+104>>2],e[l+108>>2],-1,-1,-1,2147418111),wA(l- -64|0,e[l+80>>2],e[l+84>>2],e[l+88>>2],e[l+92>>2],-1,-1,-1,2147418111),p=e[l+64>>2],P=e[l+68>>2],r=e[l+76>>2],t=e[l+72>>2];else if((r=h>>>0<(t=cA-226|0)>>>0)&(0|I)<=(0|(t>>=31))|(0|t)>(0|I))e[56798]=68,ls(l+144|0,me),wA(l+128|0,e[l+144>>2],e[l+148>>2],e[l+152>>2],e[l+156>>2],0,0,0,65536),wA(l+112|0,e[l+128>>2],e[l+132>>2],e[l+136>>2],e[l+140>>2],0,0,0,65536),p=e[l+112>>2],P=e[l+116>>2],r=e[l+124>>2],t=e[l+120>>2];else{if(J){if((0|J)<=8){for(g=e[(t=(l+784|0)+(_<<2)|0)>>2];g=O(g,10),(0|(J=J+1|0))!=9;);e[t>>2]=g}_=_+1|0}if(Y=h,!((0|Xe)>(0|h)|(0|Xe)>=9|(0|h)>17)){if((0|Y)==9){ls(l+192|0,me),sa(l+176|0,e[l+784>>2]),wA(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]),p=e[l+160>>2],P=e[l+164>>2],r=e[l+172>>2],t=e[l+168>>2];break n}if((0|Y)<=8){ls(l+272|0,me),sa(l+256|0,e[l+784>>2]),wA(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]),ls(l+224|0,e[124720+(0-Y<<2)>>2]),bs(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]),p=e[l+208>>2],P=e[l+212>>2],r=e[l+220>>2],t=e[l+216>>2];break n}if(t=27+(O(Y,-3)+gA|0)|0,!((r=e[l+784>>2])>>>t|0&&(0|t)<=30)){ls(l+352|0,me),sa(l+336|0,r),wA(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]),ls(l+304|0,e[124648+(Y<<2)>>2]),wA(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]),p=e[l+288>>2],P=e[l+292>>2],r=e[l+300>>2],t=e[l+296>>2];break n}}for(;!e[(l+784|0)+((_=(r=_)-1|0)<<2)>>2];);if(J=0,t=(0|Y)%9|0){if(s=0,t=(0|Y)<0?t+9|0:t,r){for(I=1e9/(0|(h=e[124720+(0-t<<2)>>2]))|0,M=0,g=0;p=(p=M)+(_=((P=e[(M=(l+784|0)+(g<<2)|0)>>2])>>>0)/(h>>>0)|0)|0,e[M>>2]=p,s=(p=!p&(0|s)==(0|g))?s+1&2047:s,Y=p?Y-9|0:Y,M=O(I,P-O(h,_)|0),(0|(g=g+1|0))!=(0|r););M&&(e[(l+784|0)+(r<<2)>>2]=M,r=r+1|0)}else r=0;Y=9+(Y-t|0)|0}else s=0;for(;;){g=(l+784|0)+(s<<2)|0;o:{for(;;){if(((0|Y)!=36|te[g>>2]>=10384593)&(0|Y)>=36)break o;for(_=r+2047|0,M=0,t=r;r=t,h=M,M=(t=e[(_=(l+784|0)+((p=2047&_)<<2)|0)>>2])<<29,t=P=t>>>3|0,!(I=(h=h+M|0)>>>0>>0?t+1|0:t)&h>>>0<1000000001?M=0:h=(t=h)-et(M=Yi(t,I,1e9),fe,1e9,0)|0,e[_>>2]=h,t=(0|p)!=(r-1&2047)||(0|s)==(0|p)||h?r:p,_=p-1|0,(0|s)!=(0|p););if(J=J-29|0,M)break}(0|(s=s-1&2047))==(0|t)&&(g=r=(h=l+784|0)+((t+2046&2047)<<2)|0,I=e[r>>2],r=t-1&2047,e[g>>2]=I|e[h+(r<<2)>>2]),Y=Y+9|0,e[(l+784|0)+(s<<2)>>2]=M;continue}break}o:{c:for(;;){for(h=r+1&2047,M=(l+784|0)+((r-1&2047)<<2)|0;;){p=(0|Y)>45?9:1;u:{for(;;){t=s,g=0;l:{for(;;){if((0|(s=t+g&2047))!=(0|r)&&!((s=e[(l+784|0)+(s<<2)>>2])>>>0<(I=e[124672+(g<<2)>>2])>>>0)){if(s>>>0>I>>>0)break l;if((0|(g=g+1|0))!=4)continue}break}if((0|Y)==36){for(h=0,I=0,g=0,p=0,P=0;(0|(s=t+g&2047))==(0|r)&&(e[780+(l+((r=r+1&2047)<<2)|0)>>2]=0),sa(l+768|0,e[(l+784|0)+(s<<2)>>2]),wA(l+752|0,h,I,p,P,0,0,1342177280,1075633366),ke(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]),p=e[l+744>>2],P=e[l+748>>2],h=e[l+736>>2],I=e[l+740>>2],(0|(g=g+1|0))!=4;);if(ls(l+720|0,me),wA(l+704|0,h,I,p,P,e[l+720>>2],e[l+724>>2],e[l+728>>2],e[l+732>>2]),p=e[l+712>>2],P=e[l+716>>2],h=0,I=0,M=e[l+704>>2],H=e[l+708>>2],(0|(s=(_=(0|(g=(c=J+113|0)-cA|0))<(0|gA))?(0|g)>0?g:0:gA))<=112)break u;break o}}if(J=p+J|0,s=r,(0|t)!=(0|r))break}for(P=1e9>>>p|0,_=~(-1<>2])>>>p|0)|0,e[g>>2]=I,s=(I=!I&(0|t)==(0|s))?s+1&2047:s,Y=I?Y-9|0:Y,g=O(P,c&_),(0|r)!=(0|(t=t+1&2047)););if(!g)continue;if((0|s)!=(0|h)){e[(l+784|0)+(r<<2)>>2]=g,r=h;continue c}e[M>>2]=1|e[M>>2];continue}break}break}ir(l+656|0,Aa(1,225-s|0)),mo(l+688|0,e[l+656>>2],e[l+660>>2],e[l+664>>2],e[l+668>>2],M,H,p,P),Fe=e[l+696>>2],Ne=e[l+700>>2],ve=e[l+688>>2],Te=e[l+692>>2],ir(l+640|0,Aa(1,113-s|0)),Tr(l+672|0,M,H,p,P,e[l+640>>2],e[l+644>>2],e[l+648>>2],e[l+652>>2]),pn(l+624|0,M,H,p,P,h=e[l+672>>2],I=e[l+676>>2],re=e[l+680>>2],ie=e[l+684>>2]),ke(l+608|0,ve,Te,Fe,Ne,e[l+624>>2],e[l+628>>2],e[l+632>>2],e[l+636>>2]),p=e[l+616>>2],P=e[l+620>>2],M=e[l+608>>2],H=e[l+612>>2]}if((0|(Y=t+4&2047))!=(0|r)){o:if((Y=e[(l+784|0)+(Y<<2)>>2])>>>0<=499999999){if(!Y&(t+5&2047)==(0|r))break o;ir(l+496|0,.25*+(0|me)),ke(l+480|0,h,I,re,ie,e[l+496>>2],e[l+500>>2],e[l+504>>2],e[l+508>>2]),re=e[l+488>>2],ie=e[l+492>>2],h=e[l+480>>2],I=e[l+484>>2]}else(0|Y)==5e8?($A=+(0|me),(t+5&2047)!=(0|r)?(ir(l+560|0,.75*$A),ke(l+544|0,h,I,re,ie,e[l+560>>2],e[l+564>>2],e[l+568>>2],e[l+572>>2]),re=e[l+552>>2],ie=e[l+556>>2],h=e[l+544>>2],I=e[l+548>>2]):(ir(l+528|0,.5*$A),ke(l+512|0,h,I,re,ie,e[l+528>>2],e[l+532>>2],e[l+536>>2],e[l+540>>2]),re=e[l+520>>2],ie=e[l+524>>2],h=e[l+512>>2],I=e[l+516>>2])):(ir(l+592|0,.75*+(0|me)),ke(l+576|0,h,I,re,ie,e[l+592>>2],e[l+596>>2],e[l+600>>2],e[l+604>>2]),re=e[l+584>>2],ie=e[l+588>>2],h=e[l+576>>2],I=e[l+580>>2]);(0|s)>111||(Tr(l+464|0,h,I,re,ie,0,0,0,1073676288),Tt(e[l+464>>2],e[l+468>>2],e[l+472>>2],e[l+476>>2],0,0,0,0)||(ke(l+448|0,h,I,re,ie,0,0,0,1073676288),re=e[l+456>>2],ie=e[l+460>>2],h=e[l+448>>2],I=e[l+452>>2]))}ke(l+432|0,M,H,p,P,h,I,re,ie),pn(l+416|0,e[l+432>>2],e[l+436>>2],e[l+440>>2],e[l+444>>2],ve,Te,Fe,Ne),p=e[l+424>>2],P=e[l+428>>2],M=e[l+416>>2],H=e[l+420>>2],(RA-2|0)>=(2147483647&c)||(e[l+408>>2]=p,e[l+412>>2]=2147483647&P,e[l+400>>2]=M,e[l+404>>2]=H,wA(l+384|0,M,H,p,P,0,0,0,1073610752),p=(t=(0|(t=ei(e[l+400>>2],e[l+404>>2],e[l+408>>2],e[l+412>>2],1081081856)))>=0)?e[l+392>>2]:p,P=t?e[l+396>>2]:P,M=t?e[l+384>>2]:M,H=t?e[l+388>>2]:H,J=t+J|0,!(!!(0|Tt(h,I,re,ie,0,0,0,0))&(t?_&(0|s)!=(0|g):_))&(J+110|0)<=(0|RA)||(e[56798]=68)),AA(l+368|0,M,H,p,P,J),p=e[l+368>>2],P=e[l+372>>2],r=e[l+380>>2],t=e[l+376>>2]}else ls(l+48|0,me),sa(l+32|0,t),wA(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]),p=e[l+16>>2],P=e[l+20>>2],r=e[l+28>>2],t=e[l+24>>2];else ir(l,0*+(0|me)),p=e[l>>2],P=e[l+4>>2],r=e[l+12>>2],t=e[l+8>>2]}e[i+40>>2]=t,e[i+44>>2]=r,e[i+32>>2]=p,e[i+36>>2]=P,V=l+8976|0,h=e[i+40>>2],I=e[i+44>>2],p=e[i+32>>2],P=e[i+36>>2];break e;case 3:break r;default:break a}(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=Ie(t):(e[t+4>>2]=r+1,r=d[0|r]),(0|r)!=40){if(I=2147450880,e[t+116>>2]<0)break e;e[t+4>>2]=e[t+4>>2]-1;break e}for(g=1;(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Ie(t):(e[t+4>>2]=r+1,r=d[0|r]),r-48>>>0<10|r-65>>>0<26|(0|r)==95||!(r-97>>>0>=26);)g=g+1|0;if(I=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(s){if(g)break r;break e}break A}for(;g=g-1|0,(0|r)>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),g;);break e}e[56798]=28,ys(t,0,0)}I=0}e[A>>2]=p,e[A+4>>2]=P,e[A+8>>2]=h,e[A+12>>2]=I,V=i+48|0}function pA(A,t,r,s,i){var l,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0;if(V=l=V-112|0,e[r+8>>2]){cA=e[50754]/70|0,H=(M=e[s+12>>2])||256;e:if((0|t)!=2){if((0|t)==1){A:if(d[A+11|0]!=3)switch(d[s-15|0]-3|0){case 0:case 5:break A;default:break e}H=(0|(M=e[e[47192]+44>>2]))<(0|H)?H:M}}else{if((0|(M=e[e[47192]+80>>2]))<=0|!(8&d[0|s]|M>>>0<=d[A+14|0]|32&d[A+6|0]))break e;cA<<=1}if(e[36436]=0,ie=A,gA=t,h=s,V=Y=V-16|0,A=e[34460]+e[r+8>>2]|0,t=(t=d[A+2|0])>>>0>=24?24:t,e[Y+12>>2]=t,g=e[r+12>>2]+e[r+24>>2]|0,e[36422]=g,t){for(M=A+4|0,c=1&k[A+4>>1];A=145488+(I<<3)|0,s=M+(c?I<<6:O(I,44))|0,e[A+4>>2]=s,_=y[s>>1],k[A+2>>1]=_,k[A>>1]=d[s+16|0],p=2&_?I:p,(0|(I=I+1|0))!=(0|t););M=145488,(0|p)<=0||((0|gA)!=1?(t=t-p|0,e[Y+12>>2]=t,M=145488+(p<<3)|0):(t=p+1|0,e[Y+12>>2]=t,M=145488))}else t=0,M=145488;if(!(!e[r+4>>2]|e[r+20>>2]|d[ie+11|0]!=2)){if(c=e[r+36>>2],s=e[r+40>>2],A=0,(0|(t=e[Y+12>>2]))>=2){p=c>>>12|0,_=s>>>26&7,me=s>>>18&248,J=O(re=63&s,50),Te=63&(Fe=c>>>6|0),I=c<<1&126,Ne=O(s>>>16&31,50)-750|0,Xe=O(s>>>11&31,50)-750|0,ve=O(s>>>6&31,50)-750|0;e:{A:if((0|gA)!=1){if(!(p|re))break e;if(8&p?(t=e[4+(M+((g=t-1|0)<<3)|0)>>2],k[t>>1]<0?A=t:(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,g=y[t+20>>1]|y[t+22>>1]<<16,A=177888+(A<<6)|0,c=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=c,k[A+18>>1]=c>>>16,k[A+20>>1]=g,k[A+22>>1]=g>>>16,g=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=c,k[A+2>>1]=c>>>16,k[A+4>>1]=g,k[A+6>>1]=g>>>16,g=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=c,k[A+10>>1]=c>>>16,k[A+12>>1]=g,k[A+14>>1]=g>>>16,g=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=c,k[A+26>>1]=c>>>16,k[A+28>>1]=g,k[A+30>>1]=g>>>16,g=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=c,k[A+34>>1]=c>>>16,k[A+36>>1]=g,k[A+38>>1]=g>>>16,g=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=c,k[A+42>>1]=c>>>16,k[A+44>>1]=g,k[A+46>>1]=g>>>16,g=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=c,k[A+50>>1]=c>>>16,k[A+52>>1]=g,k[A+54>>1]=g>>>16,g=y[t+60>>1]|y[t+62>>1]<<16,t=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=t,k[A+58>>1]=t>>>16,k[A+60>>1]=g,k[A+62>>1]=g>>>16,f[A+16|0]=0,k[A>>1]=32768|y[A>>1],g=e[Y+12>>2]-1|0),e[4+(M+(g<<3)|0)>>2]=A,t=1792,(0|(g=k[A+4>>1]))<300||(t=1536,g>>>0<400||(t=g>>>0<500?1280:1024)),e[36436]=t,c=35):(e[Y+12>>2]=t+1,k[(A=(g=M+(t<<3)|0)-8|0)>>1]=I,t=e[A+4>>2],A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(Fe=A<<6)+177888|0)&&(c=y[t+4>>1]|y[t+6>>1]<<16,P=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=P,k[A+2>>1]=P>>>16,k[A+4>>1]=c,k[A+6>>1]=c>>>16,c=y[t+60>>1]|y[t+62>>1]<<16,P=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=P,k[A+58>>1]=P>>>16,k[A+60>>1]=c,k[A+62>>1]=c>>>16,c=y[t+52>>1]|y[t+54>>1]<<16,P=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=P,k[A+50>>1]=P>>>16,k[A+52>>1]=c,k[A+54>>1]=c>>>16,c=y[t+44>>1]|y[t+46>>1]<<16,P=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=P,k[A+42>>1]=P>>>16,k[A+44>>1]=c,k[A+46>>1]=c>>>16,c=y[t+36>>1]|y[t+38>>1]<<16,P=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=P,k[A+34>>1]=P>>>16,k[A+36>>1]=c,k[A+38>>1]=c>>>16,c=y[t+28>>1]|y[t+30>>1]<<16,P=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=P,k[A+26>>1]=P>>>16,k[A+28>>1]=c,k[A+30>>1]=c>>>16,c=y[t+20>>1]|y[t+22>>1]<<16,P=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=P,k[A+18>>1]=P>>>16,k[A+20>>1]=c,k[A+22>>1]=c>>>16,c=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=t,k[A+10>>1]=t>>>16,k[A+12>>1]=c,k[A+14>>1]=c>>>16,f[Fe+177904|0]=0,k[A>>1]=32768|y[A>>1]),k[g>>1]=0,e[g+4>>2]=A,I>>>0>=37&&(e[36422]=(I+e[36422]|0)-36),c=Te<<1,re&&X(A,J,ve,Xe,_,Ne,me,p)),e[e[32972]+132>>2]||(t=d[A+17|0])&&(t=k[102896+(((0|(t=(c<<6>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],f[A+18|0]=(0|O(t,d[A+18|0]))/512,f[A+19|0]=(0|O(t,d[A+19|0]))/512,f[A+20|0]=(0|O(t,d[A+20|0]))/512,f[A+21|0]=(0|O(t,d[A+21|0]))/512,f[A+22|0]=(0|O(t,d[A+22|0]))/512,f[A+23|0]=(0|O(t,d[A+23|0]))/512,f[A+24|0]=(0|O(t,d[A+24|0]))/512,f[A+25|0]=(0|O(t,d[A+25|0]))/512),s-536870912>>>0<=1073741823){if(_=e[44469],(0|(g=e[Y+12>>2]))>0)for(A=O(s>>>29|0,10)+102854|0,me=k[A+4>>1],re=k[A+2>>1],J=k[A>>1],Ne=k[A+6>>1],Xe=k[A+8>>1],c=0;t=e[(ve=M+(c<<3)|0)+4>>2],k[t>>1]<0?A=t:(A=(Te=(_=(0|(A=_+1|0))<=169?A:0)<<6)+177888|0)?(s=y[t+4>>1]|y[t+6>>1]<<16,g=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=g,k[A+2>>1]=g>>>16,k[A+4>>1]=s,k[A+6>>1]=s>>>16,s=y[t+60>>1]|y[t+62>>1]<<16,g=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=g,k[A+58>>1]=g>>>16,k[A+60>>1]=s,k[A+62>>1]=s>>>16,s=y[t+52>>1]|y[t+54>>1]<<16,g=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=g,k[A+50>>1]=g>>>16,k[A+52>>1]=s,k[A+54>>1]=s>>>16,s=y[t+44>>1]|y[t+46>>1]<<16,g=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=g,k[A+42>>1]=g>>>16,k[A+44>>1]=s,k[A+46>>1]=s>>>16,s=y[t+36>>1]|y[t+38>>1]<<16,g=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=g,k[A+34>>1]=g>>>16,k[A+36>>1]=s,k[A+38>>1]=s>>>16,s=y[t+28>>1]|y[t+30>>1]<<16,g=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=g,k[A+26>>1]=g>>>16,k[A+28>>1]=s,k[A+30>>1]=s>>>16,s=y[t+20>>1]|y[t+22>>1]<<16,g=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=g,k[A+18>>1]=g>>>16,k[A+20>>1]=s,k[A+22>>1]=s>>>16,s=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=t,k[A+10>>1]=t>>>16,k[A+12>>1]=s,k[A+14>>1]=s>>>16,f[Te+177904|0]=0,k[A>>1]=32768|y[A>>1],g=e[Y+12>>2]):A=0,e[ve+4>>2]=A,k[A+8>>1]=(0|O(me,k[A+8>>1]))/256,k[A+6>>1]=(0|O(re,k[A+6>>1]))/256,k[A+4>>1]=(0|O(J,k[A+4>>1]))/256,k[A+12>>1]=(0|O(Xe,k[A+12>>1]))/256,k[A+10>>1]=(0|O(Ne,k[A+10>>1]))/256,(0|g)>(0|(c=c+1|0)););e[44469]=_}if(!A)break e}else{t=e[M+4>>2],(0|(g=k[t>>1]))<0?A=t:(s=(0|(s=e[44469]+1|0))<=169?s:0,e[44469]=s,(s=(g=s<<6)+177888|0)&&(A=y[t+4>>1]|y[t+6>>1]<<16,P=y[t>>1]|y[t+2>>1]<<16,k[s>>1]=P,k[s+2>>1]=P>>>16,k[s+4>>1]=A,k[s+6>>1]=A>>>16,A=y[t+60>>1]|y[t+62>>1]<<16,P=y[t+56>>1]|y[t+58>>1]<<16,k[s+56>>1]=P,k[s+58>>1]=P>>>16,k[s+60>>1]=A,k[s+62>>1]=A>>>16,A=y[t+52>>1]|y[t+54>>1]<<16,P=y[t+48>>1]|y[t+50>>1]<<16,k[s+48>>1]=P,k[s+50>>1]=P>>>16,k[s+52>>1]=A,k[s+54>>1]=A>>>16,A=y[t+44>>1]|y[t+46>>1]<<16,P=y[t+40>>1]|y[t+42>>1]<<16,k[s+40>>1]=P,k[s+42>>1]=P>>>16,k[s+44>>1]=A,k[s+46>>1]=A>>>16,A=y[t+36>>1]|y[t+38>>1]<<16,P=y[t+32>>1]|y[t+34>>1]<<16,k[s+32>>1]=P,k[s+34>>1]=P>>>16,k[s+36>>1]=A,k[s+38>>1]=A>>>16,A=y[t+28>>1]|y[t+30>>1]<<16,P=y[t+24>>1]|y[t+26>>1]<<16,k[s+24>>1]=P,k[s+26>>1]=P>>>16,k[s+28>>1]=A,k[s+30>>1]=A>>>16,A=y[t+20>>1]|y[t+22>>1]<<16,P=y[t+16>>1]|y[t+18>>1]<<16,k[s+16>>1]=P,k[s+18>>1]=P>>>16,k[s+20>>1]=A,k[s+22>>1]=A>>>16,A=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[s+8>>1]=t,k[s+10>>1]=t>>>16,k[s+12>>1]=A,k[s+14>>1]=A>>>16,f[g+177904|0]=0,g=-32768|y[s>>1],k[s>>1]=g,A=s)),e[M+4>>2]=A,k[M>>1]=I||50,k[M+2>>1]=16384|y[M+2>>1],k[A>>1]=16384|g,g=e[M+12>>2],t=d[g+17|0],s=e[32972],e[s+132>>2]&&(f[A+39|0]=d[g+39|0]-4);r:if(re){if(2048&c){t=(O(t,31&Fe)>>>0)/30|0,e[s+132>>2]||(s=d[A+17|0])&&(t=k[102896+(((0|(t=(t<<6>>>0)/(s>>>0)|0))>=199?199:t)<<1)>>1],f[A+18|0]=(0|O(t,d[A+18|0]))/512,f[A+19|0]=(0|O(t,d[A+19|0]))/512,f[A+20|0]=(0|O(t,d[A+20|0]))/512,f[A+21|0]=(0|O(t,d[A+21|0]))/512,f[A+22|0]=(0|O(t,d[A+22|0]))/512,f[A+23|0]=(0|O(t,d[A+23|0]))/512,f[A+24|0]=(0|O(t,d[A+24|0]))/512,f[A+25|0]=(0|O(t,d[A+25|0]))/512),X(A,J,ve,Xe,_,Ne,me,p);break r}if(X(A,J,ve,Xe,_,Ne,me,p),e[e[32972]+132>>2]||!(t=d[A+17|0]))break r;t=k[102896+(((0|(t=(Te<<7>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],f[A+18|0]=(0|O(t,d[A+18|0]))/512,f[A+19|0]=(0|O(t,d[A+19|0]))/512,f[A+20|0]=(0|O(t,d[A+20|0]))/512,f[A+21|0]=(0|O(t,d[A+21|0]))/512,f[A+22|0]=(0|O(t,d[A+22|0]))/512,f[A+23|0]=(0|O(t,d[A+23|0]))/512,f[A+24|0]=(0|O(t,d[A+24|0]))/512,f[A+25|0]=(0|O(t,d[A+25|0]))/512}else if(s=e[s+132>>2],8&p){if(s||!(s=d[A+17|0]))break r;t=((16320&O(t,48))>>>0)/(s>>>0)|0,t=k[102896+((t>>>0>=199?199:t)<<1)>>1],f[A+18|0]=(0|O(t,d[A+18|0]))/512,f[A+19|0]=(0|O(t,d[A+19|0]))/512,f[A+20|0]=(0|O(t,d[A+20|0]))/512,f[A+21|0]=(0|O(t,d[A+21|0]))/512,f[A+22|0]=(0|O(t,d[A+22|0]))/512,f[A+23|0]=(0|O(t,d[A+23|0]))/512,f[A+24|0]=(0|O(t,d[A+24|0]))/512,f[A+25|0]=(0|O(t,d[A+25|0]))/512}else s||(t=d[A+17|0])&&(t=k[102896+(((t=1792/(t>>>0)|0)>>>0>=199?199:t)<<1)>>1],f[A+18|0]=(0|O(t,d[A+18|0]))/512,f[A+19|0]=(0|O(t,d[A+19|0]))/512,f[A+20|0]=(0|O(t,d[A+20|0]))/512,f[A+21|0]=(0|O(t,d[A+21|0]))/512,f[A+22|0]=(0|O(t,d[A+22|0]))/512,f[A+23|0]=(0|O(t,d[A+23|0]))/512,f[A+24|0]=(0|O(t,d[A+24|0]))/512,f[A+25|0]=(0|O(t,d[A+25|0]))/512);if(!(8&p))break A;t=2816,(0|(s=k[A+4>>1]))<300||(t=2560,s>>>0<400||(t=s>>>0<500?2304:2048)),e[36436]=t}4&p&&(k[A>>1]=32|y[A>>1]),2&p&&(k[A>>1]=16|y[A>>1])}64&p&&Qt(20,0),A=I&p<<27>>31}else A=0;g=A+e[36422]|0,e[36422]=g,t=e[Y+12>>2]}if((0|(s=t-1|0))<=0)c=0;else{if(A=0,I=0,c=0,t-2>>>0>=3)for(me=-4&s,_=0;c=(((k[(p=I<<3)+M>>1]+c|0)+k[M+(8|p)>>1]|0)+k[M+(16|p)>>1]|0)+k[M+(24|p)>>1]|0,I=I+4|0,(0|me)!=(0|(_=_+4|0)););if(p=3&s)for(;c=k[M+(I<<3)>>1]+c|0,I=I+1|0,(0|p)!=(0|(A=A+1|0)););}if(A=t,(p=e[r+20>>2])&&(A=s,I=p+e[34460]|0,(_=d[I+2|0])&&(re=y[I+4>>1],k[M+(s<<3)>>1]=d[I+20|0],p=1,A=t,(0|_)!=1))){if(me=I+4|0,re&=1,Ne=1&(I=_-1|0),(0|_)!=2)for(Xe=-2&I,_=0;ve=me+(p<<6)|0,Te=me+O(p,44)|0,Fe=d[(J=re?ve:Te)+16|0],e[(I=M+(A<<3)|0)+4>>2]=J,k[I>>1]=Fe,k[I+2>>1]=y[J>>1],ve=d[(J=re?ve- -64|0:Te+44|0)+16|0],e[I+12>>2]=J,k[I+8>>1]=ve,k[I+10>>1]=y[J>>1],p=p+2|0,A=A+2|0,(0|Xe)!=(0|(_=_+2|0)););Ne&&(p=me+(re?p<<6:O(p,44))|0,_=d[p+16|0],e[(I=M+(A<<3)|0)+4>>2]=p,k[I>>1]=_,k[I+2>>1]=y[p>>1],A=A+1|0)}e:if(!((0|c)<=0)){A:{r:switch(gA-1|0){case 1:if(p=(0|(p=(e[r+44>>2]+g|0)-45|0))<=10?10:p,8&d[0|h]&&(p=p+(d[e[36128]+14|0]<<1)|0),(0|s)<=0)break e;if(h=(p<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,p=0;k[(c=(g=I<<3)+M|0)>>1]=(0|O(h,k[c>>1]))/256,k[(g=M+(8|g)|0)>>1]=(0|O(h,k[g>>1]))/256,I=I+2|0,(0|t)!=(0|(p=p+2|0)););if(!(1&s))break e;k[(t=M+(I<<3)|0)>>1]=(0|O(h,k[t>>1]))/256;break e;case 0:if(e[r>>2]!=1||(0|(p=e[r+44>>2]))>129)break A;k[M>>1]=(0|O(p,k[M>>1]))/130;break A;default:break r}(0|(p=e[r+44>>2]))<=0||(g=(p-c|0)+g|0,e[36422]=g)}if(!(!g|(0|s)<=0)){if(h=(c+g<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,p=0;k[(c=(g=I<<3)+M|0)>>1]=(0|O(h,k[c>>1]))/256,k[(g=M+(8|g)|0)>>1]=(0|O(h,k[g>>1]))/256,I=I+2|0,(0|t)!=(0|(p=p+2|0)););1&s&&(k[(t=M+(I<<3)|0)>>1]=(0|O(h,k[t>>1]))/256)}}if(e[l+108>>2]=A,V=Y+16|0,M){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),I=(A=e[e[32972]+132>>2])?1:3,t=e[M+4>>2],e[r+28>>2]|!d[145748]||(f[145748]=0,I=A?2:4),(s=e[36426])&&(!((2&(A=y[s>>1]))>>>1|d[s+16|0]<2)|16&A||(g=216192+(e[36439]<<4)|0,e[g+12>>2]=t,8&A&&(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(p=A<<6)+177888|0)&&(h=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=c,k[A+2>>1]=c>>>16,k[A+4>>1]=h,k[A+6>>1]=h>>>16,h=y[t+60>>1]|y[t+62>>1]<<16,c=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=c,k[A+58>>1]=c>>>16,k[A+60>>1]=h,k[A+62>>1]=h>>>16,h=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=c,k[A+50>>1]=c>>>16,k[A+52>>1]=h,k[A+54>>1]=h>>>16,h=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=c,k[A+42>>1]=c>>>16,k[A+44>>1]=h,k[A+46>>1]=h>>>16,h=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=c,k[A+34>>1]=c>>>16,k[A+36>>1]=h,k[A+38>>1]=h>>>16,h=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=c,k[A+26>>1]=c>>>16,k[A+28>>1]=h,k[A+30>>1]=h>>>16,h=y[t+20>>1]|y[t+22>>1]<<16,c=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=c,k[A+18>>1]=c>>>16,k[A+20>>1]=h,k[A+22>>1]=h>>>16,h=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=c,k[A+10>>1]=c>>>16,k[A+12>>1]=h,k[A+14>>1]=h>>>16,f[p+177904|0]=0,k[A>>1]=32768|y[A>>1]),k[(p=p+177888|0)+8>>1]=y[s+8>>1],f[p+21|0]=d[s+21|0],k[p+10>>1]=y[s+10>>1],f[p+22|0]=d[s+22|0],k[p+12>>1]=y[s+12>>1],f[p+23|0]=d[s+23|0],k[p+14>>1]=y[s+14>>1],f[p+24|0]=d[s+24|0],f[p+25|0]=d[s+25|0],e[g+12>>2]=A))),(0|gA)!=2|d[ie+11|0]!=2||(xs(),e[36427]=e[50758]),!((0|(ie=e[l+108>>2]))<2)){for(A=e[36433],h=(O(256-A|0,H)+(A<<8)|0)/256|0,A=e[36432],g=(O(256-A|0,H)+(A<<8)|0)/256|0,c=e[50754],A=0,s=1;p=y[(Y=(M+(s<<3)|0)-8|0)+2>>1],p=(0|O((0|O(c,k[Y>>1]))/1e3|0,4&p?g:16384&p?h:H))/256|0,e[(s<<2)+l>>2]=p,A=A+p|0,(0|ie)!=(0|(s=s+1|0)););if(!((0|A)<=0|(0|A)>=(0|cA)|(0|ie)<2)){if(s=1,h=1&(p=ie-1|0),(0|ie)!=2)for(g=-2&p,H=0;e[(p=(s<<2)+l|0)>>2]=(0|O(e[p>>2],cA))/(0|A),e[p+4>>2]=(0|O(e[p+4>>2],cA))/(0|A),s=s+2|0,(0|g)!=(0|(H=H+2|0)););h&&(e[(s=(s<<2)+l|0)>>2]=(0|O(e[s>>2],cA))/(0|A))}if(H=0,!((0|ie)<2))for(ie=gA+256|0,s=1;A=e[4+(M+(s<<3)|0)>>2],!(p=e[r+28>>2])|128&d[0|t]||(e[36422]=0,ws(p,ie,0,c=e[r>>2],0,h=(h=e[r+32>>2])?(h<<5)/100|0:32),f[145748]=1,e[r+28>>2]=0),(0|i)<0||(i=64&d[0|t]?6:i,(e[l+108>>2]-1|0)==(0|s)&&(i=(p=i)|(3840&(i=e[36436])?i:0))),p=e[(s<<2)+l>>2],e[36440]=p+e[36440],e[36441]=p+e[36441],p?(h=e[50758],e[36439]=h,(0|i)>=0&&(e[(h=216192+(h<<4)|0)>>2]=I,e[h+12>>2]=A,e[h+8>>2]=t,e[h+4>>2]=p+(i<<16),t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0),e[36426]=A,H=p+H|0):e[36426]=0,t=A,(0|(s=s+1|0))>2];);}!e[36438]|(0|gA)==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)}}V=l+112|0}function DA(A,t,r,s){var i,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0;V=i=V-1856|0,e[i+164>>2]=0,r?P=e[r>>2]:Je(r=i- -64|0,0,96),e[33264]=0,e[i+1824>>2]=0,e[i+1828>>2]=0,e[i+1832>>2]=0,e[i+1836>>2]=0,f[i+1616|0]=0,f[i+992|0]=0,f[i+1200|0]=0,f[i+784|0]=0;e:if(e[A+688>>2]){for(e[i+1840>>2]=t,d[0|(l=t)]==32&&(l=t+1|0,e[i+1840>>2]=l),_=i+416|1,Fe=i+1844|1,Xe=i+1848|1,cA=i+1852|1,e[i+1820>>2]=l,WA(i+168|0,l),l=e[i+1820>>2];(32|d[0|l])!=32;)l=WA(i+164|0,l)+e[i+1820>>2]|0,e[i+1820>>2]=l,J=J+1|0;qA(i+256|0,t,Ne=(0|(g=l-t|0))>=159?159:g),!(ve=4194304&P)|(0|J)!=1?(ie=((0|(l=e[47202]))==36)<<2,(0|J)==1|(0|l)!=36||(l=e[i+1840>>2]-1|0,e[i+1840>>2]=l,f[0|l]=95,ie=0,c=!!(0|zt(A,i+1840|0,i+1616|0,i+1832|0,0,r)),l=e[47202])):(c=1,WA(i+172|0,l+1|0),yt(e[i+172>>2])&&(0|jt(e[i+164>>2]))==(0|jt(e[i+172>>2]))&&(c=0),ie=(0|(l=e[47202]))==36?4:c,c=0);A:{r:{a:{n:{o:if(16&l)Y=15&l,ie=0;else{if(re=1,c||(re=!!(0|zt(A,i+1840|0,i+1616|0,i+1832|0,2,r))),50331648&(l=e[i+1832>>2])&&(g=e[i+1820>>2],d[g+1|0]==46&&(f[g+1|0]=32,l=e[i+1832>>2])),536870912&l){if(!s)break e;GA(s,e[i+1840>>2]);break e}if(8192&l|!(128&l)|re)s=e[33264];else if(l=e[i+1840>>2],e[i+1820>>2]=l,!((0|(s=e[33264]))<=0))for(c=0;d[0|l]==32&&(f[0|l]=45,c=c+1|0,l=e[i+1820>>2],s=e[33264]),l=l+1|0,e[i+1820>>2]=l,(0|s)>(0|c););c:if(!(s|(0|J)!=1)&&(g=WA(i+576|0,M=e[i+1840>>2]),d[g+M|0]==32)){c=i+1408|0,s=M;u:{l:{i:{for(;;){p:if(yt(e[i+576>>2])){C:{if(d[(p=s+g|0)+1|0]==46){Y=0;h:switch(d[(l=g+2|0)+s|0]-32|0){case 0:break C;case 7:break h;default:break p}if(Y=1,g=l,d[p+3|0]==115)break C;break p}if(Y=1,(0|h)<=0)break i}if(!((0|g)<=0)){if(H=3&g,I=0,g>>>0<4)l=0;else for(me=-4&g,l=0,p=0;f[0|c]=d[s+l|0],f[c+1|0]=d[(1|l)+s|0],f[c+2|0]=d[(2|l)+s|0],f[c+3|0]=d[(3|l)+s|0],l=l+4|0,c=c+4|0,(0|me)!=(0|(p=p+4|0)););if(H)for(;f[0|c]=d[s+l|0],l=l+1|0,c=c+1|0,(0|H)!=(0|(I=I+1|0)););}if(h=h+1|0,Y)s=s+g|0;else if(g=WA(i+576|0,s=3+(s+g|0)|0),d[s+g|0]==32)continue}break}if(!((0|h)<2)){(g=(g=c-(l=i+1408|0)|0)+(l=qA(M,l,g))|0)>>>0>>0&&Je(g,32,(i+1408|0)+s-(l+c)|0),e[33264]=(h<<1)-2,e[i+1836>>2]=0;break l}}if(!h)break c;if(e[i+1832>>2]=0,e[i+1836>>2]=0,!e[33264])break u}e[i+1832>>2]=128}ie=1}if(d[i+1616|0]==21){GA(189088,i+1616|0),l=0;break e}if(gA=d[i+1833|0],c=1,!re){if(e[i+168>>2]-48>>>0<10){if(FA(A,84174,189088),l=0,d[189088]==21)break e;if(!(!(128&d[A+109|0])|32&d[r+2|0])){f[189088]=21,f[189089]=0;break e}c=!!(0|Ss(A,e[i+1840>>2],i+1616|0,i+1832|0,r,0))}else c=0;if(!(c|(3&P)==2)&&(16777216&(s=e[A+104>>2])||(c=0,!(!(33554432&s)|!(1&P))))&&(16&P||(c=0,!(1&f[r+13|0])))){me=e[i+1840>>2],l=0,h=0,p=0,V=H=V-224|0,f[0|(I=i+1616|0)]=0,e[H+216>>2]=0,e[H+220>>2]=0;c:if(!(f[me-2|0]-48>>>0<10|(1&f[0|r]?0:2&d[A+107|0])||(s=d[0|(g=me+1|0)],(!(2561&y[A+106>>1])|!(1&f[r+2|0]))&(0|s)==32))){if((0|(h=d[0|me]))!=32){for(Y=32767,s=0;;){if(!(l=Ma(101868,h<<24>>24,8))){h=0;break c}if(M=0,(0|(l=e[(l<<2)-305584>>2]))==(0|s)&&!((0|(M=p+1|0))<=2)){h=0;break c}u:{l:{i:{p:{if(!((0|s)<2)){if((0|s)==10|(0|s)==100)break p;if(!((0|s)>(0|l))){h=0;break c}}if(!s)break l;if((0|s)<(0|l))break i;break l}if((0|s)>=(0|l))break l}if(h=0,(0|Te)%10|(0|O(s,10))<(0|l))break c;l=l-s|0,Y=s;break u}if((0|l)>=(0|Y)){h=0;break c}Te=s+Te|0}if(h=d[0|g],g=c=g+1|0,s=l,p=M,(0|h)==32)break}s=d[0|c]}else c=g;if((s<<24>>24)-48>>>0<10)h=0;else if((0|(s=l+Te|0))>2])h=0;else if((0|s)>e[A+116>>2])h=0;else if(FA(A,85600,H+176|0),l=I,4&d[A+107|0]||(l=GA(I,l=H+176|0)+kA(l)|0),e[H+4>>2]=e[A+140>>2],e[H>>2]=s,lA(H+16|0,85839,H),h=0,d[0|c]!=46){cr(A,me,c,r,1)&&(e[r>>2]=32768|e[r>>2]),g=0;u:if(8&d[A+107|0]){if(p=e[r>>2],e[A+212>>2]==26741){if(32768&p)break u;if(!(16384&p))break c;g=1,p=0;l:{i:switch(d[0|c]-97|0){case 0:case 4:break i;default:break l}i:{p:{C:{h:switch((Y=d[c+1|0])-116|0){case 6:break l;case 1:case 2:case 3:case 4:case 5:break p;case 0:break h;default:break C}if(d[c+2|0]!=116)break i;break l}if((0|Y)==32)break l}if(!((0|s)%1e3|0)&&(0|Y)==108)break l}p=1}if(p)break u;break c}e[r>>2]=32768|p}e[(s=A+8232|0)>>2]=0,e[s+4>>2]=0,Ss(A,H+16|2,l,H+216|0,r,g),h=1,4&d[A+107|0]&&Jr(I,H+176|0)}}V=H+224|0,h?(e[i+1832>>2]=8192|e[i+1832>>2],c=1):c=0}}if(Y=re?ie:32&gA?1:ie,ie=0,!(!(1&P)|(0|J)<2)&&_A(e[i+168>>2])){c:{if(1&f[188785]){if(!(!(s=8192&(l=e[i+1832>>2]))|c))break c;ie=s>>>2^2048;break o}if(c)break n;l=e[i+1832>>2]}if(!(128&l|J>>>0>3)&&!((0|(l=e[A+8220>>2]))<4)&&(s=1,(0|l)>=e[A+8216>>2]))break A}}if(I=0,(0|Y)<=0)break a;s=Y;break A}if((0|(s=Y))>0)break A;I=0,M=0,p=0,h=0;break r}if(c)M=0,p=0,h=0;else{s=e[i+1840>>2],e[i+1820>>2]=s,l=999,h=0,M=0,_=0;a:{n:{o:{for(;;){c:{u:{l:{if(l-1>>>0>=2){if((0|J)<2||(WA(i+1408|0,s),(0|(l=e[i+1408>>2]))<577&e[A+600>>2]>0)||(l=jt(l),(e[l+4>>2]!=e[A+600>>2]?l:0)|e[A+40>>2]==1))break l;l=d[0|s],e[i+1408>>2]=l<<24>>24;i: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 i}I=WA(i+1408|0,s),re=9;i:{p:{C:{h:if(-33&(l=e[i+1408>>2])){for(c=0,p=0;;){b:{m:{if((0|l)==39){if((0|M)>0|(0|c)>1)break h;if(p=c?p:39,e[A+40>>2]!=3)break m;break b}p=c?p:l}c=c+1|0}if(!Va(A,l)){if((0|(l=e[i+1408>>2]))!=39&&!_A(l))break l;if(I=WA(i+1408|0,s+I|0)+I|0,-33&(l=e[i+1408>>2]))continue;break h}break}if((0|c)<=2)break C;re=c}else p=0;if((0|(l=e[A+40>>2]))!=2)break p;V=l=V-208|0,f[0|l]=0,c=d[0|(g=s-1|0)],f[0|g]=32,s=Dr(A,s,l,200,0,-2147483648,0),f[0|g]=c,V=l+208|0,s=!s|(32768&s)>>>15;break i}l=e[A+40>>2],re=c}s=(f[A+168|0]+1|0)<(re-((0|l)==(0|p))|0)}if(!s)break l;s=e[i+1820>>2]}if(d[0|s]!=39)break u;h=67108864,ie=0}if(I=0,qt(A,i+992|0,0,M),s=e[i+1820>>2],(0|(l=d[0|s]))!=32)break c;M=0,p=0;break r}if(ie=0,s=js(A,s,i+992|0,1&(_|=(0|M)>0))+e[i+1820>>2]|0,e[i+1820>>2]=s,d[i+992|0]==21)break o;for(M=M+1|0,c=0;c=(l=c)+1|0,d[s+l|0]!=32;);h=67108864;continue}break}if(!d[i+992|0]|(0|l)==39||(f[s-1|0]=32,s=e[i+1820>>2]),g=Dr(A,s,i+1616|0,200,i+784|0,P,i+1832|0),(0|(s=d[i+1616|0]))==21){GA(189088,i+1616|0),l=0;break e}if(!(s|d[i+784|0])&&(WA(i+1408|0,e[i+1820>>2]),(0|J)==1&&(yt(e[i+1408>>2])||zn(e[i+1408>>2])))){Ya(A,e[i+1820>>2],i+1616|0,Y)&&GA(189088,i+1616|0),l=0;break e}e[i+172>>2]=f[e[i+1820>>2]-1|0];c:if(1024&g)for(me=i+176|1,Y=0,l=1,_=0,M=0;;){if((re=131072&g)|!(1&l)||(f[i+1408|0]=0,!(s=Dr(A,e[i+1820>>2],i+1408|0,200,i+576|0,805306368|P,i+1832|0)))){2048&g&&(e[A+8184>>2]=1),f[e[i+1820>>2]-1|0]=e[i+172>>2];u:{l:{i:{p:if(re){if(f[i+176|0]=0,l=e[i+1820>>2],s=1,p=63&g){if(H=1&g,M=p-1|0,c=0,(0|p)!=1)for(Te=p-H|0,p=0;I=l,e[i+1820>>2]=l+1,f[0|(ve=(i+176|0)+s|0)]=(0|c)!=(0|M)?d[0|l]:0,l=l+2|0,e[i+1820>>2]=l,f[ve+1|0]=(0|M)!=(1|c)?d[I+1|0]:0,c=c+2|0,s=s+2|0,(0|Te)!=(0|(p=p+2|0)););H&&(p=l+1|0,e[i+1820>>2]=p,f[(i+176|0)+s|0]=(0|c)!=(0|M)?d[0|l]:0,s=s+1|0,l=p)}f[(i+176|0)+s|0]=0}else{if(l=e[i+1820>>2],!(p=15&g))break i;if(s=0,c=p,I=3&g)for(;l=l+1|0,e[i+1820>>2]=l,(192&d[0|l])==128||(c=c-1|0,(0|I)!=(0|(s=s+1|0))););if(p>>>0<4)break p;for(;;)if(l=l+1|0,e[i+1820>>2]=l,(192&d[0|l])!=128){for(;l=l+1|0,e[i+1820>>2]=l,(192&d[0|l])==128;);for(;l=l+1|0,e[i+1820>>2]=l,(192&d[0|l])==128;);for(;l=l+1|0,e[i+1820>>2]=l,(192&d[0|l])==128;);if(s=(0|c)>4,c=c-4|0,!s)break}}if(s=l-1|0,e[i+172>>2]=f[0|s],f[0|s]=32,s=P|=8388608,!re)break l;if(St(i+576|0,i+784|0,12),e[i+1852>>2]=me,s=GA(i+1200|0,l=i+1616|0),zt(A,i+1852|0,l,i+1832|0,0,r)&&GA(s,i+1616|0),!(32&d[i+1833|0]))break u;f[0|s]=0,Ya(A,e[i+1852>>2],s,1);break u}s=l-1|0,e[i+172>>2]=f[0|s],f[0|s]=32,s=8388608|P}P=s,Jr(i+1200|0,i+784|0)}if(f[i+784|0]=0,p=1,s=zt(A,i+1820|0,i+1616|0,i+1824|0,1024,r),e[i+1832>>2]||(l=e[i+1828>>2],e[i+1832>>2]=e[i+1824>>2],e[i+1836>>2]=l,p=_),s){I=0,M=g;break a}if(I=Dr(A,e[i+1820>>2],i+1616|0,200,i+784|0,8404992&P,i+1832|0),l=1,M=g,_=p,d[i+1616|0]==21){f[e[i+1820>>2]-1|0]=e[i+172>>2],GA(189088,i+1616|0),l=0;break e}}else l=i+416|0,ce(A,e[i+1820>>2],s,l),I=Dr(A,e[i+1820>>2],i+1616|0,200,i+784|0,268435456|P,i+1832|0),qA(e[i+1820>>2],l,kA(l)),1024&I||(GA(i+1616|0,i+1408|0),l=GA(i+784|0,i+576|0),8&d[188788]&&(Gr(p=l,l=i+576|0),g=e[47195],e[i+48>>2]=l,tr(g,85205,i+48|0)),I=s),l=0;if(s=(c=1024&I)>>>10|0,Y>>>0>48)break c;if(Y=Y+1|0,g=I,!c)break}else I=g,M=0,_=0,s=0;if(s|!I)break n;for(g=GA(i+1408|0,i+1616|0),c=ce(A,e[i+1820>>2],I,i+416|0),p=_,l=I;;){c:{if(f[i+1616|0]=0,d[i+1200|0]){if(f[e[i+1820>>2]-1|0]=e[i+172>>2],s=zt(A,i+1840|0,i+1616|0,i+1824|0,c,r),f[e[i+1820>>2]-1|0]=32,d[i+1616|0]==21){A=i+416|0,qA(e[i+1820>>2],A,kA(A)),GA(189088,i+1616|0),l=0;break e}if(e[i+1832>>2]||(_=e[i+1828>>2],e[i+1832>>2]=e[i+1824>>2],e[i+1836>>2]=_),s){f[i+1200|0]=0;break c}p=e[i+1824>>2]?1:p}if(s=zt(A,i+1820|0,i+1616|0,i+1824|0,c,r),d[i+1616|0]==21){A=i+416|0,qA(e[i+1820>>2],A,kA(A)),GA(189088,i+1616|0),l=0;break e}if(e[i+1832>>2]||(_=e[i+1828>>2],e[i+1832>>2]=e[i+1824>>2],e[i+1836>>2]=_),!s)if(16384&l)GA(i+1616|0,g);else{P|=c<<11&8192|l<<9&134217728;u:if(524288&l){if(_=GA(i+576|0,s=i+784|0),l=Dr(A,e[i+1820>>2],i+1616|0,200,s,P,i+1832|0),Jr(s,_),s=0,!l){l=0;break u}if(1024&l)break u;s=1,c=ce(A,e[i+1820>>2],l,0)}else l=0,Dr(A,e[i+1820>>2],i+1616|0,200,0,P,i+1832|0),s=0;if(d[i+1616|0]==21){GA(189088,i+1616|0),A=i+416|0,qA(e[i+1820>>2],A,kA(A)),f[e[i+1820>>2]-1|0]=e[i+172>>2],l=0;break e}if(s)continue}}break}65536&I||(Tn(A,i+1616|0,200,i+784|0),f[i+784|0]=0),s=i+416|0,qA(e[i+1820>>2],s,kA(s));break a}GA(189088,A=i+992|0),l=!Hr(1|A,84744,3)<<12;break e}I=0,p=_}f[e[i+1820>>2]-1|0]=e[i+172>>2]}}if(s=e[i+164>>2],e[i+1852>>2]=8026656,e[i+1848>>2]=8022304,e[i+1844>>2]=7566112,4&P){r:{if((l=255&s)&&((0|l)==102||(Fe=Xe,wo(s<<24>>24))))break r;Fe=cA}Dr(A,Fe,189088,200,0,0,0)}for(s=0,l=i+1200|0,_=d[i+784|0];;){r:{a:{n:switch(0|(g=d[0|l])){case 0:break r;case 6:case 7:break n;default:break a}s=g}l=l+1|0;continue}break}r:if(s|p){if(e[A+32>>2]|65536&M){for(c=0,Vt(A,i+1616|0,i+1832|0,3,0),l=i+1200|0;;){a:switch(d[0|l]){case 6:c&&(f[0|l]=5),c=1;default:l=l+1|0;continue;case 0:break a}break}e[i+24>>2]=i+1616,e[i+20>>2]=i+1200,e[i+16>>2]=i+992,Bs(189088,200,85233,i+16|0),f[189287]=0,Vt(A,189088,i+1832|0,-1,0);break r}e[i+8>>2]=i+1616,e[i+4>>2]=i+1200,e[i>>2]=i+992,Bs(189088,200,85233,i),f[189287]=0,Vt(A,189088,i+1832|0,-1,0)}else Vt(A,s=i+1616|0,i+1832|0,-1,!!(0|_)<<1),e[i+40>>2]=s,e[i+36>>2]=i+1200,e[i+32>>2]=i+992,Bs(189088,200,85233,i+32|0),f[189287]=0;d[i+784|0]&&(s=kA(189088),f[983+(i-s|0)|0]=0,GA(s+189088|0,i+784|0)),16&(s=P|ie)&&(e[i+1832>>2]=-268435457&e[i+1832>>2]);r:if(!(128&s)|!(16&d[A+14|0]))if(3072&s){if(pa(A,6),!(2048&s))break r;e[i+1832>>2]=268435456|e[i+1832>>2]}else 16&d[O(e[33264],12)+r|0]&&(1536&(r=e[i+1832>>2])?pa(A,4):2048&r&&pa(A,3));else pa(A,3);8192&I&&(e[A+8192>>2]=2,e[A+8184>>2]=2);r:{if(8&(r=e[i+1836>>2]))e[A+8184>>2]=0,e[A+8188>>2]=3,s=A+8196|0;else if(1&r)e[A+8192>>2]=0,e[A+8184>>2]=2,s=A+8196|0;else if(2&r)e[A+8192>>2]=2,e[A+8184>>2]=0,e[A+8188>>2]=0,s=A+8196|0;else{if(!(4&r))break r;e[A+8184>>2]=0,e[A+8192>>2]=0,e[A+8196>>2]=2,s=A+8188|0}e[s>>2]=0}!d[e[i+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|J)!=1|e[A+212>>2]!=25966||!_A(e[i+168>>2])|e[i+168>>2]==105||(e[i+1832>>2]=16777216|e[i+1832>>2]);r:if(2&d[A+68|0]&&98304&(s=e[i+1832>>2])&&!((0|(r=kA(189088)-1|0))<=0))for(l=0;;){if(A=l+1|0,d[l+189088|0]==6){r=f[0|(A=A+189088|0)];a:{if(65536&s){if((0|q(69))==(0|r)?(J=q(101),f[0|A]=J):J=d[0|A],c=111,(0|q(79))==J<<24>>24)break a;break r}if((0|q(101))==(0|r)?(J=q(69),f[0|A]=J):J=d[0|A],c=79,(0|q(111))!=J<<24>>24)break r}f[0|A]=q(c);break r}if((0|r)==(0|(l=A)))break}A=e[i+1832>>2],qA(t,i+256|0,Ne),l=A|h;break e}if(l=0,f[i+1616|0]=0,Ya(A,e[i+1840>>2],i+1616|0,s)){if(g=GA(189088,i+1616|0),!ve){if(s=e[i+164>>2],e[i+1408>>2]=8026656,e[i+576>>2]=8022304,e[i+416>>2]=7566112,4&P){t=i+576|1,r=i+1408|1;A:{if((l=255&s)&&((0|l)==102||(_=t,wo(s<<24>>24))))break A;_=r}Dr(A,_,g,200,0,0,0)}l=128&e[i+1832>>2]}}else l=((0|J)>1)<<12}else f[189088]=0;return V=i+1856|0,l}function PA(A,t,r,s,i,l,c,g){var p,I,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0,bt=0,vt=0,Ot=0,Xt=0,ar=0,hr=0,dr=0,Sr=0,Wr=0,Kr=0,rs=0,cs=0,us=0,na=0,ia=0,Js=0,kn=0,jn=0,Da=0,Wn=0,Yn=0;V=p=V-384|0,I=e[t>>2];e:{A:{r:{a:{if(i){if(d[0|i]!=7)break a;e[t>>2]=(s||1)+I;break r}e[l>>2]=0,e[t>>2]=I+1;break e}bt=86135,Wr=268435456&c,Kr=134217728&c,rs=8388608&c,cs=16384&c,us=8192&c,Xt=r-1|0,ar=s-r|0,na=2&c,ia=128&c,Js=c>>>31|0,kn=-2147483648&c,hr=p+96|1;a:for(;;)for(e[p+268>>2]=0,J=(P=e[t>>2])+s|0,Xe=-2,Fe=-6,r=i,cA=kn,NA=0,vt=0,Ne=1,h=0,gA=0,$A=0;;){_=P,re=h;n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{for(;me=r,r=r+1|0,!((M=d[0|me])>>>0>9);){Y=r;U:switch(0|M){case 0:if(!(r=dr)){dr=0,r=86135;break N}for(;;){M=1;y:{M:switch(0|(h=d[0|r])){case 0:case 3:break L;case 5:break M;default:break y}M=2}r=(r+M|0)+(((0|h)==9)<<1)|0}case 1:if($A=1,!Js)continue;break l;case 2:$A=2;continue;case 4:dr=r;continue;case 5:r=me+2|0,h=e[A+320>>2];y:{if((P=d[me+1|0])>>>0>=32){if(!(h>>>P-32&1))break y;break l}if(!(h>>>P&1))break l}Ne=Ne+1|0;continue;case 9:r=me+3|0;continue;case 8:$A=1,vt=1,cA=0;break;case 3:break B;default:break U}}Y=0,h=re,P=_;U:switch(0|$A){case 0:y:{M:{if((0|(h=d[0|J]))!=(0|M)){if((0|h)!=69)break l;if((0|M)==101)break M;break l}if(Y=0,(192&M)==128)break y}Y=21}J=J+1|0,NA=NA+1|0;break n;case 1:break I;case 2:break U;default:break b}if(e[p+264>>2]=e[p+268>>2],!d[J-1|0])break l;Fe=(0|(h=Fe+6|0))>=19?19:h,Te=J+1|0,ve=WA(p+268|0,J),ie=d[0|J],Y=20,h=re;U:{y:switch(M-11|0){case 6:r=me+2|0,h=e[p+268>>2],P=f[me+1|0];M:if(M=e[604+(((P=((0|P)<65?191:-65)+P|0)<<2)+A|0)>>2])h=!!(0|jr(M,h));else{if((0|P)>7)break l;Q:{if((0|(M=e[A+600>>2]))>0){if((h=h-M|0)-1>>>0<255)break Q;break l}if((M=h-192|0)>>>0<=413){h=d[344+(d[M+94240|0]+A|0)|0]&1<>>0>255)break l}h=d[344+(A+h|0)|0]&1<>2]))break l;M:for(;;){if((0|(Y=d[0|h]))==7)break l;if((0|Y)==126){Y=20-Fe|0;break n}Q:if(ie){if(H=J,M=h,(0|Y)==(0|ie))for(;;){if((0|(Y=d[0|(M=M+1|0)]))!=(0|(h=d[0|(H=H+1|0)])))break Q;if(!h)break}}else M=h,H=J;if(Y){for(;;)if(P=d[0|M],M=h=M+1|0,!P)continue M}break}if((0|(h=H-J|0))<0)break l;J=h+J|0,Y=20-Fe|0;break n;case 14:M=e[p+268>>2];M:{Q:if(h=e[A+604>>2])h=!!(0|jr(h,M));else{F:{if((0|(h=e[A+600>>2]))>0){if((H=M-h|0)-1>>>0<255)break F;break M}if((h=M-192|0)>>>0<=413){h=1&f[344+(d[h+94240|0]+A|0)|0];break Q}if(H=M,M>>>0>255)break o}h=1&f[344+(A+H|0)|0]}if(h)break l;M=e[p+268>>2]}if(!Kr)break o;if((0|M)==32)break l;break o;case 4:if((h=e[p+268>>2])-48>>>0<10|h-2406>>>0<10)break o;if(!d[A+170|0])break l;Y=20-Fe|0;break n;case 5:if(oi(e[p+268>>2]))break l;break c;case 0:if(e[p+268>>2]==e[p+264>>2])break c;break l;case 17:r=me+2|0,h=32768,Y=0;M:{Q:switch((M=d[me+1|0])-1|0){case 0:break b;case 1:break Q;default:break M}if(Y=1,h=re,!rs)break b;break l}if((0|(h=240&M))==16){if(Y=23,h=re,g>>>(15&M)&16384)break b;break l}if((0|M)!=3&(0|h)!=32||(qA(h=p+96|0,Xt,P=1+(e[t>>2]+(NA+ar|0)|0)|0),f[0|(h=h+P|0)]=32,f[h+1|0]=0,e[33265]=0,e[33266]=0,e[p+16>>2]=hr,zt(A,p+16|0,p+272|0,133060,0,0),Y=23,!((0|M)!=3|(0|(H=e[33265]))>=0|16384&e[33266])))break n;if(h=re,P=_,H>>>(15&M)&16384)break b;break l;case 34:M:{if(h=ie-32|0){if((0|h)==13)break M;break l}if(!cs)break l}H=22-Fe|0;break u;case 10:if(h=1,d[0|r]==21)break U;break i;case 18:if((0|(H=e[p+268>>2]))!=32)for(M=J+ve|0;;){M:{Q:if(h=e[A+632>>2])h=!!(0|jr(h,H));else{F:{if((0|(h=e[A+600>>2]))>0){if((H=H-h|0)-1>>>0<255)break F;break M}if((h=H-192|0)>>>0<=413){h=128&d[344+(d[h+94240|0]+A|0)|0];break Q}if(H>>>0>255)break M}h=128&d[344+(A+H|0)|0]}if(h)break l}if(M=WA(p+268|0,M)+M|0,(0|(H=e[p+268>>2]))==32)break}H=19-Fe|0;break u;case 49:break p;case 2:break C;case 3:break h;case 1:break b;case 13:break m;case 12:break y;default:break x}WA(p+272|0,r),ve=-1;y:if((0|(h=e[p+272>>2]))!=(0|(M=e[p+268>>2])))if(-33&M)for(;;){ie=J,ve=-1;M:if((0|h)==18&&(h=f[me+2|0],Y=e[4788+((((0|h)<65?191:-65)+h<<2)+A|0)>>2])){for(;;){if((0|(P=d[0|Y]))==7)break M;if((0|P)==126){ve=0;break M}Q:if((0|(J=d[0|ie]))==(0|P)){if(h=ie,M=Y,J)for(;;){if((0|(P=d[0|(M=M+1|0)]))!=(0|(Y=d[0|(h=h+1|0)])))break Q;if(!Y)break}}else M=Y,h=ie;if(!P){h=h-ie|0;break}for(;h=d[0|M],M=Y=M+1|0,h;);}ve=h}if(P=WA(p+268|0,ie),(0|(h=e[p+272>>2]))==(0|(M=e[p+268>>2]))|!(-33&M))break y;if(J=P+ie|0,(0|ve)!=-1)break}else ie=J;else ie=J;J=(0|h)==(0|M)||(0|ve)>=0?ie:Te,Y=0;break n}for(;h=h+1|0,d[0|(r=r+1|0)]==21;);break i}r=r+1|0}Y=me}if(!(d[_-1|0]!=32&vt|cA||((0|(M=vt?Ne+4|0:Ne))>=(0|Ot)&&(jn=gA,Da=re,Ot=M,Wn=NA,bt=r),!(8&e[47197])|Wr|(0|M)<=0))){for(Gr(r,me=p+272|0),Te=e[47195],P=p+16|0,r=0,ie=0,cA=0,gA=0,V=J=V-496|0,f[J+80|0]=0,(0|s)>0?(qA(J+288|0,I,s),re=s):re=0,f[re+(h=J+288|0)|0]=0,_=kA(h)+h|0,ve=(0|c)<0;;){if(H=d[0|i],re=i,i=i+1|0,H>>>0>9)for(;;){B:{N:{L:{U:{y:{M:switch((h=255&H)-14|0){case 4:break L;case 3:break U;case 0:break y;case 14:break M;default:break N}if(re=re+2|0,H=32,!ve&(0|(i=d[0|i]))==1)break B;f[0|_]=36,GA(h=_+1|0,i=G(128960,i)),_=kA(i)+h|0;break B}h=d[re+2|0],H=d[0|i],e[J+36>>2]=127&d[re+3|0],e[J+32>>2]=4&h?80:83,lA(J+48|0,85131,J+32|0),1&h&&(i=kA(i=J+48|0)+i|0,f[0|i]=101,f[i+1|0]=0),2&(i=127&h)&&(h=kA(h=J+48|0)+h|0,f[0|h]=105,f[h+1|0]=0),4&i&&(h=kA(h=J+48|0)+h|0,f[0|h]=112,f[h+1|0]=0),8&i&&(h=kA(h=J+48|0)+h|0,f[0|h]=118,f[h+1|0]=0),16&i&&(h=kA(h=J+48|0)+h|0,f[0|h]=100,f[h+1|0]=0),32&i&&(h=kA(h=J+48|0)+h|0,f[0|h]=102,f[h+1|0]=0),i>>>0>=64&&(i=kA(i=J+48|0)+i|0,f[0|i]=113,f[i+1|0]=0),1&H&&(i=kA(i=J+48|0)+i|0,f[0|i]=116,f[i+1|0]=0),re=re+4|0,_=GA(_,i=J+48|0)+kA(i)|0,H=32;break B}re=re+2|0,H=d[f[0|i]+93871|0];break B}i=f[0|i],f[0|_]=76,h=((i=i+((0|i)<65?191:-65)|0)>>>0)/10|0,f[_+1|0]=h+48,H=i-O(h,10)|48,(0|gA)==1&&(f[0|_]=H,H=76),re=re+2|0,_=_+2|0;break B}H=h>>>0<=31?d[h+93904|0]:(0|h)==32?95:H,re=i}if(f[0|_]=H,i=re+1|0,_=_+1|0,!((H=d[0|re])>>>0>=10))break}h=1;B:switch(0|H){case 1:h=r;case 8:f[0|_]=0,_=J+80|0,r=h,gA=1;continue;case 2:f[0|_]=0,re=kA(h=J+288|0)+h|0,_=d[84899]|d[84900]<<8,f[0|re]=_,f[re+1|0]=_>>>8,gA=2,f[re+2|0]=d[84901],_=kA(h)+h|0;continue;case 5:ie=f[0|i],i=re+2|0;continue;case 9:cA=(d[0|i]+O(d[re+2|0],255)|0)-256|0,i=re+3|0;continue;case 0:case 3:break B;default:continue}break}if(f[0|_]=0,_=P,(0|cA)>0&&(e[J+16>>2]=cA,lA(P,85581,J+16|0),_=P+7|0),(0|ie)>0&&(e[J>>2]=ie,lA(_,85694,J),_=kA(_)+_|0),1&((0|(i=kA(J+80|0)))>0|r)){1&r&&(f[0|_]=95,_=_+1|0);B:if(!((0|(re=i-1|0))<0|_>>>0>=P>>>0))for(;;){if(f[0|_]=d[(J+80|0)+re|0],_=_+1|0,(0|re)<=0)break B;if(re=re-1|0,!(_>>>0

>>0))break}f[0|_]=41,f[_+1|0]=32,_=_+2|0}f[0|_]=0,f[(r=J+288|0)+((P+3|0)-_|0)|0]=0,Jr(_,r),(0|(r=kA(P)))<=7&&(Je(r+P|0,32,8-r|0),r=8),f[r+P|0]=0,V=J+496|0,e[p+4>>2]=P,e[p>>2]=(0|s)>1?M+35|0:M,e[p+8>>2]=me,tr(Te,89088,p)}r=Y;break l}if(!d[0|_])break l;Xe=(0|(h=Xe+2|0))>=19?19:h,WA(p+264|0,_),h=Br(p+268|0,P=_-1|0),ie=d[0|P],Te=P;I:{B:{N:{L:{U:{y:switch(M-10|0){case 13:if(h=(0|(RA=d[0|r]))==(0|(M=d[0|_])),ve=-1,(0|M)==32|(0|M)==(0|RA))break L;if(M)break U;break N;case 7:r=me+2|0,Y=e[p+268>>2],_=f[me+1|0];M:if(M=e[604+(((_=((0|_)<65?191:-65)+_|0)<<2)+A|0)>>2])M=!!(0|jr(M,Y));else{if((0|_)>7)break l;Q:{if((0|(M=e[A+600>>2]))>0){if((Y=Y-M|0)-1>>>0<255)break Q;break l}if((M=Y-192|0)>>>0<=413){M=d[344+(d[M+94240|0]+A|0)|0]&1<<_;break M}if(Y>>>0>255)break l}M=d[344+(A+Y|0)|0]&1<<_}if(!M)break l;P=1+(P-h|0)|0,Y=((0|_)==2?19:20)-Xe|0;break I;case 8:if(r=me+2|0,h=f[me+1|0],!(h=e[4788+((((0|h)<65?191:-65)+h<<2)+A|0)>>2]))break l;M:{for(;;){if((0|(ie=d[0|h]))==7)break l;if((0|ie)==126){ve=0;break M}M=P;Q:{F:{if((0|(me=(ve=kA(h))-1|0))>0)for(M=_-ve|0,Y=0,H=P;;){if(!d[0|(H=H-1|0)])break F;if((0|me)==(0|(Y=Y+1|0)))break}Ae:if(!((0|(Y=d[0|M]))!=(0|ie)|!Y))for(;;){if((0|(ie=d[0|(h=h+1|0)]))!=(0|(Y=d[0|(M=M+1|0)])))break Ae;if(!Y)break}if(!ie)break Q}for(M=h;Y=d[0|M],M=h=M+1|0,Y;);continue}break}if((0|ve)<0)break l}Y=20-Fe|0,P=1+(P-ve|0)|0;break I;case 15:M=e[p+268>>2];M:{Q:if(_=e[A+604>>2])_=!!(0|jr(_,M));else{F:{if((0|(_=e[A+600>>2]))>0){if((M=M-_|0)-1>>>0<255)break F;break M}if((_=M-192|0)>>>0<=413){_=1&f[344+(d[_+94240|0]+A|0)|0];break Q}if(M>>>0>255)break M}_=1&f[344+(A+M|0)|0]}if(_)break l}Y=20-Xe|0,P=1+(P-h|0)|0;break I;case 1:if(e[p+268>>2]!=e[p+264>>2])break l;Y=21-Xe|0,P=1+(P-h|0)|0;break I;case 5:if(!((_=e[p+268>>2])-48>>>0<10|_-2406>>>0<10))break l;Y=21-Xe|0,P=1+(P-h|0)|0;break I;case 6:if(oi(e[p+268>>2]))break l;Y=21-Fe|0,P=1+(P-h|0)|0;break I;case 18:if(r=me+2|0,!((0|(M=d[me+1|0]))==3|(240&M)==32)||(qA(h=p+96|0,Xt,P=1+(e[t>>2]+(NA+ar|0)|0)|0),f[0|(h=h+P|0)]=32,f[h+1|0]=0,e[33265]=0,e[33266]=0,e[p+16>>2]=hr,zt(A,p+16|0,p+272|0,133060,0,0),Y=23,!((0|M)!=3|(0|(H=e[33265]))>=0|16384&e[33266])))break n;if(h=re,P=_,H>>>(15&M)&16384)break b;break l;case 11:if(M=1,d[0|r]==21)for(;M=M+1|0,d[0|(r=r+1|0)]==21;);if(e[A+8208>>2]<(0|M))break l;Y=18+(M-Xe|0)|0;break I;case 0:if(Y=19,h=re,P=_,e[A+8212>>2]>0)break b;break l;case 19:if(Y=3,(0|(H=e[p+268>>2]))==32)break I;for(M=1+(P-h|0)|0;;){M:{Q:if(h=e[A+632>>2])h=!!(0|jr(h,H));else{F:{if((0|(h=e[A+600>>2]))>0){if((H=H-h|0)-1>>>0<255)break F;break M}if((h=H-192|0)>>>0<=413){h=128&d[344+(d[h+94240|0]+A|0)|0];break Q}if(H>>>0>255)break M}h=128&d[344+(A+H|0)|0]}if(h)break l}if(M=M-Br(p+268|0,M-1|0)|0,(0|(H=e[p+268>>2]))==32)break}break I;case 16:if(Y=1,h=re,P=_,e[A+8184>>2])break b;break l;case 9:if(Y=1,h=re,P=_,na)break b;break l;case 36:for(;;){if(Y=50,h=re,!(_=(255&ie)-32|0))break l;if((0|_)==14)break b;ie=d[0|(Te=Te-1|0)]}case 35:break y;default:break B}y:{if(h=ie-32|0){if((0|h)==13)break y;break l}if(!ia)break l}Y=22-Fe|0;break I}U:{for(;;){ve=-1,H=_,_=_-1|0;y:if((0|RA)==18&&(h=f[me+2|0],Y=e[4788+((((0|h)<65?191:-65)+h<<2)+A|0)>>2]))for(Yn=H+1|0;;){if((0|(Te=d[0|Y]))==7){ve=-1;break y}if((0|Te)==126){ve=0;break y}M=H;M:{if((0|(Sr=(ve=kA(Y))-1|0))>0)for(M=Yn-ve|0,ie=0,h=H;;){if(!d[0|(h=h-1|0)])break M;if((0|Sr)==(0|(ie=ie+1|0)))break}Q:if(!((0|(h=d[0|M]))!=(0|Te)|!h))for(;;){if((0|(Te=d[0|(Y=Y+1|0)]))!=(0|(h=d[0|(M=M+1|0)])))break Q;if(!h)break}if(!Te)break y}for(M=Y;h=d[0|M],M=Y=M+1|0,h;);}if(h=(0|(M=d[0|_]))==(0|RA),(0|M)==32|(0|M)==(0|RA))break U;if(!M){_=H;break N}if((0|ve)!=-1)break}_=H;break N}_=H}P=h?_:P}Y=0,P=(0|ve)<0?P:_+1|0;break I}if((0|M)!=(0|ie))break l;Y=4,(0|M)!=32&&(Y=(192&M)!=128?21-Xe|0:0)}h=re;break b}if((0|M)!=(0|ie))break l;H=(192&M)!=128?21-Fe|0:0;break u}if(Y=1,us)break l}Ne=Y+Ne|0;continue}if(h=f[me+1|0],re=d[me+3|0],P=d[me+2|0],1&!(e[A+8208>>2]|4&P)&f[A+84|0])break l;r=me+4|0,H=0,re=127&re|(127&P)<<8|h<<16;break u}C:if(!(Te>>>0<=(M=e[t>>2]+s|0)>>>0)){for(;;){if(d[0|M]!=101){if(h=M>>>0>>0,M=M+1|0,h)continue;break C}break}H=0,gA=M;break u}H=0;break u}Y=-20;break n}if(ie=0,(0|(M=e[p+268>>2]))!=32)for(H=J+ve|0,Y=0;;){if(!Y){i:{p:if(P=e[A+632>>2])M=!!(0|jr(P,M));else{C:{if((0|(P=e[A+600>>2]))>0){if((M=M-P|0)-1>>>0<255)break C;break i}if((P=M-192|0)>>>0<=413){M=128&d[344+(d[P+94240|0]+A|0)|0];break p}if(M>>>0>255)break i}M=128&d[344+(A+M|0)|0]}M&&(ie=ie+1|0)}M=e[p+268>>2]}i:if(P=e[A+632>>2])Y=!!(0|jr(P,M));else{p:{if((0|(P=e[A+600>>2]))>0){if(Y=0,(M=M-P|0)-1>>>0<255)break p;break i}if((P=M-192|0)>>>0<=413){Y=128&d[344+(d[P+94240|0]+A|0)|0];break i}if(Y=0,M>>>0>255)break i}Y=128&d[344+(A+M|0)|0]}if(H=WA(p+268|0,H)+H|0,(0|(M=e[p+268>>2]))==32)break}if(!((0|h)>(0|ie))){H=18+(h-Fe|0)|0;break u}}for(;h=d[0|r],r=i=r+1|0,h;);if(d[0|i]!=7)continue a;if(A=s+Wn|0,e[t>>2]=e[t>>2]+(A||1),Ot)break A;break r}h=re,J=Te,P=_,Ne=H+Ne|0;continue}J=J+ve|0,Y=21-Fe|0;break n}J=J+ve|0,Y=20-Fe|0}h=re,P=_,Ne=Y+Ne|0}}bt=86135}e[l+12>>2]=jn,e[l+8>>2]=Da,e[l+4>>2]=bt,e[l>>2]=Ot}V=p+384|0}function at(A,t){var r,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0,bt=0,vt=0,Ot=0;V=r=V-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(d[0|A]|8&t)break A;break e}if(!(8&t))break e}if(St(r+1088|0,A,40),16&t){if((0|Ns(GA(r+704|0,A)))<=0)break e;H=8&t}else(H=8&t)|d[r+1088|0]||(k[r+1088>>1]=d[85055]|d[85056]<<8,f[r+1090|0]=d[85057]),e[r+496>>2]=137584,e[r+500>>2]=47,e[r+504>>2]=47,lA(s=r+512|0,85286,r+496|0),e[r+484>>2]=r+1088,e[r+480>>2]=s,lA(s=r+704|0,85425,r+480|0),(0|Ns(s))>0||(e[r+468>>2]=47,e[r+472>>2]=47,e[r+464>>2]=137584,lA(s=r+512|0,85648,r+464|0),e[r+452>>2]=r+1088,e[r+448>>2]=s,lA(r+704|0,85425,r+448|0));if(i=H?86012:85055,!(J=ms(r+704|0,85712))){if(s=0,3&t)break e;i=(0|Us(s=r+1088|0))<0?i:s}if((Y=2&t)||(s=e[47192])&&(zi(s),e[47192]=0),me=GA(r+992|0,i),ie=GA(r+944|0,i),Y?((s=Zs(200992,43))&&(f[0|s]=0),e[r+432>>2]=A+3,lA(A=r+704|0,86030,r+432|0),Jr(200992,A)):(e[32972]=199592,St(200992,A,40),f[201088]=0,f[201040]=0,e[50299]=200992,e[50298]=201088,e[50297]=201040),BA(Y),J){for(Te=e[30450],Fe=r+548|0,Ne=r+544|0,Xe=r+540|0,cA=r+536|0,gA=r+532|0,NA=r+528|0,RA=12|(A=r+512|0),$A=8|A,bt=4|A;ct(r+704|0,190,J);){A=r+704|0;A:{if(d[r+704|0]!=35){r:if(!((0|(A=kA(r+704|0)-1|0))<=0))for(;;){if(!((0|(i=f[0|(s=(r+704|0)+A|0)]))==32|i-9>>>0<5))break r;if(f[0|s]=0,!((0|(A=A-1|0))>0))break}if(!(A=OA(r+704|0)))break A}f[0|A]=0}A=r+704|0;A:if(s=d[r+704|0])for(;;){if((0|(s=s<<24>>24))==32|s-9>>>0<5)break A;if(!(s=d[0|(A=A+1|0)]))break}if(f[0|A]=0,d[r+704|0])if(A=A+1|0,s=es(129744,r+704|0)){l=0,V=i=V-416|0;A:if(c=e[47192]){r:switch(s-19|0){case 16:if(e[i+32>>2]=i+412,(0|jA(A,84249,i+32|0))!=1)break A;e[c+324>>2]=e[i+412>>2];break A;case 8:Ai(A,c+320|0,27);break A;case 2:if(e[i+48>>2]=188784,jA(A,84249,i+48|0),!(A=d[188784]))break A;e[c+152>>2]=A;break A;case 11:if(d[0|A]){for(g=e[30450];;)if(s=A,A=A+1|0,!((0|(l=f[0|s]))==32|l-9>>>0<5)){for(l=ta(s),e[i+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,tr(g,84700,i- -64|0)),s=A);s=(A=s)+1|0,(l=f[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&s)!=256)break A;e[i+16>>2]=24+(c+((255&s)<<2)|0),jA(A,84249,i+16|0);break A;case 1:e[i+144>>2]=c,e[i+148>>2]=c+4,jA(A,85642,i+144|0);break A;case 3:if(s=0,Je(l=i+160|0,0,240),e[i+132>>2]=i+360,e[i+128>>2]=i+320,e[i+124>>2]=i+280,e[i+120>>2]=i+240,e[i+116>>2]=i+200,e[i+112>>2]=l,l=jA(A,85037,i+112|0),e[i+412>>2]=l,e[c+152>>2]=0,(0|l)<=0)break A;for(h=e[30450];;){a:if(Ar(g=(i+160|0)+O(s,40)|0,85301)){n:{if((0|(I=e[34454]))>0)for(_=e[34455],A=0;;){if(!Ar(g,_+O(A,68)|0))break n;if((0|I)==(0|(A=A+1|0)))break}e[i+96>>2]=g,tr(h,85562,i+96|0),l=e[i+412>>2];break a}f[156+(s+c|0)|0]=A}if(!((0|l)>(0|(s=s+1|0))))break}break A;case 9:e[i+88>>2]=c+20,e[i+84>>2]=c+16,e[i+80>>2]=c+8,jA(A,84778,i+80|0);break A;case 10:Ai(A,c+12|0,29);break A;case 5:if((0|(h=nn(A,i+160|0)))<=0)break A;if(s=0,A=0,h>>>0>=4)for(_=-4&h,g=c+304|0;I=i+160|0,k[g+(A<<1)>>1]=e[I+(A<<2)>>2],k[g+((p=1|A)<<1)>>1]=e[I+(p<<2)>>2],k[g+((p=2|A)<<1)>>1]=e[I+(p<<2)>>2],k[g+((p=3|A)<<1)>>1]=e[I+(p<<2)>>2],A=A+4|0,(0|_)!=(0|(l=l+4|0)););if(!(l=3&h))break A;for(;k[304+(c+(A<<1)|0)>>1]=e[(i+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 6:if((0|(h=nn(A,i+160|0)))<=0)break A;if(s=0,A=0,h>>>0>=4)for(_=-4&h,g=c+296|0;I=i+160|0,f[A+g|0]=e[I+(A<<2)>>2],f[(p=1|A)+g|0]=e[I+(p<<2)>>2],f[(p=2|A)+g|0]=e[I+(p<<2)>>2],f[(p=3|A)+g|0]=e[I+(p<<2)>>2],A=A+4|0,(0|_)!=(0|(l=l+4|0)););if(!(l=3&h))break A;for(;f[296+(A+c|0)|0]=e[(i+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 7:if((0|(h=nn(A,i+160|0)))<=0)break A;if(s=0,A=0,h>>>0>=4)for(_=-4&h,g=c+304|0;p=I=g+(A<<1)|0,M=y[I>>1],I=i+160|0,k[p>>1]=M+y[I+(A<<2)>>1],k[(M=g+((p=1|A)<<1)|0)>>1]=y[M>>1]+y[I+(p<<2)>>1],k[(M=g+((p=2|A)<<1)|0)>>1]=y[M>>1]+y[I+(p<<2)>>1],k[(M=g+((p=3|A)<<1)|0)>>1]=y[M>>1]+y[I+(p<<2)>>1],A=A+4|0,(0|_)!=(0|(l=l+4|0)););if(!(l=3&h))break A;for(;k[(g=c+(A<<1)|0)+304>>1]=y[g+304>>1]+y[(i+160|0)+(A<<2)>>1],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 4:f[c+169|0]=1;break A;case 0:break r}f[c+208|0]=1}else e[i>>2]=G(129568,s),tr(e[30450],89101,i);V=i+416|0}else{A:switch(es(131904,r+704|0)-1|0){case 1:if(Y||(f[r+1040|0]=0,e[r+512>>2]=5,e[r+32>>2]=r+1040,e[r+36>>2]=r+512,jA(A,86237,r+32|0),e[r+1040>>2]==1769103734&e[r+1044>>2]==7630433))continue;if((A=kA(r+1040|0)+2|0)>>>0<99-re>>>0&&(f[0|(s=re+201088|0)]=e[r+512>>2],GA(s+1|0,r+1040|0),re=A+re|0),!vt){if(A=0,(s=g=r+1040|0)||(s=e[57150])){if(A=86875,e[(i=V-32|0)+24>>2]=0,e[i+28>>2]=0,e[i+16>>2]=0,e[i+20>>2]=0,e[i+8>>2]=0,e[i+12>>2]=0,e[i>>2]=0,e[i+4>>2]=0,c=0,l=d[86875])if(d[86876]){for(;e[(c=i+(l>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>l&1))break r;if(l=d[A+1|0],A=A+1|0,!l)break}c=A-s|0}else{for(A=s;i=A,A=A+1|0,d[0|i]==(0|l););c=i-s|0}if(d[0|(A=c+s|0)]){s=86875,V=l=V-32|0,i=f[86875];r:if(d[86876]&&i){if(Je(l,0,32),i=d[86875])for(;e[(c=l+(i>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>i&1)break r;if(i=d[s+1|0],s=s+1|0,!i)break}}else s=Dn(A,i);V=l+32|0,d[0|(s=(s-A|0)+A|0)]?(e[57150]=s+1,f[0|s]=0):e[57150]=0}else e[57150]=0,A=0}s=GA(me,A),GA(ie,A),Us(GA(r+896|0,A)),e[47192]=LA(s),St(e[32972]+40|0,g,20)}vt=1;continue;case 0:if(Y)continue;for(;s=A,A=A+1|0,(0|(i=f[0|s]))==32|i-9>>>0<5;);St(201040,s,40);continue;case 2:e[r+1152>>2]=0,s=r+512|0,e[r+48>>2]=s,e[r+52>>2]=r+1152,jA(A,86237,r+48|0),f[201200]=es(132112,s),f[201201]=e[r+1152>>2];continue;case 4:e[r+64>>2]=ie,jA(A,86939,r- -64|0);continue;case 3:e[r+80>>2]=r+896,jA(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|jA(A,91156,r+96|0))<2||(A=e[r+512>>2])>>>0>8||((0|(s=e[r+1152>>2]))>=0&&(i=e[32972]+(A<<1)|0,s=ee(P=2.56001*+(0|s))<2147483648?~~P:-2147483648,k[i+236>>1]=s,k[i+164>>1]=s),(0|(s=e[r+1164>>2]))>=0&&(i=e[32972]+(A<<1)|0,s=ee(P=2.56001*+(0|s))<2147483648?~~P:-2147483648,k[i+254>>1]=s,k[i+182>>1]=s),(0|(i=e[r+1148>>2]))<0?s=e[32972]:(g=(s=e[32972])+(A<<1)|0,i=ee(P=2.56001*+(0|i))<2147483648?~~P:-2147483648,k[g+200>>1]=i),k[218+((A<<1)+s|0)>>1]=e[r+1144>>2],A))continue;k[s+200>>1]=(0|O(k[s+200>>1],105))/100;continue;case 9:if(e[r+132>>2]=r+696,e[r+128>>2]=r+700,(0|jA(A,87106,r+128|0))!=2)continue;if(A=e[32972],s=e[r+700>>2],e[A+64>>2]=(s<<12)-36864,e[A+68>>2]=O(e[r+696>>2]-s|0,108),ee(P=256*(+(s-82|0)/82*.25+1))<2147483648){e[A+116>>2]=~~P;continue}e[A+116>>2]=-2147483648;continue;case 35:Ot||Us(r+896|0),e[r+1164>>2]=0,f[r+1156|0]=d[91267],e[r+1152>>2]=d[91263]|d[91264]<<8|d[91265]<<16|d[91266]<<24,e[r+144>>2]=r+1164,e[r+148>>2]=r+512,e[r+152>>2]=r+1152,(0|jA(A,91302,r+144|0))<2|e[49848]>59||(A=Sn(r+512|0))&&(f[O(e[49848],3)+199408|0]=A,A=Sn(r+1152|0),s=e[49848],i=O(s,3)+199408|0,f[i+1|0]=A,e[49848]=s+1,f[i+2|0]=e[r+1164>>2]),Ot=1;continue;case 10:e[r+1140>>2]=0,s=e[32972],e[s+100>>2]=0,e[r+164>>2]=s+100,e[r+160>>2]=s+96,jA(A,87106,r+160|0);continue;case 11:if(e[r+176>>2]=r+1140,(0|jA(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|jA(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|jA(A,87268,r+208|0))!=1)continue;s=e[32972],(0|(A=e[r+1140>>2]))>=5&&(e[s+108>>2]=1,e[r+1140>>2]=4,A=4),e[s+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]=NA,e[r+244>>2]=gA,e[r+248>>2]=cA,e[r+252>>2]=Xe,e[r+256>>2]=Ne,e[r+260>>2]=Fe,e[r+520>>2]=-1,e[r+524>>2]=-1,e[r+512>>2]=-1,e[r+516>>2]=-1,e[r+228>>2]=bt,e[r+232>>2]=$A,e[r+236>>2]=RA,e[r+224>>2]=r+512,jA(A,84222,r+224|0),_=e[32972],A=0,l=e[r+516>>2],i=0;;){if(s=i,c=l,g=A,(0|(i=e[(l=(A<<=2)+(r+512|0)|0)>>2]))==-1&&(i=8e3,e[l>>2]=8e3,g&&(e[(r+512|0)+(4|A)>>2]=e[508+(A+r|0)>>2])),l=e[(r+512|0)+(4|A)>>2],!((0|s)>=(0|(i=(0|i)/8|0))||(0|(I=i-s|0))<=0||(h=s+1|0,A=s,1&I&&(f[344+(s+_|0)|0]=(0|c)>=255?255:c,A=h),(0|i)==(0|h))))for(h=l-c|0;M=_+344|0,p=c+((0|O(h,A-s|0))/(0|I)|0)|0,f[M+A|0]=(0|p)>=255?255:p,p=c+((0|O(h,(ve=A+1|0)-s|0))/(0|I)|0)|0,f[M+ve|0]=(0|p)>=255?255:p,(0|i)!=(0|(A=A+2|0)););if(A=g+2|0,!(g>>>0<10))break}continue;case 15:if(e[r+272>>2]=r+1140,(0|jA(A,87268,r+272|0))!=1)continue;e[e[32972]+112>>2]=(e[r+1140>>2]<<6)/100;continue;case 16:s=e[32972],e[(i=s+300|0)>>2]=0,e[i+4>>2]=0,e[(l=s+292|0)>>2]=0,e[l+4>>2]=0,e[(c=s+284|0)>>2]=0,e[c+4>>2]=0,e[(g=s+276|0)>>2]=0,e[g+4>>2]=0,e[r+316>>2]=s+304,e[r+312>>2]=i,e[r+308>>2]=s+296,e[r+304>>2]=l,e[r+300>>2]=s+288,e[r+296>>2]=c,e[r+292>>2]=s+280,e[r+288>>2]=g,s=jA(A,84553,r+288|0),A=e[32972],e[A+272>>2]=s,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:s=e[32972],e[(i=s+336|0)>>2]=0,e[i+4>>2]=0,e[(l=s+328|0)>>2]=0,e[l+4>>2]=0,e[(c=s+320|0)>>2]=0,e[c+4>>2]=0,e[(g=s+312|0)>>2]=0,e[g+4>>2]=0,e[r+348>>2]=s+340,e[r+344>>2]=i,e[r+340>>2]=s+332,e[r+336>>2]=l,e[r+332>>2]=s+324,e[r+328>>2]=c,e[r+324>>2]=s+316,e[r+320>>2]=g,A=jA(A,84553,r+320|0),e[e[32972]+308>>2]=A;continue;case 36:s=e[32972],e[r+352>>2]=s+120,e[r+356>>2]=s+124,e[r+1140>>2]=jA(A,87106,r+352|0);continue;case 33:e[r+368>>2]=e[32972]+84,jA(A,87268,r+368|0),ns(3);continue;case 31:s=e[32972],e[(i=s+156|0)>>2]=0,e[i+4>>2]=0,e[(l=s+148|0)>>2]=0,e[l+4>>2]=0,e[(c=s+140|0)>>2]=0,e[c+4>>2]=0,e[(g=s+132|0)>>2]=0,e[g+4>>2]=0,e[r+412>>2]=s+160,e[r+408>>2]=i,e[r+404>>2]=s+152,e[r+400>>2]=l,e[r+396>>2]=s+144,e[r+392>>2]=c,e[r+388>>2]=s+136,e[r+384>>2]=g,jA(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,jA(A,87268,r+416|0),ns(3);continue;case 6:case 7:continue;default:break A}e[r+16>>2]=r+704,tr(Te,87359,r+16|0)}}Ir(J)}A:{if((A=e[47192])|Y){if(Y)break A}else A=LA(me),e[47192]=A;r:{if(!H){if((0|(A=Us(r+896|0)))<0&&(e[r>>2]=r+896,tr(e[30450],87567,r),A=0),e[e[32972]+60>>2]=A,s=e[47192],e[s+292>>2]=A,gt(s,ie,4&t),d[132848])break r;zi(e[47192]),s=0;break e}e[e[32972]+60>>2]=0,e[A+292>>2]=0}f[re+201088|0]=0}s=e[32972]}return V=r+1168|0,s}function jA(A,t,r){var s,i,l,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0;V=l=V-16|0,e[l+12>>2]=r,V=c=V-144|0,s=Je(c,0,144),e[s+76>>2]=-1,e[s+44>>2]=A,e[s+32>>2]=18,e[s+84>>2]=A,c=t,Fe=r,A=0,V=i=V-304|0;e:{A:{r:if(e[s+4>>2]||(dn(s),e[s+4>>2])){if(!(t=d[0|c]))break e;a:{n:{o:{c:{for(;;){u:{l:if((0|(t&=255))==32|t-9>>>0<5){for(;t=c,c=c+1|0,(0|(r=d[t+1|0]))==32|r-9>>>0<5;);for(ys(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=Ie(s):(e[s+4>>2]=r+1,r=d[0|r]),(0|r)==32|r-9>>>0<5;);c=e[s+4>>2],(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(c=c-1|0,e[s+4>>2]=c),c=r=c-e[s+44>>2]|0,h=re+e[s+124>>2]|0,h=(g=r>>31)+((r=Y+e[s+120>>2]|0)>>>0>>0?h+1|0:h)|0,re=(Y=r+c|0)>>>0>>0?h+1|0:h}else{i:{p:{C:{if(d[0|c]==37){if((0|(t=d[c+1|0]))==42)break C;if((0|t)!=37)break p}if(ys(s,0,0),d[0|c]!=37)(0|(t=e[s+4>>2]))==e[s+104>>2]?t=Ie(s):(e[s+4>>2]=t+1,t=d[0|t]);else{for(;(0|(t=e[s+4>>2]))==e[s+104>>2]?t=Ie(s):(e[s+4>>2]=t+1,t=d[0|t]),(0|t)==32|t-9>>>0<5;);c=c+1|0}if(d[0|c]!=(0|t)){if((0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),(0|t)>=0||(p=0,Ne))break e;break r}I=(g=t=e[s+4>>2]-e[s+44>>2]|0)>>31,t=re+e[s+124>>2]|0,p=((r=Y+e[s+120>>2]|0)>>>0>>0?t+1|0:t)+I|0,re=(Y=r+g|0)>>>0>>0?p+1|0:p,t=c;break l}M=0,t=c+2|0;break i}d[c+2|0]!=36|t-48>>>0>=10?(M=e[Fe>>2],Fe=Fe+4|0,t=c+1|0):(t=d[c+1|0]-48|0,e[(r=V-16|0)+12>>2]=Fe,t=(t>>>0>1?(t<<2)-4|0:0)+Fe|0,e[r+8>>2]=t+4,M=e[t>>2],t=c+3|0)}if(P=0,c=0,d[0|t]-48>>>0<10)for(;c=(d[0|t]+O(c,10)|0)-48|0,r=d[t+1|0],t=t+1|0,r-48>>>0<10;);(0|(H=d[0|t]))==109&&(_=0,P=!!(0|M),H=d[t+1|0],A=0,t=t+1|0),t=(r=t)+1|0,g=3,p=P;i:{p:switch(H-65|0){case 39:g=r+2|0,t=(r=d[r+1|0]==104)?g:t,g=r?-2:-1;break i;case 43:g=r+2|0,t=(r=d[r+1|0]==108)?g:t,g=r?3:1;break i;case 51:case 57:g=1;break i;case 11:g=2;break i;case 41:break i;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 a}g=0,t=r}p=g,ve=(g=(47&(r=d[0|t]))==3)?1:p;i:if((0|(me=g?32|r:r))!=91){p:{if((0|me)!=110){if((0|me)!=99)break p;c=(0|c)<=1?1:c;break i}Nn(M,ve,Y,re);break l}for(ys(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=Ie(s):(e[s+4>>2]=r+1,r=d[0|r]),(0|r)==32|r-9>>>0<5;);r=e[s+4>>2],(0|(g=e[s+116>>2]))>0|(0|g)>=0&&(r=r-1|0,e[s+4>>2]=r),g=r=r-e[s+44>>2]|0,h=re+e[s+124>>2]|0,re=(p=r>>31)+((r=Y+e[s+120>>2]|0)>>>0>>0?h+1|0:h)|0,re=(Y=r+g|0)>>>0>>0?re+1|0:re}if(J=c,ys(s,c,ie=c>>31),(0|(r=e[s+4>>2]))==e[s+104>>2]){if((0|Ie(s))<0)break n}else e[s+4>>2]=r+1;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),r=16;i:{p:{C:{h:{b:switch(me-88|0){default:if((r=me-65|0)>>>0>6|!(1<>2]-e[s+44>>2]|0,e[s+120>>2]!=(0-r|0)|e[s+124>>2]!=(0-((r>>31)+!!(0|r)|0)|0))break C;break o;case 3:case 11:case 27:if((16|me)==115){if(Je(i+32|0,-1,257),f[i+32|0]=0,(0|me)!=115)break p;f[i+65|0]=0,f[i+46|0]=0,k[i+42>>1]=0,k[i+44>>1]=0;break p}Je(i+32|0,I=(0|(g=d[t+1|0]))==94,257),f[i+32|0]=0,r=I?t+2|0:t+1|0;m:{x:{I:{if((0|(t=d[(I?2:1)+t|0]))!=45){if((0|t)==93)break I;g=(0|g)!=94,t=r;break m}g=(0|g)!=94,f[i+78|0]=g;break x}g=(0|g)!=94,f[i+126|0]=g}t=r+1|0}for(;;){if((0|(r=d[0|t]))==45){if(r=45,!(!(I=d[t+1|0])|(0|I)==93)){if(p=t+1|0,I>>>0<=(t=d[t-1|0])>>>0)r=I;else for(;f[(t=t+1|0)+(i+32|0)|0]=g,(r=d[0|p])>>>0>t>>>0;);t=p}}else{if(!r)break n;if((0|r)==93)break p}f[33+(r+i|0)|0]=g,t=t+1|0}case 23:r=8;break h;case 12:case 29:r=10;break h;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 i;case 0:case 24:case 32:break h;case 17:break b}r=0}I=0,h=0,g=0,p=0,H=0,V=Te=V-16|0;h:if((0|r)!=1&r>>>0<=36){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),(0|c)==32|c-9>>>0<5;);b:{m:switch(c-43|0){case 0:case 2:break m;default:break b}H=(0|c)==45?-1:0,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c])}b:{m:{x:{I:{if(!(!!(0|r)&(0|r)!=16|(0|c)!=48)){if((0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),(-33&c)==88){if(r=16,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),d[c+121329|0]<16)break x;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),ys(s,0,0);break h}if(r)break I;r=8;break x}if(!((r=r||10)>>>0>d[c+121329|0])){(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),ys(s,0,0),e[56798]=28;break h}}if((0|r)==10){if((g=c-48|0)>>>0<=9){for(r=0;p=(r=O(r,10)+g|0)>>>0<429496729,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),p&(g=c-48|0)>>>0<=9;);I=r}I:if(!(g>>>0>9)){for(r=et(I,0,10,0),p=fe;;){if(h=p,p=(0|(h=(I=r+g|0)>>>0>>0?h+1|0:h))==429496729&I>>>0>=2576980378|h>>>0>429496729,(0|(r=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=r+1,c=d[0|r]),p|(g=c-48|0)>>>0>9)break I;if(r=et(I,h,10,0),!((0|(p=fe))==-1&~g>>>0>=r>>>0|(0|p)!=-1))break}r=10;break m}if(r=10,g>>>0<=9)break m;break b}}if(r-1&r){if((p=d[c+121329|0])>>>0>>0){for(;I=(g=O(r,g)+p|0)>>>0<119304647,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),I&(p=d[c+121329|0])>>>0>>0;);I=g}if(r>>>0<=p>>>0)break m;for(;;){if(g=et(I,h,r,0),(0|(J=fe))==-1&~(p&=255)>>>0>>0||(h=J,h=(I=g+p|0)>>>0

>>0?h+1|0:h,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),r>>>0<=(p=d[c+121329|0])>>>0))break m;if(Qr(Te,r,0,0,0,I,h,0,0),e[Te+8>>2]|e[Te+12>>2])break}}else{if(J=f[84400+(O(r,23)>>>5&7)|0],(g=d[c+121329|0])>>>0>>0){for(;I=(p=p<>>0<134217728,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),I&(g=d[c+121329|0])>>>0>>0;);I=p}if(!(r>>>0<=g>>>0||(ie=31&J,(63&J)>>>0>=32?(p=0,ie=-1>>>ie|0):ie=(p=-1>>>ie|0)|(1<>>0>ie>>>0)))for(;;){if(Xe=255&g,g=I,c=31&J,(63&J)>>>0>=32?(h=g<>>32-c|h<>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),r>>>0<=(g=d[c+121329|0])>>>0)break m;if(!((0|p)==(0|h)&I>>>0<=ie>>>0|p>>>0>h>>>0))break}}}if(!(d[c+121329|0]>=r>>>0)){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Ie(s):(e[s+4>>2]=c+1,c=d[0|c]),d[c+121329|0]>>0;);e[56798]=68,H=0,I=-1,h=-1}}(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),I=(r=I^H)-H|0,h=((c=H>>31)^h)-((r>>>0>>0)+c|0)|0}else e[56798]=28;if(V=Te+16|0,r=e[s+4>>2]-e[s+44>>2]|0,e[s+120>>2]==(0-r|0)&e[s+124>>2]==(0-((r>>31)+!!(0|r)|0)|0))break o;if(!(!M|(0|me)!=112)){e[M>>2]=I;break i}Nn(M,ve,I,h);break i}if(!M)break i;c=e[i+16>>2],r=e[i+20>>2],g=e[i+8>>2],P=e[i+12>>2];C:switch(0|ve){case 0:V=h=V-32|0;h:if(0|(p=(I=2147483647&r)-1065418752|0)>>>0<(J=I-1082064896|0)>>>0){if(I=(33554431&r)<<7|c>>>25,J=p=0,!(!p&(0|(c&=33554431))==16777216?!(g|P):!p&c>>>0<16777216)){p=I+1073741825|0;break h}if(p=I+1073741824|0,16777216^c|g|P|J)break h;p=(1&I)+p|0}else(!c&(0|I)==2147418112?!(g|P):I>>>0<2147418112)?(p=2139095040,I>>>0>1082064895||(p=0,(I=I>>>16|0)>>>0<16145||(wt(h+16|0,g,P,c,p=65535&r|65536,I-16129|0),lr(h,g,P,c,p,16257-I|0),c=e[h+8>>2],p=(33554431&e[h+12>>2])<<7|c>>>25,I=e[h>>2]|!!(e[h+16>>2]|e[h+24>>2]|e[h+20>>2]|e[h+28>>2]),P=e[h+4>>2],(!(g=0)&(0|(c&=33554431))==16777216?!(I|P):!g&c>>>0<16777216)?16777216^c|I|g|P||(p=(1&p)+p|0):p=p+1|0))):p=4194303&((33554431&r)<<7|c>>>25)|2143289344;V=h+32|0,e[M>>2]=-2147483648&r|p;break i;case 1:T[M>>3]=uA(g,P,c,r);break i;case 2:break C;default:break i}e[M>>2]=g,e[M+4>>2]=P,e[M+8>>2]=c,e[M+12>>2]=r;break i}g=(Te=(0|me)!=99)?31:c+1|0;p:if((0|ve)!=1){if(P){if(c=0,!(r=zA(g)))break c;for(;;){for(A=r;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=Ie(s):(e[s+4>>2]=r+1,r=d[0|r]),!d[33+(r+i|0)|0]){g=0,_=A;break p}if(f[A+c|0]=r,(0|g)==(0|(c=c+1|0)))break}if(p=1,!(r=Dt(A,g=g<<1|1)))break}_=A,A=0;break a}if(c=0,M)for(;;){if((0|(A=e[s+4>>2]))==e[s+104>>2]?A=Ie(s):(e[s+4>>2]=A+1,A=d[0|A]),!d[33+(A+i|0)|0]){g=0,_=A=M;break p}f[c+M|0]=A,c=c+1|0}for(;(0|(A=e[s+4>>2]))==e[s+104>>2]?A=Ie(s):(e[s+4>>2]=A+1,A=d[0|A]),d[33+(A+i|0)|0];);A=0,_=0,g=0}else{if(r=M,P&&!(r=zA(g<<2)))break c;for(e[i+296>>2]=0,e[i+300>>2]=0,c=0;;){A=r;C:{for(;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=Ie(s):(e[s+4>>2]=r+1,r=d[0|r]),!d[33+(r+i|0)|0])break C;f[i+27|0]=r,I=i+28|0,r=e[(p=(r=i+296|0)||228604)>>2];h:{b:{m:{x:{if(!(_=i+27|0)){if(r)break x;r=0;break h}if(!r){if((0|(h=(r=d[0|_])<<24>>24))>=0){I&&(e[I>>2]=r),r=!!(0|h);break h}if(!e[e[56841]>>2]){if(r=1,!I)break m;e[I>>2]=57343&h,r=1;break h}if((r=r-194|0)>>>0>50)break x;r=e[124752+(r<<2)>>2];break b}if(H=1,!(((ve=(h=d[0|_])>>>3|0)-16|(r>>26)+ve)>>>0>7))for(;;){if(H=H-1|0,(0|(r=h-128|r<<6))>=0){e[p>>2]=0,I&&(e[I>>2]=r),r=1-H|0;break h}if(!H)break b;if((192&(h=d[0|(_=_+1|0)]))!=128)break}}e[p>>2]=0,e[56798]=25,r=-1}break h}e[p>>2]=r,r=-2}if((0|r)!=-2){if(_=0,(0|r)==-1)break n;if(A&&(e[(c<<2)+A>>2]=e[i+28>>2],c=c+1|0),!(!P|(0|c)!=(0|g)))break}}if(p=1,r=Dt(A,(g=g<<1|1)<<2))continue;break a}break}if(_=0,g=A,i+296|0&&e[i+296>>2])break n}if(r=e[s+4>>2],(0|(I=e[s+116>>2]))>0|(0|I)>=0&&(r=r-1|0,e[s+4>>2]=r),r=(I=r-e[s+44>>2]|0)+e[s+120>>2]|0,h=e[s+124>>2]+(I>>31)|0,!((h=r>>>0>>0?h+1|0:h)|r)|!(Te|(0|r)==(0|J)&(0|h)==(0|ie)))break u;P&&(e[M>>2]=A),(0|me)!=99&&(g&&(e[(c<<2)+g>>2]=0),_?f[c+_|0]=0:_=0),A=g}c=r=e[s+4>>2]-e[s+44>>2]|0,p=re+e[s+124>>2]|0,re=(g=r>>31)+((r=Y+e[s+120>>2]|0)>>>0>>0?p+1|0:p)|0,re=(Y=r+c|0)>>>0>>0?re+1|0:re,Ne=!!(0|M)+Ne|0}if(c=t+1|0,t=d[t+1|0])continue;break e}break}A=g;break o}p=1,_=0,A=0;break a}p=P;break A}p=P}if(Ne)break A}Ne=-1}p&&(Me(_),Me(A))}return V=i+304|0,V=s+144|0,V=l+16|0,Ne}function zA(A){var t,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0;V=t=V-16|0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if((A|=0)>>>0<=244){if(3&(r=(g=e[57152])>>>(s=(p=A>>>0<11?16:A+11&-8)>>>3|0)|0)){r=(A=(s=s+(1&~r)|0)<<3)+228648|0,i=e[A+228656>>2],(0|r)!=(0|(A=e[i+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):e[57152]=As(-2,s)&g,A=i+8|0,r=s<<3,e[i+4>>2]=3|r,e[(r=r+i|0)+4>>2]=1|e[r+4>>2];break e}if((M=e[57154])>>>0>=p>>>0)break l;if(r){r=(A=(i=di(0-(A=(0-(A=2<>2],(0|r)!=(0|(A=e[l+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):(g=As(-2,i)&g,e[57152]=g),e[l+4>>2]=3|p,i=(A=i<<3)-p|0,e[(s=l+p|0)+4>>2]=1|i,e[A+l>>2]=i,M&&(r=228648+(-8&M)|0,c=e[57157],(A=1<<(M>>>3))&g?A=e[r+8>>2]:(e[57152]=A|g,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]=s,e[57154]=i;break e}if(!(h=e[57153]))break l;for(s=e[228912+(di(0-h&h)<<2)>>2],c=(-8&e[s+4>>2])-p|0,r=s;(A=e[r+16>>2])||(A=e[r+20>>2]);)c=(i=(r=(-8&e[A+4>>2])-p|0)>>>0>>0)?r:c,s=i?A:s,r=A;if(I=e[s+24>>2],(0|(i=e[s+12>>2]))!=(0|s)){A=e[s+8>>2],e[A+12>>2]=i,e[i+8>>2]=A;break A}if(!(A=e[(r=s+20|0)>>2])){if(!(A=e[s+16>>2]))break u;r=s+16|0}for(;l=r,i=A,(A=e[(r=A+20|0)>>2])||(r=i+16|0,A=e[i+16>>2]););e[l>>2]=0;break A}if(p=-1,!(A>>>0>4294967231)&&(p=-8&(A=A+11|0),h=e[57153])){c=0-p|0,g=0,p>>>0<256||(g=31,p>>>0>16777215||(g=62+((p>>>38-(A=Ce(A>>>8|0))&1)-(A<<1)|0)|0));i:{p:{if(r=e[228912+(g<<2)>>2])for(A=0,s=p<<((0|g)!=31?25-(g>>>1|0):0);;){if(!((l=(-8&e[r+4>>2])-p|0)>>>0>=c>>>0||(i=r,c=l,l))){c=0,A=r;break p}if(l=e[r+20>>2],r=e[16+((s>>>29&4)+r|0)>>2],A=l?(0|l)==(0|r)?A:l:A,s<<=1,!r)break}else A=0;if(!(A|i)){if(i=0,!(A=(0-(A=2<>2]}if(!A)break i}for(;c=(s=(r=(-8&e[A+4>>2])-p|0)>>>0>>0)?r:c,i=s?A:i,A=(r=e[A+16>>2])||e[A+20>>2];);}if(!(!i|e[57154]-p>>>0<=c>>>0)){if(g=e[i+24>>2],(0|i)!=(0|(s=e[i+12>>2]))){A=e[i+8>>2],e[A+12>>2]=s,e[s+8>>2]=A;break r}if(!(A=e[(r=i+20|0)>>2])){if(!(A=e[i+16>>2]))break c;r=i+16|0}for(;l=r,s=A,(A=e[(r=A+20|0)>>2])||(r=s+16|0,A=e[s+16>>2]););e[l>>2]=0;break r}}}if((A=e[57154])>>>0>=p>>>0){i=e[57157],(r=A-p|0)>>>0>=16?(e[(s=i+p|0)+4>>2]=1|r,e[A+i>>2]=r,e[i+4>>2]=3|p):(e[i+4>>2]=3|A,e[(A=A+i|0)+4>>2]=1|e[A+4>>2],s=0,r=0),e[57154]=r,e[57157]=s,A=i+8|0;break e}if((I=e[57155])>>>0>p>>>0){r=I-p|0,e[57155]=r,A=(s=e[57158])+p|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|p,A=s+8|0;break e}if(A=0,h=p+47|0,e[57270]?s=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,s=4096),(r=(l=h+s|0)&(c=0-s|0))>>>0<=p>>>0||(i=e[57262])&&i>>>0<(g=(s=e[57260])+r|0)>>>0|s>>>0>=g>>>0)break e;l:{if(!(4&d[229052])){i:{p:{C:{h:{if(i=e[57158])for(A=229056;;){if((s=e[A>>2])>>>0<=i>>>0&i>>>0>2]>>>0)break h;if(!(A=e[A+8>>2]))break}if((0|(s=se(0)))==-1||(g=r,(A=(i=e[57271])-1|0)&s&&(g=(r-s|0)+(A+s&0-i)|0),g>>>0<=p>>>0)||(i=e[57262])&&i>>>0<(c=(A=e[57260])+g|0)>>>0|A>>>0>=c>>>0)break i;if((0|s)!=(0|(A=se(g))))break C;break l}if((0|(s=se(g=c&l-I)))==(e[A>>2]+e[A+4>>2]|0))break p;A=s}if((0|A)==-1)break i;if(p+48>>>0<=g>>>0){s=A;break l}if((0|se(s=(s=e[57272])+(h-g|0)&0-s))==-1)break i;g=s+g|0,s=A;break l}if((0|s)!=-1)break l}e[57263]=4|e[57263]}if((0|(s=se(r)))==-1|(0|(A=se(0)))==-1|A>>>0<=s>>>0||(g=A-s|0)>>>0<=p+40>>>0)break a}A=e[57260]+g|0,e[57260]=A,A>>>0>te[57261]&&(e[57261]=A);l:{if(l=e[57158]){for(A=229056;;){if(((i=e[A>>2])+(r=e[A+4>>2])|0)==(0|s))break l;if(!(A=e[A+8>>2]))break}break o}for((A=e[57156])>>>0<=s>>>0&&A||(e[57156]=s),A=0,e[57265]=g,e[57264]=s,e[57160]=-1,e[57161]=e[57270],e[57267]=0;r=(i=A<<3)+228648|0,e[i+228656>>2]=r,e[i+228660>>2]=r,(0|(A=A+1|0))!=32;);r=(i=g-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+i|0)>>2]=40,e[57159]=e[57274];break n}if(8&d[A+12|0]|i>>>0>l>>>0|s>>>0<=l>>>0)break o;e[A+4>>2]=r+g,s=(A=l+8&7?-8-l&7:0)+l|0,e[57158]=s,A=(r=e[57155]+g|0)-A|0,e[57155]=A,e[s+4>>2]=1|A,e[4+(r+l|0)>>2]=40,e[57159]=e[57274];break n}i=0;break A}s=0;break r}te[57156]>s>>>0&&(e[57156]=s),r=s+g|0,A=229056;o:{c:{u:{l:{i:{p:{for(;;){if((0|r)!=e[A>>2]){if(A=e[A+8>>2])continue;break p}break}if(!(8&d[A+12|0]))break i}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]=s,e[A+4>>2]=e[A+4>>2]+g,e[(h=(s+8&7?-8-s&7:0)+s|0)+4>>2]=3|p,A=(g=r+(r+8&7?-8-r&7:0)|0)-(I=p+h|0)|0,(0|l)==(0|g)){e[57158]=I,A=e[57155]+A|0,e[57155]=A,e[I+4>>2]=1|A;break c}if(e[57157]==(0|g)){e[57157]=I,A=e[57154]+A|0,e[57154]=A,e[I+4>>2]=1|A,e[A+I>>2]=A;break c}if((3&(c=e[g+4>>2]))==1){l=-8&c;i:if(c>>>0<=255){if(i=e[g+8>>2],r=c>>>3|0,(0|(s=e[g+12>>2]))==(0|i)){e[57152]=e[57152]&As(-2,r);break i}e[i+12>>2]=s,e[s+8>>2]=i}else{if(p=e[g+24>>2],(0|g)==(0|(s=e[g+12>>2])))if((r=e[(c=g+20|0)>>2])||(r=e[(c=g+16|0)>>2])){for(;i=c,(r=e[(c=(s=r)+20|0)>>2])||(c=s+16|0,r=e[s+16>>2]););e[i>>2]=0}else s=0;else r=e[g+8>>2],e[r+12>>2]=s,e[s+8>>2]=r;if(p){i=e[g+28>>2];p:{if(e[(r=228912+(i<<2)|0)>>2]==(0|g)){if(e[r>>2]=s,s)break p;e[57153]=e[57153]&As(-2,i);break i}if(e[p+(e[p+16>>2]==(0|g)?16:20)>>2]=s,!s)break i}e[s+24>>2]=p,(r=e[g+16>>2])&&(e[s+16>>2]=r,e[r+24>>2]=s),(r=e[g+20>>2])&&(e[s+20>>2]=r,e[r+24>>2]=s)}}c=e[(g=l+g|0)+4>>2],A=A+l|0}if(e[g+4>>2]=-2&c,e[I+4>>2]=1|A,e[A+I>>2]=A,A>>>0<=255){r=228648+(-8&A)|0,(s=e[57152])&(A=1<<(A>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=I,e[A+12>>2]=I,e[I+12>>2]=r,e[I+8>>2]=A;break c}if(c=31,A>>>0<=16777215&&(c=62+((A>>>38-(r=Ce(A>>>8|0))&1)-(r<<1)|0)|0),e[I+28>>2]=c,e[I+16>>2]=0,e[I+20>>2]=0,r=228912+(c<<2)|0,(i=e[57153])&(s=1<>>1|0):0),s=e[r>>2];;){if(r=s,(-8&e[s+4>>2])==(0|A))break u;if(s=c>>>29|0,c<<=1,!(s=e[(i=(4&s)+r|0)+16>>2]))break}e[i+16>>2]=I}else e[57153]=s|i,e[r>>2]=I;e[I+24>>2]=r,e[I+12>>2]=I,e[I+8>>2]=I;break c}for(r=(i=g-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+i|0)>>2]=40,e[57159]=e[57274],e[(i=(A=(c+(c-39&7?39-c&7:0)|0)-47|0)>>>0>>0?l:A)+4>>2]=27,A=e[57267],e[i+16>>2]=e[57266],e[i+20>>2]=A,A=e[57265],e[i+8>>2]=e[57264],e[i+12>>2]=A,e[57266]=i+8,e[57265]=g,e[57264]=s,e[57267]=0,A=i+24|0;e[A+4>>2]=7,r=A+8|0,A=A+4|0,r>>>0>>0;);if((0|i)==(0|l))break n;if(e[i+4>>2]=-2&e[i+4>>2],c=i-l|0,e[l+4>>2]=1|c,e[i>>2]=c,c>>>0<=255){r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;break n}if(A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=Ce(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,(i=e[57153])&(s=1<>>1|0):0),i=e[r>>2];;){if((0|c)==(-8&e[(r=i)+4>>2]))break o;if(s=A>>>29|0,A<<=1,!(i=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|i,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break n}A=e[r+8>>2],e[A+12>>2]=I,e[r+8>>2]=I,e[I+24>>2]=0,e[I+12>>2]=r,e[I+8>>2]=A}A=h+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<=p>>>0)){r=A-p|0,e[57155]=r,A=(s=e[57158])+p|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|p,A=s+8|0;break e}}e[56798]=48,A=0;break e}r:if(g){r=e[i+28>>2];a:{if(e[(A=228912+(r<<2)|0)>>2]==(0|i)){if(e[A>>2]=s,s)break a;h=As(-2,r)&h,e[57153]=h;break r}if(e[g+(e[g+16>>2]==(0|i)?16:20)>>2]=s,!s)break r}e[s+24>>2]=g,(A=e[i+16>>2])&&(e[s+16>>2]=A,e[A+24>>2]=s),(A=e[i+20>>2])&&(e[s+20>>2]=A,e[A+24>>2]=s)}r:if(c>>>0<=15)A=c+p|0,e[i+4>>2]=3|A,e[(A=A+i|0)+4>>2]=1|e[A+4>>2];else if(e[i+4>>2]=3|p,e[(l=i+p|0)+4>>2]=1|c,e[l+c>>2]=c,c>>>0<=255)r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,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=Ce(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;a:{if((s=1<>>1|0):0),p=e[r>>2];;){if((-8&e[(r=p)+4>>2])==(0|c))break a;if(s=A>>>29|0,A<<=1,!(p=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|h,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=i+8|0;break e}A:if(I){r=e[s+28>>2];r:{if(e[(A=228912+(r<<2)|0)>>2]==(0|s)){if(e[A>>2]=i,i)break r;e[57153]=As(-2,r)&h;break A}if(e[I+(e[I+16>>2]==(0|s)?16:20)>>2]=i,!i)break A}e[i+24>>2]=I,(A=e[s+16>>2])&&(e[i+16>>2]=A,e[A+24>>2]=i),(A=e[s+20>>2])&&(e[i+20>>2]=A,e[A+24>>2]=i)}c>>>0<=15?(A=c+p|0,e[s+4>>2]=3|A,e[(A=A+s|0)+4>>2]=1|e[A+4>>2]):(e[s+4>>2]=3|p,e[(i=s+p|0)+4>>2]=1|c,e[i+c>>2]=c,M&&(r=228648+(-8&M)|0,l=e[57157],(A=1<<(M>>>3))&g?A=e[r+8>>2]:(e[57152]=A|g,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A),e[57157]=i,e[57154]=c),A=s+8|0}return V=t+16|0,0|A}function Vt(A,t,r,s,i){var l,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0;V=l=V-544|0,Je(l+320|0,0,100),Je(l+208|0,0,100),I=r?e[r>>2]:I,Y=e[A+12>>2],h=e[36115];e:{A:{r:{a:{for(;;){if(c=(0|(c=d[t+g|0]))>=(0|h)?13:c,f[l+g|0]=c,!c){c=g;break a}if(p=(0|h)<=(0|(p=d[(c=1|g)+t|0]))?13:p,f[c+l|0]=p,!p)break a;if((0|(g=g+2|0))==200)break}g=198,J=d[l+199|0];break r}if(!c)break A;J=d[l+(g=c-1|0)|0],(0|c)!=1&&(g=c-2|0)}if(ve=8&I,e[l+536>>2]=(ve>>>3|0?3:7)&I,I=d[l+g|0],h=1,P=(0|(M=Is(A,l,l+432|0,l+540|0,l+536|0,1)))>=0?M:0,ie=d[0|l])for(g=l,c=ie;c=e[144464+((255&c)<<2)>>2],d[c+11|0]==2&&(1048576&(c=e[c+4>>2])||(p=(2097152&c)>>>21|0,p|=c=d[e[144464+(d[0|(_=g+1|0)]<<2)>>2]+10|0]==12,f[(l+208|0)+h|0]=p,H=e[144464+(d[(c?2:1)+g|0]<<2)>>2],p=d[H+11|0]-10>>>0<4294967289|!(32&d[H+6|0])&d[e[144464+(d[(c?3:2)+g|0]<<2)>>2]+11|0]==2?p:p?2:1,g=c?_:g,f[(l+320|0)+h|0]=p,h=h+1|0)),c=d[0|(g=g+1|0)];);g=r=r?P:M;r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:switch(e[A+8>>2]-1|0){case 11:if((0|(r=e[l+540>>2]))<2)break p;if(g=1,P=1&(c=r-1|0),(0|r)!=2)break h;h=0;break C;case 8:if((0|(c=e[l+540>>2]))<2)break a;if(h=3&(p=c-1|0),g=1,c-2>>>0>=3)for(P=-4&p,p=0;I=f[0|(c=(l+432|0)+g|0)],f[0|c]=(0|I)<0?4:I,I=f[c+1|0],f[c+1|0]=(0|I)<0?4:I,I=f[c+2|0],f[c+2|0]=(0|I)<0?4:I,I=c,c=f[c+3|0],f[I+3|0]=(0|c)<0?4:c,g=g+4|0,(0|P)!=(0|(p=p+4|0)););if(!h)break a;for(c=0;p=f[0|(I=(l+432|0)+g|0)],f[0|I]=(0|p)<0?4:p,g=g+1|0,(0|h)!=(0|(c=c+1|0)););break a;case 7:if(!d[l+322|0]|f[l+321|0]>0)break a;case 0:if(e[l+536>>2]|e[l+540>>2]<3)break a;if(e[l+536>>2]=2,g=4,r)break r;f[l+434|0]=4;break r;case 1:if(e[l+536>>2])break r;m:{x:{if((0|(h=e[l+540>>2]))>=3){r=h-2|0,e[l+536>>2]=r,g=r;I:if(512&Y&&(c=e[144464+(J<<2)>>2],(0|(p=d[c+11|0]))!=2)){g=e[c>>2],c=l;B:{N:{if((0|(P=e[A+212>>2]))!=26977){if((0|P)!=24942)break N;L:switch(g-110|0){case 0:case 5:if(g=r,d[e[144464+(I<<2)>>2]+11|0]==2)break I;break;default:break L}g=h-1|0;break B}if((0|g)==115&&(g=r,d[e[144464+(I<<2)>>2]+11|0]==2))break I;g=h-1|0;break B}N:{L:{if((0|g)==115){if(g=r,(0|(p=d[e[144464+(I<<2)>>2]+11|0]))!=8)break L;break I}if((0|p)!=8)break N;p=d[e[144464+(I<<2)>>2]+11|0]}if(g=r,(255&p)==2)break I}g=h-1|0}e[c+536>>2]=g}if(524288&Y&&(f[(c=h-1|0)+(h=l+208|0)|0]<=f[r+h|0]||(e[l+536>>2]=c,g=c)),d[(l+432|0)+g|0]>1){c=g;break m}if(c=2,r=g-1|0,g>>>0>=2)break x;e[l+536>>2]=g+1;break m}r=1}c=r,e[l+536>>2]=c}if(g=4,f[0|(r=(l+432|0)+c|0)]>=0||f[(c=(l+432|0)+c|0)-1|0]>=4&f[c+1|0]>3)break r;f[0|r]=4;break r;case 2:if(e[l+536>>2])break r;for(r=(g=e[l+540>>2])-1|0,r&=r>>31;;){if((0|(g=g-1|0))<=0)break n;if(!(f[0|(c=(l+432|0)+g|0)]>=0))break}e[l+536>>2]=g,g=4,f[0|c]=4;break r;case 3:if(e[l+536>>2])break a;if(c=(0|(g=e[l+540>>2]-3|0))<=1?1:g,e[l+536>>2]=c,g=4,r)break r;f[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){m:{x:switch(d[e[144464+(J<<2)>>2]+11|0]-2|0){case 0:c=f[r+94176|0];break m;case 2:c=f[r+94192|0];break m;default:break x}c=f[r+94160|0]}e[l+536>>2]=c}g=4,f[(l+432|0)+c|0]=4;break r;case 5:if(e[l+536>>2])break r;if(h=-1,p=0,!((0|(r=(c=e[l+540>>2])-1|0))<2)){if(g=1,_=1&c,(0|c)!=3)for(H=(-2&c)-4|0,c=0;f[(l+432|0)+g|0]<0&&(p=(I=(0|(P=f[(l+320|0)+g|0]))<(0|h))?p:g,h=I?h:P),f[(I=g+1|0)+(l+432|0)|0]<0&&(p=(P=(0|(me=f[I+(l+320|0)|0]))<(0|h))?p:I,h=P?h:me),g=g+2|0,I=(0|c)!=(0|H),c=c+2|0,I;);!_|f[(l+432|0)+g|0]>=0||(h=(c=(0|(I=f[(l+320|0)+g|0]))<(0|h))?h:I,p=c?p:g)}e[l+536>>2]=p,d[r+(l+320|0)|0]!=2|(0|h)>1?(0|h)>0||(p=1,e[l+536>>2]=1):(e[l+536>>2]=r,p=r),g=4,f[(l+432|0)+p|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;h=(r=e[l+540>>2])-1|0,e[l+536>>2]=h;b:if(!((0|r)<2))for(g=1;;){if(d[(l+432|0)+g|0]==1){h=g-1|0,e[l+536>>2]=h;break b}if((0|r)==(0|(g=g+1|0)))break}g=4,f[(l+432|0)+h|0]=4;break r}for(_=-2&c,h=0,p=0;c=d[0|(H=(I=l+432|0)+g|0)],re=H,me=f[(H=l+208|0)+g|0]>0,f[0|re]=me||(0|c)==4?3:c,Te=(0|(I=d[0|(re=(c=g+1|0)+I|0)]))==4?3:I,I=f[c+H|0]>0,f[0|re]=I?3:Te,h=I?c:me?g:h,g=g+2|0,(0|_)!=(0|(p=p+2|0)););}if(P&&(I=(0|(c=d[0|(p=(l+432|0)+g|0)]))==4?3:c,c=f[(l+208|0)+g|0]>0,f[0|p]=c?3:I,h=c?g:h),c=e[l+536>>2])break u;if((0|h)>0){e[l+536>>2]=h,c=h;break u}if((0|r)<6)break i;c=r-3|0;break l}if(c=e[l+536>>2])break u}c=r-1|0}e[l+536>>2]=c}g=4,f[(l+432|0)+c|0]=4;break r}if(e[l+536>>2])break r;c=1,e[l+536>>2]=1,d[l+209|0]|e[l+540>>2]<3|f[l+210|0]<=0||(c=2,e[l+536>>2]=2),g=4,f[l+432|c]=4;break r}if(e[l+536>>2]||(0|(c=e[l+540>>2]))<3)break a;if(Je(l+432|1,0,c-1|0),e[l+536>>2]=2,r||(f[l+434|0]=4),g=4,c>>>0<4)break r;f[431+(c+l|0)|0]=3;break r}e[l+536>>2]=r,g=4;break r}g=r}!(256&Y)|2&i||(0|(r=e[l+540>>2]))<3|(0|M)>2||d[0|(c=(r=r+(l+432|0)|0)-1|0)]!=4|d[e[144464+(J<<2)>>2]+11|0]!=2||(f[0|c]=1,f[r-2|0]=4);r:{a:{if(ve)M=e[l+540>>2];else{if(r=f[l+433|0],!(!(4096&Y)|(0|(M=e[l+540>>2]))!=3)){if((0|r)==4){f[l+434|0]=3;break a}if(d[l+434|0]==4){f[l+433|0]=3;break a}}if(!(!(8192&Y)|(0|r)>=0|(0|M)<4|f[l+434|0]<4)){f[l+433|0]=3;break a}}if(p=0,(0|M)<2)break r}for(h=(0|g)<4?4:3,H=128&Y,me=64&Y,re=32&Y,P=M-1|0,Te=16&Y,Fe=!(32768&Y),J=0,I=0,g=1;;){a:{n:if((0|(c=f[0|(_=(l+432|0)+g|0)]))>=0)p=h;else{p=3;o:{c:if(!(!(!Te|(0|h)>3)&(0|g)==(0|P))){if(!(1&(J|Fe)))break o;if(!(f[431+(l+g|0)|0]>1)){if((0|(c=f[(r=g+1|0)+(l+432|0)|0]))>=2){if((0|h)!=4||(p=4,c>>>0>=3))break c}else if(!(!re|(0|h)!=3)){h=3;break a}if(!me|g>>>0<2||(p=d[(l+320|0)+g|0]))break o;if((0|P)>(0|(c=g))){for(;;){if(f[(l+320|0)+c|0]>0)break a;if((0|P)==(0|(c=c+1|0)))break}if(p)break o}if(f[r+(l+320|0)|0]<=0)break o;break a}p=h}c=d[0|_];break n}f[0|_]=h,J=1,p=3,c=h}n:{if(c<<24>>24>=4){if(r=I||g,!I|!H)break n;f[0|_]=3}h=p;break a}h=p,I=r}if(p=1,(0|M)==(0|(g=g+1|0)))break}}if(s=!ve|(0|s)>=0?s:e[((0|M)<3?16:20)+A>>2],h=0,c=0,p){if(J=3&(r=M-1|0),p=0,M-2>>>0<3)g=1;else for(ve=-4&r,g=1,I=0;c=(r=(0|(c=(_=(0|(c=(P=(0|(c=(M=(0|(P=f[(r=l+432|0)+g|0]))<(0|c))?c:P))>(0|(_=f[(H=g+1|0)+r|0])))?c:_))>(0|(re=f[(me=g+2|0)+r|0])))?c:re))>(0|(Te=f[(re=g+3|0)+r|0])))?c:Te,h=r?_?P?M?h:g:H:me:re,g=g+4|0,(0|ve)!=(0|(I=I+4|0)););if(J)for(;c=(r=(0|(I=f[(l+432|0)+g|0]))<(0|c))?c:I,h=r?h:g,g=g+1|0,(0|J)!=(0|(p=p+1|0)););}if((0|s)<0?s=c:(0|s)<=(0|c)&(0|c)>4||(f[(l+432|0)+h|0]=s),J=t+197|0,M=1,!(1&i)&&(r=e[144464+(ie<<2)>>2])){if(c=l,!((0|(p=d[r+11|0]))!=1&(0|ie)!=15))for(;r=d[0|(c=c+1|0)],(0|(p=d[e[144464+(r<<2)>>2]+11|0]))==1|(0|r)==15;);!(48&(r=e[A+4>>2]))|(0|p)!=2||(f[0|t]=(32&r)>>>5|0&&f[l+433|0]>3?11:23,t=t+1|0)}r:if(!(t>>>0>=J>>>0))for(P=65536&Y,_=2&Y,ve=4&Y,g=l;;){if(!(c=d[0|g]))break r;if(i=g,g=g+1|0,r=e[144464+(c<<2)>>2]){a:{n:{o:switch(d[r+11|0]){case 0:e[A+8200>>2]=0;break a;case 2:if(!(16&d[r+6|0]))break n;break;default:break o}if(d[0|g]!=20)break a}if((0|(ie=e[l+540>>2]))<(0|M))break e;I=f[0|(Y=(l+432|0)+M|0)],e[A+8200>>2]=I;n:{o:{if(!((0|(r=I))>1)){if(p=ie-1|0,!(!ve|(0|M)<2|(0|s)<2)&&(r=0,(0|p)==(0|M)))break o;if(r=1,!((0|M)==1|_|(ie-2|0)==(0|M)&f[p+(l+432|0)|0]<2|(0|p)==(0|M)||f[431+(l+M|0)|0]>=0&&(r=I,P))){r=0,f[0|Y]=0;break o}}if(r&&(0|r)<2)break n}f[0|t]=d[r+94151|0],t=t+1|0,I=f[0|Y]}p=(0|s)>(0|I),d[0|g]==12&&1&(ie=e[A+28>>2])&&(g=(16&ie?(0|h)!=(0|M):(0|r)<4)?i+2|0:g),s=p?s:I,M=M+1|0}if((0|c)!=1&&(f[0|t]=c,t=t+1|0),!(t>>>0>>0))break}}f[0|t]=0}return void(V=l+544|0)}pe(86136,86634,1353,94208),L()}function bs(A,t,r,s,i,l,c,g,p){var I,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0,bt=0,vt=0,Ot=0,Xt=0,ar=0,hr=0,dr=0,Sr=0,Wr=0,Kr=0;V=I=V-336|0,_=g,H=65535&p,Y=s,P=65535&i,ve=-2147483648&(i^p);e:{if(!((ie=p>>>16&32767)-32767>>>0>4294934529&(J=i>>>16&32767)-32767>>>0>=4294934530)){if(!(!s&(0|(h=2147483647&i))==2147418112?!(t|r):h>>>0<2147418112)){re=s,ve=32768|i;break e}if(!(!g&(0|(i=2147483647&p))==2147418112?!(l|c):i>>>0<2147418112)){re=g,ve=32768|p,t=l,r=c;break e}if(!(t|s|2147418112^h|r)){if(!(l|g|2147418112^i|c)){t=0,r=0,ve=2147450880;break e}ve|=2147418112,t=0,r=0;break e}if(!(l|g|2147418112^i|c)){t=0,r=0;break e}if(!(t|s|r|h)){re=(t=!(l|g|i|c))?0:re,ve=t?2147450880:ve,t=0,r=0;break e}if(!(l|g|i|c)){ve|=2147418112,t=0,r=0;break e}(0|h)==65535|h>>>0<65535&&(p=s=!(P|Y),h=s?t:Y,g=s<<=6,wt(I+320|0,t,r,Y,P,(s=s+((0|(p=Ce(p?r:P)))==32?Ce(h)+32|0:p)|0)-15|0),Te=16-s|0,Y=e[I+328>>2],P=e[I+332>>2],r=e[I+324>>2],t=e[I+320>>2]),i>>>0>65535||(g=s=!(_|H),p=s?l:_,i=s<<=6,wt(I+304|0,l,c,_,H,(s=s+((0|(g=Ce(g?c:H)))==32?Ce(p)+32|0:g)|0)-15|0),Te=(s+Te|0)-16|0,_=e[I+312>>2],H=e[I+316>>2],l=e[I+304>>2],c=e[I+308>>2])}if(gA=i=65536|H,NA=_,h=i<<15|(s=_)>>>17,Qr(I+288|0,s=i=s<<15|c>>>17,g=h,0,0,p=0-s|0,h=1963258675-(h+!!(0|s)|0)|0,0,0),Qr(I+272|0,0-(s=e[I+296>>2])|0,0-(e[I+300>>2]+!!(0|s)|0)|0,0,0,p,h,0,0),Qr(I+256|0,p=(s=e[I+280>>2])<<1|e[I+276>>2]>>>31,s=e[I+284>>2]<<1|s>>>31,0,0,i,g,0,0),Qr(I+240|0,p,s,0,0,0-(h=e[I+264>>2])|0,0-(e[I+268>>2]+!!(0|h)|0)|0,0,0),Qr(I+224|0,h=(p=e[I+248>>2])<<1|e[I+244>>2]>>>31,s=e[I+252>>2]<<1|p>>>31,0,0,i,g,0,0),Qr(I+208|0,h,s,0,0,0-(p=e[I+232>>2])|0,0-(e[I+236>>2]+!!(0|p)|0)|0,0,0),Qr(I+192|0,p=(s=e[I+216>>2])<<1|e[I+212>>2]>>>31,s=e[I+220>>2]<<1|s>>>31,0,0,i,g,0,0),Qr(I+176|0,p,s,0,0,0-(h=e[I+200>>2])|0,0-(e[I+204>>2]+!!(0|h)|0)|0,0,0),Qr(I+160|0,p=i,s=g,0,0,g=(_=(i=e[I+184>>2])<<1|e[I+180>>2]>>>31)-1|0,i=(e[I+188>>2]<<1|i>>>31)-!_|0,0,0),Qr(I+144|0,l<<15,c<<15|l>>>17,0,0,s=g,i,0,0),me=I+112|0,Xe=e[I+168>>2],g=e[I+172>>2],M=(_=e[I+160>>2])+(p=e[I+152>>2])|0,h=(H=e[I+164>>2])+e[I+156>>2]|0,p=h=p>>>0>M>>>0?h+1|0:h,h=(h=(0|H)==(0|h)&M>>>0<_>>>0|h>>>0>>0)>>>0>(H=h+Xe|0)>>>0?g+1|0:g,Qr(me,s,i,0,0,0-(g=(_=!p&M>>>0>1|!!(0|p))+H|0)|0,0-(!!(0|g)+(h=_>>>0>g>>>0?h+1|0:h)|0)|0,0,0),Qr(I+128|0,1-M|0,0-((M>>>0>1)+p|0)|0,0,0,s,i,0,0),Xt=(J-ie|0)+Te|0,me=i=e[I+116>>2],_=(s=e[I+112>>2])<<1,J=h=i<<1|s>>>31,s=h,cA=g=e[I+140>>2],s=s+(h=g<<1|(i=e[I+136>>2])>>>31)|0,i=s=(g=(p=i<<1|e[I+132>>2]>>>31)+_|0)>>>0

>>0?s+1|0:s,Ne=s=s-(g>>>0<13927)|0,Xe=s,ar=h=65536|P,hr=Y,Sr=(s=Y)<<1,Wr=h=h<<1|s>>>31,$A=h,bt=s=et(Ne,M=0,h,0),Fe=h=fe,Te=t<<1,ie=s=r<<1|t>>>31,H=h=0,Ne=(0|i)==(0|Ne)&(p=g-13927|0)>>>0>>0|i>>>0>Ne>>>0,i=(0|i)==(0|J)&g>>>0<_>>>0|i>>>0>>0,s=e[I+120>>2],h=g=e[I+124>>2]<<1|s>>>31,h=(s=(M=cA>>>31|0)+(s=s<<1|me>>>31)|0)>>>0>>0?h+1|0:h,M=(g=s)>>>0>(s=s+i|0)>>>0?h+1|0:h,M=(i=s)>>>0>(s=s+Ne|0)>>>0?M+1|0:M,i=s-1|0,h=et(ie,H,Ne=M-!s|0,J=0),g=fe+Fe|0,me=(0|Fe)==(0|(g=(s=h+bt|0)>>>0>>0?g+1|0:g))&s>>>0>>0|g>>>0>>0,cA=i,i=et(i,h=0,RA=(dr=r>>>31|0)|Y<<1,Fe=0),h=fe+g|0,M=0,_=h=i>>>0>(Y=i+s|0)>>>0?h+1|0:h,M=(i=s=(0|h)==(0|g)&s>>>0>Y>>>0|g>>>0>h>>>0)>>>0>(s=s+me|0)>>>0?1:M,i=et($A,H,Ne,J),h=fe+M|0,me=s=i+s|0,s=s>>>0>>0?h+1|0:h,i=et($A,H,cA,Fe),P=fe,g=i,i=et(RA,Fe,Ne,J),h=fe+P|0,i=h=i>>>0>(M=g+i|0)>>>0?h+1|0:h,s=s+(h=(0|P)==(0|h)&g>>>0>M>>>0|h>>>0

>>0)|0,me=P=me+i|0,P=s=P>>>0>>0?s+1|0:s,h=M+_|0,i=h=(s=(i=0)+Y|0)>>>0>>0?h+1|0:h,g=(0|h)==(0|_)&s>>>0>>0|h>>>0<_>>>0,h=P,M=g,vt=g=g+me|0,M=h=M>>>0>g>>>0?h+1|0:h,me=s,P=s,Y=i,bt=p,s=et(p,0,RA,Fe),g=fe,i=s,p=et(Xe,re,ie,re),h=fe+g|0,p=(0|g)==(0|(h=(s=s+p|0)>>>0

>>0?h+1|0:h))&s>>>0>>0|g>>>0>h>>>0,g=h,i=et(cA,Fe,Ot=-2&Te,0),h=fe+h|0,i=h=i>>>0>(_=i+s|0)>>>0?h+1|0:h,s=(0|h)==(0|g)&s>>>0>_>>>0|g>>>0>h>>>0,g=0,s=((p=s+p|0)>>>0>>0?1:g)+Y|0,h=M,p=s=(P=p+P|0)>>>0

>>0?s+1|0:s,g=s=(0|s)==(0|Y)&P>>>0>>0|s>>>0>>0,Kr=s=s+vt|0,me=h=g>>>0>s>>>0?h+1|0:h,s=et($A,H,bt,re),vt=fe,$A=s,g=et(Ne,J,Ot,re),h=fe+vt|0,Y=s=s+g|0,M=s+(H=et(Xe,re,RA,Fe))|0,s=(g=s>>>0>>0?h+1|0:h)+fe|0,s=M>>>0>>0?s+1|0:s,J=M,H=M+(h=et(ie,re,cA,Fe))|0,M=fe+s|0,RA=(0|s)==(0|(M=h>>>0>H>>>0?M+1|0:M))&H>>>0>>0|s>>>0>M>>>0,h=((s=(s=(s=(0|s)==(0|g)&Y>>>0>J>>>0|s>>>0>>0)+(h=(0|g)==(0|vt)&Y>>>0<$A>>>0|g>>>0>>0)|0)+RA|0)|(cA=0))+p|0,Y=h=(g=M)>>>0>(J=g+P|0)>>>0?h+1|0:h,s=(0|p)==(0|h)&P>>>0>J>>>0|p>>>0>h>>>0,h=me,g=s,cA=s=s+Kr|0,p=h=g>>>0>s>>>0?h+1|0:h,s=et(Xe,re,Ot,re),Xe=fe,P=s,g=et(ie,re,bt,re),h=fe+Xe|0,g=(0|(h=(s=s+g|0)>>>0>>0?h+1|0:h))==(0|Xe)&s>>>0

>>0|h>>>0>>0,P=h,s=h+_|0,h=(g|(me=0))+i|0,P=(0|i)==(0|(h=s>>>0

>>0?h+1|0:h))&s>>>0<_>>>0|i>>>0>h>>>0,M=(g=h)+(h=H)|0,h=0,h=((i=s=(0|g)==(0|(M=(_=(H=0)+s|0)>>>0>>0?M+1|0:M))&s>>>0>_>>>0|g>>>0>M>>>0)>>>0>(s=s+P|0)>>>0?1:h)+Y|0,M=p,i=h=(i=s)>>>0>(s=s+J|0)>>>0?h+1|0:h,p=M=(p=g=(0|Y)==(0|h)&s>>>0>>0|h>>>0>>0)>>>0>(g=g+cA|0)>>>0?M+1|0:M,(0|M)==131071|M>>>0<131071?(hr=Sr|dr,ar=Fe|Wr,Qr(I+80|0,s,i,g,p,l,c,NA,gA),H=M=e[I+84>>2],h=t<<17,Y=(r=(_=0)-(P=e[I+88>>2])|0)-(M=!!(M|(t=e[I+80>>2])))|0,P=(h-(e[I+92>>2]+(P>>>0>_>>>0)|0)|0)-(r>>>0>>0)|0,_=0-t|0,H=0-(!!(0|t)+H|0)|0,t=Xt+16382|0):(Qr(I+96|0,s=(1&i)<<31|s>>>1,i=g<<31|i>>>1,g=(1&p)<<31|g>>>1,p=p>>>1|0,l,c,NA,gA),ie=Y=e[I+100>>2],Y=(_=0-(Te=e[I+104>>2])|0)-(P=!!(Y|(M=e[I+96>>2])))|0,P=((t<<16)-(e[I+108>>2]+(H>>>0>>0)|0)|0)-(P>>>0>_>>>0)|0,_=0-M|0,H=0-(!!(0|M)+ie|0)|0,Te=t,ie=r,t=Xt+16383|0),(0|t)>=32767)ve|=2147418112,t=0,r=0;else{if((0|t)>0)M=P<<1|Y>>>31,Y=Y<<1|H>>>31,P=M,Te=g,ie=65535&p|t<<16,M=H<<1|_>>>31,p=_<<1;else{if((0|t)<=-113){t=0,r=0;break e}lr(I- -64|0,s,i,g,p,1-t|0),wt(I+48|0,Te,ie,hr,ar,t+112|0),Qr(I+32|0,l,c,NA,gA,s=e[I+64>>2],i=e[I+68>>2],Te=e[I+72>>2],ie=e[I+76>>2]),t=e[I+40>>2],_=(r=e[I+56>>2])-(Y=t<<1|(M=e[I+36>>2])>>>31)|0,P=e[I+60>>2]-((e[I+44>>2]<<1|t>>>31)+(r>>>0>>0)|0)|0,h=(t=e[I+32>>2])<<1,Y=_-(t=(0|(g=M<<1|t>>>31))==(0|(p=e[I+52>>2]))&h>>>0>(r=e[I+48>>2])>>>0|g>>>0>p>>>0)|0,P=P-(t>>>0>_>>>0)|0,M=p-((r>>>0>>0)+g|0)|0,p=r-h|0}t=p,Qr(I+16|0,l,c,NA,gA,3,0,0,0),Qr(I,l,c,NA,gA,5,0,0,0),g=M+(r=0)|0,g=p>>>0>(t=t+(h=1&s)|0)>>>0?g+1|0:g,p=t,c=(0|c)==(0|g)&t>>>0>l>>>0|c>>>0>>0,M=P,t=(0|r)==(0|g)&t>>>0>>0|r>>>0>g>>>0,h=i,r=h=(r=t=(t=(0|(M=t>>>0>(l=t+Y|0)>>>0?M+1|0:M))==(0|gA))&(0|l)==(0|NA)?c:t&l>>>0>NA>>>0|M>>>0>gA>>>0)>>>0>(t=t+s|0)>>>0?h+1|0:h,s=(0|i)==(0|h)&t>>>0>>0|i>>>0>h>>>0,h=ie,h=(i=s)>>>0>(s=s+Te|0)>>>0?h+1|0:h,c=s,P=(0|(i=e[I+20>>2]))==(0|g)&te[I+16>>2]

>>0|i>>>0>>0,i=e[I+28>>2],i=h>>>0<2147418112&((0|(s=e[I+24>>2]))==(0|l)&(0|i)==(0|M)?P:(0|i)==(0|M)&s>>>0>>0|i>>>0>>0),s=r,h=(r=t=(0|r)==(0|(s=(P=i)>>>0>(i=t+i|0)>>>0?s+1|0:s))&t>>>0>i>>>0|r>>>0>s>>>0)>>>0>(t=t+c|0)>>>0?h+1|0:h,c=t,g=(0|(r=e[I+4>>2]))==(0|g)&te[I>>2]

>>0|r>>>0>>0,r=e[I+12>>2],r=M=(r=t=h>>>0<2147418112&((0|(t=e[I+8>>2]))==(0|l)&(0|r)==(0|M)?g:(0|r)==(0|M)&t>>>0>>0|r>>>0>>0))>>>0>(t=t+i|0)>>>0?s+1|0:s,i=(0|s)==(0|M)&t>>>0>>0|s>>>0>M>>>0,s=h,l=i,re|=i=i+c|0,ve|=s=l>>>0>i>>>0?s+1|0:s}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=re,e[A+12>>2]=ve,V=I+336|0}function Rt(A,t,r,s,i){var l,c,g,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0;if(V=c=V-80|0,g=e[r+8>>2],!i|!y[r+4>>1]||(e[i+8>>2]=0),l=Je(s,0,152),e[l+44>>2]=d[g+14|0],e[l+40>>2]=d[g+15|0],s=y[g+8>>1]){for(s=e[34459]+(s<<1)|0,re=256&t,ie=r+32|0,Te=r-32|0,Fe=r- -64|0,Ne=r+96|0,Xe=r+-64|0,cA=r-28|0,gA=1&t,NA=r-24|0,me=e[30450];;){p=15&(P=(t=y[s>>1])>>>8|0);e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:switch(0|(h=t>>>12|0)){case 10:break c;case 9:break u;case 6:break l;case 2:case 3:break i;case 1:break p;case 0:break C;case 11:case 12:case 13:case 14:case 15:break o;default:break n}I=255&t;C:{h:{b:switch(0|p){case 13:if(I)break h;p=s,t=0;break C;case 0:p=s;m:switch(I-1|0){case 1:break e;case 0:break A;default:break m}e[c+20>>2]=bo(c+75|0,e[g>>2]),e[c+16>>2]=t,tr(me,85851,c+16|0);break e;case 5:if(d[e[144464+(d[r+34|0]<<2)>>2]+11|0]!=2)break e;e[l+20>>2]=I;break e;case 12:break b;default:break a}e[l+44>>2]=e[l+44>>2]+(t<<24>>31&-256|I);break e}f[l+132|0]=d[s+3|0],p=s+2|0,f[l+133|0]=d[0|p],t=2,I>>>0<3||(f[l+134|0]=d[s+5|0],p=s+4|0,f[l+135|0]=d[0|p],t=4,I>>>0<5||(f[l+136|0]=d[s+7|0],p=s+6|0,f[l+137|0]=d[0|p],t=6,I>>>0<7||(f[l+138|0]=d[s+9|0],p=s+8|0,f[l+139|0]=d[0|p],t=8,I>>>0<9||(f[l+140|0]=d[s+11|0],p=s+10|0,f[l+141|0]=d[0|p],t=10,I>>>0<11||(f[l+142|0]=d[s+13|0],p=s+12|0,f[l+143|0]=d[0|p],t=12,I>>>0<13||(f[l+144|0]=d[s+15|0],p=s+14|0,f[l+145|0]=d[0|p],t=14,I>>>0<15||(f[l+146|0]=d[s+17|0],p=s+16|0,f[l+147|0]=d[0|p],t=16)))))))}f[132+(t+l|0)|0]=0,I=Y;break A}if(!A|p>>>0>7||(h=r,d[e[144464+(d[r+2|0]<<2)>>2]+11|0]!=2&&(h=ie,d[e[144464+(d[r+34|0]<<2)>>2]+11|0]!=2))||!(1&(p=e[A+56>>2]))&&16&d[0|r])break e;I=15&d[h+3|0],I=2&p&&d[h+6|0]<=I>>>0?4:I;p:{C:{h:{b:switch((p=7&P)-3|0){case 1:break C;case 0:break b;default:break h}if(I>>>0>3)break p;break e}if(e[102832+(p<<2)>>2]>(0|I))break p;break e}if(d[h+6|0]>I>>>0)break e}e[l+8>>2]=255&t,I=1;break r}if((57344&t)==8192){for(RA=e[32972],P=1,ve=0;;){M=255&t,p=(_=4095&t)>>>8|0;i:if(_>>>0<=3583){(0|(I=(p>>>0)%7|0))==6&&(I=y[s+2>>1]),J=0,p=r;p:{C:{h:switch(0|I){case 6:if(h=0,y[r+36>>1]|y[r+68>>1])break i;case 3:p=Fe;break C;case 9:if(h=0,y[r+36>>1]|y[r+68>>1])break i;if(p=Ne,!y[r+100>>1])break p;break i;case 7:if(h=0,y[r+36>>1])break i;for(I=1;;){if(d[e[144464+(d[(p=(I<<5)+r|0)+2|0]<<2)>>2]+11|0]==2)break C;if(y[4+(((I=I+1|0)<<5)+r|0)>>1])break}break i;case 5:if(h=0,y[r+4>>1])break i;case 0:J=1,p=Te;break C;case 4:if(h=0,y[r+36>>1])break i;case 2:p=ie;break C;case 8:if(h=0,!i)break i;if(J=1,e[(p=i)+8>>2])break p;break i;case 10:break h;default:break C}if(h=0,y[r+4>>1]|y[cA>>1])break i;J=1,p=Xe;break p}C:switch(0|I){case 0:case 5:break C;default:break p}p=(d[p+2|0]==1?-32:0)+p|0}if(re?(I=e[144464+(d[p+2|0]<<2)>>2],e[p+8>>2]=I):I=e[p+8>>2],_>>>0<=1791){if(h=1,e[e[144464+(M<<2)>>2]>>2]==e[I>>2])break i;if(!(!J|d[I+11|0]!=2)){h=(0|M)==d[I+13|0];break i}h=(0|M)==d[I+12|0];break i}M=31&_,h=0;p:switch(_>>>5&7){case 0:h=(0|M)==d[I+11|0];break i;case 1:h=(0|M)==(15&y[I+6>>1]);break i;case 2:h=e[I+4>>2]>>>M&1;break i;case 4:break p;default:break i}p:switch(0|M){case 0:case 1:case 2:case 3:case 4:if(d[e[144464+(d[p+2|0]<<2)>>2]+11|0]!=2){if(d[e[144464+(d[p+34|0]<<2)>>2]+11|0]!=2)break i;p=p+32|0}I=15&d[p+3|0],I=!A|!(2&d[A+56|0])?I:d[p+6|0]<=I>>>0?4:I;C:{h:switch(M-3|0){case 1:h=d[p+6|0]<=I>>>0;break i;case 0:if(h=1,I>>>0<=3)break C;break i;default:break h}if(h=1,e[102832+(M<<2)>>2]>(0|I))break i}h=0;break i;case 17:if(!d[I+11|0]){h=1;break i}h=(32&d[r+1|0])>>>5|0;break i;case 18:h=y[p+4>>1]!=0;break i;case 19:if(h=1,y[p+36>>1])break i;h=!d[e[p+40>>2]+11|0];break i;case 9:if(y[p+4>>1])break i;for(;;){if(h=!!(0|(I=12&d[p-29|0])),I)break i;if(y[(p=p-32|0)+4>>1])break}break i;case 10:h=d[I+11|0]!=2;break i;case 11:for(;;){if(h=!!(0|(I=y[p+36>>1])),I)break i;if(I=p,p=p+32|0,d[e[I+40>>2]+11|0]==2)break}break i;case 12:if(h=1,(254&d[I+11|0])==2)break i;h=(16&d[I+4|0])>>>4|0;break i;case 13:for(;h=(d[e[p+8>>2]+11|0]==2)+h|0,I=y[p+4>>1],p=p-32|0,!I;);h=(0|h)==1;break i;case 14:for(;h=(d[e[p+8>>2]+11|0]==2)+h|0,I=y[p+4>>1],p=p-32|0,!I;);h=(0|h)==2;break i;case 16:break p;default:break i}h=(16&d[0|p])>>>4|0}else if(h=0,(0|p)==15){p:switch(M-1|0){case 0:h=gA;break i;case 1:break p;default:break i}h=e[RA+132>>2]!=0}i:if(1970>>>(p=(I=65535&t)>>>12|0)&1)p=f[p+102848|0];else{p:switch(0|p){case 0:if(p=1,(3840&I)!=3328)break i;p=1+(1+(255&I)>>>1|0)|0;break i;case 6:p=(I>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:p=(0|(p=3840&I))==3328||(0|p)==1536?2:1;break i;default:break p}p=4,(I=y[s+4>>1])>>>0>61439||(p=(0|I)==2?3:2)}if(s=((p=y[(s=(p<<1)+s|0)>>1]==3)<<1)+s|0,p^=h,P=ve?p|P:p&P,ve=4096&t,(57344&(t=y[s>>1]))!=8192)break}if(!(1&P))if((63488&t)!=26624){i:if(1970>>>(p=t>>>12|0)&1)p=f[p+102848|0];else{p:switch(0|p){case 0:if(p=1,(3840&t)!=3328)break i;p=1+(1+(255&t)>>>1|0)|0;break i;case 6:p=(t>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:p=(0|(t&=3840))==3328||(0|t)==1536?2:1;break i;default:break p}p=4,(t=y[s+4>>1])>>>0>61439||(p=(0|t)==2?3:2)}s=(((65024&y[(t=(p<<1)+s|0)>>1])==24576)<<1)+t|0}else s=((255&t)<<1)+s|0}p=s-2|0,I=Y;break A}l:switch(p>>>1|0){case 0:s=(((255&t)<<1)+s|0)-2|0;break e;case 5:e[l>>2]=2|e[l>>2],((t=d[e[r+40>>2]+12|0])-28&255)>>>0<=5&&(p=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+96>>2]=t>>>4<<24>>24,e[l+76>>2]=(15&t)<<18|p<<2),s=s+24|0;break e;case 6:break l;default:break e}((t=d[e[NA>>2]+13|0])-28&255)>>>0<=5&&(p=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+100>>2]=t>>>4<<24>>24,e[l+80>>2]=(15&t)<<18|p<<2),s=s+24|0;break e}t=y[(s=s+2|0)>>1]|t<<16&983040;u:switch(p-1|0){case 0:if((0|H)>9)break e;e[(c+32|0)+(H<<2)>>2]=s,s=(e[34459]+(t<<1)|0)-2|0,H=H+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[(p=(((0|p)!=1)<<3)+l|0)+108>>2]=y[s+2>>1]|(255&t)<<16,t=y[s+4>>1]<<16,s=s+6|0,e[p+112>>2]=t|y[s>>1];break e}if(I=y[(p=s+2|0)>>1],_=t>>>4|0,e[(P=((M=h-11|0)<<2)+l|0)+88>>2]=255&_,e[P+68>>2]=t<<18&3932160|I<<2,(0|(s=y[s+4>>1]))==2){s=p;break e}if(I=t>>>0<=53247?s>>>0>61439?2:1:Y-((0|M)==4)|0,h-13>>>0>1)break A;e[P+88>>2]=_<<24>>24;break A}e[c+4>>2]=bo(c+75|0,e[g>>2]),e[c>>2]=t,tr(me,85851,c);break e}e[4+((p<<2)+l|0)>>2]=I,I=re&&(0|p)==1?1:Y}p=s}(0|I)!=1|(0|H)<=0?(s=p,Y=I):(s=e[(c+32|0)+((H=H-1|0)<<2)>>2],Y=0)}if(s=s+2|0,(0|Y)==1)break}!i|d[r+17|0]!=2||(A=e[r+4>>2],e[i>>2]=e[r>>2],e[i+4>>2]=A,A=e[r+28>>2],e[i+24>>2]=e[r+24>>2],e[i+28>>2]=A,A=e[r+20>>2],e[i+16>>2]=e[r+16>>2],e[i+20>>2]=A,A=e[r+12>>2],e[i+8>>2]=e[r+8>>2],e[i+12>>2]=A),f[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]}V=c+80|0}function Ss(A,t,r,s,i,l){var c,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0;V=c=V-848|0;e:if(!(!e[A+104>>2]|8&d[i+2|0]|e[47202]==193)){for(e[s>>2]=0,e[33272]=0,e[33274]=l,f[c+192|0]=0,e[33273]=c+192;h=(l=h)+1|0,f[0|(ie=t+l|0)]-48>>>0<10;);e[56798]=0,Fe=c+188|0,P=-2147483648,V=re=V-16|0;A:if(g=d[0|t]){M=t;r:{for(;;){if(!((0|(g=g<<24>>24))==32|g-9>>>0<5))break r;if(g=d[M+1|0],M=M+1|0,!g)break}break A}r:switch((g=d[0|M])-43|0){case 0:case 2:break r;default:break A}H=(0|g)==45?-1:0,M=M+1|0}else M=t;for(;g=-48,(((_=f[0|M])-48&255)>>>0<10||(g=-87,(_-97&255)>>>0<26||(g=-55,!((_-65&255)>>>0>25))))&&!((0|(_=g+_|0))>=10);)Qr(re,10,0,0,0,Y,J,0,0),g=1,e[re+8>>2]|e[re+12>>2]||(ve=et(Y,J,10,0),(0|(Te=fe))==-1&~_>>>0>>0||(g=Te,J=(Y=_+ve|0)>>>0<_>>>0?g+1|0:g,me=1,g=I)),M=M+1|0,I=g;Fe&&(e[Fe>>2]=me?M:t);A:{r:{if(I)e[56798]=68,Y=-2147483648,J=0;else if(!J&Y>>>0<2147483648)break r;if(!H){e[56798]=68,P=2147483647;break A}if(!(!J&Y>>>0<=2147483648)){e[56798]=68;break A}}P=(H^Y)-H|0}if(V=re+16|0,H=P,!(e[56798]|e[c+188>>2]==(0|t))){A:{r:{a:{if(!(!((0|(_=64&d[A+109|0]?4:3))!=(0|l)|e[A+124>>2]!=f[t-2|0])&f[t-3|0]-48>>>0<10)){n:{if(e[A+124>>2]!=32){if(!(16&d[A+105|0]))break a;if((0|l)==3)break n;break a}if((0|l)!=3)break a}if(4&d[i+2|0]|f[t-2|0]-48>>>0>=10)break a}f[133104]=0,f[c+288|0]=0,Ne=1;break r}if(f[133104]=0,e[33275]=0,f[c+288|0]=0,Xe=1,me=0,d[0|t]==48)break A}me=cr(A,t,ie,i,0)}d[0|ie]!=46|f[t+h|0]-48>>>0<10|1&f[i+13|0]|f[ie+2|0]-48>>>0<10||(f[0|ie]=0);A:if(!me||(ve=1,e[A+212>>2]==26741)){if(P=c+256|0,e[c+844>>2]=P,p=h,64&d[i+1|0]&&(f[c+256|0]=45,P=c+256|1,e[c+844>>2]=P,p=l+2|0),M=d[t+p|0]){for(;!((255&M)==32|(0|p)>28)&&(g=e[c+844>>2],e[c+844>>2]=g+1,f[0|g]=M,M=d[(p=p+1|0)+t|0]););P=e[c+844>>2]}if(f[0|P]=0,ve=1,g=f[c+256|0]){if(!(I=e[A+136>>2])||Ar(c+256|0,I)){if(g-48>>>0<10||(e[c+176>>2]=c+256,lA(g=c+800|0,88653,c+176|0),!FA(A,g,133104)))break A;e[s>>2]=128|e[s>>2],e[c+160>>2]=c+256,lA(g=c+800|0,88773,c+160|0),FA(A,g,133116),ve=0}me=2}}Fe=e[i>>2],f[c+352|0]=0,f[c+624|0]=0;A:{r:{a:if(!(!Xe|d[0|t]!=48||(0|(g=f[t+1|0]))==32|(0|g)==e[A+128>>2])){n:{if((0|l)==2){if(d[t+3|0]!=58|f[t+5|0]-48>>>0>=10||!((0|(g=f[t+7|0]))==32|g-9>>>0<5))break n;break a}if((0|l)>3)break r}if(d[0|t]==48&&!((0|(g=l-1|0))<=0))for(p=0;;){if(FA(A,88875,kA(I=c+288|0)+I|0),d[(p=p+1|0)+t|0]!=48)break a;if(!((0|g)>(0|p)))break}}a:{n:{if(!((0|(g=f[0|ie]))==32&&16&d[A+105|0])){if(Te=2,Y=l+2|0,(0|g)==e[A+124>>2])break n;J=1,P=0,g=0;break a}Te=1,Y=l+2|0}if(4&d[i+14|0])P=1,g=0,J=1;else for(g=0,M=1,p=l,J=1;;){I=g,g=M,M=(re=p+Te|0)+t|0,p=0;n:{for(;;){if(P=1,!(f[p+M|0]-48>>>0>=10)){if((0|_)!=(0|(p=p+1|0)))continue;break n}break}g=I;break a}if(f[M+_|0]-48>>>0<10){g=I;break a}if(p=0,f[M-1|0]-48>>>0<10){g=I;break a}n:{for(;;){if(d[(p+re|0)+t|0]==48){if((0|_)!=(0|(p=p+1|0)))continue;break n}break}J=0}if((0|(I=f[(p=_+re|0)+t|0]))!=e[A+124>>2]&(!(16&d[A+105|0])|(0|I)!=32))break a;if(Y=p+2|0,4&d[2+(O(M=g+1|0,12)+i|0)|0])break}}p=!H;a:if(!(!J|!(64&d[1+(O(g,12)+i|0)|0])|e[A+212>>2]!=26741)){n:switch(d[0|(I=t+Y|0)]-97|0){case 0:case 4:break n;default:break a}n:{o:{c:{u:switch((M=d[I+1|0])-116|0){case 6:break a;case 1:case 2:case 3:case 4:case 5:break o;case 0:break u;default:break c}if(d[I+2|0]!=116)break n;break a}if((0|M)==32)break a}if(!(!!((0|H)%1e3|0)&(0|g)!=1)&&(0|M)==108)break a}e[33274]=1|e[33274]}Y=32768&Fe,p&=Ne;a:if(e[A+128>>2]!=f[0|ie]|f[t+h|0]-48>>>0>=10){n:{if(!p){if(p=0,I=1,!((0|g)>0&P))break n;H=(h=Ee(A,H,g,J,c+624|0))?0:H,p=!!(0|h),M=0;break a}p=1,H=0,e[33275]==1&&(e[c+144>>2]=g+1,lA(h=c+800|0,89026,c+144|0),FA(A,h,c+688|0)||(e[c+128>>2]=g,lA(h=c+800|0,89026,c+128|0),FA(A,h,c+624|0)))}I=1,M=0}else FA(A,88882,c+624|0),I=0,M=256;P=Y?2:me;a:{if(g|d[c+624|0]|d[0|ie]!=46){if(g)break a}else FA(A,89192,c+624|0);if(e[c+844>>2]=t,f[t+1|0]-48>>>0<10)for(;h=e[c+844>>2],e[c+844>>2]=h+1,f[h+2|0]-48>>>0<10;);if(f[e[c+844>>2]-1|0]-48>>>0>=10||(e[c+416>>2]=e[c+844>>2]-1,zt(A,c+416|0,c+192|0,s,4,i)&&(e[33272]=2)),d[c+192|0]|d[e[c+844>>2]]==48||zt(A,c+844|0,c+192|0,s,4,i)&&(e[33272]=1),Xe){if(!P&I&&(e[c+112>>2]=H,lA(i=c+800|0,89214,c+112|0),FA(A,i,r)))break A;if(1&f[A+110|0]){for(h=t;(32|d[0|h])!=32;)h=h+1|0;e[c+416>>2]=h,d[h+1|0]==37&&(FA(A,89328,r),i=kA(r),f[e[c+416>>2]+1|0]=32,r=r+i|0)}}}HA(A,H,c+416|0,p,g,P|M|Ne),!(2&d[A+109|0])|(0|g)<=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,lA(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,lA(r,89346,c+80|0));a:if(!I)for(;;){for(l=l+1|0,I=0;I=(h=I)+1|0,f[(g=l+h|0)+t|0]-48>>>0<10;);i=2;n:{o:{c:{u:{l:{i:switch((I=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 i;default:break n}i=5}if((0|(I=d[0|(p=t+l|0)]))==48)for(;FA(A,88875,g=c+688|0),Jr(r,g),h=h-1|0,(0|(I=d[0|(p=(l=l+1|0)+t|0)]))==48;);if((0|i)<(0|h)|(I<<24>>24)-48>>>0>=10)break n;i=c+688|0,HA(A,ta(p),i,0,0,0),Jr(r,i),l=l+h|0;break n}if(HA(A,ta(i=t+l|0),c+416|0,0,0,0),!((0|I)==8192&d[0|i]!=48)){if(e[c+16>>2]=h,lA(i=c+800|0,89508,c+16|0),!FA(A,i,c+688|0))break n;Jr((0|I)==49152?r:c+416|0,c+688|0)}Jr(r,c+416|0),l=g;break n}if((0|h)>4||d[0|(i=t+l|0)]==48)break n;HA(A,l=ta(i),i=c+688|0,0,0,0),Jr(r,i),l=g;break n}if(!((0|h)<=1))for(;;){if(e[c+32>>2]=f[t+l|0],lA(i=c+800|0,89575,c+32|0),!FA(A,i,c+688|0))break n;if(Jr(r,c+688|0),l=l+1|0,!((0|(h=h-1|0))>1))break}}n:if(!((I=d[0|(h=t+l|0)])-48>>>0>=10||kA(r)>>>0>=190))for(;;){if(i=c+688|0,ot(A,f[0|h]-48|0,0,2,i),g=kA(r),e[c>>2]=15,e[c+4>>2]=i,lA(r+g|0,89594,c),(I=d[0|(h=(l=l+1|0)+t|0)])-48>>>0>=10)break n;if(!(kA(r)>>>0<=189))break}if(FA(A,89678,c+688|0)&&Jr(r,c+688|0),e[A+128>>2]!=(0|I)|f[1+(t+l|0)|0]-48>>>0>=10)break a;FA(A,88882,i=c+688|0),Jr(r,i)}if(!(i=d[0|r])|(0|i)==21||(i=WA(c+184|0,t=1+(t+l|0)|0),l=e[c+184>>2],!(2&d[A+106|0])|(0|l)!=32||(WA(c+184|0,t+i|0),l=e[c+184>>2]),_A(l)|J||(A=kA(r)+r|0,f[0|A]=11,f[A+1|0]=0)),e[s>>2]=-2147483648|e[s>>2],e[33275]=e[33275]-1,p=1,ve)break e;e[33264]=1;break e}e[s>>2]=-129&e[s>>2],p=0;break e}p=1}}return V=c+848|0,p}function Ht(A,t,r,s){var i,l,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0;if(V=i=V-416|0,me=y[r+8>>1],Y=d[r+10|0],64&(l=e[r>>2])){for(e[r>>2]=-65&l,f[199388]=1,p=e[47202],P=e[49846],h=e[47352],M=e[47351],I=e[47350];;){c=(g=e[198304+(M<<2)>>2])>>8;e:{A:switch((31&g)-9|0){case 0:p=c;break e;case 4:P=c;break e;case 3:break A;default:break e}h=g>>>0>=256?c+h|0:0}if(!(!(128&g)&(0|I)>(0|(M=M+1|0))))break}e[47352]=h,e[47351]=M,e[49846]=P,e[47202]=p}P=0;e:if(!((0|(c=e[49572]))>997)){if(1048576&l||!d[0|t])d[199388]&&(e[49572]=c+1,f[199388]=0,e[(A=190288+(c<<3)|0)>>2]=983042,e[A+4>>2]=0),f[189088]=0;else if(!((0|c)>990)){(0|(c=e[A+8224>>2]))>0&&(e[A+8224>>2]=c-1),p=512&l?s:s+4|0,h=(240&e[47202])==16,(re=2&l)&&((0|(g=e[47200]))<3||(0|(c=e[47350]))>243||(d[199388]&&(e[(M=198300+(c<<2)|0)>>2]=-129&e[M>>2]),e[47350]=c+1,f[199388]=1,ve=(0|g)==3?20:g,e[198304+(c<<2)>>2]=ve<<8|193)),I=h?p:s;A:{r:{if(!(8&l)){for(;s=d[(c=_)+t|0],f[c+(i+240|0)|0]=s,223&s&&(_=c+1|0,c>>>0<160););if(f[i+66|0]=0,_=i- -64|2,P=Se(e[47192],t,r,_),e[i+412>>2]=P,!(4096&P))break r;qA(t,i+240|0,c);break e}a:if(Hr(t,87276,3))zs(t,189088,i+240|0);else{if(M=0,223&(c=d[0|(_=t+3|0)]))for(;f[(i+240|0)+M|0]=Ts(c<<24>>24),M=M+1|0,223&(c=d[0|(_=_+1|0)]););f[(s=i+240|0)+M|0]=0,c=0;n:if(!((0|(r=e[34461]))<=0)){for(;;){if(!Ar(s,O(c,44)+137856|0)){e[34457]=c;break n}if((0|r)==(0|(c=c+1|0)))break}c=r}if((0|(r=(0|r)==(0|c)?-1:c))<=0)break a;ts(r),f[189090]=0,f[189089]=r,f[189088]=21}P=-2147483648,e[i+412>>2]=-2147483648,s=-1;break A}if(!(!(8388608&P)|8&d[r+12|0])){for(V=h=V-208|0,M=e[A+60>>2],g=t;s=g,g=g+1|0,d[0|s]!=32;);WA(h+204|0,g);r:if(_A(e[h+204>>2])){p=GA(h,189088),g=(!(256&M)|(J=DA(A,g,r+12|0,0))>>>15)&!(67108864&J)&d[189088]!=21;a:{n:{if(512&M){if(!(g&!(16&d[r+12|0])))break n;break a}if(g)break a}GA(189088,p);break r}if(f[0|s]=45,e[r>>2]=-2&e[r>>2],P=0,g=189088,H=DA(e[47192],t,r,0),e[i+412>>2]=H,!((0|M)<=0)&&(p=d[189088])){for(;P=(d[e[144464+(p<<2)>>2]+11|0]==2)+P|0,p=d[0|(g=g+1|0)];);if(!((31&M)>=(0|P))){f[0|s]=32,e[i+412>>2]=DA(e[47192],t,r,0);break r}}e[i+412>>2]=128|(H||J),e[33264]=1}V=h+208|0}if(s=-1,d[189088]==21){if(M=GA(i+16|0,132848),h=e[i+412>>2],g=qA(t,i+240|0,c),p=i- -64|1,(0|(s=ln(d[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],d[i+66|0]?(k[i+64>>1]=8192,h=DA(e[47193],p,r,0)):h=Se(e[47193],g,r,_)),d[189088]==21&&(c=qA(g,i+240|0,c),(0|(s=ln(d[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],d[i+66|0]?(k[i+64>>1]=8192,h=DA(e[47193],p,r,0)):h=Se(e[47193],c,r,_)),P=4096,d[189088]==21))break e;e[i+412>>2]=h,(0|s)>=0||(f[189090]=0,k[94544]=3341,(0|s)==-1&&(GA(132848,M),ts(e[e[32972]+60>>2]),s=e[e[32972]+60>>2]))}P=e[i+412>>2],128&l||(I=268435456&P&&(0|I)<=1?1:I,!(256&P)|528&l|e[A+8224>>2]|2&d[r-11|0]||(e[A+8224>>2]=3,I=(0|I)<=4?4:I)),I=(0|I)<=0&&e[49846]>2?1:I}if(r=d[199388],!((0|I)<=0|(0|(_=e[49572]))>990)){e[49572]=_+1,g=1&r,r=0,k[(c=190288+(_<<3)|0)>>1]=g?2:0,f[c+7|0]=0,f[c+3|0]=0,g=I>>>0>1,f[c+2|0]=g?9:11,k[c+4>>1]=0,e[A+8236>>2]=0;A:if(!(!(c=g?I-2|0:0)|(0|(_=e[49572]))>990))for(p=A+8236|0;;){if(e[49572]=_+1,k[(g=190288+(_<<3)|0)>>1]=0,f[g+7|0]=0,f[g+3|0]=0,h=c>>>0>1,f[g+2|0]=h?9:11,k[g+4>>1]=0,e[p>>2]=0,_=e[49572],(0|(c=h?c-2|0:0))<=0)break A;if(!((0|_)<991))break}e[A+8228>>2]=0,e[A+8232>>2]=0}f[199388]=1&r,!re|e[47200]!=1||(e[49572]=_+2,f[199388]=0,k[(c=190288+(_<<3)|0)>>1]=1&r?2:0,f[c+7|0]=0,k[c+2>>1]=10,k[c+4>>1]=0,k[c+12>>1]=0,e[c+8>>2]=1179648,f[c+15|0]=0,1&l&&yt(f[t+1|0])&&(r=d[199388],f[199388]=0,t=e[49572],e[49572]=t+2,k[(t=190288+(t<<3)|0)>>1]=r?2:0,f[t+7|0]=0,k[t+2>>1]=10,k[t+4>>1]=0,k[t+12>>1]=0,e[t+8>>2]=1179648,f[t+15|0]=0)),c=Y>>>0<31;A:if(!((0|s)<0))if(t=e[49572],r=d[190290+((I=t-1|0)<<3)|0],d[189088]!=9|d[189089]!=21)(0|r)!=21&&(g=d[199388],f[199388]=0,f[(r=190288+(t<<3)|0)+7|0]=0,k[r+2>>1]=21,k[r+4>>1]=0,k[r>>1]=g?2:0,I=t),e[49572]=I+1,f[190295+(I<<3)|0]=s;else{if((0|r)!=21)break A;e[49572]=I}t=2047&me,r=(c?Y:31)<<11,h=(Te=128&l)?d[e[144464+(d[189088]<<2)>>2]+11|0]?189088:189089:189088,(I=d[0|h])|!(1&f[199388])||(I=23,f[0|h]=23,f[h+1|0]=0),Fe=t|r,p=e[49572];A:if(I)if((0|p)>994)t=0;else for(cA=((-1610612736&P)==-2147483648)<<4,me=Fe+1|0,gA=A+8233|0,t=0,g=1,J=0,Ne=1,Y=-1,re=-1,c=0;;){M=h+1|0;r:{if((0|(H=255&I))!=255){if(r=e[144464+(H<<2)>>2])break r;e[i>>2]=H,V=r=V-16|0,e[r+12>>2]=i,fi(132552,87474,i),V=r+16|0,p=e[49572]}if(!(I=d[0|M]))break A;if(h=M,(0|p)<995)continue;break A}r:if((0|(ie=255&I))!=21)if((0|(h=d[r+11|0]))!=1){r=me;a:switch(ie-12|0){case 8:f[(r=190288+((Y=p-1|0)<<3)|0)+3|0]=g,k[r>>1]=4|y[r>>1],r=c;break r;case 0:k[(r=190280+(p<<3)|0)>>1]=8|y[r>>1],r=c;break r;case 10:P|=16384,e[i+412>>2]=P,r=c;break r;case 3:break r;default:break a}H=d[199388],f[199388]=0,f[(r=(ie=p<<3)+190288|0)+7|0]=0,f[r+2|0]=I,k[r+4>>1]=c,c=(H?2:0)|cA,k[r>>1]=c,(0|h)==2?((0|g)>=4&&(f[189076]=1),(0|Y)<0||(0|(t=p-1|0))!=(0|Y)&&(f[190291+(t<<3)|0]=g),k[r>>1]=4|c,Xe=(t=(0|g)>(0|re))?p:Xe,re=t?g:re,c=1,J&&(f[r+7|0]=J),Y=p,J=0,t=g):(!Ne|!(64&d[0|gA])||(k[r>>1]=8|c),c=g),p=p+1|0,e[49572]=p,f[ie+190291|0]=t,r=0,Ne=0,g=c}else{if(!y[r+8>>1]){g=d[r+14|0],r=c;break r}if((0|Y)<0){r=c,J=H;break r}f[190295+(Y<<3)|0]=I,r=c}else e[(r=190288+(p<<3)|0)>>2]=1376256,k[r+4>>1]=0,f[r+7|0]=d[h+1|0],e[49572]=p+1,ts(d[h+1|0]),M=h+2|0,p=e[49572],r=c;if(!(I=d[0|M]))break A;if(h=M,c=r,!((0|p)<995))break}else t=0;131072&l&&(r=p+1|0,e[49572]=r,g=d[199388],f[199388]=0,f[(c=190288+(p<<3)|0)+7|0]=0,k[c+2>>1]=27,k[c+4>>1]=0,k[c>>1]=g?2:0,p=r),Te||(k[190292+(_<<3)>>1]=Fe),e[A+8228>>2]=0,d[e[144464+(d[190282+(p<<3)|0]<<2)>>2]+11|0]!=2|(0|t)<4||(e[A+8228>>2]=1),(0|s)>=0&&(GA(132848,i+16|0),ts(e[e[32972]+60>>2]),r=d[199388],f[199388]=0,s=e[49572],k[(t=190288+(s<<3)|0)>>1]=r?2:0,k[t+2>>1]=21,k[t+4>>1]=0,f[t+7|0]=e[e[32972]+60>>2],p=s+1|0,e[49572]=p),(0|ve)>0&&(f[199388]=0,e[49572]=p+1,e[(t=190288+(p<<3)|0)>>2]=655362,r=e[47350],e[47350]=r+1,f[t+7|0]=0,k[t+4>>1]=0,e[198304+(r<<2)>>2]=ve<<8|225),1024&P&&(k[(t=190288+(Xe<<3)|0)>>1]=64|y[t>>1]),e[A+8232>>2]=P}}return V=i+416|0,P}function Vr(A,t,r,s,i){var l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0;e:if(t){if(re=i<<4,c=(t=e[33268])+r|0,!((0|t)<=0||(l=d[0|(p=re+129360|0)],M=d[p+1|0]-l<<8,M=(0|t)!=1?(0|M)/(0|t)|0:M,(0|r)>=(0|c))))for(P=M>>>0>255,H=M>>>8|0,l<<=8,p=0-M>>>8|0,ve=(0|M)<=0,t=r;ve?(I=(h=(h=(0|(g=(0|(g=e[101024+(f[O(t,6)+A|0]<<2)>>2]))<(0|p)?p:g))>=18?18:g)+(g=(0|(g=(0|(l=l+M|0))/256|0))>0?g:0)|0)>>>0>=254?254:h,g=g>>>0>=254?254:g):(g=O(t,6)+A|0,f[g+2|0]=P|d[g+2|0],g=(h=(0|(g=(0|l)/256|0))>0?g:0)>>>0>=254?254:h,I=(h=h+H|0)>>>0>=254?254:h,l=l+M|0),h=O(t,6)+A|0,f[h+5|0]=g,f[h+4|0]=I,(0|c)!=(0|(t=t+1|0)););if(2&d[188785]?(p=e[33271],e[33270]=p):p=e[33270],H=(P=d[(l=(t=i<<4)+129360|0)+3|0])-(g=d[l+2|0])<<8,ve=e[l+4>>2],(0|r)>0?(Fe=101056,ie=5,h=(0|H)/(d[t+129368|0]-1|0)|0):(Fe=e[(t=t+129360|0)+12>>2],ie=d[t+10|0],h=0),(0|c)<(0|p)){for(M=(0|r)<=0,J=((t=H>>31)^H)-t|0,_=129360+(i<<4)|0,g<<=8,Te=P<<8,P=0;;){A:{if(I=O(c,6)+A|0,!(!(1&M)&(0|(l=f[0|I]))<4)){r=0,t=c;r:if(1&((0|l)==5|M)){for(;(0|(h=f[O(t,6)+A|0]))<=6&&(r=((0|h)>3)+r|0,(0|p)!=(0|(t=t+1|0))););if(Y=0,(0|(me=(0|(t=d[_+8|0]))>(0|r)?r:t))<2){h=0,P=g;break r}h=(0|H)/(me-1|0)|0,P=g}else(0|me)>0?P=h+P|0:(P=Te+(O(J,f[Y+Fe|0])>>6)|0,(0|ie)>(0|(Y=Y+1|0))||(Fe=e[_+12>>2],Y=0));if(me=me-1|0,!((0|l)<4)){f[0|I]=6,r=(t=(0|(t=(0|P)/256|0))>0?t:0)+(((r=(l=e[ve+(l<<2)>>2])>>31)^l)-r|0)|0;break A}}(0|l)!=3?(t=(0|P)/256|0,(63&d[I-6|0])>>>0>=3?(r=(l=e[ve+(l<<2)>>2])>>31,r=(t=(0|(t=t-f[_+9|0]|0))>0?t:0)+((r^l)-r|0)|0):r=(t=(0|t)>0?t:0)+(((r=(l=e[ve+(l<<2)>>2])>>31)^l)-r|0)|0):r=(t=(0|(t=(0|P)/256|0))>0?t:0)+(((r=(l=e[ve+12>>2])>>31)^l)-r|0)|0}if(f[I+5|0]=t>>>0>=254?254:t,M=0,t=(0|r)>0?r:0,f[I+4|0]=t>>>0>=254?254:t,f[I+2|0]=d[I+2|0]|l>>>31,(0|p)==(0|(c=c+1|0)))break}c=p}if(!(d[133068]||((268435455&i)==3&&(t=O(c,6)+A|0,f[t+2|0]=2|d[t+2|0]),e[33269]?(t=d[(l=100768+(i<<4)|0)+5|0],g=l+3|0,r=d[l+4|0]-t|0):(t=d[(r=100768+(i<<4)|0)+2|0],g=re+100768|0,r=d[r+1|0]-t|0),l=O(c,6)+A|0,f[l+5|0]=t>>>0>=254?254:t,f[l+2|0]=d[l+2|0]|r>>>31,t=(h=t)+(((t=r>>31)^r)-t|0)|0,f[l+4|0]=t>>>0>=254?254:t,r=O(p,6)+A|0,f[r+1|0]=d[0|g],t=c+1|0,d[0|r]==4&&(f[0|r]=6),(0|(r=s-t|0))<=0||(i=d[(c=100768+(i<<4)|0)+12|0],c=d[c+13|0]-i<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))))for(h=c>>>0>255,M=c>>>8|0,r=i<<8,i=0-c>>>8|0,P=(0|c)<=0;P?(g=(p=(g=(0|(l=(0|i)>(0|(l=e[101024+(f[O(t,6)+A|0]<<2)>>2]))?i:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:p,p=l>>>0>=254?254:l):(l=O(t,6)+A|0,f[l+2|0]=h|d[l+2|0],p=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,g=(l=l+M|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,f[l+5|0]=p,f[l+4|0]=g,(0|s)!=(0|(t=t+1|0)););}else{if(t=(ie=e[34455])+O(i,68)|0,c=d[t+24|0],p=d[t+25|0],l=(t=e[33268])+r|0,!((0|t)<=0||(I=p-c<<8,I=(0|t)!=1?(0|I)/(0|t)|0:I,(0|r)>=(0|l))))for(h=I>>>0>255,M=I>>>8|0,t=c<<8,p=0-I>>>8|0,P=(0|I)<=0;P?(c=(c=(H=(0|(c=(0|(c=e[101024+(f[O(r,6)+A|0]<<2)>>2]))<(0|p)?p:c))>=18?18:c)+(g=(0|(c=(0|(t=t+I|0))/256|0))>0?c:0)|0)>>>0>=254?254:c,g=g>>>0>=254?254:g):(c=O(r,6)+A|0,f[c+2|0]=h|d[c+2|0],g=(c=(0|(c=(0|t)/256|0))>0?c:0)>>>0>=254?254:c,c=(c=c+M|0)>>>0>=254?254:c,t=t+I|0),H=O(r,6)+A|0,f[H+5|0]=g,f[H+4|0]=c,(0|l)!=(0|(r=r+1|0)););2&d[188785]?(r=e[33271],e[33270]=r):r=e[33270],p=r,t=ie+O(i,68)|0;A:if((0|(M=d[t+33|0]))!=255)for(;;){if((0|(p=p-1|0))<(0|l)){p=r;break A}if(!(f[O(p,6)+A|0]<4))break}if((0|r)>(0|l)){for(gA=((c=(Xe=(P=d[t+32|0])-(I=d[0|(g=t+31|0)])<<8)>>31)^Xe)-c|0,Te=(0|(t=d[0|(h=t+30|0)]))==255,H=M<<8,ve=I<<8,NA=P<<8,re=ie+O(i,68)|0,RA=(0|t)!=255,P=0,M=0,t=1,I=0;;){A:{if(_=O(l,6)+A|0,!(!(1&t)&(0|(J=f[0|_]))<4)){r:if(1&((0|J)==5|t)){a:if(RA){if(Ne=1,t=0,c=h,!((0|p)<=(0|(I=l+1|0)))){for(;;){if(c=h,(0|(M=f[O(I,6)+A|0]))>6)break a;if(t=((0|M)>3)+t|0,(0|p)==(0|(I=I+1|0)))break}c=h}}else{if(t=0,I=l,c=g,(0|p)<=(0|l))break a;for(;;){if(c=g,(0|(M=f[O(I,6)+A|0]))>6)break a;if(t=((0|M)>3)+t|0,(0|p)==(0|(I=I+1|0)))break}c=g}if(M=d[0|c]<<8,cA=0,(0|(I=(0|t)<(0|(c=d[re+34|0]))?t:c))<2){Fe=0;break r}Fe=(0|Xe)/(I-1|0)|0}else(0|l)!=(0|p)?Ne?(Te=1,I=I+1|0,Ne=0,M=ve):(0|I)>0?(M=M+Fe|0,Ne=0):(Ne=0,M=(O(f[16+(re+cA|0)|0],gA)>>6)+NA|0,cA=(0|(t=cA+1|0))1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}f[0|_]=6,f[_+1|0]=d[re+26|0],P=0,Y=d[re+27|0],l=(0|(l=(0|M)/256|0))>0?l:0,f[_+5|0]=l>>>0>=254?254:l,l=l+Y|0,f[_+4|0]=l>>>0>=254?254:l,me=t-c|0;break A}}if((0|J)>=2){t=c=l+1|0;r:if(!((0|r)<=(0|l)))for(;;){if(f[O(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}P=0,l=(0|(l=(0|M)/256|0))>0?l:0,f[_+5|0]=l>>>0>=254?254:l,Y=e[100976+(J<<2)>>2],f[_+2|0]=d[_+2|0]|Y>>>31,l=(0|(l=(J=l)+(((l=Y>>31)^Y)-l|0)|0))>0?l:0,f[_+4|0]=l>>>0>=254?254:l,me=t-c|0}else(0|me)<=1?(Y=f[36+(re+Te|0)|0],t=0):(Y=f[(t=re+Te|0)+36|0],t=(f[t+39|0]-Y|0)/(me-1|0)|0),c=e[100976+(J<<2)>>2],f[_+2|0]=d[_+2|0]|c>>>31,t=(0|(t=(((0|M)/256|0)+Y|0)+O(t,P)|0))>0?t:0,f[_+5|0]=t>>>0>=254?254:t,t=(0|(t=t+(((J=c)^(c>>=31))-c|0)|0))>0?t:0,f[_+4|0]=t>>>0>=254?254:t,P=P+1|0,c=l+1|0}if(t=0,(0|r)==(0|(l=c)))break}l=r}if(d[133068]||(c=O(l,6)+A|0,e[33269]?(g=ie+O(i,68)|0,t=d[g+47|0],p=d[g+46|0]-t|0,g=g+45|0):(g=ie+O(i,68)|0,t=d[g+44|0],p=d[g+43|0]-t|0,g=g+42|0),g=d[0|g],h=(((h=p>>31)^p)-h|0)+t|0,f[c+4|0]=h>>>0>=254?254:h,f[c+5|0]=t>>>0>=254?254:t,t=O(l,6)+A|0,f[t+2|0]=d[t+2|0]|p>>>31,r=O(r,6)+A|0,f[r+1|0]=g,t=l+1|0,d[0|r]==4&&(f[0|r]=6),(0|(r=s-t|0))<=0)||(c=ie+O(i,68)|0,i=d[c+48|0],c=d[c+49|0]-i<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))break e;for(h=c>>>0>255,M=c>>>8|0,r=i<<8,i=0-c>>>8|0,P=(0|c)<=0;P?(g=(p=(g=(0|(l=(0|i)>(0|(l=e[101024+(f[O(t,6)+A|0]<<2)>>2]))?i:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:p,p=l>>>0>=254?254:l):(l=O(t,6)+A|0,f[l+2|0]=h|d[l+2|0],p=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,g=(l=l+M|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,f[l+5|0]=p,f[l+4|0]=g,(0|s)!=(0|(t=t+1|0)););}}function xs(){var A,t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0;if((0|(A=e[36455]))!=(0|(p=e[36454]))){e:if(!((0|(_=e[36427]))<0|(0|p)==(0|_))){r=M=e[8+(216192+((I=_)<<4)|0)>>2];A:{for(;;){if((s=e[(c=216192+((I=(0|(s=I-1|0))<0?169:s)<<4)|0)>>2])-5>>>0<2)break A;r:{if((0|s)<=4){if(e[c+12>>2]!=(0|r))break A;if(s=y[c+4>>1],e[c+12>>2]=M,r=e[c+8>>2],16&(t=y[r>>1]))break r;for(H=32&t?(O(s,12)>>>0)/10|0:s,i=0,s=r,g=0;;){t=y[r>>1];a:if(!(g>>>0<3&&8&t)){if(t=t<<16>>16,(0|(Y=(h=k[2+((P=g<<1)+r|0)>>1])-(l=k[(P=M+P|0)+2>>1])|0))>(0|(h=(0|O(H,(0|O(e[200944+(g<<2)>>2],(0|Y)>0?h+(l<<1)|0:(h<<1)+l|0))/3e3|0))/256|0)))i||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(i=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,k[t>>1]=l,k[t+2>>1]=l>>>16,k[t+4>>1]=s,k[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,k[t+56>>1]=l,k[t+58>>1]=l>>>16,k[t+60>>1]=s,k[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,k[t+48>>1]=l,k[t+50>>1]=l>>>16,k[t+52>>1]=s,k[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,k[t+40>>1]=l,k[t+42>>1]=l>>>16,k[t+44>>1]=s,k[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,k[t+32>>1]=l,k[t+34>>1]=l>>>16,k[t+36>>1]=s,k[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,k[t+24>>1]=l,k[t+26>>1]=l>>>16,k[t+28>>1]=s,k[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,k[t+16>>1]=l,k[t+18>>1]=l>>>16,k[t+20>>1]=s,k[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,k[t+8>>1]=l,k[t+10>>1]=l>>>16,k[t+12>>1]=s,k[t+14>>1]=s>>>16,f[i+177904|0]=0,k[t>>1]=32768|y[t>>1],s=t))),t=h+y[P+2>>1]|0;else{if((0-h|0)<=(0|Y))break a;i||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(i=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,k[t>>1]=l,k[t+2>>1]=l>>>16,k[t+4>>1]=s,k[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,k[t+56>>1]=l,k[t+58>>1]=l>>>16,k[t+60>>1]=s,k[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,k[t+48>>1]=l,k[t+50>>1]=l>>>16,k[t+52>>1]=s,k[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,k[t+40>>1]=l,k[t+42>>1]=l>>>16,k[t+44>>1]=s,k[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,k[t+32>>1]=l,k[t+34>>1]=l>>>16,k[t+36>>1]=s,k[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,k[t+24>>1]=l,k[t+26>>1]=l>>>16,k[t+28>>1]=s,k[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,k[t+16>>1]=l,k[t+18>>1]=l>>>16,k[t+20>>1]=s,k[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,k[t+8>>1]=l,k[t+10>>1]=l>>>16,k[t+12>>1]=s,k[t+14>>1]=s>>>16,f[i+177904|0]=0,k[t>>1]=32768|y[t>>1],s=t))),t=y[P+2>>1]-h|0}i=1,k[2+((g<<1)+s|0)>>1]=t,e[c+8>>2]=s}if((0|(g=g+1|0))==6)break}M=s}if((0|p)!=(0|I))continue;break A}break}M=r}for(s=0;;){if((r=e[(I=216192+(_<<4)|0)>>2])-5>>>0<2)break e;if((0|r)<=4){if(r=e[I+8>>2],t=y[I+4>>1],s){if((0|r)!=(0|s))break e;e[I+8>>2]=M}else M=r;if(16&(s=y[M>>1]))break e;for(P=32&s?(O(t,6)>>>0)/5|0:t,i=0,r=s=e[I+12>>2],g=0;;){A:{r:if((0|(p=(c=k[2+((t=g<<1)+s|0)>>1])-(t=k[(h=t+M|0)+2>>1])|0))>(0|(c=(0|O(P,(0|O(e[200944+(g<<2)>>2],(0|p)>0?c+(t<<1)|0:(c<<1)+t|0))/3e3|0))/256|0))){if(!i){if(k[s>>1]<0){r=s,t=t+c|0;break r}r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,i=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,p=y[s+16>>1]|y[s+18>>1]<<16,k[t>>1]=p,k[t+2>>1]=p>>>16,k[t+4>>1]=i,k[t+6>>1]=i>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,i=y[s>>1]|y[s+2>>1]<<16,k[r>>1]=i,k[r+2>>1]=i>>>16,k[r+4>>1]=t,k[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,i=y[s+8>>1]|y[s+10>>1]<<16,k[r+8>>1]=i,k[r+10>>1]=i>>>16,k[r+12>>1]=t,k[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,i=y[s+24>>1]|y[s+26>>1]<<16,k[r+24>>1]=i,k[r+26>>1]=i>>>16,k[r+28>>1]=t,k[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,i=y[s+32>>1]|y[s+34>>1]<<16,k[r+32>>1]=i,k[r+34>>1]=i>>>16,k[r+36>>1]=t,k[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,i=y[s+40>>1]|y[s+42>>1]<<16,k[r+40>>1]=i,k[r+42>>1]=i>>>16,k[r+44>>1]=t,k[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,i=y[s+48>>1]|y[s+50>>1]<<16,k[r+48>>1]=i,k[r+50>>1]=i>>>16,k[r+52>>1]=t,k[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,i=y[s+56>>1]|y[s+58>>1]<<16,k[r+56>>1]=i,k[r+58>>1]=i>>>16,k[r+60>>1]=t,k[r+62>>1]=t>>>16,f[r+16|0]=0,k[r>>1]=32768|y[r>>1],t=y[h+2>>1]}t=t+c|0}else{if((0|p)>=(0-c|0))break A;i||(k[s>>1]<0?r=s:(r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,i=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,p=y[s+16>>1]|y[s+18>>1]<<16,k[t>>1]=p,k[t+2>>1]=p>>>16,k[t+4>>1]=i,k[t+6>>1]=i>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,i=y[s>>1]|y[s+2>>1]<<16,k[r>>1]=i,k[r+2>>1]=i>>>16,k[r+4>>1]=t,k[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,i=y[s+8>>1]|y[s+10>>1]<<16,k[r+8>>1]=i,k[r+10>>1]=i>>>16,k[r+12>>1]=t,k[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,i=y[s+24>>1]|y[s+26>>1]<<16,k[r+24>>1]=i,k[r+26>>1]=i>>>16,k[r+28>>1]=t,k[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,i=y[s+32>>1]|y[s+34>>1]<<16,k[r+32>>1]=i,k[r+34>>1]=i>>>16,k[r+36>>1]=t,k[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,i=y[s+40>>1]|y[s+42>>1]<<16,k[r+40>>1]=i,k[r+42>>1]=i>>>16,k[r+44>>1]=t,k[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,i=y[s+48>>1]|y[s+50>>1]<<16,k[r+48>>1]=i,k[r+50>>1]=i>>>16,k[r+52>>1]=t,k[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,i=y[s+56>>1]|y[s+58>>1]<<16,k[r+56>>1]=i,k[r+58>>1]=i>>>16,k[r+60>>1]=t,k[r+62>>1]=t>>>16,f[r+16|0]=0,k[r>>1]=32768|y[r>>1],t=y[h+2>>1])),t=t-c|0}i=1,k[2+((g<<1)+r|0)>>1]=t,e[I+12>>2]=r}if((0|(g=g+1|0))==6)break}M=r}if((0|A)==(0|(_=(0|(r=_+1|0))<=169?r:0)))break}}e[36454]=A}}function ka(A,t){var r,s,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0;V=r=V-48|0,S(+A),l=0|B(1),i=0|B(0),s=l;e:{A:{r:{if((p=2147483647&l)>>>0<=1074752122){if((1048575&l)==598523)break r;if(p>>>0<=1073928572){if((0|s)>0|(0|s)>=0){g=(A+=-1.5707963267341256)+-6077100506506192e-26,T[t>>3]=g,T[t+8>>3]=A-g-6077100506506192e-26,l=1;break e}g=(A+=1.5707963267341256)+6077100506506192e-26,T[t>>3]=g,T[t+8>>3]=A-g+6077100506506192e-26,l=-1;break e}if((0|s)>0|(0|s)>=0){g=(A+=-3.1415926534682512)+-12154201013012384e-26,T[t>>3]=g,T[t+8>>3]=A-g-12154201013012384e-26,l=2;break e}g=(A+=3.1415926534682512)+12154201013012384e-26,T[t>>3]=g,T[t+8>>3]=A-g+12154201013012384e-26,l=-2;break e}if(p>>>0<=1075594811){if(p>>>0<=1075183036){if((0|p)==1074977148)break r;if((0|s)>0|(0|s)>=0){g=(A+=-4.712388980202377)+-18231301519518578e-26,T[t>>3]=g,T[t+8>>3]=A-g-18231301519518578e-26,l=3;break e}g=(A+=4.712388980202377)+18231301519518578e-26,T[t>>3]=g,T[t+8>>3]=A-g+18231301519518578e-26,l=-3;break e}if((0|p)==1075388923)break r;if((0|s)>0|(0|s)>=0){g=(A+=-6.2831853069365025)+-2430840202602477e-25,T[t>>3]=g,T[t+8>>3]=A-g-2430840202602477e-25,l=4;break e}g=(A+=6.2831853069365025)+2430840202602477e-25,T[t>>3]=g,T[t+8>>3]=A-g+2430840202602477e-25,l=-4;break e}if(p>>>0>1094263290)break A}i=(ve=(g=A+-1.5707963267341256*(M=.6366197723675814*A+6755399441055744-6755399441055744))-(_=6077100506506192e-26*M))<-.7853981633974483,l=ee(M)<2147483648?~~M:-2147483648,i?(l=l-1|0,_=6077100506506192e-26*(M+=-1),g=A+-1.5707963267341256*M):ve>.7853981633974483&&(l=l+1|0,_=6077100506506192e-26*(M+=1),g=A+-1.5707963267341256*M),A=g-_,T[t>>3]=A,S(+A),i=0|B(1),B(0),((c=p>>>20|0)-(i>>>20&2047)|0)<17||(_=g,A=(g-=A=6077100506303966e-26*M)-(_=20222662487959506e-37*M-(_-g-A)),T[t>>3]=A,S(+A),i=0|B(1),B(0),(c-(i>>>20&2047)|0)<50||(_=g,A=(g-=A=20222662487111665e-37*M)-(_=84784276603689e-45*M-(_-g-A)),T[t>>3]=A)),T[t+8>>3]=g-A-_;break e}if(p>>>0>=2146435072)A-=A,T[t>>3]=A,T[t+8>>3]=A,l=0;else{for(v(0,0|i),v(1,1048575&s|1096810496),A=+F(),l=0,i=1;c=(r+16|0)+(l<<3)|0,g=+(0|(l=ee(A)<2147483648?~~A:-2147483648)),T[c>>3]=g,A=16777216*(A-g),l=1,c=i,i=0,c;);for(T[r+32>>3]=A,l=2;l=(i=l)-1|0,T[(r+16|0)+(i<<3)>>3]==0;);if(Te=r+16|0,c=0,V=I=V-560|0,p=O(me=(0|(p=((l=(p>>>20|0)-1046|0)-3|0)/24|0))>0?p:0,-24)+l|0,((Y=e[28105])+(h=(re=i+1|0)-1|0)|0)>=0)for(l=Y+re|0,i=me-h|0;T[(I+320|0)+(c<<3)>>3]=(0|i)<0?0:+e[112432+(i<<2)>>2],i=i+1|0,(0|l)!=(0|(c=c+1|0)););for(J=p-24|0,l=0,c=(0|Y)>0?Y:0,H=(0|re)<=0;;){if(H)A=0;else for(P=l+h|0,i=0,A=0;A=T[(i<<3)+Te>>3]*T[(I+320|0)+(P-i<<3)>>3]+A,(0|re)!=(0|(i=i+1|0)););if(T[(l<<3)+I>>3]=A,i=(0|l)==(0|c),l=l+1|0,i)break}cA=47-p|0,Fe=48-p|0,gA=p-25|0,l=Y;A:{for(;;){if(A=T[(l<<3)+I>>3],i=0,c=l,!(P=(0|l)<=0))for(;H=(I+480|0)+(i<<2)|0,h=ee(g=5960464477539063e-23*A)<2147483648?~~g:-2147483648,h=ee(A=-16777216*(g=+(0|h))+A)<2147483648?~~A:-2147483648,e[H>>2]=h,A=T[((c=c-1|0)<<3)+I>>3]+g,(0|l)!=(0|(i=i+1|0)););A=Aa(A,J),A+=-8*xe(.125*A),A-=+(0|(H=ee(A)<2147483648?~~A:-2147483648));r:{a:{n:{if(Ne=(0|J)<=0){if(J)break n;h=e[476+((l<<2)+I|0)>>2]>>23}else ie=c=(l<<2)+I|0,c=(h=e[c+476>>2])-((i=h>>Fe)<>2]=c,H=i+H|0,h=c>>cA;if((0|h)<=0)break r;break a}if(h=2,!(A>=.5)){h=0;break r}}if(i=0,c=0,!P)for(;Xe=e[(ie=(I+480|0)+(i<<2)|0)>>2],P=16777215,c||(P=16777216,Xe)?(e[ie>>2]=P-Xe,c=1):c=0,(0|l)!=(0|(i=i+1|0)););a:if(!Ne){i=8388607;n:switch(0|gA){case 1:i=4194303;break;case 0:break n;default:break a}e[(P=(l<<2)+I|0)+476>>2]=e[P+476>>2]&i}H=H+1|0,(0|h)==2&&(A=1-A,h=2,c&&(A-=Aa(1,J)))}if(A!=0)break;if(c=0,!((0|Y)>=(0|(i=l)))){for(;c=e[(I+480|0)+((i=i-1|0)<<2)>>2]|c,(0|i)>(0|Y););if(c){for(p=J;p=p-24|0,!e[(I+480|0)+((l=l-1|0)<<2)>>2];);break A}}for(i=1;c=i,i=i+1|0,!e[(I+480|0)+(Y-c<<2)>>2];);for(c=l+c|0;;){if(h=l+re|0,l=l+1|0,T[(I+320|0)+(h<<3)>>3]=e[112432+(me+l<<2)>>2],i=0,A=0,(0|re)>0)for(;A=T[(i<<3)+Te>>3]*T[(I+320|0)+(h-i<<3)>>3]+A,(0|re)!=(0|(i=i+1|0)););if(T[(l<<3)+I>>3]=A,!((0|l)<(0|c)))break}l=c}(A=Aa(A,24-p|0))>=16777216?(J=(I+480|0)+(l<<2)|0,i=ee(g=5960464477539063e-23*A)<2147483648?~~g:-2147483648,c=ee(A=-16777216*+(0|i)+A)<2147483648?~~A:-2147483648,e[J>>2]=c,l=l+1|0):(i=ee(A)<2147483648?~~A:-2147483648,p=J),e[(I+480|0)+(l<<2)>>2]=i}if(A=Aa(1,p),!((0|l)<0)){for(i=l;c=i,T[(i<<3)+I>>3]=A*+e[(I+480|0)+(i<<2)>>2],i=i-1|0,A*=5960464477539063e-23,c;);if(P=0,!((0|l)<0))for(p=(0|Y)>0?Y:0,c=l;;){for(J=p>>>0

>>0?p:P,Y=l-c|0,i=0,A=0;A=T[115200+(i<<3)>>3]*T[(i+c<<3)+I>>3]+A,re=(0|i)!=(0|J),i=i+1|0,re;);if(T[(I+160|0)+(Y<<3)>>3]=A,c=c-1|0,i=(0|l)!=(0|P),P=P+1|0,!i)break}}if(A=0,(0|l)>=0)for(i=l;c=i,i=i-1|0,A+=T[(I+160|0)+(c<<3)>>3],c;);if(T[r>>3]=h?-A:A,A=T[I+160>>3]-A,i=1,(0|l)>0)for(;A+=T[(I+160|0)+(i<<3)>>3],c=(0|i)!=(0|l),i=i+1|0,c;);T[r+8>>3]=h?-A:A,V=I+560|0,l=7&H,A=T[r>>3],(0|s)<0?(T[t>>3]=-A,T[t+8>>3]=-T[r+8>>3],l=0-l|0):(T[t>>3]=A,T[t+8>>3]=T[r+8>>3])}}return V=r+48|0,l}function ua(){var A=0,t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0,bt=0,vt=0,Ot=0,Xt=0,ar=0,hr=0,dr=0,Sr=0,Wr=0,Kr=0,rs=0,cs=0,us=0,na=0,ia=0,Js=0;e[55925]=0,A=e[56772],e[56772]=A+1,r=e[55961],P=e[55922],Y=rn(39.89822670059037*(t=+(0|A))),I=rn(22.30530784048753*t),t=+(0|P)/50*(+(0|r)/100)*(rn(14.765485471872028*t)+(Y+I))*10,A=ee(t)<2147483648?~~t:-2147483648,e[56607]=A+e[56607];e:if(!(e[55923]<=0)){for(;;){for(r=et(e[33209],0,1103515245,0),A=fe,A=ui(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,$A=+(0|A),t=.75*T[28387]+$A,T[28387]=t,bt=(0|(A=e[55924]))>(0|(Fe=e[55928]))?.5*t:t,ar=(i=.033*+e[56652])>0?1-i:1,r=e[56650]<<2,cA=(0|(Xe=e[55921]))==1&&(0|r)>263?263:r,hr=111136+((vt=e[56651])<<1)|0,dr=111136+((gA=e[56658])<<1)|0,Sr=(0|gA)>0,Ot=e[55918],Wr=O(Ot,40),Kr=e[55925],rs=T[27967],Xt=e[56607],t=T[27979],J=T[27969],g=T[27970],NA=e[56780],me=e[56654],M=T[27976],_=T[27972],re=T[28388],ie=T[28389],P=e[55927],s=T[28383],h=e[55926],ve=e[55956],cs=T[27975],I=T[28131],l=T[28130],c=T[28123],H=T[28121],p=T[28122],Ne=T[28120],Te=T[28119],us=T[28129],na=T[28128],ia=T[28127],Js=os(0*T[27968]),RA=0;;){Y=l;A:{r:switch(Xe-1|0){case 0:re=0,l=H*c,c=p,p=s=l+(Te*(re=(0|A)<=2?T[111312+(A<<3)>>3]:re)+Ne*c);break A;case 1:if(s=0,(0|A)>=(0|P)){ie=0;break A}l=T[27965]-T[27966],T[27965]=l,s=.028*(ie=l+ie);break A;case 2:if(!h){ve=100,s=0;break A}ve=100,r=ee(l=+(0|A)/+(0|h)*100)<2147483648?~~l:-2147483648,s=+k[110928+((0|r)%100<<1)>>1],s=t*((+k[110928+((r+1|0)%100<<1)>>1]-s)*(l-+(0|r))+s);break A;case 3:break r;default:break A}h?(ve=256,r=ee(l=+(0|A)/+(0|h)*256)<2147483648?~~l:-2147483648,s=+k[111344+((0|r)%256<<1)>>1],s=t*((+k[111344+((r+1|0)%256<<1)>>1]-s)*(l-+(0|r))+s)):(ve=256,s=0)}if((0|A)>=(0|h)&&((0|Xt)>0?(A=(0|Wr)/(0|Xt)|0,M=0,_=0,_=gA>>>0<=87?.001*+k[dr>>1]:_,M=vt>>>0<=87?.001*+k[hr>>1]*.1:M,Fe=A>>Sr,P=(0|(r=(h=(A-1|0)<=(0|cA))?A-2|0:cA))<=40?40:r,l=+k[111776+((P=h||(0|r)<40?P:cA)<<1)>>1],T[27966]=l,H=l,l=+(0|P),T[27965]=H*l*.333,me=(0|(r=A-P|0))>(0|me)?me:r,NA=0-(r=(0|NA)<0?0-me|0:me)|0,Te=(l*=.00833)*l,Te*=1-(Ne=(H=(l=xr(rs*+((0|Ot)/(0|P)|0)))*Js)+H)-(H=l*-l),A=(0|(h=A+r|0))!=4):(e[55930]=0,e[55931]=0,e[55932]=0,e[55933]=0,Fe=4,M=0,_=0,h=4,A=0),g=(A|=!Kr)?i:g,J=A?ar:J,A=0),A=A+1|0,l=s=us*I+(ia*s+na*Y),I=Y,(0|(RA=RA+1|0))==4)break}if(e[55926]=h,e[55956]=ve,e[55924]=A,T[28383]=s,e[55927]=P,T[28389]=ie,T[28388]=re,T[27972]=_,T[27976]=M,e[55928]=Fe,e[56654]=me,e[56780]=NA,T[27970]=g,T[27969]=J,T[28122]=p,T[28120]=Ne,T[28119]=Te,T[28123]=c,T[28121]=H,T[28131]=I,T[28130]=s,(0|Xe)==5&&(s=6e3*((t=+(0|A)/+(0|h))+t+-1),T[28383]=s),t=s*J+T[28384]*g,T[28383]=t,T[28384]=t,(0|A)<(0|P)&&(t=M*$A+t,T[28383]=t),g=bt*T[27974],Y=t*T[27973]+g,I=0,e[55916]!=2&&(I=T[27987],p=T[27986],T[27987]=p,t=g+t*_,T[27986]=t,g=T[28059],c=T[28058],T[28059]=c,t=g*T[28057]+(T[28055]*(I*T[27985]+(T[27983]*t+p*T[27984]))+c*T[28056]),T[28058]=t,I=T[28049],g=T[28051],p=T[28048],c=T[28047],i=T[28050],T[28051]=i,t=I*g+(c*t+p*i),T[28050]=t,I=T[28043],g=T[28041],p=T[28040],c=T[28039],i=T[28042],T[28043]=i,t=g*I+(c*t+p*i),T[28042]=t,I=T[28035],g=T[28033],p=T[28032],c=T[28031],i=T[28034],T[28035]=i,t=g*I+(c*t+p*i),T[28034]=t,I=T[28027],g=T[28025],p=T[28024],c=T[28023],i=T[28026],T[28027]=i,t=g*I+(c*t+p*i),T[28026]=t,I=T[28019],g=T[28017],p=T[28016],c=T[28015],i=T[28018],T[28019]=i,t=g*I+(c*t+p*i),T[28018]=t,I=T[28011],g=T[28009],p=T[28008],c=T[28007],i=T[28010],T[28011]=i,t=g*I+(c*t+p*i),T[28010]=t,I=T[28003],g=T[28001],p=T[28e3],c=T[27999],i=T[28002],T[28003]=i,t=g*I+(c*t+p*i),T[28002]=t,I=T[27995],g=T[27993],p=T[27992],c=T[27991],i=T[27994],T[27995]=i,I=g*I+(c*t+p*i),T[27994]=I),t=T[28385],T[28385]=Y,g=T[28075],p=T[28074],T[28075]=p,c=T[28067],i=T[28066],T[28067]=i,g=g*T[28073]+(T[28071]*Y+p*T[28072]),T[28074]=g,p=c*T[28065]+(T[28063]*Y+i*T[28064]),T[28066]=p,c=T[28081],i=T[28083],l=T[28079],s=T[28080],M=T[28082],T[28083]=M,Y=c*i+(l*(t=cs*bt+Y-t)+s*M),T[28082]=Y,c=T[28091],i=T[28089],l=T[28087],s=T[28088],M=T[28090],T[28091]=M,c=i*c+(l*t+s*M),T[28090]=c,i=T[28099],l=T[28097],s=T[28095],M=T[28096],_=T[28098],T[28099]=_,i=l*i+(s*t+M*_),T[28098]=i,l=T[28107],s=T[28105],M=T[28103],_=T[28104],J=T[28106],T[28107]=J,l=s*l+(M*t+_*J),T[28106]=l,s=T[28115],M=T[28113],_=T[28111],J=T[28112],re=T[28114],T[28115]=re,s=M*s+(_*t+J*re),T[28114]=s,M=T[28139],_=T[28137],J=T[28136],re=T[28135],ie=T[27971],H=T[28138],T[28139]=H,t=_*M+(re*(t*ie-(s-(l-(i-(c-(Y-(I+g+p)))))))+J*H),T[28138]=t,t=T[27977]*(t*+e[50779]),s=+(0|(A=ee(t)<2147483648?~~t:-2147483648)),(0|(A=e[50776]))>1],e[50755])>>8,A=ee(s)<2147483648?~~s:-2147483648,(0|r)>=5500&&(e[51293]=0),r=e[51290],e[51290]=r+1,A=(0|(A=(0|(A=A+h|0))<=-32768?-32768:A))>=32767?32767:A,f[0|r]=A,r=e[51290],e[51290]=r+1,f[0|r]=A>>>8,h=(r=e[51292])+1|0,e[51292]=h,k[205184+(r<<1)>>1]=A,(0|h)>=5500&&(e[51292]=0),h=1,e[56606]=e[56606]+1,te[54046]>>0)break e;if(A=e[55925]+1|0,e[55925]=A,!((0|A)>2]=t,I=g+55|0,p=g+56|0;e:{A:{r:{a:{n:for(;;){if(P=t,(2147483647^re)<(0|h))break a;re=h+re|0;o:{c:{u:{if(M=d[0|(h=P)])for(;;){l:{i:if(t=255&M){if((0|t)!=37)break l;for(M=h;;){if(d[M+1|0]!=37){t=M;break i}if(h=h+1|0,Y=d[M+2|0],M=t=M+2|0,(0|Y)!=37)break}}else t=h;if((0|(h=h-P|0))>(0|(Xe=2147483647^re)))break a;if(A&&Ur(A,P,h),h)continue n;e[g+76>>2]=t,h=t+1|0,ie=-1,d[t+2|0]!=36|f[t+1|0]-48>>>0>=10||(ie=f[t+1|0]-48|0,Te=1,h=t+3|0),e[g+76>>2]=h,H=0;i:if((t=(M=f[0|h])-32|0)>>>0>31)J=h;else if(J=h,75913&(t=1<>2]=J,H|=t,(t=(M=f[h+1|0])-32|0)>>>0>=32)break i;if(h=J,!(75913&(t=1<>2]}else{if(d[J+2|0]!=36|f[J+1|0]-48>>>0>=10){if(Te)break u;if(M=J+1|0,!A){e[g+76>>2]=M,Te=0,me=0;break i}t=e[r>>2],e[r>>2]=t+4,Te=0,t=e[t>>2]}else e[((f[J+1|0]<<2)+i|0)-192>>2]=10,M=J+3|0,Te=1,t=e[((f[J+1|0]<<3)+s|0)-384>>2];if(e[g+76>>2]=M,me=t,(0|t)>=0)break i;me=0-me|0,H|=8192}if(h=0,_=-1,d[0|M]==46)if(d[M+1|0]!=42)e[g+76>>2]=M+1,_=Ua(g+76|0),t=e[g+76>>2],Ne=1;else{if(d[M+3|0]!=36|f[M+2|0]-48>>>0>=10){if(Te)break u;t=M+2|0,_=0,A&&(M=e[r>>2],e[r>>2]=M+4,_=e[M>>2])}else e[((f[M+2|0]<<2)+i|0)-192>>2]=10,t=M+4|0,_=e[((f[M+2|0]<<3)+s|0)-384>>2];e[g+76>>2]=t,Ne=~_>>>31|0}else t=M,Ne=0;for(;;){if(ve=h,J=28,Y=t,(h=f[0|t])-123>>>0<4294967238)break r;if(t=Y+1|0,!((h=d[123983+(h+O(ve,58)|0)|0])-1>>>0<8))break}e[g+76>>2]=t;i:{p:{if((0|h)!=27){if(!h)break r;if((0|ie)>=0){e[(ie<<2)+i>>2]=h,h=e[(M=(ie<<3)+s|0)+4>>2],e[g+64>>2]=e[M>>2],e[g+68>>2]=h;break p}if(!A)break o;je(g- -64|0,h,r,c);break i}if((0|ie)>=0)break r}if(h=0,!A)continue n}M=-65537&H,H=8192&H?M:H,ie=0,Fe=84065,J=p;i:{p:{C:{h:{b:{m:{x:{I:{B:{N:{L:{U:{y:{M:{Q:{F:switch(h=f[0|Y],(h=ve&&(15&h)==3?-33&h:h)-88|0){case 11:break i;case 9:case 13:case 14:case 15:break p;case 27:break x;case 12:case 17:break N;case 23:break L;case 0:case 32:break U;case 24:break y;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 F}F:switch(h-65|0){case 0:case 4:case 5:case 6:break p;case 2:break b;case 1:case 3:break c;default:break F}if((0|h)==83)break m;break c}M=e[g+64>>2],Y=e[g+68>>2],Fe=84065;break B}h=0;M:switch(255&ve){case 0:case 1:case 6:e[e[g+64>>2]>>2]=re;continue n;case 2:P=e[g+64>>2],e[P>>2]=re,e[P+4>>2]=re>>31;continue n;case 3:k[e[g+64>>2]>>1]=re;continue n;case 4:f[e[g+64>>2]]=re;continue n;case 7:break M;default:continue n}P=e[g+64>>2],e[P>>2]=re,e[P+4>>2]=re>>31;continue n}_=_>>>0<=8?8:_,H|=8,h=120}if(P=p,cA=32&h,(M=e[g+64>>2])|(Y=e[g+68>>2]))for(;f[0|(P=P-1|0)]=cA|d[124512+(15&M)|0],gA=!Y&M>>>0>15|!!(0|Y),ve=Y,Y=Y>>>4|0,M=(15&ve)<<28|M>>>4,gA;);if(!(e[g+64>>2]|e[g+68>>2])|!(8&H))break I;Fe=84065+(h>>>4|0)|0,ie=2;break I}if(h=p,Y=P=e[g+68>>2],P|(M=e[g+64>>2]))for(;f[0|(h=h-1|0)]=7&M|48,ve=!Y&M>>>0>7|!!(0|Y),Y=(P=Y)>>>3|0,M=(7&P)<<29|M>>>3,ve;);if(P=h,!(8&H))break I;_=(0|(h=p-P|0))<(0|_)?_:h+1|0;break I}M=e[g+64>>2],Y=h=e[g+68>>2],(0|h)<0?(Y=P=0-(Y+!!(0|M)|0)|0,M=0-M|0,e[g+64>>2]=M,e[g+68>>2]=P,ie=1,Fe=84065):2048&H?(ie=1,Fe=84066):Fe=(ie=1&H)?84067:84065}P=Ks(M,Y,p)}if((0|_)<0&&Ne)break a;if(H=Ne?-65537&H:H,!(_|!!((h=e[g+64>>2])|(M=e[g+68>>2])))){P=p,_=0;break c}_=(0|(h=!(h|M)+(p-P|0)|0))<(0|_)?_:h;break c}if(J=(h=(h=Ma(P=(h=e[g+64>>2])||84639,0,Y=_>>>0>=2147483647?2147483647:_))?h-P|0:Y)+P|0,(0|_)>=0){H=M,_=h;break c}if(H=M,_=h,d[0|J])break a;break c}if(_){M=e[g+64>>2];break h}h=0,Fr(A,32,me,0,H);break C}e[g+12>>2]=0,e[g+8>>2]=e[g+64>>2],M=g+8|0,e[g+64>>2]=M,_=-1}h=0;h:{for(;;){if(!(P=e[M>>2]))break h;if(!((P=(0|(Y=ma(g+4|0,P)))<0)|Y>>>0>_-h>>>0)){if(M=M+4|0,_>>>0>(h=h+Y|0)>>>0)continue;break h}break}if(P)break A}if(J=61,(0|h)<0)break r;if(Fr(A,32,me,h,H),h)for(J=0,M=e[g+64>>2];;){if(!(P=e[M>>2])||(J=(P=ma(g+4|0,P))+J|0)>>>0>h>>>0)break C;if(Ur(A,g+4|0,P),M=M+4|0,!(h>>>0>J>>>0))break}else h=0}Fr(A,32,me,h,8192^H),h=(0|h)<(0|me)?me:h;continue n}if((0|_)<0&&Ne)break a;if(J=61,(0|(h=0|ZA[0|l](A,T[g+64>>3],me,_,H,h)))>=0)continue n;break r}f[g+55|0]=e[g+64>>2],_=1,P=I,H=M;break c}M=d[h+1|0],h=h+1|0}if(A)break e;if(!Te)break o;for(h=1;;){if(A=e[(h<<2)+i>>2]){if(je((h<<3)+s|0,A,r,c),re=1,(0|(h=h+1|0))!=10)continue;break e}break}if(re=1,h>>>0>=10)break e;for(;;){if(e[(h<<2)+i>>2])break u;if((0|(h=h+1|0))==10)break}break e}J=28;break r}if((0|(M=(0|_)>(0|(Y=J-P|0))?_:Y))>(2147483647^ie))break a;if(J=61,(0|Xe)<(0|(h=(0|(_=M+ie|0))<(0|me)?me:_)))break r;Fr(A,32,h,_,H),Ur(A,Fe,ie),Fr(A,48,h,_,65536^H),Fr(A,48,M,Y,0),Ur(A,P,Y),Fr(A,32,h,_,8192^H);continue}break}re=0;break e}J=61}e[56798]=J}re=-1}return V=g+80|0,re}function wA(A,t,r,s,i,l,c,g,p){var I,h,M,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0,bt=0,vt=0,Ot=0,Xt=0,ar=0,hr=0,dr=0,Sr=0,Wr=0,Kr=0,rs=0,cs=0,us=0;V=I=V-96|0,Fe=65535&p,J=-2147483648&(i^p),NA=ie=65535&i;e:{if(!((h=p>>>16&32767)-32767>>>0>4294934529&(M=i>>>16&32767)-32767>>>0>=4294934530)){if(P=s,!(!s&(0|(me=ve=2147483647&i))==2147418112?!(t|r):me>>>0<2147418112)){Y=s,J=32768|i;break e}if(!(!(i=g)&(0|(re=ve=2147483647&p))==2147418112?!(l|c):re>>>0<2147418112)){Y=g,J=32768|p,t=l,r=c;break e}if(!(t|P|2147418112^me|r)){if(!(i|l|c|re)){J=2147450880,t=0,r=0;break e}J|=2147418112,t=0,r=0;break e}if(!(i|l|2147418112^re|c)){if(i=t|P,s=r|me,t=0,r=0,!(s|i)){J=2147450880;break e}J|=2147418112;break e}if(!(t|P|r|me)){t=0,r=0;break e}if(!(i|l|c|re)){t=0,r=0;break e}(0|me)==65535|me>>>0<65535&&(ve=(P=!(s|ie))<<6,i=Ce(p=P?t:s)+32|0,wt(I+80|0,t,r,s,ie,(p=ve+((0|(p=Ce(P?r:ie)))==32?i:p)|0)-15|0),Te=16-p|0,s=e[I+88>>2],NA=e[I+92>>2],r=e[I+84>>2],t=e[I+80>>2]),re>>>0>65535||(ie=(p=!(g|Fe))<<6,P=Ce(i=p?l:g)+32|0,wt(I- -64|0,l,c,g,Fe,(i=ie+((0|(i=Ce(p?c:Fe)))==32?P:i)|0)-15|0),Te=16+(Te-i|0)|0,g=e[I+72>>2],Fe=e[I+76>>2],l=e[I+64>>2],c=e[I+68>>2])}if(i=l,l=c<<15|l>>>17,Sr=r,ve=et(Ne=-32768&(p=i<<15),i=0,r,0),gA=i=fe,Wr=l,me=t,t=et(l,0,t,0),l=fe+i|0,r=t>>>0>(p=t+ve|0)>>>0?l+1|0:l,P=0,t=et(me,_,Ne,_),i=(l=p)+fe|0,ie=i=t>>>0>(re=P+t|0)>>>0?i+1|0:i,Kr=(0|l)==(0|i)&P>>>0>re>>>0|i>>>0>>0,rs=s,Xe=et(Ne,_,s,0),cs=fe,t=et(Sr,_,Wr,_),P=fe+cs|0,P=t>>>0>(cA=t+Xe|0)>>>0?P+1|0:P,t=Fe<<15|g>>>17,s=et(RA=g<<15|c>>>17,0,me,_),l=fe+P|0,bt=l=s>>>0>($A=s+cA|0)>>>0?l+1|0:l,l=(s=(0|r)==(0|gA)&p>>>0>>0|r>>>0>>0)+l|0,Fe=l=r>>>0>(vt=r+$A|0)>>>0?l+1|0:l,c=vt,r=l,NA=et(Ne,_,Ot=65536|NA,H),us=fe,s=et(rs,Y,Wr,_),i=fe+us|0,p=i=s>>>0>(Xt=s+NA|0)>>>0?i+1|0:i,t=et(ar=-2147483648|t,0,me,_),l=fe+i|0,l=t>>>0>(hr=t+Xt|0)>>>0?l+1|0:l,t=et(RA,Y,Sr,_),dr=l,l=l+fe|0,ve=t>>>0>(gA=t+hr|0)>>>0?l+1|0:l,i=r+gA|0,l=Ne=(t=0)>>>0>(me=t+c|0)>>>0?i+1|0:i,r=(t=me+Kr|0)>>>0>>0?l+1|0:l,Te=((M+h|0)+Te|0)-16383|0,s=et(ar,Y,Sr,_),g=fe,i=et(Ot,Y,Wr,_),l=fe+g|0,H=(0|g)==(0|(l=i>>>0>(c=i+s|0)>>>0?l+1|0:l))&s>>>0>c>>>0|l>>>0>>0,g=l,i=et(RA,Y,rs,Y),l=fe+l|0,i=l=(s=i+c|0)>>>0>>0?l+1|0:l,c=(0|l)==(0|g)&s>>>0>>0|l>>>0>>0,l=0,l=(g=c)>>>0>(c=c+H|0)>>>0?1:l,g=c,c=et(ar,Y,Ot,Y),l=fe+l|0,Kr=g=g+c|0,c=c>>>0>g>>>0?l+1|0:l,g=s,_=i,i=(0|P)==(0|cs)&Xe>>>0>cA>>>0|P>>>0>>0,l=0,i=((H=P=(0|P)==(0|bt)&cA>>>0>$A>>>0|P>>>0>bt>>>0)>>>0>(P=i+P|0)>>>0?1:l)+_|0,l=c,H=i=(s=s+P|0)>>>0

>>0?i+1|0:i,Xe=s,i=s=(0|i)==(0|_)&s>>>0>>0|i>>>0<_>>>0,P=s=s+Kr|0,c=l=i>>>0>s>>>0?l+1|0:l,i=et(RA,Y,Ot,Y),_=fe,s=et(ar,Y,rs,Y),l=fe+_|0,s=l=s>>>0>(g=s+i|0)>>>0?l+1|0:l,i=(l=(0|_)==(0|l)&i>>>0>g>>>0|l>>>0<_>>>0)+c|0,c=i=s>>>0>(cA=s+P|0)>>>0?i+1|0:i,l=g+H|0,i=l=(s=(i=0)+Xe|0)>>>0>>0?l+1|0:l,g=(0|H)==(0|l)&s>>>0>>0|l>>>0>>0,l=c,l=(c=g+(_=cA)|0)>>>0>>0?l+1|0:l,Xe=c,g=s,P=i,i=(s=(s=(s=(0|p)==(0|us)&NA>>>0>Xt>>>0|p>>>0>>0)+(p=(0|p)==(0|dr)&Xt>>>0>hr>>>0|p>>>0>dr>>>0)|0)+(i=(0|ve)==(0|dr)&gA>>>0


>>0|ve>>>0>>0)|0)+P|0,l=c=l,P=c=(g=(0|(i=(s=p=(H=ve)+g|0)>>>0>>0?i+1|0:i))==(0|P)&g>>>0>s>>>0|i>>>0

>>0)+Xe|0,c=l=g>>>0>c>>>0?l+1|0:l,g=s,l=0,p=i,i=i+((_=H=(0|Fe)==(0|Ne)&me>>>0>>0|Fe>>>0>Ne>>>0)>>>0>(H=H+((0|Fe)==(0|bt)&$A>>>0>vt>>>0|Fe>>>0>>0)|0)>>>0?1:l)|0,l=c,p=l=(c=g=(0|(i=(s=s+H|0)>>>0>>0?i+1|0:i))==(0|p)&s>>>0>>0|i>>>0

>>0)>>>0>(g=g+P|0)>>>0?l+1|0:l,65536&l?Te=Te+1|0:(P=ie>>>31|0,l=p<<1|g>>>31,g=g<<1|i>>>31,p=l,l=i<<1|s>>>31,s=s<<1|r>>>31,i=l,l=ie<<1|re>>>31,re<<=1,ie=l,l=r<<1|t>>>31,t=t<<1|P,r=l|(c=0)),(0|Te)>=32767)J|=2147418112,t=0,r=0;else{A:{if((0|Te)<=0){if((c=1-Te|0)>>>0<=127){wt(I+48|0,re,ie,t,r,l=Te+127|0),wt(I+32|0,s,i,g,p,l),lr(I+16|0,re,ie,t,r,c),lr(I,s,i,g,p,c),re=e[I+32>>2]|e[I+16>>2]|!!(e[I+48>>2]|e[I+56>>2]|e[I+52>>2]|e[I+60>>2]),ie=e[I+36>>2]|e[I+20>>2],t=e[I+40>>2]|e[I+24>>2],r=e[I+44>>2]|e[I+28>>2],s=e[I>>2],i=e[I+4>>2],c=e[I+8>>2],l=e[I+12>>2];break A}t=0,r=0;break e}c=g,l=65535&p|Te<<16}Y|=c,J|=l,(!t&(0|r)==-2147483648?!(re|ie):(0|r)>0|(0|r)>=0)?t|re|-2147483648^r|ie?(t=s,r=i):(P=J,J=(s=(0|(l=i))==(0|(r=(r=t=1&s)>>>0>(t=t+s|0)>>>0?l+1|0:l))&t>>>0>>0|r>>>0>>0)>>>0>(Y=s+Y|0)>>>0?P+1|0:P):(s=(0|i)==(0|(r=(t=s+1|0)?i:i+1|0))&t>>>0>>0|r>>>0>>0,i=J,J=(Y=s+Y|0)>>>0>>0?i+1|0:i)}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=Y,e[A+12>>2]=J,V=I+96|0}function Dr(A,t,r,s,i,l,c){var g,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0;V=g=V-480|0,e[g+476>>2]=0,e[g+456>>2]=0,e[g+460>>2]=0,e[g+448>>2]=0,e[g+452>>2]=0,e[g+440>>2]=0,e[g+444>>2]=0,e[g+432>>2]=0,e[g+436>>2]=0,p=0;e:if(e[A+684>>2]){for(Y=c?e[c>>2]:Y;h=d[t+p|0],f[(g+112|0)+p|0]=h,I=p+1|0,h&&(h=p>>>0<158,p=I,h););if(f[I+(g+112|0)|0]=0,!((re=268435456&l)|!(8&e[47197]))){I=0;A:if(223&(h=d[0|t]))for(p=0;;){if(f[(g+272|0)+p|0]=h,!(223&(h=d[(I=p+1|0)+t|0])))break A;if(M=p>>>0<118,p=I,!M)break}f[(p=g+272|0)+I|0]=0,e[g+48>>2]=p,tr(e[47195],(0|l)>=0?87019:86877,g+48|0)}e[g+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0,i&&(f[0|i]=0);A:{r:if(223&(p=d[0|t]))for(ie=536870912&l,me=4096&l,ve=g+105|0,I=t,h=0;;){M=WA(g+476|0,I),J=!!(0|yt(e[g+476>>2]))+J|0,_=d[(p=(P=255&p)+A|0)+7668|0];a:if(!((H=e[g+476>>2])-48>>>0<10|H-2406>>>0<10)|(J?d[A+170|0]:0)){n:if((h=e[g+476>>2]-e[A+600>>2]|0)>>>0>127||!(h=e[6192+((h<<2)+A|0)>>2])){if(_){for(H=5168+((P<<2)+A|0)|0,_=_+(p=d[p+7924|0])|0,Te=P|d[I+1|0]<<8,h=0;e[(I=(p<<2)+A|0)+7184>>2]==(0|Te)&&(e[g+472>>2]=e[g+464>>2],PA(A,g+472|0,t,2,e[I+6704>>2],g+432|0,l,Y),(0|(I=e[g+432>>2]))>0&&(I=I+35|0,e[g+432>>2]=I),h=1,PA(A,g+464|0,t,1,e[H>>2],g+448|0,l,Y),e[g+448>>2]>(0|I)||(I=e[g+444>>2],e[g+456>>2]=e[g+440>>2],e[g+460>>2]=I,I=e[g+436>>2],e[g+448>>2]=e[g+432>>2],e[g+452>>2]=I,e[g+464>>2]=e[g+472>>2])),_>>>0>(p=p+1|0)>>>0;);if(h)break n}o:{c:{if(!(p=e[5168+((P<<2)+A|0)>>2])){if(PA(A,g+464|0,t,0,e[A+5168>>2],g+448|0,l,Y),e[g+448>>2])break o;if(16&d[188808])break c;if(h=WA(g+468|0,P=(I=e[g+464>>2])-1|0),p=e[g+468>>2],!(e[A+600>>2]<=0|(0|p)>577)){if(oi(p)){e[g+32>>2]=21,lA(r,87049,g+32|0);break A}p=e[g+468>>2]}if((0|p)==57384&&((0|(_=e[A+92>>2]))<=e[47352]||(e[47352]=_)),bn(p)&&((0|(p=e[A+72>>2]))<=e[47352]||(e[47352]=p)),!((_=(p=e[g+468>>2])-192|0)>>>0>413)&&(_=d[_+94240|0])&&(h=h-1|0,!(d[I-2|0]==32&d[h+I|0]==32))){for(e[g+472>>2]=P,f[0|P]=_;M=d[(p=I)+h|0],f[0|p]=M,I=p+1|0,(0|M)!=32;);if((0|h)>0&&Je(p,32,h),e[A+24>>2]&&!((0|ai(94222,e[g+468>>2]))<=0)){e[g+464>>2]=P,h=0;break a}h=0,f[0|r]=0,e[g+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0;break a}if(!(p=jt(p))||(0|(I=e[p+4>>2]))==e[A+600>>2])break c;if((0|I)==e[A+188>>2]){e[g+4>>2]=Pe(g- -64|0,e[A+192>>2]),e[g>>2]=21,lA(r,87218,g);break A}if(!(4&d[p+16|0]))break c;e[g+20>>2]=Pe(g- -64|0,e[p+12>>2]),e[g+16>>2]=21,lA(r,87218,g+16|0);break A}if(PA(A,g+464|0,t,1,p,g+448|0,l,Y),e[g+448>>2])break o}c:if(!((p=e[g+476>>2])-768>>>0<112)){if(yt(p)){if(f[(M+e[g+464>>2]|0)-1|0]<33&(0|J)<=1)break c;if(f[0|r]=0,!c)break r;e[c>>2]=4096|e[c>>2];break r}MA(A,e[g+476>>2],-1,g+272|0,0),d[g+272|0]&&(e[g+448>>2]=1,e[g+452>>2]=g+272)}e[g+464>>2]=(M+e[g+464>>2]|0)-1;break n}e[A+288>>2]=0}else PA(A,g+464|0,t,M,h,g+448|0,l,Y);if(I=(p=e[g+452>>2])||86135,e[g+452>>2]=I,h=0,!(e[g+448>>2]<=0)){if(p=1|e[g+456>>2],(0|l)<0)break e;if(!(d[0|I]!=21|me)){GA(r,I);break A}if(!(!(8&e[47197])|re))n:if(p=e[47195],(0|(M=e[p+76>>2]))>=0&(!M|e[56823]!=(-1073741825&M)))P=e[(M=p+76|0)>>2],e[M>>2]=P||1073741823,e[p+80>>2]==10||(0|(P=e[p+20>>2]))==e[p+16>>2]?aa(p):(e[p+20>>2]=P+1,f[0|P]=10),e[M>>2]=0;else{if(e[p+80>>2]!=10&&(0|(M=e[p+20>>2]))!=e[p+16>>2]){e[p+20>>2]=M+1,f[0|M]=10;break n}aa(p)}if(M=-32769&(p=e[g+456>>2]),e[g+456>>2]=M,!(!i|!M|(1024&p?ie:0))){A=e[g+464>>2],GA(i,I),p=M|(Fe=(r=A)-qA(t,A=g+112|0,kA(A))|0,(1151&p)==1024?Fe:0);break e}(p=e[g+460>>2])&&(f[0|p]=69),Tn(A,r,s,I)}}else f[g+104|0]=95,qA(ve,I,M),p=1,f[105+(g+M|0)|0]=0,FA(A,g+104|0,g- -64|0),h-1>>>0<=4294967293&&(p=kA(p=g- -64|0)+p|0,f[0|p]=11,f[p+1|0]=0,p=0),Tn(A,r,s,g- -64|0),e[g+464>>2]=I+M,h=p;if(I=e[g+464>>2],!(223&(p=d[0|I])))break}qA(t,A=g+112|0,kA(A))}p=0}return V=g+480|0,p}function Ut(A,t){var r,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0;V=r=V-2976|0,e[t>>2]=1,s=e[A+20>>2],e[(g=r+2960|0)>>2]=e[A+16>>2],e[g+4>>2]=s,s=e[A+12>>2],e[(g=r+2952|0)>>2]=e[A+8>>2],e[g+4>>2]=s,s=e[A+4>>2],e[r+2944>>2]=e[A>>2],e[r+2948>>2]=s,e[50303]||bA();e:if(A=e[r+2948>>2],d[0|A]&&A||((A=e[r+2944>>2])||(A=(A=e[r+2952>>2])||85055,e[r+2944>>2]=A),St(s=r+80|0,A,60),tn(s,0),!(l=ks(201216,s))||(e[r+2948>>2]=e[l+4>>2]+1,d[r+2958|0]|d[r+2956|0]|d[r+2957|0]))){J=r+1536|0,V=Y=V-336|0;A:if(!(!(A=e[(H=r+2944|0)+4>>2])|!d[0|A])){if((0|(re=kA(A)))>=0){for(s=re>>>0>=79?79:re,h=1;A=Ts(f[e[H+4>>2]+i|0]),f[(Y+256|0)+i|0]=A,h=((255&A)==45)+h|0,A=(0|s)!=(0|i),i=i+1|0,A;);if((0|h)!=1)break A}h=1}if((0|(M=e[50303]))<=0)e[J>>2]=0,A=0;else{for(g=(0|h)>=0;;){I=e[201216+(ve<<2)>>2];A:if(Hr(e[I+8>>2],88032,3)){if((A=e[H+4>>2])&&Hr(A,91687,3)){if(g){A=100;r:if(h){if(s=0,i=e[I+4>>2],!(ie=d[0|i])){if(!Hr(Y+256|0,90013,9))break r;break A}for(;;){for(Te=1,p=i+1|0,me=1,Fe=0,i=0;(0|i)<(0|re)&&(0|(A=f[(Y+256|0)+i|0]))!=45||(A=0),Fe=((P=(0|(_=d[i+p|0]))==45)&!!(0|(me=(P?0:_)<<24>>24==(0|A)?me:0)))+Fe|0,i=i+1|0,Te=P+Te|0,_;);if(i=i+p|0,(P=me+Fe|0)&&(s=(0|(A=O((p=(0|(A=h-P|0))<=0?5:5-A|0)-((0|(A=Te-P|0))>0?A:0)|0,100)-(ie<<24>>24<<1)|0))>(0|s)?A:s),!(ie=d[0|i]))break}if(!(A=s))break A}(s=e[H>>2])&&(A=Ar(s,e[I>>2])?Ar(s,e[I+8>>2])?A:A+400|0:A+500|0),((i=d[H+12|0])-1&255)>>>0>1||((s=d[I+12|0])-1&255)>>>0>1||(A=(0|s)!=(0|i)?A-50|0:A+50|0),i=d[H+13|0],A=d[I+12|0]!=2|i>>>0>12?A:d[I+13|0]>12?A+5|0:A,(s=d[I+13|0])&&((s=((i?O(i,100):3e3)>>>0)/(s>>>0)|0)>>>0<=99&&(s=1e4/(s>>>0)|0),A=(p=A)+((A=5-(((s-100&65535)>>>0)/10|0)|0)>>31&A)|0,A=i?A+10|0:A),A=(0|A)<=1?1:A}else{if(Hr(e[I+8>>2],Y+256|0,re))break A;A=100}e[J+(c<<2)>>2]=I,e[I+16>>2]=A}else e[J+(c<<2)>>2]=I;c=c+1|0}if((0|M)==(0|(ve=ve+1|0)))break}e[J+(c<<2)>>2]=0,A=0,c&&(is(J,c,8),A=c)}if(V=Y+336|0,h=A,A||(e[t>>2]=0,A=ks(201216,85055),e[r+1536>>2]=A,h=!!(0|A)),t=d[r+2957|0],g=2,(0|(A=d[r+2956|0]))!=2&&(g=2,(t-1&255)>>>0<12||(Xe=(0|A)!=1,g=(0|A)==1)),M=(c=e[132136+(g<<2)>>2])+(_=t>>>0<60)|0,A=0,(0|h)>0)for(s=0;;){l=e[(r+1536|0)+(Ne<<2)>>2];A:{r:{a:{if(Xe){if(_||(t=0,s))break r}else{if(t=d[l+12|0],s|_)break a;t=(0|t)!=(0|g)}if(i=0,t|d[l+13|0]<60)break A;break r}if((0|t)!=(0|g)){i=s;break A}}e[(r+80|0)+(s<<2)>>2]=l,i=s+1|0}A:if(d[l+15|0]){if(P=0,t=A,s=i,!((0|A)>11))for(;;){if((i=d[0|M])||(M=c,i=d[0|c]),A=e[l+12>>2],p=O(t,24)+202624|0,e[p+8>>2]=e[l+8>>2],e[p+12>>2]=A,A=e[l+4>>2],e[p>>2]=e[l>>2],e[p+4>>2]=A,A=e[l+20>>2],e[p+16>>2]=e[l+16>>2],e[p+20>>2]=A,f[p+14|0]=i,e[(r+80|0)+(s<<2)>>2]=p,M=M+1|0,s=s+1|0,A=t+1|0,(P=P+1|0)>>>0>=d[l+15|0])break A;if(i=(0|t)<11,t=A,!i)break}}else s=i;if((0|(Ne=Ne+1|0))==(0|h))break}else{if(!l)break e;s=0}A:if(!(!(i=d[0|M])|(0|A)>=12))for(;;){if(t=e[l+12>>2],c=O(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,f[c+14|0]=i,e[(r+80|0)+(s<<2)>>2]=c,s=s+1|0,!(i=d[0|(M=M+1|0)]))break A;if(t=(0|A)<11,A=A+1|0,!t)break}s?(A=e[(r+80|0)+(d[r+2958|0]%(0|s)<<2)>>2],(t=d[A+14|0])?(f[202976]=0,e[r+48>>2]=47,lA(r+2971|0,91351,r+48|0),f[r+2971|0]=0,t>>>0<=9?(e[r+20>>2]=t,e[r+16>>2]=r+2971,lA(202976,91378,r+16|0)):(e[r+36>>2]=t-10,e[r+32>>2]=r+2971,lA(202976,91503,r+32|0)),A=e[A+8>>2],e[r+4>>2]=202976,e[r>>2]=A,A=202912,lA(202912,87760,r)):A=e[A+8>>2]):A=0}else{if(A=e[l+8>>2],!d[202976])break e;e[r+64>>2]=A,e[r+68>>2]=202976,A=202912,lA(202912,87760,r- -64|0)}return V=r+2976|0,A}function ot(A,t,r,s,i){var l,c,g=0,p=0,I=0,h=0,M=0,P=0,_=0;V=l=V-464|0,f[l+432|0]=0,f[l+368|0]=0,f[l+304|0]=0,f[l+292|0]=0,M=(0|t)/10|0,g=e[33273];e:{if(!(c=2&s)|e[33272]!=2){_=32&s?113:111,h=1&s,P=t-O(M,10)|0;A:{r:{a:{n:{o:{c:{u:{l:if(d[0|g])g=0;else{i:{if(8&s){if(e[l+288>>2]=t,lA(p=l+452|0,91198,l+288|0),g=FA(A,p,l+304|0)){p=0;break l}e[l+272>>2]=t,lA(p=l+452|0,91314,l+272|0),g=FA(A,p,l+304|0),p=0}else{if(!h)break i;if(I=GA(l+432|0,133104),4&s){if(e[l+260>>2]=_,e[l+256>>2]=t,lA(p=l+452|0,91324,l+256|0),g=FA(A,p,l+304|0),d[133116]&&g)break u;if(p=g,g)break l}e[l+244>>2]=_,e[l+240>>2]=t,lA(p=l+452|0,91384,l+240|0),p=g=FA(A,p,l+304|0)}if(g)break l}i:{if(c){if(!(1&f[133096]))break i;e[l+208>>2]=t,lA(g=l+452|0,91498,l+208|0),g=FA(A,g,l+304|0)}else I=e[A+108>>2],e[l+224>>2]=t,lA(g=l+452|0,(0|r)>=2?91700:(262144&I)>>>18|0?91534:91700,l+224|0),g=FA(A,g,l+304|0);if(g)break l}!h|!(32&d[A+109|0])?(e[l+192>>2]=t,lA(g=l+452|0,91766,l+192|0),g=FA(A,g,l+304|0)):g=0}if(!(16&s)|(0|t)>9)break o;g=p;break c}if(GA(I,133116),!(16&s)|(0|t)>9)break n}FA(A,88875,l+368|0);break r}if(!g)break a;g=p}f[l+368|0]=0;break r}a:if(h&&(e[l+180>>2]=_,e[l+176>>2]=M,lA(g=l+452|0,91846,l+176|0),FA(A,g,l+368|0))){if(p=1,!P|!(16&d[A+109|0]))break a;Jr(l+368|0,133104)}else p||(e[l+160>>2]=M,lA(p=l+452|0,512&s?91936:92016,l+160|0),FA(A,p,l+368|0),p=0);if(g=P,d[l+368|0]||(g=P,16&d[A+106|0]&&(e[l+144>>2]=254&M,lA(g=l+452|0,92016,l+144|0),FA(A,g,l+368|0),g=(0|t)%20|0)),f[l+304|0]=0,M=g,(0|g)<=0)g=p;else{if(c&&(g=e[33273],d[0|g])){GA(l+304|0,g),f[l+432|0]=0,I=h;break A}if(I=0,8&s&&(e[l+128>>2]=M,lA(s=l+452|0,91314,l+128|0),I=FA(A,s,l+304|0)),!h|16&d[A+104|0]||(e[l+116>>2]=_,e[l+112>>2]=M,lA(s=l+452|0,91384,l+112|0),p=(I=FA(A,s,l+304|0))?1:p),g=p,!I){a:{if(!c|!(1&e[33274])){if(!(16&d[A+104|0])&&c)break a;p=e[A+108>>2],e[l+96>>2]=M,lA(s=l+452|0,(0|r)>=2?91700:(262144&p)>>>18|0?91534:91700,l+96|0),r=FA(A,s,l+304|0)}else e[l+80>>2]=M,lA(r=l+452|0,91498,l+80|0),r=FA(A,r,l+304|0);if(r)break r}e[l+64>>2]=M,lA(r=l+452|0,91766,l- -64|0),FA(A,r,l+304|0)}}}I=h,d[l+432|0]|g|!h||((0|t)<20|(16&d[A+104|0]?0:P)||(FA(A,92162,l+432|0),I=1,!d[l+432|0]))&&(FA(A,92205,l+432|0),I=1)}if(!(!(r=f[l+304|0])|!(48&(t=e[A+104>>2]))|!d[l+368|0])){if(FA(A,90824,l+292|0),!I|!(8&d[A+109|0])||(f[l+292|0]=0),16&d[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,lA(i,91059,l+16|0),s=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,lA(i,91059,l),s=1;break e}512&t&&(!r|(0|(t=kA(l+368|0)-1|0))<0||(g=d[e[144464+(f[0|(t=t+(l+368|0)|0)]<<2)>>2]+11|0]!=2,(0|(s=d[e[144464+(r<<2)>>2]+11|0]))==1&&(s=d[e[144464+(f[l+305|0]<<2)>>2]+11|0]),g|(255&s)!=2||(f[0|t]=0))),!(8&d[A+110|0])|!d[l+432|0]?(e[l+56>>2]=l+432,e[l+52>>2]=l+304,e[l+48>>2]=l+368,lA(i,92282,l+48|0)):(e[l+36>>2]=l+304,e[l+32>>2]=l+368,(0|(t=lA(i,90368,l+32|0)))>0&&(t=d[e[144464+(d[(r=t-1|0)+i|0]<<2)>>2]+11|0]==2?r:t),GA(t+i|0,l+432|0))}else GA(i,g);s=0}e:if(268435456&(A=e[A+104>>2])){if((0|kA(i))<=0)break e;for(t=0,A=0;d[0|(r=A+i|0)]==6&&(t&&(f[0|r]=5),t=1),A=A+1|0,(0|kA(i))>(0|A););}else if(256&A&&(t=0,!((0|(A=(h=kA(i))-1|0))<0))){if(A)for(P=-2&h,g=0;d[0|(p=A+i|0)]==6?(r=1,t&&(f[0|p]=5)):r=t,d[0|(p=p-1|0)]==6?(t=1,r&&(f[0|p]=5)):t=r,A=A-2|0,(0|P)!=(0|(g=g+2|0)););1&h&&(!t|d[0|(A=A+i|0)]!=6||(f[0|A]=5))}return V=l+464|0,s}function js(A,t,r,s){var i,l,c=0,g=0,p=0,I=0,h=0,M=0,P=0;if(V=i=V-352|0,f[i+304|0]=0,f[i+224|0]=0,f[i+64|0]=0,p=e[e[47192]+292>>2],P=WA(i+348|0,t),(1048320&(c=e[i+348>>2]))==57344&&(c&=255,e[i+348>>2]=c),2&s&&Gs(c)&&FA(A,85437,i+304|0),c=Cn(e[i+348>>2],A),e[i+348>>2]=c,M=1&s,MA(A,c,f[0|(l=t+P|0)],i+224|0,M),!(t=d[i+224|0])){e:if((t=zn(e[i+348>>2]))&&(e[i+348>>2]=16383&t,4&s)){A:switch(1073741823&(t>>=14)){case 0:case 3:break e;default:break A}FA(A,t=e[131232+(t<<2)>>2],i+304|0),d[i+304|0]||(f[i+306|0]=Rn(84744),h=t,t=i+304|3,FA(e[47194],h,t),d[i+307|0]&&(k[i+304>>1]=5385,t=kA(t)+(i+304|0)|0,f[t+5|0]=0,f[t+4|0]=p,f[t+3|0]=21))}MA(A,e[i+348>>2],f[0|l],i+224|0,M),t=d[i+224|0]}e:{A:{if(t&=255){if((0|t)!=21)break A;GA(r,i+224|0),P=0;break e}if(t=1632,!((0|(c=e[i+348>>2]))<1632)){for(I=103360;;){if((0|c)>=(t+10|0)){if(!(t=e[(I=I+4|0)>>2]))break A;if((0|t)<=(0|c))continue;break A}break}(0|(t=48+(c-t|0)|0))<=0||MA(A,t,0,i+224|0,M)}}A:{r:{a:{n:{if(t=jt(e[i+348>>2])){if(c=e[t+4>>2],!t|1&(I=e[t+16>>2])||(g=e[47192],e[g+600>>2]==(0|c)|e[g+188>>2]==(0|c)|e[g+184>>2]==(0|c)||(f[i+144|0]=0,FA(g,e[t>>2],i- -64|0)?(0|(g=e[47192]))!=(0|A)&&(p=e[A+292>>2],GA(i+144|0,i- -64|0),f[i+66|0]=e[g+292>>2]):(f[i+66|0]=Rn(84744),FA(e[47194],e[t>>2],i+144|0)),d[i+144|0]&&(k[i+64>>1]=5385,GA(3|(g=i- -64|0),h=i+144|0),g=kA(h)+g|0,f[g+5|0]=0,f[g+4|0]=p,f[g+3|0]=21))),d[i+224|0])break A;if(!c||(p=e[47192],e[p+188>>2]!=(0|c)))break n;t=e[p+192>>2];break r}if(d[i+224|0])break A;I=0,c=0;break a}if((t=e[t+12>>2])&&!(2&I))break r}t=25966}if((e[A+212>>2]==(0|t)&(0|t)!=27503||(f[i+226|0]=Rn(Pe(i+47|0,t)),(t=e[47194])&&((0|(p=e[i+348>>2]))>55215||(0|(g=p-44032|0))<0?MA(t,p,f[0|l],i+224|3,M):(f[i+52|0]=32,t=h=i+53|0,p-50500>>>0>=588&&(t=mr(4352+((g>>>0)/588|0)|0,h)+h|0),mr(4449+(((p=(g>>>0)/28|0)>>>0)%21|0)|0,t),mr(4519+(g-O(p,28)|0)|0,t+3|0),f[t+6|0]=32,f[t+7|0]=0,f[i+227|0]=0,t=i+224|3,Dr(e[47194],h,t,77,0,0,0),Vt(e[47194],t,0,-1,0)),t=i+224|3,d[i+227|0]==21&&(f[i+226|0]=Rn(i+224|4),MA(e[47194],e[i+348>>2],f[0|l],t,M)),ts(e[e[32972]+60>>2]),d[i+227|0]&&(k[i+224>>1]=5385,t=kA(t)+(i+224|0)|0,f[t+3|0]=21,M=e[A+292>>2],f[t+5|0]=0,f[t+4|0]=M)),!d[i+224|0]))&&(16&I||(_A(e[i+348>>2])&&FA(e[47192],85683,i+224|0),d[i+224|0]||(ur(e[i+348>>2])||FA(e[47192],85778,i+224|0),d[i+224|0]||zs(85992,i+224|0,0))),!(8&I)||4&s)){if(t=e[i+348>>2],(0|c)!=10240?(e[i+32>>2]=t,lA(i+52|0,86013,i+32|0)):(c=i+52|0,1&t&&(f[i+52|0]=49,c=i+53|0),2&t&&(f[0|c]=50,c=c+1|0),4&t&&(f[0|c]=51,c=c+1|0,t=e[i+348>>2]),8&t&&(f[0|c]=52,c=c+1|0,t=e[i+348>>2]),16&t&&(f[0|c]=53,c=c+1|0,t=e[i+348>>2]),32&t&&(f[0|c]=54,c=c+1|0,t=e[i+348>>2]),64&t&&(f[0|c]=55,c=c+1|0,t=e[i+348>>2]),128&t&&(f[0|c]=56,c=c+1|0),f[0|c]=0),t=i+224|0,I=d[i+52|0])for(c=i+52|0;t=kA(t)+t|0,f[0|t]=23,t=t+1|0,MA(e[47192],I<<24>>24,0,t,1),(s=d[0|t])&&(0|s)!=21||(0|(s=f[0|c]))<97||zs(e[130860+((255&s)<<2)>>2],t,0),I=d[0|(c=c+1|0)];);t=kA(t)+t|0,f[0|t]=9,f[t+1|0]=0}}t=kA(r),2&d[A+144|0]?(e[i+16>>2]=255,e[i+28>>2]=i+304,e[i+24>>2]=i+224,e[i+20>>2]=i- -64,lA(i+144|0,86210,i+16|0)):(e[i>>2]=255,e[i+12>>2]=i+224,e[i+8>>2]=i+304,e[i+4>>2]=i- -64,lA(i+144|0,86210,i)),kA(i+144|0)+t>>>0>199||GA(t+r|0,i+144|0)}return V=i+352|0,P}function U(A,t,r,s,i,l,c){var g,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0,cA=0,gA=0,NA=0,RA=0,$A=0;V=g=V-528|0,re=c?e[c>>2]:0,Ne=e[i+4>>2];e:{A:{if(e[A+220>>2]>0){St(I=g+352|0,t,160),V=_=V-176|0,H=1-(Y=e[A+220>>2])|0,J=e[A+224>>2],ie=e[A+216>>2],M=I;r:{a:{for(;;){if(me=WA(_+172|0,M),p=e[_+172>>2]){if((0|p)<(0|Y)|(0|p)>(0|ie))break a;if(J){if((0|(p=f[J+(p-Y|0)|0]))<=0)break a}else p=p+H|0;if(M=M+me|0,f[P+_|0]=p,p=160,(0|(P=P+1|0))!=160)continue}else p=P;break}if(J=0,f[p+_|0]=0,H=f[0|_],e[_+172>>2]=H,H){for(Xe=2+(ie-Y|0)|0,Y=p=_;;){ie=p+1|0;n:{if((me=e[A+8180>>2])&&(P=0,!((0|(M=k[me>>1]))>(0|(Te=(f[0|ie]<<8)+H|0)))))for(;;){if((0|M)==(0|Te)){H=P+Xe|0,e[_+172>>2]=H,p=p+2|0;break n}if(!((0|Te)>=(0|(M=k[me+((P=P+1|0)<<1)>>1]))))break}p=ie}if(ve=63&H|ve<<6,(0|(P=J+6|0))<8?J=P:(J=J-2|0,f[0|Y]=ve>>J,Y=Y+1|0),H=f[0|p],e[_+172>>2]=H,!H)break}(0|J)<=0||(f[0|Y]=ve<<8-J,Y=Y+1|0)}else Y=_;f[0|Y]=0,qA(I,_,p=Y-_|0),Y=64|p;break r}Y=kA(I)}V=_+176|0,_=I}else Y=kA(t),_=t;if(I=d[0|_]){for(p=0,P=_;h=1023&(h=(h<<3)+I|0)^h>>>8,p=p+1|0,I=d[0|(P=P+1|0)];);p=p+h&1023}else p=0;if(h=e[692+((p<<2)+A|0)>>2]){if(p=d[0|h])break A;p=0;break e}if(p=0,!i)break e;e[i>>2]=0;break e}for(me=1073741824&Ne,Te=2048&l,Ne=512&re,Xe=65536&re,cA=1&re,gA=2&re,re=8&l,NA=1024&l,ie=4&l,RA=63&Y,$A=A+8233|0;;){l=(255&p)+h|0;A:{r:if((127&(p=d[h+1|0]))==(0|Y)&&!Hr(_,h+2|0,RA)){h=2+((63&p)+h|0)|0;a:{if(p<<24>>24<0)J=0,f[0|s]=0;else{if((0|(J=kA(h)))>=160)break a;GA(s,h),h=1+(h+J|0)|0}if(I=0,l>>>0<=h>>>0)p=r,M=0;else{P=0,M=0;n:{for(;;){h=(p=h)+1|0;o:if((p=d[0|p])>>>0>=100){if(H=e[A+320>>2],p>>>0>=132){P|=H>>>p-132&1;break o}P|=!(H>>>p-100&1)}else{if(p>>>0>=81){H=p-80|0,ve=l-h|0;c:if(c)for(p=0;;){if(Fe=O(p,12)+c|0,!d[Fe+10|0])break c;if(P=!!(12&d[Fe+1|0])|P,Fe=(0|p)!=(0|H),p=p+1|0,!Fe)break}if(_n(r,h,ve)|1&P)break r;e[33264]=H,p=r+ve|0,M|=128,h=l;break n}p>>>0>=65?(M=15&p|-16&M,M=12&~p?M:512|M):p>>>0>=32?I|=1<>>0>h>>>0))break}if(p=r,1&P)break A}if(65536&I&&!ie||NA&&49152&I)break A}if(ie&&(16384&I||!re&&32768&I)||(gA?0:512&I)|(cA?0:1024&I)|(Xe?0:33554432&M)||!(!(131072&I)|te[e[47192]+8204>>2]<=p>>>0|me)|(Ne?0:262144&I)|(8&d[e[47192]+8242|0]?0:8192&I)||16&I&&(!e[A+8184>>2]&(!re|!e[A+8192>>2])||!(!re|e[A+212>>2]!=25966)&&2097152&e[A+8232>>2])||(e[A+8188>>2]?0:64&I)|(!e[A+8196>>2]|Te?32&I:0)||!(!(65536&M)|e[A+212>>2]!=26741|128&d[0|$A])|(e[47192]!=(0|A)?524288&I:0))break A;n:{o:{c:{if(!i){if(!J)break c;break n}if(e[i+4>>2]=I,e[i>>2]=1073741824|M,J)break o}if(p=0,!(8&d[188788]))break e;Qn(i,A=g+272|0),e[g>>2]=t,e[g+4>>2]=A,tr(e[47195],89330,g);break e}e[i>>2]=-1073741824|M}if(8&d[188788]&&(Gr(s,g- -64|0),d[e[47192]+172|0]==(M>>>29&1)&&(!c|!(128&M)?(e[g+48>>2]=t,tr(e[47195],89426,g+48|0)):(qA(A=g+352|0,s=r,r=p-r|0),f[351+(r+g|0)|0]=0,e[g+32>>2]=t,e[g+36>>2]=A,tr(e[47195],89397,g+32|0)),Qn(i,A=g+272|0),t=e[47195],e[g+16>>2]=g- -64,e[g+20>>2]=A,tr(t,89534,g+16|0))),d[WA(g- -64|0,_)+_|0]|!i||yt(e[g+64>>2]))break e;e[i>>2]=134217728|e[i>>2];break e}pe(89236,86634,2467,94846),L()}h=l}if(!(p=d[0|h]))break}p=0}return V=g+528|0,p}function Ee(A,t,r,s,i){var l,c=0,g=0;V=l=V-304|0,f[l+278|0]=0;e:{if((0|t)>0&&(1&s&&(2&s&&(e[l+164>>2]=r,e[l+160>>2]=t,lA(c=l+290|0,89701,l+160|0),c=FA(A,c,l+224|0))||1&f[133096]&&(e[l+148>>2]=r,e[l+144>>2]=t,lA(c=l+290|0,89757,l+144|0),c=FA(A,c,l+224|0))||(e[l+132>>2]=r,e[l+128>>2]=t,lA(c=l+290|0,89894,l+128|0),c=FA(A,c,l+224|0)))||(e[l+116>>2]=r,e[l+112>>2]=t,lA(c=l+290|0,89974,l+112|0),c=FA(A,c,l+224|0))))break e;if((0|(g=(0|t)%100|0))>=20&&FA(A,90022,l+278|0),1&s){if(2&s){c=g-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(c>>>0<9)break r;if(s=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;s=90453;break A;case 1:if(t-2>>>0>=3)break r;s=90453;break A;case 2:if(c>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;s=90453;break A;case 3:if(s=90508,c>>>0<9)break A;s=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(c>>>0<9)){if(s=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){s=90453;break A}}}s=90586}if(e[l+100>>2]=r,e[l+96>>2]=s,lA(s=l+290|0,90058,l+96|0),c=0,FA(A,s,l+224|0))break e}if(s=g-11|0,1&f[133096]){A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(g=(0|t)%10|0))==1)break A;if(g-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(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(g=(0|t)%10|0))==1)break A;if(!(g-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+84>>2]=r,e[l+80>>2]=c,lA(g=l+290|0,90110,l+80|0),c=0,FA(A,g,l+224|0))break e}A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(g=(0|t)%10|0))==1)break A;if(g-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(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(g=(0|t)%10|0))==1)break A;if(!(g-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+68>>2]=r,e[l+64>>2]=c,lA(g=l+290|0,90139,l- -64|0),c=0,FA(A,g,l+224|0))break e}else s=g-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(s=(0|t)%10|0))==1)break A;if(s-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(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(s=(0|t)%10|0))==1)break A;if(!(s-2>>>0>=3)){c=90453;break A}}}c=90586}e[l+52>>2]=r,e[l+48>>2]=c,lA(s=l+290|0,90218,l+48|0),c=0,FA(A,s,l+224|0)||((0|r)<4||(e[l+32>>2]=r-1,lA(s=l+290|0,89026,l+32|0),FA(A,s,l+176|0)||(FA(A,90273,l+224|0),e[33275]=3)),d[l+224|0]||(e[l+16>>2]=t,lA(s=l+290|0,90303,l+16|0),(c=FA(A,s,l+224|0))||FA(A,90347,l+224|0),e[33275]=2))}return e[l+4>>2]=l+224,e[l>>2]=l+278,lA(i,90368,l),V=l+304|0,!((0|t)!=1|(0|r)!=1)&&(t=1,32&d[A+106|0])||(t=c),t}function ce(A,t,r,s){var i,l=0,c=0,g=0,p=0,I=0,h=0,M=0;V=i=V+-64|0,k[i+48>>1]=0,e[i+40>>2]=0,e[i+44>>2]=0,e[i+32>>2]=0,e[i+36>>2]=0,e[i+24>>2]=0,e[i+28>>2]=0,e[i+16>>2]=0,e[i+20>>2]=0,e[i+8>>2]=0,e[i+12>>2]=0,e[i>>2]=0,e[i+4>>2]=0,l=t;e:{for(;;){A:{r:{if((0|(c=d[0|l]))!=69){if((0|c)!=32)break r;if(s&&(f[qA(c=s,t,s=(0|(s=l-t|0))>=159?159:s)+s|0]=0),s=63&r)break A;break e}f[0|l]=101}l=l+1|0;continue}break}if(1&r){A:if((l=l-1|0)>>>0>>0)c=s;else for(c=s;;){if((192&d[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}g=s-1|0}else g=s,c=s;if((0|s)!=1)for(;;){s=g;A:if(!((l=l-1|0)>>>0>>0))for(;;){if((192&d[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&d[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}if(g=s-2|0,!((0|s)>2))break}if((0|c)<=0)g=0;else{if(p=3&(g=(s=(t=c-1|0)>>>0>=48?48:t)+1|0),t=0,c=0,s>>>0>=3)for(M=-4&g,s=0;I=l+c|0,f[c+i|0]=d[0|I],f[0|I]=32,I=(h=1|c)+l|0,f[i+h|0]=d[0|I],f[0|I]=32,I=(h=2|c)+l|0,f[i+h|0]=d[0|I],f[0|I]=32,I=(h=3|c)+l|0,f[i+h|0]=d[0|I],f[0|I]=32,c=c+4|0,(0|M)!=(0|(s=s+4|0)););if(p)for(;s=l+c|0,f[c+i|0]=d[0|s],f[0|s]=32,c=c+1|0,(0|p)!=(0|(t=t+1|0)););}}if(f[i+g|0]=0,p=65520&r,!(512&r)|d[0|(s=l-1|0)]!=105||(f[0|s]=121),c=4|p,256&r){e:{A:{r:{if((0|(t=e[A+212>>2]))!=25966){if((0|t)!=28268)break r;if(f[0|s]<0||128&(t=f[0|(g=l-2|0)]))break e;if(p=e[A+632>>2])t=!!(0|jr(p,t));else{if((0|(p=e[A+600>>2]))>0&&(t=t-p|0)-1>>>0>254)break e;t=128&d[344+(A+t|0)|0]}if(!t)break e;if(t=f[0|s],p=e[A+612>>2])t=!!(0|jr(p,t));else{a:{if((0|(p=e[A+600>>2]))>0){if((t=t-p|0)-1>>>0<255)break a;break e}if((0|t)<0)break e}t=4&d[344+(A+t|0)|0]}if(!t)break e;t=f[l-3|0];a:{if(p=e[A+632>>2])t=!!(0|jr(p,t));else{n:{if((0|(p=e[A+600>>2]))>0){if((t=t-p|0)-1>>>0<255)break n;break a}if((0|t)<0)break a}t=128&d[344+(A+t|0)|0]}if(t)break e}f[0|l]=d[0|s],f[0|s]=d[0|g],f[l+1|0]=32;break e}if(g=f[l-2|0],t=e[A+632>>2])t=!!(0|jr(t,g));else{a:{if((0|(t=e[A+600>>2]))>0){if((g=g-t|0)-1>>>0<255)break a;break A}if((0|g)<0)break A}t=128&d[344+(A+g|0)|0]}if(!t)break A;if(g=f[0|s],t=e[A+608>>2])t=!!(0|jr(t,g));else{if((0|(t=e[A+600>>2]))>0){if((g=g-t|0)-1>>>0>=255)break A}else if((0|g)<0)break A;t=2&d[344+(A+g|0)|0]}if(!t)break A;c=Hr(87771,l-3|0,3)?20|p:c;break e}c=e[A+204>>2]?20|p:c;break e}(d[0|s]==99||(g=d[(t=l-2|0)+1|0]<<8,(d[0|t]|g)==29554|(g|d[0|t])==29289||(d[0|(t=l-2|0)]|d[t+1|0]<<8)==29301||!Hr(88115,l-3|0,3)||(d[0|(t=l-2|0)]|d[t+1|0]<<8)==29550|d[0|s]==117||!Hr(88384,l-5|0,5)||(d[0|(t=l-4|0)]|d[t+1|0]<<8|d[t+2|0]<<16|d[t+3|0]<<24)==1735287154||(d[0|t]|d[t+1|0]<<8|d[t+2|0]<<16|d[t+3|0]<<24)==1735549292))&&(c=20|p)}16&c&&(mr(e[A+204>>2],l),8&d[188788]&&ci(88683,6,e[47195]))}return e[A+8184>>2]|!(2048&r)||(e[A+8184>>2]=1),y[i>>1]!=115&&Hr(i,88850,3)||(c|=8),V=i- -64|0,d[0|i]==39?65531&c:c}function ke(A,t,r,s,i,l,c,g,p){var I,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0;V=I=V-112|0,h=2147483647&p;e:{if(P=!(t|r),(s|(M=2147483647&i)?M-2147418112>>>0<2147549184:P)||!(!g&(0|(Y=h-2147418112|0))==-2147418112?l|c:(0|Y)==-2147418112&!!(0|g)|Y>>>0>2147549184)){if(!(!s&(0|M)==2147418112?P:M>>>0<2147418112)){g=s,p=32768|i,l=t,c=r;break e}if(!(!g&(0|h)==2147418112?!(l|c):h>>>0<2147418112)){p|=32768;break e}if(!(t|s|2147418112^M|r)){_=s,g=(s=!(t^l|s^g|r^c|i^p^-2147483648))?0:_,p=s?2147450880:i,l=s?0:t,c=s?0:r;break e}if(!(l|g|2147418112^h|c))break e;if(!(t|s|r|M)){if(l|g|c|h)break e;l&=t,c&=r,g&=s,p&=i;break e}if(!(l|g|c|h)){l=t,c=r,g=s,p=i;break e}}M=(P=re=(_=(0|h)==(0|M))&(0|s)==(0|g)?(0|r)==(0|c)&t>>>0>>0|r>>>0>>0:_&s>>>0>>0|h>>>0>M>>>0)?l:t,Y=P?c:r,ie=_=P?p:i,P=P?g:s,J=65535&_,s=re?s:g,me=i=re?i:p,_=i>>>16&32767,(H=ie>>>16&32767)||(p=i=!(P|J),h=i?M:P,g=i<<=6,wt(I+96|0,M,Y,P,J,(i=i+((0|(p=Ce(p?Y:J)))==32?Ce(h)+32|0:p)|0)-15|0),P=e[I+104>>2],J=e[I+108>>2],Y=e[I+100>>2],H=16-i|0,M=e[I+96>>2]),l=re?t:l,c=re?r:c,g=s,p=65535&me,_||(i=t=!(g|p),h=t?l:g,r=t<<=6,wt(I+80|0,l,c,g,p,(t=t+((0|(i=Ce(i?c:p)))==32?Ce(h)+32|0:i)|0)-15|0),_=16-t|0,g=e[I+88>>2],p=e[I+92>>2],c=e[I+84>>2],l=e[I+80>>2]),r=p<<3|g>>>29,t=g<<3|c>>>29,r|=524288,g=P<<3|Y>>>29,p=J<<3|P>>>29,re=ie^me,i=c<<3|l>>>29,s=l<<3,(0|_)!=(0|H)&&((l=H-_|0)>>>0>127?(t=0,r=0,i=0,s=1):(wt(I- -64|0,s,i,t,r,128-l|0),lr(I+48|0,s,i,t,r,l),t=e[I+56>>2],r=e[I+60>>2],i=e[I+52>>2],s=e[I+48>>2]|!!(e[I+64>>2]|e[I+72>>2]|e[I+68>>2]|e[I+76>>2]))),P=s,h=i,_=g,J=524288|p,i=Y<<3|M>>>29,Y=M<<3,M=i;A:if((0|re)<0){if(l=0,c=0,g=0,p=0,!(P^Y|t^_|h^M|r^J))break e;if(s=Y-P|0,i=M-((P>>>0>Y>>>0)+h|0)|0,g=(l=_-t|0)-(c=(0|h)==(0|M)&P>>>0>Y>>>0|h>>>0>M>>>0)|0,p=t=(J-((t>>>0>_>>>0)+r|0)|0)-(l>>>0>>0)|0,t>>>0>524287)break A;l=t=!(g|p),c=t?s:g,r=t<<=6,wt(I+32|0,s,i,g,p,t=(t=t+((0|(l=Ce(l?i:p)))==32?Ce(c)+32|0:l)|0)-12|0),H=H-t|0,g=e[I+40>>2],p=e[I+44>>2],s=e[I+32>>2],i=e[I+36>>2]}else i=h+M|0,l=(0|h)==(0|(i=(s=P+Y|0)>>>0>>0?i+1|0:i))&s>>>0

>>0|i>>>0>>0,h=r+J|0,h=(t=t+_|0)>>>0<_>>>0?h+1|0:h,1048576&(p=(g=t+l|0)>>>0>>0?h+1|0:h)&&(s=1&P|(1&i)<<31|s>>>1,i=g<<31|i>>>1,H=H+1|0,g=(1&p)<<31|g>>>1,p=p>>>1|0);if(r=0,M=-2147483648&ie,(0|H)>=32767)g=r,p=2147418112|M,l=0,c=0;else if(_=0,(0|H)>0?_=H:(wt(I+16|0,s,i,g,p,H+127|0),lr(I,s,i,g,p,1-H|0),s=e[I>>2]|!!(e[I+16>>2]|e[I+24>>2]|e[I+20>>2]|e[I+28>>2]),i=e[I+4>>2],g=e[I+8>>2],p=e[I+12>>2]),Y=7&s,s=(0|(t=g<<29|i>>>3))==(0|(c=(s=(7&i)<<29|s>>>3)>>>0>(l=(Y>>>0>4)+s|0)>>>0?t+1|0:t))&s>>>0>l>>>0|t>>>0>c>>>0,t=r|(7&p)<<29|g>>>3,p=M|p>>>3&65535|_<<16,p=t>>>0>(g=s+t|0)>>>0?p+1|0:p,(0|Y)!=4){if(!Y)break e}else h=c+(t=0)|0,p=(t=(0|t)==(0|(c=(s=l)>>>0>(l=l+(r=1&l)|0)>>>0?h+1|0:h))&r>>>0>l>>>0|t>>>0>c>>>0)>>>0>(g=t+g|0)>>>0?p+1|0:p}e[A>>2]=l,e[A+4>>2]=c,e[A+8>>2]=g,e[A+12>>2]=p,V=I+112|0}function Me(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0;e:if(A|=0){l=(s=A-8|0)+(A=-8&(t=e[A-4>>2]))|0;A:if(!(1&t)){if(!(3&t)||(s=s-(t=e[s>>2])|0)>>>0>2])))return e[57154]=A,e[l+4>>2]=-2&t,e[s+4>>2]=1|A,void(e[A+s>>2]=A)}else{if(t>>>0<=255){if(i=e[s+8>>2],t=t>>>3|0,(0|(r=e[s+12>>2]))==(0|i)){e[57152]=e[57152]&As(-2,t);break A}e[i+12>>2]=r,e[r+8>>2]=i;break A}if(g=e[s+24>>2],(0|s)==(0|(t=e[s+12>>2])))if((r=e[(i=s+20|0)>>2])||(r=e[(i=s+16|0)>>2])){for(;c=i,(r=e[(i=(t=r)+20|0)>>2])||(i=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[s+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(!g)break A;i=e[s+28>>2];r:{if(e[(r=228912+(i<<2)|0)>>2]==(0|s)){if(e[r>>2]=t,t)break r;e[57153]=e[57153]&As(-2,i);break A}if(e[g+(e[g+16>>2]==(0|s)?16:20)>>2]=t,!t)break A}if(e[t+24>>2]=g,(r=e[s+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),!(r=e[s+20>>2]))break A;e[t+20>>2]=r,e[r+24>>2]=t}}if(!(s>>>0>=l>>>0)&&1&(t=e[l+4>>2])){A:{if(!(2&t)){if(e[57158]==(0|l)){if(e[57158]=s,A=e[57155]+A|0,e[57155]=A,e[s+4>>2]=1|A,e[57157]!=(0|s))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|l))return e[57157]=s,A=e[57154]+A|0,e[57154]=A,e[s+4>>2]=1|A,void(e[A+s>>2]=A);A=(-8&t)+A|0;r:if(t>>>0<=255){if(i=e[l+8>>2],t=t>>>3|0,(0|(r=e[l+12>>2]))==(0|i)){e[57152]=e[57152]&As(-2,t);break r}e[i+12>>2]=r,e[r+8>>2]=i}else{if(g=e[l+24>>2],(0|l)==(0|(t=e[l+12>>2])))if((r=e[(i=l+20|0)>>2])||(r=e[(i=l+16|0)>>2])){for(;c=i,(r=e[(i=(t=r)+20|0)>>2])||(i=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(g){i=e[l+28>>2];a:{if(e[(r=228912+(i<<2)|0)>>2]==(0|l)){if(e[r>>2]=t,t)break a;e[57153]=e[57153]&As(-2,i);break r}if(e[g+(e[g+16>>2]==(0|l)?16:20)>>2]=t,!t)break r}e[t+24>>2]=g,(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[s+4>>2]=1|A,e[A+s>>2]=A,e[57157]!=(0|s))break A;return void(e[57154]=A)}e[l+4>>2]=-2&t,e[s+4>>2]=1|A,e[A+s>>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]=s,e[A+12>>2]=s,e[s+12>>2]=t,void(e[s+8>>2]=A);i=31,A>>>0<=16777215&&(i=62+((A>>>38-(t=Ce(A>>>8|0))&1)-(t<<1)|0)|0),e[s+28>>2]=i,e[s+16>>2]=0,e[s+20>>2]=0,c=228912+(i<<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=i>>>29|0,i<<=1,!(t=e[(c=r+(4&t)|0)+16>>2]))break}e[c+16>>2]=s,e[s+24>>2]=r}else e[57153]=t|r,e[c>>2]=s,e[s+24>>2]=c;e[s+12>>2]=s,e[s+8>>2]=s;break A}A=e[r+8>>2],e[A+12>>2]=s,e[r+8>>2]=s,e[s+24>>2]=0,e[s+12>>2]=r,e[s+8>>2]=A}A=e[57160]-1|0,e[57160]=A||-1}}}function Le(A,t,r){var s,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0;V=s=V-176|0;e:{if(32&t)_=r-((0|r)>1)|0;else{l=Bt(A,93302);A:{r:{a:{if((0|t)!=2){if(l)break a;t=0;break e}if(_=r+1|0,M=(Y=O(r,76)+133152|0)+56|0,P=Bt(A,89360),c=Bt(A,93318),g=Bt(A,93426),p=Bt(A,93499),l)break r;break A}_=r+1|0,M=(Y=O(r,76)+133152|0)+56|0,p=0}for(A=0,I=(0|(i=e[l-4>>2]))!=34?(0|i)==39?i:0:i,H=O(r,76)+133208|0;;){if(i=A,!(A=e[l>>2]))break A;r:{if(!I){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|i)!=92&&(0|A)==(0|I))break A}if(l=l+4|0,!((0|(h=mr(A,h+H|0)+h|0))<16))break}}I=0,f[h+M|0]=0,h=O(r,76)+133168|0,l=0;A:if(P)for(A=0,M=(0|(i=e[P-4>>2]))!=34?(0|i)==39?i:0:i;;){if(i=A,!(A=e[P>>2]))break A;r:{if(!M){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|i)!=92&&(0|A)==(0|M))break A}if(P=P+4|0,!((0|(l=mr(A,l+h|0)+l|0))<36))break}if(f[l+h|0]=0,!(!c|e[c>>2]-48>>>0>=10)){for(;I=(e[c>>2]+O(I,10)|0)-48|0,e[(c=c+4|0)>>2]-48>>>0<10;);(0|I)<=0||(I=I-1|0)}if(i=O(r,76)+133152|0,e[i+4>>2]=I,A=0,l=0,!(!g|e[g>>2]-48>>>0>=10))for(;l=(e[g>>2]+O(l,10)|0)-48|0,e[(g=g+4|0)>>2]-48>>>0<10;);e[i+12>>2]=l,l=O(r,76)+133152|0;A:{r:if(p){for(;r=f[A+93099|0],(i=e[(A<<2)+p>>2])&&(A=A+1|0,(0|r)==(0|i)););a:{n:switch(i-34|0){case 0:case 5:break n;default:break a}if(!r){A=0;break A}}for(A=0;r=f[A+93116|0],(i=e[(A<<2)+p>>2])&&(A=A+1|0,(0|r)==(0|i)););a:{n:switch(i-34|0){case 0:case 5:break n;default:break a}if(!r){A=1;break A}}for(A=0;r=f[A+93197|0],(i=e[(A<<2)+p>>2])&&(A=A+1|0,(0|r)==(0|i)););a:switch(i-34|0){case 0:case 5:break a;default:break r}if(!r){A=2;break A}}A=3}e[l+8>>2]=e[131156+(A<<3)>>2],e[Y>>2]=t}if(GA(137776,133168),r=GA(s+96|0,133208),f[s+157|0]=e[33291],f[s+156|0]=e[33290],A=e[33289],e[s+152>>2]=0,f[s+158|0]=A,(0|_)>0)for(c=0;;){if(g=1,t=O(c,76)+133152|0,d[0|(A=t+16|0)]&&ks(0,A)&&(GA(137776,A),g=0,f[0|r]=0,f[s+158|0]=0,k[s+156>>1]=0),d[0|(A=t+56|0)]){p=GA(r,A),i=e[33679];A:if(d[0|(A=i)])for(;;){if(!Ar(A=A+1|0,p)){GA(p,i+1|0);break A}if(A=1+(kA(A)+A|0)|0,!d[0|A])break}g&&(f[137776]=0)}if((A=e[t+8>>2])&&(f[s+156|0]=A),(A=e[t+12>>2])&&(f[s+157|0]=A),(A=e[t+4>>2])&&(f[s+158|0]=A),(0|_)==(0|(c=c+1|0)))break}e[s+148>>2]=r,e[s+144>>2]=137776,(A=Ut(s+144|0,s+172|0))?Zs(A,43)||(t=d[s+156|0],!d[134672]|((0|t)!=d[134724]?t:0)||(e[s>>2]=A,e[s+4>>2]=134672,lA(t=s+16|0,93533,s),A=137776,St(137776,t,40))):A=92003,t=0,Ar(A,134784)&&(GA(134784,A),t=131072)}return V=s+176|0,t}function sA(A,t){var r,s=0,i=0,l=0,c=0,g=0;r=A+t|0;e:{A:if(!(1&(s=e[A+4>>2]))){if(!(3&s))break e;t=(s=e[A>>2])+t|0;r:{if((0|(A=A-s|0))!=e[57157]){if(s>>>0<=255){if(l=e[A+8>>2],s=s>>>3|0,(0|(i=e[A+12>>2]))!=(0|l))break r;e[57152]=e[57152]&As(-2,s);break A}if(g=e[A+24>>2],(0|(s=e[A+12>>2]))==(0|A))if((i=e[(l=A+20|0)>>2])||(i=e[(l=A+16|0)>>2])){for(;c=l,(i=e[(l=(s=i)+20|0)>>2])||(l=s+16|0,i=e[s+16>>2]););e[c>>2]=0}else s=0;else i=e[A+8>>2],e[i+12>>2]=s,e[s+8>>2]=i;if(!g)break A;l=e[A+28>>2];a:{if(e[(i=228912+(l<<2)|0)>>2]==(0|A)){if(e[i>>2]=s,s)break a;e[57153]=e[57153]&As(-2,l);break A}if(e[g+(e[g+16>>2]==(0|A)?16:20)>>2]=s,!s)break A}if(e[s+24>>2]=g,(i=e[A+16>>2])&&(e[s+16>>2]=i,e[i+24>>2]=s),!(i=e[A+20>>2]))break A;e[s+20>>2]=i,e[i+24>>2]=s;break A}if(3&~(s=e[r+4>>2]))break A;return e[57154]=t,e[r+4>>2]=-2&s,e[A+4>>2]=1|t,void(e[r>>2]=t)}e[l+12>>2]=i,e[i+8>>2]=l}A:{if(!(2&(s=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&s)+t|0;r:if(s>>>0<=255){if(l=e[r+8>>2],s=s>>>3|0,(0|(i=e[r+12>>2]))==(0|l)){e[57152]=e[57152]&As(-2,s);break r}e[l+12>>2]=i,e[i+8>>2]=l}else{if(g=e[r+24>>2],(0|r)==(0|(s=e[r+12>>2])))if((l=e[(i=r+20|0)>>2])||(l=e[(i=r+16|0)>>2])){for(;c=i,(l=e[(i=(s=l)+20|0)>>2])||(i=s+16|0,l=e[s+16>>2]););e[c>>2]=0}else s=0;else i=e[r+8>>2],e[i+12>>2]=s,e[s+8>>2]=i;if(g){l=e[r+28>>2];a:{if(e[(i=228912+(l<<2)|0)>>2]==(0|r)){if(e[i>>2]=s,s)break a;e[57153]=e[57153]&As(-2,l);break r}if(e[g+(e[g+16>>2]==(0|r)?16:20)>>2]=s,!s)break r}e[s+24>>2]=g,(i=e[r+16>>2])&&(e[s+16>>2]=i,e[i+24>>2]=s),(i=e[r+20>>2])&&(e[s+20>>2]=i,e[i+24>>2]=s)}}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&s,e[A+4>>2]=1|t,e[A+t>>2]=t}if(t>>>0<=255)return s=228648+(-8&t)|0,(i=e[57152])&(t=1<<(t>>>3))?t=e[s+8>>2]:(e[57152]=t|i,t=s),e[s+8>>2]=A,e[t+12>>2]=A,e[A+12>>2]=s,void(e[A+8>>2]=t);l=31,t>>>0<=16777215&&(l=62+((t>>>38-(s=Ce(t>>>8|0))&1)-(s<<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((i=e[57153])&(s=1<>>1|0):0),s=e[c>>2];;){if(i=s,(-8&e[s+4>>2])==(0|t))break A;if(s=l>>>29|0,l<<=1,!(s=e[(c=i+(4&s)|0)+16>>2]))break}e[c+16>>2]=A,e[A+24>>2]=i}else e[57153]=s|i,e[c>>2]=A,e[A+24>>2]=c;return e[A+12>>2]=A,void(e[A+8>>2]=A)}t=e[i+8>>2],e[t+12>>2]=A,e[i+8>>2]=A,e[A+24>>2]=0,e[A+12>>2]=i,e[A+8>>2]=t}}function OA(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0;if(!(t=f[88105]))return A;if(A=Zs(A,t)){if(!d[88106])return A;if(d[A+1|0]){if(!d[88107]){i=!!(0|(r=d[A+1|0]));e:if(r&&(0|(t=r|d[0|A]<<8))!=(0|(g=d[88106]|d[88105]<<8)))for(r=A+1|0;;){if(i=!!(0|(s=d[(A=r)+1|0])),!s)break e;if(r=A+1|0,(0|g)==(0|(t=s|t<<8&65280)))break}return i?A:0}if(d[A+2|0]){if(!d[88108]){r=A+2|0,i=!!(0|(t=d[A+2|0]));e:if(t&&(0|(t=d[A+1|0]<<16|d[0|A]<<24|t<<8))!=(0|(g=d[88106]<<16|d[88105]<<24|d[88107]<<8)))for(;;){if(A=r+1|0,i=!!(0|(s=d[r+1|0])),!s)break e;if(r=A,(0|g)==(0|(t=(t|s)<<8)))break}else A=r;return i?A-2|0:0}if(d[A+3|0]){if(!d[88109]){r=A+3|0,i=!!(0|(t=d[A+3|0]));e:if(t&&(0|(t=t|d[A+1|0]<<16|d[0|A]<<24|d[A+2|0]<<8))!=(0|(g=(A=d[88105]|d[88106]<<8|d[88107]<<16|d[88108]<<24)<<24|(65280&A)<<8|A>>>8&65280|A>>>24)))for(;;){if(A=r+1|0,i=!!(0|(s=d[r+1|0])),!s)break e;if(r=A,(0|g)==(0|(t=s|t<<8)))break}else A=r;return i?A-3|0:0}g=A,V=p=V-1056|0,e[(A=p+1048|0)>>2]=0,e[A+4>>2]=0,e[(A=p+1040|0)>>2]=0,e[A+4>>2]=0,e[p+1032>>2]=0,e[p+1036>>2]=0,e[p+1024>>2]=0,e[p+1028>>2]=0;e:{A:{r:{a:{if(t=d[88105]){for(;;){if(!d[l+g|0])break A;if(l=l+1|0,e[((255&t)<<2)+p>>2]=l,e[(A=(p+1024|0)+(t>>>3&28)|0)>>2]=e[A>>2]|1<>>0>1)break a}else I=-1,A=1;c=-1,r=1;break r}for(s=1,t=1;;){a:if((0|(c=d[88105+(t+I|0)|0]))!=(0|(i=d[A+88105|0])))i>>>0>>0?(s=A-I|0,r=A,t=1):(I=r,r=r+1|0,s=1,t=1);else{if((0|t)==(0|s)){r=r+s|0,t=1;break a}t=t+1|0}if(!(l>>>0>(A=r+t|0)>>>0))break}if(r=1,c=-1,l>>>0<=1)A=s;else{for(A=0,i=1,t=1;;){a:if((0|(M=d[88105+(t+c|0)|0]))!=(0|(h=d[r+88105|0])))h>>>0>M>>>0?(i=r-c|0,A=r,t=1):(c=A,A=A+1|0,i=1,t=1);else{if((0|t)==(0|i)){A=A+i|0,t=1;break a}t=t+1|0}if(!(l>>>0>(r=A+t|0)>>>0))break}A=s,r=i}}for(t=A,Hr(88105,(s=(A=c+1>>>0>I+1>>>0)?r:t)+88105|0,M=(h=A?c:I)+1|0)?(s=((A=~h+l|0)>>>0>>0?h:A)+1|0,i=0):i=l-s|0,_=l-1|0,P=63|l,c=0,A=g;;){if(!(g-A>>>0>=l>>>0))if(r=Ma(g,0,P)){if(g=r,r-A>>>0>>0)break A}else g=g+P|0;r=d[A+_|0],t=l;r:{if(e[(p+1024|0)+(r>>>3&28)>>2]>>>r&1)if((0|(r=e[(r<<2)+p>>2]))==(0|l)){a:{if(I=d[(r=(t=M)>>>0>c>>>0?t:c)+88105|0])for(;;){if(d[A+r|0]!=(255&I))break a;if(!(I=d[(r=r+1|0)+88105|0]))break}for(;;){if(t>>>0<=c>>>0)break e;if(d[(t=t-1|0)+88105|0]!=d[A+t|0])break}t=s,c=i;break r}t=r-h|0}else t=(r=l-r|0)>>>0>c>>>0?r:c;c=0}A=A+t|0}}A=0}V=p+1056|0,r=A}}}}return r}function HA(A,t,r,s,i,l){var c,g,p,I,h=0,M=0,P=0;if(V=c=V-560|0,f[c+448|0]=0,f[c+144|0]=0,f[c+120|0]=0,p=34&l,g=t-O(M=(0|t)/100|0,100)|0,1&(I=64&d[A+106|0]?(0|t)>999|l:0)|(0|t)>99){e:{A:{r:{if(!(!p|g)){if(!FA(A,90606,c+304|0))break r;break e}if(g)break A}if(FA(A,90691,c+304|0))break e}FA(A,90725,c+304|0)}h=l,(0|t)<1e3||(h=l,!(8&d[A+105|0])|t-2e3>>>0<4294967196&&(f[c+208|0]=0,Ee(A,h=(M>>>0)/10|0,s=16384&e[A+108>>2]?0:i+1|0,!((t>>>0)%1e3|0)|p,c+272|0)||ot(A,h,i,e[A+212>>2]==28012?520:(0|s)<4?(e[A+108>>2]>>>s&1)<<3:0,c+208|0),2&d[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,lA(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,lA(c+144|0,90761,c+80|0)),s=1,1&(!!(0|(M=M-O(h,10)|0))|I)||(f[c+304|0]=0),h=1|l)),f[c+208|0]=0;e:if(!(~I&(0|M)<=0))if(!(4&d[A+106|0])|!(1&h|d[c+144|0])||FA(A,90824,c+120|0),!p|(16&d[A+109|0]?0:g)||(e[c+64>>2]=M,lA(s=c+548|0,90875,c- -64|0),P=FA(A,s,c+208|0),!(4096&e[A+108>>2])|(0|g)<=0||Jr(c+208|0,133104)),s=1,1&(~I|!!(0|M))){A:{r:{a:{n:{if(!(131072&e[A+108>>2])||1&h|(0|M)!=1){if(g|P||(e[c+48>>2]=M,lA(s=c+548|0,90985,c+48|0),P=FA(A,s,c+208|0)),P||(e[c+32>>2]=M,lA(s=c+548|0,91027,c+32|0),FA(A,s,c+208|0)))break n;if((0|M)!=1)break r;break a}if(!P)break a}f[c+304|0]=0;break A}if(s=1,4&d[A+105|0])break e}ot(A,M,i,0,c+208|0)}s=1}else FA(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,lA(c+448|0,91059,c+16|0)}else h=l;f[c+132|0]=0;e:{A:{if((0|g)>0)16&d[A+109|0]&&2&h||(!(1&h)|i&&(0|t)<=100||!(64&(s=e[A+104>>2]))&(!(8388608&s)|g>>>0>9)||FA(A,90824,c+132|0),!(1&h|d[c+144|0])|!(524288&e[A+104>>2])|M||FA(A,90824,c+132|0)),f[c+336|0]=0;else if(f[c+336|0]=0,!g&s)break A;if(i?(l=e[A+108>>2],t=(0|i)<4?(l>>>i&1)<<3:0):(s=p?3:2,t=32&l|((0|t)<100?1&h?s:4|s:s),l=e[A+108>>2]),t=(0|i)==1&&e[A+212>>2]==28012?520|t:t,1048576&l&&(s=16|t,t=(0|M)>0||1&h?s:t),!ot(A,g,i,256&h|t,c+336|0)|!(128&d[A+104|0]))break e;f[c+132|0]=0;break e}d[133104]&&((0|(A=kA(c+448|0)))<=0||d[(A=A+c|0)+447|0]==10&&(f[A+447|0]=0),GA(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,lA(r,91101,c),V=c+560|0}function BA(A){var t,r,s,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0;for(i=e[32972],e[i+64>>2]=290816,e[i+68>>2]=4104,e[i+96>>2]=0,e[i+100>>2]=0,e[i+120>>2]=90,e[i+124>>2]=100,e[i+112>>2]=64,e[i+116>>2]=256,e[i+104>>2]=5,e[i+108>>2]=0,e[i+84>>2]=100,e[i+88>>2]=64,l=e[50754],e[i+132>>2]=0,e[i+136>>2]=0,e[i+128>>2]=l,e[i+140>>2]=0,e[i+144>>2]=0,e[i+148>>2]=0,e[i+152>>2]=0,e[i+156>>2]=0,e[i+160>>2]=0,e[36435]=450,e[i+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],T[25429]=c,p=-2*c,T[25430]=p,t=(c=xr(200*c))*-c,T[25434]=t,T[25439]=t,T[25444]=t,c=(p=c*os(2e3*p))+p,T[25433]=c,T[25438]=c,T[25443]=c,p=1-c-t,T[25432]=p,T[25437]=p,T[25442]=p,e[50902]=0,e[50903]=0,e[50900]=0,e[50901]=0,T[25449]=t,T[25448]=c,e[50912]=0,e[50913]=0,T[25447]=p,e[50910]=0,e[50911]=0,T[25454]=t,T[25453]=c,e[50922]=0,e[50923]=0,T[25452]=p,e[50920]=0,e[50921]=0,T[25459]=t,T[25458]=c,e[50932]=0,e[50933]=0,T[25457]=p,e[50930]=0,e[50931]=0,T[25464]=t,T[25463]=c,T[25462]=p,e[50942]=0,e[50943]=0,e[50940]=0,e[50941]=0,T[25469]=t,T[25468]=c,T[25467]=p,e[50952]=0,e[50953]=0,e[50950]=0,e[50951]=0,T[25474]=t,T[25473]=c,T[25472]=p,r=e[32972],l=0;k[(I=(l<<1)+r|0)+236>>1]=256,k[I+164>>1]=256,i=d[l+105376|0]<<1,k[I+254>>1]=i,k[I+182>>1]=i,k[I+200>>1]=d[l+105385|0]<<1,e[(i=(g=l<<2)+r|0)+308>>2]=e[g+105408>>2],e[i+272>>2]=0,k[I+218>>1]=0,e[g+200944>>2]=(0|O(e[g+105456>>2],22050))/e[50754],(0|(l=l+1|0))!=9;);for(_=e[32961],l=0,s=r+344|0;;){if(i=h,M=_,I=l,(0|(h=e[(l=(g=l<<2)+131840|0)>>2]))==-1&&(h=8e3,e[l>>2]=8e3,I&&(e[131840+(4|g)>>2]=e[g+131836>>2])),_=e[131840+(4|g)>>2],!((0|i)>=(0|(h=(0|h)/8|0))||(0|(P=h-i|0))<=0||(g=i+1|0,l=i,1&P&&(f[344+(i+r|0)|0]=(0|M)>=255?255:M,l=g),(0|g)==(0|h))))for(Y=_-M|0;g=((0|O(l-i|0,Y))/(0|P)|0)+M|0,f[l+s|0]=(0|g)>=255?255:g,H=((0|O((g=l+1|0)-i|0,Y))/(0|P)|0)+M|0,f[g+s|0]=(0|H)>=255?255:H,(0|h)!=(0|(l=l+2|0)););if(l=I+2|0,!(I>>>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),k[l+200>>1]=(0|O(k[l+200>>1],105))/100}function gt(A,t,r){var s,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0;V=s=V-288|0,(0|t)!=132848&&Es(132848,t,40),(0|(i=A+228|0))!=(0|t)&&Es(i,t,40),e[s+88>>2]=t,e[s+84>>2]=47,e[s+80>>2]=137584,lA(i=s+96|0,84089,s+80|0),l=Ns(i),(i=e[A+688>>2])&&(Me(i),e[A+688>>2]=0),i=ms(s+96|0,84577);e:if((0|l)>0&&i)if(r=zA(l),e[A+688>>2]=r,r)if(I=an(r,l,i),Ir(i),I>>>0<=1032)e[s+16>>2]=s+96,tr(e[30450],85164,s+16|0),r=2;else if(i=e[A+688>>2],r=e[i+4>>2],!((0|(l=e[i>>2]))!=1024|(0|r)<=0)&(0|r)<134217729){i=r+i|0,e[A+684>>2]=i,M=Je(A+5168|0,0,1024),Je(A+7664|0,0,260),Je(A+7924|0,255,256),Je(A+4788|0,0,380),Je(A+6192|0,0,512);A:if((0|(r=d[0|i]))!=7)for(;;){if((0|(l=255&r))!=6){if(!l)break A;l=e[A+684>>2],e[s+72>>2]=r<<24>>24,e[s+64>>2]=132848,e[s+68>>2]=i-l,tr(e[30450],88950,s- -64|0);break}r:{a:{n:{o:{c:switch((l=d[0|(r=i+1|0)])-18|0){case 0:break o;case 2:break c;default:break n}for(r=4+(-4&r)|0,e[A+180>>2]=r;r=(i=r)+1|0,!Ni(i););for(;l=d[0|i],r=i,i=i+1|0,(0|l)!=7;);break r}if(r=i+3|0,(0|(i=((0|(i=f[i+2|0]))<65?191:-65)+i|0))>94)break a;e[4788+((i<<2)+A|0)>>2]=r;break a}r=1+((g=kA(r))+r|0)|0;n:switch(0|g){case 1:e[5168+((l<<2)+A|0)>>2]=r;break a;case 0:e[M>>2]=r;break a;default:break n}g=d[i+2|0],(0|l)!=1?(i=e[A+7664>>2],d[0|(h=(c=A+l|0)+7924|0)]==255&&(f[0|h]=i),f[0|(c=c+7668|0)]=d[0|c]+1,e[(c=(i<<2)+A|0)+6704>>2]=r,e[A+7664>>2]=i+1,e[c+7184>>2]=l|g<<8):e[6188+((g<<2)+A|0)>>2]=r}if(d[0|r]!=7)for(;r=1+(kA(r)+r|0)|0,d[0|r]!=7;);}r=d[0|(i=r+1|0)]}for(i=e[A+688>>2]+8|0;;){for(e[692+((r=p<<2)+A|0)>>2]=i;l=d[0|i];)i=i+l|0;for(i=i+1|0,e[692+((4|r)+A|0)>>2]=i;r=d[0|i];)i=r+i|0;if(i=i+1|0,(0|(p=p+2|0))==1024)break}r=0,(0|(A=e[A+324>>2]))<=0|A>>>0<=I>>>0||(e[s+48>>2]=t,tr(e[30450],85519,s+48|0))}else e[s+40>>2]=r,e[s+36>>2]=l,e[s+32>>2]=s+96,tr(e[30450],85349,s+32|0),r=2;else Ir(i),r=3;else{if(r||(e[s>>2]=s+96,tr(e[30450],84963,s)),r=1,!i)break e;Ir(i)}return V=s+288|0,r}function lt(A){var t,r=0,s=0;for(t=Je(A+344|0,0,256),f[A+364|0]=1,f[A+356|0]=1,f[A+357|0]=1,f[A+358|0]=1,f[A+359|0]=1,f[A+360|0]=1,f[A+361|0]=1,f[A+362|0]=1,f[A+363|0]=1,f[A+348|0]=1,f[A+349|0]=1,f[A+350|0]=1,f[A+351|0]=1,f[A+352|0]=1,f[A+353|0]=1,f[A+354|0]=1,f[A+355|0]=1,f[A+431|0]=3,f[A+429|0]=3,f[A+430|0]=3,f[A+406|0]=3,f[A+407|0]=3,f[A+408|0]=3,f[A+409|0]=3,f[A+410|0]=3,f[A+411|0]=3,f[A+412|0]=3,f[A+413|0]=3,f[A+414|0]=3,f[A+415|0]=3,f[A+416|0]=3,f[A+417|0]=3,f[A+418|0]=3,f[A+419|0]=3,f[A+420|0]=3,f[A+421|0]=3,f[A+440|0]=3,f[A+441|0]=3,f[A+442|0]=3,f[A+443|0]=3,s=21;f[(r=A+s|0)+344|0]=4|d[r+344|0],(0|(r=s+1|0))!=58;)f[0|(r=r+t|0)]=4|d[0|r],f[(r=s+t|0)+2|0]=4|d[r+2|0],f[r+3|0]=4|d[r+3|0],s=s+4|0;f[A+346|0]=4|d[A+346|0],f[A+347|0]=4|d[A+347|0],f[A+432|0]=4|d[A+432|0],f[A+433|0]=4|d[A+433|0],f[A+434|0]=4|d[A+434|0],f[A+435|0]=4|d[A+435|0],f[A+436|0]=4|d[A+436|0],f[A+437|0]=4|d[A+437|0],f[A+438|0]=4|d[A+438|0],f[A+439|0]=4|d[A+439|0],f[A+467|0]=4|d[A+467|0],f[A+468|0]=4|d[A+468|0],f[A+470|0]=4|d[A+470|0],f[A+471|0]=4|d[A+471|0],f[A+348|0]=64|d[A+348|0],f[A+349|0]=64|d[A+349|0],f[A+350|0]=64|d[A+350|0],f[A+351|0]=64|d[A+351|0],f[A+352|0]=64|d[A+352|0],f[A+353|0]=64|d[A+353|0],f[A+354|0]=64|d[A+354|0],f[A+355|0]=64|d[A+355|0],f[A+356|0]=64|d[A+356|0],f[A+357|0]=64|d[A+357|0],f[A+358|0]=64|d[A+358|0],f[A+359|0]=64|d[A+359|0],f[A+360|0]=64|d[A+360|0],f[A+361|0]=64|d[A+361|0],f[A+362|0]=64|d[A+362|0],f[A+363|0]=64|d[A+363|0],f[A+364|0]=64|d[A+364|0],f[A+406|0]=64|d[A+406|0],f[A+407|0]=64|d[A+407|0],f[A+408|0]=64|d[A+408|0],f[A+409|0]=64|d[A+409|0],f[A+410|0]=64|d[A+410|0],f[A+411|0]=64|d[A+411|0],f[A+412|0]=64|d[A+412|0],f[A+413|0]=64|d[A+413|0],f[A+414|0]=64|d[A+414|0],f[A+415|0]=64|d[A+415|0],f[A+416|0]=64|d[A+416|0],f[A+417|0]=64|d[A+417|0],f[A+418|0]=64|d[A+418|0],f[A+419|0]=64|d[A+419|0],f[A+420|0]=64|d[A+420|0],f[A+440|0]=64|d[A+440|0],f[A+441|0]=64|d[A+441|0],f[A+429|0]=64|d[A+429|0],f[A+430|0]=64|d[A+430|0],f[A+431|0]=64|d[A+431|0],f[A+442|0]=64|d[A+442|0],f[A+443|0]=64|d[A+443|0],e[A+40>>2]=1,e[A+204>>2]=e[A+600>>2]+77}function Tr(A,t,r,s,i,l,c,g,p){var I,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0;V=I=V-128|0;e:{A:{if(Tt(l,c,g,p,0,0,0,0)){M=65535&p;r:a:{if((0|(_=p>>>16&32767))!=32767){if(h=4,_)break a;h=l|g|c|M?3:2;break r}h=!(l|g|c|M)}if((0|(Y=32767&(ie=i>>>16|0)))!=32767&&h)break A}wA(I+16|0,t,r,s,i,l,c,g,p),bs(I,t=e[I+16>>2],s=e[I+20>>2],i=e[I+24>>2],r=e[I+28>>2],t,s,i,r),s=e[I+8>>2],i=e[I+12>>2],g=e[I>>2],p=e[I+4>>2];break e}if(_=g,(0|Tt(t,r,h=s,H=2147483647&i,l,c,g,P=2147483647&p))<=0){if(Tt(t,r,h,H,l,c,_,P)){g=t,p=r;break e}wA(I+112|0,t,r,s,i,0,0,0,0),s=e[I+120>>2],i=e[I+124>>2],g=e[I+112>>2],p=e[I+116>>2]}else{if(J=p>>>16&32767,Y?(p=r,g=t):(wA(I+96|0,t,r,h,H,0,0,0,1081540608),h=e[I+104>>2],H=g=e[I+108>>2],Y=(g>>>16|0)-120|0,p=e[I+100>>2],g=e[I+96>>2]),J||(wA(I+80|0,l,c,_,P,0,0,0,1081540608),_=e[I+88>>2],P=l=e[I+92>>2],J=(l>>>16|0)-120|0,c=e[I+84>>2],l=e[I+80>>2]),re=_,me=65535&P|65536,H=65535&H|65536,(0|Y)>(0|J)){for(;;){if(_=(P=h-re|0)-(M=(0|c)==(0|p)&l>>>0>g>>>0|c>>>0>p>>>0)|0,(0|(M=(H-((h>>>0>>0)+me|0)|0)-(M>>>0>P>>>0)|0))>0|(0|M)>=0){if(h=g,!((g=g-l|0)|_|(p=p-((l>>>0>h>>>0)+c|0)|0)|M)){wA(I+32|0,t,r,s,i,0,0,0,0),s=e[I+40>>2],i=e[I+44>>2],g=e[I+32>>2],p=e[I+36>>2];break e}M=M<<1|_>>>31,h=_<<1|p>>>31}else M=H<<1|h>>>31,h=h<<1|p>>>31;if(H=M,M=p<<1|g>>>31,g<<=1,p=M,!((0|(Y=Y-1|0))>(0|J)))break}Y=J}if(_=(P=h-re|0)-(M=(0|c)==(0|p)&l>>>0>g>>>0|c>>>0>p>>>0)|0,P=M=(H-((h>>>0>>0)+me|0)|0)-(M>>>0>P>>>0)|0,(0|M)<0)_=h,P=H;else if(h=g,!((g=g-l|0)|_|(p=p-((l>>>0>h>>>0)+c|0)|0)|P)){wA(I+48|0,t,r,s,i,0,0,0,0),s=e[I+56>>2],i=e[I+60>>2],g=e[I+48>>2],p=e[I+52>>2];break e}if((0|P)==65535|P>>>0<65535)for(;t=p>>>31|0,Y=Y-1|0,H=p<<1|g>>>31,g<<=1,p=H,r=t,t=P<<1|_>>>31,_=r|_<<1,P=t,t>>>0<65536;);t=32768&ie,(0|Y)<=0?(wA(I- -64|0,g,p,_,65535&P|(t|Y+120)<<16,0,0,0,1065811968),s=e[I+72>>2],i=e[I+76>>2],g=e[I+64>>2],p=e[I+68>>2]):(s=_,i=65535&P|(t|Y)<<16)}}e[A>>2]=g,e[A+4>>2]=p,e[A+8>>2]=s,e[A+12>>2]=i,V=I+128|0}function Gt(A,t,r){var s,i,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0;if(V=s=V-1040|0,(0|(c=si(A,589824,0)))>=0&&((l=Mt(1,2072))?e[l+8>>2]=c:(Be(0|c),l=0)),i=l,l){e:if(l=un(i))for(_=e[30450],P=(s+96|0)+t|0;;){if((0|(c=e[50303]))>=348){e[s+4>>2]=350,e[s>>2]=c+1,tr(_,91860,s);break e}if(d[l+19|0]!=46)if(e[s+88>>2]=l+19,e[s+84>>2]=47,e[s+80>>2]=A,lA(l=s+96|0,91924,s+80|0),(0|(l=Ns(l)))!=-31){if(!((0|l)<=0)&&(M=ms(s+96|0,85712))){g=0,f[s+832|0]=0,f[s+752|0]=0,e[s+360>>2]=0,e[s+356>>2]=4,I=0;A:for(;;){for(h=299-I|0;ct(s+912|0,120,M);){l=s+912|0;r:{if(d[s+912|0]!=35){a:if(!((0|(l=kA(s+912|0)-1|0))<=0))for(;;){if(!((0|(c=f[0|(p=(s+912|0)+l|0)]))==32|c-9>>>0<5))break a;if(f[0|p]=0,!((0|(l=l-1|0))>0))break}if(!(l=OA(s+912|0)))break r}f[0|l]=0}l=s+912|0;r:if(c=d[s+912|0])for(;;){if(ur(c<<24>>24))break r;if(!(c=d[0|(l=l+1|0)]))break}if(f[0|l]=0,d[s+912|0]){l=l+1|0;r:switch(es(131904,s+912|0)-1|0){case 0:for(;c=l,l=l+1|0,(0|(p=f[0|c]))==32|p-9>>>0<5;);St(s+832|0,c,80);continue;case 1:if(f[s+672|0]=0,e[s+364>>2]=5,c=s+672|0,e[s+16>>2]=c,e[s+20>>2]=s+364,jA(l,86237,s+16|0),(c=kA(c)+2|0)>>>0>=h>>>0)continue;f[0|(l=(s+368|0)+I|0)]=e[s+364>>2],GA(l+1|0,s+672|0),g=g+1|0,I=c+I|0;continue A;case 2:if(e[s+52>>2]=s+360,e[s+48>>2]=s+752,jA(l,86237,s+48|0),!r)continue;e[s+32>>2]=P,tr(_,92042,s+32|0);continue;case 5:break r;default:continue}e[s+64>>2]=s+356,jA(l,87268,s- -64|0)}}break}f[(s+368|0)+I|0]=0,c=es(132112,s+752|0),g?(p=kA(P)+I|0,h=qA((g=Mt(28+(kA(s+832|0)+p|0)|0,1))+24|0,s+368|0,l=I+1|0),e[g+4>>2]=h,l=GA(l+h|0,P),e[g>>2]=l,e[g+8>>2]=l,d[s+832|0]&&(e[g>>2]=GA(2+(p+h|0)|0,s+832|0)),l=e[s+360>>2],f[g+14|0]=0,f[g+12|0]=c,f[g+13|0]=l,f[g+15|0]=e[s+356>>2],Ir(M),l=e[50303],e[50303]=l+1,e[201216+(l<<2)>>2]=g):Ir(M)}}else Gt(s+96|0,t,r);if(!(l=un(i)))break}Li(e[i+8>>2]),Me(i)}V=s+1040|0}function br(A,t){var r,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0;V=r=V-352|0;e:if(A||(A=e[136284+(t<<4)>>2])){d[0|A]!=47&&(e[r+12>>2]=A,e[r+4>>2]=47,e[r+8>>2]=47,e[r>>2]=137584,lA(A=r+16|0,84114,r)),f[r+240|0]=0;A:{r:{if(s=ms(A,84577)){if((0|Co(s,20))==-1)break A;if(l=li(s),i=li(s),g=li(s),!((0|l)!=65537|(0|i)!=e[50754])&(0|g)==i<<1)break r;Ir(s),k[r+256>>1]=d[84864]|d[84865]<<8,A=d[84852]|d[84853]<<8|d[84854]<<16|d[84855]<<24,e[r+240>>2]=d[84848]|d[84849]<<8|d[84850]<<16|d[84851]<<24,e[r+244>>2]=A,A=d[84860]|d[84861]<<8|d[84862]<<16|d[84863]<<24,e[r+248>>2]=d[84856]|d[84857]<<8|d[84858]<<16|d[84859]<<24,e[r+252>>2]=A,V=l=V-16|0;a:{if((s=kA(A=r+240|0))>>>0>=6&&!Hr(g=(A+s|0)-6|0,84274,6)){for(I=100;;){for(p=0,V=s=V-16|0,d[227196]||(f[227197]=Qe(),f[227196]=1),M=+Ae(),ee(c=M/1e3)<9223372036854776e3?(h=ee(c)>=1?~~(c>0?we(xe(23283064365386963e-26*c),4294967295):De(23283064365386963e-26*(c-+(~~c>>>0>>>0))))>>>0:0,i=~~c>>>0):(h=-2147483648,i=0),e[s>>2]=i,e[s+4>>2]=h,c=1e3*(M-(+(et(i,h,1e3,0)>>>0)+4294967296*+(0|fe)))*1e3,i=ee(c)<2147483648?~~c:-2147483648,e[s+8>>2]=i,i=g+(s>>>4|0)^O(e[s+8>>2],65537);f[g+p|0]=65+(15&i|i<<1&32),i=i>>>5|0,(0|(p=p+1|0))!=6;);if(V=s+16|0,e[l>>2]=384,(0|(s=si(A,194,l)))>=0)break a;if(I=I-1|0,e[56798]!=20||!I)break}qA(g,84274,6)}else e[56798]=28;s=-1}V=l+16|0,(0|s)<0||Li(s)}if(!(s=ms(A,84577))){A=Ps(0,e[56798],A);break e}}if((0|(l=Ns(A)))<0){Ir(s),A=Ps(0,0-l|0,A);break e}if((0|Co(s,0))==-1){t=e[56798],Ir(s),A=Ps(0,t,A);break e}if(!(i=Dt(e[(g=136280+(t<<4)|0)>>2],l))){Ir(s),A=48;break e}if((0|an(i,l,s))!=(0|l)){t=e[56798],Ir(s),d[r+240|0]&&ho(r+240|0),Me(i),A=Ps(0,t,A);break e}Ir(s),d[r+240|0]&&ho(r+240|0),e[136276+(t<<4)>>2]=(d[i+40|0]|d[i+41|0]<<8|d[i+42|0]<<16|d[i+43|0]<<24)/2,e[g>>2]=i,A=0;break e}t=e[56798],Ir(s),A=Ps(0,t,A)}else A=28;return V=r+352|0,A}function Is(A,t,r,s,i,l){var c,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0;for(f[0|r]=1,c=1&l,me=1,H=-1,J=-1,h=1,l=t;;){ve=ie-2|0,re=M,_=J;e:{A:{for(;;){if(!(P=d[0|l])){J=_,M=re;break e}if(l=l+1|0,Y=e[144464+(P<<2)>>2]){r:{if((0|(g=d[Y+11|0]))!=1){if(16&d[Y+6|0]|(0|g)!=2)break r;f[0|(M=r+h|0)]=H,g=(0|H)<4|(0|_)>(0|H),!(2&d[Y+4|0])|!c|(0|H)>=0||(f[0|M]=1),M=g?re:h,J=g?_:H,H=-1,h=h+1|0;break A}if(!y[Y+8>>1]){g=0,I=h;a:if((0|P)!=8)g=d[Y+14|0],e[i>>2]&&g>>>0>=4||(_=(0|g)<(0|_)?_:g,H=g);else{for(;;){if(P=g,I=I-1|0,e[i>>2]|(0|I)<=0||(0|(Y=f[0|(p=r+I|0)]))>3)break a;if(g=P+1|0,!(Y>>>0<2))break}if(f[0|p]=4,re=(0|_)<4?I:re,_=(0|_)<=4?4:_,I>>>0<2)break a;if(Y=3&(I=~P+ie|0),g=1,ve-P>>>0>=3)for(P=-4&I,I=0;d[0|(p=r+g|0)]==4&&(f[0|p]=3),d[p+1|0]==4&&(f[p+1|0]=3),d[p+2|0]==4&&(f[p+2|0]=3),d[p+3|0]==4&&(f[p+3|0]=3),g=g+4|0,(0|P)!=(0|(I=I+4|0)););if(p=0,!Y)break a;for(;d[0|(P=r+g|0)]==4&&(f[0|P]=3),g=g+1|0,(0|Y)!=(0|(p=p+1|0)););}if(me)continue;break e}}break}}J=_,M=re,(0|P)==20&&(f[r+h|0]=c&&(0|H)<0?1:H,h=h+1|0)}if(f[0|t]=P,ie=h-1|0,t=t+1|0,me=(0|h)<99)continue}break}f[r+h|0]=1,f[0|t]=0;e:if((0|(t=e[i>>2]))>0)J=4,(0|t)>=(0|h)&&(e[i>>2]=ie,t=ie),f[t+r|0]=4,M=e[i>>2];else if((0|J)==5&&(J=4,!((0|h)<2))){if(l=1,_=1&(t=h-1|0),(0|h)!=2)for(re=-2&t,I=0;;){p=4;A:{r:{a:switch(d[0|(t=(g=l)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}p=2&d[A+14|0]?1:3,g=M}f[0|t]=p,M=g}p=4;A:{r:{a:switch(d[0|(t=(g=l+1|0)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}p=2&d[A+14|0]?1:3,g=M}f[0|t]=p,M=g}if(l=l+2|0,(0|re)==(0|(I=I+2|0)))break}if(_){p=4;A:{r:switch(d[0|(t=r+l|0)]-4|0){case 1:break A;case 0:break r;default:break e}p=2&d[A+14|0]?1:3,l=M}f[0|t]=p,M=l}}return e[i>>2]=M,e[s>>2]=h,J}function Dt(A,t){var r,s,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0;if(!A)return zA(t);if(t>>>0>=4294967232)return e[56798]=48,0;r=t>>>0<11?16:t+11&-8,c=-8&(s=e[(g=A-8|0)+4>>2]);e:if(3&s){p=c+g|0;A:if(c>>>0>=r>>>0){if((l=c-r|0)>>>0<16)break A;e[g+4>>2]=1&s|r|2,e[(i=g+r|0)+4>>2]=3|l,e[p+4>>2]=1|e[p+4>>2],sA(i,l)}else if(e[57158]!=(0|p))if(e[57157]!=(0|p)){if(2&(l=e[p+4>>2])||(h=c+(-8&l)|0)>>>0>>0)break e;P=h-r|0;r:if(l>>>0<=255){if(c=e[p+8>>2],i=l>>>3|0,(0|(l=e[p+12>>2]))==(0|c)){e[57152]=e[57152]&As(-2,i);break r}e[c+12>>2]=l,e[l+8>>2]=c}else{if(M=e[p+24>>2],(0|(I=e[p+12>>2]))==(0|p))if((i=e[(c=p+20|0)>>2])||(i=e[(c=p+16|0)>>2])){for(;l=c,I=i,(i=e[(c=i+20|0)>>2])||(c=I+16|0,i=e[I+16>>2]););e[l>>2]=0}else I=0;else i=e[p+8>>2],e[i+12>>2]=I,e[I+8>>2]=i;if(M){l=e[p+28>>2];a:{if(e[(i=228912+(l<<2)|0)>>2]==(0|p)){if(e[i>>2]=I,I)break a;e[57153]=e[57153]&As(-2,l);break r}if(e[(e[M+16>>2]==(0|p)?16:20)+M>>2]=I,!I)break r}e[I+24>>2]=M,(i=e[p+16>>2])&&(e[I+16>>2]=i,e[i+24>>2]=I),(i=e[p+20>>2])&&(e[I+20>>2]=i,e[i+24>>2]=I)}}P>>>0<=15?(e[g+4>>2]=1&s|h|2,e[(i=g+h|0)+4>>2]=1|e[i+4>>2]):(e[g+4>>2]=1&s|r|2,e[(l=g+r|0)+4>>2]=3|P,e[(i=g+h|0)+4>>2]=1|e[i+4>>2],sA(l,P))}else{if((l=c+e[57154]|0)>>>0>>0)break e;(i=l-r|0)>>>0>=16?(e[g+4>>2]=1&s|r|2,e[(c=g+r|0)+4>>2]=1|i,e[(l=l+g|0)>>2]=i,e[l+4>>2]=-2&e[l+4>>2]):(e[g+4>>2]=l|1&s|2,e[(i=l+g|0)+4>>2]=1|e[i+4>>2],i=0,c=0),e[57157]=c,e[57154]=i}else{if((c=c+e[57155]|0)>>>0<=r>>>0)break e;e[g+4>>2]=1&s|r|2,i=c-r|0,e[(l=g+r|0)+4>>2]=1|i,e[57155]=i,e[57158]=l}i=g}else{if(r>>>0<256||c>>>0>=r+4>>>0&&(i=g,c-r>>>0<=e[57272]<<1>>>0))break e;i=0}return i?i+8|0:(g=zA(t))?(qA(g,A,t>>>0>(i=(3&(i=e[A-4>>2])?-4:-8)+(-8&i)|0)>>>0?i:t),Me(A),g):0}function Pr(){var A,t,r=0,s=0;return A=hs(12),e[A>>2]=22050,t=hs(432),e[(s=t)+4>>2]=0,e[s+8>>2]=0,e[s>>2]=132304,e[s+32>>2]=0,e[s+12>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+24>>2]=0,Je(s+40|0,0,376),e[s+420>>2]=0,e[s+424>>2]=-1,f[s+416|0]=1,r=Je(hs(408),0,408),e[s+28>>2]=r,f[r+8|0]=1,e[A+4>>2]=s,r=hs(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,f[r+48|0]=0,e[r+128>>2]=0,e[r+132>>2]=0,k[r+96>>1]=0,e[r+72>>2]=22050,e[r+136>>2]=0,e[r+140>>2]=0,k[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,k[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,k[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,k[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,k[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,k[r+528>>1]=1,e[r+560>>2]=0,e[r+564>>2]=0,e[r+568>>2]=0,e[r+572>>2]=0,k[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,k[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,k[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,k[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,k[r+896>>1]=0,e[r+936>>2]=0,e[r+940>>2]=0,e[r+928>>2]=0,e[r+932>>2]=0,k[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,k[r+1040>>1]=0,e[r+1016>>2]=22050,e[r+1088>>2]=0,e[(s=r+1080|0)>>2]=0,e[s+4>>2]=0,e[(s=r+1072|0)>>2]=0,e[s+4>>2]=0,e[A+8>>2]=r,ZA[e[e[r>>2]+4>>2]](r,t),A}function Os(A,t,r){var s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0;e:if(M=e[50759]){if(s=e[50980],i=O(s,80)+222176|0,(0|(p=(0|(i=(0|(i=(e[i+12>>2]+e[i>>2]|0)/(0|A)|0))<(0|(h=((0|O(e[50754],19))/40<<16)/(0|A)|0))?i:h))>=399?399:i))>=0&&(Je(t,0,4+(p<<2)|0),s=e[50980]),(0|s)>=0)for(P=e[50801];;){if(l=O(c,80)+222176|0,e[l+4>>2]&&(g=e[l>>2])){if(_=g+e[l+12>>2]|0,s=1+((g-e[l+8>>2]|0)/(0|A)|0)|0,(0|g)>(0|(s=O(i=(0|s)<=1?1:s,A))))for(;e[(I=(i<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],d[((g-s|0)/(e[l+8>>2]>>8)|0)+P|0]),i=i+1|0,(0|g)>(0|(s=A+s|0)););if(!((0|s)>=(0|_)))for(;e[(I=(i<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],d[((s-g|0)/(e[l+12>>2]>>8)|0)+P|0]),i=i+1|0,(0|_)>(0|(s=A+s|0)););}if(!((0|(c=c+1|0))<=e[50980]))break}if(i=1,!((0|(l=65536e3/(0|A)|0))<=0||(0|(s=O(e[55565],10)))<=0))for(l=(0|s)/(0|l)|0;e[(g=(i<<2)+t|0)>>2]=e[g>>2]+s,i=i+1|0,(0|(s=s-l|0))>0;);if((0|c)<=8)for(;i=(s=c<<2)+203216|0,l=O(c,80)+222176|0,g=e[l+4>>2]>>14,e[i>>2]=(0|O(O(g,g),5))/2,r?s=e[s+203264>>2]:(g=s+203264|0,s=e[l>>2]/(0|A)|0,e[g>>2]=s),(0|s)>=(0|h)&&(e[i>>2]=0),(0|(c=c+1|0))!=9;);if(i=0,(0|p)>=0)for(s=0;l=e[(c=(s<<2)+t|0)>>2]>>15,l=O(l,l)>>8,e[c>>2]=l,(0|i)<=524287999&&(e[c>>2]=O(l,d[344+((i>>19)+M|0)|0])>>13),i=A+i|0,c=(0|s)!=(0|p),s=s+1|0,c;);if(e[t+4>>2]=(0|O(e[t+4>>2],d[203300]?6:10))/8,1&r)for(A=e[50826],s=1;;){if(e[(r=s<<2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,(0|(r=s+1|0))==30)break e;e[(r<<=2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,s=s+2|0}}else p=1;return p}function Er(A,t,r,s){var i,l=0,c=0;V=i=V-176|0,f[0|A]=0,k[i+80>>1]=24320,e[i+104>>2]=0,e[i+108>>2]=0,f[82+(mr(r,l=i+80|2)+i|0)|0]=0;e:{A:{if(!s){if(s=i+80|1,e[i+12>>2]=s,zt(t,i+12|0,i+16|0,i+104|0,0,0)||(e[i+12>>2]=l,zt(t,i+12|0,i+16|0,i+104|0,0,0)||(f[i+81|0]=32,Dr(t,l,i+16|0,60,0,0,0))),(r=d[i+16|0])&&(0|r)!=21)break A;r:{if(e[t+212>>2]!=25966){if(ln(85719,188772,189296),f[i+81|0]=95,e[i+12>>2]=s,zt(e[47193],i+12|0,i+16|0,i+104|0,0,0)||(e[i+12>>2]=l,zt(e[47193],i+12|0,i+16|0,i+104|0,0,0)),d[i+16|0])break r;ts(e[e[32972]+60>>2]),r=d[i+16|0]}if(255&r)break A;t=d[87124]|d[87125]<<8|d[87126]<<16|d[87127]<<24,r=d[87120]|d[87121]<<8|d[87122]<<16|d[87123]<<24,f[0|A]=r,f[A+1|0]=r>>>8,f[A+2|0]=r>>>16,f[A+3|0]=r>>>24,f[A+4|0]=t,f[A+5|0]=t>>>8,f[A+6|0]=t>>>16,f[A+7|0]=t>>>24,f[A+16|0]=d[87136],t=d[87132]|d[87133]<<8|d[87134]<<16|d[87135]<<24,r=d[87128]|d[87129]<<8|d[87130]<<16|d[87131]<<24,f[A+8|0]=r,f[A+9|0]=r>>>8,f[A+10|0]=r>>>16,f[A+11|0]=r>>>24,f[A+12|0]=t,f[A+13|0]=t>>>8,f[A+14|0]=t>>>16,f[A+15|0]=t>>>24;break e}s=i+16|0,l=i+104|0,V=r=V-112|0,(c=e[47193])?(Vt(c,s,l,-1,0),Gr(l=s,s=r+48|0),t=e[t+212>>2],f[r+43|0]=t>>>24,f[0|(c=(l=r+43|0)+(t>>>0>16777215)|0)]=t>>>16,f[0|(c=c+!!(16711680&t)|0)]=t>>>8,f[0|(c=c+!!(65280&t)|0)]=t,f[c+!!(255&t)|0]=0,e[r+16>>2]=85719,e[r+24>>2]=l,e[r+20>>2]=s,lA(A,85662,r+16|0)):(Vt(t,s,l,-1,0),Gr(s,t=r+48|0),e[r>>2]=t,lA(A,85451,r)),V=r+112|0,ts(e[e[32972]+60>>2]);break e}if(e[i+12>>2]=l,zt(t,i+12|0,i+16|0,i+104|0,0,0),!d[i+16|0])break e}Vt(r=t,t=i+16|0,i+104|0,-1,0),Gr(r=t,t=i+112|0),e[i>>2]=t,lA(A,85451,i)}return V=i+176|0,A}function ps(A,t){var r,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0;if(V=r=V-112|0,e[r+72>>2]=-1,e[(s=r- -64|0)>>2]=-1,e[s+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],g=e[r+64>>2],p=e[r+60>>2],I=e[r+56>>2],h=e[r+52>>2],M=e[r+48>>2],P=e[r+44>>2],_=e[r+40>>2],Y=e[r+36>>2],H=e[r+32>>2],J=e[r+28>>2],re=e[r+24>>2],ie=e[r+20>>2],me=e[r+16>>2];i=l,l=(0|(l=e[(s=134912+(ve<<6)|0)+60>>2]))<0?i:l,i=c,c=(0|(c=e[s+56>>2]))<0?i:c,i=g,g=(0|(g=e[s+52>>2]))<0?i:g,i=p,p=(0|(p=e[s+48>>2]))<0?i:p,i=I,I=(0|(I=e[s+44>>2]))<0?i:I,i=h,h=(0|(h=e[s+40>>2]))<0?i:h,i=M,M=(0|(M=e[s+36>>2]))<0?i:M,i=P,P=(0|(P=e[s+32>>2]))<0?i:P,i=_,_=(0|(_=e[s+28>>2]))<0?i:_,i=Y,Y=(0|(Y=e[s+24>>2]))<0?i:Y,i=H,H=(0|(H=e[s+20>>2]))<0?i:H,i=J,J=(0|(J=e[s+16>>2]))<0?i:J,i=re,re=(0|(re=e[s+12>>2]))<0?i:re,i=ie,ie=(0|(ie=e[s+8>>2]))<0?i:ie,me=(0|(s=e[s+4>>2]))<0?me:s,(0|(ve=ve+1|0))!=(0|t););e[r+72>>2]=l,e[r+68>>2]=c,e[r+64>>2]=g,e[r+60>>2]=p,e[r+56>>2]=I,e[r+52>>2]=h,e[r+48>>2]=M,e[r+44>>2]=P,e[r+40>>2]=_,e[r+36>>2]=Y,e[r+32>>2]=H,e[r+28>>2]=J,e[r+24>>2]=re,e[r+20>>2]=ie,e[r+16>>2]=me}for(t=0;;){if((0|(s=e[(l=t<<2)+(r+16|0)>>2]))!=e[(l=l+134848|0)>>2]){f[r+80|0]=0;e:{A:switch(t-1|0){case 4:e[47201]=s-1;break e;case 5:e[47200]=s;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}e[r+4>>2]=s,e[r>>2]=1,e[r+8>>2]=f[t+102812|0],lA(r+80|0,91942,r)}e[l>>2]=s,s=r+80|0,GA(e[A>>2]+189424|0,s),e[A>>2]=e[A>>2]+kA(s)}if((0|(t=t+1|0))==15)break}V=r+112|0}function _s(A){var t,r,s,i=0,l=0,c=0,g=0;for(i=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=Je(A+344|0,0,256),f[A+393|0]=1,f[A+365|0]=1,f[A+360|0]=1,f[A+545|0]=1,f[A+529|0]=1,f[A+391|0]=1,f[A+379|0]=1,f[A+374|0]=1,f[A+489|0]=1,f[A+487|0]=1,f[A+398|0]=1,f[A+387|0]=1,f[A+388|0]=2,f[A+389|0]=1,f[A+390|0]=1,f[A+385|0]=2,f[A+383|0]=2,f[A+368|0]=1,f[A+369|0]=2,l=104224;f[0|(i=i+c|0)]=4|d[0|i],i=c+d[l+1|0]|0,f[0|i]=4|d[0|i],i=c+d[l+2|0]|0,f[0|i]=4|d[0|i],i=d[0|(l=l+3|0)],(0|l)!=104251;);f[A+386|0]=8|d[A+386|0],f[A+382|0]=8|d[A+382|0],f[A+384|0]=8|d[A+384|0],f[A+369|0]=16|d[A+369|0],f[A+370|0]=16|d[A+370|0],f[A+371|0]=16|d[A+371|0],l=d[A+361|0],c=d[A+362|0],i=d[A+363|0],g=d[A+364|0],t=d[A+366|0],r=d[A+367|0],f[A+372|0]=16|d[A+372|0],f[A+373|0]=16|d[A+373|0],f[A+375|0]=16|d[A+375|0],f[A+376|0]=16|d[A+376|0],f[A+377|0]=16|d[A+377|0],f[A+378|0]=16|d[A+378|0],f[A+380|0]=16|d[A+380|0],f[A+381|0]=16|d[A+381|0],f[A+383|0]=16|d[A+383|0],f[A+385|0]=16|d[A+385|0],s=d[A+388|0],f[A+367|0]=48|r,f[A+366|0]=40|t,f[A+364|0]=48|g,f[A+363|0]=48|i,f[A+362|0]=48|c,f[A+361|0]=48|l,f[A+388|0]=80|s,l=d[A+390|0],c=d[A+391|0],i=d[A+393|0],f[A+360|0]=128|d[A+360|0],g=d[A+365|0],f[A+393|0]=192|i,f[A+365|0]=128|g,f[A+368|0]=128|d[A+368|0],f[A+374|0]=128|d[A+374|0],f[A+379|0]=128|d[A+379|0],f[A+387|0]=128|d[A+387|0],i=d[A+389|0],f[A+391|0]=192|c,f[A+390|0]=192|l,f[A+389|0]=128|i,f[A+529|0]=128|d[A+529|0],f[A+545|0]=128|d[A+545|0],f[A+489|0]=128|d[A+489|0],f[A+487|0]=128|d[A+487|0],f[A+398|0]=128|d[A+398|0]}function zt(A,t,r,s,i,l){var c,g=0,p=0,I=0,h=0,M=0,P=0;V=c=V-192|0,g=M=e[t>>2];e:{A:{for(;p=1,(0|(I=f[0|g]))>=0||(p=2,I>>>0<4294967264||(p=I>>>0<4294967280?3:4)),!(d[0|(I=p+g|0)]!=32|d[I+1|0]!=46);){if(h-160>>>0<4294967135)break A;qA((P=c+32|0)+h|0,g,p),f[(p=p+h|0)+P|0]=46,g=I+3|0,h=p+1|0}if(h){for(p=0;I=p,p=p+1|0,223&d[g+I|0];);if(!((P=I+h|0)+1>>>0>160)&&(qA((p=c+32|0)+h|0,g,I),f[p+P|0]=0,U(A,p,g,r,s,i,l))){e[s>>2]=128|e[s>>2],e[33264]=h,A=1;break e}}}for(g=0;;){if(M=(p=M)+1|0,223&(p=d[0|p]))if(!g|(0|p)!=46|f[31+(g+c|0)|0]-48>>>0>=10){if(f[(c+32|0)+g|0]=p,p=159,(0|(g=g+1|0))!=159)continue}else p=g;else p=g;break}f[(g=c+32|0)+p|0]=0,g=U(A,g,M,r,s,i,l);A:if(8&d[s+3|0]){if(!Ar(r,I=A+268|0)){if(I=e[A+288>>2]+1|0,e[A+288>>2]=I,(0|I)<4)break A;f[0|r]=0;break A}St(I,r,20),e[A+288>>2]=1}else e[A+288>>2]=0;A:{if(!g){if(g=0,8&d[s+5|0]&&(I=WA(c+28|0,g=c+32|d[c+32|0]==95),fa(A,e[c+28>>2],r),g=g+I|0),!(p>>>0<2|g)){if(f[0|r]=0,!(16&i&&d[0|(g=31+(p+c|0)|0)]==101)&&(!(4096&i)||d[0|(g=(p=(c+32|0)+p|0)-1|0)]!=d[p-2|0]))break A;f[0|g]=0,g=U(A,c+32|0,M,r,s,i,l)}if(!g)break A}if(h=e[s>>2],d[A+172|0]&&(h^=536870912,e[s>>2]=h),A=1,!(536870912&h))break e;2&i&&(k[66448]=8192,e[c+16>>2]=r,lA(132898,87470,c+16|0),A=e[t>>2],e[t>>2]=132898,8&d[188788]&&(qA(t=c+32|0,s=A,A=g-A|0),f[A+t|0]=0,e[c+4>>2]=132898,A=e[47195],e[c>>2]=t,tr(A,87652,c)))}f[0|r]=0,A=0}return V=c+192|0,A}function Ws(A,t){var r=0,s=0,i=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]+O(A,t)|0;break A}if(r>>>0>=15)break e}A=e[(s=r<<2)+105616>>2],e[s+203136>>2]=(0|t)>=0?(0|A)>(0|t)?t:A:0}e:{A:{r:{a:{n:switch(r-1|0){case 5:if(!(A=e[50759]))break A;e[54728]=e[50982],t=e[50979],r=e[50978],Je(205184,0,11e3),e[51293]=0,t=(r=(i=(0|(s=e[50789]))>0)?130:(0|r)>=5499?5499:r)?i?s:(0|t)>=100?100:t:0,e[50755]=t,r=(0|O(r,e[50754]))/1e3|0,e[51292]=r,e[54729]=(0|t)>20?r<<1:t?r:0,e[33037]=(0|O(500-t|0,(0|O(d[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500;break a;case 0:break n;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+(((O(r,25)-1250&65535)>>>0)/50|0)|0),k[A+164>>1]=(0|O(k[A+236>>1],t))/256,k[A+166>>1]=(0|O(k[A+238>>1],t))/256,k[A+168>>1]=(0|O(k[A+240>>1],t))/256,k[A+170>>1]=(0|O(k[A+242>>1],t))/256,k[A+172>>1]=(0|O(k[A+244>>1],t))/256,k[A+174>>1]=(0|O(k[A+246>>1],t))/256,A=e[50790],k[102e3]=(0|O(k[102036],O(A,-3)+256|0))/256,void(k[101999]=(0|O(k[102035],O(A,-6)+256|0))/256)}e[50759]&&(e[54728]=e[50982],A=e[50979],t=e[50978],Je(205184,0,11e3),e[51293]=0,A=(t=(s=(0|(r=e[50789]))>0)?130:(0|t)>=5499?5499:t)?s?r:(0|A)>=100?100:A:0,e[50755]=A,t=(0|O(t,e[50754]))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(d[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500)}return}e[33037]=(0|O(d[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16}function zs(A,t,r){var s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0;r&&(e[r>>2]=0);e:{A:if(!((0|(s=f[0|A]))<0)){for(;;){if((0|(l=255&s))==32|l-9>>>0<5){if((0|(s=f[0|(A=A+1|0)]))>=0)continue;break A}break}if(!(255&s))break e}for(;;){if((0|(s=p=255&s))==32|s-9>>>0<5)break e;if((0|p)!=124||(0|(s=d[0|(l=A+1|0)]))==124){A:{if((0|(M=e[36115]))>=2){for(s=1,l=-1,I=0;;){r:if(!(!(h=e[144464+(s<<2)>>2])|d[h+11|0]==15)){g=e[h>>2];a:{n:{if(p>>>0>=33){if(P=0,c=0,(255&g)==(0|p)&&(c=1,(i=d[A+1|0])>>>0<33|(0|i)!=(g>>>8&255)||(c=2,(i=d[A+2|0])>>>0<33|(0|i)!=(g>>>16&255)||(c=(i=(i=d[A+3|0])>>>0>32&(0|i)==(g>>>24|0))?4:3,P=0-i|0))),(0|l)>=(0|c))break r;if(i=4,!(1&P))break n;break a}if(c=0,(0|l)>=0)break r}if(g>>>((i=c)<<3)&255)break r}I=d[h+10|0],l=i}if((0|M)==(0|(s=s+1|0)))break}if(I)break A}return r&&WA(r,A),void(f[0|t]=0)}f[0|t]=I,A=((0|l)<=1?1:l)+A|0,t=l=t+1|0;A:if((0|I)==21){r:if((0|(i=d[0|A]))==32|i-9>>>0<5)s=l;else if(s=l,i)for(;;){if(f[0|s]=Ts(i),s=s+1|0,(0|(i=d[0|(A=A+1|0)]))==32|i-9>>>0<5)break r;if(!i)break}if(f[0|s]=0,!i){if(t=s,Ar(l,85593))break A;return void(f[0|l]=0)}f[0|s]=124,t=s+1|0}s=d[0|A]}else A=l;if(!(255&s))break}}f[0|t]=0}function pr(A,t){var r=0,s=0,i=0,l=0,c=0;e:{A:{r:{a:{n:switch((0|(r=e[A+4>>2]))==e[A+104>>2]?r=Ie(A):(e[A+4>>2]=r+1,r=d[0|r]),r-43|0){case 0:case 2:break n;default:break a}if(l=(0|r)==45,c=!t,(0|(r=e[A+4>>2]))==e[A+104>>2]?r=Ie(A):(e[A+4>>2]=r+1,r=d[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(;i=(0|(s=(s=O(s,10)+r|0)-48|0))<214748364,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Ie(A):(e[A+4>>2]=t+1,r=d[0|t]),i&(t=r-48|0)>>>0<=9;);i=s>>31}r:if(!(t>>>0>=10))for(;;){if(t=(s=et(s,i,10,0))+r|0,r=fe,r=t>>>0>>0?r+1|0:r,s=t-48|0,i=r-(t>>>0<48)|0,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Ie(A):(e[A+4>>2]=t+1,r=d[0|t]),(t=r-48|0)>>>0>9)break r;if(!(s>>>0<2061584302&(0|i)<=21474836|(0|i)<21474836))break}if(t>>>0<10)for(;(0|(t=e[A+4>>2]))==e[A+104>>2]?t=Ie(A):(e[A+4>>2]=t+1,t=d[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=s,s=l?0-A|0:A,i=l?0-(!!(0|A)+i|0)|0:i;break e}}if(i=-2147483648,!(e[A+116>>2]<0))return e[A+4>>2]=e[A+4>>2]-1,fe=-2147483648,0}return fe=i,s}function ns(A){var t=0,r=0,s=0,i=0;if(e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,t=e[203136+((0|A)==2?32:8)>>2],s=e[32972],(0|(r=e[s+84>>2]))>0&&(t=(0|O(t,r))/100|0),r=(0|t)>=359?359:t,r=(0|(t=(0|t)>=450?450:t))>399?6:(0|t)>379?7:d[((0|r)<=80?80:r)+101856|0],1&A&&(e[32526]=(0|O(r,e[s+72>>2]))/256,e[32527]=(0|O(r,e[s+76>>2]))/256,e[32528]=(0|O(r,e[s+80>>2]))/256,r>>>0>7||(i=r-1|0,e[32528]=i,e[32526]=r,e[32527]=i)),2&A){A=e[s+72>>2];e:{A:{r:{a:{n:{o:{c:{u:{if((0|t)>=351)s=t-350|0,e[36432]=85-(((255&s)>>>0)/3|0)&255,s=60-(s>>>3|0)|0;else{if((0|t)<251)break u;s=t-250|0,e[36432]=110-(s>>>2|0),s=110-(s>>>1|0)|0}if(e[36433]=s,A=(0|O(A,r))/256|0,e[36431]=110+((0|O(A,150))/128|0),t>>>0<=349)break c;if(r=t-350|0,e[36431]=d[r+102224|0],t>>>0<390)break n;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|O(A,r))/256|0,e[36431]=(0|t)>=170?110+((0|O(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 a;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=d[r+102336|0]}e[36428]=A}e[36429]=(0|A)<=16?16:A}}function Mr(A,t,r){var s,i,l,c;s=.000244140625*+e[50767],T[r>>3]=s,T[r+40>>3]=.015625*+e[A+112>>2],T[r+48>>3]=.015625*+e[A+276>>2],T[r+56>>3]=.00390625*+(0|O(k[A+166>>1],k[t+4>>1]))+ +k[A+220>>1],T[r+64>>3]=.00390625*+(0|O(k[A+168>>1],k[t+6>>1]))+ +k[A+222>>1],T[r+72>>3]=.00390625*+(0|O(k[A+170>>1],k[t+8>>1]))+ +k[A+224>>1],T[r+80>>3]=.00390625*+(0|O(k[A+172>>1],k[t+10>>1]))+ +k[A+226>>1],T[r+88>>3]=.00390625*+(0|O(k[A+174>>1],k[t+12>>1]))+ +k[A+228>>1],i=k[A+230>>1],l=k[A+176>>1],c=k[t+14>>1],e[r+112>>2]=0,e[r+116>>2]=1080623104,e[r+104>>2]=0,e[r+108>>2]=1081032704,T[r+96>>3]=.00390625*+(0|O(l,c))+ +(0|i),d[t+40|0]?(e[r+184>>2]=0,e[r+188>>2]=1072693248,T[r+104>>3]=d[t+40|0]<<1):(e[r+184>>2]=0,e[r+188>>2]=0),T[r+120>>3]=.00390625*+k[A+202>>1]*+(d[t+35|0]<<1),T[r+128>>3]=.00390625*+k[A+204>>1]*+(d[t+36|0]<<1),T[r+136>>3]=.00390625*+k[A+206>>1]*+(d[t+37|0]<<1),t=d[t+38|0],A=k[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,T[r+144>>3]=.00390625*+(0|A)*+(t<<1),A=e[50779],T[r+368>>3]=s,T[r+360>>3]=+(0|A)/100*3}function vr(A){var t=0;Ue(A,yr(A));e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{if((0|(A=-1048576&fe))<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 i;if(!0&(0|A)==134217728)break a;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 n;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 i;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 ws(A,t,r,s,i,l){var c,g,p=0,I=0,h=0,M=0;if(g=8388607&A,I=e[34456],p=d[0|(A=g+I|0)]|d[A+1|0]<<8){c=!(h=d[A+2|0]),A=e[36434]<0?(0|O(r,i))/256|0:r,r=(0|O(i,e[36431]))/256|0,r=(0|A)<(0|(r=(4&s)>>>2|0&&(0|r)>(0|i)?i:r))?r:A,h||(p=p>>>1|0,r=(0|r)/2|0);e:if(!((0|l)<0)){if(s=g+4|0,256&t)A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=7,e[t+8>>2]=s+I,e[t+4>>2]=p<<16|r,l=h|l<<8;else{if(A=e[50758],e[36439]=A,e[(A=216192+(A<<4)|0)>>2]=6,l=h|l<<8,e[A+12>>2]=l,e[A+8>>2]=s+I,I=A,A=O(t=p>>>2|0,3),i=(0|r)>(0|p),e[I+4>>2]=i?A:r,I=e[50758]+1|0,e[50758]=(0|I)<=169?I:0,(0|A)<(0|(r=i?r-A|0:0)))for(i=t<<1,h=s+(h?t:i)|0;t=e[50758],e[36439]=t,e[(t=216192+(t<<4)|0)>>2]=6,e[t+4>>2]=i,e[t+12>>2]=l,e[t+8>>2]=h+e[34456],t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0,(0|A)<(0|(r=r-i|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]+(s+(p-r<>2]=l,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}}}function qA(A,t,r){var s,i=0,l=0;if(r>>>0>=512)return iA(0|A,0|t,0|r),A;s=A+r|0;e:if(3&(A^t))if(s>>>0<4)r=A;else if((i=s-4|0)>>>0>>0)r=A;else for(r=A;f[0|r]=d[0|t],f[r+1|0]=d[t+1|0],f[r+2|0]=d[t+2|0],f[r+3|0]=d[t+3|0],t=t+4|0,i>>>0>=(r=r+4|0)>>>0;);else{A:if(3&A)if(r)for(r=A;;){if(f[0|r]=d[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(!((i=-4&s)>>>0<64||(l=i+-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>=i>>>0)break e;for(;e[r>>2]=e[t>>2],t=t+4|0,i>>>0>(r=r+4|0)>>>0;);}if(r>>>0>>0)for(;f[0|r]=d[0|t],t=t+1|0,(0|s)!=(0|(r=r+1|0)););return A}function xr(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0;S(+A),t=0|B(1),B(0);e:{if((s=(t=t>>>20&2047)-969|0)>>>0<63)p=t;else{if((0|s)<0)return A+1;if(!(t>>>0<1033)){if(S(+A),s=0|B(1),r=0,!(0|B(0))&(0|s)==-1048576)break e;return t>>>0>=2047?A+1:(0|s)<0?(T[(t=V-16|0)+8>>3]=12882297539194267e-247,12882297539194267e-247*T[t+8>>3]):(T[(t=V-16|0)+8>>3]=3105036184601418e216,3105036184601418e216*T[t+8>>3])}}if(r=T[14409],l=(r=(A=(r=(i=T[14408]*A+r)-r)*T[14411]+(r*T[14410]+A))*A)*r*(A*T[14415]+T[14414]),r*=A*T[14413]+T[14412],S(+i),B(1),g=0|B(0),A=l+(r+(T[(s=g<<4&2032)+115376>>3]+A)),c=e[(s=s+115384|0)>>2],t=(g<<13)+(t=e[s+4>>2])|0,t=(s=(s=c)+(c=0)|0)>>>0>>0?t+1|0:t,!p)return-2147483648&g?(v(0,0|s),v(1,t+1071644672|0),(A=(i=(r=+F())*A)+r)<1&&(e[(t=V-16|0)+8>>2]=0,e[t+12>>2]=1048576,T[t+8>>3]=22250738585072014e-324*T[t+8>>3],A=(A=(l=A+1)+(i+(r-A)+(A+(1-l)))+-1)==0?0:A),A*=22250738585072014e-324):(v(0,0|s),v(1,t-1058013184|0),A=5486124068793689e288*((r=+F())*A+r)),A;v(0,0|s),v(1,0|t),r=(r=+F())*A+r}return r}function ms(A,t){var r,s=0,i=0,l=0,c=0;V=r=V-16|0;e:{if(Zs(84270,f[0|t])){if(i=2,Zs(t,43)||(i=d[0|t]!=114),i=Zs(t,120)?128|i:i,l=i=Zs(t,101)?524288|i:i,c=64|i,l=(0|(i=d[0|t]))==114?l:c,l=(0|i)==119?512|l:l,e[r>>2]=438,e[r+4>>2]=0,(A=0|ne(-100,0|A,32768|((0|i)==97?1024|l:l),0|r))>>>0>=4294963201&&(e[56798]=0-A,A=-1),(0|A)<0)break e;V=i=V-32|0;A:{r:{if(Zs(84270,f[0|t])){if(s=zA(1176))break r}else e[56798]=28;t=0;break A}Je(s,0,144),Zs(t,43)||(e[s>>2]=d[0|t]==114?8:4),d[0|t]==97?(1024&(t=0|_e(0|A,3,0))||(t|=1024,e[i+16>>2]=t,e[i+20>>2]=t>>31,_e(0|A,4,i+16|0)),t=128|e[s>>2],e[s>>2]=t):t=e[s>>2],e[s+80>>2]=-1,e[s+48>>2]=1024,e[s+60>>2]=A,e[s+44>>2]=s+152,8&t||(e[i>>2]=i+24,e[i+4>>2]=0,0|le(0|A,21523,0|i)||(e[s+80>>2]=10)),e[s+40>>2]=10,e[s+36>>2]=11,e[s+32>>2]=12,e[s+12>>2]=13,d[227205]||(e[s+76>>2]=-1),e[s+56>>2]=e[56816],(t=e[56816])&&(e[t+52>>2]=s),e[56816]=s,t=s}if(V=i+32|0,s=t)break e;Be(0|A)}else e[56798]=28;s=0}return V=r+16|0,s}function is(A,t,r){var s,i=0,l=0,c=0,g=0,p=0;if(c=A,V=s=V-208|0,e[s+8>>2]=1,e[s+12>>2]=0,g=t<<2){for(e[s+16>>2]=4,e[s+20>>2]=4,t=4,i=4,l=2;A=t,t=(i+4|0)+t|0,e[(s+16|0)+(l<<2)>>2]=t,l=l+1|0,i=A,t>>>0>>0;);if((A=(c+g|0)-4|0)>>>0<=c>>>0)l=0,t=1,A=0;else{for(l=1,t=1;3&~l?(te[(s+16|0)+((i=t-1|0)<<2)>>2]>=A-c>>>0?$t(c,r,s+8|0,t,0,s+16|0):on(c,r,t,s+16|0),(0|t)!=1?(ni(s+8|0,i),t=1):(ni(s+8|0,1),t=0)):(on(c,r,t,s+16|0),ii(s+8|0,2),t=t+2|0),l=1|(i=e[s+8>>2]),e[s+8>>2]=l,A>>>0>(c=c+4|0)>>>0;);l=i>>>0>1,A=e[s+12>>2]!=0}if($t(c,r,s+8|0,t,0,s+16|0),l|(0|t)!=1|A)for(;(0|t)<=1?(ii(i=s+8|0,A=dA(i)),l=e[s+8>>2],A=A+t|0):(ni(i=s+8|0,2),e[s+8>>2]=7^e[s+8>>2],ii(i,1),$t((p=c-4|0)-e[(g=s+16|0)+((A=t-2|0)<<2)>>2]|0,r,i,t-1|0,1,g),ni(i,1),l=1|e[s+8>>2],e[s+8>>2]=l,$t(p,r,i,A,1,g)),t=A,c=c-4|0,e[s+12>>2]|(0|t)!=1|(0|l)!=1;);}V=s+208|0}function uA(A,t,r,s){var i,l=0,c=0,g=0;V=i=V-32|0,g=l=2147483647&s,c=l-1006698496|0;e:if(0|(l=l-1140785152|0)>>>0>c>>>0){if(l=r<<4|t>>>28,r=s<<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|g)==2147418112?!(A|t):g>>>0<2147418112)?(l=0,c=2146435072,g>>>0>1140785151||(c=0,(g=g>>>16|0)>>>0<15249||(wt(i+16|0,A,t,r,l=65535&s|65536,g-15233|0),lr(i,A,t,r,l,15361-g|0),l=(t=e[i+8>>2])<<4,t=e[i+12>>2]<<4|t>>>28,r=e[i>>2],g=c=e[i+4>>2],l|=c>>>28,c=t,(0|(A=268435455&g))==134217728&!!(0|(t=r|!!(e[i+16>>2]|e[i+24>>2]|e[i+20>>2]|e[i+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=s<<4|r>>>28)|2146959360);return V=i+32|0,v(0,0|l),v(1,-2147483648&s|c),+F()}function mA(A){var t,r=0,s=0,i=0,l=0,c=0;if(S(+A),c=0|B(1),i=0|B(0),(0|(l=c>>>20&2047))==2047)return(A*=1)/A;if(!(s=i<<1)&(0|(r=c<<1|i>>>31))==2145386496|r>>>0<2145386496)return!s&(0|r)==2145386496?0*A:A;if(l)r=1048575&c|1048576;else{if(l=0,s=i<<12,(0|(r=c<<12|i>>>20))>0|(0|r)>=0)for(;l=l-1|0,r=r<<1|s>>>31,s<<=1,(0|r)>0|(0|r)>=0;);s=31&(r=1-l|0),(63&r)>>>0>=32?(r=i<>>32-s|c<1023){for(;;){if(!((0|(i=r+-1048576|0))<0||(r=i)|s))return 0*A;if(r=r<<1|s>>>31,s<<=1,!((0|(l=l-1|0))>1023))break}l=1023}if(!((0|(i=r+-1048576|0))<0||(r=i)|s))return 0*A;if((0|r)==1048575|r>>>0<1048575)for(;l=l-1|0,i=r>>>0<524288,r=r<<1|s>>>31,s<<=1,i;);return t=-2147483648&c,(0|l)>0?r=r+-1048576|l<<20:(i=1-l|0,c=r,l=s,s=31&i,(63&i)>>>0>=32?(r=0,s=c>>>s|0):(r=c>>>s|0,s=((1<>>s)),v(0,0|s),v(1,r|t),+F()}function QA(A,t,r,s,i){var l,c=0,g=0;V=l=V-160|0;e:{A:{r:{a:switch((c=d[t+10|0])-15|0){case 6:break r;case 0:break a;default:break A}f[0|A]=0;break e}e[l>>2]=O(d[r+7|0],44)+137856,lA(A,86002,l),A=kA(A)+A|0;break e}if(s){if(f[l+140|0]=0,r?Rt(0,0,r,l+8|0,0):ya(c,l+8|0),r=l+140|0,c=d[l+140|0]){if((0|c)==32){f[0|A]=0;break e}224&(c=c<<24>>24)||(i&&(e[i>>2]=c),r=l+141|0)}if(!((0|(i=kA(r)))<=0)){A=GA(A,r)+i|0,f[0|A]=0;break e}}i=0;A:if(!(!(r=255&(c=e[t>>2]))|(0|r)==47)){if(s){if((0|(g=255&c))==95)break A;r:{a:{if((0|g)==35){if(g=3,d[t+11|0]!=2)break a;break A}if((g=r-32|0)>>>0>95)break r}r=y[93952+(g<<1)>>1]}i=mr(r,A)}else f[0|A]=c,i=1;for(;;){if(!(r=255&(c>>=8))|(0|r)==47)break A;if(s){if((0|r)==35&d[t+11|0]==2)break A;if(r-48>>>0<10)continue;(g=r-32|0)>>>0<=95&&(r=y[93952+(g<<1)>>1]),i=mr(r,A+i|0)+i|0}else f[A+i|0]=c,i=i+1|0}}f[0|(A=A+i|0)]=0}return V=l+160|0,A}function jt(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)>=y[(A=r)+8>>1])break e}A=0}return A}function fa(A,t,r){var s,i=0,l=0,c=0,g=0;V=s=V-208|0,f[s+80|0]=0;e:{if((i=t-224|0)>>>0<=158)t=101072+(i<<1)|0;else{if((t=t-592|0)>>>0>88)break e;t=101392+(t<<1)|0}if(t=y[t>>1]){if(c=t<<16>>16,g=(i=63&t)>>>0>37?i+59|0:k[101584+(i<<1)>>1],i=t>>>6|0,(0|c)<0)i=59+(63&i)|0,t=t>>>12&7;else{if(!(l=31&i))break e;i=0,t=t>>>11&15}(l=FA(A,e[129920+(l<<3)>>2],s+112|0))&&Ka(A,g,s+176|0)&&(t&&4096&FA(A,e[129920+(t<<3)>>2],s+80|0)&&(r=kA(t=GA(r,s+80|0)),f[s+80|0]=0,r=t+r|0),i?(Ka(t=A,i,A=s+144|0),e[s+68>>2]=s+80,e[s- -64>>2]=A,e[s+60>>2]=6,e[s+52>>2]=23,e[s+56>>2]=s+176,e[s+48>>2]=s+112,lA(r,84101,s+48|0)):(0|c)<0?GA(r,s+176|0):1&e[A+144>>2]|4096&l?(e[s+36>>2]=23,e[s+40>>2]=6,e[s+44>>2]=s+176,e[s+32>>2]=s+112,lA(r,84430,s+32|0)):(e[s+16>>2]=23,e[s+8>>2]=23,e[s>>2]=4,e[s+12>>2]=s+112,e[s+4>>2]=s+176,lA(r,84802,s)))}}V=s+208|0}function $s(){it(),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 ga(A,t){var r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=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=(i=(1+(r-c>>2)|0)/2<<2)+c|0,(0|l)!=(0|c)&&(ye(r=r-(s=c-l|0)|0,l,s),l=e[A+8>>2]),e[A+4>>2]=r,e[A+8>>2]=i+l;else{if((s=(0|r)==(0|l)?1:r-l>>1)>>>0>=1073741824)break e;if(h=(p=hs(r=s<<2))+r|0,g=r=(s+3&-4)+p|0,(0|l)!=(0|c)){if(M=-4&(c=c-l|0),i=r,s=l,c=1+((I=c-4|0)>>>2|0)&7)for(g=0;e[i>>2]=e[s>>2],s=s+4|0,i=i+4|0,(0|c)!=(0|(g=g+1|0)););if(g=r+M|0,!(I>>>0<28))for(;e[i>>2]=e[s>>2],e[i+4>>2]=e[s+4>>2],e[i+8>>2]=e[s+8>>2],e[i+12>>2]=e[s+12>>2],e[i+16>>2]=e[s+16>>2],e[i+20>>2]=e[s+20>>2],e[i+24>>2]=e[s+24>>2],e[i+28>>2]=e[s+28>>2],s=s+32|0,(0|g)!=(0|(i=i+32|0)););}e[A+12>>2]=h,e[A+8>>2]=g,e[A+4>>2]=r,e[A>>2]=p,l&&(Me(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)}Si(),L()}function Ys(A,t,r){var s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if(t){if(!r)break l;break u}return We=(t=A)-O(A=(A>>>0)/(r>>>0)|0,r)|0,rA=0,fe=0,A}if(!A)break c;break o}if(!((s=r-1|0)&r))break n;l=0-(c=(Ce(r)+33|0)-Ce(t)|0)|0;break r}return We=0,rA=t-O(A=(t>>>0)/0|0,0)|0,fe=0,A}if((s=32-Ce(t)|0)>>>0<31)break a;break A}if(We=A&s,rA=0,(0|r)==1)break e;return r=31&(s=di(r)),(63&s)>>>0>=32?A=t>>>r|0:(i=t>>>r|0,A=((1<>>r),fe=i,A}c=s+1|0,l=63-s|0}if(s=31&(i=63&c),i>>>0>=32?(i=0,g=t>>>s|0):(i=t>>>s|0,g=((1<>>s),s=31&(l&=63),l>>>0>=32?(t=A<>>32-s|t<>>31,g=(i=g<<1|t>>>31)-(I=r&(l=h-(p+(i>>>0>s>>>0)|0)>>31))|0,i=p-(i>>>0>>0)|0,t=t<<1|A>>>31,A=M|A<<1,M=p=1&l,c=c-1|0;);return We=g,rA=i,fe=t<<1|A>>>31,p|A<<1}We=A,rA=t,A=0,t=0}return fe=t,A}function ja(A,t){var r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0;e:{if((0|(r=e[A+8>>2]))==e[A+12>>2])if((s=e[A+4>>2])>>>0>(c=e[A>>2])>>>0)i=ye((l=(1+(s-c>>2)|0)/-2<<2)+s|0,s,r=r-s|0)+r|0,e[A+8>>2]=i,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(h=(g=hs(i=l<<2))+i|0,i=l=(-4&l)+g|0,(0|r)!=(0|s)){if(M=-4&(r=r-s|0),I=1+((p=r-4|0)>>>2|0)&7)for(i=0,r=l;e[r>>2]=e[s>>2],s=s+4|0,r=r+4|0,(0|I)!=(0|(i=i+1|0)););else r=l;if(i=l+M|0,!(p>>>0<28))for(;e[r>>2]=e[s>>2],e[r+4>>2]=e[s+4>>2],e[r+8>>2]=e[s+8>>2],e[r+12>>2]=e[s+12>>2],e[r+16>>2]=e[s+16>>2],e[r+20>>2]=e[s+20>>2],e[r+24>>2]=e[s+24>>2],e[r+28>>2]=e[s+28>>2],s=s+32|0,(0|i)!=(0|(r=r+32|0)););}e[A+12>>2]=h,e[A+8>>2]=i,e[A+4>>2]=l,e[A>>2]=g,c&&(Me(c),i=e[A+8>>2])}else i=r;return e[i>>2]=e[t>>2],void(e[A+8>>2]=e[A+8>>2]+4)}Si(),L()}function pa(A,t){var r,s=0,i=0,l=0,c=0,g=0;i=189088,V=r=V-320|0,e[r+312>>2]=0,l=Is(A,c=GA(r+112|0,189088),r,r+316|0,r+312|0,0),s=e[r+316>>2];e:if((0|t)<=3){if((0|s)<2)break e;if(l=3&(t=s-1|0),A=1,s-2>>>0>=3)for(g=-4&t,t=0;f[0|(s=A+r|0)]>=4&&(f[0|s]=3),f[(s=A+r|0)+1|0]>=4&&(f[s+1|0]=3),f[s+2|0]>=4&&(f[s+2|0]=3),f[s+3|0]>=4&&(f[s+3|0]=3),A=A+4|0,(0|g)!=(0|(t=t+4|0)););if(!l)break e;for(t=0;f[0|(s=A+r|0)]>=4&&(f[0|s]=3),A=A+1|0,(0|l)!=(0|(t=t+1|0)););}else if(A=1,!((0|s)<=1)){for(;;){if((0|l)>f[0|(g=A+r|0)]){if((0|s)!=(0|(A=A+1|0)))continue;break e}break}f[0|g]=t}if(A=d[0|c])for(t=1;s=e[144464+((255&A)<<2)>>2],d[s+11|0]!=2|16&d[s+6|0]||(l=255&(s=f[t+r|0]),(0|s)<2&&l||(f[0|i]=d[l+94151|0],i=i+1|0,A=d[0|c]),t=t+1|0),f[0|i]=A,i=i+1|0,A=d[0|(c=c+1|0)];);f[0|i]=0,V=r+320|0}function en(A){var t=0,r=0,s=0,i=0,l=0,c=0;r=t=e[(A|=0)>>2],e[A>>2]=t+1;e:{A:{r:{a:{n:{o:{c:switch(((l=d[0|t])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break n;case 6:break o;case 4:case 5:break c;default:break e}if((s=t+2|0)>>>0>=(i=e[A+4>>2])>>>0)break a;if(e[A>>2]=s,(192&(r=d[r+1|0]))!=128)break r;return 63&r|l<<6&1984}if((s=t+3|0)>>>0>=(i=e[A+4>>2])>>>0)break a;if(r=t+2|0,e[A>>2]=r,(192&(t=d[t+1|0]))!=128){s=r;break r}if(e[A>>2]=s,(192&(r=d[0|r]))!=128)break r;return 63&r|(63&t|l<<6&960)<<6}if(!((i=e[A+4>>2])>>>0<=(r=t+4|0)>>>0)){if(s=t+2|0,e[A>>2]=s,(192&(i=d[t+1|0]))!=128||(s=t+3|0,e[A>>2]=s,(192&(c=d[t+2|0]))!=128)||(e[A>>2]=r,t=d[0|s],s=r,(192&t)!=128))break r;return 0|((A=63&t|c<<6&4032|(63&i|l<<6&960)<<12)>>>0>=1114112?65533:A)}}e[A>>2]=i;break A}e[A>>2]=s-1}l=65533}return 0|l}function Se(A,t,r,s){var i,l,c=0,g=0,p=0,I=0,h=0,M=0;if(V=i=V-432|0,!(!s|!(536870912&(l=DA(A,t,r,s))))&&(k[i+48>>1]=8192,s=GA(i+48|2,s),d[0|s])){for(p=i+224|0,c=1,I=200;;){if(WA(i+44|0,s),t=Gs(e[i+44>>2]),g=e[r>>2],t?(e[r>>2]=2|g,mr(Ts(e[i+44>>2]),s)):e[r>>2]=-3&g,M=e[33264],DA(A,s,r,0),1&c?(e[i+16>>2]=189088,g=Bs(p,I,84130,i+16|0)):(e[i+32>>2]=15,e[i+36>>2]=189088,g=Bs(p,I,84434,i+32|0)),c=(t=e[33264])+1|0,e[33264]=c,t>>>0<=2147483646){for(;;)if(t=s,s=s+1|0,(0|(h=f[0|t]))==32|h-9>>>0<5){for(;t=(s=t)+1|0,(0|(h=f[0|s]))==32|h-9>>>0<5;);if(c=c-1|0,e[33264]=c,!((0|c)>0))break}}if(p=p+g|0,e[33264]=M,!(d[0|s]&&(c=0,(0|(I=I-g|0))>1)))break}(i+224|0)!=(0|p)&&(e[i>>2]=i+224,Bs(189088,200,84130,i))}return V=i+432|0,l}function X(A,t,r,s,i,l,c,g){var p,I;p=e[32972],I=e[p+116>>2],k[A+8>>1]=y[A+8>>1]+l,l=32&g?0-l|0:l,k[A+10>>1]=l+y[A+10>>1],k[A+12>>1]=l+y[A+12>>1],s=(0|s)>(0|(l=((l=(0|O(t,I))/256|0)-(t=k[A+6>>1])|0)/2|0))?l:s,k[A+6>>1]=((0|r)<(0|s)?s:r)+t;e:{A:switch(i-1|0){case 0:t=(0|(t=235-(r=k[A+4>>1])|0))<=-100?-100:t,k[A+4>>1]=((0|t)>=-60?-60:t)+r;break e;case 1:t=(0|(t=(0|(t=235-(r=k[A+4>>1])|0))<=-300?-300:t))>=-150?-150:t,k[A+4>>1]=t+r,k[A+2>>1]=t+y[A+2>>1];break e;case 2:break A;default:break e}t=(0|(t=(0|(t=100-(r=k[A+4>>1])|0))<=-400?-400:t))>-300?-400:t,k[A+4>>1]=t+r,k[A+2>>1]=t+y[A+2>>1]}e[p+132>>2]||(f[A+20|0]=(O(d[A+20|0],c)>>>0)/100,f[A+21|0]=(O(d[A+21|0],c)>>>0)/100,f[A+22|0]=(O(d[A+22|0],c)>>>0)/100,f[A+23|0]=(O(d[A+23|0],c)>>>0)/100,f[A+24|0]=(O(d[A+24|0],c)>>>0)/100,f[A+25|0]=(O(d[A+25|0],c)>>>0)/100)}function de(A){var t,r=0,s=0,i=0,l=0;V=t=V-48|0;e:{if(A){d[0|A]||(A=ra(84285),d[0|A]&&A||(A=ra(121696),d[0|A]&&A||(A=ra(84614),d[0|A]&&A||(A=84891))));A:{for(;;){if(!(!(s=d[A+r|0])|(0|s)==47)){if(i=23,(0|(r=r+1|0))!=23)continue;break A}break}i=r}s=84891;A:{r:{if(r=d[0|A],(d[A+i|0]|(0|r)==46||(s=A,(0|r)==67))&&!d[s+1|0]||!Ar(s,84891)||!Ar(s,85136)){if(r=121652,d[s+1|0]==46)break r;A=0;break A}if(r=e[56851])for(;;){if(!Ar(s,r+8|0))break r;if(!(r=e[r+32>>2]))break}(A=zA(36))&&(r=e[30414],e[A>>2]=e[30413],e[A+4>>2]=r,qA(r=A+8|0,s,i),f[r+i|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 V=t+48|0,l}function Ie(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0;p=!!((t=e[A+112>>2])|(s=e[A+116>>2])),i=t,c=t=(l=e[A+4>>2])-(g=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|s)&r>>>0>=i>>>0|(0|t)>(0|s))&p)){if((0|(p=mn(A)))>=0)break e;l=e[A+4>>2],g=e[A+44>>2]}return e[A+112>>2]=-1,e[A+116>>2]=-1,e[A+104>>2]=l,s=(c=r)+(r=g-l|0)|0,t=(r>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=r>>>0>s>>>0?t+1|0:t,-1}return t=(s=r+1|0)?t:t+1|0,l=e[A+4>>2],g=e[A+8>>2],c=i=e[A+116>>2],i|(r=e[A+112>>2])&&(i=r-s|0,(0|(r=c-(t+(r>>>0>>0)|0)|0))>=(0|(c=(I=g-l|0)>>31))&i>>>0>=I>>>0|(0|r)>(0|c)||(g=i+l|0)),e[A+104>>2]=g,s=(i=(r=e[A+44>>2])-l|0)+s|0,t=(i>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=s>>>0>>0?t+1|0:t,r>>>0>=l>>>0&&(f[l-1|0]=p),p}function ye(A,t,r){var s=0,i=0;e:if((0|A)!=(0|t)){if(t-(i=A+r|0)>>>0<=0-(r<<1)>>>0)return qA(A,t,r);if(s=3&(A^t),A>>>0>>0){if(s)s=A;else{if(3&A)for(s=A;;){if(!r)break e;if(f[0|s]=d[0|t],t=t+1|0,r=r-1|0,!(3&(s=s+1|0)))break}else s=A;if(!(r>>>0<=3))for(;e[s>>2]=e[t>>2],t=t+4|0,s=s+4|0,(r=r-4|0)>>>0>3;);}if(r)for(;f[0|s]=d[0|t],s=s+1|0,t=t+1|0,r=r-1|0;);}else{if(!s){if(3&i)for(;;){if(!r)break e;if(f[0|(s=(r=r-1|0)+A|0)]=d[t+r|0],!(3&s))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(;f[(r=r-1|0)+A|0]=d[t+r|0],r;);}}return A}function je(A,t,r,s){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=k[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]=y[t>>1],void(e[A+4>>2]=0);case 8:return t=e[r>>2],e[r>>2]=t+4,t=f[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]=d[0|t],void(e[A+4>>2]=0);case 16:return t=e[r>>2]+7&-8,e[r>>2]=t+8,void(T[A>>3]=T[t>>3]);case 17:ZA[0|s](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 AA(A,t,r,s,i,l){var c;V=c=V-80|0;e:if((0|l)>=16384){if(wA(c+32|0,t,r,s,i,0,0,0,2147352576),s=e[c+40>>2],i=e[c+44>>2],t=e[c+32>>2],r=e[c+36>>2],l>>>0<32767){l=l-16383|0;break e}wA(c+16|0,t,r,s,i,0,0,0,2147352576),l=((0|l)>=49149?49149:l)-32766|0,s=e[c+24>>2],i=e[c+28>>2],t=e[c+16>>2],r=e[c+20>>2]}else(0|l)>-16383||(wA(c- -64|0,t,r,s,i,0,0,0,7471104),s=e[c+72>>2],i=e[c+76>>2],t=e[c+64>>2],r=e[c+68>>2],l>>>0>4294934644?l=l+16269|0:(wA(c+48|0,t,r,s,i,0,0,0,7471104),l=((0|l)<=-48920?-48920:l)+32538|0,s=e[c+56>>2],i=e[c+60>>2],t=e[c+48>>2],r=e[c+52>>2]));wA(c,t,r,s,i,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,V=c+80|0}function yA(A,t){var r,s,i=0;V=r=V+-64|0,i=e[A>>2],s=e[i-4>>2],i=e[i-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,f[r+55|0]=0,f[r+56|0]=0,f[r+57|0]=0,f[r+58|0]=0,f[r+59|0]=0,f[r+60|0]=0,f[r+61|0]=0,f[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+i|0,i=0;e:if(Xs(s,t,0))e[r+56>>2]=1,ZA[e[e[s>>2]+20>>2]](s,r+8|0,A,A,1,0),i=e[r+32>>2]==1?A:0;else{ZA[e[e[s>>2]+24>>2]](s,r+8|0,A,1,0);A:switch(e[r+44>>2]){case 0:i=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||(i=e[r+24>>2])}return V=r- -64|0,i}function MA(A,t,r,s,i){var l,c,g=0;V=l=V-80|0,k[l+72>>1]=0,e[l+64>>2]=0,e[l+68>>2]=0,f[0|s]=0,g=mr(t,c=2|(g=l- -64|0))+g|0,f[g+2|0]=32;e:if((0|r)!=-1)t>>>0>=33&&!ur(t)?(f[g+3|0]=(0|r)==32?32:31,f[l+65|0]=95,FA(A,l- -64|1,l+16|0)||(f[l+65|0]=32,FA(A,c,l+16|0)||Dr(A,c,l+16|0,40,0,268435456,0)),d[l+16|0]||fa(A,t,l+16|0),t=GA(s,l+16|0),!(r=d[0|t])|(0|r)==21||(e[l+56>>2]=0,e[l+60>>2]=0,Vt(A,t,l+56|0,-1,1&i))):(e[l>>2]=t,lA(t=l- -64|1,85485,l),FA(A,t,s));else{if(FA(A,c,s)||(f[l+65|0]=95,FA(A,l- -64|1,l+16|0)|e[A+212>>2]==25966))break e;Rn(85055),FA(e[47194],c,l+16|0)&&(f[0|s]=21,f[s+1|0]=0),ts(e[e[32972]+60>>2])}V=l+80|0}function Je(A,t,r){var s=0,i=0,l=0,c=0;if(r&&(f[0|A]=t,f[(s=A+r|0)-1|0]=t,!(r>>>0<3||(f[A+2|0]=t,f[A+1|0]=t,f[s-3|0]=t,f[s-2|0]=t,r>>>0<7||(f[A+3|0]=t,f[s-4|0]=t,r>>>0<9||(i=(s=0-A&3)+A|0,t=O(255&t,16843009),e[i>>2]=t,e[(r=(s=r-s&-4)+i|0)-4>>2]=t,s>>>0<9||(e[i+8>>2]=t,e[i+4>>2]=t,e[r-8>>2]=t,e[r-12>>2]=t,s>>>0<25||(e[i+24>>2]=t,e[i+20>>2]=t,e[i+16>>2]=t,e[i+12>>2]=t,e[r-16>>2]=t,e[r-20>>2]=t,e[r-24>>2]=t,e[r-28>>2]=t,(r=s-(c=4&i|24)|0)>>>0<32))))))))for(s=et(t,0,1,1),l=fe,t=i+c|0;e[t+24>>2]=s,e[t+28>>2]=l,e[t+16>>2]=s,e[t+20>>2]=l,e[t+8>>2]=s,e[t+12>>2]=l,e[t>>2]=s,e[t+4>>2]=l,t=t+32|0,(r=r-32|0)>>>0>31;);return A}function bA(){var A,t=0,r=0,s=0,i=0,l=0;if(V=A=V-208|0,(0|(s=e[50303]))>0)for(;(i=e[(r=201216+(t<<2)|0)>>2])&&(Me(i),e[r>>2]=0),(0|s)!=(0|(t=t+1|0)););if(e[50303]=0,e[A+16>>2]=137584,e[A+20>>2]=47,lA(t=A+32|0,87827,A+16|0),Gt(t,kA(t)+1|0,0),e[A+4>>2]=47,e[A>>2]=137584,lA(t,87933,A),Gt(t,kA(t)+1|0,1),t=e[50303],e[(r=t<<2)+201216>>2]=0,r=Dt(s=e[50741],r+4|0)){if(e[50741]=r,is(201216,t,7),s=e[50741],r=0,t=e[50304])for(i=0;l=e[t+4>>2],d[0|l]&&Ar(l+1|0,86589)&&Hr(e[t+8>>2],88032,3)&&(e[(r<<2)+s>>2]=t,r=r+1|0),t=e[201216+((i=i+1|0)<<2)>>2];);e[(r<<2)+s>>2]=0}return V=A+208|0,s}function ct(A,t,r){var s=0,i=0,l=0,c=0;if(l=t-1|0,(0|t)>=2){t=A;e:{for(;;){A:{r:{if((0|(s=e[r+4>>2]))!=(0|(i=e[r+8>>2]))){if((c=Ma(s,10,i-s|0))?i=1+(c-(s=e[r+4>>2])|0)|0:(s=e[r+4>>2],i=e[r+8>>2]-s|0),qA(t,s,s=i>>>0>>0?i:l),i=s+e[r+4>>2]|0,e[r+4>>2]=i,t=t+s|0,c||!(l=l-s|0))break A;if((0|i)!=e[r+8>>2]){e[r+4>>2]=i+1,s=d[0|i];break r}}if(!((0|(s=mn(r)))>=0)){if(s=0,(0|A)==(0|t))break e;if(16&d[0|r])break A;break e}}if(f[0|t]=s,t=t+1|0,(255&s)!=10&&(l=l-1|0))continue}break}A?(f[0|t]=0,s=A):s=0}}else if(t=e[r+72>>2],e[r+72>>2]=t-1|t,!l)return f[0|A]=0,A;return s}function nt(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0;if(t=O(A,44),(0|(A=e[t+137896>>2]))>0&&nt(A-1|0),A=e[36115],!((0|(t=e[(r=t+137856|0)+36>>2]))<=0)){if(i=e[r+32>>2],g=1&t,(0|t)!=1)for(p=-2&t,r=0;t=d[(l=(s=r<<4)+i|0)+10|0],e[144464+(t<<2)>>2]=l,(0|A)>=(0|t)?t=A:Je(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=d[(s=(16|s)+i|0)+10|0],e[144464+(A<<2)>>2]=s,(0|A)<=(0|t)?A=t:Je(144464+((t=t+1|0)<<2)|0,0,A-t<<2),r=r+2|0,(0|p)!=(0|(c=c+2|0)););else r=0;g&&(t=d[(r=(r<<4)+i|0)+10|0],e[144464+(t<<2)>>2]=r,(0|A)>=(0|t)||(Je(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=t))}e[36115]=A}function cr(A,t,r,s,i){var l,c=0,g=0,p=0;V=l=V-16|0;e:if(1&f[A+106|0]&&(c=d[0|r],!(!(1&f[s+2|0])&(0|c)!=46||256&(p=e[s+12>>2])|!(!(2&p)||i)||(WA(l+12|0,(0|c)!=46?r:r+2|0),!(c=d[0|r])|!d[r+1|0])))){if(!(!(p=e[l+12>>2])|2&d[s+2|0])){if(!yt(p))break e;c=d[0|r]}(0|c)==46&&(f[0|r]=32),g=2,e[A+212>>2]!=26741|i||(r=yt(e[l+12>>2])?Se(A,r+2|0,0,0):0,128&d[A+8233|0]&&(!(!(i=e[l+12>>2])|2&d[s+2|0])&i-48>>>0>=10||(g=0)),g=32768&r?0:g,131072&r&&(g=163840&e[A+8232>>2]?34:d[t-2|0]!=45?g:0))}return V=l+16|0,g}function Lr(A,t,r,s,i){var l,c=0,g=0;if(V=l=V-208|0,e[l+204>>2]=r,Je(r=l+160|0,0,40),e[l+200>>2]=e[l+204>>2],(0|da(0,t,l+200|0,l+80|0,r,s,i))<0)i=-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,g=e[A+44>>2],e[A+44>>2]=l;if(r=-1,Za(A))break e}r=da(A,t,l+200|0,l+80|0,l+160|0,s,i)}g&&(ZA[e[A+36>>2]](A,0,0),e[A+48>>2]=0,e[A+44>>2]=g,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,i=32&A?-1:r}return V=l+208|0,i}function qt(A,t,r,s){var i,l=0,c=0,g=0,p=0,I=0,h=0,M=0;if(V=i=V-208|0,c=d[0|t])for(;f[l+i|0]=c,p=((255&c)==6&(0|g)!=21)+p|0,g=c<<24>>24,c=d[(l=l+1|0)+t|0];);if(f[l+i|0]=0,l=d[0|i])for(h=p-2|0,g=0,M=(0|s)<2,c=0;;){e:{A:if((255&l)!=6|M|(0|c)==21){if((0|(s=255&l))==255){if(!I|(0|r)<2)break e;s=r>>>0>2?11:(0|g)%3|0?23:11}c=s,s=g}else{if(l=g+1|0,d[A+169|0]){c=(0|l)>1?5:6,s=l;break A}if(c=6,s=p,(0|l)==(0|p))break A;c=(0|l)%3|0||(0|g)==(0|h)?5:6,s=l}g=s,f[0|t]=c,t=t+1|0}if(!(l=d[(I=I+1|0)+i|0]))break}(0|r)>=2&&(f[0|t]=11,t=t+1|0),f[0|t]=0,V=i+208|0}function Qt(A,t){var r=0;r=0,A&&(r=e[50754],r=(A=(A=(0|O(e[145712+(t?12:((0|A)>199)<<2)>>2],A))/256|0)>>>0>(t=e[36430])>>>0?A:t)>>>0<=89999?(O(A,r)>>>0)/1e3|0:(O(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],xs(),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 Tt(A,t,r,s,i,l,c,g){var p,I=0,h=0,M=0;I=1,p=h=2147483647&s;e:if(!((M=(0|h)==2147418112)&!r?A|t:M&!!(0|r)|h>>>0>2147418112)&&!((M=(0|(h=2147483647&g))==2147418112)&!c?i|l:M&!!(0|c)|h>>>0>2147418112)){if(!(A|i|r|c|t|l|h|p))return 0;if((0|(I=s&g))>0|(0|I)>=0){if(I=-1,(0|r)==(0|c)&(0|s)==(0|g)?(0|t)==(0|l)&A>>>0>>0|t>>>0>>0:r>>>0>>0&(0|s)<=(0|g)|(0|s)<(0|g))break e;return!!(A^i|r^c|t^l|s^g)}I=-1,((0|r)==(0|c)&(0|s)==(0|g)?(0|t)==(0|l)&A>>>0>i>>>0|t>>>0>l>>>0:r>>>0>c>>>0&(0|s)>=(0|g)|(0|s)>(0|g))||(I=!!(A^i|r^c|t^l|s^g))}return I}function Gr(A,t){var r=0,s=0,i=0,l=0;for(r=d[85836]|d[85837]<<8,f[0|t]=r,f[t+1|0]=r>>>8,f[t+2|0]=d[85838];;)if(i=d[0|A],A=r=A+1|0,(0|i)!=255){if(!i)break;if(!(s=e[144464+(i<<2)>>2]))continue;if(d[s+11|0]==1&&(l=d[s+14|0],!(y[s+8>>1]|l>>>0>4))){if(l>>>0<2)continue;f[0|t]=d[l+93943|0],t=t+1|0;continue}if(255&(A=e[s>>2]))for(;f[0|t]=A,t=t+1|0,s=65280&A,A=A>>>8|0,s;);if(A=r,(0|i)!=21||(32|(r=f[0|A]))-97>>>0>=26)continue;for(;f[0|t]=r,t=t+1|0,(32|(r=f[0|(A=A+1|0)]))-97>>>0<26;);}f[0|t]=0}function ks(A,t){var r,s,i=0,l=0,c=0;V=r=V-112|0,A||(e[50303]||bA(),A=201216),St(i=r+16|0,t,40),e[r>>2]=47,e[r+4>>2]=i,lA(t=r- -64|0,87599,r),s=kA(t),c=-1;e:{A:{r:{if(l=e[A>>2]){t=0,i=-1;a:{for(;;){if(Fn(r+16|0,e[l>>2])){if(Fn(r+16|0,l=e[l+8>>2])?c=Fn(r- -64|0,l+(kA(l)-s|0)|0)?c:t:i=t,l=e[((t=t+1|0)<<2)+A>>2])continue;break a}break}if((0|t)>=0)break A;t=(0|i)<0?c:i;break r}if((0|(t=i))>=0)break r}t=c}if(i=0,(0|t)<0)break e}i=e[(t<<2)+A>>2]}return V=r+112|0,i}function ir(A,t){var r,s,i=0,l=0,c=0,g=0,p=0;V=r=V-16|0,S(+t),s=0|B(1),l=0|B(0),(0|(c=(i=2147483647&s)+-1048576|0))==2145386495|c>>>0<2145386495?(g=l<<28,c=i>>>4|0,i=(15&i)<<28|l>>>4,l=c+1006632960|0):(0|i)==2146435072|i>>>0>2146435072?(g=l<<28,i=(15&s)<<28|l>>>4,l=s>>>4|2147418112):i|l?(wt(r,l,c=i,0,0,(i=i?Ce(i):Ce(l)+32|0)+49|0),p=e[r>>2],g=e[r+4>>2],c=15372-i<<16,i=e[r+8>>2],l=c|65536^e[r+12>>2]):(i=0,l=0),e[A>>2]=p,e[A+4>>2]=g,e[A+8>>2]=i,e[A+12>>2]=-2147483648&s|l,V=r+16|0}function Es(A,t,r){var s=0,i=0;e:{A:{r:{if(!(3&((i=A)^t))){s=!!(0|r);a:if(!(!(3&t)|!r))for(;;){if(s=d[0|t],f[0|i]=s,!s)break e;if(i=i+1|0,s=!!(0|(r=r-1|0)),!(3&(t=t+1|0)))break a;if(!r)break}if(!s)break A;if(!d[0|t])break e;if(!(r>>>0<4))for(;;){if(~(s=e[t>>2])&s-16843009&-2139062144)break r;if(e[i>>2]=s,i=i+4|0,t=t+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break A}for(;;){if(s=d[0|t],f[0|i]=s,!s)break e;if(i=i+1|0,t=t+1|0,!(r=r-1|0))break}}r=0}return Je(i,0,r),A}function $t(A,t,r,s,i,l){var c,g=0,p=0,I=0;V=c=V-240|0,g=e[r>>2],e[c+232>>2]=g,r=e[r+4>>2],e[c>>2]=A,e[c+236>>2]=r,I=1;e:{A:{r:{if(r|(0|g)!=1){for(g=A;;){if((0|qa(r=g-e[(p=(s<<2)+l|0)>>2]|0,A,t))<=0){r=g;break r}a:{if(!((0|s)<2|i)&&(i=e[p-8>>2],(0|qa(p=g-4|0,r,t))>=0||(0|qa(p-i|0,r,t))>=0))break a;if(e[(I<<2)+c>>2]=r,ii(g=c+232|0,i=dA(g)),I=I+1|0,s=s+i|0,i=0,g=r,e[c+236>>2]|e[c+232>>2]!=1)continue;break A}break}r=g;break A}r=A}if(i)break e}ti(c,I),on(r,t,s,l)}V=c+240|0}function or(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,ns(3);break A;case 1:e[50787]=t,e[33037]=(0|O(d[e[50797]+105596|0],(0|O(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 Bt(A,t){var r=0,s=0,i=0;e:if(e[A>>2])for(;;){if(ur(e[A-4>>2])){if(s=0,(0|(r=f[0|t]))==e[A>>2])for(;(0|(r=f[(s=s+1|0)+t|0]))==e[(A=A+4|0)>>2];);if(!r){for(;t=A,A=A+4|0,ur(e[t>>2]););for(i=t+((e[t>>2]==61)<<2)|0;i=(A=i)+4|0,ur(e[A>>2]););A:switch((t=e[A>>2])-34|0){case 0:case 5:break e;default:break A}return ur(t)||e[A>>2]==47?102808:A}}if(!e[(A=A+4|0)>>2])break}return i}function er(A,t,r,s){var i,l,c=0,g=0,p=0;return!d[A+25|0]|T[A+8>>3]!=r|T[A+16>>3]!=s?(T[A+16>>3]=s,T[A+8>>3]=r,s=(c=xr(-3.141592653589793/(g=+e[A>>2])*s))*-c,T[A+48>>3]=s,c*=os(-6.283185307179586/g*r),c+=c,T[A+40>>3]=c,g=1-c-s,T[A+32>>3]=g,!(p=d[A+24|0])|r==0||(g=1/g,T[A+32>>3]=g,s*=r=-g,T[A+48>>3]=s,c*=r,T[A+40>>3]=c,p=1)):(p=d[A+24|0],s=T[A+48>>3],c=T[A+40>>3],g=T[A+32>>3]),f[A+25|0]=1,r=T[A+64>>3],i=T[A+56>>3],T[A+64>>3]=i,l=t,t=s*r+(g*t+c*i),T[A+56>>3]=p?l:t,t}function Vs(A,t,r,s,i){var l=0,c=0,g=0,p=0,I=0;if((g=e[34388])&&!((0|(c=e[34436]))>=(e[34393]-2|0))){if(e[34436]=c+1,l=O(c,36)+g|0,e[l>>2]=A,e[l+4>>2]=e[34437],I=e[34438],e[l+12>>2]=t>>>24,e[l+8>>2]=16777215&t,e[l+24>>2]=I,t=e[50754],i=e[34439]+((i-e[34392]|0)/2|0)|0,e[l+20>>2]=i,t=ee(p=1e3*+(0|i)/+(0|t))<2147483648?~~p:-2147483648,e[l+16>>2]=t,A-3>>>0<=1)return void(e[28+(O(c,36)+g|0)>>2]=e[33282]+r);t=28+(O(c,36)+g|0)|0,e[t>>2]=r,(0|A)==7&&(e[t+4>>2]=s)}}function lr(A,t,r,s,i,l){var c=0,g=0,p=0,I=0;64&l?(t=31&(r=l+-64|0),(63&r)>>>0>=32?(r=0,t=i>>>t|0):(r=i>>>t|0,t=((1<>>t),s=0,i=0):l&&(p=s,c=31&(g=64-l|0),(63&g)>>>0>=32?(g=p<>>32-c|i<>>0>=32?(c=0,t=r>>>t|0):(c=r>>>t|0,t=((1<>>t),t|=I,r=c|g,c=s,s=31&l,(63&l)>>>0>=32?(g=0,s=i>>>s|0):(g=i>>>s|0,s=((1<>>s),i=g),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=i}function Ms(A){var t=0,r=0;if(!A){if(e[33174]&&(t=Ms(e[33174])),e[33136]&&(t=Ms(e[33136])|t),A=e[56816])for(;e[A+20>>2]!=e[A+28>>2]&&(t=Ms(A)|t),A=e[A+56>>2];);return t}return e[A+76>>2]>=0,e[A+20>>2]==e[A+28>>2]||(ZA[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,ZA[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 Br(A,t){var r=0,s=0,i=0,l=0,c=0;if((192&(r=d[0|t]))==128)for(;(192&(r=d[0|(t=t-1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(i=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=d[s+93846|0]&r,(l=d[t+1|0])?(r=63&l|r<<6,(0|i)!=192&&((i=d[t+2|0])?(r=63&i|r<<6,c||((t=d[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function Kt(A,t,r,s){var i,l=0,c=0;return V=i=V-224|0,A?(e[i>>2]=137584,e[i+4>>2]=47,e[i+8>>2]=t,lA(t=i+16|0,85430,i),(0|(l=Ns(t)))<0?t=Ps(s,0-l|0,i+16|0):(t=ms(i+16|0,85659))?((c=e[A>>2])&&Me(c),l?(c=zA(l),e[A>>2]=c,c?(0|an(c,l,t))==(0|l)?(Ir(t),t=0,r&&(e[r>>2]=l)):(r=e[56798],Ir(t),Me(e[A>>2]),e[A>>2]=0,t=Ps(s,r,i+16|0)):(Ir(t),t=48)):(t=0,e[A>>2]=0)):t=Ps(s,e[56798],i+16|0)):t=28,V=i+224|0,t}function WA(A,t){var r=0,s=0,i=0,l=0,c=0;if((192&(r=d[0|t]))==128)for(;(192&(r=d[0|(t=t+1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(i=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=d[s+93846|0]&r,(l=d[t+1|0])?(r=63&l|r<<6,(0|i)!=192&&((i=d[t+2|0])?(r=63&i|r<<6,c||((t=d[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function wt(A,t,r,s,i,l){var c=0,g=0,p=0;64&l?(s=t,t=31&(i=l+-64|0),(63&i)>>>0>=32?(i=s<>>32-t|r<>>0>=32?(g=c<>>32-s|i<>>0>=32?(i=0,t=r>>>s|0):(i=r>>>s|0,t=((1<>>s),s=p|t,i|=g,t=31&l,(63&l)>>>0>=32?(g=c<>>32-t|r<>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=i}function yr(A){var t=0;return A>>>0<=55295?t=d[e[125552+(A>>>6&67108860)>>2]+(255&A)|0]:(t=4,A>>>0<57344||(A>>>0<63488?t=3:A>>>0<=195327?t=d[e[126416+(A-63488>>>6&67108860)>>2]+(255&A)|0]:(t=2,A>>>0<917504||(A>>>0<=918015?t=d[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 Ea(A,t){var r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0;if(!((0|(r=e[33709]))<=0)){if(i=(0|A)>31?A-32|0:A,A=0,r>>>0>=4)for(h=-4&r;g=2|A,p=1|A,s=e[134912+((c=3|A)<<6)>>2]==(0|i)?c:e[134912+(g<<6)>>2]==(0|i)?g:e[134912+(p<<6)>>2]==(0|i)?p:e[134912+(A<<6)>>2]==(0|i)?A:s,A=A+4|0,(0|h)!=(0|(l=l+4|0)););if(l=3&r)for(;s=e[134912+(A<<6)>>2]==(0|i)?A:s,A=A+1|0,(0|l)!=(0|(I=I+1|0)););(0|s)<=0||(e[33709]=s,r=s)}ps(t,r)}function An(A){var t,r=0,s=0,i=0;for(V=t=V-96|0,St(t,A,60),tn(t,1);i=Ts(f[0|(s=t+r|0)]),f[0|s]=i,r=r+1|0,255&i;);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(at(t,1)){if(d[202976])break r;break A}if(e[50303]||bA(),r=268437247,!(A=ks(201216,t))||!at(e[A+8>>2],0))break e;if(!d[202976])break A}at(202976,2)}Rr(e[32972]),e[t+76>>2]=e[32972]+40,sn(t+72|0,202976),r=0}return V=t+96|0,r}function ma(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){f[A+1|0]=63&t|128,f[0|A]=t>>>6|192,A=2;break e}if(!((-8192&t)!=57344&t>>>0>=55296)){f[A+2|0]=63&t|128,f[0|A]=t>>>12|224,f[A+1|0]=t>>>6&63|128,A=3;break e}if(t-65536>>>0<=1048575){f[A+3|0]=63&t|128,f[0|A]=t>>>18|240,f[A+2|0]=t>>>6&63|128,f[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}f[0|A]=t,A=1}return A}function $n(A){var t=0,r=0,s=0,i=0;if(e[A+20>>2]=0,(s=(r=e[A+8>>2])-(t=e[A+4>>2])|0)>>>0>=9)for(;Me(e[t>>2]),t=e[A+4>>2]+4|0,e[A+4>>2]=t,(s=(r=e[A+8>>2])-t|0)>>>0>8;);i=512;e:switch((s>>>2|0)-1|0){case 1:i=1024;case 0:e[A+16>>2]=i;break;default:break e}if((0|t)!=(0|r)){for(;Me(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])&&Me(A)}function Ma(A,t,r){var s=0,i=0;s=!!(0|r);e:{A:{r:if(!(!(3&A)|!r))for(i=255&t;;){if((0|i)==d[0|A])break A;if(s=!!(0|(r=r-1|0)),!(3&(A=A+1|0)))break r;if(!r)break}if(!s)break e;if(!(d[0|A]==(255&t)|r>>>0<4))for(s=O(255&t,16843009);;){if(~(i=s^e[A>>2])&i-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)==d[0|A])return A;if(A=A+1|0,!(r=r-1|0))break}}return 0}function Dn(A,t){var r=0,s=0;e:{if(s=255&t){if(3&A)for(;;){if(!(r=d[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(s=O(s,16843009);;){if(~(r^=s)&r-16843009&-2139062144)break A;if(r=e[A+4>>2],A=A+4|0,r-16843009&~r&-2139062144)break}for(;(s=d[0|(r=A)])&&(A=r+1|0,(0|s)!=(255&t)););return r}return kA(A)+A|0}return A}function ei(A,t,r,s,i){var l,c=0,g=0;g=-1;e:if(!(((c=(0|(l=2147483647&s))==2147418112)&!r?A|t:c&!!(0|r)|l>>>0>2147418112)||(c=2147483647&i)>>>0>2147418112&(0|c)!=2147418112)){if(!(A|r|c|l|t))return 0;if((0|(c=s&i))>0|(0|c)>=0){if((!!(0|r)|(0|s)!=(0|i))&(0|s)<(0|i))break e;return!!(A|r|s^i|t)}(!r&(0|s)==(0|i)?A|t:!!(0|r)&(0|s)>=(0|i)|(0|s)>(0|i))||(g=!!(A|r|s^i|t))}return g}function tn(A,t){var r,s=0;V=r=V+-64|0,f[202976]=0,e[r+48>>2]=47,lA(r+59|0,91351,r+48|0),t||(f[r+59|0]=0);e:{A:{if(A&&(A=Zs(A,43))){if(f[0|A]=0,f[0|(A=A+1|0)]-48>>>0>=10)break A;s=ta(A)}if((0|s)<=0)break e;if(s>>>0<=9){e[r+4>>2]=s,e[r>>2]=r+59,lA(202976,91378,r);break e}e[r+20>>2]=s-10,e[r+16>>2]=r+59,lA(202976,91503,r+16|0);break e}e[r+36>>2]=A,e[r+32>>2]=r+59,lA(202976,85425,r+32|0)}V=r- -64|0}function Hs(A){var t,r=0,s=0,i=0;V=t=V-80|0,r=Ut(A,t+12|0),e[t+12>>2]?(St(s=t+16|0,r,60),r=0,tn(s,1),!at(s,0)|!d[202976]||at(202976,2),Rr(e[32972]),sn(A,86012)):r=268437247,V=t+80|0;e:{A:{r:{a:{if((0|r)<=268437502){if(!r)break e;if((0|r)==268436479)break A;if((0|r)!=268437247)break a;return 2}if((0|r)==268437503|(0|r)==268437759)break r;if((0|r)==268439295)break e}return-1}return 2}i=1}return i}function Qr(A,t,r,s,i,l,c,g,p){var I,h,M;p=et(t,r,g,p),g=fe,i=et(s,i,l,c),s=fe+g|0,g=i>>>0>(p=i+p|0)>>>0?s+1|0:s,I=c,h=r,c=(r=et(c,i=0,r,s=0))+p|0,p=fe+g|0,M=c,r=r>>>0>c>>>0?p+1|0:p,c=et(l,0,t,0),g=fe,s=et(l,p=0,h,s),l=fe+p|0,l=s>>>0>(g=g+s|0)>>>0?l+1|0:l,s=r,l=l>>>0>(p=l+M|0)>>>0?s+1|0:s,r=et(t,0,I,i)+g|0,i=fe,g=(i=r>>>0>>0?i+1|0:i)+p|0,p=l,e[A+8>>2]=g,e[A+12>>2]=i>>>0>g>>>0?p+1|0:p,e[A>>2]=c,e[A+4>>2]=r}function GA(A,t){var r=0,s=0;e:{if(3&((s=A)^t))r=d[0|t];else{if(3&t)for(;;){if(r=d[0|t],f[0|s]=r,!r)break e;if(s=s+1|0,!(3&(t=t+1|0)))break}if(!(~(r=e[t>>2])&r-16843009&-2139062144))for(;e[s>>2]=r,r=e[t+4>>2],s=s+4|0,t=t+4|0,!(r-16843009&~r&-2139062144););}if(f[0|s]=r,255&r)for(;r=d[t+1|0],f[s+1|0]=r,s=s+1|0,t=t+1|0,r;);}return A}function os(A){var t,r=0,s=0;V=t=V-16|0,S(+A),s=0|B(1),B(0);e:if((s&=2147483647)>>>0<=1072243195){if(r=1,s>>>0<1044816030)break e;r=Ba(A,0)}else if(r=A-A,!(s>>>0>=2146435072)){A:switch(3&ka(A,t)){case 0:r=Ba(T[t>>3],T[t+8>>3]);break e;case 1:r=-ha(T[t>>3],T[t+8>>3],1);break e;case 2:r=-Ba(T[t>>3],T[t+8>>3]);break e;default:break A}r=ha(T[t>>3],T[t+8>>3],1)}return V=t+16|0,A=r}function Tn(A,t,r,s){var i=0,l=0,c=0;if(!((kA(s)+kA(t)|0)>=(0|r))){for(c=e[36115],r=s;i=d[0|r];)if(r=r+1|0,!((0|i)>=(0|c))){e:{A:switch(i=e[144464+(i<<2)>>2],d[i+11|0]-1|0){case 1:break e;case 0:break A;default:continue}l=d[i+14|0]<4|l;continue}1&(d[i+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&&Jr(t,s)}}function rn(A){var t,r=0;V=t=V-16|0,S(+A),r=0|B(1),B(0);e:if((r&=2147483647)>>>0<=1072243195){if(r>>>0<1045430272)break e;A=ha(A,0,0)}else if(r>>>0>=2146435072)A-=A;else{A:switch(3&ka(A,t)){case 0:A=ha(T[t>>3],T[t+8>>3],1);break e;case 1:A=Ba(T[t>>3],T[t+8>>3]);break e;case 2:A=-ha(T[t>>3],T[t+8>>3],1);break e;default:break A}A=-Ba(T[t>>3],T[t+8>>3])}return V=t+16|0,A}function va(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,_s(A),e[A+56>>2]=2,e[A+36>>2]=3,e[A+40>>2]=1074,f[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,f[A+365|0]=64|d[A+365|0],f[A+368|0]=64|d[A+368|0],f[A+396|0]=64|d[A+396|0],f[A+399|0]=64|d[A+399|0]}function Pn(A,t,r){var s=0,i=0,l=0;e:{if(!(s=e[r+16>>2])){if(Za(r))break e;s=e[r+16>>2]}if(s-(l=e[r+20>>2])>>>0>>0)return 0|ZA[e[r+36>>2]](r,A,t);A:if(e[r+80>>2]<0)s=0;else{for(i=t;;){if(!(s=i)){s=0;break A}if(d[(i=s-1|0)+A|0]==10)break}if((i=0|ZA[e[r+36>>2]](r,A,s))>>>0>>0)break e;A=A+s|0,t=t-s|0,l=e[r+20>>2]}qA(l,A,t),e[r+20>>2]=e[r+20>>2]+t,i=t+s|0}return i}function Gn(A){var t,r=0,s=0;e:{if((0|(t=e[34064]))>0)for(;;){if((s=e[136284+(r<<4)>>2])&&!Ar(A,s)){if(e[136276+(r<<4)>>2])return r;if(s=-1,br(0,r))break e;return r}if((0|t)==(0|(r=r+1|0)))break}s=-1,br(A,t)||(r=Dt(e[12+(136272+(e[34064]<<4)|0)>>2],kA(A)+1|0),s=e[34064],e[12+(136272+(s<<4)|0)>>2]=r,GA(r,A),e[34064]=s+1)}return s}function Qn(A,t){var r,s=0,i=0,l=0,c=0;for(V=r=V-16|0,f[0|t]=0,(s=15&e[A>>2])&&(t=(i=kA(t=GA(t,G(128496,64|s))))+t|0),s=8;;){e:{A:{if(s>>>0<=29){if(e[A>>2]>>>s&1)break A;break e}if(!(e[A+4>>2]>>>s-32&1)|s>>>0<32)break e}(0|(i=(c=kA(l=G(128496,s))+1|0)+i|0))>=80||(e[r>>2]=l,lA(t,84439,r),t=t+c|0)}if((0|(s=s+1|0))==64)break}V=r+16|0}function Ai(A,t,r){var s,i=0,l=0,c=0;if(V=s=V-16|0,d[0|A]){for(c=e[30450];;)if(l=A,A=A+1|0,!((0|(i=f[0|l]))==32|i-9>>>0<5)){for((0|(i=ta(l)))>0&&((0|i)<32?e[t>>2]=e[t>>2]|1<>2]=i,e[s>>2]=l,tr(c,84902,s)),l=A);l=(A=l)+1|0,(i=f[0|A])-48>>>0<10|(32|i)-97>>>0<26;);if(!i)break}}V=s+16|0}function Wa(A,t,r){var s=0,i=0,l=0,c=0;e:if(t&&!((0|(i=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|i)>(0|(s=mr(r,A+s|0)+s|0))))break}return f[A+s|0]=0,s}function yt(A){var t=0;e:if(!_A(A)){t=0;A:if(!(A>>>0<768)){if(A-2305>>>0<=1270){if((124&A)>>>0<100)break e;if(t=1,ai(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 sn(A,t){var r=0;A?((r=e[A+4>>2])&&GA(133208,r),(r=e[A>>2])&&St(133168,r,40),e[33289]=d[A+14|0],e[33291]=d[A+13|0],e[33290]=d[A+12|0],St(134672,d[0|t]!=33|d[t+1|0]!=118?t:(d[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):Je(133152,0,76)}function xa(A,t,r,s){f[A+53|0]=1;e:if(e[A+4>>2]==(0|r)){f[A+52|0]=1;A:{if(!(r=e[A+16>>2])){if(e[A+36>>2]=1,e[A+24>>2]=s,e[A+16>>2]=t,(0|s)!=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]=s,r=s),e[A+48>>2]!=1)break e;if((0|r)==1)break A;break e}e[A+36>>2]=e[A+36>>2]+1}f[A+54|0]=1}}function ea(A,t){var r=0,s=0,i=0,l=0,c=0;e:if(r=e[t>>2])for(;;){s=0;A:if(A){for(;c=f[s+r|0],(i=e[(s<<2)+A>>2])&&(s=s+1|0,(0|c)==(0|i)););r:switch(i-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 Aa(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 v(0,0),v(1,t+1023<<20),A*+F()}function Bs(A,t,r,s){var i,l,c,g=0;return V=l=V-16|0,e[l+12>>2]=s,V=i=V-160|0,c=t?A:i+158|0,e[i+144>>2]=c,g=-1,A=t-1|0,e[i+148>>2]=A>>>0<=t>>>0?A:0,A=Je(i,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:(f[0|c]=0,g=Lr(A,r,s,15,16)),V=A+160|0,V=l+16|0,g}function Fn(A,t){var r=0,s=0,i=0;e:if(r=d[0|A])for(;;){if(!(s=d[0|t])){i=r;break e}if((0|r)!=(0|s)&&(0|(s=r-65>>>0<26?32|r:r))!=(0|((r=d[0|t])-65>>>0<26?32|r:r))){i=d[0|A];break e}if(t=t+1|0,r=d[A+1|0],A=A+1|0,!r)break}return(i=(A=255&i)-65>>>0<26?32|A:A)-((A=d[0|t])-65>>>0<26?32|A:A)|0}function an(A,t,r){var s=0,i=0;if(s=e[r+72>>2],e[r+72>>2]=s-1|s,(0|(s=e[r+4>>2]))==(0|(i=e[r+8>>2]))?s=t:(qA(A,s,s=t>>>0>(s=i-s|0)>>>0?s:t),e[r+4>>2]=s+e[r+4>>2],A=A+s|0,s=t-s|0),s)for(;;){if(dn(r)||!(i=0|ZA[e[r+32>>2]](r,A,s)))return t-s|0;if(A=A+i|0,!(s=s-i|0))break}return t}function ta(A){for(var t=0,r=0,s=0,i=0;A=(t=A)+1|0,(0|(r=f[0|t]))==32|r-9>>>0<5;);e:{A:{r:switch((r=f[0|t])-43|0){case 0:break A;case 2:break r;default:break e}i=1}r=f[0|A],t=A}if(r-48>>>0<10)for(;s=48+(O(s,10)-f[0|t]|0)|0,A=f[t+1|0],t=t+1|0,A-48>>>0<10;);return i?s:0-s|0}function nn(A,t){var r,s,i,l=0;return V=r=V-32|0,e[t>>2]=0,e[t+4>>2]=0,e[(l=s=t+24|0)>>2]=0,e[l+4>>2]=0,e[(l=i=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]=s,e[r+20>>2]=t+20,e[r+16>>2]=i,e[r+12>>2]=t+12,e[r+8>>2]=l,e[r+4>>2]=t+4,e[r>>2]=t,A=jA(A,84553,r),V=r+32|0,A}function Sn(A){var t=0,r=0,s=0;if((t=d[0|A])&&((r=d[A+1|0])?(r=t|r<<8,(t=d[A+2|0])&&(r|=t<<16,(A=d[A+3|0])&&(r|=A<<24))):r=t),(0|(t=e[36115]))>0)for(A=0;;){if(!(!(s=e[144464+(A<<2)>>2])|e[s>>2]!=(0|r)))return d[s+10|0];if((0|t)==(0|(A=A+1|0)))break}return 0}function on(A,t,r,s){var i,l=0,c=0,g=0,p=0,I=0;V=i=V-240|0,e[i>>2]=A,g=1;e:if(!((0|r)<2))for(l=A;;){if((0|qa(A,c=(l=l-4|0)-e[((p=r-2|0)<<2)+s>>2]|0,t))>=0&&(0|qa(A,l,t))>=0)break e;if(I=c,l=(c=(0|qa(c,l,t))>=0)?I:l,e[(g<<2)+i>>2]=l,g=g+1|0,!((0|(r=c?r-1|0:p))>1))break}ti(i,g),V=i+240|0}function lA(A,t,r){var s,i,l,c=0;return V=i=V-16|0,e[i+12>>2]=r,V=s=V-160|0,qA(l=s+8|0,124528,144),e[s+52>>2]=A,e[s+28>>2]=A,c=(c=-2-A|0)>>>0>2147483647?2147483647:c,e[s+56>>2]=c,A=A+c|0,e[s+36>>2]=A,e[s+24>>2]=A,A=fi(l,t,r),c&&(t=e[s+28>>2],f[t-((0|t)==e[s+24>>2])|0]=0),V=s+160|0,V=i+16|0,A}function ti(A,t){var r,s=0,i=0,l=0,c=0,g=0;if(s=4,V=r=V-256|0,(0|t)>=2)for(e[(g=(t<<2)+A|0)>>2]=r;;){for(l=s>>>0>=256?256:s,qA(e[g>>2],e[A>>2],l),i=0;c=(i<<2)+A|0,i=i+1|0,qA(e[c>>2],e[(i<<2)+A>>2],l),e[c>>2]=e[c>>2]+l,(0|t)!=(0|i););if(!(s=s-l|0))break}V=r+256|0}function FA(A,t,r){var s,i=0;return V=s=V-96|0,e[s+88>>2]=0,e[s+92>>2]=1073741824,e[s+84>>2]=t,t=zt(A,s+84|0,r,s+88|0,2,0),536870912&(i=e[s+88>>2])?(t=e[47202],e[47202]=0,f[s+2|0]=32,k[s>>1]=8192,St(i=3|s,e[s+84>>2],77),A=Se(A,i,0,0),GA(r,189088),e[47202]=t):A=t?i:0,V=s+96|0,A}function ln(A,t,r){var s=0,i=0,l=0;i=Us(A),s=e[t>>2];e:{A:if((0|i)>=0){if(s){if(!Ar(A,r))break A;(l=e[s+688>>2])&&Me(l),Me(s),e[t>>2]=0}e[t>>2]=LA(A),A=GA(r,A),gt(r=e[t>>2],r+228|0,0)&&(ts(e[e[32972]+60>>2]),f[0|A]=0,i=-1),s=e[t>>2],e[s+292>>2]=i}else if(!s)break e;f[s+268|0]=0}return i}function cn(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=mn(A):(e[A+4>>2]=r+1,A=d[0|r]),e[t>>2]=0,A):(0|(t=e[A+4>>2]))!=e[A+8>>2]?(e[A+4>>2]=t+1,d[0|t]):mn(A)}function Hr(A,t,r){var s=0,i=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|(s=d[0|A]))==(0|(i=d[0|t]))){if(t=t+1|0,A=A+1|0,r=r-1|0)continue;break e}break}return s-i|0}return 0}function ls(A,t){var r,s=0,i=0,l=0;V=r=V-16|0,t?(wt(r,i=((s=t>>31)^t)-s|0,0,0,0,(s=Ce(i))+81|0),i=0+e[r+8>>2]|0,s=(65536^e[r+12>>2])+(16414-s<<16)|0,l=-2147483648&t|(s=i>>>0>>0?s+1|0:s),s=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=s,e[A+8>>2]=i,e[A+12>>2]=l,V=r+16|0}function ra(A){var t,r=0,s=0,i=0;if((0|(r=Dn(A,61)))==(0|A))return 0;e:if(!d[(t=r-A|0)+A|0]&&(r=e[56800])&&(s=e[r>>2])){for(;;){if(_n(A,s,t)||(s=e[r>>2]+t|0,d[0|s]!=61)){if(s=e[r+4>>2],r=r+4|0,s)continue;break e}break}i=s+1|0}return i}function Us(A){var t=0,r=0;e:if(!((0|(r=e[34461]))<=0)){for(;;){if(!Ar(A,O(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,nt(A),e[36114]=A,e[36115]=e[36115]+1),t)}function Ya(A,t,r,s){var i=0,l=0;e:if((32|d[0|t])!=32){if(i=((0|s)>2)<<1,l=js(A,t,r,i=(0|s)>1?4|i:i),d[0|r]!=21)for(i|=1,t=t+l|0,l=1;;){if((32|d[0|t])==32)break e;if(t=js(A,t,r,i)+t|0,l=l+1|0,d[0|r]==21)break}return GA(189088,r),0}return qt(A,r,s,l),t}function mr(A,t){var r,s=0,i=0,l=0;if(A>>>0<=127)return f[0|t]=A,1;if(A>>>0>=1114112)return f[0|t]=32,1;for(s=O(r=A>>>0<2048?1:A>>>0<65536?2:3,6),f[0|t]=d[r+93842|0]|A>>>s;s=s-6|0,f[(i=i+1|0)+t|0]=A>>>s&63|128,(0|(l=l+1|0))!=(0|r););return r+1|0}function un(A){var t=0,r=0;e:{if((0|(t=e[A+12>>2]))>=e[A+16>>2]){if(t=0,(0|(r=0|ge(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+y[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 Va(A,t){var r,s=0;if(s=e[A+632>>2])return!!(0|jr(s,t));e:{A:{if((0|(r=e[A+600>>2]))>0){if(s=0,(t=t-r|0)-1>>>0<255)break A;break e}if((s=t-192|0)>>>0<=413)return 128&d[344+(d[s+94240|0]+A|0)|0];if(s=0,t>>>0>255)break e}s=128&d[344+(A+t|0)|0]}return s}function ha(A,t,r){var s,i,l;return l=(s=A*A)*(s*s)*(158969099521155e-24*s-25050760253406863e-24)+(s*(27557313707070068e-22*s-.0001984126982985795)+.00833333333332249),i=s*A,r?A-(s*(.5*t-l*i)-t+.16666666666666632*i):i*(s*l-.16666666666666632)+A}function sa(A,t){var r,s=0,i=0,l=0;V=r=V-16|0,t?(wt(r,s=t,0,0,0,(t=Ce(t))+81|0),s=0+e[r+8>>2]|0,t=(65536^e[r+12>>2])+(16414-t<<16)|0,l=i>>>0>s>>>0?t+1|0:t,i=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=i,e[A+8>>2]=s,e[A+12>>2]=l,V=r+16|0}function aa(A){var t,r=0;V=t=V-16|0,f[t+15|0]=10;e:{if(!(r=e[A+16>>2])){if(Za(A))break e;r=e[A+16>>2]}(0|r)==(0|(r=e[A+20>>2]))|e[A+80>>2]==10?ZA[e[A+36>>2]](A,t+15|0,1):(e[A+20>>2]=r+1,f[0|r]=10)}V=t+16|0}function dn(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]&&ZA[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 Ha(A){var t=0;e:{A:{r:{a:{if((0|(A=An(A)))<=268437502){if(!A)break e;if((0|A)==268436479)break A;if((0|A)!=268437247)break a;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 kA(A){var t=0,r=0,s=0;e:{if(3&(t=A))for(;;){if(!d[0|t])break e;if(!(3&(t=t+1|0)))break}for(;r=t,t=t+4|0,!(~(s=e[r>>2])&s-16843009&-2139062144););for(;r=(t=r)+1|0,d[0|t];);}return t-A|0}function ys(A,t,r){var s,i=0,l=0,c=0;e[A+112>>2]=t,e[A+116>>2]=r,s=e[A+4>>2],i=e[A+44>>2]-s|0,e[A+120>>2]=i,e[A+124>>2]=i>>31,i=e[A+8>>2],t|r&&((0|r)>=(0|(c=(l=i-s|0)>>31))&t>>>0>=l>>>0|(0|r)>(0|c)||(i=t+s|0)),e[A+104>>2]=i}function ri(A,t){var r,s,i=0;if(S(+A),r=0|B(1),s=0|B(0),(0|(i=r>>>20&2047))!=2047){if(!i)return A==0?i=0:(A=ri(18446744073709552e3*A,t),i=e[t>>2]+-64|0),e[t>>2]=i,A;e[t>>2]=i-1022,v(0,0|s),v(1,-2146435073&r|1071644672),A=+F()}return A}function On(A,t,r){return e[A+20>>2]!=e[A+28>>2]&&(ZA[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,ZA[e[A+40>>2]](A,t,r,0),(0|fe)<0)?-1:(e[A+4>>2]=0,e[A+8>>2]=0,e[A>>2]=-17&e[A>>2],0)}function Ba(A,t){var r,s,i=0;return(s=1-(i=.5*(r=A*A)))+(1-s-i+(r*(r*(r*(2480158728947673e-20*r-.001388888888887411)+.0416666666666666)+(i=r*r)*i*(r*(-11359647557788195e-27*r+2087572321298175e-24)-27557314351390663e-23))-A*t))}function Ks(A,t,r){var s=0,i=0;if(t)for(;r=r-1|0,i=A,A=Yi(A,t,10),s=fe,f[0|r]=i-et(A,s,10,0)|48,i=t>>>0>9,t=s,i;);if(A)for(;t=(A>>>0)/10|0,f[0|(r=r-1|0)]=A-O(t,10)|48,s=A>>>0>9,A=t,s;);return r}function XA(A,t){var r=0,s=0,i=0;e:if(A){for(;i=f[t+r|0],(s=e[(r<<2)+A>>2])&&(r=r+1|0,(0|i)==(0|s)););A:switch(s-34|0){case 0:case 5:break A;default:break e}if(!i)return 0}return 1}function si(A,t,r){var s,i=0;return V=s=V-16|0,!(64&t)&&(i=0,4259840&~t)||(e[s+12>>2]=r+4,i=e[r>>2]),e[s>>2]=i,e[s+4>>2]=0,(A=0|ne(-100,0|A,32768|t,0|s))>>>0>=4294963201&&(e[56798]=0-A,A=-1),V=s+16|0,A}function _n(A,t,r){var s=0,i=0,l=0;if(!r)return 0;e:if(s=d[0|A]){for(;;){if((i=d[0|t])&&!(!(r=r-1|0)|(0|s)!=(0|i))){if(t=t+1|0,s=d[A+1|0],A=A+1|0,s)continue;break e}break}l=s}return(255&l)-d[0|t]|0}function ya(A,t){var r,s=0;V=s=V-128|0,s=Je(s,0,128),f[s+98|0]=9,f[s+66|0]=9,f[s+34|0]=A,k[s+68>>1]=1,r=e[36125],e[s+104>>2]=r,e[s+72>>2]=r,e[s+40>>2]=e[144464+(A<<2)>>2],f[s+2|0]=9,e[s+8>>2]=r,Rt(0,0,s+32|0,t,0),V=s+128|0}function Ua(A){var t=0,r=0,s=0;if(f[e[A>>2]]-48>>>0>=10)return 0;for(;s=e[A>>2],r=-1,t>>>0<=214748364&&(r=(0|(r=f[0|s]-48|0))>(2147483647^(t=O(t,10)))?-1:r+t|0),e[A>>2]=s+1,t=r,f[s+1|0]-48>>>0<10;);return t}function Ds(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]+O(r,10)|0)-48|0,e[(A=A+4|0)>>2]-48>>>0<10;);(0|t)==1&&(r=(0|Ts(e[A>>2]))==115?O(r,1e3):r)}return r}function ur(A){var t=0;t=1;e:{A:switch(0|yr(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 Ka(A,t,r){var s,i=0;return V=s=V-16|0,f[s+6|0]=0,f[s+7|0]=95,i=mr(i=t,t=s+8|0)+s|0,f[i+8|0]=32,f[i+9|0]=0,FA(A,s+7|0,r)||(f[s+7|0]=32,FA(A,t,r)||Dr(A,t,r,20,0,0,0)),V=s+16|0,f[0|r]}function zn(A){var t=0,r=0;r=170;e:if(!((0|A)<170))for(;;){if((0|A)==(0|r))return y[101616+(t<<1|2)>>1];if((2147483646&(t=t+2|0))==124)break e;if(!((0|(r=y[101616+(t<<1)>>1]))<=(0|A)))break}return 0}function et(A,t,r,s){var i,l,c,g,p=0,I=0;return g=O(p=r>>>16|0,I=A>>>16|0),p=(65535&(I=((c=O(i=65535&r,l=65535&A))>>>16|0)+O(I,i)|0))+O(p,l)|0,fe=(O(t,r)+g|0)+O(A,s)+(I>>>16)+(p>>>16)|0,65535&c|p<<16}function Ts(A){var t=0,r=0,s=0,i=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+i|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1048+(s<<4)>>2])||A;if(!((0|(i=(r=A>>>0>r>>>0)?s+1|0:i))<=(0|(t=r?t:s-1|0))))break}return A}function Xa(A){var t=0,r=0,s=0,i=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+i|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1044+(s<<4)>>2])||A;if(!((0|(i=(r=A>>>0>r>>>0)?s+1|0:i))<=(0|(t=r?t:s-1|0))))break}return A}function Ns(A){var t,r=0;return V=t=V-112|0,(A=0|eA(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])),V=t+112|0,A=r}function fn(A,t,r){var s;if(!(s=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|s)){if(e[A+24>>2]!=2)break e;return void(e[A+24>>2]=r)}f[A+54|0]=1,e[A+24>>2]=2,e[A+36>>2]=e[A+36>>2]+1}}function Fr(A,t,r,s,i){var l;if(V=l=V-256|0,!(73728&i|(0|r)<=(0|s))){if(Je(l,255&t,(r=(s=r-s|0)>>>0<256)?s:256),!r)for(;Ur(A,l,256),(s=s-256|0)>>>0>255;);Ur(A,l,s)}V=l+256|0}function Ps(A,t,r){var s=0;e:{if(A){if(s=e[A>>2]){Me(e[s+4>>2]),s=e[A>>2];break e}if(s=zA(16),e[A>>2]=s,s)break e;t=48}return t}return e[s>>2]=0,e[s+4>>2]=Ln(r),A=e[A>>2],e[A+8>>2]=0,e[A+12>>2]=0,t}function Ir(A){var t=0,r=0;Ms(A),ZA[e[A+12>>2]](A),1&f[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),Me(e[A+96>>2]),Me(A))}function Gs(A){var t=0,r=0;t=1;e:{A:{r:{a:switch((r=yr(A))-9|0){case 1:break e;case 6:case 18:break r;case 0:break a;default:break A}return(0|Ts(A))!=(0|A)}return Ue(A,r)>>>15&1}t=0}return t}function gn(A){var t,r,s,i=0,l=0;if(s=kA(A)+1|0,i=e[33282],(0|(r=(t=e[33287])+s|0))>=e[33286]){if(!(i=Dt(i,l=r+1e3|0)))return-1;e[33286]=l,e[33282]=i}return qA(i+t|0,A,s),e[33287]=r,t}function Za(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 Nn(A,t,r,s){e:if(A){A:switch(t+2|0){case 0:return void(f[0|A]=r);case 1:return void(k[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]=s}}function pn(A,t,r,s,i,l,c,g,p){var I;V=I=V-16|0,ke(I,t,r,s,i,l,c,g,-2147483648^p),s=e[I>>2],r=e[I+4>>2],t=e[I+12>>2],e[A+8>>2]=e[I+8>>2],e[A+12>>2]=t,e[A>>2]=s,e[A+4>>2]=r,V=I+16|0}function Ar(A,t){var r=0,s=0;e:if(!(!(r=d[0|A])|(0|r)!=(0|(s=d[0|t]))))for(;;){if(s=d[t+1|0],!(r=d[A+1|0]))break e;if(t=t+1|0,A=A+1|0,(0|r)!=(0|s))break}return r-s|0}function G(A,t){var r=0,s=0,i=0;if(!(r=e[A>>2]))return 84399;if(e[A+4>>2]!=(0|t))for(;;){if(!(r=e[(s=A+8|0)>>2]))return 84399;if(i=A,A=s,e[i+12>>2]==(0|t))break}return r}function W(A,t,r){var s=0,i=0,l=0;e:if(r){for(;;){if(!(!(s=e[t>>2])|!(i=e[A>>2])|(0|s)!=(0|i))){if(t=t+4|0,A=A+4|0,r=r-1|0)continue;break e}break}l=i-s|0}return l}function q(A){var t,r=0,s=0;if((0|(t=e[36115]))>0)for(;;){if(!(!(s=e[144464+(r<<2)>>2])|e[s>>2]!=(0|A)))return d[s+10|0];if((0|t)==(0|(r=r+1|0)))break}return 0}function se(A){var t,r;return(A=(t=e[33175])+(r=A+7&-8)|0)>>>0<=t>>>0&&r||A>>>0>K.byteLength/65536<<16>>>0&&!(0|TA(0|A))?(e[56798]=48,-1):(e[33175]=A,t)}function ue(A){var t=0;e:if(!((t=yr(A))>>>0>27)){if(!(1<>>14&1}return 0}function Pe(A,t){var r=0;return f[0|A]=t>>>24,f[0|(r=(t>>>0>16777215)+A|0)]=t>>>16,f[0|(r=r+!!(16711680&t)|0)]=t>>>8,f[0|(r=r+!!(65280&t)|0)]=t,f[r+!!(255&t)|0]=0,A}function $e(A,t){e:if((0|(A=or(A,t)))<=268437502){if(!A|(0|A)==268436479|(0|A)!=268437247)break e;return}}function dA(A){var t=0;return t=e[A>>2]-1|0,(t=f[121600+(O(0-t&t,124511785)>>>27|0)|0])||(A=e[A+4>>2],t=(A=f[121600+(O(0-A&A,124511785)>>>27|0)|0])?A+32|0:0),t}function xA(A){var t=0,r=0,s=0;e:{if(!((t=yr(A))>>>0>27)){if(r=1,116672&(s=1<>>10&1}r=0}return r}function _A(A){var t=0,r=0,s=0;e:{if(!((t=yr(A))>>>0>27)){if(r=1,34752&(s=1<>>10&1}r=0}return r}function it(){var A,t=0;(A=e[56797])&&((t=e[A+8>>2])&&ZA[e[e[t>>2]+12>>2]](t),(t=e[A+4>>2])&&ZA[e[e[t>>2]+16>>2]](t),Me(A)),e[56797]=0,e[56797]=Pr()}function Mt(A,t){var r=0;return A&&(r=et(A,0,t,0),(A|t)>>>0<65536||(r=fe?-1:r)),!(A=zA(r))|!(3&d[A-4|0])||Je(A,0,r),A}function Ft(A,t){var r,s;s=e[130128+(t-O(r=(0|t)/100|0,100)<<2)>>2],e[A+100>>2]=s,e[A+96>>2]=s,t+99>>>0>=199&&(e[A+100>>2]=e[130128+(r<<2)>>2])}function Rr(A){var t=0;(t=zA(1344))&&(A=qA(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 es(A,t){var r=0;e:if(r=e[A>>2])for(;;){if(t&&!Ar(t,r))break e;if(!(r=e[(A=A+8|0)>>2]))break}return e[A+4>>2]}function mn(A){var t,r=0;return V=t=V-16|0,r=-1,dn(A)||(0|ZA[e[A+32>>2]](A,t+15|0,1))==1&&(r=d[t+15|0]),V=t+16|0,r}function jr(A,t){var r=0,s=0;if(t){for(;s=A,(r=e[A>>2])&&(A=s+4|0,(0|t)!=(0|r)););return r?s:0}return(Oi(A)<<2)+A|0}function ai(A,t){var r=0,s=0;if(r=y[A>>1])for(;;){if(s=s+1|0,(0|t)==(0|r))return s;if(!(r=y[(s<<1)+A>>1]))break}return 0}function ni(A,t){var r=0,s=0;t>>>0<=31?(s=e[A>>2],r=A+4|0):(t=t-32|0,r=A),r=e[r>>2],e[A>>2]=s<>2]=r<>>32-t}function ii(A,t){var r=0,s=0;r=e[A+4>>2],t>>>0<=31?s=e[A>>2]:(t=t-32|0,s=r,r=0),e[A+4>>2]=r>>>t,e[A>>2]=r<<32-t|s>>>t}function hs(A){var t=0;A=A||1;e:{for(;;){if(t=zA(A))break e;if(!(t=e[57276]))break;ZA[0|t]()}oA(),L()}return t}function oi(A){return A>>>0<=131071?d[117424+(A>>>3&31|d[117424+(A>>>8|0)|0]<<5)|0]>>>(7&A)&1:A>>>0<196606}function mo(A,t,r,s,i,l,c,g,p){e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=65535&i|(p>>>16&32768|i>>>16&32767)<<16}function Xs(A,t,r){return r?(0|A)==(0|t)?1:!Ar(e[A+4>>2],e[t+4>>2]):e[A+4>>2]==e[t+4>>2]}function ho(A){var t=0;(0|(t=0|ze(-100,0|A,0)))==-31&&(t=0|be(0|A)),t>>>0>=4294963201&&(e[56798]=0-t)}function Si(){var A;A=zA(84)+80|0,e[A>>2]=125420,e[A>>2]=125380,e[A>>2]=125400,Ve(0|A,125512,9),L()}function li(A){var t,r;return t=cn(A),r=cn(A),cn(A)<<16&16711680|r<<8&65280|255&t|cn(A)<<24}function hn(A){var t=0;return A?(t=1,A-9472>>>0<160|A-65529>>>0<7||(t=ur(A)),t):0}function Co(A,t){var r;return r=t>>31,A=(e[A+76>>2],On(A,t,r))}function Oi(A){var t=0,r=0;for(r=A;r=(t=r)+4|0,e[t>>2];);return t-A>>2}function bo(A,t){return f[0|A]=t,f[A+4|0]=0,f[A+3|0]=t>>>24,f[A+2|0]=t>>>16,f[A+1|0]=t>>>8,A}function As(A,t){var r=0;return(-1>>>(r=31&t)&A)<>>A}function Cn(A,t){var r=0;return(0|A)==73&&(r=305,d[t+173|0])||(r=Ts(A)),r}function ts(A){e[36114]!=(0|A)&&(e[36115]=0,nt(A),e[36114]=A,e[36115]=e[36115]+1)}function _i(A){return A?e[34460]+A|0:(ci(85328,20,e[30450]),e[32320])}function Ln(A){var t,r;return(r=zA(t=kA(A)+1|0))?qA(r,A,t):0}function Io(){var A;e[33287]=0,(A=e[33282])&&(Me(A),e[33286]=0,e[33282]=0)}function tr(A,t,r){var s;V=s=V-16|0,e[s+12>>2]=r,fi(A,t,r),V=s+16|0}function ci(A,t,r){A=(e[r+76>>2],Pn(A,t,r))}function Ja(A,t){return t?A<<24|(65280&A)<<8|A>>>8&65280|A>>>24:A}function bn(A){return A=A-8212>>>0>=12?ai(93856,A):1}function zi(A){var t=0;A&&((t=e[A+688>>2])&&Me(t),Me(A))}function wo(A){return A=(0|A)<=127?Zs(87712,A):0}function Ni(A){return!(A=d[0|A]?1:Hr(A,A+1|0,3))}function Li(A){(A=(0|(A=0|Be(0|A)))!=27?A:0)&&(e[56798]=A)}function qa(A,t,r){return A|=0,t|=0,0|ZA[0|(r|=0)](A,t)}function Zs(A,t){return A=Dn(A,t),d[0|A]==(255&t)?A:0}function ui(A,t){return Ys(A,t,2147483647),fe=rA,We}function di(A){return A?31-Ce(A-1^A)|0:32}function Ur(A,t,r){32&d[0|A]||Pn(t,r,A)}function St(A,t,r){f[(Es(A,t,r)+r|0)-1|0]=0}function Rn(A){return ln(A,188776,189328)}function ko(A,t){t|=0,e[(A|=0)+8>>2]=t}function fi(A,t,r){return Lr(A,t,r,0,0)}function Eo(A){return e[(A|=0)+12>>2]}function Mo(A){return e[(A|=0)+16>>2]}function Ri(A){return e[(A|=0)+20>>2]}function ji(A){return e[(A|=0)+8>>2]}function vo(A){return e[(A|=0)+4>>2]}function Wi(A){return e[(A|=0)>>2]}function Yi(A,t,r){return Ys(A,t,r)}function gi(A){(A|=0)&&Me(A)}function Jr(A,t){GA(kA(A)+A|0,t)}function Vi(A){return 0|(A|=0)}function Hi(A){return 0}function In(A){Me(A|=0)}function xo(A){}C(u=d,1024,"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"),C(u,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),C(u,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),C(u,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),C(u,81475,"AgAAAAAAACAAAAAAAAAAIA=="),C(u,81506,"IA=="),C(u,81522,"IAAAAAAAAAAg"),C(u,81618,"IA=="),C(u,81634,"IA=="),C(u,81650,"IAAAAAAAAAAg"),C(u,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),C(u,81728,"gAAAAAAAAACAAAAAAAAAAIA="),C(u,81760,"gAAAAAAAAACA"),C(u,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),C(u,81961,"FAAAAAAAAAAU"),C(u,81985,"FAAAAAAAAAAE"),C(u,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(u,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(u,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),C(u,82224,"gAAAAAAAAACA"),C(u,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(u,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(u,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(u,82625,"BAAAAAAAAAAE"),C(u,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(u,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(u,83097,"BAAAAAAAAAAE"),C(u,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),C(u,83288,"QA=="),C(u,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),C(u,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),C(u,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),C(u,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VTLlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAkdTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdABHb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),C(u,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),C(u,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="),C(u,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),C(u,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=="),C(u,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),C(u,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),C(u,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),C(u,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),C(u,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),C(u,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),C(u,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),C(u,102708,"rwAAAGQAAAAyAAAAMg=="),C(u,102744,"ZA=="),C(u,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),C(u,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAnMCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),C(u,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),C(u,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),C(u,103790,"LQAAAAAAAAAu"),C(u,103816,"Lw=="),C(u,103833,"MAAAAAAAMQ=="),C(u,103856,"Mg=="),C(u,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),C(u,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),C(u,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),C(u,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),C(u,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),C(u,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),C(u,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),C(u,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),C(u,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),C(u,105170,"MgAz"),C(u,105195,"NAAAAAAANQA2"),C(u,105226,"NwA4ADkArQABAAwgAQ=="),C(u,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),C(u,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),C(u,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),C(u,105540,"MgAAAK8AAABkAAAAMg=="),C(u,105568,"rw=="),C(u,105596,"EBAKEBY="),C(u,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),C(u,105668,"BA=="),C(u,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),C(u,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),C(u,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),C(u,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=="),C(u,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),C(u,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),C(u,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"),C(u,112416,"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"),C(u,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),C(u,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="),C(u,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),C(u,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=="),C(u,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),C(u,118910,"AoAAAP8f"),C(u,118928,"hPwvPlC9//PgQwAA//////8B"),C(u,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),C(u,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),C(u,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"),C(u,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),C(u,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),C(u,119824,"////////fwD//z8A/w=="),C(u,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),C(u,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),C(u,120048,"////H4AA//8/"),C(u,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),C(u,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),C(u,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),C(u,120336,"/////////wE="),C(u,120356,"////////////AwCA"),C(u,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),C(u,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),C(u,120524,"//9/AP////////////////////////8D"),C(u,120560,"/////////////////38AAP///////////////////////////////w8="),C(u,120624,"//////9/"),C(u,120656,"//////////9/"),C(u,120688,"/////////wH///9//wM="),C(u,120714,"////PwAA////////AAAPAP8D+P//4P//"),C(u,120760,"//////////8="),C(u,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),C(u,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),C(u,121136,"//////8fgD//Qw=="),C(u,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),C(u,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),C(u,121302,"////A////wP///8D"),C(u,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),C(u,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),C(u,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),C(u,121776,"Qy5VVEYtOA=="),C(u,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),C(u,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),C(u,123928,"IQQAAAAAAAAAAC8C"),C(u,123960,"NQRHBFYE"),C(u,123982,"oAQ="),C(u,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),C(u,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),C(u,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),C(u,124187,"DA=="),C(u,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),C(u,124245,"EA=="),C(u,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),C(u,124303,"Eg=="),C(u,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),C(u,124370,"GgAAABoaGgAAAAAAAAk="),C(u,124419,"FA=="),C(u,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),C(u,124477,"Fg=="),C(u,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),C(u,124564,"EQ=="),C(u,124604,"//////////8="),C(u,124672,"0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),C(u,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),C(u,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEAEQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),C(u,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),C(u,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),C(u,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),C(u,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),C(u,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),C(u,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),C(u,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),C(u,131076,"QP8BAAD/AQCA/wEAwP8B"),C(u,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),C(u,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),C(u,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),C(u,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),C(u,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),C(u,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),C(u,131888,"qAsD"),C(u,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),C(u,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),C(u,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+YkIiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),C(u,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),C(u,132412,"DQ=="),C(u,132436,"CwAAAAoAAADoeAM="),C(u,132460,"Ag=="),C(u,132476,"//////////8="),C(u,132544,"MAUCAAAAAAAF"),C(u,132564,"MA=="),C(u,132588,"CwAAADEAAAD4eAMAAAQ="),C(u,132612,"AQ=="),C(u,132628,"/////wo="),C(u,132696,"yAUCAAB/BA==");var wn,ZA=(wn=[null,function(A){var t,r=0;return r=e[(A|=0)>>2],e[A>>2]=r+1,r=255&(t=f[0|r]),(0|t)<0&&(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1]),0|r},Hi,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=en(A)))==65533&&(e[A>>2]=t+1,e[A+8>>2]=1,r=255&(t=f[0|t]),(0|t)>=0||(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1])),0|r},en,function(A){var t,r,s=0;return(s=e[4+(A|=0)>>2])>>>0<=(r=(t=e[A>>2])+1|0)>>>0?(e[A>>2]=s,65533):(e[A>>2]=r,s=d[0|t],e[A>>2]=t+2,s|d[t+1|0]<<8)},function(A,t){var r,s,i;return t|=0,A=e[(A|=0)>>2],r=e[A+4>>2],s=e[t>>2],(t=Ar(r+1|0,(i=e[s+4>>2])+1|0))||(t=f[0|r]-f[0|i]|0)||(t=Ar(e[A>>2],e[s>>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=Ar(e[r>>2],e[t>>2])),0|A},Vi,function(A,t,r,s){var i;return t|=0,r|=0,s|=0,V=i=V-16|0,(A=0|qe(e[60+(A|=0)>>2],0|t,0|r,255&s,i+8|0))?(e[56798]=A,A=-1):A=0,V=i+16|0,fe=A?-1:e[i+12>>2],0|(A?-1:e[i+8>>2])},function(A,t,r){t|=0,r|=0;var s,i=0,l=0,c=0,g=0,p=0,I=0;V=s=V-32|0,i=e[28+(A|=0)>>2],e[s+16>>2]=i,c=e[A+20>>2],e[s+28>>2]=r,e[s+24>>2]=t,t=c-i|0,e[s+20>>2]=t,c=t+r|0,p=2;e:{A:{t=s+16|0,(i=0|Oe(e[A+60>>2],0|t,2,s+12|0))?(e[56798]=i,i=-1):i=0;r:{if(i)i=t;else for(;;){if((0|(l=e[s+12>>2]))==(0|c))break r;if((0|l)<0){i=t;break A}if(g=l-((I=(g=e[t+4>>2])>>>0>>0)?g:0)|0,e[(i=(I<<3)+t|0)>>2]=g+e[i>>2],e[(t=(I?12:4)+t|0)>>2]=e[t>>2]-g,c=c-l|0,t=i,p=p-I|0,(l=0|Oe(e[A+60>>2],0|t,0|p,s+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|p)!=2&&(A=r-e[i+4>>2]|0)}return V=s+32|0,0|A},function(A,t,r){A|=0,t|=0,r|=0;var s,i=0,l=0,c=0;V=s=V-32|0,e[s+16>>2]=t,i=e[A+48>>2],e[s+20>>2]=r-!!(0|i),l=e[A+44>>2],e[s+28>>2]=i,e[s+24>>2]=l;e:{A:{if((i=0|Ze(e[A+60>>2],s+16|0,2,s+12|0))?(e[56798]=i,i=-1):i=0,i)t=32;else{if((0|(i=e[s+12>>2]))>0)break A;t=i?32:16}e[A>>2]=t|e[A>>2];break e}c=i,(l=e[s+20>>2])>>>0>=i>>>0||(i=e[A+44>>2],e[A+4>>2]=i,e[A+8>>2]=i+(c-l|0),e[A+48>>2]&&(e[A+4>>2]=i+1,f[(t+r|0)-1|0]=d[0|i]),c=r)}return V=s+32|0,0|c},function(A){return 0|Be(e[60+(A|=0)>>2])},qa,function(A,t,r,s,i,l){A|=0,t=+t,r|=0,s|=0,i|=0,l|=0;var c,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0,Xe=0;V=c=V-560|0,e[c+44>>2]=0,S(+t),g=0|B(1),B(0),(0|g)<0?(ie=1,Ne=84997,S(+(t=-t)),g=0|B(1),B(0)):2048&i?(ie=1,Ne=85e3):(Ne=(ie=1&i)?85003:84998,Xe=!ie);e:if(2146435072&~g){ve=c+16|0;A:{r:{a:{if(t=ri(t,c+44|0),(t+=t)!=0){if(g=e[c+44>>2],e[c+44>>2]=g-1,(0|(Te=32|l))!=97)break a;break A}if((0|(Te=32|l))==97)break A;M=e[c+44>>2],P=(0|s)<0?6:s;break r}M=g-29|0,e[c+44>>2]=M,t*=268435456,P=(0|s)<0?6:s}for(p=J=(c+48|0)+((0|M)>=0?288:0)|0;s=t<4294967296&t>=0?~~t>>>0:0,e[p>>2]=s,p=p+4|0,(t=1e9*(t-+(s>>>0)))!=0;);if((0|M)<=0)s=M,g=p,I=J;else for(I=J,s=M;;){if(Y=(0|s)>=29?29:s,!(I>>>0>(g=p-4|0)>>>0)){for(s=0;h=e[g>>2],Fe=s,s=31&Y,(63&Y)>>>0>=32?(_=h<>>32-s,s=h<>>0>Fe>>>0?h+1|0:h,1e9),e[g>>2]=Fe-et(s,fe,1e9,0),I>>>0<=(g=g-4|0)>>>0;);s&&(e[(I=I-4|0)>>2]=s)}for(;I>>>0<(g=p)>>>0&&!e[(p=g-4|0)>>2];);if(s=e[c+44>>2]-Y|0,e[c+44>>2]=s,p=g,!((0|s)>0))break}if((0|s)<0)for(me=1+((P+25>>>0)/9|0)|0,H=(0|Te)==102;;){if(_=(0|(s=0-s|0))>=9?9:s,g>>>0<=I>>>0)p=e[I>>2];else{for(Y=1e9>>>_|0,h=~(-1<<_),s=0,p=I;Fe=s,s=e[p>>2],e[p>>2]=Fe+(s>>>_|0),s=O(Y,s&h),(p=p+4|0)>>>0>>0;);p=e[I>>2],s&&(e[g>>2]=s,g=g+4|0)}if(s=_+e[c+44>>2]|0,e[c+44>>2]=s,I=(!p<<2)+I|0,g=g-(p=H?J:I)>>2>(0|me)?p+(me<<2)|0:g,!((0|s)<0))break}if(s=0,!(g>>>0<=I>>>0||(s=O(J-I>>2,9),p=10,(h=e[I>>2])>>>0<10)))for(;s=s+1|0,h>>>0>=(p=O(p,10))>>>0;);if((0|(p=(P-((0|Te)!=102?s:0)|0)-((0|Te)==103&!!(0|P))|0))<(O(g-J>>2,9)-9|0)){if(M=((((0|M)<0?4:292)+c|0)+((h=(0|(Y=p+9216|0))/9|0)<<2)|0)-4048|0,p=10,(0|(_=Y-O(h,9)|0))<=7)for(;p=O(p,10),(0|(_=_+1|0))!=8;);if(!(!(H=(Y=e[M>>2])-O(p,me=(Y>>>0)/(p>>>0)|0)|0)&(0|(h=M+4|0))==(0|g))&&(!(1&me)&&(t=9007199254740992,!(1&f[M-4|0])|(0|p)!=1e9|I>>>0>=M>>>0)||(t=9007199254740994),re=(0|g)==(0|h)?1:1.5,re=(h=p>>>1|0)>>>0>H>>>0?.5:(0|h)==(0|H)?re:1.5,d[0|Ne]!=45|Xe||(re=-re,t=-t),h=Y-H|0,e[M>>2]=h,t+re!=t)){if(s=p+h|0,e[M>>2]=s,s>>>0>=1e9)for(;e[M>>2]=0,(M=M-4|0)>>>0>>0&&(e[(I=I-4|0)>>2]=0),s=e[M>>2]+1|0,e[M>>2]=s,s>>>0>999999999;);if(s=O(J-I>>2,9),p=10,!((h=e[I>>2])>>>0<10))for(;s=s+1|0,h>>>0>=(p=O(p,10))>>>0;);}g=g>>>0>(p=M+4|0)>>>0?p:g}for(;h=g,!(Y=g>>>0<=I>>>0)&&!e[(g=h-4|0)>>2];);if((0|Te)==103){if(P=((g=(0|(p=P||1))>(0|s)&(0|s)>-5)?~s:-1)+p|0,l=(g?-1:-2)+l|0,!(M=8&i)){if(g=-9,!Y&&(M=e[h-4>>2])&&(_=10,g=0,!((M>>>0)%10|0))){for(;p=g,g=g+1|0,!((M>>>0)%((_=O(_,10))>>>0)|0););g=~p}p=O(h-J>>2,9),(-33&l)!=70?(M=0,P=(0|(g=(0|(g=((s+p|0)+g|0)-9|0))>0?g:0))>(0|P)?P:g):(M=0,P=(0|(g=(0|(g=(g+p|0)-9|0))>0?g:0))>(0|P)?P:g)}}else M=8&i;if(_=-1,(0|((Y=M|P)?2147483645:2147483646))<(0|P))break e;if(H=1+(!!(0|Y)+P|0)|0,(0|(p=-33&l))!=70){if((ve-(g=Ks(((g=s>>31)^s)-g|0,0,ve))|0)<=1)for(;f[0|(g=g-1|0)]=48,(ve-g|0)<2;);if(f[0|(me=g-2|0)]=l,f[g-1|0]=(0|s)<0?45:43,(0|(g=ve-me|0))>(2147483647^H))break e}else{if((2147483647^H)<(0|s))break e;g=(0|s)>0?s:0}if((0|(s=g+H|0))>(2147483647^ie))break e;Fr(A,32,r,H=s+ie|0,i),Ur(A,Ne,ie),Fr(A,48,r,H,65536^i);r:{a:{n:{if((0|p)==70){for(s=8|(l=c+16|0),M=9|l,I=p=I>>>0>J>>>0?J:I;;){g=Ks(e[I>>2],0,M);o:if((0|p)==(0|I))(0|g)==(0|M)&&(f[c+24|0]=48,g=s);else{if(c+16>>>0>=g>>>0)break o;for(;f[0|(g=g-1|0)]=48,c+16>>>0>>0;);}if(Ur(A,g,M-g|0),!(J>>>0>=(I=I+4|0)>>>0))break}if(Y&&Ur(A,85998,1),(0|P)<=0|I>>>0>=h>>>0)break n;for(;;){if((g=Ks(e[I>>2],0,M))>>>0>c+16>>>0)for(;f[0|(g=g-1|0)]=48,c+16>>>0>>0;);if(Ur(A,g,(0|P)>=9?9:P),g=P-9|0,h>>>0<=(I=I+4|0)>>>0)break a;if(s=(0|P)>9,P=g,!s)break}break a}o:if(!((0|P)<0))for(J=I>>>0>>0?h:I+4|0,s=8|(l=c+16|0),h=9|l,p=I;;){(0|h)==(0|(g=Ks(e[p>>2],0,h)))&&(f[c+24|0]=48,g=s);c:if((0|p)==(0|I))Ur(A,g,1),g=g+1|0,M|P&&Ur(A,85998,1);else{if(c+16>>>0>=g>>>0)break c;for(;f[0|(g=g-1|0)]=48,c+16>>>0>>0;);}if(Ur(A,g,(0|(l=h-g|0))>(0|P)?P:l),P=P-l|0,J>>>0<=(p=p+4|0)>>>0)break o;if(!((0|P)>=0))break}Fr(A,48,P+18|0,18,0),Ur(A,me,ve-me|0);break r}g=P}Fr(A,48,g+9|0,9,0)}Fr(A,32,r,H,8192^i),_=(0|r)<(0|H)?H:r;break e}if(M=(l<<26>>31&9)+Ne|0,!(s>>>0>11)){for(g=12-s|0,re=16;re*=16,g=g-1|0;);t=d[0|M]!=45?t+re-re:-(re+(-t-re))}for((0|ve)==(0|(g=Ks(((g=e[c+44>>2])^(p=g>>31))-p|0,0,ve)))&&(f[c+15|0]=48,g=c+15|0),J=2|ie,I=32&l,p=e[c+44>>2],f[0|(P=g-2|0)]=l+15,f[g-1|0]=(0|p)<0?45:43,g=8&i,p=c+16|0;l=p,h=ee(t)<2147483648?~~t:-2147483648,f[0|p]=I|d[h+124512|0],!((0|s)>0|g)&(t=16*(t-+(0|h)))==0|((p=l+1|0)-(c+16|0)|0)!=1||(f[l+1|0]=46,p=l+2|0),t!=0;);_=-1,(2147483645-(l=(g=ve-P|0)+J|0)|0)<(0|s)||(Fr(A,32,r,l=(s=!s||((I=p-(c+16|0)|0)-2|0)>=(0|s)?I=p-(c+16|0)|0:s+2|0)+l|0,i),Ur(A,M,J),Fr(A,48,r,l,65536^i),Ur(A,c+16|0,I),Fr(A,48,s-I|0,0,0),Ur(A,P,g),Fr(A,32,r,l,8192^i),_=(0|r)<(0|l)?l:r)}else Fr(A,32,r,g=ie+3|0,-65537&i),Ur(A,Ne,ie),s=32&l,Ur(A,t!=t?s?85596:85774:s?85247:85460,3),Fr(A,32,r,g,8192^i),_=(0|r)<(0|g)?g:r;return V=c+560|0,0|_},function(A,t){var r;A|=0,r=t|=0,t=e[t>>2]+7&-8,e[r>>2]=t+16,T[A>>3]=uA(e[t>>2],e[t+4>>2],e[t+8>>2],e[t+12>>2])},function(A,t,r){t|=0,r|=0;var s,i,l=0,c=0;return s=e[84+(A|=0)>>2],c=e[s+4>>2],i=e[A+28>>2],(l=(l=e[A+20>>2]-i|0)>>>0>c>>>0?c:l)&&(qA(e[s>>2],i,l),e[s>>2]=l+e[s>>2],c=e[s+4>>2]-l|0,e[s+4>>2]=c),l=e[s>>2],(c=r>>>0>c>>>0?c:r)&&(qA(l,t,c),l=c+e[s>>2]|0,e[s>>2]=l,e[s+4>>2]=e[s+4>>2]-c),f[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 s,i,l=0;return qA(t|=0,s=e[84+(A|=0)>>2],r=r>>>0>(l=(i=Ma(s,0,l=r+256|0))?i-s|0:l)>>>0?l:r),t=s+l|0,e[A+84>>2]=t,e[A+8>>2]=t,e[A+4>>2]=r+s,0|r},function(A,t,r){t|=0,r|=0;var s,i=0,l=0,c=0;i=e[84+(A|=0)>>2],s=e[i>>2]?i:84412,i=0;e:if(e[A+48>>2])for(;;){if(!(l=e[(i<<2)+s>>2]))break e;if(f[e[A+44>>2]+i|0]=(0|l)>=128?64:l,!((i=i+1|0)>>>0>2]))break}return l=e[A+44>>2],e[A+4>>2]=l,e[A+84>>2]=(i<<2)+s,e[A+8>>2]=i+l,!r|!i||(e[A+4>>2]=l+1,f[0|t]=d[0|l],c=1),0|c},Vi,In,xo,xo,function(A,t,r){r|=0;var s,i=0;return V=s=V+-64|0,i=1,Xs(A|=0,t|=0,0)||(i=0,t&&(i=0,(t=yA(t,125132))&&(Je(4|(i=s+8|0),0,52),e[s+56>>2]=1,e[s+20>>2]=-1,e[s+16>>2]=A,e[s+8>>2]=t,ZA[e[e[t>>2]+28>>2]](t,i,e[r>>2],1),(0|(A=e[s+32>>2]))==1&&(e[r>>2]=e[s+24>>2]),i=(0|A)==1))),V=s- -64|0,0|i},function(A,t,r,s,i,l){r|=0,s|=0,i|=0,l|=0,Xs(A|=0,e[8+(t|=0)>>2],l)&&xa(t,r,s,i)},function(A,t,r,s,i){if(r|=0,s|=0,i|=0,Xs(A|=0,e[8+(t|=0)>>2],i))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:if(Xs(A,e[t>>2],i)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+20>>2]=r,e[t+32>>2]=s,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2||(f[t+54|0]=1),e[t+44>>2]=4}},function(A,t,r,s){r|=0,s|=0,Xs(A|=0,e[8+(t|=0)>>2],0)&&fn(t,r,s)},In,function(A,t,r,s,i,l){r|=0,s|=0,i|=0,l|=0,Xs(A|=0,e[8+(t|=0)>>2],l)?xa(t,r,s,i):(A=e[A+8>>2],ZA[e[e[A>>2]+20>>2]](A,t,r,s,i,l))},function(A,t,r,s,i){if(r|=0,s|=0,i|=0,Xs(A|=0,e[8+(t|=0)>>2],i))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:{if(Xs(A,e[t>>2],i)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+32>>2]=s;A:if(e[t+44>>2]!=4){if(k[t+52>>1]=0,A=e[A+8>>2],ZA[e[e[A>>2]+20>>2]](A,t,r,r,1,i),d[t+53|0]){if(e[t+44>>2]=3,!d[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(f[t+54|0]=1)}A=e[A+8>>2],ZA[e[e[A>>2]+24>>2]](A,t,r,s,i)}},function(A,t,r,s){r|=0,s|=0,Xs(A|=0,e[8+(t|=0)>>2],0)?fn(t,r,s):(A=e[A+8>>2],ZA[e[e[A>>2]+28>>2]](A,t,r,s))},In,function(A){return 84787},In,function(A){return 85058},In,function(A){return 84147},function(A){var t;return t=A|=0,A=e[A>>2],e[t>>2]=A+1,0|((0|(A=f[0|A]))<0?65533:255&A)},function(A,t,r,s,i,l){A|=0,t|=0,r|=0,s|=0,i|=0,l|=0;var c,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0;if(c=hs(408),e[c+4>>2]=s,e[c>>2]=r,t?(qA(c+16|0,t,376),T[c+392>>3]=(T[t+368>>3]-T[t>>3])/+(r>>>0),t=0):t=1,e[c+400>>2]=i,f[c+8|0]=t,l){if(r=e[A+24>>2])for(t=e[A+20>>2],s=e[A+8>>2];(i=e[e[(t>>>8&16777212)+s>>2]+((1023&t)<<2)>>2])&&(Me(i),r=e[A+24>>2],s=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&&(Me(e[s>>2]),s=e[A+8>>2]+4|0,e[A+8>>2]=s,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])&&(f[t+8|0]=d[r+8|0],qA(t+16|0,A+40|0,376),(t=e[A+32>>2])&&Me(t),e[A+32>>2]=0)}if(r=(s=e[A+24>>2])+e[A+20>>2]|0,i=e[A+12>>2],(0|r)==(0|((0|(t=e[A+8>>2]))!=(0|i)?(i-t<<8)-1:0))){V=g=V-32|0;e:{A:{r:{a:{if((t=e[16+(l=A+4|0)>>2])>>>0>=1024){if(e[l+16>>2]=t-1024,t=e[l+4>>2],P=e[t>>2],i=t+4|0,e[l+4>>2]=i,(0|(t=e[l+8>>2]))==e[l+12>>2])if((p=e[l>>2])>>>0>>0)r=ye((s=(1+(i-p>>2)|0)/-2<<2)+i|0,i,t=t-i|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|p)?1:t-p>>1)>>>0>=1073741824)break a;if(_=(s=r<<2)+(I=hs(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|i)){if(Y=-4&(t=t-i|0),M=1+((h=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[i>>2],i=i+4|0,t=t+4|0,(0|M)!=(0|(r=r+1|0)););else t=s;if(r=s+Y|0,!(h>>>0<28))for(;e[t>>2]=e[i>>2],e[t+4>>2]=e[i+4>>2],e[t+8>>2]=e[i+8>>2],e[t+12>>2]=e[i+12>>2],e[t+16>>2]=e[i+16>>2],e[t+20>>2]=e[i+20>>2],e[t+24>>2]=e[i+24>>2],e[t+28>>2]=e[i+28>>2],i=i+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=_,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,p&&(Me(p),r=e[l+8>>2])}else r=t;e[r>>2]=P,e[l+8>>2]=e[l+8>>2]+4;break e}if((p=(i=e[l+8>>2])-e[l+4>>2]>>2)>>>0<(s=(t=e[l+12>>2])-(r=e[l>>2])|0)>>2>>>0){if((0|t)!=(0|i)){e[g+8>>2]=hs(4096),ja(l,g+8|0);break e}if(e[g+8>>2]=hs(4096),ga(l,g+8|0),t=e[l+4>>2],P=e[t>>2],i=t+4|0,e[l+4>>2]=i,(0|(t=e[l+8>>2]))==e[l+12>>2])if((p=e[l>>2])>>>0>>0)r=ye((s=(1+(i-p>>2)|0)/-2<<2)+i|0,i,t=t-i|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|p)?1:t-p>>1)>>>0>=1073741824)break a;if(_=(s=r<<2)+(I=hs(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|i)){if(Y=-4&(t=t-i|0),M=1+((h=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[i>>2],i=i+4|0,t=t+4|0,(0|M)!=(0|(r=r+1|0)););else t=s;if(r=s+Y|0,!(h>>>0<28))for(;e[t>>2]=e[i>>2],e[t+4>>2]=e[i+4>>2],e[t+8>>2]=e[i+8>>2],e[t+12>>2]=e[i+12>>2],e[t+16>>2]=e[i+16>>2],e[t+20>>2]=e[i+20>>2],e[t+24>>2]=e[i+24>>2],e[t+28>>2]=e[i+28>>2],i=i+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=_,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,p&&(Me(p),r=e[l+8>>2])}else r=t;e[r>>2]=P,e[l+8>>2]=e[l+8>>2]+4;break e}if(e[g+24>>2]=l+12,!((t=(0|t)==(0|r)?1:s>>1)>>>0>=1073741824)){if(t=hs(r=t<<2),e[g+8>>2]=t,s=t+(p<<2)|0,e[g+16>>2]=s,e[g+20>>2]=t+r,e[g+12>>2]=s,e[g+4>>2]=hs(4096),ja(g+8|0,g+4|0),(0|(i=e[l+8>>2]))==e[l+4>>2]){t=i;break A}for(;ga(g+8|0,i=i-4|0),e[l+4>>2]!=(0|i););break r}}Si(),L()}t=e[l+8>>2]}r=e[l>>2],e[l>>2]=e[g+8>>2],e[g+8>>2]=r,e[l+4>>2]=e[g+12>>2],e[g+12>>2]=i,e[l+8>>2]=e[g+16>>2],e[g+16>>2]=t,s=e[l+12>>2],e[l+12>>2]=e[g+20>>2],e[g+20>>2]=s,(0|t)!=(0|i)&&(e[g+16>>2]=t+(3+(i-t|0)&-4)),r&&Me(r)}V=g+32|0,r=(s=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]=s+1},function(A){var t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0;r=e[420+(A|=0)>>2]+1|0,e[A+420>>2]=r;e:{if(t=e[A+32>>2]){if(r>>>0>(g=e[t+4>>2])>>>0){(r=e[A+28>>2])&&(Me(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,p=e[A+28>>2]+16|0,I=+(r>>>0)/+(g>>>0),t=0;;){if(s=T[(r=t<<3)+c>>3],i=T[r+p>>3],T[r+l>>3]=s==s?(s-i)*I+i:i,(0|(r=1|t))==47)break e;s=T[(r<<=3)+c>>3],i=T[r+p>>3],T[r+l>>3]=s==s?(s-i)*I+i:i,t=t+2|0}}if(t=e[A+28>>2],r>>>0>te[t>>2]){if(l=e[A+24>>2]){if(f[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&&(Me(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]),d[t+8|0])qA(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,s=T[A+40>>3],e[t+392>>2]=0,e[t+396>>2]=0,T[t+16>>3]=s;else if(r=e[A+28>>2],d[r+8|0]&&(qA(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,T[t+16>>3]=T[t+392>>3]*+te[t+4>>2]+T[t+16>>3];break e}f[A+416|0]=1}else s=T[t+392>>3]+T[A+40>>3],T[A+40>>3]=s,T[t+16>>3]=s}return 0|(d[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])&&Me(t),(t=e[A+32>>2])&&Me(t),$n(A+4|0),0|A},function(A){var t=0;e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&Me(t),(t=e[A+32>>2])&&Me(t),$n(A+4|0),Me(A)},function(A,t,r){t|=0,r|=0;var s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0;if(!e[1088+(A|=0)>>2])return 0;e:if(t){for(I=A+648|0,p=A- -64|0;;){if(s=e[A+1088>>2],!(s=0|ZA[e[e[s>>2]+4>>2]](s)))break e;if(i=mA(T[A+32>>3]+T[s+16>>3]/+e[A+24>>2]),T[A+32>>3]=i,i=rn(6.283185307179586*i),i=mA(T[A+16>>3]+T[s>>3]*(.06*i*T[s+8>>3]+1)/+e[A+8>>2]),T[A+16>>3]=i,g=et(e[56848],e[56849],1284865837,1481765933),l=fe,l=(g=g+1|0)?l:l+1|0,e[56848]=g,e[56849]=l,c=.75*T[A+40>>3]+ +(l>>>1|0)/2147483647,T[A+40>>3]=c,h=T[s+24>>3],l=i>=T[s+32>>3],f[A+48|0]=l,c=(P=h)*(h=.2*c),c=er(p+512|0,er(p+440|0,i=T[s+352>>3]*(h*T[s+48>>3]+T[s+40>>3]*(i+i+-1+(l?c:.01*c)))*.5,T[s+104>>3],T[s+168>>3]),T[s+112>>3],T[s+176>>3]),c=er(p+8|0,er(p+80|0,er(p+152|0,er(p+224|0,er(p+296|0,er(p+368|0,c==c?(c-i)*T[s+184>>3]+i:i,T[s+96>>3],T[s+160>>3]),T[s+88>>3],T[s+152>>3]),T[s+80>>3],T[s+144>>3]),T[s+72>>3],T[s+136>>3]),T[s+64>>3],T[s+128>>3]),T[s+56>>3],T[s+120>>3]),g=et(e[56848],e[56849],1284865837,1481765933),l=fe,l=(g=g+1|0)?l:l+1|0,e[56848]=g,e[56849]=l,i=.75*T[A+56>>3]+ +(l>>>1|0)/2147483647,T[A+56>>3]=i,l=(M<<1)+r|0,h=er(I+8|0,i=T[s+352>>3]*(T[s+192>>3]*(.3*i))*.5,T[s+200>>3],T[s+248>>3]),_=T[s+296>>3],Y=er(I+80|0,i,T[s+208>>3],T[s+256>>3]),H=T[s+304>>3],J=er(I+152|0,i,T[s+216>>3],T[s+264>>3]),re=T[s+312>>3],ie=er(I+224|0,i,T[s+224>>3],T[s+272>>3]),me=T[s+320>>3],ve=er(I+296|0,i,T[s+232>>3],T[s+280>>3]),Te=T[s+328>>3],P=c,c=(er(I+368|0,i,T[s+240>>3],T[s+288>>3])-i)*T[s+336>>3]+(Te*(ve-i)+(me*(ie-i)+(re*(J-i)+(H*(Y-i)+(_*(h-i)+0))))),i=(P+(i==i?(i-c)*T[s+344>>3]+c:c))*T[s+360>>3]*4e3,s=(0|(s=ee(i)<2147483648?~~i:-2147483648))>=32e3?32e3:s,k[l>>1]=(0|s)<=-32e3?-32e3:s,(0|(M=M+1|0))==(0|t))break}M=t}return 0|(t>>>0>M>>>0?M:t)},function(A,t){t|=0,e[1088+(A|=0)>>2]=t},Vi,In,Hi,function(A,t,r,s){return fe=0,0}],wn.grow=function(A){var t=this.length;return this.length=this.length+A,t},wn.set=function(A,t){this[A]=t},wn.get=function(A){return this[A]},wn);return{v:function(){var A,t=0;V=A=V-16|0,0|aA(A+12|0,A+8|0)||(t=zA(4+(e[A+12>>2]<<2)|0),e[56800]=t,t&&(!(t=zA(e[A+8>>2]))||(e[e[56800]+(e[A+12>>2]<<2)>>2]=0,0|Ye(e[56800],0|t)))&&(e[56800]=0)),V=A+16|0,e[56841]=227236,e[56823]=42},w:gi,x:Wi,y:function(A,t){t|=0,e[(A|=0)>>2]=t},z:function(A,t){return t|=0,f[e[(A|=0)+4>>2]+t|0]},A:ji,B:ko,C:function(A){return d[(A|=0)+12|0]},D:function(A,t){t|=0,f[(A|=0)+12|0]=t},E:function(A){return d[(A|=0)+13|0]},F:function(A,t){t|=0,f[(A|=0)+13|0]=t},G:function(A){return d[(A|=0)+14|0]},H:function(A,t){t|=0,f[(A|=0)+14|0]=t},I:function(A){return d[(A|=0)+15|0]},J:function(A,t){t|=0,f[(A|=0)+15|0]=t},K:Mo,L:function(A,t){t|=0,e[(A|=0)+16>>2]=t},M:Ri,N:function(A,t){t|=0,e[(A|=0)+20>>2]=t},O:gi,P:Wi,Q:vo,R:ji,S:Eo,T:Mo,U:Ri,V:function(A){return e[(A|=0)+24>>2]},W:gi,X:function(){var A,t=0,r=0,s=0,i=0,l=0,c=0,g=0,p=0,I=0,h=0,M=0,P=0,_=0,Y=0,H=0,J=0,re=0,ie=0,me=0,ve=0,Te=0,Fe=0,Ne=0;if(A=hs(20),e[A+16>>2]=0,e[A+8>>2]=175,e[A+12>>2]=50,!(t=e[33208])){V=t=(V=me=V-16|0)-80|0;e:{if((r=ra(84292))&&(e[t+32>>2]=r,Bs(137584,160,85959,t+32|0),(0|Ns(137584))==-31||(e[t+16>>2]=r,Bs(137584,160,86031,t+16|0),(0|Ns(137584))==-31)))break e;(r=ra(84619))&&(e[t>>2]=r,Bs(137584,160,85959,t),(0|Ns(137584))==-31)||(r=d[84826]|d[84827]<<8|d[84828]<<16|d[84829]<<24,e[34396]=d[84822]|d[84823]<<8|d[84824]<<16|d[84825]<<24,e[34397]=r,k[68804]=d[84846]|d[84847]<<8,r=d[84842]|d[84843]<<8|d[84844]<<16|d[84845]<<24,e[34400]=d[84838]|d[84839]<<8|d[84840]<<16|d[84841]<<24,e[34401]=r,r=d[84834]|d[84835]<<8|d[84836]<<16|d[84837]<<24,e[34398]=d[84830]|d[84831]<<8|d[84832]<<16|d[84833]<<24,e[34399]=r)}if(V=t+80|0,e[me+12>>2]=0,i=me+12|0,V=g=V-16|0,e[g+12>>2]=22050,de(85144)||de(85315)||de(85473)||de(85698),M=g+12|0,V=l=V-16|0,e[l+12>>2]=0,!((t=Kt(137832,84262,0,i))||(t=Kt(137836,84420,0,i))||(t=Kt(137840,84813,0,i))||(t=Kt(137820,85016,l+12|0,i))))if(e[34454]=te[l+12>>2]/68,r=e[34460],e[34456]=r,r&&(0|(I=d[0|r]|d[r+1|0]<<8|d[r+2|0]<<16|d[r+3|0]<<24))==83969){if(P=d[r+4|0]|d[r+5|0]<<8|d[r+6|0]<<16|d[r+7|0]<<24,r=e[34458],Y=d[0|r],e[34461]=Y,Y)for(t=r+4|0,I=0;s=O(I,44)+137856|0,i=d[0|t],e[s+36>>2]=i,e[s+40>>2]=d[t+1|0],c=d[t+8|0]|d[t+9|0]<<8|d[t+10|0]<<16|d[t+11|0]<<24,r=d[t+4|0]|d[t+5|0]<<8|d[t+6|0]<<16|d[t+7|0]<<24,f[0|s]=r,f[s+1|0]=r>>>8,f[s+2|0]=r>>>16,f[s+3|0]=r>>>24,f[s+4|0]=c,f[s+5|0]=c>>>8,f[s+6|0]=c>>>16,f[s+7|0]=c>>>24,c=d[t+16|0]|d[t+17|0]<<8|d[t+18|0]<<16|d[t+19|0]<<24,r=d[t+12|0]|d[t+13|0]<<8|d[t+14|0]<<16|d[t+15|0]<<24,f[s+8|0]=r,f[s+9|0]=r>>>8,f[s+10|0]=r>>>16,f[s+11|0]=r>>>24,f[s+12|0]=c,f[s+13|0]=c>>>8,f[s+14|0]=c>>>16,f[s+15|0]=c>>>24,c=d[t+24|0]|d[t+25|0]<<8|d[t+26|0]<<16|d[t+27|0]<<24,r=d[t+20|0]|d[t+21|0]<<8|d[t+22|0]<<16|d[t+23|0]<<24,f[s+16|0]=r,f[s+17|0]=r>>>8,f[s+18|0]=r>>>16,f[s+19|0]=r>>>24,f[s+20|0]=c,f[s+21|0]=c>>>8,f[s+22|0]=c>>>16,f[s+23|0]=c>>>24,c=d[t+32|0]|d[t+33|0]<<8|d[t+34|0]<<16|d[t+35|0]<<24,r=d[t+28|0]|d[t+29|0]<<8|d[t+30|0]<<16|d[t+31|0]<<24,f[s+24|0]=r,f[s+25|0]=r>>>8,f[s+26|0]=r>>>16,f[s+27|0]=r>>>24,f[s+28|0]=c,f[s+29|0]=c>>>8,f[s+30|0]=c>>>16,f[s+31|0]=c>>>24,r=t+36|0,e[s+32>>2]=r,t=r+(i<<4)|0,(0|Y)!=(0|(I=I+1|0)););(0|Y)<=e[34457]&&(e[34457]=0),t=0,M&&(e[M>>2]=P)}else e:{A:{if(i){if(r=e[i>>2]){Me(e[r+4>>2]),t=e[i>>2];break A}if(t=zA(16),e[i>>2]=t,t)break A;t=48}else t=268436223;break e}e[t>>2]=1,e[t+4>>2]=Ln(137584),r=e[i>>2],e[r+12>>2]=83969,e[r+8>>2]=I,t=268436223}if(V=l+16|0,r=t,!t){if(M=e[g+12>>2],e[50754]=M,e[50759]=0,e[50760]=134217728/(0|M),e[50762]=0,e[50763]=0,e[50765]=2147483647,e[50781]=100,e[50779]=32,e[50761]=(M<<6)/(0|M),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],P=(0|(t=(0|(i=O(M,60)))/12800|0))>=128?128:t,e[50799]=P,e[50800]=(0|P)/2,!((0|M)==22050|(0|i)<12800)){if(M=1&(t=(0|P)<=1?1:P),re=+(0|P),I=0,(0|P)>=2)for(P=2147483646&t,t=0;H=I+132160|0,p=127*(1-os(6.283185307179586*+(0|I)/re)),_=ee(p)<2147483648?~~p:-2147483648,f[0|H]=_,H=(i=1|I)+132160|0,p=127*(1-os(6.283185307179586*+(0|i)/re)),_=ee(p)<2147483648?~~p:-2147483648,f[0|H]=_,I=I+2|0,(0|P)!=(0|(t=t+2|0)););M&&(t=I+132160|0,p=127*(1-os(6.283185307179586*+(0|I)/re)),H=ee(p)<2147483648?~~p:-2147483648,f[0|t]=H)}if(e[50801]=105792,e[56797]=Pr(),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,it(),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,re=-3.141592653589793/+(0|(t=e[55918])),T[27967]=re,i=(0|O(t,630))/1e4|0,e[55920]=i,t=(0|O(t,950))/1e4|0,e[55919]=t,p=-2*re,T[27968]=p,re=(Fe=xr(re*+(0|i)))*-Fe,T[28129]=re,p=Fe*os(p*+(0|t)),p+=p,T[28128]=p,T[28127]=1-p-re,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,V=l=V-416|0,e[l+16>>2]=137584,e[l+20>>2]=47,e[l+24>>2]=85952,lA(t=l+240|0,85699,l+16|0),c=ms(t,86034)){if(ct(l+240|0,170,c))for(M=5|(t=l+240|0),P=10|t;d[l+240|0]!=47&&(e[l+240>>2]!=1701736308?Hr(l+240|0,86614,9)||(e[l+4>>2]=l+32,e[l>>2]=l+239,(0|jA(P,86829,l))==2&&(i=e[34064],e[(Y=136272+(i<<4)|0)>>2]=f[l+239|0],t=Ln(l+32|0),e[34064]=i+1,e[Y+12>>2]=t,e[Y+4>>2]=0)):(V=t=V-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,jA(M,84222,t),V=t+48|0)),ct(l+240|0,170,c););Ir(c)}V=l+416|0,e[50297]=0,e[50298]=0,e[50301]=0,e[50302]=0,e[50299]=0,e[50300]=0,sn(0,85698),e[36425]=0,e[36424]=0,e[36426]=0,e[36427]=-1,Io(),BA(0),s=e[25690],e[34062]=s,h=e[25689],l=e[25688],e[34060]=l,e[34061]=h,J=e[25687],c=e[25686],e[34058]=c,e[34059]=J,ie=e[25685],Y=e[25684],e[34056]=Y,e[34057]=ie,ve=e[25683],M=e[25682],e[34054]=M,e[34055]=ve,Te=e[25681],P=e[25680],e[34052]=P,e[34053]=Te,_=e[25679],i=e[25678],e[34050]=i,e[34051]=_,H=e[25677],t=e[25676],e[34048]=t,e[34049]=H,e[33729]=t,e[33730]=H,e[33731]=i,e[33732]=_,e[33733]=P,e[33734]=Te,e[33735]=M,e[33736]=ve,e[33737]=Y,e[33738]=ie,e[33739]=c,e[33740]=J,e[33741]=l,e[33742]=h,e[33743]=s,or(1,175),or(2,100),or(6,e[47200]),or(5,e[47201]),or(7,0),e[47198]=0,e[47197]=0,p=+Ae()/1e3,i=et(t=ee(p)<9223372036854776e3?~~p>>>0:0,0,1103515245,0),t=fe,t=(i=i+12345|0)>>>0<12345?t+1|0:t,e[33209]=ui(i,t)}if(V=g+16|0,r){H=e[30450],ve=e[me+12>>2],g=(h=V-560|0)+48|0,V=s=(V=h)-16|0;e:{A:switch(0|As(r-268435967|0,24)){case 0:St(g,84133,512);break e;case 1:St(g,84580,512);break e;case 2:St(g,84747,512);break e;case 3:St(g,85084,512);break e;case 4:St(g,85251,512);break e;case 5:St(g,85380,512);break e;case 6:St(g,85607,512);break e;case 7:St(g,85722,512);break e;case 8:St(g,85913,512);break e;case 9:St(g,86046,512);break e;case 10:St(g,86153,512);break e;case 11:St(g,86678,512);break e;case 12:St(g,86773,512);break e;case 14:St(g,86958,512);break e;case 15:St(g,87071,512);break e;default:break A}if(1879048192&r)e[s>>2]=r,Bs(g,512,87182,s);else{if(I=0,l=y[123728+((r>>>0<=153?r:0)<<1)>>1]+121804|0,r=e[e[56841]+20>>2]){Te=e[r+4>>2],J=e[r>>2],ie=e[J>>2]+1794895138|0,_=Ja(e[J+8>>2],ie),i=Ja(e[J+12>>2],ie),t=Ja(e[J+16>>2],ie);A:if(!(Te>>>2>>>0<=_>>>0||3&(t|i)|(r=Te-(_<<2)|0)>>>0<=i>>>0|t>>>0>=r>>>0))for(M=t>>>2|0,P=i>>>2|0;;){if(Y=Ja(e[(r=((t=(i=(c=_>>>1|0)+Ne|0)<<1)+P<<2)+J|0)>>2],ie),(r=Ja(e[r+4>>2],ie))>>>0>=Te>>>0|Y>>>0>=Te-r>>>0|d[(r+Y|0)+J|0])break A;if(!(r=Ar(l,r+J|0))){if(t=Ja(e[(r=(t+M<<2)+J|0)>>2],ie),(r=Ja(e[r+4>>2],ie))>>>0>=Te>>>0|t>>>0>=Te-r>>>0)break A;I=d[(t+r|0)+J|0]?0:r+J|0;break A}if((0|_)==1)break A;_=(r=(0|r)<0)?c:_-c|0,Ne=r?Ne:i}}if((r=kA(t=I||l))>>>0>=512){qA(g,t,511),f[g+511|0]=0;break e}qA(g,t,r+1|0)}}V=s+16|0;e:if(ve){A:switch(e[ve>>2]){case 0:e[h+16>>2]=e[ve+4>>2],e[h+20>>2]=h+48,tr(H,87384,h+16|0);break e;case 1:break A;default:break e}t=e[ve+12>>2],r=e[ve+8>>2],e[h+36>>2]=e[ve+4>>2],fe=r,e[h+40>>2]=t,e[h+44>>2]=fe,e[h+32>>2]=h+48,tr(H,87521,h+32|0)}else e[h>>2]=h+48,tr(H,87700,h);V=h+560|0,(0|me)!=-12&&(r=e[me+12>>2])&&(Me(e[r+4>>2]),Me(e[me+12>>2]),e[me+12>>2]=0)}r=e[24806],e[34389]=0,e[32538]=r,r=(1e3+((r=O(e[50754],100))-((0|r)%1e3|0)|0)|0)/500|0,e[34390]=r,r=Dt(e[34391],r),e[34392]=r,r&&(e[34391]=r,e[34393]=40,(r=Dt(e[34388],1440))&&(e[34388]=r)),e[47198]=0,V=me+16|0,t=e[50754],e[33208]=t}return e[A+4>>2]=t,e[A>>2]=bA(),0|A},Y:function(A,t,r){A|=0,t|=0,r|=0,e[34440]=r,$e(3,e[A+12>>2]),$e(1,e[A+8>>2]),(A=e[A+16>>2])?Hs(A):Ha(1024),IA(t),e[34440]=0},Z:function(A,t,r){return A|=0,t|=0,r|=0,e[34440]=0,(A=ms(r,1032))?(e[47195]=A,e[47197]=130,A||(e[47195]=e[30450]),IA(t),e[47195]=0,e[47197]=0,e[47195]=e[30450],Ir(A),0):-1},_:function(A){return 36},$:function(A,t,r){var s;return A|=0,t|=0,V=s=V-32|0,(r|=0)?(e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+12>>2]=r,e[s+8>>2]=t,f[s+21|0]=0,t=Hs(s+8|0)):t=Ha(t),e[A+16>>2]=201188,V=s+32|0,0|t},aa:function(A,t,r,s){var i;return A|=0,t|=0,V=i=V-32|0,(r|=0)|(s|=0)?(e[i+24>>2]=0,e[i+28>>2]=0,e[i+16>>2]=0,e[i+20>>2]=0,e[i+12>>2]=r,e[i+8>>2]=t,f[i+22|0]=0,f[i+20|0]=s,t=Hs(i+8|0)):t=Ha(t),e[A+16>>2]=201188,V=i+32|0,0|t},ba:function(A,t,r,s,i){var l;return A|=0,t|=0,V=l=V-32|0,(s|=0)|(i|=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,f[l+21|0]=i,f[l+20|0]=s,t=Hs(l+8|0)):t=Ha(t),e[A+16>>2]=201188,V=l+32|0,0|t},ca:function(A,t,r,s,i,l){var c;return A|=0,t|=0,V=c=V-32|0,(s|=0)|(i|=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,f[c+22|0]=l,f[c+21|0]=i,f[c+20|0]=s,t=Hs(c+8|0)):t=Ha(t),e[A+16>>2]=201188,V=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:vo,ga:ji,ha:ko,ia:Eo,ja:function(A,t){t|=0,e[(A|=0)+12>>2]=t},ka:gi,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:ZA,va:function(){return 227192},wa:Me,xa:zA,ya:function(A){return(A|=0)?0|!!(0|yA(A,125228)):0}}}(n)}(o)},instantiate:function(a,o){return{then:function(n){var u=new go.Module(a);n({instance:new go.Instance(u,o)})}}},RuntimeError:Error};typeof go!="object"&&Bn("no native wasm support detected");var _C=!1;function O2(a,o){a||Bn(o)}var Fs,io,Y0,Lt,Zr,zC,NC,Vp=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function no(a,o,n){for(var u=o+n,m=o;a[m]&&!(m>=u);)++m;if(m-o>16&&a.buffer&&Vp)return Vp.decode(a.subarray(o,m));for(var b="";o>10,56320|1023&x)}}else b+=String.fromCharCode((31&C)<<6|w)}else b+=String.fromCharCode(C)}return b}function oo(a,o){return a?no(io,a,o):""}function zc(a,o,n,u){if(!(u>0))return 0;for(var m=n,b=n+u-1,C=0;C=55296&&w<=57343&&(w=65536+((1023&w)<<10)|1023&a.charCodeAt(++C)),w<=127){if(n>=b)break;o[n++]=w}else if(w<=2047){if(n+1>=b)break;o[n++]=192|w>>6,o[n++]=128|63&w}else if(w<=65535){if(n+2>=b)break;o[n++]=224|w>>12,o[n++]=128|w>>6&63,o[n++]=128|63&w}else{if(n+3>=b)break;o[n++]=240|w>>18,o[n++]=128|w>>12&63,o[n++]=128|w>>6&63,o[n++]=128|63&w}}return o[n]=0,n-m}function LC(a){for(var o=0,n=0;n=55296&&u<=57343?(o+=4,++n):o+=3}return o}var Mn,_2=ae.INITIAL_MEMORY||16777216;S0=ae.wasmMemory?ae.wasmMemory:new go.Memory({initial:_2/65536,maximum:_2/65536}),Mn=S0.buffer,ae.HEAP8=Fs=new Int8Array(Mn),ae.HEAP16=Y0=new Int16Array(Mn),ae.HEAP32=Lt=new Int32Array(Mn),ae.HEAPU8=io=new Uint8Array(Mn),ae.HEAPU16=new Uint16Array(Mn),ae.HEAPU32=Zr=new Uint32Array(Mn),ae.HEAPF32=zC=new Float32Array(Mn),ae.HEAPF64=NC=new Float64Array(Mn),_2=S0.buffer.byteLength;var Hp=[],RC=[],Up=[],jC=!1;function WC(a){RC.unshift(a)}var ft,zr,Di=0,Uo=null;function YC(a){Di++,ae.monitorRunDependencies&&ae.monitorRunDependencies(Di)}function VC(a){if(Di--,ae.monitorRunDependencies&&ae.monitorRunDependencies(Di),Di==0&&Uo){var o=Uo;Uo=null,o()}}function Bn(a){throw ae.onAbort&&ae.onAbort(a),fo(a="Aborted("+a+")"),_C=!0,a+=". Build with -sASSERTIONS for more info.",new go.RuntimeError(a)}function L6(a){this.name="ExitStatus",this.message="Program terminated with exit("+a+")",this.status=a}function z2(a){for(;a.length>0;)a.shift()(ae)}function R6(a,o="i8"){switch(o.endsWith("*")&&(o="*"),o){case"i1":case"i8":return Fs[a|0];case"i16":return Y0[a>>1];case"i32":case"i64":return Lt[a>>2];case"float":return zC[a>>2];case"double":return NC[a>>3];case"*":return Zr[a>>2];default:Bn("invalid type for getValue: "+o)}return null}function j6(a){this.excPtr=a,this.ptr=a-24,this.set_type=function(o){Zr[this.ptr+4>>2]=o},this.get_type=function(){return Zr[this.ptr+4>>2]},this.set_destructor=function(o){Zr[this.ptr+8>>2]=o},this.get_destructor=function(){return Zr[this.ptr+8>>2]},this.set_refcount=function(o){Lt[this.ptr>>2]=o},this.set_caught=function(o){o=o?1:0,Fs[this.ptr+12|0]=o},this.get_caught=function(){return Fs[this.ptr+12|0]!=0},this.set_rethrown=function(o){o=o?1:0,Fs[this.ptr+13|0]=o},this.get_rethrown=function(){return Fs[this.ptr+13|0]!=0},this.init=function(o,n){this.set_adjusted_ptr(0),this.set_type(o),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var o=Lt[this.ptr>>2];Lt[this.ptr>>2]=o+1},this.release_ref=function(){var o=Lt[this.ptr>>2];return Lt[this.ptr>>2]=o-1,o===1},this.set_adjusted_ptr=function(o){Zr[this.ptr+16>>2]=o},this.get_adjusted_ptr=function(){return Zr[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Ub(this.get_type()))return Zr[this.excPtr>>2];var o=this.get_adjusted_ptr();return o!==0?o:this.excPtr}}var nr={isAbs:a=>a.charAt(0)==="/",splitPath:a=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),normalizeArray:(a,o)=>{for(var n=0,u=a.length-1;u>=0;u--){var m=a[u];m==="."?a.splice(u,1):m===".."?(a.splice(u,1),n++):n&&(a.splice(u,1),n--)}if(o)for(;n;n--)a.unshift("..");return a},normalize:a=>{var o=nr.isAbs(a),n=a.substr(-1)==="/";return(a=nr.normalizeArray(a.split("/").filter(u=>!!u),!o).join("/"))||o||(a="."),a&&n&&(a+="/"),(o?"/":"")+a},dirname:a=>{var o=nr.splitPath(a),n=o[0],u=o[1];return n||u?(u&&(u=u.substr(0,u.length-1)),n+u):"."},basename:a=>{if(a==="/")return"/";var o=(a=(a=nr.normalize(a)).replace(/\/$/,"")).lastIndexOf("/");return o===-1?a:a.substr(o+1)},join:function(){var a=Array.prototype.slice.call(arguments);return nr.normalize(a.join("/"))},join2:(a,o)=>nr.normalize(a+"/"+o)},Zn={resolve:function(){for(var a="",o=!1,n=arguments.length-1;n>=-1&&!o;n--){var u=n>=0?arguments[n]:$.cwd();if(typeof u!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!u)return"";a=u+"/"+a,o=nr.isAbs(u)}return(o?"/":"")+(a=nr.normalizeArray(a.split("/").filter(m=>!!m),!o).join("/"))||"."},relative:(a,o)=>{function n(x){for(var D=0;D=0&&x[B]==="";B--);return D>B?[]:x.slice(D,B-D+1)}a=Zn.resolve(a).substr(1),o=Zn.resolve(o).substr(1);for(var u=n(a.split("/")),m=n(o.split("/")),b=Math.min(u.length,m.length),C=b,w=0;w0&&(W0(no(a.output,0)),a.output=[])}},default_tty1_ops:{put_char:function(a,o){o===null||o===10?(fo(no(a.output,0)),a.output=[]):o!=0&&a.output.push(o)},fsync:function(a){a.output&&a.output.length>0&&(fo(no(a.output,0)),a.output=[])}}};function UC(a){Bn()}var Et={ops_table:null,mount:function(a){return Et.createNode(null,"/",16895,0)},createNode:function(a,o,n,u){if($.isBlkdev(n)||$.isFIFO(n))throw new $.ErrnoError(63);Et.ops_table||(Et.ops_table={dir:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr,lookup:Et.node_ops.lookup,mknod:Et.node_ops.mknod,rename:Et.node_ops.rename,unlink:Et.node_ops.unlink,rmdir:Et.node_ops.rmdir,readdir:Et.node_ops.readdir,symlink:Et.node_ops.symlink},stream:{llseek:Et.stream_ops.llseek}},file:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr},stream:{llseek:Et.stream_ops.llseek,read:Et.stream_ops.read,write:Et.stream_ops.write,allocate:Et.stream_ops.allocate,mmap:Et.stream_ops.mmap,msync:Et.stream_ops.msync}},link:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr,readlink:Et.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr},stream:$.chrdev_stream_ops}});var m=$.createNode(a,o,n,u);return $.isDir(m.mode)?(m.node_ops=Et.ops_table.dir.node,m.stream_ops=Et.ops_table.dir.stream,m.contents={}):$.isFile(m.mode)?(m.node_ops=Et.ops_table.file.node,m.stream_ops=Et.ops_table.file.stream,m.usedBytes=0,m.contents=null):$.isLink(m.mode)?(m.node_ops=Et.ops_table.link.node,m.stream_ops=Et.ops_table.link.stream):$.isChrdev(m.mode)&&(m.node_ops=Et.ops_table.chrdev.node,m.stream_ops=Et.ops_table.chrdev.stream),m.timestamp=Date.now(),a&&(a.contents[o]=m,a.timestamp=m.timestamp),m},getFileDataAsTypedArray:function(a){return a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array(0)},expandFileStorage:function(a,o){var n=a.contents?a.contents.length:0;if(!(n>=o)){o=Math.max(o,n*(n<1048576?2:1.125)>>>0),n!=0&&(o=Math.max(o,256));var u=a.contents;a.contents=new Uint8Array(o),a.usedBytes>0&&a.contents.set(u.subarray(0,a.usedBytes),0)}},resizeFileStorage:function(a,o){if(a.usedBytes!=o)if(o==0)a.contents=null,a.usedBytes=0;else{var n=a.contents;a.contents=new Uint8Array(o),n&&a.contents.set(n.subarray(0,Math.min(o,a.usedBytes))),a.usedBytes=o}},node_ops:{getattr:function(a){var o={};return o.dev=$.isChrdev(a.mode)?a.id:1,o.ino=a.id,o.mode=a.mode,o.nlink=1,o.uid=0,o.gid=0,o.rdev=a.rdev,$.isDir(a.mode)?o.size=4096:$.isFile(a.mode)?o.size=a.usedBytes:$.isLink(a.mode)?o.size=a.link.length:o.size=0,o.atime=new Date(a.timestamp),o.mtime=new Date(a.timestamp),o.ctime=new Date(a.timestamp),o.blksize=4096,o.blocks=Math.ceil(o.size/o.blksize),o},setattr:function(a,o){o.mode!==void 0&&(a.mode=o.mode),o.timestamp!==void 0&&(a.timestamp=o.timestamp),o.size!==void 0&&Et.resizeFileStorage(a,o.size)},lookup:function(a,o){throw $.genericErrors[44]},mknod:function(a,o,n,u){return Et.createNode(a,o,n,u)},rename:function(a,o,n){if($.isDir(a.mode)){var u;try{u=$.lookupNode(o,n)}catch{}if(u)for(var m in u.contents)throw new $.ErrnoError(55)}delete a.parent.contents[a.name],a.parent.timestamp=Date.now(),a.name=n,o.contents[n]=a,o.timestamp=a.parent.timestamp,a.parent=o},unlink:function(a,o){delete a.contents[o],a.timestamp=Date.now()},rmdir:function(a,o){var n=$.lookupNode(a,o);for(var u in n.contents)throw new $.ErrnoError(55);delete a.contents[o],a.timestamp=Date.now()},readdir:function(a){var o=[".",".."];for(var n in a.contents)a.contents.hasOwnProperty(n)&&o.push(n);return o},symlink:function(a,o,n){var u=Et.createNode(a,o,41471,0);return u.link=n,u},readlink:function(a){if(!$.isLink(a.mode))throw new $.ErrnoError(28);return a.link}},stream_ops:{read:function(a,o,n,u,m){var b=a.node.contents;if(m>=a.node.usedBytes)return 0;var C=Math.min(a.node.usedBytes-m,u);if(C>8&&b.subarray)o.set(b.subarray(m,m+C),n);else for(var w=0;w0||n+o{if(!(a=Zn.resolve(a)))return{path:"",node:null};if((o=Object.assign({follow_mount:!0,recurse_count:0},o)).recurse_count>8)throw new $.ErrnoError(32);for(var n=a.split("/").filter(x=>!!x),u=$.root,m="/",b=0;b40)throw new $.ErrnoError(32)}}return{path:m,node:u}},getPath:a=>{for(var o;;){if($.isRoot(a)){var n=a.mount.mountpoint;return o?n[n.length-1]!=="/"?n+"/"+o:n+o:n}o=o?a.name+"/"+o:a.name,a=a.parent}},hashName:(a,o)=>{for(var n=0,u=0;u>>0)%$.nameTable.length},hashAddNode:a=>{var o=$.hashName(a.parent.id,a.name);a.name_next=$.nameTable[o],$.nameTable[o]=a},hashRemoveNode:a=>{var o=$.hashName(a.parent.id,a.name);if($.nameTable[o]===a)$.nameTable[o]=a.name_next;else for(var n=$.nameTable[o];n;){if(n.name_next===a){n.name_next=a.name_next;break}n=n.name_next}},lookupNode:(a,o)=>{var n=$.mayLookup(a);if(n)throw new $.ErrnoError(n,a);for(var u=$.hashName(a.id,o),m=$.nameTable[u];m;m=m.name_next){var b=m.name;if(m.parent.id===a.id&&b===o)return m}return $.lookup(a,o)},createNode:(a,o,n,u)=>{var m=new $.FSNode(a,o,n,u);return $.hashAddNode(m),m},destroyNode:a=>{$.hashRemoveNode(a)},isRoot:a=>a===a.parent,isMountpoint:a=>!!a.mounted,isFile:a=>(61440&a)==32768,isDir:a=>(61440&a)==16384,isLink:a=>(61440&a)==40960,isChrdev:a=>(61440&a)==8192,isBlkdev:a=>(61440&a)==24576,isFIFO:a=>(61440&a)==4096,isSocket:a=>!(49152&~a),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:a=>{var o=$.flagModes[a];if(o===void 0)throw new Error("Unknown file open mode: "+a);return o},flagsToPermissionString:a=>{var o=["r","w","rw"][3&a];return 512&a&&(o+="w"),o},nodePermissions:(a,o)=>$.ignorePermissions||(!o.includes("r")||292&a.mode)&&(!o.includes("w")||146&a.mode)&&(!o.includes("x")||73&a.mode)?0:2,mayLookup:a=>{var o=$.nodePermissions(a,"x");return o||(a.node_ops.lookup?0:2)},mayCreate:(a,o)=>{try{return $.lookupNode(a,o),20}catch{}return $.nodePermissions(a,"wx")},mayDelete:(a,o,n)=>{var u;try{u=$.lookupNode(a,o)}catch(b){return b.errno}var m=$.nodePermissions(a,"wx");if(m)return m;if(n){if(!$.isDir(u.mode))return 54;if($.isRoot(u)||$.getPath(u)===$.cwd())return 10}else if($.isDir(u.mode))return 31;return 0},mayOpen:(a,o)=>a?$.isLink(a.mode)?32:$.isDir(a.mode)&&($.flagsToPermissionString(o)!=="r"||512&o)?31:$.nodePermissions(a,$.flagsToPermissionString(o)):44,MAX_OPEN_FDS:4096,nextfd:(a=0,o=$.MAX_OPEN_FDS)=>{for(var n=a;n<=o;n++)if(!$.streams[n])return n;throw new $.ErrnoError(33)},getStream:a=>$.streams[a],createStream:(a,o,n)=>{$.FSStream||($.FSStream=function(){this.shared={}},$.FSStream.prototype={},Object.defineProperties($.FSStream.prototype,{object:{get:function(){return this.node},set:function(m){this.node=m}},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(m){this.shared.flags=m}},position:{get:function(){return this.shared.position},set:function(m){this.shared.position=m}}})),a=Object.assign(new $.FSStream,a);var u=$.nextfd(o,n);return a.fd=u,$.streams[u]=a,a},closeStream:a=>{$.streams[a]=null},chrdev_stream_ops:{open:a=>{var o=$.getDevice(a.node.rdev);a.stream_ops=o.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},llseek:()=>{throw new $.ErrnoError(70)}},major:a=>a>>8,minor:a=>255&a,makedev:(a,o)=>a<<8|o,registerDevice:(a,o)=>{$.devices[a]={stream_ops:o}},getDevice:a=>$.devices[a],getMounts:a=>{for(var o=[],n=[a];n.length;){var u=n.pop();o.push(u),n.push.apply(n,u.mounts)}return o},syncfs:(a,o)=>{typeof a=="function"&&(o=a,a=!1),$.syncFSRequests++,$.syncFSRequests>1&&fo("warning: "+$.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var n=$.getMounts($.root.mount),u=0;function m(C){return $.syncFSRequests--,o(C)}function b(C){if(C)return b.errored?void 0:(b.errored=!0,m(C));++u>=n.length&&m(null)}n.forEach(C=>{if(!C.type.syncfs)return b(null);C.type.syncfs(C,a,b)})},mount:(a,o,n)=>{var u,m=n==="/",b=!n;if(m&&$.root)throw new $.ErrnoError(10);if(!m&&!b){var C=$.lookupPath(n,{follow_mount:!1});if(n=C.path,u=C.node,$.isMountpoint(u))throw new $.ErrnoError(10);if(!$.isDir(u.mode))throw new $.ErrnoError(54)}var w={type:a,opts:o,mountpoint:n,mounts:[]},E=a.mount(w);return E.mount=w,w.root=E,m?$.root=E:u&&(u.mounted=w,u.mount&&u.mount.mounts.push(w)),E},unmount:a=>{var o=$.lookupPath(a,{follow_mount:!1});if(!$.isMountpoint(o.node))throw new $.ErrnoError(28);var n=o.node,u=n.mounted,m=$.getMounts(u);Object.keys($.nameTable).forEach(C=>{for(var w=$.nameTable[C];w;){var E=w.name_next;m.includes(w.mount)&&$.destroyNode(w),w=E}}),n.mounted=null;var b=n.mount.mounts.indexOf(u);n.mount.mounts.splice(b,1)},lookup:(a,o)=>a.node_ops.lookup(a,o),mknod:(a,o,n)=>{var u=$.lookupPath(a,{parent:!0}).node,m=nr.basename(a);if(!m||m==="."||m==="..")throw new $.ErrnoError(28);var b=$.mayCreate(u,m);if(b)throw new $.ErrnoError(b);if(!u.node_ops.mknod)throw new $.ErrnoError(63);return u.node_ops.mknod(u,m,o,n)},create:(a,o)=>(o=o!==void 0?o:438,o&=4095,o|=32768,$.mknod(a,o,0)),mkdir:(a,o)=>(o=o!==void 0?o:511,o&=1023,o|=16384,$.mknod(a,o,0)),mkdirTree:(a,o)=>{for(var n=a.split("/"),u="",m=0;m(n===void 0&&(n=o,o=438),o|=8192,$.mknod(a,o,n)),symlink:(a,o)=>{if(!Zn.resolve(a))throw new $.ErrnoError(44);var n=$.lookupPath(o,{parent:!0}).node;if(!n)throw new $.ErrnoError(44);var u=nr.basename(o),m=$.mayCreate(n,u);if(m)throw new $.ErrnoError(m);if(!n.node_ops.symlink)throw new $.ErrnoError(63);return n.node_ops.symlink(n,u,a)},rename:(a,o)=>{var n,u,m=nr.dirname(a),b=nr.dirname(o),C=nr.basename(a),w=nr.basename(o);if(n=$.lookupPath(a,{parent:!0}).node,u=$.lookupPath(o,{parent:!0}).node,!n||!u)throw new $.ErrnoError(44);if(n.mount!==u.mount)throw new $.ErrnoError(75);var E,x=$.lookupNode(n,C),D=Zn.relative(a,b);if(D.charAt(0)!==".")throw new $.ErrnoError(28);if((D=Zn.relative(o,m)).charAt(0)!==".")throw new $.ErrnoError(55);try{E=$.lookupNode(u,w)}catch{}if(x!==E){var B=$.isDir(x.mode),v=$.mayDelete(n,C,B);if(v)throw new $.ErrnoError(v);if(v=E?$.mayDelete(u,w,B):$.mayCreate(u,w))throw new $.ErrnoError(v);if(!n.node_ops.rename)throw new $.ErrnoError(63);if($.isMountpoint(x)||E&&$.isMountpoint(E))throw new $.ErrnoError(10);if(u!==n&&(v=$.nodePermissions(n,"w")))throw new $.ErrnoError(v);$.hashRemoveNode(x);try{n.node_ops.rename(x,u,w)}catch(F){throw F}finally{$.hashAddNode(x)}}},rmdir:a=>{var o=$.lookupPath(a,{parent:!0}).node,n=nr.basename(a),u=$.lookupNode(o,n),m=$.mayDelete(o,n,!0);if(m)throw new $.ErrnoError(m);if(!o.node_ops.rmdir)throw new $.ErrnoError(63);if($.isMountpoint(u))throw new $.ErrnoError(10);o.node_ops.rmdir(o,n),$.destroyNode(u)},readdir:a=>{var o=$.lookupPath(a,{follow:!0}).node;if(!o.node_ops.readdir)throw new $.ErrnoError(54);return o.node_ops.readdir(o)},unlink:a=>{var o=$.lookupPath(a,{parent:!0}).node;if(!o)throw new $.ErrnoError(44);var n=nr.basename(a),u=$.lookupNode(o,n),m=$.mayDelete(o,n,!1);if(m)throw new $.ErrnoError(m);if(!o.node_ops.unlink)throw new $.ErrnoError(63);if($.isMountpoint(u))throw new $.ErrnoError(10);o.node_ops.unlink(o,n),$.destroyNode(u)},readlink:a=>{var o=$.lookupPath(a).node;if(!o)throw new $.ErrnoError(44);if(!o.node_ops.readlink)throw new $.ErrnoError(28);return Zn.resolve($.getPath(o.parent),o.node_ops.readlink(o))},stat:(a,o)=>{var n=$.lookupPath(a,{follow:!o}).node;if(!n)throw new $.ErrnoError(44);if(!n.node_ops.getattr)throw new $.ErrnoError(63);return n.node_ops.getattr(n)},lstat:a=>$.stat(a,!0),chmod:(a,o,n)=>{var u;if(typeof a=="string"?u=$.lookupPath(a,{follow:!n}).node:u=a,!u.node_ops.setattr)throw new $.ErrnoError(63);u.node_ops.setattr(u,{mode:4095&o|-4096&u.mode,timestamp:Date.now()})},lchmod:(a,o)=>{$.chmod(a,o,!0)},fchmod:(a,o)=>{var n=$.getStream(a);if(!n)throw new $.ErrnoError(8);$.chmod(n.node,o)},chown:(a,o,n,u)=>{var m;if(typeof a=="string"?m=$.lookupPath(a,{follow:!u}).node:m=a,!m.node_ops.setattr)throw new $.ErrnoError(63);m.node_ops.setattr(m,{timestamp:Date.now()})},lchown:(a,o,n)=>{$.chown(a,o,n,!0)},fchown:(a,o,n)=>{var u=$.getStream(a);if(!u)throw new $.ErrnoError(8);$.chown(u.node,o,n)},truncate:(a,o)=>{if(o<0)throw new $.ErrnoError(28);var n;if(typeof a=="string"?n=$.lookupPath(a,{follow:!0}).node:n=a,!n.node_ops.setattr)throw new $.ErrnoError(63);if($.isDir(n.mode))throw new $.ErrnoError(31);if(!$.isFile(n.mode))throw new $.ErrnoError(28);var u=$.nodePermissions(n,"w");if(u)throw new $.ErrnoError(u);n.node_ops.setattr(n,{size:o,timestamp:Date.now()})},ftruncate:(a,o)=>{var n=$.getStream(a);if(!n)throw new $.ErrnoError(8);if(!(2097155&n.flags))throw new $.ErrnoError(28);$.truncate(n.node,o)},utime:(a,o,n)=>{var u=$.lookupPath(a,{follow:!0}).node;u.node_ops.setattr(u,{timestamp:Math.max(o,n)})},open:(a,o,n)=>{if(a==="")throw new $.ErrnoError(44);var u;if(n=n===void 0?438:n,n=64&(o=typeof o=="string"?$.modeStringToFlags(o):o)?4095&n|32768:0,typeof a=="object")u=a;else{a=nr.normalize(a);try{u=$.lookupPath(a,{follow:!(131072&o)}).node}catch{}}var m=!1;if(64&o)if(u){if(128&o)throw new $.ErrnoError(20)}else u=$.mknod(a,n,0),m=!0;if(!u)throw new $.ErrnoError(44);if($.isChrdev(u.mode)&&(o&=-513),65536&o&&!$.isDir(u.mode))throw new $.ErrnoError(54);if(!m){var b=$.mayOpen(u,o);if(b)throw new $.ErrnoError(b)}512&o&&!m&&$.truncate(u,0),o&=-131713;var C=$.createStream({node:u,path:$.getPath(u),flags:o,seekable:!0,position:0,stream_ops:u.stream_ops,ungotten:[],error:!1});return C.stream_ops.open&&C.stream_ops.open(C),!ae.logReadFiles||1&o||($.readFiles||($.readFiles={}),a in $.readFiles||($.readFiles[a]=1)),C},close:a=>{if($.isClosed(a))throw new $.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(o){throw o}finally{$.closeStream(a.fd)}a.fd=null},isClosed:a=>a.fd===null,llseek:(a,o,n)=>{if($.isClosed(a))throw new $.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new $.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new $.ErrnoError(28);return a.position=a.stream_ops.llseek(a,o,n),a.ungotten=[],a.position},read:(a,o,n,u,m)=>{if(u<0||m<0)throw new $.ErrnoError(28);if($.isClosed(a))throw new $.ErrnoError(8);if((2097155&a.flags)==1)throw new $.ErrnoError(8);if($.isDir(a.node.mode))throw new $.ErrnoError(31);if(!a.stream_ops.read)throw new $.ErrnoError(28);var b=m!==void 0;if(b){if(!a.seekable)throw new $.ErrnoError(70)}else m=a.position;var C=a.stream_ops.read(a,o,n,u,m);return b||(a.position+=C),C},write:(a,o,n,u,m,b)=>{if(u<0||m<0)throw new $.ErrnoError(28);if($.isClosed(a))throw new $.ErrnoError(8);if(!(2097155&a.flags))throw new $.ErrnoError(8);if($.isDir(a.node.mode))throw new $.ErrnoError(31);if(!a.stream_ops.write)throw new $.ErrnoError(28);a.seekable&&1024&a.flags&&$.llseek(a,0,2);var C=m!==void 0;if(C){if(!a.seekable)throw new $.ErrnoError(70)}else m=a.position;var w=a.stream_ops.write(a,o,n,u,m,b);return C||(a.position+=w),w},allocate:(a,o,n)=>{if($.isClosed(a))throw new $.ErrnoError(8);if(o<0||n<=0)throw new $.ErrnoError(28);if(!(2097155&a.flags))throw new $.ErrnoError(8);if(!$.isFile(a.node.mode)&&!$.isDir(a.node.mode))throw new $.ErrnoError(43);if(!a.stream_ops.allocate)throw new $.ErrnoError(138);a.stream_ops.allocate(a,o,n)},mmap:(a,o,n,u,m)=>{if(2&u&&!(2&m)&&(2097155&a.flags)!=2)throw new $.ErrnoError(2);if((2097155&a.flags)==1)throw new $.ErrnoError(2);if(!a.stream_ops.mmap)throw new $.ErrnoError(43);return a.stream_ops.mmap(a,o,n,u,m)},msync:(a,o,n,u,m)=>a.stream_ops.msync?a.stream_ops.msync(a,o,n,u,m):0,munmap:a=>0,ioctl:(a,o,n)=>{if(!a.stream_ops.ioctl)throw new $.ErrnoError(59);return a.stream_ops.ioctl(a,o,n)},readFile:(a,o={})=>{if(o.flags=o.flags||0,o.encoding=o.encoding||"binary",o.encoding!=="utf8"&&o.encoding!=="binary")throw new Error('Invalid encoding type "'+o.encoding+'"');var n,u=$.open(a,o.flags),m=$.stat(a).size,b=new Uint8Array(m);return $.read(u,b,0,m,0),o.encoding==="utf8"?n=no(b,0):o.encoding==="binary"&&(n=b),$.close(u),n},writeFile:(a,o,n={})=>{n.flags=n.flags||577;var u=$.open(a,n.flags,n.mode);if(typeof o=="string"){var m=new Uint8Array(LC(o)+1),b=zc(o,m,0,m.length);$.write(u,m,0,b,void 0,n.canOwn)}else{if(!ArrayBuffer.isView(o))throw new Error("Unsupported data type");$.write(u,o,0,o.byteLength,void 0,n.canOwn)}$.close(u)},cwd:()=>$.currentPath,chdir:a=>{var o=$.lookupPath(a,{follow:!0});if(o.node===null)throw new $.ErrnoError(44);if(!$.isDir(o.node.mode))throw new $.ErrnoError(54);var n=$.nodePermissions(o.node,"x");if(n)throw new $.ErrnoError(n);$.currentPath=o.path},createDefaultDirectories:()=>{$.mkdir("/tmp"),$.mkdir("/home"),$.mkdir("/home/web_user")},createDefaultDevices:()=>{$.mkdir("/dev"),$.registerDevice($.makedev(1,3),{read:()=>0,write:(a,o,n,u,m)=>u}),$.mkdev("/dev/null",$.makedev(1,3)),yi.register($.makedev(5,0),yi.default_tty_ops),yi.register($.makedev(6,0),yi.default_tty1_ops),$.mkdev("/dev/tty",$.makedev(5,0)),$.mkdev("/dev/tty1",$.makedev(6,0)),$.mkdir("/dev/shm"),$.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{$.mkdir("/proc");var a=$.mkdir("/proc/self");$.mkdir("/proc/self/fd"),$.mount({mount:()=>{var o=$.createNode(a,"fd",16895,73);return o.node_ops={lookup:(n,u)=>{var m=+u,b=$.getStream(m);if(!b)throw new $.ErrnoError(8);var C={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return C.parent=C,C}},o}},{},"/proc/self/fd")},createStandardStreams:()=>{ae.stdin?$.createDevice("/dev","stdin",ae.stdin):$.symlink("/dev/tty","/dev/stdin"),ae.stdout?$.createDevice("/dev","stdout",null,ae.stdout):$.symlink("/dev/tty","/dev/stdout"),ae.stderr?$.createDevice("/dev","stderr",null,ae.stderr):$.symlink("/dev/tty1","/dev/stderr"),$.open("/dev/stdin",0),$.open("/dev/stdout",1),$.open("/dev/stderr",1)},ensureErrnoError:()=>{$.ErrnoError||($.ErrnoError=function(a,o){this.node=o,this.setErrno=function(n){this.errno=n},this.setErrno(a),this.message="FS error"},$.ErrnoError.prototype=new Error,$.ErrnoError.prototype.constructor=$.ErrnoError,[44].forEach(a=>{$.genericErrors[a]=new $.ErrnoError(a),$.genericErrors[a].stack=""}))},staticInit:()=>{$.ensureErrnoError(),$.nameTable=new Array(4096),$.mount(Et,{},"/"),$.createDefaultDirectories(),$.createDefaultDevices(),$.createSpecialDirectories(),$.filesystems={MEMFS:Et}},init:(a,o,n)=>{$.init.initialized=!0,$.ensureErrnoError(),ae.stdin=a||ae.stdin,ae.stdout=o||ae.stdout,ae.stderr=n||ae.stderr,$.createStandardStreams()},quit:()=>{$.init.initialized=!1;for(var a=0;a<$.streams.length;a++){var o=$.streams[a];o&&$.close(o)}},getMode:(a,o)=>{var n=0;return a&&(n|=365),o&&(n|=146),n},findObject:(a,o)=>{var n=$.analyzePath(a,o);return n.exists?n.object:null},analyzePath:(a,o)=>{try{a=(u=$.lookupPath(a,{follow:!o})).path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var u=$.lookupPath(a,{parent:!0});n.parentExists=!0,n.parentPath=u.path,n.parentObject=u.node,n.name=nr.basename(a),u=$.lookupPath(a,{follow:!o}),n.exists=!0,n.path=u.path,n.object=u.node,n.name=u.node.name,n.isRoot=u.path==="/"}catch(m){n.error=m.errno}return n},createPath:(a,o,n,u)=>{a=typeof a=="string"?a:$.getPath(a);for(var m=o.split("/").reverse();m.length;){var b=m.pop();if(b){var C=nr.join2(a,b);try{$.mkdir(C)}catch{}a=C}}return C},createFile:(a,o,n,u,m)=>{var b=nr.join2(typeof a=="string"?a:$.getPath(a),o),C=$.getMode(u,m);return $.create(b,C)},createDataFile:(a,o,n,u,m,b)=>{var C=o;a&&(a=typeof a=="string"?a:$.getPath(a),C=o?nr.join2(a,o):a);var w=$.getMode(u,m),E=$.create(C,w);if(n){if(typeof n=="string"){for(var x=new Array(n.length),D=0,B=n.length;D{var m=nr.join2(typeof a=="string"?a:$.getPath(a),o),b=$.getMode(!!n,!!u);$.createDevice.major||($.createDevice.major=64);var C=$.makedev($.createDevice.major++,0);return $.registerDevice(C,{open:w=>{w.seekable=!1},close:w=>{u&&u.buffer&&u.buffer.length&&u(10)},read:(w,E,x,D,B)=>{for(var v=0,F=0;F{for(var v=0;v{if(a.isDevice||a.isFolder||a.link||a.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:(a,o,n,u,m)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(B){if(!(B>this.length-1||B<0)){var v=B%this.chunkSize,F=B/this.chunkSize|0;return this.getter(F)[v]}},b.prototype.setDataGetter=function(B){this.getter=B},b.prototype.cacheLength=function(){var B=new XMLHttpRequest;if(B.open("HEAD",n,!1),B.send(null),!(B.status>=200&&B.status<300||B.status===304))throw new Error("Couldn't load "+n+". Status: "+B.status);var v,F=Number(B.getResponseHeader("Content-length")),S=(v=B.getResponseHeader("Accept-Ranges"))&&v==="bytes",L=(v=B.getResponseHeader("Content-Encoding"))&&v==="gzip",Z=1048576;S||(Z=F);var N=this;N.setDataGetter(z=>{var K=z*Z,f=(z+1)*Z-1;if(f=Math.min(f,F-1),N.chunks[z]===void 0&&(N.chunks[z]=((k,e)=>{if(k>e)throw new Error("invalid range ("+k+", "+e+") or no bytes requested!");if(e>F-1)throw new Error("only "+F+" bytes available! programmer error!");var d=new XMLHttpRequest;if(d.open("GET",n,!1),F!==Z&&d.setRequestHeader("Range","bytes="+k+"-"+e),d.responseType="arraybuffer",d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined"),d.send(null),!(d.status>=200&&d.status<300||d.status===304))throw new Error("Couldn't load "+n+". Status: "+d.status);return d.response!==void 0?new Uint8Array(d.response||[]):HC(d.responseText||"",!0)})(K,f)),N.chunks[z]===void 0)throw new Error("doXHR failed!");return N.chunks[z]}),!L&&F||(Z=F=1,F=this.getter(0).length,Z=F,W0("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=F,this._chunkSize=Z,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!N6)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var C=new b;Object.defineProperties(C,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var w={isDevice:!1,contents:C}}else w={isDevice:!1,url:n};var E=$.createFile(a,o,w,u,m);w.contents?E.contents=w.contents:w.url&&(E.contents=null,E.url=w.url),Object.defineProperties(E,{usedBytes:{get:function(){return this.contents.length}}});var x={};function D(B,v,F,S,L){var Z=B.node.contents;if(L>=Z.length)return 0;var N=Math.min(Z.length-L,S);if(Z.slice)for(var z=0;z{var v=E.stream_ops[B];x[B]=function(){return $.forceLoadFile(E),v.apply(null,arguments)}}),x.read=(B,v,F,S,L)=>($.forceLoadFile(E),D(B,v,F,S,L)),x.mmap=(B,v,F,S,L)=>{$.forceLoadFile(E);var Z=UC();if(!Z)throw new $.ErrnoError(48);return D(B,Fs,Z,v,F),{ptr:Z,allocated:!0}},E.stream_ops=x,E},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:(a,o,n)=>{o=o||(()=>{}),n=n||(()=>{});var u=$.indexedDB();try{var m=u.open($.DB_NAME(),$.DB_VERSION)}catch(b){return n(b)}m.onupgradeneeded=()=>{W0("creating db"),m.result.createObjectStore($.DB_STORE_NAME)},m.onsuccess=()=>{var b=m.result.transaction([$.DB_STORE_NAME],"readwrite"),C=b.objectStore($.DB_STORE_NAME),w=0,E=0,x=a.length;function D(){E==0?o():n()}a.forEach(B=>{var v=C.put($.analyzePath(B).object.contents,B);v.onsuccess=()=>{++w+E==x&&D()},v.onerror=()=>{E++,w+E==x&&D()}}),b.onerror=n},m.onerror=n},loadFilesFromDB:(a,o,n)=>{o=o||(()=>{}),n=n||(()=>{});var u=$.indexedDB();try{var m=u.open($.DB_NAME(),$.DB_VERSION)}catch(b){return n(b)}m.onupgradeneeded=n,m.onsuccess=()=>{var b=m.result;try{var C=b.transaction([$.DB_STORE_NAME],"readonly")}catch(v){return void n(v)}var w=C.objectStore($.DB_STORE_NAME),E=0,x=0,D=a.length;function B(){x==0?o():n()}a.forEach(v=>{var F=w.get(v);F.onsuccess=()=>{$.analyzePath(v).exists&&$.unlink(v),$.createDataFile(nr.dirname(v),nr.basename(v),F.result,!0,!0,!0),++E+x==D&&B()},F.onerror=()=>{x++,E+x==D&&B()}}),C.onerror=n},m.onerror=n}},kr={DEFAULT_POLLMASK:5,calculateAt:function(a,o,n){if(nr.isAbs(o))return o;var u;if(a===-100?u=$.cwd():u=kr.getStreamFromFD(a).path,o.length==0){if(!n)throw new $.ErrnoError(44);return u}return nr.join2(u,o)},doStat:function(a,o,n){try{var u=a(o)}catch(w){if(w&&w.node&&nr.normalize(o)!==nr.normalize($.getPath(w.node)))return-54;throw w}Lt[n>>2]=u.dev,Lt[n+8>>2]=u.ino,Lt[n+12>>2]=u.mode,Zr[n+16>>2]=u.nlink,Lt[n+20>>2]=u.uid,Lt[n+24>>2]=u.gid,Lt[n+28>>2]=u.rdev,zr=[u.size>>>0,(ft=u.size,+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[n+40>>2]=zr[0],Lt[n+44>>2]=zr[1],Lt[n+48>>2]=4096,Lt[n+52>>2]=u.blocks;var m=u.atime.getTime(),b=u.mtime.getTime(),C=u.ctime.getTime();return zr=[Math.floor(m/1e3)>>>0,(ft=Math.floor(m/1e3),+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[n+56>>2]=zr[0],Lt[n+60>>2]=zr[1],Zr[n+64>>2]=m%1e3*1e3,zr=[Math.floor(b/1e3)>>>0,(ft=Math.floor(b/1e3),+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[n+72>>2]=zr[0],Lt[n+76>>2]=zr[1],Zr[n+80>>2]=b%1e3*1e3,zr=[Math.floor(C/1e3)>>>0,(ft=Math.floor(C/1e3),+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[n+88>>2]=zr[0],Lt[n+92>>2]=zr[1],Zr[n+96>>2]=C%1e3*1e3,zr=[u.ino>>>0,(ft=u.ino,+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[n+104>>2]=zr[0],Lt[n+108>>2]=zr[1],0},doMsync:function(a,o,n,u,m){if(!$.isFile(o.node.mode))throw new $.ErrnoError(43);if(2&u)return 0;var b=io.slice(a,a+n);$.msync(o,b,m,n,u)},varargs:void 0,get:function(){return kr.varargs+=4,Lt[kr.varargs-4>>2]},getStr:function(a){return oo(a)},getStreamFromFD:function(a){var o=$.getStream(a);if(!o)throw new $.ErrnoError(8);return o}},N2={};function Ko(){if(!Ko.strings){var a={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",_:_c||"./this.program"};for(var o in N2)N2[o]===void 0?delete a[o]:a[o]=N2[o];var n=[];for(var o in a)n.push(o+"="+a[o]);Ko.strings=n}return Ko.strings}var Kp=function(a,o,n,u){a||(a=this),this.parent=a,this.mount=a.mount,this.mounted=null,this.id=$.nextInode++,this.name=o,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=u};Object.defineProperties(Kp.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(a){a?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return $.isDir(this.mode)}},isDevice:{get:function(){return $.isChrdev(this.mode)}}}),$.FSNode=Kp,$.staticInit(),ae.FS_createPath=$.createPath,ae.FS_createDataFile=$.createDataFile,ae.FS_unlink=$.unlink,ae.FS_createLazyFile=$.createLazyFile,ae.FS_createDevice=$.createDevice;var W6={g:function(a,o,n,u){Bn("Assertion failed: "+oo(a)+", at: "+[o?oo(o):"unknown filename",n,u?oo(u):"unknown function"])},u:function(a,o,n){throw new j6(a).init(o,n),a},d:function(a,o,n){kr.varargs=n;try{var u=kr.getStreamFromFD(a);switch(o){case 0:return(m=kr.get())<0?-28:$.createStream(u,m).fd;case 1:case 2:case 6:case 7:return 0;case 3:return u.flags;case 4:var m=kr.get();return u.flags|=m,0;case 5:return m=kr.get(),Y0[m+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,Lt[Hb()>>2]=b,-1}}catch(C){if($===void 0||!(C instanceof $.ErrnoError))throw C;return-C.errno}var b},q:function(a,o,n){try{var u=kr.getStreamFromFD(a);u.getdents||(u.getdents=$.readdir(u.path));for(var m=280,b=0,C=$.llseek(u,0,1),w=Math.floor(C/m);w>>0,(ft=E,+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[o+b>>2]=zr[0],Lt[o+b+4>>2]=zr[1],zr=[(w+1)*m>>>0,(ft=(w+1)*m,+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[o+b+8>>2]=zr[0],Lt[o+b+12>>2]=zr[1],Y0[o+b+16>>1]=280,Fs[o+b+18|0]=x,zc(D,io,o+b+19,256),b+=m,w+=1}return $.llseek(u,w*m,0),b}catch(v){if($===void 0||!(v instanceof $.ErrnoError))throw v;return-v.errno}},h:function(a,o,n){kr.varargs=n;try{var u=kr.getStreamFromFD(a);switch(o){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return u.tty?0:-59;case 21519:if(!u.tty)return-59;var m=kr.get();return Lt[m>>2]=0,0;case 21520:return u.tty?-28:-59;case 21531:return m=kr.get(),$.ioctl(u,o,m);default:return-28}}catch(b){if($===void 0||!(b instanceof $.ErrnoError))throw b;return-b.errno}},e:function(a,o,n,u){kr.varargs=u;try{o=kr.getStr(o),o=kr.calculateAt(a,o);var m=u?kr.get():0;return $.open(o,n,m).fd}catch(b){if($===void 0||!(b instanceof $.ErrnoError))throw b;return-b.errno}},o:function(a){try{return a=kr.getStr(a),$.rmdir(a),0}catch(o){if($===void 0||!(o instanceof $.ErrnoError))throw o;return-o.errno}},n:function(a,o){try{return a=kr.getStr(a),kr.doStat($.stat,a,o)}catch(n){if($===void 0||!(n instanceof $.ErrnoError))throw n;return-n.errno}},p:function(a,o,n){try{return o=kr.getStr(o),o=kr.calculateAt(a,o),n===0?$.unlink(o):n===512?$.rmdir(o):Bn("Invalid flags passed to unlinkat"),0}catch(u){if($===void 0||!(u instanceof $.ErrnoError))throw u;return-u.errno}},i:function(){return!0},l:function(){Bn("")},f:function(){return Date.now()},j:function(a,o,n){io.copyWithin(a,o,o+n)},m:function(a){io.length,Bn("OOM")},r:function(a,o){var n=0;return Ko().forEach(function(u,m){var b=o+n;Zr[a+4*m>>2]=b,function(C,w){for(var E=0;E>2]=n.length;var u=0;return n.forEach(function(m){u+=m.length+1}),Zr[o>>2]=u,0},b:function(a){try{var o=kr.getStreamFromFD(a);return $.close(o),0}catch(n){if($===void 0||!(n instanceof $.ErrnoError))throw n;return n.errno}},t:function(a,o,n,u){try{var m=function(b,C,w,E){for(var x=0,D=0;D>2],v=Zr[C+4>>2];C+=8;var F=$.read(b,Fs,B,v,E);if(F<0)return-1;if(x+=F,F>2]=m,0}catch(b){if($===void 0||!(b instanceof $.ErrnoError))throw b;return b.errno}},k:function(a,o,n,u,m){try{var b=(E=n)+2097152>>>0<4194305-!!(w=o)?(w>>>0)+4294967296*E:NaN;if(isNaN(b))return 61;var C=kr.getStreamFromFD(a);return $.llseek(C,b,u),zr=[C.position>>>0,(ft=C.position,+Math.abs(ft)>=1?ft>0?(0|Math.min(+Math.floor(ft/4294967296),4294967295))>>>0:~~+Math.ceil((ft-+(~~ft>>>0))/4294967296)>>>0:0)],Lt[m>>2]=zr[0],Lt[m+4>>2]=zr[1],C.getdents&&b===0&&u===0&&(C.getdents=null),0}catch(x){if($===void 0||!(x instanceof $.ErrnoError))throw x;return x.errno}var w,E},c:function(a,o,n,u){try{var m=function(b,C,w,E){for(var x=0,D=0;D>2],v=Zr[C+4>>2];C+=8;var F=$.write(b,Fs,B,v,E);if(F<0)return-1;x+=F}return x}(kr.getStreamFromFD(a),o,n);return Zr[u>>2]=m,0}catch(b){if($===void 0||!(b instanceof $.ErrnoError))throw b;return b.errno}},a:S0};(function(){var a,o={a:W6};function n(m,b){var C=m.exports;ae.asm=C,ae.asm.ua,WC(ae.asm.v),VC()}function u(m){n(m.instance)}if(YC(),ae.instantiateWasm)try{return ae.instantiateWasm(o,n)}catch(m){return fo("Module.instantiateWasm callback failed with error: "+m),!1}a=u,async function(){return[]}().then(function(m){return go.instantiate(m,o)}).then(function(m){return m}).then(a,function(m){fo("failed to asynchronously prepare wasm: "+m),Bn(m)})})(),ae.___wasm_call_ctors=function(){return(ae.___wasm_call_ctors=ae.asm.v).apply(null,arguments)};var KC=ae._emscripten_bind_VoidPtr___destroy___0=function(){return(KC=ae._emscripten_bind_VoidPtr___destroy___0=ae.asm.w).apply(null,arguments)},XC=ae._emscripten_bind_espeak_VOICE_get_name_0=function(){return(XC=ae._emscripten_bind_espeak_VOICE_get_name_0=ae.asm.x).apply(null,arguments)},ZC=ae._emscripten_bind_espeak_VOICE_set_name_1=function(){return(ZC=ae._emscripten_bind_espeak_VOICE_set_name_1=ae.asm.y).apply(null,arguments)},JC=ae._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(JC=ae._emscripten_bind_espeak_VOICE_get_languages_1=ae.asm.z).apply(null,arguments)},qC=ae._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(qC=ae._emscripten_bind_espeak_VOICE_get_identifier_0=ae.asm.A).apply(null,arguments)},$C=ae._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return($C=ae._emscripten_bind_espeak_VOICE_set_identifier_1=ae.asm.B).apply(null,arguments)},eb=ae._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(eb=ae._emscripten_bind_espeak_VOICE_get_gender_0=ae.asm.C).apply(null,arguments)},Ab=ae._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(Ab=ae._emscripten_bind_espeak_VOICE_set_gender_1=ae.asm.D).apply(null,arguments)},tb=ae._emscripten_bind_espeak_VOICE_get_age_0=function(){return(tb=ae._emscripten_bind_espeak_VOICE_get_age_0=ae.asm.E).apply(null,arguments)},rb=ae._emscripten_bind_espeak_VOICE_set_age_1=function(){return(rb=ae._emscripten_bind_espeak_VOICE_set_age_1=ae.asm.F).apply(null,arguments)},sb=ae._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(sb=ae._emscripten_bind_espeak_VOICE_get_variant_0=ae.asm.G).apply(null,arguments)},ab=ae._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(ab=ae._emscripten_bind_espeak_VOICE_set_variant_1=ae.asm.H).apply(null,arguments)},nb=ae._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(nb=ae._emscripten_bind_espeak_VOICE_get_xx1_0=ae.asm.I).apply(null,arguments)},ib=ae._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(ib=ae._emscripten_bind_espeak_VOICE_set_xx1_1=ae.asm.J).apply(null,arguments)},ob=ae._emscripten_bind_espeak_VOICE_get_score_0=function(){return(ob=ae._emscripten_bind_espeak_VOICE_get_score_0=ae.asm.K).apply(null,arguments)},lb=ae._emscripten_bind_espeak_VOICE_set_score_1=function(){return(lb=ae._emscripten_bind_espeak_VOICE_set_score_1=ae.asm.L).apply(null,arguments)},cb=ae._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(cb=ae._emscripten_bind_espeak_VOICE_get_spare_0=ae.asm.M).apply(null,arguments)},ub=ae._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(ub=ae._emscripten_bind_espeak_VOICE_set_spare_1=ae.asm.N).apply(null,arguments)},db=ae._emscripten_bind_espeak_VOICE___destroy___0=function(){return(db=ae._emscripten_bind_espeak_VOICE___destroy___0=ae.asm.O).apply(null,arguments)},fb=ae._emscripten_bind_espeak_EVENT_get_type_0=function(){return(fb=ae._emscripten_bind_espeak_EVENT_get_type_0=ae.asm.P).apply(null,arguments)},gb=ae._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(gb=ae._emscripten_bind_espeak_EVENT_get_unique_identifier_0=ae.asm.Q).apply(null,arguments)},pb=ae._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(pb=ae._emscripten_bind_espeak_EVENT_get_text_position_0=ae.asm.R).apply(null,arguments)},mb=ae._emscripten_bind_espeak_EVENT_get_length_0=function(){return(mb=ae._emscripten_bind_espeak_EVENT_get_length_0=ae.asm.S).apply(null,arguments)},hb=ae._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(hb=ae._emscripten_bind_espeak_EVENT_get_audio_position_0=ae.asm.T).apply(null,arguments)},Cb=ae._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(Cb=ae._emscripten_bind_espeak_EVENT_get_sample_0=ae.asm.U).apply(null,arguments)},bb=ae._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(bb=ae._emscripten_bind_espeak_EVENT_get_user_data_0=ae.asm.V).apply(null,arguments)},Ib=ae._emscripten_bind_espeak_EVENT___destroy___0=function(){return(Ib=ae._emscripten_bind_espeak_EVENT___destroy___0=ae.asm.W).apply(null,arguments)},wb=ae._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(wb=ae._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=ae.asm.X).apply(null,arguments)},kb=ae._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(kb=ae._emscripten_bind_eSpeakNGWorker_synth__2=ae.asm.Y).apply(null,arguments)},Eb=ae._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(Eb=ae._emscripten_bind_eSpeakNGWorker_synth_ipa__2=ae.asm.Z).apply(null,arguments)},Mb=ae._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(Mb=ae._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=ae.asm._).apply(null,arguments)},vb=ae._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return(vb=ae._emscripten_bind_eSpeakNGWorker_set_voice_2=ae.asm.$).apply(null,arguments)},xb=ae._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(xb=ae._emscripten_bind_eSpeakNGWorker_set_voice_3=ae.asm.aa).apply(null,arguments)},Bb=ae._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(Bb=ae._emscripten_bind_eSpeakNGWorker_set_voice_4=ae.asm.ba).apply(null,arguments)},yb=ae._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(yb=ae._emscripten_bind_eSpeakNGWorker_set_voice_5=ae.asm.ca).apply(null,arguments)},Db=ae._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(Db=ae._emscripten_bind_eSpeakNGWorker_get_voices_1=ae.asm.da).apply(null,arguments)},Tb=ae._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(Tb=ae._emscripten_bind_eSpeakNGWorker_set_voices_2=ae.asm.ea).apply(null,arguments)},Pb=ae._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(Pb=ae._emscripten_bind_eSpeakNGWorker_get_samplerate_0=ae.asm.fa).apply(null,arguments)},Gb=ae._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(Gb=ae._emscripten_bind_eSpeakNGWorker_get_rate_0=ae.asm.ga).apply(null,arguments)},Qb=ae._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(Qb=ae._emscripten_bind_eSpeakNGWorker_set_rate_1=ae.asm.ha).apply(null,arguments)},Fb=ae._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(Fb=ae._emscripten_bind_eSpeakNGWorker_get_pitch_0=ae.asm.ia).apply(null,arguments)},Sb=ae._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(Sb=ae._emscripten_bind_eSpeakNGWorker_set_pitch_1=ae.asm.ja).apply(null,arguments)},Ob=ae._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(Ob=ae._emscripten_bind_eSpeakNGWorker___destroy___0=ae.asm.ka).apply(null,arguments)},_b=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return(_b=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=ae.asm.la).apply(null,arguments)},zb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(zb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=ae.asm.ma).apply(null,arguments)},Nb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return(Nb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=ae.asm.na).apply(null,arguments)},Lb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(Lb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=ae.asm.oa).apply(null,arguments)},Rb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(Rb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=ae.asm.pa).apply(null,arguments)},jb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(jb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=ae.asm.qa).apply(null,arguments)},Wb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(Wb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=ae.asm.ra).apply(null,arguments)},Yb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(Yb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=ae.asm.sa).apply(null,arguments)},Vb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return(Vb=ae._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=ae.asm.ta).apply(null,arguments)},Hb=ae.___errno_location=function(){return(Hb=ae.___errno_location=ae.asm.va).apply(null,arguments)};ae._free=function(){return(ae._free=ae.asm.wa).apply(null,arguments)},ae._malloc=function(){return(ae._malloc=ae.asm.xa).apply(null,arguments)};var V0,Ub=ae.___cxa_is_pointer_type=function(){return(Ub=ae.___cxa_is_pointer_type=ae.asm.ya).apply(null,arguments)};function Kb(a){function o(){V0||(V0=!0,ae.calledRun=!0,_C||(jC=!0,ae.noFSInit||$.init.initialized||$.init(),$.ignorePermissions=!1,z2(RC),ae.onRuntimeInitialized&&ae.onRuntimeInitialized(),function(){if(ae.postRun)for(typeof ae.postRun=="function"&&(ae.postRun=[ae.postRun]);ae.postRun.length;)n=ae.postRun.shift(),Up.unshift(n);var n;z2(Up)}()))}Di>0||(function(){if(ae.preRun)for(typeof ae.preRun=="function"&&(ae.preRun=[ae.preRun]);ae.preRun.length;)n=ae.preRun.shift(),Hp.unshift(n);var n;z2(Hp)}(),Di>0||(ae.setStatus?(ae.setStatus("Running..."),setTimeout(function(){setTimeout(function(){ae.setStatus("")},1),o()},1)):o()))}if(ae.___start_em_js=132724,ae.___stop_em_js=132822,ae.addRunDependency=YC,ae.removeRunDependency=VC,ae.FS_createPath=$.createPath,ae.FS_createDataFile=$.createDataFile,ae.FS_createLazyFile=$.createLazyFile,ae.FS_createDevice=$.createDevice,ae.FS_unlink=$.unlink,Uo=function a(){V0||Kb(),V0||(Uo=a)},ae.preInit)for(typeof ae.preInit=="function"&&(ae.preInit=[ae.preInit]);ae.preInit.length>0;)ae.preInit.pop()();function qs(){}function H0(a){return(a||qs).__cache__}function lo(a,o){var n=H0(o),u=n[a];return u||((u=Object.create((o||qs).prototype)).ptr=a,n[a]=u)}Kb(),qs.prototype=Object.create(qs.prototype),qs.prototype.constructor=qs,qs.prototype.__class__=qs,qs.__cache__={},ae.WrapperObject=qs,ae.getCache=H0,ae.wrapPointer=lo,ae.castObject=function(a,o){return lo(a.ptr,o)},ae.NULL=lo(0),ae.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";a.__destroy__(),delete H0(a.__class__)[a.ptr]},ae.compare=function(a,o){return a.ptr===o.ptr},ae.getPointer=function(a){return a.ptr},ae.getClass=function(a){return a.__class__};var sr={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(sr.needed){for(var a=0;a=sr.size?(O2(m>0),sr.needed+=m,n=ae._malloc(m),sr.temps.push(n)):(n=sr.buffer+sr.pos,sr.pos+=m),n},copy:function(a,o,n){switch(n>>>=0,o.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var u=0;u{ae.calledRun?a(new ae.eSpeakNGWorker):ae.onRuntimeInitialized=()=>a(new ae.eSpeakNGWorker)}),V6=["en"],H6=Xb.then(a=>{const o=a.list_voices().map(({name:u,identifier:m,languages:b})=>({name:u,identifier:m,languages:b.filter(C=>V6.includes(C.name.split("-")[0]))})).filter(u=>u.languages.length>0),n=new Set;for(const u of o){n.add(u.identifier);for(const m of u.languages)n.add(m.name)}return{voices:o,identifiers:n}}),U6=async(a,o="en-us")=>{const n=await Xb,{identifiers:u}=await H6;if(!u.has(o))throw new Error(`Invalid language identifier: "${o}". Should be one of: ${Array.from(u).toSorted().join(", ")}.`);return n.set_voice(o),n.synthesize_ipa(a).ipa?.split(` +`).filter(m=>m.length>0)??[]};var T0={};function K6(a){if(a.includes("."))return a;if(a.includes(":")){let[b,C]=a.split(":").map(Number);return C===0?`${b} o'clock`:C<10?`${b} oh ${C}`:`${b} ${C}`}let o=parseInt(a.slice(0,4),10);if(o<1100||o%1e3<10)return a;let n=a.slice(0,2),u=parseInt(a.slice(2,4),10),m=a.endsWith("s")?"s":"";if(o%1e3>=100&&o%1e3<=999){if(u===0)return`${n} hundred${m}`;if(u<10)return`${n} oh ${u}${m}`}return`${n} ${u}${m}`}function X6(a){const o=a[0]==="$"?"dollar":"pound";if(isNaN(Number(a.slice(1))))return`${a.slice(1)} ${o}s`;if(!a.includes(".")){let b=a.slice(1)==="1"?"":"s";return`${a.slice(1)} ${o}${b}`}const[n,u]=a.slice(1).split("."),m=parseInt(u.padEnd(2,"0"),10);return`${n} ${o}${n==="1"?"":"s"} and ${m} ${a[0]==="$"?m===1?"cent":"cents":m===1?"penny":"pence"}`}function Z6(a){let[o,n]=a.split(".");return`${o} point ${n.split("").join(" ")}`}const J6=new RegExp(`(\\s*[${Xp=';:,.!?¡¿—…"«»“”(){}[]',Xp.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var Xp;async function Zp(a,o="a",n=!0){n&&(a=function(C){return C.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(/(?<=\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(/\d*\.\d+|\b\d{4}s?\b|(?w.replace(/\./g,"-")).replace(/(?<=[A-Z])\.(?=[A-Z])/gi,"-").trim()}(a));const u=function(C,w){const E=[];let x=0;for(const D of C.matchAll(w)){const B=D[0];x0&&E.push({match:!0,text:B}),x=D.index+B.length}return xC?w:(await U6(w,m)).join(" ")))).join("").trim()}function L2(a,o=!0){return".!?…。?!".includes(a)||o&&a===` +`}function q6(a,o){let n=o;for(;n0&&n0&&this._sentences.push(o),this._buffer="",this._resolve()}_resolve(){this._resolver&&(this._resolver(),this._resolver=null)}_process(){let o=0;const n=this._buffer,u=n.length;let m=0,b=[];const C=w=>{let E=w;for(;E+1=0&&/\S/.test(n[B]);)B--;B=Math.max(o,B+1);const v=q6(n,B);if(!v){++m;continue}if((/https?[,:]\/\//.test(v)||v.includes("@"))&&!L2(v.at(-1))){m=B+v.length;continue}if(e5(v)){++m;continue}if(/^([A-Za-z]\.)+$/.test(v)&&D0&&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(o=>{this._resolver=o})}}[Symbol.iterator](){this.flush();const o=this._sentences[Symbol.iterator]();return this._sentences=[],o}get sentences(){return this._sentences}}const Ro=Object.freeze({"expr-voice-2-m":{name:"expr-voice-2-m",language:"en-us",gender:"Male"},"expr-voice-2-f":{name:"expr-voice-2-f",language:"en-us",gender:"Female"},"expr-voice-3-m":{name:"expr-voice-3-m",language:"en-us",gender:"Male"},"expr-voice-3-f":{name:"expr-voice-3-f",language:"en-us",gender:"Female"},"expr-voice-4-m":{name:"expr-voice-4-m",language:"en-us",gender:"Male"},"expr-voice-4-f":{name:"expr-voice-4-f",language:"en-us",gender:"Female"},"expr-voice-5-m":{name:"expr-voice-5-m",language:"en-us",gender:"Male"},"expr-voice-5-f":{name:"expr-voice-5-f",language:"en-us",gender:"Female"}}),R2=new Map;async function r5(a){if(R2.has(a))return R2.get(a);const o=new Float32Array(await async function(n){if(T0&&Object.hasOwn(T0,"readFile")){const w=typeof __dirname<"u"?__dirname:import.meta.dirname,E=T0.resolve(w,`../voices/${n}.bin`),{buffer:x}=await T0.readFile(E);return x}const u=`https://huggingface.co/onnx-community/kitten-tts-nano-0.1-ONNX/resolve/main/voices/${n}.bin`;let m;try{m=await caches.open("kokoro-voices");const w=await m.match(u);if(w)return await w.arrayBuffer()}catch(w){console.warn("Unable to open cache",w)}const b=await fetch(u),C=await b.arrayBuffer();if(m)try{await m.put(u,new Response(C,{headers:b.headers}))}catch(w){console.warn("Unable to cache file",w)}return C}(a));return R2.set(a,o),o}class Nc{constructor(o,n){this.model=o,this.tokenizer=n}static async from_pretrained(o,{dtype:n="q8",device:u=null,progress_callback:m=null}={}){const b=z6.from_pretrained(o,{progress_callback:m,dtype:n,device:u}),C=O6.from_pretrained(o,{progress_callback:m}),w=await Promise.all([b,C]);return new Nc(...w)}get voices(){return Ro}list_voices(){console.table(Ro)}_validate_voice(o){if(!Ro.hasOwnProperty(o))throw console.error(`Voice "${o}" not found. Available voices:`),console.table(Ro),new Error(`Voice "${o}" not found. Should be one of: ${Object.keys(Ro).join(", ")}.`);return"a"}async generate(o,{voice:n="expr-voice-5-m",speed:u=1}={}){const m=this._validate_voice(n),b=await Zp(o,m),{input_ids:C}=this.tokenizer(b,{truncation:!0});return this.generate_from_ids(C,{voice:n,speed:u})}async generate_from_ids(o,{voice:n="expr-voice-5-m",speed:u=1}={}){const m=await r5(n),b={input_ids:o,style:new jp("float32",m,[1,256]),speed:new jp("float32",[u],[1])},{waveform:C}=await this.model(b);return new _6(C.data.slice(2e3,-2e3),24e3)}async*stream(o,{voice:n="expr-voice-5-m",speed:u=1,split_pattern:m=null}={}){const b=this._validate_voice(n);let C;if(o instanceof nc)C=o;else{if(typeof o!="string")throw new Error("Invalid input type. Expected string or TextSplitterStream.");{C=new nc;const w=m?o.split(m).map(E=>E.trim()).filter(E=>E.length>0):[o];C.push(...w)}}for await(const w of C){const E=await Zp(w,b),{input_ids:x}=this.tokenizer(E,{truncation:!0}),D=await this.generate_from_ids(x,{voice:n,speed:u});yield{text:w,phonemes:E,audio:D}}}}const Jb="wasm";self.postMessage({status:"device",device:Jb});const s5="onnx-community/kitten-tts-nano-0.1-ONNX",qb=await Nc.from_pretrained(s5).catch(a=>{throw self.postMessage({status:"error",error:a.message}),a});self.postMessage({status:"ready",voices:qb.voices,device:Jb});self.addEventListener("message",async a=>{const{text:o,voice:n,speed:u}=a.data,m=new nc;m.push(o),m.close();const b=qb.stream(m,{voice:n,speed:u}),C=[];for await(const{text:E,audio:x}of b)self.postMessage({status:"stream",chunk:{audio:x.toBlob(),text:E}}),C.push(x);let w;if(C.length>0){const E=C[0].sampling_rate,x=C.reduce((v,F)=>v+F.audio.length,0),D=new Float32Array(x);let B=0;for(const{audio:v}of C)D.set(v,B),B+=v.length;w=new C[0].constructor(D,E)}self.postMessage({status:"complete",audio:w.toBlob()})});