@prosopo/provider 4.15.17 → 5.0.0

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 (178) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +102 -101
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +103 -102
  4. package/CHANGELOG.md +98 -0
  5. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -1
  6. package/dist/api/admin/apiAdminRoutesProvider.js +3 -5
  7. package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -1
  8. package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts +11 -0
  9. package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts.map +1 -0
  10. package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js +56 -0
  11. package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js.map +1 -0
  12. package/dist/api/captcha/assignDetectorBundle.d.ts +6 -0
  13. package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -0
  14. package/dist/api/captcha/assignDetectorBundle.js +51 -0
  15. package/dist/api/captcha/assignDetectorBundle.js.map +1 -0
  16. package/dist/api/captcha/assignDetectorBundle.test.d.ts +2 -0
  17. package/dist/api/captcha/assignDetectorBundle.test.d.ts.map +1 -0
  18. package/dist/api/captcha/assignDetectorBundle.test.js +71 -0
  19. package/dist/api/captcha/assignDetectorBundle.test.js.map +1 -0
  20. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +1 -0
  21. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
  22. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
  23. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
  24. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +21 -2
  25. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js.map +1 -1
  26. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts +1 -1
  27. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts.map +1 -1
  28. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js +3 -3
  29. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js.map +1 -1
  30. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  31. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +13 -7
  32. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  33. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +3 -0
  34. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  35. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +52 -18
  36. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  37. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts +2 -0
  38. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts.map +1 -0
  39. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js +86 -0
  40. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js.map +1 -0
  41. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  42. package/dist/api/captcha/submitPoWCaptchaSolution.js +1 -1
  43. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  44. package/dist/api/captcha.d.ts.map +1 -1
  45. package/dist/api/captcha.js +6 -0
  46. package/dist/api/captcha.js.map +1 -1
  47. package/dist/api/startProviderApi.d.ts.map +1 -1
  48. package/dist/api/startProviderApi.js +21 -3
  49. package/dist/api/startProviderApi.js.map +1 -1
  50. package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +3 -5
  51. package/dist/cjs/api/admin/apiReplaceDetectorPoolEndpoint.cjs +56 -0
  52. package/dist/cjs/api/captcha/assignDetectorBundle.cjs +51 -0
  53. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +21 -2
  54. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.cjs +3 -3
  55. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +12 -6
  56. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +52 -17
  57. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +1 -1
  58. package/dist/cjs/api/captcha.cjs +6 -0
  59. package/dist/cjs/api/startProviderApi.cjs +24 -5
  60. package/dist/cjs/tasks/captchaManager.cjs +76 -59
  61. package/dist/cjs/tasks/client/clientTasks.cjs +1 -29
  62. package/dist/cjs/tasks/detection/bundlePool.cjs +220 -0
  63. package/dist/cjs/tasks/detection/decodeBehavior.cjs +644 -362
  64. package/dist/cjs/tasks/detection/decodeBehavior.js +1 -1
  65. package/dist/cjs/tasks/detection/decodePayload.cjs +956 -617
  66. package/dist/cjs/tasks/detection/decodePayload.js +1 -1
  67. package/dist/cjs/tasks/detection/decodeSimd.cjs +723 -411
  68. package/dist/cjs/tasks/detection/decodeSimd.js +1 -1
  69. package/dist/cjs/tasks/detection/getBotScore.cjs +2 -2
  70. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +35 -12
  71. package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +1 -2
  72. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +6 -6
  73. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +2 -2
  74. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +2 -2
  75. package/dist/tasks/captchaManager.d.ts +12 -4
  76. package/dist/tasks/captchaManager.d.ts.map +1 -1
  77. package/dist/tasks/captchaManager.js +76 -59
  78. package/dist/tasks/captchaManager.js.map +1 -1
  79. package/dist/tasks/client/clientTasks.d.ts +0 -2
  80. package/dist/tasks/client/clientTasks.d.ts.map +1 -1
  81. package/dist/tasks/client/clientTasks.js +1 -29
  82. package/dist/tasks/client/clientTasks.js.map +1 -1
  83. package/dist/tasks/detection/bundlePool.d.ts +32 -0
  84. package/dist/tasks/detection/bundlePool.d.ts.map +1 -0
  85. package/dist/tasks/detection/bundlePool.js +215 -0
  86. package/dist/tasks/detection/bundlePool.js.map +1 -0
  87. package/dist/tasks/detection/bundlePool.test.d.ts +2 -0
  88. package/dist/tasks/detection/bundlePool.test.d.ts.map +1 -0
  89. package/dist/tasks/detection/bundlePool.test.js +178 -0
  90. package/dist/tasks/detection/bundlePool.test.js.map +1 -0
  91. package/dist/tasks/detection/decodeBehavior.d.ts +2 -2
  92. package/dist/tasks/detection/decodeBehavior.d.ts.map +1 -1
  93. package/dist/tasks/detection/decodeBehavior.js +1 -1
  94. package/dist/tasks/detection/decodeBehavior.js.map +1 -1
  95. package/dist/tasks/detection/decodePayload.d.ts +2 -2
  96. package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
  97. package/dist/tasks/detection/decodePayload.js +1 -1
  98. package/dist/tasks/detection/decodePayload.js.map +1 -1
  99. package/dist/tasks/detection/decodeSimd.d.ts +2 -2
  100. package/dist/tasks/detection/decodeSimd.d.ts.map +1 -1
  101. package/dist/tasks/detection/decodeSimd.js +1 -1
  102. package/dist/tasks/detection/decodeSimd.js.map +1 -1
  103. package/dist/tasks/detection/getBotScore.d.ts +1 -1
  104. package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
  105. package/dist/tasks/detection/getBotScore.js +3 -3
  106. package/dist/tasks/detection/getBotScore.js.map +1 -1
  107. package/dist/tasks/frictionless/frictionlessTasks.d.ts +10 -2
  108. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  109. package/dist/tasks/frictionless/frictionlessTasks.js +35 -12
  110. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  111. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +1 -1
  112. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -1
  113. package/dist/tasks/frictionless/frictionlessTasksUtils.js +1 -2
  114. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -1
  115. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  116. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +6 -6
  117. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  118. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  119. package/dist/tasks/powCaptcha/powTasks.js +2 -2
  120. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  121. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  122. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +2 -2
  123. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  124. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js +0 -28
  125. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js.map +1 -1
  126. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
  127. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
  128. package/dist/tests/unit/api/adminRoutes.unit.test.js +0 -46
  129. package/dist/tests/unit/api/adminRoutes.unit.test.js.map +1 -1
  130. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js +51 -0
  131. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js.map +1 -1
  132. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js +12 -12
  133. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js.map +1 -1
  134. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +15 -1
  135. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  136. package/dist/tests/unit/tasks/captchaManager.unit.test.js +14 -30
  137. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  138. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +3 -3
  139. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
  140. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +25 -7
  141. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -1
  142. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -1
  143. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -1
  144. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +6 -14
  145. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -1
  146. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +0 -1
  147. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
  148. package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js +0 -2
  149. package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js.map +1 -1
  150. package/fixtures/detector-pool/bundle-0.js +15 -0
  151. package/fixtures/detector-pool/bundle-0.json +1 -0
  152. package/package.json +14 -14
  153. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -23
  154. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
  155. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +0 -32
  156. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
  157. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
  158. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
  159. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +0 -39
  160. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
  161. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +0 -32
  162. package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +0 -39
  163. package/dist/tasks/detection/getBehavioralData.d.ts +0 -4
  164. package/dist/tasks/detection/getBehavioralData.d.ts.map +0 -1
  165. package/dist/tasks/detection/getBehavioralData.js +0 -51
  166. package/dist/tasks/detection/getBehavioralData.js.map +0 -1
  167. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts +0 -2
  168. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
  169. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js +0 -57
  170. package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js.map +0 -1
  171. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts +0 -2
  172. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
  173. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js +0 -60
  174. package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js.map +0 -1
  175. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts +0 -2
  176. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts.map +0 -1
  177. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js +0 -109
  178. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js.map +0 -1
@@ -12,4 +12,4 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  // @ts-nocheck
15
- import{RSA_PKCS1_OAEP_PADDING as GoYvnb}from'node:constants';import{privateDecrypt as NzHSAb,createDecipheriv as HMefcR}from'node:crypto';function k27YDO(){}var DODsAGh=Object['defineProperty'],XidFXcw,x_EBHjD,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY,QjjL8rS,_HTxugc,iY0v8A,bCT8nLu,LnPKh9,IFRWZiP,cSyzuM,Xv8_Pg,GjYPKUW,ToLgffC,lizO6U,WGJh5zC,QkfQUlh,odHpUj,TCMuBC_;function XdV7Jll(GoYvnb){return TCMuBC_[GoYvnb<-0x26?GoYvnb+0x3a:GoYvnb-0x2b]}TCMuBC_=mJvs6q0();var DGMLx1=[],f4b_w8=['+Z^KF4a;','IILAp?F','+8&v&','{<)O','HuEvB*/6','IIgj4yYNx','uIzjX_6:=1','sBLV!!06','zu(v|','pD}p~C@jpM','@<Evhe5l`L[;YI','T<(vwd8cAEe,6','&iTpAHKa','hbKA]._a','~h:vK#F','bbTJfCJH31','_rF7}','@,{T{','F+Ex',';&;uLCrY*6nm!3p{K<9U"O8','=q6Tg(NG','**wLFpL=iY','jDml$u8','WW4Ml"8','D~9T3=ik[sA','E*Fx','p|QjF)l_TB}Ma{Vh+m@e_>Uy|Jk:20In_J~T#tHQ6}T>%%','W%:cQI?q)xuvAskMwIKx','Eg^k?3|@5g[8cMaGOgYeCbO@(DJ2hl6$','=xbmlsuQqvr+J8Xe`7R7^Js~[JhB&$[3gA_wc','M}EYcZ5*H0oYdSZ|Yn37F)YZc+Af#t7Q%+tk*34}A{)/Q%','"DAmrW)#:von4RZ$K]%','NAis]T(p#xonz2CE!INx','9gL`Qj3~ivUf4]XE||~>=XzK8,2RF#BOcA|`{De?&V','2h+mF@]B(CX@}{y1HD|?TMB~~/|e&%$r?1DTKYKmzU3','Qh|pz>3}A}=kPnZ.','g}ys[l1EgByg5','b]Kxa@0=CB8/KB>Xghl`]','nh`7>TA_#gW5mPteUDSb<IMqqKL=O<?6_~)cI827a{','GAwY:8xtw','4%K@qRsbM0BwLw=$v%ewHi(Ej;g/{y','PA^)#J889}:sl%','D&F?u=9','7goY*gkn>;2YdS','omdma#JqyJ7c}I#X+6qOUsH3tEP{XB@$^mLmmm`@yx','`M9g?<J*<,O$La_.A&u?qm2~a}fY@w','n_#71mubCh*l6sqXNu,gfv<*]/EshIBrSIce(*_5','YD.g<(6E,Jh|t8d','TJHf0#]B+}?$h{bN=}:xcq1Z=0U','R1Ybjt65nB,Vw{W82u$d)l??@0l;7MUrk5','U(Cxeq2b[,Fb|Bg./AwSlBh@>ljb_NxXHm3c/','7wJmDYJ*yg:sj]a|8u?e8qT?<J"2J#}','"OC)SsD}&KEBgMe_w_r`<NQcCT;09%7','Ir0dz>#kO/Mf[8XNsh!Y"is}.]+*Rs%19w~wF)8}PE',',|R7|3[B[x@*lNGr&A!bjifp`V','`bb`ozT5mgq>B2%M2ezRV8i4QB=e8$D*O{xm6','@A*?T|AKRx#{j#cQ|_)cxJwVmgOB[I8NlI4wY>(5','2%Lg1MZ*/geeDM".s]@dbNzmq{++DRe?O~2@@sl5','fugR<t6q<gWl4R#3/ugf%&s7;6}hBW}GoOudmPk5','wxef3fs}"B@','6}Q7C8=q(+u/1Nocx_sRXpb|Q0','<feO_N8c1lD2m%','~Ir?zTj}(l1+(sF83AUmB~5KZ04YSS5V','xR@k#89','"|m`NW(07Bkpnw3n!3A7','|{JmH<S"ZE',';R{@db:~7d;:5','^vpCx#<k+}.>/8!N[m9)&2.Zw,}BZaH:uuy',')}[=BB{kiKJYYs(XHCNOL><.r;^%Rw=|BGKfG','!MKw"(Lk~/{s?Mm|>UoY6Dl5','`31`mM3yV{{paq&G}I3$?','>lqx/Is@_BY=tvl_z6Ods#~BtEMdQ<pE+g2wbD9','01UgUBIt;l7u9:@O:KXx4t3y+xU*5','{vZIP<4@RVoa]N`r+9','6KSbysJKI0SMgRXNQGWk"I~VUB5po]`6qhBC','NDNx_IsbZ0*dMw','W|wi"i+BcVYVXP^O&GmC','4]U7WXt?igEe/s=$s&QcD|:@xB5$OlA6L&5','__X>u&]@M,QmB0lOF(3c.qV2?lw_v{]',']`gw!mj@yKn$/:+e$Mxj3g;=qCct(RKr','dIDO)Wo07T)DT]m|ku`$@m7B~/K~Xy3MX?:7','z]qRgXg~OlPYC:4|aD?k585EF]g>H8.e,_m?I#0=KKe@Mw','C~:$NUIm|{,nT2P|','MJK7f&wQ(+WlKPC','9*Yb12V8RVnTn&wNKghbEiz0%x','_uPCVJEkwE','/u3xk4#z6K6$Z&}hm7)7kbuQK=sRTBv*7R^O5vJ.H0{|.w','6Ieg]T_?yJIwv{H:0~tey8c8Rx|A9%?c`uf7','6}aR!M9','AfQR0i*kq{pUh{rNJ3ckBs6=]+F=M&NnAel`N3/5','Y_gkNf9','2gc@UB(ZxT.lL&Mn!}a7bv/k.Dr%^W.X~JoGNftpmxZvMw','n`.$O3}8lDd0|0u68Jy','<&ZbcI_=:+:&{y0','<ANO+8S=q/V$ZwYEKMQx:D7,7','FCV`d&q*s6sYs8}X/g]@1K[akT!w:IwV49','Au>i[<Lk6v]p/:o80K(T|Z9','Ix1?}N#*A}&tYwa|zhrm/','MmYG%DbB:vb=EyfVNAd?w49','vez@3U9','I7>i@YJKpAX','Sb*s3ai3(U2YAQh|BItbGfm?D{pR%2#XT3kxK=9','X&*?Asv~5VhMQ%wVWIck','mIobDz<?0]S_fQw6MJzfLN(Jx6If3$_3oOHxcaGylh','2&EbgBC8HAzCZw~XeJ1Y@PUaJ6YUVWo6Oh~etz^8aJQ','lDJgmU^Q+vY?5:AQ7wy','<XewXR2VChj=HlY$[A.cj&J5','eb|pJ=]QjCy7%P9Q@|2@cI]@mx$h`$|_iAY>Wsu~u0Q','Q`|smmY06JGBfQ%e$~FmOl[Qkh','OgObPJL6eV3','zhObg[Xp|gq*kG96~u/T8Z)?m,ysnRAM2D4wb#9','zAKR:Da~7','OIl?Xg<5y{!tml}hL&8d!K"JqC{|:%Merh[Gwb2u:+l','%gjxp<z.YVFY1NJ*z;1Yeg@cblPCINB.zmce5&+7~Caw12d','NbckE#2Bl;0ACXGr5v"wn@9','9K#mAz9','=&x7}4yQL68zFN#XM}jk&K:Cw0','9K(>aT)J:/dhJ&63t6y','KMSbPDI5uJt+pG5Q_A)pb#9','Iuef#J~yBl[?GS4*j2B=#<+B40~+_GY$f6%','$~3RmXn?e+J]Mwg3Jg=df#E#5{P5wXyVAM;s&[Oy','03>Gg=rcSB2YeG$OM?gO?','cupY+sdC>C','4A9$M3Vaw','E`C)q2.E6viUv<KMb;c@*pC8Rv||a$IeZ2"Oh3C2P}oa5','@I"@fJ2@%}=+>$`c:~_fs#Ipb]CpQ:E|TG2IimVQ#g)','TIJCw43V/g&QjRA6U9','8JGsK[fK}]Sg[IW6rMZkCbE*+JRt>%','me5g{<$q40J`3qx','z6KOMW9','5+NkmY0t<E!lS:l.kJ8e?@LzW=XT}{eMX_%','1MIOj>`}364#5:&$%JNO949','yR=d6<YK`}cebtGrNAEsO@>QSBZKB#:|2uHx','>UCgu~EtChL8fspG{KdsViE0#{','j(|pki;5','<|tT]T3V,VNt=wY$VmSk@PfkeV~+~0.n0I_w','du[?uzeExDcz<y9_OA(>?','_hHxBvJ0o,_%.saG','Uxex58wrkT+/5','$hOdzN@BnBz8z]1NBu.mn@hBw','81[S^@H3.B^APn:h"6%S_tAt*xuK5','Eg2@pb}~V{[v5',':~:mSbmkfD!6NnO*k}npusW??]','Pm[kfTa7%}?$o2V|dM2w+~G86vVtUl6h','smu=1MuBdA^mRv:Gxb^>83a7}DD@[{<.O_XR6','9?j@Y>OV`}lk!$]hx?T@lBJ?pAT;Qq1Xme{@$','5`*?8lYK?l#2GS','8IWTZ<SKw,Y512AQumcw=K7reK6p#s0X6~}TKvZ5','^I;sb#NyWC3e5:?6c?sR`fekN,wzm]{','?3u=P<r}v]2fr]Hr>9',')%K@C|@y',')&vYdiJ?ax+2aa:GmMyp_qXEQ0%0tw',')uYi`IImoviaPtJ_1bp?A[.KGDg]M&gOqIRm]iF|;AWVFt7','Kgv=RY8}e+JU:$Y$.}=bk4Z_(;oC2nU.P2imn<uQC6@k"y','6m/@=U0n8,gReG"?MxHR[I|@~K+YNW,_#U_)Gja3%,J]C%','/mtbOZCc,{mf4t$?','FXBm2i7~&v)$oNNV_5','Kl]T3gf.&VN','ZmWeiUfm&}+=8%%cG|J7}<}25JZY+2l?o6K>@B3QK{P;3%','||&f1U:~6{Pon:rGNx%','K&?OcW~}qCY5IB^.6JMOYTd@fD36EPh$aAf`DXhBEE(dWw','sA.pV<y,4,FShl58Jm&f3Kn.GlKw&<fe','`{UR3*X00/h7rnHrHr0TWX92BD`>Aw','De>i7&wBA}1aO$`6r1BC<lm5b6bnd#Sn)v3p:','=|UfZibB0DpU,<VODud$fD(*&}48p2q$Amy','dR=wnj.E+E5uT%8VTI.$:T4bA{X','Ym/bMqO8YU4oTPSM!m%','9{+m{<6tJ6P27S]$[O~>p<~@$6','aU=eqPLzn6S_?w=*"2Tx','K%KOP<Qy','CInmM3&3+v(fyiXM','SIOe8u|4P}FY|]fEM62@W&P|ZE~l:%seV}OYvv.Z0l?snw','bMu?oT!,ZE','FfQfIibQ80=','"f>GsTD7]V0c0[/3"A/>:Nr@lD/P$i,c8}oS','brp?{>hCWU0TTNXn','Mu<?%|r~s0w:J:&|"7d`}>U@5K&>q<L*)xZiTPQ,}]','[27evXl.1]pb:{JO','&|(eaJzk;D;sDR7Q','63Vp"ILJWl6c.:K865','R3zwHN=kuJ+nRs`_}b/ky8zJ|K97H<NVm3]eo=9'];odHpUj=(GoYvnb,NzHSAb,HMefcR,k27YDO,DODsAGh)=>{if(typeof k27YDO==='undefined'){k27YDO=x_vvy9}if(typeof DODsAGh===XdV7Jll(-0x3a)){DODsAGh=DGMLx1}if(HMefcR&&k27YDO!==x_vvy9){odHpUj=x_vvy9;return odHpUj(GoYvnb,-0x1,HMefcR,k27YDO,DODsAGh)}if(GoYvnb!==NzHSAb){return DODsAGh[GoYvnb]||(DODsAGh[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}if(HMefcR==k27YDO){return NzHSAb?GoYvnb[DODsAGh[NzHSAb]]:DGMLx1[GoYvnb]||(HMefcR=DODsAGh[GoYvnb]||k27YDO,DGMLx1[GoYvnb]=HMefcR(f4b_w8[GoYvnb]))}};function N97Q_Od(){return globalThis}function Qdfc6i(){return global}function PCiA5Wd(){return window}function IT5DIC(){return new Function('return this')()}function u5QXDdI(GoYvnb=[N97Q_Od,Qdfc6i,PCiA5Wd,IT5DIC],NzHSAb,HMefcR=[],DODsAGh=0x0,XidFXcw){NzHSAb=NzHSAb;try{k27YDO(NzHSAb=Object,HMefcR.push(''.__proto__.constructor.name))}catch(e){}vb9qjW:for(DODsAGh=DODsAGh;DODsAGh<GoYvnb.length;DODsAGh++)try{var x_EBHjD=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x16?GoYvnb<0x2b?GoYvnb>0x16?GoYvnb<0x16?GoYvnb+0x46:GoYvnb-0x17:GoYvnb+0x12:GoYvnb-0x19:GoYvnb-0x4f]},0x1);NzHSAb=GoYvnb[DODsAGh]();for(XidFXcw=x_EBHjD(0x18);XidFXcw<HMefcR.length;XidFXcw++)if(typeof NzHSAb[HMefcR[XidFXcw]]===XdV7Jll(-0x3a)){continue vb9qjW}return NzHSAb}catch(e){}return NzHSAb||this}k27YDO(QkfQUlh=u5QXDdI()||{},WGJh5zC=QkfQUlh.TextDecoder,lizO6U=QkfQUlh.Uint8Array,ToLgffC=QkfQUlh.Buffer,GjYPKUW=QkfQUlh.String||String,Xv8_Pg=QkfQUlh.Array||Array,cSyzuM=R6licAj(()=>{var GoYvnb=new Xv8_Pg(0x80),NzHSAb,HMefcR;k27YDO(NzHSAb=GjYPKUW[XdV7Jll(-0x37)]||GjYPKUW.fromCharCode,HMefcR=[]);return R6licAj(DODsAGh=>{var XidFXcw,x_EBHjD;function osVNKcv(DODsAGh){return TCMuBC_[DODsAGh>0x2e?DODsAGh-0xe:DODsAGh>0x2e?DODsAGh-0x48:DODsAGh>0x19?DODsAGh-0x1a:DODsAGh-0x36]}var FWICCz,UP1vg8l;k27YDO(XidFXcw=DODsAGh.length,HMefcR.length=0x0);for(x_EBHjD=osVNKcv(0x1b);x_EBHjD<XidFXcw;){var JB5Yh6G=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2c?DODsAGh<-0x41?DODsAGh+0x58:DODsAGh+0x40:DODsAGh+0x20]},0x1);UP1vg8l=DODsAGh[x_EBHjD++];if(UP1vg8l<=0x7f){FWICCz=UP1vg8l}else{if(UP1vg8l<=0xdf){var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0xd?DODsAGh+0x52:DODsAGh<0xd?DODsAGh-0xd:DODsAGh-0xe]},0x1);FWICCz=(UP1vg8l&0x1f)<<XdV7Jll(-0x35)|DODsAGh[x_EBHjD++]&zLgcNNn(0x10)}else{if(UP1vg8l<=0xef){var gVrCRm0=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2a?DODsAGh-0x5b:DODsAGh+0x29]},0x1);FWICCz=(UP1vg8l&0xf)<<gVrCRm0(-0x25)|(DODsAGh[x_EBHjD++]&0x3f)<<0x6|DODsAGh[x_EBHjD++]&XdV7Jll(-0x38)}else{if(GjYPKUW[JB5Yh6G(-0x3d)]){var eQHvzuY=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0x5e?DODsAGh>0x49?DODsAGh<0x5e?DODsAGh-0x4a:DODsAGh-0x45:DODsAGh+0x3b:DODsAGh-0x2d]},0x1);FWICCz=(UP1vg8l&XdV7Jll(-0x2e))<<0x12|(DODsAGh[x_EBHjD++]&eQHvzuY(0x4c))<<XdV7Jll(-0x36)|(DODsAGh[x_EBHjD++]&JB5Yh6G(-0x3e))<<JB5Yh6G(-0x3b)|DODsAGh[x_EBHjD++]&osVNKcv(0x1c)}else{k27YDO(FWICCz=0x3f,x_EBHjD+=0x3)}}}}HMefcR.push(GoYvnb[FWICCz]||(GoYvnb[FWICCz]=NzHSAb(FWICCz)))}return HMefcR.join('')},0x1)})());function l5uqz9I(GoYvnb){var NzHSAb=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x1?GoYvnb+0x23:GoYvnb>-0x1?GoYvnb<-0x1?GoYvnb-0xc:GoYvnb-0x0:GoYvnb-0x4]},0x1);return typeof WGJh5zC!==NzHSAb(0x0)&&WGJh5zC?new WGJh5zC().decode(new lizO6U(GoYvnb)):typeof ToLgffC!==NzHSAb(0x0)&&ToLgffC?ToLgffC.from(GoYvnb).toString('utf-8'):cSyzuM(GoYvnb)}k27YDO(IFRWZiP=odHpUj(0xb1),LnPKh9=odHpUj(0x8c),bCT8nLu=odHpUj[XdV7Jll(-0x34)](void 0x0,[0x84]),iY0v8A=odHpUj.call(void 0x0,0x69),_HTxugc=odHpUj(0x4f),QjjL8rS=odHpUj(0x4e),eQHvzuY=odHpUj(0x4a),gVrCRm0=odHpUj[XdV7Jll(-0x30)](XdV7Jll(-0x33),0x47),zLgcNNn=odHpUj(0x32),JB5Yh6G=odHpUj(0x29),UP1vg8l=odHpUj(0x28),FWICCz=odHpUj(0x27),osVNKcv=[odHpUj(0x1d),odHpUj(0x21),odHpUj(0x3e),odHpUj(0x56),odHpUj(0x5d)],x_EBHjD={JRE5RU:odHpUj(0x1c),ET_D6Mx:odHpUj[XdV7Jll(-0x34)](XdV7Jll(-0x33),[0x23]),mjJHG7T:odHpUj(0x2d),u28dzh:odHpUj(0x35),KyIf9O:odHpUj[XdV7Jll(-0x34)](void 0x0,[0x46]),IzmZz8F:odHpUj(0x4d),sNAL0i:odHpUj(XdV7Jll(-0x2c)),MyaPpaM:odHpUj(0x62),TIi_1m:odHpUj.apply(XdV7Jll(-0x33),[0x6a]),KKo2sTn:odHpUj(0x6c),JoiXrg0:odHpUj(0x72),lDhWjH:odHpUj(0x77)});function nnZkjBy(...GoYvnb){var NzHSAb=(GoYvnb,HMefcR,k27YDO,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw===XdV7Jll(-0x3a)){XidFXcw=DODsAGh}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(GoYvnb!==HMefcR){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(k27YDO&&XidFXcw!==DODsAGh){NzHSAb=DODsAGh;return NzHSAb(GoYvnb,-0x1,k27YDO,XidFXcw,x_EBHjD)}if(k27YDO==GoYvnb){return HMefcR[DGMLx1[k27YDO]]=NzHSAb(GoYvnb,HMefcR)}if(k27YDO==XidFXcw){return HMefcR?GoYvnb[x_EBHjD[HMefcR]]:DGMLx1[GoYvnb]||(k27YDO=x_EBHjD[GoYvnb]||XidFXcw,DGMLx1[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}},HMefcR;HMefcR=[NzHSAb.call(XdV7Jll(-0x33),0x0)];return GoYvnb[GoYvnb[HMefcR[0x0]]-0x1];function DODsAGh(GoYvnb,NzHSAb='(|;y$Cs?WBukzM7Z~=mQ^Sq+"Va>_}.hP:Y{`L5Do8TRdUej0NX)nEG@]<,p32b[&I%rlgA9Hwcx*KFi64!vfJt#O1/',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x40?GoYvnb+0x4c:GoYvnb>0x55?GoYvnb-0x4d:GoYvnb-0x41]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0x42),FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=zLgcNNn(0x42);UP1vg8l<DODsAGh;UP1vg8l++){var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x11?GoYvnb-0x12:GoYvnb+0x4a]},0x1);JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-gVrCRm0(0x1a)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var eQHvzuY=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x11?GoYvnb-0x19:GoYvnb>0x4?GoYvnb+0x34:GoYvnb<-0x11?GoYvnb-0x18:GoYvnb<0x4?GoYvnb+0x10:GoYvnb+0x37]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&0x1fff)>eQHvzuY(0x1)?zLgcNNn(0x53):0xe);do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x4a)),x_EBHjD>>=gVrCRm0(0x21),osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-gVrCRm0(0x1a)}}if(FWICCz>-zLgcNNn(0x49)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&zLgcNNn(0x4a))}return l5uqz9I(XidFXcw)}}function ukJTFl(GoYvnb,NzHSAb){switch(XidFXcw){case-0x1b:return-GoYvnb}}function xeS8oGq(GoYvnb){return nnZkjBy(GoYvnb=XidFXcw+(XidFXcw=GoYvnb,0x0),GoYvnb)}XidFXcw=XidFXcw;function ZusH6B(DODsAGh,x_EBHjD){var osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY;function QjjL8rS(DODsAGh){return TCMuBC_[DODsAGh<-0x9?DODsAGh>-0x9?DODsAGh-0x33:DODsAGh>-0x1e?DODsAGh+0x1d:DODsAGh-0x31:DODsAGh+0x38]}k27YDO(osVNKcv=(DODsAGh,x_EBHjD,FWICCz,UP1vg8l,JB5Yh6G)=>{var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh>0x13?DODsAGh+0x12:DODsAGh+0x1]},0x1);if(typeof UP1vg8l===XdV7Jll(-0x3a)){UP1vg8l=lizO6U}if(typeof JB5Yh6G===zLgcNNn(-0x1)){JB5Yh6G=DGMLx1}if(DODsAGh!==x_EBHjD){return JB5Yh6G[DODsAGh]||(JB5Yh6G[DODsAGh]=UP1vg8l(f4b_w8[DODsAGh]))}if(FWICCz==DODsAGh){return x_EBHjD[DGMLx1[FWICCz]]=osVNKcv(DODsAGh,x_EBHjD)}if(FWICCz&&UP1vg8l!==lizO6U){osVNKcv=lizO6U;return osVNKcv(DODsAGh,-0x1,FWICCz,UP1vg8l,JB5Yh6G)}if(UP1vg8l===osVNKcv){lizO6U=x_EBHjD;return lizO6U(FWICCz)}},FWICCz=osVNKcv(0x10),UP1vg8l=osVNKcv(0xb),JB5Yh6G=osVNKcv(0x9),zLgcNNn=osVNKcv[QjjL8rS(-0x17)](void 0x0,[0x4]),gVrCRm0={[XdV7Jll(-0x2f)]:osVNKcv(0x3),iDdjE9:osVNKcv(0x4),S3u4Hmz:osVNKcv[QjjL8rS(-0x13)](QjjL8rS(-0x16),0x8),FU0xf5U:osVNKcv(0x4)},eQHvzuY=[osVNKcv(XdV7Jll(-0x2d)),osVNKcv[QjjL8rS(-0x17)](XdV7Jll(-0x33),[0xa])]);const _HTxugc=JSON[osVNKcv[QjjL8rS(-0x13)](XdV7Jll(-0x33),0x1)](DODsAGh),iY0v8A=Buffer[eQHvzuY[XdV7Jll(-0x39)]](_HTxugc[gVrCRm0[XdV7Jll(-0x2f)]],gVrCRm0.iDdjE9),bCT8nLu=NzHSAb({[osVNKcv(0x3)]:x_EBHjD,[osVNKcv.apply(void 0x0,[0x5])]:GoYvnb,[osVNKcv(0x6)]:osVNKcv(QjjL8rS(-0x11))},iY0v8A),LnPKh9=Buffer[osVNKcv(0x2)](_HTxugc[gVrCRm0.S3u4Hmz],gVrCRm0.FU0xf5U),IFRWZiP=Buffer[osVNKcv(QjjL8rS(-0x10))](_HTxugc.iv,zLgcNNn),cSyzuM=LnPKh9[osVNKcv[XdV7Jll(-0x30)](void 0x0,0x9)](0x0,ukJTFl(0x10,XidFXcw=-0x1b)),Xv8_Pg=LnPKh9[JB5Yh6G](ukJTFl(0x10,xeS8oGq(-0x1b))),GjYPKUW=HMefcR(eQHvzuY[XdV7Jll(-0x32)],bCT8nLu,IFRWZiP);let ToLgffC=nnZkjBy(GjYPKUW[UP1vg8l](Xv8_Pg),GjYPKUW[osVNKcv(0xc)](cSyzuM));return nnZkjBy(ToLgffC=Buffer[osVNKcv(0xd)]([ToLgffC,GjYPKUW[osVNKcv(0xe)]()]),ToLgffC[osVNKcv(0xf)](FWICCz));function lizO6U(DODsAGh,x_EBHjD='F6auI^xJj7O4@/}<301:KM{B|$h&"ZTpv=leQ!*S~Nwb]ficP;_8LVo,kr2ED)n>Ut9(.+s?[Yyg#ARWCHdz5qX`Gm%',osVNKcv,FWICCz,UP1vg8l=[],JB5Yh6G=0x0,zLgcNNn,gVrCRm0,eQHvzuY=0x0,_HTxugc){var iY0v8A=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x28?DODsAGh+0x5c:DODsAGh<-0x28?DODsAGh-0x2:DODsAGh<-0x13?DODsAGh>-0x13?DODsAGh-0x1b:DODsAGh+0x27:DODsAGh+0x24]},0x1);k27YDO(osVNKcv=''+(DODsAGh||''),FWICCz=osVNKcv.length,zLgcNNn=XdV7Jll(-0x39),gVrCRm0=-iY0v8A(-0x1f));for(eQHvzuY=eQHvzuY;eQHvzuY<FWICCz;eQHvzuY++){_HTxugc=x_EBHjD.indexOf(osVNKcv[eQHvzuY]);if(_HTxugc===-iY0v8A(-0x1f)){continue}if(gVrCRm0<0x0){gVrCRm0=_HTxugc}else{var bCT8nLu=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x4a?DODsAGh+0xe:DODsAGh+0x49]},0x1);k27YDO(gVrCRm0+=_HTxugc*bCT8nLu(-0x3b),JB5Yh6G|=gVrCRm0<<zLgcNNn,zLgcNNn+=(gVrCRm0&QjjL8rS(-0xd))>0x58?0xd:0xe);do{var LnPKh9=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2d?DODsAGh+0x26:DODsAGh>-0x2d?DODsAGh<-0x2d?DODsAGh+0x3d:DODsAGh+0x2c:DODsAGh-0x1]},0x1);k27YDO(UP1vg8l.push(JB5Yh6G&0xff),JB5Yh6G>>=LnPKh9(-0x1d),zLgcNNn-=0x8)}while(zLgcNNn>bCT8nLu(-0x3d));gVrCRm0=-iY0v8A(-0x1f)}}if(gVrCRm0>-0x1){UP1vg8l.push((JB5Yh6G|gVrCRm0<<zLgcNNn)&XdV7Jll(-0x31))}return l5uqz9I(UP1vg8l)}}const gDgt2d=async(GoYvnb,NzHSAb)=>{var HMefcR=(GoYvnb,NzHSAb,DODsAGh,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw==='undefined'){XidFXcw=UP1vg8l}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(DODsAGh&&XidFXcw!==UP1vg8l){HMefcR=UP1vg8l;return HMefcR(GoYvnb,-0x1,DODsAGh,XidFXcw,x_EBHjD)}if(GoYvnb!==NzHSAb){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(DODsAGh==GoYvnb){return NzHSAb[DGMLx1[DODsAGh]]=HMefcR(GoYvnb,NzHSAb)}if(XidFXcw===XdV7Jll(-0x33)){HMefcR=x_EBHjD}},DODsAGh,XidFXcw;k27YDO(DODsAGh=[HMefcR[XdV7Jll(-0x30)](void 0x0,0x15),HMefcR(0x17)],XidFXcw=HMefcR(0x14));const x_EBHjD=Buffer[HMefcR(0x11)](NzHSAb||process[HMefcR(0x12)][HMefcR(0x13)]||'',XidFXcw)[DODsAGh[XdV7Jll(-0x39)]](HMefcR(0x16)),osVNKcv=ZusH6B(GoYvnb,x_EBHjD),FWICCz=JSON[DODsAGh[0x1]](osVNKcv);return{...FWICCz,[HMefcR(0x18)]:Date[HMefcR.call(XdV7Jll(-0x33),0x19)]()};function UP1vg8l(GoYvnb,NzHSAb='8GfqWaKLk]x9$N3hiJYs/[mgBH~{XUwlT:y%rE(Z+>&*vF2jCc#,4bDoA016).O_ReSPI@d"|7uV}M5zp=?^;t`!<Qn',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x22?GoYvnb<0x22?GoYvnb>0x22?GoYvnb-0x4a:GoYvnb<0xd?GoYvnb+0xf:GoYvnb-0xe:GoYvnb+0x26:GoYvnb-0x17]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0xf),FWICCz=-0x1);for(UP1vg8l=XdV7Jll(-0x39);UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-0x1){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>-0xa?GoYvnb-0x5b:GoYvnb+0x1e]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&gVrCRm0(-0xe))>XdV7Jll(-0x29)?gVrCRm0(-0xc):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x17)),x_EBHjD>>=gVrCRm0(-0xf),osVNKcv-=0x8)}while(osVNKcv>XdV7Jll(-0x2e));FWICCz=-0x1}}if(FWICCz>-zLgcNNn(0x16)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&0xff)}return l5uqz9I(XidFXcw)}};export{gDgt2d,gDgt2d as default};function x_vvy9(GoYvnb,NzHSAb='95y%wS7kCxd;}0]{:6VEh/^_QnG$O?ce`)|*8MNX3.r1!(~q&Rim@=gTUJBlvWDK,A+out2Isfbp>Yjza#P<[Z4"HLF',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv=0x0,FWICCz,UP1vg8l=0x0,JB5Yh6G){k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=UP1vg8l;UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-XdV7Jll(-0x32)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x2?GoYvnb-0x56:GoYvnb<0x2?GoYvnb+0x8:GoYvnb<0x2?GoYvnb+0xe:GoYvnb-0x3]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&zLgcNNn(0x13))>zLgcNNn(0x14)?XdV7Jll(-0x28):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0xc)),x_EBHjD>>=0x8,osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-0x1}}if(FWICCz>-0x1){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&XdV7Jll(-0x31))}return l5uqz9I(XidFXcw)}function mJvs6q0(){return['undefined',0x0,0x3f,'fromCodePoint',0xc,0x6,'apply',void 0x0,0x1,0xff,'call','Vhy4yYk',0x7,0x2,0x5b,0x8,0x1fff,0x58,0xd,0xe]}function R6licAj(GoYvnb,NzHSAb=0x0){var HMefcR=function(){return GoYvnb(...arguments)};return DODsAGh(HMefcR,'length',{'value':NzHSAb,'configurable':true})}
15
+ import{RSA_PKCS1_OAEP_PADDING as lYgpQIu}from'node:constants';import{privateDecrypt as _tu9kNq,createDecipheriv as lrUmqp}from'node:crypto';function bh2X_2r(){}var s2vFhZS=Object['defineProperty'],ThARLh,flNmQt,RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF,YKXyjaG,TwvCME9,JskwyQc,QeCB3C,cYbeftG,geovr3v;function UTJyAip(lYgpQIu){return geovr3v[lYgpQIu>-0x3e?lYgpQIu+0x53:lYgpQIu>-0x62?lYgpQIu<-0x62?lYgpQIu+0x6:lYgpQIu<-0x62?lYgpQIu-0x2d:lYgpQIu+0x61:lYgpQIu-0x5c]}geovr3v=zMuhST();var iiioNH=[],uzT0OvZ=['_7opc=V%','l.rRFKDg','bm#d)6]I','$OotA{SA','9eXh}7d?}KjqB7+Ch:EBRKlsT@x5n@193emHVtKU~3OOMG:"i:F5cNI*OZz`G+e:57dtg8dvg_cNaNh','Y@Z#`Rko','$Y=P&A[sy,J/z','G?X5Zy{s3h06l|(.=T','R{X}33ft{zE','f@|L','oFtyCtT','U:lpK17o','Y@Z#`Rko','Y@Z#`Rko','9aq9?NnH9W','Y@Z#`Rko','Akg_','Y@Z#`Rko','l@WL','Y@Z#`Rko','Y@Z#`Rko','G?.5UNjv(}x3Uwy?":~1U/34:Z','9aq9?NnH9W','l@WL','G?.5UNle2Z)D!tb?$_EH@{.R3hr62GaF_z','@@YyK1Zo',UTJyAip(-0x61),'Y@Z#`Rko',UTJyAip(-0x60),'U:lpK17o','Y@Z#`Rko','G?X5Zy{sg<*}L|Z?;H/$I;3U3h2=DXd?4z',UTJyAip(-0x61),'oFtyCtT',UTJyAip(-0x60),'U:lpK17o','ww=#9tT','RIO5Y"4z','S+,#;;xP','n@O5kFdv0=;G/w','l@m5j)EA#OFpz','C6l9#RZo','k:Z#cu<o',')}aEp5Y','::l]JN]R+%','<KT_q','^EC5C','J?iL','djd{]78%:O>f0qNCe!(Bt,T','RIO5Y"4z','::l]JN]R+%','A$f9n{T','ww=#9tT','$k(5qR+HW.D','i:JL','?}&w63)?Hp_Ev4~9AK)H',')EC{qp!v~a;54;DF(u^yibJz','K$+lCA]0,D%^bwDv4i25%,g6Mn!zwCt90ZP{S89Agn','yZA/Gu"2,DfSKG9B%3(LI[;n?Q~','LG0$3{Ebu$`6Bw',')Vq]JDw%NPYZU7os|7YG7G?8e.E%n&xk=?S/_a&z','6?py32j?7PPN!O,8nuc#P&(zmnW^&oXVYa_`S,iFy}IeAo','M,*$m6%s=.O5zd;%hnl=#K"8I','|_!GmP^EIg^*yOF9yT','pKNEpdmUd$senOVjBB~Ce^7=jq4Lz','pub9Bt,e)$gNOXlQGvT~X~Dl5awuV+;i1J5lJGtz','za$pp1oH`D}H6iZ?t9kE;p{[*}:=kR;"UQ:BGG4Ph','Y}P=C"E.w$M#y8dCI@WLn{qog@Cpoh}laun9o;xU<@I)dI','ye5/(X:41.FC)^x*B@.BW=mUG%G,z','Fi{5VNWBRnLYTtaljKo','T68{taWBX$q)aI','V@zCbtp484[1KG""',',769z&*Abg=WU;n','FijxC`v[}@RDf|z8"K&/."+Hn,fZDIQ&fEkx3aMl%3!#bsq','1,2BRyVl=gu/_;]%+K.5479x1gTCF)4Zm9F;%Kt]"27','S}gE}dVH>}/N9tVF8Br$J|@*}$gVoR!F|QM5*y&z','mEx{9Op]I$lZ+OgY}ek5$&T','U?_$48cgj,aDy@L"xD;/XXk{LqO','>}_x*y>,~37V#w4k*?O#n7slw','IW3V=69R4Og=C<Tj468L|E5gp4(;>*uQ,}&V3#lo7PPyDw','7KuhZ<vg6HrKU7#&Lz','9i#kp3`?cQ<%sAGCUto','xZ:;.`0YJMT;kh','0J2H:/fHADG/++J&{Z:;PPPBn,D','pK#w6|,{%$,Mo*c*DY6w','~_C#iGV[yHz~<4`&%aO58DueEn&yQhm8tq"=Q"RzI',']{&=|PT','OiGeQ"cn!}MHDX^iowC5>~==+MjFU7n',';}S/0Xj2#PVsNI','gV3GGDk=_}By}^4','D78Bt,n%2}@vP77CLn}e5AT','6i3_S,A4z%','+:VB@R:^wgRD?X4&1i3y8u+8&4','rqVB*?2lT33=5OWCf})Hevgl]','oF~e>=#ECODw{R7vl:ZLI,tKx}S(Gw','L:`V0JKxZ$Fsn&,QLY^{q8(z^$V4+CwQb9,9oaHlg@','pvy<1;M%:}{m])hi{uByp2KY*q.Iz','la)HRy===K,V;II*6:|]j|~]YZ2=/8{*GT','7k"y<DZ6W.I`DCbUuY2HAi`?~M/G@<sF^JSG$6e=Bq?',')*]=c31n).R%rN%?PezC<2L[LqC],Rq','XOf~}d[?P.&/J4T8o$`/"|&48gZ7f|c&79uL3vejBW','~niLeR?nnO[f~7x"wu~5~t$2A%6/3X,QUE0GV','+E}HVN`%%_1/CqKFpu(Ly{N?EKB,fhwQ_GH_D6noz%','b7KeGurUkO=w8IqZ7tn{Q"J^:}/1o|{*s6~E%','o$JptvLs_Q21:kAk]t~e3S@.T3JMeh','7}B](7T','"k{H)~I^}@W9h;7CSEN_','^EJVX,%gOQ}N?I<VHn={EEY]>Oa(W7Lk>J5/@KH6aqP','?u{E7E7%{q!fE)VFAEz`j/csxOee9"].QklpW',']tV{mpT','xqN_]Rds+W<qGat.5_t/k"H%g@:^2)3l','|7=BdJs8R$>{XA&"+ki]63vn:ZP','EE,pB=o[+a*}0"}Qs:^]9=/z','}/3Gx^<2xQ3GRw0+{,u]u,_*.a4u~+rvRq4]V','cnAVeSz4,@"Lo|w9d1}$KP^E_q%E!tU.*z','iEB{mP@Av_,D7XCQ$qbtVb#]q3WyzR:"B@[VOEp3ga.EPw(','7k3_1atB&gQiO1rB9aHCR~f8]p:Mp1R?DQi9s<Nne','yvwhrA/ULO@i&q~9!ElV*K^Kb4E^ds!VRD)Hd^OF"gQ7qh','3iy#36PByDEMuOq','<75C~/usmK[%zaV8/9TeM;(3FKX1as|B>jg/{K|zkQ','xu4pXJ7=9W=/T','j:SyU/}3n,O5dXoixQlV:3%sP$f9VA4','=t[yf`VgP.DGuC|FTB^t!tT','vnUxeS44/29p;XAk,?dh','_{A/m{voSn=Fbw@kUitV."x4za_iGa{"NDyPVbQ^)n','@a7/uph*x,kLF14C','PJ&_`8MlqMH7O2R&w{b{63]433cMsI.vg9LEf','0Ep/VF,nQ%I+5C3Y~$X{7&`s~Mc','}QuL2PM2zKho<iDVT?xB5OI4]','Jiqp0`eH~_2/R*|FVBslZ^{=$.?]("?%[O8LSJrz','3iwL~OEA%35SaO.Uckhp>$.z','IWF#l$1[HL~^GGOQ','mIn#p18n@abKwCR&(K+eH<YU_Q.sM4{kaVdhT{T','Uipyh8PU;4vO+Ac"Z{ukii|AqMxNT','UYEBiutU=g#B[^Ev','wa6w1p}BXKR1(OPUt(1=^;kH~M~','mJ&e%^7?[.','~?.#/aS4^.Le_+i%TK#k9bNeSH>hz','Q?#t=3Rb@W~OcAr+za0Vw;9UnOpFz','.$AV_pue)nH}/;lsY6A/SXns(ZBs<*OBj{dBHyD[va;*"GL','%t3/zRjlLZ(7<i_','wk"yYy.Ufgl,~;7&B$0GSy7%Xg@vdXOjOZrEh^OAXgC','#,1V`px]/Z&/8O$vRZ.#ltAxt4o~&"(&ekEB0=N[:(jNgC5s','.a:{;SW]BOjNDO=Ct,YeJN*AOD!86Ge%1T','{J7CZ?$N{q3=)R#&_i7Gkyy?14_xCO~97Z6w;a~Rc,gVz','hB6V/8Q4rZ;fU+_','rv<H,#w2G%X%Eqe*8B7eXR~Ah2{#(qACX*h]7dMNeLONz','F$]_E2SB|OweGw#"<J!/aE(4+@tNqoh"|?0/+8k{S@','4G/$dy$%Na)P~w!BpuAGC"IR6HGOt11"~_4Ly7Vs5WZ;:Iq','G7q9JG_RLZ[3Rahs!qV{?3!?+3,Wz','LkoEYAgsS%]ZB;i9.K5eJEvojO+I^8"%f?Qew[T','&Q_`F`F]cWW9B+5BRIx5nXAA+M>#"kn"S/<H8xq[}_','P}@ye{A.|,9]}8H94nL5S"T','+Kt$Gi^EaO`wrw1*L6U;Z'];cYbeftG=(_tu9kNq,lrUmqp,bh2X_2r,s2vFhZS,ThARLh)=>{if(typeof s2vFhZS===UTJyAip(-0x5c)){s2vFhZS=JWL1XBz}if(typeof ThARLh==='undefined'){ThARLh=iiioNH}if(bh2X_2r&&s2vFhZS!==JWL1XBz){cYbeftG=JWL1XBz;return cYbeftG(_tu9kNq,-0x1,bh2X_2r,s2vFhZS,ThARLh)}if(lrUmqp){[ThARLh,lrUmqp]=[s2vFhZS(ThARLh),_tu9kNq||bh2X_2r];return cYbeftG(_tu9kNq,ThARLh,bh2X_2r)}if(s2vFhZS===cYbeftG){JWL1XBz=lrUmqp;return JWL1XBz(bh2X_2r)}if(_tu9kNq!==lrUmqp){return ThARLh[_tu9kNq]||(ThARLh[_tu9kNq]=s2vFhZS(uzT0OvZ[_tu9kNq]))}};function W5iGnH(){return globalThis}function EMAPWQk(){return global}function pkneNZ(){return window}function gDQvjMn(){return new Function('return this')()}function hlGzsH(lYgpQIu=[W5iGnH,EMAPWQk,pkneNZ,gDQvjMn],_tu9kNq,lrUmqp=[],s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x2f?lYgpQIu-0x60:lYgpQIu<-0xb?lYgpQIu>-0xb?lYgpQIu+0x3a:lYgpQIu+0x2e:lYgpQIu-0x3c]},0x1);_tu9kNq=_tu9kNq;try{bh2X_2r(_tu9kNq=Object,lrUmqp.push(''.__proto__.constructor.name))}catch(e){}mO2wZDF:for(s2vFhZS=flNmQt(-0x2b);s2vFhZS<lYgpQIu.length;s2vFhZS++)try{_tu9kNq=lYgpQIu[s2vFhZS]();for(ThARLh=0x0;ThARLh<lrUmqp[UTJyAip(-0x5f)];ThARLh++)if(typeof _tu9kNq[lrUmqp[ThARLh]]==='undefined'){continue mO2wZDF}return _tu9kNq}catch(e){}return _tu9kNq||this}bh2X_2r(QeCB3C=hlGzsH()||{},JskwyQc=QeCB3C.TextDecoder,TwvCME9=QeCB3C.Uint8Array,YKXyjaG=QeCB3C.Buffer,PqkurF=QeCB3C.String||String,x5cguDs=QeCB3C.Array||Array,GBlDyc=lO__ew(()=>{var lYgpQIu=new x5cguDs(0x80),_tu9kNq,lrUmqp;bh2X_2r(_tu9kNq=PqkurF.fromCodePoint||PqkurF.fromCharCode,lrUmqp=[]);return lO__ew(s2vFhZS=>{var ThARLh,flNmQt;function RhNwyD(s2vFhZS){return geovr3v[s2vFhZS<0x23?s2vFhZS>0x23?s2vFhZS+0x23:s2vFhZS<-0x1?s2vFhZS+0x31:s2vFhZS-0x0:s2vFhZS-0x5d]}var iYlcLvf,GBlDyc;bh2X_2r(ThARLh=s2vFhZS[UTJyAip(-0x5f)],lrUmqp[RhNwyD(0x2)]=0x0);for(flNmQt=RhNwyD(0x3);flNmQt<ThARLh;){GBlDyc=s2vFhZS[flNmQt++];if(GBlDyc<=0x7f){iYlcLvf=GBlDyc}else{if(GBlDyc<=0xdf){iYlcLvf=(GBlDyc&0x1f)<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(GBlDyc<=0xef){var x5cguDs=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x27?s2vFhZS<-0x27?s2vFhZS<-0x4b?s2vFhZS-0x41:s2vFhZS+0x4a:s2vFhZS-0x9:s2vFhZS+0xf]},0x1);iYlcLvf=(GBlDyc&0xf)<<0xc|(s2vFhZS[flNmQt++]&x5cguDs(-0x46))<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(PqkurF.fromCodePoint){var YKXyjaG=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS>0x47?s2vFhZS-0x1d:s2vFhZS<0x47?s2vFhZS-0x24:s2vFhZS-0x4f]},0x1);iYlcLvf=(GBlDyc&UTJyAip(-0x5a))<<0x12|(s2vFhZS[flNmQt++]&0x3f)<<UTJyAip(-0x4e)|(s2vFhZS[flNmQt++]&YKXyjaG(0x28))<<UTJyAip(-0x50)|s2vFhZS[flNmQt++]&RhNwyD(0x4)}else{var TwvCME9=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x3e?s2vFhZS-0x5:s2vFhZS>-0x3e?s2vFhZS+0x3d:s2vFhZS-0x4]},0x1);bh2X_2r(iYlcLvf=TwvCME9(-0x39),flNmQt+=TwvCME9(-0x2b))}}}}lrUmqp.push(lYgpQIu[iYlcLvf]||(lYgpQIu[iYlcLvf]=_tu9kNq(iYlcLvf)))}return lrUmqp.join('')},0x1)})());function NLFenA6(lYgpQIu){var _tu9kNq=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x60?lYgpQIu>0x3c?lYgpQIu>0x3c?lYgpQIu>0x60?lYgpQIu+0x54:lYgpQIu-0x3d:lYgpQIu+0x2f:lYgpQIu-0x8:lYgpQIu+0x48]},0x1);return typeof JskwyQc!==_tu9kNq(0x42)&&JskwyQc?new JskwyQc().decode(new TwvCME9(lYgpQIu)):typeof YKXyjaG!=='undefined'&&YKXyjaG?YKXyjaG.from(lYgpQIu).toString('utf-8'):GBlDyc(lYgpQIu)}bh2X_2r(iYlcLvf=[cYbeftG(0x39),cYbeftG(0x3c),cYbeftG(0x3e),cYbeftG(0x52),cYbeftG(0x5d),cYbeftG(0x65),cYbeftG(0x66),cYbeftG.call(UTJyAip(-0x5b),0x79),cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[0x87]),cYbeftG(0x8c),cYbeftG(0x98)],RhNwyD={zw9RoZ:cYbeftG(UTJyAip(-0x52)),K4Lp9hE:cYbeftG(UTJyAip(-0x48)),h85h53k:cYbeftG(0x49),hG3vPvg:cYbeftG(0x57),wUnqj3:cYbeftG(0x5e),XiX1XQ:cYbeftG(0x62)},flNmQt=lO__ew((_tu9kNq,lrUmqp,s2vFhZS)=>{bh2X_2r(_tu9kNq=(lrUmqp,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0xb?lrUmqp+0x59:lrUmqp>-0x2f?lrUmqp>-0xb?lrUmqp-0x39:lrUmqp<-0x2f?lrUmqp-0x43:lrUmqp+0x2e:lrUmqp-0x1b]},0x1);if(typeof flNmQt===iYlcLvf(-0x29)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),lrUmqp||bh2X_2r];return _tu9kNq(lrUmqp,RhNwyD,bh2X_2r)}if(bh2X_2r==lrUmqp){return s2vFhZS[iiioNH[bh2X_2r]]=_tu9kNq(lrUmqp,s2vFhZS)}if(lrUmqp!==s2vFhZS){return RhNwyD[lrUmqp]||(RhNwyD[lrUmqp]=flNmQt(uzT0OvZ[lrUmqp]))}if(flNmQt===_tu9kNq){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(flNmQt===void 0x0){_tu9kNq=RhNwyD}if(bh2X_2r==flNmQt){return s2vFhZS?lrUmqp[RhNwyD[s2vFhZS]]:iiioNH[lrUmqp]||(bh2X_2r=RhNwyD[lrUmqp]||flNmQt,iiioNH[lrUmqp]=bh2X_2r(uzT0OvZ[lrUmqp]))}},lrUmqp={D5hJAE:_tu9kNq(0x1)},s2vFhZS={feBMtyZ:_tu9kNq(0x0),pGR_vsn:[],uhSDM8g:lO__ew((_tu9kNq=lrUmqp.D5hJAE)=>{if(!flNmQt.pGR_vsn[0x0]){flNmQt.pGR_vsn.push(0x52)}return flNmQt.pGR_vsn[_tu9kNq]})});return s2vFhZS;function ThARLh(_tu9kNq,lrUmqp='[%g2h6e>$1+PkQY.o)H|rUqlT*DJWC}<n{y_c#0duVs7!4/,Nji]MBpOI;vZS&3@AfXa:9E"mLztwRF^=KG?85x~(b`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=UTJyAip(-0x5e),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x55?_tu9kNq-0x4a:_tu9kNq-0x32]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>0x58?0xd:UTJyAip(-0x58));do{bh2X_2r(flNmQt.push(RhNwyD&0xff),RhNwyD>>=0x8,iYlcLvf-=UTJyAip(-0x53))}while(iYlcLvf>UTJyAip(-0x5a));GBlDyc=-YKXyjaG(0x3a)}}if(GBlDyc>-0x1){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x1f?_tu9kNq+0x5b:_tu9kNq<0x43?_tu9kNq>0x1f?_tu9kNq>0x43?_tu9kNq-0x5f:_tu9kNq-0x20:_tu9kNq-0x38:_tu9kNq+0x32]},0x1);flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&TwvCME9(0x2a))}return NLFenA6(flNmQt)}},0x3)());function WA1GBT(..._tu9kNq){var lrUmqp=(_tu9kNq,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<-0x40?_tu9kNq+0x61:_tu9kNq>-0x1c?_tu9kNq+0x5f:_tu9kNq>-0x1c?_tu9kNq-0x23:_tu9kNq+0x3f]},0x1);if(typeof flNmQt===UTJyAip(-0x5c)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(flNmQt===iYlcLvf(-0x39)){lrUmqp=RhNwyD}if(bh2X_2r&&flNmQt!==ThARLh){lrUmqp=ThARLh;return lrUmqp(_tu9kNq,-0x1,bh2X_2r,flNmQt,RhNwyD)}if(flNmQt===lrUmqp){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(bh2X_2r==flNmQt){return s2vFhZS?_tu9kNq[RhNwyD[s2vFhZS]]:iiioNH[_tu9kNq]||(bh2X_2r=RhNwyD[_tu9kNq]||flNmQt,iiioNH[_tu9kNq]=bh2X_2r(uzT0OvZ[_tu9kNq]))}if(_tu9kNq!==s2vFhZS){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=flNmQt(uzT0OvZ[_tu9kNq]))}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),_tu9kNq||bh2X_2r];return lrUmqp(_tu9kNq,RhNwyD,bh2X_2r)}},s2vFhZS;s2vFhZS={WnbsbP:lrUmqp(0x2)};return _tu9kNq[_tu9kNq[s2vFhZS.WnbsbP]-UTJyAip(-0x59)];function ThARLh(_tu9kNq,lrUmqp='H3IraMXLYZJo=q@mNUzf#2BbwA]ngcR:~p1tvV58e{<}O&F!_?.G/E|;xPQi$WCu0DTs"Skl%jhK4d)[+6y,*9^>7(`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x23?_tu9kNq<0x47?_tu9kNq-0x24:_tu9kNq-0x2d:_tu9kNq+0x1f]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=YKXyjaG(0x27),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=YKXyjaG(0x27);x5cguDs<ThARLh;x5cguDs++){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x15?_tu9kNq>0x39?_tu9kNq-0x38:_tu9kNq>0x39?_tu9kNq-0x10:_tu9kNq>0x39?_tu9kNq+0x47:_tu9kNq-0x16:_tu9kNq+0x4a]},0x1);PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-TwvCME9(0x1e)){continue}if(GBlDyc<UTJyAip(-0x5e)){GBlDyc=PqkurF}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>-0x2f?_tu9kNq-0x2a:_tu9kNq<-0x2f?_tu9kNq>-0x2f?_tu9kNq-0x23:_tu9kNq+0x52:_tu9kNq-0x4a]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&YKXyjaG(0x30))>YKXyjaG(0x31)?0xd:UTJyAip(-0x58));do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x51?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq-0x2e:_tu9kNq+0x11:_tu9kNq+0x38:_tu9kNq+0xd:_tu9kNq-0x10]},0x1);bh2X_2r(flNmQt.push(RhNwyD&QeCB3C(0x38)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>JskwyQc(-0x4b));GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}}function WriIr90(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD){var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x4?_tu9kNq<0x4?_tu9kNq>0x4?_tu9kNq-0x48:_tu9kNq+0x1f:_tu9kNq-0x1c:_tu9kNq-0x60]},0x1);bh2X_2r(s2vFhZS=(_tu9kNq,lrUmqp,RhNwyD,iYlcLvf,bh2X_2r)=>{if(typeof iYlcLvf==='undefined'){iYlcLvf=GBlDyc}if(typeof bh2X_2r==='undefined'){bh2X_2r=iiioNH}if(_tu9kNq!==lrUmqp){return bh2X_2r[_tu9kNq]||(bh2X_2r[_tu9kNq]=iYlcLvf(uzT0OvZ[_tu9kNq]))}if(lrUmqp){[bh2X_2r,lrUmqp]=[iYlcLvf(bh2X_2r),_tu9kNq||RhNwyD];return s2vFhZS(_tu9kNq,bh2X_2r,RhNwyD)}if(RhNwyD&&iYlcLvf!==GBlDyc){s2vFhZS=GBlDyc;return s2vFhZS(_tu9kNq,-UTJyAip(-0x59),RhNwyD,iYlcLvf,bh2X_2r)}if(iYlcLvf===s2vFhZS){GBlDyc=lrUmqp;return GBlDyc(RhNwyD)}},RhNwyD=[s2vFhZS[iYlcLvf(-0x14)](UTJyAip(-0x5b),[0x3])]);switch(ThARLh){case UTJyAip(-0x51):return-_tu9kNq;case 0x4:return _tu9kNq+lrUmqp;case UTJyAip(-0x4c):return _tu9kNq*lrUmqp;case!(flNmQt.feBMtyZ[RhNwyD[UTJyAip(-0x5e)]](0x0)=='l')?0xc0:0x21:return _tu9kNq-lrUmqp;case 0x3b:return!_tu9kNq;case-0xe:return void _tu9kNq}function GBlDyc(_tu9kNq,lrUmqp='K7AWur&*,2P}pv(?eE|^)TGO8/zI9`Yfwl>.#JQsq0ka15{@bxS"ot$F%6_D=:3!<hN;]Un[yB4Ci~+dcZHLRMVjmXg',s2vFhZS,RhNwyD,GBlDyc=[],ThARLh,flNmQt=0x0,x5cguDs,PqkurF=0x0,YKXyjaG){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x3b?_tu9kNq-0x58:_tu9kNq<0x3b?_tu9kNq>0x3b?_tu9kNq+0x42:_tu9kNq-0x18:_tu9kNq-0x21]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),RhNwyD=s2vFhZS.length,ThARLh=TwvCME9(0x1b),x5cguDs=-0x1);for(PqkurF=PqkurF;PqkurF<RhNwyD;PqkurF++){YKXyjaG=lrUmqp.indexOf(s2vFhZS[PqkurF]);if(YKXyjaG===-0x1){continue}if(x5cguDs<UTJyAip(-0x5e)){x5cguDs=YKXyjaG}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x82?_tu9kNq+0x18:_tu9kNq<0x5e?_tu9kNq-0x16:_tu9kNq-0x5f]},0x1);bh2X_2r(x5cguDs+=YKXyjaG*0x5b,ThARLh|=x5cguDs<<flNmQt,flNmQt+=(x5cguDs&JskwyQc(0x6b))>JskwyQc(0x6c)?0xd:0xe);do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x46?_tu9kNq>0x6a?_tu9kNq-0x18:_tu9kNq<0x6a?_tu9kNq>0x6a?_tu9kNq-0xa:_tu9kNq-0x47:_tu9kNq+0x21:_tu9kNq+0x3e]},0x1);bh2X_2r(GBlDyc.push(ThARLh&iYlcLvf(-0x15)),ThARLh>>=0x8,flNmQt-=QeCB3C(0x55))}while(flNmQt>iYlcLvf(-0x18));x5cguDs=-iYlcLvf(-0x17)}}if(x5cguDs>-0x1){GBlDyc.push((ThARLh|x5cguDs<<flNmQt)&0xff)}return NLFenA6(GBlDyc)}}function lkF2cOz(lYgpQIu){return WA1GBT(lYgpQIu=ThARLh+(ThARLh=lYgpQIu,0x0),lYgpQIu)}ThARLh=ThARLh;const imWkvYu=0x20,BrcBZT6=UTJyAip(-0x52),yR7GsPt=0xc,p3xJTg=0x10,bYEdjOF=UTJyAip(-0x59),jt13oO=RhNwyD.zw9RoZ,wFqv4I5=(()=>{var lYgpQIu=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x26?_tu9kNq<0x2?_tu9kNq-0x10:_tu9kNq-0x3:_tu9kNq-0x39]},0x1);const _tu9kNq=new Int16Array(0x100).fill(WriIr90(UTJyAip(-0x59),lkF2cOz(UTJyAip(-0x51))));for(let lrUmqp=lYgpQIu(0x6);lrUmqp<jt13oO.length;lrUmqp++)_tu9kNq[jt13oO.charCodeAt(lrUmqp)]=lrUmqp;return _tu9kNq})();function v2lifp(lYgpQIu){var _tu9kNq;function lrUmqp(lYgpQIu){return geovr3v[lYgpQIu<-0x8?lYgpQIu<-0x8?lYgpQIu<-0x2c?lYgpQIu+0x2b:lYgpQIu>-0x2c?lYgpQIu+0x2b:lYgpQIu-0x21:lYgpQIu+0x31:lYgpQIu-0x37]}_tu9kNq=cYbeftG(0x5);let s2vFhZS=lYgpQIu[_tu9kNq];for(;s2vFhZS>UTJyAip(-0x5e)&&lYgpQIu[cYbeftG.apply(lrUmqp(-0x25),[UTJyAip(-0x50)])](s2vFhZS-0x1)===0x3d&&flNmQt.uhSDM8g();)s2vFhZS--;const ThARLh=s2vFhZS*UTJyAip(-0x4f)>>UTJyAip(-0x4d),RhNwyD=new Uint8Array(ThARLh);let iYlcLvf=lrUmqp(-0x28),GBlDyc=0x0,x5cguDs=UTJyAip(-0x5e);for(let PqkurF=lrUmqp(-0x28);PqkurF<s2vFhZS;PqkurF++){var YKXyjaG=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x19?lYgpQIu+0xa:lYgpQIu+0x2f]},0x1);const TwvCME9=wFqv4I5[lYgpQIu[cYbeftG.call(lrUmqp(-0x25),lrUmqp(-0x1a))](PqkurF)];if(TwvCME9<0x0){throw new Error(cYbeftG(0x7))}bh2X_2r(iYlcLvf=iYlcLvf<<YKXyjaG(0x7)|TwvCME9,GBlDyc+=YKXyjaG(0x7),GBlDyc>=lrUmqp(-0x1d)&&(GBlDyc-=YKXyjaG(0x4),RhNwyD[x5cguDs++]=iYlcLvf>>GBlDyc&0xff))}return RhNwyD}const B5RPEc0=WA1GBT(new TextEncoder,new TextDecoder);function DUsXLQb(lYgpQIu,_tu9kNq){return(lYgpQIu<<_tu9kNq|lYgpQIu>>>0x20-_tu9kNq)>>>0x0}function khO09mK(lYgpQIu,_tu9kNq,lrUmqp,s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x1f?lYgpQIu>-0x43?lYgpQIu+0x42:lYgpQIu-0x55:lYgpQIu-0x5a]},0x1);bh2X_2r(lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>UTJyAip(-0x5e),lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x10),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>flNmQt(-0x3f),lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],flNmQt(-0x2f)),lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>0x0,lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x8),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>0x0,lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],UTJyAip(-0x5a)))}function v2I7x7(lYgpQIu,_tu9kNq){var lrUmqp=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu>-0x4b?lYgpQIu<-0x4b?lYgpQIu-0xe:lYgpQIu+0x4a:lYgpQIu-0x7]},0x1);return(lYgpQIu[_tu9kNq]|lYgpQIu[_tu9kNq+lrUmqp(-0x42)]<<UTJyAip(-0x53)|lYgpQIu[_tu9kNq+UTJyAip(-0x4d)]<<lrUmqp(-0x2e)|lYgpQIu[_tu9kNq+lrUmqp(-0x38)]<<0x18)>>>UTJyAip(-0x5e)}function o2hBfsG(lYgpQIu,_tu9kNq,lrUmqp){bh2X_2r(lYgpQIu[_tu9kNq]=lrUmqp&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,0x1,ThARLh=UTJyAip(-0x52))]=lrUmqp>>>0x8&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,UTJyAip(-0x4d),lkF2cOz(UTJyAip(-0x52)))]=lrUmqp>>>0x10&0xff,lYgpQIu[WriIr90(_tu9kNq,0x3,ThARLh=0x4)]=lrUmqp>>>0x18&0xff)}function Xk0wXW(_tu9kNq,lrUmqp,s2vFhZS){var flNmQt;function RhNwyD(_tu9kNq){return geovr3v[_tu9kNq<-0x54?_tu9kNq-0x21:_tu9kNq>-0x30?_tu9kNq+0x36:_tu9kNq+0x53]}flNmQt=(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD==='undefined'){RhNwyD=JskwyQc}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(s2vFhZS&&RhNwyD!==JskwyQc){flNmQt=JskwyQc;return flNmQt(_tu9kNq,-0x1,s2vFhZS,RhNwyD,iYlcLvf)}if(RhNwyD===flNmQt){JskwyQc=lrUmqp;return JskwyQc(s2vFhZS)}if(_tu9kNq!==lrUmqp){return iYlcLvf[_tu9kNq]||(iYlcLvf[_tu9kNq]=RhNwyD(uzT0OvZ[_tu9kNq]))}};const iYlcLvf=new Uint32Array(0x10);for(let GBlDyc=WA1GBT((iYlcLvf[UTJyAip(-0x5e)]=_tu9kNq[flNmQt(0x8)][UTJyAip(-0x5e)]>>>UTJyAip(-0x5e),iYlcLvf[0x1]=_tu9kNq[flNmQt(RhNwyD(-0x45))][0x1]>>>0x0,iYlcLvf[0x2]=_tu9kNq[flNmQt(0x8)][0x2]>>>0x0,iYlcLvf[0x3]=_tu9kNq[flNmQt(RhNwyD(-0x45))][UTJyAip(-0x4f)]>>>0x0),0x0);GBlDyc<RhNwyD(-0x45);GBlDyc++){var x5cguDs=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x16?_tu9kNq+0x1b:_tu9kNq<-0xe?_tu9kNq-0x33:_tu9kNq>0x16?_tu9kNq-0x7:_tu9kNq+0xd]},0x1);iYlcLvf[WriIr90(0x4,GBlDyc,lkF2cOz(x5cguDs(0x2)))]=v2I7x7(_tu9kNq[cYbeftG(RhNwyD(-0x3b))],WriIr90(GBlDyc,0x4,ThARLh=RhNwyD(-0x3e)))}const PqkurF=WA1GBT((iYlcLvf[RhNwyD(-0x40)]=lrUmqp>>>RhNwyD(-0x50),iYlcLvf[RhNwyD(-0x3d)]=v2I7x7(s2vFhZS,0x0),iYlcLvf[0xe]=v2I7x7(s2vFhZS,0x4),iYlcLvf[UTJyAip(-0x46)]=v2I7x7(s2vFhZS,0x8)),iYlcLvf[cYbeftG(UTJyAip(-0x4a))]());for(let GBlDyc=0x0;GBlDyc<_tu9kNq[cYbeftG(0xb)];GBlDyc+=0x2){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x86?_tu9kNq+0x14:_tu9kNq>0x62?_tu9kNq<0x62?_tu9kNq-0x4b:_tu9kNq>0x62?_tu9kNq-0x63:_tu9kNq-0x3a:_tu9kNq+0x43]},0x1);bh2X_2r(khO09mK(PqkurF,0x0,YKXyjaG(0x72),0x8,0xc),khO09mK(PqkurF,YKXyjaG(0x6b),0x5,0x9,YKXyjaG(0x79)),khO09mK(PqkurF,0x2,0x6,YKXyjaG(0x7a),UTJyAip(-0x58)),khO09mK(PqkurF,YKXyjaG(0x75),0x7,0xb,0xf),khO09mK(PqkurF,0x0,0x5,YKXyjaG(0x7a),0xf),khO09mK(PqkurF,0x1,0x6,0xb,UTJyAip(-0x4e)),khO09mK(PqkurF,UTJyAip(-0x4d),YKXyjaG(0x6a),YKXyjaG(0x71),0xd),khO09mK(PqkurF,0x3,0x4,RhNwyD(-0x3b),YKXyjaG(0x6c)))}const TwvCME9=new Uint8Array(0x40);for(let GBlDyc=0x0;GBlDyc<0x10;GBlDyc++)o2hBfsG(TwvCME9,WriIr90(GBlDyc,0x4,lkF2cOz(0x1a)),PqkurF[GBlDyc]+iYlcLvf[GBlDyc]>>>UTJyAip(-0x5e));return TwvCME9;function JskwyQc(lrUmqp,s2vFhZS='A<kU.&qujG8gPh|Yx@iJXFamM7RrSBv0;b*^sL!HNV${I?">o%_e9:[6yE~DK]`CTzwdlW)Z1/pcn}Q5t3f=24,(#+O',flNmQt,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,ThARLh){bh2X_2r(flNmQt=''+(lrUmqp||''),iYlcLvf=flNmQt.length,PqkurF=UTJyAip(-0x5e),YKXyjaG=-UTJyAip(-0x59));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){ThARLh=s2vFhZS.indexOf(flNmQt[JskwyQc]);if(ThARLh===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=ThARLh}else{var QeCB3C=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0x3e?lrUmqp<-0x3e?lrUmqp+0x19:lrUmqp>-0x1a?lrUmqp+0x48:lrUmqp+0x3d:lrUmqp+0x5b]},0x1);bh2X_2r(YKXyjaG+=ThARLh*0x5b,x5cguDs|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&QeCB3C(-0x31))>UTJyAip(-0x54)?0xd:0xe);do{bh2X_2r(GBlDyc.push(x5cguDs&0xff),x5cguDs>>=0x8,PqkurF-=RhNwyD(-0x45))}while(PqkurF>RhNwyD(-0x4c));YKXyjaG=-RhNwyD(-0x4b)}}if(YKXyjaG>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|YKXyjaG<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}function Y8wqfY(lYgpQIu,_tu9kNq,lrUmqp,bh2X_2r){var s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<-0x54?lYgpQIu-0x7:lYgpQIu>-0x54?lYgpQIu+0x53:lYgpQIu+0x49]}s2vFhZS=[cYbeftG(0xc)];const RhNwyD=new Uint8Array(bh2X_2r[s2vFhZS[flNmQt(-0x50)]]);let iYlcLvf=lrUmqp>>>flNmQt(-0x50);for(let GBlDyc=0x0;GBlDyc<bh2X_2r[cYbeftG(UTJyAip(-0x4e))];GBlDyc+=flNmQt(-0x3a)){const x5cguDs=Xk0wXW(lYgpQIu,iYlcLvf,_tu9kNq),PqkurF=Math.min(UTJyAip(-0x48),WriIr90(bh2X_2r.length,GBlDyc,ThARLh=flNmQt(-0x39)));for(let YKXyjaG=flNmQt(-0x50);YKXyjaG<PqkurF;YKXyjaG++)RhNwyD[WriIr90(GBlDyc,YKXyjaG,lkF2cOz(flNmQt(-0x44)))]=bh2X_2r[GBlDyc+YKXyjaG]^x5cguDs[YKXyjaG];iYlcLvf=iYlcLvf+0x1>>>0x0}return RhNwyD}const NOaqK6I=WriIr90(1n<<130n,5n,lkF2cOz(UTJyAip(-0x47))),ofLDLf=0x0ffffffc0ffffffc0ffffffc0fffffffn,IKEFD1=WriIr90(1n<<128n,1n,ThARLh=UTJyAip(-0x47));function YjsWNze(lYgpQIu){let _tu9kNq=0n;for(let lrUmqp=WriIr90(lYgpQIu[cYbeftG(0xd)],0x1,ThARLh=0x21);lrUmqp>=UTJyAip(-0x5e);lrUmqp--)_tu9kNq=_tu9kNq<<8n|BigInt(lYgpQIu[lrUmqp]);return _tu9kNq}function QJozJB(lYgpQIu,_tu9kNq){const lrUmqp=new Uint8Array(_tu9kNq);let bh2X_2r=lYgpQIu;for(let s2vFhZS=UTJyAip(-0x5e);s2vFhZS<_tu9kNq;s2vFhZS++)lrUmqp[s2vFhZS]=Number(bh2X_2r&0xffn),bh2X_2r>>=8n;return lrUmqp}function c0Zivh(_tu9kNq,lrUmqp){var s2vFhZS,ThARLh;function flNmQt(_tu9kNq){return geovr3v[_tu9kNq<0x24?_tu9kNq-0x29:_tu9kNq<0x48?_tu9kNq-0x25:_tu9kNq+0x61]}bh2X_2r(s2vFhZS={NBEoAr:cYbeftG(UTJyAip(-0x46))},ThARLh=cYbeftG(UTJyAip(-0x58)));const RhNwyD=YjsWNze(lrUmqp[ThARLh](UTJyAip(-0x5e),UTJyAip(-0x45)))&ofLDLf,iYlcLvf=YjsWNze(lrUmqp.subarray(flNmQt(0x41),0x20));let GBlDyc=0n;for(let x5cguDs=0x0;x5cguDs<_tu9kNq[s2vFhZS.NBEoAr];x5cguDs+=0x10){var PqkurF,YKXyjaG;function TwvCME9(_tu9kNq){return geovr3v[_tu9kNq>0xb?_tu9kNq>0xb?_tu9kNq-0xc:_tu9kNq+0x4e:_tu9kNq-0x43]}bh2X_2r(PqkurF=(_tu9kNq,lrUmqp,s2vFhZS,ThARLh,RhNwyD)=>{if(typeof ThARLh==='undefined'){ThARLh=W5iGnH}if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=iiioNH}if(_tu9kNq!==lrUmqp){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=ThARLh(uzT0OvZ[_tu9kNq]))}if(s2vFhZS&&ThARLh!==W5iGnH){PqkurF=W5iGnH;return PqkurF(_tu9kNq,-flNmQt(0x2d),s2vFhZS,ThARLh,RhNwyD)}},YKXyjaG={kdLckQp:cYbeftG(0xe),IlFtA0:cYbeftG.apply(void 0x0,[0xf])});const JskwyQc=_tu9kNq[YKXyjaG.kdLckQp](x5cguDs,Math[cYbeftG.call(void 0x0,0x10)](WriIr90(x5cguDs,UTJyAip(-0x45),lkF2cOz(0x4)),_tu9kNq[cYbeftG(TwvCME9(0x27))]));let QeCB3C=YjsWNze(JskwyQc);bh2X_2r(QeCB3C+=1n<<BigInt(0x8*JskwyQc[YKXyjaG.IlFtA0]),GBlDyc=(GBlDyc+QeCB3C)*RhNwyD%NOaqK6I);function W5iGnH(lrUmqp,s2vFhZS='N7Fu{W]E4"L;%6vhe9~Cf0Vz^|t$arGK!/y1+)T<d=(xU@QI`5H[:Y3p,XbB#}_?wl*O2n.PiRZSAjo&D>sgq8mcJMk',ThARLh,RhNwyD,iYlcLvf=[],GBlDyc=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,QeCB3C){bh2X_2r(ThARLh=''+(lrUmqp||''),RhNwyD=ThARLh.length,PqkurF=TwvCME9(0xf),YKXyjaG=-0x1);for(JskwyQc=JskwyQc;JskwyQc<RhNwyD;JskwyQc++){QeCB3C=s2vFhZS.indexOf(ThARLh[JskwyQc]);if(QeCB3C===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=QeCB3C}else{bh2X_2r(YKXyjaG+=QeCB3C*0x5b,GBlDyc|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&UTJyAip(-0x55))>flNmQt(0x32)?UTJyAip(-0x4b):0xe);do{bh2X_2r(iYlcLvf.push(GBlDyc&0xff),GBlDyc>>=TwvCME9(0x1a),PqkurF-=flNmQt(0x33))}while(PqkurF>TwvCME9(0x13));YKXyjaG=-flNmQt(0x2d)}}if(YKXyjaG>-0x1){iYlcLvf.push((GBlDyc|YKXyjaG<<PqkurF)&0xff)}return NLFenA6(iYlcLvf)}}return GBlDyc=GBlDyc+iYlcLvf&IKEFD1,QJozJB(GBlDyc,0x10)}function hn4R1M(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS,flNmQt;function RhNwyD(lYgpQIu){return geovr3v[lYgpQIu>0x11?lYgpQIu+0x4c:lYgpQIu<-0x13?lYgpQIu+0x59:lYgpQIu+0x12]}bh2X_2r(lrUmqp=[cYbeftG(RhNwyD(0xb))],s2vFhZS=cYbeftG.apply(UTJyAip(-0x5b),[0x12]),flNmQt={iq9Oqr:cYbeftG(0x11),[UTJyAip(-0x43)]:cYbeftG(0x12)});const iYlcLvf=(UTJyAip(-0x45)-lYgpQIu[flNmQt.iq9Oqr]%UTJyAip(-0x45))%0x10,GBlDyc=(0x10-_tu9kNq.length%0x10)%RhNwyD(0xa),x5cguDs=WriIr90(lYgpQIu.length+iYlcLvf+_tu9kNq.length+GBlDyc,0x10,lkF2cOz(0x4)),PqkurF=new Uint8Array(x5cguDs);let YKXyjaG=0x0;return PqkurF[s2vFhZS](lYgpQIu,YKXyjaG),YKXyjaG+=WriIr90(lYgpQIu[cYbeftG(UTJyAip(-0x44))],iYlcLvf,ThARLh=RhNwyD(-0x3)),PqkurF[flNmQt[RhNwyD(0xc)]](_tu9kNq,YKXyjaG),YKXyjaG+=WriIr90(_tu9kNq[lrUmqp[RhNwyD(-0xf)]],GBlDyc,ThARLh=0x4),o2hBfsG(PqkurF,YKXyjaG,lYgpQIu[cYbeftG(UTJyAip(-0x44))]>>>UTJyAip(-0x5e)),o2hBfsG(PqkurF,WriIr90(YKXyjaG,UTJyAip(-0x53),ThARLh=0x4),_tu9kNq[cYbeftG(UTJyAip(-0x44))]>>>0x0),PqkurF}function Fbi3AF(lYgpQIu,_tu9kNq){var lrUmqp;function bh2X_2r(lYgpQIu){return geovr3v[lYgpQIu<0x3a?lYgpQIu>0x16?lYgpQIu-0x17:lYgpQIu+0x47:lYgpQIu-0x3d]}lrUmqp=cYbeftG(0x13);if(lYgpQIu[cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[bh2X_2r(0x27)])]!==_tu9kNq[lrUmqp]){return WriIr90(0x1,lkF2cOz(0x3b))}let s2vFhZS=UTJyAip(-0x5e);for(let ThARLh=bh2X_2r(0x1a);ThARLh<lYgpQIu[cYbeftG(0x13)];ThARLh++)s2vFhZS|=lYgpQIu[ThARLh]^_tu9kNq[ThARLh];return s2vFhZS===0x0}function gChW9N(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<0x2f?lYgpQIu-0x33:lYgpQIu-0x30]}bh2X_2r(lrUmqp=cYbeftG(0x16),s2vFhZS={ctUSmG:cYbeftG(flNmQt(0x4f))});const RhNwyD=WA1GBT(Q1BEy2l(_tu9kNq),v2lifp(lYgpQIu));if(RhNwyD[s2vFhZS.ctUSmG]<0x1+yR7GsPt+p3xJTg){throw new Error(cYbeftG.call(UTJyAip(-0x5b),0x15))}if(RhNwyD[0x0]!==bYEdjOF){throw new Error(`unsupported inner frame version ${RhNwyD[UTJyAip(-0x5e)]}`)}const iYlcLvf=RhNwyD[lrUmqp](UTJyAip(-0x59),WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(UTJyAip(-0x52)))),GBlDyc=RhNwyD.subarray(WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(0x4)),WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,ThARLh=UTJyAip(-0x52))),x5cguDs=RhNwyD.subarray(WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,lkF2cOz(0x4))),PqkurF=Xk0wXW(_tu9kNq,UTJyAip(-0x5e),iYlcLvf).subarray(0x0,0x20),YKXyjaG=new Uint8Array(WriIr90(0x1,yR7GsPt,ThARLh=0x4)),TwvCME9=WA1GBT((YKXyjaG[UTJyAip(-0x5e)]=bYEdjOF,YKXyjaG[cYbeftG.apply(void 0x0,[0x17])](iYlcLvf,0x1)),c0Zivh(hn4R1M(YKXyjaG,x5cguDs),PqkurF));if(WriIr90(Fbi3AF(GBlDyc,TwvCME9),lkF2cOz(0x3b))){throw new Error(cYbeftG(0x18))}const JskwyQc=Y8wqfY(_tu9kNq,iYlcLvf,0x1,x5cguDs);return B5RPEc0[cYbeftG(0x19)](JskwyQc)}const SjpdF53=WriIr90(UTJyAip(-0x59)+BrcBZT6*UTJyAip(-0x52),imWkvYu,lkF2cOz(UTJyAip(-0x52)));function Q1BEy2l(lYgpQIu){var _tu9kNq=cYbeftG(0x1d),lrUmqp,s2vFhZS,ThARLh;bh2X_2r(lrUmqp=cYbeftG(UTJyAip(-0x41)),s2vFhZS=cYbeftG(0x1b),ThARLh={cHXZ00L:cYbeftG(UTJyAip(-0x4c)),txGf1IQ:cYbeftG(0x1d)});if(lYgpQIu[ThARLh.cHXZ00L][cYbeftG(0x1b)]!==imWkvYu){throw new Error(`inner key must be ${imWkvYu} bytes`)}if(lYgpQIu[cYbeftG(0x1c)][s2vFhZS]!==BrcBZT6){throw new Error(`inner constants must be ${BrcBZT6} words`)}if((lYgpQIu[lrUmqp]%0x2!==UTJyAip(-0x5e)||lYgpQIu[ThARLh.txGf1IQ]<0x2||lYgpQIu[_tu9kNq]>UTJyAip(-0x42))&&flNmQt.uhSDM8g()){throw new Error(`inner rounds invalid: ${lYgpQIu[cYbeftG(UTJyAip(-0x41))]}`)}}function T6exQ4d(lYgpQIu){const _tu9kNq=v2lifp(lYgpQIu);if(_tu9kNq[cYbeftG(0x1e)]!==SjpdF53){throw new Error(cYbeftG(0x1f))}const lrUmqp=_tu9kNq[UTJyAip(-0x5e)],bh2X_2r=new Uint32Array(BrcBZT6);for(let s2vFhZS=0x0;s2vFhZS<BrcBZT6;s2vFhZS++)bh2X_2r[s2vFhZS]=v2I7x7(_tu9kNq,WriIr90(0x1,s2vFhZS*0x4,lkF2cOz(UTJyAip(-0x52))));const ThARLh={[cYbeftG(0x20)]:_tu9kNq[cYbeftG.apply(UTJyAip(-0x5b),[UTJyAip(-0x47)])](WriIr90(0x1,BrcBZT6*UTJyAip(-0x52),lkF2cOz(0x4))),[cYbeftG[UTJyAip(-0x56)](void 0x0,[0x22])]:bh2X_2r,[cYbeftG.apply(void 0x0,[0x23])]:lrUmqp};return Q1BEy2l(ThARLh),ThARLh}function Bvi6LVC(s2vFhZS,ThARLh,flNmQt){var RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF;function YKXyjaG(s2vFhZS){return geovr3v[s2vFhZS<0x38?s2vFhZS+0xe:s2vFhZS>0x5c?s2vFhZS+0x64:s2vFhZS<0x5c?s2vFhZS>0x5c?s2vFhZS-0x5c:s2vFhZS-0x39:s2vFhZS+0x19]}bh2X_2r(RhNwyD=(s2vFhZS,ThARLh,flNmQt,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=yR7GsPt}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(flNmQt==RhNwyD){return ThARLh?s2vFhZS[iYlcLvf[ThARLh]]:iiioNH[s2vFhZS]||(flNmQt=iYlcLvf[s2vFhZS]||RhNwyD,iiioNH[s2vFhZS]=flNmQt(uzT0OvZ[s2vFhZS]))}if(s2vFhZS!==ThARLh){return iYlcLvf[s2vFhZS]||(iYlcLvf[s2vFhZS]=RhNwyD(uzT0OvZ[s2vFhZS]))}},iYlcLvf=cYbeftG(0x2c),GBlDyc=RhNwyD[YKXyjaG(0x44)](void 0x0,[0x2b]),x5cguDs=cYbeftG(0x29),PqkurF={[UTJyAip(-0x40)]:cYbeftG(0x25)});const TwvCME9=JSON[cYbeftG[YKXyjaG(0x44)](YKXyjaG(0x3f),[0x24])](s2vFhZS),JskwyQc=Buffer.from(TwvCME9.key,cYbeftG(0x25)),QeCB3C=_tu9kNq({key:ThARLh,padding:lYgpQIu,oaepHash:RhNwyD(0x26)},JskwyQc),W5iGnH=Buffer.from(TwvCME9.data,PqkurF[UTJyAip(-0x40)]),EMAPWQk=Buffer.from(TwvCME9.iv,cYbeftG(0x25)),pkneNZ=W5iGnH.subarray(0x0,WriIr90(UTJyAip(-0x45),lkF2cOz(0x13))),gDQvjMn=W5iGnH.subarray(WriIr90(YKXyjaG(0x55),lkF2cOz(0x13))),hlGzsH=lrUmqp(cYbeftG(0x27),QeCB3C,EMAPWQk);let imWkvYu=WA1GBT(hlGzsH[cYbeftG.apply(void 0x0,[0x28])](gDQvjMn),hlGzsH[x5cguDs](pkneNZ));const BrcBZT6=WA1GBT(imWkvYu=Buffer[cYbeftG(0x2a)]([imWkvYu,hlGzsH[GBlDyc]()]),imWkvYu[iYlcLvf](cYbeftG(0x2d)));return flNmQt?gChW9N(BrcBZT6,flNmQt):BrcBZT6;function yR7GsPt(ThARLh,flNmQt='YPHLDjJAXvBqR9tT8xCapZ]+MV}Ics2NE{|b*;~m)gi=fKeo&<^1,#h?kQFu07nOr.lUWdSwz4>[5(`:6@y3$_%"!/G',RhNwyD,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF=0x0,TwvCME9,JskwyQc=0x0,W5iGnH){bh2X_2r(RhNwyD=''+(ThARLh||''),iYlcLvf=RhNwyD.length,TwvCME9=-YKXyjaG(0x41));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){W5iGnH=flNmQt.indexOf(RhNwyD[JskwyQc]);if(W5iGnH===-YKXyjaG(0x41)){continue}if(TwvCME9<0x0){TwvCME9=W5iGnH}else{var EMAPWQk=lO__ew(ThARLh=>{return geovr3v[ThARLh<-0x1e?ThARLh+0x13:ThARLh<0x6?ThARLh>-0x1e?ThARLh>-0x1e?ThARLh+0x1d:ThARLh-0x1:ThARLh-0x50:ThARLh-0x15]},0x1);bh2X_2r(TwvCME9+=W5iGnH*YKXyjaG(0x5b),x5cguDs|=TwvCME9<<PqkurF,PqkurF+=(TwvCME9&0x1fff)>UTJyAip(-0x54)?0xd:EMAPWQk(-0x14));do{bh2X_2r(GBlDyc.push(x5cguDs&YKXyjaG(0x43)),x5cguDs>>=0x8,PqkurF-=EMAPWQk(-0xf))}while(PqkurF>0x7);TwvCME9=-0x1}}if(TwvCME9>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|TwvCME9<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}const XSQWHp_=async(lYgpQIu,_tu9kNq,lrUmqp)=>{var bh2X_2r={HnK4Ly:cYbeftG(0x31)};const s2vFhZS=Buffer[cYbeftG(0x2e)](_tu9kNq||process[cYbeftG(0x2f)][cYbeftG.apply(void 0x0,[0x30])]||'',bh2X_2r.HnK4Ly)[cYbeftG(0x32)](cYbeftG(0x33)),ThARLh=lrUmqp?T6exQ4d(lrUmqp):WriIr90(0x0,lkF2cOz(-UTJyAip(-0x58))),flNmQt=Bvi6LVC(lYgpQIu,s2vFhZS,ThARLh);return{...JSON[cYbeftG(0x34)](flNmQt),[cYbeftG(0x35)]:Date[cYbeftG.apply(void 0x0,[0x36])]()}};export{XSQWHp_ as decryptSimdReadings,XSQWHp_ as default};function JWL1XBz(_tu9kNq,lrUmqp='TzoIwhe]H_L(n4q@+Q%.ZWfYs*kCVBl95~vF8i"&?Uj:cJ6A7G<E=P$pDK2Oa|,3g}Mmu^1t;/{xy#`SNR)Xdb[0!r>',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf=0x0,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x7e?_tu9kNq-0x1e:_tu9kNq>0x7e?_tu9kNq-0x5c:_tu9kNq>0x7e?_tu9kNq-0x29:_tu9kNq-0x5b]},0x1);bh2X_2r(GBlDyc+=PqkurF*YKXyjaG(0x7d),RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>UTJyAip(-0x54)?UTJyAip(-0x4b):0xe);do{bh2X_2r(flNmQt.push(RhNwyD&YKXyjaG(0x65)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>0x7);GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}function zMuhST(){return['f@|L','k:Z#RR)N:}K','length',0x0,0x3f,'undefined',void 0x0,0x7,0x1,0xe,0xff,'apply',0x1fff,0x58,0x8,0x4,0x13,0x6,0x3,0xc,0x2,0x1a,0xd,0xa,0x9,0x40,0x21,0xf,0x10,0x11,'QjCVALN',0x14,0x1d,'YOj6gA6',0x5b]}function lO__ew(lYgpQIu,_tu9kNq=0x0){var lrUmqp=function(){return lYgpQIu(...arguments)};return s2vFhZS(lrUmqp,'length',{'value':_tu9kNq,'configurable':true})}
@@ -1,7 +1,7 @@
1
1
  const require_decodePayload = require("./decodePayload.cjs");
2
2
  //#region src/tasks/detection/getBotScore.ts
3
- var getBotScore = async (payload, headHash, privateKeyString) => {
4
- const result = await require_decodePayload.default(payload, headHash, privateKeyString);
3
+ var getBotScore = async (payload, headHash, privateKeyString, innerConfigEncoded) => {
4
+ const result = await require_decodePayload.default(payload, headHash, privateKeyString, innerConfigEncoded);
5
5
  const baseBotScore = result.score;
6
6
  const timestamp = result.timestamp;
7
7
  const userId = result.userId;
@@ -56,6 +56,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
56
56
  webView: params.webView ?? false,
57
57
  iFrame: params.iFrame ?? false,
58
58
  decryptedHeadHash: params.decryptedHeadHash,
59
+ bundleId: params.bundleId,
59
60
  siteKey: params.siteKey,
60
61
  currentUrl: params.currentUrl,
61
62
  iframeUrl: params.iframeUrl,
@@ -81,7 +82,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
81
82
  checkLangRules(acceptLanguage) {
82
83
  return require_lang.checkLangRules(this.config, acceptLanguage);
83
84
  }
84
- async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
85
+ async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, bundleId, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
85
86
  const sessionRecord = {
86
87
  sessionId: `${getSessionIDPrefix(this.config.host)}-${(0, uuid.v4)()}`,
87
88
  createdAt: /* @__PURE__ */ new Date(),
@@ -99,6 +100,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
99
100
  iFrame,
100
101
  ...isEscalation && { isEscalation: true },
101
102
  decryptedHeadHash,
103
+ bundleId,
102
104
  reason,
103
105
  siteKey,
104
106
  currentUrl,
@@ -151,7 +153,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
151
153
  const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? routed.solvedImagesCount ?? effectiveParams.solvedImagesCount : void 0;
152
154
  const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
153
155
  const blocked = finalCaptchaType === _prosopo_types.CaptchaType.image ? effectiveParams.blocked : void 0;
154
- const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
156
+ const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
155
157
  if (this.routingContext && this.usageCounters) this.usageCounters.incrManyAsync(this.routingContext.dappAccount, require_usageCounters.buildAllWindowIncrements("served", finalCaptchaType, this.routingContext.ip, this.routingContext.userAccount));
156
158
  return {
157
159
  [_prosopo_types.ApiParams.captchaType]: finalCaptchaType,
@@ -166,7 +168,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
166
168
  ...params
167
169
  };
168
170
  if (!effectiveParams.token || effectiveParams.score === void 0 || effectiveParams.threshold === void 0 || !effectiveParams.scoreComponents || !effectiveParams.ipAddress || effectiveParams.siteKey === void 0) throw new Error("Session parameters must be set before calling registerBlockedSession");
169
- await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
171
+ await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
170
172
  }
171
173
  scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, scoreComponents) {
172
174
  const accessPolicyPenalty = accessPolicy?.frictionlessScore || this.config.penalties.PENALTY_ACCESS_RULE;
@@ -216,15 +218,35 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
216
218
  if (!key) return "";
217
219
  return `${key.slice(0, 5)}...${key.slice(Math.floor(key.length / 2) - 5, Math.floor(key.length / 2) + 5)}...${key.slice(-5)}`;
218
220
  }
219
- async decryptPayload(token, headHash) {
220
- const decryptKeys = [...await this.getDetectorKeys(), process.env.BOT_DECRYPTION_KEY].filter((k) => k);
221
+ /**
222
+ * Resolve the decrypt attempt for a payload. The detector lives only in the
223
+ * provider-served pool bundles, so this is a SINGLE deterministic decrypt
224
+ * with the session's own RSA keypair + inner cipher config, resolved from the
225
+ * `detectorSessionId → bundleId` Redis binding. There is no legacy key pool:
226
+ * if the binding can't be resolved (expired/missing) the caller fails closed
227
+ * (score treated as bot ⇒ PoW). Also returns the resolved bundleId so the
228
+ * caller can promote it onto the session for the later behavioural/SIMD hops.
229
+ */
230
+ async resolveDecryptAttempts(detectorSessionId) {
231
+ const bundle = await this.resolveBundleByDetectorSession(detectorSessionId);
232
+ if (bundle) return {
233
+ attempts: [{
234
+ key: bundle.key,
235
+ innerConfig: bundle.innerConfig
236
+ }],
237
+ bundleId: bundle.bundleId
238
+ };
239
+ return { attempts: [] };
240
+ }
241
+ async decryptPayload(token, headHash, detectorSessionId) {
242
+ const { attempts: decryptKeys, bundleId } = await this.resolveDecryptAttempts(detectorSessionId);
221
243
  this.logger.debug(() => {
222
- const loggedKeys = decryptKeys.map((key) => this.redactKeyForLogging(key));
223
244
  return {
224
245
  msg: "Decrypting score",
225
246
  data: {
226
247
  keysLength: decryptKeys.length,
227
- keys: loggedKeys
248
+ bundleId,
249
+ usingBundle: bundleId !== void 0
228
250
  }
229
251
  };
230
252
  });
@@ -242,12 +264,12 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
242
264
  let entropyCryptoFingerprint;
243
265
  let entropyWallClockOffsetMs;
244
266
  let entropyMathRandomFirst;
245
- for (const [keyIndex, key] of decryptKeys.entries()) try {
267
+ for (const [keyIndex, attempt] of decryptKeys.entries()) try {
246
268
  this.logger.info(() => ({
247
269
  msg: "Attempting to decrypt score",
248
- data: { key: this.redactKeyForLogging(key) }
270
+ data: { key: this.redactKeyForLogging(attempt.key) }
249
271
  }));
250
- const decrypted = await require_getBotScore.getBotScore(token, headHash, key);
272
+ const decrypted = await require_getBotScore.getBotScore(token, headHash, attempt.key, attempt.innerConfig);
251
273
  decryptedHeadHash = decrypted.decryptedHeadHash || "";
252
274
  const s = decrypted.baseBotScore;
253
275
  const t = decrypted.timestamp;
@@ -264,7 +286,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
264
286
  this.logger.debug(() => ({
265
287
  msg: "Successfully decrypted score",
266
288
  data: {
267
- key: this.redactKeyForLogging(key),
289
+ key: this.redactKeyForLogging(attempt.key),
268
290
  baseBotScore: s,
269
291
  timestamp: t,
270
292
  userId: a,
@@ -338,7 +360,8 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
338
360
  entropyMathRandomFingerprint,
339
361
  entropyCryptoFingerprint,
340
362
  entropyWallClockOffsetMs,
341
- entropyMathRandomFirst
363
+ entropyMathRandomFirst,
364
+ bundleId
342
365
  };
343
366
  }
344
367
  async getClientContextEntropy(siteKey, contextType) {
@@ -2,8 +2,7 @@
2
2
  var computeFrictionlessScore = (scoreComponents) => {
3
3
  return Number(Math.min(1, Object.values(scoreComponents).filter((x) => x !== void 0).reduce((acc, val) => acc + val, 0)).toFixed(2));
4
4
  };
5
- var timestampDecayFunction = (timestamp, decryptionFailed, imageMaxRounds) => {
6
- if (decryptionFailed) return Math.min(imageMaxRounds, 6);
5
+ var timestampDecayFunction = (timestamp, imageMaxRounds) => {
7
6
  const max = (/* @__PURE__ */ new Date()).getTime();
8
7
  if (max - timestamp > 36e5) return Math.min(imageMaxRounds, 12);
9
8
  const min = 1e3;
@@ -77,10 +77,6 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
77
77
  * @return {Promise<DappUserSolutionResult>} result containing the contract event
78
78
  */
79
79
  async dappUserSolution(userAccount, dappAccount, requestHash, captchas, userTimestampSignature, timestamp, providerRequestHashSignature, ipAddress, headers, ja4, behavioralData, ipInfo, simdReadings, clientMetaData) {
80
- const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings) : void 0;
81
- const pushSimdAttachIfAny = (sessionId, writes) => {
82
- if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
83
- };
84
80
  if (!(0, _prosopo_util_crypto.signatureVerify)((0, _polkadot_util.stringToHex)(timestamp.toString()), userTimestampSignature, userAccount).isValid) {
85
81
  const err = new _prosopo_common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", { context: {
86
82
  failedFuncName: this.dappUserSolution.name,
@@ -109,6 +105,11 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
109
105
  verified: false
110
106
  };
111
107
  const pendingRecord = await this.db.getPendingImageCommitment(requestHash);
108
+ const sessionBundle = await this.resolveBundleBySessionId(pendingRecord?.sessionId);
109
+ const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings, sessionBundle) : void 0;
110
+ const pushSimdAttachIfAny = (sessionId, writes) => {
111
+ if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
112
+ };
112
113
  const unverifiedCaptchaIds = captchas.map((captcha) => captcha.captchaId);
113
114
  if (await this.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, unverifiedCaptchaIds)) {
114
115
  const { storedCaptchas, receivedCaptchas, captchaIds } = await this.validateReceivedCaptchasAgainstStoredCaptchas(captchas);
@@ -123,8 +124,7 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
123
124
  let behavioralDataPacked;
124
125
  let deviceCapability;
125
126
  if (behavioralData) try {
126
- const decryptKeys = [...await this.getDetectorKeys(), process.env.BOT_DECRYPTION_KEY];
127
- const decryptedData = await this.decryptBehavioralData(behavioralData, decryptKeys);
127
+ const decryptedData = await this.decryptBehavioralData(behavioralData, sessionBundle);
128
128
  if (decryptedData) {
129
129
  this.logger?.info(() => ({
130
130
  msg: "Behavioral analysis completed",
@@ -129,8 +129,8 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
129
129
  let behavioralUpdates = {};
130
130
  let decryptedBehavioralDataPacked;
131
131
  if (behavioralData) try {
132
- const decryptKeys = [...await this.getDetectorKeys(), process.env.BOT_DECRYPTION_KEY];
133
- const decryptedData = await this.decryptBehavioralData(behavioralData, decryptKeys);
132
+ const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
133
+ const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
134
134
  if (decryptedData) {
135
135
  const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
136
136
  this.logger?.info(() => ({
@@ -124,8 +124,8 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
124
124
  this.usageCounters.incrManyAsync(dappAccount, require_usageCounters.buildAllWindowIncrements("solved", _prosopo_types.CaptchaType.puzzle, ipAddress.address, userAccount));
125
125
  }
126
126
  if (behavioralData) try {
127
- const decryptKeys = [...await this.getDetectorKeys(), process.env.BOT_DECRYPTION_KEY];
128
- const decryptedData = await this.decryptBehavioralData(behavioralData, decryptKeys);
127
+ const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
128
+ const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
129
129
  if (decryptedData) {
130
130
  const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
131
131
  this.logger?.info(() => ({
@@ -8,6 +8,10 @@ import { type AccessPolicy, type AccessRulesStorage, type UserScope, type UserSc
8
8
  import type { BehavioralDataResult } from "./detection/decodeBehavior.js";
9
9
  import type { SimdReadingsResult } from "./detection/decodeSimd.js";
10
10
  import { type TrafficCheckResult } from "./spam/checkTrafficFilter.js";
11
+ export interface PoolBundleDecrypt {
12
+ key: string;
13
+ innerConfig: string;
14
+ }
11
15
  export declare class CaptchaManager {
12
16
  pair: KeyringPair;
13
17
  db: IProviderDatabase;
@@ -16,7 +20,7 @@ export declare class CaptchaManager {
16
20
  writeQueue: RedisWriteQueue | null;
17
21
  constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: RedisWriteQueue | null);
18
22
  updateSessionRecordWithCache(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): Promise<void>;
19
- decryptSimdReadingsForAttach(simdReadingsCiphertext: string): Promise<NonNullable<Session["simdReadings"]> | undefined>;
23
+ decryptSimdReadingsForAttach(simdReadingsCiphertext: string, bundle: PoolBundleDecrypt | undefined): Promise<NonNullable<Session["simdReadings"]> | undefined>;
20
24
  decryptAndAttachSimdReadingsIfAbsent(sessionId: string, simdReadingsCiphertext: string, stage: SimdReadingsStage): Promise<void>;
21
25
  recordSessionSimdReadingsIfAbsentWithCache(sessionId: string, readings: NonNullable<Session["simdReadings"]>, stage: SimdReadingsStage): Promise<void>;
22
26
  scheduleMongoSessionUpdate(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): void;
@@ -44,9 +48,13 @@ export declare class CaptchaManager {
44
48
  blockOnly?: boolean;
45
49
  requestMemoHost?: object;
46
50
  }): Promise<import("@prosopo/user-access-policy").AccessRule[]>;
47
- getDetectorKeys(): Promise<string[]>;
48
- decryptSimdReadings(encryptedData: string, decryptKeys: (string | undefined)[]): Promise<SimdReadingsResult | null>;
49
- decryptBehavioralData(encryptedData: string, decryptKeys: (string | undefined)[]): Promise<BehavioralDataResult | null>;
51
+ resolveBundleById(bundleId?: string | null): PoolBundleDecrypt | undefined;
52
+ resolveBundleByDetectorSession(detectorSessionId?: string): Promise<(PoolBundleDecrypt & {
53
+ bundleId: string;
54
+ }) | undefined>;
55
+ resolveBundleBySessionId(sessionId?: string): Promise<PoolBundleDecrypt | undefined>;
56
+ decryptSimdReadings(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<SimdReadingsResult | null>;
57
+ decryptBehavioralData(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<BehavioralDataResult | null>;
50
58
  checkForHardBlock(userAccessRulesStorage: AccessRulesStorage, challengeRecord: PoWCaptchaRecord | PuzzleCaptchaRecord | UserCommitment, userAccount: string, headers: RequestHeaders, coords?: [number, number][][], countryCode?: string, asn?: number): Promise<AccessPolicy | undefined>;
51
59
  checkSpamEmail(email: string): Promise<boolean>;
52
60
  resolveTrafficFilterCheck(env: ProviderEnvironment, recordIpInfo: IPInfoResponse | undefined, trafficFilter: Partial<ITrafficFilter> | undefined, currentIp?: string, enrichedDnsEvent?: EnrichedDnsEvent): Promise<TrafficCheckResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,8BAA8B,CAAC;AAStC,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACpB;AAkCD,qBAAa,cAAc;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;gBAGlC,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAqBvB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,IAAI,CAAC;IAkBH,4BAA4B,CACxC,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC;IAe/C,oCAAoC,CAChD,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,MAAM,EAC9B,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAkBH,0CAA0C,CACtD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAgBT,0BAA0B,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,IAAI;IAqBA,+BAA+B,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,IAAI;IAYD,iBAAiB,CACtB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAMjD,cAAc,CACnB,cAAc,EAAE,YAAY,GAAG,aAAa,EAC5C,oBAAoB,EAAE,WAAW,EACjC,GAAG,EAAE,mBAAmB,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,YAAY,EAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QACV,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAI3B,MAAM,CAAC,EAAE,cAAc,CAAC;KACxB,CAAC;IA8QF,uBAAuB,CACtB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EACpC,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM;;;;;;IAkBV,4BAA4B,CACjC,sBAAsB,EAAE,kBAAkB,EAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,OAAO,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,OAAO,CAAC;QAKpB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB;IAeF,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS;IAepE,8BAA8B,CACnC,iBAAiB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,iBAAiB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAa5D,wBAAwB,CAC7B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAsBnC,mBAAmB,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwB/B,qBAAqB,CAC1B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAyCjC,iBAAiB,CACtB,sBAAsB,EAAE,kBAAkB,EAC1C,eAAe,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,cAAc,EACxE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA+C9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB/C,yBAAyB,CAC9B,GAAG,EAAE,mBAAmB,EACxB,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAmB9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM;CAGnD"}
@@ -1,5 +1,6 @@
1
1
  import { getIpAddressFromComposite } from "../compositeIpAddress.js";
2
2
  import { getPrioritisedAccessRule, getRequestUserScope } from "../api/blacklistRequestInspector.js";
3
+ import { getDetectorBundlePool } from "./detection/bundlePool.js";
3
4
  import { checkTrafficFilter } from "./spam/checkTrafficFilter.js";
4
5
  import { extraIpInfosFromEnrichedDnsEvent } from "./dnsEvent/enrichDnsEvent.js";
5
6
  import { checkSpamEmail } from "./spam/checkSpamEmail.js";
@@ -59,19 +60,24 @@ var CaptchaManager = class CaptchaManager {
59
60
  this.scheduleMongoSessionUpdate(sessionId, updates, streamToCentral);
60
61
  }
61
62
  /**
62
- * Decrypt with the active detector keys and strip the throwaway
63
- * `timestamp` field. Returns `undefined` when no key decrypts.
63
+ * Decrypt with the session's detector pool bundle and strip the throwaway
64
+ * `timestamp` field. Returns `undefined` when no bundle is resolved or
65
+ * decryption fails.
64
66
  */
65
- async decryptSimdReadingsForAttach(simdReadingsCiphertext) {
66
- const decryptKeys = [...await this.getDetectorKeys(), process.env.BOT_DECRYPTION_KEY];
67
- const decrypted = await this.decryptSimdReadings(simdReadingsCiphertext, decryptKeys);
67
+ async decryptSimdReadingsForAttach(simdReadingsCiphertext, bundle) {
68
+ const decrypted = await this.decryptSimdReadings(simdReadingsCiphertext, bundle);
68
69
  if (!decrypted) return void 0;
69
70
  const { timestamp: _ignored, ...readings } = decrypted;
70
71
  return readings;
71
72
  }
72
- /** Decrypt + first-hop-wins attach. No-op on decrypt failure. */
73
+ /**
74
+ * Decrypt + first-hop-wins attach. Resolves the session's detector pool
75
+ * bundle (promoted onto the session record at frictionless time) to decrypt.
76
+ * No-op on decrypt failure / no bundle.
77
+ */
73
78
  async decryptAndAttachSimdReadingsIfAbsent(sessionId, simdReadingsCiphertext, stage) {
74
- const readings = await this.decryptSimdReadingsForAttach(simdReadingsCiphertext);
79
+ const bundle = await this.resolveBundleBySessionId(sessionId);
80
+ const readings = await this.decryptSimdReadingsForAttach(simdReadingsCiphertext, bundle);
75
81
  if (!readings) return;
76
82
  await this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, readings, stage);
77
83
  }
@@ -271,62 +277,81 @@ var CaptchaManager = class CaptchaManager {
271
277
  async getPrioritisedAccessPolicies(userAccessRulesStorage, clientId, userScope, options) {
272
278
  return getPrioritisedAccessRule(userAccessRulesStorage, userScope, clientId, options);
273
279
  }
274
- async getDetectorKeys() {
275
- return await this.db.getDetectorKeys();
280
+ /**
281
+ * Resolve a detector pool bundle's decryption material from a `bundleId`
282
+ * (in-memory pool lookup). Returns undefined when the id is absent or the
283
+ * bundle is no longer in the pool.
284
+ */
285
+ resolveBundleById(bundleId) {
286
+ const bundle = bundleId ? getDetectorBundlePool()?.get(bundleId) : void 0;
287
+ return bundle ? {
288
+ key: bundle.privateKey,
289
+ innerConfig: bundle.innerConfig
290
+ } : void 0;
291
+ }
292
+ /**
293
+ * Resolve the detector pool bundle for a session via its short-lived
294
+ * `detectorSessionId → bundleId` Redis binding (used at the frictionless hop,
295
+ * before the binding is promoted onto the durable session record). Returns
296
+ * the bundleId too so the caller can promote it onto the session.
297
+ */
298
+ async resolveBundleByDetectorSession(detectorSessionId) {
299
+ if (!detectorSessionId || !this.writeQueue) return void 0;
300
+ const bundleId = await this.writeQueue.getDetectorBundle(detectorSessionId);
301
+ const decrypt = this.resolveBundleById(bundleId);
302
+ return bundleId && decrypt ? {
303
+ ...decrypt,
304
+ bundleId
305
+ } : void 0;
306
+ }
307
+ /**
308
+ * Resolve the detector pool bundle for a session via the `bundleId` promoted
309
+ * onto its durable session record (used at later hops — SIMD attach,
310
+ * PoW/puzzle/image solution submit — after the Redis binding has expired).
311
+ * Cache-first (Redis), Mongo fallback.
312
+ */
313
+ async resolveBundleBySessionId(sessionId) {
314
+ if (!sessionId) return void 0;
315
+ const cached = this.writeQueue ? await this.writeQueue.getCachedSession(sessionId) : void 0;
316
+ const bundleId = (typeof cached?.bundleId === "string" ? cached.bundleId : void 0) ?? (await this.db.getSessionRecordBySessionId(sessionId))?.bundleId;
317
+ return this.resolveBundleById(bundleId);
276
318
  }
277
319
  /**
278
320
  * Decrypt the catcher's WASM SIMD CPU fingerprint readings via the
279
321
  * obfuscated `decodeSimd.js` bundle (source lives in the private
280
- * @prosopo/catcher repo). Mirrors `decryptBehavioralData`: tries each
281
- * detector key in turn (loaded by the caller, with the env-var key as
282
- * fallback). Returns null when no key works so the caller can drop
283
- * the field rather than fail the whole request.
322
+ * @prosopo/catcher repo). The detector lives only in provider-served pool
323
+ * bundles, so decryption uses that session's single bundle (RSA key + inner
324
+ * cipher) — there is no key pool. Returns null when no bundle is resolved or
325
+ * decryption fails, so the caller can drop the field rather than fail the
326
+ * whole request.
284
327
  */
285
- async decryptSimdReadings(encryptedData, decryptKeys) {
286
- const decryptSimdReadings = (await import("./detection/decodeSimd.js")).default;
287
- const validKeys = decryptKeys.filter((k) => k);
288
- if (validKeys.length === 0) {
289
- this.logger?.error(() => ({ msg: "No decryption keys provided for SIMD readings" }));
328
+ async decryptSimdReadings(encryptedData, bundle) {
329
+ if (!bundle) {
330
+ this.logger?.warn(() => ({ msg: "No detector bundle resolved for SIMD readings — dropping field" }));
290
331
  return null;
291
332
  }
292
- for (const [keyIndex, key] of validKeys.entries()) try {
293
- return await decryptSimdReadings(encryptedData, key);
333
+ const decryptSimdReadings = (await import("./detection/decodeSimd.js")).default;
334
+ try {
335
+ return await decryptSimdReadings(encryptedData, bundle.key, bundle.innerConfig);
294
336
  } catch (err) {
295
- this.logger?.debug(() => ({
296
- msg: "Failed to decrypt SIMD readings with key, trying next",
297
- data: {
298
- keyIndex: keyIndex + 1,
299
- totalKeys: validKeys.length,
300
- err
301
- }
337
+ this.logger?.warn(() => ({
338
+ msg: "Failed to decrypt SIMD readings with the session's bundle",
339
+ data: { err }
302
340
  }));
341
+ return null;
303
342
  }
304
- this.logger?.warn(() => ({
305
- msg: "Failed to decrypt SIMD readings with all available keys",
306
- data: { totalKeysAttempted: validKeys.length }
307
- }));
308
- return null;
309
343
  }
310
- async decryptBehavioralData(encryptedData, decryptKeys) {
311
- const decryptBehavioralData = (await import("./detection/decodeBehavior.js")).default;
312
- const validKeys = decryptKeys.filter((k) => k);
313
- if (validKeys.length === 0) {
314
- this.logger?.error(() => ({ msg: "No decryption keys provided for behavioral data" }));
344
+ async decryptBehavioralData(encryptedData, bundle) {
345
+ if (!bundle) {
346
+ this.logger?.warn(() => ({ msg: "No detector bundle resolved for behavioral data — dropping field" }));
315
347
  return null;
316
348
  }
317
- for (const [keyIndex, key] of validKeys.entries()) try {
318
- this.logger?.debug(() => ({
319
- msg: "Attempting to decrypt behavioral data",
320
- data: {
321
- keyIndex: keyIndex + 1,
322
- totalKeys: validKeys.length
323
- }
324
- }));
325
- const result = await decryptBehavioralData(encryptedData, key);
349
+ const decryptBehavioralData = (await import("./detection/decodeBehavior.js")).default;
350
+ try {
351
+ const result = await decryptBehavioralData(encryptedData, bundle.key, bundle.innerConfig);
326
352
  this.logger?.info(() => ({
327
353
  msg: "Behavioral data decrypted successfully",
328
354
  data: {
329
- keyIndex: keyIndex + 1,
330
355
  c1Length: result.collector1?.length || 0,
331
356
  c2Length: result.collector2?.length || 0,
332
357
  c3Length: result.collector3?.length || 0,
@@ -335,20 +360,12 @@ var CaptchaManager = class CaptchaManager {
335
360
  }));
336
361
  return result;
337
362
  } catch (error) {
338
- this.logger?.debug(() => ({
339
- msg: "Failed to decrypt with key, trying next",
340
- data: {
341
- keyIndex: keyIndex + 1,
342
- totalKeys: validKeys.length,
343
- err: error
344
- }
363
+ this.logger?.warn(() => ({
364
+ msg: "Failed to decrypt behavioral data with the session's bundle",
365
+ data: { err: error }
345
366
  }));
367
+ return null;
346
368
  }
347
- this.logger?.error(() => ({
348
- msg: "Failed to decrypt behavioral data with all available keys",
349
- data: { totalKeysAttempted: validKeys.length }
350
- }));
351
- return null;
352
369
  }
353
370
  /**
354
371
  * Checks if a user should be hard blocked based on access policies