@evomap/evolver 1.89.10 → 1.89.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1367 -0
- package/README.ja-JP.md +1 -1
- package/README.ko-KR.md +1 -1
- package/README.md +90 -536
- package/README.public.md +578 -0
- package/README.zh-CN.md +1 -1
- 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 +5 -3
- package/package.json +6 -18
- package/proxy-package.json +39 -0
- package/public.manifest.json +145 -0
- package/src/adapters/scripts/evolver-session-end.js +18 -37
- package/src/atp/atpExecute.js +27 -71
- package/src/atp/serviceHelper.js +28 -36
- package/src/config.js +17 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +440 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/gep/a2aProtocol.js +4463 -1
- package/src/gep/antiAbuseTelemetry.js +233 -1
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationDistiller.js +270 -0
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +712 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +608 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1449 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/oauthLogin.js +9 -3
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/privacyClient.js +10 -9
- package/src/gep/prompt.js +836 -1
- package/src/gep/questionGenerator.js +103 -0
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/savingsCore.js +112 -1
- package/src/gep/selector.js +602 -1
- package/src/gep/signals.js +85 -17
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +95 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +109 -1
- package/src/proxy/index.js +100 -3
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +108 -7
- package/src/proxy/server/routes.js +41 -7
- package/src/proxy/server/settings.js +6 -2
- package/src/proxy/sync/engine.js +31 -15
- package/src/proxy/sync/inbound.js +87 -9
- package/src/proxy/sync/outbound.js +57 -4
- package/src/proxy/trace/extractor.js +1403 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/refresh_stars_badge.js +0 -168
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
package/src/gep/strategy.js
CHANGED
|
@@ -1 +1,136 @@
|
|
|
1
|
-
var _0x2e6804=_0x175f;(function(_0x5a3dc0,_0x1de2d1){var _0x44243=_0x175f,_0xbc4d71=_0x5a3dc0();while(!![]){try{var _0x4edc46=-parseInt(_0x44243(0x1a2,'\x29\x23\x66\x40'))/(-0x1917*-0x1+0x14f7+-0x1*0x2e0d)*(parseInt(_0x44243(0x1dd,'\x65\x77\x37\x25'))/(-0x1*-0x6b1+0x1b5c+-0x220b))+parseInt(_0x44243(0x1f6,'\x4e\x44\x62\x31'))/(0x1a*-0x171+0x1*-0x81c+0x1*0x2d99)*(-parseInt(_0x44243(0x219,'\x5d\x50\x67\x4b'))/(0x234d+-0x2344+0x1*-0x5))+parseInt(_0x44243(0x239,'\x36\x33\x51\x57'))/(-0x9dd+0x1931*0x1+-0xf4f)+parseInt(_0x44243(0x183,'\x50\x36\x6f\x52'))/(-0x949*0x1+-0x21*0x10d+0x15fe*0x2)+-parseInt(_0x44243(0x159,'\x25\x4f\x68\x5e'))/(-0x1*0x2419+0xdf*0x18+0xf38*0x1)+parseInt(_0x44243(0x18d,'\x65\x77\x37\x25'))/(-0x1*0xc13+0xb36+0x1*0xe5)+parseInt(_0x44243(0x229,'\x50\x36\x6f\x52'))/(0x1a68*0x1+-0x373+0xc*-0x1e9)*(-parseInt(_0x44243(0x223,'\x44\x5a\x75\x6d'))/(0x153*-0x2+0x2*0x655+-0x9fa));if(_0x4edc46===_0x1de2d1)break;else _0xbc4d71['push'](_0xbc4d71['shift']());}catch(_0xbcecdc){_0xbc4d71['push'](_0xbc4d71['shift']());}}}(_0x3943,0x2*-0xb7e+0x1*0x10125d+-0x1*0x76748));var _0x5ba431=(function(){var _0x25f9a7=_0x175f,_0x14a655={};_0x14a655[_0x25f9a7(0x240,'\x56\x41\x4f\x5d')]=function(_0x344dc5,_0x9011ee){return _0x344dc5!==_0x9011ee;},_0x14a655[_0x25f9a7(0x204,'\x31\x43\x79\x44')]=_0x25f9a7(0x1ae,'\x53\x32\x52\x41');var _0x28228e=_0x14a655,_0xe4b560=!![];return function(_0x1ead8d,_0x483f87){var _0x503e99=_0x25f9a7;if(_0x28228e[_0x503e99(0x1c2,'\x36\x56\x66\x30')](_0x28228e[_0x503e99(0x153,'\x6a\x39\x5b\x70')],_0x28228e[_0x503e99(0x234,'\x32\x61\x36\x39')]))return _0x40f685[_0x503e99(0x18c,'\x65\x77\x37\x25')](_0x242f61);else{var _0x2bbda3=_0xe4b560?function(){var _0x193e94=_0x503e99;if(_0x483f87){var _0xfd7809=_0x483f87[_0x193e94(0x1c1,'\x28\x36\x4c\x39')](_0x1ead8d,arguments);return _0x483f87=null,_0xfd7809;}}:function(){};return _0xe4b560=![],_0x2bbda3;}};}()),_0x301e11=_0x5ba431(this,function(){var _0x2061fb=_0x175f,_0xf9f926={};_0xf9f926['\x47\x50\x48\x5a\x70']=_0x2061fb(0x17b,'\x6e\x4d\x69\x37')+'\x2b\x29\x2b\x24';var _0x54aa77=_0xf9f926;return _0x301e11['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x2061fb(0x22d,'\x79\x75\x28\x78')](_0x54aa77[_0x2061fb(0x20f,'\x79\x75\x28\x78')])[_0x2061fb(0x18f,'\x59\x46\x25\x61')]()[_0x2061fb(0x206,'\x52\x54\x4b\x42')+'\x74\x6f\x72'](_0x301e11)[_0x2061fb(0x258,'\x6a\x39\x23\x4f')](_0x54aa77[_0x2061fb(0x1b2,'\x63\x39\x31\x64')]);});function _0x175f(_0x4cac06,_0x4f5517){_0x4cac06=_0x4cac06-(0x4f*-0x3+0x132f+-0xf1*0x12);var _0x137643=_0x3943();var _0x9b3d6=_0x137643[_0x4cac06];if(_0x175f['\x44\x4a\x4a\x63\x50\x44']===undefined){var _0x2c939e=function(_0x3e589d){var _0x2bfa58='\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';var _0x44c72f='',_0x5e4dd7='',_0x20f99e=_0x44c72f+_0x2c939e,_0x382fbb=(''+function(){return 0x25db+0x81*-0x6+-0x22d5;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x813+-0x2f2+0xa6*0x11);for(var _0xa6cf9d=0x1ef1+0x5*0x447+0x2*-0x1a2a,_0x10c3a5,_0x3ead99,_0x1f53d0=0x14b7+-0x7*0x557+0x1b*0x9e;_0x3ead99=_0x3e589d['\x63\x68\x61\x72\x41\x74'](_0x1f53d0++);~_0x3ead99&&(_0x10c3a5=_0xa6cf9d%(-0x65b*0x6+0x1*0x4b1+0x2175)?_0x10c3a5*(-0xea2+-0x4a*0x66+0x4ee*0x9)+_0x3ead99:_0x3ead99,_0xa6cf9d++%(-0x62f*-0x3+-0x20ff+0x269*0x6))?_0x44c72f+=_0x382fbb||_0x20f99e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1f53d0+(-0x1606+0x23*0x109+-0xe2b))-(-0x8fd+-0x2f*-0xd+-0x154*-0x5)!==0x1*0x7bf+-0x2117+0x1958?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x8d2*-0x4+0x9*-0x44f+0x4b0e&_0x10c3a5>>(-(-0x18*0x43+0x3*0x3bf+0xb5*-0x7)*_0xa6cf9d&-0xca*0x2+-0x264f+0x27e9*0x1)):_0xa6cf9d:0x210c+0x6*0x615+-0x458a){_0x3ead99=_0x2bfa58['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3ead99);}for(var _0x13500f=-0x18b+-0x20a+0x1*0x395,_0x3531af=_0x44c72f['\x6c\x65\x6e\x67\x74\x68'];_0x13500f<_0x3531af;_0x13500f++){_0x5e4dd7+='\x25'+('\x30\x30'+_0x44c72f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x13500f)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1441+-0x127b+0x2fc*0xd))['\x73\x6c\x69\x63\x65'](-(0xf*-0x83+-0x637+0x3*0x4a2));}return decodeURIComponent(_0x5e4dd7);};var _0x1149fa=function(_0x2e78ff,_0x142842){var _0x5039a3=[],_0x44482c=0x7f*-0x13+0x684+-0x2e9*-0x1,_0x43ca5c,_0x337259='';_0x2e78ff=_0x2c939e(_0x2e78ff);var _0x4f4fd8;for(_0x4f4fd8=-0x72e*-0x4+-0x30e*-0x3+-0x25e2;_0x4f4fd8<0x2287+-0xaf4+-0x1693;_0x4f4fd8++){_0x5039a3[_0x4f4fd8]=_0x4f4fd8;}for(_0x4f4fd8=-0x3*-0x6d+0x1239+-0x1380;_0x4f4fd8<0xc6d*0x3+-0x1*-0xecb+0x1106*-0x3;_0x4f4fd8++){_0x44482c=(_0x44482c+_0x5039a3[_0x4f4fd8]+_0x142842['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4f4fd8%_0x142842['\x6c\x65\x6e\x67\x74\x68']))%(-0x222c+0x3b5*0x3+-0x1*-0x180d),_0x43ca5c=_0x5039a3[_0x4f4fd8],_0x5039a3[_0x4f4fd8]=_0x5039a3[_0x44482c],_0x5039a3[_0x44482c]=_0x43ca5c;}_0x4f4fd8=-0x28*0x77+0x225f*-0x1+0x34f7,_0x44482c=0x6*-0x541+0x57b*-0x1+0x2501;for(var _0x4b8729=0x1*0xdc+0xf49+-0x1*0x1025;_0x4b8729<_0x2e78ff['\x6c\x65\x6e\x67\x74\x68'];_0x4b8729++){_0x4f4fd8=(_0x4f4fd8+(0x31*-0x80+0x11ec+0x151*0x5))%(0x3*-0xa6d+0x38e+0x1cb9),_0x44482c=(_0x44482c+_0x5039a3[_0x4f4fd8])%(-0x15f8+-0x46d+0x1b65*0x1),_0x43ca5c=_0x5039a3[_0x4f4fd8],_0x5039a3[_0x4f4fd8]=_0x5039a3[_0x44482c],_0x5039a3[_0x44482c]=_0x43ca5c,_0x337259+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x2e78ff['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4b8729)^_0x5039a3[(_0x5039a3[_0x4f4fd8]+_0x5039a3[_0x44482c])%(0x2*-0x1147+-0x2568+-0xc29*-0x6)]);}return _0x337259;};_0x175f['\x6c\x67\x59\x72\x65\x77']=_0x1149fa,_0x175f['\x75\x41\x4a\x7a\x7a\x71']={},_0x175f['\x44\x4a\x4a\x63\x50\x44']=!![];}var _0x1e754f=_0x137643[-0x52d*-0x5+0x23*0x89+-0x2c9c],_0xa2d59=_0x4cac06+_0x1e754f,_0x4b29f2=_0x175f['\x75\x41\x4a\x7a\x7a\x71'][_0xa2d59];if(!_0x4b29f2){if(_0x175f['\x4d\x61\x6c\x74\x45\x42']===undefined){var _0x1300cf=function(_0x194549){this['\x44\x63\x61\x70\x52\x63']=_0x194549,this['\x68\x4a\x6c\x67\x67\x4b']=[-0xb47*0x2+0x1*-0x567+0x1bf6,-0x2*-0xc1f+0x43*-0x48+0x2*-0x2b3,0x1*0x177f+-0xe47+-0x28*0x3b],this['\x73\x48\x46\x4c\x4f\x50']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x53\x52\x77\x68\x66\x49']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x4a\x78\x4d\x75\x50\x65']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x1300cf['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x73\x73\x44\x4f\x6b\x66']=function(){var _0x2ead17=new RegExp(this['\x53\x52\x77\x68\x66\x49']+this['\x4a\x78\x4d\x75\x50\x65']),_0x53fc6b=_0x2ead17['\x74\x65\x73\x74'](this['\x73\x48\x46\x4c\x4f\x50']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x68\x4a\x6c\x67\x67\x4b'][0x101*0xc+-0x189d+0xc92*0x1]:--this['\x68\x4a\x6c\x67\x67\x4b'][0x1601+-0x24c3+0x1*0xec2];return this['\x6c\x50\x58\x53\x6a\x52'](_0x53fc6b);},_0x1300cf['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6c\x50\x58\x53\x6a\x52']=function(_0x519866){if(!Boolean(~_0x519866))return _0x519866;return this['\x6f\x55\x51\x72\x47\x50'](this['\x44\x63\x61\x70\x52\x63']);},_0x1300cf['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6f\x55\x51\x72\x47\x50']=function(_0x3b00c2){for(var _0x3b4468=-0x13d*-0xd+-0x25*-0x7d+-0x1115*0x2,_0x1aea3b=this['\x68\x4a\x6c\x67\x67\x4b']['\x6c\x65\x6e\x67\x74\x68'];_0x3b4468<_0x1aea3b;_0x3b4468++){this['\x68\x4a\x6c\x67\x67\x4b']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x1aea3b=this['\x68\x4a\x6c\x67\x67\x4b']['\x6c\x65\x6e\x67\x74\x68'];}return _0x3b00c2(this['\x68\x4a\x6c\x67\x67\x4b'][0x3*0x657+-0x3d*-0x7e+-0x310b]);},(''+function(){return 0x681+0x5*-0x162+0x5*0x15;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x2666+-0xf15+-0x1750)&&new _0x1300cf(_0x175f)['\x73\x73\x44\x4f\x6b\x66'](),_0x175f['\x4d\x61\x6c\x74\x45\x42']=!![];}_0x9b3d6=_0x175f['\x6c\x67\x59\x72\x65\x77'](_0x9b3d6,_0x4f5517),_0x175f['\x75\x41\x4a\x7a\x7a\x71'][_0xa2d59]=_0x9b3d6;}else _0x9b3d6=_0x4b29f2;return _0x9b3d6;}function _0x3943(){var _0x681c4a=['\x57\x52\x74\x63\x4f\x6d\x6b\x51\x57\x34\x71\x30\x45\x68\x70\x64\x56\x71','\x46\x38\x6f\x4d\x44\x38\x6f\x2f\x57\x52\x61','\x57\x35\x37\x63\x53\x72\x5a\x64\x49\x43\x6f\x32','\x57\x51\x34\x43\x44\x53\x6b\x32\x64\x53\x6f\x6b\x57\x37\x46\x64\x54\x57','\x57\x37\x70\x63\x4e\x6d\x6b\x4a\x57\x37\x37\x63\x4d\x57','\x42\x38\x6f\x47\x70\x43\x6f\x42\x57\x34\x38\x48\x73\x47','\x70\x6d\x6b\x36\x61\x38\x6b\x4f\x57\x50\x4f','\x75\x6d\x6f\x47\x65\x43\x6b\x58\x6c\x53\x6f\x70\x57\x50\x4f\x75\x57\x36\x76\x52\x75\x4e\x48\x47','\x43\x57\x52\x64\x4f\x43\x6f\x53\x57\x37\x33\x63\x4d\x30\x30\x65','\x74\x38\x6b\x79\x57\x35\x35\x6c\x57\x36\x44\x6b\x57\x4f\x30','\x57\x37\x72\x75\x77\x64\x64\x63\x55\x6d\x6b\x50\x57\x51\x58\x74','\x75\x66\x79\x54\x66\x59\x56\x64\x4d\x43\x6f\x66\x57\x34\x4b','\x57\x4f\x6e\x6b\x6f\x53\x6f\x48','\x46\x38\x6f\x53\x69\x43\x6f\x74\x57\x35\x69\x51\x6b\x6d\x6b\x4a','\x71\x58\x76\x47\x44\x4a\x30\x58\x77\x32\x4b','\x46\x53\x6b\x66\x57\x50\x56\x64\x52\x61\x2f\x64\x4d\x78\x5a\x63\x55\x47\x52\x64\x4c\x57\x65','\x57\x50\x52\x64\x48\x53\x6b\x6e\x57\x4f\x44\x66','\x75\x6d\x6b\x6a\x57\x35\x62\x74\x57\x4f\x34\x4c\x68\x68\x30','\x57\x36\x33\x63\x4c\x38\x6f\x48\x77\x67\x6d\x47\x43\x67\x75','\x66\x38\x6f\x69\x57\x35\x6a\x71\x57\x34\x68\x63\x50\x30\x2f\x63\x53\x61','\x57\x36\x46\x63\x4c\x53\x6b\x73\x57\x51\x76\x65','\x61\x6d\x6b\x54\x78\x38\x6f\x70\x74\x47','\x74\x43\x6b\x77\x44\x38\x6f\x69\x57\x36\x30\x76\x57\x50\x61','\x57\x36\x48\x39\x57\x34\x4e\x63\x4d\x6d\x6b\x46\x57\x4f\x38\x6a\x57\x4f\x4f','\x72\x47\x71\x49\x6b\x6d\x6f\x66\x43\x47','\x57\x51\x47\x53\x57\x51\x74\x64\x50\x67\x78\x64\x56\x6d\x6f\x56\x76\x57','\x42\x31\x79\x57\x6f\x5a\x34','\x57\x35\x38\x59\x57\x34\x7a\x51\x57\x50\x64\x64\x4b\x77\x79','\x57\x36\x56\x63\x49\x6d\x6f\x42','\x57\x37\x7a\x34\x57\x37\x57\x49\x57\x35\x33\x64\x4a\x62\x4b','\x68\x6d\x6f\x63\x57\x34\x31\x43\x57\x35\x42\x63\x47\x71','\x57\x50\x52\x63\x52\x6d\x6b\x69\x57\x35\x57\x35','\x57\x4f\x7a\x61\x57\x37\x4a\x64\x50\x43\x6b\x38','\x43\x53\x6f\x33\x7a\x43\x6f\x32\x57\x51\x75','\x77\x38\x6f\x58\x74\x38\x6f\x77\x57\x4f\x61','\x69\x38\x6f\x44\x57\x4f\x61\x71\x57\x4f\x79','\x57\x51\x37\x64\x54\x38\x6f\x50\x57\x36\x34\x34\x71\x5a\x5a\x64\x52\x71','\x57\x50\x56\x64\x55\x53\x6b\x75\x57\x4f\x44\x55\x6e\x53\x6b\x64\x7a\x47','\x57\x35\x54\x76\x63\x63\x4e\x64\x47\x43\x6b\x57\x63\x71','\x57\x35\x52\x63\x54\x53\x6b\x50\x57\x51\x54\x75','\x61\x53\x6f\x43\x6a\x48\x70\x64\x48\x5a\x7a\x41\x63\x47','\x57\x34\x44\x71\x68\x57\x52\x64\x4f\x47','\x57\x37\x64\x63\x47\x53\x6f\x66\x75\x78\x47\x33\x74\x32\x69','\x57\x52\x37\x63\x51\x53\x6b\x39\x57\x34\x65\x2f\x78\x64\x5a\x64\x51\x57','\x69\x43\x6b\x63\x6a\x6d\x6b\x6f','\x42\x6d\x6f\x52\x6f\x6d\x6f\x45\x57\x35\x69\x49\x62\x43\x6b\x34','\x57\x52\x35\x75\x57\x35\x47\x49\x57\x36\x4b','\x57\x36\x46\x63\x48\x53\x6f\x72\x73\x75\x34\x32\x44\x32\x57','\x65\x53\x6f\x39\x57\x51\x34\x47\x57\x37\x4f\x4b\x57\x50\x75\x36','\x69\x61\x42\x63\x4c\x38\x6f\x58\x57\x35\x79','\x77\x62\x71\x59','\x41\x30\x68\x64\x4c\x53\x6b\x74\x57\x4f\x56\x63\x48\x58\x4f\x6a\x63\x6d\x6f\x4b\x57\x34\x4e\x63\x4b\x59\x65','\x75\x53\x6b\x4d\x57\x37\x54\x75\x57\x51\x38','\x75\x6d\x6b\x49\x57\x36\x31\x78\x57\x34\x53','\x75\x6d\x6f\x51\x66\x43\x6f\x54\x75\x6d\x6b\x6c\x57\x37\x38\x47\x57\x36\x4b','\x57\x34\x31\x6b\x61\x63\x56\x64\x4c\x43\x6b\x4f\x65\x38\x6b\x65','\x70\x6d\x6b\x57\x79\x43\x6f\x67\x57\x34\x53\x32\x68\x53\x6b\x70\x75\x57','\x62\x43\x6f\x34\x57\x51\x71\x39','\x72\x72\x34\x5a\x68\x4e\x69\x78\x76\x4d\x4f','\x42\x53\x6f\x4e\x62\x6d\x6f\x4b\x57\x35\x38','\x57\x52\x6c\x63\x54\x43\x6b\x36\x57\x34\x31\x2f','\x6f\x43\x6b\x76\x42\x47','\x6c\x43\x6b\x56\x62\x43\x6b\x44\x57\x50\x4f','\x6e\x4e\x48\x6b\x57\x36\x42\x64\x4e\x38\x6f\x51\x57\x4f\x64\x63\x50\x57','\x67\x6d\x6f\x69\x57\x4f\x61\x4e\x57\x34\x4b','\x6b\x53\x6b\x46\x69\x6d\x6f\x37\x57\x50\x6c\x63\x4e\x48\x44\x2b','\x57\x34\x74\x63\x51\x6d\x6b\x79\x57\x35\x6c\x63\x55\x38\x6f\x46\x57\x35\x61','\x61\x53\x6f\x51\x78\x43\x6b\x70','\x57\x4f\x69\x34\x57\x51\x33\x64\x52\x4c\x38','\x57\x52\x37\x63\x54\x38\x6b\x4e\x57\x34\x43\x4e\x77\x4d\x4a\x64\x52\x71','\x76\x38\x6b\x64\x57\x34\x31\x64\x57\x4f\x47\x2b\x67\x77\x4f','\x57\x51\x58\x33\x57\x36\x4b\x32\x57\x34\x2f\x64\x4c\x47','\x68\x38\x6f\x6f\x57\x52\x47\x4e\x57\x52\x76\x57\x57\x51\x62\x4d','\x6b\x75\x58\x4d\x57\x37\x52\x64\x51\x71','\x66\x38\x6f\x35\x57\x50\x53\x2f\x57\x37\x4c\x6f\x66\x43\x6f\x6a','\x57\x34\x39\x4b\x57\x37\x74\x63\x54\x6d\x6f\x79','\x45\x43\x6b\x4d\x7a\x38\x6f\x6b\x57\x36\x61','\x57\x51\x6d\x66\x42\x53\x6b\x32\x66\x38\x6f\x6b\x57\x36\x4a\x64\x4f\x71','\x57\x50\x4a\x63\x55\x59\x78\x64\x56\x6d\x6f\x65','\x43\x5a\x65\x41\x65\x38\x6f\x43','\x57\x35\x2f\x63\x47\x38\x6b\x56\x57\x52\x6a\x4d','\x57\x36\x57\x30\x57\x35\x6c\x63\x4e\x53\x6b\x46\x57\x4f\x38\x6a\x57\x4f\x4f','\x57\x35\x52\x63\x51\x53\x6b\x6e\x57\x4f\x35\x4b\x6f\x53\x6b\x44\x7a\x57','\x42\x53\x6b\x4c\x57\x52\x34','\x57\x51\x6a\x48\x57\x34\x47\x41\x57\x37\x4f','\x63\x6d\x6b\x32\x73\x6d\x6f\x54\x42\x43\x6b\x41\x57\x35\x4f\x61','\x57\x37\x38\x2f\x67\x38\x6f\x44\x45\x38\x6b\x5a\x57\x4f\x50\x31','\x57\x4f\x38\x39\x57\x34\x31\x37\x57\x4f\x4e\x64\x48\x4b\x31\x2b','\x57\x4f\x50\x64\x57\x35\x6c\x64\x51\x53\x6b\x52','\x57\x50\x64\x64\x4f\x43\x6f\x72\x57\x4f\x5a\x64\x56\x38\x6f\x4d\x57\x34\x64\x64\x4a\x75\x4e\x64\x47\x58\x71','\x57\x36\x2f\x64\x4d\x43\x6b\x32\x57\x37\x6d','\x75\x38\x6b\x66\x57\x50\x66\x35\x57\x51\x75','\x57\x50\x68\x64\x56\x53\x6f\x75\x57\x50\x62\x4b\x6e\x57','\x66\x57\x35\x72\x75\x78\x6c\x63\x4c\x43\x6b\x44\x57\x4f\x47','\x71\x62\x4f\x49\x76\x74\x34','\x78\x53\x6b\x66\x57\x34\x4f\x6a\x57\x51\x48\x31\x57\x4f\x4e\x64\x48\x71','\x67\x38\x6b\x7a\x57\x35\x70\x63\x4a\x30\x53\x72\x70\x6d\x6b\x53','\x67\x30\x56\x63\x50\x53\x6b\x38\x57\x51\x46\x63\x4c\x6d\x6b\x4a\x57\x51\x30','\x6f\x43\x6b\x6a\x72\x53\x6f\x38\x57\x50\x4e\x63\x47\x65\x6e\x39','\x77\x62\x46\x64\x50\x53\x6b\x50\x57\x52\x37\x63\x49\x6d\x6f\x30\x57\x4f\x68\x63\x4c\x57','\x57\x52\x38\x35\x57\x35\x66\x37\x57\x4f\x37\x64\x4c\x57\x48\x76','\x57\x34\x4b\x74\x6f\x43\x6f\x57\x71\x6d\x6b\x65\x57\x51\x47','\x63\x53\x6b\x42\x77\x4e\x4e\x64\x55\x57','\x71\x53\x6b\x68\x77\x38\x6f\x52\x57\x37\x69','\x57\x4f\x42\x64\x52\x43\x6b\x49\x57\x4f\x50\x78\x57\x51\x79','\x73\x6d\x6b\x65\x43\x6d\x6b\x33\x57\x4f\x33\x63\x52\x48\x66\x6a\x68\x6d\x6b\x64\x57\x50\x65','\x61\x6d\x6f\x4b\x57\x4f\x69\x54\x57\x36\x72\x70','\x73\x43\x6b\x7a\x57\x34\x31\x6c\x57\x36\x31\x37\x57\x4f\x46\x64\x4d\x71','\x75\x43\x6b\x75\x57\x35\x6e\x43\x57\x50\x6d\x2b\x63\x71','\x72\x57\x71\x5a\x6f\x38\x6f\x70\x41\x61','\x57\x37\x71\x54\x62\x31\x46\x64\x47\x73\x53\x2f\x57\x52\x48\x42','\x6d\x38\x6f\x32\x57\x52\x53\x62\x57\x35\x4f','\x57\x51\x38\x39\x57\x34\x31\x37\x57\x4f\x4e\x64\x48\x4b\x31\x2b','\x57\x52\x7a\x5a\x57\x37\x4f\x32\x57\x36\x5a\x64\x4b\x74\x54\x4b','\x57\x52\x31\x64\x43\x74\x64\x63\x55\x6d\x6b\x4e\x57\x37\x48\x78','\x57\x36\x6c\x63\x4c\x59\x4e\x64\x4e\x53\x6f\x55','\x57\x34\x33\x64\x50\x43\x6f\x45\x57\x52\x78\x64\x4d\x57','\x57\x51\x68\x63\x4d\x61\x4a\x64\x48\x6d\x6f\x64\x57\x50\x72\x71\x6e\x57','\x79\x43\x6b\x31\x62\x6d\x6f\x2b\x57\x35\x69','\x42\x66\x38\x6b\x63\x5a\x5a\x64\x4b\x43\x6b\x77\x57\x34\x47','\x6b\x53\x6f\x78\x57\x35\x42\x63\x54\x66\x42\x64\x55\x4d\x5a\x64\x54\x47','\x57\x36\x50\x78\x57\x37\x78\x63\x4b\x43\x6b\x75\x57\x37\x71\x58\x57\x34\x68\x63\x4f\x6d\x6b\x4c\x67\x43\x6f\x70\x57\x36\x47','\x57\x34\x42\x63\x52\x53\x6b\x38\x57\x4f\x44\x59\x6a\x53\x6f\x64\x46\x61','\x57\x50\x47\x74\x57\x52\x42\x64\x51\x43\x6f\x78','\x62\x65\x56\x63\x55\x38\x6b\x59\x57\x52\x5a\x63\x4e\x57','\x6e\x4e\x7a\x76\x57\x36\x42\x64\x48\x43\x6f\x53\x57\x4f\x57','\x61\x38\x6f\x30\x57\x52\x47\x38\x57\x52\x48\x59\x57\x51\x61','\x57\x4f\x46\x64\x56\x53\x6f\x78\x57\x50\x6a\x2f\x6c\x6d\x6f\x71\x57\x52\x38','\x72\x6d\x6f\x4a\x61\x38\x6f\x39\x57\x34\x4b','\x57\x51\x62\x4e\x78\x75\x56\x64\x56\x49\x47\x39\x57\x4f\x71','\x42\x6d\x6f\x30\x69\x57\x43','\x62\x43\x6b\x76\x63\x6d\x6f\x33\x57\x50\x4e\x64\x4b\x53\x6f\x4c','\x57\x51\x74\x63\x4a\x72\x52\x64\x48\x43\x6f\x79\x57\x50\x66\x6a\x6e\x57','\x57\x52\x46\x64\x4b\x38\x6b\x65\x61\x73\x72\x5a\x6d\x33\x2f\x64\x4f\x4a\x71\x33\x44\x4c\x61','\x65\x72\x6c\x63\x4b\x38\x6f\x65\x57\x35\x2f\x64\x4b\x75\x71\x6a','\x57\x51\x30\x48\x57\x4f\x52\x64\x49\x43\x6b\x68\x57\x34\x50\x70\x57\x50\x56\x63\x49\x32\x53\x65\x75\x43\x6b\x49','\x79\x6d\x6f\x53\x70\x6d\x6f\x44\x57\x34\x4b\x48','\x57\x34\x52\x64\x4c\x38\x6b\x31\x57\x35\x6e\x42','\x6c\x38\x6f\x64\x6a\x6d\x6f\x56\x57\x35\x4a\x63\x4d\x4e\x4c\x42','\x57\x35\x42\x63\x4c\x48\x4a\x64\x51\x43\x6f\x2b','\x71\x6d\x6b\x64\x57\x36\x39\x46\x57\x4f\x53\x50\x68\x4b\x4f','\x57\x51\x71\x31\x57\x51\x75','\x57\x34\x31\x65\x68\x59\x56\x64\x4a\x38\x6b\x55\x68\x57','\x57\x34\x74\x63\x53\x53\x6f\x4e\x71\x32\x75','\x57\x52\x7a\x5a\x57\x36\x53\x5a\x57\x34\x70\x64\x49\x48\x54\x55','\x6d\x6d\x6b\x33\x75\x43\x6f\x68\x77\x71','\x65\x38\x6f\x59\x57\x50\x43','\x70\x43\x6f\x72\x57\x35\x6c\x63\x56\x66\x64\x64\x50\x47','\x68\x6d\x6f\x54\x57\x4f\x53','\x57\x37\x65\x30\x57\x34\x37\x63\x4b\x43\x6f\x6c\x57\x4f\x4b\x70\x57\x4f\x4f','\x79\x65\x56\x64\x54\x38\x6f\x53','\x6a\x30\x68\x63\x50\x6d\x6b\x57\x57\x51\x2f\x63\x49\x53\x6b\x55\x57\x51\x30','\x70\x6d\x6b\x67\x6b\x6d\x6b\x7a\x57\x52\x79\x38','\x57\x50\x72\x73\x6c\x43\x6f\x4f\x57\x51\x39\x45\x78\x63\x69','\x71\x6d\x6b\x76\x46\x6d\x6f\x62\x57\x36\x47','\x57\x50\x48\x37\x57\x36\x70\x64\x4f\x57','\x61\x38\x6b\x45\x73\x78\x70\x64\x48\x71','\x78\x53\x6b\x72\x42\x53\x6f\x66\x57\x36\x30\x44\x57\x52\x4b\x44','\x57\x51\x78\x63\x56\x6d\x6b\x4f\x57\x34\x57\x78\x75\x4e\x64\x64\x52\x71','\x57\x37\x52\x63\x55\x6d\x6b\x2f\x57\x4f\x62\x7a','\x57\x36\x6c\x63\x52\x59\x4a\x63\x56\x47','\x70\x53\x6b\x7a\x57\x34\x74\x64\x51\x4e\x69','\x57\x36\x74\x63\x50\x53\x6b\x68\x57\x35\x68\x63\x56\x6d\x6f\x46\x57\x34\x52\x64\x47\x61','\x57\x36\x78\x63\x56\x4a\x37\x64\x50\x38\x6f\x54\x76\x4b\x6e\x33','\x57\x36\x58\x47\x57\x35\x4a\x63\x4b\x43\x6f\x42\x57\x4f\x76\x71\x57\x50\x47','\x67\x38\x6b\x6c\x44\x61\x33\x63\x47\x43\x6b\x4f\x57\x37\x44\x78\x57\x51\x4e\x64\x55\x74\x62\x70\x57\x37\x75','\x77\x38\x6b\x43\x57\x35\x44\x7a\x57\x50\x65\x4c\x66\x4d\x57','\x42\x53\x6f\x33\x44\x43\x6f\x47\x57\x51\x57','\x46\x38\x6f\x53\x69\x53\x6f\x44\x57\x35\x43\x55\x61\x71','\x57\x52\x61\x70\x57\x51\x61','\x57\x36\x4e\x64\x4f\x53\x6f\x62\x57\x51\x61','\x57\x35\x56\x63\x48\x43\x6b\x51\x57\x4f\x44\x49\x6b\x53\x6b\x43\x42\x47','\x79\x38\x6b\x53\x57\x52\x58\x76\x57\x4f\x78\x64\x54\x57\x42\x64\x52\x71','\x6d\x53\x6b\x48\x73\x6d\x6f\x48','\x57\x34\x43\x72\x67\x53\x6f\x34\x76\x57','\x6a\x43\x6b\x32\x76\x43\x6f\x68\x71\x71','\x57\x51\x47\x64\x42\x61','\x57\x4f\x62\x4f\x57\x36\x4a\x64\x51\x38\x6b\x75','\x71\x6d\x6f\x78\x6a\x31\x56\x64\x49\x6d\x6f\x46\x57\x51\x79','\x62\x43\x6b\x39\x76\x43\x6f\x48\x41\x43\x6b\x73\x57\x35\x34\x72','\x71\x73\x30\x31\x65\x43\x6f\x67','\x61\x6d\x6b\x52\x71\x57','\x67\x6d\x6f\x2b\x57\x51\x75','\x57\x36\x46\x64\x56\x38\x6f\x72\x57\x51\x64\x64\x4f\x6d\x6f\x6b\x68\x43\x6f\x6a','\x57\x34\x30\x31\x57\x35\x6a\x50\x57\x50\x6c\x64\x47\x66\x53\x36','\x57\x52\x7a\x7a\x77\x5a\x64\x63\x4f\x53\x6b\x33\x57\x51\x58\x74','\x75\x67\x4e\x64\x47\x53\x6f\x7a\x57\x36\x65','\x70\x61\x71\x52\x66\x64\x46\x63\x51\x4d\x68\x63\x56\x71','\x57\x51\x65\x2f\x57\x51\x78\x64\x52\x32\x74\x64\x4f\x61','\x72\x53\x6f\x76\x63\x66\x6c\x64\x54\x61','\x78\x75\x74\x64\x52\x43\x6f\x4d\x57\x36\x33\x63\x4c\x75\x53\x69','\x71\x65\x78\x64\x47\x53\x6f\x63\x57\x35\x43','\x57\x51\x6c\x63\x49\x71\x78\x64\x48\x38\x6f\x65\x57\x50\x54\x43\x6a\x57','\x57\x50\x4b\x2f\x74\x53\x6b\x66\x64\x71','\x6c\x43\x6b\x65\x46\x4e\x46\x64\x4a\x57','\x62\x4c\x37\x63\x4f\x53\x6b\x30\x57\x51\x70\x63\x4a\x38\x6f\x30\x57\x51\x43','\x57\x52\x6c\x63\x52\x38\x6b\x4d\x57\x34\x71\x4b\x74\x33\x78\x64\x50\x57','\x73\x38\x6b\x72\x6d\x6d\x6b\x65\x57\x34\x69\x61\x57\x50\x79\x68','\x57\x51\x54\x6f\x57\x34\x74\x64\x51\x43\x6b\x30','\x57\x34\x76\x30\x57\x4f\x4b\x30\x57\x34\x5a\x63\x4a\x61\x6d\x5a','\x43\x57\x4b\x4e\x61\x43\x6f\x34','\x74\x6d\x6f\x70\x6c\x66\x6c\x64\x48\x43\x6f\x4b\x57\x51\x4c\x77','\x57\x36\x33\x64\x51\x38\x6f\x43','\x57\x50\x37\x64\x4f\x43\x6b\x4a\x57\x4f\x6d','\x57\x35\x46\x63\x53\x38\x6b\x2b\x57\x34\x7a\x31\x6e\x38\x6b\x70\x79\x71','\x6e\x4d\x39\x78\x57\x36\x42\x64\x4b\x38\x6b\x5a\x57\x50\x52\x63\x56\x61','\x6d\x62\x33\x63\x4a\x38\x6f\x70\x57\x34\x5a\x64\x4e\x4c\x4b\x63','\x74\x53\x6b\x63\x44\x53\x6b\x33\x57\x4f\x74\x64\x4c\x77\x54\x34\x6d\x43\x6b\x53\x57\x52\x6c\x64\x47\x6d\x6f\x67','\x70\x71\x61\x45\x66\x73\x56\x64\x52\x33\x46\x63\x52\x71','\x41\x6d\x6b\x36\x57\x50\x54\x69\x57\x4f\x78\x64\x53\x31\x38','\x57\x36\x56\x64\x4e\x43\x6b\x57\x57\x37\x44\x54\x57\x37\x4e\x64\x47\x6d\x6f\x72','\x67\x38\x6f\x6a\x61\x61\x6c\x64\x47\x74\x54\x61\x64\x61','\x42\x53\x6b\x35\x57\x51\x35\x74\x57\x50\x52\x64\x55\x31\x5a\x64\x4f\x71','\x57\x34\x4e\x63\x4e\x53\x6b\x54\x57\x36\x52\x63\x55\x47','\x45\x72\x78\x63\x49\x6d\x6f\x79\x57\x35\x70\x64\x4b\x75\x50\x68','\x57\x37\x64\x63\x47\x53\x6f\x66\x75\x78\x47\x33','\x57\x51\x39\x5a\x57\x36\x69\x48','\x57\x37\x75\x55\x57\x51\x58\x48\x57\x50\x2f\x63\x4a\x67\x6e\x57\x57\x35\x57\x78\x6d\x72\x4b\x61','\x57\x35\x2f\x64\x4c\x53\x6b\x58\x57\x35\x6e\x64','\x73\x30\x4b\x51\x63\x59\x56\x64\x4c\x43\x6f\x79\x57\x34\x79','\x57\x35\x46\x63\x51\x6d\x6b\x76\x57\x34\x47\x38\x63\x6d\x6f\x4f\x57\x4f\x4f\x30\x57\x36\x70\x63\x50\x71','\x78\x58\x34\x48\x71\x4a\x65\x36','\x6f\x43\x6b\x75\x42\x53\x6f\x36\x57\x4f\x68\x63\x49\x65\x6e\x39','\x78\x43\x6f\x79\x6e\x31\x53','\x57\x34\x6a\x75\x69\x47\x33\x64\x51\x71','\x57\x36\x78\x63\x47\x53\x6f\x62\x79\x32\x75\x33\x79\x4e\x4b','\x57\x4f\x4c\x4f\x57\x37\x4a\x64\x4f\x53\x6b\x62\x57\x36\x6c\x64\x4f\x49\x65','\x71\x58\x43\x4b','\x57\x50\x4c\x73\x6f\x53\x6f\x53\x57\x51\x6e\x5a\x76\x68\x43','\x57\x35\x6c\x63\x50\x6d\x6b\x6e\x57\x35\x5a\x63\x52\x43\x6f\x73\x57\x4f\x37\x64\x4e\x61','\x57\x52\x39\x36\x57\x35\x4a\x63\x48\x38\x6b\x46\x57\x50\x47\x75\x57\x50\x4b','\x61\x43\x6f\x6e\x65\x62\x37\x64\x4d\x71','\x64\x53\x6b\x30\x42\x43\x6f\x55\x78\x57','\x57\x4f\x6e\x7a\x6f\x38\x6f\x48','\x57\x50\x64\x63\x4e\x53\x6b\x68\x57\x34\x38\x44','\x77\x30\x6d\x6b\x68\x63\x56\x64\x4c\x43\x6f\x67\x57\x35\x75','\x41\x6d\x6b\x4e\x57\x52\x72\x76\x57\x4f\x68\x64\x53\x31\x6c\x64\x4f\x71','\x6a\x53\x6f\x39\x57\x34\x35\x4e\x57\x36\x38','\x57\x35\x78\x63\x52\x38\x6b\x73\x57\x34\x6d\x2f\x44\x43\x6f\x4b\x57\x52\x34\x4a\x57\x35\x5a\x63\x4c\x53\x6f\x48','\x57\x4f\x68\x63\x54\x38\x6b\x41\x57\x35\x6c\x63\x56\x53\x6f\x46\x57\x34\x56\x63\x4a\x57','\x67\x38\x6f\x70\x57\x36\x31\x35\x57\x36\x30','\x71\x61\x34\x62\x70\x43\x6f\x45\x41\x43\x6f\x41\x75\x71','\x6f\x38\x6b\x57\x66\x53\x6f\x34\x57\x51\x4f','\x72\x57\x47\x31\x6a\x38\x6f\x6e\x42\x6d\x6f\x68','\x63\x6d\x6b\x73\x57\x34\x74\x64\x47\x65\x71\x67\x6b\x71','\x76\x76\x75\x77\x65\x71','\x69\x38\x6f\x41\x43\x38\x6f\x48\x57\x50\x42\x63\x49\x31\x54\x39','\x61\x53\x6f\x61\x66\x47','\x57\x51\x42\x64\x4a\x43\x6b\x68\x57\x50\x72\x53','\x77\x6d\x6b\x66\x57\x35\x31\x69\x57\x36\x72\x6f\x57\x4f\x30','\x57\x51\x54\x6f\x57\x36\x6c\x64\x49\x6d\x6b\x44','\x77\x6d\x6b\x64\x57\x35\x66\x76\x57\x35\x57\x51\x61\x33\x53','\x66\x43\x6b\x33\x41\x53\x6f\x54\x42\x6d\x6b\x45\x57\x35\x57\x4d','\x68\x38\x6f\x2f\x57\x51\x71\x4c\x57\x52\x76\x57\x57\x51\x57\x4d','\x6e\x53\x6f\x33\x57\x36\x48\x50\x57\x35\x71','\x74\x6d\x6b\x37\x62\x53\x6f\x68\x57\x35\x56\x63\x4c\x4a\x30','\x57\x52\x65\x38\x57\x52\x46\x64\x4c\x6d\x6f\x61\x57\x52\x7a\x4b\x57\x50\x30','\x42\x43\x6b\x73\x41\x53\x6f\x62\x57\x37\x7a\x70\x57\x50\x72\x73','\x57\x4f\x78\x63\x48\x71\x5a\x64\x4c\x6d\x6f\x6e\x57\x50\x31\x78\x69\x61','\x57\x51\x54\x36\x57\x37\x38','\x6f\x47\x52\x63\x47\x53\x6f\x6d\x57\x35\x2f\x64\x56\x65\x69\x73','\x57\x37\x6c\x64\x50\x53\x6f\x6d\x57\x52\x53','\x45\x59\x79\x6e\x57\x51\x74\x63\x47\x43\x6b\x33\x57\x34\x6c\x64\x4f\x71','\x57\x35\x4e\x63\x55\x38\x6b\x37\x57\x4f\x6e\x36','\x70\x38\x6b\x6b\x76\x6d\x6f\x39\x57\x4f\x78\x63\x4a\x65\x72\x57','\x61\x6d\x6f\x4b\x57\x4f\x65\x4a\x57\x36\x66\x6c\x69\x38\x6f\x4a','\x57\x51\x4e\x63\x48\x47\x46\x64\x49\x43\x6f\x43\x57\x50\x4c\x6e\x6a\x47','\x61\x53\x6b\x4b\x68\x38\x6f\x5a\x57\x50\x78\x64\x51\x6d\x6f\x58\x6e\x47'];_0x3943=function(){return _0x681c4a;};return _0x3943();}_0x301e11();var _0x238663=require('\x66\x73'),_0x5723f9=require(_0x2e6804(0x1b9,'\x32\x61\x36\x39')),_0x553353={};_0x553353[_0x2e6804(0x253,'\x50\x50\x4f\x31')]=0.2,_0x553353['\x6f\x70\x74\x69\x6d\x69\x7a\x65']=0.2,_0x553353[_0x2e6804(0x182,'\x54\x4e\x25\x5e')]=0.5,_0x553353[_0x2e6804(0x1c9,'\x56\x33\x5b\x58')]=0.1,_0x553353[_0x2e6804(0x151,'\x5d\x65\x70\x77')+_0x2e6804(0x1cb,'\x59\x46\x25\x61')+_0x2e6804(0x1ab,'\x28\x4b\x40\x61')]=0.5,_0x553353[_0x2e6804(0x25a,'\x5d\x65\x70\x77')]=_0x2e6804(0x230,'\x6e\x4d\x69\x37'),_0x553353[_0x2e6804(0x244,'\x51\x29\x77\x24')+_0x2e6804(0x164,'\x54\x6b\x71\x48')]=_0x2e6804(0x257,'\x44\x5a\x75\x6d')+_0x2e6804(0x186,'\x33\x57\x43\x53')+'\x2e\x20\x53\x74\x65\x61\x64\x79'+_0x2e6804(0x1a3,'\x5d\x50\x67\x4b')+_0x2e6804(0x1d7,'\x37\x70\x53\x23')+_0x2e6804(0x1c5,'\x56\x41\x4f\x5d');var _0x3f18e3={};_0x3f18e3['\x72\x65\x70\x61\x69\x72']=0.05,_0x3f18e3[_0x2e6804(0x177,'\x44\x5a\x75\x6d')]=0.1,_0x3f18e3[_0x2e6804(0x1a0,'\x55\x7a\x56\x26')]=0.8,_0x3f18e3[_0x2e6804(0x1b3,'\x52\x56\x39\x30')]=0.05,_0x3f18e3[_0x2e6804(0x1ea,'\x73\x45\x47\x2a')+_0x2e6804(0x1d2,'\x73\x45\x47\x2a')+_0x2e6804(0x1b7,'\x65\x77\x37\x25')]=0.3,_0x3f18e3[_0x2e6804(0x1bb,'\x6a\x39\x5b\x70')]=_0x2e6804(0x172,'\x32\x6e\x44\x6d')+_0x2e6804(0x1ce,'\x56\x4c\x47\x6f'),_0x3f18e3[_0x2e6804(0x19f,'\x59\x46\x25\x61')+_0x2e6804(0x1dc,'\x73\x45\x47\x2a')]=_0x2e6804(0x237,'\x59\x46\x25\x61')+_0x2e6804(0x1aa,'\x42\x4e\x41\x29')+_0x2e6804(0x1e5,'\x6a\x39\x5b\x70')+_0x2e6804(0x201,'\x42\x4e\x41\x29')+'\x65\x61\x74\x75\x72\x65\x73\x20'+_0x2e6804(0x220,'\x77\x24\x76\x51')+_0x2e6804(0x20d,'\x54\x6b\x71\x48')+'\x2e';var _0x1f1c72={};_0x1f1c72[_0x2e6804(0x18b,'\x73\x45\x47\x2a')]=0.4,_0x1f1c72[_0x2e6804(0x188,'\x55\x7a\x56\x26')]=0.35,_0x1f1c72['\x69\x6e\x6e\x6f\x76\x61\x74\x65']=0.2,_0x1f1c72[_0x2e6804(0x225,'\x47\x57\x28\x47')]=0.05,_0x1f1c72['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0x2e6804(0x1bc,'\x42\x4e\x41\x29')+_0x2e6804(0x197,'\x56\x4c\x47\x6f')]=0.7,_0x1f1c72[_0x2e6804(0x165,'\x53\x32\x52\x41')]=_0x2e6804(0x246,'\x54\x4e\x25\x5e')+'\x67',_0x1f1c72[_0x2e6804(0x1d1,'\x52\x54\x4b\x42')+_0x2e6804(0x24d,'\x31\x43\x79\x44')]=_0x2e6804(0x1b5,'\x5d\x65\x70\x77')+_0x2e6804(0x180,'\x6a\x39\x5b\x70')+_0x2e6804(0x179,'\x5d\x65\x70\x77')+_0x2e6804(0x211,'\x37\x70\x53\x23')+_0x2e6804(0x16d,'\x45\x64\x54\x48')+'\x6e\x64\x20\x72\x6f\x62\x75\x73'+'\x74\x6e\x65\x73\x73\x2e';var _0x277a8b={};_0x277a8b[_0x2e6804(0x21c,'\x29\x23\x66\x40')]=0.8,_0x277a8b[_0x2e6804(0x15a,'\x52\x54\x4b\x42')]=0.18,_0x277a8b[_0x2e6804(0x205,'\x38\x35\x47\x48')]=0x0,_0x277a8b[_0x2e6804(0x23d,'\x26\x4f\x6d\x52')]=0.02,_0x277a8b[_0x2e6804(0x1cd,'\x56\x41\x4f\x5d')+_0x2e6804(0x1e8,'\x28\x4b\x40\x61')+_0x2e6804(0x213,'\x55\x7a\x56\x26')]=0x1,_0x277a8b[_0x2e6804(0x1e1,'\x28\x36\x4c\x39')]=_0x2e6804(0x224,'\x6e\x4d\x69\x37')+_0x2e6804(0x254,'\x69\x30\x6e\x45'),_0x277a8b[_0x2e6804(0x23f,'\x29\x23\x66\x40')+_0x2e6804(0x16a,'\x49\x62\x67\x7a')]=_0x2e6804(0x1b6,'\x51\x29\x77\x24')+_0x2e6804(0x1e4,'\x38\x35\x47\x48')+_0x2e6804(0x187,'\x28\x4b\x40\x61')+_0x2e6804(0x1c8,'\x32\x6e\x44\x6d')+_0x2e6804(0x1ca,'\x45\x64\x54\x48')+_0x2e6804(0x198,'\x6b\x5d\x29\x32')+_0x2e6804(0x1fc,'\x38\x35\x47\x48');var _0x162a78={};_0x162a78[_0x2e6804(0x22a,'\x69\x30\x6e\x45')]=0.6,_0x162a78[_0x2e6804(0x1c3,'\x54\x6b\x71\x48')]=0.22,_0x162a78[_0x2e6804(0x215,'\x4e\x44\x62\x31')]=0.15,_0x162a78[_0x2e6804(0x22c,'\x52\x54\x4b\x42')]=0.03,_0x162a78[_0x2e6804(0x250,'\x65\x77\x37\x25')+_0x2e6804(0x212,'\x6a\x39\x5b\x70')+_0x2e6804(0x15d,'\x36\x33\x51\x57')]=0.8,_0x162a78[_0x2e6804(0x19b,'\x28\x4b\x40\x61')]='\x45\x61\x72\x6c\x79\x20\x53\x74'+_0x2e6804(0x1ed,'\x56\x41\x4f\x5d')+'\x69\x6f\x6e',_0x162a78['\x64\x65\x73\x63\x72\x69\x70\x74'+_0x2e6804(0x1fd,'\x42\x4e\x41\x29')]='\x46\x69\x72\x73\x74\x20\x63\x79'+_0x2e6804(0x1f0,'\x49\x62\x67\x7a')+'\x69\x6f\x72\x69\x74\x69\x7a\x65'+_0x2e6804(0x18a,'\x54\x4e\x25\x5e')+_0x2e6804(0x16b,'\x32\x61\x36\x39')+_0x2e6804(0x16c,'\x6e\x4d\x69\x37')+_0x2e6804(0x160,'\x55\x7a\x56\x26')+_0x2e6804(0x1b1,'\x49\x62\x67\x7a')+'\x67\x2e';var _0x1466b2={};_0x1466b2[_0x2e6804(0x1d8,'\x79\x75\x28\x78')]=0.55,_0x1466b2[_0x2e6804(0x1c3,'\x54\x6b\x71\x48')]=0.25,_0x1466b2[_0x2e6804(0x192,'\x42\x4e\x41\x29')]=0.05,_0x1466b2[_0x2e6804(0x24e,'\x2a\x4e\x7a\x54')]=0.15,_0x1466b2[_0x2e6804(0x157,'\x36\x56\x66\x30')+_0x2e6804(0x184,'\x58\x66\x6a\x47')+_0x2e6804(0x17e,'\x32\x61\x36\x39')]=0.9,_0x1466b2[_0x2e6804(0x21e,'\x56\x4c\x47\x6f')]=_0x2e6804(0x24a,'\x50\x36\x6f\x52')+_0x2e6804(0x1cc,'\x6b\x5d\x29\x32'),_0x1466b2[_0x2e6804(0x167,'\x4e\x44\x62\x31')+_0x2e6804(0x24d,'\x31\x43\x79\x44')]=_0x2e6804(0x156,'\x5d\x50\x67\x4b')+_0x2e6804(0x255,'\x37\x70\x53\x23')+_0x2e6804(0x21f,'\x56\x33\x5b\x58')+_0x2e6804(0x16f,'\x58\x66\x6a\x47')+_0x2e6804(0x1eb,'\x38\x35\x47\x48')+_0x2e6804(0x235,'\x51\x29\x77\x24')+_0x2e6804(0x1fa,'\x56\x4c\x47\x6f')+_0x2e6804(0x1af,'\x52\x54\x4b\x42')+_0x2e6804(0x19a,'\x37\x70\x53\x23')+_0x2e6804(0x238,'\x50\x50\x4f\x31');var _0x2bb434={};_0x2bb434[_0x2e6804(0x217,'\x6e\x4d\x69\x37')]=_0x553353,_0x2bb434[_0x2e6804(0x1be,'\x51\x29\x77\x24')]=_0x3f18e3,_0x2bb434[_0x2e6804(0x207,'\x65\x77\x37\x25')]=_0x1f1c72,_0x2bb434[_0x2e6804(0x221,'\x44\x5a\x75\x6d')+'\x6e\x6c\x79']=_0x277a8b,_0x2bb434[_0x2e6804(0x181,'\x26\x4f\x6d\x52')+_0x2e6804(0x1d6,'\x5d\x65\x70\x77')]=_0x162a78,_0x2bb434[_0x2e6804(0x158,'\x37\x70\x53\x23')+_0x2e6804(0x193,'\x25\x4f\x68\x5e')]=_0x1466b2;var _0x492307=_0x2bb434;function _0x14d507(){var _0x4a0af1=_0x2e6804,_0x26f621={};_0x26f621[_0x4a0af1(0x1e0,'\x53\x32\x52\x41')]=_0x4a0af1(0x248,'\x56\x41\x4f\x5d'),_0x26f621[_0x4a0af1(0x21b,'\x55\x7a\x56\x26')]=_0x4a0af1(0x17d,'\x25\x4f\x68\x5e')+_0x4a0af1(0x1b4,'\x36\x33\x51\x57')+_0x4a0af1(0x1a9,'\x59\x46\x25\x61'),_0x26f621[_0x4a0af1(0x1e7,'\x6a\x39\x5b\x70')]=_0x4a0af1(0x1f7,'\x2a\x4e\x7a\x54')+'\x6e',_0x26f621['\x46\x55\x52\x73\x74']=_0x4a0af1(0x154,'\x36\x56\x66\x30'),_0x26f621[_0x4a0af1(0x1da,'\x59\x46\x25\x61')]=function(_0x27954b,_0xd5fac3){return _0x27954b!==_0xd5fac3;},_0x26f621[_0x4a0af1(0x176,'\x68\x75\x6d\x31')]=_0x4a0af1(0x24b,'\x36\x56\x66\x30'),_0x26f621[_0x4a0af1(0x19c,'\x4e\x44\x62\x31')]=_0x4a0af1(0x1c6,'\x6a\x39\x23\x4f');var _0x56bf02=_0x26f621;try{var _0x5ac868=_0x5723f9[_0x4a0af1(0x23e,'\x49\x62\x67\x7a')](__dirname,'\x2e\x2e','\x2e\x2e',_0x4a0af1(0x23c,'\x44\x5a\x75\x6d'),_0x56bf02[_0x4a0af1(0x1e3,'\x49\x62\x67\x7a')]),_0x144044=_0x5723f9[_0x4a0af1(0x1ad,'\x56\x33\x5b\x58')](__dirname,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x4a0af1(0x248,'\x56\x41\x4f\x5d'),'\x65\x76\x6f\x6c\x75\x74\x69\x6f'+'\x6e',_0x56bf02[_0x4a0af1(0x1d4,'\x6a\x39\x5b\x70')]),_0x15570a=[_0x5ac868,_0x144044];for(var _0x544e46=0x4f9+-0x17b8+-0x1*-0x12bf;_0x544e46<_0x15570a[_0x4a0af1(0x170,'\x31\x43\x79\x44')];_0x544e46++){if(_0x238663[_0x4a0af1(0x241,'\x21\x50\x5e\x62')+'\x6e\x63'](_0x15570a[_0x544e46])){if(_0x56bf02[_0x4a0af1(0x20b,'\x37\x70\x53\x23')](_0x56bf02[_0x4a0af1(0x210,'\x6a\x39\x5b\x70')],_0x56bf02[_0x4a0af1(0x171,'\x25\x4f\x68\x5e')])){var _0x5443f1=JSON[_0x4a0af1(0x15b,'\x28\x36\x4c\x39')](_0x238663[_0x4a0af1(0x152,'\x38\x35\x47\x48')+'\x53\x79\x6e\x63'](_0x15570a[_0x544e46],_0x56bf02['\x46\x55\x52\x73\x74']));return _0x5443f1&&Number[_0x4a0af1(0x232,'\x45\x64\x54\x48')](_0x5443f1[_0x4a0af1(0x1b8,'\x54\x4e\x25\x5e')+'\x6e\x74'])?_0x5443f1[_0x4a0af1(0x22b,'\x56\x33\x5b\x58')+'\x6e\x74']:-0x1*-0x281+0xbe2+-0xe63;}else{var _0x1e629b=_0x34d3bc[_0x4a0af1(0x15c,'\x56\x41\x4f\x5d')](_0x48f8c4,'\x2e\x2e','\x2e\x2e',_0x56bf02[_0x4a0af1(0x200,'\x69\x30\x6e\x45')],_0x56bf02[_0x4a0af1(0x1c4,'\x5d\x50\x67\x4b')]),_0xdc9684=_0x211ad0[_0x4a0af1(0x1a8,'\x77\x24\x76\x51')](_0x29e6ee,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x4a0af1(0x1de,'\x63\x39\x31\x64'),_0x56bf02[_0x4a0af1(0x1e9,'\x2a\x4e\x7a\x54')],_0x4a0af1(0x1d9,'\x31\x43\x79\x44')+_0x4a0af1(0x208,'\x49\x62\x67\x7a')+'\x6a\x73\x6f\x6e'),_0x4f4674=[_0x1e629b,_0xdc9684];for(var _0x1b0aa3=0x1*0x21af+0x18e+-0x123*0x1f;_0x1b0aa3<_0x4f4674[_0x4a0af1(0x228,'\x54\x54\x45\x54')];_0x1b0aa3++){if(_0x125850[_0x4a0af1(0x20a,'\x69\x30\x6e\x45')+'\x6e\x63'](_0x4f4674[_0x1b0aa3])){var _0x1ad86a=_0x3d4d18[_0x4a0af1(0x15b,'\x28\x36\x4c\x39')](_0x470179[_0x4a0af1(0x231,'\x65\x77\x37\x25')+_0x4a0af1(0x161,'\x4e\x44\x62\x31')](_0x4f4674[_0x1b0aa3],_0x56bf02[_0x4a0af1(0x24f,'\x73\x45\x47\x2a')]));return _0x1ad86a&&_0x1f0d98[_0x4a0af1(0x222,'\x42\x4e\x41\x29')](_0x1ad86a[_0x4a0af1(0x259,'\x6b\x5d\x29\x32')+'\x6e\x74'])?_0x1ad86a[_0x4a0af1(0x1c0,'\x38\x35\x47\x48')+'\x6e\x74']:0x5de+-0x832+0x254;}}}}}}catch(_0x452fd2){}return-0x89*0x11+0x1469+-0xb5*0x10;}function _0x52cfc6(_0x5e2f4a){var _0x4e7aa0=_0x2e6804,_0x8f917d={'\x44\x43\x41\x50\x7a':function(_0x6ce748){return _0x6ce748();},'\x66\x4a\x58\x64\x53':function(_0x5f39f0,_0x31eaa1){return _0x5f39f0>_0x31eaa1;},'\x4b\x51\x76\x4b\x7a':function(_0x37608d,_0x3dce5a){return _0x37608d<=_0x3dce5a;},'\x6a\x68\x4d\x4a\x49':_0x4e7aa0(0x196,'\x53\x32\x52\x41')+'\x61\x62\x69\x6c\x69\x7a\x65','\x47\x47\x4e\x67\x4c':_0x4e7aa0(0x1d3,'\x63\x39\x31\x64')+_0x4e7aa0(0x1ef,'\x73\x45\x47\x2a')+'\x74\x65','\x44\x6e\x73\x45\x5a':_0x4e7aa0(0x199,'\x5d\x50\x67\x4b')+_0x4e7aa0(0x21a,'\x33\x57\x43\x53'),'\x58\x53\x4c\x5a\x6e':function(_0x25982d,_0x1ea56b){return _0x25982d!==_0x1ea56b;},'\x47\x70\x72\x49\x76':_0x4e7aa0(0x178,'\x38\x35\x47\x48')+_0x4e7aa0(0x15f,'\x6a\x39\x5b\x70')+_0x4e7aa0(0x1f9,'\x49\x62\x67\x7a'),'\x57\x4b\x7a\x6a\x4b':_0x4e7aa0(0x21d,'\x59\x46\x25\x61')+_0x4e7aa0(0x203,'\x52\x56\x39\x30'),'\x4d\x46\x52\x5a\x44':function(_0x5bf3d9,_0x35ab45){return _0x5bf3d9(_0x35ab45);},'\x7a\x42\x43\x70\x43':_0x4e7aa0(0x174,'\x51\x29\x77\x24'),'\x75\x4c\x67\x58\x6a':function(_0x123450,_0x2ee5e5){return _0x123450===_0x2ee5e5;},'\x47\x68\x75\x48\x54':_0x4e7aa0(0x19d,'\x6b\x5d\x29\x32'),'\x6e\x73\x45\x4f\x76':function(_0x2c576f,_0x96d20b){return _0x2c576f!==_0x96d20b;},'\x41\x77\x49\x4d\x57':_0x4e7aa0(0x20c,'\x5d\x65\x70\x77'),'\x68\x4e\x45\x57\x73':'\x69\x6e\x6e\x6f\x76\x61\x74\x65','\x51\x6f\x77\x45\x42':'\x61\x75\x74\x6f','\x6b\x7a\x53\x64\x78':function(_0x48457c,_0x3910d2){return _0x48457c&&_0x3910d2;},'\x70\x4e\x41\x6a\x66':_0x4e7aa0(0x1fb,'\x56\x41\x4f\x5d'),'\x45\x67\x48\x45\x49':_0x4e7aa0(0x1fe,'\x6a\x39\x23\x4f'),'\x42\x44\x4a\x4b\x6a':function(_0x218664,_0x14c3c4){return _0x218664<=_0x14c3c4;},'\x48\x76\x72\x55\x66':_0x4e7aa0(0x173,'\x32\x6e\x44\x6d'),'\x79\x75\x76\x51\x6c':function(_0x298046,_0x534360){return _0x298046!==_0x534360;},'\x61\x75\x79\x4d\x55':function(_0x243b3b,_0x30ed3c){return _0x243b3b!==_0x30ed3c;},'\x57\x5a\x6e\x54\x4b':'\x53\x66\x43\x42\x47','\x4d\x75\x41\x74\x68':function(_0x39370d,_0x1ba454){return _0x39370d===_0x1ba454;}},_0x49172e=_0x5e2f4a&&Array[_0x4e7aa0(0x185,'\x55\x7a\x56\x26')](_0x5e2f4a[_0x4e7aa0(0x1e6,'\x2a\x4e\x7a\x54')])?_0x5e2f4a[_0x4e7aa0(0x1a7,'\x79\x75\x28\x78')]:[],_0xe6a518=_0x8f917d[_0x4e7aa0(0x226,'\x68\x75\x6d\x31')](String,process.env.EVOLVE_STRATEGY||_0x8f917d[_0x4e7aa0(0x1ee,'\x65\x77\x37\x25')])[_0x4e7aa0(0x24c,'\x52\x54\x4b\x42')+_0x4e7aa0(0x252,'\x69\x30\x6e\x45')]()[_0x4e7aa0(0x25b,'\x53\x32\x52\x41')](),_0x3d0183=![];if(!process.env.EVOLVE_STRATEGY){var _0x16e807=String(process.env.FORCE_INNOVATION||process.env.EVOLVE_FORCE_INNOVATION||'')[_0x4e7aa0(0x1b0,'\x4e\x44\x62\x31')+_0x4e7aa0(0x169,'\x4e\x44\x62\x31')]();if(_0x8f917d[_0x4e7aa0(0x168,'\x79\x75\x28\x78')](_0x16e807,_0x8f917d[_0x4e7aa0(0x17c,'\x79\x75\x28\x78')])){if(_0x8f917d[_0x4e7aa0(0x227,'\x5d\x65\x70\x77')](_0x8f917d['\x41\x77\x49\x4d\x57'],_0x8f917d[_0x4e7aa0(0x22f,'\x69\x30\x6e\x45')])){var _0x3ff80f=_0x8f917d[_0x4e7aa0(0x150,'\x68\x75\x6d\x31')](_0x2dceba);_0x8f917d[_0x4e7aa0(0x1f4,'\x52\x54\x4b\x42')](_0x3ff80f,0x373*-0x7+-0x6a0*-0x1+-0xf*-0x12b)&&_0x8f917d['\x4b\x51\x76\x4b\x7a'](_0x3ff80f,0x1f7f+0x1*-0x15dd+-0x99d)&&(_0x16f768=_0x8f917d['\x6a\x68\x4d\x4a\x49']);if(_0x24b69d[_0x4e7aa0(0x243,'\x39\x48\x77\x4f')](_0x8f917d[_0x4e7aa0(0x17a,'\x53\x32\x52\x41')])!==-(0x2571+-0x1e9*-0x4+-0xa*0x482))_0x19215e=_0x8f917d[_0x4e7aa0(0x18e,'\x33\x57\x43\x53')];else _0x8f917d[_0x4e7aa0(0x20e,'\x51\x29\x77\x24')](_0x531612['\x69\x6e\x64\x65\x78\x4f\x66'](_0x8f917d[_0x4e7aa0(0x23b,'\x36\x33\x51\x57')]),-(0x1*-0x1ee5+0x198e+0x558))&&(_0x4a9cba=_0x4e7aa0(0x23a,'\x6a\x39\x5b\x70')+_0x4e7aa0(0x256,'\x32\x6e\x44\x6d'));}else _0xe6a518=_0x8f917d[_0x4e7aa0(0x189,'\x5d\x50\x67\x4b')],_0x3d0183=!![];}}var _0x38b7e4=!process.env.EVOLVE_STRATEGY||_0x8f917d['\x75\x4c\x67\x58\x6a'](_0xe6a518,_0x8f917d[_0x4e7aa0(0x1f5,'\x56\x33\x5b\x58')])||_0x8f917d['\x75\x4c\x67\x58\x6a'](_0xe6a518,_0x8f917d[_0x4e7aa0(0x251,'\x4e\x44\x62\x31')]);if(_0x8f917d[_0x4e7aa0(0x162,'\x47\x57\x28\x47')](_0x38b7e4,!_0x3d0183)){if(_0x8f917d[_0x4e7aa0(0x175,'\x54\x6b\x71\x48')](_0x8f917d[_0x4e7aa0(0x1d0,'\x54\x54\x45\x54')],_0x8f917d[_0x4e7aa0(0x1e2,'\x28\x36\x4c\x39')])){var _0x387c18=_0x8f917d[_0x4e7aa0(0x16e,'\x32\x6e\x44\x6d')](_0x14d507);_0x8f917d[_0x4e7aa0(0x218,'\x53\x32\x52\x41')](_0x387c18,0x53*-0x1d+0x579+0x3ee)&&_0x8f917d['\x42\x44\x4a\x4b\x6a'](_0x387c18,-0x12da+-0x37*0x8b+0x30bc)&&(_0x8f917d[_0x4e7aa0(0x233,'\x36\x56\x66\x30')](_0x4e7aa0(0x214,'\x65\x77\x37\x25'),_0x8f917d[_0x4e7aa0(0x236,'\x52\x56\x39\x30')])?_0x281ad3=_0x8f917d[_0x4e7aa0(0x163,'\x4e\x44\x62\x31')]:_0xe6a518=_0x8f917d[_0x4e7aa0(0x194,'\x2a\x4e\x7a\x54')]);if(_0x49172e[_0x4e7aa0(0x166,'\x25\x4f\x68\x5e')](_0x8f917d[_0x4e7aa0(0x19e,'\x38\x35\x47\x48')])!==-(-0xf*-0x12e+-0x714+-0xa9d))_0xe6a518=_0x8f917d['\x44\x6e\x73\x45\x5a'];else _0x8f917d[_0x4e7aa0(0x1f1,'\x54\x4e\x25\x5e')](_0x49172e['\x69\x6e\x64\x65\x78\x4f\x66'](_0x4e7aa0(0x1ff,'\x26\x4f\x6d\x52')+_0x4e7aa0(0x1bf,'\x39\x48\x77\x4f')+_0x4e7aa0(0x17f,'\x54\x54\x45\x54')),-(-0xbbe+0x1de*-0x14+-0xd5*-0x3b))&&(_0x8f917d[_0x4e7aa0(0x1d5,'\x4e\x44\x62\x31')](_0x4e7aa0(0x1ac,'\x54\x54\x45\x54'),_0x8f917d[_0x4e7aa0(0x1a1,'\x63\x39\x31\x64')])?_0xe6a518=_0x8f917d[_0x4e7aa0(0x155,'\x77\x24\x76\x51')]:_0x523195=_0x8f917d[_0x4e7aa0(0x1a4,'\x63\x39\x31\x64')]);}else return _0xd53102['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4e7aa0(0x191,'\x56\x4c\x47\x6f')](_0x4e7aa0(0x1ba,'\x26\x4f\x6d\x52')+_0x4e7aa0(0x242,'\x68\x75\x6d\x31'))[_0x4e7aa0(0x1a5,'\x79\x75\x28\x78')]()['\x63\x6f\x6e\x73\x74\x72\x75\x63'+_0x4e7aa0(0x1f2,'\x56\x4c\x47\x6f')](_0x28fddd)[_0x4e7aa0(0x258,'\x6a\x39\x23\x4f')](dRJNiV[_0x4e7aa0(0x1a6,'\x39\x48\x77\x4f')]);}if(_0x8f917d[_0x4e7aa0(0x1df,'\x38\x35\x47\x48')](_0xe6a518,_0x8f917d[_0x4e7aa0(0x249,'\x33\x57\x43\x53')]))_0xe6a518=_0x8f917d[_0x4e7aa0(0x209,'\x26\x4f\x6d\x52')];var _0x51dc9e=_0x492307[_0xe6a518]||_0x492307[_0x8f917d[_0x4e7aa0(0x1f5,'\x56\x33\x5b\x58')]],_0x2647fe={};return _0x2647fe[_0x4e7aa0(0x1ec,'\x6a\x39\x23\x4f')]=_0xe6a518,Object['\x61\x73\x73\x69\x67\x6e']({},_0x51dc9e,_0x2647fe);}function _0x49b422(){var _0x5e8ce4=_0x2e6804;return Object[_0x5e8ce4(0x15e,'\x32\x61\x36\x39')](_0x492307);}var _0x2cffdd={};_0x2cffdd[_0x2e6804(0x1bd,'\x69\x30\x6e\x45')+'\x74\x72\x61\x74\x65\x67\x79']=_0x52cfc6,_0x2cffdd[_0x2e6804(0x195,'\x73\x45\x47\x2a')+'\x65\x67\x79\x4e\x61\x6d\x65\x73']=_0x49b422,_0x2cffdd[_0x2e6804(0x216,'\x47\x57\x28\x47')+'\x45\x53']=_0x492307,module[_0x2e6804(0x202,'\x5d\x50\x67\x4b')]=_0x2cffdd;
|
|
1
|
+
// Evolution Strategy Presets (v1.1)
|
|
2
|
+
// Controls the balance between repair, optimize, and innovate intents.
|
|
3
|
+
//
|
|
4
|
+
// Usage: set EVOLVE_STRATEGY env var to one of: balanced, innovate, harden, repair-only,
|
|
5
|
+
// early-stabilize, steady-state, or "auto" for adaptive selection.
|
|
6
|
+
// Default: balanced (or auto-detected based on cycle count / saturation signals)
|
|
7
|
+
//
|
|
8
|
+
// Each strategy defines:
|
|
9
|
+
// repair/optimize/innovate - target allocation ratios (inform the LLM prompt)
|
|
10
|
+
// repairLoopThreshold - repair ratio in last 8 cycles that triggers forced innovation
|
|
11
|
+
// label - human-readable name injected into the GEP prompt
|
|
12
|
+
|
|
13
|
+
var fs = require('fs');
|
|
14
|
+
var path = require('path');
|
|
15
|
+
|
|
16
|
+
var STRATEGIES = {
|
|
17
|
+
'balanced': {
|
|
18
|
+
repair: 0.20,
|
|
19
|
+
optimize: 0.20,
|
|
20
|
+
innovate: 0.50,
|
|
21
|
+
explore: 0.10,
|
|
22
|
+
repairLoopThreshold: 0.50,
|
|
23
|
+
label: 'Balanced',
|
|
24
|
+
description: 'Normal operation. Steady growth with stability.',
|
|
25
|
+
},
|
|
26
|
+
'innovate': {
|
|
27
|
+
repair: 0.05,
|
|
28
|
+
optimize: 0.10,
|
|
29
|
+
innovate: 0.80,
|
|
30
|
+
explore: 0.05,
|
|
31
|
+
repairLoopThreshold: 0.30,
|
|
32
|
+
label: 'Innovation Focus',
|
|
33
|
+
description: 'System is stable. Maximize new features and capabilities.',
|
|
34
|
+
},
|
|
35
|
+
'harden': {
|
|
36
|
+
repair: 0.40,
|
|
37
|
+
optimize: 0.35,
|
|
38
|
+
innovate: 0.20,
|
|
39
|
+
explore: 0.05,
|
|
40
|
+
repairLoopThreshold: 0.70,
|
|
41
|
+
label: 'Hardening',
|
|
42
|
+
description: 'After a big change. Focus on stability and robustness.',
|
|
43
|
+
},
|
|
44
|
+
'repair-only': {
|
|
45
|
+
repair: 0.80,
|
|
46
|
+
optimize: 0.18,
|
|
47
|
+
innovate: 0.00,
|
|
48
|
+
explore: 0.02,
|
|
49
|
+
repairLoopThreshold: 1.00,
|
|
50
|
+
label: 'Repair Only',
|
|
51
|
+
description: 'Emergency. Fix everything before doing anything else.',
|
|
52
|
+
},
|
|
53
|
+
'early-stabilize': {
|
|
54
|
+
repair: 0.60,
|
|
55
|
+
optimize: 0.22,
|
|
56
|
+
innovate: 0.15,
|
|
57
|
+
explore: 0.03,
|
|
58
|
+
repairLoopThreshold: 0.80,
|
|
59
|
+
label: 'Early Stabilization',
|
|
60
|
+
description: 'First cycles. Prioritize fixing existing issues before innovating.',
|
|
61
|
+
},
|
|
62
|
+
'steady-state': {
|
|
63
|
+
repair: 0.55,
|
|
64
|
+
optimize: 0.25,
|
|
65
|
+
innovate: 0.05,
|
|
66
|
+
explore: 0.15,
|
|
67
|
+
repairLoopThreshold: 0.90,
|
|
68
|
+
label: 'Steady State',
|
|
69
|
+
description: 'Evolution saturated. Maintain existing capabilities. Explore for new directions.',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// Read evolution_state.json to get the current cycle count for auto-detection.
|
|
74
|
+
function _readCycleCount() {
|
|
75
|
+
try {
|
|
76
|
+
// evolver/memory/evolution_state.json (local to the skill)
|
|
77
|
+
var localPath = path.resolve(__dirname, '..', '..', 'memory', 'evolution_state.json');
|
|
78
|
+
// workspace/memory/evolution/evolution_state.json (canonical path used by evolve.js)
|
|
79
|
+
var workspacePath = path.resolve(__dirname, '..', '..', '..', '..', 'memory', 'evolution', 'evolution_state.json');
|
|
80
|
+
var candidates = [localPath, workspacePath];
|
|
81
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
82
|
+
if (fs.existsSync(candidates[i])) {
|
|
83
|
+
var data = JSON.parse(fs.readFileSync(candidates[i], 'utf8'));
|
|
84
|
+
return data && Number.isFinite(data.cycleCount) ? data.cycleCount : 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
} catch (e) {}
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function resolveStrategy(opts) {
|
|
92
|
+
var signals = (opts && Array.isArray(opts.signals)) ? opts.signals : [];
|
|
93
|
+
var name = String(process.env.EVOLVE_STRATEGY || 'balanced').toLowerCase().trim();
|
|
94
|
+
|
|
95
|
+
// Backward compatibility: FORCE_INNOVATION=true maps to 'innovate'
|
|
96
|
+
var forceInnovation = false;
|
|
97
|
+
if (!process.env.EVOLVE_STRATEGY) {
|
|
98
|
+
var fi = String(process.env.FORCE_INNOVATION || process.env.EVOLVE_FORCE_INNOVATION || '').toLowerCase();
|
|
99
|
+
if (fi === 'true') {
|
|
100
|
+
name = 'innovate';
|
|
101
|
+
forceInnovation = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Auto-detection: when no explicit strategy is set (defaults to 'balanced'),
|
|
106
|
+
// apply heuristics inspired by Echo-MingXuan's "fix first, innovate later" pattern.
|
|
107
|
+
// Skip if user explicitly set FORCE_INNOVATION=true
|
|
108
|
+
var isDefault = !process.env.EVOLVE_STRATEGY || name === 'balanced' || name === 'auto';
|
|
109
|
+
|
|
110
|
+
if (isDefault && !forceInnovation) {
|
|
111
|
+
// Early-stabilize: first 5 cycles should focus on fixing existing issues.
|
|
112
|
+
var cycleCount = _readCycleCount();
|
|
113
|
+
if (cycleCount > 0 && cycleCount <= 5) {
|
|
114
|
+
name = 'early-stabilize';
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Saturation detection: if saturation signals are present, switch to steady-state.
|
|
118
|
+
if (signals.indexOf('force_steady_state') !== -1) {
|
|
119
|
+
name = 'steady-state';
|
|
120
|
+
} else if (signals.indexOf('evolution_saturation') !== -1) {
|
|
121
|
+
name = 'steady-state';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Explicit "auto" maps to whatever was auto-detected above (or balanced if no heuristic fired).
|
|
126
|
+
if (name === 'auto') name = 'balanced';
|
|
127
|
+
|
|
128
|
+
var strategy = STRATEGIES[name] || STRATEGIES['balanced'];
|
|
129
|
+
return Object.assign({}, strategy, { name: name });
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function getStrategyNames() {
|
|
133
|
+
return Object.keys(STRATEGIES);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
module.exports = { resolveStrategy, getStrategyNames, STRATEGIES };
|
package/src/gep/tokenSavings.js
CHANGED
|
@@ -1 +1,95 @@
|
|
|
1
|
-
const _0x33592d=_0x5a26;(function(_0x8b487c,_0xd774b3){const _0x537e5f=_0x5a26,_0x21025a=_0x8b487c();while(!![]){try{const _0x170d84=-parseInt(_0x537e5f(0x1f2,'\x46\x31\x75\x6f'))/(0x3*0x315+-0x407+0x10b*-0x5)+parseInt(_0x537e5f(0x1f4,'\x41\x30\x4a\x24'))/(0x152+-0x6c2+0x11*0x52)*(-parseInt(_0x537e5f(0x1b1,'\x5e\x76\x4f\x76'))/(-0x2184+-0x3*0x825+0x1352*0x3))+parseInt(_0x537e5f(0x1a6,'\x74\x6d\x67\x47'))/(0x1c26+0x1991+0xe9*-0x3b)*(-parseInt(_0x537e5f(0x1da,'\x25\x28\x57\x6c'))/(0x543*0x2+-0x21a+0x2cd*-0x3))+parseInt(_0x537e5f(0x1c7,'\x69\x74\x69\x5d'))/(-0xd51+-0x3*-0x941+0x39b*-0x4)*(-parseInt(_0x537e5f(0x1cb,'\x62\x73\x56\x32'))/(-0x1*0x1d+-0x1*0x18c5+0x1*0x18e9))+-parseInt(_0x537e5f(0x1cc,'\x48\x65\x34\x52'))/(0xb3d+-0x18c6+0xd91*0x1)+-parseInt(_0x537e5f(0x1d9,'\x7a\x44\x49\x6a'))/(0x1f96*-0x1+-0x18a5+0x115*0x34)+parseInt(_0x537e5f(0x1ee,'\x21\x56\x24\x43'))/(0x429*-0x3+-0x1dfd+0x2a82);if(_0x170d84===_0xd774b3)break;else _0x21025a['push'](_0x21025a['shift']());}catch(_0x176d51){_0x21025a['push'](_0x21025a['shift']());}}}(_0x4c53,0x1c9d3*-0x1+-0x9b*-0x2a29+-0xa3a32));const _0x1087bf=(function(){const _0x5c3da8=_0x5a26,_0x1c6270={'\x72\x4f\x56\x54\x67':_0x5c3da8(0x1ca,'\x79\x6a\x31\x76'),'\x65\x6a\x78\x68\x58':function(_0x246f8e,_0xb4b0d3){return _0x246f8e(_0xb4b0d3);},'\x62\x6e\x41\x73\x53':function(_0x548989,_0x28b0e4){return _0x548989>_0x28b0e4;},'\x58\x78\x56\x69\x65':_0x5c3da8(0x1b9,'\x4d\x59\x4d\x37')};let _0x292fc3=!![];return function(_0x32878d,_0x3ce722){const _0x4c98d5=_0x5c3da8;if(_0x1c6270[_0x4c98d5(0x1c9,'\x2a\x6c\x7a\x73')]===_0x1c6270['\x58\x78\x56\x69\x65']){const _0x574943=_0x292fc3?function(){const _0x15ec95=_0x4c98d5;if(_0x3ce722){const _0x304d40=_0x3ce722[_0x15ec95(0x1b7,'\x6c\x78\x61\x61')](_0x32878d,arguments);return _0x3ce722=null,_0x304d40;}}:function(){};return _0x292fc3=![],_0x574943;}else{const _0x41c453=_0x2fcf1b&&(_0x1c0123[_0x4c98d5(0x197,'\x74\x6d\x67\x47')+_0x4c98d5(0x1d8,'\x66\x49\x53\x29')]||_0x257200[_0x4c98d5(0x1eb,'\x31\x39\x75\x39')]&&_0x1a46ee[_0x4c98d5(0x1c1,'\x4a\x26\x6a\x43')][_0x4c98d5(0x193,'\x6f\x79\x65\x5e')+_0x4c98d5(0x1b3,'\x6f\x47\x51\x6f')]);if(_0x41c453&&typeof _0x41c453===_0x1c6270[_0x4c98d5(0x1d6,'\x21\x56\x24\x43')]){const _0x4b6048=_0x1c6270[_0x4c98d5(0x1df,'\x62\x73\x56\x32')](_0x540426,_0x41c453[_0x4c98d5(0x190,'\x50\x54\x67\x65')]);if(_0x15930e[_0x4c98d5(0x1e6,'\x46\x63\x75\x63')](_0x4b6048)&&_0x1c6270[_0x4c98d5(0x1a2,'\x39\x25\x64\x6c')](_0x4b6048,-0x4*0x705+0x431+0x17e3))return _0x4b6048;}return null;}};}()),_0x4f330e=_0x1087bf(this,function(){const _0x15ae75=_0x5a26,_0x363321={};_0x363321[_0x15ae75(0x1a8,'\x52\x6e\x72\x55')]=_0x15ae75(0x1e1,'\x50\x54\x67\x65')+'\x2b\x29\x2b\x24';const _0x13a070=_0x363321;return _0x4f330e['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x15ae75(0x1d3,'\x55\x65\x43\x31')](_0x13a070[_0x15ae75(0x18f,'\x71\x4f\x79\x77')])[_0x15ae75(0x1a9,'\x59\x61\x46\x6e')]()[_0x15ae75(0x1db,'\x41\x30\x4a\x24')+_0x15ae75(0x1f5,'\x79\x6a\x31\x76')](_0x4f330e)[_0x15ae75(0x1d7,'\x46\x63\x75\x63')](_0x13a070[_0x15ae75(0x1a4,'\x2a\x6c\x7a\x73')]);});_0x4f330e();'use strict';const {CONSTANTS:_0x51f43d}=require(_0x33592d(0x1e0,'\x72\x50\x6f\x66')+_0x33592d(0x1bb,'\x69\x74\x69\x5d')),_0x1fe739=_0x51f43d[_0x33592d(0x1ac,'\x66\x49\x53\x29')+_0x33592d(0x1de,'\x79\x56\x4b\x6b')][_0x33592d(0x19f,'\x4a\x26\x6a\x43')+_0x33592d(0x1ab,'\x71\x4f\x79\x77')+'\x6e\x73'],_0x312391=_0x51f43d['\x72\x65\x75\x73\x65\x5f\x65\x73'+'\x74\x69\x6d\x61\x74\x6f\x72'][_0x33592d(0x1cf,'\x46\x63\x75\x63')+_0x33592d(0x19d,'\x2a\x6c\x7a\x73')+_0x33592d(0x1bc,'\x41\x30\x4a\x24')],_0x5012b1=_0x51f43d[_0x33592d(0x1af,'\x54\x54\x32\x5e')+_0x33592d(0x1a3,'\x72\x50\x6f\x66')]['\x64\x65\x72\x69\x76\x65\x5f\x63'+_0x33592d(0x19a,'\x56\x79\x39\x32')+'\x73'],_0x1582b6=_0x51f43d[_0x33592d(0x1ce,'\x39\x5d\x61\x58')+_0x33592d(0x1f1,'\x79\x6a\x31\x76')][_0x33592d(0x199,'\x41\x30\x4a\x24')+_0x33592d(0x1c8,'\x59\x61\x46\x6e')+_0x33592d(0x1ba,'\x47\x41\x35\x24')],_0x42a072=_0x51f43d[_0x33592d(0x1ae,'\x26\x31\x64\x57')+_0x33592d(0x196,'\x39\x5d\x61\x58')][_0x33592d(0x1e4,'\x6c\x43\x72\x62')+_0x33592d(0x1b2,'\x33\x2a\x71\x41')+_0x33592d(0x1d4,'\x33\x2a\x71\x41')+'\x6e'];function _0x5a26(_0x1f47ee,_0x20331a){_0x1f47ee=_0x1f47ee-(0x68a+0x1640+-0x1b3b);const _0xc8e0c3=_0x4c53();let _0x46a5a8=_0xc8e0c3[_0x1f47ee];if(_0x5a26['\x65\x7a\x65\x4a\x57\x71']===undefined){var _0xb754a4=function(_0x23fb22){const _0x8da8ab='\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 _0x3d8601='',_0x5306cb='',_0x27e4cc=_0x3d8601+_0xb754a4,_0x26f189=(''+function(){return 0x1777*0x1+-0x1165*-0x2+0x3a41*-0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1*-0xf86+0x1d38+-0x2cbd);for(let _0x17fcc7=-0x6*-0x53c+-0x9*0x12a+-0x14ee,_0x5eb613,_0x575336,_0x2b05e8=-0x118b+0x1c1c+-0xa91;_0x575336=_0x23fb22['\x63\x68\x61\x72\x41\x74'](_0x2b05e8++);~_0x575336&&(_0x5eb613=_0x17fcc7%(0x1*-0x1e5d+-0x1*0x1369+0x2*0x18e5)?_0x5eb613*(-0x59f+0x4d7*-0x1+0xab6)+_0x575336:_0x575336,_0x17fcc7++%(0x215b+-0x1684+-0xad3))?_0x3d8601+=_0x26f189||_0x27e4cc['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2b05e8+(0x2442+-0x16dd+-0xd5b))-(-0x30d*-0x3+-0xeb3+0x596)!==0xf50+-0x1bbb*0x1+0xc6b?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x6cc+-0x2*0xd15+-0x1*-0x21f5&_0x5eb613>>(-(-0xcb0*-0x2+0x1f12+0x25a*-0x18)*_0x17fcc7&0x48*0x35+-0x209f+-0xef*-0x13)):_0x17fcc7:-0x8d+0x3*-0x225+0xc*0x95){_0x575336=_0x8da8ab['\x69\x6e\x64\x65\x78\x4f\x66'](_0x575336);}for(let _0x333601=-0xf46+0xc79*0x2+-0x9ac,_0x25704f=_0x3d8601['\x6c\x65\x6e\x67\x74\x68'];_0x333601<_0x25704f;_0x333601++){_0x5306cb+='\x25'+('\x30\x30'+_0x3d8601['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x333601)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x205*0xf+-0x3*-0xce5+0x34*-0x29))['\x73\x6c\x69\x63\x65'](-(-0xa3*0xe+-0xadc+-0x13c8*-0x1));}return decodeURIComponent(_0x5306cb);};const _0x282154=function(_0x23392e,_0x2d5aa1){let _0x4a0071=[],_0x210370=0xa16*0x3+-0x17f4+-0x3*0x21a,_0x202bbd,_0xd648c='';_0x23392e=_0xb754a4(_0x23392e);let _0x55d3a2;for(_0x55d3a2=-0x1622*-0x1+0x1fee+-0x3610;_0x55d3a2<-0x201e+-0x1937+0x1*0x3a55;_0x55d3a2++){_0x4a0071[_0x55d3a2]=_0x55d3a2;}for(_0x55d3a2=-0x9e5*-0x1+-0x13dc+-0x1*-0x9f7;_0x55d3a2<0x59*0x52+-0x2*0xf43+-0x2*-0x182;_0x55d3a2++){_0x210370=(_0x210370+_0x4a0071[_0x55d3a2]+_0x2d5aa1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x55d3a2%_0x2d5aa1['\x6c\x65\x6e\x67\x74\x68']))%(0xa7a+-0x2b7*-0xd+-0x2cc5),_0x202bbd=_0x4a0071[_0x55d3a2],_0x4a0071[_0x55d3a2]=_0x4a0071[_0x210370],_0x4a0071[_0x210370]=_0x202bbd;}_0x55d3a2=-0x2e1*0x1+-0x54a+0x82b,_0x210370=-0x6*-0x115+-0x14ac+0x3*0x4ba;for(let _0x20e73a=0x1*0x1d84+-0x2449+0x6c5*0x1;_0x20e73a<_0x23392e['\x6c\x65\x6e\x67\x74\x68'];_0x20e73a++){_0x55d3a2=(_0x55d3a2+(-0xdcc+0x3*-0xac5+-0x38c*-0xd))%(-0x3*-0x1d+0x1781+-0x16d8),_0x210370=(_0x210370+_0x4a0071[_0x55d3a2])%(0x39d+-0x145f+0x11c2),_0x202bbd=_0x4a0071[_0x55d3a2],_0x4a0071[_0x55d3a2]=_0x4a0071[_0x210370],_0x4a0071[_0x210370]=_0x202bbd,_0xd648c+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x23392e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x20e73a)^_0x4a0071[(_0x4a0071[_0x55d3a2]+_0x4a0071[_0x210370])%(0x4*-0x4bc+-0x1715*-0x1+-0x325)]);}return _0xd648c;};_0x5a26['\x71\x47\x66\x71\x59\x46']=_0x282154,_0x5a26['\x47\x78\x65\x44\x55\x56']={},_0x5a26['\x65\x7a\x65\x4a\x57\x71']=!![];}const _0x35d0ac=_0xc8e0c3[0x1*-0x15b9+0x170c+-0x153],_0x49131b=_0x1f47ee+_0x35d0ac,_0xccca27=_0x5a26['\x47\x78\x65\x44\x55\x56'][_0x49131b];if(!_0xccca27){if(_0x5a26['\x45\x47\x4a\x56\x6c\x68']===undefined){const _0x2b7513=function(_0x1dd209){this['\x6d\x48\x53\x63\x53\x4e']=_0x1dd209,this['\x51\x62\x47\x6c\x58\x53']=[0x113c*0x1+0x2bb+-0x13f6,-0x221d+-0x1*0x1e1e+-0x9*-0x723,0x1c56+-0x26c1+0xa6b],this['\x61\x4f\x4e\x54\x4e\x74']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x71\x72\x6b\x45\x63\x51']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x53\x6b\x4b\x62\x6a\x6e']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x2b7513['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x72\x6b\x58\x47\x79\x4c']=function(){const _0x177b92=new RegExp(this['\x71\x72\x6b\x45\x63\x51']+this['\x53\x6b\x4b\x62\x6a\x6e']),_0x3c6196=_0x177b92['\x74\x65\x73\x74'](this['\x61\x4f\x4e\x54\x4e\x74']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x51\x62\x47\x6c\x58\x53'][0x19ee+-0x167c+-0x371]:--this['\x51\x62\x47\x6c\x58\x53'][-0x9*0x1da+-0x1f42*-0x1+-0xe98];return this['\x46\x48\x46\x6c\x49\x59'](_0x3c6196);},_0x2b7513['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x46\x48\x46\x6c\x49\x59']=function(_0x1aa2c0){if(!Boolean(~_0x1aa2c0))return _0x1aa2c0;return this['\x78\x45\x64\x53\x4e\x4f'](this['\x6d\x48\x53\x63\x53\x4e']);},_0x2b7513['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x78\x45\x64\x53\x4e\x4f']=function(_0x5613da){for(let _0x34e7e7=-0x5*-0x615+0x14e9+-0x3352,_0x31d31a=this['\x51\x62\x47\x6c\x58\x53']['\x6c\x65\x6e\x67\x74\x68'];_0x34e7e7<_0x31d31a;_0x34e7e7++){this['\x51\x62\x47\x6c\x58\x53']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x31d31a=this['\x51\x62\x47\x6c\x58\x53']['\x6c\x65\x6e\x67\x74\x68'];}return _0x5613da(this['\x51\x62\x47\x6c\x58\x53'][0x103*-0x17+0x2379+0x11c*-0xb]);},(''+function(){return 0x361*-0x3+-0xd11+0x1734;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x135a+-0x1a49+0x2da4)&&new _0x2b7513(_0x5a26)['\x72\x6b\x58\x47\x79\x4c'](),_0x5a26['\x45\x47\x4a\x56\x6c\x68']=!![];}_0x46a5a8=_0x5a26['\x71\x47\x66\x71\x59\x46'](_0x46a5a8,_0x20331a),_0x5a26['\x47\x78\x65\x44\x55\x56'][_0x49131b]=_0x46a5a8;}else _0x46a5a8=_0xccca27;return _0x46a5a8;}function _0x17a6af(_0x41ae8f){const _0x3828e8=_0x33592d,_0xa63657={'\x43\x61\x61\x6c\x50':function(_0x1539c1,_0x6c8804){return _0x1539c1===_0x6c8804;},'\x74\x4c\x42\x51\x5a':function(_0x9af1d5,_0xfc91b4){return _0x9af1d5(_0xfc91b4);},'\x7a\x51\x79\x4a\x76':function(_0x3b514b,_0x3db6ff){return _0x3b514b>_0x3db6ff;}},_0x7c1672=_0x41ae8f&&(_0x41ae8f[_0x3828e8(0x1a7,'\x7a\x44\x49\x6a')+'\x64\x69\x75\x73']||_0x41ae8f['\x70\x61\x79\x6c\x6f\x61\x64']&&_0x41ae8f[_0x3828e8(0x1e9,'\x41\x30\x4a\x24')]['\x62\x6c\x61\x73\x74\x5f\x72\x61'+_0x3828e8(0x192,'\x74\x6d\x67\x47')]);if(_0x7c1672&&_0xa63657[_0x3828e8(0x1a5,'\x72\x50\x6f\x66')](typeof _0x7c1672,_0x3828e8(0x198,'\x46\x63\x75\x63'))){const _0x159902=_0xa63657[_0x3828e8(0x19e,'\x4d\x59\x4d\x37')](Number,_0x7c1672[_0x3828e8(0x19c,'\x74\x6d\x67\x47')]);if(Number[_0x3828e8(0x1e2,'\x47\x41\x35\x24')](_0x159902)&&_0xa63657[_0x3828e8(0x1dc,'\x39\x25\x64\x6c')](_0x159902,0xf4d+0xf63+-0x1eb0))return _0x159902;}return null;}function _0x2371a6(_0x3a4ee8,_0x4df451){const _0x5cecca=_0x33592d,_0x3b6623={'\x4f\x73\x4e\x64\x63':function(_0x348fa8,_0x4de126){return _0x348fa8(_0x4de126);},'\x68\x6b\x58\x50\x51':function(_0x542f96,_0x22968d){return _0x542f96*_0x22968d;}},_0x36c0ca=_0x3b6623[_0x5cecca(0x195,'\x67\x4c\x69\x65')](Number,_0x3a4ee8)||-0x19e6+0xf87+0xa5f,_0x3dc7b4=_0x4df451===_0x5cecca(0x1ed,'\x68\x53\x74\x21')+'\x65'?_0x3b6623[_0x5cecca(0x1f0,'\x6c\x43\x72\x62')](_0x36c0ca,_0x42a072):_0x36c0ca;return Math[_0x5cecca(0x1dd,'\x25\x28\x57\x6c')](_0x3dc7b4);}function _0x7c2a83(_0x3547f0,_0x84fa46){const _0x2212c3=_0x33592d,_0x4df8e9={'\x69\x69\x73\x78\x62':function(_0x185f24,_0x4436fd){return _0x185f24(_0x4436fd);},'\x4d\x67\x44\x4e\x67':function(_0x5be1c8,_0x12a0a5){return _0x5be1c8!=_0x12a0a5;},'\x63\x54\x76\x76\x6e':_0x2212c3(0x1a0,'\x4d\x49\x6d\x55')+_0x2212c3(0x19b,'\x52\x73\x57\x43')+_0x2212c3(0x1c5,'\x66\x49\x53\x29'),'\x74\x79\x4f\x62\x72':function(_0x33b83b,_0x3169e5){return _0x33b83b+_0x3169e5;},'\x72\x78\x62\x6d\x47':function(_0x32bf98,_0x50b6da){return _0x32bf98*_0x50b6da;},'\x43\x42\x55\x68\x62':function(_0x44f3fa,_0x1bd44d){return _0x44f3fa>_0x1bd44d;},'\x50\x69\x52\x7a\x6b':function(_0x36dead,_0x4400b8,_0x25264c){return _0x36dead(_0x4400b8,_0x25264c);}},_0x4c2f25=_0x4df8e9[_0x2212c3(0x1bf,'\x5e\x5b\x45\x77')](_0x17a6af,_0x3547f0),_0x2d7c3f=_0x4df8e9[_0x2212c3(0x1aa,'\x48\x65\x34\x52')](_0x4c2f25,null)?_0x4df8e9['\x63\x54\x76\x76\x6e']:_0x2212c3(0x1e7,'\x2a\x70\x23\x43')+_0x2212c3(0x1ea,'\x7a\x44\x49\x6a')+'\x74',_0x50d04c=_0x4c2f25!=null?_0x4c2f25:_0x1582b6;let _0x3b80b2=_0x4df8e9[_0x2212c3(0x1c0,'\x54\x4f\x35\x40')](_0x1fe739,_0x4df8e9[_0x2212c3(0x1c6,'\x74\x6d\x67\x47')](_0x50d04c,_0x312391));if(_0x4df8e9[_0x2212c3(0x1b6,'\x54\x4f\x35\x40')](_0x3b80b2,_0x5012b1))_0x3b80b2=_0x5012b1;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x4df8e9[_0x2212c3(0x1be,'\x68\x53\x74\x21')](_0x2371a6,_0x3b80b2,_0x84fa46),'\x62\x61\x73\x69\x73':_0x2d7c3f};}const _0x1352f5={};_0x1352f5[_0x33592d(0x1ad,'\x5e\x5b\x45\x77')+'\x52\x65\x75\x73\x65\x54\x6f\x6b'+_0x33592d(0x1d0,'\x74\x6d\x67\x47')]=_0x7c2a83,_0x1352f5[_0x33592d(0x1f6,'\x48\x65\x34\x52')+_0x33592d(0x1b5,'\x31\x39\x75\x39')]=_0x2371a6,_0x1352f5[_0x33592d(0x1b4,'\x71\x4f\x79\x77')+_0x33592d(0x1ec,'\x68\x53\x74\x21')+'\x4e\x53']=_0x1fe739,_0x1352f5[_0x33592d(0x1ef,'\x71\x4f\x79\x77')+_0x33592d(0x1b8,'\x46\x63\x75\x63')+_0x33592d(0x1c4,'\x42\x43\x59\x35')]=_0x312391,_0x1352f5[_0x33592d(0x1b0,'\x52\x73\x57\x43')+_0x33592d(0x1d1,'\x6f\x79\x65\x5e')+'\x53']=_0x5012b1,_0x1352f5[_0x33592d(0x1e8,'\x56\x79\x39\x32')+'\x43\x48\x41\x4e\x47\x45\x44\x5f'+_0x33592d(0x1c2,'\x71\x4f\x79\x77')]=_0x1582b6,_0x1352f5[_0x33592d(0x1d2,'\x2a\x6c\x7a\x73')+_0x33592d(0x1e3,'\x69\x4c\x4c\x56')+_0x33592d(0x1e5,'\x5e\x5b\x45\x77')+'\x4e']=_0x42a072,module[_0x33592d(0x1cd,'\x7a\x44\x49\x6a')]=_0x1352f5;function _0x4c53(){const _0x3a0b7d=['\x79\x53\x6b\x57\x74\x43\x6b\x6d\x57\x37\x43\x76\x41\x6d\x6f\x5a','\x70\x4d\x48\x78\x57\x4f\x7a\x2f','\x6a\x53\x6f\x47\x57\x51\x52\x64\x56\x4a\x7a\x39\x57\x4f\x43','\x57\x50\x42\x63\x52\x38\x6f\x6b\x57\x50\x75\x6a\x57\x34\x56\x64\x48\x38\x6b\x54\x41\x6d\x6f\x61\x61\x77\x61\x48','\x79\x38\x6b\x34\x57\x37\x2f\x63\x52\x33\x75\x52\x57\x34\x46\x63\x4c\x58\x33\x63\x51\x72\x76\x36\x67\x61','\x76\x53\x6b\x41\x57\x36\x71\x51\x57\x51\x68\x63\x4d\x49\x58\x62','\x6a\x53\x6f\x4d\x57\x52\x75','\x57\x34\x47\x2f\x6f\x49\x33\x64\x4c\x65\x5a\x64\x51\x47\x57','\x72\x38\x6b\x41\x7a\x38\x6b\x6e\x57\x37\x57','\x72\x33\x78\x64\x54\x47\x4b\x52','\x79\x64\x43\x2f\x57\x36\x79\x42\x57\x37\x64\x64\x50\x38\x6f\x43\x57\x4f\x4f\x33\x74\x43\x6f\x36\x68\x71','\x77\x6d\x6f\x38\x7a\x59\x61','\x57\x50\x52\x64\x4b\x6d\x6f\x35\x57\x50\x4a\x63\x52\x38\x6f\x53\x57\x35\x6a\x37','\x57\x34\x6d\x61\x57\x35\x4c\x69\x57\x51\x6c\x64\x47\x62\x44\x2f\x64\x63\x43\x68\x72\x53\x6b\x41','\x6c\x38\x6b\x5a\x6c\x38\x6f\x59\x78\x47','\x74\x38\x6f\x4d\x73\x53\x6f\x2f\x68\x53\x6f\x43\x71\x57','\x78\x53\x6f\x35\x43\x59\x61\x6e\x62\x65\x6d\x46','\x57\x51\x30\x37\x75\x73\x6c\x64\x54\x6d\x6f\x68','\x65\x38\x6f\x74\x57\x36\x57\x70\x57\x50\x68\x63\x49\x47\x7a\x2f','\x57\x51\x65\x55\x57\x35\x78\x64\x50\x73\x69\x79\x57\x52\x7a\x4e','\x57\x52\x35\x34\x67\x67\x33\x63\x47\x38\x6b\x52\x57\x35\x6c\x64\x50\x61','\x75\x6d\x6f\x38\x46\x64\x79\x6b','\x78\x53\x6b\x78\x6a\x43\x6b\x62\x41\x6d\x6f\x53\x6b\x6d\x6b\x38','\x57\x34\x65\x41\x57\x36\x62\x61\x57\x4f\x61','\x57\x50\x6e\x72\x57\x50\x30\x75\x57\x36\x5a\x63\x4b\x4e\x50\x54','\x57\x50\x6c\x64\x52\x43\x6b\x4e\x77\x6d\x6b\x55\x57\x50\x6a\x67\x43\x57','\x61\x38\x6f\x69\x6e\x6d\x6f\x57\x57\x4f\x66\x59\x75\x38\x6f\x36\x77\x47\x70\x63\x49\x38\x6b\x33','\x45\x73\x5a\x64\x4b\x6d\x6b\x36\x65\x57','\x57\x4f\x46\x63\x4d\x72\x56\x63\x49\x4c\x6d\x4e\x57\x37\x69','\x73\x53\x6b\x61\x67\x38\x6b\x4d\x72\x71','\x57\x52\x64\x63\x4b\x72\x46\x63\x48\x33\x43','\x63\x43\x6b\x49\x69\x67\x50\x62\x42\x31\x75\x4e\x77\x62\x6c\x64\x55\x63\x53','\x75\x5a\x5a\x64\x52\x53\x6f\x34\x73\x53\x6b\x63\x6d\x38\x6b\x61','\x6a\x47\x37\x64\x56\x6d\x6f\x39\x73\x61','\x57\x34\x43\x72\x57\x34\x43\x4c\x57\x52\x6a\x71\x69\x61\x43','\x57\x36\x71\x4f\x64\x47\x2f\x64\x49\x47','\x76\x38\x6b\x6d\x79\x38\x6b\x77\x57\x34\x30\x50\x78\x6d\x6f\x67','\x57\x34\x53\x68\x66\x47\x2f\x63\x56\x47\x4a\x63\x4e\x61\x43','\x57\x4f\x37\x64\x4d\x76\x64\x63\x53\x78\x44\x66\x57\x50\x56\x63\x4c\x71','\x66\x43\x6f\x30\x57\x52\x2f\x64\x50\x38\x6b\x68\x68\x74\x76\x74','\x71\x5a\x57\x6e\x72\x77\x62\x64\x76\x77\x65','\x57\x50\x35\x49\x6b\x65\x4a\x63\x54\x6d\x6b\x44\x57\x37\x4e\x64\x55\x61','\x72\x38\x6b\x74\x57\x52\x5a\x63\x56\x6d\x6b\x2f\x43\x43\x6b\x69\x77\x6d\x6b\x61\x57\x4f\x47\x73\x57\x52\x69','\x57\x34\x5a\x63\x48\x61\x62\x2f\x57\x4f\x70\x63\x56\x6d\x6b\x38\x6e\x47','\x6c\x38\x6b\x41\x57\x37\x78\x64\x54\x61','\x43\x53\x6b\x36\x76\x6d\x6b\x61\x57\x36\x38\x64\x41\x6d\x6f\x48','\x57\x35\x75\x37\x67\x4d\x6c\x64\x54\x76\x69\x35','\x57\x37\x2f\x64\x55\x75\x5a\x64\x50\x68\x75','\x57\x34\x7a\x6c\x76\x53\x6f\x77\x57\x37\x43','\x57\x4f\x43\x6c\x7a\x61\x74\x64\x4e\x38\x6f\x59\x66\x68\x57','\x57\x37\x38\x5a\x57\x36\x35\x46\x57\x52\x71','\x70\x43\x6b\x45\x78\x61\x68\x63\x53\x57','\x57\x34\x56\x64\x53\x43\x6f\x2f\x6f\x61\x57','\x61\x53\x6f\x6f\x57\x34\x6d\x6b\x57\x50\x56\x63\x48\x71\x38','\x57\x37\x6e\x52\x45\x73\x74\x64\x56\x53\x6f\x6a\x67\x75\x4b','\x57\x37\x74\x63\x4a\x33\x75\x45\x62\x47','\x57\x4f\x6c\x64\x47\x31\x46\x63\x4f\x68\x47','\x57\x34\x4a\x64\x47\x4c\x42\x64\x52\x4d\x75','\x57\x4f\x44\x76\x57\x50\x79\x72\x57\x37\x78\x63\x4c\x4b\x65','\x45\x53\x6b\x32\x73\x6d\x6b\x6d\x57\x36\x4f','\x71\x6d\x6b\x76\x57\x37\x5a\x64\x4f\x6d\x6f\x63\x6d\x43\x6b\x68\x43\x71','\x64\x53\x6f\x56\x57\x52\x33\x63\x47\x68\x6a\x4b\x57\x35\x53','\x57\x34\x53\x64\x62\x58\x78\x63\x52\x49\x71','\x74\x53\x6f\x54\x43\x64\x34\x2b','\x57\x4f\x4e\x63\x47\x6d\x6f\x73\x6b\x71\x64\x63\x4f\x43\x6f\x62\x57\x52\x65','\x57\x35\x61\x77\x57\x37\x75\x2f\x57\x51\x44\x43\x6b\x4a\x38','\x79\x38\x6b\x44\x6c\x6d\x6b\x6c\x7a\x71','\x70\x43\x6f\x52\x57\x51\x33\x64\x55\x49\x66\x4d','\x57\x34\x58\x47\x77\x38\x6f\x64\x57\x34\x6a\x72\x7a\x58\x4a\x63\x4d\x43\x6b\x69\x76\x6d\x6f\x76','\x57\x50\x39\x37\x45\x4e\x68\x63\x4d\x64\x78\x63\x53\x71\x5a\x63\x52\x43\x6f\x45\x57\x36\x64\x64\x47\x38\x6b\x4b','\x76\x63\x4a\x64\x56\x38\x6f\x4b\x74\x6d\x6b\x50\x6d\x47','\x73\x43\x6f\x51\x75\x53\x6f\x54\x64\x38\x6f\x53\x76\x68\x61','\x57\x52\x79\x32\x75\x63\x6c\x64\x55\x43\x6f\x61\x62\x75\x53','\x77\x43\x6f\x37\x79\x71\x61\x79\x6c\x76\x71\x41','\x57\x52\x4e\x64\x52\x6d\x6f\x68\x57\x52\x2f\x63\x4c\x6d\x6f\x34\x57\x36\x76\x75','\x41\x43\x6b\x47\x70\x6d\x6b\x4e\x75\x53\x6f\x69\x63\x6d\x6b\x79','\x57\x37\x69\x32\x69\x66\x4c\x55\x57\x4f\x47','\x57\x37\x42\x63\x56\x71\x66\x2f\x57\x50\x42\x63\x4f\x43\x6b\x37\x70\x47','\x57\x50\x6c\x64\x4b\x48\x39\x73\x76\x6d\x6b\x6c\x57\x34\x6c\x64\x47\x5a\x70\x63\x54\x5a\x4b\x55','\x57\x51\x44\x77\x42\x62\x34\x65','\x57\x52\x65\x38\x77\x4a\x78\x64\x54\x6d\x6f\x42','\x57\x35\x30\x6c\x66\x47\x38','\x62\x77\x74\x63\x55\x43\x6b\x2b\x62\x53\x6f\x51\x43\x38\x6b\x72\x77\x38\x6f\x53\x67\x38\x6b\x79\x57\x37\x65','\x6d\x66\x50\x33\x65\x5a\x42\x63\x55\x4b\x6e\x53','\x62\x6d\x6f\x66\x57\x37\x69\x76\x57\x4f\x42\x63\x4d\x72\x39\x64','\x79\x72\x70\x64\x51\x6d\x6b\x64\x6e\x47','\x43\x71\x62\x30\x67\x62\x4b','\x6c\x68\x71\x49\x75\x62\x78\x63\x47\x43\x6b\x78','\x57\x50\x38\x2b\x67\x38\x6b\x44\x57\x51\x6d','\x57\x35\x33\x64\x4e\x57\x78\x63\x49\x4c\x65\x48\x57\x36\x35\x71','\x61\x5a\x74\x63\x53\x65\x6a\x5a\x6c\x6d\x6f\x4e\x63\x47','\x6f\x6d\x6b\x65\x44\x61\x33\x63\x52\x49\x5a\x64\x4c\x4d\x6d','\x57\x50\x69\x66\x41\x53\x6b\x61\x61\x4d\x65\x6c\x57\x34\x38','\x6a\x67\x7a\x50\x57\x52\x6e\x43\x57\x51\x68\x63\x56\x43\x6f\x42','\x57\x52\x74\x64\x52\x68\x42\x63\x4d\x76\x4c\x57\x57\x51\x42\x63\x56\x57','\x57\x51\x53\x51\x46\x73\x37\x64\x55\x43\x6f\x41\x6c\x4c\x34','\x6f\x67\x50\x38\x57\x34\x30\x73\x6c\x38\x6f\x74\x57\x35\x71','\x57\x50\x71\x68\x57\x35\x52\x64\x4d\x61\x34\x59\x57\x50\x39\x77','\x66\x38\x6f\x6c\x57\x36\x75\x6b\x57\x50\x33\x63\x49\x47\x34','\x76\x71\x2f\x64\x51\x38\x6f\x55\x77\x6d\x6b\x38\x6e\x6d\x6b\x6e','\x57\x34\x61\x6a\x61\x4e\x4a\x64\x53\x31\x30\x36','\x57\x36\x78\x63\x54\x77\x69\x37\x6f\x43\x6f\x30\x57\x36\x2f\x64\x49\x47','\x57\x35\x42\x63\x47\x30\x65\x62\x68\x38\x6f\x45\x57\x34\x52\x64\x52\x61','\x57\x36\x61\x52\x64\x78\x6a\x42\x78\x38\x6f\x6f\x6e\x66\x35\x2b\x46\x4d\x79\x53\x6e\x61'];_0x4c53=function(){return _0x3a0b7d;};return _0x4c53();}
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Grounded FALLBACK estimate for "tokens saved by reusing an asset".
|
|
4
|
+
//
|
|
5
|
+
// The real number is the measured cost of the avoided derive loop, captured
|
|
6
|
+
// from the proxy trace meter (see src/proxy/trace/usage.js) and carried on the
|
|
7
|
+
// reused asset as `derivation_tokens`. This estimator is only used when that
|
|
8
|
+
// measured cost is unavailable -- the asset was derived with the proxy off, or
|
|
9
|
+
// predates token telemetry. Reusing a verified capsule avoids re-running a
|
|
10
|
+
// derive loop; we approximate that loop's size from the asset's own
|
|
11
|
+
// blast_radius (a real, per-asset signal), so the estimate scales with how big
|
|
12
|
+
// the change actually was instead of being a flat constant.
|
|
13
|
+
//
|
|
14
|
+
// Calibration: a median patch (~75 changed lines) reproduces the ~180k tokens
|
|
15
|
+
// the desktop savings model historically assumed:
|
|
16
|
+
// DERIVE_BASE_TOKENS + TYPICAL_CHANGED_LINES * TOKENS_PER_CHANGED_LINE
|
|
17
|
+
// = 120_000 + 75 * 800 = 180_000.
|
|
18
|
+
//
|
|
19
|
+
// These constants are the E3 formula of the savings-core spec (single source
|
|
20
|
+
// of truth: EvoMap/savings-core, vendored at conformance/savings-core/). To
|
|
21
|
+
// change one, change savings-core first and re-vendor ALL consumers -- see
|
|
22
|
+
// src/gep/savingsCore.js.
|
|
23
|
+
|
|
24
|
+
const { CONSTANTS } = require('./savingsCore');
|
|
25
|
+
|
|
26
|
+
// Fixed overhead of any derive loop (reading context, reasoning, validation),
|
|
27
|
+
// independent of patch size.
|
|
28
|
+
const DERIVE_BASE_TOKENS = CONSTANTS.reuse_estimator.derive_base_tokens;
|
|
29
|
+
// Marginal derivation cost per resulting changed line (reasoning + tool
|
|
30
|
+
// round-trips + output to produce and verify each line).
|
|
31
|
+
const TOKENS_PER_CHANGED_LINE = CONSTANTS.reuse_estimator.tokens_per_changed_line;
|
|
32
|
+
// Guardrail against pathological blast_radius values.
|
|
33
|
+
const DERIVE_CAP_TOKENS = CONSTANTS.reuse_estimator.derive_cap_tokens;
|
|
34
|
+
// Patch size assumed when an asset carries no blast_radius to scale from.
|
|
35
|
+
const TYPICAL_CHANGED_LINES = CONSTANTS.reuse_estimator.typical_changed_lines;
|
|
36
|
+
// A 'reference' reuse still re-derives (the asset is injected only as a strong
|
|
37
|
+
// hint), so it saves a fraction of a full re-derivation, not the whole loop.
|
|
38
|
+
const REFERENCE_SAVING_FRACTION = CONSTANTS.reuse_estimator.reference_saving_fraction;
|
|
39
|
+
|
|
40
|
+
function _blastLines(asset) {
|
|
41
|
+
const br = asset && (asset.blast_radius || (asset.payload && asset.payload.blast_radius));
|
|
42
|
+
if (br && typeof br === 'object') {
|
|
43
|
+
const lines = Number(br.lines);
|
|
44
|
+
if (Number.isFinite(lines) && lines > 0) return lines;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Apply the reuse-mode saving fraction to a token count and round.
|
|
51
|
+
*
|
|
52
|
+
* A 'direct' reuse avoids the whole derive loop (full save); a 'reference'
|
|
53
|
+
* reuse still re-derives with the asset as a hint, so it saves only
|
|
54
|
+
* REFERENCE_SAVING_FRACTION of the loop. This is shared by BOTH the estimated
|
|
55
|
+
* path (here) and the measured path (dispatch.js) so the two can never diverge
|
|
56
|
+
* on how a reference reuse is discounted -- a measured derivation cost must be
|
|
57
|
+
* scaled the same way an estimated one is. (Bugbot: measured reference reuse
|
|
58
|
+
* was crediting the full cost while the estimate applied the fraction.)
|
|
59
|
+
*
|
|
60
|
+
* @param {number} tokens - full-derivation token count (measured or estimated).
|
|
61
|
+
* @param {string} [mode] - 'direct' (full) | 'reference' (fractional).
|
|
62
|
+
* @returns {number} rounded tokens saved for the given mode.
|
|
63
|
+
*/
|
|
64
|
+
function applyModeSaving(tokens, mode) {
|
|
65
|
+
const t = Number(tokens) || 0;
|
|
66
|
+
const adjusted = mode === 'reference' ? t * REFERENCE_SAVING_FRACTION : t;
|
|
67
|
+
return Math.round(adjusted);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Estimate the tokens a reuse saved, from the asset's blast_radius.
|
|
72
|
+
*
|
|
73
|
+
* @param {object} asset - the reused asset (capsule); may be a bare stub.
|
|
74
|
+
* @param {string} [mode] - 'direct' (full save) | 'reference' (fractional).
|
|
75
|
+
* @returns {{tokens_saved:number, basis:string}} basis is
|
|
76
|
+
* 'estimated_blast_radius' when scaled from the asset, else 'estimated_default'.
|
|
77
|
+
*/
|
|
78
|
+
function estimateReuseTokensSaved(asset, mode) {
|
|
79
|
+
const lines = _blastLines(asset);
|
|
80
|
+
const basis = lines != null ? 'estimated_blast_radius' : 'estimated_default';
|
|
81
|
+
const effLines = lines != null ? lines : TYPICAL_CHANGED_LINES;
|
|
82
|
+
let tokens = DERIVE_BASE_TOKENS + effLines * TOKENS_PER_CHANGED_LINE;
|
|
83
|
+
if (tokens > DERIVE_CAP_TOKENS) tokens = DERIVE_CAP_TOKENS;
|
|
84
|
+
return { tokens_saved: applyModeSaving(tokens, mode), basis };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
module.exports = {
|
|
88
|
+
estimateReuseTokensSaved,
|
|
89
|
+
applyModeSaving,
|
|
90
|
+
DERIVE_BASE_TOKENS,
|
|
91
|
+
TOKENS_PER_CHANGED_LINE,
|
|
92
|
+
DERIVE_CAP_TOKENS,
|
|
93
|
+
TYPICAL_CHANGED_LINES,
|
|
94
|
+
REFERENCE_SAVING_FRACTION,
|
|
95
|
+
};
|
|
@@ -1 +1,174 @@
|
|
|
1
|
-
function _0x2052(_0x23153c,_0x1f7285){_0x23153c=_0x23153c-(0x26d1+-0x442*0x7+-0x7bc);const _0x6b4372=_0x8bb2();let _0x158543=_0x6b4372[_0x23153c];if(_0x2052['\x79\x71\x6c\x76\x69\x47']===undefined){var _0x2862f1=function(_0x31620b){const _0x8a798c='\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 _0x2666bf='',_0x5334b1='',_0x4e122c=_0x2666bf+_0x2862f1,_0x13ba98=(''+function(){return 0xb*-0x125+0x1107+-0x470;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x5b0+-0x1*-0x106d+-0xabc);for(let _0x4319d1=0x7*-0x525+0x18a5*-0x1+0x3ca8,_0xe3a06c,_0x101c36,_0x3db131=0x1*-0x2353+0x1*0x10b4+0x2a9*0x7;_0x101c36=_0x31620b['\x63\x68\x61\x72\x41\x74'](_0x3db131++);~_0x101c36&&(_0xe3a06c=_0x4319d1%(-0x1*0x2144+-0x14db+0x3623)?_0xe3a06c*(0x11b4+0x41d+-0x1591)+_0x101c36:_0x101c36,_0x4319d1++%(-0x1666+0x3*-0x8b+0x180b))?_0x2666bf+=_0x13ba98||_0x4e122c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3db131+(0x1*-0x6f8+0x3*-0x474+0x145e))-(-0x18b9+0x2fc+0x45b*0x5)!==0x1*0x1417+-0x4b7*-0x8+-0x39cf?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*0x24b5+-0x1315+-0x9*0x1d9&_0xe3a06c>>(-(0xa7*-0x15+-0xa8+-0xe5d*-0x1)*_0x4319d1&0x74a+-0x1d8b+-0x1647*-0x1)):_0x4319d1:0x1*-0x9c7+-0x26*0x7d+0x1c55){_0x101c36=_0x8a798c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x101c36);}for(let _0x1bd8cf=-0x1984+0x13f1*0x1+0x593*0x1,_0x7b286=_0x2666bf['\x6c\x65\x6e\x67\x74\x68'];_0x1bd8cf<_0x7b286;_0x1bd8cf++){_0x5334b1+='\x25'+('\x30\x30'+_0x2666bf['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1bd8cf)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xc2*-0xd+0xe75*-0x2+0x26d4))['\x73\x6c\x69\x63\x65'](-(0x1306+-0x6ef+-0xc15*0x1));}return decodeURIComponent(_0x5334b1);};const _0x408b57=function(_0x16d369,_0x19aec9){let _0x2de985=[],_0x4999a4=0x33*0x62+0x14c3+-0x2849,_0x1dc600,_0x1430e0='';_0x16d369=_0x2862f1(_0x16d369);let _0x351fcf;for(_0x351fcf=0x2571+-0x2*-0xbe2+0x3d35*-0x1;_0x351fcf<0x2510+-0x11*-0xd9+-0xb1*0x49;_0x351fcf++){_0x2de985[_0x351fcf]=_0x351fcf;}for(_0x351fcf=-0xf0b+-0x1*0x1d7d+0x591*0x8;_0x351fcf<0x2077+0x12bd+-0x77*0x6c;_0x351fcf++){_0x4999a4=(_0x4999a4+_0x2de985[_0x351fcf]+_0x19aec9['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x351fcf%_0x19aec9['\x6c\x65\x6e\x67\x74\x68']))%(-0x1*0xc10+-0x1*0x20ee+0x2dfe),_0x1dc600=_0x2de985[_0x351fcf],_0x2de985[_0x351fcf]=_0x2de985[_0x4999a4],_0x2de985[_0x4999a4]=_0x1dc600;}_0x351fcf=-0x8*0x95+-0x261b+-0x1*-0x2ac3,_0x4999a4=-0x55f*-0x5+-0x669*-0x6+0x4151*-0x1;for(let _0x557986=-0x9*-0x23+-0xcae+0xb73;_0x557986<_0x16d369['\x6c\x65\x6e\x67\x74\x68'];_0x557986++){_0x351fcf=(_0x351fcf+(-0x34a*0x9+0x7d*-0x2f+-0x2*-0x1a47))%(-0x1*-0x1996+0x738+0x2*-0xfe7),_0x4999a4=(_0x4999a4+_0x2de985[_0x351fcf])%(0x1654+0x1635+-0x2e7*0xf),_0x1dc600=_0x2de985[_0x351fcf],_0x2de985[_0x351fcf]=_0x2de985[_0x4999a4],_0x2de985[_0x4999a4]=_0x1dc600,_0x1430e0+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x16d369['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x557986)^_0x2de985[(_0x2de985[_0x351fcf]+_0x2de985[_0x4999a4])%(-0x1*0x1785+-0xf7c+0x2801)]);}return _0x1430e0;};_0x2052['\x6c\x78\x7a\x66\x53\x52']=_0x408b57,_0x2052['\x43\x42\x58\x7a\x52\x52']={},_0x2052['\x79\x71\x6c\x76\x69\x47']=!![];}const _0x240c43=_0x6b4372[0x1fcc+0x136c+-0x3338],_0x3e7600=_0x23153c+_0x240c43,_0x540856=_0x2052['\x43\x42\x58\x7a\x52\x52'][_0x3e7600];if(!_0x540856){if(_0x2052['\x64\x43\x5a\x4d\x71\x47']===undefined){const _0x201f1a=function(_0x47a2f6){this['\x55\x55\x55\x4b\x57\x64']=_0x47a2f6,this['\x4a\x43\x66\x55\x45\x61']=[0x41*-0x49+-0x24ae+-0x4c*-0xba,-0x26eb+0x1*0xc37+0x1ab4,-0x16a9*-0x1+-0x2681+-0x1a*-0x9c],this['\x65\x79\x70\x53\x63\x55']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x54\x49\x4e\x73\x6b\x63']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x54\x65\x53\x52\x45\x73']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x201f1a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x42\x45\x54\x71\x6e\x6d']=function(){const _0x175e8b=new RegExp(this['\x54\x49\x4e\x73\x6b\x63']+this['\x54\x65\x53\x52\x45\x73']),_0x4b7d65=_0x175e8b['\x74\x65\x73\x74'](this['\x65\x79\x70\x53\x63\x55']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4a\x43\x66\x55\x45\x61'][-0x1*-0x67d+0x338+-0x17*0x6c]:--this['\x4a\x43\x66\x55\x45\x61'][0xec+-0x110d+0x1021];return this['\x42\x5a\x68\x58\x76\x53'](_0x4b7d65);},_0x201f1a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x42\x5a\x68\x58\x76\x53']=function(_0x314c17){if(!Boolean(~_0x314c17))return _0x314c17;return this['\x61\x46\x54\x64\x6f\x54'](this['\x55\x55\x55\x4b\x57\x64']);},_0x201f1a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x61\x46\x54\x64\x6f\x54']=function(_0x2bec70){for(let _0x144b6b=-0x3be*0xa+0x15*-0x5d+0x2d0d,_0x3fb8ba=this['\x4a\x43\x66\x55\x45\x61']['\x6c\x65\x6e\x67\x74\x68'];_0x144b6b<_0x3fb8ba;_0x144b6b++){this['\x4a\x43\x66\x55\x45\x61']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x3fb8ba=this['\x4a\x43\x66\x55\x45\x61']['\x6c\x65\x6e\x67\x74\x68'];}return _0x2bec70(this['\x4a\x43\x66\x55\x45\x61'][-0x2021+0x1*0x17c2+0x85f]);},(''+function(){return-0x12*0x1e9+0x2294+-0x32;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1d*0x4+-0x7*0x212+0xef3)&&new _0x201f1a(_0x2052)['\x42\x45\x54\x71\x6e\x6d'](),_0x2052['\x64\x43\x5a\x4d\x71\x47']=!![];}_0x158543=_0x2052['\x6c\x78\x7a\x66\x53\x52'](_0x158543,_0x1f7285),_0x2052['\x43\x42\x58\x7a\x52\x52'][_0x3e7600]=_0x158543;}else _0x158543=_0x540856;return _0x158543;}const _0xb9c60c=_0x2052;function _0x8bb2(){const _0x1c1430=['\x57\x4f\x4a\x64\x55\x30\x30\x68\x57\x50\x78\x63\x53\x6d\x6f\x63\x57\x4f\x61\x6a\x57\x35\x64\x64\x56\x73\x42\x64\x47\x61','\x66\x4c\x61\x4b\x57\x51\x4e\x64\x4e\x5a\x2f\x64\x54\x53\x6f\x58','\x74\x53\x6b\x44\x42\x53\x6f\x51\x76\x6d\x6f\x33\x72\x73\x48\x6e\x6c\x77\x78\x64\x49\x38\x6f\x6c','\x57\x35\x7a\x76\x70\x74\x64\x64\x48\x71','\x77\x4a\x6d\x57\x57\x34\x2f\x64\x51\x61','\x57\x52\x70\x63\x4a\x38\x6b\x74\x57\x35\x39\x5a','\x57\x50\x71\x6a\x6b\x72\x57\x50','\x66\x38\x6b\x66\x45\x53\x6b\x30\x57\x37\x78\x63\x54\x38\x6b\x71\x72\x57','\x57\x51\x47\x48\x57\x37\x74\x63\x4a\x53\x6f\x31','\x44\x53\x6f\x49\x57\x4f\x4f','\x57\x51\x61\x34\x6b\x6d\x6f\x45\x6b\x6d\x6b\x32\x66\x67\x64\x64\x49\x53\x6b\x50\x6a\x72\x66\x64','\x57\x37\x56\x64\x4e\x6d\x6f\x31\x6a\x38\x6f\x6d\x57\x50\x4e\x63\x47\x63\x5a\x63\x55\x30\x30\x74\x46\x6d\x6f\x44','\x57\x37\x43\x35\x57\x34\x42\x63\x50\x53\x6f\x44\x67\x53\x6b\x56','\x57\x37\x70\x64\x4b\x53\x6b\x34\x57\x51\x33\x64\x48\x71','\x64\x78\x2f\x64\x4f\x6d\x6f\x6b\x57\x36\x6d','\x44\x31\x68\x64\x48\x58\x4e\x64\x48\x78\x6c\x64\x4e\x43\x6f\x4f','\x57\x4f\x78\x64\x51\x65\x52\x64\x4e\x38\x6b\x31','\x77\x58\x74\x64\x49\x73\x53\x41','\x68\x53\x6f\x74\x6c\x38\x6b\x57\x66\x38\x6b\x33\x62\x57','\x57\x35\x33\x64\x47\x6d\x6b\x45\x6f\x43\x6b\x72','\x57\x34\x33\x64\x49\x6d\x6f\x6f\x57\x50\x4b\x35\x6e\x38\x6b\x75\x57\x52\x53\x64\x6b\x65\x79','\x57\x50\x56\x63\x4e\x59\x43','\x57\x36\x38\x55\x44\x43\x6b\x4e\x57\x35\x78\x63\x56\x38\x6b\x68\x57\x4f\x75','\x57\x37\x76\x53\x75\x4b\x34','\x46\x43\x6b\x77\x57\x52\x56\x63\x52\x68\x71\x7a\x6b\x71','\x57\x52\x4f\x38\x46\x58\x78\x64\x52\x61','\x57\x52\x71\x4c\x57\x37\x33\x63\x55\x53\x6b\x49','\x44\x4b\x74\x63\x53\x38\x6b\x72\x42\x73\x61','\x66\x62\x52\x64\x56\x71\x4f\x41','\x71\x67\x6c\x64\x4e\x58\x6c\x64\x50\x47','\x45\x43\x6b\x43\x57\x52\x30','\x57\x35\x42\x64\x54\x47\x47\x44\x68\x6d\x6f\x45\x61\x38\x6f\x77','\x69\x76\x50\x53\x57\x4f\x68\x64\x4a\x33\x6c\x64\x4d\x33\x53','\x57\x50\x42\x63\x4b\x6d\x6f\x65\x57\x35\x33\x63\x4b\x38\x6b\x59\x57\x36\x4a\x64\x55\x53\x6f\x58\x57\x35\x6c\x64\x48\x6d\x6f\x50\x57\x35\x47','\x57\x50\x33\x63\x4b\x43\x6b\x71\x57\x35\x58\x39\x6d\x6d\x6b\x75\x57\x4f\x57','\x57\x50\x6d\x56\x57\x36\x37\x63\x4b\x53\x6b\x31','\x57\x51\x71\x59\x79\x38\x6b\x56\x44\x43\x6f\x2b\x45\x4e\x6d','\x6f\x47\x74\x64\x4a\x47\x65\x77','\x65\x62\x4a\x64\x4e\x47','\x6e\x6d\x6b\x64\x64\x6d\x6f\x49\x6d\x5a\x46\x64\x4d\x61\x38','\x6b\x43\x6b\x50\x57\x37\x68\x64\x51\x43\x6b\x56','\x57\x51\x4a\x63\x48\x6d\x6f\x73','\x77\x72\x31\x34\x57\x34\x52\x63\x4d\x33\x6c\x63\x55\x61','\x57\x50\x53\x6f\x61\x57\x69\x52','\x57\x37\x76\x78\x57\x50\x46\x64\x48\x6d\x6f\x6d\x57\x36\x71\x2b\x57\x35\x30','\x57\x37\x4b\x51\x46\x43\x6b\x36\x57\x35\x5a\x63\x49\x53\x6b\x6b\x57\x51\x69','\x57\x35\x2f\x63\x56\x58\x72\x74\x57\x35\x64\x64\x51\x38\x6b\x44\x57\x51\x57','\x57\x52\x56\x63\x47\x43\x6b\x48\x7a\x53\x6b\x46\x57\x35\x6c\x63\x4d\x72\x57','\x57\x51\x37\x64\x4b\x65\x50\x51\x57\x52\x43','\x57\x36\x35\x6a\x57\x4f\x2f\x64\x4e\x6d\x6f\x78\x57\x52\x48\x47\x57\x51\x62\x48\x57\x36\x72\x46','\x57\x37\x4e\x63\x50\x62\x54\x61\x57\x34\x33\x63\x52\x38\x6b\x61\x57\x52\x65','\x6b\x64\x47\x44\x57\x37\x66\x68','\x6e\x43\x6b\x6f\x45\x53\x6b\x77\x57\x36\x30','\x67\x6d\x6b\x66\x65\x53\x6f\x6a','\x57\x37\x78\x64\x4f\x38\x6b\x6d\x57\x4f\x52\x64\x52\x71','\x6e\x38\x6f\x62\x57\x37\x48\x43\x57\x4f\x35\x75\x75\x38\x6b\x66','\x6e\x57\x64\x64\x54\x6d\x6f\x70\x75\x4a\x46\x63\x48\x43\x6f\x6b\x57\x52\x68\x64\x55\x47','\x57\x52\x75\x6a\x57\x35\x2f\x63\x53\x57','\x74\x43\x6b\x49\x57\x50\x78\x63\x4a\x31\x69','\x57\x51\x4b\x71\x57\x36\x5a\x63\x4e\x53\x6b\x76\x57\x51\x72\x37\x57\x50\x6d','\x57\x37\x56\x63\x54\x67\x4f\x67\x57\x4f\x34','\x57\x52\x74\x63\x52\x43\x6b\x38\x73\x6d\x6b\x49','\x71\x53\x6f\x79\x46\x43\x6b\x49\x57\x37\x2f\x63\x54\x43\x6b\x36\x7a\x61','\x57\x52\x70\x64\x4b\x77\x56\x64\x4a\x6d\x6b\x64','\x66\x4b\x30\x57\x57\x4f\x62\x49','\x57\x35\x64\x64\x47\x38\x6b\x62\x57\x52\x4a\x64\x47\x38\x6f\x31\x57\x51\x52\x64\x48\x57','\x57\x35\x68\x64\x54\x71\x43\x78\x62\x6d\x6f\x77\x64\x53\x6f\x75','\x57\x4f\x52\x63\x4b\x43\x6b\x6d','\x57\x35\x52\x64\x50\x72\x4f\x68\x65\x43\x6f\x79\x62\x61','\x78\x38\x6b\x6f\x67\x6d\x6f\x74\x76\x61','\x43\x6d\x6b\x39\x57\x36\x71\x39\x77\x61','\x6b\x43\x6f\x73\x57\x50\x2f\x64\x52\x53\x6b\x48','\x70\x73\x65\x37\x57\x36\x58\x6e','\x6b\x72\x61\x31\x57\x35\x72\x4c\x57\x50\x56\x63\x4a\x71','\x71\x68\x6c\x63\x4b\x53\x6b\x33\x73\x61','\x70\x43\x6b\x76\x77\x53\x6b\x2b\x57\x37\x4b','\x57\x4f\x64\x63\x4c\x47\x31\x4b\x57\x4f\x4c\x49\x6c\x66\x79','\x62\x6d\x6b\x73\x7a\x38\x6b\x6a','\x6f\x75\x44\x4b\x57\x4f\x47','\x45\x73\x66\x59\x64\x61','\x57\x37\x42\x64\x47\x38\x6b\x30\x57\x4f\x70\x64\x48\x71','\x63\x6d\x6b\x76\x57\x34\x5a\x64\x55\x53\x6b\x6b','\x57\x4f\x4a\x63\x4a\x38\x6f\x45\x57\x34\x57','\x57\x51\x5a\x64\x54\x67\x35\x50','\x6e\x53\x6f\x6f\x57\x50\x52\x64\x54\x43\x6b\x4e','\x57\x37\x33\x64\x48\x72\x47\x71\x67\x61','\x73\x43\x6b\x42\x41\x53\x6f\x4f\x6e\x6d\x6b\x5a\x67\x74\x44\x78\x68\x61','\x79\x4e\x58\x50\x57\x52\x4e\x64\x48\x6d\x6f\x55','\x57\x35\x48\x69\x67\x62\x33\x64\x54\x61','\x43\x71\x56\x64\x4d\x57','\x57\x50\x34\x49\x45\x57\x56\x64\x52\x61','\x57\x35\x53\x42\x57\x50\x39\x75\x57\x4f\x53','\x63\x6d\x6f\x37\x6c\x43\x6b\x6f\x66\x61','\x57\x50\x75\x47\x61\x61\x4b\x6e\x61\x6d\x6f\x62\x73\x47','\x57\x51\x64\x64\x52\x58\x7a\x6e\x57\x35\x4e\x63\x4e\x30\x6e\x72\x76\x6d\x6b\x4c\x57\x37\x4a\x63\x4e\x57','\x78\x4b\x38\x79\x57\x4f\x4c\x41\x74\x43\x6f\x39\x57\x51\x4b','\x79\x67\x6c\x64\x54\x33\x47','\x69\x6d\x6b\x56\x6a\x53\x6f\x56\x66\x64\x70\x64\x56\x5a\x75','\x57\x4f\x53\x78\x75\x48\x33\x64\x49\x43\x6b\x32\x57\x34\x37\x64\x4b\x43\x6b\x77','\x57\x36\x33\x63\x54\x4a\x39\x4e\x57\x50\x31\x67\x57\x34\x6c\x63\x53\x4e\x75','\x57\x36\x56\x63\x54\x74\x75\x39\x57\x37\x75\x39\x57\x52\x2f\x63\x51\x65\x61\x4f\x42\x38\x6f\x39\x57\x36\x57','\x42\x71\x4a\x64\x49\x71\x57\x41\x57\x51\x37\x64\x4a\x75\x75','\x57\x36\x31\x32\x73\x31\x6e\x76\x76\x43\x6b\x79\x44\x77\x6e\x4a\x57\x50\x68\x63\x4a\x53\x6f\x75','\x57\x36\x64\x64\x4e\x38\x6b\x6b\x63\x43\x6b\x6d','\x64\x43\x6b\x49\x6e\x6d\x6f\x4d\x62\x47','\x57\x36\x4a\x64\x4b\x59\x57\x4d\x6a\x53\x6f\x32\x69\x53\x6f\x2f','\x57\x36\x76\x56\x43\x43\x6b\x42\x46\x43\x6f\x4e','\x45\x43\x6b\x7a\x57\x52\x4e\x63\x52\x78\x4b\x72\x6a\x43\x6b\x49','\x44\x63\x4f\x50\x57\x37\x64\x64\x51\x71','\x75\x4d\x42\x63\x4a\x6d\x6b\x61\x7a\x71','\x57\x35\x58\x45\x57\x34\x56\x64\x49\x6d\x6f\x30','\x57\x34\x57\x79\x57\x51\x35\x49\x57\x50\x57','\x57\x50\x70\x63\x4c\x6d\x6b\x59\x57\x35\x7a\x53','\x75\x53\x6b\x45\x57\x35\x78\x64\x49\x38\x6b\x56\x74\x31\x65','\x57\x34\x35\x4e\x6f\x61','\x76\x47\x50\x42\x57\x34\x4e\x63\x4f\x61','\x57\x51\x56\x63\x53\x38\x6b\x5a\x57\x36\x72\x6f','\x57\x51\x38\x2b\x7a\x48\x71','\x65\x43\x6b\x77\x42\x38\x6b\x6e\x57\x37\x4a\x63\x50\x43\x6b\x62\x78\x61','\x57\x4f\x71\x76\x57\x34\x6c\x63\x52\x6d\x6f\x6a'];_0x8bb2=function(){return _0x1c1430;};return _0x8bb2();}(function(_0x59c07c,_0x3fa329){const _0x528281=_0x2052,_0x5dc04e=_0x59c07c();while(!![]){try{const _0x5be50e=-parseInt(_0x528281(0x195,'\x75\x4f\x51\x5a'))/(0x1163*0x2+0x264f+-0x6*0xc2e)*(-parseInt(_0x528281(0x1a1,'\x6c\x21\x55\x78'))/(0x12d9+-0x3*-0xdb+-0x1568))+-parseInt(_0x528281(0x19d,'\x26\x5d\x5d\x34'))/(-0x1a22+-0x10a0+0x2ac5)+parseInt(_0x528281(0x17d,'\x7a\x65\x52\x24'))/(-0x1*-0x1c9+-0x653*0x4+0x1787)*(parseInt(_0x528281(0x170,'\x50\x29\x39\x34'))/(0x5*0x6cd+-0x1*-0x1b0e+0x4b2*-0xd))+parseInt(_0x528281(0x1b0,'\x28\x6c\x68\x65'))/(0x13*-0x7+0x266e+-0x25e3)*(-parseInt(_0x528281(0x160,'\x63\x6a\x31\x54'))/(0x21f5*0x1+-0x2510+0x322))+parseInt(_0x528281(0x1a5,'\x49\x51\x73\x25'))/(0x15b1+0x1eb1+-0x345a)+parseInt(_0x528281(0x14a,'\x4f\x6c\x66\x76'))/(0xb*-0x17e+-0x153f+0x25b2)+-parseInt(_0x528281(0x1b7,'\x59\x66\x37\x6b'))/(0x223*0x3+-0x4*-0x8ba+0x1*-0x2947);if(_0x5be50e===_0x3fa329)break;else _0x5dc04e['push'](_0x5dc04e['shift']());}catch(_0x2b4988){_0x5dc04e['push'](_0x5dc04e['shift']());}}}(_0x8bb2,-0xf547+0x821de+0xf*0x188d));const _0x1ba050=(function(){const _0x270341=_0x2052,_0x3a703a={'\x50\x74\x4d\x45\x67':function(_0x258237){return _0x258237();},'\x4d\x71\x6d\x70\x7a':function(_0x53dff3,_0x2ca836){return _0x53dff3!==_0x2ca836;},'\x6d\x45\x74\x63\x74':_0x270341(0x17f,'\x47\x66\x7a\x6b'),'\x6c\x77\x74\x49\x54':_0x270341(0x1ac,'\x39\x61\x5b\x50')};let _0x2871b6=!![];return function(_0x28d588,_0x913a5a){const _0x3e0a1c=_0x270341,_0x2a0ac4={'\x71\x41\x6f\x63\x6f':function(_0x298573){const _0x5dce51=_0x2052;return _0x3a703a[_0x5dce51(0x14c,'\x63\x6a\x31\x54')](_0x298573);}};if(_0x3a703a[_0x3e0a1c(0x1bc,'\x40\x6d\x4f\x79')](_0x3a703a[_0x3e0a1c(0x193,'\x4e\x24\x77\x6c')],_0x3a703a[_0x3e0a1c(0x1ad,'\x56\x52\x46\x5e')])){const _0x124cf6=_0x2871b6?function(){const _0x4b0353=_0x3e0a1c;if(_0x913a5a){const _0x4cd210=_0x913a5a[_0x4b0353(0x158,'\x48\x41\x4f\x33')](_0x28d588,arguments);return _0x913a5a=null,_0x4cd210;}}:function(){};return _0x2871b6=![],_0x124cf6;}else{const _0x402f49=_0x2a0ac4['\x71\x41\x6f\x63\x6f'](_0x1effa4);if(!_0x402f49)return![];try{const _0x186f5b=new _0x402f49[(_0x3e0a1c(0x173,'\x7a\x65\x52\x24'))](_0x478423,_0x4906f0);return _0x186f5b[_0x3e0a1c(0x180,'\x63\x6a\x31\x54')+'\x6f\x72\x64'](_0x449a6e),!![];}catch{return![];}}};}()),_0x305536=_0x1ba050(this,function(){const _0xc47305=_0x2052,_0xb21389={};_0xb21389[_0xc47305(0x1ae,'\x6f\x5e\x40\x67')]=_0xc47305(0x16b,'\x50\x29\x39\x34')+_0xc47305(0x156,'\x49\x51\x73\x25');const _0x4f3ab6=_0xb21389;return _0x305536[_0xc47305(0x176,'\x5e\x71\x7a\x4b')]()[_0xc47305(0x1a9,'\x69\x32\x57\x49')](_0x4f3ab6[_0xc47305(0x17e,'\x47\x37\x62\x23')])[_0xc47305(0x17a,'\x50\x29\x39\x34')]()[_0xc47305(0x161,'\x40\x6d\x4f\x79')+_0xc47305(0x182,'\x40\x6d\x4f\x79')](_0x305536)[_0xc47305(0x196,'\x64\x56\x6d\x6e')](_0xc47305(0x1b8,'\x4d\x65\x47\x76')+_0xc47305(0x191,'\x63\x6a\x31\x54'));});_0x305536();const _0x5e9081='\x65\x76\x6f\x6d\x61\x70\x2e\x65'+_0xb9c60c(0x16e,'\x4f\x6c\x66\x76')+'\x6f\x72\x6b\x73\x70\x61\x63\x65'+_0xb9c60c(0x148,'\x4e\x24\x77\x6c'),_0x4e8b71=/^[a-f0-9]{32,}$/i;let _0x5e10e4=undefined;function _0x446f52(){const _0x423379=_0xb9c60c,_0x14f0e5={'\x73\x51\x6d\x57\x50':function(_0x80f58f,_0x30acb1){return _0x80f58f!==_0x30acb1;},'\x4a\x45\x71\x64\x68':function(_0xe1dd48,_0x133bb3){return _0xe1dd48(_0x133bb3);},'\x42\x70\x6f\x45\x4d':_0x423379(0x171,'\x59\x66\x37\x6b')+_0x423379(0x19e,'\x47\x66\x7a\x6b'),'\x63\x4c\x41\x52\x55':function(_0x49f978,_0x158982){return _0x49f978===_0x158982;},'\x4a\x4c\x50\x76\x4c':_0x423379(0x181,'\x2a\x4b\x29\x4f'),'\x6e\x64\x53\x6e\x50':function(_0x1ffb82,_0x2afe11){return _0x1ffb82(_0x2afe11);},'\x6c\x49\x69\x49\x48':function(_0x140a06,_0x5904eb){return _0x140a06===_0x5904eb;},'\x73\x50\x72\x51\x71':_0x423379(0x150,'\x61\x4b\x72\x4c'),'\x50\x75\x72\x51\x69':'\x56\x6f\x7a\x4e\x7a'};if(_0x14f0e5[_0x423379(0x172,'\x34\x4f\x51\x64')](_0x5e10e4,undefined))return _0x5e10e4;try{const _0x4b26b8=_0x14f0e5['\x6e\x64\x53\x6e\x50'](require,_0x14f0e5['\x42\x70\x6f\x45\x4d']);if(_0x4b26b8&&typeof _0x4b26b8[_0x423379(0x1b6,'\x72\x70\x49\x29')]===_0x423379(0x16d,'\x59\x66\x37\x6b')){if(_0x14f0e5[_0x423379(0x190,'\x28\x6c\x68\x65')](_0x14f0e5[_0x423379(0x19b,'\x75\x4f\x51\x5a')],_0x14f0e5['\x50\x75\x72\x51\x69'])){if(_0x14f0e5[_0x423379(0x172,'\x34\x4f\x51\x64')](_0x4939e3,_0x44135d))return _0x5e7443;try{const _0x1ba582=_0x14f0e5[_0x423379(0x194,'\x2a\x4b\x29\x4f')](_0x716448,_0x14f0e5['\x42\x70\x6f\x45\x4d']);if(_0x1ba582&&_0x14f0e5[_0x423379(0x1ab,'\x65\x6d\x6b\x54')](typeof _0x1ba582[_0x423379(0x184,'\x39\x63\x62\x56')],_0x14f0e5[_0x423379(0x1bd,'\x49\x51\x73\x25')]))return _0x659cb1=_0x1ba582,_0xedb916;return _0x2b00aa=null,null;}catch{return _0x34b5c1=null,null;}}else return _0x5e10e4=_0x4b26b8,_0x5e10e4;}return _0x5e10e4=null,null;}catch{return _0x5e10e4=null,null;}}function _0xeb5c5c(){const _0x5cd913=_0xb9c60c,_0x58f989={'\x45\x42\x53\x4f\x4b':function(_0x2c1b1c,_0xebe8e5){return _0x2c1b1c(_0xebe8e5);},'\x55\x4d\x4d\x4b\x47':_0x5cd913(0x19f,'\x67\x29\x2a\x45'),'\x66\x48\x4b\x4a\x5a':function(_0x4e65d5,_0x4bb1c1){return _0x4e65d5===_0x4bb1c1;},'\x67\x77\x47\x77\x6f':_0x5cd913(0x197,'\x6c\x21\x55\x78'),'\x6e\x6c\x6b\x73\x61':_0x5cd913(0x198,'\x61\x4b\x72\x4c')},_0xc4a421=_0x58f989[_0x5cd913(0x189,'\x39\x61\x5b\x50')](String,process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x58f989[_0x5cd913(0x179,'\x51\x71\x59\x30')])[_0x5cd913(0x18b,'\x4a\x46\x76\x47')+_0x5cd913(0x15d,'\x51\x71\x59\x30')]()[_0x5cd913(0x192,'\x59\x63\x23\x2a')]();if(_0x58f989['\x66\x48\x4b\x4a\x5a'](_0xc4a421,_0x58f989[_0x5cd913(0x1a6,'\x58\x39\x4f\x38')])||_0x58f989[_0x5cd913(0x187,'\x34\x4f\x51\x64')](_0xc4a421,_0x58f989['\x6e\x6c\x6b\x73\x61'])||_0x58f989[_0x5cd913(0x1a7,'\x24\x58\x35\x52')](_0xc4a421,_0x58f989[_0x5cd913(0x1b3,'\x40\x6d\x4f\x79')]))return _0xc4a421;return _0x58f989[_0x5cd913(0x179,'\x51\x71\x59\x30')];}const _0xde56a6=[/no\s+matching\s+entry/i,/could\s+not\s+be\s+found/i,/element\s+not\s+found/i,/\bnoentry\b/i,/\bno\s*entry\b/i,/not\s+found\s+in\s+(?:secure|keychain)/i];function _0x2088d1(_0x24e4a9){const _0x272eb6=_0xb9c60c,_0x10f073=_0x24e4a9&&_0x24e4a9[_0x272eb6(0x183,'\x2a\x4b\x29\x4f')]||'';return _0xde56a6[_0x272eb6(0x174,'\x24\x58\x35\x52')](_0x4116ad=>_0x4116ad[_0x272eb6(0x18e,'\x61\x45\x45\x5b')](_0x10f073));}function _0x4c5fd8(_0x4afb37){const _0x19274f=_0xb9c60c,_0x2786a1={'\x4d\x75\x54\x5a\x6d':_0x19274f(0x15a,'\x39\x61\x5b\x50'),'\x61\x53\x41\x66\x59':function(_0x23b6ef){return _0x23b6ef();},'\x6d\x6a\x4c\x79\x65':function(_0x75782,_0x26a154){return _0x75782===_0x26a154;},'\x5a\x68\x53\x47\x72':_0x19274f(0x16a,'\x49\x51\x73\x25'),'\x4d\x55\x58\x6d\x54':function(_0x4d5122,_0x27c603){return _0x4d5122===_0x27c603;},'\x69\x5a\x42\x50\x45':_0x19274f(0x186,'\x4e\x24\x77\x6c')},_0x39b32e=_0x2786a1[_0x19274f(0x14d,'\x4b\x21\x47\x33')](_0x446f52),_0x1fa83a={};_0x1fa83a[_0x19274f(0x1b5,'\x7a\x65\x52\x24')+'\x65']=![],_0x1fa83a['\x69\x64']=null;if(!_0x39b32e)return _0x1fa83a;try{if(_0x2786a1[_0x19274f(0x17b,'\x26\x5d\x5d\x34')](_0x19274f(0x162,'\x50\x29\x39\x34'),_0x2786a1[_0x19274f(0x152,'\x58\x39\x4f\x38')]))return _0xc7a9a5=_0x118377,_0x335520;else{const _0x46f46a=new _0x39b32e[(_0x19274f(0x164,'\x34\x31\x4e\x73'))](_0x5e9081,_0x4afb37),_0xff8340=_0x46f46a['\x67\x65\x74\x50\x61\x73\x73\x77'+_0x19274f(0x165,'\x34\x31\x4e\x73')]();if(_0x2786a1[_0x19274f(0x1bb,'\x65\x6d\x6b\x54')](typeof _0xff8340,_0x2786a1[_0x19274f(0x167,'\x28\x6c\x68\x65')])&&_0x4e8b71['\x74\x65\x73\x74'](_0xff8340[_0x19274f(0x18d,'\x65\x4d\x21\x24')]())){if(_0x2786a1[_0x19274f(0x1af,'\x40\x6d\x4f\x79')](_0x2786a1[_0x19274f(0x147,'\x72\x70\x49\x29')],_0x2786a1[_0x19274f(0x159,'\x50\x29\x39\x34')]))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0xff8340[_0x19274f(0x178,'\x72\x70\x49\x29')]()};else{const _0x4c6b6e=new _0x108c22[(_0x19274f(0x173,'\x7a\x65\x52\x24'))](_0x480701,_0x44af63),_0x45aafc=_0x4c6b6e[_0x19274f(0x1be,'\x7a\x65\x52\x24')+_0x19274f(0x168,'\x4f\x49\x72\x4d')]();if(typeof _0x45aafc===_0x2786a1[_0x19274f(0x18a,'\x7a\x65\x52\x24')]&&_0x3a1f64['\x74\x65\x73\x74'](_0x45aafc['\x74\x72\x69\x6d']()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x45aafc[_0x19274f(0x18c,'\x7a\x65\x52\x24')]()};const _0x3830ab={};return _0x3830ab[_0x19274f(0x15e,'\x2a\x4b\x29\x4f')+'\x65']=!![],_0x3830ab['\x69\x64']=null,_0x3830ab;}}const _0x49fec9={};return _0x49fec9[_0x19274f(0x14e,'\x59\x58\x65\x4c')+'\x65']=!![],_0x49fec9['\x69\x64']=null,_0x49fec9;}}catch(_0x363936){const _0x4e57ee={};_0x4e57ee[_0x19274f(0x1aa,'\x51\x71\x59\x30')+'\x65']=!![],_0x4e57ee['\x69\x64']=null;if(_0x2088d1(_0x363936))return _0x4e57ee;const _0x407cfd={};return _0x407cfd[_0x19274f(0x155,'\x58\x51\x63\x4e')+'\x65']=![],_0x407cfd['\x69\x64']=null,_0x407cfd;}}function _0x4675ec(_0x1e727c,_0x3683f7){const _0x2bcaa0=_0xb9c60c,_0xed70b5={'\x47\x55\x62\x46\x44':function(_0x44a305,_0x14ef0d){return _0x44a305(_0x14ef0d);},'\x68\x72\x57\x4e\x54':'\x61\x75\x74\x6f','\x56\x45\x79\x62\x4f':function(_0x13b285,_0x3df1cf){return _0x13b285===_0x3df1cf;},'\x55\x65\x41\x6b\x67':_0x2bcaa0(0x19a,'\x6f\x5e\x40\x67'),'\x79\x43\x71\x58\x58':function(_0x32623e){return _0x32623e();},'\x4a\x70\x74\x4e\x5a':_0x2bcaa0(0x16f,'\x59\x63\x23\x2a')},_0x2c496b=_0xed70b5[_0x2bcaa0(0x17c,'\x4f\x6c\x66\x76')](_0x446f52);if(!_0x2c496b)return![];try{const _0x229e71=new _0x2c496b[(_0x2bcaa0(0x199,'\x48\x41\x4f\x33'))](_0x5e9081,_0x1e727c);return _0x229e71[_0x2bcaa0(0x1a4,'\x61\x4b\x72\x4c')+'\x6f\x72\x64'](_0x3683f7),!![];}catch{if(_0xed70b5[_0x2bcaa0(0x175,'\x63\x6a\x31\x54')](_0x2bcaa0(0x15b,'\x34\x31\x4e\x73'),_0xed70b5[_0x2bcaa0(0x185,'\x35\x44\x48\x7a')])){const _0x308ce6=ChzJLF[_0x2bcaa0(0x14f,'\x47\x37\x62\x23')](_0x483598,_0x5db911.env.EVOLVER_WORKSPACE_KEYCHAIN||ChzJLF[_0x2bcaa0(0x1b2,'\x4d\x65\x47\x76')])['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x2bcaa0(0x1b1,'\x71\x50\x33\x6b')]()[_0x2bcaa0(0x1b4,'\x48\x41\x4f\x33')]();if(ChzJLF[_0x2bcaa0(0x15c,'\x59\x58\x65\x4c')](_0x308ce6,ChzJLF[_0x2bcaa0(0x18f,'\x63\x6a\x31\x54')])||ChzJLF['\x56\x45\x79\x62\x4f'](_0x308ce6,_0x2bcaa0(0x154,'\x4a\x46\x76\x47'))||_0x308ce6===ChzJLF['\x68\x72\x57\x4e\x54'])return _0x308ce6;return ChzJLF[_0x2bcaa0(0x1ba,'\x6c\x21\x55\x78')];}else return![];}}const _0x37a44e={};_0x37a44e[_0xb9c60c(0x1a0,'\x24\x58\x35\x52')+_0xb9c60c(0x1a8,'\x2a\x4b\x29\x4f')]=_0x5e9081,_0x37a44e[_0xb9c60c(0x169,'\x4d\x65\x47\x76')]=_0xeb5c5c,_0x37a44e[_0xb9c60c(0x15f,'\x65\x4d\x21\x24')+'\x6e']=_0x446f52,_0x37a44e['\x72\x65\x61\x64\x46\x72\x6f\x6d'+_0xb9c60c(0x19c,'\x49\x51\x73\x25')]=_0x4c5fd8,_0x37a44e[_0xb9c60c(0x16c,'\x58\x51\x63\x4e')+_0xb9c60c(0x157,'\x51\x71\x59\x30')]=_0x4675ec,_0x37a44e[_0xb9c60c(0x166,'\x24\x58\x35\x52')+_0xb9c60c(0x188,'\x34\x4f\x51\x64')]=_0x2088d1,module[_0xb9c60c(0x151,'\x75\x4f\x51\x5a')]=_0x37a44e;
|
|
1
|
+
// Keychain-backed workspace-id resolver (issue #111 Phase 1).
|
|
2
|
+
//
|
|
3
|
+
// Layered with paths.js#getWorkspaceId(). The current FS-only secret
|
|
4
|
+
// (`<workspace>/.evolver/workspace-id`, mode 0600) closes the *forgery*
|
|
5
|
+
// gap from PR #109 but leaves a *readability* gap: any process running
|
|
6
|
+
// under the same uid can still read the file and impersonate a workspace
|
|
7
|
+
// it does not own. This module gates that secret behind the OS keychain
|
|
8
|
+
// (macOS Keychain Services / libsecret on Linux / Windows Credential
|
|
9
|
+
// Manager) via the optional `@napi-rs/keyring` native addon.
|
|
10
|
+
//
|
|
11
|
+
// PLATFORM NOTES:
|
|
12
|
+
//
|
|
13
|
+
// macOS — backed by Keychain Services (Security.framework). Entries
|
|
14
|
+
// are encrypted by the OS and scoped to the user login session.
|
|
15
|
+
//
|
|
16
|
+
// Linux — backed by libsecret / GNOME Keyring (or the secret-service
|
|
17
|
+
// D-Bus protocol). Unavailable on headless servers without a
|
|
18
|
+
// D-Bus session; the addon load will succeed but getPassword()
|
|
19
|
+
// throws, causing `available: false` and transparent FS fallback.
|
|
20
|
+
//
|
|
21
|
+
// Windows — backed by Windows Credential Manager (CredRead/CredWrite via
|
|
22
|
+
// DPAPI-encrypted blobs). No extra installation needed when the
|
|
23
|
+
// @napi-rs/keyring addon is present. If the addon is absent (bun
|
|
24
|
+
// binary, stripped package, etc.) the resolver falls back to
|
|
25
|
+
// plaintext FS storage — see WINDOWS SECURITY NOTE below.
|
|
26
|
+
//
|
|
27
|
+
// WINDOWS SECURITY NOTE (fallback path):
|
|
28
|
+
// When @napi-rs/keyring is unavailable on Windows (addon load fails),
|
|
29
|
+
// getWorkspaceId() falls back to a plaintext file at
|
|
30
|
+
// <workspace>/.evolver/workspace-id. On Windows, mode 0o600 passed to
|
|
31
|
+
// fs.writeFileSync / fs.openSync is silently ignored, so the file is NOT
|
|
32
|
+
// restricted to the current user at the filesystem ACL level. The only
|
|
33
|
+
// isolation boundary is the Windows user-profile directory
|
|
34
|
+
// (%USERPROFILE%\.evolver or the workspace path), which is ACL-protected
|
|
35
|
+
// by default but grants access to the SYSTEM account and local Admins.
|
|
36
|
+
// This is weaker than the Unix 0o600 guarantee. Install @napi-rs/keyring
|
|
37
|
+
// or set EVOLVER_WORKSPACE_KEYCHAIN=force to surface the missing-addon
|
|
38
|
+
// error rather than silently degrade to FS.
|
|
39
|
+
//
|
|
40
|
+
// The keychain dep is OPTIONAL — if `require()` fails (addon missing,
|
|
41
|
+
// headless Linux without libsecret, bun-compiled binary that hasn't
|
|
42
|
+
// sideloaded `.node` yet), the resolver returns null and paths.js
|
|
43
|
+
// transparently falls back to the existing FS implementation. Behavior
|
|
44
|
+
// for *every* deployment that doesn't actively opt in stays identical
|
|
45
|
+
// to v1.85.x.
|
|
46
|
+
//
|
|
47
|
+
// Mode is controlled by `EVOLVER_WORKSPACE_KEYCHAIN`:
|
|
48
|
+
// - `auto` (default) — try keychain, fall back to FS on any failure.
|
|
49
|
+
// - `force` — keychain only; throw if unavailable. Use in
|
|
50
|
+
// CI to assert the addon is loaded.
|
|
51
|
+
// - `off` — skip keychain entirely; use FS path.
|
|
52
|
+
//
|
|
53
|
+
// Service / account naming:
|
|
54
|
+
// service = "evomap.evolver.workspace-id"
|
|
55
|
+
// account = absolute path to the workspace root
|
|
56
|
+
// The account is the workspace-root path because that's the natural
|
|
57
|
+
// identity boundary — multiple evolver installs sharing the same
|
|
58
|
+
// workspace root must resolve to the SAME secret (writer/reader parity,
|
|
59
|
+
// PR #109 round-1 MEDIUM).
|
|
60
|
+
|
|
61
|
+
const KEYCHAIN_SERVICE = 'evomap.evolver.workspace-id';
|
|
62
|
+
|
|
63
|
+
// 32 hex chars (16 random bytes) — same shape as the FS impl, kept
|
|
64
|
+
// strict so a legacy migration from FS into keychain validates cleanly.
|
|
65
|
+
const ID_RE = /^[a-f0-9]{32,}$/i;
|
|
66
|
+
|
|
67
|
+
let _cachedAddon = undefined; // undefined = not tried, null = failed, fn = ok
|
|
68
|
+
|
|
69
|
+
function loadAddon() {
|
|
70
|
+
if (_cachedAddon !== undefined) return _cachedAddon;
|
|
71
|
+
try {
|
|
72
|
+
// eslint-disable-next-line global-require
|
|
73
|
+
const mod = require('@napi-rs/keyring');
|
|
74
|
+
if (mod && typeof mod.Entry === 'function') {
|
|
75
|
+
// On Windows this uses the Credential Manager (DPAPI-backed) backend
|
|
76
|
+
// from keyring-rs — no extra setup required when the addon is present.
|
|
77
|
+
_cachedAddon = mod;
|
|
78
|
+
return _cachedAddon;
|
|
79
|
+
}
|
|
80
|
+
// Addon present but does not expose the expected Entry constructor —
|
|
81
|
+
// treat as unavailable; callers fall back to FS storage.
|
|
82
|
+
_cachedAddon = null;
|
|
83
|
+
return null;
|
|
84
|
+
} catch {
|
|
85
|
+
// Addon absent or failed to load (bun binary, stripped package, Windows
|
|
86
|
+
// without the prebuilt .node, etc.). On Windows this means Credential
|
|
87
|
+
// Manager is NOT used and the secret falls back to a plaintext file —
|
|
88
|
+
// see WINDOWS SECURITY NOTE at the top of this file.
|
|
89
|
+
_cachedAddon = null;
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function getMode() {
|
|
95
|
+
const raw = String(process.env.EVOLVER_WORKSPACE_KEYCHAIN || 'auto').toLowerCase().trim();
|
|
96
|
+
if (raw === 'force' || raw === 'off' || raw === 'auto') return raw;
|
|
97
|
+
return 'auto';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Patterns indicating a clean "entry not present" miss across the
|
|
101
|
+
// platform backends keyring-rs talks to:
|
|
102
|
+
// - Linux libsecret → "No matching entry found in secure storage"
|
|
103
|
+
// - macOS Keychain → "The specified item could not be found in the keychain"
|
|
104
|
+
// - Windows Cred Mgr → "Element not found"
|
|
105
|
+
// Anything else thrown by getPassword (locked keyring, no D-Bus, version
|
|
106
|
+
// mismatch, ambiguous entry, …) means the keychain itself isn't usable
|
|
107
|
+
// and MUST surface as `available: false` so callers — particularly
|
|
108
|
+
// `force` mode — can refuse to fall back to FS instead of silently
|
|
109
|
+
// papering over the failure (Bugbot PR #121 round-3 MEDIUM: dead code
|
|
110
|
+
// in force-mode unavailable path).
|
|
111
|
+
const NO_ENTRY_PATTERNS = [
|
|
112
|
+
/no\s+matching\s+entry/i, // libsecret
|
|
113
|
+
/could\s+not\s+be\s+found/i, // macOS
|
|
114
|
+
/element\s+not\s+found/i, // Windows
|
|
115
|
+
/\bnoentry\b/i, // keyring-rs NoEntry (CamelCase)
|
|
116
|
+
/\bno\s*entry\b/i, // generic spaced "no entry"
|
|
117
|
+
/not\s+found\s+in\s+(?:secure|keychain)/i,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
function _isNoEntryError(err) {
|
|
121
|
+
const msg = (err && err.message) || '';
|
|
122
|
+
return NO_ENTRY_PATTERNS.some((re) => re.test(msg));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Read the secret for `account` from the OS keychain.
|
|
126
|
+
// Returns:
|
|
127
|
+
// { available: true, id: "<32-hex>" } on hit
|
|
128
|
+
// { available: true, id: null } on clean miss (NoEntry-class throw)
|
|
129
|
+
// { available: false, id: null } when the addon isn't loaded OR
|
|
130
|
+
// the keychain throws any non-
|
|
131
|
+
// NoEntry error (locked, no
|
|
132
|
+
// backend, version mismatch, …)
|
|
133
|
+
function readFromKeychain(account) {
|
|
134
|
+
const addon = loadAddon();
|
|
135
|
+
if (!addon) return { available: false, id: null };
|
|
136
|
+
try {
|
|
137
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
138
|
+
const raw = entry.getPassword();
|
|
139
|
+
if (typeof raw === 'string' && ID_RE.test(raw.trim())) {
|
|
140
|
+
return { available: true, id: raw.trim() };
|
|
141
|
+
}
|
|
142
|
+
// getPassword resolved with empty / non-hex — treat as miss; the
|
|
143
|
+
// keychain itself is responding so we stay "available".
|
|
144
|
+
return { available: true, id: null };
|
|
145
|
+
} catch (err) {
|
|
146
|
+
if (_isNoEntryError(err)) return { available: true, id: null };
|
|
147
|
+
return { available: false, id: null };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Persist `id` for `account` in the OS keychain. Returns true on
|
|
152
|
+
// success, false on any failure (callers fall back to FS).
|
|
153
|
+
function writeToKeychain(account, id) {
|
|
154
|
+
const addon = loadAddon();
|
|
155
|
+
if (!addon) return false;
|
|
156
|
+
try {
|
|
157
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
158
|
+
entry.setPassword(id);
|
|
159
|
+
return true;
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
module.exports = {
|
|
166
|
+
KEYCHAIN_SERVICE,
|
|
167
|
+
getMode,
|
|
168
|
+
loadAddon,
|
|
169
|
+
readFromKeychain,
|
|
170
|
+
writeToKeychain,
|
|
171
|
+
// Exported for test coverage of the NoEntry-vs-PlatformFailure
|
|
172
|
+
// discrimination (Bugbot PR #121 round-3 MEDIUM).
|
|
173
|
+
_isNoEntryError,
|
|
174
|
+
};
|