@evomap/evolver 1.89.10 → 1.89.12

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 (112) hide show
  1. package/.cursor/BUGBOT.md +182 -0
  2. package/.env.example +68 -0
  3. package/.git-commit-guard-token +1 -0
  4. package/.github/CODEOWNERS +63 -0
  5. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  6. package/.github/pull_request_template.md +45 -0
  7. package/.github/workflows/test.yml +75 -0
  8. package/CHANGELOG.md +1367 -0
  9. package/README.ja-JP.md +1 -1
  10. package/README.ko-KR.md +1 -1
  11. package/README.md +90 -536
  12. package/README.public.md +578 -0
  13. package/README.zh-CN.md +1 -1
  14. package/SECURITY.md +108 -0
  15. package/assets/gep/events.jsonl +3 -0
  16. package/examples/atp-consumer-quickstart.md +100 -0
  17. package/examples/hello-world.md +38 -0
  18. package/index.js +5 -3
  19. package/package.json +6 -18
  20. package/proxy-package.json +39 -0
  21. package/public.manifest.json +145 -0
  22. package/src/adapters/scripts/evolver-session-end.js +18 -37
  23. package/src/atp/atpExecute.js +27 -71
  24. package/src/atp/serviceHelper.js +28 -36
  25. package/src/config.js +17 -0
  26. package/src/evolve/guards.js +721 -1
  27. package/src/evolve/pipeline/collect.js +1283 -1
  28. package/src/evolve/pipeline/dispatch.js +421 -1
  29. package/src/evolve/pipeline/enrich.js +440 -1
  30. package/src/evolve/pipeline/hub.js +319 -1
  31. package/src/evolve/pipeline/select.js +274 -1
  32. package/src/evolve/pipeline/signals.js +206 -1
  33. package/src/evolve/utils.js +264 -1
  34. package/src/evolve.js +350 -1
  35. package/src/gep/a2aProtocol.js +4463 -1
  36. package/src/gep/antiAbuseTelemetry.js +233 -1
  37. package/src/gep/autoDistillConv.js +205 -1
  38. package/src/gep/autoDistillLlm.js +315 -1
  39. package/src/gep/candidateEval.js +92 -1
  40. package/src/gep/candidates.js +198 -1
  41. package/src/gep/contentHash.js +30 -1
  42. package/src/gep/conversationDistiller.js +270 -0
  43. package/src/gep/conversationSniffer.js +266 -1
  44. package/src/gep/crypto.js +89 -1
  45. package/src/gep/curriculum.js +163 -1
  46. package/src/gep/deviceId.js +218 -1
  47. package/src/gep/envFingerprint.js +118 -1
  48. package/src/gep/epigenetics.js +31 -1
  49. package/src/gep/execBridge.js +712 -1
  50. package/src/gep/explore.js +289 -1
  51. package/src/gep/hash.js +15 -1
  52. package/src/gep/hubFetch.js +608 -1
  53. package/src/gep/hubReview.js +207 -1
  54. package/src/gep/hubSearch.js +526 -1
  55. package/src/gep/hubVerify.js +306 -1
  56. package/src/gep/learningSignals.js +89 -1
  57. package/src/gep/memoryGraph.js +1449 -1
  58. package/src/gep/memoryGraphAdapter.js +203 -1
  59. package/src/gep/mutation.js +203 -1
  60. package/src/gep/narrativeMemory.js +108 -1
  61. package/src/gep/oauthLogin.js +9 -3
  62. package/src/gep/openPRRegistry.js +205 -1
  63. package/src/gep/personality.js +423 -1
  64. package/src/gep/policyCheck.js +599 -1
  65. package/src/gep/privacyClient.js +10 -9
  66. package/src/gep/prompt.js +836 -1
  67. package/src/gep/questionGenerator.js +103 -0
  68. package/src/gep/recallInject.js +409 -1
  69. package/src/gep/recallVerifier.js +318 -1
  70. package/src/gep/reflection.js +177 -1
  71. package/src/gep/savingsCore.js +112 -1
  72. package/src/gep/selector.js +602 -1
  73. package/src/gep/signals.js +85 -17
  74. package/src/gep/skillDistiller.js +1294 -1
  75. package/src/gep/solidify.js +1699 -1
  76. package/src/gep/strategy.js +136 -1
  77. package/src/gep/tokenSavings.js +95 -1
  78. package/src/gep/workspaceKeychain.js +174 -1
  79. package/src/proxy/extensions/traceControl.js +109 -1
  80. package/src/proxy/index.js +100 -3
  81. package/src/proxy/inject.js +52 -1
  82. package/src/proxy/lifecycle/manager.js +108 -7
  83. package/src/proxy/server/routes.js +41 -7
  84. package/src/proxy/server/settings.js +6 -2
  85. package/src/proxy/sync/engine.js +31 -15
  86. package/src/proxy/sync/inbound.js +87 -9
  87. package/src/proxy/sync/outbound.js +57 -4
  88. package/src/proxy/trace/extractor.js +1403 -1
  89. package/src/proxy/trace/usage.js +105 -1
  90. package/CONTRIBUTING.md +0 -19
  91. package/assets/cover.png +0 -0
  92. package/scripts/a2a_export.js +0 -63
  93. package/scripts/a2a_ingest.js +0 -79
  94. package/scripts/a2a_promote.js +0 -118
  95. package/scripts/analyze_by_skill.js +0 -121
  96. package/scripts/build_binaries.js +0 -479
  97. package/scripts/check-changelog.js +0 -166
  98. package/scripts/extract_log.js +0 -85
  99. package/scripts/generate_history.js +0 -75
  100. package/scripts/gep_append_event.js +0 -96
  101. package/scripts/gep_personality_report.js +0 -234
  102. package/scripts/human_report.js +0 -147
  103. package/scripts/recall-verify-report.js +0 -234
  104. package/scripts/recover_loop.js +0 -61
  105. package/scripts/refresh_stars_badge.js +0 -168
  106. package/scripts/seed-merchants.js +0 -91
  107. package/scripts/suggest_version.js +0 -89
  108. package/scripts/validate-modules.js +0 -38
  109. package/scripts/validate-suite.js +0 -78
  110. package/skills/index.json +0 -14
  111. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  112. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,409 @@
1
- const _0x2d8021=_0x3579;(function(_0x4018a2,_0x526d8b){const _0x1a2892=_0x3579,_0x5c1585=_0x4018a2();while(!![]){try{const _0x5b4861=-parseInt(_0x1a2892(0x335,'\x25\x37\x79\x41'))/(0x345*0x3+0x1*-0x715+-0x1*0x2b9)*(-parseInt(_0x1a2892(0x220,'\x4b\x59\x54\x75'))/(0x1cbe+-0x167*-0xa+-0x2ac2))+-parseInt(_0x1a2892(0x349,'\x40\x79\x41\x38'))/(0x140*0x1d+-0x419*-0x8+-0x4505)+-parseInt(_0x1a2892(0x1e1,'\x4c\x4c\x58\x45'))/(-0xc*0x1eb+-0x1*-0x1ed5+-0x7cd)+-parseInt(_0x1a2892(0x233,'\x25\x37\x79\x41'))/(-0x1*0x1a23+-0xf82*0x1+0x29aa)*(-parseInt(_0x1a2892(0x350,'\x25\x37\x79\x41'))/(0x1*0x493+0x7f3*-0x2+0xb59))+-parseInt(_0x1a2892(0x345,'\x51\x43\x4c\x67'))/(0xac3+0x1*0x8b3+0xc7*-0x19)*(-parseInt(_0x1a2892(0x21f,'\x79\x44\x26\x79'))/(-0x1*0x72e+-0xd93+-0x139*-0x11))+parseInt(_0x1a2892(0x278,'\x25\x67\x67\x57'))/(0x1b49*0x1+-0x2*0xa11+-0x71e)*(-parseInt(_0x1a2892(0x2e1,'\x31\x79\x55\x47'))/(0x12f2+-0x1b88+0x8a0))+-parseInt(_0x1a2892(0x25b,'\x6d\x24\x74\x4d'))/(0x1c5*-0x2+-0x1*0x1551+-0x18e6*-0x1)*(-parseInt(_0x1a2892(0x261,'\x32\x40\x62\x72'))/(0x735+0x1*0x140c+-0x5*0x571));if(_0x5b4861===_0x526d8b)break;else _0x5c1585['push'](_0x5c1585['shift']());}catch(_0x1b34f6){_0x5c1585['push'](_0x5c1585['shift']());}}}(_0x5860,-0x43490+0x42175+0x8e*0x4f7));const _0x16924b=(function(){const _0x3d94b6=_0x3579,_0x3092b5={};_0x3092b5['\x78\x75\x79\x4d\x73']=_0x3d94b6(0x26e,'\x6f\x6a\x6f\x73'),_0x3092b5[_0x3d94b6(0x244,'\x24\x6b\x6b\x55')]='\x45\x4e\x66\x41\x58',_0x3092b5['\x55\x6d\x7a\x78\x6e']=function(_0xa2103e,_0x25911e){return _0xa2103e===_0x25911e;},_0x3092b5[_0x3d94b6(0x246,'\x32\x40\x62\x72')]=_0x3d94b6(0x236,'\x65\x48\x21\x46'),_0x3092b5[_0x3d94b6(0x293,'\x6b\x6a\x26\x38')]=_0x3d94b6(0x372,'\x78\x4a\x5d\x72')+_0x3d94b6(0x2d9,'\x6b\x6a\x26\x38');const _0x466722=_0x3092b5;let _0x49bcf2=!![];return function(_0x44fbe9,_0x545003){const _0xf91328=_0x3d94b6,_0xb70cc3={'\x4f\x43\x78\x57\x61':function(_0x17f880,_0x1b0372){return _0x17f880(_0x1b0372);},'\x6f\x49\x71\x61\x78':_0x466722[_0xf91328(0x1d9,'\x70\x57\x51\x50')]},_0x500d33=_0x49bcf2?function(){const _0x559299=_0xf91328,_0x19084c={};_0x19084c[_0x559299(0x2bf,'\x54\x66\x62\x72')]=_0x559299(0x2f6,'\x54\x66\x62\x72'),_0x19084c[_0x559299(0x2f0,'\x2a\x68\x78\x76')]=_0x466722[_0x559299(0x322,'\x78\x4a\x5d\x72')];const _0x375f67=_0x19084c;if(_0x466722[_0x559299(0x2bb,'\x59\x24\x74\x5e')]!==_0x466722[_0x559299(0x328,'\x25\x45\x6a\x6a')])({logAssetCall:_0x12e33a}=_0xb70cc3[_0x559299(0x37a,'\x30\x35\x5e\x7a')](_0x3172ae,_0xb70cc3[_0x559299(0x282,'\x25\x67\x67\x57')]));else{if(_0x545003){if(_0x466722[_0x559299(0x2ed,'\x71\x79\x29\x25')](_0x466722['\x71\x58\x66\x6c\x51'],_0x466722[_0x559299(0x1ed,'\x23\x74\x4e\x49')])){const _0x2cad89=_0x545003['\x61\x70\x70\x6c\x79'](_0x44fbe9,arguments);return _0x545003=null,_0x2cad89;}else{const _0x1a0d28=[];if(_0x3d4299[_0x559299(0x1ef,'\x6a\x61\x56\x58')](_0x367760['\x73\x74\x72\x61\x74\x65\x67\x79'][_0x559299(0x358,'\x25\x67\x67\x57')]))_0x1a0d28[_0x559299(0x271,'\x6d\x24\x74\x4d')](_0xdbe083[_0x559299(0x1cc,'\x71\x79\x29\x25')][_0x559299(0x2fe,'\x2a\x68\x78\x76')][_0x559299(0x23f,'\x31\x79\x55\x47')](0xb8b+0x2*0xecc+-0x2923,0xa8d*-0x1+0x5*-0x715+0x2df9)['\x6a\x6f\x69\x6e']('\x3b\x20'));if(typeof _0x1d8a66[_0x559299(0x277,'\x5b\x56\x57\x70')][_0x559299(0x357,'\x23\x74\x4e\x49')]===_0x375f67[_0x559299(0x273,'\x26\x29\x78\x57')])_0x1a0d28[_0x559299(0x291,'\x40\x79\x41\x38')](_0x26d0c9[_0x559299(0x301,'\x65\x48\x21\x46')][_0x559299(0x225,'\x54\x4a\x64\x52')]);_0x19cec1=_0x1a0d28[_0x559299(0x327,'\x63\x4c\x69\x78')](_0x47f54f)[_0x559299(0x2c2,'\x78\x4a\x5d\x72')](_0x375f67[_0x559299(0x1e3,'\x32\x40\x62\x72')])[_0x559299(0x2ad,'\x51\x43\x4c\x67')]();}}}}:function(){};return _0x49bcf2=![],_0x500d33;};}()),_0x523c05=_0x16924b(this,function(){const _0x2a6f2d=_0x3579,_0x373fd0={};_0x373fd0['\x41\x6b\x70\x56\x42']=_0x2a6f2d(0x22d,'\x70\x57\x51\x50')+_0x2a6f2d(0x2d3,'\x4b\x59\x54\x75');const _0x376b30=_0x373fd0;return _0x523c05[_0x2a6f2d(0x250,'\x24\x6b\x6b\x55')]()['\x73\x65\x61\x72\x63\x68'](_0x376b30[_0x2a6f2d(0x21d,'\x2a\x68\x78\x76')])[_0x2a6f2d(0x215,'\x7a\x5d\x50\x24')]()['\x63\x6f\x6e\x73\x74\x72\x75\x63'+_0x2a6f2d(0x259,'\x51\x64\x58\x73')](_0x523c05)[_0x2a6f2d(0x2c9,'\x23\x74\x4e\x49')](_0x376b30[_0x2a6f2d(0x35b,'\x5b\x56\x57\x70')]);});_0x523c05();const _0x4dc36e=require(_0x2d8021(0x391,'\x59\x24\x74\x5e'));function _0x1bbe20(){const _0x492cd1=_0x2d8021,_0x57e4ee={'\x48\x46\x64\x4d\x50':function(_0x449b1e,_0x5f570c){return _0x449b1e(_0x5f570c);},'\x73\x67\x5a\x70\x52':function(_0x1e2889,_0x112878){return _0x1e2889===_0x112878;},'\x41\x41\x67\x42\x49':_0x492cd1(0x1c4,'\x4a\x28\x61\x4a')},_0x20bf1a=_0x57e4ee['\x48\x46\x64\x4d\x50'](String,process.env.EVOLVER_RECALL_MODE||'')[_0x492cd1(0x311,'\x6a\x61\x56\x58')+_0x492cd1(0x33f,'\x51\x64\x58\x73')]()[_0x492cd1(0x20d,'\x69\x21\x6a\x68')]();return _0x57e4ee[_0x492cd1(0x256,'\x26\x29\x78\x57')](_0x20bf1a,_0x492cd1(0x1f5,'\x6b\x6a\x26\x38'))||_0x20bf1a===_0x492cd1(0x25c,'\x54\x51\x61\x31')?_0x20bf1a:_0x57e4ee[_0x492cd1(0x253,'\x23\x74\x4e\x49')];}function _0x347851(){const _0x538cfa=_0x2d8021,_0x47d10e={'\x62\x4d\x47\x55\x78':function(_0x1f36ad,_0x3cefd5){return _0x1f36ad(_0x3cefd5);},'\x4d\x4b\x48\x5a\x5a':function(_0x48cef5,_0xd8271f){return _0x48cef5>_0xd8271f;},'\x6f\x53\x62\x71\x61':function(_0x2f94e3,_0x5662ff){return _0x2f94e3<=_0x5662ff;}},_0x1039e3=_0x47d10e[_0x538cfa(0x1cb,'\x25\x37\x79\x41')](Number,process.env.EVOLVER_RECALL_MIN_SIM);return Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x1039e3)&&_0x47d10e[_0x538cfa(0x1ec,'\x54\x51\x61\x31')](_0x1039e3,-0x6bf+-0x1*0x66a+0x1*0xd29)&&_0x47d10e[_0x538cfa(0x390,'\x79\x44\x26\x79')](_0x1039e3,0x1f5b+0x12d0+0x1*-0x322a)?_0x1039e3:0xb01+0x13d*0x12+-0x214b+0.75;}function _0x4e0f34(){const _0x73ef48=_0x2d8021,_0x16732c={'\x4b\x74\x66\x55\x47':function(_0x2cb24c,_0xdd54c,_0xa1e07a){return _0x2cb24c(_0xdd54c,_0xa1e07a);}},_0x572eaa=_0x16732c[_0x73ef48(0x365,'\x54\x51\x61\x31')](parseInt,process.env.EVOLVER_RECALL_MAX,0x1ae4*-0x1+-0x1*-0x3b+0x1ab3);return Number[_0x73ef48(0x23b,'\x4a\x28\x61\x4a')](_0x572eaa)&&_0x572eaa>0x1698+-0x67*-0x54+0x4b3*-0xc&&_0x572eaa<=-0x9f*-0x2b+0x16e*-0xd+-0x815?_0x572eaa:0xab3+-0x30b+-0x7a7;}const _0x44d059=0x2427*-0x1+0xd*-0x164+0x395b,_0x5ddef2=0x4ce+0x179b*-0x1+0x1395;function _0x181bd1(_0x5e5941){const _0x9bf6d2=_0x2d8021,_0x4b2e57={'\x46\x4d\x70\x64\x77':function(_0x447db2,_0x38702b){return _0x447db2(_0x38702b);},'\x57\x68\x51\x70\x72':function(_0x22f824,_0x1b8e9c){return _0x22f824(_0x1b8e9c);},'\x63\x71\x75\x49\x57':_0x9bf6d2(0x1f2,'\x63\x4c\x69\x78')+'\x73','\x76\x50\x70\x7a\x46':_0x9bf6d2(0x203,'\x76\x69\x58\x71')+_0x9bf6d2(0x333,'\x54\x51\x61\x31')+_0x9bf6d2(0x288,'\x67\x42\x72\x37')},_0x938459=_0x4b2e57[_0x9bf6d2(0x2aa,'\x6b\x6a\x26\x38')](String,_0x5e5941||''),_0x1685de=_0x938459[_0x9bf6d2(0x24f,'\x25\x37\x79\x41')+_0x9bf6d2(0x1d7,'\x36\x4d\x7a\x78')](),_0xfbf3f0=/\b(error|exception|fail(?:ed|ure)?)\b|错误|异常|报错|失败/i[_0x9bf6d2(0x286,'\x69\x21\x6a\x68')](_0x1685de);let _0xe48bae=[],_0x54814f=[];try{const _0x29419e=_0x4b2e57[_0x9bf6d2(0x2ab,'\x69\x21\x6a\x68')](require,_0x4b2e57[_0x9bf6d2(0x1cf,'\x67\x42\x72\x37')]);_0xe48bae=_0x29419e['\x5f\x65\x78\x74\x72\x61\x63\x74'+_0x9bf6d2(0x2df,'\x34\x36\x56\x40')](_0x938459,_0x1685de,_0xfbf3f0)||[],_0x54814f=_0x29419e[_0x9bf6d2(0x231,'\x4c\x61\x57\x74')+'\x4b\x65\x79\x77\x6f\x72\x64\x53'+_0x9bf6d2(0x32b,'\x31\x21\x58\x79')](_0x1685de)||[];}catch(_0x3fe984){return[];}const _0x4d5a2c=new Set();for(const _0xbc4139 of _0xe48bae)_0x4d5a2c[_0x9bf6d2(0x21b,'\x41\x43\x58\x51')](_0xbc4139);for(const _0x31b0ec of _0x54814f)_0x4d5a2c[_0x9bf6d2(0x266,'\x67\x42\x72\x37')](_0x31b0ec);return _0x4d5a2c[_0x9bf6d2(0x1f6,'\x4c\x61\x57\x74')](_0x4b2e57[_0x9bf6d2(0x393,'\x65\x48\x21\x46')]),Array['\x66\x72\x6f\x6d'](_0x4d5a2c);}const _0x443689=-0x162a*0x1+0x1f*0x51+0xc67;function _0x3579(_0x13cb0c,_0xaddcac){_0x13cb0c=_0x13cb0c-(-0x1*-0x15+0x2e7+0x1*-0x13a);const _0x427caf=_0x5860();let _0x3d7853=_0x427caf[_0x13cb0c];if(_0x3579['\x69\x4c\x57\x4d\x4c\x66']===undefined){var _0x99128b=function(_0x156614){const _0x5a630a='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x18fa3e='',_0x19135e='',_0xa7bc81=_0x18fa3e+_0x99128b,_0x4acde8=(''+function(){return-0x1f4a+0x52c+0x1a1e;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x798+0xfd3+0x176a*-0x1);for(let _0x1bb763=-0x193*-0xd+0x7ec+-0xd*0x22f,_0x347119,_0x3e4711,_0x54d1f7=-0x1*0x2ec+-0x17da*0x1+0x2*0xd63;_0x3e4711=_0x156614['\x63\x68\x61\x72\x41\x74'](_0x54d1f7++);~_0x3e4711&&(_0x347119=_0x1bb763%(0x23b2+-0x1ad8+-0x8d6)?_0x347119*(0x967*-0x1+0xb*-0x1f6+0x1*0x1f39)+_0x3e4711:_0x3e4711,_0x1bb763++%(-0x2ae+-0xf56+0x1208))?_0x18fa3e+=_0x4acde8||_0xa7bc81['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x54d1f7+(-0x259c+-0x4b0*-0x2+0x1c46))-(-0x2132+-0x193*0x5+0x1*0x291b)!==0x239b+-0xd*-0x2da+-0x48ad?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1bd6+0x1*-0xaac+0x2781&_0x347119>>(-(0x1c10+-0x19a1+-0x26d)*_0x1bb763&-0xa92+-0x2*0xf3b+-0x290e*-0x1)):_0x1bb763:-0x176f+-0x13b8+0x1*0x2b27){_0x3e4711=_0x5a630a['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3e4711);}for(let _0x40446f=-0x1*-0x2063+-0xb27+-0x153c,_0x358e0d=_0x18fa3e['\x6c\x65\x6e\x67\x74\x68'];_0x40446f<_0x358e0d;_0x40446f++){_0x19135e+='\x25'+('\x30\x30'+_0x18fa3e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x40446f)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1*0x3ce+-0x3*0xa22+-0x6aa*-0x4))['\x73\x6c\x69\x63\x65'](-(-0x26ef+-0x1*0x1459+0x3b4a));}return decodeURIComponent(_0x19135e);};const _0x5e2b78=function(_0x42f32f,_0x49dc5d){let _0x47399b=[],_0x106d7c=0xb45*-0x1+0x1566+-0xa21,_0x41c9a2,_0x3c0732='';_0x42f32f=_0x99128b(_0x42f32f);let _0x5bfb42;for(_0x5bfb42=-0x142d+-0x157a+-0x29a7*-0x1;_0x5bfb42<-0x701*0x1+0x4fe*-0x5+0x20f7;_0x5bfb42++){_0x47399b[_0x5bfb42]=_0x5bfb42;}for(_0x5bfb42=0x16e*0x2+0x31*0xc5+0x43*-0x9b;_0x5bfb42<-0xff+0x2592+-0x2393;_0x5bfb42++){_0x106d7c=(_0x106d7c+_0x47399b[_0x5bfb42]+_0x49dc5d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5bfb42%_0x49dc5d['\x6c\x65\x6e\x67\x74\x68']))%(0x1ade+-0x1*0x2581+0xba3),_0x41c9a2=_0x47399b[_0x5bfb42],_0x47399b[_0x5bfb42]=_0x47399b[_0x106d7c],_0x47399b[_0x106d7c]=_0x41c9a2;}_0x5bfb42=-0x867+0xb3*0x6+0x435,_0x106d7c=0x1fa5+-0x2027+-0x1*-0x82;for(let _0x5240a0=0x8*0x47e+-0x21e5+-0x20b;_0x5240a0<_0x42f32f['\x6c\x65\x6e\x67\x74\x68'];_0x5240a0++){_0x5bfb42=(_0x5bfb42+(0x1*-0x745+-0x11ed*0x1+-0x1933*-0x1))%(0x1ded+0x79b+-0x38*0xa7),_0x106d7c=(_0x106d7c+_0x47399b[_0x5bfb42])%(0x17*-0x51+0xd66+-0x51f),_0x41c9a2=_0x47399b[_0x5bfb42],_0x47399b[_0x5bfb42]=_0x47399b[_0x106d7c],_0x47399b[_0x106d7c]=_0x41c9a2,_0x3c0732+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x42f32f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5240a0)^_0x47399b[(_0x47399b[_0x5bfb42]+_0x47399b[_0x106d7c])%(0x196c+-0x1309+0x1*-0x563)]);}return _0x3c0732;};_0x3579['\x45\x4b\x4b\x4d\x73\x59']=_0x5e2b78,_0x3579['\x68\x6d\x74\x77\x68\x4d']={},_0x3579['\x69\x4c\x57\x4d\x4c\x66']=!![];}const _0x45580f=_0x427caf[0x23f6+-0x1467*0x1+0xf8f*-0x1],_0x33b7ea=_0x13cb0c+_0x45580f,_0x2d65ce=_0x3579['\x68\x6d\x74\x77\x68\x4d'][_0x33b7ea];if(!_0x2d65ce){if(_0x3579['\x55\x74\x62\x57\x58\x6d']===undefined){const _0x35c70d=function(_0x12b67e){this['\x48\x6e\x68\x4b\x79\x4b']=_0x12b67e,this['\x79\x48\x67\x59\x51\x72']=[0xcaa+-0x11c8+0x51f,-0x2565+-0x2dd*0x1+0x2842,0x1128+-0x1*0x1ebb+0xd93],this['\x70\x6d\x7a\x6b\x6d\x71']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x59\x46\x63\x6b\x59\x4f']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x48\x4b\x51\x52\x4a\x54']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x35c70d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x53\x61\x68\x43\x66']=function(){const _0x349b0e=new RegExp(this['\x59\x46\x63\x6b\x59\x4f']+this['\x48\x4b\x51\x52\x4a\x54']),_0x389f67=_0x349b0e['\x74\x65\x73\x74'](this['\x70\x6d\x7a\x6b\x6d\x71']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x79\x48\x67\x59\x51\x72'][-0x26ff+0xb4e+0x1bb2]:--this['\x79\x48\x67\x59\x51\x72'][0x12f5*-0x2+0xb96+-0x14*-0x151];return this['\x55\x6c\x46\x63\x77\x6e'](_0x389f67);},_0x35c70d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x55\x6c\x46\x63\x77\x6e']=function(_0x457251){if(!Boolean(~_0x457251))return _0x457251;return this['\x41\x5a\x68\x49\x59\x79'](this['\x48\x6e\x68\x4b\x79\x4b']);},_0x35c70d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x41\x5a\x68\x49\x59\x79']=function(_0x64750){for(let _0x4a627a=-0x5d*-0x5f+-0x1660+-0xc23,_0xa81c2=this['\x79\x48\x67\x59\x51\x72']['\x6c\x65\x6e\x67\x74\x68'];_0x4a627a<_0xa81c2;_0x4a627a++){this['\x79\x48\x67\x59\x51\x72']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xa81c2=this['\x79\x48\x67\x59\x51\x72']['\x6c\x65\x6e\x67\x74\x68'];}return _0x64750(this['\x79\x48\x67\x59\x51\x72'][-0xc99+0xf3e*-0x1+0x1bd7]);},(''+function(){return 0x10d6+-0x1*0x21b5+0x10df;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x171+0x1*0x116d+-0x12dd)&&new _0x35c70d(_0x3579)['\x6e\x53\x61\x68\x43\x66'](),_0x3579['\x55\x74\x62\x57\x58\x6d']=!![];}_0x3d7853=_0x3579['\x45\x4b\x4b\x4d\x73\x59'](_0x3d7853,_0xaddcac),_0x3579['\x68\x6d\x74\x77\x68\x4d'][_0x33b7ea]=_0x3d7853;}else _0x3d7853=_0x2d65ce;return _0x3d7853;}function _0x3de084(_0x5e7681){const _0x48b579=_0x2d8021,_0x6c2800={'\x77\x67\x77\x6d\x4d':_0x48b579(0x1fc,'\x54\x51\x61\x31')+_0x48b579(0x2d3,'\x4b\x59\x54\x75'),'\x4b\x52\x54\x65\x65':function(_0x1699ce,_0x3b3f8e){return _0x1699ce(_0x3b3f8e);},'\x65\x69\x42\x43\x70':_0x48b579(0x2f8,'\x36\x4d\x7a\x78')+'\x6f\x72','\x4c\x49\x54\x4a\x48':function(_0x6e3a03,_0x36963d){return _0x6e3a03===_0x36963d;},'\x4e\x6a\x65\x4c\x63':'\x70\x4a\x68\x65\x6b','\x73\x58\x44\x43\x4b':_0x48b579(0x2d8,'\x26\x29\x78\x57')},_0x3904eb=_0x6c2800[_0x48b579(0x27c,'\x54\x4a\x64\x52')](_0x181bd1,_0x5e7681);let _0x1e23fb=[];try{const {tokenize:_0xc6188e}=require(_0x6c2800[_0x48b579(0x29a,'\x71\x79\x29\x25')]),_0x52f547=new Set();for(const _0x275079 of _0x6c2800[_0x48b579(0x37c,'\x24\x6b\x6b\x55')](_0xc6188e,_0x5e7681)){if(!_0x52f547[_0x48b579(0x2de,'\x31\x79\x55\x47')](_0x275079)){if(_0x6c2800[_0x48b579(0x1ff,'\x37\x51\x38\x26')](_0x6c2800[_0x48b579(0x36f,'\x71\x79\x29\x25')],_0x6c2800[_0x48b579(0x297,'\x38\x5a\x56\x68')]))return _0x20b53e[_0x48b579(0x294,'\x5b\x56\x57\x70')]()['\x73\x65\x61\x72\x63\x68'](_0x48b579(0x332,'\x31\x79\x55\x47')+'\x2b\x29\x2b\x24')[_0x48b579(0x36b,'\x30\x35\x5e\x7a')]()[_0x48b579(0x23d,'\x40\x79\x41\x38')+'\x74\x6f\x72'](_0x425b31)[_0x48b579(0x27f,'\x33\x74\x51\x49')](IXIgwe['\x77\x67\x77\x6d\x4d']);else _0x52f547[_0x48b579(0x1f7,'\x4b\x59\x54\x75')](_0x275079),_0x1e23fb[_0x48b579(0x234,'\x76\x69\x58\x71')](_0x275079);}if(_0x1e23fb[_0x48b579(0x1f8,'\x70\x57\x51\x50')]>=_0x443689)break;}}catch(_0x580e36){_0x1e23fb=[];}const _0xc08115=new Set();for(const _0x3c0e84 of _0x3904eb)_0xc08115[_0x48b579(0x20c,'\x6b\x6a\x26\x38')](_0x3c0e84);for(const _0x4f400f of _0x1e23fb)_0xc08115[_0x48b579(0x2fa,'\x47\x2a\x5b\x6b')](_0x4f400f);return Array[_0x48b579(0x20f,'\x6d\x24\x74\x4d')](_0xc08115);}async function _0x856cbd(_0x18893f,_0x3ffe1f){const _0x533528=_0x2d8021,_0x51adc9={'\x6f\x61\x70\x6c\x7a':function(_0x2466dc,_0x17ddde){return _0x2466dc(_0x17ddde);},'\x50\x71\x4f\x63\x56':_0x533528(0x1e0,'\x65\x48\x21\x46')+_0x533528(0x1c2,'\x31\x79\x55\x47'),'\x6f\x50\x78\x7a\x46':function(_0x39c0f8,_0x1874ab){return _0x39c0f8(_0x1874ab);},'\x69\x73\x44\x71\x51':_0x533528(0x363,'\x31\x21\x58\x79')+_0x533528(0x35d,'\x23\x74\x4e\x49'),'\x55\x6d\x62\x66\x4e':function(_0x524615,_0x468c24){return _0x524615>_0x468c24;},'\x74\x61\x46\x47\x58':function(_0x3a5115,_0x3e53f2){return _0x3a5115(_0x3e53f2);},'\x49\x7a\x79\x46\x41':_0x533528(0x2a1,'\x71\x5a\x26\x63')+_0x533528(0x29b,'\x24\x6b\x6b\x55'),'\x4f\x71\x46\x58\x7a':_0x533528(0x262,'\x34\x36\x56\x40')+'\x6f\x72','\x6e\x77\x50\x6d\x4e':function(_0x9a2af7,_0x4952dd){return _0x9a2af7===_0x4952dd;},'\x59\x6a\x52\x55\x75':_0x533528(0x384,'\x25\x67\x67\x57'),'\x6d\x63\x63\x4e\x64':_0x533528(0x2c0,'\x24\x6b\x6b\x55'),'\x79\x6c\x76\x79\x46':'\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x67\x5a\x51\x75\x55':function(_0x3873b3,_0x310239){return _0x3873b3===_0x310239;},'\x69\x4e\x53\x71\x6e':'\x56\x79\x4c\x47\x59','\x79\x6e\x48\x45\x54':function(_0x28daea,_0x3cb7ff){return _0x28daea!==_0x3cb7ff;},'\x66\x66\x77\x69\x62':_0x533528(0x265,'\x71\x79\x29\x25'),'\x44\x53\x4e\x49\x66':function(_0x2f9930){return _0x2f9930();},'\x54\x52\x47\x74\x75':_0x533528(0x2f9,'\x31\x79\x55\x47'),'\x71\x48\x71\x57\x6e':_0x533528(0x1ce,'\x64\x49\x25\x61'),'\x69\x4d\x78\x62\x63':_0x533528(0x235,'\x78\x4a\x5d\x72'),'\x61\x46\x56\x67\x5a':function(_0x572f32,_0x1f662a){return _0x572f32(_0x1f662a);},'\x47\x79\x45\x46\x58':function(_0x4273d8,_0x2b6399){return _0x4273d8<_0x2b6399;},'\x4b\x72\x4b\x67\x4d':function(_0x7835f8,_0x1fcdfe){return _0x7835f8===_0x1fcdfe;},'\x75\x6a\x53\x72\x5a':_0x533528(0x33a,'\x37\x51\x38\x26')};let _0x4617c8,_0x217be3;try{_0x4617c8=_0x51adc9[_0x533528(0x398,'\x6d\x24\x74\x4d')](require,_0x533528(0x2ea,'\x71\x5a\x26\x63')+_0x533528(0x28a,'\x71\x5a\x26\x63')),_0x217be3=_0x51adc9[_0x533528(0x1e2,'\x71\x79\x29\x25')](require,_0x51adc9[_0x533528(0x22c,'\x38\x5a\x56\x68')]);}catch(_0x18eba6){if(_0x51adc9[_0x533528(0x2dc,'\x78\x4a\x5d\x72')](_0x51adc9[_0x533528(0x1e6,'\x51\x64\x58\x73')],_0x51adc9[_0x533528(0x2e7,'\x25\x45\x6a\x6a')]))_0x527f4b=_0x51adc9[_0x533528(0x310,'\x69\x21\x6a\x68')](_0x4d8251,_0x51adc9[_0x533528(0x352,'\x4d\x6b\x67\x69')]),_0x1315e4=_0x51adc9['\x6f\x50\x78\x7a\x46'](_0x179ef8,_0x51adc9[_0x533528(0x1f3,'\x32\x40\x62\x72')]);else return[];}try{if(typeof _0x4617c8[_0x533528(0x26b,'\x69\x21\x6a\x68')+_0x533528(0x2ac,'\x67\x42\x72\x37')+'\x64']===_0x51adc9[_0x533528(0x20b,'\x26\x29\x78\x57')]&&!_0x4617c8[_0x533528(0x24b,'\x33\x74\x51\x49')+'\x69\x63\x45\x6e\x61\x62\x6c\x65'+'\x64']())return[];}catch(_0x3ad0dc){}let _0x3833f3='';try{_0x3833f3=(typeof _0x217be3['\x67\x65\x74\x48\x75\x62\x55\x72'+'\x6c']===_0x533528(0x37d,'\x70\x35\x71\x4e')?_0x217be3['\x67\x65\x74\x48\x75\x62\x55\x72'+'\x6c']():_0x4617c8[_0x533528(0x366,'\x25\x37\x79\x41')+'\x6c']())||'',_0x3833f3=_0x3833f3[_0x533528(0x2bd,'\x33\x74\x51\x49')](/\/+$/,'');}catch(_0x348e48){if(_0x51adc9[_0x533528(0x34e,'\x54\x4a\x64\x52')](_0x51adc9[_0x533528(0x331,'\x4c\x61\x57\x74')],_0x51adc9[_0x533528(0x21a,'\x25\x37\x79\x41')]))_0x3833f3='';else{const _0x43387d=_0x3b6a91(_0x5b41f4.env.EVOLVER_RECALL_MAX,-0x10*0x1ba+0x2047+-0x49d);return _0xeec62b[_0x533528(0x21e,'\x79\x44\x26\x79')](_0x43387d)&&sjTXWC[_0x533528(0x275,'\x69\x21\x6a\x68')](_0x43387d,-0x14e9+-0x1909*0x1+0x1*0x2df2)&&_0x43387d<=-0x161d+-0x21+0x1648?_0x43387d:-0x17d6+0x1af9*0x1+-0x322;}}if(!_0x3833f3)return[];let _0x229378={};try{_0x229378=_0x217be3['\x62\x75\x69\x6c\x64\x48\x75\x62'+'\x48\x65\x61\x64\x65\x72\x73']();}catch(_0x2fc6b7){_0x229378={};}let _0x773499=[];try{_0x773499=await _0x4617c8[_0x533528(0x35f,'\x6b\x6a\x26\x38')+'\x61\x6e\x74\x69\x63\x52\x65\x73'+_0x533528(0x34f,'\x45\x59\x67\x4a')](_0x3833f3,_0x229378,_0x18893f,_0x3ffe1f);}catch(_0x24c5d8){if(_0x51adc9[_0x533528(0x210,'\x2a\x68\x78\x76')](_0x533528(0x2cc,'\x25\x45\x6a\x6a'),_0x51adc9['\x66\x66\x77\x69\x62']))_0x565035=-0x2*0x5bf+0x2f6*-0x5+0x1a4c;else return[];}if(!Array[_0x533528(0x202,'\x51\x64\x58\x73')](_0x773499))return[];const _0x5f3375=_0x51adc9[_0x533528(0x2b8,'\x41\x43\x58\x51')](_0x347851);let _0x2d5088='';try{_0x2d5088=_0x217be3[_0x533528(0x361,'\x25\x45\x6a\x6a')+'\x64']()||'';}catch(_0x29d9da){_0x2d5088='';}const _0x43b88f=[];for(const _0x3c654b of _0x773499){if(_0x51adc9[_0x533528(0x264,'\x25\x37\x79\x41')](_0x51adc9[_0x533528(0x389,'\x4c\x4c\x58\x45')],_0x51adc9[_0x533528(0x218,'\x37\x51\x38\x26')]))_0x3ff23b=_0x51adc9[_0x533528(0x32d,'\x5b\x56\x57\x70')](_0x164bed,_0x51adc9[_0x533528(0x321,'\x71\x5a\x26\x63')])[_0x533528(0x30a,'\x32\x40\x62\x72')+'\x73']()||[],_0x272382=_0x113942(_0x51adc9[_0x533528(0x380,'\x70\x57\x51\x50')]);else{if(!_0x3c654b||_0x51adc9[_0x533528(0x2af,'\x6f\x6a\x6f\x73')](typeof _0x3c654b,_0x51adc9[_0x533528(0x355,'\x54\x51\x61\x31')]))continue;const _0x3443e4=_0x51adc9[_0x533528(0x2cf,'\x31\x21\x58\x79')](Number,_0x3c654b[_0x533528(0x26a,'\x24\x6b\x6b\x55')+_0x533528(0x38e,'\x31\x21\x58\x79')+_0x533528(0x1c8,'\x54\x66\x62\x72')]);if(!Number[_0x533528(0x243,'\x25\x67\x67\x57')](_0x3443e4)||_0x51adc9[_0x533528(0x2a8,'\x69\x21\x6a\x68')](_0x3443e4,_0x5f3375))continue;if(_0x2d5088&&_0x3c654b[_0x533528(0x2c8,'\x67\x42\x72\x37')+_0x533528(0x31d,'\x70\x35\x71\x4e')]&&_0x51adc9[_0x533528(0x260,'\x40\x79\x41\x38')](_0x3c654b[_0x533528(0x211,'\x51\x43\x4c\x67')+'\x6f\x64\x65\x5f\x69\x64'],_0x2d5088))continue;const _0x52c54c={};_0x52c54c[_0x533528(0x2e3,'\x70\x35\x71\x4e')]=_0x3c654b[_0x533528(0x20e,'\x47\x2a\x5b\x6b')]||_0x3c654b[_0x533528(0x1ee,'\x30\x35\x5e\x7a')]||'',_0x52c54c[_0x533528(0x2ae,'\x70\x57\x51\x50')+'\x6f\x64\x65\x5f\x69\x64']=_0x3c654b[_0x533528(0x309,'\x30\x35\x5e\x7a')+_0x533528(0x248,'\x6b\x6a\x26\x38')]||'',_0x52c54c[_0x533528(0x25f,'\x4c\x61\x57\x74')]=_0x3c654b[_0x533528(0x330,'\x69\x21\x6a\x68')]||'',_0x52c54c[_0x533528(0x22f,'\x70\x35\x71\x4e')+'\x74\x79']=_0x3443e4,_0x52c54c['\x74\x69\x74\x6c\x65']=_0x3c654b[_0x533528(0x2ca,'\x25\x45\x6a\x6a')+_0x533528(0x212,'\x71\x79\x29\x25')]||_0x3c654b[_0x533528(0x317,'\x47\x2a\x5b\x6b')]||_0x3c654b[_0x533528(0x378,'\x54\x66\x62\x72')]||'',_0x52c54c[_0x533528(0x38b,'\x4a\x28\x61\x4a')]=_0x3c654b[_0x533528(0x347,'\x70\x57\x51\x50')+'\x72\x79']||_0x3c654b[_0x533528(0x32f,'\x71\x5a\x26\x63')]||'',_0x52c54c[_0x533528(0x313,'\x6d\x24\x74\x4d')]=_0x51adc9[_0x533528(0x1e9,'\x78\x4a\x5d\x72')],_0x43b88f[_0x533528(0x26f,'\x4a\x28\x61\x4a')](_0x52c54c);}}return _0x43b88f;}function _0x413cb7(_0x2a49a5){const _0x5bfbd3=_0x2d8021,_0x1e4970={'\x54\x6d\x4f\x67\x65':function(_0x4e9a6a,_0x1c2a76){return _0x4e9a6a===_0x1c2a76;},'\x78\x70\x73\x64\x57':_0x5bfbd3(0x339,'\x34\x36\x56\x40'),'\x55\x45\x4b\x44\x6e':function(_0x1d3f15,_0xede97){return _0x1d3f15(_0xede97);},'\x42\x4a\x58\x59\x59':_0x5bfbd3(0x2db,'\x32\x40\x62\x72')+'\x74\x6f\x72\x65','\x43\x52\x68\x44\x54':function(_0x100472,_0x1830be){return _0x100472(_0x1830be);},'\x5a\x69\x58\x66\x56':_0x5bfbd3(0x2f5,'\x51\x64\x58\x73')+'\x6f\x72','\x52\x69\x43\x68\x52':function(_0x479d42,_0x17fae1){return _0x479d42!==_0x17fae1;},'\x43\x71\x67\x73\x58':function(_0x500768,_0x521fa6){return _0x500768<_0x521fa6;},'\x59\x6e\x45\x62\x72':_0x5bfbd3(0x2d6,'\x71\x5a\x26\x63'),'\x4e\x70\x6a\x48\x56':_0x5bfbd3(0x1fe,'\x69\x21\x6a\x68'),'\x57\x6f\x56\x56\x70':_0x5bfbd3(0x396,'\x54\x51\x61\x31'),'\x43\x66\x49\x54\x57':function(_0x168c22,_0x49f9fd){return _0x168c22===_0x49f9fd;},'\x6e\x73\x4b\x44\x77':_0x5bfbd3(0x316,'\x7a\x5d\x50\x24'),'\x4b\x6e\x56\x52\x6a':_0x5bfbd3(0x249,'\x65\x48\x21\x46'),'\x4d\x42\x52\x45\x6b':function(_0x34624c,_0x286e30){return _0x34624c+_0x286e30;},'\x44\x76\x6a\x76\x54':function(_0x1d5a16,_0x51735a){return _0x1d5a16*_0x51735a;},'\x67\x5a\x52\x4b\x41':'\x6c\x6f\x63\x61\x6c'};let _0x11d0d2=[],_0x2fd510;try{_0x1e4970[_0x5bfbd3(0x368,'\x6d\x24\x74\x4d')](_0x5bfbd3(0x34a,'\x5b\x56\x57\x70'),_0x1e4970[_0x5bfbd3(0x351,'\x25\x37\x79\x41')])?_0x22c9a0=[]:(_0x11d0d2=_0x1e4970[_0x5bfbd3(0x2ec,'\x54\x66\x62\x72')](require,_0x1e4970[_0x5bfbd3(0x219,'\x7a\x5d\x50\x24')])[_0x5bfbd3(0x1d4,'\x25\x37\x79\x41')+'\x73']()||[],_0x2fd510=_0x1e4970[_0x5bfbd3(0x2f1,'\x45\x59\x67\x4a')](require,_0x1e4970[_0x5bfbd3(0x214,'\x51\x64\x58\x73')]));}catch(_0x232641){return[];}if(!Array[_0x5bfbd3(0x1fd,'\x33\x74\x51\x49')](_0x11d0d2)||_0x11d0d2['\x6c\x65\x6e\x67\x74\x68']===0x182*-0x11+-0x4+0x19a6||!_0x2fd510)return[];const _0x5a381f=[];for(const _0x388768 of _0x11d0d2){if(!_0x388768||_0x1e4970[_0x5bfbd3(0x1d8,'\x25\x37\x79\x41')](_0x388768[_0x5bfbd3(0x2a0,'\x4c\x61\x57\x74')],_0x5bfbd3(0x2bc,'\x30\x35\x5e\x7a')))continue;const _0xcab244=Array[_0x5bfbd3(0x280,'\x47\x2a\x5b\x6b')](_0x388768[_0x5bfbd3(0x27a,'\x65\x48\x21\x46')+_0x5bfbd3(0x33b,'\x51\x43\x4c\x67')])?_0x388768[_0x5bfbd3(0x27a,'\x65\x48\x21\x46')+_0x5bfbd3(0x247,'\x30\x35\x5e\x7a')]:[];let _0x4b9b3e=-0x47*-0x62+0x359*0x5+-0x2beb*0x1;for(const _0x1f455f of _0xcab244){try{if(_0x2fd510[_0x5bfbd3(0x221,'\x31\x79\x55\x47')+'\x74\x65\x72\x6e\x54\x6f\x53\x69'+_0x5bfbd3(0x27e,'\x76\x69\x58\x71')](_0x1f455f,_0x2a49a5))_0x4b9b3e++;}catch(_0x531c44){}}if(_0x1e4970[_0x5bfbd3(0x36c,'\x4b\x59\x54\x75')](_0x4b9b3e,0xd*-0x27c+0x61b*-0x6+0x44ef))continue;let _0xbf81ab=-0xd0a+-0x1*-0x1355+-0x3*0x219;try{_0xbf81ab=_0x2fd510[_0x5bfbd3(0x1f9,'\x25\x37\x79\x41')+_0x5bfbd3(0x29e,'\x4d\x6b\x67\x69')+'\x63'](_0x388768,_0x2a49a5)||0x576+-0x1*-0x201d+0x1*-0x2593;}catch(_0xea5a18){_0xbf81ab=0xf8*0x3+-0xa20+0x3*0x268;}let _0x30b33d=(_0x388768[_0x5bfbd3(0x2fc,'\x31\x79\x55\x47')]||'')[_0x5bfbd3(0x31f,'\x25\x45\x6a\x6a')]()[_0x5bfbd3(0x319,'\x7a\x5d\x50\x24')]();if(!_0x30b33d&&_0x388768[_0x5bfbd3(0x367,'\x76\x69\x58\x71')]&&typeof _0x388768[_0x5bfbd3(0x373,'\x4c\x61\x57\x74')]===_0x1e4970[_0x5bfbd3(0x308,'\x4d\x6b\x67\x69')]){const _0x16844b=[];if(Array[_0x5bfbd3(0x1dc,'\x40\x79\x41\x38')](_0x388768[_0x5bfbd3(0x367,'\x76\x69\x58\x71')]['\x73\x74\x65\x70\x73']))_0x16844b[_0x5bfbd3(0x392,'\x4c\x61\x57\x74')](_0x388768[_0x5bfbd3(0x263,'\x6f\x6a\x6f\x73')][_0x5bfbd3(0x285,'\x79\x44\x26\x79')][_0x5bfbd3(0x2cd,'\x78\x4a\x5d\x72')](0x2*0xd79+0x140e+0x1*-0x2f00,-0x4*0x5ef+-0x12a2+0x23b*0x13)[_0x5bfbd3(0x325,'\x67\x42\x72\x37')]('\x3b\x20'));if(typeof _0x388768[_0x5bfbd3(0x381,'\x67\x42\x72\x37')][_0x5bfbd3(0x2cb,'\x32\x40\x62\x72')]===_0x1e4970[_0x5bfbd3(0x2b2,'\x4d\x6b\x67\x69')])_0x16844b[_0x5bfbd3(0x318,'\x79\x44\x26\x79')](_0x388768[_0x5bfbd3(0x1fb,'\x37\x51\x38\x26')][_0x5bfbd3(0x1e8,'\x63\x4c\x69\x78')]);_0x30b33d=_0x16844b[_0x5bfbd3(0x1d5,'\x69\x21\x6a\x68')](Boolean)[_0x5bfbd3(0x28d,'\x26\x29\x78\x57')](_0x1e4970[_0x5bfbd3(0x2b6,'\x24\x6b\x6b\x55')])[_0x5bfbd3(0x2a9,'\x47\x2a\x5b\x6b')]();}if(!_0x30b33d){if(_0x1e4970[_0x5bfbd3(0x28f,'\x32\x40\x62\x72')](_0x1e4970[_0x5bfbd3(0x2b7,'\x4b\x59\x54\x75')],_0x1e4970[_0x5bfbd3(0x267,'\x71\x5a\x26\x63')]))return;else{const _0x248ec6=_0xcab244[_0x5bfbd3(0x30f,'\x51\x43\x4c\x67')](_0x198f63=>String(_0x198f63)[_0x5bfbd3(0x307,'\x69\x21\x6a\x68')]('\x7c')[-0x1f37*0x1+-0xab0+0x11*0x277])[_0x5bfbd3(0x2da,'\x76\x69\x58\x71')](_0x3918e8=>_0x3918e8&&!_0x3918e8[_0x5bfbd3(0x30c,'\x71\x5a\x26\x63')+'\x74\x68']('\x2f'))[_0x5bfbd3(0x386,'\x40\x79\x41\x38')](0x1*-0x1b6f+0x865+-0x985*-0x2,0x2a8*-0x4+-0x146e+0x1f12);if(_0x248ec6[_0x5bfbd3(0x34c,'\x41\x43\x58\x51')])_0x30b33d=_0x1e4970[_0x5bfbd3(0x2c4,'\x2a\x68\x78\x76')](_0x5bfbd3(0x2dd,'\x2a\x68\x78\x76')+'\x20',_0x248ec6[_0x5bfbd3(0x31b,'\x40\x79\x41\x38')]('\x2c\x20'));}}_0x5a381f[_0x5bfbd3(0x240,'\x69\x21\x6a\x68')]({'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x388768[_0x5bfbd3(0x359,'\x51\x64\x58\x73')]||'','\x73\x6f\x75\x72\x63\x65\x5f\x6e\x6f\x64\x65\x5f\x69\x64':_0x388768[_0x5bfbd3(0x2b3,'\x40\x79\x41\x38')+_0x5bfbd3(0x320,'\x51\x43\x4c\x67')]||_0x388768[_0x5bfbd3(0x269,'\x6a\x61\x56\x58')+'\x6f\x64\x65\x5f\x69\x64']||'','\x63\x68\x61\x69\x6e\x5f\x69\x64':_0x388768[_0x5bfbd3(0x35e,'\x26\x29\x78\x57')]||'','\x73\x69\x6d\x69\x6c\x61\x72\x69\x74\x79':Math['\x6d\x69\x6e'](0x1*0x20e7+0x3*-0x791+-0x175*0x7,_0x1e4970[_0x5bfbd3(0x32a,'\x63\x4c\x69\x78')](0x15f4+0xd7a+-0x236e+0.75+_0x1e4970[_0x5bfbd3(0x27d,'\x31\x79\x55\x47')](0x9*-0x22e+0x35*-0xa4+-0x3592*-0x1+0.05,_0x4b9b3e),_0x1e4970[_0x5bfbd3(0x245,'\x40\x79\x41\x38')](-0x4a2+-0xda4+0x1*0x1246+0.1,_0xbf81ab))),'\x74\x69\x74\x6c\x65':_0x388768['\x69\x64']||_0x388768[_0x5bfbd3(0x2d5,'\x7a\x62\x66\x44')+_0x5bfbd3(0x371,'\x31\x79\x55\x47')]||'','\x73\x75\x6d\x6d\x61\x72\x79':_0x30b33d,'\x6f\x72\x69\x67\x69\x6e':_0x1e4970[_0x5bfbd3(0x290,'\x4d\x6b\x67\x69')],'\x5f\x68\x69\x74\x73':_0x4b9b3e});}return _0x5a381f;}function _0x584113(_0x4abfe7){const _0x4a75fd=_0x2d8021,_0x5ea98c={'\x76\x6e\x49\x4f\x42':function(_0x929b4c,_0x5add5d){return _0x929b4c(_0x5add5d);},'\x75\x50\x75\x46\x6b':function(_0x235ec4,_0x408c33){return _0x235ec4(_0x408c33);}},_0xe2620c=(_0x4abfe7&&_0x4abfe7[_0x4a75fd(0x27b,'\x7a\x62\x66\x44')]?_0x5ea98c[_0x4a75fd(0x33c,'\x36\x4d\x7a\x78')](String,_0x4abfe7[_0x4a75fd(0x1e5,'\x37\x51\x38\x26')]):'')[_0x4a75fd(0x305,'\x36\x4d\x7a\x78')](),_0x5d3477=(_0x4abfe7&&_0x4abfe7['\x73\x75\x6d\x6d\x61\x72\x79']?_0x5ea98c[_0x4a75fd(0x370,'\x38\x5a\x56\x68')](String,_0x4abfe7[_0x4a75fd(0x208,'\x79\x44\x26\x79')]):'')[_0x4a75fd(0x228,'\x67\x42\x72\x37')]();return!!(_0xe2620c||_0x5d3477);}function _0x30a185(_0x35a648){const _0x23d2a4=_0x2d8021,_0x25f6cd={};_0x25f6cd['\x68\x5a\x42\x6a\x6b']=_0x23d2a4(0x2be,'\x6b\x6a\x26\x38')+'\x20\u2014\x20\x72\x65\x6c\x65\x76'+_0x23d2a4(0x337,'\x23\x74\x4e\x49')+_0x23d2a4(0x204,'\x78\x4a\x5d\x72')+_0x23d2a4(0x1c5,'\x51\x43\x4c\x67'),_0x25f6cd[_0x23d2a4(0x284,'\x31\x79\x55\x47')]=function(_0x5ee72e,_0x1b7507){return _0x5ee72e!=_0x1b7507;},_0x25f6cd[_0x23d2a4(0x239,'\x25\x45\x6a\x6a')]=_0x23d2a4(0x1ea,'\x64\x49\x25\x61')+_0x23d2a4(0x394,'\x70\x57\x51\x50')+'\x65\x64',_0x25f6cd[_0x23d2a4(0x279,'\x54\x66\x62\x72')]=_0x23d2a4(0x38d,'\x5b\x56\x57\x70'),_0x25f6cd[_0x23d2a4(0x254,'\x51\x43\x4c\x67')]=_0x23d2a4(0x1ca,'\x34\x36\x56\x40')+_0x23d2a4(0x1c7,'\x24\x6b\x6b\x55')+_0x23d2a4(0x2e9,'\x6a\x61\x56\x58')+_0x23d2a4(0x2d2,'\x71\x5a\x26\x63')+_0x23d2a4(0x274,'\x34\x36\x56\x40')+_0x23d2a4(0x2f2,'\x70\x35\x71\x4e')+_0x23d2a4(0x2e8,'\x45\x59\x67\x4a')+_0x23d2a4(0x24d,'\x64\x49\x25\x61')+_0x23d2a4(0x268,'\x4b\x59\x54\x75')+'\x70\x6c\x79\x69\x6e\x67\x2e',_0x25f6cd[_0x23d2a4(0x24e,'\x38\x5a\x56\x68')]=_0x23d2a4(0x376,'\x6a\x61\x56\x58')+_0x23d2a4(0x1de,'\x79\x44\x26\x79')+_0x23d2a4(0x216,'\x4d\x6b\x67\x69')+_0x23d2a4(0x336,'\x26\x29\x78\x57')+_0x23d2a4(0x364,'\x4a\x28\x61\x4a')+_0x23d2a4(0x1e4,'\x40\x79\x41\x38')+_0x23d2a4(0x2a5,'\x51\x43\x4c\x67')+_0x23d2a4(0x252,'\x4b\x59\x54\x75')+_0x23d2a4(0x36e,'\x6d\x24\x74\x4d');const _0x3d6e17=_0x25f6cd,_0x1155a7=(_0x35a648||[])['\x66\x69\x6c\x74\x65\x72'](_0x584113);if(!_0x1155a7[_0x23d2a4(0x38a,'\x63\x4c\x69\x78')])return'';const _0x362daa=[_0x3d6e17[_0x23d2a4(0x237,'\x41\x43\x58\x51')]];let _0x835fa6=![];for(const _0x1a36ee of _0x1155a7){const _0x54e2a7=(_0x1a36ee[_0x23d2a4(0x222,'\x54\x4a\x64\x52')]||'')[_0x23d2a4(0x1c9,'\x71\x5a\x26\x63')]()[_0x23d2a4(0x2ba,'\x4d\x6b\x67\x69')](0x1cd*-0x9+0x7*0x386+-0x5*0x1b1,0x173c+-0x1d2c+0x640),_0x464330=(_0x1a36ee[_0x23d2a4(0x2ff,'\x54\x66\x62\x72')]||'')[_0x23d2a4(0x1f0,'\x6f\x6a\x6f\x73')]()[_0x23d2a4(0x1db,'\x30\x35\x5e\x7a')](/\s+/g,'\x20')[_0x23d2a4(0x383,'\x79\x44\x26\x79')]()[_0x23d2a4(0x229,'\x6a\x61\x56\x58')](-0xc6a+0x1c9e+-0x1034,_0x5ddef2),_0x3a97b9=_0x3d6e17[_0x23d2a4(0x2c5,'\x32\x40\x62\x72')](_0x1a36ee[_0x23d2a4(0x2b4,'\x54\x51\x61\x31')+'\x74\x79'],null)?_0x1a36ee[_0x23d2a4(0x226,'\x31\x79\x55\x47')+'\x74\x79'][_0x23d2a4(0x22e,'\x2a\x68\x78\x76')](-0x8f8+-0x19cf+-0x1*-0x22c9):'\x3f',_0x1caf1d=_0x1a36ee[_0x23d2a4(0x38c,'\x24\x6b\x6b\x55')]?_0x23d2a4(0x26c,'\x5b\x56\x57\x70')+_0x1a36ee[_0x23d2a4(0x299,'\x32\x40\x62\x72')]:_0x3d6e17[_0x23d2a4(0x227,'\x31\x21\x58\x79')];if(_0x1a36ee[_0x23d2a4(0x37e,'\x63\x4c\x69\x78')])_0x835fa6=!![];_0x362daa['\x70\x75\x73\x68']('\x2d\x20'+(_0x54e2a7?_0x23d2a4(0x388,'\x33\x74\x51\x49')+_0x54e2a7+'\x22':_0x3d6e17[_0x23d2a4(0x397,'\x79\x44\x26\x79')])+'\x20\x28'+_0x1caf1d+_0x23d2a4(0x25d,'\x34\x36\x56\x40')+_0x3a97b9+'\x29'+(_0x464330?'\x3a\x20'+_0x464330:''));}_0x362daa[_0x23d2a4(0x353,'\x63\x4c\x69\x78')](_0x3d6e17[_0x23d2a4(0x28b,'\x79\x44\x26\x79')]);if(_0x835fa6)_0x362daa[_0x23d2a4(0x2e0,'\x6f\x6a\x6f\x73')](_0x3d6e17[_0x23d2a4(0x356,'\x7a\x62\x66\x44')]);const _0x5153b3=_0x362daa[_0x23d2a4(0x2e5,'\x65\x48\x21\x46')]('\x0a');return _0x5153b3[_0x23d2a4(0x22a,'\x23\x74\x4e\x49')]>_0x44d059?_0x5153b3[_0x23d2a4(0x296,'\x70\x35\x71\x4e')](0x1c22+0x1eb0+-0x2*0x1d69,_0x44d059):_0x5153b3;}function _0x17fccd(_0x24b879,_0x5284a9,_0x4bea04,_0x4803e6){const _0x35cfd3=_0x2d8021,_0x56e544={'\x4c\x58\x6d\x6e\x6c':function(_0x289739,_0x31d7b8){return _0x289739(_0x31d7b8);},'\x61\x77\x54\x76\x75':function(_0x577fc9,_0xd51171){return _0x577fc9===_0xd51171;},'\x42\x74\x57\x44\x56':_0x35cfd3(0x341,'\x79\x44\x26\x79'),'\x57\x68\x62\x68\x66':_0x35cfd3(0x207,'\x51\x43\x4c\x67')+_0x35cfd3(0x2d7,'\x31\x21\x58\x79')+_0x35cfd3(0x1eb,'\x23\x74\x4e\x49'),'\x6d\x45\x4e\x55\x74':'\x6c\x6f\x63\x61\x6c\x5f\x67\x65'+_0x35cfd3(0x242,'\x64\x49\x25\x61')+_0x35cfd3(0x315,'\x4d\x6b\x67\x69'),'\x47\x50\x48\x75\x4f':_0x35cfd3(0x377,'\x25\x45\x6a\x6a')+_0x35cfd3(0x23a,'\x30\x35\x5e\x7a'),'\x4a\x57\x4c\x59\x58':function(_0x104992,_0x3bf17d){return _0x104992(_0x3bf17d);},'\x47\x55\x6d\x4b\x65':_0x35cfd3(0x2e2,'\x67\x42\x72\x37')+'\x61\x6c\x6c\x4c\x6f\x67','\x78\x77\x57\x48\x63':function(_0x66c78,_0x4727fe){return _0x66c78!==_0x4727fe;},'\x42\x78\x5a\x74\x6f':_0x35cfd3(0x295,'\x6f\x6a\x6f\x73'),'\x73\x71\x4d\x4a\x53':_0x35cfd3(0x31e,'\x51\x64\x58\x73'),'\x68\x43\x55\x4b\x65':_0x35cfd3(0x2a7,'\x45\x59\x67\x4a')+_0x35cfd3(0x323,'\x25\x45\x6a\x6a'),'\x5a\x42\x61\x6b\x66':'\x61\x73\x73\x65\x74\x5f\x69\x6e'+_0x35cfd3(0x343,'\x51\x43\x4c\x67')+_0x35cfd3(0x217,'\x6d\x24\x74\x4d'),'\x57\x43\x44\x6c\x77':_0x35cfd3(0x35a,'\x4b\x59\x54\x75'),'\x63\x4a\x6f\x74\x4f':'\x63\x6f\x72\x72\x65\x6c\x61\x74'+'\x69\x6f\x6e\x61\x6c\x5f\x6c\x6f'+_0x35cfd3(0x205,'\x51\x64\x58\x73')};let _0x1a2d47;try{({logAssetCall:_0x1a2d47}=_0x56e544[_0x35cfd3(0x1f1,'\x25\x37\x79\x41')](require,_0x56e544[_0x35cfd3(0x36a,'\x41\x43\x58\x51')]));}catch(_0x4bdc19){if(_0x56e544[_0x35cfd3(0x25a,'\x30\x35\x5e\x7a')](_0x56e544[_0x35cfd3(0x2ce,'\x25\x37\x79\x41')],_0x56e544[_0x35cfd3(0x1d3,'\x24\x6b\x6b\x55')]))try{_0x56e544['\x4c\x58\x6d\x6e\x6c'](_0x42f32f,{'\x72\x75\x6e\x5f\x69\x64':_0x49dc5d,'\x61\x63\x74\x69\x6f\x6e':_0x47399b,'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x106d7c['\x61\x73\x73\x65\x74\x5f\x69\x64']||_0x41c9a2,'\x61\x73\x73\x65\x74\x5f\x74\x79\x70\x65':_0x35cfd3(0x304,'\x51\x43\x4c\x67'),'\x73\x6f\x75\x72\x63\x65\x5f\x6e\x6f\x64\x65\x5f\x69\x64':_0x3c0732[_0x35cfd3(0x2f7,'\x59\x24\x74\x5e')+_0x35cfd3(0x31d,'\x70\x35\x71\x4e')]||_0x5bfb42,'\x63\x68\x61\x69\x6e\x5f\x69\x64':_0x5240a0[_0x35cfd3(0x2a3,'\x5b\x56\x57\x70')]||_0x35c70d,'\x73\x63\x6f\x72\x65':_0x12b67e['\x73\x69\x6d\x69\x6c\x61\x72\x69'+'\x74\x79'],'\x73\x69\x67\x6e\x61\x6c\x73':_0x349b0e['\x73\x6c\x69\x63\x65'](0x2e*0xce+0x1*0x10f1+-0x35f5,0x20b4+0x1907+-0x1*0x39b3),'\x72\x65\x61\x73\x6f\x6e':_0x56e544[_0x35cfd3(0x2c3,'\x4c\x61\x57\x74')](_0x389f67[_0x35cfd3(0x241,'\x47\x2a\x5b\x6b')],_0x56e544[_0x35cfd3(0x34d,'\x54\x51\x61\x31')])?_0x56e544[_0x35cfd3(0x200,'\x6d\x24\x74\x4d')]:_0x56e544[_0x35cfd3(0x342,'\x23\x74\x4e\x49')],'\x65\x78\x74\x72\x61':{'\x76\x69\x61':_0x56e544[_0x35cfd3(0x276,'\x38\x5a\x56\x68')],'\x61\x74\x74\x72\x69\x62\x75\x74\x69\x6f\x6e':_0x35cfd3(0x34b,'\x2a\x68\x78\x76')+_0x35cfd3(0x32c,'\x6d\x24\x74\x4d')+_0x35cfd3(0x24c,'\x24\x6b\x6b\x55'),'\x6f\x72\x69\x67\x69\x6e':_0x457251[_0x35cfd3(0x241,'\x47\x2a\x5b\x6b')]}});}catch(_0x3c3aab){}else return;}const _0x13ecdb=_0x56e544['\x61\x77\x54\x76\x75'](_0x5284a9,_0x56e544[_0x35cfd3(0x33e,'\x24\x6b\x6b\x55')])?_0x56e544[_0x35cfd3(0x2a6,'\x37\x51\x38\x26')]:_0x56e544[_0x35cfd3(0x302,'\x76\x69\x58\x71')];for(const _0x568bbb of _0x24b879){try{_0x1a2d47({'\x72\x75\x6e\x5f\x69\x64':_0x4bea04,'\x61\x63\x74\x69\x6f\x6e':_0x13ecdb,'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x568bbb[_0x35cfd3(0x2f3,'\x33\x74\x51\x49')]||undefined,'\x61\x73\x73\x65\x74\x5f\x74\x79\x70\x65':_0x56e544[_0x35cfd3(0x329,'\x6b\x6a\x26\x38')],'\x73\x6f\x75\x72\x63\x65\x5f\x6e\x6f\x64\x65\x5f\x69\x64':_0x568bbb[_0x35cfd3(0x292,'\x47\x2a\x5b\x6b')+_0x35cfd3(0x31a,'\x64\x49\x25\x61')]||undefined,'\x63\x68\x61\x69\x6e\x5f\x69\x64':_0x568bbb['\x63\x68\x61\x69\x6e\x5f\x69\x64']||undefined,'\x73\x63\x6f\x72\x65':_0x568bbb[_0x35cfd3(0x2f4,'\x71\x5a\x26\x63')+'\x74\x79'],'\x73\x69\x67\x6e\x61\x6c\x73':_0x4803e6[_0x35cfd3(0x30e,'\x6b\x6a\x26\x38')](-0x1d48+0xd*0x1+0x1d3b,-0xfd7*0x1+-0x1042+0x2021),'\x72\x65\x61\x73\x6f\x6e':_0x568bbb[_0x35cfd3(0x31c,'\x4b\x59\x54\x75')]===_0x56e544[_0x35cfd3(0x303,'\x24\x6b\x6b\x55')]?_0x56e544[_0x35cfd3(0x270,'\x65\x48\x21\x46')]:_0x56e544[_0x35cfd3(0x2c1,'\x6a\x61\x56\x58')],'\x65\x78\x74\x72\x61':{'\x76\x69\x61':_0x56e544[_0x35cfd3(0x283,'\x71\x5a\x26\x63')],'\x61\x74\x74\x72\x69\x62\x75\x74\x69\x6f\x6e':_0x56e544[_0x35cfd3(0x2eb,'\x24\x6b\x6b\x55')],'\x6f\x72\x69\x67\x69\x6e':_0x568bbb[_0x35cfd3(0x29c,'\x32\x40\x62\x72')]}});}catch(_0x13eaf7){}}}async function _0x51cddb(_0x28f240){const _0x531d76=_0x2d8021,_0x372a00={'\x57\x48\x64\x73\x68':function(_0x5bd59a,_0x3c5758){return _0x5bd59a||_0x3c5758;},'\x6c\x70\x48\x6d\x5a':function(_0x3e2372){return _0x3e2372();},'\x73\x52\x50\x57\x4a':function(_0x4d7799,_0x2ebab6){return _0x4d7799===_0x2ebab6;},'\x6f\x68\x51\x49\x43':_0x531d76(0x281,'\x70\x57\x51\x50'),'\x5a\x43\x74\x54\x49':function(_0x184b1d,_0x3310b4){return _0x184b1d(_0x3310b4);},'\x76\x63\x6f\x4a\x41':function(_0x5d64c3,_0x12daec){return _0x5d64c3>_0x12daec;},'\x79\x55\x6c\x73\x63':function(_0x4d8637,_0x4eb67f){return _0x4d8637-_0x4eb67f;},'\x42\x75\x77\x77\x52':function(_0x24022e,_0x8a5013){return _0x24022e-_0x8a5013;},'\x48\x70\x79\x48\x51':function(_0x4b8d43,_0x13317f){return _0x4b8d43>=_0x13317f;},'\x6f\x51\x47\x6c\x66':function(_0x252015,_0x5e9335,_0x31515c){return _0x252015(_0x5e9335,_0x31515c);},'\x4f\x47\x52\x79\x76':function(_0x47c72f){return _0x47c72f();},'\x42\x6f\x58\x48\x50':function(_0x117302,_0x6583cf){return _0x117302(_0x6583cf);},'\x76\x4a\x4a\x67\x46':function(_0xc6115f,_0x4a993c){return _0xc6115f+_0x4a993c;},'\x4d\x76\x45\x57\x76':_0x531d76(0x23e,'\x70\x57\x51\x50'),'\x52\x6b\x69\x56\x73':'\x75\x6e\x6b\x6e\x6f\x77\x6e','\x7a\x53\x74\x62\x6e':function(_0x5463a0,_0x5262bc,_0x53d083,_0x1de8af,_0x54559c){return _0x5463a0(_0x5262bc,_0x53d083,_0x1de8af,_0x54559c);},'\x72\x79\x56\x52\x62':'\x65\x6e\x66\x6f\x72\x63\x65'},_0x3a56fb=_0x372a00[_0x531d76(0x1c6,'\x63\x4c\x69\x78')](_0x28f240,{}),_0x3b7c75=_0x3a56fb[_0x531d76(0x2ee,'\x5b\x56\x57\x70')]||_0x372a00['\x6c\x70\x48\x6d\x5a'](_0x1bbe20),_0x3f5568={};_0x3f5568[_0x531d76(0x2c6,'\x69\x21\x6a\x68')]=![],_0x3f5568[_0x531d76(0x1d0,'\x79\x44\x26\x79')]=null,_0x3f5568[_0x531d76(0x306,'\x40\x79\x41\x38')]=[],_0x3f5568[_0x531d76(0x300,'\x79\x44\x26\x79')]=0x0,_0x3f5568[_0x531d76(0x362,'\x4c\x4c\x58\x45')]=[];if(_0x372a00[_0x531d76(0x375,'\x36\x4d\x7a\x78')](_0x3b7c75,_0x372a00[_0x531d76(0x2b1,'\x25\x37\x79\x41')]))return _0x3f5568;const _0x271488=_0x372a00[_0x531d76(0x2d4,'\x23\x74\x4e\x49')](_0x3de084,_0x3a56fb[_0x531d76(0x29f,'\x31\x79\x55\x47')]),_0x5d736b={};_0x5d736b[_0x531d76(0x314,'\x67\x42\x72\x37')]=![],_0x5d736b[_0x531d76(0x289,'\x4d\x6b\x67\x69')]=null,_0x5d736b[_0x531d76(0x1f4,'\x54\x51\x61\x31')]=[],_0x5d736b[_0x531d76(0x1d6,'\x33\x74\x51\x49')]=0x0,_0x5d736b['\x73\x69\x67\x6e\x61\x6c\x73']=[];if(!_0x271488[_0x531d76(0x379,'\x71\x79\x29\x25')])return _0x5d736b;const _0x51d845=_0x372a00[_0x531d76(0x2b0,'\x67\x42\x72\x37')](_0x413cb7,_0x271488),_0x33a5dd=0x9b1+0xcc7*0x1+-0x15e2;let _0x5b20b6=Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x3a56fb[_0x531d76(0x1d1,'\x6b\x6a\x26\x38')+'\x73'])&&_0x372a00[_0x531d76(0x1da,'\x4b\x59\x54\x75')](_0x3a56fb[_0x531d76(0x287,'\x78\x4a\x5d\x72')+'\x73'],-0x1616+0x1e8+-0x3f*-0x52)?_0x3a56fb[_0x531d76(0x1fa,'\x37\x51\x38\x26')+'\x73']:0x2615+0x22f7+-0x413c;if(Number[_0x531d76(0x346,'\x25\x37\x79\x41')](_0x3a56fb['\x64\x65\x61\x64\x6c\x69\x6e\x65'+'\x4d\x73'])){if(_0x531d76(0x382,'\x65\x48\x21\x46')!==_0x531d76(0x38f,'\x32\x40\x62\x72'))_0x1118c1=_0x474ebe[_0x531d76(0x201,'\x59\x24\x74\x5e')+'\x48\x65\x61\x64\x65\x72\x73']();else{const _0x21ce61=_0x372a00['\x79\x55\x6c\x73\x63'](_0x372a00[_0x531d76(0x2fb,'\x59\x24\x74\x5e')](_0x3a56fb[_0x531d76(0x23c,'\x65\x48\x21\x46')+'\x4d\x73'],Date[_0x531d76(0x24a,'\x71\x5a\x26\x63')]()),_0x33a5dd);_0x5b20b6=Math[_0x531d76(0x206,'\x4a\x28\x61\x4a')](_0x5b20b6,_0x21ce61);}}const _0x49db9a=_0x372a00[_0x531d76(0x2b9,'\x6b\x6a\x26\x38')](_0x5b20b6,-0x81+0x7ab*0x2+-0xda9)?await _0x372a00[_0x531d76(0x36d,'\x67\x42\x72\x37')](_0x856cbd,_0x271488,_0x5b20b6):[],_0x4ecbbb=new Set(),_0x21391f=[];let _0x2eaef0=0x2*-0x101+0x1*0x21c3+0x1fc1*-0x1;for(const _0x231e9a of[..._0x49db9a,..._0x51d845]){const _0x2ac391=_0x231e9a[_0x531d76(0x326,'\x4c\x4c\x58\x45')]||_0x231e9a[_0x531d76(0x26d,'\x41\x43\x58\x51')]+'\x3a'+_0x231e9a['\x74\x69\x74\x6c\x65'];if(_0x2ac391&&_0x4ecbbb[_0x531d76(0x213,'\x23\x74\x4e\x49')](_0x2ac391)){_0x2eaef0++;continue;}if(_0x2ac391)_0x4ecbbb[_0x531d76(0x2e6,'\x25\x67\x67\x57')](_0x2ac391);_0x21391f[_0x531d76(0x2e0,'\x6f\x6a\x6f\x73')](_0x231e9a);}_0x21391f[_0x531d76(0x2c7,'\x25\x67\x67\x57')]((_0x2ac5cf,_0x2486b0)=>(_0x2486b0[_0x531d76(0x1c3,'\x7a\x5d\x50\x24')+'\x74\x79']||-0x44d*-0x3+0x91*-0x15+0x81*-0x2)-(_0x2ac5cf[_0x531d76(0x22f,'\x70\x35\x71\x4e')+'\x74\x79']||0x1aae+0x301+-0x1daf));const _0x38dfad=_0x21391f[_0x531d76(0x1e7,'\x69\x21\x6a\x68')](-0x210c+0xb55+0x15b7,_0x372a00[_0x531d76(0x21c,'\x71\x5a\x26\x63')](_0x4e0f34));_0x2eaef0+=Math[_0x531d76(0x22b,'\x7a\x5d\x50\x24')](0x657+-0x15d4+0xf7d,_0x21391f[_0x531d76(0x1cd,'\x25\x37\x79\x41')]-_0x38dfad[_0x531d76(0x28c,'\x40\x79\x41\x38')]);const _0x77d07d=_0x38dfad['\x66\x69\x6c\x74\x65\x72'](_0x584113);_0x2eaef0+=_0x38dfad[_0x531d76(0x2b5,'\x54\x51\x61\x31')]-_0x77d07d[_0x531d76(0x334,'\x4d\x6b\x67\x69')];const _0x28ba3b={};_0x28ba3b[_0x531d76(0x251,'\x31\x21\x58\x79')]=![],_0x28ba3b[_0x531d76(0x209,'\x64\x49\x25\x61')]=null,_0x28ba3b[_0x531d76(0x2a2,'\x32\x40\x62\x72')]=[],_0x28ba3b[_0x531d76(0x387,'\x6a\x61\x56\x58')]=_0x2eaef0,_0x28ba3b[_0x531d76(0x29d,'\x41\x43\x58\x51')]=_0x271488;if(!_0x77d07d[_0x531d76(0x1f8,'\x70\x57\x51\x50')])return _0x28ba3b;const _0x3a2cd1=_0x372a00[_0x531d76(0x354,'\x38\x5a\x56\x68')](_0x30a185,_0x77d07d),_0x7d1d1e={};_0x7d1d1e[_0x531d76(0x340,'\x4d\x6b\x67\x69')]=![],_0x7d1d1e[_0x531d76(0x37f,'\x6b\x6a\x26\x38')]=null,_0x7d1d1e[_0x531d76(0x230,'\x37\x51\x38\x26')]=[],_0x7d1d1e[_0x531d76(0x238,'\x25\x67\x67\x57')]=_0x2eaef0,_0x7d1d1e[_0x531d76(0x360,'\x6b\x6a\x26\x38')]=_0x271488;if(!_0x3a2cd1)return _0x7d1d1e;const _0x67fb9=_0x3a56fb[_0x531d76(0x348,'\x24\x6b\x6b\x55')]||_0x372a00[_0x531d76(0x312,'\x79\x44\x26\x79')](_0x372a00[_0x531d76(0x2d1,'\x54\x4a\x64\x52')],_0x3a56fb[_0x531d76(0x20a,'\x64\x49\x25\x61')+'\x64']||_0x372a00[_0x531d76(0x2d0,'\x25\x67\x67\x57')]);return _0x372a00[_0x531d76(0x28e,'\x30\x35\x5e\x7a')](_0x17fccd,_0x77d07d,_0x3b7c75,_0x67fb9,_0x271488),{'\x69\x6e\x6a\x65\x63\x74':_0x372a00[_0x531d76(0x338,'\x76\x69\x58\x71')](_0x3b7c75,_0x372a00['\x72\x79\x56\x52\x62']),'\x74\x65\x78\x74':_0x3a2cd1,'\x64\x65\x63\x69\x64\x65\x64':_0x77d07d,'\x64\x72\x6f\x70\x70\x65\x64':_0x2eaef0,'\x73\x69\x67\x6e\x61\x6c\x73':_0x271488};}const _0x510539={};_0x510539[_0x2d8021(0x2fd,'\x4c\x61\x57\x74')+'\x62']=_0x856cbd,_0x510539[_0x2d8021(0x32e,'\x2a\x68\x78\x76')+_0x2d8021(0x232,'\x33\x74\x51\x49')]=_0x413cb7,_0x510539[_0x2d8021(0x374,'\x4d\x6b\x67\x69')+_0x2d8021(0x1dd,'\x47\x2a\x5b\x6b')]=_0x17fccd;const _0x16ca9e={};function _0x5860(){const _0x47d07d=['\x57\x37\x52\x63\x56\x75\x61','\x57\x35\x58\x44\x57\x34\x39\x66\x69\x47','\x63\x6d\x6b\x39\x57\x34\x6e\x4f\x57\x36\x33\x64\x4a\x43\x6f\x66\x75\x47','\x57\x36\x78\x64\x50\x43\x6f\x4b\x57\x37\x42\x64\x53\x43\x6f\x37\x44\x47','\x57\x51\x46\x64\x47\x4c\x4f\x71\x65\x6d\x6f\x55\x63\x43\x6b\x6b','\x61\x43\x6b\x62\x57\x51\x6c\x64\x52\x38\x6b\x52\x57\x37\x79\x34','\x64\x43\x6b\x59\x57\x50\x35\x41\x57\x36\x66\x79\x6e\x43\x6f\x63','\x57\x50\x4c\x65\x69\x62\x58\x4c\x46\x32\x75','\x43\x53\x6b\x69\x57\x36\x71\x6d\x6c\x4a\x75\x2b\x41\x61','\x57\x34\x33\x64\x4b\x64\x5a\x64\x55\x47','\x57\x52\x79\x4c\x63\x53\x6f\x67\x57\x50\x74\x63\x48\x47','\x57\x37\x50\x63\x7a\x38\x6f\x75\x57\x50\x75','\x57\x51\x42\x64\x54\x31\x5a\x63\x54\x63\x30','\x57\x37\x44\x6d\x46\x67\x42\x63\x55\x75\x58\x50','\x57\x52\x66\x56\x75\x43\x6f\x65\x57\x50\x53','\x67\x43\x6f\x56\x77\x71','\x76\x53\x6f\x36\x63\x76\x76\x50\x57\x51\x70\x63\x50\x74\x4f','\x57\x34\x39\x74\x76\x53\x6f\x74\x57\x50\x54\x76\x72\x4e\x57','\x57\x51\x6d\x6a\x57\x4f\x54\x72\x68\x6d\x6b\x73\x57\x51\x70\x64\x47\x61','\x75\x53\x6f\x57\x57\x4f\x47\x4e\x57\x51\x52\x63\x49\x6d\x6f\x75','\x44\x43\x6f\x59\x6e\x57\x64\x63\x4b\x47','\x57\x35\x61\x34\x57\x36\x2f\x64\x50\x57','\x57\x37\x52\x64\x50\x4a\x65\x6e\x57\x52\x6a\x2b','\x57\x35\x33\x63\x54\x78\x5a\x63\x4d\x6d\x6f\x5a\x76\x38\x6f\x48\x72\x71','\x57\x37\x50\x6e\x76\x78\x2f\x63\x50\x30\x62\x35\x69\x71','\x57\x37\x62\x4f\x79\x43\x6f\x4b\x46\x61','\x57\x4f\x71\x71\x57\x4f\x39\x75\x70\x61','\x73\x75\x54\x65\x70\x6d\x6f\x35','\x66\x43\x6f\x49\x71\x43\x6f\x6f\x57\x4f\x57','\x6e\x32\x31\x63\x57\x36\x68\x64\x47\x66\x4f','\x57\x36\x44\x57\x43\x38\x6f\x49\x57\x51\x61','\x6a\x38\x6b\x6c\x67\x47','\x57\x50\x66\x42\x6e\x62\x58\x4d\x45\x33\x47\x32','\x57\x34\x62\x2b\x42\x61','\x57\x34\x78\x63\x54\x76\x68\x63\x47\x43\x6f\x30\x77\x53\x6b\x31\x71\x47','\x57\x35\x39\x44\x57\x37\x39\x4d\x68\x61','\x6e\x38\x6f\x78\x57\x35\x4b\x55\x61\x5a\x6d\x51\x46\x57','\x57\x35\x44\x57\x75\x38\x6f\x6b\x73\x57\x78\x63\x4a\x68\x43','\x57\x36\x79\x6b\x57\x37\x58\x66\x57\x35\x72\x4d','\x57\x51\x35\x72\x57\x51\x47\x36\x57\x37\x5a\x63\x4e\x53\x6b\x4a\x57\x4f\x65','\x79\x32\x72\x31\x43\x43\x6f\x6d','\x57\x37\x6e\x4e\x57\x34\x74\x63\x48\x78\x79','\x63\x66\x4a\x63\x4a\x38\x6f\x51\x63\x53\x6b\x4b\x57\x52\x42\x64\x4f\x71','\x57\x4f\x65\x6b\x69\x31\x4a\x64\x48\x61','\x57\x36\x48\x33\x65\x43\x6f\x55\x57\x51\x33\x63\x4b\x43\x6f\x75\x57\x4f\x79','\x57\x50\x52\x64\x49\x43\x6b\x73\x57\x52\x6a\x6d\x42\x76\x4a\x63\x4e\x32\x61\x68\x57\x51\x4b','\x43\x4d\x4a\x64\x4f\x47','\x61\x6d\x6f\x30\x79\x53\x6f\x4c\x57\x4f\x43','\x75\x43\x6b\x6e\x57\x36\x75\x4e\x57\x35\x61\x51\x78\x53\x6b\x42\x46\x4d\x39\x4a\x62\x48\x4f','\x44\x68\x4e\x64\x4b\x43\x6f\x58\x57\x51\x4b\x30\x57\x36\x79','\x57\x4f\x64\x64\x4e\x6d\x6f\x78\x57\x36\x57\x73\x63\x57','\x57\x36\x46\x64\x47\x64\x4b\x7a\x57\x52\x61','\x6d\x43\x6b\x2f\x57\x4f\x44\x68\x57\x37\x31\x4d\x70\x38\x6f\x73','\x57\x4f\x53\x75\x57\x51\x35\x66\x6a\x71','\x63\x73\x66\x67\x6f\x6d\x6f\x4a\x6f\x58\x52\x64\x4d\x47','\x57\x4f\x6c\x64\x4b\x38\x6f\x78\x57\x36\x61\x74\x74\x4e\x42\x63\x4a\x61','\x57\x34\x2f\x64\x53\x6d\x6b\x65\x57\x35\x5a\x64\x50\x43\x6f\x4d\x57\x35\x53\x39','\x6a\x6d\x6f\x49\x57\x34\x71\x30\x69\x71','\x65\x68\x68\x63\x54\x43\x6f\x73\x57\x52\x30','\x57\x52\x6c\x63\x53\x43\x6f\x34','\x61\x53\x6b\x6b\x6f\x33\x6a\x72','\x57\x51\x58\x73\x57\x52\x43\x78\x57\x36\x56\x64\x4d\x38\x6b\x48\x57\x50\x61','\x57\x51\x48\x51\x57\x52\x48\x72\x57\x34\x79\x4c\x57\x36\x47\x59','\x57\x37\x58\x53\x7a\x43\x6f\x74\x77\x61\x6c\x63\x4c\x4e\x4b','\x57\x34\x4b\x2b\x57\x34\x2f\x64\x51\x53\x6f\x30\x74\x6d\x6b\x51\x76\x71','\x7a\x43\x6f\x30\x57\x50\x6a\x48\x57\x34\x31\x57','\x57\x51\x68\x64\x4e\x33\x46\x63\x55\x73\x39\x53','\x57\x50\x5a\x49\x47\x50\x64\x64\x4c\x47','\x74\x38\x6f\x38\x70\x66\x71','\x57\x37\x58\x45\x76\x43\x6f\x46\x57\x50\x65','\x65\x38\x6f\x6c\x57\x51\x62\x35','\x57\x50\x65\x53\x6e\x53\x6b\x70\x64\x4c\x37\x63\x4a\x78\x4a\x64\x55\x53\x6f\x4b\x57\x34\x52\x63\x4f\x57','\x57\x52\x71\x31\x61\x75\x46\x64\x4a\x57','\x57\x34\x78\x63\x49\x6d\x6b\x65\x57\x37\x65\x78\x71\x4d\x42\x64\x4d\x61','\x57\x37\x75\x47\x57\x37\x37\x64\x51\x43\x6f\x78','\x57\x37\x6a\x2b\x57\x34\x6e\x62\x70\x61','\x44\x38\x6f\x5a\x57\x50\x6e\x4c\x57\x34\x30\x31\x73\x6d\x6f\x41','\x57\x51\x75\x6c\x6a\x73\x68\x64\x55\x4d\x39\x61\x69\x59\x78\x63\x48\x38\x6f\x37','\x57\x4f\x64\x64\x4a\x47\x6d\x4b\x62\x71','\x57\x35\x48\x46\x75\x6d\x6f\x7a\x57\x50\x7a\x71\x77\x30\x79','\x57\x4f\x6e\x47\x57\x35\x78\x63\x53\x53\x6f\x48','\x43\x4a\x4a\x63\x56\x38\x6f\x4e\x6a\x61','\x71\x53\x6f\x4f\x6e\x62\x78\x63\x4f\x57','\x57\x35\x52\x64\x49\x59\x37\x64\x56\x53\x6b\x2f','\x57\x4f\x54\x6e\x62\x47\x54\x4f\x43\x47','\x57\x37\x5a\x64\x50\x58\x4b\x79\x57\x51\x4c\x58\x57\x51\x6d','\x74\x38\x6f\x5a\x57\x4f\x30','\x57\x37\x58\x33\x79\x4e\x46\x63\x53\x71','\x64\x53\x6b\x30\x6a\x76\x76\x30','\x78\x6d\x6f\x78\x63\x62\x64\x63\x47\x47','\x57\x37\x30\x71\x70\x43\x6f\x65\x57\x34\x34','\x57\x35\x71\x4f\x57\x36\x2f\x64\x55\x57','\x57\x51\x30\x55\x64\x43\x6f\x67\x57\x50\x4a\x63\x48\x38\x6f\x67\x57\x50\x38','\x57\x52\x2f\x63\x54\x6d\x6f\x4f\x57\x52\x6a\x65\x57\x52\x43','\x57\x4f\x72\x4f\x68\x6d\x6f\x45','\x6f\x38\x6b\x68\x62\x71','\x57\x34\x43\x59\x6b\x6d\x6f\x35\x57\x37\x79','\x57\x51\x57\x64\x57\x4f\x54\x66\x68\x6d\x6b\x69','\x57\x50\x47\x63\x65\x65\x79','\x61\x53\x6f\x71\x71\x43\x6f\x70\x57\x4f\x4f','\x45\x33\x76\x52\x62\x6d\x6f\x2f','\x57\x50\x44\x78\x6e\x53\x6f\x48\x57\x37\x34','\x57\x52\x61\x74\x57\x50\x7a\x6b','\x57\x36\x42\x64\x55\x59\x30\x79\x57\x52\x48\x31\x57\x4f\x78\x63\x4b\x47','\x6f\x78\x50\x53\x57\x35\x42\x64\x55\x47','\x43\x6d\x6f\x4f\x57\x52\x6a\x57\x57\x34\x53\x35\x71\x43\x6f\x65','\x57\x36\x4a\x64\x4b\x38\x6b\x35\x57\x37\x74\x64\x4f\x71','\x57\x51\x46\x64\x48\x31\x34\x41\x67\x71','\x57\x34\x7a\x32\x57\x34\x39\x33\x6f\x61','\x61\x43\x6f\x6c\x57\x52\x50\x39\x57\x4f\x62\x6d\x62\x43\x6b\x77','\x77\x77\x62\x72\x6e\x43\x6f\x43\x64\x4a\x5a\x64\x51\x57','\x68\x67\x52\x63\x53\x38\x6f\x48\x57\x52\x47','\x57\x35\x44\x57\x43\x53\x6f\x42','\x76\x32\x66\x6c\x6e\x38\x6f\x62\x70\x57','\x57\x52\x33\x64\x48\x68\x4e\x63\x53\x63\x44\x55\x57\x52\x79','\x57\x50\x76\x45\x61\x43\x6f\x68\x57\x35\x34\x31\x6c\x38\x6f\x49','\x44\x53\x6f\x53\x6d\x71\x37\x63\x48\x38\x6f\x47','\x6a\x53\x6b\x55\x57\x50\x7a\x6c','\x7a\x38\x6f\x6c\x64\x66\x6e\x69\x57\x34\x33\x64\x48\x6d\x6f\x6c','\x78\x68\x7a\x62\x6f\x43\x6f\x6d\x6e\x64\x65','\x7a\x38\x6f\x56\x57\x4f\x62\x54\x57\x35\x43\x70\x72\x53\x6f\x68','\x44\x43\x6b\x6f\x57\x51\x76\x35\x6f\x73\x38\x74\x75\x31\x58\x57','\x57\x4f\x72\x72\x57\x50\x74\x64\x4f\x66\x69\x67\x74\x43\x6b\x57','\x64\x43\x6b\x4e\x57\x50\x74\x64\x4a\x43\x6b\x51','\x57\x52\x33\x63\x49\x43\x6b\x32\x57\x51\x4e\x64\x4a\x66\x47\x44\x66\x71','\x57\x36\x43\x30\x57\x35\x4e\x64\x49\x43\x6f\x62','\x57\x36\x68\x64\x50\x4a\x65\x68','\x68\x4b\x72\x78\x57\x35\x52\x64\x4e\x47','\x57\x37\x43\x4c\x57\x34\x33\x64\x56\x38\x6f\x52','\x57\x52\x52\x63\x54\x53\x6f\x7a\x57\x52\x4c\x65\x57\x51\x62\x32\x57\x35\x71','\x57\x34\x35\x64\x57\x35\x33\x63\x50\x71','\x75\x38\x6f\x36\x57\x50\x34\x30\x57\x51\x78\x63\x47\x43\x6b\x58\x66\x71','\x57\x34\x78\x64\x51\x53\x6b\x2b\x57\x37\x4a\x64\x48\x71','\x57\x4f\x4e\x63\x4c\x53\x6f\x4f\x57\x4f\x6e\x53','\x6c\x6d\x6f\x71\x57\x34\x71\x69\x6e\x57','\x57\x52\x35\x39\x64\x53\x6f\x49\x57\x36\x4b','\x57\x52\x6d\x6a\x57\x50\x62\x71\x63\x38\x6b\x66\x57\x4f\x4e\x64\x4a\x71','\x79\x4e\x37\x64\x4d\x53\x6f\x33\x57\x52\x43\x32\x57\x37\x68\x64\x4b\x47','\x46\x78\x6c\x64\x4d\x43\x6f\x35\x57\x51\x38\x2f','\x57\x37\x72\x57\x76\x53\x6f\x4f\x73\x71','\x57\x51\x44\x68\x57\x50\x6d\x48\x57\x37\x4b','\x57\x4f\x52\x64\x56\x4c\x64\x63\x4c\x59\x61','\x65\x68\x4c\x45\x57\x37\x42\x64\x55\x61','\x57\x4f\x6e\x48\x64\x43\x6f\x6a\x57\x35\x4f','\x6f\x6d\x6f\x6e\x66\x53\x6b\x49\x57\x50\x38','\x70\x38\x6f\x4d\x77\x38\x6f\x69','\x57\x4f\x50\x6e\x66\x58\x76\x51\x45\x78\x6d','\x61\x30\x58\x72\x57\x35\x68\x64\x48\x75\x48\x2b\x74\x71','\x57\x4f\x56\x64\x55\x71\x69\x68\x6d\x61','\x57\x34\x48\x52\x73\x6d\x6f\x54\x43\x71','\x57\x51\x72\x41\x57\x4f\x6a\x53\x57\x35\x30','\x57\x52\x6d\x4f\x63\x43\x6f\x6e','\x6d\x38\x6b\x47\x57\x52\x6a\x79\x57\x36\x79','\x57\x35\x5a\x64\x49\x6d\x6f\x57\x57\x35\x52\x64\x4f\x47','\x79\x4c\x50\x30\x69\x38\x6f\x44','\x57\x34\x4b\x4a\x57\x37\x42\x64\x51\x53\x6f\x36\x77\x71','\x57\x36\x62\x72\x79\x77\x69','\x57\x51\x64\x63\x55\x53\x6f\x50\x57\x51\x76\x67\x57\x51\x44\x66\x57\x35\x38','\x75\x75\x62\x5a\x71\x43\x6f\x4d\x57\x36\x4f','\x57\x50\x44\x56\x77\x6d\x6f\x4b\x57\x51\x70\x64\x49\x53\x6f\x46\x57\x51\x65','\x77\x77\x6e\x73\x69\x53\x6f\x68\x6d\x64\x42\x64\x50\x57','\x57\x4f\x31\x31\x43\x38\x6f\x4d\x57\x51\x69','\x57\x51\x4f\x52\x63\x43\x6f\x61\x57\x50\x69','\x61\x43\x6f\x61\x57\x34\x38\x31\x67\x57','\x57\x36\x34\x49\x57\x34\x62\x68\x57\x36\x30','\x57\x34\x66\x76\x45\x4b\x64\x63\x55\x47','\x44\x62\x5a\x63\x52\x53\x6f\x76\x6e\x57','\x6b\x53\x6b\x6d\x74\x75\x31\x41\x57\x35\x68\x63\x4b\x6d\x6f\x2b','\x57\x36\x69\x44\x57\x37\x6e\x62','\x45\x67\x7a\x4d\x7a\x38\x6f\x6d','\x57\x4f\x72\x48\x57\x34\x37\x63\x52\x6d\x6f\x57\x63\x38\x6f\x5a\x61\x61','\x6a\x53\x6b\x67\x62\x30\x76\x79\x57\x35\x57','\x57\x36\x65\x71\x57\x37\x39\x64\x57\x36\x48\x36\x57\x52\x38\x56','\x57\x51\x53\x50\x6b\x77\x37\x64\x48\x47','\x6f\x77\x76\x6c\x57\x37\x6c\x64\x48\x4c\x4b','\x57\x35\x56\x64\x4a\x63\x70\x64\x50\x53\x6b\x50\x78\x61','\x66\x4a\x58\x64\x69\x38\x6f\x42\x6e\x63\x68\x64\x4e\x61','\x57\x52\x43\x57\x6d\x6d\x6f\x6f\x57\x52\x4b','\x57\x37\x5a\x64\x51\x38\x6f\x77\x57\x37\x5a\x64\x4f\x43\x6f\x37\x79\x43\x6f\x68','\x42\x53\x6f\x2f\x6c\x71','\x57\x37\x37\x63\x4d\x43\x6f\x64\x57\x36\x61\x68','\x57\x34\x5a\x64\x53\x43\x6b\x66\x57\x35\x75','\x6e\x6d\x6b\x54\x42\x4a\x56\x63\x55\x38\x6f\x41\x57\x34\x42\x64\x4d\x66\x65','\x57\x37\x33\x64\x55\x53\x6f\x39\x57\x51\x72\x77\x57\x51\x44\x55\x57\x37\x69','\x57\x52\x78\x64\x4d\x65\x71\x43\x63\x6d\x6f\x71\x65\x53\x6b\x68','\x6e\x4d\x48\x6c\x57\x37\x6c\x64\x47\x65\x31\x56','\x57\x34\x66\x7a\x78\x53\x6f\x7a','\x57\x37\x6a\x41\x44\x57','\x57\x4f\x4c\x4b\x76\x6d\x6f\x79\x57\x52\x6d','\x57\x52\x33\x63\x49\x53\x6b\x58\x57\x36\x5a\x64\x4b\x78\x6e\x70\x77\x57','\x57\x51\x30\x2f\x57\x51\x31\x6a\x57\x35\x4b\x4c\x57\x35\x47\x39','\x7a\x38\x6f\x6c\x62\x76\x76\x7a\x57\x37\x56\x64\x4c\x43\x6f\x35','\x57\x34\x62\x76\x42\x38\x6f\x6b\x44\x47','\x57\x50\x4a\x64\x50\x64\x65\x53\x62\x57','\x6c\x67\x37\x63\x49\x38\x6f\x41\x57\x51\x79','\x41\x43\x6f\x4f\x57\x4f\x76\x48','\x57\x35\x58\x6a\x57\x36\x76\x76\x68\x38\x6b\x57\x57\x37\x70\x63\x54\x57','\x57\x34\x68\x64\x52\x38\x6f\x6c\x57\x37\x52\x64\x4f\x71','\x57\x50\x2f\x63\x51\x6d\x6b\x54\x57\x4f\x4a\x64\x52\x61','\x57\x51\x64\x64\x49\x4b\x71\x73\x75\x53\x6b\x56\x6f\x53\x6b\x68','\x57\x50\x4c\x42\x66\x62\x58\x2f\x72\x78\x38\x4d','\x6f\x53\x6b\x6e\x61\x65\x4c\x78\x57\x34\x4e\x64\x47\x53\x6f\x58','\x6b\x63\x4a\x64\x4f\x38\x6f\x77\x63\x43\x6b\x37\x57\x52\x4b\x71','\x57\x52\x37\x64\x4c\x71\x47\x62\x62\x30\x34','\x67\x6d\x6f\x76\x61\x53\x6b\x6b\x57\x52\x4e\x64\x50\x74\x71\x33','\x70\x32\x54\x50\x66\x6d\x6b\x63\x57\x4f\x52\x64\x55\x53\x6f\x72','\x41\x53\x6f\x5a\x62\x63\x78\x63\x48\x61','\x57\x37\x74\x64\x53\x64\x57','\x6b\x43\x6f\x70\x61\x6d\x6b\x70\x57\x4f\x47','\x44\x43\x6f\x52\x6d\x57\x37\x63\x4c\x53\x6f\x4d\x57\x34\x57','\x69\x43\x6b\x59\x57\x4f\x44\x43\x57\x37\x62\x72\x68\x53\x6f\x64','\x57\x36\x6c\x64\x56\x53\x6f\x68\x57\x36\x2f\x64\x55\x47','\x57\x52\x37\x64\x4c\x62\x43\x66\x63\x66\x56\x64\x4e\x57','\x57\x36\x4f\x77\x6e\x38\x6f\x65\x57\x34\x33\x63\x56\x77\x57','\x57\x35\x48\x63\x72\x43\x6f\x77\x57\x4f\x6e\x7a\x74\x32\x61','\x57\x36\x46\x64\x50\x59\x37\x64\x55\x43\x6b\x51','\x57\x36\x66\x52\x76\x38\x6f\x36\x42\x57','\x57\x37\x31\x75\x57\x35\x52\x63\x52\x71','\x7a\x74\x7a\x5a\x68\x61','\x57\x51\x71\x64\x57\x4f\x7a\x6c\x64\x6d\x6b\x66\x57\x52\x69','\x57\x35\x6d\x39\x57\x37\x64\x64\x50\x53\x6f\x54','\x57\x51\x4c\x4a\x69\x43\x6f\x69\x57\x34\x30','\x63\x38\x6f\x53\x71\x6d\x6f\x46\x57\x4f\x44\x6e\x57\x36\x69\x35','\x76\x68\x58\x64\x6e\x6d\x6f\x56\x6e\x64\x56\x64\x51\x47','\x42\x67\x6c\x64\x53\x38\x6f\x68','\x6f\x53\x6b\x71\x64\x66\x6a\x70\x57\x35\x56\x64\x50\x38\x6f\x58','\x57\x34\x35\x76\x71\x38\x6f\x4a\x57\x50\x6a\x65\x78\x61','\x6b\x32\x76\x6f\x57\x35\x33\x64\x4a\x61','\x57\x35\x44\x71\x57\x34\x71','\x57\x34\x38\x53\x57\x36\x5a\x64\x4f\x38\x6f\x4a','\x57\x52\x31\x57\x57\x4f\x62\x77\x57\x35\x34\x59\x57\x34\x75\x46','\x57\x37\x47\x55\x65\x53\x6f\x74\x57\x37\x53','\x64\x6d\x6f\x6d\x57\x52\x50\x32\x57\x4f\x31\x58','\x57\x52\x52\x63\x55\x38\x6f\x32\x57\x52\x6a\x67\x57\x52\x79','\x57\x4f\x6a\x4a\x6f\x38\x6f\x63\x57\x35\x79\x56','\x57\x36\x68\x63\x55\x76\x6e\x68\x69\x61','\x57\x37\x56\x64\x55\x61\x43\x45\x57\x52\x6a\x4b\x57\x52\x42\x63\x4d\x71','\x57\x37\x34\x72\x6b\x38\x6f\x43','\x57\x36\x70\x63\x52\x4c\x66\x38','\x57\x35\x5a\x63\x54\x65\x42\x63\x54\x38\x6f\x37\x72\x57','\x57\x51\x4f\x6a\x57\x4f\x58\x6d','\x57\x51\x7a\x67\x57\x52\x65\x63\x57\x36\x46\x63\x4c\x71','\x57\x52\x56\x64\x4a\x31\x69\x4d\x66\x43\x6f\x52','\x79\x32\x4e\x64\x54\x53\x6f\x43\x66\x38\x6b\x39\x57\x52\x38','\x57\x50\x62\x4f\x7a\x6d\x6f\x49\x57\x51\x78\x64\x56\x6d\x6f\x66\x57\x51\x38','\x57\x35\x76\x76\x57\x35\x68\x63\x4c\x31\x71\x71','\x61\x6d\x6b\x45\x66\x67\x7a\x36','\x57\x51\x65\x59\x67\x43\x6f\x55\x57\x4f\x71','\x57\x4f\x35\x49\x76\x6d\x6f\x49','\x57\x50\x6c\x64\x49\x62\x71\x43\x64\x66\x56\x64\x49\x67\x34','\x57\x52\x4e\x63\x55\x53\x6f\x31\x57\x52\x4b','\x44\x67\x4c\x38\x57\x37\x54\x70\x57\x52\x34\x39\x57\x35\x4f','\x6d\x38\x6b\x75\x57\x52\x2f\x63\x53\x53\x6f\x36\x74\x61','\x57\x52\x44\x57\x76\x53\x6f\x6d\x57\x50\x69','\x64\x30\x50\x4a\x57\x35\x6c\x64\x4e\x47','\x67\x6d\x6b\x2f\x57\x4f\x68\x63\x47\x38\x6f\x30','\x57\x36\x57\x6c\x57\x36\x72\x66','\x63\x53\x6f\x72\x57\x52\x31\x57\x57\x4f\x48\x61\x61\x6d\x6b\x45','\x43\x6d\x6f\x4d\x57\x51\x44\x64\x57\x36\x65','\x57\x37\x5a\x64\x51\x38\x6f\x77\x57\x37\x5a\x64\x4f\x43\x6f\x73\x46\x43\x6b\x45','\x6f\x53\x6b\x72\x61\x65\x31\x41\x57\x35\x52\x64\x49\x71','\x57\x34\x6d\x4c\x57\x37\x33\x64\x50\x53\x6f\x33\x43\x53\x6b\x54\x72\x71','\x6f\x38\x6b\x7a\x57\x52\x76\x46\x57\x37\x30','\x6c\x53\x6b\x32\x44\x4b\x33\x64\x4e\x6d\x6b\x39\x57\x50\x37\x63\x54\x61','\x7a\x68\x74\x64\x4c\x6d\x6f\x37\x57\x51\x47\x4b\x57\x35\x5a\x64\x49\x57','\x57\x50\x58\x4f\x63\x53\x6f\x6e\x57\x34\x53\x5a','\x44\x38\x6f\x56\x57\x37\x61\x54\x68\x72\x34\x56','\x57\x50\x43\x7a\x71\x57\x4a\x64\x54\x49\x6a\x45\x71\x47','\x71\x30\x54\x4d\x65\x38\x6f\x31\x57\x37\x62\x2f\x57\x4f\x34','\x57\x34\x37\x64\x54\x58\x2f\x64\x48\x43\x6b\x67','\x57\x34\x6c\x63\x50\x53\x6f\x6c\x57\x34\x61\x6c','\x64\x43\x6b\x72\x57\x51\x6d','\x57\x35\x44\x71\x57\x34\x64\x63\x51\x31\x75','\x7a\x59\x50\x74\x70\x53\x6b\x53','\x57\x34\x37\x64\x4f\x43\x6b\x76\x57\x35\x5a\x64\x56\x43\x6f\x56\x57\x37\x4f\x52','\x57\x35\x62\x55\x74\x43\x6f\x30\x41\x47','\x7a\x33\x74\x64\x54\x71','\x57\x50\x4c\x4a\x64\x53\x6f\x70\x57\x35\x57\x56','\x57\x36\x79\x72\x6f\x47','\x74\x32\x62\x43\x7a\x53\x6f\x58','\x57\x35\x62\x75\x57\x35\x46\x63\x56\x67\x69\x68\x62\x43\x6b\x58','\x57\x37\x72\x42\x7a\x31\x56\x63\x4f\x65\x44\x45\x6c\x71','\x57\x4f\x57\x68\x57\x4f\x74\x64\x53\x68\x61\x6e\x6a\x53\x6b\x2f\x57\x34\x65\x52','\x6b\x53\x6f\x6c\x57\x35\x6d\x4f\x67\x4a\x38\x53\x77\x71','\x74\x53\x6f\x35\x57\x52\x71\x31\x57\x52\x70\x63\x49\x43\x6b\x64\x67\x47','\x57\x35\x66\x51\x42\x53\x6f\x33\x78\x71','\x57\x37\x6e\x77\x57\x35\x61\x78\x78\x38\x6f\x72\x57\x52\x52\x64\x4c\x53\x6f\x31\x62\x38\x6f\x71\x57\x4f\x30','\x7a\x43\x6f\x45\x57\x51\x76\x4a\x57\x37\x47','\x57\x37\x6c\x64\x50\x43\x6f\x71\x57\x36\x33\x64\x52\x6d\x6f\x59\x43\x38\x6b\x6a','\x57\x51\x6c\x64\x49\x68\x64\x63\x55\x74\x6a\x51','\x75\x32\x70\x64\x4f\x6d\x6f\x41\x57\x4f\x30','\x78\x4a\x64\x63\x55\x53\x6f\x33\x66\x61','\x57\x51\x4e\x63\x4c\x53\x6b\x58\x57\x52\x38','\x43\x43\x6b\x6c\x57\x51\x6e\x57\x71\x32\x71\x33\x76\x68\x6e\x61\x66\x77\x71','\x6f\x38\x6f\x69\x57\x36\x79\x4c\x69\x57','\x57\x51\x62\x38\x6b\x38\x6f\x6a\x57\x36\x4b','\x6a\x43\x6b\x69\x57\x51\x64\x63\x52\x47','\x57\x37\x44\x62\x57\x35\x6e\x38\x69\x57','\x45\x66\x52\x64\x4a\x38\x6f\x38\x57\x52\x47','\x57\x50\x31\x36\x57\x35\x78\x63\x4a\x6d\x6f\x52','\x71\x31\x76\x49\x71\x43\x6f\x51\x57\x36\x6e\x31\x57\x4f\x4b','\x57\x36\x62\x6b\x44\x4d\x42\x63\x55\x47','\x7a\x33\x74\x64\x4f\x38\x6f\x77\x65\x43\x6b\x62\x57\x52\x6d\x61','\x57\x4f\x35\x72\x57\x52\x79\x61','\x72\x43\x6f\x53\x57\x50\x66\x73\x57\x37\x53','\x64\x53\x6b\x35\x45\x71\x48\x77\x57\x50\x70\x63\x48\x4a\x68\x63\x4f\x53\x6b\x4c','\x76\x4b\x50\x58\x78\x6d\x6f\x50','\x57\x50\x65\x66\x67\x65\x68\x64\x55\x62\x50\x73\x76\x47','\x70\x4d\x58\x74\x57\x35\x33\x64\x47\x77\x31\x2b\x75\x47','\x6b\x32\x62\x61\x57\x35\x64\x64\x49\x66\x6a\x4f','\x57\x4f\x6e\x49\x71\x38\x6f\x79\x57\x52\x4a\x64\x53\x43\x6f\x6f\x57\x4f\x65','\x7a\x4e\x6e\x4f\x57\x37\x62\x41\x57\x4f\x30\x4e','\x57\x51\x66\x6c\x57\x37\x43\x73\x57\x35\x7a\x63\x57\x51\x71\x4e','\x79\x6d\x6f\x37\x6b\x4b\x4c\x30\x57\x51\x2f\x64\x53\x77\x6d','\x77\x4d\x70\x64\x4b\x43\x6f\x6c\x57\x50\x57','\x6a\x6d\x6f\x44\x57\x36\x65\x6a\x61\x74\x71\x6e\x74\x47','\x57\x34\x37\x64\x4b\x74\x33\x64\x53\x38\x6b\x34\x73\x38\x6b\x4d\x57\x34\x69','\x6e\x38\x6f\x74\x57\x50\x58\x32\x57\x4f\x65','\x57\x34\x4e\x63\x48\x6d\x6f\x75\x57\x36\x4f\x6e\x78\x32\x79','\x57\x4f\x4e\x64\x55\x68\x70\x63\x4c\x73\x6d','\x64\x6d\x6f\x53\x7a\x53\x6f\x7a\x57\x50\x7a\x62\x57\x35\x6d\x57','\x57\x4f\x50\x66\x57\x52\x38\x77\x57\x35\x79','\x57\x52\x5a\x63\x48\x6d\x6f\x42\x57\x52\x54\x64','\x64\x38\x6f\x73\x57\x52\x6d\x34\x57\x34\x4f','\x6e\x32\x4e\x63\x4c\x6d\x6f\x55\x57\x51\x53','\x57\x34\x62\x2b\x57\x37\x35\x59\x67\x61','\x43\x53\x6f\x59\x6f\x57','\x57\x37\x44\x4f\x61\x43\x6f\x71\x57\x4f\x74\x63\x4c\x38\x6f\x67\x57\x50\x65','\x69\x43\x6b\x4a\x57\x50\x72\x70\x57\x36\x44\x43\x6d\x43\x6f\x70','\x57\x50\x58\x49\x61\x38\x6f\x4a\x57\x35\x65\x58\x70\x53\x6f\x4f','\x79\x48\x7a\x6b\x6a\x53\x6b\x4b','\x57\x50\x31\x57\x57\x36\x58\x6c\x57\x34\x57\x49\x57\x34\x71\x35','\x57\x50\x62\x4d\x72\x6d\x6f\x39\x57\x4f\x4a\x64\x50\x38\x6f\x6f\x57\x51\x53','\x57\x51\x70\x64\x47\x62\x43\x6e','\x66\x77\x42\x63\x4e\x38\x6f\x66\x57\x52\x57\x39','\x6e\x38\x6f\x61\x74\x43\x6f\x36\x57\x4f\x75','\x57\x52\x35\x76\x57\x51\x61\x7a\x57\x4f\x34\x51\x57\x52\x61\x48\x76\x38\x6b\x5a\x57\x37\x68\x63\x56\x61','\x57\x36\x48\x6e\x76\x6d\x6f\x42\x78\x61','\x57\x52\x6c\x64\x4e\x4c\x4b\x41\x63\x6d\x6f\x4d\x66\x6d\x6b\x6e','\x6e\x6d\x6b\x6f\x57\x51\x64\x63\x4f\x38\x6f\x52\x79\x71\x64\x63\x51\x61','\x6c\x67\x58\x46\x57\x34\x4f','\x42\x38\x6f\x4b\x57\x51\x30\x45\x57\x52\x57','\x57\x51\x64\x63\x4f\x43\x6f\x55\x57\x52\x7a\x72\x57\x51\x44\x39\x57\x34\x47','\x57\x34\x44\x4c\x72\x53\x6f\x46\x57\x50\x71','\x57\x37\x4f\x77\x6d\x43\x6f\x7a','\x57\x35\x39\x32\x43\x65\x64\x63\x52\x47','\x57\x51\x4a\x64\x4d\x71\x34\x41\x63\x65\x52\x64\x4b\x4c\x57','\x57\x52\x6d\x6b\x57\x4f\x58\x62\x64\x71','\x57\x51\x31\x54\x57\x51\x6e\x6a\x57\x35\x4b\x59\x57\x35\x6d','\x57\x52\x39\x6e\x63\x72\x57\x52\x6f\x61','\x71\x75\x48\x69\x57\x36\x50\x6f','\x6f\x43\x6b\x79\x57\x52\x33\x63\x4f\x43\x6f\x52\x76\x47','\x74\x6d\x6f\x38\x69\x4c\x66\x4d\x57\x52\x4a\x63\x51\x61','\x57\x34\x6a\x53\x43\x38\x6f\x42\x74\x74\x70\x63\x49\x33\x71','\x71\x38\x6f\x49\x57\x4f\x39\x48','\x57\x36\x57\x37\x57\x36\x76\x6a\x57\x35\x50\x37\x57\x52\x4f\x50','\x76\x65\x62\x74\x6f\x6d\x6f\x6c','\x57\x36\x65\x33\x6f\x53\x6f\x66\x57\x35\x57','\x67\x38\x6f\x42\x61\x38\x6b\x71','\x69\x53\x6b\x49\x57\x50\x76\x67','\x57\x35\x31\x4d\x72\x38\x6f\x6e\x57\x52\x65','\x74\x53\x6f\x4c\x57\x50\x34\x4b\x57\x51\x52\x63\x4a\x43\x6b\x44\x65\x57','\x57\x51\x65\x6e\x69\x30\x37\x63\x48\x77\x44\x2b\x61\x74\x4b','\x6d\x45\x6b\x61\x47\x38\x6b\x78','\x57\x34\x6d\x6c\x69\x43\x6f\x34\x57\x35\x65','\x66\x38\x6f\x46\x57\x50\x76\x77\x57\x52\x57','\x44\x6d\x6f\x39\x6e\x47','\x57\x36\x74\x63\x54\x76\x76\x34\x70\x43\x6f\x4b\x72\x77\x69','\x75\x6d\x6f\x56\x6b\x71','\x57\x35\x7a\x79\x57\x34\x64\x63\x53\x77\x61','\x61\x53\x6b\x31\x57\x52\x46\x63\x54\x43\x6f\x33','\x57\x34\x44\x32\x43\x38\x6f\x6b\x75\x61\x64\x63\x4a\x4e\x75','\x57\x52\x2f\x64\x49\x61\x34\x72','\x70\x43\x6b\x6c\x70\x4c\x72\x6a\x57\x34\x68\x64\x4e\x53\x6f\x2f','\x57\x36\x33\x64\x4e\x6d\x6f\x75\x57\x37\x43\x77\x72\x67\x46\x64\x4d\x61','\x69\x43\x6f\x31\x57\x35\x69\x75\x64\x61','\x63\x4e\x46\x63\x47\x38\x6f\x64\x57\x52\x57\x57\x57\x4f\x43\x6d','\x6c\x38\x6f\x44\x57\x37\x53\x4d\x61\x64\x34','\x57\x35\x37\x63\x48\x76\x42\x63\x4e\x6d\x6f\x62','\x57\x52\x64\x63\x50\x6d\x6f\x50\x57\x50\x35\x59','\x57\x37\x4f\x62\x69\x6d\x6f\x61','\x6c\x67\x62\x6b\x57\x35\x56\x64\x48\x4b\x54\x56\x43\x47','\x57\x52\x31\x78\x57\x51\x61\x77\x57\x4f\x6d\x4e\x57\x36\x71\x49\x42\x6d\x6b\x4e\x57\x37\x70\x63\x47\x38\x6b\x36','\x57\x36\x66\x4e\x77\x53\x6f\x6b\x76\x47','\x6c\x38\x6f\x78\x57\x37\x71\x4c\x6d\x5a\x6d\x32\x77\x71','\x57\x34\x79\x4b\x57\x37\x64\x64\x55\x38\x6f\x38\x78\x57','\x57\x50\x58\x41\x63\x61\x4c\x37\x46\x33\x69','\x43\x64\x44\x2f','\x65\x43\x6f\x72\x57\x35\x79\x50\x6a\x47','\x71\x43\x6f\x4d\x57\x51\x61\x55\x57\x50\x75','\x57\x52\x39\x78\x57\x52\x43\x56\x57\x34\x38','\x63\x53\x6f\x4d\x72\x43\x6f\x62\x57\x4f\x76\x6c\x57\x35\x47','\x57\x51\x4b\x76\x57\x51\x72\x71\x67\x53\x6b\x62\x57\x51\x38','\x57\x36\x68\x64\x56\x74\x43\x65\x57\x51\x47','\x57\x51\x34\x66\x45\x6d\x6f\x65\x57\x34\x4a\x63\x55\x4d\x74\x64\x4d\x57','\x57\x4f\x4b\x62\x57\x4f\x68\x64\x56\x71\x50\x66\x61\x43\x6b\x4c\x57\x37\x57\x42\x57\x51\x31\x48','\x57\x4f\x75\x7a\x78\x38\x6f\x63\x57\x50\x76\x56\x74\x78\x47','\x6c\x73\x4b\x39\x57\x51\x53\x6c\x57\x35\x65\x32\x57\x37\x42\x63\x49\x58\x33\x63\x4d\x58\x69','\x64\x77\x6c\x63\x54\x38\x6f\x4c\x57\x50\x61','\x41\x68\x7a\x6c\x6e\x43\x6f\x61','\x57\x51\x65\x76\x57\x50\x7a\x68\x68\x6d\x6b\x2f\x57\x52\x2f\x64\x48\x57','\x65\x43\x6b\x6e\x57\x52\x78\x64\x51\x53\x6b\x51','\x78\x32\x33\x64\x47\x53\x6f\x4d\x65\x61','\x57\x35\x6d\x48\x57\x37\x78\x64\x52\x6d\x6f\x38','\x6e\x6d\x6b\x6e\x57\x51\x70\x63\x54\x6d\x6f\x57\x78\x57\x52\x63\x50\x61','\x57\x51\x57\x54\x6d\x38\x6f\x72\x57\x51\x30','\x57\x35\x2f\x63\x56\x30\x64\x63\x49\x43\x6f\x2b\x64\x38\x6b\x31\x76\x71','\x73\x4e\x50\x57\x75\x53\x6f\x52\x57\x36\x79','\x78\x66\x5a\x64\x56\x38\x6f\x65\x57\x4f\x65','\x75\x33\x31\x30\x78\x38\x6f\x75','\x67\x43\x6f\x57\x72\x53\x6f\x69\x57\x50\x62\x48\x57\x35\x4b','\x57\x51\x62\x53\x57\x4f\x31\x6c\x57\x35\x53\x32\x57\x34\x34','\x57\x34\x4a\x64\x51\x38\x6b\x4c\x57\x34\x4e\x64\x4f\x38\x6f\x51\x57\x35\x69\x4a','\x63\x43\x6f\x56\x57\x35\x4b\x79\x6c\x61','\x45\x38\x6f\x73\x57\x51\x64\x63\x52\x38\x6f\x34\x75\x61\x4a\x63\x4f\x61','\x75\x77\x62\x4d\x69\x43\x6f\x35','\x44\x78\x6c\x64\x4c\x6d\x6f\x33\x57\x52\x38\x59\x57\x36\x43','\x6b\x32\x66\x67\x57\x35\x52\x64\x48\x4b\x4b','\x6e\x53\x6b\x59\x57\x4f\x50\x6c\x57\x36\x44\x43','\x57\x51\x48\x71\x57\x52\x57','\x74\x6d\x6f\x57\x57\x4f\x75\x48\x57\x52\x6c\x63\x4a\x61','\x6d\x6d\x6f\x42\x57\x37\x4f\x5a\x65\x72\x65\x39\x75\x47','\x65\x43\x6b\x6e\x57\x51\x5a\x64\x4f\x38\x6b\x47\x57\x36\x79\x4f\x57\x52\x69','\x66\x53\x6b\x71\x57\x52\x70\x64\x50\x38\x6b\x37\x57\x37\x79\x37\x57\x4f\x79','\x6f\x74\x2f\x63\x4e\x38\x6b\x57\x57\x37\x62\x2b\x57\x51\x4a\x63\x4b\x47','\x57\x50\x66\x42\x6a\x47\x54\x35\x45\x32\x38','\x57\x35\x6d\x35\x57\x36\x37\x64\x50\x53\x6f\x33\x73\x47','\x6b\x43\x6b\x54\x57\x50\x78\x64\x4a\x6d\x6b\x68','\x6e\x6d\x6f\x77\x57\x52\x66\x35\x57\x4f\x69','\x63\x43\x6f\x70\x68\x53\x6b\x75\x57\x52\x37\x64\x49\x62\x34\x37','\x42\x33\x74\x64\x4b\x43\x6f\x62\x66\x38\x6b\x2f\x57\x51\x6d','\x57\x34\x37\x64\x4b\x73\x37\x64\x53\x6d\x6b\x47\x73\x38\x6b\x45\x57\x34\x47','\x57\x51\x54\x4e\x61\x38\x6f\x63\x57\x4f\x46\x63\x4b\x38\x6f\x71\x57\x52\x53','\x7a\x77\x42\x64\x56\x61','\x75\x53\x6f\x47\x69\x71','\x57\x35\x6a\x65\x57\x35\x42\x63\x4c\x30\x34\x72\x61\x6d\x6b\x58','\x57\x37\x30\x72\x6e\x43\x6f\x7a\x57\x35\x5a\x63\x51\x4e\x65','\x57\x34\x46\x63\x54\x76\x56\x63\x4e\x61','\x57\x34\x64\x63\x54\x76\x64\x63\x4d\x38\x6f\x37\x74\x6d\x6f\x37\x41\x71','\x57\x4f\x53\x62\x64\x31\x68\x64\x4b\x61','\x6f\x77\x31\x64','\x57\x35\x71\x2f\x57\x37\x78\x64\x4f\x47','\x57\x37\x74\x64\x50\x59\x53\x70\x57\x51\x39\x70\x57\x52\x70\x63\x4d\x61','\x62\x43\x6f\x6d\x57\x52\x58\x38','\x57\x36\x4a\x64\x50\x6d\x6f\x51\x57\x35\x52\x64\x4e\x71','\x57\x34\x4c\x45\x57\x34\x68\x63\x55\x4c\x34\x72\x6d\x53\x6b\x2b','\x64\x77\x2f\x63\x4c\x61','\x73\x4b\x72\x48','\x78\x67\x37\x64\x49\x6d\x6f\x76\x6d\x57','\x57\x36\x70\x63\x53\x32\x54\x4c\x69\x38\x6f\x53\x77\x77\x57','\x57\x4f\x6e\x4c\x61\x43\x6f\x6f\x57\x50\x38\x36\x6b\x6d\x6f\x34','\x62\x38\x6f\x72\x57\x51\x71','\x66\x6d\x6b\x53\x57\x52\x64\x64\x4b\x43\x6b\x48','\x57\x35\x78\x63\x4c\x4d\x62\x69\x63\x61','\x6b\x53\x6f\x32\x57\x34\x79\x57\x67\x47','\x57\x51\x2f\x64\x49\x78\x4f','\x62\x53\x6b\x4a\x70\x31\x4c\x6e','\x57\x35\x64\x64\x4f\x43\x6f\x73\x57\x34\x4e\x64\x49\x57','\x57\x36\x43\x78\x68\x53\x6f\x44\x57\x35\x70\x63\x53\x78\x5a\x64\x4c\x57','\x57\x52\x39\x75\x42\x53\x6b\x61\x57\x36\x5a\x63\x47\x76\x2f\x64\x4e\x68\x4a\x63\x52\x47','\x57\x37\x47\x66\x57\x36\x35\x43\x57\x52\x46\x64\x47\x38\x6b\x4d\x57\x4f\x4e\x63\x52\x38\x6b\x52\x63\x43\x6f\x72','\x41\x38\x6f\x2f\x6b\x47\x64\x63\x4e\x38\x6f\x65\x57\x35\x74\x64\x51\x71','\x74\x71\x70\x63\x4e\x38\x6f\x55\x6a\x61','\x57\x51\x69\x74\x57\x4f\x58\x6f\x64\x6d\x6b\x50\x57\x52\x4a\x64\x49\x71','\x57\x51\x53\x6e\x69\x73\x70\x64\x55\x72\x4c\x56\x64\x64\x74\x63\x54\x43\x6f\x35\x61\x57','\x77\x62\x52\x63\x4d\x38\x6f\x57\x6c\x53\x6b\x56\x57\x50\x52\x64\x4e\x61','\x44\x43\x6f\x33\x6d\x57\x52\x63\x4d\x38\x6f\x31\x57\x34\x46\x64\x54\x61','\x57\x35\x4f\x6d\x57\x37\x62\x59\x57\x37\x53','\x57\x51\x46\x63\x50\x38\x6f\x31\x57\x52\x4f','\x57\x52\x50\x5a\x57\x51\x76\x41\x57\x34\x57','\x74\x4b\x62\x38\x76\x6d\x6f\x58\x57\x36\x4f'];_0x5860=function(){return _0x47d07d;};return _0x5860();}_0x16ca9e[_0x2d8021(0x33d,'\x6f\x6a\x6f\x73')+_0x2d8021(0x25e,'\x47\x2a\x5b\x6b')]=_0x51cddb,_0x16ca9e['\x67\x65\x74\x4d\x6f\x64\x65']=_0x1bbe20,_0x16ca9e[_0x2d8021(0x344,'\x25\x67\x67\x57')+'\x6d']=_0x347851,_0x16ca9e['\x67\x65\x74\x4d\x61\x78\x49\x6e'+_0x2d8021(0x30b,'\x51\x64\x58\x73')]=_0x4e0f34,_0x16ca9e[_0x2d8021(0x385,'\x54\x66\x62\x72')+_0x2d8021(0x2ef,'\x38\x5a\x56\x68')+'\x72\x65']=_0x181bd1,_0x16ca9e[_0x2d8021(0x298,'\x6d\x24\x74\x4d')+_0x2d8021(0x2e4,'\x6b\x6a\x26\x38')]=_0x3de084,_0x16ca9e[_0x2d8021(0x223,'\x40\x79\x41\x38')+_0x2d8021(0x30d,'\x65\x48\x21\x46')]=_0x30a185,_0x16ca9e[_0x2d8021(0x324,'\x54\x66\x62\x72')+'\x6c\x73']=_0x510539,module[_0x2d8021(0x369,'\x34\x36\x56\x40')]=_0x16ca9e;
1
+ // recallInject.js
2
+ // Harness-agnostic core for "runtime asset injection" (P4-c): when a general
3
+ // agent is about to work on a task, find GEP assets (Hub genes + local genes)
4
+ // that match the task and surface a distilled hint the agent can use.
5
+ //
6
+ // This module is PURE: no stdin/stdout, no process.exit. It is driven by the
7
+ // per-harness hook entrypoint (src/adapters/scripts/evolver-task-recall.js) and
8
+ // is unit-testable in isolation. The entrypoint owns the fail-open latch +
9
+ // watchdog + stdout shape; this module owns the matching/gating/logging.
10
+ //
11
+ // HARD INVARIANTS (do not regress — these are the P4-c scope contract):
12
+ // 1. SEARCH-ONLY. We call fetchSemanticResults (a free GET
13
+ // /a2a/assets/semantic-search) and NEVER hubSearch()/fetchAssetById() —
14
+ // Phase-2 fetch SPENDS CREDITS (hubSearch.js:379 logs "Fetch cost"). The
15
+ // recall path must never spend a credit, in any mode. No money surface.
16
+ // 2. LLM-FREE / NO CHILD PROCESS. We extract signals with ONLY the pure
17
+ // extractors _extractRegex + _extractKeywordScore. We must NOT call
18
+ // extractSignals() — it calls _extractLLM(), a SYNC execFileSync('curl',
19
+ // ['-m','10',...]) that (a) blocks the event loop for up to 10s so the
20
+ // entrypoint watchdog can't fire, and (b) ships a raw-prompt corpus to the
21
+ // Hub. Both are forbidden here.
22
+ // 3. SHADOW-FIRST. In 'shadow' we compute + log what WOULD inject but return
23
+ // inject:false (the entrypoint injects nothing). In 'off' the entrypoint
24
+ // never calls us. Only 'enforce' returns inject:true.
25
+ // 4. HIGH-CONFIDENCE ONLY. Hub rows must clear the similarity HIGH band
26
+ // (>= EVOLVER_RECALL_MIN_SIM, default 0.75). Local genes must have >=1
27
+ // real signal-pattern hit (not bag-of-words noise).
28
+ // 5. NO Hub used_asset_ids / reuse-credit reporting. Attribution is a LOCAL
29
+ // JSONL artifact only (assetCallLog). Promoting it to Hub credit needs a
30
+ // stronger usage signal AND team sign-off (it changes money).
31
+
32
+ const path = require('path');
33
+
34
+ // ---------------------------------------------------------------------------
35
+ // Mode parsing: EVOLVER_RECALL_MODE ∈ off (default) | shadow | enforce.
36
+ // Anything unknown/absent -> off (safest). Mirrors the conv-distill/P3 cadence
37
+ // of a single 3-state env var.
38
+ // ---------------------------------------------------------------------------
39
+ function getMode() {
40
+ const v = String(process.env.EVOLVER_RECALL_MODE || '').toLowerCase().trim();
41
+ return v === 'shadow' || v === 'enforce' ? v : 'off';
42
+ }
43
+
44
+ // Similarity HIGH band. Ported as an in-repo literal from
45
+ // gep-mcp-server/src/searchEnrich.js (SIMILARITY_BAND_HIGH = 0.75) — that file
46
+ // is a separate ESM repo and must NOT be imported. Operator-tunable.
47
+ function getMinSim() {
48
+ const n = Number(process.env.EVOLVER_RECALL_MIN_SIM);
49
+ return Number.isFinite(n) && n > 0 && n <= 1 ? n : 0.75;
50
+ }
51
+
52
+ // Max assets injected per turn. Default 1 (top hit only) to minimise context
53
+ // pollution; the entrypoint blocks every prompt, so we stay terse.
54
+ function getMaxInject() {
55
+ const n = parseInt(process.env.EVOLVER_RECALL_MAX, 10);
56
+ return Number.isFinite(n) && n > 0 && n <= 10 ? n : 1;
57
+ }
58
+
59
+ // Hard ceiling on injected text length (defense against a giant nl_summary
60
+ // bloating the agent's context window).
61
+ const INJECT_CHAR_CEILING = 800;
62
+ const SUMMARY_CLIP = 200;
63
+
64
+ // ---------------------------------------------------------------------------
65
+ // LLM-free signal extraction. Uses ONLY the pure extractors. We deliberately
66
+ // do NOT call signals.extractSignals (curl/event-loop-block, see invariant 2)
67
+ // and do NOT call _mergeSignals (it console.log()s to STDOUT — which would
68
+ // corrupt the hook's single-JSON stdout contract; we inline a Set-merge).
69
+ // ---------------------------------------------------------------------------
70
+ function extractSignalsPure(prompt) {
71
+ const corpus = String(prompt || '');
72
+ const lower = corpus.toLowerCase();
73
+ const errorHit = /\b(error|exception|fail(?:ed|ure)?)\b|错误|异常|报错|失败/i.test(lower);
74
+
75
+ let regexSignals = [];
76
+ let scoreSignals = [];
77
+ try {
78
+ const sig = require('./signals');
79
+ regexSignals = sig._extractRegex(corpus, lower, errorHit) || [];
80
+ scoreSignals = sig._extractKeywordScore(lower) || [];
81
+ } catch (_) {
82
+ // signals.js unreachable — degrade to no signals (local/Hub then no-op).
83
+ return [];
84
+ }
85
+
86
+ // Inline Set-merge (do NOT use sig._mergeSignals — it writes to stdout).
87
+ const merged = new Set();
88
+ for (const s of regexSignals) merged.add(s);
89
+ for (const s of scoreSignals) merged.add(s);
90
+ // 'stable_success_plateau' is the extractor's "nothing interesting" default;
91
+ // it carries no task content, so drop it to avoid a noise query.
92
+ merged.delete('stable_success_plateau');
93
+ return Array.from(merged);
94
+ }
95
+
96
+ // The closed-vocabulary extractors above only fire on the evolver's own corpus
97
+ // shapes (errors, specific feature-request phrasings). A normal task prompt
98
+ // ("add retry with backoff to the http client") yields NO closed-vocab signal,
99
+ // so on its own the recall hook would almost never fire for real coding work.
100
+ // Embedding-based semantic search wants the actual task WORDS, so we also add a
101
+ // token projection of the prompt. tokenize() drops stop-words and short tokens;
102
+ // buildSemanticQuery (inside fetchSemanticResults) caps the outgoing query to
103
+ // 12 terms, so this stays a bounded token-projection — never the verbatim
104
+ // prompt. Capped here too as defense-in-depth.
105
+ const MAX_QUERY_TOKENS = 12;
106
+ function buildSignalList(prompt) {
107
+ const coreSignals = extractSignalsPure(prompt);
108
+ let tokens = [];
109
+ try {
110
+ const { tokenize } = require('./selector');
111
+ // De-dup while preserving order, then cap.
112
+ const seen = new Set();
113
+ for (const t of tokenize(prompt)) {
114
+ if (!seen.has(t)) { seen.add(t); tokens.push(t); }
115
+ if (tokens.length >= MAX_QUERY_TOKENS) break;
116
+ }
117
+ } catch (_) { tokens = []; }
118
+
119
+ const merged = new Set();
120
+ for (const s of coreSignals) merged.add(s);
121
+ for (const t of tokens) merged.add(t);
122
+ return Array.from(merged);
123
+ }
124
+
125
+ // ---------------------------------------------------------------------------
126
+ // Hub search — SEARCH-ONLY, credit-free. Returns the rows that clear the HIGH
127
+ // similarity band, best-effort self-suppressed, never spending a credit.
128
+ // ---------------------------------------------------------------------------
129
+ async function searchHub(signalList, timeoutMs) {
130
+ let hs, a2a;
131
+ try {
132
+ hs = require('./hubSearch');
133
+ a2a = require('./a2aProtocol');
134
+ } catch (_) {
135
+ return [];
136
+ }
137
+ // Honor the HUBSEARCH_SEMANTIC kill-switch the same way hubSearch() does:
138
+ // an operator who set it to false/0 to stop semantic Hub traffic must not
139
+ // have this hook keep issuing semantic GETs on every prompt (Bugbot #183
140
+ // medium). When disabled -> no Hub call, local genes only.
141
+ try { if (typeof hs.isSemanticEnabled === 'function' && !hs.isSemanticEnabled()) return []; } catch (_) {}
142
+ // Resolve the Hub URL via a2aProtocol.getHubUrl(), the canonical resolver
143
+ // that honors BOTH A2A_HUB_URL and the legacy EVOMAP_HUB_URL fallback.
144
+ // hubSearch.getHubUrl() reads only A2A_HUB_URL, so a node configured with the
145
+ // legacy var alone would silently skip recall while every other Hub feature
146
+ // (auth, heartbeat, memory) still worked (Bugbot #183 medium). Strip trailing
147
+ // slashes to match hubSearch's own normalization. Fall back to hs.getHubUrl()
148
+ // only if a2a is unavailable.
149
+ let hubUrl = '';
150
+ try {
151
+ hubUrl = (typeof a2a.getHubUrl === 'function' ? a2a.getHubUrl() : hs.getHubUrl()) || '';
152
+ hubUrl = hubUrl.replace(/\/+$/, '');
153
+ } catch (_) { hubUrl = ''; }
154
+ // Air-gapped / no Hub configured -> zero egress, local genes only.
155
+ if (!hubUrl) return [];
156
+
157
+ let headers = {};
158
+ try { headers = a2a.buildHubHeaders(); } catch (_) { headers = {}; }
159
+
160
+ let rows = [];
161
+ try {
162
+ // fetchSemanticResults already owns an AbortController bound to timeoutMs
163
+ // and returns [] on timeout/error/non-200 (hubSearch.js:160). It hits
164
+ // GET /a2a/assets/semantic-search?...&type=Gene -> genes only, no fetch,
165
+ // no credit. The query is a token-trimmed projection of the signals
166
+ // (buildSemanticQuery), NOT the verbatim prompt.
167
+ rows = await hs.fetchSemanticResults(hubUrl, headers, signalList, timeoutMs);
168
+ } catch (_) {
169
+ return [];
170
+ }
171
+ if (!Array.isArray(rows)) return [];
172
+
173
+ const minSim = getMinSim();
174
+ let selfId = '';
175
+ try { selfId = a2a.getNodeId() || ''; } catch (_) { selfId = ''; }
176
+
177
+ const out = [];
178
+ for (const r of rows) {
179
+ if (!r || typeof r !== 'object') continue;
180
+ const sim = Number(r._semantic_similarity);
181
+ if (!Number.isFinite(sim) || sim < minSim) continue; // drop drag-net matches
182
+ // Best-effort self-suppression: only when source_node_id is present (the
183
+ // semantic endpoint often omits it — do NOT treat absence as a hard gate).
184
+ if (selfId && r.source_node_id && r.source_node_id === selfId) continue;
185
+ out.push({
186
+ asset_id: r.asset_id || r.assetId || '',
187
+ source_node_id: r.source_node_id || '',
188
+ chain_id: r.chain_id || '',
189
+ similarity: sim,
190
+ title: r.short_title || r.nl_title || r.name || '',
191
+ summary: r.nl_summary || r.summary || '',
192
+ origin: 'hub',
193
+ });
194
+ }
195
+ return out;
196
+ }
197
+
198
+ // ---------------------------------------------------------------------------
199
+ // Local genes — match against on-disk genes with a real signal-pattern hit.
200
+ // We use the EXPORTED scorers (scoreGene is NOT exported, and selectGene uses
201
+ // Math.random + env I/O so it's unsuitable). Require >=1 pattern hit so we
202
+ // inject only genes whose signals_match actually fire for this task, not
203
+ // bag-of-words near-misses.
204
+ // ---------------------------------------------------------------------------
205
+ function matchLocalGenes(signalList) {
206
+ let genes = [];
207
+ let sel;
208
+ try {
209
+ genes = require('./assetStore').loadGenes() || [];
210
+ sel = require('./selector');
211
+ } catch (_) {
212
+ return [];
213
+ }
214
+ if (!Array.isArray(genes) || genes.length === 0 || !sel) return [];
215
+
216
+ const out = [];
217
+ for (const gene of genes) {
218
+ if (!gene || gene.type !== 'Gene') continue;
219
+ const patterns = Array.isArray(gene.signals_match) ? gene.signals_match : [];
220
+ let hits = 0;
221
+ for (const p of patterns) {
222
+ try { if (sel.matchPatternToSignals(p, signalList)) hits++; } catch (_) { /* skip */ }
223
+ }
224
+ if (hits < 1) continue; // require a real pattern hit, not noise
225
+ let sem = 0;
226
+ try { sem = sel.scoreGeneSemantic(gene, signalList) || 0; } catch (_) { sem = 0; }
227
+ // Many genes (incl. genesis genes) carry no `summary`. Fall back to a terse
228
+ // projection of the strategy/avoid text or the matched signal patterns so
229
+ // the injected line is actionable rather than a dangling "...: " (caught by
230
+ // real-gene E2E where synthetic fixtures had summaries).
231
+ let summary = (gene.summary || '').toString().trim();
232
+ if (!summary && gene.strategy && typeof gene.strategy === 'object') {
233
+ const pieces = [];
234
+ if (Array.isArray(gene.strategy.steps)) pieces.push(gene.strategy.steps.slice(0, 3).join('; '));
235
+ if (typeof gene.strategy.approach === 'string') pieces.push(gene.strategy.approach);
236
+ summary = pieces.filter(Boolean).join(' — ').trim();
237
+ }
238
+ if (!summary) {
239
+ const pats = patterns
240
+ .map(p => String(p).split('|')[0]) // first alias of each multi-lang pattern
241
+ .filter(p => p && !p.startsWith('/'))
242
+ .slice(0, 4);
243
+ if (pats.length) summary = 'matches: ' + pats.join(', ');
244
+ }
245
+ out.push({
246
+ asset_id: gene.asset_id || '',
247
+ source_node_id: gene.source_node_id || gene.author_node_id || '',
248
+ chain_id: gene.chain_id || '',
249
+ // Map local score into a 0..1-ish band for ranking next to Hub similarity.
250
+ // hits dominate; semantic cosine breaks ties.
251
+ similarity: Math.min(1, 0.75 + 0.05 * hits + 0.1 * sem),
252
+ title: gene.id || gene.short_title || '',
253
+ summary,
254
+ origin: 'local',
255
+ _hits: hits,
256
+ });
257
+ }
258
+ return out;
259
+ }
260
+
261
+ // ---------------------------------------------------------------------------
262
+ // Build the injected text. Distilled hint, NOT raw JSON. Each line uses
263
+ // nl_summary/title (always present in list/search responses) — never
264
+ // payload.strategy (often empty for distilled/sybil assets). Hard char ceiling.
265
+ // ---------------------------------------------------------------------------
266
+ // A candidate is "hollow" when it has neither a title nor a summary: there is
267
+ // nothing actionable to render (a dangling "Gene "": " helps no one). Hollow
268
+ // candidates are excluded from BOTH the injected text and the attribution log,
269
+ // so the log can never claim an asset was injected that never appeared in the
270
+ // hook context (Bugbot #183 low: log/inject must agree by construction).
271
+ function isRenderable(d) {
272
+ const title = (d && d.title ? String(d.title) : '').trim();
273
+ const summary = (d && d.summary ? String(d.summary) : '').trim();
274
+ return !!(title || summary);
275
+ }
276
+
277
+ function buildInjectText(decided) {
278
+ const renderable = (decided || []).filter(isRenderable);
279
+ if (!renderable.length) return '';
280
+ const lines = ['[Evolver — relevant prior capability]'];
281
+ let anyPublished = false;
282
+ for (const d of renderable) {
283
+ const title = (d.title || '').toString().slice(0, 80);
284
+ const summary = (d.summary || '').toString().replace(/\s+/g, ' ').trim().slice(0, SUMMARY_CLIP);
285
+ const sim = d.similarity != null ? d.similarity.toFixed(2) : '?';
286
+ const idTag = d.asset_id ? `asset ${d.asset_id}` : 'local, unpublished';
287
+ if (d.asset_id) anyPublished = true;
288
+ lines.push(`- ${title ? `Gene "${title}"` : 'Gene'} (${idTag}, sim ${sim})${summary ? ': ' + summary : ''}`);
289
+ }
290
+ lines.push('A prior distilled approach may fit this task. Adapt it; verify before applying.');
291
+ if (anyPublished) lines.push('To reuse a published asset: `gep_reuse <asset_id>` (or `gep_recall`).');
292
+ const text = lines.join('\n');
293
+ return text.length > INJECT_CHAR_CEILING ? text.slice(0, INJECT_CHAR_CEILING) : text;
294
+ }
295
+
296
+ // ---------------------------------------------------------------------------
297
+ // Local reuse logging. Records WHICH assets were (would be) injected, keyed by
298
+ // a stable run_id derived from the session, so a later Stop hook can correlate
299
+ // "asset injected -> session outcome" LOCALLY. This is correlational/local
300
+ // only — it is NOT Hub credit and must not be promoted to one without sign-off.
301
+ // ---------------------------------------------------------------------------
302
+ function logInjections(decided, mode, runId, signalList) {
303
+ let logAssetCall;
304
+ try { ({ logAssetCall } = require('./assetCallLog')); } catch (_) { return; }
305
+ const action = mode === 'enforce' ? 'asset_inject' : 'asset_inject_shadow';
306
+ for (const d of decided) {
307
+ try {
308
+ logAssetCall({
309
+ run_id: runId,
310
+ action,
311
+ asset_id: d.asset_id || undefined,
312
+ asset_type: 'Gene',
313
+ source_node_id: d.source_node_id || undefined,
314
+ chain_id: d.chain_id || undefined,
315
+ score: d.similarity,
316
+ signals: signalList.slice(0, 8),
317
+ reason: d.origin === 'hub' ? 'hub_semantic_high_band' : 'local_gene_pattern_hit',
318
+ extra: { via: 'task_recall', attribution: 'correlational_local', origin: d.origin },
319
+ });
320
+ } catch (_) { /* logging is best-effort; never block injection */ }
321
+ }
322
+ }
323
+
324
+ // ---------------------------------------------------------------------------
325
+ // Entry point of the core. Returns:
326
+ // { inject: bool, text: string|null, decided: [], dropped: number, signals: [] }
327
+ // inject is true ONLY in enforce mode with >=1 decided asset. In shadow we log
328
+ // but return inject:false. Throwing is acceptable — the hook entrypoint wraps
329
+ // this in try/.catch -> finish({}) (fail-open).
330
+ // ---------------------------------------------------------------------------
331
+ async function recallForTask(opts) {
332
+ const o = opts || {};
333
+ const mode = o.mode || getMode();
334
+ if (mode === 'off') return { inject: false, text: null, decided: [], dropped: 0, signals: [] };
335
+
336
+ const signalList = buildSignalList(o.prompt);
337
+ if (!signalList.length) return { inject: false, text: null, decided: [], dropped: 0, signals: [] };
338
+
339
+ // Do LOCAL gene work (synchronous disk I/O via loadGenes + ranking) BEFORE
340
+ // the Hub await, so it runs while the full budget is available — never after
341
+ // the Hub search has consumed most of the watchdog window (Bugbot #183
342
+ // medium: post-await local work could overrun the watchdog and spuriously
343
+ // skip injection). After the Hub await, only in-memory merge/text/log remain.
344
+ const localRows = matchLocalGenes(signalList);
345
+
346
+ // Bound the Hub call by the time REMAINING until the entrypoint's absolute
347
+ // deadline (passed as deadlineMs, ms-since-epoch), minus a safety margin for
348
+ // the in-memory post-processing + finish(). If too little remains, skip the
349
+ // Hub call (local genes still apply). Falls back to the static timeoutMs when
350
+ // no deadline is supplied (e.g. unit tests / non-hook callers).
351
+ const POST_AWAIT_SAFETY_MS = 150;
352
+ let hubBudget = Number.isFinite(o.timeoutMs) && o.timeoutMs > 0 ? o.timeoutMs : 2000;
353
+ if (Number.isFinite(o.deadlineMs)) {
354
+ const remaining = o.deadlineMs - Date.now() - POST_AWAIT_SAFETY_MS;
355
+ hubBudget = Math.min(hubBudget, remaining);
356
+ }
357
+
358
+ // Hub (search-only, credit-free), only if there's a usable budget left.
359
+ const hubRows = hubBudget >= 300 ? await searchHub(signalList, hubBudget) : [];
360
+
361
+ const seen = new Set();
362
+ const candidates = [];
363
+ let dropped = 0;
364
+ for (const r of [...hubRows, ...localRows]) {
365
+ const key = r.asset_id || `${r.origin}:${r.title}`;
366
+ if (key && seen.has(key)) { dropped++; continue; } // de-dup local vs hub
367
+ if (key) seen.add(key);
368
+ candidates.push(r);
369
+ }
370
+ candidates.sort((a, b) => (b.similarity || 0) - (a.similarity || 0));
371
+
372
+ const topN = candidates.slice(0, getMaxInject());
373
+ dropped += Math.max(0, candidates.length - topN.length);
374
+
375
+ // Filter out hollow candidates ONCE, so the injected text and the attribution
376
+ // log operate on the exact same set — the log can never claim an asset was
377
+ // injected that wasn't rendered into the hook context (Bugbot #183 low).
378
+ const decided = topN.filter(isRenderable);
379
+ dropped += topN.length - decided.length;
380
+ if (!decided.length) return { inject: false, text: null, decided: [], dropped, signals: signalList };
381
+
382
+ const text = buildInjectText(decided);
383
+ if (!text) return { inject: false, text: null, decided: [], dropped, signals: signalList };
384
+
385
+ const runId = o.runId || ('recall:' + (o.sessionId || 'unknown'));
386
+ logInjections(decided, mode, runId, signalList);
387
+
388
+ // SHADOW returns the computed text (for tests/inspection) but inject:false —
389
+ // the entrypoint only injects when inject is true (enforce).
390
+ return {
391
+ inject: mode === 'enforce',
392
+ text,
393
+ decided,
394
+ dropped,
395
+ signals: signalList,
396
+ };
397
+ }
398
+
399
+ module.exports = {
400
+ recallForTask,
401
+ // exported for unit tests:
402
+ getMode,
403
+ getMinSim,
404
+ getMaxInject,
405
+ extractSignalsPure,
406
+ buildSignalList,
407
+ buildInjectText,
408
+ _internals: { searchHub, matchLocalGenes, logInjections },
409
+ };