@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,264 @@
1
- const _0x1be95b=_0x5a6e;(function(_0x32567a,_0x53496f){const _0x457bbc=_0x5a6e,_0x36d819=_0x32567a();while(!![]){try{const _0x1f300a=parseInt(_0x457bbc(0x11e,'\x62\x25\x52\x34'))/(-0x2bf*0x4+-0x1262+0x49*0x67)+-parseInt(_0x457bbc(0x171,'\x4c\x71\x6f\x56'))/(0x1*0xe51+0xc6*0xb+-0x16d1)*(-parseInt(_0x457bbc(0x15f,'\x35\x57\x41\x42'))/(0x23b1+0x5e0+-0x298e))+parseInt(_0x457bbc(0x19f,'\x58\x25\x4c\x66'))/(0x59e+-0x1ab5*0x1+0x151b)+parseInt(_0x457bbc(0x169,'\x63\x39\x5a\x78'))/(0x14ac+-0x7c1*0x5+0x121e)*(parseInt(_0x457bbc(0x1b4,'\x62\x25\x52\x34'))/(-0x9c*-0x1a+0xef3*0x2+0x98*-0x4d))+-parseInt(_0x457bbc(0x1a2,'\x63\x39\x5a\x78'))/(0xc39*0x3+-0xd*-0x1a8+-0x3a2c)+parseInt(_0x457bbc(0x149,'\x5e\x21\x30\x41'))/(0x1907+0xa17*0x2+-0x2d2d)*(-parseInt(_0x457bbc(0x1cb,'\x58\x25\x4c\x66'))/(0x1*0xf7+0x5b9+0xd*-0x83))+-parseInt(_0x457bbc(0x1d4,'\x36\x7a\x4a\x52'))/(0x301*0xc+0xdca+-0x31cc);if(_0x1f300a===_0x53496f)break;else _0x36d819['push'](_0x36d819['shift']());}catch(_0x291a4e){_0x36d819['push'](_0x36d819['shift']());}}}(_0x3f64,-0x1*-0x89425+0x2e7*0x513+-0xda60e));const _0x361a3a=(function(){const _0x18d760=_0x5a6e,_0x1cb666={'\x58\x76\x45\x72\x73':function(_0x3130c9,_0x27379d){return _0x3130c9(_0x27379d);},'\x64\x56\x5a\x46\x44':_0x18d760(0x123,'\x36\x7a\x4a\x52'),'\x66\x67\x59\x63\x61':_0x18d760(0x10e,'\x23\x5e\x41\x77')};let _0x1861b5=!![];return function(_0x48a74d,_0x553342){const _0x2bbc5a=_0x18d760,_0x3ea950={};_0x3ea950[_0x2bbc5a(0x12f,'\x62\x25\x52\x34')]=_0x1cb666[_0x2bbc5a(0x1c4,'\x35\x64\x74\x33')];const _0x4fc65e=_0x3ea950;if(_0x2bbc5a(0x121,'\x35\x64\x74\x33')===_0x1cb666[_0x2bbc5a(0x13d,'\x47\x39\x78\x48')])return _0x1cb666[_0x2bbc5a(0x1e3,'\x6d\x42\x32\x5d')](_0x1fe5f9,_0x49bca7[_0x2bbc5a(0x146,'\x63\x39\x5a\x78')+_0x2bbc5a(0x132,'\x36\x7a\x4a\x52')](_0xffc826));else{const _0x2c0b59=_0x1861b5?function(){const _0x4d79c7=_0x2bbc5a;if(_0x553342){if(_0x4fc65e[_0x4d79c7(0x19d,'\x61\x25\x6c\x69')]!==_0x4fc65e[_0x4d79c7(0x16b,'\x36\x5d\x79\x4c')])return'';else{const _0x5ad4e5=_0x553342[_0x4d79c7(0x178,'\x35\x64\x74\x33')](_0x48a74d,arguments);return _0x553342=null,_0x5ad4e5;}}}:function(){};return _0x1861b5=![],_0x2c0b59;}};}()),_0x1a708d=_0x361a3a(this,function(){const _0x214fd2=_0x5a6e,_0x55e1b1={};_0x55e1b1[_0x214fd2(0x1b8,'\x30\x62\x25\x4a')]=_0x214fd2(0x13a,'\x44\x6d\x78\x55')+_0x214fd2(0x173,'\x62\x25\x52\x34');const _0x24bef1=_0x55e1b1;return _0x1a708d['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x214fd2(0x12a,'\x57\x36\x28\x6c')](_0x24bef1['\x67\x41\x71\x42\x44'])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x214fd2(0x159,'\x5b\x49\x2a\x28')+_0x214fd2(0x15a,'\x63\x39\x5a\x78')](_0x1a708d)[_0x214fd2(0x147,'\x5e\x21\x30\x41')](_0x24bef1['\x67\x41\x71\x42\x44']);});_0x1a708d();'use strict';const _0x3d62a7=require('\x66\x73'),_0x3fb1c5=require(_0x1be95b(0x205,'\x72\x69\x48\x4e')),_0x19cbf5=require('\x6f\x73');function _0x5f37a9(_0x453513){const _0x2e1027=_0x1be95b,_0x57b43e={'\x6b\x53\x44\x71\x57':function(_0x28b9f6,_0x4c876e){return _0x28b9f6(_0x4c876e);},'\x53\x4b\x51\x64\x6d':function(_0x125d50,_0x23ef0e){return _0x125d50!==_0x23ef0e;},'\x61\x52\x76\x6a\x64':_0x2e1027(0x13e,'\x35\x57\x41\x42'),'\x68\x46\x78\x5a\x50':function(_0xa408fc,_0x16d348){return _0xa408fc!=_0x16d348;},'\x68\x79\x62\x44\x65':_0x2e1027(0x202,'\x63\x39\x5a\x78'),'\x75\x72\x72\x50\x59':_0x2e1027(0x14b,'\x4c\x71\x6f\x56'),'\x56\x62\x47\x49\x61':_0x2e1027(0x1eb,'\x2a\x26\x39\x6d'),'\x49\x6b\x55\x71\x6c':_0x2e1027(0x18e,'\x54\x29\x52\x46'),'\x48\x4c\x44\x72\x75':function(_0x5dcda4,_0x2a4fb3){return _0x5dcda4===_0x2a4fb3;},'\x7a\x4f\x71\x7a\x59':'\x77\x69\x6e\x33\x32','\x61\x74\x63\x41\x69':_0x2e1027(0x1f1,'\x35\x57\x41\x42'),'\x66\x56\x58\x6a\x4b':_0x2e1027(0x155,'\x2a\x26\x39\x6d'),'\x50\x5a\x41\x42\x68':_0x2e1027(0x195,'\x33\x4d\x50\x48'),'\x64\x48\x6c\x68\x4c':'\x63\x6c\x61\x75\x64\x65\x2d\x63'+_0x2e1027(0x14f,'\x2a\x26\x39\x6d'),'\x4b\x50\x5a\x53\x70':_0x2e1027(0x1a0,'\x63\x39\x5a\x78'),'\x4d\x6d\x57\x72\x70':'\x77\x6f\x72\x6b\x73\x70\x61\x63'+_0x2e1027(0x1fe,'\x21\x57\x73\x43')},_0x33dd05=_0x453513&&_0x57b43e[_0x2e1027(0x1a4,'\x42\x65\x70\x7a')](_0x453513[_0x2e1027(0x1d3,'\x29\x61\x79\x50')+_0x2e1027(0x148,'\x61\x25\x6c\x69')+_0x2e1027(0x1bc,'\x4c\x71\x6f\x56')+'\x72\x69\x64\x65'],null)?_0x453513['\x63\x75\x72\x73\x6f\x72\x54\x72'+_0x2e1027(0x148,'\x61\x25\x6c\x69')+_0x2e1027(0x1cd,'\x24\x39\x6c\x68')+_0x2e1027(0x158,'\x42\x65\x70\x7a')]:process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR||'';if(_0x33dd05)return[_0x33dd05];const _0x2cb942=_0x453513&&_0x453513[_0x2e1027(0x1bb,'\x61\x25\x6c\x69')]||_0x19cbf5[_0x2e1027(0x139,'\x4c\x66\x41\x72')](),_0xb544bf=[_0x3fb1c5[_0x2e1027(0x19a,'\x40\x35\x49\x39')](_0x2cb942,_0x57b43e[_0x2e1027(0x11d,'\x62\x25\x52\x34')],_0x57b43e['\x75\x72\x72\x50\x59']),_0x3fb1c5[_0x2e1027(0x1da,'\x38\x39\x42\x78')](_0x2cb942,_0x57b43e[_0x2e1027(0x142,'\x5a\x2a\x56\x69')],_0x57b43e[_0x2e1027(0x1c5,'\x57\x36\x28\x6c')])];if(_0x57b43e[_0x2e1027(0x199,'\x69\x38\x68\x41')](process[_0x2e1027(0x186,'\x6d\x42\x32\x5d')],_0x57b43e[_0x2e1027(0x191,'\x4e\x49\x6a\x76')])){const _0xb5b118=process.env.APPDATA||_0x3fb1c5[_0x2e1027(0x1e6,'\x35\x64\x74\x33')](_0x2cb942,_0x57b43e[_0x2e1027(0x16f,'\x74\x30\x65\x48')],_0x57b43e[_0x2e1027(0x1f4,'\x74\x30\x65\x48')]);_0xb544bf[_0x2e1027(0x181,'\x55\x6e\x56\x47')](_0x3fb1c5[_0x2e1027(0x1a5,'\x36\x5d\x79\x4c')](_0xb5b118,_0x57b43e[_0x2e1027(0x1a8,'\x40\x35\x49\x39')],_0x2e1027(0x17a,'\x38\x39\x42\x78')),_0x3fb1c5[_0x2e1027(0x198,'\x54\x29\x52\x46')](_0xb5b118,_0x57b43e[_0x2e1027(0x1e2,'\x36\x5d\x79\x4c')],_0x2e1027(0x1ff,'\x78\x44\x6a\x59')),_0x3fb1c5[_0x2e1027(0x19b,'\x6d\x42\x32\x5d')](_0xb5b118,_0x57b43e[_0x2e1027(0x16c,'\x6d\x42\x32\x5d')],'\x55\x73\x65\x72',_0x57b43e['\x4d\x6d\x57\x72\x70']));}return _0xb544bf['\x66\x69\x6c\x74\x65\x72'](_0x3e37b4=>{const _0x10bbef=_0x2e1027,_0x406974={'\x6c\x4d\x58\x58\x54':function(_0x1c4d05,_0x8c71b8){const _0x582fc8=_0x5a6e;return _0x57b43e[_0x582fc8(0x1e7,'\x34\x37\x75\x43')](_0x1c4d05,_0x8c71b8);}};if(_0x57b43e['\x53\x4b\x51\x64\x6d'](_0x57b43e[_0x10bbef(0x179,'\x71\x77\x56\x56')],_0x57b43e[_0x10bbef(0x1c9,'\x21\x57\x73\x43')]))return _0x406974[_0x10bbef(0x133,'\x2a\x26\x39\x6d')](_0x481a7d,_0x50e5aa[_0x10bbef(0x140,'\x24\x39\x6c\x68')+_0x10bbef(0x193,'\x29\x61\x79\x50')][_0x10bbef(0x190,'\x38\x39\x42\x78')](_0x4ed1f4));else try{return _0x3d62a7[_0x10bbef(0x161,'\x29\x6a\x4b\x44')+'\x6e\x63'](_0x3e37b4);}catch{return![];}});}function _0x4cfff0(_0x12a9c9,_0x17fb64){const _0xa2631f=_0x1be95b,_0x352e91={'\x63\x76\x6c\x6a\x54':function(_0x117b49,_0x3a87fb){return _0x117b49>_0x3a87fb;},'\x56\x52\x70\x4c\x48':_0xa2631f(0x16e,'\x4b\x69\x29\x5a'),'\x78\x6c\x54\x44\x70':_0xa2631f(0x13c,'\x78\x44\x6a\x59'),'\x70\x64\x4d\x46\x6d':function(_0x275ead,_0x34d91d){return _0x275ead!==_0x34d91d;},'\x45\x59\x6a\x66\x72':_0xa2631f(0x180,'\x47\x39\x78\x48')+'\x73','\x7a\x42\x51\x50\x68':function(_0x971a1e,_0x3ff0d0){return _0x971a1e!==_0x3ff0d0;},'\x53\x4b\x51\x47\x52':_0xa2631f(0x167,'\x24\x39\x6c\x68')+_0xa2631f(0x14d,'\x21\x57\x73\x43'),'\x63\x70\x68\x45\x6e':function(_0xd9e95f,_0x49f6fa,_0x5bbe24){return _0xd9e95f(_0x49f6fa,_0x5bbe24);},'\x69\x6a\x52\x4d\x5a':function(_0x34c778,_0x3d36e2){return _0x34c778+_0x3d36e2;}},_0x41f07b=[];function _0x18a30f(_0x1c9ae8,_0x1d9fa4){const _0x273b92=_0xa2631f;if(_0x352e91[_0x273b92(0x1d5,'\x2a\x26\x39\x6d')](_0x1d9fa4,_0x17fb64))return;let _0x172d05;try{const _0x4020ad={};_0x4020ad['\x77\x69\x74\x68\x46\x69\x6c\x65'+_0x273b92(0x1a3,'\x21\x57\x73\x43')]=!![],_0x172d05=_0x3d62a7[_0x273b92(0x117,'\x5d\x2a\x32\x4e')+_0x273b92(0x163,'\x36\x5d\x79\x4c')](_0x1c9ae8,_0x4020ad);}catch{return;}for(const _0x2bbaa8 of _0x172d05){if(_0x2bbaa8['\x69\x73\x46\x69\x6c\x65']()&&(_0x2bbaa8['\x6e\x61\x6d\x65'][_0x273b92(0x1b2,'\x55\x42\x2a\x5a')](_0x352e91[_0x273b92(0x160,'\x38\x34\x61\x52')])||_0x2bbaa8[_0x273b92(0x185,'\x4b\x69\x29\x5a')][_0x273b92(0x1c7,'\x5e\x21\x30\x41')](_0x352e91[_0x273b92(0x1f0,'\x36\x7a\x4a\x52')]))){const _0x581640=_0x3fb1c5['\x6a\x6f\x69\x6e'](_0x1c9ae8,_0x2bbaa8[_0x273b92(0x1ee,'\x63\x39\x5a\x78')]);try{const _0x3a9fa0=_0x3d62a7[_0x273b92(0x18a,'\x51\x50\x4a\x6a')](_0x581640);_0x41f07b[_0x273b92(0x1dd,'\x61\x25\x6c\x69')]({'\x70\x61\x74\x68':_0x581640,'\x6e\x61\x6d\x65':_0x2bbaa8[_0x273b92(0x150,'\x74\x30\x65\x48')],'\x74\x69\x6d\x65':_0x3a9fa0[_0x273b92(0x143,'\x5d\x2a\x32\x4e')][_0x273b92(0x1fb,'\x47\x39\x78\x48')](),'\x73\x69\x7a\x65':_0x3a9fa0[_0x273b92(0x187,'\x61\x25\x6c\x69')]});}catch{}}else _0x2bbaa8[_0x273b92(0x12b,'\x69\x38\x68\x41')+_0x273b92(0x18d,'\x5b\x49\x2a\x28')]()&&_0x352e91[_0x273b92(0x1ec,'\x38\x39\x42\x78')](_0x2bbaa8['\x6e\x61\x6d\x65'],_0x352e91[_0x273b92(0x11f,'\x38\x39\x42\x78')])&&_0x352e91[_0x273b92(0x14a,'\x6e\x44\x47\x6d')](_0x2bbaa8[_0x273b92(0x1b0,'\x4c\x71\x6f\x56')],_0x352e91[_0x273b92(0x1d7,'\x57\x36\x28\x6c')])&&_0x352e91[_0x273b92(0x1e8,'\x29\x61\x79\x50')](_0x18a30f,_0x3fb1c5[_0x273b92(0x18b,'\x33\x4d\x50\x48')](_0x1c9ae8,_0x2bbaa8[_0x273b92(0x1ee,'\x63\x39\x5a\x78')]),_0x352e91[_0x273b92(0x1b7,'\x21\x57\x73\x43')](_0x1d9fa4,-0x2b*0x6f+-0xa96+0x1d3c));}}return _0x18a30f(_0x12a9c9,0x26c*-0xc+0xb*0x59+0x47*0x5b),_0x41f07b;}function _0x5625cb(_0x2c82a5,_0x33c948){const _0x372b2c=_0x1be95b,_0x4eb870={};_0x4eb870[_0x372b2c(0x138,'\x2a\x26\x39\x6d')]=_0x372b2c(0x122,'\x71\x38\x68\x42');const _0x48f89b=_0x4eb870;if(_0x33c948===undefined)_0x33c948=-0x1*0xc0b+-0x269d+0x5*0x1088;try{if(!_0x3d62a7[_0x372b2c(0x1b3,'\x47\x39\x78\x48')+'\x6e\x63'](_0x2c82a5))return'';const _0x463653=_0x3d62a7[_0x372b2c(0x174,'\x5e\x21\x30\x41')](_0x2c82a5,'\x72'),_0x899fbf=Buffer[_0x372b2c(0x1f9,'\x29\x6a\x4b\x44')](_0x33c948),_0x38c1d6=_0x3d62a7[_0x372b2c(0x1dc,'\x5d\x2a\x32\x4e')](_0x463653,_0x899fbf,0x1c9+0x4*-0x19f+0x4b3,_0x33c948,-0x33d*-0x2+0x1fa+0x43a*-0x2);return _0x3d62a7[_0x372b2c(0x15c,'\x6d\x42\x32\x5d')+'\x63'](_0x463653),_0x899fbf[_0x372b2c(0x127,'\x58\x25\x4c\x66')](0x16a2+0xc0*-0x1f+0x9e*0x1,_0x38c1d6)[_0x372b2c(0x18f,'\x78\x44\x6a\x59')](_0x48f89b[_0x372b2c(0x168,'\x72\x69\x48\x4e')]);}catch(_0x5c82fa){return'';}}function _0x5ca9da(_0x2d56ac,_0x4ff986){const _0x4eb76f=_0x1be95b,_0x1dec51={};_0x1dec51[_0x4eb76f(0x16a,'\x4c\x71\x6f\x56')]=function(_0x122ad6,_0x1fae9a){return _0x122ad6!==_0x1fae9a;},_0x1dec51[_0x4eb76f(0x12d,'\x36\x5d\x79\x4c')]=_0x4eb76f(0x1ce,'\x6d\x42\x32\x5d'),_0x1dec51[_0x4eb76f(0x194,'\x6d\x42\x32\x5d')]=function(_0x35dd5f,_0x539da3){return _0x35dd5f===_0x539da3;},_0x1dec51[_0x4eb76f(0x153,'\x61\x25\x6c\x69')]=function(_0x4910ef,_0x43b1c0){return _0x4910ef-_0x43b1c0;};const _0x3f0f6d=_0x1dec51;if(_0x4ff986===undefined)_0x4ff986=-0x4b47+0x11*-0x269+-0x26d4*-0x4;try{if(_0x3f0f6d[_0x4eb76f(0x1c3,'\x4b\x69\x29\x5a')](_0x3f0f6d[_0x4eb76f(0x1af,'\x71\x77\x56\x56')],_0x4eb76f(0x11a,'\x4e\x49\x6a\x76'))){if(!_0x3d62a7['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x2d56ac))return _0x4eb76f(0x1c8,'\x34\x37\x75\x43')+'\x5d\x20'+_0x2d56ac;const _0x324222=_0x3d62a7[_0x4eb76f(0x1de,'\x38\x34\x61\x52')](_0x2d56ac),_0x49d981=_0x324222[_0x4eb76f(0x170,'\x39\x72\x59\x6e')];if(_0x3f0f6d[_0x4eb76f(0x1f7,'\x36\x5d\x79\x4c')](_0x49d981,-0x25cf*0x1+-0x1*-0x848+0x1d87))return'';const _0x4af35f=Math[_0x4eb76f(0x1b9,'\x40\x35\x49\x39')](_0x4ff986,_0x49d981),_0x15f26a=Buffer['\x61\x6c\x6c\x6f\x63'](_0x4af35f),_0x1b8f7d=_0x3d62a7['\x6f\x70\x65\x6e\x53\x79\x6e\x63'](_0x2d56ac,'\x72');return _0x3d62a7[_0x4eb76f(0x10f,'\x61\x25\x6c\x69')](_0x1b8f7d,_0x15f26a,0x1e64+0xd*-0x15a+0x6*-0x223,_0x4af35f,Math[_0x4eb76f(0x1d9,'\x39\x72\x59\x6e')](0xe3a+-0x1*-0x74c+-0x1586,_0x3f0f6d[_0x4eb76f(0x1bf,'\x62\x25\x52\x34')](_0x49d981,_0x4af35f))),_0x3d62a7[_0x4eb76f(0x177,'\x36\x7a\x4a\x52')+'\x63'](_0x1b8f7d),_0x15f26a[_0x4eb76f(0x182,'\x5e\x21\x30\x41')]('\x75\x74\x66\x38');}else{const _0x23c3ca=_0xdbb74c[_0x4eb76f(0x166,'\x78\x44\x6a\x59')](_0x3539d7,_0x9ed154[_0x4eb76f(0x16d,'\x28\x28\x46\x4e')]);try{const _0x1f605f=_0x205072['\x73\x74\x61\x74\x53\x79\x6e\x63'](_0x23c3ca);_0x3a0504[_0x4eb76f(0x1ef,'\x54\x29\x52\x46')]({'\x70\x61\x74\x68':_0x23c3ca,'\x6e\x61\x6d\x65':_0x2ebb72[_0x4eb76f(0x1ad,'\x21\x57\x73\x43')],'\x74\x69\x6d\x65':_0x1f605f[_0x4eb76f(0x1ab,'\x71\x38\x68\x42')][_0x4eb76f(0x1fa,'\x5e\x21\x30\x41')](),'\x73\x69\x7a\x65':_0x1f605f[_0x4eb76f(0x1b6,'\x6d\x42\x32\x5d')]});}catch{}}}catch(_0x3dac16){return _0x4eb76f(0x141,'\x36\x5d\x79\x4c')+_0x4eb76f(0x114,'\x44\x6d\x78\x55')+_0x2d56ac+'\x3a\x20'+_0x3dac16[_0x4eb76f(0x151,'\x30\x62\x25\x4a')]+'\x5d';}}function _0x88e3dd(_0x34d722){const _0x4a9f4d=_0x1be95b,_0x254154={'\x58\x58\x56\x67\x66':function(_0x498555,_0x5bedc9){return _0x498555(_0x5bedc9);}};return _0x254154[_0x4a9f4d(0x134,'\x4b\x69\x29\x5a')](String,_0x34d722||'')[_0x4a9f4d(0x144,'\x71\x77\x56\x56')](/[\\/]+$/,'');}function _0x39cc2b(_0x165f56){const _0x3efaea=_0x1be95b,_0x5408a7={'\x53\x4f\x53\x64\x59':function(_0x34592d,_0x366a4a){return _0x34592d(_0x366a4a);},'\x6f\x7a\x62\x75\x42':_0x3efaea(0x135,'\x6e\x44\x47\x6d')+_0x3efaea(0x156,'\x44\x6d\x78\x55'),'\x68\x79\x4a\x42\x7a':function(_0x48960b,_0x408290){return _0x48960b!==_0x408290;},'\x51\x54\x59\x66\x77':_0x3efaea(0x1d2,'\x55\x6e\x56\x47'),'\x79\x62\x53\x7a\x4c':_0x3efaea(0x152,'\x55\x42\x2a\x5a'),'\x62\x6c\x4b\x68\x7a':_0x3efaea(0x15d,'\x71\x77\x56\x56'),'\x48\x6e\x4f\x73\x4c':function(_0x4cec96,_0x4ab081){return _0x4cec96===_0x4ab081;},'\x41\x61\x78\x6f\x68':_0x3efaea(0x1e4,'\x29\x6a\x4b\x44'),'\x4c\x4d\x52\x75\x70':function(_0x413e6e,_0x2c6156){return _0x413e6e!==_0x2c6156;},'\x78\x71\x47\x42\x49':_0x3efaea(0x131,'\x29\x61\x79\x50'),'\x4e\x6f\x53\x41\x49':_0x3efaea(0x11b,'\x35\x64\x74\x33')};let _0xeb5451;try{_0xeb5451=_0x88e3dd(_0x3fb1c5[_0x3efaea(0x1b5,'\x44\x6d\x78\x55')](_0x165f56));}catch{return'';}if(!_0xeb5451)return'';try{return _0x5408a7[_0x3efaea(0x17c,'\x54\x29\x52\x46')](_0x5408a7[_0x3efaea(0x119,'\x55\x42\x2a\x5a')],_0x5408a7[_0x3efaea(0x184,'\x5a\x2a\x56\x69')])?_0x5408a7[_0x3efaea(0x110,'\x24\x39\x6c\x68')](_0x88e3dd,_0x3d62a7[_0x3efaea(0x1f8,'\x21\x57\x73\x43')+_0x3efaea(0x15e,'\x61\x25\x6c\x69')][_0x3efaea(0x1f2,'\x55\x42\x2a\x5a')](_0xeb5451)):_0x3efaea(0x189,'\x62\x25\x52\x34')+_0x3efaea(0x14c,'\x6a\x76\x5d\x44')+_0xed1a90+'\x3a\x20'+_0x4a7046['\x6d\x65\x73\x73\x61\x67\x65']+'\x5d';}catch{if(_0x5408a7[_0x3efaea(0x1fc,'\x6e\x44\x47\x6d')](_0x5408a7[_0x3efaea(0x14e,'\x6d\x42\x32\x5d')],_0x3efaea(0x1d0,'\x23\x5e\x41\x77')))try{if(_0x5408a7[_0x3efaea(0x200,'\x5b\x49\x2a\x28')](_0x5408a7[_0x3efaea(0x1ae,'\x62\x25\x52\x34')],_0x5408a7['\x41\x61\x78\x6f\x68']))return _0x5408a7[_0x3efaea(0x1c1,'\x4c\x71\x6f\x56')](_0x88e3dd,_0x3d62a7[_0x3efaea(0x204,'\x23\x5e\x41\x77')+_0x3efaea(0x15e,'\x61\x25\x6c\x69')](_0xeb5451));else try{return _0x5408a7[_0x3efaea(0x1a1,'\x51\x50\x4a\x6a')](_0xd1afe3,_0x2269b8[_0x3efaea(0x1a9,'\x57\x36\x28\x6c')+_0x3efaea(0x196,'\x72\x69\x48\x4e')](_0x3442dc));}catch{return _0x192a49;}}catch{return _0x5408a7['\x4c\x4d\x52\x75\x70'](_0x5408a7[_0x3efaea(0x1ed,'\x61\x25\x6c\x69')],_0x5408a7[_0x3efaea(0x1ca,'\x24\x39\x6c\x68')])?_0xeb5451:_0x40d5cc[_0x3efaea(0x157,'\x35\x57\x41\x42')][_0x3efaea(0x120,'\x39\x72\x59\x6e')];}else return _0x37708d[_0x3efaea(0x15b,'\x29\x61\x79\x50')]()[_0x3efaea(0x1f3,'\x68\x34\x37\x5a')](tRYIrC[_0x3efaea(0x1c2,'\x74\x30\x65\x48')])[_0x3efaea(0x113,'\x35\x57\x41\x42')]()[_0x3efaea(0x1b1,'\x21\x57\x73\x43')+_0x3efaea(0x1a7,'\x30\x62\x25\x4a')](_0x5c4a56)[_0x3efaea(0x1cc,'\x39\x72\x59\x6e')](_0x3efaea(0x1ac,'\x29\x6a\x4b\x44')+_0x3efaea(0x1f6,'\x5b\x49\x2a\x28'));}}function _0x21b75d(_0x38b358){const _0x5d140d=_0x1be95b,_0xfbd6e2={'\x4c\x6e\x53\x6b\x67':function(_0x205e98,_0x4fbb00){return _0x205e98(_0x4fbb00);},'\x73\x78\x47\x65\x77':function(_0x52a96a,_0x3ff737){return _0x52a96a||_0x3ff737;},'\x50\x4c\x55\x65\x75':function(_0x3f5236,_0x90d922){return _0x3f5236===_0x90d922;},'\x7a\x56\x53\x66\x5a':'\x56\x62\x58\x64\x64','\x6f\x7a\x75\x63\x76':_0x5d140d(0x17d,'\x23\x5e\x41\x77'),'\x6b\x47\x50\x63\x67':_0x5d140d(0x192,'\x61\x66\x4c\x57'),'\x68\x63\x43\x6b\x52':function(_0x45556c,_0x2846e5){return _0x45556c<_0x2846e5;},'\x52\x5a\x53\x49\x4f':_0x5d140d(0x1c6,'\x6d\x42\x32\x5d'),'\x70\x71\x6e\x50\x68':function(_0x2250e9,_0x1ea15f){return _0x2250e9===_0x1ea15f;},'\x6f\x72\x4a\x54\x66':_0x5d140d(0x206,'\x54\x29\x52\x46')};try{if(_0xfbd6e2[_0x5d140d(0x1be,'\x35\x57\x41\x42')](_0xfbd6e2[_0x5d140d(0x1a6,'\x58\x25\x4c\x66')],_0xfbd6e2['\x6f\x7a\x75\x63\x76']))return amsxPR[_0x5d140d(0x136,'\x68\x34\x37\x5a')](_0x244278,amsxPR['\x73\x78\x47\x65\x77'](_0x3fe71f,''))[_0x5d140d(0x126,'\x28\x28\x46\x4e')](/[\\/]+$/,'');else{if(!_0x38b358[_0x5d140d(0x203,'\x47\x39\x78\x48')](_0xfbd6e2['\x6b\x47\x50\x63\x67']))return null;const _0x33504d=_0x5625cb(_0x38b358,0x12cd*-0x2+-0x237c+-0x7*-0xcba);if(!_0x33504d)return null;const _0xdad88a=_0x33504d[_0x5d140d(0x1db,'\x61\x25\x6c\x69')]('\x0a');for(let _0x4d2827=-0x308+0x251c+-0x2214*0x1;_0xfbd6e2[_0x5d140d(0x154,'\x36\x7a\x4a\x52')](_0x4d2827,Math[_0x5d140d(0x129,'\x36\x7a\x4a\x52')](_0xdad88a[_0x5d140d(0x1d6,'\x6d\x42\x32\x5d')],-0x1532+0x914+0xc23));_0x4d2827++){const _0x6adebb=_0xdad88a[_0x4d2827][_0x5d140d(0x162,'\x5d\x2a\x32\x4e')]();if(!_0x6adebb)continue;let _0x4ce0f8;try{_0x4ce0f8=JSON[_0x5d140d(0x116,'\x28\x28\x46\x4e')](_0x6adebb);}catch{continue;}if(_0x4ce0f8&&_0xfbd6e2[_0x5d140d(0x1ba,'\x54\x29\x52\x46')](typeof _0x4ce0f8,_0xfbd6e2[_0x5d140d(0x118,'\x39\x72\x59\x6e')])){if(_0xfbd6e2['\x50\x4c\x55\x65\x75'](_0x4ce0f8['\x74\x79\x70\x65'],'\x73\x65\x73\x73\x69\x6f\x6e\x5f'+_0x5d140d(0x1ea,'\x71\x38\x68\x42'))&&_0x4ce0f8[_0x5d140d(0x137,'\x63\x39\x5a\x78')]&&_0xfbd6e2[_0x5d140d(0x17e,'\x36\x5d\x79\x4c')](typeof _0x4ce0f8[_0x5d140d(0x13f,'\x72\x69\x48\x4e')][_0x5d140d(0x1bd,'\x78\x44\x6a\x59')],_0x5d140d(0x1e9,'\x36\x5d\x79\x4c')))return _0x4ce0f8[_0x5d140d(0x124,'\x33\x4d\x50\x48')][_0x5d140d(0x17b,'\x61\x66\x4c\x57')];if(_0xfbd6e2[_0x5d140d(0x1aa,'\x6a\x76\x5d\x44')](typeof _0x4ce0f8[_0x5d140d(0x176,'\x5b\x49\x2a\x28')],_0xfbd6e2[_0x5d140d(0x125,'\x23\x5e\x41\x77')]))return _0x4ce0f8[_0x5d140d(0x19e,'\x68\x34\x37\x5a')];}}return null;}}catch{return null;}}function _0x3f64(){const _0x363d7c=['\x57\x34\x4a\x64\x48\x49\x74\x64\x50\x77\x2f\x64\x4f\x47','\x45\x6d\x6f\x4c\x74\x78\x50\x78\x57\x52\x70\x63\x50\x59\x65','\x57\x36\x65\x72\x6b\x65\x70\x64\x55\x4c\x48\x42\x57\x52\x43','\x57\x36\x46\x64\x4a\x62\x6a\x6f\x70\x71','\x57\x4f\x64\x64\x4e\x73\x52\x64\x56\x53\x6f\x63','\x66\x65\x37\x63\x4e\x75\x37\x64\x56\x6d\x6f\x77','\x57\x35\x39\x68\x45\x61\x78\x63\x4c\x67\x37\x64\x4e\x33\x30','\x57\x52\x42\x64\x4a\x6d\x6b\x62\x57\x36\x50\x44\x57\x52\x79\x73\x57\x35\x38','\x6e\x43\x6b\x4f\x42\x63\x65','\x57\x50\x37\x63\x4c\x62\x75\x45\x71\x38\x6f\x64','\x57\x4f\x6c\x64\x4a\x43\x6b\x75\x57\x36\x48\x76','\x57\x50\x5a\x64\x4a\x61\x46\x64\x54\x43\x6f\x32\x57\x52\x76\x43\x57\x35\x53','\x62\x76\x6c\x63\x53\x5a\x57\x30','\x57\x51\x48\x75\x44\x72\x33\x63\x52\x57\x47\x46\x57\x51\x4b\x63\x57\x52\x79\x57\x57\x4f\x46\x63\x56\x57','\x45\x72\x6a\x58\x74\x4a\x62\x78\x77\x38\x6f\x39\x64\x43\x6f\x44\x75\x43\x6b\x56','\x57\x50\x30\x64\x65\x58\x48\x63\x64\x4d\x61\x79','\x62\x43\x6b\x74\x57\x50\x42\x63\x4d\x6d\x6f\x39\x57\x50\x52\x64\x4a\x61','\x77\x38\x6f\x6a\x57\x4f\x76\x2f\x57\x37\x65','\x6b\x59\x70\x63\x4d\x6d\x6f\x6c\x57\x52\x69','\x57\x51\x69\x65\x61\x53\x6b\x30\x75\x63\x53\x43\x57\x50\x47','\x57\x52\x43\x76\x57\x52\x4c\x66\x7a\x47','\x67\x38\x6b\x4b\x57\x50\x70\x63\x49\x53\x6f\x35','\x57\x37\x70\x64\x47\x58\x70\x63\x50\x38\x6b\x5a','\x6a\x43\x6f\x45\x67\x74\x79\x78','\x57\x50\x53\x6a\x6d\x57\x6e\x43\x65\x77\x53\x52','\x57\x35\x52\x63\x47\x53\x6b\x69\x57\x51\x46\x64\x47\x61','\x57\x4f\x78\x64\x4a\x38\x6f\x44\x57\x35\x78\x63\x4b\x43\x6b\x6e\x46\x53\x6f\x6c\x57\x37\x64\x64\x51\x6d\x6f\x63\x70\x71','\x41\x53\x6f\x75\x57\x4f\x7a\x52\x57\x37\x61','\x57\x4f\x79\x34\x57\x4f\x34','\x67\x53\x6f\x74\x65\x71\x75\x64','\x6a\x38\x6b\x34\x74\x6d\x6b\x65','\x57\x37\x56\x64\x4d\x77\x70\x64\x49\x43\x6b\x6b','\x74\x53\x6b\x4d\x44\x66\x62\x54\x6b\x38\x6f\x63','\x57\x51\x56\x64\x4d\x38\x6b\x51\x57\x35\x6a\x6c','\x6b\x73\x46\x63\x4d\x53\x6f\x75\x57\x52\x42\x63\x48\x38\x6b\x45','\x57\x34\x70\x64\x4a\x4b\x75\x30\x78\x57','\x57\x35\x69\x76\x44\x76\x71\x54\x57\x4f\x50\x70\x7a\x57','\x57\x37\x68\x64\x4e\x66\x4b','\x57\x35\x6d\x76\x44\x75\x69\x43\x57\x4f\x43','\x45\x38\x6b\x39\x42\x53\x6f\x73\x57\x52\x42\x63\x53\x74\x44\x4b','\x78\x43\x6f\x53\x57\x4f\x6a\x2b\x57\x36\x68\x63\x51\x53\x6b\x54\x70\x61','\x57\x4f\x57\x43\x57\x37\x4e\x64\x48\x72\x79','\x57\x34\x5a\x64\x47\x71\x30','\x57\x35\x74\x63\x49\x6d\x6b\x54\x57\x4f\x46\x64\x48\x61','\x6d\x4b\x53\x55\x64\x4d\x75\x76\x41\x6d\x6f\x65','\x57\x34\x44\x51\x61\x64\x65\x38','\x57\x34\x2f\x64\x4a\x66\x4e\x64\x4f\x71','\x6c\x67\x43\x79\x6a\x76\x69','\x57\x52\x6c\x64\x4c\x43\x6f\x32\x57\x34\x64\x63\x51\x71','\x57\x50\x44\x39\x77\x32\x2f\x64\x4a\x59\x52\x63\x52\x4e\x47','\x67\x30\x58\x71\x43\x53\x6b\x62','\x73\x4b\x5a\x63\x49\x30\x42\x64\x54\x53\x6f\x70\x63\x47','\x6d\x4d\x75\x6d\x63\x78\x57','\x45\x6d\x6f\x4f\x57\x37\x52\x63\x51\x48\x71\x39\x57\x50\x4f','\x41\x6d\x6f\x36\x57\x37\x52\x64\x56\x38\x6b\x79\x57\x37\x74\x64\x48\x38\x6b\x32','\x57\x50\x37\x63\x4f\x65\x42\x63\x47\x38\x6f\x31\x43\x43\x6f\x78\x44\x47','\x57\x52\x38\x78\x70\x31\x30','\x57\x35\x58\x6f\x72\x72\x78\x63\x4f\x47','\x57\x52\x4f\x6a\x63\x49\x66\x77','\x6e\x43\x6b\x4f\x79\x73\x75\x71\x57\x37\x42\x63\x49\x71','\x6a\x68\x4a\x63\x47\x74\x71\x44\x57\x34\x34\x38\x57\x52\x57','\x57\x4f\x75\x75\x57\x34\x33\x64\x47\x73\x57\x79\x57\x50\x64\x64\x48\x57','\x57\x37\x70\x63\x4c\x48\x52\x63\x4e\x59\x75','\x57\x52\x30\x76\x63\x53\x6b\x39\x75\x71','\x72\x6d\x6b\x74\x67\x43\x6f\x47\x57\x4f\x57\x62\x57\x52\x53','\x57\x34\x2f\x64\x4c\x63\x6c\x64\x4e\x4d\x78\x64\x4f\x32\x33\x63\x4d\x57','\x73\x65\x4a\x63\x4b\x30\x42\x64\x51\x43\x6f\x70\x67\x4d\x61','\x75\x31\x58\x2f\x69\x6d\x6b\x55\x57\x35\x69','\x57\x4f\x2f\x64\x48\x58\x78\x64\x53\x53\x6f\x78\x57\x51\x76\x63\x57\x34\x57','\x66\x47\x31\x41\x70\x53\x6b\x79\x57\x37\x53\x77\x57\x52\x30','\x57\x34\x75\x78\x69\x48\x68\x63\x4a\x61','\x62\x49\x4e\x64\x54\x6d\x6b\x75\x57\x34\x52\x64\x4b\x5a\x6c\x64\x54\x61','\x57\x51\x4a\x63\x4c\x77\x70\x63\x55\x6d\x6f\x70\x72\x43\x6b\x47','\x41\x6d\x6f\x41\x78\x67\x79','\x6e\x6d\x6f\x49\x76\x4e\x48\x5a','\x6c\x30\x34\x4c','\x57\x35\x6c\x64\x4f\x73\x64\x64\x52\x61','\x43\x47\x6a\x6d\x68\x76\x4e\x64\x51\x78\x71','\x61\x43\x6b\x2b\x57\x51\x70\x63\x55\x38\x6f\x64','\x57\x51\x46\x64\x53\x5a\x5a\x64\x56\x53\x6f\x72','\x57\x37\x74\x64\x4c\x4e\x74\x64\x51\x43\x6b\x77','\x65\x4b\x75\x48\x65\x67\x38\x6a\x7a\x47','\x41\x38\x6f\x37\x57\x37\x4e\x64\x54\x71','\x57\x50\x4b\x6e\x6f\x71\x62\x46\x62\x4d\x4f','\x57\x51\x56\x63\x4e\x61\x52\x64\x4b\x47','\x57\x34\x5a\x64\x4a\x74\x6e\x6f\x62\x43\x6b\x77\x61\x38\x6f\x56','\x74\x4b\x6c\x63\x47\x61','\x57\x37\x48\x6e\x6a\x61\x69\x4d\x57\x34\x48\x62\x57\x35\x53','\x6e\x43\x6f\x49\x43\x4d\x6e\x53\x7a\x43\x6f\x70\x57\x52\x6d','\x76\x6d\x6b\x49\x62\x38\x6f\x4d\x57\x51\x69','\x57\x52\x33\x64\x4b\x61\x4a\x64\x53\x47','\x57\x35\x58\x42\x43\x66\x57\x63\x76\x4c\x4f\x74\x57\x35\x56\x63\x4e\x6d\x6b\x65\x6c\x47','\x57\x36\x6c\x63\x4d\x77\x34\x6a\x43\x71','\x57\x52\x72\x74\x57\x52\x4e\x64\x51\x77\x6e\x70\x57\x4f\x6a\x66','\x57\x51\x71\x74\x63\x53\x6b\x39','\x57\x51\x43\x2f\x57\x37\x57','\x57\x4f\x79\x67\x62\x53\x6b\x45\x78\x71','\x72\x53\x6f\x2b\x57\x51\x31\x2f\x57\x37\x64\x63\x55\x43\x6b\x39','\x57\x37\x53\x6d\x6c\x4b\x43','\x6f\x68\x6c\x63\x48\x64\x30\x59\x57\x34\x69\x4e\x57\x52\x61','\x6e\x38\x6b\x67\x76\x64\x30\x66','\x63\x58\x33\x64\x47\x4c\x4e\x64\x51\x38\x6f\x6b\x63\x66\x52\x63\x4d\x47','\x70\x59\x64\x64\x4a\x43\x6b\x4a\x57\x35\x71','\x57\x52\x47\x49\x57\x35\x4a\x64\x54\x57\x69','\x68\x43\x6f\x45\x72\x30\x6e\x35','\x6e\x73\x70\x63\x48\x38\x6f\x44','\x57\x34\x74\x64\x50\x38\x6f\x74\x57\x34\x4a\x63\x4f\x43\x6f\x48','\x57\x35\x33\x64\x54\x63\x37\x64\x49\x67\x6d','\x57\x50\x79\x4d\x57\x50\x62\x50','\x71\x73\x2f\x64\x4e\x38\x6b\x48\x57\x36\x33\x64\x56\x59\x4b','\x69\x43\x6b\x33\x57\x51\x74\x64\x56\x75\x76\x4c\x57\x35\x5a\x63\x53\x4a\x2f\x63\x51\x6d\x6f\x6c\x57\x34\x53\x38','\x57\x50\x4e\x64\x4b\x53\x6f\x62\x57\x34\x43','\x74\x30\x4c\x37\x70\x6d\x6b\x45\x57\x34\x6d\x70\x57\x51\x4b','\x57\x4f\x4f\x75\x6f\x49\x31\x62','\x57\x34\x5a\x64\x4c\x74\x4b','\x57\x37\x2f\x64\x4d\x76\x4a\x64\x53\x43\x6b\x48\x57\x52\x52\x64\x4a\x53\x6f\x67','\x65\x53\x6f\x77\x6c\x73\x53\x70','\x76\x38\x6b\x4b\x68\x38\x6f\x4d\x57\x4f\x4b','\x78\x38\x6f\x2f\x57\x4f\x6e\x4e\x57\x36\x46\x63\x55\x38\x6b\x57\x70\x57','\x68\x43\x6b\x4a\x73\x61','\x57\x4f\x78\x63\x4d\x73\x30\x31\x76\x57','\x57\x4f\x70\x64\x50\x43\x6b\x79\x57\x37\x6a\x69','\x57\x4f\x34\x44\x57\x34\x52\x64\x54\x48\x79','\x57\x52\x56\x63\x4a\x73\x38\x33\x68\x62\x64\x64\x4f\x47','\x57\x34\x4c\x43\x46\x48\x46\x63\x50\x67\x6c\x64\x48\x77\x65','\x78\x47\x4a\x63\x47\x6d\x6b\x47','\x76\x66\x7a\x6e\x6a\x53\x6b\x2f\x57\x35\x6d\x70\x57\x51\x30','\x72\x38\x6f\x48\x66\x72\x79\x30\x46\x38\x6b\x2f\x57\x4f\x6c\x64\x56\x38\x6f\x6a\x6f\x73\x6d','\x57\x35\x5a\x63\x4c\x47\x37\x63\x52\x61\x47','\x57\x4f\x74\x64\x52\x6d\x6f\x6e\x57\x34\x69','\x6a\x53\x6f\x49\x46\x67\x72\x56\x77\x43\x6f\x65\x57\x52\x61','\x57\x50\x33\x64\x47\x62\x5a\x64\x54\x61','\x61\x6d\x6f\x63\x6c\x43\x6f\x47\x57\x52\x47\x4a\x57\x51\x4c\x4f','\x57\x36\x4e\x63\x56\x53\x6b\x34\x57\x52\x68\x64\x51\x53\x6f\x56\x67\x53\x6f\x44','\x57\x51\x33\x63\x47\x74\x34\x53\x70\x72\x33\x64\x56\x38\x6b\x35','\x76\x6d\x6b\x4f\x7a\x66\x69','\x57\x50\x4a\x64\x52\x6d\x6f\x6f\x57\x35\x74\x63\x52\x6d\x6f\x2f\x79\x47\x75','\x57\x34\x64\x64\x4b\x63\x71','\x57\x50\x33\x63\x4b\x47\x47\x44\x73\x6d\x6f\x68\x62\x43\x6f\x4f','\x57\x36\x75\x6d\x66\x66\x33\x64\x52\x76\x6a\x62\x57\x51\x6d','\x71\x43\x6f\x53\x57\x50\x48\x4b\x57\x37\x74\x63\x56\x71','\x57\x34\x78\x64\x51\x57\x5a\x63\x48\x43\x6b\x52','\x75\x6d\x6b\x2b\x78\x30\x4c\x56\x69\x71','\x57\x35\x39\x42\x67\x72\x75','\x6d\x6d\x6f\x32\x44\x4e\x44\x65','\x46\x43\x6b\x52\x42\x65\x4c\x4d\x6c\x57','\x66\x53\x6b\x57\x44\x49\x4f','\x75\x4c\x58\x2f\x6e\x53\x6b\x6c\x57\x35\x6d\x6e\x57\x51\x38','\x57\x4f\x46\x63\x4a\x57\x34\x7a','\x77\x53\x6b\x63\x42\x53\x6f\x6a\x57\x52\x65','\x57\x36\x42\x63\x51\x6d\x6f\x37\x6f\x47','\x70\x6d\x6f\x48\x44\x68\x34','\x57\x36\x4e\x63\x4b\x38\x6f\x76\x66\x31\x57','\x57\x4f\x4a\x64\x4d\x49\x68\x64\x54\x43\x6f\x65','\x6e\x66\x76\x4e','\x57\x4f\x4e\x63\x4c\x58\x76\x4e\x64\x5a\x4c\x64\x57\x4f\x4f\x6b\x67\x53\x6f\x54\x57\x36\x71','\x45\x76\x4a\x63\x47\x66\x4e\x64\x54\x53\x6f\x43','\x57\x4f\x33\x63\x55\x47\x57\x38\x6e\x57','\x63\x58\x33\x64\x47\x72\x4a\x63\x52\x6d\x6b\x46\x77\x4c\x5a\x63\x4d\x72\x70\x63\x51\x43\x6b\x52\x61\x71','\x73\x43\x6f\x70\x73\x78\x62\x77','\x57\x52\x68\x63\x53\x58\x42\x64\x52\x43\x6b\x73','\x57\x52\x71\x2b\x57\x37\x42\x64\x56\x71','\x57\x34\x52\x64\x54\x68\x38\x58\x79\x61','\x41\x57\x48\x6e','\x57\x35\x5a\x63\x4e\x43\x6f\x74\x66\x4d\x57','\x57\x35\x69\x76\x44\x76\x57\x70\x57\x4f\x35\x79\x41\x47','\x57\x50\x33\x63\x50\x75\x4e\x63\x4f\x43\x6f\x50','\x70\x38\x6b\x34\x71\x38\x6f\x72\x57\x37\x53','\x57\x37\x4b\x64\x57\x37\x4a\x63\x54\x64\x57\x76\x57\x37\x4f\x76','\x43\x38\x6f\x78\x76\x68\x61','\x57\x37\x70\x63\x4d\x53\x6b\x73\x57\x4f\x5a\x64\x4a\x71','\x7a\x6d\x6b\x37\x64\x38\x6f\x41\x57\x50\x47','\x67\x59\x33\x64\x51\x53\x6b\x63','\x46\x53\x6f\x7a\x76\x32\x7a\x72\x57\x51\x64\x63\x54\x73\x43','\x6c\x38\x6b\x45\x57\x51\x37\x63\x4e\x38\x6f\x7a\x57\x35\x68\x63\x4a\x6d\x6f\x6d','\x57\x35\x39\x72\x44\x71\x78\x63\x54\x33\x74\x64\x55\x67\x57','\x57\x4f\x68\x64\x4a\x6d\x6f\x44\x57\x35\x64\x63\x4c\x6d\x6b\x6e\x74\x43\x6f\x63\x57\x34\x74\x64\x53\x38\x6f\x42\x6d\x61','\x6d\x53\x6b\x33\x57\x51\x68\x63\x56\x53\x6f\x46\x57\x51\x56\x63\x49\x71','\x6a\x43\x6f\x4e\x7a\x33\x75','\x44\x6d\x6f\x43\x41\x31\x48\x2f','\x45\x63\x7a\x6f\x6c\x68\x57','\x57\x36\x68\x63\x52\x53\x6f\x38','\x57\x52\x33\x63\x52\x64\x69\x73\x77\x61','\x57\x4f\x42\x64\x48\x47\x56\x64\x54\x6d\x6f\x62\x57\x51\x76\x61','\x62\x47\x4a\x64\x52\x53\x6b\x76\x57\x36\x5a\x64\x49\x4a\x4e\x64\x54\x71','\x57\x37\x69\x75\x69\x57','\x57\x52\x4b\x47\x66\x71\x4c\x66','\x57\x37\x56\x63\x4f\x43\x6b\x57\x57\x4f\x5a\x64\x4b\x71','\x57\x4f\x4a\x63\x4d\x62\x6d\x66\x74\x6d\x6f\x68\x62\x43\x6f\x70','\x6a\x47\x70\x64\x4c\x6d\x6b\x64\x57\x37\x4f','\x57\x35\x70\x64\x55\x49\x2f\x64\x56\x65\x47','\x57\x51\x64\x64\x4f\x43\x6f\x51\x57\x36\x70\x63\x55\x61','\x66\x38\x6f\x57\x62\x57\x65\x59','\x57\x36\x4b\x42\x71\x75\x65\x74','\x6f\x43\x6f\x53\x44\x33\x76\x51\x71\x47','\x72\x76\x44\x36\x69\x43\x6b\x41\x57\x35\x6d\x76\x57\x51\x69','\x76\x65\x56\x63\x51\x6d\x6b\x52\x79\x53\x6b\x54\x62\x6d\x6f\x44','\x46\x6d\x6f\x4b\x74\x33\x39\x62','\x67\x68\x6c\x63\x53\x58\x4b\x4b','\x57\x4f\x4e\x63\x4d\x48\x31\x4b\x64\x64\x54\x78\x57\x50\x4f\x56\x6c\x53\x6f\x46\x57\x36\x38','\x57\x50\x79\x51\x57\x4f\x54\x2b\x73\x53\x6b\x36','\x6a\x76\x4e\x63\x49\x73\x4f\x49\x57\x35\x4b\x54\x57\x51\x79','\x62\x53\x6f\x48\x75\x76\x48\x46','\x57\x4f\x4e\x63\x54\x33\x33\x63\x55\x74\x4a\x63\x4f\x66\x6c\x63\x48\x63\x76\x46\x6d\x4e\x43','\x57\x51\x2f\x64\x52\x43\x6b\x76\x57\x36\x66\x41','\x57\x50\x68\x63\x4c\x57\x78\x63\x4b\x61\x52\x64\x4b\x74\x65','\x78\x63\x33\x63\x4f\x6d\x6b\x66\x62\x61','\x57\x36\x39\x78\x62\x71\x75\x37\x57\x35\x6e\x37\x57\x34\x34','\x57\x51\x78\x63\x47\x47\x78\x63\x54\x53\x6f\x30\x57\x35\x52\x63\x48\x38\x6f\x66\x78\x6d\x6b\x71\x57\x34\x31\x36\x57\x52\x30','\x69\x31\x57\x53\x66\x31\x69','\x6f\x53\x6f\x52\x43\x33\x44\x39\x78\x47','\x57\x37\x6d\x37\x72\x78\x43\x54','\x57\x50\x65\x6d\x57\x50\x31\x4f','\x57\x4f\x47\x55\x57\x50\x69','\x72\x43\x6f\x49\x57\x4f\x76\x4a','\x57\x50\x33\x64\x4d\x71\x52\x64\x55\x6d\x6f\x72','\x57\x51\x69\x65\x61\x53\x6b\x30\x7a\x5a\x53\x61\x57\x51\x47','\x57\x50\x37\x64\x4e\x62\x78\x64\x55\x71','\x57\x34\x46\x63\x56\x33\x38\x58\x41\x48\x68\x63\x4c\x59\x4f','\x57\x51\x53\x34\x57\x34\x46\x64\x4f\x74\x65','\x6a\x31\x7a\x62\x46\x6d\x6b\x6b\x57\x4f\x61\x79\x6d\x47','\x41\x66\x58\x2f\x6e\x47','\x57\x52\x4f\x7a\x57\x37\x70\x64\x55\x59\x38','\x64\x53\x6f\x34\x77\x67\x6a\x36','\x57\x51\x7a\x62\x57\x52\x78\x64\x49\x77\x65','\x6a\x30\x6e\x47\x46\x61','\x67\x43\x6f\x6a\x6e\x63\x4b','\x7a\x66\x78\x63\x50\x43\x6b\x6a\x7a\x47','\x57\x36\x39\x73\x68\x5a\x6d\x36','\x57\x51\x30\x4c\x57\x36\x33\x64\x55\x47\x30\x54','\x70\x38\x6b\x50\x78\x53\x6f\x44','\x42\x4b\x4b\x53\x68\x68\x6d\x64\x7a\x61','\x78\x38\x6f\x50\x57\x51\x66\x6c\x57\x36\x38','\x57\x50\x42\x64\x4d\x63\x68\x64\x4b\x38\x6f\x53','\x76\x65\x5a\x63\x4e\x30\x38','\x57\x50\x33\x63\x4c\x72\x71\x46','\x57\x36\x74\x64\x4d\x77\x70\x64\x48\x53\x6b\x30','\x57\x51\x47\x43\x6d\x63\x48\x72\x65\x32\x38','\x6a\x6d\x6b\x72\x57\x52\x37\x63\x48\x43\x6f\x34\x57\x35\x30','\x6a\x65\x44\x49\x41\x38\x6b\x66\x57\x4f\x43','\x57\x35\x52\x64\x4c\x48\x78\x64\x4f\x30\x65','\x7a\x62\x75\x30\x6b\x53\x6f\x78\x57\x35\x38\x62\x67\x6d\x6f\x66\x43\x59\x68\x63\x4a\x47','\x57\x4f\x74\x63\x49\x33\x79\x7a','\x57\x52\x47\x50\x57\x37\x74\x64\x54\x63\x34','\x42\x38\x6f\x74\x77\x68\x4c\x76\x57\x52\x70\x63\x54\x63\x57','\x57\x52\x62\x68\x57\x52\x5a\x64\x54\x78\x71','\x72\x31\x58\x51\x62\x53\x6b\x4b\x57\x35\x43\x65','\x57\x35\x31\x6d\x41\x63\x6c\x63\x51\x4d\x52\x64\x4a\x47','\x57\x35\x43\x53\x6f\x71\x70\x63\x4e\x47'];_0x3f64=function(){return _0x363d7c;};return _0x3f64();}function _0x548952(_0x191593,_0x50fbd3){const _0x3399b0=_0x1be95b,_0x2a91bc={'\x56\x67\x65\x4e\x69':function(_0x100c0,_0x31d807){return _0x100c0(_0x31d807);},'\x65\x54\x47\x43\x58':function(_0x3ad889,_0x37874d){return _0x3ad889(_0x37874d);},'\x75\x69\x58\x72\x52':function(_0x25c78a,_0x652599){return _0x25c78a===_0x652599;},'\x63\x78\x7a\x41\x71':function(_0x14759d,_0x1a8db3){return _0x14759d+_0x1a8db3;}},_0x59792b=_0x2a91bc[_0x3399b0(0x164,'\x5d\x2a\x32\x4e')](_0x21b75d,_0x191593);if(!_0x59792b)return![];const _0x359b9e=Array[_0x3399b0(0x165,'\x38\x39\x42\x78')](_0x50fbd3)?_0x50fbd3:[_0x50fbd3],_0xb8aaff=_0x2a91bc[_0x3399b0(0x19c,'\x40\x35\x49\x39')](_0x39cc2b,_0x59792b);if(!_0xb8aaff)return![];for(const _0x281044 of _0x359b9e){if(!_0x281044)continue;const _0x1cc795=_0x39cc2b(_0x281044);if(!_0x1cc795)continue;if(_0x2a91bc[_0x3399b0(0x1df,'\x36\x5d\x79\x4c')](_0xb8aaff,_0x1cc795))return!![];if(_0xb8aaff[_0x3399b0(0x13b,'\x6a\x76\x5d\x44')+'\x74\x68'](_0x2a91bc[_0x3399b0(0x175,'\x35\x57\x41\x42')](_0x1cc795,_0x3fb1c5[_0x3399b0(0x12e,'\x4e\x49\x6a\x76')])))return!![];}return![];}const _0x393deb={};function _0x5a6e(_0x1fe5f9,_0x49bca7){_0x1fe5f9=_0x1fe5f9-(-0x1880+0x25bd*-0x1+-0x3f4b*-0x1);const _0xffc826=_0x3f64();let _0x531215=_0xffc826[_0x1fe5f9];if(_0x5a6e['\x6c\x6b\x43\x57\x4a\x78']===undefined){var _0x1cb24f=function(_0x2a476f){const _0x347543='\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 _0x448ee2='',_0x18ac78='',_0x49912f=_0x448ee2+_0x1cb24f,_0x36b890=(''+function(){return 0x1*0x2359+0xbc0+0x3*-0xfb3;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0xf7*-0x7+0x65a+-0x1a*0x81);for(let _0x6a3b80=0x1*-0x10ed+0x132c+-0x5*0x73,_0x4f1c67,_0x78e692,_0x2ae79a=-0x31*-0x15+-0x2419+0x2014;_0x78e692=_0x2a476f['\x63\x68\x61\x72\x41\x74'](_0x2ae79a++);~_0x78e692&&(_0x4f1c67=_0x6a3b80%(0x2af*0xb+0xe*-0x1a3+-0x697)?_0x4f1c67*(0x174e+0x6fe+-0x2*0xf06)+_0x78e692:_0x78e692,_0x6a3b80++%(-0x6*0x34+0x2b*-0x1+0x167))?_0x448ee2+=_0x36b890||_0x49912f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2ae79a+(-0x1bd2+0x489+0x1753))-(-0x1*-0x14c+-0x256b+0x2429)!==-0xadf+0xe30*0x2+0x1181*-0x1?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x12f*0x1a+-0x2516+0x1*0x74f&_0x4f1c67>>(-(-0x1e5+0x1cc0+-0x3*0x8f3)*_0x6a3b80&-0x24c0+0x7*0x1f4+0x171a)):_0x6a3b80:-0xa7*0x1+-0x868+-0x90f*-0x1){_0x78e692=_0x347543['\x69\x6e\x64\x65\x78\x4f\x66'](_0x78e692);}for(let _0x5c83e1=0x1*-0x1f63+-0x1c4*-0x5+0x168f,_0x376d68=_0x448ee2['\x6c\x65\x6e\x67\x74\x68'];_0x5c83e1<_0x376d68;_0x5c83e1++){_0x18ac78+='\x25'+('\x30\x30'+_0x448ee2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5c83e1)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*0x4fd+0x2088+-0x1d5*0xf))['\x73\x6c\x69\x63\x65'](-(0x251e+0xd01+0x1*-0x321d));}return decodeURIComponent(_0x18ac78);};const _0x15805a=function(_0x3203ea,_0x559061){let _0x27dcba=[],_0x1148ca=-0xa34*-0x1+0xc87+-0x16bb,_0x40d5cc,_0x24177a='';_0x3203ea=_0x1cb24f(_0x3203ea);let _0x408389;for(_0x408389=-0x1c2c*0x1+-0x2*0x9ab+0x7eb*0x6;_0x408389<0x224*0xb+-0x56*-0x46+0x430*-0xb;_0x408389++){_0x27dcba[_0x408389]=_0x408389;}for(_0x408389=0xf*-0x281+-0x6e3+0x2c72*0x1;_0x408389<0x26d0+0x5d*0x2b+-0x1*0x356f;_0x408389++){_0x1148ca=(_0x1148ca+_0x27dcba[_0x408389]+_0x559061['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x408389%_0x559061['\x6c\x65\x6e\x67\x74\x68']))%(0x10f5+0x25+-0x101a),_0x40d5cc=_0x27dcba[_0x408389],_0x27dcba[_0x408389]=_0x27dcba[_0x1148ca],_0x27dcba[_0x1148ca]=_0x40d5cc;}_0x408389=0xb19+-0x234c+-0x3b*-0x69,_0x1148ca=-0xc52+0x1*0x1958+-0xd06;for(let _0x56fd3e=-0x9*-0x1d7+-0x2e1*-0xb+-0x303a;_0x56fd3e<_0x3203ea['\x6c\x65\x6e\x67\x74\x68'];_0x56fd3e++){_0x408389=(_0x408389+(-0x1d*0x31+0x12*-0x83+-0x2f4*-0x5))%(0x61f+-0x7ab+0x28c),_0x1148ca=(_0x1148ca+_0x27dcba[_0x408389])%(0xd91*0x1+-0x567+-0x72a),_0x40d5cc=_0x27dcba[_0x408389],_0x27dcba[_0x408389]=_0x27dcba[_0x1148ca],_0x27dcba[_0x1148ca]=_0x40d5cc,_0x24177a+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x3203ea['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x56fd3e)^_0x27dcba[(_0x27dcba[_0x408389]+_0x27dcba[_0x1148ca])%(-0x1056+0xf0b*0x1+-0x24b*-0x1)]);}return _0x24177a;};_0x5a6e['\x51\x4a\x4c\x50\x51\x56']=_0x15805a,_0x5a6e['\x4b\x47\x51\x6f\x66\x47']={},_0x5a6e['\x6c\x6b\x43\x57\x4a\x78']=!![];}const _0x1f9792=_0xffc826[-0x25e3+0x119b+0x1448],_0x3bfb9=_0x1fe5f9+_0x1f9792,_0x50f0be=_0x5a6e['\x4b\x47\x51\x6f\x66\x47'][_0x3bfb9];if(!_0x50f0be){if(_0x5a6e['\x75\x55\x4e\x44\x64\x46']===undefined){const _0x529cd6=function(_0xb30063){this['\x5a\x54\x78\x54\x42\x4a']=_0xb30063,this['\x4e\x51\x4d\x51\x46\x55']=[0xa62+-0x13fa+-0x15f*-0x7,-0x12a3*-0x1+-0x1036+-0x26d,-0x1386+-0x5*-0x43d+-0x1ab],this['\x47\x6d\x4d\x77\x4a\x5a']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x70\x59\x62\x6b\x62\x50']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x79\x6e\x4d\x57\x4b\x53']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x529cd6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6f\x4d\x55\x58\x4f\x4d']=function(){const _0x149b0c=new RegExp(this['\x70\x59\x62\x6b\x62\x50']+this['\x79\x6e\x4d\x57\x4b\x53']),_0x540bab=_0x149b0c['\x74\x65\x73\x74'](this['\x47\x6d\x4d\x77\x4a\x5a']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4e\x51\x4d\x51\x46\x55'][0xdd*-0x7+-0x6a1*-0x3+-0xdd7*0x1]:--this['\x4e\x51\x4d\x51\x46\x55'][-0xc2*0x22+-0x2f*0x33+-0x187*-0x17];return this['\x6b\x50\x47\x6a\x74\x5a'](_0x540bab);},_0x529cd6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6b\x50\x47\x6a\x74\x5a']=function(_0x43d06b){if(!Boolean(~_0x43d06b))return _0x43d06b;return this['\x44\x45\x75\x63\x59\x77'](this['\x5a\x54\x78\x54\x42\x4a']);},_0x529cd6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x44\x45\x75\x63\x59\x77']=function(_0x492076){for(let _0x2ff8e3=-0x5da+-0x9ac+0x7c3*0x2,_0xc36b93=this['\x4e\x51\x4d\x51\x46\x55']['\x6c\x65\x6e\x67\x74\x68'];_0x2ff8e3<_0xc36b93;_0x2ff8e3++){this['\x4e\x51\x4d\x51\x46\x55']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xc36b93=this['\x4e\x51\x4d\x51\x46\x55']['\x6c\x65\x6e\x67\x74\x68'];}return _0x492076(this['\x4e\x51\x4d\x51\x46\x55'][0x3*0x6ab+0x7*0x3e3+-0x2f36]);},(''+function(){return 0x376*-0x3+-0x1884+0x22e6;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x3bf+-0x2691*0x1+0x22d3)&&new _0x529cd6(_0x5a6e)['\x6f\x4d\x55\x58\x4f\x4d'](),_0x5a6e['\x75\x55\x4e\x44\x64\x46']=!![];}_0x531215=_0x5a6e['\x51\x4a\x4c\x50\x51\x56'](_0x531215,_0x49bca7),_0x5a6e['\x4b\x47\x51\x6f\x66\x47'][_0x3bfb9]=_0x531215;}else _0x531215=_0x50f0be;return _0x531215;}_0x393deb[_0x1be95b(0x11c,'\x35\x57\x41\x42')+_0x1be95b(0x12c,'\x38\x39\x42\x78')+_0x1be95b(0x115,'\x38\x39\x42\x78')]=_0x5f37a9,_0x393deb['\x63\x6f\x6c\x6c\x65\x63\x74\x54'+_0x1be95b(0x18c,'\x4b\x69\x29\x5a')+_0x1be95b(0x1fd,'\x74\x30\x65\x48')]=_0x4cfff0,_0x393deb[_0x1be95b(0x197,'\x5e\x21\x30\x41')+_0x1be95b(0x1e1,'\x5e\x21\x30\x41')]=_0x5625cb,_0x393deb[_0x1be95b(0x128,'\x57\x36\x28\x6c')+_0x1be95b(0x201,'\x61\x25\x6c\x69')]=_0x5ca9da,_0x393deb[_0x1be95b(0x1c0,'\x54\x29\x52\x46')+_0x1be95b(0x130,'\x2a\x26\x39\x6d')+_0x1be95b(0x1d8,'\x39\x72\x59\x6e')]=_0x21b75d,_0x393deb['\x74\x72\x61\x6e\x73\x63\x72\x69'+_0x1be95b(0x1e0,'\x68\x34\x37\x5a')+_0x1be95b(0x145,'\x74\x30\x65\x48')+_0x1be95b(0x1e5,'\x68\x34\x37\x5a')]=_0x548952,module[_0x1be95b(0x17f,'\x51\x50\x4a\x6a')]=_0x393deb;
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const os = require('os');
6
+
7
+ /**
8
+ * Resolve the directories to scan for IDE / platform session transcripts.
9
+ *
10
+ * Precedence:
11
+ * 1. `EVOLVER_CURSOR_TRANSCRIPTS_DIR` explicit override — returns `[that]`
12
+ * (preserves the existing escape hatch for unusual layouts).
13
+ * 2. Default platform paths under `$HOME`, in priority order:
14
+ * `~/.codex/sessions` (Codex rollout JSONL, layout `YYYY/MM/DD/rollout-*.jsonl`)
15
+ * `~/.claude/projects` (Claude Code per-project transcripts)
16
+ * Only paths that exist are returned.
17
+ *
18
+ * Before #543, only the env-var path was checked, so a fresh Codex install
19
+ * with no env override silently produced "no session logs" even though
20
+ * Codex was writing rollouts to `~/.codex/sessions`. Auto-discovery here
21
+ * mirrors the auto-detection in `readRealSessionLog` which already
22
+ * considers `~/.codex` / `~/.claude` / `~/.cursor` when deciding whether
23
+ * to dispatch to the transcript reader.
24
+ *
25
+ * @param {{ homedir?: string, cursorTranscriptsDirOverride?: string }} [opts]
26
+ * @returns {string[]}
27
+ */
28
+ function resolveTranscriptDirs(opts) {
29
+ const override = opts && opts.cursorTranscriptsDirOverride != null
30
+ ? opts.cursorTranscriptsDirOverride
31
+ : (process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR || '');
32
+ if (override) return [override];
33
+ const home = (opts && opts.homedir) || os.homedir();
34
+ const candidates = [
35
+ path.join(home, '.codex', 'sessions'),
36
+ path.join(home, '.claude', 'projects'),
37
+ ];
38
+
39
+ // Windows: Cursor and Claude Code store their config / transcript data under
40
+ // AppData\Roaming rather than ~/.<name>. Add the known Windows paths when
41
+ // running on win32 so that auto-discovery works without needing
42
+ // EVOLVER_CURSOR_TRANSCRIPTS_DIR to be set manually.
43
+ //
44
+ // Known layouts (as of 2025):
45
+ // Cursor %APPDATA%\Cursor\User\workspaceStorage (SQLite + JSON sessions)
46
+ // Claude %APPDATA%\Claude\projects (mirrors macOS ~/.claude/projects)
47
+ // claude-code %APPDATA%\claude-code\projects (some builds use this name)
48
+ if (process.platform === 'win32') {
49
+ const appData = process.env.APPDATA || path.join(home, 'AppData', 'Roaming');
50
+ candidates.push(
51
+ path.join(appData, 'Claude', 'projects'),
52
+ path.join(appData, 'claude-code', 'projects'),
53
+ // Cursor transcript storage lives one level above individual workspace dirs
54
+ path.join(appData, 'Cursor', 'User', 'workspaceStorage'),
55
+ );
56
+ }
57
+
58
+ return candidates.filter((p) => {
59
+ try { return fs.existsSync(p); } catch { return false; }
60
+ });
61
+ }
62
+
63
+ /**
64
+ * Recursively collect .jsonl and .txt transcript files under a directory.
65
+ * @param {string} dir
66
+ * @param {number} maxDepth
67
+ * @returns {{ path: string, name: string, time: number, size: number }[]}
68
+ */
69
+ function collectTranscriptFiles(dir, maxDepth) {
70
+ const results = [];
71
+ function walk(d, depth) {
72
+ if (depth > maxDepth) return;
73
+ let entries;
74
+ try { entries = fs.readdirSync(d, { withFileTypes: true }); } catch { return; }
75
+ for (const ent of entries) {
76
+ if (ent.isFile() && (ent.name.endsWith('.jsonl') || ent.name.endsWith('.txt'))) {
77
+ const fp = path.join(d, ent.name);
78
+ try {
79
+ const st = fs.statSync(fp);
80
+ results.push({ path: fp, name: ent.name, time: st.mtime.getTime(), size: st.size });
81
+ } catch { /* skip unreadable */ }
82
+ } else if (ent.isDirectory() && ent.name !== 'subagents' && ent.name !== 'node_modules') {
83
+ walk(path.join(d, ent.name), depth + 1);
84
+ }
85
+ }
86
+ }
87
+ walk(dir, 0);
88
+ return results;
89
+ }
90
+
91
+ /**
92
+ * Read the first maxBytes bytes of a file.
93
+ * @param {string} filePath
94
+ * @param {number} [maxBytes=8192]
95
+ * @returns {string}
96
+ */
97
+ function readFileHead(filePath, maxBytes) {
98
+ if (maxBytes === undefined) maxBytes = 8192;
99
+ try {
100
+ if (!fs.existsSync(filePath)) return '';
101
+ const fd = fs.openSync(filePath, 'r');
102
+ const buffer = Buffer.alloc(maxBytes);
103
+ const bytesRead = fs.readSync(fd, buffer, 0, maxBytes, 0);
104
+ fs.closeSync(fd);
105
+ return buffer.slice(0, bytesRead).toString('utf8');
106
+ } catch (e) {
107
+ return '';
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Read the last `size` bytes of a file (tail read for recent logs).
113
+ * @param {string} filePath
114
+ * @param {number} [size=10000]
115
+ * @returns {string}
116
+ */
117
+ function readRecentLog(filePath, size) {
118
+ if (size === undefined) size = 10000;
119
+ try {
120
+ if (!fs.existsSync(filePath)) return `[MISSING] ${filePath}`;
121
+ const stat = fs.statSync(filePath);
122
+ const fileSize = stat.size;
123
+ if (fileSize === 0) return '';
124
+ const readSize = Math.min(size, fileSize);
125
+ const buffer = Buffer.alloc(readSize);
126
+ const fd = fs.openSync(filePath, 'r');
127
+ fs.readSync(fd, buffer, 0, readSize, Math.max(0, fileSize - readSize));
128
+ fs.closeSync(fd);
129
+ return buffer.toString('utf8');
130
+ } catch (e) {
131
+ return `[ERROR READING ${filePath}: ${e.message}]`;
132
+ }
133
+ }
134
+
135
+ function stripTrailingSeparators(value) {
136
+ return String(value || '').replace(/[\\/]+$/, '');
137
+ }
138
+
139
+ /**
140
+ * Normalize a workspace identity for provenance comparisons.
141
+ *
142
+ * macOS commonly exposes the same temporary directory through both `/var/...`
143
+ * and `/private/var/...`. `path.resolve()` keeps those strings different even
144
+ * though they identify the same directory, so use realpath when possible and
145
+ * fall back to the resolved path for stale transcript cwd values.
146
+ *
147
+ * @param {string} value
148
+ * @returns {string}
149
+ */
150
+ function normalizeWorkspaceIdentity(value) {
151
+ let resolved;
152
+ try {
153
+ resolved = stripTrailingSeparators(path.resolve(value));
154
+ } catch {
155
+ return '';
156
+ }
157
+ if (!resolved) return '';
158
+ try {
159
+ return stripTrailingSeparators(fs.realpathSync.native(resolved));
160
+ } catch {
161
+ try {
162
+ return stripTrailingSeparators(fs.realpathSync(resolved));
163
+ } catch {
164
+ return resolved;
165
+ }
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Read the first record(s) of a JSONL transcript and try to extract the
171
+ * originating workspace cwd. Codex rollouts start with a `session_meta`
172
+ * record whose `payload.cwd` is the workspace the session ran in
173
+ * (`{"type":"session_meta","payload":{"cwd":"/home/u/workspace/X", ...}}`).
174
+ * Claude Code may emit a top-level `cwd` on its first record; generic
175
+ * fallback also checks `data.cwd`.
176
+ *
177
+ * Returns the cwd string or null when no recognisable cwd is found in
178
+ * the first ~4 KB of the file. Bounded read so a malformed multi-MB
179
+ * transcript can't stall the discovery pass.
180
+ *
181
+ * @param {string} filePath
182
+ * @returns {string|null}
183
+ */
184
+ function extractTranscriptCwd(filePath) {
185
+ try {
186
+ if (!filePath.endsWith('.jsonl')) return null;
187
+ const head = readFileHead(filePath, 4096);
188
+ if (!head) return null;
189
+ const lines = head.split('\n');
190
+ // Scan at most the first 5 records — `session_meta` should be first
191
+ // for Codex; widen the window slightly in case a writer prepends an
192
+ // envelope record (e.g. version preamble).
193
+ for (let i = 0; i < Math.min(lines.length, 5); i++) {
194
+ const ln = lines[i].trim();
195
+ if (!ln) continue;
196
+ let data;
197
+ try { data = JSON.parse(ln); } catch { continue; }
198
+ if (data && typeof data === 'object') {
199
+ if (data.type === 'session_meta' && data.payload && typeof data.payload.cwd === 'string') {
200
+ return data.payload.cwd;
201
+ }
202
+ if (typeof data.cwd === 'string') return data.cwd;
203
+ }
204
+ }
205
+ return null;
206
+ } catch { return null; }
207
+ }
208
+
209
+ /**
210
+ * Decide whether a transcript file belongs to the workspace we're
211
+ * evolving. The user-level discovery paths (`~/.codex/sessions`,
212
+ * `~/.claude/projects`) hold transcripts from EVERY project the user
213
+ * has touched — pulling them in unfiltered would import unrelated
214
+ * session content into another repo's evolution run (Bugbot PR #130
215
+ * Agentic Security Review MEDIUM: cross-project prompt/context
216
+ * contamination + possible unintended disclosure of prior session
217
+ * data).
218
+ *
219
+ * Match semantics: a session's recorded cwd belongs to "this
220
+ * workspace" if it equals OR is a subdir of ANY of the candidate
221
+ * roots passed in. We accept multiple candidates so a user who
222
+ * `cd`'d into a non-git directory still gets their own sessions
223
+ * back: `getWorkspaceRoot()` may fall back to the evolver install
224
+ * dir when no `.git` is found, but `process.cwd()` still points
225
+ * at the user's actual working dir (which is what the Codex
226
+ * session also recorded). Without this multi-candidate match,
227
+ * issue #543's follow-up scenario — tammypi running evolver from
228
+ * `/home/u/workspace/foo` with no `git init` — silently dropped
229
+ * every transcript even though Codex was active there.
230
+ *
231
+ * Files without a recognisable cwd (older formats, third-party
232
+ * writers) are dropped — fail-closed is the conservative answer
233
+ * when we can't prove provenance.
234
+ *
235
+ * @param {string} filePath
236
+ * @param {string|string[]} candidateRoots — one or more workspace
237
+ * identities; the transcript's cwd matches if any of these
238
+ * equals or is a parent of it.
239
+ * @returns {boolean}
240
+ */
241
+ function transcriptBelongsToWorkspace(filePath, candidateRoots) {
242
+ const cwd = extractTranscriptCwd(filePath);
243
+ if (!cwd) return false;
244
+ const roots = Array.isArray(candidateRoots) ? candidateRoots : [candidateRoots];
245
+ const normCwd = normalizeWorkspaceIdentity(cwd);
246
+ if (!normCwd) return false;
247
+ for (const root of roots) {
248
+ if (!root) continue;
249
+ const normRoot = normalizeWorkspaceIdentity(root);
250
+ if (!normRoot) continue;
251
+ if (normCwd === normRoot) return true;
252
+ if (normCwd.startsWith(normRoot + path.sep)) return true;
253
+ }
254
+ return false;
255
+ }
256
+
257
+ module.exports = {
258
+ resolveTranscriptDirs,
259
+ collectTranscriptFiles,
260
+ readFileHead,
261
+ readRecentLog,
262
+ extractTranscriptCwd,
263
+ transcriptBelongsToWorkspace,
264
+ };