@evomap/evolver 1.88.3 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) 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 +1123 -0
  9. package/README.md +86 -543
  10. package/README.public.md +594 -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/index.js +30 -1
  16. package/package.json +5 -15
  17. package/proxy-package.json +39 -0
  18. package/public.manifest.json +141 -0
  19. package/src/evolve/guards.js +721 -1
  20. package/src/evolve/pipeline/collect.js +1283 -1
  21. package/src/evolve/pipeline/dispatch.js +421 -1
  22. package/src/evolve/pipeline/enrich.js +434 -1
  23. package/src/evolve/pipeline/hub.js +319 -1
  24. package/src/evolve/pipeline/select.js +274 -1
  25. package/src/evolve/pipeline/signals.js +206 -1
  26. package/src/evolve/utils.js +264 -1
  27. package/src/evolve.js +350 -1
  28. package/src/gep/a2aProtocol.js +4395 -1
  29. package/src/gep/assetCallLog.js +30 -2
  30. package/src/gep/autoDistillConv.js +205 -1
  31. package/src/gep/autoDistillLlm.js +315 -1
  32. package/src/gep/candidateEval.js +92 -1
  33. package/src/gep/candidates.js +198 -1
  34. package/src/gep/contentHash.js +30 -1
  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 +711 -1
  42. package/src/gep/explore.js +289 -1
  43. package/src/gep/hash.js +15 -1
  44. package/src/gep/hubFetch.js +359 -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 +1374 -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/oauthLogin.js +143 -0
  54. package/src/gep/openPRRegistry.js +205 -1
  55. package/src/gep/personality.js +423 -1
  56. package/src/gep/policyCheck.js +599 -1
  57. package/src/gep/prompt.js +836 -1
  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/schemas/capsule.js +26 -0
  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 +88 -0
  67. package/src/gep/workspaceKeychain.js +174 -1
  68. package/src/proxy/extensions/traceControl.js +99 -1
  69. package/src/proxy/index.js +36 -6
  70. package/src/proxy/inject.js +52 -1
  71. package/src/proxy/trace/extractor.js +534 -1
  72. package/src/proxy/trace/usage.js +105 -0
  73. package/CONTRIBUTING.md +0 -11
  74. package/assets/cover.png +0 -0
  75. package/scripts/a2a_export.js +0 -63
  76. package/scripts/a2a_ingest.js +0 -79
  77. package/scripts/a2a_promote.js +0 -118
  78. package/scripts/analyze_by_skill.js +0 -121
  79. package/scripts/build_binaries.js +0 -479
  80. package/scripts/check-changelog.js +0 -166
  81. package/scripts/extract_log.js +0 -85
  82. package/scripts/generate_history.js +0 -75
  83. package/scripts/gep_append_event.js +0 -96
  84. package/scripts/gep_personality_report.js +0 -234
  85. package/scripts/human_report.js +0 -147
  86. package/scripts/recall-verify-report.js +0 -234
  87. package/scripts/recover_loop.js +0 -61
  88. package/scripts/seed-merchants.js +0 -91
  89. package/scripts/suggest_version.js +0 -89
  90. package/scripts/validate-modules.js +0 -38
  91. package/scripts/validate-suite.js +0 -78
  92. package/skills/index.json +0 -14
  93. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  94. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,118 @@
1
- const _0x1bb77a=_0x477c;(function(_0x6e29c5,_0x55d3c8){const _0x7b92f4=_0x477c,_0x429b59=_0x6e29c5();while(!![]){try{const _0x21ae9d=parseInt(_0x7b92f4(0x1ec,'\x40\x49\x75\x4f'))/(0x1b53+-0x2025+-0xd*-0x5f)*(parseInt(_0x7b92f4(0x17d,'\x76\x53\x75\x75'))/(0x13bc+0xa75*0x1+-0x1e2f))+-parseInt(_0x7b92f4(0x19b,'\x74\x52\x2a\x6b'))/(0x5*-0x26e+-0x1bda+0x1*0x2803)+-parseInt(_0x7b92f4(0x210,'\x73\x66\x23\x70'))/(0x13*-0x37+-0x63+-0x4*-0x11f)*(-parseInt(_0x7b92f4(0x20b,'\x57\x41\x21\x47'))/(0x3*-0x909+-0xb1*-0x7+0xa3*0x23))+-parseInt(_0x7b92f4(0x1ab,'\x6c\x32\x5e\x46'))/(-0x1863+0x311+0x1558)+-parseInt(_0x7b92f4(0x1b3,'\x57\x41\x21\x47'))/(0x4c7*0x5+-0x2326+0xb4a)*(-parseInt(_0x7b92f4(0x16e,'\x66\x68\x24\x2a'))/(0xcdd+0x2*-0x35b+-0x61f))+parseInt(_0x7b92f4(0x1da,'\x55\x66\x48\x5d'))/(-0xdcd+-0x977*-0x4+0x2*-0xc03)+-parseInt(_0x7b92f4(0x1dd,'\x73\x66\x23\x70'))/(0x1*-0x1dbd+0x88*0x40+-0x439);if(_0x21ae9d===_0x55d3c8)break;else _0x429b59['push'](_0x429b59['shift']());}catch(_0x33f758){_0x429b59['push'](_0x429b59['shift']());}}}(_0x1941,0xfb181+0x126e86+-0x15c643));function _0x477c(_0x2b4f20,_0x39e1d9){_0x2b4f20=_0x2b4f20-(0x129b+0x65*-0x12+-0xa1b);const _0x378a9a=_0x1941();let _0x14799e=_0x378a9a[_0x2b4f20];if(_0x477c['\x4b\x78\x63\x74\x54\x73']===undefined){var _0x284bfc=function(_0xe81e3b){const _0x5e786e='\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 _0x46ec8d='',_0x19da9c='',_0x5cf350=_0x46ec8d+_0x284bfc,_0x5c2a5f=(''+function(){return 0x1380+0x4*0x369+0x4bc*-0x7;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x713+0x16ef+-0x1e01);for(let _0xad100e=-0x18e0+0xf8b+0x955,_0x571f34,_0x35cbb6,_0x5e1305=-0x16ca*0x1+-0xf4*0x16+0x15e1*0x2;_0x35cbb6=_0xe81e3b['\x63\x68\x61\x72\x41\x74'](_0x5e1305++);~_0x35cbb6&&(_0x571f34=_0xad100e%(-0x2190+0x18dd+0x8b7)?_0x571f34*(0x22bd*-0x1+-0x259+-0x51*-0x76)+_0x35cbb6:_0x35cbb6,_0xad100e++%(-0x1faa+-0x7c*-0x2e+0x1*0x966))?_0x46ec8d+=_0x5c2a5f||_0x5cf350['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5e1305+(0x1ce*-0x11+0x1*-0x128d+0x3145*0x1))-(0x3*-0x80f+-0xce9*-0x1+0xb4e)!==0x5*0x713+0xde1+0x4*-0xc50?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x9*-0xbf+0x21e3+0x1a2d*-0x1&_0x571f34>>(-(0x2*0xca9+-0x1953+0x1*0x3)*_0xad100e&0x733*-0x2+-0x3*0x3e2+-0xd09*-0x2)):_0xad100e:0x1f52+0x46a+-0x23bc){_0x35cbb6=_0x5e786e['\x69\x6e\x64\x65\x78\x4f\x66'](_0x35cbb6);}for(let _0x5ed6c5=0x1a1+0x1*-0x1f62+-0x3*-0x9eb,_0x3c12d1=_0x46ec8d['\x6c\x65\x6e\x67\x74\x68'];_0x5ed6c5<_0x3c12d1;_0x5ed6c5++){_0x19da9c+='\x25'+('\x30\x30'+_0x46ec8d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5ed6c5)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*-0xc89+0x191e+-0x1*0x2597))['\x73\x6c\x69\x63\x65'](-(0x1*0xa81+0x1a4f+0x2a1*-0xe));}return decodeURIComponent(_0x19da9c);};const _0x81882a=function(_0x1a9be9,_0x4b4409){let _0x1a1da2=[],_0xaf0e3e=0x1a31+-0x191b*0x1+-0x116,_0x25f0d7,_0x1b2dee='';_0x1a9be9=_0x284bfc(_0x1a9be9);let _0x34b3ee;for(_0x34b3ee=0x17fa+-0xb*0x241+-0xd1*-0x1;_0x34b3ee<-0x88*0x5+-0x11*-0x16f+-0x14b7;_0x34b3ee++){_0x1a1da2[_0x34b3ee]=_0x34b3ee;}for(_0x34b3ee=0x241b+0x10ed+0x8*-0x6a1;_0x34b3ee<-0x12*0x5e+0x2144+0x2*-0xcd4;_0x34b3ee++){_0xaf0e3e=(_0xaf0e3e+_0x1a1da2[_0x34b3ee]+_0x4b4409['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x34b3ee%_0x4b4409['\x6c\x65\x6e\x67\x74\x68']))%(0xe89+-0xe77+-0xee*-0x1),_0x25f0d7=_0x1a1da2[_0x34b3ee],_0x1a1da2[_0x34b3ee]=_0x1a1da2[_0xaf0e3e],_0x1a1da2[_0xaf0e3e]=_0x25f0d7;}_0x34b3ee=-0x1612+-0x21d6+-0x2*-0x1bf4,_0xaf0e3e=-0x1592+0xb*-0x51+-0x1*-0x190d;for(let _0x19c8a7=0x2580+-0xa5f+-0xf*0x1cf;_0x19c8a7<_0x1a9be9['\x6c\x65\x6e\x67\x74\x68'];_0x19c8a7++){_0x34b3ee=(_0x34b3ee+(0x1cc*0x15+-0x229a+-0x321))%(-0x3*0x12+-0x1549*-0x1+0x1*-0x1413),_0xaf0e3e=(_0xaf0e3e+_0x1a1da2[_0x34b3ee])%(-0x23bc+0x1915+0xba7),_0x25f0d7=_0x1a1da2[_0x34b3ee],_0x1a1da2[_0x34b3ee]=_0x1a1da2[_0xaf0e3e],_0x1a1da2[_0xaf0e3e]=_0x25f0d7,_0x1b2dee+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x1a9be9['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x19c8a7)^_0x1a1da2[(_0x1a1da2[_0x34b3ee]+_0x1a1da2[_0xaf0e3e])%(0x167e+0x1*0x52f+-0x1aad)]);}return _0x1b2dee;};_0x477c['\x61\x7a\x78\x63\x65\x4c']=_0x81882a,_0x477c['\x4e\x44\x68\x45\x6c\x51']={},_0x477c['\x4b\x78\x63\x74\x54\x73']=!![];}const _0x51c440=_0x378a9a[-0xe37+0x1613+-0x1f7*0x4],_0x408586=_0x2b4f20+_0x51c440,_0x4713b5=_0x477c['\x4e\x44\x68\x45\x6c\x51'][_0x408586];if(!_0x4713b5){if(_0x477c['\x78\x4b\x49\x64\x77\x62']===undefined){const _0x12fa84=function(_0x4a4d66){this['\x75\x63\x70\x44\x59\x59']=_0x4a4d66,this['\x42\x48\x45\x45\x6f\x52']=[0x1ae7+-0x38b*-0x4+0x2ef*-0xe,0x7*0x2a9+0x160a*0x1+-0x1*0x28a9,-0xa+0x1d82+-0x1d78],this['\x49\x45\x77\x6d\x76\x74']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4a\x45\x49\x49\x65\x59']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x68\x70\x79\x44\x45\x6d']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x12fa84['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x65\x4c\x62\x6c\x42\x6b']=function(){const _0x253dae=new RegExp(this['\x4a\x45\x49\x49\x65\x59']+this['\x68\x70\x79\x44\x45\x6d']),_0x4b3616=_0x253dae['\x74\x65\x73\x74'](this['\x49\x45\x77\x6d\x76\x74']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x42\x48\x45\x45\x6f\x52'][0x1e8*-0xc+-0x1*-0x243+0x149e]:--this['\x42\x48\x45\x45\x6f\x52'][0x11*0x23b+0x10c4+-0x36af*0x1];return this['\x6b\x51\x69\x64\x78\x68'](_0x4b3616);},_0x12fa84['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6b\x51\x69\x64\x78\x68']=function(_0x58aa3f){if(!Boolean(~_0x58aa3f))return _0x58aa3f;return this['\x76\x48\x53\x77\x77\x52'](this['\x75\x63\x70\x44\x59\x59']);},_0x12fa84['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x76\x48\x53\x77\x77\x52']=function(_0x88afdf){for(let _0x3e2d93=0x16a9*-0x1+-0x11b1+-0x812*-0x5,_0x13f409=this['\x42\x48\x45\x45\x6f\x52']['\x6c\x65\x6e\x67\x74\x68'];_0x3e2d93<_0x13f409;_0x3e2d93++){this['\x42\x48\x45\x45\x6f\x52']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x13f409=this['\x42\x48\x45\x45\x6f\x52']['\x6c\x65\x6e\x67\x74\x68'];}return _0x88afdf(this['\x42\x48\x45\x45\x6f\x52'][-0x41*0x32+0x1ba5+0x1*-0xef3]);},(''+function(){return-0x1c94+-0x1889+0x1*0x351d;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x11a1+0xa53+0x1*0x74f)&&new _0x12fa84(_0x477c)['\x65\x4c\x62\x6c\x42\x6b'](),_0x477c['\x78\x4b\x49\x64\x77\x62']=!![];}_0x14799e=_0x477c['\x61\x7a\x78\x63\x65\x4c'](_0x14799e,_0x39e1d9),_0x477c['\x4e\x44\x68\x45\x6c\x51'][_0x408586]=_0x14799e;}else _0x14799e=_0x4713b5;return _0x14799e;}const _0x5caa7d=(function(){const _0x4f9b1c=_0x477c,_0x23ea13={'\x75\x6f\x43\x6f\x6b':function(_0x1b3de0,_0x134b0c){return _0x1b3de0(_0x134b0c);},'\x57\x65\x48\x6b\x6f':'\x66\x51\x72\x77\x59','\x74\x52\x52\x4c\x75':_0x4f9b1c(0x1b6,'\x34\x50\x6e\x6d')+'\x6a\x73\x6f\x6e','\x49\x7a\x71\x61\x6a':'\x75\x74\x66\x38','\x59\x63\x49\x4c\x47':function(_0x100a19,_0xa29b8e){return _0x100a19===_0xa29b8e;},'\x79\x72\x53\x49\x74':_0x4f9b1c(0x1a7,'\x76\x53\x75\x75')};let _0x3777bc=!![];return function(_0x495a77,_0x108af2){const _0x2838d2=_0x4f9b1c,_0x28845d={'\x59\x50\x74\x7a\x54':function(_0x50e983,_0x533708){const _0x273be2=_0x477c;return _0x23ea13[_0x273be2(0x1c6,'\x78\x39\x52\x73')](_0x50e983,_0x533708);},'\x77\x6b\x42\x4d\x53':function(_0x58d014,_0x45c7a4){return _0x58d014===_0x45c7a4;},'\x76\x5a\x4c\x4e\x4c':_0x23ea13[_0x2838d2(0x184,'\x32\x54\x48\x7a')],'\x41\x6f\x47\x61\x68':_0x23ea13['\x74\x52\x52\x4c\x75'],'\x78\x46\x45\x6c\x76':_0x23ea13[_0x2838d2(0x1ea,'\x63\x36\x40\x42')],'\x59\x66\x56\x44\x5a':function(_0x511cae,_0x230d99){const _0x537fdb=_0x2838d2;return _0x23ea13[_0x537fdb(0x1a3,'\x6c\x56\x44\x4b')](_0x511cae,_0x230d99);}};if(_0x23ea13[_0x2838d2(0x206,'\x6e\x33\x31\x41')](_0x23ea13[_0x2838d2(0x1bb,'\x66\x64\x76\x58')],_0x2838d2(0x1ee,'\x6a\x4e\x70\x4e'))){const _0x22a29c=_0x3777bc?function(){const _0x108d98=_0x2838d2,_0x21f65f={'\x6a\x4d\x44\x63\x51':_0x108d98(0x1ce,'\x6f\x4b\x47\x23'),'\x44\x74\x58\x4a\x64':function(_0x28a97d,_0x3db61c){const _0x3a6108=_0x108d98;return _0x28845d[_0x3a6108(0x1a1,'\x76\x59\x6d\x44')](_0x28a97d,_0x3db61c);}};if(_0x28845d[_0x108d98(0x167,'\x26\x76\x4e\x5b')](_0x28845d[_0x108d98(0x1c1,'\x37\x74\x43\x4b')],_0x28845d[_0x108d98(0x202,'\x43\x33\x44\x23')])){if(_0x108af2){const _0x483519=_0x108af2[_0x108d98(0x169,'\x32\x62\x4b\x34')](_0x495a77,arguments);return _0x108af2=null,_0x483519;}}else{const _0x362ca1=_0x4ae204[_0x108d98(0x180,'\x66\x68\x24\x2a')+_0x108d98(0x1ed,'\x4f\x34\x39\x76')](_0x1aaa9a,_0x21f65f[_0x108d98(0x191,'\x5b\x23\x67\x2a')]),_0x3fbcb5=_0x5da8a2[_0x108d98(0x186,'\x74\x52\x2a\x6b')](_0x362ca1);_0x1247b6=_0x3fbcb5&&_0x3fbcb5[_0x108d98(0x1b4,'\x69\x6c\x23\x21')]?_0x21f65f[_0x108d98(0x168,'\x32\x2a\x25\x50')](_0x3c8792,_0x3fbcb5[_0x108d98(0x1e5,'\x76\x53\x75\x75')]):null,_0x30f057=_0x3fbcb5&&_0x3fbcb5[_0x108d98(0x208,'\x32\x73\x63\x6b')]?_0x21f65f[_0x108d98(0x1f9,'\x4f\x34\x39\x76')](_0xa3eab0,_0x3fbcb5[_0x108d98(0x17b,'\x76\x53\x75\x75')]):null;}}:function(){};return _0x3777bc=![],_0x22a29c;}else try{const _0x8092b3=_0xfca226[_0x2838d2(0x1e0,'\x6a\x4e\x70\x4e')+_0x2838d2(0x1b5,'\x38\x42\x4f\x6b')](_0x365f5f[_0x2838d2(0x1b2,'\x72\x6e\x34\x42')](_0x36a071,_0x28845d[_0x2838d2(0x188,'\x73\x66\x23\x70')]),_0x28845d[_0x2838d2(0x18c,'\x43\x33\x44\x23')]),_0x2350e4=_0x277dfe[_0x2838d2(0x1b7,'\x32\x54\x48\x7a')](_0x8092b3);_0x590c0f=_0x2350e4&&_0x2350e4['\x76\x65\x72\x73\x69\x6f\x6e']?_0x28845d[_0x2838d2(0x18e,'\x21\x44\x28\x23')](_0x5381fc,_0x2350e4[_0x2838d2(0x1eb,'\x66\x68\x24\x2a')]):null,_0x417d4b=_0x2350e4&&_0x2350e4['\x6e\x61\x6d\x65']?_0x28845d[_0x2838d2(0x1d2,'\x62\x54\x58\x7a')](_0xbbaa50,_0x2350e4[_0x2838d2(0x17e,'\x62\x54\x58\x7a')]):null;}catch(_0xbd3c2c){}};}()),_0x3fa709=_0x5caa7d(this,function(){const _0xe6aeb5=_0x477c,_0x5113c8={};_0x5113c8['\x6d\x66\x51\x77\x50']=_0xe6aeb5(0x1a8,'\x33\x32\x40\x53')+_0xe6aeb5(0x201,'\x69\x6c\x23\x21');const _0x3d15e9=_0x5113c8;return _0x3fa709[_0xe6aeb5(0x175,'\x76\x59\x6d\x44')]()[_0xe6aeb5(0x1af,'\x25\x78\x73\x56')](_0x3d15e9[_0xe6aeb5(0x16b,'\x6d\x54\x69\x6c')])[_0xe6aeb5(0x1ff,'\x74\x52\x2a\x6b')]()[_0xe6aeb5(0x16a,'\x26\x76\x4e\x5b')+_0xe6aeb5(0x19c,'\x57\x41\x21\x47')](_0x3fa709)['\x73\x65\x61\x72\x63\x68'](_0xe6aeb5(0x1cc,'\x76\x75\x34\x6d')+'\x2b\x29\x2b\x24');});_0x3fa709();const _0x1c1071=require('\x6f\x73'),_0x15105c=require('\x66\x73'),_0x22046f=require(_0x1bb77a(0x1cb,'\x32\x41\x7a\x25')),_0x5a327b=require(_0x1bb77a(0x1d8,'\x6e\x33\x31\x41')),{getRepoRoot:_0x2596d0}=require(_0x1bb77a(0x20e,'\x6a\x4e\x70\x4e')),{getDeviceId:_0x584f57,isContainer:_0x110834}=require(_0x1bb77a(0x1d3,'\x79\x5e\x77\x21')+'\x49\x64');function _0x5a448d(){const _0x4aabb2=_0x1bb77a,_0xa8d76f={};_0xa8d76f[_0x4aabb2(0x1bd,'\x32\x2a\x25\x50')]=function(_0x15c7ec,_0x1200ca){return _0x15c7ec||_0x1200ca;};const _0x3e644a=_0xa8d76f,_0x26c60f=[process.env.EVOLVER_MODEL_NAME,process.env.ANTHROPIC_MODEL,process.env.CLAUDE_MODEL,process.env.CLAUDE_CODE_MODEL,process.env.OPENAI_MODEL,process.env.CODEX_MODEL,process.env.CURSOR_MODEL];for(const _0x36a16f of _0x26c60f){const _0x1c9c16=_0x3e644a[_0x4aabb2(0x20c,'\x74\x52\x2a\x6b')](_0x36a16f,'')[_0x4aabb2(0x1f4,'\x66\x28\x6c\x4c')]();if(_0x1c9c16)return _0x1c9c16[_0x4aabb2(0x166,'\x32\x73\x63\x6b')](0x2e4+0x2*0x916+-0x544*0x4,-0x2*-0x9c0+-0x46a*-0x6+-0x2d98);}return _0x4aabb2(0x1b0,'\x32\x41\x7a\x25');}function _0x1941(){const _0x346d8f=['\x57\x50\x38\x72\x45\x71','\x57\x51\x42\x63\x4b\x33\x46\x63\x56\x38\x6f\x6d','\x68\x30\x65\x55\x57\x34\x71','\x41\x78\x37\x63\x51\x43\x6f\x39','\x78\x6d\x6f\x30\x57\x35\x30\x48\x74\x66\x6e\x42\x57\x4f\x79','\x6e\x73\x4a\x64\x54\x53\x6b\x47\x57\x34\x31\x7a\x63\x6d\x6b\x73\x79\x4d\x42\x64\x4d\x4c\x35\x31','\x76\x64\x52\x63\x48\x43\x6f\x2f','\x78\x67\x69\x4e\x57\x50\x2f\x64\x4d\x6d\x6b\x2b\x6e\x38\x6f\x51','\x57\x52\x33\x64\x52\x67\x52\x64\x47\x61\x5a\x63\x4f\x38\x6f\x38\x57\x52\x30','\x68\x43\x6b\x4b\x69\x38\x6b\x39\x57\x35\x6d','\x57\x34\x44\x4e\x78\x4e\x56\x63\x4e\x75\x4e\x64\x4b\x57','\x57\x50\x47\x79\x57\x50\x50\x6a\x73\x73\x34','\x57\x34\x42\x63\x52\x53\x6f\x4e\x57\x51\x6e\x5a','\x57\x37\x53\x52\x68\x78\x44\x68','\x6e\x43\x6b\x64\x46\x38\x6b\x46\x71\x61','\x57\x34\x72\x67\x65\x65\x70\x64\x4f\x6d\x6f\x72\x68\x71','\x7a\x53\x6f\x46\x6e\x38\x6b\x61\x76\x57','\x57\x34\x58\x75\x57\x36\x57','\x57\x51\x34\x4c\x68\x43\x6b\x39\x62\x4e\x4e\x63\x4c\x53\x6f\x44','\x57\x50\x4e\x63\x4a\x59\x7a\x68\x72\x38\x6f\x7a\x57\x37\x62\x4c','\x57\x4f\x38\x59\x72\x6d\x6f\x6a\x46\x71','\x57\x50\x6c\x64\x52\x53\x6f\x6f\x79\x61','\x57\x4f\x4e\x63\x56\x43\x6f\x62\x57\x51\x39\x50','\x73\x53\x6b\x34\x57\x37\x61\x77\x68\x6d\x6f\x70','\x57\x36\x31\x63\x57\x34\x35\x49\x57\x50\x75','\x61\x78\x34\x64\x57\x34\x50\x57','\x57\x52\x50\x62\x57\x36\x30\x50\x57\x4f\x62\x48\x7a\x72\x6d','\x6d\x38\x6b\x68\x46\x38\x6b\x46\x74\x6d\x6f\x35\x67\x47','\x43\x4d\x2f\x63\x4f\x6d\x6f\x35\x57\x4f\x61\x69','\x75\x67\x72\x79','\x6c\x38\x6b\x6e\x7a\x6d\x6b\x63','\x42\x53\x6b\x36\x79\x31\x30','\x57\x4f\x56\x64\x53\x43\x6f\x69\x42\x43\x6f\x41','\x57\x4f\x68\x64\x51\x4e\x48\x73','\x77\x6d\x6b\x31\x79\x4c\x6c\x63\x4c\x75\x5a\x64\x47\x71','\x44\x6d\x6f\x71\x70\x53\x6f\x45\x66\x43\x6b\x48\x74\x43\x6f\x61\x57\x37\x53\x41\x69\x43\x6f\x54\x57\x37\x65','\x78\x6d\x6f\x34\x57\x37\x69','\x57\x51\x38\x59\x67\x53\x6b\x58\x63\x4d\x6d','\x57\x50\x46\x64\x51\x68\x4b\x52\x57\x34\x4b','\x44\x32\x79\x33\x42\x61\x6c\x64\x54\x49\x54\x44','\x71\x62\x50\x53\x57\x4f\x30','\x57\x34\x78\x63\x52\x4d\x70\x64\x49\x6d\x6b\x43','\x43\x61\x52\x63\x55\x53\x6f\x45\x57\x34\x61','\x75\x77\x72\x50\x57\x37\x52\x64\x53\x71','\x6a\x6d\x6b\x73\x44\x6d\x6b\x32\x44\x71','\x77\x6d\x6b\x56\x57\x37\x69\x6d','\x41\x53\x6b\x5a\x57\x37\x69\x38\x6e\x57','\x43\x75\x4a\x63\x4a\x6d\x6f\x33\x57\x50\x43','\x57\x4f\x43\x6c\x57\x51\x61\x56\x57\x37\x6d\x50\x67\x68\x57','\x57\x34\x47\x2f\x46\x32\x61\x31','\x74\x62\x6a\x64\x57\x52\x7a\x49\x57\x4f\x2f\x63\x4b\x53\x6b\x63','\x64\x6d\x6f\x6b\x57\x52\x78\x63\x4e\x43\x6f\x45\x57\x35\x61\x55\x57\x36\x2f\x63\x4c\x78\x78\x64\x47\x4a\x33\x64\x4a\x47','\x46\x31\x43\x79\x46\x38\x6b\x76\x7a\x66\x78\x64\x4c\x61','\x57\x37\x4c\x58\x77\x43\x6f\x54\x75\x5a\x4e\x64\x52\x6d\x6b\x63\x57\x50\x46\x64\x4e\x78\x4a\x64\x52\x5a\x54\x71','\x57\x37\x2f\x63\x51\x53\x6f\x63\x57\x51\x30','\x57\x4f\x42\x63\x53\x53\x6b\x43\x42\x6d\x6f\x44\x62\x61','\x57\x52\x39\x64\x57\x36\x43\x5a\x57\x4f\x4c\x35\x45\x71','\x57\x34\x70\x64\x53\x61\x43\x6c\x57\x36\x37\x64\x52\x67\x39\x49','\x6f\x43\x6b\x36\x65\x6d\x6b\x57','\x67\x53\x6b\x56\x57\x34\x52\x63\x56\x43\x6f\x78\x6c\x38\x6f\x69\x57\x37\x4b','\x57\x51\x70\x63\x4d\x4d\x5a\x63\x52\x38\x6f\x61\x46\x30\x6d','\x57\x4f\x52\x64\x4d\x61\x54\x50','\x43\x32\x47\x79\x41\x62\x74\x64\x54\x64\x57\x57','\x57\x36\x68\x63\x51\x53\x6f\x44\x57\x52\x54\x35','\x6c\x68\x37\x64\x55\x74\x57','\x44\x77\x57\x6a\x43\x62\x5a\x64\x56\x64\x43','\x6d\x76\x57\x2b\x57\x34\x48\x33','\x57\x37\x69\x34\x70\x65\x31\x77','\x57\x52\x48\x4d\x78\x74\x6c\x63\x51\x76\x33\x64\x50\x68\x43\x4e\x6f\x53\x6f\x4d\x63\x38\x6b\x68','\x57\x50\x35\x65\x57\x36\x33\x63\x56\x53\x6f\x35','\x57\x51\x5a\x64\x55\x32\x37\x64\x48\x74\x37\x63\x52\x38\x6f\x79\x57\x52\x4b','\x57\x34\x70\x63\x4f\x6d\x6b\x5a\x57\x35\x53','\x57\x52\x33\x63\x4d\x4d\x79','\x57\x35\x4f\x4d\x78\x59\x56\x64\x4b\x71','\x78\x43\x6b\x30\x57\x37\x79\x62\x64\x6d\x6f\x74','\x57\x35\x6c\x63\x47\x43\x6f\x64\x57\x4f\x66\x76','\x57\x35\x4a\x63\x55\x4e\x4e\x64\x4c\x43\x6b\x49','\x57\x52\x54\x4a\x76\x5a\x6c\x63\x4f\x76\x37\x64\x50\x78\x53\x75\x6c\x53\x6f\x2f\x6d\x43\x6b\x56','\x57\x37\x38\x2b\x6a\x32\x2f\x64\x55\x47','\x66\x74\x6d\x43\x57\x51\x5a\x63\x52\x6d\x6b\x67\x68\x43\x6b\x4d\x75\x43\x6b\x52\x74\x49\x61','\x44\x53\x6f\x57\x57\x37\x37\x64\x50\x43\x6b\x52\x79\x4d\x76\x33','\x74\x43\x6b\x77\x57\x36\x5a\x63\x4d\x6d\x6f\x41\x57\x35\x69','\x73\x4a\x52\x63\x4d\x53\x6f\x50\x57\x37\x65','\x57\x52\x50\x6d\x57\x37\x47\x31','\x57\x50\x56\x63\x54\x65\x35\x72\x57\x51\x70\x63\x51\x4a\x79\x4d','\x57\x37\x4e\x63\x48\x4d\x46\x64\x4e\x43\x6b\x36\x74\x43\x6f\x42','\x57\x52\x4c\x69\x66\x53\x6f\x68','\x57\x37\x34\x6f\x6a\x38\x6b\x4f\x57\x34\x46\x63\x4c\x62\x70\x63\x48\x61','\x77\x6d\x6f\x4c\x57\x36\x4e\x63\x4b\x53\x6f\x52','\x57\x51\x37\x64\x55\x4d\x34','\x79\x5a\x33\x63\x56\x53\x6f\x45\x57\x34\x34','\x65\x38\x6f\x53\x41\x76\x56\x63\x4c\x75\x64\x64\x4b\x68\x71','\x78\x53\x6b\x53\x79\x30\x33\x63\x4c\x31\x56\x64\x48\x4e\x69','\x57\x36\x6c\x63\x4d\x6d\x6b\x65\x57\x34\x70\x64\x55\x57','\x75\x43\x6b\x59\x57\x36\x69\x71\x65\x43\x6f\x67\x45\x61\x38','\x57\x36\x4c\x72\x57\x37\x4c\x37\x57\x4f\x69','\x57\x37\x33\x64\x4b\x6d\x6f\x78\x57\x36\x52\x63\x48\x72\x4f','\x69\x38\x6b\x33\x65\x43\x6b\x2f\x57\x35\x34','\x63\x6d\x6f\x65\x57\x50\x6e\x6e\x44\x4a\x39\x4b\x69\x4a\x42\x64\x52\x5a\x6c\x64\x4c\x38\x6f\x77','\x41\x77\x4e\x63\x47\x53\x6f\x58\x57\x50\x4f\x6b\x76\x43\x6b\x57','\x6f\x38\x6b\x32\x57\x51\x64\x63\x4a\x43\x6f\x50\x6a\x73\x4b\x37','\x66\x6d\x6b\x62\x71\x6d\x6f\x75\x63\x43\x6f\x74\x57\x34\x70\x64\x53\x38\x6f\x63\x65\x4e\x4a\x63\x56\x53\x6f\x67\x77\x47','\x6f\x78\x78\x64\x52\x59\x54\x48','\x77\x53\x6f\x59\x57\x36\x68\x63\x4d\x6d\x6f\x7a\x63\x6d\x6f\x70\x57\x37\x69','\x57\x34\x62\x53\x76\x68\x68\x63\x54\x66\x46\x64\x4b\x43\x6b\x43','\x57\x37\x30\x6d\x41\x31\x69\x39','\x73\x6d\x6b\x2f\x57\x36\x37\x64\x4e\x6d\x6b\x32','\x63\x66\x38\x55\x57\x34\x58\x70\x57\x51\x53','\x57\x52\x50\x4c\x57\x35\x4b','\x43\x78\x52\x63\x54\x53\x6f\x52\x57\x50\x30\x63\x78\x47','\x74\x75\x37\x63\x4c\x53\x6f\x43\x57\x51\x61','\x57\x35\x44\x2f\x77\x4e\x4e\x63\x48\x66\x56\x64\x4a\x38\x6b\x4d','\x57\x34\x68\x63\x47\x43\x6b\x77\x57\x35\x37\x64\x50\x57','\x57\x50\x50\x6e\x57\x37\x64\x63\x48\x6d\x6f\x71','\x76\x76\x4a\x63\x47\x53\x6b\x66\x57\x50\x57','\x57\x52\x4e\x64\x52\x68\x4e\x64\x4c\x59\x70\x63\x50\x43\x6f\x2b','\x57\x52\x53\x52\x67\x6d\x6b\x77\x57\x35\x46\x63\x49\x5a\x53','\x57\x51\x56\x64\x50\x6d\x6f\x70\x42\x71','\x57\x34\x72\x45\x46\x78\x52\x63\x4b\x71','\x57\x50\x47\x2b\x57\x4f\x72\x42\x75\x5a\x69\x61','\x67\x31\x69\x4b\x57\x34\x6a\x61\x57\x52\x4a\x64\x4d\x43\x6b\x52','\x79\x68\x58\x67\x57\x36\x33\x64\x52\x61','\x57\x50\x64\x64\x54\x33\x4b\x70\x57\x37\x76\x68','\x57\x52\x48\x76\x74\x6d\x6f\x52\x57\x4f\x74\x64\x49\x75\x4e\x63\x49\x38\x6b\x65\x41\x53\x6f\x74\x57\x37\x70\x63\x50\x71','\x57\x4f\x64\x64\x52\x68\x43\x68','\x6d\x6d\x6b\x77\x41\x38\x6f\x75','\x71\x53\x6b\x43\x57\x34\x4f\x45\x6b\x47','\x41\x57\x72\x2b\x57\x51\x65','\x57\x51\x71\x48\x62\x6d\x6b\x39','\x57\x52\x5a\x64\x51\x43\x6f\x35\x72\x6d\x6f\x42','\x67\x66\x79\x4d\x57\x35\x54\x63\x57\x52\x43','\x57\x34\x38\x44\x79\x58\x68\x64\x51\x6d\x6f\x67\x78\x59\x38','\x57\x36\x4e\x64\x4d\x43\x6b\x66\x57\x36\x75\x65\x41\x63\x58\x31\x57\x36\x62\x52\x6e\x67\x53\x66','\x57\x51\x4c\x62\x57\x36\x75\x34\x57\x4f\x48\x36\x73\x61\x47','\x76\x4d\x35\x7a\x57\x37\x52\x64\x54\x53\x6f\x66\x64\x47','\x6d\x43\x6b\x6e\x78\x53\x6b\x79\x76\x38\x6f\x2f\x67\x53\x6f\x44','\x68\x6d\x6f\x38\x57\x4f\x33\x63\x4c\x66\x33\x63\x4a\x59\x33\x64\x50\x61','\x57\x37\x37\x64\x4c\x4a\x78\x64\x55\x61','\x57\x4f\x65\x55\x74\x43\x6f\x52\x72\x57','\x57\x37\x4a\x63\x4d\x33\x56\x64\x56\x6d\x6b\x50\x76\x6d\x6f\x6e','\x57\x52\x54\x48\x76\x66\x42\x64\x53\x61\x5a\x63\x50\x66\x69\x48','\x57\x52\x74\x63\x4a\x78\x33\x63\x54\x61','\x57\x34\x46\x64\x47\x43\x6f\x4e\x57\x35\x42\x63\x54\x47','\x57\x36\x58\x49\x57\x4f\x68\x64\x47\x68\x75','\x6d\x6d\x6b\x35\x57\x52\x56\x63\x52\x47','\x57\x4f\x56\x64\x54\x43\x6f\x61\x70\x6d\x6b\x6b\x57\x51\x75','\x57\x36\x56\x64\x47\x38\x6f\x75\x57\x35\x4a\x63\x4c\x71','\x67\x43\x6b\x56\x57\x52\x42\x64\x48\x43\x6b\x50\x76\x6d\x6f\x76\x57\x34\x74\x63\x4a\x59\x38\x69\x57\x36\x71','\x63\x43\x6b\x4d\x71\x43\x6b\x75\x7a\x57','\x57\x34\x70\x64\x56\x71\x75\x75\x57\x36\x4e\x64\x50\x68\x47\x48','\x57\x50\x57\x4d\x72\x78\x74\x63\x48\x4c\x42\x64\x4a\x47','\x57\x50\x38\x42\x43\x53\x6f\x72\x7a\x43\x6f\x65\x71\x53\x6f\x41','\x66\x53\x6b\x61\x71\x6d\x6b\x33\x78\x53\x6b\x63\x57\x4f\x5a\x63\x4b\x6d\x6f\x2b','\x6c\x43\x6b\x30\x57\x52\x2f\x63\x51\x6d\x6f\x4c','\x57\x34\x47\x67\x42\x33\x57\x4a','\x57\x50\x7a\x30\x57\x37\x4e\x63\x4a\x6d\x6f\x46','\x74\x38\x6b\x30\x57\x52\x46\x63\x55\x77\x57','\x57\x35\x57\x63\x71\x30\x69\x65\x43\x63\x6a\x45','\x57\x50\x68\x63\x4e\x58\x48\x43\x79\x71','\x57\x35\x79\x45\x46\x4c\x61\x44\x7a\x58\x6a\x74','\x75\x30\x71\x30\x7a\x62\x69','\x57\x37\x33\x63\x56\x4a\x6c\x63\x4c\x4e\x6c\x64\x56\x53\x6b\x4f\x57\x51\x37\x63\x50\x6d\x6b\x65\x57\x50\x4a\x63\x50\x38\x6f\x51','\x71\x77\x6d\x6a','\x57\x35\x65\x63\x73\x76\x71\x56\x44\x64\x6a\x70','\x6b\x38\x6b\x35\x57\x51\x5a\x63\x49\x43\x6f\x4b','\x57\x35\x4b\x6d\x44\x57\x74\x64\x51\x43\x6f\x72','\x57\x35\x2f\x63\x54\x53\x6b\x55\x57\x34\x42\x64\x49\x38\x6f\x59\x67\x61','\x57\x50\x4c\x64\x57\x36\x38\x66\x57\x51\x34','\x57\x36\x4a\x63\x4b\x75\x74\x64\x48\x53\x6b\x36\x75\x6d\x6f\x67\x57\x37\x34','\x57\x51\x37\x64\x49\x73\x78\x63\x49\x53\x6f\x58\x64\x43\x6b\x71\x57\x34\x4e\x64\x4e\x43\x6f\x54\x57\x51\x46\x63\x47\x38\x6f\x39','\x57\x36\x34\x65\x61\x53\x6b\x31\x57\x35\x42\x63\x4d\x63\x6c\x63\x49\x47'];_0x1941=function(){return _0x346d8f;};return _0x1941();}function _0x55cec8(){const _0x83db4c=_0x1bb77a,_0x58460a={'\x6d\x74\x79\x62\x61':_0x83db4c(0x1c8,'\x32\x73\x63\x6b')+_0x83db4c(0x1a0,'\x5b\x23\x67\x2a'),'\x70\x62\x68\x61\x6c':function(_0x4e11fe){return _0x4e11fe();},'\x77\x52\x52\x51\x45':_0x83db4c(0x1f5,'\x74\x52\x2a\x6b'),'\x42\x61\x46\x63\x4d':function(_0x1f2781,_0x1bf7ff){return _0x1f2781(_0x1bf7ff);},'\x76\x41\x63\x76\x59':function(_0x48b6a3,_0x360dee){return _0x48b6a3!==_0x360dee;},'\x61\x70\x79\x5a\x50':_0x83db4c(0x1f1,'\x6c\x56\x44\x4b'),'\x46\x72\x71\x7a\x5a':_0x83db4c(0x1d5,'\x37\x48\x38\x30'),'\x43\x4a\x6c\x49\x49':_0x83db4c(0x20d,'\x76\x75\x34\x6d')+_0x83db4c(0x1bf,'\x37\x48\x38\x30'),'\x75\x61\x7a\x42\x64':function(_0x545a57){return _0x545a57();},'\x68\x52\x4a\x6b\x45':_0x83db4c(0x1c9,'\x6c\x32\x5e\x46'),'\x50\x4d\x4f\x67\x67':function(_0x211844,_0x200503){return _0x211844||_0x200503;},'\x4e\x71\x5a\x63\x61':_0x83db4c(0x19a,'\x79\x5e\x77\x21'),'\x63\x76\x67\x41\x4f':function(_0x2e4f25){return _0x2e4f25();},'\x44\x44\x6e\x67\x6a':_0x83db4c(0x1c0,'\x69\x6c\x23\x21')},_0x18e7e6=_0x58460a[_0x83db4c(0x1d9,'\x72\x6e\x34\x42')](_0x2596d0);let _0xeebeef=null,_0x2379ef=null;const _0x46e9ac=_0x22046f[_0x83db4c(0x1fe,'\x6c\x56\x44\x4b')](__dirname,'\x2e\x2e','\x2e\x2e',_0x83db4c(0x1f0,'\x5b\x23\x67\x2a')+_0x83db4c(0x18d,'\x4f\x34\x39\x76'));try{const _0x54e555=_0x15105c['\x72\x65\x61\x64\x46\x69\x6c\x65'+_0x83db4c(0x1f7,'\x5e\x40\x61\x4d')](_0x46e9ac,_0x58460a[_0x83db4c(0x1a9,'\x26\x76\x4e\x5b')]),_0x4f6dff=JSON[_0x83db4c(0x185,'\x66\x64\x76\x58')](_0x54e555);_0xeebeef=_0x4f6dff&&_0x4f6dff[_0x83db4c(0x1b9,'\x34\x50\x6e\x6d')]?String(_0x4f6dff[_0x83db4c(0x1ef,'\x42\x52\x49\x47')]):null,_0x2379ef=_0x4f6dff&&_0x4f6dff[_0x83db4c(0x1f8,'\x4b\x71\x26\x2a')]?_0x58460a[_0x83db4c(0x190,'\x33\x32\x40\x53')](String,_0x4f6dff[_0x83db4c(0x1ae,'\x32\x54\x48\x7a')]):null;}catch(_0x2de116){}if(!_0xeebeef){if(_0x58460a[_0x83db4c(0x1e2,'\x6c\x32\x5e\x46')](_0x58460a[_0x83db4c(0x1a4,'\x74\x52\x2a\x6b')],_0x58460a[_0x83db4c(0x1d7,'\x33\x32\x40\x53')]))try{const _0x6c8e8a=_0x15105c[_0x83db4c(0x1df,'\x57\x41\x21\x47')+_0x83db4c(0x197,'\x79\x5e\x77\x21')](_0x22046f['\x6a\x6f\x69\x6e'](_0x18e7e6,_0x58460a[_0x83db4c(0x1c3,'\x32\x54\x48\x7a')]),'\x75\x74\x66\x38'),_0x441aa4=JSON[_0x83db4c(0x1ca,'\x62\x54\x58\x7a')](_0x6c8e8a);_0xeebeef=_0x441aa4&&_0x441aa4[_0x83db4c(0x1b9,'\x34\x50\x6e\x6d')]?_0x58460a[_0x83db4c(0x1e1,'\x26\x76\x4e\x5b')](String,_0x441aa4[_0x83db4c(0x1b9,'\x34\x50\x6e\x6d')]):null,_0x2379ef=_0x441aa4&&_0x441aa4[_0x83db4c(0x208,'\x32\x73\x63\x6b')]?String(_0x441aa4['\x6e\x61\x6d\x65']):null;}catch(_0x55e8b2){}else return _0x1da267[_0x83db4c(0x1aa,'\x5e\x40\x61\x4d')]()[_0x83db4c(0x18f,'\x62\x66\x57\x26')](tFjJrm[_0x83db4c(0x207,'\x6a\x29\x32\x45')])[_0x83db4c(0x1cf,'\x40\x49\x75\x4f')]()[_0x83db4c(0x1d4,'\x79\x5e\x77\x21')+_0x83db4c(0x195,'\x6c\x56\x44\x4b')](_0x23bf89)[_0x83db4c(0x1fa,'\x5b\x23\x67\x2a')](tFjJrm['\x6d\x74\x79\x62\x61']);}const _0x3925bc=(process.env.EVOLVER_REGION||'')[_0x83db4c(0x17a,'\x5b\x23\x67\x2a')]()[_0x83db4c(0x19f,'\x34\x50\x6e\x6d')+_0x83db4c(0x1d1,'\x66\x68\x24\x2a')]()[_0x83db4c(0x198,'\x4f\x34\x39\x76')](-0x727*0x1+0x24a*0x4+-0x201,0x4*0x1c1+-0x211e+0x1a1f)||undefined;return{'\x64\x65\x76\x69\x63\x65\x5f\x69\x64':_0x58460a[_0x83db4c(0x20a,'\x6e\x33\x31\x41')](_0x584f57),'\x6e\x6f\x64\x65\x5f\x76\x65\x72\x73\x69\x6f\x6e':process['\x76\x65\x72\x73\x69\x6f\x6e'],'\x70\x6c\x61\x74\x66\x6f\x72\x6d':process[_0x83db4c(0x192,'\x32\x41\x7a\x25')],'\x61\x72\x63\x68':process[_0x83db4c(0x205,'\x69\x6c\x23\x21')],'\x6f\x73\x5f\x72\x65\x6c\x65\x61\x73\x65':_0x1c1071[_0x83db4c(0x187,'\x54\x55\x5a\x6d')](),'\x68\x6f\x73\x74\x6e\x61\x6d\x65':_0x5a327b['\x63\x72\x65\x61\x74\x65\x48\x61'+'\x73\x68'](_0x58460a[_0x83db4c(0x1e8,'\x37\x48\x38\x30')])[_0x83db4c(0x194,'\x76\x53\x75\x75')](_0x1c1071[_0x83db4c(0x20f,'\x43\x33\x44\x23')]())[_0x83db4c(0x1c2,'\x62\x66\x57\x26')](_0x83db4c(0x1e4,'\x32\x2a\x25\x50'))['\x73\x6c\x69\x63\x65'](-0x1*0xd7c+0x1d4c+0xfd*-0x10,-0x2656+0x5*0x47b+0xffb),'\x65\x76\x6f\x6c\x76\x65\x72\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0xeebeef,'\x63\x6c\x69\x65\x6e\x74':_0x58460a[_0x83db4c(0x16d,'\x34\x50\x6e\x6d')](_0x2379ef,_0x58460a[_0x83db4c(0x181,'\x72\x6e\x34\x42')]),'\x63\x6c\x69\x65\x6e\x74\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0xeebeef,'\x6d\x6f\x64\x65\x6c':_0x58460a[_0x83db4c(0x19e,'\x66\x28\x6c\x4c')](_0x5a448d),'\x72\x65\x67\x69\x6f\x6e':_0x3925bc,'\x63\x77\x64':_0x5a327b[_0x83db4c(0x1ac,'\x62\x52\x37\x73')+'\x73\x68'](_0x58460a[_0x83db4c(0x1e8,'\x37\x48\x38\x30')])[_0x83db4c(0x172,'\x37\x74\x43\x4b')](process[_0x83db4c(0x189,'\x33\x32\x40\x53')]())['\x64\x69\x67\x65\x73\x74'](_0x58460a[_0x83db4c(0x1c4,'\x76\x59\x6d\x44')])[_0x83db4c(0x179,'\x69\x6c\x23\x21')](-0x24ff+-0x8c*-0x40+-0x1*-0x1ff,-0x1155+0x7*0x27f+0x6*-0x4),'\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72':_0x58460a[_0x83db4c(0x171,'\x32\x73\x63\x6b')](_0x110834),'\x63\x61\x70\x74\x75\x72\x65\x64\x5f\x61\x74':new Date()[_0x83db4c(0x17f,'\x33\x44\x53\x71')+_0x83db4c(0x16f,'\x33\x44\x53\x71')]()};}function _0x3af3dd(_0x549194){const _0x58cce0=_0x1bb77a,_0x511c9f={};_0x511c9f[_0x58cce0(0x1a2,'\x62\x54\x58\x7a')]=function(_0x4784b9,_0x512690){return _0x4784b9!==_0x512690;},_0x511c9f['\x5a\x6f\x79\x61\x56']='\x6f\x62\x6a\x65\x63\x74',_0x511c9f[_0x58cce0(0x1de,'\x47\x58\x59\x42')]=_0x58cce0(0x209,'\x4f\x34\x39\x76'),_0x511c9f[_0x58cce0(0x1a6,'\x62\x66\x57\x26')]=_0x58cce0(0x178,'\x43\x33\x44\x23');const _0x1235a5=_0x511c9f;if(!_0x549194||_0x1235a5[_0x58cce0(0x1e6,'\x76\x53\x75\x75')](typeof _0x549194,_0x1235a5[_0x58cce0(0x1ba,'\x5b\x23\x67\x2a')]))return _0x58cce0(0x182,'\x6a\x4e\x70\x4e');const _0x2385f5=[_0x549194[_0x58cce0(0x177,'\x40\x49\x75\x4f')+'\x64']||'',_0x549194[_0x58cce0(0x170,'\x26\x76\x4e\x5b')+_0x58cce0(0x1b8,'\x47\x58\x59\x42')]||'',_0x549194[_0x58cce0(0x1b1,'\x76\x75\x34\x6d')]||'',_0x549194[_0x58cce0(0x1a5,'\x62\x66\x57\x26')]||'',_0x549194[_0x58cce0(0x1d6,'\x62\x66\x57\x26')]||'',_0x549194[_0x58cce0(0x1e3,'\x5b\x23\x67\x2a')]||_0x549194[_0x58cce0(0x1e7,'\x6a\x4e\x70\x4e')+_0x58cce0(0x173,'\x37\x48\x38\x30')]||'',_0x549194[_0x58cce0(0x1fd,'\x32\x41\x7a\x25')+_0x58cce0(0x19d,'\x4b\x71\x26\x2a')]||_0x549194[_0x58cce0(0x18b,'\x6d\x54\x69\x6c')+_0x58cce0(0x193,'\x74\x52\x2a\x6b')]||''][_0x58cce0(0x196,'\x74\x52\x2a\x6b')]('\x7c');return _0x5a327b[_0x58cce0(0x1be,'\x66\x68\x24\x2a')+'\x73\x68'](_0x1235a5['\x66\x62\x79\x79\x62'])['\x75\x70\x64\x61\x74\x65'](_0x2385f5,_0x58cce0(0x199,'\x66\x28\x6c\x4c'))[_0x58cce0(0x1f2,'\x66\x28\x6c\x4c')](_0x1235a5[_0x58cce0(0x174,'\x32\x41\x7a\x25')])[_0x58cce0(0x1f6,'\x55\x66\x48\x5d')](-0x1a*0x17+0x10c0*0x2+-0x1f2a,-0x10f*-0x17+0x1da9+-0x35f2);}function _0x23cad2(_0x19e237,_0x36f87c){const _0x5a0f27=_0x1bb77a,_0x500f7a={'\x54\x55\x58\x49\x71':function(_0xb0f6c7,_0x2f01fc){return _0xb0f6c7===_0x2f01fc;},'\x48\x4d\x51\x42\x6b':function(_0x4e24d8,_0x1f413e){return _0x4e24d8(_0x1f413e);}};return _0x500f7a['\x54\x55\x58\x49\x71'](_0x3af3dd(_0x19e237),_0x500f7a[_0x5a0f27(0x1e9,'\x32\x2a\x25\x50')](_0x3af3dd,_0x36f87c));}const _0x519afc={};_0x519afc[_0x1bb77a(0x1fb,'\x37\x74\x43\x4b')+_0x1bb77a(0x1db,'\x76\x53\x75\x75')+_0x1bb77a(0x1d0,'\x57\x41\x21\x47')]=_0x55cec8,_0x519afc[_0x1bb77a(0x1dc,'\x32\x73\x63\x6b')+_0x1bb77a(0x17c,'\x72\x28\x31\x59')+'\x79']=_0x3af3dd,_0x519afc[_0x1bb77a(0x16c,'\x26\x76\x4e\x5b')+_0x1bb77a(0x183,'\x42\x52\x49\x47')]=_0x23cad2,_0x519afc[_0x1bb77a(0x18a,'\x4b\x71\x26\x2a')+_0x1bb77a(0x203,'\x76\x59\x6d\x44')]=_0x5a448d,module[_0x1bb77a(0x1cd,'\x76\x59\x6d\x44')]=_0x519afc;
1
+ // Environment fingerprint capture for GEP assets.
2
+ // Records the runtime environment so that cross-environment diffusion
3
+ // success rates (GDI) can be measured scientifically.
4
+
5
+ const os = require('os');
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+ const crypto = require('crypto');
9
+ const { getRepoRoot } = require('./paths');
10
+ const { getDeviceId, isContainer } = require('./deviceId');
11
+
12
+ // Resolve the underlying LLM model name powering this evolver node.
13
+ //
14
+ // Until now the only source was the explicit EVOLVER_MODEL_NAME env var, so
15
+ // nodes that never set it published assets with no model at all -- the Hub
16
+ // could not tell which model produced a Gene/Capsule, breaking the by-model
17
+ // leaderboard and depriving anti-sybil clustering of a strong signal.
18
+ //
19
+ // We now fall back to the model env vars the common host CLIs expose
20
+ // (Claude Code / Codex / Cursor / generic OpenAI-compatible runners). When
21
+ // nothing is discoverable we return the literal 'unknown' rather than null so
22
+ // that downstream aggregation always has a stable, groupable value and can
23
+ // distinguish "ran but model undetectable" from "field absent (old client)".
24
+ function detectModelName() {
25
+ const candidates = [
26
+ process.env.EVOLVER_MODEL_NAME,
27
+ process.env.ANTHROPIC_MODEL,
28
+ process.env.CLAUDE_MODEL,
29
+ process.env.CLAUDE_CODE_MODEL,
30
+ process.env.OPENAI_MODEL,
31
+ process.env.CODEX_MODEL,
32
+ process.env.CURSOR_MODEL,
33
+ ];
34
+ for (const c of candidates) {
35
+ const v = (c || '').trim();
36
+ if (v) return v.slice(0, 100);
37
+ }
38
+ return 'unknown';
39
+ }
40
+
41
+ // Capture a structured environment fingerprint.
42
+ // This is embedded into Capsules, EvolutionEvents, and ValidationReports.
43
+ function captureEnvFingerprint() {
44
+ const repoRoot = getRepoRoot();
45
+ let pkgVersion = null;
46
+ let pkgName = null;
47
+
48
+ // Read evolver's own package.json via __dirname so that npm-installed
49
+ // deployments report the correct evolver version. getRepoRoot() walks
50
+ // up to the nearest .git directory, which resolves to the HOST project
51
+ // when evolver is an npm dependency -- producing a wrong name/version.
52
+ const ownPkgPath = path.resolve(__dirname, '..', '..', 'package.json');
53
+ try {
54
+ const raw = fs.readFileSync(ownPkgPath, 'utf8');
55
+ const pkg = JSON.parse(raw);
56
+ pkgVersion = pkg && pkg.version ? String(pkg.version) : null;
57
+ pkgName = pkg && pkg.name ? String(pkg.name) : null;
58
+ } catch (e) {}
59
+
60
+ if (!pkgVersion) {
61
+ try {
62
+ const raw = fs.readFileSync(path.join(repoRoot, 'package.json'), 'utf8');
63
+ const pkg = JSON.parse(raw);
64
+ pkgVersion = pkg && pkg.version ? String(pkg.version) : null;
65
+ pkgName = pkg && pkg.name ? String(pkg.name) : null;
66
+ } catch (e) {}
67
+ }
68
+
69
+ const region = (process.env.EVOLVER_REGION || '').trim().toLowerCase().slice(0, 5) || undefined;
70
+
71
+ return {
72
+ device_id: getDeviceId(),
73
+ node_version: process.version,
74
+ platform: process.platform,
75
+ arch: process.arch,
76
+ os_release: os.release(),
77
+ hostname: crypto.createHash('sha256').update(os.hostname()).digest('hex').slice(0, 12),
78
+ evolver_version: pkgVersion,
79
+ client: pkgName || 'evolver',
80
+ client_version: pkgVersion,
81
+ // Underlying LLM model. NOT folded into envFingerprintKey() below: a node
82
+ // can swap models without changing its environment class, so the grouping
83
+ // key must stay model-independent. The model travels as its own field.
84
+ model: detectModelName(),
85
+ region: region,
86
+ cwd: crypto.createHash('sha256').update(process.cwd()).digest('hex').slice(0, 12),
87
+ container: isContainer(),
88
+ captured_at: new Date().toISOString(),
89
+ };
90
+ }
91
+
92
+ // Compute a short fingerprint key for comparison and grouping.
93
+ // Two nodes with the same key are considered "same environment class".
94
+ function envFingerprintKey(fp) {
95
+ if (!fp || typeof fp !== 'object') return 'unknown';
96
+ const parts = [
97
+ fp.device_id || '',
98
+ fp.node_version || '',
99
+ fp.platform || '',
100
+ fp.arch || '',
101
+ fp.hostname || '',
102
+ fp.client || fp.evolver_version || '',
103
+ fp.client_version || fp.evolver_version || '',
104
+ ].join('|');
105
+ return crypto.createHash('sha256').update(parts, 'utf8').digest('hex').slice(0, 16);
106
+ }
107
+
108
+ // Check if two fingerprints are from the same environment class.
109
+ function isSameEnvClass(fpA, fpB) {
110
+ return envFingerprintKey(fpA) === envFingerprintKey(fpB);
111
+ }
112
+
113
+ module.exports = {
114
+ captureEnvFingerprint,
115
+ envFingerprintKey,
116
+ isSameEnvClass,
117
+ detectModelName,
118
+ };
@@ -1 +1,31 @@
1
- const _0x29e62a=_0x6994;(function(_0x1d1c46,_0x8cd244){const _0x57fd1d=_0x6994,_0x5c5c93=_0x1d1c46();while(!![]){try{const _0x51225d=parseInt(_0x57fd1d(0xa5,'\x61\x58\x74\x29'))/(0x183f+0x43f*0x3+-0x1*0x24fb)+parseInt(_0x57fd1d(0xc4,'\x21\x54\x4b\x42'))/(-0x838+0x7a7+0x93)+parseInt(_0x57fd1d(0x9a,'\x73\x74\x4d\x6b'))/(-0x214d+0x1136+0x101a)+parseInt(_0x57fd1d(0xbc,'\x73\x74\x4d\x6b'))/(-0x2250+-0x1cc7+-0x1509*-0x3)*(-parseInt(_0x57fd1d(0x9b,'\x47\x76\x59\x73'))/(0xdf*-0x17+-0x40a*-0x2+-0x2*-0x5fd))+-parseInt(_0x57fd1d(0xc0,'\x50\x62\x68\x5d'))/(0x21ab*-0x1+0xa2*0x2b+0x15*0x4f)*(-parseInt(_0x57fd1d(0xa1,'\x32\x5d\x4e\x47'))/(-0xa35*0x2+-0x580*0x2+-0xa7b*-0x3))+-parseInt(_0x57fd1d(0xcb,'\x65\x76\x66\x6b'))/(0x1053+0x20b2+-0x30fd)*(parseInt(_0x57fd1d(0xad,'\x74\x53\x46\x71'))/(-0x3fa+-0x1*0x12f9+0x16fc))+parseInt(_0x57fd1d(0xd0,'\x76\x21\x6b\x78'))/(-0xfc9*-0x1+0x175f+-0x1*0x271e);if(_0x51225d===_0x8cd244)break;else _0x5c5c93['push'](_0x5c5c93['shift']());}catch(_0x5425c6){_0x5c5c93['push'](_0x5c5c93['shift']());}}}(_0x2314,-0xbb48*-0x3+-0x1*0x39e3b+0x5443b));const _0x3096e6=(function(){let _0x6485cc=!![];return function(_0x102983,_0x3ef0e9){const _0x3db460=_0x6485cc?function(){const _0x5ae5f2=_0x6994;if(_0x3ef0e9){const _0x3cd52d=_0x3ef0e9[_0x5ae5f2(0xa4,'\x56\x49\x4a\x34')](_0x102983,arguments);return _0x3ef0e9=null,_0x3cd52d;}}:function(){};return _0x6485cc=![],_0x3db460;};}()),_0x4d5894=_0x3096e6(this,function(){const _0x32a6be=_0x6994,_0xe3b0cf={};_0xe3b0cf[_0x32a6be(0xc3,'\x61\x58\x74\x29')]=_0x32a6be(0xd2,'\x32\x5d\x4e\x47')+'\x2b\x29\x2b\x24';const _0x205dcc=_0xe3b0cf;return _0x4d5894[_0x32a6be(0x87,'\x54\x78\x30\x57')]()[_0x32a6be(0xda,'\x36\x61\x54\x58')](_0x205dcc['\x4a\x59\x45\x47\x6b'])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x32a6be(0xc6,'\x61\x2a\x69\x6f')+_0x32a6be(0xd8,'\x79\x30\x41\x77')](_0x4d5894)[_0x32a6be(0x86,'\x53\x52\x64\x31')](_0x32a6be(0xdb,'\x65\x76\x66\x6b')+_0x32a6be(0xb6,'\x36\x61\x54\x58'));});function _0x2314(){const _0x227f0a=['\x57\x51\x54\x61\x70\x53\x6f\x69\x77\x43\x6f\x76\x6c\x53\x6b\x69\x57\x51\x78\x63\x53\x4b\x6d\x4c','\x65\x30\x70\x63\x4a\x76\x62\x63\x57\x50\x52\x64\x4e\x43\x6f\x4b\x57\x50\x68\x64\x4b\x53\x6f\x70\x57\x34\x47','\x57\x35\x79\x72\x57\x34\x42\x63\x52\x53\x6b\x6f','\x57\x50\x64\x64\x4c\x53\x6f\x52\x62\x57','\x67\x6d\x6f\x6b\x6e\x43\x6b\x31\x64\x47','\x57\x37\x2f\x64\x53\x53\x6b\x76\x66\x38\x6f\x4a\x68\x4c\x64\x64\x4a\x62\x74\x63\x4d\x75\x72\x31\x41\x57','\x57\x50\x4a\x64\x4b\x6d\x6f\x48\x62\x4b\x47\x35\x57\x35\x70\x64\x47\x61','\x57\x36\x37\x63\x50\x6d\x6f\x78\x57\x51\x33\x63\x53\x58\x64\x64\x4d\x43\x6f\x45','\x72\x4a\x43\x36\x57\x35\x4a\x63\x4d\x38\x6f\x35\x57\x4f\x7a\x39\x65\x38\x6f\x6f\x57\x36\x50\x6c\x61\x61','\x69\x57\x58\x41\x57\x35\x76\x33','\x46\x78\x4a\x64\x51\x53\x6f\x36\x57\x37\x69','\x57\x4f\x4e\x63\x47\x38\x6f\x54\x7a\x6d\x6b\x6a\x41\x74\x4e\x64\x51\x47','\x72\x30\x2f\x63\x4d\x53\x6f\x6e\x57\x37\x4b\x2b\x57\x50\x75\x79','\x57\x37\x6c\x64\x49\x73\x74\x64\x51\x6d\x6b\x33\x57\x4f\x58\x4a\x6b\x61','\x45\x43\x6b\x7a\x57\x35\x50\x44','\x71\x4e\x64\x63\x4f\x49\x62\x50\x57\x34\x6a\x68\x71\x38\x6b\x36\x76\x57','\x74\x43\x6b\x38\x73\x49\x4b\x67\x42\x67\x33\x64\x4d\x57','\x57\x36\x78\x64\x52\x38\x6b\x69\x62\x71','\x43\x67\x42\x63\x54\x43\x6f\x38\x57\x34\x61\x75\x57\x52\x43\x38','\x73\x61\x46\x64\x55\x71\x4f\x76\x57\x34\x70\x64\x55\x38\x6f\x55','\x72\x47\x58\x79\x57\x4f\x4e\x64\x54\x5a\x64\x63\x53\x66\x47','\x57\x34\x58\x43\x57\x34\x75\x30\x57\x52\x7a\x74\x73\x61','\x57\x50\x6e\x53\x57\x34\x69\x5a\x57\x50\x54\x4b\x43\x6d\x6b\x44','\x57\x37\x6a\x74\x57\x34\x5a\x64\x4a\x61\x4b\x79\x57\x34\x30','\x77\x38\x6f\x68\x57\x34\x33\x64\x4b\x43\x6b\x39\x57\x35\x64\x63\x4b\x53\x6f\x51','\x61\x38\x6f\x54\x7a\x31\x4a\x63\x4f\x67\x47\x59\x6b\x61','\x61\x6d\x6f\x4d\x63\x38\x6b\x62\x6d\x71','\x57\x34\x64\x64\x52\x6d\x6f\x44\x63\x76\x53\x6b\x57\x36\x75','\x72\x30\x66\x47\x57\x51\x38\x4d\x57\x34\x69\x70\x6e\x71','\x57\x50\x2f\x64\x4e\x6d\x6f\x41\x64\x4e\x79\x39\x57\x35\x33\x64\x47\x71','\x57\x35\x6d\x55\x73\x43\x6b\x38\x63\x57','\x46\x53\x6f\x5a\x57\x50\x61\x6b\x70\x75\x2f\x64\x4a\x58\x52\x64\x49\x67\x61\x52\x57\x34\x30','\x57\x35\x75\x6b\x44\x6d\x6f\x48\x57\x34\x69','\x57\x50\x78\x63\x47\x63\x4c\x51\x72\x65\x6d\x55\x57\x50\x79','\x57\x36\x44\x4b\x57\x35\x53\x70\x57\x50\x53','\x6a\x57\x75\x63\x77\x4b\x5a\x64\x49\x71','\x63\x43\x6b\x57\x57\x51\x4c\x54\x63\x61','\x57\x37\x4b\x32\x63\x4e\x31\x66\x68\x48\x72\x69','\x57\x37\x2f\x63\x4b\x73\x6c\x63\x52\x71\x4f\x69\x57\x4f\x71','\x57\x4f\x61\x4a\x57\x50\x66\x34','\x66\x59\x61\x68\x57\x50\x69\x4a\x45\x53\x6b\x46','\x57\x37\x4a\x64\x4c\x71\x5a\x64\x54\x43\x6b\x38\x57\x50\x31\x4a','\x57\x37\x42\x63\x53\x38\x6b\x6e\x69\x38\x6f\x4c\x57\x50\x37\x63\x51\x6d\x6f\x53','\x68\x53\x6b\x37\x61\x6d\x6b\x78\x66\x49\x35\x4a\x57\x51\x30\x58\x6b\x71','\x65\x30\x6e\x36\x57\x52\x4a\x64\x54\x33\x33\x63\x53\x53\x6f\x6e','\x6f\x63\x42\x63\x53\x6d\x6b\x47\x57\x52\x33\x63\x49\x68\x4a\x63\x51\x57','\x76\x38\x6f\x46\x57\x51\x70\x64\x4f\x43\x6f\x30\x65\x71','\x64\x47\x2f\x63\x51\x6d\x6f\x54\x57\x35\x5a\x64\x56\x53\x6b\x43\x41\x57','\x6f\x43\x6f\x65\x57\x4f\x69\x6c\x57\x51\x68\x63\x48\x53\x6b\x56\x70\x77\x54\x41\x57\x35\x31\x65','\x57\x35\x35\x59\x65\x53\x6b\x6d\x68\x57\x68\x63\x52\x49\x4e\x63\x4a\x6d\x6f\x48\x57\x51\x58\x59\x46\x61','\x57\x52\x71\x74\x57\x37\x65\x59\x57\x37\x30','\x76\x57\x79\x46','\x67\x53\x6b\x65\x57\x34\x6d\x70\x6b\x74\x6e\x4d\x67\x47','\x57\x52\x33\x63\x4f\x38\x6f\x63\x75\x38\x6b\x31\x72\x61','\x57\x36\x2f\x64\x4e\x33\x64\x64\x51\x4b\x7a\x32\x57\x34\x35\x47','\x68\x53\x6f\x59\x75\x68\x74\x63\x4f\x57','\x7a\x38\x6f\x33\x57\x35\x33\x64\x4a\x6d\x6b\x65','\x57\x51\x4c\x36\x57\x36\x30\x55\x57\x4f\x48\x5a\x41\x6d\x6b\x44','\x72\x38\x6f\x41\x57\x36\x70\x64\x4a\x38\x6b\x37\x57\x34\x64\x63\x4d\x71','\x57\x35\x70\x64\x4d\x63\x7a\x65','\x57\x35\x64\x64\x48\x73\x50\x46\x61\x57','\x6c\x71\x5a\x64\x47\x4e\x44\x59','\x57\x50\x79\x36\x57\x50\x44\x58\x57\x4f\x47\x45\x77\x49\x53','\x57\x51\x33\x64\x50\x65\x71\x45\x57\x50\x7a\x39','\x74\x38\x6f\x76\x57\x50\x37\x64\x53\x53\x6f\x59\x65\x6d\x6f\x41\x57\x37\x47','\x57\x51\x6c\x63\x4a\x59\x4a\x63\x51\x58\x38\x52\x57\x50\x79','\x73\x48\x4f\x53\x57\x51\x4b\x65\x71\x53\x6b\x51','\x62\x38\x6f\x35\x64\x43\x6b\x76\x69\x66\x64\x64\x55\x6d\x6f\x48','\x68\x4a\x68\x64\x4c\x77\x6a\x58\x57\x36\x35\x78','\x66\x53\x6b\x68\x57\x36\x53\x41\x70\x4a\x58\x36','\x57\x34\x46\x63\x48\x53\x6b\x30\x77\x49\x6a\x33\x57\x4f\x70\x64\x50\x57\x6c\x63\x52\x6d\x6f\x4f\x70\x58\x47','\x57\x35\x6d\x34\x57\x34\x52\x63\x50\x53\x6b\x75','\x6d\x58\x47\x4f\x76\x66\x75','\x71\x4e\x4f\x41\x75\x47','\x57\x36\x47\x73\x57\x36\x69\x61\x45\x47','\x72\x4e\x47\x71\x78\x78\x62\x43\x57\x52\x7a\x50','\x6c\x71\x4b\x63\x77\x71','\x57\x50\x39\x2f\x57\x37\x71\x35\x57\x50\x39\x34\x46\x53\x6b\x41','\x57\x36\x4e\x63\x51\x6d\x6f\x53\x57\x51\x78\x63\x4a\x72\x74\x64\x4c\x38\x6f\x46','\x57\x36\x38\x5a\x57\x34\x52\x63\x4d\x53\x6b\x47','\x6a\x53\x6f\x6d\x64\x43\x6b\x79\x6e\x71','\x68\x6d\x6b\x68\x57\x51\x61\x50\x57\x37\x74\x64\x4f\x43\x6f\x42\x74\x57','\x57\x37\x61\x75\x75\x38\x6b\x77\x61\x43\x6b\x78\x66\x38\x6b\x75','\x57\x37\x43\x55\x57\x50\x64\x63\x53\x32\x4c\x5a\x57\x52\x4a\x64\x55\x73\x52\x64\x47\x58\x58\x44\x67\x47','\x61\x38\x6b\x6e\x57\x52\x4e\x63\x4d\x6d\x6f\x48\x57\x4f\x2f\x64\x47\x53\x6f\x72\x42\x73\x64\x64\x55\x75\x75\x78','\x69\x33\x48\x58\x57\x51\x6c\x64\x48\x71','\x73\x65\x56\x63\x48\x53\x6f\x6d\x57\x37\x4b\x35\x57\x4f\x4f\x45','\x65\x43\x6b\x72\x57\x35\x34\x62\x6c\x58\x39\x53\x61\x71','\x57\x35\x47\x43\x57\x35\x61\x43\x42\x48\x4c\x71\x61\x57','\x77\x43\x6f\x53\x72\x43\x6f\x69\x65\x62\x76\x56\x57\x52\x30','\x69\x5a\x52\x63\x52\x38\x6b\x32\x57\x51\x68\x63\x4d\x63\x70\x64\x54\x38\x6f\x34\x70\x65\x74\x63\x4b\x47','\x68\x53\x6b\x61\x57\x37\x44\x78\x77\x47','\x65\x4a\x6c\x64\x56\x78\x44\x4d\x57\x36\x66\x6c\x79\x47','\x57\x50\x69\x36\x57\x4f\x35\x36\x57\x50\x71'];_0x2314=function(){return _0x227f0a;};return _0x2314();}_0x4d5894();'use strict';const _0x22955a=require(_0x29e62a(0x98,'\x34\x6a\x56\x37')+'\x67');function _0x268f52(_0x281a2f){const _0x4cc99e=_0x29e62a,_0x5d86a5={'\x55\x43\x55\x6d\x50':function(_0x559d42,_0x3436f9){return _0x559d42(_0x3436f9);},'\x57\x6b\x46\x59\x64':function(_0x4d8cea,_0x3dcd6a){return _0x4d8cea(_0x3dcd6a);},'\x53\x44\x5a\x70\x48':_0x4cc99e(0x81,'\x47\x76\x59\x73')},_0x41807a=_0x281a2f&&_0x281a2f[_0x4cc99e(0xb7,'\x31\x4b\x25\x23')]?_0x5d86a5[_0x4cc99e(0xdd,'\x47\x76\x59\x73')](String,_0x281a2f[_0x4cc99e(0xb5,'\x48\x49\x4b\x68')]):'',_0x47d1fe=_0x281a2f&&_0x281a2f[_0x4cc99e(0x82,'\x34\x4f\x32\x23')]?_0x5d86a5[_0x4cc99e(0x91,'\x62\x52\x59\x37')](String,_0x281a2f[_0x4cc99e(0x90,'\x55\x38\x65\x5b')]):'',_0x125f54=_0x281a2f&&_0x281a2f[_0x4cc99e(0xac,'\x57\x57\x43\x50')+_0x4cc99e(0xcc,'\x56\x49\x4a\x34')]?_0x5d86a5[_0x4cc99e(0xa2,'\x21\x54\x4b\x42')](String,_0x281a2f[_0x4cc99e(0xab,'\x50\x62\x68\x5d')+_0x4cc99e(0xb3,'\x44\x39\x6c\x29')]):'';return[_0x41807a,_0x47d1fe,_0x125f54]['\x66\x69\x6c\x74\x65\x72'](Boolean)['\x6a\x6f\x69\x6e']('\x2f')||_0x5d86a5[_0x4cc99e(0xa7,'\x42\x28\x30\x37')];}function _0x379cf4(_0x144741,_0x45ba2e){const _0x45a3a2=_0x29e62a,_0x3b8dbc={'\x78\x78\x44\x69\x6d':function(_0x511038,_0x51a7c7){return _0x511038===_0x51a7c7;},'\x53\x4d\x50\x56\x6d':function(_0x23a89f,_0x2fbaa0){return _0x23a89f(_0x2fbaa0);},'\x5a\x5a\x79\x69\x57':function(_0x460e81,_0x494dd5){return _0x460e81(_0x494dd5);},'\x59\x58\x54\x77\x53':function(_0x29e49e,_0x3d1a8d){return _0x29e49e<=_0x3d1a8d;},'\x7a\x43\x51\x47\x4b':function(_0x2e9069,_0x5ed34d){return _0x2e9069===_0x5ed34d;},'\x72\x54\x69\x6f\x64':function(_0x130a5c,_0x1f5058){return _0x130a5c===_0x1f5058;},'\x5a\x4e\x56\x67\x71':_0x45a3a2(0xc7,'\x78\x54\x35\x4b'),'\x46\x69\x58\x79\x57':function(_0x2253d5,_0x38d610){return _0x2253d5===_0x38d610;},'\x66\x59\x4b\x55\x43':function(_0x5d531e,_0x39b46d){return _0x5d531e(_0x39b46d);},'\x6a\x66\x56\x44\x66':function(_0x4ad410,_0x4e1007){return _0x4ad410(_0x4e1007);}};if(!_0x144741||!Array[_0x45a3a2(0x8b,'\x45\x38\x41\x58')](_0x144741[_0x45a3a2(0xd4,'\x6c\x49\x75\x6e')+_0x45a3a2(0xbb,'\x42\x4d\x6e\x5a')]))return 0x1a7e+0x1*0x1208+-0x1643*0x2;const _0xe3d156=_0x3b8dbc[_0x45a3a2(0xc9,'\x66\x59\x2a\x72')](_0x268f52,_0x45ba2e),_0x1c20d2=_0x144741[_0x45a3a2(0x85,'\x56\x49\x4a\x34')+_0x45a3a2(0xd1,'\x45\x35\x51\x34')][_0x45a3a2(0x93,'\x6a\x66\x45\x2a')](function(_0x2144df){const _0x12bd06=_0x45a3a2,_0x2e3d0b={'\x56\x6d\x56\x78\x52':function(_0x3160f7,_0x923fe7){const _0x2c3fe3=_0x6994;return _0x3b8dbc[_0x2c3fe3(0xa9,'\x37\x23\x74\x25')](_0x3160f7,_0x923fe7);}};if(_0x3b8dbc[_0x12bd06(0xae,'\x75\x21\x77\x23')](_0x3b8dbc[_0x12bd06(0xc5,'\x28\x74\x2a\x29')],_0x3b8dbc[_0x12bd06(0x84,'\x45\x38\x41\x58')]))return _0x2144df&&_0x3b8dbc['\x46\x69\x58\x79\x57'](_0x2144df['\x63\x6f\x6e\x74\x65\x78\x74'],_0xe3d156);else{if(!_0x1de587||!_0x25f52d[_0x12bd06(0x89,'\x79\x30\x41\x77')](_0x3813f7[_0x12bd06(0xa3,'\x45\x38\x41\x58')+_0x12bd06(0xc2,'\x50\x62\x68\x5d')])||_0x3b8dbc[_0x12bd06(0x8f,'\x6a\x66\x45\x2a')](_0x5b636c[_0x12bd06(0x92,'\x55\x38\x65\x5b')+'\x69\x63\x5f\x6d\x61\x72\x6b\x73'][_0x12bd06(0xc8,'\x6a\x66\x45\x2a')],-0x1*-0xcfb+0x22*0x122+-0x337f))return![];const _0x29701c=_0x3b8dbc['\x53\x4d\x50\x56\x6d'](_0x1d57ab,_0x3b9319),_0x95bf36=_0x130edc[_0x12bd06(0xd9,'\x79\x32\x44\x6d')+_0x12bd06(0xc1,'\x4e\x38\x21\x5b')][_0x12bd06(0xa8,'\x50\x62\x68\x5d')](function(_0x410674){const _0x266d49=_0x12bd06;return _0x410674&&_0x2e3d0b[_0x266d49(0x8e,'\x42\x28\x30\x37')](_0x410674['\x63\x6f\x6e\x74\x65\x78\x74'],_0x29701c);});if(!_0x95bf36)return![];const _0x3cb75d=_0x3b8dbc[_0x12bd06(0xdc,'\x48\x24\x46\x77')](_0x20149c,_0x95bf36[_0x12bd06(0x83,'\x34\x4f\x32\x23')]);if(!_0x5a6e5d[_0x12bd06(0xb2,'\x62\x32\x4c\x6c')](_0x3cb75d))return![];return _0x3b8dbc[_0x12bd06(0x9c,'\x45\x35\x51\x34')](_0x3cb75d,_0x21dde8[_0x12bd06(0xb0,'\x36\x61\x54\x58')+'\x47\x45\x4e\x45\x54\x49\x43\x5f'+_0x12bd06(0x9d,'\x31\x4b\x25\x23')+'\x53\x54']);}});return _0x1c20d2?_0x3b8dbc[_0x45a3a2(0x96,'\x42\x28\x30\x37')](Number,_0x1c20d2[_0x45a3a2(0x83,'\x34\x4f\x32\x23')])||-0x70*-0x35+0x2165+-0x3895:-0xfa4+0xfa7+0x3*-0x1;}function _0x50ee13(_0x467c95,_0x5beb40){const _0x1693ea=_0x29e62a,_0x10b989={'\x44\x45\x69\x6a\x70':function(_0x11fa43,_0x5d5dda){return _0x11fa43===_0x5d5dda;},'\x48\x51\x4f\x42\x68':function(_0x21df5e,_0x125237){return _0x21df5e===_0x125237;},'\x54\x63\x6e\x77\x54':function(_0x4efbed,_0xf4dd61){return _0x4efbed(_0xf4dd61);},'\x6d\x76\x72\x74\x64':function(_0xc571c5,_0x3515e2){return _0xc571c5(_0x3515e2);}};if(!_0x467c95||!Array[_0x1693ea(0x8c,'\x79\x32\x44\x6d')](_0x467c95[_0x1693ea(0x94,'\x42\x4d\x6e\x5a')+_0x1693ea(0x99,'\x61\x58\x74\x29')])||_0x10b989['\x48\x51\x4f\x42\x68'](_0x467c95[_0x1693ea(0x8a,'\x37\x23\x74\x25')+_0x1693ea(0x95,'\x57\x57\x43\x50')][_0x1693ea(0xd3,'\x54\x78\x30\x57')],0x212a+-0xa59+0x63*-0x3b))return![];const _0x22efa6=_0x10b989[_0x1693ea(0xd7,'\x32\x40\x66\x6f')](_0x268f52,_0x5beb40),_0x2d8763=_0x467c95['\x65\x70\x69\x67\x65\x6e\x65\x74'+_0x1693ea(0xca,'\x38\x37\x50\x51')]['\x66\x69\x6e\x64'](function(_0x5b8974){const _0x17be49=_0x1693ea;return _0x5b8974&&_0x10b989[_0x17be49(0x97,'\x37\x23\x74\x25')](_0x5b8974[_0x17be49(0xce,'\x62\x32\x4c\x6c')],_0x22efa6);});if(!_0x2d8763)return![];const _0x1dc53d=_0x10b989[_0x1693ea(0xaf,'\x32\x5d\x4e\x47')](Number,_0x2d8763[_0x1693ea(0xbf,'\x37\x23\x74\x25')]);if(!Number[_0x1693ea(0xb8,'\x51\x32\x39\x33')](_0x1dc53d))return![];return _0x1dc53d<=_0x22955a[_0x1693ea(0xb1,'\x31\x4b\x25\x23')+_0x1693ea(0xbe,'\x48\x24\x46\x77')+_0x1693ea(0xcf,'\x6a\x72\x40\x61')+'\x53\x54'];}function _0x6994(_0x51e387,_0x5d9dfd){_0x51e387=_0x51e387-(-0x1*0x2031+0x9ec+0x16c5);const _0x2f9911=_0x2314();let _0x4d3a07=_0x2f9911[_0x51e387];if(_0x6994['\x44\x6e\x49\x74\x72\x76']===undefined){var _0x37c6a0=function(_0x3c0b31){const _0x428fc8='\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 _0x254ca4='',_0x5b225d='',_0x1fb0f4=_0x254ca4+_0x37c6a0,_0x541ac3=(''+function(){return-0x21aa+0x9*0x1d7+0x111b;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x46b*0x4+-0xd*0x265+0xd76);for(let _0xf6a33f=0x1513+-0x948+-0xbcb*0x1,_0x1b2406,_0x61f682,_0x458ef4=0x15bb+0x7c*-0x6+-0x12d3;_0x61f682=_0x3c0b31['\x63\x68\x61\x72\x41\x74'](_0x458ef4++);~_0x61f682&&(_0x1b2406=_0xf6a33f%(-0x75c+-0xf2+0x429*0x2)?_0x1b2406*(0xa45*-0x1+-0x23f1+0x2e76)+_0x61f682:_0x61f682,_0xf6a33f++%(0x2227*-0x1+-0xc27+0x2e52))?_0x254ca4+=_0x541ac3||_0x1fb0f4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x458ef4+(0xac7+-0x1*0x671+-0x44c))-(0x1*0x236b+0x26fc+-0x4a5d*0x1)!==0xe27+0x1*0x6f1+0x8*-0x2a3?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x11b9+0x1*0x1c9b+-0x1*0x9e3&_0x1b2406>>(-(-0x11*0x36+-0x13ba+0xba9*0x2)*_0xf6a33f&-0xf08+0x9bd+-0x1*-0x551)):_0xf6a33f:0x1*-0x229b+-0x1261+-0x4*-0xd3f){_0x61f682=_0x428fc8['\x69\x6e\x64\x65\x78\x4f\x66'](_0x61f682);}for(let _0xe17224=-0x14bb+0x35*0x9+0x12de,_0x5f2aba=_0x254ca4['\x6c\x65\x6e\x67\x74\x68'];_0xe17224<_0x5f2aba;_0xe17224++){_0x5b225d+='\x25'+('\x30\x30'+_0x254ca4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xe17224)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x9e+-0x6c5*-0x2+0x2*-0x70c))['\x73\x6c\x69\x63\x65'](-(0x2632+0x254e+-0x4b7e));}return decodeURIComponent(_0x5b225d);};const _0x4e49d8=function(_0x4847be,_0x57b523){let _0xb6bc9d=[],_0x1d99d2=-0x3*-0x1ec+0x1*-0x18ac+-0x16*-0xdc,_0x2cc21f,_0x3c48e0='';_0x4847be=_0x37c6a0(_0x4847be);let _0x41a894;for(_0x41a894=0xd4e+0x774+-0x14c2;_0x41a894<-0x3*-0x7b1+0xbb+-0x16ce;_0x41a894++){_0xb6bc9d[_0x41a894]=_0x41a894;}for(_0x41a894=0x22*-0x89+-0x5*-0x2e+0x114c;_0x41a894<0x455*-0x5+-0x1*0xb5d+0x1*0x2206;_0x41a894++){_0x1d99d2=(_0x1d99d2+_0xb6bc9d[_0x41a894]+_0x57b523['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x41a894%_0x57b523['\x6c\x65\x6e\x67\x74\x68']))%(-0x648+0x1f9e+-0xe*0x1bd),_0x2cc21f=_0xb6bc9d[_0x41a894],_0xb6bc9d[_0x41a894]=_0xb6bc9d[_0x1d99d2],_0xb6bc9d[_0x1d99d2]=_0x2cc21f;}_0x41a894=0x2d*0xd5+0x5*-0x345+-0x6c*0x32,_0x1d99d2=0x2607+0xa70+0x28d*-0x13;for(let _0x4e03f6=-0x193a+0x1db5+0x47b*-0x1;_0x4e03f6<_0x4847be['\x6c\x65\x6e\x67\x74\x68'];_0x4e03f6++){_0x41a894=(_0x41a894+(0x3d5+0xf70*0x2+-0x22b4))%(-0x63*-0xd+0x316*0x1+-0x71d),_0x1d99d2=(_0x1d99d2+_0xb6bc9d[_0x41a894])%(0x1016+0x1a08+-0x291e),_0x2cc21f=_0xb6bc9d[_0x41a894],_0xb6bc9d[_0x41a894]=_0xb6bc9d[_0x1d99d2],_0xb6bc9d[_0x1d99d2]=_0x2cc21f,_0x3c48e0+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x4847be['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4e03f6)^_0xb6bc9d[(_0xb6bc9d[_0x41a894]+_0xb6bc9d[_0x1d99d2])%(-0x1*-0xa03+-0x20fd+0x17fa)]);}return _0x3c48e0;};_0x6994['\x71\x64\x62\x76\x6a\x58']=_0x4e49d8,_0x6994['\x6b\x6b\x56\x50\x63\x63']={},_0x6994['\x44\x6e\x49\x74\x72\x76']=!![];}const _0x346279=_0x2f9911[0x985*0x1+0x1beb+0x95c*-0x4],_0x2e7b12=_0x51e387+_0x346279,_0x34beb5=_0x6994['\x6b\x6b\x56\x50\x63\x63'][_0x2e7b12];if(!_0x34beb5){if(_0x6994['\x72\x58\x45\x4b\x65\x63']===undefined){const _0x16b9c4=function(_0x465400){this['\x41\x73\x55\x6b\x63\x66']=_0x465400,this['\x59\x43\x68\x5a\x6d\x43']=[0x216*0xd+0x2*-0x6b1+-0xdbb,-0x51f*-0x2+-0x9cf+-0x25*0x3,0x1*0x20d8+-0x478*0x1+-0x1c60],this['\x52\x77\x4f\x4d\x4f\x72']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x78\x6f\x70\x4e\x57\x4a']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x67\x78\x63\x71\x62\x42']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x16b9c4['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x57\x53\x56\x57\x70']=function(){const _0x38e0bc=new RegExp(this['\x78\x6f\x70\x4e\x57\x4a']+this['\x67\x78\x63\x71\x62\x42']),_0x101663=_0x38e0bc['\x74\x65\x73\x74'](this['\x52\x77\x4f\x4d\x4f\x72']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x59\x43\x68\x5a\x6d\x43'][0x7*0x462+0x2266+-0x4113]:--this['\x59\x43\x68\x5a\x6d\x43'][-0x1*0x135+-0x742+-0xc5*-0xb];return this['\x56\x54\x75\x4f\x47\x46'](_0x101663);},_0x16b9c4['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x54\x75\x4f\x47\x46']=function(_0x5b3a7d){if(!Boolean(~_0x5b3a7d))return _0x5b3a7d;return this['\x7a\x44\x6a\x70\x70\x52'](this['\x41\x73\x55\x6b\x63\x66']);},_0x16b9c4['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x7a\x44\x6a\x70\x70\x52']=function(_0x2cc2b1){for(let _0x5851d5=-0x2*0xa7f+-0x1b7e+0x6b*0x74,_0x5e249b=this['\x59\x43\x68\x5a\x6d\x43']['\x6c\x65\x6e\x67\x74\x68'];_0x5851d5<_0x5e249b;_0x5851d5++){this['\x59\x43\x68\x5a\x6d\x43']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x5e249b=this['\x59\x43\x68\x5a\x6d\x43']['\x6c\x65\x6e\x67\x74\x68'];}return _0x2cc2b1(this['\x59\x43\x68\x5a\x6d\x43'][0x177e+0x1fb8+-0x3736*0x1]);},(''+function(){return-0x1*-0xcdb+0x25b6+0xf*-0x35f;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x1045*0x1+0xa3*0x5+-0x1373)&&new _0x16b9c4(_0x6994)['\x6e\x57\x53\x56\x57\x70'](),_0x6994['\x72\x58\x45\x4b\x65\x63']=!![];}_0x4d3a07=_0x6994['\x71\x64\x62\x76\x6a\x58'](_0x4d3a07,_0x5d9dfd),_0x6994['\x6b\x6b\x56\x50\x63\x63'][_0x2e7b12]=_0x4d3a07;}else _0x4d3a07=_0x34beb5;return _0x4d3a07;}const _0xe072a5={};_0xe072a5[_0x29e62a(0xa0,'\x76\x21\x6b\x78')+_0x29e62a(0xb9,'\x42\x69\x74\x43')+'\x74']=_0x268f52,_0xe072a5[_0x29e62a(0x9f,'\x62\x52\x59\x37')+_0x29e62a(0x9e,'\x79\x32\x44\x6d')+'\x73\x74']=_0x379cf4,_0xe072a5[_0x29e62a(0xbd,'\x47\x76\x59\x73')+'\x65\x74\x69\x63\x61\x6c\x6c\x79'+_0x29e62a(0x80,'\x42\x4d\x6e\x5a')+'\x65\x64']=_0x50ee13,module[_0x29e62a(0x88,'\x65\x76\x66\x6b')]=_0xe072a5;
1
+ 'use strict';
2
+
3
+ const cfg = require('../config');
4
+
5
+ function resolveEnvContext(envFingerprint) {
6
+ const platform = envFingerprint && envFingerprint.platform ? String(envFingerprint.platform) : '';
7
+ const arch = envFingerprint && envFingerprint.arch ? String(envFingerprint.arch) : '';
8
+ const nodeVersion = envFingerprint && envFingerprint.node_version ? String(envFingerprint.node_version) : '';
9
+ return [platform, arch, nodeVersion].filter(Boolean).join('/') || 'unknown';
10
+ }
11
+
12
+ function getEpigeneticBoost(gene, envFingerprint) {
13
+ if (!gene || !Array.isArray(gene.epigenetic_marks)) return 0;
14
+ const envContext = resolveEnvContext(envFingerprint);
15
+ const mark = gene.epigenetic_marks.find(function (m) { return m && m.context === envContext; });
16
+ return mark ? Number(mark.boost) || 0 : 0;
17
+ }
18
+
19
+ function isEpigeneticallySuppressed(gene, envFingerprint) {
20
+ if (!gene || !Array.isArray(gene.epigenetic_marks) || gene.epigenetic_marks.length === 0) {
21
+ return false;
22
+ }
23
+ const envContext = resolveEnvContext(envFingerprint);
24
+ const mark = gene.epigenetic_marks.find(function (m) { return m && m.context === envContext; });
25
+ if (!mark) return false;
26
+ const boost = Number(mark.boost);
27
+ if (!Number.isFinite(boost)) return false;
28
+ return boost <= cfg.GENE_EPIGENETIC_HARD_BOOST;
29
+ }
30
+
31
+ module.exports = { resolveEnvContext, getEpigeneticBoost, isEpigeneticallySuppressed };