Files
SillyTavern/public/scripts/extensions/tts/lib/kokoro.web.js
felger e23f3a6314 feature: 'kokoro-js' supports TTS #3412 (#3656)
* feature: 'kokoro-js' supports TTS #3412

* Linting, add credits for kokoro library

* Fix voice preview

* Fix display languages on previews

* Fix settings restoration. Debounce model init on settings change

* Fix engine sorting

* Move TTS processing to a web worker. Remove unused gain setting

* Speaking rate fix

* Update status when recreating a worker

* Pass voices list from TTS engine

* Call dispose function on provider change

* Extend worker init timeout to 10 minutes

---------

Co-authored-by: ryan <1014670860@qq.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2025-03-10 22:54:54 +02:00

2 lines
2.0 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var e,A,t={"./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm":(e,A,t)=>{e.exports=t.p+"ort-wasm-simd-threaded.jsep.wasm"},"./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb":(e,A,t)=>{e.exports=t.p+"ort.bundle.min.mjs"},"?2ce3":()=>{},"?7a2c":()=>{},"?a42a":()=>{},"?2b25":()=>{},"?569f":()=>{},"?3f59":()=>{},"?154a":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,A,t)=>{t.r(A),t.d(A,{Environment:()=>J,Interpreter:()=>_,Template:()=>Ae,parse:()=>S,tokenize:()=>c});var r=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",NullLiteral:"NullLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),n=Object.freeze({set:r.Set,for:r.For,in:r.In,is:r.Is,if:r.If,else:r.Else,endif:r.EndIf,elif:r.ElseIf,endfor:r.EndFor,and:r.And,or:r.Or,not:r.Not,"not in":r.NotIn,macro:r.Macro,endmacro:r.EndMacro,true:r.BooleanLiteral,false:r.BooleanLiteral,none:r.NullLiteral,True:r.BooleanLiteral,False:r.BooleanLiteral,None:r.NullLiteral}),a=class{constructor(e,A){this.value=e,this.type=A}};function s(e){return/\w/.test(e)}function i(e){return/[0-9]/.test(e)}var o=[["{%",r.OpenStatement],["%}",r.CloseStatement],["{{",r.OpenExpression],["}}",r.CloseExpression],["(",r.OpenParen],[")",r.CloseParen],["{",r.OpenCurlyBracket],["}",r.CloseCurlyBracket],["[",r.OpenSquareBracket],["]",r.CloseSquareBracket],[",",r.Comma],[".",r.Dot],[":",r.Colon],["|",r.Pipe],["<=",r.ComparisonBinaryOperator],[">=",r.ComparisonBinaryOperator],["==",r.ComparisonBinaryOperator],["!=",r.ComparisonBinaryOperator],["<",r.ComparisonBinaryOperator],[">",r.ComparisonBinaryOperator],["+",r.AdditiveBinaryOperator],["-",r.AdditiveBinaryOperator],["*",r.MultiplicativeBinaryOperator],["/",r.MultiplicativeBinaryOperator],["%",r.MultiplicativeBinaryOperator],["=",r.Equals]],l=new Map([["n","\n"],["t","\t"],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function c(e,A={}){const t=[],c=function(e,A={}){return e.endsWith("\n")&&(e=e.slice(0,-1)),e=e.replace(/{#.*?#}/gs,"{##}"),A.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%])/gm,"$1")),A.trim_blocks&&(e=e.replace(/([#%]})\n/g,"$1")),e.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(e,A);let g=0;const u=e=>{let A="";for(;e(c[g]);)if("\\"!==c[g]){if(A+=c[g++],g>=c.length)throw new SyntaxError("Unexpected end of input")}else{if(++g,g>=c.length)throw new SyntaxError("Unexpected end of input");const e=c[g++],t=l.get(e);if(void 0===t)throw new SyntaxError(`Unexpected escaped character: ${e}`);A+=t}return A};e:for(;g<c.length;){const e=t.at(-1)?.type;if(void 0===e||e===r.CloseStatement||e===r.CloseExpression){let e="";for(;g<c.length&&("{"!==c[g]||"%"!==c[g+1]&&"{"!==c[g+1]);)e+=c[g++];if(e.length>0){t.push(new a(e,r.Text));continue}}u((e=>/\s/.test(e)));const A=c[g];if("-"===A||"+"===A){const e=t.at(-1)?.type;if(e===r.Text||void 0===e)throw new SyntaxError(`Unexpected character: ${A}`);switch(e){case r.Identifier:case r.NumericLiteral:case r.BooleanLiteral:case r.NullLiteral:case r.StringLiteral:case r.CloseParen:case r.CloseSquareBracket:break;default:{++g;const e=u(i);t.push(new a(`${A}${e}`,e.length>0?r.NumericLiteral:r.UnaryOperator));continue}}}for(const[e,A]of o){if(c.slice(g,g+e.length)===e){t.push(new a(e,A)),g+=e.length;continue e}}if("'"!==A&&'"'!==A)if(i(A)){const e=u(i);t.push(new a(e,r.NumericLiteral))}else{if(!s(A))throw new SyntaxError(`Unexpected character: ${A}`);{const e=u(s),A=Object.hasOwn(n,e)?n[e]:r.Identifier;A===r.In&&t.at(-1)?.type===r.Not?(t.pop(),t.push(new a("not in",r.NotIn))):t.push(new a(e,A))}}else{++g;const e=u((e=>e!==A));t.push(new a(e,r.StringLiteral)),++g}}return t}var g=class{type="Statement"},u=class extends g{constructor(e){super(),this.body=e}type="Program"},d=class extends g{constructor(e,A,t){super(),this.test=e,this.body=A,this.alternate=t}type="If"},f=class extends g{constructor(e,A,t,r){super(),this.loopvar=e,this.iterable=A,this.body=t,this.defaultBlock=r}type="For"},p=class extends g{constructor(e,A){super(),this.assignee=e,this.value=A}type="Set"},h=class extends g{constructor(e,A,t){super(),this.name=e,this.args=A,this.body=t}type="Macro"},m=class extends g{type="Expression"},C=class extends m{constructor(e,A,t){super(),this.object=e,this.property=A,this.computed=t}type="MemberExpression"},b=class extends m{constructor(e,A){super(),this.callee=e,this.args=A}type="CallExpression"},I=class extends m{constructor(e){super(),this.value=e}type="Identifier"},w=class extends m{constructor(e){super(),this.value=e}type="Literal"},k=class extends w{type="NumericLiteral"},x=class extends w{type="StringLiteral"},B=class extends w{type="BooleanLiteral"},v=class extends w{type="NullLiteral"},y=class extends w{type="ArrayLiteral"},E=class extends w{type="TupleLiteral"},M=class extends w{type="ObjectLiteral"},G=class extends m{constructor(e,A,t){super(),this.operator=e,this.left=A,this.right=t}type="BinaryExpression"},D=class extends m{constructor(e,A){super(),this.operand=e,this.filter=A}type="FilterExpression"},Q=class extends m{constructor(e,A){super(),this.iterable=e,this.test=A}type="SelectExpression"},T=class extends m{constructor(e,A,t){super(),this.operand=e,this.negate=A,this.test=t}type="TestExpression"},P=class extends m{constructor(e,A){super(),this.operator=e,this.argument=A}type="UnaryExpression"},z=class extends m{constructor(e=void 0,A=void 0,t=void 0){super(),this.start=e,this.stop=A,this.step=t}type="SliceExpression"},F=class extends m{constructor(e,A){super(),this.key=e,this.value=A}type="KeywordArgumentExpression"};function S(e){const A=new u([]);let t=0;function n(A,r){const n=e[t++];if(!n||n.type!==A)throw new Error(`Parser Error: ${r}. ${n.type} !== ${A}.`);return n}function a(){switch(e[t].type){case r.Text:return new x(n(r.Text,"Expected text token").value);case r.OpenStatement:return function(){let A;switch(n(r.OpenStatement,"Expected opening statement token"),e[t].type){case r.Set:++t,A=o(),n(r.CloseStatement,"Expected closing statement token");break;case r.If:++t,A=l(),n(r.OpenStatement,"Expected {% token"),n(r.EndIf,"Expected endif token"),n(r.CloseStatement,"Expected %} token");break;case r.Macro:++t,A=function(){const e=V();if("Identifier"!==e.type)throw new SyntaxError("Expected identifier following macro statement");const A=L();n(r.CloseStatement,"Expected closing statement token");const t=[];for(;s(r.OpenStatement,r.EndMacro);)t.push(a());return new h(e,A,t)}(),n(r.OpenStatement,"Expected {% token"),n(r.EndMacro,"Expected endmacro token"),n(r.CloseStatement,"Expected %} token");break;case r.For:++t,A=function(){const e=c(!0);if(!(e instanceof I||e instanceof E))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${e.type} instead`);n(r.In,"Expected `in` keyword following loop variable");const A=g();n(r.CloseStatement,"Expected closing statement token");const o=[];for(;s(r.OpenStatement,r.EndFor)&&s(r.OpenStatement,r.Else);)o.push(a());const l=[];if(i(r.OpenStatement,r.Else))for(++t,++t,n(r.CloseStatement,"Expected closing statement token");s(r.OpenStatement,r.EndFor);)l.push(a());return new f(e,A,o,l)}(),n(r.OpenStatement,"Expected {% token"),n(r.EndFor,"Expected endfor token"),n(r.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${e[t].type}`)}return A}();case r.OpenExpression:return function(){n(r.OpenExpression,"Expected opening expression token");const e=g();return n(r.CloseExpression,"Expected closing expression token"),e}();default:throw new SyntaxError(`Unexpected token type: ${e[t].type}`)}}function s(...A){return t+A.length<=e.length&&A.some(((A,r)=>A!==e[t+r].type))}function i(...A){return t+A.length<=e.length&&A.every(((A,r)=>A===e[t+r].type))}function o(){const e=g();if(i(r.Equals)){++t;const A=o();return new p(e,A)}return e}function l(){const A=g();n(r.CloseStatement,"Expected closing statement token");const s=[],o=[];for(;e[t]?.type!==r.OpenStatement||e[t+1]?.type!==r.ElseIf&&e[t+1]?.type!==r.Else&&e[t+1]?.type!==r.EndIf;)s.push(a());if(e[t]?.type===r.OpenStatement&&e[t+1]?.type!==r.EndIf)if(++t,i(r.ElseIf))n(r.ElseIf,"Expected elseif token"),o.push(l());else for(n(r.Else,"Expected else token"),n(r.CloseStatement,"Expected closing statement token");e[t]?.type!==r.OpenStatement||e[t+1]?.type!==r.EndIf;)o.push(a());return new d(A,s,o)}function c(e=!1){const A=e?V:g,n=[A()],a=i(r.Comma);for(;a&&(++t,n.push(A()),i(r.Comma)););return a?new E(n):n[0]}function g(){return function(){const e=m();if(i(r.If)){++t;const A=m();if(i(r.Else)){++t;const r=m();return new d(A,[e],[r])}return new Q(e,A)}return e}()}function m(){let A=w();for(;i(r.Or);){const r=e[t];++t;const n=w();A=new G(r,A,n)}return A}function w(){let A=S();for(;i(r.And);){const r=e[t];++t;const n=S();A=new G(r,A,n)}return A}function S(){let A;for(;i(r.Not);){const r=e[t];++t;const n=S();A=new P(r,n)}return A??function(){let A=N();for(;i(r.ComparisonBinaryOperator)||i(r.In)||i(r.NotIn);){const r=e[t];++t;const n=N();A=new G(r,A,n)}return A}()}function N(){let A=R();for(;i(r.AdditiveBinaryOperator);){const r=e[t];++t;const n=R();A=new G(r,A,n)}return A}function O(e){let A=new b(e,L());return A=H(A),i(r.OpenParen)&&(A=O(A)),A}function L(){n(r.OpenParen,"Expected opening parenthesis for arguments list");const e=function(){const e=[];for(;!i(r.CloseParen);){let A=g();if(i(r.Equals)){if(++t,!(A instanceof I))throw new SyntaxError("Expected identifier for keyword argument");const e=g();A=new F(A,e)}e.push(A),i(r.Comma)&&++t}return e}();return n(r.CloseParen,"Expected closing parenthesis for arguments list"),e}function Y(){const e=[];let A=!1;for(;!i(r.CloseSquareBracket);)i(r.Colon)?(e.push(void 0),++t,A=!0):(e.push(g()),i(r.Colon)&&(++t,A=!0));if(0===e.length)throw new SyntaxError("Expected at least one argument for member/slice expression");if(A){if(e.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new z(...e)}return e[0]}function H(A){for(;i(r.Dot)||i(r.OpenSquareBracket);){const a=e[t];let s;++t;const i=a.type!==r.Dot;if(i)s=Y(),n(r.CloseSquareBracket,"Expected closing square bracket");else if(s=V(),"Identifier"!==s.type)throw new SyntaxError("Expected identifier following dot operator");A=new C(A,s,i)}return A}function R(){let A=W();for(;i(r.MultiplicativeBinaryOperator);){const r=e[t];++t;const n=W();A=new G(r,A,n)}return A}function W(){let e=function(){let e=function(){const e=H(V());return i(r.OpenParen)?O(e):e}();for(;i(r.Pipe);){++t;let A=V();if(!(A instanceof I))throw new SyntaxError("Expected identifier for the filter");i(r.OpenParen)&&(A=O(A)),e=new D(e,A)}return e}();for(;i(r.Is);){++t;const A=i(r.Not);A&&++t;let n=V();if(n instanceof B?n=new I(n.value.toString()):n instanceof v&&(n=new I("none")),!(n instanceof I))throw new SyntaxError("Expected identifier for the test");e=new T(e,A,n)}return e}function V(){const A=e[t];switch(A.type){case r.NumericLiteral:return++t,new k(Number(A.value));case r.StringLiteral:return++t,new x(A.value);case r.BooleanLiteral:return++t,new B("true"===A.value.toLowerCase());case r.NullLiteral:return++t,new v(null);case r.Identifier:return++t,new I(A.value);case r.OpenParen:{++t;const A=c();if(e[t].type!==r.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${e[t].type} instead`);return++t,A}case r.OpenSquareBracket:{++t;const e=[];for(;!i(r.CloseSquareBracket);)e.push(g()),i(r.Comma)&&++t;return++t,new y(e)}case r.OpenCurlyBracket:{++t;const e=new Map;for(;!i(r.CloseCurlyBracket);){const A=g();n(r.Colon,"Expected colon between key and value in object literal");const a=g();e.set(A,a),i(r.Comma)&&++t}return++t,new M(e)}default:throw new SyntaxError(`Unexpected token: ${A.type}`)}}for(;t<e.length;)A.body.push(a());return A}function N(e,A,t=1){void 0===A&&(A=e,e=0);const r=[];for(let n=e;n<A;n+=t)r.push(n);return r}function O(e,A,t,r=1){const n=Math.sign(r);n>=0?(A=(A??=0)<0?Math.max(e.length+A,0):Math.min(A,e.length),t=(t??=e.length)<0?Math.max(e.length+t,0):Math.min(t,e.length)):(A=(A??=e.length-1)<0?Math.max(e.length+A,-1):Math.min(A,e.length-1),t=(t??=-1)<-1?Math.max(e.length+t,-1):Math.min(t,e.length-1));const a=[];for(let s=A;n*s<n*t;s+=r)a.push(e[s]);return a}function L(e){return e.replace(/\b\w/g,(e=>e.toUpperCase()))}var Y=class{type="RuntimeValue";value;builtins=new Map;constructor(e=void 0){this.value=e}__bool__(){return new W(!!this.value)}},H=class extends Y{type="NumericValue"},R=class extends Y{type="StringValue";builtins=new Map([["upper",new Z((()=>new R(this.value.toUpperCase())))],["lower",new Z((()=>new R(this.value.toLowerCase())))],["strip",new Z((()=>new R(this.value.trim())))],["title",new Z((()=>new R(L(this.value))))],["length",new H(this.value.length)],["rstrip",new Z((()=>new R(this.value.trimEnd())))],["lstrip",new Z((()=>new R(this.value.trimStart())))],["split",new Z((e=>{const A=e[0]??new X;if(!(A instanceof R||A instanceof X))throw new Error("sep argument must be a string or null");const t=e[1]??new H(-1);if(!(t instanceof H))throw new Error("maxsplit argument must be a number");let r=[];if(A instanceof X){const e=this.value.trimStart();for(const{0:A,index:n}of e.matchAll(/\S+/g)){if(-1!==t.value&&r.length>=t.value&&void 0!==n){r.push(A+e.slice(n+A.length));break}r.push(A)}}else{if(""===A.value)throw new Error("empty separator");r=this.value.split(A.value),-1!==t.value&&r.length>t.value&&r.push(r.splice(t.value).join(A.value))}return new U(r.map((e=>new R(e))))}))]])},W=class extends Y{type="BooleanValue"},V=class extends Y{type="ObjectValue";__bool__(){return new W(this.value.size>0)}builtins=new Map([["get",new Z((([e,A])=>{if(!(e instanceof R))throw new Error(`Object key must be a string: got ${e.type}`);return this.value.get(e.value)??A??new X}))],["items",new Z((()=>new U(Array.from(this.value.entries()).map((([e,A])=>new U([new R(e),A]))))))]])},j=class extends V{type="KeywordArgumentsValue"},U=class extends Y{type="ArrayValue";builtins=new Map([["length",new H(this.value.length)]]);__bool__(){return new W(this.value.length>0)}},K=class extends U{type="TupleValue"},Z=class extends Y{type="FunctionValue"},X=class extends Y{type="NullValue"},q=class extends Y{type="UndefinedValue"},J=class{constructor(e){this.parent=e}variables=new Map([["namespace",new Z((e=>{if(0===e.length)return new V(new Map);if(1!==e.length||!(e[0]instanceof V))throw new Error("`namespace` expects either zero arguments or a single object argument");return e[0]}))]]);tests=new Map([["boolean",e=>"BooleanValue"===e.type],["callable",e=>e instanceof Z],["odd",e=>{if("NumericValue"!==e.type)throw new Error(`Cannot apply test "odd" to type: ${e.type}`);return e.value%2!=0}],["even",e=>{if("NumericValue"!==e.type)throw new Error(`Cannot apply test "even" to type: ${e.type}`);return e.value%2==0}],["false",e=>"BooleanValue"===e.type&&!e.value],["true",e=>"BooleanValue"===e.type&&e.value],["none",e=>"NullValue"===e.type],["string",e=>"StringValue"===e.type],["number",e=>"NumericValue"===e.type],["integer",e=>"NumericValue"===e.type&&Number.isInteger(e.value)],["iterable",e=>"ArrayValue"===e.type||"StringValue"===e.type],["mapping",e=>"ObjectValue"===e.type],["lower",e=>{const A=e.value;return"StringValue"===e.type&&A===A.toLowerCase()}],["upper",e=>{const A=e.value;return"StringValue"===e.type&&A===A.toUpperCase()}],["none",e=>"NullValue"===e.type],["defined",e=>"UndefinedValue"!==e.type],["undefined",e=>"UndefinedValue"===e.type],["equalto",(e,A)=>e.value===A.value],["eq",(e,A)=>e.value===A.value]]);set(e,A){return this.declareVariable(e,$(A))}declareVariable(e,A){if(this.variables.has(e))throw new SyntaxError(`Variable already declared: ${e}`);return this.variables.set(e,A),A}setVariable(e,A){return this.variables.set(e,A),A}resolve(e){if(this.variables.has(e))return this;if(this.parent)return this.parent.resolve(e);throw new Error(`Unknown variable: ${e}`)}lookupVariable(e){try{return this.resolve(e).variables.get(e)??new q}catch{return new q}}},_=class{global;constructor(e){this.global=e??new J}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,A){const t=this.evaluate(e.left,A);switch(e.operator.value){case"and":return t.__bool__().value?this.evaluate(e.right,A):t;case"or":return t.__bool__().value?t:this.evaluate(e.right,A)}const r=this.evaluate(e.right,A);switch(e.operator.value){case"==":return new W(t.value==r.value);case"!=":return new W(t.value!=r.value)}if(t instanceof q||r instanceof q)throw new Error("Cannot perform operation on undefined values");if(t instanceof X||r instanceof X)throw new Error("Cannot perform operation on null values");if(t instanceof H&&r instanceof H)switch(e.operator.value){case"+":return new H(t.value+r.value);case"-":return new H(t.value-r.value);case"*":return new H(t.value*r.value);case"/":return new H(t.value/r.value);case"%":return new H(t.value%r.value);case"<":return new W(t.value<r.value);case">":return new W(t.value>r.value);case">=":return new W(t.value>=r.value);case"<=":return new W(t.value<=r.value)}else if(t instanceof U&&r instanceof U){if("+"===e.operator.value)return new U(t.value.concat(r.value))}else if(r instanceof U){const A=void 0!==r.value.find((e=>e.value===t.value));switch(e.operator.value){case"in":return new W(A);case"not in":return new W(!A)}}if((t instanceof R||r instanceof R)&&"+"===e.operator.value)return new R(t.value.toString()+r.value.toString());if(t instanceof R&&r instanceof R)switch(e.operator.value){case"in":return new W(r.value.includes(t.value));case"not in":return new W(!r.value.includes(t.value))}if(t instanceof R&&r instanceof V)switch(e.operator.value){case"in":return new W(r.value.has(t.value));case"not in":return new W(!r.value.has(t.value))}throw new SyntaxError(`Unknown operator "${e.operator.value}" between ${t.type} and ${r.type}`)}evaluateArguments(e,A){const t=[],r=new Map;for(const n of e)if("KeywordArgumentExpression"===n.type){const e=n;r.set(e.key.value,this.evaluate(e.value,A))}else{if(r.size>0)throw new Error("Positional arguments must come before keyword arguments");t.push(this.evaluate(n,A))}return[t,r]}evaluateFilterExpression(e,A){const t=this.evaluate(e.operand,A);if("Identifier"===e.filter.type){const A=e.filter;if("tojson"===A.value)return new R(ee(t));if(t instanceof U)switch(A.value){case"list":return t;case"first":return t.value[0];case"last":return t.value[t.value.length-1];case"length":return new H(t.value.length);case"reverse":return new U(t.value.reverse());case"sort":return new U(t.value.sort(((e,A)=>{if(e.type!==A.type)throw new Error(`Cannot compare different types: ${e.type} and ${A.type}`);switch(e.type){case"NumericValue":return e.value-A.value;case"StringValue":return e.value.localeCompare(A.value);default:throw new Error(`Cannot compare type: ${e.type}`)}})));case"join":return new R(t.value.map((e=>e.value)).join(""));default:throw new Error(`Unknown ArrayValue filter: ${A.value}`)}else if(t instanceof R)switch(A.value){case"length":return new H(t.value.length);case"upper":return new R(t.value.toUpperCase());case"lower":return new R(t.value.toLowerCase());case"title":return new R(L(t.value));case"capitalize":return new R(t.value.charAt(0).toUpperCase()+t.value.slice(1));case"trim":return new R(t.value.trim());case"indent":return new R(t.value.split("\n").map(((e,A)=>0===A||0===e.length?e:" "+e)).join("\n"));case"join":case"string":return t;default:throw new Error(`Unknown StringValue filter: ${A.value}`)}else{if(t instanceof H){if("abs"===A.value)return new H(Math.abs(t.value));throw new Error(`Unknown NumericValue filter: ${A.value}`)}if(t instanceof V)switch(A.value){case"items":return new U(Array.from(t.value.entries()).map((([e,A])=>new U([new R(e),A]))));case"length":return new H(t.value.size);default:throw new Error(`Unknown ObjectValue filter: ${A.value}`)}}throw new Error(`Cannot apply filter "${A.value}" to type: ${t.type}`)}if("CallExpression"===e.filter.type){const r=e.filter;if("Identifier"!==r.callee.type)throw new Error(`Unknown filter: ${r.callee.type}`);const n=r.callee.value;if("tojson"===n){const[,e]=this.evaluateArguments(r.args,A),n=e.get("indent")??new X;if(!(n instanceof H||n instanceof X))throw new Error("If set, indent must be a number");return new R(ee(t,n.value))}if("join"===n){let e;if(t instanceof R)e=Array.from(t.value);else{if(!(t instanceof U))throw new Error(`Cannot apply filter "${n}" to type: ${t.type}`);e=t.value.map((e=>e.value))}const[a,s]=this.evaluateArguments(r.args,A),i=a.at(0)??s.get("separator")??new R("");if(!(i instanceof R))throw new Error("separator must be a string");return new R(e.join(i.value))}if(t instanceof U){switch(n){case"selectattr":case"rejectattr":{const e="selectattr"===n;if(t.value.some((e=>!(e instanceof V))))throw new Error(`\`${n}\` can only be applied to array of objects`);if(r.args.some((e=>"StringLiteral"!==e.type)))throw new Error(`arguments of \`${n}\` must be strings`);const[a,s,i]=r.args.map((e=>this.evaluate(e,A)));let o;if(s){const e=A.tests.get(s.value);if(!e)throw new Error(`Unknown test: ${s.value}`);o=e}else o=(...e)=>e[0].__bool__().value;const l=t.value.filter((A=>{const t=A.value.get(a.value),r=!!t&&o(t,i);return e?r:!r}));return new U(l)}case"map":{const[,e]=this.evaluateArguments(r.args,A);if(e.has("attribute")){const A=e.get("attribute");if(!(A instanceof R))throw new Error("attribute must be a string");const r=e.get("default"),n=t.value.map((e=>{if(!(e instanceof V))throw new Error("items in map must be an object");return e.value.get(A.value)??r??new q}));return new U(n)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${n}`)}if(t instanceof R){if("indent"===n){const[e,n]=this.evaluateArguments(r.args,A),a=e.at(0)??n.get("width")??new H(4);if(!(a instanceof H))throw new Error("width must be a number");const s=e.at(1)??n.get("first")??new W(!1),i=e.at(2)??n.get("blank")??new W(!1),o=t.value.split("\n"),l=" ".repeat(a.value),c=o.map(((e,A)=>!s.value&&0===A||!i.value&&0===e.length?e:l+e));return new R(c.join("\n"))}throw new Error(`Unknown StringValue filter: ${n}`)}throw new Error(`Cannot apply filter "${n}" to type: ${t.type}`)}throw new Error(`Unknown filter: ${e.filter.type}`)}evaluateTestExpression(e,A){const t=this.evaluate(e.operand,A),r=A.tests.get(e.test.value);if(!r)throw new Error(`Unknown test: ${e.test.value}`);const n=r(t);return new W(e.negate?!n:n)}evaluateUnaryExpression(e,A){const t=this.evaluate(e.argument,A);if("not"===e.operator.value)return new W(!t.value);throw new SyntaxError(`Unknown operator: ${e.operator.value}`)}evalProgram(e,A){return this.evaluateBlock(e.body,A)}evaluateBlock(e,A){let t="";for(const r of e){const e=this.evaluate(r,A);"NullValue"!==e.type&&"UndefinedValue"!==e.type&&(t+=e.value)}return new R(t)}evaluateIdentifier(e,A){return A.lookupVariable(e.value)}evaluateCallExpression(e,A){const[t,r]=this.evaluateArguments(e.args,A);r.size>0&&t.push(new j(r));const n=this.evaluate(e.callee,A);if("FunctionValue"!==n.type)throw new Error(`Cannot call something that is not a function: got ${n.type}`);return n.value(t,A)}evaluateSliceExpression(e,A,t){if(!(e instanceof U||e instanceof R))throw new Error("Slice object must be an array or string");const r=this.evaluate(A.start,t),n=this.evaluate(A.stop,t),a=this.evaluate(A.step,t);if(!(r instanceof H||r instanceof q))throw new Error("Slice start must be numeric or undefined");if(!(n instanceof H||n instanceof q))throw new Error("Slice stop must be numeric or undefined");if(!(a instanceof H||a instanceof q))throw new Error("Slice step must be numeric or undefined");return e instanceof U?new U(O(e.value,r.value,n.value,a.value)):new R(O(Array.from(e.value),r.value,n.value,a.value).join(""))}evaluateMemberExpression(e,A){const t=this.evaluate(e.object,A);let r,n;if(e.computed){if("SliceExpression"===e.property.type)return this.evaluateSliceExpression(t,e.property,A);r=this.evaluate(e.property,A)}else r=new R(e.property.value);if(t instanceof V){if(!(r instanceof R))throw new Error(`Cannot access property with non-string: got ${r.type}`);n=t.value.get(r.value)??t.builtins.get(r.value)}else if(t instanceof U||t instanceof R)if(r instanceof H)n=t.value.at(r.value),t instanceof R&&(n=new R(t.value.at(r.value)));else{if(!(r instanceof R))throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);n=t.builtins.get(r.value)}else{if(!(r instanceof R))throw new Error(`Cannot access property with non-string: got ${r.type}`);n=t.builtins.get(r.value)}return n instanceof Y?n:new q}evaluateSet(e,A){const t=this.evaluate(e.value,A);if("Identifier"===e.assignee.type){const r=e.assignee.value;A.setVariable(r,t)}else{if("MemberExpression"!==e.assignee.type)throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(e.assignee)}`);{const r=e.assignee,n=this.evaluate(r.object,A);if(!(n instanceof V))throw new Error("Cannot assign to member of non-object");if("Identifier"!==r.property.type)throw new Error("Cannot assign to member with non-identifier property");n.value.set(r.property.value,t)}}return new X}evaluateIf(e,A){const t=this.evaluate(e.test,A);return this.evaluateBlock(t.__bool__().value?e.body:e.alternate,A)}evaluateFor(e,A){const t=new J(A);let r,n;if("SelectExpression"===e.iterable.type){const A=e.iterable;n=this.evaluate(A.iterable,t),r=A.test}else n=this.evaluate(e.iterable,t);if(!(n instanceof U))throw new Error(`Expected iterable type in for loop: got ${n.type}`);const a=[],s=[];for(let A=0;A<n.value.length;++A){const i=new J(t),o=n.value[A];let l;if("Identifier"===e.loopvar.type)l=A=>A.setVariable(e.loopvar.value,o);else{if("TupleLiteral"!==e.loopvar.type)throw new Error(`Invalid loop variable(s): ${e.loopvar.type}`);{const A=e.loopvar;if("ArrayValue"!==o.type)throw new Error(`Cannot unpack non-iterable type: ${o.type}`);const t=o;if(A.value.length!==t.value.length)throw new Error(`Too ${A.value.length>t.value.length?"few":"many"} items to unpack`);l=e=>{for(let r=0;r<A.value.length;++r){if("Identifier"!==A.value[r].type)throw new Error(`Cannot unpack non-identifier type: ${A.value[r].type}`);e.setVariable(A.value[r].value,t.value[r])}}}}if(r){l(i);if(!this.evaluate(r,i).__bool__().value)continue}a.push(o),s.push(l)}let i="",o=!0;for(let A=0;A<a.length;++A){const r=new Map([["index",new H(A+1)],["index0",new H(A)],["revindex",new H(a.length-A)],["revindex0",new H(a.length-A-1)],["first",new W(0===A)],["last",new W(A===a.length-1)],["length",new H(a.length)],["previtem",A>0?a[A-1]:new q],["nextitem",A<a.length-1?a[A+1]:new q]]);t.setVariable("loop",new V(r)),s[A](t);i+=this.evaluateBlock(e.body,t).value,o=!1}if(o){i+=this.evaluateBlock(e.defaultBlock,t).value}return new R(i)}evaluateMacro(e,A){return A.setVariable(e.name.value,new Z(((A,t)=>{const r=new J(t);let n;A=A.slice(),"KeywordArgumentsValue"===A.at(-1)?.type&&(n=A.pop());for(let t=0;t<e.args.length;++t){const a=e.args[t],s=A[t];if("Identifier"===a.type){const e=a;if(!s)throw new Error(`Missing positional argument: ${e.value}`);r.setVariable(e.value,s)}else{if("KeywordArgumentExpression"!==a.type)throw new Error(`Unknown argument type: ${a.type}`);{const e=a,A=s??n?.value.get(e.key.value)??this.evaluate(e.value,r);r.setVariable(e.key.value,A)}}}return this.evaluateBlock(e.body,r)}))),new X}evaluate(e,A){if(void 0===e)return new q;switch(e.type){case"Program":return this.evalProgram(e,A);case"Set":return this.evaluateSet(e,A);case"If":return this.evaluateIf(e,A);case"For":return this.evaluateFor(e,A);case"Macro":return this.evaluateMacro(e,A);case"NumericLiteral":return new H(Number(e.value));case"StringLiteral":return new R(e.value);case"BooleanLiteral":return new W(e.value);case"NullLiteral":return new X(e.value);case"ArrayLiteral":return new U(e.value.map((e=>this.evaluate(e,A))));case"TupleLiteral":return new K(e.value.map((e=>this.evaluate(e,A))));case"ObjectLiteral":{const t=new Map;for(const[r,n]of e.value){const e=this.evaluate(r,A);if(!(e instanceof R))throw new Error(`Object keys must be strings: got ${e.type}`);t.set(e.value,this.evaluate(n,A))}return new V(t)}case"Identifier":return this.evaluateIdentifier(e,A);case"CallExpression":return this.evaluateCallExpression(e,A);case"MemberExpression":return this.evaluateMemberExpression(e,A);case"UnaryExpression":return this.evaluateUnaryExpression(e,A);case"BinaryExpression":return this.evaluateBinaryExpression(e,A);case"FilterExpression":return this.evaluateFilterExpression(e,A);case"TestExpression":return this.evaluateTestExpression(e,A);default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function $(e){switch(typeof e){case"number":return new H(e);case"string":return new R(e);case"boolean":return new W(e);case"undefined":return new q;case"object":return null===e?new X:Array.isArray(e)?new U(e.map($)):new V(new Map(Object.entries(e).map((([e,A])=>[e,$(A)]))));case"function":return new Z(((A,t)=>{const r=e(...A.map((e=>e.value)))??null;return $(r)}));default:throw new Error(`Cannot convert to runtime value: ${e}`)}}function ee(e,A,t){const r=t??0;switch(e.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(e.value);case"ArrayValue":case"ObjectValue":{const t=A?" ".repeat(A):"",n="\n"+t.repeat(r),a=n+t;if("ArrayValue"===e.type){const t=e.value.map((e=>ee(e,A,r+1)));return A?`[${a}${t.join(`,${a}`)}${n}]`:`[${t.join(", ")}]`}{const t=Array.from(e.value.entries()).map((([e,t])=>{const n=`"${e}": ${ee(t,A,r+1)}`;return A?`${a}${n}`:n}));return A?`{${t.join(",")}${n}}`:`{${t.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${e.type}`)}}var Ae=class{parsed;constructor(e){const A=c(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=S(A)}render(e){const A=new J;if(A.set("false",!1),A.set("true",!0),A.set("raise_exception",(e=>{throw new Error(e)})),A.set("range",N),e)for(const[t,r]of Object.entries(e))A.set(t,r);return new _(A).run(this.parsed).value}}},"./node_modules/onnxruntime-common/dist/esm/backend-impl.js":(e,A,t)=>{t.r(A),t.d(A,{registerBackend:()=>a,resolveBackendAndExecutionProviders:()=>i});const r=new Map,n=[],a=(e,A,t)=>{if(!A||"function"!=typeof A.init||"function"!=typeof A.createInferenceSessionHandler)throw new TypeError("not a valid backend");{const a=r.get(e);if(void 0===a)r.set(e,{backend:A,priority:t});else{if(a.priority>t)return;if(a.priority===t&&a.backend!==A)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){const A=n.indexOf(e);-1!==A&&n.splice(A,1);for(let A=0;A<n.length;A++)if(r.get(n[A]).priority<=t)return void n.splice(A,0,e);n.push(e)}}},s=async e=>{const A=r.get(e);if(!A)return"backend not found.";if(A.initialized)return A.backend;if(A.aborted)return A.error;{const t=!!A.initPromise;try{return t||(A.initPromise=A.backend.init(e)),await A.initPromise,A.initialized=!0,A.backend}catch(e){return t||(A.error=`${e}`,A.aborted=!0),A.error}finally{delete A.initPromise}}},i=async e=>{const A=e.executionProviders||[],t=A.map((e=>"string"==typeof e?e:e.name)),r=0===t.length?n:t;let a;const i=[],o=new Set;for(const e of r){const A=await s(e);"string"==typeof A?i.push({name:e,err:A}):(a||(a=A),a===A&&o.add(e))}if(!a)throw new Error(`no available backend found. ERR: ${i.map((e=>`[${e.name}] ${e.err}`)).join(", ")}`);for(const{name:e,err:A}of i)t.includes(e)&&console.warn(`removing requested execution provider "${e}" from session options because it is not available: ${A}`);const l=A.filter((e=>o.has("string"==typeof e?e:e.name)));return[a,new Proxy(e,{get:(e,A)=>"executionProviders"===A?l:Reflect.get(e,A)})]}},"./node_modules/onnxruntime-common/dist/esm/backend.js":(e,A,t)=>{t.r(A),t.d(A,{registerBackend:()=>r.registerBackend});var r=t("./node_modules/onnxruntime-common/dist/esm/backend-impl.js")},"./node_modules/onnxruntime-common/dist/esm/env-impl.js":(e,A,t)=>{t.r(A),t.d(A,{env:()=>a});var r=t("./node_modules/onnxruntime-common/dist/esm/version.js");let n="warning";const a={wasm:{},webgl:{},webgpu:{},versions:{common:r.version},set logLevel(e){if(void 0!==e){if("string"!=typeof e||-1===["verbose","info","warning","error","fatal"].indexOf(e))throw new Error(`Unsupported logging level: ${e}`);n=e}},get logLevel(){return n}};Object.defineProperty(a,"logLevel",{enumerable:!0})},"./node_modules/onnxruntime-common/dist/esm/env.js":(e,A,t)=>{t.r(A),t.d(A,{env:()=>r});const r=t("./node_modules/onnxruntime-common/dist/esm/env-impl.js").env},"./node_modules/onnxruntime-common/dist/esm/index.js":(e,A,t)=>{t.r(A),t.d(A,{InferenceSession:()=>a.InferenceSession,TRACE:()=>i.TRACE,TRACE_FUNC_BEGIN:()=>i.TRACE_FUNC_BEGIN,TRACE_FUNC_END:()=>i.TRACE_FUNC_END,Tensor:()=>s.Tensor,TrainingSession:()=>o.TrainingSession,env:()=>n.env,registerBackend:()=>r.registerBackend});var r=t("./node_modules/onnxruntime-common/dist/esm/backend.js"),n=t("./node_modules/onnxruntime-common/dist/esm/env.js"),a=t("./node_modules/onnxruntime-common/dist/esm/inference-session.js"),s=t("./node_modules/onnxruntime-common/dist/esm/tensor.js");t("./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js"),t("./node_modules/onnxruntime-common/dist/esm/tensor-factory.js");var i=t("./node_modules/onnxruntime-common/dist/esm/trace.js");t("./node_modules/onnxruntime-common/dist/esm/onnx-model.js"),t("./node_modules/onnxruntime-common/dist/esm/onnx-value.js");var o=t("./node_modules/onnxruntime-common/dist/esm/training-session.js")},"./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js":(e,A,t)=>{t.r(A),t.d(A,{InferenceSession:()=>s});var r=t("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),n=t("./node_modules/onnxruntime-common/dist/esm/tensor.js"),a=t("./node_modules/onnxruntime-common/dist/esm/trace.js");class s{constructor(e){this.handler=e}async run(e,A,t){(0,a.TRACE_FUNC_BEGIN)();const r={};let s={};if("object"!=typeof e||null===e||e instanceof n.Tensor||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if("object"==typeof A){if(null===A)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof n.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(0===A.length)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(const e of A){if("string"!=typeof e)throw new TypeError("'fetches' must be a string array or an object.");if(-1===this.outputNames.indexOf(e))throw new RangeError(`'fetches' contains invalid output name: ${e}.`);r[e]=null}if("object"==typeof t&&null!==t)s=t;else if(void 0!==t)throw new TypeError("'options' must be an object.")}else{let e=!1;const a=Object.getOwnPropertyNames(A);for(const t of this.outputNames)if(-1!==a.indexOf(t)){const a=A[t];(null===a||a instanceof n.Tensor)&&(e=!0,i=!1,r[t]=a)}if(e){if("object"==typeof t&&null!==t)s=t;else if(void 0!==t)throw new TypeError("'options' must be an object.")}else s=A}}else if(void 0!==A)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const A of this.inputNames)if(void 0===e[A])throw new Error(`input '${A}' is missing in 'feeds'.`);if(i)for(const e of this.outputNames)r[e]=null;const o=await this.handler.run(e,r,s),l={};for(const e in o)if(Object.hasOwnProperty.call(o,e)){const A=o[e];A instanceof n.Tensor?l[e]=A:l[e]=new n.Tensor(A.type,A.data,A.dims)}return(0,a.TRACE_FUNC_END)(),l}async release(){return this.handler.dispose()}static async create(e,A,t,n){let i;(0,a.TRACE_FUNC_BEGIN)();let o={};if("string"==typeof e){if(i=e,"object"==typeof A&&null!==A)o=A;else if(void 0!==A)throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(i=e,"object"==typeof A&&null!==A)o=A;else if(void 0!==A)throw new TypeError("'options' must be an object.")}else{if(!(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{const r=e;let a=0,s=e.byteLength;if("object"==typeof A&&null!==A)o=A;else if("number"==typeof A){if(a=A,!Number.isSafeInteger(a))throw new RangeError("'byteOffset' must be an integer.");if(a<0||a>=r.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${r.byteLength}).`);if(s=e.byteLength-a,"number"==typeof t){if(s=t,!Number.isSafeInteger(s))throw new RangeError("'byteLength' must be an integer.");if(s<=0||a+s>r.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${r.byteLength-a}].`);if("object"==typeof n&&null!==n)o=n;else if(void 0!==n)throw new TypeError("'options' must be an object.")}else if(void 0!==t)throw new TypeError("'byteLength' must be a number.")}else if(void 0!==A)throw new TypeError("'options' must be an object.");i=new Uint8Array(r,a,s)}}const[l,c]=await(0,r.resolveBackendAndExecutionProviders)(o),g=await l.createInferenceSessionHandler(i,c);return(0,a.TRACE_FUNC_END)(),new s(g)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}},"./node_modules/onnxruntime-common/dist/esm/inference-session.js":(e,A,t)=>{t.r(A),t.d(A,{InferenceSession:()=>r});const r=t("./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js").InferenceSession},"./node_modules/onnxruntime-common/dist/esm/onnx-model.js":(e,A,t)=>{t.r(A)},"./node_modules/onnxruntime-common/dist/esm/onnx-value.js":(e,A,t)=>{t.r(A)},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js":(e,A,t)=>{t.r(A),t.d(A,{tensorToDataURL:()=>r,tensorToImageData:()=>n});const r=(e,A)=>{const t="undefined"!=typeof document?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];const r=t.getContext("2d");if(null!=r){let n,a;void 0!==A?.tensorLayout&&"NHWC"===A.tensorLayout?(n=e.dims[2],a=e.dims[3]):(n=e.dims[3],a=e.dims[2]);const s=void 0!==A?.format?A.format:"RGB",i=A?.norm;let o,l;void 0===i||void 0===i.mean?o=[255,255,255,255]:"number"==typeof i.mean?o=[i.mean,i.mean,i.mean,i.mean]:(o=[i.mean[0],i.mean[1],i.mean[2],0],void 0!==i.mean[3]&&(o[3]=i.mean[3])),void 0===i||void 0===i.bias?l=[0,0,0,0]:"number"==typeof i.bias?l=[i.bias,i.bias,i.bias,i.bias]:(l=[i.bias[0],i.bias[1],i.bias[2],0],void 0!==i.bias[3]&&(l[3]=i.bias[3]));const c=a*n;let g=0,u=c,d=2*c,f=-1;"RGBA"===s?(g=0,u=c,d=2*c,f=3*c):"RGB"===s?(g=0,u=c,d=2*c):"RBG"===s&&(g=0,d=c,u=2*c);for(let A=0;A<a;A++)for(let t=0;t<n;t++){const n=(e.data[g++]-l[0])*o[0],a=(e.data[u++]-l[1])*o[1],s=(e.data[d++]-l[2])*o[2],i=-1===f?255:(e.data[f++]-l[3])*o[3];r.fillStyle="rgba("+n+","+a+","+s+","+i+")",r.fillRect(t,A,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}throw new Error("Can not access image data")},n=(e,A)=>{const t="undefined"!=typeof document?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let r;if(null==t)throw new Error("Can not access image data");{let n,a,s;void 0!==A?.tensorLayout&&"NHWC"===A.tensorLayout?(n=e.dims[2],a=e.dims[1],s=e.dims[3]):(n=e.dims[3],a=e.dims[2],s=e.dims[1]);const i=void 0!==A&&void 0!==A.format?A.format:"RGB",o=A?.norm;let l,c;void 0===o||void 0===o.mean?l=[255,255,255,255]:"number"==typeof o.mean?l=[o.mean,o.mean,o.mean,o.mean]:(l=[o.mean[0],o.mean[1],o.mean[2],255],void 0!==o.mean[3]&&(l[3]=o.mean[3])),void 0===o||void 0===o.bias?c=[0,0,0,0]:"number"==typeof o.bias?c=[o.bias,o.bias,o.bias,o.bias]:(c=[o.bias[0],o.bias[1],o.bias[2],0],void 0!==o.bias[3]&&(c[3]=o.bias[3]));const g=a*n;if(void 0!==A&&(void 0!==A.format&&4===s&&"RGBA"!==A.format||3===s&&"RGB"!==A.format&&"BGR"!==A.format))throw new Error("Tensor format doesn't match input tensor dims");const u=4;let d=0,f=1,p=2,h=3,m=0,C=g,b=2*g,I=-1;"RGBA"===i?(m=0,C=g,b=2*g,I=3*g):"RGB"===i?(m=0,C=g,b=2*g):"RBG"===i&&(m=0,b=g,C=2*g),r=t.createImageData(n,a);for(let A=0;A<a*n;d+=u,f+=u,p+=u,h+=u,A++)r.data[d]=(e.data[m++]-c[0])*l[0],r.data[f]=(e.data[C++]-c[1])*l[1],r.data[p]=(e.data[b++]-c[2])*l[2],r.data[h]=-1===I?255:(e.data[I++]-c[3])*l[3]}return r}},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js":(e,A,t)=>{t.r(A)},"./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js":(e,A,t)=>{t.r(A),t.d(A,{bufferToTensor:()=>n,tensorFromGpuBuffer:()=>i,tensorFromImage:()=>a,tensorFromMLTensor:()=>o,tensorFromPinnedBuffer:()=>l,tensorFromTexture:()=>s});var r=t("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const n=(e,A)=>{if(void 0===e)throw new Error("Image buffer must be defined");if(void 0===A.height||void 0===A.width)throw new Error("Image height and width must be defined");if("NHWC"===A.tensorLayout)throw new Error("NHWC Tensor layout is not supported yet");const{height:t,width:n}=A,a=A.norm??{mean:255,bias:0};let s,i;s="number"==typeof a.mean?[a.mean,a.mean,a.mean,a.mean]:[a.mean[0],a.mean[1],a.mean[2],a.mean[3]??255],i="number"==typeof a.bias?[a.bias,a.bias,a.bias,a.bias]:[a.bias[0],a.bias[1],a.bias[2],a.bias[3]??0];const o=void 0!==A.format?A.format:"RGBA",l=void 0!==A.tensorFormat&&void 0!==A.tensorFormat?A.tensorFormat:"RGB",c=t*n,g="RGBA"===l?new Float32Array(4*c):new Float32Array(3*c);let u=4,d=0,f=1,p=2,h=3,m=0,C=c,b=2*c,I=-1;"RGB"===o&&(u=3,d=0,f=1,p=2,h=-1),"RGBA"===l?I=3*c:"RBG"===l?(m=0,b=c,C=2*c):"BGR"===l&&(b=0,C=c,m=2*c);for(let A=0;A<c;A++,d+=u,p+=u,f+=u,h+=u)g[m++]=(e[d]+i[0])/s[0],g[C++]=(e[f]+i[1])/s[1],g[b++]=(e[p]+i[2])/s[2],-1!==I&&-1!==h&&(g[I++]=(e[h]+i[3])/s[3]);return"RGBA"===l?new r.Tensor("float32",g,[1,4,t,n]):new r.Tensor("float32",g,[1,3,t,n])},a=async(e,A)=>{const t="undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement,r="undefined"!=typeof ImageData&&e instanceof ImageData,a="undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap,s="string"==typeof e;let i,o=A??{};const l=()=>{if("undefined"!=typeof document)return document.createElement("canvas");if("undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=e=>"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas?e.getContext("2d"):null;if(t){const t=l();t.width=e.width,t.height=e.height;const r=c(t);if(null==r)throw new Error("Can not access image data");{let t=e.height,n=e.width;if(void 0!==A&&void 0!==A.resizedHeight&&void 0!==A.resizedWidth&&(t=A.resizedHeight,n=A.resizedWidth),void 0!==A){if(o=A,void 0!==A.tensorFormat)throw new Error("Image input config format must be RGBA for HTMLImageElement");o.tensorFormat="RGBA",o.height=t,o.width=n}else o.tensorFormat="RGBA",o.height=t,o.width=n;r.drawImage(e,0,0),i=r.getImageData(0,0,n,t).data}}else{if(!r){if(a){if(void 0===A)throw new Error("Please provide image config with format for Imagebitmap");const t=l();t.width=e.width,t.height=e.height;const r=c(t);if(null!=r){const A=e.height,t=e.width;return r.drawImage(e,0,0,t,A),i=r.getImageData(0,0,t,A).data,o.height=A,o.width=t,n(i,o)}throw new Error("Can not access image data")}if(s)return new Promise(((A,t)=>{const r=l(),a=c(r);if(!e||!a)return t();const s=new Image;s.crossOrigin="Anonymous",s.src=e,s.onload=()=>{r.width=s.width,r.height=s.height,a.drawImage(s,0,0,r.width,r.height);const e=a.getImageData(0,0,r.width,r.height);o.height=r.height,o.width=r.width,A(n(e.data,o))}}));throw new Error("Input data provided is not supported - aborted tensor creation")}{let t,r;if(void 0!==A&&void 0!==A.resizedWidth&&void 0!==A.resizedHeight?(t=A.resizedHeight,r=A.resizedWidth):(t=e.height,r=e.width),void 0!==A&&(o=A),o.format="RGBA",o.height=t,o.width=r,void 0!==A){const A=l();A.width=r,A.height=t;const n=c(A);if(null==n)throw new Error("Can not access image data");n.putImageData(e,0,0),i=n.getImageData(0,0,r,t).data}else i=e.data}}if(void 0!==i)return n(i,o);throw new Error("Input data provided is not supported - aborted tensor creation")},s=(e,A)=>{const{width:t,height:n,download:a,dispose:s}=A,i=[1,n,t,4];return new r.Tensor({location:"texture",type:"float32",texture:e,dims:i,download:a,dispose:s})},i=(e,A)=>{const{dataType:t,dims:n,download:a,dispose:s}=A;return new r.Tensor({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:n,download:a,dispose:s})},o=(e,A)=>{const{dataType:t,dims:n,download:a,dispose:s}=A;return new r.Tensor({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:n,download:a,dispose:s})},l=(e,A,t)=>new r.Tensor({location:"cpu-pinned",type:e,data:A,dims:t??[A.length]})},"./node_modules/onnxruntime-common/dist/esm/tensor-factory.js":(e,A,t)=>{t.r(A)},"./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js":(e,A,t)=>{t.r(A),t.d(A,{NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP:()=>n,NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP:()=>r,checkTypedArray:()=>s});const r=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),n=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let a=!1;const s=()=>{if(!a){a=!0;const e="undefined"!=typeof BigInt64Array&&BigInt64Array.from,A="undefined"!=typeof BigUint64Array&&BigUint64Array.from,t="undefined"!=typeof Float16Array&&Float16Array.from;e&&(r.set("int64",BigInt64Array),n.set(BigInt64Array,"int64")),A&&(r.set("uint64",BigUint64Array),n.set(BigUint64Array,"uint64")),t?(r.set("float16",Float16Array),n.set(Float16Array,"float16")):r.set("float16",Uint16Array)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-impl.js":(e,A,t)=>{t.r(A),t.d(A,{Tensor:()=>i});var r=t("./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js"),n=t("./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js"),a=t("./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js"),s=t("./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js");class i{constructor(e,A,t){let r,n;if((0,a.checkTypedArray)(),"object"==typeof e&&"location"in e)switch(this.dataLocation=e.location,r=e.type,n=e.dims,e.location){case"cpu-pinned":{const A=a.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(r);if(!A)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(e.data instanceof A))throw new TypeError(`buffer should be of type ${A.name}`);this.cpuData=e.data;break}case"texture":if("float32"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break;case"gpu-buffer":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint8"!==r&&"bool"!==r&&"uint4"!==r&&"int4"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break;case"ml-tensor":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint64"!==r&&"int8"!==r&&"uint8"!==r&&"bool"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break;default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let s,i;if("string"==typeof e)if(r=e,i=t,"string"===e){if(!Array.isArray(A))throw new TypeError("A string tensor's data must be a string array.");s=A}else{const t=a.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(e);if(void 0===t)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(A)){if("float16"===e&&t===Uint16Array||"uint4"===e||"int4"===e)throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${t.name} as data.`);s="uint64"===e||"int64"===e?t.from(A,BigInt):t.from(A)}else if(A instanceof t)s=A;else{if(!(A instanceof Uint8ClampedArray))throw new TypeError(`A ${r} tensor's data must be type of ${t}`);if("uint8"!==e)throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");s=Uint8Array.from(A)}}else if(i=A,Array.isArray(e)){if(0===e.length)throw new TypeError("Tensor type cannot be inferred from an empty array.");const A=typeof e[0];if("string"===A)r="string",s=e;else{if("boolean"!==A)throw new TypeError(`Invalid element type of data array: ${A}.`);r="bool",s=Uint8Array.from(e)}}else if(e instanceof Uint8ClampedArray)r="uint8",s=Uint8Array.from(e);else{const A=a.NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(e.constructor);if(void 0===A)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);r=A,s=e}if(void 0===i)i=[s.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");n=i,this.cpuData=s,this.dataLocation="cpu"}const i=(0,s.calculateSize)(n);if(this.cpuData&&i!==this.cpuData.length&&("uint4"!==r&&"int4"!==r||Math.ceil(i/2)!==this.cpuData.length))throw new Error(`Tensor's size(${i}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=i}static async fromImage(e,A){return(0,n.tensorFromImage)(e,A)}static fromTexture(e,A){return(0,n.tensorFromTexture)(e,A)}static fromGpuBuffer(e,A){return(0,n.tensorFromGpuBuffer)(e,A)}static fromMLTensor(e,A){return(0,n.tensorFromMLTensor)(e,A)}static fromPinnedBuffer(e,A,t){return(0,n.tensorFromPinnedBuffer)(e,A,t)}toDataURL(e){return(0,r.tensorToDataURL)(this,e)}toImageData(e){return(0,r.tensorToImageData)(this,e)}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(e){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 A=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=A,e&&this.disposer&&(this.disposer(),this.disposer=void 0),A}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("none"===this.dataLocation)throw new Error("The tensor is disposed.")}reshape(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return(0,s.tensorReshape)(this,e)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js":(e,A,t)=>{t.r(A),t.d(A,{calculateSize:()=>n,tensorReshape:()=>a});var r=t("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const n=e=>{let A=1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||!Number.isSafeInteger(r))throw new TypeError(`dims[${t}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${r}`);A*=r}return A},a=(e,A)=>{switch(e.location){case"cpu":return new r.Tensor(e.type,e.data,A);case"cpu-pinned":return new r.Tensor({location:"cpu-pinned",data:e.data,type:e.type,dims:A});case"texture":return new r.Tensor({location:"texture",texture:e.texture,type:e.type,dims:A});case"gpu-buffer":return new r.Tensor({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:A});case"ml-tensor":return new r.Tensor({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:A});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}},"./node_modules/onnxruntime-common/dist/esm/tensor.js":(e,A,t)=>{t.r(A),t.d(A,{Tensor:()=>r});const r=t("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js").Tensor},"./node_modules/onnxruntime-common/dist/esm/trace.js":(e,A,t)=>{t.r(A),t.d(A,{TRACE:()=>n,TRACE_FUNC_BEGIN:()=>s,TRACE_FUNC_END:()=>i});var r=t("./node_modules/onnxruntime-common/dist/esm/env-impl.js");const n=(e,A)=>{(void 0===r.env.trace?r.env.wasm.trace:r.env.trace)&&console.timeStamp(`${e}::ORT::${A}`)},a=(e,A)=>{const t=(new Error).stack?.split(/\r\n|\r|\n/g)||[];let r=!1;for(let a=0;a<t.length;a++){if(r&&!t[a].includes("TRACE_FUNC")){let r=`FUNC_${e}::${t[a].trim().split(" ")[1]}`;return A&&(r+=`::${A}`),void n("CPU",r)}t[a].includes("TRACE_FUNC")&&(r=!0)}},s=e=>{(void 0===r.env.trace?r.env.wasm.trace:r.env.trace)&&a("BEGIN",e)},i=e=>{(void 0===r.env.trace?r.env.wasm.trace:r.env.trace)&&a("END",e)}},"./node_modules/onnxruntime-common/dist/esm/training-session-impl.js":(e,A,t)=>{t.r(A),t.d(A,{TrainingSession:()=>a});var r=t("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),n=t("./node_modules/onnxruntime-common/dist/esm/tensor.js");class a{constructor(e,A,t){this.handler=e,this.hasOptimizerModel=A,this.hasEvalModel=t}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw new Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw new Error("This training session has no evalModel loaded.")}static async create(e,A){const t=e.evalModel||"",n=e.optimizerModel||"",s=A||{},[i,o]=await(0,r.resolveBackendAndExecutionProviders)(s);if(i.createTrainingSessionHandler){const A=await i.createTrainingSessionHandler(e.checkpointState,e.trainModel,t,n,o);return new a(A,!!e.optimizerModel,!!e.evalModel)}throw new Error("Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.")}typeNarrowingForRunStep(e,A,t,r,a){const s={};let i={};if("object"!=typeof t||null===t||t instanceof n.Tensor||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let o=!0;if("object"==typeof r){if(null===r)throw new TypeError("Unexpected argument[1]: cannot be null.");if(r instanceof n.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(r)){if(0===r.length)throw new TypeError("'fetches' cannot be an empty array.");o=!1;for(const e of r){if("string"!=typeof e)throw new TypeError("'fetches' must be a string array or an object.");if(-1===A.indexOf(e))throw new RangeError(`'fetches' contains invalid output name: ${e}.`);s[e]=null}if("object"==typeof a&&null!==a)i=a;else if(void 0!==a)throw new TypeError("'options' must be an object.")}else{let e=!1;const t=Object.getOwnPropertyNames(r);for(const a of A)if(-1!==t.indexOf(a)){const A=r[a];(null===A||A instanceof n.Tensor)&&(e=!0,o=!1,s[a]=A)}if(e){if("object"==typeof a&&null!==a)i=a;else if(void 0!==a)throw new TypeError("'options' must be an object.")}else i=r}}else if(void 0!==r)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const A of e)if(void 0===t[A])throw new Error(`input '${A}' is missing in 'feeds'.`);if(o)for(const e of A)s[e]=null;return[s,i]}convertHandlerReturnTypeToMapOfTensors(e){const A={};for(const t in e)if(Object.hasOwnProperty.call(e,t)){const r=e[t];r instanceof n.Tensor?A[t]=r:A[t]=new n.Tensor(r.type,r.data,r.dims)}return A}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(e,A,t){const[r,n]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,e,A,t),a=await this.handler.runTrainStep(e,r,n);return this.convertHandlerReturnTypeToMapOfTensors(a)}async runOptimizerStep(e){if(!this.hasOptimizerModel)throw new Error("This TrainingSession has no OptimizerModel loaded.");await this.handler.runOptimizerStep(e||{})}async runEvalStep(e,A,t){if(this.hasEvalModel){const[r,n]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,e,A,t),a=await this.handler.runEvalStep(e,r,n);return this.convertHandlerReturnTypeToMapOfTensors(a)}throw new Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(e=!0){return this.handler.getParametersSize(e)}async loadParametersBuffer(e,A=!0){const t=await this.getParametersSize(A);if(e.length!==4*t)throw new Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(e,A)}async getContiguousParameters(e=!0){return this.handler.getContiguousParameters(e)}async release(){return this.handler.dispose()}}},"./node_modules/onnxruntime-common/dist/esm/training-session.js":(e,A,t)=>{t.r(A),t.d(A,{TrainingSession:()=>r});const r=t("./node_modules/onnxruntime-common/dist/esm/training-session-impl.js").TrainingSession},"./node_modules/onnxruntime-common/dist/esm/version.js":(e,A,t)=>{t.r(A),t.d(A,{version:()=>r});const r="1.20.1"},"./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?3a96":(e,A,t)=>{t.r(A),t.d(A,{InferenceSession:()=>P,TRACE:()=>M,TRACE_FUNC_BEGIN:()=>D,TRACE_FUNC_END:()=>Q,Tensor:()=>E,default:()=>ig,env:()=>g,registerBackend:()=>a});var r,n,a,s,i,o,l,c,g,u,d,f,p,h,m,C,b,I,w,k,x,B,v,y,E,M,G,D,Q,T,P,z=Object.defineProperty,F=Object.getOwnPropertyDescriptor,S=Object.getOwnPropertyNames,N=Object.prototype.hasOwnProperty,O=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(e,A)=>(typeof require<"u"?require:e)[A]}):e)((function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')})),L=(e,A)=>()=>(e&&(A=e(e=0)),A),Y=(e,A)=>{for(var t in A)z(e,t,{get:A[t],enumerable:!0})},H=e=>((e,A,t,r)=>{if(A&&"object"==typeof A||"function"==typeof A)for(let n of S(A))!N.call(e,n)&&n!==t&&z(e,n,{get:()=>A[n],enumerable:!(r=F(A,n))||r.enumerable});return e})(z({},"__esModule",{value:!0}),e),R=L((()=>{r=new Map,n=[],a=(e,A,t)=>{if(!A||"function"!=typeof A.init||"function"!=typeof A.createInferenceSessionHandler)throw new TypeError("not a valid backend");{let a=r.get(e);if(void 0===a)r.set(e,{backend:A,priority:t});else{if(a.priority>t)return;if(a.priority===t&&a.backend!==A)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let A=n.indexOf(e);-1!==A&&n.splice(A,1);for(let A=0;A<n.length;A++)if(r.get(n[A]).priority<=t)return void n.splice(A,0,e);n.push(e)}}},s=async e=>{let A=r.get(e);if(!A)return"backend not found.";if(A.initialized)return A.backend;if(A.aborted)return A.error;{let t=!!A.initPromise;try{return t||(A.initPromise=A.backend.init(e)),await A.initPromise,A.initialized=!0,A.backend}catch(e){return t||(A.error=`${e}`,A.aborted=!0),A.error}finally{delete A.initPromise}}},i=async e=>{let A,t=e.executionProviders||[],r=t.map((e=>"string"==typeof e?e:e.name)),a=0===r.length?n:r,i=[],o=new Set;for(let e of a){let t=await s(e);"string"==typeof t?i.push({name:e,err:t}):(A||(A=t),A===t&&o.add(e))}if(!A)throw new Error(`no available backend found. ERR: ${i.map((e=>`[${e.name}] ${e.err}`)).join(", ")}`);for(let{name:e,err:A}of i)r.includes(e)&&console.warn(`removing requested execution provider "${e}" from session options because it is not available: ${A}`);let l=t.filter((e=>o.has("string"==typeof e?e:e.name)));return[A,new Proxy(e,{get:(e,A)=>"executionProviders"===A?l:Reflect.get(e,A)})]}})),W=L((()=>{R()})),V=L((()=>{o="1.21.0-dev.20250206-d981b153d3"})),j=L((()=>{V(),l="warning",c={wasm:{},webgl:{},webgpu:{},versions:{common:o},set logLevel(e){if(void 0!==e){if("string"!=typeof e||-1===["verbose","info","warning","error","fatal"].indexOf(e))throw new Error(`Unsupported logging level: ${e}`);l=e}},get logLevel(){return l}},Object.defineProperty(c,"logLevel",{enumerable:!0})})),U=L((()=>{j(),g=c})),K=L((()=>{u=(e,A)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let r=t.getContext("2d");if(null!=r){let n,a;void 0!==A?.tensorLayout&&"NHWC"===A.tensorLayout?(n=e.dims[2],a=e.dims[3]):(n=e.dims[3],a=e.dims[2]);let s,i,o=void 0!==A?.format?A.format:"RGB",l=A?.norm;void 0===l||void 0===l.mean?s=[255,255,255,255]:"number"==typeof l.mean?s=[l.mean,l.mean,l.mean,l.mean]:(s=[l.mean[0],l.mean[1],l.mean[2],0],void 0!==l.mean[3]&&(s[3]=l.mean[3])),void 0===l||void 0===l.bias?i=[0,0,0,0]:"number"==typeof l.bias?i=[l.bias,l.bias,l.bias,l.bias]:(i=[l.bias[0],l.bias[1],l.bias[2],0],void 0!==l.bias[3]&&(i[3]=l.bias[3]));let c=a*n,g=0,u=c,d=2*c,f=-1;"RGBA"===o?(g=0,u=c,d=2*c,f=3*c):"RGB"===o?(g=0,u=c,d=2*c):"RBG"===o&&(g=0,d=c,u=2*c);for(let A=0;A<a;A++)for(let t=0;t<n;t++){let n=(e.data[g++]-i[0])*s[0],a=(e.data[u++]-i[1])*s[1],o=(e.data[d++]-i[2])*s[2],l=-1===f?255:(e.data[f++]-i[3])*s[3];r.fillStyle="rgba("+n+","+a+","+o+","+l+")",r.fillRect(t,A,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}throw new Error("Can not access image data")},d=(e,A)=>{let t,r=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");if(null==r)throw new Error("Can not access image data");{let n,a,s;void 0!==A?.tensorLayout&&"NHWC"===A.tensorLayout?(n=e.dims[2],a=e.dims[1],s=e.dims[3]):(n=e.dims[3],a=e.dims[2],s=e.dims[1]);let i,o,l=void 0!==A&&void 0!==A.format?A.format:"RGB",c=A?.norm;void 0===c||void 0===c.mean?i=[255,255,255,255]:"number"==typeof c.mean?i=[c.mean,c.mean,c.mean,c.mean]:(i=[c.mean[0],c.mean[1],c.mean[2],255],void 0!==c.mean[3]&&(i[3]=c.mean[3])),void 0===c||void 0===c.bias?o=[0,0,0,0]:"number"==typeof c.bias?o=[c.bias,c.bias,c.bias,c.bias]:(o=[c.bias[0],c.bias[1],c.bias[2],0],void 0!==c.bias[3]&&(o[3]=c.bias[3]));let g=a*n;if(void 0!==A&&(void 0!==A.format&&4===s&&"RGBA"!==A.format||3===s&&"RGB"!==A.format&&"BGR"!==A.format))throw new Error("Tensor format doesn't match input tensor dims");let u=4,d=0,f=1,p=2,h=3,m=0,C=g,b=2*g,I=-1;"RGBA"===l?(m=0,C=g,b=2*g,I=3*g):"RGB"===l?(m=0,C=g,b=2*g):"RBG"===l&&(m=0,b=g,C=2*g),t=r.createImageData(n,a);for(let A=0;A<a*n;d+=u,f+=u,p+=u,h+=u,A++)t.data[d]=(e.data[m++]-o[0])*i[0],t.data[f]=(e.data[C++]-o[1])*i[1],t.data[p]=(e.data[b++]-o[2])*i[2],t.data[h]=-1===I?255:(e.data[I++]-o[3])*i[3]}return t}})),Z=L((()=>{J(),f=(e,A)=>{if(void 0===e)throw new Error("Image buffer must be defined");if(void 0===A.height||void 0===A.width)throw new Error("Image height and width must be defined");if("NHWC"===A.tensorLayout)throw new Error("NHWC Tensor layout is not supported yet");let t,r,{height:n,width:a}=A,s=A.norm??{mean:255,bias:0};t="number"==typeof s.mean?[s.mean,s.mean,s.mean,s.mean]:[s.mean[0],s.mean[1],s.mean[2],s.mean[3]??255],r="number"==typeof s.bias?[s.bias,s.bias,s.bias,s.bias]:[s.bias[0],s.bias[1],s.bias[2],s.bias[3]??0];let i=void 0!==A.format?A.format:"RGBA",o=void 0!==A.tensorFormat&&void 0!==A.tensorFormat?A.tensorFormat:"RGB",l=n*a,c="RGBA"===o?new Float32Array(4*l):new Float32Array(3*l),g=4,u=0,d=1,f=2,p=3,h=0,m=l,C=2*l,b=-1;"RGB"===i&&(g=3,u=0,d=1,f=2,p=-1),"RGBA"===o?b=3*l:"RBG"===o?(h=0,C=l,m=2*l):"BGR"===o&&(C=0,m=l,h=2*l);for(let A=0;A<l;A++,u+=g,f+=g,d+=g,p+=g)c[h++]=(e[u]+r[0])/t[0],c[m++]=(e[d]+r[1])/t[1],c[C++]=(e[f]+r[2])/t[2],-1!==b&&-1!==p&&(c[b++]=(e[p]+r[3])/t[3]);return new y("float32",c,"RGBA"===o?[1,4,n,a]:[1,3,n,a])},p=async(e,A)=>{let t,r=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,n=typeof ImageData<"u"&&e instanceof ImageData,a=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,s="string"==typeof e,i=A??{},o=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},l=e=>typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas?e.getContext("2d"):null;if(r){let r=o();r.width=e.width,r.height=e.height;let n=l(r);if(null==n)throw new Error("Can not access image data");{let r=e.height,a=e.width;if(void 0!==A&&void 0!==A.resizedHeight&&void 0!==A.resizedWidth&&(r=A.resizedHeight,a=A.resizedWidth),void 0!==A){if(i=A,void 0!==A.tensorFormat)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=r,i.width=a}else i.tensorFormat="RGBA",i.height=r,i.width=a;n.drawImage(e,0,0),t=n.getImageData(0,0,a,r).data}}else{if(!n){if(a){if(void 0===A)throw new Error("Please provide image config with format for Imagebitmap");let r=o();r.width=e.width,r.height=e.height;let n=l(r);if(null!=n){let A=e.height,r=e.width;return n.drawImage(e,0,0,r,A),t=n.getImageData(0,0,r,A).data,i.height=A,i.width=r,f(t,i)}throw new Error("Can not access image data")}if(s)return new Promise(((A,t)=>{let r=o(),n=l(r);if(!e||!n)return t();let a=new Image;a.crossOrigin="Anonymous",a.src=e,a.onload=()=>{r.width=a.width,r.height=a.height,n.drawImage(a,0,0,r.width,r.height);let e=n.getImageData(0,0,r.width,r.height);i.height=r.height,i.width=r.width,A(f(e.data,i))}}));throw new Error("Input data provided is not supported - aborted tensor creation")}{let r,n;if(void 0!==A&&void 0!==A.resizedWidth&&void 0!==A.resizedHeight?(r=A.resizedHeight,n=A.resizedWidth):(r=e.height,n=e.width),void 0!==A&&(i=A),i.format="RGBA",i.height=r,i.width=n,void 0!==A){let A=o();A.width=n,A.height=r;let a=l(A);if(null==a)throw new Error("Can not access image data");a.putImageData(e,0,0),t=a.getImageData(0,0,n,r).data}else t=e.data}}if(void 0!==t)return f(t,i);throw new Error("Input data provided is not supported - aborted tensor creation")},h=(e,A)=>{let{width:t,height:r,download:n,dispose:a}=A;return new y({location:"texture",type:"float32",texture:e,dims:[1,r,t,4],download:n,dispose:a})},m=(e,A)=>{let{dataType:t,dims:r,download:n,dispose:a}=A;return new y({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:r,download:n,dispose:a})},C=(e,A)=>{let{dataType:t,dims:r,download:n,dispose:a}=A;return new y({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:r,download:n,dispose:a})},b=(e,A,t)=>new y({location:"cpu-pinned",type:e,data:A,dims:t??[A.length]})})),X=L((()=>{I=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),w=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),k=!1,x=()=>{if(!k){k=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,A=typeof BigUint64Array<"u"&&BigUint64Array.from,t=typeof Float16Array<"u"&&Float16Array.from;e&&(I.set("int64",BigInt64Array),w.set(BigInt64Array,"int64")),A&&(I.set("uint64",BigUint64Array),w.set(BigUint64Array,"uint64")),t?(I.set("float16",Float16Array),w.set(Float16Array,"float16")):I.set("float16",Uint16Array)}}})),q=L((()=>{J(),B=e=>{let A=1;for(let t=0;t<e.length;t++){let r=e[t];if("number"!=typeof r||!Number.isSafeInteger(r))throw new TypeError(`dims[${t}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${r}`);A*=r}return A},v=(e,A)=>{switch(e.location){case"cpu":return new y(e.type,e.data,A);case"cpu-pinned":return new y({location:"cpu-pinned",data:e.data,type:e.type,dims:A});case"texture":return new y({location:"texture",texture:e.texture,type:e.type,dims:A});case"gpu-buffer":return new y({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:A});case"ml-tensor":return new y({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:A});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}})),J=L((()=>{K(),Z(),X(),q(),y=class{constructor(e,A,t){let r,n;if(x(),"object"==typeof e&&"location"in e)switch(this.dataLocation=e.location,r=e.type,n=e.dims,e.location){case"cpu-pinned":{let A=I.get(r);if(!A)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(e.data instanceof A))throw new TypeError(`buffer should be of type ${A.name}`);this.cpuData=e.data;break}case"texture":if("float32"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break;case"gpu-buffer":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint8"!==r&&"bool"!==r&&"uint4"!==r&&"int4"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break;case"ml-tensor":if("float32"!==r&&"float16"!==r&&"int32"!==r&&"int64"!==r&&"uint32"!==r&&"uint64"!==r&&"int8"!==r&&"uint8"!==r&&"bool"!==r&&"uint4"!==r&&"int4"!==r)throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break;default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let a,s;if("string"==typeof e)if(r=e,s=t,"string"===e){if(!Array.isArray(A))throw new TypeError("A string tensor's data must be a string array.");a=A}else{let t=I.get(e);if(void 0===t)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(A)){if("float16"===e&&t===Uint16Array||"uint4"===e||"int4"===e)throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${t.name} as data.`);a="uint64"===e||"int64"===e?t.from(A,BigInt):t.from(A)}else if(A instanceof t)a=A;else{if(!(A instanceof Uint8ClampedArray))throw new TypeError(`A ${r} tensor's data must be type of ${t}`);if("uint8"!==e)throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");a=Uint8Array.from(A)}}else if(s=A,Array.isArray(e)){if(0===e.length)throw new TypeError("Tensor type cannot be inferred from an empty array.");let A=typeof e[0];if("string"===A)r="string",a=e;else{if("boolean"!==A)throw new TypeError(`Invalid element type of data array: ${A}.`);r="bool",a=Uint8Array.from(e)}}else if(e instanceof Uint8ClampedArray)r="uint8",a=Uint8Array.from(e);else{let A=w.get(e.constructor);if(void 0===A)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);r=A,a=e}if(void 0===s)s=[a.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");n=s,this.cpuData=a,this.dataLocation="cpu"}let a=B(n);if(this.cpuData&&a!==this.cpuData.length&&("uint4"!==r&&"int4"!==r||Math.ceil(a/2)!==this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(e,A){return p(e,A)}static fromTexture(e,A){return h(e,A)}static fromGpuBuffer(e,A){return m(e,A)}static fromMLTensor(e,A){return C(e,A)}static fromPinnedBuffer(e,A,t){return b(e,A,t)}toDataURL(e){return u(this,e)}toImageData(e){return d(this,e)}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(e){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 A=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=A,e&&this.disposer&&(this.disposer(),this.disposer=void 0),A}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("none"===this.dataLocation)throw new Error("The tensor is disposed.")}reshape(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return v(this,e)}}})),_=L((()=>{J(),E=y})),$=L((()=>{j(),M=(e,A)=>{(typeof c.trace>"u"?!c.wasm.trace:!c.trace)||console.timeStamp(`${e}::ORT::${A}`)},G=(e,A)=>{let t=(new Error).stack?.split(/\r\n|\r|\n/g)||[],r=!1;for(let n=0;n<t.length;n++){if(r&&!t[n].includes("TRACE_FUNC")){let r=`FUNC_${e}::${t[n].trim().split(" ")[1]}`;return A&&(r+=`::${A}`),void M("CPU",r)}t[n].includes("TRACE_FUNC")&&(r=!0)}},D=e=>{(typeof c.trace>"u"?!c.wasm.trace:!c.trace)||G("BEGIN",e)},Q=e=>{(typeof c.trace>"u"?!c.wasm.trace:!c.trace)||G("END",e)}})),ee=L((()=>{R(),_(),$(),T=class e{constructor(e){this.handler=e}async run(e,A,t){D();let r={},n={};if("object"!=typeof e||null===e||e instanceof E||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if("object"==typeof A){if(null===A)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof E)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(0===A.length)throw new TypeError("'fetches' cannot be an empty array.");a=!1;for(let e of A){if("string"!=typeof e)throw new TypeError("'fetches' must be a string array or an object.");if(-1===this.outputNames.indexOf(e))throw new RangeError(`'fetches' contains invalid output name: ${e}.`);r[e]=null}if("object"==typeof t&&null!==t)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else{let e=!1,s=Object.getOwnPropertyNames(A);for(let t of this.outputNames)if(-1!==s.indexOf(t)){let n=A[t];(null===n||n instanceof E)&&(e=!0,a=!1,r[t]=n)}if(e){if("object"==typeof t&&null!==t)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else n=A}}else if(typeof A<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let A of this.inputNames)if(typeof e[A]>"u")throw new Error(`input '${A}' is missing in 'feeds'.`);if(a)for(let e of this.outputNames)r[e]=null;let s=await this.handler.run(e,r,n),i={};for(let e in s)if(Object.hasOwnProperty.call(s,e)){let A=s[e];i[e]=A instanceof E?A:new E(A.type,A.data,A.dims)}return Q(),i}async release(){return this.handler.dispose()}static async create(A,t,r,n){D();let a,s={};if("string"==typeof A){if(a=A,"object"==typeof t&&null!==t)s=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(A instanceof Uint8Array){if(a=A,"object"==typeof t&&null!==t)s=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else{if(!(A instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&A instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{let e=A,i=0,o=A.byteLength;if("object"==typeof t&&null!==t)s=t;else if("number"==typeof t){if(i=t,!Number.isSafeInteger(i))throw new RangeError("'byteOffset' must be an integer.");if(i<0||i>=e.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${e.byteLength}).`);if(o=A.byteLength-i,"number"==typeof r){if(o=r,!Number.isSafeInteger(o))throw new RangeError("'byteLength' must be an integer.");if(o<=0||i+o>e.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${e.byteLength-i}].`);if("object"==typeof n&&null!==n)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof r<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(e,i,o)}}let[o,l]=await i(s),c=await o.createInferenceSessionHandler(a,l);return Q(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}})),Ae=L((()=>{ee(),P=T})),te=L((()=>{})),re=L((()=>{})),ne=L((()=>{})),ae=L((()=>{})),se={};Y(se,{InferenceSession:()=>P,TRACE:()=>M,TRACE_FUNC_BEGIN:()=>D,TRACE_FUNC_END:()=>Q,Tensor:()=>E,env:()=>g,registerBackend:()=>a});var ie=L((()=>{W(),U(),Ae(),_(),te(),re(),$(),ne(),ae()})),oe=L((()=>{})),le={};Y(le,{default:()=>ue});var ce,ge,ue,de=L((()=>{$c(),$o(),_o(),ce="ort-wasm-proxy-worker",(ge=globalThis.self?.name===ce)&&(self.onmessage=e=>{let{type:A,in:t}=e.data;try{switch(A){case"init-wasm":Se(t.wasm).then((()=>{Ic(t).then((()=>{postMessage({type:A})}),(e=>{postMessage({type:A,err:e})}))}),(e=>{postMessage({type:A,err:e})}));break;case"init-ep":{let{epName:e,env:r}=t;wc(r,e).then((()=>{postMessage({type:A})}),(e=>{postMessage({type:A,err:e})}));break}case"copy-from":{let{buffer:e}=t,r=Bc(e);postMessage({type:A,out:r});break}case"create":{let{model:e,options:r}=t;vc(e,r).then((e=>{postMessage({type:A,out:e})}),(e=>{postMessage({type:A,err:e})}));break}case"release":yc(t),postMessage({type:A});break;case"run":{let{sessionId:e,inputIndices:r,inputs:n,outputIndices:a,options:s}=t;Mc(e,r,n,a,new Array(a.length).fill(null),s).then((e=>{e.some((e=>"cpu"!==e[3]))?postMessage({type:A,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:A,out:e},Dc([...n,...e]))}),(e=>{postMessage({type:A,err:e})}));break}case"end-profiling":Gc(t),postMessage({type:A})}}catch(e){postMessage({type:A,err:e})}}),ue=ge?null:e=>new Worker(e??be,{type:"module",name:ce})})),fe={};Y(fe,{default:()=>me});var pe,he,me,Ce,be,Ie,we,ke,xe,Be,ve,ye,Ee,Me,Ge,De,Qe,Te,Pe,ze,Fe,Se,Ne,Oe,Le,Ye,He,Re,We,Ve,je,Ue,Ke,Ze,Xe,qe,Je,_e,$e,eA,AA,tA,rA,nA,aA,sA,iA,oA,lA,cA,gA,uA,dA,fA,pA,hA,mA,CA,bA,IA,wA,kA,xA,BA,vA,yA,EA,MA,GA,DA,QA,TA,PA,zA,FA,SA,NA,OA,LA,YA,HA,RA,WA,VA,jA,UA,KA,ZA,XA,qA,JA,_A,$A,et,At,tt,rt,nt,at,st,it,ot,lt,ct,gt,ut,dt,ft,pt,ht,mt,Ct,bt,It,wt,kt,xt,Bt,vt,yt,Et,Mt,Gt,Dt,Qt,Tt,Pt,zt,Ft,St,Nt,Ot,Lt,Yt,Ht,Rt,Wt,Vt,jt,Ut,Kt,Zt,Xt,qt,Jt,_t,$t,er,Ar,tr,rr,nr,ar,sr,ir,or,lr,cr,gr,ur,dr,fr,pr,hr,mr,Cr,br,Ir,wr,kr,xr,Br,vr,yr,Er,Mr,Gr,Dr,Qr,Tr,Pr,zr,Fr,Sr,Nr,Or,Lr,Yr,Hr,Rr,Wr,Vr,jr,Ur,Kr,Zr,Xr,qr,Jr,_r,$r,en,An,tn,rn,nn,an,sn,on,ln,cn,gn,un,dn,fn,pn,hn,mn,Cn,bn,In,wn,kn,xn,Bn,vn,yn,En,Mn,Gn,Dn,Qn,Tn,Pn,zn,Fn,Sn,Nn,On,Ln,Yn,Hn,Rn,Wn,Vn,jn,Un,Kn,Zn,Xn,qn,Jn,_n,$n,ea,Aa,ta,ra,na,aa,sa,ia,oa,la,ca,ga,ua,da,fa,pa,ha,ma,Ca,ba,Ia,wa,ka,xa,Ba,va,ya,Ea,Ma,Ga,Da,Qa,Ta,Pa,za,Fa,Sa,Na,Oa,La,Ya,Ha,Ra,Wa,Va,ja,Ua,Ka,Za,Xa,qa,Ja,_a,$a,es,As,ts,rs,ns,as,ss,is,os,ls,cs,gs,us,ds,fs,ps,hs,ms,Cs,bs,Is,ws,ks,xs,Bs,vs,ys,Es,Ms,Gs,Ds,Qs,Ts,Ps,zs,Fs,Ss,Ns,Os,Ls,Ys,Hs,Rs,Ws,Vs,js,Us,Ks,Zs,Xs,qs,Js,_s,$s,ei,Ai,ti,ri,ni,ai,si,ii,oi,li,ci,gi,ui,di,fi,pi,hi,mi,Ci,bi,Ii,wi,ki,xi,Bi,vi,yi,Ei,Mi,Gi,Di,Qi,Ti,Pi,zi,Fi,Si,Ni,Oi,Li,Yi,Hi,Ri,Wi,Vi,ji,Ui,Ki,Zi,Xi,qi,Ji,_i,$i,eo,Ao,to,ro,no,ao,so,io,oo,lo,co,go,uo,fo,po,ho,mo,Co,bo,Io,wo,ko,xo,Bo,vo,yo,Eo,Mo,Go,Do,Qo,To,Po,zo,Fo,So,No,Oo,Lo,Yo,Ho,Ro,Wo,Vo,jo,Uo,Ko,Zo,Xo,qo,Jo=L((()=>{pe=import.meta.url,he=async function(e={}){function A(){return Q.buffer!=z.buffer&&j(),z}function r(){return Q.buffer!=z.buffer&&j(),F}function n(){return Q.buffer!=z.buffer&&j(),S}function a(){return Q.buffer!=z.buffer&&j(),N}function s(){return Q.buffer!=z.buffer&&j(),O}function i(){return Q.buffer!=z.buffer&&j(),L}function o(){return Q.buffer!=z.buffer&&j(),Y}function l(){return Q.buffer!=z.buffer&&j(),W}var c,g,u=Object.assign({},e),d=new Promise(((e,A)=>{c=e,g=A})),f="object"==typeof window,p="function"==typeof importScripts,h=p&&"em-pthread"==self.name;u.mountExternalData=(e,A)=>{e.startsWith("./")&&(e=e.substring(2)),(u.Fb||(u.Fb=new Map)).set(e,A)},u.unmountExternalData=()=>{delete u.Fb};var m=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let C=()=>{let e=(e,A,t)=>(...r)=>{let n=UA,a=A?.();r=e(...r);let s=A?.();return a!==s&&(e=s,t(a),A=t=null),UA!=n?new Promise(((e,A)=>{_A={resolve:e,reject:A}})):r},A=e=>async(...A)=>{try{if(u.Gb)throw Error("Session already started");let t=u.Gb={hc:A[0],errors:[]},r=await e(...A);if(u.Gb!==t)throw Error("Session mismatch");u.Hb?.flush();let n=t.errors;if(0<n.length){let e=await Promise.all(n);if(e=e.filter((e=>e)),0<e.length)throw Error(e.join("\n"))}return r}finally{u.Gb=null}};u._OrtCreateSession=e(u._OrtCreateSession,(()=>u._OrtCreateSession),(e=>u._OrtCreateSession=e)),u._OrtRun=A(e(u._OrtRun,(()=>u._OrtRun),(e=>u._OrtRun=e))),u._OrtRunWithBinding=A(e(u._OrtRunWithBinding,(()=>u._OrtRunWithBinding),(e=>u._OrtRunWithBinding=e))),u._OrtBindInput=e(u._OrtBindInput,(()=>u._OrtBindInput),(e=>u._OrtBindInput=e)),C=void 0};u.jsepInit=(e,A)=>{if(C?.(),"webgpu"===e){[u.Hb,u.Vb,u.Zb,u.Ob,u.Yb,u.kb,u.$b,u.cc,u.Wb,u.Xb,u.ac]=A;let e=u.Hb;u.jsepRegisterBuffer=(A,t,r,n)=>e.registerBuffer(A,t,r,n),u.jsepGetBuffer=A=>e.getBuffer(A),u.jsepCreateDownloader=(A,t,r)=>e.createDownloader(A,t,r),u.jsepOnCreateSession=A=>{e.onCreateSession(A)},u.jsepOnReleaseSession=A=>{e.onReleaseSession(A)},u.jsepOnRunStart=A=>e.onRunStart(A),u.dc=(A,t)=>{e.upload(A,t)}}else if("webnn"===e){[u.Hb,u.bc,u.Pb,u.jsepEnsureTensor,u.ec,u.jsepDownloadTensor]=A,u.jsepReleaseTensorId=u.Pb;let e=u.Hb;u.jsepOnRunStart=A=>e.onRunStart(A),u.jsepRegisterMLContext=(A,t)=>{e.registerMLContext(A,t)},u.jsepOnReleaseSession=A=>{e.onReleaseSession(A)},u.jsepCreateMLTensorDownloader=(A,t)=>e.createMLTensorDownloader(A,t),u.jsepRegisterMLTensor=(A,t,r)=>e.registerMLTensor(A,t,r),u.jsepCreateMLContext=A=>e.createMLContext(A),u.jsepRegisterMLConstant=(A,t,r,n,a)=>e.registerMLConstant(A,t,r,n,a,u.Fb)}};var b,I,w=Object.assign({},u),k=(e,A)=>{throw A},x="";(f||p)&&(p?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),pe&&(x=pe),x=x.startsWith("blob:")?"":x.substr(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),p&&(I=e=>{var A=new XMLHttpRequest;return A.open("GET",e,!1),A.responseType="arraybuffer",A.send(null),new Uint8Array(A.response)}),b=(e,A,t)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?A(r.response):t()},r.onerror=t,r.send(null)});var B,v=console.log.bind(console),y=console.error.bind(console),E=v,M=y;if(Object.assign(u,w),w=null,h){let e=function(A){try{var t=A.data,r=t.cmd;if("load"===r){let A=[];self.onmessage=e=>A.push(e),self.startWorker=()=>{postMessage({cmd:"loaded"});for(let t of A)e(t);self.onmessage=e};for(let e of t.handlers)u[e]&&!u[e].proxy||(u[e]=(...A)=>{postMessage({Nb:"callHandler",pc:e,args:A})},"print"==e&&(E=u[e]),"printErr"==e&&(M=u[e]));Q=t.wasmMemory,j(),G(t.wasmModule)}else if("run"===r){wr(t.pthread_ptr,0,0,1,0,0),PA(t.pthread_ptr),ye(),ke(),D||(hr(),D=!0);try{Ee(t.start_routine,t.arg)}catch(e){if("unwind"!=e)throw e}}else"cancel"===r?Cr()&&vr(-1):"setimmediate"!==t.target&&("checkMailbox"===r?D&&zA():r&&(M(`worker: received unknown command ${r}`),M(t)))}catch(e){throw kr(),e}};var G,D=!1;M=function(...e){e=e.join(" "),console.error(e)},self.alert=function(...e){postMessage({Nb:"alert",text:e.join(" "),rc:Cr()})},u.instantiateWasm=(e,A)=>new Promise((e=>{G=t=>{t=new WebAssembly.Instance(t,ne()),A(t),e()}})),self.onunhandledrejection=e=>{throw e.reason||e},self.onmessage=e}u.wasmBinary&&(B=u.wasmBinary);var Q,T,P,z,F,S,N,O,L,Y,H,R,W,V=!1;function j(){var e=Q.buffer;u.HEAP8=z=new Int8Array(e),u.HEAP16=S=new Int16Array(e),u.HEAPU8=F=new Uint8Array(e),u.HEAPU16=N=new Uint16Array(e),u.HEAP32=O=new Int32Array(e),u.HEAPU32=L=new Uint32Array(e),u.HEAPF32=Y=new Float32Array(e),u.HEAPF64=W=new Float64Array(e),u.HEAP64=H=new BigInt64Array(e),u.HEAPU64=R=new BigUint64Array(e)}if(!h){if(!((Q=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0})).buffer instanceof m))throw M("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),Error("bad memory");j()}var U=[],K=[],Z=[],X=0,q=null;function J(){if(0==--X&&q){var e=q;q=null,e()}}function _(e){throw M(e="Aborted("+e+")"),V=!0,P=1,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),g(e),e}var $,ee=e=>e.startsWith("data:application/octet-stream;base64,"),Ae=e=>e.startsWith("file://");function te(e){if(e==$&&B)return new Uint8Array(B);if(I)return I(e);throw"both async and sync fetching of the wasm failed"}function re(e,A,t){return function(e){if(!B&&(f||p)){if("function"==typeof fetch&&!Ae(e))return fetch(e,{credentials:"same-origin"}).then((A=>{if(!A.ok)throw`failed to load wasm binary file at '${e}'`;return A.arrayBuffer()})).catch((()=>te(e)));if(b)return new Promise(((A,t)=>{b(e,(e=>A(new Uint8Array(e))),t)}))}return Promise.resolve().then((()=>te(e)))}(e).then((e=>WebAssembly.instantiate(e,A))).then(t,(e=>{M(`failed to asynchronously prepare wasm: ${e}`),_(e)}))}function ne(){return{a:{O:ie,Aa:se,b:Ge,aa:Qe,B:Fe,qa:Se,Y:Ye,_:He,ra:Re,oa:We,ha:Ve,na:je,L:Ue,Z:Ke,W:Ze,pa:Xe,X:qe,va:$e,F:aA,Q:iA,P:pA,E:mA,u:CA,q:bA,G:IA,A:MA,R:GA,ua:DA,ka:QA,U:FA,ba:NA,H:OA,ja:PA,ta:LA,t:RA,Ba:WA,x:At,o:rt,m:st,c:cA,n:ot,k:ut,w:dt,p:ft,f:pt,s:ht,l:mt,e:Ct,j:bt,i:It,g:wt,d:kt,ea:xt,fa:Et,ga:Mt,ca:Gt,da:Dt,T:Qt,h:zt,D:Ft,I:St,M:Nt,y:Ot,sa:Yt,V:Ht,v:Lt,z:Rt,N:Wt,S:Vt,za:Zt,ya:Xt,la:$t,ma:er,$:he,C:Ar,K:tr,ia:rr,J:ar,a:Q,xa:de,wa:lr,r:cr}}}var ae={916868:(e,A,t,n,a)=>{if(void 0===u||!u.Fb)return 1;if((e=ze(Number(e>>>0))).startsWith("./")&&(e=e.substring(2)),!(e=u.Fb.get(e)))return 2;if(A=Number(A>>>0),t=Number(t>>>0),n=Number(n>>>0),A+t>e.byteLength)return 3;try{let s=e.subarray(A,A+t);switch(a){case 0:r().set(s,n>>>0);break;case 1:u.dc(n,s);break;default:return 4}return 0}catch{return 4}},917583:(e,A,t)=>{u.ec(e,r().subarray(A>>>0,A+t>>>0))},917646:()=>u.bc(),917687:e=>{u.Pb(e)},917723:()=>{u.Wb()},917754:()=>{u.Xb()},917783:()=>{u.ac()},917808:e=>u.Vb(e),917841:e=>u.Zb(e),917873:(e,A,t)=>{u.Ob(Number(e),Number(A),Number(t),!0)},917936:(e,A,t)=>{u.Ob(Number(e),Number(A),Number(t))},917993:()=>typeof wasmOffsetConverter<"u",918050:e=>{u.kb("Abs",e,void 0)},918101:e=>{u.kb("Neg",e,void 0)},918152:e=>{u.kb("Floor",e,void 0)},918205:e=>{u.kb("Ceil",e,void 0)},918257:e=>{u.kb("Reciprocal",e,void 0)},918315:e=>{u.kb("Sqrt",e,void 0)},918367:e=>{u.kb("Exp",e,void 0)},918418:e=>{u.kb("Erf",e,void 0)},918469:e=>{u.kb("Sigmoid",e,void 0)},918524:(e,A,t)=>{u.kb("HardSigmoid",e,{alpha:A,beta:t})},918603:e=>{u.kb("Log",e,void 0)},918654:e=>{u.kb("Sin",e,void 0)},918705:e=>{u.kb("Cos",e,void 0)},918756:e=>{u.kb("Tan",e,void 0)},918807:e=>{u.kb("Asin",e,void 0)},918859:e=>{u.kb("Acos",e,void 0)},918911:e=>{u.kb("Atan",e,void 0)},918963:e=>{u.kb("Sinh",e,void 0)},919015:e=>{u.kb("Cosh",e,void 0)},919067:e=>{u.kb("Asinh",e,void 0)},919120:e=>{u.kb("Acosh",e,void 0)},919173:e=>{u.kb("Atanh",e,void 0)},919226:e=>{u.kb("Tanh",e,void 0)},919278:e=>{u.kb("Not",e,void 0)},919329:(e,A,t)=>{u.kb("Clip",e,{min:A,max:t})},919398:e=>{u.kb("Clip",e,void 0)},919450:(e,A)=>{u.kb("Elu",e,{alpha:A})},919508:e=>{u.kb("Gelu",e,void 0)},919560:e=>{u.kb("Relu",e,void 0)},919612:(e,A)=>{u.kb("LeakyRelu",e,{alpha:A})},919676:(e,A)=>{u.kb("ThresholdedRelu",e,{alpha:A})},919746:(e,A)=>{u.kb("Cast",e,{to:A})},919804:e=>{u.kb("Add",e,void 0)},919855:e=>{u.kb("Sub",e,void 0)},919906:e=>{u.kb("Mul",e,void 0)},919957:e=>{u.kb("Div",e,void 0)},920008:e=>{u.kb("Pow",e,void 0)},920059:e=>{u.kb("Equal",e,void 0)},920112:e=>{u.kb("Greater",e,void 0)},920167:e=>{u.kb("GreaterOrEqual",e,void 0)},920229:e=>{u.kb("Less",e,void 0)},920281:e=>{u.kb("LessOrEqual",e,void 0)},920340:(e,A,t,r,n)=>{u.kb("ReduceMean",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},920515:(e,A,t,r,n)=>{u.kb("ReduceMax",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},920689:(e,A,t,r,n)=>{u.kb("ReduceMin",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},920863:(e,A,t,r,n)=>{u.kb("ReduceProd",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921038:(e,A,t,r,n)=>{u.kb("ReduceSum",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921212:(e,A,t,r,n)=>{u.kb("ReduceL1",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921385:(e,A,t,r,n)=>{u.kb("ReduceL2",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921558:(e,A,t,r,n)=>{u.kb("ReduceLogSum",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921735:(e,A,t,r,n)=>{u.kb("ReduceSumSquare",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},921915:(e,A,t,r,n)=>{u.kb("ReduceLogSumExp",e,{keepDims:!!A,noopWithEmptyAxes:!!t,axes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},922095:e=>{u.kb("Where",e,void 0)},922148:(e,A,t)=>{u.kb("Transpose",e,{perm:A?Array.from(s().subarray(Number(A)>>>0,Number(t)>>>0)):[]})},922272:(e,A,t,r)=>{u.kb("DepthToSpace",e,{blocksize:A,mode:ze(t),format:r?"NHWC":"NCHW"})},922405:(e,A,t,r)=>{u.kb("DepthToSpace",e,{blocksize:A,mode:ze(t),format:r?"NHWC":"NCHW"})},922538:(e,t,r,n,a,i,o,l,c,g,d,f,p,h,m)=>{u.kb("ConvTranspose",e,{format:c?"NHWC":"NCHW",autoPad:t,dilations:[r],group:n,kernelShape:[a],pads:[i,o],strides:[l],wIsConst:()=>!!A()[g>>>0],outputPadding:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[],outputShape:p?Array.from(s().subarray(Number(p)>>>0,Number(h)>>>0)):[],activation:ze(m)})},922971:(e,t,r,n,a,i,o,l,c,g,d,f,p,h)=>{u.kb("ConvTranspose",e,{format:l?"NHWC":"NCHW",autoPad:t,dilations:Array.from(s().subarray(Number(r)>>>0,2+(Number(r)>>>0)>>>0)),group:n,kernelShape:Array.from(s().subarray(Number(a)>>>0,2+(Number(a)>>>0)>>>0)),pads:Array.from(s().subarray(Number(i)>>>0,4+(Number(i)>>>0)>>>0)),strides:Array.from(s().subarray(Number(o)>>>0,2+(Number(o)>>>0)>>>0)),wIsConst:()=>!!A()[c>>>0],outputPadding:g?Array.from(s().subarray(Number(g)>>>0,Number(d)>>>0)):[],outputShape:f?Array.from(s().subarray(Number(f)>>>0,Number(p)>>>0)):[],activation:ze(h)})},923632:(e,t,r,n,a,i,o,l,c,g,d,f,p,h,m)=>{u.kb("ConvTranspose",e,{format:c?"NHWC":"NCHW",autoPad:t,dilations:[r],group:n,kernelShape:[a],pads:[i,o],strides:[l],wIsConst:()=>!!A()[g>>>0],outputPadding:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[],outputShape:p?Array.from(s().subarray(Number(p)>>>0,Number(h)>>>0)):[],activation:ze(m)})},924065:(e,t,r,n,a,i,o,l,c,g,d,f,p,h)=>{u.kb("ConvTranspose",e,{format:l?"NHWC":"NCHW",autoPad:t,dilations:Array.from(s().subarray(Number(r)>>>0,2+(Number(r)>>>0)>>>0)),group:n,kernelShape:Array.from(s().subarray(Number(a)>>>0,2+(Number(a)>>>0)>>>0)),pads:Array.from(s().subarray(Number(i)>>>0,4+(Number(i)>>>0)>>>0)),strides:Array.from(s().subarray(Number(o)>>>0,2+(Number(o)>>>0)>>>0)),wIsConst:()=>!!A()[c>>>0],outputPadding:g?Array.from(s().subarray(Number(g)>>>0,Number(d)>>>0)):[],outputShape:f?Array.from(s().subarray(Number(f)>>>0,Number(p)>>>0)):[],activation:ze(h)})},924726:(e,A)=>{u.kb("GlobalAveragePool",e,{format:A?"NHWC":"NCHW"})},924817:(e,A,t,r,n,a,i,o,l,c,g,d,f,p)=>{u.kb("AveragePool",e,{format:p?"NHWC":"NCHW",auto_pad:A,ceil_mode:t,count_include_pad:r,storage_order:n,dilations:a?Array.from(s().subarray(Number(a)>>>0,Number(i)>>>0)):[],kernel_shape:o?Array.from(s().subarray(Number(o)>>>0,Number(l)>>>0)):[],pads:c?Array.from(s().subarray(Number(c)>>>0,Number(g)>>>0)):[],strides:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[]})},925296:(e,A)=>{u.kb("GlobalAveragePool",e,{format:A?"NHWC":"NCHW"})},925387:(e,A,t,r,n,a,i,o,l,c,g,d,f,p)=>{u.kb("AveragePool",e,{format:p?"NHWC":"NCHW",auto_pad:A,ceil_mode:t,count_include_pad:r,storage_order:n,dilations:a?Array.from(s().subarray(Number(a)>>>0,Number(i)>>>0)):[],kernel_shape:o?Array.from(s().subarray(Number(o)>>>0,Number(l)>>>0)):[],pads:c?Array.from(s().subarray(Number(c)>>>0,Number(g)>>>0)):[],strides:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[]})},925866:(e,A)=>{u.kb("GlobalMaxPool",e,{format:A?"NHWC":"NCHW"})},925953:(e,A,t,r,n,a,i,o,l,c,g,d,f,p)=>{u.kb("MaxPool",e,{format:p?"NHWC":"NCHW",auto_pad:A,ceil_mode:t,count_include_pad:r,storage_order:n,dilations:a?Array.from(s().subarray(Number(a)>>>0,Number(i)>>>0)):[],kernel_shape:o?Array.from(s().subarray(Number(o)>>>0,Number(l)>>>0)):[],pads:c?Array.from(s().subarray(Number(c)>>>0,Number(g)>>>0)):[],strides:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[]})},926428:(e,A)=>{u.kb("GlobalMaxPool",e,{format:A?"NHWC":"NCHW"})},926515:(e,A,t,r,n,a,i,o,l,c,g,d,f,p)=>{u.kb("MaxPool",e,{format:p?"NHWC":"NCHW",auto_pad:A,ceil_mode:t,count_include_pad:r,storage_order:n,dilations:a?Array.from(s().subarray(Number(a)>>>0,Number(i)>>>0)):[],kernel_shape:o?Array.from(s().subarray(Number(o)>>>0,Number(l)>>>0)):[],pads:c?Array.from(s().subarray(Number(c)>>>0,Number(g)>>>0)):[],strides:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[]})},926990:(e,A,t,r,n)=>{u.kb("Gemm",e,{alpha:A,beta:t,transA:r,transB:n})},927094:e=>{u.kb("MatMul",e,void 0)},927148:(e,A,t,r)=>{u.kb("ArgMax",e,{keepDims:!!A,selectLastIndex:!!t,axis:r})},927256:(e,A,t,r)=>{u.kb("ArgMin",e,{keepDims:!!A,selectLastIndex:!!t,axis:r})},927364:(e,A)=>{u.kb("Softmax",e,{axis:A})},927427:(e,A)=>{u.kb("Concat",e,{axis:A})},927487:(e,A,t,r,n)=>{u.kb("Split",e,{axis:A,numOutputs:t,splitSizes:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},927643:e=>{u.kb("Expand",e,void 0)},927697:(e,A)=>{u.kb("Gather",e,{axis:Number(A)})},927768:(e,A)=>{u.kb("GatherElements",e,{axis:Number(A)})},927847:(e,A)=>{u.kb("GatherND",e,{batch_dims:Number(A)})},927926:(e,A,t,r,n,a,i,o,l,c,g)=>{u.kb("Resize",e,{antialias:A,axes:t?Array.from(s().subarray(Number(t)>>>0,Number(r)>>>0)):[],coordinateTransformMode:ze(n),cubicCoeffA:a,excludeOutside:i,extrapolationValue:o,keepAspectRatioPolicy:ze(l),mode:ze(c),nearestMode:ze(g)})},928288:(e,A,t,r,n,a,i)=>{u.kb("Slice",e,{starts:A?Array.from(s().subarray(Number(A)>>>0,Number(t)>>>0)):[],ends:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[],axes:a?Array.from(s().subarray(Number(a)>>>0,Number(i)>>>0)):[]})},928552:e=>{u.kb("Tile",e,void 0)},928604:(e,A,t)=>{u.kb("InstanceNormalization",e,{epsilon:A,format:t?"NHWC":"NCHW"})},928718:(e,A,t)=>{u.kb("InstanceNormalization",e,{epsilon:A,format:t?"NHWC":"NCHW"})},928832:e=>{u.kb("Range",e,void 0)},928885:(e,A)=>{u.kb("Einsum",e,{equation:ze(A)})},928966:(e,A,t,r,n)=>{u.kb("Pad",e,{mode:A,value:t,pads:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[]})},929109:(e,A,t,r,n,a)=>{u.kb("BatchNormalization",e,{epsilon:A,momentum:t,spatial:!!n,trainingMode:!!r,format:a?"NHWC":"NCHW"})},929278:(e,A,t,r,n,a)=>{u.kb("BatchNormalization",e,{epsilon:A,momentum:t,spatial:!!n,trainingMode:!!r,format:a?"NHWC":"NCHW"})},929447:(e,A,t)=>{u.kb("CumSum",e,{exclusive:Number(A),reverse:Number(t)})},929544:(e,A,t)=>{u.kb("DequantizeLinear",e,{axis:A,blockSize:t})},929634:(e,A,t,r,n)=>{u.kb("GridSample",e,{align_corners:A,mode:ze(t),padding_mode:ze(r),format:n?"NHWC":"NCHW"})},929804:(e,A,t,r,n)=>{u.kb("GridSample",e,{align_corners:A,mode:ze(t),padding_mode:ze(r),format:n?"NHWC":"NCHW"})},929974:(e,A,t,r,n,a,i,o,l)=>{u.kb("Attention",e,{numHeads:A,isUnidirectional:t,maskFilterValue:r,scale:n,doRotary:a,qkvHiddenSizes:i?Array.from(s().subarray(Number(o)>>>0,Number(o)+i>>>0)):[],pastPresentShareBuffer:!!l})},930246:e=>{u.kb("BiasAdd",e,void 0)},930301:e=>{u.kb("BiasSplitGelu",e,void 0)},930362:e=>{u.kb("FastGelu",e,void 0)},930418:(e,t,r,n,a,i,l,c,g,d,f,p,h,m,C,b)=>{u.kb("Conv",e,{format:p?"NHWC":"NCHW",auto_pad:t,dilations:r?Array.from(s().subarray(Number(r)>>>0,Number(n)>>>0)):[],group:a,kernel_shape:i?Array.from(s().subarray(Number(i)>>>0,Number(l)>>>0)):[],pads:c?Array.from(s().subarray(Number(c)>>>0,Number(g)>>>0)):[],strides:d?Array.from(s().subarray(Number(d)>>>0,Number(f)>>>0)):[],w_is_const:()=>!!A()[Number(h)>>>0],activation:ze(m),activation_params:C?Array.from(o().subarray(Number(C)>>>0,Number(b)>>>0)):[]})},931002:e=>{u.kb("Gelu",e,void 0)},931054:(e,A,t,r,n,a,s,i,o)=>{u.kb("GroupQueryAttention",e,{numHeads:A,kvNumHeads:t,scale:r,softcap:n,doRotary:a,rotaryInterleaved:s,smoothSoftmax:i,localWindowSize:o})},931271:(e,A,t,r)=>{u.kb("LayerNormalization",e,{axis:A,epsilon:t,simplified:!!r})},931382:(e,A,t,r)=>{u.kb("LayerNormalization",e,{axis:A,epsilon:t,simplified:!!r})},931493:(e,A,t,r,n,a)=>{u.kb("MatMulNBits",e,{k:A,n:t,accuracyLevel:r,bits:n,blockSize:a})},931620:(e,A,t,r,n,a)=>{u.kb("MultiHeadAttention",e,{numHeads:A,isUnidirectional:t,maskFilterValue:r,scale:n,doRotary:a})},931779:(e,A)=>{u.kb("QuickGelu",e,{alpha:A})},931843:(e,A,t,r,n)=>{u.kb("RotaryEmbedding",e,{interleaved:!!A,numHeads:t,rotaryEmbeddingDim:r,scale:n})},931982:(e,A,t)=>{u.kb("SkipLayerNormalization",e,{epsilon:A,simplified:!!t})},932084:(e,A,t)=>{u.kb("SkipLayerNormalization",e,{epsilon:A,simplified:!!t})},932186:(e,A,t,r)=>{u.kb("GatherBlockQuantized",e,{gatherAxis:A,quantizeAxis:t,blockSize:r})},932307:e=>{u.$b(e)},932341:(e,A)=>u.cc(Number(e),Number(A),u.Gb.hc,u.Gb.errors)};function se(e,A,t){return et((async()=>{await u.Yb(Number(e),Number(A),Number(t))}))}function ie(){return typeof wasmOffsetConverter<"u"}function oe(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var le=e=>{e.terminate(),e.onmessage=()=>{}},ce=e=>{0==me.length&&(Be(),xe(me[0]));var A=me.pop();if(!A)return 6;Ce.push(A),Ie[e.Bb]=A,A.Bb=e.Bb;var t={cmd:"run",start_routine:e.ic,arg:e.Rb,pthread_ptr:e.Bb};return A.postMessage(t,e.nc),0},ge=0,ue=(e,A,...t)=>{for(var r=2*t.length,n=Dr(),a=Gr(8*r),s=a>>>3,i=0;i<t.length;i++){var o=t[i];"bigint"==typeof o?(H[s+2*i]=1n,H[s+2*i+1]=o):(H[s+2*i]=0n,l()[s+2*i+1>>>0]=o)}return e=xr(e,0,r,a,A),Mr(n),e};function de(e){if(h)return ue(0,1,e);if(P=e,!(0<ge)){for(var A of Ce)le(A);for(A of me)le(A);me=[],Ce=[],Ie=[],V=!0}k(0,new oe(e))}function fe(e){if(h)return ue(1,0,e);he(e)}var he=e=>{if(P=e,h)throw fe(e),"unwind";de(e)},me=[],Ce=[],be=[],Ie={},we=e=>{var A=e.Bb;delete Ie[A],me.push(e),Ce.splice(Ce.indexOf(e),1),e.Bb=0,Br(A)};function ke(){be.forEach((e=>e()))}var xe=e=>new Promise((A=>{e.onmessage=t=>{var r=(t=t.data).cmd;if(t.targetThread&&t.targetThread!=Cr()){var n=Ie[t.targetThread];n?n.postMessage(t,t.transferList):M(`Internal error! Worker sent a message "${r}" to target pthread ${t.targetThread}, but that thread no longer exists!`)}else"checkMailbox"===r?zA():"spawnThread"===r?ce(t):"cleanupThread"===r?we(Ie[t.thread]):"killThread"===r?(t=t.thread,r=Ie[t],delete Ie[t],le(r),Br(t),Ce.splice(Ce.indexOf(r),1),r.Bb=0):"cancelThread"===r?Ie[t.thread].postMessage({cmd:"cancel"}):"loaded"===r?(e.loaded=!0,A(e)):"alert"===r?alert(`Thread ${t.threadId}: ${t.text}`):"setimmediate"===t.target?e.postMessage(t):"callHandler"===r?u[t.handler](...t.args):r&&M(`worker sent an unknown command ${r}`)},e.onerror=e=>{throw M(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var t,r=[];for(t of[])u.hasOwnProperty(t)&&r.push(t);e.postMessage({cmd:"load",handlers:r,wasmMemory:Q,wasmModule:T})}));function Be(){var e=new Worker(import.meta.url.startsWith("file:")?new URL(t("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb"),t.b):new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});me.push(e)}var ve=e=>{for(;0<e.length;)e.shift()(u)},ye=()=>{var e=Cr(),A=i()[e+52>>>2>>>0];e=i()[e+56>>>2>>>0],Er(A,A-e),Mr(A)},Ee=(e,A)=>{ge=0,e=Qr(e,A),0<ge?P=e:vr(e)};class Me{constructor(e){this.Kb=e-24}}function Ge(e,A,t){var r=new Me(e>>>=0);throw A>>>=0,t>>>=0,i()[r.Kb+16>>>2>>>0]=0,i()[r.Kb+4>>>2>>>0]=A,i()[r.Kb+8>>>2>>>0]=t,e}function De(e,A,t,r){return h?ue(2,1,e,A,t,r):Qe(e,A,t,r)}function Qe(e,A,t,r){if(e>>>=0,A>>>=0,t>>>=0,r>>>=0,void 0===m)return M("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var n=[];return h&&0===n.length?De(e,A,t,r):(e={ic:t,Bb:e,Rb:r,nc:n},h?(e.Nb="spawnThread",postMessage(e,n),0):ce(e))}var Te=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Pe=(e,A,t)=>{var r=(A>>>=0)+t;for(t=A;e[t]&&!(t>=r);)++t;if(16<t-A&&e.buffer&&Te)return Te.decode(e.buffer instanceof m?e.slice(A,t):e.subarray(A,t));for(r="";A<t;){var n=e[A++];if(128&n){var a=63&e[A++];if(192==(224&n))r+=String.fromCharCode((31&n)<<6|a);else{var s=63&e[A++];65536>(n=224==(240&n)?(15&n)<<12|a<<6|s:(7&n)<<18|a<<12|s<<6|63&e[A++])?r+=String.fromCharCode(n):(n-=65536,r+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else r+=String.fromCharCode(n)}return r},ze=(e,A)=>(e>>>=0)?Pe(r(),e,A):"";function Fe(e,A,t){return h?ue(3,1,e,A,t):0}function Se(e,A){if(h)return ue(4,1,e,A)}var Ne=e=>{for(var A=0,t=0;t<e.length;++t){var r=e.charCodeAt(t);127>=r?A++:2047>=r?A+=2:55296<=r&&57343>=r?(A+=4,++t):A+=3}return A},Oe=(e,A,t,r)=>{if(!(0<r))return 0;var n=t>>>=0;r=t+r-1;for(var a=0;a<e.length;++a){var s=e.charCodeAt(a);if(55296<=s&&57343>=s&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),127>=s){if(t>=r)break;A[t++>>>0]=s}else{if(2047>=s){if(t+1>=r)break;A[t++>>>0]=192|s>>6}else{if(65535>=s){if(t+2>=r)break;A[t++>>>0]=224|s>>12}else{if(t+3>=r)break;A[t++>>>0]=240|s>>18,A[t++>>>0]=128|s>>12&63}A[t++>>>0]=128|s>>6&63}A[t++>>>0]=128|63&s}}return A[t>>>0]=0,t-n},Le=(e,A,t)=>Oe(e,r(),A,t);function Ye(e,A){if(h)return ue(5,1,e,A)}function He(e,A,t){if(h)return ue(6,1,e,A,t)}function Re(e,A,t){return h?ue(7,1,e,A,t):0}function We(e,A){if(h)return ue(8,1,e,A)}function Ve(e,A,t){if(h)return ue(9,1,e,A,t)}function je(e,A,t,r){if(h)return ue(10,1,e,A,t,r)}function Ue(e,A,t,r){if(h)return ue(11,1,e,A,t,r)}function Ke(e,A,t,r){if(h)return ue(12,1,e,A,t,r)}function Ze(e){if(h)return ue(13,1,e)}function Xe(e,A){if(h)return ue(14,1,e,A)}function qe(e,A,t){if(h)return ue(15,1,e,A,t)}var Je,_e,$e=()=>{_("")},eA=e=>{for(var A="";r()[e>>>0];)A+=Je[r()[e++>>>0]];return A},AA={},tA={};function rA(e,A,t={}){if(!("argPackAdvance"in A))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,A,t={}){var r=A.name;if(!e)throw new _e(`type "${r}" must have a positive integer typeid pointer`);if(tA.hasOwnProperty(e)){if(t.Tb)return;throw new _e(`Cannot register type '${r}' twice`)}tA[e]=A,AA.hasOwnProperty(e)&&(A=AA[e],delete AA[e],A.forEach((e=>e())))}(e,A,t)}var nA=(e,t,o)=>{switch(t){case 1:return o?e=>A()[e>>>0]:e=>r()[e>>>0];case 2:return o?e=>n()[e>>>1>>>0]:e=>a()[e>>>1>>>0];case 4:return o?e=>s()[e>>>2>>>0]:e=>i()[e>>>2>>>0];case 8:return o?e=>H[e>>>3]:e=>R[e>>>3];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}};function aA(e,A,t){t>>>=0,rA(e>>>=0,{name:A=eA(A>>>0),fromWireType:e=>e,toWireType:function(e,A){if("bigint"!=typeof A&&"number"!=typeof A)throw A=null===A?"null":"object"==(e=typeof A)||"array"===e||"function"===e?A.toString():""+A,new TypeError(`Cannot convert "${A}" to ${this.name}`);return"number"==typeof A&&(A=BigInt(A)),A},argPackAdvance:sA,readValueFromPointer:nA(A,t,-1==A.indexOf("u")),Eb:null})}var sA=8;function iA(e,A,t,n){rA(e>>>=0,{name:A=eA(A>>>0),fromWireType:function(e){return!!e},toWireType:function(e,A){return A?t:n},argPackAdvance:sA,readValueFromPointer:function(e){return this.fromWireType(r()[e>>>0])},Eb:null})}var oA=[],lA=[];function cA(e){9<(e>>>=0)&&0==--lA[e+1]&&(lA[e]=void 0,oA.push(e))}var gA=e=>{if(!e)throw new _e("Cannot use deleted val. handle = "+e);return lA[e]},uA=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let A=oA.pop()||lA.length;return lA[A]=e,lA[A+1]=1,A}};function dA(e){return this.fromWireType(i()[e>>>2>>>0])}var fA={name:"emscripten::val",fromWireType:e=>{var A=gA(e);return cA(e),A},toWireType:(e,A)=>uA(A),argPackAdvance:sA,readValueFromPointer:dA,Eb:null};function pA(e){return rA(e>>>0,fA)}var hA=(e,A)=>{switch(A){case 4:return function(e){return this.fromWireType(o()[e>>>2>>>0])};case 8:return function(e){return this.fromWireType(l()[e>>>3>>>0])};default:throw new TypeError(`invalid float width (${A}): ${e}`)}};function mA(e,A,t){t>>>=0,rA(e>>>=0,{name:A=eA(A>>>0),fromWireType:e=>e,toWireType:(e,A)=>A,argPackAdvance:sA,readValueFromPointer:hA(A,t),Eb:null})}function CA(e,A,t,r,n){if(e>>>=0,t>>>=0,A=eA(A>>>0),-1===n&&(n=4294967295),n=e=>e,0===r){var a=32-8*t;n=e=>e<<a>>>a}var s=A.includes("unsigned")?function(e,A){return A>>>0}:function(e,A){return A};rA(e,{name:A,fromWireType:n,toWireType:s,argPackAdvance:sA,readValueFromPointer:nA(A,t,0!==r),Eb:null})}function bA(e,t,r){function n(e){var t=i()[e>>>2>>>0];return e=i()[e+4>>>2>>>0],new a(A().buffer,e,t)}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];rA(e>>>=0,{name:r=eA(r>>>0),fromWireType:n,argPackAdvance:sA,readValueFromPointer:n},{Tb:!0})}function IA(e,A){e>>>=0;var t="std::string"===(A=eA(A>>>0));rA(e,{name:A,fromWireType:function(e){var A=i()[e>>>2>>>0],n=e+4;if(t)for(var a=n,s=0;s<=A;++s){var o=n+s;if(s==A||0==r()[o>>>0]){if(a=ze(a,o-a),void 0===l)var l=a;else l+=String.fromCharCode(0),l+=a;a=o+1}}else{for(l=Array(A),s=0;s<A;++s)l[s]=String.fromCharCode(r()[n+s>>>0]);l=l.join("")}return br(e),l},toWireType:function(e,A){A instanceof ArrayBuffer&&(A=new Uint8Array(A));var n="string"==typeof A;if(!(n||A instanceof Uint8Array||A instanceof Uint8ClampedArray||A instanceof Int8Array))throw new _e("Cannot pass non-string to std::string");var a=t&&n?Ne(A):A.length,s=Ir(4+a+1),o=s+4;if(i()[s>>>2>>>0]=a,t&&n)Le(A,o,a+1);else if(n)for(n=0;n<a;++n){var l=A.charCodeAt(n);if(255<l)throw br(o),new _e("String has UTF-16 code units that do not fit in 8 bits");r()[o+n>>>0]=l}else for(n=0;n<a;++n)r()[o+n>>>0]=A[n];return null!==e&&e.push(br,s),s},argPackAdvance:sA,readValueFromPointer:dA,Eb(e){br(e)}})}var wA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,kA=(e,A)=>{for(var t=e>>1,s=t+A/2;!(t>=s)&&a()[t>>>0];)++t;if(32<(t<<=1)-e&&wA)return wA.decode(r().slice(e,t));for(t="",s=0;!(s>=A/2);++s){var i=n()[e+2*s>>>1>>>0];if(0==i)break;t+=String.fromCharCode(i)}return t},xA=(e,A,t)=>{if(t??=2147483647,2>t)return 0;var r=A;t=(t-=2)<2*e.length?t/2:e.length;for(var a=0;a<t;++a){var s=e.charCodeAt(a);n()[A>>>1>>>0]=s,A+=2}return n()[A>>>1>>>0]=0,A-r},BA=e=>2*e.length,vA=(e,A)=>{for(var t=0,r="";!(t>=A/4);){var n=s()[e+4*t>>>2>>>0];if(0==n)break;++t,65536<=n?(n-=65536,r+=String.fromCharCode(55296|n>>10,56320|1023&n)):r+=String.fromCharCode(n)}return r},yA=(e,A,t)=>{if(A>>>=0,t??=2147483647,4>t)return 0;var r=A;t=r+t-4;for(var n=0;n<e.length;++n){var a=e.charCodeAt(n);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),s()[A>>>2>>>0]=a,(A+=4)+4>t)break}return s()[A>>>2>>>0]=0,A-r},EA=e=>{for(var A=0,t=0;t<e.length;++t){var r=e.charCodeAt(t);55296<=r&&57343>=r&&++t,A+=4}return A};function MA(e,A,t){if(e>>>=0,A>>>=0,t=eA(t>>>=0),2===A)var r=kA,n=xA,s=BA,o=e=>a()[e>>>1>>>0];else 4===A&&(r=vA,n=yA,s=EA,o=e=>i()[e>>>2>>>0]);rA(e,{name:t,fromWireType:e=>{for(var t,n=i()[e>>>2>>>0],a=e+4,s=0;s<=n;++s){var l=e+4+s*A;s!=n&&0!=o(l)||(a=r(a,l-a),void 0===t?t=a:(t+=String.fromCharCode(0),t+=a),a=l+A)}return br(e),t},toWireType:(e,r)=>{if("string"!=typeof r)throw new _e(`Cannot pass non-string to C++ string type ${t}`);var a=s(r),o=Ir(4+a+A);return i()[o>>>2>>>0]=a/A,n(r,o+4,a+A),null!==e&&e.push(br,o),o},argPackAdvance:sA,readValueFromPointer:dA,Eb(e){br(e)}})}function GA(e,A){rA(e>>>=0,{Ub:!0,name:A=eA(A>>>0),argPackAdvance:0,fromWireType:()=>{},toWireType:()=>{}})}var DA=()=>1;function QA(e){wr(e>>>0,!p,1,!f,131072,!1),ke()}var TA=e=>{if(!V)try{if(e(),!(0<ge))try{h?vr(P):he(P)}catch(e){e instanceof oe||"unwind"==e||k(0,e)}}catch(e){e instanceof oe||"unwind"==e||k(0,e)}};function PA(e){e>>>=0,"function"==typeof Atomics.oc&&(Atomics.oc(s(),e>>>2,e).value.then(zA),e+=128,Atomics.store(s(),e>>>2,1))}var zA=()=>{var e=Cr();e&&(PA(e),TA(yr))};function FA(e,A){(e>>>=0)==A>>>0?setTimeout(zA):h?postMessage({targetThread:e,cmd:"checkMailbox"}):(e=Ie[e])&&e.postMessage({cmd:"checkMailbox"})}var SA=[];function NA(e,A,t,r,n){for(A>>>=0,r/=2,SA.length=r,t=n>>>0>>>3,n=0;n<r;n++)SA[n]=H[t+2*n]?H[t+2*n+1]:l()[t+2*n+1>>>0];return(A?ae[A]:dr[e])(...SA)}function OA(e){e>>>=0,h?postMessage({cmd:"cleanupThread",thread:e}):we(Ie[e])}function LA(e){}var YA=(e,A)=>{var t=tA[e];if(void 0===t)throw e=pr(e),t=eA(e),br(e),new _e(`${A} has unknown type ${t}`);return t},HA=(e,A,t)=>{var r=[];return e=e.toWireType(r,t),r.length&&(i()[A>>>2>>>0]=uA(r)),e};function RA(e,A,t){return A>>>=0,t>>>=0,e=gA(e>>>0),A=YA(A,"emval::as"),HA(A,t,e)}function WA(e,A){return A>>>=0,e=gA(e>>>0),(A=YA(A,"emval::as")).toWireType(null,e)}var VA=e=>{try{e()}catch(e){_(e)}},jA=0,UA=null,KA=0,ZA=[],XA={},qA={},JA=0,_A=null,$A=[];function et(e){return function(){if(!V){if(0===jA){var A=!1,t=!1;(A=>{e().then(A)})(((e=0)=>{if(!V&&(KA=e,A=!0,t)){jA=2,VA((()=>zr(UA))),typeof Browser<"u"&&Browser.Lb.Sb&&Browser.Lb.resume(),e=!1;try{var r=function(){var e=s()[UA+8>>>2>>>0];return e=fr[qA[e]],--ge,e()}()}catch(A){r=A,e=!0}var n=!1;if(!UA){var a=_A;a&&(_A=null,(e?a.reject:a.resolve)(r),n=!0)}if(e&&!n)throw r}})),t=!0,A||(jA=1,UA=function(){var e=Ir(65548),A=e+12;i()[e>>>2>>>0]=A,i()[e+4>>>2>>>0]=A+65536,A=ZA[0];var t=XA[A];return void 0===t&&(t=JA++,XA[A]=t,qA[t]=A),A=t,s()[e+8>>>2>>>0]=A,e}(),typeof Browser<"u"&&Browser.Lb.Sb&&Browser.Lb.pause(),VA((()=>Tr(UA))))}else 2===jA?(jA=0,VA(Fr),br(UA),UA=null,$A.forEach(TA)):_(`invalid state: ${jA}`);return KA}}()}function At(e){return e>>>=0,et((()=>(e=gA(e)).then(uA)))}var tt=[];function rt(e,A,t,r){return t>>>=0,r>>>=0,(e=tt[e>>>0])(null,A=gA(A>>>0),t,r)}var nt={},at=e=>{var A=nt[e];return void 0===A?eA(e):A};function st(e,A,t,r,n){return t>>>=0,r>>>=0,n>>>=0,(e=tt[e>>>0])(A=gA(A>>>0),A[t=at(t)],r,n)}var it=()=>"object"==typeof globalThis?globalThis:Function("return this")();function ot(e){return 0==(e>>>=0)?uA(it()):(e=at(e),uA(it()[e]))}var lt=e=>{var A=tt.length;return tt.push(e),A},ct=(e,A)=>{for(var t=Array(e),r=0;r<e;++r)t[r]=YA(i()[A+4*r>>>2>>>0],"parameter "+r);return t},gt=(e,A)=>Object.defineProperty(A,"name",{value:e});function ut(e,A,t){var r=(A=ct(e,A>>>0)).shift();e--;var n="return function (obj, func, destructorsRef, args) {\n",a=0,s=[];0===t&&s.push("obj");for(var i=["retType"],o=[r],l=0;l<e;++l)s.push("arg"+l),i.push("argType"+l),o.push(A[l]),n+=` var arg${l} = argType${l}.readValueFromPointer(args${a?"+"+a:""});\n`,a+=A[l].argPackAdvance;return n+=` var rv = ${1===t?"new func":"func.call"}(${s.join(", ")});\n`,r.Ub||(i.push("emval_returnValue"),o.push(HA),n+=" return emval_returnValue(retType, destructorsRef, rv);\n"),i.push(n+"};\n"),e=function(e){var A=Function;if(!(A instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof A} which is not a function`);var t=gt(A.name||"unknownFunctionName",(function(){}));return t.prototype=A.prototype,t=new t,(e=A.apply(t,e))instanceof Object?e:t}(i)(...o),t=`methodCaller<(${A.map((e=>e.name)).join(", ")}) => ${r.name}>`,lt(gt(t,e))}function dt(e){return e=at(e>>>0),uA(u[e])}function ft(e,A){return A>>>=0,e=gA(e>>>0),A=gA(A),uA(e[A])}function pt(e){9<(e>>>=0)&&(lA[e+1]+=1)}function ht(){return uA([])}function mt(e){e=gA(e>>>0);for(var A=Array(e.length),t=0;t<e.length;t++)A[t]=e[t];return uA(A)}function Ct(e){return uA(at(e>>>0))}function bt(){return uA({})}function It(e){for(var A=gA(e>>>=0);A.length;){var t=A.pop();A.pop()(t)}cA(e)}function wt(e,A,t){A>>>=0,t>>>=0,e=gA(e>>>0),A=gA(A),t=gA(t),e[A]=t}function kt(e,A){return A>>>=0,e=(e=YA(e>>>0,"_emval_take_value")).readValueFromPointer(A),uA(e)}function xt(e,A){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e),A>>>=0,e=new Date(1e3*e),s()[A>>>2>>>0]=e.getUTCSeconds(),s()[A+4>>>2>>>0]=e.getUTCMinutes(),s()[A+8>>>2>>>0]=e.getUTCHours(),s()[A+12>>>2>>>0]=e.getUTCDate(),s()[A+16>>>2>>>0]=e.getUTCMonth(),s()[A+20>>>2>>>0]=e.getUTCFullYear()-1900,s()[A+24>>>2>>>0]=e.getUTCDay(),e=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,s()[A+28>>>2>>>0]=e}var Bt=e=>e%4==0&&(e%100!=0||e%400==0),vt=[0,31,60,91,121,152,182,213,244,274,305,335],yt=[0,31,59,90,120,151,181,212,243,273,304,334];function Et(e,A){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e),A>>>=0,e=new Date(1e3*e),s()[A>>>2>>>0]=e.getSeconds(),s()[A+4>>>2>>>0]=e.getMinutes(),s()[A+8>>>2>>>0]=e.getHours(),s()[A+12>>>2>>>0]=e.getDate(),s()[A+16>>>2>>>0]=e.getMonth(),s()[A+20>>>2>>>0]=e.getFullYear()-1900,s()[A+24>>>2>>>0]=e.getDay();var t=(Bt(e.getFullYear())?vt:yt)[e.getMonth()]+e.getDate()-1|0;s()[A+28>>>2>>>0]=t,s()[A+36>>>2>>>0]=-60*e.getTimezoneOffset(),t=new Date(e.getFullYear(),6,1).getTimezoneOffset();var r=new Date(e.getFullYear(),0,1).getTimezoneOffset();e=0|(t!=r&&e.getTimezoneOffset()==Math.min(r,t)),s()[A+32>>>2>>>0]=e}function Mt(e){e>>>=0;var A=new Date(s()[e+20>>>2>>>0]+1900,s()[e+16>>>2>>>0],s()[e+12>>>2>>>0],s()[e+8>>>2>>>0],s()[e+4>>>2>>>0],s()[e>>>2>>>0],0),t=s()[e+32>>>2>>>0],r=A.getTimezoneOffset(),n=new Date(A.getFullYear(),6,1).getTimezoneOffset(),a=new Date(A.getFullYear(),0,1).getTimezoneOffset(),i=Math.min(a,n);return 0>t?s()[e+32>>>2>>>0]=+(n!=a&&i==r):0<t!=(i==r)&&(n=Math.max(a,n),A.setTime(A.getTime()+6e4*((0<t?i:n)-r))),s()[e+24>>>2>>>0]=A.getDay(),t=(Bt(A.getFullYear())?vt:yt)[A.getMonth()]+A.getDate()-1|0,s()[e+28>>>2>>>0]=t,s()[e>>>2>>>0]=A.getSeconds(),s()[e+4>>>2>>>0]=A.getMinutes(),s()[e+8>>>2>>>0]=A.getHours(),s()[e+12>>>2>>>0]=A.getDate(),s()[e+16>>>2>>>0]=A.getMonth(),s()[e+20>>>2>>>0]=A.getYear(),e=A.getTime(),BigInt(isNaN(e)?-1:e/1e3)}function Gt(e,A,t,r,n,a,s){return h?ue(16,1,e,A,t,r,n,a,s):-52}function Dt(e,A,t,r,n,a){if(h)return ue(17,1,e,A,t,r,n,a)}function Qt(e,A,t,r){e>>>=0,A>>>=0,t>>>=0,r>>>=0;var n=(new Date).getFullYear(),a=new Date(n,0,1),o=new Date(n,6,1);n=a.getTimezoneOffset();var l=o.getTimezoneOffset(),c=Math.max(n,l);i()[e>>>2>>>0]=60*c,s()[A>>>2>>>0]=+(n!=l),a=(e=e=>e.toLocaleTimeString(void 0,{hour12:!1,timeZoneName:"short"}).split(" ")[1])(a),o=e(o),l<n?(Le(a,t,17),Le(o,r,17)):(Le(a,r,17),Le(o,t,17))}var Tt=[],Pt=(e,A)=>{Tt.length=0;for(var t;t=r()[e++>>>0];){var n=105!=t;A+=(n&=112!=t)&&A%8?4:0,Tt.push(112==t?i()[A>>>2>>>0]:106==t?H[A>>>3]:105==t?s()[A>>>2>>>0]:l()[A>>>3>>>0]),A+=n?8:4}return Tt};function zt(e,A,t){return e>>>=0,A=Pt(A>>>0,t>>>0),ae[e](...A)}function Ft(e,A,t){return e>>>=0,A=Pt(A>>>0,t>>>0),ae[e](...A)}var St=()=>{},Nt=()=>Date.now();function Ot(e,A){return M(ze(e>>>0,A>>>0))}var Lt,Yt=()=>{throw ge+=1,"unwind"};function Ht(){return 4294901760}Lt=()=>performance.timeOrigin+performance.now();var Rt=()=>navigator.hardwareConcurrency;function Wt(){return _("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Vt(e){e>>>=0;var A=r().length;if(e<=A||4294901760<e)return!1;for(var t=1;4>=t;t*=2){var n=A*(1+.2/t);n=Math.min(n,e+100663296);var a=Math;n=Math.max(e,n);e:{a=(a.min.call(a,4294901760,n+(65536-n%65536)%65536)-Q.buffer.byteLength+65535)/65536;try{Q.grow(a),j();var s=1;break e}catch{}s=void 0}if(s)return!0}return!1}var jt=()=>(_("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),Ut={},Kt=e=>{e.forEach((e=>{jt()}))};function Zt(){var e=Error().stack.toString().split("\n");return"Error"==e[0]&&e.shift(),Kt(e),Ut.Qb=jt(),Ut.fc=e,Ut.Qb}function Xt(e,A,t){if(e>>>=0,A>>>=0,Ut.Qb==e)var r=Ut.fc;else"Error"==(r=Error().stack.toString().split("\n"))[0]&&r.shift(),Kt(r);for(var n=3;r[n]&&jt()!=e;)++n;for(e=0;e<t&&r[e+n];++e)s()[A+4*e>>>2>>>0]=jt();return e}var qt,Jt={},_t=()=>{if(!qt){var e,A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(e in Jt)void 0===Jt[e]?delete A[e]:A[e]=Jt[e];var t=[];for(e in A)t.push(`${e}=${A[e]}`);qt=t}return qt};function $t(e,t){if(h)return ue(18,1,e,t);e>>>=0,t>>>=0;var r=0;return _t().forEach(((n,a)=>{var s=t+r;for(a=i()[e+4*a>>>2>>>0]=s,s=0;s<n.length;++s)A()[a++>>>0]=n.charCodeAt(s);A()[a>>>0]=0,r+=n.length+1})),0}function er(e,A){if(h)return ue(19,1,e,A);e>>>=0,A>>>=0;var t=_t();i()[e>>>2>>>0]=t.length;var r=0;return t.forEach((e=>r+=e.length+1)),i()[A>>>2>>>0]=r,0}function Ar(e){return h?ue(20,1,e):52}function tr(e,A,t,r){return h?ue(21,1,e,A,t,r):52}function rr(e,A,t,r){return h?ue(22,1,e,A,t,r):70}var nr=[null,[],[]];function ar(e,A,t,n){if(h)return ue(23,1,e,A,t,n);A>>>=0,t>>>=0,n>>>=0;for(var a=0,s=0;s<t;s++){var o=i()[A>>>2>>>0],l=i()[A+4>>>2>>>0];A+=8;for(var c=0;c<l;c++){var g=r()[o+c>>>0],u=nr[e];0===g||10===g?((1===e?E:M)(Pe(u,0)),u.length=0):u.push(g)}a+=l}return i()[n>>>2>>>0]=a,0}var sr=[31,29,31,30,31,30,31,31,30,31,30,31],ir=[31,28,31,30,31,30,31,31,30,31,30,31],or=(e,t)=>{A().set(e,t>>>0)};function lr(e,A,t,r){function n(e,A,t){for(e="number"==typeof e?e.toString():e||"";e.length<A;)e=t[0]+e;return e}function a(e,A){return n(e,A,"0")}function o(e,A){function t(e){return 0>e?-1:0<e?1:0}var r;return 0===(r=t(e.getFullYear()-A.getFullYear()))&&0===(r=t(e.getMonth()-A.getMonth()))&&(r=t(e.getDate()-A.getDate())),r}function l(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function c(e){var A=e.Cb;for(e=new Date(new Date(e.Db+1900,0,1).getTime());0<A;){var t=e.getMonth(),r=(Bt(e.getFullYear())?sr:ir)[t];if(!(A>r-e.getDate())){e.setDate(e.getDate()+A);break}A-=r-e.getDate()+1,e.setDate(1),11>t?e.setMonth(t+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return t=new Date(e.getFullYear()+1,0,4),A=l(new Date(e.getFullYear(),0,4)),t=l(t),0>=o(A,e)?0>=o(t,e)?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}e>>>=0,A>>>=0,t>>>=0,r>>>=0;var g=i()[r+40>>>2>>>0];for(var u in r={lc:s()[r>>>2>>>0],kc:s()[r+4>>>2>>>0],Ib:s()[r+8>>>2>>>0],Mb:s()[r+12>>>2>>>0],Jb:s()[r+16>>>2>>>0],Db:s()[r+20>>>2>>>0],vb:s()[r+24>>>2>>>0],Cb:s()[r+28>>>2>>>0],sc:s()[r+32>>>2>>>0],jc:s()[r+36>>>2>>>0],mc:g?ze(g):""},t=ze(t),g={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})t=t.replace(new RegExp(u,"g"),g[u]);var d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),f="January February March April May June July August September October November December".split(" ");for(u in g={"%a":e=>d[e.vb].substring(0,3),"%A":e=>d[e.vb],"%b":e=>f[e.Jb].substring(0,3),"%B":e=>f[e.Jb],"%C":e=>a((e.Db+1900)/100|0,2),"%d":e=>a(e.Mb,2),"%e":e=>n(e.Mb,2," "),"%g":e=>c(e).toString().substring(2),"%G":c,"%H":e=>a(e.Ib,2),"%I":e=>(0==(e=e.Ib)?e=12:12<e&&(e-=12),a(e,2)),"%j":e=>{for(var A=0,t=0;t<=e.Jb-1;A+=(Bt(e.Db+1900)?sr:ir)[t++]);return a(e.Mb+A,3)},"%m":e=>a(e.Jb+1,2),"%M":e=>a(e.kc,2),"%n":()=>"\n","%p":e=>0<=e.Ib&&12>e.Ib?"AM":"PM","%S":e=>a(e.lc,2),"%t":()=>"\t","%u":e=>e.vb||7,"%U":e=>a(Math.floor((e.Cb+7-e.vb)/7),2),"%V":e=>{var A=Math.floor((e.Cb+7-(e.vb+6)%7)/7);if(2>=(e.vb+371-e.Cb-2)%7&&A++,A)53==A&&(4==(t=(e.vb+371-e.Cb)%7)||3==t&&Bt(e.Db)||(A=1));else{A=52;var t=(e.vb+7-e.Cb-1)%7;(4==t||5==t&&Bt(e.Db%400-1))&&A++}return a(A,2)},"%w":e=>e.vb,"%W":e=>a(Math.floor((e.Cb+7-(e.vb+6)%7)/7),2),"%y":e=>(e.Db+1900).toString().substring(2),"%Y":e=>e.Db+1900,"%z":e=>(0<=(e=e.jc)?"+":"-")+("0000"+((e=Math.abs(e)/60)/60*100+e%60)).slice(-4),"%Z":e=>e.mc,"%%":()=>"%"},t=t.replace(/%%/g,"\0\0"),g)t.includes(u)&&(t=t.replace(new RegExp(u,"g"),g[u](r)));return u=function(e){var A=Array(Ne(e)+1);return Oe(e,A,0,A.length),A}(t=t.replace(/\0\0/g,"%")),u.length>A?0:(or(u,e),u.length-1)}function cr(e,A,t,r){return lr(e>>>0,A>>>0,t>>>0,r>>>0)}h||function(){for(var e=u.numThreads-1;e--;)Be();U.unshift((()=>{X++,function(e){h?e():Promise.all(me.map(xe)).then(e)}((()=>J()))}))}();for(var gr=Array(256),ur=0;256>ur;++ur)gr[ur]=String.fromCharCode(ur);Je=gr,_e=u.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},u.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},lA.push(0,1,void 0,1,null,1,!0,1,!1,1),u.count_emval_handles=()=>lA.length/2-5-oA.length;var dr=[de,fe,De,Fe,Se,Ye,He,Re,We,Ve,je,Ue,Ke,Ze,Xe,qe,Gt,Dt,$t,er,Ar,tr,rr,ar],fr=function(){function e(e,A){return fr=e.exports,fr=function(){var e=fr,A={};for(let[t,r]of Object.entries(e))A[t]="function"==typeof r?(...e)=>{ZA.push(t);try{return r(...e)}finally{V||(ZA.pop(),UA&&1===jA&&0===ZA.length&&(jA=0,ge+=1,VA(Pr),typeof Fibers<"u"&&Fibers.tc()))}}:r;return A}(),fr=function(){var e=fr,A=e=>A=>e(A)>>>0,t=e=>()=>e()>>>0;return(e=Object.assign({},e)).Da=A(e.Da),e.gb=t(e.gb),e.ib=A(e.ib),e.emscripten_main_runtime_thread_id=t(e.emscripten_main_runtime_thread_id),e.tb=A(e.tb),e.ub=t(e.ub),e}(),be.push(fr.jb),K.unshift(fr.Ca),T=A,J(),fr}var A=ne();if(X++,u.instantiateWasm)try{return u.instantiateWasm(A,e)}catch(e){M(`Module.instantiateWasm callback failed with error: ${e}`),g(e)}return $||=u.locateFile?ee("ort-wasm-simd-threaded.jsep.wasm")?"ort-wasm-simd-threaded.jsep.wasm":u.locateFile?u.locateFile("ort-wasm-simd-threaded.jsep.wasm",x):x+"ort-wasm-simd-threaded.jsep.wasm":new URL(t("./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm"),t.b).href,function(e,A){var t=$;return B||"function"!=typeof WebAssembly.instantiateStreaming||ee(t)||Ae(t)||"function"!=typeof fetch?re(t,e,A):fetch(t,{credentials:"same-origin"}).then((r=>WebAssembly.instantiateStreaming(r,e).then(A,(function(r){return M(`wasm streaming compile failed: ${r}`),M("falling back to ArrayBuffer instantiation"),re(t,e,A)}))))}(A,(function(A){e(A.instance,A.module)})).catch(g),{}}(),pr=e=>(pr=fr.Da)(e),hr=()=>(hr=fr.Ea)();u._OrtInit=(e,A)=>(u._OrtInit=fr.Fa)(e,A),u._OrtGetLastError=(e,A)=>(u._OrtGetLastError=fr.Ga)(e,A),u._OrtCreateSessionOptions=(e,A,t,r,n,a,s,i,o,l)=>(u._OrtCreateSessionOptions=fr.Ha)(e,A,t,r,n,a,s,i,o,l),u._OrtAppendExecutionProvider=(e,A)=>(u._OrtAppendExecutionProvider=fr.Ia)(e,A),u._OrtAddFreeDimensionOverride=(e,A,t)=>(u._OrtAddFreeDimensionOverride=fr.Ja)(e,A,t),u._OrtAddSessionConfigEntry=(e,A,t)=>(u._OrtAddSessionConfigEntry=fr.Ka)(e,A,t),u._OrtReleaseSessionOptions=e=>(u._OrtReleaseSessionOptions=fr.La)(e),u._OrtCreateSession=(e,A,t)=>(u._OrtCreateSession=fr.Ma)(e,A,t),u._OrtReleaseSession=e=>(u._OrtReleaseSession=fr.Na)(e),u._OrtGetInputOutputCount=(e,A,t)=>(u._OrtGetInputOutputCount=fr.Oa)(e,A,t),u._OrtGetInputName=(e,A)=>(u._OrtGetInputName=fr.Pa)(e,A),u._OrtGetOutputName=(e,A)=>(u._OrtGetOutputName=fr.Qa)(e,A),u._OrtFree=e=>(u._OrtFree=fr.Ra)(e),u._OrtCreateTensor=(e,A,t,r,n,a)=>(u._OrtCreateTensor=fr.Sa)(e,A,t,r,n,a),u._OrtGetTensorData=(e,A,t,r,n)=>(u._OrtGetTensorData=fr.Ta)(e,A,t,r,n),u._OrtReleaseTensor=e=>(u._OrtReleaseTensor=fr.Ua)(e),u._OrtCreateRunOptions=(e,A,t,r)=>(u._OrtCreateRunOptions=fr.Va)(e,A,t,r),u._OrtAddRunConfigEntry=(e,A,t)=>(u._OrtAddRunConfigEntry=fr.Wa)(e,A,t),u._OrtReleaseRunOptions=e=>(u._OrtReleaseRunOptions=fr.Xa)(e),u._OrtCreateBinding=e=>(u._OrtCreateBinding=fr.Ya)(e),u._OrtBindInput=(e,A,t)=>(u._OrtBindInput=fr.Za)(e,A,t),u._OrtBindOutput=(e,A,t,r)=>(u._OrtBindOutput=fr._a)(e,A,t,r),u._OrtClearBoundOutputs=e=>(u._OrtClearBoundOutputs=fr.$a)(e),u._OrtReleaseBinding=e=>(u._OrtReleaseBinding=fr.ab)(e),u._OrtRunWithBinding=(e,A,t,r,n)=>(u._OrtRunWithBinding=fr.bb)(e,A,t,r,n),u._OrtRun=(e,A,t,r,n,a,s,i)=>(u._OrtRun=fr.cb)(e,A,t,r,n,a,s,i),u._OrtEndProfiling=e=>(u._OrtEndProfiling=fr.db)(e),u._JsepOutput=(e,A,t)=>(u._JsepOutput=fr.eb)(e,A,t),u._JsepGetNodeName=e=>(u._JsepGetNodeName=fr.fb)(e);var mr,Cr=()=>(Cr=fr.gb)(),br=u._free=e=>(br=u._free=fr.hb)(e),Ir=u._malloc=e=>(Ir=u._malloc=fr.ib)(e),wr=(e,A,t,r,n,a)=>(wr=fr.lb)(e,A,t,r,n,a),kr=()=>(kr=fr.mb)(),xr=(e,A,t,r,n)=>(xr=fr.nb)(e,A,t,r,n),Br=e=>(Br=fr.ob)(e),vr=e=>(vr=fr.pb)(e),yr=()=>(yr=fr.qb)(),Er=(e,A)=>(Er=fr.rb)(e,A),Mr=e=>(Mr=fr.sb)(e),Gr=e=>(Gr=fr.tb)(e),Dr=()=>(Dr=fr.ub)(),Qr=u.dynCall_ii=(e,A)=>(Qr=u.dynCall_ii=fr.wb)(e,A),Tr=e=>(Tr=fr.xb)(e),Pr=()=>(Pr=fr.yb)(),zr=e=>(zr=fr.zb)(e),Fr=()=>(Fr=fr.Ab)();function Sr(){0<X||(h?(c(u),h||ve(K),startWorker(u)):(ve(U),0<X||mr||(mr=!0,u.calledRun=!0,V||(h||ve(K),c(u),h||ve(Z)))))}return u.___start_em_js=932469,u.___stop_em_js=932715,u.stackSave=()=>Dr(),u.stackRestore=e=>Mr(e),u.stackAlloc=e=>Gr(e),u.setValue=function(e,t,r="i8"){switch(r.endsWith("*")&&(r="*"),r){case"i1":case"i8":A()[e>>>0]=t;break;case"i16":n()[e>>>1>>>0]=t;break;case"i32":s()[e>>>2>>>0]=t;break;case"i64":H[e>>>3]=BigInt(t);break;case"float":o()[e>>>2>>>0]=t;break;case"double":l()[e>>>3>>>0]=t;break;case"*":i()[e>>>2>>>0]=t;break;default:_(`invalid type for setValue: ${r}`)}},u.getValue=function(e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return A()[e>>>0];case"i16":return n()[e>>>1>>>0];case"i32":return s()[e>>>2>>>0];case"i64":return H[e>>>3];case"float":return o()[e>>>2>>>0];case"double":return l()[e>>>3>>>0];case"*":return i()[e>>>2>>>0];default:_(`invalid type for getValue: ${t}`)}},u.UTF8ToString=ze,u.stringToUTF8=Le,u.lengthBytesUTF8=Ne,q=function e(){mr||Sr(),mr||(q=e)},Sr(),u.PTR_SIZE=4,d},me=he,"em-pthread"===globalThis.self?.name&&he()})),_o=L((()=>{oe(),Ce=typeof location>"u"?void 0:location.origin,be=(()=>import.meta.url?.startsWith("file:")?new URL(new URL(t("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb"),t.b).href,Ce).href:import.meta.url)(),Ie=()=>{if(be&&!be.startsWith("blob:"))return be.substring(0,be.lastIndexOf("/")+1)},we=(e,A)=>{try{let t=A??be;return(t?new URL(e,t):new URL(e)).origin===Ce}catch{return!1}},ke=(e,A)=>{let t=A??be;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},xe=(e,A)=>`${A??"./"}${e}`,Be=async e=>{let A=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(A)},ve=async e=>(await import(e)).default,ye=(de(),H(le)).default,Ee=async()=>{if(!be)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(we(be))return[void 0,ye()];let e=await Be(be);return[e,ye(e)]},Me=(Jo(),H(fe)).default,Ge=async(e,A,t)=>{if(!e&&!A&&Me&&be&&we(be))return[void 0,Me];{let r="ort-wasm-simd-threaded.jsep.mjs",n=e??ke(r,A),a=t&&n&&!we(n,A),s=a?await Be(n):n??xe(r,A);return[a?s:void 0,await ve(s)]}}})),$o=L((()=>{_o(),Qe=!1,Te=!1,Pe=!1,ze=()=>{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}},Fe=()=>{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}},Se=async e=>{if(Qe)return Promise.resolve();if(Te)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Pe)throw new Error("previous call to 'initializeWebAssembly()' failed.");Te=!0;let A=e.initTimeout,t=e.numThreads;if(!Fe())throw new Error("WebAssembly SIMD is not supported in the current environment.");let r=ze();t>1&&!r&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+t+", 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."),e.numThreads=t=1);let n=e.wasmPaths,a="string"==typeof n?n:void 0,s=n?.mjs,i=s?.href??s,o=n?.wasm,l=o?.href??o,c=e.wasmBinary,[g,u]=await Ge(i,a,t>1),d=!1,f=[];if(A>0&&f.push(new Promise((e=>{setTimeout((()=>{d=!0,e()}),A)}))),f.push(new Promise(((e,A)=>{let r={numThreads:t};if(c)r.wasmBinary=c;else if(l||a)r.locateFile=e=>l??a+e;else if(i&&0!==i.indexOf("blob:"))r.locateFile=e=>new URL(e,i).href;else if(g){let e=Ie();e&&(r.locateFile=A=>e+A)}u(r).then((A=>{Te=!1,Qe=!0,De=A,e(),g&&URL.revokeObjectURL(g)}),(e=>{Te=!1,Pe=!0,A(e)}))}))),await Promise.race(f),d)throw new Error(`WebAssembly backend initializing failed due to timeout: ${A}ms`)},Ne=()=>{if(Qe&&De)return De;throw new Error("WebAssembly is not initialized yet.")}})),el=L((()=>{$o(),Oe=(e,A)=>{let t=Ne(),r=t.lengthBytesUTF8(e)+1,n=t._malloc(r);return t.stringToUTF8(e,n,r),A.push(n),n},Le=(e,A,t,r)=>{if("object"==typeof e&&null!==e){if(t.has(e))throw new Error("Circular reference in options");t.add(e)}Object.entries(e).forEach((([e,n])=>{let a=A?A+e:e;if("object"==typeof n)Le(n,a+".",t,r);else if("string"==typeof n||"number"==typeof n)r(a,n.toString());else{if("boolean"!=typeof n)throw new Error("Can't handle extra config type: "+typeof n);r(a,n?"1":"0")}}))},Ye=e=>{let A=Ne(),t=A.stackSave();try{let t=A.PTR_SIZE,r=A.stackAlloc(2*t);A._OrtGetLastError(r,r+t);let n=Number(A.getValue(r,4===t?"i32":"i64")),a=A.getValue(r+t,"*"),s=a?A.UTF8ToString(a):"";throw new Error(`${e} ERROR_CODE: ${n}, ERROR_MESSAGE: ${s}`)}finally{A.stackRestore(t)}}})),Al=L((()=>{$o(),el(),He=e=>{let A=Ne(),t=0,r=[],n=e||{};try{if(void 0===e?.logSeverityLevel)n.logSeverityLevel=2;else if("number"!=typeof e.logSeverityLevel||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(void 0===e?.logVerbosityLevel)n.logVerbosityLevel=0;else if("number"!=typeof e.logVerbosityLevel||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);void 0===e?.terminate&&(n.terminate=!1);let a=0;return void 0!==e?.tag&&(a=Oe(e.tag,r)),t=A._OrtCreateRunOptions(n.logSeverityLevel,n.logVerbosityLevel,!!n.terminate,a),0===t&&Ye("Can't create run options."),void 0!==e?.extra&&Le(e.extra,"",new WeakSet,((e,n)=>{let a=Oe(e,r),s=Oe(n,r);0!==A._OrtAddRunConfigEntry(t,a,s)&&Ye(`Can't set a run config entry: ${e} - ${n}.`)})),[t,r]}catch(e){throw 0!==t&&A._OrtReleaseRunOptions(t),r.forEach((e=>A._free(e))),e}}})),tl=L((()=>{$o(),el(),Re=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},We=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Ve=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let A=e.extra.session;A.use_ort_model_bytes_directly||(A.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some((e=>"webgpu"===("string"==typeof e?e:e.name)))&&(e.enableMemPattern=!1)},je=(e,A,t)=>{for(let r of A){let A="string"==typeof r?r:r.name;switch(A){case"webnn":if(A="WEBNN","string"!=typeof r){let A=r?.deviceType;if(A){let r=Oe("deviceType",t),n=Oe(A,t);0!==Ne()._OrtAddSessionConfigEntry(e,r,n)&&Ye(`Can't set a session config entry: 'deviceType' - ${A}.`)}}break;case"webgpu":if(A="JS","string"!=typeof r){let A=r;if(A?.preferredLayout){if("NCHW"!==A.preferredLayout&&"NHWC"!==A.preferredLayout)throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${A.preferredLayout}`);let r=Oe("preferredLayout",t),n=Oe(A.preferredLayout,t);0!==Ne()._OrtAddSessionConfigEntry(e,r,n)&&Ye(`Can't set a session config entry: 'preferredLayout' - ${A.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${A}`)}let n=Oe(A,t);0!==Ne()._OrtAppendExecutionProvider(e,n)&&Ye(`Can't append execution provider: ${A}.`)}},Ue=e=>{let A=Ne(),t=0,r=[],n=e||{};Ve(n);try{let e=Re(n.graphOptimizationLevel??"all"),a=We(n.executionMode??"sequential"),s="string"==typeof n.logId?Oe(n.logId,r):0,i=n.logSeverityLevel??2;if(!Number.isInteger(i)||i<0||i>4)throw new Error(`log serverity level is not valid: ${i}`);let o=n.logVerbosityLevel??0;if(!Number.isInteger(o)||o<0||o>4)throw new Error(`log verbosity level is not valid: ${o}`);let l="string"==typeof n.optimizedModelFilePath?Oe(n.optimizedModelFilePath,r):0;if(t=A._OrtCreateSessionOptions(e,!!n.enableCpuMemArena,!!n.enableMemPattern,a,!!n.enableProfiling,0,s,i,o,l),0===t&&Ye("Can't create session options."),n.executionProviders&&je(t,n.executionProviders,r),void 0!==n.enableGraphCapture){if("boolean"!=typeof n.enableGraphCapture)throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);let e=Oe("enableGraphCapture",r),a=Oe(n.enableGraphCapture.toString(),r);0!==A._OrtAddSessionConfigEntry(t,e,a)&&Ye(`Can't set a session config entry: 'enableGraphCapture' - ${n.enableGraphCapture}.`)}if(n.freeDimensionOverrides)for(let[e,a]of Object.entries(n.freeDimensionOverrides)){if("string"!=typeof e)throw new Error(`free dimension override name must be a string: ${e}`);if("number"!=typeof a||!Number.isInteger(a)||a<0)throw new Error(`free dimension override value must be a non-negative integer: ${a}`);let n=Oe(e,r);0!==A._OrtAddFreeDimensionOverride(t,n,a)&&Ye(`Can't set a free dimension override: ${e} - ${a}.`)}return void 0!==n.extra&&Le(n.extra,"",new WeakSet,((e,n)=>{let a=Oe(e,r),s=Oe(n,r);0!==A._OrtAddSessionConfigEntry(t,a,s)&&Ye(`Can't set a session config entry: ${e} - ${n}.`)})),[t,r]}catch(e){throw 0!==t&&0!==A._OrtReleaseSessionOptions(t)&&Ye("Can't release session options."),r.forEach((e=>A._free(e))),e}}})),rl=L((()=>{Ke=e=>{switch(e){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: ${e}`)}},Ze=e=>{switch(e){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: ${e}`)}},Xe=(e,A)=>{let t=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],r="number"==typeof A?A:A.reduce(((e,A)=>e*A),1);return t>0?Math.ceil(r*t):void 0},qe=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},Je=e=>{switch(e){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: ${e}`)}},_e=e=>"float32"===e||"float16"===e||"int32"===e||"int64"===e||"uint32"===e||"uint8"===e||"bool"===e||"uint4"===e||"int4"===e,$e=e=>"float32"===e||"float16"===e||"int32"===e||"int64"===e||"uint32"===e||"uint64"===e||"int8"===e||"uint8"===e||"bool"===e||"uint4"===e||"int4"===e,eA=e=>{switch(e){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: ${e}`)}}})),nl=L((()=>{oe(),AA=async e=>{if("string"==typeof e){let A=await fetch(e);if(!A.ok)throw new Error(`failed to load external data file: ${e}`);let t=A.headers.get("Content-Length"),r=t?parseInt(t,10):0;if(r<1073741824)return new Uint8Array(await A.arrayBuffer());{if(!A.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let t,n=A.body.getReader();try{t=new ArrayBuffer(r)}catch(e){if(!(e instanceof RangeError))throw e;{let e=Math.ceil(r/65536);t=new WebAssembly.Memory({initial:e,maximum:e}).buffer}}let a=0;for(;;){let{done:e,value:A}=await n.read();if(e)break;let r=A.byteLength;new Uint8Array(t,a,r).set(A),a+=r}return new Uint8Array(t,0,r)}}return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}})),al=L((()=>{rl(),tA=["V","I","W","E","F"],rA=(e,A)=>{console.log(`[${tA[e]},${(new Date).toISOString()}]${A}`)},sA=(e,A)=>{nA=e,aA=A},iA=(e,A)=>{let t=Je(e);t>=Je(nA)&&rA(t,"function"==typeof A?A():A)},oA=(...e)=>{aA&&iA(...e)}})),sl=L((()=>{rl(),lA=(e,A)=>new(qe(A))(e)})),il=L((()=>{})),ol=L((()=>{al(),il(),cA=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]]),gA=[],uA=e=>16*Math.ceil(Number(e)/16),dA=e=>{for(let A=0;A<gA.length;A++){let t=gA[A];if(e<=t)return t}return 16*Math.ceil(e/16)},fA=1,pA=()=>fA++,hA=async(e,A,t,r)=>{let n=uA(t),a=e.device.createBuffer({size:n,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let s=e.getCommandEncoder();e.endComputePass(),s.copyBufferToBuffer(A,0,a,0,n),e.flush(),await a.mapAsync(GPUMapMode.READ);let i=a.getMappedRange();if(r){let e=r();return e.set(new Uint8Array(i,0,t)),e}return new Uint8Array(i.slice(0,t))}finally{a.destroy()}},mA=class{constructor(e){this.backend=e,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[e]of cA)gA.push(e),this.freeBuffers.set(e,[]),this.freeUniformBuffers.set(e,[]);this.sessionCount=0}upload(e,A){let t=A.buffer,r=A.byteOffset,n=A.byteLength,a=uA(n),s=this.storageCache.get(e);if(!s)throw new Error("gpu data for uploading does not exist");if(Number(s.originalSize)!==n)throw new Error(`inconsistent data size. gpu data size=${s.originalSize}, data size=${n}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:a,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),o=i.getMappedRange();new Uint8Array(o).set(new Uint8Array(t,r,n)),i.unmap();let l=this.backend.device.createCommandEncoder();l.copyBufferToBuffer(i,0,s.gpuData.buffer,0,a),this.backend.device.queue.submit([l.finish()]),i.destroy(),oA("verbose",(()=>`[WebGPU] GpuDataManager.upload(id=${e})`))}memcpy(e,A){let t=this.storageCache.get(e);if(!t)throw new Error("source gpu data for memcpy does not exist");let r=this.storageCache.get(A);if(!r)throw new Error("destination gpu data for memcpy does not exist");if(t.originalSize!==r.originalSize)throw new Error("inconsistent source and destination gpu data size");let n=uA(t.originalSize),a=this.backend.getCommandEncoder();this.backend.endComputePass(),a.copyBufferToBuffer(t.gpuData.buffer,0,r.gpuData.buffer,0,n)}registerExternalBuffer(e,A,t){let r;if(t){if(r=t[0],e===t[1])return oA("verbose",(()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${A}) => id=${r}, buffer is the same, skip.`)),r;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error("Registering a different external buffer under graph capture mode is not supported yet.\n Please use the previous external buffer!")}else r=pA();return this.storageCache.set(r,{gpuData:{id:r,type:0,buffer:e},originalSize:A}),oA("verbose",(()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${A}) => id=${r}, registered.`)),r}unregisterExternalBuffer(e){void 0!==e&&(this.storageCache.delete(e),oA("verbose",(()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`)))}create(e,A=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t,r=dA(e),n=(A&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,a=(A&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(n||a){let e=(n?this.freeBuffers:this.freeUniformBuffers).get(r);t=e&&e.length>0?e.pop():this.backend.device.createBuffer({size:r,usage:A})}else t=this.backend.device.createBuffer({size:r,usage:A});let s={id:pA(),type:0,buffer:t};return this.storageCache.set(s.id,{gpuData:s,originalSize:Number(e)}),oA("verbose",(()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${s.id}`)),s}get(e){return this.storageCache.get(e)?.gpuData}release(e){let A="bigint"==typeof e?Number(e):e,t=this.storageCache.get(A);if(!t){if(0===this.storageCache.size)return 0;throw new Error("releasing data does not exist")}return oA("verbose",(()=>`[WebGPU] GpuDataManager.release(id=${A}), gpuDataId=${t.gpuData.id}`)),this.storageCache.delete(A),this.buffersPending.push(t.gpuData.buffer),t.originalSize}async download(e,A){let t=this.storageCache.get(Number(e));if(!t)throw new Error("data does not exist");await hA(this.backend,t.gpuData.buffer,t.originalSize,A)}refreshPendingBuffers(){if(0!==this.buffersPending.length)if("default"===this.backend.sessionStatus){for(let e of this.buffersPending){let A=cA.get(e.size);if((e.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let t=this.freeBuffers.get(e.size)||[];void 0===A||t.length>=A?e.destroy():t.push(e)}else if((e.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let t=this.freeUniformBuffers.get(e.size)||[];void 0===A||t.length>=A?e.destroy():t.push(e)}else e.destroy()}this.buffersPending=[]}else{let e=this.capturedPendingBuffers.get(this.backend.currentSessionId);e||(e=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,e));for(let A of this.buffersPending)e.push(A);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach((e=>{e.forEach((e=>{e.destroy()}))})),this.freeUniformBuffers.forEach((e=>{e.forEach((e=>{e.destroy()}))})),this.storageCache.forEach((e=>{e.gpuData.buffer.destroy()})),this.capturedPendingBuffers.forEach((e=>{e.forEach((e=>{e.destroy()}))})),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(e){let A=this.capturedPendingBuffers.get(e);A&&(A.forEach((e=>{e.destroy()})),this.capturedPendingBuffers.delete(e)),this.sessionCount-=1,0===this.sessionCount&&(oA("warning",(()=>"[WebGPU] Clearing webgpu buffer cache")),this.storageCache.forEach((e=>{e.gpuData.buffer.destroy()})),this.storageCache=new Map)}},CA=(...e)=>new mA(...e)})),ll=L((()=>{bA=class{constructor(e){Object.assign(this,e)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map((e=>`${this[e]}`)).join(";")),this.key}},IA=e=>new bA(e)})),cl=L((()=>{wA=class{static calcMatMulShape(e,A){return e[1]!==A[0]?void 0:[e[0],A[1]]}},kA=class{static calcShape(e,A,t=!1){let r=e.length,n=A.length;if(0===r)return A;if(0===n)return e;let a=Math.max(e.length,A.length),s=new Array(a);if(t){if(r<2||n<2)return;let t=wA.calcMatMulShape([e[r-2],e[r-1]],[A[n-2],A[n-1]]);if(void 0===t)return;[s[a-2],s[a-1]]=t}for(let i=t?3:1;i<=a;i++){let t=r-i<0?1:e[r-i],o=n-i<0?1:A[n-i];if(t!==o&&t>1&&o>1)return;let l=Math.max(t,o);if(t&&o)s[a-i]=Math.max(t,o);else{if(l>1)return;s[a-i]=0}}return s}static isValidBroadcast(e,A){let t=e.length,r=A.length;if(t>r)return!1;for(let n=1;n<=t;n++)if(1!==e[t-n]&&e[t-n]!==A[r-n])return!1;return!0}},xA=class e{static size(A){return e.getSizeFromDimensionRange(A,0,A.length)}static convertShape(e,A=4){let t=e.length;if(0===t)return[];let r=new Array(t),n=t-1;for(;n>=0;){if(e[n]%A==0){r[n]=e[n]/A;break}if(A%e[n]!=0)throw new Error("cannot convert shape");r[n]=1,A/=e[n],n--}for(n--;n>=0;n--)r[n]=e[n];return r}static sizeFromDimension(A,t){if(t<0||t>A.length)throw new Error(`invalid dimension of ${t} for sizeFromDimension as Tensor has ${A.length} dimensions.`);return e.getSizeFromDimensionRange(A,t,A.length)}static sizeToDimension(A,t){if(t<0||t>A.length)throw new Error(`invalid dimension of ${t} for sizeToDimension as Tensor has ${A.length} dimensions.`);return e.getSizeFromDimensionRange(A,0,t)}static getSizeFromDimensionRange(e,A,t){let r=1;for(let n=A;n<t;n++){if(e[n]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");r*=Number(e[n])}return r}static computeStrides(e){let A=e.length;if(0===A)return[];if(1===A)return[1];let t=new Array(A);t[A-1]=1,t[A-2]=e[A-1];for(let r=A-3;r>=0;--r)t[r]=t[r+1]*e[r+1];return t}static normalizeAxis(e,A){if(e<-A&&e>=A)throw new Error("unsupported axis for this operation.");return e<0?e+A:e}static normalizeAxes(e,A){return e.map((t=>this.normalizeAxis(t,A??e.length)))}static sortBasedOnPerm(e,A){return A?A.map((A=>e[A])):e.slice().reverse()}static padShape(e,A){let t=e.length;return e.map(((e,r)=>e+A[r]+A[r+t]))}static areEqual(e,A){return e.length===A.length&&e.every(((e,t)=>e===A[t]))}},BA=class e{static adjustPoolAttributes(e,A,t,r,n,a){if(!e&&t.length!==A.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(e)for(let e=0;e<A.length-2;e++)e>=t.length?t.push(A[e+2]):t[e]=A[e+2];for(let e=0;e<t.length;e++)if(e<r.length){if(r[e]<0)throw new Error("strides should be greater than or equal to 1")}else r.push(1);for(let e=0;e<t.length;e++)if(e<n.length){if(n[e]<0)throw new Error("dilations should be greater than or equal to 1")}else n.push(1);for(let e=0;e<2*t.length;e++)if(e<a.length){if(a[e]<0)throw new Error("pad should be greater than or equal to 1")}else a.push(0);for(let e=0;e<t.length;e++){if(t[e]<=0)throw new Error("kernel shapes need to be greater than 0");if(a[e]>=t[e]||a[e+t.length]>=t[e])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(A,t,r,n,a,s,i){if(i){if(a.length!==2*(A.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(t.length!==A.length-2)throw new Error("length of strides should be the length of data dimensions");if(n.length!==A.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let o=0;o<A.length-2;o++)e.adjustPadAndReturnShape(A[o+(s?1:2)],t[o],r[o],n[o],a,o,o+A.length-2,i)}}static computePoolOutputShape(A,t,r,n,a,s,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let o=[t[0],t[1]];return e.computeShapeHelper(A,t,o,r,n,a,s,i),o}static computeConvOutputShape(A,t,r,n,a,s,i){if(A.length<=0||t.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let o=[A[0],t[0]];return e.computeShapeHelper(!1,A,o,r,n,a,s,i),o}static computeShapeHelper(A,t,r,n,a,s,i,o){if(A)for(let e=0;e<t.length-2;e++)r.push(1);else for(let A=0;A<t.length-2;A++)r.push(e.adjustPadAndReturnShape(t[A+2],n[A],a[A],s[A],i,A,A+t.length-2,o))}static adjustPadAndReturnShape(e,A,t,r,n,a,s,i){let o=t*(r-1)+1;if(!i||"NOTSET"===i)return Math.floor((e+n[a]+n[s]-o)/A+1);switch(i){case"VALID":return n[a]=0,n[s]=0,Math.floor((e-o)/A+1);case"SAME_LOWER":case"SAME_UPPER":if(1!==t)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let t=((e+A-1)/A-1)*A+r-e;return n[a]=Math.floor("SAME_LOWER"===i?(t+1)/2:t/2),n[s]=t-n[a],Math.floor((e+t-r)/A+1)}default:throw new Error("Unsupported AutoPad type")}}},vA=class{static getShapeOfGemmResult(e,A,t,r,n){if(2!==e.length||2!==t.length)throw new Error("shape need to be of size 2");let a,s,i;A?(a=e[1],s=e[0]):(a=e[0],s=e[1]);let o=-1;if(r?(i=t[0],o=1):(i=t[1],o=0),t[o]!==s)throw new Error("dimension mismatch");if(a<=0||i<=0||s<=0)throw new Error("invalid shape specified");if(n&&!kA.isValidBroadcast(n,[a,i]))throw new Error("gemm: invalid bias shape for broadcast");return[a,i,s]}},yA=-34028234663852886e22,EA=34028234663852886e22})),gl=L((()=>{rl(),cl(),MA=64,GA=(e,A)=>{if(3===A)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(e)){case 10:return A>1?`vec${A}<f16>`:"f16";case 1:return A>1?`vec${A}<f32>`:"f32";case 6:return A>1?`vec${A}<i32>`:"i32";case 12:return A>1?`vec${A}<u32>`:"u32";case 7:if(A>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","i32"];case 13:if(A>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","u32"];case 9:if(4!==A)throw new Error("bool must be vec4");return["u32","vec4<bool>"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${e}`)}},DA=(e,A=1)=>{let t=GA(e,A);return"string"==typeof t?t:t[0]},QA=(e,A=1)=>{let t=GA(e,A);return"string"==typeof t?t:t[1]},TA=(...e)=>{let A=[];return e.forEach((e=>{0!==e.length&&A.push({type:12,data:e},{type:12,data:xA.computeStrides(e)})})),A},PA=e=>e%4==0?4:e%2==0?2:1,zA=(e="f32",A,t="0")=>A&&1!==A?`vec${A}<${e}>(${t})`:`${e}(${t})`,FA=(e,A,t)=>"f32"===e?t:1===A?`f32(${t})`:`vec${A}<f32>(${t})`,SA=(e,A)=>4===A?`(${e}.x + ${e}.y + ${e}.z + ${e}.w)`:2===A?`(${e}.x + ${e}.y)`:3===A?`(${e}.x + ${e}.y + ${e}.z)`:e,NA=(e,A,t,r)=>e.startsWith("uniforms.")&&t>4?"string"==typeof A?"f16"===r?`${e}[(${A}) / 8][(${A}) % 8 / 4][(${A}) % 8 % 4]`:`${e}[(${A}) / 4][(${A}) % 4]`:"f16"===r?`${e}[${Math.floor(A/8)}][${Math.floor(A%8/4)}][${A%8%4}]`:`${e}[${Math.floor(A/4)}][${A%4}]`:t>1?`${e}[${A}]`:e,OA=(e,A,t,r,n)=>{let a="number"==typeof t,s=a?t:t.length,i=[...new Array(s).keys()],o=s<2?"u32":s<=4?`vec${s}<u32>`:`array<u32, ${s}>`,l=GA(A,n),c="string"==typeof l?l:l[1],g="string"==typeof l?l:l[0],u={indices:o,value:c,storage:g,tensor:A},d=e=>"string"==typeof e?e:`${e}u`,f={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},p=a?"uniforms.":"",h=`${p}${e}_shape`,m=`${p}${e}_strides`,C="";for(let e=0;e<s-1;e++)C+=`\n let dim${e} = current / ${NA(m,e,s)};\n let rest${e} = current % ${NA(m,e,s)};\n indices[${e}] = dim${e};\n current = rest${e};\n `;C+=`indices[${s-1}] = current;`;let b=s<2?"":`\n fn o2i_${e}(offset: u32) -> ${u.indices} {\n var indices: ${u.indices};\n var current = offset;\n ${C}\n return indices;\n }`,I=[];if(s>=2)for(let e=s-1;e>=0;e--)I.push(`${NA(m,e,s)} * (indices[${e}])`);let w=s<2?"":`\n fn i2o_${e}(indices: ${u.indices}) -> u32 {\n return ${I.join("+")};\n }`,k=(...e)=>0===s?"0u":`${u.indices}(${e.map(d).join(",")})`,x=(e,A)=>s<2?`${e}`:`${NA(e,A,s)}`,B={},v=(A,t)=>(()=>{if(u.storage===u.value)return`${e}[${A}]=${t};`;if("vec2<u32>"===u.storage&&"i32"===u.value)return`${e}[${A}]=vec2<u32>(u32(${t}), select(0u, 0xFFFFFFFFu, ${t} < 0));`;if("vec2<u32>"===u.storage&&"u32"===u.value)return`${e}[${A}]=vec2<u32>(u32(${t}), 0u);`;if("u32"===u.storage&&"vec4<bool>"===u.value)return`${e}[${A}]=dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(${t}));`;throw new Error(`not supported combination of storage type ${u.storage} and value type ${u.value} yet`)})(),y=A=>(()=>{if(u.storage===u.value)return`${e}[${A}]`;if("vec2<u32>"===u.storage&&"i32"===u.value)return`i32(${e}[${A}].x)`;if("vec2<u32>"===u.storage&&"u32"===u.value)return`u32(${e}[${A}].x)`;if("u32"===u.storage&&"vec4<bool>"===u.value)return`vec4<bool>(bool(${e}[${A}] & 0xFFu), bool(${e}[${A}] & 0xFF00u), bool(${e}[${A}] & 0xFF0000u), bool(${e}[${A}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${u.storage} and value type ${u.value} yet`)})(),E=s<2?"":`\n fn get_${e}ByIndices(indices: ${u.indices}) -> ${c} {\n return ${y(`i2o_${e}(indices)`)};\n }`,M=s<2?"":(()=>{let A=i.map((e=>`d${e}: u32`)).join(", "),t=i.map((e=>`d${e}`)).join(", ");return`\n fn get_${e}(${A}) -> ${c} {\n return get_${e}ByIndices(${k(t)});\n }`})(),G=s<2?"":`\n fn set_${e}ByIndices(indices: ${u.indices}, value: ${c}) {\n ${v(`i2o_${e}(indices)`,"value")}\n }`,D=s<2?"":(()=>{let A=i.map((e=>`d${e}: u32`)).join(", "),t=i.map((e=>`d${e}`)).join(", ");return`\n fn set_${e}(${A}, value: ${c}) {\n set_${e}ByIndices(${k(t)}, value);\n }`})();return{impl:()=>{let e=[],A=!1;return f.offsetToIndices&&(e.push(b),A=!0),f.indicesToOffset&&(e.push(w),A=!0),f.broadcastedIndicesToOffset&&(Object.values(B).forEach((A=>e.push(A))),A=!0),f.set&&(e.push(D),A=!0),f.setByIndices&&(e.push(G),A=!0),f.get&&(e.push(M),A=!0),f.getByIndices&&(e.push(E),A=!0),!a&&A&&e.unshift(`const ${h} = ${u.indices}(${t.join(",")});`,`const ${m} = ${u.indices}(${xA.computeStrides(t).join(",")});`),e.join("\n")},type:u,offsetToIndices:A=>(f.offsetToIndices=!0,s<2?A:`o2i_${e}(${A})`),indicesToOffset:A=>(f.indicesToOffset=!0,s<2?A:`i2o_${e}(${A})`),broadcastedIndicesToOffset:(A,t)=>{f.broadcastedIndicesToOffset=!0;let r=`${t.name}broadcastedIndicesTo${e}Offset`;if(r in B)return`${r}(${A})`;let n=[];for(let e=s-1;e>=0;e--){let A=t.indicesGet("outputIndices",e+t.rank-s);n.push(`${x(m,e)} * (${A} % ${x(h,e)})`)}return B[r]=`fn ${r}(outputIndices: ${t.type.indices}) -> u32 {\n return ${n.length>0?n.join("+"):"0u"};\n }`,`${r}(${A})`},indices:k,indicesGet:x,indicesSet:(e,A,t)=>s<2?`${e}=${t};`:`${NA(e,A,s)}=${t};`,set:(...A)=>{if(A.length!==s+1)throw new Error(`indices length must be ${s}`);let t=A[s];if("string"!=typeof t)throw new Error("value must be string");let r=A.slice(0,s).map(d).join(",");return 0===s?v("0u",t):1===s?v(r[0],t):(f.set=!0,f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}(${r}, ${t})`)},setByOffset:v,setByIndices:(A,t)=>s<2?v(A,t):(f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}ByIndices(${A}, ${t});`),get:(...A)=>{if(A.length!==s)throw new Error(`indices length must be ${s}`);let t=A.map(d).join(",");return 0===s?y("0u"):1===s?y(t[0]):(f.get=!0,f.getByIndices=!0,f.indicesToOffset=!0,`get_${e}(${t})`)},getByOffset:y,getByIndices:A=>s<2?y(A):(f.getByIndices=!0,f.indicesToOffset=!0,`get_${e}ByIndices(${A})`),usage:r,name:e,strides:m,shape:h,rank:s}},LA=(e,A,t,r=1)=>OA(e,A,t,"input",r),YA=(e,A,t,r=1)=>OA(e,A,t,"output",r),HA=(e,A,t)=>OA(e,A,t,"atomicOutput",1),RA=(e,A,t,r=1)=>OA(e,A,t,"internal",r),WA=class{constructor(e,A){this.normalizedDispatchGroup=e,this.limits=A,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(e){return`if (global_idx >= ${"number"==typeof e?`${e}u`:e}) { return; }`}mainStart(e=MA){let A="number"==typeof e?e:e[0],t="number"==typeof e?1:e[1],r="number"==typeof e?1:e[2];if(A>this.limits.maxComputeWorkgroupSizeX||t>this.limits.maxComputeWorkgroupSizeY||r>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${A}, ${t}, ${r}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(A*t*r>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${A}, ${t}, ${r}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let n=1===this.normalizedDispatchGroup[1]&&1===this.normalizedDispatchGroup[2];return`@compute @workgroup_size(${A}, ${t}, ${r})\n fn main(${n?"@builtin(global_invocation_id) global_id : vec3<u32>,\n @builtin(workgroup_id) workgroup_id : vec3<u32>,\n @builtin(local_invocation_index) local_idx : u32,\n @builtin(local_invocation_id) local_id : vec3<u32>":"@builtin(global_invocation_id) global_id : vec3<u32>,\n @builtin(local_invocation_id) local_id : vec3<u32>,\n @builtin(local_invocation_index) local_idx : u32,\n @builtin(workgroup_id) workgroup_id : vec3<u32>,\n @builtin(num_workgroups) num_workgroups : vec3<u32>"}) {\n ${n?"let global_idx = global_id.x;\n let workgroup_index = workgroup_id.x;":`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] +\n workgroup_id.y * num_workgroups[0] + workgroup_id.x;\n let global_idx = workgroup_index * ${A*t*r}u + local_idx;`}\n `}appendVariableUniforms(e){0!==e.rank&&(e.shape.startsWith("uniforms.")&&this.uniforms.push({name:e.shape.replace("uniforms.",""),type:"u32",length:e.rank}),e.strides.startsWith("uniforms.")&&this.uniforms.push({name:e.strides.replace("uniforms.",""),type:"u32",length:e.rank}))}declareVariable(e,A){if("internal"===e.usage)throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(e),this.appendVariableUniforms(e);let t="input"===e.usage?"read":"read_write",r="atomicOutput"===e.usage?"atomic<i32>":e.type.storage;return`@group(0) @binding(${A}) var<storage, ${t}> ${e.name}: array<${r}>;`}declareVariables(...e){return e.map((e=>this.declareVariable(e,this.variableIndex++))).join("\n")}registerInternalVariable(e){if("internal"!==e.usage)throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(e),this.appendVariableUniforms(e)}registerInternalVariables(...e){return e.forEach((e=>this.registerInternalVariable(e))),this}registerUniform(e,A,t=1){return this.uniforms.push({name:e,type:A,length:t}),this}registerUniforms(e){return this.uniforms=this.uniforms.concat(e),this}uniformDeclaration(){if(0===this.uniforms.length)return"";let e=[];for(let{name:A,type:t,length:r}of this.uniforms)if(r&&r>4)"f16"===t?e.push(`@align(16) ${A}:array<mat2x4<${t}>, ${Math.ceil(r/8)}>`):e.push(`${A}:array<vec4<${t}>, ${Math.ceil(r/4)}>`);else{let n=null==r||1===r?t:`vec${r}<${t}>`;e.push(`${A}:${n}`)}return`\n struct Uniforms { ${e.join(", ")} };\n @group(0) @binding(${this.variableIndex}) var<uniform> uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map((e=>e.impl())).join("\n")+this.internalVariables.map((e=>e.impl())).join("\n")}get variablesInfo(){if(0===this.uniforms.length)return;let e=e=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(e)];return this.uniforms.map((A=>[e(A.type),A.length??1]))}},VA=(e,A)=>new WA(e,A)})),ul=L((()=>{rl(),cl(),ll(),gl(),jA=(e,A)=>{if(!e||1!==e.length)throw new Error("Transpose requires 1 input.");if(0!==A.length&&A.length!==e[0].dims.length)throw new Error(`perm size ${A.length} does not match input rank ${e[0].dims.length}`)},UA=(e,A)=>0!==A.length?A:[...new Array(e).keys()].reverse(),KA=(e,A)=>xA.sortBasedOnPerm(e,UA(e.length,A)),ZA=(e,A,t,r)=>{let n=`fn perm(i: ${r.type.indices}) -> ${t.type.indices} {\n var a: ${t.type.indices};`;for(let t=0;t<A;++t)n+=`a[${e[t]}]=i[${t}];`;return n+"return a;}"},XA=(e,A)=>{let t=[],r=[];for(let n=0;n<e.length;++n)1!==e[n]&&t.push(e[n]),1!==e[A[n]]&&r.push(A[n]);return{newShape:t,newPerm:r}},qA=(e,A)=>{let t=0;for(let r=0;r<e.length;++r)if(1!==A[e[r]]){if(e[r]<t)return!1;t=e[r]}return!0},JA=(e,A)=>{let t,r=e.dataType,n=e.dims.length,a=UA(n,A),s=KA(e.dims,a),i=e.dims,o=s;if(n<2||qA(a,e.dims))return t=e=>{let A=LA("input",r,i,4),t=YA("output",r,o,4);return`\n ${e.registerUniform("output_size","u32").declareVariables(A,t)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n output[global_idx] = input[global_idx];\n }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let A=xA.size(s);return{outputs:[{dims:s,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(A/64/4)},programUniforms:[{type:12,data:Math.ceil(A/4)}]}},getShaderSource:t};let{newShape:l,newPerm:c}=XA(e.dims,a),g=xA.areEqual(c,[2,3,1]),u=xA.areEqual(c,[3,1,2]);if(2===l.length||g||u){i=g?[l[0],l[1]*l[2]]:u?[l[0]*l[1],l[2]]:l,o=[i[1],i[0]];let A=16;return t=e=>{let t=LA("a",r,i.length),n=YA("output",r,o.length);return`\n ${e.registerUniform("output_size","u32").declareVariables(t,n)}\n var<workgroup> tile : array<array<${n.type.value}, ${A+1}>, ${A}>;\n ${e.mainStart([A,A,1])}\n let stride = (uniforms.output_shape[1] - 1) / ${A} + 1;\n let workgroup_id_x = workgroup_index % stride;\n let workgroup_id_y = workgroup_index / stride;\n let input_col = workgroup_id_y * ${A}u + local_id.x;\n let input_row = workgroup_id_x * ${A}u + local_id.y;\n if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) {\n tile[local_id.y][local_id.x] = ${t.getByIndices(`${t.type.indices}(input_row, input_col)`)};\n }\n workgroupBarrier();\n\n let output_col = workgroup_id_x * ${A}u + local_id.x;\n let output_row = workgroup_id_y * ${A}u + local_id.y;\n if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) {\n ${n.setByIndices(`${n.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")}\n }\n }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let t=xA.size(s);return{outputs:[{dims:s,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(o[1]/A),y:Math.ceil(o[0]/A)},programUniforms:[{type:12,data:t},...TA(i,o)]}},getShaderSource:t}}return t=e=>{let A=LA("a",r,i.length),t=YA("output",r,o.length);return`\n ${e.registerUniform("output_size","u32").declareVariables(A,t)}\n\n ${ZA(a,n,A,t)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n\n let indices = ${t.offsetToIndices("global_idx")};\n let aIndices = perm(indices);\n\n ${t.setByOffset("global_idx",A.getByIndices("aIndices"))}\n }`},{name:"Transpose",shaderCache:{hint:`${A}`,inputDependencies:["rank"]},getRunData:()=>{let A=xA.size(s);return{outputs:[{dims:s,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(A/64)},programUniforms:[{type:12,data:A},...TA(i,o)]}},getShaderSource:t}},_A=(e,A)=>{jA(e.inputs,A.perm),e.compute(JA(e.inputs[0],A.perm))},$A=e=>IA({perm:e.perm})})),dl=L((()=>{rl(),cl(),gl(),fl(),ul(),et={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"},At={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"},tt={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},rt={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},nt=(e,A)=>{let t=[];for(let r=A-e;r<A;++r)t.push(r);return t},at=(e,A)=>{let t=[],r=e.length;for(let n=0;n<r;n++)-1===A.indexOf(n)&&t.push(e[n]);let n=A.map((A=>e[A]));return[t,n]},st=(e,A)=>{let t=e.length+A.length,r=[],n=0;for(let a=0;a<t;a++)-1===A.indexOf(a)?r.push(e[n++]):r.push(1);return r},it=(e,A)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==A-1-t)return!1;return!0},ot=(e,A)=>{let t=[];if(!it(e,A)){for(let r=0;r<A;++r)-1===e.indexOf(r)&&t.push(r);e.forEach((e=>t.push(e)))}return t},lt=(e,A,t,r,n,a,s)=>{let i=t[0].dims,o=xA.size(a),l=xA.size(s),c=LA("_A",t[0].dataType,i),g=YA("output",n,a),u=64;1===o&&(u=256);let d=`\n var<workgroup> aBestValues : array<f32, ${u}>;\n `;return{name:e,shaderCache:{hint:`${A};${u}`,inputDependencies:["type"]},getShaderSource:e=>`\n ${e.registerUniform("reduceSize","u32").declareVariables(c,g)}\n ${d}\n fn DIV_CEIL(a : u32, b : u32) -> u32 {\n return ((a - 1u) / b + 1u);\n }\n ${e.mainStart(u)}\n\n let outputIndex = global_idx / ${u};\n let offset = outputIndex * uniforms.reduceSize;\n\n var bestValue = f32(${tt[r]});\n let Length = uniforms.reduceSize;\n for (var k = local_idx; k < Length; k = k + ${u}) {\n let candidate = f32(${c.getByOffset("offset + k")});\n bestValue = ${et[r]};\n }\n aBestValues[local_idx] = bestValue;\n workgroupBarrier();\n\n var reduceSize = min(Length, ${u}u);\n for (var currentSize = reduceSize / 2u; reduceSize > 1u;\n currentSize = reduceSize / 2u) {\n let interval = DIV_CEIL(reduceSize, 2u);\n if (local_idx < currentSize) {\n let candidate = aBestValues[local_idx + interval];\n bestValue = ${At[r]};\n aBestValues[local_idx] = bestValue;\n }\n reduceSize = interval;\n workgroupBarrier();\n }\n\n if (local_idx == 0u) {\n ${g.setByOffset("outputIndex",""+("mean"===r?`${g.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${g.type.storage}(${rt[r]})`))};\n }\n }`,getRunData:()=>({outputs:[{dims:a,dataType:n}],dispatchGroup:{x:o},programUniforms:[{type:12,data:l}]})}},ct=(e,A,t,r)=>{let n=1===e.inputs.length?t:Bt(e.inputs,t),a=n.axes;0===a.length&&!n.noopWithEmptyAxes&&(a=e.inputs[0].dims.map(((e,A)=>A)));let s=xA.normalizeAxes(a,e.inputs[0].dims.length),i=s,o=e.inputs[0],l=ot(i,e.inputs[0].dims.length);l.length>0&&(o=e.compute(JA(e.inputs[0],l),{inputs:[0],outputs:[-1]})[0],i=nt(i.length,o.dims.length));let[c,g]=at(o.dims,i),u=c;n.keepDims&&(u=st(c,s)),e.compute(lt(A,n.cacheKey,[o],r,e.inputs[0].dataType,u,g),{inputs:[o]})},gt=(e,A)=>{ct(e,"ReduceMeanShared",A,"mean")},ut=(e,A)=>{ct(e,"ReduceL1Shared",A,"l1")},dt=(e,A)=>{ct(e,"ReduceL2Shared",A,"l2")},ft=(e,A)=>{ct(e,"ReduceLogSumExpShared",A,"logSumExp")},pt=(e,A)=>{ct(e,"ReduceMaxShared",A,"max")},ht=(e,A)=>{ct(e,"ReduceMinShared",A,"min")},mt=(e,A)=>{ct(e,"ReduceProdShared",A,"prod")},Ct=(e,A)=>{ct(e,"ReduceSumShared",A,"sum")},bt=(e,A)=>{ct(e,"ReduceSumSquareShared",A,"sumSquare")},It=(e,A)=>{ct(e,"ReduceLogSumShared",A,"logSum")}})),fl=L((()=>{rl(),cl(),ll(),gl(),dl(),wt=e=>{if(!e||0===e.length||e.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(2===e.length&&1!==e[1].dims.length)throw new Error("Invalid axes input dims.")},kt=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],xt=(e,A,t,r,n,a,s=!1,i=!1)=>{let o=[],l=t[0].dims,c=l.length,g=xA.normalizeAxes(n,c),u=!i&&0===g.length;l.forEach(((e,A)=>{u||g.indexOf(A)>=0?s&&o.push(1):o.push(e)}));let d=o.length,f=xA.size(o);return{name:e,shaderCache:A,getShaderSource:e=>{let A=[],n=LA("_A",t[0].dataType,c),i=YA("output",a,d),o=r(n,i,g),f=o[2];for(let e=0,t=0;e<c;e++)u||g.indexOf(e)>=0?(s&&t++,f=`for(var j${e}: u32 = 0; j${e} < ${l[e]}; j${e}++) {\n ${o[2].includes("last_index")?`let last_index = j${e};`:""}\n ${n.indicesSet("input_indices",e,`j${e}`)}\n ${f}\n }`):(A.push(`${n.indicesSet("input_indices",e,i.indicesGet("output_indices",t))};`),t++);return`\n\n ${e.registerUniform("output_size","u32").declareVariables(n,i)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n var input_indices: ${n.type.indices};\n let output_indices = ${i.offsetToIndices("global_idx")};\n\n ${A.join("\n")}\n ${o[0]} // init ops for reduce max/min\n ${o[1]}\n ${f}\n ${o[3]}\n ${4===o.length?i.setByOffset("global_idx","value"):o.slice(4).join("\n")}\n }`},getRunData:()=>({outputs:[{dims:o,dataType:a}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:[{type:12,data:f},...TA(l,o)]})}},Bt=(e,A)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach((e=>t.push(Number(e)))),IA({axes:t,keepDims:A.keepDims,noopWithEmptyAxes:A.noopWithEmptyAxes})},vt=(e,A,t,r)=>{let n=e.inputs,a=1===n.length?t:Bt(n,t);e.compute(xt(A,{hint:a.cacheKey,inputDependencies:["rank"]},[n[0]],a.noopWithEmptyAxes&&0===a.axes.length?kt:r,a.axes,n[0].dataType,a.keepDims,a.noopWithEmptyAxes),{inputs:[0]})},yt=(e,A)=>{wt(e.inputs),vt(e,"ReduceLogSum",A,((e,A)=>[`var value = ${A.type.storage}(0);`,"",`value += ${e.getByIndices("input_indices")};`,"value = log(value);"]))},Et=(e,A)=>{wt(e.inputs),vt(e,"ReduceL1",A,((e,A)=>[`var value = ${A.type.storage}(0);`,"",`value += abs(${e.getByIndices("input_indices")});`,""]))},Mt=(e,A)=>{wt(e.inputs),vt(e,"ReduceL2",A,((e,A)=>[`var t = ${A.type.value}(0); var value = ${A.type.value}(0);`,"",`t = ${e.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"]))},Gt=(e,A)=>{wt(e.inputs),vt(e,"ReduceLogSumExp",A,((e,A)=>[`var value = ${A.type.storage}(0);`,"",`value += exp(${e.getByIndices("input_indices")});`,"value = log(value);"]))},Dt=(e,A)=>{wt(e.inputs),vt(e,"ReduceMax",A,((e,A,t)=>{let r=[];for(let A=0;A<e.rank;A++)(t.indexOf(A)>=0||0===t.length)&&r.push(e.indicesSet("input_indices",A,0));return[`${r.join("\n")}`,`var value = ${e.getByIndices("input_indices")};`,`value = max(value, ${e.getByIndices("input_indices")});`,""]}))},Qt=(e,A)=>{wt(e.inputs),vt(e,"ReduceMean",A,((A,t,r)=>{let n=1;for(let t=0;t<A.rank;t++)(r.indexOf(t)>=0||0===r.length)&&(n*=e.inputs[0].dims[t]);return["var sum = f32(0);","",`sum += f32(${A.getByIndices("input_indices")});`,`let value = ${t.type.value}(sum / ${n});`]}))},Tt=(e,A)=>{wt(e.inputs),vt(e,"ReduceMin",A,((e,A,t)=>{let r=[];for(let A=0;A<e.rank;A++)(t.indexOf(A)>=0||0===t.length)&&r.push(`input_indices[${A}] = 0;`);return[`${r.join("\n")}`,`var value = ${e.getByIndices("input_indices")};`,`value = min(value, ${e.getByIndices("input_indices")});`,""]}))},Pt=(e,A)=>{wt(e.inputs),vt(e,"ReduceProd",A,((e,A)=>[`var value = ${A.type.storage}(1);`,"",`value *= ${e.getByIndices("input_indices")};`,""]))},zt=(e,A)=>{wt(e.inputs),vt(e,"ReduceSum",A,((e,A)=>[`var value = ${A.type.storage}(0);`,"",`value += ${e.getByIndices("input_indices")};`,""]))},Ft=(e,A)=>{wt(e.inputs),vt(e,"ReduceSumSquare",A,((e,A)=>[`var t = ${A.type.value}(0); var value = ${A.type.value}(0);`,"",`t = ${e.getByIndices("input_indices")}; value += t * t;`,""]))},St=(e,A,t)=>{if(0===A.length)return t;let r=1,n=1;for(let t=0;t<A.length;t++)-1===A.indexOf(t)?r*=e[t]:n*=e[t];return n<32&&r>1024},Nt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Qt(e,A):gt(e,A)},Ot=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Et(e,A):ut(e,A)},Lt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Mt(e,A):dt(e,A)},Yt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Gt(e,A):ft(e,A)},Ht=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Dt(e,A):pt(e,A)},Rt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Tt(e,A):ht(e,A)},Wt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Pt(e,A):mt(e,A)},Vt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?zt(e,A):Ct(e,A)},jt=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?Ft(e,A):bt(e,A)},Ut=(e,A)=>{St(e.inputs[0].dims,A.axes,A.noopWithEmptyAxes)?yt(e,A):It(e,A)}})),pl=L((()=>{rl(),ll(),fl(),Kt=e=>{if(!e||0===e.length||e.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(1!==e[0].dataType)throw new Error("Invalid input type.")},Zt=(e,A)=>{Kt(e.inputs);e.compute(xt("ArgMin",{hint:A.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],((e,t,r)=>{let n=[];for(let A=0;A<e.rank;A++)(r.indexOf(A)>=0||0===r.length)&&n.push(`input_indices[${A}] = 0;`);return[`${n.join("\n")}`,`var value = ${e.getByIndices("input_indices")};\nvar best_index : i32 = 0;`,`if (${e.getByIndices("input_indices")} ${A.selectLastIndex>0?"<=":"<"} value) {\n value = ${e.getByIndices("input_indices")};\n best_index = i32(last_index);\n }`,"",t.setByOffset("global_idx","best_index")]}),[A.axis],7,A.keepDims),{inputs:[0]})},Xt=(e,A)=>{Kt(e.inputs);e.compute(xt("argMax",{hint:A.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],((e,t,r)=>{let n=[];for(let A=0;A<e.rank;A++)(r.indexOf(A)>=0||0===r.length)&&n.push(`input_indices[${A}] = 0;`);return[`${n.join("\n")}`,`var value = ${e.getByIndices("input_indices")};\nvar best_index : i32 = 0;`,`if (${e.getByIndices("input_indices")} ${A.selectLastIndex>0?">=":">"} value) {\n value = ${e.getByIndices("input_indices")};\n best_index = i32(last_index);\n }`,"",t.setByOffset("global_idx","best_index")]}),[A.axis],7,A.keepDims),{inputs:[0]})},qt=e=>IA(e)})),hl=L((()=>{rl(),cl(),il(),gl(),Jt=(e,A)=>{let t=e[0],r=e[1],n=e[2],a=e[3],s=e[4],i=e[5];if(s&&i)throw new Error("Attention cannot have both past and attention_bias");if(3!==t.dims.length)throw new Error('Input "input" must have 3 dimensions');let o=t.dims[0],l=t.dims[1],c=t.dims[2];if(1!==n.dims.length)throw new Error('Input "bias" is expected to have 1 dimensions');if(2!==r.dims.length)throw new Error('Input "weights" is expected to have 2 dimensions');if(r.dims[0]!==c)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(n.dims[0]!==r.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let g=n.dims[0]/3,u=g,d=u;if(A.qkvHiddenSizes.length>0){if(3!==A.qkvHiddenSizes.length)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let e of A.qkvHiddenSizes)if(e%A.numHeads!=0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");g=A.qkvHiddenSizes[0],u=A.qkvHiddenSizes[1],d=A.qkvHiddenSizes[2]}let f=l;if(g!==u)throw new Error("qkv_hidden_sizes first element should be same as the second");if(n.dims[0]!==g+u+d)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let p=0;if(s){if(u!==d)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(5!==s.dims.length)throw new Error('Input "past" must have 5 dimensions');if(2!==s.dims[0])throw new Error('Input "past" first dimension must be 2');if(s.dims[1]!==o)throw new Error('Input "past" second dimension must be batch_size');if(s.dims[2]!==A.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(s.dims[4]!==u/A.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');A.pastPresentShareBuffer||(p=s.dims[3])}let h=f+p;if(a)throw new Error("Mask not supported");if(s)throw new Error("past is not supported");if(i){if(4!==i.dims.length)throw new Error('Input "attention_bias" must have 4 dimensions');if(i.dims[0]!==o||i.dims[1]!==A.numHeads||i.dims[2]!==l||i.dims[3]!==h)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:o,sequenceLength:l,pastSequenceLength:p,kvSequenceLength:f,totalSequenceLength:h,maxSequenceLength:-1,inputHiddenSize:c,hiddenSize:g,vHiddenSize:d,headSize:Math.floor(g/A.numHeads),vHeadSize:Math.floor(d/A.numHeads),numHeads:A.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:A.maskFilterValue,maskType:0,scale:A.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},_t=(e,A,t)=>A&&e?`\n let total_sequence_length_input = u32(${A.getByOffset("0")});\n let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length);\n let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input;\n let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input;\n total_sequence_length = u32(${e?.getByOffset("batchIdx")}) + 1;\n var past_sequence_length: u32 = 0;\n if (is_first_prompt == false) {\n past_sequence_length = total_sequence_length - sequence_length;\n }\n `:`\n ${t?"let past_sequence_length = uniforms.past_sequence_length":""};\n let present_sequence_length = total_sequence_length;\n `,$t=(e,A,t,r,n,a,s,i)=>{let o=PA(s?1:a),l=64,c=a/o;c<l&&(l=32);let g=Math.ceil(a/o/l),u=[{type:12,data:A},{type:12,data:t},{type:12,data:r},{type:12,data:n},{type:12,data:c},{type:12,data:g}],d=DA(e.dataType,o),f=QA(1,o),p=["type"];s&&p.push("type"),i&&p.push("type");return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${l};${d};${o}`,inputDependencies:p},getShaderSource:A=>{let t=YA("x",e.dataType,e.dims,o),r=[t],n=s?LA("seq_lens",s.dataType,s.dims):void 0;n&&r.push(n);let a=i?LA("total_sequence_length_input",i.dataType,i.dims):void 0;a&&r.push(a);let c=QA(e.dataType);return`\n var<workgroup> thread_max: array<f32, ${l}>;\n var<workgroup> thread_sum: array<f32, ${l}>;\n ${A.registerUniforms([{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"}]).declareVariables(...r)}\n ${A.mainStart([l,1,1])}\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let sequence_length = uniforms.sequence_length;\n var total_sequence_length = uniforms.total_sequence_length;\n ${_t(n,a,!1)}\n let local_offset = local_idx * uniforms.elements_per_thread;\n let offset = (global_idx / ${l}) * uniforms.total_sequence_length + local_offset;\n let seq_causal_length = ${s?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"};\n var thread_max_vector = ${f}(-3.402823e+38f);\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n thread_max_vector = max(${f}(x[offset + i]), thread_max_vector);\n }\n thread_max[local_idx] = ${(()=>{switch(o){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: ${o}`)}})()};\n workgroupBarrier();\n\n var max_value = f32(-3.402823e+38f);\n for (var i = 0u; i < ${l}; i++) {\n max_value = max(thread_max[i], max_value);\n }\n\n var sum_vector = ${f}(0);\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n sum_vector += exp(${f}(x[offset + i]) - max_value);\n }\n thread_sum[local_idx] = ${(()=>{switch(o){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: ${o}`)}})()};\n workgroupBarrier();\n\n var sum: f32 = 0;\n for (var i = 0u; i < ${l}; i++) {\n sum += thread_sum[i];\n }\n\n if (sum == 0) {\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n x[offset + i] = ${t.type.value}(${c}(1.0) / ${c}(seq_causal_length));\n }\n } else {\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n var f32input = ${f}(x[offset + i]);\n x[offset + i] = ${t.type.value}(exp(f32input - max_value) / sum);\n }\n }\n ${s?`\n for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) {\n x[offset + total_seq_id] = ${t.type.value}(${c}(0));\n }`:""};\n }`},getRunData:()=>({outputs:[],dispatchGroup:{x:Math.ceil(a/l),y:n,z:A*t},programUniforms:u})}},er=(e,A,t,r,n,a,s,i,o)=>{let l=s+a.kvSequenceLength,c=[a.batchSize,a.numHeads,a.sequenceLength,l],g=e>1&&r,u=a.kvNumHeads?a.kvNumHeads:a.numHeads,d=g?[a.batchSize,u,l,a.headSize]:void 0,f=a.nReps?a.nReps:1,p=0===a.scale?1/Math.sqrt(a.headSize):a.scale,h=PA(a.headSize),m=a.headSize/h,C=12,b={x:Math.ceil(l/C),y:Math.ceil(a.sequenceLength/C),z:a.batchSize*a.numHeads},I=[{type:12,data:a.sequenceLength},{type:12,data:m},{type:12,data:l},{type:12,data:a.numHeads},{type:12,data:a.headSize},{type:1,data:p},{type:12,data:s},{type:12,data:a.kvSequenceLength},{type:12,data:f}],w=g&&r&&xA.size(r.dims)>0,k=["type","type"];w&&k.push("type"),n&&k.push("type"),i&&k.push("type"),o&&k.push("type");let x=[{dims:c,dataType:A.dataType,gpuDataType:0}];g&&x.push({dims:d,dataType:A.dataType,gpuDataType:0});return{name:"AttentionProbs",shaderCache:{hint:`${h};${void 0!==n};${void 0!==r};${e}`,inputDependencies:k},getRunData:()=>({outputs:x,dispatchGroup:b,programUniforms:I}),getShaderSource:e=>{let a=LA("q",A.dataType,A.dims,h),s=[a,LA("key",t.dataType,t.dims,h)];if(w){let e=LA("past_key",r.dataType,r.dims,h);s.push(e)}n&&s.push(LA("attention_bias",n.dataType,n.dims));let l=i?LA("seq_lens",i.dataType,i.dims):void 0;l&&s.push(l);let u=o?LA("total_sequence_length_input",o.dataType,o.dims):void 0;u&&s.push(u);let p=YA("output",A.dataType,c),m=[p];g&&m.push(YA("present_key",A.dataType,d,h));let b=QA(1,h);return`\n const TILE_SIZE = 12u;\n\n var<workgroup> tileQ: array<${a.type.storage}, 144>;\n var<workgroup> tileK: array<${a.type.storage}, 144>;\n ${e.registerUniforms([{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"}]).declareVariables(...s,...m)}\n ${e.mainStart([C,C,1])}\n // x holds the N and y holds the M\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let kvHeadIdx = ${1===f?"headIdx":"headIdx / uniforms.n_reps"};\n let kv_num_heads = ${1===f?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"};\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let m = workgroup_id.y * TILE_SIZE;\n let n = workgroup_id.x * TILE_SIZE;\n let sequence_length = uniforms.M;\n var total_sequence_length = uniforms.N;\n ${_t(l,u,!0)}\n let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx;\n let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K;\n ${w&&g?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""};\n let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K;\n ${g?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""}\n var value = ${b}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) {\n tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x];\n }\n if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) {\n var idx = TILE_SIZE * local_id.y + local_id.x;\n ${w&&g?"\n if (n + local_id.y < past_sequence_length) {\n tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x];\n } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) {\n tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x];\n }":"\n if (n + local_id.y < uniforms.kv_sequence_length) {\n tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x];\n }"}\n ${g?"if (n + local_id.y < present_sequence_length) {\n present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx];\n }":""}\n }\n workgroupBarrier();\n\n for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) {\n value += ${b}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]);\n }\n\n workgroupBarrier();\n }\n\n if (global_id.y < uniforms.M && global_id.x < total_sequence_length) {\n let headOffset = workgroup_id.z * uniforms.M * uniforms.N;\n let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x;\n var sum: f32 = ${(()=>{switch(h){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: ${h}`)}})()};\n output[outputIdx] = ${p.type.value} (sum * uniforms.alpha) + ${n?"attention_bias[outputIdx]":"0.0"};\n }\n }`}}},Ar=(e,A,t,r,n,a,s=void 0,i=void 0)=>{let o=a+n.kvSequenceLength,l=n.nReps?n.nReps:1,c=n.vHiddenSize*l,g=e>1&&r,u=n.kvNumHeads?n.kvNumHeads:n.numHeads,d=g?[n.batchSize,u,o,n.headSize]:void 0,f=[n.batchSize,n.sequenceLength,c],p=12,h={x:Math.ceil(n.vHeadSize/p),y:Math.ceil(n.sequenceLength/p),z:n.batchSize*n.numHeads},m=[{type:12,data:n.sequenceLength},{type:12,data:o},{type:12,data:n.vHeadSize},{type:12,data:n.numHeads},{type:12,data:n.headSize},{type:12,data:c},{type:12,data:a},{type:12,data:n.kvSequenceLength},{type:12,data:l}],C=g&&r&&xA.size(r.dims)>0,b=["type","type"];C&&b.push("type"),s&&b.push("type"),i&&b.push("type");let I=[{dims:f,dataType:A.dataType,gpuDataType:0}];g&&I.push({dims:d,dataType:A.dataType,gpuDataType:0});return{name:"AttentionScore",shaderCache:{hint:`${void 0!==r};${e}`,inputDependencies:b},getRunData:()=>({outputs:I,dispatchGroup:h,programUniforms:m}),getShaderSource:e=>{let n=LA("probs",A.dataType,A.dims),a=[n,LA("v",t.dataType,t.dims)];C&&a.push(LA("past_value",r.dataType,r.dims));let o=s?LA("seq_lens",s.dataType,s.dims):void 0;s&&a.push(o);let c=i?LA("total_sequence_length_input",i.dataType,i.dims):void 0;i&&a.push(c);let u=[YA("output",A.dataType,f)];g&&u.push(YA("present_value",A.dataType,d));return`\n const TILE_SIZE = 12u;\n var<workgroup> tileQ: array<${n.type.value}, 144>;\n var<workgroup> tileV: array<${n.type.value}, 144>;\n ${e.registerUniforms([{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"}]).declareVariables(...a,...u)}\n ${e.mainStart([p,p,1])}\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let kvHeadIdx = ${1===l?"headIdx":"headIdx / uniforms.n_reps"};\n let kv_num_heads = ${1===l?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"};\n let m = global_id.y;\n let n = global_id.x;\n let sequence_length = uniforms.M;\n var total_sequence_length = uniforms.K;\n ${_t(o,c,!0)}\n let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K;\n let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch\n ${C&&g?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""};\n let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n;\n ${g?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""}\n var value = ${n.type.storage}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (m < uniforms.M && w + local_id.x < uniforms.K) {\n tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x];\n }\n if (n < uniforms.N && w + local_id.y < uniforms.K) {\n var idx = TILE_SIZE * local_id.y + local_id.x;\n ${C&&g?"\n if (w + local_id.y < past_sequence_length) {\n tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N];\n } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) {\n tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N];\n }\n ":"\n if (w + local_id.y < uniforms.kv_sequence_length) {\n tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N];\n }"}\n ${g?"\n if (w + local_id.y < present_sequence_length) {\n present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx];\n }":""}\n }\n workgroupBarrier();\n for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) {\n value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x];\n }\n workgroupBarrier();\n }\n\n // we need to transpose output from BNSH_v to BSND_v\n if (m < uniforms.M && n < uniforms.N) {\n let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size\n + headIdx * uniforms.N + n;\n output[outputIdx] = value;\n }\n }`}}},tr=(e,A,t,r,n,a,s,i,o,l,c=void 0,g=void 0)=>{let u=Math.min(e.outputCount,1+(s?1:0)+(i?1:0)),d=u>1?l.pastSequenceLength:0,f=d+l.kvSequenceLength,p=o&&xA.size(o.dims)>0?o:void 0,h=[A,t];u>1&&s&&xA.size(s.dims)>0&&h.push(s),p&&h.push(p),c&&h.push(c),g&&h.push(g);let m=e.compute(er(u,A,t,s,p,l,d,c,g),{inputs:h,outputs:u>1?[-1,1]:[-1]})[0];e.compute($t(m,l.batchSize,l.numHeads,d,l.sequenceLength,f,c,g),{inputs:c&&g?[m,c,g]:[m],outputs:[]});let C=[m,r];u>1&&i&&xA.size(i.dims)>0&&C.push(i),c&&C.push(c),g&&C.push(g),e.compute(Ar(u,m,r,i,l,d,c,g),{inputs:C,outputs:u>1?[0,2]:[0]})},rr=(e,A)=>{let t=[A.batchSize,A.numHeads,A.sequenceLength,A.headSize],r=A.sequenceLength,n=A.inputHiddenSize,a=A.headSize,s=12,i={x:Math.ceil(A.headSize/s),y:Math.ceil(A.sequenceLength/s),z:A.batchSize*A.numHeads},o=[e.inputs[0],e.inputs[1],e.inputs[2]],l=[{type:12,data:r},{type:12,data:n},{type:12,data:a},{type:12,data:A.numHeads},{type:12,data:A.headSize},{type:12,data:A.hiddenSize},{type:12,data:A.hiddenSize+A.hiddenSize+A.vHiddenSize}];return e.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:i,programUniforms:l}),getShaderSource:e=>{let A=YA("output_q",o[0].dataType,t),r=YA("output_k",o[0].dataType,t),n=YA("output_v",o[0].dataType,t),a=LA("input",o[0].dataType,o[0].dims),i=LA("weight",o[1].dataType,o[1].dims),l=LA("bias",o[2].dataType,o[2].dims),c=a.type.storage;return`\n const TILE_SIZE = 12u;\n var<workgroup> tileInput: array<${c}, 144>;\n var<workgroup> tileWeightQ: array<${c}, 144>;\n var<workgroup> tileWeightK: array<${c}, 144>;\n var<workgroup> tileWeightV: array<${c}, 144>;\n ${e.registerUniforms([{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"}]).declareVariables(a,i,l,A,r,n)}\n ${e.mainStart([s,s,1])}\n let batchIndex = workgroup_id.z / uniforms.num_heads;\n let headNumber = workgroup_id.z % uniforms.num_heads;\n let m = global_id.y;\n let n = global_id.x;\n\n let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K;\n let biasOffsetQ = headNumber * uniforms.head_size;\n let biasOffsetK = uniforms.hidden_size + biasOffsetQ;\n let biasOffsetV = uniforms.hidden_size + biasOffsetK;\n\n var valueQ = ${c}(0);\n var valueK = ${c}(0);\n var valueV = ${c}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (m < uniforms.M && w + local_id.x < uniforms.K) {\n tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x];\n }\n if (n < uniforms.N && w + local_id.y < uniforms.K) {\n let offset = n + (w + local_id.y) * uniforms.ldb;\n tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset];\n tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset];\n tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset];\n }\n workgroupBarrier();\n for (var k: u32 = 0u; k<TILE_SIZE && w+k < uniforms.K; k++) {\n let inputTileOffset = TILE_SIZE * local_id.y + k;\n let weightTileOffset = TILE_SIZE * k + local_id.x;\n valueQ += tileInput[inputTileOffset] * tileWeightQ[weightTileOffset];\n valueK += tileInput[inputTileOffset] * tileWeightK[weightTileOffset];\n valueV += tileInput[inputTileOffset] * tileWeightV[weightTileOffset];\n }\n\n workgroupBarrier();\n }\n\n let headOffset = (m * uniforms.N + n) % uniforms.head_size;\n valueQ += bias[headOffset + biasOffsetQ];\n valueK += bias[headOffset + biasOffsetK];\n valueV += bias[headOffset + biasOffsetV];\n\n let offset = workgroup_id.z * uniforms.M * uniforms.N;\n if (m < uniforms.M && n < uniforms.N) {\n let outputIdx = offset + m * uniforms.N + n;\n output_q[outputIdx] = valueQ;\n output_k[outputIdx] = valueK;\n output_v[outputIdx] = valueV;\n }\n }`}},{inputs:o,outputs:[-1,-1,-1]})},nr=(e,A)=>{let t=Jt(e.inputs,A),[r,n,a]=rr(e,t);return tr(e,r,n,a,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}})),ml=L((()=>{ie(),rl(),cl(),ll(),gl(),ar=(e,A)=>{if(!e||5!==e.length)throw new Error("BatchNormalization requires 5 inputs");let t=(e,A,t)=>{let r=A.length;if(r!==e.length)throw new Error(`${t}: num dimensions != ${r}`);A.forEach(((A,r)=>{if(A!==e[r])throw new Error(`${t}: dim[${r}] do not match`)}))};if(e[0].dims.length>1){let r="NHWC"===A.format?A.spatial?e[0].dims.slice(-1):e[0].dims.slice(-1).concat(e[0].dims.slice(1,e[0].dims.length-1)):e[0].dims.slice(1,A.spatial?2:void 0);t(e[1].dims,r,"Invalid input scale"),t(e[2].dims,r,"Invalid input B"),t(e[3].dims,r,"Invalid input mean"),t(e[4].dims,r,"Invalid input var")}else t(e[1].dims,[1],"Invalid input scale"),t(e[2].dims,[1],"Invalid input B"),t(e[3].dims,[1],"Invalid input mean"),t(e[4].dims,[1],"Invalid input var")},sr=(e,A)=>{let{epsilon:t,spatial:r,format:n}=A,a=e[0].dims,s=r?PA(a[a.length-1]):1,i="NHWC"===n&&a.length>1?s:1,o=xA.size(a)/s,l=r,c=l?a.length:a,g=LA("x",e[0].dataType,e[0].dims,s),u=LA("scale",e[1].dataType,e[1].dims,i),d=LA("bias",e[2].dataType,e[2].dims,i),f=LA("inputMean",e[3].dataType,e[3].dims,i),p=LA("inputVar",e[4].dataType,e[4].dims,i),h=YA("y",e[0].dataType,c,s);return{name:"BatchNormalization",shaderCache:{hint:`${A.epsilon}_${A.format}_${r}_${s}`,inputDependencies:l?["rank","type","type","type","type"]:void 0},getShaderSource:e=>`\n const epsilon = ${t};\n ${e.registerUniform("outputSize","u32").declareVariables(g,u,d,f,p,h)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n var outputIndices = ${h.offsetToIndices(`global_idx * ${s}`)};\n ${(()=>{let e="";if(r)e=`let cOffset = ${1===a.length?"0u":"NHWC"===n?`outputIndices[${a.length-1}] / ${s}`:"outputIndices[1]"};`;else if("NCHW"===n)e=`\n ${h.indicesSet("outputIndices","0","0")}\n let cOffset = ${h.indicesToOffset("outputIndices")};`;else{e=`var cIndices = ${u.type.indices}(0);\n cIndices[0] = outputIndices[${a.length-1}];`;for(let A=1;A<u.rank;A++)e+=`cIndices[${A}] = outputIndices[${A}];`;e+=`let cOffset = ${u.indicesToOffset("cIndices")};`}return e})()}\n let scale = ${u.getByOffset("cOffset")};\n let bias = ${d.getByOffset("cOffset")};\n let inputMean = ${f.getByOffset("cOffset")};\n let inputVar = ${p.getByOffset("cOffset")};\n let x = ${g.getByOffset("global_idx")};\n let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias;\n ${h.setByOffset("global_idx","value")}\n }`,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:l?[{type:12,data:o},...TA(a)]:[{type:12,data:o}]})}},ir=e=>IA(e),or=(e,A)=>{let{inputs:t,outputCount:r}=e,n=ir({...A,outputCount:r});if(g.webgpu.validateInputContent&&ar(t,n),A.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(sr(t,n))}})),Cl=L((()=>{cl(),gl(),lr=e=>{if(3!==e[0].dims.length)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(e[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(1!==e[1].dims.length)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},cr=e=>{let A=e[0].dims,t=e[0].dims[2],r=xA.size(A)/4,n=e[0].dataType,a=LA("input",n,A,4),s=LA("bias",n,[t],4),i=LA("residual",n,A,4),o=YA("output",n,A,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:A,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(r/64)}}),getShaderSource:e=>`\n const channels = ${t}u / 4;\n ${e.declareVariables(a,s,i,o)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(r)}\n let value = ${a.getByOffset("global_idx")}\n + ${s.getByOffset("global_idx % channels")} + ${i.getByOffset("global_idx")};\n ${o.setByOffset("global_idx","value")}\n }`}},gr=e=>{lr(e.inputs),e.compute(cr(e.inputs))}})),bl=L((()=>{rl(),cl(),ll(),gl(),ur=(e,A,t,r,n,a,s)=>{let i=Math.ceil(A/4),o="";o="string"==typeof n?`${n}(a)`:n("a");let l=LA("inputData",t,[i],4),c=YA("outputData",r,[i],4),g=[{name:"vec_size",type:"u32"}];return s&&g.push(...s),`\n ${e.registerUniforms(g).declareVariables(l,c)}\n\n ${a??""}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}\n\n let a = ${l.getByOffset("global_idx")};\n ${c.setByOffset("global_idx",o)}\n }`},dr=(e,A,t,r,n,a=e.dataType,s,i)=>{let o=[{type:12,data:Math.ceil(xA.size(e.dims)/4)}];return s&&o.push(...s),{name:A,shaderCache:{hint:n,inputDependencies:["type"]},getShaderSource:A=>ur(A,xA.size(e.dims),e.dataType,a,t,r,i),getRunData:A=>({outputs:[{dims:e.dims,dataType:a}],dispatchGroup:{x:Math.ceil(xA.size(A[0].dims)/64/4)},programUniforms:o})}},fr=e=>{e.compute(dr(e.inputs[0],"Abs","abs"))},pr=e=>{e.compute(dr(e.inputs[0],"Acos","acos"))},hr=e=>{e.compute(dr(e.inputs[0],"Acosh","acosh"))},mr=e=>{e.compute(dr(e.inputs[0],"Asin","asin"))},Cr=e=>{e.compute(dr(e.inputs[0],"Asinh","asinh"))},br=e=>{e.compute(dr(e.inputs[0],"Atan","atan"))},Ir=e=>{e.compute(dr(e.inputs[0],"Atanh","atanh"))},wr=e=>IA(e),kr=(e,A)=>{let t;switch(A.to){case 10:t="vec4<f16>";break;case 1:t="vec4<f32>";break;case 12:t="vec4<u32>";break;case 6:t="vec4<i32>";break;case 9:t="vec4<bool>";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${A.to}`)}e.compute(dr(e.inputs[0],"Cast",t,void 0,A.cacheKey,A.to))},xr=e=>{let A,t,r=e.length>=2&&0!==e[1].data,n=e.length>=3&&0!==e[2].data;switch(e[0].dataType){case 1:A=r?e[1].getFloat32Array()[0]:-34028234663852886e22,t=n?e[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:A=r?e[1].getUint16Array()[0]:64511,t=n?e[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return IA({min:A,max:t})},Br=(e,A)=>{let t=A||xr(e.inputs),r=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"Clip",(e=>`clamp(${e}, vec4<${r}>(uniforms.min), vec4<${r}>(uniforms.max))`),void 0,t.cacheKey,void 0,[{type:e.inputs[0].dataType,data:t.min},{type:e.inputs[0].dataType,data:t.max}],[{name:"min",type:r},{name:"max",type:r}]),{inputs:[0]})},vr=e=>{e.compute(dr(e.inputs[0],"Ceil","ceil"))},yr=e=>{e.compute(dr(e.inputs[0],"Cos","cos"))},Er=e=>{e.compute(dr(e.inputs[0],"Cosh","cosh"))},Mr=e=>IA(e),Gr=(e,A)=>{let t=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"Elu",(e=>`elu_vf32(${e})`),`\n const elu_alpha_ = ${t}(${A.alpha});\n\n fn elu_f32(a: ${t}) -> ${t} {\n return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0);\n }\n\n fn elu_vf32(v: vec4<${t}>) -> vec4<${t}> {\n return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w));\n }`,A.cacheKey))},Dr=(e="f32")=>`\nconst r0: ${e} = 0.3275911;\nconst r1: ${e} = 0.254829592;\nconst r2: ${e} = -0.284496736;\nconst r3: ${e} = 1.421413741;\nconst r4: ${e} = -1.453152027;\nconst r5: ${e} = 1.061405429;\n\nfn erf_vf32(v: vec4<${e}>) -> vec4<${e}> {\n let absv = abs(v);\n let x = 1.0 / (1.0 + r0 * absv);\n return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv));\n}`,Qr=e=>{let A=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"Erf",(e=>`erf_vf32(${e})`),Dr(A)))},Tr=e=>{e.compute(dr(e.inputs[0],"Exp","exp"))},Pr=e=>{e.compute(dr(e.inputs[0],"Floor","floor"))},zr=e=>{let A=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"Gelu",(e=>`0.5 * ${e} * (1.0 + erf_vf32(${e} * 0.7071067811865475))`),Dr(A)))},Fr=(e,A)=>{let t=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"LeakyRelu",(e=>`select(leaky_relu_alpha_ * ${e}, ${e}, ${e} >= vec4<${t}>(0.0))`),`const leaky_relu_alpha_ = ${t}(${A.alpha});`,A.cacheKey))},Sr=e=>{e.compute(dr(e.inputs[0],"Not",(e=>`!${e}`)))},Nr=e=>{e.compute(dr(e.inputs[0],"Neg",(e=>`-${e}`)))},Or=e=>{e.compute(dr(e.inputs[0],"Reciprocal",(e=>`1.0/${e}`)))},Lr=e=>{let A=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"Relu",(e=>`select(vec4<${A}>(0.0), ${e}, ${e} > vec4<${A}>(0.0))`)))},Yr=e=>{e.compute(dr(e.inputs[0],"Sigmoid",(e=>`(1.0 / (1.0 + exp(-${e})))`)))},Hr=e=>IA(e),Rr=(e,A)=>{let t=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"HardSigmoid",(e=>`max(vec4<${t}>(0.0), min(vec4<${t}>(1.0), ${A.alpha} * ${e} + vec4<${t}>(${A.beta})))`),void 0,A.cacheKey))},Wr=e=>{e.compute(dr(e.inputs[0],"Sin","sin"))},Vr=e=>{e.compute(dr(e.inputs[0],"Sinh","sinh"))},jr=e=>{e.compute(dr(e.inputs[0],"Sqrt","sqrt"))},Ur=e=>{e.compute(dr(e.inputs[0],"Tan","tan"))},Kr=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Zr=e=>{e.compute(dr(e.inputs[0],"Tanh",Kr))},Xr=(e="f32")=>`\nconst fast_gelu_a: ${e} = 0.5;\nconst fast_gelu_b: ${e} = 0.7978845608028654;\nconst fast_gelu_c: ${e} = 0.035677408136300125;\n\nfn tanh_v(v: vec4<${e}>) -> vec4<${e}> {\n return ${Kr("v")};\n}\n`,qr=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Jr=e=>{let A=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"FastGelu",qr,Xr(A),void 0,e.inputs[0].dataType))},_r=(e,A)=>{let t=QA(e.inputs[0].dataType);return e.compute(dr(e.inputs[0],"ThresholdedRelu",(e=>`select(vec4<${t}>(0.0), ${e}, ${e} > thresholded_relu_alpha_)`),`const thresholded_relu_alpha_ = vec4<${t}>(${A.alpha});`,A.cacheKey)),0},$r=e=>{e.compute(dr(e.inputs[0],"Log","log"))},en=(e,A)=>`\nconst alpha = vec4<${e}>(${A});\nconst one = ${e}(1.0);\nconst zero = ${e}(0.0);\n\nfn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {\n let v = x *alpha;\n var x1 : vec4<${e}>;\n for (var i = 0; i < 4; i = i + 1) {\n if (v[i] >= zero) {\n x1[i] = one / (one + exp(-v[i]));\n } else {\n x1[i] = one - one / (one + exp(v[i]));\n }\n }\n return x * x1;\n}\n`,An=e=>`quick_gelu_impl(${e})`,tn=(e,A)=>{let t=QA(e.inputs[0].dataType);e.compute(dr(e.inputs[0],"QuickGelu",An,en(t,A.alpha),A.cacheKey,e.inputs[0].dataType))}})),Il=L((()=>{cl(),gl(),bl(),rn=e=>{if(3!==e[0].dims.length)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(e[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(1!==e[1].dims.length)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},nn=e=>{let A=e[0].dims.slice();A[2]=A[2]/2;let t=LA("input",e[0].dataType,e[0].dims,4),r=LA("bias",e[0].dataType,[e[0].dims[2]],4),n=YA("output",e[0].dataType,A,4),a=xA.size(A)/4,s=DA(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:A,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)}}),getShaderSource:A=>`\n const M_SQRT2 = sqrt(2.0);\n const halfChannels = ${e[0].dims[2]/4/2}u;\n\n ${A.declareVariables(t,r,n)}\n\n ${Dr(s)}\n\n ${A.mainStart()}\n ${A.guardAgainstOutOfBoundsWorkgroupSizes(a)}\n let biasIdx = global_idx % halfChannels;\n let batchIndex = global_idx / halfChannels;\n let inputOffset = biasIdx + batchIndex * halfChannels * 2;\n let valueLeft = input[inputOffset] + bias[biasIdx];\n let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels];\n let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1);\n\n ${n.setByOffset("global_idx","valueLeft * geluRight")}\n }`}},an=e=>{rn(e.inputs),e.compute(nn(e.inputs))}})),wl=L((()=>{rl(),cl(),gl(),sn=(e,A,t,r,n,a,s,i,o,l,c,g)=>{let u,d;"string"==typeof i?u=d=(e,A)=>`${i}((${e}),(${A}))`:"function"==typeof i?u=d=i:(u=i.scalar,d=i.vector);let f,p=YA("outputData",c,r.length,4),h=LA("aData",o,A.length,4),m=LA("bData",l,t.length,4);if(n)if(a){let e=1===xA.size(A),r=1===xA.size(t),n=A.length>0&&A[A.length-1]%4==0,a=t.length>0&&t[t.length-1]%4==0;f=e||r?p.setByOffset("global_idx",d(e?`${h.type.value}(${h.getByOffset("0")}.x)`:h.getByOffset("global_idx"),r?`${m.type.value}(${m.getByOffset("0")}.x)`:m.getByOffset("global_idx"))):`\n let outputIndices = ${p.offsetToIndices("global_idx * 4u")};\n let offsetA = ${h.broadcastedIndicesToOffset("outputIndices",p)};\n let offsetB = ${m.broadcastedIndicesToOffset("outputIndices",p)};\n ${p.setByOffset("global_idx",d(s||n?h.getByOffset("offsetA / 4u"):`${h.type.value}(${h.getByOffset("offsetA / 4u")}[offsetA % 4u])`,s||a?m.getByOffset("offsetB / 4u"):`${m.type.value}(${m.getByOffset("offsetB / 4u")}[offsetB % 4u])`))}\n `}else f=p.setByOffset("global_idx",d(h.getByOffset("global_idx"),m.getByOffset("global_idx")));else{if(!a)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let e=(e,A,t="")=>{let r=`aData[indexA${A}][componentA${A}]`,n=`bData[indexB${A}][componentB${A}]`;return`\n let outputIndices${A} = ${p.offsetToIndices(`global_idx * 4u + ${A}u`)};\n let offsetA${A} = ${h.broadcastedIndicesToOffset(`outputIndices${A}`,p)};\n let offsetB${A} = ${m.broadcastedIndicesToOffset(`outputIndices${A}`,p)};\n let indexA${A} = offsetA${A} / 4u;\n let indexB${A} = offsetB${A} / 4u;\n let componentA${A} = offsetA${A} % 4u;\n let componentB${A} = offsetB${A} % 4u;\n ${e}[${A}] = ${t}(${u(r,n)});\n `};f=9===c?`\n var data = vec4<u32>(0);\n ${e("data",0,"u32")}\n ${e("data",1,"u32")}\n ${e("data",2,"u32")}\n ${e("data",3,"u32")}\n outputData[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:`\n ${e("outputData[global_idx]",0)}\n ${e("outputData[global_idx]",1)}\n ${e("outputData[global_idx]",2)}\n ${e("outputData[global_idx]",3)}\n `}return`\n ${e.registerUniform("vec_size","u32").declareVariables(h,m,p)}\n\n ${g??""}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}\n ${f}\n }`},on=(e,A,t,r,n,a,s=t.dataType)=>{let i=t.dims.map((e=>Number(e)??1)),o=r.dims.map((e=>Number(e)??1)),l=!xA.areEqual(i,o),c=i,g=xA.size(i),u=!1,d=!1,f=[l];if(l){let e=kA.calcShape(i,o,!1);if(!e)throw new Error("Can't perform binary op on the given tensors");c=e.slice(),g=xA.size(c);let A=1===xA.size(i),t=1===xA.size(o),r=i.length>0&&i[i.length-1]%4==0,n=o.length>0&&o[o.length-1]%4==0;f.push(A),f.push(t),f.push(r),f.push(n);let a=1;for(let e=1;e<c.length;e++){let A=i[i.length-e];if(A!==o[o.length-e])break;a*=A}a%4==0?(d=!0,u=!0):(A||t||r||n)&&(u=!0)}else u=!0;return f.push(u),{name:e,shaderCache:{hint:A+f.map((e=>e.toString())).join("_"),inputDependencies:["rank","rank"]},getShaderSource:e=>sn(e,i,o,c,u,l,d,n,t.dataType,r.dataType,s,a),getRunData:()=>({outputs:[{dims:c,dataType:s}],dispatchGroup:{x:Math.ceil(g/64/4)},programUniforms:[{type:12,data:Math.ceil(xA.size(c)/4)},...TA(i,o,c)]})}},ln=(e,A,t,r,n,a)=>{e.compute(on(A,n??"",e.inputs[0],e.inputs[1],t,r,a))},cn=e=>{ln(e,"Add",((e,A)=>`${e}+${A}`))},gn=e=>{ln(e,"Div",((e,A)=>`${e}/${A}`))},un=e=>{ln(e,"Equal",{scalar:(e,A)=>`u32(${e}==${A})`,vector:(e,A)=>`vec4<u32>(${e}==${A})`},void 0,void 0,9)},dn=e=>{ln(e,"Mul",((e,A)=>`${e}*${A}`))},fn=e=>{let A=LA("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;ln(e,"Pow",{scalar:(e,A)=>`pow_custom(${e},${A})`,vector:(e,A)=>`pow_vector_custom(${e},${A})`},`\n fn pow_custom(a : ${A}, b : ${A}) -> ${A} {\n if (b == ${A}(0.0)) {\n return ${A}(1.0);\n } else if (a < ${A}(0.0) && f32(b) != floor(f32(b))) {\n return ${A}(pow(f32(a), f32(b))); // NaN\n }\n return select(sign(a), ${A}(1.0), round(f32(abs(b) % ${A}(2.0))) != 1.0) * ${A}(${"i32"===A?"round":""}(pow(f32(abs(a)), f32(b))));\n }\n fn pow_vector_custom(a : vec4<${A}>, b : vec4<${A}>) -> vec4<${A}> {\n // TODO: implement vectorized pow\n return vec4<${A}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w));\n }\n `)},pn=e=>{ln(e,"Sub",((e,A)=>`${e}-${A}`))},hn=e=>{ln(e,"Greater",{scalar:(e,A)=>`u32(${e}>${A})`,vector:(e,A)=>`vec4<u32>(${e}>${A})`},void 0,void 0,9)},mn=e=>{ln(e,"Less",{scalar:(e,A)=>`u32(${e}<${A})`,vector:(e,A)=>`vec4<u32>(${e}<${A})`},void 0,void 0,9)},Cn=e=>{ln(e,"GreaterOrEqual",{scalar:(e,A)=>`u32(${e}>=${A})`,vector:(e,A)=>`vec4<u32>(${e}>=${A})`},void 0,void 0,9)},bn=e=>{ln(e,"LessOrEqual",{scalar:(e,A)=>`u32(${e}<=${A})`,vector:(e,A)=>`vec4<u32>(${e}<=${A})`},void 0,void 0,9)}})),kl=L((()=>{rl(),cl(),ll(),gl(),In=(e,A)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=e[0],r=t.dataType,n=t.dims.length;e.forEach(((e,a)=>{if(0!==a){if(e.dataType!==r)throw new Error("input tensors should be one type");if(e.dims.length!==n)throw new Error("input tensors should have the same shape");e.dims.forEach(((e,r)=>{if(r!==A&&e!==t.dims[r])throw new Error("non concat dimensions must match")}))}}))},wn=(e,A)=>`\n fn calculateInputIndex(index: u32) -> u32 {\n let sizeInConcatAxis = array<u32, ${e}u>(${A});\n for (var i: u32 = 0u; i < ${e}; i += 1u ) {\n if (index < sizeInConcatAxis[i]) {\n return i;\n }\n }\n return ${e}u;\n }`,kn=(e,A)=>{let t=e.length,r=[];for(let n=0;n<t;++n){let a=A.setByOffset("global_idx",e[n].getByIndices("indices"));1===t?r.push(a):0===n?r.push(`if (inputIndex == ${n}u) { ${a} }`):n===t-1?r.push(`else { ${a} }`):r.push(`else if (inputIndex == ${n}) { ${a} }`)}return r.join("\n")},xn=(e,A,t,r)=>{let n=xA.size(t),a=new Array(e.length),s=new Array(e.length),i=0,o=[],l=[],c=[{type:12,data:n}];for(let t=0;t<e.length;++t)i+=e[t].dims[A],a[t]=i,l.push(e[t].dims.length),s[t]=LA(`input${t}`,r,l[t]),o.push("rank"),c.push({type:12,data:a[t]});for(let A=0;A<e.length;++A)c.push(...TA(e[A].dims));c.push(...TA(t));let g=YA("output",r,t.length),u=g.indicesGet("indices",A),d=Array.from(Array(a.length).keys()).map((e=>`uniforms.sizeInConcatAxis${e}`)).join(",");return{name:"Concat",shaderCache:{hint:`${A}`,inputDependencies:o},getRunData:()=>({outputs:[{dims:t,dataType:r}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:c}),getShaderSource:A=>`\n\n ${(()=>{A.registerUniform("outputSize","u32");for(let t=0;t<e.length;t++)A.registerUniform(`sizeInConcatAxis${t}`,"u32");return A.declareVariables(...s,g)})()}\n\n ${wn(a.length,d)}\n\n ${A.mainStart()}\n ${A.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n\n var indices = ${g.offsetToIndices("global_idx")};\n\n let inputIndex = calculateInputIndex(${u});\n if (inputIndex != 0u) {\n let sizeInConcatAxis = array<u32, ${a.length}u>(${d});\n ${u} -= sizeInConcatAxis[inputIndex - 1u];\n }\n\n ${kn(s,g)}\n }`}},Bn=(e,A)=>{let t=e.inputs,r=t[0].dims,n=xA.normalizeAxis(A.axis,r.length);In(t,n);let a=r.slice();a[n]=t.reduce(((e,A)=>e+(A.dims.length>n?A.dims[n]:0)),0);let s=t.filter((e=>xA.size(e.dims)>0));e.compute(xn(s,n,a,t[0].dataType),{inputs:s})},vn=e=>IA({axis:e.axis})})),xl=L((()=>{rl(),cl(),yn=(e,A,t="f32")=>{switch(e.activation){case"Relu":return`value = max(value, ${A}(0.0));`;case"Sigmoid":return`value = (${A}(1.0) / (${A}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${A}(${t}(uniforms.clip_min)), ${A}(${t}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${A}(0.0), min(${A}(1.0), ${t}(uniforms.alpha) * value + ${t}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${t}(uniforms.alpha) * value, value, value >= ${A}(0.0));`;case"Tanh":return"let e2x = exp(-2.0 * abs(value));\n value = sign(value) * (1.0 - e2x) / (1.0 + e2x);\n ";case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},En=(e,A)=>{"Clip"===e.activation?A.push({type:1,data:e.clipMax},{type:1,data:e.clipMin}):"HardSigmoid"===e.activation?A.push({type:1,data:e.alpha},{type:1,data:e.beta}):"LeakyRelu"===e.activation&&A.push({type:1,data:e.alpha})},Mn=(e,A)=>{"Clip"===e.activation?A.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):"HardSigmoid"===e.activation?A.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):"LeakyRelu"===e.activation&&A.push({name:"alpha",type:"f32"})},Gn=e=>{let A=e?.activation||"";if("HardSigmoid"===A){let[t,r]=e?.activation_params||[.2,.5];return{activation:A,alpha:t,beta:r}}if("Clip"===A){let[t,r]=e?.activation_params||[yA,EA];return{activation:A,clipMax:r,clipMin:t}}if("LeakyRelu"===A){let[t]=e?.activation_params||[.01];return{activation:A,alpha:t}}return{activation:A}}})),Bl=L((()=>{Dn=(e,A)=>{switch(e){case 1:return A;case 2:return`vec2<${A}>`;case 3:return`vec3<${A}>`;case 4:return`vec4<${A}>`;default:throw new Error(`${e}-component is not supported.`)}},Qn=e=>`\n ${e?"value = value + getBiasByOutputCoords(coords);":""}\n `})),vl=L((()=>{Tn=e=>`\nfn getIndexFromCoords4D(coords : vec4<i32>, shape : vec4<i32>) -> i32 {\n return dot(coords, vec4<i32>(\n shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1));\n}\nfn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {\n return dot(coords, vec4<i32>(\n i32(${e}.x), i32(${e}.y), i32(${e}.z), 1));\n}\n`})),yl=L((()=>{rl(),cl(),gl(),xl(),Pn=(e,A,t,r,n)=>{let a=r-t;return`\n ${Array.from({length:t}).map(((t,s)=>`\n if (${NA(A.shape,s,A.rank)} != 1) {\n ${A.indicesSet(e,s,NA(n,s+a,r))}\n } else {\n ${A.indicesSet(e,s,0)}\n }`)).join("")}\n`},zn=(e,A,t,r,n=!1,a)=>{let s=e[0].dims,i=e[1].dims,o=s[s.length-2],l=i[i.length-1],c=s[s.length-1],g=PA(l),u=PA(c),d=PA(o),f=xA.size(t)/g/d,p=e.length>2,h=r?r.slice(0,-2):t.slice(0,-2),m=[xA.size(h),o,l],C=[{type:12,data:f},{type:12,data:o},{type:12,data:l},{type:12,data:c}];En(A,C),C.push(...TA(h,s,i)),p&&C.push(...TA(e[2].dims)),C.push(...TA(m));return{name:"MatMulNaive",shaderCache:{hint:`${A.activation};${g};${u};${d};${n}`,inputDependencies:p?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:C}),getShaderSource:r=>{let a=RA("batch_dims",e[0].dataType,h.length),o=LA("a",e[0].dataType,s.length,u),l=LA("b",e[1].dataType,i.length,g),c=YA("output",e[0].dataType,m.length,g),f=DA(c.type.tensor),C=yn(A,c.type.value,f),b=[o,l],I="";if(p){let A=n?g:1;b.push(LA("bias",e[2].dataType,e[2].dims.length,A)),I=""+(n?`value += bias[col / ${A}];`:`value += ${c.type.value}(bias[row + i]);`)}let w=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Mn(A,w);return`\n ${r.registerUniforms(w).registerInternalVariables(a).declareVariables(...b,c)}\n ${r.mainStart()}\n ${r.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let col = (global_idx % (uniforms.N / ${g})) * ${g};\n var index1 = global_idx / (uniforms.N / ${g});\n let stride1 = uniforms.M / ${d};\n let row = (index1 % stride1) * ${d};\n let batch = index1 / stride1;\n\n ${2===t.length?"":`let batch_indices = ${a.offsetToIndices("batch")};`}\n\n var a_indices: ${o.type.indices};\n ${Pn("a_indices",o,o.rank-2,a.rank,"batch_indices")}\n ${o.indicesSet("a_indices",o.rank-2,0)}\n ${o.indicesSet("a_indices",o.rank-1,0)}\n let a_offset = ${o.indicesToOffset("a_indices")};\n\n var b_indices: ${l.type.indices};\n ${Pn("b_indices",l,l.rank-2,a.rank,"batch_indices")}\n ${l.indicesSet("b_indices",l.rank-2,0)}\n ${l.indicesSet("b_indices",l.rank-1,0)}\n let b_offset = ${l.indicesToOffset("b_indices")};\n var values: array<${c.type.value}, ${d}>;\n for (var k: u32 = 0u; k < uniforms.K; k = k + ${u}) {\n ${(()=>{let e=`var a_data: ${o.type.value};`;for(let A=0;A<u;A++)e+=`\n let b_data${A} = b[(b_offset + (k + ${A}) * uniforms.N + col) / ${g}];`;for(let A=0;A<d;A++){e+=`a_data = a[(a_offset + (row + ${A}) * uniforms.K + k) / ${u}];`;for(let t=0;t<u;t++)e+=`\n values[${A}] = fma(${l.type.value}(a_data${1===u?"":`[${t}]`}), b_data${t}, values[${A}]);\n`}return e})()}\n }\n for (var i = 0u; i < ${d}u; i++) {\n var value = values[i];\n ${I}\n ${C}\n let cur_indices = ${c.type.indices}(batch, row + i, col);\n let offset = ${c.indicesToOffset("cur_indices")};\n ${c.setByOffset(`offset / ${g}`,"value")};\n }\n }\n `}}}})),El=L((()=>{rl(),cl(),gl(),xl(),yl(),Bl(),Fn=(e,A)=>e?`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n kStart + inputRow,\n globalRowStart / innerElementSize + inputCol${A?", batchIndices":""});\n `:`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n globalRow + innerRow,\n kStart / innerElementSize + inputCol${A?", batchIndices":""});\n `,Sn=(e,A)=>e?`\n let ACached0 = mm_Asub[k * innerElementSize][localRow];\n let ACached1 = mm_Asub[k * innerElementSize + 1][localRow];\n let ACached2 = mm_Asub[k * innerElementSize + 2][localRow];\n ${3===A?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"}\n for (var i = 0; i < rowPerThread; i = i + 1) {\n acc[i] = BCached0 * ACached0[i] + acc[i];\n acc[i] = BCached1 * ACached1[i] + acc[i];\n acc[i] = BCached2 * ACached2[i] + acc[i];\n ${3===A?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"}\n }`:`\n for (var i = 0; i < rowPerThread; i = i + 1) {\n let ACached = mm_Asub[tileRow + i][k];\n acc[i] = BCached0 * ACached.x + acc[i];\n acc[i] = BCached1 * ACached.y + acc[i];\n acc[i] = BCached2 * ACached.z + acc[i];\n ${3===A?"":"acc[i] = BCached3 * ACached.w + acc[i];"}\n }`,Nn=(e,A,t="f32",r,n=!1,a=32,s=!1,i=32)=>{let o=A[1]*e[1],l=A[0]*e[0],c=n?o:a,g=n?a:o,u=c/A[0],d=a/A[1];if((!n||4!==u||4!==e[1])&&(n||3!==u&&4!==u)||c%A[0]!=0||a%A[1]!=0||4!==e[0])throw new Error(`If transposeA ${n} is true, innerElementSize ${u} and workPerThread[1] ${e[1]} must be 4.\n Otherwise, innerElementSize ${u} must be 3 or 4.\n tileAWidth ${c} must be divisible by workgroupSize[0]${A[0]}. tileInner ${a} must be divisible by workgroupSize[1] ${A[1]}. colPerThread ${e[0]} must be 4.`);return`\nvar<workgroup> mm_Asub: array<array<vec${u}<${t}>, ${c/u}>, ${g}>;\nvar<workgroup> mm_Bsub: array<array<vec4<${t}>, ${l/e[0]}>, ${a}>;\n\nconst rowPerThread = ${e[1]};\nconst colPerThread = ${e[0]};\nconst innerElementSize = ${u};\nconst tileInner = ${a};\n\n@compute @workgroup_size(${A[0]}, ${A[1]}, ${A[2]})\nfn main(@builtin(local_invocation_id) localId : vec3<u32>,\n @builtin(global_invocation_id) globalId : vec3<u32>,\n @builtin(workgroup_id) workgroupId : vec3<u32>) {\n let localRow = i32(localId.y);\n let tileRow = localRow * rowPerThread;\n let tileCol = i32(localId.x);\n\n let globalRow =i32(globalId.y) * rowPerThread;\n let globalCol = i32(globalId.x);\n let batch = ${s?"0":"i32(globalId.z)"};\n ${r?`let batchIndices = ${r.offsetToIndices("u32(batch)")};`:""}\n let globalRowStart = i32(workgroupId.y) * ${o};\n\n let num_tiles = ${s?`${Math.ceil(i/a)}`:"(uniforms.dim_inner - 1) / tileInner + 1"};\n var kStart = ${s?`i32(globalId.z) * ${i}`:"0"};\n\n var acc: array<vec4<${t}>, rowPerThread>;\n\n // Loop over shared dimension.\n let tileRowB = localRow * ${d};\n for (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let inputRow = tileRow + innerRow;\n let inputCol = tileCol;\n ${Fn(n,r)}\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${d}; innerRow = innerRow + 1) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${r?", batchIndices":""});\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n for (var k = 0; k < tileInner / innerElementSize; k = k + 1) {\n let BCached0 = mm_Bsub[k * innerElementSize][tileCol];\n let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol];\n let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol];\n ${3===u?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"}\n\n ${Sn(n,u)}\n }\n\n workgroupBarrier();\n }\n\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]);\n }\n}`},On=(e,A)=>e?`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n kStart + inputRow,\n globalRowStart + inputCol${A?", batchIndices":""});\n `:`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n globalRowStart + inputRow,\n kStart + inputCol${A?", batchIndices":""});\n `,Ln=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Yn=(e,A,t="f32",r,n=!1,a=32,s=!1,i=32,o=!1)=>{let l=e[1]*A[1],c=e[0]*A[0],g=n?l:a,u=n?a:l;if(u%A[1]!=0||g%A[0]!=0||a%A[1]!=0)throw new Error(`tileAHight ${u} must be divisible by workgroupSize[1]${A[1]}, tileAWidth ${g} must be divisible by workgroupSize[0]${A[0]}, tileInner ${a} must be divisible by workgroupSize[1]${A[1]}`);let d=u/A[1],f=g/A[0],p=a/A[1],h=o?`\n let localRow = i32(localId.y);\n let localCol = i32(localId.x);\n let globalRowStart = i32(workgroupId.y) * ${l};\n let globalColStart = i32(workgroupId.x) * ${c};\n\n // Loop over shared dimension.\n for (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var inputRow = localRow; inputRow < ${u}; inputRow = inputRow + ${A[1]}) {\n for (var inputCol = localCol; inputCol < ${g}; inputCol = inputCol + ${A[0]}) {\n ${On(n,r)}\n }\n }\n // Load one tile of B into local memory.\n for (var inputRow = localRow; inputRow < ${a}; inputRow = inputRow + ${A[1]}) {\n for (var inputCol = localCol; inputCol < ${c}; inputCol = inputCol + ${A[0]}) {\n mm_Bsub[inputRow][inputCol] = mm_readB(batch,\n kStart + inputRow,\n globalColStart + inputCol${r?", batchIndices":""});\n }\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array<${t}, colPerThread>;\n for (var k = 0; k < tileInner; k = k + 1) {\n for (var inner = 0; inner < colPerThread; inner = inner + 1) {\n BCached[inner] = mm_Bsub[k][localCol + inner * ${A[0]}];\n }\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let ACached = ${n?`mm_Asub[k][localRow + innerRow * ${A[1]}];`:`mm_Asub[localRow + innerRow * ${A[1]}][k];`}\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n acc[innerRow][innerCol] = acc[innerRow][innerCol] +\n ACached * BCached[innerCol];\n }\n }\n }\n workgroupBarrier();\n }\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let gRow = globalRowStart + localRow + innerRow * ${A[1]};\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n let gCol = globalColStart + localCol + innerCol * ${A[0]};\n mm_write(batch, gRow, gCol, acc[innerRow][innerCol]);\n }\n }\n `:`\nlet tileRow = i32(localId.y) * rowPerThread;\nlet tileCol = i32(localId.x) * colPerThread;\n\nlet globalRow = i32(globalId.y) * rowPerThread;\nlet globalCol = i32(globalId.x) * colPerThread;\nlet globalRowStart = i32(workgroupId.y) * ${l};\n\nlet tileRowA = i32(localId.y) * ${d};\nlet tileColA = i32(localId.x) * ${f};\nlet tileRowB = i32(localId.y) * ${p};\n// Loop over shared dimension.\nfor (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < ${d}; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < ${f}; innerCol = innerCol + 1) {\n let inputRow = tileRowA + innerRow;\n let inputCol = tileColA + innerCol;\n ${On(n,r)}\n }\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${p}; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol + innerCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batch,\n kStart + inputRow,\n globalCol + innerCol${r?", batchIndices":""});\n }\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array<${t}, colPerThread>;\n for (var k = 0; k < tileInner; k = k + 1) {\n for (var inner = 0; inner < colPerThread; inner = inner + 1) {\n BCached[inner] = mm_Bsub[k][tileCol + inner];\n }\n\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n ${Ln(n)}\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol];\n }\n }\n }\n\n workgroupBarrier();\n}\n\nfor (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n mm_write(batch, globalRow + innerRow, globalCol + innerCol,\n acc[innerRow][innerCol]);\n }\n}\n`;return`\n var<workgroup> mm_Asub : array<array<${t}, ${g}>, ${u}>;\n var<workgroup> mm_Bsub : array<array<${t}, ${c}>, ${a}>;\n const rowPerThread = ${e[1]};\n const colPerThread = ${e[0]};\n const tileInner = ${a};\n\n@compute @workgroup_size(${A[0]}, ${A[1]}, ${A[2]})\nfn main(@builtin(local_invocation_id) localId : vec3<u32>,\n @builtin(global_invocation_id) globalId : vec3<u32>,\n @builtin(workgroup_id) workgroupId : vec3<u32>) {\n let batch = ${s?"0":"i32(globalId.z)"};\n ${r?`let batchIndices = ${r.offsetToIndices("u32(batch)")};`:""}\n let num_tiles = ${s?`${Math.ceil(i/a)}`:"(uniforms.dim_inner - 1) / tileInner + 1"};\n var kStart = ${s?`i32(globalId.z) * ${i}`:"0"};\n\n var acc : array<array<${t}, colPerThread>, rowPerThread>;\n ${h}\n }\n`},Hn=(e,A,t,r,n=!1)=>{let[a,s,i,o]=r,l=DA(r[0].type.tensor);return`\n fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${a.type.indices}) -> ${Dn(e,l)} {\n var value = ${Dn(e,l)}(0.0);\n let col = colIn * ${e};\n if(row < uniforms.dim_a_outer && col < uniforms.dim_inner)\n {\n var aIndices: ${s.type.indices};\n ${Pn("aIndices",s,s.rank-2,a.rank,"batchIndices")}\n ${s.indicesSet("aIndices",s.rank-2,"u32(row)")}\n ${s.indicesSet("aIndices",s.rank-1,"u32(colIn)")}\n value = ${s.getByIndices("aIndices")};\n }\n return value;\n }\n\n fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${a.type.indices}) -> ${Dn(e,l)} {\n var value = ${Dn(e,l)}(0.0);\n let col = colIn * ${e};\n if(row < uniforms.dim_inner && col < uniforms.dim_b_outer)\n {\n var bIndices: ${i.type.indices};\n ${Pn("bIndices",i,i.rank-2,a.rank,"batchIndices")}\n ${i.indicesSet("bIndices",i.rank-2,"u32(row)")}\n ${i.indicesSet("bIndices",i.rank-1,"u32(colIn)")}\n value = ${i.getByIndices("bIndices")};\n }\n return value;\n }\n\n fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${Dn(e,l)}) {\n let col = colIn * ${e};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) {\n var value = valueIn;\n let coords = vec3<i32>(batch, row, colIn);\n ${A?`value = value + ${n?"bias[colIn]":`${Dn(e,l)}(bias[row])`};`:""}\n ${t}\n ${o.setByIndices("vec3<u32>(coords)","value")}\n }\n }\n `},Rn=(e,A,t,r,n=!1,a)=>{let s=e[0].dims,i=e[1].dims,o=s.slice(0,-2),l=i.slice(0,-2),c=r?r.slice(0,-2):t.slice(0,-2),g=xA.size(c),u=s[s.length-2],d=s[s.length-1],f=i[i.length-1],p=d%4==0&&f%4==0,h=u<=8?[4,1,1]:[4,4,1],m=[8,8,1],C=[Math.ceil(f/m[0]/h[0]),Math.ceil(u/m[1]/h[1]),Math.ceil(g/m[2]/h[2])],b=p?4:1,I=[...o,u,d/b],w=I.length,k=[...l,d,f/b],x=k.length,B=[g,u,f/b],v=[{type:6,data:u},{type:6,data:f},{type:6,data:d}];En(A,v),v.push(...TA(c,I,k));let y=["rank","rank"],E=e.length>2;E&&(v.push(...TA(e[2].dims)),y.push("rank")),v.push(...TA(B));return{name:"MatMul",shaderCache:{hint:`${h};${A.activation};${p};${n}`,inputDependencies:y},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:C[0],y:C[1],z:C[2]},programUniforms:v}),getShaderSource:t=>{let r=c.length,a=RA("batchDims",e[0].dataType,r,1),s=DA(e[0].dataType),i=LA("a",e[0].dataType,w,b),o=LA("b",e[1].dataType,x,b),l=YA("result",e[0].dataType,B.length,b),g=[i,o];if(E){let A=n?b:1;g.push(LA("bias",e[2].dataType,e[2].dims.length,A))}let u=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Mn(A,u);let d=DA(l.type.tensor),f=yn(A,l.type.value,d),C=Hn(b,E,f,[a,i,o,l],n);return`\n ${t.registerUniforms(u).registerInternalVariables(a).declareVariables(...g,l)}\n ${C}\n ${p?Nn(h,m,s,a):Yn(h,m,s,a)}\n `}}}})),Ml=L((()=>{rl(),al(),gl(),xl(),Bl(),vl(),El(),Wn=(e,A,t,r,n=!1,a,s=4,i=4,o=4,l="f32")=>{let c=e=>{switch(e){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 ${e} is not supported.`)}},g=e?"\n let coord = vec4<i32>(batch, xRow, xCol, xCh);\n ":"\n let coord = vec4<i32>(batch, xCh, xRow, xCol);\n ",u=e?"\n let coords = vec4<i32>(\n batch,\n row / outWidth,\n row % outWidth,\n col);\n ":"\n let coords = vec4<i32>(\n batch,\n row,\n col / outWidth,\n col % outWidth);\n ",d=e?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",f=e?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",p=e?"row":"col",h=e?"col":"row",m=`\n let inChannels = i32(uniforms.w_shape[2]);\n let outWidth = ${e?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"};\n let outRow = ${p} / outWidth;\n let outCol = ${p} % outWidth;\n\n let WRow = ${h} / (i32(uniforms.w_shape[1]) * inChannels);\n let WCol = ${h} / inChannels % i32(uniforms.w_shape[1]);\n let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0];\n let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1];\n let xCh = ${h} % inChannels;\n var resData = ${Dn(s,l)}(0.0);\n // The bounds checking is always needed since we use it to pad zero for\n // the 'same' padding type.\n if (xRow >= 0 && xRow < ${d} && xCol >= 0 && xCol < ${f}) {\n ${g}\n let xIndex = getIndexFromCoords4D(coord, vec4<i32>(uniforms.x_shape));\n ${(e=>{switch(e){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${l}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${e} is not supported.`)}})(s)}\n }\n return resData;`,C=e?A&&r?`\n let col = colIn * ${s};\n ${m}`:`\n let col = colIn * ${s};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) {\n ${m}\n }\n return ${Dn(s,l)}(0.0);`:r&&t?`\n let col = colIn * ${s};\n ${m}`:`\n let col = colIn * ${s};\n if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) {\n ${m}\n }\n return ${Dn(s,l)}(0.0);`,b=e?r&&t?c(i):`\n let col = colIn * ${i};\n if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) {\n ${c(i)}\n }\n return ${Dn(i,l)}(0.0);`:`\n let col = colIn * ${i};\n if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) {\n ${c(i)}\n }\n return ${Dn(i,l)}(0.0);`,I=Dn(o,l),w=Dn(e?s:i,l),k=Dn(e?i:s,l),x=yn(a,I,l);return`\n fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${w} {\n ${e?C:b}\n }\n\n fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${k} {\n ${e?b:C}\n }\n\n fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${I}) {\n let col = colIn * ${o};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer)\n {\n var value = valueIn;\n let outWidth = ${e?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"};\n ${u}\n ${Qn(n)}\n ${x}\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }`},Vn=(e,A,t,r,n,a,s,i,o)=>{let l="NHWC"===A.format,c=l?e[0].dims[3]:e[0].dims[1],g=t[0],u=l?t[2]:t[3],d=l?t[1]:t[2],f=l?t[3]:t[1],p=l&&(c%4==0||c%3==0)&&f%4==0,h=l?f:u*d,m=l?u*d:f,C=[8,8,1],b=r<=8?[4,1,1]:[4,4,1],I=[Math.ceil(h/C[0]/b[0]),Math.ceil(m/C[1]/b[1]),Math.ceil(g/C[2]/b[2])];oA("verbose",(()=>`[conv2d_mm_webgpu] dispatch = ${I}`));let w=p?l&&c%4!=0?3:4:1,k=C[1]*b[1],x=C[0]*b[0],B=Math.max(C[0]*w,C[1]),v=r%k==0,y=n%x==0,E=a%B==0,M=p?[w,4,4]:[1,1,1],G=[{type:6,data:r},{type:6,data:n},{type:6,data:a},{type:6,data:[A.pads[0],A.pads[1]]},{type:6,data:A.strides},{type:6,data:A.dilations}];En(A,G),G.push(...TA(e[0].dims,e[1].dims));let D=["rank","rank"];s&&(G.push(...TA(e[2].dims)),D.push("rank")),G.push(...TA(t));return{name:"Conv2DMatMul",shaderCache:{hint:`${A.cacheKey};${w};${p};${v};${y};${E};${k};${x};${B}`,inputDependencies:D},getRunData:()=>({outputs:[{dims:o?o(t):t,dataType:e[0].dataType}],dispatchGroup:{x:I[0],y:I[1],z:I[2]},programUniforms:G}),getShaderSource:r=>{let n=[{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}];Mn(A,n);let a=p?4:1,o=DA(e[0].dataType),c=`\n fn setOutputAtIndex(flatIndex : i32, value : ${p?`vec4<${o}>`:o}) {\n result[flatIndex] = ${p?`vec4<${o}>`:o}(value);\n }\n fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${p?`vec4<${o}>`:o}) {\n let flatIndex = getOutputIndexFromCoords(vec4<i32>(d0, d1, d2, d3));\n setOutputAtIndex(flatIndex ${p?"/ 4":""}, value);\n }`,g=[LA("x",e[0].dataType,e[0].dims.length,3===w?1:w),LA("w",e[1].dataType,e[1].dims.length,a)],u=YA("result",e[0].dataType,t.length,a);if(s){let A=LA("bias",e[2].dataType,e[2].dims.length,a);g.push(A),c+=`\n fn getBiasByOutputCoords(coords : vec4<i32>) -> ${p?`vec4<${o}>`:o} {\n return bias[coords.${l?"w":"y"}${p?"/ 4":""}];\n }`}return`\n ${Tn("uniforms.result_strides")}\n //struct Uniforms { xShape : vec4<i32>, wShape : vec4<i32>, outShape : vec4<i32>,\n // outShapeStrides: vec3<i32>, filterDims : vec2<i32>, pad : vec2<i32>, stride : vec2<i32>,\n // dilation : vec2<i32>, dimAOuter : i32, dimBOuter : i32, dimInner : i32 };\n ${r.registerUniforms(n).declareVariables(...g,u)}\n ${c}\n ${Wn(l,v,y,E,s,A,M[0],M[1],M[2],o)}\n ${p?Nn(b,C,o,void 0,!l,B):Yn(b,C,o,void 0,!l,B,!1,void 0,i)}`}}}})),Gl=L((()=>{rl(),al(),cl(),gl(),xl(),Bl(),jn=e=>{let A=1;for(let t=0;t<e.length;t++)A*=e[t];return A},Un=e=>"number"==typeof e?[e,e,e]:e,Kn=(e,A)=>A<=1?e:e+(e-1)*(A-1),Zn=(e,A,t,r=1)=>{let n=Kn(A,r);return Math.floor((e[0]*(t-1)-t+n)/2)},Xn=(e,A,t,r,n)=>{null==n&&(n=Zn(e,A[0],r[0]));let a=[0,0,0,t];for(let t=0;t<3;t++)e[t]+2*n>=A[t]&&(a[t]=Math.trunc((e[t]-A[t]+2*n)/r[t]+1));return a},qn=(e,A,t,r,n,a,s,i,o,l)=>{let c,g,u,d;if("VALID"===e&&(e=0),"number"==typeof e){c={top:e,bottom:e,left:e,right:e,front:e,back:e};let f=Xn([A,t,r,1],[i,o,l],1,[n,a,s],e);g=f[0],u=f[1],d=f[2]}else if(Array.isArray(e)){if(!e.every(((e,A,t)=>e===t[0])))throw Error(`Unsupported padding parameter: ${e}`);c={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let f=Xn([A,t,r,1],[i,o,l],1,[n,a,s],e[0]);g=f[0],u=f[1],d=f[2]}else{if("SAME_UPPER"!==e)throw Error(`Unknown padding parameter: ${e}`);{g=Math.ceil(A/n),u=Math.ceil(t/a),d=Math.ceil(r/s);let e=(g-1)*n+i-A,f=(u-1)*a+o-t,p=(d-1)*s+l-r,h=Math.floor(e/2),m=e-h,C=Math.floor(f/2),b=f-C,I=Math.floor(p/2);c={top:C,bottom:b,left:I,right:p-I,front:h,back:m}}}return{padInfo:c,outDepth:g,outHeight:u,outWidth:d}},Jn=(e,A,t,r,n,a=!1,s="channelsLast")=>{let i,o,l,c,g;if("channelsLast"===s)[i,o,l,c,g]=e;else{if("channelsFirst"!==s)throw new Error(`Unknown dataFormat ${s}`);[i,g,o,l,c]=e}let[u,,d,f,p]=A,[h,m,C]=Un(t),[b,I,w]=Un(r),k=Kn(d,b),x=Kn(f,I),B=Kn(p,w),{padInfo:v,outDepth:y,outHeight:E,outWidth:M}=qn(n,o,l,c,h,m,C,k,x,B),G=a?u*g:u,D=[0,0,0,0,0];return"channelsFirst"===s?D=[i,G,y,E,M]:"channelsLast"===s&&(D=[i,y,E,M,G]),{batchSize:i,dataFormat:s,inDepth:o,inHeight:l,inWidth:c,inChannels:g,outDepth:y,outHeight:E,outWidth:M,outChannels:G,padInfo:v,strideDepth:h,strideHeight:m,strideWidth:C,filterDepth:d,filterHeight:f,filterWidth:p,effectiveFilterDepth:k,effectiveFilterHeight:x,effectiveFilterWidth:B,dilationDepth:b,dilationHeight:I,dilationWidth:w,inShape:e,outShape:D,filterShape:A}},_n=(e,A,t,r,n,a)=>{let s="channelsLast"===a;s?e[0].dims[3]:e[0].dims[1];let i={x:t.map(((e,A)=>A))},o=[Math.ceil(jn(i.x.map((e=>t[e])))/64),1,1];oA("verbose",(()=>`[conv3d_naive_webgpu] dispatch = ${o}`));let l=[{type:12,data:xA.size(t)},{type:12,data:r},{type:12,data:n},{type:12,data:A.strides},{type:12,data:A.dilations}];En(A,l),l.push(...TA(e[0].dims,e[1].dims));let c=["rank","rank"],g=3===e.length;g&&(l.push(...TA(e[2].dims)),c.push("rank")),l.push(...TA(t));return{name:"Conv3DNaive",shaderCache:{hint:`${A.cacheKey};${s};1;${g}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:o[0],y:o[1],z:o[2]},programUniforms:l}),getShaderSource:a=>{let i=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:r.length},{name:"pads",type:"u32",length:n.length},{name:"strides",type:"u32",length:A.strides.length},{name:"dilations",type:"u32",length:A.dilations.length}];Mn(A,i);let o=DA(e[0].dataType),l=LA("x",e[0].dataType,e[0].dims.length,1),c=LA("W",e[1].dataType,e[1].dims.length,1),u=[l,c],d=YA("result",e[0].dataType,t.length,1),f="";if(g){let A=LA("bias",e[2].dataType,e[2].dims.length,1);u.push(A),f+=`\n fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${o} {\n return bias[${NA("coords",s?4:1,5)}];\n }`}let p=Dn(1,o),h=yn(A,p,o);return`\n ${f}\n fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {\n let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);\n return ${l.getByIndices("aIndices")};\n }\n fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {\n let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);\n return ${c.getByIndices("aIndices")};\n }\n ${a.registerUniforms(i).declareVariables(...u,d)}\n ${a.mainStart()}\n ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let coords = ${d.offsetToIndices("global_idx")};\n let batch = ${NA("coords",0,l.rank)};\n let d2 = ${NA("coords",s?l.rank-1:1,l.rank)};\n let xFRCCorner = vec3<u32>(${NA("coords",s?1:2,l.rank)},\n ${NA("coords",s?2:3,l.rank)},\n ${NA("coords",s?3:4,l.rank)}) * uniforms.strides - uniforms.pads;\n let xFCorner = xFRCCorner.x;\n let xRCorner = xFRCCorner.y;\n let xCCorner = xFRCCorner.z;\n let xShapeY = ${NA("uniforms.x_shape",s?1:2,l.rank)};\n let xShapeZ = ${NA("uniforms.x_shape",s?2:3,l.rank)};\n let xShapeW = ${NA("uniforms.x_shape",s?3:4,l.rank)};\n let xShapeU = ${NA("uniforms.x_shape",s?4:1,l.rank)};\n let inputDepthNearestVec4 = (xShapeU / 4) * 4;\n let inputDepthVec4Remainder = xShapeU % 4;\n\n var value = 0.0;\n for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) {\n let xF = xFCorner + wF * uniforms.dilations[0];\n if (xF < 0 || xF >= xShapeY) {\n continue;\n }\n\n for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) {\n let xR = xRCorner + wR * uniforms.dilations[1];\n if (xR < 0 || xR >= xShapeZ) {\n continue;\n }\n\n for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) {\n let xC = xCCorner + wC * uniforms.dilations[2];\n if (xC < 0 || xC >= xShapeW) {\n continue;\n }\n\n for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) {\n ${s?"let xValues = vec4<f32>(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3));\n ":"let xValues = vec4<f32>(\n getX(batch, d1, xF, xR, xC),\n getX(batch, d1 + 1, xF, xR, xC),\n getX(batch, d1 + 2, xF, xR, xC),\n getX(batch, d1 + 3, xF, xR, xC));\n "}\n let wValues = vec4<f32>(\n getW(d2, d1, wF, wR, wC),\n getW(d2, d1 + 1, wF, wR, wC),\n getW(d2, d1 + 2, wF, wR, wC),\n getW(d2, d1 + 3, wF, wR, wC));\n value += dot(xValues, wValues);\n }\n if (inputDepthVec4Remainder == 1) {\n ${s?"value += getX(batch, xF, xR, xC, inputDepthNearestVec4)\n * getW(d2, inputDepthNearestVec4, wF, wR, wC);":"value += getX(batch, inputDepthNearestVec4, xF, xR, xC)\n * getW(d2, inputDepthNearestVec4, wF, wR, wC);"}\n } else if (inputDepthVec4Remainder == 2) {\n ${s?"let xValues = vec2<f32>(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1));\n ":"let xValues = vec2<f32>(\n getX(batch, inputDepthNearestVec4, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC));\n "}\n let wValues = vec2<f32>(\n getW(d2, inputDepthNearestVec4, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC));\n value += dot(xValues, wValues);\n } else if (inputDepthVec4Remainder == 3) {\n ${s?"let xValues = vec3<f32>(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2));\n ":"let xValues = vec3<f32>(\n getX(batch, inputDepthNearestVec4, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC));\n "}\n let wValues = vec3<f32>(\n getW(d2, inputDepthNearestVec4, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC));\n value += dot(xValues, wValues);\n }\n }\n }\n }\n ${g?"value = value + getBiasByOutputCoords(coords)":""};\n ${h}\n result[global_idx] = f32(value);\n }`}}}})),Dl=L((()=>{rl(),cl(),gl(),xl(),$n=(e,A,t,r)=>{let n=e.length>2,a=n?"value += b[output_channel];":"",s=e[0].dims,i=e[1].dims,o="NHWC"===A.format,l=o?t[3]:t[1],c=l/A.group,g=o&&c>=4?PA(l):1,u=xA.size(t)/g,d=[{type:12,data:u},{type:12,data:A.dilations},{type:12,data:[A.strides[0],A.strides[1]]},{type:12,data:[A.pads[0],A.pads[1]]},{type:12,data:c}];En(A,d),d.push(...TA(s,[i[0],i[1],i[2],i[3]/g]));let f=n?["rank","rank","rank"]:["rank","rank"];d.push(...TA([t[0],t[1],t[2],t[3]/g]));return{name:"GroupedConv",shaderCache:{hint:`${A.cacheKey}_${g}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:r?r(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:d}),getShaderSource:r=>{let l=YA("output",e[0].dataType,t.length,g),c=DA(l.type.tensor),u=yn(A,l.type.value,c),d=LA("x",e[0].dataType,s.length),f=LA("w",e[1].dataType,i.length,g),p=[d,f];n&&p.push(LA("b",e[2].dataType,e[2].dims,g));let h=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:A.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Mn(A,h);let m=o?`\n for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) {\n let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];\n\n if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) {\n continue;\n }\n\n for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) {\n let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1];\n if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) {\n continue;\n }\n\n for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) {\n let input_channel = in_channel_offset + wInChannel;\n let xVal = ${d.get("batch","xHeight","xWidth","input_channel")};\n let wVal = ${f.get("wHeight","wWidth","wInChannel","output_channel")};\n value += xVal * wVal;\n }\n }\n }\n `:`\n for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) {\n let input_channel = in_channel_offset + wInChannel;\n for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) {\n let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];\n\n if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) {\n continue;\n }\n\n for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) {\n let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1];\n if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) {\n continue;\n }\n\n let xVal = ${d.get("batch","input_channel","xHeight","xWidth")};\n let wVal = ${f.get("output_channel","wInChannel","wHeight","wWidth")};\n value += xVal * wVal;\n }\n }\n }\n `;return`\n ${r.registerUniforms(h).declareVariables(...p,l)}\n\n ${r.mainStart()}\n ${r.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n\n let outputIndices = ${l.offsetToIndices("global_idx")};\n let batch: u32 = outputIndices[0];\n let output_channel: u32 = outputIndices[${o?3:1}];\n let xRCCorner: vec2<u32> = vec2<u32>(outputIndices[${o?1:2}], outputIndices[${o?2:3}]) * uniforms.strides - uniforms.pads;\n let group_id: u32 = output_channel * ${g} / uniforms.output_channels_per_group;\n var in_channel_offset = group_id * uniforms.w_shape[${o?2:1}];\n\n var value: ${l.type.value} = ${l.type.value}(0);\n ${m}\n ${a}\n ${u}\n ${l.setByOffset("global_idx","value")}\n }`}}},ea=(e,A,t,r)=>{let n=e.length>2,a=PA(t[3]),s=PA(t[2]),i=xA.size(t)/a/s,o=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/a],l=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/a],c=[t[0],t[1],t[2],t[3]/a],g=[{type:12,data:i},{type:6,data:[A.strides[0],A.strides[1]]},{type:6,data:[A.pads[0],A.pads[1]]}];En(A,g),g.push(...TA(o,l,c));let u=(s-1)*A.strides[1]+l[1];return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${A.cacheKey};${a};${s};${u};${l[0]};${l[1]}`,inputDependencies:n?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:r?r(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:g}),getShaderSource:t=>{let r=YA("output",e[0].dataType,c.length,a),i=DA(r.type.tensor),g=yn(A,r.type.value,i),d=LA("x",e[0].dataType,o.length,a),f=LA("w",e[1].dataType,l.length,a),p=[d,f];n&&p.push(LA("b",e[2].dataType,e[2].dims,a));let h=n?"value += b[output_channel];":"",m=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Mn(A,m),`\n ${t.registerUniforms(m).declareVariables(...p,r)}\n ${t.mainStart()}\n ${t.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let width0 = uniforms.output_shape[3];\n let output_channel = global_idx % width0;\n var index1 = global_idx / width0;\n let width1 = uniforms.output_shape[2] / ${s}u;\n let col = (index1 % width1) * ${s}u;\n index1 = index1 / width1;\n let row = index1 % uniforms.output_shape[1];\n let batch = index1 / uniforms.output_shape[1];\n\n let x_corner = vec2<i32>(i32(row), i32(col)) * uniforms.strides - uniforms.pads;\n\n var x_vals: array<${d.type.value}, ${u}>;\n var values: array<${r.type.value}, ${s}>;\n let input_channel = output_channel;\n // Use constant instead of uniform can give better performance for w's height/width.\n for (var w_height: u32 = 0u; w_height < ${l[0]}; w_height++) {\n let x_height = x_corner.x + i32(w_height);\n if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) {\n for (var i = 0; i < ${u}; i++) {\n let x_width = x_corner.y + i;\n if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) {\n x_vals[i] = ${d.get("batch","u32(x_height)","u32(x_width)","input_channel")};\n } else {\n x_vals[i] = ${d.type.value}(0);\n }\n }\n for (var w_width: u32 = 0u; w_width < ${l[1]}; w_width++) {\n let w_val = ${f.get("w_height","w_width","0","output_channel")};\n for (var i = 0u; i < ${s}u; i++) {\n values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]);\n }\n }\n }\n }\n\n for (var i = 0u; i < ${s}u; i++) {\n var value = values[i];\n ${h}\n ${g}\n ${r.set("batch","row","col + i","output_channel","value")};\n }\n }`}}}})),Ql=L((()=>{cl(),Ml(),Gl(),El(),Dl(),xl(),yl(),ul(),Aa=(e,A,t,r,n,a)=>{let s=e[0],i=e.slice(a?1:2,a?3:4),o=i.length,l=A[0],c=A.slice(2).map(((e,A)=>e+(e-1)*(t[A]-1))),g=i.map(((e,A)=>e+r[A]+r[A+o])).map(((e,A)=>Math.floor((e-c[A]+n[A])/n[A])));return g.splice(0,0,s),g.splice(a?3:1,0,l),g},ta=[2,3,1,0],ra=(e,A)=>{if(!e||2!==e.length&&3!==e.length)throw new Error("Conv requires 2 or 3 inputs");if(e[0].dims.length>5)throw new Error("greater than 5D is not supported");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");if(e[0].dims["NHWC"===A.format?e[0].dims.length-1:1]!==e[1].dims[1]*A.group)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(3===e.length&&(1!==e[2].dims.length||e[1].dims[0]!==e[2].dims[0]))throw new Error("invalid bias");let t=e[0].dims.length-2;if(A.dilations.length!==t)throw new Error(`dilations should be ${t}D`);if(A.strides.length!==t)throw new Error(`strides should be ${t}D`);if(A.pads.length!==2*t)throw new Error(`pads should be ${2*t}D`);if(0!==A.kernelShape.length&&A.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape")},na=(e,A)=>{let t=e.kernelShape.slice();t.length<A[1].dims.length-2&&t.push(...Array(A[1].dims.length-2-t.length).fill(0));for(let e=2;e<A[1].dims.length;++e)0===t[e-2]&&(t[e-2]=A[1].dims[e]);let r=e.pads.slice();BA.adjustPadsBasedOnAutoPad(A[0].dims,e.strides,e.dilations,t,r,"NHWC"===e.format,e.autoPad);let n=Object.assign({},e);return Object.assign(n,{kernelShape:t,pads:r}),n},aa=e=>{let A=Gn(e),t=e.format;return{autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],format:t,dilations:e.dilations,group:e.group,kernelShape:e.kernel_shape,pads:e.pads,strides:e.strides,wIsConst:e.w_is_const(),...A,cacheKey:`${e.format};${A.activation};`}},sa=(e,A,t,r)=>{let n="NHWC"===t.format,a=Aa(A[0].dims,A[1].dims,t.dilations,t.pads,t.strides,n);if(1!==t.group){let s=[A[0]];if(n){let r=e.kernelCustomData.wT??e.compute(JA(A[1],ta),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=r),s.push(r)}else s.push(A[1]);return 3===A.length&&s.push(A[2]),void(!e.adapterInfo.isArchitecture("ampere")&&n&&A[1].dims[0]===t.group&&1===A[1].dims[1]&&1===t.dilations[0]&&1===t.dilations[1]?e.compute(ea(s,t,a,r),{inputs:s}):e.compute($n(s,t,a,r),{inputs:s}))}let s=3===A.length,i=A[0].dims[n?1:2],o=A[0].dims[n?2:3],l=A[0].dims[n?3:1],c=A[1].dims[2],g=A[1].dims[3],u=a[n?1:2],d=a[n?2:3],f=a[n?3:1],p=n&&c===i&&g===o&&0===t.pads[0]&&0===t.pads[1];if(p||1===c&&1===g&&1===t.dilations[0]&&1===t.dilations[1]&&1===t.strides[0]&&1===t.strides[1]&&0===t.pads[0]&&0===t.pads[1]){let c,g,h,m=a[0],C=[];if(n){let r=e.kernelCustomData.wT??e.compute(JA(A[1],ta),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=r),p){let e=i*o*l;c=A[0].reshape([1,m,e]),g=r.reshape([1,e,f]),h=[1,m,f]}else c=A[0].reshape([m,i*o,l]),g=r.reshape([1,l,f]),h=[m,u*d,f];C.push(c),C.push(g)}else c=A[0].reshape([m,l,i*o]),g=A[1].reshape([1,f,l]),h=[m,f,u*d],C.push(g),C.push(c);s&&C.push(A[2]);let b=h[2],I=C[0].dims[C[0].dims.length-1];return void(b<8&&I<8?e.compute(zn(C,t,a,h,n,r),{inputs:C}):e.compute(Rn(C,t,a,h,n,r),{inputs:C}))}let h=e.kernelCustomData.wT??e.compute(JA(A[1],ta),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=h);let m=[A[0],h];s&&m.push(A[2]);let C=n?u*d:f,b=n?f:u*d,I=c*g*l;e.compute(Vn(m,t,a,C,b,I,s,!0,r),{inputs:m})},ia=(e,A)=>{let t="NHWC"===A.format,r=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];3===e.inputs.length&&r.push(e.inputs[2]);let n=[0,A.pads[0],0,A.pads[1]],a=[1].concat(A.strides),s=[1].concat(A.dilations),i=[1].concat(A.kernelShape),o=na({...A,pads:n,strides:a,dilations:s,kernelShape:i},r);sa(e,r,o,(e=>t?[e[0],e[2],e[3]]:[e[0],e[1],e[3]]))},oa=(e,A,t)=>{let r="NHWC"===t.format?"channelsLast":"channelsFirst",n=na(t,A),a="NOTSET"===t.autoPad?t.pads:t.autoPad,s=Jn(A[0].dims,A[1].dims,t.strides,t.dilations,a,!1,r);e.compute(_n(A,n,s.outShape,[s.filterDepth,s.filterHeight,s.filterWidth],[s.padInfo.front,s.padInfo.top,s.padInfo.left],r))},la=(e,A)=>{if(ra(e.inputs,A),3===e.inputs[0].dims.length)ia(e,A);else if(5===e.inputs[0].dims.length)oa(e,e.inputs,A);else{let t=na(A,e.inputs);sa(e,e.inputs,t)}}})),Tl=L((()=>{rl(),al(),cl(),gl(),ca=(e,A,t)=>{let r=e.length>2,n=A.outputShape,a="NHWC"===A.format,s=A.group,i=e[1].dims,o=i[2]/s,l=i[3],c=a?PA(o):1,g=a?PA(l):1,u=a?1===l?c:g:1,d=xA.size(n)/g,f=[Math.ceil(d/64),1,1];oA("verbose",(()=>`[conv2d_backprop_webgpu] dispatch = ${f}`));let p=["rank","rank"],h=[A.strides[0],A.strides[1]],m=[A.kernelShape[a?1:2],A.kernelShape[a?2:3]],C=[A.dilations[0],A.dilations[1]],b=[m[0]+(A.dilations[0]<=1?0:(A.kernelShape[a?1:2]-1)*(A.dilations[0]-1)),m[1]+(A.dilations[1]<=1?0:(A.kernelShape[a?2:3]-1)*(A.dilations[1]-1))],I=[b[0]-1-Math.floor((A.pads[0]+A.pads[2])/2),b[1]-1-Math.floor((A.pads[1]+A.pads[3])/2)],w=[{type:12,data:d},{type:12,data:h},{type:12,data:m},{type:12,data:C},{type:12,data:b},{type:6,data:I},{type:12,data:o},{type:12,data:l},...TA(e[0].dims,e[1].dims)];r&&(w.push(...TA(e[2].dims)),p.push("rank")),w.push(...TA(n));return{name:"ConvTranspose2D",shaderCache:{hint:`${A.cacheKey};${c}${u}${g}${1===l}`,inputDependencies:p},getRunData:()=>({dispatchGroup:{x:f[0],y:f[1],z:f[2]},outputs:[{dims:t?t(n):n,dataType:e[0].dataType}],programUniforms:w}),getShaderSource:A=>{let t=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:h.length},{name:"filter_dims",type:"u32",length:m.length},{name:"dilations",type:"u32",length:m.length},{name:"effective_filter_dims",type:"u32",length:b.length},{name:"pads",type:"i32",length:I.length},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],s=DA(e[0].dataType),i=a?1:2,o=a?2:3,d=a?3:1,f=LA("W",e[1].dataType,e[1].dims.length,u),p=LA("Dy",e[0].dataType,e[0].dims.length,c),C=[p,f];r&&C.push(LA("bias",e[2].dataType,[n[d]].length,g));let w=YA("result",e[0].dataType,n.length,g),k=`\n let outputIndices = ${w.offsetToIndices(`global_idx * ${g}`)};\n let batch = ${w.indicesGet("outputIndices",0)};\n let d1 = ${w.indicesGet("outputIndices",d)};\n let r = ${w.indicesGet("outputIndices",i)};\n let c = ${w.indicesGet("outputIndices",o)};\n let dyCorner = vec2<i32>(i32(r), i32(c)) - uniforms.pads;\n let dyRCorner = dyCorner.x;\n let dyCCorner = dyCorner.y;\n let groupId = d1 / uniforms.output_channels_per_group;\n let wOutChannel = d1 - groupId * uniforms.output_channels_per_group;\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = ${w.type.value}(0.0);\n var wR: u32 = 0;\n if (uniforms.dilations.x == 1) {\n // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0\n wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner);\n }\n for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) {\n if (wR % uniforms.dilations.x != 0) {\n continue;\n }\n let dyR = (${s}(dyRCorner) + ${s}(wR)) / ${s}(uniforms.strides[0]);\n let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x;\n if (dyR < 0.0 || dyR >= ${s}(uniforms.Dy_shape[${i}]) || fract(dyR) > 0.0 ||\n wRPerm < 0) {\n continue;\n }\n let idyR: u32 = u32(dyR);\n var wC: u32 = 0;\n if (uniforms.dilations.y == 1) {\n // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0\n wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner);\n }\n\n for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) {\n if (wC % uniforms.dilations.y != 0) {\n continue;\n }\n let dyC = (${s}(dyCCorner) + ${s}(wC)) / ${s}(uniforms.strides.y);\n let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y;\n if (dyC < 0.0 || dyC >= ${s}(uniforms.Dy_shape[${o}]) ||\n fract(dyC) > 0.0 || wCPerm < 0) {\n continue;\n }\n let idyC: u32 = u32(dyC);\n var inputChannel = groupId * uniforms.input_channels_per_group;\n for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group; d2 = d2 + ${c}) {\n let xValue = ${a?p.getByOffset(`${p.indicesToOffset(`${p.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${c}`):p.get("batch","inputChannel","idyR","idyC")};\n ${(()=>{let e="";if(1===c)e+=`\n let w_offset = ${f.indicesToOffset(`${f.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)};\n let wValue = ${f.getByOffset(`w_offset / ${u}`)};\n dotProd = dotProd + xValue * wValue;`;else if(1===l)e+=`\n let wValue = ${f.getByOffset(`${f.indicesToOffset(`${f.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)} / ${u}`)};\n dotProd = dotProd + dot(xValue, wValue);`;else for(let A=0;A<c;A++)e+=`\n let wValue${A} = ${f.getByOffset(`${f.indicesToOffset(`${f.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel + ${A}, wOutChannel)`)} / ${u}`)};\n dotProd = dotProd + xValue[${A}] * wValue${A};`;return e})()}\n inputChannel = inputChannel + ${c};\n }\n wC = wC + uniforms.strides.y - 1;\n }\n wR = wR + uniforms.strides[0] - 1;\n }\n let value = dotProd${r?` + bias[d1 / ${g}]`:""};\n ${w.setByOffset("global_idx","value")};\n `;return`\n ${A.registerUniforms(t).declareVariables(...C,w)}\n ${A.mainStart()}\n ${A.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")};\n ${k}}`}}}})),Pl=L((()=>{Tl(),xl(),ul(),ga=(e,A,t,r,n,a)=>(e-1)*A+t+(r-1)*n+1-a,ua=(e,A,t,r,n)=>{let a=Math.floor(e/2);"SAME_UPPER"===A?(t[r]=a,t[n]=e-a):"SAME_LOWER"===A&&(t[r]=e-a,t[n]=a)},da=(e,A,t,r,n,a,s,i,o,l)=>{let c=e.length-2,g=0===l.length;o.length<c&&o.push(...Array(c-o.length).fill(0));let u=e[0],d=A[i?3:1]*n;for(let n=0,u=e.length-c-(i?1:0);n<c;++n,++u){let i=e[u],d=g?i*s[n]:l[n],f=ga(i,s[n],a[n],A[u],t[n],d);ua(f,r,a,n,n+c),g&&l.push(s[n]*(i-1)+o[n]+(A[u]-1)*t[n]+1-a[n]-a[n+c])}l.splice(0,0,u),l.splice(i?3:1,0,d)},fa=(e,A)=>{let t=e.kernelShape.slice();if(0===e.kernelShape.length||0===e.kernelShape.reduce(((e,A)=>e*A),1)){t.length=0;for(let e=2;e<A[1].dims.length;++e)t.push(A[1].dims[e])}let r="NHWC"===e.format;t.splice(0,0,A[1].dims[0]),t.splice(r?3:1,0,A[1].dims[1]);let n=e.pads.slice(),a=e.outputShape.slice(),s=e.outputPadding.slice(),i=A[0].dims,o=e.dilations.slice();if(0===o.reduce(((e,A)=>e+A),0)){let e=A[0].dims.length-2;o=new Array(e).fill(1)}let l=e.strides.slice();if(0===l.reduce(((e,A)=>e+A),0)){let e=A[0].dims.length-2;l=new Array(e).fill(1)}da(i,t,o,e.autoPad,e.group,n,l,r,s,a);let c=Object.assign({},e);return Object.assign(c,{kernelShape:t,pads:n,outputPadding:s,outputShape:a,dilations:o,strides:l}),c},pa=e=>{let A=Gn(e),t=e.format,r=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],n=e.dilations,a=e.group,s=e.kernelShape,i=e.pads,o=e.strides,l=e.wIsConst();return{autoPad:r,format:t,dilations:n,group:a,kernelShape:s,outputPadding:e.outputPadding,outputShape:e.outputShape,pads:i,strides:o,wIsConst:l,...A,cacheKey:`${e.format};${A.activation};`}},ha=(e,A)=>{if(!e||2!==e.length&&3!==e.length)throw new Error("Conv requires 2 or 3 inputs");if(4!==e[0].dims.length&&3!==e[0].dims.length)throw new Error("currently only support 2-dimensional conv");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");if(e[0].dims["NHWC"===A.format?e[0].dims.length-1:1]!==e[1].dims[0])throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let t=e[1].dims[1]*A.group;if(3===e.length&&(1!==e[2].dims.length||e[2].dims[0]!==t))throw new Error("invalid bias");let r=e[0].dims.length-2;if(A.dilations.reduce(((e,A)=>e+A),0)>0&&A.dilations.length!==r)throw new Error(`dilations should be ${r}D`);if(A.strides.reduce(((e,A)=>e+A),0)>0&&A.strides.length!==r)throw new Error(`strides should be ${r}D`);if(A.pads.reduce(((e,A)=>e+A),0)>0&&A.pads.length!==2*r)throw new Error(`pads should be ${2*r}D`);if(A.outputPadding.length!==r&&0!==A.outputPadding.length)throw new Error(`output_padding should be ${r}D`);if(A.kernelShape.reduce(((e,A)=>e+A),0)>0&&0!==A.kernelShape.length&&A.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape");if(0!==A.outputShape.length&&A.outputShape.length!==e[0].dims.length-2)throw new Error("invalid output shape")},ma=(e,A,t,r)=>{let n=e.kernelCustomData.wT??e.compute(JA(A[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=n);let a=[A[0],n];3===A.length&&a.push(A[2]),e.compute(ca(a,t,r),{inputs:a})},Ca=(e,A)=>{let t="NHWC"===A.format,r=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];3===e.inputs.length&&r.push(e.inputs[2]);let n=A.kernelShape;(0===n.length||0===n[0])&&(n=[e.inputs[1].dims[2]]);let a=A.dilations;(0===a.length||0===a[0])&&(a=[1]);let s=A.strides;(0===s.length||0===s[0])&&(s=[1]);let i=A.pads;0===i.length&&(i=[0,0]),i=[0,i[0],0,i[1]],s=[1].concat(s),a=[1].concat(a),n=[1].concat(n);let o=A.outputPadding;o=[0].concat(o);let l=fa({...A,pads:i,strides:s,dilations:a,kernelShape:n,outputPadding:o},r);ma(e,r,l,(e=>t?[e[0],e[2],e[3]]:[e[0],e[1],e[3]]))},ba=(e,A)=>{if(ha(e.inputs,A),3===e.inputs[0].dims.length)Ca(e,A);else{let t=fa(A,e.inputs);ma(e,e.inputs,t)}}})),zl=L((()=>{rl(),cl(),ll(),gl(),Ia=(e,A,t,r)=>{let n=xA.size(A),a=A.length,s=LA("input",e,a),i=YA("output",e,a),o=6===t.dataType?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),l=xA.normalizeAxis(o,a);return{name:"CumSum",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:A,dataType:e}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:[{type:12,data:n},{type:12,data:l},...TA(A,A)]}),getShaderSource:e=>{let A=` i32(${s.indicesGet("inputIndices","uniforms.axis")}) `,t=NA("uniforms.input_shape","uniforms.axis",a),n=r.reverse?A+(r.exclusive?" + 1":""):"0",o=r.reverse?t:A+(r.exclusive?"":" + 1");return`\n ${e.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(s,i)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n var inputIndices = ${i.offsetToIndices("global_idx")};\n var sum = ${i.type.value}(0);\n let first : i32 = ${n};\n let last : i32 = ${o};\n for (var i : i32 = first; i < last; i++) {\n ${s.indicesSet("inputIndices","uniforms.axis","u32(i)")};\n sum = sum + ${s.getByIndices("inputIndices")};\n }\n ${i.setByOffset("global_idx","sum")};\n }`}}},wa=(e,A)=>{let t=e.inputs[0].dims,r=e.inputs[0].dataType,n=e.inputs[1];e.compute(Ia(r,t,n,A),{inputs:[0]})},ka=e=>{let A=1===e.exclusive,t=1===e.reverse;return IA({exclusive:A,reverse:t})}})),Fl=L((()=>{rl(),cl(),ll(),gl(),xa=e=>{if(!e||1!==e.length)throw new Error("DepthToSpace requires 1 input.");if(4!==e[0].dims.length)throw new Error("DepthToSpace requires 4D input.")},Ba=(e,A,t,r)=>{let n=[];n.push(`fn perm(i: ${r.type.indices}) -> ${t.type.indices} {\n var a: ${t.type.indices};`);for(let r=0;r<A;++r)n.push(t.indicesSet("a",e[r],`i[${r}]`));return n.push("return a;}"),n.join("\n")},va=(e,A)=>{let t,r,n,a,s,i,o="NHWC"===A.format,l=A.blocksize,c="DCR"===A.mode;o?([t,r,n,a]=e.dims,s=c?[t,r,n,l,l,a/l**2]:[t,r,n,a/l**2,l,l],i=c?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,r,n,a]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],s=c?[t,l,l,a/l**2,r,n]:[t,a/l**2,l,l,r,n],i=c?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let g=e.reshape(s),u=g.dims.length,d=e.dataType,f=LA("a",d,u),p=YA("output",d,u);return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${A.blocksize};${A.mode}`,inputDependencies:["rank"]},getRunData:e=>{let A=o?[t,r*l,n*l,a/l**2]:[t,a/l**2,r*l,n*l],s=xA.size(A),c=g.dims,u=xA.sortBasedOnPerm(c,i);return{outputs:[{dims:A,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:[{type:12,data:s},...TA(c,u)]}},getShaderSource:e=>`\n ${e.registerUniform("output_size","u32").declareVariables(f,p)}\n\n ${Ba(i,u,f,p)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n\n let indices = ${p.offsetToIndices("global_idx")};\n let aIndices = perm(indices);\n\n ${p.setByOffset("global_idx",f.getByIndices("aIndices"))}\n }`}},ya=(e,A)=>{xa(e.inputs),e.compute(va(e.inputs[0],A))},Ea=e=>IA({blocksize:e.blocksize,mode:e.mode,format:e.format})})),Sl=L((()=>{rl(),cl(),ll(),gl(),Da="^"+(Ga="("+(Ma="[a-zA-Z]|\\.\\.\\.")+")+")+"$",Qa="^"+("("+Ga+",)*"+Ga)+"$",Ta=class{constructor(e=-1){this.symbolToIndices=new Map,this.inputIndex=e}addSymbol(e,A){let t=this.symbolToIndices.get(e);void 0===t?t=[A]:t.push(A),this.symbolToIndices.set(e,t)}},Pa=class{constructor(e,A){this.equation=A,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[t,r]=A.includes("->")?A.split("->",2):[A,""];if(!t.match(RegExp(Qa)))throw new Error("Invalid LHS term");if(t.split(",").forEach(((A,t)=>{let r=e[t].dims.slice();if(!A.match(RegExp(Da)))throw new Error("Invalid LHS term");let n=this.processTerm(A,!0,r,t);this.lhs.push(n)})),""===r)r+=[...this.symbolToInfo.entries()].filter((([e,A])=>1===A.count||"..."===e)).map((([e])=>e)).join("");else if(!r.match(RegExp(Ga)))throw new Error("Invalid RHS");r.match(RegExp(Ma,"g"))?.forEach((e=>{if("..."===e)this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let A=this.symbolToInfo.get(e);if(void 0===A)throw new Error("Invalid RHS symbol");this.outputDims.push(A.dimValue)}})),this.rhs=this.processTerm(r,!1,this.outputDims)}addSymbol(e,A,t){let r=this.symbolToInfo.get(e);if(void 0!==r){if(r.dimValue!==A&&1!==r.count)throw new Error("Dimension mismatch");r.count++,r.inputIndices.push(t)}else r={count:1,dimValue:A,inputIndices:[t]};this.symbolToInfo.set(e,r)}processTerm(e,A,t,r=-1){let n=t.length,a=!1,s=[],i=0;if(!e.match(RegExp(Da))&&!A&&""!==e)throw new Error("Invalid LHS term");let o=e.match(RegExp(Ma,"g")),l=new Ta(r);return o?.forEach(((e,c)=>{if("..."===e){if(a)throw new Error("Only one ellipsis is allowed per input term");a=!0;let e=n-o.length+1;if(e<0)throw new Error("Ellipsis out of bounds");if(s=t.slice(i,i+e),this.hasEllipsis){if(this.ellipsisDims.length!==s.length||this.ellipsisDims.toString()!==s.toString())throw new Error("Ellipsis dimensions mismatch")}else{if(!A)throw new Error("Ellipsis must be specified in the LHS");this.hasEllipsis=!0,this.ellipsisDims=s}for(let e=0;e<s.length;e++){let A=String.fromCharCode("0".charCodeAt(0)+e);l.addSymbol(A,c+e),this.addSymbol(A,t[i++],r)}}else l.addSymbol(e,c+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(e,t[i++],r)})),l}},za=e=>e+"_max",Fa=(e,A,t,r)=>{let n=e.map((e=>e.length)).map(((e,t)=>LA(`input${t}`,A,e))),a=xA.size(r),s=YA("output",A,r.length),i=[...t.symbolToInfo.keys()].filter((e=>!t.rhs.symbolToIndices.has(e)));return{name:"Einsum",shaderCache:{hint:t.equation,inputDependencies:e.map((()=>"rank"))},getRunData:()=>{let n=i.filter((e=>t.symbolToInfo.has(e))).map((e=>({type:12,data:t.symbolToInfo.get(e)?.dimValue||0})));n.push({type:12,data:a});let s=e.map(((e,A)=>[...TA(e)])).reduce(((e,A)=>e.concat(A)),n);return s.push(...TA(r)),{outputs:[{dims:r,dataType:A}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:s}},getShaderSource:e=>{let A=[],r=[],a=[],o=[],l=[],c=t.symbolToInfo.size===t.rhs.symbolToIndices.size;t.symbolToInfo.forEach(((e,i)=>{if(t.rhs.symbolToIndices.has(i)){let r=t.rhs.symbolToIndices.get(i)?.[0];void 0!==r&&t.lhs.forEach(((t,a)=>{if(e.inputIndices.includes(a)){let e=t.symbolToIndices.get(i);if(void 0===e)throw new Error("Invalid symbol error");e.forEach((e=>{A.push(`${n[a].indicesSet(`input${a}Indices`,e,s.indicesGet("outputIndices",r))}`)}))}}))}else t.lhs.forEach(((A,t)=>{if(e.inputIndices.includes(t)){let e=A.symbolToIndices.get(i);if(void 0===e)throw new Error("Invalid symbol error");e.forEach((e=>{r.push(`${n[t].indicesSet(`input${t}Indices`,e,`${i}`)}`)})),l.push(`prod *= ${n[t].getByIndices(`input${t}Indices`)};`)}})),a.push(`for(var ${i}: u32 = 0; ${i} < uniforms.${za(i)}; ${i}++) {`),o.push("}")}));let g=c?[...A,`let sum = ${n.map(((e,A)=>e.getByIndices(`input${A}Indices`))).join(" * ")};`]:[...A,"var sum = 0.0;",...a,...r,"var prod = 1.0;",...l,"sum += prod;",...o];return`\n ${e.registerUniforms(i.map((e=>({name:`${za(e)}`,type:"u32"})))).registerUniform("outputSize","u32").declareVariables(...n,s)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n var outputIndices = ${s.offsetToIndices("global_idx")};\n ${n.map(((e,A)=>`var input${A}Indices: ${n[A].type.indices};`)).join("\n")}\n ${g.join("\n")};\n ${s.setByOffset("global_idx","sum")};\n }`}}},Sa=(e,A)=>{let t=new Pa(e.inputs,A.equation),r=t.outputDims,n=e.inputs.map(((e,A)=>e.dims));e.compute(Fa(n,e.inputs[0].dataType,t,r))},Na=e=>{let A=e.equation.replace(/\s+/g,"");return IA({equation:A})}})),Nl=L((()=>{rl(),cl(),gl(),Oa=e=>{if(!e||2!==e.length)throw new Error("Expand requires 2 input.");let A=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),r=t.length<A.length?0:t.length-A.length,n=A.length<t.length?0:A.length-t.length;for(;r<t.length&&n<A.length;++r,++n)if(t[r]!==A[n]&&1!==t[r]&&1!==A[n])throw new Error("Expand requires shape to be broadcastable to input")},La=(e,A)=>{let t=e.length-A.length,r=[];for(let A=0;A<t;++A)r.push(e[A]);for(let n=0;n<A.length;++n)r.push(1===A[n]?e[n+t]:A[n]);return r},Ya=(e,A)=>e.length>A.length?La(e,A):La(A,e),Ha=e=>{let A=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),r=Ya(A,t),n=e[0].dataType,a=9===n||1===xA.size(A),s=9===n||A.length>0&&A[A.length-1]%4==0?4:1,i=a||r.length>0&&r[r.length-1]%4==0?4:1,o=Math.ceil(xA.size(r)/i),l=[{type:12,data:o},...TA(A,r)];return{name:"Expand",shaderCache:{hint:`${r.length};${s}${i}`,inputDependencies:["rank"]},getShaderSource:e=>{let t,a=LA("input",n,A.length,s),o=YA("output",n,r.length,i);if(9===n){let e=(e,A,t="")=>`\n let outputIndices${A} = ${o.offsetToIndices(`outputOffset + ${A}u`)};\n let offset${A} = ${a.broadcastedIndicesToOffset(`outputIndices${A}`,o)};\n let index${A} = offset${A} / 4u;\n let component${A} = offset${A} % 4u;\n ${e}[${A}] = ${t}(${a.getByOffset(`index${A}`)}[component${A}]);\n `;t=`\n let outputOffset = global_idx * ${i};\n var data = vec4<u32>(0);\n ${e("data",0,"u32")}\n ${e("data",1,"u32")}\n ${e("data",2,"u32")}\n ${e("data",3,"u32")}\n ${o.setByOffset("global_idx","data")}\n }`}else t=`\n let outputIndices = ${o.offsetToIndices(`global_idx * ${i}`)};\n let inputOffset = ${a.broadcastedIndicesToOffset("outputIndices",o)};\n let data = ${o.type.value}(${a.getByOffset(`inputOffset / ${s}`)});\n ${o.setByOffset("global_idx","data")}\n }`;return`\n ${e.registerUniform("vec_size","u32").declareVariables(a,o)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}\n ${t}`},getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:l})}},Ra=e=>{Oa(e.inputs),e.compute(Ha(e.inputs),{inputs:[0]})}})),Ol=L((()=>{rl(),cl(),gl(),bl(),Wa=e=>{let A=e[0].dataType,t=xA.size(e[0].dims),r=xA.size(e[1].dims),n=r%4==0;return{name:"FastGeluWithBias",shaderCache:{hint:`${n}`,inputDependencies:["type","type"]},getShaderSource:e=>{let t=LA("x",A,[1],4),r=LA("bias",A,[1],4),a=YA("y",A,[1],4),s=e=>`\n let bias${e}_offset: u32 = (global_idx * 4 + ${e}) % uniforms.bias_size;\n let bias${e} = ${r.getByOffset(`bias${e}_offset / 4`)}[bias${e}_offset % 4];`,i=n?`\n let bias = ${r.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${s(0)}${s(1)}${s(2)}${s(3)}\n let bias = ${t.type.value}(bias0, bias1, bias2, bias3);`;return`${e.registerUniforms([{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}]).declareVariables(t,r,a)}\n\n ${Xr(QA(A))}\n\n ${e.mainStart(MA)}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")}\n\n let x = ${t.getByOffset("global_idx")};\n ${i}\n let x_in = x + bias;\n ${a.setByOffset("global_idx",qr("x_in"))}\n }`},getRunData:e=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:r}],dispatchGroup:{x:Math.ceil(t/MA/4)}})}},Va=e=>{e.inputs.length<2||0===xA.size(e.inputs[1].dims)?Jr(e):e.compute(Wa(e.inputs))}})),Ll=L((()=>{rl(),cl(),ll(),gl(),ja=e=>{if(!e||2!==e.length)throw new Error("Gather requires 2 inputs.")},Ua=(e,A)=>{let t=e[0].dims,r=e[1].dims,n=t.length,a=xA.normalizeAxis(A.axis,n),s=t.slice(0);s.splice(a,1,...r);let i=t[a],o=9===e[0].dataType?4:1,l=Math.ceil(xA.size(s)/o),c=[{type:12,data:l},{type:6,data:i},{type:12,data:a},...TA(e[0].dims,e[1].dims,s)];return{name:"Gather",shaderCache:{hint:A.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:A=>{let t,i=LA("data",e[0].dataType,e[0].dims.length,o),l=LA("inputIndices",e[1].dataType,e[1].dims.length),c=YA("output",e[0].dataType,s.length,o),g=e=>{let A=r.length,t=`var indicesIndices${e} = ${l.type.indices}(0);`;for(let r=0;r<A;r++)t+=`${A>1?`indicesIndices${e}[${r}]`:`indicesIndices${e}`} = ${s.length>1?`outputIndices${e}[uniforms.axis + ${r}]`:`outputIndices${e}`};`;t+=`\n var idx${e} = ${l.getByIndices(`indicesIndices${e}`)};\n if (idx${e} < 0) {\n idx${e} = idx${e} + uniforms.axisDimLimit;\n }\n var dataIndices${e} : ${i.type.indices};\n `;for(let r=0,i=0;r<n;r++)r===a?(t+=`${n>1?`dataIndices${e}[${r}]`:`dataIndices${e}`} = u32(idx${e});`,i+=A):(t+=`${n>1?`dataIndices${e}[${r}]`:`dataIndices${e}`} = ${s.length>1?`outputIndices${e}[${i}]`:`outputIndices${e}`};`,i++);return t};if(9===e[0].dataType){let e=(e,A,t="")=>`\n let outputIndices${A} = ${c.offsetToIndices(`outputOffset + ${A}u`)};\n ${g(A)};\n let offset${A} = ${i.indicesToOffset(`dataIndices${A}`)};\n let index${A} = offset${A} / 4u;\n let component${A} = offset${A} % 4u;\n ${e}[${A}] = ${t}(${i.getByOffset(`index${A}`)}[component${A}]);\n `;t=`\n let outputOffset = global_idx * ${o};\n var value = vec4<u32>(0);\n ${e("value",0,"u32")}\n ${e("value",1,"u32")}\n ${e("value",2,"u32")}\n ${e("value",3,"u32")}\n ${c.setByOffset("global_idx","value")}\n `}else t=`\n let outputIndices = ${c.offsetToIndices("global_idx")};\n ${g("")};\n let value = ${i.getByIndices("dataIndices")};\n ${c.setByOffset("global_idx","value")};\n `;return`\n ${A.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(i,l,c)}\n ${A.mainStart()}\n ${A.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n ${t}\n }`}}},Ka=e=>IA({axis:e.axis}),Za=(e,A)=>{let t=e.inputs;ja(t),e.compute(Ua(e.inputs,A))}})),Yl=L((()=>{rl(),cl(),gl(),Xa=(e,A,t,r,n,a,s,i,o)=>{let l=[{type:12,data:a},{type:12,data:r},{type:12,data:n},{type:12,data:t},{type:12,data:s},{type:12,data:i},{type:12,data:o}],c=[a];l.push(...TA(A.dims,c));return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${n.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:l}),getShaderSource:e=>{let r=[LA("indices_data",A.dataType,A.dims.length),YA("input_slice_offsets_data",12,1,1)],a=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:n.length},{name:"sizes_from_slice_dims_data",type:"u32",length:t.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return`\n ${e.registerUniforms(a).declareVariables(...r)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let batch_idx = global_idx / uniforms.num_slices_per_batch;\n let base_offset = batch_idx * uniforms.input_batch_stride;\n\n let slice_indices_base_offset = global_idx * uniforms.num_slice_dims;\n var relative_slice_offset = 0;\n for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) {\n var index = i32(indices_data[dim_idx + slice_indices_base_offset].x);\n let input_dim_idx = uniforms.batch_dims + dim_idx;\n if (index < 0) {\n ${1===n.length?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"}\n }\n ${1===t.length?"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);":"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);"}\n }\n\n input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset);\n }`}},{inputs:[A],outputs:[-1]})[0]},qa=(e,A)=>{let t=e.inputs,r=t[0].dims,n=t[0].dataType,a=t[1].dims,s=a[a.length-1],i=xA.sizeToDimension(a,a.length-1),o=xA.sizeFromDimension(r,A.batchDims+s),l=xA.sizeToDimension(r,A.batchDims),c=xA.sizeFromDimension(r,A.batchDims),g=i/l,u=new Array(s),d=o;for(let e=0;e<s;++e)u[s-1-e]=d,d*=r[A.batchDims+s-1-e];let f=Xa(e,t[1],u,A.batchDims,r,i,g,c,s),p=A.batchDims+s;if(p>r.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let h=a.slice(0,-1).concat(r.slice(p)),m=xA.size(h),C=[{type:12,data:m},{type:12,data:o},...TA(t[0].dims,f.dims,h)];e.compute({name:"GatherND",shaderCache:{hint:A.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:h,dataType:n}],dispatchGroup:{x:Math.ceil(m/64)},programUniforms:C}),getShaderSource:e=>{let A=LA("data",t[0].dataType,t[0].dims.length),r=LA("slice_offsets",12,f.dims.length),n=YA("output",t[0].dataType,h.length);return`\n ${e.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(A,r,n)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let slice_offset = slice_offsets[global_idx / uniforms.slice_size];\n output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size];\n }`}},{inputs:[t[0],f]})},Ja=e=>({batchDims:e.batch_dims,cacheKey:""})})),Hl=L((()=>{rl(),cl(),ll(),gl(),_a=(e,A)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=xA.normalizeAxis(A.quantizeAxis,e[0].dims.length),r=A.blockSize,n=e[0],a=e[2],s=4===e.length?e[3]:void 0;if(a.dims.length!==n.dims.length||!n.dims.map(((e,A)=>A===t?Math.ceil(e/r)===a.dims[A]:e===a.dims[A])).reduce(((e,A)=>e&&A),!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(s){if(s.dataType!==n.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(s.dims.length!==a.dims.length||!s.dims.map(((e,A)=>e===a.dims[A])).reduce(((e,A)=>e&&A),!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},$a=(e,A)=>{let t=e[0].dims,r=e[1].dims,n=t.length,a=xA.normalizeAxis(A.gatherAxis,n),s=xA.normalizeAxis(A.quantizeAxis,n),i=t.slice(0);i.splice(a,1,...r);let o=xA.size(i),l=e[2].dataType,c=22===e[0].dataType,g=[{type:12,data:o},{type:12,data:s},{type:12,data:a},{type:12,data:A.blockSize},...TA(...e.map(((e,A)=>e.dims)),i)];return{name:"GatherBlockQuantized",shaderCache:{hint:`${A.cacheKey};${e.filter(((e,A)=>1!==A)).map((e=>e.dims.join("_"))).join(";")}`,inputDependencies:Array.from({length:e.length},((e,A)=>"rank"))},getRunData:()=>({outputs:[{dims:i,dataType:l}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:g}),getShaderSource:A=>{let n=LA("data",e[0].dataType,e[0].dims.length),s=LA("inputIndices",e[1].dataType,e[1].dims.length),o=LA("scales",e[2].dataType,e[2].dims.length),g=e.length>3?LA("zeroPoint",e[3].dataType,e[3].dims.length):void 0,u=YA("output",l,i.length),d=[n,s,o];g&&d.push(g);return`\n ${A.registerUniforms([{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}]).declareVariables(...d,u)}\n ${A.mainStart()}\n let output_indices = ${u.offsetToIndices("global_idx")};\n var indices_indices = ${s.type.indices}(0);\n ${r.length>1?`\n for (var i: u32 = 0; i < ${r.length}; i++) {\n let index = ${u.indicesGet("output_indices","uniforms.gather_axis + i")};\n ${s.indicesSet("indices_indices","i","index")};\n }`:`indices_indices = ${u.indicesGet("output_indices","uniforms.gather_axis")};`};\n var data_indices = ${n.type.indices}(0);\n for (var i: u32 = 0; i < uniforms.gather_axis; i++) {\n let index = ${u.indicesGet("output_indices","i")};\n ${n.indicesSet("data_indices","i","index")};\n }\n var index_from_indices = ${s.getByIndices("indices_indices")};\n if (index_from_indices < 0) {\n index_from_indices += ${t[a]};\n }\n ${n.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")};\n for (var i = uniforms.gather_axis + 1; i < ${i.length}; i++) {\n let index = ${u.indicesGet("output_indices",`i + ${r.length} - 1`)};\n ${n.indicesSet("data_indices","i","index")};\n }\n let data_offset = ${n.indicesToOffset("data_indices")};\n let data_index = data_offset % 8;\n // Convert 4-bit packed data to 8-bit packed data.\n let packed_4bit_quantized_data = ${n.getByOffset("data_offset / 8")};\n let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f;\n let quantized_data_vec = ${c?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data));\n let quantized_data = quantized_data_vec[data_index / 2];\n var scale_indices = data_indices;\n let quantize_axis_index = ${o.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size;\n ${o.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")};\n var scale = ${o.getByIndices("scale_indices")};\n ${g?`\n let zero_point_indices = scale_indices;\n let zero_point_offset = ${g.indicesToOffset("zero_point_indices")};\n let zero_point_index = zero_point_offset % 8;\n let packed_4bit_zero_points = ${g.getByOffset("zero_point_offset / 8")};\n let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f;\n let zero_point_vec = ${c?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points));\n let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"};\n let dequantized_data = ${QA(l)}(quantized_data - zero_point) * scale;\n ${u.setByOffset("global_idx","dequantized_data")};\n }`}}},es=(e,A)=>{let t=e.inputs;_a(t,A),e.compute($a(e.inputs,A))},As=e=>IA({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})})),Rl=L((()=>{rl(),cl(),ll(),gl(),ts=e=>{if(!e||2!==e.length)throw new Error("GatherElements requires 2 inputs.");if(e[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(e[0].dims.length!==e[1].dims.length)throw new Error("GatherElements requires that the data input and\n indices input tensors be of same rank.")},rs=(e,A)=>{let t=e[0].dims,r=e[0].dataType,n=t.length,a=e[1].dims,s=e[1].dataType,i=xA.normalizeAxis(A.axis,n),o=t[i],l=a.slice(0),c=xA.size(l),g=LA("input",r,n),u=LA("indicesInput",s,a.length),d=YA("output",r,l.length),f=[{type:12,data:c},{type:6,data:o},{type:12,data:i}];return f.push(...TA(t,a,l)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:l,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:f}),getShaderSource:e=>`\n ${e.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(g,u,d)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n\n let outputIndices = ${d.offsetToIndices("global_idx")};\n\n var idx = ${u.getByOffset("global_idx")};\n if (idx < 0) {\n idx = idx + uniforms.axisDimLimit;\n }\n var inputIndices = ${g.type.indices}(outputIndices);\n ${g.indicesSet("inputIndices","uniforms.axis","u32(idx)")};\n let value = ${g.getByIndices("inputIndices")};\n\n ${d.setByOffset("global_idx","value")};\n }`}},ns=e=>IA({axis:e.axis}),as=(e,A)=>{let t=e.inputs;ts(t),e.compute(rs(e.inputs,A))}})),Wl=L((()=>{rl(),cl(),gl(),ss=e=>{if(!e)throw new Error("Input is missing");if(e.length<2||e.length>3)throw new Error("Invaid input number.");if(3===e.length&&e[2].dims.length>2)throw new Error("Invalid input shape of C");if(e[0].dataType!==e[1].dataType||3===e.length&&e[0].dataType!==e[2].dataType)throw new Error("Input types are mismatched")},is=(e,A)=>{let t=e[0].dims.slice(),r=e[1].dims.slice(),[n,a,s]=vA.getShapeOfGemmResult(t,A.transA,r,A.transB,3===e.length?e[2].dims:void 0),i=[n,a];if(!i)throw new Error("Can't use gemm on the given tensors");let o=16,l=Math.ceil(a/o),c=Math.ceil(n/o),g=(xA.size(i),[{type:12,data:l},{type:12,data:n},{type:12,data:a},{type:12,data:s},{type:1,data:A.alpha},{type:1,data:A.beta}]),u=["type","type"];3===e.length&&(g.push(...TA(e[2].dims)),u.push("rank")),g.push(...TA(i));return{name:"GemmShared",shaderCache:{hint:`${A.cacheKey}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:l*c},programUniforms:g}),getShaderSource:t=>{let r=LA("a",e[0].dataType,e[0].dims),n=LA("b",e[1].dataType,e[1].dims),a=null,s=[r,n];3===e.length&&(a=LA("c",e[2].dataType,e[2].dims.length),s.push(a));let l=YA("output",e[0].dataType,i.length);s.push(l);let c="",g="";A.transA&&A.transB?(g=`\n var col = tile_row_start + local_id.x;\n var row = k_start + local_id.y;\n if (col < uniforms.M && row < uniforms.K) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${r.type.value}(0);\n }\n\n col = k_start + local_id.x;\n row = tile_col_start + local_id.y;\n if (col < uniforms.K && row < uniforms.N) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${n.type.value}(0);\n }\n `,c="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):A.transA&&!A.transB?(g=`\n var col = tile_row_start + local_id.x;\n var row = k_start + local_id.y;\n if (col < uniforms.M && row < uniforms.K) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${r.type.value}(0);\n }\n\n col = tile_col_start + local_id.x;\n row = k_start + local_id.y;\n if (col < uniforms.N && row < uniforms.K) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${n.type.value}(0);\n }\n `,c="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!A.transA&&A.transB?(g=`\n var col = k_start + local_id.x;\n var row = tile_row_start + local_id.y;\n if (col < uniforms.K && row < uniforms.M) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${r.type.value}(0);\n }\n\n col = k_start + local_id.x;\n row = tile_col_start + local_id.y;\n if (col < uniforms.K && row < uniforms.N) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${n.type.value}(0);\n }\n `,c="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!A.transA&&!A.transB&&(g=`\n var col = k_start + local_id.x;\n var row = tile_row_start + local_id.y;\n if (col < uniforms.K && row < uniforms.M) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${r.type.value}(0);\n }\n\n col = tile_col_start + local_id.x;\n row = k_start + local_id.y;\n if (col < uniforms.N && row < uniforms.K) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${n.type.value}(0);\n }\n `,c="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let u=1===A.alpha?"":"value *= uniforms.alpha;";return`\n ${t.registerUniforms([{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"}]).declareVariables(...s)}\n var<workgroup> tile_a: array<array<${r.type.storage}, 16>, 16>;\n var<workgroup> tile_b: array<array<${n.type.storage}, 16>, 16>;\n ${t.mainStart([o,o,1])}\n let tile_col_start = (workgroup_index % uniforms.num_tile_n) * 16;\n let tile_row_start = (workgroup_index / uniforms.num_tile_n) * 16;\n let num_tiles = (uniforms.K - 1) / 16 + 1;\n var k_start = 0u;\n var value = ${l.type.value}(0);\n for (var t: u32 = 0u; t < num_tiles; t++) {\n ${g}\n k_start = k_start + 16;\n workgroupBarrier();\n\n for (var k: u32 = 0u; k < 16; k++) {\n ${c}\n }\n workgroupBarrier();\n }\n\n ${u}\n let m = tile_row_start + local_id.y;\n let n = tile_col_start + local_id.x;\n ${null!=a?`let cOffset = ${a.broadcastedIndicesToOffset("vec2(m, n)",l)}; value += ${l.type.value}(uniforms.beta) * ${a.getByOffset("cOffset")};`:""}\n if (m < uniforms.M && n < uniforms.N) {\n output[m * uniforms.N + n] = value;\n }\n }`}}},os=e=>({transA:e.transA,transB:e.transB,alpha:e.alpha,beta:e.beta,cacheKey:`${e.transA};${e.transB};${1===e.alpha}`}),ls=(e,A)=>{ss(e.inputs),e.compute(is(e.inputs,A))}})),Vl=L((()=>{rl(),cl(),ll(),gl(),[cs,gs,us,ds]=[0,1,2,3],fs=e=>{if(4!==e[0].dims.length)throw new Error("only 4-D tensor is supported.");if(e[0].dims.length!==e[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(e[0].dims.length-2!==e[1].dims[e[1].dims.length-1])throw new Error("last dimension of grid must be equal to "+(e[0].dims.length-2));if(e[0].dims[0]!==e[1].dims[0])throw new Error("grid batch size must match input batch size")},ps=e=>`\n fn gs_bicubic_interpolate(p: mat4x4<${e}>, x: f32, y: f32) -> ${e} {\n var v: vec4<f32>;\n var coeffs = gs_get_cubic_coeffs(x);\n for (var i = 0; i < 4; i++) {\n v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3];\n }\n coeffs = gs_get_cubic_coeffs(y);\n let pixel = ${e}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]);\n return pixel;\n }\n`,hs=e=>`\n fn gs_denormalize(n: f32, length: i32) -> f32 {\n ${0===e.alignCorners?"\n // alignCorners: false => [-1, 1] to [-0.5, length - 0.5]\n return ((n + 1.0) * f32(length) - 1.0) / 2.0;\n ":"\n // alignCorners: true => [-1, 1] to [0, length - 1]\n return (n + 1.0) / 2.0 * (f32(length - 1));\n "}\n }\n`,ms=e=>`\n ${"reflection"===e.paddingMode?"\n fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 {\n var dx = 0.0;\n var fx = f32(x);\n let range = x_max - x_min;\n if (fx < x_min) {\n dx = x_min - fx;\n let n = u32(dx / range);\n let r = dx - f32(n) * range;\n if (n % 2 == 0) {\n fx = x_min + r;\n } else {\n fx = x_max - r;\n }\n } else if (fx > x_max) {\n dx = fx - x_max;\n let n = u32(dx / range);\n let r = dx - f32(n) * range;\n if (n % 2 == 0) {\n fx = x_max - r;\n } else {\n fx = x_min + r;\n }\n }\n return u32(fx);\n }":""}\n`,Cs=(e,A,t)=>`\n fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4<f32>) -> ${A} {\n var pixel = ${A}(0);\n var indices = vec4<u32>(0);\n indices[${cs}] = batch;\n indices[${gs}] = channel;`+(()=>{switch(t.paddingMode){case"zeros":return`\n if (r >= 0 && r < H && c >=0 && c < W) {\n indices[${us}] = u32(r);\n indices[${ds}] = u32(c);\n }\n `;case"border":return`\n indices[${us}] = u32(clamp(r, 0, H - 1));\n indices[${ds}] = u32(clamp(c, 0, W - 1));\n `;case"reflection":return`\n indices[${us}] = gs_reflect(r, border[1], border[3]);\n indices[${ds}] = gs_reflect(c, border[0], border[2]);\n `;default:throw new Error(`padding mode ${t.paddingMode} is not supported`)}})()+`\n return ${e.getByIndices("indices")};\n }\n`,bs=(e,A,t)=>(()=>{switch(t.mode){case"nearest":return`\n let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${cs}], indices[${gs}], border);\n `;case"bilinear":return`\n let x1 = i32(floor(x));\n let y1 = i32(floor(y));\n let x2 = x1 + 1;\n let y2 = y1 + 1;\n\n let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${cs}], indices[${gs}], border);\n let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${cs}], indices[${gs}], border);\n let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${cs}], indices[${gs}], border);\n let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${cs}], indices[${gs}], border);\n\n let dx2 = ${A}(f32(x2) - x);\n let dx1 = ${A}(x - f32(x1));\n let dy2 = ${A}(f32(y2) - y);\n let dy1 = ${A}(y - f32(y1));\n let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22);\n `;case"bicubic":return`\n let x0 = i32(floor(x)) - 1;\n let y0 = i32(floor(y)) - 1;\n var p: mat4x4<${A}>;\n for (var h = 0; h < 4; h++) {\n for (var w = 0; w < 4; w++) {\n p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${cs}], indices[${gs}], border);\n }\n }\n\n let dx = x - f32(x0 + 1);\n let dy = y - f32(y0 + 1);\n let result = gs_bicubic_interpolate(p, dx, dy);\n `;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,Is=(e,A)=>{let t=LA("x",e[0].dataType,e[0].dims.length),r=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],n=LA("grid",e[1].dataType,r.length,2),a=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];"NHWC"===A.format&&(a=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[cs,gs,us,ds]=[0,3,1,2]);let s=YA("output",e[0].dataType,a.length),i=t.type.value,o=[{type:12,data:xA.size(a)},...TA(e[0].dims,r,a)];return{name:"GridSample",shaderCache:{hint:`${A.cacheKey}`,inputDependencies:["type","type"]},getRunData:e=>{let A=xA.size(a);return{outputs:[{dims:a,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(A/64)},programUniforms:o}},getShaderSource:e=>`\n ${e.registerUniform("output_size","u32").declareVariables(t,n,s)}\n \n fn gs_get_cubic_coeffs(x: f32) -> vec4<f32> {\n let cubic_alpha = -0.75f;\n let x_abs = abs(x);\n var coeffs: vec4<f32>;\n coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha);\n coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1);\n coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1);\n coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha);\n return coeffs;\n }\n\n ${ps(i)}\n ${hs(A)}\n ${ms(A)}\n ${Cs(t,i,A)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let H_in = i32(uniforms.x_shape[${us}]);\n let W_in = i32(uniforms.x_shape[${ds}]);\n\n ${0===A.alignCorners?"\n let x_min = -0.5;\n let x_max = f32(W_in) - 0.5;\n let y_min = -0.5;\n let y_max = f32(H_in) - 0.5;\n ":"\n let x_min = 0.0;\n let x_max = f32(W_in) - 1.0;\n let y_min = 0.0;\n let y_max = f32(H_in) - 1.0;\n "};\n let border = vec4<f32>(x_min, y_min, x_max, y_max);\n\n let indices = ${s.offsetToIndices("global_idx")};\n var grid_indices = vec3<u32>(indices[${cs}], indices[${us}], indices[${ds}]);\n let nxy = ${n.getByIndices("grid_indices")};\n var x = gs_denormalize(f32(nxy[0]), W_in);\n var y = gs_denormalize(f32(nxy[1]), H_in);\n\n ${bs(s,i,A)}\n }`}},ws=(e,A)=>{fs(e.inputs),e.compute(Is(e.inputs,A))},ks=e=>IA({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})})),jl=L((()=>{rl(),cl(),ll(),il(),hl(),gl(),ul(),xs=(e,A)=>e.length>A&&e[A].dims.length>0?e[A]:void 0,Bs=(e,A)=>{let t=e[0],r=xs(e,1),n=xs(e,2),a=xs(e,3),s=xs(e,4),i=xs(e,5),o=xs(e,6),l=xs(e,7);if(3!==t.dims.length&&5!==t.dims.length)throw new Error("Input query is expected to have 3 or 5 dimensions");let c,g=t.dims[0],u=t.dims[1],d=3===t.dims.length?t.dims[2]:A.numHeads*t.dims[4],f=u,p=0,h=0,m=Math.floor(d/A.numHeads);if(o&&l&&xA.size(o.dims)&&xA.size(l.dims)){if(4!==o.dims.length)throw new Error('Input "past_key" is expected to have 4 dimensions');if(o.dims[0]!==g||o.dims[1]!==A.numHeads||o.dims[3]!==m)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(l.dims[0]!==g||l.dims[1]!==A.numHeads||l.dims[3]!==m)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(o.dims[2]!==l.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(4!==l.dims.length)throw new Error('Input "past_value" is expected to have 4 dimensions');p=o.dims[2],h=o.dims[2]}else if(o&&xA.size(o.dims)||l&&xA.size(l.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');if(r&&xA.size(r.dims)>0){if(3!==t.dims.length)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(r.dims.length<3||r.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==r.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(3===r.dims.length){if(r.dims[2]!==t.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');c=2,f=r.dims[1]}else if(5===r.dims.length){if(r.dims[2]!==A.numHeads||2!==r.dims[3]||r.dims[4]!==m)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(n)throw new Error('Expect "value" be none when "key" has packed kv format.');c=5,f=r.dims[1]}else{if(r.dims[1]!==A.numHeads||r.dims[3]!==m)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');c=0,f=r.dims[2]}}else{if(5!==t.dims.length)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(t.dims[2]!==A.numHeads||3!==t.dims[3])throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');c=3}if(a&&xA.size(a.dims)>0){if(1!==a.dims.length)throw new Error('Input "bias" is expected to have 1 dimension');if(r&&5===r.dims.length&&2===r.dims[3])throw new Error("bias is not allowed for packed kv.")}let C=p+f,b=0;if(s&&xA.size(s.dims)>0){b=8;let e=s.dims;throw 1===e.length?e[0]===g?b=1:e[0]===3*g+2&&(b=3):2===e.length&&e[0]===g&&e[1]===C&&(b=5),8===b?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let I=!1,w=d;if(n&&xA.size(n.dims)>0){if(3!==n.dims.length&&4!==n.dims.length)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==n.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(3===n.dims.length){if(f!==n.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');w=n.dims[2]}else{if(f!==n.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');w=n.dims[1]*n.dims[3],I=!0}}if(s&&xA.size(s.dims)>0)throw new Error("Key padding mask is not supported");if(i&&xA.size(i.dims)>0){if(4!==i.dims.length)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(i.dims[0]!==g||i.dims[1]!==A.numHeads||i.dims[2]!==u||i.dims[3]!==C)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:g,sequenceLength:u,pastSequenceLength:p,kvSequenceLength:f,totalSequenceLength:C,maxSequenceLength:h,inputHiddenSize:0,hiddenSize:d,vHiddenSize:w,headSize:m,vHeadSize:Math.floor(w/A.numHeads),numHeads:A.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:A.maskFilterValue,maskType:b,scale:A.scale,broadcastResPosBias:!1,passPastInKv:I,qkvFormat:c}},vs=e=>IA({...e}),ys=IA({perm:[0,2,1,3]}),Es=(e,A,t,r,n,a,s)=>{let i=[r,n,a],o=xA.size(i),l=[{type:12,data:o},{type:12,data:s},{type:12,data:a}];return e.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:i,dataType:A.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:l}),getShaderSource:e=>{let r=YA("qkv_with_bias",A.dataType,i),n=LA("qkv",A.dataType,i),a=LA("bias",t.dataType,i);return`\n ${e.registerUniforms([{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}]).declareVariables(n,a,r)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset;\n\n qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx];\n }`}},{inputs:[A,t],outputs:[-1]})[0]},Ms=(e,A,t,r,n,a,s,i)=>{let o=a;if(s&&xA.size(s.dims)>0){if(1===r)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return o=Es(e,a,s,A,r,t*n,i),o=o.reshape([A,r,t,n]),1===t||1===r?o:e.compute(JA(o,ys.perm),{inputs:[o],outputs:[-1]})[0]}return 3===a.dims.length&&(o=a.reshape([A,r,t,n])),1===t||1===r?o:e.compute(JA(o,ys.perm),{inputs:[o],outputs:[-1]})[0]},Gs=(e,A)=>{let t=Bs(e.inputs,A),r=e.inputs[0],n=xs(e.inputs,1),a=xs(e.inputs,2),s=xs(e.inputs,3),i=xs(e.inputs,4),o=xs(e.inputs,5),l=xs(e.inputs,6),c=xs(e.inputs,7);if(5===r.dims.length)throw new Error("Packed QKV is not implemented");if(5===n?.dims.length)throw new Error("Packed KV is not implemented");let g=n&&a&&4===n.dims.length&&4===a.dims.length,u=Ms(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r,s,0);if(g)return tr(e,u,n,a,i,void 0,l,c,o,t);if(!n||!a)throw new Error("key and value must be provided");let d=Ms(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,n,s,t.hiddenSize),f=Ms(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,a,s,2*t.hiddenSize);tr(e,u,d,f,i,void 0,l,c,o,t)}})),Ul=L((()=>{rl(),cl(),ll(),gl(),Ds=e=>{if(!e||e.length<1)throw new Error("too few inputs")},Qs=(e,A)=>{let t=[],r=A.numOutputs;return e[1].dims[0]>0&&(e[1].getBigInt64Array().forEach((e=>t.push(Number(e)))),r=t.length),IA({numOutputs:r,axis:A.axis,splitSizes:t})},Ts=e=>`\nfn calculateOutputIndex(index: u32) -> u32 {\n for (var i: u32 = 0u; i < ${e}u; i += 1u ) {\n if (index < ${NA("uniforms.size_in_split_axis","i",e)}) {\n return i;\n }\n }\n return ${e}u;\n}`,Ps=e=>{let A=e.length,t=[];for(let r=0;r<A;++r){let n=e[r].setByIndices("indices","input[global_idx]");1===A?t.push(n):0===r?t.push(`if (output_number == ${r}u) { ${n} }`):r===A-1?t.push(`else { ${n} }`):t.push(`else if (output_number == ${r}) { ${n} }`)}return`\n fn writeBufferData(output_number: u32, indices: ${e[0].type.indices}, global_idx: u32) {\n ${t.join("\n")}\n }`},zs=(e,A)=>{let t=e[0].dims,r=xA.size(t),n=e[0].dataType,a=xA.normalizeAxis(A.axis,t.length),s=new Array(A.numOutputs),i=LA("input",n,t.length),o=new Array(A.numOutputs),l=[],c=[],g=0,u=[{type:12,data:r}];for(let r=0;r<A.numOutputs;r++){g+=A.splitSizes[r],o[r]=g;let i=t.slice();i[a]=A.splitSizes[r],c.push(i),s[r]=YA(`output${r}`,n,i.length),l.push({dims:c[r],dataType:e[0].dataType})}u.push({type:12,data:o},...TA(t,...c));return{name:"Split",shaderCache:{hint:A.cacheKey,inputDependencies:["rank"]},getShaderSource:e=>`\n ${e.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",o.length).declareVariables(i,...s)}\n ${Ts(o.length)}\n ${Ps(s)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")}\n\n var indices = ${i.offsetToIndices("global_idx")};\n var index = ${i.indicesGet("indices",a)};\n let output_number = calculateOutputIndex(index);\n if (output_number != 0) {\n index -= ${NA("uniforms.size_in_split_axis","output_number - 1u",o.length)};\n ${i.indicesSet("indices",a,"index")};\n }\n writeBufferData(output_number, indices, global_idx);\n }`,getRunData:()=>({outputs:l,dispatchGroup:{x:Math.ceil(r/64)},programUniforms:u})}},Fs=(e,A)=>{Ds(e.inputs);let t=1===e.inputs.length?A:Qs(e.inputs,A);e.compute(zs(e.inputs,t),{inputs:[0]})},Ss=e=>{let A=e.axis,t=e.splitSizes,r=e.numOutputs<0?t.length:e.numOutputs;if(r!==t.length)throw new Error("numOutputs and splitSizes lengh must be equal");return IA({axis:A,numOutputs:r,splitSizes:t})}})),Kl=L((()=>{ll(),hl(),jl(),Ul(),ul(),Ns=(e,A)=>{if(A.doRotary)throw new Error("GroupQuerryAttention do_rotary attribute is not supported");if(A.doRotary&&e.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let t=e[0],r=e[1],n=e[2],a=e[3],s=e[4];if(-1!==A.localWindowSize)throw new Error("Local attention is not supported");if(0!==A.softcap)throw new Error("Softcap is not supported");if(0!==A.rotaryInterleaved)throw new Error("Rotary interleaved is not supported");if(A.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(3!==t.dims.length&&5!==t.dims.length)throw new Error("Input query is expected to have 3 or 5 dimensions");let i=t.dims[0],o=t.dims[1],l=3===t.dims.length?t.dims[2]:A.numHeads*t.dims[4],c=o,g=0,u=!r||0===r.dims.length,d=Math.floor(u?l/(A.numHeads+2*A.kvNumHeads):l/A.numHeads);u&&(l=d*A.numHeads);let f=a&&0!==a.dims.length,p=s&&0!==s.dims.length;if(f&&4===a.dims.length&&a.dims[0]===i&&a.dims[1]!==A.kvNumHeads&&a.dims[2]===A.kvNumHeads&&a.dims[3]===d)throw new Error("BSNH pastKey/pastValue is not supported");if(f&&p){if(4!==a.dims.length)throw new Error('Input "past_key" is expected to have 4 dimensions');if(4!==s.dims.length)throw new Error('Input "past_value" is expected to have 4 dimensions');g=a.dims[2]}else if(f||p)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let h=1;if(r&&r.dims.length>0){if(3!==t.dims.length)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(r.dims.length<3||r.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==r.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(3===r.dims.length){if(t.dims[2]%r.dims[2]!=0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');c=r.dims[1]}else if(5===r.dims.length){if(r.dims[2]!==A.numHeads||2!==r.dims[3]||r.dims[4]!==d)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(n)throw new Error('Expect "value" be none when "key" has packed kv format.');c=r.dims[1]}else{if(r.dims[1]!==A.numHeads||r.dims[3]!==d)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');c=r.dims[2]}}else{if(3!==t.dims.length&&5!==t.dims.length)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(5===t.dims.length&&(t.dims[2]!==A.numHeads||3!==t.dims[3]))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');h=3}let m=!1,C=A.kvNumHeads?d*A.kvNumHeads:l;if(n&&n.dims.length>0){if(3!==n.dims.length&&4!==n.dims.length)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==n.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(3===n.dims.length){if(c!==n.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');C=n.dims[2]}else{if(c!==n.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');C=n.dims[1]*n.dims[3],m=!0}}let b=e.length>4?e[5]:void 0;if(b&&1!==b.dims.length&&b.dims[0]!==i)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:i,sequenceLength:o,pastSequenceLength:g,kvSequenceLength:c,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:l,vHiddenSize:C,headSize:d,vHeadSize:Math.floor(C/A.kvNumHeads),numHeads:A.numHeads,kvNumHeads:A.kvNumHeads,nReps:A.numHeads/A.kvNumHeads,pastPresentShareBuffer:!1,maskType:0,scale:A.scale,broadcastResPosBias:!1,passPastInKv:m,qkvFormat:h}},Os=IA({perm:[0,2,1,3]}),Ls=(e,A,t)=>{let r=A,n=t.kvNumHeads;return 3===A.dims.length&&0!==t.kvSequenceLength&&(r=A.reshape([t.batchSize,t.kvSequenceLength,n,t.headSize]),r=e.compute(JA(r,Os.perm),{inputs:[r],outputs:[-1]})[0]),r},Ys=(e,A)=>{let t=Ns(e.inputs,A);if(5===e.inputs[0].dims.length)throw new Error("Packed QKV is not implemented");if(5===e.inputs[1]?.dims.length)throw new Error("Packed KV is not implemented");let r=e.inputs[0],n=e.inputs[1]&&e.inputs[1].dims.length>0?e.inputs[1]:void 0,a=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,s=e.inputs[3]&&0!==e.inputs[3].dims.length?e.inputs[3]:void 0,i=e.inputs[4]&&0!==e.inputs[4].dims.length?e.inputs[4]:void 0,o=e.inputs.length>4?e.inputs[5]:void 0,l=e.inputs.length>5?e.inputs[6]:void 0,c=t.kvNumHeads?t.kvNumHeads:t.numHeads,g=IA({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,c*t.headSize,c*t.headSize]}),[u,d,f]=n||a?[r,n,a]:e.compute(zs([r],g),{inputs:[r],outputs:[-1,-1,-1]}),p=Ms(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,u,void 0,0);tr(e,p,Ls(e,d,t),Ls(e,f,t),void 0,void 0,s,i,void 0,t,o,l)}})),Zl=L((()=>{rl(),cl(),ul(),gl(),Hs=(e,A,t,r,n,a,s,i)=>{let o=PA(a),l=1===o?"f32":`vec${o}f`,c=1===o?"vec2f":`mat2x${o}f`,g=n*s,u=64;1===g&&(u=256);let d=[n,s,a/o],f=[n,s,2],p=[];p.push(...TA(d,f));return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${o};${i};${u}`,inputDependencies:["rank","type","type"]},getRunData:()=>({outputs:[{dims:f,dataType:1}],dispatchGroup:{x:g},programUniforms:p}),getShaderSource:e=>{let n=LA("x",A.dataType,3,o),a=[n,LA("scale",t.dataType,t.dims),LA("bias",r.dataType,r.dims),YA("output",1,3,2)];return`\n var<workgroup> workgroup_shared : array<${c}, ${u}>;\n const workgroup_size = ${u}u;\n ${e.declareVariables(...a)}\n ${e.mainStart(u)}\n let batch = workgroup_index / uniforms.x_shape[1];\n let channel = workgroup_index % uniforms.x_shape[1];\n let hight = uniforms.x_shape[2];\n // initialize workgroup memory\n var sum = ${l}(0);\n var squared_sum = ${l}(0);\n for (var h = local_idx; h < hight; h += workgroup_size) {\n let value = ${l}(${n.get("batch","channel","h")});\n sum += value;\n squared_sum += value * value;\n }\n workgroup_shared[local_idx] = ${c}(sum, squared_sum);\n workgroupBarrier();\n\n for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) {\n if (local_idx < currSize) {\n workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize];\n }\n workgroupBarrier();\n }\n if (local_idx == 0) {\n let sum_final = ${SA("workgroup_shared[0][0]",o)} / f32(hight * ${o});\n let squared_sum_final = ${SA("workgroup_shared[0][1]",o)} / f32(hight * ${o});\n\n let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${i}));\n let channel_scale = inv_std_dev * f32(scale[channel]);\n let channel_shift = f32(bias[channel]) - sum_final * channel_scale;\n output[workgroup_index] = vec2f(channel_scale, channel_shift);\n }\n }`}},{inputs:[A,t,r],outputs:[-1]})[0]},Rs=(e,A,t)=>{let r=A[0].dims,n=r,a=r[0],s=r[1],i=xA.sizeFromDimension(r,2),o=PA(i),l=xA.size(n)/o,c=Hs(e,A[0],A[1],A[2],a,i,s,t.epsilon),g=[a,s,i/o],u=[a,s];e.compute({name:"InstanceNormalization",shaderCache:{hint:`${o}`,inputDependencies:["type","none"]},getRunData:()=>({outputs:[{dims:n,dataType:A[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:[{type:12,data:l},...TA(g,u,g)]}),getShaderSource:e=>{let t=LA("x",A[0].dataType,g.length,o),r=LA("scale_shift",1,u.length,2),n=YA("output",A[0].dataType,g.length,o),a=[t,r,n];return`\n ${e.registerUniform("output_size","u32").declareVariables(...a)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let outputIndices = ${n.offsetToIndices("global_idx")};\n let batch = outputIndices[0];\n let channel = outputIndices[1];\n let scale_shift = ${r.getByIndices("vec2<u32>(batch, channel)")};\n let value = ${t.getByOffset("global_idx")} * ${n.type.value}(scale_shift.x) + ${n.type.value}(scale_shift.y);\n ${n.setByOffset("global_idx","value")};\n }`}},{inputs:[A[0],c]})},Ws=(e,A,t)=>{let r=A[0].dims,n=r,a=r[0],s=r[r.length-1],i=xA.sizeFromDimension(r,1)/s,o=PA(s),l=xA.size(n)/o,c=[{type:12,data:i},{type:12,data:Math.floor(s/o)}],g=!1,u=[0,r.length-1];for(let e=0;e<r.length-2;e++)g=g||1!==r[e+1],u.push(e+1);g=g&&1!==r[r.length-1];let d=g?e.compute(JA(e.inputs[0],u),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:r.length},((e,A)=>r[u[A]]))),f=Hs(e,d,A[1],A[2],a,i,s,t.epsilon);e.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:n,dataType:A[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:e=>{let t=DA(A[0].dataType),r=1===o?"vec2f":`mat${o}x2f`,a=e=>{let A=0===e?"x":"y",r=1===o?"f32":`vec${o}f`;switch(o){case 1:return`${t}(${r}(scale.${A}))`;case 2:return`vec2<${t}>(${r}(scale[0].${A}, scale[1].${A}))`;case 4:return`vec4<${t}>(${r}(scale[0].${A}, scale[1].${A}, scale[2].${A}, scale[3].${A}))`;default:throw new Error(`Not supported compoents ${o}`)}},s=LA("input",A[0].dataType,A[0].dims,o),i=YA("output",A[0].dataType,n,o);return`\n @group(0) @binding(0) var<storage, read> input : array<${s.type.storage}>;\n @group(0) @binding(1) var<storage, read> scale_input : array<${r}>;\n @group(0) @binding(2) var<storage, read_write> output : array<${i.type.storage}>;\n struct Uniforms {H: u32, C : u32};\n @group(0) @binding(3) var<uniform> uniforms: Uniforms;\n\n ${e.mainStart()}\n let current_image_number = global_idx / (uniforms.C * uniforms.H);\n let current_channel_number = global_idx % uniforms.C;\n\n let scale_offset = current_image_number * uniforms.C + current_channel_number;\n let scale = scale_input[scale_offset];\n output[global_idx] = fma(input[global_idx], ${a(0)}, ${a(1)});\n }`}},{inputs:[A[0],f]})},Vs=(e,A)=>{"NHWC"===A.format?Ws(e,e.inputs,A):Rs(e,e.inputs,A)}})),Xl=L((()=>{rl(),cl(),gl(),js=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Us=(e,A,t)=>{let r=A.simplified,n=e[0].dims,a=e[1],s=!r&&e[2],i=n,o=xA.normalizeAxis(A.axis,n.length),l=xA.sizeToDimension(n,o),c=xA.sizeFromDimension(n,o),g=xA.size(a.dims),u=s?xA.size(s.dims):0;if(g!==c||s&&u!==c)throw new Error(`Size of X.shape()[axis:] == ${c}.\n Size of scale and bias (if provided) must match this.\n Got scale size of ${g} and bias size of ${u}`);let d=[];for(let e=0;e<n.length;++e)e<o?d.push(n[e]):d.push(1);let f=PA(c),p=["type","type"],h=[{type:12,data:l},{type:1,data:c},{type:12,data:Math.floor(c/f)},{type:1,data:A.epsilon}];s&&p.push("type");let m=t>1,C=t>2,b=[{dims:i,dataType:e[0].dataType}];return m&&b.push({dims:d,dataType:1}),C&&b.push({dims:d,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${f};${t};${r}`,inputDependencies:p},getRunData:()=>({outputs:b,dispatchGroup:{x:Math.ceil(l/64)},programUniforms:h}),getShaderSource:A=>{let t=DA(e[0].dataType),n=[LA("x",e[0].dataType,e[0].dims,f),LA("scale",a.dataType,a.dims,f)];s&&n.push(LA("bias",s.dataType,s.dims,f)),n.push(YA("output",e[0].dataType,i,f)),m&&n.push(YA("mean_data_output",1,d)),C&&n.push(YA("inv_std_output",1,d));return`\n ${A.registerUniforms([{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}]).declareVariables(...n)}\n ${A.mainStart()}\n ${A.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")}\n let offset = global_idx * uniforms.norm_size_vectorized;\n var mean_vector = ${zA("f32",f)};\n var mean_square_vector = ${zA("f32",f)};\n\n for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) {\n let value = ${FA(t,f,"x[h + offset]")};\n mean_vector += value;\n mean_square_vector += value * value;\n }\n let mean = ${SA("mean_vector",f)} / uniforms.norm_size;\n let inv_std_dev = inverseSqrt(${SA("mean_square_vector",f)} / uniforms.norm_size ${r?"":"- mean * mean"} + uniforms.epsilon);\n\n for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) {\n let f32input = ${FA(t,f,"x[j + offset]")};\n let f32scale = ${FA(t,f,"scale[j]")};\n output[j + offset] = ${n[0].type.value}((f32input ${r?"":"- mean"}) * inv_std_dev * f32scale\n ${s?`+ ${FA(t,f,"bias[j]")}`:""}\n );\n }\n\n ${m?"mean_data_output[global_idx] = mean":""};\n ${C?"inv_std_output[global_idx] = inv_std_dev":""};\n }`}}},Ks=(e,A)=>{js(e.inputs),e.compute(Us(e.inputs,A,e.outputCount))}})),ql=L((()=>{cl(),yl(),El(),Zs=e=>{if(!e||2!==e.length)throw new Error("MatMul requires 2 inputs.");if(e[0].dims[e[0].dims.length-1]!==e[1].dims[e[1].dims.length-2])throw new Error("shared dimension does not match.")},Xs=e=>{Zs(e.inputs);let A=kA.calcShape(e.inputs[0].dims,e.inputs[1].dims,!0);if(!A)throw new Error("Can't use matmul on the given tensors");let t=A[A.length-1],r=e.inputs[0].dims[e.inputs[0].dims.length-1];if(t<8&&r<8)e.compute(zn(e.inputs,{activation:""},A));else{let n=A[A.length-2],a=xA.size(e.inputs[0].dims.slice(0,-2)),s=xA.size(e.inputs[1].dims.slice(0,-2));if(1!==a&&1===n&&1===s){let n=[1,a,t],s=[e.inputs[0].reshape([1,a,r]),e.inputs[1].reshape([1,r,t])];e.compute(Rn(s,{activation:""},A,n),{inputs:s})}else e.compute(Rn(e.inputs,{activation:""},A))}}})),Jl=L((()=>{rl(),cl(),ll(),gl(),qs=(e,A)=>{if(e.length<3||e.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let t=e[0],r=t.dims.length;if(t.dims[r-1]!==A.k)throw new Error("The last dim of input shape does not match the k value");let n=Math.floor((A.k+A.blockSize-1)/A.blockSize),a=A.blockSize/8*A.bits,s=e[1];if(!xA.areEqual(s.dims,[A.n,n,a]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(xA.size(i)!==A.n*n)throw new Error("scales input size error.");if(4===e.length){let t=e[3].dims,r=A.bits>4?A.n*n:A.n*Math.floor((n+1)/2);if(xA.size(t)!==r)throw new Error("zeroPoints input size error.")}},Js=(e,A)=>{let t=e[0].dims,r=t.length,n=t[r-2],a=A.k,s=A.n,i=t.slice(0,r-2),o=xA.size(i),l=e[1].dims[2]/4,c=e[0].dataType,g=PA(A.k),u=PA(l),d=PA(s),f=i.concat([n,s]),p=n>1&&s/d%2==0?2:1,h=xA.size(f)/d/p,m=64,C=[],b=[o,n,a/g],I=xA.convertShape(e[1].dims).slice();I.splice(-1,1,l/u),C.push(...TA(b)),C.push(...TA(I)),C.push(...TA(e[2].dims)),4===e.length&&C.push(...TA(xA.convertShape(e[3].dims)));let w=[o,n,s/d];C.push(...TA(w));return{name:"MatMulNBits",shaderCache:{hint:`${A.blockSize};${A.bits};${g};${u};${d};${p};64`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:f,dataType:c}],dispatchGroup:{x:h},programUniforms:C}),getShaderSource:t=>{let r=b.length,n=LA("a",e[0].dataType,r,g),a=LA("b",12,I.length,u),s=LA("scales",e[2].dataType,e[2].dims.length),i=[n,a,s],o=4===e.length?LA("zero_points",12,e[3].dims.length):void 0;o&&i.push(o);let c=w.length,f=YA("output",e[0].dataType,c,d),h=DA(e[0].dataType),C=(()=>{switch(g){case 1:return`array<${h}, 8>`;case 2:return`mat4x2<${h}>`;case 4:return`mat2x4<${h}>`;default:throw new Error(`${g}-component is not supported.`)}})();return`\n var<workgroup> workgroup_shared: array<${f.type.value}, ${p*m}>;\n ${t.declareVariables(...i,f)}\n ${t.mainStart([m,1,1])}\n let output_indices = ${f.offsetToIndices(`(global_idx / 64) * ${p}`)};\n let col = output_indices[2];\n let row = output_indices[1];\n let batch = output_indices[0];\n let nBlocksPerCol = uniforms.b_shape[1];\n\n for (var block = local_id.x; block < nBlocksPerCol; block += 64) {\n //process one block\n var word_offset: u32 = block * ${A.blockSize/g};\n ${(()=>{let e=`\n var col_index = col * ${d};\n ${o?"\n let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2;\n var zero_point_byte_count: u32;\n var zero_point_word_index: u32;\n var zero_point_byte_offset: u32;\n let zero_point_nibble_offset: u32 = block & 0x1u;\n var zero_point_bits_offset: u32;\n var zero_point_word: u32;":`\n // The default zero point is 8 for unsigned 4-bit quantization.\n let zero_point = ${h}(8);`}\n `;for(let A=0;A<d*p;A++)e+=`\n let scale${A} = ${s.getByOffset("col_index * nBlocksPerCol + block")};\n ${o?`\n zero_point_byte_count = col_index * zero_point_bytes_per_col + (block >> 0x1u);\n zero_point_word_index = zero_point_byte_count >> 0x2u;\n zero_point_byte_offset = zero_point_byte_count & 0x3u;\n zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2);\n zero_point_word = ${o.getByOffset("zero_point_word_index")} >> zero_point_bits_offset;\n let zero_point${A} = ${h}((zero_point_word) & 0xFu);`:""}\n col_index += 1;`;return e})()}\n for (var word: u32 = 0; word < ${l}; word += ${u}) {\n ${(()=>{let e=`col_index = col * ${d};`;for(let A=0;A<d*p;A++)e+=`\n let b${A}_data = ${a.getByIndices(`${a.type.indices}(col_index, block, word)`)};\n col_index += 1;`;return e+=`\n var b_value: u32;\n let b_mask: u32 = 0x0F0F0F0Fu;\n var b_value_lower: vec4<u32>;\n var b_value_upper: vec4<u32>;\n var b_quantized_values: ${C};\n var b_dequantized_values: ${C};`,e})()}\n for (var i: u32 = 0; i < ${u}; i++) {\n ${(()=>{let e=`\n // reuse a data\n var input_offset = ${n.indicesToOffset(`${n.type.indices}(batch, row, word_offset)`)};\n var a_data: ${C};\n for (var j: u32 = 0; j < ${8/g}; j++) {\n a_data[j] = ${n.getByOffset("input_offset")};\n input_offset++;\n }\n `;for(let A=0;A<d*p;A++)e+=`\n b_value = ${1===u?`b${A}_data`:`b${A}_data[i]`};\n b_value_lower = unpack4xU8(b_value & b_mask);\n b_value_upper = unpack4xU8((b_value >> 4) & b_mask);\n b_quantized_values = ${C}(${Array.from({length:4},((e,A)=>`${h}(b_value_lower[${A}]), ${h}(b_value_upper[${A}])`)).join(", ")});\n b_dequantized_values = ${1===g?`${C}(${Array.from({length:8},((e,t)=>`(b_quantized_values[${t}] - ${o?`zero_point${A}`:"zero_point"}) * scale${A}`)).join(", ")});`:`(b_quantized_values - ${C}(${Array(8).fill(o?`zero_point${A}`:"zero_point").join(",")})) * scale${A};`};\n workgroup_shared[local_id.x * ${p} + ${Math.floor(A/d)}]${d>1?`[${A%d}]`:""} += ${Array.from({length:8/g},((e,A)=>""+(1===g?`a_data[${A}] * b_dequantized_values[${A}]`:`dot(a_data[${A}], b_dequantized_values[${A}])`))).join(" + ")};\n `;return e})()}\n word_offset += ${8/g};\n }\n }\n }\n workgroupBarrier();\n\n if (local_id.x < ${p}) {\n var output_value: ${f.type.value} = ${f.type.value}(0);\n var workgroup_shared_offset: u32 = local_id.x;\n for (var b: u32 = 0u; b < 64u; b++) {\n output_value += workgroup_shared[workgroup_shared_offset];\n workgroup_shared_offset += ${p};\n }\n ${f.setByIndices(`${f.type.indices}(batch, row, col + local_id.x)`,"output_value")};\n }\n }`}}},_s=(e,A)=>{let t=e[0].dims,r=t.length,n=t[r-2],a=A.k,s=A.n,i=t.slice(0,r-2),o=xA.size(i),l=e[1].dims[2]/4,c=e[0].dataType,g=PA(A.k),u=PA(l),d=i.concat([n,s]),f=s%8==0?8:s%4==0?4:1,p=128/f,h=p*u*8,m=h/g,C=h/A.blockSize,b=xA.size(d)/f,I=[],w=[o,n,a/g],k=xA.convertShape(e[1].dims).slice();k.splice(-1,1,l/u),I.push(...TA(w)),I.push(...TA(k)),I.push(...TA(e[2].dims)),4===e.length&&I.push(...TA(xA.convertShape(e[3].dims)));let x=[o,n,s];I.push(...TA(x));return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${A.blockSize};${g};${u};${p};${f}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:d,dataType:c}],dispatchGroup:{x:b},programUniforms:I}),getShaderSource:t=>{let r=w.length,n=LA("a",e[0].dataType,r,g),a=LA("b",12,k.length,u),s=LA("scales",e[2].dataType,e[2].dims.length),i=[n,a,s],o=4===e.length?LA("zero_points",12,e[3].dims.length):void 0;o&&i.push(o);let l=x.length,c=YA("output",e[0].dataType,l),d=DA(e[0].dataType);return`\n var<workgroup> sub_a: array<${n.type.value}, ${m}>;\n var<workgroup> inter_results: array<array<${c.type.value}, ${p}>, ${f}>;\n ${t.declareVariables(...i,c)}\n ${t.mainStart([p,f,1])}\n let output_indices = ${c.offsetToIndices(`workgroup_index * ${f}`)};\n let col = output_indices[2];\n let row = output_indices[1];\n let batch = output_indices[0];\n let n_blocks_per_col = uniforms.b_shape[1];\n let num_tiles = (n_blocks_per_col - 1) / ${C} + 1;\n\n // Loop over shared dimension.\n for (var tile: u32 = 0; tile < num_tiles; tile += 1) {\n let a_col_start = tile * ${m};\n // load one tile A data into shared memory.\n for (var a_offset = local_idx; a_offset < ${m}; a_offset += 128)\n {\n let a_col = a_col_start + a_offset;\n if (a_col < uniforms.a_shape[2])\n {\n sub_a[a_offset] = ${n.getByIndices(`${n.type.indices}(batch, row, a_col)`)};\n } else {\n sub_a[a_offset] = ${n.type.value}(0);\n }\n }\n workgroupBarrier();\n\n // each thread process one block\n let b_row = col + local_id.y;\n let block = tile * ${C} + local_id.x;\n ${o?`\n let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2;\n let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u);\n let zero_point_word_index = zero_point_byte_count >> 0x2u;\n let zero_point_byte_offset = zero_point_byte_count & 0x3u;\n let zero_point_nibble_offset: u32 = block & 0x1u;\n let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2);\n let zero_point_word = ${o.getByOffset("zero_point_word_index")} >> zero_point_bits_offset;\n let zero_point = ${d}((zero_point_word) & 0xFu);`:`\n // The default zero point is 8 for unsigned 4-bit quantization.\n let zero_point = ${d}(8);`}\n let scale = ${s.getByOffset("b_row * n_blocks_per_col + block")};\n let b_data = ${a.getByIndices(`${a.type.indices}(b_row, block, 0)`)};\n var word_offset = local_id.x * ${A.blockSize/g};\n for (var i: u32 = 0; i < ${u}; i++) {\n ${(()=>{switch(g){case 1:return`\n let a_data0 = vec4<${d}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]);\n let a_data1 = vec4<${d}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return`\n let a_data0 = vec4<${d}>(sub_a[word_offset], sub_a[word_offset + 1]);\n let a_data1 = vec4<${d}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return"\n let a_data0 = sub_a[word_offset];\n let a_data1 = sub_a[word_offset + 1];";default:throw new Error(`${g}-component is not supported.`)}})()}\n let b_value = ${1===u?"b_data":"b_data[i]"};\n let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu);\n let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu);\n let b_quantized_values = mat2x4<${d}>(${Array.from({length:4},((e,A)=>`${d}(b_value_lower[${A}]), ${d}(b_value_upper[${A}])`)).join(", ")});\n let b_dequantized_values = (b_quantized_values - mat2x4<${d}>(${Array(8).fill("zero_point").join(",")})) * scale;\n inter_results[local_id.y][local_id.x] += ${Array.from({length:2},((e,A)=>`dot(a_data${A}, b_dequantized_values[${A}])`)).join(" + ")};\n word_offset += ${8/g};\n }\n workgroupBarrier();\n }\n\n if (local_idx < ${f}) {\n var output_value: ${c.type.value} = ${c.type.value}(0);\n for (var b = 0u; b < ${p}; b++) {\n output_value += inter_results[local_idx][b];\n }\n if (col + local_idx < uniforms.output_shape[2])\n {\n ${c.setByIndices(`${c.type.indices}(batch, row, col + local_idx)`,"output_value")}\n }\n }\n }`}}},$s=(e,A)=>{qs(e.inputs,A),32===A.blockSize&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(_s(e.inputs,A)):e.compute(Js(e.inputs,A))},ei=e=>IA(e)})),_l=L((()=>{rl(),cl(),gl(),Ai=e=>{if(!e||e.length<1)throw new Error("Too few inputs");if(1!==e[0].dataType&&10!==e[0].dataType)throw new Error("Input type must be float or float16.");if(e.length>=2){let A=2*e[0].dims.length===e[1].dims[0];if(4===e.length&&(A=2*e[3].dims[0]===e[1].dims[0]),!A)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},ti=(e,A,t)=>{let r="";for(let n=A-1;n>=0;--n)r+=`\n k = i32(${e.indicesGet("indices",n)}) - ${NA("uniforms.pads",n,t)};\n if (k < 0) {\n break;\n }\n if (k >= i32(${NA("uniforms.x_shape",n,A)})) {\n break;\n }\n offset += k * i32(${NA("uniforms.x_strides",n,A)});\n `;return`\n value = ${e.type.value}(uniforms.constant_value);\n for (var i = 0; i < 1; i++) {\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n }\n `},ri=(e,A,t)=>{let r="";for(let n=A-1;n>=0;--n)r+=`\n k = i32(${e.indicesGet("indices",n)}) - ${NA("uniforms.pads",n,t)};\n if (k < 0) {\n k = -k;\n }\n {\n let _2n_1 = 2 * (i32(${NA("uniforms.x_shape",n,A)}) - 1);\n k = k % _2n_1;\n if(k >= i32(${NA("uniforms.x_shape",n,A)})) {\n k = _2n_1 - k;\n }\n }\n offset += k * i32(${NA("uniforms.x_strides",n,A)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},ni=(e,A,t)=>{let r="";for(let n=A-1;n>=0;--n)r+=`\n k = i32(${e.indicesGet("indices",n)}) - ${NA("uniforms.pads",n,t)};\n if (k < 0) {\n k = 0;\n }\n if (k >= i32(${NA("uniforms.x_shape",n,A)})) {\n k = i32(${NA("uniforms.x_shape",n,A)}) - 1;\n }\n offset += k * i32(${NA("uniforms.x_strides",n,A)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},ai=(e,A,t)=>{let r="";for(let n=A-1;n>=0;--n)r+=`\n k = i32(${e.indicesGet("indices",n)}) - ${NA("uniforms.pads",n,t)};\n if (k < 0) {\n k += i32(${NA("uniforms.x_shape",n,A)}]);\n }\n if (k >= i32(${NA("uniforms.x_shape",n,A)})) {\n k -= i32(${NA("uniforms.x_shape",n,A)});\n }\n offset += k * i32(${NA("uniforms.x_strides",n,A)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},si=(e,A,t)=>{switch(t.mode){case 0:return ti(e,A,t.pads.length);case 1:return ri(e,A,t.pads.length);case 2:return ni(e,A,t.pads.length);case 3:return ai(e,A,t.pads.length);default:throw new Error("Invalid mode")}},ii=(e,A)=>{let t=xA.padShape(e[0].dims.slice(),A.pads),r=e[0].dims,n=[{type:12,data:xA.size(t)},{type:6,data:A.pads}],a=e.length>=3&&e[2].data;0===A.mode&&n.push({type:a?e[2].dataType:1,data:A.value}),n.push(...TA(e[0].dims,t));return{name:"Pad",shaderCache:{hint:`${A.mode}${a}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(xA.size(t)/64)},programUniforms:n}),getShaderSource:n=>{let s=YA("output",e[0].dataType,t.length),i=LA("x",e[0].dataType,r.length),o=i.type.value,l=si(s,r.length,A),c=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:A.pads.length}];return 0===A.mode&&c.push({name:"constant_value",type:a?o:"f32"}),`\n ${n.registerUniforms(c).declareVariables(i,s)}\n ${n.mainStart()}\n ${n.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n\n let indices = ${s.offsetToIndices("global_idx")};\n\n var value = ${o}(0);\n ${l}\n output[global_idx] = value;\n }`}}},oi=(e,A)=>{if(e.length>1){let t=e[1].getBigInt64Array(),r=e.length>=3&&e[2].data?10===e[2].dataType?e[2].getUint16Array()[0]:e[2].getFloat32Array()[0]:0,n=e[0].dims.length,a=new Int32Array(2*n).fill(0);if(e.length>=4){let A=e[3].getBigInt64Array();for(let e=0;e<A.length;e++)a[Number(A[e])]=Number(t[e]),a[Number(A[e])+n]=Number(t[e+A.length])}else t.forEach(((e,A)=>a[Number(A)]=Number(e)));let s=[];return a.forEach((e=>s.push(e))),{mode:A.mode,value:r,pads:s}}return A},li=(e,A)=>{Ai(e.inputs);let t=oi(e.inputs,A);e.compute(ii(e.inputs,t),{inputs:[0]})}})),$l=L((()=>{ie(),rl(),cl(),gl(),ci=e=>{if(g.webgpu.validateInputContent&&(!e||1!==e.length))throw new Error("Pool ops requires 1 input.")},gi=(e,A,t)=>{let r="NHWC"===A.format,n=e.dims.slice();r&&n.splice(1,0,n.pop());let a=Object.hasOwnProperty.call(A,"dilations"),s=A.kernelShape.slice(),i=A.strides.slice(),o=a?A.dilations.slice():[],l=A.pads.slice();BA.adjustPoolAttributes(t,n,s,i,o,l);let c=BA.computePoolOutputShape(t,n,i,o,s,l,A.autoPad),g=Object.assign({},A);a?Object.assign(g,{kernelShape:s,strides:i,pads:l,dilations:o,cacheKey:A.cacheKey}):Object.assign(g,{kernelShape:s,strides:i,pads:l,cacheKey:A.cacheKey});let u=c.slice();return u.push(u.splice(1,1)[0]),[g,r?u:c]},ui=(e,A)=>{let t="NHWC"===A.format,r=[{type:12,data:xA.size(e)},{type:12,data:xA.size(A.kernelShape)}],n=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(A.kernelShape.length<=2){let e=A.kernelShape[A.kernelShape.length-1],t=A.strides[A.strides.length-1],a=A.pads[A.pads.length/2-1],s=A.pads[A.pads.length-1],i=!!(a+s);r.push({type:12,data:e},{type:12,data:t},{type:12,data:a},{type:12,data:s}),n.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let o=!1;if(2===A.kernelShape.length){let e=A.kernelShape[A.kernelShape.length-2],t=A.strides[A.strides.length-2],a=A.pads[A.pads.length/2-2],s=A.pads[A.pads.length-2];o=!!(a+s),r.push({type:12,data:e},{type:12,data:t},{type:12,data:a},{type:12,data:s}),n.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[r,n,!0,i,o]}{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let e=xA.computeStrides(A.kernelShape);r.push({type:12,data:e},{type:12,data:A.pads},{type:12,data:A.strides}),n.push({name:"kernelStrides",type:"u32",length:e.length},{name:"pads",type:"u32",length:A.pads.length},{name:"strides",type:"u32",length:A.strides.length});let a=A.pads.reduce(((e,A)=>e+A));return[r,n,!!a,!1,!1]}},di=(e,A,t,r,n,a,s,i,o,l,c,g)=>{let u="NHWC"===n.format,d=A.type.value,f=YA("output",A.type.tensor,r);if(n.kernelShape.length<=2){let r="",l="",p="",h=t-(u?2:1);if(r=c?`\n for (var i: u32 = 0u; i < uniforms.kw; i++) {\n xIndices[${h}] = indices[${h}] * uniforms.sw - uniforms.pwStart + i;\n if (xIndices[${h}] < 0 || xIndices[${h}]\n >= uniforms.x_shape[${h}]) {\n pad++;\n continue;\n }\n let x_val = x[${A.indicesToOffset("xIndices")}];\n ${a}\n }`:`\n for (var i: u32 = 0u; i < uniforms.kw; i++) {\n xIndices[${h}] = indices[${h}] * uniforms.sw - uniforms.pwStart + i;\n let x_val = x[${A.indicesToOffset("xIndices")}];\n ${a}\n }`,2===n.kernelShape.length){let e=t-(u?3:2);l=g?`\n for (var j: u32 = 0u; j < uniforms.kh; j++) {\n xIndices[${e}] = indices[${e}] * uniforms.sh - uniforms.phStart + j;\n if (xIndices[${e}] < 0 || xIndices[${e}] >= uniforms.x_shape[${e}]) {\n pad += i32(uniforms.kw);\n continue;\n }\n `:`\n for (var j: u32 = 0u; j < uniforms.kh; j++) {\n xIndices[${e}] = indices[${e}] * uniforms.sh - uniforms.phStart + j;\n `,p="\n }\n "}return`\n ${e.registerUniforms(o).declareVariables(A,f)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n\n let indices = ${f.offsetToIndices("global_idx")};\n var xIndices = ${f.offsetToIndices("global_idx")};\n\n var value = ${d}(${i});\n var pad = 0;\n ${l}\n ${r}\n ${p}\n ${s}\n\n output[global_idx] = value;\n }`}{if(u)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let r=n.kernelShape.length,c=n.pads.length,g="";return g=l?`\n if (xIndices[j] >= uniforms.x_shape[j]) {\n pad++;\n isPad = true;\n break;\n }\n }\n if (!isPad) {\n let x_val = x[${A.indicesToOffset("xIndices")}];\n ${a}\n }`:`\n }\n let x_val = x[${A.indicesToOffset("xIndices")}];\n ${a}\n `,`\n ${e.registerUniforms(o).declareVariables(A,f)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n let indices = ${f.offsetToIndices("global_idx")};\n var xIndices = ${f.offsetToIndices("global_idx")};\n\n var offsets: array<u32, ${r}>;\n\n var value = ${d}(${i});\n var pad = 0;\n var isPad = false;\n\n for (var i: u32 = 0u; i < uniforms.kernelSize; i++) {\n var offset = i;\n for (var j = 0u; j < ${r-1}u; j++) {\n offsets[j] = offset / ${NA("uniforms.kernelStrides","j",r)};\n offset -= offsets[j] * ${NA("uniforms.kernelStrides","j",r)};\n }\n offsets[${r-1}] = offset;\n\n isPad = false;\n for (var j = ${t-r}u; j < ${t}u; j++) {\n xIndices[j] = indices[j] * ${NA("uniforms.strides",`j - ${t-r}u`,r)}\n + offsets[j - ${t-r}u] - ${NA("uniforms.pads","j - 2u",c)};\n ${g}\n }\n ${s}\n\n output[global_idx] = value;\n }`}},fi=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,pi=e=>`${fi(e)};${e.countIncludePad}`,hi=e=>`${fi(e)};${e.storageOrder};${e.dilations}`,mi=e=>({format:e.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],ceilMode:e.ceil_mode,kernelShape:e.kernel_shape,strides:e.strides,pads:e.pads}),Ci=(e,A,t,r)=>{let[n,a]=gi(A,r,t),s=LA("x",A.dataType,A.dims.length),i=s.type.value,o="";n.countIncludePad?o+=`value /= ${i}(uniforms.kernelSize);`:o+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[l,c,g,u,d]=ui(a,n);l.push(...TA(A.dims,a));return{name:e,shaderCache:{hint:`${r.cacheKey};${g};${u};${d}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:a,dataType:A.dataType}],dispatchGroup:{x:Math.ceil(xA.size(a)/64)},programUniforms:l}),getShaderSource:e=>di(e,s,A.dims.length,a.length,n,"value += x_val;",o,0,c,g,u,d)}},bi=e=>{let A=0!==e.count_include_pad,t=mi(e);if(0!==t.ceilMode)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let r={countIncludePad:A,...t,cacheKey:""};return{...r,cacheKey:pi(r)}},Ii=(e,A)=>{ci(e.inputs),e.compute(Ci("AveragePool",e.inputs[0],!1,A))},wi={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},ki=e=>{let A=e.format;return{format:A,...wi,cacheKey:A}},xi=(e,A)=>{ci(e.inputs),e.compute(Ci("GlobalAveragePool",e.inputs[0],!0,A))},Bi=(e,A,t,r)=>{let[n,a]=gi(A,r,t),s=LA("x",A.dataType,A.dims.length),[i,o,l,c,g]=ui(a,n);return i.push(...TA(A.dims,a)),{name:e,shaderCache:{hint:`${r.cacheKey};${l};${c};${g}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:a,dataType:A.dataType}],dispatchGroup:{x:Math.ceil(xA.size(a)/64)},programUniforms:i}),getShaderSource:e=>di(e,s,A.dims.length,a.length,n,"\n value = max(x_val, value);\n ","",10===A.dataType?-65504:-1e5,o,l,c,g)}},vi=(e,A)=>{ci(e.inputs),e.compute(Bi("MaxPool",e.inputs[0],!1,A))},yi=e=>{let A=e.storage_order,t=e.dilations,r=mi(e);if(0!==A)throw new Error("column major storage order is not yet supported for MaxPool");if(0!==r.ceilMode)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let n={storageOrder:A,dilations:t,...r,cacheKey:""};return{...n,cacheKey:hi(n)}},Ei=e=>{let A=e.format;return{format:A,...wi,cacheKey:A}},Mi=(e,A)=>{ci(e.inputs),e.compute(Bi("GlobalMaxPool",e.inputs[0],!0,A))}})),ec=L((()=>{rl(),cl(),ll(),gl(),Gi=(e,A)=>{if(e.length<2||e.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(3===e.length&&e[1].dims===e[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(3===e.length&&e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(6===e[0].dataType&&e.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(0!==e[1].dims.length&&1!==e[1].dims.length&&e[1].dims.length!==e[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(e.length>2){if(e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(e[1].dims.length!==e[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!e[1].dims.map(((A,t)=>A===e[2].dims[t])).reduce(((e,A)=>e&&A),!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(A.blockSize>0){if(0===e[1].dims.length||1===e[1].dims.length&&1===e[1].dims[0])throw new Error("blockSize must be set only for block quantization.");if(!e[1].dims.map(((t,r)=>r===A.axis||t===e[0].dims[r])).reduce(((e,A)=>e&&A),!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(e[1].dims.length!==e[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let t=e[0].dims[A.axis],r=e[1].dims[A.axis];if(A.blockSize<Math.ceil(t/r)||A.blockSize>Math.ceil(t/(r-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},Di=(e,A)=>{let t=xA.normalizeAxis(A.axis,e[0].dims.length),r=e[0].dataType,n=3===r,a=e[0].dims,s=e[1].dataType,i=xA.size(a),o=3===r||2===r,l=o?[Math.ceil(xA.size(e[0].dims)/4)]:e[0].dims,c=e[1].dims,g=e.length>2?e[2]:void 0,u=g?o?[Math.ceil(xA.size(g.dims)/4)]:g.dims:void 0,d=0===c.length||1===c.length&&1===c[0],f=!1===d&&1===c.length,p=PA(i),h=d&&(!o||4===p),m=h?p:1,C=h&&!o?p:1,b=LA("input",o?12:r,l.length,C),I=LA("scale",s,c.length),w=g?LA("zero_point",o?12:r,u.length):void 0,k=YA("output",s,a.length,m),x=[b,I];w&&x.push(w);let B=[l,c];g&&B.push(u);let v=[{type:12,data:i/m},{type:12,data:t},{type:12,data:A.blockSize},...TA(...B,a)];return{name:"DequantizeLinear",shaderCache:{hint:A.cacheKey,inputDependencies:w?["rank","rank","rank"]:["rank","rank"]},getShaderSource:e=>`\n ${e.registerUniforms([{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}]).declareVariables(...x,k)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let output_indices = ${k.offsetToIndices("global_idx")};\n\n // Set input x\n ${o?`\n let input = ${b.getByOffset("global_idx / 4")};\n let x_vec = ${n?"unpack4xI8(input)":"unpack4xU8(input)"};\n let x_value = ${1===m?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${b.getByOffset("global_idx")};`};\n\n // Set scale input\n ${d?`let scale_value= ${I.getByOffset("0")}`:f?`\n let scale_index = ${k.indicesGet("output_indices","uniforms.axis")};\n let scale_value= ${I.getByOffset("scale_index")};`:`\n var scale_indices: ${I.type.indices} = output_indices;\n let index = ${I.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size;\n ${I.indicesSet("scale_indices","uniforms.axis","index")};\n let scale_value= ${I.getByIndices("scale_indices")};`};\n\n // Set zero-point input\n ${w?d?o?`\n let zero_point_input = ${w.getByOffset("0")};\n let zero_point_vec = ${n?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"};\n let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${w.getByOffset("0")}`:f?o?`\n let zero_point_index = ${k.indicesGet("output_indices","uniforms.axis")};\n let zero_point_input = ${w.getByOffset("zero_point_index / 4")};\n let zero_point_vec = ${n?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"};\n let zero_point_value = zero_point_vec[zero_point_index % 4]`:`\n let zero_point_index = ${k.indicesGet("output_indices","uniforms.axis")};\n let zero_point_value = ${w.getByOffset("zero_point_index")};`:o?`\n let zero_point_offset = ${I.indicesToOffset("scale_indices")};\n let zero_point_input = ${w.getByOffset("zero_point_offset / 4")};\n let zero_point_vec = ${n?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"};\n let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${w.getByIndices("scale_indices")};`:`let zero_point_value = ${o?n?"i32":"u32":b.type.value}(0);`};\n // Compute and write output\n ${k.setByOffset("global_idx",`${k.type.value}(x_value - zero_point_value) * scale_value`)};\n }`,getRunData:()=>({outputs:[{dims:a,dataType:s}],dispatchGroup:{x:Math.ceil(i/m/64),y:1,z:1},programUniforms:v})}},Qi=(e,A)=>{Gi(e.inputs,A),e.compute(Di(e.inputs,A))},Ti=e=>IA({axis:e.axis,blockSize:e.blockSize})})),Ac=L((()=>{ie(),rl(),gl(),Pi=(e,A,t)=>{if(e===A||e<A&&t<0||e>A&&t>0)throw new Error("Range these inputs' contents are invalid.")},zi=(e,A,t,r)=>{let n=Math.abs(Math.ceil((A-e)/t)),a=[n],s=n,i=[{type:12,data:s},{type:r,data:e},{type:r,data:t},...TA(a)];return{name:"Range",shaderCache:{hint:`${r}`},getShaderSource:e=>{let A=YA("output",r,a.length),t=A.type.value,n=[{name:"outputSize",type:"u32"},{name:"start",type:t},{name:"delta",type:t}];return`\n ${e.registerUniforms(n).declareVariables(A)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n output[global_idx] = uniforms.start + ${t}(global_idx) * uniforms.delta;\n }`},getRunData:()=>({outputs:[{dims:a,dataType:r}],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:i})}},Fi=e=>{let A=0,t=0,r=0;6===e.inputs[0].dataType?(A=e.inputs[0].getInt32Array()[0],t=e.inputs[1].getInt32Array()[0],r=e.inputs[2].getInt32Array()[0]):1===e.inputs[0].dataType&&(A=e.inputs[0].getFloat32Array()[0],t=e.inputs[1].getFloat32Array()[0],r=e.inputs[2].getFloat32Array()[0]),g.webgpu.validateInputContent&&Pi(A,t,r),e.compute(zi(A,t,r,e.inputs[0].dataType),{inputs:[]})}})),tc=L((()=>{rl(),cl(),ll(),gl(),Si=(e,A,t,r)=>{if("none"!==e&&"i32"!==r&&"u32"!==r&&"f32"!==r)throw new Error(`Input ${r} is not supported with reduction ${e}.`);let n="{\n var oldValue = 0;\n loop {\n let newValueF32 =",a=`;\n let newValue = bitcast<i32>(newValueF32);\n let res = atomicCompareExchangeWeak(&${A}, oldValue, newValue);\n if res.exchanged {\n break;\n }\n oldValue = res.old_value;\n }\n }`;switch(e){case"none":return`${A}=${t};`;case"add":return"i32"===r||"u32"===r?`atomicAdd(&${A}, bitcast<${r}>(${t}));`:`\n ${n}bitcast<${r}>(oldValue) + (${t})${a}`;case"max":return"i32"===r||"u32"===r?`atomicMax(&${A}, bitcast<${r}>(${t}));`:`\n ${n}max(bitcast<f32>(oldValue), (${t}))${a}`;case"min":return"i32"===r||"u32"===r?`atomicMin(&${A}, bitcast<${r}>(${t}));`:`${n}min(bitcast<${r}>(oldValue), (${t}))${a}`;case"mul":return`${n}(bitcast<${r}>(oldValue) * (${t}))${a}`;default:throw new Error(`Reduction ${e} is not supported.`)}},Ni=(e,A)=>{let t=e[0].dims,r=e[1].dims,n=t,a=Math.ceil(xA.size(r)/1),s=r[r.length-1],i=xA.sizeFromDimension(t,s),o=[{type:12,data:a},{type:12,data:s},{type:12,data:i},...TA(e[1].dims,e[2].dims,n)];return{name:"ScatterND",shaderCache:{hint:`${A.cacheKey}_${A.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:o}),getShaderSource:t=>{let r=LA("indices",e[1].dataType,e[1].dims.length),a=LA("updates",e[2].dataType,e[2].dims.length,1),s="none"!==A.reduction&&""!==A.reduction?HA("output",e[0].dataType,n.length):YA("output",e[0].dataType,n.length,1);return`\n ${t.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(r,a,s)}\n ${t.mainStart()}\n ${t.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n var data_offset = 0u;\n let indices_start = uniforms.last_index_dimension * global_idx;\n let indices_end = indices_start + uniforms.last_index_dimension;\n for (var i = indices_start; i < indices_end; i++) {\n var index = i32(indices[i].x);\n ${1===e[0].dims.length?"\n let element_count_dim = uniforms.output_strides;\n let dim_value = uniforms.output_shape;":"\n let element_count_dim = uniforms.output_strides[i - indices_start];\n let dim_value = uniforms.output_shape[i - indices_start + uniforms.last_index_dimension];"}\n if (index >= 0) {\n if (index >= i32(dim_value)) {\n index = i32(dim_value - 1);\n }\n } else {\n if (index < -i32(dim_value)) {\n index = 0;\n } else {\n index += i32(dim_value);\n }\n }\n data_offset += u32((u32(index) * element_count_dim));\n }\n\n for (var i = 0u; i < uniforms.num_updates_elements; i++) {\n let value = updates[uniforms.num_updates_elements * global_idx + i];\n ${Si(A.reduction,"output[data_offset + i]","value",s.type.value)}\n }\n\n }`}}},Oi=e=>IA({reduction:e.reduction}),Li=(e,A)=>{e.compute(Ni(e.inputs,A),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}})),rc=L((()=>{rl(),cl(),ll(),gl(),Yi=(e,A)=>{if(e.every((e=>e>0||(()=>{throw new Error("Resize requires scales input values to be positive")}))),e.length>0)if("linear"===A.mode){if(!(2===e.length||3===e.length||4===e.length&&1===e[0]&&1===e[1]||4===e.length&&1===e[0]&&1===e[3]||5===e.length&&1===e[0]&&1===e[1]))throw new Error("For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and\n one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1")}else if("cubic"===A.mode&&!(2===e.length||4===e.length&&1===e[0]&&1===e[1]||4===e.length&&1===e[0]&&1===e[3]))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")},Hi=(e,A,t)=>{A.every((e=>e>=0&&e<t||(()=>{throw new Error("Resize requires axes input values to be positive and less than rank")})));let r=new Array(t).fill(1);return A.forEach(((A,t)=>r[A]=e[t])),r},Ri=(e,A,t,r,n,a)=>{let[s,i,o]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],l=e[0].dims.length;if(s>0&&e.length>s&&e[s].dims.length>0)e[s].getFloat32Array().forEach((e=>a.push(e)));else if("tf_crop_and_resize"===A.coordinateTransformMode)throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(i>0&&e.length>i&&1===e[i].dims.length&&e[i].dims[0]>0){if(e[i].getFloat32Array().forEach((e=>r.push(e))),0!==r.length&&r.length!==l&&t>=18&&r.length!==A.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");Yi(r,A),A.axes.length>0&&Hi(r,A.axes,l).forEach(((e,A)=>r[A]=e))}if(o>0&&e.length>o&&1===e[o].dims.length&&e[o].dims[0]>0&&(e[o].getBigInt64Array().forEach((e=>n.push(Number(e)))),0!==n.length&&n.length!==l&&t>=18&&n.length!==A.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(A.axes.length>0){if(0!==r.length&&r.length!==A.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(0!==n.length&&n.length!==A.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof r<"u"&&typeof n<"u"&&r.length>0&&n.length>l)throw new Error("Resize requires only of scales or sizes to be specified")},Wi=(e,A,t,r)=>`\n // The whole part and the fractional part are calculated separately due to inaccuracy of floating\n // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an\n // offset-by-one error later in floor().\n let big = (${e}) * (${A});\n let whole = ${r}(big / (${t}));\n let fract = ${r}(big % (${t})) / ${r}(${t});\n return whole + fract;\n`,Vi=(e,A)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,\n lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${A} { `+(()=>{switch(e){case"asymmetric":return`\n if (xScale < 1.0 || floor(xScale) != xScale) {\n return ${A}(xResized) / ${A}(xScale);\n } else {\n ${Wi("xResized","lengthOriginal","lengthResized",A)}\n }\n `;case"pytorch_half_pixel":return`if (lengthResized > 1) {\n return (${A}(xResized) + 0.5) / ${A}(xScale) - 0.5;\n } else {\n return 0.0;\n }`;case"tf_half_pixel_for_nn":return`return (${A}(xResized) + 0.5) / ${A}(xScale);`;case"align_corners":return`if (lengthResized == 1) {\n return 0.0;\n } else {\n ${Wi("xResized","lengthOriginal - 1","lengthResized - 1",A)}\n }`;case"tf_crop_and_resize":return`if (lengthResized > 1) {\n return ${A}(roiStart) * ${A}(lengthOriginal - 1) +\n (${A}(xResized) * ${A}(roiEnd - roiStart) * ${A}(lengthOriginal - 1)) /\n ${A}(lengthResized - 1);\n } else {\n return 0.5 * ${A}(roiStart + roiEnd) * ${A}(lengthOriginal - 1);\n }`;case"half_pixel_symmetric":return`const outputWidth = ${A}xScale * ${A}(lengthResized);\n const adjustment = ${A}(lengthResized) / outputWidth;\n const center = ${A}(lengthOriginal) / 2;\n const offset = center * (1 - adjustment);\n return offset + ((${A}(xResized) + 0.5) / ${A}(xScale)) - 0.5;`;case"half_pixel":return`return ((${A}(xResized) + 0.5) / ${A}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+"}",ji=(e,A,t)=>`fn getNearestPixelFromOriginal(xOriginal: ${t}, isDownSample: bool) -> ${t} {`+(()=>{switch(e){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); }";default:if(A<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",Ui=(e,A,t)=>{let r=new Array(t).fill(0).concat(new Array(t).fill(1)),n=0===e.length?r:e.slice();return A.length>0?(A.forEach(((e,a)=>{r[e]=n[a],r[a+t]=n[A.length+a]})),r):n},Ki=(e,A,t,r)=>{let n=[];if(t.length>0)if(r.length>0){if(e.forEach((e=>n.push(e))),Math.max(...r)>e.length)throw new Error("axes is out of bound");r.forEach(((e,A)=>n[e]=t[A]))}else t.forEach((e=>n.push(e)));else{if(0===A.length)throw new Error("Resize requires either scales or sizes.");n=e.map(((e,t)=>Math.round(e*A[t])))}return n},Zi=(e,A,t)=>{let r=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map((e=>A[e])),Number.MAX_VALUE):Math.min(...A,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map((e=>A[e])),Number.MIN_VALUE):Math.max(...A,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${t.keepAspectRatioPolicy} is not supported`)}})();A.fill(1,0,A.length);let n=e.slice();return t.axes.length>0?(t.axes.forEach((e=>A[e]=r)),t.axes.forEach((t=>n[t]=Math.round(e[t]*A[t])))):(A.fill(r,0,A.length),n.forEach(((e,t)=>n[t]=Math.round(e*A[t])))),n},Xi=(e,A,t,r,n)=>`\n fn calculateOriginalIndicesFromOutputIndices(output_indices: ${e.type.indices}) -> array<${e.type.value}, ${t.length}> {\n var original_indices: array<${e.type.value}, ${t.length}>;\n for (var i:u32 = 0; i < ${t.length}; i++) {\n var output_index = ${e.indicesGet("output_indices","i")};\n var scale = ${NA("uniforms.scales","i",r)};\n var roi_low = ${NA("uniforms.roi","i",n)};\n var roi_hi = ${NA("uniforms.roi",`i + ${A.length}`,n)};\n if (scale == 1.0) {\n original_indices[i] = ${e.type.value}(output_index);\n } else {\n var input_shape_i = ${NA("uniforms.input_shape","i",A.length)};\n var output_shape_i = ${NA("uniforms.output_shape","i",t.length)};\n original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i,\n input_shape_i, roi_low, roi_hi);\n }\n }\n return original_indices;\n }`,qi=(e,A,t,r,n,a,s)=>`\n fn calculateInputIndicesFromOutputIndices(output_indices: ${A.type.indices}) -> ${e.type.indices} {\n var input_indices: ${e.type.indices};\n for (var i:u32 = 0; i < ${r.length}; i++) {\n var output_index = ${A.indicesGet("output_indices","i")};\n var input_index: u32;\n var scale = ${NA("uniforms.scales","i",n)};\n if (scale == 1.0) {\n input_index = output_index;\n } else {\n var roi_low = ${NA("uniforms.roi","i",a)};\n var roi_hi = ${NA("uniforms.roi",`i + ${t.length}`,a)};\n var input_shape_i = ${NA("uniforms.input_shape","i",t.length)};\n var output_shape_i = ${NA("uniforms.output_shape","i",r.length)};\n var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i,\n input_shape_i, roi_low, roi_hi);\n if (!${s} || (original_idx >= 0 && original_idx < ${A.type.value}(input_shape_i))) {\n if (original_idx < 0) {\n input_index = 0;\n } else if (original_idx > ${A.type.value}(input_shape_i - 1)) {\n input_index = input_shape_i - 1;\n } else {\n input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1));\n }\n } else {\n input_index = u32(original_idx);\n }\n }\n ${e.indicesSet("input_indices","i","input_index")}\n }\n return input_indices;\n }`,Ji=(e,A)=>`\n fn checkInputIndices(input_indices: ${e.type.indices}) -> bool {\n for (var i:u32 = 0; i < ${A.length}; i++) {\n var input_index = ${e.indicesGet("input_indices","i")};\n if (input_index < 0 || input_index >= ${NA("uniforms.input_shape","i",A.length)}) {\n return false;\n }\n }\n return true;\n }`,_i=(e,A,t,r)=>e.rank>r?`\n ${e.indicesSet("input_indices",A,"channel")};\n ${e.indicesSet("input_indices",t,"batch")};\n`:"",$i=(e,A,t,r,n)=>{let[a,s,i,o]=2===t.length?[-1,0,1,-1]:[0,2,3,1],l=e.type.value;return`\n fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${l} {\n var input_indices: ${e.type.indices};\n ${e.indicesSet("input_indices",s,`max(0, min(row, ${t[s]} - 1))`)};\n ${e.indicesSet("input_indices",i,`max(0, min(col, ${t[i]} - 1))`)};\n ${_i(e,o,a,2)}\n return ${e.getByIndices("input_indices")};\n }\n\n fn bilinearInterpolation(output_indices: ${A.type.indices}) -> ${l} {\n var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices);\n var row:${l} = originalIndices[${s}];\n var col:${l} = originalIndices[${i}];\n ${r?`if (row < 0 || row > (${t[s]} - 1) || col < 0 || col > (${t[i]} - 1)) {\n return ${n};\n }`:""};\n row = max(0, min(row, ${t[s]} - 1));\n col = max(0, min(col, ${t[i]} - 1));\n var row1: u32 = u32(row);\n var col1: u32 = u32(col);\n var row2: u32 = u32(row + 1);\n var col2: u32 = u32(col + 1);\n var channel: u32 = ${t.length>2?`u32(originalIndices[${o}])`:"0"};\n var batch: u32 = ${t.length>2?`u32(originalIndices[${a}])`:"0"};\n var x11: ${l} = getInputValue(batch, channel, row1, col1);\n var x12: ${l} = getInputValue(batch, channel, row1, col2);\n var x21: ${l} = getInputValue(batch, channel, row2, col1);\n var x22: ${l} = getInputValue(batch, channel, row2, col2);\n var dx1: ${l} = abs(row - ${l}(row1));\n var dx2: ${l} = abs(${l}(row2) - row);\n var dy1: ${l} = abs(col - ${l}(col1));\n var dy2: ${l} = abs(${l}(col2) - col);\n if (row1 == row2) {\n dx1 = 0.5;\n dx2 = 0.5;\n }\n if (col1 == col2) {\n dy1 = 0.5;\n dy2 = 0.5;\n }\n return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1);\n }`},eo=(e,A,t,r,n,a,s,i,o,l)=>{let c=2===t.length,[g,u]=c?[0,1]:[2,3],d=e.type.value,f=s=>{let c=s===g?"row":"col";return`\n fn ${c}CubicInterpolation(input_indices: ${e.type.indices}, output_indices: ${A.type.indices}) -> ${d} {\n var output_index = ${A.indicesGet("output_indices",s)};\n var originalIdx: ${d} = getOriginalCoordinateFromResizedCoordinate(output_index, ${n[s]},\n ${r[s]}, ${t[s]}, ${a[s]}, ${a[s]} + ${t.length});\n var fractOriginalIdx: ${d} = originalIdx - floor(originalIdx);\n var coefs = getCubicInterpolationCoefs(fractOriginalIdx);\n\n if (${i} && (originalIdx < 0 || originalIdx > (${t[s]} - 1))) {\n return ${o};\n }\n var data: array<${d}, 4> = array<${d}, 4>(0.0, 0.0, 0.0, 0.0);\n for (var i: i32 = -1; i < 3; i++) {\n var ${c}: ${d} = originalIdx + ${d}(i);\n if (${c} < 0 || ${c} >= ${t[s]}) {\n ${l?"coefs[i + 1] = 0.0;\n continue;":i?`return ${o};`:`${c} = max(0, min(${c}, ${t[s]} - 1));`};\n }\n var input_indices_copy: ${e.type.indices} = input_indices;\n ${e.indicesSet("input_indices_copy",s,`u32(${c})`)};\n data[i + 1] = ${s===g?e.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"};\n }\n return cubicInterpolation1D(data, coefs);\n }`};return`\n ${f(g)};\n ${f(u)};\n fn getCubicInterpolationCoefs(s: ${d}) -> array<${d}, 4> {\n var absS = abs(s);\n var coeffs: array<${d}, 4> = array<${d}, 4>(0.0, 0.0, 0.0, 0.0);\n var oneMinusAbsS: ${d} = 1.0 - absS;\n var twoMinusAbsS: ${d} = 2.0 - absS;\n var onePlusAbsS: ${d} = 1.0 + absS;\n coeffs[0] = ((${s} * onePlusAbsS - 5 * ${s}) * onePlusAbsS + 8 * ${s}) * onePlusAbsS - 4 * ${s};\n coeffs[1] = ((${s} + 2) * absS - (${s} + 3)) * absS * absS + 1;\n coeffs[2] = ((${s} + 2) * oneMinusAbsS - (${s} + 3)) * oneMinusAbsS * oneMinusAbsS + 1;\n coeffs[3] = ((${s} * twoMinusAbsS - 5 * ${s}) * twoMinusAbsS + 8 * ${s}) * twoMinusAbsS - 4 * ${s};\n return coeffs;\n }\n\n fn cubicInterpolation1D(x: array<${d}, 4>, coefs: array<${d}, 4>) -> ${d} {\n var coefsSum: ${d} = coefs[0] + coefs[1] + coefs[2] + coefs[3];\n return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum;\n }\n\n fn bicubicInterpolation(output_indices: ${A.type.indices}) -> ${d} {\n var input_indices: ${e.type.indices} = output_indices;\n return colCubicInterpolation(input_indices, output_indices);\n }\n `},Ao=(e,A,t,r,n)=>{let[a,s,i,o,l]=3===t.length?[-1,0,1,2,-1]:[0,2,3,4,1],c=e.type.value;return`\n fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${c} {\n var input_indices: ${e.type.indices};\n ${e.indicesSet("input_indices",s,`max(0, min(depth, ${t[s]} - 1))`)};\n ${e.indicesSet("input_indices",i,`max(0, min(height, ${t[i]} - 1))`)};\n ${e.indicesSet("input_indices",o,`max(0, min(width, ${t[o]} - 1))`)};\n ${_i(e,l,a,3)}\n return ${e.getByIndices("input_indices")};\n }\n\n fn trilinearInterpolation(output_indices: ${A.type.indices}) -> ${c} {\n var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices);\n var depth:${c} = originalIndices[${s}];\n var height:${c} = originalIndices[${i}];\n var width:${c} = originalIndices[${o}];\n ${r?`if (depth < 0 || depth > (${t[s]} - 1) || height < 0 || height > (${t[i]} - 1) || width < 0 || (width > ${t[o]} - 1)) {\n return ${n};\n }`:""};\n\n depth = max(0, min(depth, ${t[s]} - 1));\n height = max(0, min(height, ${t[i]} - 1));\n width = max(0, min(width, ${t[o]} - 1));\n var depth1: u32 = u32(depth);\n var height1: u32 = u32(height);\n var width1: u32 = u32(width);\n var depth2: u32 = u32(depth + 1);\n var height2: u32 = u32(height + 1);\n var width2: u32 = u32(width + 1);\n var channel: u32 = ${t.length>3?`u32(originalIndices[${l}])`:"0"};\n var batch: u32 = ${t.length>3?`u32(originalIndices[${a}])`:"0"};\n\n var x111: ${c} = getInputValue(batch, channel, depth1, height1, width1);\n var x112: ${c} = getInputValue(batch, channel, depth1, height1, width2);\n var x121: ${c} = getInputValue(batch, channel, depth1, height2, width1);\n var x122: ${c} = getInputValue(batch, channel, depth1, height2, width2);\n var x211: ${c} = getInputValue(batch, channel, depth2, height1, width1);\n var x212: ${c} = getInputValue(batch, channel, depth2, height1, width2);\n var x221: ${c} = getInputValue(batch, channel, depth2, height2, width1);\n var x222: ${c} = getInputValue(batch, channel, depth2, height2, width2);\n var dx1: ${c} = abs(depth - ${c}(depth1));\n var dx2: ${c} = abs(${c}(depth2) - depth);\n var dy1: ${c} = abs(height - ${c}(height1));\n var dy2: ${c} = abs(${c}(height2) - height);\n var dz1: ${c} = abs(width - ${c}(width1));\n var dz2: ${c} = abs(${c}(width2) - width);\n if (depth1 == depth2) {\n dx1 = 0.5;\n dx2 = 0.5;\n }\n if (height1 == height2) {\n dy1 = 0.5;\n dy2 = 0.5;\n }\n if (width1 == width2) {\n dz1 = 0.5;\n dz2 = 0.5;\n }\n return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 +\n x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1);\n }`},to=(e,A,t,r,n,a)=>{let s=e.dims,i=Ui(a,A.axes,s.length),o=Ki(s,r,n,A.axes),l=r.slice();0===r.length&&(l=s.map(((e,A)=>0===e?1:o[A]/e)),"stretch"!==A.keepAspectRatioPolicy&&(o=Zi(s,l,A)));let c=YA("output",e.dataType,o.length),g=LA("input",e.dataType,s.length),u=xA.size(o),d=s.length===o.length&&s.every(((e,A)=>e===o[A])),f="tf_crop_and_resize"===A.coordinateTransformMode,p=A.extrapolationValue,h=g.type.value;return{name:"Resize",shaderCache:{hint:`${A.cacheKey}|${t}|${l.length>0?"cubic"===A.mode?l:l.length:""}|${n.length>0?n:""}|${i.length>0?i:""}|${d}|${"nearest"===A.mode?s.length:s}`,inputDependencies:["rank"]},getShaderSource:e=>`\n ${d?"":`\n ${Vi(A.coordinateTransformMode,h)};\n ${(()=>{switch(A.mode){case"nearest":return`\n ${Ji(g,s)};\n ${ji(A.nearestMode,t,h)};\n ${qi(g,c,s,o,l.length,i.length,f)};\n `;case"linear":return`\n ${Xi(c,s,o,l.length,i.length)};\n ${(()=>{if(2===s.length||4===s.length)return`${$i(g,c,s,f,p)}`;if(3===s.length||5===s.length)return`${Ao(g,c,s,f,p)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()};\n `;case"cubic":return`\n ${(()=>{if(2===s.length||4===s.length)return`${eo(g,c,s,o,l,i,A.cubicCoeffA,f,A.extrapolationValue,A.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()};\n `;default:throw Error("Invalid resize mode")}})()};\n `}\n ${e.registerUniform("output_size","u32").registerUniform("scales","f32",l.length).registerUniform("roi","f32",i.length).declareVariables(g,c)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n ${d?"output[global_idx] = input[global_idx];":`\n let output_indices = ${c.offsetToIndices("global_idx")};\n var input_indices: ${g.type.indices};\n ${(()=>{switch(A.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices);\n if (checkInputIndices(input_indices)) {\n output[global_idx] = ${g.getByIndices("input_indices")};\n } else {\n output[global_idx] = ${A.extrapolationValue};\n }`;case"linear":return`output[global_idx] = ${2===s.length||4===s.length?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${A.mode}`)}})()};\n`}\n }`,getRunData:()=>({outputs:[{dims:o,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:[{type:12,data:u},{type:1,data:l},{type:1,data:i},...TA(s,o)]})}},ro=e=>{let A=e.customDataBuffer;return new Uint32Array(A,A.byteOffset,1)[0]},no=(e,A)=>{let t=[],r=[],n=[],a=ro(e);if(0!==A.antialias)throw Error("Only default value (0) for Antialias attribute is supported");Ri(e.inputs,A,a,t,r,n),e.compute(to(e.inputs[0],A,a,t,r,n),{inputs:[0]})},ao=e=>{let A=e.antialias,t=e.axes,r=e.coordinateTransformMode,n=e.cubicCoeffA,a=0!==e.excludeOutside,s=e.extrapolationValue,i=e.keepAspectRatioPolicy,o=e.mode,l=""===e.nearestMode?"simple":e.nearestMode;return IA({antialias:A,axes:t,coordinateTransformMode:r,cubicCoeffA:n,excludeOutside:a,extrapolationValue:s,keepAspectRatioPolicy:i,mode:o,nearestMode:l})}})),nc=L((()=>{rl(),cl(),ll(),gl(),so=(e,A)=>{let[t,r,n,a]=e,{numHeads:s,rotaryEmbeddingDim:i}=A;if(3!==t.dims.length&&4!==t.dims.length)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${t.dims.length}`);if(!xA.areEqual(r.dims,[])&&!xA.areEqual(r.dims,[1])&&2!==r.dims.length)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${r.dims.length}`);if(2!==n.dims.length)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${n.dims.length}`);if(2!==a.dims.length)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${a.dims.length}`);if(!xA.areEqual(n.dims,a.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&0===s)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let o=t.dims[0],l=t.dims[t.dims.length-2],c=n.dims[0],g=xA.sizeFromDimension(t.dims,1)/l,u=0===i?2*n.dims[1]:g/s;if(i>u)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(2===r.dims.length){if(o!==r.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${r.dims[0]}`);if(l!==r.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${r.dims[1]}`)}if(u/2!==n.dims[1]&&i/2!==n.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${n.dims[1]}`);if(l>c)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},io=(e,A)=>{let{interleaved:t,numHeads:r,rotaryEmbeddingDim:n,scale:a}=A,s=e[0].dims[0],i=xA.sizeFromDimension(e[0].dims,1),o=e[0].dims[e[0].dims.length-2],l=i/o,c=e[2].dims[1],g=0===n?2*c:l/r,u=new Array(s,o,l/g,g-c),d=xA.computeStrides(u),f=[{type:1,data:a},{type:12,data:u},{type:12,data:d},...3===e[0].dims.length?new Array({type:12,data:[i,l,g,1]}):[],...4===e[0].dims.length?new Array({type:12,data:[i,g,o*g,1]}):[],...TA(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)];return{name:"RotaryEmbedding",shaderCache:{hint:IA({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:A=>{let r=LA("input",e[0].dataType,e[0].dims.length),n=LA("position_ids",e[1].dataType,e[1].dims.length),a=LA("cos_cache",e[2].dataType,e[2].dims.length),s=LA("sin_cache",e[3].dataType,e[3].dims.length),i=YA("output",e[0].dataType,e[0].dims.length);return A.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:u.length},{name:"global_strides",type:"u32",length:d.length},{name:"input_output_strides",type:"u32",length:d.length}]),`\n ${A.declareVariables(r,n,a,s,i)}\n\n ${A.mainStart(MA)}\n let half_rotary_emb_dim = uniforms.${a.name}_shape[1];\n let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape;\n let size = uniforms.global_shape[0] * uniforms.global_strides[0];\n ${A.guardAgainstOutOfBoundsWorkgroupSizes("size")}\n\n if (bsnh[3] < half_rotary_emb_dim) {\n let position_ids_idx =\n ${n.broadcastedIndicesToOffset("bsnh.xy",YA("",n.type.tensor,2))};\n let position_id =\n u32(${n.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0);\n let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${t});\n let j = i + select(half_rotary_emb_dim, 1, ${t});\n let re = ${r.getByOffset("i")} * ${a.get("position_id","bsnh[3]")} -\n ${r.getByOffset("j")} * ${s.get("position_id","bsnh[3]")};\n ${i.setByOffset("i","re")}\n let im = ${r.getByOffset("i")} * ${s.get("position_id","bsnh[3]")} +\n ${r.getByOffset("j")} * ${a.get("position_id","bsnh[3]")};\n ${i.setByOffset("j","im")}\n } else {\n let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim;\n ${i.setByOffset("k",r.getByOffset("k"))}\n }\n }`},getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(xA.size(u)/MA)},programUniforms:f})}},oo=(e,A)=>{so(e.inputs,A),e.compute(io(e.inputs,A))}})),ac=L((()=>{rl(),cl(),gl(),lo=e=>{if(!e||e.length<3)throw new Error("layerNorm requires at least 3 inputs.");let A=e[0],t=e[1],r=e[2];if(A.dataType!==t.dataType||A.dataType!==r.dataType)throw new Error("All inputs must have the same data type");if(3!==A.dims.length&&2!==A.dims.length)throw new Error("Input must be 2D or 3D");if(3!==t.dims.length&&2!==t.dims.length)throw new Error("Skip must be 2D or 3D");let n=A.dims[A.dims.length-1],a=A.dims[A.dims.length-2];if(t.dims[t.dims.length-1]!==n)throw new Error("Skip must have the same hidden size as input");if(t.dims[t.dims.length-2]!==a)throw new Error("Skip must have the same sequence length as input");if(1!==r.dims.length)throw new Error("Gamma must be 1D");if(r.dims[r.dims.length-1]!==n)throw new Error("Gamma must have the same hidden size as input");if(e.length>3){let A=e[3];if(1!==A.dims.length)throw new Error("Beta must be 1D");if(A.dims[A.dims.length-1]!==n)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let A=e[4];if(1!==A.dims.length)throw new Error("Bias must be 1D");if(A.dims[A.dims.length-1]!==n)throw new Error("Bias must have the same hidden size as input")}},co=(e,A,t,r)=>{let n=A.simplified,a=e[0].dims,s=xA.size(a),i=a,o=s,l=a.slice(-1)[0],c=r?a.slice(0,-1).concat(1):[],g=!n&&e.length>3,u=e.length>4,d=r&&t>1,f=r&&t>2,p=t>3,h=64,m=PA(l),C=[{type:12,data:o},{type:12,data:m},{type:12,data:l},{type:1,data:A.epsilon}],b=[{dims:i,dataType:e[0].dataType}];return t>1&&b.push({dims:c,dataType:1}),t>2&&b.push({dims:c,dataType:1}),t>3&&b.push({dims:a,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${m};${d};${f};${p}`,inputDependencies:e.map(((e,A)=>"type"))},getShaderSource:A=>{let t=[LA("x",e[0].dataType,e[0].dims,m),LA("skip",e[1].dataType,e[1].dims,m),LA("gamma",e[2].dataType,e[2].dims,m)];g&&t.push(LA("beta",e[3].dataType,e[3].dims,m)),u&&t.push(LA("bias",e[4].dataType,e[4].dims,m)),t.push(YA("output",e[0].dataType,i,m)),d&&t.push(YA("mean_output",1,c)),f&&t.push(YA("inv_std_output",1,c)),p&&t.push(YA("input_skip_bias_sum",e[0].dataType,i,m));let r=DA(e[0].dataType),a=DA(1,m);return`\n\n ${A.registerUniforms([{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}]).declareVariables(...t)}\n var<workgroup> sum_shared : array<${a}, 64>;\n var<workgroup> sum_squared_shared : array<${a}, 64>;\n\n ${A.mainStart([h,1,1])}\n let ix = local_id.x;\n let iy = global_id.x / 64;\n\n let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components;\n var stride = hidden_size_vectorized / 64;\n let offset = ix * stride + iy * hidden_size_vectorized;\n let offset1d = stride * ix;\n if (ix == 63) {\n stride = hidden_size_vectorized - stride * ix;\n }\n for (var i: u32 = 0; i < stride; i++) {\n let skip_value = skip[offset + i];\n let bias_value = ${u?"bias[offset1d + i]":r+"(0.0)"};\n let input_value = x[offset + i];\n let value = input_value + skip_value + bias_value;\n ${p?"input_skip_bias_sum[offset + i] = value;":""}\n output[offset + i] = value;\n let f32_value = ${FA(r,m,"value")};\n sum_shared[ix] += f32_value;\n sum_squared_shared[ix] += f32_value * f32_value;\n }\n workgroupBarrier();\n\n var reduce_size : u32 = 64;\n for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) {\n reduce_size = curr_size + (reduce_size & 1);\n if (ix < curr_size) {\n sum_shared[ix] += sum_shared[ix + reduce_size];\n sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size];\n }\n workgroupBarrier();\n }\n\n let sum = sum_shared[0];\n let square_sum = sum_squared_shared[0];\n let mean = ${SA("sum",m)} / f32(uniforms.hidden_size);\n let inv_std_dev = inverseSqrt(${SA("square_sum",m)} / f32(uniforms.hidden_size) ${n?"":"- mean * mean"} + uniforms.epsilon);\n ${d?"mean_output[global_idx] = mean;":""}\n ${f?"inv_std_output[global_idx] = inv_std_dev;":""}\n\n for (var i: u32 = 0; i < stride; i++) {\n output[offset + i] = (output[offset + i] ${n?"":`- ${r}(mean)`}) *\n ${r}(inv_std_dev) * gamma[offset1d + i]\n ${g?"+ beta[offset1d + i]":""};\n }\n }`},getRunData:()=>({outputs:b,dispatchGroup:{x:Math.ceil(o/l)},programUniforms:C})}},go=(e,A)=>{lo(e.inputs);let t=[0];e.outputCount>1&&t.push(-3),e.outputCount>2&&t.push(-3),e.outputCount>3&&t.push(3),e.compute(co(e.inputs,A,e.outputCount,!1),{outputs:t})}})),sc=L((()=>{rl(),cl(),ll(),gl(),uo=(e,A)=>{if(!e||e.length<1)throw new Error("too few inputs");if(0!==A.axes.length){if(A.axes.length!==A.starts.length||A.axes.length!==A.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(A.starts.length!==A.ends.length)throw new Error("starts and ends must have the same length");e.slice(1).forEach(((A,t)=>{if(6!==e[t+1].dataType&&7!==e[t+1].dataType)throw new Error(`Input ${t} must be an array of int32 or int64`)}))},fo=(e,A)=>{let t=[];if(e.length>A)if(7===e[A].dataType)e[A].getBigInt64Array().forEach((e=>t.push(Number(e))));else{if(6!==e[A].dataType)throw new Error(`Input ${A} must be an array of int32 or int64`);e[A].getInt32Array().forEach((e=>t.push(Number(e))))}return t},po=(e,A)=>{if(e.length>1){let A=fo(e,1),t=fo(e,2),r=fo(e,3);return 0===r.length&&(r=[...Array(e[0].dims.length).keys()]),IA({starts:A,ends:t,axes:r})}return A},ho=(e,A,t,r,n)=>{let a=e;return e<0&&(a+=t[r[A]]),n[A]<0?Math.max(0,Math.min(a,t[r[A]]-1)):Math.max(0,Math.min(a,t[r[A]]))},mo=(e,A,t)=>`fn calculateInputIndices(output_indices: ${A.type.indices}) -> ${e.type.indices} {\n var input_indices: ${e.type.indices};\n var carry = 0u;\n for (var i = ${t.length}; i >= 0; i--) {\n let input_shape_i = ${NA("uniforms.input_shape","i",t.length)};\n let steps_i = ${NA("uniforms.steps","i",t.length)};\n let signs_i = ${NA("uniforms.signs","i",t.length)};\n let starts_i = ${NA("uniforms.starts","i",t.length)};\n var output_index = ${A.indicesGet("output_indices","i")};\n var input_index = output_index * steps_i + starts_i + carry;\n carry = input_index / input_shape_i;\n input_index = input_index % input_shape_i;\n if (signs_i < 0) {\n input_index = input_shape_i - input_index - 1u + starts_i;\n }\n ${e.indicesSet("input_indices","i","input_index")};\n }\n return input_indices;\n }`,Co=(e,A)=>{let t=e[0].dims,r=xA.size(t),n=A.axes.length>0?xA.normalizeAxes(A.axes,t.length):[...Array(t.length).keys()],a=fo(e,4);a.forEach((e=>0!==e||(()=>{throw new Error("step cannot be 0")}))),0===a.length&&(a=Array(n.length).fill(1));let s=A.starts.map(((e,A)=>ho(e,A,t,n,a))),i=A.ends.map(((e,A)=>ho(e,A,t,n,a)));if(n.length!==s.length||n.length!==i.length)throw new Error("start, ends and axes should have the same number of elements");if(n.length!==t.length)for(let e=0;e<t.length;++e)n.includes(e)||(s.splice(e,0,0),i.splice(e,0,t[e]),a.splice(e,0,1));let o=a.map((e=>Math.sign(e)));a.forEach(((e,A,t)=>{if(e<0){let r=(i[A]-s[A])/e,n=s[A],o=n+r*a[A];s[A]=o,i[A]=n,t[A]=-e}}));let l=t.slice(0);n.forEach(((e,A)=>{l[e]=Math.ceil((i[e]-s[e])/a[e])}));let c={dims:l,dataType:e[0].dataType},g=YA("output",e[0].dataType,l.length),u=LA("input",e[0].dataType,e[0].dims.length),d=xA.size(l),f=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:s.length},{name:"signs",type:"i32",length:o.length},{name:"steps",type:"u32",length:a.length}],p=[{type:12,data:d},{type:12,data:s},{type:6,data:o},{type:12,data:a},...TA(e[0].dims,l)];return{name:"Slice",shaderCache:{hint:`${o.length}_${s.length}_${a.length}`,inputDependencies:["rank"]},getShaderSource:e=>`\n ${e.registerUniforms(f).declareVariables(u,g)}\n ${mo(u,g,t)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}\n let output_indices = ${g.offsetToIndices("global_idx")};\n let input_indices = calculateInputIndices(output_indices);\n ${g.setByOffset("global_idx",u.getByIndices("input_indices"))}\n }`,getRunData:()=>({outputs:[c],dispatchGroup:{x:Math.ceil(r/64)},programUniforms:p})}},bo=(e,A)=>{uo(e.inputs,A);let t=po(e.inputs,A);e.compute(Co(e.inputs,t),{inputs:[0]})},Io=e=>{let A=e.starts,t=e.ends,r=e.axes;return IA({starts:A,ends:t,axes:r})}})),ic=L((()=>{rl(),cl(),ll(),ul(),gl(),wo=e=>{if(!e||1!==e.length)throw new Error("Softmax op requires 1 input.")},ko=(e,A)=>{let t,r=e.inputs[0],n=r.dims,a=xA.size(n),s=n.length,i=xA.normalizeAxis(A.axis,s),o=i<n.length-1,l=[];o?(l=Array.from({length:s},((e,A)=>A)),l[i]=s-1,l[s-1]=i,t=e.compute(JA(r,l),{inputs:[r],outputs:[-1]})[0]):t=r;let c=t.dims,g=c[s-1],u=a/g,d=PA(g),f=g/d,p=64;1===u&&(p=256);let h=LA("x",t.dataType,t.dims,d),m=YA("result",t.dataType,t.dims,d),C=h.type.value,b="f32"===DA(t.dataType)?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,I=e.compute({name:"Softmax",shaderCache:{hint:`${d};${p}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:c,dataType:t.dataType}],dispatchGroup:{x:u},programUniforms:[{type:6,data:f}]}),getShaderSource:e=>`\n var<workgroup> rowMaxShared : ${C};\n var<workgroup> rowSumShared : ${C};\n var<workgroup> threadShared : array<${C}, ${p}>;\n\n fn getValue(row: i32, col: i32, row_stride: i32) -> ${C} {\n let index = row * row_stride + col;\n return x[index];\n }\n\n fn setValue(row: i32, col: i32, row_stride: i32, value: ${C}) {\n let index = row * row_stride + col;\n result[index] = value;\n }\n ${e.registerUniform("packedCols","i32").declareVariables(h,m)}\n ${e.mainStart(p)}\n let gindex = i32(global_idx);\n let lindex = i32(local_idx);\n const wg = ${p};\n let row = gindex / wg;\n let cols = uniforms.packedCols;\n let row_stride : i32 = uniforms.packedCols;\n\n // find the rows max\n ${b}\n for (var col = lindex; col < cols; col += wg) {\n let value = getValue(row, col, row_stride);\n threadMax = max(threadMax, value);\n }\n if (lindex < cols) {\n threadShared[lindex] = threadMax;\n }\n workgroupBarrier();\n\n var reduceSize = min(cols, wg);\n for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) {\n reduceSize = currSize + (reduceSize & 1);\n if (lindex < currSize) {\n threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]);\n }\n workgroupBarrier();\n }\n if (lindex == 0) {\n rowMaxShared = ${C}(${((e,A)=>4===A?`max(max(${e}.x, ${e}.y), max(${e}.z, ${e}.w))`:2===A?`max(${e}.x, ${e}.y)`:3===A?`max(max(${e}.x, ${e}.y), ${e}.z)`:e)("threadShared[0]",d)});\n }\n workgroupBarrier();\n\n // find the rows sum\n var threadSum = ${C}(0.0);\n for (var col = lindex; col < cols; col += wg) {\n let subExp = exp(getValue(row, col, row_stride) - rowMaxShared);\n threadSum += subExp;\n }\n threadShared[lindex] = threadSum;\n workgroupBarrier();\n\n for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) {\n if (lindex < currSize) {\n threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize];\n }\n workgroupBarrier();\n }\n if (lindex == 0) {\n rowSumShared = ${C}(${SA("threadShared[0]",d)});\n }\n workgroupBarrier();\n\n // calculate final value for each element in the row\n for (var col = lindex; col < cols; col += wg) {\n let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared;\n setValue(row, col, row_stride, value);\n }\n }`},{inputs:[t],outputs:[o?-1:0]})[0];o&&e.compute(JA(I,l),{inputs:[I]})},xo=(e,A)=>{wo(e.inputs),ko(e,A)},Bo=e=>IA({axis:e.axis})})),oc=L((()=>{rl(),cl(),gl(),vo=e=>Array.from(e.getBigInt64Array(),Number),yo=e=>{if(!e||2!==e.length)throw new Error("Tile requires 2 inputs.");if(1!==e[0].dataType&&10!==e[0].dataType&&6!==e[0].dataType&&12!==e[0].dataType)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(7!==e[1].dataType)throw new Error("Tile `repeats` input should be of int64 data type");if(1!==e[1].dims.length)throw new Error("Tile `repeats` input should be 1-D");if(vo(e[1]).length!==e[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Eo=(e,A)=>{let t=[];for(let r=0;r<e.length;++r)t.push(e[r]*A[r]);return t},Mo=(e,A)=>{let t=e[0].dims,r=A??vo(e[1]),n=Eo(t,r),a=xA.size(n),s=e[0].dataType,i=LA("input",s,t.length),o=YA("output",s,n.length);return{name:"Tile",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:[{type:12,data:a},...TA(e[0].dims,n)]}),getShaderSource:e=>`\n const inputShape = ${i.indices(...t)};\n ${e.registerUniform("output_size","u32").declareVariables(i,o)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}\n let output_indices = ${o.offsetToIndices("global_idx")};\n var input_indices: ${i.type.indices};\n for (var i = 0; i < ${t.length}; i++) {\n let input_dim_i = ${i.indicesGet("uniforms.input_shape","i")};\n let input_dim_value = ${o.indicesGet("output_indices","i")} % input_dim_i;\n\n ${i.indicesSet("input_indices","i","input_dim_value")}\n }\n ${o.setByOffset("global_idx",i.getByIndices("input_indices"))}\n }`}},Go=e=>{yo(e.inputs),e.compute(Mo(e.inputs),{inputs:[0]})}})),lc=L((()=>{rl(),cl(),gl(),Do=(e,A,t,r,n)=>{let a,s=YA("output_data",n,t.length,4),i=LA("a_data",A[1].dataType,A[1].dims.length,4),o=LA("b_data",A[2].dataType,A[2].dims.length,4),l=LA("c_data",A[0].dataType,A[0].dims.length,4),c=(e,A,t)=>`select(${A}, ${e}, ${t})`;if(r){let e=(e,A,t="")=>{let r=`a_data[index_a${A}][component_a${A}]`,n=`b_data[index_b${A}][component_b${A}]`,a=`bool(c_data[index_c${A}] & (0xffu << (component_c${A} * 8)))`;return`\n let output_indices${A} = ${s.offsetToIndices(`global_idx * 4u + ${A}u`)};\n let offset_a${A} = ${i.broadcastedIndicesToOffset(`output_indices${A}`,s)};\n let offset_b${A} = ${o.broadcastedIndicesToOffset(`output_indices${A}`,s)};\n let offset_c${A} = ${l.broadcastedIndicesToOffset(`output_indices${A}`,s)};\n let index_a${A} = offset_a${A} / 4u;\n let index_b${A} = offset_b${A} / 4u;\n let index_c${A} = offset_c${A} / 4u;\n let component_a${A} = offset_a${A} % 4u;\n let component_b${A} = offset_b${A} % 4u;\n let component_c${A} = offset_c${A} % 4u;\n ${e}[${A}] = ${t}(${c(r,n,a)});\n `};a=9===n?`\n var data = vec4<u32>(0);\n ${e("data",0,"u32")}\n ${e("data",1,"u32")}\n ${e("data",2,"u32")}\n ${e("data",3,"u32")}\n output_data[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:`\n ${e("output_data[global_idx]",0)}\n ${e("output_data[global_idx]",1)}\n ${e("output_data[global_idx]",2)}\n ${e("output_data[global_idx]",3)}\n `}else a=s.setByOffset("global_idx",c(i.getByOffset("global_idx"),o.getByOffset("global_idx"),l.getByOffset("global_idx")));return`\n ${e.registerUniform("vec_size","u32").declareVariables(l,i,o,s)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}\n ${a}\n }`},Qo=e=>{let A=e[1].dims,t=e[2].dims,r=e[0].dims,n=e[1].dataType,a=!(xA.areEqual(A,t)&&xA.areEqual(t,r)),s=A,i=xA.size(A);if(a){let e=kA.calcShape(kA.calcShape(A,t,!1),r,!1);if(!e)throw new Error("Can't perform where op on the given tensors");s=e,i=xA.size(s)}let o=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:A=>Do(A,e,s,a,n),getRunData:()=>({outputs:[{dims:s,dataType:n}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:o},...TA(r,A,t,s)]})}},To=e=>{e.compute(Qo(e.inputs))}})),cc=L((()=>{pl(),hl(),ml(),Cl(),Il(),wl(),kl(),Ql(),Pl(),zl(),Fl(),Sl(),Nl(),Ol(),Ll(),Yl(),Hl(),Rl(),Wl(),Vl(),Kl(),Zl(),Xl(),ql(),Jl(),jl(),_l(),$l(),ec(),Ac(),tc(),fl(),rc(),nc(),ac(),sc(),ic(),Ul(),oc(),ul(),bl(),lc(),Po=new Map([["Abs",[fr]],["Acos",[pr]],["Acosh",[hr]],["Add",[cn]],["ArgMax",[Xt,qt]],["ArgMin",[Zt,qt]],["Asin",[mr]],["Asinh",[Cr]],["Atan",[br]],["Atanh",[Ir]],["Attention",[nr]],["AveragePool",[Ii,bi]],["BatchNormalization",[or]],["BiasAdd",[gr]],["BiasSplitGelu",[an]],["Cast",[kr,wr]],["Ceil",[vr]],["Clip",[Br]],["Concat",[Bn,vn]],["Conv",[la,aa]],["ConvTranspose",[ba,pa]],["Cos",[yr]],["Cosh",[Er]],["CumSum",[wa,ka]],["DepthToSpace",[ya,Ea]],["DequantizeLinear",[Qi,Ti]],["Div",[gn]],["Einsum",[Sa,Na]],["Elu",[Gr,Mr]],["Equal",[un]],["Erf",[Qr]],["Exp",[Tr]],["Expand",[Ra]],["FastGelu",[Va]],["Floor",[Pr]],["FusedConv",[la,aa]],["Gather",[Za,Ka]],["GatherElements",[as,ns]],["GatherBlockQuantized",[es,As]],["GatherND",[qa,Ja]],["Gelu",[zr]],["Gemm",[ls,os]],["GlobalAveragePool",[xi,ki]],["GlobalMaxPool",[Mi,Ei]],["Greater",[hn]],["GreaterOrEqual",[Cn]],["GridSample",[ws,ks]],["GroupQueryAttention",[Ys]],["HardSigmoid",[Rr,Hr]],["InstanceNormalization",[Vs]],["LayerNormalization",[Ks]],["LeakyRelu",[Fr,Mr]],["Less",[mn]],["LessOrEqual",[bn]],["Log",[$r]],["MatMul",[Xs]],["MatMulNBits",[$s,ei]],["MaxPool",[vi,yi]],["Mul",[dn]],["MultiHeadAttention",[Gs,vs]],["Neg",[Nr]],["Not",[Sr]],["Pad",[li]],["Pow",[fn]],["QuickGelu",[tn,Mr]],["Range",[Fi]],["Reciprocal",[Or]],["ReduceMin",[Rt]],["ReduceMean",[Nt]],["ReduceMax",[Ht]],["ReduceSum",[Vt]],["ReduceProd",[Wt]],["ReduceL1",[Ot]],["ReduceL2",[Lt]],["ReduceLogSum",[Ut]],["ReduceLogSumExp",[Yt]],["ReduceSumSquare",[jt]],["Relu",[Lr]],["Resize",[no,ao]],["RotaryEmbedding",[oo]],["ScatterND",[Li,Oi]],["Sigmoid",[Yr]],["Sin",[Wr]],["Sinh",[Vr]],["Slice",[bo,Io]],["SkipLayerNormalization",[go]],["Split",[Fs,Ss]],["Sqrt",[jr]],["Softmax",[xo,Bo]],["Sub",[pn]],["Tan",[Ur]],["Tanh",[Zr]],["ThresholdedRelu",[_r,Mr]],["Tile",[Go]],["Transpose",[_A,$A]],["Where",[To]]])})),gc=L((()=>{ie(),al(),gl(),zo=class{constructor(e){this.backend=e,this.repo=new Map,this.attributesBound=!1}getArtifact(e){return this.repo.get(e)}setArtifact(e,A){this.repo.set(e,A)}run(e,A,t,r,n){D(e.programInfo.name);let a=this.backend.device,s=this.backend.getComputePassEncoder();this.backend.writeTimestamp(2*this.backend.pendingDispatchNumber);let i=[];for(let e of A)i.push({binding:i.length,resource:{buffer:e.buffer}});for(let e of t)i.push({binding:i.length,resource:{buffer:e.buffer}});n&&i.push({binding:i.length,resource:n});let o=a.createBindGroup({layout:e.computePipeline.getBindGroupLayout(0),entries:i,label:e.programInfo.name});if("capturing"===this.backend.sessionStatus){let A={kernelId:this.backend.currentKernelId,computePipeline:e.computePipeline,bindGroup:o,dispatchGroup:r};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(A)}s.setPipeline(e.computePipeline),s.setBindGroup(0,o),s.dispatchWorkgroups(...r),this.backend.writeTimestamp(2*this.backend.pendingDispatchNumber+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||"at-passes"===this.backend.queryType)&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),Q(e.programInfo.name)}dispose(){}build(e,A){D(e.name);let t=this.backend.device,r=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"},{feature:"subgroups-f16",extension:"subgroups_f16"}].forEach((e=>{t.features.has(e.feature)&&r.push(`enable ${e.extension};`)}));let n=VA(A,this.backend.device.limits),a=e.getShaderSource(n),s=`${r.join("\n")}\n${n.additionalImplementations}\n${a}`,i=t.createShaderModule({code:s,label:e.name});oA("verbose",(()=>`[WebGPU] ${e.name} shader code: ${s}`));let o=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return Q(e.name),{programInfo:e,computePipeline:o,uniformVariablesInfo:n.variablesInfo}}normalizeDispatchGroupSize(e){let A="number"==typeof e?e:e.x,t="number"==typeof e?1:e.y||1,r="number"==typeof e?1:e.z||1,n=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(A<=n&&t<=n&&r<=n)return[A,t,r];let a=A*t*r,s=Math.ceil(Math.sqrt(a));if(s>n){if(s=Math.ceil(Math.cbrt(a)),s>n)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[s,s,s]}return[s,s,1]}}})),uc=L((()=>{ie(),rl(),al(),sl(),ol(),cc(),gc(),Fo=(e,A)=>{if(A.length!==e.length)throw new Error(`inputDependencies length ${A.length} is not equal to inputTensors length ${e.length}.`);let t=[];for(let r=0;r<e.length;++r){let n=e[r].dataType;switch(A[r]){case"none":t.push("");break;case"type":t.push(`${n}`);break;case"rank":{let A=e[r].dims.length;t.push(`${n};${A}`);break}case"dims":{let A=e[r].dims.join(",");t.push(`${n};${A}`);break}default:throw new Error(`unsupported input dependency: ${A[r]}`)}}return t.join("|")},So=(e,A,t)=>{let r=e.name;return e.shaderCache?.hint&&(r+="["+e.shaderCache.hint+"]"),r+=":"+t+`:${Fo(A,e.shaderCache?.inputDependencies??new Array(A.length).fill("dims"))}`,r},No=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},Oo=class{constructor(e){this.subgroupsSupported=e.features.has("subgroups"),this.subgroupsF16Supported=e.features.has("subgroups");let A=e.limits;this.subgroupsSupported&&A.minSubgroupSize&&A.maxSubgroupSize?this.subgroupSizeRange=[A.minSubgroupSize,A.maxSubgroupSize]:this.subgroupSizeRange=void 0}},Lo=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(null===this.currentKernelId)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let e=this.kernelCustomData.get(this.currentKernelId);return e||(e={},this.kernelCustomData.set(this.currentKernelId,e)),e}async initialize(e,A){this.env=e;let t=[],r={requiredLimits:{maxComputeWorkgroupStorageSize:A.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:A.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:A.limits.maxStorageBufferBindingSize,maxBufferSize:A.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:A.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:A.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:A.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:A.limits.maxComputeWorkgroupSizeZ},requiredFeatures:t},n=e=>A.features.has(e)&&t.push(e)&&!0;n("chromium-experimental-timestamp-query-inside-passes")||n("timestamp-query"),n("shader-f16"),n("subgroups")&&n("subgroups-f16"),this.device=await A.requestDevice(r),this.deviceInfo=new Oo(this.device),this.adapterInfo=new No(A.info||await A.requestAdapterInfo()),this.gpuDataManager=CA(this),this.programManager=new zo(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,sA(e.logLevel,!!e.debug),this.device.onuncapturederror=e=>{e.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${e.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:A,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 e=this.getCommandEncoder(),A={};"at-passes"===this.queryType&&(A.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:2*this.pendingDispatchNumber,endOfPassWriteIndex:2*this.pendingDispatchNumber+1}),this.computePassEncoder=e.beginComputePass(A)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;let e;D(),this.endComputePass(),"none"!==this.queryType&&(this.commandEncoder.resolveQuerySet(this.querySet,0,2*this.pendingDispatchNumber,this.queryResolveBuffer,0),e=this.device.createBuffer({size:2*this.pendingDispatchNumber*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(e,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,e,0,2*this.pendingDispatchNumber*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,"none"!==this.queryType&&e.mapAsync(GPUMapMode.READ).then((()=>{let A=new BigUint64Array(e.getMappedRange()),t=this.pendingQueries.get(e);for(let e=0;e<A.length/2;e++){let r=t[e],n=r.kernelId,a=this.kernels.get(n),s=a.kernelType,i=a.kernelName,o=r.programName,l=r.inputTensorViews,c=r.outputTensorViews,g=A[2*e],u=A[2*e+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=g);let d=Number(g-this.queryTimeBase),f=Number(u-this.queryTimeBase);if(!Number.isSafeInteger(d)||!Number.isSafeInteger(f))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:l.map((e=>({dims:e.dims,dataType:Ze(e.dataType)}))),outputsMetadata:c.map((e=>({dims:e.dims,dataType:Ze(e.dataType)}))),kernelId:n,kernelType:s,kernelName:i,programName:o,startTime:d,endTime:f});else{let e="";l.forEach(((A,t)=>{e+=`input[${t}]: [${A.dims}] | ${Ze(A.dataType)}, `}));let A="";c.forEach(((e,t)=>{A+=`output[${t}]: [${e.dims}] | ${Ze(e.dataType)}, `})),console.log(`[profiling] kernel "${n}|${s}|${i}|${o}" ${e}${A}execution time: ${f-d} ns`)}M("GPU",`${o}::${g}::${u}`)}e.unmap(),this.pendingQueries.delete(e)})),Q()}run(e,A,t,r,n,a){D(e.name);let s=[];for(let e=0;e<A.length;++e){let t=A[e].data;if(0===t)continue;let r=this.gpuDataManager.get(t);if(!r)throw new Error(`no GPU data for input: ${t}`);s.push(r)}let{outputs:i,dispatchGroup:o,programUniforms:l}=e.getRunData(A),c=0===t.length?i.map(((e,A)=>A)):t;if(c.length!==i.length)throw new Error(`Output size ${c.length} must be equal to ${i.length}.`);let g,u=[],d=[];for(let e=0;e<i.length;++e){if(!Number.isInteger(c[e])||c[e]<-3||c[e]>=a)throw new Error(`Invalid output index: ${c[e]}`);if(-3===c[e])continue;let A=-1===c[e],t=-2===c[e],s=A||t?n(i[e].dataType,i[e].dims):r(c[e],i[e].dataType,i[e].dims);if(u.push(s),0===s.data)continue;let o=this.gpuDataManager.get(s.data);if(!o)throw new Error(`no GPU data for output: ${s.data}`);if(A&&this.temporaryData.push(o),t){let e=this.kernelPersistentData.get(this.currentKernelId);e||(e=[],this.kernelPersistentData.set(this.currentKernelId,e)),e.push(o)}d.push(o)}if(s.length!==A.length||d.length!==u.length){if(0===d.length)return Q(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}if(l){let e=0,A=[];l.forEach((t=>{let r="number"==typeof t.data?[t.data]:t.data;if(0===r.length)return;let n,a,s=10===t.type?2:4;10===t.type?(a=r.length>4?16:r.length>2?8:r.length*s,n=r.length>4?16:s*r.length):(a=r.length<=2?r.length*s:16,n=16),e=Math.ceil(e/a)*a,A.push(e);let i=10===t.type?8:4;e+=r.length>4?Math.ceil(r.length/i)*n:r.length*s}));let t=16;e=Math.ceil(e/t)*t;let r=new ArrayBuffer(e);l.forEach(((e,t)=>{let n=A[t],a="number"==typeof e.data?[e.data]:e.data;if(6===e.type)new Int32Array(r,n,a.length).set(a);else if(12===e.type)new Uint32Array(r,n,a.length).set(a);else if(10===e.type)new Uint16Array(r,n,a.length).set(a);else{if(1!==e.type)throw new Error(`Unsupported uniform type: ${Ze(e.type)}`);new Float32Array(r,n,a.length).set(a)}}));let n=this.gpuDataManager.create(e,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(n.buffer,0,r,0,e),this.gpuDataManager.release(n.id),g={offset:0,size:e,buffer:n.buffer}}let f=this.programManager.normalizeDispatchGroupSize(o),p=1===f[1]&&1===f[2],h=So(e,A,p),m=this.programManager.getArtifact(h);if(m||(m=this.programManager.build(e,f),this.programManager.setArtifact(h,m),oA("info",(()=>`[artifact] key: ${h}, programName: ${e.name}`))),l&&m.uniformVariablesInfo){if(l.length!==m.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${m.uniformVariablesInfo.length}, got ${l.length} in program "${m.programInfo.name}".`);for(let e=0;e<l.length;e++){let A=l[e],t=A.type,r="number"==typeof A.data?1:A.data.length,[n,a]=m.uniformVariablesInfo[e];if(t!==n||r!==a)throw new Error(`Uniform variable ${e} mismatch: expect type ${n} with size ${a}, got type ${t} with size ${r} in program "${m.programInfo.name}".`)}}if(oA("info",(()=>`[ProgramManager] run "${e.name}" (key=${h}) with ${f[0]}x${f[1]}x${f[2]}`)),"none"!==this.queryType||"capturing"===this.sessionStatus){let e={kernelId:this.currentKernelId,programName:m.programInfo.name,inputTensorViews:A,outputTensorViews:u};this.pendingKernels.push(e),"capturing"===this.sessionStatus&&this.capturedPendingKernels.get(this.currentSessionId).push(e)}return this.programManager.run(m,s,d,f,g),Q(e.name),u}upload(e,A){this.gpuDataManager.upload(e,A)}memcpy(e,A){this.gpuDataManager.memcpy(e,A)}async download(e,A){await this.gpuDataManager.download(e,A)}alloc(e){return this.gpuDataManager.create(e).id}free(e){return this.gpuDataManager.release(e)}createKernel(e,A,t,r){let n=Po.get(e);if(!n)throw new Error(`kernel not implemented: ${e}`);let a={kernelType:e,kernelName:r,kernelEntry:n[0],attributes:[n[1],t]};this.kernels.set(A,a)}releaseKernel(e){let A=this.kernelPersistentData.get(e);if(A){for(let e of A)this.gpuDataManager.release(e.id);this.kernelPersistentData.delete(e)}this.kernelCustomData.delete(e),this.kernels.delete(e)}computeKernel(e,A,t){let r=this.kernels.get(e);if(!r)throw new Error(`kernel not created: ${e}`);let n=r.kernelType,a=r.kernelName,s=r.kernelEntry,i=r.attributes;if(null!==this.currentKernelId)throw new Error(`kernel "[${n}] ${a}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),oA("info",(()=>`[WebGPU] Start to run kernel "[${n}] ${a}"...`));let o=this.env.debug;this.temporaryData=[];try{return o&&this.device.pushErrorScope("validation"),s(A,i[1]),0}catch(e){return t.push(Promise.resolve(`[WebGPU] Kernel "[${n}] ${a}" failed. ${e}`)),1}finally{o&&t.push(this.device.popErrorScope().then((e=>e?`GPU validation error for kernel "[${n}] ${a}": ${e.message}`:null)));for(let e of this.temporaryData)this.gpuDataManager.release(e.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(e,A,t,r){let n=this.sessionExternalDataMapping.get(e);n||(n=new Map,this.sessionExternalDataMapping.set(e,n));let a=n.get(A),s=this.gpuDataManager.registerExternalBuffer(t,r,a);return n.set(A,[s,t]),s}unregisterBuffers(e){let A=this.sessionExternalDataMapping.get(e);A&&(A.forEach((e=>this.gpuDataManager.unregisterExternalBuffer(e[0]))),this.sessionExternalDataMapping.delete(e))}getBuffer(e){let A=this.gpuDataManager.get(e);if(!A)throw new Error(`no GPU data for buffer: ${e}`);return A.buffer}createDownloader(e,A,t){return async()=>{let r=await hA(this,e,A);return lA(r.buffer,t)}}writeTimestamp(e){"inside-passes"===this.queryType&&this.computePassEncoder.writeTimestamp(this.querySet,e)}setQueryType(){this.queryType="none",("default"===this.env.webgpu.profiling?.mode||(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"),"none"!==this.queryType&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:2*this.maxDispatchNumber}),this.queryResolveBuffer=this.device.createBuffer({size:2*this.maxDispatchNumber*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){oA("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(){oA("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){oA("info","replay"),this.sessionStatus="replaying";let e=this.capturedCommandList.get(this.currentSessionId),A=this.capturedPendingKernels.get(this.currentSessionId),t=e.length;this.pendingKernels=[];for(let r=0;r<t;r++){let t=this.getComputePassEncoder(),n=e[r];this.writeTimestamp(2*this.pendingDispatchNumber),t.setPipeline(n.computePipeline),t.setBindGroup(0,n.bindGroup),t.dispatchWorkgroups(...n.dispatchGroup),this.writeTimestamp(2*this.pendingDispatchNumber+1),this.pendingDispatchNumber++,"none"!==this.queryType&&this.pendingKernels.push(A[r]),(this.pendingDispatchNumber>=this.maxDispatchNumber||"at-passes"===this.queryType)&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(e){this.unregisterBuffers(e),this.capturedCommandList.has(e)&&this.capturedCommandList.delete(e),this.capturedPendingKernels.has(e)&&this.capturedPendingKernels.delete(e),this.gpuDataManager.onReleaseSession(e)}onRunStart(e){this.currentSessionId=e,this.setQueryType()}}})),dc=L((()=>{al(),Yo=1,Ho=()=>Yo++,Ro=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Wo=(e,A)=>{let t=Ro.get(e);if(!t)throw new Error("Unsupported data type.");return A.length>0?Math.ceil(A.reduce(((e,A)=>e*A))*t/8):0},Vo=class{constructor(e){this.sessionId=e.sessionId,this.mlContext=e.context,this.mlTensor=e.tensor,this.dataType=e.dataType,this.tensorShape=e.shape}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return Wo(this.dataType,this.tensorShape)}destroy(){oA("verbose",(()=>"[WebNN] TensorWrapper.destroy")),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e){return e?this.mlContext.readTensor(this.mlTensor,e):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(e,A,t){return this.mlContext===e&&this.dataType===A&&this.tensorShape.length===t.length&&this.tensorShape.every(((e,A)=>e===t[A]))}},jo=class{constructor(e,A){this.tensorManager=e,this.wrapper=A}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,A,t,r){if(this.wrapper){if(this.wrapper.canReuseTensor(e,A,t))return this.wrapper.tensor;if(r){if(this.wrapper.byteLength!==Wo(A,t))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 n=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(A,t,n,!0,!0),r&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){if(this.wrapper){if(e.byteLength===this.wrapper.byteLength)return void this.wrapper.write(e);oA("verbose",(()=>"Data size does not match tensor size. Releasing tensor.")),this.releaseTensor()}this.activeUpload?this.activeUpload.set(e):this.activeUpload=new Uint8Array(e)}async download(e){if(this.activeUpload)return e?void(e instanceof ArrayBuffer?new Uint8Array(e).set(this.activeUpload):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(this.activeUpload)):this.activeUpload.buffer;if(!this.wrapper)throw new Error("Tensor has not been created.");return e?this.wrapper.read(e):this.wrapper.read()}},Uo=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}reserveTensorId(){let e=Ho();return this.tensorTrackersById.set(e,new jo(this)),e}releaseTensorId(e){let A=this.tensorTrackersById.get(e);A&&(this.tensorTrackersById.delete(e),A.tensorWrapper&&this.releaseTensor(A.tensorWrapper))}async ensureTensor(e,A,t,r){oA("verbose",(()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${e}, dataType: ${A}, shape: ${t}, copyOld: ${r}}`));let n=this.tensorTrackersById.get(e);if(!n)throw new Error("Tensor not found.");return n.ensureTensor(this.backend.currentContext,A,t,r)}upload(e,A){let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");t.upload(A)}async download(e,A){oA("verbose",(()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${A?.byteLength}}`));let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");return t.download(A)}releaseTensorsForSession(e){for(let A of this.freeTensors)A.sessionId===e&&A.destroy();this.freeTensors=this.freeTensors.filter((A=>A.sessionId!==e))}registerTensor(e,A,t,r){let n=Ho(),a=new Vo({sessionId:this.backend.currentSessionId,context:e,tensor:A,dataType:t,shape:r});return this.tensorTrackersById.set(n,new jo(this,a)),this.externalTensors.add(a),n}async getCachedTensor(e,A,t,r,n){let a=this.backend.currentSessionId,s=this.backend.currentContext;for(let[t,r]of this.freeTensors.entries())if(r.canReuseTensor(s,e,A)){oA("verbose",(()=>`[WebNN] Reusing tensor {dataType: ${e}, shape: ${A}}`));let r=this.freeTensors.splice(t,1)[0];return r.sessionId=a,r}oA("verbose",(()=>`[WebNN] MLContext.createTensor {dataType: ${e}, shape: ${A}}`));let i=await s.createTensor({dataType:e,shape:A,dimensions:A,usage:t,writable:r,readable:n});return new Vo({sessionId:a,context:s,tensor:i,dataType:e,shape:A})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},Ko=(...e)=>new Uo(...e)})),fc=L((()=>{rl(),$o(),sl(),dc(),al(),Zo=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Xo=(e,A)=>{if(e===A)return!0;if(void 0===e||void 0===A)return!1;let t=Object.keys(e).sort(),r=Object.keys(A).sort();return t.length===r.length&&t.every(((t,n)=>t===r[n]&&e[t]===A[t]))},qo=class{constructor(e){this.tensorManager=Ko(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],sA(e.logLevel,!!e.debug)}get currentSessionId(){if(void 0===this.activeSessionId)throw new Error("No active session");return this.activeSessionId}onRunStart(e){this.activeSessionId=e}async createMLContext(e){if(e instanceof GPUDevice){let A=this.mlContextCache.findIndex((A=>A.gpuDevice===e));if(-1!==A)return this.mlContextCache[A].mlContext;{let A=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:A}),A}}if(void 0===e){let e=this.mlContextCache.findIndex((e=>void 0===e.options&&void 0===e.gpuDevice));if(-1!==e)return this.mlContextCache[e].mlContext;{let e=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:e}),e}}let A=this.mlContextCache.findIndex((A=>Xo(A.options,e)));if(-1!==A)return this.mlContextCache[A].mlContext;{let A=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:A}),A}}get currentContext(){let e=this.getMLContext(this.currentSessionId);if(!e)throw new Error(`No MLContext found for session ${this.currentSessionId}`);return e}registerMLContext(e,A){this.mlContextBySessionId.set(e,A);let t=this.sessionIdsByMLContext.get(A);t||(t=new Set,this.sessionIdsByMLContext.set(A,t)),t.add(e)}onReleaseSession(e){let A=this.mlContextBySessionId.get(e);if(!A)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e);let t=this.sessionIdsByMLContext.get(A);if(t.delete(e),0===t.size){this.sessionIdsByMLContext.delete(A);let e=this.mlContextCache.findIndex((e=>e.mlContext===A));-1!==e&&this.mlContextCache.splice(e,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){oA("verbose",(()=>`[WebNN] releaseTensorId {tensorId: ${e}}`)),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,A,t,r){let n=Zo.get(A);if(!n)throw new Error(`Unsupported ONNX data type: ${A}`);return this.tensorManager.ensureTensor(e,n,t,r)}uploadTensor(e,A){if(!Ne().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");oA("verbose",(()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${A.byteLength}}`)),this.tensorManager.upload(e,A)}async downloadTensor(e,A){return this.tensorManager.download(e,A)}createMLTensorDownloader(e,A){return async()=>{let t=await this.tensorManager.download(e);return lA(t,A)}}registerMLTensor(e,A,t){let r=Zo.get(A);if(!r)throw new Error(`Unsupported ONNX data type: ${A}`);let n=this.tensorManager.registerTensor(this.currentContext,e,r,t);return oA("verbose",(()=>`[WebNN] registerMLTensor {tensor: ${e}, dataType: ${r}, dimensions: ${t}} -> {tensorId: ${n}}`)),n}registerMLConstant(e,A,t,r,n,a){if(!a)throw new Error("External mounted files are not available.");let s=e;e.startsWith("./")&&(s=e.substring(2));let i=a.get(s);if(!i)throw new Error(`File with name ${s} not found in preloaded files.`);if(A+t>i.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let o,l=i.slice(A,A+t).buffer;switch(n.dataType){case"float32":o=new Float32Array(l);break;case"float16":o=new Uint16Array(l);break;case"int32":o=new Int32Array(l);break;case"uint32":o=new Uint32Array(l);break;case"int64":o=new BigInt64Array(l);break;case"uint64":o=new BigUint64Array(l);break;case"int8":o=new Int8Array(l);break;case"int4":case"uint4":case"uint8":o=new Uint8Array(l);break;default:throw new Error(`Unsupported data type: ${n.dataType} in creating WebNN Constant from external data.`)}return oA("verbose",(()=>`[WebNN] registerMLConstant {dataType: ${n.dataType}, shape: ${n.shape}}}`)),r.constant(n,o)}flush(){}}})),pc={};Y(pc,{init:()=>Cc});var hc,mc,Cc,bc,Ic,wc,kc,xc,Bc,vc,yc,Ec,Mc,Gc,Dc,Qc,Tc,Pc,zc,Fc,Sc,Nc,Oc,Lc,Yc,Hc,Rc,Wc,Vc,jc,Uc,Kc,Zc,Xc,qc,Jc,_c=L((()=>{rl(),uc(),al(),cl(),fc(),hc=class e{constructor(e,A,t,r){this.module=e,this.dataType=A,this.data=t,this.dims=r}getFloat32Array(){if(1!==this.dataType)throw new Error("Invalid data type");let e=xA.size(this.dims);return 0===e?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,e)}getBigInt64Array(){if(7!==this.dataType)throw new Error("Invalid data type");let e=xA.size(this.dims);return 0===e?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,e)}getInt32Array(){if(6!==this.dataType)throw new Error("Invalid data type");let e=xA.size(this.dims);return 0===e?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,e)}getUint16Array(){if(10!==this.dataType&&4!==this.dataType)throw new Error("Invalid data type");let e=xA.size(this.dims);return 0===e?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,e)}reshape(A){if(xA.size(A)!==xA.size(this.dims))throw new Error("Invalid new shape");return new e(this.module,this.dataType,this.data,A)}},mc=class{constructor(e,A,t){this.module=e,this.backend=A,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=A.adapterInfo,this.deviceInfo=A.deviceInfo;let r=e.PTR_SIZE,n=t/e.PTR_SIZE,a=4===r?"i32":"i64";this.opKernelContext=Number(e.getValue(r*n++,a));let s=Number(e.getValue(r*n++,a));this.outputCount=Number(e.getValue(r*n++,a)),this.customDataOffset=Number(e.getValue(r*n++,"*")),this.customDataSize=Number(e.getValue(r*n++,a));let i=[];for(let A=0;A<s;A++){let A=Number(e.getValue(r*n++,a)),t=Number(e.getValue(r*n++,"*")),s=Number(e.getValue(r*n++,a)),o=[];for(let A=0;A<s;A++)o.push(Number(e.getValue(r*n++,a)));i.push(new hc(e,A,t,o))}this.inputs=i}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(e,A){let t=A?.inputs?.map((e=>"number"==typeof e?this.inputs[e]:e))??this.inputs,r=A?.outputs??[];return this.backend.run(e,t,r,((e,A,t)=>new hc(this.module,A,this.output(e,t),t)),((e,A)=>{let t=Xe(e,A);if(!t)throw new Error(`Unsupported data type: ${e}`);let r=t>0?this.backend.gpuDataManager.create(t).id:0;return new hc(this.module,e,r,A)}),this.outputCount)}output(e,A){let t=this.module.stackSave();try{let t=this.module.PTR_SIZE,r=4===t?"i32":"i64",n=this.module.stackAlloc((1+A.length)*t);this.module.setValue(n,A.length,r);for(let e=0;e<A.length;e++)this.module.setValue(n+t*(e+1),A[e],r);return this.module._JsepOutput(this.opKernelContext,e,n)}catch(t){throw new Error(`Failed to generate kernel's output[${e}] with dims [${A}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${t}`)}finally{this.module.stackRestore(t)}}},Cc=async(e,A,t,r)=>{let n=A.jsepInit;if(!n)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if("webgpu"===e){let e=new Lo;await e.initialize(t,r),n("webgpu",[e,A=>e.alloc(Number(A)),A=>e.free(A),(t,r,n,a=!1)=>{if(a)oA("verbose",(()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(t)}, dst=${Number(r)}, size=${Number(n)}`)),e.memcpy(Number(t),Number(r));else{oA("verbose",(()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(t)}, gpuDataId=${Number(r)}, size=${Number(n)}`));let a=A.HEAPU8.subarray(Number(t>>>0),Number(t>>>0)+Number(n));e.upload(Number(r),a)}},async(t,r,n)=>{oA("verbose",(()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${t}, dataOffset=${r}, size=${n}`)),await e.download(Number(t),(()=>A.HEAPU8.subarray(Number(r)>>>0,Number(r+n)>>>0)))},(t,r,n)=>e.createKernel(t,Number(r),n,A.UTF8ToString(A._JsepGetNodeName(Number(r)))),A=>e.releaseKernel(A),(t,r,n,a)=>{oA("verbose",(()=>`[WebGPU] jsepRun: sessionHandle=${n}, kernel=${t}, contextDataOffset=${r}`));let s=new mc(A,e,Number(r));return e.computeKernel(Number(t),s,a)},()=>e.captureBegin(),()=>e.captureEnd(),()=>e.replay()])}else{let e=new qo(t);n("webnn",[e,()=>e.reserveTensorId(),A=>e.releaseTensorId(A),async(A,t,r,n)=>e.ensureTensor(A,t,r,n),(A,t)=>{e.uploadTensor(A,t)},async(A,t)=>e.downloadTensor(A,t)])}}})),$c=L((()=>{Al(),tl(),rl(),$o(),el(),nl(),bc=(e,A)=>{0!==Ne()._OrtInit(e,A)&&Ye("Can't initialize onnxruntime.")},Ic=async e=>{bc(e.wasm.numThreads,Je(e.logLevel))},wc=async(e,A)=>{{let t=(_c(),H(pc)).init;if("webgpu"===A){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let A=e.webgpu.adapter;if(A){if("object"!=typeof A.limits||"object"!=typeof A.features||"function"!=typeof A.requestDevice)throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let t=e.webgpu.powerPreference;if(void 0!==t&&"low-power"!==t&&"high-performance"!==t)throw new Error(`Invalid powerPreference setting: "${t}"`);let r=e.webgpu.forceFallbackAdapter;if(void 0!==r&&"boolean"!=typeof r)throw new Error(`Invalid forceFallbackAdapter setting: "${r}"`);if(A=await navigator.gpu.requestAdapter({powerPreference:t,forceFallbackAdapter:r}),!A)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await t("webgpu",Ne(),e,A)}if("webnn"===A){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Ne(),e)}}},kc=new Map,xc=e=>{let A=Ne(),t=A.stackSave();try{let t=A.PTR_SIZE,r=A.stackAlloc(2*t);0!==A._OrtGetInputOutputCount(e,r,r+t)&&Ye("Can't get session input/output count.");let n=4===t?"i32":"i64";return[Number(A.getValue(r,n)),Number(A.getValue(r+t,n))]}finally{A.stackRestore(t)}},Bc=e=>{let A=Ne(),t=A._malloc(e.byteLength);if(0===t)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return A.HEAPU8.set(e,t),[t,e.byteLength]},vc=async(e,A)=>{let t,r,n=Ne();Array.isArray(e)?[t,r]=e:e.buffer===n.HEAPU8.buffer?[t,r]=[e.byteOffset,e.byteLength]:[t,r]=Bc(e);let a=0,s=0,i=0,o=[],l=[],c=[];try{if([s,o]=Ue(A),A?.externalData&&n.mountExternalData){let e=[];for(let t of A.externalData){let A="string"==typeof t?t:t.path;e.push(AA("string"==typeof t?t:t.data).then((e=>{n.mountExternalData(A,e)})))}await Promise.all(e)}for(let e of A?.executionProviders??[])if("webnn"===("string"==typeof e?e:e.name)){if(n.shouldTransferToMLTensor=!1,"string"!=typeof e){let A=e,t=A?.context,r=A?.gpuDevice,a=A?.deviceType,s=A?.powerPreference;n.currentContext=t||(r?await n.jsepCreateMLContext(r):await n.jsepCreateMLContext({deviceType:a,powerPreference:s}))}else n.currentContext=await n.jsepCreateMLContext();break}a=await n._OrtCreateSession(t,r,s),0===a&&Ye("Can't create a session."),n.jsepOnCreateSession?.(),n.currentContext&&(n.jsepRegisterMLContext(a,n.currentContext),n.currentContext=void 0,n.shouldTransferToMLTensor=!0);let[e,g]=xc(a),u=!!A?.enableGraphCapture,d=[],f=[],p=[];for(let A=0;A<e;A++){let e=n._OrtGetInputName(a,A);0===e&&Ye("Can't get an input name."),l.push(e),d.push(n.UTF8ToString(e))}for(let e=0;e<g;e++){let t=n._OrtGetOutputName(a,e);0===t&&Ye("Can't get an output name."),c.push(t);let r=n.UTF8ToString(t);f.push(r);{if(u&&void 0===A?.preferredOutputLocation){p.push("gpu-buffer");continue}let e="string"==typeof A?.preferredOutputLocation?A.preferredOutputLocation:A?.preferredOutputLocation?.[r]??"cpu";if("cpu"!==e&&"cpu-pinned"!==e&&"gpu-buffer"!==e&&"ml-tensor"!==e)throw new Error(`Not supported preferred output location: ${e}.`);if(u&&"gpu-buffer"!==e)throw new Error(`Not supported preferred output location: ${e}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);p.push(e)}}let h=null;return p.some((e=>"gpu-buffer"===e||"ml-tensor"===e))&&(i=n._OrtCreateBinding(a),0===i&&Ye("Can't create IO binding."),h={handle:i,outputPreferredLocations:p,outputPreferredLocationsEncoded:p.map((e=>eA(e)))}),kc.set(a,[a,l,c,h,u,!1]),[a,d,f]}catch(e){throw l.forEach((e=>n._OrtFree(e))),c.forEach((e=>n._OrtFree(e))),0!==i&&0!==n._OrtReleaseBinding(i)&&Ye("Can't release IO binding."),0!==a&&0!==n._OrtReleaseSession(a)&&Ye("Can't release session."),e}finally{n._free(t),0!==s&&0!==n._OrtReleaseSessionOptions(s)&&Ye("Can't release session options."),o.forEach((e=>n._free(e))),n.unmountExternalData?.()}},yc=e=>{let A=Ne(),t=kc.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[r,n,a,s,i]=t;s&&(i&&0!==A._OrtClearBoundOutputs(s.handle)&&Ye("Can't clear bound outputs."),0!==A._OrtReleaseBinding(s.handle)&&Ye("Can't release IO binding.")),A.jsepOnReleaseSession?.(e),n.forEach((e=>A._OrtFree(e))),a.forEach((e=>A._OrtFree(e))),0!==A._OrtReleaseSession(r)&&Ye("Can't release session."),kc.delete(e)},Ec=(e,A,t,r,n,a=!1)=>{if(!e)return void A.push(0);let s,i,o=Ne(),l=o.PTR_SIZE,c=e[0],g=e[1],u=e[3];if("string"===c&&("gpu-buffer"===u||"ml-tensor"===u))throw new Error("String tensor is not supported on GPU.");if(a&&"gpu-buffer"!==u)throw new Error(`External buffer must be provided for input/output index ${n} when enableGraphCapture is true.`);if("gpu-buffer"===u){let A=e[2].gpuBuffer;i=Xe(Ke(c),g);let t=o.jsepRegisterBuffer;if(!t)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');s=t(r,n,A,i)}else if("ml-tensor"===u){let A=e[2].mlTensor;i=Xe(Ke(c),g);let t=o.jsepRegisterMLTensor;if(!t)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');s=t(A,Ke(c),g)}else{let A=e[2];if(Array.isArray(A)){i=l*A.length,s=o._malloc(i),t.push(s);for(let e=0;e<A.length;e++){if("string"!=typeof A[e])throw new TypeError(`tensor data at index ${e} is not a string`);o.setValue(s+e*l,Oe(A[e],t),"*")}}else i=A.byteLength,s=o._malloc(i),t.push(s),o.HEAPU8.set(new Uint8Array(A.buffer,A.byteOffset,i),s)}let d=o.stackSave(),f=o.stackAlloc(4*g.length);try{g.forEach(((e,A)=>o.setValue(f+A*l,e,4===l?"i32":"i64")));let e=o._OrtCreateTensor(Ke(c),s,i,f,g.length,eA(u));0===e&&Ye(`Can't create tensor for input/output. session=${r}, index=${n}.`),A.push(e)}finally{o.stackRestore(d)}},Mc=async(e,A,t,r,n,a)=>{let s=Ne(),i=s.PTR_SIZE,o=kc.get(e);if(!o)throw new Error(`cannot run inference. invalid session id: ${e}`);let l=o[0],c=o[1],g=o[2],u=o[3],d=o[4],f=o[5],p=A.length,h=r.length,m=0,C=[],b=[],I=[],w=[],k=s.stackSave(),x=s.stackAlloc(p*i),B=s.stackAlloc(p*i),v=s.stackAlloc(h*i),y=s.stackAlloc(h*i);try{s.jsepOnRunStart?.(l),[m,C]=He(a);for(let r=0;r<p;r++)Ec(t[r],b,w,e,A[r],d);for(let A=0;A<h;A++)Ec(n[A],I,w,e,p+r[A],d);for(let e=0;e<p;e++)s.setValue(x+e*i,b[e],"*"),s.setValue(B+e*i,c[A[e]],"*");for(let e=0;e<h;e++)s.setValue(v+e*i,I[e],"*"),s.setValue(y+e*i,g[r[e]],"*");if(u&&!f){let{handle:t,outputPreferredLocations:a,outputPreferredLocationsEncoded:i}=u;if(c.length!==p)throw new Error(`input count from feeds (${p}) is expected to be always equal to model's input count (${c.length}).`);for(let r=0;r<p;r++){let n=A[r];0!==await s._OrtBindInput(t,c[n],b[r])&&Ye(`Can't bind input[${r}] for session=${e}.`)}for(let A=0;A<h;A++){let o=r[A];n[A]?.[3]?0!==s._OrtBindOutput(t,g[o],I[A],0)&&Ye(`Can't bind pre-allocated output[${A}] for session=${e}.`):0!==s._OrtBindOutput(t,g[o],0,i[o])&&Ye(`Can't bind output[${A}] to ${a[A]} for session=${e}.`)}kc.set(e,[l,c,g,u,d,!0])}let o;o=u?await s._OrtRunWithBinding(l,u.handle,h,v,m):await s._OrtRun(l,B,x,p,y,h,v,m),0!==o&&Ye("failed to call OrtRun().");let k=[];for(let e=0;e<h;e++){let A=Number(s.getValue(v+e*i,"*"));if(A===I[e]){k.push(n[e]);continue}let t,a=s.stackSave(),o=s.stackAlloc(4*i),l=!1,c=0;try{0!==s._OrtGetTensorData(A,o,o+i,o+2*i,o+3*i)&&Ye(`Can't access output tensor data on index ${e}.`);let n=4===i?"i32":"i64",a=Number(s.getValue(o,n));c=s.getValue(o+i,"*");let g=s.getValue(o+2*i,"*"),d=Number(s.getValue(o+3*i,n)),f=[];for(let e=0;e<d;e++)f.push(Number(s.getValue(g+e*i,n)));0!==s._OrtFree(g)&&Ye("Can't free memory for tensor dims.");let p=f.reduce(((e,A)=>e*A),1);t=Ze(a);let h=u?.outputPreferredLocations[r[e]];if("string"===t){if("gpu-buffer"===h||"ml-tensor"===h)throw new Error("String tensor is not supported on GPU.");let e=[];for(let A=0;A<p;A++){let t=s.getValue(c+A*i,"*"),r=s.getValue(c+(A+1)*i,"*"),n=A===p-1?void 0:r-t;e.push(s.UTF8ToString(t,n))}k.push([t,f,e,"cpu"])}else if("gpu-buffer"===h&&p>0){let e=s.jsepGetBuffer;if(!e)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let r=e(c),n=Xe(a,p);if(void 0===n||!_e(t))throw new Error(`Unsupported data type: ${t}`);l=!0,k.push([t,f,{gpuBuffer:r,download:s.jsepCreateDownloader(r,n,t),dispose:()=>{0!==s._OrtReleaseTensor(A)&&Ye("Can't release tensor.")}},"gpu-buffer"])}else if("ml-tensor"===h&&p>0){let e=s.jsepEnsureTensor;if(!e)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(void 0===Xe(a,p)||!$e(t))throw new Error(`Unsupported data type: ${t}`);let r=await e(c,a,f,!1);l=!0,k.push([t,f,{mlTensor:r,download:s.jsepCreateMLTensorDownloader(c,t),dispose:()=>{s.jsepReleaseTensorId(c),s._OrtReleaseTensor(A)}},"ml-tensor"])}else{let e=new(qe(t))(p);new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(s.HEAPU8.subarray(c,c+e.byteLength)),k.push([t,f,e,"cpu"])}}finally{s.stackRestore(a),"string"===t&&c&&s._free(c),l||s._OrtReleaseTensor(A)}}return u&&!d&&(0!==s._OrtClearBoundOutputs(u.handle)&&Ye("Can't clear bound outputs."),kc.set(e,[l,c,g,u,d,!1])),k}finally{s.stackRestore(k),b.forEach((e=>s._OrtReleaseTensor(e))),I.forEach((e=>s._OrtReleaseTensor(e))),w.forEach((e=>s._free(e))),0!==m&&s._OrtReleaseRunOptions(m),C.forEach((e=>s._free(e)))}},Gc=e=>{let A=Ne(),t=kc.get(e);if(!t)throw new Error("invalid session id");let r=t[0],n=A._OrtEndProfiling(r);0===n&&Ye("Can't get an profile file name."),A._OrtFree(n)},Dc=e=>{let A=[];for(let t of e){let e=t[2];!Array.isArray(e)&&"buffer"in e&&A.push(e.buffer)}return A}})),eg=L((()=>{ie(),$c(),$o(),_o(),Qc=()=>!!g.wasm.proxy&&typeof document<"u",Pc=!1,zc=!1,Fc=!1,Oc=new Map,Lc=(e,A)=>{let t=Oc.get(e);t?t.push(A):Oc.set(e,[A])},Yc=()=>{if(Pc||!zc||Fc||!Tc)throw new Error("worker not ready")},Hc=e=>{switch(e.data.type){case"init-wasm":Pc=!1,e.data.err?(Fc=!0,Nc[1](e.data.err)):(zc=!0,Nc[0]()),Sc&&(URL.revokeObjectURL(Sc),Sc=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let A=Oc.get(e.data.type);e.data.err?A.shift()[1](e.data.err):A.shift()[0](e.data.out);break}}},Rc=async()=>{if(!zc){if(Pc)throw new Error("multiple calls to 'initWasm()' detected.");if(Fc)throw new Error("previous call to 'initWasm()' failed.");if(Pc=!0,Qc())return new Promise(((e,A)=>{Tc?.terminate(),Ee().then((([r,n])=>{try{(Tc=n).onerror=e=>A(e),Tc.onmessage=Hc,Nc=[e,A];let a={type:"init-wasm",in:g};!a.in.wasm.wasmPaths&&(r||import.meta.url?.startsWith("file:"))&&(a.in.wasm.wasmPaths={wasm:new URL(t("./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm"),t.b).href}),Tc.postMessage(a),Sc=r}catch(e){A(e)}}),A)}));try{await Se(g.wasm),await Ic(g),zc=!0}catch(e){throw Fc=!0,e}finally{Pc=!1}}},Wc=async e=>{if(Qc())return Yc(),new Promise(((A,t)=>{Lc("init-ep",[A,t]);let r={type:"init-ep",in:{epName:e,env:g}};Tc.postMessage(r)}));await wc(g,e)},Vc=async e=>Qc()?(Yc(),new Promise(((A,t)=>{Lc("copy-from",[A,t]);let r={type:"copy-from",in:{buffer:e}};Tc.postMessage(r,[e.buffer])}))):Bc(e),jc=async(e,A)=>{if(Qc()){if(A?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Yc(),new Promise(((t,r)=>{Lc("create",[t,r]);let n={type:"create",in:{model:e,options:{...A}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),Tc.postMessage(n,a)}))}return vc(e,A)},Uc=async e=>{if(Qc())return Yc(),new Promise(((A,t)=>{Lc("release",[A,t]);let r={type:"release",in:e};Tc.postMessage(r)}));yc(e)},Kc=async(e,A,t,r,n,a)=>{if(Qc()){if(t.some((e=>"cpu"!==e[3])))throw new Error("input tensor on GPU is not supported for proxy.");if(n.some((e=>e)))throw new Error("pre-allocated output tensor is not supported for proxy.");return Yc(),new Promise(((n,s)=>{Lc("run",[n,s]);let i=t,o={type:"run",in:{sessionId:e,inputIndices:A,inputs:i,outputIndices:r,options:a}};Tc.postMessage(o,Dc(i))}))}return Mc(e,A,t,r,n,a)},Zc=async e=>{if(Qc())return Yc(),new Promise(((A,t)=>{Lc("end-profiling",[A,t]);let r={type:"end-profiling",in:e};Tc.postMessage(r)}));Gc(e)}})),Ag=L((()=>{ie(),eg(),rl(),oe(),nl(),Xc=(e,A)=>{switch(e.location){case"cpu":return[e.type,e.dims,e.data,"cpu"];case"gpu-buffer":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[e.type,e.dims,{mlTensor:e.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${e.location} for ${A()}`)}},qc=e=>{switch(e[3]){case"cpu":return new E(e[0],e[2],e[1]);case"gpu-buffer":{let A=e[0];if(!_e(A))throw new Error(`not supported data type: ${A} for deserializing GPU tensor`);let{gpuBuffer:t,download:r,dispose:n}=e[2];return E.fromGpuBuffer(t,{dataType:A,dims:e[1],download:r,dispose:n})}case"ml-tensor":{let A=e[0];if(!$e(A))throw new Error(`not supported data type: ${A} for deserializing MLTensor tensor`);let{mlTensor:t,download:r,dispose:n}=e[2];return E.fromMLTensor(t,{dataType:A,dims:e[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${e[3]}`)}},Jc=class{async fetchModelAndCopyToWasmMemory(e){return Vc(await AA(e))}async loadModel(e,A){let t;D(),t="string"==typeof e?await this.fetchModelAndCopyToWasmMemory(e):e,[this.sessionId,this.inputNames,this.outputNames]=await jc(t,A),Q()}async dispose(){return Uc(this.sessionId)}async run(e,A,t){D();let r=[],n=[];Object.entries(e).forEach((e=>{let A=e[0],t=e[1],a=this.inputNames.indexOf(A);if(-1===a)throw new Error(`invalid input '${A}'`);r.push(t),n.push(a)}));let a=[],s=[];Object.entries(A).forEach((e=>{let A=e[0],t=e[1],r=this.outputNames.indexOf(A);if(-1===r)throw new Error(`invalid output '${A}'`);a.push(t),s.push(r)}));let i=r.map(((e,A)=>Xc(e,(()=>`input "${this.inputNames[n[A]]}"`)))),o=a.map(((e,A)=>e?Xc(e,(()=>`output "${this.outputNames[s[A]]}"`)):null)),l=await Kc(this.sessionId,n,i,s,o,t),c={};for(let e=0;e<l.length;e++)c[this.outputNames[s[e]]]=a[e]??qc(l[e]);return Q(),c}startProfiling(){}endProfiling(){Zc(this.sessionId)}}})),tg={};Y(tg,{OnnxruntimeWebAssemblyBackend:()=>ng,initializeFlags:()=>rg,wasmBackend:()=>ag});var rg,ng,ag,sg=L((()=>{ie(),eg(),Ag(),rg=()=>{if(("number"!=typeof g.wasm.initTimeout||g.wasm.initTimeout<0)&&(g.wasm.initTimeout=0),!1===g.wasm.simd&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),"boolean"!=typeof g.wasm.proxy&&(g.wasm.proxy=!1),"boolean"!=typeof g.wasm.trace&&(g.wasm.trace=!1),"number"!=typeof g.wasm.numThreads||!Number.isInteger(g.wasm.numThreads)||g.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)g.wasm.numThreads=1;else{let e=typeof navigator>"u"?O("node:os").cpus().length:navigator.hardwareConcurrency;g.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},ng=class{async init(e){rg(),await Rc(),await Wc(e)}async createInferenceSessionHandler(e,A){let t=new Jc;return await t.loadModel(e,A),Promise.resolve(t)}},ag=new ng}));ie(),ie(),ie();var ig=se;{let e=(sg(),H(tg)).wasmBackend;a("webgpu",e,5),a("webnn",e,5),a("cpu",e,10),a("wasm",e,10)}Object.defineProperty(g.versions,"web",{value:"1.21.0-dev.20250206-d981b153d3",enumerable:!0})},"./src/backends/onnx.js":(e,A,t)=>{var r;t.r(A),t.d(A,{Tensor:()=>i.Tensor,createInferenceSession:()=>h,deviceToExecutionProviders:()=>f,isONNXProxy:()=>b,isONNXTensor:()=>m});var n=t("./src/env.js"),a=t("?2ce3"),s=t("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?3a96"),i=t("./node_modules/onnxruntime-common/dist/esm/index.js");const o=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"}}),l=[];let c,g;const u=Symbol.for("onnxruntime");if(u in globalThis)g=globalThis[u];else if(n.apis.IS_NODE_ENV){switch(g=a??(r||(r=t.t(a,2))),process.platform){case"win32":l.push("dml");break;case"linux":"x64"===process.arch&&l.push("cuda")}l.push("cpu"),c=["cpu"]}else g=s,n.apis.IS_WEBNN_AVAILABLE&&l.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),n.apis.IS_WEBGPU_AVAILABLE&&l.push("webgpu"),l.push("wasm"),c=["wasm"];const d=g.InferenceSession;function f(e=null){if(!e)return c;switch(e){case"auto":return l;case"gpu":return l.filter((e=>["webgpu","cuda","dml","webnn-gpu"].includes(e)))}if(l.includes(e))return[o[e]??e];throw new Error(`Unsupported device: "${e}". Should be one of: ${l.join(", ")}.`)}let p=null;async function h(e,A,t){p&&await p;const r=d.create(e,A);p??=r;const n=await r;return n.config=t,n}function m(e){return e instanceof g.Tensor}const C=g?.env;function b(){return C?.wasm?.proxy}C?.wasm&&(C.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${n.env.version}/dist/`,C.wasm.proxy=!1,"undefined"!=typeof crossOriginIsolated&&crossOriginIsolated||(C.wasm.numThreads=1)),C?.webgpu&&(C.webgpu.powerPreference="high-performance"),n.env.backends.onnx=C},"./src/base/feature_extraction_utils.js":(e,A,t)=>{t.r(A),t.d(A,{FeatureExtractor:()=>s,validate_audio_inputs:()=>i});var r=t("./src/utils/constants.js"),n=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class s extends n.Callable{constructor(e){super(),this.config=e}static async from_pretrained(e,A){return new this(await(0,a.getModelJSON)(e,r.FEATURE_EXTRACTOR_NAME,!0,A))}}function i(e,A){if(!(e instanceof Float32Array||e instanceof Float64Array))throw new Error(`${A} 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":(e,A,t)=>{t.r(A),t.d(A,{ImageProcessor:()=>b,center_to_corners_format:()=>g,post_process_instance_segmentation:()=>C,post_process_object_detection:()=>u,post_process_panoptic_segmentation:()=>m,post_process_semantic_segmentation:()=>d});var r=t("./src/utils/generic.js"),n=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");t("./src/utils/image.js");var s=t("./src/utils/core.js"),i=t("./src/utils/hub.js"),o=t("./src/utils/constants.js");function l(e,A,t=0,r=null){const n=e/A;let s=(0,a.bankers_round)(n)*A;return null!==r&&s>r&&(s=Math.floor(n)*A),s<t&&(s=Math.ceil(n)*A),s}function c([e,A],t){return[Math.max(Math.floor(e/t),1)*t,Math.max(Math.floor(A/t),1)*t]}function g([e,A,t,r]){return[e-t/2,A-r/2,e+t/2,A+r/2]}function u(e,A=.5,t=null,r=!1){const n=e.logits,s=e.pred_boxes,[i,o,l]=n.dims;if(null!==t&&t.length!==i)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let c=[];for(let e=0;e<i;++e){let i=null!==t?t[e]:null,u={boxes:[],classes:[],scores:[]},d=n[e],f=s[e];for(let e=0;e<o;++e){let t,n=d[e],s=[];if(r){t=n.sigmoid().data;for(let e=0;e<t.length;++e)t[e]>A&&s.push(e)}else{let e=(0,a.max)(n.data)[1];if(e===l-1)continue;if(t=(0,a.softmax)(n.data),t[e]<A)continue;s.push(e)}for(const A of s){let r=f[e].data;r=g(r),null!==i&&(r=r.map(((e,A)=>e*i[(A+1)%2]))),u.boxes.push(r),u.classes.push(A),u.scores.push(t[A])}}c.push(u)}return c}function d(e,A=null){const t=e.logits,r=t.dims[0];if(null!==A&&A.length!==r)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const a=[];for(let e=0;e<r;++e){const r=null!==A?A[e]:null;let s=t[e];null!==r&&(s=(0,n.interpolate)(s,r,"bilinear",!1));const[i,o]=r??s.dims.slice(-2),l=new n.Tensor("int32",new Int32Array(i*o),[i,o]),c=s[0].data,g=l.data;for(let e=1;e<s.dims[0];++e){const A=s[e].data;for(let t=0;t<A.length;++t)A[t]>c[t]&&(c[t]=A[t],g[t]=e)}const u=new Array(s.dims[0]);for(let e=0;e<g.length;++e){const A=g[e];u[A]=A}const d=u.filter((e=>void 0!==e));a.push({segmentation:l,labels:d})}return a}function f(e,A,t,r){const n=[],s=[],i=[];for(let o=0;o<e.dims[0];++o){const l=e[o],c=A[o],g=(0,a.max)(l.data)[1];if(g===r)continue;const u=(0,a.softmax)(l.data)[g];u>t&&(n.push(c),s.push(u),i.push(g))}return[n,s,i]}function p(e,A,t,r=.5,n=.8){const a=[];let s=0,i=0;const o=A[t].data;for(let A=0;A<e.length;++A)e[A]===t&&(a.push(A),++s),o[A]>=r&&++i;let l=s>0&&i>0;if(l){l=s/i>n}return[l,a]}function h(e,A,t,r,a,s=null,i=null){const[o,l]=i??e[0].dims,c=new n.Tensor("int32",new Int32Array(o*l),[o,l]),g=[];if(null!==i)for(let A=0;A<e.length;++A)e[A]=(0,n.interpolate)(e[A],i,"bilinear",!1);const u=new Int32Array(e[0].data.length),d=new Float32Array(e[0].data.length);for(let t=0;t<e.length;++t){let r=A[t];const n=e[t].data;for(let e=0;e<n.length;++e)n[e]*=r,n[e]>d[e]&&(u[e]=t,d[e]=n[e])}let f=0;const h=c.data;for(let n=0;n<t.length;++n){const s=t[n],[i,o]=p(u,e,n,r,a);if(i){++f;for(const e of o)h[e]=f;g.push({id:f,label_id:s,score:A[n]})}}return[c,g]}function m(e,A=.5,t=.5,r=.8,a=null,s=null){null===a&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),a=new Set);const i=e.class_queries_logits??e.logits,o=(e.masks_queries_logits??e.pred_masks).sigmoid();let[l,c,g]=i.dims;if(g-=1,null!==s&&s.length!==l)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let u=[];for(let e=0;e<l;++e){let l=null!==s?s[e]:null,c=i[e],d=o[e],[p,m,C]=f(c,d,A,g);if(0===C.length){let[e,A]=l??d.dims.slice(-2),t=new n.Tensor("int32",new Int32Array(e*A).fill(-1),[e,A]);u.push({segmentation:t,segments_info:[]});continue}let[b,I]=h(p,m,C,t,r,a,l);u.push({segmentation:b,segments_info:I})}return u}function C(e,A=.5,t=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class b extends r.Callable{constructor(e){super(),this.image_mean=e.image_mean??e.mean,this.image_std=e.image_std??e.std,this.resample=e.resample??2,this.do_rescale=e.do_rescale??!0,this.rescale_factor=e.rescale_factor??1/255,this.do_normalize=e.do_normalize,this.do_thumbnail=e.do_thumbnail,this.size=e.size??e.image_size,this.do_resize=e.do_resize??void 0!==this.size,this.size_divisibility=e.size_divisibility??e.size_divisor,this.do_center_crop=e.do_center_crop,this.crop_size=e.crop_size,this.do_convert_rgb=e.do_convert_rgb??!0,this.do_crop_margin=e.do_crop_margin,this.pad_size=e.pad_size,this.do_pad=e.do_pad,this.do_pad&&!this.pad_size&&this.size&&void 0!==this.size.width&&void 0!==this.size.height&&(this.pad_size=this.size),this.do_flip_channel_order=e.do_flip_channel_order??!1,this.config=e}async thumbnail(e,A,t=2){const r=e.height,n=e.width,a=A.height,s=A.width;let i=Math.min(r,a),o=Math.min(n,s);return i===r&&o===n?e:(r>n?o=Math.floor(n*i/r):n>r&&(i=Math.floor(r*o/n)),await e.resize(o,i,{resample:t}))}async crop_margin(e,A=200){const t=e.clone().grayscale(),r=(0,a.min)(t.data)[0],n=(0,a.max)(t.data)[0]-r;if(0===n)return e;const s=A/255;let i=t.width,o=t.height,l=0,c=0;const g=t.data;for(let e=0;e<t.height;++e){const A=e*t.width;for(let a=0;a<t.width;++a)(g[A+a]-r)/n<s&&(i=Math.min(i,a),o=Math.min(o,e),l=Math.max(l,a),c=Math.max(c,e))}return e=await e.crop([i,o,l,c])}pad_image(e,A,t,{mode:r="constant",center:n=!1,constant_values:a=0}={}){const[i,o,l]=A;let c,g;if("number"==typeof t?(c=t,g=t):"square"===t?c=g=Math.max(i,o):(c=t.width,g=t.height),c!==o||g!==i){const t=new Float32Array(c*g*l);if(Array.isArray(a))for(let e=0;e<t.length;++e)t[e]=a[e%l];else 0!==a&&t.fill(a);const[u,d]=n?[Math.floor((c-o)/2),Math.floor((g-i)/2)]:[0,0];for(let A=0;A<i;++A){const r=(A+d)*c,n=A*o;for(let A=0;A<o;++A){const a=(r+A+u)*l,s=(n+A)*l;for(let A=0;A<l;++A)t[a+A]=e[s+A]}}if("symmetric"===r){if(n)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");const A=i-1,r=o-1;for(let n=0;n<g;++n){const a=n*c,g=(0,s.calculateReflectOffset)(n,A)*o;for(let A=0;A<c;++A){if(n<i&&A<o)continue;const c=(a+A)*l,u=(g+(0,s.calculateReflectOffset)(A,r))*l;for(let A=0;A<l;++A)t[c+A]=e[u+A]}}}e=t,A=[g,c,l]}return[e,A]}rescale(e){for(let A=0;A<e.length;++A)e[A]=this.rescale_factor*e[A]}get_resize_output_image_size(e,A){const[t,r]=e.size;let n,a;if(this.do_thumbnail){const{height:e,width:t}=A;n=Math.min(e,t)}else Number.isInteger(A)?(n=A,a=this.config.max_size??n):void 0!==A&&(n=A.shortest_edge,a=A.longest_edge);if(void 0!==n||void 0!==a){const e=void 0===n?1:Math.max(n/t,n/r),A=t*e,s=r*e,i=void 0===a?1:Math.min(a/A,a/s);let o=Math.floor(Number((A*i).toFixed(2))),l=Math.floor(Number((s*i).toFixed(2)));return void 0!==this.size_divisibility&&([o,l]=c([o,l],this.size_divisibility)),[o,l]}if(void 0!==A&&void 0!==A.width&&void 0!==A.height){let e=A.width,n=A.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let A=n/r,a=e/t;Math.abs(1-a)<Math.abs(1-A)?A=a:a=A,n=l(A*r,this.config.ensure_multiple_of),e=l(a*t,this.config.ensure_multiple_of)}return[e,n]}if(void 0!==this.size_divisibility)return c([t,r],this.size_divisibility);if(void 0!==A.min_pixels&&void 0!==A.max_pixels){const{min_pixels:e,max_pixels:n}=A;return function(e,A,t=28,r=3136,n=1003520){if(e<t||A<t)throw new Error(`height:${e} or width:${A} must be larger than factor:${t}`);if(Math.max(e,A)/Math.min(e,A)>200)throw new Error("absolute aspect ratio must be smaller than 200, got "+Math.max(e,A)/Math.min(e,A));let a=Math.round(e/t)*t,s=Math.round(A/t)*t;if(a*s>n){const r=Math.sqrt(e*A/n);a=Math.floor(e/r/t)*t,s=Math.floor(A/r/t)*t}else if(a*s<r){const n=Math.sqrt(r/(e*A));a=Math.ceil(e*n/t)*t,s=Math.ceil(A*n/t)*t}return[a,s]}(r,t,this.config.patch_size*this.config.merge_size,e,n)}throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(A)}`)}async resize(e){const[A,t]=this.get_resize_output_image_size(e,this.size);return await e.resize(A,t,{resample:this.resample})}async preprocess(e,{do_normalize:A=null,do_pad:t=null,do_convert_rgb:r=null,do_convert_grayscale:a=null,do_flip_channel_order:s=null}={}){this.do_crop_margin&&(e=await this.crop_margin(e));const[i,o]=e.size;if(r??this.do_convert_rgb?e=e.rgb():a&&(e=e.grayscale()),this.do_resize&&(e=await this.resize(e)),this.do_thumbnail&&(e=await this.thumbnail(e,this.size,this.resample)),this.do_center_crop){let A,t;Number.isInteger(this.crop_size)?(A=this.crop_size,t=this.crop_size):(A=this.crop_size.width,t=this.crop_size.height),e=await e.center_crop(A,t)}const l=[e.height,e.width];let g=Float32Array.from(e.data),u=[e.height,e.width,e.channels];if(this.do_rescale&&this.rescale(g),A??this.do_normalize){let A=this.image_mean;Array.isArray(this.image_mean)||(A=new Array(e.channels).fill(A));let t=this.image_std;if(Array.isArray(this.image_std)||(t=new Array(e.channels).fill(A)),A.length!==e.channels||t.length!==e.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${A.length}) and \`image_std\` (${t.length}) must match the number of channels in the image (${e.channels}).`);for(let r=0;r<g.length;r+=e.channels)for(let n=0;n<e.channels;++n)g[r+n]=(g[r+n]-A[n])/t[n]}if(t??this.do_pad)if(this.pad_size){const A=this.pad_image(g,[e.height,e.width,e.channels],this.pad_size);[g,u]=A}else if(this.size_divisibility){const[e,A]=c([u[1],u[0]],this.size_divisibility);[g,u]=this.pad_image(g,u,{width:e,height:A})}if(s??this.do_flip_channel_order){if(3!==u[2])throw new Error("Flipping channel order is only supported for RGB images.");for(let e=0;e<g.length;e+=3){const A=g[e];g[e]=g[e+2],g[e+2]=A}}return{original_size:[o,i],reshaped_input_size:l,pixel_values:new n.Tensor("float32",g,u).permute(2,0,1)}}async _call(e,...A){Array.isArray(e)||(e=[e]);const t=await Promise.all(e.map((e=>this.preprocess(e)))),r=(0,n.stack)(t.map((e=>e.pixel_values)),0);return{pixel_values:r,original_sizes:t.map((e=>e.original_size)),reshaped_input_sizes:t.map((e=>e.reshaped_input_size))}}static async from_pretrained(e,A){return new this(await(0,i.getModelJSON)(e,o.IMAGE_PROCESSOR_NAME,!0,A))}}},"./src/base/processing_utils.js":(e,A,t)=>{t.r(A),t.d(A,{Processor:()=>s});var r=t("./src/utils/constants.js"),n=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class s extends n.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;constructor(e,A){super(),this.config=e,this.components=A}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,A={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(e,{tokenize:!1,...A})}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,...A){for(const t of[this.image_processor,this.feature_extractor,this.tokenizer])if(t)return t(e,...A);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(e,A){const[t,n]=await Promise.all([this.uses_processor_config?(0,a.getModelJSON)(e,r.PROCESSOR_NAME,!0,A):{},Promise.all(this.classes.filter((e=>e in this)).map((async t=>{const r=await this[t].from_pretrained(e,A);return[t.replace(/_class$/,""),r]}))).then(Object.fromEntries)]);return new this(t,n)}}},"./src/configs.js":(e,A,t)=>{t.r(A),t.d(A,{AutoConfig:()=>o,PretrainedConfig:()=>i,getKeyValueShapes:()=>s});var r=t("./src/utils/core.js"),n=t("./src/utils/hub.js");function a(e){const A={};let t={};switch(e.model_type){case"llava":case"paligemma":case"florence2":case"llava_onevision":case"idefics3":t=a(e.text_config);break;case"moondream1":t=a(e.phi_config);break;case"musicgen":t=a(e.decoder);break;case"multi_modality":t=a(e.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":A.num_heads="n_head",A.num_layers="n_layer",A.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":A.num_heads="num_attention_heads",A.num_layers="num_hidden_layers",A.hidden_size="hidden_size";break;case"llama":case"olmo":case"olmo2":case"mobilellm":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":A.num_heads="num_key_value_heads",A.num_layers="num_hidden_layers",A.hidden_size="hidden_size",A.num_attention_heads="num_attention_heads";break;case"gemma":case"gemma2":case"glm":case"helium":A.num_heads="num_key_value_heads",A.num_layers="num_hidden_layers",A.dim_kv="head_dim";break;case"openelm":A.num_heads="num_kv_heads",A.num_layers="num_transformer_layers",A.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":A.num_heads="num_heads",A.num_layers="num_layers",A.hidden_size="hidden_size";break;case"bloom":A.num_heads="n_head",A.num_layers="n_layer",A.hidden_size="hidden_size";break;case"mpt":A.num_heads="n_heads",A.num_layers="n_layers",A.hidden_size="d_model";break;case"exaone":A.num_heads="num_key_value_heads",A.num_layers="num_layers",A.dim_kv="head_dim",A.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":A.num_decoder_layers="num_decoder_layers",A.num_decoder_heads="num_heads",A.decoder_dim_kv="d_kv",A.num_encoder_layers="num_layers",A.num_encoder_heads="num_heads",A.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":A.num_decoder_layers="decoder_layers",A.num_decoder_heads="decoder_attention_heads",A.decoder_hidden_size="d_model",A.num_encoder_layers="encoder_layers",A.num_encoder_heads="encoder_attention_heads",A.encoder_hidden_size="d_model";break;case"speecht5":A.num_decoder_layers="decoder_layers",A.num_decoder_heads="decoder_attention_heads",A.decoder_hidden_size="hidden_size",A.num_encoder_layers="encoder_layers",A.num_encoder_heads="encoder_attention_heads",A.encoder_hidden_size="hidden_size";break;case"trocr":A.num_encoder_layers=A.num_decoder_layers="decoder_layers",A.num_encoder_heads=A.num_decoder_heads="decoder_attention_heads",A.encoder_hidden_size=A.decoder_hidden_size="d_model";break;case"musicgen_decoder":A.num_encoder_layers=A.num_decoder_layers="num_hidden_layers",A.num_encoder_heads=A.num_decoder_heads="num_attention_heads",A.encoder_hidden_size=A.decoder_hidden_size="hidden_size";break;case"moonshine":A.num_decoder_layers="decoder_num_hidden_layers",A.num_decoder_heads="decoder_num_key_value_heads",A.num_encoder_layers="encoder_num_hidden_layers",A.num_encoder_heads="encoder_num_key_value_heads",A.encoder_hidden_size=A.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const n=a(e.decoder),s="num_decoder_layers"in n,i=(0,r.pick)(e,["model_type","is_encoder_decoder"]);return s?(i.num_decoder_layers=n.num_decoder_layers,i.num_decoder_heads=n.num_decoder_heads,i.decoder_hidden_size=n.decoder_hidden_size,i.num_encoder_layers=n.num_encoder_layers,i.num_encoder_heads=n.num_encoder_heads,i.encoder_hidden_size=n.encoder_hidden_size):(i.num_layers=n.num_layers,i.num_heads=n.num_heads,i.hidden_size=n.hidden_size),i}const n={...t,...(0,r.pick)(e,["model_type","multi_query","is_encoder_decoder"])};for(const t in A)n[t]=e[A[t]];return n}function s(e,{prefix:A="past_key_values",batch_size:t=1}={}){const r={},n=e.normalized_config;if(n.is_encoder_decoder&&"num_encoder_heads"in n&&"num_decoder_heads"in n){const e=n.encoder_dim_kv??n.encoder_hidden_size/n.num_encoder_heads,a=n.decoder_dim_kv??n.decoder_hidden_size/n.num_decoder_heads,s=[t,n.num_encoder_heads,0,e],i=[t,n.num_decoder_heads,0,a];for(let e=0;e<n.num_decoder_layers;++e)r[`${A}.${e}.encoder.key`]=s,r[`${A}.${e}.encoder.value`]=s,r[`${A}.${e}.decoder.key`]=i,r[`${A}.${e}.decoder.value`]=i}else{const e=n.num_heads,a=n.num_layers,s=n.dim_kv??n.hidden_size/(n.num_attention_heads??e);if("falcon"===n.model_type){const n=[t*e,0,s];for(let e=0;e<a;++e)r[`${A}.${e}.key`]=n,r[`${A}.${e}.value`]=n}else if(n.multi_query){const n=[t*e,0,2*s];for(let e=0;e<a;++e)r[`${A}.${e}.key_value`]=n}else if("bloom"===n.model_type){const n=[t*e,s,0],i=[t*e,0,s];for(let e=0;e<a;++e)r[`${A}.${e}.key`]=n,r[`${A}.${e}.value`]=i}else if("openelm"===n.model_type)for(let n=0;n<a;++n){const a=[t,e[n],0,s];r[`${A}.${n}.key`]=a,r[`${A}.${n}.value`]=a}else{const n=[t,e,0,s];for(let e=0;e<a;++e)r[`${A}.${e}.key`]=n,r[`${A}.${e}.value`]=n}}return r}class i{model_type=null;is_encoder_decoder=!1;max_position_embeddings;"transformers.js_config";constructor(e){Object.assign(this,e),this.normalized_config=a(this)}static async from_pretrained(e,{progress_callback:A=null,config:t=null,cache_dir:r=null,local_files_only:a=!1,revision:s="main"}={}){!t||t instanceof i||(t=new i(t));const o=t??await async function(e,A){return await(0,n.getModelJSON)(e,"config.json",!0,A)}(e,{progress_callback:A,config:t,cache_dir:r,local_files_only:a,revision:s});return new this(o)}}class o{static async from_pretrained(...e){return i.from_pretrained(...e)}}},"./src/env.js":(e,A,t)=>{t.r(A),t.d(A,{apis:()=>p,env:()=>I});var r=t("?569f"),n=t("?3f59"),a=t("?154a");const s="undefined"!=typeof window&&void 0!==window.document,i="undefined"!=typeof self&&"DedicatedWorkerGlobalScope"===self.constructor?.name,o="undefined"!=typeof self&&"caches"in self,l="undefined"!=typeof navigator&&"gpu"in navigator,c="undefined"!=typeof navigator&&"ml"in navigator,g="undefined"!=typeof process,u=g&&"node"===process?.release?.name,d=!w(r),f=!w(n),p=Object.freeze({IS_BROWSER_ENV:s,IS_WEBWORKER_ENV:i,IS_WEB_CACHE_AVAILABLE:o,IS_WEBGPU_AVAILABLE:l,IS_WEBNN_AVAILABLE:c,IS_PROCESS_AVAILABLE:g,IS_NODE_ENV:u,IS_FS_AVAILABLE:d,IS_PATH_AVAILABLE:f}),h=d&&f;let m="./";if(h){const e=Object(import.meta).url;e?m=n.dirname(n.dirname(a.fileURLToPath(e))):"undefined"!=typeof __dirname&&(m=n.dirname(__dirname))}const C=h?n.join(m,"/.cache/"):null,b="/models/",I={version:"3.3.3",backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(s||i),localModelPath:h?n.join(m,b):b,useFS:d,useBrowserCache:o,useFSCache:d,cacheDir:C,useCustomCache:!1,customCache:null};function w(e){return 0===Object.keys(e).length}},"./src/generation/configuration_utils.js":(e,A,t)=>{t.r(A),t.d(A,{GenerationConfig:()=>n});var r=t("./src/utils/core.js");class n{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(e){Object.assign(this,(0,r.pick)(e,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(e,A,t)=>{t.r(A),t.d(A,{ClassifierFreeGuidanceLogitsProcessor:()=>m,ForcedBOSTokenLogitsProcessor:()=>o,ForcedEOSTokenLogitsProcessor:()=>l,LogitsProcessor:()=>a,LogitsProcessorList:()=>i,LogitsWarper:()=>s,MinLengthLogitsProcessor:()=>f,MinNewTokensLengthLogitsProcessor:()=>p,NoBadWordsLogitsProcessor:()=>h,NoRepeatNGramLogitsProcessor:()=>u,RepetitionPenaltyLogitsProcessor:()=>d,SuppressTokensAtBeginLogitsProcessor:()=>c,TemperatureLogitsWarper:()=>C,TopKLogitsWarper:()=>I,TopPLogitsWarper:()=>b,WhisperTimeStampLogitsProcessor:()=>g});var r=t("./src/utils/generic.js");t("./src/utils/tensor.js");var n=t("./src/utils/maths.js");class a extends r.Callable{_call(e,A){throw Error("`_call` should be implemented in a subclass")}}class s extends r.Callable{_call(e,A){throw Error("`_call` should be implemented in a subclass")}}class i extends r.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,A){let t=A;for(const A of this.processors)t=A(e,t);return t}[Symbol.iterator](){return this.processors.values()}}class o extends a{constructor(e){super(),this.bos_token_id=e}_call(e,A){for(let t=0;t<e.length;++t)if(1===e[t].length){const e=A[t].data;e.fill(-1/0),e[this.bos_token_id]=0}return A}}class l extends a{constructor(e,A){super(),this.max_length=e,this.eos_token_id=Array.isArray(A)?A:[A]}_call(e,A){for(let t=0;t<e.length;++t)if(e[t].length===this.max_length-1){const e=A[t].data;e.fill(-1/0);for(const A of this.eos_token_id)e[A]=0}return A}}class c extends a{constructor(e,A){super(),this.begin_suppress_tokens=e,this.begin_index=A}_call(e,A){for(let t=0;t<e.length;++t)if(e[t].length===this.begin_index){const e=A[t].data;for(const A of this.begin_suppress_tokens)e[A]=-1/0}return A}}class g extends a{constructor(e,A){super(),this.eos_token_id=Array.isArray(e.eos_token_id)?e.eos_token_id[0]:e.eos_token_id,this.no_timestamps_token_id=e.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=A.length,A.at(-1)===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=e.max_initial_timestamp_index}_call(e,A){for(let t=0;t<e.length;++t){const r=A[t].data;if(r[this.no_timestamps_token_id]=-1/0,e[t].length===this.begin_index-1){r.fill(-1/0),r[this.timestamp_begin]=0;continue}const a=e[t].slice(this.begin_index),s=a.length>=1&&a[a.length-1]>=this.timestamp_begin,i=a.length<2||a[a.length-2]>=this.timestamp_begin;if(s&&(i?r.subarray(this.timestamp_begin).fill(-1/0):r.subarray(0,this.eos_token_id).fill(-1/0)),e[t].length===this.begin_index&&null!==this.max_initial_timestamp_index){const e=this.timestamp_begin+this.max_initial_timestamp_index;r.subarray(e+1).fill(-1/0)}const o=(0,n.log_softmax)(r),l=Math.log(o.subarray(this.timestamp_begin).map(Math.exp).reduce(((e,A)=>e+A)));l>(0,n.max)(o.subarray(0,this.timestamp_begin))[0]&&r.subarray(0,this.timestamp_begin).fill(-1/0)}return A}}class u extends a{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const A=e.length,t=[];for(let r=0;r<A+1-this.no_repeat_ngram_size;++r){const A=[];for(let t=0;t<this.no_repeat_ngram_size;++t)A.push(e[r+t]);t.push(A.map(Number))}const r=new Map;for(const e of t){const A=e.slice(0,e.length-1),t=JSON.stringify(A),n=r.get(t)??[];n.push(e[e.length-1]),r.set(t,n)}return r}getGeneratedNgrams(e,A){const t=A.slice(A.length+1-this.no_repeat_ngram_size,A.length);return e.get(JSON.stringify(t.map(Number)))??[]}calcBannedNgramTokens(e){const A=[];if(e.length+1<this.no_repeat_ngram_size)return A;{const A=this.getNgrams(e);return this.getGeneratedNgrams(A,e)}}_call(e,A){for(let t=0;t<e.length;++t){const r=A[t].data,n=this.calcBannedNgramTokens(e[t]);for(const e of n)r[e]=-1/0}return A}}class d extends a{constructor(e){super(),this.penalty=e}_call(e,A){for(let t=0;t<e.length;++t){const r=A[t].data;for(const A of new Set(e[t])){const e=Number(A);r[e]<0?r[e]*=this.penalty:r[e]/=this.penalty}}return A}}class f extends a{constructor(e,A){super(),this.min_length=e,this.eos_token_id=Array.isArray(A)?A:[A]}_call(e,A){for(let t=0;t<e.length;++t)if(e[t].length<this.min_length){const e=A[t].data;for(const A of this.eos_token_id)e[A]=-1/0}return A}}class p extends a{constructor(e,A,t){super(),this.prompt_length_to_skip=e,this.min_new_tokens=A,this.eos_token_id=Array.isArray(t)?t:[t]}_call(e,A){for(let t=0;t<e.length;++t){if(e[t].length-this.prompt_length_to_skip<this.min_new_tokens){const e=A[t].data;for(const A of this.eos_token_id)e[A]=-1/0}}return A}}class h extends a{constructor(e,A){super(),this.bad_words_ids=e,this.eos_token_id=Array.isArray(A)?A:[A]}_call(e,A){for(let t=0;t<e.length;++t){const r=A[t].data,n=e[t];for(const e of this.bad_words_ids){let A=!0;for(let t=1;t<=e.length-1&&e.length<n.length;++t)if(e.at(-t-1)!=n.at(-t)){A=!1;break}A&&(r[e.at(-1)]=-1/0)}}return A}}class m extends a{constructor(e){if(super(),e<=1)throw new Error(`Require guidance scale >1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,A){if(A.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 ${A.dims[0]} for the logits and ${e.length} for the input ids.`);const t=e.length,r=A.slice([0,t],null),n=A.slice([t,A.dims[0]],null);for(let e=0;e<n.data.length;++e)n.data[e]+=(r.data[e]-n.data[e])*this.guidance_scale;return n}}class C extends s{constructor(e){super(),this.temperature=e}_call(e,A){const t=A.data;for(let e=0;e<t.length;++e)t[e]/=this.temperature;return A}}class b extends s{constructor(e,{filter_value:A=-1/0,min_tokens_to_keep:t=1}={}){if(super(),e<0||e>1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(t)||t<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${t}`);this.top_p=e,this.filter_value=A,this.min_tokens_to_keep=t}}class I extends s{constructor(e,{filter_value:A=-1/0,min_tokens_to_keep:t=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,t),this.filter_value=A}}},"./src/generation/logits_sampler.js":(e,A,t)=>{t.r(A),t.d(A,{LogitsSampler:()=>s});var r=t("./src/utils/generic.js"),n=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");t("./src/generation/configuration_utils.js");class s extends r.Callable{constructor(e){super(),this.generation_config=e}async _call(e){return this.sample(e)}async sample(e){throw Error("sample should be implemented in subclasses.")}getLogits(e,A){let t=e.dims.at(-1),r=e.data;if(-1===A)r=r.slice(-t);else{let e=A*t;r=r.slice(e,e+t)}return r}randomSelect(e){let A=0;for(let t=0;t<e.length;++t)A+=e[t];let t=Math.random()*A;for(let A=0;A<e.length;++A)if(t-=e[A],t<=0)return A;return 0}static getSampler(e){if(e.do_sample)return new o(e);if(e.num_beams>1)return new l(e);if(e.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${e.num_return_sequences}.`);return new i(e)}}class i extends s{async sample(e){const A=(0,a.max)(e.data)[1];return[[BigInt(A),0]]}}class o extends s{async sample(e){let A=e.dims.at(-1);this.generation_config.top_k>0&&(A=Math.min(this.generation_config.top_k,A));const[t,r]=await(0,n.topk)(e,A),s=(0,a.softmax)(t.data);return Array.from({length:this.generation_config.num_beams},(()=>{const e=this.randomSelect(s);return[r.data[e],Math.log(s[e])]}))}}class l extends s{async sample(e){let A=e.dims.at(-1);this.generation_config.top_k>0&&(A=Math.min(this.generation_config.top_k,A));const[t,r]=await(0,n.topk)(e,A),s=(0,a.softmax)(t.data);return Array.from({length:this.generation_config.num_beams},((e,A)=>[r.data[A],Math.log(s[A])]))}}},"./src/generation/stopping_criteria.js":(e,A,t)=>{t.r(A),t.d(A,{EosTokenCriteria:()=>i,InterruptableStoppingCriteria:()=>o,MaxLengthCriteria:()=>s,StoppingCriteria:()=>n,StoppingCriteriaList:()=>a});var r=t("./src/utils/generic.js");class n extends r.Callable{_call(e,A){throw Error("StoppingCriteria needs to be subclassed")}}class a extends r.Callable{constructor(){super(),this.criteria=[]}push(e){this.criteria.push(e)}extend(e){e instanceof a?e=e.criteria:e instanceof n&&(e=[e]),this.criteria.push(...e)}_call(e,A){const t=new Array(e.length).fill(!1);for(const r of this.criteria){const n=r(e,A);for(let e=0;e<t.length;++e)t[e]||=n[e]}return t}[Symbol.iterator](){return this.criteria.values()}}class s extends n{constructor(e,A=null){super(),this.max_length=e,this.max_position_embeddings=A}_call(e){return e.map((e=>e.length>=this.max_length))}}class i extends n{constructor(e){super(),Array.isArray(e)||(e=[e]),this.eos_token_id=e}_call(e,A){return e.map((e=>{const A=e.at(-1);return this.eos_token_id.some((e=>A==e))}))}}class o extends n{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(e,A){return new Array(e.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(e,A,t)=>{t.r(A),t.d(A,{BaseStreamer:()=>s,TextStreamer:()=>o,WhisperTextStreamer:()=>l});var r=t("./src/utils/core.js"),n=t("./src/tokenizers.js"),a=t("./src/env.js");class s{put(e){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const i=a.apis.IS_PROCESS_AVAILABLE?e=>process.stdout.write(e):e=>console.log(e);class o extends s{constructor(e,{skip_prompt:A=!1,callback_function:t=null,token_callback_function:r=null,skip_special_tokens:n=!0,decode_kwargs:a={},...s}={}){super(),this.tokenizer=e,this.skip_prompt=A,this.callback_function=t??i,this.token_callback_function=r,this.decode_kwargs={skip_special_tokens:n,...a,...s},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(e){if(e.length>1)throw Error("TextStreamer only supports batch size of 1");if(this.skip_prompt&&this.next_tokens_are_prompt)return void(this.next_tokens_are_prompt=!1);const A=e[0];this.token_callback_function?.(A),this.token_cache=(0,r.mergeArrays)(this.token_cache,A);const t=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let a;t.endsWith("\n")?(a=t.slice(this.print_len),this.token_cache=[],this.print_len=0):t.length>0&&(0,n.is_chinese_char)(t.charCodeAt(t.length-1))?(a=t.slice(this.print_len),this.print_len+=a.length):(a=t.slice(this.print_len,t.lastIndexOf(" ")+1),this.print_len+=a.length),this.on_finalized_text(a,!1)}end(){let e;if(this.token_cache.length>0){e=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0}else e="";this.next_tokens_are_prompt=!0,this.on_finalized_text(e,!0)}on_finalized_text(e,A){e.length>0&&this.callback_function?.(e),A&&this.callback_function===i&&a.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.("\n")}}class l extends o{constructor(e,{skip_prompt:A=!1,callback_function:t=null,token_callback_function:r=null,on_chunk_start:n=null,on_chunk_end:a=null,on_finalize:s=null,time_precision:i=.02,skip_special_tokens:o=!0,decode_kwargs:l={}}={}){super(e,{skip_prompt:A,skip_special_tokens:o,callback_function:t,token_callback_function:r,decode_kwargs:l}),this.timestamp_begin=e.timestamp_begin,this.on_chunk_start=n,this.on_chunk_end=a,this.on_finalize=s,this.time_precision=i,this.waiting_for_timestamp=!1}put(e){if(e.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const A=e[0];if(1===A.length){const t=Number(A[0])-this.timestamp_begin;if(t>=0){const A=t*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(A):this.on_chunk_start?.(A),this.waiting_for_timestamp=!this.waiting_for_timestamp,e=[[]]}}return super.put(e)}end(){super.end(),this.on_finalize?.()}}},"./src/models.js":(e,A,t)=>{t.r(A),t.d(A,{ASTForAudioClassification:()=>pt,ASTModel:()=>ft,ASTPreTrainedModel:()=>dt,AlbertForMaskedLM:()=>BA,AlbertForQuestionAnswering:()=>xA,AlbertForSequenceClassification:()=>kA,AlbertModel:()=>wA,AlbertPreTrainedModel:()=>IA,AutoModel:()=>Al,AutoModelForAudioClassification:()=>Il,AutoModelForAudioFrameClassification:()=>kl,AutoModelForCTC:()=>bl,AutoModelForCausalLM:()=>ol,AutoModelForDepthEstimation:()=>yl,AutoModelForDocumentQuestionAnswering:()=>xl,AutoModelForImageClassification:()=>ul,AutoModelForImageFeatureExtraction:()=>Gl,AutoModelForImageMatting:()=>Bl,AutoModelForImageSegmentation:()=>dl,AutoModelForImageToImage:()=>vl,AutoModelForMaskGeneration:()=>Cl,AutoModelForMaskedLM:()=>ll,AutoModelForNormalEstimation:()=>El,AutoModelForObjectDetection:()=>hl,AutoModelForPoseEstimation:()=>Ml,AutoModelForQuestionAnswering:()=>cl,AutoModelForSemanticSegmentation:()=>fl,AutoModelForSeq2SeqLM:()=>nl,AutoModelForSequenceClassification:()=>tl,AutoModelForSpeechSeq2Seq:()=>al,AutoModelForTextToSpectrogram:()=>sl,AutoModelForTextToWaveform:()=>il,AutoModelForTokenClassification:()=>rl,AutoModelForUniversalSegmentation:()=>pl,AutoModelForVision2Seq:()=>gl,AutoModelForXVector:()=>wl,AutoModelForZeroShotObjectDetection:()=>ml,BartForConditionalGeneration:()=>SA,BartForSequenceClassification:()=>NA,BartModel:()=>FA,BartPretrainedModel:()=>zA,BaseModelOutput:()=>J,BeitForImageClassification:()=>ia,BeitModel:()=>sa,BeitPreTrainedModel:()=>aa,BertForMaskedLM:()=>ee,BertForQuestionAnswering:()=>re,BertForSequenceClassification:()=>Ae,BertForTokenClassification:()=>te,BertModel:()=>$,BertPreTrainedModel:()=>_,BlenderbotForConditionalGeneration:()=>jA,BlenderbotModel:()=>VA,BlenderbotPreTrainedModel:()=>WA,BlenderbotSmallForConditionalGeneration:()=>ZA,BlenderbotSmallModel:()=>KA,BlenderbotSmallPreTrainedModel:()=>UA,BloomForCausalLM:()=>mn,BloomModel:()=>hn,BloomPreTrainedModel:()=>pn,CLIPModel:()=>St,CLIPPreTrainedModel:()=>Ft,CLIPSegForImageSegmentation:()=>$t,CLIPSegModel:()=>_t,CLIPSegPreTrainedModel:()=>Jt,CLIPTextModel:()=>Nt,CLIPTextModelWithProjection:()=>Ot,CLIPVisionModel:()=>Lt,CLIPVisionModelWithProjection:()=>Yt,CamembertForMaskedLM:()=>Qe,CamembertForQuestionAnswering:()=>ze,CamembertForSequenceClassification:()=>Te,CamembertForTokenClassification:()=>Pe,CamembertModel:()=>De,CamembertPreTrainedModel:()=>Ge,CausalLMOutput:()=>Sl,CausalLMOutputWithPast:()=>Nl,ChineseCLIPModel:()=>Ut,ChineseCLIPPreTrainedModel:()=>jt,ClapAudioModelWithProjection:()=>Gi,ClapModel:()=>Ei,ClapPreTrainedModel:()=>yi,ClapTextModelWithProjection:()=>Mi,CodeGenForCausalLM:()=>Ir,CodeGenModel:()=>br,CodeGenPreTrainedModel:()=>Cr,CohereForCausalLM:()=>Kr,CohereModel:()=>Ur,CoherePreTrainedModel:()=>jr,ConvBertForMaskedLM:()=>be,ConvBertForQuestionAnswering:()=>ke,ConvBertForSequenceClassification:()=>Ie,ConvBertForTokenClassification:()=>we,ConvBertModel:()=>Ce,ConvBertPreTrainedModel:()=>me,ConvNextForImageClassification:()=>ns,ConvNextModel:()=>rs,ConvNextPreTrainedModel:()=>ts,ConvNextV2ForImageClassification:()=>is,ConvNextV2Model:()=>ss,ConvNextV2PreTrainedModel:()=>as,DPTForDepthEstimation:()=>La,DPTModel:()=>Oa,DPTPreTrainedModel:()=>Na,DebertaForMaskedLM:()=>Ne,DebertaForQuestionAnswering:()=>Ye,DebertaForSequenceClassification:()=>Oe,DebertaForTokenClassification:()=>Le,DebertaModel:()=>Se,DebertaPreTrainedModel:()=>Fe,DebertaV2ForMaskedLM:()=>We,DebertaV2ForQuestionAnswering:()=>Ue,DebertaV2ForSequenceClassification:()=>Ve,DebertaV2ForTokenClassification:()=>je,DebertaV2Model:()=>Re,DebertaV2PreTrainedModel:()=>He,DecisionTransformerModel:()=>ao,DecisionTransformerPreTrainedModel:()=>no,DeiTForImageClassification:()=>Ba,DeiTModel:()=>xa,DeiTPreTrainedModel:()=>ka,DepthAnythingForDepthEstimation:()=>Ha,DepthAnythingPreTrainedModel:()=>Ya,DepthProForDepthEstimation:()=>Ka,DepthProPreTrainedModel:()=>Ua,DetrForObjectDetection:()=>ca,DetrForSegmentation:()=>ga,DetrModel:()=>la,DetrObjectDetectionOutput:()=>ua,DetrPreTrainedModel:()=>oa,DetrSegmentationOutput:()=>da,Dinov2ForImageClassification:()=>cs,Dinov2Model:()=>ls,Dinov2PreTrainedModel:()=>os,Dinov2WithRegistersForImageClassification:()=>ds,Dinov2WithRegistersModel:()=>us,Dinov2WithRegistersPreTrainedModel:()=>gs,DistilBertForMaskedLM:()=>_e,DistilBertForQuestionAnswering:()=>Je,DistilBertForSequenceClassification:()=>Xe,DistilBertForTokenClassification:()=>qe,DistilBertModel:()=>Ze,DistilBertPreTrainedModel:()=>Ke,DonutSwinModel:()=>As,DonutSwinPreTrainedModel:()=>es,EfficientNetForImageClassification:()=>Hi,EfficientNetModel:()=>Yi,EfficientNetPreTrainedModel:()=>Li,ElectraForMaskedLM:()=>ve,ElectraForQuestionAnswering:()=>Me,ElectraForSequenceClassification:()=>ye,ElectraForTokenClassification:()=>Ee,ElectraModel:()=>Be,ElectraPreTrainedModel:()=>xe,EsmForMaskedLM:()=>AA,EsmForSequenceClassification:()=>tA,EsmForTokenClassification:()=>rA,EsmModel:()=>eA,EsmPreTrainedModel:()=>$e,ExaoneForCausalLM:()=>Tr,ExaoneModel:()=>Qr,ExaonePreTrainedModel:()=>Dr,FalconForCausalLM:()=>vi,FalconModel:()=>Bi,FalconPreTrainedModel:()=>xi,FastViTForImageClassification:()=>Vn,FastViTModel:()=>Wn,FastViTPreTrainedModel:()=>Rn,Florence2ForConditionalGeneration:()=>Mt,Florence2PreTrainedModel:()=>Et,GLPNForDepthEstimation:()=>$a,GLPNModel:()=>_a,GLPNPreTrainedModel:()=>Ja,GPT2LMHeadModel:()=>tr,GPT2Model:()=>Ar,GPT2PreTrainedModel:()=>er,GPTBigCodeForCausalLM:()=>mr,GPTBigCodeModel:()=>hr,GPTBigCodePreTrainedModel:()=>pr,GPTJForCausalLM:()=>fr,GPTJModel:()=>dr,GPTJPreTrainedModel:()=>ur,GPTNeoForCausalLM:()=>or,GPTNeoModel:()=>ir,GPTNeoPreTrainedModel:()=>sr,GPTNeoXForCausalLM:()=>gr,GPTNeoXModel:()=>cr,GPTNeoXPreTrainedModel:()=>lr,Gemma2ForCausalLM:()=>$r,Gemma2Model:()=>_r,Gemma2PreTrainedModel:()=>Jr,GemmaForCausalLM:()=>qr,GemmaModel:()=>Xr,GemmaPreTrainedModel:()=>Zr,GlmForCausalLM:()=>Gr,GlmModel:()=>Mr,GlmPreTrainedModel:()=>Er,GraniteForCausalLM:()=>Vr,GraniteModel:()=>Wr,GranitePreTrainedModel:()=>Rr,GroundingDinoForObjectDetection:()=>ps,GroundingDinoPreTrainedModel:()=>fs,GroupViTModel:()=>Hn,GroupViTPreTrainedModel:()=>Yn,HeliumForCausalLM:()=>yr,HeliumModel:()=>vr,HeliumPreTrainedModel:()=>Br,HieraForImageClassification:()=>Ea,HieraModel:()=>ya,HieraPreTrainedModel:()=>va,HubertForCTC:()=>ei,HubertForSequenceClassification:()=>Ai,HubertModel:()=>$s,HubertPreTrainedModel:()=>_s,IJepaForImageClassification:()=>Gn,IJepaModel:()=>Mn,IJepaPreTrainedModel:()=>En,Idefics3ForConditionalGeneration:()=>Tt,Idefics3PreTrainedModel:()=>Qt,ImageMattingOutput:()=>Ol,JAISLMHeadModel:()=>ar,JAISModel:()=>nr,JAISPreTrainedModel:()=>rr,JinaCLIPModel:()=>Zt,JinaCLIPPreTrainedModel:()=>Kt,JinaCLIPTextModel:()=>Xt,JinaCLIPVisionModel:()=>qt,LlamaForCausalLM:()=>xr,LlamaModel:()=>kr,LlamaPreTrainedModel:()=>wr,LlavaForConditionalGeneration:()=>Bt,LlavaOnevisionForConditionalGeneration:()=>vt,LlavaPreTrainedModel:()=>xt,LongT5ForConditionalGeneration:()=>DA,LongT5Model:()=>GA,LongT5PreTrainedModel:()=>MA,M2M100ForConditionalGeneration:()=>Ms,M2M100Model:()=>Es,M2M100PreTrainedModel:()=>ys,MBartForCausalLM:()=>RA,MBartForConditionalGeneration:()=>YA,MBartForSequenceClassification:()=>HA,MBartModel:()=>LA,MBartPreTrainedModel:()=>OA,MPNetForMaskedLM:()=>gA,MPNetForQuestionAnswering:()=>fA,MPNetForSequenceClassification:()=>uA,MPNetForTokenClassification:()=>dA,MPNetModel:()=>cA,MPNetPreTrainedModel:()=>lA,MT5ForConditionalGeneration:()=>PA,MT5Model:()=>TA,MT5PreTrainedModel:()=>QA,MarianMTModel:()=>vs,MarianModel:()=>Bs,MarianPreTrainedModel:()=>xs,MaskFormerForInstanceSegmentation:()=>qa,MaskFormerModel:()=>Xa,MaskFormerPreTrainedModel:()=>Za,MaskedLMOutput:()=>zl,MgpstrForSceneTextRecognition:()=>co,MgpstrModelOutput:()=>oo,MgpstrPreTrainedModel:()=>lo,MistralForCausalLM:()=>bi,MistralModel:()=>Ci,MistralPreTrainedModel:()=>mi,MobileBertForMaskedLM:()=>sA,MobileBertForQuestionAnswering:()=>oA,MobileBertForSequenceClassification:()=>iA,MobileBertModel:()=>aA,MobileBertPreTrainedModel:()=>nA,MobileLLMForCausalLM:()=>Fr,MobileLLMModel:()=>zr,MobileLLMPreTrainedModel:()=>Pr,MobileNetV1ForImageClassification:()=>Zi,MobileNetV1Model:()=>Ki,MobileNetV1PreTrainedModel:()=>Ui,MobileNetV2ForImageClassification:()=>Ji,MobileNetV2Model:()=>qi,MobileNetV2PreTrainedModel:()=>Xi,MobileNetV3ForImageClassification:()=>eo,MobileNetV3Model:()=>$i,MobileNetV3PreTrainedModel:()=>_i,MobileNetV4ForImageClassification:()=>ro,MobileNetV4Model:()=>to,MobileNetV4PreTrainedModel:()=>Ao,MobileViTForImageClassification:()=>Xn,MobileViTModel:()=>Zn,MobileViTPreTrainedModel:()=>Kn,MobileViTV2ForImageClassification:()=>_n,MobileViTV2Model:()=>Jn,MobileViTV2PreTrainedModel:()=>qn,ModelOutput:()=>q,ModernBertForMaskedLM:()=>se,ModernBertForSequenceClassification:()=>ie,ModernBertForTokenClassification:()=>oe,ModernBertModel:()=>ae,ModernBertPreTrainedModel:()=>ne,Moondream1ForConditionalGeneration:()=>yt,MoonshineForConditionalGeneration:()=>wt,MoonshineModel:()=>It,MoonshinePreTrainedModel:()=>bt,MptForCausalLM:()=>In,MptModel:()=>bn,MptPreTrainedModel:()=>Cn,MultiModalityCausalLM:()=>io,MultiModalityPreTrainedModel:()=>so,MusicgenForCausalLM:()=>Vi,MusicgenForConditionalGeneration:()=>ji,MusicgenModel:()=>Wi,MusicgenPreTrainedModel:()=>Ri,NomicBertModel:()=>ce,NomicBertPreTrainedModel:()=>le,OPTForCausalLM:()=>xn,OPTModel:()=>kn,OPTPreTrainedModel:()=>wn,Olmo2ForCausalLM:()=>Hr,Olmo2Model:()=>Yr,Olmo2PreTrainedModel:()=>Lr,OlmoForCausalLM:()=>Or,OlmoModel:()=>Nr,OlmoPreTrainedModel:()=>Sr,OpenELMForCausalLM:()=>tn,OpenELMModel:()=>An,OpenELMPreTrainedModel:()=>en,OwlViTForObjectDetection:()=>Aa,OwlViTModel:()=>ea,OwlViTPreTrainedModel:()=>$n,Owlv2ForObjectDetection:()=>na,Owlv2Model:()=>ra,Owlv2PreTrainedModel:()=>ta,PaliGemmaForConditionalGeneration:()=>Dt,PaliGemmaPreTrainedModel:()=>Gt,PatchTSMixerForPrediction:()=>mo,PatchTSMixerModel:()=>ho,PatchTSMixerPreTrainedModel:()=>po,PatchTSTForPrediction:()=>fo,PatchTSTModel:()=>uo,PatchTSTPreTrainedModel:()=>go,Phi3ForCausalLM:()=>fn,Phi3Model:()=>dn,Phi3PreTrainedModel:()=>un,Phi3VForCausalLM:()=>zt,Phi3VPreTrainedModel:()=>Pt,PhiForCausalLM:()=>gn,PhiModel:()=>cn,PhiPreTrainedModel:()=>ln,PreTrainedModel:()=>X,PretrainedMixin:()=>Co,PvtForImageClassification:()=>zn,PvtModel:()=>Pn,PvtPreTrainedModel:()=>Tn,PyAnnoteForAudioFrameClassification:()=>Ss,PyAnnoteModel:()=>Fs,PyAnnotePreTrainedModel:()=>zs,QuestionAnsweringModelOutput:()=>Fl,Qwen2ForCausalLM:()=>an,Qwen2Model:()=>nn,Qwen2PreTrainedModel:()=>rn,Qwen2VLForConditionalGeneration:()=>on,Qwen2VLPreTrainedModel:()=>sn,RTDetrForObjectDetection:()=>ha,RTDetrModel:()=>pa,RTDetrObjectDetectionOutput:()=>ma,RTDetrPreTrainedModel:()=>fa,ResNetForImageClassification:()=>Da,ResNetModel:()=>Ga,ResNetPreTrainedModel:()=>Ma,RoFormerForMaskedLM:()=>de,RoFormerForQuestionAnswering:()=>he,RoFormerForSequenceClassification:()=>fe,RoFormerForTokenClassification:()=>pe,RoFormerModel:()=>ue,RoFormerPreTrainedModel:()=>ge,RobertaForMaskedLM:()=>JA,RobertaForQuestionAnswering:()=>et,RobertaForSequenceClassification:()=>_A,RobertaForTokenClassification:()=>$A,RobertaModel:()=>qA,RobertaPreTrainedModel:()=>XA,SamImageSegmentationOutput:()=>ks,SamModel:()=>ws,SamPreTrainedModel:()=>Is,SapiensForDepthEstimation:()=>Va,SapiensForNormalEstimation:()=>ja,SapiensForSemanticSegmentation:()=>Wa,SapiensPreTrainedModel:()=>Ra,SegformerForImageClassification:()=>zi,SegformerForSemanticSegmentation:()=>Fi,SegformerModel:()=>Pi,SegformerPreTrainedModel:()=>Ti,Seq2SeqLMOutput:()=>Dl,SequenceClassifierOutput:()=>Ql,SiglipModel:()=>Rt,SiglipPreTrainedModel:()=>Ht,SiglipTextModel:()=>Wt,SiglipVisionModel:()=>Vt,SpeechT5ForSpeechToText:()=>ui,SpeechT5ForTextToSpeech:()=>di,SpeechT5HifiGan:()=>fi,SpeechT5Model:()=>gi,SpeechT5PreTrainedModel:()=>ci,SqueezeBertForMaskedLM:()=>mA,SqueezeBertForQuestionAnswering:()=>bA,SqueezeBertForSequenceClassification:()=>CA,SqueezeBertModel:()=>hA,SqueezeBertPreTrainedModel:()=>pA,StableLmForCausalLM:()=>Oi,StableLmModel:()=>Ni,StableLmPreTrainedModel:()=>Si,Starcoder2ForCausalLM:()=>ki,Starcoder2Model:()=>wi,Starcoder2PreTrainedModel:()=>Ii,StyleTextToSpeech2Model:()=>li,StyleTextToSpeech2PreTrainedModel:()=>oi,Swin2SRForImageSuperResolution:()=>Sa,Swin2SRModel:()=>Fa,Swin2SRPreTrainedModel:()=>za,SwinForImageClassification:()=>Pa,SwinModel:()=>Ta,SwinPreTrainedModel:()=>Qa,T5ForConditionalGeneration:()=>EA,T5Model:()=>yA,T5PreTrainedModel:()=>vA,TableTransformerForObjectDetection:()=>Ia,TableTransformerModel:()=>ba,TableTransformerObjectDetectionOutput:()=>wa,TableTransformerPreTrainedModel:()=>Ca,TokenClassifierOutput:()=>Pl,TrOCRForCausalLM:()=>hi,TrOCRPreTrainedModel:()=>pi,UniSpeechForCTC:()=>Hs,UniSpeechForSequenceClassification:()=>Rs,UniSpeechModel:()=>Ys,UniSpeechPreTrainedModel:()=>Ls,UniSpeechSatForAudioFrameClassification:()=>Ks,UniSpeechSatForCTC:()=>js,UniSpeechSatForSequenceClassification:()=>Us,UniSpeechSatModel:()=>Vs,UniSpeechSatPreTrainedModel:()=>Ws,ViTForImageClassification:()=>yn,ViTMAEModel:()=>Sn,ViTMAEPreTrainedModel:()=>Fn,ViTMSNForImageClassification:()=>Ln,ViTMSNModel:()=>On,ViTMSNPreTrainedModel:()=>Nn,ViTModel:()=>vn,ViTPreTrainedModel:()=>Bn,VisionEncoderDecoderModel:()=>kt,VitMatteForImageMatting:()=>Un,VitMattePreTrainedModel:()=>jn,VitPoseForPoseEstimation:()=>Qn,VitPosePreTrainedModel:()=>Dn,VitsModel:()=>Qi,VitsModelOutput:()=>Ll,VitsPreTrainedModel:()=>Di,Wav2Vec2BertForCTC:()=>qs,Wav2Vec2BertForSequenceClassification:()=>Js,Wav2Vec2BertModel:()=>Xs,Wav2Vec2BertPreTrainedModel:()=>Zs,Wav2Vec2ForAudioFrameClassification:()=>Ps,Wav2Vec2ForCTC:()=>Qs,Wav2Vec2ForSequenceClassification:()=>Ts,Wav2Vec2Model:()=>Ds,Wav2Vec2PreTrainedModel:()=>Gs,WavLMForAudioFrameClassification:()=>ii,WavLMForCTC:()=>ni,WavLMForSequenceClassification:()=>ai,WavLMForXVector:()=>si,WavLMModel:()=>ri,WavLMPreTrainedModel:()=>ti,WeSpeakerResNetModel:()=>Os,WeSpeakerResNetPreTrainedModel:()=>Ns,WhisperForConditionalGeneration:()=>Ct,WhisperModel:()=>mt,WhisperPreTrainedModel:()=>ht,XLMForQuestionAnswering:()=>st,XLMForSequenceClassification:()=>nt,XLMForTokenClassification:()=>at,XLMModel:()=>tt,XLMPreTrainedModel:()=>At,XLMRobertaForMaskedLM:()=>lt,XLMRobertaForQuestionAnswering:()=>ut,XLMRobertaForSequenceClassification:()=>ct,XLMRobertaForTokenClassification:()=>gt,XLMRobertaModel:()=>ot,XLMRobertaPreTrainedModel:()=>it,XLMWithLMHeadModel:()=>rt,XVectorOutput:()=>Tl,YolosForObjectDetection:()=>Cs,YolosModel:()=>ms,YolosObjectDetectionOutput:()=>bs,YolosPreTrainedModel:()=>hs});var r=t("./src/configs.js"),n=t("./src/backends/onnx.js"),a=t("./src/utils/dtypes.js"),s=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),l=t("./src/utils/constants.js"),c=t("./src/generation/logits_process.js"),g=t("./src/generation/configuration_utils.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js"),f=t("./src/utils/maths.js"),p=t("./src/generation/stopping_criteria.js"),h=t("./src/generation/logits_sampler.js"),m=t("./src/env.js"),C=t("./src/models/whisper/generation_whisper.js"),b=t("./src/models/whisper/common_whisper.js");const I=0,w=1,k=2,x=3,B=4,v=5,y=6,E=7,M=8,G=9,D=new Map,Q=new Map,T=new Map;async function P(e,A,t){return Object.fromEntries(await Promise.all(Object.keys(A).map((async s=>{const{buffer:i,session_options:l,session_config:c}=await async function(e,A,t){const s=t.config?.["transformers.js_config"]??{};let i=t.device??s.device;i&&"string"!=typeof i&&(i.hasOwnProperty(A)?i=i[A]:(console.warn(`device not specified for "${A}". Using the default device.`),i=null));const l=i??(m.apis.IS_NODE_ENV?"cpu":"wasm"),c=(0,n.deviceToExecutionProviders)(l);let g=t.dtype??s.dtype;if("string"!=typeof g&&(g&&g.hasOwnProperty(A)?g=g[A]:(g=a.DEFAULT_DEVICE_DTYPE_MAPPING[l]??a.DATA_TYPES.fp32,console.warn(`dtype not specified for "${A}". Using the default dtype (${g}) for this device (${l}).`))),g===a.DATA_TYPES.auto){let e=s.dtype;"string"!=typeof e&&(e=e[A]),g=e&&e!==a.DATA_TYPES.auto&&a.DATA_TYPES.hasOwnProperty(e)?e:a.DEFAULT_DEVICE_DTYPE_MAPPING[l]??a.DATA_TYPES.fp32}const u=g;if(!a.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(u))throw new Error(`Invalid dtype: ${u}. Should be one of: ${Object.keys(a.DATA_TYPES).join(", ")}`);if(u===a.DATA_TYPES.fp16&&"webgpu"===l&&!await(0,a.isWebGpuFp16Supported)())throw new Error(`The device (${l}) does not support fp16.`);const d=s.kv_cache_dtype?"string"==typeof s.kv_cache_dtype?s.kv_cache_dtype:s.kv_cache_dtype[u]??"float32":void 0;if(d&&!["float32","float16"].includes(d))throw new Error(`Invalid kv_cache_dtype: ${d}. Should be one of: float32, float16`);const f={dtype:u,kv_cache_dtype:d},p=a.DEFAULT_DTYPE_SUFFIX_MAPPING[u],h=`${t.subfolder??""}/${A}${p}.onnx`,C={...t.session_options};C.executionProviders??=c;const b=s.free_dimension_overrides;b?C.freeDimensionOverrides??=b:l.startsWith("webnn")&&!C.freeDimensionOverrides&&console.warn('WebNN does not currently support dynamic shapes and requires `free_dimension_overrides` to be set in config.json as a field within "transformers.js_config". When `free_dimension_overrides` is not set, you may experience significant performance degradation.');const I=(0,o.getModelFile)(e,h,!0,t),w=t.use_external_data_format??s.use_external_data_format;let k=[];if(w&&(!0===w||"object"==typeof w&&w.hasOwnProperty(A)&&!0===w[A])){if(m.apis.IS_NODE_ENV)throw new Error("External data format is not yet supported in Node.js");const r=`${A}${p}.onnx_data`,n=`${t.subfolder??""}/${r}`;k.push(new Promise((async(A,a)=>{const s=await(0,o.getModelFile)(e,n,!0,t);A({path:r,data:s})})))}else void 0!==C.externalData&&(k=C.externalData.map((async A=>{if("string"==typeof A.data){const r=await(0,o.getModelFile)(e,A.data,!0,t);return{...A,data:r}}return A})));if(k.length>0&&(C.externalData=await Promise.all(k)),"webgpu"===l){const e=(0,r.getKeyValueShapes)(t.config,{prefix:"present"});if(Object.keys(e).length>0&&!(0,n.isONNXProxy)()){const A={};for(const t in e)A[t]="gpu-buffer";C.preferredOutputLocation=A}}return{buffer:await I,session_options:C,session_config:f}}(e,A[s],t);return[s,await(0,n.createInferenceSession)(i,l,c)]}))))}async function z(e,A,t){return Object.fromEntries(await Promise.all(Object.keys(A).map((async r=>[r,await(0,o.getModelJSON)(e,A[r],!1,t)]))))}async function F(e,A){const t=function(e,A){const t=Object.create(null),r=[];for(const a of e.inputNames){const e=A[a];e instanceof u.Tensor?t[a]=(0,n.isONNXProxy)()?e.clone():e:r.push(a)}if(r.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${r.join(", ")}.`);const a=Object.keys(A).length,s=e.inputNames.length;if(a>s){let t=Object.keys(A).filter((A=>!e.inputNames.includes(A)));console.warn(`WARNING: Too many inputs were provided (${a} > ${s}). The following inputs will be ignored: "${t.join(", ")}".`)}return t}(e,A);try{const A=Object.fromEntries(Object.entries(t).map((([e,A])=>[e,A.ort_tensor])));let r=await e.run(A);return r=S(r),r}catch(e){const A=Object.fromEntries(Object.entries(t).map((([e,{type:A,dims:t,data:r}])=>[e,{type:A,dims:t,data:r}])));throw console.error(`An error occurred during model execution: "${e}".`),console.error("Inputs given to model:",A),e}}function S(e){for(let A in e)(0,n.isONNXTensor)(e[A])?e[A]=new u.Tensor(e[A]):"object"==typeof e[A]&&S(e[A]);return e}function N(e){if(e instanceof u.Tensor)return e;if(0===e.length)throw Error("items must be non-empty");if(Array.isArray(e[0])){if(e.some((A=>A.length!==e[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 u.Tensor("int64",BigInt64Array.from(e.flat().map((e=>BigInt(e)))),[e.length,e[0].length])}return new u.Tensor("int64",BigInt64Array.from(e.map((e=>BigInt(e)))),[1,e.length])}function O(e){return new u.Tensor("bool",[e],[1])}async function L(e,A){let{encoder_outputs:t,input_ids:r,decoder_input_ids:n,...a}=A;if(!t){const r=(0,i.pick)(A,e.sessions.model.inputNames);t=(await Y(e,r)).last_hidden_state}a.input_ids=n,a.encoder_hidden_states=t,e.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(a.encoder_attention_mask=A.attention_mask);return await H(e,a,!0)}async function Y(e,A){const t=e.sessions.model,r=(0,i.pick)(A,t.inputNames);if(t.inputNames.includes("inputs_embeds")&&!r.inputs_embeds){if(!A.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");r.inputs_embeds=await e.encode_text({input_ids:A.input_ids})}if(t.inputNames.includes("token_type_ids")&&!r.token_type_ids){if(!r.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");r.token_type_ids=(0,u.zeros_like)(r.input_ids)}if(t.inputNames.includes("pixel_mask")&&!r.pixel_mask){if(!r.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const e=r.pixel_values.dims;r.pixel_mask=(0,u.ones)([e[0],e[2],e[3]])}return await F(t,r)}async function H(e,A,t=!1){const r=e.sessions[t?"decoder_model_merged":"model"],{past_key_values:n,...a}=A;if(r.inputNames.includes("use_cache_branch")&&(a.use_cache_branch=O(!!n)),r.inputNames.includes("position_ids")&&a.attention_mask&&!a.position_ids){const A="paligemma"===e.config.model_type?1:0;a.position_ids=function(e,A=null,t=0){const{input_ids:r,inputs_embeds:n,attention_mask:a}=e,{data:s,dims:i}=V(a,t);let o=new u.Tensor("int64",s,i);if(A){const e=-(r??n).dims.at(1);o=o.slice(null,[e,null])}return o}(a,n,A)}e.addPastKeyValues(a,n);const s=(0,i.pick)(a,r.inputNames);return await F(r,s)}function R({image_token_id:e,inputs_embeds:A,image_features:t,input_ids:r,attention_mask:n}){const a=r.tolist().map((A=>A.reduce(((A,t,r)=>(t==e&&A.push(r),A)),[]))),s=a.reduce(((e,A)=>e+A.length),0),i=t.dims[0];if(s!==i)throw new Error(`Image features and image tokens do not match: tokens: ${s}, features ${i}`);let o=0;for(let e=0;e<a.length;++e){const r=a[e],n=A[e];for(let e=0;e<r.length;++e)n[r[e]].data.set(t[o++].data)}return{inputs_embeds:A,attention_mask:n}}async function W(e,{input_ids:A=null,attention_mask:t=null,pixel_values:r=null,position_ids:n=null,inputs_embeds:a=null,past_key_values:s=null,generation_config:i=null,logits_processor:o=null,...l}){if(!a)if(a=await e.encode_text({input_ids:A,...l}),r&&1!==A.dims[1]){const n=await e.encode_image({pixel_values:r,...l});({inputs_embeds:a,attention_mask:t}=e._merge_input_ids_with_image_features({image_features:n,inputs_embeds:a,input_ids:A,attention_mask:t}))}else if(s&&r&&1===A.dims[1]){const e=A.dims[1],r=Object.values(s)[0].dims.at(-2);t=(0,u.cat)([(0,u.ones)([A.dims[0],r]),t.slice(null,[t.dims[1]-e,t.dims[1]])],1)}if(!n&&"qwen2_vl"===e.config.model_type){const{image_grid_thw:r,video_grid_thw:a}=l;[n]=e.get_rope_index(A,r,a,t)}return await H(e,{inputs_embeds:a,past_key_values:s,attention_mask:t,position_ids:n,generation_config:i,logits_processor:o},!0)}function V(e,A=0){const[t,r]=e.dims,n=e.data,a=new BigInt64Array(n.length);for(let e=0;e<t;++e){const t=e*r;let s=BigInt(A);for(let e=0;e<r;++e){const A=t+e;0n===n[A]?a[A]=BigInt(1):(a[A]=s,s+=n[A])}}return{data:a,dims:e.dims}}function j(e,A,t,r){if(t.past_key_values){const A=Object.values(t.past_key_values)[0].dims.at(-2),{input_ids:r,attention_mask:n}=t;if(n&&n.dims[1]>r.dims[1]);else if(A<r.dims[1])t.input_ids=r.slice(null,[A,null]);else if(null!=e.config.image_token_index&&r.data.some((A=>A==e.config.image_token_index))){const n=e.config.num_image_tokens;if(!n)throw new Error("`num_image_tokens` is missing in the model configuration.");const a=r.dims[1]-(A-n);t.input_ids=r.slice(null,[-a,null]),t.attention_mask=(0,u.ones)([1,A+a])}}return t}function U(e,A,t,r){return t.past_key_values&&(A=A.map((e=>[e.at(-1)]))),{...t,decoder_input_ids:N(A)}}function K(e,...A){return e.config.is_encoder_decoder?U(e,...A):j(e,...A)}function Z(e,A,t,r){const n=!!t.past_key_values;if(null!==r.guidance_scale&&r.guidance_scale>1&&(n?t.input_ids=(0,u.cat)([t.input_ids,t.input_ids],0):(t.input_ids=(0,u.cat)([t.input_ids,(0,u.full_like)(t.input_ids,BigInt(r.pad_token_id))],0),t.attention_mask=(0,u.cat)([t.attention_mask,(0,u.full_like)(t.attention_mask,0n)],0))),!n&&t.pixel_values||(t.pixel_values=(0,u.full)([0,0,3,384,384],1)),n){const e=0,A=1,r=1;t.images_seq_mask=new u.Tensor("bool",new Array(e+A).fill(!0).fill(!1,0,A),[r,e+A]),t.images_emb_mask=new u.Tensor("bool",new Array(e).fill(!1),[r,1,e])}return t}class X extends s.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(e,A,t){super(),this.config=e,this.sessions=A,this.configs=t;const r=T.get(this.constructor),n=D.get(r);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,n){case B:this.can_generate=!0,this._forward=H,this._prepare_inputs_for_generation=j;break;case k:case x:case E:this.can_generate=!0,this._forward=L,this._prepare_inputs_for_generation=U;break;case w:this._forward=L;break;case y:this.can_generate=!0,this._forward=W,this._prepare_inputs_for_generation=K;break;case G:this.can_generate=!0,this._prepare_inputs_for_generation=K;break;case M:this.can_generate=!0,this._prepare_inputs_for_generation=Z;break;default:this._forward=Y}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){const e=[];for(const A of Object.values(this.sessions))A?.handler?.dispose&&e.push(A.handler.dispose());return await Promise.all(e)}static async from_pretrained(e,{progress_callback:A=null,config:t=null,cache_dir:n=null,local_files_only:a=!1,revision:s="main",model_file_name:i=null,subfolder:o="onnx",device:c=null,dtype:g=null,use_external_data_format:u=null,session_options:d={}}={}){let f={progress_callback:A,config:t,cache_dir:n,local_files_only:a,revision:s,model_file_name:i,subfolder:o,device:c,dtype:g,use_external_data_format:u,session_options:d};const p=T.get(this),h=D.get(p);let m;if(t=f.config=await r.AutoConfig.from_pretrained(e,f),h===B)m=await Promise.all([P(e,{model:f.model_file_name??"model"},f),z(e,{generation_config:"generation_config.json"},f)]);else if(h===k||h===x)m=await Promise.all([P(e,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},f),z(e,{generation_config:"generation_config.json"},f)]);else if(h===v)m=await Promise.all([P(e,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},f)]);else if(h===w)m=await Promise.all([P(e,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},f)]);else if(h===y){const A={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};t.is_encoder_decoder&&(A.model="encoder_model"),m=await Promise.all([P(e,A,f),z(e,{generation_config:"generation_config.json"},f)])}else if(h===E)m=await Promise.all([P(e,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},f),z(e,{generation_config:"generation_config.json"},f)]);else if(h===M)m=await Promise.all([P(e,{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"},f),z(e,{generation_config:"generation_config.json"},f)]);else if(h===G)m=await Promise.all([P(e,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},f),z(e,{generation_config:"generation_config.json"},f)]);else{if(h!==I){const e=p??t?.model_type;"custom"!==e&&console.warn(`Model type for '${e}' not found, assuming encoder-only architecture. Please report this at ${l.GITHUB_ISSUE_URL}.`)}m=await Promise.all([P(e,{model:f.model_file_name??"model"},f)])}return new this(t,...m)}async _call(e){return await this.forward(e)}async forward(e){return await this._forward(this,e)}get generation_config(){return this.configs?.generation_config??null}_get_logits_warper(e){const A=new c.LogitsProcessorList;return null!==e.temperature&&1!==e.temperature&&A.push(new c.TemperatureLogitsWarper(e.temperature)),null!==e.top_k&&0!==e.top_k&&A.push(new c.TopKLogitsWarper(e.top_k)),null!==e.top_p&&e.top_p<1&&A.push(new c.TopPLogitsWarper(e.top_p)),A}_get_logits_processor(e,A,t=null){const r=new c.LogitsProcessorList;if(null!==e.repetition_penalty&&1!==e.repetition_penalty&&r.push(new c.RepetitionPenaltyLogitsProcessor(e.repetition_penalty)),null!==e.no_repeat_ngram_size&&e.no_repeat_ngram_size>0&&r.push(new c.NoRepeatNGramLogitsProcessor(e.no_repeat_ngram_size)),null!==e.bad_words_ids&&r.push(new c.NoBadWordsLogitsProcessor(e.bad_words_ids,e.eos_token_id)),null!==e.min_length&&null!==e.eos_token_id&&e.min_length>0&&r.push(new c.MinLengthLogitsProcessor(e.min_length,e.eos_token_id)),null!==e.min_new_tokens&&null!==e.eos_token_id&&e.min_new_tokens>0&&r.push(new c.MinNewTokensLengthLogitsProcessor(A,e.min_new_tokens,e.eos_token_id)),null!==e.forced_bos_token_id&&r.push(new c.ForcedBOSTokenLogitsProcessor(e.forced_bos_token_id)),null!==e.forced_eos_token_id&&r.push(new c.ForcedEOSTokenLogitsProcessor(e.max_length,e.forced_eos_token_id)),null!==e.begin_suppress_tokens){const t=A>1||null===e.forced_bos_token_id?A:A+1;r.push(new c.SuppressTokensAtBeginLogitsProcessor(e.begin_suppress_tokens,t))}return null!==e.guidance_scale&&e.guidance_scale>1&&r.push(new c.ClassifierFreeGuidanceLogitsProcessor(e.guidance_scale)),null!==t&&r.extend(t),r}_prepare_generation_config(e,A,t=g.GenerationConfig){const r={...this.config};for(const e of["decoder","generator","text_config"])e in r&&Object.assign(r,r[e]);const n=new t(r);return Object.assign(n,this.generation_config??{}),e&&Object.assign(n,e),A&&Object.assign(n,(0,i.pick)(A,Object.getOwnPropertyNames(n))),n}_get_stopping_criteria(e,A=null){const t=new p.StoppingCriteriaList;return null!==e.max_length&&t.push(new p.MaxLengthCriteria(e.max_length,this.config.max_position_embeddings??null)),null!==e.eos_token_id&&t.push(new p.EosTokenCriteria(e.eos_token_id)),A&&t.extend(A),t}_validate_model_class(){if(!this.can_generate){const e=[Mo,To,Eo,ko],A=T.get(this.constructor),t=new Set,r=this.config.model_type;for(const A of e){const e=A.get(r);e&&t.add(e[0])}let n=`The current model class (${A}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw t.size>0&&(n+=` Please use the following class instead: ${[...t].join(", ")}`),Error(n)}}prepare_inputs_for_generation(...e){return this._prepare_inputs_for_generation(this,...e)}_update_model_kwargs_for_generation({generated_input_ids:e,outputs:A,model_inputs:t,is_encoder_decoder:r}){return t.past_key_values=this.getPastKeyValues(A,t.past_key_values),t.input_ids=new u.Tensor("int64",e.flat(),[e.length,1]),r||(t.attention_mask=(0,u.cat)([t.attention_mask,(0,u.ones)([t.attention_mask.dims[0],1])],1)),t.position_ids=null,t}_prepare_model_inputs({inputs:e,bos_token_id:A,model_kwargs:t}){const r=(0,i.pick)(t,this.forward_params),n=this.main_input_name;if(n in r){if(e)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else r[n]=e;return{inputs_tensor:r[n],model_inputs:r,model_input_name:n}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:e,model_inputs:A,model_input_name:t,generation_config:r}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!A.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:e,pixel_values:t,attention_mask:r,...n}=A,a=await this._prepare_inputs_embeds(A);A={...n,...(0,i.pick)(a,["inputs_embeds","attention_mask"])}}let{last_hidden_state:n}=await Y(this,A);if(null!==r.guidance_scale&&r.guidance_scale>1)n=(0,u.cat)([n,(0,u.full_like)(n,0)],0),"attention_mask"in A&&(A.attention_mask=(0,u.cat)([A.attention_mask,(0,u.zeros_like)(A.attention_mask)],0));else if(A.decoder_input_ids){const e=N(A.decoder_input_ids).dims[0];if(e!==n.dims[0]){if(1!==n.dims[0])throw new Error(`The encoder outputs have a different batch size (${n.dims[0]}) than the decoder inputs (${e}).`);n=(0,u.cat)(Array.from({length:e},(()=>n)),0)}}return A.encoder_outputs=n,A}_prepare_decoder_input_ids_for_generation({batch_size:e,model_input_name:A,model_kwargs:t,decoder_start_token_id:r,bos_token_id:n,generation_config:a}){let{decoder_input_ids:s,...i}=t;if(!(s instanceof u.Tensor)){if(s)Array.isArray(s[0])||(s=Array.from({length:e},(()=>s)));else if(r??=n,"musicgen"===this.config.model_type)s=Array.from({length:e*this.config.decoder.num_codebooks},(()=>[r]));else if(Array.isArray(r)){if(r.length!==e)throw new Error(`\`decoder_start_token_id\` expcted to have length ${e} but got ${r.length}`);s=r}else s=Array.from({length:e},(()=>[r]));s=N(s)}return t.decoder_attention_mask=(0,u.ones_like)(s),{input_ids:s,model_inputs:i}}async generate({inputs:e=null,generation_config:A=null,logits_processor:t=null,stopping_criteria:r=null,streamer:n=null,...a}){this._validate_model_class(),A=this._prepare_generation_config(A,a);let{inputs_tensor:s,model_inputs:i,model_input_name:o}=this._prepare_model_inputs({inputs:e,model_kwargs:a});const l=this.config.is_encoder_decoder;let c;l&&("encoder_outputs"in i||(i=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:s,model_inputs:i,model_input_name:o,generation_config:A}))),l?({input_ids:c,model_inputs:i}=this._prepare_decoder_input_ids_for_generation({batch_size:i[o].dims.at(0),model_input_name:o,model_kwargs:i,decoder_start_token_id:A.decoder_start_token_id,bos_token_id:A.bos_token_id,generation_config:A})):c=i[o];let g=c.dims.at(-1);null!==A.max_new_tokens&&(A.max_length=g+A.max_new_tokens);const d=this._get_logits_processor(A,g,t),f=this._get_stopping_criteria(A,r),p=i[o].dims.at(0),m=h.LogitsSampler.getSampler(A),C=new Array(p).fill(0),b=c.tolist();let I;n&&n.put(b);let w={};for(;;){if(i=this.prepare_inputs_for_generation(b,i,A),I=await this.forward(i),A.output_attentions&&A.return_dict_in_generate){const e=this.getAttentions(I);for(const A in e)A in w||(w[A]=[]),w[A].push(e[A])}const e=d(b,I.logits.slice(null,-1,null)),t=[];for(let A=0;A<e.dims.at(0);++A){const r=e[A],n=await m(r);for(const[e,r]of n){const n=BigInt(e);C[A]+=r,b[A].push(n),t.push([n]);break}}n&&n.put(t);if(f(b).every((e=>e)))break;i=this._update_model_kwargs_for_generation({generated_input_ids:t,outputs:I,model_inputs:i,is_encoder_decoder:l})}n&&n.end();const k=this.getPastKeyValues(I,i.past_key_values,!0),x=new u.Tensor("int64",b.flat(),[b.length,b[0].length]);if(A.return_dict_in_generate)return{sequences:x,past_key_values:k,...w};for(const e of Object.values(I))"gpu-buffer"===e.location&&e.dispose();return x}getPastKeyValues(e,A,t=!1){const r=Object.create(null);for(const n in e)if(n.startsWith("present")){const a=n.replace("present","past_key_values"),s=n.includes("encoder");if(r[a]=s&&A?A[a]:e[n],A&&(!s||t)){const e=A[a];"gpu-buffer"===e.location&&e.dispose()}}return r}getAttentions(e){const A={};for(const t of["cross_attentions","encoder_attentions","decoder_attentions"])for(const r in e)r.startsWith(t)&&(t in A||(A[t]=[]),A[t].push(e[r]));return A}addPastKeyValues(e,A){if(A)Object.assign(e,A);else{const A=this.sessions.decoder_model_merged??this.sessions.model,t=A?.config?.kv_cache_dtype??"float32",n="float16"===t?new Uint16Array:[],a=(e[this.main_input_name]??e.attention_mask)?.dims?.[0]??1,s=(0,r.getKeyValueShapes)(this.config,{batch_size:a});for(const A in s)e[A]=new u.Tensor(t,n,s[A])}}async encode_image({pixel_values:e}){const A=(await F(this.sessions.vision_encoder,{pixel_values:e})).image_features;return this.config.num_image_tokens||(console.warn(`The number of image tokens was not set in the model configuration. Setting it to the number of features detected by the vision encoder (${A.dims[1]}).`),this.config.num_image_tokens=A.dims[1]),A}async encode_text({input_ids:e}){return(await F(this.sessions.embed_tokens,{input_ids:e})).inputs_embeds}}class q{}class J extends q{constructor({last_hidden_state:e,hidden_states:A=null,attentions:t=null}){super(),this.last_hidden_state=e,this.hidden_states=A,this.attentions=t}}class _ extends X{}class $ extends _{}class ee extends _{async _call(e){return new zl(await super._call(e))}}class Ae extends _{async _call(e){return new Ql(await super._call(e))}}class te extends _{async _call(e){return new Pl(await super._call(e))}}class re extends _{async _call(e){return new Fl(await super._call(e))}}class ne extends X{}class ae extends ne{}class se extends ne{async _call(e){return new zl(await super._call(e))}}class ie extends ne{async _call(e){return new Ql(await super._call(e))}}class oe extends ne{async _call(e){return new Pl(await super._call(e))}}class le extends X{}class ce extends le{}class ge extends X{}class ue extends ge{}class de extends ge{async _call(e){return new zl(await super._call(e))}}class fe extends ge{async _call(e){return new Ql(await super._call(e))}}class pe extends ge{async _call(e){return new Pl(await super._call(e))}}class he extends ge{async _call(e){return new Fl(await super._call(e))}}class me extends X{}class Ce extends me{}class be extends me{async _call(e){return new zl(await super._call(e))}}class Ie extends me{async _call(e){return new Ql(await super._call(e))}}class we extends me{async _call(e){return new Pl(await super._call(e))}}class ke extends me{async _call(e){return new Fl(await super._call(e))}}class xe extends X{}class Be extends xe{}class ve extends xe{async _call(e){return new zl(await super._call(e))}}class ye extends xe{async _call(e){return new Ql(await super._call(e))}}class Ee extends xe{async _call(e){return new Pl(await super._call(e))}}class Me extends xe{async _call(e){return new Fl(await super._call(e))}}class Ge extends X{}class De extends Ge{}class Qe extends Ge{async _call(e){return new zl(await super._call(e))}}class Te extends Ge{async _call(e){return new Ql(await super._call(e))}}class Pe extends Ge{async _call(e){return new Pl(await super._call(e))}}class ze extends Ge{async _call(e){return new Fl(await super._call(e))}}class Fe extends X{}class Se extends Fe{}class Ne extends Fe{async _call(e){return new zl(await super._call(e))}}class Oe extends Fe{async _call(e){return new Ql(await super._call(e))}}class Le extends Fe{async _call(e){return new Pl(await super._call(e))}}class Ye extends Fe{async _call(e){return new Fl(await super._call(e))}}class He extends X{}class Re extends He{}class We extends He{async _call(e){return new zl(await super._call(e))}}class Ve extends He{async _call(e){return new Ql(await super._call(e))}}class je extends He{async _call(e){return new Pl(await super._call(e))}}class Ue extends He{async _call(e){return new Fl(await super._call(e))}}class Ke extends X{}class Ze extends Ke{}class Xe extends Ke{async _call(e){return new Ql(await super._call(e))}}class qe extends Ke{async _call(e){return new Pl(await super._call(e))}}class Je extends Ke{async _call(e){return new Fl(await super._call(e))}}class _e extends Ke{async _call(e){return new zl(await super._call(e))}}class $e extends X{}class eA extends $e{}class AA extends $e{async _call(e){return new zl(await super._call(e))}}class tA extends $e{async _call(e){return new Ql(await super._call(e))}}class rA extends $e{async _call(e){return new Pl(await super._call(e))}}class nA extends X{}class aA extends nA{}class sA extends nA{async _call(e){return new zl(await super._call(e))}}class iA extends nA{async _call(e){return new Ql(await super._call(e))}}class oA extends nA{async _call(e){return new Fl(await super._call(e))}}class lA extends X{}class cA extends lA{}class gA extends lA{async _call(e){return new zl(await super._call(e))}}class uA extends lA{async _call(e){return new Ql(await super._call(e))}}class dA extends lA{async _call(e){return new Pl(await super._call(e))}}class fA extends lA{async _call(e){return new Fl(await super._call(e))}}class pA extends X{}class hA extends pA{}class mA extends pA{async _call(e){return new zl(await super._call(e))}}class CA extends pA{async _call(e){return new Ql(await super._call(e))}}class bA extends pA{async _call(e){return new Fl(await super._call(e))}}class IA extends X{}class wA extends IA{}class kA extends IA{async _call(e){return new Ql(await super._call(e))}}class xA extends IA{async _call(e){return new Fl(await super._call(e))}}class BA extends IA{async _call(e){return new zl(await super._call(e))}}class vA extends X{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class yA extends vA{}class EA extends vA{}class MA extends X{}class GA extends MA{}class DA extends MA{}class QA extends X{}class TA extends QA{}class PA extends QA{}class zA extends X{}class FA extends zA{}class SA extends zA{}class NA extends zA{async _call(e){return new Ql(await super._call(e))}}class OA extends X{}class LA extends OA{}class YA extends OA{}class HA extends OA{async _call(e){return new Ql(await super._call(e))}}class RA extends OA{}class WA extends X{}class VA extends WA{}class jA extends WA{}class UA extends X{}class KA extends UA{}class ZA extends UA{}class XA extends X{}class qA extends XA{}class JA extends XA{async _call(e){return new zl(await super._call(e))}}class _A extends XA{async _call(e){return new Ql(await super._call(e))}}class $A extends XA{async _call(e){return new Pl(await super._call(e))}}class et extends XA{async _call(e){return new Fl(await super._call(e))}}class At extends X{}class tt extends At{}class rt extends At{async _call(e){return new zl(await super._call(e))}}class nt extends At{async _call(e){return new Ql(await super._call(e))}}class at extends At{async _call(e){return new Pl(await super._call(e))}}class st extends At{async _call(e){return new Fl(await super._call(e))}}class it extends X{}class ot extends it{}class lt extends it{async _call(e){return new zl(await super._call(e))}}class ct extends it{async _call(e){return new Ql(await super._call(e))}}class gt extends it{async _call(e){return new Pl(await super._call(e))}}class ut extends it{async _call(e){return new Fl(await super._call(e))}}class dt extends X{}class ft extends dt{}class pt extends dt{}class ht extends X{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 mt extends ht{}class Ct extends ht{_prepare_generation_config(e,A){return super._prepare_generation_config(e,A,C.WhisperGenerationConfig)}_retrieve_init_tokens(e){const A=[e.decoder_start_token_id];let t=e.language;const r=e.task;if(e.is_multilingual){t||(console.warn("No language specified - defaulting to English (en)."),t="en");const n=`<|${(0,b.whisper_language_to_code)(t)}|>`;A.push(e.lang_to_id[n]),A.push(e.task_to_id[r??"transcribe"])}else if(t||r)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!e.return_timestamps&&e.no_timestamps_token_id&&A.at(-1)!==e.no_timestamps_token_id?A.push(e.no_timestamps_token_id):e.return_timestamps&&A.at(-1)===e.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),A.pop()),A.filter((e=>null!=e))}async generate({inputs:e=null,generation_config:A=null,logits_processor:t=null,stopping_criteria:r=null,...n}){A=this._prepare_generation_config(A,n);const a=n.decoder_input_ids??this._retrieve_init_tokens(A);if(A.return_timestamps&&(t??=new c.LogitsProcessorList,t.push(new c.WhisperTimeStampLogitsProcessor(A,a))),A.begin_suppress_tokens&&(t??=new c.LogitsProcessorList,t.push(new c.SuppressTokensAtBeginLogitsProcessor(A.begin_suppress_tokens,a.length))),A.return_token_timestamps){if(!A.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.");"translate"===A.task&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),A.output_attentions=!0,A.return_dict_in_generate=!0}const s=await super.generate({inputs:e,generation_config:A,logits_processor:t,decoder_input_ids:a,...n});return A.return_token_timestamps&&(s.token_timestamps=this._extract_token_timestamps(s,A.alignment_heads,A.num_frames)),s}_extract_token_timestamps(e,A,t=null,r=.02){if(!e.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`.");null==t&&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 n=this.config.median_filter_width;void 0===n&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),n=7);const a=e.cross_attentions,s=Array.from({length:this.config.decoder_layers},((e,A)=>(0,u.cat)(a.map((e=>e[A])),2))),o=(0,u.stack)(A.map((([e,A])=>{if(e>=s.length)throw new Error(`Layer index ${e} is out of bounds for cross attentions (length ${s.length}).`);return t?s[e].slice(null,A,null,[0,t]):s[e].slice(null,A)}))).transpose(1,0,2,3),[l,c]=(0,u.std_mean)(o,-2,0,!0),g=o.clone();for(let e=0;e<g.dims[0];++e){const A=g[e];for(let t=0;t<A.dims[0];++t){const r=A[t],a=l[e][t][0].data,s=c[e][t][0].data;for(let e=0;e<r.dims[0];++e){let A=r[e].data;for(let e=0;e<A.length;++e)A[e]=(A[e]-s[e])/a[e];A.set((0,f.medianFilter)(A,n))}}}const d=[(0,u.mean)(g,1)],p=e.sequences.dims,h=new u.Tensor("float32",new Float32Array(p[0]*p[1]),p);for(let e=0;e<p[0];++e){const A=d[e].neg().squeeze_(0),[t,n]=(0,f.dynamic_time_warping)(A.tolist()),a=Array.from({length:t.length-1},((e,A)=>t[A+1]-t[A])),s=(0,i.mergeArrays)([1],a).map((e=>!!e)),o=[];for(let e=0;e<s.length;++e)s[e]&&o.push(n[e]*r);h[e].data.set(o,1)}return h}}class bt extends X{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class It extends bt{}class wt extends bt{}class kt extends X{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class xt extends X{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Bt extends xt{_merge_input_ids_with_image_features({inputs_embeds:e,image_features:A,input_ids:t,attention_mask:r}){const n=this.config.image_token_index,a=t.tolist().map((e=>e.findIndex((e=>e==n)))),s=a.every((e=>-1===e)),i=a.every((e=>-1!==e));if(!s&&!i)throw new Error("Every input should contain either 0 or 1 image token.");if(s)return{inputs_embeds:e,attention_mask:r};const o=[],l=[];for(let t=0;t<a.length;++t){const n=a[t],s=e[t],i=A[t],c=r[t];o.push((0,u.cat)([s.slice([0,n]),i,s.slice([n+1,s.dims[0]])],0)),l.push((0,u.cat)([c.slice([0,n]),(0,u.ones)([i.dims[0]]),c.slice([n+1,c.dims[0]])],0))}return{inputs_embeds:(0,u.stack)(o,0),attention_mask:(0,u.stack)(l,0)}}}class vt extends Bt{}class yt extends Bt{}class Et extends X{forward_params=["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"];main_input_name="inputs_embeds"}class Mt extends Et{_merge_input_ids_with_image_features({inputs_embeds:e,image_features:A,input_ids:t,attention_mask:r}){return{inputs_embeds:(0,u.cat)([A,e],1),attention_mask:(0,u.cat)([(0,u.ones)(A.dims.slice(0,2)),r],1)}}async _prepare_inputs_embeds({input_ids:e,pixel_values:A,inputs_embeds:t,attention_mask:r}){if(!e&&!A)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let n,a;return e&&(n=await this.encode_text({input_ids:e})),A&&(a=await this.encode_image({pixel_values:A})),n&&a?({inputs_embeds:t,attention_mask:r}=this._merge_input_ids_with_image_features({inputs_embeds:n,image_features:a,input_ids:e,attention_mask:r})):t=n||a,{inputs_embeds:t,attention_mask:r}}async forward({input_ids:e,pixel_values:A,attention_mask:t,decoder_input_ids:r,decoder_attention_mask:n,encoder_outputs:a,past_key_values:s,inputs_embeds:i,decoder_inputs_embeds:o}){if(i||({inputs_embeds:i,attention_mask:t}=await this._prepare_inputs_embeds({input_ids:e,pixel_values:A,inputs_embeds:i,attention_mask:t})),!a){let{last_hidden_state:e}=await Y(this,{inputs_embeds:i,attention_mask:t});a=e}if(!o){if(!r)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");o=await this.encode_text({input_ids:r})}const l={inputs_embeds:o,attention_mask:n,encoder_attention_mask:t,encoder_hidden_states:a,past_key_values:s};return await H(this,l,!0)}}class Gt extends X{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Dt extends Gt{_merge_input_ids_with_image_features(e){const A=e.image_features.dims.at(-1),t=e.image_features.view(-1,A);return R({image_token_id:this.config.image_token_index,...e,image_features:t})}}class Qt extends X{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class Tt extends Qt{async encode_image({pixel_values:e,pixel_attention_mask:A}){return(await F(this.sessions.vision_encoder,{pixel_values:e,pixel_attention_mask:A})).image_features}_merge_input_ids_with_image_features(e){const A=e.image_features.dims.at(-1),t=e.image_features.view(-1,A);return R({image_token_id:this.config.image_token_id,...e,image_features:t})}}class Pt extends X{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class zt extends Pt{async forward({input_ids:e=null,attention_mask:A=null,pixel_values:t=null,image_sizes:r=null,position_ids:n=null,inputs_embeds:a=null,past_key_values:s=null,generation_config:i=null,logits_processor:o=null,...l}){if(!a){let A;if(t&&1!==e.dims[1]){if(!r)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:A}=await F(this.sessions.vision_encoder,{pixel_values:t,image_sizes:r}))}else{const e=this.config.normalized_config.hidden_size;A=new u.Tensor("float32",[],[0,e])}({inputs_embeds:a}=await F(this.sessions.prepare_inputs_embeds,{input_ids:e,image_features:A}))}return await H(this,{inputs_embeds:a,past_key_values:s,attention_mask:A,position_ids:n,generation_config:i,logits_processor:o},!1)}}class Ft extends X{}class St extends Ft{}class Nt extends Ft{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"text_model"})}}class Ot extends Ft{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"text_model"})}}class Lt extends Ft{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"vision_model"})}}class Yt extends Ft{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"vision_model"})}}class Ht extends X{}class Rt extends Ht{}class Wt extends Ht{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"text_model"})}}class Vt extends Ft{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"vision_model"})}}class jt extends X{}class Ut extends jt{}class Kt extends X{}class Zt extends Kt{async forward(e){const A=!e.input_ids,t=!e.pixel_values;if(A&&t)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(A&&(e.input_ids=(0,u.ones)([e.pixel_values.dims[0],1])),t){const{image_size:A}=this.config.vision_config;e.pixel_values=(0,u.full)([0,3,A,A],0)}const{text_embeddings:r,image_embeddings:n,l2norm_text_embeddings:a,l2norm_image_embeddings:s}=await super.forward(e),i={};return A||(i.text_embeddings=r,i.l2norm_text_embeddings=a),t||(i.image_embeddings=n,i.l2norm_image_embeddings=s),i}}class Xt extends Kt{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"text_model"})}}class qt extends Kt{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"vision_model"})}}class Jt extends X{}class _t extends Jt{}class $t extends Jt{}class er extends X{}class Ar extends er{}class tr extends er{}class rr extends X{}class nr extends rr{}class ar extends rr{}class sr extends X{}class ir extends sr{}class or extends sr{}class lr extends X{}class cr extends lr{}class gr extends lr{}class ur extends X{}class dr extends ur{}class fr extends ur{}class pr extends X{}class hr extends pr{}class mr extends pr{}class Cr extends X{}class br extends Cr{}class Ir extends Cr{}class wr extends X{}class kr extends wr{}class xr extends wr{}class Br extends X{}class vr extends Br{}class yr extends Br{}class Er extends X{}class Mr extends Er{}class Gr extends Er{}class Dr extends X{}class Qr extends Dr{}class Tr extends Dr{}class Pr extends X{}class zr extends Pr{}class Fr extends Pr{}class Sr extends X{}class Nr extends Sr{}class Or extends Sr{}class Lr extends X{}class Yr extends Lr{}class Hr extends Lr{}class Rr extends X{}class Wr extends Rr{}class Vr extends Rr{}class jr extends X{}class Ur extends jr{}class Kr extends jr{}class Zr extends X{}class Xr extends Zr{}class qr extends Zr{}class Jr extends X{}class _r extends Jr{}class $r extends Jr{}class en extends X{}class An extends en{}class tn extends en{}class rn extends X{}class nn extends rn{}class an extends rn{}class sn extends X{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class on extends sn{get_rope_index(e,A,t,r){const{vision_config:n,image_token_id:a,video_token_id:s,vision_start_token_id:i}=this.config,o=n.spatial_merge_size??2,l=[];if(A||t){let n=e.tolist();r||(r=(0,u.ones_like)(e));const c=r.tolist(),g=Array.from({length:3},(A=>Array.from({length:e.dims[0]},(A=>Array.from({length:e.dims[1]},(e=>1)))))),d=A?A.tolist():[],p=t?t.tolist():[];let h=0,m=0;for(let e=0;e<n.length;++e){const A=n[e].filter(((A,t)=>1==c[e][t])),t=A.reduce(((e,A,t)=>(A==i&&e.push(t),e)),[]),r=t.map((e=>A[e+1])),u=r.filter((e=>e==a)).length,C=r.filter((e=>e==s)).length;let b=[],I=0,w=u,k=C;for(let e=0;e<r.length;++e){const e=A.findIndex(((e,A)=>A>I&&e==a)),t=A.findIndex(((e,A)=>A>I&&e==s)),r=w>0&&-1!==e?e:A.length+1,n=k>0&&-1!==t?t:A.length+1;let i,l,c,g;r<n?([l,c,g]=d[h],++h,--w,i=r):([l,c,g]=p[m],++m,--k,i=n);const[u,C,x]=[Number(l),Math.floor(Number(c)/o),Math.floor(Number(g)/o)],B=i-I,v=b.length>0?(0,f.max)(b.at(-1))[0]+1:0;b.push(Array.from({length:3*B},((e,A)=>v+A%B)));const y=B+v,E=u*C*x,M=Array.from({length:E},((e,A)=>y+Math.floor(A/(C*x)))),G=Array.from({length:E},((e,A)=>y+Math.floor(A/x)%C)),D=Array.from({length:E},((e,A)=>y+A%x));b.push([M,G,D].flat()),I=i+E}if(I<A.length){const e=b.length>0?(0,f.max)(b.at(-1))[0]+1:0,t=A.length-I;b.push(Array.from({length:3*t},((A,r)=>e+r%t)))}const x=b.reduce(((e,A)=>e+A.length),0),B=new Array(x);let v=0;for(let e=0;e<3;++e)for(let A=0;A<b.length;++A){const t=b[A],r=t.length/3;for(let A=e*r;A<(e+1)*r;++A)B[v++]=t[A]}let y=0;const E=c[e];for(let A=0;A<E.length;++A)if(1==E[A]){for(let t=0;t<3;++t)g[t][e][A]=B[t*x/3+y];++y}const M=(0,f.max)(B)[0];l.push(M+1-n[e].length)}return[new u.Tensor("int64",g.flat(1/0),[3,e.dims[0],e.dims[1]]),new u.Tensor("int64",l,[l.length,1])]}if(r){const{data:e,dims:A}=V(r),t=BigInt64Array.from({length:3*e.length},((A,t)=>e[t%e.length])),n=Array.from({length:A[0]},((t,r)=>(0,f.max)(e.subarray(A[1]*r,A[1]*(r+1)))[0]+1n+BigInt(A[1])));return[new u.Tensor("int64",t,[3,...A]),new u.Tensor("int64",n,[n.length,1])]}{const[A,t]=e.dims,r=BigInt64Array.from({length:3*A*t},((e,r)=>BigInt(Math.floor(r%t/A))));return[new u.Tensor("int64",r,[3,...e.dims]),(0,u.zeros)([A,1])]}}async encode_image({pixel_values:e,image_grid_thw:A}){return(await F(this.sessions.vision_encoder,{pixel_values:e,grid_thw:A})).image_features}_merge_input_ids_with_image_features(e){return R({image_token_id:this.config.image_token_id,...e})}prepare_inputs_for_generation(e,A,t){if(A.attention_mask&&!A.position_ids)if(A.past_key_values){A.pixel_values=null;const e=BigInt(Object.values(A.past_key_values)[0].dims.at(-2)),t=A.rope_deltas.map((A=>e+A));A.position_ids=(0,u.stack)([t,t,t],0)}else[A.position_ids,A.rope_deltas]=this.get_rope_index(A.input_ids,A.image_grid_thw,A.video_grid_thw,A.attention_mask);return A}}class ln extends X{}class cn extends ln{}class gn extends ln{}class un extends X{}class dn extends un{}class fn extends un{}class pn extends X{}class hn extends pn{}class mn extends pn{}class Cn extends X{}class bn extends Cn{}class In extends Cn{}class wn extends X{}class kn extends wn{}class xn extends wn{}class Bn extends X{}class vn extends Bn{}class yn extends Bn{async _call(e){return new Ql(await super._call(e))}}class En extends X{}class Mn extends En{}class Gn extends En{async _call(e){return new Ql(await super._call(e))}}class Dn extends X{}class Qn extends Dn{}class Tn extends X{}class Pn extends Tn{}class zn extends Tn{async _call(e){return new Ql(await super._call(e))}}class Fn extends X{}class Sn extends Fn{}class Nn extends X{}class On extends Nn{}class Ln extends Nn{async _call(e){return new Ql(await super._call(e))}}class Yn extends X{}class Hn extends Yn{}class Rn extends X{}class Wn extends Rn{}class Vn extends Rn{async _call(e){return new Ql(await super._call(e))}}class jn extends X{}class Un extends jn{async _call(e){return new Ol(await super._call(e))}}class Kn extends X{}class Zn extends Kn{}class Xn extends Kn{async _call(e){return new Ql(await super._call(e))}}class qn extends X{}class Jn extends qn{}class _n extends qn{async _call(e){return new Ql(await super._call(e))}}class $n extends X{}class ea extends $n{}class Aa extends $n{}class ta extends X{}class ra extends ta{}class na extends ta{}class aa extends X{}class sa extends aa{}class ia extends aa{async _call(e){return new Ql(await super._call(e))}}class oa extends X{}class la extends oa{}class ca extends oa{async _call(e){return new ua(await super._call(e))}}class ga extends oa{async _call(e){return new da(await super._call(e))}}class ua extends q{constructor({logits:e,pred_boxes:A}){super(),this.logits=e,this.pred_boxes=A}}class da extends q{constructor({logits:e,pred_boxes:A,pred_masks:t}){super(),this.logits=e,this.pred_boxes=A,this.pred_masks=t}}class fa extends X{}class pa extends fa{}class ha extends fa{async _call(e){return new ma(await super._call(e))}}class ma extends q{constructor({logits:e,pred_boxes:A}){super(),this.logits=e,this.pred_boxes=A}}class Ca extends X{}class ba extends Ca{}class Ia extends Ca{async _call(e){return new wa(await super._call(e))}}class wa extends ua{}class ka extends X{}class xa extends ka{}class Ba extends ka{async _call(e){return new Ql(await super._call(e))}}class va extends X{}class ya extends va{}class Ea extends va{async _call(e){return new Ql(await super._call(e))}}class Ma extends X{}class Ga extends Ma{}class Da extends Ma{async _call(e){return new Ql(await super._call(e))}}class Qa extends X{}class Ta extends Qa{}class Pa extends Qa{async _call(e){return new Ql(await super._call(e))}}class za extends X{}class Fa extends za{}class Sa extends za{}class Na extends X{}class Oa extends Na{}class La extends Na{}class Ya extends X{}class Ha extends Ya{}class Ra extends X{}class Wa extends Ra{}class Va extends Ra{}class ja extends Ra{}class Ua extends X{}class Ka extends Ua{}class Za extends X{}class Xa extends Za{}class qa extends Za{}class Ja extends X{}class _a extends Ja{}class $a extends Ja{}class es extends X{}class As extends es{}class ts extends X{}class rs extends ts{}class ns extends ts{async _call(e){return new Ql(await super._call(e))}}class as extends X{}class ss extends as{}class is extends as{async _call(e){return new Ql(await super._call(e))}}class os extends X{}class ls extends os{}class cs extends os{async _call(e){return new Ql(await super._call(e))}}class gs extends X{}class us extends gs{}class ds extends gs{async _call(e){return new Ql(await super._call(e))}}class fs extends X{}class ps extends fs{}class hs extends X{}class ms extends hs{}class Cs extends hs{async _call(e){return new bs(await super._call(e))}}class bs extends q{constructor({logits:e,pred_boxes:A}){super(),this.logits=e,this.pred_boxes=A}}class Is extends X{}class ws extends Is{async get_image_embeddings({pixel_values:e}){return await Y(this,{pixel_values:e})}async forward(e){if(e.image_embeddings&&e.image_positional_embeddings||(e={...e,...await this.get_image_embeddings(e)}),!e.input_labels&&e.input_points){const A=e.input_points.dims.slice(0,-1),t=A.reduce(((e,A)=>e*A),1);e.input_labels=new u.Tensor("int64",new BigInt64Array(t).fill(1n),A)}const A={image_embeddings:e.image_embeddings,image_positional_embeddings:e.image_positional_embeddings};return e.input_points&&(A.input_points=e.input_points),e.input_labels&&(A.input_labels=e.input_labels),e.input_boxes&&(A.input_boxes=e.input_boxes),await F(this.sessions.prompt_encoder_mask_decoder,A)}async _call(e){return new ks(await super._call(e))}}class ks extends q{constructor({iou_scores:e,pred_masks:A}){super(),this.iou_scores=e,this.pred_masks=A}}class xs extends X{}class Bs extends xs{}class vs extends xs{}class ys extends X{}class Es extends ys{}class Ms extends ys{}class Gs extends X{}class Ds extends Gs{}class Qs extends Gs{async _call(e){return new Sl(await super._call(e))}}class Ts extends Gs{async _call(e){return new Ql(await super._call(e))}}class Ps extends Gs{async _call(e){return new Pl(await super._call(e))}}class zs extends X{}class Fs extends zs{}class Ss extends zs{async _call(e){return new Pl(await super._call(e))}}class Ns extends X{}class Os extends Ns{}class Ls extends X{}class Ys extends Ls{}class Hs extends Ls{async _call(e){return new Sl(await super._call(e))}}class Rs extends Ls{async _call(e){return new Ql(await super._call(e))}}class Ws extends X{}class Vs extends Ws{}class js extends Ws{async _call(e){return new Sl(await super._call(e))}}class Us extends Ws{async _call(e){return new Ql(await super._call(e))}}class Ks extends Ws{async _call(e){return new Pl(await super._call(e))}}class Zs extends X{}class Xs extends Zs{}class qs extends Zs{async _call(e){return new Sl(await super._call(e))}}class Js extends Zs{async _call(e){return new Ql(await super._call(e))}}class _s extends X{}class $s extends Gs{}class ei extends Gs{async _call(e){return new Sl(await super._call(e))}}class Ai extends Gs{async _call(e){return new Ql(await super._call(e))}}class ti extends X{}class ri extends ti{}class ni extends ti{async _call(e){return new Sl(await super._call(e))}}class ai extends ti{async _call(e){return new Ql(await super._call(e))}}class si extends ti{async _call(e){return new Tl(await super._call(e))}}class ii extends ti{async _call(e){return new Pl(await super._call(e))}}class oi extends X{}class li extends oi{}class ci extends X{}class gi extends ci{}class ui extends ci{}class di extends ci{async generate_speech(e,A,{threshold:t=.5,minlenratio:r=0,maxlenratio:n=20,vocoder:a=null}={}){const s={input_ids:e},{encoder_outputs:i,encoder_attention_mask:o}=await Y(this,s),l=i.dims[1]/this.config.reduction_factor,c=Math.floor(l*n),g=Math.floor(l*r),d=this.config.num_mel_bins;let f=[],p=null,h=null,m=0;for(;;){++m;const e=O(!!h);let r;r=h?h.output_sequence_out:new u.Tensor("float32",new Float32Array(d),[1,1,d]);let n={use_cache_branch:e,output_sequence:r,encoder_attention_mask:o,speaker_embeddings:A,encoder_hidden_states:i};this.addPastKeyValues(n,p),h=await F(this.sessions.decoder_model_merged,n),p=this.getPastKeyValues(h,p);const{prob:a,spectrum:s}=h;if(f.push(s),m>=g&&(Array.from(a.data).filter((e=>e>=t)).length>0||m>=c))break}const C=(0,u.cat)(f),{waveform:b}=await F(a.sessions.model,{spectrogram:C});return{spectrogram:C,waveform:b}}}class fi extends X{main_input_name="spectrogram"}class pi extends X{}class hi extends pi{}class mi extends X{}class Ci extends mi{}class bi extends mi{}class Ii extends X{}class wi extends Ii{}class ki extends Ii{}class xi extends X{}class Bi extends xi{}class vi extends xi{}class yi extends X{}class Ei extends yi{}class Mi extends yi{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"text_model"})}}class Gi extends yi{static async from_pretrained(e,A={}){return super.from_pretrained(e,{...A,model_file_name:A.model_file_name??"audio_model"})}}class Di extends X{}class Qi extends Di{async _call(e){return new Ll(await super._call(e))}}class Ti extends X{}class Pi extends Ti{}class zi extends Ti{}class Fi extends Ti{}class Si extends X{}class Ni extends Si{}class Oi extends Si{}class Li extends X{}class Yi extends Li{}class Hi extends Li{async _call(e){return new Ql(await super._call(e))}}class Ri extends X{}class Wi extends Ri{}class Vi extends Ri{}class ji extends X{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(e){const[A,t]=e.dims,r=this.config.decoder.num_codebooks,n=t-r;let a=0;for(let A=0;A<e.size;++A){if(e.data[A]===this.config.decoder.pad_token_id)continue;const s=A%t-Math.floor(A/t)%r;s>0&&s<=n&&(e.data[a++]=e.data[A])}const s=Math.floor(A/r),i=a/(s*r);return new u.Tensor(e.type,e.data.slice(0,a),[s,r,i])}prepare_inputs_for_generation(e,A,t){let r=structuredClone(e);for(let e=0;e<r.length;++e)for(let A=0;A<r[e].length;++A)e%this.config.decoder.num_codebooks>=A&&(r[e][A]=BigInt(this.config.decoder.pad_token_id));null!==t.guidance_scale&&t.guidance_scale>1&&(r=r.concat(r));return super.prepare_inputs_for_generation(r,A,t)}async generate(e){const A=await super.generate(e),t=this._apply_and_filter_by_delay_pattern_mask(A).unsqueeze_(0),{audio_values:r}=await F(this.sessions.encodec_decode,{audio_codes:t});return r}}class Ui extends X{}class Ki extends Ui{}class Zi extends Ui{async _call(e){return new Ql(await super._call(e))}}class Xi extends X{}class qi extends Xi{}class Ji extends Xi{async _call(e){return new Ql(await super._call(e))}}class _i extends X{}class $i extends _i{}class eo extends _i{async _call(e){return new Ql(await super._call(e))}}class Ao extends X{}class to extends Ao{}class ro extends Ao{async _call(e){return new Ql(await super._call(e))}}class no extends X{}class ao extends no{}class so extends X{}class io extends so{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...e){super(...e),this._generation_mode="text"}async forward(e){const A=this._generation_mode??"text";let t;if("text"!==A&&e.past_key_values){const A=this.sessions.gen_img_embeds,r=(0,i.pick)({image_ids:e.input_ids},A.inputNames);t=await F(A,r)}else{const A=this.sessions.prepare_inputs_embeds,r=(0,i.pick)(e,A.inputNames);t=await F(A,r)}const r={...e,...t},n=await H(this,r),a=this.sessions["text"===A?"lm_head":"gen_head"];if(!a)throw new Error(`Unable to find "${a}" generation head`);const s=await F(a,(0,i.pick)(n,a.inputNames));return{...t,...n,...s}}async generate(e){return this._generation_mode="text",super.generate(e)}async generate_images(e){this._generation_mode="image";const A=(e.inputs??e[this.main_input_name]).dims[1],t=(await super.generate(e)).slice(null,[A,null]),r=this.sessions.image_decode,{decoded_image:n}=await F(r,{generated_tokens:t}),a=n.add_(1).mul_(127.5).clamp_(0,255).to("uint8"),s=[];for(const e of a){const A=d.RawImage.fromTensor(e);s.push(A)}return s}}class oo extends q{constructor({char_logits:e,bpe_logits:A,wp_logits:t}){super(),this.char_logits=e,this.bpe_logits=A,this.wp_logits=t}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class lo extends X{}class co extends lo{async _call(e){return new oo(await super._call(e))}}class go extends X{}class uo extends go{}class fo extends go{}class po extends X{}class ho extends po{}class mo extends po{}class Co{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(e,{progress_callback:A=null,config:t=null,cache_dir:n=null,local_files_only:a=!1,revision:s="main",model_file_name:i=null,subfolder:o="onnx",device:l=null,dtype:c=null,use_external_data_format:g=null,session_options:u={}}={}){const d={progress_callback:A,config:t,cache_dir:n,local_files_only:a,revision:s,model_file_name:i,subfolder:o,device:l,dtype:c,use_external_data_format:g,session_options:u};if(d.config=await r.AutoConfig.from_pretrained(e,d),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);for(const A of this.MODEL_CLASS_MAPPINGS){const t=A.get(d.config.model_type);if(t)return await t[1].from_pretrained(e,d)}if(this.BASE_IF_FAIL)return console.warn(`Unknown model class "${d.config.model_type}", attempting to construct from base class.`),await X.from_pretrained(e,d);throw Error(`Unsupported model type: ${d.config.model_type}`)}}const bo=new Map([["bert",["BertModel",$]],["modernbert",["ModernBertModel",ae]],["nomic_bert",["NomicBertModel",ce]],["roformer",["RoFormerModel",ue]],["electra",["ElectraModel",Be]],["esm",["EsmModel",eA]],["convbert",["ConvBertModel",Ce]],["camembert",["CamembertModel",De]],["deberta",["DebertaModel",Se]],["deberta-v2",["DebertaV2Model",Re]],["mpnet",["MPNetModel",cA]],["albert",["AlbertModel",wA]],["distilbert",["DistilBertModel",Ze]],["roberta",["RobertaModel",qA]],["xlm",["XLMModel",tt]],["xlm-roberta",["XLMRobertaModel",ot]],["clap",["ClapModel",Ei]],["clip",["CLIPModel",St]],["clipseg",["CLIPSegModel",_t]],["chinese_clip",["ChineseCLIPModel",Ut]],["siglip",["SiglipModel",Rt]],["jina_clip",["JinaCLIPModel",Zt]],["mobilebert",["MobileBertModel",aA]],["squeezebert",["SqueezeBertModel",hA]],["wav2vec2",["Wav2Vec2Model",Ds]],["wav2vec2-bert",["Wav2Vec2BertModel",Xs]],["unispeech",["UniSpeechModel",Ys]],["unispeech-sat",["UniSpeechSatModel",Vs]],["hubert",["HubertModel",$s]],["wavlm",["WavLMModel",ri]],["audio-spectrogram-transformer",["ASTModel",ft]],["vits",["VitsModel",Qi]],["pyannote",["PyAnnoteModel",Fs]],["wespeaker-resnet",["WeSpeakerResNetModel",Os]],["detr",["DetrModel",la]],["rt_detr",["RTDetrModel",pa]],["table-transformer",["TableTransformerModel",ba]],["vit",["ViTModel",vn]],["ijepa",["IJepaModel",Mn]],["pvt",["PvtModel",Pn]],["vit_msn",["ViTMSNModel",On]],["vit_mae",["ViTMAEModel",Sn]],["groupvit",["GroupViTModel",Hn]],["fastvit",["FastViTModel",Wn]],["mobilevit",["MobileViTModel",Zn]],["mobilevitv2",["MobileViTV2Model",Jn]],["owlvit",["OwlViTModel",ea]],["owlv2",["Owlv2Model",ra]],["beit",["BeitModel",sa]],["deit",["DeiTModel",xa]],["hiera",["HieraModel",ya]],["convnext",["ConvNextModel",rs]],["convnextv2",["ConvNextV2Model",ss]],["dinov2",["Dinov2Model",ls]],["dinov2_with_registers",["Dinov2WithRegistersModel",us]],["resnet",["ResNetModel",Ga]],["swin",["SwinModel",Ta]],["swin2sr",["Swin2SRModel",Fa]],["donut-swin",["DonutSwinModel",As]],["yolos",["YolosModel",ms]],["dpt",["DPTModel",Oa]],["glpn",["GLPNModel",_a]],["hifigan",["SpeechT5HifiGan",fi]],["efficientnet",["EfficientNetModel",Yi]],["decision_transformer",["DecisionTransformerModel",ao]],["patchtst",["PatchTSTForPrediction",uo]],["patchtsmixer",["PatchTSMixerForPrediction",ho]],["mobilenet_v1",["MobileNetV1Model",Ki]],["mobilenet_v2",["MobileNetV2Model",qi]],["mobilenet_v3",["MobileNetV3Model",$i]],["mobilenet_v4",["MobileNetV4Model",to]],["maskformer",["MaskFormerModel",Xa]],["mgp-str",["MgpstrForSceneTextRecognition",co]],["style_text_to_speech_2",["StyleTextToSpeech2Model",li]]]),Io=new Map([["t5",["T5Model",yA]],["longt5",["LongT5Model",GA]],["mt5",["MT5Model",TA]],["bart",["BartModel",FA]],["mbart",["MBartModel",LA]],["marian",["MarianModel",Bs]],["whisper",["WhisperModel",mt]],["m2m_100",["M2M100Model",Es]],["blenderbot",["BlenderbotModel",VA]],["blenderbot-small",["BlenderbotSmallModel",KA]]]),wo=new Map([["bloom",["BloomModel",hn]],["jais",["JAISModel",nr]],["gpt2",["GPT2Model",Ar]],["gptj",["GPTJModel",dr]],["gpt_bigcode",["GPTBigCodeModel",hr]],["gpt_neo",["GPTNeoModel",ir]],["gpt_neox",["GPTNeoXModel",cr]],["codegen",["CodeGenModel",br]],["llama",["LlamaModel",kr]],["exaone",["ExaoneModel",Qr]],["olmo",["OlmoModel",Nr]],["olmo2",["Olmo2Model",Yr]],["mobilellm",["MobileLLMModel",zr]],["granite",["GraniteModel",Wr]],["cohere",["CohereModel",Ur]],["gemma",["GemmaModel",Xr]],["gemma2",["Gemma2Model",_r]],["helium",["HeliumModel",vr]],["glm",["GlmModel",Mr]],["openelm",["OpenELMModel",An]],["qwen2",["Qwen2Model",nn]],["phi",["PhiModel",cn]],["phi3",["Phi3Model",dn]],["mpt",["MptModel",bn]],["opt",["OPTModel",kn]],["mistral",["MistralModel",Ci]],["starcoder2",["Starcoder2Model",wi]],["falcon",["FalconModel",Bi]],["stablelm",["StableLmModel",Ni]]]),ko=new Map([["speecht5",["SpeechT5ForSpeechToText",ui]],["whisper",["WhisperForConditionalGeneration",Ct]],["moonshine",["MoonshineForConditionalGeneration",wt]]]),xo=new Map([["speecht5",["SpeechT5ForTextToSpeech",di]]]),Bo=new Map([["vits",["VitsModel",Qi]],["musicgen",["MusicgenForConditionalGeneration",ji]]]),vo=new Map([["bert",["BertForSequenceClassification",Ae]],["modernbert",["ModernBertForSequenceClassification",ie]],["roformer",["RoFormerForSequenceClassification",fe]],["electra",["ElectraForSequenceClassification",ye]],["esm",["EsmForSequenceClassification",tA]],["convbert",["ConvBertForSequenceClassification",Ie]],["camembert",["CamembertForSequenceClassification",Te]],["deberta",["DebertaForSequenceClassification",Oe]],["deberta-v2",["DebertaV2ForSequenceClassification",Ve]],["mpnet",["MPNetForSequenceClassification",uA]],["albert",["AlbertForSequenceClassification",kA]],["distilbert",["DistilBertForSequenceClassification",Xe]],["roberta",["RobertaForSequenceClassification",_A]],["xlm",["XLMForSequenceClassification",nt]],["xlm-roberta",["XLMRobertaForSequenceClassification",ct]],["bart",["BartForSequenceClassification",NA]],["mbart",["MBartForSequenceClassification",HA]],["mobilebert",["MobileBertForSequenceClassification",iA]],["squeezebert",["SqueezeBertForSequenceClassification",CA]]]),yo=new Map([["bert",["BertForTokenClassification",te]],["modernbert",["ModernBertForTokenClassification",oe]],["roformer",["RoFormerForTokenClassification",pe]],["electra",["ElectraForTokenClassification",Ee]],["esm",["EsmForTokenClassification",rA]],["convbert",["ConvBertForTokenClassification",we]],["camembert",["CamembertForTokenClassification",Pe]],["deberta",["DebertaForTokenClassification",Le]],["deberta-v2",["DebertaV2ForTokenClassification",je]],["mpnet",["MPNetForTokenClassification",dA]],["distilbert",["DistilBertForTokenClassification",qe]],["roberta",["RobertaForTokenClassification",$A]],["xlm",["XLMForTokenClassification",at]],["xlm-roberta",["XLMRobertaForTokenClassification",gt]]]),Eo=new Map([["t5",["T5ForConditionalGeneration",EA]],["longt5",["LongT5ForConditionalGeneration",DA]],["mt5",["MT5ForConditionalGeneration",PA]],["bart",["BartForConditionalGeneration",SA]],["mbart",["MBartForConditionalGeneration",YA]],["marian",["MarianMTModel",vs]],["m2m_100",["M2M100ForConditionalGeneration",Ms]],["blenderbot",["BlenderbotForConditionalGeneration",jA]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",ZA]]]),Mo=new Map([["bloom",["BloomForCausalLM",mn]],["gpt2",["GPT2LMHeadModel",tr]],["jais",["JAISLMHeadModel",ar]],["gptj",["GPTJForCausalLM",fr]],["gpt_bigcode",["GPTBigCodeForCausalLM",mr]],["gpt_neo",["GPTNeoForCausalLM",or]],["gpt_neox",["GPTNeoXForCausalLM",gr]],["codegen",["CodeGenForCausalLM",Ir]],["llama",["LlamaForCausalLM",xr]],["exaone",["ExaoneForCausalLM",Tr]],["olmo",["OlmoForCausalLM",Or]],["olmo2",["Olmo2ForCausalLM",Hr]],["mobilellm",["MobileLLMForCausalLM",Fr]],["granite",["GraniteForCausalLM",Vr]],["cohere",["CohereForCausalLM",Kr]],["gemma",["GemmaForCausalLM",qr]],["gemma2",["Gemma2ForCausalLM",$r]],["helium",["HeliumForCausalLM",yr]],["glm",["GlmForCausalLM",Gr]],["openelm",["OpenELMForCausalLM",tn]],["qwen2",["Qwen2ForCausalLM",an]],["phi",["PhiForCausalLM",gn]],["phi3",["Phi3ForCausalLM",fn]],["mpt",["MptForCausalLM",In]],["opt",["OPTForCausalLM",xn]],["mbart",["MBartForCausalLM",RA]],["mistral",["MistralForCausalLM",bi]],["starcoder2",["Starcoder2ForCausalLM",ki]],["falcon",["FalconForCausalLM",vi]],["trocr",["TrOCRForCausalLM",hi]],["stablelm",["StableLmForCausalLM",Oi]],["phi3_v",["Phi3VForCausalLM",zt]]]),Go=new Map([["multi_modality",["MultiModalityCausalLM",io]]]),Do=new Map([["bert",["BertForMaskedLM",ee]],["modernbert",["ModernBertForMaskedLM",se]],["roformer",["RoFormerForMaskedLM",de]],["electra",["ElectraForMaskedLM",ve]],["esm",["EsmForMaskedLM",AA]],["convbert",["ConvBertForMaskedLM",be]],["camembert",["CamembertForMaskedLM",Qe]],["deberta",["DebertaForMaskedLM",Ne]],["deberta-v2",["DebertaV2ForMaskedLM",We]],["mpnet",["MPNetForMaskedLM",gA]],["albert",["AlbertForMaskedLM",BA]],["distilbert",["DistilBertForMaskedLM",_e]],["roberta",["RobertaForMaskedLM",JA]],["xlm",["XLMWithLMHeadModel",rt]],["xlm-roberta",["XLMRobertaForMaskedLM",lt]],["mobilebert",["MobileBertForMaskedLM",sA]],["squeezebert",["SqueezeBertForMaskedLM",mA]]]),Qo=new Map([["bert",["BertForQuestionAnswering",re]],["roformer",["RoFormerForQuestionAnswering",he]],["electra",["ElectraForQuestionAnswering",Me]],["convbert",["ConvBertForQuestionAnswering",ke]],["camembert",["CamembertForQuestionAnswering",ze]],["deberta",["DebertaForQuestionAnswering",Ye]],["deberta-v2",["DebertaV2ForQuestionAnswering",Ue]],["mpnet",["MPNetForQuestionAnswering",fA]],["albert",["AlbertForQuestionAnswering",xA]],["distilbert",["DistilBertForQuestionAnswering",Je]],["roberta",["RobertaForQuestionAnswering",et]],["xlm",["XLMForQuestionAnswering",st]],["xlm-roberta",["XLMRobertaForQuestionAnswering",ut]],["mobilebert",["MobileBertForQuestionAnswering",oA]],["squeezebert",["SqueezeBertForQuestionAnswering",bA]]]),To=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",kt]],["idefics3",["Idefics3ForConditionalGeneration",Tt]]]),Po=new Map([["llava",["LlavaForConditionalGeneration",Bt]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",vt]],["moondream1",["Moondream1ForConditionalGeneration",yt]],["florence2",["Florence2ForConditionalGeneration",Mt]],["qwen2-vl",["Qwen2VLForConditionalGeneration",on]],["idefics3",["Idefics3ForConditionalGeneration",Tt]],["paligemma",["PaliGemmaForConditionalGeneration",Dt]]]),zo=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",kt]]]),Fo=new Map([["vit",["ViTForImageClassification",yn]],["ijepa",["IJepaForImageClassification",Gn]],["pvt",["PvtForImageClassification",zn]],["vit_msn",["ViTMSNForImageClassification",Ln]],["fastvit",["FastViTForImageClassification",Vn]],["mobilevit",["MobileViTForImageClassification",Xn]],["mobilevitv2",["MobileViTV2ForImageClassification",_n]],["beit",["BeitForImageClassification",ia]],["deit",["DeiTForImageClassification",Ba]],["hiera",["HieraForImageClassification",Ea]],["convnext",["ConvNextForImageClassification",ns]],["convnextv2",["ConvNextV2ForImageClassification",is]],["dinov2",["Dinov2ForImageClassification",cs]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",ds]],["resnet",["ResNetForImageClassification",Da]],["swin",["SwinForImageClassification",Pa]],["segformer",["SegformerForImageClassification",zi]],["efficientnet",["EfficientNetForImageClassification",Hi]],["mobilenet_v1",["MobileNetV1ForImageClassification",Zi]],["mobilenet_v2",["MobileNetV2ForImageClassification",Ji]],["mobilenet_v3",["MobileNetV3ForImageClassification",eo]],["mobilenet_v4",["MobileNetV4ForImageClassification",ro]]]),So=new Map([["detr",["DetrForObjectDetection",ca]],["rt_detr",["RTDetrForObjectDetection",ha]],["table-transformer",["TableTransformerForObjectDetection",Ia]],["yolos",["YolosForObjectDetection",Cs]]]),No=new Map([["owlvit",["OwlViTForObjectDetection",Aa]],["owlv2",["Owlv2ForObjectDetection",na]],["grounding-dino",["GroundingDinoForObjectDetection",ps]]]),Oo=new Map([["detr",["DetrForSegmentation",ga]],["clipseg",["CLIPSegForImageSegmentation",$t]]]),Lo=new Map([["segformer",["SegformerForSemanticSegmentation",Fi]],["sapiens",["SapiensForSemanticSegmentation",Wa]]]),Yo=new Map([["detr",["DetrForSegmentation",ga]],["maskformer",["MaskFormerForInstanceSegmentation",qa]]]),Ho=new Map([["sam",["SamModel",ws]]]),Ro=new Map([["wav2vec2",["Wav2Vec2ForCTC",Qs]],["wav2vec2-bert",["Wav2Vec2BertForCTC",qs]],["unispeech",["UniSpeechForCTC",Hs]],["unispeech-sat",["UniSpeechSatForCTC",js]],["wavlm",["WavLMForCTC",ni]],["hubert",["HubertForCTC",ei]]]),Wo=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",Ts]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Js]],["unispeech",["UniSpeechForSequenceClassification",Rs]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Us]],["wavlm",["WavLMForSequenceClassification",ai]],["hubert",["HubertForSequenceClassification",Ai]],["audio-spectrogram-transformer",["ASTForAudioClassification",pt]]]),Vo=new Map([["wavlm",["WavLMForXVector",si]]]),jo=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Ks]],["wavlm",["WavLMForAudioFrameClassification",ii]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",Ps]],["pyannote",["PyAnnoteForAudioFrameClassification",Ss]]]),Uo=new Map([["vitmatte",["VitMatteForImageMatting",Un]]]),Ko=new Map([["patchtst",["PatchTSTForPrediction",fo]],["patchtsmixer",["PatchTSMixerForPrediction",mo]]]),Zo=new Map([["swin2sr",["Swin2SRForImageSuperResolution",Sa]]]),Xo=new Map([["dpt",["DPTForDepthEstimation",La]],["depth_anything",["DepthAnythingForDepthEstimation",Ha]],["glpn",["GLPNForDepthEstimation",$a]],["sapiens",["SapiensForDepthEstimation",Va]],["depth_pro",["DepthProForDepthEstimation",Ka]]]),qo=new Map([["sapiens",["SapiensForNormalEstimation",ja]]]),Jo=new Map([["vitpose",["VitPoseForPoseEstimation",Qn]]]),_o=new Map([["clip",["CLIPVisionModelWithProjection",Yt]],["siglip",["SiglipVisionModel",Vt]],["jina_clip",["JinaCLIPVisionModel",qt]]]),$o=[[bo,I],[Io,w],[wo,B],[vo,I],[yo,I],[Eo,k],[ko,k],[Mo,B],[Go,M],[Do,I],[Qo,I],[To,x],[Po,y],[Fo,I],[Oo,I],[Yo,I],[Lo,I],[Uo,I],[Ko,I],[Zo,I],[Xo,I],[qo,I],[Jo,I],[So,I],[No,I],[Ho,v],[Ro,I],[Wo,I],[xo,k],[Bo,I],[Vo,I],[jo,I],[_o,I]];for(const[e,A]of $o)for(const[t,r]of e.values())D.set(t,A),T.set(r,t),Q.set(t,r);const el=[["MusicgenForConditionalGeneration",ji,E],["Phi3VForCausalLM",zt,G],["CLIPTextModelWithProjection",Ot,I],["SiglipTextModel",Wt,I],["JinaCLIPTextModel",Xt,I],["ClapTextModelWithProjection",Mi,I],["ClapAudioModelWithProjection",Gi,I]];for(const[e,A,t]of el)D.set(e,t),T.set(A,e),Q.set(e,A);class Al extends Co{static MODEL_CLASS_MAPPINGS=$o.map((e=>e[0]));static BASE_IF_FAIL=!0}class tl extends Co{static MODEL_CLASS_MAPPINGS=[vo]}class rl extends Co{static MODEL_CLASS_MAPPINGS=[yo]}class nl extends Co{static MODEL_CLASS_MAPPINGS=[Eo]}class al extends Co{static MODEL_CLASS_MAPPINGS=[ko]}class sl extends Co{static MODEL_CLASS_MAPPINGS=[xo]}class il extends Co{static MODEL_CLASS_MAPPINGS=[Bo]}class ol extends Co{static MODEL_CLASS_MAPPINGS=[Mo]}class ll extends Co{static MODEL_CLASS_MAPPINGS=[Do]}class cl extends Co{static MODEL_CLASS_MAPPINGS=[Qo]}class gl extends Co{static MODEL_CLASS_MAPPINGS=[To]}class ul extends Co{static MODEL_CLASS_MAPPINGS=[Fo]}class dl extends Co{static MODEL_CLASS_MAPPINGS=[Oo]}class fl extends Co{static MODEL_CLASS_MAPPINGS=[Lo]}class pl extends Co{static MODEL_CLASS_MAPPINGS=[Yo]}class hl extends Co{static MODEL_CLASS_MAPPINGS=[So]}class ml extends Co{static MODEL_CLASS_MAPPINGS=[No]}class Cl extends Co{static MODEL_CLASS_MAPPINGS=[Ho]}class bl extends Co{static MODEL_CLASS_MAPPINGS=[Ro]}class Il extends Co{static MODEL_CLASS_MAPPINGS=[Wo]}class wl extends Co{static MODEL_CLASS_MAPPINGS=[Vo]}class kl extends Co{static MODEL_CLASS_MAPPINGS=[jo]}class xl extends Co{static MODEL_CLASS_MAPPINGS=[zo]}class Bl extends Co{static MODEL_CLASS_MAPPINGS=[Uo]}class vl extends Co{static MODEL_CLASS_MAPPINGS=[Zo]}class yl extends Co{static MODEL_CLASS_MAPPINGS=[Xo]}class El extends Co{static MODEL_CLASS_MAPPINGS=[qo]}class Ml extends Co{static MODEL_CLASS_MAPPINGS=[Jo]}class Gl extends Co{static MODEL_CLASS_MAPPINGS=[_o]}class Dl extends q{constructor({logits:e,past_key_values:A,encoder_outputs:t,decoder_attentions:r=null,cross_attentions:n=null}){super(),this.logits=e,this.past_key_values=A,this.encoder_outputs=t,this.decoder_attentions=r,this.cross_attentions=n}}class Ql extends q{constructor({logits:e,...A}){super(),this.logits=e;const t=Object.values(A);t.length>0&&(this.attentions=t)}}class Tl extends q{constructor({logits:e,embeddings:A}){super(),this.logits=e,this.embeddings=A}}class Pl extends q{constructor({logits:e}){super(),this.logits=e}}class zl extends q{constructor({logits:e}){super(),this.logits=e}}class Fl extends q{constructor({start_logits:e,end_logits:A}){super(),this.start_logits=e,this.end_logits=A}}class Sl extends q{constructor({logits:e}){super(),this.logits=e}}class Nl extends q{constructor({logits:e,past_key_values:A}){super(),this.logits=e,this.past_key_values=A}}class Ol extends q{constructor({alphas:e}){super(),this.alphas=e}}class Ll extends q{constructor({waveform:e,spectrogram:A}){super(),this.waveform=e,this.spectrogram=A}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(e,A,t)=>{t.r(A),t.d(A,{ASTFeatureExtractor:()=>a});var r=t("./src/base/feature_extraction_utils.js");t("./src/utils/tensor.js");var n=t("./src/utils/audio.js");class a extends r.FeatureExtractor{constructor(e){super(e);const A=this.config.sampling_rate,t=(0,n.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(A/2),A,null,"kaldi",!0);for(let e=0;e<t.length;++e)t[e].push(0);this.mel_filters=t,this.window=(0,n.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(e,A){return(0,n.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:1.192092955078125e-7,remove_dc_offset:!0,max_num_frames:A,transpose:!0})}async _call(e){(0,r.validate_audio_inputs)(e,"ASTFeatureExtractor");const A=await this._extract_fbank_features(e,this.config.max_length);if(this.config.do_normalize){const e=2*this.std,t=A.data;for(let A=0;A<t.length;++A)t[A]=(t[A]-this.mean)/e}return{input_values:A.unsqueeze_(0)}}}},"./src/models/auto/feature_extraction_auto.js":(e,A,t)=>{t.r(A),t.d(A,{AutoFeatureExtractor:()=>s});var r=t("./src/utils/constants.js"),n=t("./src/utils/hub.js");t("./src/base/feature_extraction_utils.js");var a=t("./src/models/feature_extractors.js");class s{static async from_pretrained(e,A={}){const t=await(0,n.getModelJSON)(e,r.FEATURE_EXTRACTOR_NAME,!0,A),s=t.feature_extractor_type,i=a[s];if(!i)throw new Error(`Unknown feature_extractor_type: '${s}'. Please report this at ${r.GITHUB_ISSUE_URL}.`);return new i(t)}}},"./src/models/auto/image_processing_auto.js":(e,A,t)=>{t.r(A),t.d(A,{AutoImageProcessor:()=>i});var r=t("./src/utils/constants.js"),n=t("./src/utils/hub.js"),a=t("./src/base/image_processors_utils.js"),s=t("./src/models/image_processors.js");class i{static async from_pretrained(e,A={}){const t=await(0,n.getModelJSON)(e,r.IMAGE_PROCESSOR_NAME,!0,A),i=t.image_processor_type??t.feature_extractor_type;let o=s[i];return o||(void 0!==i&&console.warn(`Image processor type '${i}' not found, assuming base ImageProcessor. Please report this at ${r.GITHUB_ISSUE_URL}.`),o=a.ImageProcessor),new o(t)}}},"./src/models/auto/processing_auto.js":(e,A,t)=>{t.r(A),t.d(A,{AutoProcessor:()=>l});var r=t("./src/utils/constants.js"),n=t("./src/utils/hub.js"),a=t("./src/base/processing_utils.js"),s=t("./src/models/processors.js"),i=t("./src/models/image_processors.js"),o=t("./src/models/feature_extractors.js");class l{static async from_pretrained(e,A={}){const t=await(0,n.getModelJSON)(e,r.IMAGE_PROCESSOR_NAME,!0,A),{image_processor_type:l,feature_extractor_type:c,processor_class:g}=t;if(g&&s[g])return s[g].from_pretrained(e,A);if(!l&&!c)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const u={};if(l){const e=i[l];if(!e)throw new Error(`Unknown image_processor_type: '${l}'.`);u.image_processor=new e(t)}if(c){const e=i[c];if(e)u.image_processor=new e(t);else{const e=o[c];if(!e)throw new Error(`Unknown feature_extractor_type: '${c}'.`);u.feature_extractor=new e(t)}}return new a.Processor({},u)}}},"./src/models/beit/image_processing_beit.js":(e,A,t)=>{t.r(A),t.d(A,{BeitFeatureExtractor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/bit/image_processing_bit.js":(e,A,t)=>{t.r(A),t.d(A,{BitImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/chinese_clip/image_processing_chinese_clip.js":(e,A,t)=>{t.r(A),t.d(A,{ChineseCLIPFeatureExtractor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/clap/feature_extraction_clap.js":(e,A,t)=>{t.r(A),t.d(A,{ClapFeatureExtractor:()=>a});var r=t("./src/base/feature_extraction_utils.js");t("./src/utils/tensor.js");var n=t("./src/utils/audio.js");class a extends r.FeatureExtractor{constructor(e){super(e),this.mel_filters=(0,n.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,n.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,n.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(e,A,t,r){let n;const a=e.length-A;if(a>0){if("rand_trunc"!==t)throw new Error(`Truncation strategy "${t}" not implemented`);{const t=Math.floor(Math.random()*(a+1));e=e.subarray(t,t+A),n=await this._extract_fbank_features(e,this.mel_filters_slaney,this.config.nb_max_samples)}}else{if(a<0){let t=new Float64Array(A);if(t.set(e),"repeat"===r)for(let r=e.length;r<A;r+=e.length)t.set(e.subarray(0,Math.min(e.length,A-r)),r);else if("repeatpad"===r)for(let A=e.length;A<-a;A+=e.length)t.set(e,A);e=t}if("fusion"===t)throw new Error(`Truncation strategy "${t}" not implemented`);n=await this._extract_fbank_features(e,this.mel_filters_slaney,this.config.nb_max_samples)}return n.unsqueeze_(0)}async _extract_fbank_features(e,A,t=null){return(0,n.spectrogram)(e,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:A,log_mel:"dB",max_num_frames:t,do_pad:!1,transpose:!0})}async _call(e,{max_length:A=null}={}){(0,r.validate_audio_inputs)(e,"ClapFeatureExtractor");return{input_features:(await this._get_input_mel(e,A??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}},"./src/models/clip/image_processing_clip.js":(e,A,t)=>{t.r(A),t.d(A,{CLIPFeatureExtractor:()=>a,CLIPImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/convnext/image_processing_convnext.js":(e,A,t)=>{t.r(A),t.d(A,{ConvNextFeatureExtractor:()=>a,ConvNextImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{constructor(e){super(e),this.crop_pct=this.config.crop_pct??.875}async resize(e){const A=this.size?.shortest_edge;if(void 0===A)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(A<384){const t=Math.floor(A/this.crop_pct),[r,n]=this.get_resize_output_image_size(e,{shortest_edge:t});e=await e.resize(r,n,{resample:this.resample}),e=await e.center_crop(A,A)}else e=await e.resize(A,A,{resample:this.resample});return e}}class a extends n{}},"./src/models/deit/image_processing_deit.js":(e,A,t)=>{t.r(A),t.d(A,{DeiTFeatureExtractor:()=>a,DeiTImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/detr/image_processing_detr.js":(e,A,t)=>{t.r(A),t.d(A,{DetrFeatureExtractor:()=>s,DetrImageProcessor:()=>a});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");class a extends r.ImageProcessor{async _call(e){const A=await super._call(e),t=[A.pixel_values.dims[0],64,64],r=(0,n.full)(t,1n);return{...A,pixel_mask:r}}post_process_object_detection(...e){return(0,r.post_process_object_detection)(...e)}post_process_panoptic_segmentation(...e){return(0,r.post_process_panoptic_segmentation)(...e)}post_process_instance_segmentation(...e){return(0,r.post_process_instance_segmentation)(...e)}}class s extends a{}},"./src/models/donut/image_processing_donut.js":(e,A,t)=>{t.r(A),t.d(A,{DonutFeatureExtractor:()=>a,DonutImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{pad_image(e,A,t,r={}){const[n,a,s]=A;let i=this.image_mean;Array.isArray(this.image_mean)||(i=new Array(s).fill(i));let o=this.image_std;Array.isArray(o)||(o=new Array(s).fill(i));const l=i.map(((e,A)=>-e/o[A]));return super.pad_image(e,A,t,{center:!0,constant_values:l,...r})}}class a extends n{}},"./src/models/dpt/image_processing_dpt.js":(e,A,t)=>{t.r(A),t.d(A,{DPTFeatureExtractor:()=>a,DPTImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/efficientnet/image_processing_efficientnet.js":(e,A,t)=>{t.r(A),t.d(A,{EfficientNetImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{constructor(e){super(e),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map((e=>e*e)))}}},"./src/models/feature_extractors.js":(e,A,t)=>{t.r(A),t.d(A,{ASTFeatureExtractor:()=>r.ASTFeatureExtractor,ClapFeatureExtractor:()=>n.ClapFeatureExtractor,ImageFeatureExtractor:()=>u.ImageProcessor,MoonshineFeatureExtractor:()=>a.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>s.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>i.SeamlessM4TFeatureExtractor,SpeechT5FeatureExtractor:()=>o.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>l.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>c.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>g.WhisperFeatureExtractor});var r=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),n=t("./src/models/clap/feature_extraction_clap.js"),a=t("./src/models/moonshine/feature_extraction_moonshine.js"),s=t("./src/models/pyannote/feature_extraction_pyannote.js"),i=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),o=t("./src/models/speecht5/feature_extraction_speecht5.js"),l=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),c=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),g=t("./src/models/whisper/feature_extraction_whisper.js"),u=t("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(e,A,t)=>{t.r(A),t.d(A,{Florence2Processor:()=>s});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class s extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.AutoImageProcessor;constructor(e,A){super(e,A);const{tasks_answer_post_processing_type:t,task_prompts_without_inputs:r,task_prompts_with_input:n}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(t??{})),this.task_prompts_without_inputs=new Map(Object.entries(r??{})),this.task_prompts_with_input=new Map(Object.entries(n??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(e){"string"==typeof e&&(e=[e]);const A=[];for(const t of e)if(this.task_prompts_without_inputs.has(t))A.push(this.task_prompts_without_inputs.get(t));else{for(const[e,r]of this.task_prompts_with_input)if(t.includes(e)){A.push(r.replaceAll("{input}",t).replaceAll(e,""));break}A.length!==e.length&&A.push(t)}return A}post_process_generation(e,A,t){const r=this.tasks_answer_post_processing_type.get(A)??"pure_text";let n;switch(e=e.replaceAll("<s>","").replaceAll("</s>",""),r){case"pure_text":n=e;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const a="ocr"===r?"quad_boxes":"bboxes",s=e.matchAll(this.regexes[a]),i=[],o=[];for(const[e,A,...r]of s)i.push(A?A.trim():i.at(-1)??""),o.push(r.map(((e,A)=>(Number(e)+.5)/this.size_per_bin*t[A%2])));n={labels:i,[a]:o};break;default:throw new Error(`Task "${A}" (of type "${r}") not yet implemented.`)}return{[A]:n}}async _call(e,A=null,t={}){if(!e&&!A)throw new Error("Either text or images must be provided");return{...await this.image_processor(e,t),...A?this.tokenizer(A,t):{}}}}},"./src/models/glpn/image_processing_glpn.js":(e,A,t)=>{t.r(A),t.d(A,{GLPNFeatureExtractor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/grounding_dino/image_processing_grounding_dino.js":(e,A,t)=>{t.r(A),t.d(A,{GroundingDinoImageProcessor:()=>a});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");class a extends r.ImageProcessor{async _call(e){const A=await super._call(e),t=A.pixel_values.dims,r=(0,n.ones)([t[0],t[2],t[3]]);return{...A,pixel_mask:r}}}},"./src/models/grounding_dino/processing_grounding_dino.js":(e,A,t)=>{t.r(A),t.d(A,{GroundingDinoProcessor:()=>o});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),s=t("./src/base/image_processors_utils.js");function i(e,A){const t=e.dims.at(-1)-1,r=e.tolist();r.fill(!1,0,1),r.fill(!1,t);const n=A.tolist();return r.map(((e,A)=>e?A:null)).filter((e=>null!==e)).map((e=>n[e]))}class o extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.AutoImageProcessor;async _call(e,A,t={}){const r=e?await this.image_processor(e,t):{};return{...A?this.tokenizer(A,t):{},...r}}post_process_grounded_object_detection(e,A,{box_threshold:t=.25,text_threshold:r=.25,target_sizes:n=null}={}){const{logits:a,pred_boxes:o}=e,l=a.dims[0];if(null!==n&&n.length!==l)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const c=a.dims.at(1),g=a.sigmoid(),u=g.max(-1).tolist(),d=o.tolist().map((e=>e.map((e=>(0,s.center_to_corners_format)(e))))),f=[];for(let e=0;e<l;++e){const a=null!==n?n[e]:null;null!==a&&(d[e]=d[e].map((e=>e.map(((e,A)=>e*a[(A+1)%2])))));const s=u[e],o=[],l=[],p=[];for(let n=0;n<c;++n){const a=s[n];if(a<=t)continue;const c=d[e][n],u=g[e][n];o.push(a),p.push(c);const f=i(u.gt(r),A[e]);l.push(f)}f.push({scores:o,boxes:p,labels:this.batch_decode(l)})}return f}}},"./src/models/idefics3/image_processing_idefics3.js":(e,A,t)=>{t.r(A),t.d(A,{Idefics3ImageProcessor:()=>a});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");class a extends r.ImageProcessor{constructor(e){super(e),this.do_image_splitting=e.do_image_splitting??!0,this.max_image_size=e.max_image_size}get_resize_for_vision_encoder(e,A){let[t,r]=e.dims.slice(-2);const n=r/t;return r>=t?(r=Math.ceil(r/A)*A,t=Math.floor(r/n),t=Math.ceil(t/A)*A):(t=Math.ceil(t/A)*A,r=Math.floor(t*n),r=Math.ceil(r/A)*A),{height:t,width:r}}async _call(e,{do_image_splitting:A=null,return_row_col_info:t=!1}={}){let r;if(Array.isArray(e)){if(0===e.length||!e[0])throw new Error("No images provided.");r=Array.isArray(e[0])?e:[e]}else r=[[e]];let a=[],s=[],i=[];const o=[],l=[];for(const e of r){let t=await Promise.all(e.map((e=>this.preprocess(e))));o.push(...t.map((e=>e.original_size))),l.push(...t.map((e=>e.reshaped_input_size))),t.forEach((e=>e.pixel_values.unsqueeze_(0)));const{longest_edge:r}=this.max_image_size;let c;if(A??this.do_image_splitting){let e=new Array(t.length),A=new Array(t.length);c=await Promise.all(t.map((async(t,a)=>{const s=this.get_resize_for_vision_encoder(t.pixel_values,r),i=await(0,n.interpolate_4d)(t.pixel_values,{size:[s.height,s.width]}),{frames:o,num_splits_h:l,num_splits_w:c}=await this.split_image(i,this.max_image_size);return e[a]=l,A[a]=c,(0,n.cat)(o,0)}))),s.push(e),i.push(A)}else{const e=[r,r];c=await Promise.all(t.map((A=>(0,n.interpolate_4d)(A.pixel_values,{size:e})))),s.push(new Array(t.length).fill(0)),i.push(new Array(t.length).fill(0))}a.push((0,n.cat)(c,0))}const c=a.length,[g,u,d,f]=a[0].dims;let p,h;if(1===c)p=a[0].unsqueeze_(0),h=(0,n.full)([c,g,d,f],!0);else{const e=Math.max(...a.map((e=>e.dims.at(0))));h=(0,n.full)([c,e,d,f],!0);const A=h.data,t=e*d*f;for(let r=0;r<c;++r){const s=a[r].dims[0];if(s<e){a[r]=(0,n.cat)([a[r],(0,n.full)([e-s,u,d,f],0)],0);const i=r*t+s*d*f,o=(r+1)*t;A.fill(!1,i,o)}}p=(0,n.stack)(a,0)}return{pixel_values:p,pixel_attention_mask:h,original_sizes:o,reshaped_input_sizes:l,...t?{rows:s,cols:i}:{}}}async split_image(e,{longest_edge:A}){const t=A,r=A,a=[],[s,i]=e.dims.slice(-2);let o=0,l=0;if(s>t||i>r){o=Math.ceil(s/t),l=Math.ceil(i/r);const A=Math.ceil(s/o),c=Math.ceil(i/l);for(let t=0;t<o;++t)for(let r=0;r<l;++r){let g,u,d,f;t===o-1?(u=s-A,f=s):(u=t*A,f=(t+1)*A),r===l-1?(g=i-c,d=i):(g=r*c,d=(r+1)*c);const p=[u,g],h=[f,d],m=await(0,n.slice)(e,p,h,[2,3]);a.push(m)}const g=t,u=r;s===g&&i===u||(e=await(0,n.interpolate_4d)(e,{size:[g,u]}))}return a.push(e),{frames:a,num_splits_h:o,num_splits_w:l}}}},"./src/models/idefics3/processing_idefics3.js":(e,A,t)=>{t.r(A),t.d(A,{Idefics3Processor:()=>o});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");t("./src/utils/image.js");var s=t("./src/utils/core.js");function i(e,A,t,r,n,a){return 0===e&&0===A?function(e,A,t,r){return`${A}${r}`+t.repeat(e)+`${A}`}(t,r,n,a):function(e,A,t,r,n,a){let s="";for(let a=0;a<A;++a){for(let A=0;A<t;++A)s+=r+`<row_${a+1}_col_${A+1}>`+n.repeat(e);s+="\n"}return s+=`\n${r}${a}`+n.repeat(e)+`${r}`,s}(t,e,A,r,n,a)}class o extends r.Processor{static image_processor_class=n.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;fake_image_token="<fake_token_around_image>";image_token="<image>";global_img_token="<global-img>";async _call(e,A=null,t={}){let r;t.return_row_col_info??=!0,A&&(r=await this.image_processor(A,t)),Array.isArray(e)||(e=[e]);const n=r.rows??[new Array(e.length).fill(0)],a=r.cols??[new Array(e.length).fill(0)],o=this.config.image_seq_len,l=[],c=[];for(let A=0;A<e.length;++A){const t=e[A],r=n[A],g=a[A];l.push((0,s.count)(t,this.image_token));const u=r.map(((e,A)=>i(e,g[A],o,this.fake_image_token,this.image_token,this.global_img_token))),d=t.split(this.image_token);if(0===d.length)throw new Error("The image token should be present in the text.");let f=d[0];for(let e=0;e<u.length;++e)f+=u[e]+d[e+1];c.push(f)}return{...this.tokenizer(c),...r}}}},"./src/models/image_processors.js":(e,A,t)=>{t.r(A),t.d(A,{BeitFeatureExtractor:()=>r.BeitFeatureExtractor,BitImageProcessor:()=>n.BitImageProcessor,CLIPFeatureExtractor:()=>s.CLIPFeatureExtractor,CLIPImageProcessor:()=>s.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>a.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>i.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>i.ConvNextImageProcessor,DPTFeatureExtractor:()=>g.DPTFeatureExtractor,DPTImageProcessor:()=>g.DPTImageProcessor,DeiTFeatureExtractor:()=>o.DeiTFeatureExtractor,DeiTImageProcessor:()=>o.DeiTImageProcessor,DetrFeatureExtractor:()=>l.DetrFeatureExtractor,DetrImageProcessor:()=>l.DetrImageProcessor,DonutFeatureExtractor:()=>c.DonutFeatureExtractor,DonutImageProcessor:()=>c.DonutImageProcessor,EfficientNetImageProcessor:()=>u.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>d.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>f.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>p.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>m.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>C.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>b.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>I.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>I.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>w.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>w.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>k.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>k.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>x.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>x.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>B.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>B.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>v.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>v.MobileViTImageProcessor,NougatImageProcessor:()=>y.NougatImageProcessor,OwlViTFeatureExtractor:()=>M.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>M.OwlViTImageProcessor,Owlv2ImageProcessor:()=>E.Owlv2ImageProcessor,Phi3VImageProcessor:()=>G.Phi3VImageProcessor,PvtImageProcessor:()=>D.PvtImageProcessor,Qwen2VLImageProcessor:()=>Q.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>T.RTDetrImageProcessor,SamImageProcessor:()=>P.SamImageProcessor,SegformerFeatureExtractor:()=>z.SegformerFeatureExtractor,SegformerImageProcessor:()=>z.SegformerImageProcessor,SiglipImageProcessor:()=>F.SiglipImageProcessor,Swin2SRImageProcessor:()=>S.Swin2SRImageProcessor,VLMImageProcessor:()=>h.VLMImageProcessor,ViTFeatureExtractor:()=>N.ViTFeatureExtractor,ViTImageProcessor:()=>N.ViTImageProcessor,VitMatteImageProcessor:()=>O.VitMatteImageProcessor,VitPoseImageProcessor:()=>L.VitPoseImageProcessor,YolosFeatureExtractor:()=>Y.YolosFeatureExtractor,YolosImageProcessor:()=>Y.YolosImageProcessor});var r=t("./src/models/beit/image_processing_beit.js"),n=t("./src/models/bit/image_processing_bit.js"),a=t("./src/models/chinese_clip/image_processing_chinese_clip.js"),s=t("./src/models/clip/image_processing_clip.js"),i=t("./src/models/convnext/image_processing_convnext.js"),o=t("./src/models/deit/image_processing_deit.js"),l=t("./src/models/detr/image_processing_detr.js"),c=t("./src/models/donut/image_processing_donut.js"),g=t("./src/models/dpt/image_processing_dpt.js"),u=t("./src/models/efficientnet/image_processing_efficientnet.js"),d=t("./src/models/glpn/image_processing_glpn.js"),f=t("./src/models/grounding_dino/image_processing_grounding_dino.js"),p=t("./src/models/idefics3/image_processing_idefics3.js"),h=t("./src/models/janus/image_processing_janus.js"),m=t("./src/models/jina_clip/image_processing_jina_clip.js"),C=t("./src/models/llava_onevision/image_processing_llava_onevision.js"),b=t("./src/models/mask2former/image_processing_mask2former.js"),I=t("./src/models/maskformer/image_processing_maskformer.js"),w=t("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),k=t("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),x=t("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),B=t("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),v=t("./src/models/mobilevit/image_processing_mobilevit.js"),y=t("./src/models/nougat/image_processing_nougat.js"),E=t("./src/models/owlv2/image_processing_owlv2.js"),M=t("./src/models/owlvit/image_processing_owlvit.js"),G=t("./src/models/phi3_v/image_processing_phi3_v.js"),D=t("./src/models/pvt/image_processing_pvt.js"),Q=t("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),T=t("./src/models/rt_detr/image_processing_rt_detr.js"),P=t("./src/models/sam/image_processing_sam.js"),z=t("./src/models/segformer/image_processing_segformer.js"),F=t("./src/models/siglip/image_processing_siglip.js"),S=t("./src/models/swin2sr/image_processing_swin2sr.js"),N=t("./src/models/vit/image_processing_vit.js"),O=t("./src/models/vitmatte/image_processing_vitmatte.js"),L=t("./src/models/vitpose/image_processing_vitpose.js"),Y=t("./src/models/yolos/image_processing_yolos.js")},"./src/models/janus/image_processing_janus.js":(e,A,t)=>{t.r(A),t.d(A,{VLMImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{constructor(e){super({do_pad:!0,pad_size:{width:e.image_size,height:e.image_size},...e}),this.constant_values=this.config.background_color.map((e=>e*this.rescale_factor))}pad_image(e,A,t,r){return super.pad_image(e,A,t,{constant_values:this.constant_values,center:!0,...r})}}},"./src/models/janus/processing_janus.js":(e,A,t)=>{t.r(A),t.d(A,{VLChatProcessor:()=>l});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),s=t("./src/utils/core.js"),i=t("./src/utils/tensor.js"),o=t("./src/utils/image.js");class l extends r.Processor{static image_processor_class=n.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;constructor(e,A){super(e,A),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(e,{images:A=null,chat_template:t="default"}={}){A?Array.isArray(A)||(A=[A]):A=await Promise.all(e.filter((e=>e.images)).flatMap((e=>e.images)).map((e=>o.RawImage.read(e))));const r=this.tokenizer,n=e=>r.encode(e,{add_special_tokens:!1}),a=r.apply_chat_template(e,{tokenize:!1,add_generation_prompt:!0,chat_template:t}).split(this.image_tag),l=a.length-1;if(A.length!==l)throw new Error(`Number of images provided (${A.length}) does not match number of "${this.image_tag}" image tags (${l})`);const[c,g,u]=r.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let d=n(a[0]),f=new Array(d.length).fill(!1);for(let e=1;e<a.length;++e){const A=new Array(this.num_image_tokens).fill(c),t=n(a[e]);d=(0,s.mergeArrays)(d,[g],A,[u],t);const r=new Array(this.num_image_tokens).fill(!0);f=(0,s.mergeArrays)(f,[!1],r,[!1],new Array(t.length).fill(!1))}const p=[1,d.length],h={input_ids:new i.Tensor("int64",d,p),attention_mask:new i.Tensor("int64",new Array(d.length).fill(1),p),images_seq_mask:new i.Tensor("bool",f,p),images_emb_mask:new i.Tensor("bool",new Array(l*this.num_image_tokens).fill(!0),[1,l,this.num_image_tokens])};if(A&&A.length>0){const e=await this.image_processor(A);return e.pixel_values.unsqueeze_(0),{...h,...e}}return h}}},"./src/models/jina_clip/image_processing_jina_clip.js":(e,A,t)=>{t.r(A),t.d(A,{JinaCLIPImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{constructor(e){const{resize_mode:A,fill_color:t,interpolation:r,size:n,...a}=e;super({...a,size:"squash"===A?{width:n,height:n}:"shortest"===A?{shortest_edge:n}:{longest_edge:n},resample:"bicubic"===r?3:2,do_center_crop:!0,crop_size:n,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(e,A,t)=>{t.r(A),t.d(A,{JinaCLIPProcessor:()=>s});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class s extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.AutoImageProcessor;async _call(e=null,A=null,t={}){if(!e&&!A)throw new Error("Either text or images must be provided");return{...e?this.tokenizer(e,t):{},...A?await this.image_processor(A,t):{}}}}},"./src/models/llava_onevision/image_processing_llava_onevision.js":(e,A,t)=>{t.r(A),t.d(A,{LlavaOnevisionImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/mask2former/image_processing_mask2former.js":(e,A,t)=>{t.r(A),t.d(A,{Mask2FormerImageProcessor:()=>n});var r=t("./src/models/maskformer/image_processing_maskformer.js");class n extends r.MaskFormerImageProcessor{}},"./src/models/maskformer/image_processing_maskformer.js":(e,A,t)=>{t.r(A),t.d(A,{MaskFormerFeatureExtractor:()=>a,MaskFormerImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_panoptic_segmentation(...e){return(0,r.post_process_panoptic_segmentation)(...e)}post_process_instance_segmentation(...e){return(0,r.post_process_instance_segmentation)(...e)}}class a extends n{}},"./src/models/mgp_str/processing_mgp_str.js":(e,A,t)=>{t.r(A),t.d(A,{MgpstrProcessor:()=>o});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),s=t("./src/utils/maths.js");const i={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class o extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.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(e,A){if(!i.hasOwnProperty(A))throw new Error(`Format ${A} is not supported.`);const[t,r]=i[A],n=this[t].bind(this),[a,o]=e.dims,l=[],c=[],g=e.tolist();for(let e=0;e<a;++e){const A=g[e],t=[],n=[];for(let e=1;e<o;++e){const[a,i]=(0,s.max)((0,s.softmax)(A[e]));if(n.push(a),i==r)break;t.push(i)}const a=n.length>0?n.reduce(((e,A)=>e*A),1):0;c.push(t),l.push(a)}return[n(c),l]}char_decode(e){return this.char_tokenizer.batch_decode(e).map((e=>e.replaceAll(" ","")))}bpe_decode(e){return this.bpe_tokenizer.batch_decode(e)}wp_decode(e){return this.wp_tokenizer.batch_decode(e).map((e=>e.replaceAll(" ","")))}batch_decode([e,A,t]){const[r,n]=this._decode_helper(e,"char"),[a,i]=this._decode_helper(A,"bpe"),[o,l]=this._decode_helper(t,"wp"),c=[],g=[];for(let e=0;e<r.length;++e){const[A,t]=(0,s.max)([n[e],i[e],l[e]]);c.push([r[e],a[e],o[e]][t]),g.push(A)}return{generated_text:c,scores:g,char_preds:r,bpe_preds:a,wp_preds:o}}static async from_pretrained(...e){const A=await super.from_pretrained(...e),t=await a.AutoTokenizer.from_pretrained("Xenova/gpt2"),r=await a.AutoTokenizer.from_pretrained("Xenova/bert-base-uncased");return A.components={image_processor:A.image_processor,char_tokenizer:A.tokenizer,bpe_tokenizer:t,wp_tokenizer:r},A}async _call(e,A=null){const t=await this.image_processor(e);return A&&(t.labels=this.tokenizer(A).input_ids),t}}},"./src/models/mobilenet_v1/image_processing_mobilenet_v1.js":(e,A,t)=>{t.r(A),t.d(A,{MobileNetV1FeatureExtractor:()=>a,MobileNetV1ImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(e,A,t)=>{t.r(A),t.d(A,{MobileNetV2FeatureExtractor:()=>a,MobileNetV2ImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(e,A,t)=>{t.r(A),t.d(A,{MobileNetV3FeatureExtractor:()=>a,MobileNetV3ImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(e,A,t)=>{t.r(A),t.d(A,{MobileNetV4FeatureExtractor:()=>a,MobileNetV4ImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/mobilevit/image_processing_mobilevit.js":(e,A,t)=>{t.r(A),t.d(A,{MobileViTFeatureExtractor:()=>a,MobileViTImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/moonshine/feature_extraction_moonshine.js":(e,A,t)=>{t.r(A),t.d(A,{MoonshineFeatureExtractor:()=>a});var r=t("./src/base/feature_extraction_utils.js"),n=t("./src/utils/tensor.js");class a extends r.FeatureExtractor{async _call(e){(0,r.validate_audio_inputs)(e,"MoonshineFeatureExtractor"),e instanceof Float64Array&&(e=new Float32Array(e));const A=[1,e.length];return{input_values:new n.Tensor("float32",e,A)}}}},"./src/models/moonshine/processing_moonshine.js":(e,A,t)=>{t.r(A),t.d(A,{MoonshineProcessor:()=>s});var r=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class s extends a.Processor{static tokenizer_class=n.AutoTokenizer;static feature_extractor_class=r.AutoFeatureExtractor;async _call(e){return await this.feature_extractor(e)}}},"./src/models/nougat/image_processing_nougat.js":(e,A,t)=>{t.r(A),t.d(A,{NougatImageProcessor:()=>n});var r=t("./src/models/donut/image_processing_donut.js");class n extends r.DonutImageProcessor{}},"./src/models/owlv2/image_processing_owlv2.js":(e,A,t)=>{t.r(A),t.d(A,{Owlv2ImageProcessor:()=>n});var r=t("./src/models/owlvit/image_processing_owlvit.js");class n extends r.OwlViTImageProcessor{}},"./src/models/owlvit/image_processing_owlvit.js":(e,A,t)=>{t.r(A),t.d(A,{OwlViTFeatureExtractor:()=>a,OwlViTImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_object_detection(...e){return(0,r.post_process_object_detection)(...e)}}class a extends n{}},"./src/models/owlvit/processing_owlvit.js":(e,A,t)=>{t.r(A),t.d(A,{OwlViTProcessor:()=>s});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class s extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.AutoImageProcessor}},"./src/models/paligemma/processing_paligemma.js":(e,A,t)=>{t.r(A),t.d(A,{PaliGemmaProcessor:()=>i});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");const s="<image>";class i extends r.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=n.AutoImageProcessor;static uses_processor_config=!1;async _call(e,A=null,t={}){A||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),A=""),Array.isArray(e)||(e=[e]),Array.isArray(A)||(A=[A]);const r=this.tokenizer.bos_token,n=this.image_processor.config.image_seq_length;let a;A.some((e=>e.includes(s)))?a=A.map((e=>{const A=e.replaceAll(s,s.repeat(n)),t=A.lastIndexOf(s),a=-1===t?0:t+7;return A.slice(0,a)+r+A.slice(a)+"\n"})):(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 `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),a=A.map((A=>function(e,A,t,r,n){return`${r.repeat(t*n)}${A}${e}\n`}(A,r,n,s,e.length))));const i=this.tokenizer(a,t);return{...await this.image_processor(e,t),...i}}}},"./src/models/phi3_v/image_processing_phi3_v.js":(e,A,t)=>{t.r(A),t.d(A,{Phi3VImageProcessor:()=>c});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");const a=336,s=[2,3],{ceil:i,floor:o,sqrt:l}=Math;class c extends r.ImageProcessor{constructor(e){super({...e,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=e.num_crops}calc_num_image_tokens_from_image_size(e,A){const{num_img_tokens:t}=this.config;return o((o(A/a)*o(e/a)+1)*t+1+(o(A/a)+1)*l(t))}get_resize_output_image_size(e,A){const t=this._num_crops,[r,n]=e.size;let a=r/n,s=1;for(;s*Math.ceil(s/a)<=t;)s+=1;s-=1;const i=Math.floor(336*s);return[i,Math.floor(i/a)]}pad_image(e,A,t,r={}){const[n,s]=A,o=a*i(n/a),l=a*i(s/a),c=[1,1,1].map(((e,A)=>(e-this.image_mean[A])/this.image_std[A]));return super.pad_image(e,A,{width:l,height:o},{center:!0,constant_values:c,...r})}async _call(e,{num_crops:A=null}={}){if(this._num_crops=A??=this.config.num_crops,A<4||l(A)%1!=0)throw new Error("num_crops must be a square number >= 4");Array.isArray(e)||(e=[e]);const t=e.length,r=await Promise.all(e.map((e=>this.preprocess(e)))),c=r.map((e=>e.original_size)),g=r.map((e=>e.reshaped_input_size)),u=[];for(const{pixel_values:e}of r){e.unsqueeze_(0);const[t,r]=e.dims.slice(-2),i=await(0,n.interpolate_4d)(e,{size:[a,a],mode:"bicubic"});if(A>0){const c=[],g=l(A),d=o(r/g),f=o(t/g);for(let A=0;A<g;++A)for(let a=0;a<g;++a){let i,o,l,u;A===g-1?(o=t-f,u=t):(o=A*f,u=(A+1)*f),a===g-1?(i=r-d,l=r):(i=a*d,l=(a+1)*d);const p=[o,i],h=[u,l],m=await(0,n.slice)(e,p,h,s);c.push(m)}const p=await(0,n.interpolate_4d)((0,n.cat)(c,0),{size:[a,a],mode:"bicubic"});u.push((0,n.cat)([i,p],0))}else u.push(i)}const d=(0,n.stack)(u,0),f=g.map((e=>e.map((e=>a*i(e/a)))));return{pixel_values:d,original_sizes:c,reshaped_input_sizes:g,image_sizes:new n.Tensor("int64",f.flat(),[t,2]),num_img_tokens:f.map((([e,A])=>this.calc_num_image_tokens_from_image_size(A,e)))}}}},"./src/models/phi3_v/processing_phi3_v.js":(e,A,t)=>{t.r(A),t.d(A,{Phi3VProcessor:()=>o});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");t("./src/utils/image.js");const s="<|image|>",i=/<\|image_\d+\|>/g;class o extends r.Processor{static image_processor_class=n.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(e,A=null,{padding:t=!0,truncation:r=!0,num_crops:n=null}={}){let a,o;if(Array.isArray(e)||(e=[e]),A){o=await this.image_processor(A,{num_crops:n});const{num_img_tokens:l}=o,c=e.map(((e,A)=>e.split(i).join(s.repeat(l[A]))));a=this.tokenizer(c,{padding:t,truncation:r});const g=this.tokenizer.model.convert_tokens_to_ids([s])[0];a.input_ids.map_((e=>e==g?-e:e))}else a=this.tokenizer(e);return{...a,...o}}}},"./src/models/processors.js":(e,A,t)=>{t.r(A),t.d(A,{Florence2Processor:()=>r.Florence2Processor,GroundingDinoProcessor:()=>n.GroundingDinoProcessor,Idefics3Processor:()=>a.Idefics3Processor,JinaCLIPProcessor:()=>i.JinaCLIPProcessor,MgpstrProcessor:()=>o.MgpstrProcessor,MoonshineProcessor:()=>l.MoonshineProcessor,OwlViTProcessor:()=>c.OwlViTProcessor,PaliGemmaProcessor:()=>u.PaliGemmaProcessor,Phi3VProcessor:()=>g.Phi3VProcessor,PyAnnoteProcessor:()=>d.PyAnnoteProcessor,Qwen2VLProcessor:()=>f.Qwen2VLProcessor,SamProcessor:()=>p.SamProcessor,SpeechT5Processor:()=>h.SpeechT5Processor,VLChatProcessor:()=>s.VLChatProcessor,Wav2Vec2Processor:()=>m.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>C.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>b.WhisperProcessor});var r=t("./src/models/florence2/processing_florence2.js"),n=t("./src/models/grounding_dino/processing_grounding_dino.js"),a=t("./src/models/idefics3/processing_idefics3.js"),s=t("./src/models/janus/processing_janus.js"),i=t("./src/models/jina_clip/processing_jina_clip.js"),o=t("./src/models/mgp_str/processing_mgp_str.js"),l=t("./src/models/moonshine/processing_moonshine.js"),c=t("./src/models/owlvit/processing_owlvit.js"),g=t("./src/models/phi3_v/processing_phi3_v.js"),u=t("./src/models/paligemma/processing_paligemma.js"),d=t("./src/models/pyannote/processing_pyannote.js"),f=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),p=t("./src/models/sam/processing_sam.js"),h=t("./src/models/speecht5/processing_speecht5.js"),m=t("./src/models/wav2vec2/processing_wav2vec2.js"),C=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),b=t("./src/models/whisper/processing_whisper.js")},"./src/models/pvt/image_processing_pvt.js":(e,A,t)=>{t.r(A),t.d(A,{PvtImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/pyannote/feature_extraction_pyannote.js":(e,A,t)=>{t.r(A),t.d(A,{PyAnnoteFeatureExtractor:()=>s});var r=t("./src/base/feature_extraction_utils.js"),n=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class s extends r.FeatureExtractor{async _call(e){(0,r.validate_audio_inputs)(e,"PyAnnoteFeatureExtractor"),e instanceof Float64Array&&(e=new Float32Array(e));const A=[1,1,e.length];return{input_values:new n.Tensor("float32",e,A)}}samples_to_frames(e){return(e-this.config.offset)/this.config.step}post_process_speaker_diarization(e,A){const t=A/this.samples_to_frames(A)/this.config.sampling_rate,r=[];for(const A of e.tolist()){const e=[];let n=-1;for(let t=0;t<A.length;++t){const r=(0,a.softmax)(A[t]),[s,i]=(0,a.max)(r),[o,l]=[t,t+1];i!==n?(n=i,e.push({id:i,start:o,end:l,score:s})):(e.at(-1).end=l,e.at(-1).score+=s)}r.push(e.map((({id:e,start:A,end:r,score:n})=>({id:e,start:A*t,end:r*t,confidence:n/(r-A)}))))}return r}}},"./src/models/pyannote/processing_pyannote.js":(e,A,t)=>{t.r(A),t.d(A,{PyAnnoteProcessor:()=>a});var r=t("./src/base/processing_utils.js"),n=t("./src/models/pyannote/feature_extraction_pyannote.js");class a extends r.Processor{static feature_extractor_class=n.PyAnnoteFeatureExtractor;async _call(e){return await this.feature_extractor(e)}post_process_speaker_diarization(...e){return this.feature_extractor.post_process_speaker_diarization(...e)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}},"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(e,A,t)=>{t.r(A),t.d(A,{Qwen2VLImageProcessor:()=>a});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");class a extends r.ImageProcessor{async _call(e,...A){const{pixel_values:t,original_sizes:r,reshaped_input_sizes:a}=await super._call(e,...A);let s=t;const{temporal_patch_size:i,merge_size:o,patch_size:l}=this.config;1===s.dims[0]&&(s=(0,n.cat)(Array.from({length:i},(()=>s)),0));const c=s.dims[0]/i,g=s.dims[1],u=Math.floor(s.dims[2]/l),d=Math.floor(s.dims[3]/l);return{pixel_values:s.view(c,i,g,Math.floor(u/o),o,l,Math.floor(d/o),o,l).permute(0,3,6,4,7,2,1,5,8).view(c*u*d,g*i*l*l),image_grid_thw:new n.Tensor("int64",[c,u,d],[1,3]),original_sizes:r,reshaped_input_sizes:a}}}},"./src/models/qwen2_vl/processing_qwen2_vl.js":(e,A,t)=>{t.r(A),t.d(A,{Qwen2VLProcessor:()=>s});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");t("./src/utils/image.js");class s extends r.Processor{static image_processor_class=n.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(e,A=null,...t){let r,n;if(Array.isArray(e)||(e=[e]),A&&(r=await this.image_processor(A),n=r.image_grid_thw),n){let A=this.image_processor.config.merge_size**2,t=0;const r=n.tolist();e=e.map((e=>{for(;e.includes("<|image_pad|>");){const n=Number(r[t++].reduce(((e,A)=>e*A),1n));e=e.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(n/A)))}return e.replaceAll("<|placeholder|>","<|image_pad|>")}))}return{...this.tokenizer(e),...r}}}},"./src/models/rt_detr/image_processing_rt_detr.js":(e,A,t)=>{t.r(A),t.d(A,{RTDetrImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_object_detection(...e){return(0,r.post_process_object_detection)(...e)}}},"./src/models/sam/image_processing_sam.js":(e,A,t)=>{t.r(A),t.d(A,{SamImageProcessor:()=>s});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/core.js"),a=t("./src/utils/tensor.js");class s extends r.ImageProcessor{reshape_input_points(e,A,t,r=!1){e=structuredClone(e);let s=(0,n.calculateDimensions)(e);if(3===s.length)r||(s=[1,...s]),e=[e];else if(4!==s.length)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let r=0;r<e.length;++r){let n=A[r],a=t[r],s=[a[0]/n[0],a[1]/n[1]];for(let A=0;A<e[r].length;++A)for(let t=0;t<e[r][A].length;++t)for(let n=0;n<e[r][A][t].length;++n)e[r][A][t][n]*=s[n%2]}return new a.Tensor("float32",Float32Array.from(e.flat(1/0)),s)}add_input_labels(e,A){let t=(0,n.calculateDimensions)(e);if(2===t.length)t=[1,...t],e=[e];else if(3!==t.length)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(t.some(((e,t)=>e!==A.dims[t])))throw Error(`The first ${t.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new a.Tensor("int64",e.flat(1/0).map(BigInt),t)}async _call(e,{input_points:A=null,input_labels:t=null,input_boxes:r=null}={}){const n=await super._call(e);if(A&&(n.input_points=this.reshape_input_points(A,n.original_sizes,n.reshaped_input_sizes)),t){if(!n.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");n.input_labels=this.add_input_labels(t,n.input_points)}return r&&(n.input_boxes=this.reshape_input_points(r,n.original_sizes,n.reshaped_input_sizes,!0)),n}async post_process_masks(e,A,t,{mask_threshold:r=0,binarize:n=!0,pad_size:s=null}={}){const i=[],o=[(s=s??this.pad_size).height,s.width];for(let s=0;s<A.length;++s){const l=A[s],c=t[s];let g=await(0,a.interpolate_4d)(e[s],{mode:"bilinear",size:o});if(g=g.slice(null,null,[0,c[0]],[0,c[1]]),g=await(0,a.interpolate_4d)(g,{mode:"bilinear",size:l}),n){const e=g.data,A=new Uint8Array(e.length);for(let t=0;t<e.length;++t)e[t]>r&&(A[t]=1);g=new a.Tensor("bool",A,g.dims)}i.push(g)}return i}generate_crop_boxes(e,A,{crop_n_layers:t=0,overlap_ratio:r=512/1500,points_per_crop:n=32,crop_n_points_downscale_factor:a=1}={}){}}},"./src/models/sam/processing_sam.js":(e,A,t)=>{t.r(A),t.d(A,{SamProcessor:()=>a});var r=t("./src/base/processing_utils.js"),n=t("./src/models/auto/image_processing_auto.js");class a extends r.Processor{static image_processor_class=n.AutoImageProcessor;async _call(...e){return await this.image_processor(...e)}post_process_masks(...e){return this.image_processor.post_process_masks(...e)}reshape_input_points(...e){return this.image_processor.reshape_input_points(...e)}}},"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(e,A,t)=>{t.r(A),t.d(A,{SeamlessM4TFeatureExtractor:()=>s});var r=t("./src/base/feature_extraction_utils.js"),n=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class s extends r.FeatureExtractor{constructor(e){super(e);const A=this.config.sampling_rate,t=(0,a.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(A/2),A,null,"kaldi",!0);for(let e=0;e<t.length;++e)t[e].push(0);this.mel_filters=t,this.window=(0,a.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(e,A){return e=e.map((e=>32768*e)),(0,a.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:1.192092955078125e-7,remove_dc_offset:!0,max_num_frames:A,transpose:!0})}async _call(e,{padding:A=!0,pad_to_multiple_of:t=2,do_normalize_per_mel_bins:a=!0,return_attention_mask:s=!0}={}){(0,r.validate_audio_inputs)(e,"SeamlessM4TFeatureExtractor");let i,o=await this._extract_fbank_features(e,this.config.max_length);if(a){const[e,A]=o.dims,t=o.data;for(let r=0;r<A;++r){let n=0;for(let a=0;a<e;++a)n+=t[a*A+r];const a=n/e;let s=0;for(let n=0;n<e;++n)s+=(t[n*A+r]-a)**2;s/=e-1;const i=Math.sqrt(s+1e-7);for(let n=0;n<e;++n){const e=n*A+r;t[e]=(t[e]-a)/i}}}if(A){const[e,A]=o.dims,r=o.data,a=e%t;if(a>0){const t=new Float32Array(A*(e+a));t.set(r),t.fill(this.config.padding_value,r.length);const l=e+a;o=new n.Tensor(o.type,t,[l,A]),s&&(i=new n.Tensor("int64",new BigInt64Array(l),[1,l]),i.data.fill(1n,0,e))}}const[l,c]=o.dims,g=this.config.stride;if(0!==l%g)throw new Error(`The number of frames (${l}) must be a multiple of the stride (${g}).`);const u=o.view(1,Math.floor(l/g),c*g),d={input_features:u};if(s){const e=u.dims[1],A=new BigInt64Array(e);if(i){const e=i.data;for(let t=1,r=0;t<l;t+=g,++r)A[r]=e[t]}else A.fill(1n);d.attention_mask=new n.Tensor("int64",A,[1,e])}return d}}},"./src/models/segformer/image_processing_segformer.js":(e,A,t)=>{t.r(A),t.d(A,{SegformerFeatureExtractor:()=>a,SegformerImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_semantic_segmentation(...e){return(0,r.post_process_semantic_segmentation)(...e)}}class a extends n{}},"./src/models/siglip/image_processing_siglip.js":(e,A,t)=>{t.r(A),t.d(A,{SiglipImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}},"./src/models/speecht5/feature_extraction_speecht5.js":(e,A,t)=>{t.r(A),t.d(A,{SpeechT5FeatureExtractor:()=>n});var r=t("./src/base/feature_extraction_utils.js");class n extends r.FeatureExtractor{}},"./src/models/speecht5/processing_speecht5.js":(e,A,t)=>{t.r(A),t.d(A,{SpeechT5Processor:()=>s});var r=t("./src/base/processing_utils.js"),n=t("./src/tokenizers.js"),a=t("./src/models/auto/feature_extraction_auto.js");class s extends r.Processor{static tokenizer_class=n.AutoTokenizer;static feature_extractor_class=a.AutoFeatureExtractor;async _call(e){return await this.feature_extractor(e)}}},"./src/models/swin2sr/image_processing_swin2sr.js":(e,A,t)=>{t.r(A),t.d(A,{Swin2SRImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{pad_image(e,A,t,r={}){const[n,a,s]=A;return super.pad_image(e,A,{width:a+(t-a%t)%t,height:n+(t-n%t)%t},{mode:"symmetric",center:!1,constant_values:-1,...r})}}},"./src/models/vit/image_processing_vit.js":(e,A,t)=>{t.r(A),t.d(A,{ViTFeatureExtractor:()=>a,ViTImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{}class a extends n{}},"./src/models/vitmatte/image_processing_vitmatte.js":(e,A,t)=>{t.r(A),t.d(A,{VitMatteImageProcessor:()=>a});var r=t("./src/base/image_processors_utils.js"),n=t("./src/utils/tensor.js");class a extends r.ImageProcessor{async _call(e,A){Array.isArray(e)||(e=[e]),Array.isArray(A)||(A=[A]);const t=await Promise.all(e.map((e=>this.preprocess(e)))),r=await Promise.all(A.map((e=>this.preprocess(e,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})))),a=(0,n.stack)(t.map(((e,A)=>(0,n.cat)([e.pixel_values,r[A].pixel_values],0))),0);return{pixel_values:a,original_sizes:t.map((e=>e.original_size)),reshaped_input_sizes:t.map((e=>e.reshaped_input_size))}}}},"./src/models/vitpose/image_processing_vitpose.js":(e,A,t)=>{t.r(A),t.d(A,{VitPoseImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_pose_estimation(e,A,{threshold:t=null}={}){const r=e.tolist(),[n,a,s,i]=e.dims,o=[];for(let e=0;e<n;++e){const n=r[e],a=A[e],l=[];for(let e=0;e<a.length;++e){const A=a[e],r=[],o=[],c=[],g=A.at(-2)/i,u=A.at(-1)/s;for(let e=0;e<n.length;++e){let[A,a]=[0,0],s=0,i=-1/0;const l=n[e];for(let e=0;e<l.length;++e){const t=l[e];for(let r=0;r<t.length;++r){const n=t[r];s+=n,i=Math.max(i,n),A+=(r+.5)*n,a+=e*n}}if(null!=t&&i<t)continue;const d=[g*A/s,u*a/s];r.push(d),c.push(e),o.push(i)}l.push({bbox:A,scores:o,labels:c,keypoints:r})}o.push(l)}return o}}},"./src/models/wav2vec2/feature_extraction_wav2vec2.js":(e,A,t)=>{t.r(A),t.d(A,{Wav2Vec2FeatureExtractor:()=>a});var r=t("./src/base/feature_extraction_utils.js"),n=t("./src/utils/tensor.js");class a extends r.FeatureExtractor{_zero_mean_unit_var_norm(e){const A=e.reduce(((e,A)=>e+A),0),t=A/e.length,r=e.reduce(((e,A)=>e+(A-t)**2),0)/e.length;return e.map((e=>(e-t)/Math.sqrt(r+1e-7)))}async _call(e){(0,r.validate_audio_inputs)(e,"Wav2Vec2FeatureExtractor"),e instanceof Float64Array&&(e=new Float32Array(e));let A=e;this.config.do_normalize&&(A=this._zero_mean_unit_var_norm(A));const t=[1,A.length];return{input_values:new n.Tensor("float32",A,t),attention_mask:new n.Tensor("int64",new BigInt64Array(A.length).fill(1n),t)}}}},"./src/models/wav2vec2/processing_wav2vec2.js":(e,A,t)=>{t.r(A),t.d(A,{Wav2Vec2Processor:()=>s});var r=t("./src/tokenizers.js"),n=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class s extends a.Processor{static tokenizer_class=r.AutoTokenizer;static feature_extractor_class=n.AutoFeatureExtractor;async _call(e){return await this.feature_extractor(e)}}},"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(e,A,t)=>{t.r(A),t.d(A,{Wav2Vec2ProcessorWithLM:()=>s});var r=t("./src/tokenizers.js"),n=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class s extends a.Processor{static tokenizer_class=r.AutoTokenizer;static feature_extractor_class=n.AutoFeatureExtractor;async _call(e){return await this.feature_extractor(e)}}},"./src/models/wespeaker/feature_extraction_wespeaker.js":(e,A,t)=>{t.r(A),t.d(A,{WeSpeakerFeatureExtractor:()=>a});var r=t("./src/base/feature_extraction_utils.js");t("./src/utils/tensor.js");var n=t("./src/utils/audio.js");class a extends r.FeatureExtractor{constructor(e){super(e);const A=this.config.sampling_rate,t=(0,n.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(A/2),A,null,"kaldi",!0);for(let e=0;e<t.length;++e)t[e].push(0);this.mel_filters=t,this.window=(0,n.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(e){return e=e.map((e=>32768*e)),(0,n.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:1.192092955078125e-7,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(e){(0,r.validate_audio_inputs)(e,"WeSpeakerFeatureExtractor");const A=(await this._extract_fbank_features(e)).unsqueeze_(0);if(null===this.config.fbank_centering_span){const e=A.mean(1).data,t=A.data,[r,n,a]=A.dims;for(let A=0;A<r;++A){const r=A*n*a,s=A*a;for(let A=0;A<n;++A){const n=r+A*a;for(let A=0;A<a;++A)t[n+A]-=e[s+A]}}}return{input_features:A}}}},"./src/models/whisper/common_whisper.js":(e,A,t)=>{t.r(A),t.d(A,{WHISPER_LANGUAGE_MAPPING:()=>n,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>a,whisper_language_to_code:()=>s});const r=[["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"]],n=new Map(r),a=new Map([...r.map((([e,A])=>[A,e])),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function s(e){e=e.toLowerCase();let A=a.get(e);if(void 0===A){if(!n.has(e)){const A=2===e.length?n.keys():n.values();throw new Error(`Language "${e}" is not supported. Must be one of: ${JSON.stringify(A)}`)}A=e}return A}},"./src/models/whisper/feature_extraction_whisper.js":(e,A,t)=>{t.r(A),t.d(A,{WhisperFeatureExtractor:()=>s});var r=t("./src/base/feature_extraction_utils.js");t("./src/utils/tensor.js");var n=t("./src/utils/audio.js"),a=t("./src/utils/maths.js");class s extends r.FeatureExtractor{constructor(e){super(e),this.config.mel_filters??=(0,n.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,n.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(e){const A=await(0,n.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:this.config.nb_max_frames}),t=A.data,r=(0,a.max)(t)[0];for(let e=0;e<t.length;++e)t[e]=(Math.max(t[e],r-8)+4)/4;return A}async _call(e){let A;(0,r.validate_audio_inputs)(e,"WhisperFeatureExtractor"),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`."),A=e.slice(0,this.config.n_samples)):(A=new Float32Array(this.config.n_samples),A.set(e));return{input_features:(await this._extract_fbank_features(A)).unsqueeze_(0)}}}},"./src/models/whisper/generation_whisper.js":(e,A,t)=>{t.r(A),t.d(A,{WhisperGenerationConfig:()=>n});var r=t("./src/generation/configuration_utils.js");class n extends r.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":(e,A,t)=>{t.r(A),t.d(A,{WhisperProcessor:()=>s});var r=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class s extends a.Processor{static tokenizer_class=n.AutoTokenizer;static feature_extractor_class=r.AutoFeatureExtractor;async _call(e){return await this.feature_extractor(e)}}},"./src/models/yolos/image_processing_yolos.js":(e,A,t)=>{t.r(A),t.d(A,{YolosFeatureExtractor:()=>a,YolosImageProcessor:()=>n});var r=t("./src/base/image_processors_utils.js");class n extends r.ImageProcessor{post_process_object_detection(...e){return(0,r.post_process_object_detection)(...e)}}class a extends n{}},"./src/ops/registry.js":(e,A,t)=>{t.r(A),t.d(A,{TensorOpRegistry:()=>o});var r=t("./src/backends/onnx.js"),n=t("./src/utils/tensor.js"),a=t("./src/env.js");const s=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV,i=async(e,A,t)=>{const a=await(0,r.createInferenceSession)(new Uint8Array(e),A);let i=Promise.resolve();return async e=>{const A=(0,r.isONNXProxy)(),o=Object.fromEntries(Object.entries(e).map((([e,t])=>[e,(A?t.clone():t).ort_tensor]))),l=await(i=s?i.then((()=>a.run(o))):a.run(o));return Array.isArray(t)?t.map((e=>new n.Tensor(l[e]))):new n.Tensor(l[t])}};class o{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=i([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=i([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=i([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=i([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=i([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=i([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=i([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=i([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":(e,A,t)=>{t.r(A),t.d(A,{AudioClassificationPipeline:()=>M,AutomaticSpeechRecognitionPipeline:()=>D,DepthEstimationPipeline:()=>Y,DocumentQuestionAnsweringPipeline:()=>N,FeatureExtractionPipeline:()=>y,FillMaskPipeline:()=>b,ImageClassificationPipeline:()=>T,ImageFeatureExtractionPipeline:()=>E,ImageSegmentationPipeline:()=>P,ImageToImagePipeline:()=>L,ImageToTextPipeline:()=>Q,ObjectDetectionPipeline:()=>F,Pipeline:()=>p,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>w,Text2TextGenerationPipeline:()=>I,TextClassificationPipeline:()=>h,TextGenerationPipeline:()=>B,TextToAudioPipeline:()=>O,TokenClassificationPipeline:()=>m,TranslationPipeline:()=>k,ZeroShotAudioClassificationPipeline:()=>G,ZeroShotClassificationPipeline:()=>v,ZeroShotImageClassificationPipeline:()=>z,ZeroShotObjectDetectionPipeline:()=>S,pipeline:()=>W});var r=t("./src/tokenizers.js"),n=t("./src/models.js"),a=t("./src/models/auto/processing_auto.js");t("./src/base/processing_utils.js");var s=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),o=t("./src/utils/maths.js"),l=t("./src/utils/audio.js"),c=t("./src/utils/tensor.js"),g=t("./src/utils/image.js");async function u(e){return Array.isArray(e)||(e=[e]),await Promise.all(e.map((e=>g.RawImage.read(e))))}async function d(e,A){return Array.isArray(e)||(e=[e]),await Promise.all(e.map((e=>"string"==typeof e||e instanceof URL?(0,l.read_audio)(e,A):e instanceof Float64Array?new Float32Array(e):e)))}function f(e,A){A&&(e=e.map((e=>0|e)));const[t,r,n,a]=e;return{xmin:t,ymin:r,xmax:n,ymax:a}}class p extends s.Callable{constructor({task:e,model:A,tokenizer:t=null,processor:r=null}){super(),this.task=e,this.model=A,this.tokenizer=t,this.processor=r}async dispose(){await this.model.dispose()}}class h extends p{constructor(e){super(e)}async _call(e,{top_k:A=1}={}){const t=this.tokenizer(e,{padding:!0,truncation:!0}),r=await this.model(t),n="multi_label_classification"===this.model.config.problem_type?e=>e.sigmoid():e=>new c.Tensor("float32",(0,o.softmax)(e.data),e.dims),a=this.model.config.id2label,s=[];for(const e of r.logits){const t=n(e),r=await(0,c.topk)(t,A),i=r[0].tolist(),o=r[1].tolist().map(((e,A)=>({label:a?a[e]:`LABEL_${e}`,score:i[A]})));1===A?s.push(...o):s.push(o)}return Array.isArray(e)||1===A?s:s[0]}}class m extends p{constructor(e){super(e)}async _call(e,{ignore_labels:A=["O"]}={}){const t=Array.isArray(e),r=this.tokenizer(t?e:[e],{padding:!0,truncation:!0}),n=(await this.model(r)).logits,a=this.model.config.id2label,s=[];for(let e=0;e<n.dims[0];++e){const t=r.input_ids[e],i=n[e],l=[];for(let e=0;e<i.dims[0];++e){const r=i[e],n=(0,o.max)(r.data)[1],s=a?a[n]:`LABEL_${n}`;if(A.includes(s))continue;const c=this.tokenizer.decode([t[e].item()],{skip_special_tokens:!0});if(""===c)continue;const g=(0,o.softmax)(r.data);l.push({entity:s,score:g[n],index:e,word:c})}s.push(l)}return t?s:s[0]}}class C extends p{constructor(e){super(e)}async _call(e,A,{top_k:t=1}={}){const r=this.tokenizer(e,{text_pair:A,padding:!0,truncation:!0}),{start_logits:n,end_logits:a}=await this.model(r),s=r.input_ids.tolist(),l=r.attention_mask.tolist(),c=this.tokenizer.all_special_ids,g=[];for(let e=0;e<n.dims[0];++e){const A=s[e],r=A.findIndex((e=>e==this.tokenizer.sep_token_id));l[e].map(((e,t)=>1==e&&(0===t||t>r&&-1===c.findIndex((e=>e==A[t])))));const u=n[e].tolist(),d=a[e].tolist();for(let t=1;t<u.length;++t)(0==l[e]||t<=r||-1!==c.findIndex((e=>e==A[t])))&&(u[t]=-1/0,d[t]=-1/0);const f=(0,o.softmax)(u).map(((e,A)=>[e,A])),p=(0,o.softmax)(d).map(((e,A)=>[e,A]));f[0][0]=0,p[0][0]=0;const h=(0,i.product)(f,p).filter((e=>e[0][1]<=e[1][1])).map((e=>[e[0][1],e[1][1],e[0][0]*e[1][0]])).sort(((e,A)=>A[2]-e[2]));for(let e=0;e<Math.min(h.length,t);++e){const[t,r,n]=h[e],a=A.slice(t,r+1),s=this.tokenizer.decode(a,{skip_special_tokens:!0});g.push({answer:s,score:n})}}return 1===t?g[0]:g}}class b extends p{constructor(e){super(e)}async _call(e,{top_k:A=5}={}){const t=this.tokenizer(e,{padding:!0,truncation:!0}),{logits:r}=await this.model(t),n=[],a=t.input_ids.tolist();for(let e=0;e<a.length;++e){const t=a[e],s=t.findIndex((e=>e==this.tokenizer.mask_token_id));if(-1===s)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const i=r[e][s],l=await(0,c.topk)(new c.Tensor("float32",(0,o.softmax)(i.data),i.dims),A),g=l[0].tolist(),u=l[1].tolist();n.push(u.map(((e,A)=>{const r=t.slice();return r[s]=e,{score:g[A],token:Number(e),token_str:this.tokenizer.decode([e]),sequence:this.tokenizer.decode(r,{skip_special_tokens:!0})}})))}return Array.isArray(e)?n:n[0]}}class I extends p{_key="generated_text";constructor(e){super(e)}async _call(e,A={}){Array.isArray(e)||(e=[e]),this.model.config.prefix&&(e=e.map((e=>this.model.config.prefix+e)));const t=this.model.config.task_specific_params;t&&t[this.task]&&t[this.task].prefix&&(e=e.map((e=>t[this.task].prefix+e)));const r=this.tokenizer,n={padding:!0,truncation:!0};let a;a=this instanceof k&&"_build_translation_inputs"in r?r._build_translation_inputs(e,n,A):r(e,n);const s=await this.model.generate({...a,...A});return r.batch_decode(s,{skip_special_tokens:!0}).map((e=>({[this._key]:e})))}}class w extends I{_key="summary_text";constructor(e){super(e)}}class k extends I{_key="translation_text";constructor(e){super(e)}}function x(e){return Array.isArray(e)&&e.every((e=>"role"in e&&"content"in e))}class B extends p{constructor(e){super(e)}async _call(e,A={}){let t,r=!1,n=!1;if("string"==typeof e)t=e=[e];else if(Array.isArray(e)&&e.every((e=>"string"==typeof e)))r=!0,t=e;else{if(x(e))e=[e];else{if(!Array.isArray(e)||!e.every(x))throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");r=!0}n=!0,t=e.map((e=>this.tokenizer.apply_chat_template(e,{tokenize:!1,add_generation_prompt:!0})))}const a=A.add_special_tokens??!1,s=!n&&(A.return_full_text??!0);this.tokenizer.padding_side="left";const i=this.tokenizer(t,{add_special_tokens:a,padding:!0,truncation:!0}),o=await this.model.generate({...i,...A}),l=this.tokenizer.batch_decode(o,{skip_special_tokens:!0});let c;!s&&i.input_ids.dims.at(-1)>0&&(c=this.tokenizer.batch_decode(i.input_ids,{skip_special_tokens:!0}).map((e=>e.length)));const g=Array.from({length:e.length},(e=>[]));for(let A=0;A<l.length;++A){const t=Math.floor(A/o.dims[0]*e.length);c&&(l[A]=l[A].slice(c[t])),g[t].push({generated_text:n?[...e[t],{role:"assistant",content:l[A]}]:l[A]})}return r||1!==g.length?g:g[0]}}class v extends p{constructor(e){super(e),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map((([e,A])=>[e.toLowerCase(),A]))),this.entailment_id=this.label2id.entailment,void 0===this.entailment_id&&(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,void 0===this.contradiction_id&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(e,A,{hypothesis_template:t="This example is {}.",multi_label:r=!1}={}){const n=Array.isArray(e);n||(e=[e]),Array.isArray(A)||(A=[A]);const a=A.map((e=>t.replace("{}",e))),s=r||1===A.length,i=[];for(const t of e){const e=[];for(const A of a){const r=this.tokenizer(t,{text_pair:A,padding:!0,truncation:!0}),n=await this.model(r);s?e.push([n.logits.data[this.contradiction_id],n.logits.data[this.entailment_id]]):e.push(n.logits.data[this.entailment_id])}const r=s?e.map((e=>(0,o.softmax)(e)[1])):(0,o.softmax)(e),n=r.map(((e,A)=>[e,A])).sort(((e,A)=>A[0]-e[0]));i.push({sequence:t,labels:n.map((e=>A[e[1]])),scores:n.map((e=>e[0]))})}return n?i:i[0]}}class y extends p{constructor(e){super(e)}async _call(e,{pooling:A="none",normalize:t=!1,quantize:r=!1,precision:n="binary"}={}){const a=this.tokenizer(e,{padding:!0,truncation:!0}),s=await this.model(a);let i=s.last_hidden_state??s.logits??s.token_embeddings;if("none"===A);else if("mean"===A)i=(0,c.mean_pooling)(i,a.attention_mask);else{if("cls"!==A)throw Error(`Pooling method '${A}' not supported.`);i=i.slice(null,0)}return t&&(i=i.normalize(2,-1)),r&&(i=(0,c.quantize_embeddings)(i,n)),i}}class E extends p{constructor(e){super(e)}async _call(e,{pool:A=null}={}){const t=await u(e),{pixel_values:r}=await this.processor(t),n=await this.model({pixel_values:r});let a;if(A){if(!("pooler_output"in n))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");a=n.pooler_output}else a=n.last_hidden_state??n.logits??n.image_embeds;return a}}class M extends p{constructor(e){super(e)}async _call(e,{top_k:A=5}={}){const t=this.processor.feature_extractor.config.sampling_rate,r=await d(e,t),n=this.model.config.id2label,a=[];for(const e of r){const t=await this.processor(e),r=(await this.model(t)).logits[0],s=await(0,c.topk)(new c.Tensor("float32",(0,o.softmax)(r.data),r.dims),A),i=s[0].tolist(),l=s[1].tolist().map(((e,A)=>({label:n?n[e]:`LABEL_${e}`,score:i[A]})));a.push(l)}return Array.isArray(e)?a:a[0]}}class G extends p{constructor(e){super(e)}async _call(e,A,{hypothesis_template:t="This is a sound of {}."}={}){const r=!Array.isArray(e);r&&(e=[e]);const n=A.map((e=>t.replace("{}",e))),a=this.tokenizer(n,{padding:!0,truncation:!0}),s=this.processor.feature_extractor.config.sampling_rate,i=await d(e,s),l=[];for(const e of i){const t=await this.processor(e),r=await this.model({...a,...t}),n=(0,o.softmax)(r.logits_per_audio.data);l.push([...n].map(((e,t)=>({score:e,label:A[t]}))))}return r?l[0]:l}}class D extends p{constructor(e){super(e)}async _call(e,A={}){switch(this.model.config.model_type){case"whisper":return this._call_whisper(e,A);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(e,A);case"moonshine":return this._call_moonshine(e,A);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(e,A){A.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),A.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const t=!Array.isArray(e);t&&(e=[e]);const r=this.processor.feature_extractor.config.sampling_rate,n=await d(e,r),a=[];for(const e of n){const A=await this.processor(e),t=(await this.model(A)).logits[0],r=[];for(const e of t)r.push((0,o.max)(e.data)[1]);const n=this.tokenizer.decode(r);a.push({text:n})}return t?a[0]:a}async _call_whisper(e,A){const t=A.return_timestamps??!1,r=A.chunk_length_s??0,n=A.force_full_sequences??!1;let a=A.stride_length_s??null;const s={...A};"word"===t&&(s.return_token_timestamps=!0,s.return_timestamps=!1);const i=!Array.isArray(e);i&&(e=[e]);const l=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,c=this.processor.feature_extractor.config.hop_length,g=this.processor.feature_extractor.config.sampling_rate,u=await d(e,g),f=[];for(const e of u){let A=[];if(r>0){if(null===a)a=r/6;else if(r<=a)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const t=g*r,n=g*a,s=t-2*n;let i=0;for(;;){const r=i+t,a=e.subarray(i,r),o=await this.processor(a),l=0===i,c=r>=e.length;if(A.push({stride:[a.length,l?0:n,c?0:n],input_features:o.input_features,is_last:c}),c)break;i+=s}}else A=[{stride:[e.length,0,0],input_features:(await this.processor(e)).input_features,is_last:!0}];for(const e of A){s.num_frames=Math.floor(e.stride[0]/c);const A=await this.model.generate({inputs:e.input_features,...s});"word"===t?(e.tokens=A.sequences.tolist()[0],e.token_timestamps=A.token_timestamps.tolist()[0].map((e=>(0,o.round)(e,2)))):e.tokens=A[0].tolist(),e.stride=e.stride.map((e=>e/g))}const[i,u]=this.tokenizer._decode_asr(A,{time_precision:l,return_timestamps:t,force_full_sequences:n});f.push({text:i,...u})}return i?f[0]:f}async _call_moonshine(e,A){const t=!Array.isArray(e);t&&(e=[e]);const r=this.processor.feature_extractor.config.sampling_rate,n=await d(e,r),a=[];for(const e of n){const t=await this.processor(e),n=6*Math.floor(e.length/r),s=await this.model.generate({max_new_tokens:n,...A,...t}),i=this.processor.batch_decode(s,{skip_special_tokens:!0})[0];a.push({text:i})}return t?a[0]:a}}class Q extends p{constructor(e){super(e)}async _call(e,A={}){const t=Array.isArray(e),r=await u(e),{pixel_values:n}=await this.processor(r),a=[];for(const e of n){e.dims=[1,...e.dims];const t=await this.model.generate({inputs:e,...A}),r=this.tokenizer.batch_decode(t,{skip_special_tokens:!0}).map((e=>({generated_text:e.trim()})));a.push(r)}return t?a:a[0]}}class T extends p{constructor(e){super(e)}async _call(e,{top_k:A=5}={}){const t=await u(e),{pixel_values:r}=await this.processor(t),n=await this.model({pixel_values:r}),a=this.model.config.id2label,s=[];for(const e of n.logits){const t=await(0,c.topk)(new c.Tensor("float32",(0,o.softmax)(e.data),e.dims),A),r=t[0].tolist(),n=t[1].tolist().map(((e,A)=>({label:a?a[e]:`LABEL_${e}`,score:r[A]})));s.push(n)}return Array.isArray(e)?s:s[0]}}class P extends p{constructor(e){super(e),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(e,{threshold:A=.5,mask_threshold:t=.5,overlap_mask_area_threshold:r=.8,label_ids_to_fuse:n=null,target_sizes:a=null,subtask:s=null}={}){if(Array.isArray(e)&&1!==e.length)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const i=await u(e),o=i.map((e=>[e.height,e.width])),{pixel_values:l,pixel_mask:c}=await this.processor(i),d=await this.model({pixel_values:l,pixel_mask:c});let f=null;if(null!==s)f=this.subtasks_mapping[s];else for(let[e,A]of Object.entries(this.subtasks_mapping))if(A in this.processor.image_processor){f=this.processor.image_processor[A].bind(this.processor.image_processor),s=e;break}const p=this.model.config.id2label,h=[];if("panoptic"===s||"instance"===s){const e=f(d,A,t,r,n,a??o)[0],s=e.segmentation;for(const A of e.segments_info){const e=new Uint8ClampedArray(s.data.length);for(let t=0;t<s.data.length;++t)s.data[t]===A.id&&(e[t]=255);const t=new g.RawImage(e,s.dims[1],s.dims[0],1);h.push({score:A.score,label:p[A.label_id],mask:t})}}else{if("semantic"!==s)throw Error(`Subtask ${s} not supported.`);{const{segmentation:e,labels:A}=f(d,a??o)[0];for(const t of A){const A=new Uint8ClampedArray(e.data.length);for(let r=0;r<e.data.length;++r)e.data[r]===t&&(A[r]=255);const r=new g.RawImage(A,e.dims[1],e.dims[0],1);h.push({score:null,label:p[t],mask:r})}}}return h}}class z extends p{constructor(e){super(e)}async _call(e,A,{hypothesis_template:t="This is a photo of {}"}={}){const r=Array.isArray(e),n=await u(e),a=A.map((e=>t.replace("{}",e))),s=this.tokenizer(a,{padding:"siglip"!==this.model.config.model_type||"max_length",truncation:!0}),{pixel_values:i}=await this.processor(n),l=await this.model({...s,pixel_values:i}),c="siglip"===this.model.config.model_type?e=>e.sigmoid().data:e=>(0,o.softmax)(e.data),g=[];for(const e of l.logits_per_image){const t=[...c(e)].map(((e,t)=>({score:e,label:A[t]})));t.sort(((e,A)=>A.score-e.score)),g.push(t)}return r?g:g[0]}}class F extends p{constructor(e){super(e)}async _call(e,{threshold:A=.9,percentage:t=!1}={}){const r=Array.isArray(e);if(r&&1!==e.length)throw Error("Object detection pipeline currently only supports a batch size of 1.");const n=await u(e),a=t?null:n.map((e=>[e.height,e.width])),{pixel_values:s,pixel_mask:i}=await this.processor(n),o=await this.model({pixel_values:s,pixel_mask:i}),l=this.processor.image_processor.post_process_object_detection(o,A,a),c=this.model.config.id2label,g=l.map((e=>e.boxes.map(((A,r)=>({score:e.scores[r],label:c[e.classes[r]],box:f(A,!t)})))));return r?g:g[0]}}class S extends p{constructor(e){super(e)}async _call(e,A,{threshold:t=.1,top_k:r=null,percentage:n=!1}={}){const a=Array.isArray(e),s=await u(e),i=this.tokenizer(A,{padding:!0,truncation:!0}),o=await this.processor(s),l=[];for(let e=0;e<s.length;++e){const a=s[e],c=n?null:[[a.height,a.width]],g=o.pixel_values[e].unsqueeze_(0),u=await this.model({...i,pixel_values:g});let d;if("post_process_grounded_object_detection"in this.processor){const e=this.processor.post_process_grounded_object_detection(u,i.input_ids,{box_threshold:t,text_threshold:t,target_sizes:c})[0];d=e.boxes.map(((A,t)=>({score:e.scores[t],label:e.labels[t],box:f(A,!n)})))}else{const e=this.processor.image_processor.post_process_object_detection(u,t,c,!0)[0];d=e.boxes.map(((t,r)=>({score:e.scores[r],label:A[e.classes[r]],box:f(t,!n)})))}d.sort(((e,A)=>A.score-e.score)),null!==r&&(d=d.slice(0,r)),l.push(d)}return a?l:l[0]}}class N extends p{constructor(e){super(e)}async _call(e,A,t={}){const r=(await u(e))[0],{pixel_values:n}=await this.processor(r),a=`<s_docvqa><s_question>${A}</s_question><s_answer>`,s=this.tokenizer(a,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,i=await this.model.generate({inputs:n,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:s,...t}),o=this.tokenizer.batch_decode(i)[0].match(/<s_answer>(.*?)<\/s_answer>/);let l=null;return o&&o.length>=2&&(l=o[1].trim()),[{answer:l}]}}class O extends p{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(e){super(e),this.vocoder=e.vocoder??null}async _call(e,{speaker_embeddings:A=null}={}){return this.processor?this._call_text_to_spectrogram(e,{speaker_embeddings:A}):this._call_text_to_waveform(e)}async _call_text_to_waveform(e){const A=this.tokenizer(e,{padding:!0,truncation:!0}),{waveform:t}=await this.model(A),r=this.model.config.sampling_rate;return new l.RawAudio(t.data,r)}async _call_text_to_spectrogram(e,{speaker_embeddings:A}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await n.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),("string"==typeof A||A instanceof URL)&&(A=new Float32Array(await(await fetch(A)).arrayBuffer())),A instanceof Float32Array)A=new c.Tensor("float32",A,[1,A.length]);else if(!(A instanceof c.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:t}=this.tokenizer(e,{padding:!0,truncation:!0}),{waveform:r}=await this.model.generate_speech(t,A,{vocoder:this.vocoder}),a=this.processor.feature_extractor.config.sampling_rate;return new l.RawAudio(r.data,a)}}class L extends p{constructor(e){super(e)}async _call(e){const A=await u(e),t=await this.processor(A),r=await this.model(t),n=[];for(const e of r.reconstruction){const A=e.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");n.push(g.RawImage.fromTensor(A))}return n.length>1?n:n[0]}}class Y extends p{constructor(e){super(e)}async _call(e){const A=await u(e),t=await this.processor(A),{predicted_depth:r}=await this.model(t),n=[];for(let e=0;e<A.length;++e){const t=r[e],[a,s]=t.dims.slice(-2),[i,o]=A[e].size,l=(await(0,c.interpolate_4d)(t.view(1,1,a,s),{size:[o,i],mode:"bilinear"})).view(o,i),u=l.min().item(),d=l.max().item(),f=l.sub(u).div_(d-u).mul_(255).to("uint8").unsqueeze(0),p=g.RawImage.fromTensor(f);n.push({predicted_depth:l,depth:p})}return n.length>1?n:n[0]}}const H=Object.freeze({"text-classification":{tokenizer:r.AutoTokenizer,pipeline:h,model:n.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:r.AutoTokenizer,pipeline:m,model:n.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:r.AutoTokenizer,pipeline:C,model:n.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:r.AutoTokenizer,pipeline:b,model:n.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:r.AutoTokenizer,pipeline:w,model:n.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:r.AutoTokenizer,pipeline:k,model:n.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:r.AutoTokenizer,pipeline:I,model:n.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:r.AutoTokenizer,pipeline:B,model:n.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:r.AutoTokenizer,pipeline:v,model:n.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:M,model:n.AutoModelForAudioClassification,processor:a.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:r.AutoTokenizer,pipeline:G,model:n.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:r.AutoTokenizer,pipeline:D,model:[n.AutoModelForSpeechSeq2Seq,n.AutoModelForCTC],processor:a.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:r.AutoTokenizer,pipeline:O,model:[n.AutoModelForTextToWaveform,n.AutoModelForTextToSpectrogram],processor:[a.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:r.AutoTokenizer,pipeline:Q,model:n.AutoModelForVision2Seq,processor:a.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:T,model:n.AutoModelForImageClassification,processor:a.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:P,model:[n.AutoModelForImageSegmentation,n.AutoModelForSemanticSegmentation,n.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"zero-shot-image-classification":{tokenizer:r.AutoTokenizer,pipeline:z,model:n.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:F,model:n.AutoModelForObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:r.AutoTokenizer,pipeline:S,model:n.AutoModelForZeroShotObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:r.AutoTokenizer,pipeline:N,model:n.AutoModelForDocumentQuestionAnswering,processor:a.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:L,model:n.AutoModelForImageToImage,processor:a.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Y,model:n.AutoModelForDepthEstimation,processor:a.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:r.AutoTokenizer,pipeline:y,model:n.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:a.AutoProcessor,pipeline:E,model:[n.AutoModelForImageFeatureExtraction,n.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),R=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function W(e,A=null,{progress_callback:t=null,config:r=null,cache_dir:n=null,local_files_only:a=!1,revision:s="main",device:o=null,dtype:l=null,model_file_name:c=null,session_options:g={}}={}){e=R[e]??e;const u=H[e.split("_",1)[0]];if(!u)throw Error(`Unsupported pipeline: ${e}. Must be one of [${Object.keys(H)}]`);A||(A=u.default.model,console.log(`No model specified. Using default model: "${A}".`));const d={progress_callback:t,config:r,cache_dir:n,local_files_only:a,revision:s,device:o,dtype:l,model_file_name:c,session_options:g},f=new Map([["tokenizer",u.tokenizer],["model",u.model],["processor",u.processor]]),p=await async function(e,A,t){const r=Object.create(null),n=[];for(const[a,s]of e.entries()){if(!s)continue;let e;e=Array.isArray(s)?new Promise((async(e,r)=>{let n;for(const a of s){if(null===a)return void e(null);try{return void e(await a.from_pretrained(A,t))}catch(e){if(e.message?.includes("Unsupported model type"))n=e;else{if(!e.message?.includes("Could not locate file"))return void r(e);n=e}}}r(n)})):s.from_pretrained(A,t),r[a]=e,n.push(e)}await Promise.all(n);for(const[e,A]of Object.entries(r))r[e]=await A;return r}(f,A,d);p.task=e,(0,i.dispatchCallback)(t,{status:"ready",task:e,model:A});return new(0,u.pipeline)(p)}},"./src/tokenizers.js":(e,A,t)=>{t.r(A),t.d(A,{AlbertTokenizer:()=>ke,AutoTokenizer:()=>fA,BartTokenizer:()=>Se,BertTokenizer:()=>we,BlenderbotSmallTokenizer:()=>oA,BlenderbotTokenizer:()=>iA,BloomTokenizer:()=>Ye,CLIPTokenizer:()=>rA,CamembertTokenizer:()=>Qe,CodeGenTokenizer:()=>tA,CodeLlamaTokenizer:()=>We,CohereTokenizer:()=>uA,ConvBertTokenizer:()=>Me,DebertaTokenizer:()=>ve,DebertaV2Tokenizer:()=>ye,DistilBertTokenizer:()=>De,ElectraTokenizer:()=>Pe,EsmTokenizer:()=>Ze,FalconTokenizer:()=>Ue,GPT2Tokenizer:()=>Fe,GPTNeoXTokenizer:()=>Ke,GemmaTokenizer:()=>qe,Grok1Tokenizer:()=>Je,HerbertTokenizer:()=>Ee,LlamaTokenizer:()=>Re,M2M100Tokenizer:()=>eA,MBart50Tokenizer:()=>Oe,MBartTokenizer:()=>Ne,MPNetTokenizer:()=>je,MarianTokenizer:()=>aA,MgpstrTokenizer:()=>dA,MobileBertTokenizer:()=>xe,NllbTokenizer:()=>$e,NougatTokenizer:()=>cA,PreTrainedTokenizer:()=>Ie,Qwen2Tokenizer:()=>Xe,RoFormerTokenizer:()=>Ge,RobertaTokenizer:()=>Le,SiglipTokenizer:()=>nA,SpeechT5Tokenizer:()=>lA,SqueezeBertTokenizer:()=>Be,T5Tokenizer:()=>ze,TokenizerModel:()=>x,VitsTokenizer:()=>gA,Wav2Vec2CTCTokenizer:()=>sA,WhisperTokenizer:()=>AA,XLMRobertaTokenizer:()=>Ve,XLMTokenizer:()=>Te,is_chinese_char:()=>m});var r=t("./src/utils/generic.js"),n=t("./src/utils/core.js"),a=t("./src/utils/hub.js"),s=t("./src/utils/maths.js"),i=t("./src/utils/tensor.js"),o=t("./src/utils/data-structures.js"),l=t("./node_modules/@huggingface/jinja/dist/index.js"),c=t("./src/models/whisper/common_whisper.js");async function g(e,A){const t=await Promise.all([(0,a.getModelJSON)(e,"tokenizer.json",!0,A),(0,a.getModelJSON)(e,"tokenizer_config.json",!0,A)]);return null!==A.legacy&&(t[1].legacy=A.legacy),t}function u(e,A=!0){if(void 0!==e.Regex){let A=e.Regex.replace(/\\([#&~])/g,"$1");for(const[e,t]of w)A=A.replaceAll(e,t);return new RegExp(A,"gu")}if(void 0!==e.String){const t=(0,n.escapeRegExp)(e.String);return new RegExp(A?t:`(${t})`,"gu")}return console.warn("Unknown pattern type:",e),null}function d(e){return new Map(Object.entries(e))}function f(e){const A=e.dims;switch(A.length){case 1:return e.tolist();case 2:if(1!==A[0])throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return e.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${A.length}.`)}}function p(e){return e.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function h(e){return e.replace(/\p{M}/gu,"")}function m(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=63744&&e<=64255||e>=194560&&e<=195103}const C="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",b=new RegExp(`^[${C}]+$`,"gu"),I=".,!?…。,、।۔،",w=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],[` ?[^(\\s|[${I}])]+`,` ?[^\\s${I}]+`]]);class k{constructor(e){this.content=e.content,this.id=e.id,this.single_word=e.single_word??!1,this.lstrip=e.lstrip??!1,this.rstrip=e.rstrip??!1,this.special=e.special??!1,this.normalized=e.normalized??null}}class x extends r.Callable{constructor(e){super(),this.config=e,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(e,...A){switch(e.type){case"WordPiece":return new B(e);case"Unigram":return new v(e,...A);case"BPE":return new M(e);default:if(e.vocab)return Array.isArray(e.vocab)?new v(e,...A):"object"==typeof e.vocab&&e.continuing_subword_prefix&&e.unk_token?new B(e):new G(e,...A);throw new Error(`Unknown TokenizerModel type: ${e.type}`)}}_call(e){return e=this.encode(e),this.fuse_unk&&(e=function(e,A,t){const r=[];let n=0;for(;n<e.length;)if(r.push(e[n]),(A.get(e[n])??t)===t)for(;++n<e.length&&(A.get(e[n])??t)===t;)A.get(r.at(-1))!==t&&(r[r.length-1]+=e[n]);else++n;return r}(e,this.tokens_to_ids,this.unk_token_id)),e}encode(e){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(e){return e.map((e=>this.tokens_to_ids.get(e)??this.unk_token_id))}convert_ids_to_tokens(e){return e.map((e=>this.vocab[e]??this.unk_token))}}class B extends x{constructor(e){super(e),this.tokens_to_ids=d(e.vocab),this.unk_token_id=this.tokens_to_ids.get(e.unk_token),this.unk_token=e.unk_token,this.max_input_chars_per_word=e.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[e,A]of this.tokens_to_ids)this.vocab[A]=e}encode(e){const A=[];for(const t of e){const e=[...t];if(e.length>this.max_input_chars_per_word){A.push(this.unk_token);continue}let r=!1,n=0;const a=[];for(;n<e.length;){let A=e.length,t=null;for(;n<A;){let r=e.slice(n,A).join("");if(n>0&&(r=this.config.continuing_subword_prefix+r),this.tokens_to_ids.has(r)){t=r;break}--A}if(null===t){r=!0;break}a.push(t),n=A}r?A.push(this.unk_token):A.push(...a)}return A}}class v extends x{constructor(e,A){super(e);const t=e.vocab.length;this.vocab=new Array(t),this.scores=new Array(t);for(let A=0;A<t;++A)[this.vocab[A],this.scores[A]]=e.vocab[A];this.unk_token_id=e.unk_id,this.unk_token=this.vocab[e.unk_id],this.tokens_to_ids=new Map(this.vocab.map(((e,A)=>[e,A]))),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=A.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,s.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new o.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(e){const A=e.chars;let t=0;for(;t<A.length;){let r=!1;const a=A.slice(t).join(""),s=this.trie.commonPrefixSearch(a);for(const A of s){const a=this.tokens_to_ids.get(A),s=this.scores[a],i=(0,n.len)(A);e.insert(t,i,s,a),r||1!==i||(r=!0)}r||e.insert(t,1,this.unk_score,this.unk_token_id),t+=1}}tokenize(e){const A=new o.TokenLattice(e,this.bos_token_id,this.eos_token_id);return this.populateNodes(A),A.tokens()}encode(e){const A=[];for(const t of e){const e=this.tokenize(t);A.push(...e)}return A}}const y=(()=>{const e=[...Array.from({length:"~".charCodeAt(0)-"!".charCodeAt(0)+1},((e,A)=>A+"!".charCodeAt(0))),...Array.from({length:"¬".charCodeAt(0)-"¡".charCodeAt(0)+1},((e,A)=>A+"¡".charCodeAt(0))),...Array.from({length:"ÿ".charCodeAt(0)-"®".charCodeAt(0)+1},((e,A)=>A+"®".charCodeAt(0)))],A=e.slice();let t=0;for(let r=0;r<256;++r)e.includes(r)||(e.push(r),A.push(256+t),t+=1);const r=A.map((e=>String.fromCharCode(e)));return Object.fromEntries(e.map(((e,A)=>[e,r[A]])))})(),E=(0,n.reverseDictionary)(y);class M extends x{constructor(e){super(e),this.tokens_to_ids=d(e.vocab),this.unk_token_id=this.tokens_to_ids.get(e.unk_token),this.unk_token=e.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[e,A]of this.tokens_to_ids)this.vocab[A]=e;const A=Array.isArray(e.merges[0]);this.merges=A?e.merges:e.merges.map((e=>e.split(" ",2))),this.bpe_ranks=new Map(this.merges.map(((e,A)=>[JSON.stringify(e),A]))),this.end_of_word_suffix=e.end_of_word_suffix,this.continuing_subword_suffix=e.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.cache=new Map}bpe(e){if(0===e.length)return[];const A=this.cache.get(e);if(void 0!==A)return A;const t=Array.from(e);this.end_of_word_suffix&&(t[t.length-1]+=this.end_of_word_suffix);let r=[];if(t.length>1){const e=new o.PriorityQueue(((e,A)=>e.score<A.score));let A={token:t[0],bias:0,prev:null,next:null},n=A;for(let A=1;A<t.length;++A){const r={bias:A/t.length,token:t[A],prev:n,next:null};n.next=r,this._add_node(e,n),n=r}for(;!e.isEmpty();){const t=e.pop();if(t.deleted||!t.next||t.next.deleted)continue;if(t.deleted=!0,t.next.deleted=!0,t.prev){const e={...t.prev};t.prev.deleted=!0,t.prev=e,e.prev?e.prev.next=e:A=e}const r={token:t.token+t.next.token,bias:t.bias,prev:t.prev,next:t.next.next};r.prev?(r.prev.next=r,this._add_node(e,r.prev)):A=r,r.next&&(r.next.prev=r,this._add_node(e,r))}for(let e=A;null!==e;e=e.next)r.push(e.token)}else r=t;if(this.continuing_subword_suffix)for(let e=0;e<r.length-1;++e)r[e]+=this.continuing_subword_suffix;return this.cache.set(e,r),r}_add_node(e,A){const t=this.bpe_ranks.get(JSON.stringify([A.token,A.next.token]));void 0!==t&&(A.score=t+A.bias,e.push(A))}encode(e){const A=[];for(const t of e){if(this.ignore_merges&&this.tokens_to_ids.has(t)){A.push(t);continue}const e=this.bpe(t);for(const t of e)if(this.tokens_to_ids.has(t))A.push(t);else if(this.byte_fallback){const e=Array.from(this.text_encoder.encode(t)).map((e=>`<0x${e.toString(16).toUpperCase().padStart(2,"0")}>`));e.every((e=>this.tokens_to_ids.has(e)))?A.push(...e):A.push(this.unk_token)}else A.push(this.unk_token)}return A}}class G extends x{constructor(e,A){super(e),this.tokens_to_ids=d(A.target_lang?e.vocab[A.target_lang]:e.vocab),this.bos_token=A.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=A.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=A.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=A.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[e,A]of this.tokens_to_ids)this.vocab[A]=e}encode(e){return e}}class D extends r.Callable{constructor(e){super(),this.config=e}static fromConfig(e){if(null===e)return null;switch(e.type){case"BertNormalizer":return new Y(e);case"Precompiled":return new ue(e);case"Sequence":return new L(e);case"Replace":return new Q(e);case"NFC":return new T(e);case"NFKC":return new P(e);case"NFKD":return new z(e);case"Strip":return new F(e);case"StripAccents":return new S(e);case"Lowercase":return new N(e);case"Prepend":return new O(e);default:throw new Error(`Unknown Normalizer type: ${e.type}`)}}normalize(e){throw Error("normalize should be implemented in subclass.")}_call(e){return this.normalize(e)}}class Q extends D{normalize(e){const A=u(this.config.pattern);return null===A?e:e.replaceAll(A,this.config.content)}}class T extends D{normalize(e){return e=e.normalize("NFC")}}class P extends D{normalize(e){return e=e.normalize("NFKC")}}class z extends D{normalize(e){return e=e.normalize("NFKD")}}class F extends D{normalize(e){return this.config.strip_left&&this.config.strip_right?e=e.trim():(this.config.strip_left&&(e=e.trimStart()),this.config.strip_right&&(e=e.trimEnd())),e}}class S extends D{normalize(e){return e=h(e)}}class N extends D{normalize(e){return e=e.toLowerCase()}}class O extends D{normalize(e){return e=this.config.prepend+e}}class L extends D{constructor(e){super(e),this.normalizers=e.normalizers.map((e=>D.fromConfig(e)))}normalize(e){return this.normalizers.reduce(((e,A)=>A.normalize(e)),e)}}class Y extends D{_tokenize_chinese_chars(e){const A=[];for(let t=0;t<e.length;++t){const r=e[t];m(r.charCodeAt(0))?(A.push(" "),A.push(r),A.push(" ")):A.push(r)}return A.join("")}stripAccents(e){return e.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(e){switch(e){case"\t":case"\n":case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(e)}}_clean_text(e){const A=[];for(const t of e){const e=t.charCodeAt(0);0===e||65533===e||this._is_control(t)||(/^\s$/.test(t)?A.push(" "):A.push(t))}return A.join("")}normalize(e){return this.config.clean_text&&(e=this._clean_text(e)),this.config.handle_chinese_chars&&(e=this._tokenize_chinese_chars(e)),this.config.lowercase?(e=e.toLowerCase(),!1!==this.config.strip_accents&&(e=this.stripAccents(e))):this.config.strip_accents&&(e=this.stripAccents(e)),e}}class H extends r.Callable{static fromConfig(e){if(null===e)return null;switch(e.type){case"BertPreTokenizer":return new R(e);case"Sequence":return new de(e);case"Whitespace":return new fe(e);case"WhitespaceSplit":return new pe(e);case"Metaspace":return new ce(e);case"ByteLevel":return new W(e);case"Split":return new V(e);case"Punctuation":return new j(e);case"Digits":return new U(e);case"Replace":return new he(e);default:throw new Error(`Unknown PreTokenizer type: ${e.type}`)}}pre_tokenize_text(e,A){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(e,A){return(Array.isArray(e)?e.map((e=>this.pre_tokenize_text(e,A))):this.pre_tokenize_text(e,A)).flat()}_call(e,A){return this.pre_tokenize(e,A)}}class R extends H{constructor(e){super(),this.pattern=new RegExp(`[^\\s${C}]+|[${C}]`,"gu")}pre_tokenize_text(e,A){return e.trim().match(this.pattern)||[]}}class W extends H{constructor(e){super(),this.config=e,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=y,this.text_encoder=new TextEncoder}pre_tokenize_text(e,A){this.add_prefix_space&&!e.startsWith(" ")&&(e=" "+e);return(this.use_regex?e.match(this.pattern)||[]:[e]).map((e=>Array.from(this.text_encoder.encode(e),(e=>this.byte_encoder[e])).join("")))}}class V extends H{constructor(e){super(),this.config=e,this.pattern=u(this.config.pattern,this.config.invert)}pre_tokenize_text(e,A){return null===this.pattern?[]:this.config.invert?e.match(this.pattern)||[]:"removed"===this.config.behavior?.toLowerCase()?e.split(this.pattern).filter((e=>e)):function(e,A){const t=[];let r=0;for(const n of e.matchAll(A)){const A=n[0];r<n.index&&t.push(e.slice(r,n.index)),A.length>0&&t.push(A),r=n.index+A.length}return r<e.length&&t.push(e.slice(r)),t}(e,this.pattern)}}class j extends H{constructor(e){super(),this.config=e,this.pattern=new RegExp(`[^${C}]+|[${C}]+`,"gu")}pre_tokenize_text(e,A){return e.match(this.pattern)||[]}}class U extends H{constructor(e){super(),this.config=e;const A="[^\\d]+|\\d"+(this.config.individual_digits?"":"+");this.pattern=new RegExp(A,"gu")}pre_tokenize_text(e,A){return e.match(this.pattern)||[]}}class K extends r.Callable{constructor(e){super(),this.config=e}static fromConfig(e){if(null===e)return null;switch(e.type){case"TemplateProcessing":return new q(e);case"ByteLevel":return new J(e);case"RobertaProcessing":return new X(e);case"BertProcessing":return new Z(e);case"Sequence":return new _(e);default:throw new Error(`Unknown PostProcessor type: ${e.type}`)}}post_process(e,...A){throw Error("post_process should be implemented in subclass.")}_call(e,...A){return this.post_process(e,...A)}}class Z extends K{constructor(e){super(e),this.cls=e.cls[0],this.sep=e.sep[0]}post_process(e,A=null,{add_special_tokens:t=!0}={}){t&&(e=(0,n.mergeArrays)([this.cls],e,[this.sep]));let r=new Array(e.length).fill(0);if(null!==A){const a=t&&this instanceof X?[this.sep]:[],s=t?[this.sep]:[];e=(0,n.mergeArrays)(e,a,A,s),r=(0,n.mergeArrays)(r,new Array(A.length+a.length+s.length).fill(1))}return{tokens:e,token_type_ids:r}}}class X extends Z{}class q extends K{constructor(e){super(e),this.single=e.single,this.pair=e.pair}post_process(e,A=null,{add_special_tokens:t=!0}={}){const r=null===A?this.single:this.pair;let a=[],s=[];for(const i of r)"SpecialToken"in i?t&&(a.push(i.SpecialToken.id),s.push(i.SpecialToken.type_id)):"Sequence"in i&&("A"===i.Sequence.id?(a=(0,n.mergeArrays)(a,e),s=(0,n.mergeArrays)(s,new Array(e.length).fill(i.Sequence.type_id))):"B"===i.Sequence.id&&(a=(0,n.mergeArrays)(a,A),s=(0,n.mergeArrays)(s,new Array(A.length).fill(i.Sequence.type_id))));return{tokens:a,token_type_ids:s}}}class J extends K{post_process(e,A=null){return A&&(e=(0,n.mergeArrays)(e,A)),{tokens:e}}}class _ extends K{constructor(e){super(e),this.processors=e.processors.map((e=>K.fromConfig(e)))}post_process(e,A=null,t={}){let r;for(const n of this.processors)if(n instanceof J){if(e=n.post_process(e).tokens,A){A=n.post_process(A).tokens}}else{const a=n.post_process(e,A,t);e=a.tokens,r=a.token_type_ids}return{tokens:e,token_type_ids:r}}}class $ extends r.Callable{constructor(e){super(),this.config=e,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=e.trim_offsets}static fromConfig(e){if(null===e)return null;switch(e.type){case"WordPiece":return new ne(e);case"Metaspace":return new ge(e);case"ByteLevel":return new ae(e);case"Replace":return new ee(e);case"ByteFallback":return new Ae(e);case"Fuse":return new te(e);case"Strip":return new re(e);case"Sequence":return new ie(e);case"CTC":return new se(e);case"BPEDecoder":return new oe(e);default:throw new Error(`Unknown Decoder type: ${e.type}`)}}_call(e){return this.decode(e)}decode(e){return this.decode_chain(e).join("")}decode_chain(e){throw Error("`decode_chain` should be implemented in subclass.")}}class ee extends ${decode_chain(e){const A=u(this.config.pattern);return null===A?e:e.map((e=>e.replaceAll(A,this.config.content)))}}class Ae extends ${constructor(e){super(e),this.text_decoder=new TextDecoder}decode_chain(e){const A=[];let t=[];for(const r of e){let e=null;if(6===r.length&&r.startsWith("<0x")&&r.endsWith(">")){const A=parseInt(r.slice(3,5),16);isNaN(A)||(e=A)}if(null!==e)t.push(e);else{if(t.length>0){const e=this.text_decoder.decode(Uint8Array.from(t));A.push(e),t=[]}A.push(r)}}if(t.length>0){const e=this.text_decoder.decode(Uint8Array.from(t));A.push(e),t=[]}return A}}class te extends ${decode_chain(e){return[e.join("")]}}class re extends ${constructor(e){super(e),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(e){return e.map((e=>{let A=0;for(let t=0;t<this.start&&e[t]===this.content;++t)A=t+1;let t=e.length;for(let A=0;A<this.stop;++A){const r=e.length-A-1;if(e[r]!==this.content)break;t=r}return e.slice(A,t)}))}}class ne extends ${constructor(e){super(e),this.cleanup=e.cleanup}decode_chain(e){return e.map(((e,A)=>(0!==A&&(e=e.startsWith(this.config.prefix)?e.replace(this.config.prefix,""):" "+e),this.cleanup&&(e=p(e)),e)))}}class ae extends ${constructor(e){super(e),this.byte_decoder=E,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(e){const A=e.join(""),t=new Uint8Array([...A].map((e=>this.byte_decoder[e])));return this.text_decoder.decode(t)}decode_chain(e){const A=[];let t=[];for(const r of e)void 0!==this.added_tokens.find((e=>e.content===r))?(t.length>0&&(A.push(this.convert_tokens_to_string(t)),t=[]),A.push(r)):t.push(r);return t.length>0&&A.push(this.convert_tokens_to_string(t)),A}}class se extends ${constructor(e){super(e),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(e){if(0===e.length)return"";const A=[e[0]];for(let t=1;t<e.length;++t)e[t]!==A.at(-1)&&A.push(e[t]);let t=A.filter((e=>e!==this.pad_token)).join("");return this.cleanup&&(t=p(t).replaceAll(this.word_delimiter_token," ").trim()),t}decode_chain(e){return[this.convert_tokens_to_string(e)]}}class ie extends ${constructor(e){super(e),this.decoders=e.decoders.map((e=>$.fromConfig(e)))}decode_chain(e){return this.decoders.reduce(((e,A)=>A.decode_chain(e)),e)}}class oe extends ${constructor(e){super(e),this.suffix=this.config.suffix}decode_chain(e){return e.map(((A,t)=>A.replaceAll(this.suffix,t===e.length-1?"":" ")))}}class le extends ${decode_chain(e){let A="";for(let t=1;t<e.length;t+=2)A+=e[t];return[A]}}class ce extends H{constructor(e){super(),this.addPrefixSpace=e.add_prefix_space,this.replacement=e.replacement,this.strRep=e.str_rep||this.replacement,this.prepend_scheme=e.prepend_scheme??"always"}pre_tokenize_text(e,{section_index:A}={}){let t=e.replaceAll(" ",this.strRep);return this.addPrefixSpace&&!t.startsWith(this.replacement)&&("always"===this.prepend_scheme||"first"===this.prepend_scheme&&0===A)&&(t=this.strRep+t),[t]}}class ge extends ${constructor(e){super(e),this.addPrefixSpace=e.add_prefix_space,this.replacement=e.replacement}decode_chain(e){const A=[];for(let t=0;t<e.length;++t){let r=e[t].replaceAll(this.replacement," ");this.addPrefixSpace&&0==t&&r.startsWith(" ")&&(r=r.substring(1)),A.push(r)}return A}}class ue extends D{constructor(e){super(e),this.charsmap=e.precompiled_charsmap}normalize(e){if((e=(e=e.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,"")).replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," ")).includes("")){const A=e.split("");e=A.map((e=>e.normalize("NFKC"))).join("")}else e=e.normalize("NFKC");return e}}class de extends H{constructor(e){super(),this.tokenizers=e.pretokenizers.map((e=>H.fromConfig(e)))}pre_tokenize_text(e,A){return this.tokenizers.reduce(((e,t)=>t.pre_tokenize(e,A)),[e])}}class fe extends H{constructor(e){super()}pre_tokenize_text(e,A){return e.match(/\w+|[^\w\s]+/g)||[]}}class pe extends H{constructor(e){super()}pre_tokenize_text(e,A){return function(e){return e.match(/\S+/g)||[]}(e)}}class he extends H{constructor(e){super(),this.config=e,this.pattern=u(this.config.pattern),this.content=this.config.content}pre_tokenize_text(e,A){return null===this.pattern?[e]:[e.replaceAll(this.pattern,this.config.content)]}}const me=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Ce(e,A,t,r){for(const a of Object.keys(e)){const s=A-e[a].length,i=t(a),o=new Array(s).fill(i);e[a]="right"===r?(0,n.mergeArrays)(e[a],o):(0,n.mergeArrays)(o,e[a])}}function be(e,A){for(const t of Object.keys(e))e[t].length=A}class Ie extends r.Callable{return_token_type_ids=!1;padding_side="right";constructor(e,A){super(),this._tokenizer_config=A,this.normalizer=D.fromConfig(e.normalizer),this.pre_tokenizer=H.fromConfig(e.pre_tokenizer),this.model=x.fromConfig(e.model,A),this.post_processor=K.fromConfig(e.post_processor),this.decoder=$.fromConfig(e.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const A of e.added_tokens){const e=new k(A);this.added_tokens.push(e),this.model.tokens_to_ids.set(e.content,e.id),this.model.vocab[e.id]=e.content,e.special&&(this.special_tokens.push(e.content),this.all_special_ids.push(e.id))}if(this.additional_special_tokens=A.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_regex=this.added_tokens.length>0?new RegExp(this.added_tokens.slice().sort(((e,A)=>A.content.length-e.content.length)).map((e=>`${e.lstrip?"\\s*":""}(${(0,n.escapeRegExp)(e.content)})${e.rstrip?"\\s*":""}`)).join("|")):null,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=A.model_max_length,this.remove_space=A.remove_space,this.clean_up_tokenization_spaces=A.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=A.do_lowercase_and_remove_accent??!1,A.padding_side&&(this.padding_side=A.padding_side),this.legacy=!1,this.chat_template=A.chat_template??null,Array.isArray(this.chat_template)){const e=Object.create(null);for(const{name:A,template:t}of this.chat_template){if("string"!=typeof A||"string"!=typeof t)throw new Error('Chat template must be a list of objects with "name" and "template" properties');e[A]=t}this.chat_template=e}this._compiled_template_cache=new Map}getToken(...e){for(const A of e){const e=this._tokenizer_config[A];if(e){if("object"==typeof e){if("AddedToken"===e.__type)return e.content;throw Error(`Unknown token: ${e}`)}return e}}return null}static async from_pretrained(e,{progress_callback:A=null,config:t=null,cache_dir:r=null,local_files_only:n=!1,revision:a="main",legacy:s=null}={}){return new this(...await g(e,{progress_callback:A,config:t,cache_dir:r,local_files_only:n,revision:a,legacy:s}))}_call(e,{text_pair:A=null,add_special_tokens:t=!0,padding:r=!1,truncation:n=null,max_length:a=null,return_tensor:o=!0,return_token_type_ids:l=null}={}){const c=Array.isArray(e);let g;if(c){if(0===e.length)throw Error("text array must be non-empty");if(null!==A){if(!Array.isArray(A))throw Error("text_pair must also be an array");if(e.length!==A.length)throw Error("text and text_pair must have the same length");g=e.map(((e,r)=>this._encode_plus(e,{text_pair:A[r],add_special_tokens:t,return_token_type_ids:l})))}else g=e.map((e=>this._encode_plus(e,{add_special_tokens:t,return_token_type_ids:l})))}else{if(null==e)throw Error("text may not be null or undefined");if(Array.isArray(A))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");g=[this._encode_plus(e,{text_pair:A,add_special_tokens:t,return_token_type_ids:l})]}if(null===a?a="max_length"===r?this.model_max_length:(0,s.max)(g.map((e=>e.input_ids.length)))[0]:n||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."),a=Math.min(a,this.model_max_length??1/0),r||n)for(let e=0;e<g.length;++e)g[e].input_ids.length!==a&&(g[e].input_ids.length>a?n&&be(g[e],a):r&&Ce(g[e],a,(e=>"input_ids"===e?this.pad_token_id:0),this.padding_side));const u={};if(o){if((!r||!n)&&g.some((e=>{for(const A of Object.keys(e))if(e[A].length!==g[0][A]?.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 e=[g.length,g[0].input_ids.length];for(const A of Object.keys(g[0]))u[A]=new i.Tensor("int64",BigInt64Array.from(g.flatMap((e=>e[A])).map(BigInt)),e)}else{for(const e of Object.keys(g[0]))u[e]=g.map((A=>A[e]));if(!c)for(const e of Object.keys(u))u[e]=u[e][0]}return u}_encode_text(e){if(null===e)return null;const A=this.added_tokens_regex?e.split(this.added_tokens_regex).filter((e=>e)):[e],t=A.map(((e,A)=>{const t=this.added_tokens.find((A=>A.content===e));if(void 0!==t)return e;{if(!0===this.remove_space&&(e=e.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(e=function(e){return h(e.toLowerCase())}(e)),null!==this.normalizer&&(e=this.normalizer(e)),0===e.length)return[];const t=null!==this.pre_tokenizer?this.pre_tokenizer(e,{section_index:A}):[e];return this.model(t)}})).flat();return t}_encode_plus(e,{text_pair:A=null,add_special_tokens:t=!0,return_token_type_ids:r=null}={}){const{tokens:n,token_type_ids:a}=this._tokenize_helper(e,{pair:A,add_special_tokens:t}),s=this.model.convert_tokens_to_ids(n),i={input_ids:s,attention_mask:new Array(s.length).fill(1)};return(r??this.return_token_type_ids)&&a&&(i.token_type_ids=a),i}_tokenize_helper(e,{pair:A=null,add_special_tokens:t=!1}={}){const r=this._encode_text(e),a=this._encode_text(A);return this.post_processor?this.post_processor(r,a,{add_special_tokens:t}):{tokens:(0,n.mergeArrays)(r??[],a??[])}}tokenize(e,{pair:A=null,add_special_tokens:t=!1}={}){return this._tokenize_helper(e,{pair:A,add_special_tokens:t}).tokens}encode(e,{text_pair:A=null,add_special_tokens:t=!0,return_token_type_ids:r=null}={}){return this._encode_plus(e,{text_pair:A,add_special_tokens:t,return_token_type_ids:r}).input_ids}batch_decode(e,A={}){return e instanceof i.Tensor&&(e=e.tolist()),e.map((e=>this.decode(e,A)))}decode(e,A={}){if(e instanceof i.Tensor&&(e=f(e)),!Array.isArray(e)||0===e.length||!(0,n.isIntegralNumber)(e[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(e,A)}decode_single(e,{skip_special_tokens:A=!1,clean_up_tokenization_spaces:t=null}){let r=this.model.convert_ids_to_tokens(e);A&&(r=r.filter((e=>!this.special_tokens.includes(e))));let n=this.decoder?this.decoder(r):r.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(n=n.replaceAll(this.decoder.end_of_word_suffix," "),A&&(n=n.trim())),(t??this.clean_up_tokenization_spaces)&&(n=p(n)),n}get_chat_template({chat_template:e=null,tools:A=null}={}){if(this.chat_template&&"object"==typeof this.chat_template){const t=this.chat_template;if(null!==e&&Object.hasOwn(t,e))e=t[e];else if(null===e)if(null!==A&&"tool_use"in t)e=t.tool_use;else{if(!("default"in t))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(t).sort()}.`);e=t.default}}else if(null===e){if(!this.chat_template)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");e=this.chat_template}return e}apply_chat_template(e,{tools:A=null,documents:t=null,chat_template:r=null,add_generation_prompt:n=!1,tokenize:a=!0,padding:s=!1,truncation:i=!1,max_length:o=null,return_tensor:c=!0,return_dict:g=!1,tokenizer_kwargs:u={},...d}={}){if("string"!=typeof(r=this.get_chat_template({chat_template:r,tools:A})))throw Error("chat_template must be a string, but got "+typeof r);let f=this._compiled_template_cache.get(r);void 0===f&&(f=new l.Template(r),this._compiled_template_cache.set(r,f));const p=Object.create(null);for(const e of me){const A=this.getToken(e);A&&(p[e]=A)}const h=f.render({messages:e,add_generation_prompt:n,tools:A,documents:t,...p,...d});if(a){const e=this._call(h,{add_special_tokens:!1,padding:s,truncation:i,max_length:o,return_tensor:c,...u});return g?e:e.input_ids}return h}}class we extends Ie{return_token_type_ids=!0}class ke extends Ie{return_token_type_ids=!0}class xe extends Ie{return_token_type_ids=!0}class Be extends Ie{return_token_type_ids=!0}class ve extends Ie{return_token_type_ids=!0}class ye extends Ie{return_token_type_ids=!0}class Ee extends Ie{return_token_type_ids=!0}class Me extends Ie{return_token_type_ids=!0}class Ge extends Ie{return_token_type_ids=!0}class De extends Ie{}class Qe extends Ie{}class Te extends Ie{return_token_type_ids=!0;constructor(e,A){super(e,A),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class Pe extends Ie{return_token_type_ids=!0}class ze extends Ie{}class Fe extends Ie{}class Se extends Ie{}class Ne extends Ie{constructor(e,A){super(e,A),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter((e=>this.languageRegex.test(e))),this.lang_to_token=e=>e}_build_translation_inputs(e,A,t){return _e(this,e,A,t)}}class Oe extends Ne{}class Le extends Ie{}class Ye extends Ie{}const He="▁";class Re extends Ie{padding_side="left";constructor(e,A){super(e,A),this.legacy=A.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new ce({replacement:He,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(e){if(null===e)return null;if(this.legacy||0===e.length)return super._encode_text(e);let A=super._encode_text(He+e.replaceAll(He," "));return A.length>1&&A[0]===He&&this.special_tokens.includes(A[1])&&(A=A.slice(1)),A}}class We extends Ie{}class Ve extends Ie{}class je extends Ie{}class Ue extends Ie{}class Ke extends Ie{}class Ze extends Ie{}class Xe extends Ie{}class qe extends Ie{}class Je extends Ie{}function _e(e,A,t,r){if(!("language_codes"in e)||!Array.isArray(e.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in e&&e.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in e)||"function"!=typeof e.lang_to_token)throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const n=r.src_lang,a=r.tgt_lang;if(!e.language_codes.includes(a))throw new Error(`Target language code "${a}" is not valid. Must be one of: {${e.language_codes.join(", ")}}`);if(void 0!==n){if(!e.language_codes.includes(n))throw new Error(`Source language code "${n}" is not valid. Must be one of: {${e.language_codes.join(", ")}}`);for(const A of e.post_processor.config.single)if("SpecialToken"in A&&e.languageRegex.test(A.SpecialToken.id)){A.SpecialToken.id=e.lang_to_token(n);break}}return r.forced_bos_token_id=e.model.convert_tokens_to_ids([e.lang_to_token(a)])[0],e._call(A,t)}class $e extends Ie{constructor(e,A){super(e,A),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter((e=>this.languageRegex.test(e))),this.lang_to_token=e=>e}_build_translation_inputs(e,A,t){return _e(this,e,A,t)}}class eA extends Ie{constructor(e,A){super(e,A),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter((e=>this.languageRegex.test(e))).map((e=>e.slice(2,-2))),this.lang_to_token=e=>`__${e}__`}_build_translation_inputs(e,A,t){return _e(this,e,A,t)}}class AA extends Ie{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(e,{return_timestamps:A=!1,return_language:t=!1,time_precision:r=null,force_full_sequences:n=!0}={}){if(null===r)throw Error("Must specify time_precision");let a=null;const i="word"===A;function o(){return{language:a,timestamp:[null,null],text:""}}const l=[];let g=o(),u=0;const d=this.timestamp_begin,f=d+1500;let p=[],h=[],m=!1,C=null;const I=new Set(this.all_special_ids);for(const t of e){const e=t.tokens,n=i?t.token_timestamps:null;let w=null,k=d;if("stride"in t){const[A,n,a]=t.stride;if(u-=n,C=A-a,n&&(k=n/r+d),a)for(let A=e.length-1;A>=0;--A){const t=Number(e[A]);if(t>=d){if(null!==w&&(t-d)*r<C)break;w=t}}}let x=[],B=[];for(let t=0;t<e.length;++t){const C=Number(e[t]);if(I.has(C)){const e=this.decode([C]),t=c.WHISPER_LANGUAGE_MAPPING.get(e.slice(2,-2));if(void 0!==t){if(null!==a&&t!==a&&!A){p.push(x);const e=this.findLongestCommonSequence(p)[0],A=this.decode(e);g.text=A,l.push(g),p=[],x=[],g=o()}a=g.language=t}}else if(C>=d&&C<=f){const e=(C-d)*r+u,A=(0,s.round)(e,2);if(null!==w&&C>=w)m=!0;else if(m||p.length>0&&C<k)m=!1;else if(null===g.timestamp[0])g.timestamp[0]=A;else if(A===g.timestamp[0]);else{g.timestamp[1]=A,p.push(x),i&&h.push(B);const[e,t]=this.findLongestCommonSequence(p,h),r=this.decode(e);g.text=r,i&&(g.words=this.collateWordTimestamps(e,t,a)),l.push(g),p=[],x=[],h=[],B=[],g=o()}}else if(x.push(C),i){let e,A=(0,s.round)(n[t]+u,2);if(t+1<n.length){e=(0,s.round)(n[t+1]+u,2);const a=this.decode([C]);b.test(a)&&(e=(0,s.round)(Math.min(A+r,e),2))}else e=null;B.push([A,e])}}if("stride"in t){const[e,A,r]=t.stride;u+=e-r}x.length>0?(p.push(x),i&&h.push(B)):p.every((e=>0===e.length))&&(g=o(),p=[],x=[],h=[],B=[])}if(p.length>0){if(n&&A)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[e,t]=this.findLongestCommonSequence(p,h),r=this.decode(e);g.text=r,i&&(g.words=this.collateWordTimestamps(e,t,a)),l.push(g)}let w=Object.create(null);const k=l.map((e=>e.text)).join("");if(A||t){for(let e=0;e<l.length;++e){const r=l[e];A||delete r.timestamp,t||delete r.language}if(i){const e=[];for(const A of l)for(const t of A.words)e.push(t);w={chunks:e}}else w={chunks:l}}return[k,w]}findLongestCommonSequence(e,A=null){let t=e[0],r=t.length,n=[];const a=Array.isArray(A)&&A.length>0;let s=a?[]:null,i=a?A[0]:null;for(let o=1;o<e.length;++o){const l=e[o];let c=0,g=[r,r,0,0];const u=l.length;for(let e=1;e<r+u;++e){const n=Math.max(0,r-e),s=Math.min(r,r+u-e),d=t.slice(n,s),f=Math.max(0,e-r),p=Math.min(u,e),h=l.slice(f,p);if(d.length!==h.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let m;m=a?d.filter(((e,t)=>e===h[t]&&i[n+t]<=A[o][f+t])).length:d.filter(((e,A)=>e===h[A])).length;const C=m/e+e/1e4;m>1&&C>c&&(c=C,g=[n,s,f,p])}const[d,f,p,h]=g,m=Math.floor((f+d)/2),C=Math.floor((h+p)/2);n.push(...t.slice(0,m)),t=l.slice(C),r=t.length,a&&(s.push(...i.slice(0,m)),i=A[o].slice(C))}return n.push(...t),a?(s.push(...i),[n,s]):[n,[]]}collateWordTimestamps(e,A,t){const[r,n,a]=this.combineTokensIntoWords(e,t),s=[];for(let e=0;e<r.length;++e){const t=a[e];s.push({text:r[e],timestamp:[A[t.at(0)][0],A[t.at(-1)][1]]})}return s}combineTokensIntoWords(e,A,t="\"'“¡¿([{-",r="\"'.。,!?::”)]}、"){let n,a,s;return["chinese","japanese","thai","lao","myanmar"].includes(A=A??"english")?[n,a,s]=this.splitTokensOnUnicode(e):[n,a,s]=this.splitTokensOnSpaces(e),this.mergePunctuations(n,a,s,t,r)}decode(e,A){let t;return A?.decode_with_timestamps?(e instanceof i.Tensor&&(e=f(e)),t=this.decodeWithTimestamps(e,A)):t=super.decode(e,A),t}decodeWithTimestamps(e,A){const t=A?.time_precision??.02,r=Array.from(this.all_special_ids).at(-1)+1;let n=[[]];for(let A of e)if(A=Number(A),A>=r){const e=((A-r)*t).toFixed(2);n.push(`<|${e}|>`),n.push([])}else n[n.length-1].push(A);return n=n.map((e=>"string"==typeof e?e:super.decode(e,A))),n.join("")}splitTokensOnUnicode(e){const A=this.decode(e,{decode_with_timestamps:!0}),t=[],r=[],n=[];let a=[],s=[],i=0;for(let o=0;o<e.length;++o){const l=e[o];a.push(l),s.push(o);const c=this.decode(a,{decode_with_timestamps:!0});c.includes("<22>")&&"<22>"!==A[i+c.indexOf("<22>")]||(t.push(c),r.push(a),n.push(s),a=[],s=[],i+=c.length)}return[t,r,n]}splitTokensOnSpaces(e){const[A,t,r]=this.splitTokensOnUnicode(e),n=[],a=[],s=[],i=new RegExp(`^[${C}]$`,"gu");for(let e=0;e<A.length;++e){const o=A[e],l=t[e],c=r[e],g=l[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),u=o.startsWith(" "),d=o.trim(),f=i.test(d);if(g||u||f||0===n.length)n.push(o),a.push(l),s.push(c);else{const e=n.length-1;n[e]+=o,a[e].push(...l),s[e].push(...c)}}return[n,a,s]}mergePunctuations(e,A,t,r,a){const s=structuredClone(e),i=structuredClone(A),o=structuredClone(t);let l=s.length-2,c=s.length-1;for(;l>=0;)s[l].startsWith(" ")&&r.includes(s[l].trim())?(s[c]=s[l]+s[c],i[c]=(0,n.mergeArrays)(i[l],i[c]),o[c]=(0,n.mergeArrays)(o[l],o[c]),s[l]="",i[l]=[],o[l]=[]):c=l,--l;for(l=0,c=1;c<s.length;)!s[l].endsWith(" ")&&a.includes(s[c])?(s[l]+=s[c],i[l]=(0,n.mergeArrays)(i[l],i[c]),o[l]=(0,n.mergeArrays)(o[l],o[c]),s[c]="",i[c]=[],o[c]=[]):l=c,++c;return[s.filter((e=>e)),i.filter((e=>e.length>0)),o.filter((e=>e.length>0))]}}class tA extends Ie{}class rA extends Ie{}class nA extends Ie{}class aA extends Ie{constructor(e,A){super(e,A),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter((e=>this.languageRegex.test(e))),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(e){if(null===e)return null;const[A,...t]=e.trim().split(this.languageRegex);if(0===t.length)return super._encode_text(A);if(2===t.length){const[e,A]=t;return this.supported_language_codes.includes(e)||console.warn(`Unsupported language code "${e}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,n.mergeArrays)([e],super._encode_text(A))}}}class sA extends Ie{}class iA extends Ie{}class oA extends Ie{}class lA extends Ie{}class cA extends Ie{}class gA extends Ie{constructor(e,A){super(e,A),this.decoder=new le({})}}class uA extends Ie{}class dA extends Ie{}class fA{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:ze,DistilBertTokenizer:De,CamembertTokenizer:Qe,DebertaTokenizer:ve,DebertaV2Tokenizer:ye,BertTokenizer:we,HerbertTokenizer:Ee,ConvBertTokenizer:Me,RoFormerTokenizer:Ge,XLMTokenizer:Te,ElectraTokenizer:Pe,MobileBertTokenizer:xe,SqueezeBertTokenizer:Be,AlbertTokenizer:ke,GPT2Tokenizer:Fe,BartTokenizer:Se,MBartTokenizer:Ne,MBart50Tokenizer:Oe,RobertaTokenizer:Le,WhisperTokenizer:AA,CodeGenTokenizer:tA,CLIPTokenizer:rA,SiglipTokenizer:nA,MarianTokenizer:aA,BloomTokenizer:Ye,NllbTokenizer:$e,M2M100Tokenizer:eA,LlamaTokenizer:Re,CodeLlamaTokenizer:We,XLMRobertaTokenizer:Ve,MPNetTokenizer:je,FalconTokenizer:Ue,GPTNeoXTokenizer:Ke,EsmTokenizer:Ze,Wav2Vec2CTCTokenizer:sA,BlenderbotTokenizer:iA,BlenderbotSmallTokenizer:oA,SpeechT5Tokenizer:lA,NougatTokenizer:cA,VitsTokenizer:gA,Qwen2Tokenizer:Xe,GemmaTokenizer:qe,Grok1Tokenizer:Je,CohereTokenizer:uA,MgpstrTokenizer:dA,PreTrainedTokenizer:Ie};static async from_pretrained(e,{progress_callback:A=null,config:t=null,cache_dir:r=null,local_files_only:n=!1,revision:a="main",legacy:s=null}={}){const[i,o]=await g(e,{progress_callback:A,config:t,cache_dir:r,local_files_only:n,revision:a,legacy:s}),l=o.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer";let c=this.TOKENIZER_CLASS_MAPPING[l];return c||(console.warn(`Unknown tokenizer class "${l}", attempting to construct from base class.`),c=Ie),new c(i,o)}}},"./src/utils/audio.js":(e,A,t)=>{t.r(A),t.d(A,{RawAudio:()=>k,hamming:()=>u,hanning:()=>g,mel_filter_bank:()=>m,read_audio:()=>l,spectrogram:()=>b,window_function:()=>I});var r=t("./src/utils/hub.js"),n=t("./src/utils/maths.js"),a=t("./src/utils/core.js"),s=t("./src/env.js"),i=t("?7a2c"),o=t("./src/utils/tensor.js");async function l(e,A){if("undefined"==typeof AudioContext)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 t=await(await(0,r.getFile)(e)).arrayBuffer(),n=new AudioContext({sampleRate:A});void 0===A&&console.warn(`No sampling rate provided, using default of ${n.sampleRate}Hz.`);const a=await n.decodeAudioData(t);let s;if(2===a.numberOfChannels){const e=Math.sqrt(2),A=a.getChannelData(0),t=a.getChannelData(1);s=new Float32Array(A.length);for(let r=0;r<a.length;++r)s[r]=e*(A[r]+t[r])/2}else s=a.getChannelData(0);return s}function c(e,A){if(e<1)return new Float64Array;if(1===e)return new Float64Array([1]);const t=1-A,r=2*Math.PI/(e-1),n=new Float64Array(e);for(let a=0;a<e;++a)n[a]=A-t*Math.cos(a*r);return n}function g(e){return c(e,.5)}function u(e){return c(e,.54)}const d={htk:e=>2595*Math.log10(1+e/700),kaldi:e=>1127*Math.log(1+e/700),slaney:(e,A=1e3,t=15,r=27/Math.log(6.4))=>e>=A?t+Math.log(e/A)*r:3*e/200};function f(e,A="htk"){const t=d[A];if(!t)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return"number"==typeof e?t(e):e.map((e=>t(e)))}const p={htk:e=>700*(10**(e/2595)-1),kaldi:e=>700*(Math.exp(e/1127)-1),slaney:(e,A=1e3,t=15,r=Math.log(6.4)/27)=>e>=t?A*Math.exp(r*(e-t)):200*e/3};function h(e,A,t){const r=(A-e)/(t-1);return Float64Array.from({length:t},((A,t)=>e+r*t))}function m(e,A,t,r,n,a=null,s="htk",i=!1){if(null!==a&&"slaney"!==a)throw new Error('norm must be one of null or "slaney"');const o=h(f(t,s),f(r,s),A+2);let l,c=function(e,A="htk"){const t=p[A];if(!t)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return"number"==typeof e?t(e):e.map((e=>t(e)))}(o,s);if(i){const A=n/(2*e);l=f(Float64Array.from({length:e},((e,t)=>t*A)),s),c=o}else l=h(0,Math.floor(n/2),e);const g=function(e,A){const t=Float64Array.from({length:A.length-1},((e,t)=>A[t+1]-A[t])),r=Array.from({length:e.length},(()=>new Array(A.length)));for(let t=0;t<e.length;++t){const n=r[t];for(let r=0;r<A.length;++r)n[r]=A[r]-e[t]}const n=A.length-2,a=Array.from({length:n},(()=>new Array(e.length)));for(let A=0;A<e.length;++A){const e=r[A];for(let r=0;r<n;++r){const n=-e[r]/t[r],s=e[r+2]/t[r+1];a[r][A]=Math.max(0,Math.min(n,s))}}return a}(l,c);if(null!==a&&"slaney"===a)for(let t=0;t<A;++t){const A=g[t],r=2/(c[t+2]-c[t]);for(let t=0;t<e;++t)A[t]*=r}return g}function C(e,A,t,r,a){if(t<=0)throw new Error("reference must be greater than zero");if(r<=0)throw new Error("min_value must be greater than zero");t=Math.max(r,t);const s=Math.log10(t);for(let t=0;t<e.length;++t)e[t]=A*Math.log10(Math.max(r,e[t])-s);if(null!==a){if(a<=0)throw new Error("db_range must be greater than zero");const A=(0,n.max)(e)[0]-a;for(let t=0;t<e.length;++t)e[t]=Math.max(e[t],A)}return e}async function b(e,A,t,r,{fft_length:s=null,power:i=1,center:l=!0,pad_mode:c="reflect",onesided:g=!0,preemphasis:u=null,mel_filters:d=null,mel_floor:f=1e-10,log_mel:p=null,reference:h=1,min_value:m=1e-10,db_range:b=null,remove_dc_offset:I=null,min_num_frames:w=null,max_num_frames:k=null,do_pad:x=!0,transpose:B=!1}={}){const v=A.length;if(null===s&&(s=t),t>s)throw Error(`frame_length (${t}) may not be larger than fft_length (${s})`);if(v!==t)throw new Error(`Length of the window (${v}) must equal frame_length (${t})`);if(r<=0)throw new Error("hop_length must be greater than zero");if(null===i&&null!==d)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(l){if("reflect"!==c)throw new Error(`pad_mode="${c}" not implemented yet.`);const A=Math.floor((s-1)/2)+1;e=function(e,A,t){const r=new e.constructor(e.length+A+t),n=e.length-1;for(let t=0;t<e.length;++t)r[A+t]=e[t];for(let t=1;t<=A;++t)r[A-t]=e[(0,a.calculateReflectOffset)(t,n)];for(let s=1;s<=t;++s)r[n+A+s]=e[(0,a.calculateReflectOffset)(n-s,n)];return r}(e,A,A)}let y=Math.floor(1+Math.floor((e.length-t)/r));null!==w&&y<w&&(y=w);const E=g?Math.floor(s/2)+1:s;let M=y,G=y;null!==k&&(k>y?x&&(G=k):G=M=k);const D=new n.FFT(s),Q=new Float64Array(s),T=new Float64Array(D.outputBufferSize),P=new Float32Array(E*G);for(let n=0;n<M;++n){const a=n*r,s=Math.min(e.length-a,t);s!==t&&Q.fill(0,0,t);for(let A=0;A<s;++A)Q[A]=e[a+A];if(I){let e=0;for(let A=0;A<s;++A)e+=Q[A];const A=e/s;for(let e=0;e<s;++e)Q[e]-=A}if(null!==u){for(let e=s-1;e>=1;--e)Q[e]-=u*Q[e-1];Q[0]*=1-u}for(let e=0;e<A.length;++e)Q[e]*=A[e];D.realTransform(T,Q);for(let e=0;e<E;++e){const A=e<<1;P[e*G+n]=T[A]**2+T[A+1]**2}}if(null!==i&&2!==i){const e=2/i;for(let A=0;A<P.length;++A)P[A]**=e}const z=d.length;let F=await(0,o.matmul)(new o.Tensor("float32",d.flat(),[z,E]),new o.Tensor("float32",P,[E,G]));B&&(F=F.transpose(1,0));const S=F.data;for(let e=0;e<S.length;++e)S[e]=Math.max(f,S[e]);if(null!==i&&null!==p){const e=Math.min(S.length,M*z);switch(p){case"log":for(let A=0;A<e;++A)S[A]=Math.log(S[A]);break;case"log10":for(let A=0;A<e;++A)S[A]=Math.log10(S[A]);break;case"dB":if(1===i)!function(e,A=1,t=1e-5,r=null){C(e,20,A,t,r)}(S,h,m,b);else{if(2!==i)throw new Error(`Cannot use log_mel option '${p}' with power ${i}`);!function(e,A=1,t=1e-10,r=null){C(e,10,A,t,r)}(S,h,m,b)}break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${p}'`)}}return F}function I(e,A,{periodic:t=!0,frame_length:r=null,center:n=!0}={}){const a=t?e+1:e;let s;switch(A){case"boxcar":s=new Float64Array(a).fill(1);break;case"hann":case"hann_window":s=g(a);break;case"hamming":s=u(a);break;case"povey":s=g(a).map((e=>Math.pow(e,.85)));break;default:throw new Error(`Unknown window type ${A}.`)}if(t&&(s=s.subarray(0,e)),null===r)return s;if(e>r)throw new Error(`Length of the window (${e}) may not be larger than frame_length (${r})`);return s}function w(e,A,t){for(let r=0;r<t.length;++r)e.setUint8(A+r,t.charCodeAt(r))}class k{constructor(e,A){this.audio=e,this.sampling_rate=A}toWav(){return function(e,A){let t=44;const r=new ArrayBuffer(t+4*e.length),n=new DataView(r);w(n,0,"RIFF"),n.setUint32(4,36+4*e.length,!0),w(n,8,"WAVE"),w(n,12,"fmt "),n.setUint32(16,16,!0),n.setUint16(20,3,!0),n.setUint16(22,1,!0),n.setUint32(24,A,!0),n.setUint32(28,4*A,!0),n.setUint16(32,4,!0),n.setUint16(34,32,!0),w(n,36,"data"),n.setUint32(40,4*e.length,!0);for(let A=0;A<e.length;++A,t+=4)n.setFloat32(t,e[A],!0);return r}(this.audio,this.sampling_rate)}toBlob(){const e=this.toWav();return new Blob([e],{type:"audio/wav"})}async save(e){let A;if(s.apis.IS_BROWSER_ENV){if(s.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");A=a.saveBlob}else{if(!s.apis.IS_FS_AVAILABLE)throw new Error("Unable to save because filesystem is disabled in this environment.");A=async(e,A)=>{let t=await A.arrayBuffer();i.writeFileSync(e,Buffer.from(t))}}await A(e,this.toBlob())}}},"./src/utils/constants.js":(e,A,t)=>{t.r(A),t.d(A,{CHAT_TEMPLATE_NAME:()=>o,CONFIG_NAME:()=>n,FEATURE_EXTRACTOR_NAME:()=>a,GENERATION_CONFIG_NAME:()=>l,GITHUB_ISSUE_URL:()=>r,IMAGE_PROCESSOR_NAME:()=>s,PROCESSOR_NAME:()=>i});const r="https://github.com/huggingface/transformers.js/issues/new/choose",n="config.json",a="preprocessor_config.json",s=a,i="processor_config.json",o="chat_template.json",l="generation_config.json"},"./src/utils/core.js":(e,A,t)=>{function r(e,A){e&&e(A)}function n(e){return Object.fromEntries(Object.entries(e).map((([e,A])=>[A,e])))}function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(e){return"TypedArray"===e?.prototype?.__proto__?.constructor?.name}function i(e){return Number.isInteger(e)||"bigint"==typeof e}function o(e){return null==e||-1===e}function l(e){const A=[];let t=e;for(;Array.isArray(t);)A.push(t.length),t=t[0];return A}function c(e,A,t=void 0){const r=e[A];if(void 0!==r)return delete e[A],r;if(void 0===t)throw Error(`Key ${A} does not exist in object.`);return t}function g(...e){return Array.prototype.concat.apply([],e)}function u(...e){return e.reduce(((e,A)=>e.flatMap((e=>A.map((A=>[e,A]))))))}function d(e,A){return Math.abs((e+A)%(2*A)-A)}function f(e,A){const t=URL.createObjectURL(A),r=document.createElement("a");r.href=t,r.download=e,r.click(),r.remove(),URL.revokeObjectURL(t)}function p(e,A){return Object.assign({},...A.map((A=>{if(void 0!==e[A])return{[A]:e[A]}})))}function h(e){let A=0;for(const t of e)++A;return A}function m(e,A){let t=0;for(const r of e)r===A&&++t;return t}t.r(A),t.d(A,{calculateDimensions:()=>l,calculateReflectOffset:()=>d,count:()=>m,dispatchCallback:()=>r,escapeRegExp:()=>a,isIntegralNumber:()=>i,isNullishDimension:()=>o,isTypedArray:()=>s,len:()=>h,mergeArrays:()=>g,pick:()=>p,pop:()=>c,product:()=>u,reverseDictionary:()=>n,saveBlob:()=>f})},"./src/utils/data-structures.js":(e,A,t)=>{t.r(A),t.d(A,{CharTrie:()=>n,PriorityQueue:()=>r,TokenLattice:()=>s});class r{constructor(e=(e,A)=>e>A,A=1/0){this._heap=[],this._comparator=e,this._maxSize=A}get size(){return this._heap.length}isEmpty(){return 0===this.size}peek(){return this._heap[0]}push(...e){return this.extend(e)}extend(e){for(const A of e)if(this.size<this._maxSize)this._heap.push(A),this._siftUp();else{const e=this._smallest();this._comparator(A,this._heap[e])&&(this._heap[e]=A,this._siftUpFrom(e))}return this.size}pop(){const e=this.peek(),A=this.size-1;return A>0&&this._swap(0,A),this._heap.pop(),this._siftDown(),e}replace(e){const A=this.peek();return this._heap[0]=e,this._siftDown(),A}_parent(e){return(e+1>>>1)-1}_left(e){return 1+(e<<1)}_right(e){return e+1<<1}_greater(e,A){return this._comparator(this._heap[e],this._heap[A])}_swap(e,A){const t=this._heap[e];this._heap[e]=this._heap[A],this._heap[A]=t}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(e){for(;e>0&&this._greater(e,this._parent(e));)this._swap(e,this._parent(e)),e=this._parent(e)}_siftDown(){let e=0;for(;this._left(e)<this.size&&this._greater(this._left(e),e)||this._right(e)<this.size&&this._greater(this._right(e),e);){const A=this._right(e)<this.size&&this._greater(this._right(e),this._left(e))?this._right(e):this._left(e);this._swap(e,A),e=A}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class n{constructor(){this.root=a.default()}extend(e){for(const A of e)this.push(A)}push(e){let A=this.root;for(const t of e){let e=A.children.get(t);void 0===e&&(e=a.default(),A.children.set(t,e)),A=e}A.isLeaf=!0}*commonPrefixSearch(e){let A=this.root;if(void 0===A)return;let t="";for(const r of e){if(t+=r,A=A.children.get(r),void 0===A)return;A.isLeaf&&(yield t)}}}class a{constructor(e,A){this.isLeaf=e,this.children=A}static default(){return new a(!1,new Map)}}class s{constructor(e,A,t){this.chars=Array.from(e),this.len=this.chars.length,this.bosTokenId=A,this.eosTokenId=t,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},(()=>[])),this.endNodes=Array.from({length:this.len+1},(()=>[]));const r=new i(this.bosTokenId,0,0,0,0),n=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(r.clone()),this.nodes.push(n.clone()),this.beginNodes[this.len].push(n),this.endNodes[0].push(r)}insert(e,A,t,r){const n=this.nodes.length,a=new i(r,n,e,A,t);this.beginNodes[e].push(a),this.endNodes[e+A].push(a),this.nodes.push(a)}viterbi(){const e=this.len;let A=0;for(;A<=e;){if(0==this.beginNodes[A].length)return[];for(let e of this.beginNodes[A]){e.prev=null;let t=0,r=null;for(let n of this.endNodes[A]){const A=n.backtraceScore+e.score;(null===r||A>t)&&(r=n.clone(),t=A)}if(null===r)return[];e.prev=r,e.backtraceScore=t}++A}const t=[],r=this.beginNodes[e][0].prev;if(null===r)return[];let n=r.clone();for(;null!==n.prev;){t.push(n.clone());const e=n.clone();n=e.prev.clone()}return t.reverse(),t}piece(e){return this.chars.slice(e.pos,e.pos+e.length).join("")}tokens(){return this.viterbi().map((e=>this.piece(e)))}tokenIds(){return this.viterbi().map((e=>e.tokenId))}}class i{constructor(e,A,t,r,n){this.tokenId=e,this.nodeId=A,this.pos=t,this.length=r,this.score=n,this.prev=null,this.backtraceScore=0}clone(){const e=new i(this.tokenId,this.nodeId,this.pos,this.length,this.score);return e.prev=this.prev,e.backtraceScore=this.backtraceScore,e}}},"./src/utils/devices.js":(e,A,t)=>{t.r(A),t.d(A,{DEVICE_TYPES:()=>r});const r=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":(e,A,t)=>{t.r(A),t.d(A,{DATA_TYPES:()=>s,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>o,isWebGpuFp16Supported:()=>a});var r=t("./src/env.js"),n=t("./src/utils/devices.js");const a=function(){let e;return async function(){if(void 0===e)if(r.apis.IS_WEBGPU_AVAILABLE)try{const A=await navigator.gpu.requestAdapter();e=A.features.has("shader-f16")}catch(A){e=!1}else e=!1;return e}}(),s=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),i=Object.freeze({[n.DEVICE_TYPES.wasm]:s.q8}),o=Object.freeze({[s.fp32]:"",[s.fp16]:"_fp16",[s.int8]:"_int8",[s.uint8]:"_uint8",[s.q8]:"_quantized",[s.q4]:"_q4",[s.q4f16]:"_q4f16",[s.bnb4]:"_bnb4"})},"./src/utils/generic.js":(e,A,t)=>{t.r(A),t.d(A,{Callable:()=>r});const r=class{constructor(){let e=function(...A){return e._call(...A)};return Object.setPrototypeOf(e,new.target.prototype)}_call(...e){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(e,A,t)=>{t.r(A),t.d(A,{getFile:()=>c,getModelFile:()=>d,getModelJSON:()=>f});var r=t("?7a2c"),n=t("?a42a"),a=t("./src/env.js"),s=t("./src/utils/core.js");const i={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 o{constructor(e){if(this.filePath=e,this.headers=new Headers,this.exists=r.existsSync(e),this.exists){this.status=200,this.statusText="OK";let A=r.statSync(e);this.headers.set("content-length",A.size.toString()),this.updateContentType();let t=this;this.body=new ReadableStream({start(e){t.arrayBuffer().then((A=>{e.enqueue(new Uint8Array(A)),e.close()}))}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const e=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",i[e]??"application/octet-stream")}clone(){let e=new o(this.filePath);return e.exists=this.exists,e.status=this.status,e.statusText=this.statusText,e.headers=new Headers(this.headers),e}async arrayBuffer(){return(await r.promises.readFile(this.filePath)).buffer}async blob(){const e=await r.promises.readFile(this.filePath);return new Blob([e],{type:this.headers.get("content-type")})}async text(){return await r.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function l(e,A=null,t=null){let r;try{r=new URL(e)}catch(e){return!1}return!(A&&!A.includes(r.protocol))&&!(t&&!t.includes(r.hostname))}async function c(e){if(a.env.useFS&&!l(e,["http:","https:","blob:"]))return new o(e);if("undefined"!=typeof process&&"node"===process?.release?.name){const A=!!process.env?.TESTING_REMOTELY,t=a.env.version,r=new Headers;r.set("User-Agent",`transformers.js/${t}; is_ci/${A};`);if(l(e,["http:","https:"],["huggingface.co","hf.co"])){const e=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;e&&r.set("Authorization",`Bearer ${e}`)}return fetch(e,{headers:r})}return fetch(e)}const g={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"};class u{constructor(e){this.path=e}async match(e){let A=n.join(this.path,e),t=new o(A);return t.exists?t:void 0}async put(e,A){const t=Buffer.from(await A.arrayBuffer());let a=n.join(this.path,e);try{await r.promises.mkdir(n.dirname(a),{recursive:!0}),await r.promises.writeFile(a,t)}catch(e){console.warn("An error occurred while writing the file to cache:",e)}}}async function d(e,A,t=!0,r={}){if(!a.env.allowLocalModels){if(r.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(!a.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}let n;if((0,s.dispatchCallback)(r.progress_callback,{status:"initiate",name:e,file:A}),!n&&a.env.useBrowserCache){if("undefined"==typeof caches)throw Error("Browser cache is not available in this environment.");try{n=await caches.open("transformers-cache")}catch(e){console.warn("An error occurred while opening the browser cache:",e)}}if(!n&&a.env.useFSCache&&(n=new u(r.cache_dir??a.env.cacheDir)),!n&&a.env.useCustomCache){if(!a.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!a.env.customCache.match||!a.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");n=a.env.customCache}const i=r.revision??"main";let o,d,f=p(e,A),h=p(a.env.localModelPath,f),m=p(a.env.remoteHost,a.env.remotePathTemplate.replaceAll("{model}",e).replaceAll("{revision}",encodeURIComponent(i)),A),C="main"===i?f:p(e,i,A),b=n instanceof u?C:m,I=!1;n&&(d=await async function(e,...A){for(let t of A)try{let A=await e.match(t);if(A)return A}catch(e){continue}}(n,h,b));const w=void 0!==d;if(void 0===d){if(a.env.allowLocalModels){if(l(f,["http:","https:"])){if(r.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${f}.`);if(!a.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${f}.`)}else try{d=await c(h),o=h}catch(e){console.warn(`Unable to load from local path "${h}": "${e}"`)}}if(void 0===d||404===d.status){if(r.local_files_only||!a.env.allowRemoteModels){if(t)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${h}".`);return null}if(d=await c(m),200!==d.status)return function(e,A,t){if(!t)return null;const r=g[e]??`Error (${e}) occurred while trying to load file`;throw Error(`${r}: "${A}".`)}(d.status,m,t);o=b}I=n&&"undefined"!=typeof Response&&d instanceof Response&&200===d.status}let k;return(0,s.dispatchCallback)(r.progress_callback,{status:"download",name:e,file:A}),r.progress_callback?w&&"undefined"!=typeof navigator&&/firefox/i.test(navigator.userAgent)?(k=new Uint8Array(await d.arrayBuffer()),(0,s.dispatchCallback)(r.progress_callback,{status:"progress",name:e,file:A,progress:100,loaded:k.length,total:k.length})):k=await async function(e,A){const t=e.headers.get("Content-Length");null===t&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let r=parseInt(t??"0"),n=new Uint8Array(r),a=0;const s=e.body.getReader();async function i(){const{done:e,value:t}=await s.read();if(e)return;let o=a+t.length;if(o>r){r=o;let e=new Uint8Array(r);e.set(n),n=e}n.set(t,a),a=o;return A({progress:a/r*100,loaded:a,total:r}),i()}return await i(),n}(d,(t=>{(0,s.dispatchCallback)(r.progress_callback,{status:"progress",name:e,file:A,...t})})):k=new Uint8Array(await d.arrayBuffer()),I&&o&&void 0===await n.match(o)&&await n.put(o,new Response(k,{headers:d.headers})).catch((e=>{console.warn(`Unable to add response to browser cache: ${e}.`)})),(0,s.dispatchCallback)(r.progress_callback,{status:"done",name:e,file:A}),k}async function f(e,A,t=!0,r={}){let n=await d(e,A,t,r);if(null===n)return{};let a=new TextDecoder("utf-8").decode(n);return JSON.parse(a)}function p(...e){return(e=e.map(((A,t)=>(t&&(A=A.replace(new RegExp("^/"),"")),t!==e.length-1&&(A=A.replace(new RegExp("/$"),"")),A)))).join("/")}},"./src/utils/image.js":(e,A,t)=>{t.r(A),t.d(A,{RawImage:()=>f,load_image:()=>p});var r=t("./src/utils/core.js"),n=t("./src/utils/hub.js"),a=t("./src/env.js"),s=t("./src/utils/tensor.js"),i=t("?2b25");let o,l,c;const g=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV;if(g)o=(e,A)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(e,A)},c=self.createImageBitmap,l=self.ImageData;else{if(!i)throw new Error("Unable to load image processing library.");c=async e=>{const A=(await e.metadata()).channels,{data:t,info:r}=await e.rotate().raw().toBuffer({resolveWithObject:!0}),n=new f(new Uint8ClampedArray(t),r.width,r.height,r.channels);return void 0!==A&&A!==r.channels&&n.convert(A),n}}const u={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},d=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class f{constructor(e,A,t,r){this.data=e,this.width=A,this.height=t,this.channels=r}get size(){return[this.width,this.height]}static async read(e){if(e instanceof f)return e;if("string"==typeof e||e instanceof URL)return await this.fromURL(e);throw new Error("Unsupported input type: "+typeof e)}static fromCanvas(e){if(!g)throw new Error("fromCanvas() is only supported in browser environments.");const A=e.getContext("2d").getImageData(0,0,e.width,e.height).data;return new f(A,e.width,e.height,4)}static async fromURL(e){const A=await(0,n.getFile)(e);if(200!==A.status)throw new Error(`Unable to read image from "${e}" (${A.status} ${A.statusText})`);const t=await A.blob();return this.fromBlob(t)}static async fromBlob(e){if(g){const A=await c(e),t=o(A.width,A.height).getContext("2d");return t.drawImage(A,0,0),new this(t.getImageData(0,0,A.width,A.height).data,A.width,A.height,4)}{const A=i(await e.arrayBuffer());return await c(A)}}static fromTensor(e,A="CHW"){if(3!==e.dims.length)throw new Error(`Tensor should have 3 dimensions, but has ${e.dims.length} dimensions.`);if("CHW"===A)e=e.transpose(1,2,0);else if("HWC"!==A)throw new Error(`Unsupported channel format: ${A}`);if(!(e.data instanceof Uint8ClampedArray||e.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${e.type}`);switch(e.dims[2]){case 1:case 2:case 3:case 4:return new f(e.data,e.dims[1],e.dims[0],e.dims[2]);default:throw new Error(`Unsupported number of channels: ${e.dims[2]}`)}}grayscale(){if(1===this.channels)return this;const e=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let A=0,t=0;A<this.data.length;A+=this.channels){const r=this.data[A],n=this.data[A+1],a=this.data[A+2];e[t++]=Math.round(.2989*r+.587*n+.114*a)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(e,this.width,this.height,1)}rgb(){if(3===this.channels)return this;const e=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let A=0,t=0;A<this.data.length;++A)e[t++]=this.data[A],e[t++]=this.data[A],e[t++]=this.data[A];break;case 4:for(let A=0,t=0;A<this.data.length;A+=4)e[t++]=this.data[A],e[t++]=this.data[A+1],e[t++]=this.data[A+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(e,this.width,this.height,3)}rgba(){if(4===this.channels)return this;const e=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let A=0,t=0;A<this.data.length;++A)e[t++]=this.data[A],e[t++]=this.data[A],e[t++]=this.data[A],e[t++]=255;break;case 3:for(let A=0,t=0;A<this.data.length;A+=3)e[t++]=this.data[A],e[t++]=this.data[A+1],e[t++]=this.data[A+2],e[t++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(e,this.width,this.height,4)}putAlpha(e){if(e.width!==this.width||e.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${e.width}x${e.height}`);if(1!==e.channels)throw new Error(`Expected mask to have 1 channel, but got ${e.channels}`);const A=this.data,t=e.data,r=this.width*this.height;if(3===this.channels){const e=new Uint8ClampedArray(4*r);for(let n=0,a=0,s=0;n<r;++n)e[s++]=A[a++],e[s++]=A[a++],e[s++]=A[a++],e[s++]=t[n];return this._update(e,this.width,this.height,4)}if(4===this.channels){for(let e=0;e<r;++e)A[4*e+3]=t[e];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(e,A,{resample:t=2}={}){if(this.width===e&&this.height===A)return this;let n=u[t]??t;const a=(0,r.isNullishDimension)(e),s=(0,r.isNullishDimension)(A);if(a&&s)return this;if(a?e=A/this.height*this.width:s&&(A=e/this.width*this.height),g){const t=this.channels,r=this.toCanvas(),n=o(e,A).getContext("2d");n.drawImage(r,0,0,e,A);return new f(n.getImageData(0,0,e,A).data,e,A,4).convert(t)}{let t=this.toSharp();switch(n){case"box":case"hamming":"box"!==n&&"hamming"!==n||(console.warn(`Resampling method ${n} is not yet supported. Using bilinear instead.`),n="bilinear");case"nearest":case"bilinear":case"bicubic":t=t.affine([e/this.width,0,0,A/this.height],{interpolator:n});break;case"lanczos":t=t.resize({width:e,height:A,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${n} is not supported.`)}return await c(t)}}async pad([e,A,t,r]){if(e=Math.max(e,0),A=Math.max(A,0),t=Math.max(t,0),r=Math.max(r,0),0===e&&0===A&&0===t&&0===r)return this;if(g){const n=this.channels,a=this.toCanvas(),s=this.width+e+A,i=this.height+t+r,l=o(s,i).getContext("2d");l.drawImage(a,0,0,this.width,this.height,e,t,this.width,this.height);return new f(l.getImageData(0,0,s,i).data,s,i,4).convert(n)}{const n=this.toSharp().extend({left:e,right:A,top:t,bottom:r});return await c(n)}}async crop([e,A,t,r]){if(e=Math.max(e,0),A=Math.max(A,0),t=Math.min(t,this.width-1),r=Math.min(r,this.height-1),0===e&&0===A&&t===this.width-1&&r===this.height-1)return this;const n=t-e+1,a=r-A+1;if(g){const t=this.channels,r=this.toCanvas(),s=o(n,a).getContext("2d");s.drawImage(r,e,A,n,a,0,0,n,a);return new f(s.getImageData(0,0,n,a).data,n,a,4).convert(t)}{const t=this.toSharp().extract({left:e,top:A,width:n,height:a});return await c(t)}}async center_crop(e,A){if(this.width===e&&this.height===A)return this;const t=(this.width-e)/2,r=(this.height-A)/2;if(g){const n=this.channels,a=this.toCanvas(),s=o(e,A).getContext("2d");let i=0,l=0,c=0,g=0;t>=0?i=t:c=-t,r>=0?l=r:g=-r,s.drawImage(a,i,l,e,A,c,g,e,A);return new f(s.getImageData(0,0,e,A).data,e,A,4).convert(n)}{let n=this.toSharp();if(t>=0&&r>=0)n=n.extract({left:Math.floor(t),top:Math.floor(r),width:e,height:A});else if(t<=0&&r<=0){const a=Math.floor(-r),s=Math.floor(-t);n=n.extend({top:a,left:s,right:e-this.width-s,bottom:A-this.height-a})}else{let a=[0,0],s=0;r<0?(a[0]=Math.floor(-r),a[1]=A-this.height-a[0]):s=Math.floor(r);let i=[0,0],o=0;t<0?(i[0]=Math.floor(-t),i[1]=e-this.width-i[0]):o=Math.floor(t),n=n.extend({top:a[0],bottom:a[1],left:i[0],right:i[1]}).extract({left:o,top:s,width:e,height:A})}return await c(n)}}async toBlob(e="image/png",A=1){if(!g)throw new Error("toBlob() is only supported in browser environments.");const t=this.toCanvas();return await t.convertToBlob({type:e,quality:A})}toTensor(e="CHW"){let A=new s.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if("HWC"===e);else{if("CHW"!==e)throw new Error(`Unsupported channel format: ${e}`);A=A.permute(2,0,1)}return A}toCanvas(){if(!g)throw new Error("toCanvas() is only supported in browser environments.");const e=this.clone().rgba(),A=o(e.width,e.height),t=new l(e.data,e.width,e.height);return A.getContext("2d").putImageData(t,0,0),A}split(){const{data:e,width:A,height:t,channels:r}=this,n=e.constructor,a=e.length/r,s=Array.from({length:r},(()=>new n(a)));for(let A=0;A<a;++A){const t=r*A;for(let n=0;n<r;++n)s[n][A]=e[t+n]}return s.map((e=>new f(e,A,t,1)))}_update(e,A,t,r=null){return this.data=e,this.width=A,this.height=t,null!==r&&(this.channels=r),this}clone(){return new f(this.data.slice(),this.width,this.height,this.channels)}convert(e){if(this.channels===e)return this;switch(e){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(e){if(!g){if(a.apis.IS_FS_AVAILABLE){const A=this.toSharp();return await A.toFile(e)}throw new Error("Unable to save the image because filesystem is disabled in this environment.")}{if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const A=e.split(".").pop().toLowerCase(),t=d.get(A)??"image/png",n=await this.toBlob(t);(0,r.saveBlob)(e,n)}}toSharp(){if(g)throw new Error("toSharp() is only supported in server-side environments.");return i(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const p=f.read.bind(f)},"./src/utils/maths.js":(e,A,t)=>{function r(e,[A,t,r],[n,a],s="bilinear",i=!1){const o=a/r,l=n/t,c=new e.constructor(n*a*A),g=t*r,u=n*a;for(let s=0;s<n;++s)for(let n=0;n<a;++n){const i=s*a+n,d=(n+.5)/o-.5,f=(s+.5)/l-.5;let p=Math.floor(d),h=Math.floor(f);const m=Math.min(p+1,r-1),C=Math.min(h+1,t-1);p=Math.max(p,0),h=Math.max(h,0);const b=d-p,I=f-h,w=(1-b)*(1-I),k=b*(1-I),x=(1-b)*I,B=b*I,v=h*r,y=C*r,E=v+p,M=v+m,G=y+p,D=y+m;for(let t=0;t<A;++t){const A=t*g;c[t*u+i]=w*e[A+E]+k*e[A+M]+x*e[A+G]+B*e[A+D]}}return c}function n(e,A,t){const r=new Array(t.length),n=new Array(t.length);for(let e=t.length-1,a=1;e>=0;--e)n[e]=a,r[e]=A[t[e]],a*=r[e];const a=t.map(((e,A)=>n[t.indexOf(A)])),s=new e.constructor(e.length);for(let t=0;t<e.length;++t){let r=0;for(let e=A.length-1,n=t;e>=0;--e)r+=n%A[e]*a[e],n=Math.floor(n/A[e]);s[r]=e[t]}return[s,r]}function a(e){const A=g(e)[0],t=e.map((e=>Math.exp(e-A))),r=t.reduce(((e,A)=>e+A),0),n=t.map((e=>e/r));return n}function s(e){const A=g(e)[0];let t=0;for(let r=0;r<e.length;++r)t+=Math.exp(e[r]-A);const r=Math.log(t),n=e.map((e=>e-A-r));return n}function i(e,A){let t=0;for(let r=0;r<e.length;++r)t+=e[r]*A[r];return t}function o(e,A){return i(e,A)/(l(e)*l(A))}function l(e){return Math.sqrt(e.reduce(((e,A)=>e+A*A),0))}function c(e){if(0===e.length)throw Error("Array must not be empty");let A=e[0],t=0;for(let r=1;r<e.length;++r)e[r]<A&&(A=e[r],t=r);return[A,t]}function g(e){if(0===e.length)throw Error("Array must not be empty");let A=e[0],t=0;for(let r=1;r<e.length;++r)e[r]>A&&(A=e[r],t=r);return[A,t]}function u(e){return e>0&&!(e&e-1)}t.r(A),t.d(A,{FFT:()=>p,bankers_round:()=>C,cos_sim:()=>o,dot:()=>i,dynamic_time_warping:()=>b,interpolate_data:()=>r,log_softmax:()=>s,magnitude:()=>l,max:()=>g,medianFilter:()=>h,min:()=>c,permute_data:()=>n,round:()=>m,softmax:()=>a});class d{constructor(e){if(this.size=0|e,this.size<=1||!u(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=e<<1,this.table=new Float64Array(2*this.size);for(let e=0;e<this.table.length;e+=2){const A=Math.PI*e/this.size;this.table[e]=Math.cos(A),this.table[e+1]=-Math.sin(A)}let A=0;for(let e=1;this.size>e;e<<=1)++A;this._width=A%2==0?A-1:A,this._bitrev=new Int32Array(1<<this._width);for(let e=0;e<this._bitrev.length;++e){this._bitrev[e]=0;for(let A=0;A<this._width;A+=2){const t=this._width-A-2;this._bitrev[e]|=(e>>>A&3)<<t}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(e,A){const t=A||new Array(e.length>>>1);for(let A=0;A<e.length;A+=2)t[A>>>1]=e[A];return t}toComplexArray(e,A){const t=A||this.createComplexArray();for(let A=0;A<t.length;A+=2)t[A]=e[A>>>1],t[A+1]=0;return t}transform(e,A){if(e===A)throw new Error("Input and output buffers must be different");this._transform4(e,A,1)}realTransform(e,A){if(e===A)throw new Error("Input and output buffers must be different");this._realTransform4(e,A,1)}inverseTransform(e,A){if(e===A)throw new Error("Input and output buffers must be different");this._transform4(e,A,-1);for(let A=0;A<e.length;++A)e[A]/=this.size}_transform4(e,A,t){const r=this._csize;let n,a,s=1<<this._width,i=r/s<<1;const o=this._bitrev;if(4===i)for(n=0,a=0;n<r;n+=i,++a){const t=o[a];this._singleTransform2(A,e,n,t,s)}else for(n=0,a=0;n<r;n+=i,++a){const r=o[a];this._singleTransform4(A,e,n,r,s,t)}const l=this.table;for(s>>=2;s>=2;s>>=2){i=r/s<<1;const A=i>>>2;for(n=0;n<r;n+=i){const r=n+A-1;for(let a=n,i=0;a<r;a+=2,i+=s){const r=a,n=r+A,s=n+A,o=s+A,c=e[r],g=e[r+1],u=e[n],d=e[n+1],f=e[s],p=e[s+1],h=e[o],m=e[o+1],C=l[i],b=t*l[i+1],I=u*C-d*b,w=u*b+d*C,k=l[2*i],x=t*l[2*i+1],B=f*k-p*x,v=f*x+p*k,y=l[3*i],E=t*l[3*i+1],M=h*y-m*E,G=h*E+m*y,D=c+B,Q=g+v,T=c-B,P=g-v,z=I+M,F=w+G,S=t*(I-M),N=t*(w-G);e[r]=D+z,e[r+1]=Q+F,e[n]=T+N,e[n+1]=P-S,e[s]=D-z,e[s+1]=Q-F,e[o]=T-N,e[o+1]=P+S}}}}_singleTransform2(e,A,t,r,n){const a=e[r],s=e[r+1],i=e[r+n],o=e[r+n+1];A[t]=a+i,A[t+1]=s+o,A[t+2]=a-i,A[t+3]=s-o}_singleTransform4(e,A,t,r,n,a){const s=2*n,i=3*n,o=e[r],l=e[r+1],c=e[r+n],g=e[r+n+1],u=e[r+s],d=e[r+s+1],f=e[r+i],p=e[r+i+1],h=o+u,m=l+d,C=o-u,b=l-d,I=c+f,w=g+p,k=a*(c-f),x=a*(g-p);A[t]=h+I,A[t+1]=m+w,A[t+2]=C+x,A[t+3]=b-k,A[t+4]=h-I,A[t+5]=m-w,A[t+6]=C-x,A[t+7]=b+k}_realTransform4(e,A,t){const r=this._csize;let n,a,s=1<<this._width,i=r/s<<1;const o=this._bitrev;if(4===i)for(n=0,a=0;n<r;n+=i,++a){const t=o[a];this._singleRealTransform2(A,e,n,t>>>1,s>>>1)}else for(n=0,a=0;n<r;n+=i,++a){const r=o[a];this._singleRealTransform4(A,e,n,r>>>1,s>>>1,t)}const l=this.table;for(s>>=2;s>=2;s>>=2){i=r/s<<1;const A=i>>>1,a=A>>>1,o=a>>>1;for(n=0;n<r;n+=i)for(let r=0,i=0;r<=o;r+=2,i+=s){const s=n+r,c=s+a,g=c+a,u=g+a,d=e[s],f=e[s+1],p=e[c],h=e[c+1],m=e[g],C=e[g+1],b=e[u],I=e[u+1],w=d,k=f,x=l[i],B=t*l[i+1],v=p*x-h*B,y=p*B+h*x,E=l[2*i],M=t*l[2*i+1],G=m*E-C*M,D=m*M+C*E,Q=l[3*i],T=t*l[3*i+1],P=b*Q-I*T,z=b*T+I*Q,F=w+G,S=k+D,N=w-G,O=k-D,L=v+P,Y=y+z,H=t*(v-P),R=t*(y-z);if(e[s]=F+L,e[s+1]=S+Y,e[c]=N+R,e[c+1]=O-H,0===r){e[g]=F-L,e[g+1]=S-Y;continue}if(r===o)continue;const W=n+a-r,V=n+A-r;e[W]=N-t*R,e[W+1]=-O-t*H,e[V]=F-t*L,e[V+1]=t*Y-S}}const c=r>>>1;for(let A=2;A<c;A+=2)e[r-A]=e[A],e[r-A+1]=-e[A+1]}_singleRealTransform2(e,A,t,r,n){const a=e[r],s=e[r+n];A[t]=a+s,A[t+1]=0,A[t+2]=a-s,A[t+3]=0}_singleRealTransform4(e,A,t,r,n,a){const s=2*n,i=3*n,o=e[r],l=e[r+n],c=e[r+s],g=e[r+i],u=o+c,d=o-c,f=l+g,p=a*(l-g);A[t]=u+f,A[t+1]=0,A[t+2]=d,A[t+3]=-p,A[t+4]=u-f,A[t+5]=0,A[t+6]=d,A[t+7]=p}}class f{constructor(e){const A=2*(e-1),t=2*(2*e-1),r=2**Math.ceil(Math.log2(t));this.bufferSize=r,this._a=A;const n=new Float64Array(t),a=new Float64Array(r);this._chirpBuffer=new Float64Array(r),this._buffer1=new Float64Array(r),this._buffer2=new Float64Array(r),this._outBuffer1=new Float64Array(r),this._outBuffer2=new Float64Array(r);const s=-2*Math.PI/e,i=Math.cos(s),o=Math.sin(s);for(let A=0;A<t>>1;++A){const t=(A+1-e)**2/2,r=Math.sqrt(i**2+o**2)**t,s=t*Math.atan2(o,i),l=2*A;n[l]=r*Math.cos(s),n[l+1]=r*Math.sin(s),a[l]=n[l],a[l+1]=-n[l+1]}this._slicedChirpBuffer=n.subarray(A,t),this._f=new d(r>>1),this._f.transform(this._chirpBuffer,a)}_transform(e,A,t){const r=this._buffer1,n=this._buffer2,a=this._outBuffer1,s=this._outBuffer2,i=this._chirpBuffer,o=this._slicedChirpBuffer,l=this._a;if(t)for(let e=0;e<o.length;e+=2){const t=e+1,n=A[e>>1];r[e]=n*o[e],r[t]=n*o[t]}else for(let e=0;e<o.length;e+=2){const t=e+1;r[e]=A[e]*o[e]-A[t]*o[t],r[t]=A[e]*o[t]+A[t]*o[e]}this._f.transform(a,r);for(let e=0;e<i.length;e+=2){const A=e+1;n[e]=a[e]*i[e]-a[A]*i[A],n[A]=a[e]*i[A]+a[A]*i[e]}this._f.inverseTransform(s,n);for(let A=0;A<s.length;A+=2){const t=s[A+l],r=s[A+l+1],n=o[A],a=o[A+1];e[A]=t*n-r*a,e[A+1]=t*a+r*n}}transform(e,A){this._transform(e,A,!1)}realTransform(e,A){this._transform(e,A,!0)}}class p{constructor(e){this.fft_length=e,this.isPowerOfTwo=u(e),this.isPowerOfTwo?(this.fft=new d(e),this.outputBufferSize=2*e):(this.fft=new f(e),this.outputBufferSize=this.fft.bufferSize)}realTransform(e,A){this.fft.realTransform(e,A)}transform(e,A){this.fft.transform(e,A)}}function h(e,A){if(A%2==0||A<=0)throw new Error("Window size must be a positive odd number");const t=new e.constructor(e.length),r=new e.constructor(A),n=Math.floor(A/2);for(let A=0;A<e.length;++A){let a=0;for(let t=-n;t<=n;++t){let n=A+t;n<0?n=Math.abs(n):n>=e.length&&(n=2*(e.length-1)-n),r[a++]=e[n]}r.sort(),t[A]=r[n]}return t}function m(e,A){const t=Math.pow(10,A);return Math.round(e*t)/t}function C(e){const A=Math.round(e);return Math.abs(e)%1==.5?A%2==0?A:A-1:A}function b(e){const A=e.length,t=e[0].length,r=[A+1,t+1],n=Array.from({length:r[0]},(()=>Array(r[1]).fill(1/0)));n[0][0]=0;const a=Array.from({length:r[0]},(()=>Array(r[1]).fill(-1)));for(let A=1;A<r[1];++A)for(let t=1;t<r[0];++t){const r=n[t-1][A-1],s=n[t-1][A],i=n[t][A-1];let o,l;r<s&&r<i?(o=r,l=0):s<r&&s<i?(o=s,l=1):(o=i,l=2),n[t][A]=e[t-1][A-1]+o,a[t][A]=l}for(let e=0;e<r[1];++e)a[0][e]=2;for(let e=0;e<r[0];++e)a[e][0]=1;let s=A,i=t,o=[],l=[];for(;s>0||i>0;)switch(o.push(s-1),l.push(i-1),a[s][i]){case 0:--s,--i;break;case 1:--s;break;case 2:--i;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${s}, ${i}]. Please file a bug report.`)}return o.reverse(),l.reverse(),[o,l]}},"./src/utils/tensor.js":(e,A,t)=>{t.r(A),t.d(A,{Tensor:()=>i,cat:()=>w,full:()=>E,full_like:()=>M,interpolate:()=>l,interpolate_4d:()=>c,layer_norm:()=>m,matmul:()=>g,mean:()=>v,mean_pooling:()=>h,ones:()=>G,ones_like:()=>D,permute:()=>o,quantize_embeddings:()=>z,rand:()=>P,rfft:()=>u,slice:()=>p,stack:()=>k,std_mean:()=>B,topk:()=>d,zeros:()=>Q,zeros_like:()=>T});var r=t("./src/utils/maths.js"),n=t("./src/backends/onnx.js"),a=t("./src/ops/registry.js");const s=Object.freeze({float32:Float32Array,float16: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 i{get dims(){return this.ort_tensor.dims}set dims(e){this.ort_tensor.dims=e}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(...e){return(0,n.isONNXTensor)(e[0])?this.ort_tensor=e[0]:this.ort_tensor=new n.Tensor(e[0],e[1],e[2]),new Proxy(this,{get:(e,A)=>{if("string"==typeof A){let t=Number(A);if(Number.isInteger(t))return e._getitem(t)}return e[A]},set:(e,A,t)=>e[A]=t})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[e,...A]=this.dims;if(A.length>0){const t=A.reduce(((e,A)=>e*A));for(let r=0;r<e;++r)yield this._subarray(r,t,A)}else yield*this.data}_getitem(e){const[A,...t]=this.dims;if(e=I(e,A),t.length>0){const A=t.reduce(((e,A)=>e*A));return this._subarray(e,A,t)}return new i(this.type,[this.data[e]],t)}indexOf(e){const A=this.data;for(let t=0;t<A.length;++t)if(A[t]==e)return t;return-1}_subarray(e,A,t){const r=e*A,n=(e+1)*A,a="subarray"in this.data?this.data.subarray(r,n):this.data.slice(r,n);return new i(this.type,a,t)}item(){const e=this.data;if(1!==e.length)throw new Error(`a Tensor with ${e.length} elements cannot be converted to Scalar`);return e[0]}tolist(){return function(e,A){const t=e.length,r=A.reduce(((e,A)=>e*A));if(t!==r)throw Error(`cannot reshape array of size ${t} into shape (${A})`);let n=e;for(let e=A.length-1;e>=0;e--)n=n.reduce(((t,r)=>{let n=t[t.length-1];return n.length<A[e]?n.push(r):t.push([r]),t}),[[]]);return n[0]}(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){const e=this.data;for(let A=0;A<e.length;++A)e[A]=1/(1+Math.exp(-e[A]));return this}map(e){return this.clone().map_(e)}map_(e){const A=this.data;for(let t=0;t<A.length;++t)A[t]=e(A[t],t,A);return this}mul(e){return this.clone().mul_(e)}mul_(e){const A=this.data;for(let t=0;t<A.length;++t)A[t]*=e;return this}div(e){return this.clone().div_(e)}div_(e){const A=this.data;for(let t=0;t<A.length;++t)A[t]/=e;return this}add(e){return this.clone().add_(e)}add_(e){const A=this.data;for(let t=0;t<A.length;++t)A[t]+=e;return this}sub(e){return this.clone().sub_(e)}sub_(e){const A=this.data;for(let t=0;t<A.length;++t)A[t]-=e;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...e){const A=[],t=[];for(let r=0;r<this.dims.length;++r){let n=e[r];if(null==n)t.push([0,this.dims[r]]),A.push(this.dims[r]);else if("number"==typeof n)n=I(n,this.dims[r],r),t.push([n,n+1]);else{if(!Array.isArray(n)||2!==n.length)throw new Error(`Invalid slice: ${n}`);{let[e,a]=n;if(e=null===e?0:I(e,this.dims[r],r,!1),a=null===a?this.dims[r]:I(a,this.dims[r],r,!1),e>a)throw new Error(`Invalid slice: ${n}`);const s=[Math.max(e,0),Math.min(a,this.dims[r])];t.push(s),A.push(s[1]-s[0])}}}const r=t.map((([e,A])=>A-e)),n=r.reduce(((e,A)=>e*A)),a=this.data,s=new a.constructor(n),o=this.stride();for(let e=0;e<n;++e){let A=0;for(let n=r.length-1,a=e;n>=0;--n){const e=r[n];A+=(a%e+t[n][0])*o[n],a=Math.floor(a/e)}s[e]=a[A]}return new i(this.type,s,A)}permute(...e){return o(this,e)}transpose(...e){return this.permute(...e)}sum(e=null,A=!1){return this.norm(1,e,A)}norm(e="fro",A=null,t=!1){if("fro"===e)e=2;else if("string"==typeof e)throw Error(`Unsupported norm: ${e}`);const r=this.data,n=(A,t)=>A+t**e;if(null===A){const A=r.reduce(n,0)**(1/e);return new i(this.type,[A],[])}const[a,s,o]=x(n,this,A,t);if(1!==e)for(let A=0;A<s.length;++A)s[A]=s[A]**(1/e);return new i(a,s,o)}normalize_(e=2,A=1){A=I(A,this.dims.length);const t=this.norm(e,A,!0),r=this.data,n=t.data;for(let e=0;e<r.length;++e){let t=0;for(let r=this.dims.length-1,n=e,a=1;r>=0;--r){const e=this.dims[r];if(r!==A){t+=n%e*a,a*=this.dims[r]}n=Math.floor(n/e)}r[e]/=n[t]}return this}normalize(e=2,A=1){return this.clone().normalize_(e,A)}stride(){return function(e){const A=new Array(e.length);for(let t=e.length-1,r=1;t>=0;--t)A[t]=r,r*=e[t];return A}(this.dims)}squeeze(e=null){return new i(this.type,this.data,C(this.dims,e))}squeeze_(e=null){return this.dims=C(this.dims,e),this}unsqueeze(e=null){return new i(this.type,this.data,b(this.dims,e))}unsqueeze_(e=null){return this.dims=b(this.dims,e),this}flatten_(e=0,A=-1){A=(A+this.dims.length)%this.dims.length;let t=this.dims.slice(0,e),r=this.dims.slice(e,A+1),n=this.dims.slice(A+1);return this.dims=[...t,r.reduce(((e,A)=>e*A),1),...n],this}flatten(e=0,A=-1){return this.clone().flatten_(e,A)}view(...e){let A=-1;for(let t=0;t<e.length;++t)if(-1===e[t]){if(-1!==A)throw new Error("Only one dimension can be inferred");A=t}const t=this.data;if(-1!==A){const r=e.reduce(((e,t,r)=>r!==A?e*t:e),1);e[A]=t.length/r}return new i(this.type,t,e)}neg_(){const e=this.data;for(let A=0;A<e.length;++A)e[A]=-e[A];return this}neg(){return this.clone().neg_()}gt(e){const A=new Uint8Array(this.data.length),t=this.data;for(let r=0;r<t.length;++r)A[r]=t[r]>e?1:0;return new i("bool",A,this.dims)}lt(e){const A=new Uint8Array(this.data.length),t=this.data;for(let r=0;r<t.length;++r)A[r]=t[r]<e?1:0;return new i("bool",A,this.dims)}clamp_(e,A){const t=this.data;for(let r=0;r<t.length;++r)t[r]=Math.min(Math.max(t[r],e),A);return this}clamp(e,A){return this.clone().clamp_(e,A)}round_(){const e=this.data;for(let A=0;A<e.length;++A)e[A]=Math.round(e[A]);return this}round(){return this.clone().round_()}mean(e=null,A=!1){return v(this,e,A)}min(e=null,A=!1){if(null===e){const e=(0,r.min)(this.data)[0];return new i(this.type,[e],[])}const[t,n,a]=x(((e,A)=>Math.min(e,A)),this,e,A,1/0);return new i(t,n,a)}max(e=null,A=!1){if(null===e){const e=(0,r.max)(this.data)[0];return new i(this.type,[e],[])}const[t,n,a]=x(((e,A)=>Math.max(e,A)),this,e,A,-1/0);return new i(t,n,a)}argmin(e=null,A=!1){if(null!==e)throw new Error("`dim !== null` not yet implemented.");const t=(0,r.min)(this.data)[1];return new i("int64",[BigInt(t)],[])}argmax(e=null,A=!1){if(null!==e)throw new Error("`dim !== null` not yet implemented.");const t=(0,r.max)(this.data)[1];return new i("int64",[BigInt(t)],[])}to(e){if(this.type===e)return this;if(!s.hasOwnProperty(e))throw new Error(`Unsupported type: ${e}`);let A;const t=["int64","uint64"].includes(this.type),r=["int64","uint64"].includes(e);return t&&!r?A=Number:!t&&r&&(A=BigInt),new i(e,s[e].from(this.data,A),this.dims)}}function o(e,A){const[t,n]=(0,r.permute_data)(e.data,e.dims,A);return new i(e.type,t,n)}function l(e,[A,t],n="bilinear",a=!1){const s=e.dims.at(-3)??1,o=e.dims.at(-2),l=e.dims.at(-1);let c=(0,r.interpolate_data)(e.data,[s,o,l],[A,t],n,a);return new i(e.type,c,[s,A,t])}async function c(e,{size:A=null,mode:t="bilinear"}={}){if(4!==e.dims.length)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!A)throw new Error("`interpolate_4d` requires a `size` argument.");let r,n;if(2===A.length)r=[...e.dims.slice(0,2),...A];else if(3===A.length)r=[e.dims[0],...A];else{if(4!==A.length)throw new Error("`size` must be of length 2, 3, or 4.");r=A}if("nearest"===t)n=await a.TensorOpRegistry.nearest_interpolate_4d;else if("bilinear"===t)n=await a.TensorOpRegistry.bilinear_interpolate_4d;else{if("bicubic"!==t)throw new Error(`Unsupported mode: ${t}`);n=await a.TensorOpRegistry.bicubic_interpolate_4d}const s=new i("int64",new BigInt64Array(r.map(BigInt)),[r.length]);return await n({x:e,s:s})}async function g(e,A){const t=await a.TensorOpRegistry.matmul;return await t({a:e,b:A})}async function u(e,A){const t=await a.TensorOpRegistry.rfft;return await t({x:e,a:A})}async function d(e,A){const t=await a.TensorOpRegistry.top_k;return A=null==A?e.dims.at(-1):Math.min(A,e.dims.at(-1)),await t({x:e,k:new i("int64",[BigInt(A)],[1])})}const f=e=>new i("int64",e,[e.length]);async function p(e,A,t,r,n){const s=await a.TensorOpRegistry.slice;return await s({x:e,s:f(A),e:f(t),a:f(r),t:f(n??new Array(r.length).fill(1))})}function h(e,A){const t=e.data,r=A.data,n=[e.dims[0],e.dims[2]],a=new t.constructor(n[0]*n[1]),[s,o,l]=e.dims;let c=0;for(let e=0;e<s;++e){const A=e*l*o;for(let n=0;n<l;++n){let s=0,i=0;const g=e*o,u=A+n;for(let e=0;e<o;++e){const A=Number(r[g+e]);i+=A,s+=t[u+e*l]*A}const d=s/i;a[c++]=d}}return new i(e.type,a,n)}function m(e,A,{eps:t=1e-5}={}){if(2!==e.dims.length)throw new Error("`layer_norm` currently only supports 2D input.");const[r,n]=e.dims;if(1!==A.length&&A[0]!==n)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");const[a,s]=B(e,1,0,!0),o=a.data,l=s.data,c=e.data,g=new c.constructor(c.length);for(let e=0;e<r;++e){const A=e*n;for(let r=0;r<n;++r){const n=A+r;g[n]=(c[n]-l[e])/(o[e]+t)}}return new i(e.type,g,e.dims)}function C(e,A){return e=e.slice(),null===A?e=e.filter((e=>1!==e)):"number"==typeof A?1===e[A]&&e.splice(A,1):Array.isArray(A)&&(e=e.filter(((e,t)=>1!==e||!A.includes(t)))),e}function b(e,A){return A=I(A,e.length+1),(e=e.slice()).splice(A,0,1),e}function I(e,A,t=null,r=!0){if(r&&(e<-A||e>=A))throw new Error(`IndexError: index ${e} is out of bounds for dimension${null===t?"":" "+t} with size ${A}`);return e<0&&(e=(e%A+A)%A),e}function w(e,A=0){A=I(A,e[0].dims.length);const t=e[0].dims.slice();t[A]=e.reduce(((e,t)=>e+t.dims[A]),0);const r=t.reduce(((e,A)=>e*A),1),n=new e[0].data.constructor(r),a=e[0].type;if(0===A){let A=0;for(const t of e){const e=t.data;n.set(e,A),A+=e.length}}else{let r=0;for(let a=0;a<e.length;++a){const{data:s,dims:i}=e[a];for(let e=0;e<s.length;++e){let a=0;for(let n=i.length-1,s=e,o=1;n>=0;--n){const e=i[n];let l=s%e;n===A&&(l+=r),a+=l*o,o*=t[n],s=Math.floor(s/e)}n[a]=s[e]}r+=i[A]}}return new i(a,n,t)}function k(e,A=0){return w(e.map((e=>e.unsqueeze(A))),A)}function x(e,A,t=null,r=!1,n=null){const a=A.data,s=A.dims;t=I(t,s.length);const i=s.slice();i[t]=1;const o=new a.constructor(a.length/s[t]);null!==n&&o.fill(n);for(let A=0;A<a.length;++A){let r=0;for(let e=s.length-1,n=A,a=1;e>=0;--e){const A=s[e];if(e!==t){r+=n%A*a,a*=i[e]}n=Math.floor(n/A)}o[r]=e(o[r],a[A],A,r)}return r||i.splice(t,1),[A.type,o,i]}function B(e,A=null,t=1,r=!1){const n=e.data,a=e.dims;if(null===A){const A=n.reduce(((e,A)=>e+A),0),r=A/n.length,a=Math.sqrt(n.reduce(((e,A)=>e+(A-r)**2),0)/(n.length-t)),s=new i(e.type,[r],[]);return[new i(e.type,[a],[]),s]}const s=v(e,A=I(A,a.length),r),o=s.data,[l,c,g]=x(((e,A,t,r)=>e+(A-o[r])**2),e,A,r);for(let e=0;e<c.length;++e)c[e]=Math.sqrt(c[e]/(a[A]-t));return[new i(l,c,g),s]}function v(e,A=null,t=!1){const r=e.dims,n=e.data;if(null===A){const A=n.reduce(((e,A)=>e+A),0);return new i(e.type,[A/n.length],[])}A=I(A,r.length);const[a,s,o]=x(((e,A)=>e+A),e,A,t);if(1!==r[A])for(let e=0;e<s.length;++e)s[e]/=r[A];return new i(a,s,o)}function y(e,A,t,r){const n=e.reduce(((e,A)=>e*A),1);return new i(t,new r(n).fill(A),e)}function E(e,A){let t,r;if("number"==typeof A)t="float32",r=Float32Array;else if("bigint"==typeof A)t="int64",r=BigInt64Array;else{if("boolean"!=typeof A)throw new Error("Unsupported data type: "+typeof A);t="bool",r=Uint8Array}return y(e,A,t,r)}function M(e,A){return E(e.dims,A)}function G(e){return y(e,1n,"int64",BigInt64Array)}function D(e){return G(e.dims)}function Q(e){return y(e,0n,"int64",BigInt64Array)}function T(e){return Q(e.dims)}function P(e){const A=e.reduce(((e,A)=>e*A),1);return new i("float32",Float32Array.from({length:A},(()=>Math.random())),e)}function z(e,A){if(2!==e.dims.length)throw new Error("The tensor must have 2 dimensions");if(e.dims.at(-1)%8!=0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(A))throw new Error("The precision must be either 'binary' or 'ubinary'");const t="binary"===A,r=t?"int8":"uint8",n=t?Int8Array:Uint8Array,a=e.data,s=new n(a.length/8);for(let e=0;e<a.length;++e){const A=a[e]>0?1:0,r=Math.floor(e/8),n=e%8;s[r]|=A<<7-n,t&&0===n&&(s[r]-=128)}return new i(r,s,[e.dims[0],e.dims[1]/8])}}},r={};function n(e){var A=r[e];if(void 0!==A)return A.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.m=t,A=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(t,r){if(1&r&&(t=this(t)),8&r)return t;if("object"==typeof t&&t){if(4&r&&t.__esModule)return t;if(16&r&&"function"==typeof t.then)return t}var a=Object.create(null);n.r(a);var s={};e=e||[null,A({}),A([]),A(A)];for(var i=2&r&&t;"object"==typeof i&&!~e.indexOf(i);i=A(i))Object.getOwnPropertyNames(i).forEach((e=>s[e]=()=>t[e]));return s.default=()=>t,n.d(a,s),a},n.d=(e,A)=>{for(var t in A)n.o(A,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},n.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),n.b=new URL(import.meta.url);var a={};(()=>{n.r(a),n.d(a,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ASTForAudioClassification:()=>t.ASTForAudioClassification,ASTModel:()=>t.ASTModel,ASTPreTrainedModel:()=>t.ASTPreTrainedModel,AlbertForMaskedLM:()=>t.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>t.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>t.AlbertForSequenceClassification,AlbertModel:()=>t.AlbertModel,AlbertPreTrainedModel:()=>t.AlbertPreTrainedModel,AlbertTokenizer:()=>r.AlbertTokenizer,AudioClassificationPipeline:()=>A.AudioClassificationPipeline,AutoConfig:()=>s.AutoConfig,AutoFeatureExtractor:()=>d.AutoFeatureExtractor,AutoImageProcessor:()=>h.AutoImageProcessor,AutoModel:()=>t.AutoModel,AutoModelForAudioClassification:()=>t.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>t.AutoModelForAudioFrameClassification,AutoModelForCTC:()=>t.AutoModelForCTC,AutoModelForCausalLM:()=>t.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>t.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>t.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>t.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>t.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>t.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>t.AutoModelForImageSegmentation,AutoModelForImageToImage:()=>t.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>t.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>t.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>t.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>t.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>t.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>t.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>t.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>t.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>t.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>t.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>t.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>t.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>t.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>t.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>t.AutoModelForVision2Seq,AutoModelForXVector:()=>t.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>t.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>b.AutoProcessor,AutoTokenizer:()=>r.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>A.AutomaticSpeechRecognitionPipeline,BartForConditionalGeneration:()=>t.BartForConditionalGeneration,BartForSequenceClassification:()=>t.BartForSequenceClassification,BartModel:()=>t.BartModel,BartPretrainedModel:()=>t.BartPretrainedModel,BartTokenizer:()=>r.BartTokenizer,BaseModelOutput:()=>t.BaseModelOutput,BaseStreamer:()=>I.BaseStreamer,BeitFeatureExtractor:()=>p.BeitFeatureExtractor,BeitForImageClassification:()=>t.BeitForImageClassification,BeitModel:()=>t.BeitModel,BeitPreTrainedModel:()=>t.BeitPreTrainedModel,BertForMaskedLM:()=>t.BertForMaskedLM,BertForQuestionAnswering:()=>t.BertForQuestionAnswering,BertForSequenceClassification:()=>t.BertForSequenceClassification,BertForTokenClassification:()=>t.BertForTokenClassification,BertModel:()=>t.BertModel,BertPreTrainedModel:()=>t.BertPreTrainedModel,BertTokenizer:()=>r.BertTokenizer,BitImageProcessor:()=>p.BitImageProcessor,BlenderbotForConditionalGeneration:()=>t.BlenderbotForConditionalGeneration,BlenderbotModel:()=>t.BlenderbotModel,BlenderbotPreTrainedModel:()=>t.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>t.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>t.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>t.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>r.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>r.BlenderbotTokenizer,BloomForCausalLM:()=>t.BloomForCausalLM,BloomModel:()=>t.BloomModel,BloomPreTrainedModel:()=>t.BloomPreTrainedModel,BloomTokenizer:()=>r.BloomTokenizer,CLIPFeatureExtractor:()=>p.CLIPFeatureExtractor,CLIPImageProcessor:()=>p.CLIPImageProcessor,CLIPModel:()=>t.CLIPModel,CLIPPreTrainedModel:()=>t.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>t.CLIPSegForImageSegmentation,CLIPSegModel:()=>t.CLIPSegModel,CLIPSegPreTrainedModel:()=>t.CLIPSegPreTrainedModel,CLIPTextModel:()=>t.CLIPTextModel,CLIPTextModelWithProjection:()=>t.CLIPTextModelWithProjection,CLIPTokenizer:()=>r.CLIPTokenizer,CLIPVisionModel:()=>t.CLIPVisionModel,CLIPVisionModelWithProjection:()=>t.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>t.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>t.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>t.CamembertForSequenceClassification,CamembertForTokenClassification:()=>t.CamembertForTokenClassification,CamembertModel:()=>t.CamembertModel,CamembertPreTrainedModel:()=>t.CamembertPreTrainedModel,CamembertTokenizer:()=>r.CamembertTokenizer,CausalLMOutput:()=>t.CausalLMOutput,CausalLMOutputWithPast:()=>t.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>p.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>t.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>t.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>t.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>u.ClapFeatureExtractor,ClapModel:()=>t.ClapModel,ClapPreTrainedModel:()=>t.ClapPreTrainedModel,ClapTextModelWithProjection:()=>t.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>k.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>t.CodeGenForCausalLM,CodeGenModel:()=>t.CodeGenModel,CodeGenPreTrainedModel:()=>t.CodeGenPreTrainedModel,CodeGenTokenizer:()=>r.CodeGenTokenizer,CodeLlamaTokenizer:()=>r.CodeLlamaTokenizer,CohereForCausalLM:()=>t.CohereForCausalLM,CohereModel:()=>t.CohereModel,CoherePreTrainedModel:()=>t.CoherePreTrainedModel,CohereTokenizer:()=>r.CohereTokenizer,ConvBertForMaskedLM:()=>t.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>t.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>t.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>t.ConvBertForTokenClassification,ConvBertModel:()=>t.ConvBertModel,ConvBertPreTrainedModel:()=>t.ConvBertPreTrainedModel,ConvBertTokenizer:()=>r.ConvBertTokenizer,ConvNextFeatureExtractor:()=>p.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>p.ConvNextImageProcessor,ConvNextModel:()=>t.ConvNextModel,ConvNextPreTrainedModel:()=>t.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>t.ConvNextV2ForImageClassification,ConvNextV2Model:()=>t.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>t.ConvNextV2PreTrainedModel,DPTFeatureExtractor:()=>p.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>p.DPTImageProcessor,DPTModel:()=>t.DPTModel,DPTPreTrainedModel:()=>t.DPTPreTrainedModel,DebertaForMaskedLM:()=>t.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>t.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>t.DebertaForSequenceClassification,DebertaForTokenClassification:()=>t.DebertaForTokenClassification,DebertaModel:()=>t.DebertaModel,DebertaPreTrainedModel:()=>t.DebertaPreTrainedModel,DebertaTokenizer:()=>r.DebertaTokenizer,DebertaV2ForMaskedLM:()=>t.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>t.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>t.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>t.DebertaV2ForTokenClassification,DebertaV2Model:()=>t.DebertaV2Model,DebertaV2PreTrainedModel:()=>t.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>r.DebertaV2Tokenizer,DecisionTransformerModel:()=>t.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>t.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>p.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>p.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>A.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>p.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>p.DetrImageProcessor,DetrModel:()=>t.DetrModel,DetrObjectDetectionOutput:()=>t.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>t.DetrPreTrainedModel,DetrSegmentationOutput:()=>t.DetrSegmentationOutput,Dinov2ForImageClassification:()=>t.Dinov2ForImageClassification,Dinov2Model:()=>t.Dinov2Model,Dinov2PreTrainedModel:()=>t.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>t.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>t.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>t.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>t.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>t.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>t.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>t.DistilBertForTokenClassification,DistilBertModel:()=>t.DistilBertModel,DistilBertPreTrainedModel:()=>t.DistilBertPreTrainedModel,DistilBertTokenizer:()=>r.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>A.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>p.DonutFeatureExtractor,DonutImageProcessor:()=>p.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>p.EfficientNetImageProcessor,EfficientNetModel:()=>t.EfficientNetModel,EfficientNetPreTrainedModel:()=>t.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>t.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>t.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>t.ElectraForSequenceClassification,ElectraForTokenClassification:()=>t.ElectraForTokenClassification,ElectraModel:()=>t.ElectraModel,ElectraPreTrainedModel:()=>t.ElectraPreTrainedModel,ElectraTokenizer:()=>r.ElectraTokenizer,EosTokenCriteria:()=>w.EosTokenCriteria,EsmForMaskedLM:()=>t.EsmForMaskedLM,EsmForSequenceClassification:()=>t.EsmForSequenceClassification,EsmForTokenClassification:()=>t.EsmForTokenClassification,EsmModel:()=>t.EsmModel,EsmPreTrainedModel:()=>t.EsmPreTrainedModel,EsmTokenizer:()=>r.EsmTokenizer,ExaoneForCausalLM:()=>t.ExaoneForCausalLM,ExaoneModel:()=>t.ExaoneModel,ExaonePreTrainedModel:()=>t.ExaonePreTrainedModel,FFT:()=>c.FFT,FalconForCausalLM:()=>t.FalconForCausalLM,FalconModel:()=>t.FalconModel,FalconPreTrainedModel:()=>t.FalconPreTrainedModel,FalconTokenizer:()=>r.FalconTokenizer,FastViTForImageClassification:()=>t.FastViTForImageClassification,FastViTModel:()=>t.FastViTModel,FastViTPreTrainedModel:()=>t.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>A.FeatureExtractionPipeline,FeatureExtractor:()=>g.FeatureExtractor,FillMaskPipeline:()=>A.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>C.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>k.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>k.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>p.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>t.GLPNForDepthEstimation,GLPNModel:()=>t.GLPNModel,GLPNPreTrainedModel:()=>t.GLPNPreTrainedModel,GPT2LMHeadModel:()=>t.GPT2LMHeadModel,GPT2Model:()=>t.GPT2Model,GPT2PreTrainedModel:()=>t.GPT2PreTrainedModel,GPT2Tokenizer:()=>r.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>t.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>t.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>t.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>t.GPTJForCausalLM,GPTJModel:()=>t.GPTJModel,GPTJPreTrainedModel:()=>t.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>t.GPTNeoForCausalLM,GPTNeoModel:()=>t.GPTNeoModel,GPTNeoPreTrainedModel:()=>t.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>t.GPTNeoXForCausalLM,GPTNeoXModel:()=>t.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>t.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>r.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>t.Gemma2ForCausalLM,Gemma2Model:()=>t.Gemma2Model,Gemma2PreTrainedModel:()=>t.Gemma2PreTrainedModel,GemmaForCausalLM:()=>t.GemmaForCausalLM,GemmaModel:()=>t.GemmaModel,GemmaPreTrainedModel:()=>t.GemmaPreTrainedModel,GemmaTokenizer:()=>r.GemmaTokenizer,GlmForCausalLM:()=>t.GlmForCausalLM,GlmModel:()=>t.GlmModel,GlmPreTrainedModel:()=>t.GlmPreTrainedModel,GraniteForCausalLM:()=>t.GraniteForCausalLM,GraniteModel:()=>t.GraniteModel,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>r.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>p.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>C.GroundingDinoProcessor,GroupViTModel:()=>t.GroupViTModel,GroupViTPreTrainedModel:()=>t.GroupViTPreTrainedModel,HeliumForCausalLM:()=>t.HeliumForCausalLM,HeliumModel:()=>t.HeliumModel,HeliumPreTrainedModel:()=>t.HeliumPreTrainedModel,HerbertTokenizer:()=>r.HerbertTokenizer,HieraForImageClassification:()=>t.HieraForImageClassification,HieraModel:()=>t.HieraModel,HieraPreTrainedModel:()=>t.HieraPreTrainedModel,HubertForCTC:()=>t.HubertForCTC,HubertForSequenceClassification:()=>t.HubertForSequenceClassification,HubertModel:()=>t.HubertModel,HubertPreTrainedModel:()=>t.HubertPreTrainedModel,IJepaForImageClassification:()=>t.IJepaForImageClassification,IJepaModel:()=>t.IJepaModel,IJepaPreTrainedModel:()=>t.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>t.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>p.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>C.Idefics3Processor,ImageClassificationPipeline:()=>A.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>A.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>f.ImageProcessor,ImageSegmentationPipeline:()=>A.ImageSegmentationPipeline,ImageToImagePipeline:()=>A.ImageToImagePipeline,ImageToTextPipeline:()=>A.ImageToTextPipeline,InterruptableStoppingCriteria:()=>w.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>p.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>C.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>r.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>p.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LogitsProcessor:()=>k.LogitsProcessor,LogitsProcessorList:()=>k.LogitsProcessorList,LogitsWarper:()=>k.LogitsWarper,LongT5ForConditionalGeneration:()=>t.LongT5ForConditionalGeneration,LongT5Model:()=>t.LongT5Model,LongT5PreTrainedModel:()=>t.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>t.M2M100ForConditionalGeneration,M2M100Model:()=>t.M2M100Model,M2M100PreTrainedModel:()=>t.M2M100PreTrainedModel,M2M100Tokenizer:()=>r.M2M100Tokenizer,MBart50Tokenizer:()=>r.MBart50Tokenizer,MBartForCausalLM:()=>t.MBartForCausalLM,MBartForConditionalGeneration:()=>t.MBartForConditionalGeneration,MBartForSequenceClassification:()=>t.MBartForSequenceClassification,MBartModel:()=>t.MBartModel,MBartPreTrainedModel:()=>t.MBartPreTrainedModel,MBartTokenizer:()=>r.MBartTokenizer,MPNetForMaskedLM:()=>t.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>t.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>t.MPNetForSequenceClassification,MPNetForTokenClassification:()=>t.MPNetForTokenClassification,MPNetModel:()=>t.MPNetModel,MPNetPreTrainedModel:()=>t.MPNetPreTrainedModel,MPNetTokenizer:()=>r.MPNetTokenizer,MT5ForConditionalGeneration:()=>t.MT5ForConditionalGeneration,MT5Model:()=>t.MT5Model,MT5PreTrainedModel:()=>t.MT5PreTrainedModel,MarianMTModel:()=>t.MarianMTModel,MarianModel:()=>t.MarianModel,MarianPreTrainedModel:()=>t.MarianPreTrainedModel,MarianTokenizer:()=>r.MarianTokenizer,Mask2FormerImageProcessor:()=>p.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>p.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>p.MaskFormerImageProcessor,MaskFormerModel:()=>t.MaskFormerModel,MaskFormerPreTrainedModel:()=>t.MaskFormerPreTrainedModel,MaskedLMOutput:()=>t.MaskedLMOutput,MaxLengthCriteria:()=>w.MaxLengthCriteria,MgpstrForSceneTextRecognition:()=>t.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>t.MgpstrModelOutput,MgpstrPreTrainedModel:()=>t.MgpstrPreTrainedModel,MgpstrProcessor:()=>C.MgpstrProcessor,MgpstrTokenizer:()=>r.MgpstrTokenizer,MinLengthLogitsProcessor:()=>k.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>k.MinNewTokensLengthLogitsProcessor,MistralForCausalLM:()=>t.MistralForCausalLM,MistralModel:()=>t.MistralModel,MistralPreTrainedModel:()=>t.MistralPreTrainedModel,MobileBertForMaskedLM:()=>t.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>t.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>t.MobileBertForSequenceClassification,MobileBertModel:()=>t.MobileBertModel,MobileBertPreTrainedModel:()=>t.MobileBertPreTrainedModel,MobileBertTokenizer:()=>r.MobileBertTokenizer,MobileLLMForCausalLM:()=>t.MobileLLMForCausalLM,MobileLLMModel:()=>t.MobileLLMModel,MobileLLMPreTrainedModel:()=>t.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>p.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ImageProcessor:()=>p.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>p.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ImageProcessor:()=>p.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>p.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ImageProcessor:()=>p.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>p.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ImageProcessor:()=>p.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>p.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>p.MobileViTImageProcessor,MobileViTModel:()=>t.MobileViTModel,MobileViTPreTrainedModel:()=>t.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>t.MobileViTV2ForImageClassification,MobileViTV2Model:()=>t.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>t.MobileViTV2PreTrainedModel,ModelOutput:()=>t.ModelOutput,ModernBertForMaskedLM:()=>t.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>t.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>t.ModernBertForTokenClassification,ModernBertModel:()=>t.ModernBertModel,ModernBertPreTrainedModel:()=>t.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>t.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>u.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>t.MoonshineForConditionalGeneration,MoonshineModel:()=>t.MoonshineModel,MoonshinePreTrainedModel:()=>t.MoonshinePreTrainedModel,MoonshineProcessor:()=>C.MoonshineProcessor,MptForCausalLM:()=>t.MptForCausalLM,MptModel:()=>t.MptModel,MptPreTrainedModel:()=>t.MptPreTrainedModel,MultiModalityCausalLM:()=>t.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>t.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>t.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>t.MusicgenForConditionalGeneration,MusicgenModel:()=>t.MusicgenModel,MusicgenPreTrainedModel:()=>t.MusicgenPreTrainedModel,NllbTokenizer:()=>r.NllbTokenizer,NoBadWordsLogitsProcessor:()=>k.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>k.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>t.NomicBertModel,NomicBertPreTrainedModel:()=>t.NomicBertPreTrainedModel,NougatImageProcessor:()=>p.NougatImageProcessor,NougatTokenizer:()=>r.NougatTokenizer,OPTForCausalLM:()=>t.OPTForCausalLM,OPTModel:()=>t.OPTModel,OPTPreTrainedModel:()=>t.OPTPreTrainedModel,ObjectDetectionPipeline:()=>A.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>t.Olmo2ForCausalLM,Olmo2Model:()=>t.Olmo2Model,Olmo2PreTrainedModel:()=>t.Olmo2PreTrainedModel,OlmoForCausalLM:()=>t.OlmoForCausalLM,OlmoModel:()=>t.OlmoModel,OlmoPreTrainedModel:()=>t.OlmoPreTrainedModel,OpenELMForCausalLM:()=>t.OpenELMForCausalLM,OpenELMModel:()=>t.OpenELMModel,OpenELMPreTrainedModel:()=>t.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>p.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>p.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>C.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>p.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>C.PaliGemmaProcessor,PatchTSMixerForPrediction:()=>t.PatchTSMixerForPrediction,PatchTSMixerModel:()=>t.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>t.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>t.PatchTSTForPrediction,PatchTSTModel:()=>t.PatchTSTModel,PatchTSTPreTrainedModel:()=>t.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>t.Phi3ForCausalLM,Phi3Model:()=>t.Phi3Model,Phi3PreTrainedModel:()=>t.Phi3PreTrainedModel,Phi3VForCausalLM:()=>t.Phi3VForCausalLM,Phi3VImageProcessor:()=>p.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>C.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>A.Pipeline,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>r.PreTrainedTokenizer,PretrainedConfig:()=>s.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>m.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>p.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>C.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>A.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>r.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>p.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>C.Qwen2VLProcessor,RTDetrForObjectDetection:()=>t.RTDetrForObjectDetection,RTDetrImageProcessor:()=>p.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RawAudio:()=>i.RawAudio,RawImage:()=>o.RawImage,RepetitionPenaltyLogitsProcessor:()=>k.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>t.ResNetForImageClassification,ResNetModel:()=>t.ResNetModel,ResNetPreTrainedModel:()=>t.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>t.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>t.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>t.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>t.RoFormerForTokenClassification,RoFormerModel:()=>t.RoFormerModel,RoFormerPreTrainedModel:()=>t.RoFormerPreTrainedModel,RoFormerTokenizer:()=>r.RoFormerTokenizer,RobertaForMaskedLM:()=>t.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>t.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>t.RobertaForSequenceClassification,RobertaForTokenClassification:()=>t.RobertaForTokenClassification,RobertaModel:()=>t.RobertaModel,RobertaPreTrainedModel:()=>t.RobertaPreTrainedModel,RobertaTokenizer:()=>r.RobertaTokenizer,SamImageProcessor:()=>p.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>C.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>p.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>p.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>p.SiglipImageProcessor,SiglipModel:()=>t.SiglipModel,SiglipPreTrainedModel:()=>t.SiglipPreTrainedModel,SiglipTextModel:()=>t.SiglipTextModel,SiglipTokenizer:()=>r.SiglipTokenizer,SiglipVisionModel:()=>t.SiglipVisionModel,SpeechT5FeatureExtractor:()=>u.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>t.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>t.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>t.SpeechT5HifiGan,SpeechT5Model:()=>t.SpeechT5Model,SpeechT5PreTrainedModel:()=>t.SpeechT5PreTrainedModel,SpeechT5Processor:()=>C.SpeechT5Processor,SpeechT5Tokenizer:()=>r.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>t.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>t.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>t.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>t.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>t.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>r.SqueezeBertTokenizer,StableLmForCausalLM:()=>t.StableLmForCausalLM,StableLmModel:()=>t.StableLmModel,StableLmPreTrainedModel:()=>t.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>t.Starcoder2ForCausalLM,Starcoder2Model:()=>t.Starcoder2Model,Starcoder2PreTrainedModel:()=>t.Starcoder2PreTrainedModel,StoppingCriteria:()=>w.StoppingCriteria,StoppingCriteriaList:()=>w.StoppingCriteriaList,StyleTextToSpeech2Model:()=>t.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>t.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>A.SummarizationPipeline,SuppressTokensAtBeginLogitsProcessor:()=>k.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>p.Swin2SRImageProcessor,Swin2SRModel:()=>t.Swin2SRModel,Swin2SRPreTrainedModel:()=>t.Swin2SRPreTrainedModel,SwinForImageClassification:()=>t.SwinForImageClassification,SwinModel:()=>t.SwinModel,SwinPreTrainedModel:()=>t.SwinPreTrainedModel,T5ForConditionalGeneration:()=>t.T5ForConditionalGeneration,T5Model:()=>t.T5Model,T5PreTrainedModel:()=>t.T5PreTrainedModel,T5Tokenizer:()=>r.T5Tokenizer,TableTransformerForObjectDetection:()=>t.TableTransformerForObjectDetection,TableTransformerModel:()=>t.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>t.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>t.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>k.TemperatureLogitsWarper,Tensor:()=>l.Tensor,Text2TextGenerationPipeline:()=>A.Text2TextGenerationPipeline,TextClassificationPipeline:()=>A.TextClassificationPipeline,TextGenerationPipeline:()=>A.TextGenerationPipeline,TextStreamer:()=>I.TextStreamer,TextToAudioPipeline:()=>A.TextToAudioPipeline,TokenClassificationPipeline:()=>A.TokenClassificationPipeline,TokenClassifierOutput:()=>t.TokenClassifierOutput,TokenizerModel:()=>r.TokenizerModel,TopKLogitsWarper:()=>k.TopKLogitsWarper,TopPLogitsWarper:()=>k.TopPLogitsWarper,TrOCRForCausalLM:()=>t.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>t.TrOCRPreTrainedModel,TranslationPipeline:()=>A.TranslationPipeline,UniSpeechForCTC:()=>t.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>t.UniSpeechForSequenceClassification,UniSpeechModel:()=>t.UniSpeechModel,UniSpeechPreTrainedModel:()=>t.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>t.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>t.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>t.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>t.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>t.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>C.VLChatProcessor,VLMImageProcessor:()=>p.VLMImageProcessor,ViTFeatureExtractor:()=>p.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>p.ViTImageProcessor,ViTMAEModel:()=>t.ViTMAEModel,ViTMAEPreTrainedModel:()=>t.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>t.ViTMSNForImageClassification,ViTMSNModel:()=>t.ViTMSNModel,ViTMSNPreTrainedModel:()=>t.ViTMSNPreTrainedModel,ViTModel:()=>t.ViTModel,ViTPreTrainedModel:()=>t.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>t.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>t.VitMatteForImageMatting,VitMatteImageProcessor:()=>p.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>p.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>r.VitsTokenizer,Wav2Vec2BertForCTC:()=>t.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>t.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>t.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>t.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>r.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>u.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>t.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>t.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>t.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>t.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>t.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>C.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>C.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>t.WavLMForAudioFrameClassification,WavLMForCTC:()=>t.WavLMForCTC,WavLMForSequenceClassification:()=>t.WavLMForSequenceClassification,WavLMForXVector:()=>t.WavLMForXVector,WavLMModel:()=>t.WavLMModel,WavLMPreTrainedModel:()=>t.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>u.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>t.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>t.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>u.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>t.WhisperForConditionalGeneration,WhisperModel:()=>t.WhisperModel,WhisperPreTrainedModel:()=>t.WhisperPreTrainedModel,WhisperProcessor:()=>C.WhisperProcessor,WhisperTextStreamer:()=>I.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>k.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>r.WhisperTokenizer,XLMForQuestionAnswering:()=>t.XLMForQuestionAnswering,XLMForSequenceClassification:()=>t.XLMForSequenceClassification,XLMForTokenClassification:()=>t.XLMForTokenClassification,XLMModel:()=>t.XLMModel,XLMPreTrainedModel:()=>t.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>t.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>t.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>t.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>t.XLMRobertaForTokenClassification,XLMRobertaModel:()=>t.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>t.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>r.XLMRobertaTokenizer,XLMTokenizer:()=>r.XLMTokenizer,XLMWithLMHeadModel:()=>t.XLMWithLMHeadModel,XVectorOutput:()=>t.XVectorOutput,YolosFeatureExtractor:()=>p.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>p.YolosImageProcessor,YolosModel:()=>t.YolosModel,YolosObjectDetectionOutput:()=>t.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>t.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>A.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>A.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>A.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>A.ZeroShotObjectDetectionPipeline,bankers_round:()=>c.bankers_round,cat:()=>l.cat,cos_sim:()=>c.cos_sim,dot:()=>c.dot,dynamic_time_warping:()=>c.dynamic_time_warping,env:()=>e.env,full:()=>l.full,full_like:()=>l.full_like,getKeyValueShapes:()=>s.getKeyValueShapes,hamming:()=>i.hamming,hanning:()=>i.hanning,interpolate:()=>l.interpolate,interpolate_4d:()=>l.interpolate_4d,interpolate_data:()=>c.interpolate_data,is_chinese_char:()=>r.is_chinese_char,layer_norm:()=>l.layer_norm,load_image:()=>o.load_image,log_softmax:()=>c.log_softmax,magnitude:()=>c.magnitude,matmul:()=>l.matmul,max:()=>c.max,mean:()=>l.mean,mean_pooling:()=>l.mean_pooling,medianFilter:()=>c.medianFilter,mel_filter_bank:()=>i.mel_filter_bank,min:()=>c.min,ones:()=>l.ones,ones_like:()=>l.ones_like,permute:()=>l.permute,permute_data:()=>c.permute_data,pipeline:()=>A.pipeline,quantize_embeddings:()=>l.quantize_embeddings,rand:()=>l.rand,read_audio:()=>i.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>i.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>i.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=n("./src/env.js"),A=n("./src/pipelines.js"),t=n("./src/models.js"),r=n("./src/tokenizers.js"),s=n("./src/configs.js"),i=n("./src/utils/audio.js"),o=n("./src/utils/image.js"),l=n("./src/utils/tensor.js"),c=n("./src/utils/maths.js"),g=n("./src/base/feature_extraction_utils.js"),u=n("./src/models/feature_extractors.js"),d=n("./src/models/auto/feature_extraction_auto.js"),f=n("./src/base/image_processors_utils.js"),p=n("./src/models/image_processors.js"),h=n("./src/models/auto/image_processing_auto.js"),m=n("./src/base/processing_utils.js"),C=n("./src/models/processors.js"),b=n("./src/models/auto/processing_auto.js"),I=n("./src/generation/streamers.js"),w=n("./src/generation/stopping_criteria.js"),k=n("./src/generation/logits_process.js")})();var s=a.AutoTokenizer,i=a.RawAudio,o=a.StyleTextToSpeech2Model,l=a.Tensor,c=void 0!==c?c:{};c.expectedDataFileDownloads||(c.expectedDataFileDownloads=0);var g="function"==typeof importScripts,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,d="function"==typeof atob?atob:function(e){var A,t,r,n,a,s,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",l=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{A=i.indexOf(e.charAt(l++))<<2|(n=i.indexOf(e.charAt(l++)))>>4,t=(15&n)<<4|(a=i.indexOf(e.charAt(l++)))>>2,r=(3&a)<<6|(s=i.indexOf(e.charAt(l++))),o+=String.fromCharCode(A),64!==a&&(o+=String.fromCharCode(t)),64!==s&&(o+=String.fromCharCode(r))}while(l<e.length);return o};u&&(process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Z))throw e})),process.on("unhandledRejection",(function(e){throw e})),c.inspect=function(){return"[Emscripten Module object]"}),c.expectedDataFileDownloads++,function(){if(c.ENVIRONMENT_IS_PTHREAD)return;const e="/usr/share/espeak-ng-data",A=e+"/lang",t=e+"/voices";!function(r){var n=null,a=null;function s(){function s(e,A){if(!e)throw A+(new Error).stack}function i(e,A,t){this.start=e,this.end=A,this.audio=t}c.FS_createPath("/","usr",!0,!0),c.FS_createPath("/usr","share",!0,!0),c.FS_createPath("/usr/share","espeak-ng-data",!0,!0),c.FS_createPath(e,"lang",!0,!0),c.FS_createPath(A,"aav",!0,!0),c.FS_createPath(A,"art",!0,!0),c.FS_createPath(A,"azc",!0,!0),c.FS_createPath(A,"bat",!0,!0),c.FS_createPath(A,"bnt",!0,!0),c.FS_createPath(A,"ccs",!0,!0),c.FS_createPath(A,"cel",!0,!0),c.FS_createPath(A,"cus",!0,!0),c.FS_createPath(A,"dra",!0,!0),c.FS_createPath(A,"esx",!0,!0),c.FS_createPath(A,"gmq",!0,!0),c.FS_createPath(A,"gmw",!0,!0),c.FS_createPath(A,"grk",!0,!0),c.FS_createPath(A,"inc",!0,!0),c.FS_createPath(A,"ine",!0,!0),c.FS_createPath(A,"ira",!0,!0),c.FS_createPath(A,"iro",!0,!0),c.FS_createPath(A,"itc",!0,!0),c.FS_createPath(A,"jpx",!0,!0),c.FS_createPath(A,"map",!0,!0),c.FS_createPath(A,"miz",!0,!0),c.FS_createPath(A,"myn",!0,!0),c.FS_createPath(A,"poz",!0,!0),c.FS_createPath(A,"roa",!0,!0),c.FS_createPath(A,"sai",!0,!0),c.FS_createPath(A,"sem",!0,!0),c.FS_createPath(A,"sit",!0,!0),c.FS_createPath(A,"tai",!0,!0),c.FS_createPath(A,"trk",!0,!0),c.FS_createPath(A,"urj",!0,!0),c.FS_createPath(A,"zle",!0,!0),c.FS_createPath(A,"zls",!0,!0),c.FS_createPath(A,"zlw",!0,!0),c.FS_createPath(e,"voices",!0,!0),c.FS_createPath(t,"!v",!0,!0),c.FS_createPath(t,"mb",!0,!0),i.prototype={requests:{},open:function(e,A){this.name=A,this.requests[A]=this,c.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var e=this.byteArray.subarray(this.start,this.end);this.finish(e)},finish:function(e){c.FS_createDataFile(this.name,null,e,!0,!0,!0),c.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var o=r.files,l=0;l<o.length;++l)new i(o[l].start,o[l].end,o[l].audio||0).open("GET",o[l].filename);function g(e){s(e,"Loading data file failed."),s(e.constructor.name===ArrayBuffer.name,"bad input to processPackageData");var A=new Uint8Array(e);i.prototype.byteArray=A;for(var t=r.files,n=0;n<t.length;++n)i.prototype.requests[t[n].filename].onload();c.removeRunDependency("datafile_js/espeakng.worker.data")}c.addRunDependency("datafile_js/espeakng.worker.data"),a?(g(a),a=null):n=g}(async()=>{const e=function(e){if("boolean"==typeof u&&u){var A=Buffer.from(e,"base64");return new Uint8Array(A.buffer,A.byteOffset,A.byteLength)}try{for(var t=d(e),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}catch(e){throw console.error(d),console.error(e),new Error("Converting base64 string to bytes failed.")}}("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LctW1ziJJ6r8E2fgm8BOcAj6PPYk+UV2sHJvdu2OjS1rm30C8eitlZpb3/vqmd4n7AT/Dkn4k+RuNs1vCvdesaOrcW2DjyN+cltlP777h2feBiugvcS91eecTeHQTTu6GqNtYQfxk9sq2+Du2858Pl4BHSb2UNdX+Ai47paWsCfmZYmfVfnLz8B/g7oI/OeCFgs+KeQ0oVVhHxFeUSXPjvxAVFU0Xc1COSW2Ko7jeV4QBMciOZ1Ol8vtdns+lNfr9fp8Pr8/EAguVigUCofD4UhFNacUrai2trY2FovV1dXV1VfUcFKNjY2NTU1NTc3Nzc0tH6i1tbW1ra29vaOjo3ORurq6urt7enp7e5ctW9Z3Sv39/f3Lly8fGBhYUdXKqlatWrV69eo1a9euXbdu/Z+1YcOGDRs3bty06Zxzzjn33HPPPe+88zZv3rxly9atW88/f9u2Cy644IJPVHThhRdedNFFF1988cWXVHXppZdeun37ZZddfvkVV1x55VVXX331NX/Wtddee+0nP/nJHTt2XHfddddXdMMNN9x444033XTzzZ/61C233HLLp0/q1ltv/cxnPvvZz33uc39X1ec+d/LX2277/Be+8MXbb7/9S1/60pduv/3227/4xS9+sfLXl++44++/8pWvLtLXvvb1r+/cufN/nNTOD/Q//seuXd/4xp2n9I2TuvPOO7/5zbvuuuuuu+++u/LfXd+s6tSUk6pOr/75rZP688SPfK2C3nnnN3adVGXOJ2dTmfyNb+z6yILs3Pn1r3/961/72le/+tWvLNLf//0dd3z5y19apMqqfuELn//8bbfd9neL9LnPffazn/nMZ2699dZbq013yy23fOpTN99004033nDD9R/Vddddt2PHJz957bXXXnPN1VdfffVVV1111ZVXXnHF5Zdfdtn27Zdeeuklp+niiy++6KILL/zEJy64YNu2bed/oK1bt27dsmXL5s2bzzvvvPPOPalzKtpU0cZF2rBhw/r169edprVr165Zs2b1h1pzUqtXr171F6rsoys+ssN+MO2DiScnf/Tbf9bpk1ad3NlXL468trrv/xWt/yv68LioHhmn6dzTVWmhynHzV7RlS/VgOqktJxv05OSt1WPsg6aufvzhF88/f+uHU099suU0bf1rOn+RPoy5SB9dslN/ntzAf7GCJ7f1h1v4Q53a1GtPbt8Pt2h1Ww0s0vLly5f39/dXTkvLli1b1tvb09Pd3dXV2dnZ0fHRs1lHR3t7W1tra+sHp7zm5oplR2NDfX1dLBarXaRotKamJhKJhE8pFAoFgwG/3+fzej0ej/sDuVwup9PhEASB53meOymWrWQaUiRJEAR+SpXLQiUhslLg/+TF5VQ5LdM0jUpCqKZpqqoqSiUFspLbXy6XSqVSsapCoZCvJPhmM5l0OpVKJStKJBKJeCWldX5ubnZ2ZmZmZrqqqampycnJiYnx8bGx0dGRkZHh4eGhoaGhwcETJ04cP37s2LGjFR05qcOHDx86dOjgwffff/+99959990DB/bv37dv3zvvvP323r17975V0Ztvvvnmnj173njj9ddff/2111577dWKXnnllZdffvmll3bvfvHFF/9U0R9P6oUXXnj++ef/8Ic//P73v3/uueee+90p/fa3v/3ts88++8wzzzz99NNPPfXUbyp68sknn/z1r3/96yeeeOKJxx9//PHHKnr00UcffeSRRx5++OFfVfXLD/TQQw899OCDDz7wwAMP/KKqn1f1s5/97Gc/reonH+o/TurHH9H9Ff3oRz/64Sn9+w///S/0w7+uH32g+390/49+dP8pVWZ6MswHUU8uxc+qOrlsJ5fzgaoefPDBByur8Mtf/vJXv/rVww8//PAjjzzySGVtK2v9+OOPV1rh17/+9ZNPPllpm6eeeurpp5955plnn332t7/97e9+97vnnnvu97//wx+ef/75F1744x//+Kc//enFF1/cvXv3Sy+9/PLLr7zy6quvvfb666+/8cYbe/bsefPNt956a+/et99+5519+/bvP3DgwLvvvvfee++/f/DgwUOHDh8+cuTo0WPHjh0/fvzEicHBwaGh4eGRkZHR0bGx8fGJiYnJyamp6enpmZmZ2dm5ubn5+YWFhXg8kUgkk8lUKp1OZzKZbDaby+Xy+XyhUCwWS6VSuVwWRVGSpEoqr6KoajWDV9f1Ss6yWck7tqpV5D6sEld9jmgC94A8uIiKsEe57wtTwXUestcZdTpJsKv6PNt10gt4xX92D4ct4jtD61DcQ/pYlkT/H/bePMiy66wTPNs9d31rvtzXqsrKWlRVKlWVVmRtyJJtYWMbG4wxBAMMBAQz42CWP6aHcEQ3EwMRRAxNdJsOlhnPNI3B2G2DbWxhI8vWvpek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"),A=new Blob([e]).stream().pipeThrough(new DecompressionStream("gzip")),t=[];for await(const e of A)t.push(e);const r=await new Blob(t).arrayBuffer();n?(n(r),n=null):a=r})(),c.calledRun?s():(c.preRun||(c.preRun=[]),c.preRun.push(s))}({files:[{filename:e+"/en_dict",start:0,end:167064},{filename:e+"/intonations",start:167064,end:169104},{filename:A+"/aav/vi",start:169104,end:169215},{filename:A+"/aav/vi-VN-x-central",start:169215,end:169358},{filename:A+"/aav/vi-VN-x-south",start:169358,end:169500},{filename:A+"/art/eo",start:169500,end:169541},{filename:A+"/art/ia",start:169541,end:169570},{filename:A+"/art/io",start:169570,end:169620},{filename:A+"/art/jbo",start:169620,end:169689},{filename:A+"/art/lfn",start:169689,end:169824},{filename:A+"/art/piqd",start:169824,end:169880},{filename:A+"/art/py",start:169880,end:170020},{filename:A+"/art/qdb",start:170020,end:170077},{filename:A+"/art/qya",start:170077,end:170250},{filename:A+"/art/sjn",start:170250,end:170425},{filename:A+"/azc/nci",start:170425,end:170539},{filename:A+"/bat/lt",start:170539,end:170567},{filename:A+"/bat/ltg",start:170567,end:170879},{filename:A+"/bat/lv",start:170879,end:171108},{filename:A+"/bnt/sw",start:171108,end:171149},{filename:A+"/bnt/tn",start:171149,end:171191},{filename:A+"/ccs/ka",start:171191,end:171315},{filename:A+"/cel/cy",start:171315,end:171352},{filename:A+"/cel/ga",start:171352,end:171418},{filename:A+"/cel/gd",start:171418,end:171469},{filename:A+"/cus/om",start:171469,end:171508},{filename:A+"/dra/kn",start:171508,end:171563},{filename:A+"/dra/ml",start:171563,end:171620},{filename:A+"/dra/ta",start:171620,end:171671},{filename:A+"/dra/te",start:171671,end:171741},{filename:A+"/esx/kl",start:171741,end:171771},{filename:A+"/eu",start:171771,end:171825},{filename:A+"/gmq/da",start:171825,end:171868},{filename:A+"/gmq/is",start:171868,end:171895},{filename:A+"/gmq/nb",start:171895,end:171982},{filename:A+"/gmq/sv",start:171982,end:172007},{filename:A+"/gmw/af",start:172007,end:172130},{filename:A+"/gmw/de",start:172130,end:172172},{filename:A+"/gmw/en",start:172172,end:172312},{filename:A+"/gmw/en-029",start:172312,end:172647},{filename:A+"/gmw/en-GB-scotland",start:172647,end:172942},{filename:A+"/gmw/en-GB-x-gbclan",start:172942,end:173180},{filename:A+"/gmw/en-GB-x-gbcwmd",start:173180,end:173368},{filename:A+"/gmw/en-GB-x-rp",start:173368,end:173617},{filename:A+"/gmw/en-US",start:173617,end:173874},{filename:A+"/gmw/en-US-nyc",start:173874,end:174145},{filename:A+"/gmw/lb",start:174145,end:174176},{filename:A+"/gmw/nl",start:174176,end:174199},{filename:A+"/grk/el",start:174199,end:174222},{filename:A+"/grk/grc",start:174222,end:174321},{filename:A+"/inc/as",start:174321,end:174363},{filename:A+"/inc/bn",start:174363,end:174388},{filename:A+"/inc/bpy",start:174388,end:174427},{filename:A+"/inc/gu",start:174427,end:174469},{filename:A+"/inc/hi",start:174469,end:174492},{filename:A+"/inc/kok",start:174492,end:174518},{filename:A+"/inc/mr",start:174518,end:174559},{filename:A+"/inc/ne",start:174559,end:174596},{filename:A+"/inc/or",start:174596,end:174635},{filename:A+"/inc/pa",start:174635,end:174660},{filename:A+"/inc/sd",start:174660,end:174726},{filename:A+"/inc/si",start:174726,end:174781},{filename:A+"/inc/ur",start:174781,end:174875},{filename:A+"/ine/hy",start:174875,end:174936},{filename:A+"/ine/hyw",start:174936,end:175301},{filename:A+"/ine/sq",start:175301,end:175404},{filename:A+"/ira/fa",start:175404,end:175494},{filename:A+"/ira/fa-Latn",start:175494,end:175763},{filename:A+"/ira/ku",start:175763,end:175803},{filename:A+"/iro/chr",start:175803,end:176372},{filename:A+"/itc/la",start:176372,end:176669},{filename:A+"/jpx/ja",start:176669,end:176721},{filename:A+"/ko",start:176721,end:176772},{filename:A+"/map/haw",start:176772,end:176814},{filename:A+"/miz/mto",start:176814,end:176997},{filename:A+"/myn/quc",start:176997,end:177207},{filename:A+"/poz/id",start:177207,end:177341},{filename:A+"/poz/mi",start:177341,end:177708},{filename:A+"/poz/ms",start:177708,end:178138},{filename:A+"/qu",start:178138,end:178226},{filename:A+"/roa/an",start:178226,end:178253},{filename:A+"/roa/ca",start:178253,end:178278},{filename:A+"/roa/es",start:178278,end:178341},{filename:A+"/roa/es-419",start:178341,end:178508},{filename:A+"/roa/fr",start:178508,end:178587},{filename:A+"/roa/fr-BE",start:178587,end:178671},{filename:A+"/roa/fr-CH",start:178671,end:178757},{filename:A+"/roa/ht",start:178757,end:178897},{filename:A+"/roa/it",start:178897,end:179006},{filename:A+"/roa/pap",start:179006,end:179068},{filename:A+"/roa/pt",start:179068,end:179163},{filename:A+"/roa/pt-BR",start:179163,end:179272},{filename:A+"/roa/ro",start:179272,end:179298},{filename:A+"/sai/gn",start:179298,end:179345},{filename:A+"/sem/am",start:179345,end:179386},{filename:A+"/sem/ar",start:179386,end:179436},{filename:A+"/sem/he",start:179436,end:179476},{filename:A+"/sem/mt",start:179476,end:179517},{filename:A+"/sem/ti",start:179517,end:179610},{filename:A+"/sit/cmn",start:179610,end:180296},{filename:A+"/sit/cmn-Latn-pinyin",start:180296,end:180457},{filename:A+"/sit/hak",start:180457,end:180585},{filename:A+"/sit/my",start:180585,end:180641},{filename:A+"/sit/yue",start:180641,end:180835},{filename:A+"/sit/yue-Latn-jyutping",start:180835,end:181048},{filename:A+"/tai/shn",start:181048,end:181140},{filename:A+"/tai/th",start:181140,end:181177},{filename:A+"/trk/az",start:181177,end:181222},{filename:A+"/trk/ba",start:181222,end:181247},{filename:A+"/trk/cv",start:181247,end:181287},{filename:A+"/trk/kk",start:181287,end:181327},{filename:A+"/trk/ky",start:181327,end:181370},{filename:A+"/trk/nog",start:181370,end:181409},{filename:A+"/trk/tk",start:181409,end:181434},{filename:A+"/trk/tr",start:181434,end:181459},{filename:A+"/trk/tt",start:181459,end:181482},{filename:A+"/trk/ug",start:181482,end:181506},{filename:A+"/trk/uz",start:181506,end:181545},{filename:A+"/urj/et",start:181545,end:181782},{filename:A+"/urj/fi",start:181782,end:182019},{filename:A+"/urj/hu",start:182019,end:182092},{filename:A+"/urj/smj",start:182092,end:182137},{filename:A+"/zle/be",start:182137,end:182189},{filename:A+"/zle/ru",start:182189,end:182246},{filename:A+"/zle/ru-LV",start:182246,end:182526},{filename:A+"/zle/ru-cl",start:182526,end:182617},{filename:A+"/zle/uk",start:182617,end:182714},{filename:A+"/zls/bg",start:182714,end:182825},{filename:A+"/zls/bs",start:182825,end:183055},{filename:A+"/zls/hr",start:183055,end:183317},{filename:A+"/zls/mk",start:183317,end:183345},{filename:A+"/zls/sl",start:183345,end:183388},{filename:A+"/zls/sr",start:183388,end:183638},{filename:A+"/zlw/cs",start:183638,end:183661},{filename:A+"/zlw/pl",start:183661,end:183699},{filename:A+"/zlw/sk",start:183699,end:183723},{filename:e+"/phondata",start:183723,end:734147},{filename:e+"/phonindex",start:734147,end:773403},{filename:e+"/phontab",start:773403,end:829491},{filename:t+"/!v/Alex",start:829491,end:829619},{filename:t+"/!v/Alicia",start:829619,end:830093},{filename:t+"/!v/Andrea",start:830093,end:830450},{filename:t+"/!v/Andy",start:830450,end:830770},{filename:t+"/!v/Annie",start:830770,end:831085},{filename:t+"/!v/AnxiousAndy",start:831085,end:831446},{filename:t+"/!v/Demonic",start:831446,end:835304},{filename:t+"/!v/Denis",start:835304,end:835609},{filename:t+"/!v/Diogo",start:835609,end:835988},{filename:t+"/!v/Gene",start:835988,end:836269},{filename:t+"/!v/Gene2",start:836269,end:836552},{filename:t+"/!v/Henrique",start:836552,end:836933},{filename:t+"/!v/Hugo",start:836933,end:837311},{filename:t+"/!v/Jacky",start:837311,end:837578},{filename:t+"/!v/Lee",start:837578,end:837916},{filename:t+"/!v/Marco",start:837916,end:838383},{filename:t+"/!v/Mario",start:838383,end:838653},{filename:t+"/!v/Michael",start:838653,end:838923},{filename:t+"/!v/Mike",start:838923,end:839035},{filename:t+"/!v/Mr serious",start:839035,end:842228},{filename:t+"/!v/Nguyen",start:842228,end:842508},{filename:t+"/!v/Reed",start:842508,end:842710},{filename:t+"/!v/RicishayMax",start:842710,end:842943},{filename:t+"/!v/RicishayMax2",start:842943,end:843378},{filename:t+"/!v/RicishayMax3",start:843378,end:843813},{filename:t+"/!v/Storm",start:843813,end:844233},{filename:t+"/!v/Tweaky",start:844233,end:847422},{filename:t+"/!v/UniRobot",start:847422,end:847839},{filename:t+"/!v/adam",start:847839,end:847914},{filename:t+"/!v/anika",start:847914,end:848407},{filename:t+"/!v/anikaRobot",start:848407,end:848919},{filename:t+"/!v/announcer",start:848919,end:849219},{filename:t+"/!v/antonio",start:849219,end:849600},{filename:t+"/!v/aunty",start:849600,end:849958},{filename:t+"/!v/belinda",start:849958,end:850298},{filename:t+"/!v/benjamin",start:850298,end:850499},{filename:t+"/!v/boris",start:850499,end:850723},{filename:t+"/!v/caleb",start:850723,end:850780},{filename:t+"/!v/croak",start:850780,end:850873},{filename:t+"/!v/david",start:850873,end:850985},{filename:t+"/!v/ed",start:850985,end:851272},{filename:t+"/!v/edward",start:851272,end:851423},{filename:t+"/!v/edward2",start:851423,end:851575},{filename:t+"/!v/f1",start:851575,end:851899},{filename:t+"/!v/f2",start:851899,end:852256},{filename:t+"/!v/f3",start:852256,end:852631},{filename:t+"/!v/f4",start:852631,end:852981},{filename:t+"/!v/f5",start:852981,end:853413},{filename:t+"/!v/fast",start:853413,end:853562},{filename:t+"/!v/grandma",start:853562,end:853825},{filename:t+"/!v/grandpa",start:853825,end:854081},{filename:t+"/!v/gustave",start:854081,end:854334},{filename:t+"/!v/ian",start:854334,end:857502},{filename:t+"/!v/iven",start:857502,end:857763},{filename:t+"/!v/iven2",start:857763,end:858042},{filename:t+"/!v/iven3",start:858042,end:858304},{filename:t+"/!v/iven4",start:858304,end:858565},{filename:t+"/!v/john",start:858565,end:861751},{filename:t+"/!v/kaukovalta",start:861751,end:862112},{filename:t+"/!v/klatt",start:862112,end:862150},{filename:t+"/!v/klatt2",start:862150,end:862188},{filename:t+"/!v/klatt3",start:862188,end:862227},{filename:t+"/!v/klatt4",start:862227,end:862266},{filename:t+"/!v/klatt5",start:862266,end:862305},{filename:t+"/!v/klatt6",start:862305,end:862344},{filename:t+"/!v/linda",start:862344,end:862694},{filename:t+"/!v/m1",start:862694,end:863029},{filename:t+"/!v/m2",start:863029,end:863293},{filename:t+"/!v/m3",start:863293,end:863593},{filename:t+"/!v/m4",start:863593,end:863883},{filename:t+"/!v/m5",start:863883,end:864145},{filename:t+"/!v/m6",start:864145,end:864333},{filename:t+"/!v/m7",start:864333,end:864587},{filename:t+"/!v/m8",start:864587,end:864871},{filename:t+"/!v/marcelo",start:864871,end:865122},{filename:t+"/!v/max",start:865122,end:865347},{filename:t+"/!v/michel",start:865347,end:865751},{filename:t+"/!v/miguel",start:865751,end:866133},{filename:t+"/!v/mike2",start:866133,end:866321},{filename:t+"/!v/norbert",start:866321,end:869510},{filename:t+"/!v/pablo",start:869510,end:872652},{filename:t+"/!v/paul",start:872652,end:872936},{filename:t+"/!v/pedro",start:872936,end:873288},{filename:t+"/!v/quincy",start:873288,end:873642},{filename:t+"/!v/rob",start:873642,end:873907},{filename:t+"/!v/robert",start:873907,end:874181},{filename:t+"/!v/robosoft",start:874181,end:874632},{filename:t+"/!v/robosoft2",start:874632,end:875086},{filename:t+"/!v/robosoft3",start:875086,end:875541},{filename:t+"/!v/robosoft4",start:875541,end:875988},{filename:t+"/!v/robosoft5",start:875988,end:876433},{filename:t+"/!v/robosoft6",start:876433,end:876720},{filename:t+"/!v/robosoft7",start:876720,end:877130},{filename:t+"/!v/robosoft8",start:877130,end:877373},{filename:t+"/!v/sandro",start:877373,end:877903},{filename:t+"/!v/shelby",start:877903,end:878183},{filename:t+"/!v/steph",start:878183,end:878547},{filename:t+"/!v/steph2",start:878547,end:878914},{filename:t+"/!v/steph3",start:878914,end:879291},{filename:t+"/!v/travis",start:879291,end:879674},{filename:t+"/!v/victor",start:879674,end:879927},{filename:t+"/!v/whisper",start:879927,end:880113},{filename:t+"/!v/whisperf",start:880113,end:880505},{filename:t+"/!v/zac",start:880505,end:880780},{filename:t+"/mb/mb-af1",start:880780,end:880868},{filename:t+"/mb/mb-af1-en",start:880868,end:880951},{filename:t+"/mb/mb-ar1",start:880951,end:881035},{filename:t+"/mb/mb-ar2",start:881035,end:881119},{filename:t+"/mb/mb-br1",start:881119,end:881251},{filename:t+"/mb/mb-br2",start:881251,end:881387},{filename:t+"/mb/mb-br3",start:881387,end:881519},{filename:t+"/mb/mb-br4",start:881519,end:881655},{filename:t+"/mb/mb-ca1",start:881655,end:881760},{filename:t+"/mb/mb-ca2",start:881760,end:881865},{filename:t+"/mb/mb-cn1",start:881865,end:881957},{filename:t+"/mb/mb-cr1",start:881957,end:882068},{filename:t+"/mb/mb-cz1",start:882068,end:882138},{filename:t+"/mb/mb-cz2",start:882138,end:882220},{filename:t+"/mb/mb-de1",start:882220,end:882364},{filename:t+"/mb/mb-de1-en",start:882364,end:882460},{filename:t+"/mb/mb-de2",start:882460,end:882588},{filename:t+"/mb/mb-de2-en",start:882588,end:882668},{filename:t+"/mb/mb-de3",start:882668,end:882767},{filename:t+"/mb/mb-de3-en",start:882767,end:882863},{filename:t+"/mb/mb-de4",start:882863,end:882992},{filename:t+"/mb/mb-de4-en",start:882992,end:883073},{filename:t+"/mb/mb-de5",start:883073,end:883309},{filename:t+"/mb/mb-de5-en",start:883309,end:883399},{filename:t+"/mb/mb-de6",start:883399,end:883521},{filename:t+"/mb/mb-de6-en",start:883521,end:883595},{filename:t+"/mb/mb-de6-grc",start:883595,end:883678},{filename:t+"/mb/mb-de7",start:883678,end:883828},{filename:t+"/mb/mb-de8",start:883828,end:883899},{filename:t+"/mb/mb-ee1",start:883899,end:883996},{filename:t+"/mb/mb-en1",start:883996,end:884127},{filename:t+"/mb/mb-es1",start:884127,end:884241},{filename:t+"/mb/mb-es2",start:884241,end:884349},{filename:t+"/mb/mb-es3",start:884349,end:884453},{filename:t+"/mb/mb-es4",start:884453,end:884541},{filename:t+"/mb/mb-fr1",start:884541,end:884707},{filename:t+"/mb/mb-fr1-en",start:884707,end:884811},{filename:t+"/mb/mb-fr2",start:884811,end:884914},{filename:t+"/mb/mb-fr3",start:884914,end:885014},{filename:t+"/mb/mb-fr4",start:885014,end:885141},{filename:t+"/mb/mb-fr4-en",start:885141,end:885248},{filename:t+"/mb/mb-fr5",start:885248,end:885348},{filename:t+"/mb/mb-fr6",start:885348,end:885448},{filename:t+"/mb/mb-fr7",start:885448,end:885531},{filename:t+"/mb/mb-gr1",start:885531,end:885625},{filename:t+"/mb/mb-gr2",start:885625,end:885719},{filename:t+"/mb/mb-gr2-en",start:885719,end:885807},{filename:t+"/mb/mb-hb1",start:885807,end:885875},{filename:t+"/mb/mb-hb2",start:885875,end:885958},{filename:t+"/mb/mb-hu1",start:885958,end:886060},{filename:t+"/mb/mb-hu1-en",start:886060,end:886157},{filename:t+"/mb/mb-ic1",start:886157,end:886245},{filename:t+"/mb/mb-id1",start:886245,end:886346},{filename:t+"/mb/mb-in1",start:886346,end:886415},{filename:t+"/mb/mb-in2",start:886415,end:886500},{filename:t+"/mb/mb-ir1",start:886500,end:887253},{filename:t+"/mb/mb-it1",start:887253,end:887337},{filename:t+"/mb/mb-it2",start:887337,end:887424},{filename:t+"/mb/mb-it3",start:887424,end:887566},{filename:t+"/mb/mb-it4",start:887566,end:887711},{filename:t+"/mb/mb-jp1",start:887711,end:887782},{filename:t+"/mb/mb-jp2",start:887782,end:887883},{filename:t+"/mb/mb-jp3",start:887883,end:887970},{filename:t+"/mb/mb-la1",start:887970,end:888053},{filename:t+"/mb/mb-lt1",start:888053,end:888140},{filename:t+"/mb/mb-lt2",start:888140,end:888227},{filename:t+"/mb/mb-ma1",start:888227,end:888325},{filename:t+"/mb/mb-mx1",start:888325,end:888445},{filename:t+"/mb/mb-mx2",start:888445,end:888565},{filename:t+"/mb/mb-nl1",start:888565,end:888634},{filename:t+"/mb/mb-nl2",start:888634,end:888730},{filename:t+"/mb/mb-nl2-en",start:888730,end:888821},{filename:t+"/mb/mb-nl3",start:888821,end:888906},{filename:t+"/mb/mb-nz1",start:888906,end:888974},{filename:t+"/mb/mb-pl1",start:888974,end:889073},{filename:t+"/mb/mb-pl1-en",start:889073,end:889155},{filename:t+"/mb/mb-pt1",start:889155,end:889286},{filename:t+"/mb/mb-ro1",start:889286,end:889373},{filename:t+"/mb/mb-ro1-en",start:889373,end:889454},{filename:t+"/mb/mb-sw1",start:889454,end:889552},{filename:t+"/mb/mb-sw1-en",start:889552,end:889645},{filename:t+"/mb/mb-sw2",start:889645,end:889747},{filename:t+"/mb/mb-sw2-en",start:889747,end:889846},{filename:t+"/mb/mb-tl1",start:889846,end:889931},{filename:t+"/mb/mb-tr1",start:889931,end:890016},{filename:t+"/mb/mb-tr2",start:890016,end:890130},{filename:t+"/mb/mb-us1",start:890130,end:890300},{filename:t+"/mb/mb-us2",start:890300,end:890478},{filename:t+"/mb/mb-us3",start:890478,end:890658},{filename:t+"/mb/mb-vz1",start:890658,end:890802}],remote_package_size:890802})}();var f=Object.assign({},c),p="./this.program",h=c.print||console.log.bind(console),m=c.printErr||console.warn.bind(console);Object.assign(c,f),f=null,c.arguments&&c.arguments,c.thisProgram&&(p=c.thisProgram),c.quit&&c.quit,c.wasmBinary&&c.wasmBinary,c.noExitRuntime;var C,b={Memory:function(e){this.buffer=new ArrayBuffer(65536*e.initial)},Module:function(e){},Instance:function(e,A){this.exports=function(e){for(var A,t=new Uint8Array(123),r=25;r>=0;--r)t[48+r]=52+r,t[65+r]=r,t[97+r]=26+r;function n(e,A,r){for(var n,a,s=0,i=A,o=r.length,l=A+(3*o>>2)-("="==r[o-2])-("="==r[o-1]);s<o;s+=4)n=t[r.charCodeAt(s+1)],a=t[r.charCodeAt(s+2)],e[i++]=t[r.charCodeAt(s)]<<2|n>>4,i<l&&(e[i++]=n<<4|a>>2),i<l&&(e[i++]=a<<6|t[r.charCodeAt(s+3)])}t[43]=62,t[47]=63;var a=new ArrayBuffer(16),s=new Int32Array(a),i=new Float32Array(a),o=new Float64Array(a);function l(e){return s[e]}function c(e,A){s[e]=A}function g(){return o[0]}function u(e){o[0]=e}function d(){throw new Error("abort")}function f(e){i[2]=e}return function(e){var t=e.a,r=t.a.buffer,a=new Int8Array(r),s=new Int16Array(r),i=new Int32Array(r),o=new Uint8Array(r),p=new Uint16Array(r),h=new Uint32Array(r),m=new Float64Array(r),C=Math.imul,b=Math.fround,I=Math.abs,w=Math.clz32,k=Math.min,x=Math.floor,B=Math.ceil,v=t.b,y=t.c,E=t.d,M=t.e,G=t.f,D=t.g,Q=t.h,T=t.i,P=t.j,z=t.k,F=t.l,S=t.m,N=t.n,O=t.o,L=t.p,Y=t.q,H=t.r,R=t.s,W=t.t,V=t.u,j=294656,U=0,K=0,Z=0;function X(e){var A,t=0,r=0,n=0,d=0,f=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0,Y=0,H=0,R=0,W=0,V=0,U=0,K=0,Z=0,X=0,J=0,_=0,Ae=0,te=0,re=0,oe=0,ce=0,de=0,fe=0,pe=0,he=0,me=0,Ce=0,be=0,Ie=0,we=0,ke=0,xe=0,Be=0;if(j=A=j-16|0,2!=(0|e))if(e=i[33283],i[e>>2]!=i[e+4>>2]){if(qr(i[i[32972]+60>>2]),M=i[47192],oe=A+12|0,he=A+8|0,j=w=j-6832|0,i[w+6816>>2]=0,i[w+6808>>2]=32,i[w+6800>>2]=0,M){i[47351]=0,i[47350]=0,i[47352]=0,a[189076]=0,e=i[33284],i[47353]=(0|e)>0?e:0,i[47355]=i[47354]+1,kA(O=w+5184|0,0,1600),Ae=w+6800|0,j=f=j-2608|0,i[f+2156>>2]=32,i[f+2148>>2]=0,o[134760]&&(a[190280]=0,a[134760]=0),i[M+8216>>2]=0,i[M+8220>>2]=0,i[M+288>>2]=0,i[w+780>>2]=0,a[189360]=0;e:if(e=i[33691])i[f+2152>>2]=e;else{A:{t:{if(!(t=i[33285])){if(e=i[33283],i[e>>2]==i[e+4>>2]){i[f+2152>>2]=0;break e}if(!(t=i[33285]))break t}i[33285]=0;break A}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}i[f+2152>>2]=t}Ie=O+2|0,F=32;e:{for(;;){z=F;A:{t:{r:{if(t=i[33691],(n=i[33285])?e=0:(n=i[33285],e=i[33283],e=i[e>>2]==i[e+4>>2]),t|!e|n||!(i[32524]<0)){if(!vr(i[f+2156>>2])){if((n=(0|(e=i[49828]))>0)&(0|(t=e))<(0|(e=i[33284])))break r;if(!((0|(t=i[49845]))<=0|(0|e)<(0|t))){i[49845]=0,a[134760]=1,i[33285]=i[f+2152>>2],r=16384;break e}}F=i[f+2156>>2],i[f+2156>>2]=i[f+2152>>2];n:{a:{s:{i:{o:{if((0|(t=i[32524]))>=0){if(o[t+134736|0])break o;i[32524]=-1}if(t=i[33285])break s;if(e=i[33283],i[e>>2]!=i[e+4>>2])break i;t=32;break n}i[33691]|t||(i[f+2156>>2]=a[134736],t=1),i[32524]=t+1,t=a[t+134736|0];break n}if(!(t=i[33285]))break a}i[33285]=0;break n}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}i[f+2152>>2]=t,i[33691]=0;n:if(!(k|!i[47203])){a:{if(60!=(0|(e=i[f+2156>>2]))){if(35!=(0|t)&t-97>>>0>25|38!=(0|e))break n;for(n=i[33285],d=0;;){s:{if(i[f+2156>>2]=t,!n){if(e=i[33283],i[e>>2]==i[e+4>>2])break s;t=i[f+2156>>2]}if(!(!((t=!!(0|vr(t)))|35==(0|(e=i[f+2156>>2])))|d>>>0>19)){a[(f+112|0)+d|0]=e,d=d+1|0,(t=i[33285])?(i[33285]=0,n=0):(i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e),n=i[33285]);continue}}break}a[(f+112|0)+d|0]=0;s:{i:{if(!(t=i[33285])){if(t=0,e=i[33283],i[e>>2]==i[e+4>>2])break s;if(!(t=i[33285]))break i}i[33285]=0;break s}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}i[f+2152>>2]=t,i[f+100>>2]=i[f+2156>>2],i[f+104>>2]=t,i[f+96>>2]=f+112,vt(134736,84252,f+96|0);s:{if(59==i[f+2156>>2]){d=f+2156|0,E=f+2152|0,j=n=j-32|0;i:if(35!=o[0|(t=f+112|0)])e=-1,-1!=(0|(t=Qr(130752,t)))&&(i[d>>2]=t,i[E>>2]||(i[E>>2]=32),e=t);else{if(120==o[0|(e=t+1|0)]){i[n>>2]=d,e=ae(t+2|0,90005,n);break i}i[n+16>>2]=d,e=ae(e,90070,n+16|0)}if(j=n+32|0,(0|e)>0)break s}i[32524]=0,i[f+2156>>2]=38,i[f+2152>>2]=32;break n}if((0|(e=i[f+2156>>2]))>32)break n;if(!(t=i[33692]-20|0)|16==(0|t))break a;break n}if(47!=(0|t)&&!yr(t)&&63!=(0|(e=i[f+2152>>2]))&&33!=(0|e))break n;if((0|(e=i[f+2148>>2]))>780){i[33691]=i[f+2156>>2],a[0|(e=e+189424|0)]=32,a[e+1|0]=0,i[33285]=i[f+2152>>2],r=16384;break e}for(E=i[33285],d=0,t=i[f+2152>>2];i[f+2156>>2]=t,n=0,E||(e=i[33283],n=i[e>>2]==i[e+4>>2],t=i[f+2156>>2]),!(62==(0|t)|n|d>>>0>499);)i[(f+144|0)+(d<<2)>>2]=t,d=d+1|0,(t=i[33285])?(E=0,i[33285]=0):(i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e),E=i[33285]);i[(n=f+144|0)+(d<<2)>>2]=0,i[f+2152>>2]=32,S=f+2148|0,z=i[32525],t=0,j=P=j-560|0;s:if(Cr(n,84333,3)&&Cr(n,84477,4)){for(e=(n+(Ur(n)<<2)|0)-4|0,47==(0|(L=i[e>>2]))&&(i[e>>2]=32);;){if(e=i[n+(t<<2)>>2]){if(er(e))e=t;else if(a[(P+512|0)+t|0]=nr(e<<24>>24),e=39,39!=(0|(t=t+1|0)))continue}else e=t;break}if(a[(P+512|0)+e|0]=0,47!=o[P+512|0]){if(16!=(0|(E=Qr(130480,P+512|0)))&&(t=i[S>>2],i[S>>2]=t+1,a[t+189424|0]=32),47==(0|L)&&(t=0,!(502241>>>E&1)))break s}else 16!=(0|(t=Qr(130480,P+512|1)))&&(d=i[S>>2],i[S>>2]=d+1,a[d+189424|0]=32),E=t+32|0;d=n+(e<<2)|0,e=i[33708],k=C(e,76)+133076|0,t=262174;i:{o:{l:{c:switch(E-1|0){case 33:g:if(!((0|e)<=1)){for(;;){if(2==i[C(t=e-1|0,76)+133152>>2])break g;if(i[33708]=t,n=e>>>0>2,e=t,!n)break}e=1}t=Ee(d,34,e);break s;case 32:g:if(!((0|e)<=1)){for(;;){if(1==i[C(t=e-1|0,76)+133152>>2])break g;if(i[33708]=t,n=e>>>0>2,e=t,!n)break}e=1}t=Ee(d,33,e)+524328|0;break s;case 9:(0|(t=i[33709]))<=18&&(i[33709]=t+1),i[(e=134912+(k=t<<6)|0)>>2]=10,i[e+4>>2]=-1,i[e+8>>2]=-1,i[e+52>>2]=-1,i[e+56>>2]=-1,i[e+44>>2]=-1,i[e+48>>2]=-1,i[e+36>>2]=-1,i[e+40>>2]=-1,i[e+28>>2]=-1,i[e+32>>2]=-1,i[e+20>>2]=-1,i[e+24>>2]=-1,i[e+12>>2]=-1,i[e+16>>2]=-1,i[e+60>>2]=-1,e=NA(d,88301),n=NA(d,88390),Zt(e,88479)?Zt(e,88528)||(i[28+(134912+(t<<6)|0)>>2]=ht(n,130224)):i[24+(k+134912|0)>>2]=ht(n,130192),Re(S,i[33709]);break l;case 2:for((0|(e=i[33709]))<=18&&(i[33709]=e+1),i[(e=134912+(me=e<<6)|0)>>2]=3,i[e+4>>2]=-1,i[e+8>>2]=-1,i[e+52>>2]=-1,i[e+56>>2]=-1,i[e+44>>2]=-1,i[e+48>>2]=-1,i[e+36>>2]=-1,i[e+40>>2]=-1,i[e+28>>2]=-1,i[e+32>>2]=-1,i[e+20>>2]=-1,i[e+24>>2]=-1,i[e+12>>2]=-1,i[e+16>>2]=-1,i[e+60>>2]=-1,U=1;;){if(n=NA(d,i[130448+(K=U<<2)>>2])){L=0,e=i[K+131072>>2];g:if(E=i[e>>2])for(;;){for(t=0;k=a[t+E|0],(z=i[(t<<2)+n>>2])&&(t=t+1|0,(0|k)==(0|z)););u:switch(z-34|0){case 0:case 5:if(!k)break g}if(!(E=i[e+((L=L+1|0)<<3)>>2]))break}we=K+(me+134912|0)|0;g:if((0|(e=i[4+(e+(L<<3)|0)>>2]))>=0)e=(0|C(e,i[4+(K+134912|0)>>2]))/100|0;else{for(;n=(e=n)+4|0,er(i[e>>2]););for(Ce=43==i[e>>2],n=((be=45==i[(e=e+(Ce<<2)|0)>>2])<<2)+e|0,L=P+96|0,j=E=(j=k=j-16|0)-224|0,kA(E+16|0,0,144),e=E+160|4,i[E+24>>2]=e,i[E+60>>2]=e,i[E+92>>2]=-1,i[E+64>>2]=60,i[E+20>>2]=e,i[E+48>>2]=19,t=n;t=(e=t)+4|0,z=(z=i[e>>2])?Pr(124960,z):0;);i[E+100>>2]=e,Vt(t=E+16|0,0,0),ee(E,t,1,1),t=i[E+8>>2],ke=i[E+12>>2],z=i[E>>2],xe=i[E+4>>2],L&&(Be=L,L=i[E+136>>2]+(i[E+20>>2]-i[E+60>>2]|0)|0,i[Be>>2]=L?e+(L<<2)|0:n),i[(e=k)+8>>2]=t,i[e+12>>2]=ke,i[e>>2]=z,i[e+4>>2]=xe,j=E+224|0,T=tA(i[e>>2],i[e+4>>2],i[e+8>>2],i[e+12>>2]),j=e+16|0;u:{t=100;d:if((0|(e=n))!=(0|(n=i[P+96>>2]))){t=be?-1:Ce;f:{if(115!=(0|(e=i[n>>2]))){if(37!=(0|e))break f;if(I(T=t?+(0|t)*T+100:T)<2147483648){t=~~T;break d}t=-2147483648;break d}if(116==i[n+4>>2]){u(+(W=T*+(0|t)/12)),e=0|l(1),l(0);p:{if((t=(e=e>>>20&2047)-969|0)>>>0>=63){if(T=W+1,(0|t)<0)break p;if(u(+W),t=0|l(1),n=0|l(0),!(e>>>0<1033)){if(T=0,!n&-1048576==(0|t))break p;if(T=W+1,e>>>0>=2047)break p;if((0|t)>0|(0|t)>=0){m[8+(e=j-16|0)>>3]=3105036184601418e216,T=3105036184601418e216*m[e+8>>3];break p}if(!(t>>>0<3230714880)){m[8+(e=j-16|0)>>3]=12882297539194267e-247,T=12882297539194267e-247*m[e+8>>3];break p}}k=e,e=!(n<<1)&-2129002496==(0|(e=t<<1|n>>>31))|e>>>0<2165964800?k:0}ce=(W=(T=W-((te=(T=m[14416])+W)-T))*T)*W*(T*m[14421]+m[14420]),W*=T*m[14419]+m[14418],T*=m[14417],u(+te),l(1),k=0|l(0),T=ce+(W+(T+m[115376+(n=k<<4&2032)>>3])),z=i[(n=n+115384|0)>>2],E=i[n+4>>2],n=(t=z)+(z=0)|0,t=(k<<13)+E|0,t=n>>>0<z>>>0?t+1|0:t,e?(c(0,0|n),c(1,0|t),T=(W=+g())*T+W):-2147483648&k?(c(0,0|n),c(1,t+1071644672|0),(T=(te=(W=+g())*T)+W)<1&&(i[8+(e=j-16|0)>>2]=0,i[e+12>>2]=1048576,m[e+8>>3]=22250738585072014e-324*m[e+8>>3],T=0==(T=(ce=T+1)+(te+(W-T)+(T+(1-ce)))+-1)?0:T),T*=22250738585072014e-324):(c(0,0|n),c(1,t+-1048576|0),T=(W=+g())*T+W,T+=T)}if(I(T*=100)<2147483648){t=~~T;break d}t=-2147483648;break d}}if(1!=(0|U))break u;if(t)t=100+(e=I(T=T*+(0|t)*100)<2147483648?~~T:-2147483648)|0;else{if(I(T*=100)<2147483648){t=~~T;break d}t=-2147483648}}e=(0|C(t,i[K+134848>>2]))/100|0;break g}e=I(T)<2147483648?~~T:-2147483648,t&&(e=i[K+134848>>2]+C(e,t)|0)}i[we+4>>2]=e}if(5==(0|(U=U+1|0)))break}Re(S,i[33709]);break l;case 11:(0|(t=i[33709]))<=18&&(i[33709]=t+1),i[(e=134912+(t<<6)|0)>>2]=12,i[e+4>>2]=-1,i[e+8>>2]=-1,i[e+52>>2]=-1,i[e+56>>2]=-1,i[e+44>>2]=-1,i[e+48>>2]=-1,i[e+36>>2]=-1,i[e+40>>2]=-1,i[e+28>>2]=-1,i[e+32>>2]=-1,i[e+20>>2]=-1,i[e+24>>2]=-1,i[e+12>>2]=-1,i[e+16>>2]=-1,i[e+60>>2]=-1,e=(e=NA(d,88658))?ht(e,130400):3,n=134912+(t<<6)|0,1!=i[i[47192]+148>>2]?(i[52+(134912+(t<<6)|0)>>2]=e,e=o[e+102776|0]):(i[20+(134912+(t<<6)|0)>>2]=o[e+102764|0],e=o[e+102770|0]),i[n+12>>2]=e,Re(S,i[33709]);break l;case 34:case 41:case 43:if(!((0|(e=i[33709]))<=0)){if(d=E-32|0,E=0,n=0,t=0,e>>>0>=4)for(k=-4&e,L=0;U=2|t,K=1|t,n=(0|d)==i[134912+((z=3|t)<<6)>>2]?z:(0|d)==i[134912+(U<<6)>>2]?U:(0|d)==i[134912+(K<<6)>>2]?K:(0|d)==i[134912+(t<<6)>>2]?t:n,t=t+4|0,(0|k)!=(0|(L=L+4|0)););if(k=3&e)for(;n=(0|d)==i[134912+(t<<6)>>2]?t:n,t=t+1|0,(0|k)!=(0|(E=E+1|0)););(0|n)<=0||(i[33709]=n,e=n)}Re(S,e);break l;case 7:if(e=NA(d,88741),t=NA(d,88860),1!=(0|ht(e,130176)))break l;e=i[S>>2],i[S>>2]=e+1,a[e+189424|0]=91,e=i[S>>2],i[S>>2]=e+1,a[e+189424|0]=91,e=ut((e=i[S>>2])+189424|0,t,800-e|0)+i[S>>2]|0,i[S>>2]=e+1,a[e+189424|0]=93,e=i[S>>2],i[S>>2]=e+1,a[e+189424|0]=93;break l;case 35:36==i[33692]&&(a[i[S>>2]+189424|0]=0,(n=Qr(131104,t=(e=i[33707])+189424|0))&&(i[S>>2]=Ft(n,t)+e)),e=i[S>>2],i[S>>2]=e+1,a[e+189424|0]=1,e=i[S>>2],i[S>>2]=e+1,a[e+189424|0]=89,i[33692]=0;break l;case 8:if(!(e=NA(d,89299)))break l;a[134824]=1,t=i[S>>2],i[S>>2]=ut(t+189424|0,e,800-t|0)+i[S>>2];break l;case 13:a[134824]=1;break l;case 40:case 45:a[134824]=0;break l;case 4:if(!(e=NA(d,89360)))break l;if(ut(P+352|0,e,160),o[P+352|0]&&!hr(199328,P+352|0)){a[134760]=1,a[199328]=0,t=16384;break s}if((0|(e=ur(P+352|0)))<0)break l;i[P+20>>2]=e,i[P+16>>2]=1,vt(e=P+352|0,89460,P+16|0),rt(i[S>>2]+189424|0,e),i[S>>2]=i[S>>2]+Wt(e);break l;case 10:(0|(t=i[33709]))<=18&&(i[33709]=t+1),i[(e=134912+(t<<6)|0)>>2]=11,i[e+4>>2]=-1,i[e+8>>2]=-1,i[e+52>>2]=-1,i[e+56>>2]=-1,i[e+44>>2]=-1,i[e+48>>2]=-1,i[e+36>>2]=-1,i[e+40>>2]=-1,i[e+28>>2]=-1,i[e+32>>2]=-1,i[e+20>>2]=-1,i[e+24>>2]=-1,i[e+12>>2]=-1,i[e+16>>2]=-1,i[e+60>>2]=-1;g:if(e=NA(d,89514)){if(ut(P+352|0,e,160),i[34441]){if((0|(e=ur(P+352|0)))<0)break g;if(0|Tn[i[34441]](1,e+i[33282]|0,z))break g;i[P+68>>2]=e,i[P+64>>2]=1,vt(P+352|0,89658,P- -64|0)}else{if(!z|47==o[P+352|0]?e=lt(P+352|0):(i[P+48>>2]=z,i[P+52>>2]=P+352,vt(e=P+96|0,89564,P+48|0),e=lt(e)),(0|e)<0)break g;i[P+36>>2]=e,i[P+32>>2]=1,vt(P+352|0,89623,P+32|0)}e=P+352|0,rt(i[S>>2]+189424|0,e),i[S>>2]=i[S>>2]+Wt(e),i[4+(134912+(t<<6)|0)>>2]=1}if(Re(S,i[33709]),47==(0|L)){KA(11,S),t=16384;break s}a[134772]=1,t=16384;break s;case 42:KA(43,S),a[134772]=0,t=16384;break s;case 12:g:{if(e=NA(d,89714)){if(t=16384,(k=(0|(e=ht(e,130336)))<0?2:e)>>>0<=2&&(e=i[S>>2],i[P+84>>2]=k,i[P+80>>2]=1,vt(e+189424|0,89770,P+80|0),i[S>>2]=i[S>>2]+3,t=0),e=i[102784+(k<<2)>>2],!(n=NA(d,89907)))break g;break o}if(t=16384,n=NA(d,89907))break o;e=21;break i}if(k>>>0<3)break l;break i;case 0:(e=NA(d,89965))&&(ut(t=P+352|0,e,160),ur(t)),t=Ee(d,1,i[33708])?147456:0;break s;case 1:t=Ee(d,2,e)?147456:0;break s;case 5:t=0,6==i[k>>2]&&(t=Ee(d,38,e),e=i[33708]),t=524358+(Ee(d,6,e)|t)|0;break s;case 6:t=0,6==(0|(n=i[k>>2]))&&(t=Ee(d,38,e),n=i[k>>2]),7==(0|n)&&(t=Ee(d,39,i[33708])|t),t=524358+(t|Ee(d,7,i[33708]))|0;break s;case 37:if(t=524328,6!=i[k>>2])break s;t=Ee(d,38,e)+524328|0;break s;case 38:if(t=524358,6!=(-2&i[k>>2]))break s;t=Ee(d,39,e)+524358|0;break s;case 14:case 46:break s;case 3:break c;default:break l}e=NA(d,88893),t=NA(d,88992),n=NA(d,89153),d=ht(e,130272),t=ht(t,130320),e=$t(n,0),i[P>>2]=1,n=(0|e)<2?193:e- -64|0,t=64==(0|(e=1==(0|t)?19:d))?n:e,i[P+4>>2]=t,vt(e=P+352|0,89230,P),rt(i[S>>2]+189424|0,e),e=i[S>>2]+Wt(e)|0,i[S>>2]=e,i[33707]=e,i[33692]=t}t=0;break s}e=$t(n,1),n=i[33722],xr(1,i[33713]),(0|(e=(0|(n=(0|C(e,n))/100<<8))/(0|C(i[36429],10))|0))<=199&&(e=(0|n)/(0|C(i[36428],10))|0),t=t||16384}n=e>>>5|0,d=e,t=((e=(0|e)>4095)?n>>>0>=4095?4095:n:d)+(e?8388608|t:t)|0}if(j=P+560|0,t){if(e=i[f+2148>>2]+189424|0,a[0|e]=32,a[e+1|0]=0,!(131072&t)){r=t;break e}rt(189360,134784),r=t;break e}i[f+2156>>2]=32;s:{i:{if(!(t=i[33285])){if(k=0,e=i[33283],i[e>>2]==i[e+4>>2])continue;if(!(t=i[33285]))break i}i[33285]=0;break s}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}i[f+2152>>2]=t,k=0;continue}i[f+2156>>2]=e+57344}if(o[134824])continue;if(n=i[f+2156>>2],!(10!=(0|(e=i[f+2152>>2]))|-1!=i[47268])){16384==(0|(r=qe(n)))?(e=i[f+2148>>2],s[O+(e<<1)>>1]=i[33284]-i[47353],i[Ae>>2]=e,r=524328,e=Ft(i[f+2156>>2],e+189424|0)+i[f+2148>>2]|0):e=i[f+2148>>2],a[0|(e=e+189424|0)]=32,a[e+1|0]=0;break e}n:if(1==(0|n)){if(66!=(0|e)){if(86!=(0|e))break n;for(e=i[f+2148>>2],i[f+2148>>2]=e+1,a[e+189424|0]=0;;){a:{s:{i:{if(!(t=i[33285])){if(e=i[33283],i[e>>2]==i[e+4>>2])break a;if(!(t=i[33285]))break i}i[33285]=0;break s}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}if(i[f+2156>>2]=t,!(er(t)||(0|(e=i[f+2148>>2]))>=799)){i[f+2148>>2]=e+1,a[e+189424|0]=i[f+2156>>2];continue}}break}a[i[f+2148>>2]+189424|0]=0,r=147456;break e}t=i[f+2148>>2],a[0|(e=t+189424|0)]=32,a[e+1|0]=32,a[e+2|0]=32,a[e+3|0]=0,i[f+2148>>2]=t+3;a:{s:{i:{o:{l:{c:{if(!(t=i[33285])){if(e=i[33283],i[e>>2]==i[e+4>>2])break o;if(!(t=i[33285]))break c}i[33285]=0;break l}i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e)}if(i[f+2152>>2]=t,n=0,48!=(0|t))break i;break s}t=i[f+2152>>2]}if(i[47208]=0,i[47201]=1,49==(0|t))break a;for(n=i[33285],d=0;;){i:{if(!n){if(e=i[33283],i[e>>2]==i[e+4>>2])break i;t=i[f+2152>>2]}if(!(er(t)|d>>>0>58)){i[188832+(d<<2)>>2]=i[f+2152>>2],(t=i[33285])?(i[33285]=0,n=0):(i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e),n=i[33285]),d=d+1|0,i[f+2152>>2]=t,e=i[f+2148>>2],i[f+2148>>2]=e+1,a[e+189424|0]=32;continue}}break}n=2,i[188832+(d<<2)>>2]=0}i[47201]=n}a:{if(!(t=i[33285])){if(e=i[33283],i[e>>2]==i[e+4>>2])continue;if(!(t=i[33285]))break a}i[33285]=0,i[f+2152>>2]=t;continue}i[33284]=i[33284]+1,e=i[33283],i[f+2152>>2]=Tn[i[e+8>>2]](e);continue}X=X+1|0,t=0,e=i[M+340>>2];n:if(d=p[e>>1]){for(;;){if((65535&d)!=(0|n)){if(d=p[e+((t=t+2|0)<<1)>>1])continue;break n}break}a:switch(0|(e=p[e+(t<<1|2)>>1])){case 1:continue;case 0:break n}i[f+2156>>2]=e,n=e}vr(n)?(D=1,t=i[f+2156>>2]):H?(i[33285]=i[f+2152>>2],t=1328,i[f+2156>>2]=1328,i[f+2152>>2]=32,H=0):3851!=(0|(t=i[f+2156>>2]))?(H=0,3405!=(0|t)|8205!=i[f+2152>>2]||(t=3406,i[f+2156>>2]=3406)):(t=32,i[f+2156>>2]=32,H=0);n:if(gr(t)){if(i[M+8216>>2]=i[M+8216>>2]+1,i[33692]|2!=i[47200])break n;if(gr(F))break n;if(i[f+2544>>2]=0,i[f+2548>>2]=0,i[f+2304>>2]=84731,!Ve(M,f+2304|0,f+2160|0,f+2544|0,0,0))break n;if(ie(M,e=f+2160|0,f+2544|0,-1,0),QA(t=e,e=f+2336|0),i[f+80>>2]=e,vt(t=f+2240|0,85451,f+80|0),e=i[f+2148>>2],(0|(t=Wt(t)+e|0))>=800)break n;rt(e+189424|0,f+2240|0),i[f+2148>>2]=t}else yr(i[f+2156>>2])&&(i[M+8220>>2]=i[M+8220>>2]+1);if(t=i[f+2152>>2],e=i[f+2156>>2],i[47204])if((0|k)>0)k=k-1|0;else{if(!(91!=(0|e)|91!=(0|t))){n=0,k=-1;break A}k=93==(0|e)&&93==(0|t)?2:k}if(10==(0|e)){for(n=i[33285],d=0;;){n:{if(!n){if(e=i[33283],i[e>>2]==i[e+4>>2])break n;t=i[f+2152>>2]}if(er(t)){d=(10==i[f+2152>>2])+d|0,(t=i[33285])?(i[33285]=0,n=0):(i[33284]=i[33284]+1,e=i[33283],t=0|Tn[i[e+8>>2]](e),n=i[33285]),i[f+2152>>2]=t;continue}}break}if((0|d)>0){r&&kA(e=J+189424|0,32,VA(f+2336|0,e)),e=i[f+2148>>2]+189424|0,a[0|e]=32,a[e+1|0]=0,i[33285]=i[f+2152>>2],r=i[47203]?524358:C((0|d)>=3?3:d,30)+524328|0;break e}if(e=i[47268]<(0|X),X=0,!e){e=i[f+2148>>2]+189424|0,a[0|e]=32,a[e+1|0]=0,i[33285]=i[f+2152>>2],r=262174;break e}}if(n=0,i[33692]|k)break A;if(e=0,!r)break t;if(er(i[f+2156>>2])){e=r;break t}if(dt(i[f+2156>>2])&&wr(i[f+2156>>2]))break t;i[33691]=i[f+2156>>2],a[0|(e=J+189424|0)]=32,a[e+1|0]=0,i[33285]=i[f+2152>>2];break e}H&&(i[f+2148>>2]=Ft(1328,i[f+2148>>2]+189424|0)+i[f+2148>>2]),r&&kA(e=J+189424|0,32,VA(f+2336|0,e)),e=i[f+2148>>2]+189424|0,a[0|e]=32,a[e+1|0]=0}r=589864;break e}if(!(46!=(0|(t=i[f+2156>>2]))|46!=i[f+2152>>2])){t:{r:{n:{if(!(t=i[33285])){if(t=i[33283],i[t>>2]==i[t+4>>2])break t;if(!(t=i[33285]))break n}i[33285]=0;break r}i[33284]=i[33284]+1,t=i[33283],t=0|Tn[i[t+8>>2]](t)}if(b=t,46==(0|t))for(i[f+2152>>2]=32,i[f+2156>>2]=8230,b=i[33285];;){r:{n:{if(!b){if(t=i[33283],i[t>>2]==i[t+4>>2]){b=46;break t}if(!(b=i[33285]))break n}i[33285]=0,t=0;break r}i[33284]=i[33284]+1,t=i[33283],b=0|Tn[i[t+8>>2]](t),t=i[33285]}if(46!=(0|b))break t;i[f+2152>>2]=32,i[f+2156>>2]=8230,b=t}}8230!=(0|(t=i[f+2156>>2]))?i[33285]=b:(i[f+2152>>2]=b,t=8230)}if(L=0,16384!=(0|(E=qe(t)))){t:if(536621&E)for(t=i[33285];;){if(!t&&(t=i[33283],i[t>>2]==i[t+4>>2]))break t;if(!(536621&qe(i[f+2152>>2])))break t;(b=i[33285])?(i[33285]=0,t=0):(i[33284]=i[33284]+1,t=i[33283],b=0|Tn[i[t+8>>2]](t),t=i[33285]),i[f+2152>>2]=b}if(1048576&E){i[w+780>>2]=E>>>12&15,H=1,k=0,r=e;continue}(er(i[f+2152>>2])|32768&E||rn(i[f+2152>>2])||63==(0|(t=i[f+2152>>2]))||(d=0,i[33285]||(t=i[33283],d=i[t>>2]==i[t+4>>2],t=i[f+2152>>2]),d||1==(0|t)))&&(L=1)}if(57404==(0|(t=i[f+2156>>2]))&&(i[f+2156>>2]=60,t=60),i[47201]){r=0;t:if(!(1<<(d=UA(t))&1879048255&&d>>>0<=30)){if(!((d=UA(t))>>>0>27)){if(116672&(k=1<<d))break t;if(134227968&k){r=!(1024&q(t,d));break t}}r=1}if(!(o[134772]|!r)&&(1==i[47201]||Pr(188832,i[f+2156>>2]))){i[M+288>>2]=0,n=i[f+2156>>2],a[f+2336|0]=0,k=i[f+2152>>2],t=0;t:{r:if(!((0|(r=i[34064]))<=0))for(;;){if((0|n)==i[136272+(t<<4)>>2]){if(i[136276+(t<<4)>>2])break t;if(Se(0,t))break r;break t}if((0|r)==(0|(t=t+1|0)))break}t=-1}t:if((0|t)>=0)i[f>>2]=t,vt(f+2336|0,86007,f),i[33285]=k;else if((d=!L)|46!=(0|n)|46==(0|k)||(i[f+2600>>2]=0,i[f+2604>>2]=0,i[f+2540>>2]=86036,!Ve(M,f+2540|0,f+2544|0,f+2600|0,0,0))?t=He(f+2240|0,M,n,0):(ie(M,t=f+2544|0,f+2600|0,-1,0),QA(r=t,t=f+2160|0),i[f+64>>2]=t,vt(t=f+2304|0,85451,f- -64|0)),r=t,d|!i[f+2148>>2]|2&o[M+76|0]){for(t=i[33285],d=1;;){r:{n:{if(!t){if(t=i[33283],i[t>>2]==i[t+4>>2]|60==(0|n)|(0|n)!=(0|k))break r;if(d=d+1|0,k=i[33285])break n;i[33284]=i[33284]+1,t=i[33283],k=0|Tn[i[t+8>>2]](t),t=i[33285];continue}if(60==(0|n)|(0|n)!=(0|k))break r;k=t,d=d+1|0}t=0,i[33285]=0;continue}break}if(i[f+2152>>2]=k,L&&(i[33285]=k),1==(0|d)){i[f+16>>2]=r,vt(f+2336|0,86219,f+16|0);break t}if((0|d)<=3){if(a[f+2336|0]=0,(0|(t=i[50786]))<=299&&(i[f+2336>>2]=o[86728]|o[86729]<<8|o[86730]<<16|o[86731]<<24,s[f+2340>>1]=o[86732]|o[86733]<<8),(0|d)>0){for(;i[f+32>>2]=r,vt(t=f+2160|0,86219,f+32|0),k=d>>>0>1,yn(f+2336|0,t),d=d-1|0,k;);t=i[50786]}if((0|t)>299)break t;i[f+2160>>2]=o[86857]|o[86858]<<8|o[86859]<<16|o[86860]<<24,t=o[86860]|o[86861]<<8|o[86862]<<16|o[86863]<<24,a[f+2163|0]=t,a[f+2164|0]=t>>>8,a[f+2165|0]=t>>>16,a[f+2166|0]=t>>>24,yn(f+2336|0,f+2160|0);break t}i[f+56>>2]=r,i[f+52>>2]=d,i[f+48>>2]=r,vt(f+2336|0,86932,f+48|0)}else i[33691]=n,i[33285]=k,s[f+2336>>1]=32;if(d=Wt(r=f+2336|0),rt((t=i[f+2148>>2])+189424|0,r),i[f+2148>>2]=t+d,L){if(45==(0|n)){r=16384;break e}if(r=qe(n),!(2&o[M+76|0]|(0|t)<=0)){r=266270==(-32769&r)?262148:4096==(28672&r)?266244:262148;break e}if(!(524288&r)){r=4096==(28672&r)?266244:262148;break e}if((0|r)>=0)break e}n=i[f+2156>>2]}}if(n|!(2097152&E)||(t=rt(i[f+2148>>2]+189424|0,He(f+2336|0,M,i[f+2156>>2],1)),o[0|t]?(i[f+2148>>2]=i[f+2148>>2]+Wt(t),E&=-28673,n=i[f+2156>>2]):n=0),k=0,L){t:if(er(b=i[f+2152>>2]))for(d=i[33285],t=0;;){if(!d&&(r=i[33283],i[r>>2]==i[r+4>>2]))break t;if(!er(b))break t;t=(10==(0|b))+t|0,(b=i[33285])?(i[33285]=0,d=0):(i[33284]=i[33284]+1,r=i[33283],b=0|Tn[i[r+8>>2]](r),d=i[33285])}else t=0;r=46==(0|(k=i[f+2156>>2]))&&(0|t)<2?4194304|E:E;t:{if(!t){d=1,44!=(0|k)|46!=(0|F)|26741!=i[M+212>>2]|z-48>>>0>=10||b-48>>>0>=10&&!wr(b)||(i[f+2156>>2]=1367,d=0),46!=(0|(E=i[f+2156>>2]))|39!=(0|b)||(k=d,E=i[33283],(0|(P=i[E>>2]))==i[E+4>>2]?d=0:(d=0|Tn[i[E+8>>2]](E),i[E>>2]=P),E=i[f+2156>>2],d=115!=(0|d)&k);r:if(46!=(0|E))d&=D;else{n:if(1&a[M+106|0]){if(!(F-48>>>0<10)){if((k=F-73|0)>>>0>15|!(1<<k&40969))break n;if(!(1<<(k=z-73|0)&40969&&k>>>0<=15||er(z)))break n}d=F-48>>>0>=10?0:!wr(b)&45!=(0|b)&d}if(wr(b)&&(d=0!=o[M+208|0]&d),D){E=i[f+2156>>2];break r}E=32,i[f+2156>>2]=32,d=0}if(!(!d|46!=(0|E)|!i[47203]|60!=(0|b))){J=i[f+2148>>2],e=r;break t}if(!d)break t}if(e=i[f+2148>>2]+189424|0,a[0|e]=32,a[e+1|0]=0,i[33285]=b,F-48>>>0<10&&(r=dt(b)?r:-4194305&r),(0|t)<2)break e;r=536621==(0|r)?536656:532520==(0|r)?532555:524358;break e}(i[33285]||(k=0,t=i[33283],i[t>>2]!=i[t+4>>2]))&&(k=0,er(i[f+2152>>2])&&(i[33285]=b))}r=e}if(1!=i[33712]){if((0|n)!=(0|(t=i[f+2156>>2])))d=i[f+2148>>2],57404==(0|t)&&(t=60,i[f+2156>>2]=60);else{A:{if(rn(n))t=57384;else{if(t=45,45==i[f+2156>>2])break A;t=32}i[f+2156>>2]=t}d=i[f+2148>>2]}i[f+2148>>2]=Ft(t,d+189424|0)+i[f+2148>>2],er(i[f+2156>>2])||rn(i[f+2156>>2])||(e=i[f+2148>>2],s[O+(e<<1)>>1]=i[33284]-i[47353],(0|e)<=(d+1|0)||kA(Ie+(d<<1)|0,255,e+~d<<1)),t=i[f+2148>>2],i[Ae>>2]=t;A:{t:{if((0|t)>725){if(!dt(i[f+2156>>2]))break t;t=i[f+2148>>2]}if((0|t)<796)continue;break A}if(t=i[f+2148>>2],!(i[f+2156>>2]-48>>>0>=10)&&(0|t)<796)continue}break}}a[0|(e=t+189424|0)]=32,a[e+1|0]=0,i[33285]=i[f+2152>>2],r=16384}j=f+2608|0,H=r,oe&&(e=i[w+780>>2],i[oe>>2]=e||H>>>12&7),e=(w+5184|0)+(i[w+6800>>2]<<1)|0,s[e+6>>1]=0,s[e+2>>1]=0,s[e+4>>1]=32767,E=C(4095&H,8388608&H?320:10),r=189424;e:{A:{t:if(e=o[189424]){for(;;){if(!!(255&(e=e<<24>>24))&e>>>0<33){if(e=o[0|(r=r+1|0)])continue;break t}break}if(o[0|r])break A}E=(0|(t=E-(e=i[47566])|0))>0?t:0,i[47566]=E+e,H=o[190268]?524288|H:H,i[M+8240>>2]=H;break e}i[47566]=E,e=o[190268],i[M+8240>>2]=H,e&&(R=1,i[47568]=i[47568]+1,(0|(e=i[47569]))<=0||(e=e-1|0,i[47569]=e,e||(a[190280]=0)))}i[49572]=1,i[47572]=655360,i[47573]=0,i[M+8184>>2]=0,i[M+8188>>2]=0,e=0,i[M+288>>2]=0,i[(t=M- -8192|0)>>2]=0,i[t+4>>2]=0,i[M+8200>>2]=0,i[M+8224>>2]=0,i[M+8228>>2]=0,i[(t=M+8232|0)>>2]=0,i[t+4>>2]=0,a[w+786|0]=32,s[w+784>>1]=8192,i[w+6812>>2]=32,s[w+1588>>1]=3,i[w+1584>>2]=0,r=0;e:if(!((0|(t=i[w+6800>>2]))<=0)){for(;;){if(s[(w+5184|0)+(r<<1)>>1]>0)break e;if((0|t)==(0|(r=r+1|0)))break}r=t}if(t=p[(w+5184|0)+(r<<1)>>1],s[w+1592>>1]=t,t)for(;e=!!(65535&~t)+e|0,t=p[(w+5184|0)+((r=r+1|0)<<1)>>1];);for(a[w+1594|0]=e,d=3,O=1,r=0;;){z=i[w+6808>>2],RA(w+6808|0,(S=(w+784|0)+d|0)-1|0),!o[M+170|0]|i[w+6808>>2]-48>>>0>=10||dt(z)&&(i[w+6808>>2]=97),Q?i[w+6812>>2]=Q:B&&RA(w+6812|0,B+189423|0),t=B;e:{A:if(r||(t=VA(w+6816|0,B+189424|0)+B|0,r=i[w+6816>>2])){if(D=VA(w+6804|0,e=t+189424|0),1==(0|r)){if(n=t-1|0,Q=32,F=0,32!=i[w+6812>>2]){t=n,e=32;break A}B=0,r=t;t:{r:switch(o[0|e]-43|0){case 0:r=t+1|0,B=64;break t;case 2:break r;default:break t}r=t+1|0,B=96}if(a[0|(e=r+189424|0)]-48>>>0>=10)b=r+1|0,D=-1;else{for(D=wt(e);r=(e=r)+1|0,a[e+189424|0]-48>>>0<10;);b=r,r=e}if((0|(Q=i[47350]))>247)e=0;else if(e=0,!((0|(r=a[r+189424|0]))<0)&&(r=JA(84868,255&r,14))){t=1+(e=r-84868|0)|0,-1==(0|D)&&(D=i[105536+(t<<2)>>2],B=0);t:{r:switch(e-8|0){case 0:i[49574]=0,i[49573]=D;break t;case 4:break r;default:break t}a[199304]=(0|D)>=3?1:0}e=1,i[47350]=Q+1,i[198304+(Q<<2)>>2]=(t+B|0)+(D<<8),t=b}Q=i[w+6812>>2],kA(n+189424|0,32,t-n|0),re=e+re|0,r=0;break e}Q=0,32==(0|r)|36!=i[49573]?(F=0,e=r):(32!=i[w+6812>>2]|32!=i[w+6804>>2]||(i[49573]=20),F=0,e=Xr(r,M))}else i[w+6804>>2]=32,F=1,Q=0,D=0,e=32;A:if(Z){if(Z=1,O=8,r=0,93!=(0|e)|93!=i[w+6804>>2])break A;t=t+1|0,e=32,Z=0}else if(64!=(240&(r=i[49573])))if(Z=0,16&r)r=0;else{t:{r:{n:{a:{if(!(8216!=(0|(b=8242==(0|e)||8217==(0|e)||146==(0|e)||180==(0|e)?39:e))&63!=(0|b)))if(dt(i[w+6808>>2])){if(b=e,dt(i[w+6804>>2])){b=39;break a}}else b=e;s:{if(1367!=(0|b)){if(1328==(0|b)){y|=1024,b=32;break a}if((e=b-44032|0)>>>0>11183)break a;if(n=((r=((k=65535&e)>>>0)/28|0)>>>0)%21|0,e=e-C(r,28)&65535,b-50500>>>0>587)break s;r=e?e+4519|0:0,n=n+4449|0;break r}y|=131072,J=i[w+6804>>2],e=i[w+6812>>2],b=32;break n}r=50500+(e+C(n,28)|0)|0,n=(k>>>0)/588|4352;break r}if(J=i[w+6804>>2],e=i[w+6812>>2],!((r=b-12592|0)>>>0>51)){n=4352|o[r+103296|0],r=0;break r}}f=t+189424|0;n:if(!(28268!=(0|(r=i[M+212>>2]))&24934!=(0|r)|39!=(0|b))&&!yr(e)&&(VA(w+6820|0,f+1|0),Vr(i[w+6820>>2]))){n=601,r=0;a:switch(J-110|0){case 6:break r;case 0:break a;default:break n}if(24934!=i[M+212>>2])break r;a[0|f]=32;break r}if(i[w+6824>>2]=32,(0|(e=i[49897]))>0)i[49897]=e-1,r=0;else{if(!b){r=0,n=0;break t}n:{a:{s:{i:if((L=i[M+180>>2])&&(k=b,(P=gr(b))&&(k=Xr(b,M)),!sn(L)))for(;;){i[w+16>>2]=0,i[w+624>>2]=k,e=VA(w+16|0,L)+L|0;o:if(i[w+624>>2]==i[w+16>>2]){if(o[0|e]){for(n=1,U=0,r=f;K=VA(w+16|0,e),X=VA(w+624|0,r),Ae=Xr(i[w+624>>2],M),i[w+624>>2]=Ae,r=r+X|0,U=(X=(0|Ae)==i[w+16>>2])+U|0,n&=X,o[0|(e=e+K|0)];);if(!n)break o;i[49897]=U}if(!(e=e+1|0))break i;if(8&o[188788]&&(i[w>>2]=L,i[w+4>>2]=e,en(i[47195],85187,w)),e=VA(w+6828|0,e)+e|0,o[0|e])break s;r=0;break a}for(;r=e,e=e+1|0,o[0|r];);for(;o[0|(r=(e=r)+1|0)];);if(sn(L=e+2|0))break}r=0,n=b;break n}VA(w+6824|0,e),P&&gr(J)&&(i[w+6824>>2]=ar(i[w+6824>>2])),r=i[w+6824>>2]}n=i[w+6828>>2],y|=2097152,P&&(n=ar(n))}if(8!=(0|n))break r}n=t;break e}r?i[w+6804>>2]=r:r=0}dt(n)||Vr(n)||Pr(i[M+336>>2],n)||!dt(i[w+6808>>2])|!(!o[M+170|0]|n-48>>>0>=10)&i[w+6804>>2]-48>>>0>=10||(n=32,N=1);t:{r:{n:{a:{s:{if(i[w+6808>>2]-48>>>0<10){if(n-48>>>0<10){e=v;break s}if(1<<(e=n-32|0)&20481&&e>>>0<=14)break a;N=1}else{if(e=0,44!=i[w+6812>>2])break s;if(e=v,44!=(0|n))break s}n=32;break a}if(91==(0|n)){if(2==(0|(b=i[w+6804>>2])))break n;if(n=91,91==(0|b)&&i[47204])break n}v=e}if(dt(n)){a:{s:{i:{if(dt(i[w+6808>>2])){if(!o[M+171|0])break i;if(e=i[w+6808>>2],!((0|n)>12352)&&(0|e)<12353)break i}else e=i[w+6808>>2];if(_=Pr(i[M+336>>2],e)?_:0,32!=(0|(e=i[w+6808>>2]))&&!Pr(i[M+336>>2],e)){e=32,G=rn(i[w+6808>>2])?G:256|G;break s}y=gr(n)?2|y:y,32!=i[w+6808>>2]|a[S-2|0]-48>>>0>=10|i[w+6812>>2]-48>>>0<10||(a[(w+784|0)+d|0]=32,e=1588+(C(Y,12)+w|0)|0,s[e>>1]=p[e>>1]+1,d=d+1|0)}if(e=32,32==(0|n))break a;if(_=_+1|0,(0|(b=i[M+600>>2]))<=0){e=n;break a}if(!((0|n)<=591&(0|(k=i[w+6808>>2]))>=(0|b))){if((0|n)<(0|b)){e=n;break a}if((0|_)<2){e=n;break a}if(!((0|k)<=591)){e=n;break a}}if(!dt(k)){e=n;break a}y|=16384,G|=128}N=1}if(de=de+1|0,gr(e)){if(b=Xr(e,M),i[M- -64>>2]){e=fe?b:712,r=fe?r:b,fe=1;break A}if(wr(i[w+6812>>2])){if(32==i[w+6808>>2]){e=b;break A}if(e=32,26465!=i[M+212>>2])break t;for(n=85240,k=(w+784|0)+d|0,D=0;;){if(f=Wt(n),32==o[0|(z=k-f|0)]&&!Dt(z+1|0,n,f=f-1|0)){if((0|(n=a[n+f|0]))==(0|b)){e=b;break A}if(65==(0|n)&&Nt(M,b)){e=b;break A}}if(n=i[131184+((D=D+1|0)<<2)>>2],11==(0|D))break}break t}if(e=32,32==(0|b))break A;if(!gr(i[w+6812>>2])){e=b;break A}if(!wr(i[w+6804>>2])){e=b;break A}if(VA(w+16|0,189424+(t+D|0)|0),!(28268!=i[M+212>>2]|2!=(0|_)|106!=(0|b)|73!=i[w+6812>>2])){e=b;break A}if(32==i[w+6808>>2]){e=b;break A}if(!dt(i[w+16>>2])){e=b;break A}G|=256,Q=32,N=1;break A}if(!O){O=0;break A}if((0|_)<3){O=0;break A}if(115!=(0|e)){O=0;break A}if(25966!=i[M+212>>2]){O=0;break A}if(32!=i[w+6804>>2]){O=0;break A}if(O|=4,e=32,39!=o[783+(n=d+w|0)|0])break A;a[n+783|0]=32;break A}e=32;a:{s:{i:{o:{l:switch(n-39|0){default:if(95==(0|n))break A;case 1:case 2:case 3:case 4:case 5:if(n-48>>>0>=10)break a;if(o[M+170|0]&&dt(i[w+6808>>2])&&!((b=i[w+6804>>2])-48>>>0<10|b-2406>>>0<10))break a;if(32==(0|(k=i[w+6808>>2])))break s;if(b=i[w+6808>>2],k-48>>>0<10)break i;if((0|(k=b))==(0|(b=i[M+128>>2])))break o;N=1;break A;case 6:if(!Vr(i[w+6812>>2])&&dt(i[w+6804>>2])){if(32!=i[w+6808>>2]){N=1;break A}if(y|=128,(0|Y)<=0)break A;n=1572+(C(Y,12)+w|0)|0,i[n>>2]=16384|i[n>>2];break A}if(n=i[w+6804>>2],!(32!=i[w+6812>>2]|32!=(0|n))){V=4;break A}if(45==(0|n)){t=t+1|0,V=4;break A}if(e=45,32!=i[w+6808>>2])break A;if(!dt(z))break A;if(dt(i[w+6812>>2]))break A;a[(w+784|0)+d|0]=32,n=1588+(C(Y,12)+w|0)|0,s[n>>1]=p[n>>1]+1,d=d+1|0;break A;case 7:if(46==i[w+6808>>2]){N=1;break A}if(e=46,(0|Y)<=0)break A;if(n=1572+(C(Y,12)+w|0)|0,1&a[n+1|0])break A;if(!dt(i[w+6812>>2]))break A;i[n>>2]=65536|i[n>>2],e=(e=Vr(i[w+6804>>2]))||45==i[w+6804>>2]?32:46;break A;case 0:}l:{if(46!=(0|(b=i[w+6812>>2]))||(n=115,115!=i[w+6804>>2])){if(!vr(b))break l;n=i[w+6804>>2]}if(dt(n))break r}if(1&(n=i[M+88>>2])){if(dt(i[w+6804>>2]))break r;n=i[M+88>>2]}if(2&n&&dt(i[w+6812>>2]))break r;if(!(!Pr(i[M+332>>2],i[w+6812>>2])|32!=(0|z))){t=(32==i[w+6804>>2])+t|0;break r}if(b=115!=(0|(n=i[w+6808>>2]))|pe,pe=0,!(1&b))break A;pe=!!(0|Vr(n)),V=4;break A}if(44==(0|b)&v){N=1;break A}v=1;break a}if(32!=(0|b))break a}dt(z)&&(dt(i[w+6812>>2])||(a[(w+784|0)+d|0]=32,e=1588+(C(Y,12)+w|0)|0,s[e>>1]=p[e>>1]+1,d=d+1|0))}e=n;break A}Z=1,n=t+1|0,v=e;break e}e=39,pe=0;break A}N=1,Q=32}else{if(e-48>>>0<10){r=0,n=(0|(b=i[49574]+1|0))>(15&i[49573]),i[49574]=n?0:b,e=n?32:e,N|=n,Z=0;break A}r=0,i[49574]=0,e=(n=i[w+6808>>2]-48>>>0<10)?32:e,N|=n,Z=0}if(Vr(e)){if(32==i[w+6808>>2]){y|=262144,n=t;break e}if(n=i[w+6816>>2]-9>>>0<2,k=1&N){D=0;A:if(!((0|x)>(0|(e=t-1|0))))for(;;){if(!(b=s[(w+5184|0)+(e<<1)>>1]))break A;if(D=((0|b)>0)+D|0,!((0|x)<=(0|(e=e-1|0))))break}a[1594+(C(Y,12)+w|0)|0]=D}if(G=n?262144|G:G,a[(w+784|0)+d|0]=32,e=d+1|0,!((0|Y)>298||(n=(w+1584|0)+C(Y,12)|0,(0|(b=p[n+4>>1]))>=(0|e)))){if((0|re)<=0?x=i[n>>2]:(x=198300+(i[47350]<<2)|0,i[x>>2]=128|i[x>>2],re=0,x=64|i[n>>2]),f=i[47352],a[n+6|0]=f,i[n>>2]=x|(de?O:-2&O)|(o[199304]?2048:0)|y,(0|f)>0){for(;y=(x=w+784|0)+e|0,x=x+(e=e-1|0)|0,a[0|y]=o[0|x],(0|e)>(0|b););a[0|x]=32,s[n+4>>1]=b+1,e=d+2|0}b=(w+1584|0)+C(Y=Y+1|0,12)|0,i[b>>2]=0,s[b+4>>1]=e,d=t;A:if(!((0|(n=i[w+6800>>2]))<=(0|t))){for(;;){if(s[(w+5184|0)+(d<<1)>>1]>0)break A;if((0|n)==(0|(d=d+1|0)))break}d=n}if(D=p[(w+5184|0)+(d<<1)>>1],s[b+8>>1]=D,de=0,n=0,D)for(;n=!!(65535&~D)+n|0,D=p[(w+5184|0)+((d=d+1|0)<<1)>>1];);a[b+10|0]=n,i[47352]=0,O=1,y=G,G=0,fe=0}N=0,r=k?0:r,n=k?B:t}else(0|d)>795?(n=t,t=x,e=d):(e=Ft(e,(w+784|0)+d|0)+d|0,n=t,t=x);i[47352]<(0|V)&&(i[47352]=V),V=0,x=t,d=e}if(F||(B=n,!((0|d)<799)))break}(0|re)<=0|Y||(e=198300+(i[47350]<<2)|0,i[e>>2]=128|i[e>>2],i[w+1584>>2]=64|i[w+1584>>2],Y=1),e=(w+784|0)+d|0,i[M+8204>>2]=e-1,t=0,a[0|e]=0,a[w+1590|0]=0,a[1590+(C(Y,12)+w|0)|0]=8;e:if((0|Y)<=0)i[w+1584>>2]=512|i[w+1584>>2],d=i[49572];else{e=Y-1|0;A:if(1!=(0|Y))for(r=e;;){if(!rn(a[p[1588+(C(r,12)+w|0)>>1]+(w+784|0)|0])){t=r;break A}if(b=(0|r)>1,r=r-1|0,!b)break}if(t=(w+1584|0)+C(t,12)|0,i[t>>2]=16|i[t>>2],4194304&H&&(e=(w+1584|0)+C(e,12)|0,256&(t=i[e>>2])||(i[e>>2]=65536|t)),i[w+1584>>2]=512|i[w+1584>>2],!((0|Y)<=0|(0|(d=i[49572]))>990))for(b=3|(e=w+624|0),k=2|e,Q=w+754|0,F=!(4194304&H),B=0,x=0;;){i[47354]=i[47354]+1;A:{if((0|(e=i[49827]))<=0||(e=e-1|0,i[49827]=e,e)){if(o[190280])break A}else a[190280]=0;e=p[1588+(C(B,12)+w|0)>>1]+(w+784|0)|0;t:if(!(a[0|e]-48>>>0>=10)&&(t=w+624|0,r=e,1227133512!=i[M+112>>2])){for(;;){r:{if(a[0|r]-48>>>0<10)a[0|t]=o[0|r],t=t+1|0,r=r+1|0;else{if(i[M+124>>2]!=a[0|r]|32!=o[r+1|0])break r;if(d=r+2|0,32==o[r+3|0]|a[0|d]-48>>>0>=10|32==o[r+4|0])break r;B=B+1|0,r=d}if(t>>>0<Q>>>0)continue;break t}break}kA(e+(t=t-(v=w+624|0)|0)|0,32,(r=(d=r-e|0)-t|0)>>>0<=d>>>0?r:0),_e(e,v,t)}for(t=0;r=t,t=t+1|0,a[e+r|0]-48>>>0<10;);t:if(r-5>>>0<=27){for(a[w+626|0]=32,s[w+624>>1]=8224,48!=o[0|e]&i[M+132>>2]>=(0|r)||(t=(w+1584|0)+C(B,12)|0,i[t>>2]=524288|i[t>>2]),G=(w+1584|0)+C(B,12)|0,D=0,d=b;t=e,!((e=a[0|e])-48>>>0>=10&(0|e)!=i[M+128>>2])&&(a[0|d]=e,e=d+1|0,v=r,(0|(r=r-1|0))<=0?d=e:i[M+112>>2]>>>r&1?(f=i[G+4>>2],y=(w+16|0)+C(D,12)|0,i[y>>2]=i[G>>2],i[y+4>>2]=f,i[y+8>>2]=i[G+8>>2],D=D+1|0,32!=(0|(y=i[M+124>>2]))&&(a[d+1|0]=y,e=d+2|0),a[0|e]=32,d=e+1|0,8&o[G+2|0]||((V=i[M+112>>2])>>>v-2&1&&(a[e+1|0]=48,a[e+2|0]=48,V=i[M+112>>2],d=e+3|0),V>>>v-3&1&&(a[0|d]=48,d=d+1|0))):d=e,e=t+1|0,d>>>0<Q>>>0););if(r=i[G+4>>2],e=(w+16|0)+C(D,12)|0,i[e>>2]=i[G>>2],i[e+4>>2]=r,r=i[G+20>>2],i[e+16>>2]=i[G+16>>2],i[e+20>>2]=r,r=i[G+12>>2],i[e+8>>2]=i[G+8>>2],i[e+12>>2]=r,r=1,(0|D)>0)for(;e=(w+16|0)+C(r,12)|0,i[e>>2]=-262209&i[e>>2],(0|D)>=(0|(r=r+1|0)););if(e=o[t+4|0]|o[t+5|0]<<8|o[t+6|0]<<16|o[t+7|0]<<24,r=o[0|t]|o[t+1|0]<<8|o[t+2|0]<<16|o[t+3|0]<<24,a[0|d]=r,a[d+1|0]=r>>>8,a[d+2|0]=r>>>16,a[d+3|0]=r>>>24,a[d+4|0]=e,a[d+5|0]=e>>>8,a[d+6|0]=e>>>16,a[d+7|0]=e>>>24,e=o[t+12|0]|o[t+13|0]<<8|o[t+14|0]<<16|o[t+15|0]<<24,t=o[t+8|0]|o[t+9|0]<<8|o[t+10|0]<<16|o[t+11|0]<<24,a[d+8|0]=t,a[d+9|0]=t>>>8,a[d+10|0]=t>>>16,a[d+11|0]=t>>>24,a[d+12|0]=e,a[d+13|0]=e>>>8,a[d+14|0]=e>>>16,a[d+15|0]=e>>>24,a[d+16|0]=0,d>>>0<=b>>>0)break t;for(e=o[G+6|0],D=0,r=b;;){for(x=ge(M,r,(w+16|0)+C(D,12)|0,255&e);e=o[0|r],r=r+1|0,32!=(0|e););if(e=0,a[G+6|0]=0,D=D+1|0,!(r>>>0<d>>>0))break}}else{if(i[47352]=0,x=ge(M,e,t=(w+1584|0)+C(B,12)|0,o[t+6|0]),(0|(r=i[47352]))>o[t+18|0]&&(a[t+18|0]=r,i[47352]=0),!(!(4096&x)|32==o[0|e]))for(;kA(w+624|0,0,150),i[w+624>>2]=538976288,i[w+628>>2]=538976288,a[w+632|0]=32,ge(M,_e(k,e,r=VA(w+16|0,e)),t,0),32!=o[0|(e=e+r|0)];);50331648&x&&(E=(e=F|(~i[33264]+Y|0)!=(0|B))?E:10,e|!oe||(i[oe>>2]=4,E=10))}if(128&x&&!((0|(t=i[33264]))<=0)){if(e=0,r=t,d=3&t)for(;v=(w+1584|0)+C(r+B|0,12)|0,i[v>>2]=1048576|i[v>>2],r=r-1|0,(0|d)!=(0|(e=e+1|0)););if(t>>>0>=4)for(;e=(w+1584|0)+C(r+B|0,12)|0,i[e>>2]=1048576|i[e>>2],i[(t=e-12|0)>>2]=1048576|i[t>>2],i[(t=e-24|0)>>2]=1048576|i[t>>2],i[(e=e-36|0)>>2]=1048576|i[e>>2],r=r-4|0;);i[33264]=r}}if(d=i[49572],(0|Y)<=(0|(B=B+1|0)))break e;if(!((0|d)<991))break}}if((0|(r=i[47351]))<(0|(b=i[47350]))){for(Q=i[47202],F=i[49846],D=i[47352];;){e=(t=i[198304+(r<<2)>>2])>>8;e:{A:switch((31&t)-9|0){case 0:Q=e;break e;case 4:F=e;break e;case 3:break A;default:break e}D=t>>>0>=256?e+D|0:0}if(!(!(128&t)&(0|b)>(0|(r=r+1|0))))break}i[47352]=D,i[47351]=r,i[49846]=F,i[47202]=Q}i[49572]=d+2,i[(e=190288+(d<<3)|0)>>2]=589824,s[e+4>>1]=n,i[e+8>>2]=589824,s[e+12>>1]=n,t=Y&&i[47199]?E:10,i[33285]?e=0:(e=i[33283],e=i[e>>2]==i[e+4>>2]),E=e?t:E,B=R,b=0,Y=0,j=k=j-32192|0,i[k+24>>2]=0,i[k+28>>2]=0,i[k+16>>2]=0,i[k+20>>2]=0,i[k+8>>2]=0,i[k+12>>2]=0,i[k>>2]=0,i[k+4>>2]=0,n=i[49572],f=p[190284+(n<<3)>>1];e:{if((0|(r=n-3|0))<0)e=r;else{for(;;){if(b=(0|(t=127&o[3+(e=190288+(r<<3)|0)|0]))<(0|b)?b:t,p[e+4>>1])e=r;else if(e=-1,t=(0|r)>0,r=r-1|0,t)continue;break}if(b>>>0>3)break e}for(;;){if((0|(e=e-1|0))<0)break e;if(64&o[0|(t=190288+(e<<3)|0)]){a[t+3|0]=4;break e}if(!(o[t+3|0]<4))break}}if(e=i[M+292>>2],r=0,(0|n)<=0)b=0;else for(v=-1,b=0;;){t=e,i[M+292>>2]!=(0|e)&&(s[(e=190288+(r<<3)|0)>>1]=32|p[e>>1]),(0|b)>0&&(G=i[4+(x=190288+(r<<3)|0)>>2],i[(d=190288+(e=r-b<<3)|0)>>2]=i[x>>2],i[d+4>>2]=G,-1!=(0|v)&&(s[4+(e+190288|0)>>1]=v),v=-1);e:{if(21==o[2+(190288+(d=r<<3)|0)|0]){if(e=o[7+(x=d+190288|0)|0],2&o[0|x])break e;A:if((0|e)!=(0|t)){if(x=o[10+(d+190288|0)|0]-9|0){if(12==(0|x))break A;break e}if(21!=o[18+(d+190288|0)|0])break e}-1==(0|v)&&(v=(e=p[4+(d+190288|0)>>1])||-1),b=b+1|0}e=t}if((0|n)==(0|(r=r+1|0)))break}if(i[49572]=n-b,qr(e),(t=i[M+36>>2])&&!((0|(e=(b=i[49572])-1|0))<0))for(Q=256&t,y=4&t,F=8&t,G=15&t,N=16&t,R=2&t,t=t>>>8&1,r=0;;){if(d=b,n=r,b=e,21==(0|(e=o[2+(x=190288+(O=e<<3)|0)|0]))){e:{A:{if((0|(r=d-2|0))>=0)for(;;){if(21==o[2+(190288+(e=r<<3)|0)|0])break A;if(e=(0|r)>0,r=r-1|0,!e)break}e=i[M+292>>2];break e}e=o[7+(e+190288|0)|0]}qr(e),e=o[x+2|0]}if(r=n,(e=i[144464+((255&e)<<2)>>2])&&(r=t,!(32&o[0|x]))){r=o[e+11|0],v=0,R&&(118!=(0|(d=o[0|e]))&82!=(0|d)||(n=N?0:n,v=1));e:{A:{t:{r:switch((d=253&r)-4|0){case 1:break t;case 0:break r;default:break A}if(G&&(r=1,!n))break e;if(2!=(0|(r=n)))break e;if(r=2,!(e=o[e+13|0]))break e;a[x+2|0]=e;break e}if(G&&(r=2,!n))break e;if(1!=(0|(r=n)))break e;if(r=1,!(e=o[e+13|0]))break e;a[x+2|0]=e;break e}r=0,F&&(r=d?n:0)}r=e=v?0:r,p[4+(O+190288|0)>>1]&&(r=e=y?0:e,Q&&(r=e||1))}if(!((0|(e=b-1|0))>=0))break}if(qr(i[M+292>>2]),i[49572]<=0)N=-2,r=0;else{for(r=-1,n=0,x=0,F=0;;){e=x<<3,-1!=(0|r)&&(s[4+(e+190288|0)>>1]=r),21==o[2+(v=e+190288|0)|0]&&qr(o[7+(e+190288|0)|0]),G=i[49572];e:{if(!(32&o[0|(d=e+190288|0)])){n=(0|(t=G-1|0))>(0|x)?i[144464+(o[10+(e+190288|0)|0]<<2)>>2]:n,!(p[d+12>>1]|(0|t)==(0|x))&&(D=0,o[n+11|0]|!n)||(D=1),b=o[v+2|0];A:if(!((0|(N=i[49848]))<=0))for(t=e+190288|0,r=0;;){if(Q=C(r,3),o[Q+199408|0]==(255&b)&&!((y=o[2+(Q+199408|0)|0])&(1^D)|(4&o[t+3|0]?2&y:0)|(p[t+4>>1]?0:4&y))){if(b=o[1+(Q+199408|0)|0],a[v+2|0]=b,!(2&o[i[144464+(b<<2)>>2]+4|0])|o[t+3|0]<2)break A;a[t+3|0]=0;break A}if((0|N)==(0|(r=r+1|0)))break}if(!(255&b)){r=p[4+(e+190288|0)>>1];break e}}r=i[d+4>>2],e=(k+32|0)+(F<<5)|0,t=i[d>>2],i[e>>2]=t,i[e+4>>2]=r,t=i[144464+(t>>>14&1020)>>2],i[e+8>>2]=t,a[e+17|0]=o[t+11|0],F=F+1|0,r=-1}if(!((0|F)<1e3&(0|G)>(0|(x=x+1|0))))break}if(b=0,r=0,!((0|(N=F-2|0))<=0))for(;;){e:if(p[4+((k+32|0)+(b<<5)|0)>>1]){for(t=(0|b)>(0|N)?b:N,r=0,e=b;;){if((0|e)!=(0|t)){if(r=(0|r)>(0|(d=o[3+((n=k+32|0)+(e<<5)|0)|0]))?r:d,!p[4+(n+((e=e+1|0)<<5)|0)>>1])continue}else e=t;break}if((0|e)<=(0|b))break e;if(t=~b+e|0,n=0,d=e-b&7)for(;a[6+((k+32|0)+(b<<5)|0)|0]=r,b=b+1|0,(0|d)!=(0|(n=n+1|0)););if(t>>>0<7)break e;for(;a[6+(t=(k+32|0)+(b<<5)|0)|0]=r,a[t+38|0]=r,a[t+70|0]=r,a[t+102|0]=r,a[t+134|0]=r,a[t+166|0]=r,a[t+198|0]=r,a[t+230|0]=r,(0|(b=b+8|0))!=(0|e););}else e=b+1|0;if(b=e,!((0|N)>(0|e)))break}}for(i[k+40>>2]=i[36125],qr(i[M+292>>2]),z=(0|r)<4,x=1,Q=1,G=0,t=0,r=0,R=0;;){e:{A:{t:{r:{if(t){if(n=(e=k+32|0)+((v=r-1|0)<<5)|0,G=o[2+(e+(r<<5)|0)|0],(0|v)>0){if(e=x-(r=(0|x)>0)|0,v>>>0>=(b=r?x:2)>>>0)for(;d=(r=(k+32|0)+(b<<5)|0)-32|0,x=i[r+12>>2],i[d+8>>2]=i[r+8>>2],i[d+12>>2]=x,x=i[r+4>>2],i[d>>2]=i[r>>2],i[d+4>>2]=x,x=i[r+28>>2],i[d+24>>2]=i[r+24>>2],i[d+28>>2]=x,x=i[r+20>>2],i[d+16>>2]=i[r+16>>2],i[d+20>>2]=x,(0|v)>=(0|(b=b+1|0)););x=e}D=i[144464+(G<<2)>>2],i[n>>2]=0,i[n+4>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+8>>2]=0,i[n+12>>2]=0,a[n+2|0]=t,e=i[144464+(t<<2)>>2],i[n+8>>2]=e,G=n}else{if((0|r)>=(0|N)|(0|R)>=997)break r;d=o[2+(n=(b=r<<5)+(k+32|0)|0)|0],e=i[144464+(d<<2)>>2],i[n+8>>2]=e,v=p[n+4>>1],21==(0|d)&&qr(o[7+(b+(k+32|0)|0)|0]),x=v?r:x,D=i[144464+(o[n+34|0]<<2)>>2],i[n+40>>2]=D,v=r}if(!e){t=0,r=v+1|0;continue}if(le(M,256,n,k+32040|0,k),(0|(r=i[k+32052>>2]))>0&&(b=(k+32|0)+(v<<5)|0,D=i[144464+(r<<2)>>2],i[b+40>>2]=D,a[b+34|0]=r,a[b+49|0]=o[D+11|0]),r=0,t)t=e;else if((0|(b=i[k+32056>>2]))<=0)t=e;else{t=i[144464+(b<<2)>>2],i[n+8>>2]=t,r=o[n+2|0],a[n+2|0]=b,b=p[n>>1];n:if(2!=o[t+11|0])s[n>>1]=65531&b;else{if(s[n>>1]=4|b,2==o[e+11|0])break n;a[n+3|0]=0}le(M,256,n,k+32040|0,k)}if((0|(d=i[k+32048>>2]))<=0)b=t;else{if(b=i[144464+(d<<2)>>2],a[n+2|0]=d,i[n+8>>2]=b,e=o[b+11|0],F=1,1==(0|d)){O=2==(0|e);break A}d=p[n>>1];n:if(2!=(0|e))s[n>>1]=65531&d;else{if(s[n>>1]=4|d,2==o[t+11|0])break n;a[n+3|0]=0}le(M,256,n,k+32040|0,k)}if(O=0,2!=(0|(e=o[b+11|0]))){F=0;break A}if(O=1,F=0,e=2,o[n+3|0]>1){Y=0;break A}d=n+3|0,Y=Y+1|0,t=n;n:{if(8&(y=i[M+12>>2])){for(;;){a:switch(y=t,t=t+32|0,o[y+49|0]){case 0:break A;case 2:break a;default:continue}break}if(o[0|(t=y+35|0)]>1)break A;if(o[n+6|0]<=3&&(a[0|d]=0),o[y+38|0]<4)break n;break A}if(1&Y|(0|Y)<2)break A;if(2&y)break t;if(z)t=d;else if(t=d,p[n+36>>1])break t}a[0|t]=0;break A}i[36423]=R+2,s[(e=145840+(R<<5)|0)>>1]=0,a[e+2|0]=9,a[e+20|0]=2,i[e+12>>2]=E,s[e+4>>1]=f,a[e+17|0]=0,a[e+18|0]=0,i[e+8>>2]=i[36125],s[e+32>>1]=0,a[e+34|0]=9,a[e+52|0]=0,i[e+44>>2]=0,s[e+36>>1]=0,a[e+49|0]=0,a[e+50|0]=0,i[e+40>>2]=i[36126],qr(i[M+292>>2]),j=k+32192|0;break e}Y=1}if(!(8&(t=p[n+32>>1]))|(0|v)<=0||(d=o[D+11|0])>>>0>15|!(1<<d&457)||(r=o[D+10|0],s[n+32>>1]=8^t),P=p[n+36>>1]){A:if(t=i[M+4>>2]){t:switch(0|e){default:r=512&t?11:r;break;case 0:break A;case 2:}if(2==o[D+11|0]){(d=12&t)&&(r=12!=(0|d)?23:11);t:if(O){r:switch(3&t){case 2:r=10;break t;case 0:break t}r=23}o[n+35|0]<4||(r=256&t?10:r)}}if(!((0|n)==(0|G)|(0|R)<=0)){A:{t:{r:switch(0|(t=7&i[M>>2])){case 0:break A;case 1:break r;default:break t}if(r-12>>>0>4294967293)break A}r=o[t+101916|0]}r=i[47205]>0?24:r}}if(i[n+72>>2]=i[144464+(o[n+66|0]<<2)>>2],t=i[k+32060>>2],t=r||t||r,!F){a[17+(d=145840+(y=R<<5)|0)|0]=e,i[d+8>>2]=b,a[d+16|0]=0,s[d>>1]=p[n>>1],a[d+3|0]=15&o[n+3|0],a[d+6|0]=o[n+6|0],r=o[n+7|0],s[d+4>>1]=0,a[d+7|0]=r,F=o[b+10|0],a[d+2|0]=F;A:if(r=p[n+4>>1]){if(s[d+4>>1]=r,B=1&B?5:1,a[20+(n=y+145840|0)|0]=B,r=Q,Q=0,!r){B=0;break A}a[n+20|0]=8|B,B=0}else a[20+(y+145840|0)|0]=0;i[12+(r=y+145840|0)>>2]=i[k+32084>>2]<<1,!P|24!=(0|F)||(0|(n=i[47205]))<=0||(i[d+8>>2]=i[36126],i[r+12>>2]=C(n,14)),(1<<e&428?e>>>0<=8:0)|2&o[b+7|0]&&(i[r+12>>2]=128,a[d+16|0]=0),a[21+(e=y+145840|0)|0]=255,a[e+22|0]=255,s[e+18>>1]=5120,R=R+1|0}r=v+1|0;continue}break}s[88922]=1,i[44462]=0,re&&(s[145776+(i[36423]<<5)>>1]=2,e=198304+(i[47350]<<2)|0,i[e>>2]=128,i[(e=e-4|0)>>2]=128|i[e>>2]),a[190268]=H>>>19&1,he&&(i[he>>2]=H<<14>>31&189360)}j=w+6832|0,N=i[47192],O=i[A+12>>2],t=0,d=0,x=0,y=0,G=0,V=0,E=0,j=f=j-6e3|0;e:if(!((0|(n=(R=i[36423])-1|0))<=0)){for(;a[2+(f+C(t,6)|0)|0]=0,4&o[145840+(e=t<<5)|0]?(r=f+C(y,6)|0,a[r+1|0]=0,e=e+145840|0,a[r+3|0]=o[e+49|0],e=o[e+3|0],a[0|r]=e,y=y+1|0,V=(e>>>0>3)+V|0):27!=o[i[8+(e+145840|0)>>2]+10|0]|(0|y)<=0||(e=(f+C(y,6)|0)-4|0,a[0|e]=4|o[0|e]),(0|n)!=(0|(t=t+1|0)););if(a[f+C(y,6)|0]=0,y)if(1==i[N+148>>2]){if(!((0|R)<=0)){for(e=-2&R,r=1&R,t=145840;x=2==o[t+17|0]&&o[t+3|0]>3?d:x,x=2==o[t+49|0]&&o[t+35|0]>3?1|d:x,t=t- -64|0,d=d+2|0,(0|e)!=(0|(G=G+2|0)););!r|2!=o[t+17|0]||(x=o[t+3|0]>3?d:x)}if(a[3+(b=145840+(e=x<<5)|0)|0]=7,30313==i[N+212>>2]&&(o[7+(e=e+145840|0)|0]||(a[e+7|0]=br(55),R=i[36423])),!((0|R)<=0)){for(G=0,t=145840,e=145840,d=v=i[36125],n=0,Q=1;;){if(o[t+17|0]?B=i[36125]:(B=i[36125],v=(r=o[i[t+8>>2]+14|0]>50)?B:v,Q|=r),r=o[t+20|0]?B:d,4&o[0|t]){B=o[t+7|0],d=i[144464+(B<<2)>>2];A:{if(6840683==(0|(y=i[N+212>>2]))){if(49!=i[r>>2])break A;if((y=i[d>>2]-49|0)>>>0>5|!(1<<y&41))break A;a[e+7|0]=br(50),y=i[N+212>>2]}if(!(6516078!=(0|y)&31336!=(0|y))){y=0,B||(n=br(1&(y=n|Q)?13621:12593),a[t+7|0]=n,d=i[144464+(n<<2)>>2]),(0|x)!=(0|G)|13621!=(1024|i[d>>2])||(a[b+3|0]=6),3420466==i[v>>2]&&(a[e+7|0]=br(3420466==i[d>>2]?13619:12594));t:{if(12597==i[r>>2]){if(12597!=(0|(B=i[d>>2])))break t;a[e+7|0]=br(13109)}B=i[d>>2]}n=y,12593==(0|B)&&(13621==(0|(B=i[v>>2]))&&(a[t+7|0]=br(12850),B=i[v>>2]),13619==(0|B)&&(a[t+7|0]=br(13107),B=i[v>>2]),3420466==(0|B)&&(a[t+7|0]=br(13364)),a[t+3|0]=0)}}Q=0,v=d,e=t}else d=r;if(t=t+32|0,!((0|(G=G+1|0))<(0|(r=i[36423]))))break}if(d=0,t=145840,!((0|r)<=0))for(;4&o[0|t]&&((e=o[t+7|0])||(a[t+7|0]=17,e=17),e=i[144464+(e<<2)>>2],a[t+21|0]=o[e+12|0],a[t+22|0]=o[e+13|0]),t=t+32|0,(0|r)!=(0|(d=d+1|0)););}}else{if(e=i[N+152>>2],e=N+C(z=(0|e)>7?1:e,6)|0,M=o[0|(z?e+637:N+157)],H=o[0|(z?636+(e+O|0):156+(N+O|0))],a[133068]=4==(0|O),!((0|y)<=0)){for(F=y-1|0,D=O-1>>>0>1,r=0,n=0;;){w=f+C(n,6)|0,E=((e=o[0|w])<<24>>24>3)+E|0;A:if(6==(0|e)){e=n-3|0,t=n;t:{for(;;){if((0|t)<=(0|r)|(0|e)>=(0|t))break t;r:switch(b=f+C(t=t-1|0,6)|0,o[0|b]-4|0){case 2:break t;case 0:break r;default:continue}break}a[0|b]=3}t=n;t:{for(;;){if((0|y)<=(0|(t=t+1|0)))break t;r:switch(o[f+C(t,6)|0]-4|0){case 0:break t;case 2:break r;default:continue}break}a[w+2|0]=2,a[0|w]=5,e=r;break A}if(6==o[0|w]){a[w+2|0]=2,k=0;t:if((0|y)<=(0|(e=n+1|0)))b=n,Z=0;else if(Z=1,(0|(d=a[f+C(e,6)|0]))>4)b=n;else{for(x=(V-E|0)>1,b=n;;){if(t=e,4==(255&d)&&(e=x+1|0,x=1,!((0|e)<=1))){e=t;break t}if(Z=(0|y)>(0|(e=t+1|0)),(0|e)==(0|y))break;if(b=t,(0|(d=a[f+C(e,6)|0]))>4)break t}b=F,e=y}d=-1,B=0,x=0,Q=-1,G=0,v=-1;t:{if((0|(t=r))<(0|e)){for(;d=(P=(0|(v=a[f+C(t,6)|0]))>3)&&(0|d)<0?t-r|0:d,k=(G=(0|x)>(0|v))?k:(0|x)<(0|v)?t:B,Q=P?t:Q,B=G?B:t,P=(0|t)!=(0|b),x=G?x:v,t=t+1|0,P;);if(G=B,v=Q,(0|d)>=0)break t}d=e,B=G,Q=v}i[33269]=b-B,i[33268]=d,i[33270]=B,i[33271]=k;t:if(o[133068])i[33270]=e,i[33271]=e;else if((0|Q)>=0){if((0|e)!=(0|y))break t;a[f+C(Q,6)|0]=7}else a[f+C(B,6)|0]=7;ue(f,z,r,e,H),!Z&!!(0|O)||(H=D?o[N+156|0]:o[N+157|0])}else e=r}else e=r;if((0|e)>=(0|n))r=e;else if(4&o[w+2|0]){for(r=n+1|0,d=-1,Q=0,B=0,x=0,t=e,k=-1;d=(G=(0|(b=a[f+C(t,6)|0]))>3)&&(0|d)<0?t-e|0:d,Q=(v=(0|b)<(0|x))?Q:(0|b)>(0|x)?t:B,k=G?t:k,B=v?B:t,G=(0|t)!=(0|n),x=v?x:b,t=t+1|0,G;);i[33269]=n-B,i[33270]=B,i[33271]=Q,i[33268]=(0|d)<0?r:d,o[133068]?(i[33270]=r,i[33271]=r):(0|k)>=0?a[f+C(k,6)|0]=7:a[f+C(B,6)|0]=7,ue(f,z,e,r,M)}else r=e;if((0|y)==(0|(n=n+1|0)))break}if(!((0|r)>=(0|y))){for(d=-1,Q=0,B=0,x=0,t=r,k=-1;d=(b=(0|(e=a[f+C(t,6)|0]))>3)&&(0|d)<0?t-r|0:d,Q=(n=(0|e)<(0|x))?Q:(0|e)>(0|x)?t:B,k=b?t:k,B=n?B:t,x=n?x:e,(0|y)!=(0|(t=t+1|0)););i[33270]=B,i[33271]=Q,i[33269]=~B+y,i[33268]=(0|d)<0?y:d,o[133068]?(i[33270]=y,i[33271]=y):(0|k)>=0?a[f+C(k,6)|0]=7:a[f+C(B,6)|0]=7,ue(f,z,r,y,H)}}if((0|R)<=0)break e;for(t=0,G=0;;){if(v=r=145840+(b=t<<5)|0,e=f+C(G,6)|0,d=o[0|e],a[r+3|0]=d,4&o[0|r]){n=b+145840|0,r=o[e+4|0],a[n+21|0]=r,x=o[e+5|0],a[n+16|0]=0,a[n+22|0]=x;A:{if(1&(B=o[e+2|0]))e=2;else{if(d>>>0<6)break A;e=o[e+1|0]}a[n+16|0]=e}r>>>0<=(255&x)>>>0?(e=x,x=r):(a[n+21|0]=x,a[n+22|0]=r,e=r),(r=o[7+(b+145840|0)|0])&&(e=(255&e)+(255&x)>>>1|0,r=i[144464+(r<<2)>>2],a[n+22|0]=e+o[r+13|0],a[n+21|0]=e+o[r+12|0]),2&B&&(a[v+3|0]=8|d),G=G+1|0}if((0|R)==(0|(t=t+1|0)))break}}}if(j=f+6e3|0,G=i[47192],t=0,D=0,k=0,E=0,j=f=j-160|0,i[36423]>=2)for(O=i[30450],d=1;;){if(d=(e=d)+1|0,y=o[3+(n=145840+(x=e<<5)|0)|0],2&(B=p[n>>1])){for(;2==(31&(b=i[198304+(E<<2)>>2]))&&(je(127&b,b>>>8|0),i[36432]=110,i[36433]=100,i[36434]=450,i[36430]=5,B=i[50786],v=i[32972],(0|(r=i[v+84>>2]))>0&&(B=(0|C(r,B))/100|0),Q=o[((0|(r=(0|B)>=359?359:B))<=80?80:r)+101856|0],r=(0|(r=(0|B)>=450?450:B))>399?6:(0|r)>379?7:Q,i[32526]=(0|C(r,i[v+72>>2]))/256,i[32527]=(0|C(r,i[v+76>>2]))/256,i[32528]=(0|C(r,i[v+80>>2]))/256,r>>>0>7||(v=r-1|0,i[32528]=v,i[32526]=r,i[32527]=v)),E=E+1|0,!(128&b););B=p[n>>1]}v=d<<5,Q=e-1|0,r=7&y;e:{A:{t:{r:{n:{a:{s:{i:{o:{l:switch(H=o[17+(x+145840|0)|0],0|(b=4&B?2:H)){case 2:break n;case 3:case 8:break a;case 5:break s;case 6:case 7:break i;case 4:break o;case 0:break l;default:break e}t=0;break e}if(6!=(0|(e=o[17+(145840+(Q<<5)|0)|0]))?(r=4==(0|e)?60:i[34063]>0||r>>>0<4?48:60,a[18+(x+145840|0)|0]=r):(r=25,a[18+(x+145840|0)|0]=25),!(16&o[0|G])|!o[20+(x+145840|0)|0]||(a[18+(x+145840|0)|0]=60,r=60),64&o[i[8+(x+145840|0)>>2]+6|0]&&(r=r+30|0,a[18+(x+145840|0)|0]=r),t=0,!(8&B))break e;a[18+(x+145840|0)|0]=o[G+164|0]+r;break e}!(n=o[20+(e=x+145840|0)|0])|1&a[i[e+8>>2]+7|0]&2==o[17+(145840+(Q<<5)|0)|0]||(a[18+(x+145840|0)|0]=15),r=o[17+(v+145840|0)|0],8&o[i[8+(x+145840|0)>>2]+4|0]|r|8!=o[17+(145840+(Q<<5)|0)|0]||(a[18+(x+145840|0)|0]=25),64&o[i[8+(145840+(e=Q<<5)|0)>>2]+5|0]&&(a[18+(x+145840|0)|0]=30),!n|!(16&i[G>>2])||(a[18+(x+145840|0)|0]=30);i:if(o[20+(v+145840|0)|0]|!(32&o[i[8+(x+145840|0)>>2]+4|0])|4!=(0|r))i[12+(x+145840|0)>>2]=256;else{if(n=x+145840|0,2==o[17+(e+145840|0)|0]){i[n+12>>2]=200;break i}i[n+12>>2]=150}if(7!=(0|b))break e;if(D|=2==(0|r),2!=(254&o[17+(e+145840|0)|0]))break e;i[12+(x+145840|0)>>2]=i[12+(e+145840|0)>>2]+255>>>1;break e}6==(254&(r=o[17+(145840+(e=Q<<5)|0)|0]))|3==(0|r)|32&i[i[8+(e+145840|0)>>2]+4>>2]&&(a[18+(x+145840|0)|0]=30);s:if(2==(254&(n=o[17+(v+145840|0)|0]))){D=o[20+(v+145840|0)|0]&&2!=(0|n)?D:1,a[18+(n=x+145840|0)|0]=40,y=0;i:{o:switch(0|r){case 0:if((e=i[12+(e+145840|0)>>2])>>>0>39)break i;y=40-e|0;break i;case 2:break i}if(o[20+(x+145840|0)|0])break s;y=20;o:switch(r-3|0){case 1:if(y=0,!(8&o[i[8+(e+145840|0)>>2]+4|0]))break i;break s;case 0:break i;case 5:break o;default:break s}y=12}a[n+18|0]=y}if(!(16&o[0|G])|!o[20+(x+145840|0)|0])break e;if(o[18+(e=x+145840|0)|0]>19)break e;a[e+18|0]=20;break e}n=o[G+296|0],b=r=x+145840|0,i[r+12>>2]=256,a[r+19|0]=n;a:if(o[r+20|0]){B=25;s:switch(o[17+(145840+(Q<<5)|0)|0]-2|0){case 0:if(B=12,1&a[i[8+(x+145840|0)>>2]+7|0])break a;break;case 1:break s;default:break a}a[18+(x+145840|0)|0]=B}if(2==(0|(v=o[17+(v+145840|0)|0]))){k=1;break e}if(a[22+(n=x+145840|0)|0]=t,2==(254&o[17+(145840+(r=Q<<5)|0)|0]))break r;if(r=t,(0|(b=i[36423]))<=(0|e))break A;for(;;){if(2==o[17+(145840+(r=e<<5)|0)|0]){r=o[22+(r+145840|0)|0],a[n+22|0]=r;break A}if((0|b)==(0|(e=e+1|0)))break}break t}if(N=x+145840|0,F=r^r>>>0<2,r=(R=8&y)?25:o[296+(F+G|0)|0]-k|0,a[N+19|0]=r,(i[36423]-3|0)>(0|e)||(0|(b=255&r))<=(0|(r=i[G+52>>2]))||(a[N+19|0]=r),r=0,y=0,!(B=o[n+52|0]))for(;b=i[n+40>>2],y=2==o[n+49|0]?(~i[b+4>>2]>>>20&1)+y|0:y,r=27==o[b+10|0]?2:r,b=n,n=n+32|0,!(B=o[b+84|0]););b=N+96|0,e=145840+(z=e+2<<5)|0,i[34063]=y,w=o[i[n+40>>2]+10|0],v=v+145840|0,o[17+(z+145840|0)|0]|23!=o[i[v+8>>2]+10|0]?(n=b,b=e,e=v):n=x+145968|0,v=o[i[b+8>>2]+15|0];n:if(y)v=o[i[G+96>>2]+(o[i[e+8>>2]+15|0]+C(v,10)|0)|0],8!=o[e+17|0]|4!=(254&o[b+17|0])||(v=8&o[i[n+8>>2]+4|0]?v-15|0:v);else{if(M=i[G+100>>2],z=o[i[e+8>>2]+15|0],n=o[e+20|0],v=o[M+(z+C(n|o[b+20|0]?1==(0|v):v,10)|0)|0],!n|!(32&o[0|G]))break n;v=o[1+(M+C(z,10)|0)|0]+v>>>1|0}n=B>>>1|0,z=!y,B=(0|(v=(0|C(i[130104+(y?1==(0|y)?4:8:0)>>2],v))/128|0))<=8?8:v;n:if(7!=(0|F))R&&(B=i[G+200>>2]+B|0);else{if(B=(v=i[G+200>>2])+B|0,!R)break n;B=((0|v)/2|0)+B|0}v=n&z|27==(0|w),(n=p[304+(G+(F<<1)|0)>>1])||(n=p[G+316>>1]),B=C(n<<16>>16,B),(y=o[7+(n=x+145840|0)|0])&&(F=o[i[144464+(y<<2)>>2]+14|0])&&(B=(0|C(B,F))/100|0),1==(v|2==(0|r))&&(2097152&(r=i[G+12>>2])||(B=(0|C(262144&r?282:256+((280-(o[i[8+(x+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,B))/256|0)),F=x+145840|0,r=C(i[32526],i[G+196>>2]),R=2!=(0|H)?256:(0|((0|r)>(0|B)?B:r))/128|0,i[F+12>>2]=R,(r=o[F+16|0])>>>0>=19&&(An(84371,28,O),a[F+16|0]=0,y=o[n+7|0],r=0),B=r+1|0,(r=255&y)?(Jt(r,f+8|0),r=Jr(i[f+132>>2])):r=i[129280+((255&B)<<2)>>2],v=x+145840|0,1&(k|D)&&(n=145840+(x=Q<<5)|0,k=o[0|r],r=o[v+21|0],r=((0|C(k,o[v+22|0]-r|0))/256|0)+r|0,a[n+22|0]=r,t=(r-(t=255==(0|r)?255:t)|0)>16?r-16|0:t,a[n+21|0]=t,n=0,(0|t)<(0|r)&&(a[F+16|0]=B,n=2),i[12+(t=x+145840|0)>>2]=R,a[t+16|0]=n,r=o[N+19|0],a[t+19|0]=3!=o[t+17|0]&&r>>>0>18?18:r),t=2!=(0|H),n=-2&(r=p[e>>1]),s[e>>1]=n;n:{a:{s:switch(o[e+17|0]-3|0){case 5:if(2==o[b+17|0])break n;n=1|r;break a;case 0:break s;default:break n}if(s[e>>1]=1|r,2!=o[b+17|0]&&12146!=i[i[e+8>>2]>>2])break n}s[e>>1]=n}t?(0|(e=t<<4))<=((r=o[v+22|0])-(n=o[v+21|0])|0)||(n=(0|(e=r-e|0))>0?e:0,a[v+21|0]=n):(r=o[v+22|0],n=o[v+21|0]),e=255&n,t=((0|C(o[i[129280+(o[F+16|0]<<2)>>2]+127|0],r-e|0))/256|0)+e|0,k=0,D=0;break e}n=i[12+(r+145840|0)>>2],i[b+12>>2]=n,3==(0|H)&&(n=i[32526],i[b+12>>2]=n),r=t;r:switch(v-5|0){case 0:i[b+12>>2]=(C(n,160)>>>0)/100;break t;case 2:break r;default:break A}i[b+12>>2]=(C(n,120)>>>0)/100}r=t}D=0,a[16+(e=x+145840|0)|0]=0,n=e,r=(e=255&r)-16|0,a[n+21|0]=e>>>0>=r>>>0?r:0}if(!(i[36423]>(0|d)))break}if(j=f+160|0,15&(n=i[47197])|i[36456]){e=0,b=0,j=r=j-80|0;e:if((t=i[33222])||(i[33223]=500,t=se(500),i[33222]=t,t)){if(!((i[36423]-2|0)<2)){for(e=n>>8,G=128&n?0:e,y=e&n<<24>>31,v=2&n,n=r+32|1,x=1;;){if(nA(r,i[8+(d=145840+(Q=x<<5)|0)>>2],d,v,r+72|0),e=r+32|0,1==(13&(t=o[d+20|0]))&&(a[r+32|0]=32,e=n),!G|32!=(0|G)&!!(0|t)|x>>>0<2||(VA(r+76|0,r),i[r+76>>2]-880>>>0>4294967103||(e=Ft(G,e)+e|0)),4&o[0|d]&&((t=o[3+(Q+145840|0)|0])>>>0<2||(t=t>>>0>=5?5:t,t=v?t>>>0>3?712:716:a[t+94144|0],i[r+76>>2]=t,e=Ft(t,e)+e|0)),B=0,i[r+72>>2]=0,o[0|(t=r)])for(;t=VA(r+76|0,t)+t|0,i[r+72>>2]>>>B-1&1|!y|(0|B)<=0||(k=i[r+76>>2])-880>>>0>4294967103||Or(k)&&(e=Ft(y,e)+e|0),B=B+1|0,e=Ft(i[r+76>>2],e)+e|0,o[0|t];);if(21!=o[i[d+8>>2]+10|0]&&(8&(t=p[d>>1])&&(e=nA(e,i[36128],d,v,0),t=p[d>>1]),!(4&t)|2==o[17+(Q+145840|0)|0]||(e=nA(e,i[36136],d,v,0)),(t=o[7+(Q+145840|0)|0])&&(e=nA(e,i[144464+(t<<2)>>2],d,v,0))),(e=(d=e-(r+32|0)|0)+b|0)>>>0<h[33223])t=i[33222];else{if(t=e+500|0,i[33223]=t,!(t=Oe(i[33222],t))){i[33223]=0,t=86135;break e}i[33222]=t}if(a[(B=d)+(d=r+32|0)|0]=0,rt(t+b|0,d),b=e,!((0|(x=x+1|0))<(i[36423]-2|0)))break}if(!t){t=86135;break e}}a[e+t|0]=0}else i[33223]=0,t=86135;j=r+80|0,15&o[188788]&&(i[A>>2]=t,en(i[47195],84367,A)),(e=i[36456])&&Tn[0|e](t)}o[190280]?(i[36423]=0,e=1):($(0),(e=i[A+8>>2])?(j=t=j+-64|0,fn(t,e,60),et(t,1),r=0,(e=ne(t,0))&&(r=e,o[202976]&&(r=ne(202976,2))),j=t- -64|0,i[44468]=r):r=i[44468],e=1,r&&(t=i[32972],(r=se(1344))&&(t=_e(r,t,1344),r=216192+(i[50758]<<4)|0,i[r>>2]=11,i[r+8>>2]=t,t=i[50758]+1|0,i[50758]=(0|t)<=169?t:0),i[44468]=0))}else e=0,a[190280]=0;else e=0,i[36423]=0,i[50758]=0,i[50757]=0;return j=A+16|0,e}function q(e,A){var t=0,r=0,n=0,a=0;t=1073741825;e:{A:{t:{r:{n:{a:{s:{i:{o:{l:{c:{g:{u:{d:{f:{p:{h:{m:{C:{b:{I:{w:{k:{x:{B:{v:{y:{E:{M:{G:{D:{Q:{T:{P:{z:{F:{S:{N:{O:{L:{Y:{H:{R:{W:{V:{j:{U:{K:{Z:{X:{q:{J:{_:{$:{ee:{Ae:{te:{re:{ne:{ae:{se:{ie:{oe:{le:{ce:{ge:{ue:{de:{fe:{pe:{he:{me:{Ce:{be:{Ie:{we:{ke:{xe:{Be:{ve:{ye:{Ee:{Me:{Ge:{De:{Qe:{Te:{Pe:{ze:{Fe:{Se:{Ne:{Oe:{Le:{Ye:{He:{Re:{We:{Ve:{je:{Ue:{Ke:{Ze:switch(0|A){case 0:A=e-9>>>0<5?1073741825:0,A=(e=133==(0|e))?1073741825:A;break B;case 1:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{if((0|(A=-256&e))<=2047){if(!A)break oA;if(1536==(0|A))break iA;if(1792!=(0|A))break Xe;if(t=0,r=1,1807!=(0|e))break Xe;break R}if((0|A)<=69631){if(2048==(0|A))break sA;if(8192!=(0|A))break Xe;switch(t=131076,e-8204|0){case 1:break aA;case 0:break R;default:break nA}}if(69632==(0|A))break rA;if(917504!=(0|A))break Xe;switch(t=8388608,e-917505|0){case 62:break Je;case 58:break _e;case 57:break $e;case 45:break eA;case 43:break AA;case 32:break tA;case 0:break R;default:break qe}}if(t=16,173!=(0|e))break Xe;break R}if(t=0,r=1,e-1536>>>0<6)break R;r=1757==(0|e),A=(e=1564==(0|e))?2:0;break x}if(t=0,r=1,2274!=(0|e))break Xe;break R}return Z=64,4}if(t=1073741826,8206==(-2&e))break R;if(e-8234>>>0<5)return Z=0,2;if(t=128,e-8289>>>0<4)break R;if(t=2,e-8294>>>0<4)break R;if(t=8388608,e-8298>>>0>=6)break Xe;break R}A=!(e-69821&-17),e=0;break k}Z=536870976;break w}Z=268435520;break w}Z=-2147483584;break w}Z=134217792;break w}Z=67108928;break w}Z=1073741888;break w}if(t=131072,r=64,e-917536>>>0<96)break R}break L;case 2:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{if((0|(A=-256&e))<=130303){if((0|A)<=127743){if((0|A)<=64767){if((0|A)<=11007){if(8192==(0|A))break AA;if(9216!=(0|A))break Xe;if(e-9255>>>0>=25)break eA;break O}if(11008==(0|A))break $e;if(11776!=(0|A))break Xe;if(t=-2147483648,e-11845>>>0>=59)break Xe;break R}if((0|A)<=126975){if(64768==(0|A))break _e;if(65280!=(0|A))break Xe;if(t=4194304,e-65520>>>0>=9)break Xe;break R}if(126976==(0|A)|127232==(0|A)|127488==(0|A))break H;break Xe}if((0|A)<=129023){if((0|A)<=128255){if(127744==(0|A)|128e3==(0|A))break H;break Xe}if(128256==(0|A)|128512==(0|A)|128768==(0|A))break H;break Xe}if((0|A)<=129535){if(129024==(0|A)|129280==(0|A))break H;break Xe}if(129536==(0|A)|129792==(0|A)|130048==(0|A))break H;break Xe}if((0|A)<=919039){if((0|A)<=917759){if((0|A)<=130815){if(130304==(0|A))break H;if(130560!=(0|A))break Xe;break H}if(130816==(0|A))break H;if(917504!=(0|A))break Xe;if(917632!=(-128&e))break Je;break N}if((0|A)<=918271){if(917760==(0|A))break qe;if(t=4194304,918016!=(0|A))break Xe;break R}if(918272==(0|A)|918528==(0|A))break N;if(t=4194304,918784!=(0|A))break Xe;break R}if((0|A)<=920319){if((0|A)<=919551){if(919040==(0|A))break N;if(t=4194304,919296!=(0|A))break Xe;break R}if(919552==(0|A)|919808==(0|A))break N;if(t=4194304,920064!=(0|A))break Xe;break R}if((0|A)<=920831){if(920320==(0|A))break N;if(t=4194304,920576!=(0|A))break Xe;break R}if(920832==(0|A)|921088==(0|A))break N;if(t=4194304,921344!=(0|A))break Xe;break R}if(t=4194304,8293!=(0|e))break Xe;break R}if(t=-2147483648,e-9291>>>0>=21)break Xe;break R}if(11248==(-16&e)|e-11219>>>0<25|11209==(0|e)|e-11194>>>0<3)break O;if(11124==(0|(A=-2&e)))break O;if(t=-2147483648,11158!=(0|A))break Xe;break R}if(t=65536,e-64976>>>0>=32)break Xe;break R}if(917504==(0|e))break N;if(t=4194304,e-917506>>>0>=30)break Xe;break R}if(t=4194304,e>>>0>917999)break R}A=(e=!(65534&~e))>>>16|0,e<<=16;break k;case 6:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{if((0|(A=-256&e))<=7679){if((0|A)<=767){if(!A)break sA;if(256==(0|A))break aA;if(512!=(0|A))break L;if(585!=(0|e))break nA;break I}if(768==(0|A))break rA;if(1024==(0|A))break tA;if(7424!=(0|A))break L;if(t=16777216,7574!=(0|e))break L;break R}if((0|A)<=119807){if(7680==(0|A))break AA;if(8448==(0|A))break eA;if(65280!=(0|A))break L;if(t=256,e-65345>>>0>=6)break L;break R}if((0|A)<=120319){if(119808==(0|A))break $e;if(120064!=(0|A))break L;if(e>>>0>=120070)break _e;break S}if(120320==(0|A))break Je;if(120576!=(0|A))break L;if(e>>>0>=120597)break qe;break S}if(t=768,e-97>>>0<6)break R;if(t=16777216,e-105>>>0>=2)break L;break R}t=(A=329==(0|e))>>>9|0,A=(e=303==(0|e))?16777216:A<<23;break b}if(616==(0|e))break I;if(t=16777216,669!=(0|e))break L;break R}t=128;rA:switch(e-976|0){case 35:break Xe;case 0:case 1:case 2:case 5:case 32:case 33:break R}if(1012!=(-2&e))break L;break R}r=(e=!(e-1110&-3))>>>8|0,e<<=24;break C}r=(A=7883==(0|e))>>>8|0,A=(e=7725==(0|e))?16777216:A<<24;break x}if(e-8458>>>0<10)break S;if((A=e-8495|0)>>>0<11)break Ke;break W}if(119842==(0|(A=-2&e)))break F;if(e-119808>>>0<85)break S;if(e-119894>>>0<2|e-119946>>>0<2)break F;if(119995==(0|e)|e-119896>>>0<69|e-119982>>>0<12)break S;if(119998==(0|A))break F;if(e-119997>>>0<7)break S;if(t=16777344,120050==(0|A))break R;if(t=128,e>>>0<=120004)break L;break R}if(120102==(-2&e))break F;if(e-120094>>>0<28)break S;_e:{if((0|e)<=120257){if(e-120154>>>0<2)break F;if(t=16777344,e-120206>>>0>=2)break _e;break R}if(e-120258>>>0<2)break F;if(t=16777344,e-120310>>>0<2)break R}if(t=128,e>>>0<=120145)break L;break R}if(e-120362>>>0<2|e-120414>>>0<2)break F;if(t=16777344,e-120466>>>0<2)break R;if(e-120540>>>0<31|e>>>0>120571|e>>>0<120486)break S;if(t=128,e-120514>>>0>=25)break L;break R}if(e-120772>>>0<8|e-120746>>>0<25|e-120714>>>0<31|e-120688>>>0<25)break S;if(120597!=(0|e)&e>>>0<120629|e-120656>>>0<31)break S;if(t=128,e-120630>>>0<25)break R;break L}break I;case 7:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{lA:{cA:{gA:{uA:{dA:{fA:{pA:{hA:{if((0|(A=-256&e))<=11263){if((0|A)<=3583){if((0|A)<=1535){if(512==(0|A))break hA;if(768==(0|A))break pA;if(1280!=(0|A))break L;if(t=4096,1369!=(0|e))break L;break R}if(1536==(0|A))break fA;if(1792==(0|A))break dA;if(2304!=(0|A))break L;if(t=4096,2417!=(0|e))break L;break R}if((0|A)<=7167){if(3584==(0|A))break uA;if(6144==(0|A))break gA;if(6656!=(0|A))break L;if(t=8192,6823!=(0|e))break L;break R}if(7168==(0|A))break cA;if(7424==(0|A))break lA;if(8192!=(0|A))break L;if(t=16793600,!(A=e-8305|0))break R;if(14==(0|A))break oA;break iA}if((0|A)<=43263){if((0|A)<=40959){if(11264==(0|A))break sA;if(11776==(0|A))break aA;if(12288!=(0|A))break L;switch(t=8192,e-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 rA;case 0:case 44:case 45:case 46:case 47:case 48:break R;default:break nA}}if(40960==(0|A))break tA;if(42496==(0|A))break AA;if(42752!=(0|A))break L;if(e-42775>>>0>=9)break eA;break z}if((0|A)<=65279){if(43264==(0|A))break $e;if(43520==(0|A))break _e;if(43776!=(0|A))break L;if(t=20480,43868!=(-4&e))break L;break R}if(65280==(0|A))break Je;if(92928==(0|A))break qe;if(93952!=(0|A))break L;if(t=4096,e-94099>>>0<13)break R;if(t=8192,94176!=(-2&e))break L;break R}if(t=16797696,690==(0|e))break R;if(e-688>>>0<9)return Z=0,20480;if(e-697>>>0<7)break z;if(704==(0|(A=-2&e)))return Z=0,20480;if(t=4096,e-710>>>0<10)break R;if(t=12288,720==(0|A))break R;if(t=20480,e-736>>>0<5)break R;t=(e=748==(-3&e))>>>20|0,e<<=12;break m}A=890==(0|e)?20480:0,A=(e=884==(0|e))?4096:A;break B}if(t=8192,1600==(0|e))break R;if(t=4096,e-1765>>>0>=2)break L;break R}if(t=4096,2036==(-2&e))break R;if(t=8192,2042!=(0|e))break L;break R}A=(e=!(e-3654&-129))>>>19|0,e<<=13;break k}if(t=8192,6211!=(0|e))break L;break R}if(t=12288,7291==(0|e))break R;if(t=4096,e-7288>>>0>=6)break L;break R}if(t=16797696,7522==(0|e))break R;if(t=20480,e-7468>>>0<63)break R;t=16384;lA:switch(e-7588|0){default:if(7544==(0|e))break R;case 1:case 2:case 3:if(e-7579>>>0>=37)break L;break R;case 0:case 4:}return Z=0,16793600}return Z=0,16384}if(t=16384,e-8336>>>0>=13)break L;break R}A=(t=11389==(0|e))>>>18|0,t=(e=11388==(0|e))?16793600:t<<14;break h}if(t=-2147479552,11823!=(0|e))break L;break R}if(e-12445>>>0<2)break R;if(12540==(0|e))break Xe}if(e-12541>>>0>=2)break L;break R}if(t=8192,40981!=(0|e))break L;break R}if(42508==(0|e))break p;if(42623==(0|e))break z;if(t=20480,42652!=(-2&e))break L;break R}if(42864==(0|e))return Z=0,16384;if(42888==(0|e))break z;if(t=20480,43e3!=(-2&e))break L;break R}t=(A=43494==(0|e))>>>19|0,A=(e=43471==(0|e))?8192:A<<13;break b}if(43632==(0|e))break p;if(43741==(0|e))break p;if(t=8192,e-43763>>>0>=2)break L;break R}if(t=12288,65392==(0|e))break R;if(t=135168,65438!=(-2&e))break L;break R}if(t=8192,92994==(-2&e))break R;break L}return Z=0,12288;case 8:t=128;Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{if((0|(A=-256&e))<=12543){if((0|A)<=5887){if((0|A)<=3583){if(!A)break rA;if(1536!=(0|A))break J;if(A=8388608,1651!=(0|e))break J;break Z}if(3584==(0|A))break tA;if(4352!=(0|A))break J;if(t=4194304,e-4447>>>0>=2)break J;break X}if((0|A)<=8447){if(5888==(0|A))break AA;if(6400!=(0|A))break J;if((A=e-6581|0)>>>0>=6)break J;t=i[(A=81432+(A<<3)|0)>>2],r=i[A+4>>2];break X}if(8448==(0|A))break eA;if(12288!=(0|A))break J;if(A=2048,12294!=(0|e))break J;break Z}if((0|A)<=68863){if((0|A)<=63999){if(12544==(0|A))break $e;if(43520!=(0|A))break J;if((A=e-43701|0)>>>0<8)break qe;break q}if(64e3==(0|A))break Xe;if(65280!=(0|A))break J;if(A=4194304,65440!=(0|e))break J;break Z}if((0|A)<=100095){if(68864==(0|A))break _e;if(70400!=(0|A))break J;if(t=8192,70493!=(0|e))break J;break U}if(100096==(0|A))break Je;if(126464!=(0|A))break J;break X}r=(A=!(e-170&-17))>>>18|0,t=A<<14;break X}if(t=33554432,e-3648>>>0<5)break X;if(A=0,a=33554432,3759==(0|e))break Z;if(e-3776>>>0>=5)break J;break X}if(t=8388608,e-6051>>>0>=2)break J;break X}if(e-8501>>>0>=4)break J;break X}if(A=4194304,12644!=(0|e))break J;break Z}if(t=4096,68898!=(-2&e))break J;break X}if(t=2048,e-100333>>>0<5)break X;break J}if(t=33554432,!(211>>>A&1))break q;break X}if((A=e-64014|0)>>>0>=28)break J;t=i[(A=81480+(A<<3)|0)>>2],r=i[A+4>>2];break X;case 10:Xe:{qe:{Je:{_e:{$e:{eA:{if((0|(A=-256&e))<=119807){if((0|A)<=8447){if(!A)break eA;if(768!=(0|A))break L;switch(t=128,e-976|0){case 0:case 1:case 2:case 36:case 37:break R;default:break L}}if(8448==(0|A))break $e;if(65280!=(0|A))break L;if(t=256,e-65313>>>0>=6)break L;break R}if((0|A)<=120319){if(119808==(0|A))break _e;if(120064!=(0|A))break L;if(e>>>0>=120070)break Je;break S}if(120320==(0|A))break qe;if(120576!=(0|A))break L;if(e-120772>>>0>=8)break Xe;break S}if(t=768,e-65>>>0>=6)break L;break R}t=128;$e:switch(e-8450|0){case 0:case 5:break R}if(e-8458>>>0<10)break S;if((A=e-8469|0)>>>0<20)break Ue;if(8508==(-4&e))break R;break _}if(e-119982>>>0<12|e>>>0>120004|e-119977>>>0<4|e-119973>>>0<2)break S;if(119970==(0|e)|119966==(-2&e)|e-119808>>>0<85)break S;if(t=128,e-119894>>>0>=71)break L;break R}if(e-120138>>>0<7|e>>>0>120145|120134==(0|e)|e-120128>>>0<5)break S;if(e-120123>>>0<4|e-120094>>>0<28|120070!=(0|e)&e>>>0<120075|e-120086>>>0<7)break S;if(t=128,e-120077>>>0>=8)break L;break R}if(e-120540>>>0<31|e>>>0<120486)break S;if(t=128,e-120488>>>0>=25)break L;break R}if(e-120714>>>0<31|e-120598>>>0<31)break S;if(t=128,e-120656>>>0<31)break R;break L;case 11:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{lA:{cA:{gA:{if((0|(A=-256&e))<=43263){if((0|A)<=3839){if((0|A)<=3071){if(2304==(0|A))break gA;if(2816!=(0|A))break P;if((0|e)>3005)break lA;if(2878!=(0|e))break cA;return Z=0,132096}if(3072==(0|A))break oA;if(3328!=(0|A))break P;switch(t=132096,e-3535|0){case 0:case 16: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 15:break P;default:break iA}}if((0|A)<=6911){if(3840==(0|A))break sA;if(4096!=(0|A))break P;if(t=1024,e-4139>>>0<2)break R;switch(e-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 R;case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 105:case 106:break Xe;default:break aA}}if(6912==(0|A))break nA;if(7168==(0|A))break rA;if(12288!=(0|A))break P;if(t=135168,12334!=(-2&e))break P;break R}if((0|A)<=70399){if((0|A)<=43775){if(43264==(0|A))break tA;if(43520!=(0|A))break P;return Z=0,e-43643&-3?1024:4096}if(43776==(0|A))break AA;if(69888==(0|A))break eA;if(70144!=(0|A))break P;if(t=4096,70197!=(0|e))break P;break R}if((0|A)<=70911){if(70400==(0|A))break $e;if(70656!=(0|A))break P;A=70845==(0|e)?132096:1024,A=(e=70832==(0|e))?132096:A;break B}if(70912==(0|A))break _e;if(71168==(0|A))break Je;if(119040!=(0|A))break P;switch(t=131072,e-119141|0){case 8:break z;case 1:break L;case 0:break R;default:break qe}}A=2519==(0|e)?132096:1024,A=(e=2494==(0|e))?132096:A;break B}if(t=132096,2903!=(0|e))break P;break R}if(3006==(0|e))return Z=0,132096;if(t=132096,3031!=(0|e))break P;break R}if((e=e-3266|0)>>>0>20)break P;if(t=132096,!(1<<e&1572865))break P;break R}if(3390==(0|e))break R;if(3415!=(0|e))break P;break R}if(t=4096,3902!=(-2&e))break P;break R}t=(e=4252==(0|e))>>>22|0,e<<=10;break m}t=1024;nA:switch(e-6965|0){default:if(6916==(0|e))break R;break;case 0:case 6:break R;case 1:case 2:case 3:case 4:case 5:}if(e-6973>>>0<5)break R;nA:switch(e-6979|0){case 1:break z;case 0:break R}if(7042==(0|e)|7073==(0|e)|7078==(-2&e))break R;if(7082==(0|e))break z;if(7143==(0|e)|e-7146>>>0<3)break R;t=(e=7150==(0|e))>>>22|0,e<<=10;break m}A=7415==(0|e)?4096:1024,A=(e=7393==(0|e))?4096:A;break B}A=43456==(0|e)?4096:1024,A=(e=43347==(0|e))?4096:A;break B}if(t=4096,44012!=(0|e))break P;break R}if(t=4096,70080!=(0|e))break P;break R}t=132096;$e:switch(e-70462|0){case 0:case 25:break R;case 15:break $e;default:break P}break z}if(t=132096,71087!=(0|e))break P;break R}if(t=4096,71350!=(0|e))break P;break R}if(t=135168,e-119150>>>0<5)break R;break P}break z;case 12:A=(8419==(0|e))<<6,e=0;break k;case 13:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{lA:{cA:{gA:{uA:{dA:{fA:{pA:{hA:{mA:{CA:{bA:{IA:{wA:{kA:{xA:{BA:{vA:{yA:{EA:{MA:{GA:{DA:{QA:{TA:{PA:{zA:{FA:{SA:{NA:{OA:{LA:{YA:{HA:{RA:{WA:{VA:{jA:{if((0|(A=-256&e))<=43775){if((0|A)<=5887){if((0|A)<=2559){if((0|A)<=1535){if(768==(0|A))break jA;if(1024==(0|A))break VA;if(1280!=(0|A))break L;if(e-1425>>>0>=17)break WA;break z}if((0|A)<=2047){if(1536==(0|A))break RA;if(1792!=(0|A))break L;if(t=1024,1809==(0|e))break R;if(1840!=(-16&e))break HA;return Z=0,5120}if(2048==(0|A))break YA;if(2304!=(0|A))break L;if(e>>>0>=2307)break LA;break P}if((0|A)<=3583){if((0|A)<=3071){if(2560==(0|A))break OA;if(2816!=(0|A))break L;switch(t=1024,e-2876|0){case 0:break z;case 3:break R;case 1:case 2:break SA;default:break NA}}if(3072==(0|A))break FA;if(3328!=(0|A))break L;if(3328!=(0|(A=-2&e)))break zA;break P}if((0|A)<=4095){if(3584==(0|A))break PA;if(3840!=(0|A))break L;if(3864!=(0|(A=-2&e)))break TA;break z}if(4096==(0|A))break QA;if(4864!=(0|A))break L;if(t=1024,4959!=(0|e))break L;break R}if((0|A)<=8191){if((0|A)<=6655){if(5888==(0|A))break DA;if(6144==(0|A))break GA;if(6400!=(0|A))break L;if((A=e-6432|0)>>>0<=18&&(t=1024,1<<A&262535))break R;if(t=4096,e-6457>>>0>=3)break L;break R}if((0|A)<=7167){if(6656==(0|A))break MA;if(6912!=(0|A))break L;if(t=1024,6912==(-4&e))break R;if(6964!=(0|e))break EA;break z}if(7168==(0|A))break yA;if(7424!=(0|A))break L;if(t=4096,e-7620>>>0<12)break R;if(t=1024,e-7655>>>0<14)break R;if((e=e-7669|0)>>>0>=11)break L;A=i[(e=82104+(e<<3)|0)>>2];break f}if((0|A)<=42495){if((0|A)<=11519){if(8192==(0|A))break vA;if(11264!=(0|A))break L;if(t=4096,e-11503>>>0>=3)break L;break R}if(11520==(0|A))break BA;if(12288!=(0|A))break L;if(e-12330>>>0>=4)break xA;break z}if((0|A)<=43263){if(42496==(0|A))break kA;if(43008!=(0|A))break L;if(e-43045>>>0>=2)break wA;break P}if(43264==(0|A))break IA;if(43520!=(0|A))break L;switch(t=1024,e-43561|0){case 83:case 150:case 152:break z;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 R;default:break bA}}if((0|A)<=71423){if((0|A)<=69375){if((0|A)<=66047){if(43776==(0|A))break CA;if(64256==(0|A))break mA;if(65024!=(0|A))break L;if(t=536870912,e-65024>>>0<15)break R;if(r=64,65039==(0|e))break R;if(t=4096,r=0,65056!=(-16&e))break L;break R}if((0|A)<=68095){if(66048==(0|A))break hA;if(66304!=(0|A))break L;if(t=1024,e-66422>>>0>=5)break L;break R}if(68096==(0|A))break pA;if(68864!=(0|A))break L;if(t=5120,68900!=(-4&e))break L;break R}if((0|A)<=70399){if((0|A)<=69887){if(69376==(0|A))break fA;if(69632!=(0|A))break L;if(e-69688>>>0>=14)break dA;break P}if(69888==(0|A))break uA;if(70144!=(0|A))break L;if(t=1024,e-70191>>>0<3)break R;switch(e-70196|0){case 2:break z;case 0:case 3:case 10:break R;case 1:case 4:case 5:case 6:case 7:case 8:case 9:break cA;default:break gA}}if((0|A)<=70911){if(70400==(0|A))break lA;if(70656!=(0|A))break L;if(70712!=(-8&e))break oA;break P}if(70912==(0|A))break iA;if(71168!=(0|A))break L;if(t=1024,e-71219>>>0<8)break R;switch(e-71229|0){case 2:break z;case 0:case 3:break R;case 1:break aA;default:break sA}}if((0|A)<=92927){if((0|A)<=72703){if(71424==(0|A))break Ye;if(71680==(0|A))break nA;if(72192!=(0|A))break L;if(e-72193>>>0>=10)break rA;break P}if((0|A)<=73215){if(72704==(0|A))break tA;if(72960!=(0|A))break L;if((A=e-73009|0)>>>0<19)break Oe;break $}if(73216==(0|A))break AA;if(92672!=(0|A))break L;if(t=4096,e-92912>>>0>=5)break L;break R}if((0|A)<=122879){if((0|A)<=113663){if(92928==(0|A))break eA;if(93952!=(0|A))break L;if(t=4096,e-94095>>>0>=4)break L;break R}if(113664==(0|A))break $e;if(119040!=(0|A))break L;switch(t=4096,e-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 R;default:break L}}if((0|A)<=125183){if(122880==(0|A))break _e;if(124928!=(0|A))break L;if(t=4096,e-125136>>>0>=7)break L;break R}if(125184==(0|A))break Je;if(917760!=(0|A))break L;if(t=536870912,e-917760>>>0>=240)break L;break R}if(e-768>>>0<69)break z;if(t=21504,837==(0|e))break R;if(e-838>>>0<9)break z;if(t=4194304,847==(0|e))break R;if(848==(-8&e))break z;if(t=4096,e-861>>>0>=6)break L;break R}if(t=4096,e-1155>>>0>=5)break L;break R}if(t=4096,e-1443>>>0<13)break R;if(t=5120,e-1456>>>0<14)break R;if((e=e-1471|0)>>>0>=9)break L;A=i[(e=81944+(e<<3)|0)>>2];break f}if(e-1552>>>0<11)break P;if(t=5120,e-1611>>>0<8)break R;if(e-1619>>>0<4)break P;RA:switch(e-1623|0){case 1:break z;case 0:break R;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 P}if(t=4096,e-1759>>>0<2)break R;if((A=e-1761|0)>>>0<8)break je;break ee}if(e-1856>>>0<11)break z;if(t=5120,e-1958>>>0<11)break R;if(t=4096,e-2027>>>0>=9)break L;break R}t=1024;YA:switch((-2&e)-2070|0){case 2:break z;case 0:break R}if(e-2260>>>0<12|e-2089>>>0<4|e-2075>>>0<9|e-2085>>>0<3)break P;if(e-2275>>>0<7)return Z=0,5120;if(t=4096,e-2282>>>0<6)break R;if(t=5120,e-2288>>>0<15)break R;if(t=1024,2303!=(0|e))break L;break R}t=1024;LA:switch(e-2362|0){case 2:break z;case 0:break R}if(e-2369>>>0<8)break P;t=4096;LA:switch(e-2381|0){case 0:case 4:case 5:case 6:case 7:case 111:break R;case 8:case 9:case 10:case 21:case 22:case 52:break P}if(e-2497>>>0<4)break P;if(2509==(0|e))break R;if(t=1024,2530!=(-2&e))break L;break R}if(e-2561>>>0<2)break P;t=4096;OA:switch(e-2620|0){case 0:case 17:case 128:case 145:break R;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 P}if(e-2813>>>0>=3)break L;break R}if(2817==(0|e))break P}if(e-2881>>>0<4)break P;t=4096;SA:switch(e-2893|0){case 0:break R;case 9:break P}if(2914==(-2&e))break P;t=1024;SA:switch(e-3008|0){default:if(2946!=(0|e))break L;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:break L;case 0:break R;case 13:}break z}t=1024;FA:switch(e-3072|0){case 77:case 188:case 205:break z;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 R}if(3298!=(-2&e))break L;break R}if(t=4096,e-3387>>>0<2)break R;if(e-3393>>>0<4)break P;if(3405==(0|e))break R;if(3426==(0|A))break P;switch(e-3530|0){case 0:break R;case 8:case 9:case 10:case 12:break P;default:break L}}if((A=e-3633|0)>>>0<10)break Ve;break Ae}if((t=e-3893|0)>>>0>4|!(1<<t&21))break te;break z}t=1024;QA:switch(e-4141|0){case 10:case 12:case 13:break z;case 0:case 1:case 2:case 3:case 5:case 6:case 7:case 8:case 9:case 16:case 17:case 43:case 44:case 49:case 50:case 51:case 68:case 69:case 70:case 71:case 85:case 88:case 89:break R}A=(t=4253==(0|e))>>>22|0,t=(e=4237==(0|e))?4096:t<<10;break h}t=1024;DA:{QA:switch(e-5906|0){case 0:case 1:case 32:case 33:break R;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 DA}switch(e-5970|0){case 0:case 1:case 32:case 33:break R;default:break DA}}if(t=4194304,6068==(-2&e))break R;if((A=e-6071|0)>>>0<16)break We;break re}if(t=536870912,e-6155>>>0<3)break R;if(t=67109888,e-6277>>>0<2)break R;if(t=1024,6313!=(0|e))break L;break R}if(e-6679>>>0<2)break P;t=1024;MA:switch(e-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 R}if(t=4096,e-6832>>>0<14)break R;if((e=e-6773|0)>>>0>=11)break L;A=i[(e=82016+(e<<3)|0)>>2];break f}if(e-6966>>>0<5)break R;EA:switch(e-6972|0){case 0:case 6:break R}if(e-7019>>>0<9)break z;switch(e-7040|0){case 43:break z;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 R;default:break L}}if(t=1024,e-7212>>>0<8)break R;t=12288;yA:switch(e-7222|0){case 1:break z;case 0:break R}if(e-7380>>>0<13)break z;t=4096;yA:switch(e-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 R}if(7416!=(-2&e))break L;break R}if(t=128,e-8400>>>0<13)break R;if((e=e-8417|0)>>>0>=15)break L;A=i[(e=82192+(e<<3)|0)>>2];break f}if(t=1024,11744!=(-32&e))break L;break R}if(t=4096,e-12441>>>0>=2)break L;break R}if(42607==(0|e))break z;if(e-42612>>>0<8)break P;if(42620==(0|(e&=-2)))break z;if(42654==(0|e))break Xe;if(t=4096,42736!=(0|e))break L;break R}t=4096;wA:switch(e-43204|0){case 0:break R;case 1:break P}if(e-43232>>>0>=18)break L;break R}if(e-43302>>>0<5)break P;if(e-43307>>>0<3)break z;if(e-43335>>>0<11|e-43392>>>0<3)break P;if(t=4096,43443==(0|e))break R;if(t=1024,e-43446>>>0<4)break R;r=(A=43493==(0|e))>>>20|0,A=(e=43452==(0|e))?1024:A<<12;break x}if(43756==(-2&e))break R;if(t=4096,43766!=(0|e))break L;break R}t=1024;CA:switch(e-44005|0){case 0:case 3:break R;case 8:break CA;default:break L}break z}if(t=5120,64286!=(0|e))break L;break R}if(t=4096,66272!=(0|e))break L;break R}if(68108==(-4&e))break P;if((A=e-68097|0)>>>0<6)break Re;break ne}if(t=4096,e-69446>>>0>=11)break L;break R}if(e-69811>>>0<4)break P;if(t=1024,69633==(0|e))break R;if(t=4096,e-69817>>>0>=2)break L;break R}t=1024;uA:switch(e-69888|0){case 51:case 52:case 115:break z;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 R}if(70016==(-2&e)|e-70070>>>0<9)break R;if(t=4096,e-70090>>>0>=3)break L;break R}if(70367==(0|e))break R}if(e-70371>>>0<6)break R;if(t=4096,e-70377>>>0>=2)break L;break R}if(70400==(-2&e))break P;t=4096;lA:switch(e-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 R;case 4:break lA;default:break L}break P}if(70722==(0|e))break z;if(e-70723>>>0<2)break P;if((A=e-70835|0)>>>0<=13)break qe;break ae}if((A=e-71090|0)>>>0<12)break He;break se}switch(e-71339|0){case 0:case 2:break R;default:break aA}}if(e-71344>>>0<6)break R;if(t=4096,71351!=(0|e))break L;break R}if(t=1024,e-71727>>>0<10)break R;if(t=4096,e-71737>>>0>=2)break L;break R}if(72244==(0|e))break z;if(e-72245>>>0<10)break P;if(t=4096,72263==(0|e))break R;if(e-72273>>>0<11)break P;if(t=1024,e-72330>>>0<13)break R;t=(A=72345==(0|e))>>>20|0,A=(e=72344==(0|e))?8192:A<<12;break b}if((A=e-72752|0)>>>0<16)break Le;break ie}if(t=1024,e-73459>>>0>=2)break L;break R}if(t=1024,e-92976>>>0>=7)break L;break R}if(t=1024,113822!=(0|e))break L;break R}if(t=1024,e-122888>>>0<17)break R;if((e=e-122880|0)>>>0>=43)break L;A=i[(e=82816+(e<<3)|0)>>2];break f}if(t=12288,e-125252>>>0<3)break R;if(t=1024,125255==(0|e))break R;if(t=4096,e-125256>>>0<3)break R;break L}if(!(1<<A&12479))break ae;break P}break P;case 14:Xe:{if(120576!=(0|(A=-256&e))){if(65280!=(0|A)){if(A)break Xe;if(t=768,r=66,e-48>>>0>=10)break Xe;break R}if(t=256,e-65296>>>0>=10)break Xe;break R}if(t=128,e-120782>>>0<50)break R}break L;case 15:Xe:{if(12288!=(0|(A=-256&e))){if(8448!=(0|A))break Xe;A=(e=8560==(0|(t=-16&e)))>>>18|0,r=e<<14,t=(e=8544==(0|t))?32768:r;break h}if(e-12321>>>0<9)return Z=0,2048;if(e-12344>>>0<3)return Z=0,2048;if(t=2048,12295==(0|e))break R}break L;case 16:Xe:{qe:{Je:{if((0|(A=-256&e))<=9215){if(4864==(0|A))break Je;if(6400!=(0|A))break Xe;if(t=134217728,6618!=(0|e))break Xe;break R}if(9216==(0|A))break qe;if(127232!=(0|A))break Xe;if(t=0,r=-2147483648,127232==(0|e))break R;if(r=268435456,e-127233>>>0>=10)break Xe;break R}if(t=134217728,e-4969>>>0>=9)break Xe;break R}if(t=0,r=-2147483648,e-9352>>>0<20)break R}break L;case 17:r=(e=8256==(0|e))>>>25|0,e<<=7;break C;case 18:Xe:{qe:{Je:{_e:{if((0|(A=-256&e))<=11775){if((0|A)<=6143){if(t=-2147483624,!A)break R;if(1280!=(0|A))break Xe;if(t=24,1418!=(0|e))break Xe;break R}if(6144==(0|A))break _e;if(8192!=(0|A))break Xe;if(t=-2147483624,8208==(-2&e))break R;e=e-8211>>>0<2,A=-2147483640;break d}if((0|A)<=65023){if(11776==(0|A))break Je;if(12288!=(0|A))break Xe;A=12336==(0|e),t=(e=12316==(0|e))||A?-2147483640:8,Z=e?0:A?130:0;break u}if(65024==(0|A))break qe;if(65280!=(0|A))break Xe;if(t=24,65293!=(0|e))break Xe;break R}if(t=24,6150!=(0|e))break Xe;break R}if(t=-2147483624,11799==(0|e))break R;e=11834==(-2&e),A=-2147483640;break d}if(t=8,r=8388608,e-65073>>>0<2)break R;if(t=152,r=0,65123==(0|e))break R}return Z=0,8;case 19:Xe:{qe:{Je:{_e:{$e:{eA:{if((0|(A=-256&e))<=11775){if((0|A)<=8959){if(A)break eA;break O}if(8960==(0|A))break $e;if(9984==(0|A))break _e;if(10496!=(0|A))break L;break T}if((0|A)<=64767){if(t=-2147483648,11776==(0|A))break R;if(12288!=(0|A))break L;switch(t=-2147483616,e-12301|0){case 0:case 2:break R;default:break Je}}if(64768==(0|A))break qe;if(65024==(0|A))break Xe;if(65280!=(0|A))break L;if(t=32,65379==(0|e))break R;break L}if(8192!=(0|A))break L;eA:switch(e-8318|0){default:if(t=-2147483648,8262!=(0|e))break L;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 15:break L;case 0:case 16:}break S}t=-2147483520;$e:switch(e-8969|0){case 1:break L;case 0:case 2:break R}if(9002!=(0|e))break L;return Z=0,-2139095040}if(t=-2147483520,10182==(0|e))break R;break Q}return Z=0,12318==(-2&e)?-2147483616:-2147483648}if(t=-2147483648,64830!=(0|e))break L;break R}r=(e=!(e-65090&-3))>>>27|0,e<<=5;break C;case 20:case 21:if(!(e&=-256))break g;if(t=-2147483616,8192==(0|e))break R;break Y;case 22:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{lA:{cA:{gA:{uA:{dA:{fA:{pA:{hA:{mA:{CA:{bA:{IA:{wA:{kA:{xA:{BA:{vA:{yA:{EA:{MA:{GA:{DA:{QA:{TA:{PA:{zA:{FA:{SA:{NA:{OA:{LA:{YA:{HA:{RA:{if((0|(A=-256&e))<=43519){if((0|A)<=5887){if((0|A)<=2303){if((0|A)<=1535){if(!A)break RA;if(768==(0|A))break HA;if(1280!=(0|A))break L;if(t=0,r=538968064,e-1371>>>0<2)break R;switch(r=268435456,e-1373|0){case 0:break R;case 1:break LA;default:break YA}}if(1536==(0|A))break NA;if(1792==(0|A))break SA;if(2048!=(0|A))break L;if((A=e-2103|0)>>>0<8)break Se;break oe}if((0|A)<=3839){if(2304==(0|A))break FA;if(3328==(0|A))break zA;if(3584!=(0|A))break L;if(t=64,3674!=(-2&e))break L;break R}if((0|A)<=4863){if(3840==(0|A))break PA;if(4096!=(0|A))break L;if(t=268435520,4170==(-2&e))break R;if(t=0,r=16777216,4347!=(0|e))break L;break R}if(4864==(0|A))break TA;if(5632!=(0|A))break L;switch(t=64,e-5741|0){case 1:break n;case 0:break R;default:break QA}}if((0|A)<=11263){if((0|A)<=6655){if(5888==(0|A))break DA;if(6144==(0|A))break ze;if(6400!=(0|A))break L;A=6469==(0|e),t=(e=6468==(0|e))||A?268435520:0,Z=e?536870912:A?1073741824:0;break u}if((0|A)<=7167){if(6656==(0|A))break GA;if(6912!=(0|A))break L;if(7002!=(0|(A=-2&e)))break MA;break D}if(7168==(0|A))break EA;if(8192!=(0|A))break L;switch(t=-2147483520,e-8214|0){case 1:break O;case 0:break R;case 16:break yA;default:break vA}}if((0|A)<=41983){if(11264==(0|A))break BA;if(11776==(0|A))break xA;if(12288!=(0|A))break L;switch(t=-2147483584,r=272629760,e-12289|0){case 2:break O;case 0:break R;case 1:break wA;default:break kA}}if((0|A)<=43007){if(41984==(0|A))break IA;if(42496!=(0|A))break L;switch(t=64,r=268435456,e-42739|0){case 4:break a;case 0:break n;case 3:break t;case 2:break R;case 1:break CA;default:break bA}}if(43008==(0|A))break mA;if(43264!=(0|A))break L;switch(t=4096,e-43310|0){case 0:break R;case 1:break D;default:break hA}}if((0|A)<=70655){if((0|A)<=67839){if((0|A)<=65279){if(43520==(0|A))break pA;if(43776==(0|A))break fA;if(65024!=(0|A))break L;if(t=0,r=268435456,65040==(0|(a=-2&e)))break R;if((A=e-65042|0)>>>0<8)break Te;break le}if(65280==(0|A))break dA;if(66304==(0|A))break uA;if(67584!=(0|A))break L;if(t=64,67671!=(0|e))break L;break R}if((0|A)<=69375){if(67840==(0|A))break gA;if(68096==(0|A))break cA;if(68352!=(0|A))break L;switch(t=64,e-68410|0){case 0:case 1:case 2:case 3:case 4:case 5:case 95:case 96:case 97:case 98:break R;default:break L}}if((0|A)<=69887){if(69376==(0|A))break lA;if(69632!=(0|A))break L;if(e-69703>>>0>=2)break oA;break D}if(69888==(0|A))break iA;if(70144!=(0|A))break L;if((A=e-70200|0)>>>0<=4)break sA;if(70313!=(0|e))break L;break D}if((0|A)<=74751){if((0|A)<=71423){if(70656==(0|A))break aA;if(70912==(0|A))break nA;if(71168!=(0|A))break L;if(t=268435520,e-71233>>>0>=2)break L;break R}if((0|A)<=72703){if(71424==(0|A))break rA;if(72192!=(0|A))break L;if(e-72258>>>0>=2)break tA;break D}if(72704==(0|A))break AA;if(73216!=(0|A))break L;if(t=268435520,e-73463>>>0>=2)break L;break R}if((0|A)<=93695){if(74752==(0|A))break eA;if(92672==(0|A))break _e;if(92928!=(0|A))break L;if(t=268435520,e-92983>>>0<2)break R;A=92996==(0|e)?268435520:0,A=(e=92985==(0|e))?64:A;break B}if((0|A)<=121343){if(93696==(0|A))break $e;if(113664!=(0|A))break L;if(t=268435520,r=-2147483648,113823!=(0|e))break L;break R}if(121344==(0|A))break Qe;if(125184!=(0|A))break L;t=(125279==(0|e))<<30,A=0,Z=(e=125278==(0|e))?536870912:t;break l}t=-1879048128,r=536870912;RA:{WA:{VA:{jA:{UA:switch(e-33|0){default:switch(e-183|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:break RA;case 8:break VA;case 0:break jA;default:break WA}case 2:case 9:Z=66;break i;case 11:return Z=268435456,-2147483584;case 13:return Z=-2147483648,-1879048128;case 25:return Z=134217728,-2147483584;case 26:return Z=67108864,-2147483584;case 1:case 6:break g;case 0:break R;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 RA;case 30:}return Z=1073741824,-1879048128}return Z=0,134230016}Z=1078984704;break i}if(161==(0|e))break ce}break O}A=903==(0|e),t=(e=894==(0|e))?64:A?134217792:0,Z=e?1073741824:A?67108864:0;break u}if(1417==(0|e))break OA;if(1475!=(0|e))break L;break G}Z=1075838976;break s}Z=-2143289344;break r}t=64,r=268435456;NA:switch(e-1548|0){case 15: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 16:case 17:break L;case 0:break R;case 19:break NA;case 18:break D;default:break Je}break a}if((A=e-1792|0)>>>0<6)break Ne;if(t=64,r=134217728,1798==(-2&e))break R;r=67108864;SA:{NA:{OA:switch(e-1800|0){default:switch(e-2040|0){case 1:break SA;case 0:break NA;default:break L}case 3:break L;case 0:break R;case 1:break OA;case 2:case 4:break G}Z=1073741824;break A}Z=268435456;break A}Z=536870912;break r}A=2405==(0|e),t=(e=2404==(0|e))||A?268435520:0,Z=e?-2143289344:A?16777216:0;break u}if(t=0,r=-2143289344,3572!=(0|e))break L;break R}t=64;PA:switch(e-3848|0){case 5:Z=-2143289344;break A;case 6:Z=16777216;break A;case 0:break R}if(e-3854>>>0<5)break R;if(t=0,r=268435456,3860!=(0|e))break L;break R}if((A=e-4961|0)>>>0<4)break Fe;if(t=64,r=134217728,e-4965>>>0<2)break R;A=4968==(0|e),t=(e=4967==(0|e))||A?268435520:0,Z=e?1073741824:A?16777216:0;break u}if(e-5867>>>0>=3)break L;break R}if(t=268435520,e-5941>>>0<2)break R;if((e=e-6100|0)>>>0>=7)break L;A=i[(e=83240+(e<<3)|0)>>2];break f}if(t=268435520,6824!=(-4&e))break L;break R}if(t=64,7005==(0|e))break R;if(t=268435520,7006!=(0|A))break L;break R}if(e-7227>>>0<2)break D;if(t=64,e-7229>>>0<3)break R;if(t=268435520,7294==(-2&e))break R;if(t=4096,7379!=(0|e))break L;break R}Z=33554432;break i}if(8224==(-8&e))break O;if(e-8242>>>0<3)break R;if(e-8240>>>0<9)break O;if((A=e-8251|0)>>>0<21)break Pe;break ge}if(11513==(0|e)){Z=-2147483648;break s}if(t=0,r=1073741824,11514==(-2&e))break R;if(r=-2147483648,11518!=(0|e))break L;break R}t=-1879048128;xA:switch(e-11822|0){case 4:case 6:Z=268435456;break i;case 5:Z=-2147483648;break i;case 7:Z=67108864;break i;case 14:return Z=-2147483648,-1879048128;case 19:return Z=268435456,-2147483584;case 30:case 32:return Z=0,-2147483584;case 0:break R}break O}if(12349==(0|e))break M;if(12539!=(0|e))break L;return Z=0,16}return Z=-2143289344,-1879048128}A=42239==(0|e),t=(e=42238==(0|e))?64:A?268435520:0,Z=e?268435456:A?-2147483648:0;break u}bA:switch(e-42509|0){case 1:break n;case 0:break R;case 2:break bA;default:break L}break a}Z=134217728;break A}if(e-43126>>>0<2)break D;if(t=268435520,e-43214>>>0>=2)break L;break R}if(43463==(0|e))break G;if(t=268435520,43464!=(-2&e))break L;break R}if(e-43613>>>0<3)break D;if(t=64,43743==(0|e))break R;if(t=268435520,43760!=(-2&e))break L;break R}if(t=268435520,44011!=(0|e))break L;break R}t=268435520,r=541065216;dA:switch(e-65281|0){case 1:case 6:return Z=0,32;case 11:Z=272629760;break A;case 13:Z=-2143289344;break r;case 100:return Z=0,16;case 25:Z=138412032;break A;case 26:Z=71303168;break A;case 30:Z=1077936128;break r;case 96:break n;case 59:break S;case 0:break R;case 99:break dA;default:break L}Z=268435456;break A}t=(A=66512==(0|e))>>>26|0,A=(e=66463==(0|e))?64:A<<6;break b}if(t=64,67871!=(0|e))break L;break R}if(t=268435520,68182==(-2&e))break R;if(t=64,e-68336>>>0>=6)break L;break R}if(t=268435520,e-69461>>>0>=5)break L;break R}if(t=64,e-69705>>>0<5)break R;if(t=268435520,e-69822>>>0>=4)break L;break R}if(e-69953>>>0<2)break D;if((A=e-70085|0)>>>0<=26)break qe;break ue}if(2!=(0|A))break D;break G}if(t=268435520,e-70731>>>0<2)break R;r=(A=70747==(0|e))>>>26|0,A=(e=70733==(0|e))?64:A<<6,Z=e?268435456:r;break l}t=268435520;nA:switch((-2&e)-71106|0){case 0:break R;case 2:break Xe}if(t=8192,e-71110>>>0<3)break R;if(t=268435520,e-71113>>>0>=15)break L;break R}if(t=268435520,e-71484>>>0>=3)break L;break R}if(t=268435520,e-72347>>>0<2)break R;if(t=64,e-72353>>>0>=2)break L;break R}if(t=268435520,e-72769>>>0<2)break R;t=(A=72817==(0|e))>>>26|0,A=(e=72771==(0|e))?64:A<<6;break b}if(t=64,r=134217728,e-74865>>>0<2)break R;if(r=0,e-74864>>>0>=5)break L;break R}A=93848==(0|e)?268435520:0,A=(e=93847==(0|e))?64:A;break B}if(t=268435520,92782==(-2&e))break R;if(r=-2147483648,92917!=(0|e))break L;break R}if(1748==(0|e))break n;break L}if(!(1<<A&100663555))break ue;break D}break G;case 23:Xe:{qe:{Je:{_e:{$e:{eA:{if((0|(A=-256&e))<=11775){if((0|A)<=8959){if(A)break eA;break O}if(8960==(0|A))break $e;if(9984==(0|A))break _e;if(10496!=(0|A))break L;break T}if((0|A)<=64767){if(11776==(0|A))break Je;if(12288!=(0|A))break L;if((e=e-12300|0)>>>0<=17&&(t=-2147483616,1<<e&131077))break R;break O}if(64768==(0|A))break qe;if(65024==(0|A))break Xe;if(65280!=(0|A))break L;if(t=32,65378==(0|e))break R;break L}if(8192!=(0|A))break L;t=-2147483616;eA:switch(e-8218|0){case 1:case 2:case 3:break L;case 0:case 4:break R}eA:switch(e-8317|0){default:if(8261!=(0|e))break L;break O;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 L;case 0:case 16:}break S}t=-2147483520;$e:switch(e-8968|0){case 1:break L;case 0:case 2:break R}if(9001!=(0|e))break L;return Z=0,-2139095040}if(t=-2147483520,10181==(0|e))break R;break Q}return Z=0,11842==(0|e)?-2147483616:-2147483648}if(t=-2147483648,64831!=(0|e))break L;break R}t=(e=!(e-65089&-3))>>>27|0,e<<=5;break m;case 24:t=(e=e>>>0<256)>>>1|0,e<<=31;break m;case 25:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{if((0|(A=-256&e))<=12287){if((0|A)<=767){if(!A)break tA;if(512!=(0|A))break Xe;if(e-751>>>0>=17)break AA;break z}if(768==(0|A))break eA;if(7936!=(0|A))break Xe;switch(t=4096,e-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 R;default:break Xe}}if((0|A)<=43775){if(12288==(0|A))break $e;if(42752!=(0|A))break Xe;if(t=4096,42784!=(-2&e))break Xe;break R}if(43776==(0|A))break _e;if(65280==(0|A))break Je;if(t=0,r=78,127744!=(0|A))break Xe;break R}tA:switch(e-168|0){default:t=-2147479424;rA:switch(e-94|0){case 0:break R;case 2:break rA;default:break Xe}return Z=0,-2147479552;case 0:case 7:break z;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 Xe;case 12:case 16:}break z}if(749==(0|e)|e-741>>>0<7)break z;if(e-706>>>0>=4)break qe;break z}if((e=e-885|0)>>>0>16)break Xe;if(t=4096,!(1<<e&98305))break Xe;break R}if(t=67112960,e-12443>>>0>=2)break Xe;break R}if(t=4096,43867!=(0|e))break Xe;break R}t=4224;Je:switch(e-65342|0){default:if(65507!=(0|e))break Xe;break;case 0:break R;case 1:break Xe;case 2:}break z}if(t=4096,e-722>>>0<14)break R}break L;case 26:Xe:{qe:{Je:{_e:{$e:{eA:{if((0|(A=-256&e))<=9471){if((0|A)<=8447){if(A)break Xe;break O}if(8448==(0|A))break eA;if(8704==(0|A))break $e;if(t=-2147483648,8960!=(0|A))break L;break R}if((0|A)<=10495){if(9472==(0|A))break _e;if(9728==(0|A))break Je;if(9984==(0|A))break O;break L}if(10496==(0|A))break qe;if(10752==(0|A))break O;if(t=-2147483648,11008!=(0|A))break L;break R}if(8472==(0|e))return Z=0,67108864;if(8596==(0|e))break E;if(t=-2147483648,e>>>0<=8591)break L;break R}if(t=-2147483640,8722==(0|e))break R;A=-2147483648,Z=(e=e-8942>>>0<4)?33554432:0;break l}if(t=-2147483648,r=130,e-9723>>>0<2)break R;A=-2147483648,Z=(e=e-9725>>>0<2)?134:0;break l}if(t=-2147483648,r=128,9839==(0|e))break R;break O}if(t=-2147483648,r=130,10548==(-2&e))break R;A=-2147483648,Z=(e=10626==(0|e))?134217728:0;break l}if(8192==(0|A))break de;break L;case 27:Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{nA:{aA:{sA:{iA:{oA:{lA:{cA:{gA:{uA:{dA:{fA:{pA:{hA:{mA:{CA:{if((0|(A=-256&e))<=12287){if((0|A)<=9727){if((0|A)<=8959){if(!A)break CA;if(8448!=(0|A))break L;switch(t=0,r=130,e-8482|0){case 7:break S;case 0:break R;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:break fA;case 12:break hA;default:break mA}}if(8960==(0|A))break dA;if(9216==(0|A))break uA;if(9472!=(0|A))break L;switch(t=-2147483520,(-2&e)-9632|0){case 0:break R;case 10:break E;default:break gA}}if((0|A)<=11007){if(9728==(0|A))break cA;if(9984==(0|A))break lA;if(t=-2147483648,10240!=(0|A))break L;break R}if(11008==(0|A))break oA;if(11776==(0|A))break iA;if(12032!=(0|A))break L;if(t=1048576,e>>>0<12246)break R;switch(t=262144,(-2&e)-12272|0){case 0:break R;case 2:break Xe;default:break sA}}if((0|A)<=127999){if((0|A)<=127231){if(12288==(0|A))break aA;if(12800==(0|A))break nA;if(126976!=(0|A))break L;A=127183==(0|e),t=0,Z=(e=126980==(0|e))||A?134:128;break u}if(127232==(0|A))break rA;if(127488==(0|A))break tA;if(127744!=(0|A))break L;if(e>>>0>=127777)break AA;break y}if((0|A)<=128767){if(128e3==(0|A))break eA;if(128256==(0|A))break $e;if(128512!=(0|A))break L;if((A=e-128581|0)>>>0<11)break we;break fe}if(128768==(0|A))break _e;if(129280==(0|A))break Je;if(129536!=(0|A))break L;Z=128;break s}A=174==(0|e),t=-2147483648,Z=(e=169==(0|e))||A?130:0;break u}switch(e-8616|0){case 0:break O;case 1:case 2:break pA;default:break fA}}return Z=0,67108864}return Z=130,-2147483520}if(t=-2147483520,e-8597>>>0<5)break R;if(e-8604>>>0<18)break T;if((A=e-8624|0)>>>0<8)break De;break pe}if(e>>>0<8968)break O;if(8986==(0|(A=-2&e)))break o;if(e-8972>>>0<20|e-8994>>>0<6)break O;if(9e3==(0|e))break E;if(e-9003>>>0<81)break O;if(t=-2147483648,r=128,9096==(0|e))break R;if(e-9085>>>0<30)break O;if(t=-2147483520,r=0,9140==(0|A))break R;dA:switch(e-9143|0){case 0:case 25:break R;case 24:break E}if(e-9140>>>0<40)break O;if(9186==(0|e))break R;if((A=e-9193|0)>>>0<4)break o;t=-2147483648,r=134;dA:switch(e-9200|0){case 0:case 3:break R}if(A>>>0<11)break E;if(r=130,e-9208>>>0<3)break R;if(r=0,e>>>0<=9186)break L;break R}if(t=-2147483648,e-9216>>>0<75)break R;if(t=33792,r=130,9410==(0|e))break R;if(r=0,e-9398>>>0<26)break R;if(t=17408,e-9424>>>0>=26)break L;break R}if(e-9646>>>0<8)break T;if(r=130,9654==(0|e))break R;if(9660==(-4&e))break T;gA:switch(e-9664|0){case 0:break R;case 6:case 7:case 10:case 11:case 15:case 16:case 17:case 18:case 19:case 34:case 36:break T}return Z=0,e-9703>>>0<6?-2147483520:-2147483648}cA:switch((-16&e)-9728>>>4|0){case 0:if(e>>>0<9733)break E;t=-2147483520,r=128;gA:switch(e-9733|0){case 0:break R;case 9:break gA;case 1:break T;default:break he}break E;case 2:if((A=e-9760|0)>>>0<11)break Me;if(t=-2147483648,r=130,e>>>0<=9773)break he;break R;case 3:if(t=-2147483648,r=130,e-9784>>>0>=3)break he;break R;case 4:t=-2147483520,r=130;gA:switch(e-9792|0){case 0:case 2:break R}if(t=-2147483648,r=134,e>>>0<=9799)break he;break R;case 5:if(t=-2147483648,r=134,e>>>0<9812)break R;if(r=130,9823!=(0|e))break he;break R;case 6:if(9734==(0|e))break T;if(9824==(0|e))return Z=130,-2147483520;if(t=-2147483520,r=128,e-9825>>>0<2)break R;if((A=e-9827|0)>>>0<6)break Ee;break me;case 8:if(t=-2147483648,e>>>0<=9861)break he;break R;case 10:t=-2147483648,r=130;gA:switch(e-9888|0){case 1:break o;case 0:break R}if(r=134,9898!=(-2&e))break he;break R;case 11:if(t=-2147483648,r=130,9904==(-2&e))break R;if(r=134,e-9917>>>0>=2)break he;break R;case 12:if(9924==(-2&e))break o;t=-2147483648,r=130;gA:switch(e-9928|0){case 0:case 7:break R;case 6:break gA;default:break he}break o;case 14:A=9962==(0|e),t=-2147483648,Z=(e=9961==(0|e))?130:A?134:128;break u;case 13:break Be;case 9:break ve;case 15:break cA;case 7:break ye;case 1:break Ge;default:break he}if(9972==(0|e)|e>>>0<9970)break E;if(t=-2147483648,r=134,e>>>0<9974)break R;if(9974!=(0|e)&&(r=130,e>>>0<9977))break R;if((e=e-9977|0)>>>0<5)break xe;break he}lA:{cA:{gA:{uA:{dA:switch((-16&e)-9984>>>4|0){case 0:if(t=0,r=130,9986==(0|e))break lA;if(r=128,e>>>0<9989)break lA;if(r=134,9989==(0|e))break lA;r=150;fA:switch((-2&e)-9994|0){case 0:break lA;case 2:break gA}if(r=130,e-9992>>>0<6)break lA;A=9999==(0|e),t=0,r=(e=9998==(0|e))?128:A?130:0;break lA;case 1:if(t=0,r=128,e>>>0<10002)break lA;if((e=e-10002|0)>>>0>11)break uA;if(r=130,!(1<<e&2069))break uA;break lA;case 2:A=10024==(0|e),t=0,r=(e=10017==(0|e))?130:A?134:0;break lA;case 4:t=0,r=130;fA:switch(e-10052|0){case 0:case 3:break lA;case 8:case 10:break fA;default:break uA}r=134;break lA;case 5:if(t=0,r=1073741958,e-10067>>>0<2)break lA;r=(e=e-10069&-3)?0:536871046;break lA;case 6:if((A=e-10082|0)>>>0<3)break cA;if(t=0,r=128,e>>>0<=10084)break uA;break lA;case 9:if(t=0,r=134,e-10133>>>0>=3)break uA;break lA;case 10:if(t=0,r=130,10145!=(0|e))break uA;break lA;case 11:A=10175==(0|e),t=0,r=(e=10160==(0|e))||A?134:0;break lA;case 3:break dA;default:break uA}if(t=0,r=130,e-10035>>>0<2)break lA}t=0,r=0;break lA}r=146;break lA}t=i[(e=83992+(A<<3)|0)>>2],r=i[e+4>>2]}return Z=r,-2147483648|t}if(t=-2147483648,r=130,e-11013>>>0<3)break R;if(r=134,e-11035>>>0<2)break R;A=11093==(0|e),t=-2147483648,Z=(e=11088==(0|e))||A?134:0;break u}if(e-11904>>>0>=26)break qe;return Z=0,1048576}if(e-12276>>>0>=8)break L;break R}if((e=e-12306|0)>>>0>14)break L;if(t=-2147483648,!(1<<e&16387))break L;break R}A=0,Z=(e=e-12951&-3)?0:130;break l}if(t=0,r=128,127279==(0|e))break R;if(e-127280>>>0<26)return Z=0,33792;if(e-127312>>>0<26)return Z=0,33792;if((A=e-127344|0)>>>0<=15&&(t=33792,r=130,1<<A&49155))break R;if(t=33792,r=0,A>>>0<26)break R;if(127374==(0|e))break y;if(t=0,r=134,e-127377>>>0<10)break R;if(r=102,e>>>0<=127461)break L;break R}t=0,r=134;tA:{rA:switch(e-127489|0){case 0:case 25:break R;case 1:break M;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 tA}switch(e-127535|0){case 0:break R;case 8:break M;default:break tA}}if(127568==(-2&e)|e-127538>>>0<9)break R;if(r=128,e>>>0<=127583)break L;break R}if(127777==(0|e))break M;if(e-127789>>>0<9|e-127799>>>0<70)break y;if(127877==(0|e))break v;if(e-127870>>>0<22)break y;if(e-127780>>>0<112)break M;t=0,r=130;AA:switch(e-127894|0){case 44:case 45:case 46:case 49:break v;case 0:case 1:case 3:case 4:case 5:break R}if(e-127904>>>0<42)break y;if(r=150,127946==(0|e))break R;if(r=146,e-127947>>>0<2)break R;if(e-127951>>>0<5)break y;if(r=134,e-127968>>>0<17)break R;if(r=130,e-127902>>>0<83)break R;if((A=e-127987|0)>>>0<5)break ke;break Ce}t=0,r=130;eA:switch(e-128063|0){case 0:case 2:break R}if(128124==(0|e)|(-5&e)-128129>>>0<3|128110==(0|e)|e-128112>>>0<9)break v;if(128066==(-2&e)|e-128102>>>0<4|e-128070>>>0<11)break v;eA:switch(e-128253|0){case 1:Z=128;break s;case 0:break M}if(r=150,128170==(0|e))break R;break y}if(e>>>0<128318)break y;if(t=0,e>>>0<128326)break R;if(e-128329>>>0<2)break M;if(e-128331>>>0<4|e-128336>>>0<24)break y;if(e-128367>>>0<2)break M;if(128372==(-2&e)){Z=146;break s}if(e-128371>>>0<7)break M;if(r=150,!(A=e-128378|0))break R;if(13==(0|A)|e-128394>>>0<4)break M;if(r=146,128400==(0|e))break R;if(r=150,e-128405>>>0<2)break R;r=134;$e:switch(e-128420|0){case 0:break R;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 M}e=e>>>0>128506,A=0;break c}if(t=0,r=128,e-128981>>>0>=4)break L;break R}if(e>>>0<129292)break L;if(e-129328>>>0<10)break v;t=0,r=150;Je:switch(e-129304|0){case 35:break L;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break R}if(e-129341>>>0<2)break v;if(r=0,129350==(0|e))break R;if(r=198,129456==(-4&e))break R;if((A=e-129461|0)>>>0<5)break Ie;break be}if(t=1048576,e-11931>>>0<89)break R;break L}return Z=0,524288;case 29:return Z=16777216,1073741825;case 28:break R;case 30:break Ze;default:break L}return Z=0,32==(0|e)?1073741825:1}if(!(1079>>>A&1))break W;A=i[(e=81344+(A<<3)|0)>>2];break f}if(557553>>>A&1)break S;if(8508!=(-4&e))break _;break R}if(!(207>>>A&1))break ee;break P}if(t=1024,!(1017>>>A&1))break Ae;break R}if(t=1024,!(32895>>>A&1))break re;break R}if(t=1024,!(55>>>A&1))break ne;break R}if(t=1024,!(3087>>>A&1))break se;break R}if((e=e-71453|0)>>>0>=15)break L;A=i[(e=82312+(e<<3)|0)>>2];break f}if(!(49023>>>A&1))break ie;A=i[(e=82432+(A<<3)|0)>>2];break f}if(!(514623>>>A&1))break $;A=i[(e=82664+(A<<3)|0)>>2];break f}A=i[(e=83160+(A<<3)|0)>>2];break f}if(t=268435520,!(197>>>A&1))break oe;break R}A=i[(e=83208+(A<<3)|0)>>2];break f}if((e=e-6145|0)>>>0>=10)break L;A=i[(e=83296+(e<<3)|0)>>2];break f}if(!(1077711>>>A&1))break ge;A=i[(e=83376+(A<<3)|0)>>2];break f}if(!(159>>>A&1))break le;A=i[(e=83544+(A<<3)|0)>>2];break f}if((e=e-121479|0)>>>0>=4)break L;A=i[(e=83608+(e<<3)|0)>>2];break f}if(!(195>>>A&1))break pe;break T}if((e=e-9745|0)>>>0>=13)break he;A=i[(e=83640+(e<<3)|0)>>2];break f}if(1101>>>A&1)break E;if(t=-2147483648,r=130,e>>>0<=9773)break he;break R}if(!(45>>>A&1))break me;A=i[(e=83744+(A<<3)|0)>>2];break f}if((e=e-9851|0)>>>0>=5)break he;A=i[(e=83792+(e<<3)|0)>>2];break f}if((e=e-9874|0)>>>0>=11)break he;A=i[(e=83832+(e<<3)|0)>>2];break f}if((e=e-9937|0)>>>0>=4)break he;A=i[(e=83920+(e<<3)|0)>>2];break f}A=i[(e=83952+(e<<3)|0)>>2];break f}if(!(23>>>A&1))break Ce;A=i[(e=84016+(A<<3)|0)>>2];break f}if(t=0,r=150,!(1991>>>A&1))break fe;break R}if(r=150,27>>>A&1)break R}A=0,Z=(e=e-129489>>>0<13)?150:134;break l}e=e-127992>>>0<3,A=0;break c}if(e-9837>>>0<2)break R}Z=128;break i}if(e-8623>>>0<13)break O;if(e-8636>>>0<18)break T;if((A=e-8656|0)>>>0<22&&(r=0,3157995>>>A&1))break R;if(t=-2147483648,r=0,e-8661>>>0<31)break R;break L}if(e>>>0<128592)break y;if(t=0,r=0,e>>>0<128640)break R;if(!((A=e-128675|0)>>>0>29|!(1<<A&537788417)))break v;if(e>>>0<128710)break y;if(r=150,128716==(0|e))break R;if(e-128715>>>0<5)break M;if(e-128720>>>0<3)break y;if(!((A=e-128736|0)>>>0>=10|!(575>>>A&1)))break M;if(r=134,e-128747>>>0<2)break R;r=130;fe:switch(e-128752|0){case 0:case 3:break R}e=e-128756>>>0<6,A=0;break c}t=-2147483648;de:switch(e-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 L;case 0:case 14:break R}if(16!=(0|(e=e-8315|0))&&e)break L;return Z=0,8}if(t=268435520,r=1073741824,69955!=(0|e))break L;break R}if(e-8266>>>0<8)break O;if(t=-2147483640,8275==(0|e))break R;if(t=-2147483648,e-8277>>>0>=10)break L;break R}Z=542113792;break i}if(t=-2147483648,r=0,e-65093>>>0<2)break R;if(t=64,r=268435456,65104==(0|a))break R;t=268435520,r=-2147483648;le:switch(e-65106|0){case 3:Z=134217728;break A;case 5:Z=536870912;break r;case 4:break a;case 2:break t;case 0:break R;case 15:case 22:break le;default:break L}break S}if(2142==(0|e))break G;if(t=64,e-2096>>>0<15)break R;break L}if(t=1024,e-72850>>>0<22)break R;if((e=e-72874|0)>>>0>=13)break L;A=i[(e=82560+(e<<3)|0)>>2];break f}if(t=4096,e-71103>>>0<2)break R;if(t=1024,71132!=(-2&e))break L;break R}if(70726==(0|e))break z;if(t=4096,70850!=(-2&e))break L;break R}if(t=4096,e-68325>>>0>=2)break L;break R}if(6109==(0|e))break z;if(t=4096,e-6089>>>0>=11)break L;break R}te:switch(e-3959|0){case 0:case 2:return Z=0,8389632}if(3968==(0|A)|e-3953>>>0<14)break P;if(!((A=e-3970|0)>>>0>=6|!(55>>>A&1)))break z;if(e-3981>>>0<11)break P;if(t=1024,e-3993>>>0<36)break R;if(t=4096,4038!=(0|e))break L;break R}if(e-3655>>>0<6)break z;if(!((A=e-3761|0)>>>0>11|!(1<<A&3577)))break P;t=1024;Ae:switch(e-3661|0){case 1:break z;case 0:break R}if(t=4096,e-3784>>>0<5)break R;if(t=1024,3789!=(0|e))break L;break R}if(e-1770>>>0<3)break R;if(t=1024,1773!=(0|e))break L;break R}if(73028==(-2&e))break z;t=1024;$:switch(e-73104|0){default:if(73031!=(0|e))break L;break R;case 2:case 3:case 4:case 6:break L;case 0:case 1:case 5:break R;case 7:}break z}if((e=e-8492|0)>>>0>=30)break L;A=i[(e=81704+(e<<3)|0)>>2];break f}t=0;break X}r=(A=43712==(-3&e))>>>20|0,t=A<<12}if(131072==(0|(n=-65536&e)))break K;if(65536==(0|n))break U;if(A=t,a=r,n)break j}if(e-13312>>>0<6582)break e;if(e-19968>>>0<20976)break e;if(n=2048,e-63744>>>0<366)return Z=a,2048|A;if(t=A,r=a,e-64112>>>0>=106)break j;break V}if(n=2099200,e-183984>>>0<7473|e-178208>>>0<5762|e-177984>>>0<222|e-131072>>>0<42711)break V;if(e-173824>>>0<4149)break V;if(n=2048,e-194560>>>0<542)break V;break j}if(n=2048,e-110960>>>0<396|e-94208>>>0<6125|e-100352>>>0<755)break V}n=0}return Z=r,t|n}if(8508==(-4&e))break S;if(t=128,!(e-8517>>>0<3)&&(t=16777344,8520!=(-2&e)))break L}Z=r;break u}A=(e=e>>>0>131069)?65536:0,Z=e?0:128;break l}if(11776==(0|e))break O}Z=0;break s}Z=0;break i}return Z=0,4194304}return Z=0,128}return Z=0,16777344}return Z=0,4096}return Z=0,1024}return Z=0,-2147483520}return Z=0,e-10214>>>0<10?-2147483520:-2147483648}Z=0;break r}Z=0;break A}Z=130;break s}Z=130;break i}Z=134;break s}return Z=150,0}Z=0;break l}Z=e?0:r;break l}return Z=A,e}return 131072}return Z=0,16777216}Z=e?0:t;break l}return Z=r,e}return Z=t,e}Z=e?0:A;break u}return Z=0,8192}Z=i[e+4>>2];break l}Z=e?8388608:0;break l}return t}return Z=0,-2147483616}Z=e?134:128}return A}Z=134}return-2147483648}return 0}Z=1073741824;break r}Z=-2147483648}return 268435520}Z=67108864}return 64}return Z=a,2099200|A}function J(e){var A,t=0,r=0,n=0,l=0,c=0;(A=se(8244))&&(i[A+328>>2]=2,a[132848]=0,i[A+684>>2]=0,i[A+688>>2]=0,i[A+320>>2]=0,i[A+324>>2]=0,a[A+268|0]=0,a[A+228|0]=0,i[A+8216>>2]=0,i[A+8220>>2]=0,i[A+224>>2]=104944,i[A+216>>2]=383,i[A+220>>2]=96,kA(A+344|0,0,292),i[A+8196>>2]=0,i[(t=A+8188|0)>>2]=0,i[t+4>>2]=0,i[A+8180>>2]=0,i[A+8184>>2]=0,a[A+460|0]=22,a[A+461|0]=129,a[A+466|0]=38,a[A+462|0]=38,a[A+463|0]=36,a[A+464|0]=22,a[A+465|0]=224,a[A+456|0]=22,a[A+457|0]=22,a[A+458|0]=44,a[A+459|0]=22,a[A+454|0]=46,a[A+455|0]=129,a[A+446|0]=22,a[A+447|0]=38,a[A+448|0]=28,a[A+449|0]=193,a[A+450|0]=38,a[A+451|0]=22,a[A+452|0]=46,a[A+453|0]=46,a[A+441|0]=129,a[A+442|0]=38,a[A+443|0]=22,a[A+444|0]=38,a[A+445|0]=193,i[A+332>>2]=104912,i[A+336>>2]=104916,i[A+340>>2]=105232,a[A+296|0]=18,a[A+297|0]=18,s[A+304>>1]=182,s[A+306>>1]=140,a[A+298|0]=20,s[A+308>>1]=220,s[A+310>>1]=220,s[A+312>>1]=220,a[A+299|0]=20,a[A+300|0]=20,s[A+314>>1]=240,a[A+301|0]=22,s[A+316>>1]=260,s[A+318>>1]=280,a[A+302|0]=22,a[A+303|0]=20,t=kA(A,0,212),i[t+200>>2]=20,i[t+192>>2]=25966,i[t+196>>2]=500,i[t+80>>2]=95,i[t+16>>2]=1,i[t+20>>2]=3,i[t+8>>2]=2,i[t+52>>2]=19,a[t+168|0]=3,i[t+92>>2]=2,i[t+72>>2]=4,i[t+40>>2]=115,i[t+44>>2]=95,i[t+140>>2]=105244,Gr(t,201),i[t+120>>2]=2,i[t+124>>2]=44,i[t+164>>2]=100,i[t+128>>2]=46,i[t+132>>2]=14,i[t+112>>2]=1227133512,i[t+116>>2]=49,i[t+104>>2]=1,r=i[26313],i[t+636>>2]=i[26312],i[t+640>>2]=r,r=i[26315],i[t+644>>2]=i[26314],i[t+648>>2]=r,r=i[26317],i[t+652>>2]=i[26316],i[t+656>>2]=r,r=i[26319],i[t+660>>2]=i[26318],i[t+664>>2]=r,r=i[26321],i[t+668>>2]=i[26320],i[t+672>>2]=r,r=i[26323],i[t+676>>2]=i[26322],i[t+680>>2]=r,r=o[104928]|o[104929]<<8,a[t+160|0]=r,a[t+161|0]=r>>>8,r=o[104924]|o[104925]<<8|o[104926]<<16|o[104927]<<24,a[t+156|0]=r,a[t+157|0]=r>>>8,a[t+158|0]=r>>>16,a[t+159|0]=r>>>24),n=rt(A+228|0,e),t=0;e:{A:if(r=o[0|e]){for(;t=(r<<24>>24)+(t<<8)|0,r=o[0|(e=e+1|0)];);t:{r:{n:{a:{s:{i:{o:{l:{c:{g:{u:{d:{f:{p:{h:{m:{C:{b:{I:{w:{k:{x:{B:{v:{y:{E:{M:{G:{D:{Q:{T:{P:{z:{F:{S:{N:{O:{L:{Y:{H:{R:{W:{V:{j:{U:{K:{Z:{X:{q:{J:{_:{$:{ee:{Ae:{te:{re:{ne:{ae:{se:{ie:{oe:{le:{ce:{ge:{ue:{de:{fe:{pe:{he:{me:{if((0|t)<=28008){if((0|t)<=26464){if((0|t)<=25696){Ce:switch(t-24934|0){case 20:break l;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 oe;case 7:break le;case 0:break ce;case 13:break me}Ce:switch(t-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 W;case 2:break se;case 0:break ie;case 9:break me}switch(t-25441|0){case 18:break m;case 0:break $;case 24:break ne;default:break A}}Ce:switch(t-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break q;case 9:break _;case 7:break $;case 3:break ee;case 2:break Ae;case 0:break pe}Ce:switch(t-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 Z;case 8:break X;case 0:break J}switch(t-25697|0){case 4:break te;case 0:break re;default:break A}}if((0|t)<=27488){Ce:switch(t-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 Y;case 12:break H;case 11:break R;case 9:break W;case 0:break V}Ce:switch(t-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 S;case 18:break N;case 3:break O;case 14:break L;case 0:break $}switch(t-26465|0){case 20:break V;case 13:break j;case 0:case 3:break U;default:break A}}Ce:switch(t-27489|0){case 13:break c;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 G;case 20:break D;case 14:break Q;case 11:break T;case 10:break P;case 0:break z}switch(t-27745|0){case 19:break E;case 0:break M;case 21:break de;default:break A}}if((0|t)<=29792){if((0|t)<=28768){Ce:switch(t-28009|0){case 3:break c;case 11:break v;case 2:break y;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 O;case 9:break V;case 0:case 16:break ge}Ce:switch(t-28258|0){case 0:break x;case 10:break B;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break V}switch(t-28525|0){case 0:break k;case 5:break V;default:break A}}if((0|t)<=29539){Ce:switch(t-28769|0){case 19:break I;case 11:break w;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 V;case 24:break ge}Ce:switch(t-29295|0){case 6:break C;case 0:break b;case 1:case 2:case 3:case 4:case 5:break A}if(29045==(0|t))break ge;break A}switch(t-29540|0){case 19:break g;case 18:break u;case 13:break d;case 8:break p;case 5:break h;case 7:break m;case 14:break W;case 0:break s;default:break A}}if((0|t)>6514801)break he;if((0|t)<=30058)switch(t-29793|0){case 19:break o;case 17:break l;case 0:case 4:break c;case 13:break g;case 7:break ge;default:break A}if((0|t)<=30312)switch(t-30059|0){case 0:break i;case 15:break ge;case 7:break s;default:break A}if(30313==(0|t))break a;if(31336==(0|t))break n;if(6451321!=(0|t))break A}if(i[A+296>>2]=303174162,i[A+300>>2]=370545684,i[A+600>>2]=2432,i[A+8>>2]=0,i[A+12>>2]=65540,i[A+100>>2]=i[A+96>>2],e=i[25889],i[A+304>>2]=i[25888],i[A+308>>2]=e,e=i[25891],i[A+312>>2]=i[25890],i[A+316>>2]=e,Pe(A),a[A+345|0]=2|o[A+345|0],a[A+406|0]=16|o[A+406|0],a[A+407|0]=16|o[A+407|0],a[A+408|0]=16|o[A+408|0],a[A+409|0]=16|o[A+409|0],a[A+410|0]=16|o[A+410|0],a[A+411|0]=16|o[A+411|0],a[A+412|0]=16|o[A+412|0],a[A+413|0]=16|o[A+413|0],a[A+414|0]=16|o[A+414|0],a[A+415|0]=16|o[A+415|0],a[A+416|0]=16|o[A+416|0],a[A+417|0]=16|o[A+417|0],a[A+418|0]=16|o[A+418|0],a[A+419|0]=16|o[A+419|0],a[A+420|0]=16|o[A+420|0],a[A+456|0]=4|o[A+456|0],a[A+457|0]=4|o[A+457|0],i[A+112>>2]=613567144,i[A+104>>2]=16,6451321!=(0|t))break e;i[A+104>>2]=1,i[A+108>>2]=512,t=6451321;break e}if((0|t)>7364975)break ue;if((0|t)>6840682)break fe;if(6514802==(0|t))break ae;if(6516078==(0|t))break n;if(6779491!=(0|t))break A}if(i[A+600>>2]=896,i[A+328>>2]=8,i[A+296>>2]=336858127,i[A+300>>2]=353768980,i[A+332>>2]=103632,e=i[25905],i[A+304>>2]=i[25904],i[A+308>>2]=e,e=i[25907],i[A+312>>2]=i[25906],i[A+316>>2]=e,kA(A+344|0,0,256),a[A+388|0]=129,a[A+389|0]=129,a[A+390|0]=129,a[A+391|0]=129,a[A+420|0]=129,a[A+421|0]=129,a[A+422|0]=129,a[A+423|0]=129,a[A+360|0]=129,a[A+392|0]=129,a[A+393|0]=129,a[A+417|0]=129,a[A+418|0]=129,a[A+419|0]=129,a[A+420|0]=129,a[A+408|0]=6,a[A+409|0]=4,a[A+410|0]=6,a[A+411|0]=6,a[A+412|0]=6,a[A+413|0]=193,a[A+414|0]=6,a[A+415|0]=6,a[A+406|0]=6,a[A+407|0]=129,a[A+398|0]=4,a[A+399|0]=193,a[A+400|0]=6,a[A+401|0]=193,a[A+402|0]=6,a[A+403|0]=4,a[A+404|0]=4,a[A+405|0]=4,a[A+394|0]=4,a[A+395|0]=4,a[A+396|0]=4,a[A+397|0]=193,i[A+44>>2]=130,i[A+8>>2]=2,i[A+12>>2]=6,i[A+16>>2]=0,i[A+20>>2]=2,i[A+104>>2]=264,i[A+108>>2]=6146,a[A+391|0]=193,a[A+389|0]=193,a[A+390|0]=193,a[A+421|0]=193,i[A+100>>2]=i[A+96>>2],a[A+416|0]=4|o[A+416|0],6779491!=(0|t))break e;i[A+40>>2]=1,t=6779491;break e}if(6840683==(0|t))break K;if(6972015==(0|t))break F;if(7107687!=(0|t))break A}i[A+296>>2]=134875662,i[A+300>>2]=252968960,i[A+328>>2]=5,a[A+169|0]=1,i[A+132>>2]=33,i[A+104>>2]=99336,i[A+8>>2]=0,i[A+12>>2]=262182,e=i[26069],i[A+304>>2]=i[26068],i[A+308>>2]=e,e=i[26071],i[A+312>>2]=i[26070],i[A+316>>2]=e;break e}if((0|t)<=7564649){if(7364976==(0|t))break $;if(7435619==(0|t))break ge;if(7563374!=(0|t))break A;i[A+148>>2]=1,i[A+112>>2]=24,i[A+104>>2]=1,i[A+100>>2]=i[A+96>>2],t=7563374;break e}if(7564650==(0|t))break f;if(7959909==(0|t))break n;if(1885958500!=(0|t))break A}i[A+104>>2]=0;break e}i[A+4>>2]=48,i[A+8>>2]=0,i[A+144>>2]=1,i[A+104>>2]=16779472,i[A+32>>2]=1,i[A+24>>2]=1,e=i[25881],i[A+304>>2]=i[25880],i[A+308>>2]=e,e=i[25883],i[A+312>>2]=i[25882],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=24934;break e}i[A+600>>2]=4608,i[A+296>>2]=303173650,i[A+300>>2]=303174162,i[A+8>>2]=0,i[A+12>>2]=36,i[A+104>>2]=1024,i[A+100>>2]=i[A+96>>2],i[A+40>>2]=1,e=i[25865],i[A+304>>2]=i[25864],i[A+308>>2]=e,e=i[25867],i[A+312>>2]=i[25866],i[A+316>>2]=e,t=24941;break e}for(i[A+600>>2]=1536,i[A+224>>2]=0,i[A+216>>2]=1631,i[A+220>>2]=1536,i[A+104>>2]=2884720,i[A+328>>2]=7,i[A+40>>2]=1,j=t=j-16|0,i[t+12>>2]=-1,e=89684;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=1|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=89743;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=2|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=89795;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=4|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=89941;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=16|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=90045;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=32|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=90045;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=8|o[0|l]),e=e+n|0,r;);for(i[t+12>>2]=-1,e=90045;n=VA(t+12|0,e),(0|(r=i[t+12>>2]))>=33&&(a[0|(l=(A+r|0)-1192|0)]=64|o[0|l]),e=e+n|0,r;);j=t+16|0,t=24946;break e}i[A+600>>2]=1056,i[A+12>>2]=34,i[A+216>>2]=1118,i[A+220>>2]=1072,kA(A+344|0,0,256),a[A+406|0]=4,a[A+366|0]=4,a[A+367|0]=4,a[A+369|0]=4,a[A+370|0]=4,a[A+371|0]=4,a[A+372|0]=4,a[A+361|0]=4,a[A+362|0]=4,a[A+363|0]=4,a[A+364|0]=4,a[A+373|0]=4,a[A+380|0]=4,a[A+381|0]=4,a[A+382|0]=4,a[A+383|0]=4,a[A+375|0]=4,a[A+376|0]=4,a[A+377|0]=4,a[A+378|0]=4,a[A+384|0]=4,a[A+360|0]=129,i[A+328>>2]=6,i[A+296>>2]=134744588,i[A+300>>2]=286261248,i[A+40>>2]=1,i[A+8>>2]=0,i[A+104>>2]=1032,i[A+108>>2]=66,e=i[25885],i[A+304>>2]=i[25884],i[A+308>>2]=e,e=i[25887],i[A+312>>2]=i[25886],i[A+316>>2]=e,t=25189;break e}We(A),i[A+328>>2]=6,i[A+56>>2]=2,i[A+36>>2]=263,i[A+40>>2]=1074,i[A+124>>2]=32,i[A+104>>2]=184554728,i[A+8>>2]=2,a[A+386|0]=64&o[A+386|0]|129,t=25191;break e}i[A+12>>2]=262182,i[A+40>>2]=1,t=6514802;break e}i[A+328>>2]=14,i[A+296>>2]=303173393,i[A+300>>2]=336986112,i[A+104>>2]=1024,i[A+16>>2]=0,i[A+20>>2]=2,i[A+8>>2]=2,i[A+12>>2]=22,i[A+44>>2]=120,e=i[25893],i[A+304>>2]=i[25892],i[A+308>>2]=e,e=i[25895],i[A+312>>2]=i[25894],i[A+316>>2]=e,a[A+463|0]=64&o[A+463|0]|129,a[A+465|0]=64&o[A+465|0]|129,t=25465;break e}i[A+8>>2]=0,i[A+104>>2]=184618072,i[A+32>>2]=1,e=i[26101],i[A+304>>2]=i[26100],i[A+308>>2]=e,e=i[26103],i[A+312>>2]=i[26102],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=25697;break e}i[A+296>>2]=336860180,i[A+300>>2]=336991764,i[A+8>>2]=0,i[A+104>>2]=16846872,i[A>>2]=8,i[A+4>>2]=48,i[A+80>>2]=87,i[A+32>>2]=1,i[A+36>>2]=256,i[A+40>>2]=2,e=i[25897],i[A+304>>2]=i[25896],i[A+308>>2]=e,e=i[25899],i[A+312>>2]=i[25898],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=25701;break e}i[A+132>>2]=33,i[A+104>>2]=16779328,i[A+8>>2]=0,i[A+12>>2]=8,i[A+204>>2]=101,i[A+60>>2]=2,i[A+40>>2]=2,e=i[25901],i[A+304>>2]=i[25900],i[A+308>>2]=e,e=i[25903],i[A+312>>2]=i[25902],i[A+316>>2]=e,a[A+441|0]=64|o[A+441|0],a[A+445|0]=64|o[A+445|0],a[A+449|0]=64|o[A+449|0],a[A+455|0]=64|o[A+455|0],a[A+461|0]=64|o[A+461|0],a[A+465|0]=64|o[A+465|0],t=25966;break e}i[A+328>>2]=4,i[A+296>>2]=336858640,i[A+300>>2]=353768980,i[A+104>>2]=16782344,i[A+20>>2]=2,i[A+12>>2]=22,i[A+4>>2]=2,i[A+8>>2]=2,i[A+332>>2]=103640,e=i[25997],i[A+304>>2]=i[25996],i[A+308>>2]=e,e=i[25999],i[A+312>>2]=i[25998],i[A+316>>2]=e,t=25967;break e}i[A+296>>2]=269422096,i[A+300>>2]=370545684,i[A+104>>2]=86017320,i[A+108>>2]=6144,i[A+16>>2]=0,i[A+20>>2]=2,i[A+8>>2]=2,i[A+12>>2]=534,i[A+100>>2]=i[A+96>>2],i[A+44>>2]=120,e=i[25913],i[A+304>>2]=i[25912],i[A+308>>2]=e,e=i[25915],i[A+312>>2]=i[25914],i[A+316>>2]=e;$:{ee:{if((0|t)<=26976){if(24942==(0|t))break ee;if(25441!=(0|t))break $;i[A+12>>2]=566,i[A+336>>2]=103664,t=25441;break e}if(26977!=(0|t)){if(7364976!=(0|t))break $;i[A+8>>2]=3,i[A+12>>2]=310,t=7364976;break e}i[A+104>>2]=85984264,t=26977;break e}i[A+104>>2]=153093416,i[A+108>>2]=2048,i[A+140>>2]=103676,t=24942;break e}i[A+40>>2]=2;break e}i[A+296>>2]=303173648,i[A+300>>2]=303174162,i[A+104>>2]=3147080,i[A+12>>2]=65792,i[A+84>>2]=1,e=i[25921],i[A+304>>2]=i[25920],i[A+308>>2]=e,e=i[25923],i[A+312>>2]=i[25922],i[A+316>>2]=e,t=25973;break e}i[A+600>>2]=1536,i[A+216>>2]=1740,i[A+220>>2]=1568,i[A+104>>2]=96,i[A+224>>2]=103696,i[A+340>>2]=103872,i[A+40>>2]=1,t=26209;break e}i[A+328>>2]=5}i[A+104>>2]=86024,i[A+164>>2]=130,a[A+465|0]=64&o[A+465|0]|129;break e}i[A+296>>2]=303173650,i[A+300>>2]=303174162,i[A+8>>2]=3,i[A+12>>2]=36,i[A+144>>2]=2,i[A+104>>2]=118658312,i[A+28>>2]=1,i[A+100>>2]=i[A+96>>2],e=i[25865],i[A+304>>2]=i[25864],i[A+308>>2]=e,e=i[25867],i[A+312>>2]=i[25866],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=26226;break e}s[A+170>>1]=257,i[A+148>>2]=1,i[A+12>>2]=2,t=6840683;break e}i[A+144>>2]=2,i[A+104>>2]=2098176,i[A+8>>2]=0,i[A+12>>2]=32,i[A+40>>2]=3,i[A+28>>2]=1;break e}i[A+8>>2]=3,i[A+100>>2]=i[A+96>>2],t=26478;break e}i[A+328>>2]=18,i[A+296>>2]=320081425,i[A+300>>2]=353768980,i[A+600>>2]=2304,i[A+112>>2]=84648,i[A+104>>2]=16,i[A+8>>2]=6,i[A+12>>2]=65540,i[A+100>>2]=i[A+96>>2],e=i[25973],i[A+304>>2]=i[25972],i[A+308>>2]=e,e=i[25975],i[A+312>>2]=i[25974],i[A+316>>2]=e;V:{j:{U:{if((0|t)<=28529){if(26485==(0|t))break U;if(28261!=(0|t))break V;e=i[25861],i[A+304>>2]=i[25860],i[A+308>>2]=e,e=i[25863],i[A+312>>2]=i[25862],i[A+316>>2]=e,i[A+296>>2]=320017171,i[A+300>>2]=320017171,i[A+132>>2]=22,i[A+112>>2]=-1431655768,i[A+108>>2]=32768|i[A+108>>2],Pe(A);break e}if(28530==(0|t))break j;if(28769!=(0|t))break V;i[A+600>>2]=2560,Pe(A);break e}e=i[25861],i[A+304>>2]=i[25860],i[A+308>>2]=e,e=i[25863],i[A+312>>2]=i[25862],i[A+316>>2]=e,i[A+600>>2]=2688,i[A+296>>2]=320017171,i[A+300>>2]=320017171,i[A+8>>2]=2,Pe(A);break e}i[A+600>>2]=2816}Pe(A);break e}a[0|n]=104,a[n+1|0]=98,a[n+2|0]=115,a[n+3|0]=0,29554!=(0|t)?(e=i[26093],i[A+304>>2]=i[26092],i[A+308>>2]=e,e=i[26095],i[A+312>>2]=i[26094],i[A+316>>2]=e):(e=i[25977],i[A+304>>2]=i[25976],i[A+308>>2]=e,e=i[25979],i[A+312>>2]=i[25978],i[A+316>>2]=e),i[A+328>>2]=3,i[A+296>>2]=336859409,i[A+300>>2]=353768980,s[A+168>>1]=261,i[A+8>>2]=0,i[A+12>>2]=16,i[A+144>>2]=1,i[A+184>>2]=1056,i[A+104>>2]=33572172,i[A+108>>2]=330,i[A+36>>2]=3,a[A+465|0]=64&o[A+465|0]|129,a[A+458|0]=64&o[A+458|0]|129;break e}i[A+104>>2]=17990912,i[A+8>>2]=3,i[A+12>>2]=36,t=26740;break e}i[A+328>>2]=3,i[A+296>>2]=320016657,i[A+300>>2]=353768980,i[A+124>>2]=32,i[A+128>>2]=44,i[A+104>>2]=186758144,i[A+12>>2]=1081398,i[A+16>>2]=2,i[A+4>>2]=32,i[A+8>>2]=0,i[A+116>>2]=899,i[A+120>>2]=1,a[A+169|0]=1,i[A+76>>2]=2,e=i[25981],i[A+304>>2]=i[25980],i[A+308>>2]=e,e=i[25983],i[A+312>>2]=i[25982],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,Gr(A,3),t=26741;break e}for(i[A+600>>2]=1328,i[A+8>>2]=3,e=i[25985],i[A+304>>2]=i[25984],i[A+308>>2]=e,e=i[25987],i[A+312>>2]=i[25986],i[A+316>>2]=e,n=kA(A+344|0,0,256),a[A+429|0]=129,a[A+416|0]=129,a[A+403|0]=129,a[A+399|0]=129,a[A+400|0]=129,a[A+397|0]=129,a[A+393|0]=129,r=103952,l=50,c=50;a[0|(e=n+c|0)]=2|o[0|e],e=n+o[r+1|0]|0,a[0|e]=2|o[0|e],e=n+o[r+2|0]|0,a[0|e]=2|o[0|e],c=o[0|(r=r+3|0)],e=103952,103982!=(0|r););for(r=A+344|0;a[0|(n=r+l|0)]=4|o[0|n],n=r+o[e+1|0]|0,a[0|n]=4|o[0|n],n=r+o[e+2|0]|0,a[0|n]=4|o[0|n],l=o[0|(e=e+3|0)],103982!=(0|e););a[A+168|0]=6,i[A+104>>2]=5128,a[A+413|0]=4|o[A+413|0];break e}i[A+328>>2]=4,i[A+296>>2]=336858640,i[A+300>>2]=353768980,i[A+104>>2]=16782440,i[A+20>>2]=2,i[A+12>>2]=22,i[A+4>>2]=2,i[A+8>>2]=2,i[A+332>>2]=104e3,e=i[25997],i[A+304>>2]=i[25996],i[A+308>>2]=e,e=i[25999],i[A+312>>2]=i[25998],i[A+316>>2]=e,t=26991;break e}i[A+296>>2]=303174160,i[A+300>>2]=353768980,i[A+104>>2]=16781320,i[A+144>>2]=2,i[A+8>>2]=2,i[A+12>>2]=22,e=i[26005],i[A+304>>2]=i[26004],i[A+308>>2]=e,e=i[26007],i[A+312>>2]=i[26006],i[A+316>>2]=e;break e}for(i[A+8>>2]=0,i[A+12>>2]=16,i[A+56>>2]=2,i[A+28>>2]=17,e=i[26009],i[A+304>>2]=i[26008],i[A+308>>2]=e,e=i[26011],i[A+312>>2]=i[26010],i[A+316>>2]=e,e=0,r=A+344|0;a[0|(n=e+r|0)]=231&o[0|n],a[0|(n=r+(1|e)|0)]=231&o[0|n],a[0|(n=r+(2|e)|0)]=231&o[0|n],a[0|(n=r+(3|e)|0)]=231&o[0|n],256!=(0|(e=e+4|0)););i[A+104>>2]=2280,i[A+108>>2]=2,i[A+608>>2]=104048,a[A+451|0]=16|o[A+451|0],a[A+456|0]=16|o[A+456|0],a[A+459|0]=16|o[A+459|0],a[A+460|0]=16|o[A+460|0],a[A+450|0]=8|o[A+450|0],a[A+462|0]=8|o[A+462|0],a[A+458|0]=8|o[A+458|0],a[A+465|0]=64&o[A+465|0]|129;break e}i[A+296>>2]=269618961,i[A+300>>2]=370546196,i[A+12>>2]=131110,i[A+144>>2]=2,i[A+104>>2]=184559112,i[A+108>>2]=8192,i[A+16>>2]=0,i[A+20>>2]=2,i[A+4>>2]=1,i[A+8>>2]=2,i[A+100>>2]=i[A+96>>2],i[A+140>>2]=103676,i[A+68>>2]=2,i[A+56>>2]=1,i[A+44>>2]=130,i[A+28>>2]=2,e=i[26025],i[A+304>>2]=i[26024],i[A+308>>2]=e,e=i[26027],i[A+312>>2]=i[26026],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=26996;break e}i[A+4>>2]=524,i[A+8>>2]=2,i[A+196>>2]=368,i[A+104>>2]=0,i[A+336>>2]=104128,i[A- -64>>2]=1,e=i[26029],i[A+304>>2]=i[26028],i[A+308>>2]=e,e=i[26031],i[A+312>>2]=i[26030],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=6972015;break e}for(i[A+296>>2]=303174162,i[A+300>>2]=370545684,e=i[25873],i[A+304>>2]=i[25872],i[A+308>>2]=e,e=i[25875],i[A+312>>2]=i[25874],i[A+316>>2]=e,n=kA(A+344|0,0,256),a[A+431|0]=1,a[A+429|0]=1,a[A+411|0]=1,a[A+405|0]=1,a[A+400|0]=1,a[A+396|0]=1,a[A+392|0]=1,e=104160,r=49;a[0|(r=r+n|0)]=4|o[0|r],r=n+o[e+1|0]|0,a[0|r]=4|o[0|r],r=n+o[e+2|0]|0,a[0|r]=4|o[0|r],r=o[0|(e=e+3|0)],104193!=(0|e););i[A+600>>2]=4256,i[A+8>>2]=0,i[A+12>>2]=16,a[A+168|0]=7,i[A+132>>2]=32,a[A+392|0]=128|o[A+392|0],a[A+396|0]=128|o[A+396|0],a[A+400|0]=128|o[A+400|0],a[A+405|0]=128|o[A+405|0],a[A+411|0]=128|o[A+411|0],a[A+429|0]=128|o[A+429|0],a[A+431|0]=128|o[A+431|0],i[A+188>>2]=1056,i[A+192>>2]=29301,i[A+104>>2]=19964960;break e}for(i[A+600>>2]=1056,n=kA(A+344|0,0,256),a[A+393|0]=1,a[A+365|0]=1,a[A+360|0]=1,a[A+545|0]=1,a[A+529|0]=1,a[A+391|0]=1,a[A+389|0]=1,a[A+390|0]=1,a[A+387|0]=1,a[A+379|0]=1,a[A+374|0]=1,a[A+368|0]=1,a[A+489|0]=1,a[A+487|0]=1,a[A+398|0]=1,e=104224,r=17;a[0|(r=r+n|0)]=4|o[0|r],r=n+o[e+1|0]|0,a[0|r]=4|o[0|r],r=n+o[e+2|0]|0,a[0|r]=4|o[0|r],r=o[0|(e=e+3|0)],104251!=(0|e););a[A+360|0]=128|o[A+360|0],a[A+365|0]=128|o[A+365|0],a[A+393|0]=128|o[A+393|0],a[A+368|0]=128|o[A+368|0],a[A+374|0]=128|o[A+374|0],a[A+379|0]=128|o[A+379|0],a[A+387|0]=128|o[A+387|0],a[A+389|0]=128|o[A+389|0],a[A+390|0]=128|o[A+390|0],a[A+391|0]=128|o[A+391|0],a[A+529|0]=128|o[A+529|0],a[A+545|0]=128|o[A+545|0],a[A+489|0]=128|o[A+489|0],a[A+487|0]=128|o[A+487|0],a[A+398|0]=128|o[A+398|0],e=i[26055],i[A+312>>2]=i[26054],i[A+316>>2]=e,e=i[26053],i[A+304>>2]=i[26052],i[A+308>>2]=e,i[A+296>>2]=353636370,i[A+300>>2]=336925972,i[A+200>>2]=0,i[A+8>>2]=7,i[A+12>>2]=2097184,a[A+168|0]=2,i[A+104>>2]=50176,i[A+84>>2]=1,Gr(A,3);break e}i[A+296>>2]=320017171,i[A+300>>2]=320017171,i[A+104>>2]=184618072,i[A+8>>2]=12,i[A+12>>2]=32,e=i[25861],i[A+304>>2]=i[25860],i[A+308>>2]=e,e=i[25863],i[A+312>>2]=i[25862],i[A+316>>2]=e,t=27500;break e}i[A+184>>2]=42752,i[A+600>>2]=4352,kA(A+344|0,0,256),a[A+456|0]=1,a[A+457|0]=1,a[A+458|0]=1,a[A+459|0]=1,a[A+449|0]=1,a[A+450|0]=1,a[A+451|0]=1,a[A+452|0]=1,a[A+453|0]=1,a[A+454|0]=1,a[A+455|0]=1,a[A+456|0]=1,a[A+441|0]=1,a[A+442|0]=1,a[A+443|0]=1,a[A+444|0]=1,a[A+445|0]=1,a[A+446|0]=1,a[A+447|0]=1,a[A+448|0]=1,a[A+460|0]=65,a[A+461|0]=65,a[A+532|0]=32,a[A+527|0]=32,a[A+519|0]=32,a[A+515|0]=32,a[A+349|0]=32,a[A+350|0]=32,a[A+346|0]=32,i[A+132>>2]=20,i[A+112>>2]=286331152,i[A+104>>2]=1024,i[A+108>>2]=16384,i[A+40>>2]=1,i[A+8>>2]=8,a[A+458|0]=65,a[A+453|0]=65,a[A+447|0]=65,a[A+448|0]=65,a[A+443|0]=65,a[A+444|0]=65,t=27503;break e}i[A+328>>2]=10,i[A+296>>2]=336859666,i[A+300>>2]=353768980,a[A+168|0]=2,i[A+104>>2]=263264,i[A+8>>2]=7,e=i[26065],i[A+304>>2]=i[26064],i[A+308>>2]=e,e=i[26067],i[A+312>>2]=i[26066],i[A+316>>2]=e,t=27509;break e}i[A+104>>2]=1,t=27513;break e}i[A+116>>2]=5e3,i[A+104>>2]=16777216,i[A+24>>2]=1,i[A+16>>2]=0,i[A+20>>2]=2,i[A+8>>2]=2,i[A+12>>2]=32,i[A+328>>2]=5,t=27745;break e}i[A+116>>2]=5e3,i[A+104>>2]=99336,i[A+108>>2]=256,i[A+24>>2]=1,i[A+16>>2]=0,i[A+20>>2]=2,i[A+8>>2]=2,i[A+12>>2]=32,i[A+328>>2]=5,t=27764;break e}i[A+328>>2]=6,i[A+296>>2]=336859409,i[A+300>>2]=353768980,i[A+600>>2]=1056,i[A+104>>2]=2114600,i[A+108>>2]=138,i[A+8>>2]=4,i[A+632>>2]=104288,i[A+604>>2]=104288,e=i[26093],i[A+304>>2]=i[26092],i[A+308>>2]=e,e=i[26095],i[A+312>>2]=i[26094],i[A+316>>2]=e,t=28011;break e}i[A+328>>2]=4,i[A+104>>2]=1,i[A+8>>2]=2,i[A+36>>2]=256,t=28020;break e}i[A+4>>2]=48,i[A+8>>2]=0,i[A+12>>2]=128,i[A+104>>2]=2169880,i[A+32>>2]=1,i[A+36>>2]=256,i[A+24>>2]=1,i[A+136>>2]=85767,e=i[26097],i[A+304>>2]=i[26096],i[A+308>>2]=e,e=i[26099],i[A+312>>2]=i[26098],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=28268;break e}i[A+8>>2]=0,i[A+104>>2]=71752,e=i[26101],i[A+304>>2]=i[26100],i[A+308>>2]=e,e=i[26103],i[A+312>>2]=i[26102],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=28258;break e}i[A+296>>2]=336858898,i[A+300>>2]=370546196,i[A+104>>2]=1088,i[A+108>>2]=512,i[A+8>>2]=2,i[A+12>>2]=524310,e=i[26105],i[A+304>>2]=i[26104],i[A+308>>2]=e,e=i[26107],i[A+312>>2]=i[26106],i[A+316>>2]=e,t=28525;break e}i[A+328>>2]=3,i[A+296>>2]=320015633,i[A+300>>2]=353768980,a[A+168|0]=7,i[A+8>>2]=2,i[A+12>>2]=6,i[A+104>>2]=20488,i[A+108>>2]=192,i[A+36>>2]=9,i[A+60>>2]=260,e=i[26109],i[A+304>>2]=i[26108],i[A+308>>2]=e,e=i[26111],i[A+312>>2]=i[26110],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=28780;break e}for(i[A+296>>2]=353569552,i[A+300>>2]=353768980,i[A+116>>2]=5e3,i[A+104>>2]=33570920,i[A+108>>2]=14336,i[A+8>>2]=3,i[A+12>>2]=139286,i[A+100>>2]=i[A+96>>2],e=i[26113],i[A+304>>2]=i[26112],i[A+308>>2]=e,e=i[26115],i[A+312>>2]=i[26114],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,e=0,r=A+344|0;a[0|(n=e+r|0)]=253&o[0|n],a[0|(n=r+(1|e)|0)]=253&o[0|n],a[0|(n=r+(2|e)|0)]=253&o[0|n],a[0|(n=r+(3|e)|0)]=253&o[0|n],256!=(0|(e=e+4|0)););a[A+442|0]=2|o[A+442|0],a[A+443|0]=2|o[A+443|0],a[A+444|0]=2|o[A+444|0],a[A+446|0]=2|o[A+446|0],a[A+447|0]=2|o[A+447|0],a[A+450|0]=2|o[A+450|0],a[A+451|0]=2|o[A+451|0],a[A+453|0]=2|o[A+453|0],a[A+454|0]=2|o[A+454|0],a[A+456|0]=2|o[A+456|0],a[A+457|0]=2|o[A+457|0],a[A+459|0]=2|o[A+459|0],a[A+460|0]=2|o[A+460|0],a[A+462|0]=2|o[A+462|0],a[A+464|0]=2|o[A+464|0],a[A+466|0]=2|o[A+466|0],i[A+144>>2]=2,i[A+68>>2]=2;break e}i[A+296>>2]=303172879,i[A+300>>2]=353768980,i[A+328>>2]=3,i[A+8>>2]=3,i[A+12>>2]=262,i[A+104>>2]=16805928,i[A+108>>2]=30,e=i[26117],i[A+304>>2]=i[26116],i[A+308>>2]=e,e=i[26119],i[A+312>>2]=i[26118],i[A+316>>2]=e,t=29295;break e}it(A),t=29301;break e}for(i[A+328>>2]=3,i[A+296>>2]=336859153,i[A+300>>2]=353768980,s[A+168>>1]=261,i[A+8>>2]=0,i[A+12>>2]=22,i[A+124>>2]=0,i[A+128>>2]=44,i[A+104>>2]=16794624,i[A+108>>2]=128,i[A+36>>2]=3,i[A+60>>2]=4,e=i[25869],i[A+304>>2]=i[25868],i[A+308>>2]=e,e=i[25871],i[A+312>>2]=i[25870],i[A+316>>2]=e,25459==(0|t)&&(i[A+108>>2]=136),a[A+465|0]=64&o[A+465|0]|129,a[A+458|0]=64&o[A+458|0]|129,e=0,r=A+344|0;a[0|(n=e+r|0)]=223&o[0|n],a[0|(n=r+(1|e)|0)]=223&o[0|n],a[0|(n=r+(2|e)|0)]=223&o[0|n],a[0|(n=r+(3|e)|0)]=223&o[0|n],256!=(0|(e=e+4|0)););a[A+442|0]=32|o[A+442|0],a[A+444|0]=32|o[A+444|0],a[A+447|0]=32|o[A+447|0],a[A+450|0]=32|o[A+450|0],a[A+452|0]=32|o[A+452|0],a[A+453|0]=32|o[A+453|0],a[A+454|0]=32|o[A+454|0],a[A+458|0]=32|o[A+458|0],a[A+462|0]=32|o[A+462|0],a[A+463|0]=32|o[A+463|0],a[A+466|0]=32|o[A+466|0],a[A+441|0]=32|o[A+441|0],a[A+445|0]=32|o[A+445|0],a[A+449|0]=32|o[A+449|0],a[A+455|0]=32|o[A+455|0],a[A+461|0]=32|o[A+461|0],a[A+465|0]=32|o[A+465|0];break e}for(i[A+296>>2]=303174162,i[A+300>>2]=370545684,i[A+600>>2]=3456,a[A+169|0]=1,i[A+8>>2]=0,i[A+12>>2]=22,i[A+100>>2]=i[A+96>>2],e=i[25873],i[A+304>>2]=i[25872],i[A+308>>2]=e,e=i[25875],i[A+312>>2]=i[25874],i[A+316>>2]=e,kA(A+344|0,0,256),a[A+365|0]=1,a[A+366|0]=1,a[A+357|0]=1,a[A+358|0]=1,a[A+359|0]=1,a[A+360|0]=1,a[A+361|0]=1,a[A+362|0]=1,a[A+363|0]=1,a[A+364|0]=1,a[A+349|0]=1,a[A+350|0]=1,a[A+351|0]=1,a[A+352|0]=1,a[A+353|0]=1,a[A+354|0]=1,a[A+355|0]=1,a[A+356|0]=1,e=74,r=74;a[344+(n=A+r|0)|0]=1|o[n+344|0],a[n+345|0]=1|o[n+345|0],a[n+346|0]=1|o[n+346|0],116!=(0|(r=r+3|0)););for(;a[344+(r=e+A|0)|0]=2|o[r+344|0],a[r+345|0]=2|o[r+345|0],a[r+346|0]=2|o[r+346|0],116!=(0|(e=e+3|0)););for(r=26;a[344+(e=A+r|0)|0]=4|o[e+344|0],a[e+345|0]=4|o[e+345|0],a[e+346|0]=4|o[e+346|0],a[e+347|0]=4|o[e+347|0],a[e+348|0]=4|o[e+348|0],71!=(0|(r=r+5|0)););i[A+112>>2]=84648,i[A+104>>2]=270589952,i[A+108>>2]=65536,i[A+40>>2]=1,i[A+204>>2]=i[A+600>>2]+74;break e}i[A+8>>2]=2,i[A+12>>2]=32,i[A+328>>2]=3,i[A+124>>2]=32,i[A+104>>2]=16864280,i[A+108>>2]=256,i[A+68>>2]=2,i[A+36>>2]=259,i[A+40>>2]=118,i[A+28>>2]=1,a[A+458|0]=128|o[A+458|0],t=29548;break e}i[A+296>>2]=370544658,i[A+300>>2]=370546196,i[A+164>>2]=130,i[A+8>>2]=0,i[A+12>>2]=86,i[A+104>>2]=87064,a[A+169|0]=1,i[A+152>>2]=3,e=i[26121],i[A+304>>2]=i[26120],i[A+308>>2]=e,e=i[26123],i[A+312>>2]=i[26122],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=7564650;break e}i[A+296>>2]=269487120,i[A+300>>2]=320148500,i[A+8>>2]=3,i[A+12>>2]=278,i[A+144>>2]=2,i[A+104>>2]=32872,e=i[26125],i[A+304>>2]=i[26124],i[A+308>>2]=e,e=i[26127],i[A+312>>2]=i[26126],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=29553;break e}i[A+296>>2]=336859152,i[A+300>>2]=353768980,i[A+8>>2]=0,i[A+144>>2]=1,i[A+104>>2]=6408,e=i[26129],i[A+304>>2]=i[26128],i[A+308>>2]=e,e=i[26131],i[A+312>>2]=i[26130],i[A+316>>2]=e,a[A+465|0]=64&o[A+465|0]|129,t=29558;break e}i[A+296>>2]=320015376,i[A+300>>2]=353768980,a[A+168|0]=4,i[A+12>>2]=22,i[A+4>>2]=1,i[A+8>>2]=2,i[A+104>>2]=1248,i[A+100>>2]=i[A+96>>2],e=i[26133],i[A+304>>2]=i[26132],i[A+308>>2]=e,e=i[26135],i[A+312>>2]=i[26134],i[A+316>>2]=e;break e}i[A+296>>2]=303174162,i[A+300>>2]=370545684,a[A+169|0]=1,i[A+8>>2]=0,i[A+12>>2]=22,i[A+112>>2]=5288,i[A+100>>2]=i[A+96>>2],e=i[25877],i[A+304>>2]=i[25876],i[A+308>>2]=e,e=i[25879],i[A+312>>2]=i[25878],i[A+316>>2]=e;c:switch(t-29793|0){default:if(27502!=(0|t)){if(28012!=(0|t))break t;e=i[26137],i[A+304>>2]=i[26136],i[A+308>>2]=e,e=i[26139],i[A+312>>2]=i[26138],i[A+316>>2]=e,i[A+600>>2]=3328,i[A+296>>2]=320017171,i[A+300>>2]=320017171,i[A+104>>2]=2098176,i[A+108>>2]=131072,i[A+8>>2]=13;break t}i[A+104>>2]=1,i[A+600>>2]=3200;break t;case 4:break c;case 1:case 2:case 3:break t;case 0:break r}i[A+104>>2]=1,i[A+108>>2]=524288,i[A+600>>2]=3072;break t}i[A+328>>2]=10,i[A+296>>2]=353636370,i[A+300>>2]=336925972,a[A+173|0]=1,i[A+8>>2]=7,i[A+12>>2]=32,a[A+168|0]=2,i[A+84>>2]=1,e=i[26141],i[A+304>>2]=i[26140],i[A+308>>2]=e,i[A+104>>2]=24954==(0|t)?2118920:2114824,e=i[26143],i[A+312>>2]=i[26142],i[A+316>>2]=e;break e}We(A),i[A+296>>2]=303173650,i[A+300>>2]=303174162,i[A+104>>2]=2131208,i[A+8>>2]=3,i[A+12>>2]=32,e=i[25865],i[A+304>>2]=i[25864],i[A+308>>2]=e,e=i[25867],i[A+312>>2]=i[25866],i[A+316>>2]=e,t=29812;break e}it(A),t=30059;break e}i[A+112>>2]=21160,i[A+104>>2]=16,i[A+600>>2]=1536,i[A+40>>2]=1;break e}i[A+296>>2]=269488144,i[A+300>>2]=370546198,i[A+8>>2]=0,i[A>>2]=33,i[A+148>>2]=1,i[A+104>>2]=12615688,i[A+16>>2]=2,i[A+100>>2]=i[A+96>>2],i[A+632>>2]=104592,i[A+604>>2]=104592,e=i[26145],i[A+304>>2]=i[26144],i[A+308>>2]=e,e=i[26147],i[A+312>>2]=i[26146],i[A+316>>2]=e,t=30313;break e}if(i[A+296>>2]=370544662,i[A+300>>2]=370546198,i[A+8>>2]=3,i[A+12>>2]=2,i[A+148>>2]=1,i[A+184>>2]=12544,s[A+170>>1]=257,i[A+176>>2]=1,a[A+172|0]=1,i[A>>2]=33,i[A+4>>2]=0,i[A+100>>2]=i[A+96>>2],e=i[26225],i[A+304>>2]=i[26224],i[A+308>>2]=e,e=i[26227],i[A+312>>2]=i[26226],i[A+316>>2]=e,7959909!=(0|t))break e;i[A+112>>2]=24,i[A+104>>2]=1,i[A+108>>2]=1048576,t=7959909;break e}e=i[25873],i[A+304>>2]=i[25872],i[A+308>>2]=e,e=i[25875],i[A+312>>2]=i[25874],i[A+316>>2]=e,i[A+600>>2]=2944,i[A+104>>2]=2097152,i[A+108>>2]=262144,i[A+48>>2]=1}Pe(A),a[A+422|0]=2|o[A+422|0];break e}i[A+40>>2]=1}return i[A+212>>2]=t,8&(e=i[A+104>>2])&&(i[A+124>>2]=46,i[A+128>>2]=44),4&e&&(i[A+124>>2]=0),A}function _(e){var A=0,t=0,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0;e:{t=i[32538],i[47354]=0,i[47568]=0,i[49828]=0,i[47569]=0,a[199328]=0,i[49827]=0,i[49845]=0,a[190280]=0,a[190268]=1,i[47202]=0,i[49573]=0,i[49846]=0,a[199304]=0,a[199388]=0,i[33691]=0,i[33285]=0,i[33708]=1,i[33709]=1,i[33288]=0,A=i[33730],i[33712]=i[33729],i[33713]=A,A=i[33732],i[33714]=i[33731],i[33715]=A,A=i[33734],i[33716]=i[33733],i[33717]=A,A=i[33736],i[33718]=i[33735],i[33719]=A,A=i[33738],i[33720]=i[33737],i[33721]=A,A=i[33740],i[33722]=i[33739],i[33723]=A,A=i[33742],i[33724]=i[33741],i[33725]=A,i[33726]=i[33743],a[134784]=0,a[134824]=0,a[134772]=0,a[134760]=0,i[33284]=-1,i[33692]=0,i[32525]=0,i[47201]=i[33717],i[47200]=i[33718],$r(),i[34438]=0,i[34437]=0,A=i[33730],i[34048]=i[33729],i[34049]=A,A=i[33732],i[34050]=i[33731],i[34051]=A,A=i[33734],i[34052]=i[33733],i[34053]=A,A=i[33736],i[34054]=i[33735],i[34055]=A,A=i[33738],i[34056]=i[33737],i[34057]=A,A=i[33740],i[34058]=i[33739],i[34059]=A,A=i[33742],i[34060]=i[33741],i[34061]=A,i[34062]=i[33743];A:{t:{if(1&t){if(i[i[32539]>>2]=0,i[47569]|i[49845]|i[49827])break t;break A}if(i[i[32539]>>2]=0,!(i[49845]|i[49827]||i[47569]))break A}a[190280]=1}i[49828]=0,A=268436735;A:if(!(!i[34391]|!i[34388])&&(i[47204]=0,i[47203]=0,i[47199]=0,i[34439]=0,(i[47192]||!(A=ZA(86228)))&&((A=i[33283])||((A=se(16))&&(i[A>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0),i[33283]=A),l=268439807,(t=i[i[47192]+328>>2])>>>0>20|!i[129104+(t<<3)>>2]?A=l:(e?(l=4,n=Wt(e)+1|0):(l=2,n=0),i[A+8>>2]=l,i[A>>2]=e,i[A+12>>2]=i[129108+(t<<3)>>2],i[A+4>>2]=e?e+n|0:0,A=0),!A))){X(0);t:{for(;;){i[34436]=0,e=i[34391],i[51290]=e,i[54046]=e+i[34390],i[50767]<=102399&&(i[50767]=102400);r:if(!((c=i[51290])>>>0>=h[54046]))for(;;){if((((0|(e=(n=i[50757])-(g=i[50758])|0))<=0?e+170|0:e)-171|0)>=-1){if((0|(e=i[54731]))<=0)break r;l=0,i[50763]=0,i[50762]=0,i[50765]=2147483647,e=o[218920]?i[54732]:e;n:{for(;;){if(t=e-1|0,i[54732]=t,(0|e)<=0)break n;if(i[51290]=c+1,A=(e=i[51293])+1|0,i[51293]=(0|A)<=5499?A:0,A=(e=C(i[50755],s[205184+(e<<1)>>1]))>>8,a[0|c]=A,n=i[51290],i[51290]=n+1,a[0|n]=e>>>16,(n=i[50756])?(e=t,(t=i[n+4>>2])&&(Tn[0|t](A<<16>>16),e=i[54732])):e=t,n=(t=i[51292])+1|0,i[51292]=n,s[205184+(t<<1)>>1]=A,(0|n)>=5500&&(i[51292]=0),c=i[51290],!(h[54046]>=c+2>>>0))break}l=1}a[218920]=l;break r}e=i[4+(t=216192+(n<<4)|0)>>2];n:{a:{s:{i:{o:{l:{c:{g:{u:{d:{f:{p:{h:{m:{C:{b:switch((255&(A=i[t>>2]))-1|0){case 9:break s;case 7:break i;case 10:break o;case 11:break l;case 13:break c;case 0:break g;case 1:break u;case 2:break d;case 3:break f;case 6:break p;case 5:break h;case 4:break m;case 15:break C;case 8:break b;default:break a}if(!i[50759])break a;A=i[t+12>>2],t=i[t+8>>2],i[50768]=0,c=t||99232,i[50766]=c,i[50769]=e?2097152/(0|e)|0:0,e=i[50971],n=(0|C(e,i[50788]))/50|0,t=C(n-e|0,-18),e=((0|(e=i[50785]))>=101?101:e)-i[50790]|0,A=(l=t+((0|C(i[50970],o[((0|e)>0?e:0)+105680|0]))/128|0)|0)+((0|C(n,(0|(e=A>>16))<(0|(t=65535&A))?e:t))/2|0)|0,i[50770]=A,e=(l+((0|C(n,(0|e)>(0|t)?e:t))/2|0)|0)-A|0,i[50771]=e,t=o[0|c],i[33072]=i[50976],i[50767]=A+(C(e,t)>>8);break a}Tn[i[i[50756]>>2]](e,i[t+8>>2]),ye(e);break a}if(o[218920]||(i[54731]=i[54731]-e),i[50781]=100,i[50773]=0,iA(),i[50763]=0,i[50762]=0,i[50765]=2147483647,!e)break a;for(e=o[218920]?i[54732]:e;;){if(t=e-1|0,i[54732]=t,(0|e)<=0)break a;if(e=i[51290],i[51290]=e+1,n=(A=i[51293])+1|0,i[51293]=(0|n)<=5499?n:0,n=e,A=(e=C(i[50755],s[205184+(A<<1)>>1]))>>8,a[0|n]=A,n=i[51290],i[51290]=n+1,a[0|n]=e>>>16,(n=i[50756])?(e=t,(t=i[n+4>>2])&&(Tn[0|t](A<<16>>16),e=i[54732])):e=t,n=(t=i[51292])+1|0,i[51292]=n,s[205184+(t<<1)>>1]=A,(0|n)>=5500&&(i[51292]=0),n=1,!(h[54046]>=i[51290]+2>>>0))break}break n}for(i[50773]=0,i[54731]=i[54729],iA(),A=i[t+12>>2],n=i[t+8>>2],o[218920]?e=i[54733]:i[54734]=0,g=A>>8,l=255&A,i[50762]=0,i[50763]=0;;){if(t=e-1|0,i[54733]=t,(0|e)<=0)break a;if(A=(e=i[54734])+1|0,l?c=C(l,a[e+n|0]):(c=o[e+n|0]|a[A+n|0]<<8,A=e+2|0),i[54734]=A,u=(e=i[51293])+1|0,i[51293]=u,A=(0|(e=(0|(e=((0|C(g,C(i[33037],C(i[33038],c))>>10))/32|0)+(C(i[50755],s[205184+(e<<1)>>1])>>8)|0))<=-32768?-32768:e))>=32767?32767:e,(0|u)>=5500&&(i[51293]=0),a[i[51290]]=A,a[i[51290]+1|0]=A>>>8,(c=i[50756])?(e=t,(t=i[c+12>>2])&&(Tn[0|t](A<<16>>16),e=i[54733])):e=t,t=i[51290],i[51290]=t+2,u=(c=i[51292])+1|0,i[51292]=u,s[205184+(c<<1)>>1]=(0|C(A,3))/4,(0|u)>=5500&&(i[51292]=0),!(h[54046]>=t+4>>>0))break}n=1;break n}A=i[t+12>>2],n=e>>>16|0,i[50777]=n,e&=65535,i[50773]=e,l=255&A,i[50774]=l,i[50775]=A>>8,l||(i[50777]=n<<1,i[50773]=e<<1),i[50778]=0,i[50776]=0,i[50772]=i[t+8>>2];break a}i[50773]=0}if(i[54731]=i[54729],A=i[50759],o[218920]){if(!A)break a}else{if(!A)break a;for(l=i[t+12>>2],c=i[t+8>>2],t=e>>16,i[55912]=255&t,a[218960]=1,i[55908]=0,67108864&e&&(i[55908]=3,i[55909]=i[110496+(t>>>6&12)>>2]),134217728&e&&(i[55908]=4,i[55909]=i[110512+(t>>>6&12)>>2]),e&=65504;;){if((0|g)!=(0|(n=(0|(t=n+1|0))<=169?t:0)))if(3!=(0|(t=i[216192+(n<<4)>>2]))){if(t-5>>>0>1)continue}else a[218960]=0;break}for(i[55913]=i[50762],e=(e=e+32&131008)||64,i[50763]=e+i[50763],i[55684]=C(s[101997],7800)+(p[102024]<<8)<<8,i[55704]=C(s[101998],9e3)+(p[102025]<<8)<<8,k=i[50980],r=+(0|e),b=+(e>>>2|0),e=0;7!=(0|e)&&(n=s[218+(u=(t=e<<1)+A|0)>>1]<<8,g=C(e,80)+222176|0,u=s[u+164>>1],w=n+C(u,s[2+(t+c|0)>>1])<<8,i[g>>2]=w,f=+(0|w),m[g+16>>3]=f,m[g+48>>3]=16*(+(n+C(u,s[2+(t+l|0)>>1])<<8)-f)/b),n=(t=C(e,80))+222176|0,u=s[182+(w=A+(e<<1)|0)>>1],B=C(u,o[18+(g=e+c|0)|0])<<6,i[n+4>>2]=B,f=+(0|B),m[n+24>>3]=f,x=n,n=e+l|0,m[x+56>>3]=64*(+(C(u,o[n+18|0])<<6)-f)/r,(0|e)>(0|k)|e>>>0>5||(u=t+222176|0,B=s[w+200>>1],w=C(B,o[g+26|0])<<10,i[u+8>>2]=w,f=+(0|w),m[u+32>>3]=f,x=u- -64|0,u=B<<10,m[x>>3]=64*(+(0|C(u,o[n+26|0]))-f)/r,e>>>0<=2?(t=t+222176|0,g=C(u,o[g+32|0]),i[t+12>>2]=g,f=+(0|g),m[t+40>>3]=f,m[t+72>>3]=64*(+(0|C(u,o[n+32|0]))-f)/r):i[t+222188>>2]=w),8!=(0|(e=e+1|0)););}for(;;){if(e=i[50762],!o[218960]&(0|e)==i[50763])break a;d:{f:{if(63&e){if(7&e)break d;p:if(!((0|(t=i[54736]))<=0||(0|(A=i[54735]))<=0))for(n=i[50826],e=1;;){if(i[(c=(l=e<<2)+n|0)>>2]=i[c>>2]+i[l+203312>>2],e>>>0>28|(0|e)>=(0|t))break p;if(l=(0|e)<(0|A),e=e+1|0,!l)break}if((0|(e=i[33073]))>255)break d;i[33073]=e+1;break d}if(e)if(i[50759]){if(t=i[50768]+i[50769]|0,i[50768]=t,t=(A=i[50766])?C(o[A+((0|(t>>=8))>=127?127:t)|0],i[50771])>>8:0,i[55911]=i[55911]+i[55915],A=(0|(A=i[55914]))<=23551?A:0,i[55914]=A+i[50761],A=(t+i[50770]|0)+C(i[33072],o[110528+(A>>6)|0]-128|0)|0,i[50767]=A,!(n=i[51291])&(0|(t=n?n<<12:A))>102399||(A=(0|t)<=102400?102400:t,i[50767]=A),(0|e)!=i[55913]){if(e=0,!((0|(g=i[50980]))<0)){for(;c=C(e,80),r=m[48+(t=c+222176|0)>>3]+m[t+16>>3],m[t+16>>3]=r,b=m[t+56>>3]+m[t+24>>3],m[t+24>>3]=b,f=m[t- -64>>3]+m[t+32>>3],m[t+32>>3]=f,n=I(r)<2147483648?~~r:-2147483648,i[t>>2]=n,n=I(f)<2147483648?~~f:-2147483648,i[t+8>>2]=n,l=I(b)<2147483648?~~b:-2147483648,i[t+4>>2]=(0|l)>0?l:0,(0|e)>2||(r=m[72+(t=c+222176|0)>>3]+m[t+40>>3],m[t+40>>3]=r,n=I(r)<2147483648?~~r:-2147483648),i[c+222188>>2]=n,(0|g)>=(0|(e=e+1|0)););if((0|e)>=8)break f}for(;7!=(0|e)&&(t=C(e,80)+222176|0,r=m[t+48>>3]+m[t+16>>3],m[t+16>>3]=r,n=I(r)<2147483648?~~r:-2147483648,i[t>>2]=n),t=C(e,80)+222176|0,r=m[t+56>>3]+m[t+24>>3],m[t+24>>3]=r,n=I(r)<2147483648?~~r:-2147483648,i[t+4>>2]=(0|n)>0?n:0,8!=(0|(e=e+1|0)););}}else A=i[50767];else i[50826]=218976,i[54742]=0,i[54736]=Ye(i[50767]<<4,218976,0),A=i[50767],i[54737]=890/(A>>12),i[54739]=(0|C(i[50781],C(i[50779],A>>8)))/8e4}if(i[55906]=A>>11,i[54735]=i[54736],i[55904]=C(i[50760],A>>7),i[55905]=i[50754]/(A>>12),t=1^(e=i[54742]),i[54742]=t,i[50826]=C(e,1600)+218976,i[54736]=Ye(A<<4,C(t,1600)+218976|0,1),!(!(A=i[50759])|!i[51022]))for(b=m[25430],f=m[25429],e=1;i[272+(t=A+(e<<2)|0)>>2]&&(n=i[t+308>>2],t=C(e,40)+203456|0,d=nt(b*+s[2+(C(e,80)+222176|0)>>1]),d*=r=$e(f*+(0|n)),d+=d,m[t+8>>3]=d,r*=-r,m[t+16>>3]=r,m[t>>3]=1-d-r),9!=(0|(e=e+1|0)););}if(l=i[50762]+1|0,i[50762]=l,c=(e=i[50765])+i[55904]|0,i[50765]=c,(0|c)<0&(0|e)>0){if(u=i[55905],A=i[50800]+((0|u)/-2|0)|0,i[55907]=A,(0|(w=i[50763]))<(0|l))break a;if(k=i[54738]+1|0,i[54738]=k,g=i[50767],!((0|(e=(t=i[50980])+1|0))>8)&&(n=g<<3,1&t&&(i[203264+(e<<2)>>2]=(1+(i[C(e,80)+222176>>2]/(0|n)|0)|0)/2,e=t+2|0),7!=(0|t)))for(;t=203264+(e<<2)|0,B=C(e,80)+222176|0,i[t>>2]=(1+(i[B>>2]/(0|n)|0)|0)/2,i[t+4>>2]=(1+(i[B+80>>2]/(0|n)|0)|0)/2,9!=(0|(e=e+2|0)););e=(0|C(i[50781],C(i[50779],g>>8)))/8e4|0,i[54739]=e;d:if(!((0|(t=i[55908]))<=0)){f:switch(t-3|0){case 0:if((w-l|0)>=u<<1)break d;i[55908]=2,e=(0|C(i[55909],e))/256|0,i[54739]=e;break d;case 1:i[55908]=2,e=(0|C(i[55909],e))/256|0,i[54739]=e;break d}i[55908]=t-1}(t=i[55910])&&(n=e,e=i[55911]>>8,e=(0|C(n,o[t+((0|e)>=127?127:e)|0]))/128|0,i[54739]=e),(0|(t=i[i[32972]+92>>2]))>7||(t=15&(n=o[i[55912]+(106336+(t<<3)|0)|0]),(n=n>>>4|0)&&(15!=(0|n)?(0|k)%(0|n)|0||(i[54739]=(0|C(e,t))/16):(i[55912]=0,i[54739]=(0|C(e,t))/16)))}else A=i[55907];if(l=A+1|0,i[55907]=l,t=c>>>16|0,n=0,!((0|l)<0|(0|l)>=i[50799])){if(!((0|(e=(A=i[50980])+1|0))>8)){if(g=1&(c=8-A|0),7!=(0|A))for(u=-2&c,A=0;n=C(i[203216+(w=4+(c=e<<2)|0)>>2],s[106400+(C(t,i[w+203264>>2])>>>4&4094)>>1])+(C(i[c+203216>>2],s[106400+(C(t,i[c+203264>>2])>>>4&4094)>>1])+n|0)|0,e=e+2|0,(0|u)!=(0|(A=A+2|0)););g&&(n=C(i[203216+(e<<=2)>>2],s[106400+(C(t,i[e+203264>>2])>>>4&4094)>>1])+n|0)}n=C(o[l+132160|0],(0|n)/i[55906]|0)}if(e=1,(0|(l=i[54737]))<=0)A=t;else for(c=i[50826],A=t;n=C(i[c+(e<<2)>>2],s[106400+((65504&A)>>>4|0)>>1])+n|0,A=A+t|0,(0|l)>=(0|(e=e+1|0)););if((0|(l=i[54735]))>=(0|e))for(c=i[50826];n=n-C(i[c+(e<<2)>>2],s[106400+((65504&A)>>>4|0)>>1])|0,A=A+t|0,(0|l)>=(0|(e=e+1|0)););if(l=64==(0|(e=i[54728]))?n:C(e,n>>6),i[51022]){if(i[50759])for(t=rr(i[33209],0,1103515245,0),e=Z,e=gn(t=t+12345|0,e=t>>>0<12345?e+1|0:e),i[33209]=e,b=+((16383&e)- -8192|0),A=i[50759],c=0,e=1;(n=i[272+(A+(e<<2)|0)>>2])&&(g=i[C(e,80)+222180>>2],t=C(e,40)+203456|0,r=m[t+32>>3],f=m[t+24>>3],m[t+32>>3]=f,r=r*m[t+16>>3]+(m[t>>3]*b+f*m[t+8>>3]),m[t+24>>3]=r,t=I(r)<2147483648?~~r:-2147483648,c=C(t,C(n,g>>14))+c|0),9!=(0|(e=e+1|0)););else c=0;l=l+c|0}A=0,(0|(e=i[50776]))>=i[50773]||(t=i[50778],A=i[50772],(c=i[50774])?(n=e+1|0,i[50776]=n,e=C(c,a[A+(e+t|0)|0])):(c=o[0|(A=A+(e+t|0)|0)],A=a[A+1|0],n=e+2|0,i[50776]=n,e=c|A<<8),A=(0|C(C(e,i[50780])>>10,i[50775]))/32|0,(0|(e=i[50777]))>(t+n|0)||(i[50778]=t+((0|C(e,3))/-4|0))),t=(e=i[51293])+1|0,i[51293]=t,e=((C(i[54739],l>>8)>>13)+A|0)+(C(i[50755],s[205184+(e<<1)>>1])>>8)|0,(0|t)>=5500&&(i[51293]=0),t=i[33073];d:{f:{if((0|(A=C(t,e)))>=8388608){if((0|t)>=(0|(c=8388608/(0|e)|0)))break f;break d}if((0|A)>-8388353)break d;if((0|t)<(0|(c=-8388608/(0|e)|0)))break d}t=c-1|0,i[33073]=t,A=C(e,t)}if(e=i[51290],i[51290]=e+1,t=e,e=A>>8,a[0|t]=e,t=i[51290],i[51290]=t+1,a[0|t]=A>>>16,(t=i[50756])&&(t=i[t+8>>2])&&Tn[0|t](e<<16>>16),A=(t=i[51292])+1|0,i[51292]=A,s[205184+(t<<1)>>1]=e,(0|A)>=5500&&(i[51292]=0),!(h[54046]>=i[51290]+2>>>0))break}n=1;break n}i[50773]=0}i[54731]=i[54729],n=1,g=65535&e,A=o[218920],c=i[t+8>>2],l=i[t+12>>2],r=0,f=0,j=t=j+-64|0,u=i[50759];g:if(6!=(0|(e=i[u+132>>2]))){if(!A){for(e-1>>>0<=4&&(i[55921]=e,i[55964]=i[110896+(e<<2)>>2]),e=i[u+88>>2],i[54741]=1,i[55922]=(0|e)/32,A=i[50758],e=i[50757];;){u:if((0|A)!=(0|(e=(0|(e=e+1|0))<=169?e:0)))if(1!=(0|(w=i[216192+(e<<4)>>2]))){if(w-5>>>0>1)continue}else{if(i[54741]=0,e=i[8+(216192+(e<<4)|0)>>2],!(p[l+4>>1]!=p[e+4>>1]|p[e+6>>1]!=p[l+6>>1]|p[e+8>>1]!=p[l+8>>1]|p[e+10>>1]!=p[l+10>>1])&&p[e+12>>1]==p[l+12>>1])break u;i[54741]=2}break}for((p[c+4>>1]!=p[113564]|p[c+6>>1]!=p[113565]|p[c+8>>1]!=p[113566]|p[c+10>>1]!=p[113567]||p[c+12>>1]!=p[113568])&&(Er(),i[55974]=0,i[55975]=0,i[55972]=0,i[55973]=0,i[55988]=0,i[55989]=0,i[55990]=0,i[55991]=0,i[56004]=0,i[56005]=0,i[56006]=0,i[56007]=0,i[56020]=0,i[56021]=0,i[56022]=0,i[56023]=0,i[56036]=0,i[56037]=0,i[56038]=0,i[56039]=0,i[56052]=0,i[56053]=0,i[56054]=0,i[56055]=0,i[56068]=0,i[56069]=0,i[56070]=0,i[56071]=0,i[56086]=0,i[56087]=0,i[56084]=0,i[56085]=0,i[56102]=0,i[56103]=0,i[56100]=0,i[56101]=0,i[56118]=0,i[56119]=0,i[56116]=0,i[56117]=0,i[56134]=0,i[56135]=0,i[56132]=0,i[56133]=0,i[56150]=0,i[56151]=0,i[56148]=0,i[56149]=0,i[56166]=0,i[56167]=0,i[56164]=0,i[56165]=0,i[56182]=0,i[56183]=0,i[56180]=0,i[56181]=0,i[56198]=0,i[56199]=0,i[56196]=0,i[56197]=0,i[56214]=0,i[56215]=0,i[56212]=0,i[56213]=0,i[56230]=0,i[56231]=0,i[56228]=0,i[56229]=0),e=p[l+4>>1]|p[l+6>>1]<<16,A=p[l>>1]|p[l+2>>1]<<16,s[113562]=A,s[113563]=A>>>16,s[113564]=e,s[113565]=e>>>16,e=p[l+60>>1]|p[l+62>>1]<<16,A=p[l+56>>1]|p[l+58>>1]<<16,s[113590]=A,s[113591]=A>>>16,s[113592]=e,s[113593]=e>>>16,e=p[l+52>>1]|p[l+54>>1]<<16,A=p[l+48>>1]|p[l+50>>1]<<16,s[113586]=A,s[113587]=A>>>16,s[113588]=e,s[113589]=e>>>16,e=p[l+44>>1]|p[l+46>>1]<<16,A=p[l+40>>1]|p[l+42>>1]<<16,s[113582]=A,s[113583]=A>>>16,s[113584]=e,s[113585]=e>>>16,e=p[l+36>>1]|p[l+38>>1]<<16,A=p[l+32>>1]|p[l+34>>1]<<16,s[113578]=A,s[113579]=A>>>16,s[113580]=e,s[113581]=e>>>16,e=p[l+28>>1]|p[l+30>>1]<<16,A=p[l+24>>1]|p[l+26>>1]<<16,s[113574]=A,s[113575]=A>>>16,s[113576]=e,s[113577]=e>>>16,e=p[l+20>>1]|p[l+22>>1]<<16,A=p[l+16>>1]|p[l+18>>1]<<16,s[113570]=A,s[113571]=A>>>16,s[113572]=e,s[113573]=e>>>16,e=p[l+12>>1]|p[l+14>>1]<<16,A=p[l+8>>1]|p[l+10>>1]<<16,s[113566]=A,s[113567]=A>>>16,s[113568]=e,s[113569]=e>>>16,b=+(0|g),(x=1&s[c>>1])?(e=o[c+39|0],i[56680]=e,m[28364]=e>>>0,m[28354]=+(o[l+39|0]-e<<6)/b,e=o[c+40|0],m[28366]=e>>>0,m[28356]=+(o[l+40|0]-e<<6)/b,e=o[c+41|0],i[56682]=e,m[28368]=e>>>0,m[28358]=+(o[l+41|0]-e<<6)/b,A=o[c+42|0],i[56684]=A,m[28370]=A>>>0,e=o[c+43|0],r=+(o[l+43|0]-e<<6)/b,f=+(o[l+42|0]-A<<6)/b,d=+(e>>>0)):(i[56728]=0,i[56729]=0,e=0,i[56680]=0,i[56708]=0,i[56709]=0,i[56732]=0,i[56733]=0,i[56712]=0,i[56713]=0,i[56682]=0,i[56736]=0,i[56737]=0,i[56716]=0,i[56717]=0,i[56684]=0,i[56740]=0,i[56741]=0,d=0),i[56688]=e,m[28360]=f,m[28372]=d,m[28362]=r,i[56692]=0,i[56748]=0,i[56749]=0,i[56694]=0,i[56752]=0,i[56753]=0,i[56696]=0,i[56756]=0,i[56757]=0,i[56700]=0,i[56760]=0,i[56761]=0,i[56704]=0,i[56764]=0,i[56765]=0,i[50764]=g,e=1;k=s[164+(w=(g=e<<1)+u|0)>>1],A=(G=C(e,80))+222896|0,f=+s[w+218>>1],r=.00390625*+(0|C(k,s[2+(c+g|0)>>1]))+f,m[A+16>>3]=r,B=I(r)<2147483648?~~r:-2147483648,i[A>>2]=B,m[A+48>>3]=64*(.00390625*+(0|C(k,s[2+(l+g|0)>>1]))+f-r)/b,e>>>0<=3&&(A=G+222896|0,r=.00390625*+s[w+200>>1]*+(o[35+(e+c|0)|0]<<1),m[A+24>>3]=r,g=I(r)<2147483648?~~r:-2147483648,i[A+4>>2]=g,m[A+56>>3]=64*(+(o[35+(e+l|0)|0]<<1)-r)/b),6!=(0|(e=e+1|0)););if(r=+((e=o[c+40|0])<<1),m[27864]=r,A=i[56618],e||(r=+(0|A),m[27864]=r),e=I(r)<2147483648?~~r:-2147483648,i[55724]=e,g=o[l+40|0],i[55730]=0,i[55731]=1079394304,i[55738]=0,i[55739]=0,i[55725]=89,e=1,m[27868]=64*(+(0|(g?g<<1:A))-r)/b,x)for(;A=C(e,80)+222896|0,u=o[56+(g=e+c|0)|0]<<2,i[A+12>>2]=u,r=+(0|u),m[A+40>>3]=r,u=e+l|0,m[A+72>>3]=64*(+(o[u+56|0]<<2)-r)/b,g=o[g+49|0],i[A+8>>2]=g,r=+(g>>>0),m[A+32>>3]=r,m[A- -64>>3]=64*(+o[u+49|0]-r)/b,7!=(0|(e=e+1|0)););i[56606]=0}for(;;){if((0|(B=i[50764]))>(0|(l=i[56606]))){for(e=i[50767],i[56609]=i[55724],i[56619]=i[55725],i[56610]=i[55744],i[56611]=i[55764],i[56612]=i[55784],i[56613]=i[55804],x=C(e,10),i[56607]=(0|x)/4096,i[56620]=i[55745],i[56621]=i[55765],i[56622]=i[55785],i[56614]=i[55824],i[56630]=i[55746],i[56631]=i[55766],i[56632]=i[55786],i[56633]=i[55806],i[56634]=i[55826],i[56635]=i[55846],G=i[56680],i[56608]=G,c=i[56694],i[56656]=c,g=i[56696],i[56653]=g,u=i[56700],i[56655]=u,w=i[56684],i[56649]=w,i[56651]=i[56704],i[56654]=i[56688],i[56652]=i[56682],i[56650]=i[56692],e=0;A=C(e,80)+222896|0,r=m[A+48>>3]+m[A+16>>3],m[A+16>>3]=r,b=m[A+56>>3]+m[A+24>>3],m[A+24>>3]=b,f=m[A+72>>3]+m[A+40>>3],m[A+40>>3]=f,d=m[A- -64>>3]+m[A+32>>3],m[A+32>>3]=d,k=I(r)<2147483648?~~r:-2147483648,i[A>>2]=k,k=I(b)<2147483648?~~b:-2147483648,i[A+4>>2]=k,k=I(f)<2147483648?~~f:-2147483648,i[A+12>>2]=k,k=I(d)<2147483648?~~d:-2147483648,i[A+8>>2]=k,9!=(0|(e=e+1|0)););for(r=m[28354]+m[28364],m[28364]=r,m[28366]=m[28356]+m[28366],b=m[28358]+m[28368],m[28368]=b,f=m[28360]+m[28370],m[28370]=f,d=m[28362]+m[28372],m[28372]=d,e=I(r)<2147483648?~~r:-2147483648,i[56680]=e,e=I(b)<2147483648?~~b:-2147483648,i[56682]=e,e=I(f)<2147483648?~~f:-2147483648,i[56684]=e,e=I(d)<2147483648?~~d:-2147483648,i[56688]=e,r=m[28374]+0,m[28374]=r,e=I(r)<2147483648?~~r:-2147483648,i[56692]=e,r=m[28376]+0,m[28376]=r,e=I(r)<2147483648?~~r:-2147483648,i[56694]=e,r=m[28378]+0,m[28378]=r,e=I(r)<2147483648?~~r:-2147483648,i[56696]=e,r=m[28380]+0,m[28380]=r,e=I(r)<2147483648?~~r:-2147483648,i[56700]=e,r=m[28382]+0,m[28382]=r,e=I(r)<2147483648?~~r:-2147483648,i[56704]=e,i[56659]=i[55724],i[56669]=i[55725],i[56660]=i[55744],i[56670]=i[55745],i[56661]=i[55764],i[56671]=i[55765],i[56662]=i[55784],i[56672]=i[55785],i[56663]=i[55804],i[56664]=i[55824],i[56665]=i[55844],e=i[50768]+i[50769]|0,i[50768]=e,e>>=8,i[50767]=i[50770]+(C(i[50771],o[i[50766]+((0|e)>=127?127:e)|0])>>8),e=B-l|0,i[55923]=(0|e)>=64?64:e,i[55961]=(0|x)/40960,e=G-7|0,i[56658]=(0|e)>0?e:0,m[27974]=w>>>0<=87?.001*+s[111136+(w<<1)>>1]*.05:0,m[27975]=g>>>0<=87?.001*+s[111136+(g<<1)>>1]*.25:0,m[27973]=c>>>0<=87?.001*+s[111136+(c<<1)>>1]:0,m[27971]=u>>>0<=87?.001*+s[111136+(u<<1)>>1]*.05:0,r=(e=i[56629])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.6:0,m[t>>3]=r,r=(e=i[56630])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.4:0,m[t+8>>3]=r,r=(e=i[56631])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.15:0,m[t+16>>3]=r,r=(e=i[56632])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.06:0,m[t+24>>3]=r,r=(e=i[56633])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.04:0,m[t+32>>3]=r,r=(e=i[56634])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.022:0,m[t+40>>3]=r,r=(e=i[56635])>>>0<=87?.001*+s[111136+(e<<1)>>1]*.03:0,m[t+48>>3]=r,r=(e=(0|(e=i[56657]-3|0))<=0?57:e)>>>0<=87?.001*+s[111136+(e<<1)>>1]:0,m[27977]=r/+i[55964],b=m[27968],f=m[27967],e=1;A=223664+(l=e<<6)|0,d=(r=$e(f*+i[48+(g=226428+(c=e<<2)|0)>>2]))*-r,m[A+216>>3]=d,r*=nt(b*+i[g+8>>2]),r+=r,m[A+208>>3]=r,E=1-r-d,m[A+200>>3]=E,e>>>0<=5&&(g=i[208+(c=c+226428|0)>>2],A=l+223664|0,y=(v=$e(f*+i[c+248>>2]))*nt(b*+(0|g)),y+=y,m[A+1488>>3]=y,v*=-v,m[A+1496>>3]=v,M=1-y-v,m[A+1480>>3]=M,m[A+256>>3]=.015625*(v-d),m[A+248>>3]=.015625*(y-r),m[A+240>>3]=.015625*(M-E)),10!=(0|(e=e+1|0)););for(v=(r=$e(f*+i[56619]))*-r,m[27985]=v,y=(r*=nt(b*+(0-i[56609]|0)))+r,m[27984]=y,r=1-y-v,m[27983]=r,0!=r&&(r=1/r,m[27983]=r,v*=d=-r,m[27985]=v,y*=d,m[27984]=y),E=(d=$e(f*+i[56669]))*-d,m[28145]=E,M=(d*=nt(b*+(0-i[56659]|0)))+d,m[28144]=M,d=1-M-E,m[28143]=d,0!=d&&(d=1/d,m[28143]=d,E*=T=-d,m[28145]=E,M*=T,m[28144]=M),m[27990]=.015625*(E-v),m[27989]=.015625*(M-y),m[27988]=.015625*(d-r),e=0;c=i[8+(l=226428+(e<<2)|0)>>2],A=223664+(e<<6)|0,d=(r=$e(f*+i[l+128>>2]))*nt(b*+(0|c)),d+=d,m[A+848>>3]=d,r*=-r,m[A+856>>3]=r,m[A+840>>3]=m[t+(e<<3)>>3]*(1-d-r),7!=(0|(e=e+1|0)););if(f=(r=$e(f*+(i[55918]/2|0)))*-r,m[28137]=f,r*=nt(0*b),r+=r,m[28136]=r,m[28135]=1-r-f,e=1,1!=(0|pe()))continue;break g}break}e=1,i[54741]>0&&(i[54741]=0,i[55963]=64,i[56606]=l+-64,i[55923]=64,1==(0|pe()))||(e=0)}else{if(j=w=j-752|0,!A){kA(e=w+376|0,0,376),Xe(u,c,e),Xe(u,l,e=kA(w,0,376)),A=i[50768]+C(i[50769],g>>>6|0)|0,i[50768]=A,A>>=8,A=i[50770]+(C(i[50771],o[i[50766]+((0|A)>=127?127:A)|0])>>8)|0,i[50767]=A,m[e+368>>3]=(0|A)/4096|0,i[50773]&&(m[e+736>>3]=m[e+736>>3]/5,m[e+360>>3]=m[e+360>>3]/5),A=i[i[56797]+4>>2],Tn[i[i[A>>2]>>2]](A,e+376|0,110,110,-1,0),l=g-110|0,u=i[50758],A=i[50757];u:{for(;;){if((0|u)!=(0|(A=(A+1|0)%170|0))&&!((k=i[216192+(A<<4)>>2])-5>>>0<2)){if(c=1,1!=(0|k))continue;break u}break}l=g-220|0,c=0}(0|l)>0&&(A=i[i[56797]+4>>2],Tn[i[i[A>>2]>>2]](A,e,l,l||1,-1,0)),c||(i[e+352>>2]=0,i[e+356>>2]=0,m[e>>3]=m[e+368>>3],A=i[i[56797]+4>>2],Tn[i[i[A>>2]>>2]](A,e,55,55,-1,0),i[e+360>>2]=0,i[e+364>>2]=0,A=i[i[56797]+4>>2],Tn[i[i[A>>2]>>2]](A,e,55,55,-1,0))}e=i[i[56797]+8>>2],A=i[51290],g=0|Tn[i[i[e>>2]>>2]](e,i[54046]-A>>>1|0,A),u=i[51290];u:if(g&&!((0|(A=i[50776]))>=(0|(G=i[50773]))))for(D=i[50777],P=(0|C(D,3))/-4|0,r=.0009765625*+i[50780],k=i[50772],l=i[50778],z=i[50775],B=i[50774],e=0;;){if(x=o[k+(c=A+l|0)|0],B?x=C(B,x<<24>>24):(A=A+1|0,i[50776]=A,x|=a[k+(c=A+l|0)|0]<<8),x=I(b=r*+(0|x))<2147483648?~~b:-2147483648,s[(Q=u+(e<<1)|0)>>1]=p[Q>>1]+((0|C(x,z))/40|0),(0|c)>=(0|D)&&(l=l+P|0,i[50778]=l),A=A+1|0,i[50776]=A,(0|A)>=(0|G))break u;if(!(g>>>0>(e=e+1|0)>>>0))break}e=u+(g<<1)|0,i[51290]=e,j=w+752|0,e=h[54046]<=e>>>0}if(j=t- -64|0,e)break n;break a}i[50781]=e||100;break a}je(e,i[t+8>>2]);break a}e=i[t+8>>2],i[50759]=_e(203816,e,1344),i[50801]=i[e+108>>2]?105792:106064,e=(0|C(i[e+120>>2],26))/100|0,i[33038]=e,(0|(n=i[50754]))<=11e3&&(a[203300]=1,i[33038]=e<<1),i[54728]=i[50982],e=i[50979],A=i[50978],kA(205184,0,11e3),i[51293]=0,e=(A=(c=(0|(l=i[50789]))>0)?130:(0|A)>=5499?5499:A)?c?l:(0|e)>=100?100:e:0,i[50755]=e,A=(0|C(A,n))/1e3|0,i[51292]=A,i[54729]=(0|e)>20?A<<1:e?A:0,i[33037]=(0|C(500-e|0,(0|C(o[i[50797]+105596|0],(0|C(i[50787],55))/100|0))/16|0))/500,e=256,(0|(A=(0|(A=i[50785]))>=101?101:A))>=51&&(e=256+(((C(A,25)-1250&65535)>>>0)/50|0)|0),s[101990]=(0|C(s[102026],e))/256,s[101991]=(0|C(s[102027],e))/256,s[101992]=(0|C(s[102028],e))/256,s[101993]=(0|C(s[102029],e))/256,s[101994]=(0|C(s[102030],e))/256,s[101995]=(0|C(s[102031],e))/256,e=i[50790],s[101999]=(0|C(s[102035],C(e,-6)+256|0))/256,s[102e3]=(0|C(s[102036],C(e,-3)+256|0))/256,LA(8,0,i[50986],0,i[51290]),ye(i[t+8>>2]);break a}if(!i[50759])break a;A=i[t+12>>2],t=i[t+8>>2],i[55911]=0,i[55915]=e?2097152/(0|e)|0:0,i[55910]=t,e=(0|C(A,i[33037]))/16|0,i[50779]=e,i[50780]=(0|C(C(e,i[50985]),15))/100;break a}LA(A>>8,e,i[t+8>>2],i[t+12>>2],c)}n=0,e=i[50757]+1|0,i[50757]=(0|e)<=169?e:0}if(a[218920]=n,!((c=i[51290])>>>0<h[54046]))break}l=i[34391],t=(i[51290]-l|0)/2|0,i[34439]=t+i[34439],A=i[34436],e=i[34388]+C(A,36)|0,i[e+4>>2]=0,i[e>>2]=0,i[e+24>>2]=i[34438];r:if(2&(e=i[32538])){if(c=i[34388],2==(-2&e)&&(!(t=A?c:0)|8!=i[t>>2]||(0|(t=i[t+28>>2]))!=i[34389]&&(i[34389]=t)),n=1,(0|A)<2)break r;for(;;){t=A?c+C(n,36)|0:0;n:{a:switch(0|e){case 2:case 3:if(!t|8!=i[t>>2])break n;if((0|(t=i[t+28>>2]))==i[34389])break n;i[34389]=t;break n;case 0:break a;default:break n}(e=i[34440])?(Tn[0|e](l,0,t),A=i[34436],e=i[32538]):e=0}if(!((0|(n=n+1|0))<(0|A)))break}}else if((e=i[34440])&&0|Tn[0|e](l,t,i[34388]))break t;if(!$(1)&&!(170-((0|(e=i[50757]-i[50758]|0))<=0?e+170|0:e)|0||(e=i[34388],i[e>>2]=0,i[e+4>>2]=i[34437],i[e+24>>2]=i[34438],X(1))))break}if(A=0,2&o[130152])break A;if(!(e=i[34440]))break A;if(!(0|Tn[0|e](0,0,i[34388])))break A}X(2),A=268439295}if((0|A)<=268437502){if(!A|268436479==(0|A)|268437247!=(0|A))break e;return}}}function $(e){var A,t=0,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0;j=A=j-720|0,t=i[47198],e||(i[36443]=0,i[36442]=1,i[36444]=0,i[36440]=0,i[36441]=0,e=i[50758],i[36454]=e,i[36427]=-1,i[36424]=-1,i[36446]=0,i[36447]=0,i[36439]=-1,i[36426]=0,i[36455]=e,i[36448]=0,i[36449]=0,i[36450]=0,i[36451]=0,i[36452]=0,i[36453]=0,de(),i[36427]=-1,e=216192+(i[50758]<<4)|0,i[e>>2]=5,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,i[36426]=0,i[36438]&&(i[36438]=0,e=216192+(i[50758]<<4)|0,i[e>>2]=14,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0));e:{A:if(!((0|(e=i[36442]))>997|i[36423]<=(0|e)))for(b=t>>>1&1,I=A+48|4,w=A+348|0,k=A+652|0,x=i[32322],h=i[32320],B=A+60|0,v=A+648|0,y=A+56|0,E=A+620|0,m=A- -64|0;;){if(r=145840+(e<<5)|0,!(e=i[50756])|!i[e>>2]||(i[A+12>>2]=0,nA(e=A+16|0,i[r+8>>2],r,0,A+12|0),t=_r(e),n=o[r+17|0],e=216192+(i[50758]<<4)|0,i[e>>2]=16,i[e+8>>2]=n,i[e+4>>2]=t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),e=1,(0|(n=(0|(t=i[50757]-i[50758]|0))<=0?t+170|0:t))<=(0|((t=o[r+17|0])?2==(0|t)?25:15:10)))break e;if(d=i[36442],2&o[0|r])for(f=2047&p[r+4>>1];;){if(n=i[36443],g=127&(t=i[198304+(n<<2)>>2])){e=t>>>8|0,i[36443]=n+1;t:{r:{n:switch((31&t)-2|0){case 0:je(96&t|8,e),Ze(2);break t;case 5:if((0|e)>=i[34064])break t;if(!i[4+(g=136272+(n=e<<4)|0)>>2])break t;GA(10,0),e=216192+(i[50758]<<4)|0,i[e>>2]=6,g=i[g+4>>2],i[e+8>>2]=i[8+(n+136272|0)>>2]+44,i[e+12>>2]=5376,i[e+4>>2]=g;break r;case 8:if((0|((0|(n=i[50757]-i[50758]|0))<=0?n+170:n))<6)break t;g=i[47353],n=216192+(i[50758]<<4)|0,i[n>>2]=778,i[n+8>>2]=e,i[n+4>>2]=g+f&16777215;break r;case 9:if((0|((0|(n=i[50757]-i[50758]|0))<=0?n+170:n))<6)break t;g=i[33284],n=216192+(i[50758]<<4)|0,i[n>>2]=1034,i[n+8>>2]=e,i[n+4>>2]=g+1&16777215;break r}GA(10,0),n=216192+(i[50758]<<4)|0,i[n>>2]=12,i[n+8>>2]=e,i[n+4>>2]=g}e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0}if(!(128&t))continue}break}(e=o[r+20|0])&&(1&a[i[47192]+48|0]&2==o[r+17|0]|1&a[i[r+8>>2]+7|0]||(i[36426]=0),t=i[47353]+(2047&p[r+4>>1])|0,i[36445]=t,4&e&&((0|((0|(e=i[50757]-i[50758]|0))<=0?e+170:e))<6||(n=i[47568],e=216192+(i[50758]<<4)|0,i[e>>2]=522,i[e+8>>2]=n,i[e+4>>2]=16777215&t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)),1&a[r+20|0]&&(t=p[r+4>>1],n=i[36444],i[36444]=n+1,(0|((0|(e=i[50757]-i[50758]|0))<=0?e+170:e))<6||(f=i[36445],g=i[47355],e=216192+(i[50758]<<4)|0,i[e>>2]=266,i[e+8>>2]=n+g,i[e+4>>2]=16777215&f|(63488&t)<<13,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0))),(0|(e=i[36441]))>0&&(t=216192+(i[36425]<<4)|0,i[t+4>>2]||(i[t+4>>2]=e),i[36441]=0),e=d+1<<5,t=d-1<<5,!(n=o[r+18|0])|2&o[i[r+8>>2]+7|0]||GA(n,1),g=e+145840|0,l=t+145840|0,f=1;t:{r:{if(i[47198]&&(u=i[r+8>>2],15!=o[u+10|0])){n:if(2==o[r+17|0])switch(o[l+17|0]-3|0){case 0:case 5:break r;default:break n}f=0,nA(A+704|0,u,r,b,0),(0|((0|(e=i[50757]-i[50758]|0))<=0?e+170:e))<6||(t=i[36445],e=216192+(i[50758]<<4)|0,i[e>>2]=1802,i[e+4>>2]=16777215&t,t=i[A+708>>2],i[e+8>>2]=i[A+704>>2],i[e+12>>2]=t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)}n:switch(o[r+17|0]){case 0:GA(i[r+12>>2],0),a[r+23|0]=o[i[r+8>>2]+14|0];break t;case 4:t=i[r+8>>2],2==(0|(e=o[g+17|0]))|!o[g+20|0]&3==(0|e)||(s[r>>1]=8192|p[r>>1]),2&o[t+7|0]&&(i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[m>>2]=0,i[m+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,le(0,1,r,A+552|0,145784),i[A+56>>2]=i[A+620>>2],i[m>>2]=i[A+640>>2],i[36424]<0&&(n=o[g+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=n,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,f=o[g+22|0],n=o[g+21|0],g=i[129280+(o[r+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(u=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=u),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,f|=n<<16,n=255==(0|n),i[e+12>>2]=n?3604556:f,i[e+8>>2]=n?h:g,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),Ae(t,0,A+48|0,r,0)),le(0,0,r,A+552|0,145784),i[A+552>>2]=4|i[A+552>>2],(0|(e=i[36440]))<=0||(0|(t=i[36424]))<0||(i[4+(t=216192+(t<<4)|0)>>2]||(i[t+4>>2]=e),i[36440]=0),i[36426]=0,i[36439]=-1,i[36455]=i[50758],de(),i[36427]=-1,i[36422]=0,(e=i[A+624>>2])&&(n=e,e=i[A+644>>2],Je(n,2,i[A+596>>2]<<1,i[A+552>>2],0,e?(e<<5)/100|0:32)),i[36426]=0;break t;case 6:le(0,0,r,A+552|0,145784),8&o[0|r]&&(e=i[r+12>>2],(0|(t=i[36440]))<=0||(0|(n=i[36424]))<0||(i[4+(n=216192+(n<<4)|0)>>2]||(i[n+4>>2]=t),i[36440]=0),i[36426]=0,i[36439]=-1,i[36455]=i[50758],de(),i[36427]=-1,i[36422]=0,(t=i[A+624>>2])&&(n=e,e=i[A+644>>2],Je(t,2,i[A+596>>2]<<1,i[A+552>>2],n,e?(e<<5)/100|0:32))),e=i[r+12>>2],(0|(t=i[36440]))<=0||(0|(n=i[36424]))<0||(i[4+(n=216192+(n<<4)|0)>>2]||(i[n+4>>2]=t),i[36440]=0),i[36426]=0,i[36439]=-1,i[36455]=i[50758],de(),i[36427]=-1,i[36422]=0,(t=i[A+624>>2])&&(n=e,e=i[A+644>>2],Je(t,2,i[A+596>>2]<<1,i[A+552>>2],n,e?(e<<5)/100|0:32)),i[36426]=0;break t;case 5:n=i[r+8>>2],i[I+40>>2]=0,i[(e=I)+32>>2]=0,i[e+36>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+8>>2]=0,i[e+12>>2]=0,i[e>>2]=0,i[e+4>>2]=0,i[A+48>>2]=4;a:{s:{i:{o:switch(o[g+17|0]-2|0){case 0:t=o[r+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,t=o[r+22|0],u=o[r+21|0],f=i[129280+(o[r+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(c=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=c),e=(c=!(255&~u))?h:f,f=1;break s;case 1:break o;default:break i}if(!o[g+20|0]){t=o[g+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,t=o[g+22|0],u=o[g+21|0],f=i[129280+(o[g+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(c=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=c),e=(c=!(255&~u))?h:f,f=1;break s}}if(f=0,i[36424]>=0)break a;t=o[g+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,t=o[r+22|0],u=o[r+21|0],f=i[129280+(o[r+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(c=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=c),e=(c=!(255&~u))?h:f,f=0}C=i[50758],i[36424]=C,i[36440]=0,i[(C=216192+(C<<4)|0)>>2]=9,i[C+4>>2]=0,i[C+12>>2]=c?3604556:255&t|(255&u)<<16,i[C+8>>2]=e,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0}a:if(!(2&o[n+7|0])&2!=o[l+17|0])8&o[0|r]&&GA(50,0);else{if(le(0,1,r,A+552|0,145784),i[A+56>>2]=i[A+620>>2],i[A+64>>2]=i[A+640>>2],Ae(n,0,A+48|0,r,0),!(8&o[0|r]))break a;GA(25,1),Ae(n,0,A+48|0,r,0)}a:if(f){if(i[36455]!=i[36454])break a;i[36455]=i[50758]}else s[r>>1]=8192|p[r>>1];if(le(0,0,r,A+552|0,145784),i[A+56>>2]=i[A+620>>2],i[A+64>>2]=i[A+640>>2],i[A+76>>2]=i[A+636>>2],i[A+80>>2]=i[A+656>>2],Ae(n,0,A+48|0,r,0),o[r+20|0]|o[84+(145840+(d<<5)|0)|0])break t;if(7==(0|(e=o[g+17|0]))&&(GA(20,0),e=o[g+17|0]),6!=(255&e))break t;GA(12,0);break t;case 7:a:{s:{i:{o:{l:switch((e=o[g+17|0])-2|0){case 1:break o;case 0:break l;default:break i}t=o[r+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,f=o[r+22|0],e=o[r+21|0],n=i[129280+(o[r+16|0]<<2)>>2],(0|(t=i[36424]))<0|(0|(u=i[36440]))<=0||i[4+(t=216192+(t<<4)|0)>>2]||(i[t+4>>2]=u),t=(u=!(255&~e))?h:n;break s}t=o[g+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,f=o[g+22|0],e=o[g+21|0],n=i[129280+(o[g+16|0]<<2)>>2],(0|(t=i[36424]))<0|(0|(u=i[36440]))<=0||i[4+(t=216192+(t<<4)|0)>>2]||(i[t+4>>2]=u),t=(u=!(255&~e))?h:n;break s}if(i[36424]>=0)break a;t=o[r+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,f=o[r+22|0],e=o[r+21|0],n=i[129280+(o[r+16|0]<<2)>>2],(0|(t=i[36424]))<0|(0|(u=i[36440]))<=0||i[4+(t=216192+(t<<4)|0)>>2]||(i[t+4>>2]=u),t=(u=!(255&~e))?h:n}n=i[50758],i[36424]=n,i[36440]=0,i[(n=216192+(n<<4)|0)>>2]=9,i[n+4>>2]=0,i[n+12>>2]=u?3604556:(255&e)<<16|f,i[n+8>>2]=t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,e=o[g+17|0]}a:{s:{i:switch((255&e)-2|0){case 1:if(o[g+20|0])break s;break;case 0:break i;default:break s}if(i[36455]!=i[36454])break a;i[36455]=i[50758];break a}s[r>>1]=8192|p[r>>1]}le(0,0,r,A+552|0,145784),i[A+56>>2]=0,i[A+60>>2]=0,i[m>>2]=0,i[m+4>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+88>>2]=0,i[A+56>>2]=i[A+620>>2],i[m>>2]=i[A+640>>2],i[A+80>>2]=i[A+656>>2],i[A+48>>2]=0,i[A+52>>2]=0,i[A+76>>2]=i[A+636>>2],i[A+92>>2]=i[A+596>>2]<<1,8&o[0|r]&&Ae(i[r+8>>2],0,A+48|0,r,0),Ae(i[r+8>>2],0,A+48|0,r,0);break t;case 8:if(i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[m>>2]=0,i[m+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,1&a[0|r]||(t=o[r+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,n=o[r+22|0],t=o[r+21|0],f=i[129280+(o[r+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(u=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=u),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,n|=t<<16,t=255==(0|t),i[e+12>>2]=t?3604556:n,i[e+8>>2]=t?h:f,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),8==o[l+17|0]&&(i[36426]=0),le(0,0,r,A+552|0,145784),i[A+56>>2]=i[A+620>>2],i[A+64>>2]=i[A+640>>2],i[A+92>>2]=i[A+596>>2]<<1,2==o[g+17|0]){i[36455]==i[36454]&&(i[36455]=i[50758]),Ae(i[r+8>>2],0,A+48|0,r,0);break t}if(!(!(1&a[0|r])|2!=o[l+17|0])){Ae(i[r+8>>2],0,A+48|0,r,0);break t}i[36426]=0,Ae(i[r+8>>2],0,A+48|0,r,0),i[36426]=0;break t;case 3:i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[m>>2]=0,i[m+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,n=i[i[r+8>>2]+4>>2],1&a[0|r]||(t=o[r+19|0],e=i[50758],i[36425]=e,i[36441]=0,i[12+(e=216192+(e<<4)|0)>>2]=t,i[e+8>>2]=0,i[e>>2]=8,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,f=o[r+22|0],t=o[r+21|0],u=i[129280+(o[r+16|0]<<2)>>2],(0|(e=i[36424]))<0|(0|(c=i[36440]))<=0||i[4+(e=216192+(e<<4)|0)>>2]||(i[e+4>>2]=c),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,f|=t<<16,t=255==(0|t),i[e+12>>2]=t?3604556:f,i[e+8>>2]=t?h:u,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),8==o[l+17|0]&&(i[36426]=0),2!=o[g+17|0]|i[36455]!=i[36454]||(i[36455]=i[50758]),le(0,0,r,A+552|0,145784),(0|(e=i[A+584>>2]-o[r+18|0]|0))>0&&GA(e,1),i[A+56>>2]=i[A+620>>2],i[A+64>>2]=i[A+640>>2],i[A+76>>2]=i[A+636>>2],i[A+80>>2]=i[A+656>>2],i[A+92>>2]=i[A+596>>2]<<1,Ae(i[r+8>>2],0,A+48|0,r,n<<24>>31&5);break t;case 2:break n;default:break t}u=i[r+8>>2]}d=o[r+3|0],i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[m>>2]=0,i[m+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,le(0,0,r,A+552|0,145784),e=i[A+628>>2],i[A+56>>2]=e,i[A+92>>2]=i[A+596>>2]<<1;r:{if(!e||(c=0,n=v,t=B,2&o[A+552|0])){if(o[l+17|0]?(c=0,le(0,0,l,A+400|0,0),e=i[A+476>>2],i[A+56>>2]=e,!e|!(2&o[A+400|0])||(i[A+72>>2]=i[A+496>>2],c=1),t=i[A+512>>2],i[A+84>>2]=i[A+508>>2],i[A+88>>2]=t):c=0,e)break r;i[A+48>>2]=1,i[A+52>>2]=1,n=E,t=y}i[t>>2]=i[n>>2]}i[A+64>>2]=i[A+640>>2],t=o[r+16|0],e=0,(n=o[r+7|0])?(Jt(n,A+96|0),t=Jr(i[A+220>>2]),(0|(n=i[A+224>>2]))<=0||(e=Jr(n))):t=i[129280+(t<<2)>>2],i[36455]==i[36454]&&(i[36455]=i[50758]),n=(n=15&d)>>>0<2?1:n>>>0>6?3:2;r:{n:switch(o[l+17|0]-3|0){case 2:case 4:c=o[r+19|0],l=i[50758],i[36425]=l,i[36441]=0,i[12+(l=216192+(l<<4)|0)>>2]=c,i[l+8>>2]=e,i[l>>2]=8,i[l+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,c=o[r+22|0],l=o[r+21|0],(0|(e=i[36440]))<=0||(0|(d=i[36424]))<0||i[4+(d=216192+(d<<4)|0)>>2]||(i[d+4>>2]=e),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,c|=l<<16,l=255==(0|l),i[e+12>>2]=l?3604556:c,i[e+8>>2]=l?h:t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,Ae(u,1,A+48|0,r,n);break r;case 0:case 5:c=o[r+19|0],l=i[50758],i[36425]=l,i[36441]=0,i[12+(l=216192+(l<<4)|0)>>2]=c,i[l+8>>2]=e,i[l>>2]=8,i[l+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,Ae(u,1,A+48|0,r,n),c=o[r+22|0],l=o[r+21|0],(0|(e=i[36440]))<=0||(0|(d=i[36424]))<0||i[4+(d=216192+(d<<4)|0)>>2]||(i[d+4>>2]=e),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,c|=l<<16,l=255==(0|l),i[e+12>>2]=l?3604556:c,i[e+8>>2]=l?h:t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0;break r}c?(c=o[r+22|0],(0|(l=i[36440]))<=0||(0|(d=i[36424]))<0||i[4+(d=216192+(d<<4)|0)>>2]||(i[d+4>>2]=l),l=i[50758],i[36424]=l,i[36440]=0,i[(l=216192+(l<<4)|0)>>2]=9,i[l+4>>2]=0,i[l+12>>2]=(c|c<<16)-983040,i[l+8>>2]=x,l=i[50758]+1|0,i[50758]=(0|l)<=169?l:0,c=o[r+19|0],l=i[50758],i[36425]=l,i[36441]=0,i[(l=216192+(l<<4)|0)>>2]=8,i[l+4>>2]=0,i[l+12>>2]=c-1,i[l+8>>2]=e,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,Ae(u,1,A+48|0,r,n),l=o[r+21|0],c=o[r+22|0],(0|(e=i[36440]))<=0||(0|(d=i[36424]))<0||i[4+(d=216192+(d<<4)|0)>>2]||(i[d+4>>2]=e),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,c|=l<<16,l=255==(0|l),i[e+12>>2]=l?3604556:c,i[e+8>>2]=l?h:t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0):(1&a[0|r]||(c=o[r+19|0],l=i[50758],i[36425]=l,i[36441]=0,i[12+(l=216192+(l<<4)|0)>>2]=c,i[l+8>>2]=e,i[l>>2]=8,i[l+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,c=o[r+22|0],l=o[r+21|0],(0|(e=i[36440]))<=0||(0|(d=i[36424]))<0||i[4+(d=216192+(d<<4)|0)>>2]||(i[d+4>>2]=e),e=i[50758],i[36424]=e,i[36440]=0,i[(e=216192+(e<<4)|0)>>2]=9,i[e+4>>2]=0,c|=l<<16,l=255==(0|l),i[e+12>>2]=l?3604556:c,i[e+8>>2]=l?h:t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),Ae(u,1,A+48|0,r,n))}!i[47198]|1^f||(nA(A+704|0,i[r+8>>2],r,b,0),(0|((0|(e=i[50757]-i[50758]|0))<=0?e+170:e))<6||(t=i[36445],e=216192+(i[50758]<<4)|0,i[e>>2]=1802,i[e+4>>2]=16777215&t,t=i[A+708>>2],i[e+8>>2]=i[A+704>>2],i[e+12>>2]=t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)),i[A+56>>2]=i[A+620>>2],i[A+84>>2]=0,i[A+88>>2]=0,i[A+64>>2]=i[A+640>>2],t=i[A+632>>2],i[A+68>>2]=t,e=k;r:{if(!t){if(!o[g+17|0])break r;if(i[A+72>>2]=0,le(0,0,g,A+248|0,0),i[A+52>>2]=1,e=i[A+368>>2],i[A+84>>2]=i[A+364>>2],i[A+88>>2]=e,t=i[A+328>>2],i[A+68>>2]=t,e=w,!t)break r}i[A+72>>2]=i[e>>2]}Ae(u,2,A+48|0,r,n)}if(e=i[36442]+1|0,i[36442]=e,(0|e)>997)break A;if(!(i[36423]>(0|e)))break}(0|(e=i[36440]))<=0||(0|(t=i[36424]))<0||(i[4+(t=216192+(t<<4)|0)>>2]||(i[t+4>>2]=e),i[36440]=0),i[36426]=0,i[36439]=-1,i[36455]=i[50758],de(),i[36427]=-1,e=0,i[36423]<=0||(t=i[47568],n=i[33284],(0|((0|(e=i[50757]-i[50758]|0))<=0?e+170:e))>=6&&(e=216192+(i[50758]<<4)|0,i[e>>2]=1290,i[e+8>>2]=t,i[e+4>>2]=16777215&n,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),i[36423]=0,e=0)}return j=A+720|0,e}function ee(e,A,t,r){var n,s=0,c=0,g=0,u=0,d=0,p=0,m=0,I=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0;j=n=j-48|0;e:{if(t>>>0<=2){for(z=i[124732+(t<<=2)>>2],F=i[t+124720>>2];(0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t]),32==(0|t)|t-9>>>0<5;);k=1;A:{t:switch(t-43|0){case 0:case 2:break t;default:break A}k=45==(0|t)?-1:1,(0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t])}A:{t:{for(;;){if(a[g+84056|0]==(32|t)){if(g>>>0>6||((0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t])),8!=(0|(g=g+1|0)))continue;break t}break}if(3!=(0|g)){if(8==(0|g))break t;if(!r|g>>>0<4)break A;if(8==(0|g))break t}if((0|(t=i[A+116>>2]))>0|(0|t)>=0&&(i[A+4>>2]=i[A+4>>2]-1),!(!r|g>>>0<4))for(t=(0|t)<0;t||(i[A+4>>2]=i[A+4>>2]-1),(g=g-1|0)>>>0>3;);}j=m=j-16|0,f(b(b(0|k)*b(1/0))),(A=2147483647&(u=l(2)))-8388608>>>0<=2130706431?(t=A,t<<=25,r=1065353216+(A=A>>>7|0)|0):(t=u<<25,r=u>>>7|2147418112,A>>>0>=2139095040||(t=0,r=0,A&&(jA(m,t=A,0,0,0,(A=w(A))+81|0),p=i[m>>2],d=i[m+4>>2],t=i[m+8>>2],r=65536^i[m+12>>2]|16265-A<<16))),i[n>>2]=p,i[n+4>>2]=d,i[n+8>>2]=t,i[n+12>>2]=-2147483648&u|r,j=m+16|0,p=i[n+8>>2],d=i[n+12>>2],u=i[n>>2],I=i[n+4>>2];break e}A:{t:{r:if(!g){for(g=0;;){if(a[g+84473|0]!=(32|t))break r;if(g>>>0>1||((0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t])),3==(0|(g=g+1|0)))break}break t}r:switch(0|g){case 0:if(48==(0|t)){if((0|(g=i[A+4>>2]))==i[A+104>>2]?g=hA(A):(i[A+4>>2]=g+1,g=o[0|g]),88==(-33&g)){j=c=j-432|0,(0|(t=i[A+4>>2]))==i[A+104>>2]?g=hA(A):(i[A+4>>2]=t+1,g=o[0|t]);n:{a:{for(;;){if(48!=(0|g)){if(46!=(0|g))break n;if((0|(t=i[A+4>>2]))!=i[A+104>>2]){i[A+4>>2]=t+1,g=o[0|t];break a}break}(0|(t=i[A+4>>2]))!=i[A+104>>2]?(P=1,i[A+4>>2]=t+1,g=o[0|t]):(P=1,g=hA(A))}g=hA(A)}if(v=1,48==(0|g)){for(;y=(t=y)-1|0,E=E-!t|0,(0|(t=i[A+4>>2]))==i[A+104>>2]?g=hA(A):(i[A+4>>2]=t+1,g=o[0|t]),48==(0|g););P=1}}for(I=1073676288;;){n:{t=32|g;a:{if(!((S=g-48|0)>>>0<10)){if(46!=(0|g)&t-97>>>0>=6)break n;if(46==(0|g)){if(v)break n;v=1,y=p,E=d;break a}}t=(0|g)>57?t-87|0:S,(0|d)<=0&p>>>0<=7|(0|d)<0?s=t+(s<<4)|0:!d&p>>>0<=28?(Qt(c+48|0,t),me(c+32|0,Q,T,u,I,0,0,0,1073414144),Q=i[c+32>>2],T=i[c+36>>2],u=i[c+40>>2],I=i[c+44>>2],me(c+16|0,i[c+48>>2],i[c+52>>2],i[c+56>>2],i[c+60>>2],Q,T,u,I),ve(c,i[c+16>>2],i[c+20>>2],i[c+24>>2],i[c+28>>2],m,B,G,D),G=i[c+8>>2],D=i[c+12>>2],m=i[c>>2],B=i[c+4>>2]):x|!t||(me(c+80|0,Q,T,u,I,0,0,0,1073610752),ve(c- -64|0,i[c+80>>2],i[c+84>>2],i[c+88>>2],i[c+92>>2],m,B,G,D),G=i[c+72>>2],D=i[c+76>>2],x=1,m=i[c+64>>2],B=i[c+68>>2]),d=(p=p+1|0)?d:d+1|0,P=1}(0|(t=i[A+4>>2]))!=i[A+104>>2]?(i[A+4>>2]=t+1,g=o[0|t]):g=hA(A);continue}break}n:if(P){if((0|d)<=0&p>>>0<=7|(0|d)<0)for(u=p,I=d;s<<=4,8!=(0|(u=u+1|0))|(I=u?I:I+1|0););a:{s:{i:{if(80==(-33&g)){if(u=Ke(A,r),I=t=Z,u|-2147483648!=(0|t))break a;if(r){if((0|(t=i[A+116>>2]))>0|(0|t)>=0)break i;break s}m=0,B=0,Vt(A,0,0),t=0,A=0;break n}if(u=0,I=0,i[A+116>>2]<0)break a}i[A+4>>2]=i[A+4>>2]-1}u=0,I=0}if(s)if(t=u+((A=v?y:p)<<2)|0,A=(d=(v?E:d)<<2|A>>>30)+I|0,(p=t-32|0)>>>0>0-z>>>0&(0|(A=d=(t>>>0<u>>>0?A+1|0:A)-(t>>>0<32)|0))>=0|(0|A)>0)i[56798]=68,Qt(c+160|0,k),me(c+144|0,i[c+160>>2],i[c+164>>2],i[c+168>>2],i[c+172>>2],-1,-1,-1,2147418111),me(c+128|0,i[c+144>>2],i[c+148>>2],i[c+152>>2],i[c+156>>2],-1,-1,-1,2147418111),m=i[c+128>>2],B=i[c+132>>2],t=i[c+140>>2],A=i[c+136>>2];else if((0|d)>=(0|(t=(A=z-226|0)>>31))&A>>>0<=p>>>0|(0|t)<(0|d)){if((0|s)>=0)for(;ve(c+416|0,m,B,G,D,0,0,0,-1073807360),ve(c+400|0,m,B,G,D,(A=t=(0|(A=$A(m,B,G,D,1073610752)))>=0)?i[c+416>>2]:m,A?i[c+420>>2]:B,A?i[c+424>>2]:G,A?i[c+428>>2]:D),p=(A=p)-1|0,d=d-!A|0,G=i[c+408>>2],D=i[c+412>>2],m=i[c+400>>2],B=i[c+404>>2],(0|(s=t|s<<1))>=0;);A=d-((z>>31)+(p>>>0<z>>>0)|0)|0,(0|(t=(t=32+(p-z|0)|0)>>>0<F>>>0&(0|(A=t>>>0<32?A+1|0:A))<=0|(0|A)<0?(0|t)>0?t:0:F))>=113?(Qt(c+384|0,k),y=i[c+392>>2],E=i[c+396>>2],Q=i[c+384>>2],T=i[c+388>>2],u=0,A=0):(PA(c+352|0,mt(1,144-t|0)),Qt(c+336|0,k),Q=i[c+336>>2],T=i[c+340>>2],y=i[c+344>>2],E=i[c+348>>2],Lr(c+368|0,i[c+352>>2],i[c+356>>2],i[c+360>>2],i[c+364>>2],Q,T,y,E),M=i[c+376>>2],N=i[c+380>>2],u=i[c+372>>2],A=i[c+368>>2]),Lt(c+320|0,(r=!(1&s)&!!(0|DA(m,B,G,D,0,0,0,0))&(0|t)<32)+s|0),me(c+304|0,Q,T,y,E,i[c+320>>2],i[c+324>>2],i[c+328>>2],i[c+332>>2]),t=A,ve(c+272|0,i[c+304>>2],i[c+308>>2],i[c+312>>2],i[c+316>>2],A,u,M,N),me(c+288|0,Q,T,y,E,(A=r)?0:m,A?0:B,A?0:G,A?0:D),ve(c+256|0,i[c+288>>2],i[c+292>>2],i[c+296>>2],i[c+300>>2],i[c+272>>2],i[c+276>>2],i[c+280>>2],i[c+284>>2]),pr(c+240|0,i[c+256>>2],i[c+260>>2],i[c+264>>2],i[c+268>>2],t,u,M,N),DA(A=i[c+240>>2],r=i[c+244>>2],t=i[c+248>>2],u=i[c+252>>2],0,0,0,0)||(i[56798]=68),bA(c+224|0,A,r,t,u,p),m=i[c+224>>2],B=i[c+228>>2],t=i[c+236>>2],A=i[c+232>>2]}else i[56798]=68,Qt(c+208|0,k),me(c+192|0,i[c+208>>2],i[c+212>>2],i[c+216>>2],i[c+220>>2],0,0,0,65536),me(c+176|0,i[c+192>>2],i[c+196>>2],i[c+200>>2],i[c+204>>2],0,0,0,65536),m=i[c+176>>2],B=i[c+180>>2],t=i[c+188>>2],A=i[c+184>>2];else PA(c+112|0,0*+(0|k)),m=i[c+112>>2],B=i[c+116>>2],t=i[c+124>>2],A=i[c+120>>2]}else{a:{s:{if((0|(t=i[A+116>>2]))>0|(0|t)>=0){if(t=i[A+4>>2],i[A+4>>2]=t-1,!r)break s;if(i[A+4>>2]=t-2,!v)break a;i[A+4>>2]=t-3;break a}if(r)break a}Vt(A,0,0)}PA(c+96|0,0*+(0|k)),m=i[c+96>>2],B=i[c+100>>2],t=i[c+108>>2],A=i[c+104>>2]}i[n+16>>2]=m,i[n+20>>2]=B,i[n+24>>2]=A,i[n+28>>2]=t,j=c+432|0,p=i[n+24>>2],d=i[n+28>>2],u=i[n+16>>2],I=i[n+20>>2];break e}i[A+116>>2]<0||(i[A+4>>2]=i[A+4>>2]-1)}g=A,M=k,c=r,A=0,k=0,j=s=j-8976|0,N=(S=0-z|0)-F|0;n:{a:{for(;;){if(48!=(0|t)){if(46!=(0|t))break n;if((0|(t=i[g+4>>2]))!=i[g+104>>2]){i[g+4>>2]=t+1,t=o[0|t];break a}break}(0|(A=i[g+4>>2]))!=i[g+104>>2]?(i[g+4>>2]=A+1,t=o[0|A]):t=hA(g),A=1}t=hA(g)}if(x=1,48==(0|t)){for(;p=(A=p)-1|0,d=d-!A|0,(0|(A=i[g+4>>2]))==i[g+104>>2]?t=hA(g):(i[g+4>>2]=A+1,t=o[0|A]),48==(0|t););A=1}}i[s+784>>2]=0;n:{a:{s:{i:{o:{if((r=46==(0|t))|(m=t-48|0)>>>0<=9)for(;;){l:{if(1&r){if(!x){p=u,d=I,x=1;break l}r=!A;break o}I=(u=u+1|0)?I:I+1|0,(0|k)<=2044?(P=48==(0|t)?P:u,A=(s+784|0)+(k<<2)|0,v&&(m=(C(i[A>>2],10)+t|0)-48|0),i[A>>2]=m,A=1,v=(t=9==(0|(r=v+1|0)))?0:r,k=t+k|0):48!=(0|t)&&(i[s+8960>>2]=1|i[s+8960>>2],P=18396)}if((0|(t=i[g+4>>2]))==i[g+104>>2]?t=hA(g):(i[g+4>>2]=t+1,t=o[0|t]),!((r=46==(0|t))|(m=t-48|0)>>>0<10))break}if(p=x?p:u,d=x?d:I,!(!A|69!=(-33&t))){if(m=Ke(g,c),B=A=Z,!(m|-2147483648!=(0|A))){if(!c)break s;m=0,B=0,i[g+116>>2]<0||(i[g+4>>2]=i[g+4>>2]-1)}d=d+B|0,d=(p=p+m|0)>>>0<m>>>0?d+1|0:d;break a}if(r=!A,(0|t)<0)break i}i[g+116>>2]<0||(i[g+4>>2]=i[g+4>>2]-1)}if(!r)break a;i[56798]=28}u=0,I=0,Vt(g,0,0),t=0,A=0;break n}if(A=i[s+784>>2])if(u>>>0>9&(0|I)>=0|(0|I)>0|(0|u)!=(0|p)|(0|d)!=(0|I)|(A>>>F|0?(0|F)<=30:0))if(p>>>0>S>>>1>>>0&(0|d)>=0|(0|d)>0)i[56798]=68,Qt(s+96|0,M),me(s+80|0,i[s+96>>2],i[s+100>>2],i[s+104>>2],i[s+108>>2],-1,-1,-1,2147418111),me(s- -64|0,i[s+80>>2],i[s+84>>2],i[s+88>>2],i[s+92>>2],-1,-1,-1,2147418111),u=i[s+64>>2],I=i[s+68>>2],t=i[s+76>>2],A=i[s+72>>2];else if((t=p>>>0<(A=z-226|0)>>>0)&(0|d)<=(0|(A>>=31))|(0|A)>(0|d))i[56798]=68,Qt(s+144|0,M),me(s+128|0,i[s+144>>2],i[s+148>>2],i[s+152>>2],i[s+156>>2],0,0,0,65536),me(s+112|0,i[s+128>>2],i[s+132>>2],i[s+136>>2],i[s+140>>2],0,0,0,65536),u=i[s+112>>2],I=i[s+116>>2],t=i[s+124>>2],A=i[s+120>>2];else{if(v){if((0|v)<=8){for(g=i[(A=(s+784|0)+(k<<2)|0)>>2];g=C(g,10),9!=(0|(v=v+1|0)););i[A>>2]=g}k=k+1|0}if(x=p,!((0|P)>(0|p)|(0|P)>=9|(0|p)>17)){if(9==(0|x)){Qt(s+192|0,M),Lt(s+176|0,i[s+784>>2]),me(s+160|0,i[s+192>>2],i[s+196>>2],i[s+200>>2],i[s+204>>2],i[s+176>>2],i[s+180>>2],i[s+184>>2],i[s+188>>2]),u=i[s+160>>2],I=i[s+164>>2],t=i[s+172>>2],A=i[s+168>>2];break n}if((0|x)<=8){Qt(s+272|0,M),Lt(s+256|0,i[s+784>>2]),me(s+240|0,i[s+272>>2],i[s+276>>2],i[s+280>>2],i[s+284>>2],i[s+256>>2],i[s+260>>2],i[s+264>>2],i[s+268>>2]),Qt(s+224|0,i[124720+(0-x<<2)>>2]),oe(s+208|0,i[s+240>>2],i[s+244>>2],i[s+248>>2],i[s+252>>2],i[s+224>>2],i[s+228>>2],i[s+232>>2],i[s+236>>2]),u=i[s+208>>2],I=i[s+212>>2],t=i[s+220>>2],A=i[s+216>>2];break n}if(A=27+(C(x,-3)+F|0)|0,!((t=i[s+784>>2])>>>A|0&&(0|A)<=30)){Qt(s+352|0,M),Lt(s+336|0,t),me(s+320|0,i[s+352>>2],i[s+356>>2],i[s+360>>2],i[s+364>>2],i[s+336>>2],i[s+340>>2],i[s+344>>2],i[s+348>>2]),Qt(s+304|0,i[124648+(x<<2)>>2]),me(s+288|0,i[s+320>>2],i[s+324>>2],i[s+328>>2],i[s+332>>2],i[s+304>>2],i[s+308>>2],i[s+312>>2],i[s+316>>2]),u=i[s+288>>2],I=i[s+292>>2],t=i[s+300>>2],A=i[s+296>>2];break n}}for(;!i[(s+784|0)+((k=(t=k)-1|0)<<2)>>2];);if(v=0,A=(0|x)%9|0){if(r=0,A=(0|x)<0?A+9|0:A,t){for(d=1e9/(0|(p=i[124720+(0-A<<2)>>2]))|0,m=0,g=0;u=(u=m)+(k=((I=i[(m=(s+784|0)+(g<<2)|0)>>2])>>>0)/(p>>>0)|0)|0,i[m>>2]=u,r=(u=!u&(0|r)==(0|g))?r+1&2047:r,x=u?x-9|0:x,m=C(d,I-C(p,k)|0),(0|(g=g+1|0))!=(0|t););m&&(i[(s+784|0)+(t<<2)>>2]=m,t=t+1|0)}else t=0;x=9+(x-A|0)|0}else r=0;for(;;){g=(s+784|0)+(r<<2)|0;a:{for(;;){if((36!=(0|x)|h[g>>2]>=10384593)&(0|x)>=36)break a;for(k=t+2047|0,m=0,A=t;t=A,p=m,m=(A=i[(k=(s+784|0)+((u=2047&k)<<2)|0)>>2])<<29,A=I=A>>>3|0,!(d=(p=p+m|0)>>>0<m>>>0?A+1|0:A)&p>>>0<1000000001?m=0:p=(A=p)-rr(m=Bn(A,d,1e9),Z,1e9,0)|0,i[k>>2]=p,A=(0|u)!=(t-1&2047)||(0|r)==(0|u)||p?t:u,k=u-1|0,(0|r)!=(0|u););if(v=v-29|0,m)break}(0|(r=r-1&2047))==(0|A)&&(g=t=(p=s+784|0)+((A+2046&2047)<<2)|0,d=i[t>>2],t=A-1&2047,i[g>>2]=d|i[p+(t<<2)>>2]),x=x+9|0,i[(s+784|0)+(r<<2)>>2]=m;continue}break}a:{s:for(;;){for(p=t+1&2047,m=(s+784|0)+((t-1&2047)<<2)|0;;){u=(0|x)>45?9:1;i:{for(;;){A=r,g=0;o:{for(;;){if((0|(r=A+g&2047))!=(0|t)&&!((r=i[(s+784|0)+(r<<2)>>2])>>>0<(d=i[124672+(g<<2)>>2])>>>0)){if(r>>>0>d>>>0)break o;if(4!=(0|(g=g+1|0)))continue}break}if(36==(0|x)){for(p=0,d=0,g=0,u=0,I=0;(0|(r=A+g&2047))==(0|t)&&(i[780+(s+((t=t+1&2047)<<2)|0)>>2]=0),Lt(s+768|0,i[(s+784|0)+(r<<2)>>2]),me(s+752|0,p,d,u,I,0,0,1342177280,1075633366),ve(s+736|0,i[s+752>>2],i[s+756>>2],i[s+760>>2],i[s+764>>2],i[s+768>>2],i[s+772>>2],i[s+776>>2],i[s+780>>2]),u=i[s+744>>2],I=i[s+748>>2],p=i[s+736>>2],d=i[s+740>>2],4!=(0|(g=g+1|0)););if(Qt(s+720|0,M),me(s+704|0,p,d,u,I,i[s+720>>2],i[s+724>>2],i[s+728>>2],i[s+732>>2]),u=i[s+712>>2],I=i[s+716>>2],p=0,d=0,m=i[s+704>>2],B=i[s+708>>2],(0|(r=(k=(0|(g=(c=v+113|0)-z|0))<(0|F))?(0|g)>0?g:0:F))<=112)break i;break a}}if(v=u+v|0,r=t,(0|A)!=(0|t))break}for(I=1e9>>>u|0,k=~(-1<<u),g=0,r=A;d=(d=g)+((c=i[(g=(s+784|0)+(A<<2)|0)>>2])>>>u|0)|0,i[g>>2]=d,r=(d=!d&(0|A)==(0|r))?r+1&2047:r,x=d?x-9|0:x,g=C(I,c&k),(0|t)!=(0|(A=A+1&2047)););if(!g)continue;if((0|r)!=(0|p)){i[(s+784|0)+(t<<2)>>2]=g,t=p;continue s}i[m>>2]=1|i[m>>2];continue}break}break}PA(s+656|0,mt(1,225-r|0)),Lr(s+688|0,i[s+656>>2],i[s+660>>2],i[s+664>>2],i[s+668>>2],m,B,u,I),Q=i[s+696>>2],T=i[s+700>>2],G=i[s+688>>2],D=i[s+692>>2],PA(s+640|0,mt(1,113-r|0)),ze(s+672|0,m,B,u,I,i[s+640>>2],i[s+644>>2],i[s+648>>2],i[s+652>>2]),pr(s+624|0,m,B,u,I,p=i[s+672>>2],d=i[s+676>>2],y=i[s+680>>2],E=i[s+684>>2]),ve(s+608|0,G,D,Q,T,i[s+624>>2],i[s+628>>2],i[s+632>>2],i[s+636>>2]),u=i[s+616>>2],I=i[s+620>>2],m=i[s+608>>2],B=i[s+612>>2]}if((0|(x=A+4&2047))!=(0|t)){a:if((x=i[(s+784|0)+(x<<2)>>2])>>>0<=499999999){if(!x&(A+5&2047)==(0|t))break a;PA(s+496|0,.25*+(0|M)),ve(s+480|0,p,d,y,E,i[s+496>>2],i[s+500>>2],i[s+504>>2],i[s+508>>2]),y=i[s+488>>2],E=i[s+492>>2],p=i[s+480>>2],d=i[s+484>>2]}else 5e8==(0|x)?(O=+(0|M),(A+5&2047)!=(0|t)?(PA(s+560|0,.75*O),ve(s+544|0,p,d,y,E,i[s+560>>2],i[s+564>>2],i[s+568>>2],i[s+572>>2]),y=i[s+552>>2],E=i[s+556>>2],p=i[s+544>>2],d=i[s+548>>2]):(PA(s+528|0,.5*O),ve(s+512|0,p,d,y,E,i[s+528>>2],i[s+532>>2],i[s+536>>2],i[s+540>>2]),y=i[s+520>>2],E=i[s+524>>2],p=i[s+512>>2],d=i[s+516>>2])):(PA(s+592|0,.75*+(0|M)),ve(s+576|0,p,d,y,E,i[s+592>>2],i[s+596>>2],i[s+600>>2],i[s+604>>2]),y=i[s+584>>2],E=i[s+588>>2],p=i[s+576>>2],d=i[s+580>>2]);(0|r)>111||(ze(s+464|0,p,d,y,E,0,0,0,1073676288),DA(i[s+464>>2],i[s+468>>2],i[s+472>>2],i[s+476>>2],0,0,0,0)||(ve(s+448|0,p,d,y,E,0,0,0,1073676288),y=i[s+456>>2],E=i[s+460>>2],p=i[s+448>>2],d=i[s+452>>2]))}ve(s+432|0,m,B,u,I,p,d,y,E),pr(s+416|0,i[s+432>>2],i[s+436>>2],i[s+440>>2],i[s+444>>2],G,D,Q,T),u=i[s+424>>2],I=i[s+428>>2],m=i[s+416>>2],B=i[s+420>>2],(N-2|0)>=(2147483647&c)||(i[s+408>>2]=u,i[s+412>>2]=2147483647&I,i[s+400>>2]=m,i[s+404>>2]=B,me(s+384|0,m,B,u,I,0,0,0,1073610752),u=(A=(0|(A=$A(i[s+400>>2],i[s+404>>2],i[s+408>>2],i[s+412>>2],1081081856)))>=0)?i[s+392>>2]:u,I=A?i[s+396>>2]:I,m=A?i[s+384>>2]:m,B=A?i[s+388>>2]:B,v=A+v|0,!(!!(0|DA(p,d,y,E,0,0,0,0))&(A?k&(0|r)!=(0|g):k))&(v+110|0)<=(0|N)||(i[56798]=68)),bA(s+368|0,m,B,u,I,v),u=i[s+368>>2],I=i[s+372>>2],t=i[s+380>>2],A=i[s+376>>2]}else Qt(s+48|0,M),Lt(s+32|0,A),me(s+16|0,i[s+48>>2],i[s+52>>2],i[s+56>>2],i[s+60>>2],i[s+32>>2],i[s+36>>2],i[s+40>>2],i[s+44>>2]),u=i[s+16>>2],I=i[s+20>>2],t=i[s+28>>2],A=i[s+24>>2];else PA(s,0*+(0|M)),u=i[s>>2],I=i[s+4>>2],t=i[s+12>>2],A=i[s+8>>2]}i[n+40>>2]=A,i[n+44>>2]=t,i[n+32>>2]=u,i[n+36>>2]=I,j=s+8976|0,p=i[n+40>>2],d=i[n+44>>2],u=i[n+32>>2],I=i[n+36>>2];break e;case 3:break t}(0|(t=i[A+116>>2]))>0|(0|t)>=0&&(i[A+4>>2]=i[A+4>>2]-1);break A}if((0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t]),40!=(0|t)){if(d=2147450880,i[A+116>>2]<0)break e;i[A+4>>2]=i[A+4>>2]-1;break e}for(g=1;(0|(t=i[A+4>>2]))==i[A+104>>2]?t=hA(A):(i[A+4>>2]=t+1,t=o[0|t]),t-48>>>0<10|t-65>>>0<26|95==(0|t)||!(t-97>>>0>=26);)g=g+1|0;if(d=2147450880,41==(0|t))break e;(0|(t=i[A+116>>2]))>0|(0|t)>=0&&(i[A+4>>2]=i[A+4>>2]-1);t:{if(r){if(g)break t;break e}break A}for(;g=g-1|0,(0|t)>0|(0|t)>=0&&(i[A+4>>2]=i[A+4>>2]-1),g;);break e}i[56798]=28,Vt(A,0,0)}d=0}i[e>>2]=u,i[e+4>>2]=I,i[e+8>>2]=p,i[e+12>>2]=d,j=n+48|0}function Ae(e,A,t,r,n){var l,c=0,g=0,u=0,d=0,f=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0;if(j=l=j-112|0,i[t+8>>2]){Q=i[50754]/70|0,w=(h=i[r+12>>2])||256;e:if(2!=(0|A)){if(1==(0|A)){A:if(3!=o[e+11|0])switch(o[r-15|0]-3|0){case 0:case 5:break A;default:break e}w=(0|(h=i[i[47192]+44>>2]))<(0|w)?w:h}}else{if((0|(h=i[i[47192]+80>>2]))<=0|!(8&o[0|r]|h>>>0<=o[e+14|0]|32&o[e+6|0]))break e;Q<<=1}if(i[36436]=0,B=e,T=A,f=r,j=I=j-16|0,e=i[34460]+i[t+8>>2]|0,A=(A=o[e+2|0])>>>0>=24?24:A,i[I+12>>2]=A,g=i[t+12>>2]+i[t+24>>2]|0,i[36422]=g,A){for(h=e+4|0,c=1&s[e+4>>1];e=145488+(d<<3)|0,r=h+(c?d<<6:C(d,44))|0,i[e+4>>2]=r,b=p[r>>1],s[e+2>>1]=b,s[e>>1]=o[r+16|0],u=2&b?d:u,(0|(d=d+1|0))!=(0|A););h=145488,(0|u)<=0||(1!=(0|T)?(A=A-u|0,i[I+12>>2]=A,h=145488+(u<<3)|0):(A=u+1|0,i[I+12>>2]=A,h=145488))}else A=0,h=145488;if(!(!i[t+4>>2]|i[t+20>>2]|2!=o[B+11|0])){if(c=i[t+36>>2],r=i[t+40>>2],e=0,(0|(A=i[I+12>>2]))>=2){u=c>>>12|0,b=r>>>26&7,v=r>>>18&248,k=C(x=63&r,50),E=63&(M=c>>>6|0),d=c<<1&126,G=C(r>>>16&31,50)-750|0,D=C(r>>>11&31,50)-750|0,y=C(r>>>6&31,50)-750|0;e:{A:if(1!=(0|T)){if(!(u|x))break e;if(8&u?(A=i[4+(h+((g=A-1|0)<<3)|0)>>2],s[A>>1]<0?e=A:(e=(0|(e=i[44469]+1|0))<=169?e:0,i[44469]=e,g=p[A+20>>1]|p[A+22>>1]<<16,e=177888+(e<<6)|0,c=p[A+16>>1]|p[A+18>>1]<<16,s[e+16>>1]=c,s[e+18>>1]=c>>>16,s[e+20>>1]=g,s[e+22>>1]=g>>>16,g=p[A+4>>1]|p[A+6>>1]<<16,c=p[A>>1]|p[A+2>>1]<<16,s[e>>1]=c,s[e+2>>1]=c>>>16,s[e+4>>1]=g,s[e+6>>1]=g>>>16,g=p[A+12>>1]|p[A+14>>1]<<16,c=p[A+8>>1]|p[A+10>>1]<<16,s[e+8>>1]=c,s[e+10>>1]=c>>>16,s[e+12>>1]=g,s[e+14>>1]=g>>>16,g=p[A+28>>1]|p[A+30>>1]<<16,c=p[A+24>>1]|p[A+26>>1]<<16,s[e+24>>1]=c,s[e+26>>1]=c>>>16,s[e+28>>1]=g,s[e+30>>1]=g>>>16,g=p[A+36>>1]|p[A+38>>1]<<16,c=p[A+32>>1]|p[A+34>>1]<<16,s[e+32>>1]=c,s[e+34>>1]=c>>>16,s[e+36>>1]=g,s[e+38>>1]=g>>>16,g=p[A+44>>1]|p[A+46>>1]<<16,c=p[A+40>>1]|p[A+42>>1]<<16,s[e+40>>1]=c,s[e+42>>1]=c>>>16,s[e+44>>1]=g,s[e+46>>1]=g>>>16,g=p[A+52>>1]|p[A+54>>1]<<16,c=p[A+48>>1]|p[A+50>>1]<<16,s[e+48>>1]=c,s[e+50>>1]=c>>>16,s[e+52>>1]=g,s[e+54>>1]=g>>>16,g=p[A+60>>1]|p[A+62>>1]<<16,A=p[A+56>>1]|p[A+58>>1]<<16,s[e+56>>1]=A,s[e+58>>1]=A>>>16,s[e+60>>1]=g,s[e+62>>1]=g>>>16,a[e+16|0]=0,s[e>>1]=32768|p[e>>1],g=i[I+12>>2]-1|0),i[4+(h+(g<<3)|0)>>2]=e,A=1792,(0|(g=s[e+4>>1]))<300||(A=1536,g>>>0<400||(A=g>>>0<500?1280:1024)),i[36436]=A,c=35):(i[I+12>>2]=A+1,s[(e=(g=h+(A<<3)|0)-8|0)>>1]=d,A=i[e+4>>2],e=(0|(e=i[44469]+1|0))<=169?e:0,i[44469]=e,(e=177888+(M=e<<6)|0)&&(c=p[A+4>>1]|p[A+6>>1]<<16,m=p[A>>1]|p[A+2>>1]<<16,s[e>>1]=m,s[e+2>>1]=m>>>16,s[e+4>>1]=c,s[e+6>>1]=c>>>16,c=p[A+60>>1]|p[A+62>>1]<<16,m=p[A+56>>1]|p[A+58>>1]<<16,s[e+56>>1]=m,s[e+58>>1]=m>>>16,s[e+60>>1]=c,s[e+62>>1]=c>>>16,c=p[A+52>>1]|p[A+54>>1]<<16,m=p[A+48>>1]|p[A+50>>1]<<16,s[e+48>>1]=m,s[e+50>>1]=m>>>16,s[e+52>>1]=c,s[e+54>>1]=c>>>16,c=p[A+44>>1]|p[A+46>>1]<<16,m=p[A+40>>1]|p[A+42>>1]<<16,s[e+40>>1]=m,s[e+42>>1]=m>>>16,s[e+44>>1]=c,s[e+46>>1]=c>>>16,c=p[A+36>>1]|p[A+38>>1]<<16,m=p[A+32>>1]|p[A+34>>1]<<16,s[e+32>>1]=m,s[e+34>>1]=m>>>16,s[e+36>>1]=c,s[e+38>>1]=c>>>16,c=p[A+28>>1]|p[A+30>>1]<<16,m=p[A+24>>1]|p[A+26>>1]<<16,s[e+24>>1]=m,s[e+26>>1]=m>>>16,s[e+28>>1]=c,s[e+30>>1]=c>>>16,c=p[A+20>>1]|p[A+22>>1]<<16,m=p[A+16>>1]|p[A+18>>1]<<16,s[e+16>>1]=m,s[e+18>>1]=m>>>16,s[e+20>>1]=c,s[e+22>>1]=c>>>16,c=p[A+12>>1]|p[A+14>>1]<<16,A=p[A+8>>1]|p[A+10>>1]<<16,s[e+8>>1]=A,s[e+10>>1]=A>>>16,s[e+12>>1]=c,s[e+14>>1]=c>>>16,a[M+177904|0]=0,s[e>>1]=32768|p[e>>1]),s[g>>1]=0,i[g+4>>2]=e,d>>>0>=37&&(i[36422]=(d+i[36422]|0)-36),c=E<<1,x&&fA(e,k,y,D,b,G,v,u)),i[i[32972]+132>>2]||(A=o[e+17|0])&&(A=s[102896+(((0|(A=(c<<6>>>0)/(A>>>0)|0))>=199?199:A)<<1)>>1],a[e+18|0]=(0|C(A,o[e+18|0]))/512,a[e+19|0]=(0|C(A,o[e+19|0]))/512,a[e+20|0]=(0|C(A,o[e+20|0]))/512,a[e+21|0]=(0|C(A,o[e+21|0]))/512,a[e+22|0]=(0|C(A,o[e+22|0]))/512,a[e+23|0]=(0|C(A,o[e+23|0]))/512,a[e+24|0]=(0|C(A,o[e+24|0]))/512,a[e+25|0]=(0|C(A,o[e+25|0]))/512),r-536870912>>>0<=1073741823){if(b=i[44469],(0|(g=i[I+12>>2]))>0)for(e=C(r>>>29|0,10)+102854|0,v=s[e+4>>1],x=s[e+2>>1],k=s[e>>1],G=s[e+6>>1],D=s[e+8>>1],c=0;A=i[4+(y=h+(c<<3)|0)>>2],s[A>>1]<0?e=A:(e=177888+(E=(b=(0|(e=b+1|0))<=169?e:0)<<6)|0)?(r=p[A+4>>1]|p[A+6>>1]<<16,g=p[A>>1]|p[A+2>>1]<<16,s[e>>1]=g,s[e+2>>1]=g>>>16,s[e+4>>1]=r,s[e+6>>1]=r>>>16,r=p[A+60>>1]|p[A+62>>1]<<16,g=p[A+56>>1]|p[A+58>>1]<<16,s[e+56>>1]=g,s[e+58>>1]=g>>>16,s[e+60>>1]=r,s[e+62>>1]=r>>>16,r=p[A+52>>1]|p[A+54>>1]<<16,g=p[A+48>>1]|p[A+50>>1]<<16,s[e+48>>1]=g,s[e+50>>1]=g>>>16,s[e+52>>1]=r,s[e+54>>1]=r>>>16,r=p[A+44>>1]|p[A+46>>1]<<16,g=p[A+40>>1]|p[A+42>>1]<<16,s[e+40>>1]=g,s[e+42>>1]=g>>>16,s[e+44>>1]=r,s[e+46>>1]=r>>>16,r=p[A+36>>1]|p[A+38>>1]<<16,g=p[A+32>>1]|p[A+34>>1]<<16,s[e+32>>1]=g,s[e+34>>1]=g>>>16,s[e+36>>1]=r,s[e+38>>1]=r>>>16,r=p[A+28>>1]|p[A+30>>1]<<16,g=p[A+24>>1]|p[A+26>>1]<<16,s[e+24>>1]=g,s[e+26>>1]=g>>>16,s[e+28>>1]=r,s[e+30>>1]=r>>>16,r=p[A+20>>1]|p[A+22>>1]<<16,g=p[A+16>>1]|p[A+18>>1]<<16,s[e+16>>1]=g,s[e+18>>1]=g>>>16,s[e+20>>1]=r,s[e+22>>1]=r>>>16,r=p[A+12>>1]|p[A+14>>1]<<16,A=p[A+8>>1]|p[A+10>>1]<<16,s[e+8>>1]=A,s[e+10>>1]=A>>>16,s[e+12>>1]=r,s[e+14>>1]=r>>>16,a[E+177904|0]=0,s[e>>1]=32768|p[e>>1],g=i[I+12>>2]):e=0,i[y+4>>2]=e,s[e+8>>1]=(0|C(v,s[e+8>>1]))/256,s[e+6>>1]=(0|C(x,s[e+6>>1]))/256,s[e+4>>1]=(0|C(k,s[e+4>>1]))/256,s[e+12>>1]=(0|C(D,s[e+12>>1]))/256,s[e+10>>1]=(0|C(G,s[e+10>>1]))/256,(0|g)>(0|(c=c+1|0)););i[44469]=b}if(!e)break e}else{A=i[h+4>>2],(0|(g=s[A>>1]))<0?e=A:(r=(0|(r=i[44469]+1|0))<=169?r:0,i[44469]=r,(r=177888+(g=r<<6)|0)&&(e=p[A+4>>1]|p[A+6>>1]<<16,m=p[A>>1]|p[A+2>>1]<<16,s[r>>1]=m,s[r+2>>1]=m>>>16,s[r+4>>1]=e,s[r+6>>1]=e>>>16,e=p[A+60>>1]|p[A+62>>1]<<16,m=p[A+56>>1]|p[A+58>>1]<<16,s[r+56>>1]=m,s[r+58>>1]=m>>>16,s[r+60>>1]=e,s[r+62>>1]=e>>>16,e=p[A+52>>1]|p[A+54>>1]<<16,m=p[A+48>>1]|p[A+50>>1]<<16,s[r+48>>1]=m,s[r+50>>1]=m>>>16,s[r+52>>1]=e,s[r+54>>1]=e>>>16,e=p[A+44>>1]|p[A+46>>1]<<16,m=p[A+40>>1]|p[A+42>>1]<<16,s[r+40>>1]=m,s[r+42>>1]=m>>>16,s[r+44>>1]=e,s[r+46>>1]=e>>>16,e=p[A+36>>1]|p[A+38>>1]<<16,m=p[A+32>>1]|p[A+34>>1]<<16,s[r+32>>1]=m,s[r+34>>1]=m>>>16,s[r+36>>1]=e,s[r+38>>1]=e>>>16,e=p[A+28>>1]|p[A+30>>1]<<16,m=p[A+24>>1]|p[A+26>>1]<<16,s[r+24>>1]=m,s[r+26>>1]=m>>>16,s[r+28>>1]=e,s[r+30>>1]=e>>>16,e=p[A+20>>1]|p[A+22>>1]<<16,m=p[A+16>>1]|p[A+18>>1]<<16,s[r+16>>1]=m,s[r+18>>1]=m>>>16,s[r+20>>1]=e,s[r+22>>1]=e>>>16,e=p[A+12>>1]|p[A+14>>1]<<16,A=p[A+8>>1]|p[A+10>>1]<<16,s[r+8>>1]=A,s[r+10>>1]=A>>>16,s[r+12>>1]=e,s[r+14>>1]=e>>>16,a[g+177904|0]=0,g=-32768|p[r>>1],s[r>>1]=g,e=r)),i[h+4>>2]=e,s[h>>1]=d||50,s[h+2>>1]=16384|p[h+2>>1],s[e>>1]=16384|g,g=i[h+12>>2],A=o[g+17|0],r=i[32972],i[r+132>>2]&&(a[e+39|0]=o[g+39|0]-4);t:if(x){if(2048&c){A=(C(A,31&M)>>>0)/30|0,i[r+132>>2]||(r=o[e+17|0])&&(A=s[102896+(((0|(A=(A<<6>>>0)/(r>>>0)|0))>=199?199:A)<<1)>>1],a[e+18|0]=(0|C(A,o[e+18|0]))/512,a[e+19|0]=(0|C(A,o[e+19|0]))/512,a[e+20|0]=(0|C(A,o[e+20|0]))/512,a[e+21|0]=(0|C(A,o[e+21|0]))/512,a[e+22|0]=(0|C(A,o[e+22|0]))/512,a[e+23|0]=(0|C(A,o[e+23|0]))/512,a[e+24|0]=(0|C(A,o[e+24|0]))/512,a[e+25|0]=(0|C(A,o[e+25|0]))/512),fA(e,k,y,D,b,G,v,u);break t}if(fA(e,k,y,D,b,G,v,u),i[i[32972]+132>>2])break t;if(!(A=o[e+17|0]))break t;A=s[102896+(((0|(A=(E<<7>>>0)/(A>>>0)|0))>=199?199:A)<<1)>>1],a[e+18|0]=(0|C(A,o[e+18|0]))/512,a[e+19|0]=(0|C(A,o[e+19|0]))/512,a[e+20|0]=(0|C(A,o[e+20|0]))/512,a[e+21|0]=(0|C(A,o[e+21|0]))/512,a[e+22|0]=(0|C(A,o[e+22|0]))/512,a[e+23|0]=(0|C(A,o[e+23|0]))/512,a[e+24|0]=(0|C(A,o[e+24|0]))/512,a[e+25|0]=(0|C(A,o[e+25|0]))/512}else if(r=i[r+132>>2],8&u){if(r)break t;if(!(r=o[e+17|0]))break t;A=((16320&C(A,48))>>>0)/(r>>>0)|0,A=s[102896+((A>>>0>=199?199:A)<<1)>>1],a[e+18|0]=(0|C(A,o[e+18|0]))/512,a[e+19|0]=(0|C(A,o[e+19|0]))/512,a[e+20|0]=(0|C(A,o[e+20|0]))/512,a[e+21|0]=(0|C(A,o[e+21|0]))/512,a[e+22|0]=(0|C(A,o[e+22|0]))/512,a[e+23|0]=(0|C(A,o[e+23|0]))/512,a[e+24|0]=(0|C(A,o[e+24|0]))/512,a[e+25|0]=(0|C(A,o[e+25|0]))/512}else r||(A=o[e+17|0])&&(A=s[102896+(((A=1792/(A>>>0)|0)>>>0>=199?199:A)<<1)>>1],a[e+18|0]=(0|C(A,o[e+18|0]))/512,a[e+19|0]=(0|C(A,o[e+19|0]))/512,a[e+20|0]=(0|C(A,o[e+20|0]))/512,a[e+21|0]=(0|C(A,o[e+21|0]))/512,a[e+22|0]=(0|C(A,o[e+22|0]))/512,a[e+23|0]=(0|C(A,o[e+23|0]))/512,a[e+24|0]=(0|C(A,o[e+24|0]))/512,a[e+25|0]=(0|C(A,o[e+25|0]))/512);if(!(8&u))break A;A=2816,(0|(r=s[e+4>>1]))<300||(A=2560,r>>>0<400||(A=r>>>0<500?2304:2048)),i[36436]=A}4&u&&(s[e>>1]=32|p[e>>1]),2&u&&(s[e>>1]=16|p[e>>1])}64&u&&GA(20,0),e=d&u<<27>>31}else e=0;g=e+i[36422]|0,i[36422]=g,A=i[I+12>>2]}if((0|(r=A-1|0))<=0)c=0;else{if(e=0,d=0,c=0,A-2>>>0>=3)for(v=-4&r,b=0;c=(((s[(u=d<<3)+h>>1]+c|0)+s[h+(8|u)>>1]|0)+s[h+(16|u)>>1]|0)+s[h+(24|u)>>1]|0,d=d+4|0,(0|v)!=(0|(b=b+4|0)););if(u=3&r)for(;c=s[h+(d<<3)>>1]+c|0,d=d+1|0,(0|u)!=(0|(e=e+1|0)););}if(e=A,(u=i[t+20>>2])&&(e=r,d=u+i[34460]|0,(b=o[d+2|0])&&(x=p[d+4>>1],s[h+(r<<3)>>1]=o[d+20|0],u=1,e=A,1!=(0|b)))){if(v=d+4|0,x&=1,G=1&(d=b-1|0),2!=(0|b))for(D=-2&d,b=0;y=v+(u<<6)|0,E=v+C(u,44)|0,M=o[(k=x?y:E)+16|0],i[4+(d=h+(e<<3)|0)>>2]=k,s[d>>1]=M,s[d+2>>1]=p[k>>1],y=o[16+(k=x?y- -64|0:E+44|0)|0],i[d+12>>2]=k,s[d+8>>1]=y,s[d+10>>1]=p[k>>1],u=u+2|0,e=e+2|0,(0|D)!=(0|(b=b+2|0)););G&&(u=v+(x?u<<6:C(u,44))|0,b=o[u+16|0],i[4+(d=h+(e<<3)|0)>>2]=u,s[d>>1]=b,s[d+2>>1]=p[u>>1],e=e+1|0)}e:if(!((0|c)<=0)){A:{t:switch(T-1|0){case 1:if(u=(0|(u=(i[t+44>>2]+g|0)-45|0))<=10?10:u,8&o[0|f]&&(u=u+(o[i[36128]+14|0]<<1)|0),(0|r)<=0)break e;if(f=(u<<8)/(0|c)|0,d=0,2!=(0|A))for(A=-2&r,u=0;s[(c=(g=d<<3)+h|0)>>1]=(0|C(f,s[c>>1]))/256,s[(g=h+(8|g)|0)>>1]=(0|C(f,s[g>>1]))/256,d=d+2|0,(0|A)!=(0|(u=u+2|0)););if(!(1&r))break e;s[(A=h+(d<<3)|0)>>1]=(0|C(f,s[A>>1]))/256;break e;case 0:if(1!=i[t>>2])break A;if((0|(u=i[t+44>>2]))>129)break A;s[h>>1]=(0|C(u,s[h>>1]))/130;break A}(0|(u=i[t+44>>2]))<=0||(g=(u-c|0)+g|0,i[36422]=g)}if(!(!g|(0|r)<=0)){if(f=(c+g<<8)/(0|c)|0,d=0,2!=(0|A))for(A=-2&r,u=0;s[(c=(g=d<<3)+h|0)>>1]=(0|C(f,s[c>>1]))/256,s[(g=h+(8|g)|0)>>1]=(0|C(f,s[g>>1]))/256,d=d+2|0,(0|A)!=(0|(u=u+2|0)););1&r&&(s[(A=h+(d<<3)|0)>>1]=(0|C(f,s[A>>1]))/256)}}if(i[l+108>>2]=e,j=I+16|0,h){if((0|(e=i[t+16>>2]))!=i[36438]&&(i[36438]=e,A=216192+(i[50758]<<4)|0,i[A>>2]=14,i[A+4>>2]=e,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0),d=(e=i[i[32972]+132>>2])?1:3,A=i[h+4>>2],i[t+28>>2]|!o[145748]||(a[145748]=0,d=e?2:4),(r=i[36426])&&(!((2&(e=p[r>>1]))>>>1|o[r+16|0]<2)|16&e||(g=216192+(i[36439]<<4)|0,i[g+12>>2]=A,8&e&&(e=(0|(e=i[44469]+1|0))<=169?e:0,i[44469]=e,(e=177888+(u=e<<6)|0)&&(f=p[A+4>>1]|p[A+6>>1]<<16,c=p[A>>1]|p[A+2>>1]<<16,s[e>>1]=c,s[e+2>>1]=c>>>16,s[e+4>>1]=f,s[e+6>>1]=f>>>16,f=p[A+60>>1]|p[A+62>>1]<<16,c=p[A+56>>1]|p[A+58>>1]<<16,s[e+56>>1]=c,s[e+58>>1]=c>>>16,s[e+60>>1]=f,s[e+62>>1]=f>>>16,f=p[A+52>>1]|p[A+54>>1]<<16,c=p[A+48>>1]|p[A+50>>1]<<16,s[e+48>>1]=c,s[e+50>>1]=c>>>16,s[e+52>>1]=f,s[e+54>>1]=f>>>16,f=p[A+44>>1]|p[A+46>>1]<<16,c=p[A+40>>1]|p[A+42>>1]<<16,s[e+40>>1]=c,s[e+42>>1]=c>>>16,s[e+44>>1]=f,s[e+46>>1]=f>>>16,f=p[A+36>>1]|p[A+38>>1]<<16,c=p[A+32>>1]|p[A+34>>1]<<16,s[e+32>>1]=c,s[e+34>>1]=c>>>16,s[e+36>>1]=f,s[e+38>>1]=f>>>16,f=p[A+28>>1]|p[A+30>>1]<<16,c=p[A+24>>1]|p[A+26>>1]<<16,s[e+24>>1]=c,s[e+26>>1]=c>>>16,s[e+28>>1]=f,s[e+30>>1]=f>>>16,f=p[A+20>>1]|p[A+22>>1]<<16,c=p[A+16>>1]|p[A+18>>1]<<16,s[e+16>>1]=c,s[e+18>>1]=c>>>16,s[e+20>>1]=f,s[e+22>>1]=f>>>16,f=p[A+12>>1]|p[A+14>>1]<<16,c=p[A+8>>1]|p[A+10>>1]<<16,s[e+8>>1]=c,s[e+10>>1]=c>>>16,s[e+12>>1]=f,s[e+14>>1]=f>>>16,a[u+177904|0]=0,s[e>>1]=32768|p[e>>1]),s[8+(u=u+177888|0)>>1]=p[r+8>>1],a[u+21|0]=o[r+21|0],s[u+10>>1]=p[r+10>>1],a[u+22|0]=o[r+22|0],s[u+12>>1]=p[r+12>>1],a[u+23|0]=o[r+23|0],s[u+14>>1]=p[r+14>>1],a[u+24|0]=o[r+24|0],a[u+25|0]=o[r+25|0],i[g+12>>2]=e))),2!=(0|T)|2!=o[B+11|0]||(de(),i[36427]=i[50758]),!((0|(B=i[l+108>>2]))<2)){for(e=i[36433],f=(C(256-e|0,w)+(e<<8)|0)/256|0,e=i[36432],g=(C(256-e|0,w)+(e<<8)|0)/256|0,c=i[50754],e=0,r=1;u=p[2+(I=(h+(r<<3)|0)-8|0)>>1],u=(0|C((0|C(c,s[I>>1]))/1e3|0,4&u?g:16384&u?f:w))/256|0,i[(r<<2)+l>>2]=u,e=e+u|0,(0|B)!=(0|(r=r+1|0)););if(!((0|e)<=0|(0|e)>=(0|Q)|(0|B)<2)){if(r=1,f=1&(u=B-1|0),2!=(0|B))for(g=-2&u,w=0;i[(u=(r<<2)+l|0)>>2]=(0|C(i[u>>2],Q))/(0|e),i[u+4>>2]=(0|C(i[u+4>>2],Q))/(0|e),r=r+2|0,(0|g)!=(0|(w=w+2|0)););f&&(i[(r=(r<<2)+l|0)>>2]=(0|C(i[r>>2],Q))/(0|e))}if(w=0,!((0|B)<2))for(B=T+256|0,r=1;e=i[4+(h+(r<<3)|0)>>2],!(u=i[t+28>>2])|128&o[0|A]||(i[36422]=0,Je(u,B,0,c=i[t>>2],0,f=(f=i[t+32>>2])?(f<<5)/100|0:32),a[145748]=1,i[t+28>>2]=0),(0|n)<0||(n=64&o[0|A]?6:n,(i[l+108>>2]-1|0)==(0|r)&&(n=(u=n)|(3840&(n=i[36436])?n:0))),u=i[(r<<2)+l>>2],i[36440]=u+i[36440],i[36441]=u+i[36441],u?(f=i[50758],i[36439]=f,(0|n)>=0&&(i[(f=216192+(f<<4)|0)>>2]=d,i[f+12>>2]=e,i[f+8>>2]=A,i[f+4>>2]=u+(n<<16),A=i[50758]+1|0,i[50758]=(0|A)<=169?A:0),i[36426]=e,w=u+w|0):i[36426]=0,A=e,(0|(r=r+1|0))<i[l+108>>2];);}!i[36438]|1==(0|T)||(i[36438]=0,e=216192+(i[50758]<<4)|0,i[e>>2]=14,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)}}j=l+112|0}function te(e,A,t,r){var n,s=0,l=0,c=0,g=0,u=0,d=0,f=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0;j=n=j-1856|0,i[n+164>>2]=0,t?h=i[t>>2]:kA(t=n- -64|0,0,96),i[33264]=0,i[n+1824>>2]=0,i[n+1828>>2]=0,i[n+1832>>2]=0,i[n+1836>>2]=0,a[n+1616|0]=0,a[n+992|0]=0,a[n+1200|0]=0,a[n+784|0]=0;e:if(i[e+688>>2]){for(i[n+1840>>2]=A,32==o[0|(s=A)]&&(s=A+1|0,i[n+1840>>2]=s),m=n+416|1,E=n+1844|1,G=n+1848|1,D=n+1852|1,i[n+1820>>2]=s,VA(n+168|0,s),s=i[n+1820>>2];32!=(32|o[0|s]);)s=VA(n+164|0,s)+i[n+1820>>2]|0,i[n+1820>>2]=s,w=w+1|0;_e(n+256|0,A,M=(0|(c=s-A|0))>=159?159:c),!(v=4194304&h)|1!=(0|w)?(x=(36==(0|(s=i[47202])))<<2,1==(0|w)|36!=(0|s)||(s=i[n+1840>>2]-1|0,i[n+1840>>2]=s,a[0|s]=95,x=0,l=!!(0|Ve(e,n+1840|0,n+1616|0,n+1832|0,0,t)),s=i[47202])):(l=1,VA(n+172|0,s+1|0),dt(i[n+172>>2])&&(0|aA(i[n+164>>2]))==(0|aA(i[n+172>>2]))&&(l=0),x=36==(0|(s=i[47202]))?4:l,l=0);A:{t:{r:{n:{a:if(16&s)b=15&s,x=0;else{if(k=1,l||(k=!!(0|Ve(e,n+1840|0,n+1616|0,n+1832|0,2,t))),50331648&(s=i[n+1832>>2])&&(c=i[n+1820>>2],46==o[c+1|0]&&(a[c+1|0]=32,s=i[n+1832>>2])),536870912&s){if(!r)break e;rt(r,i[n+1840>>2]);break e}if(8192&s|!(128&s)|k)r=i[33264];else if(s=i[n+1840>>2],i[n+1820>>2]=s,!((0|(r=i[33264]))<=0))for(l=0;32==o[0|s]&&(a[0|s]=45,l=l+1|0,s=i[n+1820>>2],r=i[33264]),s=s+1|0,i[n+1820>>2]=s,(0|r)>(0|l););s:if(!(r|1!=(0|w))&&(c=VA(n+576|0,f=i[n+1840>>2]),32==o[c+f|0])){l=n+1408|0,r=f;i:{o:{l:{for(;;){c:if(dt(i[n+576>>2])){g:{if(46==o[1+(g=r+c|0)|0]){b=0;u:switch(o[(s=c+2|0)+r|0]-32|0){case 0:break g;case 7:break u;default:break c}if(b=1,c=s,115==o[g+3|0])break g;break c}if(b=1,(0|d)<=0)break l}if(!((0|c)<=0)){if(I=3&c,u=0,c>>>0<4)s=0;else for(B=-4&c,s=0,g=0;a[0|l]=o[r+s|0],a[l+1|0]=o[(1|s)+r|0],a[l+2|0]=o[(2|s)+r|0],a[l+3|0]=o[(3|s)+r|0],s=s+4|0,l=l+4|0,(0|B)!=(0|(g=g+4|0)););if(I)for(;a[0|l]=o[r+s|0],s=s+1|0,l=l+1|0,(0|I)!=(0|(u=u+1|0)););}if(d=d+1|0,b)r=r+c|0;else if(c=VA(n+576|0,r=3+(r+c|0)|0),32==o[r+c|0])continue}break}if(!((0|d)<2)){(c=(c=l-(s=n+1408|0)|0)+(s=_e(f,s,c))|0)>>>0<r>>>0&&kA(c,32,(n+1408|0)+r-(s+l)|0),i[33264]=(d<<1)-2,i[n+1836>>2]=0;break o}}if(!d)break s;if(i[n+1832>>2]=0,i[n+1836>>2]=0,!i[33264])break i}i[n+1832>>2]=128}x=1}if(21==o[n+1616|0]){rt(189088,n+1616|0),s=0;break e}if(Q=o[n+1833|0],l=1,!k){if(i[n+168>>2]-48>>>0<10){if(Et(e,84174,189088),s=0,21==o[189088])break e;if(!(!(128&o[e+109|0])|32&o[t+2|0])){a[189088]=21,a[189089]=0;break e}l=!!(0|ce(e,i[n+1840>>2],n+1616|0,n+1832|0,t,0))}else l=0;if(!(l|2==(3&h))&&(16777216&(r=i[e+104>>2])||(l=0,!(!(33554432&r)|!(1&h))))&&(16&h||(l=0,!(1&a[t+13|0])))){B=i[n+1840>>2],s=0,d=0,g=0,j=I=j-224|0,a[0|(u=n+1616|0)]=0,i[I+216>>2]=0,i[I+220>>2]=0;s:if(!(a[B-2|0]-48>>>0<10|(1&a[0|t]?0:2&o[e+107|0])||(r=o[0|(c=B+1|0)],(!(2561&p[e+106>>1])|!(1&a[t+2|0]))&32==(0|r)))){if(32!=(0|(d=o[0|B]))){for(b=32767,r=0;;){if(!(s=JA(101868,d<<24>>24,8))){d=0;break s}if(f=0,(0|(s=i[(s<<2)-305584>>2]))==(0|r)&&!((0|(f=g+1|0))<=2)){d=0;break s}i:{o:{l:{c:{if(!((0|r)<2)){if(10==(0|r)|100==(0|r))break c;if(!((0|r)>(0|s))){d=0;break s}}if(!r)break o;if((0|r)<(0|s))break l;break o}if((0|r)>=(0|s))break o}if(d=0,(0|y)%10|(0|C(r,10))<(0|s))break s;s=s-r|0,b=r;break i}if((0|s)>=(0|b)){d=0;break s}y=r+y|0}if(d=o[0|c],c=l=c+1|0,r=s,g=f,32==(0|d))break}r=o[0|l]}else l=c;if((r<<24>>24)-48>>>0<10)d=0;else if((0|(r=s+y|0))<i[e+120>>2])d=0;else if((0|r)>i[e+116>>2])d=0;else if(Et(e,85600,I+176|0),s=u,4&o[e+107|0]||(s=rt(u,s=I+176|0)+Wt(s)|0),i[I+4>>2]=i[e+140>>2],i[I>>2]=r,vt(I+16|0,85839,I),d=0,46!=o[0|l]){yA(e,B,l,t,1)&&(i[t>>2]=32768|i[t>>2]),c=0;i:if(8&o[e+107|0]){if(g=i[t>>2],26741==i[e+212>>2]){if(32768&g)break i;if(!(16384&g))break s;c=1,g=0;o:{l:switch(o[0|l]-97|0){case 0:case 4:break l;default:break o}l:{c:{g:{u:switch((b=o[l+1|0])-116|0){case 6:break o;case 1:case 2:case 3:case 4:case 5:break c;case 0:break u;default:break g}if(116!=o[l+2|0])break l;break o}if(32==(0|b))break o}if(!((0|r)%1e3|0)&&108==(0|b))break o}g=1}if(g)break i;break s}i[t>>2]=32768|g}i[(r=e+8232|0)>>2]=0,i[r+4>>2]=0,ce(e,I+16|2,s,I+216|0,t,c),d=1,4&o[e+107|0]&&yn(u,I+176|0)}}j=I+224|0,d?(i[n+1832>>2]=8192|i[n+1832>>2],l=1):l=0}}if(b=k?x:32&Q?1:x,x=0,!(!(1&h)|(0|w)<2)&&yr(i[n+168>>2])){s:{if(1&a[188785]){if(!(!(r=8192&(s=i[n+1832>>2]))|l))break s;x=r>>>2^2048;break a}if(l)break n;s=i[n+1832>>2]}if(!(128&s|w>>>0>3)&&!((0|(s=i[e+8220>>2]))<4)&&(r=1,(0|s)>=i[e+8216>>2]))break A}}if(u=0,(0|b)<=0)break r;r=b;break A}if((0|(r=b))>0)break A;u=0,f=0,g=0,d=0;break t}if(l)f=0,g=0,d=0;else{r=i[n+1840>>2],i[n+1820>>2]=r,s=999,d=0,f=0,m=0;r:{n:{a:{for(;;){s:{i:{o:{if(s-1>>>0>=2){if((0|w)<2)break o;if(VA(n+1408|0,r),(0|(s=i[n+1408>>2]))<577&i[e+600>>2]>0)break o;if(s=aA(s),(i[s+4>>2]!=i[e+600>>2]?s:0)|1==i[e+40>>2])break o;s=o[0|r],i[n+1408>>2]=s<<24>>24;l:switch(s-32|0){default:if(!s)break o;break;case 0:case 7:break o;case 1:case 2:case 3:case 4:case 5:case 6:}u=VA(n+1408|0,r),k=9;l:{c:{g:{u:if(-33&(s=i[n+1408>>2])){for(l=0,g=0;;){d:{f:{if(39==(0|s)){if((0|f)>0|(0|l)>1)break u;if(g=l?g:39,3!=i[e+40>>2])break f;break d}g=l?g:s}l=l+1|0}if(!Nt(e,s)){if(39!=(0|(s=i[n+1408>>2]))&&!yr(s))break o;if(u=VA(n+1408|0,r+u|0)+u|0,-33&(s=i[n+1408>>2]))continue;break u}break}if((0|l)<=2)break g;k=l}else g=0;if(2!=(0|(s=i[e+40>>2])))break c;j=s=j-208|0,a[0|s]=0,l=o[0|(c=r-1|0)],a[0|c]=32,r=Ce(e,r,s,200,0,-2147483648,0),a[0|c]=l,j=s+208|0,r=!r|(32768&r)>>>15;break l}s=i[e+40>>2],k=l}r=(a[e+168|0]+1|0)<(k-((0|s)==(0|g))|0)}if(!r)break o;r=i[n+1820>>2]}if(39!=o[0|r])break i;d=67108864,x=0}if(u=0,MA(e,n+992|0,0,f),r=i[n+1820>>2],32!=(0|(s=o[0|r])))break s;f=0,g=0;break t}if(x=0,r=we(e,r,n+992|0,1&(m|=(0|f)>0))+i[n+1820>>2]|0,i[n+1820>>2]=r,21==o[n+992|0])break a;for(f=f+1|0,l=0;l=(s=l)+1|0,32!=o[r+s|0];);d=67108864;continue}break}if(!o[n+992|0]|39==(0|s)||(a[r-1|0]=32,r=i[n+1820>>2]),c=Ce(e,r,n+1616|0,200,n+784|0,h,n+1832|0),21==(0|(r=o[n+1616|0]))){rt(189088,n+1616|0),s=0;break e}if(!(r|o[n+784|0])&&(VA(n+1408|0,i[n+1820>>2]),1==(0|w)&&(dt(i[n+1408>>2])||tr(i[n+1408>>2])))){zt(e,i[n+1820>>2],n+1616|0,b)&&rt(189088,n+1616|0),s=0;break e}i[n+172>>2]=a[i[n+1820>>2]-1|0];s:if(1024&c)for(B=n+176|1,b=0,s=1,m=0,f=0;;){if((k=131072&c)|!(1&s)||(a[n+1408|0]=0,!(r=Ce(e,i[n+1820>>2],n+1408|0,200,n+576|0,805306368|h,n+1832|0)))){2048&c&&(i[e+8184>>2]=1),a[i[n+1820>>2]-1|0]=i[n+172>>2];i:{o:{l:{c:if(k){if(a[n+176|0]=0,s=i[n+1820>>2],r=1,g=63&c){if(I=1&c,f=g-1|0,l=0,1!=(0|g))for(y=g-I|0,g=0;u=s,i[n+1820>>2]=s+1,a[0|(v=(n+176|0)+r|0)]=(0|l)!=(0|f)?o[0|s]:0,s=s+2|0,i[n+1820>>2]=s,a[v+1|0]=(0|f)!=(1|l)?o[u+1|0]:0,l=l+2|0,r=r+2|0,(0|y)!=(0|(g=g+2|0)););I&&(g=s+1|0,i[n+1820>>2]=g,a[(n+176|0)+r|0]=(0|l)!=(0|f)?o[0|s]:0,r=r+1|0,s=g)}a[(n+176|0)+r|0]=0}else{if(s=i[n+1820>>2],!(g=15&c))break l;if(r=0,l=g,u=3&c)for(;s=s+1|0,i[n+1820>>2]=s,128==(192&o[0|s])||(l=l-1|0,(0|u)!=(0|(r=r+1|0))););if(g>>>0<4)break c;for(;;)if(s=s+1|0,i[n+1820>>2]=s,128!=(192&o[0|s])){for(;s=s+1|0,i[n+1820>>2]=s,128==(192&o[0|s]););for(;s=s+1|0,i[n+1820>>2]=s,128==(192&o[0|s]););for(;s=s+1|0,i[n+1820>>2]=s,128==(192&o[0|s]););if(r=(0|l)>4,l=l-4|0,!r)break}}if(r=s-1|0,i[n+172>>2]=a[0|r],a[0|r]=32,r=h|=8388608,!k)break o;if(fn(n+576|0,n+784|0,12),i[n+1852>>2]=B,r=rt(n+1200|0,s=n+1616|0),Ve(e,n+1852|0,s,n+1832|0,0,t)&&rt(r,n+1616|0),!(32&o[n+1833|0]))break i;a[0|r]=0,zt(e,i[n+1852>>2],r,1);break i}r=s-1|0,i[n+172>>2]=a[0|r],a[0|r]=32,r=8388608|h}h=r,yn(n+1200|0,n+784|0)}if(a[n+784|0]=0,g=1,r=Ve(e,n+1820|0,n+1616|0,n+1824|0,1024,t),i[n+1832>>2]||(s=i[n+1828>>2],i[n+1832>>2]=i[n+1824>>2],i[n+1836>>2]=s,g=m),r){u=0,f=c;break r}if(u=Ce(e,i[n+1820>>2],n+1616|0,200,n+784|0,8404992&h,n+1832|0),s=1,f=c,m=g,21==o[n+1616|0]){a[i[n+1820>>2]-1|0]=i[n+172>>2],rt(189088,n+1616|0),s=0;break e}}else s=n+416|0,Be(e,i[n+1820>>2],r,s),u=Ce(e,i[n+1820>>2],n+1616|0,200,n+784|0,268435456|h,n+1832|0),_e(i[n+1820>>2],s,Wt(s)),1024&u||(rt(n+1616|0,n+1408|0),s=rt(n+784|0,n+576|0),8&o[188788]&&(QA(g=s,s=n+576|0),c=i[47195],i[n+48>>2]=s,en(c,85205,n+48|0)),u=r),s=0;if(r=(l=1024&u)>>>10|0,b>>>0>48)break s;if(b=b+1|0,c=u,!l)break}else u=c,f=0,m=0,r=0;if(r|!u)break n;for(c=rt(n+1408|0,n+1616|0),l=Be(e,i[n+1820>>2],u,n+416|0),g=m,s=u;;){s:{if(a[n+1616|0]=0,o[n+1200|0]){if(a[i[n+1820>>2]-1|0]=i[n+172>>2],r=Ve(e,n+1840|0,n+1616|0,n+1824|0,l,t),a[i[n+1820>>2]-1|0]=32,21==o[n+1616|0]){e=n+416|0,_e(i[n+1820>>2],e,Wt(e)),rt(189088,n+1616|0),s=0;break e}if(i[n+1832>>2]||(m=i[n+1828>>2],i[n+1832>>2]=i[n+1824>>2],i[n+1836>>2]=m),r){a[n+1200|0]=0;break s}g=i[n+1824>>2]?1:g}if(r=Ve(e,n+1820|0,n+1616|0,n+1824|0,l,t),21==o[n+1616|0]){e=n+416|0,_e(i[n+1820>>2],e,Wt(e)),rt(189088,n+1616|0),s=0;break e}if(i[n+1832>>2]||(m=i[n+1828>>2],i[n+1832>>2]=i[n+1824>>2],i[n+1836>>2]=m),!r)if(16384&s)rt(n+1616|0,c);else{h|=l<<11&8192|s<<9&134217728;i:if(524288&s){if(m=rt(n+576|0,r=n+784|0),s=Ce(e,i[n+1820>>2],n+1616|0,200,r,h,n+1832|0),yn(r,m),r=0,!s){s=0;break i}if(1024&s)break i;r=1,l=Be(e,i[n+1820>>2],s,0)}else s=0,Ce(e,i[n+1820>>2],n+1616|0,200,0,h,n+1832|0),r=0;if(21==o[n+1616|0]){rt(189088,n+1616|0),e=n+416|0,_e(i[n+1820>>2],e,Wt(e)),a[i[n+1820>>2]-1|0]=i[n+172>>2],s=0;break e}if(r)continue}}break}65536&u||(at(e,n+1616|0,200,n+784|0),a[n+784|0]=0),r=n+416|0,_e(i[n+1820>>2],r,Wt(r));break r}rt(189088,e=n+992|0),s=!Dt(1|e,84744,3)<<12;break e}u=0,g=m}a[i[n+1820>>2]-1|0]=i[n+172>>2]}}if(r=i[n+164>>2],i[n+1852>>2]=8026656,i[n+1848>>2]=8022304,i[n+1844>>2]=7566112,4&h){t:{if(s=255&r){if(102==(0|s))break t;if(E=G,an(r<<24>>24))break t}E=D}Ce(e,E,189088,200,0,0,0)}for(r=0,s=n+1200|0,m=o[n+784|0];;){t:{r:{n:switch(0|(c=o[0|s])){case 0:break t;case 6:case 7:break n;default:break r}r=c}s=s+1|0;continue}break}t:if(r|g){if(i[e+32>>2]|65536&f){for(l=0,ie(e,n+1616|0,n+1832|0,3,0),s=n+1200|0;;){r:switch(o[0|s]){case 6:l&&(a[0|s]=5),l=1;default:s=s+1|0;continue;case 0:}break}i[n+24>>2]=n+1616,i[n+20>>2]=n+1200,i[n+16>>2]=n+992,Ct(189088,200,85233,n+16|0),a[189287]=0,ie(e,189088,n+1832|0,-1,0);break t}i[n+8>>2]=n+1616,i[n+4>>2]=n+1200,i[n>>2]=n+992,Ct(189088,200,85233,n),a[189287]=0,ie(e,189088,n+1832|0,-1,0)}else ie(e,r=n+1616|0,n+1832|0,-1,!!(0|m)<<1),i[n+40>>2]=r,i[n+36>>2]=n+1200,i[n+32>>2]=n+992,Ct(189088,200,85233,n+32|0),a[189287]=0;o[n+784|0]&&(r=Wt(189088),a[983+(n-r|0)|0]=0,rt(r+189088|0,n+784|0)),16&(r=h|x)&&(i[n+1832>>2]=-268435457&i[n+1832>>2]);t:if(!(128&r)|!(16&o[e+14|0]))if(3072&r){if(gA(e,6),!(2048&r))break t;i[n+1832>>2]=268435456|i[n+1832>>2]}else 16&o[C(i[33264],12)+t|0]&&(1536&(t=i[n+1832>>2])?gA(e,4):2048&t&&gA(e,3));else gA(e,3);8192&u&&(i[e+8192>>2]=2,i[e+8184>>2]=2);t:{if(8&(t=i[n+1836>>2]))i[e+8184>>2]=0,i[e+8188>>2]=3,r=e+8196|0;else if(1&t)i[e+8192>>2]=0,i[e+8184>>2]=2,r=e+8196|0;else if(2&t)i[e+8192>>2]=2,i[e+8184>>2]=0,i[e+8188>>2]=0,r=e+8196|0;else{if(!(4&t))break t;i[e+8184>>2]=0,i[e+8192>>2]=0,i[e+8196>>2]=2,r=e+8188|0}i[r>>2]=0}!o[i[n+1820>>2]]|256&t||((0|(t=i[e+8184>>2]))>0&&(i[e+8184>>2]=t-1),(0|(t=i[e+8192>>2]))>0&&(i[e+8192>>2]=t-1),(0|(t=i[e+8196>>2]))>0&&(i[e+8196>>2]=t-1),(0|(t=i[e+8188>>2]))<=0||(i[e+8188>>2]=t-1)),1!=(0|w)|25966!=i[e+212>>2]||!yr(i[n+168>>2])|105==i[n+168>>2]||(i[n+1832>>2]=16777216|i[n+1832>>2]);t:if(2&o[e+68|0]&&98304&(r=i[n+1832>>2])&&!((0|(t=Wt(189088)-1|0))<=0))for(s=0;;){if(e=s+1|0,6==o[s+189088|0]){t=a[0|(e=e+189088|0)];r:{if(65536&r){if((0|br(69))==(0|t)?(w=br(101),a[0|e]=w):w=o[0|e],l=111,(0|br(79))==w<<24>>24)break r;break t}if((0|br(101))==(0|t)?(w=br(69),a[0|e]=w):w=o[0|e],l=79,(0|br(111))!=w<<24>>24)break t}a[0|e]=br(l);break t}if((0|t)==(0|(s=e)))break}e=i[n+1832>>2],_e(A,n+256|0,M),s=e|d;break e}if(s=0,a[n+1616|0]=0,zt(e,i[n+1840>>2],n+1616|0,r)){if(c=rt(189088,n+1616|0),!v){if(r=i[n+164>>2],i[n+1408>>2]=8026656,i[n+576>>2]=8022304,i[n+416>>2]=7566112,4&h){A=n+576|1,t=n+1408|1;A:{if(s=255&r){if(102==(0|s))break A;if(m=A,an(r<<24>>24))break A}m=t}Ce(e,m,c,200,0,0,0)}s=128&i[n+1832>>2]}}else s=((0|w)>1)<<12}else a[189088]=0;return j=n+1856|0,s}function re(e,A,t,r,n,s,l,c){var g,u,d=0,f=0,p=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0,Y=0,H=0,R=0,W=0,V=0,U=0,K=0,Z=0,X=0,q=0,J=0,_=0,$=0,ee=0,Ae=0;j=g=j-384|0,u=i[A>>2];e:{A:{t:{r:{if(n){if(7!=o[0|n])break r;i[A>>2]=(r||1)+u;break t}i[s>>2]=0,i[A>>2]=u+1;break e}z=86135,R=268435456&l,W=134217728&l,V=8388608&l,U=16384&l,K=8192&l,N=t-1|0,O=r-t|0,Z=2&l,X=128&l,q=l>>>31|0,J=-2147483648&l,L=g+96|1;r:for(;;)for(i[g+268>>2]=0,I=(p=i[A>>2])+r|0,M=-2,y=-6,t=n,G=J,Q=0,F=0,E=1,d=0,D=0,P=0;;){h=p,w=d;n:{a:{s:{i:{o:{l:{c:{g:{u:{d:{f:{p:{h:{m:{C:{b:{for(;x=t,t=t+1|0,!((f=o[0|x])>>>0>9);){m=t;I:switch(0|f){case 0:if(!(t=Y)){Y=0,t=86135;break C}for(;;){f=1;w:{k:switch(0|(d=o[0|t])){case 0:case 3:break b;case 5:break k;default:break w}f=2}t=(t+f|0)+((9==(0|d))<<1)|0}case 1:if(P=1,!q)continue;break o;case 2:P=2;continue;case 4:Y=t;continue;case 5:t=x+2|0,d=i[e+320>>2];w:{if((p=o[x+1|0])>>>0>=32){if(!(d>>>p-32&1))break w;break o}if(!(d>>>p&1))break o}E=E+1|0;continue;case 9:t=x+3|0;continue;case 8:P=1,F=1,G=0;break;case 3:break m}}m=0,d=w,p=h;I:switch(0|P){case 0:w:{k:{if((0|(d=o[0|I]))!=(0|f)){if(69!=(0|d))break o;if(101==(0|f))break k;break o}if(m=0,128==(192&f))break w}m=21}I=I+1|0,Q=Q+1|0;break n;case 1:break h;case 2:break I;default:break d}if(i[g+264>>2]=i[g+268>>2],!o[I-1|0])break o;y=(0|(d=y+6|0))>=19?19:d,v=I+1|0,B=VA(g+268|0,I),k=o[0|I],m=20,d=w;I:{w:switch(f-11|0){case 6:t=x+2|0,d=i[g+268>>2],p=a[x+1|0];k:if(f=i[604+(((p=((0|p)<65?191:-65)+p|0)<<2)+e|0)>>2])d=!!(0|Pr(f,d));else{if((0|p)>7)break o;x:{if((0|(f=i[e+600>>2]))>0){if((d=d-f|0)-1>>>0<255)break x;break o}if((f=d-192|0)>>>0<=413){d=o[344+(o[f+94240|0]+e|0)|0]&1<<p;break k}if(d>>>0>255)break o}d=o[344+(e+d|0)|0]&1<<p}if(!d)break o;I=I+B|0,m=(2==(0|p)?19:20)-y|0;break n;case 7:if(t=x+2|0,d=a[x+1|0],!(d=i[4788+((((0|d)<65?191:-65)+d<<2)+e|0)>>2]))break o;k:for(;;){if(7==(0|(m=o[0|d])))break o;if(126==(0|m)){m=20-y|0;break n}x:if(k){if(b=I,f=d,(0|m)==(0|k))for(;;){if((0|(m=o[0|(f=f+1|0)]))!=(0|(d=o[0|(b=b+1|0)])))break x;if(!d)break}}else f=d,b=I;if(m)for(;;)if(p=o[0|f],f=d=f+1|0,!p)continue k;break}if((0|(d=b-I|0))<0)break o;I=d+I|0,m=20-y|0;break n;case 14:f=i[g+268>>2];k:{x:if(d=i[e+604>>2])d=!!(0|Pr(d,f));else{B:{if((0|(d=i[e+600>>2]))>0){if((b=f-d|0)-1>>>0<255)break B;break k}if((d=f-192|0)>>>0<=413){d=1&a[344+(o[d+94240|0]+e|0)|0];break x}if(b=f,f>>>0>255)break a}d=1&a[344+(e+b|0)|0]}if(d)break o;f=i[g+268>>2]}if(!W)break a;if(32==(0|f))break o;break a;case 4:if((d=i[g+268>>2])-48>>>0<10|d-2406>>>0<10)break a;if(!o[e+170|0])break o;m=20-y|0;break n;case 5:if(Or(i[g+268>>2]))break o;break s;case 0:if(i[g+268>>2]==i[g+264>>2])break s;break o;case 17:t=x+2|0,d=32768,m=0;k:{x:switch((f=o[x+1|0])-1|0){case 0:break d;case 1:break x;default:break k}if(m=1,d=w,!V)break d;break o}if(16==(0|(d=240&f))){if(m=23,d=w,c>>>(15&f)&16384)break d;break o}if(3!=(0|f)&32!=(0|d))break n;if(_e(d=g+96|0,N,p=1+(i[A>>2]+(Q+O|0)|0)|0),a[0|(d=d+p|0)]=32,a[d+1|0]=0,i[33265]=0,i[33266]=0,i[g+16>>2]=L,Ve(e,g+16|0,g+272|0,133060,0,0),m=23,!(3!=(0|f)|(0|(b=i[33265]))>=0|16384&i[33266]))break n;if(d=w,p=h,b>>>(15&f)&16384)break d;break o;case 34:k:{if(d=k-32|0){if(13==(0|d))break k;break o}if(!U)break o}b=22-y|0;break i;case 10:if(d=1,21==o[0|t])break I;break l;case 18:if(32!=(0|(b=i[g+268>>2])))for(f=I+B|0;;){k:{x:if(d=i[e+632>>2])d=!!(0|Pr(d,b));else{B:{if((0|(d=i[e+600>>2]))>0){if((b=b-d|0)-1>>>0<255)break B;break k}if((d=b-192|0)>>>0<=413){d=128&o[344+(o[d+94240|0]+e|0)|0];break x}if(b>>>0>255)break k}d=128&o[344+(e+b|0)|0]}if(d)break o}if(f=VA(g+268|0,f)+f|0,32==(0|(b=i[g+268>>2])))break}b=19-y|0;break i;case 49:break c;case 2:break g;case 3:break u;case 1:break d;case 13:break f;case 12:break w;default:break p}VA(g+272|0,t),B=-1;w:if((0|(d=i[g+272>>2]))!=(0|(f=i[g+268>>2])))if(-33&f)for(;;){k=I,B=-1;k:if(18==(0|d)&&(d=a[x+2|0],m=i[4788+((((0|d)<65?191:-65)+d<<2)+e|0)>>2])){for(;;){if(7==(0|(p=o[0|m])))break k;if(126==(0|p)){B=0;break k}x:if((0|(I=o[0|k]))==(0|p)){if(d=k,f=m,I)for(;;){if((0|(p=o[0|(f=f+1|0)]))!=(0|(m=o[0|(d=d+1|0)])))break x;if(!m)break}}else f=m,d=k;if(!p){d=d-k|0;break}for(;d=o[0|f],f=m=f+1|0,d;);}B=d}if(p=VA(g+268|0,k),(0|(d=i[g+272>>2]))==(0|(f=i[g+268>>2]))|!(-33&f))break w;if(I=p+k|0,-1!=(0|B))break}else k=I;else k=I;I=(0|d)==(0|f)||(0|B)>=0?k:v,m=0;break n}for(;d=d+1|0,21==o[0|(t=t+1|0)];);break l}t=t+1|0}m=x}if(!(32!=o[h-1|0]&F|G||((0|(f=F?E+4|0:E))>=(0|S)&&(_=D,$=w,S=f,ee=Q,z=t),!(8&i[47197])|R|(0|f)<=0))){for(QA(t,x=g+272|0),v=i[47195],p=g+16|0,t=0,k=0,G=0,D=0,j=I=j-496|0,a[I+80|0]=0,(0|r)>0?(_e(I+288|0,u,r),w=r):w=0,a[w+(d=I+288|0)|0]=0,h=Wt(d)+d|0,B=(0|l)<0;;){if(b=o[0|n],w=n,n=n+1|0,b>>>0>9)for(;;){m:{C:{b:{I:{w:{k:switch((d=255&b)-14|0){case 4:break b;case 3:break I;case 0:break w;case 14:break k;default:break C}if(w=w+2|0,b=32,!B&1==(0|(n=o[0|n])))break m;a[0|h]=36,rt(d=h+1|0,n=mr(128960,n)),h=Wt(n)+d|0;break m}d=o[w+2|0],b=o[0|n],i[I+36>>2]=127&o[w+3|0],i[I+32>>2]=4&d?80:83,vt(I+48|0,85131,I+32|0),1&d&&(n=Wt(n=I+48|0)+n|0,a[0|n]=101,a[n+1|0]=0),2&(n=127&d)&&(d=Wt(d=I+48|0)+d|0,a[0|d]=105,a[d+1|0]=0),4&n&&(d=Wt(d=I+48|0)+d|0,a[0|d]=112,a[d+1|0]=0),8&n&&(d=Wt(d=I+48|0)+d|0,a[0|d]=118,a[d+1|0]=0),16&n&&(d=Wt(d=I+48|0)+d|0,a[0|d]=100,a[d+1|0]=0),32&n&&(d=Wt(d=I+48|0)+d|0,a[0|d]=102,a[d+1|0]=0),n>>>0>=64&&(n=Wt(n=I+48|0)+n|0,a[0|n]=113,a[n+1|0]=0),1&b&&(n=Wt(n=I+48|0)+n|0,a[0|n]=116,a[n+1|0]=0),w=w+4|0,h=rt(h,n=I+48|0)+Wt(n)|0,b=32;break m}w=w+2|0,b=o[a[0|n]+93871|0];break m}n=a[0|n],a[0|h]=76,d=((n=n+((0|n)<65?191:-65)|0)>>>0)/10|0,a[h+1|0]=d+48,b=n-C(d,10)|48,1==(0|D)&&(a[0|h]=b,b=76),w=w+2|0,h=h+2|0;break m}b=d>>>0<=31?o[d+93904|0]:32==(0|d)?95:b,w=n}if(a[0|h]=b,n=w+1|0,h=h+1|0,!((b=o[0|w])>>>0>=10))break}d=1;m:switch(0|b){case 1:d=t;case 8:a[0|h]=0,h=I+80|0,t=d,D=1;continue;case 2:a[0|h]=0,w=Wt(d=I+288|0)+d|0,h=o[84899]|o[84900]<<8,a[0|w]=h,a[w+1|0]=h>>>8,D=2,a[w+2|0]=o[84901],h=Wt(d)+d|0;continue;case 5:k=a[0|n],n=w+2|0;continue;case 9:G=(o[0|n]+C(o[w+2|0],255)|0)-256|0,n=w+3|0;continue;case 0:case 3:break m;default:continue}break}if(a[0|h]=0,h=p,(0|G)>0&&(i[I+16>>2]=G,vt(p,85581,I+16|0),h=p+7|0),(0|k)>0&&(i[I>>2]=k,vt(h,85694,I),h=Wt(h)+h|0),1&((0|(n=Wt(I+80|0)))>0|t)){1&t&&(a[0|h]=95,h=h+1|0);m:if(!((0|(w=n-1|0))<0|h>>>0>=p>>>0))for(;;){if(a[0|h]=o[(I+80|0)+w|0],h=h+1|0,(0|w)<=0)break m;if(w=w-1|0,!(h>>>0<p>>>0))break}a[0|h]=41,a[h+1|0]=32,h=h+2|0}a[0|h]=0,a[(t=I+288|0)+((p+3|0)-h|0)|0]=0,yn(h,t),(0|(t=Wt(p)))<=7&&(kA(t+p|0,32,8-t|0),t=8),a[t+p|0]=0,j=I+496|0,i[g+4>>2]=p,i[g>>2]=(0|r)>1?f+35|0:f,i[g+8>>2]=x,en(v,89088,g)}t=m;break o}if(!o[0|h])break o;M=(0|(d=M+2|0))>=19?19:d,VA(g+264|0,h),d=RA(g+268|0,p=h-1|0),k=o[0|p],v=p;h:{m:{C:{b:{I:{w:switch(f-10|0){case 13:if(d=(0|(T=o[0|t]))==(0|(f=o[0|h])),B=-1,32==(0|f)|(0|f)==(0|T))break b;if(f)break I;break C;case 7:t=x+2|0,m=i[g+268>>2],h=a[x+1|0];k:if(f=i[604+(((h=((0|h)<65?191:-65)+h|0)<<2)+e|0)>>2])f=!!(0|Pr(f,m));else{if((0|h)>7)break o;x:{if((0|(f=i[e+600>>2]))>0){if((m=m-f|0)-1>>>0<255)break x;break o}if((f=m-192|0)>>>0<=413){f=o[344+(o[f+94240|0]+e|0)|0]&1<<h;break k}if(m>>>0>255)break o}f=o[344+(e+m|0)|0]&1<<h}if(!f)break o;p=1+(p-d|0)|0,m=(2==(0|h)?19:20)-M|0;break h;case 8:if(t=x+2|0,d=a[x+1|0],!(d=i[4788+((((0|d)<65?191:-65)+d<<2)+e|0)>>2]))break o;k:{for(;;){if(7==(0|(k=o[0|d])))break o;if(126==(0|k)){B=0;break k}f=p;x:{B:{if((0|(x=(B=Wt(d))-1|0))>0)for(f=h-B|0,m=0,b=p;;){if(!o[0|(b=b-1|0)])break B;if((0|x)==(0|(m=m+1|0)))break}v:if(!((0|(m=o[0|f]))!=(0|k)|!m))for(;;){if((0|(k=o[0|(d=d+1|0)]))!=(0|(m=o[0|(f=f+1|0)])))break v;if(!m)break}if(!k)break x}for(f=d;m=o[0|f],f=d=f+1|0,m;);continue}break}if((0|B)<0)break o}m=20-y|0,p=1+(p-B|0)|0;break h;case 15:f=i[g+268>>2];k:{x:if(h=i[e+604>>2])h=!!(0|Pr(h,f));else{B:{if((0|(h=i[e+600>>2]))>0){if((f=f-h|0)-1>>>0<255)break B;break k}if((h=f-192|0)>>>0<=413){h=1&a[344+(o[h+94240|0]+e|0)|0];break x}if(f>>>0>255)break k}h=1&a[344+(e+f|0)|0]}if(h)break o}m=20-M|0,p=1+(p-d|0)|0;break h;case 1:if(i[g+268>>2]!=i[g+264>>2])break o;m=21-M|0,p=1+(p-d|0)|0;break h;case 5:if(!((h=i[g+268>>2])-48>>>0<10|h-2406>>>0<10))break o;m=21-M|0,p=1+(p-d|0)|0;break h;case 6:if(Or(i[g+268>>2]))break o;m=21-y|0,p=1+(p-d|0)|0;break h;case 18:if(t=x+2|0,!(3==(0|(f=o[x+1|0]))|32==(240&f)))break n;if(_e(d=g+96|0,N,p=1+(i[A>>2]+(Q+O|0)|0)|0),a[0|(d=d+p|0)]=32,a[d+1|0]=0,i[33265]=0,i[33266]=0,i[g+16>>2]=L,Ve(e,g+16|0,g+272|0,133060,0,0),m=23,!(3!=(0|f)|(0|(b=i[33265]))>=0|16384&i[33266]))break n;if(d=w,p=h,b>>>(15&f)&16384)break d;break o;case 11:if(f=1,21==o[0|t])for(;f=f+1|0,21==o[0|(t=t+1|0)];);if(i[e+8208>>2]<(0|f))break o;m=18+(f-M|0)|0;break h;case 0:if(m=19,d=w,p=h,i[e+8212>>2]>0)break d;break o;case 19:if(m=3,32==(0|(b=i[g+268>>2])))break h;for(f=1+(p-d|0)|0;;){k:{x:if(d=i[e+632>>2])d=!!(0|Pr(d,b));else{B:{if((0|(d=i[e+600>>2]))>0){if((b=b-d|0)-1>>>0<255)break B;break k}if((d=b-192|0)>>>0<=413){d=128&o[344+(o[d+94240|0]+e|0)|0];break x}if(b>>>0>255)break k}d=128&o[344+(e+b|0)|0]}if(d)break o}if(f=f-RA(g+268|0,f-1|0)|0,32==(0|(b=i[g+268>>2])))break}break h;case 16:if(m=1,d=w,p=h,i[e+8184>>2])break d;break o;case 9:if(m=1,d=w,p=h,Z)break d;break o;case 36:for(;;){if(m=50,d=w,!(h=(255&k)-32|0))break o;if(14==(0|h))break d;k=o[0|(v=v-1|0)]}case 35:break w;default:break m}w:{if(d=k-32|0){if(13==(0|d))break w;break o}if(!X)break o}m=22-y|0;break h}I:{for(;;){B=-1,b=h,h=h-1|0;w:if(18==(0|T)&&(d=a[x+2|0],m=i[4788+((((0|d)<65?191:-65)+d<<2)+e|0)>>2]))for(Ae=b+1|0;;){if(7==(0|(v=o[0|m]))){B=-1;break w}if(126==(0|v)){B=0;break w}f=b;k:{if((0|(H=(B=Wt(m))-1|0))>0)for(f=Ae-B|0,k=0,d=b;;){if(!o[0|(d=d-1|0)])break k;if((0|H)==(0|(k=k+1|0)))break}x:if(!((0|(d=o[0|f]))!=(0|v)|!d))for(;;){if((0|(v=o[0|(m=m+1|0)]))!=(0|(d=o[0|(f=f+1|0)])))break x;if(!d)break}if(!v)break w}for(f=m;d=o[0|f],f=m=f+1|0,d;);}if(d=(0|(f=o[0|h]))==(0|T),32==(0|f)|(0|f)==(0|T))break I;if(!f){h=b;break C}if(-1!=(0|B))break}h=b;break C}h=b}p=d?h:p}m=0,p=(0|B)<0?p:h+1|0;break h}if((0|f)!=(0|k))break o;m=4,32!=(0|f)&&(m=128!=(192&f)?21-M|0:0)}d=w;break d}if((0|f)!=(0|k))break o;b=128!=(192&f)?21-y|0:0;break i}if(m=1,K)break o}E=m+E|0;continue}if(d=a[x+1|0],w=o[x+3|0],p=o[x+2|0],1&!(i[e+8208>>2]|4&p)&a[e+84|0])break o;t=x+4|0,b=0,w=127&w|(127&p)<<8|d<<16;break i}g:if(!(v>>>0<=(f=i[A>>2]+r|0)>>>0)){for(;;){if(101!=o[0|f]){if(d=f>>>0<I>>>0,f=f+1|0,d)continue;break g}break}b=0,D=f;break i}b=0;break i}m=-20;break n}if(k=0,32!=(0|(f=i[g+268>>2])))for(b=I+B|0,m=0;;){if(!m){l:{c:if(p=i[e+632>>2])f=!!(0|Pr(p,f));else{g:{if((0|(p=i[e+600>>2]))>0){if((f=f-p|0)-1>>>0<255)break g;break l}if((p=f-192|0)>>>0<=413){f=128&o[344+(o[p+94240|0]+e|0)|0];break c}if(f>>>0>255)break l}f=128&o[344+(e+f|0)|0]}f&&(k=k+1|0)}f=i[g+268>>2]}l:if(p=i[e+632>>2])m=!!(0|Pr(p,f));else{c:{if((0|(p=i[e+600>>2]))>0){if(m=0,(f=f-p|0)-1>>>0<255)break c;break l}if((p=f-192|0)>>>0<=413){m=128&o[344+(o[p+94240|0]+e|0)|0];break l}if(m=0,f>>>0>255)break l}m=128&o[344+(e+f|0)|0]}if(b=VA(g+268|0,b)+b|0,32==(0|(f=i[g+268>>2])))break}if(!((0|d)>(0|k))){b=18+(d-y|0)|0;break i}}for(;d=o[0|t],t=n=t+1|0,d;);if(7!=o[0|n])continue r;if(e=r+ee|0,i[A>>2]=i[A>>2]+(e||1),S)break A;break t}d=w,I=v,p=h,E=b+E|0;continue}I=I+B|0,m=21-y|0;break n}I=I+B|0,m=20-y|0}d=w,p=h,E=m+E|0}}z=86135}i[s+12>>2]=_,i[s+8>>2]=$,i[s+4>>2]=z,i[s>>2]=S}j=g+384|0}function ne(e,A){var t,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,h=0,m=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0;j=t=j-1168|0,i[t+928>>2]=0,i[t+932>>2]=0,i[t+920>>2]=0,i[t+924>>2]=0,i[t+912>>2]=0,i[t+916>>2]=0,i[t+904>>2]=0,i[t+908>>2]=0,i[t+896>>2]=0,i[t+900>>2]=0;e:{A:{if(e){if(o[0|e]|8&A)break A;break e}if(!(8&A))break e}if(fn(t+1088|0,e,40),16&A){if((0|sr(rt(t+704|0,e)))<=0)break e;k=8&A}else(k=8&A)|o[t+1088|0]||(s[t+1088>>1]=o[85055]|o[85056]<<8,a[t+1090|0]=o[85057]),i[t+496>>2]=137584,i[t+500>>2]=47,i[t+504>>2]=47,vt(r=t+512|0,85286,t+496|0),i[t+484>>2]=t+1088,i[t+480>>2]=r,vt(r=t+704|0,85425,t+480|0),(0|sr(r))>0||(i[t+468>>2]=47,i[t+472>>2]=47,i[t+464>>2]=137584,vt(r=t+512|0,85648,t+464|0),i[t+452>>2]=t+1088,i[t+448>>2]=r,vt(t+704|0,85425,t+448|0));if(n=k?86012:85055,!(x=eA(t+704|0,85712))){if(r=0,3&A)break e;n=(0|Pt(r=t+1088|0))<0?n:r}if((w=2&A)||(r=i[47192])&&(nn(r),i[47192]=0),y=rt(t+992|0,n),v=rt(t+944|0,n),w?((r=cn(200992,43))&&(a[0|r]=0),i[t+432>>2]=e+3,vt(e=t+704|0,86030,t+432|0),yn(200992,e)):(i[32972]=199592,fn(200992,e,40),a[201088]=0,a[201040]=0,i[50299]=200992,i[50298]=201088,i[50297]=201040),Qe(w),x){for(M=i[30450],G=t+548|0,D=t+544|0,Q=t+540|0,T=t+536|0,P=t+532|0,z=t+528|0,F=12|(e=t+512|0),S=8|e,N=4|e;BA(t+704|0,190,x);){e=t+704|0;A:{if(35!=o[t+704|0]){t:if(!((0|(e=Wt(t+704|0)-1|0))<=0))for(;;){if(!(32==(0|(n=a[0|(r=(t+704|0)+e|0)]))|n-9>>>0<5))break t;if(a[0|r]=0,!((0|(e=e-1|0))>0))break}if(!(e=Ge(t+704|0)))break A}a[0|e]=0}e=t+704|0;A:if(r=o[t+704|0])for(;;){if(32==(0|(r=r<<24>>24))|r-9>>>0<5)break A;if(!(r=o[0|(e=e+1|0)]))break}if(a[0|e]=0,o[t+704|0])if(e=e+1|0,r=Qr(129744,t+704|0)){l=0,j=n=j-416|0;A:if(c=i[47192]){t:switch(r-19|0){case 16:if(i[n+32>>2]=n+412,1!=(0|ae(e,84249,n+32|0)))break A;i[c+324>>2]=i[n+412>>2];break A;case 8:gt(e,c+320|0,27);break A;case 2:if(i[n+48>>2]=188784,ae(e,84249,n+48|0),!(e=o[188784]))break A;i[c+152>>2]=e;break A;case 11:if(o[0|e])for(g=i[30450];;)if(r=e,e=e+1|0,!(32==(0|(l=a[0|r]))|l-9>>>0<5)){for(l=wt(r),i[n+412>>2]=l,(0|l)>0&&(l>>>0<=31?i[c+104>>2]=i[c+104>>2]|1<<l:l>>>0<=63?i[c+108>>2]=i[c+108>>2]|1<<l-32:(i[n+64>>2]=l,en(g,84700,n- -64|0)),r=e);r=(e=r)+1|0,(l=a[0|e])-48>>>0<10|(32|l)-97>>>0<26;);if(!l)break}8&(e=i[c+104>>2])&&(i[c+124>>2]=46,i[c+128>>2]=44),4&e&&(i[c+124>>2]=0);break A;default:if(256!=(65280&r))break A;i[n+16>>2]=24+(c+((255&r)<<2)|0),ae(e,84249,n+16|0);break A;case 1:i[n+144>>2]=c,i[n+148>>2]=c+4,ae(e,85642,n+144|0);break A;case 3:if(r=0,kA(l=n+160|0,0,240),i[n+132>>2]=n+360,i[n+128>>2]=n+320,i[n+124>>2]=n+280,i[n+120>>2]=n+240,i[n+116>>2]=n+200,i[n+112>>2]=l,l=ae(e,85037,n+112|0),i[n+412>>2]=l,i[c+152>>2]=0,(0|l)<=0)break A;for(f=i[30450];;){r:if(hr(g=(n+160|0)+C(r,40)|0,85301)){n:{if((0|(d=i[34454]))>0)for(b=i[34455],e=0;;){if(!hr(g,b+C(e,68)|0))break n;if((0|d)==(0|(e=e+1|0)))break}i[n+96>>2]=g,en(f,85562,n+96|0),l=i[n+412>>2];break r}a[156+(r+c|0)|0]=e}if(!((0|l)>(0|(r=r+1|0))))break}break A;case 9:i[n+88>>2]=c+20,i[n+84>>2]=c+16,i[n+80>>2]=c+8,ae(e,84778,n+80|0);break A;case 10:gt(e,c+12|0,29);break A;case 5:if((0|(f=kt(e,n+160|0)))<=0)break A;if(r=0,e=0,f>>>0>=4)for(b=-4&f,g=c+304|0;d=n+160|0,s[g+(e<<1)>>1]=i[d+(e<<2)>>2],s[g+((u=1|e)<<1)>>1]=i[d+(u<<2)>>2],s[g+((u=2|e)<<1)>>1]=i[d+(u<<2)>>2],s[g+((u=3|e)<<1)>>1]=i[d+(u<<2)>>2],e=e+4|0,(0|b)!=(0|(l=l+4|0)););if(!(l=3&f))break A;for(;s[304+(c+(e<<1)|0)>>1]=i[(n+160|0)+(e<<2)>>2],e=e+1|0,(0|l)!=(0|(r=r+1|0)););break A;case 6:if((0|(f=kt(e,n+160|0)))<=0)break A;if(r=0,e=0,f>>>0>=4)for(b=-4&f,g=c+296|0;d=n+160|0,a[e+g|0]=i[d+(e<<2)>>2],a[(u=1|e)+g|0]=i[d+(u<<2)>>2],a[(u=2|e)+g|0]=i[d+(u<<2)>>2],a[(u=3|e)+g|0]=i[d+(u<<2)>>2],e=e+4|0,(0|b)!=(0|(l=l+4|0)););if(!(l=3&f))break A;for(;a[296+(e+c|0)|0]=i[(n+160|0)+(e<<2)>>2],e=e+1|0,(0|l)!=(0|(r=r+1|0)););break A;case 7:if((0|(f=kt(e,n+160|0)))<=0)break A;if(r=0,e=0,f>>>0>=4)for(b=-4&f,g=c+304|0;u=d=g+(e<<1)|0,h=p[d>>1],d=n+160|0,s[u>>1]=h+p[d+(e<<2)>>1],s[(h=g+((u=1|e)<<1)|0)>>1]=p[h>>1]+p[d+(u<<2)>>1],s[(h=g+((u=2|e)<<1)|0)>>1]=p[h>>1]+p[d+(u<<2)>>1],s[(h=g+((u=3|e)<<1)|0)>>1]=p[h>>1]+p[d+(u<<2)>>1],e=e+4|0,(0|b)!=(0|(l=l+4|0)););if(!(l=3&f))break A;for(;s[304+(g=c+(e<<1)|0)>>1]=p[g+304>>1]+p[(n+160|0)+(e<<2)>>1],e=e+1|0,(0|l)!=(0|(r=r+1|0)););break A;case 4:a[c+169|0]=1;break A;case 0:}a[c+208|0]=1}else i[n>>2]=mr(129568,r),en(i[30450],89101,n);j=n+416|0}else{A:switch(Qr(131904,t+704|0)-1|0){case 1:if(w)continue;if(a[t+1040|0]=0,i[t+512>>2]=5,i[t+32>>2]=t+1040,i[t+36>>2]=t+512,ae(e,86237,t+32|0),1769103734==i[t+1040>>2]&7630433==i[t+1044>>2])continue;if((e=Wt(t+1040|0)+2|0)>>>0<99-B>>>0&&(a[0|(r=B+201088|0)]=i[t+512>>2],rt(r+1|0,t+1040|0),B=e+B|0),!O){if(e=0,(r=g=t+1040|0)||(r=i[57150])){if(e=86875,i[24+(n=j-32|0)>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+8>>2]=0,i[n+12>>2]=0,i[n>>2]=0,i[n+4>>2]=0,c=0,l=o[86875])if(o[86876]){for(;i[(c=n+(l>>>3&28)|0)>>2]=i[c>>2]|1<<l,l=o[e+1|0],e=e+1|0,l;);t:if(l=o[0|(e=r)])for(;;){if(!(i[n+(l>>>3&28)>>2]>>>l&1))break t;if(l=o[e+1|0],e=e+1|0,!l)break}c=e-r|0}else{for(e=r;n=e,e=e+1|0,o[0|n]==(0|l););c=n-r|0}if(o[0|(e=c+r|0)]){r=86875,j=l=j-32|0,n=a[86875];t:if(o[86876]&&n){if(kA(l,0,32),n=o[86875])for(;i[(c=l+(n>>>3&28)|0)>>2]=i[c>>2]|1<<n,n=o[r+1|0],r=r+1|0,n;);if(r=e,n=o[0|e])for(;;){if(i[l+(n>>>3&28)>>2]>>>n&1)break t;if(n=o[r+1|0],r=r+1|0,!n)break}}else r=_A(e,n);j=l+32|0,o[0|(r=(r-e|0)+e|0)]?(i[57150]=r+1,a[0|r]=0):i[57150]=0}else i[57150]=0,e=0}r=rt(y,e),rt(v,e),Pt(rt(t+896|0,e)),i[47192]=J(r),fn(i[32972]+40|0,g,20)}O=1;continue;case 0:if(w)continue;for(;r=e,e=e+1|0,32==(0|(n=a[0|r]))|n-9>>>0<5;);fn(201040,r,40);continue;case 2:i[t+1152>>2]=0,r=t+512|0,i[t+48>>2]=r,i[t+52>>2]=t+1152,ae(e,86237,t+48|0),a[201200]=Qr(132112,r),a[201201]=i[t+1152>>2];continue;case 4:i[t+64>>2]=v,ae(e,86939,t- -64|0);continue;case 3:i[t+80>>2]=t+896,ae(e,86939,t+80|0);continue;case 8:if(i[t+1152>>2]=100,i[t+1164>>2]=100,i[t+1148>>2]=100,i[t+112>>2]=t+1144,i[t+1144>>2]=0,i[t+96>>2]=t+512,i[t+100>>2]=t+1152,i[t+104>>2]=t+1164,i[t+108>>2]=t+1148,(0|ae(e,91156,t+96|0))<2)continue;if((e=i[t+512>>2])>>>0>8)continue;if((0|(r=i[t+1152>>2]))>=0&&(n=i[32972]+(e<<1)|0,r=I(m=2.56001*+(0|r))<2147483648?~~m:-2147483648,s[n+236>>1]=r,s[n+164>>1]=r),(0|(r=i[t+1164>>2]))>=0&&(n=i[32972]+(e<<1)|0,r=I(m=2.56001*+(0|r))<2147483648?~~m:-2147483648,s[n+254>>1]=r,s[n+182>>1]=r),(0|(n=i[t+1148>>2]))<0?r=i[32972]:(g=(r=i[32972])+(e<<1)|0,n=I(m=2.56001*+(0|n))<2147483648?~~m:-2147483648,s[g+200>>1]=n),s[218+((e<<1)+r|0)>>1]=i[t+1144>>2],e)continue;s[r+200>>1]=(0|C(s[r+200>>1],105))/100;continue;case 9:if(i[t+132>>2]=t+696,i[t+128>>2]=t+700,2!=(0|ae(e,87106,t+128|0)))continue;if(e=i[32972],r=i[t+700>>2],i[e+64>>2]=(r<<12)-36864,i[e+68>>2]=C(i[t+696>>2]-r|0,108),I(m=256*(+(r-82|0)/82*.25+1))<2147483648){i[e+116>>2]=~~m;continue}i[e+116>>2]=-2147483648;continue;case 35:L||Pt(t+896|0),i[t+1164>>2]=0,a[t+1156|0]=o[91267],i[t+1152>>2]=o[91263]|o[91264]<<8|o[91265]<<16|o[91266]<<24,i[t+144>>2]=t+1164,i[t+148>>2]=t+512,i[t+152>>2]=t+1152,(0|ae(e,91302,t+144|0))<2|i[49848]>59||(e=xt(t+512|0))&&(a[C(i[49848],3)+199408|0]=e,e=xt(t+1152|0),r=i[49848],n=C(r,3)+199408|0,a[n+1|0]=e,i[49848]=r+1,a[n+2|0]=i[t+1164>>2]),L=1;continue;case 10:i[t+1140>>2]=0,r=i[32972],i[r+100>>2]=0,i[t+164>>2]=r+100,i[t+160>>2]=r+96,ae(e,87106,t+160|0);continue;case 11:if(i[t+176>>2]=t+1140,1!=(0|ae(e,87268,t+176|0)))continue;i[i[32972]+88>>2]=i[t+1140>>2]<<5;continue;case 12:if(i[t+192>>2]=t+1140,1!=(0|ae(e,87268,t+192|0)))continue;i[i[32972]+92>>2]=i[t+1140>>2];continue;case 13:if(i[t+208>>2]=t+1140,1!=(0|ae(e,87268,t+208|0)))continue;r=i[32972],(0|(e=i[t+1140>>2]))>=5&&(i[r+108>>2]=1,i[t+1140>>2]=4,e=4),i[r+104>>2]=e+1;continue;case 14:for(i[t+552>>2]=-1,i[t+556>>2]=-1,i[t+544>>2]=-1,i[t+548>>2]=-1,i[t+536>>2]=-1,i[t+540>>2]=-1,i[t+528>>2]=-1,i[t+532>>2]=-1,i[t+240>>2]=z,i[t+244>>2]=P,i[t+248>>2]=T,i[t+252>>2]=Q,i[t+256>>2]=D,i[t+260>>2]=G,i[t+520>>2]=-1,i[t+524>>2]=-1,i[t+512>>2]=-1,i[t+516>>2]=-1,i[t+228>>2]=N,i[t+232>>2]=S,i[t+236>>2]=F,i[t+224>>2]=t+512,ae(e,84222,t+224|0),b=i[32972],e=0,l=i[t+516>>2],n=0;;){if(r=n,c=l,g=e,-1==(0|(n=i[(l=(e<<=2)+(t+512|0)|0)>>2]))&&(n=8e3,i[l>>2]=8e3,g&&(i[(t+512|0)+(4|e)>>2]=i[508+(e+t|0)>>2])),l=i[(t+512|0)+(4|e)>>2],!((0|r)>=(0|(n=(0|n)/8|0))||(0|(d=n-r|0))<=0||(f=r+1|0,e=r,1&d&&(a[344+(r+b|0)|0]=(0|c)>=255?255:c,e=f),(0|n)==(0|f))))for(f=l-c|0;h=b+344|0,u=c+((0|C(f,e-r|0))/(0|d)|0)|0,a[h+e|0]=(0|u)>=255?255:u,u=c+((0|C(f,(E=e+1|0)-r|0))/(0|d)|0)|0,a[h+E|0]=(0|u)>=255?255:u,(0|n)!=(0|(e=e+2|0)););if(e=g+2|0,!(g>>>0<10))break}continue;case 15:if(i[t+272>>2]=t+1140,1!=(0|ae(e,87268,t+272|0)))continue;i[i[32972]+112>>2]=(i[t+1140>>2]<<6)/100;continue;case 16:r=i[32972],i[(n=r+300|0)>>2]=0,i[n+4>>2]=0,i[(l=r+292|0)>>2]=0,i[l+4>>2]=0,i[(c=r+284|0)>>2]=0,i[c+4>>2]=0,i[(g=r+276|0)>>2]=0,i[g+4>>2]=0,i[t+316>>2]=r+304,i[t+312>>2]=n,i[t+308>>2]=r+296,i[t+304>>2]=l,i[t+300>>2]=r+288,i[t+296>>2]=c,i[t+292>>2]=r+280,i[t+288>>2]=g,r=ae(e,84553,t+288|0),e=i[32972],i[e+272>>2]=r,i[e+276>>2]=0-i[e+276>>2],i[e+284>>2]=0-i[e+284>>2],i[e+292>>2]=0-i[e+292>>2],i[e+300>>2]=0-i[e+300>>2];continue;case 17:r=i[32972],i[(n=r+336|0)>>2]=0,i[n+4>>2]=0,i[(l=r+328|0)>>2]=0,i[l+4>>2]=0,i[(c=r+320|0)>>2]=0,i[c+4>>2]=0,i[(g=r+312|0)>>2]=0,i[g+4>>2]=0,i[t+348>>2]=r+340,i[t+344>>2]=n,i[t+340>>2]=r+332,i[t+336>>2]=l,i[t+332>>2]=r+324,i[t+328>>2]=c,i[t+324>>2]=r+316,i[t+320>>2]=g,e=ae(e,84553,t+320|0),i[i[32972]+308>>2]=e;continue;case 36:r=i[32972],i[t+352>>2]=r+120,i[t+356>>2]=r+124,i[t+1140>>2]=ae(e,87106,t+352|0);continue;case 33:i[t+368>>2]=i[32972]+84,ae(e,87268,t+368|0),Ze(3);continue;case 31:r=i[32972],i[(n=r+156|0)>>2]=0,i[n+4>>2]=0,i[(l=r+148|0)>>2]=0,i[l+4>>2]=0,i[(c=r+140|0)>>2]=0,i[c+4>>2]=0,i[(g=r+132|0)>>2]=0,i[g+4>>2]=0,i[t+412>>2]=r+160,i[t+408>>2]=n,i[t+404>>2]=r+152,i[t+400>>2]=l,i[t+396>>2]=r+144,i[t+392>>2]=c,i[t+388>>2]=r+136,i[t+384>>2]=g,ae(e,84553,t+384|0),e=i[32972],i[e+152>>2]=i[e+152>>2]-40;continue;case 32:i[t+416>>2]=145740,ae(e,87268,t+416|0),Ze(3);continue;case 6:case 7:continue}i[t+16>>2]=t+704,en(M,87359,t+16|0)}}cr(x)}A:{if((e=i[47192])|w){if(w)break A}else e=J(y),i[47192]=e;t:{if(!k){if((0|(e=Pt(t+896|0)))<0&&(i[t>>2]=t+896,en(i[30450],87567,t),e=0),i[i[32972]+60>>2]=e,r=i[47192],i[r+292>>2]=e,Te(r,v,4&A),o[132848])break t;nn(i[47192]),r=0;break e}i[i[32972]+60>>2]=0,i[e+292>>2]=0}a[B+201088|0]=0}r=i[32972]}return j=t+1168|0,r}function ae(e,A,t){var r,n,l,c=0,g=0,u=0,d=0,f=0,p=0,h=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0;j=l=j-16|0,i[l+12>>2]=t,j=c=j-144|0,r=kA(c,0,144),i[r+76>>2]=-1,i[r+44>>2]=e,i[r+32>>2]=18,i[r+84>>2]=e,c=A,M=t,e=0,j=n=j-304|0;e:{A:{t:if(i[r+4>>2]||(Ht(r),i[r+4>>2])){if(!(A=o[0|c]))break e;r:{n:{a:{s:{for(;;){i:{o:if(32==(0|(A&=255))|A-9>>>0<5){for(;A=c,c=c+1|0,32==(0|(t=o[A+1|0]))|t-9>>>0<5;);for(Vt(r,0,0);(0|(t=i[r+4>>2]))==i[r+104>>2]?t=hA(r):(i[r+4>>2]=t+1,t=o[0|t]),32==(0|t)|t-9>>>0<5;);c=i[r+4>>2],(0|(t=i[r+116>>2]))>0|(0|t)>=0&&(c=c-1|0,i[r+4>>2]=c),c=t=c-i[r+44>>2]|0,f=x+i[r+124>>2]|0,f=(g=t>>31)+((t=I+i[r+120>>2]|0)>>>0<I>>>0?f+1|0:f)|0,x=(I=t+c|0)>>>0<t>>>0?f+1|0:f}else{l:{c:{g:{if(37==o[0|c]){if(42==(0|(A=o[c+1|0])))break g;if(37!=(0|A))break c}if(Vt(r,0,0),37!=o[0|c])(0|(A=i[r+4>>2]))==i[r+104>>2]?A=hA(r):(i[r+4>>2]=A+1,A=o[0|A]);else{for(;(0|(A=i[r+4>>2]))==i[r+104>>2]?A=hA(r):(i[r+4>>2]=A+1,A=o[0|A]),32==(0|A)|A-9>>>0<5;);c=c+1|0}if(o[0|c]!=(0|A)){if((0|(t=i[r+116>>2]))>0|(0|t)>=0&&(i[r+4>>2]=i[r+4>>2]-1),(0|A)>=0)break e;if(u=0,G)break e;break t}d=(g=A=i[r+4>>2]-i[r+44>>2]|0)>>31,A=x+i[r+124>>2]|0,u=((t=I+i[r+120>>2]|0)>>>0<I>>>0?A+1|0:A)+d|0,x=(I=t+g|0)>>>0<t>>>0?u+1|0:u,A=c;break o}p=0,A=c+2|0;break l}36!=o[c+2|0]|A-48>>>0>=10?(p=i[M>>2],M=M+4|0,A=c+1|0):(A=o[c+1|0]-48|0,i[12+(t=j-16|0)>>2]=M,A=(A>>>0>1?(A<<2)-4|0:0)+M|0,i[t+8>>2]=A+4,p=i[A>>2],A=c+3|0)}if(h=0,c=0,o[0|A]-48>>>0<10)for(;c=(o[0|A]+C(c,10)|0)-48|0,t=o[A+1|0],A=A+1|0,t-48>>>0<10;);109==(0|(w=o[0|A]))&&(b=0,h=!!(0|p),w=o[A+1|0],e=0,A=A+1|0),A=(t=A)+1|0,g=3,u=h;l:{c:switch(w-65|0){case 39:g=t+2|0,A=(t=104==o[t+1|0])?g:A,g=t?-2:-1;break l;case 43:g=t+2|0,A=(t=108==o[t+1|0])?g:A,g=t?3:1;break l;case 51:case 57:g=1;break l;case 11:g=2;break l;case 41:break l;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 c;default:break r}g=0,A=t}u=g,y=(g=3==(47&(t=o[0|A])))?1:u;l:if(91!=(0|(v=g?32|t:t))){c:{if(110!=(0|v)){if(99!=(0|v))break c;c=(0|c)<=1?1:c;break l}fr(p,y,I,x);break o}for(Vt(r,0,0);(0|(t=i[r+4>>2]))==i[r+104>>2]?t=hA(r):(i[r+4>>2]=t+1,t=o[0|t]),32==(0|t)|t-9>>>0<5;);t=i[r+4>>2],(0|(g=i[r+116>>2]))>0|(0|g)>=0&&(t=t-1|0,i[r+4>>2]=t),g=t=t-i[r+44>>2]|0,f=x+i[r+124>>2]|0,x=(u=t>>31)+((t=I+i[r+120>>2]|0)>>>0<I>>>0?f+1|0:f)|0,x=(I=t+g|0)>>>0<t>>>0?x+1|0:x}if(k=c,Vt(r,c,B=c>>31),(0|(t=i[r+4>>2]))==i[r+104>>2]){if((0|hA(r))<0)break n}else i[r+4>>2]=t+1;(0|(t=i[r+116>>2]))>0|(0|t)>=0&&(i[r+4>>2]=i[r+4>>2]-1),t=16;l:{c:{g:{u:{d:switch(v-88|0){default:if((t=v-65|0)>>>0>6|!(1<<t&113))break l;case 9:case 13:case 14:case 15:if(ee(n+8|0,r,y,0),t=i[r+4>>2]-i[r+44>>2]|0,i[r+120>>2]!=(0-t|0)|i[r+124>>2]!=(0-((t>>31)+!!(0|t)|0)|0))break g;break a;case 3:case 11:case 27:if(115==(16|v)){if(kA(n+32|0,-1,257),a[n+32|0]=0,115!=(0|v))break c;a[n+65|0]=0,a[n+46|0]=0,s[n+42>>1]=0,s[n+44>>1]=0;break c}kA(n+32|0,d=94==(0|(g=o[A+1|0])),257),a[n+32|0]=0,t=d?A+2|0:A+1|0;f:{p:{h:{if(45!=(0|(A=o[(d?2:1)+A|0]))){if(93==(0|A))break h;g=94!=(0|g),A=t;break f}g=94!=(0|g),a[n+78|0]=g;break p}g=94!=(0|g),a[n+126|0]=g}A=t+1|0}for(;;){if(45==(0|(t=o[0|A]))){if(t=45,!(!(d=o[A+1|0])|93==(0|d))){if(u=A+1|0,d>>>0<=(A=o[A-1|0])>>>0)t=d;else for(;a[(A=A+1|0)+(n+32|0)|0]=g,(t=o[0|u])>>>0>A>>>0;);A=u}}else{if(!t)break n;if(93==(0|t))break c}a[33+(t+n|0)|0]=g,A=A+1|0}case 23:t=8;break u;case 12:case 29:t=10;break u;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 l;case 0:case 24:case 32:break u;case 17:}t=0}d=0,f=0,g=0,u=0,w=0,j=E=j-16|0;u:if(1!=(0|t)&t>>>0<=36){for(;(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),32==(0|c)|c-9>>>0<5;);d:{f:switch(c-43|0){case 0:case 2:break f;default:break d}w=45==(0|c)?-1:0,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c])}d:{f:{p:{h:{if(!(!!(0|t)&16!=(0|t)|48!=(0|c))){if((0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),88==(-33&c)){if(t=16,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),o[c+121329|0]<16)break p;(0|(t=i[r+116>>2]))>0|(0|t)>=0&&(i[r+4>>2]=i[r+4>>2]-1),Vt(r,0,0);break u}if(t)break h;t=8;break p}if(!((t=t||10)>>>0>o[c+121329|0])){(0|(t=i[r+116>>2]))>0|(0|t)>=0&&(i[r+4>>2]=i[r+4>>2]-1),Vt(r,0,0),i[56798]=28;break u}}if(10==(0|t)){if((g=c-48|0)>>>0<=9){for(t=0;u=(t=C(t,10)+g|0)>>>0<429496729,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),u&(g=c-48|0)>>>0<=9;);d=t}h:if(!(g>>>0>9)){for(t=rr(d,0,10,0),u=Z;;){if(f=u,u=429496729==(0|(f=(d=t+g|0)>>>0<g>>>0?f+1|0:f))&d>>>0>=2576980378|f>>>0>429496729,(0|(t=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=t+1,c=o[0|t]),u|(g=c-48|0)>>>0>9)break h;if(t=rr(d,f,10,0),!(-1==(0|(u=Z))&~g>>>0>=t>>>0|-1!=(0|u)))break}t=10;break f}if(t=10,g>>>0<=9)break f;break d}}if(t-1&t){if((u=o[c+121329|0])>>>0<t>>>0){for(;d=(g=C(t,g)+u|0)>>>0<119304647,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),d&(u=o[c+121329|0])>>>0<t>>>0;);d=g}if(t>>>0<=u>>>0)break f;for(;;){if(g=rr(d,f,t,0),-1==(0|(k=Z))&~(u&=255)>>>0<g>>>0)break f;if(f=k,f=(d=g+u|0)>>>0<u>>>0?f+1|0:f,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),t>>>0<=(u=o[c+121329|0])>>>0)break f;if(tt(E,t,0,0,0,d,f,0,0),i[E+8>>2]|i[E+12>>2])break}}else{if(k=a[84400+(C(t,23)>>>5&7)|0],(g=o[c+121329|0])>>>0<t>>>0){for(;d=(u=u<<k|g)>>>0<134217728,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),d&(g=o[c+121329|0])>>>0<t>>>0;);d=u}if(!(t>>>0<=g>>>0||(B=31&k,(63&k)>>>0>=32?(u=0,B=-1>>>B|0):B=(u=-1>>>B|0)|(1<<B)-1<<32-B,!u&d>>>0>B>>>0)))for(;;){if(D=255&g,g=d,c=31&k,(63&k)>>>0>=32?(f=g<<c,c=0):(f=(1<<c)-1&g>>>32-c|f<<c,c=g<<c),d=D|c,(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),t>>>0<=(g=o[c+121329|0])>>>0)break f;if(!((0|u)==(0|f)&d>>>0<=B>>>0|u>>>0>f>>>0))break}}}if(!(o[c+121329|0]>=t>>>0)){for(;(0|(c=i[r+4>>2]))==i[r+104>>2]?c=hA(r):(i[r+4>>2]=c+1,c=o[0|c]),o[c+121329|0]<t>>>0;);i[56798]=68,w=0,d=-1,f=-1}}(0|(t=i[r+116>>2]))>0|(0|t)>=0&&(i[r+4>>2]=i[r+4>>2]-1),d=(t=d^w)-w|0,f=((c=w>>31)^f)-((t>>>0<w>>>0)+c|0)|0}else i[56798]=28;if(j=E+16|0,t=i[r+4>>2]-i[r+44>>2]|0,i[r+120>>2]==(0-t|0)&i[r+124>>2]==(0-((t>>31)+!!(0|t)|0)|0))break a;if(!(!p|112!=(0|v))){i[p>>2]=d;break l}fr(p,y,d,f);break l}if(!p)break l;c=i[n+16>>2],t=i[n+20>>2],g=i[n+8>>2],h=i[n+12>>2];g:switch(0|y){case 0:j=f=j-32|0;u:if(0|(u=(d=2147483647&t)-1065418752|0)>>>0<(k=d-1082064896|0)>>>0){if(d=(33554431&t)<<7|c>>>25,k=u=0,!(!u&16777216==(0|(c&=33554431))?!(g|h):!u&c>>>0<16777216)){u=d+1073741825|0;break u}if(u=d+1073741824|0,16777216^c|g|h|k)break u;u=(1&d)+u|0}else(!c&2147418112==(0|d)?!(g|h):d>>>0<2147418112)?(u=2139095040,d>>>0>1082064895||(u=0,(d=d>>>16|0)>>>0<16145||(jA(f+16|0,g,h,c,u=65535&t|65536,d-16129|0),YA(f,g,h,c,u,16257-d|0),c=i[f+8>>2],u=(33554431&i[f+12>>2])<<7|c>>>25,d=i[f>>2]|!!(i[f+16>>2]|i[f+24>>2]|i[f+20>>2]|i[f+28>>2]),h=i[f+4>>2],(!(g=0)&16777216==(0|(c&=33554431))?!(d|h):!g&c>>>0<16777216)?16777216^c|d|g|h||(u=(1&u)+u|0):u=u+1|0))):u=4194303&((33554431&t)<<7|c>>>25)|2143289344;j=f+32|0,i[p>>2]=-2147483648&t|u;break l;case 1:m[p>>3]=tA(g,h,c,t);break l;case 2:break g;default:break l}i[p>>2]=g,i[p+4>>2]=h,i[p+8>>2]=c,i[p+12>>2]=t;break l}g=(E=99!=(0|v))?31:c+1|0;c:if(1!=(0|y)){if(h){if(c=0,!(t=se(g)))break s;for(;;){for(e=t;;){if((0|(t=i[r+4>>2]))==i[r+104>>2]?t=hA(r):(i[r+4>>2]=t+1,t=o[0|t]),!o[33+(t+n|0)|0]){g=0,b=e;break c}if(a[e+c|0]=t,(0|g)==(0|(c=c+1|0)))break}if(u=1,!(t=Oe(e,g=g<<1|1)))break}b=e,e=0;break r}if(c=0,p)for(;;){if((0|(e=i[r+4>>2]))==i[r+104>>2]?e=hA(r):(i[r+4>>2]=e+1,e=o[0|e]),!o[33+(e+n|0)|0]){g=0,b=e=p;break c}a[c+p|0]=e,c=c+1|0}for(;(0|(e=i[r+4>>2]))==i[r+104>>2]?e=hA(r):(i[r+4>>2]=e+1,e=o[0|e]),o[33+(e+n|0)|0];);e=0,b=0,g=0}else{if(t=p,h&&!(t=se(g<<2)))break s;for(i[n+296>>2]=0,i[n+300>>2]=0,c=0;;){e=t;g:{for(;;){if((0|(t=i[r+4>>2]))==i[r+104>>2]?t=hA(r):(i[r+4>>2]=t+1,t=o[0|t]),!o[33+(t+n|0)|0])break g;a[n+27|0]=t,d=n+28|0,t=i[(u=(t=n+296|0)||228604)>>2];u:{d:{f:{p:{if(!(b=n+27|0)){if(t)break p;t=0;break u}if(!t){if((0|(f=(t=o[0|b])<<24>>24))>=0){d&&(i[d>>2]=t),t=!!(0|f);break u}if(!i[i[56841]>>2]){if(t=1,!d)break f;i[d>>2]=57343&f,t=1;break u}if((t=t-194|0)>>>0>50)break p;t=i[124752+(t<<2)>>2];break d}if(w=1,!(((y=(f=o[0|b])>>>3|0)-16|(t>>26)+y)>>>0>7))for(;;){if(w=w-1|0,(0|(t=f-128|t<<6))>=0){i[u>>2]=0,d&&(i[d>>2]=t),t=1-w|0;break u}if(!w)break d;if(128!=(192&(f=o[0|(b=b+1|0)])))break}}i[u>>2]=0,i[56798]=25,t=-1}break u}i[u>>2]=t,t=-2}if(-2!=(0|t)){if(b=0,-1==(0|t))break n;if(e&&(i[(c<<2)+e>>2]=i[n+28>>2],c=c+1|0),!(!h|(0|c)!=(0|g)))break}}if(u=1,t=Oe(e,(g=g<<1|1)<<2))continue;break r}break}if(b=0,g=e,n+296|0&&i[n+296>>2])break n}if(t=i[r+4>>2],(0|(d=i[r+116>>2]))>0|(0|d)>=0&&(t=t-1|0,i[r+4>>2]=t),t=(d=t-i[r+44>>2]|0)+i[r+120>>2]|0,f=i[r+124>>2]+(d>>31)|0,!((f=t>>>0<d>>>0?f+1|0:f)|t)|!(E|(0|t)==(0|k)&(0|f)==(0|B)))break i;h&&(i[p>>2]=e),99!=(0|v)&&(g&&(i[(c<<2)+g>>2]=0),b?a[c+b|0]=0:b=0),e=g}c=t=i[r+4>>2]-i[r+44>>2]|0,u=x+i[r+124>>2]|0,x=(g=t>>31)+((t=I+i[r+120>>2]|0)>>>0<I>>>0?u+1|0:u)|0,x=(I=t+c|0)>>>0<t>>>0?x+1|0:x,G=!!(0|p)+G|0}if(c=A+1|0,A=o[A+1|0])continue;break e}break}e=g;break a}u=1,b=0,e=0;break r}u=h;break A}u=h}if(G)break A}G=-1}u&&(ye(b),ye(e))}return j=n+304|0,j=r+144|0,j=l+16|0,G}function se(e){var A,t=0,r=0,n=0,a=0,s=0,l=0,c=0,g=0,u=0,d=0;j=A=j-16|0;e:{A:{t:{r:{n:{a:{s:{i:{o:{if((e|=0)>>>0<=244){if(3&(t=(l=i[57152])>>>(r=(c=e>>>0<11?16:e+11&-8)>>>3|0)|0)){t=228648+(e=(r=r+(1&~t)|0)<<3)|0,n=i[e+228656>>2],(0|t)!=(0|(e=i[n+8>>2]))?(i[e+12>>2]=t,i[t+8>>2]=e):i[57152]=Zr(-2,r)&l,e=n+8|0,t=r<<3,i[n+4>>2]=3|t,i[4+(t=t+n|0)>>2]=1|i[t+4>>2];break e}if((d=i[57154])>>>0>=c>>>0)break o;if(t){t=228648+(e=(n=un(0-(e=(0-(e=2<<r)|e)&t<<r)&e))<<3)|0,a=i[e+228656>>2],(0|t)!=(0|(e=i[a+8>>2]))?(i[e+12>>2]=t,i[t+8>>2]=e):(l=Zr(-2,n)&l,i[57152]=l),i[a+4>>2]=3|c,n=(e=n<<3)-c|0,i[4+(r=a+c|0)>>2]=1|n,i[e+a>>2]=n,d&&(t=228648+(-8&d)|0,s=i[57157],(e=1<<(d>>>3))&l?e=i[t+8>>2]:(i[57152]=e|l,e=t),i[t+8>>2]=s,i[e+12>>2]=s,i[s+12>>2]=t,i[s+8>>2]=e),e=a+8|0,i[57157]=r,i[57154]=n;break e}if(!(u=i[57153]))break o;for(r=i[228912+(un(0-u&u)<<2)>>2],s=(-8&i[r+4>>2])-c|0,t=r;(e=i[t+16>>2])||(e=i[t+20>>2]);)s=(n=(t=(-8&i[e+4>>2])-c|0)>>>0<s>>>0)?t:s,r=n?e:r,t=e;if(g=i[r+24>>2],(0|(n=i[r+12>>2]))!=(0|r)){e=i[r+8>>2],i[e+12>>2]=n,i[n+8>>2]=e;break A}if(!(e=i[(t=r+20|0)>>2])){if(!(e=i[r+16>>2]))break i;t=r+16|0}for(;a=t,n=e,(e=i[(t=e+20|0)>>2])||(t=n+16|0,e=i[n+16>>2]););i[a>>2]=0;break A}if(c=-1,!(e>>>0>4294967231)&&(c=-8&(e=e+11|0),u=i[57153])){s=0-c|0,l=0,c>>>0<256||(l=31,c>>>0>16777215||(l=62+((c>>>38-(e=w(e>>>8|0))&1)-(e<<1)|0)|0));l:{c:{if(t=i[228912+(l<<2)>>2])for(e=0,r=c<<(31!=(0|l)?25-(l>>>1|0):0);;){if(!((a=(-8&i[t+4>>2])-c|0)>>>0>=s>>>0||(n=t,s=a,a))){s=0,e=t;break c}if(a=i[t+20>>2],t=i[16+((r>>>29&4)+t|0)>>2],e=a?(0|a)==(0|t)?e:a:e,r<<=1,!t)break}else e=0;if(!(e|n)){if(n=0,!(e=(0-(e=2<<l)|e)&u))break o;e=i[228912+(un(e&0-e)<<2)>>2]}if(!e)break l}for(;s=(r=(t=(-8&i[e+4>>2])-c|0)>>>0<s>>>0)?t:s,n=r?e:n,e=(t=i[e+16>>2])||i[e+20>>2];);}if(!(!n|i[57154]-c>>>0<=s>>>0)){if(l=i[n+24>>2],(0|n)!=(0|(r=i[n+12>>2]))){e=i[n+8>>2],i[e+12>>2]=r,i[r+8>>2]=e;break t}if(!(e=i[(t=n+20|0)>>2])){if(!(e=i[n+16>>2]))break s;t=n+16|0}for(;a=t,r=e,(e=i[(t=e+20|0)>>2])||(t=r+16|0,e=i[r+16>>2]););i[a>>2]=0;break t}}}if((e=i[57154])>>>0>=c>>>0){n=i[57157],(t=e-c|0)>>>0>=16?(i[4+(r=n+c|0)>>2]=1|t,i[e+n>>2]=t,i[n+4>>2]=3|c):(i[n+4>>2]=3|e,i[4+(e=e+n|0)>>2]=1|i[e+4>>2],r=0,t=0),i[57154]=t,i[57157]=r,e=n+8|0;break e}if((g=i[57155])>>>0>c>>>0){t=g-c|0,i[57155]=t,e=(r=i[57158])+c|0,i[57158]=e,i[e+4>>2]=1|t,i[r+4>>2]=3|c,e=r+8|0;break e}if(e=0,u=c+47|0,i[57270]?r=i[57272]:(i[57273]=-1,i[57274]=-1,i[57271]=4096,i[57272]=4096,i[57270]=A+12&-16^1431655768,i[57275]=0,i[57263]=0,r=4096),(t=(a=u+r|0)&(s=0-r|0))>>>0<=c>>>0)break e;if((n=i[57262])&&n>>>0<(l=(r=i[57260])+t|0)>>>0|r>>>0>=l>>>0)break e;o:{if(!(4&o[229052])){l:{c:{g:{u:{if(n=i[57158])for(e=229056;;){if((r=i[e>>2])>>>0<=n>>>0&n>>>0<r+i[e+4>>2]>>>0)break u;if(!(e=i[e+8>>2]))break}if(-1==(0|(r=Ir(0))))break l;if(l=t,(e=(n=i[57271])-1|0)&r&&(l=(t-r|0)+(e+r&0-n)|0),l>>>0<=c>>>0)break l;if((n=i[57262])&&n>>>0<(s=(e=i[57260])+l|0)>>>0|e>>>0>=s>>>0)break l;if((0|r)!=(0|(e=Ir(l))))break g;break o}if((0|(r=Ir(l=s&a-g)))==(i[e>>2]+i[e+4>>2]|0))break c;e=r}if(-1==(0|e))break l;if(c+48>>>0<=l>>>0){r=e;break o}if(-1==(0|Ir(r=(r=i[57272])+(u-l|0)&0-r)))break l;l=r+l|0,r=e;break o}if(-1!=(0|r))break o}i[57263]=4|i[57263]}if(-1==(0|(r=Ir(t)))|-1==(0|(e=Ir(0)))|e>>>0<=r>>>0)break r;if((l=e-r|0)>>>0<=c+40>>>0)break r}e=i[57260]+l|0,i[57260]=e,e>>>0>h[57261]&&(i[57261]=e);o:{if(a=i[57158]){for(e=229056;;){if(((n=i[e>>2])+(t=i[e+4>>2])|0)==(0|r))break o;if(!(e=i[e+8>>2]))break}break a}for((e=i[57156])>>>0<=r>>>0&&e||(i[57156]=r),e=0,i[57265]=l,i[57264]=r,i[57160]=-1,i[57161]=i[57270],i[57267]=0;t=228648+(n=e<<3)|0,i[n+228656>>2]=t,i[n+228660>>2]=t,32!=(0|(e=e+1|0)););t=(n=l-40|0)-(e=r+8&7?-8-r&7:0)|0,i[57155]=t,e=e+r|0,i[57158]=e,i[e+4>>2]=1|t,i[4+(r+n|0)>>2]=40,i[57159]=i[57274];break n}if(8&o[e+12|0]|n>>>0>a>>>0|r>>>0<=a>>>0)break a;i[e+4>>2]=t+l,r=(e=a+8&7?-8-a&7:0)+a|0,i[57158]=r,e=(t=i[57155]+l|0)-e|0,i[57155]=e,i[r+4>>2]=1|e,i[4+(t+a|0)>>2]=40,i[57159]=i[57274];break n}n=0;break A}r=0;break t}h[57156]>r>>>0&&(i[57156]=r),t=r+l|0,e=229056;a:{s:{i:{o:{l:{c:{for(;;){if((0|t)!=i[e>>2]){if(e=i[e+8>>2])continue;break c}break}if(!(8&o[e+12|0]))break l}for(e=229056;;){if((t=i[e>>2])>>>0<=a>>>0&&(s=t+i[e+4>>2]|0)>>>0>a>>>0)break o;e=i[e+8>>2]}}if(i[e>>2]=r,i[e+4>>2]=i[e+4>>2]+l,i[4+(u=(r+8&7?-8-r&7:0)+r|0)>>2]=3|c,e=(l=t+(t+8&7?-8-t&7:0)|0)-(g=c+u|0)|0,(0|a)==(0|l)){i[57158]=g,e=i[57155]+e|0,i[57155]=e,i[g+4>>2]=1|e;break s}if(i[57157]==(0|l)){i[57157]=g,e=i[57154]+e|0,i[57154]=e,i[g+4>>2]=1|e,i[e+g>>2]=e;break s}if(1==(3&(s=i[l+4>>2]))){a=-8&s;l:if(s>>>0<=255){if(n=i[l+8>>2],t=s>>>3|0,(0|(r=i[l+12>>2]))==(0|n)){i[57152]=i[57152]&Zr(-2,t);break l}i[n+12>>2]=r,i[r+8>>2]=n}else{if(c=i[l+24>>2],(0|l)==(0|(r=i[l+12>>2])))if((t=i[(s=l+20|0)>>2])||(t=i[(s=l+16|0)>>2])){for(;n=s,(t=i[(s=(r=t)+20|0)>>2])||(s=r+16|0,t=i[r+16>>2]););i[n>>2]=0}else r=0;else t=i[l+8>>2],i[t+12>>2]=r,i[r+8>>2]=t;if(c){n=i[l+28>>2];c:{if(i[(t=228912+(n<<2)|0)>>2]==(0|l)){if(i[t>>2]=r,r)break c;i[57153]=i[57153]&Zr(-2,n);break l}if(i[c+(i[c+16>>2]==(0|l)?16:20)>>2]=r,!r)break l}i[r+24>>2]=c,(t=i[l+16>>2])&&(i[r+16>>2]=t,i[t+24>>2]=r),(t=i[l+20>>2])&&(i[r+20>>2]=t,i[t+24>>2]=r)}}s=i[4+(l=a+l|0)>>2],e=e+a|0}if(i[l+4>>2]=-2&s,i[g+4>>2]=1|e,i[e+g>>2]=e,e>>>0<=255){t=228648+(-8&e)|0,(r=i[57152])&(e=1<<(e>>>3))?e=i[t+8>>2]:(i[57152]=e|r,e=t),i[t+8>>2]=g,i[e+12>>2]=g,i[g+12>>2]=t,i[g+8>>2]=e;break s}if(s=31,e>>>0<=16777215&&(s=62+((e>>>38-(t=w(e>>>8|0))&1)-(t<<1)|0)|0),i[g+28>>2]=s,i[g+16>>2]=0,i[g+20>>2]=0,t=228912+(s<<2)|0,(n=i[57153])&(r=1<<s)){for(s=e<<(31!=(0|s)?25-(s>>>1|0):0),r=i[t>>2];;){if(t=r,(-8&i[r+4>>2])==(0|e))break i;if(r=s>>>29|0,s<<=1,!(r=i[16+(n=(4&r)+t|0)>>2]))break}i[n+16>>2]=g}else i[57153]=r|n,i[t>>2]=g;i[g+24>>2]=t,i[g+12>>2]=g,i[g+8>>2]=g;break s}for(t=(n=l-40|0)-(e=r+8&7?-8-r&7:0)|0,i[57155]=t,e=e+r|0,i[57158]=e,i[e+4>>2]=1|t,i[4+(r+n|0)>>2]=40,i[57159]=i[57274],i[(n=(e=(s+(s-39&7?39-s&7:0)|0)-47|0)>>>0<a+16>>>0?a:e)+4>>2]=27,e=i[57267],i[n+16>>2]=i[57266],i[n+20>>2]=e,e=i[57265],i[n+8>>2]=i[57264],i[n+12>>2]=e,i[57266]=n+8,i[57265]=l,i[57264]=r,i[57267]=0,e=n+24|0;i[e+4>>2]=7,t=e+8|0,e=e+4|0,t>>>0<s>>>0;);if((0|n)==(0|a))break n;if(i[n+4>>2]=-2&i[n+4>>2],s=n-a|0,i[a+4>>2]=1|s,i[n>>2]=s,s>>>0<=255){t=228648+(-8&s)|0,(r=i[57152])&(e=1<<(s>>>3))?e=i[t+8>>2]:(i[57152]=e|r,e=t),i[t+8>>2]=a,i[e+12>>2]=a,i[a+12>>2]=t,i[a+8>>2]=e;break n}if(e=31,s>>>0<=16777215&&(e=62+((s>>>38-(e=w(s>>>8|0))&1)-(e<<1)|0)|0),i[a+28>>2]=e,i[a+16>>2]=0,i[a+20>>2]=0,t=228912+(e<<2)|0,(n=i[57153])&(r=1<<e)){for(e=s<<(31!=(0|e)?25-(e>>>1|0):0),n=i[t>>2];;){if((0|s)==(-8&i[(t=n)+4>>2]))break a;if(r=e>>>29|0,e<<=1,!(n=i[16+(r=(4&r)+t|0)>>2]))break}i[r+16>>2]=a}else i[57153]=r|n,i[t>>2]=a;i[a+24>>2]=t,i[a+12>>2]=a,i[a+8>>2]=a;break n}e=i[t+8>>2],i[e+12>>2]=g,i[t+8>>2]=g,i[g+24>>2]=0,i[g+12>>2]=t,i[g+8>>2]=e}e=u+8|0;break e}e=i[t+8>>2],i[e+12>>2]=a,i[t+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=t,i[a+8>>2]=e}if(!((e=i[57155])>>>0<=c>>>0)){t=e-c|0,i[57155]=t,e=(r=i[57158])+c|0,i[57158]=e,i[e+4>>2]=1|t,i[r+4>>2]=3|c,e=r+8|0;break e}}i[56798]=48,e=0;break e}t:if(l){t=i[n+28>>2];r:{if(i[(e=228912+(t<<2)|0)>>2]==(0|n)){if(i[e>>2]=r,r)break r;u=Zr(-2,t)&u,i[57153]=u;break t}if(i[l+(i[l+16>>2]==(0|n)?16:20)>>2]=r,!r)break t}i[r+24>>2]=l,(e=i[n+16>>2])&&(i[r+16>>2]=e,i[e+24>>2]=r),(e=i[n+20>>2])&&(i[r+20>>2]=e,i[e+24>>2]=r)}t:if(s>>>0<=15)e=s+c|0,i[n+4>>2]=3|e,i[4+(e=e+n|0)>>2]=1|i[e+4>>2];else if(i[n+4>>2]=3|c,i[4+(a=n+c|0)>>2]=1|s,i[a+s>>2]=s,s>>>0<=255)t=228648+(-8&s)|0,(r=i[57152])&(e=1<<(s>>>3))?e=i[t+8>>2]:(i[57152]=e|r,e=t),i[t+8>>2]=a,i[e+12>>2]=a,i[a+12>>2]=t,i[a+8>>2]=e;else{e=31,s>>>0<=16777215&&(e=62+((s>>>38-(e=w(s>>>8|0))&1)-(e<<1)|0)|0),i[a+28>>2]=e,i[a+16>>2]=0,i[a+20>>2]=0,t=228912+(e<<2)|0;r:{if((r=1<<e)&u){for(e=s<<(31!=(0|e)?25-(e>>>1|0):0),c=i[t>>2];;){if((-8&i[(t=c)+4>>2])==(0|s))break r;if(r=e>>>29|0,e<<=1,!(c=i[16+(r=(4&r)+t|0)>>2]))break}i[r+16>>2]=a}else i[57153]=r|u,i[t>>2]=a;i[a+24>>2]=t,i[a+12>>2]=a,i[a+8>>2]=a;break t}e=i[t+8>>2],i[e+12>>2]=a,i[t+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=t,i[a+8>>2]=e}e=n+8|0;break e}A:if(g){t=i[r+28>>2];t:{if(i[(e=228912+(t<<2)|0)>>2]==(0|r)){if(i[e>>2]=n,n)break t;i[57153]=Zr(-2,t)&u;break A}if(i[g+(i[g+16>>2]==(0|r)?16:20)>>2]=n,!n)break A}i[n+24>>2]=g,(e=i[r+16>>2])&&(i[n+16>>2]=e,i[e+24>>2]=n),(e=i[r+20>>2])&&(i[n+20>>2]=e,i[e+24>>2]=n)}s>>>0<=15?(e=s+c|0,i[r+4>>2]=3|e,i[4+(e=e+r|0)>>2]=1|i[e+4>>2]):(i[r+4>>2]=3|c,i[4+(n=r+c|0)>>2]=1|s,i[n+s>>2]=s,d&&(t=228648+(-8&d)|0,a=i[57157],(e=1<<(d>>>3))&l?e=i[t+8>>2]:(i[57152]=e|l,e=t),i[t+8>>2]=a,i[e+12>>2]=a,i[a+12>>2]=t,i[a+8>>2]=e),i[57157]=n,i[57154]=s),e=r+8|0}return j=A+16|0,0|e}function ie(e,A,t,r,n){var s,l=0,c=0,g=0,u=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0;j=s=j-544|0,kA(s+320|0,0,100),kA(s+208|0,0,100),u=t?i[t>>2]:u,C=i[e+12>>2],f=i[36115];e:{A:{t:{r:{for(;;){if(l=(0|(l=o[A+c|0]))>=(0|f)?13:l,a[s+c|0]=l,!l){l=c;break r}if(g=(0|f)<=(0|(g=o[(l=1|c)+A|0]))?13:g,a[l+s|0]=g,!g)break r;if(200==(0|(c=c+2|0)))break}c=198,I=o[s+199|0];break t}if(!l)break A;I=o[s+(c=l-1|0)|0],1!=(0|l)&&(c=l-2|0)}if(B=8&u,i[s+536>>2]=(B>>>3|0?3:7)&u,u=o[s+c|0],f=1,h=(0|(p=Ne(e,s,s+432|0,s+540|0,s+536|0,1)))>=0?p:0,k=o[0|s])for(c=s,l=k;l=i[144464+((255&l)<<2)>>2],2==o[l+11|0]&&(1048576&(l=i[l+4>>2])||(g=(2097152&l)>>>21|0,g|=l=12==o[i[144464+(o[0|(m=c+1|0)]<<2)>>2]+10|0],a[(s+208|0)+f|0]=g,b=i[144464+(o[(l?2:1)+c|0]<<2)>>2],g=o[b+11|0]-10>>>0<4294967289|!(32&o[b+6|0])&2==o[i[144464+(o[(l?3:2)+c|0]<<2)>>2]+11|0]?g:g?2:1,c=l?m:c,a[(s+320|0)+f|0]=g,f=f+1|0)),l=o[0|(c=c+1|0)];);c=t=t?h:p;t:{r:{n:{a:{s:{i:{o:{l:{c:{g:{u:{d:switch(i[e+8>>2]-1|0){case 11:if((0|(t=i[s+540>>2]))<2)break c;if(c=1,h=1&(l=t-1|0),2!=(0|t))break u;f=0;break g;case 8:if((0|(l=i[s+540>>2]))<2)break r;if(f=3&(g=l-1|0),c=1,l-2>>>0>=3)for(h=-4&g,g=0;u=a[0|(l=(s+432|0)+c|0)],a[0|l]=(0|u)<0?4:u,u=a[l+1|0],a[l+1|0]=(0|u)<0?4:u,u=a[l+2|0],a[l+2|0]=(0|u)<0?4:u,u=l,l=a[l+3|0],a[u+3|0]=(0|l)<0?4:l,c=c+4|0,(0|h)!=(0|(g=g+4|0)););if(!f)break r;for(l=0;g=a[0|(u=(s+432|0)+c|0)],a[0|u]=(0|g)<0?4:g,c=c+1|0,(0|f)!=(0|(l=l+1|0)););break r;case 7:if(!o[s+322|0]|a[s+321|0]>0)break r;case 0:if(i[s+536>>2]|i[s+540>>2]<3)break r;if(i[s+536>>2]=2,c=4,t)break t;a[s+434|0]=4;break t;case 1:if(i[s+536>>2])break t;f:{p:{if((0|(f=i[s+540>>2]))>=3){t=f-2|0,i[s+536>>2]=t,c=t;h:if(512&C&&(l=i[144464+(I<<2)>>2],2!=(0|(g=o[l+11|0])))){c=i[l>>2],l=s;m:{C:{if(26977!=(0|(h=i[e+212>>2]))){if(24942!=(0|h))break C;b:switch(c-110|0){case 0:case 5:if(c=t,2==o[i[144464+(u<<2)>>2]+11|0])break h}c=f-1|0;break m}if(115==(0|c)&&(c=t,2==o[i[144464+(u<<2)>>2]+11|0]))break h;c=f-1|0;break m}C:{b:{if(115==(0|c)){if(c=t,8!=(0|(g=o[i[144464+(u<<2)>>2]+11|0])))break b;break h}if(8!=(0|g))break C;g=o[i[144464+(u<<2)>>2]+11|0]}if(c=t,2==(255&g))break h}c=f-1|0}i[l+536>>2]=c}if(524288&C&&(a[(l=f-1|0)+(f=s+208|0)|0]<=a[t+f|0]||(i[s+536>>2]=l,c=l)),o[(s+432|0)+c|0]>1){l=c;break f}if(l=2,t=c-1|0,c>>>0>=2)break p;i[s+536>>2]=c+1;break f}t=1}l=t,i[s+536>>2]=l}if(c=4,a[0|(t=(s+432|0)+l|0)]>=0)break t;if(a[(l=(s+432|0)+l|0)-1|0]>=4&a[l+1|0]>3)break t;a[0|t]=4;break t;case 2:if(i[s+536>>2])break t;for(t=(c=i[s+540>>2])-1|0,t&=t>>31;;){if((0|(c=c-1|0))<=0)break n;if(!(a[0|(l=(s+432|0)+c|0)]>=0))break}i[s+536>>2]=c,c=4,a[0|l]=4;break t;case 3:if(i[s+536>>2])break r;if(l=(0|(c=i[s+540>>2]-3|0))<=1?1:c,i[s+536>>2]=l,c=4,t)break t;a[l+(s+432|0)|0]=4;break t;case 4:if(i[s+536>>2])break t;if(l=(t=i[s+540>>2])-3|0,i[s+536>>2]=l,(0|t)<=15){f:{p:switch(o[i[144464+(I<<2)>>2]+11|0]-2|0){case 0:l=a[t+94176|0];break f;case 2:l=a[t+94192|0];break f}l=a[t+94160|0]}i[s+536>>2]=l}c=4,a[(s+432|0)+l|0]=4;break t;case 5:if(i[s+536>>2])break t;if(f=-1,g=0,!((0|(t=(l=i[s+540>>2])-1|0))<2)){if(c=1,m=1&l,3!=(0|l))for(b=(-2&l)-4|0,l=0;a[(s+432|0)+c|0]<0&&(g=(u=(0|(h=a[(s+320|0)+c|0]))<(0|f))?g:c,f=u?f:h),a[(u=c+1|0)+(s+432|0)|0]<0&&(g=(h=(0|(x=a[u+(s+320|0)|0]))<(0|f))?g:u,f=h?f:x),c=c+2|0,u=(0|l)!=(0|b),l=l+2|0,u;);!m|a[(s+432|0)+c|0]>=0||(f=(l=(0|(u=a[(s+320|0)+c|0]))<(0|f))?f:u,g=l?g:c)}i[s+536>>2]=g,2!=o[t+(s+320|0)|0]|(0|f)>1?(0|f)>0||(g=1,i[s+536>>2]=1):(i[s+536>>2]=t,g=t),c=4,a[(s+432|0)+g|0]=4;break t;case 14:break a;case 12:break s;case 6:break d;default:break t}if(i[s+536>>2])break t;f=(t=i[s+540>>2])-1|0,i[s+536>>2]=f;d:if(!((0|t)<2))for(c=1;;){if(1==o[(s+432|0)+c|0]){f=c-1|0,i[s+536>>2]=f;break d}if((0|t)==(0|(c=c+1|0)))break}c=4,a[(s+432|0)+f|0]=4;break t}for(m=-2&l,f=0,g=0;l=o[0|(b=(u=s+432|0)+c|0)],w=b,x=a[(b=s+208|0)+c|0]>0,a[0|w]=x||4==(0|l)?3:l,v=4==(0|(u=o[0|(w=(l=c+1|0)+u|0)]))?3:u,u=a[l+b|0]>0,a[0|w]=u?3:v,f=u?l:x?c:f,c=c+2|0,(0|m)!=(0|(g=g+2|0)););}if(h&&(u=4==(0|(l=o[0|(g=(s+432|0)+c|0)]))?3:l,l=a[(s+208|0)+c|0]>0,a[0|g]=l?3:u,f=l?c:f),l=i[s+536>>2])break i;if((0|f)>0){i[s+536>>2]=f,l=f;break i}if((0|t)<6)break l;l=t-3|0;break o}if(l=i[s+536>>2])break i}l=t-1|0}i[s+536>>2]=l}c=4,a[(s+432|0)+l|0]=4;break t}if(i[s+536>>2])break t;l=1,i[s+536>>2]=1,o[s+209|0]|i[s+540>>2]<3|a[s+210|0]<=0||(l=2,i[s+536>>2]=2),c=4,a[s+432|l]=4;break t}if(i[s+536>>2])break r;if((0|(l=i[s+540>>2]))<3)break r;if(kA(s+432|1,0,l-1|0),i[s+536>>2]=2,t||(a[s+434|0]=4),c=4,l>>>0<4)break t;a[431+(l+s|0)|0]=3;break t}i[s+536>>2]=t,c=4;break t}c=t}!(256&C)|2&n||(0|(t=i[s+540>>2]))<3|(0|p)>2||4!=o[0|(l=(t=t+(s+432|0)|0)-1|0)]|2!=o[i[144464+(I<<2)>>2]+11|0]||(a[0|l]=1,a[t-2|0]=4);t:{r:{if(B)p=i[s+540>>2];else{if(t=a[s+433|0],!(!(4096&C)|3!=(0|(p=i[s+540>>2])))){if(4==(0|t)){a[s+434|0]=3;break r}if(4==o[s+434|0]){a[s+433|0]=3;break r}}if(!(!(8192&C)|(0|t)>=0|(0|p)<4|a[s+434|0]<4)){a[s+433|0]=3;break r}}if(g=0,(0|p)<2)break t}for(f=(0|c)<4?4:3,b=128&C,x=64&C,w=32&C,h=p-1|0,v=16&C,y=!(32768&C),I=0,u=0,c=1;;){r:{n:if((0|(l=a[0|(m=(s+432|0)+c|0)]))>=0)g=f;else{g=3;a:{s:if(!(!(!v|(0|f)>3)&(0|c)==(0|h))){if(!(1&(I|y)))break a;if(!(a[431+(s+c|0)|0]>1)){if((0|(l=a[(t=c+1|0)+(s+432|0)|0]))>=2){if(4!=(0|f))break s;if(g=4,l>>>0>=3)break s}else if(!(!w|3!=(0|f))){f=3;break r}if(!x|c>>>0<2)break a;if(g=o[(s+320|0)+c|0])break a;if((0|h)>(0|(l=c))){for(;;){if(a[(s+320|0)+l|0]>0)break r;if((0|h)==(0|(l=l+1|0)))break}if(g)break a}if(a[t+(s+320|0)|0]<=0)break a;break r}g=f}l=o[0|m];break n}a[0|m]=f,I=1,g=3,l=f}n:{if(l<<24>>24>=4){if(t=u||c,!u|!b)break n;a[0|m]=3}f=g;break r}f=g,u=t}if(g=1,(0|p)==(0|(c=c+1|0)))break}}if(r=!B|(0|r)>=0?r:i[((0|p)<3?16:20)+e>>2],f=0,l=0,g){if(I=3&(t=p-1|0),g=0,p-2>>>0<3)c=1;else for(B=-4&t,c=1,u=0;l=(t=(0|(l=(m=(0|(l=(h=(0|(l=(p=(0|(h=a[(t=s+432|0)+c|0]))<(0|l))?l:h))>(0|(m=a[(b=c+1|0)+t|0])))?l:m))>(0|(w=a[(x=c+2|0)+t|0])))?l:w))>(0|(v=a[(w=c+3|0)+t|0])))?l:v,f=t?m?h?p?f:c:b:x:w,c=c+4|0,(0|B)!=(0|(u=u+4|0)););if(I)for(;l=(t=(0|(u=a[(s+432|0)+c|0]))<(0|l))?l:u,f=t?f:c,c=c+1|0,(0|I)!=(0|(g=g+1|0)););}if((0|r)<0?r=l:(0|r)<=(0|l)&(0|l)>4||(a[(s+432|0)+f|0]=r),I=A+197|0,p=1,!(1&n)&&(t=i[144464+(k<<2)>>2])){if(l=s,!(1!=(0|(g=o[t+11|0]))&15!=(0|k)))for(;t=o[0|(l=l+1|0)],1==(0|(g=o[i[144464+(t<<2)>>2]+11|0]))|15==(0|t););!(48&(t=i[e+4>>2]))|2!=(0|g)||(a[0|A]=(32&t)>>>5|0&&a[s+433|0]>3?11:23,A=A+1|0)}t:if(!(A>>>0>=I>>>0))for(h=65536&C,m=2&C,B=4&C,c=s;;){if(!(l=o[0|c]))break t;if(n=c,c=c+1|0,t=i[144464+(l<<2)>>2]){r:{n:{a:switch(o[t+11|0]){case 0:i[e+8200>>2]=0;break r;case 2:if(!(16&o[t+6|0]))break n}if(20!=o[0|c])break r}if((0|(k=i[s+540>>2]))<(0|p))break e;u=a[0|(C=(s+432|0)+p|0)],i[e+8200>>2]=u;n:{a:{if(!((0|(t=u))>1)){if(g=k-1|0,!(!B|(0|p)<2|(0|r)<2)&&(t=0,(0|g)==(0|p)))break a;if(t=1,!(1==(0|p)|m|(k-2|0)==(0|p)&a[g+(s+432|0)|0]<2|(0|g)==(0|p)||a[431+(s+p|0)|0]>=0&&(t=u,h))){t=0,a[0|C]=0;break a}}if(t&&(0|t)<2)break n}a[0|A]=o[t+94151|0],A=A+1|0,u=a[0|C]}g=(0|r)>(0|u),12==o[0|c]&&1&(k=i[e+28>>2])&&(c=(16&k?(0|f)!=(0|p):(0|t)<4)?n+2|0:c),r=g?r:u,p=p+1|0}if(1!=(0|l)&&(a[0|A]=l,A=A+1|0),!(A>>>0<I>>>0))break}}a[0|A]=0}return void(j=s+544|0)}D(86136,86634,1353,94208),d()}function oe(e,A,t,r,n,a,s,o,l){var c,g=0,u=0,d=0,f=0,p=0,m=0,C=0,b=0,I=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0,Y=0,H=0,R=0;j=c=j-336|0,f=o,m=65535&l,p=r,d=65535&n,x=-2147483648&(n^l);e:{if(!((I=l>>>16&32767)-32767>>>0>4294934529&(C=n>>>16&32767)-32767>>>0>=4294934530)){if(!(!r&2147418112==(0|(g=2147483647&n))?!(A|t):g>>>0<2147418112)){b=r,x=32768|n;break e}if(!(!o&2147418112==(0|(n=2147483647&l))?!(a|s):n>>>0<2147418112)){b=o,x=32768|l,A=a,t=s;break e}if(!(A|r|2147418112^g|t)){if(!(a|o|2147418112^n|s)){A=0,t=0,x=2147450880;break e}x|=2147418112,A=0,t=0;break e}if(!(a|o|2147418112^n|s)){A=0,t=0;break e}if(!(A|r|t|g)){b=(A=!(a|o|n|s))?0:b,x=A?2147450880:x,A=0,t=0;break e}if(!(a|o|n|s)){x|=2147418112,A=0,t=0;break e}65535==(0|g)|g>>>0<65535&&(l=r=!(d|p),g=r?A:p,o=r<<=6,jA(c+320|0,A,t,p,d,(r=r+(32==(0|(l=w(l?t:d)))?w(g)+32|0:l)|0)-15|0),B=16-r|0,p=i[c+328>>2],d=i[c+332>>2],t=i[c+324>>2],A=i[c+320>>2]),n>>>0>65535||(o=r=!(f|m),l=r?a:f,n=r<<=6,jA(c+304|0,a,s,f,m,(r=r+(32==(0|(o=w(o?s:m)))?w(l)+32|0:o)|0)-15|0),B=(r+B|0)-16|0,f=i[c+312>>2],m=i[c+316>>2],a=i[c+304>>2],s=i[c+308>>2])}if(G=n=65536|m,D=f,g=n<<15|(r=f)>>>17,tt(c+288|0,r=n=r<<15|s>>>17,o=g,0,0,l=0-r|0,g=1963258675-(g+!!(0|r)|0)|0,0,0),tt(c+272|0,0-(r=i[c+296>>2])|0,0-(i[c+300>>2]+!!(0|r)|0)|0,0,0,l,g,0,0),tt(c+256|0,l=(r=i[c+280>>2])<<1|i[c+276>>2]>>>31,r=i[c+284>>2]<<1|r>>>31,0,0,n,o,0,0),tt(c+240|0,l,r,0,0,0-(g=i[c+264>>2])|0,0-(i[c+268>>2]+!!(0|g)|0)|0,0,0),tt(c+224|0,g=(l=i[c+248>>2])<<1|i[c+244>>2]>>>31,r=i[c+252>>2]<<1|l>>>31,0,0,n,o,0,0),tt(c+208|0,g,r,0,0,0-(l=i[c+232>>2])|0,0-(i[c+236>>2]+!!(0|l)|0)|0,0,0),tt(c+192|0,l=(r=i[c+216>>2])<<1|i[c+212>>2]>>>31,r=i[c+220>>2]<<1|r>>>31,0,0,n,o,0,0),tt(c+176|0,l,r,0,0,0-(g=i[c+200>>2])|0,0-(i[c+204>>2]+!!(0|g)|0)|0,0,0),tt(c+160|0,l=n,r=o,0,0,o=(f=(n=i[c+184>>2])<<1|i[c+180>>2]>>>31)-1|0,n=(i[c+188>>2]<<1|n>>>31)-!f|0,0,0),tt(c+144|0,a<<15,s<<15|a>>>17,0,0,r=o,n,0,0),k=c+112|0,E=i[c+168>>2],o=i[c+172>>2],u=(f=i[c+160>>2])+(l=i[c+152>>2])|0,g=(m=i[c+164>>2])+i[c+156>>2]|0,l=g=l>>>0>u>>>0?g+1|0:g,g=(g=(0|m)==(0|g)&u>>>0<f>>>0|g>>>0<m>>>0)>>>0>(m=g+E|0)>>>0?o+1|0:o,tt(k,r,n,0,0,0-(o=(f=!l&u>>>0>1|!!(0|l))+m|0)|0,0-(!!(0|o)+(g=f>>>0>o>>>0?g+1|0:g)|0)|0,0,0),tt(c+128|0,1-u|0,0-((u>>>0>1)+l|0)|0,0,0,r,n,0,0),S=(C-I|0)+B|0,k=n=i[c+116>>2],f=(r=i[c+112>>2])<<1,C=g=n<<1|r>>>31,r=g,M=o=i[c+140>>2],r=r+(g=o<<1|(n=i[c+136>>2])>>>31)|0,n=r=(o=(l=n<<1|i[c+132>>2]>>>31)+f|0)>>>0<l>>>0?r+1|0:r,y=r=r-(o>>>0<13927)|0,E=r,N=g=65536|d,O=p,Y=(r=p)<<1,H=g=g<<1|r>>>31,T=g,P=r=rr(y,u=0,g,0),v=g=Z,B=A<<1,I=r=t<<1|A>>>31,m=g=0,y=(0|n)==(0|y)&(l=o-13927|0)>>>0<o>>>0|n>>>0>y>>>0,n=(0|n)==(0|C)&o>>>0<f>>>0|n>>>0<C>>>0,r=i[c+120>>2],g=o=i[c+124>>2]<<1|r>>>31,g=(r=(u=M>>>31|0)+(r=r<<1|k>>>31)|0)>>>0<u>>>0?g+1|0:g,u=(o=r)>>>0>(r=r+n|0)>>>0?g+1|0:g,u=(n=r)>>>0>(r=r+y|0)>>>0?u+1|0:u,n=r-1|0,g=rr(I,m,y=u-!r|0,C=0),o=Z+v|0,k=(0|v)==(0|(o=(r=g+P|0)>>>0<g>>>0?o+1|0:o))&r>>>0<P>>>0|o>>>0<v>>>0,M=n,n=rr(n,g=0,Q=(L=t>>>31|0)|p<<1,v=0),g=Z+o|0,u=0,f=g=n>>>0>(p=n+r|0)>>>0?g+1|0:g,u=(n=r=(0|g)==(0|o)&r>>>0>p>>>0|o>>>0>g>>>0)>>>0>(r=r+k|0)>>>0?1:u,n=rr(T,m,y,C),g=Z+u|0,k=r=n+r|0,r=r>>>0<n>>>0?g+1|0:g,n=rr(T,m,M,v),d=Z,o=n,n=rr(Q,v,y,C),g=Z+d|0,n=g=n>>>0>(u=o+n|0)>>>0?g+1|0:g,r=r+(g=(0|d)==(0|g)&o>>>0>u>>>0|g>>>0<d>>>0)|0,k=d=k+n|0,d=r=d>>>0<n>>>0?r+1|0:r,g=u+f|0,n=g=(r=(n=0)+p|0)>>>0<n>>>0?g+1|0:g,o=(0|g)==(0|f)&r>>>0<p>>>0|g>>>0<f>>>0,g=d,u=o,z=o=o+k|0,u=g=u>>>0>o>>>0?g+1|0:g,k=r,d=r,p=n,P=l,r=rr(l,0,Q,v),o=Z,n=r,l=rr(E,b,I,b),g=Z+o|0,l=(0|o)==(0|(g=(r=r+l|0)>>>0<l>>>0?g+1|0:g))&r>>>0<n>>>0|o>>>0>g>>>0,o=g,n=rr(M,v,F=-2&B,0),g=Z+g|0,n=g=n>>>0>(f=n+r|0)>>>0?g+1|0:g,r=(0|g)==(0|o)&r>>>0>f>>>0|o>>>0>g>>>0,o=0,r=((l=r+l|0)>>>0<r>>>0?1:o)+p|0,g=u,l=r=(d=l+d|0)>>>0<l>>>0?r+1|0:r,o=r=(0|r)==(0|p)&d>>>0<k>>>0|r>>>0<p>>>0,R=r=r+z|0,k=g=o>>>0>r>>>0?g+1|0:g,r=rr(T,m,P,b),z=Z,T=r,o=rr(y,C,F,b),g=Z+z|0,p=r=r+o|0,u=r+(m=rr(E,b,Q,v))|0,r=(o=r>>>0<o>>>0?g+1|0:g)+Z|0,r=u>>>0<m>>>0?r+1|0:r,C=u,m=u+(g=rr(I,b,M,v))|0,u=Z+r|0,Q=(0|r)==(0|(u=g>>>0>m>>>0?u+1|0:u))&m>>>0<C>>>0|r>>>0>u>>>0,g=((r=(r=(r=(0|r)==(0|o)&p>>>0>C>>>0|r>>>0<o>>>0)+(g=(0|o)==(0|z)&p>>>0<T>>>0|o>>>0<z>>>0)|0)+Q|0)|(M=0))+l|0,p=g=(o=u)>>>0>(C=o+d|0)>>>0?g+1|0:g,r=(0|l)==(0|g)&d>>>0>C>>>0|l>>>0>g>>>0,g=k,o=r,M=r=r+R|0,l=g=o>>>0>r>>>0?g+1|0:g,r=rr(E,b,F,b),E=Z,d=r,o=rr(I,b,P,b),g=Z+E|0,o=(0|(g=(r=r+o|0)>>>0<o>>>0?g+1|0:g))==(0|E)&r>>>0<d>>>0|g>>>0<E>>>0,d=g,r=g+f|0,g=(o|(k=0))+n|0,d=(0|n)==(0|(g=r>>>0<d>>>0?g+1|0:g))&r>>>0<f>>>0|n>>>0>g>>>0,u=(o=g)+(g=m)|0,g=0,g=((n=r=(0|o)==(0|(u=(f=(m=0)+r|0)>>>0<m>>>0?u+1|0:u))&r>>>0>f>>>0|o>>>0>u>>>0)>>>0>(r=r+d|0)>>>0?1:g)+p|0,u=l,n=g=(n=r)>>>0>(r=r+C|0)>>>0?g+1|0:g,l=u=(l=o=(0|p)==(0|g)&r>>>0<C>>>0|g>>>0<p>>>0)>>>0>(o=o+M|0)>>>0?u+1|0:u,131071==(0|u)|u>>>0<131071?(O=Y|L,N=v|H,tt(c+80|0,r,n,o,l,a,s,D,G),m=u=i[c+84>>2],g=A<<17,p=(t=(f=0)-(d=i[c+88>>2])|0)-(u=!!(u|(A=i[c+80>>2])))|0,d=(g-(i[c+92>>2]+(d>>>0>f>>>0)|0)|0)-(t>>>0<u>>>0)|0,f=0-A|0,m=0-(!!(0|A)+m|0)|0,A=S+16382|0):(tt(c+96|0,r=(1&n)<<31|r>>>1,n=o<<31|n>>>1,o=(1&l)<<31|o>>>1,l=l>>>1|0,a,s,D,G),I=p=i[c+100>>2],p=(f=0-(B=i[c+104>>2])|0)-(d=!!(p|(u=i[c+96>>2])))|0,d=((A<<16)-(i[c+108>>2]+(m>>>0<B>>>0)|0)|0)-(d>>>0>f>>>0)|0,f=0-u|0,m=0-(!!(0|u)+I|0)|0,B=A,I=t,A=S+16383|0),(0|A)>=32767)x|=2147418112,A=0,t=0;else{if((0|A)>0)u=d<<1|p>>>31,p=p<<1|m>>>31,d=u,B=o,I=65535&l|A<<16,u=m<<1|f>>>31,l=f<<1;else{if((0|A)<=-113){A=0,t=0;break e}YA(c- -64|0,r,n,o,l,1-A|0),jA(c+48|0,B,I,O,N,A+112|0),tt(c+32|0,a,s,D,G,r=i[c+64>>2],n=i[c+68>>2],B=i[c+72>>2],I=i[c+76>>2]),A=i[c+40>>2],f=(t=i[c+56>>2])-(p=A<<1|(u=i[c+36>>2])>>>31)|0,d=i[c+60>>2]-((i[c+44>>2]<<1|A>>>31)+(t>>>0<p>>>0)|0)|0,g=(A=i[c+32>>2])<<1,p=f-(A=(0|(o=u<<1|A>>>31))==(0|(l=i[c+52>>2]))&g>>>0>(t=i[c+48>>2])>>>0|o>>>0>l>>>0)|0,d=d-(A>>>0>f>>>0)|0,u=l-((t>>>0<g>>>0)+o|0)|0,l=t-g|0}A=l,tt(c+16|0,a,s,D,G,3,0,0,0),tt(c,a,s,D,G,5,0,0,0),o=u+(t=0)|0,o=l>>>0>(A=A+(g=1&r)|0)>>>0?o+1|0:o,l=A,s=(0|s)==(0|o)&A>>>0>a>>>0|s>>>0<o>>>0,u=d,A=(0|t)==(0|o)&A>>>0<g>>>0|t>>>0>o>>>0,g=n,t=g=(t=A=(A=(0|(u=A>>>0>(a=A+p|0)>>>0?u+1|0:u))==(0|G))&(0|a)==(0|D)?s:A&a>>>0>D>>>0|u>>>0>G>>>0)>>>0>(A=A+r|0)>>>0?g+1|0:g,r=(0|n)==(0|g)&A>>>0<r>>>0|n>>>0>g>>>0,g=I,g=(n=r)>>>0>(r=r+B|0)>>>0?g+1|0:g,s=r,d=(0|(n=i[c+20>>2]))==(0|o)&h[c+16>>2]<l>>>0|n>>>0<o>>>0,n=i[c+28>>2],n=g>>>0<2147418112&((0|(r=i[c+24>>2]))==(0|a)&(0|n)==(0|u)?d:(0|n)==(0|u)&r>>>0<a>>>0|n>>>0<u>>>0),r=t,g=(t=A=(0|t)==(0|(r=(d=n)>>>0>(n=A+n|0)>>>0?r+1|0:r))&A>>>0>n>>>0|t>>>0>r>>>0)>>>0>(A=A+s|0)>>>0?g+1|0:g,s=A,o=(0|(t=i[c+4>>2]))==(0|o)&h[c>>2]<l>>>0|t>>>0<o>>>0,t=i[c+12>>2],t=u=(t=A=g>>>0<2147418112&((0|(A=i[c+8>>2]))==(0|a)&(0|t)==(0|u)?o:(0|t)==(0|u)&A>>>0<a>>>0|t>>>0<u>>>0))>>>0>(A=A+n|0)>>>0?r+1|0:r,n=(0|r)==(0|u)&A>>>0<n>>>0|r>>>0>u>>>0,r=g,a=n,b|=n=n+s|0,x|=r=a>>>0>n>>>0?r+1|0:r}}i[e>>2]=A,i[e+4>>2]=t,i[e+8>>2]=b,i[e+12>>2]=x,j=c+336|0}function le(e,A,t,r,n){var s,l,c,g=0,u=0,d=0,f=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0;if(j=l=j-80|0,c=i[t+8>>2],!n|!p[t+4>>1]||(i[n+8>>2]=0),s=kA(r,0,152),i[s+44>>2]=o[c+14|0],i[s+40>>2]=o[c+15|0],r=p[c+8>>1]){for(r=i[34459]+(r<<1)|0,w=256&A,k=t+32|0,v=t-32|0,y=t- -64|0,E=t+96|0,M=t+-64|0,G=t-28|0,D=1&A,Q=t-24|0,x=i[30450];;){g=15&(h=(A=p[r>>1])>>>8|0);e:{A:{t:{r:{n:{a:{s:{i:{o:{l:{c:{g:switch(0|(d=A>>>12|0)){case 10:break s;case 9:break i;case 6:break o;case 2:case 3:break l;case 1:break c;case 0:break g;case 11:case 12:case 13:case 14:case 15:break a;default:break n}u=255&A;g:{u:{d:switch(0|g){case 13:if(u)break u;g=r,A=0;break g;case 0:g=r;f:switch(u-1|0){case 1:break e;case 0:break A}i[l+20>>2]=Kr(l+75|0,i[c>>2]),i[l+16>>2]=A,en(x,85851,l+16|0);break e;case 5:if(2!=o[i[144464+(o[t+34|0]<<2)>>2]+11|0])break e;i[s+20>>2]=u;break e;case 12:break d;default:break r}i[s+44>>2]=i[s+44>>2]+(A<<24>>31&-256|u);break e}a[s+132|0]=o[r+3|0],g=r+2|0,a[s+133|0]=o[0|g],A=2,u>>>0<3||(a[s+134|0]=o[r+5|0],g=r+4|0,a[s+135|0]=o[0|g],A=4,u>>>0<5||(a[s+136|0]=o[r+7|0],g=r+6|0,a[s+137|0]=o[0|g],A=6,u>>>0<7||(a[s+138|0]=o[r+9|0],g=r+8|0,a[s+139|0]=o[0|g],A=8,u>>>0<9||(a[s+140|0]=o[r+11|0],g=r+10|0,a[s+141|0]=o[0|g],A=10,u>>>0<11||(a[s+142|0]=o[r+13|0],g=r+12|0,a[s+143|0]=o[0|g],A=12,u>>>0<13||(a[s+144|0]=o[r+15|0],g=r+14|0,a[s+145|0]=o[0|g],A=14,u>>>0<15||(a[s+146|0]=o[r+17|0],g=r+16|0,a[s+147|0]=o[0|g],A=16)))))))}a[132+(A+s|0)|0]=0,u=C;break A}if(!e|g>>>0>7)break e;if(d=t,2!=o[i[144464+(o[t+2|0]<<2)>>2]+11|0]&&(d=k,2!=o[i[144464+(o[t+34|0]<<2)>>2]+11|0]))break e;if(!(1&(g=i[e+56>>2]))&&16&o[0|t])break e;u=15&o[d+3|0],u=2&g&&o[d+6|0]<=u>>>0?4:u;c:{g:{u:{d:switch((g=7&h)-3|0){case 1:break g;case 0:break d;default:break u}if(u>>>0>3)break c;break e}if(i[102832+(g<<2)>>2]>(0|u))break c;break e}if(o[d+6|0]>u>>>0)break e}i[s+8>>2]=255&A,u=1;break t}if(8192==(57344&A)){for(T=i[32972],h=1,B=0;;){f=255&A,g=(m=4095&A)>>>8|0;l:if(m>>>0<=3583){6==(0|(u=(g>>>0)%7|0))&&(u=p[r+2>>1]),I=0,g=t;c:{g:{u:switch(0|u){case 6:if(d=0,p[t+36>>1]|p[t+68>>1])break l;case 3:g=y;break g;case 9:if(d=0,p[t+36>>1]|p[t+68>>1])break l;if(g=E,!p[t+100>>1])break c;break l;case 7:if(d=0,p[t+36>>1])break l;for(u=1;;){if(2==o[i[144464+(o[2+(g=(u<<5)+t|0)|0]<<2)>>2]+11|0])break g;if(p[4+(((u=u+1|0)<<5)+t|0)>>1])break}break l;case 5:if(d=0,p[t+4>>1])break l;case 0:I=1,g=v;break g;case 4:if(d=0,p[t+36>>1])break l;case 2:g=k;break g;case 8:if(d=0,!n)break l;if(I=1,i[(g=n)+8>>2])break c;break l;case 10:break u;default:break g}if(d=0,p[t+4>>1]|p[G>>1])break l;I=1,g=M;break c}g:switch(0|u){case 0:case 5:break g;default:break c}g=(1==o[g+2|0]?-32:0)+g|0}if(w?(u=i[144464+(o[g+2|0]<<2)>>2],i[g+8>>2]=u):u=i[g+8>>2],m>>>0<=1791){if(d=1,i[i[144464+(f<<2)>>2]>>2]==i[u>>2])break l;if(!(!I|2!=o[u+11|0])){d=(0|f)==o[u+13|0];break l}d=(0|f)==o[u+12|0];break l}f=31&m,d=0;c:switch(m>>>5&7){case 0:d=(0|f)==o[u+11|0];break l;case 1:d=(0|f)==(15&p[u+6>>1]);break l;case 2:d=i[u+4>>2]>>>f&1;break l;case 4:break c;default:break l}c:switch(0|f){case 0:case 1:case 2:case 3:case 4:if(2!=o[i[144464+(o[g+2|0]<<2)>>2]+11|0]){if(2!=o[i[144464+(o[g+34|0]<<2)>>2]+11|0])break l;g=g+32|0}u=15&o[g+3|0],u=!e|!(2&o[e+56|0])?u:o[g+6|0]<=u>>>0?4:u;g:{u:switch(f-3|0){case 1:d=o[g+6|0]<=u>>>0;break l;case 0:if(d=1,u>>>0<=3)break g;break l}if(d=1,i[102832+(f<<2)>>2]>(0|u))break l}d=0;break l;case 17:if(!o[u+11|0]){d=1;break l}d=(32&o[t+1|0])>>>5|0;break l;case 18:d=0!=p[g+4>>1];break l;case 19:if(d=1,p[g+36>>1])break l;d=!o[i[g+40>>2]+11|0];break l;case 9:if(p[g+4>>1])break l;for(;;){if(d=!!(0|(u=12&o[g-29|0])),u)break l;if(p[4+(g=g-32|0)>>1])break}break l;case 10:d=2!=o[u+11|0];break l;case 11:for(;;){if(d=!!(0|(u=p[g+36>>1])),u)break l;if(u=g,g=g+32|0,2==o[i[u+40>>2]+11|0])break}break l;case 12:if(d=1,2==(254&o[u+11|0]))break l;d=(16&o[u+4|0])>>>4|0;break l;case 13:for(;d=(2==o[i[g+8>>2]+11|0])+d|0,u=p[g+4>>1],g=g-32|0,!u;);d=1==(0|d);break l;case 14:for(;d=(2==o[i[g+8>>2]+11|0])+d|0,u=p[g+4>>1],g=g-32|0,!u;);d=2==(0|d);break l;case 16:break c;default:break l}d=(16&o[0|g])>>>4|0}else if(d=0,15==(0|g)){c:switch(f-1|0){case 0:d=D;break l;case 1:break c;default:break l}d=0!=i[T+132>>2]}l:if(1970>>>(g=(u=65535&A)>>>12|0)&1)g=a[g+102848|0];else{c:switch(0|g){case 0:if(g=1,3328!=(3840&u))break l;g=1+(1+(255&u)>>>1|0)|0;break l;case 6:g=(u>>>9&7)-5>>>0<2?12:1;break l;case 2:case 3:g=3328==(0|(g=3840&u))||1536==(0|g)?2:1;break l}g=4,(u=p[r+4>>1])>>>0>61439||(g=2==(0|u)?3:2)}if(r=((g=3==p[(r=(g<<1)+r|0)>>1])<<1)+r|0,g^=d,h=B?g|h:g&h,B=4096&A,8192!=(57344&(A=p[r>>1])))break}if(!(1&h))if(26624!=(63488&A)){l:if(1970>>>(g=A>>>12|0)&1)g=a[g+102848|0];else{c:switch(0|g){case 0:if(g=1,3328!=(3840&A))break l;g=1+(1+(255&A)>>>1|0)|0;break l;case 6:g=(A>>>9&7)-5>>>0<2?12:1;break l;case 2:case 3:g=3328==(0|(A&=3840))||1536==(0|A)?2:1;break l}g=4,(A=p[r+4>>1])>>>0>61439||(g=2==(0|A)?3:2)}r=((24576==(65024&p[(A=(g<<1)+r|0)>>1]))<<1)+A|0}else r=((255&A)<<1)+r|0}g=r-2|0,u=C;break A}o:switch(g>>>1|0){case 0:r=(((255&A)<<1)+r|0)-2|0;break e;case 5:i[s>>2]=2|i[s>>2],((A=o[i[t+40>>2]+12|0])-28&255)>>>0<=5&&(g=p[4+(A=((A<<2)+r|0)-112|0)>>1],A=p[A+2>>1],i[s+96>>2]=A>>>4<<24>>24,i[s+76>>2]=(15&A)<<18|g<<2),r=r+24|0;break e;case 6:break o;default:break e}((A=o[i[Q>>2]+13|0])-28&255)>>>0<=5&&(g=p[4+(A=((A<<2)+r|0)-112|0)>>1],A=p[A+2>>1],i[s+100>>2]=A>>>4<<24>>24,i[s+80>>2]=(15&A)<<18|g<<2),r=r+24|0;break e}A=p[(r=r+2|0)>>1]|A<<16&983040;i:switch(g-1|0){case 0:if((0|b)>9)break e;i[(l+32|0)+(b<<2)>>2]=r,r=(i[34459]+(A<<1)|0)-2|0,b=b+1|0;break e;case 1:i[s+124>>2]=A;break e;case 2:break i;default:break e}i[s+128>>2]=A;break e}i[108+(g=((1!=(0|g))<<3)+s|0)>>2]=p[r+2>>1]|(255&A)<<16,A=p[r+4>>1]<<16,r=r+6|0,i[g+112>>2]=A|p[r>>1];break e}if(u=p[(g=r+2|0)>>1],m=A>>>4|0,i[88+(h=((f=d-11|0)<<2)+s|0)>>2]=255&m,i[h+68>>2]=A<<18&3932160|u<<2,2==(0|(r=p[r+4>>1]))){r=g;break e}if(u=A>>>0<=53247?r>>>0>61439?2:1:C-(4==(0|f))|0,d-13>>>0>1)break A;i[h+88>>2]=m<<24>>24;break A}i[l+4>>2]=Kr(l+75|0,i[c>>2]),i[l>>2]=A,en(x,85851,l);break e}i[4+((g<<2)+s|0)>>2]=u,u=w&&1==(0|g)?1:C}g=r}1!=(0|u)|(0|b)<=0?(r=g,C=u):(r=i[(l+32|0)+((b=b-1|0)<<2)>>2],C=0)}if(r=r+2|0,1==(0|C))break}!n|2!=o[t+17|0]||(e=i[t+4>>2],i[n>>2]=i[t>>2],i[n+4>>2]=e,e=i[t+28>>2],i[n+24>>2]=i[t+24>>2],i[n+28>>2]=e,e=i[t+20>>2],i[n+16>>2]=i[t+16>>2],i[n+20>>2]=e,e=i[t+12>>2],i[n+8>>2]=i[t+8>>2],i[n+12>>2]=e),a[t+23|0]=i[s+44>>2],(e=i[s+68>>2])?(i[t+24>>2]=e,e=s+88|0):(i[t+24>>2]=i[s+72>>2],e=s+92|0),i[t+28>>2]=i[e>>2]}j=l+80|0}function ce(e,A,t,r,n,s){var l,c=0,g=0,u=0,d=0,f=0,p=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0;j=l=j-848|0;e:if(!(!i[e+104>>2]|8&o[n+2|0]|193==i[47202])){for(i[r>>2]=0,i[33272]=0,i[33274]=s,a[l+192|0]=0,i[33273]=l+192;d=(s=d)+1|0,a[0|(k=A+s|0)]-48>>>0<10;);i[56798]=0,y=l+188|0,p=-2147483648,j=w=j-16|0;A:if(c=o[0|A]){f=A;t:{for(;;){if(!(32==(0|(c=c<<24>>24))|c-9>>>0<5))break t;if(c=o[f+1|0],f=f+1|0,!c)break}break A}t:switch((c=o[0|f])-43|0){case 0:case 2:break t;default:break A}b=45==(0|c)?-1:0,f=f+1|0}else f=A;for(;c=-48,(((h=a[0|f])-48&255)>>>0<10||(c=-87,(h-97&255)>>>0<26||(c=-55,!((h-65&255)>>>0>25))))&&!((0|(h=c+h|0))>=10);)tt(w,10,0,0,0,m,I,0,0),c=1,i[w+8>>2]|i[w+12>>2]||(B=rr(m,I,10,0),-1==(0|(v=Z))&~h>>>0<B>>>0||(c=v,I=(m=h+B|0)>>>0<h>>>0?c+1|0:c,x=1,c=u)),f=f+1|0,u=c;y&&(i[y>>2]=x?f:A);A:{t:{if(u)i[56798]=68,m=-2147483648,I=0;else if(!I&m>>>0<2147483648)break t;if(!b){i[56798]=68,p=2147483647;break A}if(!(!I&m>>>0<=2147483648)){i[56798]=68;break A}}p=(b^m)-b|0}if(j=w+16|0,b=p,!(i[56798]|i[l+188>>2]==(0|A))){A:{t:{r:{if(!(!((0|(h=64&o[e+109|0]?4:3))!=(0|s)|i[e+124>>2]!=a[A-2|0])&a[A-3|0]-48>>>0<10)){n:{if(32!=i[e+124>>2]){if(!(16&o[e+105|0]))break r;if(3==(0|s))break n;break r}if(3!=(0|s))break r}if(4&o[n+2|0]|a[A-2|0]-48>>>0>=10)break r}a[133104]=0,a[l+288|0]=0,E=1;break t}if(a[133104]=0,i[33275]=0,a[l+288|0]=0,M=1,x=0,48==o[0|A])break A}x=yA(e,A,k,n,0)}46!=o[0|k]|a[A+d|0]-48>>>0<10|1&a[n+13|0]|a[k+2|0]-48>>>0<10||(a[0|k]=0);A:if(!x||(B=1,26741==i[e+212>>2])){if(p=l+256|0,i[l+844>>2]=p,g=d,64&o[n+1|0]&&(a[l+256|0]=45,p=l+256|1,i[l+844>>2]=p,g=s+2|0),f=o[A+g|0]){for(;!(32==(255&f)|(0|g)>28)&&(c=i[l+844>>2],i[l+844>>2]=c+1,a[0|c]=f,f=o[(g=g+1|0)+A|0]););p=i[l+844>>2]}if(a[0|p]=0,B=1,c=a[l+256|0]){if(!(u=i[e+136>>2])||hr(l+256|0,u)){if(c-48>>>0<10)break A;if(i[l+176>>2]=l+256,vt(c=l+800|0,88653,l+176|0),!Et(e,c,133104))break A;i[r>>2]=128|i[r>>2],i[l+160>>2]=l+256,vt(c=l+800|0,88773,l+160|0),Et(e,c,133116),B=0}x=2}}y=i[n>>2],a[l+352|0]=0,a[l+624|0]=0;A:{t:{r:if(!(!M|48!=o[0|A]||32==(0|(c=a[A+1|0]))|(0|c)==i[e+128>>2])){n:{if(2==(0|s)){if(58!=o[A+3|0]|a[A+5|0]-48>>>0>=10)break n;if(!(32==(0|(c=a[A+7|0]))|c-9>>>0<5))break n;break r}if((0|s)>3)break t}if(48==o[0|A]&&!((0|(c=s-1|0))<=0))for(g=0;;){if(Et(e,88875,Wt(u=l+288|0)+u|0),48!=o[(g=g+1|0)+A|0])break r;if(!((0|c)>(0|g)))break}}r:{n:{if(!(32==(0|(c=a[0|k]))&&16&o[e+105|0])){if(v=2,m=s+2|0,(0|c)==i[e+124>>2])break n;I=1,p=0,c=0;break r}v=1,m=s+2|0}if(4&o[n+14|0])p=1,c=0,I=1;else for(c=0,f=1,g=s,I=1;;){u=c,c=f,f=(w=g+v|0)+A|0,g=0;n:{for(;;){if(p=1,!(a[g+f|0]-48>>>0>=10)){if((0|h)!=(0|(g=g+1|0)))continue;break n}break}c=u;break r}if(a[f+h|0]-48>>>0<10){c=u;break r}if(g=0,a[f-1|0]-48>>>0<10){c=u;break r}n:{for(;;){if(48==o[(g+w|0)+A|0]){if((0|h)!=(0|(g=g+1|0)))continue;break n}break}I=0}if((0|(u=a[(g=h+w|0)+A|0]))!=i[e+124>>2]&(!(16&o[e+105|0])|32!=(0|u)))break r;if(m=g+2|0,4&o[2+(C(f=c+1|0,12)+n|0)|0])break}}g=!b;r:if(!(!I|!(64&o[1+(C(c,12)+n|0)|0])|26741!=i[e+212>>2])){n:switch(o[0|(u=A+m|0)]-97|0){case 0:case 4:break n;default:break r}n:{a:{s:{i:switch((f=o[u+1|0])-116|0){case 6:break r;case 1:case 2:case 3:case 4:case 5:break a;case 0:break i;default:break s}if(116!=o[u+2|0])break n;break r}if(32==(0|f))break r}if(!(!!((0|b)%1e3|0)&1!=(0|c))&&108==(0|f))break r}i[33274]=1|i[33274]}m=32768&y,g&=E;r:if(i[e+128>>2]!=a[0|k]|a[A+d|0]-48>>>0>=10){n:{if(!g){if(g=0,u=1,!((0|c)>0&p))break n;b=(d=xe(e,b,c,I,l+624|0))?0:b,g=!!(0|d),f=0;break r}g=1,b=0,1==i[33275]&&(i[l+144>>2]=c+1,vt(d=l+800|0,89026,l+144|0),Et(e,d,l+688|0)||(i[l+128>>2]=c,vt(d=l+800|0,89026,l+128|0),Et(e,d,l+624|0)))}u=1,f=0}else Et(e,88882,l+624|0),u=0,f=256;p=m?2:x;r:{if(c|o[l+624|0]|46!=o[0|k]){if(c)break r}else Et(e,89192,l+624|0);if(i[l+844>>2]=A,a[A+1|0]-48>>>0<10)for(;d=i[l+844>>2],i[l+844>>2]=d+1,a[d+2|0]-48>>>0<10;);if(a[i[l+844>>2]-1|0]-48>>>0>=10||(i[l+416>>2]=i[l+844>>2]-1,Ve(e,l+416|0,l+192|0,r,4,n)&&(i[33272]=2)),o[l+192|0]|48==o[i[l+844>>2]]||Ve(e,l+844|0,l+192|0,r,4,n)&&(i[33272]=1),M){if(!p&u&&(i[l+112>>2]=b,vt(n=l+800|0,89214,l+112|0),Et(e,n,t)))break A;if(1&a[e+110|0]){for(d=A;32!=(32|o[0|d]);)d=d+1|0;i[l+416>>2]=d,37==o[d+1|0]&&(Et(e,89328,t),n=Wt(t),a[i[l+416>>2]+1|0]=32,t=t+n|0)}}}De(e,b,l+416|0,g,c,p|f|E),!(2&o[e+109|0])|(0|c)<=0?(i[l+60>>2]=15,i[l- -64>>2]=l+624,i[l+56>>2]=l+416,i[l+52>>2]=l+352,i[l+48>>2]=l+288,vt(t,89415,l+48|0)):(i[l+88>>2]=15,i[l+96>>2]=l+416,i[l+92>>2]=l+352,i[l+84>>2]=l+624,i[l+80>>2]=l+288,vt(t,89346,l+80|0));r:if(!u)for(;;){for(s=s+1|0,u=0;u=(d=u)+1|0,a[(c=s+d|0)+A|0]-48>>>0<10;);n=2;n:{a:{s:{i:{o:{l:switch((u=57344&i[e+104>>2])-8192>>>13|0){case 6:break a;case 2:break s;case 0:case 4:case 5:break i;case 1:break o;case 3:break l;default:break n}n=5}if(48==(0|(u=o[0|(g=A+s|0)])))for(;Et(e,88875,c=l+688|0),yn(t,c),d=d-1|0,48==(0|(u=o[0|(g=(s=s+1|0)+A|0)])););if((0|n)<(0|d)|(u<<24>>24)-48>>>0>=10)break n;n=l+688|0,De(e,wt(g),n,0,0,0),yn(t,n),s=s+d|0;break n}if(De(e,wt(n=A+s|0),l+416|0,0,0,0),!(8192==(0|u)&48!=o[0|n])){if(i[l+16>>2]=d,vt(n=l+800|0,89508,l+16|0),!Et(e,n,l+688|0))break n;yn(49152==(0|u)?t:l+416|0,l+688|0)}yn(t,l+416|0),s=c;break n}if((0|d)>4)break n;if(48==o[0|(n=A+s|0)])break n;De(e,s=wt(n),n=l+688|0,0,0,0),yn(t,n),s=c;break n}if(!((0|d)<=1))for(;;){if(i[l+32>>2]=a[A+s|0],vt(n=l+800|0,89575,l+32|0),!Et(e,n,l+688|0))break n;if(yn(t,l+688|0),s=s+1|0,!((0|(d=d-1|0))>1))break}}n:if(!((u=o[0|(d=A+s|0)])-48>>>0>=10||Wt(t)>>>0>=190))for(;;){if(n=l+688|0,Ie(e,a[0|d]-48|0,0,2,n),c=Wt(t),i[l>>2]=15,i[l+4>>2]=n,vt(t+c|0,89594,l),(u=o[0|(d=(s=s+1|0)+A|0)])-48>>>0>=10)break n;if(!(Wt(t)>>>0<=189))break}if(Et(e,89678,l+688|0)&&yn(t,l+688|0),i[e+128>>2]!=(0|u)|a[1+(A+s|0)|0]-48>>>0>=10)break r;Et(e,88882,n=l+688|0),yn(t,n)}if(!(n=o[0|t])|21==(0|n)||(n=VA(l+184|0,A=1+(A+s|0)|0),s=i[l+184>>2],!(2&o[e+106|0])|32!=(0|s)||(VA(l+184|0,A+n|0),s=i[l+184>>2]),yr(s)|I||(e=Wt(t)+t|0,a[0|e]=11,a[e+1|0]=0)),i[r>>2]=-2147483648|i[r>>2],i[33275]=i[33275]-1,g=1,B)break e;i[33264]=1;break e}i[r>>2]=-129&i[r>>2],g=0;break e}g=1}}return j=l+848|0,g}function ge(e,A,t,r){var n,l,c=0,g=0,u=0,d=0,f=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0;if(j=n=j-416|0,v=p[t+8>>1],I=o[t+10|0],64&(l=i[t>>2])){for(i[t>>2]=-65&l,a[199388]=1,u=i[47202],m=i[49846],f=i[47352],h=i[47351],d=i[47350];;){c=(g=i[198304+(h<<2)>>2])>>8;e:{A:switch((31&g)-9|0){case 0:u=c;break e;case 4:m=c;break e;case 3:break A;default:break e}f=g>>>0>=256?c+f|0:0}if(!(!(128&g)&(0|d)>(0|(h=h+1|0))))break}i[47352]=f,i[47351]=h,i[49846]=m,i[47202]=u}m=0;e:if(!((0|(c=i[49572]))>997))if(1048576&l||!o[0|A])o[199388]&&(i[49572]=c+1,a[199388]=0,i[(e=190288+(c<<3)|0)>>2]=983042,i[e+4>>2]=0),a[189088]=0;else if(!((0|c)>990)){(0|(c=i[e+8224>>2]))>0&&(i[e+8224>>2]=c-1),u=512&l?r:r+4|0,f=16==(240&i[47202]),(x=2&l)&&((0|(g=i[47200]))<3||(0|(c=i[47350]))>243||(o[199388]&&(i[(h=198300+(c<<2)|0)>>2]=-129&i[h>>2]),i[47350]=c+1,a[199388]=1,y=3==(0|g)?20:g,i[198304+(c<<2)>>2]=y<<8|193)),d=f?u:r;A:{t:{if(!(8&l)){for(;r=o[(c=b)+A|0],a[c+(n+240|0)|0]=r,223&r&&(b=c+1|0,c>>>0<160););if(a[n+66|0]=0,b=n- -64|2,m=dA(i[47192],A,t,b),i[n+412>>2]=m,!(4096&m))break t;_e(A,n+240|0,c);break e}r:if(Dt(A,87276,3))Ue(A,189088,n+240|0);else{if(h=0,223&(c=o[0|(b=A+3|0)]))for(;a[(n+240|0)+h|0]=nr(c<<24>>24),h=h+1|0,223&(c=o[0|(b=b+1|0)]););a[(r=n+240|0)+h|0]=0,c=0;n:if(!((0|(t=i[34461]))<=0)){for(;;){if(!hr(r,C(c,44)+137856|0)){i[34457]=c;break n}if((0|t)==(0|(c=c+1|0)))break}c=t}if((0|(t=(0|t)==(0|c)?-1:c))<=0)break r;qr(t),a[189090]=0,a[189089]=t,a[189088]=21}m=-2147483648,i[n+412>>2]=-2147483648,r=-1;break A}if(!(!(8388608&m)|8&o[t+12|0])){for(j=f=j-208|0,h=i[e+60>>2],g=A;r=g,g=g+1|0,32!=o[0|r];);VA(f+204|0,g);t:if(yr(i[f+204>>2])){u=rt(f,189088),g=(!(256&h)|(k=te(e,g,t+12|0,0))>>>15)&!(67108864&k)&21!=o[189088];r:{n:{if(512&h){if(!(g&!(16&o[t+12|0])))break n;break r}if(g)break r}rt(189088,u);break t}if(a[0|r]=45,i[t>>2]=-2&i[t>>2],m=0,g=189088,w=te(i[47192],A,t,0),i[n+412>>2]=w,!((0|h)<=0)&&(u=o[189088])){for(;m=(2==o[i[144464+(u<<2)>>2]+11|0])+m|0,u=o[0|(g=g+1|0)];);if(!((31&h)>=(0|m))){a[0|r]=32,i[n+412>>2]=te(i[47192],A,t,0);break t}}i[n+412>>2]=128|(w||k),i[33264]=1}j=f+208|0}if(r=-1,21==o[189088]){if(h=rt(n+16|0,132848),f=i[n+412>>2],g=_e(A,n+240|0,c),u=n- -64|1,(0|(r=Mt(o[189089]?189089:87315,188772,189296)))<0||(i[t>>2]=4194304|i[t>>2],o[n+66|0]?(s[n+64>>1]=8192,f=te(i[47193],u,t,0)):f=dA(i[47193],g,t,b)),21==o[189088]&&(c=_e(g,n+240|0,c),(0|(r=Mt(o[189089]?189089:87315,188772,189296)))<0||(i[t>>2]=4194304|i[t>>2],o[n+66|0]?(s[n+64>>1]=8192,f=te(i[47193],u,t,0)):f=dA(i[47193],c,t,b)),m=4096,21==o[189088]))break e;i[n+412>>2]=f,(0|r)>=0||(a[189090]=0,s[94544]=3341,-1==(0|r)&&(rt(132848,h),qr(i[i[32972]+60>>2]),r=i[i[32972]+60>>2]))}m=i[n+412>>2],128&l||(d=268435456&m&&(0|d)<=1?1:d,!(256&m)|528&l|i[e+8224>>2]|2&o[t-11|0]||(i[e+8224>>2]=3,d=(0|d)<=4?4:d)),d=(0|d)<=0&&i[49846]>2?1:d}if(t=o[199388],!((0|d)<=0|(0|(b=i[49572]))>990)){i[49572]=b+1,g=1&t,t=0,s[(c=190288+(b<<3)|0)>>1]=g?2:0,a[c+7|0]=0,a[c+3|0]=0,g=d>>>0>1,a[c+2|0]=g?9:11,s[c+4>>1]=0,i[e+8236>>2]=0;A:if(!(!(c=g?d-2|0:0)|(0|(b=i[49572]))>990))for(u=e+8236|0;;){if(i[49572]=b+1,s[(g=190288+(b<<3)|0)>>1]=0,a[g+7|0]=0,a[g+3|0]=0,f=c>>>0>1,a[g+2|0]=f?9:11,s[g+4>>1]=0,i[u>>2]=0,b=i[49572],(0|(c=f?c-2|0:0))<=0)break A;if(!((0|b)<991))break}i[e+8228>>2]=0,i[e+8232>>2]=0}a[199388]=1&t,!x|1!=i[47200]||(i[49572]=b+2,a[199388]=0,s[(c=190288+(b<<3)|0)>>1]=1&t?2:0,a[c+7|0]=0,s[c+2>>1]=10,s[c+4>>1]=0,s[c+12>>1]=0,i[c+8>>2]=1179648,a[c+15|0]=0,1&l&&dt(a[A+1|0])&&(t=o[199388],a[199388]=0,A=i[49572],i[49572]=A+2,s[(A=190288+(A<<3)|0)>>1]=t?2:0,a[A+7|0]=0,s[A+2>>1]=10,s[A+4>>1]=0,s[A+12>>1]=0,i[A+8>>2]=1179648,a[A+15|0]=0)),c=I>>>0<31;A:if(!((0|r)<0))if(A=i[49572],t=o[190290+((d=A-1|0)<<3)|0],9!=o[189088]|21!=o[189089])21!=(0|t)&&(g=o[199388],a[199388]=0,a[7+(t=190288+(A<<3)|0)|0]=0,s[t+2>>1]=21,s[t+4>>1]=0,s[t>>1]=g?2:0,d=A),i[49572]=d+1,a[190295+(d<<3)|0]=r;else{if(21!=(0|t))break A;i[49572]=d}A=2047&v,t=(c?I:31)<<11,f=(E=128&l)?o[i[144464+(o[189088]<<2)>>2]+11|0]?189088:189089:189088,(d=o[0|f])|!(1&a[199388])||(d=23,a[0|f]=23,a[f+1|0]=0),M=A|t,u=i[49572];A:if(d)if((0|u)>994)A=0;else for(Q=(-2147483648==(-1610612736&m))<<4,v=M+1|0,T=e+8233|0,A=0,g=1,k=0,G=1,I=-1,x=-1,c=0;;){h=f+1|0;t:{if(255!=(0|(w=255&d))){if(t=i[144464+(w<<2)>>2])break t;i[n>>2]=w,j=t=j-16|0,i[t+12>>2]=n,mn(132552,87474,n),j=t+16|0,u=i[49572]}if(!(d=o[0|h]))break A;if(f=h,(0|u)<995)continue;break A}t:if(21!=(0|(B=255&d)))if(1!=(0|(f=o[t+11|0]))){t=v;r:switch(B-12|0){case 8:a[3+(t=190288+((I=u-1|0)<<3)|0)|0]=g,s[t>>1]=4|p[t>>1],t=c;break t;case 0:s[(t=190280+(u<<3)|0)>>1]=8|p[t>>1],t=c;break t;case 10:m|=16384,i[n+412>>2]=m,t=c;break t;case 3:break t}w=o[199388],a[199388]=0,a[7+(t=190288+(B=u<<3)|0)|0]=0,a[t+2|0]=d,s[t+4>>1]=c,c=(w?2:0)|Q,s[t>>1]=c,2==(0|f)?((0|g)>=4&&(a[189076]=1),(0|I)<0||(0|(A=u-1|0))!=(0|I)&&(a[190291+(A<<3)|0]=g),s[t>>1]=4|c,D=(A=(0|g)>(0|x))?u:D,x=A?g:x,c=1,k&&(a[t+7|0]=k),I=u,k=0,A=g):(!G|!(64&o[0|T])||(s[t>>1]=8|c),c=g),u=u+1|0,i[49572]=u,a[B+190291|0]=A,t=0,G=0,g=c}else{if(!p[t+8>>1]){g=o[t+14|0],t=c;break t}if((0|I)<0){t=c,k=w;break t}a[190295+(I<<3)|0]=d,t=c}else i[(t=190288+(u<<3)|0)>>2]=1376256,s[t+4>>1]=0,a[t+7|0]=o[f+1|0],i[49572]=u+1,qr(o[f+1|0]),h=f+2|0,u=i[49572],t=c;if(!(d=o[0|h]))break A;if(f=h,c=t,!((0|u)<995))break}else A=0;131072&l&&(t=u+1|0,i[49572]=t,g=o[199388],a[199388]=0,a[7+(c=190288+(u<<3)|0)|0]=0,s[c+2>>1]=27,s[c+4>>1]=0,s[c>>1]=g?2:0,u=t),E||(s[190292+(b<<3)>>1]=M),i[e+8228>>2]=0,2!=o[i[144464+(o[190282+(u<<3)|0]<<2)>>2]+11|0]|(0|A)<4||(i[e+8228>>2]=1),(0|r)>=0&&(rt(132848,n+16|0),qr(i[i[32972]+60>>2]),t=o[199388],a[199388]=0,r=i[49572],s[(A=190288+(r<<3)|0)>>1]=t?2:0,s[A+2>>1]=21,s[A+4>>1]=0,a[A+7|0]=i[i[32972]+60>>2],u=r+1|0,i[49572]=u),(0|y)>0&&(a[199388]=0,i[49572]=u+1,i[(A=190288+(u<<3)|0)>>2]=655362,t=i[47350],i[47350]=t+1,a[A+7|0]=0,s[A+4>>1]=0,i[198304+(t<<2)>>2]=y<<8|225),1024&m&&(s[(A=190288+(D<<3)|0)>>1]=64|p[A>>1]),i[e+8232>>2]=m}return j=n+416|0,m}function ue(e,A,t,r,n){var s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0;e:if(A){if(w=n<<4,l=(A=i[33268])+t|0,!((0|A)<=0||(s=o[0|(g=w+129360|0)],f=o[g+1|0]-s<<8,f=1!=(0|A)?(0|f)/(0|A)|0:f,(0|t)>=(0|l))))for(p=f>>>0>255,b=f>>>8|0,s<<=8,g=0-f>>>8|0,B=(0|f)<=0,A=t;B?(u=(d=(d=(0|(c=(0|(c=i[101024+(a[C(A,6)+e|0]<<2)>>2]))<(0|g)?g:c))>=18?18:c)+(c=(0|(c=(0|(s=s+f|0))/256|0))>0?c:0)|0)>>>0>=254?254:d,c=c>>>0>=254?254:c):(c=C(A,6)+e|0,a[c+2|0]=p|o[c+2|0],c=(d=(0|(c=(0|s)/256|0))>0?c:0)>>>0>=254?254:d,u=(d=d+b|0)>>>0>=254?254:d,s=s+f|0),d=C(A,6)+e|0,a[d+5|0]=c,a[d+4|0]=u,(0|l)!=(0|(A=A+1|0)););if(2&o[188785]?(g=i[33271],i[33270]=g):g=i[33270],b=(p=o[3+(s=129360+(A=n<<4)|0)|0])-(c=o[s+2|0])<<8,B=i[s+4>>2],(0|t)>0?(y=101056,k=5,d=(0|b)/(o[A+129368|0]-1|0)|0):(y=i[12+(A=A+129360|0)>>2],k=o[A+10|0],d=0),(0|l)<(0|g)){for(f=(0|t)<=0,I=((A=b>>31)^b)-A|0,h=129360+(n<<4)|0,c<<=8,v=p<<8,p=0;;){A:{if(u=C(l,6)+e|0,!(!(1&f)&(0|(s=a[0|u]))<4)){t=0,A=l;t:if(1&(5==(0|s)|f)){for(;(0|(d=a[C(A,6)+e|0]))<=6&&(t=((0|d)>3)+t|0,(0|g)!=(0|(A=A+1|0))););if(m=0,(0|(x=(0|(A=o[h+8|0]))>(0|t)?t:A))<2){d=0,p=c;break t}d=(0|b)/(x-1|0)|0,p=c}else(0|x)>0?p=d+p|0:(p=v+(C(I,a[m+y|0])>>6)|0,(0|k)>(0|(m=m+1|0))||(y=i[h+12>>2],m=0));if(x=x-1|0,!((0|s)<4)){a[0|u]=6,t=(A=(0|(A=(0|p)/256|0))>0?A:0)+(((t=(s=i[B+(s<<2)>>2])>>31)^s)-t|0)|0;break A}}3!=(0|s)?(A=(0|p)/256|0,(63&o[u-6|0])>>>0>=3?(t=(s=i[B+(s<<2)>>2])>>31,t=(A=(0|(A=A-a[h+9|0]|0))>0?A:0)+((t^s)-t|0)|0):t=(A=(0|A)>0?A:0)+(((t=(s=i[B+(s<<2)>>2])>>31)^s)-t|0)|0):t=(A=(0|(A=(0|p)/256|0))>0?A:0)+(((t=(s=i[B+12>>2])>>31)^s)-t|0)|0}if(a[u+5|0]=A>>>0>=254?254:A,f=0,A=(0|t)>0?t:0,a[u+4|0]=A>>>0>=254?254:A,a[u+2|0]=o[u+2|0]|s>>>31,(0|g)==(0|(l=l+1|0)))break}l=g}if(!(o[133068]||(3==(268435455&n)&&(A=C(l,6)+e|0,a[A+2|0]=2|o[A+2|0]),i[33269]?(A=o[5+(s=100768+(n<<4)|0)|0],c=s+3|0,t=o[s+4|0]-A|0):(A=o[2+(t=100768+(n<<4)|0)|0],c=w+100768|0,t=o[t+1|0]-A|0),s=C(l,6)+e|0,a[s+5|0]=A>>>0>=254?254:A,a[s+2|0]=o[s+2|0]|t>>>31,A=(d=A)+(((A=t>>31)^t)-A|0)|0,a[s+4|0]=A>>>0>=254?254:A,t=C(g,6)+e|0,a[t+1|0]=o[0|c],A=l+1|0,4==o[0|t]&&(a[0|t]=6),(0|(t=r-A|0))<=0||(n=o[12+(l=100768+(n<<4)|0)|0],l=o[l+13|0]-n<<8,l=1!=(0|t)?(0|l)/(0|t)|0:l,(0|A)>=(0|r)))))for(d=l>>>0>255,f=l>>>8|0,t=n<<8,n=0-l>>>8|0,p=(0|l)<=0;p?(c=(g=(c=(0|(s=(0|n)>(0|(s=i[101024+(a[C(A,6)+e|0]<<2)>>2]))?n:s))>=18?18:s)+(s=(0|(s=(0|(t=t+l|0))/256|0))>0?s:0)|0)>>>0>=254?254:g,g=s>>>0>=254?254:s):(s=C(A,6)+e|0,a[s+2|0]=d|o[s+2|0],g=(s=(0|(s=(0|t)/256|0))>0?s:0)>>>0>=254?254:s,c=(s=s+f|0)>>>0>=254?254:s,t=t+l|0),s=C(A,6)+e|0,a[s+5|0]=g,a[s+4|0]=c,(0|r)!=(0|(A=A+1|0)););}else{if(A=(k=i[34455])+C(n,68)|0,l=o[A+24|0],g=o[A+25|0],s=(A=i[33268])+t|0,!((0|A)<=0||(u=g-l<<8,u=1!=(0|A)?(0|u)/(0|A)|0:u,(0|t)>=(0|s))))for(d=u>>>0>255,f=u>>>8|0,A=l<<8,g=0-u>>>8|0,p=(0|u)<=0;p?(l=(l=(b=(0|(l=(0|(l=i[101024+(a[C(t,6)+e|0]<<2)>>2]))<(0|g)?g:l))>=18?18:l)+(c=(0|(l=(0|(A=A+u|0))/256|0))>0?l:0)|0)>>>0>=254?254:l,c=c>>>0>=254?254:c):(l=C(t,6)+e|0,a[l+2|0]=d|o[l+2|0],c=(l=(0|(l=(0|A)/256|0))>0?l:0)>>>0>=254?254:l,l=(l=l+f|0)>>>0>=254?254:l,A=A+u|0),b=C(t,6)+e|0,a[b+5|0]=c,a[b+4|0]=l,(0|s)!=(0|(t=t+1|0)););2&o[188785]?(t=i[33271],i[33270]=t):t=i[33270],g=t,A=k+C(n,68)|0;A:if(255!=(0|(f=o[A+33|0])))for(;;){if((0|(g=g-1|0))<(0|s)){g=t;break A}if(!(a[C(g,6)+e|0]<4))break}if((0|t)>(0|s)){for(D=((l=(M=(p=o[A+32|0])-(u=o[0|(c=A+31|0)])<<8)>>31)^M)-l|0,v=255==(0|(A=o[0|(d=A+30|0)])),b=f<<8,B=u<<8,Q=p<<8,w=k+C(n,68)|0,T=255!=(0|A),p=0,f=0,A=1,u=0;;){A:{if(h=C(s,6)+e|0,!(!(1&A)&(0|(I=a[0|h]))<4)){t:if(1&(5==(0|I)|A)){r:if(T){if(E=1,A=0,l=d,!((0|g)<=(0|(u=s+1|0)))){for(;;){if(l=d,(0|(f=a[C(u,6)+e|0]))>6)break r;if(A=((0|f)>3)+A|0,(0|g)==(0|(u=u+1|0)))break}l=d}}else{if(A=0,u=s,l=c,(0|g)<=(0|s))break r;for(;;){if(l=c,(0|(f=a[C(u,6)+e|0]))>6)break r;if(A=((0|f)>3)+A|0,(0|g)==(0|(u=u+1|0)))break}l=c}if(f=o[0|l]<<8,G=0,(0|(u=(0|A)<(0|(l=o[w+34|0]))?A:l))<2){y=0;break t}y=(0|M)/(u-1|0)|0}else(0|s)!=(0|g)?E?(v=1,u=u+1|0,E=0,f=B):(0|u)>0?(f=f+y|0,E=0):(E=0,f=(C(a[16+(w+G|0)|0],D)>>6)+Q|0,G=(0|(A=G+1|0))<o[w+35|0]?A:0):(v=2,f=b);if(u=u-1|0,!((0|I)<4)){A=l=s+1|0;t:if(!((0|t)<=(0|s)))for(;;){if(a[C(A,6)+e|0]>1)break t;if(!((0|t)>=(0|(A=A+1|0))))break}a[0|h]=6,a[h+1|0]=o[w+26|0],p=0,m=o[w+27|0],s=(0|(s=(0|f)/256|0))>0?s:0,a[h+5|0]=s>>>0>=254?254:s,s=s+m|0,a[h+4|0]=s>>>0>=254?254:s,x=A-l|0;break A}}if((0|I)>=2){A=l=s+1|0;t:if(!((0|t)<=(0|s)))for(;;){if(a[C(A,6)+e|0]>1)break t;if(!((0|t)>=(0|(A=A+1|0))))break}p=0,s=(0|(s=(0|f)/256|0))>0?s:0,a[h+5|0]=s>>>0>=254?254:s,m=i[100976+(I<<2)>>2],a[h+2|0]=o[h+2|0]|m>>>31,s=(0|(s=(I=s)+(((s=m>>31)^m)-s|0)|0))>0?s:0,a[h+4|0]=s>>>0>=254?254:s,x=A-l|0}else(0|x)<=1?(m=a[36+(w+v|0)|0],A=0):(m=a[36+(A=w+v|0)|0],A=(a[A+39|0]-m|0)/(x-1|0)|0),l=i[100976+(I<<2)>>2],a[h+2|0]=o[h+2|0]|l>>>31,A=(0|(A=(((0|f)/256|0)+m|0)+C(A,p)|0))>0?A:0,a[h+5|0]=A>>>0>=254?254:A,A=(0|(A=A+(((I=l)^(l>>=31))-l|0)|0))>0?A:0,a[h+4|0]=A>>>0>=254?254:A,p=p+1|0,l=s+1|0}if(A=0,(0|t)==(0|(s=l)))break}s=t}if(o[133068])break e;if(l=C(s,6)+e|0,i[33269]?(c=k+C(n,68)|0,A=o[c+47|0],g=o[c+46|0]-A|0,c=c+45|0):(c=k+C(n,68)|0,A=o[c+44|0],g=o[c+43|0]-A|0,c=c+42|0),c=o[0|c],d=(((d=g>>31)^g)-d|0)+A|0,a[l+4|0]=d>>>0>=254?254:d,a[l+5|0]=A>>>0>=254?254:A,A=C(s,6)+e|0,a[A+2|0]=o[A+2|0]|g>>>31,t=C(t,6)+e|0,a[t+1|0]=c,A=s+1|0,4==o[0|t]&&(a[0|t]=6),(0|(t=r-A|0))<=0)break e;if(l=k+C(n,68)|0,n=o[l+48|0],l=o[l+49|0]-n<<8,l=1!=(0|t)?(0|l)/(0|t)|0:l,(0|A)>=(0|r))break e;for(d=l>>>0>255,f=l>>>8|0,t=n<<8,n=0-l>>>8|0,p=(0|l)<=0;p?(c=(g=(c=(0|(s=(0|n)>(0|(s=i[101024+(a[C(A,6)+e|0]<<2)>>2]))?n:s))>=18?18:s)+(s=(0|(s=(0|(t=t+l|0))/256|0))>0?s:0)|0)>>>0>=254?254:g,g=s>>>0>=254?254:s):(s=C(A,6)+e|0,a[s+2|0]=d|o[s+2|0],g=(s=(0|(s=(0|t)/256|0))>0?s:0)>>>0>=254?254:s,c=(s=s+f|0)>>>0>=254?254:s,t=t+l|0),s=C(A,6)+e|0,a[s+5|0]=g,a[s+4|0]=c,(0|r)!=(0|(A=A+1|0)););}}function de(){var e,A=0,t=0,r=0,n=0,o=0,l=0,c=0,g=0,u=0,d=0,f=0,h=0,m=0,b=0,I=0;if((0|(e=i[36455]))!=(0|(g=i[36454]))){e:if(!((0|(m=i[36427]))<0|(0|g)==(0|m))){t=f=i[8+(216192+((u=m)<<4)|0)>>2];A:{for(;;){if((r=i[(l=216192+((u=(0|(r=u-1|0))<0?169:r)<<4)|0)>>2])-5>>>0<2)break A;t:{if((0|r)<=4){if(i[l+12>>2]!=(0|t))break A;if(r=p[l+4>>1],i[l+12>>2]=f,t=i[l+8>>2],16&(A=p[t>>1]))break t;for(I=32&A?(C(r,12)>>>0)/10|0:r,n=0,r=t,c=0;;){A=p[t>>1];r:if(!(c>>>0<3&&8&A)){if(A=A<<16>>16,(0|(b=(d=s[2+((h=c<<1)+t|0)>>1])-(o=s[2+(h=f+h|0)>>1])|0))>(0|(d=(0|C(I,(0|C(i[200944+(c<<2)>>2],(0|b)>0?d+(o<<1)|0:(d<<1)+o|0))/3e3|0))/256|0)))n||((0|A)<0?r=t:(r=0,A=(0|(A=i[44469]+1|0))<=169?A:0,i[44469]=A,(A=177888+(n=A<<6)|0)&&(r=p[t+4>>1]|p[t+6>>1]<<16,o=p[t>>1]|p[t+2>>1]<<16,s[A>>1]=o,s[A+2>>1]=o>>>16,s[A+4>>1]=r,s[A+6>>1]=r>>>16,r=p[t+60>>1]|p[t+62>>1]<<16,o=p[t+56>>1]|p[t+58>>1]<<16,s[A+56>>1]=o,s[A+58>>1]=o>>>16,s[A+60>>1]=r,s[A+62>>1]=r>>>16,r=p[t+52>>1]|p[t+54>>1]<<16,o=p[t+48>>1]|p[t+50>>1]<<16,s[A+48>>1]=o,s[A+50>>1]=o>>>16,s[A+52>>1]=r,s[A+54>>1]=r>>>16,r=p[t+44>>1]|p[t+46>>1]<<16,o=p[t+40>>1]|p[t+42>>1]<<16,s[A+40>>1]=o,s[A+42>>1]=o>>>16,s[A+44>>1]=r,s[A+46>>1]=r>>>16,r=p[t+36>>1]|p[t+38>>1]<<16,o=p[t+32>>1]|p[t+34>>1]<<16,s[A+32>>1]=o,s[A+34>>1]=o>>>16,s[A+36>>1]=r,s[A+38>>1]=r>>>16,r=p[t+28>>1]|p[t+30>>1]<<16,o=p[t+24>>1]|p[t+26>>1]<<16,s[A+24>>1]=o,s[A+26>>1]=o>>>16,s[A+28>>1]=r,s[A+30>>1]=r>>>16,r=p[t+20>>1]|p[t+22>>1]<<16,o=p[t+16>>1]|p[t+18>>1]<<16,s[A+16>>1]=o,s[A+18>>1]=o>>>16,s[A+20>>1]=r,s[A+22>>1]=r>>>16,r=p[t+12>>1]|p[t+14>>1]<<16,o=p[t+8>>1]|p[t+10>>1]<<16,s[A+8>>1]=o,s[A+10>>1]=o>>>16,s[A+12>>1]=r,s[A+14>>1]=r>>>16,a[n+177904|0]=0,s[A>>1]=32768|p[A>>1],r=A))),A=d+p[h+2>>1]|0;else{if((0-d|0)<=(0|b))break r;n||((0|A)<0?r=t:(r=0,A=(0|(A=i[44469]+1|0))<=169?A:0,i[44469]=A,(A=177888+(n=A<<6)|0)&&(r=p[t+4>>1]|p[t+6>>1]<<16,o=p[t>>1]|p[t+2>>1]<<16,s[A>>1]=o,s[A+2>>1]=o>>>16,s[A+4>>1]=r,s[A+6>>1]=r>>>16,r=p[t+60>>1]|p[t+62>>1]<<16,o=p[t+56>>1]|p[t+58>>1]<<16,s[A+56>>1]=o,s[A+58>>1]=o>>>16,s[A+60>>1]=r,s[A+62>>1]=r>>>16,r=p[t+52>>1]|p[t+54>>1]<<16,o=p[t+48>>1]|p[t+50>>1]<<16,s[A+48>>1]=o,s[A+50>>1]=o>>>16,s[A+52>>1]=r,s[A+54>>1]=r>>>16,r=p[t+44>>1]|p[t+46>>1]<<16,o=p[t+40>>1]|p[t+42>>1]<<16,s[A+40>>1]=o,s[A+42>>1]=o>>>16,s[A+44>>1]=r,s[A+46>>1]=r>>>16,r=p[t+36>>1]|p[t+38>>1]<<16,o=p[t+32>>1]|p[t+34>>1]<<16,s[A+32>>1]=o,s[A+34>>1]=o>>>16,s[A+36>>1]=r,s[A+38>>1]=r>>>16,r=p[t+28>>1]|p[t+30>>1]<<16,o=p[t+24>>1]|p[t+26>>1]<<16,s[A+24>>1]=o,s[A+26>>1]=o>>>16,s[A+28>>1]=r,s[A+30>>1]=r>>>16,r=p[t+20>>1]|p[t+22>>1]<<16,o=p[t+16>>1]|p[t+18>>1]<<16,s[A+16>>1]=o,s[A+18>>1]=o>>>16,s[A+20>>1]=r,s[A+22>>1]=r>>>16,r=p[t+12>>1]|p[t+14>>1]<<16,o=p[t+8>>1]|p[t+10>>1]<<16,s[A+8>>1]=o,s[A+10>>1]=o>>>16,s[A+12>>1]=r,s[A+14>>1]=r>>>16,a[n+177904|0]=0,s[A>>1]=32768|p[A>>1],r=A))),A=p[h+2>>1]-d|0}n=1,s[2+((c<<1)+r|0)>>1]=A,i[l+8>>2]=r}if(6==(0|(c=c+1|0)))break}f=r}if((0|g)!=(0|u))continue;break A}break}f=t}for(r=0;;){if((t=i[(u=216192+(m<<4)|0)>>2])-5>>>0<2)break e;if((0|t)<=4){if(t=i[u+8>>2],A=p[u+4>>1],r){if((0|t)!=(0|r))break e;i[u+8>>2]=f}else f=t;if(16&(r=p[f>>1]))break e;for(h=32&r?(C(A,6)>>>0)/5|0:A,n=0,t=r=i[u+12>>2],c=0;;){A:{t:if((0|(g=(l=s[2+((A=c<<1)+r|0)>>1])-(A=s[2+(d=A+f|0)>>1])|0))>(0|(l=(0|C(h,(0|C(i[200944+(c<<2)>>2],(0|g)>0?l+(A<<1)|0:(l<<1)+A|0))/3e3|0))/256|0))){if(!n){if(s[r>>1]<0){t=r,A=A+l|0;break t}t=(0|(t=i[44469]+1|0))<=169?t:0,i[44469]=t,n=p[r+20>>1]|p[r+22>>1]<<16,A=16+(t=177888+(t<<6)|0)|0,g=p[r+16>>1]|p[r+18>>1]<<16,s[A>>1]=g,s[A+2>>1]=g>>>16,s[A+4>>1]=n,s[A+6>>1]=n>>>16,A=p[r+4>>1]|p[r+6>>1]<<16,n=p[r>>1]|p[r+2>>1]<<16,s[t>>1]=n,s[t+2>>1]=n>>>16,s[t+4>>1]=A,s[t+6>>1]=A>>>16,A=p[r+12>>1]|p[r+14>>1]<<16,n=p[r+8>>1]|p[r+10>>1]<<16,s[t+8>>1]=n,s[t+10>>1]=n>>>16,s[t+12>>1]=A,s[t+14>>1]=A>>>16,A=p[r+28>>1]|p[r+30>>1]<<16,n=p[r+24>>1]|p[r+26>>1]<<16,s[t+24>>1]=n,s[t+26>>1]=n>>>16,s[t+28>>1]=A,s[t+30>>1]=A>>>16,A=p[r+36>>1]|p[r+38>>1]<<16,n=p[r+32>>1]|p[r+34>>1]<<16,s[t+32>>1]=n,s[t+34>>1]=n>>>16,s[t+36>>1]=A,s[t+38>>1]=A>>>16,A=p[r+44>>1]|p[r+46>>1]<<16,n=p[r+40>>1]|p[r+42>>1]<<16,s[t+40>>1]=n,s[t+42>>1]=n>>>16,s[t+44>>1]=A,s[t+46>>1]=A>>>16,A=p[r+52>>1]|p[r+54>>1]<<16,n=p[r+48>>1]|p[r+50>>1]<<16,s[t+48>>1]=n,s[t+50>>1]=n>>>16,s[t+52>>1]=A,s[t+54>>1]=A>>>16,A=p[r+60>>1]|p[r+62>>1]<<16,n=p[r+56>>1]|p[r+58>>1]<<16,s[t+56>>1]=n,s[t+58>>1]=n>>>16,s[t+60>>1]=A,s[t+62>>1]=A>>>16,a[t+16|0]=0,s[t>>1]=32768|p[t>>1],A=p[d+2>>1]}A=A+l|0}else{if((0|g)>=(0-l|0))break A;n||(s[r>>1]<0?t=r:(t=(0|(t=i[44469]+1|0))<=169?t:0,i[44469]=t,n=p[r+20>>1]|p[r+22>>1]<<16,A=16+(t=177888+(t<<6)|0)|0,g=p[r+16>>1]|p[r+18>>1]<<16,s[A>>1]=g,s[A+2>>1]=g>>>16,s[A+4>>1]=n,s[A+6>>1]=n>>>16,A=p[r+4>>1]|p[r+6>>1]<<16,n=p[r>>1]|p[r+2>>1]<<16,s[t>>1]=n,s[t+2>>1]=n>>>16,s[t+4>>1]=A,s[t+6>>1]=A>>>16,A=p[r+12>>1]|p[r+14>>1]<<16,n=p[r+8>>1]|p[r+10>>1]<<16,s[t+8>>1]=n,s[t+10>>1]=n>>>16,s[t+12>>1]=A,s[t+14>>1]=A>>>16,A=p[r+28>>1]|p[r+30>>1]<<16,n=p[r+24>>1]|p[r+26>>1]<<16,s[t+24>>1]=n,s[t+26>>1]=n>>>16,s[t+28>>1]=A,s[t+30>>1]=A>>>16,A=p[r+36>>1]|p[r+38>>1]<<16,n=p[r+32>>1]|p[r+34>>1]<<16,s[t+32>>1]=n,s[t+34>>1]=n>>>16,s[t+36>>1]=A,s[t+38>>1]=A>>>16,A=p[r+44>>1]|p[r+46>>1]<<16,n=p[r+40>>1]|p[r+42>>1]<<16,s[t+40>>1]=n,s[t+42>>1]=n>>>16,s[t+44>>1]=A,s[t+46>>1]=A>>>16,A=p[r+52>>1]|p[r+54>>1]<<16,n=p[r+48>>1]|p[r+50>>1]<<16,s[t+48>>1]=n,s[t+50>>1]=n>>>16,s[t+52>>1]=A,s[t+54>>1]=A>>>16,A=p[r+60>>1]|p[r+62>>1]<<16,n=p[r+56>>1]|p[r+58>>1]<<16,s[t+56>>1]=n,s[t+58>>1]=n>>>16,s[t+60>>1]=A,s[t+62>>1]=A>>>16,a[t+16|0]=0,s[t>>1]=32768|p[t>>1],A=p[d+2>>1])),A=A-l|0}n=1,s[2+((c<<1)+t|0)>>1]=A,i[u+12>>2]=t}if(6==(0|(c=c+1|0)))break}f=t}if((0|e)==(0|(m=(0|(t=m+1|0))<=169?t:0)))break}}i[36454]=e}}function fe(e,A){var t,r,n=0,a=0,s=0,o=0,d=0,f=0,p=0,h=0,b=0,w=0,k=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0;j=t=j-48|0,u(+e),a=0|l(1),n=0|l(0),r=a;e:{A:{t:{if((d=2147483647&a)>>>0<=1074752122){if(598523==(1048575&a))break t;if(d>>>0<=1073928572){if((0|r)>0|(0|r)>=0){o=(e+=-1.5707963267341256)+-6077100506506192e-26,m[A>>3]=o,m[A+8>>3]=e-o-6077100506506192e-26,a=1;break e}o=(e+=1.5707963267341256)+6077100506506192e-26,m[A>>3]=o,m[A+8>>3]=e-o+6077100506506192e-26,a=-1;break e}if((0|r)>0|(0|r)>=0){o=(e+=-3.1415926534682512)+-1.2154201013012384e-10,m[A>>3]=o,m[A+8>>3]=e-o-1.2154201013012384e-10,a=2;break e}o=(e+=3.1415926534682512)+1.2154201013012384e-10,m[A>>3]=o,m[A+8>>3]=e-o+1.2154201013012384e-10,a=-2;break e}if(d>>>0<=1075594811){if(d>>>0<=1075183036){if(1074977148==(0|d))break t;if((0|r)>0|(0|r)>=0){o=(e+=-4.712388980202377)+-1.8231301519518578e-10,m[A>>3]=o,m[A+8>>3]=e-o-1.8231301519518578e-10,a=3;break e}o=(e+=4.712388980202377)+1.8231301519518578e-10,m[A>>3]=o,m[A+8>>3]=e-o+1.8231301519518578e-10,a=-3;break e}if(1075388923==(0|d))break t;if((0|r)>0|(0|r)>=0){o=(e+=-6.2831853069365025)+-2.430840202602477e-10,m[A>>3]=o,m[A+8>>3]=e-o-2.430840202602477e-10,a=4;break e}o=(e+=6.2831853069365025)+2.430840202602477e-10,m[A>>3]=o,m[A+8>>3]=e-o+2.430840202602477e-10,a=-4;break e}if(d>>>0>1094263290)break A}n=(G=(o=e+-1.5707963267341256*(h=.6366197723675814*e+6755399441055744-6755399441055744))-(w=6077100506506192e-26*h))<-.7853981633974483,a=I(h)<2147483648?~~h:-2147483648,n?(a=a-1|0,w=6077100506506192e-26*(h+=-1),o=e+-1.5707963267341256*h):G>.7853981633974483&&(a=a+1|0,w=6077100506506192e-26*(h+=1),o=e+-1.5707963267341256*h),e=o-w,m[A>>3]=e,u(+e),n=0|l(1),l(0),((s=d>>>20|0)-(n>>>20&2047)|0)<17||(w=o,e=(o-=e=6077100506303966e-26*h)-(w=20222662487959506e-37*h-(w-o-e)),m[A>>3]=e,u(+e),n=0|l(1),l(0),(s-(n>>>20&2047)|0)<50||(w=o,e=(o-=e=20222662487111665e-37*h)-(w=84784276603689e-45*h-(w-o-e)),m[A>>3]=e)),m[A+8>>3]=o-e-w;break e}if(d>>>0>=2146435072)e-=e,m[A>>3]=e,m[A+8>>3]=e,a=0;else{for(c(0,0|n),c(1,1048575&r|1096810496),e=+g(),a=0,n=1;s=(t+16|0)+(a<<3)|0,o=+(0|(a=I(e)<2147483648?~~e:-2147483648)),m[s>>3]=o,e=16777216*(e-o),a=1,s=n,n=0,s;);for(m[t+32>>3]=e,a=2;a=(n=a)-1|0,0==m[(t+16|0)+(n<<3)>>3];);if(D=t+16|0,s=0,j=f=j-560|0,d=C(M=(0|(d=((a=(d>>>20|0)-1046|0)-3|0)/24|0))>0?d:0,-24)+a|0,((k=i[28105])+(p=(y=n+1|0)-1|0)|0)>=0)for(a=k+y|0,n=M-p|0;m[(f+320|0)+(s<<3)>>3]=(0|n)<0?0:+i[112432+(n<<2)>>2],n=n+1|0,(0|a)!=(0|(s=s+1|0)););for(v=d-24|0,a=0,s=(0|k)>0?k:0,B=(0|y)<=0;;){if(B)e=0;else for(b=a+p|0,n=0,e=0;e=m[(n<<3)+D>>3]*m[(f+320|0)+(b-n<<3)>>3]+e,(0|y)!=(0|(n=n+1|0)););if(m[(a<<3)+f>>3]=e,n=(0|a)==(0|s),a=a+1|0,n)break}z=47-d|0,Q=48-d|0,F=d-25|0,a=k;A:{for(;;){if(e=m[(a<<3)+f>>3],n=0,s=a,!(b=(0|a)<=0))for(;B=(f+480|0)+(n<<2)|0,p=I(o=5.960464477539063e-8*e)<2147483648?~~o:-2147483648,p=I(e=-16777216*(o=+(0|p))+e)<2147483648?~~e:-2147483648,i[B>>2]=p,e=m[((s=s-1|0)<<3)+f>>3]+o,(0|a)!=(0|(n=n+1|0)););e=mt(e,v),e+=-8*x(.125*e),e-=+(0|(B=I(e)<2147483648?~~e:-2147483648));t:{r:{n:{if(T=(0|v)<=0){if(v)break n;p=i[476+((a<<2)+f|0)>>2]>>23}else E=s=(a<<2)+f|0,s=(p=i[s+476>>2])-((n=p>>Q)<<Q)|0,i[E+476>>2]=s,B=n+B|0,p=s>>z;if((0|p)<=0)break t;break r}if(p=2,!(e>=.5)){p=0;break t}}if(n=0,s=0,!b)for(;P=i[(E=(f+480|0)+(n<<2)|0)>>2],b=16777215,s||(b=16777216,P)?(i[E>>2]=b-P,s=1):s=0,(0|a)!=(0|(n=n+1|0)););r:if(!T){n=8388607;n:switch(0|F){case 1:n=4194303;break;case 0:break n;default:break r}i[476+(b=(a<<2)+f|0)>>2]=i[b+476>>2]&n}B=B+1|0,2==(0|p)&&(e=1-e,p=2,s&&(e-=mt(1,v)))}if(0!=e)break;if(s=0,!((0|k)>=(0|(n=a)))){for(;s=i[(f+480|0)+((n=n-1|0)<<2)>>2]|s,(0|n)>(0|k););if(s){for(d=v;d=d-24|0,!i[(f+480|0)+((a=a-1|0)<<2)>>2];);break A}}for(n=1;s=n,n=n+1|0,!i[(f+480|0)+(k-s<<2)>>2];);for(s=a+s|0;;){if(p=a+y|0,a=a+1|0,m[(f+320|0)+(p<<3)>>3]=i[112432+(M+a<<2)>>2],n=0,e=0,(0|y)>0)for(;e=m[(n<<3)+D>>3]*m[(f+320|0)+(p-n<<3)>>3]+e,(0|y)!=(0|(n=n+1|0)););if(m[(a<<3)+f>>3]=e,!((0|a)<(0|s)))break}a=s}(e=mt(e,24-d|0))>=16777216?(v=(f+480|0)+(a<<2)|0,n=I(o=5.960464477539063e-8*e)<2147483648?~~o:-2147483648,s=I(e=-16777216*+(0|n)+e)<2147483648?~~e:-2147483648,i[v>>2]=s,a=a+1|0):(n=I(e)<2147483648?~~e:-2147483648,d=v),i[(f+480|0)+(a<<2)>>2]=n}if(e=mt(1,d),!((0|a)<0)){for(n=a;s=n,m[(n<<3)+f>>3]=e*+i[(f+480|0)+(n<<2)>>2],n=n-1|0,e*=5.960464477539063e-8,s;);if(b=0,!((0|a)<0))for(d=(0|k)>0?k:0,s=a;;){for(v=d>>>0<b>>>0?d:b,k=a-s|0,n=0,e=0;e=m[115200+(n<<3)>>3]*m[(n+s<<3)+f>>3]+e,y=(0|n)!=(0|v),n=n+1|0,y;);if(m[(f+160|0)+(k<<3)>>3]=e,s=s-1|0,n=(0|a)!=(0|b),b=b+1|0,!n)break}}if(e=0,(0|a)>=0)for(n=a;s=n,n=n-1|0,e+=m[(f+160|0)+(s<<3)>>3],s;);if(m[t>>3]=p?-e:e,e=m[f+160>>3]-e,n=1,(0|a)>0)for(;e+=m[(f+160|0)+(n<<3)>>3],s=(0|n)!=(0|a),n=n+1|0,s;);m[t+8>>3]=p?-e:e,j=f+560|0,a=7&B,e=m[t>>3],(0|r)<0?(m[A>>3]=-e,m[A+8>>3]=-m[t+8>>3],a=0-a|0):(m[A>>3]=e,m[A+8>>3]=m[t+8>>3])}}return j=t+48|0,a}function pe(){var e=0,A=0,t=0,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0,Y=0,H=0,R=0,W=0,V=0,j=0,U=0,K=0,X=0,q=0,J=0,_=0,$=0,ee=0;i[55925]=0,e=i[56772],i[56772]=e+1,t=i[55961],b=i[55922],k=st(39.89822670059037*(A=+(0|e))),d=st(22.30530784048753*A),A=+(0|b)/50*(+(0|t)/100)*(st(14.765485471872028*A)+(k+d))*10,e=I(A)<2147483648?~~A:-2147483648,i[56607]=e+i[56607];e:if(!(i[55923]<=0)){for(;;){for(t=rr(i[33209],0,1103515245,0),e=Z,e=gn(t=t+12345|0,e=t>>>0<12345?e+1|0:e),i[33209]=e,e=8191+((e>>>0)%16383|0)|0,i[55929]=e,N=+(0|e),A=.75*m[28387]+N,m[28387]=A,O=(0|(e=i[55924]))>(0|(D=i[55928]))?.5*A:A,R=(n=.033*+i[56652])>0?1-n:1,t=i[56650]<<2,P=1==(0|(T=i[55921]))&&(0|t)>263?263:t,W=111136+((L=i[56651])<<1)|0,V=111136+((z=i[56658])<<1)|0,j=(0|z)>0,Y=i[55918],U=C(Y,40),K=i[55925],X=m[27967],H=i[56607],A=m[27979],B=m[27969],g=m[27970],F=i[56780],E=i[56654],p=m[27976],w=m[27972],v=m[28388],y=m[28389],b=i[55927],r=m[28383],f=i[55926],M=i[55956],q=m[27975],d=m[28131],l=m[28130],c=m[28123],x=m[28121],u=m[28122],Q=m[28120],G=m[28119],J=m[28129],_=m[28128],$=m[28127],ee=nt(0*m[27968]),S=0;;){k=l;A:{t:switch(T-1|0){case 0:v=0,l=x*c,c=u,u=r=l+(G*(v=(0|e)<=2?m[111312+(e<<3)>>3]:v)+Q*c);break A;case 1:if(r=0,(0|e)>=(0|b)){y=0;break A}l=m[27965]-m[27966],m[27965]=l,r=.028*(y=l+y);break A;case 2:if(!f){M=100,r=0;break A}M=100,t=I(l=+(0|e)/+(0|f)*100)<2147483648?~~l:-2147483648,r=+s[110928+((0|t)%100<<1)>>1],r=A*((+s[110928+((t+1|0)%100<<1)>>1]-r)*(l-+(0|t))+r);break A;case 3:break t;default:break A}f?(M=256,t=I(l=+(0|e)/+(0|f)*256)<2147483648?~~l:-2147483648,r=+s[111344+((0|t)%256<<1)>>1],r=A*((+s[111344+((t+1|0)%256<<1)>>1]-r)*(l-+(0|t))+r)):(M=256,r=0)}if((0|e)>=(0|f)&&((0|H)>0?(e=(0|U)/(0|H)|0,p=0,w=0,w=z>>>0<=87?.001*+s[V>>1]:w,p=L>>>0<=87?.001*+s[W>>1]*.1:p,D=e>>j,b=(0|(t=(f=(e-1|0)<=(0|P))?e-2|0:P))<=40?40:t,l=+s[111776+((b=f||(0|t)<40?b:P)<<1)>>1],m[27966]=l,x=l,l=+(0|b),m[27965]=x*l*.333,E=(0|(t=e-b|0))>(0|E)?E:t,F=0-(t=(0|F)<0?0-E|0:E)|0,G=(l*=.00833)*l,G*=1-(Q=(x=(l=$e(X*+((0|Y)/(0|b)|0)))*ee)+x)-(x=l*-l),e=4!=(0|(f=e+t|0))):(i[55930]=0,i[55931]=0,i[55932]=0,i[55933]=0,D=4,p=0,w=0,f=4,e=0),g=(e|=!K)?n:g,B=e?R:B,e=0),e=e+1|0,l=r=J*d+($*r+_*k),d=k,4==(0|(S=S+1|0)))break}if(i[55926]=f,i[55956]=M,i[55924]=e,m[28383]=r,i[55927]=b,m[28389]=y,m[28388]=v,m[27972]=w,m[27976]=p,i[55928]=D,i[56654]=E,i[56780]=F,m[27970]=g,m[27969]=B,m[28122]=u,m[28120]=Q,m[28119]=G,m[28123]=c,m[28121]=x,m[28131]=d,m[28130]=r,5==(0|T)&&(r=6e3*((A=+(0|e)/+(0|f))+A+-1),m[28383]=r),A=r*B+m[28384]*g,m[28383]=A,m[28384]=A,(0|e)<(0|b)&&(A=p*N+A,m[28383]=A),g=O*m[27974],k=A*m[27973]+g,d=0,2!=i[55916]&&(d=m[27987],u=m[27986],m[27987]=u,A=g+A*w,m[27986]=A,g=m[28059],c=m[28058],m[28059]=c,A=g*m[28057]+(m[28055]*(d*m[27985]+(m[27983]*A+u*m[27984]))+c*m[28056]),m[28058]=A,d=m[28049],g=m[28051],u=m[28048],c=m[28047],n=m[28050],m[28051]=n,A=d*g+(c*A+u*n),m[28050]=A,d=m[28043],g=m[28041],u=m[28040],c=m[28039],n=m[28042],m[28043]=n,A=g*d+(c*A+u*n),m[28042]=A,d=m[28035],g=m[28033],u=m[28032],c=m[28031],n=m[28034],m[28035]=n,A=g*d+(c*A+u*n),m[28034]=A,d=m[28027],g=m[28025],u=m[28024],c=m[28023],n=m[28026],m[28027]=n,A=g*d+(c*A+u*n),m[28026]=A,d=m[28019],g=m[28017],u=m[28016],c=m[28015],n=m[28018],m[28019]=n,A=g*d+(c*A+u*n),m[28018]=A,d=m[28011],g=m[28009],u=m[28008],c=m[28007],n=m[28010],m[28011]=n,A=g*d+(c*A+u*n),m[28010]=A,d=m[28003],g=m[28001],u=m[28e3],c=m[27999],n=m[28002],m[28003]=n,A=g*d+(c*A+u*n),m[28002]=A,d=m[27995],g=m[27993],u=m[27992],c=m[27991],n=m[27994],m[27995]=n,d=g*d+(c*A+u*n),m[27994]=d),A=m[28385],m[28385]=k,g=m[28075],u=m[28074],m[28075]=u,c=m[28067],n=m[28066],m[28067]=n,g=g*m[28073]+(m[28071]*k+u*m[28072]),m[28074]=g,u=c*m[28065]+(m[28063]*k+n*m[28064]),m[28066]=u,c=m[28081],n=m[28083],l=m[28079],r=m[28080],p=m[28082],m[28083]=p,k=c*n+(l*(A=q*O+k-A)+r*p),m[28082]=k,c=m[28091],n=m[28089],l=m[28087],r=m[28088],p=m[28090],m[28091]=p,c=n*c+(l*A+r*p),m[28090]=c,n=m[28099],l=m[28097],r=m[28095],p=m[28096],w=m[28098],m[28099]=w,n=l*n+(r*A+p*w),m[28098]=n,l=m[28107],r=m[28105],p=m[28103],w=m[28104],B=m[28106],m[28107]=B,l=r*l+(p*A+w*B),m[28106]=l,r=m[28115],p=m[28113],w=m[28111],B=m[28112],v=m[28114],m[28115]=v,r=p*r+(w*A+B*v),m[28114]=r,p=m[28139],w=m[28137],B=m[28136],v=m[28135],y=m[27971],x=m[28138],m[28139]=x,A=w*p+(v*(A*y-(r-(l-(n-(c-(k-(d+g+u)))))))+B*x),m[28138]=A,A=m[27977]*(A*+i[50779]),r=+(0|(e=I(A)<2147483648?~~A:-2147483648)),(0|(e=i[50776]))<i[50773]&&(f=e+1|0,t=i[50772],(b=i[50774])?(i[50776]=f,e=C(b,a[e+t|0])):(b=o[e+t|0],t=a[t+f|0],i[50776]=e+2,e=b|t<<8),r+=+((0|C(i[50775],(0|C(e,i[50780]))/1024|0))/40|0)),(0|(e=i[55962]))<=63&&(i[55962]=e+1,r=r*+(0|e)*.015625),(0|(e=i[55963]))<=0||(e=e-1|0,i[55963]=e,r=r*+(0|e)*.015625,e||(i[55962]=0)),t=(e=i[51293])+1|0,i[51293]=t,f=C(s[205184+(e<<1)>>1],i[50755])>>8,e=I(r)<2147483648?~~r:-2147483648,(0|t)>=5500&&(i[51293]=0),t=i[51290],i[51290]=t+1,e=(0|(e=(0|(e=e+f|0))<=-32768?-32768:e))>=32767?32767:e,a[0|t]=e,t=i[51290],i[51290]=t+1,a[0|t]=e>>>8,f=(t=i[51292])+1|0,i[51292]=f,s[205184+(t<<1)>>1]=e,(0|f)>=5500&&(i[51292]=0),f=1,i[56606]=i[56606]+1,h[54046]<i[51290]+2>>>0)break e;if(e=i[55925]+1|0,i[55925]=e,!((0|e)<i[55923]))break}f=0}return f}function he(e,A,t,r,n,l,c){var g,u,d,f=0,p=0,h=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0;j=g=j-80|0,i[g+76>>2]=A,d=g+55|0,u=g+56|0;e:{A:{t:{r:{n:for(;;){if(h=A,(2147483647^x)<(0|f))break r;x=f+x|0;a:{s:{i:{if(p=o[0|(f=h)])for(;;){o:{l:if(A=255&p){if(37!=(0|A))break o;for(p=f;;){if(37!=o[p+1|0]){A=p;break l}if(f=f+1|0,I=o[p+2|0],p=A=p+2|0,37!=(0|I))break}}else A=f;if((0|(f=f-h|0))>(0|(D=2147483647^x)))break r;if(e&&dn(e,h,f),f)continue n;i[g+76>>2]=A,f=A+1|0,B=-1,36!=o[A+2|0]|a[A+1|0]-48>>>0>=10||(B=a[A+1|0]-48|0,E=1,f=A+3|0),i[g+76>>2]=f,w=0;l:if((A=(p=a[0|f])-32|0)>>>0>31)k=f;else if(k=f,75913&(A=1<<A))for(;;){if(k=f+1|0,i[g+76>>2]=k,w|=A,(A=(p=a[f+1|0])-32|0)>>>0>=32)break l;if(f=k,!(75913&(A=1<<A)))break}l:if(42!=(0|p)){if((0|(v=_t(g+76|0)))<0)break r;p=i[g+76>>2]}else{if(36!=o[k+2|0]|a[k+1|0]-48>>>0>=10){if(E)break i;if(p=k+1|0,!e){i[g+76>>2]=p,E=0,v=0;break l}A=i[t>>2],i[t>>2]=A+4,E=0,A=i[A>>2]}else i[((a[k+1|0]<<2)+n|0)-192>>2]=10,p=k+3|0,E=1,A=i[((a[k+1|0]<<3)+r|0)-384>>2];if(i[g+76>>2]=p,v=A,(0|A)>=0)break l;v=0-v|0,w|=8192}if(f=0,b=-1,46==o[0|p])if(42!=o[p+1|0])i[g+76>>2]=p+1,b=_t(g+76|0),A=i[g+76>>2],G=1;else{if(36!=o[p+3|0]|a[p+2|0]-48>>>0>=10){if(E)break i;A=p+2|0,b=0,e&&(p=i[t>>2],i[t>>2]=p+4,b=i[p>>2])}else i[((a[p+2|0]<<2)+n|0)-192>>2]=10,A=p+4|0,b=i[((a[p+2|0]<<3)+r|0)-384>>2];i[g+76>>2]=A,G=~b>>>31|0}else A=p,G=0;for(;;){if(y=f,k=28,I=A,(f=a[0|A])-123>>>0<4294967238)break t;if(A=I+1|0,!((f=o[123983+(f+C(y,58)|0)|0])-1>>>0<8))break}i[g+76>>2]=A;l:{c:{if(27!=(0|f)){if(!f)break t;if((0|B)>=0){i[(B<<2)+n>>2]=f,f=i[4+(p=(B<<3)+r|0)>>2],i[g+64>>2]=i[p>>2],i[g+68>>2]=f;break c}if(!e)break a;CA(g- -64|0,f,t,c);break l}if((0|B)>=0)break t}if(f=0,!e)continue n}p=-65537&w,w=8192&w?p:w,B=0,M=84065,k=u;l:{c:{g:{u:{d:{f:{p:{h:{m:{C:{b:{I:{w:{k:{x:{B:switch(f=a[0|I],(f=y&&3==(15&f)?-33&f:f)-88|0){case 11:break l;case 9:case 13:case 14:case 15:break c;case 27:break p;case 12:case 17:break C;case 23:break b;case 0:case 32:break I;case 24:break w;case 22:break k;case 29:break x;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 s}B:switch(f-65|0){case 0:case 4:case 5:case 6:break c;case 2:break d;case 1:case 3:break s}if(83==(0|f))break f;break s}p=i[g+64>>2],I=i[g+68>>2],M=84065;break m}f=0;k:switch(255&y){case 0:case 1:case 6:i[i[g+64>>2]>>2]=x;continue n;case 2:h=i[g+64>>2],i[h>>2]=x,i[h+4>>2]=x>>31;continue n;case 3:s[i[g+64>>2]>>1]=x;continue n;case 4:a[i[g+64>>2]]=x;continue n;case 7:break k;default:continue n}h=i[g+64>>2],i[h>>2]=x,i[h+4>>2]=x>>31;continue n}b=b>>>0<=8?8:b,w|=8,f=120}if(h=u,Q=32&f,(p=i[g+64>>2])|(I=i[g+68>>2]))for(;a[0|(h=h-1|0)]=Q|o[124512+(15&p)|0],T=!I&p>>>0>15|!!(0|I),y=I,I=I>>>4|0,p=(15&y)<<28|p>>>4,T;);if(!(i[g+64>>2]|i[g+68>>2])|!(8&w))break h;M=84065+(f>>>4|0)|0,B=2;break h}if(f=u,I=h=i[g+68>>2],h|(p=i[g+64>>2]))for(;a[0|(f=f-1|0)]=7&p|48,y=!I&p>>>0>7|!!(0|I),I=(h=I)>>>3|0,p=(7&h)<<29|p>>>3,y;);if(h=f,!(8&w))break h;b=(0|(f=u-h|0))<(0|b)?b:f+1|0;break h}p=i[g+64>>2],I=f=i[g+68>>2],(0|f)<0?(I=h=0-(I+!!(0|p)|0)|0,p=0-p|0,i[g+64>>2]=p,i[g+68>>2]=h,B=1,M=84065):2048&w?(B=1,M=84066):M=(B=1&w)?84067:84065}h=Kt(p,I,u)}if((0|b)<0&&G)break r;if(w=G?-65537&w:w,!(b|!!((f=i[g+64>>2])|(p=i[g+68>>2])))){h=u,b=0;break s}b=(0|(f=!(f|p)+(u-h|0)|0))<(0|b)?b:f;break s}if(k=(f=(f=JA(h=(f=i[g+64>>2])||84639,0,I=b>>>0>=2147483647?2147483647:b))?f-h|0:I)+h|0,(0|b)>=0){w=p,b=f;break s}if(w=p,b=f,o[0|k])break r;break s}if(b){p=i[g+64>>2];break u}f=0,or(e,32,v,0,w);break g}i[g+12>>2]=0,i[g+8>>2]=i[g+64>>2],p=g+8|0,i[g+64>>2]=p,b=-1}f=0;u:{for(;;){if(!(h=i[p>>2]))break u;if(!((h=(0|(I=XA(g+4|0,h)))<0)|I>>>0>b-f>>>0)){if(p=p+4|0,b>>>0>(f=f+I|0)>>>0)continue;break u}break}if(h)break A}if(k=61,(0|f)<0)break t;if(or(e,32,v,f,w),f)for(k=0,p=i[g+64>>2];;){if(!(h=i[p>>2]))break g;if((k=(h=XA(g+4|0,h))+k|0)>>>0>f>>>0)break g;if(dn(e,g+4|0,h),p=p+4|0,!(f>>>0>k>>>0))break}else f=0}or(e,32,v,f,8192^w),f=(0|f)<(0|v)?v:f;continue n}if((0|b)<0&&G)break r;if(k=61,(0|(f=0|Tn[0|l](e,m[g+64>>3],v,b,w,f)))>=0)continue n;break t}a[g+55|0]=i[g+64>>2],b=1,h=d,w=p;break s}p=o[f+1|0],f=f+1|0}if(e)break e;if(!E)break a;for(f=1;;){if(e=i[(f<<2)+n>>2]){if(CA((f<<3)+r|0,e,t,c),x=1,10!=(0|(f=f+1|0)))continue;break e}break}if(x=1,f>>>0>=10)break e;for(;;){if(i[(f<<2)+n>>2])break i;if(10==(0|(f=f+1|0)))break}break e}k=28;break t}if((0|(p=(0|b)>(0|(I=k-h|0))?b:I))>(2147483647^B))break r;if(k=61,(0|D)<(0|(f=(0|(b=p+B|0))<(0|v)?v:b)))break t;or(e,32,f,b,w),dn(e,M,B),or(e,48,f,b,65536^w),or(e,48,p,I,0),dn(e,h,I),or(e,32,f,b,8192^w);continue}break}x=0;break e}k=61}i[56798]=k}x=-1}return j=g+80|0,x}function me(e,A,t,r,n,a,s,o,l){var c,g,u,d=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0,O=0,L=0,Y=0,H=0,R=0,W=0,V=0;j=c=j-96|0,B=65535&l,m=-2147483648&(n^l),G=b=65535&n;e:{if(!((g=l>>>16&32767)-32767>>>0>4294934529&(u=n>>>16&32767)-32767>>>0>=4294934530)){if(d=r,!(!r&2147418112==(0|(I=k=2147483647&n))?!(A|t):I>>>0<2147418112)){p=r,m=32768|n;break e}if(!(!(n=o)&2147418112==(0|(C=k=2147483647&l))?!(a|s):C>>>0<2147418112)){p=o,m=32768|l,A=a,t=s;break e}if(!(A|d|2147418112^I|t)){if(!(n|a|s|C)){m=2147450880,A=0,t=0;break e}m|=2147418112,A=0,t=0;break e}if(!(n|a|2147418112^C|s)){if(n=A|d,r=t|I,A=0,t=0,!(r|n)){m=2147450880;break e}m|=2147418112;break e}if(!(A|d|t|I)){A=0,t=0;break e}if(!(n|a|s|C)){A=0,t=0;break e}65535==(0|I)|I>>>0<65535&&(k=(d=!(r|b))<<6,n=w(l=d?A:r)+32|0,jA(c+80|0,A,t,r,b,(l=k+(32==(0|(l=w(d?t:b)))?n:l)|0)-15|0),x=16-l|0,r=i[c+88>>2],G=i[c+92>>2],t=i[c+84>>2],A=i[c+80>>2]),C>>>0>65535||(b=(l=!(o|B))<<6,d=w(n=l?a:o)+32|0,jA(c- -64|0,a,s,o,B,(n=b+(32==(0|(n=w(l?s:B)))?d:n)|0)-15|0),x=16+(x-n|0)|0,o=i[c+72>>2],B=i[c+76>>2],a=i[c+64>>2],s=i[c+68>>2])}if(n=a,a=s<<15|a>>>17,L=t,k=rr(v=-32768&(l=n<<15),n=0,t,0),M=n=Z,Y=a,I=A,A=rr(a,0,A,0),a=Z+n|0,t=A>>>0>(l=A+k|0)>>>0?a+1|0:a,d=0,A=rr(I,f,v,f),n=(a=l)+Z|0,b=n=A>>>0>(C=d+A|0)>>>0?n+1|0:n,H=(0|a)==(0|n)&d>>>0>C>>>0|n>>>0<a>>>0,R=r,y=rr(v,f,r,0),W=Z,A=rr(L,f,Y,f),d=Z+W|0,d=A>>>0>(E=A+y|0)>>>0?d+1|0:d,A=B<<15|o>>>17,r=rr(D=o<<15|s>>>17,0,I,f),a=Z+d|0,T=a=r>>>0>(Q=r+E|0)>>>0?a+1|0:a,a=(r=(0|t)==(0|M)&l>>>0<k>>>0|t>>>0<M>>>0)+a|0,B=a=t>>>0>(P=t+Q|0)>>>0?a+1|0:a,s=P,t=a,G=rr(v,f,z=65536|G,h),V=Z,r=rr(R,p,Y,f),n=Z+V|0,l=n=r>>>0>(F=r+G|0)>>>0?n+1|0:n,A=rr(S=-2147483648|A,0,I,f),a=Z+n|0,a=A>>>0>(N=A+F|0)>>>0?a+1|0:a,A=rr(D,p,L,f),O=a,a=a+Z|0,k=A>>>0>(M=A+N|0)>>>0?a+1|0:a,n=t+M|0,a=v=(A=0)>>>0>(I=A+s|0)>>>0?n+1|0:n,t=(A=I+H|0)>>>0<I>>>0?a+1|0:a,x=((u+g|0)+x|0)-16383|0,r=rr(S,p,L,f),o=Z,n=rr(z,p,Y,f),a=Z+o|0,h=(0|o)==(0|(a=n>>>0>(s=n+r|0)>>>0?a+1|0:a))&r>>>0>s>>>0|a>>>0<o>>>0,o=a,n=rr(D,p,R,p),a=Z+a|0,n=a=(r=n+s|0)>>>0<n>>>0?a+1|0:a,s=(0|a)==(0|o)&r>>>0<s>>>0|a>>>0<o>>>0,a=0,a=(o=s)>>>0>(s=s+h|0)>>>0?1:a,o=s,s=rr(S,p,z,p),a=Z+a|0,H=o=o+s|0,s=s>>>0>o>>>0?a+1|0:a,o=r,f=n,n=(0|d)==(0|W)&y>>>0>E>>>0|d>>>0<W>>>0,a=0,n=((h=d=(0|d)==(0|T)&E>>>0>Q>>>0|d>>>0>T>>>0)>>>0>(d=n+d|0)>>>0?1:a)+f|0,a=s,h=n=(r=r+d|0)>>>0<d>>>0?n+1|0:n,y=r,n=r=(0|n)==(0|f)&r>>>0<o>>>0|n>>>0<f>>>0,d=r=r+H|0,s=a=n>>>0>r>>>0?a+1|0:a,n=rr(D,p,z,p),f=Z,r=rr(S,p,R,p),a=Z+f|0,r=a=r>>>0>(o=r+n|0)>>>0?a+1|0:a,n=(a=(0|f)==(0|a)&n>>>0>o>>>0|a>>>0<f>>>0)+s|0,s=n=r>>>0>(E=r+d|0)>>>0?n+1|0:n,a=o+h|0,n=a=(r=(n=0)+y|0)>>>0<n>>>0?a+1|0:a,o=(0|h)==(0|a)&r>>>0<y>>>0|a>>>0<h>>>0,a=s,a=(s=o+(f=E)|0)>>>0<o>>>0?a+1|0:a,y=s,o=r,d=n,n=(r=(r=(r=(0|l)==(0|V)&G>>>0>F>>>0|l>>>0<V>>>0)+(l=(0|l)==(0|O)&F>>>0>N>>>0|l>>>0>O>>>0)|0)+(n=(0|k)==(0|O)&M>>>0<N>>>0|k>>>0<O>>>0)|0)+d|0,a=s=a,d=s=(o=(0|(n=(r=l=(h=k)+o|0)>>>0<h>>>0?n+1|0:n))==(0|d)&o>>>0>r>>>0|n>>>0<d>>>0)+y|0,s=a=o>>>0>s>>>0?a+1|0:a,o=r,a=0,l=n,n=n+((f=h=(0|B)==(0|v)&I>>>0<P>>>0|B>>>0>v>>>0)>>>0>(h=h+((0|B)==(0|T)&Q>>>0>P>>>0|B>>>0<T>>>0)|0)>>>0?1:a)|0,a=s,l=a=(s=o=(0|(n=(r=r+h|0)>>>0<h>>>0?n+1|0:n))==(0|l)&r>>>0<o>>>0|n>>>0<l>>>0)>>>0>(o=o+d|0)>>>0?a+1|0:a,65536&a?x=x+1|0:(d=b>>>31|0,a=l<<1|o>>>31,o=o<<1|n>>>31,l=a,a=n<<1|r>>>31,r=r<<1|t>>>31,n=a,a=b<<1|C>>>31,C<<=1,b=a,a=t<<1|A>>>31,A=A<<1|d,t=a|(s=0)),(0|x)>=32767)m|=2147418112,A=0,t=0;else{A:{if((0|x)<=0){if((s=1-x|0)>>>0<=127){jA(c+48|0,C,b,A,t,a=x+127|0),jA(c+32|0,r,n,o,l,a),YA(c+16|0,C,b,A,t,s),YA(c,r,n,o,l,s),C=i[c+32>>2]|i[c+16>>2]|!!(i[c+48>>2]|i[c+56>>2]|i[c+52>>2]|i[c+60>>2]),b=i[c+36>>2]|i[c+20>>2],A=i[c+40>>2]|i[c+24>>2],t=i[c+44>>2]|i[c+28>>2],r=i[c>>2],n=i[c+4>>2],s=i[c+8>>2],a=i[c+12>>2];break A}A=0,t=0;break e}s=o,a=65535&l|x<<16}p|=s,m|=a,(!A&-2147483648==(0|t)?!(C|b):(0|t)>0|(0|t)>=0)?A|C|-2147483648^t|b?(A=r,t=n):(d=m,m=(r=(0|(a=n))==(0|(t=(t=A=1&r)>>>0>(A=A+r|0)>>>0?a+1|0:a))&A>>>0<r>>>0|t>>>0<a>>>0)>>>0>(p=r+p|0)>>>0?d+1|0:d):(r=(0|n)==(0|(t=(A=r+1|0)?n:n+1|0))&A>>>0<r>>>0|t>>>0<n>>>0,n=m,m=(p=r+p|0)>>>0<r>>>0?n+1|0:n)}}i[e>>2]=A,i[e+4>>2]=t,i[e+8>>2]=p,i[e+12>>2]=m,j=c+96|0}function Ce(e,A,t,r,n,s,l){var c,g=0,u=0,d=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0;j=c=j-480|0,i[c+476>>2]=0,i[c+456>>2]=0,i[c+460>>2]=0,i[c+448>>2]=0,i[c+452>>2]=0,i[c+440>>2]=0,i[c+444>>2]=0,i[c+432>>2]=0,i[c+436>>2]=0,g=0;e:if(i[e+684>>2]){for(m=l?i[l>>2]:m;d=o[A+g|0],a[(c+112|0)+g|0]=d,u=g+1|0,d&&(d=g>>>0<158,g=u,d););if(a[u+(c+112|0)|0]=0,!((I=268435456&s)|!(8&i[47197]))){u=0;A:if(223&(d=o[0|A]))for(g=0;;){if(a[(c+272|0)+g|0]=d,!(223&(d=o[(u=g+1|0)+A|0])))break A;if(f=g>>>0<118,g=u,!f)break}a[(g=c+272|0)+u|0]=0,i[c+48>>2]=g,en(i[47195],(0|s)>=0?87019:86877,c+48|0)}i[c+464>>2]=A,i[e+8208>>2]=0,i[e+8212>>2]=0,n&&(a[0|n]=0);A:{t:if(223&(g=o[0|A]))for(w=536870912&s,k=4096&s,x=c+105|0,u=A,d=0;;){f=VA(c+476|0,u),b=!!(0|dt(i[c+476>>2]))+b|0,h=o[7668+(g=(p=255&g)+e|0)|0];r:if(!((C=i[c+476>>2])-48>>>0<10|C-2406>>>0<10)|(b?o[e+170|0]:0)){n:if((d=i[c+476>>2]-i[e+600>>2]|0)>>>0>127||!(d=i[6192+((d<<2)+e|0)>>2])){if(h){for(C=5168+((p<<2)+e|0)|0,h=h+(g=o[g+7924|0])|0,B=p|o[u+1|0]<<8,d=0;i[7184+(u=(g<<2)+e|0)>>2]==(0|B)&&(i[c+472>>2]=i[c+464>>2],re(e,c+472|0,A,2,i[u+6704>>2],c+432|0,s,m),(0|(u=i[c+432>>2]))>0&&(u=u+35|0,i[c+432>>2]=u),d=1,re(e,c+464|0,A,1,i[C>>2],c+448|0,s,m),i[c+448>>2]>(0|u)||(u=i[c+444>>2],i[c+456>>2]=i[c+440>>2],i[c+460>>2]=u,u=i[c+436>>2],i[c+448>>2]=i[c+432>>2],i[c+452>>2]=u,i[c+464>>2]=i[c+472>>2])),h>>>0>(g=g+1|0)>>>0;);if(d)break n}a:{s:{if(!(g=i[5168+((p<<2)+e|0)>>2])){if(re(e,c+464|0,A,0,i[e+5168>>2],c+448|0,s,m),i[c+448>>2])break a;if(16&o[188808])break s;if(d=VA(c+468|0,p=(u=i[c+464>>2])-1|0),g=i[c+468>>2],!(i[e+600>>2]<=0|(0|g)>577)){if(Or(g)){i[c+32>>2]=21,vt(t,87049,c+32|0);break A}g=i[c+468>>2]}if(57384==(0|g)&&((0|(h=i[e+92>>2]))<=i[47352]||(i[47352]=h)),rn(g)&&((0|(g=i[e+72>>2]))<=i[47352]||(i[47352]=g)),!((h=(g=i[c+468>>2])-192|0)>>>0>413)&&(h=o[h+94240|0])&&(d=d-1|0,!(32==o[u-2|0]&32==o[d+u|0]))){for(i[c+472>>2]=p,a[0|p]=h;f=o[(g=u)+d|0],a[0|g]=f,u=g+1|0,32!=(0|f););if((0|d)>0&&kA(g,32,d),i[e+24>>2]&&!((0|zr(94222,i[c+468>>2]))<=0)){i[c+464>>2]=p,d=0;break r}d=0,a[0|t]=0,i[c+464>>2]=A,i[e+8208>>2]=0,i[e+8212>>2]=0;break r}if(!(g=aA(g)))break s;if((0|(u=i[g+4>>2]))==i[e+600>>2])break s;if((0|u)==i[e+188>>2]){i[c+4>>2]=kr(c- -64|0,i[e+192>>2]),i[c>>2]=21,vt(t,87218,c);break A}if(!(4&o[g+16|0]))break s;i[c+20>>2]=kr(c- -64|0,i[g+12>>2]),i[c+16>>2]=21,vt(t,87218,c+16|0);break A}if(re(e,c+464|0,A,1,g,c+448|0,s,m),i[c+448>>2])break a}s:if(!((g=i[c+476>>2])-768>>>0<112)){if(dt(g)){if(a[(f+i[c+464>>2]|0)-1|0]<33&(0|b)<=1)break s;if(a[0|t]=0,!l)break t;i[l>>2]=4096|i[l>>2];break t}wA(e,i[c+476>>2],-1,c+272|0,0),o[c+272|0]&&(i[c+448>>2]=1,i[c+452>>2]=c+272)}i[c+464>>2]=(f+i[c+464>>2]|0)-1;break n}i[e+288>>2]=0}else re(e,c+464|0,A,f,d,c+448|0,s,m);if(u=(g=i[c+452>>2])||86135,i[c+452>>2]=u,d=0,!(i[c+448>>2]<=0)){if(g=1|i[c+456>>2],(0|s)<0)break e;if(!(21!=o[0|u]|k)){rt(t,u);break A}if(!(!(8&i[47197])|I))n:if(g=i[47195],(0|(f=i[g+76>>2]))>=0&(!f|i[56823]!=(-1073741825&f)))p=i[(f=g+76|0)>>2],i[f>>2]=p||1073741823,10==i[g+80>>2]||(0|(p=i[g+20>>2]))==i[g+16>>2]?Yt(g):(i[g+20>>2]=p+1,a[0|p]=10),i[f>>2]=0;else{if(10!=i[g+80>>2]&&(0|(f=i[g+20>>2]))!=i[g+16>>2]){i[g+20>>2]=f+1,a[0|f]=10;break n}Yt(g)}if(f=-32769&(g=i[c+456>>2]),i[c+456>>2]=f,!(!n|!f|(1024&g?w:0))){e=i[c+464>>2],rt(n,u),g=f|(v=(t=e)-_e(A,e=c+112|0,Wt(e))|0,1024==(1151&g)?v:0);break e}(g=i[c+460>>2])&&(a[0|g]=69),at(e,t,r,u)}}else a[c+104|0]=95,_e(x,u,f),g=1,a[105+(c+f|0)|0]=0,Et(e,c+104|0,c- -64|0),d-1>>>0<=4294967293&&(g=Wt(g=c- -64|0)+g|0,a[0|g]=11,a[g+1|0]=0,g=0),at(e,t,r,c- -64|0),i[c+464>>2]=u+f,d=g;if(u=i[c+464>>2],!(223&(g=o[0|u])))break}_e(A,e=c+112|0,Wt(e))}g=0}return j=c+480|0,g}function be(e,A){var t,r=0,n=0,s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0;j=t=j-2976|0,i[A>>2]=1,r=i[e+20>>2],i[(c=t+2960|0)>>2]=i[e+16>>2],i[c+4>>2]=r,r=i[e+12>>2],i[(c=t+2952|0)>>2]=i[e+8>>2],i[c+4>>2]=r,r=i[e+4>>2],i[t+2944>>2]=i[e>>2],i[t+2948>>2]=r,i[50303]||xA();e:if(e=i[t+2948>>2],o[0|e]&&e||((e=i[t+2944>>2])||(e=(e=i[t+2952>>2])||85055,i[t+2944>>2]=e),fn(r=t+80|0,e,60),et(r,0),!(s=TA(201216,r))||(i[t+2948>>2]=i[s+4>>2]+1,o[t+2958|0]|o[t+2956|0]|o[t+2957|0]))){I=t+1536|0,j=m=j-336|0;A:if(!(!(e=i[4+(b=t+2944|0)>>2])|!o[0|e])){if((0|(w=Wt(e)))>=0){for(r=w>>>0>=79?79:w,d=1;e=nr(a[i[b+4>>2]+n|0]),a[(m+256|0)+n|0]=e,d=(45==(255&e))+d|0,e=(0|r)!=(0|n),n=n+1|0,e;);if(1!=(0|d))break A}d=1}if((0|(f=i[50303]))<=0)i[I>>2]=0,e=0;else{for(c=(0|d)>=0;;){u=i[201216+(B<<2)>>2];A:if(Dt(i[u+8>>2],88032,3)){if((e=i[b+4>>2])&&Dt(e,91687,3)){if(c){e=100;t:if(d){if(r=0,n=i[u+4>>2],!(k=o[0|n])){if(!Dt(m+256|0,90013,9))break t;break A}for(;;){for(v=1,g=n+1|0,x=1,y=0,n=0;(0|n)<(0|w)&&45!=(0|(e=a[(m+256|0)+n|0]))||(e=0),y=((p=45==(0|(h=o[n+g|0])))&!!(0|(x=(p?0:h)<<24>>24==(0|e)?x:0)))+y|0,n=n+1|0,v=p+v|0,h;);if(n=n+g|0,(p=x+y|0)&&(r=(0|(e=C((g=(0|(e=d-p|0))<=0?5:5-e|0)-((0|(e=v-p|0))>0?e:0)|0,100)-(k<<24>>24<<1)|0))>(0|r)?e:r),!(k=o[0|n]))break}if(!(e=r))break A}(r=i[b>>2])&&(e=hr(r,i[u>>2])?hr(r,i[u+8>>2])?e:e+400|0:e+500|0),((n=o[b+12|0])-1&255)>>>0>1||((r=o[u+12|0])-1&255)>>>0>1||(e=(0|r)!=(0|n)?e-50|0:e+50|0),n=o[b+13|0],e=2!=o[u+12|0]|n>>>0>12?e:o[u+13|0]>12?e+5|0:e,(r=o[u+13|0])&&((r=((n?C(n,100):3e3)>>>0)/(r>>>0)|0)>>>0<=99&&(r=1e4/(r>>>0)|0),e=(g=e)+((e=5-(((r-100&65535)>>>0)/10|0)|0)>>31&e)|0,e=n?e+10|0:e),e=(0|e)<=1?1:e}else{if(Dt(i[u+8>>2],m+256|0,w))break A;e=100}i[I+(l<<2)>>2]=u,i[u+16>>2]=e}else i[I+(l<<2)>>2]=u;l=l+1|0}if((0|f)==(0|(B=B+1|0)))break}i[I+(l<<2)>>2]=0,e=0,l&&(AA(I,l,8),e=l)}if(j=m+336|0,d=e,e||(i[A>>2]=0,e=TA(201216,85055),i[t+1536>>2]=e,d=!!(0|e)),A=o[t+2957|0],c=2,2!=(0|(e=o[t+2956|0]))&&(c=2,(A-1&255)>>>0<12||(M=1!=(0|e),c=1==(0|e))),f=(l=i[132136+(c<<2)>>2])+(h=A>>>0<60)|0,e=0,(0|d)>0)for(r=0;;){s=i[(t+1536|0)+(E<<2)>>2];A:{t:{r:{if(M){if(h)break t;if(A=0,r)break t}else{if(A=o[s+12|0],r|h)break r;A=(0|A)!=(0|c)}if(n=0,A|o[s+13|0]<60)break A;break t}if((0|A)!=(0|c)){n=r;break A}}i[(t+80|0)+(r<<2)>>2]=s,n=r+1|0}A:if(o[s+15|0]){if(p=0,A=e,r=n,!((0|e)>11))for(;;){if((n=o[0|f])||(f=l,n=o[0|l]),e=i[s+12>>2],g=C(A,24)+202624|0,i[g+8>>2]=i[s+8>>2],i[g+12>>2]=e,e=i[s+4>>2],i[g>>2]=i[s>>2],i[g+4>>2]=e,e=i[s+20>>2],i[g+16>>2]=i[s+16>>2],i[g+20>>2]=e,a[g+14|0]=n,i[(t+80|0)+(r<<2)>>2]=g,f=f+1|0,r=r+1|0,e=A+1|0,(p=p+1|0)>>>0>=o[s+15|0])break A;if(n=(0|A)<11,A=e,!n)break}}else r=n;if((0|(E=E+1|0))==(0|d))break}else{if(!s)break e;r=0}A:if(!(!(n=o[0|f])|(0|e)>=12))for(;;){if(A=i[s+12>>2],l=C(e,24)+202624|0,i[l+8>>2]=i[s+8>>2],i[l+12>>2]=A,A=i[s+4>>2],i[l>>2]=i[s>>2],i[l+4>>2]=A,A=i[s+20>>2],i[l+16>>2]=i[s+16>>2],i[l+20>>2]=A,a[l+14|0]=n,i[(t+80|0)+(r<<2)>>2]=l,r=r+1|0,!(n=o[0|(f=f+1|0)]))break A;if(A=(0|e)<11,e=e+1|0,!A)break}r?(e=i[(t+80|0)+(o[t+2958|0]%(0|r)<<2)>>2],(A=o[e+14|0])?(a[202976]=0,i[t+48>>2]=47,vt(t+2971|0,91351,t+48|0),a[t+2971|0]=0,A>>>0<=9?(i[t+20>>2]=A,i[t+16>>2]=t+2971,vt(202976,91378,t+16|0)):(i[t+36>>2]=A-10,i[t+32>>2]=t+2971,vt(202976,91503,t+32|0)),e=i[e+8>>2],i[t+4>>2]=202976,i[t>>2]=e,e=202912,vt(202912,87760,t)):e=i[e+8>>2]):e=0}else{if(e=i[s+8>>2],!o[202976])break e;i[t+64>>2]=e,i[t+68>>2]=202976,e=202912,vt(202912,87760,t- -64|0)}return j=t+2976|0,e}function Ie(e,A,t,r,n){var s,l,c=0,g=0,u=0,d=0,f=0,p=0,h=0;j=s=j-464|0,a[s+432|0]=0,a[s+368|0]=0,a[s+304|0]=0,a[s+292|0]=0,f=(0|A)/10|0,c=i[33273];e:{if(!(l=2&r)|2!=i[33272]){h=32&r?113:111,d=1&r,p=A-C(f,10)|0;A:{t:{r:{n:{a:{s:{i:{o:if(o[0|c])c=0;else{l:{if(8&r){if(i[s+288>>2]=A,vt(g=s+452|0,91198,s+288|0),c=Et(e,g,s+304|0)){g=0;break o}i[s+272>>2]=A,vt(g=s+452|0,91314,s+272|0),c=Et(e,g,s+304|0),g=0}else{if(!d)break l;if(u=rt(s+432|0,133104),4&r){if(i[s+260>>2]=h,i[s+256>>2]=A,vt(g=s+452|0,91324,s+256|0),c=Et(e,g,s+304|0),o[133116]&&c)break i;if(g=c,c)break o}i[s+244>>2]=h,i[s+240>>2]=A,vt(g=s+452|0,91384,s+240|0),g=c=Et(e,g,s+304|0)}if(c)break o}l:{if(l){if(!(1&a[133096]))break l;i[s+208>>2]=A,vt(c=s+452|0,91498,s+208|0),c=Et(e,c,s+304|0)}else u=i[e+108>>2],i[s+224>>2]=A,vt(c=s+452|0,(0|t)>=2?91700:(262144&u)>>>18|0?91534:91700,s+224|0),c=Et(e,c,s+304|0);if(c)break o}!d|!(32&o[e+109|0])?(i[s+192>>2]=A,vt(c=s+452|0,91766,s+192|0),c=Et(e,c,s+304|0)):c=0}if(!(16&r)|(0|A)>9)break a;c=g;break s}if(rt(u,133116),!(16&r)|(0|A)>9)break n}Et(e,88875,s+368|0);break t}if(!c)break r;c=g}a[s+368|0]=0;break t}r:if(d&&(i[s+180>>2]=h,i[s+176>>2]=f,vt(c=s+452|0,91846,s+176|0),Et(e,c,s+368|0))){if(g=1,!p|!(16&o[e+109|0]))break r;yn(s+368|0,133104)}else g||(i[s+160>>2]=f,vt(g=s+452|0,512&r?91936:92016,s+160|0),Et(e,g,s+368|0),g=0);if(c=p,o[s+368|0]||(c=p,16&o[e+106|0]&&(i[s+144>>2]=254&f,vt(c=s+452|0,92016,s+144|0),Et(e,c,s+368|0),c=(0|A)%20|0)),a[s+304|0]=0,f=c,(0|c)<=0)c=g;else{if(l&&(c=i[33273],o[0|c])){rt(s+304|0,c),a[s+432|0]=0,u=d;break A}if(u=0,8&r&&(i[s+128>>2]=f,vt(r=s+452|0,91314,s+128|0),u=Et(e,r,s+304|0)),!d|16&o[e+104|0]||(i[s+116>>2]=h,i[s+112>>2]=f,vt(r=s+452|0,91384,s+112|0),g=(u=Et(e,r,s+304|0))?1:g),c=g,!u){r:{if(!l|!(1&i[33274])){if(!(16&o[e+104|0])&&l)break r;g=i[e+108>>2],i[s+96>>2]=f,vt(r=s+452|0,(0|t)>=2?91700:(262144&g)>>>18|0?91534:91700,s+96|0),t=Et(e,r,s+304|0)}else i[s+80>>2]=f,vt(t=s+452|0,91498,s+80|0),t=Et(e,t,s+304|0);if(t)break t}i[s+64>>2]=f,vt(t=s+452|0,91766,s- -64|0),Et(e,t,s+304|0)}}}u=d,o[s+432|0]|c|!d||((0|A)<20|(16&o[e+104|0]?0:p)||(Et(e,92162,s+432|0),u=1,!o[s+432|0]))&&(Et(e,92205,s+432|0),u=1)}if(!(!(t=a[s+304|0])|!(48&(A=i[e+104>>2]))|!o[s+368|0])){if(Et(e,90824,s+292|0),!u|!(8&o[e+109|0])||(a[s+292|0]=0),16&o[e+104|0]){i[s+28>>2]=s+432,i[s+24>>2]=s+368,i[s+20>>2]=s+292,i[s+16>>2]=s+304,vt(n,91059,s+16|0),r=1;break e}i[s+12>>2]=s+432,i[s+8>>2]=s+304,i[s+4>>2]=s+292,i[s>>2]=s+368,vt(n,91059,s),r=1;break e}512&A&&(!t|(0|(A=Wt(s+368|0)-1|0))<0||(c=2!=o[i[144464+(a[0|(A=A+(s+368|0)|0)]<<2)>>2]+11|0],1==(0|(r=o[i[144464+(t<<2)>>2]+11|0]))&&(r=o[i[144464+(a[s+305|0]<<2)>>2]+11|0]),c|2!=(255&r)||(a[0|A]=0))),!(8&o[e+110|0])|!o[s+432|0]?(i[s+56>>2]=s+432,i[s+52>>2]=s+304,i[s+48>>2]=s+368,vt(n,92282,s+48|0)):(i[s+36>>2]=s+304,i[s+32>>2]=s+368,(0|(A=vt(n,90368,s+32|0)))>0&&(A=2==o[i[144464+(o[(t=A-1|0)+n|0]<<2)>>2]+11|0]?t:A),rt(A+n|0,s+432|0))}else rt(n,c);r=0}e:if(268435456&(e=i[e+104>>2])){if((0|Wt(n))<=0)break e;for(A=0,e=0;6==o[0|(t=e+n|0)]&&(A&&(a[0|t]=5),A=1),e=e+1|0,(0|Wt(n))>(0|e););}else if(256&e&&(A=0,!((0|(e=(d=Wt(n))-1|0))<0))){if(e)for(p=-2&d,c=0;6==o[0|(g=e+n|0)]?(t=1,A&&(a[0|g]=5)):t=A,6==o[0|(g=g-1|0)]?(A=1,t&&(a[0|g]=5)):A=t,e=e-2|0,(0|p)!=(0|(c=c+2|0)););1&d&&(!A|6!=o[0|(e=e+n|0)]||(a[0|e]=5))}return j=s+464|0,r}function we(e,A,t,r){var n,l,c=0,g=0,u=0,d=0,f=0,p=0,h=0;if(j=n=j-352|0,a[n+304|0]=0,a[n+224|0]=0,a[n+64|0]=0,u=i[i[47192]+292>>2],h=VA(n+348|0,A),57344==(1048320&(c=i[n+348>>2]))&&(c&=255,i[n+348>>2]=c),2&r&&gr(c)&&Et(e,85437,n+304|0),c=Xr(i[n+348>>2],e),i[n+348>>2]=c,p=1&r,wA(e,c,a[0|(l=A+h|0)],n+224|0,p),!(A=o[n+224|0])){e:if((A=tr(i[n+348>>2]))&&(i[n+348>>2]=16383&A,4&r)){A:switch(1073741823&(A>>=14)){case 0:case 3:break e}Et(e,A=i[131232+(A<<2)>>2],n+304|0),o[n+304|0]||(a[n+306|0]=pn(84744),f=A,A=n+304|3,Et(i[47194],f,A),o[n+307|0]&&(s[n+304>>1]=5385,A=Wt(A)+(n+304|0)|0,a[A+5|0]=0,a[A+4|0]=u,a[A+3|0]=21))}wA(e,i[n+348>>2],a[0|l],n+224|0,p),A=o[n+224|0]}e:{A:{if(A&=255){if(21!=(0|A))break A;rt(t,n+224|0),h=0;break e}if(A=1632,!((0|(c=i[n+348>>2]))<1632)){for(d=103360;;){if((0|c)>=(A+10|0)){if(!(A=i[(d=d+4|0)>>2]))break A;if((0|A)<=(0|c))continue;break A}break}(0|(A=48+(c-A|0)|0))<=0||wA(e,A,0,n+224|0,p)}}A:{t:{r:{n:{if(A=aA(i[n+348>>2])){if(c=i[A+4>>2],!A|1&(d=i[A+16>>2])||(g=i[47192],i[g+600>>2]==(0|c)|i[g+188>>2]==(0|c)|i[g+184>>2]==(0|c)||(a[n+144|0]=0,Et(g,i[A>>2],n- -64|0)?(0|(g=i[47192]))!=(0|e)&&(u=i[e+292>>2],rt(n+144|0,n- -64|0),a[n+66|0]=i[g+292>>2]):(a[n+66|0]=pn(84744),Et(i[47194],i[A>>2],n+144|0)),o[n+144|0]&&(s[n+64>>1]=5385,rt(3|(g=n- -64|0),f=n+144|0),g=Wt(f)+g|0,a[g+5|0]=0,a[g+4|0]=u,a[g+3|0]=21))),o[n+224|0])break A;if(!c)break n;if(u=i[47192],i[u+188>>2]!=(0|c))break n;A=i[u+192>>2];break t}if(o[n+224|0])break A;d=0,c=0;break r}if((A=i[A+12>>2])&&!(2&d))break t}A=25966}if((i[e+212>>2]==(0|A)&27503!=(0|A)||(a[n+226|0]=pn(kr(n+47|0,A)),(A=i[47194])&&((0|(u=i[n+348>>2]))>55215||(0|(g=u-44032|0))<0?wA(A,u,a[0|l],n+224|3,p):(a[n+52|0]=32,A=f=n+53|0,u-50500>>>0>=588&&(A=Ft(4352+((g>>>0)/588|0)|0,f)+f|0),Ft(4449+(((u=(g>>>0)/28|0)>>>0)%21|0)|0,A),Ft(4519+(g-C(u,28)|0)|0,A+3|0),a[A+6|0]=32,a[A+7|0]=0,a[n+227|0]=0,A=n+224|3,Ce(i[47194],f,A,77,0,0,0),ie(i[47194],A,0,-1,0)),A=n+224|3,21==o[n+227|0]&&(a[n+226|0]=pn(n+224|4),wA(i[47194],i[n+348>>2],a[0|l],A,p)),qr(i[i[32972]+60>>2]),o[n+227|0]&&(s[n+224>>1]=5385,A=Wt(A)+(n+224|0)|0,a[A+3|0]=21,p=i[e+292>>2],a[A+5|0]=0,a[A+4|0]=p)),!o[n+224|0]))&&(16&d||(yr(i[n+348>>2])&&Et(i[47192],85683,n+224|0),o[n+224|0]||(er(i[n+348>>2])||Et(i[47192],85778,n+224|0),o[n+224|0]||Ue(85992,n+224|0,0))),!(8&d)||4&r)){if(A=i[n+348>>2],10240!=(0|c)?(i[n+32>>2]=A,vt(n+52|0,86013,n+32|0)):(c=n+52|0,1&A&&(a[n+52|0]=49,c=n+53|0),2&A&&(a[0|c]=50,c=c+1|0),4&A&&(a[0|c]=51,c=c+1|0,A=i[n+348>>2]),8&A&&(a[0|c]=52,c=c+1|0,A=i[n+348>>2]),16&A&&(a[0|c]=53,c=c+1|0,A=i[n+348>>2]),32&A&&(a[0|c]=54,c=c+1|0,A=i[n+348>>2]),64&A&&(a[0|c]=55,c=c+1|0,A=i[n+348>>2]),128&A&&(a[0|c]=56,c=c+1|0),a[0|c]=0),A=n+224|0,d=o[n+52|0])for(c=n+52|0;A=Wt(A)+A|0,a[0|A]=23,A=A+1|0,wA(i[47192],d<<24>>24,0,A,1),(r=o[0|A])&&21!=(0|r)||(0|(r=a[0|c]))<97||Ue(i[130860+((255&r)<<2)>>2],A,0),d=o[0|(c=c+1|0)];);A=Wt(A)+A|0,a[0|A]=9,a[A+1|0]=0}}A=Wt(t),2&o[e+144|0]?(i[n+16>>2]=255,i[n+28>>2]=n+304,i[n+24>>2]=n+224,i[n+20>>2]=n- -64,vt(n+144|0,86210,n+16|0)):(i[n>>2]=255,i[n+12>>2]=n+224,i[n+8>>2]=n+304,i[n+4>>2]=n- -64,vt(n+144|0,86210,n)),Wt(n+144|0)+A>>>0>199||rt(A+t|0,n+144|0)}return j=n+352|0,h}function ke(e,A,t,r,n,l,c){var g,u=0,f=0,p=0,m=0,b=0,I=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,Q=0,T=0,P=0,z=0,F=0,S=0,N=0;j=g=j-528|0,B=c?i[c>>2]:0,Q=i[n+4>>2];e:{A:{if(i[e+220>>2]>0){fn(f=g+352|0,A,160),j=I=j-176|0,k=1-(w=i[e+220>>2])|0,x=i[e+224>>2],v=i[e+216>>2],m=f;t:{r:{for(;;){if(y=VA(I+172|0,m),u=i[I+172>>2]){if((0|u)<(0|w)|(0|u)>(0|v))break r;if(x){if((0|(u=a[x+(u-w|0)|0]))<=0)break r}else u=u+k|0;if(m=m+y|0,a[b+I|0]=u,u=160,160!=(0|(b=b+1|0)))continue}else u=b;break}if(x=0,a[u+I|0]=0,k=a[0|I],i[I+172>>2]=k,k){for(T=2+(v-w|0)|0,w=u=I;;){v=u+1|0;n:{if((y=i[e+8180>>2])&&(b=0,!((0|(m=s[y>>1]))>(0|(M=(a[0|v]<<8)+k|0)))))for(;;){if((0|m)==(0|M)){k=b+T|0,i[I+172>>2]=k,u=u+2|0;break n}if(!((0|M)>=(0|(m=s[y+((b=b+1|0)<<1)>>1]))))break}u=v}if(E=63&k|E<<6,(0|(b=x+6|0))<8?x=b:(x=x-2|0,a[0|w]=E>>x,w=w+1|0),k=a[0|u],i[I+172>>2]=k,!k)break}(0|x)<=0||(a[0|w]=E<<8-x,w=w+1|0)}else w=I;a[0|w]=0,_e(f,I,u=w-I|0),w=64|u;break t}w=Wt(f)}j=I+176|0,I=f}else w=Wt(A),I=A;if(f=o[0|I]){for(u=0,b=I;p=1023&(p=(p<<3)+f|0)^p>>>8,u=u+1|0,f=o[0|(b=b+1|0)];);u=u+p&1023}else u=0;if(p=i[692+((u<<2)+e|0)>>2]){if(u=o[0|p])break A;u=0;break e}if(u=0,!n)break e;i[n>>2]=0;break e}for(y=1073741824&Q,M=2048&l,Q=512&B,T=65536&B,P=1&B,z=2&B,B=8&l,F=1024&l,v=4&l,S=63&w,N=e+8233|0;;){l=(255&u)+p|0;A:{t:if((127&(u=o[p+1|0]))==(0|w)&&!Dt(I,p+2|0,S)){p=2+((63&u)+p|0)|0;r:{if(u<<24>>24<0)x=0,a[0|r]=0;else{if((0|(x=Wt(p)))>=160)break r;rt(r,p),p=1+(p+x|0)|0}if(f=0,l>>>0<=p>>>0)u=t,m=0;else{b=0,m=0;n:{for(;;){p=(u=p)+1|0;a:if((u=o[0|u])>>>0>=100){if(k=i[e+320>>2],u>>>0>=132){b|=k>>>u-132&1;break a}b|=!(k>>>u-100&1)}else{if(u>>>0>=81){k=u-80|0,E=l-p|0;s:if(c)for(u=0;;){if(G=C(u,12)+c|0,!o[G+10|0])break s;if(b=!!(12&o[G+1|0])|b,G=(0|u)!=(0|k),u=u+1|0,!G)break}if(qt(t,p,E)|1&b)break t;i[33264]=k,u=t+E|0,m|=128,p=l;break n}u>>>0>=65?(m=15&u|-16&m,m=12&~u?m:512|m):u>>>0>=32?f|=1<<u-32:m|=1<<u}if(!(l>>>0>p>>>0))break}if(u=t,1&b)break A}if(65536&f&&!v)break A;if(F&&49152&f)break A}if(v){if(16384&f)break A;if(!B&&32768&f)break A}if((z?0:512&f)|(P?0:1024&f)|(T?0:33554432&m))break A;if(!(!(131072&f)|h[i[47192]+8204>>2]<=u>>>0|y)|(Q?0:262144&f)|(8&o[i[47192]+8242|0]?0:8192&f))break A;if(16&f){if(!i[e+8184>>2]&(!B|!i[e+8192>>2]))break A;if(!(!B|25966!=i[e+212>>2])&&2097152&i[e+8232>>2])break A}if((i[e+8188>>2]?0:64&f)|(!i[e+8196>>2]|M?32&f:0))break A;if(!(!(65536&m)|26741!=i[e+212>>2]|128&o[0|N])|(i[47192]!=(0|e)?524288&f:0))break A;n:{a:{s:{if(!n){if(!x)break s;break n}if(i[n+4>>2]=f,i[n>>2]=1073741824|m,x)break a}if(u=0,!(8&o[188788]))break e;ct(n,e=g+272|0),i[g>>2]=A,i[g+4>>2]=e,en(i[47195],89330,g);break e}i[n>>2]=-1073741824|m}if(8&o[188788]&&(QA(r,g- -64|0),o[i[47192]+172|0]==(m>>>29&1)&&(!c|!(128&m)?(i[g+48>>2]=A,en(i[47195],89426,g+48|0)):(_e(e=g+352|0,r=t,t=u-t|0),a[351+(t+g|0)|0]=0,i[g+32>>2]=A,i[g+36>>2]=e,en(i[47195],89397,g+32|0)),ct(n,e=g+272|0),A=i[47195],i[g+16>>2]=g- -64,i[g+20>>2]=e,en(A,89534,g+16|0))),o[VA(g- -64|0,I)+I|0]|!n)break e;if(dt(i[g+64>>2]))break e;i[n>>2]=134217728|i[n>>2];break e}D(89236,86634,2467,94846),d()}p=l}if(!(u=o[0|p]))break}u=0}return j=g+528|0,u}function xe(e,A,t,r,n){var s,l=0,c=0;j=s=j-304|0,a[s+278|0]=0;e:{if((0|A)>0){if(1&r){if(2&r&&(i[s+164>>2]=t,i[s+160>>2]=A,vt(l=s+290|0,89701,s+160|0),l=Et(e,l,s+224|0)))break e;if(1&a[133096]&&(i[s+148>>2]=t,i[s+144>>2]=A,vt(l=s+290|0,89757,s+144|0),l=Et(e,l,s+224|0)))break e;if(i[s+132>>2]=t,i[s+128>>2]=A,vt(l=s+290|0,89894,s+128|0),l=Et(e,l,s+224|0))break e}if(i[s+116>>2]=t,i[s+112>>2]=A,vt(l=s+290|0,89974,s+112|0),l=Et(e,l,s+224|0))break e}if((0|(c=(0|A)%100|0))>=20&&Et(e,90022,s+278|0),1&r){if(2&r){l=c-11|0;A:{t:{r:switch((448&i[i[47192]+108>>2])-64>>>6|0){case 0:if(l>>>0<9)break t;if(r=90418,1==(0|(l=(0|A)%10|0)))break A;if(l-2>>>0>=3)break t;r=90453;break A;case 1:if(A-2>>>0>=3)break t;r=90453;break A;case 2:if(l>>>0<9|((0|A)%10|0)-2>>>0>=3)break t;r=90453;break A;case 3:if(r=90508,l>>>0<9)break A;r=(r=(0|A)%10|0)?1==(0|r)?90453:90586:90508;break A;case 4:break r;default:break t}if(!(l>>>0<9)){if(r=90537,1==(0|(l=(0|A)%10|0)))break A;if(!(l-2>>>0>=3)){r=90453;break A}}}r=90586}if(i[s+100>>2]=t,i[s+96>>2]=r,vt(r=s+290|0,90058,s+96|0),l=0,Et(e,r,s+224|0))break e}if(r=c-11|0,1&a[133096]){A:{t:{r:switch((448&i[i[47192]+108>>2])-64>>>6|0){case 0:if(r>>>0<9)break t;if(l=90418,1==(0|(c=(0|A)%10|0)))break A;if(c-2>>>0>=3)break t;l=90453;break A;case 1:if(A-2>>>0>=3)break t;l=90453;break A;case 2:if(r>>>0<9|((0|A)%10|0)-2>>>0>=3)break t;l=90453;break A;case 3:if(l=90508,r>>>0<9)break A;l=(l=(0|A)%10|0)?1==(0|l)?90453:90586:90508;break A;case 4:break r;default:break t}if(!(r>>>0<9)){if(l=90537,1==(0|(c=(0|A)%10|0)))break A;if(!(c-2>>>0>=3)){l=90453;break A}}}l=90586}if(i[s+84>>2]=t,i[s+80>>2]=l,vt(c=s+290|0,90110,s+80|0),l=0,Et(e,c,s+224|0))break e}A:{t:{r:switch((448&i[i[47192]+108>>2])-64>>>6|0){case 0:if(r>>>0<9)break t;if(l=90418,1==(0|(c=(0|A)%10|0)))break A;if(c-2>>>0>=3)break t;l=90453;break A;case 1:if(A-2>>>0>=3)break t;l=90453;break A;case 2:if(r>>>0<9|((0|A)%10|0)-2>>>0>=3)break t;l=90453;break A;case 3:if(l=90508,r>>>0<9)break A;l=(l=(0|A)%10|0)?1==(0|l)?90453:90586:90508;break A;case 4:break r;default:break t}if(!(r>>>0<9)){if(l=90537,1==(0|(c=(0|A)%10|0)))break A;if(!(c-2>>>0>=3)){l=90453;break A}}}l=90586}if(i[s+68>>2]=t,i[s+64>>2]=l,vt(c=s+290|0,90139,s- -64|0),l=0,Et(e,c,s+224|0))break e}else r=c-11|0;A:{t:{r:switch((448&i[i[47192]+108>>2])-64>>>6|0){case 0:if(r>>>0<9)break t;if(l=90418,1==(0|(r=(0|A)%10|0)))break A;if(r-2>>>0>=3)break t;l=90453;break A;case 1:if(A-2>>>0>=3)break t;l=90453;break A;case 2:if(r>>>0<9|((0|A)%10|0)-2>>>0>=3)break t;l=90453;break A;case 3:if(l=90508,r>>>0<9)break A;l=(r=(0|A)%10|0)?1==(0|r)?90453:90586:90508;break A;case 4:break r;default:break t}if(!(r>>>0<9)){if(l=90537,1==(0|(r=(0|A)%10|0)))break A;if(!(r-2>>>0>=3)){l=90453;break A}}}l=90586}i[s+52>>2]=t,i[s+48>>2]=l,vt(r=s+290|0,90218,s+48|0),l=0,Et(e,r,s+224|0)||((0|t)<4||(i[s+32>>2]=t-1,vt(r=s+290|0,89026,s+32|0),Et(e,r,s+176|0)||(Et(e,90273,s+224|0),i[33275]=3)),o[s+224|0]||(i[s+16>>2]=A,vt(r=s+290|0,90303,s+16|0),(l=Et(e,r,s+224|0))||Et(e,90347,s+224|0),i[33275]=2))}return i[s+4>>2]=s+224,i[s>>2]=s+278,vt(n,90368,s),j=s+304|0,!(1!=(0|A)|1!=(0|t))&&(A=1,32&o[e+106|0])||(A=l),A}function Be(e,A,t,r){var n,l=0,c=0,g=0,u=0,d=0,f=0,h=0;j=n=j+-64|0,s[n+48>>1]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+8>>2]=0,i[n+12>>2]=0,i[n>>2]=0,i[n+4>>2]=0,l=A;e:{for(;;){A:{t:{if(69!=(0|(c=o[0|l]))){if(32!=(0|c))break t;if(r&&(a[_e(c=r,A,r=(0|(r=l-A|0))>=159?159:r)+r|0]=0),r=63&t)break A;break e}a[0|l]=101}l=l+1|0;continue}break}if(1&t){A:if((l=l-1|0)>>>0<A>>>0)c=r;else for(c=r;;){if(128!=(192&o[0|l]))break A;if(c=c+1|0,!((l=l-1|0)>>>0>=A>>>0))break}g=r-1|0}else g=r,c=r;if(1!=(0|r))for(;;){r=g;A:if(!((l=l-1|0)>>>0<A>>>0))for(;;){if(128!=(192&o[0|l]))break A;if(c=c+1|0,!((l=l-1|0)>>>0>=A>>>0))break}A:if(!((l=l-1|0)>>>0<A>>>0))for(;;){if(128!=(192&o[0|l]))break A;if(c=c+1|0,!((l=l-1|0)>>>0>=A>>>0))break}if(g=r-2|0,!((0|r)>2))break}if((0|c)<=0)g=0;else{if(u=3&(g=(r=(A=c-1|0)>>>0>=48?48:A)+1|0),A=0,c=0,r>>>0>=3)for(h=-4&g,r=0;d=l+c|0,a[c+n|0]=o[0|d],a[0|d]=32,d=(f=1|c)+l|0,a[n+f|0]=o[0|d],a[0|d]=32,d=(f=2|c)+l|0,a[n+f|0]=o[0|d],a[0|d]=32,d=(f=3|c)+l|0,a[n+f|0]=o[0|d],a[0|d]=32,c=c+4|0,(0|h)!=(0|(r=r+4|0)););if(u)for(;r=l+c|0,a[c+n|0]=o[0|r],a[0|r]=32,c=c+1|0,(0|u)!=(0|(A=A+1|0)););}}if(a[n+g|0]=0,u=65520&t,!(512&t)|105!=o[0|(r=l-1|0)]||(a[0|r]=121),c=4|u,256&t){e:{A:{t:{if(25966!=(0|(A=i[e+212>>2]))){if(28268!=(0|A))break t;if(a[0|r]<0)break e;if(128&(A=a[0|(g=l-2|0)]))break e;if(u=i[e+632>>2])A=!!(0|Pr(u,A));else{if((0|(u=i[e+600>>2]))>0&&(A=A-u|0)-1>>>0>254)break e;A=128&o[344+(e+A|0)|0]}if(!A)break e;if(A=a[0|r],u=i[e+612>>2])A=!!(0|Pr(u,A));else{r:{if((0|(u=i[e+600>>2]))>0){if((A=A-u|0)-1>>>0<255)break r;break e}if((0|A)<0)break e}A=4&o[344+(e+A|0)|0]}if(!A)break e;A=a[l-3|0];r:{if(u=i[e+632>>2])A=!!(0|Pr(u,A));else{n:{if((0|(u=i[e+600>>2]))>0){if((A=A-u|0)-1>>>0<255)break n;break r}if((0|A)<0)break r}A=128&o[344+(e+A|0)|0]}if(A)break e}a[0|l]=o[0|r],a[0|r]=o[0|g],a[l+1|0]=32;break e}if(g=a[l-2|0],A=i[e+632>>2])A=!!(0|Pr(A,g));else{r:{if((0|(A=i[e+600>>2]))>0){if((g=g-A|0)-1>>>0<255)break r;break A}if((0|g)<0)break A}A=128&o[344+(e+g|0)|0]}if(!A)break A;if(g=a[0|r],A=i[e+608>>2])A=!!(0|Pr(A,g));else{if((0|(A=i[e+600>>2]))>0){if((g=g-A|0)-1>>>0>=255)break A}else if((0|g)<0)break A;A=2&o[344+(e+g|0)|0]}if(!A)break A;c=Dt(87771,l-3|0,3)?20|u:c;break e}c=i[e+204>>2]?20|u:c;break e}(99==o[0|r]||(g=o[1+(A=l-2|0)|0]<<8,29554==(o[0|A]|g)|29289==(g|o[0|A])||29301==(o[0|(A=l-2|0)]|o[A+1|0]<<8)||!Dt(88115,l-3|0,3)||29550==(o[0|(A=l-2|0)]|o[A+1|0]<<8)|117==o[0|r]||!Dt(88384,l-5|0,5)||1735287154==(o[0|(A=l-4|0)]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)||1735549292==(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)))&&(c=20|u)}16&c&&(Ft(i[e+204>>2],l),8&o[188788]&&An(88683,6,i[47195]))}return i[e+8184>>2]|!(2048&t)||(i[e+8184>>2]=1),115!=p[n>>1]&&Dt(n,88850,3)||(c|=8),j=n- -64|0,39==o[0|n]?65531&c:c}function ve(e,A,t,r,n,a,s,o,l){var c,g=0,u=0,d=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0;j=c=j-112|0,g=2147483647&l;e:{if(d=!(A|t),(r|(u=2147483647&n)?u-2147418112>>>0<2147549184:d)||!(!o&-2147418112==(0|(p=g-2147418112|0))?a|s:-2147418112==(0|p)&!!(0|o)|p>>>0>2147549184)){if(!(!r&2147418112==(0|u)?d:u>>>0<2147418112)){o=r,l=32768|n,a=A,s=t;break e}if(!(!o&2147418112==(0|g)?!(a|s):g>>>0<2147418112)){l|=32768;break e}if(!(A|r|2147418112^u|t)){f=r,o=(r=!(A^a|r^o|t^s|n^l^-2147483648))?0:f,l=r?2147450880:n,a=r?0:A,s=r?0:t;break e}if(!(a|o|2147418112^g|s))break e;if(!(A|r|t|u)){if(a|o|s|g)break e;a&=A,s&=t,o&=r,l&=n;break e}if(!(a|o|s|g)){a=A,s=t,o=r,l=n;break e}}u=(d=C=(f=(0|g)==(0|u))&(0|r)==(0|o)?(0|t)==(0|s)&A>>>0<a>>>0|t>>>0<s>>>0:f&r>>>0<o>>>0|g>>>0>u>>>0)?a:A,p=d?s:t,b=f=d?l:n,d=d?o:r,m=65535&f,r=C?r:o,I=n=C?n:l,f=n>>>16&32767,(h=b>>>16&32767)||(l=n=!(d|m),g=n?u:d,o=n<<=6,jA(c+96|0,u,p,d,m,(n=n+(32==(0|(l=w(l?p:m)))?w(g)+32|0:l)|0)-15|0),d=i[c+104>>2],m=i[c+108>>2],p=i[c+100>>2],h=16-n|0,u=i[c+96>>2]),a=C?A:a,s=C?t:s,o=r,l=65535&I,f||(n=A=!(o|l),g=A?a:o,t=A<<=6,jA(c+80|0,a,s,o,l,(A=A+(32==(0|(n=w(n?s:l)))?w(g)+32|0:n)|0)-15|0),f=16-A|0,o=i[c+88>>2],l=i[c+92>>2],s=i[c+84>>2],a=i[c+80>>2]),t=l<<3|o>>>29,A=o<<3|s>>>29,t|=524288,o=d<<3|p>>>29,l=m<<3|d>>>29,C=b^I,n=s<<3|a>>>29,r=a<<3,(0|f)!=(0|h)&&((a=h-f|0)>>>0>127?(A=0,t=0,n=0,r=1):(jA(c- -64|0,r,n,A,t,128-a|0),YA(c+48|0,r,n,A,t,a),A=i[c+56>>2],t=i[c+60>>2],n=i[c+52>>2],r=i[c+48>>2]|!!(i[c+64>>2]|i[c+72>>2]|i[c+68>>2]|i[c+76>>2]))),d=r,g=n,f=o,m=524288|l,n=p<<3|u>>>29,p=u<<3,u=n;A:if((0|C)<0){if(a=0,s=0,o=0,l=0,!(d^p|A^f|g^u|t^m))break e;if(r=p-d|0,n=u-((d>>>0>p>>>0)+g|0)|0,o=(a=f-A|0)-(s=(0|g)==(0|u)&d>>>0>p>>>0|g>>>0>u>>>0)|0,l=A=(m-((A>>>0>f>>>0)+t|0)|0)-(a>>>0<s>>>0)|0,A>>>0>524287)break A;a=A=!(o|l),s=A?r:o,t=A<<=6,jA(c+32|0,r,n,o,l,A=(A=A+(32==(0|(a=w(a?n:l)))?w(s)+32|0:a)|0)-12|0),h=h-A|0,o=i[c+40>>2],l=i[c+44>>2],r=i[c+32>>2],n=i[c+36>>2]}else n=g+u|0,a=(0|g)==(0|(n=(r=d+p|0)>>>0<p>>>0?n+1|0:n))&r>>>0<d>>>0|n>>>0<g>>>0,g=t+m|0,g=(A=A+f|0)>>>0<f>>>0?g+1|0:g,1048576&(l=(o=A+a|0)>>>0<A>>>0?g+1|0:g)&&(r=1&d|(1&n)<<31|r>>>1,n=o<<31|n>>>1,h=h+1|0,o=(1&l)<<31|o>>>1,l=l>>>1|0);if(t=0,u=-2147483648&b,(0|h)>=32767)o=t,l=2147418112|u,a=0,s=0;else if(f=0,(0|h)>0?f=h:(jA(c+16|0,r,n,o,l,h+127|0),YA(c,r,n,o,l,1-h|0),r=i[c>>2]|!!(i[c+16>>2]|i[c+24>>2]|i[c+20>>2]|i[c+28>>2]),n=i[c+4>>2],o=i[c+8>>2],l=i[c+12>>2]),p=7&r,r=(0|(A=o<<29|n>>>3))==(0|(s=(r=(7&n)<<29|r>>>3)>>>0>(a=(p>>>0>4)+r|0)>>>0?A+1|0:A))&r>>>0>a>>>0|A>>>0>s>>>0,A=t|(7&l)<<29|o>>>3,l=u|l>>>3&65535|f<<16,l=A>>>0>(o=r+A|0)>>>0?l+1|0:l,4!=(0|p)){if(!p)break e}else g=s+(A=0)|0,l=(A=(0|A)==(0|(s=(r=a)>>>0>(a=a+(t=1&a)|0)>>>0?g+1|0:g))&t>>>0>a>>>0|A>>>0>s>>>0)>>>0>(o=A+o|0)>>>0?l+1|0:l}i[e>>2]=a,i[e+4>>2]=s,i[e+8>>2]=o,i[e+12>>2]=l,j=c+112|0}function ye(e){var A=0,t=0,r=0,n=0,a=0,s=0,o=0;e:if(e|=0){a=(r=e-8|0)+(e=-8&(A=i[e-4>>2]))|0;A:if(!(1&A)){if(!(3&A))break e;if((r=r-(A=i[r>>2])|0)>>>0<h[57156])break e;if(e=e+A|0,i[57157]==(0|r)){if(!(3&~(A=i[a+4>>2])))return i[57154]=e,i[a+4>>2]=-2&A,i[r+4>>2]=1|e,void(i[e+r>>2]=e)}else{if(A>>>0<=255){if(n=i[r+8>>2],A=A>>>3|0,(0|(t=i[r+12>>2]))==(0|n)){i[57152]=i[57152]&Zr(-2,A);break A}i[n+12>>2]=t,i[t+8>>2]=n;break A}if(o=i[r+24>>2],(0|r)==(0|(A=i[r+12>>2])))if((t=i[(n=r+20|0)>>2])||(t=i[(n=r+16|0)>>2])){for(;s=n,(t=i[(n=(A=t)+20|0)>>2])||(n=A+16|0,t=i[A+16>>2]););i[s>>2]=0}else A=0;else t=i[r+8>>2],i[t+12>>2]=A,i[A+8>>2]=t;if(!o)break A;n=i[r+28>>2];t:{if(i[(t=228912+(n<<2)|0)>>2]==(0|r)){if(i[t>>2]=A,A)break t;i[57153]=i[57153]&Zr(-2,n);break A}if(i[o+(i[o+16>>2]==(0|r)?16:20)>>2]=A,!A)break A}if(i[A+24>>2]=o,(t=i[r+16>>2])&&(i[A+16>>2]=t,i[t+24>>2]=A),!(t=i[r+20>>2]))break A;i[A+20>>2]=t,i[t+24>>2]=A}}if(!(r>>>0>=a>>>0)&&1&(A=i[a+4>>2])){A:{if(!(2&A)){if(i[57158]==(0|a)){if(i[57158]=r,e=i[57155]+e|0,i[57155]=e,i[r+4>>2]=1|e,i[57157]!=(0|r))break e;return i[57154]=0,void(i[57157]=0)}if(i[57157]==(0|a))return i[57157]=r,e=i[57154]+e|0,i[57154]=e,i[r+4>>2]=1|e,void(i[e+r>>2]=e);e=(-8&A)+e|0;t:if(A>>>0<=255){if(n=i[a+8>>2],A=A>>>3|0,(0|(t=i[a+12>>2]))==(0|n)){i[57152]=i[57152]&Zr(-2,A);break t}i[n+12>>2]=t,i[t+8>>2]=n}else{if(o=i[a+24>>2],(0|a)==(0|(A=i[a+12>>2])))if((t=i[(n=a+20|0)>>2])||(t=i[(n=a+16|0)>>2])){for(;s=n,(t=i[(n=(A=t)+20|0)>>2])||(n=A+16|0,t=i[A+16>>2]););i[s>>2]=0}else A=0;else t=i[a+8>>2],i[t+12>>2]=A,i[A+8>>2]=t;if(o){n=i[a+28>>2];r:{if(i[(t=228912+(n<<2)|0)>>2]==(0|a)){if(i[t>>2]=A,A)break r;i[57153]=i[57153]&Zr(-2,n);break t}if(i[o+(i[o+16>>2]==(0|a)?16:20)>>2]=A,!A)break t}i[A+24>>2]=o,(t=i[a+16>>2])&&(i[A+16>>2]=t,i[t+24>>2]=A),(t=i[a+20>>2])&&(i[A+20>>2]=t,i[t+24>>2]=A)}}if(i[r+4>>2]=1|e,i[e+r>>2]=e,i[57157]!=(0|r))break A;return void(i[57154]=e)}i[a+4>>2]=-2&A,i[r+4>>2]=1|e,i[e+r>>2]=e}if(e>>>0<=255)return A=228648+(-8&e)|0,(t=i[57152])&(e=1<<(e>>>3))?e=i[A+8>>2]:(i[57152]=e|t,e=A),i[A+8>>2]=r,i[e+12>>2]=r,i[r+12>>2]=A,void(i[r+8>>2]=e);n=31,e>>>0<=16777215&&(n=62+((e>>>38-(A=w(e>>>8|0))&1)-(A<<1)|0)|0),i[r+28>>2]=n,i[r+16>>2]=0,i[r+20>>2]=0,s=228912+(n<<2)|0;A:{t:{if((t=i[57153])&(A=1<<n)){for(n=e<<(31!=(0|n)?25-(n>>>1|0):0),A=i[s>>2];;){if(t=A,(-8&i[A+4>>2])==(0|e))break t;if(A=n>>>29|0,n<<=1,!(A=i[16+(s=t+(4&A)|0)>>2]))break}i[s+16>>2]=r,i[r+24>>2]=t}else i[57153]=A|t,i[s>>2]=r,i[r+24>>2]=s;i[r+12>>2]=r,i[r+8>>2]=r;break A}e=i[t+8>>2],i[e+12>>2]=r,i[t+8>>2]=r,i[r+24>>2]=0,i[r+12>>2]=t,i[r+8>>2]=e}e=i[57160]-1|0,i[57160]=e||-1}}}function Ee(e,A,t){var r,n=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,m=0,b=0,I=0;j=r=j-176|0;e:{if(32&A)m=t-((0|t)>1)|0;else{l=NA(e,93302);A:{t:{r:{if(2!=(0|A)){if(l)break r;A=0;break e}if(m=t+1|0,p=56+(b=C(t,76)+133152|0)|0,h=NA(e,89360),c=NA(e,93318),g=NA(e,93426),u=NA(e,93499),l)break t;break A}m=t+1|0,p=56+(b=C(t,76)+133152|0)|0,u=0}for(e=0,d=34!=(0|(n=i[l-4>>2]))?39==(0|n)?n:0:n,I=C(t,76)+133208|0;;){if(n=e,!(e=i[l>>2]))break A;t:{if(!d){if(32==(0|e)|e-9>>>0<5)break A;if(47!=(0|e))break t;break A}if(92!=(0|n)&&(0|e)==(0|d))break A}if(l=l+4|0,!((0|(f=Ft(e,f+I|0)+f|0))<16))break}}d=0,a[f+p|0]=0,f=C(t,76)+133168|0,l=0;A:if(h)for(e=0,p=34!=(0|(n=i[h-4>>2]))?39==(0|n)?n:0:n;;){if(n=e,!(e=i[h>>2]))break A;t:{if(!p){if(32==(0|e)|e-9>>>0<5)break A;if(47!=(0|e))break t;break A}if(92!=(0|n)&&(0|e)==(0|p))break A}if(h=h+4|0,!((0|(l=Ft(e,l+f|0)+l|0))<36))break}if(a[l+f|0]=0,!(!c|i[c>>2]-48>>>0>=10)){for(;d=(i[c>>2]+C(d,10)|0)-48|0,i[(c=c+4|0)>>2]-48>>>0<10;);(0|d)<=0||(d=d-1|0)}if(n=C(t,76)+133152|0,i[n+4>>2]=d,e=0,l=0,!(!g|i[g>>2]-48>>>0>=10))for(;l=(i[g>>2]+C(l,10)|0)-48|0,i[(g=g+4|0)>>2]-48>>>0<10;);i[n+12>>2]=l,l=C(t,76)+133152|0;A:{t:if(u){for(;t=a[e+93099|0],(n=i[(e<<2)+u>>2])&&(e=e+1|0,(0|t)==(0|n)););r:{n:switch(n-34|0){case 0:case 5:break n;default:break r}if(!t){e=0;break A}}for(e=0;t=a[e+93116|0],(n=i[(e<<2)+u>>2])&&(e=e+1|0,(0|t)==(0|n)););r:{n:switch(n-34|0){case 0:case 5:break n;default:break r}if(!t){e=1;break A}}for(e=0;t=a[e+93197|0],(n=i[(e<<2)+u>>2])&&(e=e+1|0,(0|t)==(0|n)););r:switch(n-34|0){case 0:case 5:break r;default:break t}if(!t){e=2;break A}}e=3}i[l+8>>2]=i[131156+(e<<3)>>2],i[b>>2]=A}if(rt(137776,133168),t=rt(r+96|0,133208),a[r+157|0]=i[33291],a[r+156|0]=i[33290],e=i[33289],i[r+152>>2]=0,a[r+158|0]=e,(0|m)>0)for(c=0;;){if(g=1,A=C(c,76)+133152|0,o[0|(e=A+16|0)]&&TA(0,e)&&(rt(137776,e),g=0,a[0|t]=0,a[r+158|0]=0,s[r+156>>1]=0),o[0|(e=A+56|0)]){u=rt(t,e),n=i[33679];A:if(o[0|(e=n)])for(;;){if(!hr(e=e+1|0,u)){rt(u,n+1|0);break A}if(e=1+(Wt(e)+e|0)|0,!o[0|e])break}g&&(a[137776]=0)}if((e=i[A+8>>2])&&(a[r+156|0]=e),(e=i[A+12>>2])&&(a[r+157|0]=e),(e=i[A+4>>2])&&(a[r+158|0]=e),(0|m)==(0|(c=c+1|0)))break}i[r+148>>2]=t,i[r+144>>2]=137776,(e=be(r+144|0,r+172|0))?cn(e,43)||(A=o[r+156|0],!o[134672]|((0|A)!=o[134724]?A:0)||(i[r>>2]=e,i[r+4>>2]=134672,vt(A=r+16|0,93533,r),e=137776,fn(137776,A,40))):e=92003,A=0,hr(e,134784)&&(rt(134784,e),A=131072)}return j=r+176|0,A}function Me(e,A){var t,r=0,n=0,a=0,s=0,o=0;t=e+A|0;e:{A:if(!(1&(r=i[e+4>>2]))){if(!(3&r))break e;A=(r=i[e>>2])+A|0;t:{if((0|(e=e-r|0))!=i[57157]){if(r>>>0<=255){if(a=i[e+8>>2],r=r>>>3|0,(0|(n=i[e+12>>2]))!=(0|a))break t;i[57152]=i[57152]&Zr(-2,r);break A}if(o=i[e+24>>2],(0|(r=i[e+12>>2]))==(0|e))if((n=i[(a=e+20|0)>>2])||(n=i[(a=e+16|0)>>2])){for(;s=a,(n=i[(a=(r=n)+20|0)>>2])||(a=r+16|0,n=i[r+16>>2]););i[s>>2]=0}else r=0;else n=i[e+8>>2],i[n+12>>2]=r,i[r+8>>2]=n;if(!o)break A;a=i[e+28>>2];r:{if(i[(n=228912+(a<<2)|0)>>2]==(0|e)){if(i[n>>2]=r,r)break r;i[57153]=i[57153]&Zr(-2,a);break A}if(i[o+(i[o+16>>2]==(0|e)?16:20)>>2]=r,!r)break A}if(i[r+24>>2]=o,(n=i[e+16>>2])&&(i[r+16>>2]=n,i[n+24>>2]=r),!(n=i[e+20>>2]))break A;i[r+20>>2]=n,i[n+24>>2]=r;break A}if(3&~(r=i[t+4>>2]))break A;return i[57154]=A,i[t+4>>2]=-2&r,i[e+4>>2]=1|A,void(i[t>>2]=A)}i[a+12>>2]=n,i[n+8>>2]=a}A:{if(!(2&(r=i[t+4>>2]))){if(i[57158]==(0|t)){if(i[57158]=e,A=i[57155]+A|0,i[57155]=A,i[e+4>>2]=1|A,i[57157]!=(0|e))break e;return i[57154]=0,void(i[57157]=0)}if(i[57157]==(0|t))return i[57157]=e,A=i[57154]+A|0,i[57154]=A,i[e+4>>2]=1|A,void(i[e+A>>2]=A);A=(-8&r)+A|0;t:if(r>>>0<=255){if(a=i[t+8>>2],r=r>>>3|0,(0|(n=i[t+12>>2]))==(0|a)){i[57152]=i[57152]&Zr(-2,r);break t}i[a+12>>2]=n,i[n+8>>2]=a}else{if(o=i[t+24>>2],(0|t)==(0|(r=i[t+12>>2])))if((a=i[(n=t+20|0)>>2])||(a=i[(n=t+16|0)>>2])){for(;s=n,(a=i[(n=(r=a)+20|0)>>2])||(n=r+16|0,a=i[r+16>>2]););i[s>>2]=0}else r=0;else n=i[t+8>>2],i[n+12>>2]=r,i[r+8>>2]=n;if(o){a=i[t+28>>2];r:{if(i[(n=228912+(a<<2)|0)>>2]==(0|t)){if(i[n>>2]=r,r)break r;i[57153]=i[57153]&Zr(-2,a);break t}if(i[o+(i[o+16>>2]==(0|t)?16:20)>>2]=r,!r)break t}i[r+24>>2]=o,(n=i[t+16>>2])&&(i[r+16>>2]=n,i[n+24>>2]=r),(n=i[t+20>>2])&&(i[r+20>>2]=n,i[n+24>>2]=r)}}if(i[e+4>>2]=1|A,i[e+A>>2]=A,i[57157]!=(0|e))break A;return void(i[57154]=A)}i[t+4>>2]=-2&r,i[e+4>>2]=1|A,i[e+A>>2]=A}if(A>>>0<=255)return r=228648+(-8&A)|0,(n=i[57152])&(A=1<<(A>>>3))?A=i[r+8>>2]:(i[57152]=A|n,A=r),i[r+8>>2]=e,i[A+12>>2]=e,i[e+12>>2]=r,void(i[e+8>>2]=A);a=31,A>>>0<=16777215&&(a=62+((A>>>38-(r=w(A>>>8|0))&1)-(r<<1)|0)|0),i[e+28>>2]=a,i[e+16>>2]=0,i[e+20>>2]=0,s=228912+(a<<2)|0;A:{if((n=i[57153])&(r=1<<a)){for(a=A<<(31!=(0|a)?25-(a>>>1|0):0),r=i[s>>2];;){if(n=r,(-8&i[r+4>>2])==(0|A))break A;if(r=a>>>29|0,a<<=1,!(r=i[16+(s=n+(4&r)|0)>>2]))break}i[s+16>>2]=e,i[e+24>>2]=n}else i[57153]=r|n,i[s>>2]=e,i[e+24>>2]=s;return i[e+12>>2]=e,void(i[e+8>>2]=e)}A=i[n+8>>2],i[A+12>>2]=e,i[n+8>>2]=e,i[e+24>>2]=0,i[e+12>>2]=n,i[e+8>>2]=A}}function Ge(e){var A=0,t=0,r=0,n=0,s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0;if(!(A=a[88105]))return e;if(e=cn(e,A)){if(!o[88106])return e;if(o[e+1|0]){if(!o[88107]){n=!!(0|(t=o[e+1|0]));e:if(t&&(0|(A=t|o[0|e]<<8))!=(0|(c=o[88106]|o[88105]<<8)))for(t=e+1|0;;){if(n=!!(0|(r=o[(e=t)+1|0])),!r)break e;if(t=e+1|0,(0|c)==(0|(A=r|A<<8&65280)))break}return n?e:0}if(o[e+2|0]){if(!o[88108]){t=e+2|0,n=!!(0|(A=o[e+2|0]));e:if(A&&(0|(A=o[e+1|0]<<16|o[0|e]<<24|A<<8))!=(0|(c=o[88106]<<16|o[88105]<<24|o[88107]<<8)))for(;;){if(e=t+1|0,n=!!(0|(r=o[t+1|0])),!r)break e;if(t=e,(0|c)==(0|(A=(A|r)<<8)))break}else e=t;return n?e-2|0:0}if(o[e+3|0]){if(!o[88109]){t=e+3|0,n=!!(0|(A=o[e+3|0]));e:if(A&&(0|(A=A|o[e+1|0]<<16|o[0|e]<<24|o[e+2|0]<<8))!=(0|(c=(e=o[88105]|o[88106]<<8|o[88107]<<16|o[88108]<<24)<<24|(65280&e)<<8|e>>>8&65280|e>>>24)))for(;;){if(e=t+1|0,n=!!(0|(r=o[t+1|0])),!r)break e;if(t=e,(0|c)==(0|(A=r|A<<8)))break}else e=t;return n?e-3|0:0}c=e,j=g=j-1056|0,i[(e=g+1048|0)>>2]=0,i[e+4>>2]=0,i[(e=g+1040|0)>>2]=0,i[e+4>>2]=0,i[g+1032>>2]=0,i[g+1036>>2]=0,i[g+1024>>2]=0,i[g+1028>>2]=0;e:{A:{t:{r:{if(A=o[88105]){for(;;){if(!o[s+c|0])break A;if(s=s+1|0,i[((255&A)<<2)+g>>2]=s,i[(e=(g+1024|0)+(A>>>3&28)|0)>>2]=i[e>>2]|1<<A,!(A=o[s+88105|0]))break}if(e=1,u=-1,s>>>0>1)break r}else u=-1,e=1;l=-1,t=1;break t}for(r=1,A=1;;){r:if((0|(l=o[88105+(A+u|0)|0]))!=(0|(n=o[e+88105|0])))n>>>0<l>>>0?(r=e-u|0,t=e,A=1):(u=t,t=t+1|0,r=1,A=1);else{if((0|A)==(0|r)){t=t+r|0,A=1;break r}A=A+1|0}if(!(s>>>0>(e=t+A|0)>>>0))break}if(t=1,l=-1,s>>>0<=1)e=r;else{for(e=0,n=1,A=1;;){r:if((0|(f=o[88105+(A+l|0)|0]))!=(0|(d=o[t+88105|0])))d>>>0>f>>>0?(n=t-l|0,e=t,A=1):(l=e,e=e+1|0,n=1,A=1);else{if((0|A)==(0|n)){e=e+n|0,A=1;break r}A=A+1|0}if(!(s>>>0>(t=e+A|0)>>>0))break}e=r,t=n}}for(A=e,Dt(88105,(r=(e=l+1>>>0>u+1>>>0)?t:A)+88105|0,f=(d=e?l:u)+1|0)?(r=((e=~d+s|0)>>>0<d>>>0?d:e)+1|0,n=0):n=s-r|0,h=s-1|0,p=63|s,l=0,e=c;;){if(!(c-e>>>0>=s>>>0))if(t=JA(c,0,p)){if(c=t,t-e>>>0<s>>>0)break A}else c=c+p|0;t=o[e+h|0],A=s;t:{if(i[(g+1024|0)+(t>>>3&28)>>2]>>>t&1)if((0|(t=i[(t<<2)+g>>2]))==(0|s)){r:{if(u=o[(t=(A=f)>>>0>l>>>0?A:l)+88105|0])for(;;){if(o[e+t|0]!=(255&u))break r;if(!(u=o[88105+(t=t+1|0)|0]))break}for(;;){if(A>>>0<=l>>>0)break e;if(o[88105+(A=A-1|0)|0]!=o[e+A|0])break}A=r,l=n;break t}A=t-d|0}else A=(t=s-t|0)>>>0>l>>>0?t:l;l=0}e=e+A|0}}e=0}j=g+1056|0,t=e}}}}return t}function De(e,A,t,r,n,s){var l,c,g,u,d=0,f=0,p=0;if(j=l=j-560|0,a[l+448|0]=0,a[l+144|0]=0,a[l+120|0]=0,g=34&s,c=A-C(f=(0|A)/100|0,100)|0,1&(u=64&o[e+106|0]?(0|A)>999|s:0)|(0|A)>99){e:{A:{t:{if(!(!g|c)){if(!Et(e,90606,l+304|0))break t;break e}if(c)break A}if(Et(e,90691,l+304|0))break e}Et(e,90725,l+304|0)}d=s,(0|A)<1e3||(d=s,!(8&o[e+105|0])|A-2e3>>>0<4294967196&&(a[l+208|0]=0,xe(e,d=(f>>>0)/10|0,r=16384&i[e+108>>2]?0:n+1|0,!((A>>>0)%1e3|0)|g,l+272|0)||Ie(e,d,n,28012==i[e+212>>2]?520:(0|r)<4?(i[e+108>>2]>>>r&1)<<3:0,l+208|0),2&o[e+109|0]?(i[l+108>>2]=15,i[l+100>>2]=15,i[l+104>>2]=l+208,i[l+96>>2]=l+272,vt(l+144|0,90761,l+96|0)):(i[l+92>>2]=15,i[l+84>>2]=15,i[l+88>>2]=l+272,i[l+80>>2]=l+208,vt(l+144|0,90761,l+80|0)),r=1,1&(!!(0|(f=f-C(d,10)|0))|u)||(a[l+304|0]=0),d=1|s)),a[l+208|0]=0;e:if(!(~u&(0|f)<=0))if(!(4&o[e+106|0])|!(1&d|o[l+144|0])||Et(e,90824,l+120|0),!g|(16&o[e+109|0]?0:c)||(i[l+64>>2]=f,vt(r=l+548|0,90875,l- -64|0),p=Et(e,r,l+208|0),!(4096&i[e+108>>2])|(0|c)<=0||yn(l+208|0,133104)),r=1,1&(~u|!!(0|f))){A:{t:{r:{n:{if(!(131072&i[e+108>>2])||1&d|1!=(0|f)){if(c|p||(i[l+48>>2]=f,vt(r=l+548|0,90985,l+48|0),p=Et(e,r,l+208|0)),p)break n;if(i[l+32>>2]=f,vt(r=l+548|0,91027,l+32|0),Et(e,r,l+208|0))break n;if(1!=(0|f))break t;break r}if(!p)break r}a[l+304|0]=0;break A}if(r=1,4&o[e+105|0])break e}Ie(e,f,n,0,l+208|0)}r=1}else Et(e,88875,l+208|0);i[l+28>>2]=l+304,i[l+24>>2]=l+208,i[l+20>>2]=l+120,i[l+16>>2]=l+144,vt(l+448|0,91059,l+16|0)}else d=s;a[l+132|0]=0;e:{A:{if((0|c)>0)16&o[e+109|0]&&2&d||(!(1&d)|n&&(0|A)<=100||!(64&(r=i[e+104>>2]))&(!(8388608&r)|c>>>0>9)||Et(e,90824,l+132|0),!(1&d|o[l+144|0])|!(524288&i[e+104>>2])|f||Et(e,90824,l+132|0)),a[l+336|0]=0;else if(a[l+336|0]=0,!c&r)break A;if(n?(s=i[e+108>>2],A=(0|n)<4?(s>>>n&1)<<3:0):(r=g?3:2,A=32&s|((0|A)<100?1&d?r:4|r:r),s=i[e+108>>2]),A=1==(0|n)&&28012==i[e+212>>2]?520|A:A,1048576&s&&(r=16|A,A=(0|f)>0||1&d?r:A),!Ie(e,c,n,256&d|A,l+336|0)|!(128&o[e+104|0]))break e;a[l+132|0]=0;break e}o[133104]&&((0|(e=Wt(l+448|0)))<=0||10==o[447+(e=e+l|0)|0]&&(a[e+447|0]=0),rt(l+336|0,133104))}i[l+8>>2]=15,i[l+12>>2]=l+336,i[l+4>>2]=l+132,i[l>>2]=l+448,vt(t,91101,l),j=l+560|0}function Qe(e){var A,t,r,n=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,b=0,I=0,w=0;for(n=i[32972],i[n+64>>2]=290816,i[n+68>>2]=4104,i[n+96>>2]=0,i[n+100>>2]=0,i[n+120>>2]=90,i[n+124>>2]=100,i[n+112>>2]=64,i[n+116>>2]=256,i[n+104>>2]=5,i[n+108>>2]=0,i[n+84>>2]=100,i[n+88>>2]=64,l=i[50754],i[n+132>>2]=0,i[n+136>>2]=0,i[n+128>>2]=l,i[n+140>>2]=0,i[n+144>>2]=0,i[n+148>>2]=0,i[n+152>>2]=0,i[n+156>>2]=0,i[n+160>>2]=0,i[36435]=450,i[n+92>>2]=2,i[50870]=0,i[50871]=0,i[50872]=0,i[50873]=0,i[50880]=0,i[50881]=0,i[50882]=0,i[50883]=0,i[50890]=0,i[50891]=0,i[50892]=0,i[50893]=0,c=-3.141592653589793/+i[50754],m[25429]=c,u=-2*c,m[25430]=u,A=(c=$e(200*c))*-c,m[25434]=A,m[25439]=A,m[25444]=A,c=(u=c*nt(2e3*u))+u,m[25433]=c,m[25438]=c,m[25443]=c,u=1-c-A,m[25432]=u,m[25437]=u,m[25442]=u,i[50902]=0,i[50903]=0,i[50900]=0,i[50901]=0,m[25449]=A,m[25448]=c,i[50912]=0,i[50913]=0,m[25447]=u,i[50910]=0,i[50911]=0,m[25454]=A,m[25453]=c,i[50922]=0,i[50923]=0,m[25452]=u,i[50920]=0,i[50921]=0,m[25459]=A,m[25458]=c,i[50932]=0,i[50933]=0,m[25457]=u,i[50930]=0,i[50931]=0,m[25464]=A,m[25463]=c,m[25462]=u,i[50942]=0,i[50943]=0,i[50940]=0,i[50941]=0,m[25469]=A,m[25468]=c,m[25467]=u,i[50952]=0,i[50953]=0,i[50950]=0,i[50951]=0,m[25474]=A,m[25473]=c,m[25472]=u,t=i[32972],l=0;s[236+(d=(l<<1)+t|0)>>1]=256,s[d+164>>1]=256,n=o[l+105376|0]<<1,s[d+254>>1]=n,s[d+182>>1]=n,s[d+200>>1]=o[l+105385|0]<<1,i[308+(n=(g=l<<2)+t|0)>>2]=i[g+105408>>2],i[n+272>>2]=0,s[d+218>>1]=0,i[g+200944>>2]=(0|C(i[g+105456>>2],22050))/i[50754],9!=(0|(l=l+1|0)););for(b=i[32961],l=0,r=t+344|0;;){if(n=f,p=b,d=l,-1==(0|(f=i[(l=131840+(g=l<<2)|0)>>2]))&&(f=8e3,i[l>>2]=8e3,d&&(i[131840+(4|g)>>2]=i[g+131836>>2])),b=i[131840+(4|g)>>2],!((0|n)>=(0|(f=(0|f)/8|0))||(0|(h=f-n|0))<=0||(g=n+1|0,l=n,1&h&&(a[344+(n+t|0)|0]=(0|p)>=255?255:p,l=g),(0|g)==(0|f))))for(I=b-p|0;g=((0|C(l-n|0,I))/(0|h)|0)+p|0,a[l+r|0]=(0|g)>=255?255:g,w=((0|C((g=l+1|0)-n|0,I))/(0|h)|0)+p|0,a[g+r|0]=(0|w)>=255?255:w,(0|f)!=(0|(l=l+2|0)););if(l=d+2|0,!(d>>>0<10))break}l=i[32972],i[l+80>>2]=232,i[l+72>>2]=256,i[l+76>>2]=238,e||(i[49848]=0),s[l+200>>1]=(0|C(s[l+200>>1],105))/100}function Te(e,A,t){var r,n=0,s=0,l=0,c=0,g=0,u=0,d=0,f=0;j=r=j-288|0,132848!=(0|A)&&zA(132848,A,40),(0|(n=e+228|0))!=(0|A)&&zA(n,A,40),i[r+88>>2]=A,i[r+84>>2]=47,i[r+80>>2]=137584,vt(n=r+96|0,84089,r+80|0),s=sr(n),(n=i[e+688>>2])&&(ye(n),i[e+688>>2]=0),n=eA(r+96|0,84577);e:if((0|s)>0&&n)if(t=se(s),i[e+688>>2]=t,t)if(u=It(t,s,n),cr(n),u>>>0<=1032)i[r+16>>2]=r+96,en(i[30450],85164,r+16|0),t=2;else if(n=i[e+688>>2],t=i[n+4>>2],!(1024!=(0|(s=i[n>>2]))|(0|t)<=0)&(0|t)<134217729){n=t+n|0,i[e+684>>2]=n,f=kA(e+5168|0,0,1024),kA(e+7664|0,0,260),kA(e+7924|0,255,256),kA(e+4788|0,0,380),kA(e+6192|0,0,512);A:if(7!=(0|(t=o[0|n])))for(;;){if(6!=(0|(s=255&t))){if(!s)break A;s=i[e+684>>2],i[r+72>>2]=t<<24>>24,i[r+64>>2]=132848,i[r+68>>2]=n-s,en(i[30450],88950,r- -64|0);break}t:{r:{n:{a:{s:switch((s=o[0|(t=n+1|0)])-18|0){case 0:break a;case 2:break s;default:break n}for(t=4+(-4&t)|0,i[e+180>>2]=t;t=(n=t)+1|0,!sn(n););for(;s=o[0|n],t=n,n=n+1|0,7!=(0|s););break t}if(t=n+3|0,(0|(n=((0|(n=a[n+2|0]))<65?191:-65)+n|0))>94)break r;i[4788+((n<<2)+e|0)>>2]=t;break r}t=1+((c=Wt(t))+t|0)|0;n:switch(0|c){case 1:i[5168+((s<<2)+e|0)>>2]=t;break r;case 0:i[f>>2]=t;break r}c=o[n+2|0],1!=(0|s)?(n=i[e+7664>>2],255==o[0|(d=7924+(l=e+s|0)|0)]&&(a[0|d]=n),a[0|(l=l+7668|0)]=o[0|l]+1,i[6704+(l=(n<<2)+e|0)>>2]=t,i[e+7664>>2]=n+1,i[l+7184>>2]=s|c<<8):i[6188+((c<<2)+e|0)>>2]=t}if(7!=o[0|t])for(;t=1+(Wt(t)+t|0)|0,7!=o[0|t];);}t=o[0|(n=t+1|0)]}for(n=i[e+688>>2]+8|0;;){for(i[692+((t=g<<2)+e|0)>>2]=n;s=o[0|n];)n=n+s|0;for(n=n+1|0,i[692+((4|t)+e|0)>>2]=n;t=o[0|n];)n=t+n|0;if(n=n+1|0,1024==(0|(g=g+2|0)))break}t=0,(0|(e=i[e+324>>2]))<=0|e>>>0<=u>>>0||(i[r+48>>2]=A,en(i[30450],85519,r+48|0))}else i[r+40>>2]=t,i[r+36>>2]=s,i[r+32>>2]=r+96,en(i[30450],85349,r+32|0),t=2;else cr(n),t=3;else{if(t||(i[r>>2]=r+96,en(i[30450],84963,r)),t=1,!n)break e;cr(n)}return j=r+288|0,t}function Pe(e){var A,t=0,r=0;for(A=kA(e+344|0,0,256),a[e+364|0]=1,a[e+356|0]=1,a[e+357|0]=1,a[e+358|0]=1,a[e+359|0]=1,a[e+360|0]=1,a[e+361|0]=1,a[e+362|0]=1,a[e+363|0]=1,a[e+348|0]=1,a[e+349|0]=1,a[e+350|0]=1,a[e+351|0]=1,a[e+352|0]=1,a[e+353|0]=1,a[e+354|0]=1,a[e+355|0]=1,a[e+431|0]=3,a[e+429|0]=3,a[e+430|0]=3,a[e+406|0]=3,a[e+407|0]=3,a[e+408|0]=3,a[e+409|0]=3,a[e+410|0]=3,a[e+411|0]=3,a[e+412|0]=3,a[e+413|0]=3,a[e+414|0]=3,a[e+415|0]=3,a[e+416|0]=3,a[e+417|0]=3,a[e+418|0]=3,a[e+419|0]=3,a[e+420|0]=3,a[e+421|0]=3,a[e+440|0]=3,a[e+441|0]=3,a[e+442|0]=3,a[e+443|0]=3,r=21;a[344+(t=e+r|0)|0]=4|o[t+344|0],58!=(0|(t=r+1|0));)a[0|(t=t+A|0)]=4|o[0|t],a[2+(t=r+A|0)|0]=4|o[t+2|0],a[t+3|0]=4|o[t+3|0],r=r+4|0;a[e+346|0]=4|o[e+346|0],a[e+347|0]=4|o[e+347|0],a[e+432|0]=4|o[e+432|0],a[e+433|0]=4|o[e+433|0],a[e+434|0]=4|o[e+434|0],a[e+435|0]=4|o[e+435|0],a[e+436|0]=4|o[e+436|0],a[e+437|0]=4|o[e+437|0],a[e+438|0]=4|o[e+438|0],a[e+439|0]=4|o[e+439|0],a[e+467|0]=4|o[e+467|0],a[e+468|0]=4|o[e+468|0],a[e+470|0]=4|o[e+470|0],a[e+471|0]=4|o[e+471|0],a[e+348|0]=64|o[e+348|0],a[e+349|0]=64|o[e+349|0],a[e+350|0]=64|o[e+350|0],a[e+351|0]=64|o[e+351|0],a[e+352|0]=64|o[e+352|0],a[e+353|0]=64|o[e+353|0],a[e+354|0]=64|o[e+354|0],a[e+355|0]=64|o[e+355|0],a[e+356|0]=64|o[e+356|0],a[e+357|0]=64|o[e+357|0],a[e+358|0]=64|o[e+358|0],a[e+359|0]=64|o[e+359|0],a[e+360|0]=64|o[e+360|0],a[e+361|0]=64|o[e+361|0],a[e+362|0]=64|o[e+362|0],a[e+363|0]=64|o[e+363|0],a[e+364|0]=64|o[e+364|0],a[e+406|0]=64|o[e+406|0],a[e+407|0]=64|o[e+407|0],a[e+408|0]=64|o[e+408|0],a[e+409|0]=64|o[e+409|0],a[e+410|0]=64|o[e+410|0],a[e+411|0]=64|o[e+411|0],a[e+412|0]=64|o[e+412|0],a[e+413|0]=64|o[e+413|0],a[e+414|0]=64|o[e+414|0],a[e+415|0]=64|o[e+415|0],a[e+416|0]=64|o[e+416|0],a[e+417|0]=64|o[e+417|0],a[e+418|0]=64|o[e+418|0],a[e+419|0]=64|o[e+419|0],a[e+420|0]=64|o[e+420|0],a[e+440|0]=64|o[e+440|0],a[e+441|0]=64|o[e+441|0],a[e+429|0]=64|o[e+429|0],a[e+430|0]=64|o[e+430|0],a[e+431|0]=64|o[e+431|0],a[e+442|0]=64|o[e+442|0],a[e+443|0]=64|o[e+443|0],i[e+40>>2]=1,i[e+204>>2]=i[e+600>>2]+77}function ze(e,A,t,r,n,a,s,o,l){var c,g=0,u=0,d=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0;j=c=j-128|0;e:{A:{if(DA(a,s,o,l,0,0,0,0)){u=65535&l;t:r:{if(32767!=(0|(f=l>>>16&32767))){if(g=4,f)break r;g=a|o|s|u?3:2;break t}g=!(a|o|s|u)}if(32767!=(0|(p=32767&(b=n>>>16|0)))&&g)break A}me(c+16|0,A,t,r,n,a,s,o,l),oe(c,A=i[c+16>>2],r=i[c+20>>2],n=i[c+24>>2],t=i[c+28>>2],A,r,n,t),r=i[c+8>>2],n=i[c+12>>2],o=i[c>>2],l=i[c+4>>2];break e}if(f=o,(0|DA(A,t,g=r,h=2147483647&n,a,s,o,d=2147483647&l))<=0){if(DA(A,t,g,h,a,s,f,d)){o=A,l=t;break e}me(c+112|0,A,t,r,n,0,0,0,0),r=i[c+120>>2],n=i[c+124>>2],o=i[c+112>>2],l=i[c+116>>2]}else{if(m=l>>>16&32767,p?(l=t,o=A):(me(c+96|0,A,t,g,h,0,0,0,1081540608),g=i[c+104>>2],h=o=i[c+108>>2],p=(o>>>16|0)-120|0,l=i[c+100>>2],o=i[c+96>>2]),m||(me(c+80|0,a,s,f,d,0,0,0,1081540608),f=i[c+88>>2],d=a=i[c+92>>2],m=(a>>>16|0)-120|0,s=i[c+84>>2],a=i[c+80>>2]),C=f,I=65535&d|65536,h=65535&h|65536,(0|p)>(0|m)){for(;;){if(f=(d=g-C|0)-(u=(0|s)==(0|l)&a>>>0>o>>>0|s>>>0>l>>>0)|0,(0|(u=(h-((g>>>0<C>>>0)+I|0)|0)-(u>>>0>d>>>0)|0))>0|(0|u)>=0){if(g=o,!((o=o-a|0)|f|(l=l-((a>>>0>g>>>0)+s|0)|0)|u)){me(c+32|0,A,t,r,n,0,0,0,0),r=i[c+40>>2],n=i[c+44>>2],o=i[c+32>>2],l=i[c+36>>2];break e}u=u<<1|f>>>31,g=f<<1|l>>>31}else u=h<<1|g>>>31,g=g<<1|l>>>31;if(h=u,u=l<<1|o>>>31,o<<=1,l=u,!((0|(p=p-1|0))>(0|m)))break}p=m}if(f=(d=g-C|0)-(u=(0|s)==(0|l)&a>>>0>o>>>0|s>>>0>l>>>0)|0,d=u=(h-((g>>>0<C>>>0)+I|0)|0)-(u>>>0>d>>>0)|0,(0|u)<0)f=g,d=h;else if(g=o,!((o=o-a|0)|f|(l=l-((a>>>0>g>>>0)+s|0)|0)|d)){me(c+48|0,A,t,r,n,0,0,0,0),r=i[c+56>>2],n=i[c+60>>2],o=i[c+48>>2],l=i[c+52>>2];break e}if(65535==(0|d)|d>>>0<65535)for(;A=l>>>31|0,p=p-1|0,h=l<<1|o>>>31,o<<=1,l=h,t=A,A=d<<1|f>>>31,f=t|f<<1,d=A,A>>>0<65536;);A=32768&b,(0|p)<=0?(me(c- -64|0,o,l,f,65535&d|(A|p+120)<<16,0,0,0,1065811968),r=i[c+72>>2],n=i[c+76>>2],o=i[c+64>>2],l=i[c+68>>2]):(r=f,n=65535&d|(A|p)<<16)}}i[e>>2]=o,i[e+4>>2]=l,i[e+8>>2]=r,i[e+12>>2]=n,j=c+128|0}function Fe(e,A,t){var r,n,s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0;if(j=r=j-1040|0,(0|(l=Xt(e,589824,0)))>=0&&((s=Mr(1,2072))?i[s+8>>2]=l:(v(0|l),s=0)),n=s,s){e:if(s=St(n))for(h=i[30450],p=(r+96|0)+A|0;;){if((0|(l=i[50303]))>=348){i[r+4>>2]=350,i[r>>2]=l+1,en(h,91860,r);break e}if(46!=o[s+19|0])if(i[r+88>>2]=s+19,i[r+84>>2]=47,i[r+80>>2]=e,vt(s=r+96|0,91924,r+80|0),-31!=(0|(s=sr(s)))){if(!((0|s)<=0)&&(f=eA(r+96|0,85712))){c=0,a[r+832|0]=0,a[r+752|0]=0,i[r+360>>2]=0,i[r+356>>2]=4,u=0;A:for(;;){for(d=299-u|0;BA(r+912|0,120,f);){s=r+912|0;t:{if(35!=o[r+912|0]){r:if(!((0|(s=Wt(r+912|0)-1|0))<=0))for(;;){if(!(32==(0|(l=a[0|(g=(r+912|0)+s|0)]))|l-9>>>0<5))break r;if(a[0|g]=0,!((0|(s=s-1|0))>0))break}if(!(s=Ge(r+912|0)))break t}a[0|s]=0}s=r+912|0;t:if(l=o[r+912|0])for(;;){if(er(l<<24>>24))break t;if(!(l=o[0|(s=s+1|0)]))break}if(a[0|s]=0,o[r+912|0]){s=s+1|0;t:switch(Qr(131904,r+912|0)-1|0){case 0:for(;l=s,s=s+1|0,32==(0|(g=a[0|l]))|g-9>>>0<5;);fn(r+832|0,l,80);continue;case 1:if(a[r+672|0]=0,i[r+364>>2]=5,l=r+672|0,i[r+16>>2]=l,i[r+20>>2]=r+364,ae(s,86237,r+16|0),(l=Wt(l)+2|0)>>>0>=d>>>0)continue;a[0|(s=(r+368|0)+u|0)]=i[r+364>>2],rt(s+1|0,r+672|0),c=c+1|0,u=l+u|0;continue A;case 2:if(i[r+52>>2]=r+360,i[r+48>>2]=r+752,ae(s,86237,r+48|0),!t)continue;i[r+32>>2]=p,en(h,92042,r+32|0);continue;case 5:break t;default:continue}i[r+64>>2]=r+356,ae(s,87268,r- -64|0)}}break}a[(r+368|0)+u|0]=0,l=Qr(132112,r+752|0),c?(g=Wt(p)+u|0,d=_e((c=Mr(28+(Wt(r+832|0)+g|0)|0,1))+24|0,r+368|0,s=u+1|0),i[c+4>>2]=d,s=rt(s+d|0,p),i[c>>2]=s,i[c+8>>2]=s,o[r+832|0]&&(i[c>>2]=rt(2+(g+d|0)|0,r+832|0)),s=i[r+360>>2],a[c+14|0]=0,a[c+12|0]=l,a[c+13|0]=s,a[c+15|0]=i[r+356>>2],cr(f),s=i[50303],i[50303]=s+1,i[201216+(s<<2)>>2]=c):cr(f)}}else Fe(r+96|0,A,t);if(!(s=St(n)))break}on(i[n+8>>2]),ye(n)}j=r+1040|0}function Se(e,A){var t,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0;j=t=j-352|0;e:if(e||(e=i[136284+(A<<4)>>2])){47!=o[0|e]&&(i[t+12>>2]=e,i[t+4>>2]=47,i[t+8>>2]=47,i[t>>2]=137584,vt(e=t+16|0,84114,t)),a[t+240|0]=0;A:{t:{if(r=eA(e,84577)){if(-1==(0|jr(r,20)))break A;if(l=Wr(r),n=Wr(r),g=Wr(r),!(65537!=(0|l)|(0|n)!=i[50754])&(0|g)==n<<1)break t;cr(r),s[t+256>>1]=o[84864]|o[84865]<<8,e=o[84852]|o[84853]<<8|o[84854]<<16|o[84855]<<24,i[t+240>>2]=o[84848]|o[84849]<<8|o[84850]<<16|o[84851]<<24,i[t+244>>2]=e,e=o[84860]|o[84861]<<8|o[84862]<<16|o[84863]<<24,i[t+248>>2]=o[84856]|o[84857]<<8|o[84858]<<16|o[84859]<<24,i[t+252>>2]=e,j=l=j-16|0;r:{if((r=Wt(e=t+240|0))>>>0>=6&&!Dt(g=(e+r|0)-6|0,84274,6)){for(d=100;;){for(u=0,j=r=j-16|0,o[227196]||(a[227197]=T(),a[227196]=1),p=+G(),I(c=p/1e3)<0x8000000000000000?(f=I(c)>=1?~~(c>0?k(x(2.3283064365386963e-10*c),4294967295):B(2.3283064365386963e-10*(c-+(~~c>>>0>>>0))))>>>0:0,n=~~c>>>0):(f=-2147483648,n=0),i[r>>2]=n,i[r+4>>2]=f,c=1e3*(p-(+(rr(n,f,1e3,0)>>>0)+4294967296*+(0|Z)))*1e3,n=I(c)<2147483648?~~c:-2147483648,i[r+8>>2]=n,n=g+(r>>>4|0)^C(i[r+8>>2],65537);a[g+u|0]=65+(15&n|n<<1&32),n=n>>>5|0,6!=(0|(u=u+1|0)););if(j=r+16|0,i[l>>2]=384,(0|(r=Xt(e,194,l)))>=0)break r;if(d=d-1|0,20!=i[56798]||!d)break}_e(g,84274,6)}else i[56798]=28;r=-1}j=l+16|0,(0|r)<0||on(r)}if(!(r=eA(e,84577))){e=lr(0,i[56798],e);break e}}if((0|(l=sr(e)))<0){cr(r),e=lr(0,0-l|0,e);break e}if(-1==(0|jr(r,0))){A=i[56798],cr(r),e=lr(0,A,e);break e}if(!(n=Oe(i[(g=136280+(A<<4)|0)>>2],l))){cr(r),e=48;break e}if((0|It(n,l,r))!=(0|l)){A=i[56798],cr(r),o[t+240|0]&&Hr(t+240|0),ye(n),e=lr(0,A,e);break e}cr(r),o[t+240|0]&&Hr(t+240|0),i[136276+(A<<4)>>2]=(o[n+40|0]|o[n+41|0]<<8|o[n+42|0]<<16|o[n+43|0]<<24)/2,i[g>>2]=n,e=0;break e}A=i[56798],cr(r),e=lr(0,A,e)}else e=28;return j=t+352|0,e}function Ne(e,A,t,r,n,s){var l,c=0,g=0,u=0,d=0,f=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0,x=0,B=0;for(a[0|t]=1,l=1&s,x=1,b=-1,I=-1,d=1,s=A;;){B=k-2|0,w=f,m=I;e:{A:{for(;;){if(!(h=o[0|s])){I=m,f=w;break e}if(s=s+1|0,C=i[144464+(h<<2)>>2]){t:{if(1!=(0|(c=o[C+11|0]))){if(16&o[C+6|0]|2!=(0|c))break t;a[0|(f=t+d|0)]=b,c=(0|b)<4|(0|m)>(0|b),!(2&o[C+4|0])|!l|(0|b)>=0||(a[0|f]=1),f=c?w:d,I=c?m:b,b=-1,d=d+1|0;break A}if(!p[C+8>>1]){c=0,u=d;r:if(8!=(0|h))c=o[C+14|0],i[n>>2]&&c>>>0>=4||(m=(0|c)<(0|m)?m:c,b=c);else{for(;;){if(h=c,u=u-1|0,i[n>>2]|(0|u)<=0)break r;if((0|(C=a[0|(g=t+u|0)]))>3)break r;if(c=h+1|0,!(C>>>0<2))break}if(a[0|g]=4,w=(0|m)<4?u:w,m=(0|m)<=4?4:m,u>>>0<2)break r;if(C=3&(u=~h+k|0),c=1,B-h>>>0>=3)for(h=-4&u,u=0;4==o[0|(g=t+c|0)]&&(a[0|g]=3),4==o[g+1|0]&&(a[g+1|0]=3),4==o[g+2|0]&&(a[g+2|0]=3),4==o[g+3|0]&&(a[g+3|0]=3),c=c+4|0,(0|h)!=(0|(u=u+4|0)););if(g=0,!C)break r;for(;4==o[0|(h=t+c|0)]&&(a[0|h]=3),c=c+1|0,(0|C)!=(0|(g=g+1|0)););}if(x)continue;break e}}break}}I=m,f=w,20==(0|h)&&(a[t+d|0]=l&&(0|b)<0?1:b,d=d+1|0)}if(a[0|A]=h,k=d-1|0,A=A+1|0,x=(0|d)<99)continue}break}a[t+d|0]=1,a[0|A]=0;e:if((0|(A=i[n>>2]))>0)I=4,(0|A)>=(0|d)&&(i[n>>2]=k,A=k),a[A+t|0]=4,f=i[n>>2];else if(5==(0|I)&&(I=4,!((0|d)<2))){if(s=1,m=1&(A=d-1|0),2!=(0|d))for(w=-2&A,u=0;;){g=4;A:{t:{r:switch(o[0|(A=(c=s)+t|0)]-4|0){case 1:break t;case 0:break r;default:break A}g=2&o[e+14|0]?1:3,c=f}a[0|A]=g,f=c}g=4;A:{t:{r:switch(o[0|(A=(c=s+1|0)+t|0)]-4|0){case 1:break t;case 0:break r;default:break A}g=2&o[e+14|0]?1:3,c=f}a[0|A]=g,f=c}if(s=s+2|0,(0|w)==(0|(u=u+2|0)))break}if(m){g=4;A:{t:switch(o[0|(A=t+s|0)]-4|0){case 1:break A;case 0:break t;default:break e}g=2&o[e+14|0]?1:3,s=f}a[0|A]=g,f=s}}return i[n>>2]=f,i[r>>2]=d,I}function Oe(e,A){var t,r,n=0,a=0,s=0,o=0,l=0,c=0,g=0,u=0,d=0;if(!e)return se(A);if(A>>>0>=4294967232)return i[56798]=48,0;t=A>>>0<11?16:A+11&-8,s=-8&(r=i[4+(o=e-8|0)>>2]);e:if(3&r){l=s+o|0;A:if(s>>>0>=t>>>0){if((a=s-t|0)>>>0<16)break A;i[o+4>>2]=1&r|t|2,i[4+(n=o+t|0)>>2]=3|a,i[l+4>>2]=1|i[l+4>>2],Me(n,a)}else if(i[57158]!=(0|l))if(i[57157]!=(0|l)){if(2&(a=i[l+4>>2]))break e;if((g=s+(-8&a)|0)>>>0<t>>>0)break e;d=g-t|0;t:if(a>>>0<=255){if(s=i[l+8>>2],n=a>>>3|0,(0|(a=i[l+12>>2]))==(0|s)){i[57152]=i[57152]&Zr(-2,n);break t}i[s+12>>2]=a,i[a+8>>2]=s}else{if(u=i[l+24>>2],(0|(c=i[l+12>>2]))==(0|l))if((n=i[(s=l+20|0)>>2])||(n=i[(s=l+16|0)>>2])){for(;a=s,c=n,(n=i[(s=n+20|0)>>2])||(s=c+16|0,n=i[c+16>>2]););i[a>>2]=0}else c=0;else n=i[l+8>>2],i[n+12>>2]=c,i[c+8>>2]=n;if(u){a=i[l+28>>2];r:{if(i[(n=228912+(a<<2)|0)>>2]==(0|l)){if(i[n>>2]=c,c)break r;i[57153]=i[57153]&Zr(-2,a);break t}if(i[(i[u+16>>2]==(0|l)?16:20)+u>>2]=c,!c)break t}i[c+24>>2]=u,(n=i[l+16>>2])&&(i[c+16>>2]=n,i[n+24>>2]=c),(n=i[l+20>>2])&&(i[c+20>>2]=n,i[n+24>>2]=c)}}d>>>0<=15?(i[o+4>>2]=1&r|g|2,i[4+(n=o+g|0)>>2]=1|i[n+4>>2]):(i[o+4>>2]=1&r|t|2,i[4+(a=o+t|0)>>2]=3|d,i[4+(n=o+g|0)>>2]=1|i[n+4>>2],Me(a,d))}else{if((a=s+i[57154]|0)>>>0<t>>>0)break e;(n=a-t|0)>>>0>=16?(i[o+4>>2]=1&r|t|2,i[4+(s=o+t|0)>>2]=1|n,i[(a=a+o|0)>>2]=n,i[a+4>>2]=-2&i[a+4>>2]):(i[o+4>>2]=a|1&r|2,i[4+(n=a+o|0)>>2]=1|i[n+4>>2],n=0,s=0),i[57157]=s,i[57154]=n}else{if((s=s+i[57155]|0)>>>0<=t>>>0)break e;i[o+4>>2]=1&r|t|2,n=s-t|0,i[4+(a=o+t|0)>>2]=1|n,i[57155]=n,i[57158]=a}n=o}else{if(t>>>0<256)break e;if(s>>>0>=t+4>>>0&&(n=o,s-t>>>0<=i[57272]<<1>>>0))break e;n=0}return n?n+8|0:(o=se(A))?(_e(o,e,A>>>0>(n=(3&(n=i[e-4>>2])?-4:-8)+(-8&n)|0)>>>0?n:A),ye(e),o):0}function Le(){var e,A,t=0,r=0;return e=Nr(12),i[e>>2]=22050,A=Nr(432),i[(r=A)+4>>2]=0,i[r+8>>2]=0,i[r>>2]=132304,i[r+32>>2]=0,i[r+12>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0,i[r+24>>2]=0,kA(r+40|0,0,376),i[r+420>>2]=0,i[r+424>>2]=-1,a[r+416|0]=1,t=kA(Nr(408),0,408),i[r+28>>2]=t,a[t+8|0]=1,i[e+4>>2]=r,t=Nr(1096),i[t+8>>2]=22050,i[t+4>>2]=22050,i[t>>2]=132352,i[t+64>>2]=22050,i[t+56>>2]=0,i[t+60>>2]=0,i[t+32>>2]=0,i[t+36>>2]=0,i[t+24>>2]=22050,i[t+16>>2]=0,i[t+20>>2]=0,i[t+40>>2]=0,i[t+44>>2]=0,a[t+48|0]=0,i[t+128>>2]=0,i[t+132>>2]=0,s[t+96>>1]=0,i[t+72>>2]=22050,i[t+136>>2]=0,i[t+140>>2]=0,s[t+168>>1]=0,i[t+144>>2]=22050,i[t+200>>2]=0,i[t+204>>2]=0,i[t+208>>2]=0,i[t+212>>2]=0,i[t+216>>2]=22050,s[t+240>>1]=0,i[t+280>>2]=0,i[t+284>>2]=0,i[t+272>>2]=0,i[t+276>>2]=0,i[t+288>>2]=22050,s[t+312>>1]=0,i[t+344>>2]=0,i[t+348>>2]=0,i[t+352>>2]=0,i[t+356>>2]=0,i[t+360>>2]=22050,s[t+384>>1]=0,i[t+416>>2]=0,i[t+420>>2]=0,i[t+424>>2]=0,i[t+428>>2]=0,i[t+432>>2]=22050,s[t+456>>1]=0,i[t+488>>2]=0,i[t+492>>2]=0,i[t+496>>2]=0,i[t+500>>2]=0,i[t+504>>2]=22050,s[t+528>>1]=1,i[t+560>>2]=0,i[t+564>>2]=0,i[t+568>>2]=0,i[t+572>>2]=0,s[t+600>>1]=0,i[t+576>>2]=22050,i[t+640>>2]=0,i[t+644>>2]=0,i[t+632>>2]=0,i[t+636>>2]=0,s[t+680>>1]=0,i[t+656>>2]=22050,i[t+648>>2]=22050,i[t+720>>2]=0,i[t+724>>2]=0,i[t+712>>2]=0,i[t+716>>2]=0,s[t+752>>1]=0,i[t+728>>2]=22050,i[t+792>>2]=0,i[t+796>>2]=0,i[t+784>>2]=0,i[t+788>>2]=0,s[t+824>>1]=0,i[t+800>>2]=22050,i[t+864>>2]=0,i[t+868>>2]=0,i[t+856>>2]=0,i[t+860>>2]=0,i[t+872>>2]=22050,s[t+896>>1]=0,i[t+936>>2]=0,i[t+940>>2]=0,i[t+928>>2]=0,i[t+932>>2]=0,s[t+968>>1]=0,i[t+944>>2]=22050,i[t+1008>>2]=0,i[t+1012>>2]=0,i[t+1e3>>2]=0,i[t+1004>>2]=0,s[t+1040>>1]=0,i[t+1016>>2]=22050,i[t+1088>>2]=0,i[(r=t+1080|0)>>2]=0,i[r+4>>2]=0,i[(r=t+1072|0)>>2]=0,i[r+4>>2]=0,i[e+8>>2]=t,Tn[i[i[t>>2]+4>>2]](t,A),e}function Ye(e,A,t){var r=0,n=0,a=0,s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0;e:if(d=i[50759]){if(r=i[50980],n=C(r,80)+222176|0,(0|(c=(0|(n=(0|(n=(i[n+12>>2]+i[n>>2]|0)/(0|e)|0))<(0|(u=((0|C(i[50754],19))/40<<16)/(0|e)|0))?n:u))>=399?399:n))>=0&&(kA(A,0,4+(c<<2)|0),r=i[50980]),(0|r)>=0)for(f=i[50801];;){if(a=C(s,80)+222176|0,i[a+4>>2]&&(l=i[a>>2])){if(p=l+i[a+12>>2]|0,r=1+((l-i[a+8>>2]|0)/(0|e)|0)|0,(0|l)>(0|(r=C(n=(0|r)<=1?1:r,e))))for(;i[(g=(n<<2)+A|0)>>2]=i[g>>2]+C(i[a+4>>2],o[((l-r|0)/(i[a+8>>2]>>8)|0)+f|0]),n=n+1|0,(0|l)>(0|(r=e+r|0)););if(!((0|r)>=(0|p)))for(;i[(g=(n<<2)+A|0)>>2]=i[g>>2]+C(i[a+4>>2],o[((r-l|0)/(i[a+12>>2]>>8)|0)+f|0]),n=n+1|0,(0|p)>(0|(r=e+r|0)););}if(!((0|(s=s+1|0))<=i[50980]))break}if(n=1,!((0|(a=65536e3/(0|e)|0))<=0||(0|(r=C(i[55565],10)))<=0))for(a=(0|r)/(0|a)|0;i[(l=(n<<2)+A|0)>>2]=i[l>>2]+r,n=n+1|0,(0|(r=r-a|0))>0;);if((0|s)<=8)for(;n=203216+(r=s<<2)|0,a=C(s,80)+222176|0,l=i[a+4>>2]>>14,i[n>>2]=(0|C(C(l,l),5))/2,t?r=i[r+203264>>2]:(l=r+203264|0,r=i[a>>2]/(0|e)|0,i[l>>2]=r),(0|r)>=(0|u)&&(i[n>>2]=0),9!=(0|(s=s+1|0)););if(n=0,(0|c)>=0)for(r=0;a=i[(s=(r<<2)+A|0)>>2]>>15,a=C(a,a)>>8,i[s>>2]=a,(0|n)<=524287999&&(i[s>>2]=C(a,o[344+((n>>19)+d|0)|0])>>13),n=e+n|0,s=(0|r)!=(0|c),r=r+1|0,s;);if(i[A+4>>2]=(0|C(i[A+4>>2],o[203300]?6:10))/8,1&t)for(e=i[50826],r=1;;){if(i[203312+(t=r<<2)>>2]=i[A+t>>2]-i[e+t>>2]>>3,30==(0|(t=r+1|0)))break e;i[203312+(t<<=2)>>2]=i[A+t>>2]-i[e+t>>2]>>3,r=r+2|0}}else c=1;return c}function He(e,A,t,r){var n,l=0,c=0;j=n=j-176|0,a[0|e]=0,s[n+80>>1]=24320,i[n+104>>2]=0,i[n+108>>2]=0,a[82+(Ft(t,l=n+80|2)+n|0)|0]=0;e:{A:{if(!r){if(r=n+80|1,i[n+12>>2]=r,Ve(A,n+12|0,n+16|0,n+104|0,0,0)||(i[n+12>>2]=l,Ve(A,n+12|0,n+16|0,n+104|0,0,0)||(a[n+81|0]=32,Ce(A,l,n+16|0,60,0,0,0))),(t=o[n+16|0])&&21!=(0|t))break A;t:{if(25966!=i[A+212>>2]){if(Mt(85719,188772,189296),a[n+81|0]=95,i[n+12>>2]=r,Ve(i[47193],n+12|0,n+16|0,n+104|0,0,0)||(i[n+12>>2]=l,Ve(i[47193],n+12|0,n+16|0,n+104|0,0,0)),o[n+16|0])break t;qr(i[i[32972]+60>>2]),t=o[n+16|0]}if(255&t)break A;A=o[87124]|o[87125]<<8|o[87126]<<16|o[87127]<<24,t=o[87120]|o[87121]<<8|o[87122]<<16|o[87123]<<24,a[0|e]=t,a[e+1|0]=t>>>8,a[e+2|0]=t>>>16,a[e+3|0]=t>>>24,a[e+4|0]=A,a[e+5|0]=A>>>8,a[e+6|0]=A>>>16,a[e+7|0]=A>>>24,a[e+16|0]=o[87136],A=o[87132]|o[87133]<<8|o[87134]<<16|o[87135]<<24,t=o[87128]|o[87129]<<8|o[87130]<<16|o[87131]<<24,a[e+8|0]=t,a[e+9|0]=t>>>8,a[e+10|0]=t>>>16,a[e+11|0]=t>>>24,a[e+12|0]=A,a[e+13|0]=A>>>8,a[e+14|0]=A>>>16,a[e+15|0]=A>>>24;break e}r=n+16|0,l=n+104|0,j=t=j-112|0,(c=i[47193])?(ie(c,r,l,-1,0),QA(l=r,r=t+48|0),A=i[A+212>>2],a[t+43|0]=A>>>24,a[0|(c=(l=t+43|0)+(A>>>0>16777215)|0)]=A>>>16,a[0|(c=c+!!(16711680&A)|0)]=A>>>8,a[0|(c=c+!!(65280&A)|0)]=A,a[c+!!(255&A)|0]=0,i[t+16>>2]=85719,i[t+24>>2]=l,i[t+20>>2]=r,vt(e,85662,t+16|0)):(ie(A,r,l,-1,0),QA(r,A=t+48|0),i[t>>2]=A,vt(e,85451,t)),j=t+112|0,qr(i[i[32972]+60>>2]);break e}if(i[n+12>>2]=l,Ve(A,n+12|0,n+16|0,n+104|0,0,0),!o[n+16|0])break e}ie(t=A,A=n+16|0,n+104|0,-1,0),QA(t=A,A=n+112|0),i[n>>2]=A,vt(e,85451,n)}return j=n+176|0,e}function Re(e,A){var t,r=0,n=0,s=0,o=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,m=0,C=0,b=0,I=0,w=0,k=0;if(j=t=j-112|0,i[t+72>>2]=-1,i[(r=t- -64|0)>>2]=-1,i[r+4>>2]=-1,i[t+56>>2]=-1,i[t+60>>2]=-1,i[t+48>>2]=-1,i[t+52>>2]=-1,i[t+40>>2]=-1,i[t+44>>2]=-1,i[t+32>>2]=-1,i[t+36>>2]=-1,i[t+24>>2]=-1,i[t+28>>2]=-1,i[t+16>>2]=-1,i[t+20>>2]=-1,(0|A)>0){for(s=i[t+72>>2],o=i[t+68>>2],l=i[t+64>>2],c=i[t+60>>2],g=i[t+56>>2],u=i[t+52>>2],d=i[t+48>>2],f=i[t+44>>2],p=i[t+40>>2],h=i[t+36>>2],m=i[t+32>>2],C=i[t+28>>2],b=i[t+24>>2],I=i[t+20>>2],w=i[t+16>>2];n=s,s=(0|(s=i[60+(r=134912+(k<<6)|0)>>2]))<0?n:s,n=o,o=(0|(o=i[r+56>>2]))<0?n:o,n=l,l=(0|(l=i[r+52>>2]))<0?n:l,n=c,c=(0|(c=i[r+48>>2]))<0?n:c,n=g,g=(0|(g=i[r+44>>2]))<0?n:g,n=u,u=(0|(u=i[r+40>>2]))<0?n:u,n=d,d=(0|(d=i[r+36>>2]))<0?n:d,n=f,f=(0|(f=i[r+32>>2]))<0?n:f,n=p,p=(0|(p=i[r+28>>2]))<0?n:p,n=h,h=(0|(h=i[r+24>>2]))<0?n:h,n=m,m=(0|(m=i[r+20>>2]))<0?n:m,n=C,C=(0|(C=i[r+16>>2]))<0?n:C,n=b,b=(0|(b=i[r+12>>2]))<0?n:b,n=I,I=(0|(I=i[r+8>>2]))<0?n:I,w=(0|(r=i[r+4>>2]))<0?w:r,(0|(k=k+1|0))!=(0|A););i[t+72>>2]=s,i[t+68>>2]=o,i[t+64>>2]=l,i[t+60>>2]=c,i[t+56>>2]=g,i[t+52>>2]=u,i[t+48>>2]=d,i[t+44>>2]=f,i[t+40>>2]=p,i[t+36>>2]=h,i[t+32>>2]=m,i[t+28>>2]=C,i[t+24>>2]=b,i[t+20>>2]=I,i[t+16>>2]=w}for(A=0;;){if((0|(r=i[(s=A<<2)+(t+16|0)>>2]))!=i[(s=s+134848|0)>>2]){a[t+80|0]=0;e:{A:switch(A-1|0){case 4:i[47201]=r-1;break e;case 5:i[47200]=r;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}i[t+4>>2]=r,i[t>>2]=1,i[t+8>>2]=a[A+102812|0],vt(t+80|0,91942,t)}i[s>>2]=r,r=t+80|0,rt(i[e>>2]+189424|0,r),i[e>>2]=i[e>>2]+Wt(r)}if(15==(0|(A=A+1|0)))break}j=t+112|0}function We(e){var A,t,r,n=0,s=0,l=0,c=0;for(n=17,i[e+328>>2]=17,i[e+224>>2]=0,i[e+216>>2]=1105,i[e+220>>2]=1072,i[e+600>>2]=1056,i[e+8180>>2]=105296,l=kA(e+344|0,0,256),a[e+393|0]=1,a[e+365|0]=1,a[e+360|0]=1,a[e+545|0]=1,a[e+529|0]=1,a[e+391|0]=1,a[e+379|0]=1,a[e+374|0]=1,a[e+489|0]=1,a[e+487|0]=1,a[e+398|0]=1,a[e+387|0]=1,a[e+388|0]=2,a[e+389|0]=1,a[e+390|0]=1,a[e+385|0]=2,a[e+383|0]=2,a[e+368|0]=1,a[e+369|0]=2,s=104224;a[0|(n=n+l|0)]=4|o[0|n],n=l+o[s+1|0]|0,a[0|n]=4|o[0|n],n=l+o[s+2|0]|0,a[0|n]=4|o[0|n],n=o[0|(s=s+3|0)],104251!=(0|s););a[e+386|0]=8|o[e+386|0],a[e+382|0]=8|o[e+382|0],a[e+384|0]=8|o[e+384|0],a[e+369|0]=16|o[e+369|0],a[e+370|0]=16|o[e+370|0],a[e+371|0]=16|o[e+371|0],s=o[e+361|0],l=o[e+362|0],n=o[e+363|0],c=o[e+364|0],A=o[e+366|0],t=o[e+367|0],a[e+372|0]=16|o[e+372|0],a[e+373|0]=16|o[e+373|0],a[e+375|0]=16|o[e+375|0],a[e+376|0]=16|o[e+376|0],a[e+377|0]=16|o[e+377|0],a[e+378|0]=16|o[e+378|0],a[e+380|0]=16|o[e+380|0],a[e+381|0]=16|o[e+381|0],a[e+383|0]=16|o[e+383|0],a[e+385|0]=16|o[e+385|0],r=o[e+388|0],a[e+367|0]=48|t,a[e+366|0]=40|A,a[e+364|0]=48|c,a[e+363|0]=48|n,a[e+362|0]=48|l,a[e+361|0]=48|s,a[e+388|0]=80|r,s=o[e+390|0],l=o[e+391|0],n=o[e+393|0],a[e+360|0]=128|o[e+360|0],c=o[e+365|0],a[e+393|0]=192|n,a[e+365|0]=128|c,a[e+368|0]=128|o[e+368|0],a[e+374|0]=128|o[e+374|0],a[e+379|0]=128|o[e+379|0],a[e+387|0]=128|o[e+387|0],n=o[e+389|0],a[e+391|0]=192|l,a[e+390|0]=192|s,a[e+389|0]=128|n,a[e+529|0]=128|o[e+529|0],a[e+545|0]=128|o[e+545|0],a[e+489|0]=128|o[e+489|0],a[e+487|0]=128|o[e+487|0],a[e+398|0]=128|o[e+398|0]}function Ve(e,A,t,r,n,l){var c,g=0,u=0,d=0,f=0,p=0,h=0;j=c=j-192|0,g=p=i[A>>2];e:{A:{for(;u=1,(0|(d=a[0|g]))>=0||(u=2,d>>>0<4294967264||(u=d>>>0<4294967280?3:4)),!(32!=o[0|(d=u+g|0)]|46!=o[d+1|0]);){if(f-160>>>0<4294967135)break A;_e((h=c+32|0)+f|0,g,u),a[(u=u+f|0)+h|0]=46,g=d+3|0,f=u+1|0}if(f){for(u=0;d=u,u=u+1|0,223&o[g+d|0];);if(!(1+(h=d+f|0)>>>0>160)&&(_e((u=c+32|0)+f|0,g,d),a[u+h|0]=0,ke(e,u,g,t,r,n,l))){i[r>>2]=128|i[r>>2],i[33264]=f,e=1;break e}}}for(g=0;;){if(p=(u=p)+1|0,223&(u=o[0|u]))if(!g|46!=(0|u)|a[31+(g+c|0)|0]-48>>>0>=10){if(a[(c+32|0)+g|0]=u,u=159,159!=(0|(g=g+1|0)))continue}else u=g;else u=g;break}a[(g=c+32|0)+u|0]=0,g=ke(e,g,p,t,r,n,l);A:if(8&o[r+3|0]){if(!hr(t,d=e+268|0)){if(d=i[e+288>>2]+1|0,i[e+288>>2]=d,(0|d)<4)break A;a[0|t]=0;break A}fn(d,t,20),i[e+288>>2]=1}else i[e+288>>2]=0;A:{if(!g){if(g=0,8&o[r+5|0]&&(d=VA(c+28|0,g=c+32|95==o[c+32|0]),sA(e,i[c+28>>2],t),g=g+d|0),!(u>>>0<2|g)){if(a[0|t]=0,!(16&n&&101==o[0|(g=31+(u+c|0)|0)])){if(!(4096&n))break A;if(o[0|(g=(u=(c+32|0)+u|0)-1|0)]!=o[u-2|0])break A}a[0|g]=0,g=ke(e,c+32|0,p,t,r,n,l)}if(!g)break A}if(f=i[r>>2],o[e+172|0]&&(f^=536870912,i[r>>2]=f),e=1,!(536870912&f))break e;2&n&&(s[66448]=8192,i[c+16>>2]=t,vt(132898,87470,c+16|0),e=i[A>>2],i[A>>2]=132898,8&o[188788]&&(_e(A=c+32|0,r=e,e=g-e|0),a[e+A|0]=0,i[c+4>>2]=132898,e=i[47195],i[c>>2]=A,en(e,87652,c)))}a[0|t]=0,e=0}return j=c+192|0,e}function je(e,A){var t=0,r=0,n=0;t=31&e;e:{A:{t:{if(96==(0|(e&=96)))e=-1;else{if(64!=(0|e))break t;e=1}if(t>>>0>=15)break e;A=i[203136+(t<<2)>>2]+C(e,A)|0;break A}if(t>>>0>=15)break e}e=i[105616+(r=t<<2)>>2],i[r+203136>>2]=(0|A)>=0?(0|e)>(0|A)?A:e:0}e:{A:{t:{r:{n:switch(t-1|0){case 5:if(!(e=i[50759]))break A;i[54728]=i[50982],A=i[50979],t=i[50978],kA(205184,0,11e3),i[51293]=0,A=(t=(n=(0|(r=i[50789]))>0)?130:(0|t)>=5499?5499:t)?n?r:(0|A)>=100?100:A:0,i[50755]=A,t=(0|C(t,i[50754]))/1e3|0,i[51292]=t,i[54729]=(0|A)>20?t<<1:A?t:0,i[33037]=(0|C(500-A|0,(0|C(o[i[50797]+105596|0],(0|C(i[50787],55))/100|0))/16|0))/500;break r;case 0:break n;case 2:case 12:break e;case 4:break t;default:break A}if(!(e=i[50759]))break A}return A=256,(0|(t=(0|(t=i[50785]))>=101?101:t))>=51&&(A=256+(((C(t,25)-1250&65535)>>>0)/50|0)|0),s[e+164>>1]=(0|C(s[e+236>>1],A))/256,s[e+166>>1]=(0|C(s[e+238>>1],A))/256,s[e+168>>1]=(0|C(s[e+240>>1],A))/256,s[e+170>>1]=(0|C(s[e+242>>1],A))/256,s[e+172>>1]=(0|C(s[e+244>>1],A))/256,s[e+174>>1]=(0|C(s[e+246>>1],A))/256,e=i[50790],s[102e3]=(0|C(s[102036],C(e,-3)+256|0))/256,void(s[101999]=(0|C(s[102035],C(e,-6)+256|0))/256)}i[50759]&&(i[54728]=i[50982],e=i[50979],A=i[50978],kA(205184,0,11e3),i[51293]=0,e=(A=(r=(0|(t=i[50789]))>0)?130:(0|A)>=5499?5499:A)?r?t:(0|e)>=100?100:e:0,i[50755]=e,A=(0|C(A,i[50754]))/1e3|0,i[51292]=A,i[54729]=(0|e)>20?A<<1:e?A:0,i[33037]=(0|C(500-e|0,(0|C(o[i[50797]+105596|0],(0|C(i[50787],55))/100|0))/16|0))/500)}return}i[33037]=(0|C(o[i[50797]+105596|0],(0|C(i[50787],55))/100|0))/16}function Ue(e,A,t){var r=0,n=0,s=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0;t&&(i[t>>2]=0);e:{A:if(!((0|(r=a[0|e]))<0)){for(;;){if(32==(0|(s=255&r))|s-9>>>0<5){if((0|(r=a[0|(e=e+1|0)]))>=0)continue;break A}break}if(!(255&r))break e}for(;;){if(32==(0|(r=g=255&r))|r-9>>>0<5)break e;if(124!=(0|g)||124==(0|(r=o[0|(s=e+1|0)]))){A:{if((0|(f=i[36115]))>=2){for(r=1,s=-1,u=0;;){t:if(!(!(d=i[144464+(r<<2)>>2])|15==o[d+11|0])){c=i[d>>2];r:{n:{if(g>>>0>=33){if(p=0,l=0,(255&c)==(0|g)&&(l=1,(n=o[e+1|0])>>>0<33|(0|n)!=(c>>>8&255)||(l=2,(n=o[e+2|0])>>>0<33|(0|n)!=(c>>>16&255)||(l=(n=(n=o[e+3|0])>>>0>32&(0|n)==(c>>>24|0))?4:3,p=0-n|0))),(0|s)>=(0|l))break t;if(n=4,!(1&p))break n;break r}if(l=0,(0|s)>=0)break t}if(c>>>((n=l)<<3)&255)break t}u=o[d+10|0],s=n}if((0|f)==(0|(r=r+1|0)))break}if(u)break A}return t&&VA(t,e),void(a[0|A]=0)}a[0|A]=u,e=((0|s)<=1?1:s)+e|0,A=s=A+1|0;A:if(21==(0|u)){t:if(32==(0|(n=o[0|e]))|n-9>>>0<5)r=s;else if(r=s,n)for(;;){if(a[0|r]=nr(n),r=r+1|0,32==(0|(n=o[0|(e=e+1|0)]))|n-9>>>0<5)break t;if(!n)break}if(a[0|r]=0,!n){if(A=r,hr(s,85593))break A;return void(a[0|s]=0)}a[0|r]=124,A=r+1|0}r=o[0|e]}else e=s;if(!(255&r))break}}a[0|A]=0}function Ke(e,A){var t=0,r=0,n=0,a=0,s=0;e:{A:{t:{r:{n:switch((0|(t=i[e+4>>2]))==i[e+104>>2]?t=hA(e):(i[e+4>>2]=t+1,t=o[0|t]),t-43|0){case 0:case 2:break n;default:break r}if(a=45==(0|t),s=!A,(0|(t=i[e+4>>2]))==i[e+104>>2]?t=hA(e):(i[e+4>>2]=t+1,t=o[0|t]),s|(A=t-58|0)>>>0>4294967285)break t;if(i[e+116>>2]<0)break A;i[e+4>>2]=i[e+4>>2]-1;break A}A=t-58|0}if(!(A>>>0<4294967286)){if((A=t-48|0)>>>0<10){for(;n=(0|(r=(r=C(r,10)+t|0)-48|0))<214748364,(0|(A=i[e+4>>2]))==i[e+104>>2]?t=hA(e):(i[e+4>>2]=A+1,t=o[0|A]),n&(A=t-48|0)>>>0<=9;);n=r>>31}t:if(!(A>>>0>=10))for(;;){if(A=(r=rr(r,n,10,0))+t|0,t=Z,t=A>>>0<r>>>0?t+1|0:t,r=A-48|0,n=t-(A>>>0<48)|0,(0|(A=i[e+4>>2]))==i[e+104>>2]?t=hA(e):(i[e+4>>2]=A+1,t=o[0|A]),(A=t-48|0)>>>0>9)break t;if(!(r>>>0<2061584302&(0|n)<=21474836|(0|n)<21474836))break}if(A>>>0<10)for(;(0|(A=i[e+4>>2]))==i[e+104>>2]?A=hA(e):(i[e+4>>2]=A+1,A=o[0|A]),A-48>>>0<10;);(0|(A=i[e+116>>2]))>0|(0|A)>=0&&(i[e+4>>2]=i[e+4>>2]-1),e=r,r=a?0-e|0:e,n=a?0-(!!(0|e)+n|0)|0:n;break e}}if(n=-2147483648,!(i[e+116>>2]<0))return i[e+4>>2]=i[e+4>>2]-1,Z=-2147483648,0}return Z=n,r}function Ze(e){var A=0,t=0,r=0,n=0;if(i[36432]=110,i[36433]=100,i[36434]=450,i[36430]=5,A=i[203136+(2==(0|e)?32:8)>>2],r=i[32972],(0|(t=i[r+84>>2]))>0&&(A=(0|C(A,t))/100|0),t=(0|A)>=359?359:A,t=(0|(A=(0|A)>=450?450:A))>399?6:(0|A)>379?7:o[((0|t)<=80?80:t)+101856|0],1&e&&(i[32526]=(0|C(t,i[r+72>>2]))/256,i[32527]=(0|C(t,i[r+76>>2]))/256,i[32528]=(0|C(t,i[r+80>>2]))/256,t>>>0>7||(n=t-1|0,i[32528]=n,i[32526]=t,i[32527]=n)),2&e){e=i[r+72>>2];e:{A:{t:{r:{n:{a:{s:{i:{if((0|A)>=351)r=A-350|0,i[36432]=85-(((255&r)>>>0)/3|0)&255,r=60-(r>>>3|0)|0;else{if((0|A)<251)break i;r=A-250|0,i[36432]=110-(r>>>2|0),r=110-(r>>>1|0)|0}if(i[36433]=r,e=(0|C(e,t))/256|0,i[36431]=110+((0|C(e,150))/128|0),A>>>0<=349)break s;if(t=A-350|0,i[36431]=o[t+102224|0],A>>>0<390)break n;if(i[36434]=450+((A+112<<24>>24)/-2<<24>>24),A>>>0<441)break a;i[36434]=860-A,e=12;break A}e=(0|C(e,t))/256|0,i[36431]=(0|A)>=170?110+((0|C(e,150))/128|0)|0:128+((e<<7)/130|0)|0}e=(e<<8)/115|0;break A}if(e=12,A>>>0>430)break A;if(e=13,A>>>0<=400)break r;break A}if(e=(e<<8)/115|0,i[36428]=e,A>>>0<375)break t}e=14;break A}if((0|A)<351)break e;e=o[t+102336|0]}i[36428]=e}i[36429]=(0|e)<=16?16:e}}function Xe(e,A,t){var r,n,a,l;r=.000244140625*+i[50767],m[t>>3]=r,m[t+40>>3]=.015625*+i[e+112>>2],m[t+48>>3]=.015625*+i[e+276>>2],m[t+56>>3]=.00390625*+(0|C(s[e+166>>1],s[A+4>>1]))+ +s[e+220>>1],m[t+64>>3]=.00390625*+(0|C(s[e+168>>1],s[A+6>>1]))+ +s[e+222>>1],m[t+72>>3]=.00390625*+(0|C(s[e+170>>1],s[A+8>>1]))+ +s[e+224>>1],m[t+80>>3]=.00390625*+(0|C(s[e+172>>1],s[A+10>>1]))+ +s[e+226>>1],m[t+88>>3]=.00390625*+(0|C(s[e+174>>1],s[A+12>>1]))+ +s[e+228>>1],n=s[e+230>>1],a=s[e+176>>1],l=s[A+14>>1],i[t+112>>2]=0,i[t+116>>2]=1080623104,i[t+104>>2]=0,i[t+108>>2]=1081032704,m[t+96>>3]=.00390625*+(0|C(a,l))+ +(0|n),o[A+40|0]?(i[t+184>>2]=0,i[t+188>>2]=1072693248,m[t+104>>3]=o[A+40|0]<<1):(i[t+184>>2]=0,i[t+188>>2]=0),m[t+120>>3]=.00390625*+s[e+202>>1]*+(o[A+35|0]<<1),m[t+128>>3]=.00390625*+s[e+204>>1]*+(o[A+36|0]<<1),m[t+136>>3]=.00390625*+s[e+206>>1]*+(o[A+37|0]<<1),A=o[A+38|0],e=s[e+208>>1],i[t+176>>2]=0,i[t+180>>2]=1079574528,i[t+160>>2]=0,i[t+164>>2]=1083129856,i[t+152>>2]=0,i[t+156>>2]=1083129856,i[t+352>>2]=0,i[t+356>>2]=1072693248,i[t+168>>2]=0,i[t+172>>2]=1079574528,m[t+144>>3]=.00390625*+(0|e)*+(A<<1),e=i[50779],m[t+368>>3]=r,m[t+360>>3]=+(0|e)/100*3}function qe(e){var A=0;q(e,UA(e));e:{A:{t:{r:{n:{a:{s:{i:{o:{l:{if((0|(e=-1048576&Z))<268435455|(0|e)<=268435455){c:{g:{if((0|e)<33554431|(0|e)<=33554431){if((0|e)<8388607|(0|e)<=8388607){if(A=524328,!0&-2147483648==(0|e))break e;if(0|-2143289344!=(0|e))break A;return 557096}if(!0&8388608==(0|e))break g;if(0|16777216!=(0|e))break A;return 524358}if((0|e)>71303167)break c;if(!0&33554432==(0|e))break t;if(0|67108864!=(0|e))break A}return 266270}if(!0&71303168==(0|e))break l;if(!0&134217728==(0|e))break r;if(0|138412032!=(0|e))break A;return 294942}if((0|e)<542113791|(0|e)<=542113791){if((0|e)<536870911|(0|e)<=536870911){if(!0&268435456==(0|e))break n;if(0|272629760!=(0|e))break A;return 299028}if(!0&536870912==(0|e))break s;if(!0&538968064==(0|e))break a;if(0|541065216!=(0|e))break A;return 569389}if((0|e)<1075838975|(0|e)<=1075838975){if(!0&542113792==(0|e))break l;if(0|1073741824!=(0|e))break A;return 532520}if(!0&1075838976==(0|e))break i;if(!0&1077936128==(0|e))break o;if(0|1078984704!=(0|e))break A}return 299038}return 565288}return 1581096}return 536621}return 1585197}return 266260}return 262174}return 2396190}A=16384}return A}function Je(e,A,t,r,n,a){var s,l,c=0,g=0,u=0,d=0;if(l=8388607&e,g=i[34456],c=o[0|(e=l+g|0)]|o[e+1|0]<<8){s=!(u=o[e+2|0]),e=i[36434]<<s,(0|t)<=0?t=c:(t=(0|C(i[50754],t))/1e3<<s,e=(0|e)<(0|(d=(0|C(t,e))/(0|c)|0))?d:e),n=(0|n)>0?(0|C(t,n))/256|0:t,t=(0|C(n,i[36431]))/256|0,t=(0|e)<(0|(t=(4&r)>>>2|0&&(0|t)>(0|n)?n:t))?t:e,u||(c=c>>>1|0,t=(0|t)/2|0);e:if(!((0|a)<0)){if(r=l+4|0,256&A)e=i[50758],i[36439]=e,i[(A=216192+(e<<4)|0)>>2]=7,i[A+8>>2]=r+g,i[A+4>>2]=c<<16|t,a=u|a<<8;else{if(e=i[50758],i[36439]=e,i[(e=216192+(e<<4)|0)>>2]=6,a=u|a<<8,i[e+12>>2]=a,i[e+8>>2]=r+g,g=e,e=C(A=c>>>2|0,3),n=(0|t)>(0|c),i[g+4>>2]=n?e:t,g=i[50758]+1|0,i[50758]=(0|g)<=169?g:0,(0|e)<(0|(t=n?t-e|0:0)))for(n=A<<1,u=r+(u?A:n)|0;A=i[50758],i[36439]=A,i[(A=216192+(A<<4)|0)>>2]=6,i[A+4>>2]=n,i[A+12>>2]=a,i[A+8>>2]=u+i[34456],A=i[50758]+1|0,i[50758]=(0|A)<=169?A:0,(0|e)<(0|(t=t-n|0)););if((0|t)<=0)break e;e=i[50758],i[36439]=e,i[(A=216192+(e<<4)|0)>>2]=6,i[A+4>>2]=t,i[A+8>>2]=i[34456]+(r+(c-t<<s)|0)}i[12+(216192+(e<<4)|0)>>2]=a,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0}}}function _e(e,A,t){var r,n=0,s=0;if(t>>>0>=512)return P(0|e,0|A,0|t),e;r=e+t|0;e:if(3&(e^A))if(r>>>0<4)t=e;else if((n=r-4|0)>>>0<e>>>0)t=e;else for(t=e;a[0|t]=o[0|A],a[t+1|0]=o[A+1|0],a[t+2|0]=o[A+2|0],a[t+3|0]=o[A+3|0],A=A+4|0,n>>>0>=(t=t+4|0)>>>0;);else{A:if(3&e)if(t)for(t=e;;){if(a[0|t]=o[0|A],A=A+1|0,!(3&(t=t+1|0)))break A;if(!(t>>>0<r>>>0))break}else t=e;else t=e;if(!((n=-4&r)>>>0<64||(s=n+-64|0)>>>0<t>>>0))for(;i[t>>2]=i[A>>2],i[t+4>>2]=i[A+4>>2],i[t+8>>2]=i[A+8>>2],i[t+12>>2]=i[A+12>>2],i[t+16>>2]=i[A+16>>2],i[t+20>>2]=i[A+20>>2],i[t+24>>2]=i[A+24>>2],i[t+28>>2]=i[A+28>>2],i[t+32>>2]=i[A+32>>2],i[t+36>>2]=i[A+36>>2],i[t+40>>2]=i[A+40>>2],i[t+44>>2]=i[A+44>>2],i[t+48>>2]=i[A+48>>2],i[t+52>>2]=i[A+52>>2],i[t+56>>2]=i[A+56>>2],i[t+60>>2]=i[A+60>>2],A=A- -64|0,s>>>0>=(t=t- -64|0)>>>0;);if(t>>>0>=n>>>0)break e;for(;i[t>>2]=i[A>>2],A=A+4|0,n>>>0>(t=t+4|0)>>>0;);}if(t>>>0<r>>>0)for(;a[0|t]=o[0|A],A=A+1|0,(0|r)!=(0|(t=t+1|0)););return e}function $e(e){var A=0,t=0,r=0,n=0,a=0,s=0,o=0,d=0;u(+e),A=0|l(1),l(0);e:{if((r=(A=A>>>20&2047)-969|0)>>>0<63)d=A;else{if((0|r)<0)return e+1;if(!(A>>>0<1033)){if(u(+e),r=0|l(1),t=0,!(0|l(0))&-1048576==(0|r))break e;return A>>>0>=2047?e+1:(0|r)<0?(m[8+(A=j-16|0)>>3]=12882297539194267e-247,12882297539194267e-247*m[A+8>>3]):(m[8+(A=j-16|0)>>3]=3105036184601418e216,3105036184601418e216*m[A+8>>3])}}if(t=m[14409],a=(t=(e=(t=(n=m[14408]*e+t)-t)*m[14411]+(t*m[14410]+e))*e)*t*(e*m[14415]+m[14414]),t*=e*m[14413]+m[14412],u(+n),l(1),o=0|l(0),e=a+(t+(m[115376+(r=o<<4&2032)>>3]+e)),s=i[(r=r+115384|0)>>2],A=(o<<13)+(A=i[r+4>>2])|0,A=(r=(r=s)+(s=0)|0)>>>0<s>>>0?A+1|0:A,!d)return-2147483648&o?(c(0,0|r),c(1,A+1071644672|0),(e=(n=(t=+g())*e)+t)<1&&(i[8+(A=j-16|0)>>2]=0,i[A+12>>2]=1048576,m[A+8>>3]=22250738585072014e-324*m[A+8>>3],e=0==(e=(a=e+1)+(n+(t-e)+(e+(1-a)))+-1)?0:e),e*=22250738585072014e-324):(c(0,0|r),c(1,A-1058013184|0),e=5486124068793689e288*((t=+g())*e+t)),e;c(0,0|r),c(1,0|A),t=(t=+g())*e+t}return t}function eA(e,A){var t,r=0,n=0,s=0,l=0;j=t=j-16|0;e:{if(cn(84270,a[0|A])){if(n=2,cn(A,43)||(n=114!=o[0|A]),n=cn(A,120)?128|n:n,s=n=cn(A,101)?524288|n:n,l=64|n,s=114==(0|(n=o[0|A]))?s:l,s=119==(0|n)?512|s:s,i[t>>2]=438,i[t+4>>2]=0,(e=0|M(-100,0|e,32768|(97==(0|n)?1024|s:s),0|t))>>>0>=4294963201&&(i[56798]=0-e,e=-1),(0|e)<0)break e;j=n=j-32|0;A:{t:{if(cn(84270,a[0|A])){if(r=se(1176))break t}else i[56798]=28;A=0;break A}kA(r,0,144),cn(A,43)||(i[r>>2]=114==o[0|A]?8:4),97==o[0|A]?(1024&(A=0|E(0|e,3,0))||(A|=1024,i[n+16>>2]=A,i[n+20>>2]=A>>31,E(0|e,4,n+16|0)),A=128|i[r>>2],i[r>>2]=A):A=i[r>>2],i[r+80>>2]=-1,i[r+48>>2]=1024,i[r+60>>2]=e,i[r+44>>2]=r+152,8&A||(i[n>>2]=n+24,i[n+4>>2]=0,0|Q(0|e,21523,0|n)||(i[r+80>>2]=10)),i[r+40>>2]=10,i[r+36>>2]=11,i[r+32>>2]=12,i[r+12>>2]=13,o[227205]||(i[r+76>>2]=-1),i[r+56>>2]=i[56816],(A=i[56816])&&(i[A+52>>2]=r),i[56816]=r,A=r}if(j=n+32|0,r=A)break e;v(0|e)}else i[56798]=28;r=0}return j=t+16|0,r}function AA(e,A,t){var r,n=0,a=0,s=0,o=0,l=0;if(s=e,j=r=j-208|0,i[r+8>>2]=1,i[r+12>>2]=0,o=A<<2){for(i[r+16>>2]=4,i[r+20>>2]=4,A=4,n=4,a=2;e=A,A=(n+4|0)+A|0,i[(r+16|0)+(a<<2)>>2]=A,a=a+1|0,n=e,A>>>0<o>>>0;);if((e=(s+o|0)-4|0)>>>0<=s>>>0)a=0,A=1,e=0;else{for(a=1,A=1;3&~a?(h[(r+16|0)+((n=A-1|0)<<2)>>2]>=e-s>>>0?FA(s,t,r+8|0,A,0,r+16|0):Bt(s,t,A,r+16|0),1!=(0|A)?(Fr(r+8|0,n),A=1):(Fr(r+8|0,1),A=0)):(Bt(s,t,A,r+16|0),Sr(r+8|0,2),A=A+2|0),a=1|(n=i[r+8>>2]),i[r+8>>2]=a,e>>>0>(s=s+4|0)>>>0;);a=n>>>0>1,e=0!=i[r+12>>2]}if(FA(s,t,r+8|0,A,0,r+16|0),a|1!=(0|A)|e)for(;(0|A)<=1?(Sr(n=r+8|0,e=Br(n)),a=i[r+8>>2],e=e+A|0):(Fr(n=r+8|0,2),i[r+8>>2]=7^i[r+8>>2],Sr(n,1),FA((l=s-4|0)-i[(o=r+16|0)+((e=A-2|0)<<2)>>2]|0,t,n,A-1|0,1,o),Fr(n,1),a=1|i[r+8>>2],i[r+8>>2]=a,FA(l,t,n,e,1,o)),A=e,s=s-4|0,i[r+12>>2]|1!=(0|A)|1!=(0|a););}j=r+208|0}function tA(e,A,t,r){var n,a=0,s=0,o=0;j=n=j-32|0,o=a=2147483647&r,s=a-1006698496|0;e:if(0|(a=a-1140785152|0)>>>0>s>>>0){if(a=t<<4|A>>>28,t=r<<4|t>>>28,134217728==(0|(A&=268435455))&!!(0|e)|A>>>0>134217728){s=t+1073741824|0,s=(a=a+1|0)?s:s+1|0;break e}if(s=t+1073741824|0,e|134217728!=(0|A))break e;s=(e=1&a)>>>0>(a=e+a|0)>>>0?s+1|0:s}else(!t&2147418112==(0|o)?!(e|A):o>>>0<2147418112)?(a=0,s=2146435072,o>>>0>1140785151||(s=0,(o=o>>>16|0)>>>0<15249||(jA(n+16|0,e,A,t,a=65535&r|65536,o-15233|0),YA(n,e,A,t,a,15361-o|0),a=(A=i[n+8>>2])<<4,A=i[n+12>>2]<<4|A>>>28,t=i[n>>2],o=s=i[n+4>>2],a|=s>>>28,s=A,134217728==(0|(e=268435455&o))&!!(0|(A=t|!!(i[n+16>>2]|i[n+24>>2]|i[n+20>>2]|i[n+28>>2])))|e>>>0>134217728?s=(a=a+1|0)?s:s+1|0:A|134217728!=(0|e)||(s=(e=a)>>>0>(a=a+(1&a)|0)>>>0?s+1|0:s)))):(a=t<<4|A>>>28,s=524287&(e=r<<4|t>>>28)|2146959360);return j=n+32|0,c(0,0|a),c(1,-2147483648&r|s),+g()}function rA(e){var A,t=0,r=0,n=0,a=0,s=0;if(u(+e),s=0|l(1),n=0|l(0),2047==(0|(a=s>>>20&2047)))return(e*=1)/e;if(!(r=n<<1)&2145386496==(0|(t=s<<1|n>>>31))|t>>>0<2145386496)return!r&2145386496==(0|t)?0*e:e;if(a)t=1048575&s|1048576;else{if(a=0,r=n<<12,(0|(t=s<<12|n>>>20))>0|(0|t)>=0)for(;a=a-1|0,t=t<<1|r>>>31,r<<=1,(0|t)>0|(0|t)>=0;);r=31&(t=1-a|0),(63&t)>>>0>=32?(t=n<<r,n=0):(t=(1<<r)-1&n>>>32-r|s<<r,n<<=r)}if(r=n,(0|a)>1023){for(;;){if(!((0|(n=t+-1048576|0))<0||(t=n)|r))return 0*e;if(t=t<<1|r>>>31,r<<=1,!((0|(a=a-1|0))>1023))break}a=1023}if(!((0|(n=t+-1048576|0))<0||(t=n)|r))return 0*e;if(1048575==(0|t)|t>>>0<1048575)for(;a=a-1|0,n=t>>>0<524288,t=t<<1|r>>>31,r<<=1,n;);return A=-2147483648&s,(0|a)>0?t=t+-1048576|a<<20:(n=1-a|0,s=t,a=r,r=31&n,(63&n)>>>0>=32?(t=0,r=s>>>r|0):(t=s>>>r|0,r=((1<<r)-1&s)<<32-r|a>>>r)),c(0,0|r),c(1,t|A),+g()}function nA(e,A,t,r,n){var s,l=0,c=0;j=s=j-160|0;e:{A:{t:{r:switch((l=o[A+10|0])-15|0){case 6:break t;case 0:break r;default:break A}a[0|e]=0;break e}i[s>>2]=C(o[t+7|0],44)+137856,vt(e,86002,s),e=Wt(e)+e|0;break e}if(r){if(a[s+140|0]=0,t?le(0,0,t,s+8|0,0):Jt(l,s+8|0),t=s+140|0,l=o[s+140|0]){if(32==(0|l)){a[0|e]=0;break e}224&(l=l<<24>>24)||(n&&(i[n>>2]=l),t=s+141|0)}if(!((0|(n=Wt(t)))<=0)){e=rt(e,t)+n|0,a[0|e]=0;break e}}n=0;A:if(!(!(t=255&(l=i[A>>2]))|47==(0|t))){if(r){if(95==(0|(c=255&l)))break A;t:{r:{if(35==(0|c)){if(c=3,2!=o[A+11|0])break r;break A}if((c=t-32|0)>>>0>95)break t}t=p[93952+(c<<1)>>1]}n=Ft(t,e)}else a[0|e]=l,n=1;for(;;){if(!(t=255&(l>>=8))|47==(0|t))break A;if(r){if(35==(0|t)&2==o[A+11|0])break A;if(t-48>>>0<10)continue;(c=t-32|0)>>>0<=95&&(t=p[93952+(c<<1)>>1]),n=Ft(t,e+n|0)+n|0}else a[e+n|0]=l,n=n+1|0}}a[0|(e=e+n|0)]=0}return j=s+160|0,e}function aA(e){var A,t=0;A=e,t=131280;e:{A:{if(!((0|e)<=1023||(t=131300,e>>>0<1328||(t=131320,e>>>0<1424||(t=131340,e>>>0<1536||(t=131360,e>>>0<1792||(t=131380,e>>>0<1872||(t=131400,e>>>0<2432||(t=131420,e>>>0<2560||(t=131440,e>>>0<2688||(t=131460,e>>>0<2816||(t=131480,e>>>0<2944||(t=131500,e>>>0<3072||(t=131520,e>>>0<3200||(t=131540,e>>>0<3328||(t=131560,e>>>0<3456||(t=131580,e>>>0<3584||(t=131600,e>>>0<3712||(t=131620,e>>>0<3840||(t=131640,e>>>0<4096||(t=131660,e>>>0<4256||(t=131680,e>>>0<4352||(t=131700,e>>>0<4608||(t=131720,e>>>0<5024||(t=131740,e>>>0<10496||(t=131760,e>>>0<12544||(t=131780,e>>>0<40960))))))))))))))))))))))))))){if(e>>>0>=55296)break A;t=131800}if((0|A)>=p[(e=t)+8>>1])break e}e=0}return e}function sA(e,A,t){var r,n=0,o=0,l=0,c=0;j=r=j-208|0,a[r+80|0]=0;e:{if((n=A-224|0)>>>0<=158)A=101072+(n<<1)|0;else{if((A=A-592|0)>>>0>88)break e;A=101392+(A<<1)|0}if(A=p[A>>1]){if(l=A<<16>>16,c=(n=63&A)>>>0>37?n+59|0:s[101584+(n<<1)>>1],n=A>>>6|0,(0|l)<0)n=59+(63&n)|0,A=A>>>12&7;else{if(!(o=31&n))break e;n=0,A=A>>>11&15}(o=Et(e,i[129920+(o<<3)>>2],r+112|0))&&Ar(e,c,r+176|0)&&(A&&4096&Et(e,i[129920+(A<<3)>>2],r+80|0)&&(t=Wt(A=rt(t,r+80|0)),a[r+80|0]=0,t=A+t|0),n?(Ar(A=e,n,e=r+144|0),i[r+68>>2]=r+80,i[r- -64>>2]=e,i[r+60>>2]=6,i[r+52>>2]=23,i[r+56>>2]=r+176,i[r+48>>2]=r+112,vt(t,84101,r+48|0)):(0|l)<0?rt(t,r+176|0):1&i[e+144>>2]|4096&o?(i[r+36>>2]=23,i[r+40>>2]=6,i[r+44>>2]=r+176,i[r+32>>2]=r+112,vt(t,84430,r+32|0)):(i[r+16>>2]=23,i[r+8>>2]=23,i[r>>2]=4,i[r+12>>2]=r+112,i[r+4>>2]=r+176,vt(t,84802,r)))}}j=r+208|0}function iA(){Er(),i[55928]=0,i[55926]=0,i[55927]=0,i[55924]=0,i[56244]=0,i[56245]=0,i[56246]=0,i[56247]=0,i[56260]=0,i[56261]=0,i[56262]=0,i[56263]=0,i[56276]=0,i[56277]=0,i[56278]=0,i[56279]=0,i[55974]=0,i[55975]=0,i[55972]=0,i[55973]=0,i[55988]=0,i[55989]=0,i[55990]=0,i[55991]=0,i[56004]=0,i[56005]=0,i[56006]=0,i[56007]=0,i[56020]=0,i[56021]=0,i[56022]=0,i[56023]=0,i[56036]=0,i[56037]=0,i[56038]=0,i[56039]=0,i[56052]=0,i[56053]=0,i[56054]=0,i[56055]=0,i[56068]=0,i[56069]=0,i[56070]=0,i[56071]=0,i[56086]=0,i[56087]=0,i[56084]=0,i[56085]=0,i[56102]=0,i[56103]=0,i[56100]=0,i[56101]=0,i[56118]=0,i[56119]=0,i[56116]=0,i[56117]=0,i[56134]=0,i[56135]=0,i[56132]=0,i[56133]=0,i[56150]=0,i[56151]=0,i[56148]=0,i[56149]=0,i[56166]=0,i[56167]=0,i[56164]=0,i[56165]=0,i[56182]=0,i[56183]=0,i[56180]=0,i[56181]=0,i[56198]=0,i[56199]=0,i[56196]=0,i[56197]=0,i[56214]=0,i[56215]=0,i[56212]=0,i[56213]=0,i[56230]=0,i[56231]=0,i[56228]=0,i[56229]=0}function oA(e,A){var t=0,r=0,n=0,a=0,s=0,o=0,l=0,c=0,g=0,u=0;e:{if((0|(a=i[e+4>>2]))==i[e>>2])if((s=i[e+8>>2])>>>0<(t=i[e+12>>2])>>>0)t=(n=(1+(t-s>>2)|0)/2<<2)+s|0,(0|a)!=(0|s)&&(mA(t=t-(r=s-a|0)|0,a,r),a=i[e+8>>2]),i[e+4>>2]=t,i[e+8>>2]=n+a;else{if((r=(0|t)==(0|a)?1:t-a>>1)>>>0>=1073741824)break e;if(g=(l=Nr(t=r<<2))+t|0,o=t=(r+3&-4)+l|0,(0|a)!=(0|s)){if(u=-4&(s=s-a|0),n=t,r=a,s=1+((c=s-4|0)>>>2|0)&7)for(o=0;i[n>>2]=i[r>>2],r=r+4|0,n=n+4|0,(0|s)!=(0|(o=o+1|0)););if(o=t+u|0,!(c>>>0<28))for(;i[n>>2]=i[r>>2],i[n+4>>2]=i[r+4>>2],i[n+8>>2]=i[r+8>>2],i[n+12>>2]=i[r+12>>2],i[n+16>>2]=i[r+16>>2],i[n+20>>2]=i[r+20>>2],i[n+24>>2]=i[r+24>>2],i[n+28>>2]=i[r+28>>2],r=r+32|0,(0|o)!=(0|(n=n+32|0)););}i[e+12>>2]=g,i[e+8>>2]=o,i[e+4>>2]=t,i[e>>2]=l,a&&(ye(a),t=i[e+4>>2])}else t=a;return i[t-4>>2]=i[A>>2],void(i[e+4>>2]=i[e+4>>2]-4)}Rr(),d()}function lA(e,A,t){var r=0,n=0,a=0,s=0,i=0,o=0,l=0,c=0,g=0;e:{A:{t:{r:{n:{a:{s:{i:{o:{if(A){if(!t)break o;break i}return U=(A=e)-C(e=(e>>>0)/(t>>>0)|0,t)|0,K=0,Z=0,e}if(!e)break s;break a}if(!((r=t-1|0)&t))break n;a=0-(s=(w(t)+33|0)-w(A)|0)|0;break t}return U=0,K=A-C(e=(A>>>0)/0|0,0)|0,Z=0,e}if((r=32-w(A)|0)>>>0<31)break r;break A}if(U=e&r,K=0,1==(0|t))break e;return t=31&(r=un(t)),(63&r)>>>0>=32?e=A>>>t|0:(n=A>>>t|0,e=((1<<t)-1&A)<<32-t|e>>>t),Z=n,e}s=r+1|0,a=63-r|0}if(r=31&(n=63&s),n>>>0>=32?(n=0,i=A>>>r|0):(n=A>>>r|0,i=((1<<r)-1&A)<<32-r|e>>>r),r=31&(a&=63),a>>>0>=32?(A=e<<r,e=0):(A=(1<<r)-1&e>>>32-r|A<<r,e<<=r),s)for(c=-1==(0|(r=t-1|0))?-1:0;o=n<<1|i>>>31,i=(n=i<<1|A>>>31)-(l=t&(a=c-(o+(n>>>0>r>>>0)|0)>>31))|0,n=o-(n>>>0<l>>>0)|0,A=A<<1|e>>>31,e=g|e<<1,g=o=1&a,s=s-1|0;);return U=i,K=n,Z=A<<1|e>>>31,o|e<<1}U=e,K=A,e=0,A=0}return Z=A,e}function cA(e,A){var t=0,r=0,n=0,a=0,s=0,o=0,l=0,c=0,g=0,u=0;e:{if((0|(t=i[e+8>>2]))==i[e+12>>2])if((r=i[e+4>>2])>>>0>(s=i[e>>2])>>>0)n=mA((a=(1+(r-s>>2)|0)/-2<<2)+r|0,r,t=t-r|0)+t|0,i[e+8>>2]=n,i[e+4>>2]=a+i[e+4>>2];else{if((a=(0|t)==(0|s)?1:t-s>>1)>>>0>=1073741824)break e;if(g=(o=Nr(n=a<<2))+n|0,n=a=(-4&a)+o|0,(0|t)!=(0|r)){if(u=-4&(t=t-r|0),c=1+((l=t-4|0)>>>2|0)&7)for(n=0,t=a;i[t>>2]=i[r>>2],r=r+4|0,t=t+4|0,(0|c)!=(0|(n=n+1|0)););else t=a;if(n=a+u|0,!(l>>>0<28))for(;i[t>>2]=i[r>>2],i[t+4>>2]=i[r+4>>2],i[t+8>>2]=i[r+8>>2],i[t+12>>2]=i[r+12>>2],i[t+16>>2]=i[r+16>>2],i[t+20>>2]=i[r+20>>2],i[t+24>>2]=i[r+24>>2],i[t+28>>2]=i[r+28>>2],r=r+32|0,(0|n)!=(0|(t=t+32|0)););}i[e+12>>2]=g,i[e+8>>2]=n,i[e+4>>2]=a,i[e>>2]=o,s&&(ye(s),n=i[e+8>>2])}else n=t;return i[n>>2]=i[A>>2],void(i[e+8>>2]=i[e+8>>2]+4)}Rr(),d()}function gA(e,A){var t,r=0,n=0,s=0,l=0,c=0;n=189088,j=t=j-320|0,i[t+312>>2]=0,s=Ne(e,l=rt(t+112|0,189088),t,t+316|0,t+312|0,0),r=i[t+316>>2];e:if((0|A)<=3){if((0|r)<2)break e;if(s=3&(A=r-1|0),e=1,r-2>>>0>=3)for(c=-4&A,A=0;a[0|(r=e+t|0)]>=4&&(a[0|r]=3),a[1+(r=e+t|0)|0]>=4&&(a[r+1|0]=3),a[r+2|0]>=4&&(a[r+2|0]=3),a[r+3|0]>=4&&(a[r+3|0]=3),e=e+4|0,(0|c)!=(0|(A=A+4|0)););if(!s)break e;for(A=0;a[0|(r=e+t|0)]>=4&&(a[0|r]=3),e=e+1|0,(0|s)!=(0|(A=A+1|0)););}else if(e=1,!((0|r)<=1)){for(;;){if((0|s)>a[0|(c=e+t|0)]){if((0|r)!=(0|(e=e+1|0)))continue;break e}break}a[0|c]=A}if(e=o[0|l])for(A=1;r=i[144464+((255&e)<<2)>>2],2!=o[r+11|0]|16&o[r+6|0]||(s=255&(r=a[A+t|0]),(0|r)<2&&s||(a[0|n]=o[s+94151|0],n=n+1|0,e=o[0|l]),A=A+1|0),a[0|n]=e,n=n+1|0,e=o[0|(l=l+1|0)];);a[0|n]=0,j=t+320|0}function uA(e){var A=0,t=0,r=0,n=0,a=0,s=0;t=A=i[(e|=0)>>2],i[e>>2]=A+1;e:{A:{t:{r:{n:{a:{s:switch(((a=o[0|A])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break n;case 6:break a;case 4:case 5:break s;default:break e}if((r=A+2|0)>>>0>=(n=i[e+4>>2])>>>0)break r;if(i[e>>2]=r,128!=(192&(t=o[t+1|0])))break t;return 63&t|a<<6&1984}if((r=A+3|0)>>>0>=(n=i[e+4>>2])>>>0)break r;if(t=A+2|0,i[e>>2]=t,128!=(192&(A=o[A+1|0]))){r=t;break t}if(i[e>>2]=r,128!=(192&(t=o[0|t])))break t;return 63&t|(63&A|a<<6&960)<<6}if(!((n=i[e+4>>2])>>>0<=(t=A+4|0)>>>0)){if(r=A+2|0,i[e>>2]=r,128!=(192&(n=o[A+1|0])))break t;if(r=A+3|0,i[e>>2]=r,128!=(192&(s=o[A+2|0])))break t;if(i[e>>2]=t,A=o[0|r],r=t,128!=(192&A))break t;return 0|((e=63&A|s<<6&4032|(63&n|a<<6&960)<<12)>>>0>=1114112?65533:e)}}i[e>>2]=n;break A}i[e>>2]=r-1}a=65533}return 0|a}function dA(e,A,t,r){var n,l,c=0,g=0,u=0,d=0,f=0,p=0;if(j=n=j-432|0,!(!r|!(536870912&(l=te(e,A,t,r))))&&(s[n+48>>1]=8192,r=rt(n+48|2,r),o[0|r])){for(u=n+224|0,c=1,d=200;;){if(VA(n+44|0,r),A=gr(i[n+44>>2]),g=i[t>>2],A?(i[t>>2]=2|g,Ft(nr(i[n+44>>2]),r)):i[t>>2]=-3&g,p=i[33264],te(e,r,t,0),1&c?(i[n+16>>2]=189088,g=Ct(u,d,84130,n+16|0)):(i[n+32>>2]=15,i[n+36>>2]=189088,g=Ct(u,d,84434,n+32|0)),c=(A=i[33264])+1|0,i[33264]=c,A>>>0<=2147483646)for(;;)if(A=r,r=r+1|0,32==(0|(f=a[0|A]))|f-9>>>0<5){for(;A=(r=A)+1|0,32==(0|(f=a[0|r]))|f-9>>>0<5;);if(c=c-1|0,i[33264]=c,!((0|c)>0))break}if(u=u+g|0,i[33264]=p,!(o[0|r]&&(c=0,(0|(d=d-g|0))>1)))break}(n+224|0)!=(0|u)&&(i[n>>2]=n+224,Ct(189088,200,84130,n))}return j=n+432|0,l}function fA(e,A,t,r,n,l,c,g){var u,d;u=i[32972],d=i[u+116>>2],s[e+8>>1]=p[e+8>>1]+l,l=32&g?0-l|0:l,s[e+10>>1]=l+p[e+10>>1],s[e+12>>1]=l+p[e+12>>1],r=(0|r)>(0|(l=((l=(0|C(A,d))/256|0)-(A=s[e+6>>1])|0)/2|0))?l:r,s[e+6>>1]=((0|t)<(0|r)?r:t)+A;e:{A:switch(n-1|0){case 0:A=(0|(A=235-(t=s[e+4>>1])|0))<=-100?-100:A,s[e+4>>1]=((0|A)>=-60?-60:A)+t;break e;case 1:A=(0|(A=(0|(A=235-(t=s[e+4>>1])|0))<=-300?-300:A))>=-150?-150:A,s[e+4>>1]=A+t,s[e+2>>1]=A+p[e+2>>1];break e;case 2:break A;default:break e}A=(0|(A=(0|(A=100-(t=s[e+4>>1])|0))<=-400?-400:A))>-300?-400:A,s[e+4>>1]=A+t,s[e+2>>1]=A+p[e+2>>1]}i[u+132>>2]||(a[e+20|0]=(C(o[e+20|0],c)>>>0)/100,a[e+21|0]=(C(o[e+21|0],c)>>>0)/100,a[e+22|0]=(C(o[e+22|0],c)>>>0)/100,a[e+23|0]=(C(o[e+23|0],c)>>>0)/100,a[e+24|0]=(C(o[e+24|0],c)>>>0)/100,a[e+25|0]=(C(o[e+25|0],c)>>>0)/100)}function pA(e){var A,t=0,r=0,n=0,s=0;j=A=j-48|0;e:{if(e){o[0|e]||(e=Tt(84285),o[0|e]&&e||(e=Tt(121696),o[0|e]&&e||(e=Tt(84614),o[0|e]&&e||(e=84891))));A:{for(;;){if(!(!(r=o[e+t|0])|47==(0|r))){if(n=23,23!=(0|(t=t+1|0)))continue;break A}break}n=t}r=84891;A:{t:{if(t=o[0|e],(o[e+n|0]|46==(0|t)||(r=e,67==(0|t)))&&!o[r+1|0]||!hr(r,84891)||!hr(r,85136)){if(t=121652,46==o[r+1|0])break t;e=0;break A}if(t=i[56851])for(;;){if(!hr(r,t+8|0))break t;if(!(t=i[t+32>>2]))break}(e=se(36))&&(t=i[30414],i[e>>2]=i[30413],i[e+4>>2]=t,_e(t=e+8|0,r,n),a[t+n|0]=0,i[e+32>>2]=i[56851],i[56851]=e),t=e||121652}e=t}if(-1==(0|e))break e;i[56809]=e}else e=i[56809];s=e?e+8|0:84309}return j=A+48|0,s}function hA(e){var A=0,t=0,r=0,n=0,s=0,o=0,l=0,c=0,g=0;c=!!((A=i[e+112>>2])|(r=i[e+116>>2])),n=A,o=A=(s=i[e+4>>2])-(l=i[e+44>>2])|0,t=A+i[e+120>>2]|0,A=i[e+124>>2]+(A>>31)|0;e:{if(!(((0|(A=t>>>0<o>>>0?A+1|0:A))>=(0|r)&t>>>0>=n>>>0|(0|A)>(0|r))&c)){if((0|(c=Tr(e)))>=0)break e;s=i[e+4>>2],l=i[e+44>>2]}return i[e+112>>2]=-1,i[e+116>>2]=-1,i[e+104>>2]=s,r=(o=t)+(t=l-s|0)|0,A=(t>>31)+A|0,i[e+120>>2]=r,i[e+124>>2]=t>>>0>r>>>0?A+1|0:A,-1}return A=(r=t+1|0)?A:A+1|0,s=i[e+4>>2],l=i[e+8>>2],o=n=i[e+116>>2],n|(t=i[e+112>>2])&&(n=t-r|0,(0|(t=o-(A+(t>>>0<r>>>0)|0)|0))>=(0|(o=(g=l-s|0)>>31))&n>>>0>=g>>>0|(0|t)>(0|o)||(l=n+s|0)),i[e+104>>2]=l,r=(n=(t=i[e+44>>2])-s|0)+r|0,A=(n>>31)+A|0,i[e+120>>2]=r,i[e+124>>2]=r>>>0<n>>>0?A+1|0:A,t>>>0>=s>>>0&&(a[s-1|0]=c),c}function mA(e,A,t){var r=0,n=0;e:if((0|e)!=(0|A)){if(A-(n=e+t|0)>>>0<=0-(t<<1)>>>0)return _e(e,A,t);if(r=3&(e^A),e>>>0<A>>>0){if(r)r=e;else{if(3&e)for(r=e;;){if(!t)break e;if(a[0|r]=o[0|A],A=A+1|0,t=t-1|0,!(3&(r=r+1|0)))break}else r=e;if(!(t>>>0<=3))for(;i[r>>2]=i[A>>2],A=A+4|0,r=r+4|0,(t=t-4|0)>>>0>3;);}if(t)for(;a[0|r]=o[0|A],r=r+1|0,A=A+1|0,t=t-1|0;);}else{if(!r){if(3&n)for(;;){if(!t)break e;if(a[0|(r=(t=t-1|0)+e|0)]=o[A+t|0],!(3&r))break}if(!(t>>>0<=3))for(;i[(t=t-4|0)+e>>2]=i[A+t>>2],t>>>0>3;);}if(!t)break e;for(;a[(t=t-1|0)+e|0]=o[A+t|0],t;);}}return e}function CA(e,A,t,r){e:switch(A-9|0){case 0:return A=i[t>>2],i[t>>2]=A+4,void(i[e>>2]=i[A>>2]);case 6:return A=i[t>>2],i[t>>2]=A+4,A=s[A>>1],i[e>>2]=A,void(i[e+4>>2]=A>>31);case 7:return A=i[t>>2],i[t>>2]=A+4,i[e>>2]=p[A>>1],void(i[e+4>>2]=0);case 8:return A=i[t>>2],i[t>>2]=A+4,A=a[0|A],i[e>>2]=A,void(i[e+4>>2]=A>>31);case 9:return A=i[t>>2],i[t>>2]=A+4,i[e>>2]=o[0|A],void(i[e+4>>2]=0);case 16:return A=i[t>>2]+7&-8,i[t>>2]=A+8,void(m[e>>3]=m[A>>3]);case 17:Tn[0|r](e,t);default:return;case 1:case 4:case 14:return A=i[t>>2],i[t>>2]=A+4,A=i[A>>2],i[e>>2]=A,void(i[e+4>>2]=A>>31);case 2:case 5:case 11:case 15:return A=i[t>>2],i[t>>2]=A+4,i[e>>2]=i[A>>2],void(i[e+4>>2]=0);case 3:case 10:case 12:case 13:}A=i[t>>2]+7&-8,i[t>>2]=A+8,t=i[A+4>>2],i[e>>2]=i[A>>2],i[e+4>>2]=t}function bA(e,A,t,r,n,a){var s;j=s=j-80|0;e:if((0|a)>=16384){if(me(s+32|0,A,t,r,n,0,0,0,2147352576),r=i[s+40>>2],n=i[s+44>>2],A=i[s+32>>2],t=i[s+36>>2],a>>>0<32767){a=a-16383|0;break e}me(s+16|0,A,t,r,n,0,0,0,2147352576),a=((0|a)>=49149?49149:a)-32766|0,r=i[s+24>>2],n=i[s+28>>2],A=i[s+16>>2],t=i[s+20>>2]}else(0|a)>-16383||(me(s- -64|0,A,t,r,n,0,0,0,7471104),r=i[s+72>>2],n=i[s+76>>2],A=i[s+64>>2],t=i[s+68>>2],a>>>0>4294934644?a=a+16269|0:(me(s+48|0,A,t,r,n,0,0,0,7471104),a=((0|a)<=-48920?-48920:a)+32538|0,r=i[s+56>>2],n=i[s+60>>2],A=i[s+48>>2],t=i[s+52>>2]));me(s,A,t,r,n,0,0,0,a+16383<<16),A=i[s+12>>2],i[e+8>>2]=i[s+8>>2],i[e+12>>2]=A,A=i[s+4>>2],i[e>>2]=i[s>>2],i[e+4>>2]=A,j=s+80|0}function IA(e,A){var t,r,n=0;j=t=j+-64|0,n=i[e>>2],r=i[n-4>>2],n=i[n-8>>2],i[t+32>>2]=0,i[t+36>>2]=0,i[t+40>>2]=0,i[t+44>>2]=0,i[t+48>>2]=0,i[t+52>>2]=0,a[t+55|0]=0,a[t+56|0]=0,a[t+57|0]=0,a[t+58|0]=0,a[t+59|0]=0,a[t+60|0]=0,a[t+61|0]=0,a[t+62|0]=0,i[t+24>>2]=0,i[t+28>>2]=0,i[t+20>>2]=0,i[t+16>>2]=125084,i[t+12>>2]=e,i[t+8>>2]=A,e=e+n|0,n=0;e:if(Yr(r,A,0))i[t+56>>2]=1,Tn[i[i[r>>2]+20>>2]](r,t+8|0,e,e,1,0),n=1==i[t+32>>2]?e:0;else{Tn[i[i[r>>2]+24>>2]](r,t+8|0,e,1,0);A:switch(i[t+44>>2]){case 0:n=1==i[t+48>>2]&&1==i[t+36>>2]&&1==i[t+40>>2]?i[t+28>>2]:0;break e;case 1:break A;default:break e}1!=i[t+32>>2]&&i[t+48>>2]|1!=i[t+36>>2]|1!=i[t+40>>2]||(n=i[t+24>>2])}return j=t- -64|0,n}function wA(e,A,t,r,n){var l,c,g=0;j=l=j-80|0,s[l+72>>1]=0,i[l+64>>2]=0,i[l+68>>2]=0,a[0|r]=0,g=Ft(A,c=2|(g=l- -64|0))+g|0,a[g+2|0]=32;e:if(-1!=(0|t))A>>>0>=33&&!er(A)?(a[g+3|0]=32==(0|t)?32:31,a[l+65|0]=95,Et(e,l- -64|1,l+16|0)||(a[l+65|0]=32,Et(e,c,l+16|0)||Ce(e,c,l+16|0,40,0,268435456,0)),o[l+16|0]||sA(e,A,l+16|0),A=rt(r,l+16|0),!(t=o[0|A])|21==(0|t)||(i[l+56>>2]=0,i[l+60>>2]=0,ie(e,A,l+56|0,-1,1&n))):(i[l>>2]=A,vt(A=l- -64|1,85485,l),Et(e,A,r));else{if(Et(e,c,r))break e;if(a[l+65|0]=95,Et(e,l- -64|1,l+16|0)|25966==i[e+212>>2])break e;pn(85055),Et(i[47194],c,l+16|0)&&(a[0|r]=21,a[r+1|0]=0),qr(i[i[32972]+60>>2])}j=l+80|0}function kA(e,A,t){var r=0,n=0,s=0,o=0;if(t&&(a[0|e]=A,a[(r=e+t|0)-1|0]=A,!(t>>>0<3||(a[e+2|0]=A,a[e+1|0]=A,a[r-3|0]=A,a[r-2|0]=A,t>>>0<7||(a[e+3|0]=A,a[r-4|0]=A,t>>>0<9||(n=(r=0-e&3)+e|0,A=C(255&A,16843009),i[n>>2]=A,i[(t=(r=t-r&-4)+n|0)-4>>2]=A,r>>>0<9||(i[n+8>>2]=A,i[n+4>>2]=A,i[t-8>>2]=A,i[t-12>>2]=A,r>>>0<25||(i[n+24>>2]=A,i[n+20>>2]=A,i[n+16>>2]=A,i[n+12>>2]=A,i[t-16>>2]=A,i[t-20>>2]=A,i[t-24>>2]=A,i[t-28>>2]=A,(t=r-(o=4&n|24)|0)>>>0<32))))))))for(r=rr(A,0,1,1),s=Z,A=n+o|0;i[A+24>>2]=r,i[A+28>>2]=s,i[A+16>>2]=r,i[A+20>>2]=s,i[A+8>>2]=r,i[A+12>>2]=s,i[A>>2]=r,i[A+4>>2]=s,A=A+32|0,(t=t-32|0)>>>0>31;);return e}function xA(){var e,A=0,t=0,r=0,n=0,a=0;if(j=e=j-208|0,(0|(r=i[50303]))>0)for(;(n=i[(t=201216+(A<<2)|0)>>2])&&(ye(n),i[t>>2]=0),(0|r)!=(0|(A=A+1|0)););if(i[50303]=0,i[e+16>>2]=137584,i[e+20>>2]=47,vt(A=e+32|0,87827,e+16|0),Fe(A,Wt(A)+1|0,0),i[e+4>>2]=47,i[e>>2]=137584,vt(A,87933,e),Fe(A,Wt(A)+1|0,1),A=i[50303],i[201216+(t=A<<2)>>2]=0,t=Oe(r=i[50741],t+4|0)){if(i[50741]=t,AA(201216,A,7),r=i[50741],t=0,A=i[50304])for(n=0;a=i[A+4>>2],o[0|a]&&hr(a+1|0,86589)&&Dt(i[A+8>>2],88032,3)&&(i[(t<<2)+r>>2]=A,t=t+1|0),A=i[201216+((n=n+1|0)<<2)>>2];);i[(t<<2)+r>>2]=0}return j=e+208|0,r}function BA(e,A,t){var r=0,n=0,s=0,l=0;if(s=A-1|0,(0|A)>=2){A=e;e:{for(;;){A:{t:{if((0|(r=i[t+4>>2]))!=(0|(n=i[t+8>>2]))){if((l=JA(r,10,n-r|0))?n=1+(l-(r=i[t+4>>2])|0)|0:(r=i[t+4>>2],n=i[t+8>>2]-r|0),_e(A,r,r=n>>>0<s>>>0?n:s),n=r+i[t+4>>2]|0,i[t+4>>2]=n,A=A+r|0,l)break A;if(!(s=s-r|0))break A;if((0|n)!=i[t+8>>2]){i[t+4>>2]=n+1,r=o[0|n];break t}}if(!((0|(r=Tr(t)))>=0)){if(r=0,(0|e)==(0|A))break e;if(16&o[0|t])break A;break e}}if(a[0|A]=r,A=A+1|0,10!=(255&r)&&(s=s-1|0))continue}break}e?(a[0|A]=0,r=e):r=0}}else if(A=i[t+72>>2],i[t+72>>2]=A-1|A,!s)return a[0|e]=0,e;return r}function vA(e){var A=0,t=0,r=0,n=0,a=0,s=0,l=0,c=0;if(A=C(e,44),(0|(e=i[A+137896>>2]))>0&&vA(e-1|0),e=i[36115],!((0|(A=i[36+(t=A+137856|0)>>2]))<=0)){if(n=i[t+32>>2],l=1&A,1!=(0|A))for(c=-2&A,t=0;A=o[10+(a=(r=t<<4)+n|0)|0],i[144464+(A<<2)>>2]=a,(0|e)>=(0|A)?A=e:kA(144464+((e=e+1|0)<<2)|0,0,A-e<<2),e=o[10+(r=(16|r)+n|0)|0],i[144464+(e<<2)>>2]=r,(0|e)<=(0|A)?e=A:kA(144464+((A=A+1|0)<<2)|0,0,e-A<<2),t=t+2|0,(0|c)!=(0|(s=s+2|0)););else t=0;l&&(A=o[10+(t=(t<<4)+n|0)|0],i[144464+(A<<2)>>2]=t,(0|e)>=(0|A)||(kA(144464+((e=e+1|0)<<2)|0,0,A-e<<2),e=A))}i[36115]=e}function yA(e,A,t,r,n){var s,l=0,c=0,g=0;j=s=j-16|0;e:if(1&a[e+106|0]&&(l=o[0|t],!(!(1&a[r+2|0])&46!=(0|l)||256&(g=i[r+12>>2])|!(!(2&g)||n)||(VA(s+12|0,46!=(0|l)?t:t+2|0),!(l=o[0|t])|!o[t+1|0])))){if(!(!(g=i[s+12>>2])|2&o[r+2|0])){if(!dt(g))break e;l=o[0|t]}46==(0|l)&&(a[0|t]=32),c=2,26741!=i[e+212>>2]|n||(t=dt(i[s+12>>2])?dA(e,t+2|0,0,0):0,128&o[e+8233|0]&&(!(!(n=i[s+12>>2])|2&o[r+2|0])&n-48>>>0>=10||(c=0)),c=32768&t?0:c,131072&t&&(c=163840&i[e+8232>>2]?34:45!=o[A-2|0]?c:0))}return j=s+16|0,c}function EA(e,A,t,r,n){var a,s=0,o=0;if(j=a=j-208|0,i[a+204>>2]=t,kA(t=a+160|0,0,40),i[a+200>>2]=i[a+204>>2],(0|he(0,A,a+200|0,a+80|0,t,r,n))<0)n=-1;else{i[e+76>>2],s=i[e>>2],i[e+72>>2]<=0&&(i[e>>2]=-33&s);e:{A:{if(i[e+48>>2]){if(i[e+16>>2])break A}else i[e+48>>2]=80,i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,o=i[e+44>>2],i[e+44>>2]=a;if(t=-1,dr(e))break e}t=he(e,A,a+200|0,a+80|0,a+160|0,r,n)}o&&(Tn[i[e+36>>2]](e,0,0),i[e+48>>2]=0,i[e+44>>2]=o,i[e+28>>2]=0,A=i[e+20>>2],i[e+16>>2]=0,i[e+20>>2]=0,t=A?t:-1),A=e,e=i[e>>2],i[A>>2]=e|32&s,n=32&e?-1:t}return j=a+208|0,n}function MA(e,A,t,r){var n,s=0,i=0,l=0,c=0,g=0,u=0,d=0;if(j=n=j-208|0,i=o[0|A])for(;a[s+n|0]=i,c=(6==(255&i)&21!=(0|l))+c|0,l=i<<24>>24,i=o[(s=s+1|0)+A|0];);if(a[s+n|0]=0,s=o[0|n])for(u=c-2|0,l=0,d=(0|r)<2,i=0;;){e:{A:if(6!=(255&s)|d|21==(0|i)){if(255==(0|(r=255&s))){if(!g|(0|t)<2)break e;r=t>>>0>2?11:(0|l)%3|0?23:11}i=r,r=l}else{if(s=l+1|0,o[e+169|0]){i=(0|s)>1?5:6,r=s;break A}if(i=6,r=c,(0|s)==(0|c))break A;i=(0|s)%3|0||(0|l)==(0|u)?5:6,r=s}l=r,a[0|A]=i,A=A+1|0}if(!(s=o[(g=g+1|0)+n|0]))break}(0|t)>=2&&(a[0|A]=11,A=A+1|0),a[0|A]=0,j=n+208|0}function GA(e,A){var t=0;t=0,e&&(t=i[50754],t=(e=(e=(0|C(i[145712+(A?12:((0|e)>199)<<2)>>2],e))/256|0)>>>0>(A=i[36430])>>>0?e:A)>>>0<=89999?(C(e,t)>>>0)/1e3|0:(C(e,(0|t)/25|0)>>>0)/40|0),(0|(e=i[36440]))<=0||(0|(A=i[36424]))<0||(i[4+(A=216192+(A<<4)|0)>>2]||(i[A+4>>2]=e),i[36440]=0),i[36426]=0,i[36439]=-1,i[36455]=i[50758],de(),i[36427]=-1,e=216192+(i[50758]<<4)|0,i[e>>2]=5,i[e+4>>2]=t,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0,i[36426]=0,i[36438]&&(i[36438]=0,e=216192+(i[50758]<<4)|0,i[e>>2]=14,i[e+4>>2]=0,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)}function DA(e,A,t,r,n,a,s,i){var o,l=0,c=0,g=0;l=1,o=c=2147483647&r;e:if(!((g=2147418112==(0|c))&!t?e|A:g&!!(0|t)|c>>>0>2147418112)&&!((g=2147418112==(0|(c=2147483647&i)))&!s?n|a:g&!!(0|s)|c>>>0>2147418112)){if(!(e|n|t|s|A|a|c|o))return 0;if((0|(l=r&i))>0|(0|l)>=0){if(l=-1,(0|t)==(0|s)&(0|r)==(0|i)?(0|A)==(0|a)&e>>>0<n>>>0|A>>>0<a>>>0:t>>>0<s>>>0&(0|r)<=(0|i)|(0|r)<(0|i))break e;return!!(e^n|t^s|A^a|r^i)}l=-1,((0|t)==(0|s)&(0|r)==(0|i)?(0|A)==(0|a)&e>>>0>n>>>0|A>>>0>a>>>0:t>>>0>s>>>0&(0|r)>=(0|i)|(0|r)>(0|i))||(l=!!(e^n|t^s|A^a|r^i))}return l}function QA(e,A){var t=0,r=0,n=0,s=0;for(t=o[85836]|o[85837]<<8,a[0|A]=t,a[A+1|0]=t>>>8,a[A+2|0]=o[85838];;)if(n=o[0|e],e=t=e+1|0,255!=(0|n)){if(!n)break;if(!(r=i[144464+(n<<2)>>2]))continue;if(1==o[r+11|0]&&(s=o[r+14|0],!(p[r+8>>1]|s>>>0>4))){if(s>>>0<2)continue;a[0|A]=o[s+93943|0],A=A+1|0;continue}if(255&(e=i[r>>2]))for(;a[0|A]=e,A=A+1|0,r=65280&e,e=e>>>8|0,r;);if(e=t,21!=(0|n))continue;if((32|(t=a[0|e]))-97>>>0>=26)continue;for(;a[0|A]=t,A=A+1|0,(32|(t=a[0|(e=e+1|0)]))-97>>>0<26;);}a[0|A]=0}function TA(e,A){var t,r,n=0,a=0,s=0;j=t=j-112|0,e||(i[50303]||xA(),e=201216),fn(n=t+16|0,A,40),i[t>>2]=47,i[t+4>>2]=n,vt(A=t- -64|0,87599,t),r=Wt(A),s=-1;e:{A:{t:{if(a=i[e>>2]){A=0,n=-1;r:{for(;;){if(bt(t+16|0,i[a>>2])){if(bt(t+16|0,a=i[a+8>>2])?s=bt(t- -64|0,a+(Wt(a)-r|0)|0)?s:A:n=A,a=i[((A=A+1|0)<<2)+e>>2])continue;break r}break}if((0|A)>=0)break A;A=(0|n)<0?s:n;break t}if((0|(A=n))>=0)break t}A=s}if(n=0,(0|A)<0)break e}n=i[(A<<2)+e>>2]}return j=t+112|0,n}function PA(e,A){var t,r,n=0,a=0,s=0,o=0,c=0;j=t=j-16|0,u(+A),r=0|l(1),a=0|l(0),2145386495==(0|(s=(n=2147483647&r)-1048576|0))|s>>>0<2145386495?(o=a<<28,s=n>>>4|0,n=(15&n)<<28|a>>>4,a=s+1006632960|0):2146435072==(0|n)|n>>>0>2146435072?(o=a<<28,n=(15&r)<<28|a>>>4,a=r>>>4|2147418112):n|a?(jA(t,a,s=n,0,0,(n=n?w(n):w(a)+32|0)+49|0),c=i[t>>2],o=i[t+4>>2],s=15372-n<<16,n=i[t+8>>2],a=s|65536^i[t+12>>2]):(n=0,a=0),i[e>>2]=c,i[e+4>>2]=o,i[e+8>>2]=n,i[e+12>>2]=-2147483648&r|a,j=t+16|0}function zA(e,A,t){var r=0,n=0;e:{A:{t:{if(!(3&((n=e)^A))){r=!!(0|t);r:if(!(!(3&A)|!t))for(;;){if(r=o[0|A],a[0|n]=r,!r)break e;if(n=n+1|0,r=!!(0|(t=t-1|0)),!(3&(A=A+1|0)))break r;if(!t)break}if(!r)break A;if(!o[0|A])break e;if(!(t>>>0<4))for(;;){if(~(r=i[A>>2])&r-16843009&-2139062144)break t;if(i[n>>2]=r,n=n+4|0,A=A+4|0,!((t=t-4|0)>>>0>3))break}}if(!t)break A}for(;;){if(r=o[0|A],a[0|n]=r,!r)break e;if(n=n+1|0,A=A+1|0,!(t=t-1|0))break}}t=0}return kA(n,0,t),e}function FA(e,A,t,r,n,a){var s,o=0,l=0,c=0;j=s=j-240|0,o=i[t>>2],i[s+232>>2]=o,t=i[t+4>>2],i[s>>2]=e,i[s+236>>2]=t,c=1;e:{A:{t:{if(t|1!=(0|o)){for(o=e;;){if((0|ln(t=o-i[(l=(r<<2)+a|0)>>2]|0,e,A))<=0){t=o;break t}r:{if(!((0|r)<2|n)){if(n=i[l-8>>2],(0|ln(l=o-4|0,t,A))>=0)break r;if((0|ln(l-n|0,t,A))>=0)break r}if(i[(c<<2)+s>>2]=t,Sr(o=s+232|0,n=Br(o)),c=c+1|0,r=r+n|0,n=0,o=t,i[s+236>>2]|1!=i[s+232>>2])continue;break A}break}t=o;break A}t=e}if(n)break e}yt(s,c),Bt(t,A,r,a)}j=s+240|0}function SA(e,A){var t=0;i[4+(134912+(t=e<<2)|0)>>2]=A,i[t+136192>>2]=A,t=28;e:{A:{t:switch(e-1|0){case 0:i[50792]=A,i[50786]=A,Ze(3);break A;case 1:i[50787]=A,i[33037]=(0|C(o[i[50797]+105596|0],(0|C(i[50787],55))/100|0))/16;break A;case 2:e=(0|A)>=99?99:A,i[50785]=(0|e)>0?e:0;break A;case 3:i[50788]=(0|A)>=99?99:A;break A;case 12:i[47268]=A;break A;case 6:i[47205]=A;break A;case 9:break A;case 8:break t;default:break e}(e=255&A)&&(i[i[47192]+152>>2]=e),i[47196]=A}t=0}return t}function NA(e,A){var t=0,r=0,n=0;e:if(i[e>>2])for(;;){if(er(i[e-4>>2])){if(r=0,(0|(t=a[0|A]))==i[e>>2])for(;(0|(t=a[(r=r+1|0)+A|0]))==i[(e=e+4|0)>>2];);if(!t){for(;A=e,e=e+4|0,er(i[A>>2]););for(n=A+((61==i[A>>2])<<2)|0;n=(e=n)+4|0,er(i[e>>2]););A:switch((A=i[e>>2])-34|0){case 0:case 5:break e}return er(A)||47==i[e>>2]?102808:e}}if(!i[(e=e+4|0)>>2])break}return n}function OA(e,A,t,r){var n,s,l=0,c=0,g=0;return!o[e+25|0]|m[e+8>>3]!=t|m[e+16>>3]!=r?(m[e+16>>3]=r,m[e+8>>3]=t,r=(l=$e(-3.141592653589793/(c=+i[e>>2])*r))*-l,m[e+48>>3]=r,l*=nt(-6.283185307179586/c*t),l+=l,m[e+40>>3]=l,c=1-l-r,m[e+32>>3]=c,!(g=o[e+24|0])|0==t||(c=1/c,m[e+32>>3]=c,r*=t=-c,m[e+48>>3]=r,l*=t,m[e+40>>3]=l,g=1)):(g=o[e+24|0],r=m[e+48>>3],l=m[e+40>>3],c=m[e+32>>3]),a[e+25|0]=1,t=m[e+64>>3],n=m[e+56>>3],m[e+64>>3]=n,s=A,A=r*t+(c*A+l*n),m[e+56>>3]=g?s:A,A}function LA(e,A,t,r,n){var a,s=0,o=0,l=0,c=0;if((a=i[34388])&&!((0|(o=i[34436]))>=(i[34393]-2|0))){if(i[34436]=o+1,s=C(o,36)+a|0,i[s>>2]=e,i[s+4>>2]=i[34437],c=i[34438],i[s+12>>2]=A>>>24,i[s+8>>2]=16777215&A,i[s+24>>2]=c,A=i[50754],n=i[34439]+((n-i[34392]|0)/2|0)|0,i[s+20>>2]=n,A=I(l=1e3*+(0|n)/+(0|A))<2147483648?~~l:-2147483648,i[s+16>>2]=A,e-3>>>0<=1)return void(i[28+(C(o,36)+a|0)>>2]=i[33282]+t);A=28+(C(o,36)+a|0)|0,i[A>>2]=t,7==(0|e)&&(i[A+4>>2]=r)}}function YA(e,A,t,r,n,a){var s=0,o=0,l=0,c=0;64&a?(A=31&(t=a+-64|0),(63&t)>>>0>=32?(t=0,A=n>>>A|0):(t=n>>>A|0,A=((1<<A)-1&n)<<32-A|r>>>A),r=0,n=0):a&&(l=r,s=31&(o=64-a|0),(63&o)>>>0>=32?(o=l<<s,c=0):(o=(1<<s)-1&l>>>32-s|n<<s,c=l<<s),l=A,A=31&a,(63&a)>>>0>=32?(s=0,A=t>>>A|0):(s=t>>>A|0,A=((1<<A)-1&t)<<32-A|l>>>A),A|=c,t=s|o,s=r,r=31&a,(63&a)>>>0>=32?(o=0,r=n>>>r|0):(o=n>>>r|0,r=((1<<r)-1&n)<<32-r|s>>>r),n=o),i[e>>2]=A,i[e+4>>2]=t,i[e+8>>2]=r,i[e+12>>2]=n}function HA(e){var A=0,t=0;if(!e){if(i[33174]&&(A=HA(i[33174])),i[33136]&&(A=HA(i[33136])|A),e=i[56816])for(;i[e+20>>2]!=i[e+28>>2]&&(A=HA(e)|A),e=i[e+56>>2];);return A}return i[e+76>>2],i[e+20>>2]==i[e+28>>2]||(Tn[i[e+36>>2]](e,0,0),i[e+20>>2])?((0|(A=i[e+8>>2]))!=(0|(t=i[e+4>>2]))&&(A=t-A|0,Tn[i[e+40>>2]](e,A,A>>31,1)),A=0,i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0):A=-1,A}function RA(e,A){var t=0,r=0,n=0,a=0,s=0;if(128==(192&(t=o[0|A])))for(;128==(192&(t=o[0|(A=A-1|0)])););e:if(128&(t=t<<24>>24)){if(r=1,192!=(0|(n=224&t)))if(224!=(240&t)){if(r=3,240!=(248&t)){t&=255,r=0;break e}}else r=2,s=1;t=o[r+93846|0]&t,(a=o[A+1|0])?(t=63&a|t<<6,192!=(0|n)&&((n=o[A+2|0])?(t=63&n|t<<6,s||((A=o[A+3|0])?t=63&A|t<<6:r=2)):r=1)):r=0}return i[e>>2]=t,r+1|0}function WA(e,A,t,r){var n,a=0,s=0;return j=n=j-224|0,e?(i[n>>2]=137584,i[n+4>>2]=47,i[n+8>>2]=A,vt(A=n+16|0,85430,n),(0|(a=sr(A)))<0?A=lr(r,0-a|0,n+16|0):(A=eA(n+16|0,85659))?((s=i[e>>2])&&ye(s),a?(s=se(a),i[e>>2]=s,s?(0|It(s,a,A))==(0|a)?(cr(A),A=0,t&&(i[t>>2]=a)):(t=i[56798],cr(A),ye(i[e>>2]),i[e>>2]=0,A=lr(r,t,n+16|0)):(cr(A),A=48)):(A=0,i[e>>2]=0)):A=lr(r,i[56798],n+16|0)):A=28,j=n+224|0,A}function VA(e,A){var t=0,r=0,n=0,a=0,s=0;if(128==(192&(t=o[0|A])))for(;128==(192&(t=o[0|(A=A+1|0)])););e:if(128&(t=t<<24>>24)){if(r=1,192!=(0|(n=224&t)))if(224!=(240&t)){if(r=3,240!=(248&t)){t&=255,r=0;break e}}else r=2,s=1;t=o[r+93846|0]&t,(a=o[A+1|0])?(t=63&a|t<<6,192!=(0|n)&&((n=o[A+2|0])?(t=63&n|t<<6,s||((A=o[A+3|0])?t=63&A|t<<6:r=2)):r=1)):r=0}return i[e>>2]=t,r+1|0}function jA(e,A,t,r,n,a){var s=0,o=0,l=0;64&a?(r=A,A=31&(n=a+-64|0),(63&n)>>>0>=32?(n=r<<A,r=0):(n=(1<<A)-1&r>>>32-A|t<<A,r<<=A),A=0,t=0):a&&(s=r,r=31&a,(63&a)>>>0>=32?(o=s<<r,l=0):(o=(1<<r)-1&s>>>32-r|n<<r,l=s<<r),s=A,r=31&(n=64-a|0),(63&n)>>>0>=32?(n=0,A=t>>>r|0):(n=t>>>r|0,A=((1<<r)-1&t)<<32-r|s>>>r),r=l|A,n|=o,A=31&a,(63&a)>>>0>=32?(o=s<<A,A=0):(o=(1<<A)-1&s>>>32-A|t<<A,A=s<<A),t=o),i[e>>2]=A,i[e+4>>2]=t,i[e+8>>2]=r,i[e+12>>2]=n}function UA(e){var A=0;return e>>>0<=55295?A=o[i[125552+(e>>>6&67108860)>>2]+(255&e)|0]:(A=4,e>>>0<57344||(e>>>0<63488?A=3:e>>>0<=195327?A=o[i[126416+(e-63488>>>6&67108860)>>2]+(255&e)|0]:(A=2,e>>>0<917504||(e>>>0<=918015?A=o[i[128476+(e-917504>>>6&67108860)>>2]+(255&e)|0]:e>>>0<983040||(e>>>0<1048574?A=3:e>>>0<1048576||(A=3,e>>>0<1114110||(A=e>>>0<1114112?2:5))))))),255&A}function KA(e,A){var t=0,r=0,n=0,a=0,s=0,o=0,l=0,c=0,g=0;if(!((0|(t=i[33709]))<=0)){if(n=(0|e)>31?e-32|0:e,e=0,t>>>0>=4)for(g=-4&t;o=2|e,l=1|e,r=i[134912+((s=3|e)<<6)>>2]==(0|n)?s:i[134912+(o<<6)>>2]==(0|n)?o:i[134912+(l<<6)>>2]==(0|n)?l:i[134912+(e<<6)>>2]==(0|n)?e:r,e=e+4|0,(0|g)!=(0|(a=a+4|0)););if(a=3&t)for(;r=i[134912+(e<<6)>>2]==(0|n)?e:r,e=e+1|0,(0|a)!=(0|(c=c+1|0)););(0|r)<=0||(i[33709]=r,t=r)}Re(A,t)}function ZA(e){var A,t=0,r=0,n=0;for(j=A=j-96|0,fn(A,e,60),et(A,1);n=nr(a[0|(r=A+t|0)]),a[0|r]=n,t=t+1|0,255&n;);i[A+92>>2]=0,i[A+84>>2]=0,i[A+88>>2]=0,i[A+76>>2]=0,i[A+80>>2]=0,i[A+72>>2]=e;e:{A:{t:{if(ne(A,1)){if(o[202976])break t;break A}if(i[50303]||xA(),t=268437247,!(e=TA(201216,A)))break e;if(!ne(i[e+8>>2],0))break e;if(!o[202976])break A}ne(202976,2)}Dr(i[32972]),i[A+76>>2]=i[32972]+40,ft(A+72|0,202976),t=0}return j=A+96|0,t}function XA(e,A){if(!e)return 0;e:{A:{if(e){if(A>>>0<=127)break A;if(i[i[56841]>>2]){if(A>>>0<=2047){a[e+1|0]=63&A|128,a[0|e]=A>>>6|192,e=2;break e}if(!(57344!=(-8192&A)&A>>>0>=55296)){a[e+2|0]=63&A|128,a[0|e]=A>>>12|224,a[e+1|0]=A>>>6&63|128,e=3;break e}if(A-65536>>>0<=1048575){a[e+3|0]=63&A|128,a[0|e]=A>>>18|240,a[e+2|0]=A>>>6&63|128,a[e+1|0]=A>>>12&63|128,e=4;break e}}else if(57216==(-128&A))break A;i[56798]=25,e=-1}else e=1;break e}a[0|e]=A,e=1}return e}function qA(e){var A=0,t=0,r=0,n=0;if(i[e+20>>2]=0,(r=(t=i[e+8>>2])-(A=i[e+4>>2])|0)>>>0>=9)for(;ye(i[A>>2]),A=i[e+4>>2]+4|0,i[e+4>>2]=A,(r=(t=i[e+8>>2])-A|0)>>>0>8;);n=512;e:switch((r>>>2|0)-1|0){case 1:n=1024;case 0:i[e+16>>2]=n}if((0|A)!=(0|t)){for(;ye(i[A>>2]),(0|t)!=(0|(A=A+4|0)););(0|(A=i[e+8>>2]))!=(0|(t=i[e+4>>2]))&&(i[e+8>>2]=A+(3+(t-A|0)&-4))}(e=i[e>>2])&&ye(e)}function JA(e,A,t){var r=0,n=0;r=!!(0|t);e:{A:{t:if(!(!(3&e)|!t))for(n=255&A;;){if((0|n)==o[0|e])break A;if(r=!!(0|(t=t-1|0)),!(3&(e=e+1|0)))break t;if(!t)break}if(!r)break e;if(!(o[0|e]==(255&A)|t>>>0<4))for(r=C(255&A,16843009);;){if(~(n=r^i[e>>2])&n-16843009&-2139062144)break A;if(e=e+4|0,!((t=t-4|0)>>>0>3))break}if(!t)break e}for(A&=255;;){if((0|A)==o[0|e])return e;if(e=e+1|0,!(t=t-1|0))break}}return 0}function _A(e,A){var t=0,r=0;e:{if(r=255&A){if(3&e)for(;;){if(!(t=o[0|e])|(0|t)==(255&A))break e;if(!(3&(e=e+1|0)))break}A:if(!(~(t=i[e>>2])&t-16843009&-2139062144))for(r=C(r,16843009);;){if(~(t^=r)&t-16843009&-2139062144)break A;if(t=i[e+4>>2],e=e+4|0,t-16843009&~t&-2139062144)break}for(;(r=o[0|(t=e)])&&(e=t+1|0,(0|r)!=(255&A)););return t}return Wt(e)+e|0}return e}function $A(e,A,t,r,n){var a,s=0,i=0;i=-1;e:if(!(((s=2147418112==(0|(a=2147483647&r)))&!t?e|A:s&!!(0|t)|a>>>0>2147418112)||(s=2147483647&n)>>>0>2147418112&2147418112!=(0|s))){if(!(e|t|s|a|A))return 0;if((0|(s=r&n))>0|(0|s)>=0){if((!!(0|t)|(0|r)!=(0|n))&(0|r)<(0|n))break e;return!!(e|t|r^n|A)}(!t&(0|r)==(0|n)?e|A:!!(0|t)&(0|r)>=(0|n)|(0|r)>(0|n))||(i=!!(e|t|r^n|A))}return i}function et(e,A){var t,r=0;j=t=j+-64|0,a[202976]=0,i[t+48>>2]=47,vt(t+59|0,91351,t+48|0),A||(a[t+59|0]=0);e:{A:{if(e&&(e=cn(e,43))){if(a[0|e]=0,a[0|(e=e+1|0)]-48>>>0>=10)break A;r=wt(e)}if((0|r)<=0)break e;if(r>>>0<=9){i[t+4>>2]=r,i[t>>2]=t+59,vt(202976,91378,t);break e}i[t+20>>2]=r-10,i[t+16>>2]=t+59,vt(202976,91503,t+16|0);break e}i[t+36>>2]=e,i[t+32>>2]=t+59,vt(202976,85425,t+32|0)}j=t- -64|0}function At(e){var A,t=0,r=0,n=0;j=A=j-80|0,t=be(e,A+12|0),i[A+12>>2]?(fn(r=A+16|0,t,60),t=0,et(r,1),!ne(r,0)|!o[202976]||ne(202976,2),Dr(i[32972]),ft(e,86012)):t=268437247,j=A+80|0;e:{A:{t:{r:{if((0|t)<=268437502){if(!t)break e;if(268436479==(0|t))break A;if(268437247!=(0|t))break r;return 2}if(268437503==(0|t)|268437759==(0|t))break t;if(268439295==(0|t))break e}return-1}return 2}n=1}return n}function tt(e,A,t,r,n,a,s,o,l){var c,g,u;l=rr(A,t,o,l),o=Z,n=rr(r,n,a,s),r=Z+o|0,o=n>>>0>(l=n+l|0)>>>0?r+1|0:r,c=s,g=t,s=(t=rr(s,n=0,t,r=0))+l|0,l=Z+o|0,u=s,t=t>>>0>s>>>0?l+1|0:l,s=rr(a,0,A,0),o=Z,r=rr(a,l=0,g,r),a=Z+l|0,a=r>>>0>(o=o+r|0)>>>0?a+1|0:a,r=t,a=a>>>0>(l=a+u|0)>>>0?r+1|0:r,t=rr(A,0,c,n)+o|0,n=Z,o=(n=t>>>0<o>>>0?n+1|0:n)+l|0,l=a,i[e+8>>2]=o,i[e+12>>2]=n>>>0>o>>>0?l+1|0:l,i[e>>2]=s,i[e+4>>2]=t}function rt(e,A){var t=0,r=0;e:{if(3&((r=e)^A))t=o[0|A];else{if(3&A)for(;;){if(t=o[0|A],a[0|r]=t,!t)break e;if(r=r+1|0,!(3&(A=A+1|0)))break}if(!(~(t=i[A>>2])&t-16843009&-2139062144))for(;i[r>>2]=t,t=i[A+4>>2],r=r+4|0,A=A+4|0,!(t-16843009&~t&-2139062144););}if(a[0|r]=t,255&t)for(;t=o[A+1|0],a[r+1|0]=t,r=r+1|0,A=A+1|0,t;);}return e}function nt(e){var A,t=0,r=0;j=A=j-16|0,u(+e),r=0|l(1),l(0);e:if((r&=2147483647)>>>0<=1072243195){if(t=1,r>>>0<1044816030)break e;t=Ut(e,0)}else if(t=e-e,!(r>>>0>=2146435072)){A:switch(3&fe(e,A)){case 0:t=Ut(m[A>>3],m[A+8>>3]);break e;case 1:t=-Ot(m[A>>3],m[A+8>>3],1);break e;case 2:t=-Ut(m[A>>3],m[A+8>>3]);break e}t=Ot(m[A>>3],m[A+8>>3],1)}return j=A+16|0,t}function at(e,A,t,r){var n=0,a=0,s=0;if(!((Wt(r)+Wt(A)|0)>=(0|t))){for(s=i[36115],t=r;n=o[0|t];)if(t=t+1|0,!((0|n)>=(0|s))){e:{A:switch(n=i[144464+(n<<2)>>2],o[n+11|0]-1|0){case 1:break e;case 0:break A;default:continue}a=o[n+14|0]<4|a;continue}1&(o[n+4|0]>>>1|a)||(i[e+8212>>2]=i[e+8212>>2]+1),i[e+8208>>2]=i[e+8208>>2]+1,a=0}A&&yn(A,r)}}function st(e){var A,t=0;j=A=j-16|0,u(+e),t=0|l(1),l(0);e:if((t&=2147483647)>>>0<=1072243195){if(t>>>0<1045430272)break e;e=Ot(e,0,0)}else if(t>>>0>=2146435072)e-=e;else{A:switch(3&fe(e,A)){case 0:e=Ot(m[A>>3],m[A+8>>3],1);break e;case 1:e=Ut(m[A>>3],m[A+8>>3]);break e;case 2:e=-Ot(m[A>>3],m[A+8>>3],1);break e}e=-Ut(m[A>>3],m[A+8>>3])}return j=A+16|0,e}function it(e){var A=0;i[e+296>>2]=303173648,i[e+300>>2]=370677780,A=i[26341],i[e+304>>2]=i[26340],i[e+308>>2]=A,A=i[26343],i[e+312>>2]=i[26342],i[e+316>>2]=A,We(e),i[e+56>>2]=2,i[e+36>>2]=3,i[e+40>>2]=1074,a[e+168|0]=5,i[e+132>>2]=32,i[e+104>>2]=1032,i[e+108>>2]=66,i[e+8>>2]=5,i[e+12>>2]=32,a[e+365|0]=64|o[e+365|0],a[e+368|0]=64|o[e+368|0],a[e+396|0]=64|o[e+396|0],a[e+399|0]=64|o[e+399|0]}function ot(e,A,t){var r=0,n=0,a=0;e:{if(!(r=i[t+16>>2])){if(dr(t))break e;r=i[t+16>>2]}if(r-(a=i[t+20>>2])>>>0<A>>>0)return 0|Tn[i[t+36>>2]](t,e,A);A:if(i[t+80>>2]<0)r=0;else{for(n=A;;){if(!(r=n)){r=0;break A}if(10==o[(n=r-1|0)+e|0])break}if((n=0|Tn[i[t+36>>2]](t,e,r))>>>0<r>>>0)break e;e=e+r|0,A=A-r|0,a=i[t+20>>2]}_e(a,e,A),i[t+20>>2]=i[t+20>>2]+A,n=A+r|0}return n}function lt(e){var A,t=0,r=0;e:{if((0|(A=i[34064]))>0)for(;;){if((r=i[136284+(t<<4)>>2])&&!hr(e,r)){if(i[136276+(t<<4)>>2])return t;if(r=-1,Se(0,t))break e;return t}if((0|A)==(0|(t=t+1|0)))break}r=-1,Se(e,A)||(t=Oe(i[12+(136272+(i[34064]<<4)|0)>>2],Wt(e)+1|0),r=i[34064],i[12+(136272+(r<<4)|0)>>2]=t,rt(t,e),i[34064]=r+1)}return r}function ct(e,A){var t,r=0,n=0,s=0,o=0;for(j=t=j-16|0,a[0|A]=0,(r=15&i[e>>2])&&(A=(n=Wt(A=rt(A,mr(128496,64|r))))+A|0),r=8;;){e:{A:{if(r>>>0<=29){if(i[e>>2]>>>r&1)break A;break e}if(!(i[e+4>>2]>>>r-32&1)|r>>>0<32)break e}(0|(n=(o=Wt(s=mr(128496,r))+1|0)+n|0))>=80||(i[t>>2]=s,vt(A,84439,t),A=A+o|0)}if(64==(0|(r=r+1|0)))break}j=t+16|0}function gt(e,A,t){var r,n=0,s=0,l=0;if(j=r=j-16|0,o[0|e])for(l=i[30450];;)if(s=e,e=e+1|0,!(32==(0|(n=a[0|s]))|n-9>>>0<5)){for((0|(n=wt(s)))>0&&((0|n)<32?i[A>>2]=i[A>>2]|1<<n:(s=mr(129568,t),i[r+4>>2]=n,i[r>>2]=s,en(l,84902,r)),s=e);s=(e=s)+1|0,(n=a[0|e])-48>>>0<10|(32|n)-97>>>0<26;);if(!n)break}j=r+16|0}function ut(e,A,t){var r=0,n=0,s=0,o=0;e:if(A&&!((0|(n=t-4|0))<=0))for(s=34!=(0|(t=i[A-4>>2]))?39==(0|t)?t:0:t,t=0;;){if(o=t,!(t=i[A>>2]))break e;A:{if(!s){if(32==(0|t)|t-9>>>0<5)break e;if(47!=(0|t))break A;break e}if(92!=(0|o)&&(0|t)==(0|s))break e}if(A=A+4|0,!((0|n)>(0|(r=Ft(t,e+r|0)+r|0))))break}return a[e+r|0]=0,r}function dt(e){var A=0;e:if(!yr(e)){A=0;A:if(!(e>>>0<768)){if(e-2305>>>0<=1270){if((124&e)>>>0<100)break e;if(A=1,zr(93850,e))break A;return e-3450>>>0<6}if(1541==(0|e)|e-1456>>>0<19|1648==(0|e))break e;if(10240==(0|(A=-256&e))|4352==(0|A)|e-3904>>>0<125|e>>>0<880)break e;A=1,e-1611>>>0<20||(A=e-12353>>>0<30400)}return A}return 1}function ft(e,A){var t=0;e?((t=i[e+4>>2])&&rt(133208,t),(t=i[e>>2])&&fn(133168,t,40),i[33289]=o[e+14|0],i[33291]=o[e+13|0],i[33290]=o[e+12|0],fn(134672,33!=o[0|A]|118!=o[A+1|0]?A:(47==o[A+2|0]?3:0)+A|0,40),e=i[50298],i[33678]=i[50297],i[33679]=e,e=i[50302],i[33682]=i[50301],i[33683]=e,e=i[50300],i[33680]=i[50299],i[33681]=e):kA(133152,0,76)}function pt(e,A,t,r){a[e+53|0]=1;e:if(i[e+4>>2]==(0|t)){a[e+52|0]=1;A:{if(!(t=i[e+16>>2])){if(i[e+36>>2]=1,i[e+24>>2]=r,i[e+16>>2]=A,1!=(0|r))break e;if(1==i[e+48>>2])break A;break e}if((0|A)==(0|t)){if(2==(0|(t=i[e+24>>2]))&&(i[e+24>>2]=r,t=r),1!=i[e+48>>2])break e;if(1==(0|t))break A;break e}i[e+36>>2]=i[e+36>>2]+1}a[e+54|0]=1}}function ht(e,A){var t=0,r=0,n=0,s=0,o=0;e:if(t=i[A>>2])for(;;){r=0;A:if(e){for(;o=a[r+t|0],(n=i[(r<<2)+e>>2])&&(r=r+1|0,(0|o)==(0|n)););t:switch(n-34|0){case 0:case 5:break t;default:break A}if(!o)break e}if(!(t=i[((s=s+1|0)<<3)+A>>2]))break}return i[4+((s<<3)+A|0)>>2]}function mt(e,A){e:if((0|A)>=1024){if(e*=898846567431158e293,A>>>0<2047){A=A-1023|0;break e}e*=898846567431158e293,A=((0|A)>=3069?3069:A)-2046|0}else(0|A)>-1023||(e*=2004168360008973e-307,A>>>0>4294965304?A=A+969|0:(e*=2004168360008973e-307,A=((0|A)<=-2960?-2960:A)+1938|0));return c(0,0),c(1,A+1023<<20),e*+g()}function Ct(e,A,t,r){var n,s,o,l=0;return j=s=j-16|0,i[s+12>>2]=r,j=n=j-160|0,o=A?e:n+158|0,i[n+144>>2]=o,l=-1,e=A-1|0,i[n+148>>2]=e>>>0<=A>>>0?e:0,e=kA(n,0,144),i[e+76>>2]=-1,i[e+36>>2]=17,i[e+80>>2]=-1,i[e+44>>2]=e+159,i[e+84>>2]=e+144,(0|A)<0?i[56798]=61:(a[0|o]=0,l=EA(e,t,r,15,16)),j=e+160|0,j=s+16|0,l}function bt(e,A){var t=0,r=0,n=0;e:if(t=o[0|e])for(;;){if(!(r=o[0|A])){n=t;break e}if((0|t)!=(0|r)&&(0|(r=t-65>>>0<26?32|t:t))!=(0|((t=o[0|A])-65>>>0<26?32|t:t))){n=o[0|e];break e}if(A=A+1|0,t=o[e+1|0],e=e+1|0,!t)break}return(n=(e=255&n)-65>>>0<26?32|e:e)-((e=o[0|A])-65>>>0<26?32|e:e)|0}function It(e,A,t){var r=0,n=0;if(r=i[t+72>>2],i[t+72>>2]=r-1|r,(0|(r=i[t+4>>2]))==(0|(n=i[t+8>>2]))?r=A:(_e(e,r,r=A>>>0>(r=n-r|0)>>>0?r:A),i[t+4>>2]=r+i[t+4>>2],e=e+r|0,r=A-r|0),r)for(;;){if(Ht(t)||!(n=0|Tn[i[t+32>>2]](t,e,r)))return A-r|0;if(e=e+n|0,!(r=r-n|0))break}return A}function wt(e){for(var A=0,t=0,r=0,n=0;e=(A=e)+1|0,32==(0|(t=a[0|A]))|t-9>>>0<5;);e:{A:{t:switch((t=a[0|A])-43|0){case 0:break A;case 2:break t;default:break e}n=1}t=a[0|e],A=e}if(t-48>>>0<10)for(;r=48+(C(r,10)-a[0|A]|0)|0,e=a[A+1|0],A=A+1|0,e-48>>>0<10;);return n?r:0-r|0}function kt(e,A){var t,r,n,a=0;return j=t=j-32|0,i[A>>2]=0,i[A+4>>2]=0,i[(a=r=A+24|0)>>2]=0,i[a+4>>2]=0,i[(a=n=A+16|0)>>2]=0,i[a+4>>2]=0,i[(a=A+8|0)>>2]=0,i[a+4>>2]=0,i[t+28>>2]=A+28,i[t+24>>2]=r,i[t+20>>2]=A+20,i[t+16>>2]=n,i[t+12>>2]=A+12,i[t+8>>2]=a,i[t+4>>2]=A+4,i[t>>2]=A,e=ae(e,84553,t),j=t+32|0,e}function xt(e){var A=0,t=0,r=0;if((A=o[0|e])&&((t=o[e+1|0])?(t=A|t<<8,(A=o[e+2|0])&&(t|=A<<16,(e=o[e+3|0])&&(t|=e<<24))):t=A),(0|(A=i[36115]))>0)for(e=0;;){if(!(!(r=i[144464+(e<<2)>>2])|i[r>>2]!=(0|t)))return o[r+10|0];if((0|A)==(0|(e=e+1|0)))break}return 0}function Bt(e,A,t,r){var n,a=0,s=0,o=0,l=0,c=0;j=n=j-240|0,i[n>>2]=e,o=1;e:if(!((0|t)<2))for(a=e;;){if((0|ln(e,s=(a=a-4|0)-i[((l=t-2|0)<<2)+r>>2]|0,A))>=0&&(0|ln(e,a,A))>=0)break e;if(c=s,a=(s=(0|ln(s,a,A))>=0)?c:a,i[(o<<2)+n>>2]=a,o=o+1|0,!((0|(t=s?t-1|0:l))>1))break}yt(n,o),j=n+240|0}function vt(e,A,t){var r,n,s,o=0;return j=n=j-16|0,i[n+12>>2]=t,j=r=j-160|0,_e(s=r+8|0,124528,144),i[r+52>>2]=e,i[r+28>>2]=e,o=(o=-2-e|0)>>>0>2147483647?2147483647:o,i[r+56>>2]=o,e=e+o|0,i[r+36>>2]=e,i[r+24>>2]=e,e=mn(s,A,t),o&&(A=i[r+28>>2],a[A-((0|A)==i[r+24>>2])|0]=0),j=r+160|0,j=n+16|0,e}function yt(e,A){var t,r=0,n=0,a=0,s=0,o=0;if(r=4,j=t=j-256|0,(0|A)>=2)for(i[(o=(A<<2)+e|0)>>2]=t;;){for(a=r>>>0>=256?256:r,_e(i[o>>2],i[e>>2],a),n=0;s=(n<<2)+e|0,n=n+1|0,_e(i[s>>2],i[(n<<2)+e>>2],a),i[s>>2]=i[s>>2]+a,(0|A)!=(0|n););if(!(r=r-a|0))break}j=t+256|0}function Et(e,A,t){var r,n=0;return j=r=j-96|0,i[r+88>>2]=0,i[r+92>>2]=1073741824,i[r+84>>2]=A,A=Ve(e,r+84|0,t,r+88|0,2,0),536870912&(n=i[r+88>>2])?(A=i[47202],i[47202]=0,a[r+2|0]=32,s[r>>1]=8192,fn(n=3|r,i[r+84>>2],77),e=dA(e,n,0,0),rt(t,189088),i[47202]=A):e=A?n:0,j=r+96|0,e}function Mt(e,A,t){var r=0,n=0,s=0;n=Pt(e),r=i[A>>2];e:{A:if((0|n)>=0){if(r){if(!hr(e,t))break A;(s=i[r+688>>2])&&ye(s),ye(r),i[A>>2]=0}i[A>>2]=J(e),e=rt(t,e),Te(t=i[A>>2],t+228|0,0)&&(qr(i[i[32972]+60>>2]),a[0|e]=0,n=-1),r=i[A>>2],i[r+292>>2]=n}else if(!r)break e;a[r+268|0]=0}return n}function Gt(e){var A=0,t=0;return(0|(A=i[e+76>>2]))>=0&(!A|i[56823]!=(-1073741825&A))?(t=i[(A=e+76|0)>>2],i[A>>2]=t||1073741823,(0|(t=i[e+4>>2]))==i[e+8>>2]?e=Tr(e):(i[e+4>>2]=t+1,e=o[0|t]),i[A>>2]=0,e):(0|(A=i[e+4>>2]))!=i[e+8>>2]?(i[e+4>>2]=A+1,o[0|A]):Tr(e)}function Dt(e,A,t){var r=0,n=0;e:{A:{if(t>>>0>=4){if(3&(e|A))break A;for(;;){if(i[e>>2]!=i[A>>2])break A;if(A=A+4|0,e=e+4|0,!((t=t-4|0)>>>0>3))break}}if(!t)break e}for(;;){if((0|(r=o[0|e]))==(0|(n=o[0|A]))){if(A=A+1|0,e=e+1|0,t=t-1|0)continue;break e}break}return r-n|0}return 0}function Qt(e,A){var t,r=0,n=0,a=0;j=t=j-16|0,A?(jA(t,n=((r=A>>31)^A)-r|0,0,0,0,(r=w(n))+81|0),n=0+i[t+8>>2]|0,r=(65536^i[t+12>>2])+(16414-r<<16)|0,a=-2147483648&A|(r=n>>>0<a>>>0?r+1|0:r),r=i[t+4>>2],A=i[t>>2]):A=0,i[e>>2]=A,i[e+4>>2]=r,i[e+8>>2]=n,i[e+12>>2]=a,j=t+16|0}function Tt(e){var A,t=0,r=0,n=0;if((0|(t=_A(e,61)))==(0|e))return 0;e:if(!o[(A=t-e|0)+e|0]&&(t=i[56800])&&(r=i[t>>2])){for(;;){if(qt(e,r,A)||(r=i[t>>2]+A|0,61!=o[0|r])){if(r=i[t+4>>2],t=t+4|0,r)continue;break e}break}n=r+1|0}return n}function Pt(e){var A=0,t=0;e:if(!((0|(t=i[34461]))<=0)){for(;;){if(!hr(e,C(A,44)+137856|0)){i[34457]=A;break e}if((0|t)==(0|(A=A+1|0)))break}return-1}return(e=(0|A)==(0|t))?-1:((0|(e=e?-1:A))!=i[36114]&&(i[36115]=0,vA(e),i[36114]=e,i[36115]=i[36115]+1),A)}function zt(e,A,t,r){var n=0,a=0;e:if(32!=(32|o[0|A])){if(n=((0|r)>2)<<1,a=we(e,A,t,n=(0|r)>1?4|n:n),21!=o[0|t])for(n|=1,A=A+a|0,a=1;;){if(32==(32|o[0|A]))break e;if(A=we(e,A,t,n)+A|0,a=a+1|0,21==o[0|t])break}return rt(189088,t),0}return MA(e,t,r,a),A}function Ft(e,A){var t,r=0,n=0,s=0;if(e>>>0<=127)return a[0|A]=e,1;if(e>>>0>=1114112)return a[0|A]=32,1;for(r=C(t=e>>>0<2048?1:e>>>0<65536?2:3,6),a[0|A]=o[t+93842|0]|e>>>r;r=r-6|0,a[(n=n+1|0)+A|0]=e>>>r&63|128,(0|(s=s+1|0))!=(0|t););return t+1|0}function St(e){var A=0,t=0;e:{if((0|(A=i[e+12>>2]))>=i[e+16>>2]){if(A=0,(0|(t=0|Y(i[e+8>>2],e+24|0,2048)))<=0){if(!t|-44==(0|t))break e;return i[56798]=0-t,0}i[e+16>>2]=t}t=A,A=e+A|0,i[e+12>>2]=t+p[A+40>>1],t=i[A+36>>2],i[e>>2]=i[A+32>>2],i[e+4>>2]=t,A=A+24|0}return A}function Nt(e,A){var t,r=0;if(r=i[e+632>>2])return!!(0|Pr(r,A));e:{A:{if((0|(t=i[e+600>>2]))>0){if(r=0,(A=A-t|0)-1>>>0<255)break A;break e}if((r=A-192|0)>>>0<=413)return 128&o[344+(o[r+94240|0]+e|0)|0];if(r=0,A>>>0>255)break e}r=128&o[344+(e+A|0)|0]}return r}function Ot(e,A,t){var r,n,a;return a=(r=e*e)*(r*r)*(1.58969099521155e-10*r-2.5050760253406863e-8)+(r*(27557313707070068e-22*r-.0001984126982985795)+.00833333333332249),n=r*e,t?e-(r*(.5*A-a*n)-A+.16666666666666632*n):n*(r*a-.16666666666666632)+e}function Lt(e,A){var t,r=0,n=0,a=0;j=t=j-16|0,A?(jA(t,r=A,0,0,0,(A=w(A))+81|0),r=0+i[t+8>>2]|0,A=(65536^i[t+12>>2])+(16414-A<<16)|0,a=n>>>0>r>>>0?A+1|0:A,n=i[t+4>>2],A=i[t>>2]):A=0,i[e>>2]=A,i[e+4>>2]=n,i[e+8>>2]=r,i[e+12>>2]=a,j=t+16|0}function Yt(e){var A,t=0;j=A=j-16|0,a[A+15|0]=10;e:{if(!(t=i[e+16>>2])){if(dr(e))break e;t=i[e+16>>2]}(0|t)==(0|(t=i[e+20>>2]))|10==i[e+80>>2]?Tn[i[e+36>>2]](e,A+15|0,1):(i[e+20>>2]=t+1,a[0|t]=10)}j=A+16|0}function Ht(e){var A,t=0;return t=i[e+72>>2],i[e+72>>2]=t-1|t,i[e+20>>2]!=i[e+28>>2]&&Tn[i[e+36>>2]](e,0,0),i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,4&(t=i[e>>2])?(i[e>>2]=32|t,-1):(A=i[e+44>>2]+i[e+48>>2]|0,i[e+8>>2]=A,i[e+4>>2]=A,t<<27>>31)}function Rt(e){var A=0;e:{A:{t:{r:{if((0|(e=ZA(e)))<=268437502){if(!e)break e;if(268436479==(0|e))break A;if(268437247!=(0|e))break r;return 2}if(268437503==(0|e)|268437759==(0|e))break t;if(268439295==(0|e))break e}return-1}return 2}A=1}return A}function Wt(e){var A=0,t=0,r=0;e:{if(3&(A=e))for(;;){if(!o[0|A])break e;if(!(3&(A=A+1|0)))break}for(;t=A,A=A+4|0,!(~(r=i[t>>2])&r-16843009&-2139062144););for(;t=(A=t)+1|0,o[0|A];);}return A-e|0}function Vt(e,A,t){var r,n=0,a=0,s=0;i[e+112>>2]=A,i[e+116>>2]=t,r=i[e+4>>2],n=i[e+44>>2]-r|0,i[e+120>>2]=n,i[e+124>>2]=n>>31,n=i[e+8>>2],A|t&&((0|t)>=(0|(s=(a=n-r|0)>>31))&A>>>0>=a>>>0|(0|t)>(0|s)||(n=A+r|0)),i[e+104>>2]=n}function jt(e,A){var t,r,n=0;if(u(+e),t=0|l(1),r=0|l(0),2047!=(0|(n=t>>>20&2047))){if(!n)return 0==e?n=0:(e=jt(0x10000000000000000*e,A),n=i[A>>2]+-64|0),i[A>>2]=n,e;i[A>>2]=n-1022,c(0,0|r),c(1,-2146435073&t|1071644672),e=+g()}return e}function Ut(e,A){var t,r,n=0;return(r=1-(n=.5*(t=e*e)))+(1-r-n+(t*(t*(t*(2480158728947673e-20*t-.001388888888887411)+.0416666666666666)+(n=t*t)*n*(t*(-11359647557788195e-27*t+2.087572321298175e-9)-2.7557314351390663e-7))-e*A))}function Kt(e,A,t){var r=0,n=0;if(A)for(;t=t-1|0,n=e,e=Bn(e,A,10),r=Z,a[0|t]=n-rr(e,r,10,0)|48,n=A>>>0>9,A=r,n;);if(e)for(;A=(e>>>0)/10|0,a[0|(t=t-1|0)]=e-C(A,10)|48,r=e>>>0>9,e=A,r;);return t}function Zt(e,A){var t=0,r=0,n=0;e:if(e){for(;n=a[A+t|0],(r=i[(t<<2)+e>>2])&&(t=t+1|0,(0|n)==(0|r)););A:switch(r-34|0){case 0:case 5:break A;default:break e}if(!n)return 0}return 1}function Xt(e,A,t){var r,n=0;return j=r=j-16|0,!(64&A)&&(n=0,4259840&~A)||(i[r+12>>2]=t+4,n=i[t>>2]),i[r>>2]=n,i[r+4>>2]=0,(e=0|M(-100,0|e,32768|A,0|r))>>>0>=4294963201&&(i[56798]=0-e,e=-1),j=r+16|0,e}function qt(e,A,t){var r=0,n=0,a=0;if(!t)return 0;e:if(r=o[0|e]){for(;;){if((n=o[0|A])&&!(!(t=t-1|0)|(0|r)!=(0|n))){if(A=A+1|0,r=o[e+1|0],e=e+1|0,r)continue;break e}break}a=r}return(255&a)-o[0|A]|0}function Jt(e,A){var t,r=0;j=r=j-128|0,r=kA(r,0,128),a[r+98|0]=9,a[r+66|0]=9,a[r+34|0]=e,s[r+68>>1]=1,t=i[36125],i[r+104>>2]=t,i[r+72>>2]=t,i[r+40>>2]=i[144464+(e<<2)>>2],a[r+2|0]=9,i[r+8>>2]=t,le(0,0,r+32|0,A,0),j=r+128|0}function _t(e){var A=0,t=0,r=0;if(a[i[e>>2]]-48>>>0>=10)return 0;for(;r=i[e>>2],t=-1,A>>>0<=214748364&&(t=(0|(t=a[0|r]-48|0))>(2147483647^(A=C(A,10)))?-1:t+A|0),i[e>>2]=r+1,A=t,a[r+1|0]-48>>>0<10;);return A}function $t(e,A){var t=0;if(!(!e|i[e>>2]-48>>>0>=10)){if(i[e>>2]-48>>>0<10)for(;t=(i[e>>2]+C(t,10)|0)-48|0,i[(e=e+4|0)>>2]-48>>>0<10;);1==(0|A)&&(t=115==(0|nr(i[e>>2]))?C(t,1e3):t)}return t}function er(e){var A=0;A=1;e:{A:switch(0|UA(e)){case 30:if(A=0,160==(0|e)|8199==(0|e)|8239==(0|e))break e;return 1;case 0:if(e-9>>>0<5)return 1;if(133==(0|e))break e;break;case 28:case 29:break e}A=0}return A}function Ar(e,A,t){var r,n=0;return j=r=j-16|0,a[r+6|0]=0,a[r+7|0]=95,n=Ft(n=A,A=r+8|0)+r|0,a[n+8|0]=32,a[n+9|0]=0,Et(e,r+7|0,t)||(a[r+7|0]=32,Et(e,A,t)||Ce(e,A,t,20,0,0,0)),j=r+16|0,a[0|t]}function tr(e){var A=0,t=0;t=170;e:if(!((0|e)<170))for(;;){if((0|e)==(0|t))return p[101616+(A<<1|2)>>1];if(124==(2147483646&(A=A+2|0)))break e;if(!((0|(t=p[101616+(A<<1)>>1]))<=(0|e)))break}return 0}function rr(e,A,t,r){var n,a,s,i,o=0,l=0;return i=C(o=t>>>16|0,l=e>>>16|0),o=(65535&(l=((s=C(n=65535&t,a=65535&e))>>>16|0)+C(l,n)|0))+C(o,a)|0,Z=(C(A,t)+i|0)+C(e,r)+(l>>>16)+(o>>>16)|0,65535&s|o<<16}function nr(e){var A=0,t=0,r=0,n=0;for(A=2778;;){if((0|(t=i[1040+((r=(A+n|0)/2|0)<<4)>>2]))==(0|e))return(A=i[1048+(r<<4)>>2])||e;if(!((0|(n=(t=e>>>0>t>>>0)?r+1|0:n))<=(0|(A=t?A:r-1|0))))break}return e}function ar(e){var A=0,t=0,r=0,n=0;for(A=2778;;){if((0|(t=i[1040+((r=(A+n|0)/2|0)<<4)>>2]))==(0|e))return(A=i[1044+(r<<4)>>2])||e;if(!((0|(n=(t=e>>>0>t>>>0)?r+1|0:n))<=(0|(A=t?A:r-1|0))))break}return e}function sr(e){var A,t=0;return j=A=j-112|0,(e=0|N(0|e,0|A))>>>0>=4294963201&&(i[56798]=0-e,e=-1),t=0-i[56798]|0,e||(t=-31,16384!=(61440&i[A+12>>2])&&(t=i[A+40>>2])),j=A+112|0,t}function ir(e,A,t){var r;if(!(r=i[e+16>>2]))return i[e+36>>2]=1,i[e+24>>2]=t,void(i[e+16>>2]=A);e:{if((0|A)==(0|r)){if(2!=i[e+24>>2])break e;return void(i[e+24>>2]=t)}a[e+54|0]=1,i[e+24>>2]=2,i[e+36>>2]=i[e+36>>2]+1}}function or(e,A,t,r,n){var a;if(j=a=j-256|0,!(73728&n|(0|t)<=(0|r))){if(kA(a,255&A,(t=(r=t-r|0)>>>0<256)?r:256),!t)for(;dn(e,a,256),(r=r-256|0)>>>0>255;);dn(e,a,r)}j=a+256|0}function lr(e,A,t){var r=0;e:{if(e){if(r=i[e>>2]){ye(i[r+4>>2]),r=i[e>>2];break e}if(r=se(16),i[e>>2]=r,r)break e;A=48}return A}return i[r>>2]=0,i[r+4>>2]=_r(t),e=i[e>>2],i[e+8>>2]=0,i[e+12>>2]=0,A}function cr(e){var A=0,t=0;HA(e),Tn[i[e+12>>2]](e),1&a[0|e]||((A=i[e+52>>2])&&(i[A+56>>2]=i[e+56>>2]),(t=i[e+56>>2])&&(i[t+52>>2]=A),i[56816]==(0|e)&&(i[56816]=t),ye(i[e+96>>2]),ye(e))}function gr(e){var A=0,t=0;A=1;e:{A:{t:{r:switch((t=UA(e))-9|0){case 1:break e;case 6:case 18:break t;case 0:break r;default:break A}return(0|nr(e))!=(0|e)}return q(e,t)>>>15&1}A=0}return A}function ur(e){var A,t,r,n=0,a=0;if(r=Wt(e)+1|0,n=i[33282],(0|(t=(A=i[33287])+r|0))>=i[33286]){if(!(n=Oe(n,a=t+1e3|0)))return-1;i[33286]=a,i[33282]=n}return _e(n+A|0,e,r),i[33287]=t,A}function dr(e){var A=0;return A=i[e+72>>2],i[e+72>>2]=A-1|A,8&(A=i[e>>2])?(i[e>>2]=32|A,-1):(i[e+4>>2]=0,i[e+8>>2]=0,A=i[e+44>>2],i[e+28>>2]=A,i[e+20>>2]=A,i[e+16>>2]=A+i[e+48>>2],0)}function fr(e,A,t,r){e:if(e){A:switch(A+2|0){case 0:return void(a[0|e]=t);case 1:return void(s[e>>1]=t);case 2:case 3:return void(i[e>>2]=t);case 5:break A;default:break e}i[e>>2]=t,i[e+4>>2]=r}}function pr(e,A,t,r,n,a,s,o,l){var c;j=c=j-16|0,ve(c,A,t,r,n,a,s,o,-2147483648^l),r=i[c>>2],t=i[c+4>>2],A=i[c+12>>2],i[e+8>>2]=i[c+8>>2],i[e+12>>2]=A,i[e>>2]=r,i[e+4>>2]=t,j=c+16|0}function hr(e,A){var t=0,r=0;e:if(!(!(t=o[0|e])|(0|t)!=(0|(r=o[0|A]))))for(;;){if(r=o[A+1|0],!(t=o[e+1|0]))break e;if(A=A+1|0,e=e+1|0,(0|t)!=(0|r))break}return t-r|0}function mr(e,A){var t=0,r=0,n=0;if(!(t=i[e>>2]))return 84399;if(i[e+4>>2]!=(0|A))for(;;){if(!(t=i[(r=e+8|0)>>2]))return 84399;if(n=e,e=r,i[n+12>>2]==(0|A))break}return t}function Cr(e,A,t){var r=0,n=0,a=0;e:if(t){for(;;){if(!(!(r=i[A>>2])|!(n=i[e>>2])|(0|r)!=(0|n))){if(A=A+4|0,e=e+4|0,t=t-1|0)continue;break e}break}a=n-r|0}return a}function br(e){var A,t=0,r=0;if((0|(A=i[36115]))>0)for(;;){if(!(!(r=i[144464+(t<<2)>>2])|i[r>>2]!=(0|e)))return o[r+10|0];if((0|A)==(0|(t=t+1|0)))break}return 0}function Ir(e){var A,t;return(e=(A=i[33175])+(t=e+7&-8)|0)>>>0<=A>>>0&&t||e>>>0>r.byteLength/65536<<16>>>0&&!(0|S(0|e))?(i[56798]=48,-1):(i[33175]=e,A)}function wr(e){var A=0;e:if(!((A=UA(e))>>>0>27)){if(!(1<<A&134259072)){if(6==(0|A))return 1;if(9!=(0|A))break e;return(0|ar(e))!=(0|e)}return q(e,A)>>>14&1}return 0}function kr(e,A){var t=0;return a[0|e]=A>>>24,a[0|(t=(A>>>0>16777215)+e|0)]=A>>>16,a[0|(t=t+!!(16711680&A)|0)]=A>>>8,a[0|(t=t+!!(65280&A)|0)]=A,a[t+!!(255&A)|0]=0,e}function xr(e,A){e:if((0|(e=SA(e,A)))<=268437502){if(!e|268436479==(0|e)|268437247!=(0|e))break e;return}}function Br(e){var A=0;return A=i[e>>2]-1|0,(A=a[121600+(C(0-A&A,124511785)>>>27|0)|0])||(e=i[e+4>>2],A=(e=a[121600+(C(0-e&e,124511785)>>>27|0)|0])?e+32|0:0),A}function vr(e){var A=0,t=0,r=0;e:{if(!((A=UA(e))>>>0>27)){if(t=1,116672&(r=1<<A))break e;if(134227968&r)return q(e,A)>>>10&1}t=0}return t}function yr(e){var A=0,t=0,r=0;e:{if(!((A=UA(e))>>>0>27)){if(t=1,34752&(r=1<<A))break e;if(134227968&r)return q(e,A)>>>10&1}t=0}return t}function Er(){var e,A=0;(e=i[56797])&&((A=i[e+8>>2])&&Tn[i[i[A>>2]+12>>2]](A),(A=i[e+4>>2])&&Tn[i[i[A>>2]+16>>2]](A),ye(e)),i[56797]=0,i[56797]=Le()}function Mr(e,A){var t=0;return e&&(t=rr(e,0,A,0),(e|A)>>>0<65536||(t=Z?-1:t)),!(e=se(t))|!(3&o[e-4|0])||kA(e,0,t),e}function Gr(e,A){var t,r;r=i[130128+(A-C(t=(0|A)/100|0,100)<<2)>>2],i[e+100>>2]=r,i[e+96>>2]=r,A+99>>>0>=199&&(i[e+100>>2]=i[130128+(t<<2)>>2])}function Dr(e){var A=0;(A=se(1344))&&(e=_e(A,e,1344),A=216192+(i[50758]<<4)|0,i[A>>2]=11,i[A+8>>2]=e,e=i[50758]+1|0,i[50758]=(0|e)<=169?e:0)}function Qr(e,A){var t=0;e:if(t=i[e>>2])for(;;){if(A&&!hr(A,t))break e;if(!(t=i[(e=e+8|0)>>2]))break}return i[e+4>>2]}function Tr(e){var A,t=0;return j=A=j-16|0,t=-1,Ht(e)||1==(0|Tn[i[e+32>>2]](e,A+15|0,1))&&(t=o[A+15|0]),j=A+16|0,t}function Pr(e,A){var t=0,r=0;if(A){for(;r=e,(t=i[e>>2])&&(e=r+4|0,(0|A)!=(0|t)););return t?r:0}return(Ur(e)<<2)+e|0}function zr(e,A){var t=0,r=0;if(t=p[e>>1])for(;;){if(r=r+1|0,(0|A)==(0|t))return r;if(!(t=p[(r<<1)+e>>1]))break}return 0}function Fr(e,A){var t=0,r=0;A>>>0<=31?(r=i[e>>2],t=e+4|0):(A=A-32|0,t=e),t=i[t>>2],i[e>>2]=r<<A,i[e+4>>2]=t<<A|r>>>32-A}function Sr(e,A){var t=0,r=0;t=i[e+4>>2],A>>>0<=31?r=i[e>>2]:(A=A-32|0,r=t,t=0),i[e+4>>2]=t>>>A,i[e>>2]=t<<32-A|r>>>A}function Nr(e){var A=0;e=e||1;e:{for(;;){if(A=se(e))break e;if(!(A=i[57276]))break;Tn[0|A]()}F(),d()}return A}function Or(e){return e>>>0<=131071?o[117424+(e>>>3&31|o[117424+(e>>>8|0)|0]<<5)|0]>>>(7&e)&1:e>>>0<196606}function Lr(e,A,t,r,n,a,s,o,l){i[e>>2]=A,i[e+4>>2]=t,i[e+8>>2]=r,i[e+12>>2]=65535&n|(l>>>16&32768|n>>>16&32767)<<16}function Yr(e,A,t){return t?(0|e)==(0|A)?1:!hr(i[e+4>>2],i[A+4>>2]):i[e+4>>2]==i[A+4>>2]}function Hr(e){var A=0;-31==(0|(A=0|L(-100,0|e,0)))&&(A=0|O(0|e)),A>>>0>=4294963201&&(i[56798]=0-A)}function Rr(){var e;e=se(84)+80|0,i[e>>2]=125420,i[e>>2]=125380,i[e>>2]=125400,V(0|e,125512,9),d()}function Wr(e){var A,t;return A=Gt(e),t=Gt(e),Gt(e)<<16&16711680|t<<8&65280|255&A|Gt(e)<<24}function Vr(e){var A=0;return e?(A=1,e-9472>>>0<160|e-65529>>>0<7||(A=er(e)),A):0}function jr(e,A){var t;return t=A>>31,i[e+76>>2],function(e,A,t){return i[e+20>>2]!=i[e+28>>2]&&(Tn[i[e+36>>2]](e,0,0),!i[e+20>>2])||(i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,Tn[i[e+40>>2]](e,A,t,0),(0|Z)<0)?-1:(i[e+4>>2]=0,i[e+8>>2]=0,i[e>>2]=-17&i[e>>2],0)}(e,A,t)}function Ur(e){var A=0,t=0;for(t=e;t=(A=t)+4|0,i[A>>2];);return A-e>>2}function Kr(e,A){return a[0|e]=A,a[e+4|0]=0,a[e+3|0]=A>>>24,a[e+2|0]=A>>>16,a[e+1|0]=A>>>8,e}function Zr(e,A){var t=0;return(-1>>>(t=31&A)&e)<<t|((t=e)&-1<<(e=0-A&31))>>>e}function Xr(e,A){var t=0;return 73==(0|e)&&(t=305,o[A+173|0])||(t=nr(e)),t}function qr(e){i[36114]!=(0|e)&&(i[36115]=0,vA(e),i[36114]=e,i[36115]=i[36115]+1)}function Jr(e){return e?i[34460]+e|0:(An(85328,20,i[30450]),i[32320])}function _r(e){var A,t;return(t=se(A=Wt(e)+1|0))?_e(t,e,A):0}function $r(){var e;i[33287]=0,(e=i[33282])&&(ye(e),i[33286]=0,i[33282]=0)}function en(e,A,t){var r;j=r=j-16|0,i[r+12>>2]=t,mn(e,A,t),j=r+16|0}function An(e,A,t){i[t+76>>2],e=ot(e,A,t)}function tn(e,A){return A?e<<24|(65280&e)<<8|e>>>8&65280|e>>>24:e}function rn(e){return e-8212>>>0>=12?zr(93856,e):1}function nn(e){var A=0;e&&((A=i[e+688>>2])&&ye(A),ye(e))}function an(e){return(0|e)<=127?cn(87712,e):0}function sn(e){return!(e=o[0|e]?1:Dt(e,e+1|0,3))}function on(e){(e=27!=(0|(e=0|v(0|e)))?e:0)&&(i[56798]=e)}function ln(e,A,t){return e|=0,A|=0,0|Tn[0|(t|=0)](e,A)}function cn(e,A){return e=_A(e,A),o[0|e]==(255&A)?e:0}function gn(e,A){return lA(e,A,2147483647),Z=K,U}function un(e){return e?31-w(e-1^e)|0:32}function dn(e,A,t){32&o[0|e]||ot(A,t,e)}function fn(e,A,t){a[(zA(e,A,t)+t|0)-1|0]=0}function pn(e){return Mt(e,188776,189328)}function hn(e,A){A|=0,i[8+(e|=0)>>2]=A}function mn(e,A,t){return EA(e,A,t,0,0)}function Cn(e){return i[12+(e|=0)>>2]}function bn(e){return i[16+(e|=0)>>2]}function In(e){return i[20+(e|=0)>>2]}function wn(e){return i[8+(e|=0)>>2]}function kn(e){return i[4+(e|=0)>>2]}function xn(e){return i[(e|=0)>>2]}function Bn(e,A,t){return lA(e,A,t)}function vn(e){(e|=0)&&ye(e)}function yn(e,A){rt(Wt(e)+e|0,A)}function En(e){return 0|e}function Mn(e){return 0}function Gn(e){ye(e|=0)}function Dn(e){}n(A=o,1024,"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"),n(A,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),n(A,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),n(A,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),n(A,81475,"AgAAAAAAACAAAAAAAAAAIA=="),n(A,81506,"IA=="),n(A,81522,"IAAAAAAAAAAg"),n(A,81618,"IA=="),n(A,81634,"IA=="),n(A,81650,"IAAAAAAAAAAg"),n(A,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),n(A,81728,"gAAAAAAAAACAAAAAAAAAAIA="),n(A,81760,"gAAAAAAAAACA"),n(A,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),n(A,81961,"FAAAAAAAAAAU"),n(A,81985,"FAAAAAAAAAAE"),n(A,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),n(A,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),n(A,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),n(A,82224,"gAAAAAAAAACA"),n(A,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),n(A,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),n(A,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),n(A,82625,"BAAAAAAAAAAE"),n(A,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),n(A,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),n(A,83097,"BAAAAAAAAAAE"),n(A,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),n(A,83288,"QA=="),n(A,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),n(A,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),n(A,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),n(A,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VTLlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAkdTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdABHb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),n(A,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),n(A,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="),n(A,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),n(A,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=="),n(A,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),n(A,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),n(A,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),n(A,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),n(A,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),n(A,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),n(A,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),n(A,102708,"rwAAAGQAAAAyAAAAMg=="),n(A,102744,"ZA=="),n(A,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),n(A,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAnMCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),n(A,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),n(A,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),n(A,103790,"LQAAAAAAAAAu"),n(A,103816,"Lw=="),n(A,103833,"MAAAAAAAMQ=="),n(A,103856,"Mg=="),n(A,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),n(A,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),n(A,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),n(A,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),n(A,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),n(A,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),n(A,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),n(A,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),n(A,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),n(A,105170,"MgAz"),n(A,105195,"NAAAAAAANQA2"),n(A,105226,"NwA4ADkArQABAAwgAQ=="),n(A,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),n(A,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),n(A,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),n(A,105540,"MgAAAK8AAABkAAAAMg=="),n(A,105568,"rw=="),n(A,105596,"EBAKEBY="),n(A,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),n(A,105668,"BA=="),n(A,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),n(A,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),n(A,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),n(A,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=="),n(A,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),n(A,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),n(A,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"),n(A,112416,"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"),n(A,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),n(A,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="),n(A,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),n(A,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=="),n(A,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),n(A,118910,"AoAAAP8f"),n(A,118928,"hPwvPlC9//PgQwAA//////8B"),n(A,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),n(A,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),n(A,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"),n(A,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),n(A,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),n(A,119824,"////////fwD//z8A/w=="),n(A,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),n(A,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),n(A,120048,"////H4AA//8/"),n(A,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),n(A,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),n(A,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),n(A,120336,"/////////wE="),n(A,120356,"////////////AwCA"),n(A,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),n(A,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),n(A,120524,"//9/AP////////////////////////8D"),n(A,120560,"/////////////////38AAP///////////////////////////////w8="),n(A,120624,"//////9/"),n(A,120656,"//////////9/"),n(A,120688,"/////////wH///9//wM="),n(A,120714,"////PwAA////////AAAPAP8D+P//4P//"),n(A,120760,"//////////8="),n(A,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),n(A,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),n(A,121136,"//////8fgD//Qw=="),n(A,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),n(A,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),n(A,121302,"////A////wP///8D"),n(A,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),n(A,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),n(A,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),n(A,121776,"Qy5VVEYtOA=="),n(A,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),n(A,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),n(A,123928,"IQQAAAAAAAAAAC8C"),n(A,123960,"NQRHBFYE"),n(A,123982,"oAQ="),n(A,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),n(A,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),n(A,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),n(A,124187,"DA=="),n(A,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),n(A,124245,"EA=="),n(A,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),n(A,124303,"Eg=="),n(A,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),n(A,124370,"GgAAABoaGgAAAAAAAAk="),n(A,124419,"FA=="),n(A,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),n(A,124477,"Fg=="),n(A,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),n(A,124564,"EQ=="),n(A,124604,"//////////8="),n(A,124672,"0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),n(A,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),n(A,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEAEQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),n(A,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),n(A,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),n(A,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),n(A,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),n(A,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),n(A,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),n(A,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),n(A,131076,"QP8BAAD/AQCA/wEAwP8B"),n(A,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),n(A,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),n(A,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),n(A,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),n(A,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),n(A,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),n(A,131888,"qAsD"),n(A,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),n(A,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),n(A,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+YkIiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),n(A,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),n(A,132412,"DQ=="),n(A,132436,"CwAAAAoAAADoeAM="),n(A,132460,"Ag=="),n(A,132476,"//////////8="),n(A,132544,"MAUCAAAAAAAF"),n(A,132564,"MA=="),n(A,132588,"CwAAADEAAAD4eAMAAAQ="),n(A,132612,"AQ=="),n(A,132628,"/////wo="),n(A,132696,"yAUCAAB/BA==");var Qn,Tn=(Qn=[null,function(e){var A,t=0;return t=i[(e|=0)>>2],i[e>>2]=t+1,t=255&(A=a[0|t]),(0|A)<0&&(t=p[(i[e+12>>2]+(t<<1)|0)-256>>1]),0|t},Mn,function(e){var A,t;return A=i[(e|=0)>>2],t=i[A>>2],i[e>>2]=A+4,0|t},function(e){var A=0,t=0;return A=i[(e|=0)>>2],65533==(0|(t=uA(e)))&&(i[e>>2]=A+1,i[e+8>>2]=1,t=255&(A=a[0|A]),(0|A)>=0||(t=p[(i[e+12>>2]+(t<<1)|0)-256>>1])),0|t},uA,function(e){var A,t,r=0;return(r=i[4+(e|=0)>>2])>>>0<=(t=(A=i[e>>2])+1|0)>>>0?(i[e>>2]=r,65533):(i[e>>2]=t,r=o[0|A],i[e>>2]=A+2,r|o[A+1|0]<<8)},function(e,A){var t,r,n;return A|=0,e=i[(e|=0)>>2],t=i[e+4>>2],r=i[A>>2],(A=hr(t+1|0,(n=i[r+4>>2])+1|0))||(A=a[0|t]-a[0|n]|0)||(A=hr(i[e>>2],i[r>>2])),0|A},function(e,A){var t;return e|=0,A=i[(A|=0)>>2],t=i[e>>2],(e=i[A+16>>2]-i[t+16>>2]|0)||(e=hr(i[t>>2],i[A>>2])),0|e},En,function(e,A,t,r){var n;return A|=0,t|=0,r|=0,j=n=j-16|0,(e=0|z(i[60+(e|=0)>>2],0|A,0|t,255&r,n+8|0))?(i[56798]=e,e=-1):e=0,j=n+16|0,Z=e?-1:i[n+12>>2],0|(e?-1:i[n+8>>2])},function(e,A,t){A|=0,t|=0;var r,n=0,a=0,s=0,o=0,l=0,c=0;j=r=j-32|0,n=i[28+(e|=0)>>2],i[r+16>>2]=n,s=i[e+20>>2],i[r+28>>2]=t,i[r+24>>2]=A,A=s-n|0,i[r+20>>2]=A,s=A+t|0,l=2;e:{A:{A=r+16|0,(n=0|y(i[e+60>>2],0|A,2,r+12|0))?(i[56798]=n,n=-1):n=0;t:{if(n)n=A;else for(;;){if((0|(a=i[r+12>>2]))==(0|s))break t;if((0|a)<0){n=A;break A}if(o=a-((c=(o=i[A+4>>2])>>>0<a>>>0)?o:0)|0,i[(n=(c<<3)+A|0)>>2]=o+i[n>>2],i[(A=(c?12:4)+A|0)>>2]=i[A>>2]-o,s=s-a|0,A=n,l=l-c|0,(a=0|y(i[e+60>>2],0|A,0|l,r+12|0))?(i[56798]=a,a=-1):a=0,a)break}if(-1!=(0|s))break A}A=i[e+44>>2],i[e+28>>2]=A,i[e+20>>2]=A,i[e+16>>2]=A+i[e+48>>2],e=t;break e}i[e+28>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e>>2]=32|i[e>>2],e=0,2!=(0|l)&&(e=t-i[n+4>>2]|0)}return j=r+32|0,0|e},function(e,A,t){e|=0,A|=0,t|=0;var r,n=0,s=0,l=0;j=r=j-32|0,i[r+16>>2]=A,n=i[e+48>>2],i[r+20>>2]=t-!!(0|n),s=i[e+44>>2],i[r+28>>2]=n,i[r+24>>2]=s;e:{A:{if((n=0|W(i[e+60>>2],r+16|0,2,r+12|0))?(i[56798]=n,n=-1):n=0,n)A=32;else{if((0|(n=i[r+12>>2]))>0)break A;A=n?32:16}i[e>>2]=A|i[e>>2];break e}l=n,(s=i[r+20>>2])>>>0>=n>>>0||(n=i[e+44>>2],i[e+4>>2]=n,i[e+8>>2]=n+(l-s|0),i[e+48>>2]&&(i[e+4>>2]=n+1,a[(A+t|0)-1|0]=o[0|n]),l=t)}return j=r+32|0,0|l},function(e){return 0|v(i[60+(e|=0)>>2])},ln,function(e,A,t,r,n,s){e|=0,A=+A,t|=0,r|=0,n|=0,s|=0;var c,g=0,d=0,f=0,p=0,h=0,m=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,G=0,D=0,Q=0;j=c=j-560|0,i[c+44>>2]=0,u(+A),g=0|l(1),l(0),(0|g)<0?(v=1,D=84997,u(+(A=-A)),g=0|l(1),l(0)):2048&n?(v=1,D=85e3):(D=(v=1&n)?85003:84998,Q=!v);e:if(2146435072&~g){E=c+16|0;A:{t:{r:{if(A=jt(A,c+44|0),0!=(A+=A)){if(g=i[c+44>>2],i[c+44>>2]=g-1,97!=(0|(M=32|s)))break r;break A}if(97==(0|(M=32|s)))break A;h=i[c+44>>2],m=(0|r)<0?6:r;break t}h=g-29|0,i[c+44>>2]=h,A*=268435456,m=(0|r)<0?6:r}for(d=x=(c+48|0)+((0|h)>=0?288:0)|0;r=A<4294967296&A>=0?~~A>>>0:0,i[d>>2]=r,d=d+4|0,0!=(A=1e9*(A-+(r>>>0))););if((0|h)<=0)r=h,g=d,f=x;else for(f=x,r=h;;){if(w=(0|r)>=29?29:r,!(f>>>0>(g=d-4|0)>>>0)){for(r=0;p=i[g>>2],G=r,r=31&w,(63&w)>>>0>=32?(b=p<<r,r=0):(b=(1<<r)-1&p>>>32-r,r=p<<r),p=b+k|0,r=Bn(G=G+r|0,r>>>0>G>>>0?p+1|0:p,1e9),i[g>>2]=G-rr(r,Z,1e9,0),f>>>0<=(g=g-4|0)>>>0;);r&&(i[(f=f-4|0)>>2]=r)}for(;f>>>0<(g=d)>>>0&&!i[(d=g-4|0)>>2];);if(r=i[c+44>>2]-w|0,i[c+44>>2]=r,d=g,!((0|r)>0))break}if((0|r)<0)for(y=1+((m+25>>>0)/9|0)|0,k=102==(0|M);;){if(b=(0|(r=0-r|0))>=9?9:r,g>>>0<=f>>>0)d=i[f>>2];else{for(w=1e9>>>b|0,p=~(-1<<b),r=0,d=f;G=r,r=i[d>>2],i[d>>2]=G+(r>>>b|0),r=C(w,r&p),(d=d+4|0)>>>0<g>>>0;);d=i[f>>2],r&&(i[g>>2]=r,g=g+4|0)}if(r=b+i[c+44>>2]|0,i[c+44>>2]=r,f=(!d<<2)+f|0,g=g-(d=k?x:f)>>2>(0|y)?d+(y<<2)|0:g,!((0|r)<0))break}if(r=0,!(g>>>0<=f>>>0||(r=C(x-f>>2,9),d=10,(p=i[f>>2])>>>0<10)))for(;r=r+1|0,p>>>0>=(d=C(d,10))>>>0;);if((0|(d=(m-(102!=(0|M)?r:0)|0)-(103==(0|M)&!!(0|m))|0))<(C(g-x>>2,9)-9|0)){if(h=((((0|h)<0?4:292)+c|0)+((p=(0|(w=d+9216|0))/9|0)<<2)|0)-4048|0,d=10,(0|(b=w-C(p,9)|0))<=7)for(;d=C(d,10),8!=(0|(b=b+1|0)););if(!(!(k=(w=i[h>>2])-C(d,y=(w>>>0)/(d>>>0)|0)|0)&(0|(p=h+4|0))==(0|g))&&(!(1&y)&&(A=9007199254740992,!(1&a[h-4|0])|1e9!=(0|d)|f>>>0>=h>>>0)||(A=9007199254740994),B=(0|g)==(0|p)?1:1.5,B=(p=d>>>1|0)>>>0>k>>>0?.5:(0|p)==(0|k)?B:1.5,45!=o[0|D]|Q||(B=-B,A=-A),p=w-k|0,i[h>>2]=p,A+B!=A)){if(r=d+p|0,i[h>>2]=r,r>>>0>=1e9)for(;i[h>>2]=0,(h=h-4|0)>>>0<f>>>0&&(i[(f=f-4|0)>>2]=0),r=i[h>>2]+1|0,i[h>>2]=r,r>>>0>999999999;);if(r=C(x-f>>2,9),d=10,!((p=i[f>>2])>>>0<10))for(;r=r+1|0,p>>>0>=(d=C(d,10))>>>0;);}g=g>>>0>(d=h+4|0)>>>0?d:g}for(;p=g,!(w=g>>>0<=f>>>0)&&!i[(g=p-4|0)>>2];);if(103==(0|M)){if(m=((g=(0|(d=m||1))>(0|r)&(0|r)>-5)?~r:-1)+d|0,s=(g?-1:-2)+s|0,!(h=8&n)){if(g=-9,!w&&(h=i[p-4>>2])&&(b=10,g=0,!((h>>>0)%10|0))){for(;d=g,g=g+1|0,!((h>>>0)%((b=C(b,10))>>>0)|0););g=~d}d=C(p-x>>2,9),70!=(-33&s)?(h=0,m=(0|(g=(0|(g=((r+d|0)+g|0)-9|0))>0?g:0))>(0|m)?m:g):(h=0,m=(0|(g=(0|(g=(g+d|0)-9|0))>0?g:0))>(0|m)?m:g)}}else h=8&n;if(b=-1,(0|((w=h|m)?2147483645:2147483646))<(0|m))break e;if(k=1+(!!(0|w)+m|0)|0,70!=(0|(d=-33&s))){if((E-(g=Kt(((g=r>>31)^r)-g|0,0,E))|0)<=1)for(;a[0|(g=g-1|0)]=48,(E-g|0)<2;);if(a[0|(y=g-2|0)]=s,a[g-1|0]=(0|r)<0?45:43,(0|(g=E-y|0))>(2147483647^k))break e}else{if((2147483647^k)<(0|r))break e;g=(0|r)>0?r:0}if((0|(r=g+k|0))>(2147483647^v))break e;or(e,32,t,k=r+v|0,n),dn(e,D,v),or(e,48,t,k,65536^n);t:{r:{n:{if(70==(0|d)){for(r=8|(s=c+16|0),h=9|s,f=d=f>>>0>x>>>0?x:f;;){g=Kt(i[f>>2],0,h);a:if((0|d)==(0|f))(0|g)==(0|h)&&(a[c+24|0]=48,g=r);else{if(c+16>>>0>=g>>>0)break a;for(;a[0|(g=g-1|0)]=48,c+16>>>0<g>>>0;);}if(dn(e,g,h-g|0),!(x>>>0>=(f=f+4|0)>>>0))break}if(w&&dn(e,85998,1),(0|m)<=0|f>>>0>=p>>>0)break n;for(;;){if((g=Kt(i[f>>2],0,h))>>>0>c+16>>>0)for(;a[0|(g=g-1|0)]=48,c+16>>>0<g>>>0;);if(dn(e,g,(0|m)>=9?9:m),g=m-9|0,p>>>0<=(f=f+4|0)>>>0)break r;if(r=(0|m)>9,m=g,!r)break}break r}a:if(!((0|m)<0))for(x=f>>>0<p>>>0?p:f+4|0,r=8|(s=c+16|0),p=9|s,d=f;;){(0|p)==(0|(g=Kt(i[d>>2],0,p)))&&(a[c+24|0]=48,g=r);s:if((0|d)==(0|f))dn(e,g,1),g=g+1|0,h|m&&dn(e,85998,1);else{if(c+16>>>0>=g>>>0)break s;for(;a[0|(g=g-1|0)]=48,c+16>>>0<g>>>0;);}if(dn(e,g,(0|(s=p-g|0))>(0|m)?m:s),m=m-s|0,x>>>0<=(d=d+4|0)>>>0)break a;if(!((0|m)>=0))break}or(e,48,m+18|0,18,0),dn(e,y,E-y|0);break t}g=m}or(e,48,g+9|0,9,0)}or(e,32,t,k,8192^n),b=(0|t)<(0|k)?k:t;break e}if(h=(s<<26>>31&9)+D|0,!(r>>>0>11)){for(g=12-r|0,B=16;B*=16,g=g-1|0;);A=45!=o[0|h]?A+B-B:-(B+(-A-B))}for((0|E)==(0|(g=Kt(((g=i[c+44>>2])^(d=g>>31))-d|0,0,E)))&&(a[c+15|0]=48,g=c+15|0),x=2|v,f=32&s,d=i[c+44>>2],a[0|(m=g-2|0)]=s+15,a[g-1|0]=(0|d)<0?45:43,g=8&n,d=c+16|0;s=d,p=I(A)<2147483648?~~A:-2147483648,a[0|d]=f|o[p+124512|0],!((0|r)>0|g)&0==(A=16*(A-+(0|p)))|1!=((d=s+1|0)-(c+16|0)|0)||(a[s+1|0]=46,d=s+2|0),0!=A;);b=-1,(2147483645-(s=(g=E-m|0)+x|0)|0)<(0|r)||(or(e,32,t,s=(r=!r||((f=d-(c+16|0)|0)-2|0)>=(0|r)?f=d-(c+16|0)|0:r+2|0)+s|0,n),dn(e,h,x),or(e,48,t,s,65536^n),dn(e,c+16|0,f),or(e,48,r-f|0,0,0),dn(e,m,g),or(e,32,t,s,8192^n),b=(0|t)<(0|s)?s:t)}else or(e,32,t,g=v+3|0,-65537&n),dn(e,D,v),r=32&s,dn(e,A!=A?r?85596:85774:r?85247:85460,3),or(e,32,t,g,8192^n),b=(0|t)<(0|g)?g:t;return j=c+560|0,0|b},function(e,A){var t;e|=0,t=A|=0,A=i[A>>2]+7&-8,i[t>>2]=A+16,m[e>>3]=tA(i[A>>2],i[A+4>>2],i[A+8>>2],i[A+12>>2])},function(e,A,t){A|=0,t|=0;var r,n,s=0,o=0;return r=i[84+(e|=0)>>2],o=i[r+4>>2],n=i[e+28>>2],(s=(s=i[e+20>>2]-n|0)>>>0>o>>>0?o:s)&&(_e(i[r>>2],n,s),i[r>>2]=s+i[r>>2],o=i[r+4>>2]-s|0,i[r+4>>2]=o),s=i[r>>2],(o=t>>>0>o>>>0?o:t)&&(_e(s,A,o),s=o+i[r>>2]|0,i[r>>2]=s,i[r+4>>2]=i[r+4>>2]-o),a[0|s]=0,A=i[e+44>>2],i[e+28>>2]=A,i[e+20>>2]=A,0|t},function(e,A,t){t|=0;var r,n,a=0;return _e(A|=0,r=i[84+(e|=0)>>2],t=t>>>0>(a=(n=JA(r,0,a=t+256|0))?n-r|0:a)>>>0?a:t),A=r+a|0,i[e+84>>2]=A,i[e+8>>2]=A,i[e+4>>2]=t+r,0|t},function(e,A,t){A|=0,t|=0;var r,n=0,s=0,l=0;n=i[84+(e|=0)>>2],r=i[n>>2]?n:84412,n=0;e:if(i[e+48>>2])for(;;){if(!(s=i[(n<<2)+r>>2]))break e;if(a[i[e+44>>2]+n|0]=(0|s)>=128?64:s,!((n=n+1|0)>>>0<h[e+48>>2]))break}return s=i[e+44>>2],i[e+4>>2]=s,i[e+84>>2]=(n<<2)+r,i[e+8>>2]=n+s,!t|!n||(i[e+4>>2]=s+1,a[0|A]=o[0|s],l=1),0|l},En,Gn,Dn,Dn,function(e,A,t){t|=0;var r,n=0;return j=r=j+-64|0,n=1,Yr(e|=0,A|=0,0)||(n=0,A&&(n=0,(A=IA(A,125132))&&(kA(4|(n=r+8|0),0,52),i[r+56>>2]=1,i[r+20>>2]=-1,i[r+16>>2]=e,i[r+8>>2]=A,Tn[i[i[A>>2]+28>>2]](A,n,i[t>>2],1),1==(0|(e=i[r+32>>2]))&&(i[t>>2]=i[r+24>>2]),n=1==(0|e)))),j=r- -64|0,0|n},function(e,A,t,r,n,a){t|=0,r|=0,n|=0,a|=0,Yr(e|=0,i[8+(A|=0)>>2],a)&&pt(A,t,r,n)},function(e,A,t,r,n){if(t|=0,r|=0,n|=0,Yr(e|=0,i[8+(A|=0)>>2],n))1==i[A+28>>2]|i[A+4>>2]!=(0|t)||(i[A+28>>2]=r);else e:if(Yr(e,i[A>>2],n)){if(!(i[A+16>>2]!=(0|t)&i[A+20>>2]!=(0|t))){if(1!=(0|r))break e;return void(i[A+32>>2]=1)}i[A+20>>2]=t,i[A+32>>2]=r,i[A+40>>2]=i[A+40>>2]+1,1!=i[A+36>>2]|2!=i[A+24>>2]||(a[A+54|0]=1),i[A+44>>2]=4}},function(e,A,t,r){t|=0,r|=0,Yr(e|=0,i[8+(A|=0)>>2],0)&&ir(A,t,r)},Gn,function(e,A,t,r,n,a){t|=0,r|=0,n|=0,a|=0,Yr(e|=0,i[8+(A|=0)>>2],a)?pt(A,t,r,n):(e=i[e+8>>2],Tn[i[i[e>>2]+20>>2]](e,A,t,r,n,a))},function(e,A,t,r,n){if(t|=0,r|=0,n|=0,Yr(e|=0,i[8+(A|=0)>>2],n))1==i[A+28>>2]|i[A+4>>2]!=(0|t)||(i[A+28>>2]=r);else e:{if(Yr(e,i[A>>2],n)){if(!(i[A+16>>2]!=(0|t)&i[A+20>>2]!=(0|t))){if(1!=(0|r))break e;return void(i[A+32>>2]=1)}i[A+32>>2]=r;A:if(4!=i[A+44>>2]){if(s[A+52>>1]=0,e=i[e+8>>2],Tn[i[i[e>>2]+20>>2]](e,A,t,t,1,n),o[A+53|0]){if(i[A+44>>2]=3,!o[A+52|0])break A;break e}i[A+44>>2]=4}if(i[A+20>>2]=t,i[A+40>>2]=i[A+40>>2]+1,1!=i[A+36>>2]|2!=i[A+24>>2])break e;return void(a[A+54|0]=1)}e=i[e+8>>2],Tn[i[i[e>>2]+24>>2]](e,A,t,r,n)}},function(e,A,t,r){t|=0,r|=0,Yr(e|=0,i[8+(A|=0)>>2],0)?ir(A,t,r):(e=i[e+8>>2],Tn[i[i[e>>2]+28>>2]](e,A,t,r))},Gn,function(e){return 84787},Gn,function(e){return 85058},Gn,function(e){return 84147},function(e){var A;return A=e|=0,e=i[e>>2],i[A>>2]=e+1,0|((0|(e=a[0|e]))<0?65533:255&e)},function(e,A,t,r,n,s){e|=0,A|=0,t|=0,r|=0,n|=0,s|=0;var l,c=0,g=0,u=0,f=0,p=0,h=0,C=0,b=0;if(l=Nr(408),i[l+4>>2]=r,i[l>>2]=t,A?(_e(l+16|0,A,376),m[l+392>>3]=(m[A+368>>3]-m[A>>3])/+(t>>>0),A=0):A=1,i[l+400>>2]=n,a[l+8|0]=A,s){if(t=i[e+24>>2])for(A=i[e+20>>2],r=i[e+8>>2];(n=i[i[(A>>>8&16777212)+r>>2]+((1023&A)<<2)>>2])&&(ye(n),t=i[e+24>>2],r=i[e+8>>2],A=i[e+20>>2]),A=A+1|0,i[e+20>>2]=A,t=t-1|0,i[e+24>>2]=t,A>>>0>=2048&&(ye(i[r>>2]),r=i[e+8>>2]+4|0,i[e+8>>2]=r,A=i[e+20>>2]-1024|0,i[e+20>>2]=A,t=i[e+24>>2]),t;);A=i[e+28>>2],i[e+420>>2]=i[A>>2],(t=i[e+32>>2])&&(a[A+8|0]=o[t+8|0],_e(A+16|0,e+40|0,376),(A=i[e+32>>2])&&ye(A),i[e+32>>2]=0)}if(t=(r=i[e+24>>2])+i[e+20>>2]|0,n=i[e+12>>2],(0|t)==(0|((0|(A=i[e+8>>2]))!=(0|n)?(n-A<<8)-1:0))){j=c=j-32|0;e:{A:{t:{r:{if((A=i[16+(s=e+4|0)>>2])>>>0>=1024){if(i[s+16>>2]=A-1024,A=i[s+4>>2],h=i[A>>2],n=A+4|0,i[s+4>>2]=n,(0|(A=i[s+8>>2]))==i[s+12>>2])if((g=i[s>>2])>>>0<n>>>0)t=mA((r=(1+(n-g>>2)|0)/-2<<2)+n|0,n,A=A-n|0)+A|0,i[s+8>>2]=t,i[s+4>>2]=r+i[s+4>>2];else{if((t=(0|A)==(0|g)?1:A-g>>1)>>>0>=1073741824)break r;if(C=(r=t<<2)+(u=Nr(r))|0,t=r=u+(-4&t)|0,(0|A)!=(0|n)){if(b=-4&(A=A-n|0),p=1+((f=A-4|0)>>>2|0)&7)for(t=0,A=r;i[A>>2]=i[n>>2],n=n+4|0,A=A+4|0,(0|p)!=(0|(t=t+1|0)););else A=r;if(t=r+b|0,!(f>>>0<28))for(;i[A>>2]=i[n>>2],i[A+4>>2]=i[n+4>>2],i[A+8>>2]=i[n+8>>2],i[A+12>>2]=i[n+12>>2],i[A+16>>2]=i[n+16>>2],i[A+20>>2]=i[n+20>>2],i[A+24>>2]=i[n+24>>2],i[A+28>>2]=i[n+28>>2],n=n+32|0,(0|t)!=(0|(A=A+32|0)););}i[s+12>>2]=C,i[s+8>>2]=t,i[s+4>>2]=r,i[s>>2]=u,g&&(ye(g),t=i[s+8>>2])}else t=A;i[t>>2]=h,i[s+8>>2]=i[s+8>>2]+4;break e}if((g=(n=i[s+8>>2])-i[s+4>>2]>>2)>>>0<(r=(A=i[s+12>>2])-(t=i[s>>2])|0)>>2>>>0){if((0|A)!=(0|n)){i[c+8>>2]=Nr(4096),cA(s,c+8|0);break e}if(i[c+8>>2]=Nr(4096),oA(s,c+8|0),A=i[s+4>>2],h=i[A>>2],n=A+4|0,i[s+4>>2]=n,(0|(A=i[s+8>>2]))==i[s+12>>2])if((g=i[s>>2])>>>0<n>>>0)t=mA((r=(1+(n-g>>2)|0)/-2<<2)+n|0,n,A=A-n|0)+A|0,i[s+8>>2]=t,i[s+4>>2]=r+i[s+4>>2];else{if((t=(0|A)==(0|g)?1:A-g>>1)>>>0>=1073741824)break r;if(C=(r=t<<2)+(u=Nr(r))|0,t=r=u+(-4&t)|0,(0|A)!=(0|n)){if(b=-4&(A=A-n|0),p=1+((f=A-4|0)>>>2|0)&7)for(t=0,A=r;i[A>>2]=i[n>>2],n=n+4|0,A=A+4|0,(0|p)!=(0|(t=t+1|0)););else A=r;if(t=r+b|0,!(f>>>0<28))for(;i[A>>2]=i[n>>2],i[A+4>>2]=i[n+4>>2],i[A+8>>2]=i[n+8>>2],i[A+12>>2]=i[n+12>>2],i[A+16>>2]=i[n+16>>2],i[A+20>>2]=i[n+20>>2],i[A+24>>2]=i[n+24>>2],i[A+28>>2]=i[n+28>>2],n=n+32|0,(0|t)!=(0|(A=A+32|0)););}i[s+12>>2]=C,i[s+8>>2]=t,i[s+4>>2]=r,i[s>>2]=u,g&&(ye(g),t=i[s+8>>2])}else t=A;i[t>>2]=h,i[s+8>>2]=i[s+8>>2]+4;break e}if(i[c+24>>2]=s+12,!((A=(0|A)==(0|t)?1:r>>1)>>>0>=1073741824)){if(A=Nr(t=A<<2),i[c+8>>2]=A,r=A+(g<<2)|0,i[c+16>>2]=r,i[c+20>>2]=A+t,i[c+12>>2]=r,i[c+4>>2]=Nr(4096),cA(c+8|0,c+4|0),(0|(n=i[s+8>>2]))==i[s+4>>2]){A=n;break A}for(;oA(c+8|0,n=n-4|0),i[s+4>>2]!=(0|n););break t}}Rr(),d()}A=i[s+8>>2]}t=i[s>>2],i[s>>2]=i[c+8>>2],i[c+8>>2]=t,i[s+4>>2]=i[c+12>>2],i[c+12>>2]=n,i[s+8>>2]=i[c+16>>2],i[c+16>>2]=A,r=i[s+12>>2],i[s+12>>2]=i[c+20>>2],i[c+20>>2]=r,(0|A)!=(0|n)&&(i[c+16>>2]=A+(3+(n-A|0)&-4)),t&&ye(t)}j=c+32|0,t=(r=i[e+24>>2])+i[e+20>>2]|0,A=i[e+8>>2]}i[i[A+(t>>>8&16777212)>>2]+((1023&t)<<2)>>2]=l,i[e+24>>2]=r+1},function(e){var A=0,t=0,r=0,n=0,s=0,l=0,c=0,g=0,u=0;t=i[420+(e|=0)>>2]+1|0,i[e+420>>2]=t;e:{if(A=i[e+32>>2]){if(t>>>0>(c=i[A+4>>2])>>>0){(t=i[e+28>>2])&&(ye(t),A=i[e+32>>2]),i[e+32>>2]=0,i[e+28>>2]=A;break e}for(s=e+40|0,l=A+16|0,g=i[e+28>>2]+16|0,u=+(t>>>0)/+(c>>>0),A=0;;){if(r=m[(t=A<<3)+l>>3],n=m[t+g>>3],m[t+s>>3]=r==r?(r-n)*u+n:n,47==(0|(t=1|A)))break e;r=m[(t<<=3)+l>>3],n=m[t+g>>3],m[t+s>>3]=r==r?(r-n)*u+n:n,A=A+2|0}}if(A=i[e+28>>2],t>>>0>h[A>>2]){if(s=i[e+24>>2]){if(a[e+416|0]=0,l=i[e+8>>2],t=i[e+20>>2],A=i[i[l+(t>>>8&16777212)>>2]+((1023&t)<<2)>>2],i[e+32>>2]=A,i[e+24>>2]=s-1,t=t+1|0,i[e+20>>2]=t,t>>>0>=2048&&(ye(i[l>>2]),i[e+8>>2]=i[e+8>>2]+4,i[e+20>>2]=i[e+20>>2]-1024,A=i[e+32>>2]),o[A+8|0])_e(A+16|0,i[e+28>>2]+16|0,376),A=i[e+32>>2],i[A+368>>2]=0,i[A+372>>2]=0,r=m[e+40>>3],i[A+392>>2]=0,i[A+396>>2]=0,m[A+16>>3]=r;else if(t=i[e+28>>2],o[t+8|0]&&(_e(t+16|0,A+16|0,376),A=i[e+28>>2],i[A+368>>2]=0,i[A+372>>2]=0,!(A=i[e+32>>2])))break e;-1!=(0|(t=i[A+400>>2]))&&(i[e+424>>2]=t),i[e+420>>2]=0,m[A+16>>3]=m[A+392>>3]*+h[A+4>>2]+m[A+16>>3];break e}a[e+416|0]=1}else r=m[A+392>>3]+m[e+40>>3],m[e+40>>3]=r,m[A+16>>3]=r}return 0|(o[e+416|0]?0:e+40)},function(e){return i[424+(e|=0)>>2]},function(e){var A=0;return i[(e|=0)>>2]=132304,(A=i[e+28>>2])&&ye(A),(A=i[e+32>>2])&&ye(A),qA(e+4|0),0|e},function(e){var A=0;i[(e|=0)>>2]=132304,(A=i[e+28>>2])&&ye(A),(A=i[e+32>>2])&&ye(A),qA(e+4|0),ye(e)},function(e,A,t){A|=0,t|=0;var r=0,n=0,o=0,l=0,c=0,g=0,u=0,d=0,f=0,p=0,h=0,C=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0;if(!i[1088+(e|=0)>>2])return 0;e:if(A){for(u=e+648|0,g=e- -64|0;;){if(r=i[e+1088>>2],!(r=0|Tn[i[i[r>>2]+4>>2]](r)))break e;if(n=rA(m[e+32>>3]+m[r+16>>3]/+i[e+24>>2]),m[e+32>>3]=n,n=st(6.283185307179586*n),n=rA(m[e+16>>3]+m[r>>3]*(.06*n*m[r+8>>3]+1)/+i[e+8>>2]),m[e+16>>3]=n,c=rr(i[56848],i[56849],1284865837,1481765933),o=Z,o=(c=c+1|0)?o:o+1|0,i[56848]=c,i[56849]=o,l=.75*m[e+40>>3]+ +(o>>>1|0)/2147483647,m[e+40>>3]=l,d=m[r+24>>3],o=n>=m[r+32>>3],a[e+48|0]=o,l=(p=d)*(d=.2*l),l=OA(g+512|0,OA(g+440|0,n=m[r+352>>3]*(d*m[r+48>>3]+m[r+40>>3]*(n+n+-1+(o?l:.01*l)))*.5,m[r+104>>3],m[r+168>>3]),m[r+112>>3],m[r+176>>3]),l=OA(g+8|0,OA(g+80|0,OA(g+152|0,OA(g+224|0,OA(g+296|0,OA(g+368|0,l==l?(l-n)*m[r+184>>3]+n:n,m[r+96>>3],m[r+160>>3]),m[r+88>>3],m[r+152>>3]),m[r+80>>3],m[r+144>>3]),m[r+72>>3],m[r+136>>3]),m[r+64>>3],m[r+128>>3]),m[r+56>>3],m[r+120>>3]),c=rr(i[56848],i[56849],1284865837,1481765933),o=Z,o=(c=c+1|0)?o:o+1|0,i[56848]=c,i[56849]=o,n=.75*m[e+56>>3]+ +(o>>>1|0)/2147483647,m[e+56>>3]=n,o=(f<<1)+t|0,d=OA(u+8|0,n=m[r+352>>3]*(m[r+192>>3]*(.3*n))*.5,m[r+200>>3],m[r+248>>3]),h=m[r+296>>3],C=OA(u+80|0,n,m[r+208>>3],m[r+256>>3]),b=m[r+304>>3],w=OA(u+152|0,n,m[r+216>>3],m[r+264>>3]),k=m[r+312>>3],x=OA(u+224|0,n,m[r+224>>3],m[r+272>>3]),B=m[r+320>>3],v=OA(u+296|0,n,m[r+232>>3],m[r+280>>3]),y=m[r+328>>3],p=l,l=(OA(u+368|0,n,m[r+240>>3],m[r+288>>3])-n)*m[r+336>>3]+(y*(v-n)+(B*(x-n)+(k*(w-n)+(b*(C-n)+(h*(d-n)+0))))),n=(p+(n==n?(n-l)*m[r+344>>3]+l:l))*m[r+360>>3]*4e3,r=(0|(r=I(n)<2147483648?~~n:-2147483648))>=32e3?32e3:r,s[o>>1]=(0|r)<=-32e3?-32e3:r,(0|(f=f+1|0))==(0|A))break}f=A}return 0|(A>>>0>f>>>0?f:A)},function(e,A){A|=0,i[1088+(e|=0)>>2]=A},En,Gn,Mn,function(e,A,t,r){return Z=0,0}],Qn.grow=function(e){var A=this.length;return this.length=this.length+e,A},Qn.set=function(e,A){this[e]=A},Qn.get=function(e){return this[e]},Qn);return{v:function(){var e,A=0;j=e=j-16|0,0|R(e+12|0,e+8|0)||(A=se(4+(i[e+12>>2]<<2)|0),i[56800]=A,A&&(!(A=se(i[e+8>>2]))||(i[i[56800]+(i[e+12>>2]<<2)>>2]=0,0|H(i[56800],0|A)))&&(i[56800]=0)),j=e+16|0,i[56841]=227236,i[56823]=42},w:vn,x:xn,y:function(e,A){A|=0,i[(e|=0)>>2]=A},z:function(e,A){return A|=0,a[i[4+(e|=0)>>2]+A|0]},A:wn,B:hn,C:function(e){return o[12+(e|=0)|0]},D:function(e,A){A|=0,a[12+(e|=0)|0]=A},E:function(e){return o[13+(e|=0)|0]},F:function(e,A){A|=0,a[13+(e|=0)|0]=A},G:function(e){return o[14+(e|=0)|0]},H:function(e,A){A|=0,a[14+(e|=0)|0]=A},I:function(e){return o[15+(e|=0)|0]},J:function(e,A){A|=0,a[15+(e|=0)|0]=A},K:bn,L:function(e,A){A|=0,i[16+(e|=0)>>2]=A},M:In,N:function(e,A){A|=0,i[20+(e|=0)>>2]=A},O:vn,P:xn,Q:kn,R:wn,S:Cn,T:bn,U:In,V:function(e){return i[24+(e|=0)>>2]},W:vn,X:function(){var e,A=0,t=0,r=0,n=0,l=0,c=0,g=0,u=0,d=0,f=0,b=0,w=0,k=0,x=0,B=0,v=0,y=0,E=0,M=0,D=0,Q=0,T=0,P=0;if(e=Nr(20),i[e+16>>2]=0,i[e+8>>2]=175,i[e+12>>2]=50,!(A=i[33208])){j=A=(j=M=j-16|0)-80|0;e:{if(t=Tt(84292)){if(i[A+32>>2]=t,Ct(137584,160,85959,A+32|0),-31==(0|sr(137584)))break e;if(i[A+16>>2]=t,Ct(137584,160,86031,A+16|0),-31==(0|sr(137584)))break e}(t=Tt(84619))&&(i[A>>2]=t,Ct(137584,160,85959,A),-31==(0|sr(137584)))||(t=o[84826]|o[84827]<<8|o[84828]<<16|o[84829]<<24,i[34396]=o[84822]|o[84823]<<8|o[84824]<<16|o[84825]<<24,i[34397]=t,s[68804]=o[84846]|o[84847]<<8,t=o[84842]|o[84843]<<8|o[84844]<<16|o[84845]<<24,i[34400]=o[84838]|o[84839]<<8|o[84840]<<16|o[84841]<<24,i[34401]=t,t=o[84834]|o[84835]<<8|o[84836]<<16|o[84837]<<24,i[34398]=o[84830]|o[84831]<<8|o[84832]<<16|o[84833]<<24,i[34399]=t)}if(j=A+80|0,i[M+12>>2]=0,n=M+12|0,j=g=j-16|0,i[g+12>>2]=22050,pA(85144)||pA(85315)||pA(85473)||pA(85698),b=g+12|0,j=l=j-16|0,i[l+12>>2]=0,!((A=WA(137832,84262,0,n))||(A=WA(137836,84420,0,n))||(A=WA(137840,84813,0,n))||(A=WA(137820,85016,l+12|0,n))))if(i[34454]=h[l+12>>2]/68,t=i[34460],i[34456]=t,t&&83969==(0|(d=o[0|t]|o[t+1|0]<<8|o[t+2|0]<<16|o[t+3|0]<<24))){if(w=o[t+4|0]|o[t+5|0]<<8|o[t+6|0]<<16|o[t+7|0]<<24,t=i[34458],x=o[0|t],i[34461]=x,x)for(A=t+4|0,d=0;r=C(d,44)+137856|0,n=o[0|A],i[r+36>>2]=n,i[r+40>>2]=o[A+1|0],c=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,t=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a[0|r]=t,a[r+1|0]=t>>>8,a[r+2|0]=t>>>16,a[r+3|0]=t>>>24,a[r+4|0]=c,a[r+5|0]=c>>>8,a[r+6|0]=c>>>16,a[r+7|0]=c>>>24,c=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,t=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,a[r+8|0]=t,a[r+9|0]=t>>>8,a[r+10|0]=t>>>16,a[r+11|0]=t>>>24,a[r+12|0]=c,a[r+13|0]=c>>>8,a[r+14|0]=c>>>16,a[r+15|0]=c>>>24,c=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,t=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,a[r+16|0]=t,a[r+17|0]=t>>>8,a[r+18|0]=t>>>16,a[r+19|0]=t>>>24,a[r+20|0]=c,a[r+21|0]=c>>>8,a[r+22|0]=c>>>16,a[r+23|0]=c>>>24,c=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,t=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,a[r+24|0]=t,a[r+25|0]=t>>>8,a[r+26|0]=t>>>16,a[r+27|0]=t>>>24,a[r+28|0]=c,a[r+29|0]=c>>>8,a[r+30|0]=c>>>16,a[r+31|0]=c>>>24,t=A+36|0,i[r+32>>2]=t,A=t+(n<<4)|0,(0|x)!=(0|(d=d+1|0)););(0|x)<=i[34457]&&(i[34457]=0),A=0,b&&(i[b>>2]=w)}else e:{A:{if(n){if(t=i[n>>2]){ye(i[t+4>>2]),A=i[n>>2];break A}if(A=se(16),i[n>>2]=A,A)break A;A=48}else A=268436223;break e}i[A>>2]=1,i[A+4>>2]=_r(137584),t=i[n>>2],i[t+12>>2]=83969,i[t+8>>2]=d,A=268436223}if(j=l+16|0,t=A,!A){if(b=i[g+12>>2],i[50754]=b,i[50759]=0,i[50760]=134217728/(0|b),i[50762]=0,i[50763]=0,i[50765]=2147483647,i[50781]=100,i[50779]=32,i[50761]=(b<<6)/(0|b),A=i[26385],i[50784]=i[26384],i[50785]=A,A=i[26387],i[50786]=i[26386],i[50787]=A,A=i[26389],i[50788]=i[26388],i[50789]=A,A=i[26391],i[50790]=i[26390],i[50791]=A,A=i[26393],i[50792]=i[26392],i[50793]=A,A=i[26395],i[50794]=i[26394],i[50795]=A,A=i[26397],i[50796]=i[26396],i[50797]=A,i[50798]=i[26398],w=(0|(A=(0|(n=C(b,60)))/12800|0))>=128?128:A,i[50799]=w,i[50800]=(0|w)/2,!(22050==(0|b)|(0|n)<12800)){if(b=1&(A=(0|w)<=1?1:w),y=+(0|w),d=0,(0|w)>=2)for(w=2147483646&A,A=0;B=d+132160|0,u=127*(1-nt(6.283185307179586*+(0|d)/y)),k=I(u)<2147483648?~~u:-2147483648,a[0|B]=k,B=132160+(n=1|d)|0,u=127*(1-nt(6.283185307179586*+(0|n)/y)),k=I(u)<2147483648?~~u:-2147483648,a[0|B]=k,d=d+2|0,(0|w)!=(0|(A=A+2|0)););b&&(A=d+132160|0,u=127*(1-nt(6.283185307179586*+(0|d)/y)),B=I(u)<2147483648?~~u:-2147483648,a[0|A]=B)}if(i[50801]=105792,i[56797]=Le(),i[55964]=38,i[55921]=1,i[55918]=22050,i[56606]=0,i[55960]=110928,i[55958]=0,i[55959]=1074266112,i[55956]=100,i[55922]=20,i[55923]=220,i[55916]=1,i[55917]=0,Er(),i[56244]=0,i[56245]=0,i[55928]=0,i[55926]=0,i[55927]=0,i[55924]=0,i[56246]=0,i[56247]=0,i[56260]=0,i[56261]=0,i[56262]=0,i[56263]=0,i[56276]=0,i[56277]=0,i[56278]=0,i[56279]=0,i[55974]=0,i[55975]=0,i[55972]=0,i[55973]=0,y=-3.141592653589793/+(0|(A=i[55918])),m[27967]=y,n=(0|C(A,630))/1e4|0,i[55920]=n,A=(0|C(A,950))/1e4|0,i[55919]=A,u=-2*y,m[27968]=u,y=(T=$e(y*+(0|n)))*-T,m[28129]=y,u=T*nt(u*+(0|A)),u+=u,m[28128]=u,m[28127]=1-u-y,i[55990]=0,i[55991]=0,i[55988]=0,i[55989]=0,i[56006]=0,i[56007]=0,i[56004]=0,i[56005]=0,i[56022]=0,i[56023]=0,i[56020]=0,i[56021]=0,i[56038]=0,i[56039]=0,i[56036]=0,i[56037]=0,i[56054]=0,i[56055]=0,i[56052]=0,i[56053]=0,i[56070]=0,i[56071]=0,i[56068]=0,i[56069]=0,i[56086]=0,i[56087]=0,i[56084]=0,i[56085]=0,i[56102]=0,i[56103]=0,i[56100]=0,i[56101]=0,i[56118]=0,i[56119]=0,i[56116]=0,i[56117]=0,i[56134]=0,i[56135]=0,i[56132]=0,i[56133]=0,i[56150]=0,i[56151]=0,i[56148]=0,i[56149]=0,i[56166]=0,i[56167]=0,i[56164]=0,i[56165]=0,i[56182]=0,i[56183]=0,i[56180]=0,i[56181]=0,i[56198]=0,i[56199]=0,i[56196]=0,i[56197]=0,i[56214]=0,i[56215]=0,i[56212]=0,i[56213]=0,i[56230]=0,i[56231]=0,i[56228]=0,i[56229]=0,i[56639]=59,i[56640]=59,i[56629]=0,i[56630]=59,i[56619]=89,i[56620]=160,i[56609]=280,i[56610]=688,i[56611]=1064,i[56621]=70,i[56631]=59,i[56612]=2806,i[56613]=3260,i[56622]=160,i[56623]=200,i[56632]=59,i[56633]=59,i[56641]=89,i[56642]=149,i[56643]=200,i[56644]=200,i[56634]=59,i[56635]=59,i[56624]=200,i[56625]=500,i[56614]=3700,i[56615]=6500,i[56645]=500,i[56646]=0,i[56616]=7e3,i[56626]=500,i[56636]=0,i[56647]=0,i[56637]=0,i[56627]=500,i[56617]=8e3,i[56669]=89,i[56648]=0,i[56638]=0,i[56628]=89,i[56618]=280,i[56657]=62,i[56655]=0,i[56656]=0,i[56653]=50,i[56654]=0,i[56651]=0,i[56652]=0,i[56649]=0,i[56650]=40,i[56607]=1e3,i[56608]=59,j=l=j-416|0,i[l+16>>2]=137584,i[l+20>>2]=47,i[l+24>>2]=85952,vt(A=l+240|0,85699,l+16|0),c=eA(A,86034)){if(BA(l+240|0,170,c))for(b=5|(A=l+240|0),w=10|A;47!=o[l+240|0]&&(1701736308!=i[l+240>>2]?Dt(l+240|0,86614,9)||(i[l+4>>2]=l+32,i[l>>2]=l+239,2==(0|ae(w,86829,l))&&(n=i[34064],i[(x=136272+(n<<4)|0)>>2]=a[l+239|0],A=_r(l+32|0),i[34064]=n+1,i[x+12>>2]=A,i[x+4>>2]=0)):(j=A=j-48|0,i[32960]=-1,i[32961]=-1,i[32970]=-1,i[32971]=-1,i[32968]=-1,i[32969]=-1,i[32966]=-1,i[32967]=-1,i[32964]=-1,i[32965]=-1,i[32962]=-1,i[32963]=-1,i[A+36>>2]=131876,i[A+32>>2]=131872,i[A+28>>2]=131868,i[A+24>>2]=131864,i[A+20>>2]=131860,i[A+16>>2]=131856,i[A+12>>2]=131852,i[A+8>>2]=131848,i[A+4>>2]=131844,i[A>>2]=131840,ae(b,84222,A),j=A+48|0)),BA(l+240|0,170,c););cr(c)}j=l+416|0,i[50297]=0,i[50298]=0,i[50301]=0,i[50302]=0,i[50299]=0,i[50300]=0,ft(0,85698),i[36425]=0,i[36424]=0,i[36426]=0,i[36427]=-1,$r(),Qe(0),r=i[25690],i[34062]=r,f=i[25689],l=i[25688],i[34060]=l,i[34061]=f,v=i[25687],c=i[25686],i[34058]=c,i[34059]=v,E=i[25685],x=i[25684],i[34056]=x,i[34057]=E,D=i[25683],b=i[25682],i[34054]=b,i[34055]=D,Q=i[25681],w=i[25680],i[34052]=w,i[34053]=Q,k=i[25679],n=i[25678],i[34050]=n,i[34051]=k,B=i[25677],A=i[25676],i[34048]=A,i[34049]=B,i[33729]=A,i[33730]=B,i[33731]=n,i[33732]=k,i[33733]=w,i[33734]=Q,i[33735]=b,i[33736]=D,i[33737]=x,i[33738]=E,i[33739]=c,i[33740]=v,i[33741]=l,i[33742]=f,i[33743]=r,SA(1,175),SA(2,100),SA(6,i[47200]),SA(5,i[47201]),SA(7,0),i[47198]=0,i[47197]=0,u=+G()/1e3,n=rr(A=I(u)<0x8000000000000000?~~u>>>0:0,0,1103515245,0),A=Z,A=(n=n+12345|0)>>>0<12345?A+1|0:A,i[33209]=gn(n,A)}if(j=g+16|0,t){B=i[30450],D=i[M+12>>2],g=48+(f=j-560|0)|0,j=r=(j=f)-16|0;e:{A:switch(0|Zr(t-268435967|0,24)){case 0:fn(g,84133,512);break e;case 1:fn(g,84580,512);break e;case 2:fn(g,84747,512);break e;case 3:fn(g,85084,512);break e;case 4:fn(g,85251,512);break e;case 5:fn(g,85380,512);break e;case 6:fn(g,85607,512);break e;case 7:fn(g,85722,512);break e;case 8:fn(g,85913,512);break e;case 9:fn(g,86046,512);break e;case 10:fn(g,86153,512);break e;case 11:fn(g,86678,512);break e;case 12:fn(g,86773,512);break e;case 14:fn(g,86958,512);break e;case 15:fn(g,87071,512);break e}if(1879048192&t)i[r>>2]=t,Ct(g,512,87182,r);else{if(d=0,l=p[123728+((t>>>0<=153?t:0)<<1)>>1]+121804|0,t=i[i[56841]+20>>2]){Q=i[t+4>>2],v=i[t>>2],E=i[v>>2]+1794895138|0,k=tn(i[v+8>>2],E),n=tn(i[v+12>>2],E),A=tn(i[v+16>>2],E);A:if(!(Q>>>2>>>0<=k>>>0||3&(A|n)|(t=Q-(k<<2)|0)>>>0<=n>>>0|A>>>0>=t>>>0))for(b=A>>>2|0,w=n>>>2|0;;){if(x=tn(i[(t=((A=(n=(c=k>>>1|0)+P|0)<<1)+w<<2)+v|0)>>2],E),(t=tn(i[t+4>>2],E))>>>0>=Q>>>0|x>>>0>=Q-t>>>0|o[(t+x|0)+v|0])break A;if(!(t=hr(l,t+v|0))){if(A=tn(i[(t=(A+b<<2)+v|0)>>2],E),(t=tn(i[t+4>>2],E))>>>0>=Q>>>0|A>>>0>=Q-t>>>0)break A;d=o[(A+t|0)+v|0]?0:t+v|0;break A}if(1==(0|k))break A;k=(t=(0|t)<0)?c:k-c|0,P=t?P:n}}if((t=Wt(A=d||l))>>>0>=512){_e(g,A,511),a[g+511|0]=0;break e}_e(g,A,t+1|0)}}j=r+16|0;e:if(D){A:switch(i[D>>2]){case 0:i[f+16>>2]=i[D+4>>2],i[f+20>>2]=f+48,en(B,87384,f+16|0);break e;case 1:break A;default:break e}A=i[D+12>>2],t=i[D+8>>2],i[f+36>>2]=i[D+4>>2],Z=t,i[f+40>>2]=A,i[f+44>>2]=Z,i[f+32>>2]=f+48,en(B,87521,f+32|0)}else i[f>>2]=f+48,en(B,87700,f);j=f+560|0,-12!=(0|M)&&(t=i[M+12>>2])&&(ye(i[t+4>>2]),ye(i[M+12>>2]),i[M+12>>2]=0)}t=i[24806],i[34389]=0,i[32538]=t,t=(1e3+((t=C(i[50754],100))-((0|t)%1e3|0)|0)|0)/500|0,i[34390]=t,t=Oe(i[34391],t),i[34392]=t,t&&(i[34391]=t,i[34393]=40,(t=Oe(i[34388],1440))&&(i[34388]=t)),i[47198]=0,j=M+16|0,A=i[50754],i[33208]=A}return i[e+4>>2]=A,i[e>>2]=xA(),0|e},Y:function(e,A,t){e|=0,A|=0,t|=0,i[34440]=t,xr(3,i[e+12>>2]),xr(1,i[e+8>>2]),(e=i[e+16>>2])?At(e):Rt(1024),_(A),i[34440]=0},Z:function(e,A,t){return e|=0,A|=0,t|=0,i[34440]=0,(e=eA(t,1032))?(i[47195]=e,i[47197]=130,e||(i[47195]=i[30450]),_(A),i[47195]=0,i[47197]=0,i[47195]=i[30450],cr(e),0):-1},_:function(e){return 36},$:function(e,A,t){var r;return e|=0,A|=0,j=r=j-32|0,(t|=0)?(i[r+24>>2]=0,i[r+28>>2]=0,i[r+16>>2]=0,i[r+20>>2]=0,i[r+12>>2]=t,i[r+8>>2]=A,a[r+21|0]=0,A=At(r+8|0)):A=Rt(A),i[e+16>>2]=201188,j=r+32|0,0|A},aa:function(e,A,t,r){var n;return e|=0,A|=0,j=n=j-32|0,(t|=0)|(r|=0)?(i[n+24>>2]=0,i[n+28>>2]=0,i[n+16>>2]=0,i[n+20>>2]=0,i[n+12>>2]=t,i[n+8>>2]=A,a[n+22|0]=0,a[n+20|0]=r,A=At(n+8|0)):A=Rt(A),i[e+16>>2]=201188,j=n+32|0,0|A},ba:function(e,A,t,r,n){var s;return e|=0,A|=0,j=s=j-32|0,(r|=0)|(n|=0)|(t|=0)?(i[s+24>>2]=0,i[s+28>>2]=0,i[s+16>>2]=0,i[s+20>>2]=0,i[s+12>>2]=t,i[s+8>>2]=A,a[s+21|0]=n,a[s+20|0]=r,A=At(s+8|0)):A=Rt(A),i[e+16>>2]=201188,j=s+32|0,0|A},ca:function(e,A,t,r,n,s){var o;return e|=0,A|=0,j=o=j-32|0,(r|=0)|(n|=0)|(s|=0)|(t|=0)?(i[o+24>>2]=0,i[o+28>>2]=0,i[o+16>>2]=0,i[o+20>>2]=0,i[o+12>>2]=t,i[o+8>>2]=A,a[o+22|0]=s,a[o+21|0]=n,a[o+20|0]=r,A=At(o+8|0)):A=Rt(A),i[e+16>>2]=201188,j=o+32|0,0|A},da:function(e,A){return A|=0,i[i[(e|=0)>>2]+(A<<2)>>2]},ea:function(e,A,t){A|=0,t|=0,i[i[(e|=0)>>2]+(A<<2)>>2]=t},fa:kn,ga:wn,ha:hn,ia:Cn,ja:function(e,A){A|=0,i[12+(e|=0)>>2]=A},ka:vn,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:Tn,va:function(){return 227192},wa:ye,xa:se,ya:function(e){return(e|=0)?0|!!(0|IA(e,125228)):0}}}(e)}(A)},instantiate:function(e,A){return{then:function(t){var r=new b.Module(e);t({instance:new b.Instance(r,A)})}}},RuntimeError:Error};"object"!=typeof b&&K("no native wasm support detected");var I=!1;function w(e,A){e||K(A)}var k,x,B,v,y,E,M,G="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function D(e,A,t){for(var r=A+t,n=A;e[n]&&!(n>=r);)++n;if(n-A>16&&e.buffer&&G)return G.decode(e.subarray(A,n));for(var a="";A<n;){var s=e[A++];if(128&s){var i=63&e[A++];if(192!=(224&s)){var o=63&e[A++];if((s=224==(240&s)?(15&s)<<12|i<<6|o:(7&s)<<18|i<<12|o<<6|63&e[A++])<65536)a+=String.fromCharCode(s);else{var l=s-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a}function Q(e,A){return e?D(x,e,A):""}function T(e,A,t,r){if(!(r>0))return 0;for(var n=t,a=t+r-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s)),i<=127){if(t>=a)break;A[t++]=i}else if(i<=2047){if(t+1>=a)break;A[t++]=192|i>>6,A[t++]=128|63&i}else if(i<=65535){if(t+2>=a)break;A[t++]=224|i>>12,A[t++]=128|i>>6&63,A[t++]=128|63&i}else{if(t+3>=a)break;A[t++]=240|i>>18,A[t++]=128|i>>12&63,A[t++]=128|i>>6&63,A[t++]=128|63&i}}return A[t]=0,t-n}function P(e){for(var A=0,t=0;t<e.length;++t){var r=e.charCodeAt(t);r<=127?A++:r<=2047?A+=2:r>=55296&&r<=57343?(A+=4,++t):A+=3}return A}var z,F=c.INITIAL_MEMORY||16777216;z=(C=c.wasmMemory?c.wasmMemory:new b.Memory({initial:F/65536,maximum:F/65536})).buffer,c.HEAP8=k=new Int8Array(z),c.HEAP16=B=new Int16Array(z),c.HEAP32=v=new Int32Array(z),c.HEAPU8=x=new Uint8Array(z),c.HEAPU16=new Uint16Array(z),c.HEAPU32=y=new Uint32Array(z),c.HEAPF32=E=new Float32Array(z),c.HEAPF64=M=new Float64Array(z),F=C.buffer.byteLength;var S=[],N=[],O=[],L=!1;function Y(e){N.unshift(e)}var H,R,W=0,V=null;function j(e){W++,c.monitorRunDependencies&&c.monitorRunDependencies(W)}function U(e){if(W--,c.monitorRunDependencies&&c.monitorRunDependencies(W),0==W&&V){var A=V;V=null,A()}}function K(e){throw c.onAbort&&c.onAbort(e),m(e="Aborted("+e+")"),I=!0,e+=". Build with -sASSERTIONS for more info.",new b.RuntimeError(e)}function Z(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function X(e){for(;e.length>0;)e.shift()(c)}function q(e,A="i8"){switch(A.endsWith("*")&&(A="*"),A){case"i1":case"i8":return k[0|e];case"i16":return B[e>>1];case"i32":case"i64":return v[e>>2];case"float":return E[e>>2];case"double":return M[e>>3];case"*":return y[e>>2];default:K("invalid type for getValue: "+A)}return null}function J(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){y[this.ptr+4>>2]=e},this.get_type=function(){return y[this.ptr+4>>2]},this.set_destructor=function(e){y[this.ptr+8>>2]=e},this.get_destructor=function(){return y[this.ptr+8>>2]},this.set_refcount=function(e){v[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,k[this.ptr+12|0]=e},this.get_caught=function(){return 0!=k[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,k[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=k[this.ptr+13|0]},this.init=function(e,A){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(A),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=v[this.ptr>>2];v[this.ptr>>2]=e+1},this.release_ref=function(){var e=v[this.ptr>>2];return v[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){y[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return y[this.ptr+16>>2]},this.get_exception_ptr=function(){if(cA(this.get_type()))return y[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var _={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,A)=>{for(var t=0,r=e.length-1;r>=0;r--){var n=e[r];"."===n?e.splice(r,1):".."===n?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(A)for(;t;t--)e.unshift("..");return e},normalize:e=>{var A=_.isAbs(e),t="/"===e.substr(-1);return(e=_.normalizeArray(e.split("/").filter((e=>!!e)),!A).join("/"))||A||(e="."),e&&t&&(e+="/"),(A?"/":"")+e},dirname:e=>{var A=_.splitPath(e),t=A[0],r=A[1];return t||r?(r&&(r=r.substr(0,r.length-1)),t+r):"."},basename:e=>{if("/"===e)return"/";var A=(e=(e=_.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===A?e:e.substr(A+1)},join:function(){var e=Array.prototype.slice.call(arguments);return _.normalize(e.join("/"))},join2:(e,A)=>_.normalize(e+"/"+A)},$={resolve:function(){for(var e="",A=!1,t=arguments.length-1;t>=-1&&!A;t--){var r=t>=0?arguments[t]:ne.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";e=r+"/"+e,A=_.isAbs(r)}return(A?"/":"")+(e=_.normalizeArray(e.split("/").filter((e=>!!e)),!A).join("/"))||"."},relative:(e,A)=>{function t(e){for(var A=0;A<e.length&&""===e[A];A++);for(var t=e.length-1;t>=0&&""===e[t];t--);return A>t?[]:e.slice(A,t-A+1)}e=$.resolve(e).substr(1),A=$.resolve(A).substr(1);for(var r=t(e.split("/")),n=t(A.split("/")),a=Math.min(r.length,n.length),s=a,i=0;i<a;i++)if(r[i]!==n[i]){s=i;break}var o=[];for(i=s;i<r.length;i++)o.push("..");return(o=o.concat(n.slice(s))).join("/")}};function ee(e,A,t){var r=P(e)+1,n=new Array(r),a=T(e,n,0,n.length);return A&&(n.length=a),n}var Ae={ttys:[],init:function(){},shutdown:function(){},register:function(e,A){Ae.ttys[e]={input:[],output:[],ops:A},ne.registerDevice(e,Ae.stream_ops)},stream_ops:{open:function(e){var A=Ae.ttys[e.node.rdev];if(!A)throw new ne.ErrnoError(43);e.tty=A,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,A,t,r,n){if(!e.tty||!e.tty.ops.get_char)throw new ne.ErrnoError(60);for(var a=0,s=0;s<r;s++){var i;try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new ne.ErrnoError(29)}if(void 0===i&&0===a)throw new ne.ErrnoError(6);if(null==i)break;a++,A[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,A,t,r,n){if(!e.tty||!e.tty.ops.put_char)throw new ne.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,A[t+a])}catch(e){throw new ne.ErrnoError(29)}return r&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{put_char:function(e,A){null===A||10===A?(h(D(e.output,0)),e.output=[]):0!=A&&e.output.push(A)},fsync:function(e){e.output&&e.output.length>0&&(h(D(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,A){null===A||10===A?(m(D(e.output,0)),e.output=[]):0!=A&&e.output.push(A)},fsync:function(e){e.output&&e.output.length>0&&(m(D(e.output,0)),e.output=[])}}};function te(e){K()}var re={ops_table:null,mount:function(e){return re.createNode(null,"/",16895,0)},createNode:function(e,A,t,r){if(ne.isBlkdev(t)||ne.isFIFO(t))throw new ne.ErrnoError(63);re.ops_table||(re.ops_table={dir:{node:{getattr:re.node_ops.getattr,setattr:re.node_ops.setattr,lookup:re.node_ops.lookup,mknod:re.node_ops.mknod,rename:re.node_ops.rename,unlink:re.node_ops.unlink,rmdir:re.node_ops.rmdir,readdir:re.node_ops.readdir,symlink:re.node_ops.symlink},stream:{llseek:re.stream_ops.llseek}},file:{node:{getattr:re.node_ops.getattr,setattr:re.node_ops.setattr},stream:{llseek:re.stream_ops.llseek,read:re.stream_ops.read,write:re.stream_ops.write,allocate:re.stream_ops.allocate,mmap:re.stream_ops.mmap,msync:re.stream_ops.msync}},link:{node:{getattr:re.node_ops.getattr,setattr:re.node_ops.setattr,readlink:re.node_ops.readlink},stream:{}},chrdev:{node:{getattr:re.node_ops.getattr,setattr:re.node_ops.setattr},stream:ne.chrdev_stream_ops}});var n=ne.createNode(e,A,t,r);return ne.isDir(n.mode)?(n.node_ops=re.ops_table.dir.node,n.stream_ops=re.ops_table.dir.stream,n.contents={}):ne.isFile(n.mode)?(n.node_ops=re.ops_table.file.node,n.stream_ops=re.ops_table.file.stream,n.usedBytes=0,n.contents=null):ne.isLink(n.mode)?(n.node_ops=re.ops_table.link.node,n.stream_ops=re.ops_table.link.stream):ne.isChrdev(n.mode)&&(n.node_ops=re.ops_table.chrdev.node,n.stream_ops=re.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[A]=n,e.timestamp=n.timestamp),n},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,A){var t=e.contents?e.contents.length:0;if(!(t>=A)){A=Math.max(A,t*(t<1048576?2:1.125)>>>0),0!=t&&(A=Math.max(A,256));var r=e.contents;e.contents=new Uint8Array(A),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,A){if(e.usedBytes!=A)if(0==A)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(A),t&&e.contents.set(t.subarray(0,Math.min(A,e.usedBytes))),e.usedBytes=A}},node_ops:{getattr:function(e){var A={};return A.dev=ne.isChrdev(e.mode)?e.id:1,A.ino=e.id,A.mode=e.mode,A.nlink=1,A.uid=0,A.gid=0,A.rdev=e.rdev,ne.isDir(e.mode)?A.size=4096:ne.isFile(e.mode)?A.size=e.usedBytes:ne.isLink(e.mode)?A.size=e.link.length:A.size=0,A.atime=new Date(e.timestamp),A.mtime=new Date(e.timestamp),A.ctime=new Date(e.timestamp),A.blksize=4096,A.blocks=Math.ceil(A.size/A.blksize),A},setattr:function(e,A){void 0!==A.mode&&(e.mode=A.mode),void 0!==A.timestamp&&(e.timestamp=A.timestamp),void 0!==A.size&&re.resizeFileStorage(e,A.size)},lookup:function(e,A){throw ne.genericErrors[44]},mknod:function(e,A,t,r){return re.createNode(e,A,t,r)},rename:function(e,A,t){if(ne.isDir(e.mode)){var r;try{r=ne.lookupNode(A,t)}catch(e){}if(r)for(var n in r.contents)throw new ne.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,A.contents[t]=e,A.timestamp=e.parent.timestamp,e.parent=A},unlink:function(e,A){delete e.contents[A],e.timestamp=Date.now()},rmdir:function(e,A){var t=ne.lookupNode(e,A);for(var r in t.contents)throw new ne.ErrnoError(55);delete e.contents[A],e.timestamp=Date.now()},readdir:function(e){var A=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&A.push(t);return A},symlink:function(e,A,t){var r=re.createNode(e,A,41471,0);return r.link=t,r},readlink:function(e){if(!ne.isLink(e.mode))throw new ne.ErrnoError(28);return e.link}},stream_ops:{read:function(e,A,t,r,n){var a=e.node.contents;if(n>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-n,r);if(s>8&&a.subarray)A.set(a.subarray(n,n+s),t);else for(var i=0;i<s;i++)A[t+i]=a[n+i];return s},write:function(e,A,t,r,n,a){if(!r)return 0;var s=e.node;if(s.timestamp=Date.now(),A.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=A.subarray(t,t+r),s.usedBytes=r,r;if(0===s.usedBytes&&0===n)return s.contents=A.slice(t,t+r),s.usedBytes=r,r;if(n+r<=s.usedBytes)return s.contents.set(A.subarray(t,t+r),n),r}if(re.expandFileStorage(s,n+r),s.contents.subarray&&A.subarray)s.contents.set(A.subarray(t,t+r),n);else for(var i=0;i<r;i++)s.contents[n+i]=A[t+i];return s.usedBytes=Math.max(s.usedBytes,n+r),r},llseek:function(e,A,t){var r=A;if(1===t?r+=e.position:2===t&&ne.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new ne.ErrnoError(28);return r},allocate:function(e,A,t){re.expandFileStorage(e.node,A+t),e.node.usedBytes=Math.max(e.node.usedBytes,A+t)},mmap:function(e,A,t,r,n){if(!ne.isFile(e.node.mode))throw new ne.ErrnoError(43);var a,s,i=e.node.contents;if(2&n||i.buffer!==k.buffer){if((t>0||t+A<i.length)&&(i=i.subarray?i.subarray(t,t+A):Array.prototype.slice.call(i,t,t+A)),s=!0,!(a=te()))throw new ne.ErrnoError(48);k.set(i,a)}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:function(e,A,t,r,n){return re.stream_ops.write(e,A,0,r,t,!1),0}}},ne={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,A={})=>{if(!(e=$.resolve(e)))return{path:"",node:null};if((A=Object.assign({follow_mount:!0,recurse_count:0},A)).recurse_count>8)throw new ne.ErrnoError(32);for(var t=e.split("/").filter((e=>!!e)),r=ne.root,n="/",a=0;a<t.length;a++){var s=a===t.length-1;if(s&&A.parent)break;if(r=ne.lookupNode(r,t[a]),n=_.join2(n,t[a]),ne.isMountpoint(r)&&(!s||s&&A.follow_mount)&&(r=r.mounted.root),!s||A.follow)for(var i=0;ne.isLink(r.mode);){var o=ne.readlink(n);if(n=$.resolve(_.dirname(n),o),r=ne.lookupPath(n,{recurse_count:A.recurse_count+1}).node,i++>40)throw new ne.ErrnoError(32)}}return{path:n,node:r}},getPath:e=>{for(var A;;){if(ne.isRoot(e)){var t=e.mount.mountpoint;return A?"/"!==t[t.length-1]?t+"/"+A:t+A:t}A=A?e.name+"/"+A:e.name,e=e.parent}},hashName:(e,A)=>{for(var t=0,r=0;r<A.length;r++)t=(t<<5)-t+A.charCodeAt(r)|0;return(e+t>>>0)%ne.nameTable.length},hashAddNode:e=>{var A=ne.hashName(e.parent.id,e.name);e.name_next=ne.nameTable[A],ne.nameTable[A]=e},hashRemoveNode:e=>{var A=ne.hashName(e.parent.id,e.name);if(ne.nameTable[A]===e)ne.nameTable[A]=e.name_next;else for(var t=ne.nameTable[A];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:(e,A)=>{var t=ne.mayLookup(e);if(t)throw new ne.ErrnoError(t,e);for(var r=ne.hashName(e.id,A),n=ne.nameTable[r];n;n=n.name_next){var a=n.name;if(n.parent.id===e.id&&a===A)return n}return ne.lookup(e,A)},createNode:(e,A,t,r)=>{var n=new ne.FSNode(e,A,t,r);return ne.hashAddNode(n),n},destroyNode:e=>{ne.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var A=ne.flagModes[e];if(void 0===A)throw new Error("Unknown file open mode: "+e);return A},flagsToPermissionString:e=>{var A=["r","w","rw"][3&e];return 512&e&&(A+="w"),A},nodePermissions:(e,A)=>ne.ignorePermissions||(!A.includes("r")||292&e.mode)&&(!A.includes("w")||146&e.mode)&&(!A.includes("x")||73&e.mode)?0:2,mayLookup:e=>ne.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate:(e,A)=>{try{return ne.lookupNode(e,A),20}catch(e){}return ne.nodePermissions(e,"wx")},mayDelete:(e,A,t)=>{var r;try{r=ne.lookupNode(e,A)}catch(e){return e.errno}var n=ne.nodePermissions(e,"wx");if(n)return n;if(t){if(!ne.isDir(r.mode))return 54;if(ne.isRoot(r)||ne.getPath(r)===ne.cwd())return 10}else if(ne.isDir(r.mode))return 31;return 0},mayOpen:(e,A)=>e?ne.isLink(e.mode)?32:ne.isDir(e.mode)&&("r"!==ne.flagsToPermissionString(A)||512&A)?31:ne.nodePermissions(e,ne.flagsToPermissionString(A)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,A=ne.MAX_OPEN_FDS)=>{for(var t=e;t<=A;t++)if(!ne.streams[t])return t;throw new ne.ErrnoError(33)},getStream:e=>ne.streams[e],createStream:(e,A,t)=>{ne.FSStream||(ne.FSStream=function(){this.shared={}},ne.FSStream.prototype={},Object.defineProperties(ne.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new ne.FSStream,e);var r=ne.nextfd(A,t);return e.fd=r,ne.streams[r]=e,e},closeStream:e=>{ne.streams[e]=null},chrdev_stream_ops:{open:e=>{var A=ne.getDevice(e.node.rdev);e.stream_ops=A.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new ne.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,A)=>e<<8|A,registerDevice:(e,A)=>{ne.devices[e]={stream_ops:A}},getDevice:e=>ne.devices[e],getMounts:e=>{for(var A=[],t=[e];t.length;){var r=t.pop();A.push(r),t.push.apply(t,r.mounts)}return A},syncfs:(e,A)=>{"function"==typeof e&&(A=e,e=!1),ne.syncFSRequests++,ne.syncFSRequests>1&&m("warning: "+ne.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=ne.getMounts(ne.root.mount),r=0;function n(e){return ne.syncFSRequests--,A(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,n(e));++r>=t.length&&n(null)}t.forEach((A=>{if(!A.type.syncfs)return a(null);A.type.syncfs(A,e,a)}))},mount:(e,A,t)=>{var r,n="/"===t,a=!t;if(n&&ne.root)throw new ne.ErrnoError(10);if(!n&&!a){var s=ne.lookupPath(t,{follow_mount:!1});if(t=s.path,r=s.node,ne.isMountpoint(r))throw new ne.ErrnoError(10);if(!ne.isDir(r.mode))throw new ne.ErrnoError(54)}var i={type:e,opts:A,mountpoint:t,mounts:[]},o=e.mount(i);return o.mount=i,i.root=o,n?ne.root=o:r&&(r.mounted=i,r.mount&&r.mount.mounts.push(i)),o},unmount:e=>{var A=ne.lookupPath(e,{follow_mount:!1});if(!ne.isMountpoint(A.node))throw new ne.ErrnoError(28);var t=A.node,r=t.mounted,n=ne.getMounts(r);Object.keys(ne.nameTable).forEach((e=>{for(var A=ne.nameTable[e];A;){var t=A.name_next;n.includes(A.mount)&&ne.destroyNode(A),A=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(r);t.mount.mounts.splice(a,1)},lookup:(e,A)=>e.node_ops.lookup(e,A),mknod:(e,A,t)=>{var r=ne.lookupPath(e,{parent:!0}).node,n=_.basename(e);if(!n||"."===n||".."===n)throw new ne.ErrnoError(28);var a=ne.mayCreate(r,n);if(a)throw new ne.ErrnoError(a);if(!r.node_ops.mknod)throw new ne.ErrnoError(63);return r.node_ops.mknod(r,n,A,t)},create:(e,A)=>(A=void 0!==A?A:438,A&=4095,A|=32768,ne.mknod(e,A,0)),mkdir:(e,A)=>(A=void 0!==A?A:511,A&=1023,A|=16384,ne.mknod(e,A,0)),mkdirTree:(e,A)=>{for(var t=e.split("/"),r="",n=0;n<t.length;++n)if(t[n]){r+="/"+t[n];try{ne.mkdir(r,A)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,A,t)=>(void 0===t&&(t=A,A=438),A|=8192,ne.mknod(e,A,t)),symlink:(e,A)=>{if(!$.resolve(e))throw new ne.ErrnoError(44);var t=ne.lookupPath(A,{parent:!0}).node;if(!t)throw new ne.ErrnoError(44);var r=_.basename(A),n=ne.mayCreate(t,r);if(n)throw new ne.ErrnoError(n);if(!t.node_ops.symlink)throw new ne.ErrnoError(63);return t.node_ops.symlink(t,r,e)},rename:(e,A)=>{var t,r,n=_.dirname(e),a=_.dirname(A),s=_.basename(e),i=_.basename(A);if(t=ne.lookupPath(e,{parent:!0}).node,r=ne.lookupPath(A,{parent:!0}).node,!t||!r)throw new ne.ErrnoError(44);if(t.mount!==r.mount)throw new ne.ErrnoError(75);var o,l=ne.lookupNode(t,s),c=$.relative(e,a);if("."!==c.charAt(0))throw new ne.ErrnoError(28);if("."!==(c=$.relative(A,n)).charAt(0))throw new ne.ErrnoError(55);try{o=ne.lookupNode(r,i)}catch(e){}if(l!==o){var g=ne.isDir(l.mode),u=ne.mayDelete(t,s,g);if(u)throw new ne.ErrnoError(u);if(u=o?ne.mayDelete(r,i,g):ne.mayCreate(r,i))throw new ne.ErrnoError(u);if(!t.node_ops.rename)throw new ne.ErrnoError(63);if(ne.isMountpoint(l)||o&&ne.isMountpoint(o))throw new ne.ErrnoError(10);if(r!==t&&(u=ne.nodePermissions(t,"w")))throw new ne.ErrnoError(u);ne.hashRemoveNode(l);try{t.node_ops.rename(l,r,i)}catch(e){throw e}finally{ne.hashAddNode(l)}}},rmdir:e=>{var A=ne.lookupPath(e,{parent:!0}).node,t=_.basename(e),r=ne.lookupNode(A,t),n=ne.mayDelete(A,t,!0);if(n)throw new ne.ErrnoError(n);if(!A.node_ops.rmdir)throw new ne.ErrnoError(63);if(ne.isMountpoint(r))throw new ne.ErrnoError(10);A.node_ops.rmdir(A,t),ne.destroyNode(r)},readdir:e=>{var A=ne.lookupPath(e,{follow:!0}).node;if(!A.node_ops.readdir)throw new ne.ErrnoError(54);return A.node_ops.readdir(A)},unlink:e=>{var A=ne.lookupPath(e,{parent:!0}).node;if(!A)throw new ne.ErrnoError(44);var t=_.basename(e),r=ne.lookupNode(A,t),n=ne.mayDelete(A,t,!1);if(n)throw new ne.ErrnoError(n);if(!A.node_ops.unlink)throw new ne.ErrnoError(63);if(ne.isMountpoint(r))throw new ne.ErrnoError(10);A.node_ops.unlink(A,t),ne.destroyNode(r)},readlink:e=>{var A=ne.lookupPath(e).node;if(!A)throw new ne.ErrnoError(44);if(!A.node_ops.readlink)throw new ne.ErrnoError(28);return $.resolve(ne.getPath(A.parent),A.node_ops.readlink(A))},stat:(e,A)=>{var t=ne.lookupPath(e,{follow:!A}).node;if(!t)throw new ne.ErrnoError(44);if(!t.node_ops.getattr)throw new ne.ErrnoError(63);return t.node_ops.getattr(t)},lstat:e=>ne.stat(e,!0),chmod:(e,A,t)=>{var r;if(!(r="string"==typeof e?ne.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new ne.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&A|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,A)=>{ne.chmod(e,A,!0)},fchmod:(e,A)=>{var t=ne.getStream(e);if(!t)throw new ne.ErrnoError(8);ne.chmod(t.node,A)},chown:(e,A,t,r)=>{var n;if(!(n="string"==typeof e?ne.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new ne.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,A,t)=>{ne.chown(e,A,t,!0)},fchown:(e,A,t)=>{var r=ne.getStream(e);if(!r)throw new ne.ErrnoError(8);ne.chown(r.node,A,t)},truncate:(e,A)=>{if(A<0)throw new ne.ErrnoError(28);var t;if(!(t="string"==typeof e?ne.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new ne.ErrnoError(63);if(ne.isDir(t.mode))throw new ne.ErrnoError(31);if(!ne.isFile(t.mode))throw new ne.ErrnoError(28);var r=ne.nodePermissions(t,"w");if(r)throw new ne.ErrnoError(r);t.node_ops.setattr(t,{size:A,timestamp:Date.now()})},ftruncate:(e,A)=>{var t=ne.getStream(e);if(!t)throw new ne.ErrnoError(8);if(!(2097155&t.flags))throw new ne.ErrnoError(28);ne.truncate(t.node,A)},utime:(e,A,t)=>{var r=ne.lookupPath(e,{follow:!0}).node;r.node_ops.setattr(r,{timestamp:Math.max(A,t)})},open:(e,A,t)=>{if(""===e)throw new ne.ErrnoError(44);var r;if(t=void 0===t?438:t,t=64&(A="string"==typeof A?ne.modeStringToFlags(A):A)?4095&t|32768:0,"object"==typeof e)r=e;else{e=_.normalize(e);try{r=ne.lookupPath(e,{follow:!(131072&A)}).node}catch(e){}}var n=!1;if(64&A)if(r){if(128&A)throw new ne.ErrnoError(20)}else r=ne.mknod(e,t,0),n=!0;if(!r)throw new ne.ErrnoError(44);if(ne.isChrdev(r.mode)&&(A&=-513),65536&A&&!ne.isDir(r.mode))throw new ne.ErrnoError(54);if(!n){var a=ne.mayOpen(r,A);if(a)throw new ne.ErrnoError(a)}512&A&&!n&&ne.truncate(r,0),A&=-131713;var s=ne.createStream({node:r,path:ne.getPath(r),flags:A,seekable:!0,position:0,stream_ops:r.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!c.logReadFiles||1&A||(ne.readFiles||(ne.readFiles={}),e in ne.readFiles||(ne.readFiles[e]=1)),s},close:e=>{if(ne.isClosed(e))throw new ne.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ne.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,A,t)=>{if(ne.isClosed(e))throw new ne.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ne.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new ne.ErrnoError(28);return e.position=e.stream_ops.llseek(e,A,t),e.ungotten=[],e.position},read:(e,A,t,r,n)=>{if(r<0||n<0)throw new ne.ErrnoError(28);if(ne.isClosed(e))throw new ne.ErrnoError(8);if(1==(2097155&e.flags))throw new ne.ErrnoError(8);if(ne.isDir(e.node.mode))throw new ne.ErrnoError(31);if(!e.stream_ops.read)throw new ne.ErrnoError(28);var a=void 0!==n;if(a){if(!e.seekable)throw new ne.ErrnoError(70)}else n=e.position;var s=e.stream_ops.read(e,A,t,r,n);return a||(e.position+=s),s},write:(e,A,t,r,n,a)=>{if(r<0||n<0)throw new ne.ErrnoError(28);if(ne.isClosed(e))throw new ne.ErrnoError(8);if(!(2097155&e.flags))throw new ne.ErrnoError(8);if(ne.isDir(e.node.mode))throw new ne.ErrnoError(31);if(!e.stream_ops.write)throw new ne.ErrnoError(28);e.seekable&&1024&e.flags&&ne.llseek(e,0,2);var s=void 0!==n;if(s){if(!e.seekable)throw new ne.ErrnoError(70)}else n=e.position;var i=e.stream_ops.write(e,A,t,r,n,a);return s||(e.position+=i),i},allocate:(e,A,t)=>{if(ne.isClosed(e))throw new ne.ErrnoError(8);if(A<0||t<=0)throw new ne.ErrnoError(28);if(!(2097155&e.flags))throw new ne.ErrnoError(8);if(!ne.isFile(e.node.mode)&&!ne.isDir(e.node.mode))throw new ne.ErrnoError(43);if(!e.stream_ops.allocate)throw new ne.ErrnoError(138);e.stream_ops.allocate(e,A,t)},mmap:(e,A,t,r,n)=>{if(2&r&&!(2&n)&&2!=(2097155&e.flags))throw new ne.ErrnoError(2);if(1==(2097155&e.flags))throw new ne.ErrnoError(2);if(!e.stream_ops.mmap)throw new ne.ErrnoError(43);return e.stream_ops.mmap(e,A,t,r,n)},msync:(e,A,t,r,n)=>e.stream_ops.msync?e.stream_ops.msync(e,A,t,r,n):0,munmap:e=>0,ioctl:(e,A,t)=>{if(!e.stream_ops.ioctl)throw new ne.ErrnoError(59);return e.stream_ops.ioctl(e,A,t)},readFile:(e,A={})=>{if(A.flags=A.flags||0,A.encoding=A.encoding||"binary","utf8"!==A.encoding&&"binary"!==A.encoding)throw new Error('Invalid encoding type "'+A.encoding+'"');var t,r=ne.open(e,A.flags),n=ne.stat(e).size,a=new Uint8Array(n);return ne.read(r,a,0,n,0),"utf8"===A.encoding?t=D(a,0):"binary"===A.encoding&&(t=a),ne.close(r),t},writeFile:(e,A,t={})=>{t.flags=t.flags||577;var r=ne.open(e,t.flags,t.mode);if("string"==typeof A){var n=new Uint8Array(P(A)+1),a=T(A,n,0,n.length);ne.write(r,n,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(A))throw new Error("Unsupported data type");ne.write(r,A,0,A.byteLength,void 0,t.canOwn)}ne.close(r)},cwd:()=>ne.currentPath,chdir:e=>{var A=ne.lookupPath(e,{follow:!0});if(null===A.node)throw new ne.ErrnoError(44);if(!ne.isDir(A.node.mode))throw new ne.ErrnoError(54);var t=ne.nodePermissions(A.node,"x");if(t)throw new ne.ErrnoError(t);ne.currentPath=A.path},createDefaultDirectories:()=>{ne.mkdir("/tmp"),ne.mkdir("/home"),ne.mkdir("/home/web_user")},createDefaultDevices:()=>{ne.mkdir("/dev"),ne.registerDevice(ne.makedev(1,3),{read:()=>0,write:(e,A,t,r,n)=>r}),ne.mkdev("/dev/null",ne.makedev(1,3)),Ae.register(ne.makedev(5,0),Ae.default_tty_ops),Ae.register(ne.makedev(6,0),Ae.default_tty1_ops),ne.mkdev("/dev/tty",ne.makedev(5,0)),ne.mkdev("/dev/tty1",ne.makedev(6,0)),ne.mkdir("/dev/shm"),ne.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{ne.mkdir("/proc");var e=ne.mkdir("/proc/self");ne.mkdir("/proc/self/fd"),ne.mount({mount:()=>{var A=ne.createNode(e,"fd",16895,73);return A.node_ops={lookup:(e,A)=>{var t=+A,r=ne.getStream(t);if(!r)throw new ne.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return n.parent=n,n}},A}},{},"/proc/self/fd")},createStandardStreams:()=>{c.stdin?ne.createDevice("/dev","stdin",c.stdin):ne.symlink("/dev/tty","/dev/stdin"),c.stdout?ne.createDevice("/dev","stdout",null,c.stdout):ne.symlink("/dev/tty","/dev/stdout"),c.stderr?ne.createDevice("/dev","stderr",null,c.stderr):ne.symlink("/dev/tty1","/dev/stderr"),ne.open("/dev/stdin",0),ne.open("/dev/stdout",1),ne.open("/dev/stderr",1)},ensureErrnoError:()=>{ne.ErrnoError||(ne.ErrnoError=function(e,A){this.node=A,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},ne.ErrnoError.prototype=new Error,ne.ErrnoError.prototype.constructor=ne.ErrnoError,[44].forEach((e=>{ne.genericErrors[e]=new ne.ErrnoError(e),ne.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:()=>{ne.ensureErrnoError(),ne.nameTable=new Array(4096),ne.mount(re,{},"/"),ne.createDefaultDirectories(),ne.createDefaultDevices(),ne.createSpecialDirectories(),ne.filesystems={MEMFS:re}},init:(e,A,t)=>{ne.init.initialized=!0,ne.ensureErrnoError(),c.stdin=e||c.stdin,c.stdout=A||c.stdout,c.stderr=t||c.stderr,ne.createStandardStreams()},quit:()=>{ne.init.initialized=!1;for(var e=0;e<ne.streams.length;e++){var A=ne.streams[e];A&&ne.close(A)}},getMode:(e,A)=>{var t=0;return e&&(t|=365),A&&(t|=146),t},findObject:(e,A)=>{var t=ne.analyzePath(e,A);return t.exists?t.object:null},analyzePath:(e,A)=>{try{e=(r=ne.lookupPath(e,{follow:!A})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=ne.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=r.path,t.parentObject=r.node,t.name=_.basename(e),r=ne.lookupPath(e,{follow:!A}),t.exists=!0,t.path=r.path,t.object=r.node,t.name=r.node.name,t.isRoot="/"===r.path}catch(e){t.error=e.errno}return t},createPath:(e,A,t,r)=>{e="string"==typeof e?e:ne.getPath(e);for(var n=A.split("/").reverse();n.length;){var a=n.pop();if(a){var s=_.join2(e,a);try{ne.mkdir(s)}catch(e){}e=s}}return s},createFile:(e,A,t,r,n)=>{var a=_.join2("string"==typeof e?e:ne.getPath(e),A),s=ne.getMode(r,n);return ne.create(a,s)},createDataFile:(e,A,t,r,n,a)=>{var s=A;e&&(e="string"==typeof e?e:ne.getPath(e),s=A?_.join2(e,A):e);var i=ne.getMode(r,n),o=ne.create(s,i);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,g=t.length;c<g;++c)l[c]=t.charCodeAt(c);t=l}ne.chmod(o,146|i);var u=ne.open(o,577);ne.write(u,t,0,t.length,0,a),ne.close(u),ne.chmod(o,i)}return o},createDevice:(e,A,t,r)=>{var n=_.join2("string"==typeof e?e:ne.getPath(e),A),a=ne.getMode(!!t,!!r);ne.createDevice.major||(ne.createDevice.major=64);var s=ne.makedev(ne.createDevice.major++,0);return ne.registerDevice(s,{open:e=>{e.seekable=!1},close:e=>{r&&r.buffer&&r.buffer.length&&r(10)},read:(e,A,r,n,a)=>{for(var s=0,i=0;i<n;i++){var o;try{o=t()}catch(e){throw new ne.ErrnoError(29)}if(void 0===o&&0===s)throw new ne.ErrnoError(6);if(null==o)break;s++,A[r+i]=o}return s&&(e.node.timestamp=Date.now()),s},write:(e,A,t,n,a)=>{for(var s=0;s<n;s++)try{r(A[t+s])}catch(e){throw new ne.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),s}}),ne.mkdev(n,a,s)},forceLoadFile:e=>{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;throw"undefined"!=typeof XMLHttpRequest?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:(e,A,t,r,n)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var A=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[A]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+t+". Status: "+e.status);var A,r=Number(e.getResponseHeader("Content-length")),n=(A=e.getResponseHeader("Accept-Ranges"))&&"bytes"===A,a=(A=e.getResponseHeader("Content-Encoding"))&&"gzip"===A,s=1048576;n||(s=r);var i=this;i.setDataGetter((e=>{var A=e*s,n=(e+1)*s-1;if(n=Math.min(n,r-1),void 0===i.chunks[e]&&(i.chunks[e]=((e,A)=>{if(e>A)throw new Error("invalid range ("+e+", "+A+") or no bytes requested!");if(A>r-1)throw new Error("only "+r+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",t,!1),r!==s&&n.setRequestHeader("Range","bytes="+e+"-"+A),n.responseType="arraybuffer",n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+t+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):ee(n.responseText||"",!0)})(A,n)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]})),!a&&r||(s=r=1,r=this.getter(0).length,s=r,h("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var i={isDevice:!1,contents:s}}else i={isDevice:!1,url:t};var o=ne.createFile(e,A,i,r,n);i.contents?o.contents=i.contents:i.url&&(o.contents=null,o.url=i.url),Object.defineProperties(o,{usedBytes:{get:function(){return this.contents.length}}});var l={};function c(e,A,t,r,n){var a=e.node.contents;if(n>=a.length)return 0;var s=Math.min(a.length-n,r);if(a.slice)for(var i=0;i<s;i++)A[t+i]=a[n+i];else for(i=0;i<s;i++)A[t+i]=a.get(n+i);return s}return Object.keys(o.stream_ops).forEach((e=>{var A=o.stream_ops[e];l[e]=function(){return ne.forceLoadFile(o),A.apply(null,arguments)}})),l.read=(e,A,t,r,n)=>(ne.forceLoadFile(o),c(e,A,t,r,n)),l.mmap=(e,A,t,r,n)=>{ne.forceLoadFile(o);var a=te();if(!a)throw new ne.ErrnoError(48);return c(e,k,a,A,t),{ptr:a,allocated:!0}},o.stream_ops=l,o},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:(e,A,t)=>{A=A||(()=>{}),t=t||(()=>{});var r=ne.indexedDB();try{var n=r.open(ne.DB_NAME(),ne.DB_VERSION)}catch(e){return t(e)}n.onupgradeneeded=()=>{h("creating db"),n.result.createObjectStore(ne.DB_STORE_NAME)},n.onsuccess=()=>{var r=n.result.transaction([ne.DB_STORE_NAME],"readwrite"),a=r.objectStore(ne.DB_STORE_NAME),s=0,i=0,o=e.length;function l(){0==i?A():t()}e.forEach((e=>{var A=a.put(ne.analyzePath(e).object.contents,e);A.onsuccess=()=>{++s+i==o&&l()},A.onerror=()=>{i++,s+i==o&&l()}})),r.onerror=t},n.onerror=t},loadFilesFromDB:(e,A,t)=>{A=A||(()=>{}),t=t||(()=>{});var r=ne.indexedDB();try{var n=r.open(ne.DB_NAME(),ne.DB_VERSION)}catch(e){return t(e)}n.onupgradeneeded=t,n.onsuccess=()=>{var r=n.result;try{var a=r.transaction([ne.DB_STORE_NAME],"readonly")}catch(e){return void t(e)}var s=a.objectStore(ne.DB_STORE_NAME),i=0,o=0,l=e.length;function c(){0==o?A():t()}e.forEach((e=>{var A=s.get(e);A.onsuccess=()=>{ne.analyzePath(e).exists&&ne.unlink(e),ne.createDataFile(_.dirname(e),_.basename(e),A.result,!0,!0,!0),++i+o==l&&c()},A.onerror=()=>{o++,i+o==l&&c()}})),a.onerror=t},n.onerror=t}},ae={DEFAULT_POLLMASK:5,calculateAt:function(e,A,t){if(_.isAbs(A))return A;var r;if(r=-100===e?ne.cwd():ae.getStreamFromFD(e).path,0==A.length){if(!t)throw new ne.ErrnoError(44);return r}return _.join2(r,A)},doStat:function(e,A,t){try{var r=e(A)}catch(e){if(e&&e.node&&_.normalize(A)!==_.normalize(ne.getPath(e.node)))return-54;throw e}v[t>>2]=r.dev,v[t+8>>2]=r.ino,v[t+12>>2]=r.mode,y[t+16>>2]=r.nlink,v[t+20>>2]=r.uid,v[t+24>>2]=r.gid,v[t+28>>2]=r.rdev,R=[r.size>>>0,(H=r.size,+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[t+40>>2]=R[0],v[t+44>>2]=R[1],v[t+48>>2]=4096,v[t+52>>2]=r.blocks;var n=r.atime.getTime(),a=r.mtime.getTime(),s=r.ctime.getTime();return R=[Math.floor(n/1e3)>>>0,(H=Math.floor(n/1e3),+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[t+56>>2]=R[0],v[t+60>>2]=R[1],y[t+64>>2]=n%1e3*1e3,R=[Math.floor(a/1e3)>>>0,(H=Math.floor(a/1e3),+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[t+72>>2]=R[0],v[t+76>>2]=R[1],y[t+80>>2]=a%1e3*1e3,R=[Math.floor(s/1e3)>>>0,(H=Math.floor(s/1e3),+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[t+88>>2]=R[0],v[t+92>>2]=R[1],y[t+96>>2]=s%1e3*1e3,R=[r.ino>>>0,(H=r.ino,+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[t+104>>2]=R[0],v[t+108>>2]=R[1],0},doMsync:function(e,A,t,r,n){if(!ne.isFile(A.node.mode))throw new ne.ErrnoError(43);if(2&r)return 0;var a=x.slice(e,e+t);ne.msync(A,a,n,t,r)},varargs:void 0,get:function(){return ae.varargs+=4,v[ae.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var A=ne.getStream(e);if(!A)throw new ne.ErrnoError(8);return A}},se={};function ie(){if(!ie.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(var A in se)void 0===se[A]?delete e[A]:e[A]=se[A];var t=[];for(var A in e)t.push(A+"="+e[A]);ie.strings=t}return ie.strings}var oe=function(e,A,t,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ne.nextInode++,this.name=A,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r};Object.defineProperties(oe.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ne.isDir(this.mode)}},isDevice:{get:function(){return ne.isChrdev(this.mode)}}}),ne.FSNode=oe,ne.staticInit(),c.FS_createPath=ne.createPath,c.FS_createDataFile=ne.createDataFile,c.FS_unlink=ne.unlink,c.FS_createLazyFile=ne.createLazyFile,c.FS_createDevice=ne.createDevice;var le={g:function(e,A,t,r){K("Assertion failed: "+Q(e)+", at: "+[A?Q(A):"unknown filename",t,r?Q(r):"unknown function"])},u:function(e,A,t){throw new J(e).init(A,t),e},d:function(e,A,t){ae.varargs=t;try{var r=ae.getStreamFromFD(e);switch(A){case 0:return(n=ae.get())<0?-28:ne.createStream(r,n).fd;case 1:case 2:case 6:case 7:return 0;case 3:return r.flags;case 4:var n=ae.get();return r.flags|=n,0;case 5:return n=ae.get(),B[n+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return v[oA()>>2]=28,-1}}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},q:function(e,A,t){try{var r=ae.getStreamFromFD(e);r.getdents||(r.getdents=ne.readdir(r.path));for(var n=280,a=0,s=ne.llseek(r,0,1),i=Math.floor(s/n);i<r.getdents.length&&a+n<=t;){var o,l,c=r.getdents[i];if("."===c)o=r.node.id,l=4;else if(".."===c)o=ne.lookupPath(r.path,{parent:!0}).node.id,l=4;else{var g=ne.lookupNode(r.node,c);o=g.id,l=ne.isChrdev(g.mode)?2:ne.isDir(g.mode)?4:ne.isLink(g.mode)?10:8}R=[o>>>0,(H=o,+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[A+a>>2]=R[0],v[A+a+4>>2]=R[1],R=[(i+1)*n>>>0,(H=(i+1)*n,+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[A+a+8>>2]=R[0],v[A+a+12>>2]=R[1],B[A+a+16>>1]=280,k[A+a+18|0]=l,T(c,x,A+a+19,256),a+=n,i+=1}return ne.llseek(r,i*n,0),a}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},h:function(e,A,t){ae.varargs=t;try{var r=ae.getStreamFromFD(e);switch(A){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return r.tty?0:-59;case 21519:if(!r.tty)return-59;var n=ae.get();return v[n>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:return n=ae.get(),ne.ioctl(r,A,n);default:return-28}}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},e:function(e,A,t,r){ae.varargs=r;try{A=ae.getStr(A),A=ae.calculateAt(e,A);var n=r?ae.get():0;return ne.open(A,t,n).fd}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},o:function(e){try{return e=ae.getStr(e),ne.rmdir(e),0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},n:function(e,A){try{return e=ae.getStr(e),ae.doStat(ne.stat,e,A)}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},p:function(e,A,t){try{return A=ae.getStr(A),A=ae.calculateAt(e,A),0===t?ne.unlink(A):512===t?ne.rmdir(A):K("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return-e.errno}},i:function(){return!0},l:function(){K("")},f:function(){return Date.now()},j:function(e,A,t){x.copyWithin(e,A,A+t)},m:function(e){x.length,K("OOM")},r:function(e,A){var t=0;return ie().forEach((function(r,n){var a=A+t;y[e+4*n>>2]=a,function(e,A){for(var t=0;t<e.length;++t)k[0|A++]=e.charCodeAt(t);k[0|A]=0}(r,a),t+=r.length+1})),0},s:function(e,A){var t=ie();y[e>>2]=t.length;var r=0;return t.forEach((function(e){r+=e.length+1})),y[A>>2]=r,0},b:function(e){try{var A=ae.getStreamFromFD(e);return ne.close(A),0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return e.errno}},t:function(e,A,t,r){try{var n=function(e,A,t){for(var r=0,n=0;n<t;n++){var a=y[A>>2],s=y[A+4>>2];A+=8;var i=ne.read(e,k,a,s,undefined);if(i<0)return-1;if(r+=i,i<s)break}return r}(ae.getStreamFromFD(e),A,t);return y[r>>2]=n,0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return e.errno}},k:function(e,A,t,r,n){try{var a=(o=t)+2097152>>>0<4194305-!!(i=A)?(i>>>0)+4294967296*o:NaN;if(isNaN(a))return 61;var s=ae.getStreamFromFD(e);return ne.llseek(s,a,r),R=[s.position>>>0,(H=s.position,+Math.abs(H)>=1?H>0?(0|Math.min(+Math.floor(H/4294967296),4294967295))>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],v[n>>2]=R[0],v[n+4>>2]=R[1],s.getdents&&0===a&&0===r&&(s.getdents=null),0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return e.errno}var i,o},c:function(e,A,t,r){try{var n=function(e,A,t){for(var r=0,n=0;n<t;n++){var a=y[A>>2],s=y[A+4>>2];A+=8;var i=ne.write(e,k,a,s,undefined);if(i<0)return-1;r+=i}return r}(ae.getStreamFromFD(e),A,t);return y[r>>2]=n,0}catch(e){if(void 0===ne||!(e instanceof ne.ErrnoError))throw e;return e.errno}},a:C};!function(){var e,A={a:le};function t(e,A){var t=e.exports;c.asm=t,c.asm.ua,Y(c.asm.v),U()}if(j(),c.instantiateWasm)try{return c.instantiateWasm(A,t)}catch(e){return m("Module.instantiateWasm callback failed with error: "+e),!1}e=function(e){t(e.instance)},async function(){return[]}().then((function(e){return b.instantiate(e,A)})).then((function(e){return e})).then(e,(function(e){m("failed to asynchronously prepare wasm: "+e),K(e)}))}(),c.___wasm_call_ctors=function(){return(c.___wasm_call_ctors=c.asm.v).apply(null,arguments)};var ce=c._emscripten_bind_VoidPtr___destroy___0=function(){return(ce=c._emscripten_bind_VoidPtr___destroy___0=c.asm.w).apply(null,arguments)},ge=c._emscripten_bind_espeak_VOICE_get_name_0=function(){return(ge=c._emscripten_bind_espeak_VOICE_get_name_0=c.asm.x).apply(null,arguments)},ue=c._emscripten_bind_espeak_VOICE_set_name_1=function(){return(ue=c._emscripten_bind_espeak_VOICE_set_name_1=c.asm.y).apply(null,arguments)},de=c._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(de=c._emscripten_bind_espeak_VOICE_get_languages_1=c.asm.z).apply(null,arguments)},fe=c._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(fe=c._emscripten_bind_espeak_VOICE_get_identifier_0=c.asm.A).apply(null,arguments)},pe=c._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return(pe=c._emscripten_bind_espeak_VOICE_set_identifier_1=c.asm.B).apply(null,arguments)},he=c._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(he=c._emscripten_bind_espeak_VOICE_get_gender_0=c.asm.C).apply(null,arguments)},me=c._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(me=c._emscripten_bind_espeak_VOICE_set_gender_1=c.asm.D).apply(null,arguments)},Ce=c._emscripten_bind_espeak_VOICE_get_age_0=function(){return(Ce=c._emscripten_bind_espeak_VOICE_get_age_0=c.asm.E).apply(null,arguments)},be=c._emscripten_bind_espeak_VOICE_set_age_1=function(){return(be=c._emscripten_bind_espeak_VOICE_set_age_1=c.asm.F).apply(null,arguments)},Ie=c._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(Ie=c._emscripten_bind_espeak_VOICE_get_variant_0=c.asm.G).apply(null,arguments)},we=c._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(we=c._emscripten_bind_espeak_VOICE_set_variant_1=c.asm.H).apply(null,arguments)},ke=c._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(ke=c._emscripten_bind_espeak_VOICE_get_xx1_0=c.asm.I).apply(null,arguments)},xe=c._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(xe=c._emscripten_bind_espeak_VOICE_set_xx1_1=c.asm.J).apply(null,arguments)},Be=c._emscripten_bind_espeak_VOICE_get_score_0=function(){return(Be=c._emscripten_bind_espeak_VOICE_get_score_0=c.asm.K).apply(null,arguments)},ve=c._emscripten_bind_espeak_VOICE_set_score_1=function(){return(ve=c._emscripten_bind_espeak_VOICE_set_score_1=c.asm.L).apply(null,arguments)},ye=c._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(ye=c._emscripten_bind_espeak_VOICE_get_spare_0=c.asm.M).apply(null,arguments)},Ee=c._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(Ee=c._emscripten_bind_espeak_VOICE_set_spare_1=c.asm.N).apply(null,arguments)},Me=c._emscripten_bind_espeak_VOICE___destroy___0=function(){return(Me=c._emscripten_bind_espeak_VOICE___destroy___0=c.asm.O).apply(null,arguments)},Ge=c._emscripten_bind_espeak_EVENT_get_type_0=function(){return(Ge=c._emscripten_bind_espeak_EVENT_get_type_0=c.asm.P).apply(null,arguments)},De=c._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(De=c._emscripten_bind_espeak_EVENT_get_unique_identifier_0=c.asm.Q).apply(null,arguments)},Qe=c._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(Qe=c._emscripten_bind_espeak_EVENT_get_text_position_0=c.asm.R).apply(null,arguments)},Te=c._emscripten_bind_espeak_EVENT_get_length_0=function(){return(Te=c._emscripten_bind_espeak_EVENT_get_length_0=c.asm.S).apply(null,arguments)},Pe=c._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(Pe=c._emscripten_bind_espeak_EVENT_get_audio_position_0=c.asm.T).apply(null,arguments)},ze=c._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(ze=c._emscripten_bind_espeak_EVENT_get_sample_0=c.asm.U).apply(null,arguments)},Fe=c._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(Fe=c._emscripten_bind_espeak_EVENT_get_user_data_0=c.asm.V).apply(null,arguments)},Se=c._emscripten_bind_espeak_EVENT___destroy___0=function(){return(Se=c._emscripten_bind_espeak_EVENT___destroy___0=c.asm.W).apply(null,arguments)},Ne=c._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(Ne=c._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=c.asm.X).apply(null,arguments)},Oe=c._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(Oe=c._emscripten_bind_eSpeakNGWorker_synth__2=c.asm.Y).apply(null,arguments)},Le=c._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(Le=c._emscripten_bind_eSpeakNGWorker_synth_ipa__2=c.asm.Z).apply(null,arguments)},Ye=c._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(Ye=c._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=c.asm._).apply(null,arguments)},He=c._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return(He=c._emscripten_bind_eSpeakNGWorker_set_voice_2=c.asm.$).apply(null,arguments)},Re=c._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(Re=c._emscripten_bind_eSpeakNGWorker_set_voice_3=c.asm.aa).apply(null,arguments)},We=c._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(We=c._emscripten_bind_eSpeakNGWorker_set_voice_4=c.asm.ba).apply(null,arguments)},Ve=c._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(Ve=c._emscripten_bind_eSpeakNGWorker_set_voice_5=c.asm.ca).apply(null,arguments)},je=c._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(je=c._emscripten_bind_eSpeakNGWorker_get_voices_1=c.asm.da).apply(null,arguments)},Ue=c._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(Ue=c._emscripten_bind_eSpeakNGWorker_set_voices_2=c.asm.ea).apply(null,arguments)},Ke=c._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(Ke=c._emscripten_bind_eSpeakNGWorker_get_samplerate_0=c.asm.fa).apply(null,arguments)},Ze=c._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(Ze=c._emscripten_bind_eSpeakNGWorker_get_rate_0=c.asm.ga).apply(null,arguments)},Xe=c._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(Xe=c._emscripten_bind_eSpeakNGWorker_set_rate_1=c.asm.ha).apply(null,arguments)},qe=c._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(qe=c._emscripten_bind_eSpeakNGWorker_get_pitch_0=c.asm.ia).apply(null,arguments)},Je=c._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(Je=c._emscripten_bind_eSpeakNGWorker_set_pitch_1=c.asm.ja).apply(null,arguments)},_e=c._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(_e=c._emscripten_bind_eSpeakNGWorker___destroy___0=c.asm.ka).apply(null,arguments)},$e=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return($e=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=c.asm.la).apply(null,arguments)},eA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(eA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=c.asm.ma).apply(null,arguments)},AA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return(AA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=c.asm.na).apply(null,arguments)},tA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(tA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=c.asm.oa).apply(null,arguments)},rA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(rA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=c.asm.pa).apply(null,arguments)},nA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(nA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=c.asm.qa).apply(null,arguments)},aA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(aA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=c.asm.ra).apply(null,arguments)},sA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(sA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=c.asm.sa).apply(null,arguments)},iA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return(iA=c._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=c.asm.ta).apply(null,arguments)},oA=c.___errno_location=function(){return(oA=c.___errno_location=c.asm.va).apply(null,arguments)};c._free=function(){return(c._free=c.asm.wa).apply(null,arguments)},c._malloc=function(){return(c._malloc=c.asm.xa).apply(null,arguments)};var lA,cA=c.___cxa_is_pointer_type=function(){return(cA=c.___cxa_is_pointer_type=c.asm.ya).apply(null,arguments)};function gA(e){function A(){lA||(lA=!0,c.calledRun=!0,I||(L=!0,c.noFSInit||ne.init.initialized||ne.init(),ne.ignorePermissions=!1,X(N),c.onRuntimeInitialized&&c.onRuntimeInitialized(),function(){if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;)e=c.postRun.shift(),O.unshift(e);var e;X(O)}()))}W>0||(function(){if(c.preRun)for("function"==typeof c.preRun&&(c.preRun=[c.preRun]);c.preRun.length;)e=c.preRun.shift(),S.unshift(e);var e;X(S)}(),W>0||(c.setStatus?(c.setStatus("Running..."),setTimeout((function(){setTimeout((function(){c.setStatus("")}),1),A()}),1)):A()))}if(c.___start_em_js=132724,c.___stop_em_js=132822,c.addRunDependency=j,c.removeRunDependency=U,c.FS_createPath=ne.createPath,c.FS_createDataFile=ne.createDataFile,c.FS_createLazyFile=ne.createLazyFile,c.FS_createDevice=ne.createDevice,c.FS_unlink=ne.unlink,V=function e(){lA||gA(),lA||(V=e)},c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();function uA(){}function dA(e){return(e||uA).__cache__}function fA(e,A){var t=dA(A),r=t[e];return r||((r=Object.create((A||uA).prototype)).ptr=e,t[e]=r)}gA(),uA.prototype=Object.create(uA.prototype),uA.prototype.constructor=uA,uA.prototype.__class__=uA,uA.__cache__={},c.WrapperObject=uA,c.getCache=dA,c.wrapPointer=fA,c.castObject=function(e,A){return fA(e.ptr,A)},c.NULL=fA(0),c.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete dA(e.__class__)[e.ptr]},c.compare=function(e,A){return e.ptr===A.ptr},c.getPointer=function(e){return e.ptr},c.getClass=function(e){return e.__class__};var pA={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(pA.needed){for(var e=0;e<pA.temps.length;e++)c._free(pA.temps[e]);pA.temps.length=0,c._free(pA.buffer),pA.buffer=0,pA.size+=pA.needed,pA.needed=0}pA.buffer||(pA.size+=128,pA.buffer=c._malloc(pA.size),w(pA.buffer)),pA.pos=0},alloc:function(e,A){w(pA.buffer);var t,r=A.BYTES_PER_ELEMENT,n=e.length*r;return n=n+7&-8,pA.pos+n>=pA.size?(w(n>0),pA.needed+=n,t=c._malloc(n),pA.temps.push(t)):(t=pA.buffer+pA.pos,pA.pos+=n),t},copy:function(e,A,t){switch(t>>>=0,A.BYTES_PER_ELEMENT){case 2:t>>>=1;break;case 4:t>>>=2;break;case 8:t>>>=3}for(var r=0;r<e.length;r++)A[t+r]=e[r]}};function hA(e){if("string"==typeof e){var A=ee(e),t=pA.alloc(A,k);return pA.copy(A,k,t),t}return e}function mA(){throw"cannot construct a VoidPtr, no constructor in IDL"}function CA(){throw"cannot construct a espeak_VOICE, no constructor in IDL"}function bA(){throw"cannot construct a espeak_EVENT, no constructor in IDL"}function IA(){this.ptr=Ne(),dA(IA)[this.ptr]=this}mA.prototype=Object.create(uA.prototype),mA.prototype.constructor=mA,mA.prototype.__class__=mA,mA.__cache__={},c.VoidPtr=mA,mA.prototype.__destroy__=mA.prototype.__destroy__=function(){var e=this.ptr;ce(e)},CA.prototype=Object.create(uA.prototype),CA.prototype.constructor=CA,CA.prototype.__class__=CA,CA.__cache__={},c.espeak_VOICE=CA,CA.prototype.get_name=CA.prototype.get_name=function(){var e=this.ptr;return Q(ge(e))},CA.prototype.set_name=CA.prototype.set_name=function(e){var A=this.ptr;pA.prepare(),e=e&&"object"==typeof e?e.ptr:hA(e),ue(A,e)},Object.defineProperty(CA.prototype,"name",{get:CA.prototype.get_name,set:CA.prototype.set_name}),CA.prototype.get_languages=CA.prototype.get_languages=function(e){var A=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),de(A,e)},Object.defineProperty(CA.prototype,"languages",{get:CA.prototype.get_languages}),CA.prototype.get_identifier=CA.prototype.get_identifier=function(){var e=this.ptr;return Q(fe(e))},CA.prototype.set_identifier=CA.prototype.set_identifier=function(e){var A=this.ptr;pA.prepare(),e=e&&"object"==typeof e?e.ptr:hA(e),pe(A,e)},Object.defineProperty(CA.prototype,"identifier",{get:CA.prototype.get_identifier,set:CA.prototype.set_identifier}),CA.prototype.get_gender=CA.prototype.get_gender=function(){var e=this.ptr;return he(e)},CA.prototype.set_gender=CA.prototype.set_gender=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),me(A,e)},Object.defineProperty(CA.prototype,"gender",{get:CA.prototype.get_gender,set:CA.prototype.set_gender}),CA.prototype.get_age=CA.prototype.get_age=function(){var e=this.ptr;return Ce(e)},CA.prototype.set_age=CA.prototype.set_age=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),be(A,e)},Object.defineProperty(CA.prototype,"age",{get:CA.prototype.get_age,set:CA.prototype.set_age}),CA.prototype.get_variant=CA.prototype.get_variant=function(){var e=this.ptr;return Ie(e)},CA.prototype.set_variant=CA.prototype.set_variant=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),we(A,e)},Object.defineProperty(CA.prototype,"variant",{get:CA.prototype.get_variant,set:CA.prototype.set_variant}),CA.prototype.get_xx1=CA.prototype.get_xx1=function(){var e=this.ptr;return ke(e)},CA.prototype.set_xx1=CA.prototype.set_xx1=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),xe(A,e)},Object.defineProperty(CA.prototype,"xx1",{get:CA.prototype.get_xx1,set:CA.prototype.set_xx1}),CA.prototype.get_score=CA.prototype.get_score=function(){var e=this.ptr;return Be(e)},CA.prototype.set_score=CA.prototype.set_score=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),ve(A,e)},Object.defineProperty(CA.prototype,"score",{get:CA.prototype.get_score,set:CA.prototype.set_score}),CA.prototype.get_spare=CA.prototype.get_spare=function(){var e=this.ptr;return ye(e)},CA.prototype.set_spare=CA.prototype.set_spare=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),Ee(A,e)},Object.defineProperty(CA.prototype,"spare",{get:CA.prototype.get_spare,set:CA.prototype.set_spare}),CA.prototype.__destroy__=CA.prototype.__destroy__=function(){var e=this.ptr;Me(e)},bA.prototype=Object.create(uA.prototype),bA.prototype.constructor=bA,bA.prototype.__class__=bA,bA.__cache__={},c.espeak_EVENT=bA,bA.prototype.get_type=bA.prototype.get_type=function(){var e=this.ptr;return Ge(e)},Object.defineProperty(bA.prototype,"type",{get:bA.prototype.get_type}),bA.prototype.get_unique_identifier=bA.prototype.get_unique_identifier=function(){var e=this.ptr;return De(e)},Object.defineProperty(bA.prototype,"unique_identifier",{get:bA.prototype.get_unique_identifier}),bA.prototype.get_text_position=bA.prototype.get_text_position=function(){var e=this.ptr;return Qe(e)},Object.defineProperty(bA.prototype,"text_position",{get:bA.prototype.get_text_position}),bA.prototype.get_length=bA.prototype.get_length=function(){var e=this.ptr;return Te(e)},Object.defineProperty(bA.prototype,"length",{get:bA.prototype.get_length}),bA.prototype.get_audio_position=bA.prototype.get_audio_position=function(){var e=this.ptr;return Pe(e)},Object.defineProperty(bA.prototype,"audio_position",{get:bA.prototype.get_audio_position}),bA.prototype.get_sample=bA.prototype.get_sample=function(){var e=this.ptr;return ze(e)},Object.defineProperty(bA.prototype,"sample",{get:bA.prototype.get_sample}),bA.prototype.get_user_data=bA.prototype.get_user_data=function(){var e=this.ptr;return Fe(e)},Object.defineProperty(bA.prototype,"user_data",{get:bA.prototype.get_user_data}),bA.prototype.__destroy__=bA.prototype.__destroy__=function(){var e=this.ptr;Se(e)},IA.prototype=Object.create(uA.prototype),IA.prototype.constructor=IA,IA.prototype.__class__=IA,IA.__cache__={},c.eSpeakNGWorker=IA,IA.prototype.synth_=IA.prototype.synth_=function(e,A){var t=this.ptr;pA.prepare(),e=e&&"object"==typeof e?e.ptr:hA(e),A&&"object"==typeof A&&(A=A.ptr),Oe(t,e,A)},IA.prototype.synth_ipa_=IA.prototype.synth_ipa_=function(e,A){var t=this.ptr;return pA.prepare(),e=e&&"object"==typeof e?e.ptr:hA(e),A=A&&"object"==typeof A?A.ptr:hA(A),Le(t,e,A)},IA.prototype.getSizeOfEventStruct_=IA.prototype.getSizeOfEventStruct_=function(){var e=this.ptr;return Ye(e)},IA.prototype.set_voice=IA.prototype.set_voice=function(e,A,t,r,n){var a=this.ptr;return pA.prepare(),e=e&&"object"==typeof e?e.ptr:hA(e),A=A&&"object"==typeof A?A.ptr:hA(A),t&&"object"==typeof t&&(t=t.ptr),r&&"object"==typeof r&&(r=r.ptr),n&&"object"==typeof n&&(n=n.ptr),void 0===t?He(a,e,A):void 0===r?Re(a,e,A,t):void 0===n?We(a,e,A,t,r):Ve(a,e,A,t,r,n)},IA.prototype.get_voices=IA.prototype.get_voices=function(e){var A=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),fA(je(A,e),CA)},IA.prototype.set_voices=IA.prototype.set_voices=function(e,A){var t=this.ptr;pA.prepare(),e&&"object"==typeof e&&(e=e.ptr),A&&"object"==typeof A&&(A=A.ptr),Ue(t,e,A)},Object.defineProperty(IA.prototype,"voices",{get:IA.prototype.get_voices,set:IA.prototype.set_voices}),IA.prototype.get_samplerate=IA.prototype.get_samplerate=function(){var e=this.ptr;return Ke(e)},Object.defineProperty(IA.prototype,"samplerate",{get:IA.prototype.get_samplerate}),IA.prototype.get_rate=IA.prototype.get_rate=function(){var e=this.ptr;return Ze(e)},IA.prototype.set_rate=IA.prototype.set_rate=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),Xe(A,e)},Object.defineProperty(IA.prototype,"rate",{get:IA.prototype.get_rate,set:IA.prototype.set_rate}),IA.prototype.get_pitch=IA.prototype.get_pitch=function(){var e=this.ptr;return qe(e)},IA.prototype.set_pitch=IA.prototype.set_pitch=function(e){var A=this.ptr;e&&"object"==typeof e&&(e=e.ptr),Je(A,e)},Object.defineProperty(IA.prototype,"pitch",{get:IA.prototype.get_pitch,set:IA.prototype.set_pitch}),IA.prototype.__destroy__=IA.prototype.__destroy__=function(){var e=this.ptr;_e(e)},function(){function e(){c.espeakEVENT_LIST_TERMINATED=$e(),c.espeakEVENT_WORD=eA(),c.espeakEVENT_SENTENCE=AA(),c.espeakEVENT_MARK=tA(),c.espeakEVENT_PLAY=rA(),c.espeakEVENT_END=nA(),c.espeakEVENT_MSG_TERMINATED=aA(),c.espeakEVENT_PHONEME=sA(),c.espeakEVENT_SAMPLERATE=iA()}L?e():Y(e)}(),IA.prototype.list_voices=function(){for(var e,A=[],t=this.get_voices(e=0);0!=t.ptr;t=this.get_voices(++e)){var r={name:t.get_name(),identifier:t.get_identifier(),languages:[]},n=0,a=t.get_languages(n);function i(e){for(var A="",r=e,n=t.get_languages(r++);0!=n;)A+=String.fromCharCode(n),n=t.get_languages(r++);return A}for(;0!=a;){var s={priority:a,name:i(++n)};r.languages.push(s),n+=s.name.length+1,a=t.get_languages(n)}A.push(r)}return A};var wA=["list_terminated","word","sentence","mark","play","end","msg_terminated","phoneme","samplerate"];IA.prototype.synthesize=function(e,A){var t=this.getSizeOfEventStruct_(),r=addFunction((function(e,r,n){for(var a=new Float32Array(2*r),s=0;s<r;s++)a[2*s]=Math.max(-1,Math.min(1,q(e+2*s,"i16")/32768)),a[2*s+1]=a[2*s];var i=[];for(e=n,ev=fA(e,bA);ev.get_type()!=c.espeakEVENT_LIST_TERMINATED;ev=fA(e+=t,bA))i.push({type:wA[ev.get_type()],text_position:ev.get_text_position(),word_length:ev.get_length(),audio_position:ev.get_audio_position()});return A(a,i)?1:0}));this.synth_(e,r),removeFunction(r)},IA.prototype.synthesize_ipa=function(e,A){var t="espeak-ng-ipa-tmp-"+Math.random().toString().substring(2),r="",n=this.synth_ipa_(e,t);return 0==n&&(r=ne.readFile(t,{encoding:"utf8"})),ne.unlink(t),{code:n,ipa:r}};const kA=new Promise((e=>{c.calledRun?e(new c.eSpeakNGWorker):c.onRuntimeInitialized=()=>e(new c.eSpeakNGWorker)})),xA=["en"],BA=kA.then((e=>{const A=e.list_voices().map((({name:e,identifier:A,languages:t})=>({name:e,identifier:A,languages:t.filter((e=>xA.includes(e.name.split("-")[0])))}))).filter((e=>e.languages.length>0)),t=new Set;for(const e of A){t.add(e.identifier);for(const A of e.languages)t.add(A.name)}return{voices:A,identifiers:t}}));function vA(e){if(e.includes("."))return e;if(e.includes(":")){let[A,t]=e.split(":").map(Number);return 0===t?`${A} o'clock`:t<10?`${A} oh ${t}`:`${A} ${t}`}let A=parseInt(e.slice(0,4),10);if(A<1100||A%1e3<10)return e;let t=e.slice(0,2),r=parseInt(e.slice(2,4),10),n=e.endsWith("s")?"s":"";if(A%1e3>=100&&A%1e3<=999){if(0===r)return`${t} hundred${n}`;if(r<10)return`${t} oh ${r}${n}`}return`${t} ${r}${n}`}function yA(e){const A="$"===e[0]?"dollar":"pound";if(isNaN(Number(e.slice(1))))return`${e.slice(1)} ${A}s`;if(!e.includes(".")){let t="1"===e.slice(1)?"":"s";return`${e.slice(1)} ${A}${t}`}const[t,r]=e.slice(1).split("."),n=parseInt(r.padEnd(2,"0"),10);return`${t} ${A}${"1"===t?"":"s"} and ${n} ${"$"===e[0]?1===n?"cent":"cents":1===n?"penny":"pence"}`}function EA(e){let[A,t]=e.split(".");return`${A} point ${t.split("").join(" ")}`}const MA=new RegExp(`(\\s*[${GA=';:,.!?¡¿—…"«»“”(){}[]',GA.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var GA;async function DA(e,A="a",t=!0){t&&(e=function(e){return e.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|(?<!:)\b(?:[1-9]|1[0-2]):[0-5]\d\b(?!:)/g,vA).replace(/(?<=\d),(?=\d)/g,"").replace(/[$£]\d+(?:\.\d+)?(?: hundred| thousand| (?:[bm]|tr)illion)*\b|[$£]\d+\.\d\d?\b/gi,yA).replace(/\d*\.\d+/g,EA).replace(/(?<=\d)-(?=\d)/g," to ").replace(/(?<=\d)S/g," S").replace(/(?<=[BCDFGHJ-NP-TV-Z])'?s\b/g,"'S").replace(/(?<=X')S\b/g,"s").replace(/(?:[A-Za-z]\.){2,} [a-z]/g,(e=>e.replace(/\./g,"-"))).replace(/(?<=[A-Z])\.(?=[A-Z])/gi,"-").trim()}(e));const r=function(e,A){const t=[];let r=0;for(const n of e.matchAll(A)){const A=n[0];r<n.index&&t.push({match:!1,text:e.slice(r,n.index)}),A.length>0&&t.push({match:!0,text:A}),r=n.index+A.length}return r<e.length&&t.push({match:!1,text:e.slice(r)}),t}(e,MA),n="a"===A?"en-us":"en",a=(await Promise.all(r.map((async({match:e,text:A})=>e?A:(await(async(e,A="en-us")=>{const t=await kA,{identifiers:r}=await BA;if(!r.has(A))throw new Error(`Invalid language identifier: "${A}". Should be one of: ${Array.from(r).toSorted().join(", ")}.`);return t.set_voice(A),t.synthesize_ipa(e).ipa?.split("\n").filter((e=>e.length>0))??[]})(A,n)).join(" "))))).join("");let s=a.replace(/kəkˈoːɹoʊ/g,"kˈoʊkəɹoʊ").replace(/kəkˈɔːɹəʊ/g,"kˈəʊkəɹəʊ").replace(/ʲ/g,"j").replace(/r/g,"ɹ").replace(/x/g,"k").replace(/ɬ/g,"l").replace(/(?<=[a-zɹː])(?=hˈʌndɹɪd)/g," ").replace(/ z(?=[;:,.!?¡¿—…"«»“” ]|$)/g,"z");return"a"===A&&(s=s.replace(/(?<=nˈaɪn)ti(?!ː)/g,"di")),s.trim()}function QA(e,A=!0){return".!?…。?!".includes(e)||A&&"\n"===e}function TA(e){return"\"')]}」』".includes(e)}function PA(e,A){let t=A;for(;t<e.length&&!/\s/.test(e[t]);)++t;return e.substring(A,t)}const zA=new Set(["mr","mrs","ms","dr","prof","sr","jr","sgt","col","gen","rep","sen","gov","lt","maj","capt","st","mt","etc","co","inc","ltd","dept","vs","p","pg","jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec","sun","mon","tu","tue","tues","wed","th","thu","thur","thurs","fri","sat"]);function FA(e){return e=e.replace(/[']s$/i,"").replace(/\.+$/,""),zA.has(e.toLowerCase())}const SA=new Map([[")","("],["]","["],["}","{"],["》","《"],["〉","〈"],["",""],["»","«"],["〉","〈"],["」","「"],["』","『"],["",""],["】","【"]]),NA=new Set(SA.values());function OA(e,A,t,r){if('"'===e||"'"===e){if("'"===e&&t>0&&t<r.length-1&&/[A-Za-z]/.test(r[t-1])&&/[A-Za-z]/.test(r[t+1]))return;return void(A.length&&A.at(-1)===e?A.pop():A.push(e))}if(NA.has(e))return void A.push(e);const n=SA.get(e);n&&A.length&&A.at(-1)===n&&A.pop()}class LA{constructor(){this._buffer="",this._sentences=[],this._resolver=null,this._closed=!1}push(...e){for(const A of e)this._buffer+=A,this._process()}close(){if(this._closed)throw new Error("Stream is already closed.");this._closed=!0,this.flush()}flush(){const e=this._buffer.trim();e.length>0&&this._sentences.push(e),this._buffer="",this._resolve()}_resolve(){this._resolver&&(this._resolver(),this._resolver=null)}_process(){let e=0;const A=this._buffer,t=A.length;let r=0,n=[];const a=e=>{let r=e;for(;r+1<t&&QA(A[r+1],!1);)++r;for(;r+1<t&&TA(A[r+1]);)++r;let n=r+1;for(;n<t&&/\s/.test(A[n]);)++n;return{end:r,nextNonSpace:n}};for(;r<t;){const s=A[r];if(OA(s,n,r,A),0===n.length&&QA(s)){const n=A.slice(e,r);if(/(^|\n)\d+$/.test(n)){++r;continue}const{end:i,nextNonSpace:o}=a(r);if(r===o-1&&"\n"!==s){++r;continue}if(o===t)break;let l=r-1;for(;l>=0&&/\S/.test(A[l]);)l--;l=Math.max(e,l+1);const c=PA(A,l);if(!c){++r;continue}if((/https?[,:]\/\//.test(c)||c.includes("@"))&&!QA(c.at(-1))){r=l+c.length;continue}if(FA(c)){++r;continue}if(/^([A-Za-z]\.)+$/.test(c)&&o<t&&/[A-Z]/.test(A[o])){++r;continue}if("."===s&&o<t&&/[a-z]/.test(A[o])){++r;continue}const g=A.substring(e,i+1).trim();if("..."===g||"…"===g){++r;continue}g&&this._sentences.push(g),r=e=i+1}else++r}this._buffer=A.substring(e),this._sentences.length>0&&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((e=>{this._resolver=e}))}}[Symbol.iterator](){this.flush();const e=this._sentences[Symbol.iterator]();return this._sentences=[],e}get sentences(){return this._sentences}}var YA={};const HA=Object.freeze({af_heart:{name:"Heart",language:"en-us",gender:"Female",traits:"❤️",targetQuality:"A",overallGrade:"A"},af_alloy:{name:"Alloy",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_aoede:{name:"Aoede",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_bella:{name:"Bella",language:"en-us",gender:"Female",traits:"🔥",targetQuality:"A",overallGrade:"A-"},af_jessica:{name:"Jessica",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_kore:{name:"Kore",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_nicole:{name:"Nicole",language:"en-us",gender:"Female",traits:"🎧",targetQuality:"B",overallGrade:"B-"},af_nova:{name:"Nova",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_river:{name:"River",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_sarah:{name:"Sarah",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_sky:{name:"Sky",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C-"},am_adam:{name:"Adam",language:"en-us",gender:"Male",targetQuality:"D",overallGrade:"F+"},am_echo:{name:"Echo",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_eric:{name:"Eric",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_fenrir:{name:"Fenrir",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_liam:{name:"Liam",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_michael:{name:"Michael",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_onyx:{name:"Onyx",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_puck:{name:"Puck",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_santa:{name:"Santa",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D-"},bf_emma:{name:"Emma",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"B",overallGrade:"B-"},bf_isabella:{name:"Isabella",language:"en-gb",gender:"Female",targetQuality:"B",overallGrade:"C"},bm_george:{name:"George",language:"en-gb",gender:"Male",targetQuality:"B",overallGrade:"C"},bm_lewis:{name:"Lewis",language:"en-gb",gender:"Male",targetQuality:"C",overallGrade:"D+"},bf_alice:{name:"Alice",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bf_lily:{name:"Lily",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bm_daniel:{name:"Daniel",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"C",overallGrade:"D"},bm_fable:{name:"Fable",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"B",overallGrade:"C"}});const RA=new Map;async function WA(e){if(RA.has(e))return RA.get(e);const A=new Float32Array(await async function(e){if(YA?.readFile){const A="undefined"!=typeof __dirname?__dirname:import.meta.dirname,t=YA.resolve(A,`../voices/${e}.bin`),{buffer:r}=await YA.readFile(t);return r}const A=`https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX/resolve/main/voices/${e}.bin`;let t;try{t=await caches.open("kokoro-voices");const e=await t.match(A);if(e)return await e.arrayBuffer()}catch(e){console.warn("Unable to open cache",e)}const r=await fetch(A),n=await r.arrayBuffer();if(t)try{await t.put(A,new Response(n,{headers:r.headers}))}catch(e){console.warn("Unable to cache file",e)}return n}(e));return RA.set(e,A),A}class VA{constructor(e,A){this.model=e,this.tokenizer=A}static async from_pretrained(e,{dtype:A="fp32",device:t=null,progress_callback:r=null}={}){const n=o.from_pretrained(e,{progress_callback:r,dtype:A,device:t}),a=s.from_pretrained(e,{progress_callback:r}),i=await Promise.all([n,a]);return new VA(...i)}get voices(){return HA}list_voices(){console.table(HA)}_validate_voice(e){if(!HA.hasOwnProperty(e))throw console.error(`Voice "${e}" not found. Available voices:`),console.table(HA),new Error(`Voice "${e}" not found. Should be one of: ${Object.keys(HA).join(", ")}.`);return e.at(0)}async generate(e,{voice:A="af_heart",speed:t=1}={}){const r=this._validate_voice(A),n=await DA(e,r),{input_ids:a}=this.tokenizer(n,{truncation:!0});return this.generate_from_ids(a,{voice:A,speed:t})}async generate_from_ids(e,{voice:A="af_heart",speed:t=1}={}){const r=256*Math.min(Math.max(e.dims.at(-1)-2,0),509),n=(await WA(A)).slice(r,r+256),a={input_ids:e,style:new l("float32",n,[1,256]),speed:new l("float32",[t],[1])},{waveform:s}=await this.model(a);return new i(s.data,24e3)}async*stream(e,{voice:A="af_heart",speed:t=1,split_pattern:r=null}={}){const n=this._validate_voice(A);let a;if(e instanceof LA)a=e;else{if("string"!=typeof e)throw new Error("Invalid input type. Expected string or TextSplitterStream.");{a=new LA;const A=r?e.split(r).map((e=>e.trim())).filter((e=>e.length>0)):[e];a.push(...A)}}for await(const e of a){const r=await DA(e,n),{input_ids:a}=this.tokenizer(r,{truncation:!0}),s=await this.generate_from_ids(a,{voice:A,speed:t});yield{text:e,phonemes:r,audio:s}}}}export{VA as KokoroTTS,LA as TextSplitterStream};