gpu-sankhya 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -212,18 +212,18 @@ training): 0.925 value accuracy. This number is optimistic — it's testing
212
212
  the model on its own distribution.
213
213
 
214
214
  On two hand-written gold sets, written independently of the generator —
215
- `python/tests/gold.jsonl` (romanised Hindi, 214 sentences / 188 spans)
215
+ `python/tests/gold.jsonl` (romanised Hindi, 220 sentences / 194 spans)
216
216
  and `python/tests/gold_deva.jsonl` (Devanagari Hindi, 182 sentences / 151
217
217
  spans) — evaluated against the shipped int8-quantized weights:
218
218
 
219
219
  | gold set | examples | spans | value accuracy | span precision | span recall | span F1 |
220
220
  | --- | ---: | ---: | ---: | ---: | ---: | ---: |
221
- | gold.jsonl (romanised) | 214 | 188 | 0.9255 | 0.9167 | 0.9362 | 0.9263 |
222
- | gold_deva.jsonl (Devanagari) | 182 | 151 | 0.9735 | 0.9737 | 0.9801 | 0.9769 |
223
- | combined | 396 | 339 | 0.9469 | 0.9419 | 0.9558 | 0.9488 |
221
+ | gold.jsonl (romanised) | 220 | 194 | 0.9381 | 0.9293 | 0.9485 | 0.9388 |
222
+ | gold_deva.jsonl (Devanagari) | 182 | 151 | 0.9735 | 0.9867 | 0.9801 | 0.9834 |
223
+ | combined | 402 | 345 | 0.9536 | 0.9540 | 0.9623 | 0.9582 |
224
224
 
225
225
  Negatives (zero-gold-span examples, 73 total): 0 false positives.
226
- Miss summary: missed 2, spurious 7, wrong value 3, wrong boundary 13.
226
+ Miss summary: missed 0, spurious 4, wrong value 3, wrong boundary 13.
227
227
  Per-category value accuracy: digits 0.967, words 0.940, prefix 0.926,
228
228
  range 0.917, currency 1.0, multi_unit 0.952, symbol_unit 0.970,
229
229
  mixed_script 1.0, long 0.80.
@@ -303,6 +303,15 @@ Raw per-character BIO/class predictions are cleaned up before evaluation:
303
303
  `UNIT_LAKH`). A one-character symbol unit (`k`/`K`/`l`/`L`) is additionally
304
304
  only valid when the next character isn't a letter, so `"20k logon"`
305
305
  keeps its `k` but `"10 km"`'s `k` doesn't survive alone either.
306
+ Before that drop check runs, a BIO repair pass looks at the letter-word's
307
+ *raw* per-character classes: if they unambiguously agree on one word
308
+ class (trusting only direct evidence — a same-class run of 3+ characters,
309
+ or a short stray adopting a qualifying neighbour's class, never a diffuse
310
+ whole-run majority vote alone), the span's BIO is extended to cover the
311
+ whole word instead of being left partial — this also re-merges a span
312
+ that a low-confidence internal `O` gap had split in two (e.g. `"unnasi"`
313
+ raw-tagged `B I I O I O`, all six characters `CARD_79`, becomes one span
314
+ `"unnasi"` = 79 instead of dropping).
306
315
  - **Bare-digits gate**: a span whose only meaningful tokens are digits (no
307
316
  unit/prefix/cardinal word at all) with no detected currency marker is
308
317
  dropped only when it's short and ungrouped (≤4 digits, no comma — route
package/dist/decode.d.ts CHANGED
@@ -12,6 +12,23 @@ export interface DecodedSpan {
12
12
  tokens: Array<[number, string]>;
13
13
  confidence: number | null;
14
14
  }
15
+ /** BIO repair (c): a word-class (UNIT_/PFX_/CARD_) token whose predicted
16
+ * span only PARTIALLY covers its letter word is not necessarily a bad
17
+ * match -- if the whole run's RAW per-char classes unanimously resolve
18
+ * (via `runUnanimousClass`, direct-evidence-only sub-run smoothing) to a
19
+ * SINGLE word class, the partial coverage is just low-confidence BIO
20
+ * dropout on an otherwise-agreed word, not a genuinely mixed/ambiguous
21
+ * run. Extend the span's BIO to cover the whole run (I for every char, B
22
+ * at the run start) instead of leaving it for R2 to drop -- this also
23
+ * merges spans that were split by an internal O gap inside that run back
24
+ * into a single span (e.g. "unnasi" B I I O I O -> B I I I I I).
25
+ *
26
+ * A run whose raw classes do NOT resolve to one unanimous word class this
27
+ * way (e.g. only part of the run predicts a word class, or the agreement
28
+ * is only visible via `repairLetterRun`'s diffuse whole-run majority-vote
29
+ * fallback rather than direct evidence) is left alone, so R2's drop still
30
+ * applies to it. Runs longer than 24 chars are skipped. */
31
+ export declare function extendWordIntegrityBio(bioIds: number[] | Int32Array, clsIds: number[] | Int32Array, runs: Array<[number, number]>): number[];
15
32
  /** [start, end) maximal letter/mark runs over the WHOLE text (not just one
16
33
  * span) -- word integrity needs the true word boundaries, which can extend
17
34
  * outside a span that was cut short mid-word. */
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- function GA(A){return A.version===2&&Array.isArray(A.conv)}function TA(A){return A.quantized!==void 0}function kA(A){let e=atob(A),B=new Int8Array(e.length);for(let n=0;n<e.length;n++)B[n]=e.charCodeAt(n)<<24>>24;return B}function G(A){let e=kA(A.data_b64),B=new Float32Array(e.length);for(let n=0;n<e.length;n++)B[n]=e[n]*A.scale;return{shape:A.shape,data:B}}function T(A){return{shape:A.shape,data:Float32Array.from(A.data)}}function PA(A,e){return A*(e-1)/2}function X(A){return{w:T(A.w),b:Float32Array.from(A.b.data)}}function N(A){return{w:G(A.w),b:Float32Array.from(A.b)}}function oA(A){let e=TA(A);if(GA(A)){let f=A.conv.map(s=>{let g=PA(s.dilation,s.k);if(e){let o=s;return{k:s.k,dilation:s.dilation,residual:s.residual,padding:g,w:G(o.w),b:Float32Array.from(o.b)}}let P=s;return{k:s.k,dilation:s.dilation,residual:s.residual,padding:g,w:T(P.w),b:Float32Array.from(P.b.data)}});return{version:2,charset:A.charset,classes:A.classes,embed:e?G(A.embed):T(A.embed),conv:f,bio:e?N(A.bio):X(A.bio),cls:e?N(A.cls):X(A.cls)}}let B=A.layers??3,n=A.dilation??2,t=[{name:"conv1",k:3,dilation:1},{name:"conv2",k:5,dilation:1},{name:"conv3",k:3,dilation:n}];B===4&&t.push({name:"conv4",k:3,dilation:4});let r=t.map(f=>{let s=PA(f.dilation,f.k);if(e){let w=A[f.name];if(!w)throw new Error(`missing ${f.name} in weights JSON`);return{k:f.k,dilation:f.dilation,residual:!1,padding:s,w:G(w.w),b:Float32Array.from(w.b)}}let P=A[f.name];if(!P)throw new Error(`missing ${f.name} in weights JSON`);return{k:f.k,dilation:f.dilation,residual:!1,padding:s,w:T(P.w),b:Float32Array.from(P.b.data)}});return{version:A.version??1,charset:A.charset,classes:A.classes,embed:e?G(A.embed):T(A.embed),conv:r,bio:e?N(A.bio):X(A.bio),cls:e?N(A.cls):X(A.cls)}}function zA(A){return Math.ceil(A/8)*8}function x(A){return zA(A+24)}var R=x(128),pA=/[०-९]/g;function k(A){return A.normalize("NFC").replace(pA,e=>String(e.charCodeAt(0)-2406)).toLowerCase()}function wA(A){let e=new Map;for(let B=0;B<A.length;B++)e.set(A[B],B);return e}function z(A,e,B,n){let t=e.get("<unk>")??1,r=e.get("<pad>")??0,f=n??A.length,s=B?B.subarray(0,f):new Int32Array(f);for(let g=0;g<A.length;g++)s[g]=e.get(A[g])??t;for(let g=A.length;g<f;g++)s[g]=r;return s}function eA(A){if(A<=128)return[{offset:0,length:A}];let e=[],B=112,n=0;for(;n<A;){let t=Math.min(128,A-n);if(e.push({offset:n,length:t}),n+t>=A)break;n+=B}return e}var j=class{buffers;padded;bioBuf;clsBuf;constructor(e){let B=e.conv,n=Math.max(e.embed.shape[1],...B.map(r=>r.w.shape[0]));this.buffers=[new Float32Array(n*R),new Float32Array(n*R)];let t=B.length?Math.max(...B.map(r=>r.padding)):0;this.padded=new Float32Array(n*(R+2*t)),this.bioBuf=new Float32Array(e.bio.w.shape[0]*R),this.clsBuf=new Float32Array(e.cls.w.shape[0]*R)}buf(e){return this.buffers[e%2]}paddedBuf(){return this.padded}};function yA(A,e,B,n,t,r){let[f,s,g]=n.w.shape;if(s!==e)throw new Error(`channel mismatch: expected ${e}, got ${s}`);let P=n.w.data,o=n.b,w=n.padding,D=n.dilation,C=B+2*w;for(let u=0;u<e;u++)r.fill(0,u*C,u*C+w),r.set(A.subarray(u*B,u*B+B),u*C+w),r.fill(0,u*C+w+B,u*C+C);for(let u=0;u<f;u++){let v=u*B,I=o[u],l=u*e*g;if(g===3){for(let Q=0;Q<B;Q++)t[v+Q]=I;for(let Q=0;Q<e;Q++){let b=Q*C,i=l+Q*3,M=P[i],L=P[i+1],a=P[i+2];for(let c=0;c<B;c++){let E=b+c;t[v+c]+=M*r[E]+L*r[E+D]+a*r[E+2*D]}}}else if(g===5){for(let Q=0;Q<B;Q++)t[v+Q]=I;for(let Q=0;Q<e;Q++){let b=Q*C,i=l+Q*5,M=P[i],L=P[i+1],a=P[i+2],c=P[i+3],E=P[i+4];for(let H=0;H<B;H++){let d=b+H;t[v+H]+=M*r[d]+L*r[d+1]+a*r[d+2]+c*r[d+3]+E*r[d+4]}}}else{for(let Q=0;Q<B;Q++)t[v+Q]=I;for(let Q=0;Q<e;Q++){let b=Q*C,i=l+Q*g;for(let M=0;M<g;M++){let L=P[i+M],a=M*D,c=b+a;for(let E=0;E<B;E++)t[v+E]+=L*r[c+E]}}}if(n.residual)for(let Q=0;Q<B;Q++){let b=t[v+Q];t[v+Q]=(b>0?b:0)+A[v+Q]}else for(let Q=0;Q<B;Q++){let b=t[v+Q];t[v+Q]=b>0?b:0}}return f}function DA(A,e,B,n,t){let[r,f]=n.w.shape;if(f!==e)throw new Error(`head channel mismatch: expected ${e}, got ${f}`);let s=n.w.data,g=n.b,P=e-e%4;for(let o=0;o<B;o++){let w=o*r;for(let D=0;D<r;D++){let C=g[D],u=D*e,v=0;for(;v<P;v+=4)C+=s[u+v]*A[v*B+o]+s[u+v+1]*A[(v+1)*B+o]+s[u+v+2]*A[(v+2)*B+o]+s[u+v+3]*A[(v+3)*B+o];for(;v<e;v++)C+=s[u+v]*A[v*B+o];t[w+D]=C}}return r}function S(A,e,B){let n=e.length,t=A.embed,r=t.shape[1],f=B.buf(0);for(let w=0;w<n;w++){let C=e[w]*r;for(let u=0;u<r;u++)f[u*n+w]=t.data[C+u]}let s=r,g=B.paddedBuf(),P=1;for(let w of A.conv){let D=B.buf(P);s=yA(f,s,n,w,D,g),f=D,P++}DA(f,s,n,A.bio,B.bioBuf);let o=DA(f,s,n,A.cls,B.clsBuf);return{bioLogits:B.bioBuf,clsLogits:B.clsBuf,length:n,nCls:o}}function BA(A,e,B,n){let t=-1/0;for(let f=0;f<B;f++)t=Math.max(t,A[e+f]);let r=0;for(let f=0;f<B;f++){let s=Math.exp(A[e+f]-t);n[f]=s,r+=s}for(let f=0;f<B;f++)n[f]/=r;return n}function p(A,e,B){let n=0,t=-1/0;for(let r=0;r<B;r++){let f=A[e+r];f>t&&(t=f,n=r)}return n}var mA=["PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE"],YA=Array.from({length:99},(A,e)=>`CARD_${e+1}`),XA=["UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],NA=["O","SEP","RANGE","DIGITS","DOT","COMMA"],F=["O",...NA.filter(A=>A!=="O"),...mA,...YA,...XA],O=Object.fromEntries(F.map((A,e)=>[A,e])),CA={UNIT_SAU:100,UNIT_HAZAAR:1e3,UNIT_LAKH:1e5,UNIT_MILLION:1e6,UNIT_CRORE:1e7,UNIT_BILLION:1e9,UNIT_ARAB:1e9,UNIT_KHARAB:1e11},J={UNIT_SAU:"sau",UNIT_HAZAAR:"hazaar",UNIT_LAKH:"lakh",UNIT_MILLION:"million",UNIT_CRORE:"crore",UNIT_BILLION:"billion",UNIT_ARAB:"arab",UNIT_KHARAB:"kharab"},nA={PFX_PAAV:{standalone:.25,op:null},PFX_AADHA:{standalone:.5,op:null},PFX_PAUNE:{standalone:.75,op:"sub25",min_n:2},PFX_SAVA:{standalone:1.25,op:"add25",min_n:2},PFX_DEDH:{standalone:1.5,op:null},PFX_DHAI:{standalone:2.5,op:null},PFX_SAADHE:{standalone:.5,op:"add5",min_n:3}};function QA(A){return A in nA}function vA(A){return A.startsWith("CARD_")}function uA(A){return A in CA}function cA(A){return parseInt(A.split("_",2)[1],10)}function K(A){return CA[A]}var SA=new Set(["SEP","RANGE","DOT","COMMA"]),EA=new Set([...SA,"O"]),tA=["PFX_","CARD_","UNIT_"],JA=["PFX_","CARD_","UNIT_"],KA=new Set(["-","\u2013","\u2014","/"]),_A=new Set(["k","K","l","L"]),aA=/['’]([A-Za-zऀ-ॿ]{1,2})(?![A-Za-zऀ-ॿ])/g;function WA(A){return tA.some(e=>A.startsWith(e))||A==="DIGITS"}function VA(A){return JA.some(e=>A.startsWith(e))}var W=O.O,_=O.SEP,rA=O.RANGE,qA=O.DIGITS,ZA=O.DOT,$A=O.COMMA,Ae=/\p{L}|\p{M}/u;function y(A){return Ae.test(A)?"letter":/[0-9]/.test(A)?"digit":/\s/.test(A)?"space":"punct"}function ee(A){let e=[],B=0,n=A.length;for(;B<n;){let t=y(A[B]),r=B+1;for(;r<n&&y(A[r])===t;)r++;e.push({type:t,start:B,end:r}),B=r}return e}function Be(A,e,B){let n=new Map;for(let P=e;P<B;P++){let o=A[P];VA(F[o])&&n.set(o,(n.get(o)??0)+1)}if(n.size===0)return W;let t=-1;for(let P of n.values())P>t&&(t=P);let r=[...n.entries()].filter(([,P])=>P===t).map(([P])=>P);if(r.length===1)return r[0];let f=-1,s=1/0,g=r[0];for(let P of r){let o=0,w=0,D=1/0;for(let C=e;C<B;C++)A[C]===P?(D===1/0&&(D=C),o++,o>w&&(w=o)):o=0;(w>f||w===f&&D<s)&&(f=w,s=D,g=P)}return g}function hA(A,e,B){let n=[],t=e;for(;t<B;){let s=t+1;for(;s<B&&A[s]===A[t];)s++;n.push({start:t,end:s,cls:A[t]}),t=s}let r=Be(A,e,B),f=[];for(let s=0;s<n.length;s++){let g=n[s];if(g.end-g.start>=3){f.push([g.start,g.end,g.cls]);continue}let o=s>0?n[s-1]:null,w=s<n.length-1?n[s+1]:null,D=o!==null&&o.end-o.start>=3,C=w!==null&&w.end-w.start>=3,u;if(D&&C){let v=o.end-o.start;u=w.end-w.start>v?w.cls:o.cls}else D?u=o.cls:C?u=w.cls:u=r;f.push([g.start,g.end,u])}return f}function ne(A){return tA.some(e=>A.startsWith(e))||A==="DIGITS"}function iA(A,e,B,n){if(A==="digit")return"DIGITS";if(A==="letter"){let t=hA(n,e,B),r=new Map;for(let[g,P,o]of t)r.set(o,(r.get(o)??0)+(P-g));let f=-1,s=-1;for(let[g,P]of r)P>s&&(s=P,f=g);return f>=0?F[f]:null}return null}function IA(A,e,B){let n=e+B;if(n<0||n>=A.length||A[n].type==="space"&&(n+=B,n<0||n>=A.length))return null;let t=A[n];return t.type==="digit"||t.type==="letter"?t:null}function re(A,e,B){let n=IA(A,e,-1),t=IA(A,e,1);if(!n||!t)return!1;let r=iA(n.type,n.start,n.end,B),f=iA(t.type,t.start,t.end,B);return!r||!f||!ne(r)?!1:f==="DIGITS"||f.startsWith("CARD_")||f.startsWith("PFX_")}function te(A,e){let B=A.length,n=new Array(B),t=ee(A);for(let r=0;r<t.length;r++){let f=t[r],{type:s,start:g,end:P}=f;if(s==="digit"){for(let C=g;C<P;C++)n[C]=qA;continue}if(s==="space"){let C=!1;for(let v=g;v<P;v++)if(e[v]===rA){C=!0;break}let u=C?rA:_;for(let v=g;v<P;v++)n[v]=u;continue}if(s==="letter"){for(let[C,u,v]of hA(e,g,P))for(let I=C;I<u;I++)n[I]=v;continue}let o=r>0?t[r-1].type:null,w=r<t.length-1?t[r+1].type:null,D=_;if(P-g===1){let C=A[g];(C==="."||C===",")&&o==="digit"&&w==="digit"?D=C==="."?ZA:$A:KA.has(C)&&re(t,r,e)?D=rA:D=_}for(let C=g;C<P;C++)n[C]=D}return n}function fe(A,e){let B=Array.from({length:e},(n,t)=>A[t]);for(let n=1;n<e-1;n++)A[n]===0&&(A[n-1]===1||A[n-1]===2)&&A[n+1]===2&&(B[n]=2);return B}function lA(A){return A!==void 0&&A>="0"&&A<="9"}function se(A,e,B){if(B<=e||!lA(A[B-1]))return B;let n=B;for(;n<A.length&&lA(A[n]);)n++;return n}function ge(A){let e=[],B=0,n=A.length;for(;B<n;)if(y(A[B])==="letter"){let t=B+1;for(;t<n&&y(A[t])==="letter";)t++;e.push([B,t]),B=t}else B++;return e}function bA(A){return tA.some(e=>A.startsWith(e))&&A!=="DIGITS"}function Pe(A,e,B,n,t){let r=Array.from({length:n.length},(f,s)=>n[s]);for(let[f,s]of t){if(s<=e||f>=B)continue;let g=Math.max(f,e),P=Math.min(s,B),o=f>=e&&s<=B;if(o){for(let w=f;w<s;w++)if(!bA(F[r[w]])){o=!1;break}}if(o){s-f===1&&F[r[f]].startsWith("UNIT_")&&_A.has(A[f])&&s<A.length&&y(A[s])==="letter"&&(r[f]=W);continue}for(let w=g;w<P;w++)bA(F[r[w]])&&(r[w]=W)}return r}function oe(A,e,B,n){let t=Array.from({length:n.length},(s,g)=>n[g]),r=A.slice(e,B);aA.lastIndex=0;let f;for(;f=aA.exec(r);)for(let s=e+f.index;s<e+f.index+f[0].length;s++)t[s]=W;return t}function HA(A,e,B,n){let t=A.length,r=fe(e,t),f=[],s=null;for(let w=0;w<t;w++){let D=r[w];D===1?(s!==null&&f.push([s,w]),s=w):D===2||s!==null&&(f.push([s,w]),s=null)}s!==null&&f.push([s,t]);for(let w=0;w<f.length;w++)f[w]=[f[w][0],se(A,f[w][0],f[w][1])];let g=ge(A),P=Array.from({length:t},(w,D)=>B[D]),o=[];for(let[w,D]of f){let C=A.slice(w,D),u=Array.from({length:D-w},(c,E)=>P[w+E]),v=te(C,u);for(let c=w;c<D;c++)P[c]=v[c-w];P=Pe(A,w,D,P,g),P=oe(A,w,D,P);let I=w,l=[];for(let c=w+1;c<=D;c++)(c===D||P[c]!==P[I])&&(l.push([P[I],I,c]),I=c);let Q=0,b=l.length;for(;Q<b&&EA.has(F[l[Q][0]]);)Q++;for(;b>Q&&EA.has(F[l[b-1][0]]);)b--;let i=l.slice(Q,b);if(i.length===0)continue;let M=i[0][1],L=i[i.length-1][2];if(!i.some(([c])=>WA(F[c])))continue;let a=null;if(n){let c=[];for(let E=M;E<L;E++)c.push(Math.max(...n[E]));if(a=c.length?c.reduce((E,H)=>E+H,0)/c.length:0,a<.5)continue}o.push({start:M,end:L,text:A.slice(M,L),tokens:i.map(([c,E,H])=>[c,A.slice(E,H)]),confidence:a})}return o}function we(A){let e=[],B="",n=!1,t=()=>{if(n){let r=B.replace(/,/g,""),f=parseFloat(r);e.push(["NUM",Number.isNaN(f)?0:f])}B="",n=!1};for(let[r,f]of A)r!=="SEP"&&(r==="DIGITS"||r==="DOT"||r==="COMMA"?(B+=f,n=!0):(t(),e.push([r,f])));return t(),e}function De(A,e){if(e!==null){let B=nA[e];if(B===void 0)return A!==null?A:1;if(A!==null&&B.op){if(B.op==="sub25")return A-.25;if(B.op==="add25")return A+.25;if(B.op==="add5")return A+.5}return B.standalone}return A!==null?A:1}function Ce(A){let e=we(A),B=0,n=null,t=null,r=null,f=null;function s(g){let P=De(r,f);if(g===null)B+=P*1;else{let o=K(g);n!==null&&o>n?B=B*o:B=B+P*o,n=o,(t===null||o>K(t))&&(t=g)}r=null,f=null}for(let[g,P]of e)if(g==="NUM")r!==null&&s(null),r=P;else if(vA(g)){r!==null&&s(null);try{r=cA(g)}catch{}}else if(QA(g))f!==null&&s(null),f=g;else if(uA(g))s(g);else continue;return(r!==null||f!==null)&&s(null),[B,t]}function m(A){let e=Math.round(A),B=Math.max(1e-6,Math.abs(A)*1e-9);return Math.abs(A-e)<B?e:Math.round(A*1e6)/1e6}function Qe(A){let e=[],B=0;for(;B<A.length;){let[n,t]=A[B];if(n.startsWith("PFX_")){let r=t,f=B+1;for(;;){let s=f;if(s<A.length&&A[s][0]==="SEP"&&s++,s<A.length&&A[s][0]===n){for(let g=f;g<=s;g++)r+=A[g][1];f=s+1;continue}break}e.push([n,r]),B=f}else e.push(A[B]),B++}return e}function MA(A){try{let e=A.map(D=>D[0]),B=Qe(A),n=[[]];for(let[D,C]of B){if(D==="RANGE"){n.length<2&&n.push([]);continue}n[n.length-1].push([D,C])}let t=n.filter(D=>D.length>0).map(D=>Ce(D));if(t.length===0)return{value:0,range:null,unit:null,classes:e,currency:null};if(t.length===1){let[D,C]=t[0];return{value:m(D),range:null,unit:C?J[C]??null:null,classes:e,currency:null}}let[r,f]=t[0],[s,g]=t[1];if(f!==null&&g!==null&&r>s)return{value:m(r+s),range:null,unit:J[f]??null,classes:e,currency:null};let P;f===null&&g!==null?(r=r*K(g),P=g):P=f!==null?f:g;let[o,w]=r<=s?[r,s]:[s,r];return{value:m(o),range:[m(o),m(w)],unit:P?J[P]??null:null,classes:e,currency:null}}catch{return{value:0,range:null,unit:null,classes:A.map(e=>e[0]),currency:null}}}function ve(A){let e=!1;for(let[B]of A)if(B==="DIGITS")e=!0;else if(B.startsWith("UNIT_")||B.startsWith("PFX_")||B.startsWith("CARD_"))return!1;return e}function dA(A){if(!ve(A))return!1;let e=0,B=!1;for(let[n,t]of A)n==="DIGITS"?e+=t.length:n==="COMMA"&&(B=!0);return e<=4&&!B||e>=10}function FA(...A){let e=(n,t)=>t.length-n.length,B=n=>[...new Set(n.flat())].sort(e);return{currency_markers_before:B(A.map(n=>n.currency_markers_before??[])),currency_words_after:B(A.map(n=>n.currency_words_after??[]))}}function LA(A,e,B,n){let t=A.slice(Math.max(0,e-8),e),r=A.slice(B,B+8),s=t.replace(/\s+$/,"").toLowerCase(),g=[...n.currency_markers_before??[]].sort((D,C)=>C.length-D.length);for(let D of g){let C=D.replace(/\.+$/,"").toLowerCase();if(s.endsWith(D.toLowerCase())||s.endsWith(C))return"INR"}let o=r.replace(/^\s+/,"").toLowerCase(),w=[...n.currency_words_after??[]].sort((D,C)=>C.length-D.length);for(let D of w){let C=D.toLowerCase();if(o.startsWith(C))return"INR"}return null}var RA={currency_markers_before:["\u20B9","Rs","Rs.","rs","INR","Re"],currency_words_after:["rupaye","rupay","rupees","rupiya","rupya","/-"]};var OA={currency_markers_before:["\u20B9","\u0930\u0941","\u0930\u0941.","Rs","Rs.","INR"],currency_words_after:["\u0930\u0941\u092A\u092F\u0947","\u0930\u0941\u092A\u090F","\u0930\u0942\u092A\u092F\u0947","\u0930\u0941\u092A\u092F\u093E","/-"]};var ue=`
1
+ function zA(A){return A.version===2&&Array.isArray(A.conv)}function TA(A){return A.quantized!==void 0}function kA(A){let e=atob(A),n=new Int8Array(e.length);for(let B=0;B<e.length;B++)n[B]=e.charCodeAt(B)<<24>>24;return n}function z(A){let e=kA(A.data_b64),n=new Float32Array(e.length);for(let B=0;B<e.length;B++)n[B]=e[B]*A.scale;return{shape:A.shape,data:n}}function T(A){return{shape:A.shape,data:Float32Array.from(A.data)}}function wA(A,e){return A*(e-1)/2}function N(A){return{w:T(A.w),b:Float32Array.from(A.b.data)}}function X(A){return{w:z(A.w),b:Float32Array.from(A.b)}}function PA(A){let e=TA(A);if(zA(A)){let s=A.conv.map(t=>{let g=wA(t.dilation,t.k);if(e){let P=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:g,w:z(P.w),b:Float32Array.from(P.b)}}let o=t;return{k:t.k,dilation:t.dilation,residual:t.residual,padding:g,w:T(o.w),b:Float32Array.from(o.b.data)}});return{version:2,charset:A.charset,classes:A.classes,embed:e?z(A.embed):T(A.embed),conv:s,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}let n=A.layers??3,B=A.dilation??2,f=[{name:"conv1",k:3,dilation:1},{name:"conv2",k:5,dilation:1},{name:"conv3",k:3,dilation:B}];n===4&&f.push({name:"conv4",k:3,dilation:4});let r=f.map(s=>{let t=wA(s.dilation,s.k);if(e){let w=A[s.name];if(!w)throw new Error(`missing ${s.name} in weights JSON`);return{k:s.k,dilation:s.dilation,residual:!1,padding:t,w:z(w.w),b:Float32Array.from(w.b)}}let o=A[s.name];if(!o)throw new Error(`missing ${s.name} in weights JSON`);return{k:s.k,dilation:s.dilation,residual:!1,padding:t,w:T(o.w),b:Float32Array.from(o.b.data)}});return{version:A.version??1,charset:A.charset,classes:A.classes,embed:e?z(A.embed):T(A.embed),conv:r,bio:e?X(A.bio):N(A.bio),cls:e?X(A.cls):N(A.cls)}}function xA(A){return Math.ceil(A/8)*8}function R(A){return xA(A+24)}var O=R(128),pA=/[०-९]/g;function k(A){return A.normalize("NFC").replace(pA,e=>String(e.charCodeAt(0)-2406)).toLowerCase()}function CA(A){let e=new Map;for(let n=0;n<A.length;n++)e.set(A[n],n);return e}function x(A,e,n,B){let f=e.get("<unk>")??1,r=e.get("<pad>")??0,s=B??A.length,t=n?n.subarray(0,s):new Int32Array(s);for(let g=0;g<A.length;g++)t[g]=e.get(A[g])??f;for(let g=A.length;g<s;g++)t[g]=r;return t}function eA(A){if(A<=128)return[{offset:0,length:A}];let e=[],n=112,B=0;for(;B<A;){let f=Math.min(128,A-B);if(e.push({offset:B,length:f}),B+f>=A)break;B+=n}return e}var j=class{buffers;padded;bioBuf;clsBuf;constructor(e){let n=e.conv,B=Math.max(e.embed.shape[1],...n.map(r=>r.w.shape[0]));this.buffers=[new Float32Array(B*O),new Float32Array(B*O)];let f=n.length?Math.max(...n.map(r=>r.padding)):0;this.padded=new Float32Array(B*(O+2*f)),this.bioBuf=new Float32Array(e.bio.w.shape[0]*O),this.clsBuf=new Float32Array(e.cls.w.shape[0]*O)}buf(e){return this.buffers[e%2]}paddedBuf(){return this.padded}};function mA(A,e,n,B,f,r){let[s,t,g]=B.w.shape;if(t!==e)throw new Error(`channel mismatch: expected ${e}, got ${t}`);let o=B.w.data,P=B.b,w=B.padding,C=B.dilation,D=n+2*w;for(let u=0;u<e;u++)r.fill(0,u*D,u*D+w),r.set(A.subarray(u*n,u*n+n),u*D+w),r.fill(0,u*D+w+n,u*D+D);for(let u=0;u<s;u++){let Q=u*n,l=P[u],I=u*e*g;if(g===3){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*3,d=o[i],M=o[i+1],E=o[i+2];for(let c=0;c<n;c++){let a=H+c;f[Q+c]+=d*r[a]+M*r[a+C]+E*r[a+2*C]}}}else if(g===5){for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*5,d=o[i],M=o[i+1],E=o[i+2],c=o[i+3],a=o[i+4];for(let h=0;h<n;h++){let F=H+h;f[Q+h]+=d*r[F]+M*r[F+1]+E*r[F+2]+c*r[F+3]+a*r[F+4]}}}else{for(let v=0;v<n;v++)f[Q+v]=l;for(let v=0;v<e;v++){let H=v*D,i=I+v*g;for(let d=0;d<g;d++){let M=o[i+d],E=d*C,c=H+E;for(let a=0;a<n;a++)f[Q+a]+=M*r[c+a]}}}if(B.residual)for(let v=0;v<n;v++){let H=f[Q+v];f[Q+v]=(H>0?H:0)+A[Q+v]}else for(let v=0;v<n;v++){let H=f[Q+v];f[Q+v]=H>0?H:0}}return s}function DA(A,e,n,B,f){let[r,s]=B.w.shape;if(s!==e)throw new Error(`head channel mismatch: expected ${e}, got ${s}`);let t=B.w.data,g=B.b,o=e-e%4;for(let P=0;P<n;P++){let w=P*r;for(let C=0;C<r;C++){let D=g[C],u=C*e,Q=0;for(;Q<o;Q+=4)D+=t[u+Q]*A[Q*n+P]+t[u+Q+1]*A[(Q+1)*n+P]+t[u+Q+2]*A[(Q+2)*n+P]+t[u+Q+3]*A[(Q+3)*n+P];for(;Q<e;Q++)D+=t[u+Q]*A[Q*n+P];f[w+C]=D}}return r}function S(A,e,n){let B=e.length,f=A.embed,r=f.shape[1],s=n.buf(0);for(let w=0;w<B;w++){let D=e[w]*r;for(let u=0;u<r;u++)s[u*B+w]=f.data[D+u]}let t=r,g=n.paddedBuf(),o=1;for(let w of A.conv){let C=n.buf(o);t=mA(s,t,B,w,C,g),s=C,o++}DA(s,t,B,A.bio,n.bioBuf);let P=DA(s,t,B,A.cls,n.clsBuf);return{bioLogits:n.bioBuf,clsLogits:n.clsBuf,length:B,nCls:P}}function BA(A,e,n,B){let f=-1/0;for(let s=0;s<n;s++)f=Math.max(f,A[e+s]);let r=0;for(let s=0;s<n;s++){let t=Math.exp(A[e+s]-f);B[s]=t,r+=t}for(let s=0;s<n;s++)B[s]/=r;return B}function p(A,e,n){let B=0,f=-1/0;for(let r=0;r<n;r++){let s=A[e+r];s>f&&(f=s,B=r)}return B}var yA=["PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE"],YA=Array.from({length:99},(A,e)=>`CARD_${e+1}`),NA=["UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],XA=["O","SEP","RANGE","DIGITS","DOT","COMMA"],L=["O",...XA.filter(A=>A!=="O"),...yA,...YA,...NA],U=Object.fromEntries(L.map((A,e)=>[A,e])),vA={UNIT_SAU:100,UNIT_HAZAAR:1e3,UNIT_LAKH:1e5,UNIT_MILLION:1e6,UNIT_CRORE:1e7,UNIT_BILLION:1e9,UNIT_ARAB:1e9,UNIT_KHARAB:1e11},J={UNIT_SAU:"sau",UNIT_HAZAAR:"hazaar",UNIT_LAKH:"lakh",UNIT_MILLION:"million",UNIT_CRORE:"crore",UNIT_BILLION:"billion",UNIT_ARAB:"arab",UNIT_KHARAB:"kharab"},nA={PFX_PAAV:{standalone:.25,op:null},PFX_AADHA:{standalone:.5,op:null},PFX_PAUNE:{standalone:.75,op:"sub25",min_n:2},PFX_SAVA:{standalone:1.25,op:"add25",min_n:2},PFX_DEDH:{standalone:1.5,op:null},PFX_DHAI:{standalone:2.5,op:null},PFX_SAADHE:{standalone:.5,op:"add5",min_n:3}};function QA(A){return A in nA}function uA(A){return A.startsWith("CARD_")}function cA(A){return A in vA}function aA(A){return parseInt(A.split("_",2)[1],10)}function K(A){return vA[A]}var SA=new Set(["SEP","RANGE","DOT","COMMA"]),EA=new Set([...SA,"O"]),fA=["PFX_","CARD_","UNIT_"],JA=["PFX_","CARD_","UNIT_"],KA=new Set(["-","\u2013","\u2014","/"]),_A=new Set(["k","K","l","L"]),iA=/['’]([A-Za-zऀ-ॿ]{1,2})(?![A-Za-zऀ-ॿ])/g;function WA(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function VA(A){return JA.some(e=>A.startsWith(e))}var W=U.O,_=U.SEP,rA=U.RANGE,qA=U.DIGITS,ZA=U.DOT,$A=U.COMMA,Ae=/\p{L}|\p{M}/u;function m(A){return Ae.test(A)?"letter":/[0-9]/.test(A)?"digit":/\s/.test(A)?"space":"punct"}function ee(A){let e=[],n=0,B=A.length;for(;n<B;){let f=m(A[n]),r=n+1;for(;r<B&&m(A[r])===f;)r++;e.push({type:f,start:n,end:r}),n=r}return e}function Be(A,e,n){let B=new Map;for(let o=e;o<n;o++){let P=A[o];VA(L[P])&&B.set(P,(B.get(P)??0)+1)}if(B.size===0)return W;let f=-1;for(let o of B.values())o>f&&(f=o);let r=[...B.entries()].filter(([,o])=>o===f).map(([o])=>o);if(r.length===1)return r[0];let s=-1,t=1/0,g=r[0];for(let o of r){let P=0,w=0,C=1/0;for(let D=e;D<n;D++)A[D]===o?(C===1/0&&(C=D),P++,P>w&&(w=P)):P=0;(w>s||w===s&&C<t)&&(s=w,t=C,g=o)}return g}function bA(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=Be(A,e,n),s=[];for(let t=0;t<B.length;t++){let g=B[t];if(g.end-g.start>=3){s.push([g.start,g.end,g.cls]);continue}let P=t>0?B[t-1]:null,w=t<B.length-1?B[t+1]:null,C=P!==null&&P.end-P.start>=3,D=w!==null&&w.end-w.start>=3,u;if(C&&D){let Q=P.end-P.start;u=w.end-w.start>Q?w.cls:P.cls}else C?u=P.cls:D?u=w.cls:u=r;s.push([g.start,g.end,u])}return s}function ne(A){return fA.some(e=>A.startsWith(e))||A==="DIGITS"}function lA(A,e,n,B){if(A==="digit")return"DIGITS";if(A==="letter"){let f=bA(B,e,n),r=new Map;for(let[g,o,P]of f)r.set(P,(r.get(P)??0)+(o-g));let s=-1,t=-1;for(let[g,o]of r)o>t&&(t=o,s=g);return s>=0?L[s]:null}return null}function IA(A,e,n){let B=e+n;if(B<0||B>=A.length||A[B].type==="space"&&(B+=n,B<0||B>=A.length))return null;let f=A[B];return f.type==="digit"||f.type==="letter"?f:null}function re(A,e,n){let B=IA(A,e,-1),f=IA(A,e,1);if(!B||!f)return!1;let r=lA(B.type,B.start,B.end,n),s=lA(f.type,f.start,f.end,n);return!r||!s||!ne(r)?!1:s==="DIGITS"||s.startsWith("CARD_")||s.startsWith("PFX_")}function te(A,e){let n=A.length,B=new Array(n),f=ee(A);for(let r=0;r<f.length;r++){let s=f[r],{type:t,start:g,end:o}=s;if(t==="digit"){for(let D=g;D<o;D++)B[D]=qA;continue}if(t==="space"){let D=!1;for(let Q=g;Q<o;Q++)if(e[Q]===rA){D=!0;break}let u=D?rA:_;for(let Q=g;Q<o;Q++)B[Q]=u;continue}if(t==="letter"){for(let[D,u,Q]of bA(e,g,o))for(let l=D;l<u;l++)B[l]=Q;continue}let P=r>0?f[r-1].type:null,w=r<f.length-1?f[r+1].type:null,C=_;if(o-g===1){let D=A[g];(D==="."||D===",")&&P==="digit"&&w==="digit"?C=D==="."?ZA:$A:KA.has(D)&&re(f,r,e)?C=rA:C=_}for(let D=g;D<o;D++)B[D]=C}return B}function fe(A,e){let n=Array.from({length:e},(B,f)=>A[f]);for(let B=1;B<e-1;B++)A[B]===0&&(A[B-1]===1||A[B-1]===2)&&A[B+1]===2&&(n[B]=2);return n}function HA(A){return A!==void 0&&A>="0"&&A<="9"}function se(A,e,n){if(n<=e||!HA(A[n-1]))return n;let B=n;for(;B<A.length&&HA(A[B]);)B++;return B}var ge=24;function oe(A,e,n){let B=[],f=e;for(;f<n;){let t=f+1;for(;t<n&&A[t]===A[f];)t++;B.push({start:f,end:t,cls:A[f]}),f=t}let r=[];for(let t=0;t<B.length;t++){let g=B[t];if(g.end-g.start>=3){r.push(g.cls);continue}let o=t>0?B[t-1]:null,P=t<B.length-1?B[t+1]:null,w=o!==null&&o.end-o.start>=3,C=P!==null&&P.end-P.start>=3;if(w&&C){let D=o.end-o.start,u=P.end-P.start;r.push(u>D?P.cls:o.cls)}else if(w)r.push(o.cls);else if(C)r.push(P.cls);else return null}return new Set(r).size===1?r[0]:null}function we(A,e,n){let B=A.length,f=Array.from({length:B},(r,s)=>A[s]);for(let[r,s]of n){let t=s-r;if(t===0||t>ge)continue;let g=!1,o=!0;for(let w=r;w<s;w++)A[w]===1||A[w]===2?g=!0:o=!1;if(!g||o)continue;let P=oe(e,r,s);if(!(P===null||!tA(L[P]))){for(let w=r;w<s;w++)f[w]=2;f[r]=1}}return f}function Pe(A){let e=[],n=0,B=A.length;for(;n<B;)if(m(A[n])==="letter"){let f=n+1;for(;f<B&&m(A[f])==="letter";)f++;e.push([n,f]),n=f}else n++;return e}function tA(A){return fA.some(e=>A.startsWith(e))&&A!=="DIGITS"}function Ce(A,e,n,B,f){let r=Array.from({length:B.length},(s,t)=>B[t]);for(let[s,t]of f){if(t<=e||s>=n)continue;let g=Math.max(s,e),o=Math.min(t,n),P=s>=e&&t<=n;if(P){for(let w=s;w<t;w++)if(!tA(L[r[w]])){P=!1;break}}if(P){t-s===1&&L[r[s]].startsWith("UNIT_")&&_A.has(A[s])&&t<A.length&&m(A[t])==="letter"&&(r[s]=W);continue}for(let w=g;w<o;w++)tA(L[r[w]])&&(r[w]=W)}return r}function De(A,e,n,B){let f=Array.from({length:B.length},(t,g)=>B[g]),r=A.slice(e,n);iA.lastIndex=0;let s;for(;s=iA.exec(r);)for(let t=e+s.index;t<e+s.index+s[0].length;t++)f[t]=W;return f}function hA(A,e,n,B){let f=A.length,r=Pe(A),s=fe(e,f);s=we(s,n,r);let t=[],g=null;for(let w=0;w<f;w++){let C=s[w];C===1?(g!==null&&t.push([g,w]),g=w):C===2||g!==null&&(t.push([g,w]),g=null)}g!==null&&t.push([g,f]);for(let w=0;w<t.length;w++)t[w]=[t[w][0],se(A,t[w][0],t[w][1])];let o=Array.from({length:f},(w,C)=>n[C]),P=[];for(let[w,C]of t){let D=A.slice(w,C),u=Array.from({length:C-w},(c,a)=>o[w+a]),Q=te(D,u);for(let c=w;c<C;c++)o[c]=Q[c-w];o=Ce(A,w,C,o,r),o=De(A,w,C,o);let l=w,I=[];for(let c=w+1;c<=C;c++)(c===C||o[c]!==o[l])&&(I.push([o[l],l,c]),l=c);let v=0,H=I.length;for(;v<H&&EA.has(L[I[v][0]]);)v++;for(;H>v&&EA.has(L[I[H-1][0]]);)H--;let i=I.slice(v,H);if(i.length===0)continue;let d=i[0][1],M=i[i.length-1][2];if(!i.some(([c])=>WA(L[c])))continue;let E=null;if(B){let c=[];for(let a=d;a<M;a++)c.push(Math.max(...B[a]));if(E=c.length?c.reduce((a,h)=>a+h,0)/c.length:0,E<.5)continue}P.push({start:d,end:M,text:A.slice(d,M),tokens:i.map(([c,a,h])=>[c,A.slice(a,h)]),confidence:E})}return P}function ve(A){let e=[],n="",B=!1,f=()=>{if(B){let r=n.replace(/,/g,""),s=parseFloat(r);e.push(["NUM",Number.isNaN(s)?0:s])}n="",B=!1};for(let[r,s]of A)r!=="SEP"&&(r==="DIGITS"||r==="DOT"||r==="COMMA"?(n+=s,B=!0):(f(),e.push([r,s])));return f(),e}function Qe(A,e){if(e!==null){let n=nA[e];if(n===void 0)return A!==null?A:1;if(A!==null&&n.op){if(n.op==="sub25")return A-.25;if(n.op==="add25")return A+.25;if(n.op==="add5")return A+.5}return n.standalone}return A!==null?A:1}function ue(A){let e=ve(A),n=0,B=null,f=null,r=null,s=null;function t(g){let o=Qe(r,s);if(g===null)n+=o*1;else{let P=K(g);B!==null&&P>B?n=n*P:n=n+o*P,B=P,(f===null||P>K(f))&&(f=g)}r=null,s=null}for(let[g,o]of e)if(g==="NUM")r!==null&&t(null),r=o;else if(uA(g)){r!==null&&t(null);try{r=aA(g)}catch{}}else if(QA(g))s!==null&&t(null),s=g;else if(cA(g))t(g);else continue;return(r!==null||s!==null)&&t(null),[n,f]}function y(A){let e=Math.round(A),n=Math.max(1e-6,Math.abs(A)*1e-9);return Math.abs(A-e)<n?e:Math.round(A*1e6)/1e6}function ce(A){let e=[],n=0;for(;n<A.length;){let[B,f]=A[n];if(B.startsWith("PFX_")){let r=f,s=n+1;for(;;){let t=s;if(t<A.length&&A[t][0]==="SEP"&&t++,t<A.length&&A[t][0]===B){for(let g=s;g<=t;g++)r+=A[g][1];s=t+1;continue}break}e.push([B,r]),n=s}else e.push(A[n]),n++}return e}function dA(A){try{let e=A.map(C=>C[0]),n=ce(A),B=[[]];for(let[C,D]of n){if(C==="RANGE"){B.length<2&&B.push([]);continue}B[B.length-1].push([C,D])}let f=B.filter(C=>C.length>0).map(C=>ue(C));if(f.length===0)return{value:0,range:null,unit:null,classes:e,currency:null};if(f.length===1){let[C,D]=f[0];return{value:y(C),range:null,unit:D?J[D]??null:null,classes:e,currency:null}}let[r,s]=f[0],[t,g]=f[1];if(s!==null&&g!==null&&r>t)return{value:y(r+t),range:null,unit:J[s]??null,classes:e,currency:null};let o;s===null&&g!==null?(r=r*K(g),o=g):o=s!==null?s:g;let[P,w]=r<=t?[r,t]:[t,r];return{value:y(P),range:[y(P),y(w)],unit:o?J[o]??null:null,classes:e,currency:null}}catch{return{value:0,range:null,unit:null,classes:A.map(e=>e[0]),currency:null}}}function ae(A){let e=!1;for(let[n]of A)if(n==="DIGITS")e=!0;else if(n.startsWith("UNIT_")||n.startsWith("PFX_")||n.startsWith("CARD_"))return!1;return e}function FA(A){if(!ae(A))return!1;let e=0,n=!1;for(let[B,f]of A)B==="DIGITS"?e+=f.length:B==="COMMA"&&(n=!0);return e<=4&&!n||e>=10}function LA(...A){let e=(B,f)=>f.length-B.length,n=B=>[...new Set(B.flat())].sort(e);return{currency_markers_before:n(A.map(B=>B.currency_markers_before??[])),currency_words_after:n(A.map(B=>B.currency_words_after??[]))}}function MA(A,e,n,B){let f=A.slice(Math.max(0,e-8),e),r=A.slice(n,n+8),t=f.replace(/\s+$/,"").toLowerCase(),g=[...B.currency_markers_before??[]].sort((C,D)=>D.length-C.length);for(let C of g){let D=C.replace(/\.+$/,"").toLowerCase();if(t.endsWith(C.toLowerCase())||t.endsWith(D))return"INR"}let P=r.replace(/^\s+/,"").toLowerCase(),w=[...B.currency_words_after??[]].sort((C,D)=>D.length-C.length);for(let C of w){let D=C.toLowerCase();if(P.startsWith(D))return"INR"}return null}var OA={currency_markers_before:["\u20B9","Rs","Rs.","rs","INR","Re"],currency_words_after:["rupaye","rupay","rupees","rupiya","rupya","/-"]};var UA={currency_markers_before:["\u20B9","\u0930\u0941","\u0930\u0941.","Rs","Rs.","INR"],currency_words_after:["\u0930\u0941\u092A\u092F\u0947","\u0930\u0941\u092A\u090F","\u0930\u0942\u092A\u092F\u0947","\u0930\u0941\u092A\u092F\u093E","/-"]};var Ee=`
2
2
  struct Params { batch: u32, length: u32, embedDim: u32, vocab: u32, stride: u32 };
3
3
  @group(0) @binding(0) var<uniform> p: Params;
4
4
  @group(0) @binding(1) var<storage, read> charIds: array<i32>;
@@ -17,7 +17,7 @@ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
17
17
  xOut[(b * p.embedDim + c) * p.length + t] = embed[cid * p.embedDim + c];
18
18
  }
19
19
  }
20
- `,ce=`
20
+ `,ie=`
21
21
  struct Params { batch: u32, length: u32, cIn: u32, cOut: u32, k: u32, padding: u32, dilation: u32, relu: u32, residual: u32, stride: u32 };
22
22
  @group(0) @binding(0) var<uniform> p: Params;
23
23
  @group(0) @binding(1) var<storage, read> x: array<f32>; // (batch, cIn, L)
@@ -52,7 +52,7 @@ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
52
52
  }
53
53
  out[(b * p.cOut + oc) * p.length + t] = acc;
54
54
  }
55
- `,Ee=`
55
+ `,le=`
56
56
  struct Params { batch: u32, length: u32, cIn: u32, nOut: u32, stride: u32 };
57
57
  @group(0) @binding(0) var<uniform> p: Params;
58
58
  @group(0) @binding(1) var<storage, read> x: array<f32>; // (batch, cIn, L)
@@ -76,4 +76,4 @@ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
76
76
  }
77
77
  out[(b * p.length + t) * p.nOut + o] = acc;
78
78
  }
79
- `;function fA(){return typeof navigator<"u"&&!!navigator.gpu}var V=null;function sA(){return V||(V=(async()=>{if(!fA())return!1;try{return await navigator.gpu.requestAdapter()!==null}catch{return!1}})(),V)}var q=class{weights;state=null;constructor(e){this.weights=e}async init(){if(this.state)return this.state;if(!fA())throw new Error("WebGPU is not available in this environment");let e=await navigator.gpu.requestAdapter();if(!e)throw new Error("No WebGPU adapter available");let B=await e.requestDevice(),n=(s,g)=>{let P=B.createBuffer({size:Math.max(4,s.byteLength),usage:g,mappedAtCreation:!0});return new Float32Array(P.getMappedRange()).set(s),P.unmap(),P},t=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,r=this.weights,f=r.conv.map(s=>({w:n(s.w.data,t),b:n(s.b,t)}));return this.state={device:B,embedModule:B.createShaderModule({code:ue}),convModule:B.createShaderModule({code:ce}),headModule:B.createShaderModule({code:Ee}),embedBuf:n(r.embed.data,t),convBufs:f,bioBuf:{w:n(r.bio.w.data,t),b:n(r.bio.b,t)},clsBuf:{w:n(r.cls.w.data,t),b:n(r.cls.b,t)}},this.state}async run(e,B,n){let t=await this.init(),{device:r}=t,f=this.weights,s=f.embed.shape[1],g=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC,P=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,o=r.createBuffer({size:e.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});new Int32Array(o.getMappedRange()).set(e),o.unmap();let w=a=>{let c=r.createBuffer({size:a.byteLength,usage:P,mappedAtCreation:!0});return new Uint32Array(c.getMappedRange()).set(a),c.unmap(),c},D=r.limits?.maxComputeWorkgroupsPerDimension??65535,C=a=>{let c=Math.max(1,Math.ceil(a/64)),E=Math.min(c,D),H=Math.ceil(c/E);return{x:E,y:H,stride:E*64}},u=(a,c,E)=>{let H=r.createBindGroup({layout:a.getBindGroupLayout(0),entries:c}),d=r.createCommandEncoder(),h=d.beginComputePass();h.setPipeline(a),h.setBindGroup(0,H),h.dispatchWorkgroups(E.x,E.y),h.end(),r.queue.submit([d.finish()])},v=r.createBuffer({size:B*s*n*4,usage:g});{let a=C(B*n),c=w(new Uint32Array([B,n,s,f.embed.shape[0],a.stride])),E=r.createComputePipeline({layout:"auto",compute:{module:t.embedModule,entryPoint:"main"}});u(E,[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:o}},{binding:2,resource:{buffer:t.embedBuf}},{binding:3,resource:{buffer:v}}],a)}let I=s,l=f.conv,Q=r.createComputePipeline({layout:"auto",compute:{module:t.convModule,entryPoint:"main"}});for(let a=0;a<l.length;a++){let c=l[a],[E,,H]=c.w.shape,d=c.dilation,h=c.padding,U=r.createBuffer({size:B*E*n*4,usage:g}),Y=C(B*E*n),UA=w(new Uint32Array([B,n,I,E,H,h,d,1,c.residual?1:0,Y.stride]));u(Q,[{binding:0,resource:{buffer:UA}},{binding:1,resource:{buffer:v}},{binding:2,resource:{buffer:t.convBufs[a].w}},{binding:3,resource:{buffer:t.convBufs[a].b}},{binding:4,resource:{buffer:U}}],Y),v=U,I=E}let b=r.createComputePipeline({layout:"auto",compute:{module:t.headModule,entryPoint:"main"}}),i=async(a,c)=>{let E=r.createBuffer({size:B*n*c*4,usage:g}),H=C(B*n*c),d=w(new Uint32Array([B,n,I,c,H.stride]));u(b,[{binding:0,resource:{buffer:d}},{binding:1,resource:{buffer:v}},{binding:2,resource:{buffer:a.w}},{binding:3,resource:{buffer:a.b}},{binding:4,resource:{buffer:E}}],H);let h=r.createBuffer({size:B*n*c*4,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),U=r.createCommandEncoder();U.copyBufferToBuffer(E,0,h,0,B*n*c*4),r.queue.submit([U.finish()]),await h.mapAsync(GPUMapMode.READ);let Y=new Float32Array(h.getMappedRange().slice(0));return h.unmap(),Y},M=await i(t.bioBuf,f.bio.w.shape[0]),L=await i(t.clsBuf,f.cls.w.shape[0]);return{bio:M,cls:L}}};var xA={version:2,quantized:"int8_symmetric_per_tensor",charset:["<pad>","<unk>"," ","!",'"',"#","%","'","(",")","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":","=","?","@","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","}","~","\u0901","\u0902","\u0903","\u0905","\u0906","\u0907","\u0908","\u0909","\u090A","\u090F","\u0911","\u0913","\u0914","\u0915","\u0916","\u0917","\u0918","\u091A","\u091B","\u091C","\u091D","\u091F","\u0920","\u0921","\u0922","\u0923","\u0924","\u0925","\u0926","\u0927","\u0928","\u092A","\u092B","\u092C","\u092D","\u092E","\u092F","\u0930","\u0932","\u0935","\u0936","\u0937","\u0938","\u0939","\u093C","\u093E","\u093F","\u0940","\u0941","\u0942","\u0947","\u0948","\u0949","\u094B","\u094C","\u094D","\u20B9"],classes:["O","SEP","RANGE","DIGITS","DOT","COMMA","PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5","CARD_6","CARD_7","CARD_8","CARD_9","CARD_10","CARD_11","CARD_12","CARD_13","CARD_14","CARD_15","CARD_16","CARD_17","CARD_18","CARD_19","CARD_20","CARD_21","CARD_22","CARD_23","CARD_24","CARD_25","CARD_26","CARD_27","CARD_28","CARD_29","CARD_30","CARD_31","CARD_32","CARD_33","CARD_34","CARD_35","CARD_36","CARD_37","CARD_38","CARD_39","CARD_40","CARD_41","CARD_42","CARD_43","CARD_44","CARD_45","CARD_46","CARD_47","CARD_48","CARD_49","CARD_50","CARD_51","CARD_52","CARD_53","CARD_54","CARD_55","CARD_56","CARD_57","CARD_58","CARD_59","CARD_60","CARD_61","CARD_62","CARD_63","CARD_64","CARD_65","CARD_66","CARD_67","CARD_68","CARD_69","CARD_70","CARD_71","CARD_72","CARD_73","CARD_74","CARD_75","CARD_76","CARD_77","CARD_78","CARD_79","CARD_80","CARD_81","CARD_82","CARD_83","CARD_84","CARD_85","CARD_86","CARD_87","CARD_88","CARD_89","CARD_90","CARD_91","CARD_92","CARD_93","CARD_94","CARD_95","CARD_96","CARD_97","CARD_98","CARD_99","UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],embed_dim:16,channels:48,embed:{shape:[115,16],scale:.037109747529029846,data_b64:"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"},conv:[{k:5,dilation:1,residual:!1,w:{shape:[48,16,5],scale:.0056425235234200954,data_b64:"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"},b:[-.24382,-.38407,-.17817,-.351,-.22238,-.0019299,.028242,-.32424,-.21751,-.039856,-.006906,.12596,-.51106,.050427,.15754,.092282,-.29897,-.62661,-.0011282,-.7889,-.13757,.19859,-.055453,-.46586,-.038519,-.46619,.029959,-.0023833,-.30013,-.51659,-57684e-8,-.19363,-.10826,-.0072604,-.55949,.039256,-.28819,-.31607,1372e-7,-.063139,-.052011,-.12956,-.22692,-.51442,.16734,-.55926,.027049,-.51846]},{k:3,dilation:1,residual:!0,w:{shape:[48,48,3],scale:.013383498415350914,data_b64:"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"},b:[.11358,.11704,-.088201,-.033611,-.002863,.066441,.21947,.3986,-.12785,.46101,.26606,.1678,.17644,.49194,.36484,.3702,-.028757,.043993,-.032994,.45611,.06581,-.087146,.062385,.033713,.14835,.21905,.26361,-.10899,.29428,.48339,-.067757,.28667,.2584,-.10572,-.029867,.62242,-.16582,.19591,.20494,.15142,.42574,.21697,.023204,.21846,.019266,-.092303,.17447,.071329]},{k:3,dilation:2,residual:!0,w:{shape:[48,48,3],scale:.010257013142108917,data_b64:"QMb/HSUrCAfyAgDSDB0H9goIAOAE1tPo7OD6BvkLAtz78+0CMScMBAsE3Nv8DwsIEQ0EANvT8v8F/NziBRwPBNTpA+n7Dw4FFQb+HPcC/+rmFxgVIwPwz+AA6+4HJiT9+Ofp1bnjAATQ/O3l+t3pBAsWDRYb+enxCgYLCBD4A/UMAQT/8yAIEhz8AhApFBsOA//1HP065+fx+AEIASQOCQ/+B+cBAQH25t735M8I+fAICyQL8QUGAwX3BPL9GBIK7f75BPr6ABADyPb1Ahn68tbiDyMdAQL84/f1DgoKFf/35OjoBu4PAfD2DA4HARgCCQf4BN7kARvnCPnpDx329wsPAhIABBAJKBAE9CEP9Aj08N3pAQwI9h0G++z1DfMKBf0JCRUo4LApAwAuBBL1/fHtAdXcBf0M+/vU8eLrAfwS5wHG+Q0Z9w/kAQXfKC7D2wr8BxZABuwdDhUa9e4O8fX8Ag/g8ef1EQIaERYEGRcXBwD9FhkQCfUD/+vsDgcC8xAKAtT5/Ps1BvTo+gIF7wbo7/XnBw4TGCnkBPjp/iYA8f4VAQjRGRkWGw0B+8LY/Oj59w0IFBMAB6Ma7eTe/fP6BO/9BQT7/+rb/AoBDBsBC/kGAQYMBBMQ8vv91dHm6wMHEyUnDwwM9gn9+dz6+v0GCfjZAPX1CwkB//zw9PYCChIZDyUVA/cC/v0F/wkaAPj8+uzz8PL99vEL8/gG9/v/CAQBAQAJ/e4B/AkPDA4V+fb8+8LsBQL0+vDuBRIX7NUG+AYN+cnJ9tTe8eUr8P3r/hAFEvv8BPj4/gUSAd/X+voHFfq9DROjAx4L/ygXABoQEA7c+ADqDdgW7gkj/ejVBBgxCRQnDfvT+xYpHybR/dHCGQHa+u0L6wMhCugE+RorBfYC7+ux9PYm7/oDAfMd8gDw7gwHIzcLCN3i6itS/iYBEenDBcTlFPQWEJD3DREW8er1EQ74HP4BEwn8GMUDBPML+Q387eYF+eX0/wwD6fP3EvjwBxkNDCEV/QEDzb3xBPUABvD1GQf++gD3DCUV9ubaGQoZDAv56fflHwIdCP378/779Qz+AA0K6fP6+/cNCxYVESMYDRz1FhkP3eHs+QAPAQcE/wn27eoI09oA5uUI7Ab0DggQ5d7y/AUI7vD9+fT/29bq+NHrD/sA9tkBBSkIAfn8/REF79v8980AGBoK593nBPn1/vT6FxwHCA8DCBMO9PP76dfzFA4F+tbT+P4DEPoB+O73IgoNBwYK4ef3AhQICyMd+/wJBQMBDQcGERoo6N7WAO8EDfP9CBEO+Pn2/fD8Ghf8GhMMAAgLFxEOEfr3+uHnDAX9CgoF+/EH9uf0GAH5DwjtALsJEPsBAQ0HEf4H7+MACxwEDg/99PMPCR/59/79DgsF3wQU1AAA+/ICAQ/62O/8AwwbAAr28vr568oNAxDsxPIEEA79/Or77/337RQE/f4GBw706vAJ4vkPIRLt3PcU7xL30vUNGvUBEAL38xAJ5Qf2++P+5/oA7QH5DhDw4e353PoJDwYJ+xQNzenu9Qn6Df37zebuCfv+/gTxJPMKHu0G+/IZAf0G3Nj1+vUMHAwLLhkCFf7/2OsQ8fX+BA798Qv88uP0Hx0jCjMO99z9FRkM9Nz8y+P/KggDAhEE5BD8CAgAFQ78/gHvANHpFhj85fHrBgAD7e0H8vv6MfsCB/j+7/AEKw//LugEzNsLEQj8/w0I9fTtER4B/uL5BRzlFRMS2v8ICioFCfkCCwbYFxkm+gABCu8C+hbw9fwY+Qb+B94AEQocAA3c/QMHABsDAvAY6OgYFCkLBgHl+OD66uj59wTg5yYSDxP26LO9/8/0DAj9CQrv8+EF7/Pg8wQO06jhBvn8BQz58xEJ/O4KIRPi59oHBvTpLMvvBBHmEAEAISoh+uIL6/j5FgL8DQz87vvzAf79/vUBCQL7DgMGAAwAGssGBv77+gL8/RIR9wQBCOP73wT9BPoJAwEI6vX08On8/Q0NC/XyBQcF7/4H1NLj/ggQ+xIABPYBCO38/fMJ/gUZFfn8+gn//wn6Ag4C8gwE+Ar8/vwB8wIE7uz/AwoEB/j99AUE+yT++AsBEQIJC/UI+AQD/P31Afv2+fj++/YF/QT/+fz+/gH4/AIFBPcA/fYC//v8+/n3/AP9AQT6Av0B+fj89wQA+AL6+AX//wL3/gD3/gH8+gH////8AAQC/vj+AwH4+v37+wH3+f0ABv72Av77AgD/Afz/AQD9+fj2+QHz+QH29f0AAvYA9/v+A/8E/vb39wAA/ff/BfgE/wD/BP/u/v7f693z9P8CEg4M/QEU/OwIAvMC9A4F/QH69+YAAPQNFs0Y+fIIBwsIGA4G+wISCwXm+O378fTcAvr6CPfz+gYFCSYiDxEA+t/x/ywC9gMGDgcDA/f8BfD+/uDx5AoICyU0FAX4DhIA9+3v9AYQ+v8K+wn7DQL/9P4N9A0A/iAU8uAC++j8CxcI+uHnEPgD7AYEChL1Bg8Bx/b/AQH7A+T8DQYOGfHl+RcCCw789AUEAxcLFeoUBv786eX9zfsIAfIDDP7u4ezv6eMH+fDkCPoAChUQ9vH16w0M6vL37v/99f7zAvwG9N7nBPwQydr+/wcG6O/vCOz28OUE+RsV8/PzCxUPGy0JHxkb5/P9+/vrA+f/CAT87uDzAQ8CER0D+Prv9w8G+vn2AP3++vkBAt8DAQMLBwbzECD7AgMHAPkD6er6/PX1HdkHIBsL9PL5/wAM+Pz8HB8X/+0C9e/69/oECvn5APj++/79+wX9ABYBCBUoARMV/P4NCQIF+PL++ub3///jCAYKABIL5+v3AAP5/PwF7PP/BBQS4N/1Aw0GAfv7Aw79GyAG/gP4/Of+BgML8/L6zt36KhMF/gL7BNT9+gAG9v0I/wT98N0J/xsU+wUU9Of7EBoBNen8+N3wBQwa4ukB/QwJ///89Oz/BAYIEAALAfPuBwD7CxgF4+z2DfcG/vv48+v1EfT56L38/P4C6fr7Egj87e3zAgoO+wYBFQ74AwH3AQQHEwn19/f4+f34DQ0FBAf69QL+/wEG7QUA/dft5+DzDgAPC+X5D/D48/j67iEWAhL69cwSGSkK9tTK7fvlBgr6+QcBLOcW6Mrj6Pv1/fH0Jhv55drfFPAE+uPsBvUFCRkWB/3w6tfo6NL6+wwc+/0Q7wUb/gMHEQkQ2c24BuoQAc/3DRERAwPrCw4E/QQIFAX/9PYkIDIWCwbsAPnwBPj5Ch8c6N31+wEMCdv6/RXwCAIF5/T7ChoKCQ4B7fYEDNYEA9D0/BwMISD8/9T+HA8I5rv+8PEBWyYcAvcLBgkE1AAE8NDuCwEe+wUG/OTlCQUYBA301OgBNynv+A3wrtfk+NrvHQD+1gILCBTU9wMS8vkQAwoP2fz+4v4LGNr0/f4a3hgTGAPwBrnY+gns+gIC+RQDChIG4fwMB/oRDRXx6gv3AATq/e0JAgPsARAo/foBEhAB9hYQ9RH9Dib5DgD74Mv/y+IF++XeCdUM9Bf78twDAwv06+z23+jj/DEE6AclDiYUAyEHDQsSBO8ICuz4E/r09fIL5hcP/eUA9+AE9vvi5NgDB+kFFx70+Pbz7wH7+fUZ6RQJ7xgRCQbiAhfw9wEa8fQBFxT76O36/u3vChD68+7y+vn+/PPw+v8OCe3wAQMH+gT/AQ8QCgMDEAL//AgE9vv2FQkSBQcDLew39+gF/fDlEBETB/v5BwwBDBMB/f0Q8tTvDhEZ++fyBev8AgT9/OH6BAr8+Bzw/QTw8vHgCxAG/fz88+r7FBQI/wQP9QrvIQ4NCjgN8fbw6vcJBBQP3tb0ABYSCwoR8/LrLgAM8fL49v8A+Pfx+vok+Q4E99vs3/oKGxcCFQroEQLs6enzChwk5M3QAgb1EgIF+bke9t3SAR4SIC0/EAIIEhklGgP/CxQ08Pfa99/e8+D/Cgv36OcOEhsdFAbe/Ofz+PnvFCkW+AD7AxED9RMCDiwUCSMZ6M37B/sVH+bX7wcp6fIHCvkM/PgKDA0ECgP4/Oz2AgL9+hwI9fMA+wUZAfz/CA359vYJ+vD2BwsDAf/++QECAwIK+/r6Bv39Afn/EBL2CMAIBPH+8OT3BAEJ+vv7BQoFCgwH+vwE+fMDAf8BARv/AwkPBSoZAAASCg3/AwH9Afj6/PkFAQD38+r+AAMN/PAF/Pf98+QDAv34+Pj9BvwB2xT9AAb+7s4B2RDrF/z7Efft6ukLAA8G1AD26ewXA+QFHe4RKgft/BT86Pr7FtMP6/H7Dwr5+RMRCgz69PAU5+70LtkYB/Hj//T1AQYFHbHN4v8IG+b3BP8I7/jvG/bi5P3+CALp8PnZES/+APXvFi8PA/IBD/sD9s0EBhcREusW5vzz9vX//CP7B+D+5xkR16D1/SMW+tvV5+Lq6/X6xdT1C8MMDh78AR31AQ8EFBEEB/0MCw0I9P71GBAKFxkA6dn/6c7S//oDEBEPy8by9bzdBQcEUAdJDiz84fruFQ73zQ8PHyEWCyQDChUD/N7kHBAE+fjzDd/48v706w8M/QsU+fsGx+EE7ugGECUjNDsK8wToE/T6+u0F/yolBgD66uX++QsdBu8C7AUoLx4P2MjwA+3xA+PkCCbwEf0KBebs9uzv2O8A7ND0Ixvj//Lu+AcQ8goI3s0BB/Pz6g82587q6wIBBgcKTw85GB8R9fD73yI+HikLDN7c7+bdBQIZDgX45+r6H/7y0rTsGjUv8OUeAR7y9A/zu5wLGjIc3uQFB/717he5Egr/BggoFi4ZDu8CDhf8DPIA9vnuFQX98Pz94vH4/Qb/APML5xQD1PQBGSEIExf4ERD37QQAAQgSAPD8AOULBP0E1OcBEf0M3PPtDwgW8PUPE/X4Q+QS59MB9RT6BPj9CAkE8e4C1u0BGvgEDBH0/g3z/f3+D//oMg8F8O/6I/b0+fgBCwf8Af4J99L/BAYBCgHsAgcCBAb97Pb3FiEP7PP37/79DB4MB9P+AhMHEN3vDAL/APD+BvT6HhkJ5voHD+v1+/P2M/3yFRwQDjj15fT71/IDCgsZ6NXaHxz/Ii4I5Ob7BQEOKwX9tugUGxr8+gnz9Aj8GPoBEQ8FJB0a973N6/n66A8BCP4L5iL94tMBNRcHDAoQCSgG7wX/JCEF4svqBhME9RQcJhL9APYa4NnnFAzgDSMS+AEC//z75bXe4Mfb6Nv06tcCFAb7LSoF/fAD38Hu/fX3DCYeBhz+69r4HCgu/SMd9tbmuef+AAQDChwK+dvYDfPaVgk6DC8Y+xcDEPb5IgcHC/fv9wcMGA7V78PSA+T1DxYW9AUF5NYC/eEOPDcR2NsMFAUP9gfNCyUIBPQM7fbvFN733OUl9/sCDsIP+u76EwDp/4cMARj/A/z4BiHUAfP9+w36Dv7wBBbiBQvq2BscwgcN7d0fC/gC3Qn/Ce/4D8fN7gE4wP4i+hf+6wj21ykLFbLV6dhNCe8H/vIF+in+sBwK9vIIDj3w+/7/BgQE5twSGcP8IgPt9CUR7g4fwgUG6RP80zoJFQDp8dML8AEL6fz0AQcQ8e8JDBUb9uLqAAkHAOX9AQQJARbo+BEH/vsKAuz1CAL5DQ8O9vYHAvX88fn0/wnz/PgH+f796+DxDfYOAQIGCgj2CQcDEA0EBxwI/vP4CAnoHOYs/Q0JCf4B+fPtBPH+8QoH8wsDAgEVBAMQ/er28QcPDgoBBO7y/B3+BRH+CR32B+0JGBUFAwP/5wXzGwHp+fD29fbnCef37O7u8OsC9tr1+x3p5dr+AP70+OwB7uz2/vb78/D59fED/OQE/AsN9ez2AhEH7dQXA/D5AvzZBAYIGQ0V8/v4FBb0CQkLDi8n9gf1QsL5JxMLDwIAExccD/XTEBkHD/ML8vIE6wH0+ub3+M0LCRwq17r7/QL46tgE8frSDRwO6S0bAQMJ//QR+/3wDPn6+P4U7uID8s/s/vjqBf3oDPr6+Ob0Av7h8gnw/Pz5/+72Bxb1GxUu/Q8S7OsE8vwJBfX++vHo9vAFAO3p8wcHAP73ESwc8v4CDQ8EAvwD9efLIgBP3vcM9/L97Af3B/b9+ObwDgkSCwT6EQkABA4CFAMDEyMP6PYDCukNChoC9dzhDjUn6fn69B0E4PQJ9eYIHPP4FO3tGNsCAvz4+OMF/P79/hoFCg8E9PEB2LIC8vUJ/O4EDg4KCAIC5fr9+RUNERXr9NnpBw0UBwoH8+7yAwgB9tH58h8KIAj7/AT5CAH+3NL3WdQKAgAEDxjnDe8LDA/2+xkBERUFBAgBEQYB6vYJ9gwPFRb7DNAO6vb/DhMOAPTzCvTb+PbkIhok/O0GEyADDAf7CPsLBfj7+hXs4b0C6OL7/wEVFgL4FSwd8+n16+ELFSYPERgS/tPyKig0Ki8c//cN8g4REwzk8uXoGAoM/vryDBIiBgbr9OLW2vr249TrGykFXQ1UBgTC7+XoCPzz//gC3PIA8+v0DgkAHDkTCQkB4vDn5xn2EA7zCAYLFxUCCBYWBwLtMzMcGzUy3dTiHxUL8/bv/fgJ5vDuBgX/EBwV0d7bHg4GJxEKEw4Fvsjrz7m59PbqHBIWGg3uzuDbHS8v5ODb17+3DRIs4+fzEBUdJC4P4e3uBRMj/BQT/Scm7eDy/t3hIOsXBQsRHCAd69vwBQrzAAgOysbt683Z3uPm+/0B4dffEiUfAP0N9vH5EAP07wEV8Pv5+e728QMPJCkF9MX+Be8HBQDv+/7+DwsA/PoL/RME8N313NDxIDIFFQMOAwAP29nuBAgEExcGCfTy+P/6QEE64ev6/xcT8/YF4/cCCyUWA/jp7r7ZCwkJLjwSBSAQAurZMO0f7w8H7uUK/Pr+4+XxChQD8QIJ3uHx/un65ef81dTw+fn1ByQN7+7nBQcCAwv8BhTyJCX6FgkH9wEE/esL/w8I6vkC+tntEhkV/fDlCdjy/u4B+OYPFhADBgn34fz739nCGf8B5/Xm4+f6DgkO9+HzFQwH/SX/BwIG/vT9/vH59f/xEgz9BwQI+Pf43Sz2/gsBQ/sn7v8FEgP9+u/z69T6EB0f6xPz9t/4CBESGxPu5/z7AgoRAAz5+/8U6/n0+PvzAvb4DPb+Ae0B/gD5BQD6AgwV9+4PBiEOBxcWAhT47dz2/xTyCgHy9PneERcE5QoVFRYR+/DbDhoPBP3r6+gLFAMV0bjfAP0A4+rL+fwU9Oru9u33APjlAPMD/gLr+Qj+A+bcK+kqBOz38/kZDR8KHR0Y0tP78vwEACLrEgUA+goC+xMR/Or+BxX8CAj++f/5EhoOARMKB/v+/gkGBPv1AQIX+/f5C/X4DAkE++32DP/+AfsG/f7+/AH4BAkEEg8KEQgF//j++g77/P35+gf8BgYI/vf0DyEC9Ozw9/L3BAb59f4DBvj/9O74BQr+BgQY9vj0BAcHEsYHDw0H7fkI7+XyAvX9C/8HDgD8/g8J+vv4BgQE8gv7C/0ADQQK+u3/BQcHDwsKCv8I+foF/Oj6BRkPChkHGAQL/w4EARgKA/YB8Mj9AAIADfj5BRII+fvoGA/xAgkT/Mvx+P/t2vgNC/v/Bfn6BgEI7wbw9eL2BfoD+fv+9P/7+gUN29j4AR0SABQF//P8DwL7JLYL/fn67usACvQJ9/P++Ov5/gkF0M/xAxUNLSPlBQX62Kr17vcHB/bw+gADBNIABwkYBQP0+AYE7/cN9Rb+CgDw+xsF+gsF4dYE8uL5EBIaHgUGEDcm6t/8/MXmByQi3dLj/+rwF/gK/wz5DhEGMS0n8vH7GA/8B/D1C/f95eTmCxHlBfwC99TY/vH+6OYA+O8HUhMF+Q0FAO/22xYQAPoE5N/o9vrz++nvypn1GBUa//fi+hD9CAcI69r9Bu4XCQP7/vPi9+QHFBwD+vQc4/ISFvsU0q38/xMQ8PkIDRsh5931Digt5+wX8ce//PP8BgIO7tTx3t/t5t/mAQIOA/rqDzgW8fDr7MvVT1kMGCMNCQb96fjz4gkKHBcBBPD77gQWARoAQgMx4tL0+Qb6EhQVHwcK9gf4BfHu9ePT9OgH1dED/twECvMP6/QGEe0RCRzz+ST97gUFEAT1HA4F8tfr+/oVBw0RKCn3FSEK3uUe688J8/PtChHx6d/xGCkdFx391esKGAvO9s/b1vfR8bHeCAv1//345QfwFQ8AAgwAyPndC/cj+AT7BgjxBhwL9P4HDvYK8OQFQz8YE9rhDu8a4N/7DQT1DTAW+vUA9Pbv6/XbBecGAwYJ+/r9BLcOBQQOAe7nBBvfAP7u/AUM/R0WAhX4CxDt9/bU8wYW/gw4+/Dq5BUQ+hEW+8HqBdnPBw8BAwXw9QL8Cw3f6u8CBggIBxQp/+bQBQPpGiAMAugI/Bn7+tXm+8ba8wMm+xTt9uXp7gkNBxEG8M7t9vhIAv/G+xEVANbUBwsVBBgZBwr3+OvaAunZ/uTnBP/WBQ8H/vz1/AEq/BHv9wbpASUK9Mer//naCP39BSIrBzEx8tXeA/3k8eLbCxQa9/LCCRAlBt8P++v2//4m/vnp9rj19ffp+O4ZAPMVAAMUAxAODwjs9wLk/gkIDAYCBRgA+Ob/BPrm6w0DCwcN6wQeAR4YBBwVFMvJDxIrA9YeBAMF9NzZKzcFGkP96MAAFAYF8fgCCBod6MYA/hYHGSoU6Aj9BfL0BhMkDxT7ypgX24Ht5eDzEB3388zQ7OHlDzIzAQjc2Z7c9voV29DS5cMcHT7k58MeCAoEEyHvCzwo+bYU49bzEjg1ChEFFBfq5uvmDzD6DfIAyq0P0MwD7vTj/9b28dgD9fMQHvjf7/78Ji3f/ggg/w4LMSoO1eb0+gLy+9EAAwH5DA/eFhsJDwsB7+UJ6PMCDQf82bP1HiANzub9KSQW4ur51+sK5sQb+9Pf4g0mAf8J+hcL4AIQDBMMASEkCxEUBe373r3PExMVHS4JCfLw0d3G9Ojw1+7c+fIVBhL68vbz9vQIMUAn9NL04+/o6/DcEezgPwlXCCML4OLl9QYA/QoL+fT89vD16Pf5/t4HCQHxBBDw79kR/PEAAxAC8/38BA0Q+v0D/CALBfX9CxYEAgQU6NTe8wUI8+sGCgMGCvvZDBYMAgQWDPr99QD+HholBxoDAfH1EP4V+gL7EBgTA/DD9Qf669bSCgUV6uXw7/UFIBgIDyANw+EEDfD3HAMK9wzgBAUNFhA/"},b:[.19117,-.074236,-.042869,.23032,.014854,-.33218,-.27652,.5013,-.1957,.25585,.66936,-.033494,.2669,.57471,.51624,.44239,.04774,.069218,.63188,.39761,-.089879,.99325,-.048568,-.23978,-.07374,.10848,-.27321,-.18405,.22888,1.0015,.16014,.14434,.09867,-.16617,.32079,.45812,.28912,.58278,1.0206,.20699,.39127,.13378,-.066438,.084532,-.014646,.68524,.10335,.14651]},{k:3,dilation:4,residual:!0,w:{shape:[48,48,3],scale:.01723182387650013,data_b64:"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"},b:[1.7206,.31359,-.2062,.93225,.2975,-1.3697,.17743,.72685,-.81717,.28116,.62245,.038487,.65606,.65371,.59583,.74065,-.14375,.1782,.38128,.090745,.23095,-.074912,.06153,.12158,.018713,.34466,.25065,.24443,-.10432,1.8078,.77921,.54224,-.1821,.47568,.74781,.58168,.02778,.32489,1.0448,-.077362,.32227,-.047404,-.33059,-.039291,.23171,1.0791,.16394,-.043724]},{k:3,dilation:8,residual:!0,w:{shape:[48,48,3],scale:.02836204320192337,data_b64:"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"},b:[.40977,.59899,.21644,.22858,1.5047,.2282,1.0961,1.5619,.70156,-1.3602,-.14413,.35846,-.093414,.16863,1.7523,.58493,.69916,.20671,1.4914,.4477,.4493,.32447,.10877,-.72769,.098431,.79216,-.0092255,.35221,.18134,1.5414,.43936,.038611,.20285,.52693,-.65092,.48794,.7451,.045148,.36787,.21284,-1.3916,-2.2047,.010128,.39447,.085648,-.43788,.017951,.31546]}],bio:{w:{shape:[3,48],scale:.004223219584673643,data_b64:"9BAP/t/w+yvAGv0LF/b6/RH3Nv4BWwfyFq/xBfcPCf309Q4I7RITBnex0/fV+Qwa8g4PAADx+u74GfwK//b0HBH5AfwA+wr1Ff74Bfj8CQHy8wz07xMTBgUeAfsO9w0c8w0PACjy+bMuF/0M8vb32RL50f4AqQr3FUT/BPfrCQ3x8w3j7BQTBp1/MfxB+BQb"},b:[.3298,-1.0277,-.017153]},cls:{w:{shape:[120,48],scale:.004936628974974155,data_b64:"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"},b:[2.1812,1.1932,-.12909,.99489,-1.0059,-1.5953,-.73583,-.11399,.73543,.30603,-.61356,.014246,.51264,-.22961,-.77544,.47317,-.036083,.41667,-.2461,-.89269,-.30756,-.84472,-.82134,-.46859,-.87589,-.3564,-1.2778,-.43376,-.31977,-.47586,-.31124,-.59335,-.28646,-.94846,-.53685,-.60465,-1.015,-.36367,-.87949,-.38464,-.2511,-.42145,-.50176,-.66217,-.42143,-.1735,-.36331,-.19983,-.25013,-.43281,-.35854,-.44943,-.53251,-.75929,-.42566,.054378,-.62883,.090769,-.62326,-.34156,-.68823,-.21448,-.60644,-.5597,-.86791,-.48415,-.83884,-.6919,-.48049,-.47518,-.14021,-.35018,-.7899,-.025957,-.44889,-.38806,-.35918,-.29211,-.22144,-.47468,-.43834,-.53023,-.49121,-.30336,-.49787,-.44441,-.46111,-.55548,-.21931,-.80624,-.19708,-.39377,-.59085,-.64261,-.34571,-.49424,-.27933,.12296,-.46782,-.38657,-.57408,-.29697,-.76351,-.54065,-.78931,-.96345,-.2801,-.44264,-.33914,-.68746,-.11425,-.29714,-.15539,.84044,1.1134,-.40905,.44269,.36281,-.58235,-.017571]}};var $=class{weights;charToId;gpu=null;defaultBackend;scratch;idsScratch=new Int32Array(R);bioIdsScratch=new Int32Array(128);clsIdsScratch=new Int32Array(128);bioProbsScratch=Array.from({length:128},()=>new Float32Array(3));constructor(e={}){this.weights=oA(e.weights??xA),this.charToId=wA(this.weights.charset),this.defaultBackend=e.backend??"cpu",this.scratch=new j(this.weights)}parse(e,B={}){if(typeof e!="string")return[];let n=e;e=k(e);let t=n.length===e.length,r,f=eA(e.length);if(f.length===1&&f[0].length===e.length){let s=x(e.length),g=z(e,this.charToId,this.idsScratch,s),P=S(this.weights,g,this.scratch);r=this.decodeForward(e,P,0,e.length)}else{let s=[],g=new Set;for(let P of f){let o=e.slice(P.offset,P.offset+P.length),w=x(o.length),D=z(o,this.charToId,this.idsScratch,w),C=S(this.weights,D,this.scratch),u=this.decodeForward(o,C,P.offset,o.length);for(let v of u){let I=`${v.start}:${v.end}`;g.has(I)||(g.add(I),s.push(v))}}s.sort((P,o)=>P.start-o.start),r=s}if(t)for(let s of r)s.span=n.slice(s.start,s.end);return r}decodeForward(e,B,n,t=B.length){let r=t,f=r<=128,s=f?this.bioIdsScratch:new Int32Array(r),g=f?this.clsIdsScratch:new Int32Array(r),P=f?this.bioProbsScratch:Array.from({length:r},()=>new Float32Array(3));for(let D=0;D<r;D++)s[D]=p(B.bioLogits,D*3,3),g[D]=p(B.clsLogits,D*B.nCls,B.nCls),BA(B.bioLogits,D*3,3,P[D]);let o=HA(e,s.subarray(0,r),g.subarray(0,r),P),w=[];for(let D of o){let C=D.tokens.map(([I,l])=>[F[I],l]),u=LA(e,D.start,D.end,ie);if(dA(C)&&u===null)continue;let v=MA(C);w.push({span:D.text,start:D.start+n,end:D.end+n,value:v.value,...v.range?{range:v.range}:{},unit:v.unit??null,currency:u,confidence:D.confidence??0,classes:v.classes})}return w}inspect(e){let B=performance.now();typeof e!="string"&&(e="");let n=k(e),t=eA(n.length),r=new Array(n.length),f=new Array(n.length).fill(!1);for(let P of t){let o=n.slice(P.offset,P.offset+P.length),w=x(o.length),D=z(o,this.charToId,this.idsScratch,w),C=S(this.weights,D,this.scratch);for(let u=0;u<o.length;u++){let v=P.offset+u;if(f[v])continue;f[v]=!0;let I=p(C.bioLogits,u*3,3),l=new Float32Array(3);BA(C.bioLogits,u*3,3,l);let Q=p(C.clsLogits,u*C.nCls,C.nCls);r[v]={ch:o[u],bio:I,bioProb:[l[0],l[1],l[2]],cls:F[Q],clsId:Q}}}let s=this.parse(e),g=performance.now()-B;return{text:n,chars:r,spans:s,ms:g}}modelInfo(){let e=this.weights,B=e.embed.data.length;for(let t of e.conv)B+=t.w.data.length+t.b.length;B+=e.bio.w.data.length+e.bio.b.length,B+=e.cls.w.data.length+e.cls.b.length;let n=e.conv.length?Math.max(...e.conv.map(t=>t.w.shape[0])):e.embed.shape[1];return{version:e.version,params:B,channels:n,embedDim:e.embed.shape[1],vocab:e.embed.shape[0],classes:e.classes.length,layers:e.conv.map(t=>({k:t.k,dilation:t.dilation,residual:t.residual}))}}async parseBatch(e,B={}){e=e.map(o=>typeof o=="string"?o:"");let n=B.backend??this.defaultBackend;if(!(n==="webgpu"||n==="auto"&&e.length>=32&&await sA()))return e.map(o=>this.parse(o,{backend:"cpu"}));let r=e,f=e.map(k),s=new Array(e.length),g=[],P=[];for(let o=0;o<f.length;o++)f[o].length<=128?g.push(o):P.push(o);for(let o of P)s[o]=this.parse(r[o],{backend:"cpu"});if(g.length>0){this.gpu||(this.gpu=new q(this.weights));let o=Math.max(...g.map(Q=>f[Q].length),1),w=x(o),D=g.length,C=new Int32Array(D*w),u=this.charToId.get("<pad>")??0;C.fill(u);for(let Q=0;Q<D;Q++){let b=f[g[Q]],i=z(b,this.charToId);C.set(i,Q*w)}let{bio:v,cls:I}=await this.gpu.run(C,D,w),l=this.weights.cls.w.shape[0];for(let Q=0;Q<D;Q++){let b=g[Q],i=f[b],M=r[b],L=M.length===i.length,a=i.length,c=new Float32Array(a*3),E=new Float32Array(a*l);for(let h=0;h<a;h++)c.set(v.subarray((Q*w+h)*3,(Q*w+h)*3+3),h*3),E.set(I.subarray((Q*w+h)*l,(Q*w+h)*l+l),h*l);let H={bioLogits:c,clsLogits:E,length:a,nCls:l},d=this.decodeForward(i,H,0,a);if(L)for(let h of d)h.span=M.slice(h.start,h.end);s[b]=d}}return s}},gA=null;function AA(){return gA||(gA=new $),gA}function Xe(A,e={}){return AA().parse(A,e)}function Ne(A,e={}){return AA().parseBatch(A,e)}function je(A){return AA().inspect(A)}function Se(){return AA().modelInfo()}function Je(A={}){return new $(A)}var ie=FA(RA,OA);export{F as CLASSES,$ as Parser,Je as createParser,je as inspect,fA as isWebGPUAvailable,Se as modelInfo,k as normalizeText,Xe as parse,Ne as parseBatch,sA as probeWebGPU};
79
+ `;function sA(){return typeof navigator<"u"&&!!navigator.gpu}var V=null;function gA(){return V||(V=(async()=>{if(!sA())return!1;try{return await navigator.gpu.requestAdapter()!==null}catch{return!1}})(),V)}var q=class{weights;state=null;constructor(e){this.weights=e}async init(){if(this.state)return this.state;if(!sA())throw new Error("WebGPU is not available in this environment");let e=await navigator.gpu.requestAdapter();if(!e)throw new Error("No WebGPU adapter available");let n=await e.requestDevice(),B=(t,g)=>{let o=n.createBuffer({size:Math.max(4,t.byteLength),usage:g,mappedAtCreation:!0});return new Float32Array(o.getMappedRange()).set(t),o.unmap(),o},f=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,r=this.weights,s=r.conv.map(t=>({w:B(t.w.data,f),b:B(t.b,f)}));return this.state={device:n,embedModule:n.createShaderModule({code:Ee}),convModule:n.createShaderModule({code:ie}),headModule:n.createShaderModule({code:le}),embedBuf:B(r.embed.data,f),convBufs:s,bioBuf:{w:B(r.bio.w.data,f),b:B(r.bio.b,f)},clsBuf:{w:B(r.cls.w.data,f),b:B(r.cls.b,f)}},this.state}async run(e,n,B){let f=await this.init(),{device:r}=f,s=this.weights,t=s.embed.shape[1],g=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC,o=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,P=r.createBuffer({size:e.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});new Int32Array(P.getMappedRange()).set(e),P.unmap();let w=E=>{let c=r.createBuffer({size:E.byteLength,usage:o,mappedAtCreation:!0});return new Uint32Array(c.getMappedRange()).set(E),c.unmap(),c},C=r.limits?.maxComputeWorkgroupsPerDimension??65535,D=E=>{let c=Math.max(1,Math.ceil(E/64)),a=Math.min(c,C),h=Math.ceil(c/a);return{x:a,y:h,stride:a*64}},u=(E,c,a)=>{let h=r.createBindGroup({layout:E.getBindGroupLayout(0),entries:c}),F=r.createCommandEncoder(),b=F.beginComputePass();b.setPipeline(E),b.setBindGroup(0,h),b.dispatchWorkgroups(a.x,a.y),b.end(),r.queue.submit([F.finish()])},Q=r.createBuffer({size:n*t*B*4,usage:g});{let E=D(n*B),c=w(new Uint32Array([n,B,t,s.embed.shape[0],E.stride])),a=r.createComputePipeline({layout:"auto",compute:{module:f.embedModule,entryPoint:"main"}});u(a,[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:P}},{binding:2,resource:{buffer:f.embedBuf}},{binding:3,resource:{buffer:Q}}],E)}let l=t,I=s.conv,v=r.createComputePipeline({layout:"auto",compute:{module:f.convModule,entryPoint:"main"}});for(let E=0;E<I.length;E++){let c=I[E],[a,,h]=c.w.shape,F=c.dilation,b=c.padding,G=r.createBuffer({size:n*a*B*4,usage:g}),Y=D(n*a*B),GA=w(new Uint32Array([n,B,l,a,h,b,F,1,c.residual?1:0,Y.stride]));u(v,[{binding:0,resource:{buffer:GA}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:f.convBufs[E].w}},{binding:3,resource:{buffer:f.convBufs[E].b}},{binding:4,resource:{buffer:G}}],Y),Q=G,l=a}let H=r.createComputePipeline({layout:"auto",compute:{module:f.headModule,entryPoint:"main"}}),i=async(E,c)=>{let a=r.createBuffer({size:n*B*c*4,usage:g}),h=D(n*B*c),F=w(new Uint32Array([n,B,l,c,h.stride]));u(H,[{binding:0,resource:{buffer:F}},{binding:1,resource:{buffer:Q}},{binding:2,resource:{buffer:E.w}},{binding:3,resource:{buffer:E.b}},{binding:4,resource:{buffer:a}}],h);let b=r.createBuffer({size:n*B*c*4,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),G=r.createCommandEncoder();G.copyBufferToBuffer(a,0,b,0,n*B*c*4),r.queue.submit([G.finish()]),await b.mapAsync(GPUMapMode.READ);let Y=new Float32Array(b.getMappedRange().slice(0));return b.unmap(),Y},d=await i(f.bioBuf,s.bio.w.shape[0]),M=await i(f.clsBuf,s.cls.w.shape[0]);return{bio:d,cls:M}}};var RA={version:2,quantized:"int8_symmetric_per_tensor",charset:["<pad>","<unk>"," ","!",'"',"#","%","'","(",")","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":","=","?","@","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","}","~","\u0901","\u0902","\u0903","\u0905","\u0906","\u0907","\u0908","\u0909","\u090A","\u090F","\u0911","\u0913","\u0914","\u0915","\u0916","\u0917","\u0918","\u091A","\u091B","\u091C","\u091D","\u091F","\u0920","\u0921","\u0922","\u0923","\u0924","\u0925","\u0926","\u0927","\u0928","\u092A","\u092B","\u092C","\u092D","\u092E","\u092F","\u0930","\u0932","\u0935","\u0936","\u0937","\u0938","\u0939","\u093C","\u093E","\u093F","\u0940","\u0941","\u0942","\u0947","\u0948","\u0949","\u094B","\u094C","\u094D","\u20B9"],classes:["O","SEP","RANGE","DIGITS","DOT","COMMA","PFX_PAAV","PFX_AADHA","PFX_PAUNE","PFX_SAVA","PFX_DEDH","PFX_DHAI","PFX_SAADHE","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5","CARD_6","CARD_7","CARD_8","CARD_9","CARD_10","CARD_11","CARD_12","CARD_13","CARD_14","CARD_15","CARD_16","CARD_17","CARD_18","CARD_19","CARD_20","CARD_21","CARD_22","CARD_23","CARD_24","CARD_25","CARD_26","CARD_27","CARD_28","CARD_29","CARD_30","CARD_31","CARD_32","CARD_33","CARD_34","CARD_35","CARD_36","CARD_37","CARD_38","CARD_39","CARD_40","CARD_41","CARD_42","CARD_43","CARD_44","CARD_45","CARD_46","CARD_47","CARD_48","CARD_49","CARD_50","CARD_51","CARD_52","CARD_53","CARD_54","CARD_55","CARD_56","CARD_57","CARD_58","CARD_59","CARD_60","CARD_61","CARD_62","CARD_63","CARD_64","CARD_65","CARD_66","CARD_67","CARD_68","CARD_69","CARD_70","CARD_71","CARD_72","CARD_73","CARD_74","CARD_75","CARD_76","CARD_77","CARD_78","CARD_79","CARD_80","CARD_81","CARD_82","CARD_83","CARD_84","CARD_85","CARD_86","CARD_87","CARD_88","CARD_89","CARD_90","CARD_91","CARD_92","CARD_93","CARD_94","CARD_95","CARD_96","CARD_97","CARD_98","CARD_99","UNIT_SAU","UNIT_HAZAAR","UNIT_LAKH","UNIT_MILLION","UNIT_CRORE","UNIT_BILLION","UNIT_ARAB","UNIT_KHARAB"],embed_dim:16,channels:48,embed:{shape:[115,16],scale:.029206380248069763,data_b64:"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"},conv:[{k:5,dilation:1,residual:!1,w:{shape:[48,16,5],scale:.005528415087610483,data_b64:"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"},b:[-.42246,-.0030015,-.39637,-.5094,-.31567,-.0066605,-.2116,-.14381,-.45926,.032123,.1051,-.068757,-.176,-.24408,-.22495,.14888,-.34372,-.015254,-.075969,-.38499,-.55512,-.42426,-.53993,.33177,-.20909,-.010612,-.25817,-.36655,-.6817,-.27189,-.46838,-.20614,.24502,.23912,-.50761,-.14509,-.035654,-.67123,-.2002,-.26759,-.13114,-.07664,-.34302,-.3735,-.44522,-.18075,-.079652,-.066312]},{k:3,dilation:1,residual:!0,w:{shape:[48,48,3],scale:.02171662636101246,data_b64:"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"},b:[.10809,.26585,.094204,.14064,-.0069209,.14709,.023642,.17102,.12289,-.1588,.0013055,.11863,.42029,.21744,.085736,-.042563,.014954,-.16326,-.1126,-.0021493,-.1829,.13248,.12985,.64143,.41735,.43393,-.014888,-.21078,-.12343,.10631,.17523,-.34975,.20128,.043467,.29196,-.066172,.40999,.11899,.089091,-.099698,.46059,-.13938,.18717,.065401,.11365,.23228,.71649,1.0244]},{k:3,dilation:2,residual:!0,w:{shape:[48,48,3],scale:.011372479610145092,data_b64:"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"},b:[-.045669,.365,.16298,.056926,.061365,.17121,.31628,.60688,.23114,.09403,-.40148,.18148,.75038,.50584,.15352,.29074,.44291,.12645,-.18931,.47873,-.38551,.28317,.55262,.39227,.38131,1.2725,-.064018,-.040631,-.09375,.14131,.44183,-.048867,-.17769,-.10518,.14749,-.22889,.65898,-.10786,.25988,.064485,.74896,.57062,.44417,.27367,.70502,.078341,.99578,.91641]},{k:3,dilation:4,residual:!0,w:{shape:[48,48,3],scale:.016013650223612785,data_b64:"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"},b:[.12815,.87146,.33192,.44547,-.007632,.33449,.31869,.91658,.61102,-.0034602,.26675,.65376,.12435,.4758,1.1636,.0035353,1.2932,.70309,.076384,.048984,-.051782,.23859,.012983,-.050207,-.0084905,1.0506,-.22662,.24729,.0080632,.80607,.092929,.38957,-.21694,.15222,.59882,-.020806,.97913,.055986,.054323,.3747,1.1563,.82255,1.5244,.31746,.042843,-.28672,1.1229,1.0624]},{k:3,dilation:8,residual:!0,w:{shape:[48,48,3],scale:.014567811042070389,data_b64:"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"},b:[-.10209,-.4862,-1.2464,-1.1972,-.10959,.017397,1.2648,.77302,.52286,.84262,-.029006,1.8643,.13893,1.5804,.15474,-.31713,1.4025,-1.4027,.18632,.012404,-.076322,1.1977,1.2403,-.041636,.28303,1.1963,-1.6589,.0090801,-.069721,.38039,-.11284,1.349,-2.4128,.26607,.66346,.65388,.017525,-.3425,-.0726,.3579,.22987,.2369,-.15815,.018548,.89442,.070234,2.0972,-1.0126]}],bio:{w:{shape:[3,48],scale:.004168502055108547,data_b64:"7/sUIBkCDfPuy/0QBkbd9yMICfLwBPDvEfo37vHv+PuB9g6gDvn9+kHvB+7vzgBSJDsbaN4CDfLwxCAVB9X++AwdCt/1Btv+E8TI2fjw2/cC+g4ND/n2/OPvCPDu2wEqKOLO7e8CDfPwSwEOCL8I9/zkCh0XBu0bEyXrGADxLPti+w4sD/n5+7bwB+8WNgGo"},b:[.18046,-.7663,.072858]},cls:{w:{shape:[120,48],scale:.00567670026794076,data_b64:"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"},b:[2.0027,1.2945,-.28072,.72027,-1.0331,-1.6638,-.21735,-.33161,.086345,.29916,-.3261,.078574,.90926,-.83461,-.84115,-.14665,-.044583,-.19085,-.13869,-.49243,-.88449,-.34868,-.53668,.09578,-.53226,-.35943,-.89781,-1.058,-.73711,.094275,-.77523,-.35261,.21741,-.54233,-.3885,-.46544,-.68879,-.67397,-.68836,-.77007,-.76595,-.36312,.41362,-.58424,-.8435,-.67918,-.70729,-.65979,-.77047,-.37647,-.49488,-63573e-8,-.5059,-.98657,-.52866,-.51039,-.17223,-.27703,.16426,-.05408,-.22805,.055086,-.31279,-.3578,-.98577,-.075522,-.5297,-.32323,-.058951,-.59986,-.063719,-.49272,-.49078,.38117,-.28573,-.33333,-.19816,-.64504,-.40924,-.19423,-.30237,-.27751,-.21272,-.32228,-.26795,-.53006,.055159,-.45349,-.11935,-.46747,-.57663,-.23346,.39296,-.80921,-.67229,-.56665,-.5278,-.84155,-.27958,-.94085,-.59683,-.74172,-.57104,-.29101,-.54431,-.79465,-.13767,-.62478,.014713,-.50479,-.36415,-.42477,.77882,.7003,.8939,.0061365,.66724,.0084922,-.13957,-.83726]}};var $=class{weights;charToId;gpu=null;defaultBackend;scratch;idsScratch=new Int32Array(O);bioIdsScratch=new Int32Array(128);clsIdsScratch=new Int32Array(128);bioProbsScratch=Array.from({length:128},()=>new Float32Array(3));constructor(e={}){this.weights=PA(e.weights??RA),this.charToId=CA(this.weights.charset),this.defaultBackend=e.backend??"cpu",this.scratch=new j(this.weights)}parse(e,n={}){if(typeof e!="string")return[];let B=e;e=k(e);let f=B.length===e.length,r,s=eA(e.length);if(s.length===1&&s[0].length===e.length){let t=R(e.length),g=x(e,this.charToId,this.idsScratch,t),o=S(this.weights,g,this.scratch);r=this.decodeForward(e,o,0,e.length)}else{let t=[],g=new Set;for(let o of s){let P=e.slice(o.offset,o.offset+o.length),w=R(P.length),C=x(P,this.charToId,this.idsScratch,w),D=S(this.weights,C,this.scratch),u=this.decodeForward(P,D,o.offset,P.length);for(let Q of u){let l=`${Q.start}:${Q.end}`;g.has(l)||(g.add(l),t.push(Q))}}t.sort((o,P)=>o.start-P.start),r=t}if(f)for(let t of r)t.span=B.slice(t.start,t.end);return r}decodeForward(e,n,B,f=n.length){let r=f,s=r<=128,t=s?this.bioIdsScratch:new Int32Array(r),g=s?this.clsIdsScratch:new Int32Array(r),o=s?this.bioProbsScratch:Array.from({length:r},()=>new Float32Array(3));for(let C=0;C<r;C++)t[C]=p(n.bioLogits,C*3,3),g[C]=p(n.clsLogits,C*n.nCls,n.nCls),BA(n.bioLogits,C*3,3,o[C]);let P=hA(e,t.subarray(0,r),g.subarray(0,r),o),w=[];for(let C of P){let D=C.tokens.map(([l,I])=>[L[l],I]),u=MA(e,C.start,C.end,He);if(FA(D)&&u===null)continue;let Q=dA(D);w.push({span:C.text,start:C.start+B,end:C.end+B,value:Q.value,...Q.range?{range:Q.range}:{},unit:Q.unit??null,currency:u,confidence:C.confidence??0,classes:Q.classes})}return w}inspect(e){let n=performance.now();typeof e!="string"&&(e="");let B=k(e),f=eA(B.length),r=new Array(B.length),s=new Array(B.length).fill(!1);for(let o of f){let P=B.slice(o.offset,o.offset+o.length),w=R(P.length),C=x(P,this.charToId,this.idsScratch,w),D=S(this.weights,C,this.scratch);for(let u=0;u<P.length;u++){let Q=o.offset+u;if(s[Q])continue;s[Q]=!0;let l=p(D.bioLogits,u*3,3),I=new Float32Array(3);BA(D.bioLogits,u*3,3,I);let v=p(D.clsLogits,u*D.nCls,D.nCls);r[Q]={ch:P[u],bio:l,bioProb:[I[0],I[1],I[2]],cls:L[v],clsId:v}}}let t=this.parse(e),g=performance.now()-n;return{text:B,chars:r,spans:t,ms:g}}modelInfo(){let e=this.weights,n=e.embed.data.length;for(let f of e.conv)n+=f.w.data.length+f.b.length;n+=e.bio.w.data.length+e.bio.b.length,n+=e.cls.w.data.length+e.cls.b.length;let B=e.conv.length?Math.max(...e.conv.map(f=>f.w.shape[0])):e.embed.shape[1];return{version:e.version,params:n,channels:B,embedDim:e.embed.shape[1],vocab:e.embed.shape[0],classes:e.classes.length,layers:e.conv.map(f=>({k:f.k,dilation:f.dilation,residual:f.residual}))}}async parseBatch(e,n={}){e=e.map(P=>typeof P=="string"?P:"");let B=n.backend??this.defaultBackend;if(!(B==="webgpu"||B==="auto"&&e.length>=32&&await gA()))return e.map(P=>this.parse(P,{backend:"cpu"}));let r=e,s=e.map(k),t=new Array(e.length),g=[],o=[];for(let P=0;P<s.length;P++)s[P].length<=128?g.push(P):o.push(P);for(let P of o)t[P]=this.parse(r[P],{backend:"cpu"});if(g.length>0){this.gpu||(this.gpu=new q(this.weights));let P=Math.max(...g.map(v=>s[v].length),1),w=R(P),C=g.length,D=new Int32Array(C*w),u=this.charToId.get("<pad>")??0;D.fill(u);for(let v=0;v<C;v++){let H=s[g[v]],i=x(H,this.charToId);D.set(i,v*w)}let{bio:Q,cls:l}=await this.gpu.run(D,C,w),I=this.weights.cls.w.shape[0];for(let v=0;v<C;v++){let H=g[v],i=s[H],d=r[H],M=d.length===i.length,E=i.length,c=new Float32Array(E*3),a=new Float32Array(E*I);for(let b=0;b<E;b++)c.set(Q.subarray((v*w+b)*3,(v*w+b)*3+3),b*3),a.set(l.subarray((v*w+b)*I,(v*w+b)*I+I),b*I);let h={bioLogits:c,clsLogits:a,length:E,nCls:I},F=this.decodeForward(i,h,0,E);if(M)for(let b of F)b.span=d.slice(b.start,b.end);t[H]=F}}return t}},oA=null;function AA(){return oA||(oA=new $),oA}function Se(A,e={}){return AA().parse(A,e)}function Je(A,e={}){return AA().parseBatch(A,e)}function Ke(A){return AA().inspect(A)}function _e(){return AA().modelInfo()}function We(A={}){return new $(A)}var He=LA(OA,UA);export{L as CLASSES,$ as Parser,We as createParser,Ke as inspect,sA as isWebGPUAvailable,_e as modelInfo,k as normalizeText,Se as parse,Je as parseBatch,gA as probeWebGPU};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpu-sankhya",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "Fast char-CNN extraction of Hinglish and Devanagari Hindi numeric quantities, with CPU and WebGPU backends.",
6
6
  "license": "MIT",