@evomap/evolver 1.89.11 → 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 (100) 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.md +90 -537
  10. package/README.public.md +578 -0
  11. package/SECURITY.md +108 -0
  12. package/assets/gep/events.jsonl +3 -0
  13. package/examples/atp-consumer-quickstart.md +100 -0
  14. package/examples/hello-world.md +38 -0
  15. package/package.json +6 -18
  16. package/proxy-package.json +39 -0
  17. package/public.manifest.json +145 -0
  18. package/src/evolve/guards.js +721 -1
  19. package/src/evolve/pipeline/collect.js +1283 -1
  20. package/src/evolve/pipeline/dispatch.js +421 -1
  21. package/src/evolve/pipeline/enrich.js +440 -1
  22. package/src/evolve/pipeline/hub.js +319 -1
  23. package/src/evolve/pipeline/select.js +274 -1
  24. package/src/evolve/pipeline/signals.js +206 -1
  25. package/src/evolve/utils.js +264 -1
  26. package/src/evolve.js +350 -1
  27. package/src/gep/a2aProtocol.js +4463 -1
  28. package/src/gep/antiAbuseTelemetry.js +233 -1
  29. package/src/gep/autoDistillConv.js +205 -1
  30. package/src/gep/autoDistillLlm.js +315 -1
  31. package/src/gep/candidateEval.js +92 -1
  32. package/src/gep/candidates.js +198 -1
  33. package/src/gep/contentHash.js +30 -1
  34. package/src/gep/conversationDistiller.js +270 -0
  35. package/src/gep/conversationSniffer.js +266 -1
  36. package/src/gep/crypto.js +89 -1
  37. package/src/gep/curriculum.js +163 -1
  38. package/src/gep/deviceId.js +218 -1
  39. package/src/gep/envFingerprint.js +118 -1
  40. package/src/gep/epigenetics.js +31 -1
  41. package/src/gep/execBridge.js +712 -1
  42. package/src/gep/explore.js +289 -1
  43. package/src/gep/hash.js +15 -1
  44. package/src/gep/hubFetch.js +608 -1
  45. package/src/gep/hubReview.js +207 -1
  46. package/src/gep/hubSearch.js +526 -1
  47. package/src/gep/hubVerify.js +306 -1
  48. package/src/gep/learningSignals.js +89 -1
  49. package/src/gep/memoryGraph.js +1449 -1
  50. package/src/gep/memoryGraphAdapter.js +203 -1
  51. package/src/gep/mutation.js +203 -1
  52. package/src/gep/narrativeMemory.js +108 -1
  53. package/src/gep/openPRRegistry.js +205 -1
  54. package/src/gep/personality.js +423 -1
  55. package/src/gep/policyCheck.js +599 -1
  56. package/src/gep/prompt.js +836 -1
  57. package/src/gep/questionGenerator.js +103 -0
  58. package/src/gep/recallInject.js +409 -1
  59. package/src/gep/recallVerifier.js +318 -1
  60. package/src/gep/reflection.js +177 -1
  61. package/src/gep/savingsCore.js +112 -1
  62. package/src/gep/selector.js +602 -1
  63. package/src/gep/skillDistiller.js +1294 -1
  64. package/src/gep/solidify.js +1699 -1
  65. package/src/gep/strategy.js +136 -1
  66. package/src/gep/tokenSavings.js +95 -1
  67. package/src/gep/workspaceKeychain.js +174 -1
  68. package/src/proxy/extensions/traceControl.js +109 -1
  69. package/src/proxy/inject.js +52 -1
  70. package/src/proxy/lifecycle/manager.js +108 -7
  71. package/src/proxy/server/routes.js +31 -0
  72. package/src/proxy/server/settings.js +6 -2
  73. package/src/proxy/sync/engine.js +31 -15
  74. package/src/proxy/sync/inbound.js +87 -9
  75. package/src/proxy/sync/outbound.js +57 -4
  76. package/src/proxy/trace/extractor.js +1403 -1
  77. package/src/proxy/trace/usage.js +105 -1
  78. package/CONTRIBUTING.md +0 -19
  79. package/assets/cover.png +0 -0
  80. package/scripts/a2a_export.js +0 -63
  81. package/scripts/a2a_ingest.js +0 -79
  82. package/scripts/a2a_promote.js +0 -118
  83. package/scripts/analyze_by_skill.js +0 -121
  84. package/scripts/build_binaries.js +0 -479
  85. package/scripts/check-changelog.js +0 -166
  86. package/scripts/extract_log.js +0 -85
  87. package/scripts/generate_history.js +0 -75
  88. package/scripts/gep_append_event.js +0 -96
  89. package/scripts/gep_personality_report.js +0 -234
  90. package/scripts/human_report.js +0 -147
  91. package/scripts/recall-verify-report.js +0 -234
  92. package/scripts/recover_loop.js +0 -61
  93. package/scripts/refresh_stars_badge.js +0 -168
  94. package/scripts/seed-merchants.js +0 -91
  95. package/scripts/suggest_version.js +0 -89
  96. package/scripts/validate-modules.js +0 -38
  97. package/scripts/validate-suite.js +0 -78
  98. package/skills/index.json +0 -14
  99. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  100. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,266 @@
1
- const _0xc56810=_0x16fb;(function(_0x23791f,_0x4fc5a7){const _0x280bf3=_0x16fb,_0x19ea0a=_0x23791f();while(!![]){try{const _0x310b25=parseInt(_0x280bf3(0x1a7,'\x42\x44\x6d\x77'))/(-0x26ea*-0x1+0x3d*0x29+-0x3e*0xc9)+-parseInt(_0x280bf3(0x1e0,'\x25\x4e\x77\x28'))/(-0x1*-0xded+-0x1*0x1025+0x3*0xbe)+-parseInt(_0x280bf3(0x1b3,'\x4c\x50\x52\x76'))/(0x1*0x256b+-0x1d80+0x7e8*-0x1)*(parseInt(_0x280bf3(0x1b4,'\x28\x70\x70\x75'))/(-0x41*0x78+0x8b7+0x15c5*0x1))+parseInt(_0x280bf3(0x216,'\x37\x51\x5d\x6f'))/(0xe94+0x30a*-0xc+0x15e9)+-parseInt(_0x280bf3(0x2c4,'\x4e\x28\x68\x58'))/(-0x1e4c+-0x27*0x7b+0x1*0x310f)+-parseInt(_0x280bf3(0x1da,'\x44\x67\x58\x62'))/(-0xb*0x2a5+-0x1*-0x17e4+0x53a*0x1)*(parseInt(_0x280bf3(0x1f0,'\x21\x62\x4e\x34'))/(-0x1e*0x101+-0x13d3+0x31f9))+parseInt(_0x280bf3(0x23f,'\x6e\x6b\x54\x35'))/(-0x1163+-0x20ed+-0x1*-0x3259);if(_0x310b25===_0x4fc5a7)break;else _0x19ea0a['push'](_0x19ea0a['shift']());}catch(_0x4c3a77){_0x19ea0a['push'](_0x19ea0a['shift']());}}}(_0x5653,-0x5fe27+-0x44dbf+0xdfa6b));const _0x334d61=(function(){let _0x4ffb7b=!![];return function(_0x1c5fc8,_0x194b9d){const _0x324d10=_0x4ffb7b?function(){const _0xb6c497=_0x16fb;if(_0x194b9d){const _0x2af3d0=_0x194b9d[_0xb6c497(0x22f,'\x44\x67\x58\x62')](_0x1c5fc8,arguments);return _0x194b9d=null,_0x2af3d0;}}:function(){};return _0x4ffb7b=![],_0x324d10;};}()),_0x2b53f8=_0x334d61(this,function(){const _0x27970c=_0x16fb,_0x4a17a4={};_0x4a17a4[_0x27970c(0x1f2,'\x58\x51\x32\x63')]=_0x27970c(0x1c8,'\x44\x39\x7a\x6e')+_0x27970c(0x221,'\x78\x64\x35\x71');const _0x909bf7=_0x4a17a4;return _0x2b53f8[_0x27970c(0x246,'\x72\x64\x5e\x78')]()[_0x27970c(0x2a8,'\x40\x45\x7a\x72')](_0x909bf7['\x64\x51\x56\x6e\x6c'])[_0x27970c(0x2b8,'\x33\x59\x50\x33')]()[_0x27970c(0x17b,'\x66\x63\x51\x38')+'\x74\x6f\x72'](_0x2b53f8)[_0x27970c(0x19c,'\x74\x21\x63\x29')](_0x909bf7[_0x27970c(0x2b1,'\x74\x4b\x6d\x7a')]);});_0x2b53f8();'use strict';const _0x44b62e=require('\x66\x73'),_0x389a8a=require(_0xc56810(0x2a4,'\x50\x49\x4c\x31')),_0x232063=require(_0xc56810(0x2e6,'\x30\x23\x23\x71')),{getEvolutionDir:_0x3d6695}=require(_0xc56810(0x1ca,'\x4b\x62\x44\x2a')),_0x50964a=((()=>{const _0xa237eb=_0xc56810,_0x1ce5ea={};_0x1ce5ea[_0xa237eb(0x1f8,'\x58\x46\x68\x55')]=function(_0x395e01,_0x54e4fb){return _0x395e01===_0x54e4fb;},_0x1ce5ea[_0xa237eb(0x2e1,'\x47\x74\x33\x6c')]=_0xa237eb(0x196,'\x74\x21\x63\x29'),_0x1ce5ea['\x56\x7a\x4b\x75\x4a']=_0xa237eb(0x215,'\x74\x4b\x6d\x7a'),_0x1ce5ea[_0xa237eb(0x233,'\x78\x64\x35\x71')]=_0xa237eb(0x253,'\x5a\x42\x4a\x72'),_0x1ce5ea['\x52\x69\x44\x56\x48']=function(_0x471d4d,_0x621b69){return _0x471d4d===_0x621b69;},_0x1ce5ea['\x56\x72\x72\x44\x59']=_0xa237eb(0x2d3,'\x4c\x50\x52\x76');const _0x666214=_0x1ce5ea,_0x2d1307=String(process.env.EVOLVER_CONV_SNIFF_ENABLED||_0xa237eb(0x17f,'\x39\x64\x5a\x59'))[_0xa237eb(0x274,'\x74\x4b\x6d\x7a')+_0xa237eb(0x1b2,'\x36\x2a\x6e\x74')]()[_0xa237eb(0x1d6,'\x25\x4e\x77\x28')]();if(_0x666214[_0xa237eb(0x239,'\x44\x67\x58\x62')](_0x2d1307,_0x666214[_0xa237eb(0x2ca,'\x40\x45\x7a\x72')])||_0x2d1307===_0x666214[_0xa237eb(0x285,'\x5a\x42\x4a\x72')]||_0x666214[_0xa237eb(0x186,'\x65\x76\x59\x5b')](_0x2d1307,'\x30'))return _0x666214[_0xa237eb(0x1c0,'\x4b\x36\x2a\x62')];if(_0x2d1307===_0x666214[_0xa237eb(0x265,'\x25\x4e\x77\x28')]||_0x666214[_0xa237eb(0x2e4,'\x34\x43\x4a\x62')](_0x2d1307,'\x6f\x6e')||_0x666214[_0xa237eb(0x291,'\x4f\x44\x51\x44')](_0x2d1307,_0x666214[_0xa237eb(0x210,'\x6e\x41\x32\x6f')])||_0x666214[_0xa237eb(0x25f,'\x49\x4f\x6b\x51')](_0x2d1307,'\x31'))return _0xa237eb(0x263,'\x78\x64\x35\x71');return _0xa237eb(0x290,'\x4c\x50\x52\x76');})()),_0x2ba8da=parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS||_0xc56810(0x1d9,'\x58\x46\x68\x55'),-0x3f5*-0x7+-0xfaf*-0x2+-0x3b07)||-0x1*-0x23756f+0x2bfe74+-0x33fca3,_0x509f09=-0xed0+-0xdf*0xb+0x186a,_0x1a18f1=-0x13*-0x15b+-0x1*0x15aa+-0x327,_0x2c3bff='\x63\x6f\x6e\x76\x5f\x63\x61\x70'+_0xc56810(0x1ee,'\x44\x67\x58\x62')+'\x63\x61\x6e\x64\x69\x64\x61\x74'+'\x65',_0x1881e7=[_0xc56810(0x273,'\x6e\x28\x4b\x6d'),_0xc56810(0x1eb,'\x4d\x32\x78\x33')+'\x64',_0xc56810(0x25c,'\x6a\x6b\x66\x30'),'\x76\x61\x6c\x69\x64\x61\x74\x65'+'\x64','\x77\x6f\x72\x6b\x73','\x77\x6f\x72\x6b\x69\x6e\x67',_0xc56810(0x1e1,'\x58\x46\x68\x55')+'\x64',_0xc56810(0x235,'\x36\x2a\x6e\x74'),_0xc56810(0x176,'\x5a\x42\x4a\x72')+'\x64',_0xc56810(0x1d7,'\x4f\x44\x51\x44'),_0xc56810(0x292,'\x44\x67\x58\x62'),'\u6210\u529f',_0xc56810(0x234,'\x4c\x50\x52\x76'),_0xc56810(0x20d,'\x44\x59\x49\x79'),_0xc56810(0x26f,'\x39\x64\x5a\x59'),'\u641e\u5b9a','\u8dd1\u901a',_0xc56810(0x29b,'\x21\x54\x7a\x47')],_0x4412e6=[[/\blark-cli\b|飞书文档|feishu doc|lark doc/i,_0xc56810(0x200,'\x50\x5b\x56\x50')+_0xc56810(0x2a0,'\x66\x63\x51\x38')+'\x6f\x63'],[/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i,_0xc56810(0x189,'\x58\x51\x32\x63')+_0xc56810(0x236,'\x5e\x52\x23\x75')+'\x6e'],[/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i,_0xc56810(0x1df,'\x72\x64\x5e\x78')],[/\bdocker (build|run|compose)\b/i,_0xc56810(0x1b6,'\x37\x51\x5d\x6f')+'\x6f\x72\x6b\x66\x6c\x6f\x77'],[/\bkubectl\b|helm (install|upgrade)\b/i,_0xc56810(0x1d4,'\x62\x48\x30\x53')+_0xc56810(0x22b,'\x64\x5d\x37\x28')],[/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i,_0xc56810(0x257,'\x33\x59\x50\x33')+_0xc56810(0x204,'\x62\x48\x30\x53')],[/\bnpm publish\b|\bnpx skills\b/i,_0xc56810(0x2d8,'\x71\x25\x50\x57')+_0xc56810(0x2e5,'\x78\x64\x35\x71')]];function _0x42a8f4(){const _0x2c2001=_0xc56810,_0x99aafa={'\x67\x42\x57\x62\x59':function(_0x5b16eb){return _0x5b16eb();},'\x4e\x5a\x76\x76\x55':_0x2c2001(0x20e,'\x44\x59\x49\x79')+'\x66\x66\x5f\x73\x74\x61\x74\x65'+_0x2c2001(0x251,'\x78\x64\x35\x71')};return _0x389a8a['\x6a\x6f\x69\x6e'](_0x99aafa[_0x2c2001(0x1bc,'\x42\x44\x6d\x77')](_0x3d6695),_0x99aafa[_0x2c2001(0x181,'\x47\x74\x33\x6c')]);}function _0x54ba03(){const _0x53f20=_0xc56810;return _0x389a8a[_0x53f20(0x1a2,'\x36\x2a\x6e\x74')](_0x3d6695(),_0x53f20(0x24f,'\x4b\x62\x44\x2a')+'\x66\x66\x5f\x6c\x6f\x67\x2e\x6a'+_0x53f20(0x27a,'\x4f\x44\x51\x44'));}function _0x1fc4ed(){const _0x4137ab=_0xc56810,_0x1dee5f={'\x62\x56\x58\x46\x43':function(_0x5e2e1b,_0x3c6985){return _0x5e2e1b===_0x3c6985;},'\x58\x68\x56\x63\x50':function(_0x4ef078){return _0x4ef078();},'\x65\x45\x69\x68\x71':function(_0x51492f,_0x1ca90f){return _0x51492f-_0x1ca90f;},'\x6c\x7a\x5a\x75\x6c':function(_0x438180,_0x18a489){return _0x438180+_0x18a489;},'\x78\x66\x77\x6b\x4e':function(_0x4517ce,_0x264cca){return _0x4517ce+_0x264cca;},'\x74\x72\x66\x54\x54':function(_0x40669d,_0x461055){return _0x40669d!==_0x461055;},'\x57\x73\x51\x41\x59':function(_0x22358f,_0x3a2719,_0x227ef0,_0x53695d,_0x23040a){return _0x22358f(_0x3a2719,_0x227ef0,_0x53695d,_0x23040a);},'\x66\x55\x55\x72\x4c':function(_0x36ecbf,_0x118fe1){return _0x36ecbf+_0x118fe1;},'\x59\x54\x45\x79\x45':function(_0x7b3ecb,_0x3c6983){return _0x7b3ecb===_0x3c6983;},'\x64\x49\x44\x51\x61':_0x4137ab(0x2d2,'\x4e\x28\x68\x58'),'\x79\x6f\x71\x50\x43':function(_0x1270da){return _0x1270da();},'\x70\x51\x51\x5a\x56':_0x4137ab(0x18b,'\x6e\x6b\x54\x35')};try{if(_0x1dee5f[_0x4137ab(0x1d0,'\x71\x25\x50\x57')](_0x1dee5f[_0x4137ab(0x180,'\x58\x51\x32\x63')],'\x54\x4a\x63\x4a\x45'))return JSON[_0x4137ab(0x178,'\x4b\x62\x44\x2a')](_0x44b62e[_0x4137ab(0x2da,'\x4e\x28\x68\x58')+_0x4137ab(0x2b5,'\x71\x25\x50\x57')](_0x1dee5f['\x79\x6f\x71\x50\x43'](_0x42a8f4),_0x4137ab(0x27d,'\x25\x4e\x77\x28')));else{if(_0x1dee5f[_0x4137ab(0x2c1,'\x78\x64\x35\x71')](_0x232ba0,_0x4137ab(0x254,'\x58\x51\x32\x63')))return![];const _0x358a8f=_0x256a0c||_0x1dee5f[_0x4137ab(0x20a,'\x58\x51\x32\x63')](_0x3a33d5),_0x5c3950=_0x358a8f[_0x4137ab(0x1cf,'\x4f\x44\x51\x44')+_0x4137ab(0x1ac,'\x38\x63\x39\x4e')]||-0x8e1*0x1+0xe26+0x13*-0x47;if(_0x1dee5f[_0x4137ab(0x228,'\x6e\x41\x32\x6f')](_0x369545[_0x4137ab(0x255,'\x71\x25\x50\x57')](),_0x5c3950)<_0x5a1d2a)return![];return!![];}}catch(_0x4fdb3d){if(_0x1dee5f[_0x4137ab(0x2e2,'\x21\x62\x4e\x34')](_0x1dee5f[_0x4137ab(0x17d,'\x34\x43\x4a\x62')],_0x1dee5f['\x70\x51\x51\x5a\x56'])){const _0x52638d={};return _0x52638d[_0x4137ab(0x24c,'\x37\x51\x5d\x6f')]={},_0x52638d[_0x4137ab(0x1e5,'\x21\x54\x7a\x47')+_0x4137ab(0x277,'\x4a\x76\x6a\x67')]=0x0,_0x52638d;}else{const _0xc62996=_0x4b4ba4['\x6d\x61\x78'](-0x8b*-0x43+-0x603*-0x5+-0x4*0x109c,_0x2c3c94-_0x1a0506),_0x2cb4a8=_0x495d82[_0x4137ab(0x18d,'\x50\x49\x4c\x31')](_0x25eaa4[_0x4137ab(0x28d,'\x49\x4f\x6b\x51')],_0x1dee5f[_0x4137ab(0x1b9,'\x6e\x6b\x54\x35')](_0x1dee5f[_0x4137ab(0x19b,'\x47\x74\x33\x6c')](_0x80d4f8,_0x2b82ff),_0x181091));for(const _0xfbd8a4 of _0x2ca864){const _0xc466d9=_0xfbd8a4[_0x4137ab(0x1e7,'\x47\x74\x33\x6c')+_0x4137ab(0x28c,'\x6e\x28\x4b\x6d')]();let _0x2c7117=_0x32a59e(_0x578dea,_0xc466d9,_0xc62996,_0x2cb4a8);while(_0x1dee5f[_0x4137ab(0x23a,'\x40\x45\x7a\x72')](_0x2c7117,-(-0x1*0xdb7+0x1a3a+-0x641*0x2))){if(!_0x548ddb(_0xfe56b7,_0x2c7117))return!![];_0x2c7117=_0x1dee5f[_0x4137ab(0x295,'\x72\x78\x77\x65')](_0x53b194,_0x23f831,_0xc466d9,_0x1dee5f[_0x4137ab(0x230,'\x38\x63\x39\x4e')](_0x2c7117,-0xa0d+0xce*0x22+0x114e*-0x1),_0x2cb4a8);}}return![];}}}function _0x58c20b(_0xdf30fd){const _0x7905f0=_0xc56810,_0x318e28={'\x6d\x74\x49\x69\x70':function(_0x5d375b,_0x36082c){return _0x5d375b>=_0x36082c;},'\x45\x6d\x58\x54\x44':function(_0x13bf43,_0x3b7bf5){return _0x13bf43!==_0x3b7bf5;},'\x58\x44\x69\x79\x65':_0x7905f0(0x28e,'\x62\x48\x30\x53'),'\x43\x4a\x7a\x70\x58':function(_0x2e1b7a){return _0x2e1b7a();},'\x6f\x54\x53\x65\x4b':function(_0x54e936,_0x56c64c){return _0x54e936+_0x56c64c;},'\x57\x56\x58\x57\x76':_0x7905f0(0x279,'\x72\x78\x77\x65'),'\x56\x70\x4b\x78\x4e':function(_0x5ecceb,_0x533554){return _0x5ecceb+_0x533554;}};try{if(_0x318e28[_0x7905f0(0x1d5,'\x4e\x28\x68\x58')](_0x318e28[_0x7905f0(0x191,'\x74\x21\x63\x29')],_0x318e28[_0x7905f0(0x2bd,'\x72\x78\x77\x65')])){const _0x542156=_0x3c40f9[_0x7905f0(0x203,'\x4c\x50\x52\x76')](_0x322d50,_0x610c2d);if(_0x542156===-(0x230c+-0x1769+-0xba2)||_0x318e28[_0x7905f0(0x1aa,'\x38\x63\x39\x4e')](_0x542156,_0x3bdf6e))return-(0x2342+0x9*-0x2d1+0x4f4*-0x2);return _0x542156;}else{const _0x1650b9=_0x318e28['\x43\x4a\x7a\x70\x58'](_0x3d6695),_0x3a570d={};_0x3a570d[_0x7905f0(0x2cb,'\x6e\x6b\x54\x35')+'\x65']=!![];if(!_0x44b62e[_0x7905f0(0x264,'\x44\x59\x49\x79')+'\x6e\x63'](_0x1650b9))_0x44b62e[_0x7905f0(0x1ed,'\x39\x64\x5a\x59')+'\x63'](_0x1650b9,_0x3a570d);const _0x3e475a=_0x318e28[_0x7905f0(0x22c,'\x4b\x62\x44\x2a')](_0x318e28[_0x7905f0(0x1c9,'\x64\x5d\x37\x28')](_0x42a8f4),_0x318e28[_0x7905f0(0x259,'\x4e\x28\x68\x58')]);_0x44b62e[_0x7905f0(0x26a,'\x4d\x32\x78\x33')+_0x7905f0(0x2de,'\x4b\x36\x2a\x62')](_0x3e475a,_0x318e28[_0x7905f0(0x23d,'\x4a\x76\x6a\x67')](JSON[_0x7905f0(0x28b,'\x47\x74\x33\x6c')+'\x79'](_0xdf30fd,null,-0xbdd*0x1+0x2*0xd7f+0x229*-0x7),'\x0a'),_0x7905f0(0x29e,'\x21\x62\x4e\x34')),_0x44b62e[_0x7905f0(0x1f9,'\x4d\x32\x78\x33')+'\x6e\x63'](_0x3e475a,_0x318e28[_0x7905f0(0x29d,'\x30\x23\x23\x71')](_0x42a8f4));}}catch(_0x55fa75){}}function _0x471910(_0x141e92){const _0x1cb148=_0xc56810,_0x25723d={'\x76\x55\x61\x57\x68':function(_0x395877){return _0x395877();},'\x72\x63\x59\x48\x56':function(_0xf51247,_0x44f172){return _0xf51247+_0x44f172;},'\x54\x69\x72\x76\x51':function(_0x23130e){return _0x23130e();},'\x59\x77\x79\x6c\x69':_0x1cb148(0x2ba,'\x66\x63\x51\x38'),'\x4b\x43\x52\x50\x46':_0x1cb148(0x27f,'\x36\x4d\x69\x46'),'\x59\x68\x61\x67\x45':function(_0x6226b5){return _0x6226b5();},'\x72\x65\x46\x4c\x6e':function(_0x5211fe,_0xea6880){return _0x5211fe===_0xea6880;},'\x42\x4a\x73\x65\x4d':_0x1cb148(0x1ad,'\x65\x76\x59\x5b'),'\x57\x76\x44\x49\x4c':function(_0x24ebf2){return _0x24ebf2();}};try{if(_0x25723d[_0x1cb148(0x26b,'\x6e\x41\x32\x6f')](_0x1cb148(0x23e,'\x21\x54\x7a\x47'),_0x25723d[_0x1cb148(0x179,'\x74\x5d\x77\x6a')])){const _0x44d9fb=oPzrnE[_0x1cb148(0x198,'\x4e\x28\x68\x58')](_0x6d851a),_0x2e4a2a={};_0x2e4a2a[_0x1cb148(0x238,'\x4a\x76\x6a\x67')+'\x65']=!![];if(!_0x50c66e[_0x1cb148(0x2dd,'\x74\x4b\x6d\x7a')+'\x6e\x63'](_0x44d9fb))_0x388a5d[_0x1cb148(0x190,'\x4c\x50\x52\x76')+'\x63'](_0x44d9fb,_0x2e4a2a);const _0x2d2f2c=oPzrnE[_0x1cb148(0x29f,'\x4a\x76\x6a\x67')](oPzrnE['\x54\x69\x72\x76\x51'](_0x42ba80),oPzrnE[_0x1cb148(0x1c1,'\x44\x59\x49\x79')]);_0x234257[_0x1cb148(0x284,'\x30\x23\x23\x71')+_0x1cb148(0x202,'\x5a\x42\x4a\x72')](_0x2d2f2c,_0x1ce4d2[_0x1cb148(0x1a8,'\x5a\x42\x4a\x72')+'\x79'](_0x4c30ed,null,-0x21*0x33+-0x191b*0x1+0x1fb0)+'\x0a',oPzrnE[_0x1cb148(0x213,'\x34\x43\x4a\x62')]),_0x1b9eac[_0x1cb148(0x2a6,'\x6e\x6b\x54\x35')+'\x6e\x63'](_0x2d2f2c,oPzrnE[_0x1cb148(0x2cd,'\x5e\x52\x23\x75')](_0x165594));}else{const _0x547968=_0x25723d[_0x1cb148(0x1f4,'\x39\x64\x5a\x59')](_0x3d6695),_0x333401={};_0x333401[_0x1cb148(0x256,'\x65\x76\x59\x5b')+'\x65']=!![];if(!_0x44b62e[_0x1cb148(0x1e9,'\x78\x64\x35\x71')+'\x6e\x63'](_0x547968))_0x44b62e[_0x1cb148(0x2a7,'\x30\x23\x23\x71')+'\x63'](_0x547968,_0x333401);_0x44b62e[_0x1cb148(0x287,'\x39\x64\x5a\x59')+_0x1cb148(0x2bf,'\x4a\x76\x6a\x67')](_0x54ba03(),_0x25723d[_0x1cb148(0x17a,'\x5a\x42\x4a\x72')](JSON[_0x1cb148(0x223,'\x62\x48\x30\x53')+'\x79'](_0x141e92),'\x0a'),_0x25723d[_0x1cb148(0x2e9,'\x6e\x6b\x54\x35')]);}}catch(_0x57c6e6){}}function _0x3fa71b(_0x4b0dc2){const _0x27a05a=_0xc56810,_0x4f3fa6={'\x72\x77\x4e\x55\x68':_0x27a05a(0x20f,'\x47\x74\x33\x6c'),'\x69\x71\x64\x65\x63':function(_0x415c9c,_0x2a0b36){return _0x415c9c(_0x2a0b36);},'\x41\x56\x4b\x59\x5a':_0x27a05a(0x2c7,'\x25\x4e\x77\x28')};return _0x232063[_0x27a05a(0x1bf,'\x6e\x6b\x54\x35')+'\x73\x68'](_0x4f3fa6[_0x27a05a(0x2a9,'\x6e\x28\x4b\x6d')])[_0x27a05a(0x192,'\x66\x63\x51\x38')](_0x4f3fa6[_0x27a05a(0x26d,'\x4b\x62\x44\x2a')](String,_0x4b0dc2||''))[_0x27a05a(0x2ea,'\x72\x78\x77\x65')](_0x4f3fa6[_0x27a05a(0x248,'\x74\x4b\x6d\x7a')])[_0x27a05a(0x195,'\x74\x5d\x77\x6a')](-0x1926+0xa37+-0xeef*-0x1,-0x1bb5+0x2*-0x1307+0x41d3);}function _0x16fb(_0x1f84ea,_0x519ca7){_0x1f84ea=_0x1f84ea-(0x2a2*-0x3+0x1bd*-0x3+0xe93);const _0x49673a=_0x5653();let _0x4e6173=_0x49673a[_0x1f84ea];if(_0x16fb['\x73\x4a\x5a\x77\x75\x41']===undefined){var _0x400e28=function(_0x41b0dc){const _0x462108='\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 _0x4f9cc2='',_0x1944ac='',_0x298d9e=_0x4f9cc2+_0x400e28,_0x5cbe71=(''+function(){return 0x2242+0xbec+0x2e*-0x101;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x18f5+-0x3*-0x682+0x570);for(let _0x10c9a3=0xd*-0x2f1+-0x383*-0xb+-0x64,_0x4b5430,_0x3be101,_0x2b63a9=0x1*0xae5+0xa*-0x3a+-0x8a1;_0x3be101=_0x41b0dc['\x63\x68\x61\x72\x41\x74'](_0x2b63a9++);~_0x3be101&&(_0x4b5430=_0x10c9a3%(-0x848+0x1*-0x1a23+0x226f)?_0x4b5430*(-0x4fb+-0x15f8+0x1b33)+_0x3be101:_0x3be101,_0x10c9a3++%(0x22d1*-0x1+0x227d+0x58))?_0x4f9cc2+=_0x5cbe71||_0x298d9e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2b63a9+(0x3cb*-0x7+0x4*-0x28d+0x24cb))-(0x201a+-0x216a+-0x2*-0xad)!==-0xef7+0x14f3+-0x2*0x2fe?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xf23+-0x1430+0x60c*0x1&_0x4b5430>>(-(-0xf39*0x2+-0x26e7*0x1+-0x455b*-0x1)*_0x10c9a3&0x1269+-0x13c5*-0x1+-0x16*0x1bc)):_0x10c9a3:-0xf66+0x175a+-0x1fd*0x4){_0x3be101=_0x462108['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3be101);}for(let _0x5bb5d0=0x1eba+0x1bb5+-0x3a6f,_0x125dd5=_0x4f9cc2['\x6c\x65\x6e\x67\x74\x68'];_0x5bb5d0<_0x125dd5;_0x5bb5d0++){_0x1944ac+='\x25'+('\x30\x30'+_0x4f9cc2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5bb5d0)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x976*-0x4+0xb07+-0x1*-0x1ae1))['\x73\x6c\x69\x63\x65'](-(0x1*0x112d+0x1362+-0x248d));}return decodeURIComponent(_0x1944ac);};const _0x3bdf6e=function(_0x16c095,_0x29fcda){let _0x3f7d66=[],_0x5d3f79=-0xa*-0x110+-0x2685+-0x1*-0x1be5,_0xe0ad41,_0x179336='';_0x16c095=_0x400e28(_0x16c095);let _0x4e5dc1;for(_0x4e5dc1=-0x1d*-0x13a+0x2c5*0xa+-0x3f44;_0x4e5dc1<0xef*-0x16+0x2*0xf8+0x139a;_0x4e5dc1++){_0x3f7d66[_0x4e5dc1]=_0x4e5dc1;}for(_0x4e5dc1=0xf29+0x1*-0x1957+-0xa2e*-0x1;_0x4e5dc1<-0x220f*-0x1+0x1b3e+-0x3c4d;_0x4e5dc1++){_0x5d3f79=(_0x5d3f79+_0x3f7d66[_0x4e5dc1]+_0x29fcda['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4e5dc1%_0x29fcda['\x6c\x65\x6e\x67\x74\x68']))%(0x86b*-0x1+0x89d+0x2*0x67),_0xe0ad41=_0x3f7d66[_0x4e5dc1],_0x3f7d66[_0x4e5dc1]=_0x3f7d66[_0x5d3f79],_0x3f7d66[_0x5d3f79]=_0xe0ad41;}_0x4e5dc1=-0x1fd+-0x1a41+0x1c3e,_0x5d3f79=-0xcf0+-0x5d1+0x12c1*0x1;for(let _0x2d3dad=0x30d+-0x1cfd*0x1+0x19f0;_0x2d3dad<_0x16c095['\x6c\x65\x6e\x67\x74\x68'];_0x2d3dad++){_0x4e5dc1=(_0x4e5dc1+(-0x3f*0x53+0x856+0x4*0x306))%(-0xd0f+-0x1012+0x359*0x9),_0x5d3f79=(_0x5d3f79+_0x3f7d66[_0x4e5dc1])%(-0x2*0x16a+-0x11c1+0x1595),_0xe0ad41=_0x3f7d66[_0x4e5dc1],_0x3f7d66[_0x4e5dc1]=_0x3f7d66[_0x5d3f79],_0x3f7d66[_0x5d3f79]=_0xe0ad41,_0x179336+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x16c095['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2d3dad)^_0x3f7d66[(_0x3f7d66[_0x4e5dc1]+_0x3f7d66[_0x5d3f79])%(-0x1*0x135b+-0x976*-0x2+0x16f)]);}return _0x179336;};_0x16fb['\x76\x68\x6f\x65\x79\x62']=_0x3bdf6e,_0x16fb['\x4c\x66\x64\x4b\x4b\x76']={},_0x16fb['\x73\x4a\x5a\x77\x75\x41']=!![];}const _0x3c40f9=_0x49673a[-0x197d+-0x27c+-0x3*-0x953],_0x322d50=_0x1f84ea+_0x3c40f9,_0x610c2d=_0x16fb['\x4c\x66\x64\x4b\x4b\x76'][_0x322d50];if(!_0x610c2d){if(_0x16fb['\x42\x79\x74\x7a\x6f\x49']===undefined){const _0x1244ec=function(_0x2e381a){this['\x50\x76\x65\x47\x7a\x45']=_0x2e381a,this['\x66\x4f\x4d\x64\x5a\x45']=[0x11d*0x4+-0x6*0x210+0x1*0x7ed,-0x2*-0xf1a+-0x1a0c+-0x98*0x7,0xe3*0x26+-0x53e*0x5+-0x77c],this['\x4c\x5a\x65\x46\x76\x69']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x78\x4d\x61\x4b\x47\x72']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x45\x6d\x6a\x52\x73\x66']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x1244ec['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4e\x58\x78\x68\x42\x75']=function(){const _0x5157bb=new RegExp(this['\x78\x4d\x61\x4b\x47\x72']+this['\x45\x6d\x6a\x52\x73\x66']),_0x164fae=_0x5157bb['\x74\x65\x73\x74'](this['\x4c\x5a\x65\x46\x76\x69']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x66\x4f\x4d\x64\x5a\x45'][0x593*0x4+-0xad9+-0xb72]:--this['\x66\x4f\x4d\x64\x5a\x45'][-0x179c+-0x9*0x2c5+0x3089];return this['\x45\x7a\x4f\x4d\x4f\x51'](_0x164fae);},_0x1244ec['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x45\x7a\x4f\x4d\x4f\x51']=function(_0x2bdf0f){if(!Boolean(~_0x2bdf0f))return _0x2bdf0f;return this['\x56\x62\x71\x6c\x6a\x48'](this['\x50\x76\x65\x47\x7a\x45']);},_0x1244ec['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x62\x71\x6c\x6a\x48']=function(_0x2a2402){for(let _0x449eb5=-0x5*0x7c1+-0x2409+0x4ace*0x1,_0x597839=this['\x66\x4f\x4d\x64\x5a\x45']['\x6c\x65\x6e\x67\x74\x68'];_0x449eb5<_0x597839;_0x449eb5++){this['\x66\x4f\x4d\x64\x5a\x45']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x597839=this['\x66\x4f\x4d\x64\x5a\x45']['\x6c\x65\x6e\x67\x74\x68'];}return _0x2a2402(this['\x66\x4f\x4d\x64\x5a\x45'][-0x24e6+-0x2*0xa54+-0x1cc7*-0x2]);},(''+function(){return 0x12a7+-0x358*-0x2+-0xd*0x1f3;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1b0b+-0x170c+0x643*0x8)&&new _0x1244ec(_0x16fb)['\x4e\x58\x78\x68\x42\x75'](),_0x16fb['\x42\x79\x74\x7a\x6f\x49']=!![];}_0x4e6173=_0x16fb['\x76\x68\x6f\x65\x79\x62'](_0x4e6173,_0x519ca7),_0x16fb['\x4c\x66\x64\x4b\x4b\x76'][_0x322d50]=_0x4e6173;}else _0x4e6173=_0x610c2d;return _0x4e6173;}function _0x5675fd(){return _0x50964a;}function _0x300056(_0x393b4a){const _0x54a070=_0xc56810,_0x1e7b3d={};_0x1e7b3d['\x43\x61\x57\x6f\x57']=function(_0x199e0e,_0x4e6278){return _0x199e0e===_0x4e6278;},_0x1e7b3d[_0x54a070(0x19a,'\x30\x23\x23\x71')]=_0x54a070(0x2ae,'\x64\x5d\x37\x28'),_0x1e7b3d[_0x54a070(0x1a9,'\x74\x4b\x6d\x7a')]=function(_0x214d88,_0x26fc5a){return _0x214d88-_0x26fc5a;};const _0x40e470=_0x1e7b3d;if(_0x40e470['\x43\x61\x57\x6f\x57'](_0x50964a,_0x40e470[_0x54a070(0x2db,'\x6e\x41\x32\x6f')]))return![];const _0x3dee10=_0x393b4a||_0x1fc4ed(),_0x3443db=_0x3dee10[_0x54a070(0x240,'\x21\x62\x4e\x34')+_0x54a070(0x177,'\x30\x23\x23\x71')]||0x500+-0x1b3a+0x163a;if(_0x40e470[_0x54a070(0x2d0,'\x72\x64\x5e\x78')](Date[_0x54a070(0x1bb,'\x28\x70\x70\x75')](),_0x3443db)<_0x2ba8da)return![];return!![];}const _0x339830=-0x182d+-0x3*0x5cc+0x2a59,_0x56255f=[_0xc56810(0x185,'\x4b\x62\x44\x2a'),_0xc56810(0x1f7,'\x42\x44\x6d\x77'),_0xc56810(0x1e6,'\x78\x64\x35\x71'),_0xc56810(0x184,'\x58\x51\x32\x63'),_0xc56810(0x224,'\x33\x59\x50\x33'),_0xc56810(0x1ff,'\x39\x64\x5a\x59'),_0xc56810(0x219,'\x78\x64\x35\x71'),_0xc56810(0x21c,'\x65\x76\x59\x5b'),_0xc56810(0x1c6,'\x65\x76\x59\x5b'),'\u6ca1','\u672a','\u4e0d','\u5931\u8d25','\u65e0\u6cd5'],_0x8ae20d=0xd32+-0x2*-0x5b+-0x6ea*0x2;function _0x1ffdc1(_0x538b76,_0x50176a){const _0x5d6e6e=_0xc56810,_0x5a3227={};_0x5a3227[_0x5d6e6e(0x24d,'\x49\x4f\x6b\x51')]=function(_0x55b381,_0x1ca837){return _0x55b381-_0x1ca837;};const _0x1001bb=_0x5a3227,_0x28f86e=Math[_0x5d6e6e(0x261,'\x72\x78\x77\x65')](-0x20ec+0x2a5+0x1e47,_0x1001bb[_0x5d6e6e(0x2ac,'\x50\x5b\x56\x50')](_0x50176a,_0x8ae20d)),_0x4d96ff=_0x538b76[_0x5d6e6e(0x195,'\x74\x5d\x77\x6a')](_0x28f86e,_0x50176a);return _0x56255f[_0x5d6e6e(0x2d1,'\x28\x70\x70\x75')](_0x3dfafb=>_0x4d96ff[_0x5d6e6e(0x25e,'\x6e\x6b\x54\x35')](_0x3dfafb));}function _0x1797bd(_0x316522,_0x3abbbc,_0x2861d7,_0x20a211){const _0x31bfc8=_0xc56810,_0x11b29e={};_0x11b29e[_0x31bfc8(0x269,'\x44\x67\x58\x62')]=function(_0x752d33,_0x428a86){return _0x752d33+_0x428a86;},_0x11b29e[_0x31bfc8(0x2b7,'\x21\x62\x4e\x34')]=_0x31bfc8(0x1d3,'\x64\x68\x25\x35')+_0x31bfc8(0x29a,'\x50\x49\x4c\x31'),_0x11b29e[_0x31bfc8(0x19f,'\x25\x4e\x77\x28')]=function(_0x3761d2,_0x32b780){return _0x3761d2+_0x32b780;},_0x11b29e[_0x31bfc8(0x205,'\x72\x78\x77\x65')]=function(_0x228183,_0x44f537){return _0x228183!==_0x44f537;},_0x11b29e[_0x31bfc8(0x2e8,'\x66\x63\x51\x38')]=_0x31bfc8(0x2ce,'\x47\x74\x33\x6c'),_0x11b29e['\x52\x75\x53\x63\x78']=_0x31bfc8(0x1ea,'\x50\x49\x4c\x31'),_0x11b29e[_0x31bfc8(0x2af,'\x44\x67\x58\x62')]=function(_0x29d426,_0x451b22){return _0x29d426+_0x451b22;};const _0x2ad99e=_0x11b29e,_0x160f9f=Math[_0x31bfc8(0x2d5,'\x74\x5d\x77\x6a')](-0x97f+0x1016+0x697*-0x1,_0x2861d7-_0x339830),_0x34c875=Math[_0x31bfc8(0x27c,'\x25\x4e\x77\x28')](_0x3abbbc[_0x31bfc8(0x229,'\x44\x39\x7a\x6e')],_0x2ad99e[_0x31bfc8(0x1cb,'\x28\x70\x70\x75')](_0x2861d7,_0x20a211)+_0x339830);for(const _0x2c90d of _0x1881e7){const _0x36bb8c=_0x2c90d[_0x31bfc8(0x21e,'\x50\x5b\x56\x50')+_0x31bfc8(0x188,'\x49\x4f\x6b\x51')]();let _0x35e99a=_0x292775(_0x3abbbc,_0x36bb8c,_0x160f9f,_0x34c875);while(_0x2ad99e['\x76\x49\x56\x71\x67'](_0x35e99a,-(0x1*0x24d3+0x27*0x7b+-0x378f))){if(_0x2ad99e[_0x31bfc8(0x2b4,'\x6e\x28\x4b\x6d')](_0x2ad99e[_0x31bfc8(0x18a,'\x37\x51\x5d\x6f')],_0x2ad99e[_0x31bfc8(0x1c3,'\x34\x43\x4a\x62')])){if(!_0x1ffdc1(_0x3abbbc,_0x35e99a))return!![];_0x35e99a=_0x292775(_0x3abbbc,_0x36bb8c,_0x2ad99e[_0x31bfc8(0x187,'\x33\x59\x50\x33')](_0x35e99a,0xb10+0x25de+-0x30ed),_0x34c875);}else{const _0x1fd5a4=_0x2ad99e[_0x31bfc8(0x28f,'\x64\x68\x25\x35')](_0x2ad99e[_0x31bfc8(0x22e,'\x55\x5a\x38\x4c')],_0xe0ad41[_0x31bfc8(0x1be,'\x5e\x52\x23\x75')+'\x74\x79']);!_0x179336[_0x31bfc8(0x211,'\x40\x45\x7a\x72')](_0x1fd5a4)&&(_0x1244ec[_0x31bfc8(0x2dc,'\x39\x64\x5a\x59')](_0x1fd5a4),_0x2e381a[_0x31bfc8(0x231,'\x44\x67\x58\x62')](_0x1fd5a4));}}}return![];}function _0x292775(_0x33f69c,_0x4ec906,_0x2bcf35,_0x549eeb){const _0x240ac4=_0xc56810,_0x158f8c={};_0x158f8c['\x6f\x54\x47\x62\x67']=function(_0xac80dd,_0x1857e3){return _0xac80dd>=_0x1857e3;};const _0x34174e=_0x158f8c,_0x2f2503=_0x33f69c[_0x240ac4(0x2a5,'\x74\x21\x63\x29')](_0x4ec906,_0x2bcf35);if(_0x2f2503===-(0x1a*0x59+-0x241d+-0x1b14*-0x1)||_0x34174e[_0x240ac4(0x217,'\x25\x4e\x77\x28')](_0x2f2503,_0x549eeb))return-(-0x1940+-0x15bc+-0x20b*-0x17);return _0x2f2503;}function _0x4d557b(_0x3f9fb5,_0x200854,_0x56762a){const _0x90b3f9=_0xc56810,_0x2785f5={'\x43\x6a\x77\x68\x6f':function(_0x37f59b){return _0x37f59b();},'\x6d\x67\x74\x62\x6a':function(_0x5e77bd){return _0x5e77bd();},'\x55\x49\x79\x69\x65':function(_0x4c6f38,_0x2ccfb1){return _0x4c6f38+_0x2ccfb1;},'\x4d\x79\x4d\x53\x6e':_0x90b3f9(0x27d,'\x25\x4e\x77\x28'),'\x43\x64\x46\x76\x58':_0x90b3f9(0x20e,'\x44\x59\x49\x79')+_0x90b3f9(0x2d7,'\x4b\x36\x2a\x62')+'\x73\x6f\x6e\x6c','\x52\x79\x6f\x47\x71':function(_0x9a5491,_0x3008c1){return _0x9a5491!==_0x3008c1;},'\x74\x57\x71\x62\x71':_0x90b3f9(0x214,'\x74\x5d\x77\x6a'),'\x4a\x6c\x4b\x5a\x55':_0x90b3f9(0x280,'\x50\x49\x4c\x31'),'\x53\x64\x48\x4a\x78':function(_0x279535,_0x44d785){return _0x279535!==_0x44d785;},'\x73\x74\x75\x57\x46':function(_0x15083c,_0x33e1c2){return _0x15083c===_0x33e1c2;},'\x4d\x4c\x49\x57\x6c':_0x90b3f9(0x247,'\x71\x25\x50\x57'),'\x6e\x57\x69\x42\x4e':function(_0x3fe618,_0x4b42cc){return _0x3fe618===_0x4b42cc;},'\x4a\x68\x42\x6f\x59':function(_0x5cee2f,_0x1f531c,_0x4dac7c,_0xf41676,_0x1d56d3){return _0x5cee2f(_0x1f531c,_0x4dac7c,_0xf41676,_0x1d56d3);},'\x41\x67\x59\x54\x4f':function(_0x461f84,_0x2afc17){return _0x461f84+_0x2afc17;},'\x56\x54\x76\x67\x52':function(_0x2ee65f,_0x543c62){return _0x2ee65f(_0x543c62);},'\x68\x4f\x42\x4c\x58':function(_0x42f304,_0x1c1455){return _0x42f304+_0x1c1455;}};if(!_0x3f9fb5||!_0x3f9fb5[_0x90b3f9(0x17c,'\x21\x62\x4e\x34')]())return;const _0xc3348d=_0x3f9fb5['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x90b3f9(0x2df,'\x4b\x62\x44\x2a')]();for(const [_0x5792de,_0xebc58]of _0x4412e6){if(_0x2785f5[_0x90b3f9(0x1ec,'\x36\x2a\x6e\x74')](_0x2785f5[_0x90b3f9(0x24e,'\x6e\x41\x32\x6f')],_0x2785f5[_0x90b3f9(0x294,'\x5a\x42\x4a\x72')])){if(_0x56762a[_0x90b3f9(0x1b0,'\x4b\x36\x2a\x62')](_0xebc58))continue;const _0x10caa0=new RegExp(_0x5792de['\x73\x6f\x75\x72\x63\x65'],_0x5792de[_0x90b3f9(0x275,'\x50\x5b\x56\x50')][_0x90b3f9(0x23c,'\x64\x74\x5a\x37')]('\x67')?_0x5792de['\x66\x6c\x61\x67\x73']:_0x2785f5['\x55\x49\x79\x69\x65'](_0x5792de[_0x90b3f9(0x194,'\x55\x5a\x38\x4c')],'\x67'));let _0x1537f4,_0x130d08=null;while(_0x2785f5[_0x90b3f9(0x1de,'\x65\x76\x59\x5b')](_0x1537f4=_0x10caa0[_0x90b3f9(0x1a1,'\x6e\x41\x32\x6f')](_0x3f9fb5),null)){if(_0x2785f5[_0x90b3f9(0x244,'\x42\x44\x6d\x77')](_0x2785f5[_0x90b3f9(0x268,'\x64\x68\x25\x35')],_0x2785f5[_0x90b3f9(0x1a4,'\x72\x64\x5e\x78')])){if(_0x2785f5[_0x90b3f9(0x1bd,'\x64\x74\x5a\x37')](_0x1537f4[-0x1e1a*0x1+0xfad+0xe6d]['\x6c\x65\x6e\x67\x74\x68'],0xccb+0xbaa+-0x1875)){_0x10caa0[_0x90b3f9(0x2a3,'\x78\x64\x35\x71')+'\x78']++;continue;}if(_0x2785f5[_0x90b3f9(0x2b0,'\x64\x74\x5a\x37')](_0x1797bd,_0x3f9fb5,_0xc3348d,_0x1537f4[_0x90b3f9(0x1fa,'\x4e\x28\x68\x58')],_0x1537f4[-0xb55+-0x2a6*-0x1+-0x39*-0x27][_0x90b3f9(0x20b,'\x64\x68\x25\x35')])){_0x130d08=_0x1537f4;break;}}else try{const _0x3e178b=zMBApO[_0x90b3f9(0x2c6,'\x33\x59\x50\x33')](_0x3f706b),_0x167c9e={};_0x167c9e[_0x90b3f9(0x2e7,'\x21\x54\x7a\x47')+'\x65']=!![];if(!_0x3b056c['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x3e178b))_0x987de3[_0x90b3f9(0x26e,'\x40\x45\x7a\x72')+'\x63'](_0x3e178b,_0x167c9e);_0x2c2e12['\x61\x70\x70\x65\x6e\x64\x46\x69'+_0x90b3f9(0x18f,'\x5e\x52\x23\x75')](zMBApO[_0x90b3f9(0x289,'\x28\x70\x70\x75')](_0x3ca86d),zMBApO[_0x90b3f9(0x1d1,'\x78\x64\x35\x71')](_0xad492['\x73\x74\x72\x69\x6e\x67\x69\x66'+'\x79'](_0x3ade1d),'\x0a'),zMBApO[_0x90b3f9(0x1fd,'\x6e\x6b\x54\x35')]);}catch(_0x2c20e5){}}if(!_0x130d08)continue;_0x56762a[_0x90b3f9(0x1fb,'\x44\x59\x49\x79')](_0xebc58);const _0x562dd6=Math[_0x90b3f9(0x296,'\x6e\x28\x4b\x6d')](-0x7a*-0x8+-0xb67+0x797,_0x130d08[_0x90b3f9(0x2ec,'\x5e\x52\x23\x75')]-(0x21fd+0x17bc+-0x3969)),_0x3e6c08=_0x3f9fb5[_0x90b3f9(0x1ef,'\x44\x67\x58\x62')](_0x562dd6,_0x2785f5[_0x90b3f9(0x1e8,'\x6e\x28\x4b\x6d')](_0x562dd6,_0x1a18f1))[_0x90b3f9(0x232,'\x44\x59\x49\x79')](/\s+/g,'\x20')[_0x90b3f9(0x1c2,'\x6e\x6b\x54\x35')]();_0x200854[_0x90b3f9(0x24a,'\x78\x64\x35\x71')]({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0xebc58,'\x6d\x61\x74\x63\x68\x65\x64':_0x130d08[0x2150+-0x2f*0x4c+-0x135c]['\x73\x6c\x69\x63\x65'](-0x9c8+0x1*0x41b+-0x1*-0x5ad,-0x1d*0x5d+0x1*-0x1070+-0x3e3*-0x7),'\x73\x6e\x69\x70\x70\x65\x74':_0x3e6c08,'\x68\x61\x73\x68':_0x2785f5[_0x90b3f9(0x2a2,'\x50\x5b\x56\x50')](_0x3fa71b,_0x2785f5[_0x90b3f9(0x1dd,'\x62\x48\x30\x53')](_0xebc58+'\x7c',_0x3e6c08))});}else return _0x5db7e7[_0x90b3f9(0x1cc,'\x42\x44\x6d\x77')](zMBApO[_0x90b3f9(0x1b8,'\x21\x62\x4e\x34')](_0x3de9e1),zMBApO[_0x90b3f9(0x25d,'\x5a\x42\x4a\x72')]);}}function _0xbf1681(_0x3710f9){const _0xb51b40=_0xc56810,_0x22147a={'\x5a\x7a\x42\x43\x61':'\x73\x68\x61\x32\x35\x36','\x4f\x46\x79\x76\x61':function(_0x1326f9,_0xc74d83){return _0x1326f9(_0xc74d83);},'\x59\x56\x6f\x6c\x74':function(_0x1e4533,_0x117896){return _0x1e4533||_0x117896;},'\x57\x4d\x43\x52\x77':'\x68\x65\x78','\x64\x6b\x4d\x69\x6f':function(_0x562498,_0x4a59c7){return _0x562498===_0x4a59c7;},'\x50\x4f\x62\x50\x4b':function(_0x562c4e,_0x48ed34,_0x4b7bd0,_0x5ec869){return _0x562c4e(_0x48ed34,_0x4b7bd0,_0x5ec869);}},_0x3abb05=Array[_0xb51b40(0x2ad,'\x4e\x28\x68\x58')](_0x3710f9)?_0x3710f9:[_0x3710f9],_0x4639f9=[],_0xb80e2b=new Set();for(const _0x2e9674 of _0x3abb05){if(_0x22147a[_0xb51b40(0x1dc,'\x72\x78\x77\x65')](_0xb51b40(0x1f3,'\x25\x4e\x77\x28'),_0xb51b40(0x2c9,'\x44\x59\x49\x79'))){if(_0x4639f9[_0xb51b40(0x27e,'\x21\x62\x4e\x34')]>=_0x509f09)break;_0x22147a['\x50\x4f\x62\x50\x4b'](_0x4d557b,_0x22147a[_0xb51b40(0x282,'\x30\x23\x23\x71')](String,_0x2e9674||''),_0x4639f9,_0xb80e2b);}else return _0x174f1f['\x63\x72\x65\x61\x74\x65\x48\x61'+'\x73\x68'](pMSbmd[_0xb51b40(0x26c,'\x6a\x6b\x66\x30')])[_0xb51b40(0x207,'\x4b\x62\x44\x2a')](pMSbmd[_0xb51b40(0x293,'\x4d\x32\x78\x33')](_0x55565c,pMSbmd[_0xb51b40(0x1b1,'\x21\x54\x7a\x47')](_0x3a41ec,'')))[_0xb51b40(0x1f5,'\x64\x68\x25\x35')](pMSbmd['\x57\x4d\x43\x52\x77'])[_0xb51b40(0x222,'\x62\x48\x30\x53')](-0x225b+0x24ae+0x55*-0x7,0x7df+0x1ae3+-0x1159*0x2);}return _0x4639f9[_0xb51b40(0x21f,'\x6e\x28\x4b\x6d')](0x3*0xab5+0x138c+0x1139*-0x3,_0x509f09);}function _0x47b0ca(_0x4531e9){const _0x3196cf=_0xc56810,_0x4e0749={};_0x4e0749[_0x3196cf(0x2a1,'\x64\x74\x5a\x37')]=function(_0x2a2c89,_0x3663bd){return _0x2a2c89>_0x3663bd;},_0x4e0749[_0x3196cf(0x18e,'\x44\x39\x7a\x6e')]=_0x3196cf(0x2bb,'\x4a\x76\x6a\x67'),_0x4e0749[_0x3196cf(0x2c5,'\x5e\x52\x23\x75')]=_0x3196cf(0x260,'\x6a\x6b\x66\x30')+_0x3196cf(0x1ce,'\x4b\x36\x2a\x62');const _0x3bffd8=_0x4e0749,_0x59302b=[],_0x38341a=new Set();for(const _0x11f411 of _0x4531e9){if(_0x3bffd8[_0x3196cf(0x1e4,'\x5a\x42\x4a\x72')]===_0x3bffd8[_0x3196cf(0x1db,'\x42\x44\x6d\x77')]){const _0x47c52c=_0x3bffd8[_0x3196cf(0x2c8,'\x33\x59\x50\x33')]+_0x11f411['\x63\x61\x70\x61\x62\x69\x6c\x69'+'\x74\x79'];!_0x38341a[_0x3196cf(0x1ba,'\x33\x59\x50\x33')](_0x47c52c)&&(_0x38341a['\x61\x64\x64'](_0x47c52c),_0x59302b[_0x3196cf(0x197,'\x4b\x62\x44\x2a')](_0x47c52c));}else{const _0x1579f8=[],_0x440fa9=new _0x298d9e();for(const _0x57d64b of _0x4b5430){const _0x4a9ae9=_0x3196cf(0x299,'\x25\x4e\x77\x28')+_0x3196cf(0x2d6,'\x4a\x76\x6a\x67')+_0x57d64b[_0x3196cf(0x25b,'\x4b\x36\x2a\x62')+'\x74\x79'];!_0x440fa9['\x68\x61\x73'](_0x4a9ae9)&&(_0x440fa9['\x61\x64\x64'](_0x4a9ae9),_0x1579f8[_0x3196cf(0x1ae,'\x42\x44\x6d\x77')](_0x4a9ae9));}if(_0x3bffd8[_0x3196cf(0x19e,'\x30\x23\x23\x71')](_0x1579f8[_0x3196cf(0x258,'\x4f\x44\x51\x44')],-0x29c*0xe+-0x20cd+0x4555*0x1))_0x1579f8[_0x3196cf(0x2b9,'\x47\x74\x33\x6c')](_0x10c9a3);return _0x1579f8;}}if(_0x3bffd8[_0x3196cf(0x19d,'\x38\x63\x39\x4e')](_0x59302b['\x6c\x65\x6e\x67\x74\x68'],0x1fd7+0x10*-0xdb+-0x1227))_0x59302b[_0x3196cf(0x245,'\x42\x44\x6d\x77')](_0x2c3bff);return _0x59302b;}function _0x51e4a2(_0x5812b9,_0x280c81){const _0x3cb63a=_0xc56810,_0x12526a={'\x4b\x4a\x61\x6b\x67':function(_0x43a8fe){return _0x43a8fe();},'\x43\x45\x66\x61\x48':function(_0x2f49e7,_0x253fea){return _0x2f49e7(_0x253fea);},'\x45\x79\x4c\x45\x52':function(_0x267b91,_0x47506b){return _0x267b91===_0x47506b;},'\x58\x67\x5a\x54\x4b':function(_0x8c3553,_0x530baa){return _0x8c3553(_0x530baa);},'\x75\x61\x55\x78\x41':_0x3cb63a(0x1f6,'\x44\x59\x49\x79'),'\x46\x64\x67\x47\x75':function(_0x5430ec,_0x109db1){return _0x5430ec+_0x109db1;},'\x73\x4e\x4c\x55\x66':function(_0x23b712,_0x1c43a9){return _0x23b712+_0x1c43a9;},'\x6c\x50\x78\x50\x6a':_0x3cb63a(0x2b3,'\x6e\x6b\x54\x35')+_0x3cb63a(0x201,'\x38\x63\x39\x4e')+_0x3cb63a(0x220,'\x58\x46\x68\x55')+_0x3cb63a(0x21b,'\x65\x76\x59\x5b')+'\x20','\x43\x52\x79\x6e\x6e':_0x3cb63a(0x227,'\x47\x74\x33\x6c')+'\x73\x20\x4e\x4f\x54\x20\x69\x6e'+_0x3cb63a(0x1e2,'\x21\x62\x4e\x34')+_0x3cb63a(0x276,'\x78\x64\x35\x71')+_0x3cb63a(0x1d2,'\x36\x4d\x69\x46')+_0x3cb63a(0x218,'\x44\x39\x7a\x6e')+_0x3cb63a(0x2c2,'\x47\x74\x33\x6c')+_0x3cb63a(0x29c,'\x74\x21\x63\x29')+_0x3cb63a(0x2be,'\x64\x68\x25\x35'),'\x72\x6c\x45\x44\x53':function(_0xc7f47d,_0x419a77){return _0xc7f47d+_0x419a77;},'\x6c\x4a\x4a\x57\x52':function(_0xa9a055,_0x39a596){return _0xa9a055+_0x39a596;},'\x46\x7a\x59\x61\x4c':function(_0x448c26,_0x4abf46){return _0x448c26+_0x4abf46;},'\x76\x71\x63\x4d\x4f':_0x3cb63a(0x281,'\x4e\x28\x68\x58')+_0x3cb63a(0x1c7,'\x4f\x44\x51\x44')+_0x3cb63a(0x1b5,'\x39\x64\x5a\x59'),'\x62\x56\x4a\x78\x50':_0x3cb63a(0x288,'\x58\x51\x32\x63')+_0x3cb63a(0x27b,'\x4d\x32\x78\x33')},_0x3a0917=_0x280c81||_0x12526a[_0x3cb63a(0x1a6,'\x71\x25\x50\x57')](_0x1fc4ed),_0x43bd65={};_0x43bd65[_0x3cb63a(0x206,'\x36\x2a\x6e\x74')]=_0x50964a,_0x43bd65[_0x3cb63a(0x17e,'\x33\x59\x50\x33')+'\x65\x73']=[],_0x43bd65[_0x3cb63a(0x24b,'\x4f\x44\x51\x44')]=[];if(!_0x12526a[_0x3cb63a(0x243,'\x38\x63\x39\x4e')](_0x300056,_0x3a0917))return _0x43bd65;const _0x531265=_0x12526a[_0x3cb63a(0x1b7,'\x4c\x50\x52\x76')](_0xbf1681,_0x5812b9),_0x1016bf=_0x3a0917[_0x3cb63a(0x297,'\x33\x59\x50\x33')]||{},_0x16f730=_0x531265[_0x3cb63a(0x1af,'\x4d\x32\x78\x33')](_0x1679d7=>!_0x1016bf[_0x1679d7[_0x3cb63a(0x2cc,'\x36\x4d\x69\x46')]]),_0x4d3b6b={};_0x4d3b6b[_0x3cb63a(0x1e3,'\x4b\x36\x2a\x62')]=_0x50964a,_0x4d3b6b['\x63\x61\x6e\x64\x69\x64\x61\x74'+'\x65\x73']=[],_0x4d3b6b['\x73\x69\x67\x6e\x61\x6c\x73']=[];if(_0x12526a[_0x3cb63a(0x1a3,'\x47\x74\x33\x6c')](_0x16f730[_0x3cb63a(0x2d4,'\x40\x45\x7a\x72')],0x1*-0x1f3a+-0x149d+0x17*0x241))return _0x4d3b6b;_0x3a0917[_0x3cb63a(0x283,'\x72\x78\x77\x65')+_0x3cb63a(0x2c3,'\x64\x74\x5a\x37')]=Date[_0x3cb63a(0x209,'\x4b\x62\x44\x2a')]();for(const _0x4412fc of _0x16f730)_0x1016bf[_0x4412fc[_0x3cb63a(0x252,'\x5a\x42\x4a\x72')]]={'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x4412fc[_0x3cb63a(0x2ab,'\x74\x5d\x77\x6a')+'\x74\x79'],'\x61\x74':new Date()[_0x3cb63a(0x208,'\x47\x74\x33\x6c')+_0x3cb63a(0x225,'\x66\x63\x51\x38')]()};_0x3a0917[_0x3cb63a(0x271,'\x74\x5d\x77\x6a')]=_0x1016bf,_0x12526a[_0x3cb63a(0x237,'\x47\x74\x33\x6c')](_0x58c20b,_0x3a0917);const _0x35e51b=_0x47b0ca(_0x16f730);_0x12526a[_0x3cb63a(0x1ab,'\x66\x63\x51\x38')](_0x471910,{'\x61\x74':new Date()['\x74\x6f\x49\x53\x4f\x53\x74\x72'+_0x3cb63a(0x22a,'\x5a\x42\x4a\x72')](),'\x6d\x6f\x64\x65':_0x50964a,'\x63\x61\x6e\x64\x69\x64\x61\x74\x65\x73':_0x16f730[_0x3cb63a(0x1a5,'\x4b\x62\x44\x2a')](_0x32c924=>({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x32c924[_0x3cb63a(0x25a,'\x5a\x42\x4a\x72')+'\x74\x79'],'\x6d\x61\x74\x63\x68\x65\x64':_0x32c924[_0x3cb63a(0x262,'\x40\x45\x7a\x72')],'\x68\x61\x73\x68':_0x32c924[_0x3cb63a(0x267,'\x4b\x36\x2a\x62')]})),'\x73\x69\x67\x6e\x61\x6c\x73':_0x35e51b});if(_0x50964a===_0x12526a[_0x3cb63a(0x21a,'\x64\x68\x25\x35')]){console[_0x3cb63a(0x2b2,'\x50\x5b\x56\x50')](_0x12526a[_0x3cb63a(0x278,'\x55\x5a\x38\x4c')](_0x12526a[_0x3cb63a(0x1c4,'\x49\x4f\x6b\x51')](_0x12526a['\x6c\x50\x78\x50\x6a'],_0x16f730[_0x3cb63a(0x270,'\x34\x43\x4a\x62')])+(_0x3cb63a(0x28a,'\x50\x5b\x56\x50')+_0x3cb63a(0x182,'\x66\x63\x51\x38')+_0x3cb63a(0x2e0,'\x4d\x32\x78\x33')+'\x3a\x20'),_0x16f730[_0x3cb63a(0x2eb,'\x4f\x44\x51\x44')](_0x2af698=>_0x2af698['\x63\x61\x70\x61\x62\x69\x6c\x69'+'\x74\x79'])[_0x3cb63a(0x1a0,'\x4d\x32\x78\x33')]('\x2c\x20'))+_0x12526a[_0x3cb63a(0x250,'\x39\x64\x5a\x59')]);const _0x532a97={};return _0x532a97[_0x3cb63a(0x286,'\x6e\x41\x32\x6f')]=_0x50964a,_0x532a97[_0x3cb63a(0x21d,'\x4b\x36\x2a\x62')+'\x65\x73']=_0x16f730,_0x532a97[_0x3cb63a(0x241,'\x58\x51\x32\x63')]=[],_0x532a97;}console[_0x3cb63a(0x18c,'\x44\x59\x49\x79')](_0x12526a[_0x3cb63a(0x249,'\x36\x2a\x6e\x74')](_0x12526a['\x6c\x4a\x4a\x57\x52'](_0x12526a[_0x3cb63a(0x2bc,'\x40\x45\x7a\x72')](_0x12526a[_0x3cb63a(0x183,'\x50\x5b\x56\x50')](_0x12526a[_0x3cb63a(0x193,'\x4b\x62\x44\x2a')]+_0x16f730['\x6c\x65\x6e\x67\x74\x68'],_0x3cb63a(0x28a,'\x50\x5b\x56\x50')+_0x3cb63a(0x298,'\x30\x23\x23\x71')+_0x3cb63a(0x1c5,'\x65\x76\x59\x5b')+_0x3cb63a(0x1fe,'\x4b\x36\x2a\x62')+_0x3cb63a(0x2c0,'\x39\x64\x5a\x59')),_0x35e51b[_0x3cb63a(0x1cd,'\x72\x64\x5e\x78')]),_0x12526a[_0x3cb63a(0x226,'\x64\x5d\x37\x28')]),_0x35e51b[_0x3cb63a(0x23b,'\x38\x63\x39\x4e')]('\x2c\x20')));const _0x36be26={};return _0x36be26[_0x3cb63a(0x2b6,'\x78\x64\x35\x71')]=_0x50964a,_0x36be26['\x63\x61\x6e\x64\x69\x64\x61\x74'+'\x65\x73']=_0x16f730,_0x36be26['\x73\x69\x67\x6e\x61\x6c\x73']=_0x35e51b,_0x36be26;}const _0x1a2b43={};function _0x5653(){const _0x2c7a38=['\x57\x34\x33\x63\x53\x43\x6b\x39\x69\x43\x6f\x54','\x57\x36\x74\x64\x4d\x48\x78\x63\x49\x6d\x6f\x43','\x61\x6d\x6b\x49\x72\x71\x47','\x75\x6d\x6b\x53\x6e\x38\x6f\x59','\x79\x78\x56\x64\x52\x43\x6b\x52','\x75\x4e\x42\x64\x4b\x68\x37\x63\x54\x47','\x64\x53\x6f\x79\x57\x51\x78\x64\x4e\x6d\x6b\x45','\x76\x53\x6f\x79\x44\x61','\x41\x73\x74\x64\x4d\x43\x6b\x43\x57\x35\x34','\x57\x35\x65\x6b\x57\x35\x52\x64\x4a\x43\x6f\x4e\x73\x6d\x6b\x4d\x57\x50\x33\x63\x52\x77\x53\x67\x57\x4f\x53','\x63\x53\x6b\x79\x73\x53\x6f\x79\x66\x49\x30\x36\x57\x35\x69','\x75\x53\x6f\x49\x76\x61\x58\x68','\x6b\x73\x43\x71\x57\x34\x4a\x64\x47\x47','\x64\x38\x6f\x65\x6f\x47\x43\x52','\x69\x4a\x75\x67\x57\x35\x78\x64\x47\x71','\x57\x50\x65\x34\x57\x52\x37\x64\x4e\x6d\x6f\x59','\x57\x50\x6a\x68\x57\x50\x5a\x63\x4c\x57','\x64\x6d\x6b\x4b\x71\x62\x6c\x63\x53\x38\x6f\x68','\x6c\x61\x6d\x62','\x44\x53\x6f\x72\x57\x36\x70\x63\x4f\x4a\x69','\x41\x4d\x46\x64\x4f\x71','\x57\x4f\x52\x63\x51\x38\x6f\x75\x57\x52\x48\x69\x57\x50\x6c\x63\x4f\x47','\x57\x35\x38\x45\x57\x34\x34\x37\x65\x47\x42\x64\x51\x43\x6f\x39\x41\x38\x6b\x6b\x79\x43\x6f\x48','\x61\x48\x70\x63\x48\x4b\x62\x59','\x6a\x4c\x47\x6d\x57\x34\x39\x64\x71\x71\x4e\x63\x51\x57','\x57\x37\x52\x63\x4a\x43\x6f\x6b\x57\x51\x35\x48','\x57\x50\x7a\x42\x63\x38\x6f\x68\x57\x35\x71','\x57\x50\x5a\x64\x4d\x53\x6b\x65\x57\x4f\x6c\x64\x53\x71','\x57\x35\x79\x62\x78\x47','\x57\x4f\x7a\x63\x57\x4f\x30','\x57\x4f\x76\x57\x57\x52\x4a\x63\x4e\x43\x6b\x6c','\x44\x6d\x6b\x4e\x57\x4f\x4a\x63\x54\x64\x71','\x67\x43\x6b\x70\x57\x35\x52\x64\x51\x43\x6f\x6b\x57\x50\x6c\x63\x51\x4b\x30','\x57\x50\x70\x64\x4b\x53\x6b\x37\x57\x50\x42\x64\x51\x72\x4a\x64\x56\x61\x53','\x6c\x71\x75\x44\x6b\x43\x6b\x76','\x57\x37\x70\x63\x4e\x63\x53\x33\x64\x71','\x57\x4f\x74\x64\x4b\x53\x6b\x33\x57\x50\x4f','\x63\x38\x6f\x61\x6d\x6d\x6b\x50\x57\x52\x6d','\x57\x51\x74\x63\x4f\x43\x6f\x6d\x43\x43\x6b\x30','\x57\x52\x4f\x4f\x57\x52\x68\x64\x4e\x43\x6f\x59\x57\x50\x75\x54\x57\x35\x71','\x57\x52\x43\x4c\x57\x52\x74\x64\x48\x38\x6b\x57\x57\x34\x4b','\x57\x37\x4e\x63\x4c\x38\x6b\x65\x57\x37\x31\x57\x57\x4f\x34\x66\x57\x52\x34','\x57\x51\x64\x63\x4f\x58\x37\x64\x51\x53\x6b\x51\x57\x36\x4e\x64\x50\x57\x38','\x64\x6d\x6b\x45\x57\x4f\x78\x63\x4d\x38\x6f\x61','\x66\x43\x6b\x77\x44\x61\x5a\x64\x4d\x38\x6f\x65\x6e\x47','\x57\x52\x50\x4c\x57\x51\x48\x47\x7a\x71','\x57\x4f\x48\x44\x57\x4f\x42\x63\x4b\x71','\x6c\x38\x6f\x58\x57\x4f\x6c\x64\x52\x6d\x6b\x67\x7a\x57','\x6a\x71\x61\x42\x68\x6d\x6b\x55\x57\x50\x42\x64\x51\x43\x6b\x62','\x57\x37\x70\x63\x4b\x6d\x6b\x51\x57\x51\x4c\x38\x57\x4f\x47\x7a\x57\x52\x65','\x45\x5a\x52\x64\x56\x43\x6b\x6f\x57\x37\x57','\x57\x52\x37\x63\x54\x38\x6f\x72\x6f\x74\x69','\x7a\x6d\x6b\x52\x57\x35\x52\x64\x4a\x53\x6b\x70\x6a\x62\x33\x64\x4c\x57','\x57\x37\x56\x63\x53\x65\x56\x64\x55\x6d\x6b\x4f\x77\x74\x33\x64\x4e\x47','\x75\x38\x6f\x68\x57\x4f\x74\x63\x4f\x59\x70\x64\x56\x58\x69\x44','\x57\x36\x39\x7a\x57\x52\x70\x64\x4f\x43\x6f\x52','\x57\x34\x6c\x64\x4f\x63\x37\x63\x4a\x61','\x57\x36\x2f\x63\x4b\x6d\x6b\x51\x57\x51\x35\x67\x57\x50\x38','\x57\x52\x4b\x52\x73\x68\x38\x68\x57\x35\x42\x63\x48\x71','\x69\x74\x70\x64\x52\x6d\x6b\x65\x62\x43\x6f\x62\x57\x35\x71','\x41\x64\x6e\x39\x57\x34\x6e\x6e\x44\x68\x4c\x31\x57\x35\x61','\x57\x51\x76\x75\x57\x51\x52\x63\x51\x6d\x6b\x5a','\x57\x36\x34\x4a\x46\x77\x65\x6a','\x75\x6d\x6b\x57\x57\x52\x78\x64\x47\x48\x71','\x57\x4f\x61\x4f\x57\x50\x4a\x64\x4f\x38\x6f\x56','\x69\x53\x6f\x4b\x57\x4f\x78\x63\x50\x53\x6b\x72\x42\x53\x6b\x4b\x57\x35\x69','\x57\x4f\x68\x63\x50\x33\x2f\x64\x4d\x43\x6b\x49\x57\x37\x70\x63\x4b\x6d\x6b\x7a\x42\x43\x6b\x41\x57\x50\x6c\x64\x52\x47','\x79\x68\x37\x63\x56\x53\x6f\x79\x78\x6d\x6b\x63\x57\x4f\x5a\x64\x49\x47','\x57\x52\x39\x75\x68\x38\x6f\x42\x57\x35\x34\x44\x75\x53\x6b\x2b','\x6b\x71\x30\x77\x66\x71','\x70\x53\x6b\x6b\x46\x43\x6f\x4d\x67\x71','\x71\x38\x6f\x4d\x57\x37\x2f\x63\x55\x48\x4b\x53\x57\x37\x79\x75','\x57\x4f\x78\x63\x4b\x43\x6b\x69','\x79\x32\x64\x64\x4b\x66\x74\x63\x4b\x31\x75\x53\x70\x47','\x57\x36\x5a\x63\x54\x4b\x78\x63\x4b\x38\x6f\x71','\x57\x4f\x37\x63\x48\x53\x6f\x62\x69\x59\x6e\x49\x57\x4f\x71\x41','\x57\x35\x6d\x45\x57\x37\x33\x63\x4c\x43\x6f\x62','\x67\x43\x6b\x34\x74\x57\x78\x63\x53\x38\x6f\x71\x67\x53\x6b\x4f','\x77\x77\x33\x64\x51\x38\x6b\x63\x57\x35\x34','\x64\x48\x56\x63\x48\x30\x30\x47\x42\x38\x6f\x4c\x57\x51\x4f','\x6f\x67\x61\x4d\x57\x37\x58\x30\x73\x67\x31\x63','\x6b\x4d\x34\x4d\x57\x37\x6e\x34','\x57\x36\x69\x6a\x73\x43\x6b\x42\x57\x4f\x38\x5a\x64\x6d\x6f\x6d\x57\x37\x4c\x35\x62\x71','\x57\x37\x46\x63\x4a\x65\x5a\x64\x51\x43\x6b\x7a\x77\x5a\x64\x64\x4e\x71','\x78\x38\x6b\x45\x57\x51\x65\x33\x57\x34\x71','\x57\x34\x5a\x64\x4f\x71\x37\x63\x52\x43\x6f\x4c','\x6e\x61\x42\x63\x50\x32\x30\x45','\x57\x37\x5a\x63\x54\x4b\x6c\x64\x51\x38\x6b\x65\x74\x47','\x57\x35\x4e\x63\x47\x5a\x6d\x2f\x63\x30\x65','\x57\x4f\x57\x76\x57\x50\x56\x64\x4e\x57','\x45\x65\x42\x63\x4a\x53\x6f\x76\x46\x47','\x67\x6d\x6b\x4f\x71\x47\x46\x63\x55\x38\x6f\x71\x6c\x43\x6b\x30','\x57\x34\x6e\x41\x57\x4f\x2f\x64\x4b\x6d\x6f\x78','\x57\x34\x56\x63\x4a\x5a\x79','\x57\x51\x58\x2b\x57\x51\x4e\x64\x53\x43\x6b\x67\x57\x35\x70\x64\x55\x53\x6f\x32\x57\x51\x57\x33\x65\x31\x64\x63\x4c\x57','\x57\x52\x33\x64\x4d\x43\x6b\x74\x57\x51\x74\x64\x53\x57','\x46\x30\x69\x42\x68\x53\x6b\x54\x57\x4f\x46\x64\x53\x38\x6f\x70','\x66\x48\x37\x63\x47\x4b\x79\x2b\x77\x71','\x75\x30\x65\x32\x57\x50\x4f\x41\x6f\x63\x4e\x63\x55\x47','\x69\x4a\x76\x4a\x57\x35\x6c\x64\x4d\x49\x4e\x63\x49\x38\x6b\x6f','\x68\x6d\x6b\x2f\x71\x43\x6f\x46\x67\x57','\x57\x35\x64\x63\x50\x53\x6f\x69\x57\x51\x50\x72\x57\x51\x5a\x63\x4b\x71','\x74\x6d\x6b\x77\x57\x50\x4a\x64\x4f\x61','\x57\x37\x57\x62\x7a\x4e\x4b\x62','\x7a\x4e\x56\x64\x4f\x6d\x6b\x47','\x74\x53\x6f\x6a\x79\x61\x5a\x64\x4d\x38\x6f\x6a','\x79\x32\x64\x64\x4c\x77\x4a\x63\x51\x32\x6d\x51\x64\x57','\x76\x43\x6f\x77\x43\x57','\x79\x38\x6b\x4e\x57\x51\x65\x36\x57\x37\x47','\x57\x37\x74\x63\x55\x4b\x56\x64\x51\x43\x6b\x64\x75\x47','\x6a\x43\x6b\x32\x61\x68\x38\x35\x57\x51\x72\x71\x65\x43\x6b\x61\x78\x43\x6f\x35\x57\x35\x2f\x64\x4b\x47','\x35\x42\x77\x79\x36\x41\x4d\x4e\x36\x6b\x36\x74','\x57\x34\x4e\x63\x48\x64\x57\x54\x6f\x30\x75\x67\x57\x51\x6d','\x7a\x67\x46\x64\x56\x71\x4e\x64\x4b\x71\x79','\x79\x38\x6b\x4d\x69\x6d\x6f\x76\x75\x61','\x57\x35\x42\x63\x4f\x38\x6b\x45','\x57\x34\x5a\x63\x50\x38\x6b\x6d\x57\x51\x6d\x66\x45\x6d\x6f\x39\x46\x47','\x65\x53\x6f\x32\x6d\x43\x6b\x41\x57\x4f\x30','\x57\x37\x4e\x64\x4d\x43\x6f\x55\x73\x5a\x53','\x43\x53\x6f\x4d\x78\x74\x48\x4f','\x43\x57\x7a\x45\x57\x50\x61\x73\x61\x62\x68\x63\x48\x63\x53\x71\x57\x34\x30\x4a\x57\x34\x53','\x57\x35\x4e\x64\x48\x47\x64\x63\x47\x38\x6f\x30','\x57\x35\x46\x64\x4d\x68\x4a\x63\x4a\x43\x6f\x68\x57\x4f\x42\x63\x4b\x32\x6d','\x57\x50\x5a\x63\x4e\x38\x6f\x42\x70\x4e\x62\x4c','\x57\x36\x33\x63\x56\x4e\x64\x64\x54\x53\x6b\x32','\x57\x37\x6d\x2f\x57\x51\x78\x64\x4d\x38\x6f\x58\x57\x35\x57\x39\x57\x50\x47','\x57\x52\x4f\x2f\x57\x52\x37\x63\x4a\x53\x6f\x4a','\x6a\x57\x6d\x43\x66\x6d\x6b\x55\x57\x4f\x42\x64\x53\x43\x6f\x70','\x76\x31\x53\x79\x57\x50\x4b\x65\x6c\x4a\x70\x64\x4c\x61','\x57\x35\x37\x63\x56\x78\x78\x63\x50\x6d\x6f\x36','\x7a\x31\x42\x64\x56\x6d\x6f\x4a\x77\x53\x6b\x65\x57\x4f\x4a\x64\x49\x57','\x57\x34\x64\x64\x4c\x38\x6b\x64\x44\x61','\x73\x38\x6b\x74\x57\x50\x37\x64\x52\x73\x4b','\x73\x38\x6b\x6c\x57\x4f\x78\x64\x50\x59\x6c\x64\x51\x62\x34\x6a','\x57\x35\x47\x62\x72\x66\x38','\x70\x53\x6f\x6e\x62\x57','\x6c\x43\x6b\x63\x57\x52\x78\x63\x4b\x38\x6f\x69','\x6e\x59\x46\x64\x52\x31\x6c\x63\x47\x31\x34\x2f\x65\x71','\x75\x6d\x6b\x72\x6f\x38\x6f\x35\x45\x61','\x57\x36\x74\x64\x52\x4c\x4a\x63\x4f\x38\x6f\x31\x57\x51\x47','\x65\x6d\x6b\x63\x78\x57','\x6c\x53\x6b\x47\x57\x50\x42\x63\x48\x6d\x6f\x32','\x76\x6d\x6f\x54\x76\x57\x4a\x64\x50\x61','\x57\x4f\x79\x62\x57\x50\x6c\x64\x55\x38\x6f\x73\x57\x37\x65\x73\x57\x52\x57','\x63\x48\x2f\x63\x54\x6d\x6f\x58\x73\x61','\x6f\x68\x69\x2f\x57\x37\x58\x4b','\x69\x47\x79\x6d\x57\x35\x70\x64\x56\x47','\x6b\x78\x43\x38\x57\x37\x47','\x57\x35\x4a\x63\x4a\x49\x69\x33\x62\x76\x75\x6e','\x57\x52\x70\x63\x4d\x53\x6f\x44\x67\x47\x61','\x35\x42\x77\x6c\x35\x79\x59\x7a\x35\x42\x51\x56','\x41\x67\x42\x64\x4f\x43\x6b\x4b\x57\x35\x56\x63\x4d\x30\x79','\x64\x38\x6b\x41\x57\x34\x78\x64\x50\x43\x6f\x6a\x57\x4f\x2f\x63\x52\x30\x53','\x76\x65\x52\x64\x55\x4c\x52\x63\x52\x61','\x57\x37\x76\x2f\x57\x4f\x7a\x49\x76\x6d\x6b\x62\x75\x43\x6b\x66','\x6d\x75\x38\x44\x57\x37\x66\x77','\x57\x34\x52\x63\x53\x6d\x6b\x6c\x57\x50\x6d\x63','\x6c\x4a\x57\x57\x57\x34\x38','\x43\x38\x6b\x45\x57\x4f\x6c\x63\x4d\x47\x39\x4d\x6e\x71\x47','\x57\x35\x66\x51\x57\x51\x35\x56\x41\x61','\x74\x6d\x6f\x59\x57\x35\x52\x63\x4d\x58\x6d','\x57\x34\x46\x63\x4b\x6d\x6f\x4d\x57\x34\x42\x63\x51\x75\x74\x63\x47\x58\x38\x44\x57\x37\x78\x64\x4e\x73\x56\x64\x56\x61','\x57\x52\x4c\x71\x64\x38\x6f\x42\x57\x36\x71\x6b\x62\x38\x6f\x33','\x73\x6d\x6b\x4d\x57\x50\x61\x33\x57\x34\x4e\x63\x54\x63\x69','\x57\x52\x58\x78\x67\x47','\x62\x58\x79\x2f\x57\x34\x64\x64\x55\x47','\x57\x50\x66\x67\x57\x50\x52\x63\x51\x6d\x6b\x75','\x57\x50\x44\x43\x57\x50\x5a\x63\x4c\x38\x6b\x37\x67\x43\x6b\x68','\x6e\x38\x6f\x37\x57\x52\x2f\x64\x56\x38\x6b\x61\x7a\x53\x6b\x4d\x57\x35\x4b','\x7a\x74\x4a\x64\x52\x38\x6b\x48\x57\x35\x43','\x76\x43\x6f\x72\x45\x48\x6a\x78','\x45\x78\x4a\x64\x47\x43\x6b\x62\x57\x37\x57','\x57\x50\x56\x63\x49\x38\x6f\x42\x6f\x61','\x57\x36\x5a\x63\x4d\x6d\x6b\x2b\x57\x52\x6e\x63\x57\x50\x43\x65','\x6d\x76\x69\x6b\x57\x34\x4f','\x57\x51\x42\x63\x51\x38\x6f\x7a\x74\x6d\x6b\x78','\x71\x43\x6b\x64\x69\x38\x6f\x5a\x45\x61','\x77\x6d\x6f\x77\x41\x48\x56\x64\x53\x6d\x6f\x46\x6b\x38\x6f\x66','\x69\x63\x6c\x63\x4d\x4b\x4f\x38','\x57\x34\x78\x63\x4c\x6d\x6f\x42\x70\x5a\x4b','\x65\x43\x6b\x6e\x73\x38\x6f\x7a','\x68\x6d\x6b\x63\x78\x53\x6f\x45\x63\x49\x4b\x32','\x76\x6d\x6b\x50\x57\x50\x65','\x74\x61\x68\x64\x4a\x57','\x57\x51\x65\x50\x57\x52\x70\x64\x4e\x6d\x6f\x4c\x57\x34\x34\x33\x57\x4f\x53','\x57\x35\x4f\x63\x61\x66\x57\x4e\x57\x50\x39\x55\x6b\x57','\x57\x37\x70\x63\x4c\x6d\x6b\x33\x57\x52\x50\x78\x57\x50\x6d','\x57\x37\x31\x49\x57\x52\x70\x64\x4f\x53\x6f\x7a','\x67\x53\x6b\x6e\x73\x6d\x6f\x71\x67\x49\x6d\x2f\x57\x35\x30','\x6a\x57\x6d\x63\x65\x43\x6b\x4c\x57\x4f\x56\x64\x56\x6d\x6f\x73','\x57\x35\x5a\x64\x49\x53\x6b\x74\x57\x50\x2f\x64\x54\x76\x2f\x64\x50\x59\x53','\x6f\x53\x6b\x69\x46\x53\x6f\x68\x69\x61','\x57\x50\x4e\x64\x4a\x53\x6b\x39\x57\x50\x56\x64\x51\x62\x4e\x64\x4b\x72\x4b','\x57\x52\x2f\x63\x4f\x53\x6f\x73\x72\x43\x6b\x7a','\x57\x34\x4e\x64\x47\x6d\x6b\x70\x57\x4f\x64\x64\x4a\x66\x78\x64\x4f\x5a\x38','\x57\x36\x43\x50\x73\x61','\x57\x35\x70\x63\x4f\x38\x6b\x7a\x57\x51\x71\x2b\x41\x43\x6f\x34','\x57\x4f\x37\x63\x4b\x6d\x6f\x6f\x70\x59\x76\x59\x57\x52\x69','\x57\x34\x2f\x63\x4b\x5a\x53\x4f\x65\x65\x75\x37\x57\x52\x6d','\x57\x36\x37\x64\x54\x4a\x6c\x63\x51\x38\x6f\x65','\x57\x52\x2f\x63\x53\x57\x70\x64\x53\x6d\x6b\x31\x57\x4f\x52\x63\x51\x78\x74\x64\x4f\x38\x6b\x66\x6d\x61','\x6c\x61\x6d\x62\x67\x61','\x57\x35\x78\x63\x4b\x32\x5a\x64\x4d\x43\x6b\x42','\x66\x31\x61\x45\x57\x36\x4c\x32','\x68\x43\x6b\x2f\x72\x72\x6c\x63\x53\x38\x6f\x5a\x66\x38\x6b\x48','\x72\x38\x6b\x58\x66\x6d\x6f\x44\x7a\x57','\x57\x37\x64\x64\x4c\x43\x6b\x4a\x57\x52\x78\x64\x53\x47','\x75\x53\x6f\x69\x79\x61\x4a\x64\x4a\x61','\x57\x35\x70\x63\x51\x43\x6b\x6a\x57\x51\x34\x4b\x78\x38\x6f\x4c\x7a\x61','\x36\x41\x55\x56\x36\x6b\x36\x58\x36\x79\x6f\x35\x36\x6c\x2b\x4a','\x6e\x43\x6f\x71\x64\x43\x6b\x54\x57\x52\x2f\x63\x4a\x57','\x57\x35\x33\x64\x4d\x53\x6f\x65\x76\x47','\x6e\x5a\x53\x32\x57\x35\x74\x64\x4e\x49\x5a\x63\x56\x6d\x6b\x70','\x57\x35\x37\x63\x50\x68\x2f\x63\x50\x6d\x6f\x36\x77\x6d\x6b\x4c','\x79\x6d\x6f\x4f\x46\x73\x72\x36\x57\x37\x69\x78\x63\x47','\x72\x76\x47\x31\x57\x50\x65\x61','\x57\x50\x4a\x63\x4d\x38\x6f\x43\x43\x62\x6a\x68\x57\x50\x47\x56','\x57\x36\x66\x38\x57\x52\x50\x4a\x76\x71','\x70\x49\x33\x63\x4d\x6d\x6f\x33\x73\x61','\x57\x51\x71\x38\x78\x78\x47','\x57\x36\x5a\x63\x4e\x53\x6b\x33\x57\x52\x65','\x67\x43\x6f\x4b\x66\x4b\x79','\x57\x35\x56\x64\x55\x59\x4b','\x57\x34\x70\x64\x50\x49\x68\x64\x4d\x71','\x57\x52\x4c\x75\x65\x53\x6f\x69\x57\x34\x38\x72','\x72\x38\x6b\x41\x57\x36\x37\x63\x51\x71','\x57\x35\x61\x6f\x57\x34\x37\x63\x55\x53\x6f\x4f','\x57\x37\x66\x33\x57\x4f\x74\x64\x4d\x38\x6f\x7a\x69\x71\x7a\x50','\x57\x37\x46\x63\x4a\x38\x6b\x33\x67\x38\x6f\x56','\x57\x36\x79\x50\x71\x33\x57\x35\x57\x35\x74\x63\x56\x47\x34','\x57\x34\x2f\x63\x55\x38\x6b\x4e\x67\x43\x6f\x52\x43\x53\x6b\x32\x57\x34\x38','\x6c\x38\x6b\x77\x43\x38\x6f\x65\x6d\x47','\x77\x6d\x6b\x37\x6e\x53\x6f\x30','\x61\x47\x64\x63\x4b\x30\x65\x38\x77\x6d\x6f\x41\x57\x51\x30','\x67\x38\x6b\x38\x57\x50\x34\x2b\x57\x34\x42\x63\x55\x74\x30\x6a','\x57\x4f\x76\x6b\x57\x4f\x35\x52\x71\x61','\x61\x31\x43\x31\x57\x4f\x79\x73\x6b\x73\x4a\x64\x55\x57','\x7a\x68\x56\x64\x52\x4c\x6c\x63\x49\x4c\x43\x33\x67\x57','\x57\x34\x5a\x63\x4f\x4e\x4b','\x57\x52\x56\x63\x49\x53\x6f\x55\x71\x38\x6b\x4d\x6f\x57','\x41\x38\x6b\x79\x57\x50\x4a\x64\x4e\x47\x4b','\x57\x35\x42\x63\x4a\x78\x74\x64\x54\x38\x6b\x43','\x57\x34\x52\x63\x4f\x6d\x6f\x6e\x57\x51\x54\x67\x57\x50\x71','\x57\x37\x46\x63\x56\x6d\x6b\x6c\x57\x52\x58\x4f','\x70\x77\x30\x48\x57\x37\x75','\x6a\x43\x6b\x6c\x76\x72\x64\x63\x54\x57','\x6d\x38\x6b\x61\x43\x38\x6f\x52\x6c\x71','\x57\x35\x30\x37\x79\x75\x4b\x2f','\x57\x34\x64\x63\x53\x67\x71','\x57\x34\x30\x66\x73\x66\x30','\x57\x35\x68\x63\x56\x43\x6b\x33\x74\x43\x6f\x54\x76\x43\x6b\x58\x57\x34\x43','\x57\x35\x78\x64\x56\x73\x4e\x63\x4c\x38\x6f\x6d\x57\x51\x74\x63\x47\x53\x6b\x72','\x57\x37\x38\x51\x57\x37\x64\x63\x52\x6d\x6f\x79\x57\x50\x6c\x63\x54\x43\x6b\x38','\x36\x79\x63\x31\x36\x6c\x32\x61\x35\x6c\x49\x6b','\x57\x34\x74\x63\x47\x53\x6f\x71\x57\x50\x72\x59\x67\x57\x65\x48','\x57\x37\x56\x63\x47\x38\x6b\x30\x68\x43\x6f\x77','\x57\x51\x62\x66\x67\x53\x6b\x78','\x57\x37\x76\x35\x57\x52\x58\x46\x43\x61','\x6d\x43\x6f\x67\x63\x73\x61\x69\x78\x38\x6b\x58\x57\x50\x4b','\x42\x38\x6b\x69\x57\x50\x6c\x63\x55\x48\x4b','\x44\x77\x61\x49\x57\x50\x65\x48','\x57\x4f\x46\x63\x4e\x38\x6f\x42\x6a\x62\x35\x2f\x57\x52\x6d\x67','\x57\x36\x34\x50\x57\x36\x33\x63\x51\x61','\x57\x34\x70\x63\x49\x53\x6f\x42\x57\x4f\x6e\x50\x6d\x75\x43','\x57\x4f\x6c\x64\x48\x43\x6b\x57\x57\x50\x42\x64\x53\x62\x4a\x64\x50\x58\x6d','\x57\x35\x78\x63\x4f\x53\x6b\x51\x62\x6d\x6f\x38\x7a\x38\x6b\x4d\x57\x34\x30','\x57\x34\x33\x63\x50\x38\x6b\x6d\x57\x52\x75\x31\x7a\x61','\x57\x35\x2f\x63\x50\x4c\x6c\x63\x4b\x53\x6f\x33','\x6a\x53\x6b\x2f\x43\x43\x6f\x32\x6e\x47\x53\x46','\x57\x34\x33\x64\x4e\x53\x6f\x72\x77\x71\x61\x4a\x57\x50\x68\x64\x4b\x61','\x75\x4e\x61\x6e\x57\x50\x34\x32','\x57\x34\x6e\x68\x57\x51\x52\x64\x48\x38\x6f\x44\x65\x58\x65','\x69\x6d\x6b\x59\x57\x50\x4b','\x64\x4d\x53\x68\x57\x36\x6e\x66','\x75\x6d\x6b\x79\x57\x51\x70\x63\x4d\x73\x6d','\x43\x6d\x6f\x77\x7a\x59\x76\x48','\x74\x31\x53\x5a','\x57\x51\x56\x64\x4f\x38\x6b\x58\x57\x50\x4e\x64\x51\x59\x37\x64\x4d\x47\x6d','\x57\x35\x56\x63\x4d\x65\x52\x63\x54\x53\x6f\x34','\x43\x72\x46\x64\x4c\x53\x6b\x75','\x57\x4f\x42\x63\x4b\x43\x6f\x6d\x6e\x71','\x57\x51\x44\x4e\x6e\x38\x6f\x55\x57\x34\x34','\x57\x34\x4f\x70\x46\x4b\x43\x4c\x57\x50\x6e\x59\x6c\x71','\x79\x4d\x68\x64\x52\x31\x70\x63\x4a\x76\x79\x51','\x45\x43\x6f\x78\x64\x73\x6d','\x57\x34\x31\x2f\x57\x50\x58\x32\x44\x47','\x57\x37\x4a\x63\x55\x6d\x6b\x30\x57\x51\x79\x41','\x57\x35\x69\x6d\x77\x78\x65\x64','\x57\x37\x46\x64\x56\x30\x74\x64\x52\x43\x6b\x64\x65\x33\x69','\x57\x36\x54\x2f\x57\x52\x7a\x55\x73\x6d\x6b\x72','\x63\x48\x37\x63\x48\x61\x71','\x57\x4f\x4e\x63\x51\x6d\x6f\x57\x66\x48\x71','\x77\x75\x37\x64\x4e\x4e\x46\x63\x4f\x78\x72\x4a\x67\x61','\x46\x6d\x6b\x77\x57\x52\x37\x63\x47\x47\x4b','\x57\x50\x47\x63\x57\x35\x56\x63\x48\x6d\x6b\x79\x72\x31\x35\x57\x57\x35\x4b\x6a\x57\x51\x47\x6d\x57\x52\x57','\x6b\x38\x6b\x63\x57\x35\x52\x64\x53\x6d\x6f\x54','\x57\x37\x30\x6b\x77\x4c\x53\x34','\x57\x35\x37\x64\x54\x5a\x38','\x57\x36\x38\x6d\x78\x75\x53\x73','\x57\x35\x64\x63\x4d\x62\x53\x78\x65\x47','\x57\x35\x46\x63\x50\x43\x6b\x63\x57\x50\x34\x65','\x57\x4f\x6c\x64\x48\x43\x6b\x39\x57\x4f\x6c\x64\x52\x57\x37\x64\x4e\x72\x57','\x77\x53\x6b\x70\x57\x37\x56\x64\x55\x71','\x69\x38\x6b\x67\x57\x34\x56\x64\x52\x38\x6f\x54','\x43\x76\x4a\x64\x48\x4c\x42\x63\x4c\x47','\x68\x53\x6b\x6a\x74\x6d\x6f\x38\x66\x59\x34\x32','\x62\x43\x6f\x58\x57\x4f\x4e\x64\x4a\x6d\x6b\x34','\x57\x50\x54\x63\x57\x50\x44\x53','\x57\x37\x35\x2b\x57\x4f\x4a\x64\x56\x38\x6f\x51','\x57\x34\x33\x63\x55\x53\x6f\x7a\x57\x51\x4f','\x57\x35\x6c\x63\x50\x38\x6b\x64\x57\x51\x61\x49\x7a\x61','\x57\x34\x70\x64\x4e\x53\x6f\x7a','\x57\x36\x7a\x34\x57\x4f\x58\x37\x74\x38\x6b\x67\x71\x43\x6f\x6a','\x69\x47\x71\x54\x68\x6d\x6b\x4f\x57\x4f\x78\x63\x56\x53\x6f\x72','\x75\x47\x2f\x64\x4d\x38\x6b\x43\x57\x35\x4a\x63\x4c\x38\x6b\x4a\x42\x57','\x6c\x43\x6f\x61\x57\x35\x4e\x64\x48\x30\x34\x37\x7a\x57\x37\x63\x4e\x43\x6f\x57\x41\x38\x6f\x32\x57\x4f\x61','\x57\x35\x48\x72\x57\x4f\x52\x64\x4b\x43\x6f\x50\x67\x57\x72\x4c','\x42\x43\x6b\x38\x6b\x6d\x6f\x68\x46\x61','\x61\x48\x74\x63\x48\x57','\x43\x43\x6f\x2f\x77\x64\x48\x35\x57\x36\x71\x32\x6d\x61','\x69\x74\x65\x6c\x68\x53\x6b\x4b','\x77\x53\x6f\x6b\x79\x71','\x61\x38\x6b\x50\x74\x72\x6c\x63\x53\x38\x6b\x44\x64\x43\x6f\x4b','\x46\x4d\x4a\x64\x53\x32\x6c\x63\x54\x47','\x57\x4f\x58\x4c\x6f\x43\x6f\x77\x57\x37\x34','\x68\x6d\x6b\x2f\x57\x52\x4e\x64\x56\x68\x6e\x4f\x57\x34\x30\x58\x57\x4f\x4c\x50\x64\x6d\x6b\x4b','\x63\x38\x6f\x43\x6a\x38\x6b\x43\x57\x4f\x6d','\x57\x50\x56\x63\x49\x38\x6f\x6b\x70\x64\x35\x49\x57\x52\x38','\x57\x35\x56\x63\x55\x38\x6b\x33\x68\x43\x6f\x36\x77\x57','\x78\x43\x6f\x49\x57\x36\x2f\x63\x55\x5a\x71\x53\x57\x37\x65\x6c','\x66\x53\x6f\x36\x6d\x48\x69\x58','\x57\x52\x56\x64\x4f\x38\x6b\x6d\x57\x51\x46\x64\x4d\x57','\x57\x36\x34\x48\x76\x32\x30\x76\x57\x35\x6d','\x57\x37\x6c\x63\x4b\x6d\x6b\x50','\x65\x38\x6b\x61\x57\x34\x37\x64\x52\x43\x6f\x71','\x76\x38\x6b\x77\x57\x37\x4a\x64\x56\x53\x6b\x2b\x68\x59\x61','\x67\x53\x6b\x64\x76\x43\x6f\x62\x66\x63\x38\x4e\x57\x35\x65','\x57\x35\x37\x63\x52\x38\x6b\x72\x67\x43\x6f\x39','\x73\x38\x6f\x79\x44\x48\x37\x64\x49\x47','\x57\x36\x5a\x64\x54\x43\x6f\x73\x78\x73\x38','\x63\x38\x6b\x70\x79\x43\x6f\x35\x6c\x47','\x6e\x6d\x6f\x6d\x64\x49\x61\x75\x77\x6d\x6f\x50\x57\x50\x34','\x57\x51\x66\x64\x66\x43\x6f\x63','\x6b\x43\x6f\x4b\x6d\x53\x6b\x71\x57\x50\x30','\x57\x35\x30\x62\x71\x31\x43\x2b\x57\x50\x35\x39\x70\x47','\x65\x62\x4a\x63\x47\x4b\x61\x39\x73\x57','\x78\x38\x6b\x67\x57\x52\x6d\x69\x57\x34\x4b','\x77\x76\x78\x64\x51\x4b\x33\x63\x53\x71','\x70\x53\x6f\x78\x67\x78\x6d\x64\x73\x38\x6f\x59\x57\x50\x4b','\x75\x76\x47\x72\x57\x52\x69\x47','\x76\x43\x6b\x51\x57\x4f\x65\x38\x57\x35\x52\x64\x55\x61','\x76\x43\x6f\x77\x43\x65\x30','\x57\x52\x53\x62\x57\x4f\x6c\x64\x49\x6d\x6f\x43','\x57\x36\x4b\x6a\x7a\x75\x61\x70','\x57\x52\x42\x63\x4e\x6d\x6f\x4c','\x78\x6d\x6b\x4d\x57\x4f\x6d\x58\x57\x35\x33\x63\x55\x4e\x58\x61','\x61\x32\x34\x39\x57\x36\x76\x33','\x57\x50\x4a\x64\x4c\x53\x6b\x30\x57\x4f\x78\x64\x54\x71','\x57\x34\x42\x63\x48\x64\x75','\x57\x37\x6d\x48\x57\x37\x43','\x57\x34\x2f\x64\x52\x78\x70\x63\x4b\x38\x6f\x47','\x66\x53\x6b\x6c\x57\x37\x4e\x64\x53\x43\x6f\x67\x57\x50\x47','\x57\x35\x74\x63\x4f\x38\x6f\x69\x57\x51\x7a\x42\x57\x52\x64\x63\x4a\x49\x69','\x57\x37\x6c\x63\x4f\x6d\x6f\x77\x57\x50\x39\x30','\x69\x53\x6f\x74\x62\x64\x69\x75\x74\x57','\x74\x43\x6f\x69\x7a\x59\x64\x64\x4f\x61','\x68\x49\x78\x63\x4e\x53\x6f\x78\x74\x47','\x57\x35\x33\x64\x4b\x38\x6f\x69\x77\x57\x43','\x57\x34\x78\x63\x47\x53\x6f\x7a','\x73\x38\x6f\x6d\x44\x57\x75','\x57\x35\x58\x48\x57\x4f\x52\x64\x4f\x53\x6f\x68','\x63\x43\x6b\x49\x71\x48\x64\x63\x53\x38\x6f\x68\x63\x53\x6b\x7a','\x57\x36\x64\x63\x4f\x43\x6b\x30\x6f\x38\x6f\x37','\x42\x32\x4e\x64\x51\x31\x64\x63\x51\x47','\x57\x35\x4e\x63\x47\x43\x6f\x45\x57\x50\x72\x59\x66\x47','\x6d\x73\x53\x51\x57\x36\x33\x64\x4b\x71'];_0x5653=function(){return _0x2c7a38;};return _0x5653();}_0x1a2b43[_0xc56810(0x2cf,'\x5a\x42\x4a\x72')]=_0x5675fd,_0x1a2b43[_0xc56810(0x272,'\x38\x63\x39\x4e')+_0xc56810(0x242,'\x21\x62\x4e\x34')]=_0x300056,_0x1a2b43['\x73\x63\x61\x6e\x43\x6f\x72\x70'+'\x75\x73']=_0xbf1681,_0x1a2b43[_0xc56810(0x199,'\x4d\x32\x78\x33')+_0xc56810(0x1f1,'\x64\x68\x25\x35')]=_0x47b0ca,_0x1a2b43['\x74\x72\x79\x53\x6e\x69\x66\x66']=_0x51e4a2,_0x1a2b43[_0xc56810(0x212,'\x40\x45\x7a\x72')+'\x65']=_0x1fc4ed,_0x1a2b43['\x77\x72\x69\x74\x65\x53\x74\x61'+'\x74\x65']=_0x58c20b,_0x1a2b43[_0xc56810(0x22d,'\x65\x76\x59\x5b')+_0xc56810(0x2aa,'\x5a\x42\x4a\x72')]=_0x2c3bff,module[_0xc56810(0x2ed,'\x36\x4d\x69\x46')]=_0x1a2b43;
1
+ 'use strict';
2
+
3
+ // Conversation Capability Sniffer
4
+ // --------------------------------
5
+ // evolver autonomously surfaces evolution opportunities from CODE (errsig /
6
+ // recurring_error), from MISSING features (capability_gap), and at idle time
7
+ // from external knowledge (explore.js: TODO scan, arxiv). The one blind spot:
8
+ // a human-verified, deterministic capability demonstrated *in the conversation*
9
+ // (e.g. "I just published a Feishu doc via lark-cli and validated it") never
10
+ // surfaces, because signal extraction maps free text onto the closed
11
+ // OPPORTUNITY_SIGNALS vocabulary and there is no extractor that reads the
12
+ // transcript for "the user just proved a reusable capability worth keeping".
13
+ //
14
+ // This module is that extractor. It mirrors explore.js: env gating + cooldown,
15
+ // a scan that produces results, dedup state on disk, and convertToSignals().
16
+ // Like the rest of evolver it does NOT call an LLM directly (evolver builds
17
+ // prompts and lets the bridged executor — the Hand — do the reasoning). The
18
+ // scan here is a lightweight RULE-BASED pre-filter; when it fires it injects a
19
+ // candidate signal so the selector/distiller can pick the work up on the
20
+ // executor side.
21
+ //
22
+ // Default posture is SHADOW (observe-only): it logs what it *would* surface
23
+ // without injecting, so the behaviour can be validated before it influences
24
+ // real cycles. Set EVOLVER_CONV_SNIFF_ENABLED=enforce to inject for real.
25
+
26
+ const fs = require('fs');
27
+ const path = require('path');
28
+ const crypto = require('crypto');
29
+
30
+ const { getEvolutionDir } = require('./paths');
31
+
32
+ // off | shadow | enforce. Default 'shadow' so a fresh install observes before
33
+ // it acts. 'off' disables entirely; 'enforce' injects candidate signals.
34
+ const MODE = (() => {
35
+ const raw = String(process.env.EVOLVER_CONV_SNIFF_ENABLED || 'shadow').toLowerCase().trim();
36
+ if (raw === 'off' || raw === 'false' || raw === '0') return 'off';
37
+ if (raw === 'enforce' || raw === 'on' || raw === 'true' || raw === '1') return 'enforce';
38
+ return 'shadow';
39
+ })();
40
+
41
+ const COOLDOWN_MS = parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS || '1800000', 10) || 1800000;
42
+ const MAX_CANDIDATES = 5;
43
+ const SNIPPET_MAX = 240;
44
+
45
+ // Signals injected (enforce mode). The umbrella signal lets a dedicated gene
46
+ // (or the distiller) match "there is a conversation-surfaced capability".
47
+ const UMBRELLA_SIGNAL = 'conv_capability_candidate';
48
+
49
+ // Evidence that a reusable capability was just *successfully exercised* in the
50
+ // transcript. We require (a) a success/completion marker AND (b) a reusable
51
+ // action verb, so idle chatter or failed attempts do not trigger.
52
+ const SUCCESS_MARKERS = [
53
+ 'success', 'succeeded', 'verified', 'validated', 'works', 'working',
54
+ 'published', 'created', 'completed', 'passed', 'done',
55
+ '成功', '已发布', '已验证', '验证通过', '搞定', '跑通', '通过了',
56
+ ];
57
+
58
+ // Reusable, deterministic actions worth keeping as a capability. Each entry is
59
+ // [regex, capability-slug]. Kept deliberately conservative.
60
+ const CAPABILITY_PATTERNS = [
61
+ [/\blark-cli\b|飞书文档|feishu doc|lark doc/i, 'publish-feishu-doc'],
62
+ [/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i, 'github-automation'],
63
+ [/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i, 'api-call'],
64
+ [/\bdocker (build|run|compose)\b/i, 'docker-workflow'],
65
+ [/\bkubectl\b|helm (install|upgrade)\b/i, 'k8s-operation'],
66
+ [/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i, 'db-operation'],
67
+ [/\bnpm publish\b|\bnpx skills\b/i, 'package-publish'],
68
+ ];
69
+
70
+ function _statePath() { return path.join(getEvolutionDir(), 'conv_sniff_state.json'); }
71
+ function _logPath() { return path.join(getEvolutionDir(), 'conv_sniff_log.jsonl'); }
72
+
73
+ function readState() {
74
+ try { return JSON.parse(fs.readFileSync(_statePath(), 'utf8')); }
75
+ catch (_) { return { seen: {}, last_sniff_ts: 0 }; }
76
+ }
77
+
78
+ function writeState(state) {
79
+ try {
80
+ const dir = getEvolutionDir();
81
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
82
+ const tmp = _statePath() + '.tmp';
83
+ fs.writeFileSync(tmp, JSON.stringify(state, null, 2) + '\n', 'utf8');
84
+ fs.renameSync(tmp, _statePath());
85
+ } catch (_) {}
86
+ }
87
+
88
+ function _appendLog(obj) {
89
+ try {
90
+ const dir = getEvolutionDir();
91
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
92
+ fs.appendFileSync(_logPath(), JSON.stringify(obj) + '\n', 'utf8');
93
+ } catch (_) {}
94
+ }
95
+
96
+ function _shortHash(s) {
97
+ return crypto.createHash('sha256').update(String(s || '')).digest('hex').slice(0, 16);
98
+ }
99
+
100
+ function getMode() { return MODE; }
101
+
102
+ function shouldSniff(state) {
103
+ if (MODE === 'off') return false;
104
+ const st = state || readState();
105
+ const last = st.last_sniff_ts || 0;
106
+ // Date.now is fine here — this runs in the live process, not the workflow VM.
107
+ if (Date.now() - last < COOLDOWN_MS) return false;
108
+ return true;
109
+ }
110
+
111
+ // Proximity window (chars): a success marker must appear within this distance
112
+ // of the capability match for the pair to count. A global "success anywhere +
113
+ // capability anywhere" co-occurrence is NOT enough — that lets an unrelated
114
+ // "tests passed" pair with a *failed* lark-cli/kubectl mention and surface a
115
+ // false candidate (Bugbot #175, High). Require LOCAL co-occurrence instead.
116
+ const PROXIMITY_WINDOW = 200;
117
+
118
+ // Negators that flip a success marker ("not verified", "未发布", "failed to
119
+ // publish"). If one appears within NEGATION_LOOKBACK chars before the marker,
120
+ // the marker does not count as success (Bugbot #175 round 2, Medium).
121
+ const NEGATORS = ['not ', "n't ", 'no ', 'never ', 'fail', 'unable', "wasn't", "isn't", "didn't",
122
+ '没', '未', '不', '失败', '无法'];
123
+ const NEGATION_LOOKBACK = 20;
124
+
125
+ function _markerIsNegated(lowerText, markerStart) {
126
+ const from = Math.max(0, markerStart - NEGATION_LOOKBACK);
127
+ const before = lowerText.slice(from, markerStart);
128
+ return NEGATORS.some((n) => before.includes(n));
129
+ }
130
+
131
+ function _hasSuccessNear(text, lowerText, matchIndex, matchLen) {
132
+ const from = Math.max(0, matchIndex - PROXIMITY_WINDOW);
133
+ const to = Math.min(lowerText.length, matchIndex + matchLen + PROXIMITY_WINDOW);
134
+ for (const m of SUCCESS_MARKERS) {
135
+ const needle = m.toLowerCase();
136
+ // walk every occurrence of this marker inside the window; accept only a
137
+ // non-negated one.
138
+ let rel = windowIndexOf(lowerText, needle, from, to);
139
+ while (rel !== -1) {
140
+ if (!_markerIsNegated(lowerText, rel)) return true;
141
+ rel = windowIndexOf(lowerText, needle, rel + 1, to);
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+
147
+ // indexOf for `needle` constrained to [from, to); returns absolute index in
148
+ // lowerText or -1. Keeps negation checks anchored to the full text so the
149
+ // lookback can see chars just before the window edge.
150
+ function windowIndexOf(lowerText, needle, from, to) {
151
+ const idx = lowerText.indexOf(needle, from);
152
+ if (idx === -1 || idx >= to) return -1;
153
+ return idx;
154
+ }
155
+
156
+ // Scan ONE segment for candidates (success marker within PROXIMITY_WINDOW of a
157
+ // capability match, non-negated). Returns [{capability, matched, snippet, hash}].
158
+ function _scanSegment(text, sink, seenSlugs) {
159
+ if (!text || !text.trim()) return;
160
+ const lower = text.toLowerCase();
161
+ for (const [re, slug] of CAPABILITY_PATTERNS) {
162
+ if (seenSlugs.has(slug)) continue;
163
+ const gre = new RegExp(re.source, re.flags.includes('g') ? re.flags : re.flags + 'g');
164
+ let m;
165
+ let accepted = null;
166
+ while ((m = gre.exec(text)) !== null) {
167
+ if (m[0].length === 0) { gre.lastIndex++; continue; } // guard zero-width
168
+ if (_hasSuccessNear(text, lower, m.index, m[0].length)) { accepted = m; break; }
169
+ }
170
+ if (!accepted) continue;
171
+ seenSlugs.add(slug);
172
+ const idx = Math.max(0, accepted.index - 80);
173
+ const snippet = text.slice(idx, idx + SNIPPET_MAX).replace(/\s+/g, ' ').trim();
174
+ sink.push({
175
+ capability: slug,
176
+ matched: accepted[0].slice(0, 60),
177
+ snippet,
178
+ hash: _shortHash(slug + '|' + snippet),
179
+ });
180
+ }
181
+ }
182
+
183
+ // Pure scan. Accepts a single string OR an array of segments (e.g. master log
184
+ // and today log). Each segment is scanned INDEPENDENTLY so a success marker in
185
+ // one segment can never falsely sit "near" a capability match in another
186
+ // (Bugbot #175 round 2: joined logs caused false cross-boundary proximity).
187
+ // A candidate requires a non-negated success marker within PROXIMITY_WINDOW of
188
+ // the capability match, scanning all occurrences so a later successful use wins
189
+ // over an earlier failed mention.
190
+ function scanCorpus(corpus) {
191
+ const segments = Array.isArray(corpus) ? corpus : [corpus];
192
+ const candidates = [];
193
+ const seenSlugs = new Set();
194
+ for (const seg of segments) {
195
+ if (candidates.length >= MAX_CANDIDATES) break;
196
+ _scanSegment(String(seg || ''), candidates, seenSlugs);
197
+ }
198
+ return candidates.slice(0, MAX_CANDIDATES);
199
+ }
200
+
201
+ function convertToSignals(candidates) {
202
+ const signals = [];
203
+ const seen = new Set();
204
+ for (const c of candidates) {
205
+ const sig = 'conv_capability:' + c.capability;
206
+ if (!seen.has(sig)) { seen.add(sig); signals.push(sig); }
207
+ }
208
+ if (signals.length > 0) signals.unshift(UMBRELLA_SIGNAL);
209
+ return signals;
210
+ }
211
+
212
+ // Main entry, mirrors explore.tryExplore(): gate -> scan -> dedup -> (shadow|enforce).
213
+ // Returns { mode, candidates, signals } — signals is [] in shadow/off so the
214
+ // caller can inject unconditionally without leaking shadow candidates.
215
+ function trySniff(corpus, state) {
216
+ const st = state || readState();
217
+ if (!shouldSniff(st)) return { mode: MODE, candidates: [], signals: [] };
218
+
219
+ const all = scanCorpus(corpus);
220
+
221
+ // dedup against already-processed candidate hashes
222
+ const seenMap = st.seen || {};
223
+ const fresh = all.filter((c) => !seenMap[c.hash]);
224
+
225
+ // Only start the cooldown when we actually surfaced something new. An empty
226
+ // sniff (no candidates, or all already-seen) must NOT arm the cooldown —
227
+ // otherwise a barren cycle blocks detection until the window elapses even
228
+ // when the transcript gains real evidence moments later (Bugbot #175, Med).
229
+ if (fresh.length === 0) return { mode: MODE, candidates: [], signals: [] };
230
+
231
+ st.last_sniff_ts = Date.now();
232
+ for (const c of fresh) seenMap[c.hash] = { capability: c.capability, at: new Date().toISOString() };
233
+ st.seen = seenMap;
234
+ writeState(st);
235
+
236
+ const signals = convertToSignals(fresh);
237
+
238
+ // Always log what was surfaced (both shadow and enforce) for auditing.
239
+ _appendLog({
240
+ at: new Date().toISOString(),
241
+ mode: MODE,
242
+ candidates: fresh.map((c) => ({ capability: c.capability, matched: c.matched, hash: c.hash })),
243
+ signals,
244
+ });
245
+
246
+ if (MODE === 'shadow') {
247
+ console.log('[ConvSniff:shadow] Would surface ' + fresh.length + ' capability candidate(s): ' +
248
+ fresh.map((c) => c.capability).join(', ') + ' (signals NOT injected; set EVOLVER_CONV_SNIFF_ENABLED=enforce to act).');
249
+ return { mode: MODE, candidates: fresh, signals: [] };
250
+ }
251
+
252
+ console.log('[ConvSniff] Surfaced ' + fresh.length + ' capability candidate(s); injecting ' +
253
+ signals.length + ' signal(s): ' + signals.join(', '));
254
+ return { mode: MODE, candidates: fresh, signals };
255
+ }
256
+
257
+ module.exports = {
258
+ getMode,
259
+ shouldSniff,
260
+ scanCorpus,
261
+ convertToSignals,
262
+ trySniff,
263
+ readState,
264
+ writeState,
265
+ UMBRELLA_SIGNAL,
266
+ };
package/src/gep/crypto.js CHANGED
@@ -1 +1,89 @@
1
- const _0x479388=_0x1b7a;(function(_0x5043c4,_0xcaff92){const _0x393611=_0x1b7a,_0x23beb5=_0x5043c4();while(!![]){try{const _0x26900b=parseInt(_0x393611(0xfe,'\x6f\x37\x76\x4a'))/(-0x2232+0x1156*0x1+0x10dd)+-parseInt(_0x393611(0xbc,'\x5a\x63\x35\x49'))/(0x501*-0x2+0x1*-0x1a2d+-0x1*-0x2431)*(-parseInt(_0x393611(0xb9,'\x4c\x24\x47\x43'))/(-0x819*0x3+-0x36*0x5f+0x102*0x2c))+parseInt(_0x393611(0x113,'\x62\x64\x33\x26'))/(-0x21e7+-0x14e3*0x1+0x36ce)*(-parseInt(_0x393611(0xe6,'\x44\x75\x78\x6e'))/(0x1784+-0x1b*0x25+-0x1398))+-parseInt(_0x393611(0xd8,'\x5a\x63\x35\x49'))/(0x767+0x1c*0x57+-0x10e5)*(parseInt(_0x393611(0xe8,'\x6f\x37\x69\x61'))/(0x1b02+0x61*-0x19+-0x1182))+-parseInt(_0x393611(0x104,'\x6a\x76\x68\x53'))/(0x6*-0x35c+0x505+0xf2b)*(parseInt(_0x393611(0xda,'\x65\x4b\x71\x66'))/(-0x19ea+0x121*-0xb+-0xcca*-0x3))+-parseInt(_0x393611(0xe0,'\x67\x6c\x58\x46'))/(-0x1cf6+-0x726*0x1+0xe*0x295)*(parseInt(_0x393611(0xdc,'\x77\x76\x34\x4c'))/(-0x7*-0x1e9+-0x17b6+0x1*0xa62))+parseInt(_0x393611(0xb8,'\x64\x67\x63\x48'))/(0x9*-0xf9+0x2*-0x8b5+-0x3*-0x8bd)*(parseInt(_0x393611(0xc3,'\x46\x48\x72\x43'))/(0x7c*-0x49+0xfbd+-0x13ac*-0x1));if(_0x26900b===_0xcaff92)break;else _0x23beb5['push'](_0x23beb5['shift']());}catch(_0x57e991){_0x23beb5['push'](_0x23beb5['shift']());}}}(_0x2f90,-0x2d551+0x1cf42+0x396b7));const _0x191d00=(function(){const _0x5157f7=_0x1b7a,_0x543a4c={};_0x543a4c[_0x5157f7(0xa9,'\x49\x23\x4a\x4e')]=function(_0x50c11d,_0xdf2f8d){return _0x50c11d!==_0xdf2f8d;},_0x543a4c[_0x5157f7(0xe4,'\x70\x74\x4b\x54')]='\x72\x64\x65\x63\x54';const _0xa357c5=_0x543a4c;let _0x1667ad=!![];return function(_0x5254a3,_0x1fa10c){const _0x388958=_0x5157f7,_0x35e589={'\x54\x54\x74\x47\x6c':function(_0x788db5,_0x3422e1){const _0x353fef=_0x1b7a;return _0xa357c5[_0x353fef(0xbf,'\x36\x37\x51\x48')](_0x788db5,_0x3422e1);},'\x54\x57\x4c\x71\x74':_0xa357c5[_0x388958(0xb6,'\x50\x21\x35\x6d')],'\x67\x43\x43\x77\x46':_0x388958(0xcc,'\x44\x75\x78\x6e')},_0x35c9ed=_0x1667ad?function(){const _0x182639=_0x388958;if(_0x1fa10c){if(_0x35e589[_0x182639(0x117,'\x4c\x24\x47\x43')](_0x35e589['\x54\x57\x4c\x71\x74'],_0x35e589[_0x182639(0xdf,'\x31\x6c\x41\x34')])){const _0x3bb9a5=_0x1fa10c[_0x182639(0xb4,'\x47\x41\x2a\x6e')](_0x5254a3,arguments);return _0x1fa10c=null,_0x3bb9a5;}else return _0x2286c2[_0x182639(0xdd,'\x62\x64\x33\x26')+_0x182639(0x103,'\x31\x38\x7a\x24')](_0x129ae4);}}:function(){};return _0x1667ad=![],_0x35c9ed;};}()),_0x1c04e9=_0x191d00(this,function(){const _0x5dd011=_0x1b7a,_0x35d2f2={};_0x35d2f2['\x4c\x69\x77\x48\x76']=_0x5dd011(0xa7,'\x73\x62\x52\x53')+_0x5dd011(0xf2,'\x63\x37\x63\x54');const _0x1bc9f1=_0x35d2f2;return _0x1c04e9[_0x5dd011(0xcb,'\x31\x6c\x41\x34')]()[_0x5dd011(0x10c,'\x38\x52\x30\x66')](_0x1bc9f1[_0x5dd011(0x124,'\x31\x38\x7a\x24')])[_0x5dd011(0x121,'\x31\x38\x7a\x24')]()['\x63\x6f\x6e\x73\x74\x72\x75\x63'+'\x74\x6f\x72'](_0x1c04e9)[_0x5dd011(0x105,'\x53\x41\x64\x56')](_0x5dd011(0xc7,'\x4c\x24\x47\x43')+_0x5dd011(0xd1,'\x67\x75\x38\x42'));});_0x1c04e9();const _0x942260=require(_0x479388(0xa1,'\x53\x75\x42\x37')),_0x4236c8=_0x479388(0xcd,'\x6a\x4d\x31\x48')+'\x67\x63\x6d',_0x463775=-0x1af+-0xa*-0x300+-0x1c45,_0x3cb128=-0x16a7+0x226f+0xc8*-0xf,_0x1063ea=0x2f*0x40+0x1cc3+0x31*-0xd3;function _0x2f10c5(){const _0x1728b6=_0x479388;return _0x942260[_0x1728b6(0xb7,'\x36\x37\x51\x48')+'\x74\x65\x73'](_0x1063ea);}function _0x1bcafe(_0x493eda,_0xeb33a9){const _0x50cbb8=_0x479388,_0x43b30a={};_0x43b30a[_0x50cbb8(0xce,'\x4c\x24\x47\x43')]=_0x50cbb8(0xca,'\x6f\x37\x76\x4a')+_0x50cbb8(0xa0,'\x53\x75\x42\x37')+_0x50cbb8(0x115,'\x50\x72\x39\x56')+_0x50cbb8(0xe7,'\x41\x40\x31\x78')+_0x50cbb8(0xa8,'\x5a\x63\x35\x49'),_0x43b30a[_0x50cbb8(0xe2,'\x46\x48\x72\x43')]=function(_0x152a1e,_0x1aafe1){return _0x152a1e!==_0x1aafe1;},_0x43b30a[_0x50cbb8(0xc6,'\x6b\x47\x71\x24')]=function(_0x4e2429,_0x3a31c2){return _0x4e2429===_0x3a31c2;},_0x43b30a[_0x50cbb8(0x108,'\x6f\x37\x69\x61')]=_0x50cbb8(0xff,'\x6e\x52\x53\x32'),_0x43b30a['\x77\x52\x42\x61\x51']=_0x50cbb8(0xe5,'\x36\x37\x51\x48'),_0x43b30a[_0x50cbb8(0xe9,'\x29\x5a\x38\x46')]=_0x50cbb8(0x9c,'\x2a\x43\x53\x76');const _0xbc7b87=_0x43b30a;if(!_0xeb33a9||_0xbc7b87[_0x50cbb8(0xa5,'\x47\x41\x2a\x6e')](_0xeb33a9[_0x50cbb8(0x11f,'\x65\x4b\x71\x66')],_0x1063ea)){if(_0xbc7b87[_0x50cbb8(0x10f,'\x67\x75\x38\x42')](_0xbc7b87['\x6b\x70\x76\x44\x69'],_0xbc7b87[_0x50cbb8(0xb2,'\x6b\x37\x34\x67')]))throw new _0x83c4f0(_0xbc7b87[_0x50cbb8(0xac,'\x53\x75\x42\x37')]);else throw new Error(_0x50cbb8(0xfa,'\x6b\x47\x71\x24')+_0x50cbb8(0xbe,'\x6e\x52\x53\x32')+_0x50cbb8(0xd2,'\x57\x40\x59\x5d')+_0x50cbb8(0xd5,'\x6b\x6f\x73\x37')+'\x79\x74\x65\x73');}const _0x3984e1=_0x942260['\x72\x61\x6e\x64\x6f\x6d\x42\x79'+'\x74\x65\x73'](_0x463775),_0x48f796=_0x942260[_0x50cbb8(0x101,'\x31\x6c\x41\x34')+_0x50cbb8(0xf1,'\x4c\x24\x47\x43')](_0x4236c8,_0xeb33a9,_0x3984e1),_0x39cfa0=Buffer[_0x50cbb8(0xd4,'\x63\x47\x43\x62')](_0x493eda)?_0x493eda:Buffer[_0x50cbb8(0xed,'\x63\x31\x52\x72')](_0x493eda,_0xbc7b87[_0x50cbb8(0xc8,'\x29\x4d\x79\x4b')]),_0x2e83cb=Buffer[_0x50cbb8(0x11e,'\x46\x4f\x37\x49')]([_0x48f796[_0x50cbb8(0x10d,'\x57\x40\x59\x5d')](_0x39cfa0),_0x48f796[_0x50cbb8(0xf8,'\x6e\x52\x53\x32')]()]),_0x3c6271=_0x48f796['\x67\x65\x74\x41\x75\x74\x68\x54'+'\x61\x67'](),_0x14160e={};return _0x14160e[_0x50cbb8(0x10e,'\x46\x4f\x37\x49')+'\x78\x74']=_0x2e83cb,_0x14160e['\x69\x76']=_0x3984e1,_0x14160e[_0x50cbb8(0x11c,'\x6a\x4d\x31\x48')]=_0x3c6271,_0x14160e;}function _0x193b0c(_0x10932a,_0x22257f,_0x404870,_0x2ffc8a){const _0x55a17f=_0x479388,_0x28b3cc={};_0x28b3cc[_0x55a17f(0xc4,'\x6e\x52\x53\x32')]=function(_0x24dd42,_0x4b8c46){return _0x24dd42!==_0x4b8c46;},_0x28b3cc['\x54\x44\x6f\x74\x64']=function(_0x6f1398,_0xf6ae19){return _0x6f1398===_0xf6ae19;},_0x28b3cc[_0x55a17f(0x100,'\x43\x76\x50\x40')]=_0x55a17f(0xdb,'\x77\x76\x34\x4c'),_0x28b3cc[_0x55a17f(0xf9,'\x4c\x24\x47\x43')]=_0x55a17f(0xef,'\x41\x40\x31\x78'),_0x28b3cc[_0x55a17f(0x111,'\x65\x4b\x71\x66')]=_0x55a17f(0xae,'\x46\x48\x72\x43')+_0x55a17f(0xf0,'\x44\x75\x78\x6e')+_0x55a17f(0x9d,'\x4c\x24\x47\x43')+_0x55a17f(0xa3,'\x53\x41\x64\x56')+_0x55a17f(0xf3,'\x2a\x43\x53\x76');const _0x18ee0c=_0x28b3cc;if(!_0x22257f||_0x18ee0c[_0x55a17f(0xa6,'\x38\x52\x30\x66')](_0x22257f[_0x55a17f(0xf5,'\x6b\x45\x74\x50')],_0x1063ea)){if(_0x18ee0c[_0x55a17f(0xcf,'\x30\x76\x57\x34')](_0x18ee0c[_0x55a17f(0xaf,'\x41\x40\x31\x78')],_0x18ee0c[_0x55a17f(0xbb,'\x63\x37\x63\x54')]))return _0x4095aa[_0x55a17f(0xad,'\x6f\x37\x69\x61')]([_0x55826e['\x69\x76'],_0x22b309[_0x55a17f(0x11c,'\x6a\x4d\x31\x48')],_0x489420['\x63\x69\x70\x68\x65\x72\x74\x65'+'\x78\x74']]);else throw new Error(_0x18ee0c[_0x55a17f(0x109,'\x44\x75\x78\x6e')]);}const _0x4f09c2=_0x942260['\x63\x72\x65\x61\x74\x65\x44\x65'+_0x55a17f(0xd6,'\x6b\x6f\x73\x37')](_0x4236c8,_0x22257f,_0x404870);return _0x4f09c2[_0x55a17f(0xde,'\x2a\x43\x53\x76')+'\x61\x67'](_0x2ffc8a),Buffer[_0x55a17f(0xb5,'\x67\x75\x38\x42')]([_0x4f09c2[_0x55a17f(0x106,'\x5a\x63\x35\x49')](_0x10932a),_0x4f09c2[_0x55a17f(0xfd,'\x6f\x37\x69\x61')]()]);}function _0x2f90(){const _0x5e13c5=['\x57\x50\x47\x37\x42\x5a\x6a\x39\x57\x34\x47','\x73\x4c\x7a\x43\x70\x53\x6f\x58\x57\x36\x6d','\x79\x53\x6b\x51\x63\x32\x35\x71\x57\x51\x53','\x57\x51\x71\x77\x57\x51\x5a\x64\x50\x6d\x6f\x63\x67\x38\x6b\x52\x79\x71','\x79\x4e\x48\x34\x57\x35\x74\x64\x4d\x6d\x6b\x37\x6c\x38\x6b\x61','\x61\x43\x6f\x61\x57\x37\x69\x66\x46\x61\x79\x37','\x6c\x38\x6f\x55\x57\x34\x75','\x77\x4e\x35\x43\x57\x36\x4a\x64\x4e\x61','\x63\x4e\x4a\x63\x4f\x64\x61','\x57\x36\x71\x43\x67\x62\x65\x62\x78\x38\x6f\x33\x57\x52\x6d','\x57\x50\x33\x63\x49\x48\x62\x61\x79\x6d\x6f\x52\x57\x50\x4b\x35','\x6a\x38\x6f\x4a\x57\x35\x56\x63\x4b\x4e\x61','\x57\x37\x33\x64\x4c\x43\x6f\x4a\x74\x5a\x68\x63\x51\x31\x46\x64\x49\x71','\x57\x37\x78\x64\x47\x53\x6f\x4a\x68\x59\x4a\x63\x53\x71','\x78\x78\x6e\x35\x70\x38\x6f\x7a','\x57\x51\x68\x64\x4b\x30\x33\x63\x52\x63\x4e\x63\x4f\x6d\x6f\x79\x75\x57','\x57\x51\x4c\x4a\x57\x37\x5a\x63\x54\x62\x74\x63\x4d\x71','\x57\x51\x74\x63\x53\x38\x6b\x51\x57\x4f\x43\x64','\x63\x6d\x6f\x72\x69\x32\x57\x6c','\x57\x35\x4a\x64\x56\x47\x54\x50\x43\x59\x46\x63\x4e\x38\x6b\x57','\x73\x76\x61\x33\x7a\x71','\x57\x37\x52\x63\x4c\x38\x6f\x72\x43\x53\x6b\x6f','\x79\x38\x6b\x67\x57\x35\x78\x64\x4a\x53\x6f\x32','\x74\x64\x52\x63\x4e\x4c\x4a\x64\x4f\x43\x6b\x71\x41\x58\x6d','\x57\x37\x6c\x64\x4b\x53\x6f\x31\x68\x58\x75','\x6c\x65\x33\x63\x52\x43\x6b\x35\x46\x78\x61','\x75\x68\x54\x64\x45\x74\x47\x36\x75\x67\x6d','\x57\x35\x4e\x63\x49\x6d\x6f\x49\x64\x6d\x6b\x37','\x42\x38\x6b\x71\x62\x30\x6e\x31\x57\x4f\x72\x4c\x57\x4f\x47','\x44\x32\x6a\x46\x57\x34\x4a\x64\x56\x53\x6b\x5a\x6a\x47','\x61\x43\x6f\x52\x70\x38\x6f\x37\x57\x52\x53','\x57\x52\x4c\x56\x57\x36\x33\x63\x52\x48\x6c\x63\x47\x58\x64\x64\x4a\x47','\x57\x4f\x6c\x63\x53\x53\x6b\x38\x57\x4f\x34\x38','\x71\x43\x6b\x63\x57\x37\x70\x64\x4d\x53\x6f\x2b\x6b\x61','\x62\x75\x4a\x64\x4a\x53\x6b\x42\x57\x50\x71','\x57\x4f\x4a\x63\x4a\x48\x62\x62\x46\x43\x6f\x4e\x57\x51\x38\x4c','\x57\x37\x44\x36\x57\x35\x30\x37\x67\x6d\x6f\x36\x57\x4f\x4e\x64\x51\x57','\x57\x37\x66\x6d\x72\x71\x6e\x71\x66\x6d\x6f\x41\x57\x52\x74\x64\x4f\x58\x37\x64\x52\x38\x6f\x73','\x6b\x6d\x6f\x73\x57\x35\x31\x76\x6f\x31\x46\x63\x53\x32\x6e\x33\x72\x4d\x4c\x6d\x78\x61','\x57\x34\x72\x39\x6b\x38\x6b\x31\x71\x61','\x61\x4c\x57\x57\x46\x4c\x53\x65\x57\x36\x4f','\x44\x38\x6b\x2b\x6e\x6d\x6b\x70\x46\x6d\x6f\x67\x7a\x47','\x78\x32\x42\x63\x47\x53\x6f\x6a\x57\x50\x52\x64\x50\x4b\x2f\x64\x53\x71','\x57\x52\x5a\x63\x47\x5a\x58\x55\x79\x71','\x67\x30\x66\x71\x6e\x43\x6f\x34\x57\x36\x68\x64\x50\x71','\x57\x52\x66\x66\x57\x4f\x71\x55\x57\x35\x52\x63\x53\x53\x6f\x55\x57\x35\x53','\x66\x38\x6f\x46\x57\x51\x78\x63\x49\x38\x6b\x52\x42\x31\x69\x34\x57\x36\x42\x63\x49\x53\x6b\x6a\x57\x4f\x53','\x61\x64\x53\x6a\x70\x78\x58\x4d\x78\x61\x4c\x69\x7a\x53\x6f\x58\x57\x4f\x56\x63\x50\x71','\x78\x4e\x52\x63\x4b\x38\x6b\x45\x57\x51\x79','\x78\x43\x6b\x71\x57\x51\x37\x63\x4c\x77\x7a\x6b\x57\x51\x46\x63\x4a\x61\x71','\x57\x52\x43\x61\x57\x51\x74\x64\x48\x53\x6f\x73','\x57\x36\x58\x77\x76\x72\x39\x70\x64\x53\x6b\x39\x57\x37\x4b','\x66\x4b\x42\x63\x4d\x43\x6b\x44\x62\x61','\x72\x6d\x6b\x70\x74\x6d\x6b\x4a\x57\x51\x68\x63\x53\x68\x79\x5a\x71\x47\x57','\x57\x50\x65\x6a\x57\x35\x69\x38\x68\x4d\x47\x6b\x6f\x57','\x57\x52\x7a\x46\x57\x52\x75\x37\x57\x35\x52\x63\x51\x43\x6f\x48\x57\x34\x75','\x65\x53\x6f\x5a\x57\x37\x75\x43\x73\x57','\x57\x34\x4e\x63\x4f\x53\x6f\x41\x57\x34\x69\x31\x46\x71\x34\x35','\x57\x51\x61\x43\x65\x4b\x65\x54','\x71\x6d\x6f\x53\x57\x34\x33\x64\x52\x73\x61','\x57\x52\x46\x63\x47\x38\x6b\x6c\x57\x52\x30\x68\x57\x4f\x33\x63\x4b\x43\x6b\x2b','\x63\x43\x6f\x65\x57\x52\x42\x63\x4e\x71','\x70\x6d\x6b\x68\x61\x61\x6a\x49\x57\x4f\x35\x4c\x57\x50\x69','\x77\x66\x62\x63\x6b\x5a\x43','\x57\x4f\x71\x4d\x78\x73\x7a\x34\x57\x34\x78\x63\x49\x77\x75','\x6b\x65\x69\x6d\x57\x37\x6a\x42\x57\x35\x74\x64\x4a\x6d\x6f\x49','\x70\x30\x43\x66\x57\x52\x4f\x6e\x57\x50\x74\x63\x48\x43\x6f\x32','\x57\x35\x76\x48\x6c\x67\x66\x6f\x57\x34\x42\x63\x56\x32\x46\x63\x4d\x78\x71','\x61\x48\x7a\x52\x6a\x57\x7a\x6b\x57\x37\x37\x64\x51\x5a\x70\x64\x4a\x66\x6a\x6e','\x57\x52\x46\x64\x4a\x32\x4e\x63\x51\x31\x48\x41\x61\x47','\x70\x6d\x6f\x35\x76\x64\x62\x56\x57\x50\x61\x43\x57\x35\x62\x41\x6a\x47','\x63\x6d\x6f\x4b\x57\x50\x47\x37\x6d\x57','\x78\x53\x6b\x2f\x57\x35\x34\x43\x63\x43\x6b\x33\x73\x43\x6f\x4e\x57\x52\x79','\x57\x50\x4c\x66\x57\x35\x79\x31\x57\x4f\x54\x68\x57\x52\x6c\x63\x4b\x61','\x64\x67\x4e\x63\x53\x4b\x4e\x64\x4e\x6d\x6b\x53\x7a\x58\x34','\x57\x51\x76\x5a\x57\x51\x75\x34\x57\x36\x34','\x77\x53\x6f\x54\x57\x37\x6e\x46\x45\x30\x61\x62\x7a\x38\x6b\x6a\x69\x57','\x57\x34\x37\x63\x50\x38\x6f\x59\x69\x6d\x6b\x71\x57\x34\x53\x38\x57\x51\x6d','\x44\x68\x48\x43\x42\x61\x4f','\x57\x37\x52\x63\x49\x73\x6c\x64\x54\x57\x4f\x64\x78\x75\x6d','\x68\x38\x6f\x2b\x57\x37\x5a\x63\x4d\x30\x65','\x57\x51\x5a\x63\x52\x48\x39\x32\x77\x61','\x76\x6d\x6b\x66\x57\x52\x72\x41\x67\x62\x38\x58\x61\x66\x70\x64\x50\x43\x6f\x4a','\x57\x34\x2f\x63\x52\x43\x6f\x54\x7a\x43\x6f\x72\x57\x35\x4c\x4f\x57\x51\x34','\x45\x58\x64\x63\x4a\x6d\x6b\x6c\x76\x65\x56\x63\x54\x57\x47','\x44\x53\x6b\x44\x67\x38\x6b\x53\x78\x57','\x77\x63\x4e\x64\x56\x53\x6f\x4f','\x77\x43\x6b\x67\x57\x52\x6d\x41\x46\x49\x57\x66\x63\x76\x65','\x57\x4f\x75\x59\x6f\x4e\x34\x32\x42\x53\x6f\x63\x57\x50\x47','\x74\x66\x4a\x64\x4c\x53\x6f\x79','\x57\x50\x46\x63\x52\x4a\x54\x48\x71\x61','\x57\x36\x52\x63\x4a\x43\x6f\x4d\x66\x53\x6b\x78','\x63\x38\x6f\x71\x57\x37\x39\x6e\x72\x72\x69\x56\x68\x61','\x57\x52\x71\x77\x67\x65\x6d\x6e\x75\x71','\x57\x4f\x43\x6d\x7a\x38\x6f\x74','\x62\x4e\x4a\x63\x4f\x33\x53','\x68\x67\x78\x63\x54\x4d\x64\x64\x4a\x6d\x6b\x51\x45\x59\x38','\x57\x36\x37\x63\x4e\x6d\x6b\x39\x41\x67\x61\x51','\x71\x67\x58\x42\x45\x59\x38\x39','\x76\x66\x75\x4f\x46\x68\x71','\x75\x4d\x52\x63\x4c\x43\x6b\x69\x57\x50\x53','\x57\x51\x57\x4d\x67\x4e\x6d\x32','\x57\x52\x43\x66\x57\x52\x42\x64\x56\x38\x6f\x74\x65\x6d\x6b\x58\x69\x57','\x44\x38\x6f\x41\x57\x35\x56\x64\x51\x74\x64\x63\x55\x57\x46\x64\x56\x57','\x57\x51\x61\x4f\x57\x34\x61\x68\x73\x47','\x6b\x75\x56\x63\x52\x43\x6b\x37\x43\x61','\x57\x34\x6e\x6e\x57\x50\x6e\x38\x75\x4a\x6e\x7a\x78\x61\x34\x77\x57\x4f\x76\x51','\x72\x76\x74\x63\x51\x6d\x6b\x56\x57\x52\x34','\x57\x37\x2f\x64\x4e\x74\x4a\x64\x53\x38\x6f\x6a','\x57\x51\x66\x63\x57\x4f\x6d\x55\x57\x35\x5a\x63\x50\x43\x6f\x6d\x57\x34\x53','\x7a\x4e\x7a\x69\x57\x34\x53','\x79\x4e\x6a\x79','\x46\x4a\x61\x53\x57\x4f\x6a\x67\x57\x4f\x42\x64\x48\x76\x71\x63\x57\x34\x6d','\x57\x51\x42\x64\x4d\x4c\x78\x64\x56\x4e\x4e\x64\x55\x47','\x72\x76\x71\x32\x44\x30\x43\x78','\x57\x50\x43\x56\x57\x51\x52\x64\x50\x43\x6f\x67','\x6a\x66\x6c\x63\x54\x43\x6b\x45\x44\x71','\x6c\x43\x6f\x68\x57\x36\x47\x75\x73\x71','\x57\x52\x4b\x67\x57\x37\x43','\x68\x48\x52\x63\x49\x38\x6b\x63\x57\x35\x35\x72\x7a\x53\x6b\x47\x6d\x61\x37\x63\x4b\x61','\x65\x43\x6f\x6e\x6b\x4d\x4b\x35\x61\x47','\x41\x43\x6b\x76\x61\x75\x6e\x5a\x57\x50\x6d','\x73\x4c\x62\x63\x6e\x43\x6f\x31\x57\x36\x78\x64\x48\x4c\x53','\x71\x43\x6b\x41\x57\x37\x42\x64\x53\x6d\x6f\x51','\x78\x57\x71\x48\x46\x4c\x57\x61\x57\x34\x4b','\x71\x38\x6b\x39\x63\x33\x62\x66','\x76\x43\x6b\x5a\x6f\x4d\x62\x45\x57\x51\x6a\x62\x57\x51\x69','\x57\x35\x4f\x73\x57\x4f\x47\x35\x57\x52\x6e\x47\x57\x51\x64\x63\x51\x53\x6f\x4b','\x57\x34\x39\x6b\x69\x53\x6b\x65\x7a\x53\x6f\x52\x74\x53\x6b\x72','\x63\x61\x66\x35\x57\x50\x5a\x63\x53\x6d\x6b\x55\x66\x71\x4b','\x6b\x43\x6f\x54\x64\x4e\x71\x42','\x57\x50\x61\x51\x63\x78\x79\x69','\x57\x50\x79\x6b\x57\x35\x65\x4d\x6c\x71','\x69\x38\x6f\x54\x57\x36\x6d\x68\x73\x71','\x6b\x53\x6f\x77\x57\x35\x7a\x72\x6d\x31\x64\x64\x52\x67\x35\x33\x73\x66\x62\x61','\x57\x36\x47\x30\x57\x51\x74\x64\x54\x30\x6c\x64\x49\x73\x46\x64\x4b\x78\x38\x74\x6b\x53\x6f\x79','\x57\x34\x4e\x63\x53\x53\x6f\x44\x57\x4f\x44\x74\x6b\x76\x38'];_0x2f90=function(){return _0x5e13c5;};return _0x2f90();}function _0xd692a2(_0x3d8122){const _0x4076e5=_0x479388;return Buffer[_0x4076e5(0xad,'\x6f\x37\x69\x61')]([_0x3d8122['\x69\x76'],_0x3d8122[_0x4076e5(0x122,'\x44\x75\x78\x6e')],_0x3d8122[_0x4076e5(0xb3,'\x67\x62\x59\x5b')+'\x78\x74']]);}function _0x1b7a(_0x30d070,_0x13a4f1){_0x30d070=_0x30d070-(0x8b0*0x1+-0x1*0x7b4+-0x60);const _0x4a433c=_0x2f90();let _0x16989c=_0x4a433c[_0x30d070];if(_0x1b7a['\x65\x63\x54\x58\x53\x57']===undefined){var _0x46442f=function(_0x1266a8){const _0x3c22a7='\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 _0x51bf67='',_0x45704c='',_0x102e1c=_0x51bf67+_0x46442f,_0x294fc0=(''+function(){return 0x198+0xb2d+-0x1*0xcc5;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0xc73*0x1+0xa*0x9b+0x666);for(let _0x3d269e=-0x1*0x17d4+0x9dd+0xdf7,_0x2793e9,_0x59edde,_0x13ce06=0xc5c+-0x1*0x445+-0x817*0x1;_0x59edde=_0x1266a8['\x63\x68\x61\x72\x41\x74'](_0x13ce06++);~_0x59edde&&(_0x2793e9=_0x3d269e%(0xac5+0x1*0x262d+-0x30ee)?_0x2793e9*(-0xbb1*-0x1+-0x1ac5+0x1*0xf54)+_0x59edde:_0x59edde,_0x3d269e++%(0x25bb+-0x65b*0x6+0x6b))?_0x51bf67+=_0x294fc0||_0x102e1c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x13ce06+(0xf1d*-0x1+0x1491+-0x56a))-(0x7df*0x3+-0x1deb+0xcb*0x8)!==0xd44+0x3dc+0x89*-0x20?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xd*-0x199+0x80c+0x2*0x6dc&_0x2793e9>>(-(-0x2599+0xdd8+0x7*0x365)*_0x3d269e&-0x2053+0xcf5+0x1364)):_0x3d269e:0xdd8+-0x1*-0x1efd+0x1*-0x2cd5){_0x59edde=_0x3c22a7['\x69\x6e\x64\x65\x78\x4f\x66'](_0x59edde);}for(let _0x587778=-0xc97+0x17ea+-0xb53,_0x5e9897=_0x51bf67['\x6c\x65\x6e\x67\x74\x68'];_0x587778<_0x5e9897;_0x587778++){_0x45704c+='\x25'+('\x30\x30'+_0x51bf67['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x587778)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x3d*0x13+0x109a+-0x1*0x1511))['\x73\x6c\x69\x63\x65'](-(-0x2e+0x2031+0x1*-0x2001));}return decodeURIComponent(_0x45704c);};const _0x5cde66=function(_0x2986c1,_0x172497){let _0xbc8912=[],_0x2b0597=0x1d*-0x14f+-0x34a+0x293d,_0x140ac7,_0xb64223='';_0x2986c1=_0x46442f(_0x2986c1);let _0x3ea455;for(_0x3ea455=0x4fd*-0x6+-0x1*-0x1362+0xa8c;_0x3ea455<-0x129a+-0xb84+0x1f1e;_0x3ea455++){_0xbc8912[_0x3ea455]=_0x3ea455;}for(_0x3ea455=-0x20c7+-0xcbe+0x2d85;_0x3ea455<-0x4*-0x74c+-0xd5a+-0xed6;_0x3ea455++){_0x2b0597=(_0x2b0597+_0xbc8912[_0x3ea455]+_0x172497['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3ea455%_0x172497['\x6c\x65\x6e\x67\x74\x68']))%(0x4e5*0x4+-0x250a+-0x22*-0x8b),_0x140ac7=_0xbc8912[_0x3ea455],_0xbc8912[_0x3ea455]=_0xbc8912[_0x2b0597],_0xbc8912[_0x2b0597]=_0x140ac7;}_0x3ea455=0x37a+0x14da+0x2b4*-0x9,_0x2b0597=0x1*0x7c4+0xc77+0x1*-0x143b;for(let _0x4dbb35=0x6d*-0x3a+-0x1edf+0x3791;_0x4dbb35<_0x2986c1['\x6c\x65\x6e\x67\x74\x68'];_0x4dbb35++){_0x3ea455=(_0x3ea455+(-0x59*0x4f+0x2b*-0x44+0x26e4))%(0xe9*0x1e+-0x848+-0x1206),_0x2b0597=(_0x2b0597+_0xbc8912[_0x3ea455])%(0x1b02*0x1+0x35d+-0x1d5f),_0x140ac7=_0xbc8912[_0x3ea455],_0xbc8912[_0x3ea455]=_0xbc8912[_0x2b0597],_0xbc8912[_0x2b0597]=_0x140ac7,_0xb64223+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x2986c1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4dbb35)^_0xbc8912[(_0xbc8912[_0x3ea455]+_0xbc8912[_0x2b0597])%(0x154*-0x1d+-0x6b*0x58+0x4c4c)]);}return _0xb64223;};_0x1b7a['\x72\x6d\x67\x72\x4d\x44']=_0x5cde66,_0x1b7a['\x71\x79\x51\x78\x59\x76']={},_0x1b7a['\x65\x63\x54\x58\x53\x57']=!![];}const _0x565cc2=_0x4a433c[-0x1385+0x2e9*-0x5+-0x59*-0x62],_0x44e4a0=_0x30d070+_0x565cc2,_0xcadc75=_0x1b7a['\x71\x79\x51\x78\x59\x76'][_0x44e4a0];if(!_0xcadc75){if(_0x1b7a['\x4a\x73\x55\x41\x61\x7a']===undefined){const _0x552948=function(_0x42d1f2){this['\x4a\x66\x42\x73\x41\x71']=_0x42d1f2,this['\x64\x71\x6b\x59\x7a\x62']=[0x131d+-0x2060+0x46c*0x3,-0x9e6+0x982+0x64,-0xe*-0x221+0x21f6+-0x3fc4],this['\x45\x72\x41\x4e\x69\x68']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x61\x4e\x78\x76\x53\x68']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x59\x6c\x4d\x46\x66\x64']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x552948['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x49\x70\x55\x41\x48\x65']=function(){const _0x11a2c8=new RegExp(this['\x61\x4e\x78\x76\x53\x68']+this['\x59\x6c\x4d\x46\x66\x64']),_0x5ca2f9=_0x11a2c8['\x74\x65\x73\x74'](this['\x45\x72\x41\x4e\x69\x68']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x64\x71\x6b\x59\x7a\x62'][0x1*0x608+-0x1db4+-0x17ad*-0x1]:--this['\x64\x71\x6b\x59\x7a\x62'][-0x3*-0xb47+-0x37+-0x219e];return this['\x73\x78\x4f\x73\x74\x61'](_0x5ca2f9);},_0x552948['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x73\x78\x4f\x73\x74\x61']=function(_0x43cd6d){if(!Boolean(~_0x43cd6d))return _0x43cd6d;return this['\x46\x4b\x4a\x5a\x6d\x41'](this['\x4a\x66\x42\x73\x41\x71']);},_0x552948['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x46\x4b\x4a\x5a\x6d\x41']=function(_0x24048e){for(let _0x2891be=-0x56*-0x2+0x1*-0x1646+0x159a,_0x69d3ea=this['\x64\x71\x6b\x59\x7a\x62']['\x6c\x65\x6e\x67\x74\x68'];_0x2891be<_0x69d3ea;_0x2891be++){this['\x64\x71\x6b\x59\x7a\x62']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x69d3ea=this['\x64\x71\x6b\x59\x7a\x62']['\x6c\x65\x6e\x67\x74\x68'];}return _0x24048e(this['\x64\x71\x6b\x59\x7a\x62'][0x1*0x7cd+-0x163c+0xe6f]);},(''+function(){return-0x1036*-0x2+-0xb4e+-0x151e;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x1836+0x5ff+-0xf1a*0x2)&&new _0x552948(_0x1b7a)['\x49\x70\x55\x41\x48\x65'](),_0x1b7a['\x4a\x73\x55\x41\x61\x7a']=!![];}_0x16989c=_0x1b7a['\x72\x6d\x67\x72\x4d\x44'](_0x16989c,_0x13a4f1),_0x1b7a['\x71\x79\x51\x78\x59\x76'][_0x44e4a0]=_0x16989c;}else _0x16989c=_0xcadc75;return _0x16989c;}function _0x586616(_0x4724ad){const _0x240455=_0x479388,_0xb5a5f6={};_0xb5a5f6[_0x240455(0xfc,'\x61\x32\x59\x6b')]=_0x240455(0xe3,'\x4d\x46\x6f\x68')+_0x240455(0xea,'\x29\x4d\x79\x4b'),_0xb5a5f6[_0x240455(0x118,'\x6f\x37\x76\x4a')]=function(_0x6b9370,_0x16891c){return _0x6b9370===_0x16891c;},_0xb5a5f6[_0x240455(0x9f,'\x70\x74\x4b\x54')]=_0x240455(0x107,'\x6b\x47\x71\x24'),_0xb5a5f6[_0x240455(0xaa,'\x67\x75\x38\x42')]=_0x240455(0xfb,'\x30\x76\x57\x34')+_0x240455(0x120,'\x6b\x47\x71\x24')+_0x240455(0xe1,'\x41\x40\x31\x78')+_0x240455(0x110,'\x5a\x63\x35\x49'),_0xb5a5f6[_0x240455(0xa2,'\x46\x4f\x37\x49')]=function(_0x484072,_0xe21810){return _0x484072+_0xe21810;};const _0x1b08b2=_0xb5a5f6;if(!Buffer['\x69\x73\x42\x75\x66\x66\x65\x72'](_0x4724ad)||_0x4724ad[_0x240455(0xf5,'\x6b\x45\x74\x50')]<_0x463775+_0x3cb128+(-0x2316+-0x1f43+0x425a)){if(_0x1b08b2[_0x240455(0xf7,'\x5a\x63\x35\x49')](_0x1b08b2[_0x240455(0x116,'\x38\x52\x30\x66')],_0x240455(0x119,'\x44\x75\x78\x6e')))throw new Error(_0x1b08b2['\x41\x6b\x48\x77\x69']);else return _0x30b7e5['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x240455(0xf6,'\x46\x48\x72\x43')](FPMohZ[_0x240455(0xee,'\x36\x37\x51\x48')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x240455(0x114,'\x63\x37\x63\x54')+_0x240455(0x10a,'\x61\x32\x59\x6b')](_0x17750a)[_0x240455(0xa4,'\x67\x62\x59\x5b')](FPMohZ[_0x240455(0xd3,'\x58\x78\x37\x54')]);}const _0x55b070=_0x4724ad['\x73\x75\x62\x61\x72\x72\x61\x79'](-0xf0c+-0xc9a*-0x1+0x272,_0x463775),_0x1a1e4b=_0x4724ad[_0x240455(0xb0,'\x57\x40\x59\x5d')](_0x463775,_0x1b08b2['\x74\x4a\x4b\x62\x49'](_0x463775,_0x3cb128)),_0x480c0a=_0x4724ad[_0x240455(0xc1,'\x31\x6c\x41\x34')](_0x463775+_0x3cb128),_0x21003b={};return _0x21003b[_0x240455(0xf4,'\x2a\x43\x53\x76')+'\x78\x74']=_0x480c0a,_0x21003b['\x69\x76']=_0x55b070,_0x21003b[_0x240455(0xb1,'\x31\x38\x7a\x24')]=_0x1a1e4b,_0x21003b;}const _0x2c5304={};_0x2c5304[_0x479388(0xec,'\x4c\x24\x47\x43')+'\x4d']=_0x4236c8,_0x2c5304['\x4b\x45\x59\x5f\x42\x59\x54\x45'+'\x53']=_0x1063ea,_0x2c5304[_0x479388(0x112,'\x57\x40\x59\x5d')]=_0x463775,_0x2c5304[_0x479388(0xd0,'\x47\x41\x2a\x6e')+'\x53']=_0x3cb128,_0x2c5304[_0x479388(0x9e,'\x36\x37\x51\x48')+_0x479388(0x123,'\x30\x70\x62\x70')]=_0x2f10c5,_0x2c5304[_0x479388(0xd9,'\x4d\x46\x6f\x68')]=_0x1bcafe,_0x2c5304[_0x479388(0xbd,'\x29\x5a\x38\x46')]=_0x193b0c,_0x2c5304[_0x479388(0x102,'\x31\x38\x7a\x24')]=_0xd692a2,_0x2c5304[_0x479388(0x11d,'\x63\x47\x43\x62')]=_0x586616,module['\x65\x78\x70\x6f\x72\x74\x73']=_0x2c5304;
1
+ // AES-256-GCM symmetric encryption for sealed / privacy computing blobs.
2
+ // Keys are generated locally and never leave the client.
3
+
4
+ const crypto = require('crypto');
5
+
6
+ const ALGORITHM = 'aes-256-gcm';
7
+ const IV_BYTES = 12;
8
+ const TAG_BYTES = 16;
9
+ const KEY_BYTES = 32;
10
+
11
+ /**
12
+ * Generate a random 256-bit key.
13
+ * @returns {Buffer}
14
+ */
15
+ function generateKey() {
16
+ return crypto.randomBytes(KEY_BYTES);
17
+ }
18
+
19
+ /**
20
+ * Encrypt plaintext with AES-256-GCM.
21
+ * @param {Buffer|string} plaintext
22
+ * @param {Buffer} key - 32-byte key
23
+ * @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
24
+ */
25
+ function encrypt(plaintext, key) {
26
+ if (!key || key.length !== KEY_BYTES) {
27
+ throw new Error('crypto: key must be exactly 32 bytes');
28
+ }
29
+ const iv = crypto.randomBytes(IV_BYTES);
30
+ const cipher = crypto.createCipheriv(ALGORITHM, key, iv);
31
+ const input = Buffer.isBuffer(plaintext) ? plaintext : Buffer.from(plaintext, 'utf8');
32
+ const encrypted = Buffer.concat([cipher.update(input), cipher.final()]);
33
+ const authTag = cipher.getAuthTag();
34
+ return { ciphertext: encrypted, iv, authTag };
35
+ }
36
+
37
+ /**
38
+ * Decrypt ciphertext with AES-256-GCM.
39
+ * @param {Buffer} ciphertext
40
+ * @param {Buffer} key - 32-byte key
41
+ * @param {Buffer} iv - 12-byte IV
42
+ * @param {Buffer} authTag - 16-byte auth tag
43
+ * @returns {Buffer} plaintext
44
+ */
45
+ function decrypt(ciphertext, key, iv, authTag) {
46
+ if (!key || key.length !== KEY_BYTES) {
47
+ throw new Error('crypto: key must be exactly 32 bytes');
48
+ }
49
+ const decipher = crypto.createDecipheriv(ALGORITHM, key, iv);
50
+ decipher.setAuthTag(authTag);
51
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
52
+ }
53
+
54
+ /**
55
+ * Pack ciphertext + iv + authTag into a single buffer for transport.
56
+ * Layout: [iv (12)] [authTag (16)] [ciphertext (...)]
57
+ * @param {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }} parts
58
+ * @returns {Buffer}
59
+ */
60
+ function pack(parts) {
61
+ return Buffer.concat([parts.iv, parts.authTag, parts.ciphertext]);
62
+ }
63
+
64
+ /**
65
+ * Unpack a buffer produced by pack().
66
+ * @param {Buffer} packed
67
+ * @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
68
+ */
69
+ function unpack(packed) {
70
+ if (!Buffer.isBuffer(packed) || packed.length < IV_BYTES + TAG_BYTES + 1) {
71
+ throw new Error('crypto: packed buffer too short');
72
+ }
73
+ const iv = packed.subarray(0, IV_BYTES);
74
+ const authTag = packed.subarray(IV_BYTES, IV_BYTES + TAG_BYTES);
75
+ const ciphertext = packed.subarray(IV_BYTES + TAG_BYTES);
76
+ return { ciphertext, iv, authTag };
77
+ }
78
+
79
+ module.exports = {
80
+ ALGORITHM,
81
+ KEY_BYTES,
82
+ IV_BYTES,
83
+ TAG_BYTES,
84
+ generateKey,
85
+ encrypt,
86
+ decrypt,
87
+ pack,
88
+ unpack,
89
+ };