-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
1 lines (1 loc) · 9.72 KB
/
script.js
File metadata and controls
1 lines (1 loc) · 9.72 KB
1
"use strict";let e=(()=>{var r=Uint8Array,t=Uint16Array,L=e=>new r(e),p=e=>new t(e),e=(r.prototype.S=r.prototype.subarray,e=>L(e.split("").map(e=>parseInt(e,36)))),z=e("00000000111122223333444455550000"),C=e("0000112233445566778899AABBCCDD00"),R=e("GHI08796A5B4C3D2E1F"),F=(a=(r,t)=>{var n=p(31);for(let e=0;e<31;++e)n[e]=t+=1<<r[e-1];var l=new Int32Array(n[30]);for(let r=1;r<30;++r)for(let e=n[r];e<n[r+1];++e)l[e]=e-n[r]<<5|r;return{b:n,r:l}})(z,2).b,U=(F[28]=258,a(C,0).b),s=p(32768);for(let e=0;e<32768;++e){var n=(61680&(n=(52428&(n=(43690&e)>>1|(21845&e)<<1))>>2|(13107&n)<<2))>>4|(3855&n)<<4;s[e]=((65280&n)>>8|(255&n)<<8)>>1}var G=(n,l,e)=>{let r=n.length,a=0;for(var t=p(l);a<r;++a)n[a]&&++t[n[a]-1];var i=p(l);for(a=1;a<l;++a)i[a]=i[a-1]+t[a-1]<<1;let f;if(e){f=p(1<<l);var o=15-l;for(a=0;a<r;++a)if(n[a]){let e=a<<4|n[a],r=l-n[a],t=i[n[a]-1]++<<r;for(var u=t|(1<<r)-1;t<=u;++t)f[s[t]>>o]=e}}else for(f=p(r),a=0;a<r;++a)n[a]&&(f[a]=s[i[n[a]-1]++]>>15-n[a]);return f},l=L(288);for(let e=0;e<144;++e)l[e]=8;for(let e=144;e<256;++e)l[e]=9;for(let e=256;e<280;++e)l[e]=7;for(let e=280;e<288;++e)l[e]=8;var a=e("5".repeat(32)),N=G(l,9,1),P=G(a,5,1),Y=r=>{let t=r[0];for(let e=1;e<r.length;++e)r[e]>t&&(t=r[e]);return t},j=(e,r,t)=>{var n=r/8|0;return(e[n]|e[1+n]<<8)>>(7&r)&t},J=(e,r)=>{var t=r/8|0;return(e[t]|e[1+t]<<8|e[2+t]<<16)>>(7&r)},i=["unexpected EOF","bad block type","bad length/literal","bad distance","bad gzip data"],K=(e,r)=>{throw new Error(i[e]||r)};return e=>fetch(e).then(e=>(e.ok||K(9,"HTTP error, status = "+e.status),e.arrayBuffer())).then(e=>{return(new TextDecoder).decode(((r=(r=>{31==r[0]&&139==r[1]&&8==r[2]||K(4);let t=r[3],n=10;4&t&&(n+=2+(r[10]|r[11]<<8));for(let e=(t>>3&1)+(t>>4&1);0<e;e-=!r[n++]);return n+(2&t)})(e=L(e)))+8>e.length&&K(4),((n,l,a)=>{var e,r,i=n.length;if(!i||l.f&&!l.l)return a||L(0);let t=!a,f=t||2!=l.i,o=l.i,u=(t&&(a=L(3*i)),e=>{var r=a.length;r<e&&((r=L(Math.max(2*r,e))).set(a),a=r)}),p=l.f||0,s=l.p||0,h=l.b||0,c=l.l,d=l.d,v=l.m,g=l.n,$=8*i;do{if(!c){p=j(n,s,1);var b=j(n,s+1,3);if(s+=3,!b){if(i<(M=(m=4+((s+7)/8|0))+(q=n[m-4]|n[m-3]<<8))){o&&K(0);break}f&&u(h+q),a.set(n.S(m,M),h),l.b=h+=q,l.p=s=8*M,l.f=p;continue}if(1==b)c=N,d=P,v=9,g=5;else if(2==b){var m=j(n,s,31)+257,y=j(n,s+10,15)+4,x=m+j(n,s+5,31)+1,k=(s+=14,L(x)),w=L(19);for(let e=0;e<y;++e)w[R[e]]=j(n,s+3*e,7);s+=3*y;var q,E=(1<<(q=Y(w)))-1,T=G(w,q,1);for(let t=0;t<x;){var S=T[j(n,s,E)];if(s+=15&S,(S>>=4)<16)k[t++]=S;else{let e=0,r=0;for(16==S?(r=3+j(n,s,3),s+=2,e=k[t-1]):17==S?(r=3+j(n,s,7),s+=3):18==S&&(r=11+j(n,s,127),s+=7);r--;)k[t++]=e}}var M=k.S(0,m),D=k.S(m);v=Y(M),g=Y(D),c=G(M,v,1),d=G(D,g,1)}else K(1);if(s>$){o&&K(0);break}}f&&u(h+131072);let e=(1<<v)-1,t=(1<<g)-1,r=s;for(;;r=s){var H=(I=c[J(n,s)&e])>>4;if((s+=15&I)>$){o&&K(0);break}if(I||K(2),H<256)a[h++]=H;else{if(256==H){r=s,c=null;break}{let e=H-254;264<H&&(H=z[I=H-257],e=j(n,s,(1<<H)-1)+F[I],s+=H);var I,H=(I=d[J(n,s)&t])>>4;I||K(3),s+=15&I;let r=U[H];if(3<H&&(I=C[H],r+=J(n,s)&(1<<I)-1,s+=I),s>$){o&&K(0);break}f&&u(h+131072);var A=h+e;if(h<r){var O=0-r,B=Math.min(r,A);for(O+h<0&&K(3);h<B;++h)a[h]=(void 0)[O+h]}for(;h<A;++h)a[h]=a[h-r]}}}l.l=c,l.p=r,l.b=h,l.f=p,c&&(p=1,l.m=v,l.d=d,l.n=g)}while(!p);return h!=a.length&&t?(e=a,(null==(r=h)||r>e.length)&&(r=e.length),L(e.S(0,r))):a.S(0,h)})(e.S(r,-8),{i:2},L((e=(r=e).length,(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0)))));var r})})(),p,n,l,s,t,a,i,f;function c(r){return r.filter(e=>r.lastIndexOf(e)===r.indexOf(e))}function d(e,r){return e.lastIndexOf(r)===e.indexOf(r)}function o(t,n){n=new RegExp("^(?:"+n+")$");var h=location.hash.slice(1).split("&").map(e=>e.split("=")).filter(([e,r])=>e===t&&r.match(n)).map(([,e])=>e);return h&&h[h.length-1]}function h(e){location.hash=((location.hash||"#")+"&"+e).replace(/([#&])&/g,"$1")}function v(e){return e.r(/\xa0\u06dd[٠١٢٣٤٥٦٧٨٩]+/,"").r(/\xa0\u06e9/,"").r(/\u06de\xa0/,"").r(/[\u06d6-\u06dc]+(?=$| )/g,"").r(/^(.)\u0651/g,"$1").r(/\u0305/g,"")}e("a.gz").then(e=>{(p=e.split("\n")).pop(),f=p.pop().split(",").map(e=>+e),a=p.pop().split(",").map(e=>+e),l=p.pop().split(",").map(e=>+e),i=p.pop().split(","),t=p.pop().split(","),n=p.pop().split(","),s=new Set(n)}),String.prototype.r=String.prototype.replace;let r=["الفاتحة","البقرة","آل عمران","النساء","المائدة","الأنعام","الأعراف","الأنفال","التوبة","يونس","هود","يوسف","الرعد","إبراهيم","الحجر","النحل","الإسراء","الكهف","مريم","طه","الأنبياء","الحج","المؤمنون","النور","الفرقان","الشعراء","النمل","القصص","العنكبوت","الروم","لقمان","السجدة","الأحزاب","سبأ","فاطر","يس","الصافات","ص","الزمر","غافر","فصلت","الشورى","الزخرف","الدخان","الجاثية","الأحقاف","محمد","الفتح","الحجرات","ق","الذاريات","الطور","النجم","القمر","الرحمن","الواقعة","الحديد","المجادلة","الحشر","الممتحنة","الصف","الجمعة","المنافقون","التغابن","الطلاق","التحريم","الملك","القلم","الحاقة","المعارج","نوح","الجن","المزمل","المدثر","القيامة","الإنسان","المرسلات","النبأ","النازعات","عبس","التكوير","الانفطار","المطففين","الانشقاق","البروج","الطارق","الأعلى","الغاشية","الفجر","البلد","الشمس","الليل","الضحى","الشرح","التين","العلق","القدر","البينة","الزلزلة","العاديات","القارعة","التكاثر","العصر","الهمزة","الفيل","قريش","الماعون","الكوثر","الكافرون","النصر","المسد","الإخلاص","الفلق","الناس"],C=[0,7,293,493,669,789,954,1160,1235,1364,1473,1596,1707,1750,1802,1901,2029,2140,2250,2348,2483,2595,2673,2791,2855,2932,3159,3252,3340,3409,3469,3503,3533,3606,3660,3705,3788,3970,4058,4133,4218,4272,4325,4414,4473,4510,4545,4583,4612,4630,4675,4735,4784,4846,4901,4979,5075,5104,5126,5150,5163,5177,5188,5199,5217,5229,5241,5271,5323,5375,5419,5447,5475,5495,5551,5591,5622,5672,5712,5758,5800,5829,5848,5884,5909,5931,5948,5967,5993,6023,6043,6058,6079,6090,6098,6106,6125,6130,6138,6146,6157,6168,6176,6179,6188,6193,6197,6204,6207,6213,6216,6221,6225,6230,6236];function u(r){for(let e=1;e<114;++e)if(C[e]>r)return e}function g(e){return r[u(e)-1]}let $=e=>document.getElementById(e),b=$("q"),m=$("a"),y=$("b"),x,k;function w(f,o,u,e){if(q.innerHTML="ما الآية "+(o?"التي تبدأ "+(1===f?"بهذه الكلمة الفريدة":2===f?"بهاتين الكلمتين الفريدتين":f<11?"بهذه الكلمات الفريدة":"")+" في القرءان":"الوحيدة في القرءان التي تبدأ "+(1===f?"بهذه الكلمة":2===f?"بهاتين الكلمتين":f<11?"بهذه الكلمات":""))+"؟ ("+(u?"بمراعاة":"بإهمال")+" حركة الحرف الأخير)",!e){let e="[^ ]+ ".repeat(f),r=e.replace(/ $/,""),t=new RegExp(e),n=new RegExp(`(${r}) .*`),l=1===f?e=>!e.includes(" "):2===f?e=>d(e," "):2<f?e=>!e.match(t):null,a=1===f?e=>v(e).replace(/ .*/,""):2===f?e=>v(e).replace(/([^ ]+ [^ ]+) .*/,"$1"):2<f?e=>v(e).replace(n,"$1"):null,i=u?p.map(e=>l(e)?"":a(e)):p.map(e=>(l(e)?"":a(e)).r(/[\u06e4-\u06e6]+$/g,"").r(/\u06e1$/,"").r(/[\u064e-\u0650]$/,"").r(/[\u064c\u064d]$/,"").r(/[\u08f1\u08f2]$/,"").r(/\u064f\u06e2$/,"").r(/\u0650\u06ed$/,"").r(/\u06e2$/,"").r(/(ا)\u06df$/,"$1").r(/(ى)\u0670$/,"$1").r(/\u064b([اى]?)$/,"$1").r(/\u08f0([اى]?)$/,"$1").r(/\u064e\u06e2([اى]?)$/,"$1").r(/\u064e([اى]?)$/,"$1").r(/\u06e4(ا)$/,"$1"));x=o?c(i).filter(e=>s.has(e)):c(i),k=x.map(e=>i.indexOf(e))}}function E(e,r){q.innerHTML="ما الآية الوحيدة في القرءان التي تبدأ هذه البداية الفريدة؟ ("+(e?"بمراعاة":"بإهمال")+" حركة الحرف الأخير)",r||(x=e?t:i,k=e?a:f)}let T={ss:e=>E(!0,e),ssi:e=>E(!1,e),gg:e=>{q.innerHTML="ما الآية التي فيها هذه الكلمة الفريدة في القرءان؟ (بإهمال حركة الحرف الأخير)",e||(x=n,k=l)},gs:e=>w(1,!0,null,e)};for(let r=1;r<=9;++r)T["s"+r]=e=>w(r,!1,!1,e),T["s"+r+"i"]=e=>w(r,!1,!0,e);let S,M=new Set,D=e=>{1<=(e=+e)&&e<=114&&M.add(e)},H;function I(){y.innerText="أظهر الإجابة";var e=(e=>{do{var r=Math.trunc(e*Math.random())}while(t=r,!M.has(u(k[t])));var t;return r})(x.length);m.innerHTML=H+x[e]+" …",S=k[e]}function play(){if(null!=S){y.innerText="أظهر سؤالا آخر";let e=p[S].replace(/^\u06DE\u00A0/,"");for(var r=g(S);e.length<150&&r===g(S+1);)e+=" "+p[++S];m.innerText=e+" [سورة "+r+"]",S=null}else I()}function A(){var e=o("q","[a-z0-9]+");if(T[e]){H="gg"===e?"… ":"";var r=o("s","[0-9,-]+");if(r&&r.split(",").forEach(e=>{if(e.includes("-")&&d(e,"-")){var[r,t]=e.split("-");for(let e=+r;e<=+t;++e)D(e)}else D(e)}),0!==M.size)return T[e];T[o("q","[a-z0-9]+")](!0),b.innerHTML="اختبار معرفة "+b.innerHTML.r(/^ما /,"").r(/ ال([بكف])/g," $1").r(/هذه /,"").r(/هاتين /,"").r(/؟ .*/,".").r(/(بكلم(?:ة|ات))\.$/,"$1 معينة.").r(/(بكلمتين)\.$/,"$1 معينتين.").r(/تبدأ بداية .*/,"تبدأ بداية معينة."),z("qs a b"),L("q hh ss back")}else z("q a ss b back"),L("hh qs")}let O,B=()=>{clearInterval(O),O=null};function L(e){e.split(" ").forEach(e=>$(e).style.display="block")}function z(e){e.split(" ").forEach(e=>$(e).style.display="none")}onhashchange=onload=function(e){M.clear(),B();let r=A();function t(){p&&n&&l&&(B(),r=r||A())&&(r(),z("hh qs ss"),L("q a b back"),onkeypress=e=>{"BODY"!==e.target.tagName||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),play())},ondblclick=e=>{e.preventDefault(),play()},I())}O=setInterval(t,100),t()}