@pmate/account-sdk 0.0.1

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.
Files changed (48) hide show
  1. package/dist/api/AccountService.d.ts +11 -0
  2. package/dist/api/Api.d.ts +11 -0
  3. package/dist/api/EntityService.d.ts +9 -0
  4. package/dist/api/ProfileService.d.ts +28 -0
  5. package/dist/api/cacheInMem.d.ts +1 -0
  6. package/dist/api/index.d.ts +4 -0
  7. package/dist/app.config.d.ts +16 -0
  8. package/dist/atoms/accountAtom.d.ts +5 -0
  9. package/dist/atoms/accountProfileAtom.d.ts +3 -0
  10. package/dist/atoms/createProfileAtom.d.ts +7 -0
  11. package/dist/atoms/index.d.ts +16 -0
  12. package/dist/atoms/learningLangAtom.d.ts +1 -0
  13. package/dist/atoms/localStorageAtom.d.ts +8 -0
  14. package/dist/atoms/loginAtom.d.ts +3 -0
  15. package/dist/atoms/motherTongueAtom.d.ts +1 -0
  16. package/dist/atoms/profileAtom.d.ts +6 -0
  17. package/dist/atoms/profileDraftAtom.d.ts +7 -0
  18. package/dist/atoms/profilesAtom.d.ts +2 -0
  19. package/dist/atoms/sessionCheckAtom.d.ts +3 -0
  20. package/dist/atoms/switchProfileAtom.d.ts +4 -0
  21. package/dist/atoms/updateProfileAtom.d.ts +3 -0
  22. package/dist/atoms/uploadAvatarAtom.d.ts +8 -0
  23. package/dist/atoms/userLogoutAtom.d.ts +3 -0
  24. package/dist/atoms/userSettingsAtom.d.ts +3 -0
  25. package/dist/components/AuthProviderV2.d.ts +15 -0
  26. package/dist/components/index.d.ts +1 -0
  27. package/dist/hooks/index.d.ts +3 -0
  28. package/dist/hooks/useAppBackgroundStyle.d.ts +3 -0
  29. package/dist/hooks/useAuthApp.d.ts +21 -0
  30. package/dist/hooks/useAuthSnapshot.d.ts +8 -0
  31. package/dist/hooks/useProfileStepFlow.d.ts +13 -0
  32. package/dist/index.cjs.js +22 -0
  33. package/dist/index.cjs.js.map +1 -0
  34. package/dist/index.d.ts +8 -0
  35. package/dist/index.es.js +2800 -0
  36. package/dist/index.es.js.map +1 -0
  37. package/dist/types/account.types.d.ts +25 -0
  38. package/dist/types/profile.d.ts +5 -0
  39. package/dist/utils/AccountManagerV2.d.ts +43 -0
  40. package/dist/utils/Redirect.d.ts +4 -0
  41. package/dist/utils/accountStorage.d.ts +5 -0
  42. package/dist/utils/errors.d.ts +2 -0
  43. package/dist/utils/index.d.ts +6 -0
  44. package/dist/utils/profileStep.d.ts +6 -0
  45. package/dist/utils/resolveAppId.d.ts +1 -0
  46. package/dist/utils/selectedProfileStorage.d.ts +4 -0
  47. package/dist/utils/tokenStorage.d.ts +4 -0
  48. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../../node_modules/.pnpm/browser-image-compression@2.0.2/node_modules/browser-image-compression/dist/browser-image-compression.mjs","../src/utils/resolveAppId.ts","../src/api/cacheInMem.ts","../src/api/Api.ts","../src/api/ProfileService.ts","../src/atoms/uploadAvatarAtom.ts","../src/types/account.types.ts","../src/atoms/accountAtom.ts","../src/atoms/accountProfileAtom.ts","../src/utils/tokenStorage.ts","../src/api/AccountService.ts","../src/api/EntityService.ts","../src/utils/accountStorage.ts","../src/utils/selectedProfileStorage.ts","../src/utils/AccountManagerV2.ts","../src/atoms/switchProfileAtom.ts","../src/atoms/profileDraftAtom.ts","../src/atoms/createProfileAtom.ts","../../../node_modules/.pnpm/jotai@2.16.1_@babel+core@7.28.5_@babel+template@7.27.2_@types+react@18.3.27_react@19.2.3/node_modules/jotai/esm/vanilla.mjs","../../../node_modules/.pnpm/jotai@2.16.1_@babel+core@7.28.5_@babel+template@7.27.2_@types+react@18.3.27_react@19.2.3/node_modules/jotai/esm/vanilla/utils.mjs","../src/atoms/profileAtom.ts","../src/atoms/profilesAtom.ts","../src/atoms/updateProfileAtom.ts","../src/atoms/loginAtom.ts","../src/atoms/sessionCheckAtom.ts","../src/atoms/userLogoutAtom.ts","../src/atoms/motherTongueAtom.ts","../src/atoms/learningLangAtom.ts","../src/atoms/localStorageAtom.ts","../src/atoms/userSettingsAtom.ts","../../../node_modules/.pnpm/react-use@17.6.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/react-use/esm/useEffectOnce.js","../src/hooks/useAuthSnapshot.ts","../src/utils/Redirect.ts","../src/utils/errors.ts","../src/components/AuthProviderV2.tsx","../src/app.config.ts","../src/hooks/useProfileStepFlow.ts","../src/hooks/useAuthApp.ts","../src/hooks/useAppBackgroundStyle.ts"],"sourcesContent":["/**\n * Browser Image Compression\n * v2.0.2\n * by Donald <donaldcwl@gmail.com>\n * https://github.com/Donaldcwl/browser-image-compression\n */\n\nfunction _mergeNamespaces(e,t){return t.forEach((function(t){t&&\"string\"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(r){if(\"default\"!==r&&!(r in e)){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}}))})),Object.freeze(e)}function copyExifWithoutOrientation(e,t){return new Promise((function(r,i){let o;return getApp1Segment(e).then((function(e){try{return o=e,r(new Blob([t.slice(0,2),o,t.slice(2)],{type:\"image/jpeg\"}))}catch(e){return i(e)}}),i)}))}const getApp1Segment=e=>new Promise(((t,r)=>{const i=new FileReader;i.addEventListener(\"load\",(({target:{result:e}})=>{const i=new DataView(e);let o=0;if(65496!==i.getUint16(o))return r(\"not a valid JPEG\");for(o+=2;;){const a=i.getUint16(o);if(65498===a)break;const s=i.getUint16(o+2);if(65505===a&&1165519206===i.getUint32(o+4)){const a=o+10;let f;switch(i.getUint16(a)){case 18761:f=!0;break;case 19789:f=!1;break;default:return r(\"TIFF header contains invalid endian\")}if(42!==i.getUint16(a+2,f))return r(\"TIFF header contains invalid version\");const l=i.getUint32(a+4,f),c=a+l+2+12*i.getUint16(a+l,f);for(let e=a+l+2;e<c;e+=12){if(274==i.getUint16(e,f)){if(3!==i.getUint16(e+2,f))return r(\"Orientation data type is invalid\");if(1!==i.getUint32(e+4,f))return r(\"Orientation data count is invalid\");i.setUint16(e+8,1,f);break}}return t(e.slice(o,o+2+s))}o+=2+s}return t(new Blob)})),i.readAsArrayBuffer(e)}));var e={},t={get exports(){return e},set exports(t){e=t}};!function(e){var r,i,UZIP={};t.exports=UZIP,UZIP.parse=function(e,t){for(var r=UZIP.bin.readUshort,i=UZIP.bin.readUint,o=0,a={},s=new Uint8Array(e),f=s.length-4;101010256!=i(s,f);)f--;o=f;o+=4;var l=r(s,o+=4);r(s,o+=2);var c=i(s,o+=2),u=i(s,o+=4);o+=4,o=u;for(var h=0;h<l;h++){i(s,o),o+=4,o+=4,o+=4,i(s,o+=4);c=i(s,o+=4);var d=i(s,o+=4),A=r(s,o+=4),g=r(s,o+2),p=r(s,o+4);o+=6;var m=i(s,o+=8);o+=4,o+=A+g+p,UZIP._readLocal(s,m,a,c,d,t)}return a},UZIP._readLocal=function(e,t,r,i,o,a){var s=UZIP.bin.readUshort,f=UZIP.bin.readUint;f(e,t),s(e,t+=4),s(e,t+=2);var l=s(e,t+=2);f(e,t+=2),f(e,t+=4),t+=4;var c=s(e,t+=8),u=s(e,t+=2);t+=2;var h=UZIP.bin.readUTF8(e,t,c);if(t+=c,t+=u,a)r[h]={size:o,csize:i};else{var d=new Uint8Array(e.buffer,t);if(0==l)r[h]=new Uint8Array(d.buffer.slice(t,t+i));else{if(8!=l)throw\"unknown compression method: \"+l;var A=new Uint8Array(o);UZIP.inflateRaw(d,A),r[h]=A}}},UZIP.inflateRaw=function(e,t){return UZIP.F.inflate(e,t)},UZIP.inflate=function(e,t){return e[0],e[1],UZIP.inflateRaw(new Uint8Array(e.buffer,e.byteOffset+2,e.length-6),t)},UZIP.deflate=function(e,t){null==t&&(t={level:6});var r=0,i=new Uint8Array(50+Math.floor(1.1*e.length));i[r]=120,i[r+1]=156,r+=2,r=UZIP.F.deflateRaw(e,i,r,t.level);var o=UZIP.adler(e,0,e.length);return i[r+0]=o>>>24&255,i[r+1]=o>>>16&255,i[r+2]=o>>>8&255,i[r+3]=o>>>0&255,new Uint8Array(i.buffer,0,r+4)},UZIP.deflateRaw=function(e,t){null==t&&(t={level:6});var r=new Uint8Array(50+Math.floor(1.1*e.length)),i=UZIP.F.deflateRaw(e,r,i,t.level);return new Uint8Array(r.buffer,0,i)},UZIP.encode=function(e,t){null==t&&(t=!1);var r=0,i=UZIP.bin.writeUint,o=UZIP.bin.writeUshort,a={};for(var s in e){var f=!UZIP._noNeed(s)&&!t,l=e[s],c=UZIP.crc.crc(l,0,l.length);a[s]={cpr:f,usize:l.length,crc:c,file:f?UZIP.deflateRaw(l):l}}for(var s in a)r+=a[s].file.length+30+46+2*UZIP.bin.sizeUTF8(s);r+=22;var u=new Uint8Array(r),h=0,d=[];for(var s in a){var A=a[s];d.push(h),h=UZIP._writeHeader(u,h,s,A,0)}var g=0,p=h;for(var s in a){A=a[s];d.push(h),h=UZIP._writeHeader(u,h,s,A,1,d[g++])}var m=h-p;return i(u,h,101010256),h+=4,o(u,h+=4,g),o(u,h+=2,g),i(u,h+=2,m),i(u,h+=4,p),h+=4,h+=2,u.buffer},UZIP._noNeed=function(e){var t=e.split(\".\").pop().toLowerCase();return-1!=\"png,jpg,jpeg,zip\".indexOf(t)},UZIP._writeHeader=function(e,t,r,i,o,a){var s=UZIP.bin.writeUint,f=UZIP.bin.writeUshort,l=i.file;return s(e,t,0==o?67324752:33639248),t+=4,1==o&&(t+=2),f(e,t,20),f(e,t+=2,0),f(e,t+=2,i.cpr?8:0),s(e,t+=2,0),s(e,t+=4,i.crc),s(e,t+=4,l.length),s(e,t+=4,i.usize),f(e,t+=4,UZIP.bin.sizeUTF8(r)),f(e,t+=2,0),t+=2,1==o&&(t+=2,t+=2,s(e,t+=6,a),t+=4),t+=UZIP.bin.writeUTF8(e,t,r),0==o&&(e.set(l,t),t+=l.length),t},UZIP.crc={table:function(){for(var e=new Uint32Array(256),t=0;t<256;t++){for(var r=t,i=0;i<8;i++)1&r?r=3988292384^r>>>1:r>>>=1;e[t]=r}return e}(),update:function(e,t,r,i){for(var o=0;o<i;o++)e=UZIP.crc.table[255&(e^t[r+o])]^e>>>8;return e},crc:function(e,t,r){return 4294967295^UZIP.crc.update(4294967295,e,t,r)}},UZIP.adler=function(e,t,r){for(var i=1,o=0,a=t,s=t+r;a<s;){for(var f=Math.min(a+5552,s);a<f;)o+=i+=e[a++];i%=65521,o%=65521}return o<<16|i},UZIP.bin={readUshort:function(e,t){return e[t]|e[t+1]<<8},writeUshort:function(e,t,r){e[t]=255&r,e[t+1]=r>>8&255},readUint:function(e,t){return 16777216*e[t+3]+(e[t+2]<<16|e[t+1]<<8|e[t])},writeUint:function(e,t,r){e[t]=255&r,e[t+1]=r>>8&255,e[t+2]=r>>16&255,e[t+3]=r>>24&255},readASCII:function(e,t,r){for(var i=\"\",o=0;o<r;o++)i+=String.fromCharCode(e[t+o]);return i},writeASCII:function(e,t,r){for(var i=0;i<r.length;i++)e[t+i]=r.charCodeAt(i)},pad:function(e){return e.length<2?\"0\"+e:e},readUTF8:function(e,t,r){for(var i,o=\"\",a=0;a<r;a++)o+=\"%\"+UZIP.bin.pad(e[t+a].toString(16));try{i=decodeURIComponent(o)}catch(i){return UZIP.bin.readASCII(e,t,r)}return i},writeUTF8:function(e,t,r){for(var i=r.length,o=0,a=0;a<i;a++){var s=r.charCodeAt(a);if(0==(4294967168&s))e[t+o]=s,o++;else if(0==(4294965248&s))e[t+o]=192|s>>6,e[t+o+1]=128|s>>0&63,o+=2;else if(0==(4294901760&s))e[t+o]=224|s>>12,e[t+o+1]=128|s>>6&63,e[t+o+2]=128|s>>0&63,o+=3;else{if(0!=(4292870144&s))throw\"e\";e[t+o]=240|s>>18,e[t+o+1]=128|s>>12&63,e[t+o+2]=128|s>>6&63,e[t+o+3]=128|s>>0&63,o+=4}}return o},sizeUTF8:function(e){for(var t=e.length,r=0,i=0;i<t;i++){var o=e.charCodeAt(i);if(0==(4294967168&o))r++;else if(0==(4294965248&o))r+=2;else if(0==(4294901760&o))r+=3;else{if(0!=(4292870144&o))throw\"e\";r+=4}}return r}},UZIP.F={},UZIP.F.deflateRaw=function(e,t,r,i){var o=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]][i],a=UZIP.F.U,s=UZIP.F._goodIndex;UZIP.F._hash;var f=UZIP.F._putsE,l=0,c=r<<3,u=0,h=e.length;if(0==i){for(;l<h;){f(t,c,l+(_=Math.min(65535,h-l))==h?1:0),c=UZIP.F._copyExact(e,l,_,t,c+8),l+=_}return c>>>3}var d=a.lits,A=a.strt,g=a.prev,p=0,m=0,w=0,v=0,b=0,y=0;for(h>2&&(A[y=UZIP.F._hash(e,0)]=0),l=0;l<h;l++){if(b=y,l+1<h-2){y=UZIP.F._hash(e,l+1);var E=l+1&32767;g[E]=A[y],A[y]=E}if(u<=l){(p>14e3||m>26697)&&h-l>100&&(u<l&&(d[p]=l-u,p+=2,u=l),c=UZIP.F._writeBlock(l==h-1||u==h?1:0,d,p,v,e,w,l-w,t,c),p=m=v=0,w=l);var F=0;l<h-2&&(F=UZIP.F._bestMatch(e,l,g,b,Math.min(o[2],h-l),o[3]));var _=F>>>16,B=65535&F;if(0!=F){B=65535&F;var U=s(_=F>>>16,a.of0);a.lhst[257+U]++;var C=s(B,a.df0);a.dhst[C]++,v+=a.exb[U]+a.dxb[C],d[p]=_<<23|l-u,d[p+1]=B<<16|U<<8|C,p+=2,u=l+_}else a.lhst[e[l]]++;m++}}for(w==l&&0!=e.length||(u<l&&(d[p]=l-u,p+=2,u=l),c=UZIP.F._writeBlock(1,d,p,v,e,w,l-w,t,c),p=0,m=0,p=m=v=0,w=l);0!=(7&c);)c++;return c>>>3},UZIP.F._bestMatch=function(e,t,r,i,o,a){var s=32767&t,f=r[s],l=s-f+32768&32767;if(f==s||i!=UZIP.F._hash(e,t-l))return 0;for(var c=0,u=0,h=Math.min(32767,t);l<=h&&0!=--a&&f!=s;){if(0==c||e[t+c]==e[t+c-l]){var d=UZIP.F._howLong(e,t,l);if(d>c){if(u=l,(c=d)>=o)break;l+2<d&&(d=l+2);for(var A=0,g=0;g<d-2;g++){var p=t-l+g+32768&32767,m=p-r[p]+32768&32767;m>A&&(A=m,f=p)}}}l+=(s=f)-(f=r[s])+32768&32767}return c<<16|u},UZIP.F._howLong=function(e,t,r){if(e[t]!=e[t-r]||e[t+1]!=e[t+1-r]||e[t+2]!=e[t+2-r])return 0;var i=t,o=Math.min(e.length,t+258);for(t+=3;t<o&&e[t]==e[t-r];)t++;return t-i},UZIP.F._hash=function(e,t){return(e[t]<<8|e[t+1])+(e[t+2]<<4)&65535},UZIP.saved=0,UZIP.F._writeBlock=function(e,t,r,i,o,a,s,f,l){var c,u,h,d,A,g,p,m,w,v=UZIP.F.U,b=UZIP.F._putsF,y=UZIP.F._putsE;v.lhst[256]++,u=(c=UZIP.F.getTrees())[0],h=c[1],d=c[2],A=c[3],g=c[4],p=c[5],m=c[6],w=c[7];var E=32+(0==(l+3&7)?0:8-(l+3&7))+(s<<3),F=i+UZIP.F.contSize(v.fltree,v.lhst)+UZIP.F.contSize(v.fdtree,v.dhst),_=i+UZIP.F.contSize(v.ltree,v.lhst)+UZIP.F.contSize(v.dtree,v.dhst);_+=14+3*p+UZIP.F.contSize(v.itree,v.ihst)+(2*v.ihst[16]+3*v.ihst[17]+7*v.ihst[18]);for(var B=0;B<286;B++)v.lhst[B]=0;for(B=0;B<30;B++)v.dhst[B]=0;for(B=0;B<19;B++)v.ihst[B]=0;var U=E<F&&E<_?0:F<_?1:2;if(b(f,l,e),b(f,l+1,U),l+=3,0==U){for(;0!=(7&l);)l++;l=UZIP.F._copyExact(o,a,s,f,l)}else{var C,I;if(1==U&&(C=v.fltree,I=v.fdtree),2==U){UZIP.F.makeCodes(v.ltree,u),UZIP.F.revCodes(v.ltree,u),UZIP.F.makeCodes(v.dtree,h),UZIP.F.revCodes(v.dtree,h),UZIP.F.makeCodes(v.itree,d),UZIP.F.revCodes(v.itree,d),C=v.ltree,I=v.dtree,y(f,l,A-257),y(f,l+=5,g-1),y(f,l+=5,p-4),l+=4;for(var Q=0;Q<p;Q++)y(f,l+3*Q,v.itree[1+(v.ordr[Q]<<1)]);l+=3*p,l=UZIP.F._codeTiny(m,v.itree,f,l),l=UZIP.F._codeTiny(w,v.itree,f,l)}for(var M=a,x=0;x<r;x+=2){for(var S=t[x],R=S>>>23,T=M+(8388607&S);M<T;)l=UZIP.F._writeLit(o[M++],C,f,l);if(0!=R){var O=t[x+1],P=O>>16,H=O>>8&255,L=255&O;y(f,l=UZIP.F._writeLit(257+H,C,f,l),R-v.of0[H]),l+=v.exb[H],b(f,l=UZIP.F._writeLit(L,I,f,l),P-v.df0[L]),l+=v.dxb[L],M+=R}}l=UZIP.F._writeLit(256,C,f,l)}return l},UZIP.F._copyExact=function(e,t,r,i,o){var a=o>>>3;return i[a]=r,i[a+1]=r>>>8,i[a+2]=255-i[a],i[a+3]=255-i[a+1],a+=4,i.set(new Uint8Array(e.buffer,t,r),a),o+(r+4<<3)},UZIP.F.getTrees=function(){for(var e=UZIP.F.U,t=UZIP.F._hufTree(e.lhst,e.ltree,15),r=UZIP.F._hufTree(e.dhst,e.dtree,15),i=[],o=UZIP.F._lenCodes(e.ltree,i),a=[],s=UZIP.F._lenCodes(e.dtree,a),f=0;f<i.length;f+=2)e.ihst[i[f]]++;for(f=0;f<a.length;f+=2)e.ihst[a[f]]++;for(var l=UZIP.F._hufTree(e.ihst,e.itree,7),c=19;c>4&&0==e.itree[1+(e.ordr[c-1]<<1)];)c--;return[t,r,l,o,s,c,i,a]},UZIP.F.getSecond=function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(e[r+1]);return t},UZIP.F.nonZero=function(e){for(var t=\"\",r=0;r<e.length;r+=2)0!=e[r+1]&&(t+=(r>>1)+\",\");return t},UZIP.F.contSize=function(e,t){for(var r=0,i=0;i<t.length;i++)r+=t[i]*e[1+(i<<1)];return r},UZIP.F._codeTiny=function(e,t,r,i){for(var o=0;o<e.length;o+=2){var a=e[o],s=e[o+1];i=UZIP.F._writeLit(a,t,r,i);var f=16==a?2:17==a?3:7;a>15&&(UZIP.F._putsE(r,i,s,f),i+=f)}return i},UZIP.F._lenCodes=function(e,t){for(var r=e.length;2!=r&&0==e[r-1];)r-=2;for(var i=0;i<r;i+=2){var o=e[i+1],a=i+3<r?e[i+3]:-1,s=i+5<r?e[i+5]:-1,f=0==i?-1:e[i-1];if(0==o&&a==o&&s==o){for(var l=i+5;l+2<r&&e[l+2]==o;)l+=2;(c=Math.min(l+1-i>>>1,138))<11?t.push(17,c-3):t.push(18,c-11),i+=2*c-2}else if(o==f&&a==o&&s==o){for(l=i+5;l+2<r&&e[l+2]==o;)l+=2;var c=Math.min(l+1-i>>>1,6);t.push(16,c-3),i+=2*c-2}else t.push(o,0)}return r>>>1},UZIP.F._hufTree=function(e,t,r){var i=[],o=e.length,a=t.length,s=0;for(s=0;s<a;s+=2)t[s]=0,t[s+1]=0;for(s=0;s<o;s++)0!=e[s]&&i.push({lit:s,f:e[s]});var f=i.length,l=i.slice(0);if(0==f)return 0;if(1==f){var c=i[0].lit;l=0==c?1:0;return t[1+(c<<1)]=1,t[1+(l<<1)]=1,1}i.sort((function(e,t){return e.f-t.f}));var u=i[0],h=i[1],d=0,A=1,g=2;for(i[0]={lit:-1,f:u.f+h.f,l:u,r:h,d:0};A!=f-1;)u=d!=A&&(g==f||i[d].f<i[g].f)?i[d++]:i[g++],h=d!=A&&(g==f||i[d].f<i[g].f)?i[d++]:i[g++],i[A++]={lit:-1,f:u.f+h.f,l:u,r:h};var p=UZIP.F.setDepth(i[A-1],0);for(p>r&&(UZIP.F.restrictDepth(l,r,p),p=r),s=0;s<f;s++)t[1+(l[s].lit<<1)]=l[s].d;return p},UZIP.F.setDepth=function(e,t){return-1!=e.lit?(e.d=t,t):Math.max(UZIP.F.setDepth(e.l,t+1),UZIP.F.setDepth(e.r,t+1))},UZIP.F.restrictDepth=function(e,t,r){var i=0,o=1<<r-t,a=0;for(e.sort((function(e,t){return t.d==e.d?e.f-t.f:t.d-e.d})),i=0;i<e.length&&e[i].d>t;i++){var s=e[i].d;e[i].d=t,a+=o-(1<<r-s)}for(a>>>=r-t;a>0;){(s=e[i].d)<t?(e[i].d++,a-=1<<t-s-1):i++}for(;i>=0;i--)e[i].d==t&&a<0&&(e[i].d--,a++);0!=a&&console.log(\"debt left\")},UZIP.F._goodIndex=function(e,t){var r=0;return t[16|r]<=e&&(r|=16),t[8|r]<=e&&(r|=8),t[4|r]<=e&&(r|=4),t[2|r]<=e&&(r|=2),t[1|r]<=e&&(r|=1),r},UZIP.F._writeLit=function(e,t,r,i){return UZIP.F._putsF(r,i,t[e<<1]),i+t[1+(e<<1)]},UZIP.F.inflate=function(e,t){var r=Uint8Array;if(3==e[0]&&0==e[1])return t||new r(0);var i=UZIP.F,o=i._bitsF,a=i._bitsE,s=i._decodeTiny,f=i.makeCodes,l=i.codes2map,c=i._get17,u=i.U,h=null==t;h&&(t=new r(e.length>>>2<<3));for(var d,A,g=0,p=0,m=0,w=0,v=0,b=0,y=0,E=0,F=0;0==g;)if(g=o(e,F,1),p=o(e,F+1,2),F+=3,0!=p){if(h&&(t=UZIP.F._check(t,E+(1<<17))),1==p&&(d=u.flmap,A=u.fdmap,b=511,y=31),2==p){m=a(e,F,5)+257,w=a(e,F+5,5)+1,v=a(e,F+10,4)+4,F+=14;for(var _=0;_<38;_+=2)u.itree[_]=0,u.itree[_+1]=0;var B=1;for(_=0;_<v;_++){var U=a(e,F+3*_,3);u.itree[1+(u.ordr[_]<<1)]=U,U>B&&(B=U)}F+=3*v,f(u.itree,B),l(u.itree,B,u.imap),d=u.lmap,A=u.dmap,F=s(u.imap,(1<<B)-1,m+w,e,F,u.ttree);var C=i._copyOut(u.ttree,0,m,u.ltree);b=(1<<C)-1;var I=i._copyOut(u.ttree,m,w,u.dtree);y=(1<<I)-1,f(u.ltree,C),l(u.ltree,C,d),f(u.dtree,I),l(u.dtree,I,A)}for(;;){var Q=d[c(e,F)&b];F+=15&Q;var M=Q>>>4;if(M>>>8==0)t[E++]=M;else{if(256==M)break;var x=E+M-254;if(M>264){var S=u.ldef[M-257];x=E+(S>>>3)+a(e,F,7&S),F+=7&S}var R=A[c(e,F)&y];F+=15&R;var T=R>>>4,O=u.ddef[T],P=(O>>>4)+o(e,F,15&O);for(F+=15&O,h&&(t=UZIP.F._check(t,E+(1<<17)));E<x;)t[E]=t[E++-P],t[E]=t[E++-P],t[E]=t[E++-P],t[E]=t[E++-P];E=x}}}else{0!=(7&F)&&(F+=8-(7&F));var H=4+(F>>>3),L=e[H-4]|e[H-3]<<8;h&&(t=UZIP.F._check(t,E+L)),t.set(new r(e.buffer,e.byteOffset+H,L),E),F=H+L<<3,E+=L}return t.length==E?t:t.slice(0,E)},UZIP.F._check=function(e,t){var r=e.length;if(t<=r)return e;var i=new Uint8Array(Math.max(r<<1,t));return i.set(e,0),i},UZIP.F._decodeTiny=function(e,t,r,i,o,a){for(var s=UZIP.F._bitsE,f=UZIP.F._get17,l=0;l<r;){var c=e[f(i,o)&t];o+=15&c;var u=c>>>4;if(u<=15)a[l]=u,l++;else{var h=0,d=0;16==u?(d=3+s(i,o,2),o+=2,h=a[l-1]):17==u?(d=3+s(i,o,3),o+=3):18==u&&(d=11+s(i,o,7),o+=7);for(var A=l+d;l<A;)a[l]=h,l++}}return o},UZIP.F._copyOut=function(e,t,r,i){for(var o=0,a=0,s=i.length>>>1;a<r;){var f=e[a+t];i[a<<1]=0,i[1+(a<<1)]=f,f>o&&(o=f),a++}for(;a<s;)i[a<<1]=0,i[1+(a<<1)]=0,a++;return o},UZIP.F.makeCodes=function(e,t){for(var r,i,o,a,s=UZIP.F.U,f=e.length,l=s.bl_count,c=0;c<=t;c++)l[c]=0;for(c=1;c<f;c+=2)l[e[c]]++;var u=s.next_code;for(r=0,l[0]=0,i=1;i<=t;i++)r=r+l[i-1]<<1,u[i]=r;for(o=0;o<f;o+=2)0!=(a=e[o+1])&&(e[o]=u[a],u[a]++)},UZIP.F.codes2map=function(e,t,r){for(var i=e.length,o=UZIP.F.U.rev15,a=0;a<i;a+=2)if(0!=e[a+1])for(var s=a>>1,f=e[a+1],l=s<<4|f,c=t-f,u=e[a]<<c,h=u+(1<<c);u!=h;){r[o[u]>>>15-t]=l,u++}},UZIP.F.revCodes=function(e,t){for(var r=UZIP.F.U.rev15,i=15-t,o=0;o<e.length;o+=2){var a=e[o]<<t-e[o+1];e[o]=r[a]>>>i}},UZIP.F._putsE=function(e,t,r){r<<=7&t;var i=t>>>3;e[i]|=r,e[i+1]|=r>>>8},UZIP.F._putsF=function(e,t,r){r<<=7&t;var i=t>>>3;e[i]|=r,e[i+1]|=r>>>8,e[i+2]|=r>>>16},UZIP.F._bitsE=function(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<<r)-1},UZIP.F._bitsF=function(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<<r)-1},UZIP.F._get17=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)},UZIP.F._get25=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16|e[3+(t>>>3)]<<24)>>>(7&t)},UZIP.F.U=(r=Uint16Array,i=Uint32Array,{next_code:new r(16),bl_count:new r(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new r(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new i(32),flmap:new r(512),fltree:[],fdmap:new r(32),fdtree:[],lmap:new r(32768),ltree:[],ttree:[],dmap:new r(32768),dtree:[],imap:new r(512),itree:[],rev15:new r(32768),lhst:new i(286),dhst:new i(30),ihst:new i(19),lits:new i(15e3),strt:new r(65536),prev:new r(32768)}),function(){for(var e=UZIP.F.U,t=0;t<32768;t++){var r=t;r=(4278255360&(r=(4042322160&(r=(3435973836&(r=(2863311530&r)>>>1|(1431655765&r)<<1))>>>2|(858993459&r)<<2))>>>4|(252645135&r)<<4))>>>8|(16711935&r)<<8,e.rev15[t]=(r>>>16|r<<16)>>>17}function pushV(e,t,r){for(;0!=t--;)e.push(0,r)}for(t=0;t<32;t++)e.ldef[t]=e.of0[t]<<3|e.exb[t],e.ddef[t]=e.df0[t]<<4|e.dxb[t];pushV(e.fltree,144,8),pushV(e.fltree,112,9),pushV(e.fltree,24,7),pushV(e.fltree,8,8),UZIP.F.makeCodes(e.fltree,9),UZIP.F.codes2map(e.fltree,9,e.flmap),UZIP.F.revCodes(e.fltree,9),pushV(e.fdtree,32,5),UZIP.F.makeCodes(e.fdtree,5),UZIP.F.codes2map(e.fdtree,5,e.fdmap),UZIP.F.revCodes(e.fdtree,5),pushV(e.itree,19,0),pushV(e.ltree,286,0),pushV(e.dtree,30,0),pushV(e.ttree,320,0)}()}();var UZIP=_mergeNamespaces({__proto__:null,default:e},[e]);const UPNG=function(){var e={nextZero(e,t){for(;0!=e[t];)t++;return t},readUshort:(e,t)=>e[t]<<8|e[t+1],writeUshort(e,t,r){e[t]=r>>8&255,e[t+1]=255&r},readUint:(e,t)=>16777216*e[t]+(e[t+1]<<16|e[t+2]<<8|e[t+3]),writeUint(e,t,r){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r},readASCII(e,t,r){let i=\"\";for(let o=0;o<r;o++)i+=String.fromCharCode(e[t+o]);return i},writeASCII(e,t,r){for(let i=0;i<r.length;i++)e[t+i]=r.charCodeAt(i)},readBytes(e,t,r){const i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i},pad:e=>e.length<2?`0${e}`:e,readUTF8(t,r,i){let o,a=\"\";for(let o=0;o<i;o++)a+=`%${e.pad(t[r+o].toString(16))}`;try{o=decodeURIComponent(a)}catch(o){return e.readASCII(t,r,i)}return o}};function decodeImage(t,r,i,o){const a=r*i,s=_getBPP(o),f=Math.ceil(r*s/8),l=new Uint8Array(4*a),c=new Uint32Array(l.buffer),{ctype:u}=o,{depth:h}=o,d=e.readUshort;if(6==u){const e=a<<2;if(8==h)for(var A=0;A<e;A+=4)l[A]=t[A],l[A+1]=t[A+1],l[A+2]=t[A+2],l[A+3]=t[A+3];if(16==h)for(A=0;A<e;A++)l[A]=t[A<<1]}else if(2==u){const e=o.tabs.tRNS;if(null==e){if(8==h)for(A=0;A<a;A++){var g=3*A;c[A]=255<<24|t[g+2]<<16|t[g+1]<<8|t[g]}if(16==h)for(A=0;A<a;A++){g=6*A;c[A]=255<<24|t[g+4]<<16|t[g+2]<<8|t[g]}}else{var p=e[0];const r=e[1],i=e[2];if(8==h)for(A=0;A<a;A++){var m=A<<2;g=3*A;c[A]=255<<24|t[g+2]<<16|t[g+1]<<8|t[g],t[g]==p&&t[g+1]==r&&t[g+2]==i&&(l[m+3]=0)}if(16==h)for(A=0;A<a;A++){m=A<<2,g=6*A;c[A]=255<<24|t[g+4]<<16|t[g+2]<<8|t[g],d(t,g)==p&&d(t,g+2)==r&&d(t,g+4)==i&&(l[m+3]=0)}}}else if(3==u){const e=o.tabs.PLTE,s=o.tabs.tRNS,c=s?s.length:0;if(1==h)for(var w=0;w<i;w++){var v=w*f,b=w*r;for(A=0;A<r;A++){m=b+A<<2;var y=3*(E=t[v+(A>>3)]>>7-((7&A)<<0)&1);l[m]=e[y],l[m+1]=e[y+1],l[m+2]=e[y+2],l[m+3]=E<c?s[E]:255}}if(2==h)for(w=0;w<i;w++)for(v=w*f,b=w*r,A=0;A<r;A++){m=b+A<<2,y=3*(E=t[v+(A>>2)]>>6-((3&A)<<1)&3);l[m]=e[y],l[m+1]=e[y+1],l[m+2]=e[y+2],l[m+3]=E<c?s[E]:255}if(4==h)for(w=0;w<i;w++)for(v=w*f,b=w*r,A=0;A<r;A++){m=b+A<<2,y=3*(E=t[v+(A>>1)]>>4-((1&A)<<2)&15);l[m]=e[y],l[m+1]=e[y+1],l[m+2]=e[y+2],l[m+3]=E<c?s[E]:255}if(8==h)for(A=0;A<a;A++){var E;m=A<<2,y=3*(E=t[A]);l[m]=e[y],l[m+1]=e[y+1],l[m+2]=e[y+2],l[m+3]=E<c?s[E]:255}}else if(4==u){if(8==h)for(A=0;A<a;A++){m=A<<2;var F=t[_=A<<1];l[m]=F,l[m+1]=F,l[m+2]=F,l[m+3]=t[_+1]}if(16==h)for(A=0;A<a;A++){var _;m=A<<2,F=t[_=A<<2];l[m]=F,l[m+1]=F,l[m+2]=F,l[m+3]=t[_+2]}}else if(0==u)for(p=o.tabs.tRNS?o.tabs.tRNS:-1,w=0;w<i;w++){const e=w*f,i=w*r;if(1==h)for(var B=0;B<r;B++){var U=(F=255*(t[e+(B>>>3)]>>>7-(7&B)&1))==255*p?0:255;c[i+B]=U<<24|F<<16|F<<8|F}else if(2==h)for(B=0;B<r;B++){U=(F=85*(t[e+(B>>>2)]>>>6-((3&B)<<1)&3))==85*p?0:255;c[i+B]=U<<24|F<<16|F<<8|F}else if(4==h)for(B=0;B<r;B++){U=(F=17*(t[e+(B>>>1)]>>>4-((1&B)<<2)&15))==17*p?0:255;c[i+B]=U<<24|F<<16|F<<8|F}else if(8==h)for(B=0;B<r;B++){U=(F=t[e+B])==p?0:255;c[i+B]=U<<24|F<<16|F<<8|F}else if(16==h)for(B=0;B<r;B++){F=t[e+(B<<1)],U=d(t,e+(B<<1))==p?0:255;c[i+B]=U<<24|F<<16|F<<8|F}}return l}function _decompress(e,r,i,o){const a=_getBPP(e),s=Math.ceil(i*a/8),f=new Uint8Array((s+1+e.interlace)*o);return r=e.tabs.CgBI?t(r,f):_inflate(r,f),0==e.interlace?r=_filterZero(r,e,0,i,o):1==e.interlace&&(r=function _readInterlace(e,t){const r=t.width,i=t.height,o=_getBPP(t),a=o>>3,s=Math.ceil(r*o/8),f=new Uint8Array(i*s);let l=0;const c=[0,0,4,0,2,0,1],u=[0,4,0,2,0,1,0],h=[8,8,8,4,4,2,2],d=[8,8,4,4,2,2,1];let A=0;for(;A<7;){const p=h[A],m=d[A];let w=0,v=0,b=c[A];for(;b<i;)b+=p,v++;let y=u[A];for(;y<r;)y+=m,w++;const E=Math.ceil(w*o/8);_filterZero(e,t,l,w,v);let F=0,_=c[A];for(;_<i;){let t=u[A],i=l+F*E<<3;for(;t<r;){var g;if(1==o)g=(g=e[i>>3])>>7-(7&i)&1,f[_*s+(t>>3)]|=g<<7-((7&t)<<0);if(2==o)g=(g=e[i>>3])>>6-(7&i)&3,f[_*s+(t>>2)]|=g<<6-((3&t)<<1);if(4==o)g=(g=e[i>>3])>>4-(7&i)&15,f[_*s+(t>>1)]|=g<<4-((1&t)<<2);if(o>=8){const r=_*s+t*a;for(let t=0;t<a;t++)f[r+t]=e[(i>>3)+t]}i+=o,t+=m}F++,_+=p}w*v!=0&&(l+=v*(1+E)),A+=1}return f}(r,e)),r}function _inflate(e,r){return t(new Uint8Array(e.buffer,2,e.length-6),r)}var t=function(){const e={H:{}};return e.H.N=function(t,r){const i=Uint8Array;let o,a,s=0,f=0,l=0,c=0,u=0,h=0,d=0,A=0,g=0;if(3==t[0]&&0==t[1])return r||new i(0);const p=e.H,m=p.b,w=p.e,v=p.R,b=p.n,y=p.A,E=p.Z,F=p.m,_=null==r;for(_&&(r=new i(t.length>>>2<<5));0==s;)if(s=m(t,g,1),f=m(t,g+1,2),g+=3,0!=f){if(_&&(r=e.H.W(r,A+(1<<17))),1==f&&(o=F.J,a=F.h,h=511,d=31),2==f){l=w(t,g,5)+257,c=w(t,g+5,5)+1,u=w(t,g+10,4)+4,g+=14;let e=1;for(var B=0;B<38;B+=2)F.Q[B]=0,F.Q[B+1]=0;for(B=0;B<u;B++){const r=w(t,g+3*B,3);F.Q[1+(F.X[B]<<1)]=r,r>e&&(e=r)}g+=3*u,b(F.Q,e),y(F.Q,e,F.u),o=F.w,a=F.d,g=v(F.u,(1<<e)-1,l+c,t,g,F.v);const r=p.V(F.v,0,l,F.C);h=(1<<r)-1;const i=p.V(F.v,l,c,F.D);d=(1<<i)-1,b(F.C,r),y(F.C,r,o),b(F.D,i),y(F.D,i,a)}for(;;){const e=o[E(t,g)&h];g+=15&e;const i=e>>>4;if(i>>>8==0)r[A++]=i;else{if(256==i)break;{let e=A+i-254;if(i>264){const r=F.q[i-257];e=A+(r>>>3)+w(t,g,7&r),g+=7&r}const o=a[E(t,g)&d];g+=15&o;const s=o>>>4,f=F.c[s],l=(f>>>4)+m(t,g,15&f);for(g+=15&f;A<e;)r[A]=r[A++-l],r[A]=r[A++-l],r[A]=r[A++-l],r[A]=r[A++-l];A=e}}}}else{0!=(7&g)&&(g+=8-(7&g));const o=4+(g>>>3),a=t[o-4]|t[o-3]<<8;_&&(r=e.H.W(r,A+a)),r.set(new i(t.buffer,t.byteOffset+o,a),A),g=o+a<<3,A+=a}return r.length==A?r:r.slice(0,A)},e.H.W=function(e,t){const r=e.length;if(t<=r)return e;const i=new Uint8Array(r<<1);return i.set(e,0),i},e.H.R=function(t,r,i,o,a,s){const f=e.H.e,l=e.H.Z;let c=0;for(;c<i;){const e=t[l(o,a)&r];a+=15&e;const i=e>>>4;if(i<=15)s[c]=i,c++;else{let e=0,t=0;16==i?(t=3+f(o,a,2),a+=2,e=s[c-1]):17==i?(t=3+f(o,a,3),a+=3):18==i&&(t=11+f(o,a,7),a+=7);const r=c+t;for(;c<r;)s[c]=e,c++}}return a},e.H.V=function(e,t,r,i){let o=0,a=0;const s=i.length>>>1;for(;a<r;){const r=e[a+t];i[a<<1]=0,i[1+(a<<1)]=r,r>o&&(o=r),a++}for(;a<s;)i[a<<1]=0,i[1+(a<<1)]=0,a++;return o},e.H.n=function(t,r){const i=e.H.m,o=t.length;let a,s,f;let l;const c=i.j;for(var u=0;u<=r;u++)c[u]=0;for(u=1;u<o;u+=2)c[t[u]]++;const h=i.K;for(a=0,c[0]=0,s=1;s<=r;s++)a=a+c[s-1]<<1,h[s]=a;for(f=0;f<o;f+=2)l=t[f+1],0!=l&&(t[f]=h[l],h[l]++)},e.H.A=function(t,r,i){const o=t.length,a=e.H.m.r;for(let e=0;e<o;e+=2)if(0!=t[e+1]){const o=e>>1,s=t[e+1],f=o<<4|s,l=r-s;let c=t[e]<<l;const u=c+(1<<l);for(;c!=u;){i[a[c]>>>15-r]=f,c++}}},e.H.l=function(t,r){const i=e.H.m.r,o=15-r;for(let e=0;e<t.length;e+=2){const a=t[e]<<r-t[e+1];t[e]=i[a]>>>o}},e.H.M=function(e,t,r){r<<=7&t;const i=t>>>3;e[i]|=r,e[i+1]|=r>>>8},e.H.I=function(e,t,r){r<<=7&t;const i=t>>>3;e[i]|=r,e[i+1]|=r>>>8,e[i+2]|=r>>>16},e.H.e=function(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<<r)-1},e.H.b=function(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<<r)-1},e.H.Z=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)},e.H.i=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16|e[3+(t>>>3)]<<24)>>>(7&t)},e.H.m=function(){const e=Uint16Array,t=Uint32Array;return{K:new e(16),j:new e(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new e(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new t(32),J:new e(512),_:[],h:new e(32),$:[],w:new e(32768),C:[],v:[],d:new e(32768),D:[],u:new e(512),Q:[],r:new e(32768),s:new t(286),Y:new t(30),a:new t(19),t:new t(15e3),k:new e(65536),g:new e(32768)}}(),function(){const t=e.H.m;for(var r=0;r<32768;r++){let e=r;e=(2863311530&e)>>>1|(1431655765&e)<<1,e=(3435973836&e)>>>2|(858993459&e)<<2,e=(4042322160&e)>>>4|(252645135&e)<<4,e=(4278255360&e)>>>8|(16711935&e)<<8,t.r[r]=(e>>>16|e<<16)>>>17}function n(e,t,r){for(;0!=t--;)e.push(0,r)}for(r=0;r<32;r++)t.q[r]=t.S[r]<<3|t.T[r],t.c[r]=t.p[r]<<4|t.z[r];n(t._,144,8),n(t._,112,9),n(t._,24,7),n(t._,8,8),e.H.n(t._,9),e.H.A(t._,9,t.J),e.H.l(t._,9),n(t.$,32,5),e.H.n(t.$,5),e.H.A(t.$,5,t.h),e.H.l(t.$,5),n(t.Q,19,0),n(t.C,286,0),n(t.D,30,0),n(t.v,320,0)}(),e.H.N}();function _getBPP(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth}function _filterZero(e,t,r,i,o){let a=_getBPP(t);const s=Math.ceil(i*a/8);let f,l;a=Math.ceil(a/8);let c=e[r],u=0;if(c>1&&(e[r]=[0,0,1][c-2]),3==c)for(u=a;u<s;u++)e[u+1]=e[u+1]+(e[u+1-a]>>>1)&255;for(let t=0;t<o;t++)if(f=r+t*s,l=f+t+1,c=e[l-1],u=0,0==c)for(;u<s;u++)e[f+u]=e[l+u];else if(1==c){for(;u<a;u++)e[f+u]=e[l+u];for(;u<s;u++)e[f+u]=e[l+u]+e[f+u-a]}else if(2==c)for(;u<s;u++)e[f+u]=e[l+u]+e[f+u-s];else if(3==c){for(;u<a;u++)e[f+u]=e[l+u]+(e[f+u-s]>>>1);for(;u<s;u++)e[f+u]=e[l+u]+(e[f+u-s]+e[f+u-a]>>>1)}else{for(;u<a;u++)e[f+u]=e[l+u]+_paeth(0,e[f+u-s],0);for(;u<s;u++)e[f+u]=e[l+u]+_paeth(e[f+u-a],e[f+u-s],e[f+u-a-s])}return e}function _paeth(e,t,r){const i=e+t-r,o=i-e,a=i-t,s=i-r;return o*o<=a*a&&o*o<=s*s?e:a*a<=s*s?t:r}function _IHDR(t,r,i){i.width=e.readUint(t,r),r+=4,i.height=e.readUint(t,r),r+=4,i.depth=t[r],r++,i.ctype=t[r],r++,i.compress=t[r],r++,i.filter=t[r],r++,i.interlace=t[r],r++}function _copyTile(e,t,r,i,o,a,s,f,l){const c=Math.min(t,o),u=Math.min(r,a);let h=0,d=0;for(let r=0;r<u;r++)for(let a=0;a<c;a++)if(s>=0&&f>=0?(h=r*t+a<<2,d=(f+r)*o+s+a<<2):(h=(-f+r)*t-s+a<<2,d=r*o+a<<2),0==l)i[d]=e[h],i[d+1]=e[h+1],i[d+2]=e[h+2],i[d+3]=e[h+3];else if(1==l){var A=e[h+3]*(1/255),g=e[h]*A,p=e[h+1]*A,m=e[h+2]*A,w=i[d+3]*(1/255),v=i[d]*w,b=i[d+1]*w,y=i[d+2]*w;const t=1-A,r=A+w*t,o=0==r?0:1/r;i[d+3]=255*r,i[d+0]=(g+v*t)*o,i[d+1]=(p+b*t)*o,i[d+2]=(m+y*t)*o}else if(2==l){A=e[h+3],g=e[h],p=e[h+1],m=e[h+2],w=i[d+3],v=i[d],b=i[d+1],y=i[d+2];A==w&&g==v&&p==b&&m==y?(i[d]=0,i[d+1]=0,i[d+2]=0,i[d+3]=0):(i[d]=g,i[d+1]=p,i[d+2]=m,i[d+3]=A)}else if(3==l){A=e[h+3],g=e[h],p=e[h+1],m=e[h+2],w=i[d+3],v=i[d],b=i[d+1],y=i[d+2];if(A==w&&g==v&&p==b&&m==y)continue;if(A<220&&w>20)return!1}return!0}return{decode:function decode(r){const i=new Uint8Array(r);let o=8;const a=e,s=a.readUshort,f=a.readUint,l={tabs:{},frames:[]},c=new Uint8Array(i.length);let u,h=0,d=0;const A=[137,80,78,71,13,10,26,10];for(var g=0;g<8;g++)if(i[g]!=A[g])throw\"The input is not a PNG file!\";for(;o<i.length;){const e=a.readUint(i,o);o+=4;const r=a.readASCII(i,o,4);if(o+=4,\"IHDR\"==r)_IHDR(i,o,l);else if(\"iCCP\"==r){for(var p=o;0!=i[p];)p++;a.readASCII(i,o,p-o),i[p+1];const s=i.slice(p+2,o+e);let f=null;try{f=_inflate(s)}catch(e){f=t(s)}l.tabs[r]=f}else if(\"CgBI\"==r)l.tabs[r]=i.slice(o,o+4);else if(\"IDAT\"==r){for(g=0;g<e;g++)c[h+g]=i[o+g];h+=e}else if(\"acTL\"==r)l.tabs[r]={num_frames:f(i,o),num_plays:f(i,o+4)},u=new Uint8Array(i.length);else if(\"fcTL\"==r){if(0!=d)(E=l.frames[l.frames.length-1]).data=_decompress(l,u.slice(0,d),E.rect.width,E.rect.height),d=0;const e={x:f(i,o+12),y:f(i,o+16),width:f(i,o+4),height:f(i,o+8)};let t=s(i,o+22);t=s(i,o+20)/(0==t?100:t);const r={rect:e,delay:Math.round(1e3*t),dispose:i[o+24],blend:i[o+25]};l.frames.push(r)}else if(\"fdAT\"==r){for(g=0;g<e-4;g++)u[d+g]=i[o+g+4];d+=e-4}else if(\"pHYs\"==r)l.tabs[r]=[a.readUint(i,o),a.readUint(i,o+4),i[o+8]];else if(\"cHRM\"==r){l.tabs[r]=[];for(g=0;g<8;g++)l.tabs[r].push(a.readUint(i,o+4*g))}else if(\"tEXt\"==r||\"zTXt\"==r){null==l.tabs[r]&&(l.tabs[r]={});var m=a.nextZero(i,o),w=a.readASCII(i,o,m-o),v=o+e-m-1;if(\"tEXt\"==r)y=a.readASCII(i,m+1,v);else{var b=_inflate(i.slice(m+2,m+2+v));y=a.readUTF8(b,0,b.length)}l.tabs[r][w]=y}else if(\"iTXt\"==r){null==l.tabs[r]&&(l.tabs[r]={});m=0,p=o;m=a.nextZero(i,p);w=a.readASCII(i,p,m-p);const t=i[p=m+1];var y;i[p+1],p+=2,m=a.nextZero(i,p),a.readASCII(i,p,m-p),p=m+1,m=a.nextZero(i,p),a.readUTF8(i,p,m-p);v=e-((p=m+1)-o);if(0==t)y=a.readUTF8(i,p,v);else{b=_inflate(i.slice(p,p+v));y=a.readUTF8(b,0,b.length)}l.tabs[r][w]=y}else if(\"PLTE\"==r)l.tabs[r]=a.readBytes(i,o,e);else if(\"hIST\"==r){const e=l.tabs.PLTE.length/3;l.tabs[r]=[];for(g=0;g<e;g++)l.tabs[r].push(s(i,o+2*g))}else if(\"tRNS\"==r)3==l.ctype?l.tabs[r]=a.readBytes(i,o,e):0==l.ctype?l.tabs[r]=s(i,o):2==l.ctype&&(l.tabs[r]=[s(i,o),s(i,o+2),s(i,o+4)]);else if(\"gAMA\"==r)l.tabs[r]=a.readUint(i,o)/1e5;else if(\"sRGB\"==r)l.tabs[r]=i[o];else if(\"bKGD\"==r)0==l.ctype||4==l.ctype?l.tabs[r]=[s(i,o)]:2==l.ctype||6==l.ctype?l.tabs[r]=[s(i,o),s(i,o+2),s(i,o+4)]:3==l.ctype&&(l.tabs[r]=i[o]);else if(\"IEND\"==r)break;o+=e,a.readUint(i,o),o+=4}var E;return 0!=d&&((E=l.frames[l.frames.length-1]).data=_decompress(l,u.slice(0,d),E.rect.width,E.rect.height)),l.data=_decompress(l,c,l.width,l.height),delete l.compress,delete l.interlace,delete l.filter,l},toRGBA8:function toRGBA8(e){const t=e.width,r=e.height;if(null==e.tabs.acTL)return[decodeImage(e.data,t,r,e).buffer];const i=[];null==e.frames[0].data&&(e.frames[0].data=e.data);const o=t*r*4,a=new Uint8Array(o),s=new Uint8Array(o),f=new Uint8Array(o);for(let c=0;c<e.frames.length;c++){const u=e.frames[c],h=u.rect.x,d=u.rect.y,A=u.rect.width,g=u.rect.height,p=decodeImage(u.data,A,g,e);if(0!=c)for(var l=0;l<o;l++)f[l]=a[l];if(0==u.blend?_copyTile(p,A,g,a,t,r,h,d,0):1==u.blend&&_copyTile(p,A,g,a,t,r,h,d,1),i.push(a.buffer.slice(0)),0==u.dispose);else if(1==u.dispose)_copyTile(s,A,g,a,t,r,h,d,0);else if(2==u.dispose)for(l=0;l<o;l++)a[l]=f[l]}return i},_paeth:_paeth,_copyTile:_copyTile,_bin:e}}();!function(){const{_copyTile:e}=UPNG,{_bin:t}=UPNG,r=UPNG._paeth;var i={table:function(){const e=new Uint32Array(256);for(let t=0;t<256;t++){let r=t;for(let e=0;e<8;e++)1&r?r=3988292384^r>>>1:r>>>=1;e[t]=r}return e}(),update(e,t,r,o){for(let a=0;a<o;a++)e=i.table[255&(e^t[r+a])]^e>>>8;return e},crc:(e,t,r)=>4294967295^i.update(4294967295,e,t,r)};function addErr(e,t,r,i){t[r]+=e[0]*i>>4,t[r+1]+=e[1]*i>>4,t[r+2]+=e[2]*i>>4,t[r+3]+=e[3]*i>>4}function N(e){return Math.max(0,Math.min(255,e))}function D(e,t){const r=e[0]-t[0],i=e[1]-t[1],o=e[2]-t[2],a=e[3]-t[3];return r*r+i*i+o*o+a*a}function dither(e,t,r,i,o,a,s){null==s&&(s=1);const f=i.length,l=[];for(var c=0;c<f;c++){const e=i[c];l.push([e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255])}for(c=0;c<f;c++){let e=4294967295;for(var u=0,h=0;h<f;h++){var d=D(l[c],l[h]);h!=c&&d<e&&(e=d,u=h)}}const A=new Uint32Array(o.buffer),g=new Int16Array(t*r*4),p=[0,8,2,10,12,4,14,6,3,11,1,9,15,7,13,5];for(c=0;c<p.length;c++)p[c]=255*((p[c]+.5)/16-.5);for(let o=0;o<r;o++)for(let w=0;w<t;w++){var m;c=4*(o*t+w);if(2!=s)m=[N(e[c]+g[c]),N(e[c+1]+g[c+1]),N(e[c+2]+g[c+2]),N(e[c+3]+g[c+3])];else{d=p[4*(3&o)+(3&w)];m=[N(e[c]+d),N(e[c+1]+d),N(e[c+2]+d),N(e[c+3]+d)]}u=0;let v=16777215;for(h=0;h<f;h++){const e=D(m,l[h]);e<v&&(v=e,u=h)}const b=l[u],y=[m[0]-b[0],m[1]-b[1],m[2]-b[2],m[3]-b[3]];1==s&&(w!=t-1&&addErr(y,g,c+4,7),o!=r-1&&(0!=w&&addErr(y,g,c+4*t-4,3),addErr(y,g,c+4*t,5),w!=t-1&&addErr(y,g,c+4*t+4,1))),a[c>>2]=u,A[c>>2]=i[u]}}function _main(e,r,o,a,s){null==s&&(s={});const{crc:f}=i,l=t.writeUint,c=t.writeUshort,u=t.writeASCII;let h=8;const d=e.frames.length>1;let A,g=!1,p=33+(d?20:0);if(null!=s.sRGB&&(p+=13),null!=s.pHYs&&(p+=21),null!=s.iCCP&&(A=pako.deflate(s.iCCP),p+=21+A.length+4),3==e.ctype){for(var m=e.plte.length,w=0;w<m;w++)e.plte[w]>>>24!=255&&(g=!0);p+=8+3*m+4+(g?8+1*m+4:0)}for(var v=0;v<e.frames.length;v++){d&&(p+=38),p+=(F=e.frames[v]).cimg.length+12,0!=v&&(p+=4)}p+=12;const b=new Uint8Array(p),y=[137,80,78,71,13,10,26,10];for(w=0;w<8;w++)b[w]=y[w];if(l(b,h,13),h+=4,u(b,h,\"IHDR\"),h+=4,l(b,h,r),h+=4,l(b,h,o),h+=4,b[h]=e.depth,h++,b[h]=e.ctype,h++,b[h]=0,h++,b[h]=0,h++,b[h]=0,h++,l(b,h,f(b,h-17,17)),h+=4,null!=s.sRGB&&(l(b,h,1),h+=4,u(b,h,\"sRGB\"),h+=4,b[h]=s.sRGB,h++,l(b,h,f(b,h-5,5)),h+=4),null!=s.iCCP){const e=13+A.length;l(b,h,e),h+=4,u(b,h,\"iCCP\"),h+=4,u(b,h,\"ICC profile\"),h+=11,h+=2,b.set(A,h),h+=A.length,l(b,h,f(b,h-(e+4),e+4)),h+=4}if(null!=s.pHYs&&(l(b,h,9),h+=4,u(b,h,\"pHYs\"),h+=4,l(b,h,s.pHYs[0]),h+=4,l(b,h,s.pHYs[1]),h+=4,b[h]=s.pHYs[2],h++,l(b,h,f(b,h-13,13)),h+=4),d&&(l(b,h,8),h+=4,u(b,h,\"acTL\"),h+=4,l(b,h,e.frames.length),h+=4,l(b,h,null!=s.loop?s.loop:0),h+=4,l(b,h,f(b,h-12,12)),h+=4),3==e.ctype){l(b,h,3*(m=e.plte.length)),h+=4,u(b,h,\"PLTE\"),h+=4;for(w=0;w<m;w++){const t=3*w,r=e.plte[w],i=255&r,o=r>>>8&255,a=r>>>16&255;b[h+t+0]=i,b[h+t+1]=o,b[h+t+2]=a}if(h+=3*m,l(b,h,f(b,h-3*m-4,3*m+4)),h+=4,g){l(b,h,m),h+=4,u(b,h,\"tRNS\"),h+=4;for(w=0;w<m;w++)b[h+w]=e.plte[w]>>>24&255;h+=m,l(b,h,f(b,h-m-4,m+4)),h+=4}}let E=0;for(v=0;v<e.frames.length;v++){var F=e.frames[v];d&&(l(b,h,26),h+=4,u(b,h,\"fcTL\"),h+=4,l(b,h,E++),h+=4,l(b,h,F.rect.width),h+=4,l(b,h,F.rect.height),h+=4,l(b,h,F.rect.x),h+=4,l(b,h,F.rect.y),h+=4,c(b,h,a[v]),h+=2,c(b,h,1e3),h+=2,b[h]=F.dispose,h++,b[h]=F.blend,h++,l(b,h,f(b,h-30,30)),h+=4);const t=F.cimg;l(b,h,(m=t.length)+(0==v?0:4)),h+=4;const r=h;u(b,h,0==v?\"IDAT\":\"fdAT\"),h+=4,0!=v&&(l(b,h,E++),h+=4),b.set(t,h),h+=m,l(b,h,f(b,r,h-r)),h+=4}return l(b,h,0),h+=4,u(b,h,\"IEND\"),h+=4,l(b,h,f(b,h-4,4)),h+=4,b.buffer}function compressPNG(e,t,r){for(let i=0;i<e.frames.length;i++){const o=e.frames[i];o.rect.width;const a=o.rect.height,s=new Uint8Array(a*o.bpl+a);o.cimg=_filterZero(o.img,a,o.bpp,o.bpl,s,t,r)}}function compress(t,r,i,o,a){const s=a[0],f=a[1],l=a[2],c=a[3],u=a[4],h=a[5];let d=6,A=8,g=255;for(var p=0;p<t.length;p++){const e=new Uint8Array(t[p]);for(var m=e.length,w=0;w<m;w+=4)g&=e[w+3]}const v=255!=g,b=function framize(t,r,i,o,a,s){const f=[];for(var l=0;l<t.length;l++){const h=new Uint8Array(t[l]),A=new Uint32Array(h.buffer);var c;let g=0,p=0,m=r,w=i,v=o?1:0;if(0!=l){const b=s||o||1==l||0!=f[l-2].dispose?1:2;let y=0,E=1e9;for(let e=0;e<b;e++){var u=new Uint8Array(t[l-1-e]);const o=new Uint32Array(t[l-1-e]);let s=r,f=i,c=-1,h=-1;for(let e=0;e<i;e++)for(let t=0;t<r;t++){A[d=e*r+t]!=o[d]&&(t<s&&(s=t),t>c&&(c=t),e<f&&(f=e),e>h&&(h=e))}-1==c&&(s=f=c=h=0),a&&(1==(1&s)&&s--,1==(1&f)&&f--);const v=(c-s+1)*(h-f+1);v<E&&(E=v,y=e,g=s,p=f,m=c-s+1,w=h-f+1)}u=new Uint8Array(t[l-1-y]);1==y&&(f[l-1].dispose=2),c=new Uint8Array(m*w*4),e(u,r,i,c,m,w,-g,-p,0),v=e(h,r,i,c,m,w,-g,-p,3)?1:0,1==v?_prepareDiff(h,r,i,c,{x:g,y:p,width:m,height:w}):e(h,r,i,c,m,w,-g,-p,0)}else c=h.slice(0);f.push({rect:{x:g,y:p,width:m,height:w},img:c,blend:v,dispose:0})}if(o)for(l=0;l<f.length;l++){if(1==(A=f[l]).blend)continue;const e=A.rect,o=f[l-1].rect,s=Math.min(e.x,o.x),c=Math.min(e.y,o.y),u={x:s,y:c,width:Math.max(e.x+e.width,o.x+o.width)-s,height:Math.max(e.y+e.height,o.y+o.height)-c};f[l-1].dispose=1,l-1!=0&&_updateFrame(t,r,i,f,l-1,u,a),_updateFrame(t,r,i,f,l,u,a)}let h=0;if(1!=t.length)for(var d=0;d<f.length;d++){var A;h+=(A=f[d]).rect.width*A.rect.height}return f}(t,r,i,s,f,l),y={},E=[],F=[];if(0!=o){const e=[];for(w=0;w<b.length;w++)e.push(b[w].img.buffer);const t=function concatRGBA(e){let t=0;for(var r=0;r<e.length;r++)t+=e[r].byteLength;const i=new Uint8Array(t);let o=0;for(r=0;r<e.length;r++){const t=new Uint8Array(e[r]),a=t.length;for(let e=0;e<a;e+=4){let r=t[e],a=t[e+1],s=t[e+2];const f=t[e+3];0==f&&(r=a=s=0),i[o+e]=r,i[o+e+1]=a,i[o+e+2]=s,i[o+e+3]=f}o+=a}return i.buffer}(e),r=quantize(t,o);for(w=0;w<r.plte.length;w++)E.push(r.plte[w].est.rgba);let i=0;for(w=0;w<b.length;w++){const e=(B=b[w]).img.length;var _=new Uint8Array(r.inds.buffer,i>>2,e>>2);F.push(_);const t=new Uint8Array(r.abuf,i,e);h&&dither(B.img,B.rect.width,B.rect.height,E,t,_),B.img.set(t),i+=e}}else for(p=0;p<b.length;p++){var B=b[p];const e=new Uint32Array(B.img.buffer);var U=B.rect.width;m=e.length,_=new Uint8Array(m);F.push(_);for(w=0;w<m;w++){const t=e[w];if(0!=w&&t==e[w-1])_[w]=_[w-1];else if(w>U&&t==e[w-U])_[w]=_[w-U];else{let e=y[t];if(null==e&&(y[t]=e=E.length,E.push(t),E.length>=300))break;_[w]=e}}}const C=E.length;C<=256&&0==u&&(A=C<=2?1:C<=4?2:C<=16?4:8,A=Math.max(A,c));for(p=0;p<b.length;p++){(B=b[p]).rect.x,B.rect.y;U=B.rect.width;const e=B.rect.height;let t=B.img;new Uint32Array(t.buffer);let r=4*U,i=4;if(C<=256&&0==u){r=Math.ceil(A*U/8);var I=new Uint8Array(r*e);const o=F[p];for(let t=0;t<e;t++){w=t*r;const e=t*U;if(8==A)for(var Q=0;Q<U;Q++)I[w+Q]=o[e+Q];else if(4==A)for(Q=0;Q<U;Q++)I[w+(Q>>1)]|=o[e+Q]<<4-4*(1&Q);else if(2==A)for(Q=0;Q<U;Q++)I[w+(Q>>2)]|=o[e+Q]<<6-2*(3&Q);else if(1==A)for(Q=0;Q<U;Q++)I[w+(Q>>3)]|=o[e+Q]<<7-1*(7&Q)}t=I,d=3,i=1}else if(0==v&&1==b.length){I=new Uint8Array(U*e*3);const o=U*e;for(w=0;w<o;w++){const e=3*w,r=4*w;I[e]=t[r],I[e+1]=t[r+1],I[e+2]=t[r+2]}t=I,d=2,i=3,r=3*U}B.img=t,B.bpl=r,B.bpp=i}return{ctype:d,depth:A,plte:E,frames:b}}function _updateFrame(t,r,i,o,a,s,f){const l=Uint8Array,c=Uint32Array,u=new l(t[a-1]),h=new c(t[a-1]),d=a+1<t.length?new l(t[a+1]):null,A=new l(t[a]),g=new c(A.buffer);let p=r,m=i,w=-1,v=-1;for(let e=0;e<s.height;e++)for(let t=0;t<s.width;t++){const i=s.x+t,f=s.y+e,l=f*r+i,c=g[l];0==c||0==o[a-1].dispose&&h[l]==c&&(null==d||0!=d[4*l+3])||(i<p&&(p=i),i>w&&(w=i),f<m&&(m=f),f>v&&(v=f))}-1==w&&(p=m=w=v=0),f&&(1==(1&p)&&p--,1==(1&m)&&m--),s={x:p,y:m,width:w-p+1,height:v-m+1};const b=o[a];b.rect=s,b.blend=1,b.img=new Uint8Array(s.width*s.height*4),0==o[a-1].dispose?(e(u,r,i,b.img,s.width,s.height,-s.x,-s.y,0),_prepareDiff(A,r,i,b.img,s)):e(A,r,i,b.img,s.width,s.height,-s.x,-s.y,0)}function _prepareDiff(t,r,i,o,a){e(t,r,i,o,a.width,a.height,-a.x,-a.y,2)}function _filterZero(e,t,r,i,o,a,s){const f=[];let l,c=[0,1,2,3,4];-1!=a?c=[a]:(t*i>5e5||1==r)&&(c=[0]),s&&(l={level:0});const u=UZIP;for(var h=0;h<c.length;h++){for(let a=0;a<t;a++)_filterLine(o,e,a,i,r,c[h]);f.push(u.deflate(o,l))}let d,A=1e9;for(h=0;h<f.length;h++)f[h].length<A&&(d=h,A=f[h].length);return f[d]}function _filterLine(e,t,i,o,a,s){const f=i*o;let l=f+i;if(e[l]=s,l++,0==s)if(o<500)for(var c=0;c<o;c++)e[l+c]=t[f+c];else e.set(new Uint8Array(t.buffer,f,o),l);else if(1==s){for(c=0;c<a;c++)e[l+c]=t[f+c];for(c=a;c<o;c++)e[l+c]=t[f+c]-t[f+c-a]+256&255}else if(0==i){for(c=0;c<a;c++)e[l+c]=t[f+c];if(2==s)for(c=a;c<o;c++)e[l+c]=t[f+c];if(3==s)for(c=a;c<o;c++)e[l+c]=t[f+c]-(t[f+c-a]>>1)+256&255;if(4==s)for(c=a;c<o;c++)e[l+c]=t[f+c]-r(t[f+c-a],0,0)+256&255}else{if(2==s)for(c=0;c<o;c++)e[l+c]=t[f+c]+256-t[f+c-o]&255;if(3==s){for(c=0;c<a;c++)e[l+c]=t[f+c]+256-(t[f+c-o]>>1)&255;for(c=a;c<o;c++)e[l+c]=t[f+c]+256-(t[f+c-o]+t[f+c-a]>>1)&255}if(4==s){for(c=0;c<a;c++)e[l+c]=t[f+c]+256-r(0,t[f+c-o],0)&255;for(c=a;c<o;c++)e[l+c]=t[f+c]+256-r(t[f+c-a],t[f+c-o],t[f+c-a-o])&255}}}function quantize(e,t){const r=new Uint8Array(e),i=r.slice(0),o=new Uint32Array(i.buffer),a=getKDtree(i,t),s=a[0],f=a[1],l=r.length,c=new Uint8Array(l>>2);let u;if(r.length<2e7)for(var h=0;h<l;h+=4){u=getNearest(s,d=r[h]*(1/255),A=r[h+1]*(1/255),g=r[h+2]*(1/255),p=r[h+3]*(1/255)),c[h>>2]=u.ind,o[h>>2]=u.est.rgba}else for(h=0;h<l;h+=4){var d=r[h]*(1/255),A=r[h+1]*(1/255),g=r[h+2]*(1/255),p=r[h+3]*(1/255);for(u=s;u.left;)u=planeDst(u.est,d,A,g,p)<=0?u.left:u.right;c[h>>2]=u.ind,o[h>>2]=u.est.rgba}return{abuf:i.buffer,inds:c,plte:f}}function getKDtree(e,t,r){null==r&&(r=1e-4);const i=new Uint32Array(e.buffer),o={i0:0,i1:e.length,bst:null,est:null,tdst:0,left:null,right:null};o.bst=stats(e,o.i0,o.i1),o.est=estats(o.bst);const a=[o];for(;a.length<t;){let t=0,o=0;for(var s=0;s<a.length;s++)a[s].est.L>t&&(t=a[s].est.L,o=s);if(t<r)break;const f=a[o],l=splitPixels(e,i,f.i0,f.i1,f.est.e,f.est.eMq255);if(f.i0>=l||f.i1<=l){f.est.L=0;continue}const c={i0:f.i0,i1:l,bst:null,est:null,tdst:0,left:null,right:null};c.bst=stats(e,c.i0,c.i1),c.est=estats(c.bst);const u={i0:l,i1:f.i1,bst:null,est:null,tdst:0,left:null,right:null};u.bst={R:[],m:[],N:f.bst.N-c.bst.N};for(s=0;s<16;s++)u.bst.R[s]=f.bst.R[s]-c.bst.R[s];for(s=0;s<4;s++)u.bst.m[s]=f.bst.m[s]-c.bst.m[s];u.est=estats(u.bst),f.left=c,f.right=u,a[o]=c,a.push(u)}a.sort(((e,t)=>t.bst.N-e.bst.N));for(s=0;s<a.length;s++)a[s].ind=s;return[o,a]}function getNearest(e,t,r,i,o){if(null==e.left)return e.tdst=function dist(e,t,r,i,o){const a=t-e[0],s=r-e[1],f=i-e[2],l=o-e[3];return a*a+s*s+f*f+l*l}(e.est.q,t,r,i,o),e;const a=planeDst(e.est,t,r,i,o);let s=e.left,f=e.right;a>0&&(s=e.right,f=e.left);const l=getNearest(s,t,r,i,o);if(l.tdst<=a*a)return l;const c=getNearest(f,t,r,i,o);return c.tdst<l.tdst?c:l}function planeDst(e,t,r,i,o){const{e:a}=e;return a[0]*t+a[1]*r+a[2]*i+a[3]*o-e.eMq}function splitPixels(e,t,r,i,o,a){for(i-=4;r<i;){for(;vecDot(e,r,o)<=a;)r+=4;for(;vecDot(e,i,o)>a;)i-=4;if(r>=i)break;const s=t[r>>2];t[r>>2]=t[i>>2],t[i>>2]=s,r+=4,i-=4}for(;vecDot(e,r,o)>a;)r-=4;return r+4}function vecDot(e,t,r){return e[t]*r[0]+e[t+1]*r[1]+e[t+2]*r[2]+e[t+3]*r[3]}function stats(e,t,r){const i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=[0,0,0,0],a=r-t>>2;for(let a=t;a<r;a+=4){const t=e[a]*(1/255),r=e[a+1]*(1/255),s=e[a+2]*(1/255),f=e[a+3]*(1/255);o[0]+=t,o[1]+=r,o[2]+=s,o[3]+=f,i[0]+=t*t,i[1]+=t*r,i[2]+=t*s,i[3]+=t*f,i[5]+=r*r,i[6]+=r*s,i[7]+=r*f,i[10]+=s*s,i[11]+=s*f,i[15]+=f*f}return i[4]=i[1],i[8]=i[2],i[9]=i[6],i[12]=i[3],i[13]=i[7],i[14]=i[11],{R:i,m:o,N:a}}function estats(e){const{R:t}=e,{m:r}=e,{N:i}=e,a=r[0],s=r[1],f=r[2],l=r[3],c=0==i?0:1/i,u=[t[0]-a*a*c,t[1]-a*s*c,t[2]-a*f*c,t[3]-a*l*c,t[4]-s*a*c,t[5]-s*s*c,t[6]-s*f*c,t[7]-s*l*c,t[8]-f*a*c,t[9]-f*s*c,t[10]-f*f*c,t[11]-f*l*c,t[12]-l*a*c,t[13]-l*s*c,t[14]-l*f*c,t[15]-l*l*c],h=u,d=o;let A=[Math.random(),Math.random(),Math.random(),Math.random()],g=0,p=0;if(0!=i)for(let e=0;e<16&&(A=d.multVec(h,A),p=Math.sqrt(d.dot(A,A)),A=d.sml(1/p,A),!(0!=e&&Math.abs(p-g)<1e-9));e++)g=p;const m=[a*c,s*c,f*c,l*c];return{Cov:u,q:m,e:A,L:g,eMq255:d.dot(d.sml(255,m),A),eMq:d.dot(A,m),rgba:(Math.round(255*m[3])<<24|Math.round(255*m[2])<<16|Math.round(255*m[1])<<8|Math.round(255*m[0])<<0)>>>0}}var o={multVec:(e,t)=>[e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7]*t[3],e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11]*t[3],e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]*t[3]],dot:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],sml:(e,t)=>[e*t[0],e*t[1],e*t[2],e*t[3]]};UPNG.encode=function encode(e,t,r,i,o,a,s){null==i&&(i=0),null==s&&(s=!1);const f=compress(e,t,r,i,[!1,!1,!1,0,s,!1]);return compressPNG(f,-1),_main(f,t,r,o,a)},UPNG.encodeLL=function encodeLL(e,t,r,i,o,a,s,f){const l={ctype:0+(1==i?0:2)+(0==o?0:4),depth:a,frames:[]},c=(i+o)*a,u=c*t;for(let i=0;i<e.length;i++)l.frames.push({rect:{x:0,y:0,width:t,height:r},img:new Uint8Array(e[i]),blend:0,dispose:1,bpp:Math.ceil(c/8),bpl:Math.ceil(u/8)});return compressPNG(l,0,!0),_main(l,t,r,s,f)},UPNG.encode.compress=compress,UPNG.encode.dither=dither,UPNG.quantize=quantize,UPNG.quantize.getKDtree=getKDtree,UPNG.quantize.getNearest=getNearest}();const r={toArrayBuffer(e,t){const i=e.width,o=e.height,a=i<<2,s=e.getContext(\"2d\").getImageData(0,0,i,o),f=new Uint32Array(s.data.buffer),l=(32*i+31)/32<<2,c=l*o,u=122+c,h=new ArrayBuffer(u),d=new DataView(h),A=1<<20;let g,p,m,w,v=A,b=0,y=0,E=0;function set16(e){d.setUint16(y,e,!0),y+=2}function set32(e){d.setUint32(y,e,!0),y+=4}function seek(e){y+=e}set16(19778),set32(u),seek(4),set32(122),set32(108),set32(i),set32(-o>>>0),set16(1),set16(32),set32(3),set32(c),set32(2835),set32(2835),seek(8),set32(16711680),set32(65280),set32(255),set32(4278190080),set32(1466527264),function convert(){for(;b<o&&v>0;){for(w=122+b*l,g=0;g<a;)v--,p=f[E++],m=p>>>24,d.setUint32(w+g,p<<8|m),g+=4;b++}E<f.length?(v=A,setTimeout(convert,r._dly)):t(h)}()},toBlob(e,t){this.toArrayBuffer(e,(e=>{t(new Blob([e],{type:\"image/bmp\"}))}))},_dly:9};var i={CHROME:\"CHROME\",FIREFOX:\"FIREFOX\",DESKTOP_SAFARI:\"DESKTOP_SAFARI\",IE:\"IE\",IOS:\"IOS\",ETC:\"ETC\"},o={[i.CHROME]:16384,[i.FIREFOX]:11180,[i.DESKTOP_SAFARI]:16384,[i.IE]:8192,[i.IOS]:4096,[i.ETC]:8192};const a=\"undefined\"!=typeof window,s=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,f=a&&window.cordova&&window.cordova.require&&window.cordova.require(\"cordova/modulemapper\"),CustomFile=(a||s)&&(f&&f.getOriginalSymbol(window,\"File\")||\"undefined\"!=typeof File&&File),CustomFileReader=(a||s)&&(f&&f.getOriginalSymbol(window,\"FileReader\")||\"undefined\"!=typeof FileReader&&FileReader);function getFilefromDataUrl(e,t,r=Date.now()){return new Promise((i=>{const o=e.split(\",\"),a=o[0].match(/:(.*?);/)[1],s=globalThis.atob(o[1]);let f=s.length;const l=new Uint8Array(f);for(;f--;)l[f]=s.charCodeAt(f);const c=new Blob([l],{type:a});c.name=t,c.lastModified=r,i(c)}))}function getDataUrlFromFile(e){return new Promise(((t,r)=>{const i=new CustomFileReader;i.onload=()=>t(i.result),i.onerror=e=>r(e),i.readAsDataURL(e)}))}function loadImage(e){return new Promise(((t,r)=>{const i=new Image;i.onload=()=>t(i),i.onerror=e=>r(e),i.src=e}))}function getBrowserName(){if(void 0!==getBrowserName.cachedResult)return getBrowserName.cachedResult;let e=i.ETC;const{userAgent:t}=navigator;return/Chrom(e|ium)/i.test(t)?e=i.CHROME:/iP(ad|od|hone)/i.test(t)&&/WebKit/i.test(t)?e=i.IOS:/Safari/i.test(t)?e=i.DESKTOP_SAFARI:/Firefox/i.test(t)?e=i.FIREFOX:(/MSIE/i.test(t)||!0==!!document.documentMode)&&(e=i.IE),getBrowserName.cachedResult=e,getBrowserName.cachedResult}function approximateBelowMaximumCanvasSizeOfBrowser(e,t){const r=getBrowserName(),i=o[r];let a=e,s=t,f=a*s;const l=a>s?s/a:a/s;for(;f>i*i;){const e=(i+a)/2,t=(i+s)/2;e<t?(s=t,a=t*l):(s=e*l,a=e),f=a*s}return{width:a,height:s}}function getNewCanvasAndCtx(e,t){let r,i;try{if(r=new OffscreenCanvas(e,t),i=r.getContext(\"2d\"),null===i)throw new Error(\"getContext of OffscreenCanvas returns null\")}catch(e){r=document.createElement(\"canvas\"),i=r.getContext(\"2d\")}return r.width=e,r.height=t,[r,i]}function drawImageInCanvas(e,t){const{width:r,height:i}=approximateBelowMaximumCanvasSizeOfBrowser(e.width,e.height),[o,a]=getNewCanvasAndCtx(r,i);return t&&/jpe?g/.test(t)&&(a.fillStyle=\"white\",a.fillRect(0,0,o.width,o.height)),a.drawImage(e,0,0,o.width,o.height),o}function isIOS(){return void 0!==isIOS.cachedResult||(isIOS.cachedResult=[\"iPad Simulator\",\"iPhone Simulator\",\"iPod Simulator\",\"iPad\",\"iPhone\",\"iPod\"].includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"undefined\"!=typeof document&&\"ontouchend\"in document),isIOS.cachedResult}function drawFileInCanvas(e,t={}){return new Promise((function(r,o){let a,s;var $Try_2_Post=function(){try{return s=drawImageInCanvas(a,t.fileType||e.type),r([a,s])}catch(e){return o(e)}},$Try_2_Catch=function(t){try{0;var $Try_3_Catch=function(e){try{throw e}catch(e){return o(e)}};try{let t;return getDataUrlFromFile(e).then((function(e){try{return t=e,loadImage(t).then((function(e){try{return a=e,function(){try{return $Try_2_Post()}catch(e){return o(e)}}()}catch(e){return $Try_3_Catch(e)}}),$Try_3_Catch)}catch(e){return $Try_3_Catch(e)}}),$Try_3_Catch)}catch(e){$Try_3_Catch(e)}}catch(e){return o(e)}};try{if(isIOS()||[i.DESKTOP_SAFARI,i.MOBILE_SAFARI].includes(getBrowserName()))throw new Error(\"Skip createImageBitmap on IOS and Safari\");return createImageBitmap(e).then((function(e){try{return a=e,$Try_2_Post()}catch(e){return $Try_2_Catch()}}),$Try_2_Catch)}catch(e){$Try_2_Catch()}}))}function canvasToFile(e,t,i,o,a=1){return new Promise((function(s,f){let l;if(\"image/png\"===t){let c,u,h;return c=e.getContext(\"2d\"),({data:u}=c.getImageData(0,0,e.width,e.height)),h=UPNG.encode([u.buffer],e.width,e.height,4096*a),l=new Blob([h],{type:t}),l.name=i,l.lastModified=o,$If_4.call(this)}{if(\"image/bmp\"===t)return new Promise((t=>r.toBlob(e,t))).then(function(e){try{return l=e,l.name=i,l.lastModified=o,$If_5.call(this)}catch(e){return f(e)}}.bind(this),f);{if(\"function\"==typeof OffscreenCanvas&&e instanceof OffscreenCanvas)return e.convertToBlob({type:t,quality:a}).then(function(e){try{return l=e,l.name=i,l.lastModified=o,$If_6.call(this)}catch(e){return f(e)}}.bind(this),f);{let d;return d=e.toDataURL(t,a),getFilefromDataUrl(d,i,o).then(function(e){try{return l=e,$If_6.call(this)}catch(e){return f(e)}}.bind(this),f)}function $If_6(){return $If_5.call(this)}}function $If_5(){return $If_4.call(this)}}function $If_4(){return s(l)}}))}function cleanupCanvasMemory(e){e.width=0,e.height=0}function isAutoOrientationInBrowser(){return new Promise((function(e,t){let r,i,o,a,s;return void 0!==isAutoOrientationInBrowser.cachedResult?e(isAutoOrientationInBrowser.cachedResult):(r=\"data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==\",getFilefromDataUrl(\"data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==\",\"test.jpg\",Date.now()).then((function(r){try{return i=r,drawFileInCanvas(i).then((function(r){try{return o=r[1],canvasToFile(o,i.type,i.name,i.lastModified).then((function(r){try{return a=r,cleanupCanvasMemory(o),drawFileInCanvas(a).then((function(r){try{return s=r[0],isAutoOrientationInBrowser.cachedResult=1===s.width&&2===s.height,e(isAutoOrientationInBrowser.cachedResult)}catch(e){return t(e)}}),t)}catch(e){return t(e)}}),t)}catch(e){return t(e)}}),t)}catch(e){return t(e)}}),t))}))}function getExifOrientation(e){return new Promise(((t,r)=>{const i=new CustomFileReader;i.onload=e=>{const r=new DataView(e.target.result);if(65496!=r.getUint16(0,!1))return t(-2);const i=r.byteLength;let o=2;for(;o<i;){if(r.getUint16(o+2,!1)<=8)return t(-1);const e=r.getUint16(o,!1);if(o+=2,65505==e){if(1165519206!=r.getUint32(o+=2,!1))return t(-1);const e=18761==r.getUint16(o+=6,!1);o+=r.getUint32(o+4,e);const i=r.getUint16(o,e);o+=2;for(let a=0;a<i;a++)if(274==r.getUint16(o+12*a,e))return t(r.getUint16(o+12*a+8,e))}else{if(65280!=(65280&e))break;o+=r.getUint16(o,!1)}}return t(-1)},i.onerror=e=>r(e),i.readAsArrayBuffer(e)}))}function handleMaxWidthOrHeight(e,t){const{width:r}=e,{height:i}=e,{maxWidthOrHeight:o}=t;let a,s=e;return isFinite(o)&&(r>o||i>o)&&([s,a]=getNewCanvasAndCtx(r,i),r>i?(s.width=o,s.height=i/r*o):(s.width=r/i*o,s.height=o),a.drawImage(e,0,0,s.width,s.height),cleanupCanvasMemory(e)),s}function followExifOrientation(e,t){const{width:r}=e,{height:i}=e,[o,a]=getNewCanvasAndCtx(r,i);switch(t>4&&t<9?(o.width=i,o.height=r):(o.width=r,o.height=i),t){case 2:a.transform(-1,0,0,1,r,0);break;case 3:a.transform(-1,0,0,-1,r,i);break;case 4:a.transform(1,0,0,-1,0,i);break;case 5:a.transform(0,1,1,0,0,0);break;case 6:a.transform(0,1,-1,0,i,0);break;case 7:a.transform(0,-1,-1,0,i,r);break;case 8:a.transform(0,-1,1,0,0,r)}return a.drawImage(e,0,0,r,i),cleanupCanvasMemory(e),o}function compress(e,t,r=0){return new Promise((function(i,o){let a,s,f,l,c,u,h,d,A,g,p,m,w,v,b,y,E,F,_,B;function incProgress(e=5){if(t.signal&&t.signal.aborted)throw t.signal.reason;a+=e,t.onProgress(Math.min(a,100))}function setProgress(e){if(t.signal&&t.signal.aborted)throw t.signal.reason;a=Math.min(Math.max(e,a),100),t.onProgress(a)}return a=r,s=t.maxIteration||10,f=1024*t.maxSizeMB*1024,incProgress(),drawFileInCanvas(e,t).then(function(r){try{return[,l]=r,incProgress(),c=handleMaxWidthOrHeight(l,t),incProgress(),new Promise((function(r,i){var o;if(!(o=t.exifOrientation))return getExifOrientation(e).then(function(e){try{return o=e,$If_2.call(this)}catch(e){return i(e)}}.bind(this),i);function $If_2(){return r(o)}return $If_2.call(this)})).then(function(r){try{return u=r,incProgress(),isAutoOrientationInBrowser().then(function(r){try{return h=r?c:followExifOrientation(c,u),incProgress(),d=t.initialQuality||1,A=t.fileType||e.type,canvasToFile(h,A,e.name,e.lastModified,d).then(function(r){try{{if(g=r,incProgress(),p=g.size>f,m=g.size>e.size,!p&&!m)return setProgress(100),i(g);var a;function $Loop_3(){if(s--&&(b>f||b>w)){let t,r;return t=B?.95*_.width:_.width,r=B?.95*_.height:_.height,[E,F]=getNewCanvasAndCtx(t,r),F.drawImage(_,0,0,t,r),d*=\"image/png\"===A?.85:.95,canvasToFile(E,A,e.name,e.lastModified,d).then((function(e){try{return y=e,cleanupCanvasMemory(_),_=E,b=y.size,setProgress(Math.min(99,Math.floor((v-b)/(v-f)*100))),$Loop_3}catch(e){return o(e)}}),o)}return[1]}return w=e.size,v=g.size,b=v,_=h,B=!t.alwaysKeepResolution&&p,(a=function(e){for(;e;){if(e.then)return void e.then(a,o);try{if(e.pop){if(e.length)return e.pop()?$Loop_3_exit.call(this):e;e=$Loop_3}else e=e.call(this)}catch(e){return o(e)}}}.bind(this))($Loop_3);function $Loop_3_exit(){return cleanupCanvasMemory(_),cleanupCanvasMemory(E),cleanupCanvasMemory(c),cleanupCanvasMemory(h),cleanupCanvasMemory(l),setProgress(100),i(y)}}}catch(u){return o(u)}}.bind(this),o)}catch(e){return o(e)}}.bind(this),o)}catch(e){return o(e)}}.bind(this),o)}catch(e){return o(e)}}.bind(this),o)}))}const l=\"\\nlet scriptImported = false\\nself.addEventListener('message', async (e) => {\\n const { file, id, imageCompressionLibUrl, options } = e.data\\n options.onProgress = (progress) => self.postMessage({ progress, id })\\n try {\\n if (!scriptImported) {\\n // console.log('[worker] importScripts', imageCompressionLibUrl)\\n self.importScripts(imageCompressionLibUrl)\\n scriptImported = true\\n }\\n // console.log('[worker] self', self)\\n const compressedFile = await imageCompression(file, options)\\n self.postMessage({ file: compressedFile, id })\\n } catch (e) {\\n // console.error('[worker] error', e)\\n self.postMessage({ error: e.message + '\\\\n' + e.stack, id })\\n }\\n})\\n\";let c;function compressOnWebWorker(e,t){return new Promise(((r,i)=>{c||(c=function createWorkerScriptURL(e){const t=[];return\"function\"==typeof e?t.push(`(${e})()`):t.push(e),URL.createObjectURL(new Blob(t))}(l));const o=new Worker(c);o.addEventListener(\"message\",(function handler(e){if(t.signal&&t.signal.aborted)o.terminate();else if(void 0===e.data.progress){if(e.data.error)return i(new Error(e.data.error)),void o.terminate();r(e.data.file),o.terminate()}else t.onProgress(e.data.progress)})),o.addEventListener(\"error\",i),t.signal&&t.signal.addEventListener(\"abort\",(()=>{i(t.signal.reason),o.terminate()})),o.postMessage({file:e,imageCompressionLibUrl:t.libURL,options:{...t,onProgress:void 0,signal:void 0}})}))}function imageCompression(e,t){return new Promise((function(r,i){let o,a,s,f,l,c;if(o={...t},s=0,({onProgress:f}=o),o.maxSizeMB=o.maxSizeMB||Number.POSITIVE_INFINITY,l=\"boolean\"!=typeof o.useWebWorker||o.useWebWorker,delete o.useWebWorker,o.onProgress=e=>{s=e,\"function\"==typeof f&&f(s)},!(e instanceof Blob||e instanceof CustomFile))return i(new Error(\"The file given is not an instance of Blob or File\"));if(!/^image/.test(e.type))return i(new Error(\"The file given is not an image\"));if(c=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,!l||\"function\"!=typeof Worker||c)return compress(e,o).then(function(e){try{return a=e,$If_4.call(this)}catch(e){return i(e)}}.bind(this),i);var u=function(){try{return $If_4.call(this)}catch(e){return i(e)}}.bind(this),$Try_1_Catch=function(t){try{return compress(e,o).then((function(e){try{return a=e,u()}catch(e){return i(e)}}),i)}catch(e){return i(e)}};try{return o.libURL=o.libURL||\"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js\",compressOnWebWorker(e,o).then((function(e){try{return a=e,u()}catch(e){return $Try_1_Catch()}}),$Try_1_Catch)}catch(e){$Try_1_Catch()}function $If_4(){try{a.name=e.name,a.lastModified=e.lastModified}catch(e){}try{o.preserveExif&&\"image/jpeg\"===e.type&&(!o.fileType||o.fileType&&o.fileType===e.type)&&(a=copyExifWithoutOrientation(e,a))}catch(e){}return r(a)}}))}imageCompression.getDataUrlFromFile=getDataUrlFromFile,imageCompression.getFilefromDataUrl=getFilefromDataUrl,imageCompression.loadImage=loadImage,imageCompression.drawImageInCanvas=drawImageInCanvas,imageCompression.drawFileInCanvas=drawFileInCanvas,imageCompression.canvasToFile=canvasToFile,imageCompression.getExifOrientation=getExifOrientation,imageCompression.handleMaxWidthOrHeight=handleMaxWidthOrHeight,imageCompression.followExifOrientation=followExifOrientation,imageCompression.cleanupCanvasMemory=cleanupCanvasMemory,imageCompression.isAutoOrientationInBrowser=isAutoOrientationInBrowser,imageCompression.approximateBelowMaximumCanvasSizeOfBrowser=approximateBelowMaximumCanvasSizeOfBrowser,imageCompression.copyExifWithoutOrientation=copyExifWithoutOrientation,imageCompression.getBrowserName=getBrowserName,imageCompression.version=\"2.0.2\";export{imageCompression as default};\n//# sourceMappingURL=browser-image-compression.mjs.map\n","export const resolveAppId = (fallbackApp?: string) => {\n const envApp = process.env.VITE_PUBLIC_APP\n if (envApp) {\n return envApp\n }\n if (typeof window !== \"undefined\") {\n const urlApp = new URLSearchParams(window.location.search).get(\"app\")\n if (urlApp) {\n return urlApp\n }\n }\n return fallbackApp || \"pmate\"\n}\n","import { calculateSHA1Hash, Maybe } from \"@pchip/utils\"\n\nexport const cacheInMem = <T extends (...args: any[]) => Promise<any>>(\n fn: T,\n prefix: string,\n timeout: number\n): T => {\n const cache = new Map<string, { value: any; expiry: number }>()\n const ongoingRequests = new Map<string, Promise<any>>()\n\n return (async (...args: Parameters<T>): Promise<ReturnType<T>> => {\n const hashRaw = args\n .map((x) => {\n if (x instanceof Maybe) {\n return x.map((item) => JSON.stringify(item)).unwrapOr(\"\")\n }\n return JSON.stringify(x)\n })\n .join(\"--\")\n\n const hash = await calculateSHA1Hash(hashRaw)\n const cacheKey = `${prefix}:${hash}`\n\n const cached = cache.get(cacheKey)\n if (cached && cached.expiry > Date.now()) {\n return cached.value\n }\n\n const ongoingRequest = ongoingRequests.get(cacheKey)\n if (ongoingRequest) {\n return ongoingRequest\n }\n\n const requestPromise = (async () => {\n try {\n const result = await fn(...args)\n\n if (result) {\n cache.set(cacheKey, { value: result, expiry: Date.now() + timeout })\n }\n return result\n } finally {\n setTimeout(() => ongoingRequests.delete(cacheKey), 50)\n }\n })()\n\n ongoingRequests.set(cacheKey, requestPromise)\n\n return requestPromise\n }) as T\n}\n","import { Maybe, isMaybe } from \"@pchip/utils\"\nimport { ServerResponse } from \"@pmate/meta\"\nimport { cacheInMem } from \"./cacheInMem\"\n\nconst checkLink = async (url: string | Maybe<string>): Promise<boolean> => {\n if (isMaybe(url)) {\n if (url.isNothing()) {\n return false\n }\n url = url.unwrap()\n }\n try {\n const response = await fetch(url, { method: \"HEAD\" })\n return response.ok\n } catch {\n return false\n }\n}\n\nconst cachedLinkCheck = cacheInMem(checkLink, \"link\", 60 * 60 * 1000)\n\nexport class Api {\n public static async get<T>(url: string): Promise<T | null> {\n const response = await fetch(url)\n if (!response.ok) {\n return null\n }\n const json = (await response.json()) as ServerResponse<T>\n return json.data ?? null\n }\n\n public static async post<T>(url: string, body: unknown): Promise<T> {\n const response = await fetch(url, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n })\n const json = (await response.json()) as ServerResponse<T>\n if (!json.success) {\n throw json\n }\n return json.data as T\n }\n\n public static async put<T>(url: string, body: unknown): Promise<Maybe<T>> {\n const response = await fetch(url, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n })\n const json = (await response.json()) as ServerResponse<T>\n if (!json.success) {\n throw json\n }\n return Maybe.Just<T>(json.data)\n }\n\n public static async getFile<T>(url: string): Promise<T | null>\n public static async getFile<T>(url: string, type: \"json\"): Promise<T | null>\n public static async getFile(url: string, type: \"text\"): Promise<string | null>\n public static async getFile<T>(url: string, type: \"log\"): Promise<Maybe<T[]>>\n public static async getFile<T>(\n url: string,\n type: \"json\" | \"text\" | \"log\" = \"json\"\n ): Promise<T | string | Maybe<T[]> | null> {\n try {\n const response = await fetch(url)\n if (type === \"log\") {\n if (!response.ok) {\n return Maybe.Nothing()\n }\n try {\n const text = await response.text()\n const logs = text\n .split(\"\\n\")\n .filter(Boolean)\n .map((line) => JSON.parse(line) as T)\n return Maybe.Just(logs)\n } catch {\n return Maybe.Nothing()\n }\n }\n if (!response.ok) {\n return null\n }\n if (type === \"text\") {\n return response.text()\n }\n return (await response.json()) as T\n } catch (error) {\n console.warn(error)\n return null\n }\n }\n\n public static exists(url: string | Maybe<string>): Promise<boolean> {\n return cachedLinkCheck(url)\n }\n}\n","import {\n AccountState,\n CreateProfileRequest,\n Profile,\n ProfileScope,\n UpdateProfileRequest,\n} from \"@pmate/meta\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\nimport { Api } from \"./Api\"\n\nconst ACCOUNT_ENDPOINT = process.env.VITE_PUBLIC_ACCOUNT_SERVICE!\nconst PROFILE_ENDPOINT =\n process.env.VITE_PUBLIC_PROFILE_SERVICE ??\n process.env.VITE_PUBLIC_AUTH_SERVER_ENDPOINT ??\n ACCOUNT_ENDPOINT\nconst UPLOADER_SERVICE_URL = (\n process.env.VITE_PUBLIC_UPLOADER_SERVICE_URL ??\n process.env.PUBLIC_UPLOADER_SERVICE_URL ??\n \"https://fc-uploader.skedo.cn\"\n).replace(/\\/+$/, \"\")\n\nconst EXTENSION_CONTENT_TYPE: Record<string, string> = {\n png: \"image/png\",\n jpg: \"image/jpeg\",\n jpeg: \"image/jpeg\",\n webp: \"image/webp\",\n gif: \"image/gif\",\n svg: \"image/svg+xml\",\n ico: \"image/x-icon\",\n bmp: \"image/bmp\",\n pdf: \"application/pdf\",\n mobi: \"application/x-mobipocket-ebook\",\n epub: \"application/epub+zip\",\n txt: \"text/plain\",\n json: \"application/json\",\n mp3: \"audio/mpeg\",\n wav: \"audio/wav\",\n webm: \"audio/webm\",\n weba: \"audio/webm\",\n m4a: \"audio/mp4\",\n}\n\ntype UploadRequest = {\n user: string\n base64: string\n filename?: string\n text?: string\n contentType?: string\n}\n\nexport class ProfileService {\n public static async createProfile(\n req: CreateProfileRequest\n ): Promise<Profile> {\n return Api.post<Profile>(`${PROFILE_ENDPOINT}/profile`, req)\n }\n\n public static async updateProfile(req: UpdateProfileRequest) {\n await Api.put(`${PROFILE_ENDPOINT}/profile`, req)\n }\n\n public static async getProfiles(account: AccountState) {\n const scope: ProfileScope = {\n app: resolveAppId(account.app),\n account: account.accountId,\n }\n return ProfileService.getProfilesByScope(scope)\n }\n\n public static async getProfilesByScope(scope: ProfileScope) {\n const query = new URLSearchParams({\n app: scope.app,\n account: scope.account,\n }).toString()\n return (\n (await Api.get<Profile[]>(`${PROFILE_ENDPOINT}/profiles?${query}`)) || []\n )\n }\n\n public static async updateAvatar(req: {\n user: string\n base64: string\n filename: string\n }): Promise<string> {\n return ProfileService.uploadToUploaderService(\"/avatar\", req)\n }\n\n public static async uploadMsgImage(req: {\n user: string\n base64: string\n filename: string\n }): Promise<string> {\n return ProfileService.uploadToUploaderService(\"/msg\", req)\n }\n\n public static async updateMyVoice(req: {\n user: string\n base64: string\n text: string\n }): Promise<string> {\n return ProfileService.uploadToUploaderService(\"/my-voice\", {\n ...req,\n filename: \"voice.wav\",\n contentType: \"audio/wav\",\n })\n }\n\n public static async uploadUserFile(req: {\n user: string\n base64: string\n filename: string\n }) {\n return ProfileService.uploadToUploaderService(\"/file\", req)\n }\n\n private static async uploadToUploaderService(\n path: string,\n payload: UploadRequest\n ): Promise<string> {\n const { filename, ...rest } = payload\n const resolvedFilename = filename ?? \"upload\"\n const ext = resolvedFilename.split(\".\").pop()?.toLowerCase() ?? \"\"\n const contentType = payload.contentType ?? EXTENSION_CONTENT_TYPE[ext]\n const response = await fetch(`${UPLOADER_SERVICE_URL}${path}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(contentType ? { \"x-file-content-type\": contentType } : {}),\n },\n body: JSON.stringify({ ...rest, filename: resolvedFilename }),\n })\n if (!response.ok) {\n throw new Error(\"Upload failed\")\n }\n const json = (await response.json()) as { data?: string }\n if (!json.data) {\n throw new Error(\"Upload failed\")\n }\n return json.data\n }\n}\n","import imageCompression from \"browser-image-compression\"\nimport { atom } from \"jotai\"\nimport { ProfileService } from \"../api/ProfileService\"\n\ntype UploadAvatarParams = {\n file: File\n userId: string\n}\n\nconst fileToBase64 = (file: File) =>\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader()\n reader.onloadend = () => {\n const result = reader.result\n if (typeof result !== \"string\") {\n reject(new Error(\"Failed to read file\"))\n return\n }\n const [, base64] = result.split(\",\")\n if (!base64) {\n reject(new Error(\"Failed to parse base64 data\"))\n return\n }\n resolve(base64)\n }\n reader.onerror = () => {\n reject(new Error(\"Failed to read file\"))\n }\n reader.readAsDataURL(file)\n })\n\nexport const uploadAvatarAtom = atom(\n null,\n async (_get, _set, { file, userId }: UploadAvatarParams) => {\n const compressed = await imageCompression(file, {\n maxSizeMB: 1,\n maxWidthOrHeight: 128,\n useWebWorker: true,\n })\n\n const base64 = await fileToBase64(compressed)\n\n return ProfileService.updateAvatar({\n user: userId,\n base64,\n filename: compressed.name,\n })\n }\n)\n","import type { AccountState, Profile } from \"@pmate/meta\"\n\nexport enum AccountLifecycleState {\n Idle = \"idle\",\n Checking = \"checking\",\n Authenticated = \"authenticated\",\n Unauthenticated = \"unauthenticated\",\n ProfileUninitialized = \"profile-uninitialized\",\n ProfileInitializing = \"profile-initializing\",\n ProfileReady = \"profile-ready\",\n LoggingIn = \"logging-in\",\n LoggingOut = \"logging-out\",\n Error = \"error\",\n}\n\nexport type AccountSnapshot = {\n state: AccountLifecycleState\n account: AccountState | null\n accountId: string | null\n error: Error | null\n profiles: Profile[]\n profile: Profile | null\n}\n\nexport type AuthBehaviors = {\n authBehavior: \"redirect\" | \"prompt\"\n requiresAuth: boolean\n}\n","import { atom } from \"jotai\"\nimport {\n AccountLifecycleState,\n AccountSnapshot as AccountSnapshotType,\n} from \"../types/account.types\"\n\nexport type AccountSnapshot = AccountSnapshotType\n\nconst emptySnapshot: AccountSnapshot = {\n state: AccountLifecycleState.Idle,\n profiles: [],\n profile: null,\n accountId: null,\n account: null,\n error: null,\n}\n\nexport const accountAtom = atom<AccountSnapshot>(emptySnapshot)\n","import { AccountState, Profile } from \"@pmate/meta\"\nimport { atom } from \"jotai\"\nimport { accountAtom } from \"./accountAtom\"\n\nexport const accountStateAtom = atom((get): AccountState | undefined => {\n const account = get(accountAtom).account\n return account ?? undefined\n})\n\nexport const profileAtom = atom((get): Profile | undefined => {\n const profile = get(accountAtom).profile\n return profile ?? undefined\n})\n","export const TOKEN_STORAGE_KEY = \"pmate-auth-token\"\n\nconst canUseStorage = () => typeof localStorage !== \"undefined\"\n\nexport const getAuthToken = (): string | null => {\n if (!canUseStorage()) {\n return null\n }\n try {\n const raw = localStorage.getItem(TOKEN_STORAGE_KEY)\n if (!raw) {\n return null\n }\n const parsed = JSON.parse(raw) as unknown\n return typeof parsed === \"string\" ? parsed : null\n } catch {\n return null\n }\n}\n\nexport const setAuthToken = (token: string): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.setItem(TOKEN_STORAGE_KEY, JSON.stringify(token))\n } catch {\n // ignore write errors\n }\n}\n\nexport const clearAuthToken = (): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.removeItem(TOKEN_STORAGE_KEY)\n } catch {\n // ignore delete errors\n }\n}\n","import {\n AuthLoginResponse,\n AuthRequest,\n AuthSession,\n ServerResponse,\n VCodeIssueRequest,\n VCodeIssueResult,\n} from \"@pmate/meta\"\nimport { lru } from \"@pchip/utils\"\nimport { getAuthToken } from \"../utils/tokenStorage\"\n\nconst AUTH_ENDPOINT = process.env.VITE_PUBLIC_AUTH_SERVER_ENDPOINT!\ntype AuthRequestInit = RequestInit & { token?: string }\n\nexport class AccountService {\n private static sessionCached = lru(\n (token?: string) =>\n AccountService.authRequest<AuthSession | null>(\"/session\", {\n method: \"GET\",\n token,\n }),\n {\n ttl: 3_000,\n key: (token) => token ?? getAuthToken() ?? \"default\",\n }\n )\n public static async vcode(\n payload: VCodeIssueRequest\n ): Promise<VCodeIssueResult> {\n return AccountService.authRequest<VCodeIssueResult>(\"/vcode\", {\n method: \"POST\",\n body: JSON.stringify(payload),\n })\n }\n\n public static async login(request: AuthRequest): Promise<AuthLoginResponse> {\n return AccountService.authRequest<AuthLoginResponse>(\"/login\", {\n method: \"POST\",\n body: JSON.stringify(request),\n token: request.nonce,\n })\n }\n\n public static async logout(token?: string) {\n return AccountService.authRequest<{ success: boolean }>(\"/logout\", {\n method: \"POST\",\n token,\n })\n }\n\n public static async session(token?: string) {\n return AccountService.sessionCached(token)\n }\n\n private static async authRequest<T>(path: string, init: AuthRequestInit) {\n const { token, headers, ...rest } = init\n const resolvedToken = token ?? getAuthToken()\n const response = await fetch(\n `${AUTH_ENDPOINT.replace(/\\/+$/, \"\")}${path}`,\n {\n credentials: \"include\",\n ...rest,\n headers: {\n \"Content-Type\": \"application/json\",\n ...(resolvedToken\n ? { Authorization: `Bearer ${resolvedToken}` }\n : {}),\n ...(headers ?? {}),\n },\n }\n )\n const json = (await response.json()) as ServerResponse<T>\n if (!response.ok || !json.success) {\n throw json\n }\n return json.data\n }\n}\n","import { GroupInfo, Profile } from \"@pmate/meta\"\nimport { Api } from \"./Api\"\n\nconst endpoint = process.env.VITE_PUBLIC_ACCOUNT_SERVICE!\n\nexport class EntityService {\n public static async entity<T>(id: string): Promise<T | null> {\n return (await Api.get<T>(`${endpoint}/entity/${id}`)) || null\n }\n\n public static getProfile(id: string): Promise<Profile | null> {\n return EntityService.entity<Profile>(id)\n }\n\n public static getGroup(id: string): Promise<GroupInfo | null> {\n return EntityService.entity<GroupInfo>(id)\n }\n\n public static async entities<T extends { id?: string }>(\n ids: string[]\n ): Promise<Record<string, T>> {\n if (!ids.length) {\n return {}\n }\n const url = `${endpoint}/entities`\n const list =\n (await Api.post<T[]>(url, {\n ids,\n })) || []\n return list.reduce<Record<string, T>>((acc, entity, index) => {\n if (!entity) {\n return acc\n }\n const key = entity.id ?? ids[index]\n if (key) {\n acc[key] = entity\n }\n return acc\n }, {})\n }\n}\n","import type { AccountState } from \"@pmate/meta\"\n\nexport const ACCOUNT_STATE_KEY = \"account-state\"\n\nconst canUseStorage = () => typeof localStorage !== \"undefined\"\n\nexport const getAccountState = (): AccountState | null => {\n if (!canUseStorage()) {\n return null\n }\n try {\n const raw = localStorage.getItem(ACCOUNT_STATE_KEY)\n if (!raw) {\n return null\n }\n return JSON.parse(raw) as AccountState\n } catch {\n return null\n }\n}\n\nexport const setAccountState = (state: AccountState): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.setItem(ACCOUNT_STATE_KEY, JSON.stringify(state))\n } catch {\n // ignore write errors\n }\n}\n\nexport const clearAccountState = (): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.removeItem(ACCOUNT_STATE_KEY)\n } catch {\n // ignore delete errors\n }\n}\n","export const SELECTED_PROFILE_KEY = \"selected-profile\"\n\nconst canUseStorage = () => typeof localStorage !== \"undefined\"\n\nexport const getSelectedProfileId = (): string | null => {\n if (!canUseStorage()) {\n return null\n }\n try {\n const raw = localStorage.getItem(SELECTED_PROFILE_KEY)\n if (!raw) {\n return null\n }\n const parsed = JSON.parse(raw) as unknown\n return typeof parsed === \"string\" ? parsed : null\n } catch {\n return null\n }\n}\n\nexport const setSelectedProfileId = (id: string): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.setItem(SELECTED_PROFILE_KEY, JSON.stringify(id))\n } catch {\n // ignore write errors\n }\n}\n\nexport const clearSelectedProfileId = (): void => {\n if (!canUseStorage()) {\n return\n }\n try {\n localStorage.removeItem(SELECTED_PROFILE_KEY)\n } catch {\n // ignore delete errors\n }\n}\n","import { Emitter } from \"@pchip/utils\"\nimport {\n AccountState,\n LangShort,\n LocalProfileState,\n Profile,\n RoomPeerInfo,\n} from \"@pmate/meta\"\nimport { AccountLifecycleState } from \"../types/account.types\"\nimport type { AccountSnapshot } from \"../types/account.types\"\nimport { AccountService, ProfileService } from \"../api\"\nimport { clearAccountState, setAccountState } from \"./accountStorage\"\nimport { resolveAppId } from \"./resolveAppId\"\nimport {\n clearSelectedProfileId,\n getSelectedProfileId,\n setSelectedProfileId,\n} from \"./selectedProfileStorage\"\nimport { clearAuthToken, getAuthToken, setAuthToken } from \"./tokenStorage\"\n\nexport enum AccountManagerEvent {\n StateChange = \"stateChange\",\n}\n\nexport class AccountManagerV2 extends Emitter<AccountManagerEvent> {\n private static instances = new Map<string, AccountManagerV2>()\n\n constructor(private readonly app: string) {\n super()\n }\n\n public static get(app?: string): AccountManagerV2 {\n const resolvedApp = resolveAppId(app)\n const existing = AccountManagerV2.instances.get(resolvedApp)\n if (existing) {\n return existing\n }\n const manager = new AccountManagerV2(resolvedApp)\n AccountManagerV2.instances.set(resolvedApp, manager)\n return manager\n }\n\n public async session() {\n try {\n return await AccountService.session()\n } catch (error) {\n return null\n }\n }\n\n public async login(): Promise<AccountState> {\n this.transition(AccountLifecycleState.LoggingIn, null)\n try {\n const session = await AccountService.session()\n if (!session) {\n throw new Error(\"Session not found\")\n }\n const issuedAtMs = Date.parse(session.issuedAt)\n const state: AccountState = {\n accountId: session.identity.accountId,\n token: \"\",\n signTime: Number.isNaN(issuedAtMs) ? Date.now() : issuedAtMs,\n app: this.app,\n }\n this.setAccountState(state)\n this.transition(AccountLifecycleState.Authenticated, null)\n this.transition(AccountLifecycleState.ProfileInitializing, null)\n const profiles = await this.prepareProfiles(state)\n this.transition(\n profiles.length > 0\n ? AccountLifecycleState.ProfileReady\n : AccountLifecycleState.ProfileUninitialized,\n null,\n )\n return state\n } catch (error) {\n const nextError =\n error instanceof Error ? error : new Error(\"Login failed\")\n this.transition(AccountLifecycleState.Error, nextError)\n throw nextError\n }\n }\n\n public hasUrlSession(): boolean {\n if (typeof window === \"undefined\") {\n return false\n }\n const params = new URLSearchParams(window.location.search)\n return params.has(\"sessionId\")\n }\n\n /**\n * When a URL contains a sessionId parameter, this method logs in the user.\n * If URL does not contain a sessionId parameter, this method logs in from existing session.\n */\n public async loginUrlSessionOverride(): Promise<AccountState> {\n if (typeof window === \"undefined\") {\n return this.login()\n }\n const params = new URLSearchParams(window.location.search)\n const sessionId = params.get(\"sessionId\")\n if (sessionId) {\n this.setAuthToken(sessionId)\n }\n const account = await this.login()\n if (sessionId) {\n params.delete(\"sessionId\")\n const nextSearch = params.toString()\n const nextUrl = `${window.location.pathname}${\n nextSearch ? `?${nextSearch}` : \"\"\n }${window.location.hash}`\n window.history.replaceState(null, \"\", nextUrl)\n }\n return account\n }\n\n public async logout(): Promise<void> {\n this.transition(AccountLifecycleState.LoggingOut, null)\n try {\n await AccountService.logout(getAuthToken() || undefined)\n } catch {\n // ignore logout failures to ensure local session is cleared\n } finally {\n this.clearSession()\n this.transition(AccountLifecycleState.Unauthenticated, null)\n }\n }\n\n public async getSnapshot(): Promise<AccountSnapshot> {\n const account = await this.getAccountState()\n if (!account) {\n return {\n state: AccountLifecycleState.Unauthenticated,\n account: null,\n accountId: null,\n error: null,\n profiles: [],\n profile: null,\n }\n }\n const profiles = await this.getProfiles()\n const profile = await this.getSelectedProfile(profiles)\n const state =\n profiles.length > 0\n ? AccountLifecycleState.ProfileReady\n : AccountLifecycleState.ProfileUninitialized\n return {\n state,\n account,\n accountId: account.accountId ?? null,\n error: null,\n profiles,\n profile,\n }\n }\n\n public transition(next: AccountLifecycleState, error?: Error | null): void {\n void next\n void error\n this.emit(AccountManagerEvent.StateChange)\n }\n\n public async getAccountState(): Promise<AccountState | null> {\n const session = await this.session()\n if (!session) {\n return null\n }\n const issuedAtMs = Date.parse(session.issuedAt)\n const state: AccountState = {\n accountId: session.identity.accountId,\n token: getAuthToken() || \"\",\n signTime: Number.isNaN(issuedAtMs) ? Date.now() : issuedAtMs,\n app: this.app,\n }\n return state\n }\n\n public setAccountState(state: AccountState): void {\n setAccountState(state)\n }\n\n public clearAccountState(): void {\n clearAccountState()\n }\n\n public async getSelectedProfile(\n profiles?: Profile[],\n ): Promise<Profile | null> {\n const storedId = getSelectedProfileId()\n if (!storedId) {\n return null\n }\n const resolvedProfiles = profiles ?? (await this.getProfiles())\n return resolvedProfiles.find((profile) => profile.id === storedId) ?? null\n }\n\n public setSelectedProfile(\n profile: Profile | LocalProfileState | string,\n ): void {\n const nextId = typeof profile === \"string\" ? profile : profile.id\n setSelectedProfileId(nextId)\n this.emit(AccountManagerEvent.StateChange)\n }\n\n public clearSelectedProfile(): void {\n clearSelectedProfileId()\n this.emit(AccountManagerEvent.StateChange)\n }\n\n public async getProfiles(): Promise<Profile[]> {\n const account = await this.getAccountState()\n if (!account) {\n return []\n }\n try {\n return await this.prepareProfiles(account)\n } catch {\n return []\n }\n }\n\n public clearProfiles(): void {\n this.emit(AccountManagerEvent.StateChange)\n }\n\n public clearSession(): void {\n this.clearAccountState()\n this.clearSelectedProfile()\n this.clearProfiles()\n this.clearAuthToken()\n }\n\n public getAuthToken(): string | null {\n return getAuthToken()\n }\n\n public setAuthToken(token: string): void {\n setAuthToken(token)\n }\n\n public clearAuthToken(): void {\n clearAuthToken()\n }\n\n public async getLocalProfile(): Promise<LocalProfileState | null> {\n const account = await this.getAccountState()\n const profile = await this.getSelectedProfile()\n if (!account || !profile) {\n return null\n }\n const { id, ...rest } = profile\n return { ...account, ...rest, id } as LocalProfileState\n }\n\n public async getCurrentPeer(): Promise<RoomPeerInfo | undefined> {\n const user = await this.getLocalProfile()\n if (!user) {\n return\n }\n return {\n ...user,\n gender: user.gender ?? \"\",\n email: user.email || \"\",\n isOnline: true,\n } as RoomPeerInfo\n }\n\n public async createProfile(payload: {\n nickName: string\n learningTargetLang?: LangShort\n }): Promise<Profile> {\n const account = await this.getAccountState()\n if (!account) {\n throw new Error(\"Account info is missing for profile creation\")\n }\n const profile = await ProfileService.createProfile({\n app: resolveAppId(account.app),\n account: account.accountId,\n nickName: payload.nickName,\n learningTargetLang: payload.learningTargetLang,\n })\n await this.prepareProfiles(account)\n if (!(await this.getSelectedProfile())) {\n this.setSelectedProfile(profile)\n }\n return profile\n }\n\n private async prepareProfiles(account: AccountState): Promise<Profile[]> {\n const profiles = await ProfileService.getProfiles(account)\n const storedId = getSelectedProfileId()\n if (storedId && profiles.some((profile) => profile.id === storedId)) {\n return profiles\n }\n const nextSelected = profiles[0]\n if (nextSelected) {\n this.setSelectedProfile(nextSelected)\n } else {\n this.clearSelectedProfile()\n }\n return profiles\n }\n}\n","import { Profile } from \"@pmate/meta\"\nimport { atom } from \"jotai\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\n\nexport const switchProfileAtom = atom(null, (_get, _, profile: Profile) => {\n const app = resolveAppId(profile.app)\n AccountManagerV2.get(app).setSelectedProfile(profile)\n})\n","import { atom } from \"jotai\"\nimport type { ProfileDraft } from \"../types/profile\"\n\n/**\n * Temporary profile info during registration flow\n */\nexport const profileDraftAtom = atom<ProfileDraft>({})\n","import { atom } from \"jotai\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { profileDraftAtom } from \"./profileDraftAtom\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\n\ntype CreateProfileParams = {\n nickName: string\n}\n\nexport const createProfileAtom = atom(\n null,\n async (get, _set, { nickName }: CreateProfileParams) => {\n const draft = get(profileDraftAtom)\n const bootstrapManager = AccountManagerV2.get(resolveAppId())\n const account = await bootstrapManager.getAccountState()\n\n if (!account) {\n throw new Error(\"Account info is missing for profile creation\")\n }\n\n const manager = AccountManagerV2.get(resolveAppId(account.app))\n return manager.createProfile({\n nickName,\n learningTargetLang: draft.learningTargetLang,\n })\n }\n)\n","import { INTERNAL_buildStoreRev2 } from 'jotai/vanilla/internals';\n\nlet keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString() {\n return (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && this.debugLabel ? key + \":\" + this.debugLabel : key;\n }\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = defaultRead;\n config.write = defaultWrite;\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\nfunction defaultRead(get) {\n return get(this);\n}\nfunction defaultWrite(get, set, arg) {\n return set(\n this,\n typeof arg === \"function\" ? arg(get(this)) : arg\n );\n}\n\nlet overiddenCreateStore;\nfunction INTERNAL_overrideCreateStore(fn) {\n overiddenCreateStore = fn(overiddenCreateStore);\n}\nfunction createStore() {\n if (overiddenCreateStore) {\n return overiddenCreateStore();\n }\n return INTERNAL_buildStoreRev2();\n}\nlet defaultStore;\nfunction getDefaultStore() {\n if (!defaultStore) {\n defaultStore = createStore();\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n globalThis.__JOTAI_DEFAULT_STORE__ || (globalThis.__JOTAI_DEFAULT_STORE__ = defaultStore);\n if (globalThis.__JOTAI_DEFAULT_STORE__ !== defaultStore) {\n console.warn(\n \"Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044\"\n );\n }\n }\n }\n return defaultStore;\n}\n\nexport { INTERNAL_overrideCreateStore, atom, createStore, getDefaultStore };\n","import { atom } from 'jotai/vanilla';\n\nconst RESET = /* @__PURE__ */ Symbol(\n (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" ? \"RESET\" : \"\"\n);\n\nfunction atomWithReset(initialValue) {\n const anAtom = atom(\n initialValue,\n (get, set, update) => {\n const nextValue = typeof update === \"function\" ? update(get(anAtom)) : update;\n set(anAtom, nextValue === RESET ? initialValue : nextValue);\n }\n );\n return anAtom;\n}\n\nfunction atomWithReducer(initialValue, reducer) {\n return atom(initialValue, function(get, set, action) {\n set(this, reducer(get(this), action));\n });\n}\n\nlet didWarnDeprecation = false;\nfunction atomFamily(initializeAtom, areEqual) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !didWarnDeprecation) {\n console.warn(\n \"[DEPRECATED] atomFamily is deprecated and will be removed in v3. Please use the `jotai-family` package instead: https://github.com/jotaijs/jotai-family\"\n );\n didWarnDeprecation = true;\n }\n let shouldRemove = null;\n const atoms = /* @__PURE__ */ new Map();\n const listeners = /* @__PURE__ */ new Set();\n const createAtom = (param) => {\n let item;\n if (areEqual === void 0) {\n item = atoms.get(param);\n } else {\n for (const [key, value] of atoms) {\n if (areEqual(key, param)) {\n item = value;\n break;\n }\n }\n }\n if (item !== void 0) {\n if (shouldRemove == null ? void 0 : shouldRemove(item[1], param)) {\n createAtom.remove(param);\n } else {\n return item[0];\n }\n }\n const newAtom = initializeAtom(param);\n atoms.set(param, [newAtom, Date.now()]);\n notifyListeners(\"CREATE\", param, newAtom);\n return newAtom;\n };\n const notifyListeners = (type, param, atom) => {\n for (const listener of listeners) {\n listener({ type, param, atom });\n }\n };\n createAtom.unstable_listen = (callback) => {\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n };\n };\n createAtom.getParams = () => atoms.keys();\n createAtom.remove = (param) => {\n if (areEqual === void 0) {\n if (!atoms.has(param)) return;\n const [atom] = atoms.get(param);\n atoms.delete(param);\n notifyListeners(\"REMOVE\", param, atom);\n } else {\n for (const [key, [atom]] of atoms) {\n if (areEqual(key, param)) {\n atoms.delete(key);\n notifyListeners(\"REMOVE\", key, atom);\n break;\n }\n }\n }\n };\n createAtom.setShouldRemove = (fn) => {\n shouldRemove = fn;\n if (!shouldRemove) return;\n for (const [key, [atom, createdAt]] of atoms) {\n if (shouldRemove(createdAt, key)) {\n atoms.delete(key);\n notifyListeners(\"REMOVE\", key, atom);\n }\n }\n };\n return createAtom;\n}\n\nconst getCached$2 = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1$3 = /* @__PURE__ */ new WeakMap();\nconst memo3 = (create, dep1, dep2, dep3) => {\n const cache2 = getCached$2(() => /* @__PURE__ */ new WeakMap(), cache1$3, dep1);\n const cache3 = getCached$2(() => /* @__PURE__ */ new WeakMap(), cache2, dep2);\n return getCached$2(create, cache3, dep3);\n};\nfunction selectAtom(anAtom, selector, equalityFn = Object.is) {\n return memo3(\n () => {\n const EMPTY = /* @__PURE__ */ Symbol();\n const selectValue = ([value, prevSlice]) => {\n if (prevSlice === EMPTY) {\n return selector(value);\n }\n const slice = selector(value, prevSlice);\n return equalityFn(prevSlice, slice) ? prevSlice : slice;\n };\n const derivedAtom = atom((get) => {\n const prev = get(derivedAtom);\n const value = get(anAtom);\n return selectValue([value, prev]);\n });\n derivedAtom.init = EMPTY;\n return derivedAtom;\n },\n anAtom,\n selector,\n equalityFn\n );\n}\n\nconst frozenAtoms = /* @__PURE__ */ new WeakSet();\nconst deepFreeze = (value) => {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n Object.freeze(value);\n const propNames = Object.getOwnPropertyNames(value);\n for (const name of propNames) {\n deepFreeze(value[name]);\n }\n return value;\n};\nfunction freezeAtom(anAtom) {\n if (frozenAtoms.has(anAtom)) {\n return anAtom;\n }\n frozenAtoms.add(anAtom);\n const origRead = anAtom.read;\n anAtom.read = function(get, options) {\n return deepFreeze(origRead.call(this, get, options));\n };\n if (\"write\" in anAtom) {\n const origWrite = anAtom.write;\n anAtom.write = function(get, set, ...args) {\n return origWrite.call(\n this,\n get,\n (...setArgs) => {\n if (setArgs[0] === anAtom) {\n setArgs[1] = deepFreeze(setArgs[1]);\n }\n return set(...setArgs);\n },\n ...args\n );\n };\n }\n return anAtom;\n}\nfunction freezeAtomCreator(createAtom) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] freezeAtomCreator is deprecated, define it on users end\"\n );\n }\n return ((...args) => freezeAtom(createAtom(...args)));\n}\n\nconst getCached$1 = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1$2 = /* @__PURE__ */ new WeakMap();\nconst memo2$1 = (create, dep1, dep2) => {\n const cache2 = getCached$1(() => /* @__PURE__ */ new WeakMap(), cache1$2, dep1);\n return getCached$1(create, cache2, dep2);\n};\nconst cacheKeyForEmptyKeyExtractor = {};\nconst isWritable = (atom2) => !!atom2.write;\nconst isFunction = (x) => typeof x === \"function\";\nfunction splitAtom(arrAtom, keyExtractor) {\n return memo2$1(\n () => {\n const mappingCache = /* @__PURE__ */ new WeakMap();\n const getMapping = (arr, prev) => {\n let mapping = mappingCache.get(arr);\n if (mapping) {\n return mapping;\n }\n const prevMapping = prev && mappingCache.get(prev);\n const atomList = [];\n const keyList = [];\n arr.forEach((item, index) => {\n const key = keyExtractor ? keyExtractor(item) : index;\n keyList[index] = key;\n const cachedAtom = prevMapping && prevMapping.atomList[prevMapping.keyList.indexOf(key)];\n if (cachedAtom) {\n atomList[index] = cachedAtom;\n return;\n }\n const read = (get) => {\n const prev2 = get(mappingAtom);\n const currArr = get(arrAtom);\n const mapping2 = getMapping(currArr, prev2 == null ? void 0 : prev2.arr);\n const index2 = mapping2.keyList.indexOf(key);\n if (index2 < 0 || index2 >= currArr.length) {\n const prevItem = arr[getMapping(arr).keyList.indexOf(key)];\n if (prevItem) {\n return prevItem;\n }\n throw new Error(\"splitAtom: index out of bounds for read\");\n }\n return currArr[index2];\n };\n const write = (get, set, update) => {\n const prev2 = get(mappingAtom);\n const arr2 = get(arrAtom);\n const mapping2 = getMapping(arr2, prev2 == null ? void 0 : prev2.arr);\n const index2 = mapping2.keyList.indexOf(key);\n if (index2 < 0 || index2 >= arr2.length) {\n throw new Error(\"splitAtom: index out of bounds for write\");\n }\n const nextItem = isFunction(update) ? update(arr2[index2]) : update;\n if (!Object.is(arr2[index2], nextItem)) {\n set(arrAtom, [\n ...arr2.slice(0, index2),\n nextItem,\n ...arr2.slice(index2 + 1)\n ]);\n }\n };\n atomList[index] = isWritable(arrAtom) ? atom(read, write) : atom(read);\n });\n if (prevMapping && prevMapping.keyList.length === keyList.length && prevMapping.keyList.every((x, i) => x === keyList[i])) {\n mapping = prevMapping;\n } else {\n mapping = { arr, atomList, keyList };\n }\n mappingCache.set(arr, mapping);\n return mapping;\n };\n const mappingAtom = atom((get) => {\n const prev = get(mappingAtom);\n const arr = get(arrAtom);\n const mapping = getMapping(arr, prev == null ? void 0 : prev.arr);\n return mapping;\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n mappingAtom.debugPrivate = true;\n }\n mappingAtom.init = void 0;\n const splittedAtom = isWritable(arrAtom) ? atom(\n (get) => get(mappingAtom).atomList,\n (get, set, action) => {\n switch (action.type) {\n case \"remove\": {\n const index = get(splittedAtom).indexOf(action.atom);\n if (index >= 0) {\n const arr = get(arrAtom);\n set(arrAtom, [\n ...arr.slice(0, index),\n ...arr.slice(index + 1)\n ]);\n }\n break;\n }\n case \"insert\": {\n const index = action.before ? get(splittedAtom).indexOf(action.before) : get(splittedAtom).length;\n if (index >= 0) {\n const arr = get(arrAtom);\n set(arrAtom, [\n ...arr.slice(0, index),\n action.value,\n ...arr.slice(index)\n ]);\n }\n break;\n }\n case \"move\": {\n const index1 = get(splittedAtom).indexOf(action.atom);\n const index2 = action.before ? get(splittedAtom).indexOf(action.before) : get(splittedAtom).length;\n if (index1 >= 0 && index2 >= 0) {\n const arr = get(arrAtom);\n if (index1 < index2) {\n set(arrAtom, [\n ...arr.slice(0, index1),\n ...arr.slice(index1 + 1, index2),\n arr[index1],\n ...arr.slice(index2)\n ]);\n } else {\n set(arrAtom, [\n ...arr.slice(0, index2),\n arr[index1],\n ...arr.slice(index2, index1),\n ...arr.slice(index1 + 1)\n ]);\n }\n }\n break;\n }\n }\n }\n ) : atom((get) => get(mappingAtom).atomList);\n return splittedAtom;\n },\n arrAtom,\n keyExtractor || cacheKeyForEmptyKeyExtractor\n );\n}\n\nfunction atomWithDefault(getDefault) {\n const EMPTY = /* @__PURE__ */ Symbol();\n const overwrittenAtom = atom(EMPTY);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n overwrittenAtom.debugPrivate = true;\n }\n const anAtom = atom(\n (get, options) => {\n const overwritten = get(overwrittenAtom);\n if (overwritten !== EMPTY) {\n return overwritten;\n }\n return getDefault(get, options);\n },\n (get, set, update) => {\n const newValue = typeof update === \"function\" ? update(get(anAtom)) : update;\n set(overwrittenAtom, newValue === RESET ? EMPTY : newValue);\n }\n );\n return anAtom;\n}\n\nconst isPromiseLike$3 = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nfunction withStorageValidator(validator) {\n return (unknownStorage) => {\n const storage = {\n ...unknownStorage,\n getItem: (key, initialValue) => {\n const validate = (value2) => {\n if (!validator(value2)) {\n return initialValue;\n }\n return value2;\n };\n const value = unknownStorage.getItem(key, initialValue);\n if (isPromiseLike$3(value)) {\n return value.then(validate);\n }\n return validate(value);\n }\n };\n return storage;\n };\n}\nfunction createJSONStorage(getStringStorage = () => {\n try {\n return window.localStorage;\n } catch (e) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n if (typeof window !== \"undefined\") {\n console.warn(e);\n }\n }\n return void 0;\n }\n}, options) {\n var _a;\n let lastStr;\n let lastValue;\n const storage = {\n getItem: (key, initialValue) => {\n var _a2, _b;\n const parse = (str2) => {\n str2 = str2 || \"\";\n if (lastStr !== str2) {\n try {\n lastValue = JSON.parse(str2, options == null ? void 0 : options.reviver);\n } catch (e) {\n return initialValue;\n }\n lastStr = str2;\n }\n return lastValue;\n };\n const str = (_b = (_a2 = getStringStorage()) == null ? void 0 : _a2.getItem(key)) != null ? _b : null;\n if (isPromiseLike$3(str)) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (key, newValue) => {\n var _a2;\n return (_a2 = getStringStorage()) == null ? void 0 : _a2.setItem(\n key,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n );\n },\n removeItem: (key) => {\n var _a2;\n return (_a2 = getStringStorage()) == null ? void 0 : _a2.removeItem(key);\n }\n };\n const createHandleSubscribe = (subscriber2) => (key, callback, initialValue) => subscriber2(key, (v) => {\n let newValue;\n try {\n newValue = JSON.parse(v || \"\");\n } catch (e) {\n newValue = initialValue;\n }\n callback(newValue);\n });\n let subscriber;\n try {\n subscriber = (_a = getStringStorage()) == null ? void 0 : _a.subscribe;\n } catch (e) {\n }\n if (!subscriber && typeof window !== \"undefined\" && typeof window.addEventListener === \"function\" && window.Storage) {\n subscriber = (key, callback) => {\n if (!(getStringStorage() instanceof window.Storage)) {\n return () => {\n };\n }\n const storageEventCallback = (e) => {\n if (e.storageArea === getStringStorage() && e.key === key) {\n callback(e.newValue);\n }\n };\n window.addEventListener(\"storage\", storageEventCallback);\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n };\n }\n if (subscriber) {\n storage.subscribe = createHandleSubscribe(subscriber);\n }\n return storage;\n}\nconst defaultStorage = createJSONStorage();\nfunction atomWithStorage(key, initialValue, storage = defaultStorage, options) {\n const getOnInit = options == null ? void 0 : options.getOnInit;\n const baseAtom = atom(\n getOnInit ? storage.getItem(key, initialValue) : initialValue\n );\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n baseAtom.debugPrivate = true;\n }\n baseAtom.onMount = (setAtom) => {\n setAtom(storage.getItem(key, initialValue));\n let unsub;\n if (storage.subscribe) {\n unsub = storage.subscribe(key, setAtom, initialValue);\n }\n return unsub;\n };\n const anAtom = atom(\n (get) => get(baseAtom),\n (get, set, update) => {\n const nextValue = typeof update === \"function\" ? update(get(baseAtom)) : update;\n if (nextValue === RESET) {\n set(baseAtom, initialValue);\n return storage.removeItem(key);\n }\n if (isPromiseLike$3(nextValue)) {\n return nextValue.then((resolvedValue) => {\n set(baseAtom, resolvedValue);\n return storage.setItem(key, resolvedValue);\n });\n }\n set(baseAtom, nextValue);\n return storage.setItem(key, nextValue);\n }\n );\n return anAtom;\n}\n\nconst isPromiseLike$2 = (x) => typeof (x == null ? void 0 : x.then) === \"function\";\nfunction atomWithObservable(getObservable, options) {\n const returnResultData = (result) => {\n if (\"e\" in result) {\n throw result.e;\n }\n return result.d;\n };\n const observableResultAtom = atom((get) => {\n var _a;\n let observable = getObservable(get);\n const itself = (_a = observable[Symbol.observable]) == null ? void 0 : _a.call(observable);\n if (itself) {\n observable = itself;\n }\n let resolve;\n const makePending = () => new Promise((r) => {\n resolve = r;\n });\n const initialResult = options && \"initialValue\" in options ? {\n d: typeof options.initialValue === \"function\" ? options.initialValue() : options.initialValue\n } : makePending();\n let setResult;\n let lastResult;\n const listener = (result) => {\n lastResult = result;\n resolve == null ? void 0 : resolve(result);\n setResult == null ? void 0 : setResult(result);\n };\n let subscription;\n let timer;\n const isNotMounted = () => !setResult;\n const unsubscribe = () => {\n if (subscription) {\n subscription.unsubscribe();\n subscription = void 0;\n }\n };\n const start = () => {\n if (subscription) {\n clearTimeout(timer);\n subscription.unsubscribe();\n }\n subscription = observable.subscribe({\n next: (d) => listener({ d }),\n error: (e) => listener({ e }),\n complete: () => {\n }\n });\n if (isNotMounted() && (options == null ? void 0 : options.unstable_timeout)) {\n timer = setTimeout(unsubscribe, options.unstable_timeout);\n }\n };\n start();\n const resultAtom = atom(lastResult || initialResult);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n resultAtom.debugPrivate = true;\n }\n resultAtom.onMount = (update) => {\n setResult = update;\n if (lastResult) {\n update(lastResult);\n }\n if (subscription) {\n clearTimeout(timer);\n } else {\n start();\n }\n return () => {\n setResult = void 0;\n if (options == null ? void 0 : options.unstable_timeout) {\n timer = setTimeout(unsubscribe, options.unstable_timeout);\n } else {\n unsubscribe();\n }\n };\n };\n return [resultAtom, observable, makePending, start, isNotMounted];\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n observableResultAtom.debugPrivate = true;\n }\n const observableAtom = atom(\n (get) => {\n const [resultAtom] = get(observableResultAtom);\n const result = get(resultAtom);\n if (isPromiseLike$2(result)) {\n return result.then(returnResultData);\n }\n return returnResultData(result);\n },\n (get, set, data) => {\n const [resultAtom, observable, makePending, start, isNotMounted] = get(observableResultAtom);\n if (\"next\" in observable) {\n if (isNotMounted()) {\n set(resultAtom, makePending());\n start();\n }\n observable.next(data);\n } else {\n throw new Error(\"observable is not subject\");\n }\n }\n );\n return observableAtom;\n}\n\nconst cache1$1 = /* @__PURE__ */ new WeakMap();\nconst memo1 = (create, dep1) => (cache1$1.has(dep1) ? cache1$1 : cache1$1.set(dep1, create())).get(dep1);\nconst isPromiseLike$1 = (p) => typeof (p == null ? void 0 : p.then) === \"function\";\nconst LOADING = { state: \"loading\" };\nfunction loadable(anAtom) {\n return memo1(() => {\n const loadableCache = /* @__PURE__ */ new WeakMap();\n const refreshAtom = atom([() => {\n }, 0]);\n refreshAtom.INTERNAL_onInit = (store) => {\n store.set(refreshAtom, ([, c]) => [\n () => store.set(refreshAtom, ([f, c2]) => [f, c2 + 1]),\n c\n ]);\n };\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n const derivedAtom = atom((get) => {\n const [triggerRefresh] = get(refreshAtom);\n let value;\n try {\n value = get(anAtom);\n } catch (error) {\n return { state: \"hasError\", error };\n }\n if (!isPromiseLike$1(value)) {\n return { state: \"hasData\", data: value };\n }\n const promise = value;\n const cached1 = loadableCache.get(promise);\n if (cached1) {\n return cached1;\n }\n promise.then(\n (data) => {\n loadableCache.set(promise, { state: \"hasData\", data });\n triggerRefresh();\n },\n (error) => {\n loadableCache.set(promise, { state: \"hasError\", error });\n triggerRefresh();\n }\n );\n const cached2 = loadableCache.get(promise);\n if (cached2) {\n return cached2;\n }\n loadableCache.set(promise, LOADING);\n return LOADING;\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n derivedAtom.debugPrivate = true;\n }\n return atom((get) => get(derivedAtom));\n }, anAtom);\n}\n\nconst getCached = (c, m, k) => (m.has(k) ? m : m.set(k, c())).get(k);\nconst cache1 = /* @__PURE__ */ new WeakMap();\nconst memo2 = (create, dep1, dep2) => {\n const cache2 = getCached(() => /* @__PURE__ */ new WeakMap(), cache1, dep1);\n return getCached(create, cache2, dep2);\n};\nconst isPromiseLike = (p) => typeof (p == null ? void 0 : p.then) === \"function\";\nconst defaultFallback = () => void 0;\nfunction unwrap(anAtom, fallback = defaultFallback) {\n return memo2(\n () => {\n const promiseErrorCache = /* @__PURE__ */ new WeakMap();\n const promiseResultCache = /* @__PURE__ */ new WeakMap();\n const refreshAtom = atom([() => {\n }, 0]);\n refreshAtom.INTERNAL_onInit = (store) => {\n store.set(refreshAtom, ([, c]) => [\n () => store.set(refreshAtom, ([f, c2]) => [f, c2 + 1]),\n c\n ]);\n };\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n const promiseAndValueAtom = atom((get) => {\n const [triggerRefresh] = get(refreshAtom);\n let prev;\n try {\n prev = get(promiseAndValueAtom);\n } catch (e) {\n }\n const promise = get(anAtom);\n if (!isPromiseLike(promise)) {\n return { v: promise };\n }\n if (promise !== (prev == null ? void 0 : prev.p)) {\n promise.then(\n (v) => {\n promiseResultCache.set(promise, v);\n triggerRefresh();\n },\n (e) => {\n promiseErrorCache.set(promise, e);\n triggerRefresh();\n }\n );\n }\n if (promiseErrorCache.has(promise)) {\n throw promiseErrorCache.get(promise);\n }\n if (promiseResultCache.has(promise)) {\n return {\n p: promise,\n v: promiseResultCache.get(promise)\n };\n }\n if (prev && \"v\" in prev) {\n return { p: promise, f: fallback(prev.v), v: prev.v };\n }\n return { p: promise, f: fallback() };\n });\n promiseAndValueAtom.init = void 0;\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n promiseAndValueAtom.debugPrivate = true;\n }\n return atom(\n (get) => {\n const state = get(promiseAndValueAtom);\n if (\"f\" in state) {\n return state.f;\n }\n return state.v;\n },\n (_get, set, ...args) => set(anAtom, ...args)\n );\n },\n anAtom,\n fallback\n );\n}\n\nfunction atomWithRefresh(read, write) {\n const refreshAtom = atom(0);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n refreshAtom.debugPrivate = true;\n }\n return atom(\n (get, options) => {\n get(refreshAtom);\n return read(get, options);\n },\n (get, set, ...args) => {\n if (args.length === 0) {\n set(refreshAtom, (c) => c + 1);\n } else if (write) {\n return write(get, set, ...args);\n } else if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n throw new Error(\"refresh must be called without arguments\");\n }\n }\n );\n}\n\nfunction atomWithLazy(makeInitial) {\n const a = atom(void 0);\n delete a.init;\n Object.defineProperty(a, \"init\", {\n get() {\n return makeInitial();\n }\n });\n return a;\n}\n\nexport { RESET, atomFamily, atomWithDefault, atomWithLazy, atomWithObservable, atomWithReducer, atomWithRefresh, atomWithReset, atomWithStorage, createJSONStorage, freezeAtom, freezeAtomCreator, loadable, selectAtom, splitAtom, withStorageValidator as unstable_withStorageValidator, unwrap };\n","import { Profile } from \"@pmate/meta\"\nimport { atomWithRefresh } from \"jotai/utils\"\nimport { atomFamily, type AtomFamily } from \"jotai-family\"\nimport type { WritableAtom } from \"jotai\"\nimport { EntityService } from \"../api/EntityService\"\n\ntype ProfileByIdAtomFamily = AtomFamily<\n string,\n WritableAtom<Promise<Profile | null>, [], void>\n>\n\nexport const profileByIdAtom: ProfileByIdAtomFamily = atomFamily(\n (profileId: string) =>\n atomWithRefresh(async () => {\n if (!profileId) {\n return null\n }\n try {\n return await EntityService.entity<Profile>(profileId)\n } catch {\n return null\n }\n })\n)\n","import { Profile } from \"@pmate/meta\"\nimport { atomWithLoadable } from \"@pmate/uikit\"\nimport { ProfileService } from \"../api/ProfileService\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { accountAtom } from \"./accountAtom\"\n\nexport const profilesAtom = atomWithLoadable<Profile[]>(async (get) => {\n get(accountAtom)\n const manager = AccountManagerV2.get(resolveAppId())\n const acc = await manager.getAccountState()\n if (!acc) {\n return [] as Profile[]\n }\n try {\n return await ProfileService.getProfiles(acc)\n } catch {\n return [] as Profile[]\n }\n})\n","import { atom } from \"jotai\"\nimport { ProfileService } from \"../api/ProfileService\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\nimport { profileAtom } from \"./accountProfileAtom\"\nimport { profileByIdAtom } from \"./profileAtom\"\n\nexport const updateProfileAtom = atom(\n null,\n async (get, _set, profileId: string, updates: Record<string, any>) => {\n const selected = get(profileAtom)\n const target =\n selected && selected.id === profileId\n ? selected\n : await get(profileByIdAtom(profileId))\n\n if (!target) {\n return\n }\n\n await ProfileService.updateProfile({\n profileId: target.id,\n ...updates,\n })\n\n const app = resolveAppId(target.app)\n const manager = AccountManagerV2.get(app)\n const updated = { ...target, ...updates }\n if (selected && selected.id === profileId) {\n manager.setSelectedProfile(updated)\n }\n\n await manager.getProfiles()\n }\n)\n","import { atom } from \"jotai\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\n\nexport const loginAtom = atom(null, async () => {\n const manager = AccountManagerV2.get(resolveAppId())\n return manager.login()\n})\n","import { atom } from \"jotai\"\nimport { AccountService } from \"../api/AccountService\"\n\nexport const sessionCheckAtom = atom(null, async () => {\n try {\n return await AccountService.session()\n } catch {\n return null\n }\n})\n","import { atom } from \"jotai\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\n\nexport const userLogoutAtom = atom(null, async () => {\n const manager = AccountManagerV2.get(resolveAppId())\n await manager.logout()\n})\n","import { normalizeLang } from \"@pmate/lang\"\nimport { atom } from \"jotai\"\nimport { profileAtom } from \"./accountProfileAtom\"\n\nexport const motherTongueAtom = atom((get) => {\n const profile = get(profileAtom)\n return normalizeLang(profile?.motherTongue, \"zh-CN\")\n})\n","import { normalizeLang } from \"@pmate/lang\"\nimport { atom } from \"jotai\"\nimport { profileAtom } from \"./accountProfileAtom\"\n\nexport const learningLangAtom = atom((get) => {\n const profile = get(profileAtom)\n return normalizeLang(profile?.learningTargetLang)\n})\n","import { atom } from \"jotai\"\nimport { atomFamily, type AtomFamily } from \"jotai-family\"\nimport type { WritableAtom } from \"jotai\"\n\nexport enum LSKEYS {\n USER_SETTINGS = \"user-settings\",\n}\n\nconst cacheAtom = atomFamily((_: LSKEYS) => atom<any>(undefined))\n\ntype LocalStorageJsonAtomFamily = AtomFamily<\n LSKEYS,\n WritableAtom<any, [any], void>\n>\n\nexport const localStorageJsonAtom: LocalStorageJsonAtomFamily = atomFamily(\n (key: LSKEYS) =>\n atom(\n (get) => {\n const cache = get(cacheAtom(key))\n if (cache) {\n return cache\n }\n try {\n const item = localStorage.getItem(key)\n if (!item) {\n return null\n }\n return JSON.parse(item)\n } catch {\n return null\n }\n },\n (_, set, value: any) => {\n localStorage.setItem(key, JSON.stringify(value))\n set(cacheAtom(key), value)\n }\n )\n)\n","import { VoiceList } from \"@pmate/meta\"\nimport { Difficulty, UserSettings } from \"@pmate/meta\"\nimport { WritableAtom, atom } from \"jotai\"\nimport { LSKEYS, localStorageJsonAtom } from \"./localStorageAtom\"\n\nconst defaultSettings: UserSettings = {\n intensive: false,\n bilingual: true,\n fontColor: \"#000000\",\n backgroundColor: \"white\",\n books: [],\n advancedMode: false,\n autoread: true,\n playSpeed: 1,\n scrollDirection: \"vertical\",\n companion: \"\",\n difficulty: Difficulty.Medium,\n \"chatVoice@v2\": VoiceList.KOKORO_af_alloy,\n uiLang: \"zh-CN\",\n motherTongue: \"zh-CN\",\n}\n\nconst settingsCache = new Map<keyof UserSettings, WritableAtom<any, any, any>>()\n\nexport const userSettingsAtom = <T extends keyof UserSettings>(key: T) => {\n if (settingsCache.has(key)) {\n return settingsCache.get(key)! as WritableAtom<\n UserSettings[T],\n [value: UserSettings[T]],\n void\n >\n }\n\n const settingAtom = atom(\n (get) => {\n const stored = get(localStorageJsonAtom(LSKEYS.USER_SETTINGS)) as\n | UserSettings\n | null\n if (stored && key in stored) {\n return stored[key] as UserSettings[T]\n }\n return defaultSettings[key]\n },\n (get, set, value: UserSettings[T]) => {\n const stored = get(localStorageJsonAtom(LSKEYS.USER_SETTINGS)) as\n | UserSettings\n | null\n const next = {\n ...(stored ?? defaultSettings),\n [key]: value,\n } as UserSettings\n set(localStorageJsonAtom(LSKEYS.USER_SETTINGS), next)\n }\n )\n\n settingsCache.set(key, settingAtom)\n return settingAtom as WritableAtom<UserSettings[T], [value: UserSettings[T]], void>\n}\n","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","import { useState } from \"react\"\nimport { useEffectOnce } from \"react-use\"\nimport type { AccountSnapshot, AuthBehaviors } from \"../types/account.types\"\nimport { AccountLifecycleState } from \"../types/account.types\"\nimport { AccountManagerV2 } from \"../utils/AccountManagerV2\"\n\nconst checkAuth = async ({\n app,\n behaviors,\n}: {\n app: string\n behaviors: AuthBehaviors\n}): Promise<AccountSnapshot> => {\n const manager = AccountManagerV2.get(app)\n if (behaviors.requiresAuth === false) {\n return manager.getSnapshot()\n }\n\n try {\n const account = await manager.loginUrlSessionOverride()\n if (account) {\n const profiles = await manager.getProfiles()\n if (profiles.length > 0) {\n manager.setSelectedProfile(profiles[0].id)\n }\n }\n return manager.getSnapshot()\n } catch (error) {\n console.error(error)\n return manager.getSnapshot()\n }\n}\n\nexport const useAuthSnapshot = ({\n app,\n behaviors,\n}: {\n app: string\n behaviors: AuthBehaviors\n}) => {\n const [loading, setLoading] = useState(true)\n const [snapshot, setSnapshot] = useState<AccountSnapshot>({\n state: AccountLifecycleState.Idle,\n profiles: [],\n profile: null,\n accountId: null,\n account: null,\n error: null,\n })\n\n useEffectOnce(() => {\n const loadSnapshot = async () => {\n setLoading(true)\n const snap = await checkAuth({ app, behaviors })\n setSnapshot(snap)\n setLoading(false)\n }\n loadSnapshot()\n })\n return { loading, snapshot }\n}\n","const AUTH_APP_BASE = \"https://auth.pmate.chat\"\n\nexport class Redirect {\n static toLogin(app: string, redirect?: string) {\n if (typeof window === \"undefined\") {\n return\n }\n const url = new URL(AUTH_APP_BASE)\n url.searchParams.set(\"redirect\", redirect ?? window.location.href)\n url.searchParams.set(\"app\", app)\n window.location.href = url.toString()\n }\n\n static toCreateProfile(app: string, redirect?: string) {\n if (typeof window === \"undefined\") {\n return\n }\n const url = new URL(\"/create-profile\", AUTH_APP_BASE)\n url.searchParams.set(\"redirect\", redirect ?? window.location.href)\n url.searchParams.set(\"app\", app)\n window.location.href = url.toString()\n }\n}\n","export class NotAuthenticatedError extends Error {}\n","import { Button, Drawer } from \"@pmate/uikit\"\nimport { useSetAtom } from \"jotai\"\nimport {\n Component,\n PropsWithChildren,\n useCallback,\n useEffect,\n useState,\n} from \"react\"\nimport { matchPath, useLocation, useNavigate } from \"react-router-dom\"\nimport { useAuthSnapshot } from \"../hooks/useAuthSnapshot\"\nimport { AccountLifecycleState } from \"../types/account.types\"\nimport { userLogoutAtom } from \"../atoms/userLogoutAtom\"\nimport { Redirect } from \"../utils/Redirect\"\nimport { NotAuthenticatedError } from \"../utils/errors\"\n\nexport type AuthRoute =\n | string\n | {\n path: string\n behavior?: \"redirect\" | \"prompt\"\n }\n\nconst getAuthBehaviors = (\n authRoutes: AuthRoute[] | undefined,\n pathname: string,\n) => {\n const matchedAuthRoute = authRoutes?.find((route) => {\n const path = typeof route === \"string\" ? route : route.path\n return matchPath({ path, end: true }, pathname)\n })\n const authBehavior =\n matchedAuthRoute && typeof matchedAuthRoute !== \"string\"\n ? (matchedAuthRoute.behavior ?? \"prompt\")\n : \"prompt\"\n const requiresAuth = Boolean(matchedAuthRoute)\n return {\n authBehavior,\n requiresAuth,\n }\n}\n\ntype AuthProviderV2Props = PropsWithChildren<{\n app: string\n authRoutes?: AuthRoute[]\n onLoginSuccess?: () => void | Promise<void>\n rtcProvider?: React.ComponentType<{ children: React.ReactNode }>\n}>\n\nexport const AuthProviderV2 = ({\n app,\n authRoutes,\n rtcProvider: RtcProvider,\n children,\n}: AuthProviderV2Props) => {\n const location = useLocation()\n const [isLoginPromptOpen, setIsLoginPromptOpen] = useState(false)\n const [isLoginErrorDismissed, setIsLoginErrorDismissed] = useState(false)\n const { authBehavior, requiresAuth } = getAuthBehaviors(\n authRoutes,\n location.pathname,\n )\n const { loading, snapshot } = useAuthSnapshot({\n app,\n behaviors: {\n authBehavior,\n requiresAuth,\n },\n })\n const loginError = snapshot.error\n const hasAccount =\n snapshot.state === AccountLifecycleState.Idle\n ? null\n : Boolean(snapshot.account)\n\n useEffect(() => {\n if (!requiresAuth || loading) {\n return\n }\n if (\n snapshot.account &&\n snapshot.profiles.length === 0 &&\n location.pathname !== \"/create-profile\"\n ) {\n Redirect.toCreateProfile(app)\n return\n }\n if (!snapshot.account && authBehavior === \"redirect\") {\n Redirect.toLogin(app)\n }\n }, [\n app,\n authBehavior,\n loading,\n location.pathname,\n requiresAuth,\n snapshot.account,\n snapshot.profiles.length,\n ])\n\n useEffect(() => {\n if (loading) {\n return\n }\n setIsLoginPromptOpen(\n requiresAuth && !snapshot.account && authBehavior === \"prompt\",\n )\n }, [authBehavior, loading, requiresAuth, snapshot.account])\n useEffect(() => {\n if (!loginError) {\n setIsLoginErrorDismissed(false)\n }\n }, [loginError])\n\n const handleBack = () => {\n setIsLoginPromptOpen(false)\n if (window.history.length > 1) {\n window.history.back()\n return\n }\n // window.location.href = \"/\"\n }\n\n if (loading && requiresAuth) {\n return null\n }\n if (loginError && requiresAuth && !isLoginErrorDismissed) {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-slate-50 p-6\">\n <div className=\"w-full max-w-md rounded-xl border border-rose-200 bg-white p-6 shadow-sm\">\n <div className=\"text-sm font-semibold text-rose-600\">\n Login failed\n </div>\n <p className=\"mt-2 text-sm text-slate-600\">\n We could not restore your session. Please try again.\n </p>\n <div className=\"mt-3 text-xs text-rose-500\">{loginError.message}</div>\n <div className=\"mt-4 flex flex-wrap gap-3\">\n <button\n className=\"rounded-md bg-rose-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-rose-700\"\n type=\"button\"\n onClick={() => window.location.reload()}\n >\n Reload\n </button>\n </div>\n </div>\n </div>\n )\n }\n if (requiresAuth && hasAccount === null) {\n return null\n }\n if (requiresAuth && hasAccount === false && authBehavior === \"prompt\") {\n return (\n <Drawer\n open={isLoginPromptOpen}\n onClose={handleBack}\n anchor=\"bottom\"\n overlayClassName=\"bg-black/40\"\n >\n <div className=\"rounded-t-2xl px-6 pb-6 pt-4\">\n <div className=\"mx-auto mb-3 h-1.5 w-12 rounded-full bg-slate-200\" />\n <div className=\"text-lg font-semibold text-slate-900\">\n You need login to continue ?\n </div>\n <div className=\"mt-5 flex items-center justify-end gap-3\">\n <Button\n type=\"button\"\n variant=\"plain\"\n className=\"min-w-[96px] justify-center\"\n onClick={handleBack}\n >\n Back\n </Button>\n <Button\n type=\"button\"\n className=\"min-w-[96px] justify-center\"\n onClick={() => Redirect.toLogin(app)}\n >\n Login\n </Button>\n </div>\n </div>\n </Drawer>\n )\n }\n if (!requiresAuth) {\n return children\n }\n const RtcWrapper = RtcProvider ?? (({ children }) => <>{children}</>)\n return (\n <AuthErrorBoundary>\n <RtcWrapper>{children}</RtcWrapper>\n </AuthErrorBoundary>\n )\n}\n\ninterface AuthErrorBoundaryState {\n hasError: boolean\n}\n\ninterface AuthErrorBoundaryProps extends PropsWithChildren {\n onAuthError: () => Promise<void>\n}\n\nclass AuthErrorBoundaryInner extends Component<\n AuthErrorBoundaryProps,\n AuthErrorBoundaryState\n> {\n state: AuthErrorBoundaryState = { hasError: false }\n\n static getDerivedStateFromError(): AuthErrorBoundaryState {\n return { hasError: true }\n }\n\n componentDidCatch(error: unknown) {\n if (error instanceof NotAuthenticatedError) {\n this.props.onAuthError().then(() => {\n this.setState({ hasError: false })\n })\n return\n }\n\n console.error(error)\n }\n\n render() {\n if (this.state.hasError) {\n return null\n }\n\n return this.props.children\n }\n}\n\nconst AuthErrorBoundary = ({ children }: PropsWithChildren) => {\n const navigate = useNavigate()\n const logout = useSetAtom(userLogoutAtom)\n const handleAuthError = useCallback(async () => {\n await logout()\n navigate(\"/login\", { replace: true })\n }, [logout, navigate])\n\n return (\n <AuthErrorBoundaryInner onAuthError={handleAuthError}>\n {children}\n </AuthErrorBoundaryInner>\n )\n}\n","const PM_STATIC = \"https://parrot-static.pmate.chat\"\n\nexport const DEFAULT_APP_ID = \"@pmate/chat\"\nexport const SHUANG_APP_ID = \"shuang\"\n\nexport interface ProfileStep {\n type:\n | \"nickname\"\n | \"learning-language\"\n | \"mother-tongue\"\n | \"gender\"\n | \"is-adult\"\n | \"age\"\n title: string\n required: boolean\n}\n\nexport interface AppConfig {\n id: string\n name: string\n icon: string\n background: string\n welcomeText: string\n profiles: ProfileStep[]\n}\n\nconst APP_CONFIGS: Record<string, Omit<AppConfig, \"id\">> = {\n [DEFAULT_APP_ID]: {\n name: \"Parrot Mate\",\n icon: `${PM_STATIC}/parrot-logo.png`,\n background: \"linear-gradient(135deg, #F472B6 0%, #8B5CF6 100%)\",\n welcomeText: \"Welcome!Parrot mate\",\n profiles: [\n { type: \"learning-language\", title: \"Learning Language\", required: true },\n { type: \"nickname\", title: \"Nickname\", required: true },\n ],\n },\n [SHUANG_APP_ID]: {\n name: \"爽歪歪大王恋爱聊天机器人\",\n icon: `${PM_STATIC}/shuang.webp`,\n background: \"linear-gradient(180deg, #3b2ea8 0%, #0b0b0b 100%)\",\n welcomeText: \"欢迎来到爽歪歪大王恋爱聊天机器人~先选择角色开始聊天吧。\",\n profiles: [\n { type: \"gender\", title: \"您的性别\", required: true },\n { type: \"is-adult\", title: \"是否成年\", required: true },\n ],\n },\n}\n\nexport const getAppConfig = (appId: string | null): AppConfig => {\n const resolvedId = appId ?? DEFAULT_APP_ID\n const config = APP_CONFIGS[resolvedId] ?? APP_CONFIGS[DEFAULT_APP_ID]\n const finalId = APP_CONFIGS[resolvedId] ? resolvedId : DEFAULT_APP_ID\n\n return {\n id: finalId,\n ...config,\n }\n}\n","import { useCallback, useMemo } from \"react\"\nimport { getAppConfig } from \"../app.config\"\nimport { ProfileStepType } from \"../utils/profileStep\"\n\nconst DEFAULT_CREATE_STEP: ProfileStepType = \"learning-language\"\n\ntype UseProfileStepFlowParams = {\n params: URLSearchParams\n}\n\nexport const useProfileStepFlow = ({\n params,\n}: UseProfileStepFlowParams) => {\n const appParam = params.get(\"app\")\n const redirectParam = params.get(\"redirect\")\n const appConfig = useMemo(() => getAppConfig(appParam), [appParam])\n const appProfileSteps = useMemo(\n () => appConfig.profiles.map((profile) => profile.type),\n [appConfig.profiles]\n )\n const stepParam = params.get(\"step\")\n const normalizedStep =\n appProfileSteps.find((item) => item === stepParam) ?? null\n const defaultStep = appProfileSteps[0] ?? DEFAULT_CREATE_STEP\n const activeStep = normalizedStep ?? defaultStep\n const createSteps = useMemo<ProfileStepType[]>(() => {\n return appProfileSteps.length > 0 ? appProfileSteps : [DEFAULT_CREATE_STEP]\n }, [appProfileSteps])\n const currentStepIndex = createSteps.indexOf(activeStep)\n const nextStep =\n currentStepIndex >= 0 ? createSteps[currentStepIndex + 1] : undefined\n const isCreateFlowStep = createSteps.includes(activeStep)\n const buildStepUrl = useCallback(\n (next: ProfileStepType) => {\n const search = new URLSearchParams()\n search.set(\"step\", next)\n if (appParam) {\n search.set(\"app\", appParam)\n }\n if (redirectParam) {\n search.set(\"redirect\", redirectParam)\n }\n return `/create-profile?${search.toString()}`\n },\n [appParam, redirectParam]\n )\n\n return {\n activeStep,\n appProfileSteps,\n buildStepUrl,\n createSteps,\n isCreateFlowStep,\n nextStep,\n }\n}\n","import { useCallback, useMemo } from \"react\"\nimport { DEFAULT_APP_ID } from \"../app.config\"\nimport { resolveAppId } from \"../utils/resolveAppId\"\nimport type { ProfileStepType } from \"../utils/profileStep\"\n\ntype UseAuthAppOptions = {\n app?: string\n redirect?: string\n}\n\ntype AuthAppRedirectOptions = {\n app?: string\n redirect?: string\n}\n\ntype AuthProfileRedirectOptions = AuthAppRedirectOptions & {\n step?: ProfileStepType\n}\n\nconst AUTH_APP_BASE = \"https://auth.pmate.chat\"\n\nconst getDefaultRedirect = () => {\n if (typeof window === \"undefined\") {\n return \"\"\n }\n return window.location.href\n}\n\nexport const useAuthApp = (options: UseAuthAppOptions = {}) => {\n const app = resolveAppId(options.app ?? DEFAULT_APP_ID)\n const redirect = useMemo(\n () => options.redirect ?? getDefaultRedirect(),\n [options.redirect]\n )\n\n const buildUrl = useCallback(\n (path = \"/\", overrides: AuthAppRedirectOptions = {}) => {\n const targetRedirect = overrides.redirect ?? redirect\n const targetApp = overrides.app ?? app\n const url = new URL(path, AUTH_APP_BASE)\n if (targetRedirect) {\n url.searchParams.set(\"redirect\", targetRedirect)\n }\n if (targetApp) {\n url.searchParams.set(\"app\", targetApp)\n }\n return url.toString()\n },\n [app, redirect]\n )\n\n const buildProfileUrl = useCallback(\n (path: string, overrides: AuthProfileRedirectOptions = {}) => {\n const url = new URL(buildUrl(path, overrides))\n if (overrides.step) {\n url.searchParams.set(\"step\", overrides.step)\n }\n return url.toString()\n },\n [buildUrl]\n )\n\n const buildLogoutUrl = useCallback(\n (overrides?: AuthAppRedirectOptions) => buildUrl(\"/logout\", overrides),\n [buildUrl]\n )\n\n const buildLoginUrl = useCallback(\n (overrides?: AuthAppRedirectOptions) => buildUrl(\"/\", overrides),\n [buildUrl]\n )\n\n const buildCreateProfileUrl = useCallback(\n (overrides?: AuthProfileRedirectOptions) =>\n buildProfileUrl(\"/create-profile\", overrides),\n [buildProfileUrl]\n )\n\n const buildSelectProfileUrl = useCallback(\n (overrides?: AuthAppRedirectOptions) =>\n buildUrl(\"/select-profile\", overrides),\n [buildUrl]\n )\n\n const buildEditProfileUrl = useCallback(\n (overrides?: AuthProfileRedirectOptions) =>\n buildProfileUrl(\"/edit-profile\", overrides),\n [buildProfileUrl]\n )\n\n const login = useCallback(\n (overrides?: AuthAppRedirectOptions) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.location.assign(buildLoginUrl(overrides))\n },\n [buildLoginUrl]\n )\n\n const logout = useCallback(\n (overrides?: AuthAppRedirectOptions) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.location.assign(buildLogoutUrl(overrides))\n },\n [buildLogoutUrl]\n )\n\n const redirectToCreateProfile = useCallback(\n (overrides?: AuthProfileRedirectOptions) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.location.assign(buildCreateProfileUrl(overrides))\n },\n [buildCreateProfileUrl]\n )\n\n const redirectToSelectProfile = useCallback(\n (overrides?: AuthAppRedirectOptions) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.location.assign(buildSelectProfileUrl(overrides))\n },\n [buildSelectProfileUrl]\n )\n\n const redirectToEditProfile = useCallback(\n (overrides?: AuthProfileRedirectOptions) => {\n if (typeof window === \"undefined\") {\n return\n }\n window.location.assign(buildEditProfileUrl(overrides))\n },\n [buildEditProfileUrl]\n )\n\n return {\n app,\n login,\n logout,\n selectProfile: redirectToSelectProfile,\n createProfile: redirectToCreateProfile,\n updateProfile: redirectToEditProfile,\n }\n}\n","import { useMemo } from \"react\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { getAppConfig } from \"../app.config\"\n\nexport const useAppBackgroundStyle = () => {\n const [params] = useSearchParams()\n const appParam = params.get(\"app\")\n\n return useMemo(\n () => ({ background: getAppConfig(appParam).background }),\n [appParam]\n )\n}\n"],"names":["_mergeNamespaces","e","t","r","i","copyExifWithoutOrientation","o","getApp1Segment","s","a","f","l","c","UZIP","u","h","d","A","g","p","m","_","w","b","y","E","F","B","U","C","I","Q","M","x","S","R","T","O","P","H","L","pushV","UPNG","decodeImage","_getBPP","v","_decompress","_inflate","_filterZero","n","_paeth","_IHDR","_copyTile","addErr","N","D","dither","_main","compressPNG","compress","_prepareDiff","_updateFrame","quantize","_filterLine","getKDtree","getNearest","planeDst","stats","estats","splitPixels","vecDot","set16","set32","seek","convert","CustomFile","CustomFileReader","getFilefromDataUrl","getDataUrlFromFile","loadImage","getBrowserName","approximateBelowMaximumCanvasSizeOfBrowser","getNewCanvasAndCtx","drawImageInCanvas","isIOS","drawFileInCanvas","$Try_2_Post","$Try_2_Catch","$Try_3_Catch","canvasToFile","$If_4","$If_5","$If_6","cleanupCanvasMemory","isAutoOrientationInBrowser","getExifOrientation","handleMaxWidthOrHeight","followExifOrientation","incProgress","setProgress","$If_2","$Loop_3","$Loop_3_exit","compressOnWebWorker","imageCompression","$Try_1_Catch","resolveAppId","fallbackApp","envApp","urlApp","cacheInMem","fn","prefix","timeout","cache","ongoingRequests","args","hashRaw","Maybe","item","hash","calculateSHA1Hash","cacheKey","cached","ongoingRequest","requestPromise","result","checkLink","url","isMaybe","cachedLinkCheck","Api","response","body","json","type","logs","line","error","ACCOUNT_ENDPOINT","PROFILE_ENDPOINT","UPLOADER_SERVICE_URL","EXTENSION_CONTENT_TYPE","ProfileService","req","account","scope","query","path","payload","filename","rest","resolvedFilename","ext","contentType","fileToBase64","file","resolve","reject","reader","base64","uploadAvatarAtom","atom","_get","_set","userId","compressed","AccountLifecycleState","emptySnapshot","accountAtom","accountStateAtom","get","profileAtom","TOKEN_STORAGE_KEY","canUseStorage","getAuthToken","raw","parsed","setAuthToken","token","clearAuthToken","AUTH_ENDPOINT","AccountService","lru","request","init","headers","resolvedToken","endpoint","EntityService","id","ids","acc","entity","index","key","ACCOUNT_STATE_KEY","setAccountState","state","clearAccountState","SELECTED_PROFILE_KEY","getSelectedProfileId","setSelectedProfileId","clearSelectedProfileId","AccountManagerEvent","AccountManagerV2","Emitter","app","resolvedApp","existing","manager","session","issuedAtMs","profiles","nextError","params","sessionId","nextSearch","nextUrl","profile","next","storedId","nextId","user","nextSelected","switchProfileAtom","profileDraftAtom","createProfileAtom","nickName","draft","keyCount","read","write","config","__vite_import_meta_env__","defaultRead","defaultWrite","set","arg","isPromiseLike$3","createJSONStorage","getStringStorage","options","_a","lastStr","lastValue","storage","initialValue","_a2","_b","parse","str2","str","newValue","createHandleSubscribe","subscriber2","callback","subscriber","storageEventCallback","atomWithRefresh","refreshAtom","profileByIdAtom","atomFamily","profileId","profilesAtom","atomWithLoadable","updateProfileAtom","updates","selected","target","updated","loginAtom","sessionCheckAtom","userLogoutAtom","motherTongueAtom","normalizeLang","learningLangAtom","LSKEYS","cacheAtom","localStorageJsonAtom","value","defaultSettings","Difficulty","VoiceList","settingsCache","userSettingsAtom","settingAtom","stored","useEffectOnce","effect","useEffect","checkAuth","behaviors","useAuthSnapshot","loading","setLoading","useState","snapshot","setSnapshot","snap","AUTH_APP_BASE","Redirect","redirect","NotAuthenticatedError","getAuthBehaviors","authRoutes","pathname","matchedAuthRoute","route","matchPath","AuthProviderV2","RtcProvider","children","location","useLocation","isLoginPromptOpen","setIsLoginPromptOpen","isLoginErrorDismissed","setIsLoginErrorDismissed","authBehavior","requiresAuth","loginError","hasAccount","handleBack","jsxs","jsx","Drawer","Button","AuthErrorBoundary","Fragment","AuthErrorBoundaryInner","Component","navigate","useNavigate","logout","useSetAtom","handleAuthError","useCallback","PM_STATIC","DEFAULT_APP_ID","SHUANG_APP_ID","APP_CONFIGS","getAppConfig","appId","resolvedId","DEFAULT_CREATE_STEP","useProfileStepFlow","appParam","redirectParam","appConfig","useMemo","appProfileSteps","stepParam","normalizedStep","defaultStep","activeStep","createSteps","currentStepIndex","nextStep","isCreateFlowStep","buildStepUrl","search","getDefaultRedirect","useAuthApp","buildUrl","overrides","targetRedirect","targetApp","buildProfileUrl","buildLogoutUrl","buildLoginUrl","buildCreateProfileUrl","buildSelectProfileUrl","buildEditProfileUrl","login","redirectToCreateProfile","redirectToSelectProfile","redirectToEditProfile","useAppBackgroundStyle","useSearchParams"],"mappings":"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","x_google_ignoreList":[0,18,19,30]}