@evomap/evolver 1.89.11 → 1.89.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1367 -0
- package/README.md +90 -537
- package/README.public.md +578 -0
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/package.json +6 -18
- package/proxy-package.json +39 -0
- package/public.manifest.json +145 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +440 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/gep/a2aProtocol.js +4463 -1
- package/src/gep/antiAbuseTelemetry.js +233 -1
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationDistiller.js +270 -0
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +712 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +608 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1449 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +836 -1
- package/src/gep/questionGenerator.js +103 -0
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/savingsCore.js +112 -1
- package/src/gep/selector.js +602 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +95 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +109 -1
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +108 -7
- package/src/proxy/server/routes.js +31 -0
- package/src/proxy/server/settings.js +6 -2
- package/src/proxy/sync/engine.js +31 -15
- package/src/proxy/sync/inbound.js +87 -9
- package/src/proxy/sync/outbound.js +57 -4
- package/src/proxy/trace/extractor.js +1403 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/refresh_stars_badge.js +0 -168
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
|
@@ -1 +1,203 @@
|
|
|
1
|
-
function _0x22f8(_0x183285,_0x3d6093){_0x183285=_0x183285-(-0x1*-0x1b31+-0x1d83+0x2e5);const _0x36238a=_0xf96b();let _0x4d3d8f=_0x36238a[_0x183285];if(_0x22f8['\x78\x6f\x7a\x6c\x73\x6f']===undefined){var _0x31ba26=function(_0x38b488){const _0xe29137='\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 _0x224b8c='',_0x1fa9c4='',_0x52e889=_0x224b8c+_0x31ba26,_0xeb06bf=(''+function(){return-0xa6b+-0x243a+0x1*0x2ea5;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x887+-0x2000+-0xa*-0x259);for(let _0x2c286d=0x3*-0x45d+0x457*-0x2+0x15c5,_0x46a61b,_0x1a294f,_0x5731d5=-0x284+0x1fb3+-0x1d2f;_0x1a294f=_0x38b488['\x63\x68\x61\x72\x41\x74'](_0x5731d5++);~_0x1a294f&&(_0x46a61b=_0x2c286d%(0xc91+0x12cd+-0x2*0xfad)?_0x46a61b*(-0x935*0x3+-0x950+-0x3*-0xc65)+_0x1a294f:_0x1a294f,_0x2c286d++%(-0xd*0xca+-0x2f6+0xd3c))?_0x224b8c+=_0xeb06bf||_0x52e889['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5731d5+(0xc87+-0xd*-0x219+0xe*-0x2d7))-(0x6b3+-0x487*-0x5+-0x1d4c)!==0x7f1+-0x1483+0xc92?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xc*0x25b+-0x1*-0x15ce+0x11*-0x2e3&_0x46a61b>>(-(0x7*-0x319+0x1b98*-0x1+0x197*0x1f)*_0x2c286d&-0x11*-0xa3+0xbf1+-0x16be)):_0x2c286d:0x76*0x4a+0x166+-0x9*0x3f2){_0x1a294f=_0xe29137['\x69\x6e\x64\x65\x78\x4f\x66'](_0x1a294f);}for(let _0x25d08e=-0x19*-0xd9+-0x8a2+-0xc8f,_0x11d6c0=_0x224b8c['\x6c\x65\x6e\x67\x74\x68'];_0x25d08e<_0x11d6c0;_0x25d08e++){_0x1fa9c4+='\x25'+('\x30\x30'+_0x224b8c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x25d08e)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10f+-0x11a1+0x10a2))['\x73\x6c\x69\x63\x65'](-(-0x202a*-0x1+-0x2ff+-0x1d29*0x1));}return decodeURIComponent(_0x1fa9c4);};const _0x3fb602=function(_0x387ac4,_0x4dbd42){let _0x37d8bb=[],_0x203796=-0x7*-0x50+0x1*-0x12a3+-0x1*-0x1073,_0x217acd,_0x33c0ca='';_0x387ac4=_0x31ba26(_0x387ac4);let _0x15ce51;for(_0x15ce51=0x137+0x11*-0xda+0x23*0x61;_0x15ce51<-0x13b9*0x1+-0xde6+0x1*0x229f;_0x15ce51++){_0x37d8bb[_0x15ce51]=_0x15ce51;}for(_0x15ce51=-0xa85+-0x582+0xb*0x175;_0x15ce51<-0x1*0x1bdf+-0x1167+0x1*0x2e46;_0x15ce51++){_0x203796=(_0x203796+_0x37d8bb[_0x15ce51]+_0x4dbd42['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x15ce51%_0x4dbd42['\x6c\x65\x6e\x67\x74\x68']))%(-0x872+-0x5*0x515+0x22db),_0x217acd=_0x37d8bb[_0x15ce51],_0x37d8bb[_0x15ce51]=_0x37d8bb[_0x203796],_0x37d8bb[_0x203796]=_0x217acd;}_0x15ce51=-0x1708+0x1e50+-0x8*0xe9,_0x203796=0x1873+0x1*-0x1b41+0x2ce;for(let _0x2305fe=0x1*-0x26c3+0x2db*-0x7+0x3ac0;_0x2305fe<_0x387ac4['\x6c\x65\x6e\x67\x74\x68'];_0x2305fe++){_0x15ce51=(_0x15ce51+(0x1*-0xab4+0x1737+-0xc82))%(0x1557+0xaf6+0x1*-0x1f4d),_0x203796=(_0x203796+_0x37d8bb[_0x15ce51])%(-0xeb7+-0x15ac*-0x1+-0x1*0x5f5),_0x217acd=_0x37d8bb[_0x15ce51],_0x37d8bb[_0x15ce51]=_0x37d8bb[_0x203796],_0x37d8bb[_0x203796]=_0x217acd,_0x33c0ca+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x387ac4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2305fe)^_0x37d8bb[(_0x37d8bb[_0x15ce51]+_0x37d8bb[_0x203796])%(0x3*-0x4b1+0x1*0x1d62+-0xe4f)]);}return _0x33c0ca;};_0x22f8['\x41\x54\x70\x5a\x54\x64']=_0x3fb602,_0x22f8['\x49\x53\x63\x78\x50\x4a']={},_0x22f8['\x78\x6f\x7a\x6c\x73\x6f']=!![];}const _0x3a10ea=_0x36238a[-0x9*-0x10e+0x9*-0x1d5+-0xc7*-0x9],_0x2c92d9=_0x183285+_0x3a10ea,_0x534e77=_0x22f8['\x49\x53\x63\x78\x50\x4a'][_0x2c92d9];if(!_0x534e77){if(_0x22f8['\x5a\x56\x48\x42\x6f\x72']===undefined){const _0x13aaac=function(_0x352cfa){this['\x76\x54\x58\x62\x63\x44']=_0x352cfa,this['\x68\x51\x69\x54\x42\x57']=[-0x1*0x2c2+0xb06+0xeb*-0x9,0x2547+-0x117*0x4+0x35*-0x9f,0x20e5+-0x15fc+-0xae9],this['\x44\x6e\x4f\x49\x70\x7a']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6c\x41\x6f\x54\x47\x6b']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x74\x45\x54\x49\x61\x71']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x7a\x4d\x49\x7a\x46\x4d']=function(){const _0x2d1cf3=new RegExp(this['\x6c\x41\x6f\x54\x47\x6b']+this['\x74\x45\x54\x49\x61\x71']),_0x9ee7ee=_0x2d1cf3['\x74\x65\x73\x74'](this['\x44\x6e\x4f\x49\x70\x7a']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x68\x51\x69\x54\x42\x57'][-0x1afa+-0x1941+-0x1a1e*-0x2]:--this['\x68\x51\x69\x54\x42\x57'][0x2319+0x20af+-0x43c8];return this['\x5a\x6c\x54\x48\x51\x70'](_0x9ee7ee);},_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5a\x6c\x54\x48\x51\x70']=function(_0x5cb307){if(!Boolean(~_0x5cb307))return _0x5cb307;return this['\x4d\x42\x6d\x48\x51\x47'](this['\x76\x54\x58\x62\x63\x44']);},_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4d\x42\x6d\x48\x51\x47']=function(_0x550e2c){for(let _0x5211c4=-0x1f57*0x1+0x1881+0x7d*0xe,_0x35cc57=this['\x68\x51\x69\x54\x42\x57']['\x6c\x65\x6e\x67\x74\x68'];_0x5211c4<_0x35cc57;_0x5211c4++){this['\x68\x51\x69\x54\x42\x57']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x35cc57=this['\x68\x51\x69\x54\x42\x57']['\x6c\x65\x6e\x67\x74\x68'];}return _0x550e2c(this['\x68\x51\x69\x54\x42\x57'][0x2005+-0x1*-0x423+-0x2428]);},(''+function(){return 0x233b+0x3c4+-0x26ff*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x117+0x127*-0x3+0xe9*0x5)&&new _0x13aaac(_0x22f8)['\x7a\x4d\x49\x7a\x46\x4d'](),_0x22f8['\x5a\x56\x48\x42\x6f\x72']=!![];}_0x4d3d8f=_0x22f8['\x41\x54\x70\x5a\x54\x64'](_0x4d3d8f,_0x3d6093),_0x22f8['\x49\x53\x63\x78\x50\x4a'][_0x2c92d9]=_0x4d3d8f;}else _0x4d3d8f=_0x534e77;return _0x4d3d8f;}function _0xf96b(){const _0x24891f=['\x57\x34\x6c\x64\x53\x6d\x6f\x70\x6c\x62\x2f\x64\x4b\x4d\x42\x63\x51\x43\x6b\x76\x41\x43\x6f\x74\x57\x34\x7a\x6f\x67\x61','\x57\x51\x5a\x64\x48\x4a\x43\x6a\x68\x53\x6b\x36\x45\x43\x6f\x63','\x45\x6d\x6b\x41\x72\x59\x6c\x63\x56\x57','\x57\x37\x6a\x47\x57\x50\x33\x63\x53\x62\x31\x58\x44\x72\x38','\x57\x37\x61\x62\x57\x36\x4a\x63\x54\x53\x6b\x71\x76\x61','\x42\x43\x6b\x74\x57\x36\x74\x64\x4d\x57\x4f','\x78\x61\x2f\x63\x50\x6d\x6b\x4b\x57\x35\x47','\x57\x35\x78\x63\x56\x38\x6f\x70\x57\x34\x37\x64\x4c\x38\x6b\x75\x57\x37\x75\x47\x57\x36\x43\x70\x57\x34\x64\x63\x49\x38\x6b\x67','\x57\x4f\x43\x63\x62\x6d\x6b\x34\x63\x61','\x57\x34\x71\x4d\x57\x34\x4a\x63\x4b\x43\x6b\x32','\x79\x77\x66\x38\x57\x4f\x62\x45\x57\x37\x6a\x68\x7a\x61','\x75\x6d\x6b\x55\x75\x43\x6b\x78\x57\x34\x69','\x62\x74\x5a\x64\x4a\x68\x38\x72\x57\x35\x68\x63\x52\x63\x68\x63\x50\x33\x58\x66\x57\x34\x6e\x76\x57\x35\x34','\x57\x4f\x7a\x7a\x6b\x43\x6b\x4f\x45\x53\x6f\x75\x62\x38\x6f\x43','\x62\x6d\x6b\x6c\x57\x36\x6e\x2b\x77\x57','\x6b\x6d\x6b\x38\x57\x37\x4c\x54\x73\x4d\x43\x6a\x57\x4f\x4f','\x57\x37\x52\x63\x4d\x77\x54\x6b\x62\x53\x6b\x77\x41\x53\x6f\x4f\x65\x63\x69','\x71\x65\x31\x78\x6f\x43\x6b\x32','\x73\x4a\x2f\x63\x52\x38\x6b\x58\x57\x34\x75','\x57\x51\x30\x70\x57\x36\x6c\x64\x54\x53\x6b\x6e\x78\x38\x6f\x55\x57\x52\x43','\x57\x52\x42\x64\x52\x38\x6f\x4f\x57\x37\x79\x32\x57\x50\x47','\x68\x73\x6c\x64\x47\x31\x4e\x63\x4f\x4b\x72\x59\x57\x52\x47','\x75\x58\x42\x64\x51\x43\x6f\x56\x7a\x49\x4c\x6c\x41\x57','\x57\x37\x4c\x48\x6a\x43\x6f\x70\x57\x35\x4f','\x57\x50\x70\x64\x51\x6d\x6b\x69\x57\x50\x46\x63\x47\x53\x6f\x78\x57\x51\x71\x2f','\x76\x43\x6b\x61\x57\x4f\x4e\x63\x4f\x6d\x6b\x46','\x63\x58\x5a\x63\x53\x43\x6f\x56\x57\x35\x79\x55\x71\x30\x4b','\x6d\x77\x4b\x6a','\x45\x6d\x6b\x44\x61\x38\x6f\x58\x70\x6d\x6f\x5a\x69\x43\x6f\x36','\x62\x59\x30\x49\x63\x4c\x61','\x43\x32\x4e\x63\x4e\x63\x58\x77','\x46\x43\x6b\x49\x57\x51\x35\x42\x6d\x71','\x57\x51\x5a\x64\x52\x43\x6f\x4e\x57\x36\x75\x35\x57\x52\x56\x64\x4d\x43\x6b\x58','\x71\x48\x74\x64\x4c\x43\x6f\x50\x42\x71\x44\x78\x42\x71','\x57\x51\x44\x4a\x57\x35\x46\x63\x50\x78\x6d','\x57\x4f\x71\x61\x57\x34\x31\x4c\x6b\x57','\x76\x73\x5a\x64\x4b\x64\x56\x63\x52\x4b\x44\x36\x57\x51\x38','\x77\x38\x6b\x32\x43\x4a\x68\x63\x4d\x4b\x5a\x63\x4e\x68\x30','\x57\x34\x75\x64\x41\x38\x6f\x2b\x57\x35\x68\x64\x4e\x75\x6a\x64\x57\x4f\x34\x47','\x74\x38\x6b\x72\x57\x51\x4a\x63\x4d\x6d\x6b\x75\x57\x35\x66\x5a\x42\x47','\x57\x52\x72\x68\x57\x34\x68\x63\x53\x31\x33\x63\x47\x53\x6b\x57','\x76\x53\x6b\x79\x72\x74\x70\x63\x47\x75\x42\x63\x4c\x57','\x57\x35\x44\x6d\x57\x36\x78\x64\x48\x4c\x38\x33\x63\x43\x6b\x7a','\x79\x68\x62\x54\x57\x4f\x7a\x63\x57\x37\x66\x56\x44\x47','\x57\x52\x68\x64\x52\x38\x6f\x37\x57\x36\x4f\x30\x57\x50\x5a\x64\x56\x38\x6b\x50','\x57\x37\x44\x45\x57\x50\x53\x45\x75\x49\x46\x63\x55\x63\x7a\x36\x73\x68\x39\x55\x57\x36\x6d\x6c','\x57\x34\x46\x63\x55\x6d\x6b\x37\x72\x76\x30','\x57\x37\x64\x63\x55\x53\x6b\x34\x57\x52\x43\x34\x57\x51\x4a\x64\x49\x53\x6b\x58\x42\x43\x6b\x35','\x57\x35\x53\x47\x62\x53\x6f\x36\x6f\x59\x57\x55\x61\x71','\x57\x50\x31\x74\x6a\x61','\x57\x52\x46\x64\x52\x38\x6f\x51\x57\x36\x53\x4e\x57\x50\x74\x64\x54\x6d\x6b\x58','\x57\x34\x57\x61\x7a\x43\x6f\x36\x57\x51\x37\x63\x48\x63\x39\x55\x57\x4f\x4f\x49\x57\x37\x68\x63\x54\x38\x6f\x6f','\x77\x4d\x56\x63\x4c\x59\x58\x64\x57\x50\x78\x64\x56\x71','\x79\x68\x62\x54\x57\x4f\x7a\x63\x57\x37\x66\x39\x41\x57','\x57\x4f\x58\x56\x57\x35\x52\x63\x53\x4b\x34','\x78\x58\x5a\x64\x51\x6d\x6f\x38\x43\x59\x76\x43\x43\x57','\x72\x72\x42\x63\x55\x38\x6b\x79\x57\x37\x30','\x64\x6d\x6b\x56\x57\x36\x58\x34\x72\x71','\x43\x38\x6b\x58\x57\x36\x2f\x64\x4a\x59\x42\x63\x4f\x53\x6f\x46\x68\x61','\x57\x37\x6d\x78\x57\x36\x70\x63\x54\x6d\x6b\x56','\x41\x33\x53\x6c\x75\x71\x57\x7a\x70\x38\x6f\x51','\x57\x34\x56\x64\x50\x53\x6b\x68','\x57\x50\x44\x44\x70\x53\x6b\x4b\x79\x61','\x7a\x64\x64\x64\x4e\x53\x6f\x36\x72\x71','\x78\x72\x74\x64\x4b\x53\x6f\x35\x76\x48\x74\x64\x4f\x71','\x57\x34\x33\x63\x56\x53\x6b\x6f\x61\x57','\x7a\x75\x78\x63\x50\x6d\x6b\x66\x57\x51\x37\x63\x4b\x65\x53\x4f\x57\x34\x4e\x64\x51\x73\x2f\x63\x4d\x77\x65','\x6b\x4e\x68\x63\x52\x4a\x68\x64\x51\x53\x6f\x43\x57\x35\x64\x64\x53\x71','\x57\x50\x6e\x73\x6d\x53\x6b\x52\x57\x36\x38','\x57\x52\x65\x69\x57\x36\x72\x62\x6e\x57','\x57\x4f\x52\x64\x53\x65\x4f\x7a','\x44\x4e\x30\x6b\x42\x63\x69','\x57\x4f\x43\x78\x63\x53\x6b\x52\x63\x48\x4c\x75\x6b\x57','\x57\x4f\x4c\x70\x57\x36\x70\x63\x48\x53\x6f\x6f\x44\x38\x6b\x42\x57\x37\x38','\x57\x51\x33\x64\x4a\x53\x6f\x65\x57\x37\x43\x49','\x44\x68\x4c\x4a\x57\x4f\x39\x48','\x64\x6d\x6b\x37\x57\x36\x39\x53\x77\x71','\x79\x32\x70\x63\x55\x73\x58\x65','\x69\x53\x6b\x49\x57\x50\x65\x4d\x6e\x62\x47\x4c\x57\x4f\x47','\x43\x76\x4e\x64\x50\x43\x6b\x73\x57\x35\x43','\x41\x43\x6b\x4a\x77\x6d\x6b\x46\x57\x36\x6d','\x6f\x78\x79\x70\x69\x43\x6b\x43\x75\x4a\x61','\x72\x72\x6c\x64\x4f\x43\x6f\x5a\x46\x47\x6a\x6b','\x57\x51\x74\x64\x49\x59\x4f\x49\x57\x37\x61\x56\x57\x34\x48\x6c','\x62\x33\x52\x63\x55\x63\x6c\x64\x4e\x47','\x67\x73\x4a\x64\x4d\x4d\x74\x63\x53\x4c\x31\x34\x57\x50\x4b','\x57\x36\x52\x63\x4b\x53\x6f\x79\x57\x36\x34\x44\x65\x43\x6b\x2b\x57\x51\x30','\x57\x34\x57\x32\x67\x38\x6f\x4c\x6f\x57\x71\x4f\x70\x71','\x57\x50\x46\x63\x4f\x43\x6f\x44\x66\x53\x6b\x30\x64\x31\x6e\x34','\x57\x50\x50\x63\x63\x6d\x6b\x45\x57\x37\x47','\x6c\x58\x68\x64\x56\x6d\x6f\x43\x57\x36\x70\x64\x48\x73\x71\x70','\x57\x52\x52\x64\x4d\x33\x43\x51\x6d\x57','\x62\x31\x64\x63\x54\x48\x52\x64\x4f\x61','\x57\x35\x78\x64\x51\x38\x6b\x57\x46\x53\x6f\x71','\x64\x32\x4c\x32\x7a\x65\x46\x63\x50\x61','\x57\x37\x79\x62\x57\x37\x46\x63\x54\x38\x6b\x66\x78\x43\x6f\x6b\x57\x52\x6d','\x57\x36\x57\x62\x57\x34\x5a\x63\x56\x43\x6b\x78','\x57\x52\x7a\x6e\x57\x34\x78\x63\x54\x31\x4e\x63\x4b\x53\x6b\x38\x57\x4f\x4b','\x76\x48\x6c\x63\x55\x38\x6b\x56\x57\x34\x6d\x56','\x46\x65\x57\x52\x76\x72\x53\x79\x6f\x43\x6b\x4a','\x57\x52\x46\x64\x53\x38\x6b\x35\x57\x52\x6c\x63\x4c\x71','\x57\x4f\x52\x64\x55\x6d\x6f\x67\x72\x4d\x30','\x74\x38\x6b\x53\x57\x50\x44\x37\x6f\x61\x72\x49','\x75\x31\x64\x63\x4d\x5a\x50\x71\x57\x4f\x37\x64\x51\x49\x6d','\x63\x57\x5a\x64\x56\x43\x6f\x78\x57\x36\x71','\x57\x34\x53\x58\x57\x36\x4a\x63\x4f\x6d\x6b\x53','\x57\x34\x34\x48\x62\x53\x6f\x4c\x6b\x47','\x45\x32\x6a\x42\x6b\x53\x6b\x75','\x75\x71\x4a\x64\x53\x61\x39\x38\x57\x35\x76\x66\x77\x71','\x6a\x64\x37\x64\x4f\x43\x6f\x6b\x57\x35\x79','\x57\x37\x37\x63\x4e\x77\x4c\x6e\x77\x53\x6f\x36\x6c\x38\x6b\x48\x61\x58\x37\x63\x4a\x38\x6f\x34\x43\x6d\x6b\x76','\x6a\x75\x44\x6d\x57\x50\x35\x65\x57\x34\x39\x2f','\x57\x36\x2f\x64\x47\x61\x6d\x46\x57\x34\x4b\x45\x57\x35\x34','\x57\x35\x53\x75\x57\x35\x33\x63\x53\x53\x6b\x6f','\x57\x4f\x62\x79\x65\x6d\x6b\x48\x57\x36\x56\x64\x4d\x77\x4c\x63','\x57\x4f\x52\x64\x55\x6d\x6f\x48\x57\x34\x4b\x37','\x57\x51\x6a\x71\x57\x35\x4a\x63\x55\x75\x4a\x63\x50\x6d\x6b\x37\x57\x50\x53','\x66\x59\x42\x64\x48\x57','\x57\x37\x4a\x63\x47\x73\x71\x4f\x57\x36\x38\x4b\x57\x36\x4c\x42','\x57\x52\x46\x64\x52\x38\x6f\x51\x57\x36\x53\x4e\x57\x50\x74\x64\x55\x43\x6b\x57','\x6f\x74\x57\x4c\x57\x34\x30','\x6a\x63\x30\x39\x57\x35\x47\x61\x57\x51\x75\x77\x42\x49\x68\x64\x4c\x53\x6f\x53\x78\x67\x4b','\x57\x51\x76\x52\x57\x35\x2f\x63\x54\x76\x47','\x57\x51\x74\x64\x55\x43\x6f\x53','\x57\x35\x4a\x64\x52\x6d\x6b\x62\x44\x43\x6f\x36\x73\x58\x43\x4a','\x7a\x65\x64\x63\x52\x72\x57','\x6f\x48\x52\x64\x53\x6d\x6f\x46\x57\x34\x74\x64\x4a\x48\x4f\x75','\x43\x38\x6f\x51\x57\x52\x71\x38\x68\x5a\x62\x70\x57\x50\x5a\x63\x55\x6d\x6b\x39\x57\x51\x78\x64\x49\x38\x6b\x57','\x41\x43\x6b\x6f\x57\x50\x6e\x4e\x6f\x64\x38\x4d','\x57\x4f\x52\x64\x51\x6d\x6b\x73\x57\x35\x64\x63\x4a\x43\x6f\x78\x57\x51\x69\x49','\x57\x52\x39\x31\x68\x43\x6b\x46\x57\x34\x53','\x57\x34\x52\x63\x4f\x6d\x6f\x31\x57\x34\x65','\x46\x59\x46\x64\x4d\x38\x6f\x32\x74\x47','\x68\x33\x58\x4a\x43\x31\x4f','\x57\x36\x7a\x35\x6b\x43\x6f\x4d\x57\x36\x75','\x57\x50\x34\x72\x44\x72\x46\x63\x50\x38\x6f\x30','\x57\x36\x6a\x47\x57\x36\x52\x64\x53\x66\x65','\x57\x37\x38\x65\x57\x36\x6a\x34\x6b\x65\x42\x64\x4a\x47','\x45\x68\x69\x36\x72\x61\x65','\x45\x33\x6a\x47\x57\x4f\x48\x43\x57\x35\x35\x6c\x45\x57','\x57\x34\x44\x33\x57\x50\x2f\x63\x50\x58\x4f','\x64\x75\x75\x69\x69\x43\x6b\x68','\x57\x37\x6c\x63\x55\x38\x6b\x39\x57\x52\x6a\x54\x57\x51\x74\x64\x4b\x6d\x6b\x63\x44\x53\x6b\x46\x66\x57','\x43\x76\x50\x37\x57\x51\x35\x6a','\x68\x77\x31\x4e\x46\x65\x53','\x75\x58\x2f\x63\x55\x43\x6b\x75\x57\x34\x69','\x57\x52\x75\x63\x57\x34\x44\x45','\x57\x34\x4c\x65\x6c\x6d\x6f\x32\x57\x37\x4b','\x57\x4f\x39\x70\x57\x36\x33\x63\x4d\x43\x6f\x69','\x57\x34\x4e\x63\x51\x53\x6b\x44\x44\x31\x53','\x57\x36\x4f\x52\x61\x43\x6f\x31\x6d\x57','\x57\x52\x37\x63\x53\x38\x6b\x57\x45\x66\x30','\x6f\x32\x43\x74\x65\x53\x6b\x76','\x69\x66\x4e\x63\x54\x72\x46\x64\x56\x57','\x57\x4f\x78\x64\x56\x5a\x79\x72\x62\x57','\x57\x52\x2f\x64\x49\x73\x43\x53\x57\x36\x34\x61\x57\x37\x35\x42','\x41\x53\x6b\x4b\x57\x36\x52\x64\x48\x61\x79','\x57\x34\x46\x64\x53\x43\x6b\x68\x78\x6d\x6f\x57','\x57\x36\x34\x57\x64\x38\x6f\x7a\x6b\x49\x70\x64\x49\x47','\x6d\x57\x42\x64\x4e\x38\x6f\x4d\x57\x37\x4b','\x44\x4a\x74\x63\x4f\x38\x6b\x51\x57\x35\x38','\x57\x52\x56\x64\x4a\x64\x43\x6a\x68\x57','\x57\x50\x4e\x63\x53\x6d\x6b\x73\x44\x71','\x57\x51\x61\x43\x46\x64\x37\x63\x54\x61','\x57\x50\x46\x64\x54\x43\x6b\x66\x57\x51\x33\x63\x47\x53\x6f\x66\x57\x51\x4b\x62','\x79\x6d\x6b\x53\x57\x50\x54\x4d\x6c\x57\x38\x66\x57\x50\x38','\x57\x50\x2f\x64\x51\x62\x34\x37\x6f\x47','\x57\x37\x38\x36\x66\x53\x6f\x42','\x72\x68\x61\x56\x73\x71\x30\x45\x6c\x38\x6f\x34','\x57\x34\x5a\x64\x56\x43\x6b\x75\x74\x6d\x6f\x51\x76\x71','\x57\x35\x68\x63\x47\x73\x43\x50\x63\x38\x6f\x32\x6f\x33\x53\x6e\x70\x6d\x6f\x4a\x44\x43\x6b\x33','\x71\x64\x5a\x64\x47\x71\x48\x2b','\x76\x43\x6b\x74\x57\x36\x52\x64\x4c\x59\x56\x63\x51\x6d\x6f\x45','\x57\x51\x42\x64\x51\x38\x6f\x39\x57\x36\x43\x39','\x57\x50\x70\x64\x52\x6d\x6b\x39\x57\x4f\x52\x63\x56\x53\x6f\x71\x57\x50\x37\x63\x51\x61','\x57\x35\x53\x58\x65\x6d\x6f\x66\x6f\x57\x53\x34\x69\x57','\x6d\x68\x70\x63\x4f\x73\x6c\x64\x50\x43\x6f\x2f','\x45\x59\x42\x64\x52\x48\x76\x52','\x57\x4f\x68\x64\x55\x31\x4f\x70\x6f\x53\x6f\x70','\x42\x32\x4f\x2b\x71\x47','\x57\x51\x62\x55\x57\x36\x74\x63\x55\x67\x4b','\x71\x71\x2f\x63\x4f\x53\x6b\x4c\x57\x34\x75\x4b\x76\x65\x57','\x57\x51\x6c\x64\x49\x59\x71\x39\x57\x37\x79','\x7a\x77\x64\x64\x52\x6d\x6b\x34\x57\x37\x48\x36\x44\x74\x30','\x44\x33\x57\x54\x72\x47\x75','\x6a\x4d\x64\x63\x50\x74\x37\x64\x53\x47','\x64\x66\x2f\x64\x56\x53\x6f\x55\x57\x50\x58\x4a\x68\x47\x4b','\x57\x34\x78\x63\x4d\x6d\x6b\x50\x78\x68\x4f','\x57\x52\x68\x64\x51\x6d\x6b\x77\x57\x35\x43\x71\x6f\x76\x50\x42','\x57\x51\x64\x64\x47\x43\x6b\x42\x57\x50\x5a\x63\x53\x71','\x70\x38\x6b\x33\x41\x38\x6b\x4c\x57\x37\x71\x5a\x57\x50\x43','\x46\x53\x6b\x44\x65\x53\x6f\x57\x6c\x38\x6f\x37\x6b\x53\x6f\x49','\x57\x34\x75\x77\x62\x6d\x6f\x4c\x6c\x57','\x57\x34\x72\x4f\x6f\x38\x6f\x50\x57\x34\x6d','\x57\x4f\x2f\x64\x50\x53\x6b\x51\x57\x34\x78\x63\x52\x38\x6f\x42\x57\x52\x68\x63\x55\x47','\x57\x35\x50\x68\x57\x36\x6c\x64\x4b\x75\x4f\x58\x67\x71','\x57\x4f\x74\x64\x50\x6d\x6b\x4b\x57\x50\x70\x63\x56\x61','\x57\x51\x74\x64\x48\x77\x44\x57\x45\x47','\x74\x57\x4e\x64\x47\x43\x6f\x59\x77\x47\x4a\x64\x50\x47','\x79\x75\x7a\x72\x61\x43\x6b\x4c','\x6c\x67\x75\x69\x68\x6d\x6b\x79\x79\x63\x50\x37','\x73\x6d\x6b\x41\x57\x51\x4a\x63\x47\x71','\x6f\x4d\x43\x6a\x68\x38\x6b\x79\x71\x48\x39\x58','\x72\x6d\x6b\x57\x74\x59\x65','\x79\x75\x76\x71','\x57\x51\x37\x64\x4d\x73\x4f\x76\x61\x53\x6b\x54\x46\x43\x6f\x4c','\x57\x35\x68\x63\x50\x53\x6b\x72\x65\x74\x4b\x56\x6c\x30\x64\x64\x55\x53\x6b\x64\x57\x37\x43','\x57\x52\x2f\x64\x47\x72\x38\x70\x64\x53\x6b\x47\x41\x6d\x6f\x49','\x57\x51\x33\x64\x49\x6d\x6b\x33\x57\x50\x74\x63\x54\x71','\x77\x32\x56\x63\x55\x63\x54\x6f','\x43\x30\x66\x37\x65\x6d\x6b\x69','\x6c\x48\x68\x64\x53\x6d\x6f\x62\x57\x37\x74\x64\x49\x61','\x57\x52\x46\x64\x56\x38\x6f\x6e\x79\x30\x69','\x75\x72\x78\x64\x50\x38\x6f\x58\x74\x61\x62\x79\x45\x47','\x57\x52\x48\x58\x63\x43\x6b\x57\x7a\x47','\x57\x51\x37\x64\x4e\x53\x6b\x62\x57\x35\x4b\x77\x6f\x61','\x6f\x43\x6f\x72\x68\x53\x6f\x49\x57\x34\x30\x69\x57\x50\x38\x45\x72\x53\x6b\x76','\x79\x4d\x58\x30\x63\x6d\x6b\x4f','\x68\x5a\x6c\x64\x51\x6d\x6f\x4e\x57\x35\x34','\x7a\x43\x6b\x61\x72\x6d\x6b\x39\x57\x37\x69\x71\x57\x4f\x65\x55','\x6c\x48\x33\x64\x54\x53\x6f\x44\x57\x37\x42\x64\x4a\x61','\x77\x38\x6b\x61\x44\x47\x4a\x63\x4a\x61','\x79\x53\x6b\x4a\x57\x50\x39\x46\x6f\x61','\x78\x6d\x6b\x39\x57\x37\x52\x64\x49\x73\x46\x63\x55\x6d\x6f\x73\x64\x47','\x6b\x4d\x6d\x65\x68\x53\x6b\x70\x71\x48\x4c\x47','\x57\x35\x6c\x64\x4d\x53\x6b\x62\x77\x43\x6f\x52\x71\x57','\x57\x36\x6e\x51\x57\x50\x64\x63\x52\x62\x54\x4e\x74\x57\x4b','\x57\x34\x69\x44\x65\x53\x6f\x70\x65\x61','\x6f\x38\x6b\x59\x57\x37\x4c\x47\x73\x68\x53\x73\x57\x4f\x61','\x62\x4b\x2f\x63\x54\x4a\x46\x64\x54\x61','\x57\x4f\x4e\x64\x4f\x53\x6f\x72\x72\x67\x34\x77\x6a\x47','\x57\x4f\x69\x6e\x7a\x48\x52\x63\x51\x43\x6f\x31\x57\x34\x57','\x7a\x53\x6b\x2b\x57\x37\x56\x64\x4a\x49\x61','\x46\x53\x6b\x44\x65\x53\x6f\x57\x6c\x38\x6f\x37\x6c\x43\x6f\x55'];_0xf96b=function(){return _0x24891f;};return _0xf96b();}const _0x4c5bd8=_0x22f8;(function(_0x5300cb,_0x4c7c4a){const _0x5856ec=_0x22f8,_0x4c1e71=_0x5300cb();while(!![]){try{const _0x24fcdf=parseInt(_0x5856ec(0xd3,'\x7a\x47\x51\x4e'))/(0x13*0x65+0x1a75+0x1*-0x21f3)+-parseInt(_0x5856ec(0x115,'\x69\x65\x5a\x6d'))/(0xc03+-0x8*-0x10a+-0x1451*0x1)*(parseInt(_0x5856ec(0xff,'\x23\x73\x45\x28'))/(0x5*-0xc7+0x172e+-0x269*0x8))+parseInt(_0x5856ec(0x168,'\x6a\x74\x4c\x41'))/(0x10*0x1db+-0x2*-0x1126+-0x3ff8)+parseInt(_0x5856ec(0xaf,'\x30\x7a\x6c\x6c'))/(-0x7*0x79+-0x1*-0x2071+-0x1d1d)+-parseInt(_0x5856ec(0x16e,'\x4a\x7a\x6d\x61'))/(0x8*-0x9e+0x1d61+-0x186b)+-parseInt(_0x5856ec(0x15e,'\x6a\x74\x4c\x41'))/(-0xcdd+0x2*-0x19d+0x101e)*(-parseInt(_0x5856ec(0xef,'\x58\x5e\x2a\x77'))/(0xc0c+-0x25*0x45+0x20b*-0x1))+parseInt(_0x5856ec(0x178,'\x39\x46\x67\x6e'))/(0x676+0x24d2+-0x1*0x2b3f)*(-parseInt(_0x5856ec(0x15d,'\x23\x73\x45\x28'))/(-0x176c+-0x1fc*-0x7+0x62*0x19));if(_0x24fcdf===_0x4c7c4a)break;else _0x4c1e71['push'](_0x4c1e71['shift']());}catch(_0x4e2605){_0x4c1e71['push'](_0x4c1e71['shift']());}}}(_0xf96b,0x1*-0x1c4cff+0x161ea5+0x8b*0x25d9));const _0x16cf3b=require(_0x4c5bd8(0x165,'\x21\x45\x59\x70')+_0x4c5bd8(0x128,'\x4a\x7a\x6d\x61')),_0x423917={'\x6e\x61\x6d\x65':_0x4c5bd8(0xbd,'\x6d\x6e\x4c\x73'),'\x67\x65\x74\x41\x64\x76\x69\x63\x65'(_0x141ce8){const _0x3c4414=_0x4c5bd8;return _0x16cf3b[_0x3c4414(0x104,'\x49\x57\x35\x6c')+_0x3c4414(0xb1,'\x43\x66\x34\x42')](_0x141ce8);},'\x72\x65\x63\x6f\x72\x64\x53\x69\x67\x6e\x61\x6c\x53\x6e\x61\x70\x73\x68\x6f\x74'(_0x7c3380){const _0x405952=_0x4c5bd8;return _0x16cf3b[_0x405952(0x124,'\x6a\x74\x4c\x41')+_0x405952(0x16d,'\x76\x40\x74\x2a')+_0x405952(0x97,'\x39\x46\x67\x6e')](_0x7c3380);},'\x72\x65\x63\x6f\x72\x64\x48\x79\x70\x6f\x74\x68\x65\x73\x69\x73'(_0x22343e){const _0x28c3a0=_0x4c5bd8;return _0x16cf3b[_0x28c3a0(0xc4,'\x6f\x23\x56\x4c')+_0x28c3a0(0x107,'\x40\x73\x37\x56')](_0x22343e);},'\x72\x65\x63\x6f\x72\x64\x41\x74\x74\x65\x6d\x70\x74'(_0x5d7b8a){const _0x3918d1=_0x4c5bd8;return _0x16cf3b[_0x3918d1(0xe5,'\x46\x35\x54\x5d')+_0x3918d1(0xbb,'\x21\x45\x59\x70')](_0x5d7b8a);},'\x72\x65\x63\x6f\x72\x64\x4f\x75\x74\x63\x6f\x6d\x65'(_0x4d7d8b){const _0x113956=_0x4c5bd8;return _0x16cf3b[_0x113956(0xee,'\x6f\x23\x56\x4c')+_0x113956(0xcd,'\x46\x35\x54\x5d')+_0x113956(0xe6,'\x4f\x29\x66\x6a')](_0x4d7d8b);},'\x72\x65\x63\x6f\x72\x64\x45\x78\x74\x65\x72\x6e\x61\x6c\x43\x61\x6e\x64\x69\x64\x61\x74\x65'(_0x2be785){const _0x4de3ea=_0x4c5bd8;return _0x16cf3b['\x72\x65\x63\x6f\x72\x64\x45\x78'+_0x4de3ea(0x10b,'\x6f\x23\x56\x4c')+_0x4de3ea(0xc8,'\x34\x76\x5e\x50')](_0x2be785);},'\x6d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x50\x61\x74\x68'(){const _0x235e5e=_0x4c5bd8;return _0x16cf3b[_0x235e5e(0xaa,'\x42\x40\x6d\x25')+'\x61\x70\x68\x50\x61\x74\x68']();},'\x63\x6f\x6d\x70\x75\x74\x65\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79'(_0x269cb3){const _0xe02e9b=_0x4c5bd8;return _0x16cf3b[_0xe02e9b(0x144,'\x49\x57\x35\x6c')+_0xe02e9b(0x17a,'\x6a\x74\x4c\x41')](_0x269cb3);},'\x74\x72\x79\x52\x65\x61\x64\x4d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x45\x76\x65\x6e\x74\x73'(_0x2663ec){const _0x440330=_0x4c5bd8;return _0x16cf3b[_0x440330(0xb4,'\x37\x31\x65\x6f')+_0x440330(0xbc,'\x66\x54\x34\x68')+_0x440330(0xd4,'\x23\x73\x45\x28')](_0x2663ec);}};function _0x4b459c(){const _0x4399f1=_0x4c5bd8,_0x5f504f={'\x6e\x72\x4e\x55\x6e':function(_0x1f88c0,_0x1e729a,_0x151daf){return _0x1f88c0(_0x1e729a,_0x151daf);},'\x6e\x48\x79\x71\x72':_0x4399f1(0x102,'\x4e\x28\x6f\x63')+'\x73\x74','\x63\x4f\x75\x47\x79':'\x68\x79\x70\x6f\x74\x68\x65\x73'+'\x69\x73','\x43\x46\x67\x63\x56':'\x4d\x45\x4d\x4f\x52\x59\x5f\x47'+'\x52\x41\x50\x48\x5f\x52\x45\x4d'+'\x4f\x54\x45\x5f\x55\x52\x4c\x20'+_0x4399f1(0xc7,'\x4e\x32\x33\x63')+_0x4399f1(0xb7,'\x54\x4c\x71\x29'),'\x61\x41\x66\x7a\x4f':function(_0x1b3d2c,_0x8a2812){return _0x1b3d2c!==_0x8a2812;},'\x71\x73\x66\x6d\x4b':_0x4399f1(0xa5,'\x70\x41\x58\x61'),'\x66\x4c\x55\x67\x55':'\x4d\x74\x6e\x6b\x55','\x55\x67\x75\x62\x50':function(_0x3ba9a2,_0x3417ac,_0x41e926){return _0x3ba9a2(_0x3417ac,_0x41e926);},'\x79\x4a\x70\x79\x41':_0x4399f1(0x16c,'\x47\x23\x71\x74'),'\x74\x6c\x73\x5a\x43':_0x4399f1(0xd2,'\x23\x73\x45\x28')+_0x4399f1(0x170,'\x40\x73\x37\x56'),'\x77\x68\x6f\x54\x75':function(_0x52032e,_0x544a2a){return _0x52032e===_0x544a2a;},'\x57\x6c\x47\x64\x66':'\x75\x78\x51\x4b\x68','\x74\x4c\x41\x6b\x63':function(_0x48688d,_0x45abb0){return _0x48688d===_0x45abb0;},'\x4f\x72\x68\x4d\x6e':_0x4399f1(0xd9,'\x7a\x47\x51\x4e'),'\x4d\x75\x75\x6f\x48':_0x4399f1(0x127,'\x70\x41\x58\x61'),'\x6d\x73\x52\x51\x6e':function(_0x4b97ff,_0x152e5f){return _0x4b97ff(_0x152e5f);},'\x52\x47\x58\x57\x6c':function(_0x3da0e4,_0x576c2c){return _0x3da0e4===_0x576c2c;},'\x4f\x56\x6e\x76\x76':'\x71\x4f\x70\x56\x62','\x4b\x42\x41\x51\x57':function(_0x5a28e7,..._0x11efe3){return _0x5a28e7(..._0x11efe3);},'\x47\x66\x62\x64\x74':_0x4399f1(0x112,'\x39\x46\x67\x6e'),'\x66\x6b\x59\x4b\x6e':function(_0x35db74,..._0x20b1d0){return _0x35db74(..._0x20b1d0);},'\x41\x41\x6a\x7a\x48':_0x4399f1(0x109,'\x70\x41\x58\x61')+'\x63\x65','\x57\x43\x66\x67\x57':_0x4399f1(0xe1,'\x76\x40\x74\x2a'),'\x5a\x70\x64\x4b\x52':_0x4399f1(0xcb,'\x54\x33\x62\x34'),'\x78\x78\x79\x42\x51':function(_0x53db02){return _0x53db02();},'\x6a\x62\x45\x46\x4f':_0x4399f1(0xe8,'\x7a\x31\x4c\x43'),'\x4c\x4d\x43\x77\x6e':_0x4399f1(0xeb,'\x7a\x47\x51\x4e'),'\x4d\x70\x4d\x63\x71':function(_0x4187c5,_0x32b62f,_0x5cd1b7){return _0x4187c5(_0x32b62f,_0x5cd1b7);},'\x46\x76\x64\x65\x44':_0x4399f1(0xba,'\x70\x41\x58\x61')+_0x4399f1(0x129,'\x43\x66\x34\x42')+'\x74\x65','\x4a\x6c\x75\x6f\x62':function(_0x1f391d,_0x3491f0){return _0x1f391d(_0x3491f0);},'\x74\x59\x57\x4d\x64':_0x4399f1(0x151,'\x70\x41\x58\x61'),'\x6e\x75\x54\x50\x64':function(_0x5ca3a1,_0x5db1d5,_0x2e2b27){return _0x5ca3a1(_0x5db1d5,_0x2e2b27);}},_0x308ae7=process.env.MEMORY_GRAPH_REMOTE_URL||'',_0x2dc828=process.env.MEMORY_GRAPH_REMOTE_KEY||'',_0x46ab1c=_0x5f504f[_0x4399f1(0xed,'\x43\x66\x34\x42')](Number,process.env.MEMORY_GRAPH_REMOTE_TIMEOUT_MS)||-0x527+-0xd*-0x2cd+0xbba*-0x1;async function _0x22c5ae(_0x26227b,_0x1ab0e8){const _0x3da35e=_0x4399f1;if(!_0x308ae7)throw new Error(_0x5f504f[_0x3da35e(0xc2,'\x40\x73\x37\x56')]);const _0xf25b8f=''+_0x308ae7[_0x3da35e(0x117,'\x4b\x73\x51\x5d')](/\/+$/,'')+_0x26227b,_0x5c4739=new AbortController(),_0x4208f9=setTimeout(()=>_0x5c4739[_0x3da35e(0x159,'\x37\x31\x65\x6f')](),_0x46ab1c);try{if(_0x5f504f[_0x3da35e(0xc0,'\x4a\x39\x59\x47')](_0x5f504f[_0x3da35e(0x12a,'\x4e\x28\x6f\x63')],_0x5f504f[_0x3da35e(0xb9,'\x4b\x73\x51\x5d')])){const _0x590974=await _0x5f504f[_0x3da35e(0x100,'\x4f\x44\x58\x50')](fetch,_0xf25b8f,{'\x6d\x65\x74\x68\x6f\x64':_0x5f504f[_0x3da35e(0x15c,'\x76\x40\x74\x2a')],'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x5f504f[_0x3da35e(0xcc,'\x4f\x44\x58\x50')],..._0x2dc828?{'\x41\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e':_0x3da35e(0x155,'\x42\x40\x6d\x25')+_0x2dc828}:{}},'\x62\x6f\x64\x79':JSON[_0x3da35e(0xf9,'\x6a\x74\x4c\x41')+'\x79'](_0x1ab0e8),'\x73\x69\x67\x6e\x61\x6c':_0x5c4739[_0x3da35e(0x176,'\x30\x21\x36\x6b')]});if(!_0x590974['\x6f\x6b']){if(_0x5f504f[_0x3da35e(0x96,'\x70\x41\x58\x61')](_0x3da35e(0x139,'\x21\x67\x21\x74'),_0x5f504f[_0x3da35e(0x13c,'\x47\x23\x71\x74')]))return _0x3b264b['\x63\x6f\x6d\x70\x75\x74\x65\x53'+_0x3da35e(0x132,'\x4e\x38\x40\x74')](_0x2509bc);else throw new Error('\x72\x65\x6d\x6f\x74\x65\x5f\x6b'+_0x3da35e(0x152,'\x6d\x6e\x4c\x73')+'\x20'+_0x590974[_0x3da35e(0x14d,'\x4a\x48\x6c\x63')]);}return await _0x590974[_0x3da35e(0xa7,'\x58\x5e\x2a\x77')]();}else{const _0x47dd7b=_0x457245[_0x3da35e(0xfc,'\x56\x72\x5a\x50')+_0x3da35e(0xe9,'\x4a\x7a\x6d\x61')](_0x3d8091);return _0x5f504f[_0x3da35e(0xa4,'\x76\x40\x74\x2a')](_0x579988,_0x5f504f[_0x3da35e(0x15a,'\x4f\x44\x58\x50')],{'\x6b\x69\x6e\x64':_0x5f504f[_0x3da35e(0x94,'\x6a\x74\x4c\x41')],'\x65\x76\x65\x6e\x74':_0x47dd7b})[_0x3da35e(0x11d,'\x4a\x39\x59\x47')](()=>{}),_0x47dd7b;}}finally{if(_0x5f504f['\x74\x4c\x41\x6b\x63'](_0x5f504f[_0x3da35e(0x162,'\x21\x67\x21\x74')],_0x5f504f[_0x3da35e(0xca,'\x30\x7a\x6c\x6c')]))return _0x46a29f[_0x3da35e(0xe7,'\x6c\x58\x40\x57')+_0x3da35e(0x11f,'\x37\x31\x65\x6f')+_0x3da35e(0xe6,'\x4f\x29\x66\x6a')](_0x1b7577);else _0x5f504f[_0x3da35e(0x9a,'\x4a\x39\x59\x47')](clearTimeout,_0x4208f9);}}function _0x3818fe(_0x586822,_0x9c8894){return async function(..._0x4148d4){const _0x4af00c=_0x22f8;if(_0x5f504f[_0x4af00c(0x14a,'\x54\x4c\x71\x29')](_0x5f504f[_0x4af00c(0xfd,'\x4a\x7a\x6d\x61')],_0x5f504f[_0x4af00c(0xb6,'\x6d\x56\x57\x28')]))try{return await _0x5f504f[_0x4af00c(0x171,'\x69\x65\x5a\x6d')](_0x9c8894,..._0x4148d4);}catch(_0x2fe262){if(_0x5f504f[_0x4af00c(0xb0,'\x6d\x56\x57\x28')](_0x5f504f[_0x4af00c(0x10d,'\x47\x23\x71\x74')],_0x5f504f[_0x4af00c(0x13b,'\x4a\x7a\x6d\x61')]))return _0x5f504f[_0x4af00c(0xd7,'\x4f\x44\x58\x50')](_0x586822,..._0x4148d4);else throw new _0x3efaf0(_0x4af00c(0x149,'\x76\x40\x74\x2a')+_0x4af00c(0x156,'\x47\x23\x71\x74')+'\x20'+_0x50f844[_0x4af00c(0xae,'\x4f\x29\x66\x6a')]);}else return _0x955684[_0x4af00c(0x11a,'\x6a\x74\x4c\x41')+_0x4af00c(0xa6,'\x23\x73\x45\x28')](_0x150eff);};}return{'\x6e\x61\x6d\x65':_0x5f504f[_0x4399f1(0xe2,'\x52\x39\x26\x69')],'\x67\x65\x74\x41\x64\x76\x69\x63\x65':_0x5f504f[_0x4399f1(0x148,'\x69\x65\x5a\x6d')](_0x3818fe,_0x34cd67=>_0x16cf3b[_0x4399f1(0x16b,'\x4f\x29\x66\x6a')+_0x4399f1(0x118,'\x52\x39\x26\x69')](_0x34cd67),async _0xff1cda=>{const _0x2f3734=_0x4399f1,_0x539487=await _0x22c5ae(_0x5f504f[_0x2f3734(0xf4,'\x43\x66\x34\x42')],{'\x73\x69\x67\x6e\x61\x6c\x73':_0xff1cda[_0x2f3734(0x12f,'\x54\x33\x62\x34')],'\x67\x65\x6e\x65\x73':(_0xff1cda[_0x2f3734(0x133,'\x69\x65\x5a\x6d')]||[])[_0x2f3734(0x164,'\x49\x57\x35\x6c')](_0x452ed2=>({'\x69\x64':_0x452ed2['\x69\x64'],'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x452ed2[_0x2f3734(0xfe,'\x4a\x7a\x6d\x61')],'\x74\x79\x70\x65':_0x452ed2[_0x2f3734(0xb8,'\x6d\x6e\x4c\x73')]})),'\x64\x72\x69\x66\x74\x45\x6e\x61\x62\x6c\x65\x64':_0xff1cda[_0x2f3734(0x163,'\x4b\x73\x51\x5d')+_0x2f3734(0x135,'\x54\x4c\x71\x29')]});return{'\x63\x75\x72\x72\x65\x6e\x74\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79':_0x539487[_0x2f3734(0x146,'\x37\x31\x65\x6f')+_0x2f3734(0x126,'\x78\x69\x39\x79')]||_0x16cf3b[_0x2f3734(0xf0,'\x23\x73\x45\x28')+_0x2f3734(0xa0,'\x21\x45\x59\x70')](_0xff1cda[_0x2f3734(0x141,'\x78\x69\x39\x79')]),'\x70\x72\x65\x66\x65\x72\x72\x65\x64\x47\x65\x6e\x65\x49\x64':_0x539487['\x70\x72\x65\x66\x65\x72\x72\x65'+_0x2f3734(0x16f,'\x42\x40\x6d\x25')]||null,'\x62\x61\x6e\x6e\x65\x64\x47\x65\x6e\x65\x49\x64\x73':new Set(_0x539487[_0x2f3734(0xcf,'\x46\x35\x54\x5d')+_0x2f3734(0x14f,'\x4e\x28\x6f\x63')]||[]),'\x65\x78\x70\x6c\x61\x6e\x61\x74\x69\x6f\x6e':Array['\x69\x73\x41\x72\x72\x61\x79'](_0x539487['\x65\x78\x70\x6c\x61\x6e\x61\x74'+_0x2f3734(0x10a,'\x46\x35\x54\x5d')])?_0x539487[_0x2f3734(0x15b,'\x6d\x56\x57\x28')+_0x2f3734(0x120,'\x56\x72\x5a\x50')]:[]};}),'\x72\x65\x63\x6f\x72\x64\x53\x69\x67\x6e\x61\x6c\x53\x6e\x61\x70\x73\x68\x6f\x74'(_0x5d13ce){const _0x32e044=_0x4399f1,_0x102ad5=_0x16cf3b[_0x32e044(0x142,'\x21\x45\x59\x70')+_0x32e044(0xda,'\x78\x69\x39\x79')+_0x32e044(0xce,'\x53\x52\x53\x6c')](_0x5d13ce);return _0x5f504f['\x55\x67\x75\x62\x50'](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x32e044(0xf1,'\x52\x39\x26\x69')],'\x65\x76\x65\x6e\x74':_0x102ad5})[_0x32e044(0xb2,'\x21\x67\x21\x74')](()=>{}),_0x102ad5;},'\x72\x65\x63\x6f\x72\x64\x48\x79\x70\x6f\x74\x68\x65\x73\x69\x73'(_0x3e86cb){const _0x573eec=_0x4399f1,_0x1e0051=_0x16cf3b[_0x573eec(0x121,'\x21\x67\x21\x74')+_0x573eec(0xe4,'\x43\x66\x34\x42')](_0x3e86cb);return _0x22c5ae(_0x5f504f[_0x573eec(0x101,'\x70\x41\x58\x61')],{'\x6b\x69\x6e\x64':_0x5f504f[_0x573eec(0x9e,'\x4e\x38\x40\x74')],'\x65\x76\x65\x6e\x74':_0x1e0051})[_0x573eec(0x9d,'\x46\x35\x54\x5d')](()=>{}),_0x1e0051;},'\x72\x65\x63\x6f\x72\x64\x41\x74\x74\x65\x6d\x70\x74'(_0x2be4c5){const _0x1aad3a=_0x4399f1,_0x1a6eb8=_0x16cf3b[_0x1aad3a(0xb3,'\x4e\x32\x33\x63')+_0x1aad3a(0x99,'\x25\x4b\x50\x38')](_0x2be4c5),_0x18ac23={};return _0x18ac23[_0x1aad3a(0xd0,'\x52\x39\x26\x69')]=_0x5f504f[_0x1aad3a(0x106,'\x58\x47\x43\x40')],_0x18ac23[_0x1aad3a(0xbe,'\x4e\x38\x40\x74')]=_0x1a6eb8,_0x22c5ae(_0x1aad3a(0x145,'\x6d\x40\x25\x62')+'\x73\x74',_0x18ac23)[_0x1aad3a(0x179,'\x6d\x6e\x4c\x73')](()=>{}),_0x1a6eb8;},'\x72\x65\x63\x6f\x72\x64\x4f\x75\x74\x63\x6f\x6d\x65'(_0x1e1c0e){const _0x36db14=_0x4399f1;if(_0x5f504f[_0x36db14(0x111,'\x4b\x73\x51\x5d')](_0x5f504f[_0x36db14(0x14c,'\x4f\x29\x66\x6a')],_0x36db14(0x158,'\x4e\x28\x6f\x63')))return _0x5f504f['\x78\x78\x79\x42\x51'](_0x3b99f4);else{const _0x490a6d=_0x16cf3b['\x72\x65\x63\x6f\x72\x64\x4f\x75'+_0x36db14(0x116,'\x53\x52\x53\x6c')+_0x36db14(0xdc,'\x37\x33\x58\x66')](_0x1e1c0e);return _0x490a6d&&_0x5f504f[_0x36db14(0x108,'\x53\x52\x53\x6c')](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x36db14(0xdb,'\x56\x72\x5a\x50')],'\x65\x76\x65\x6e\x74':_0x490a6d})[_0x36db14(0x174,'\x4a\x48\x6c\x63')](()=>{}),_0x490a6d;}},'\x72\x65\x63\x6f\x72\x64\x45\x78\x74\x65\x72\x6e\x61\x6c\x43\x61\x6e\x64\x69\x64\x61\x74\x65'(_0x329895){const _0x514490=_0x4399f1,_0x5ca07e=_0x16cf3b[_0x514490(0xc1,'\x37\x33\x58\x66')+_0x514490(0x14e,'\x4e\x28\x6f\x63')+_0x514490(0x123,'\x47\x23\x71\x74')](_0x329895);return _0x5ca07e&&_0x5f504f[_0x514490(0x9c,'\x58\x5e\x2a\x77')](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x514490(0xa1,'\x43\x66\x34\x42')],'\x65\x76\x65\x6e\x74':_0x5ca07e})[_0x514490(0xb2,'\x21\x67\x21\x74')](()=>{}),_0x5ca07e;},'\x6d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x50\x61\x74\x68'(){const _0x1675a8=_0x4399f1;return _0x16cf3b[_0x1675a8(0xe0,'\x5a\x41\x54\x54')+_0x1675a8(0x140,'\x46\x35\x54\x5d')]();},'\x63\x6f\x6d\x70\x75\x74\x65\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79'(_0xd3d199){const _0x50856b=_0x4399f1;return _0x16cf3b['\x63\x6f\x6d\x70\x75\x74\x65\x53'+_0x50856b(0x10f,'\x21\x67\x21\x74')](_0xd3d199);},'\x74\x72\x79\x52\x65\x61\x64\x4d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x45\x76\x65\x6e\x74\x73'(_0x3f6d2e){const _0x38653f=_0x4399f1;return _0x16cf3b[_0x38653f(0xa9,'\x40\x73\x37\x56')+_0x38653f(0x105,'\x78\x69\x39\x79')+_0x38653f(0x12b,'\x6d\x6e\x4c\x73')](_0x3f6d2e);}};}function _0x3ce113(){const _0x357165=_0x4c5bd8,_0x25b3ba={'\x4a\x4d\x6b\x6d\x72':_0x357165(0xbf,'\x70\x41\x58\x61')+_0x357165(0x172,'\x4e\x32\x33\x63'),'\x77\x62\x4c\x6b\x54':function(_0x2d993b,_0x491f44,_0x1ad172){return _0x2d993b(_0x491f44,_0x1ad172);},'\x72\x6a\x44\x4e\x4a':_0x357165(0xec,'\x30\x21\x36\x6b'),'\x55\x43\x6f\x50\x7a':function(_0x4bca9e,_0x42dcbb){return _0x4bca9e!==_0x42dcbb;},'\x44\x6c\x78\x72\x58':_0x357165(0x13a,'\x6a\x74\x4c\x41'),'\x58\x4b\x78\x45\x42':_0x357165(0x9f,'\x23\x73\x45\x28'),'\x65\x6d\x7a\x76\x70':function(_0xf3b16c,_0x4c1328){return _0xf3b16c===_0x4c1328;},'\x67\x79\x7a\x6d\x4b':_0x357165(0x177,'\x34\x76\x5e\x50'),'\x64\x77\x68\x73\x46':'\x69\x42\x63\x7a\x78','\x56\x7a\x67\x57\x59':function(_0x53f21d,_0x4975b7,_0x555fc4){return _0x53f21d(_0x4975b7,_0x555fc4);},'\x59\x70\x58\x6b\x6a':_0x357165(0x113,'\x49\x57\x35\x6c')+'\x73\x74','\x6d\x6e\x44\x4b\x4b':_0x357165(0x137,'\x46\x36\x32\x36')+_0x357165(0xad,'\x6d\x6e\x4c\x73')+'\x74\x65','\x6a\x55\x6d\x72\x71':_0x357165(0xdf,'\x76\x40\x74\x2a'),'\x45\x59\x76\x67\x72':function(_0x5e43c9){return _0x5e43c9();},'\x74\x46\x57\x43\x52':function(_0x17f9a4,_0x80b159){return _0x17f9a4===_0x80b159;},'\x51\x5a\x6e\x61\x79':_0x357165(0xf3,'\x4e\x28\x6f\x63'),'\x61\x46\x71\x4d\x63':function(_0x3933b6){return _0x3933b6();}},_0x34c0d9=(function(){const _0x4bd3d0=_0x357165,_0x41912a={'\x44\x46\x76\x4a\x66':function(_0xaba076,_0x5bbf50,_0xc0185c){const _0x1c307a=_0x22f8;return _0x25b3ba[_0x1c307a(0x134,'\x39\x46\x67\x6e')](_0xaba076,_0x5bbf50,_0xc0185c);},'\x46\x42\x4d\x48\x52':_0x4bd3d0(0x13d,'\x42\x40\x6d\x25')+'\x73\x74','\x70\x6b\x58\x52\x6c':_0x25b3ba['\x72\x6a\x44\x4e\x4a'],'\x78\x78\x72\x64\x6f':function(_0x17f610,_0x11fedd){const _0x2a01ad=_0x4bd3d0;return _0x25b3ba[_0x2a01ad(0x17c,'\x46\x35\x54\x5d')](_0x17f610,_0x11fedd);},'\x6f\x64\x46\x63\x6c':_0x4bd3d0(0x13e,'\x66\x54\x34\x68'),'\x4d\x64\x6e\x47\x72':_0x25b3ba[_0x4bd3d0(0x143,'\x4e\x38\x40\x74')],'\x56\x78\x6c\x64\x73':_0x25b3ba[_0x4bd3d0(0xfa,'\x5a\x41\x54\x54')],'\x50\x41\x44\x42\x51':function(_0x36e5f1,_0xf51bbf){return _0x25b3ba['\x65\x6d\x7a\x76\x70'](_0x36e5f1,_0xf51bbf);},'\x45\x68\x68\x62\x6d':_0x25b3ba[_0x4bd3d0(0xc6,'\x58\x47\x43\x40')]};if(_0x25b3ba[_0x4bd3d0(0xc9,'\x4e\x32\x33\x63')](_0x25b3ba['\x64\x77\x68\x73\x46'],_0x4bd3d0(0xde,'\x4f\x44\x58\x50')))return _0x3bfbc8[_0x4bd3d0(0x114,'\x52\x39\x26\x69')]()['\x73\x65\x61\x72\x63\x68'](_0x4bd3d0(0x147,'\x4f\x29\x66\x6a')+_0x4bd3d0(0x167,'\x6a\x74\x4c\x41'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4bd3d0(0x119,'\x34\x76\x5e\x50')+_0x4bd3d0(0x12c,'\x4f\x29\x66\x6a')](_0x248c7e)[_0x4bd3d0(0xd8,'\x76\x40\x74\x2a')](XGThFS[_0x4bd3d0(0x12e,'\x54\x33\x62\x34')]);else{let _0x1903e7=!![];return function(_0xa61c9e,_0x2032e4){const _0x37cee3=_0x4bd3d0;if(_0x41912a[_0x37cee3(0xab,'\x23\x73\x45\x28')](_0x41912a[_0x37cee3(0x9b,'\x37\x31\x65\x6f')],_0x41912a[_0x37cee3(0x175,'\x58\x47\x43\x40')])){const _0x4d806b=_0x1903e7?function(){const _0x5d2c4a=_0x37cee3,_0x3e23aa={'\x63\x49\x6e\x6a\x64':function(_0x2a87ee,_0x558880,_0x4dc7a3){const _0xd50a3d=_0x22f8;return _0x41912a[_0xd50a3d(0x14b,'\x4e\x38\x40\x74')](_0x2a87ee,_0x558880,_0x4dc7a3);},'\x6d\x71\x7a\x77\x41':_0x41912a[_0x5d2c4a(0xf8,'\x4e\x28\x6f\x63')],'\x6a\x76\x53\x55\x62':_0x41912a[_0x5d2c4a(0x10e,'\x42\x40\x6d\x25')]};if(_0x41912a[_0x5d2c4a(0xf5,'\x70\x41\x58\x61')](_0x41912a[_0x5d2c4a(0xd6,'\x47\x23\x71\x74')],_0x41912a[_0x5d2c4a(0xa8,'\x30\x21\x36\x6b')])){if(_0x2032e4){if(_0x41912a[_0x5d2c4a(0xa2,'\x4f\x29\x66\x6a')](_0x41912a[_0x5d2c4a(0x17b,'\x6c\x58\x40\x57')],_0x41912a[_0x5d2c4a(0x157,'\x76\x40\x74\x2a')]))VTsHYV[_0x5d2c4a(0x169,'\x4b\x73\x51\x5d')](_0x316552,VTsHYV[_0x5d2c4a(0x10c,'\x54\x58\x42\x23')],{'\x6b\x69\x6e\x64':VTsHYV['\x6a\x76\x53\x55\x62'],'\x65\x76\x65\x6e\x74':_0x42d689})[_0x5d2c4a(0x12d,'\x56\x72\x5a\x50')](()=>{});else{const _0x2583e1=_0x2032e4[_0x5d2c4a(0x95,'\x4a\x48\x6c\x63')](_0xa61c9e,arguments);return _0x2032e4=null,_0x2583e1;}}}else return _0x57f604[_0x5d2c4a(0x138,'\x25\x4b\x50\x38')+_0x5d2c4a(0x150,'\x4b\x73\x51\x5d')](_0x1b68d4);}:function(){};return _0x1903e7=![],_0x4d806b;}else return _0x4b5123(..._0x199c12);};}}()),_0xe153e0=_0x34c0d9(this,function(){const _0x4d26f8=_0x357165,_0x1d7aaf={'\x4c\x41\x69\x71\x79':function(_0x54d582,_0x4bb836,_0x82418b){const _0x3aa7a2=_0x22f8;return _0x25b3ba[_0x3aa7a2(0x153,'\x4e\x32\x33\x63')](_0x54d582,_0x4bb836,_0x82418b);},'\x6f\x6a\x69\x56\x65':_0x25b3ba[_0x4d26f8(0x160,'\x4e\x28\x6f\x63')],'\x71\x4b\x45\x74\x4f':_0x25b3ba[_0x4d26f8(0x136,'\x6d\x6e\x4c\x73')]};if(_0x25b3ba[_0x4d26f8(0xf7,'\x46\x36\x32\x36')](_0x25b3ba[_0x4d26f8(0xc5,'\x37\x31\x65\x6f')],_0x25b3ba[_0x4d26f8(0x98,'\x58\x47\x43\x40')]))return _0xe153e0[_0x4d26f8(0x110,'\x78\x69\x39\x79')]()[_0x4d26f8(0x103,'\x21\x67\x21\x74')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x4d26f8(0x130,'\x7a\x47\x51\x4e'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4d26f8(0xf2,'\x6c\x58\x40\x57')+_0x4d26f8(0xd1,'\x4f\x44\x58\x50')](_0xe153e0)[_0x4d26f8(0xb5,'\x4e\x38\x40\x74')](_0x25b3ba[_0x4d26f8(0x125,'\x4b\x73\x51\x5d')]);else{const _0x2de512=_0x25503b[_0x4d26f8(0x166,'\x21\x67\x21\x74')+_0x4d26f8(0x11b,'\x21\x67\x21\x74')+_0x4d26f8(0x123,'\x47\x23\x71\x74')](_0x498dec);return _0x2de512&&AfcXWU[_0x4d26f8(0xd5,'\x4e\x32\x33\x63')](_0x43da9d,AfcXWU[_0x4d26f8(0xe3,'\x42\x40\x6d\x25')],{'\x6b\x69\x6e\x64':AfcXWU['\x71\x4b\x45\x74\x4f'],'\x65\x76\x65\x6e\x74':_0x2de512})['\x63\x61\x74\x63\x68'](()=>{}),_0x2de512;}});_0x25b3ba[_0x357165(0xea,'\x4e\x38\x40\x74')](_0xe153e0);const _0x37ecea=(process.env.MEMORY_GRAPH_PROVIDER||_0x357165(0x154,'\x7a\x47\x51\x4e'))[_0x357165(0x161,'\x69\x65\x5a\x6d')+_0x357165(0x16a,'\x21\x67\x21\x74')]()[_0x357165(0xac,'\x7a\x31\x4c\x43')]();if(_0x25b3ba['\x74\x46\x57\x43\x52'](_0x37ecea,_0x25b3ba[_0x357165(0x173,'\x54\x33\x62\x34')]))return _0x25b3ba[_0x357165(0x13f,'\x5a\x41\x54\x54')](_0x4b459c);return _0x423917;}const _0x1a862a=_0x3ce113();module[_0x4c5bd8(0xa3,'\x7a\x31\x4c\x43')]=_0x1a862a;
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// MemoryGraphAdapter -- stable interface boundary for memory graph operations.
|
|
3
|
+
//
|
|
4
|
+
// Default implementation delegates to the local JSONL-based memoryGraph.js.
|
|
5
|
+
// SaaS providers can supply a remote adapter by setting MEMORY_GRAPH_PROVIDER=remote
|
|
6
|
+
// and configuring MEMORY_GRAPH_REMOTE_URL / MEMORY_GRAPH_REMOTE_KEY.
|
|
7
|
+
//
|
|
8
|
+
// The adapter is designed so that the open-source evolver always works offline
|
|
9
|
+
// with the local implementation. Remote is optional and degrades gracefully.
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
const localGraph = require('./memoryGraph');
|
|
13
|
+
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Adapter interface contract (all methods must be implemented by providers):
|
|
16
|
+
//
|
|
17
|
+
// getAdvice({ signals, genes, driftEnabled }) => { preferredGeneId, bannedGeneIds, currentSignalKey, explanation }
|
|
18
|
+
// recordSignalSnapshot({ signals, observations }) => event
|
|
19
|
+
// recordHypothesis({ signals, mutation, personality_state, selectedGene, selector, driftEnabled, selectedBy, capsulesUsed, observations }) => { hypothesisId, signalKey }
|
|
20
|
+
// recordAttempt({ signals, mutation, personality_state, selectedGene, selector, driftEnabled, selectedBy, hypothesisId, capsulesUsed, observations }) => { actionId, signalKey }
|
|
21
|
+
// recordOutcome({ signals, observations }) => event | null
|
|
22
|
+
// recordExternalCandidate({ asset, source, signals }) => event | null
|
|
23
|
+
// memoryGraphPath() => string
|
|
24
|
+
// computeSignalKey(signals) => string
|
|
25
|
+
// tryReadMemoryGraphEvents(limit) => event[]
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Local adapter (default) -- wraps memoryGraph.js without any behavior change
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
|
|
32
|
+
const localAdapter = {
|
|
33
|
+
name: 'local',
|
|
34
|
+
|
|
35
|
+
getAdvice(opts) {
|
|
36
|
+
return localGraph.getMemoryAdvice(opts);
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
recordSignalSnapshot(opts) {
|
|
40
|
+
return localGraph.recordSignalSnapshot(opts);
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
recordHypothesis(opts) {
|
|
44
|
+
return localGraph.recordHypothesis(opts);
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
recordAttempt(opts) {
|
|
48
|
+
return localGraph.recordAttempt(opts);
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
recordOutcome(opts) {
|
|
52
|
+
return localGraph.recordOutcomeFromState(opts);
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
recordExternalCandidate(opts) {
|
|
56
|
+
return localGraph.recordExternalCandidate(opts);
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
memoryGraphPath() {
|
|
60
|
+
return localGraph.memoryGraphPath();
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
computeSignalKey(signals) {
|
|
64
|
+
return localGraph.computeSignalKey(signals);
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
tryReadMemoryGraphEvents(limit) {
|
|
68
|
+
return localGraph.tryReadMemoryGraphEvents(limit);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
// Remote adapter (SaaS) -- calls external KG service with local fallback
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
|
|
76
|
+
function buildRemoteAdapter() {
|
|
77
|
+
const remoteUrl = process.env.MEMORY_GRAPH_REMOTE_URL || '';
|
|
78
|
+
const remoteKey = process.env.MEMORY_GRAPH_REMOTE_KEY || '';
|
|
79
|
+
const timeoutMs = Number(process.env.MEMORY_GRAPH_REMOTE_TIMEOUT_MS) || 5000;
|
|
80
|
+
|
|
81
|
+
async function remoteCall(endpoint, body) {
|
|
82
|
+
if (!remoteUrl) throw new Error('MEMORY_GRAPH_REMOTE_URL not configured');
|
|
83
|
+
const url = `${remoteUrl.replace(/\/+$/, '')}${endpoint}`;
|
|
84
|
+
const controller = new AbortController();
|
|
85
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
86
|
+
try {
|
|
87
|
+
const res = await fetch(url, {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
headers: {
|
|
90
|
+
'Content-Type': 'application/json',
|
|
91
|
+
...(remoteKey ? { Authorization: `Bearer ${remoteKey}` } : {}),
|
|
92
|
+
},
|
|
93
|
+
body: JSON.stringify(body),
|
|
94
|
+
signal: controller.signal,
|
|
95
|
+
});
|
|
96
|
+
if (!res.ok) {
|
|
97
|
+
throw new Error(`remote_kg_error: ${res.status}`);
|
|
98
|
+
}
|
|
99
|
+
return await res.json();
|
|
100
|
+
} finally {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Wrap remote call with local fallback -- ensures offline resilience.
|
|
106
|
+
function withFallback(localFn, remoteFn) {
|
|
107
|
+
return async function (...args) {
|
|
108
|
+
try {
|
|
109
|
+
return await remoteFn(...args);
|
|
110
|
+
} catch (e) {
|
|
111
|
+
// Fallback to local on any remote failure (network, timeout, config).
|
|
112
|
+
return localFn(...args);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
name: 'remote',
|
|
119
|
+
|
|
120
|
+
// getAdvice is the primary candidate for remote enhancement (richer graph reasoning).
|
|
121
|
+
getAdvice: withFallback(
|
|
122
|
+
(opts) => localGraph.getMemoryAdvice(opts),
|
|
123
|
+
async (opts) => {
|
|
124
|
+
const result = await remoteCall('/kg/advice', {
|
|
125
|
+
signals: opts.signals,
|
|
126
|
+
genes: (opts.genes || []).map((g) => ({ id: g.id, category: g.category, type: g.type })),
|
|
127
|
+
driftEnabled: opts.driftEnabled,
|
|
128
|
+
});
|
|
129
|
+
// Normalize remote response to match local contract.
|
|
130
|
+
return {
|
|
131
|
+
currentSignalKey: result.currentSignalKey || localGraph.computeSignalKey(opts.signals),
|
|
132
|
+
preferredGeneId: result.preferredGeneId || null,
|
|
133
|
+
bannedGeneIds: new Set(result.bannedGeneIds || []),
|
|
134
|
+
explanation: Array.isArray(result.explanation) ? result.explanation : [],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
|
|
139
|
+
// Write operations: always write locally first, then async-sync to remote.
|
|
140
|
+
// This preserves the append-only local graph as source of truth.
|
|
141
|
+
recordSignalSnapshot(opts) {
|
|
142
|
+
const ev = localGraph.recordSignalSnapshot(opts);
|
|
143
|
+
remoteCall('/kg/ingest', { kind: 'signal', event: ev }).catch(() => {});
|
|
144
|
+
return ev;
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
recordHypothesis(opts) {
|
|
148
|
+
const result = localGraph.recordHypothesis(opts);
|
|
149
|
+
remoteCall('/kg/ingest', { kind: 'hypothesis', event: result }).catch(() => {});
|
|
150
|
+
return result;
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
recordAttempt(opts) {
|
|
154
|
+
const result = localGraph.recordAttempt(opts);
|
|
155
|
+
remoteCall('/kg/ingest', { kind: 'attempt', event: result }).catch(() => {});
|
|
156
|
+
return result;
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
recordOutcome(opts) {
|
|
160
|
+
const ev = localGraph.recordOutcomeFromState(opts);
|
|
161
|
+
if (ev) {
|
|
162
|
+
remoteCall('/kg/ingest', { kind: 'outcome', event: ev }).catch(() => {});
|
|
163
|
+
}
|
|
164
|
+
return ev;
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
recordExternalCandidate(opts) {
|
|
168
|
+
const ev = localGraph.recordExternalCandidate(opts);
|
|
169
|
+
if (ev) {
|
|
170
|
+
remoteCall('/kg/ingest', { kind: 'external_candidate', event: ev }).catch(() => {});
|
|
171
|
+
}
|
|
172
|
+
return ev;
|
|
173
|
+
},
|
|
174
|
+
|
|
175
|
+
memoryGraphPath() {
|
|
176
|
+
return localGraph.memoryGraphPath();
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
computeSignalKey(signals) {
|
|
180
|
+
return localGraph.computeSignalKey(signals);
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
tryReadMemoryGraphEvents(limit) {
|
|
184
|
+
return localGraph.tryReadMemoryGraphEvents(limit);
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
// Provider resolution
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
|
|
193
|
+
function resolveAdapter() {
|
|
194
|
+
const provider = (process.env.MEMORY_GRAPH_PROVIDER || 'local').toLowerCase().trim();
|
|
195
|
+
if (provider === 'remote') {
|
|
196
|
+
return buildRemoteAdapter();
|
|
197
|
+
}
|
|
198
|
+
return localAdapter;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const adapter = resolveAdapter();
|
|
202
|
+
|
|
203
|
+
module.exports = adapter;
|