@evomap/evolver 1.89.3 → 1.89.4
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 +1237 -0
- package/README.md +86 -528
- package/README.public.md +569 -0
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +30 -1
- package/package.json +6 -17
- package/proxy-package.json +39 -0
- package/public.manifest.json +143 -0
- package/src/config.js +23 -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/experiment/agentRunner.js +229 -0
- package/src/experiment/cli.js +159 -0
- package/src/experiment/comparison.js +233 -0
- package/src/experiment/metrics.js +75 -0
- package/src/forceUpdate.js +147 -59
- package/src/gep/a2aProtocol.js +4455 -1
- package/src/gep/antiAbuseTelemetry.js +233 -0
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +711 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +359 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1374 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +836 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/sanitize.js +9 -0
- package/src/gep/selector.js +602 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +88 -1
- package/src/gep/validator/sandboxExecutor.js +29 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/index.js +10 -1
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +19 -0
- package/src/proxy/mailbox/store.js +2 -1
- package/src/proxy/router/messages_route.js +5 -2
- package/src/proxy/trace/extractor.js +646 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/refresh_stars_badge.js +0 -168
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
|
@@ -1 +1,266 @@
|
|
|
1
|
-
const _0x3d1b7b=_0x2ef7;(function(_0x58326e,_0x143570){const _0x560d19=_0x2ef7,_0x4a9430=_0x58326e();while(!![]){try{const _0xa48d76=-parseInt(_0x560d19(0x1cc,'\x50\x31\x73\x73'))/(-0x9f7+-0x1204+0x1bfc)*(parseInt(_0x560d19(0x220,'\x44\x5b\x25\x49'))/(0x10d9+0x16*-0x27+0x3*-0x47f))+parseInt(_0x560d19(0x168,'\x70\x52\x51\x6d'))/(0x17f5*0x1+0x68e+-0x1e80)+-parseInt(_0x560d19(0x161,'\x56\x47\x4c\x45'))/(-0x1*-0x10b1+-0x70*0xd+-0x1*0xafd)+-parseInt(_0x560d19(0x130,'\x5a\x21\x5e\x35'))/(-0x1*0x175+-0x8*-0x155+0x19*-0x5e)*(-parseInt(_0x560d19(0x196,'\x67\x4f\x4d\x5d'))/(-0xd7a+0xf98*0x1+0x218*-0x1))+-parseInt(_0x560d19(0x160,'\x33\x64\x52\x6e'))/(-0xcb9+-0x1*0x1ce+0xe8e)*(-parseInt(_0x560d19(0x1b8,'\x6b\x6d\x6a\x59'))/(0x1576+0x1842+0x2b0*-0x11))+parseInt(_0x560d19(0x203,'\x44\x5b\x25\x49'))/(-0x1f87+0x1ba5+0x1*0x3eb)*(parseInt(_0x560d19(0x14f,'\x5b\x30\x31\x68'))/(-0x1f11+-0x56*0xb+-0x3b*-0x97))+-parseInt(_0x560d19(0x147,'\x25\x6d\x4a\x75'))/(-0x209*0x3+0x1029+0xb*-0xe9);if(_0xa48d76===_0x143570)break;else _0x4a9430['push'](_0x4a9430['shift']());}catch(_0x152538){_0x4a9430['push'](_0x4a9430['shift']());}}}(_0x21f1,0xa8*0x778+-0x3e513+0x552eb));const _0x36c2e4=(function(){let _0x1f5b9d=!![];return function(_0x531d95,_0x593f13){const _0x481d5b=_0x1f5b9d?function(){const _0x267a91=_0x2ef7;if(_0x593f13){const _0x315d4f=_0x593f13[_0x267a91(0x238,'\x2a\x56\x21\x36')](_0x531d95,arguments);return _0x593f13=null,_0x315d4f;}}:function(){};return _0x1f5b9d=![],_0x481d5b;};}()),_0x5c0c73=_0x36c2e4(this,function(){const _0x48e53e=_0x2ef7,_0x39ad5e={};_0x39ad5e[_0x48e53e(0x182,'\x62\x29\x30\x66')]=_0x48e53e(0x1f5,'\x69\x57\x5e\x59')+_0x48e53e(0x184,'\x44\x5b\x25\x49');const _0x5074f4=_0x39ad5e;return _0x5c0c73['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x48e53e(0x10f,'\x4b\x6c\x77\x5d')](_0x5074f4[_0x48e53e(0x1b5,'\x5d\x73\x21\x65')])[_0x48e53e(0x1ad,'\x6a\x24\x4f\x78')]()[_0x48e53e(0x164,'\x79\x79\x7a\x69')+_0x48e53e(0x166,'\x62\x29\x30\x66')](_0x5c0c73)['\x73\x65\x61\x72\x63\x68'](_0x5074f4[_0x48e53e(0x1a2,'\x78\x2a\x43\x69')]);});_0x5c0c73();'use strict';const _0x27fe95=require('\x66\x73'),_0x417218=require(_0x3d1b7b(0x150,'\x51\x76\x24\x73')),_0x3124af=require(_0x3d1b7b(0x212,'\x70\x52\x51\x6d')),{getEvolutionDir:_0x5c1b6d}=require(_0x3d1b7b(0x112,'\x66\x44\x4a\x4a')),_0x526889=((()=>{const _0x24eb99=_0x3d1b7b,_0x344dbe={'\x49\x52\x72\x76\x50':function(_0x23e659,_0x4192a5){return _0x23e659(_0x4192a5);},'\x6b\x6c\x65\x70\x78':'\x73\x68\x61\x64\x6f\x77','\x49\x6d\x6f\x69\x75':function(_0x4cf53e,_0xb96a78){return _0x4cf53e===_0xb96a78;},'\x59\x6e\x55\x52\x5a':function(_0x551f9e,_0x46f8dc){return _0x551f9e===_0x46f8dc;},'\x76\x52\x48\x44\x42':_0x24eb99(0x18b,'\x61\x5d\x6a\x45'),'\x76\x62\x64\x70\x54':'\x6f\x66\x66','\x4b\x46\x65\x56\x73':function(_0x2a45fa,_0xa03f7d){return _0x2a45fa===_0xa03f7d;},'\x5a\x66\x57\x61\x43':_0x24eb99(0x23a,'\x51\x76\x24\x73'),'\x73\x74\x5a\x6a\x56':function(_0x3cc1fa,_0x5bf338){return _0x3cc1fa===_0x5bf338;},'\x42\x4d\x6f\x78\x4c':function(_0x41038b,_0x57d0ab){return _0x41038b===_0x57d0ab;},'\x49\x58\x6e\x75\x67':_0x24eb99(0x23d,'\x70\x79\x38\x30')},_0x5df210=_0x344dbe[_0x24eb99(0x233,'\x4b\x6c\x77\x5d')](String,process.env.EVOLVER_CONV_SNIFF_ENABLED||_0x344dbe[_0x24eb99(0x13a,'\x69\x57\x5e\x59')])['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x24eb99(0x225,'\x57\x5b\x73\x28')]()[_0x24eb99(0x169,'\x70\x52\x51\x6d')]();if(_0x344dbe['\x49\x6d\x6f\x69\x75'](_0x5df210,_0x24eb99(0x117,'\x29\x40\x4f\x30'))||_0x344dbe[_0x24eb99(0x1bf,'\x36\x26\x32\x5b')](_0x5df210,_0x344dbe[_0x24eb99(0x1e5,'\x4b\x66\x44\x73')])||_0x5df210==='\x30')return _0x344dbe[_0x24eb99(0x1d7,'\x56\x47\x4c\x45')];if(_0x344dbe[_0x24eb99(0x1df,'\x23\x28\x49\x6c')](_0x5df210,_0x344dbe[_0x24eb99(0x137,'\x62\x65\x4a\x59')])||_0x344dbe[_0x24eb99(0x171,'\x51\x76\x24\x73')](_0x5df210,'\x6f\x6e')||_0x344dbe[_0x24eb99(0x221,'\x6a\x58\x49\x35')](_0x5df210,_0x344dbe[_0x24eb99(0x1e8,'\x5a\x21\x5e\x35')])||_0x344dbe[_0x24eb99(0x19e,'\x61\x77\x4b\x48')](_0x5df210,'\x31'))return _0x344dbe[_0x24eb99(0xfb,'\x23\x28\x49\x6c')];return _0x344dbe['\x6b\x6c\x65\x70\x78'];})()),_0x11ee79=parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS||_0x3d1b7b(0x11c,'\x51\x76\x24\x73'),0x5f1+-0x1b44+0x155d)||0x52167+0xc4*-0x1d53+0x4657*0xa3,_0x124a05=0xbcb+0x233+0x1ff*-0x7,_0x5af35=-0x1*0x2054+-0x1*0x232c+0x4470,_0x51ee3c='\x63\x6f\x6e\x76\x5f\x63\x61\x70'+_0x3d1b7b(0x151,'\x5b\x30\x31\x68')+_0x3d1b7b(0xfd,'\x4b\x66\x44\x73')+'\x65',_0x8c27ae=[_0x3d1b7b(0x11e,'\x2a\x56\x21\x36'),_0x3d1b7b(0x1c6,'\x6a\x24\x4f\x78')+'\x64',_0x3d1b7b(0x22c,'\x35\x42\x42\x5b'),_0x3d1b7b(0x1b0,'\x48\x4b\x67\x71')+'\x64',_0x3d1b7b(0x12f,'\x33\x64\x52\x6e'),_0x3d1b7b(0x163,'\x79\x79\x7a\x69'),_0x3d1b7b(0x154,'\x35\x42\x42\x5b')+'\x64','\x63\x72\x65\x61\x74\x65\x64',_0x3d1b7b(0x152,'\x6a\x24\x4f\x78')+'\x64',_0x3d1b7b(0x10e,'\x44\x6e\x30\x68'),_0x3d1b7b(0x158,'\x63\x77\x45\x5b'),'\u6210\u529f',_0x3d1b7b(0x1bd,'\x23\x28\x49\x6c'),_0x3d1b7b(0x167,'\x5a\x21\x5e\x35'),_0x3d1b7b(0x1c5,'\x40\x7a\x50\x6b'),'\u641e\u5b9a','\u8dd1\u901a',_0x3d1b7b(0x10b,'\x6b\x6d\x6a\x59')],_0x50297b=[[/\blark-cli\b|飞书文档|feishu doc|lark doc/i,_0x3d1b7b(0x1ea,'\x70\x52\x51\x6d')+_0x3d1b7b(0x165,'\x2a\x56\x21\x36')+'\x6f\x63'],[/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i,_0x3d1b7b(0x180,'\x78\x2a\x43\x69')+_0x3d1b7b(0x1ca,'\x6a\x24\x4f\x78')+'\x6e'],[/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i,_0x3d1b7b(0x1e2,'\x37\x70\x55\x4a')],[/\bdocker (build|run|compose)\b/i,_0x3d1b7b(0x145,'\x6b\x6d\x6a\x59')+_0x3d1b7b(0x1c1,'\x62\x29\x30\x66')],[/\bkubectl\b|helm (install|upgrade)\b/i,_0x3d1b7b(0x17c,'\x62\x65\x4a\x59')+_0x3d1b7b(0x135,'\x36\x26\x32\x5b')],[/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i,_0x3d1b7b(0x1f8,'\x35\x42\x42\x5b')+_0x3d1b7b(0x1d5,'\x63\x77\x45\x5b')],[/\bnpm publish\b|\bnpx skills\b/i,_0x3d1b7b(0x190,'\x25\x6d\x4a\x75')+_0x3d1b7b(0x118,'\x70\x52\x51\x6d')]];function _0x51d8d5(){const _0x127431=_0x3d1b7b,_0x517e36={'\x4f\x57\x4b\x6e\x4c':function(_0x4dbdd1){return _0x4dbdd1();},'\x73\x53\x69\x4d\x41':_0x127431(0x186,'\x67\x69\x43\x4d')+_0x127431(0x1fa,'\x57\x5b\x73\x28')+_0x127431(0x1be,'\x62\x29\x30\x66')};return _0x417218[_0x127431(0x19d,'\x23\x54\x5d\x61')](_0x517e36[_0x127431(0x143,'\x70\x79\x38\x30')](_0x5c1b6d),_0x517e36[_0x127431(0x123,'\x56\x47\x4c\x45')]);}function _0x82ea4c(){const _0x403241=_0x3d1b7b,_0x23e483={'\x58\x55\x70\x7a\x79':function(_0x15d2dc){return _0x15d2dc();},'\x42\x44\x62\x69\x57':_0x403241(0x11d,'\x28\x71\x67\x56')+_0x403241(0x234,'\x28\x71\x67\x56')+_0x403241(0x125,'\x69\x57\x5e\x59')};return _0x417218[_0x403241(0x1e7,'\x44\x6e\x30\x68')](_0x23e483[_0x403241(0x1b6,'\x56\x47\x4c\x45')](_0x5c1b6d),_0x23e483[_0x403241(0x104,'\x65\x53\x33\x70')]);}function _0x376617(){const _0x5778f8=_0x3d1b7b,_0x203692={'\x50\x4a\x58\x78\x74':function(_0x5bfe49){return _0x5bfe49();},'\x52\x49\x6a\x69\x47':_0x5778f8(0x134,'\x5a\x21\x5e\x35')};try{return JSON[_0x5778f8(0x1e1,'\x6c\x43\x43\x70')](_0x27fe95[_0x5778f8(0xf8,'\x37\x70\x55\x4a')+_0x5778f8(0x1b2,'\x6a\x58\x49\x35')](_0x203692[_0x5778f8(0x15d,'\x61\x77\x4b\x48')](_0x51d8d5),_0x203692[_0x5778f8(0x1a9,'\x51\x76\x24\x73')]));}catch(_0x49daaf){const _0x30be54={};return _0x30be54[_0x5778f8(0x1ce,'\x69\x57\x5e\x59')]={},_0x30be54[_0x5778f8(0x100,'\x2a\x56\x21\x36')+'\x66\x66\x5f\x74\x73']=0x0,_0x30be54;}}function _0x56bd35(_0x3b32d0){const _0xc1bd34=_0x3d1b7b,_0x293676={'\x70\x62\x4d\x50\x4c':function(_0x28a690){return _0x28a690();},'\x4c\x79\x55\x68\x49':function(_0x2e4a82,_0x1e370f){return _0x2e4a82+_0x1e370f;},'\x61\x62\x59\x61\x4e':function(_0x5c2f27){return _0x5c2f27();},'\x7a\x4c\x76\x62\x47':_0xc1bd34(0x224,'\x78\x2a\x43\x69'),'\x6e\x4e\x67\x51\x4c':_0xc1bd34(0x12d,'\x70\x79\x38\x30')};try{const _0x34b158=_0x293676['\x70\x62\x4d\x50\x4c'](_0x5c1b6d),_0x186626={};_0x186626['\x72\x65\x63\x75\x72\x73\x69\x76'+'\x65']=!![];if(!_0x27fe95['\x65\x78\x69\x73\x74\x73\x53\x79'+'\x6e\x63'](_0x34b158))_0x27fe95[_0xc1bd34(0x194,'\x6a\x58\x49\x35')+'\x63'](_0x34b158,_0x186626);const _0x3d2950=_0x293676[_0xc1bd34(0x210,'\x44\x6e\x30\x68')](_0x293676[_0xc1bd34(0x1fd,'\x36\x26\x32\x5b')](_0x51d8d5),_0x293676[_0xc1bd34(0x114,'\x4b\x6c\x77\x5d')]);_0x27fe95['\x77\x72\x69\x74\x65\x46\x69\x6c'+_0xc1bd34(0x218,'\x51\x76\x24\x73')](_0x3d2950,JSON[_0xc1bd34(0x155,'\x68\x42\x44\x79')+'\x79'](_0x3b32d0,null,0x9a9*-0x2+0x5d9+0xd7b)+'\x0a',_0x293676[_0xc1bd34(0x1ee,'\x67\x69\x43\x4d')]),_0x27fe95[_0xc1bd34(0x14e,'\x6b\x6d\x6a\x59')+'\x6e\x63'](_0x3d2950,_0x293676[_0xc1bd34(0xfc,'\x69\x57\x5e\x59')](_0x51d8d5));}catch(_0x2dce37){}}function _0x5e3d97(_0x2bfdba){const _0x20c386=_0x3d1b7b,_0x34e826={};_0x34e826[_0x20c386(0x1f4,'\x6b\x6d\x6a\x59')]=function(_0x2b09dc,_0x177030){return _0x2b09dc+_0x177030;},_0x34e826[_0x20c386(0x217,'\x51\x76\x24\x73')]=_0x20c386(0x129,'\x48\x4b\x67\x71');const _0x236de6=_0x34e826;try{const _0x5f536d=_0x5c1b6d(),_0x591dfa={};_0x591dfa[_0x20c386(0x120,'\x51\x70\x61\x43')+'\x65']=!![];if(!_0x27fe95[_0x20c386(0x13c,'\x69\x57\x5e\x59')+'\x6e\x63'](_0x5f536d))_0x27fe95[_0x20c386(0x20b,'\x65\x53\x33\x70')+'\x63'](_0x5f536d,_0x591dfa);_0x27fe95['\x61\x70\x70\x65\x6e\x64\x46\x69'+_0x20c386(0x198,'\x48\x4b\x67\x71')](_0x82ea4c(),_0x236de6[_0x20c386(0x1d9,'\x41\x46\x31\x70')](JSON[_0x20c386(0x229,'\x33\x64\x52\x6e')+'\x79'](_0x2bfdba),'\x0a'),_0x236de6[_0x20c386(0xfa,'\x67\x69\x43\x4d')]);}catch(_0xe1cc28){}}function _0x2ef7(_0x5a8266,_0x316f35){_0x5a8266=_0x5a8266-(0xfd3+0x49*0x1c+-0x16d8);const _0x5497b7=_0x21f1();let _0x5da701=_0x5497b7[_0x5a8266];if(_0x2ef7['\x69\x79\x6b\x63\x43\x6d']===undefined){var _0xa57abe=function(_0x4eb2cf){const _0x212483='\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 _0x3c2a48='',_0x586d27='',_0x566caf=_0x3c2a48+_0xa57abe,_0x3f3274=(''+function(){return-0x97+-0x784*-0x4+-0x1d79;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1*0xe6+0x44*0x71+0x1d*-0x101);for(let _0x828f1a=-0x946*0x3+-0x1fa5+0x3b77*0x1,_0x5feb7e,_0x2caa94,_0x1aa11c=-0xab8+-0x132b*0x1+0x1de3;_0x2caa94=_0x4eb2cf['\x63\x68\x61\x72\x41\x74'](_0x1aa11c++);~_0x2caa94&&(_0x5feb7e=_0x828f1a%(0x265+-0x23cc+-0x91*-0x3b)?_0x5feb7e*(0x44e*-0x9+-0x2*0x71c+0x3536)+_0x2caa94:_0x2caa94,_0x828f1a++%(0x145+0x1f5c+-0x209d*0x1))?_0x3c2a48+=_0x3f3274||_0x566caf['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1aa11c+(0x1*0xbde+-0x24ed+-0x1*-0x1919))-(0xf64+-0x10af+0x155)!==-0x17*0x13a+-0x61c+-0x1129*-0x2?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1731+0x2*-0x1053+0x4b*0xc2&_0x5feb7e>>(-(-0x3a*0x48+-0x13*-0x1c+0x1*0xe3e)*_0x828f1a&-0x35*-0xb4+0x1*-0x1cf9+0x1*-0x845)):_0x828f1a:0x49*-0x8+-0x24eb+0x2733){_0x2caa94=_0x212483['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2caa94);}for(let _0x484600=0x1*0x42a+-0x15a9*-0x1+-0x19d3,_0x1fc5db=_0x3c2a48['\x6c\x65\x6e\x67\x74\x68'];_0x484600<_0x1fc5db;_0x484600++){_0x586d27+='\x25'+('\x30\x30'+_0x3c2a48['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x484600)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x5ef+-0x1b72+0x15*0x107))['\x73\x6c\x69\x63\x65'](-(-0x1ee*-0x13+-0x14e9+-0x1*0xfbf));}return decodeURIComponent(_0x586d27);};const _0x5a84e2=function(_0x5ee04e,_0x401472){let _0x27f867=[],_0x436c2d=-0x1*-0xaf+-0x15a*-0x14+-0x37*0x81,_0x82e4e8,_0x3679ec='';_0x5ee04e=_0xa57abe(_0x5ee04e);let _0x3eb4c4;for(_0x3eb4c4=0x11eb+0xa49+-0x14*0x169;_0x3eb4c4<-0x4cf*0x1+0x10b0*-0x2+0x1*0x272f;_0x3eb4c4++){_0x27f867[_0x3eb4c4]=_0x3eb4c4;}for(_0x3eb4c4=-0x1d59+-0xa93*-0x3+-0x260;_0x3eb4c4<-0x3d7*0x2+0xb2c+-0x2*0x13f;_0x3eb4c4++){_0x436c2d=(_0x436c2d+_0x27f867[_0x3eb4c4]+_0x401472['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3eb4c4%_0x401472['\x6c\x65\x6e\x67\x74\x68']))%(-0x44a+0x3*0x57a+-0xb24),_0x82e4e8=_0x27f867[_0x3eb4c4],_0x27f867[_0x3eb4c4]=_0x27f867[_0x436c2d],_0x27f867[_0x436c2d]=_0x82e4e8;}_0x3eb4c4=-0xfa1*0x1+0x6d1+-0x18*-0x5e,_0x436c2d=0x12bd+0x111a+-0x23d7;for(let _0x389894=-0x45f+-0x228d+0x26ec*0x1;_0x389894<_0x5ee04e['\x6c\x65\x6e\x67\x74\x68'];_0x389894++){_0x3eb4c4=(_0x3eb4c4+(0x1*0x2459+0x1*-0xd2d+0x7b9*-0x3))%(-0x1*-0x2006+0x1*-0x1615+-0x8f1),_0x436c2d=(_0x436c2d+_0x27f867[_0x3eb4c4])%(0x1*-0xaee+-0x569+-0x1*-0x1157),_0x82e4e8=_0x27f867[_0x3eb4c4],_0x27f867[_0x3eb4c4]=_0x27f867[_0x436c2d],_0x27f867[_0x436c2d]=_0x82e4e8,_0x3679ec+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5ee04e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x389894)^_0x27f867[(_0x27f867[_0x3eb4c4]+_0x27f867[_0x436c2d])%(0x67*-0xd+0x1*0x2673+-0x2038)]);}return _0x3679ec;};_0x2ef7['\x6a\x72\x79\x4f\x65\x72']=_0x5a84e2,_0x2ef7['\x55\x57\x53\x55\x4d\x78']={},_0x2ef7['\x69\x79\x6b\x63\x43\x6d']=!![];}const _0x2cbd22=_0x5497b7[0x9cf*-0x3+-0x21f6+0x3f63],_0x3eb087=_0x5a8266+_0x2cbd22,_0x28b69b=_0x2ef7['\x55\x57\x53\x55\x4d\x78'][_0x3eb087];if(!_0x28b69b){if(_0x2ef7['\x6d\x78\x45\x67\x6b\x45']===undefined){const _0x47ef09=function(_0x340ade){this['\x42\x59\x43\x47\x72\x45']=_0x340ade,this['\x74\x63\x6b\x4d\x78\x49']=[-0x691+-0x12*-0x1fe+0x1*-0x1d4a,-0xbad+0x1be7+-0x103a,0x3d5*-0x3+-0x1237+0x1db6],this['\x4c\x46\x71\x63\x4f\x66']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x5a\x4b\x4b\x7a\x47\x6d']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x67\x6a\x75\x6f\x4d\x57']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x47ef09['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x51\x53\x42\x4a\x58\x68']=function(){const _0x94f7e4=new RegExp(this['\x5a\x4b\x4b\x7a\x47\x6d']+this['\x67\x6a\x75\x6f\x4d\x57']),_0x12468b=_0x94f7e4['\x74\x65\x73\x74'](this['\x4c\x46\x71\x63\x4f\x66']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x74\x63\x6b\x4d\x78\x49'][0x1*0xc5e+0x1776+-0x23d3*0x1]:--this['\x74\x63\x6b\x4d\x78\x49'][-0x1b59+-0x2693+0x1*0x41ec];return this['\x53\x4f\x51\x53\x49\x54'](_0x12468b);},_0x47ef09['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x53\x4f\x51\x53\x49\x54']=function(_0x3e3129){if(!Boolean(~_0x3e3129))return _0x3e3129;return this['\x71\x6b\x45\x61\x78\x70'](this['\x42\x59\x43\x47\x72\x45']);},_0x47ef09['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x71\x6b\x45\x61\x78\x70']=function(_0xb6b470){for(let _0x30b784=-0x1*-0x21c1+0x179b*-0x1+0x1*-0xa26,_0xb24d0e=this['\x74\x63\x6b\x4d\x78\x49']['\x6c\x65\x6e\x67\x74\x68'];_0x30b784<_0xb24d0e;_0x30b784++){this['\x74\x63\x6b\x4d\x78\x49']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xb24d0e=this['\x74\x63\x6b\x4d\x78\x49']['\x6c\x65\x6e\x67\x74\x68'];}return _0xb6b470(this['\x74\x63\x6b\x4d\x78\x49'][-0xc73*0x1+-0x1383+0x1ff6]);},(''+function(){return-0x2652*0x1+-0x6d3+-0x1*-0x2d25;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1cf6+0x188c+-0x1*-0x46b)&&new _0x47ef09(_0x2ef7)['\x51\x53\x42\x4a\x58\x68'](),_0x2ef7['\x6d\x78\x45\x67\x6b\x45']=!![];}_0x5da701=_0x2ef7['\x6a\x72\x79\x4f\x65\x72'](_0x5da701,_0x316f35),_0x2ef7['\x55\x57\x53\x55\x4d\x78'][_0x3eb087]=_0x5da701;}else _0x5da701=_0x28b69b;return _0x5da701;}function _0x22100c(_0xf3ce74){const _0x2e02d6=_0x3d1b7b,_0x2aac87={'\x4a\x71\x51\x72\x72':_0x2e02d6(0x173,'\x61\x5d\x6a\x45'),'\x5a\x61\x51\x71\x74':function(_0x14b87d,_0x8b8992){return _0x14b87d(_0x8b8992);},'\x44\x6a\x42\x44\x67':_0x2e02d6(0x179,'\x25\x6d\x4a\x75')};return _0x3124af[_0x2e02d6(0x18a,'\x68\x6f\x68\x74')+'\x73\x68'](_0x2aac87['\x4a\x71\x51\x72\x72'])[_0x2e02d6(0x181,'\x62\x29\x30\x66')](_0x2aac87[_0x2e02d6(0x1f3,'\x5b\x30\x31\x68')](String,_0xf3ce74||''))[_0x2e02d6(0x176,'\x50\x31\x73\x73')](_0x2aac87[_0x2e02d6(0x211,'\x62\x65\x4a\x59')])['\x73\x6c\x69\x63\x65'](0xb3*0x31+-0x2061+-0x1e2,-0x2090+-0x5c5+0x2665);}function _0x3a0951(){return _0x526889;}function _0x26552b(_0x2ba2de){const _0x3a3558=_0x3d1b7b,_0x2c318c={'\x71\x41\x61\x4b\x6c':function(_0x5579bc,_0x1a3efb){return _0x5579bc===_0x1a3efb;},'\x57\x46\x79\x66\x75':_0x3a3558(0x122,'\x70\x52\x51\x6d'),'\x41\x44\x6c\x6d\x61':function(_0xc16532){return _0xc16532();},'\x6c\x56\x43\x69\x4c':function(_0x511a85,_0x1eb8f7){return _0x511a85<_0x1eb8f7;},'\x58\x4c\x55\x57\x62':function(_0x3f003d,_0x243193){return _0x3f003d-_0x243193;}};if(_0x2c318c[_0x3a3558(0x132,'\x51\x70\x61\x43')](_0x526889,_0x2c318c[_0x3a3558(0x20f,'\x6a\x58\x49\x35')]))return![];const _0x253625=_0x2ba2de||_0x2c318c[_0x3a3558(0x209,'\x41\x46\x31\x70')](_0x376617),_0x4cd41d=_0x253625[_0x3a3558(0x139,'\x23\x28\x49\x6c')+_0x3a3558(0x127,'\x67\x4f\x4d\x5d')]||-0x21b9+-0x215f+-0x4*-0x10c6;if(_0x2c318c[_0x3a3558(0x226,'\x41\x46\x31\x70')](_0x2c318c[_0x3a3558(0x1fc,'\x56\x47\x4c\x45')](Date[_0x3a3558(0x140,'\x2a\x56\x21\x36')](),_0x4cd41d),_0x11ee79))return![];return!![];}const _0x397575=-0x16b5*-0x1+-0x6b*-0x38+-0x2d55,_0x53311f=[_0x3d1b7b(0x1ec,'\x66\x44\x4a\x4a'),'\x6e\x27\x74\x20','\x6e\x6f\x20',_0x3d1b7b(0x162,'\x23\x54\x5d\x61'),_0x3d1b7b(0xf7,'\x67\x69\x43\x4d'),_0x3d1b7b(0x1cf,'\x23\x28\x49\x6c'),_0x3d1b7b(0x1cd,'\x25\x6d\x4a\x75'),_0x3d1b7b(0x1d0,'\x29\x40\x4f\x30'),'\x64\x69\x64\x6e\x27\x74','\u6ca1','\u672a','\u4e0d','\u5931\u8d25','\u65e0\u6cd5'],_0x39d135=-0x97*0x41+0x2398+0x2d3;function _0x23133d(_0x3f5442,_0xe8222f){const _0x1193a1=_0x3d1b7b,_0x8d337f=Math[_0x1193a1(0x213,'\x25\x6d\x4a\x75')](-0x1*-0x13d2+0x1*-0xe7d+-0x555,_0xe8222f-_0x39d135),_0x5ecdef=_0x3f5442[_0x1193a1(0x201,'\x40\x7a\x50\x6b')](_0x8d337f,_0xe8222f);return _0x53311f[_0x1193a1(0x15e,'\x5b\x30\x31\x68')](_0xfbe727=>_0x5ecdef[_0x1193a1(0x236,'\x36\x26\x32\x5b')](_0xfbe727));}function _0x455eb1(_0x15a929,_0x58ebf1,_0x4511f9,_0x32f9b6){const _0x3b75c2=_0x3d1b7b,_0x4a44c6={'\x6f\x58\x79\x58\x6a':function(_0x3bb115,_0x5c1bf4){return _0x3bb115===_0x5c1bf4;},'\x4b\x47\x5a\x50\x62':function(_0x272fb2,_0x419cde){return _0x272fb2>=_0x419cde;},'\x4f\x6a\x63\x56\x67':function(_0x22168c,_0x2f4af3){return _0x22168c+_0x2f4af3;},'\x61\x74\x66\x6d\x77':function(_0x132557,_0x3748f4){return _0x132557+_0x3748f4;},'\x4b\x6e\x71\x45\x4a':function(_0x446257,_0xb47e4c){return _0x446257!==_0xb47e4c;},'\x72\x4a\x41\x48\x69':_0x3b75c2(0xf9,'\x23\x54\x5d\x61'),'\x41\x49\x58\x51\x42':function(_0xa2f4c3,_0x7abeb3,_0xc03ce5){return _0xa2f4c3(_0x7abeb3,_0xc03ce5);}},_0x2e1d3b=Math[_0x3b75c2(0xfe,'\x67\x69\x43\x4d')](0xd65+-0x23a7+0x1642,_0x4511f9-_0x397575),_0x2b7002=Math[_0x3b75c2(0x191,'\x35\x42\x42\x5b')](_0x58ebf1['\x6c\x65\x6e\x67\x74\x68'],_0x4a44c6['\x4f\x6a\x63\x56\x67'](_0x4a44c6[_0x3b75c2(0x207,'\x25\x6d\x4a\x75')](_0x4511f9,_0x32f9b6),_0x397575));for(const _0x1c2d44 of _0x8c27ae){const _0x12c2f3=_0x1c2d44[_0x3b75c2(0x18e,'\x51\x76\x24\x73')+_0x3b75c2(0x105,'\x79\x79\x7a\x69')]();let _0x1a85f3=_0x39812b(_0x58ebf1,_0x12c2f3,_0x2e1d3b,_0x2b7002);while(_0x4a44c6[_0x3b75c2(0x20e,'\x23\x54\x5d\x61')](_0x1a85f3,-(-0x1*-0x82+0xda3*-0x2+0xb*0x26f))){if(_0x4a44c6[_0x3b75c2(0x14d,'\x61\x5d\x6a\x45')](_0x4a44c6[_0x3b75c2(0x204,'\x2a\x56\x21\x36')],_0x4a44c6[_0x3b75c2(0x1c0,'\x70\x79\x38\x30')])){if(!_0x4a44c6[_0x3b75c2(0x12a,'\x5a\x21\x5e\x35')](_0x23133d,_0x58ebf1,_0x1a85f3))return!![];_0x1a85f3=_0x39812b(_0x58ebf1,_0x12c2f3,_0x4a44c6[_0x3b75c2(0x11b,'\x56\x47\x4c\x45')](_0x1a85f3,0x9b1+0x190+0x48*-0x28),_0x2b7002);}else{const _0x19f3c1=_0x57f802[_0x3b75c2(0x10d,'\x48\x4b\x67\x71')](_0x2ef8f2,_0x5a8266);if(_0x4a44c6[_0x3b75c2(0x231,'\x35\x42\x42\x5b')](_0x19f3c1,-(0x66f*0x5+-0x36*0x2b+-0x2e3*0x8))||_0x4a44c6[_0x3b75c2(0x22b,'\x28\x71\x67\x56')](_0x19f3c1,_0x316f35))return-(0x13b3+0xaca*-0x1+0xc*-0xbe);return _0x19f3c1;}}}return![];}function _0x39812b(_0x3ffce6,_0x2ab085,_0x8314b8,_0x5acb9f){const _0x4556c2=_0x3d1b7b,_0x119ed={};_0x119ed[_0x4556c2(0x141,'\x44\x5b\x25\x49')]=function(_0x28fd68,_0xb49c43){return _0x28fd68===_0xb49c43;},_0x119ed[_0x4556c2(0x119,'\x70\x79\x38\x30')]=function(_0x3afa9e,_0x248d57){return _0x3afa9e>=_0x248d57;};const _0x3604d9=_0x119ed,_0x2bb4a3=_0x3ffce6['\x69\x6e\x64\x65\x78\x4f\x66'](_0x2ab085,_0x8314b8);if(_0x3604d9[_0x4556c2(0x230,'\x40\x7a\x50\x6b')](_0x2bb4a3,-(0x2cf+-0x1*-0xf35+-0x35*0x57))||_0x3604d9['\x4d\x66\x4b\x45\x76'](_0x2bb4a3,_0x5acb9f))return-(0xfe+0x24f+-0x1*0x34c);return _0x2bb4a3;}function _0x1a71c1(_0x5215ef,_0x1b5f7b,_0x4a4ed3){const _0x1d7e1a=_0x3d1b7b,_0x330e26={'\x78\x64\x4a\x62\x5a':function(_0x313781){return _0x313781();},'\x72\x78\x71\x67\x41':function(_0x56846a,_0x401fe0){return _0x56846a+_0x401fe0;},'\x67\x43\x4d\x51\x68':function(_0x5398b8,_0x2d137f,_0x2ea71f,_0x54016a,_0x379da0){return _0x5398b8(_0x2d137f,_0x2ea71f,_0x54016a,_0x379da0);},'\x45\x72\x73\x44\x48':function(_0x206d40,_0x55b7c3){return _0x206d40!==_0x55b7c3;},'\x76\x4a\x4e\x65\x63':function(_0x31ec20,_0x3dc28c,_0xda479e,_0x3dc676,_0x582ac0){return _0x31ec20(_0x3dc28c,_0xda479e,_0x3dc676,_0x582ac0);},'\x6c\x79\x62\x64\x62':function(_0x2e4331,_0x8fc2ff){return _0x2e4331!==_0x8fc2ff;},'\x6a\x42\x79\x45\x6e':function(_0x175aa0,_0x27dfac){return _0x175aa0!==_0x27dfac;},'\x58\x49\x55\x45\x46':_0x1d7e1a(0x12b,'\x25\x35\x4d\x5e'),'\x51\x78\x4b\x42\x64':_0x1d7e1a(0x1fb,'\x68\x42\x44\x79'),'\x55\x4e\x4f\x76\x65':function(_0x51f6f5,_0x443a30){return _0x51f6f5===_0x443a30;},'\x6d\x43\x46\x58\x52':_0x1d7e1a(0x11f,'\x6b\x6d\x6a\x59'),'\x79\x46\x5a\x59\x59':function(_0x3bdc0d,_0x526e74){return _0x3bdc0d-_0x526e74;},'\x54\x65\x69\x51\x79':function(_0x37a7b7,_0xfa5aa8){return _0x37a7b7(_0xfa5aa8);},'\x4e\x4e\x46\x4a\x41':function(_0x3022a9,_0xaa57f6){return _0x3022a9+_0xaa57f6;}};if(!_0x5215ef||!_0x5215ef['\x74\x72\x69\x6d']())return;const _0x2ccb9e=_0x5215ef[_0x1d7e1a(0x13f,'\x67\x4f\x4d\x5d')+'\x61\x73\x65']();for(const [_0x5976ee,_0x31736c]of _0x50297b){if(_0x4a4ed3[_0x1d7e1a(0x10c,'\x37\x70\x55\x4a')](_0x31736c))continue;const _0xde3eb2=new RegExp(_0x5976ee['\x73\x6f\x75\x72\x63\x65'],_0x5976ee[_0x1d7e1a(0x1de,'\x35\x42\x42\x5b')][_0x1d7e1a(0x1c8,'\x4c\x30\x4b\x70')]('\x67')?_0x5976ee[_0x1d7e1a(0x1e4,'\x41\x46\x31\x70')]:_0x330e26[_0x1d7e1a(0x124,'\x28\x71\x67\x56')](_0x5976ee['\x66\x6c\x61\x67\x73'],'\x67'));let _0x3fbad2,_0x2d06de=null;while(_0x330e26[_0x1d7e1a(0x195,'\x68\x42\x44\x79')](_0x3fbad2=_0xde3eb2[_0x1d7e1a(0x192,'\x50\x31\x73\x73')](_0x5215ef),null)){if(_0x330e26[_0x1d7e1a(0x1ed,'\x23\x28\x49\x6c')](_0x330e26[_0x1d7e1a(0x177,'\x68\x6f\x68\x74')],_0x330e26[_0x1d7e1a(0x232,'\x48\x4b\x67\x71')])){if(_0x330e26[_0x1d7e1a(0x237,'\x25\x6d\x4a\x75')](_0x3fbad2[-0xab4+0x6d1*-0x3+0x19*0x13f][_0x1d7e1a(0x1ab,'\x2a\x56\x21\x36')],-0x1f7b+0x2216+-0x1d*0x17)){if(_0x330e26[_0x1d7e1a(0x21b,'\x41\x46\x31\x70')](_0x1d7e1a(0x16f,'\x25\x35\x4d\x5e'),_0x330e26[_0x1d7e1a(0x1a4,'\x33\x64\x52\x6e')]))try{const _0x12452d=qqMXTu['\x78\x64\x4a\x62\x5a'](_0xae7278),_0x7f4e73={};_0x7f4e73[_0x1d7e1a(0x17f,'\x63\x77\x45\x5b')+'\x65']=!![];if(!_0x446206[_0x1d7e1a(0x15c,'\x68\x6f\x68\x74')+'\x6e\x63'](_0x12452d))_0x42b2fa[_0x1d7e1a(0x1f7,'\x33\x64\x52\x6e')+'\x63'](_0x12452d,_0x7f4e73);_0x5c7075[_0x1d7e1a(0x22d,'\x66\x44\x4a\x4a')+_0x1d7e1a(0x21f,'\x51\x70\x61\x43')](qqMXTu[_0x1d7e1a(0x17e,'\x6b\x6d\x6a\x59')](_0x162a6c),qqMXTu['\x72\x78\x71\x67\x41'](_0x5f2182[_0x1d7e1a(0x223,'\x2a\x56\x21\x36')+'\x79'](_0xe7ef73),'\x0a'),_0x1d7e1a(0x23e,'\x68\x42\x44\x79'));}catch(_0x551ffe){}else{_0xde3eb2[_0x1d7e1a(0x159,'\x68\x6f\x68\x74')+'\x78']++;continue;}}if(_0x455eb1(_0x5215ef,_0x2ccb9e,_0x3fbad2[_0x1d7e1a(0x138,'\x44\x6e\x30\x68')],_0x3fbad2[-0x9e3+-0xd02*-0x2+0x1*-0x1021][_0x1d7e1a(0x14c,'\x28\x71\x67\x56')])){_0x2d06de=_0x3fbad2;break;}}else{const _0x26b668=_0x3e3f50[_0x1d7e1a(0x13d,'\x68\x42\x44\x79')](0xc2+-0x839+0xd*0x93,_0x42c13e-_0x534e40),_0x367940=_0x56c5fe[_0x1d7e1a(0x1d6,'\x70\x79\x38\x30')](_0x14bc61[_0x1d7e1a(0x1f1,'\x62\x65\x4a\x59')],qqMXTu[_0x1d7e1a(0x235,'\x57\x5b\x73\x28')](_0x4c64bc,_0x2b8f32)+_0x5dc79d);for(const _0x4caf4c of _0x406f5d){const _0x344c89=_0x4caf4c[_0x1d7e1a(0x111,'\x29\x40\x4f\x30')+_0x1d7e1a(0x16c,'\x67\x4f\x4d\x5d')]();let _0xe6b74d=qqMXTu[_0x1d7e1a(0x21e,'\x23\x28\x49\x6c')](_0x352286,_0x2eb72d,_0x344c89,_0x26b668,_0x367940);while(qqMXTu[_0x1d7e1a(0x189,'\x66\x44\x4a\x4a')](_0xe6b74d,-(0x8*-0x1e7+-0x1380+0x22b9))){if(!_0x360f55(_0x14d2ed,_0xe6b74d))return!![];_0xe6b74d=qqMXTu[_0x1d7e1a(0x1f6,'\x70\x45\x6d\x25')](_0x27ac8b,_0x5b7461,_0x344c89,qqMXTu[_0x1d7e1a(0x126,'\x49\x6d\x50\x76')](_0xe6b74d,0x12da+0x1d*-0x143+0x11be),_0x367940);}}return![];}}if(!_0x2d06de)continue;_0x4a4ed3['\x61\x64\x64'](_0x31736c);const _0x1a5574=Math['\x6d\x61\x78'](-0x21*-0xef+0x126*0x2+0xf*-0x235,_0x330e26[_0x1d7e1a(0x1ae,'\x49\x6d\x50\x76')](_0x2d06de['\x69\x6e\x64\x65\x78'],0x60d+0x10bf+-0x167c)),_0x29e045=_0x5215ef[_0x1d7e1a(0x199,'\x51\x76\x24\x73')](_0x1a5574,_0x330e26['\x72\x78\x71\x67\x41'](_0x1a5574,_0x5af35))['\x72\x65\x70\x6c\x61\x63\x65'](/\s+/g,'\x20')[_0x1d7e1a(0x1b9,'\x4f\x63\x2a\x4f')]();_0x1b5f7b[_0x1d7e1a(0x19c,'\x66\x44\x4a\x4a')]({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x31736c,'\x6d\x61\x74\x63\x68\x65\x64':_0x2d06de[0x4f*0x73+0x48a*-0x3+-0x15df][_0x1d7e1a(0x113,'\x44\x5b\x25\x49')](-0x1a1a+0x1c19+-0x1*0x1ff,-0x203d+0xd4*0x20+0x5f9),'\x73\x6e\x69\x70\x70\x65\x74':_0x29e045,'\x68\x61\x73\x68':_0x330e26[_0x1d7e1a(0x1b3,'\x67\x4f\x4d\x5d')](_0x22100c,_0x330e26[_0x1d7e1a(0x13e,'\x70\x79\x38\x30')](_0x330e26[_0x1d7e1a(0x11a,'\x69\x57\x5e\x59')](_0x31736c,'\x7c'),_0x29e045))});}}function _0xe80b54(_0x17f671){const _0x22c52d=_0x3d1b7b,_0x24a705={'\x43\x6d\x46\x79\x53':function(_0x726d8a){return _0x726d8a();},'\x74\x68\x4a\x76\x74':_0x22c52d(0x206,'\x68\x6f\x68\x74')+_0x22c52d(0x10a,'\x50\x31\x73\x73')+_0x22c52d(0x200,'\x40\x7a\x50\x6b'),'\x5a\x6b\x4f\x7a\x47':function(_0x4fe303,_0x3100aa){return _0x4fe303===_0x3100aa;},'\x50\x6c\x57\x55\x55':_0x22c52d(0x1b1,'\x50\x31\x73\x73'),'\x68\x70\x64\x73\x76':function(_0x2232fd,_0xf403d7){return _0x2232fd>=_0xf403d7;},'\x49\x73\x50\x4f\x66':function(_0x152370,_0x13ceaf,_0x37fbe0,_0x2e7a61){return _0x152370(_0x13ceaf,_0x37fbe0,_0x2e7a61);},'\x55\x51\x6f\x4c\x46':function(_0xb6a7c9,_0x2f0098){return _0xb6a7c9(_0x2f0098);},'\x52\x4a\x4f\x55\x4a':function(_0x280417,_0x11cd07){return _0x280417||_0x11cd07;}},_0x5363ae=Array[_0x22c52d(0x16b,'\x4b\x6c\x77\x5d')](_0x17f671)?_0x17f671:[_0x17f671],_0x63b81b=[],_0x57890b=new Set();for(const _0x4f8a0e of _0x5363ae){if(_0x24a705[_0x22c52d(0x20d,'\x37\x70\x55\x4a')](_0x22c52d(0x19f,'\x28\x71\x67\x56'),_0x24a705[_0x22c52d(0x1a5,'\x66\x44\x4a\x4a')])){if(_0x24a705['\x68\x70\x64\x73\x76'](_0x63b81b['\x6c\x65\x6e\x67\x74\x68'],_0x124a05))break;_0x24a705[_0x22c52d(0x157,'\x5a\x21\x5e\x35')](_0x1a71c1,_0x24a705[_0x22c52d(0x17a,'\x33\x64\x52\x6e')](String,_0x24a705['\x52\x4a\x4f\x55\x4a'](_0x4f8a0e,'')),_0x63b81b,_0x57890b);}else return _0x150fb1[_0x22c52d(0x208,'\x4f\x63\x2a\x4f')](LeeZez[_0x22c52d(0x16d,'\x4b\x66\x44\x73')](_0x55e94d),LeeZez[_0x22c52d(0x170,'\x63\x77\x45\x5b')]);}return _0x63b81b['\x73\x6c\x69\x63\x65'](-0x1a34+-0x1990+0x4*0xcf1,_0x124a05);}function _0x4509f2(_0x3265b2){const _0x2aa348=_0x3d1b7b,_0xfb3a50={};_0xfb3a50[_0x2aa348(0x15b,'\x48\x4b\x67\x71')]=function(_0x45c657,_0x282540){return _0x45c657!==_0x282540;},_0xfb3a50[_0x2aa348(0x14b,'\x6c\x43\x43\x70')]=_0x2aa348(0x1a6,'\x48\x4b\x67\x71'),_0xfb3a50[_0x2aa348(0x1b7,'\x44\x6e\x30\x68')]=function(_0x5893dc,_0x117e64){return _0x5893dc+_0x117e64;},_0xfb3a50[_0x2aa348(0x18d,'\x5b\x30\x31\x68')]=_0x2aa348(0x228,'\x67\x4f\x4d\x5d')+'\x61\x62\x69\x6c\x69\x74\x79\x3a',_0xfb3a50[_0x2aa348(0x172,'\x35\x42\x42\x5b')]=function(_0x10516c,_0x44bcae){return _0x10516c>_0x44bcae;};const _0x285999=_0xfb3a50,_0xcab514=[],_0x343bb8=new Set();for(const _0x300d6b of _0x3265b2){if(_0x285999[_0x2aa348(0x23f,'\x5a\x21\x5e\x35')](_0x285999[_0x2aa348(0x22f,'\x5a\x21\x5e\x35')],_0x285999[_0x2aa348(0x1d2,'\x78\x2a\x43\x69')])){const _0x378426={};return _0x378426[_0x2aa348(0x1d4,'\x67\x4f\x4d\x5d')]={},_0x378426[_0x2aa348(0x1c9,'\x56\x47\x4c\x45')+_0x2aa348(0x1a7,'\x62\x29\x30\x66')]=0x0,_0x378426;}else{const _0x741a71=_0x285999[_0x2aa348(0x21a,'\x69\x57\x5e\x59')](_0x285999[_0x2aa348(0x1d3,'\x25\x6d\x4a\x75')],_0x300d6b[_0x2aa348(0x183,'\x25\x35\x4d\x5e')+'\x74\x79']);!_0x343bb8[_0x2aa348(0x23b,'\x6a\x58\x49\x35')](_0x741a71)&&(_0x343bb8[_0x2aa348(0x12c,'\x29\x40\x4f\x30')](_0x741a71),_0xcab514[_0x2aa348(0x1d8,'\x40\x7a\x50\x6b')](_0x741a71));}}if(_0x285999[_0x2aa348(0x101,'\x70\x45\x6d\x25')](_0xcab514[_0x2aa348(0x19b,'\x56\x47\x4c\x45')],0x227d+0x246a+-0xa21*0x7))_0xcab514[_0x2aa348(0x128,'\x56\x47\x4c\x45')](_0x51ee3c);return _0xcab514;}function _0x422384(_0x4ac745,_0x531027){const _0x131ee4=_0x3d1b7b,_0x578758={'\x68\x41\x4d\x73\x42':function(_0x492ff1,_0x482097){return _0x492ff1(_0x482097);},'\x46\x6b\x7a\x50\x61':function(_0x58a5a2,_0x2467f5){return _0x58a5a2(_0x2467f5);},'\x64\x44\x46\x61\x77':function(_0x1655b7,_0x4c2a88){return _0x1655b7===_0x4c2a88;},'\x4a\x7a\x4b\x44\x5a':'\x73\x68\x61\x64\x6f\x77','\x59\x59\x74\x56\x78':function(_0x4f85bb,_0x194380){return _0x4f85bb+_0x194380;},'\x49\x6f\x70\x64\x55':function(_0x357d94,_0x5a3aa5){return _0x357d94+_0x5a3aa5;},'\x6c\x65\x62\x50\x59':function(_0x2c433a,_0x1ef5be){return _0x2c433a+_0x1ef5be;},'\x57\x65\x4a\x4d\x43':_0x131ee4(0x202,'\x6a\x58\x49\x35')+'\x66\x66\x3a\x73\x68\x61\x64\x6f'+_0x131ee4(0x188,'\x23\x54\x5d\x61')+_0x131ee4(0x110,'\x4b\x6c\x77\x5d')+'\x20','\x74\x59\x77\x55\x71':_0x131ee4(0x146,'\x36\x26\x32\x5b')+_0x131ee4(0x240,'\x44\x6e\x30\x68')+_0x131ee4(0x1aa,'\x78\x2a\x43\x69')+'\x3a\x20','\x52\x68\x47\x6e\x68':function(_0x39aa0c,_0x2a955d){return _0x39aa0c+_0x2a955d;},'\x4f\x7a\x77\x56\x76':function(_0x17cfb1,_0x235d3b){return _0x17cfb1+_0x235d3b;},'\x49\x6d\x69\x76\x49':_0x131ee4(0x1c7,'\x61\x5d\x6a\x45')+'\x66\x66\x5d\x20\x53\x75\x72\x66'+_0x131ee4(0x185,'\x35\x42\x42\x5b'),'\x72\x4f\x62\x6e\x67':_0x131ee4(0x108,'\x57\x5b\x73\x28')+'\x69\x74\x79\x20\x63\x61\x6e\x64'+_0x131ee4(0x175,'\x5d\x73\x21\x65')+_0x131ee4(0x102,'\x68\x6f\x68\x74')+_0x131ee4(0x144,'\x29\x40\x4f\x30'),'\x6a\x62\x6c\x5a\x59':_0x131ee4(0x1f9,'\x79\x79\x7a\x69')+_0x131ee4(0x1a0,'\x51\x76\x24\x73')},_0x1571b9=_0x531027||_0x376617(),_0x3630df={};_0x3630df[_0x131ee4(0x1dd,'\x37\x70\x55\x4a')]=_0x526889,_0x3630df[_0x131ee4(0x1ef,'\x51\x70\x61\x43')+'\x65\x73']=[],_0x3630df[_0x131ee4(0x13b,'\x6a\x58\x49\x35')]=[];if(!_0x578758[_0x131ee4(0x148,'\x62\x65\x4a\x59')](_0x26552b,_0x1571b9))return _0x3630df;const _0x1b509b=_0x578758['\x46\x6b\x7a\x50\x61'](_0xe80b54,_0x4ac745),_0x37ad83=_0x1571b9[_0x131ee4(0x1e0,'\x6a\x58\x49\x35')]||{},_0x86687a=_0x1b509b[_0x131ee4(0x227,'\x41\x46\x31\x70')](_0x1a9ce1=>!_0x37ad83[_0x1a9ce1[_0x131ee4(0x133,'\x44\x6e\x30\x68')]]),_0x261143={};_0x261143['\x6d\x6f\x64\x65']=_0x526889,_0x261143[_0x131ee4(0x136,'\x78\x2a\x43\x69')+'\x65\x73']=[],_0x261143[_0x131ee4(0x13b,'\x6a\x58\x49\x35')]=[];if(_0x86687a[_0x131ee4(0x153,'\x23\x54\x5d\x61')]===0x2360+0xfde+-0x333e)return _0x261143;_0x1571b9[_0x131ee4(0x222,'\x29\x40\x4f\x30')+_0x131ee4(0x22e,'\x79\x79\x7a\x69')]=Date['\x6e\x6f\x77']();for(const _0x57c0a5 of _0x86687a)_0x37ad83[_0x57c0a5[_0x131ee4(0x1f0,'\x69\x57\x5e\x59')]]={'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x57c0a5[_0x131ee4(0x214,'\x63\x77\x45\x5b')+'\x74\x79'],'\x61\x74':new Date()[_0x131ee4(0x215,'\x70\x52\x51\x6d')+_0x131ee4(0x216,'\x65\x53\x33\x70')]()};_0x1571b9[_0x131ee4(0x197,'\x68\x42\x44\x79')]=_0x37ad83,_0x578758[_0x131ee4(0x20c,'\x70\x52\x51\x6d')](_0x56bd35,_0x1571b9);const _0x76a79f=_0x578758[_0x131ee4(0x1e6,'\x4c\x30\x4b\x70')](_0x4509f2,_0x86687a);_0x5e3d97({'\x61\x74':new Date()[_0x131ee4(0x1e3,'\x23\x28\x49\x6c')+_0x131ee4(0x1c3,'\x35\x42\x42\x5b')](),'\x6d\x6f\x64\x65':_0x526889,'\x63\x61\x6e\x64\x69\x64\x61\x74\x65\x73':_0x86687a['\x6d\x61\x70'](_0x44afa1=>({'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79':_0x44afa1[_0x131ee4(0x1db,'\x65\x53\x33\x70')+'\x74\x79'],'\x6d\x61\x74\x63\x68\x65\x64':_0x44afa1[_0x131ee4(0x116,'\x65\x53\x33\x70')],'\x68\x61\x73\x68':_0x44afa1[_0x131ee4(0x15f,'\x63\x77\x45\x5b')]})),'\x73\x69\x67\x6e\x61\x6c\x73':_0x76a79f});if(_0x578758[_0x131ee4(0x149,'\x37\x70\x55\x4a')](_0x526889,_0x578758[_0x131ee4(0x19a,'\x62\x65\x4a\x59')])){console[_0x131ee4(0x16a,'\x23\x28\x49\x6c')](_0x578758[_0x131ee4(0x18f,'\x68\x6f\x68\x74')](_0x578758['\x59\x59\x74\x56\x78'](_0x578758[_0x131ee4(0x18c,'\x44\x5b\x25\x49')](_0x578758[_0x131ee4(0x23c,'\x62\x65\x4a\x59')](_0x578758['\x57\x65\x4a\x4d\x43'],_0x86687a[_0x131ee4(0x107,'\x4f\x63\x2a\x4f')]),_0x578758[_0x131ee4(0x1bc,'\x4c\x30\x4b\x70')]),_0x86687a[_0x131ee4(0x1eb,'\x44\x5b\x25\x49')](_0x57fbde=>_0x57fbde[_0x131ee4(0x1a3,'\x5a\x21\x5e\x35')+'\x74\x79'])[_0x131ee4(0x21d,'\x4c\x30\x4b\x70')]('\x2c\x20')),_0x131ee4(0x1c4,'\x68\x6f\x68\x74')+_0x131ee4(0x219,'\x50\x31\x73\x73')+_0x131ee4(0x1d1,'\x5a\x21\x5e\x35')+_0x131ee4(0x193,'\x5d\x73\x21\x65')+_0x131ee4(0x142,'\x48\x4b\x67\x71')+_0x131ee4(0x1ac,'\x6a\x58\x49\x35')+_0x131ee4(0x109,'\x67\x69\x43\x4d')+_0x131ee4(0x1f2,'\x37\x70\x55\x4a')+_0x131ee4(0x106,'\x6a\x24\x4f\x78')));const _0x39c838={};return _0x39c838[_0x131ee4(0x205,'\x6a\x58\x49\x35')]=_0x526889,_0x39c838[_0x131ee4(0x1dc,'\x68\x42\x44\x79')+'\x65\x73']=_0x86687a,_0x39c838[_0x131ee4(0x22a,'\x56\x47\x4c\x45')]=[],_0x39c838;}console['\x6c\x6f\x67'](_0x578758[_0x131ee4(0xff,'\x25\x6d\x4a\x75')](_0x578758[_0x131ee4(0x1ba,'\x57\x5b\x73\x28')](_0x578758[_0x131ee4(0x12e,'\x2a\x56\x21\x36')](_0x578758['\x49\x6f\x70\x64\x55'](_0x578758[_0x131ee4(0x1e9,'\x78\x2a\x43\x69')](_0x578758[_0x131ee4(0x1c2,'\x41\x46\x31\x70')],_0x86687a[_0x131ee4(0x1b4,'\x68\x6f\x68\x74')]),_0x578758[_0x131ee4(0x16e,'\x36\x26\x32\x5b')]),_0x76a79f[_0x131ee4(0x1b4,'\x68\x6f\x68\x74')]),_0x578758[_0x131ee4(0x1da,'\x48\x4b\x67\x71')]),_0x76a79f[_0x131ee4(0x121,'\x5a\x21\x5e\x35')]('\x2c\x20')));const _0x51ceaf={};return _0x51ceaf[_0x131ee4(0x21c,'\x5b\x30\x31\x68')]=_0x526889,_0x51ceaf[_0x131ee4(0xfd,'\x4b\x66\x44\x73')+'\x65\x73']=_0x86687a,_0x51ceaf[_0x131ee4(0x1fe,'\x28\x71\x67\x56')]=_0x76a79f,_0x51ceaf;}function _0x21f1(){const _0x437650=['\x79\x43\x6f\x50\x57\x35\x47\x32\x61\x53\x6b\x58\x69\x57','\x57\x51\x50\x33\x57\x37\x4f\x4b\x73\x74\x6a\x47\x57\x51\x53','\x57\x50\x70\x63\x56\x74\x53','\x57\x52\x6a\x6e\x57\x4f\x5a\x63\x4b\x38\x6f\x7a','\x57\x52\x48\x35\x57\x51\x74\x63\x4e\x62\x58\x42\x57\x34\x50\x4d','\x57\x34\x64\x64\x4f\x6d\x6b\x46','\x45\x6d\x6b\x68\x57\x52\x57\x65\x71\x57','\x57\x35\x54\x38\x57\x50\x33\x63\x51\x48\x74\x63\x52\x38\x6b\x76\x6c\x71','\x57\x4f\x39\x49\x57\x52\x42\x63\x4d\x53\x6f\x75','\x57\x36\x4b\x58\x57\x37\x44\x56','\x64\x4d\x33\x63\x55\x67\x54\x77\x57\x36\x4b\x6b\x63\x71','\x6e\x32\x74\x63\x48\x38\x6f\x45\x57\x52\x57\x62\x76\x38\x6f\x56','\x57\x51\x33\x64\x4f\x5a\x72\x4c\x67\x48\x64\x64\x53\x4c\x2f\x63\x4a\x59\x54\x64\x64\x38\x6f\x43\x42\x71','\x6b\x6d\x6f\x6b\x67\x58\x54\x4a','\x61\x43\x6f\x35\x57\x50\x46\x63\x4a\x43\x6b\x4e','\x57\x51\x5a\x64\x48\x4c\x56\x63\x54\x77\x4e\x64\x4c\x4c\x70\x64\x50\x71','\x79\x74\x4b\x6d\x65\x38\x6b\x35','\x6e\x5a\x6c\x63\x53\x74\x7a\x6c\x45\x71','\x72\x53\x6b\x68\x76\x47\x66\x75','\x67\x67\x46\x63\x54\x77\x66\x45\x57\x37\x35\x30\x62\x57','\x42\x38\x6b\x4a\x57\x36\x52\x63\x4b\x4d\x4b\x67\x57\x35\x53\x5a\x42\x6d\x6f\x79\x57\x37\x61\x2b\x57\x34\x61','\x57\x4f\x37\x64\x48\x53\x6f\x56\x57\x35\x30','\x6f\x6d\x6f\x35\x57\x52\x46\x64\x49\x64\x4c\x6b\x57\x50\x69\x37','\x6d\x6d\x6b\x4a\x57\x50\x53\x63\x57\x36\x70\x63\x48\x47\x54\x61','\x57\x35\x6c\x63\x4d\x6d\x6f\x47\x71\x53\x6b\x68\x57\x34\x57','\x57\x51\x35\x68\x57\x36\x42\x64\x56\x53\x6b\x34\x57\x36\x62\x67\x63\x61','\x57\x4f\x33\x63\x51\x64\x66\x74\x57\x36\x56\x64\x53\x6d\x6f\x2b\x68\x57','\x64\x6d\x6f\x77\x57\x50\x5a\x64\x54\x48\x76\x59\x57\x51\x43\x4c','\x78\x38\x6b\x36\x76\x43\x6f\x36\x57\x52\x61','\x57\x51\x56\x64\x48\x4c\x56\x63\x50\x47','\x57\x51\x58\x41\x57\x34\x68\x63\x52\x6d\x6f\x44\x57\x4f\x6c\x64\x51\x38\x6f\x6d','\x57\x37\x35\x72\x57\x51\x64\x63\x47\x64\x56\x63\x48\x6d\x6b\x69\x66\x71','\x57\x34\x66\x51\x57\x50\x4a\x63\x4e\x48\x75','\x57\x51\x76\x64\x57\x35\x56\x63\x51\x38\x6f\x47\x57\x50\x2f\x64\x4e\x6d\x6f\x71','\x46\x6d\x6b\x53\x67\x4c\x68\x63\x4c\x47','\x6b\x53\x6f\x30\x57\x52\x70\x64\x47\x71','\x57\x51\x46\x64\x49\x65\x42\x63\x51\x57','\x57\x36\x48\x75\x57\x35\x5a\x63\x4a\x53\x6b\x68\x57\x50\x48\x4f','\x74\x6d\x6f\x2f\x41\x4b\x2f\x64\x48\x74\x75\x34\x57\x50\x42\x64\x52\x65\x4f\x63\x57\x4f\x42\x63\x4f\x47','\x57\x35\x64\x63\x4d\x6d\x6f\x34\x71\x6d\x6b\x62\x57\x4f\x71','\x57\x35\x70\x64\x4f\x4c\x66\x4d\x64\x53\x6f\x50\x57\x34\x4b','\x57\x34\x46\x64\x4f\x4b\x31\x2b\x65\x38\x6f\x31\x57\x35\x54\x6a','\x57\x34\x4a\x64\x51\x53\x6b\x62\x71\x43\x6b\x6c\x65\x64\x57\x31','\x45\x53\x6b\x42\x57\x50\x61','\x35\x42\x45\x4b\x36\x41\x4d\x66\x36\x6b\x2b\x65','\x57\x4f\x56\x63\x4c\x38\x6f\x56\x57\x35\x34\x65\x57\x37\x62\x46\x65\x4b\x50\x49\x79\x74\x57\x79','\x57\x34\x33\x64\x4c\x6d\x6b\x59\x57\x4f\x79','\x57\x37\x43\x49\x67\x57','\x45\x6d\x6f\x4c\x45\x43\x6f\x35\x57\x34\x76\x4f\x57\x37\x79','\x57\x51\x31\x4c\x57\x4f\x30','\x46\x53\x6b\x72\x57\x35\x64\x64\x47\x6d\x6f\x4d','\x7a\x75\x4a\x63\x48\x6d\x6f\x61\x57\x52\x4f','\x6c\x74\x61\x37\x72\x53\x6f\x6b','\x57\x52\x56\x64\x47\x78\x2f\x63\x54\x78\x47','\x57\x4f\x33\x64\x4b\x38\x6f\x62\x57\x35\x2f\x63\x48\x57','\x57\x4f\x31\x75\x57\x34\x5a\x64\x54\x38\x6b\x69','\x77\x53\x6b\x33\x74\x4d\x53\x6c\x71\x57','\x57\x34\x37\x64\x4c\x6d\x6b\x59\x57\x50\x39\x78\x57\x50\x79\x46\x6f\x61','\x66\x49\x30\x72\x57\x51\x6a\x5a\x57\x51\x4b\x6a\x57\x50\x69','\x78\x53\x6f\x48\x57\x36\x34\x6d\x45\x6d\x6f\x43','\x57\x50\x48\x59\x57\x36\x46\x63\x4e\x43\x6f\x73','\x76\x6d\x6b\x6f\x57\x36\x4e\x64\x4d\x43\x6f\x49\x61\x53\x6b\x6e\x57\x37\x61\x71\x77\x53\x6b\x49','\x57\x37\x74\x63\x53\x33\x53','\x57\x4f\x50\x47\x57\x34\x42\x63\x4c\x6d\x6b\x51','\x46\x38\x6b\x39\x57\x4f\x71\x76\x74\x47\x70\x63\x56\x61','\x6b\x38\x6b\x5a\x6a\x75\x76\x6f\x57\x51\x5a\x63\x53\x6d\x6b\x4d','\x42\x43\x6b\x55\x57\x36\x37\x63\x4b\x32\x65\x6c\x57\x50\x69\x74\x73\x43\x6f\x7a\x57\x35\x43\x34','\x65\x4d\x42\x63\x4b\x77\x6a\x50','\x57\x52\x33\x64\x4a\x66\x42\x63\x54\x4e\x37\x64\x4c\x30\x37\x64\x48\x57','\x57\x35\x43\x74\x57\x34\x54\x44\x6b\x6d\x6b\x65\x57\x52\x52\x64\x47\x71','\x45\x38\x6b\x65\x57\x4f\x79\x49\x57\x50\x46\x63\x50\x61','\x74\x6d\x6b\x2b\x57\x51\x4f\x68\x57\x50\x61','\x61\x71\x6d\x51\x43\x43\x6f\x6b\x67\x66\x70\x64\x53\x57','\x63\x38\x6f\x68\x57\x36\x7a\x32','\x57\x52\x39\x72\x57\x36\x68\x64\x54\x53\x6f\x58','\x57\x4f\x47\x38\x57\x50\x57\x46\x57\x37\x71\x2f\x6c\x72\x43','\x72\x43\x6b\x77\x57\x52\x30\x39\x43\x4a\x42\x63\x47\x57','\x57\x34\x4e\x63\x4f\x6d\x6b\x55\x43\x53\x6b\x43\x57\x35\x68\x64\x56\x6d\x6f\x43','\x57\x35\x69\x7a\x57\x4f\x79\x48\x6f\x61','\x57\x51\x6e\x6a\x57\x35\x46\x63\x55\x43\x6f\x47\x57\x4f\x4e\x64\x48\x38\x6f\x69','\x74\x38\x6b\x2b\x71\x59\x50\x42','\x41\x43\x6b\x62\x57\x52\x30\x32\x76\x71','\x6f\x6d\x6f\x44\x57\x50\x52\x64\x54\x63\x6d','\x57\x4f\x52\x64\x49\x6d\x6f\x78\x57\x35\x52\x63\x50\x48\x42\x64\x47\x38\x6b\x51','\x57\x50\x4c\x49\x57\x34\x42\x63\x4a\x53\x6f\x53','\x57\x36\x5a\x63\x54\x32\x61\x33\x74\x30\x37\x63\x50\x65\x65','\x57\x52\x6e\x42\x57\x36\x4f','\x78\x38\x6f\x57\x57\x36\x57\x6b','\x64\x63\x57\x65\x57\x37\x7a\x74\x57\x35\x43\x31\x57\x37\x43','\x46\x38\x6f\x52\x57\x35\x53\x58\x65\x43\x6b\x6f\x6b\x43\x6f\x53','\x57\x50\x6c\x63\x50\x73\x66\x45\x57\x36\x43','\x57\x37\x47\x4b\x57\x52\x4e\x63\x50\x57\x50\x71\x57\x37\x39\x31','\x57\x4f\x33\x63\x55\x73\x7a\x75','\x57\x36\x66\x43\x57\x50\x5a\x63\x4a\x64\x4e\x63\x47\x57','\x57\x4f\x33\x64\x49\x38\x6f\x59\x57\x35\x42\x63\x54\x61','\x63\x53\x6f\x58\x68\x73\x58\x37','\x65\x43\x6b\x53\x6d\x58\x4a\x63\x47\x4d\x38','\x57\x36\x43\x45\x57\x4f\x79\x6e','\x57\x35\x74\x63\x4b\x53\x6f\x4e\x73\x57','\x7a\x43\x6b\x6c\x6c\x75\x64\x63\x4c\x57','\x6f\x71\x42\x63\x49\x63\x4c\x59','\x57\x4f\x33\x63\x4a\x53\x6b\x48\x57\x50\x75','\x72\x6d\x6b\x63\x64\x64\x33\x63\x4e\x65\x58\x31','\x57\x37\x69\x57\x57\x37\x44\x58\x6c\x47','\x44\x43\x6b\x4f\x44\x43\x6f\x75\x57\x52\x72\x65\x6e\x61\x79','\x57\x52\x6a\x59\x57\x36\x2f\x63\x47\x6d\x6b\x2b','\x57\x34\x43\x68\x57\x51\x69\x57\x6a\x71','\x57\x35\x35\x4a\x57\x50\x37\x63\x4e\x5a\x69','\x41\x6d\x6b\x73\x57\x52\x30\x33\x57\x50\x61','\x6a\x4a\x6c\x64\x4b\x43\x6b\x78\x57\x36\x4c\x41\x64\x43\x6b\x57\x65\x5a\x2f\x63\x51\x65\x71\x35\x57\x50\x47','\x57\x51\x5a\x64\x52\x53\x6f\x58\x57\x35\x5a\x63\x4c\x47','\x57\x35\x4b\x45\x57\x35\x35\x62\x6f\x6d\x6f\x6f\x57\x36\x74\x63\x49\x71','\x57\x34\x6c\x64\x51\x53\x6b\x67\x76\x43\x6b\x78\x64\x71','\x74\x43\x6f\x74\x57\x37\x65\x72\x6a\x43\x6b\x42\x64\x38\x6f\x68','\x6a\x38\x6b\x4a\x57\x51\x75\x67\x57\x37\x33\x63\x49\x48\x66\x63','\x57\x52\x4a\x63\x55\x31\x65\x49\x79\x57','\x78\x64\x52\x64\x52\x5a\x79\x6b\x57\x51\x6d\x78\x6b\x75\x33\x64\x4d\x65\x47\x57\x71\x61','\x57\x37\x54\x79\x57\x51\x70\x63\x4e\x64\x70\x63\x47\x43\x6b\x56\x68\x47','\x77\x6d\x6f\x7a\x57\x35\x34\x72\x72\x47','\x71\x43\x6f\x35\x57\x35\x65\x37','\x57\x50\x48\x5a\x57\x4f\x68\x63\x4f\x48\x69','\x57\x51\x58\x45\x57\x35\x5a\x63\x56\x38\x6f\x47\x57\x4f\x71','\x70\x71\x6d\x34\x57\x50\x6a\x4c','\x6a\x43\x6b\x43\x6c\x71\x78\x63\x4a\x57','\x57\x52\x44\x33\x76\x4c\x4b\x42','\x78\x5a\x74\x64\x51\x4a\x65\x6c\x57\x51\x38\x46\x6d\x33\x74\x64\x54\x76\x79\x31\x78\x71','\x6a\x59\x64\x64\x4e\x38\x6f\x32','\x6b\x67\x56\x64\x4a\x53\x6b\x67\x57\x50\x38','\x66\x38\x6f\x79\x57\x52\x64\x63\x49\x6d\x6b\x64\x62\x6d\x6b\x66\x57\x34\x53','\x57\x36\x47\x67\x68\x4d\x43\x47','\x35\x42\x77\x50\x35\x79\x36\x43\x35\x42\x4d\x2f','\x69\x6d\x6b\x45\x57\x50\x65\x53\x57\x4f\x30','\x74\x4d\x4e\x63\x53\x38\x6f\x38\x57\x4f\x43','\x57\x52\x6a\x2f\x57\x52\x5a\x63\x56\x6d\x6f\x58','\x79\x43\x6b\x67\x57\x4f\x4b\x4c\x57\x4f\x2f\x63\x52\x53\x6f\x33','\x63\x6d\x6f\x59\x57\x37\x78\x64\x52\x38\x6b\x55','\x57\x52\x44\x43\x57\x36\x6d','\x57\x36\x61\x74\x57\x34\x68\x63\x53\x43\x6f\x5a\x57\x4f\x6c\x64\x52\x53\x6f\x66','\x36\x41\x51\x59\x36\x6b\x59\x6e\x36\x79\x6f\x36\x36\x6c\x59\x70','\x69\x6d\x6b\x35\x57\x50\x75\x72\x57\x36\x52\x63\x48\x48\x54\x61','\x43\x53\x6b\x43\x71\x64\x44\x69\x6a\x53\x6b\x34\x57\x52\x38','\x57\x37\x75\x58\x63\x4c\x34\x4b\x74\x76\x42\x64\x52\x47','\x65\x43\x6b\x4f\x6c\x47\x56\x63\x51\x78\x72\x49\x57\x52\x6d','\x6a\x53\x6b\x34\x57\x50\x4b\x46\x57\x36\x37\x63\x4c\x58\x7a\x6b','\x63\x43\x6b\x37\x6a\x63\x5a\x63\x4d\x67\x35\x51\x57\x52\x57','\x64\x6d\x6b\x2f\x57\x34\x79\x46\x75\x53\x6f\x62\x73\x38\x6f\x77','\x57\x36\x56\x63\x54\x33\x61\x59\x63\x76\x30','\x57\x52\x58\x51\x57\x37\x79\x35','\x57\x36\x34\x4a\x68\x77\x79\x67\x62\x71','\x57\x36\x4b\x53\x57\x37\x35\x4f\x69\x57','\x46\x6d\x6b\x53\x7a\x53\x6f\x62\x57\x52\x6e\x6a\x79\x30\x38','\x57\x37\x57\x32\x57\x37\x6e\x70\x70\x47','\x57\x37\x33\x63\x4b\x65\x43\x6d\x78\x71','\x57\x52\x39\x5a\x57\x4f\x33\x63\x4e\x71','\x57\x52\x56\x64\x47\x66\x52\x63\x52\x71','\x57\x51\x31\x43\x57\x50\x6d','\x63\x38\x6b\x52\x6f\x71\x2f\x63\x4f\x47','\x74\x53\x6b\x35\x57\x50\x70\x63\x4f\x61','\x69\x53\x6f\x42\x57\x37\x2f\x64\x56\x6d\x6b\x5a','\x57\x36\x44\x42\x57\x51\x70\x63\x52\x57\x34','\x57\x50\x53\x36\x42\x32\x33\x64\x51\x4a\x68\x64\x4d\x30\x71','\x57\x50\x33\x63\x56\x73\x31\x45\x57\x36\x5a\x64\x53\x38\x6f\x32\x64\x71','\x63\x6d\x6f\x73\x57\x52\x78\x63\x49\x71','\x57\x52\x48\x45\x57\x36\x78\x64\x54\x43\x6b\x49','\x57\x35\x61\x6c\x67\x76\x69\x7a','\x79\x43\x6f\x4c\x57\x35\x4f\x32','\x78\x72\x71\x59\x67\x53\x6b\x2f','\x62\x6d\x6f\x6e\x57\x52\x4a\x64\x47\x43\x6b\x5a\x65\x43\x6b\x69\x57\x35\x6d','\x57\x36\x38\x49\x6e\x76\x43\x4c\x6d\x33\x50\x35','\x6a\x38\x6f\x5a\x57\x37\x33\x64\x56\x53\x6b\x75','\x73\x38\x6b\x55\x57\x35\x37\x64\x56\x43\x6f\x33','\x57\x35\x4f\x30\x65\x32\x69\x57','\x57\x52\x4c\x59\x76\x4d\x65','\x78\x38\x6b\x72\x41\x38\x6f\x61\x57\x52\x65','\x57\x37\x38\x61\x57\x34\x48\x4a\x6b\x57','\x57\x34\x4e\x64\x4b\x38\x6b\x35\x57\x4f\x44\x42\x57\x52\x79\x64\x44\x61','\x74\x43\x6b\x70\x57\x52\x30','\x57\x37\x4b\x65\x57\x4f\x66\x66','\x57\x37\x65\x70\x62\x75\x65\x65','\x57\x4f\x75\x44\x57\x50\x75\x34\x57\x36\x43','\x57\x37\x46\x63\x4c\x74\x4e\x64\x53\x6d\x6b\x69\x6b\x43\x6b\x69\x57\x37\x61','\x57\x51\x44\x55\x57\x36\x61\x2f','\x6c\x6d\x6f\x55\x6f\x61\x39\x76\x57\x52\x71','\x63\x38\x6f\x42\x57\x52\x37\x63\x4e\x53\x6b\x5a\x66\x43\x6f\x65\x57\x34\x53','\x61\x38\x6f\x36\x57\x4f\x2f\x64\x4c\x73\x71','\x63\x75\x42\x63\x55\x67\x76\x4e','\x57\x36\x43\x4e\x57\x52\x54\x35\x66\x4d\x47\x79\x57\x37\x53','\x57\x50\x56\x64\x55\x31\x38\x51\x71\x61','\x57\x52\x6a\x41\x57\x34\x33\x63\x53\x43\x6b\x45\x57\x51\x76\x69\x57\x36\x30','\x57\x52\x50\x71\x57\x51\x4e\x64\x56\x43\x6b\x48\x57\x37\x7a\x43\x64\x61','\x57\x4f\x74\x64\x56\x4b\x50\x51\x63\x43\x6f\x4d\x57\x34\x69\x63','\x61\x78\x46\x64\x50\x53\x6b\x4a\x57\x50\x31\x4d\x43\x43\x6b\x50','\x57\x52\x68\x63\x53\x48\x76\x64\x57\x34\x53','\x6a\x43\x6b\x66\x63\x63\x4a\x63\x4c\x61','\x44\x4d\x78\x63\x56\x38\x6f\x70\x57\x50\x6d','\x6b\x64\x37\x63\x55\x64\x39\x45\x46\x43\x6f\x63','\x45\x6d\x6f\x57\x78\x47','\x65\x6d\x6b\x4d\x57\x50\x70\x63\x50\x38\x6f\x59','\x74\x43\x6b\x47\x57\x4f\x4e\x63\x51\x38\x6f\x35','\x73\x43\x6f\x64\x57\x35\x61\x32\x66\x43\x6b\x6f\x70\x53\x6f\x52','\x67\x43\x6b\x4c\x57\x50\x57\x71\x41\x47\x4e\x63\x49\x71','\x57\x35\x5a\x64\x48\x43\x6b\x50\x45\x53\x6b\x6b','\x46\x38\x6f\x56\x57\x35\x53\x39','\x57\x51\x6e\x75\x57\x35\x5a\x63\x52\x53\x6f\x6c\x57\x50\x2f\x64\x4f\x43\x6f\x61','\x57\x37\x33\x63\x4f\x4d\x75\x58\x77\x71','\x6f\x74\x33\x64\x4e\x38\x6f\x31','\x61\x6d\x6f\x42\x57\x37\x64\x64\x54\x6d\x6b\x67','\x57\x36\x43\x36\x57\x36\x71\x63\x6f\x6d\x6b\x33\x71\x47','\x57\x50\x75\x57\x45\x32\x78\x64\x55\x47\x56\x64\x4a\x4b\x6d','\x57\x35\x68\x64\x50\x38\x6b\x77\x57\x50\x48\x57','\x70\x38\x6f\x77\x57\x50\x37\x63\x4c\x53\x6b\x78','\x57\x37\x78\x63\x4b\x38\x6f\x2f\x79\x6d\x6b\x35','\x72\x43\x6f\x67\x57\x34\x79\x2b\x66\x47','\x57\x50\x39\x4b\x41\x4d\x43\x5a','\x62\x6d\x6f\x48\x66\x63\x58\x67','\x57\x35\x52\x64\x4c\x6d\x6b\x49\x57\x50\x54\x67\x57\x51\x4f','\x57\x37\x68\x63\x54\x33\x53','\x57\x51\x5a\x64\x49\x65\x78\x63\x4f\x4d\x37\x64\x4a\x75\x56\x64\x4d\x61','\x57\x34\x33\x64\x49\x43\x6b\x73\x57\x52\x48\x39\x57\x50\x79\x46\x6b\x57','\x57\x50\x65\x31\x45\x61','\x57\x51\x37\x64\x54\x53\x6f\x77\x57\x35\x74\x63\x51\x61','\x57\x50\x56\x64\x54\x6d\x6f\x49\x57\x35\x56\x63\x53\x47','\x73\x43\x6b\x4f\x57\x34\x43\x4d\x78\x38\x6b\x69\x44\x38\x6f\x2b','\x57\x51\x54\x4c\x57\x37\x4f\x62\x78\x61','\x66\x6d\x6f\x72\x57\x35\x70\x64\x52\x38\x6b\x63','\x6e\x6d\x6f\x30\x57\x52\x52\x64\x47\x71','\x57\x37\x79\x57\x61\x66\x57','\x57\x37\x57\x6f\x6d\x76\x75\x63','\x57\x37\x4a\x63\x4b\x71\x74\x64\x52\x43\x6b\x70\x6c\x47','\x65\x43\x6f\x44\x57\x37\x76\x4e\x6d\x4a\x64\x63\x4d\x43\x6b\x50\x57\x34\x58\x72\x67\x47','\x75\x6d\x6f\x6e\x57\x35\x61\x47\x6c\x57','\x57\x36\x57\x2b\x57\x36\x6d\x37\x63\x6d\x6b\x47\x73\x43\x6b\x7a','\x57\x35\x33\x64\x55\x38\x6b\x41\x77\x38\x6b\x6e\x61\x4e\x47\x33','\x57\x50\x34\x6f\x57\x35\x6a\x66','\x62\x4d\x6c\x64\x4e\x61','\x6c\x43\x6f\x6a\x57\x35\x2f\x64\x53\x6d\x6b\x52','\x6a\x38\x6f\x32\x57\x37\x64\x64\x52\x43\x6b\x63\x57\x4f\x34','\x57\x51\x39\x35\x57\x4f\x42\x63\x48\x74\x72\x44\x57\x35\x4c\x76','\x57\x51\x58\x66\x57\x35\x56\x63\x53\x43\x6b\x63\x57\x50\x66\x79\x57\x36\x75','\x64\x53\x6b\x47\x6f\x48\x68\x63\x4c\x32\x54\x2f','\x65\x62\x64\x63\x48\x71\x66\x44','\x57\x51\x48\x78\x57\x37\x42\x64\x55\x38\x6b\x33\x57\x37\x50\x6c\x63\x71','\x57\x37\x79\x42\x57\x4f\x75\x61\x68\x4c\x76\x31\x57\x35\x43','\x57\x34\x6c\x64\x51\x33\x58\x35\x66\x61','\x77\x53\x6b\x66\x73\x43\x6f\x70\x57\x52\x75','\x7a\x53\x6b\x4c\x57\x50\x68\x63\x4e\x53\x6f\x46','\x57\x52\x66\x51\x57\x37\x33\x64\x49\x53\x6b\x37','\x57\x35\x58\x62\x57\x4f\x74\x63\x54\x5a\x6d','\x77\x6d\x6f\x65\x73\x53\x6f\x39\x57\x36\x43','\x70\x74\x68\x63\x47\x64\x31\x71\x44\x53\x6b\x46\x41\x47','\x66\x77\x4e\x64\x49\x6d\x6b\x33\x57\x51\x47','\x46\x4d\x4e\x63\x48\x43\x6f\x63\x57\x51\x47\x68\x77\x38\x6f\x57','\x57\x34\x4e\x63\x4d\x65\x57\x51\x73\x57','\x57\x34\x2f\x64\x56\x38\x6b\x79\x78\x53\x6b\x41','\x65\x62\x4f\x7a\x57\x52\x66\x34\x57\x36\x61\x77\x57\x34\x47','\x57\x50\x56\x64\x49\x43\x6f\x39\x57\x35\x52\x63\x4f\x58\x64\x64\x4c\x61','\x45\x53\x6f\x48\x57\x34\x57','\x6c\x6d\x6f\x55\x6e\x64\x48\x34','\x57\x52\x72\x68\x57\x4f\x4a\x63\x4b\x71','\x57\x4f\x56\x63\x51\x63\x75\x63','\x77\x53\x6b\x41\x75\x53\x6f\x45\x57\x50\x71','\x57\x52\x50\x50\x72\x49\x38\x7a\x41\x53\x6f\x4a\x76\x57','\x57\x35\x52\x64\x4c\x67\x71\x7a\x73\x68\x68\x63\x51\x57','\x57\x4f\x30\x59\x57\x50\x53\x66','\x66\x38\x6f\x79\x57\x52\x64\x63\x49\x6d\x6b\x77\x67\x43\x6b\x69\x57\x35\x4f','\x57\x37\x56\x63\x53\x43\x6f\x39\x71\x38\x6b\x33','\x57\x52\x53\x63\x57\x52\x38\x69\x57\x35\x69','\x57\x34\x65\x52\x6b\x32\x75\x50','\x57\x52\x39\x54\x57\x35\x34\x68\x43\x71','\x78\x53\x6b\x44\x57\x37\x4a\x64\x4e\x43\x6f\x43\x63\x63\x52\x63\x4f\x71','\x57\x4f\x79\x59\x57\x4f\x4f','\x57\x34\x37\x63\x56\x4b\x71\x59\x72\x47','\x57\x34\x6c\x64\x52\x53\x6b\x42\x72\x53\x6b\x38\x66\x4e\x38\x34','\x57\x52\x37\x64\x4c\x31\x4b\x51\x45\x47','\x57\x37\x53\x42\x57\x35\x56\x63\x54\x53\x6f\x2b\x57\x4f\x4e\x64\x52\x6d\x6f\x44','\x41\x77\x42\x64\x51\x32\x71\x6a\x6a\x6d\x6b\x66\x73\x38\x6b\x79\x6c\x67\x70\x64\x4e\x43\x6f\x67','\x57\x52\x4f\x46\x46\x77\x78\x64\x4e\x57','\x57\x34\x78\x64\x56\x4b\x79','\x70\x6d\x6f\x53\x57\x50\x43\x72\x57\x37\x56\x64\x49\x4c\x65','\x70\x5a\x46\x64\x4d\x6d\x6f\x38\x57\x50\x42\x63\x4f\x47','\x72\x33\x6c\x64\x4d\x6d\x6b\x47\x57\x4f\x48\x4c\x42\x6d\x6b\x47','\x57\x51\x75\x73\x57\x52\x61\x4c\x57\x36\x34\x69\x46\x48\x53','\x78\x6d\x6f\x55\x57\x35\x79\x41\x46\x38\x6f\x6a\x41\x53\x6f\x31','\x36\x79\x67\x57\x36\x6c\x2b\x66\x35\x6c\x4d\x44','\x64\x43\x6f\x43\x57\x51\x69','\x57\x36\x72\x78\x57\x51\x56\x63\x4b\x63\x2f\x63\x52\x38\x6b\x39','\x57\x51\x6e\x38\x74\x68\x57\x46\x42\x57','\x79\x53\x6f\x5a\x77\x43\x6f\x35\x57\x35\x72\x48','\x6d\x43\x6f\x4c\x74\x43\x6f\x35\x57\x35\x66\x4f\x57\x36\x58\x4e','\x57\x37\x71\x57\x57\x35\x57\x47\x69\x6d\x6b\x32\x76\x43\x6b\x5a','\x57\x52\x4c\x65\x57\x4f\x75\x65\x62\x66\x4c\x61','\x75\x38\x6b\x63\x57\x51\x71\x58\x7a\x71','\x41\x38\x6f\x41\x74\x53\x6f\x50\x57\x37\x61','\x63\x38\x6f\x36\x57\x35\x68\x64\x55\x43\x6b\x4b\x57\x50\x62\x32\x6e\x53\x6b\x62\x57\x34\x6d\x72\x71\x53\x6b\x48','\x57\x50\x75\x36\x41\x32\x2f\x64\x4f\x64\x33\x64\x4b\x57','\x57\x36\x38\x35\x57\x37\x79','\x57\x34\x4e\x64\x4b\x38\x6b\x35\x57\x4f\x44\x42\x57\x52\x79\x64','\x57\x4f\x31\x74\x57\x52\x42\x63\x53\x43\x6f\x55','\x57\x4f\x66\x62\x57\x35\x75\x44\x46\x61','\x6d\x53\x6b\x4a\x70\x49\x4e\x63\x4b\x71','\x57\x34\x2f\x63\x4e\x38\x6b\x52\x57\x4f\x78\x64\x4f\x75\x70\x63\x47\x71','\x6f\x64\x4a\x63\x53\x73\x44\x47\x79\x53\x6f\x46\x41\x71','\x57\x35\x33\x64\x55\x53\x6b\x6c\x75\x43\x6b\x67\x66\x4d\x69','\x64\x30\x46\x63\x52\x33\x4c\x77','\x57\x36\x42\x63\x4b\x74\x74\x64\x4f\x43\x6b\x74\x70\x53\x6b\x61\x57\x37\x69','\x46\x6d\x6b\x4d\x42\x6d\x6f\x42','\x57\x35\x42\x64\x47\x6d\x6b\x39','\x64\x53\x6b\x41\x6e\x64\x6c\x63\x54\x57','\x6b\x73\x2f\x63\x52\x4a\x7a\x2b','\x57\x52\x58\x47\x57\x37\x30\x37','\x57\x52\x70\x63\x48\x78\x4f\x43\x45\x57','\x57\x51\x50\x57\x57\x52\x46\x63\x48\x58\x47','\x63\x6d\x6b\x4e\x6c\x48\x46\x63\x4e\x32\x66\x34','\x57\x37\x48\x6e\x57\x51\x4e\x64\x4a\x71','\x76\x38\x6b\x61\x78\x43\x6f\x4b\x57\x50\x71','\x62\x48\x79\x57\x71\x53\x6f\x67','\x57\x36\x65\x37\x57\x37\x71','\x57\x52\x76\x62\x57\x50\x56\x64\x4a\x61','\x57\x34\x6c\x64\x51\x53\x6b\x6b\x79\x53\x6b\x36','\x57\x51\x48\x45\x57\x35\x56\x63\x53\x38\x6b\x46','\x69\x53\x6f\x38\x6e\x43\x6b\x63\x57\x36\x43\x79\x69\x72\x4a\x64\x55\x63\x54\x50\x57\x51\x79','\x42\x43\x6b\x50\x57\x4f\x2f\x64\x53\x64\x66\x71\x57\x51\x57\x30','\x57\x36\x78\x63\x54\x74\x42\x64\x4e\x38\x6b\x6e','\x57\x52\x54\x38\x74\x67\x43','\x79\x38\x6b\x39\x79\x38\x6b\x6e','\x44\x4e\x70\x63\x4a\x38\x6f\x62\x57\x52\x6d','\x57\x35\x6d\x42\x57\x35\x66\x72\x6e\x6d\x6b\x63\x57\x37\x42\x64\x4c\x61','\x67\x53\x6f\x54\x61\x71\x4c\x49','\x57\x52\x50\x5a\x77\x32\x4f\x63','\x57\x37\x43\x53\x64\x33\x61\x31\x65\x32\x62\x49','\x57\x51\x72\x4a\x57\x37\x79\x4e\x72\x71'];_0x21f1=function(){return _0x437650;};return _0x21f1();}const _0x2226b9={};_0x2226b9[_0x3d1b7b(0x20a,'\x29\x40\x4f\x30')]=_0x3a0951,_0x2226b9[_0x3d1b7b(0x15a,'\x48\x4b\x67\x71')+_0x3d1b7b(0x1ff,'\x4b\x6c\x77\x5d')]=_0x26552b,_0x2226b9['\x73\x63\x61\x6e\x43\x6f\x72\x70'+'\x75\x73']=_0xe80b54,_0x2226b9[_0x3d1b7b(0x14a,'\x63\x77\x45\x5b')+_0x3d1b7b(0x239,'\x5d\x73\x21\x65')]=_0x4509f2,_0x2226b9[_0x3d1b7b(0x1cb,'\x56\x47\x4c\x45')]=_0x422384,_0x2226b9[_0x3d1b7b(0x1bb,'\x37\x70\x55\x4a')+'\x65']=_0x376617,_0x2226b9[_0x3d1b7b(0x174,'\x70\x52\x51\x6d')+'\x74\x65']=_0x56bd35,_0x2226b9[_0x3d1b7b(0x156,'\x5b\x30\x31\x68')+_0x3d1b7b(0x17b,'\x44\x5b\x25\x49')]=_0x51ee3c,module[_0x3d1b7b(0x187,'\x44\x5b\x25\x49')]=_0x2226b9;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Conversation Capability Sniffer
|
|
4
|
+
// --------------------------------
|
|
5
|
+
// evolver autonomously surfaces evolution opportunities from CODE (errsig /
|
|
6
|
+
// recurring_error), from MISSING features (capability_gap), and at idle time
|
|
7
|
+
// from external knowledge (explore.js: TODO scan, arxiv). The one blind spot:
|
|
8
|
+
// a human-verified, deterministic capability demonstrated *in the conversation*
|
|
9
|
+
// (e.g. "I just published a Feishu doc via lark-cli and validated it") never
|
|
10
|
+
// surfaces, because signal extraction maps free text onto the closed
|
|
11
|
+
// OPPORTUNITY_SIGNALS vocabulary and there is no extractor that reads the
|
|
12
|
+
// transcript for "the user just proved a reusable capability worth keeping".
|
|
13
|
+
//
|
|
14
|
+
// This module is that extractor. It mirrors explore.js: env gating + cooldown,
|
|
15
|
+
// a scan that produces results, dedup state on disk, and convertToSignals().
|
|
16
|
+
// Like the rest of evolver it does NOT call an LLM directly (evolver builds
|
|
17
|
+
// prompts and lets the bridged executor — the Hand — do the reasoning). The
|
|
18
|
+
// scan here is a lightweight RULE-BASED pre-filter; when it fires it injects a
|
|
19
|
+
// candidate signal so the selector/distiller can pick the work up on the
|
|
20
|
+
// executor side.
|
|
21
|
+
//
|
|
22
|
+
// Default posture is SHADOW (observe-only): it logs what it *would* surface
|
|
23
|
+
// without injecting, so the behaviour can be validated before it influences
|
|
24
|
+
// real cycles. Set EVOLVER_CONV_SNIFF_ENABLED=enforce to inject for real.
|
|
25
|
+
|
|
26
|
+
const fs = require('fs');
|
|
27
|
+
const path = require('path');
|
|
28
|
+
const crypto = require('crypto');
|
|
29
|
+
|
|
30
|
+
const { getEvolutionDir } = require('./paths');
|
|
31
|
+
|
|
32
|
+
// off | shadow | enforce. Default 'shadow' so a fresh install observes before
|
|
33
|
+
// it acts. 'off' disables entirely; 'enforce' injects candidate signals.
|
|
34
|
+
const MODE = (() => {
|
|
35
|
+
const raw = String(process.env.EVOLVER_CONV_SNIFF_ENABLED || 'shadow').toLowerCase().trim();
|
|
36
|
+
if (raw === 'off' || raw === 'false' || raw === '0') return 'off';
|
|
37
|
+
if (raw === 'enforce' || raw === 'on' || raw === 'true' || raw === '1') return 'enforce';
|
|
38
|
+
return 'shadow';
|
|
39
|
+
})();
|
|
40
|
+
|
|
41
|
+
const COOLDOWN_MS = parseInt(process.env.EVOLVER_CONV_SNIFF_COOLDOWN_MS || '1800000', 10) || 1800000;
|
|
42
|
+
const MAX_CANDIDATES = 5;
|
|
43
|
+
const SNIPPET_MAX = 240;
|
|
44
|
+
|
|
45
|
+
// Signals injected (enforce mode). The umbrella signal lets a dedicated gene
|
|
46
|
+
// (or the distiller) match "there is a conversation-surfaced capability".
|
|
47
|
+
const UMBRELLA_SIGNAL = 'conv_capability_candidate';
|
|
48
|
+
|
|
49
|
+
// Evidence that a reusable capability was just *successfully exercised* in the
|
|
50
|
+
// transcript. We require (a) a success/completion marker AND (b) a reusable
|
|
51
|
+
// action verb, so idle chatter or failed attempts do not trigger.
|
|
52
|
+
const SUCCESS_MARKERS = [
|
|
53
|
+
'success', 'succeeded', 'verified', 'validated', 'works', 'working',
|
|
54
|
+
'published', 'created', 'completed', 'passed', 'done',
|
|
55
|
+
'成功', '已发布', '已验证', '验证通过', '搞定', '跑通', '通过了',
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
// Reusable, deterministic actions worth keeping as a capability. Each entry is
|
|
59
|
+
// [regex, capability-slug]. Kept deliberately conservative.
|
|
60
|
+
const CAPABILITY_PATTERNS = [
|
|
61
|
+
[/\blark-cli\b|飞书文档|feishu doc|lark doc/i, 'publish-feishu-doc'],
|
|
62
|
+
[/\bgh (pr|issue|release)\b|github api|open(ed)? a pr\b/i, 'github-automation'],
|
|
63
|
+
[/\bcurl\b.+\b(api|endpoint)\b|\bfetch\(.+\bapi\b/i, 'api-call'],
|
|
64
|
+
[/\bdocker (build|run|compose)\b/i, 'docker-workflow'],
|
|
65
|
+
[/\bkubectl\b|helm (install|upgrade)\b/i, 'k8s-operation'],
|
|
66
|
+
[/\bprisma (migrate|db push)\b|\bpsql\b|pg_dump/i, 'db-operation'],
|
|
67
|
+
[/\bnpm publish\b|\bnpx skills\b/i, 'package-publish'],
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
function _statePath() { return path.join(getEvolutionDir(), 'conv_sniff_state.json'); }
|
|
71
|
+
function _logPath() { return path.join(getEvolutionDir(), 'conv_sniff_log.jsonl'); }
|
|
72
|
+
|
|
73
|
+
function readState() {
|
|
74
|
+
try { return JSON.parse(fs.readFileSync(_statePath(), 'utf8')); }
|
|
75
|
+
catch (_) { return { seen: {}, last_sniff_ts: 0 }; }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function writeState(state) {
|
|
79
|
+
try {
|
|
80
|
+
const dir = getEvolutionDir();
|
|
81
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
82
|
+
const tmp = _statePath() + '.tmp';
|
|
83
|
+
fs.writeFileSync(tmp, JSON.stringify(state, null, 2) + '\n', 'utf8');
|
|
84
|
+
fs.renameSync(tmp, _statePath());
|
|
85
|
+
} catch (_) {}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _appendLog(obj) {
|
|
89
|
+
try {
|
|
90
|
+
const dir = getEvolutionDir();
|
|
91
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
92
|
+
fs.appendFileSync(_logPath(), JSON.stringify(obj) + '\n', 'utf8');
|
|
93
|
+
} catch (_) {}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function _shortHash(s) {
|
|
97
|
+
return crypto.createHash('sha256').update(String(s || '')).digest('hex').slice(0, 16);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function getMode() { return MODE; }
|
|
101
|
+
|
|
102
|
+
function shouldSniff(state) {
|
|
103
|
+
if (MODE === 'off') return false;
|
|
104
|
+
const st = state || readState();
|
|
105
|
+
const last = st.last_sniff_ts || 0;
|
|
106
|
+
// Date.now is fine here — this runs in the live process, not the workflow VM.
|
|
107
|
+
if (Date.now() - last < COOLDOWN_MS) return false;
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Proximity window (chars): a success marker must appear within this distance
|
|
112
|
+
// of the capability match for the pair to count. A global "success anywhere +
|
|
113
|
+
// capability anywhere" co-occurrence is NOT enough — that lets an unrelated
|
|
114
|
+
// "tests passed" pair with a *failed* lark-cli/kubectl mention and surface a
|
|
115
|
+
// false candidate (Bugbot #175, High). Require LOCAL co-occurrence instead.
|
|
116
|
+
const PROXIMITY_WINDOW = 200;
|
|
117
|
+
|
|
118
|
+
// Negators that flip a success marker ("not verified", "未发布", "failed to
|
|
119
|
+
// publish"). If one appears within NEGATION_LOOKBACK chars before the marker,
|
|
120
|
+
// the marker does not count as success (Bugbot #175 round 2, Medium).
|
|
121
|
+
const NEGATORS = ['not ', "n't ", 'no ', 'never ', 'fail', 'unable', "wasn't", "isn't", "didn't",
|
|
122
|
+
'没', '未', '不', '失败', '无法'];
|
|
123
|
+
const NEGATION_LOOKBACK = 20;
|
|
124
|
+
|
|
125
|
+
function _markerIsNegated(lowerText, markerStart) {
|
|
126
|
+
const from = Math.max(0, markerStart - NEGATION_LOOKBACK);
|
|
127
|
+
const before = lowerText.slice(from, markerStart);
|
|
128
|
+
return NEGATORS.some((n) => before.includes(n));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function _hasSuccessNear(text, lowerText, matchIndex, matchLen) {
|
|
132
|
+
const from = Math.max(0, matchIndex - PROXIMITY_WINDOW);
|
|
133
|
+
const to = Math.min(lowerText.length, matchIndex + matchLen + PROXIMITY_WINDOW);
|
|
134
|
+
for (const m of SUCCESS_MARKERS) {
|
|
135
|
+
const needle = m.toLowerCase();
|
|
136
|
+
// walk every occurrence of this marker inside the window; accept only a
|
|
137
|
+
// non-negated one.
|
|
138
|
+
let rel = windowIndexOf(lowerText, needle, from, to);
|
|
139
|
+
while (rel !== -1) {
|
|
140
|
+
if (!_markerIsNegated(lowerText, rel)) return true;
|
|
141
|
+
rel = windowIndexOf(lowerText, needle, rel + 1, to);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// indexOf for `needle` constrained to [from, to); returns absolute index in
|
|
148
|
+
// lowerText or -1. Keeps negation checks anchored to the full text so the
|
|
149
|
+
// lookback can see chars just before the window edge.
|
|
150
|
+
function windowIndexOf(lowerText, needle, from, to) {
|
|
151
|
+
const idx = lowerText.indexOf(needle, from);
|
|
152
|
+
if (idx === -1 || idx >= to) return -1;
|
|
153
|
+
return idx;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Scan ONE segment for candidates (success marker within PROXIMITY_WINDOW of a
|
|
157
|
+
// capability match, non-negated). Returns [{capability, matched, snippet, hash}].
|
|
158
|
+
function _scanSegment(text, sink, seenSlugs) {
|
|
159
|
+
if (!text || !text.trim()) return;
|
|
160
|
+
const lower = text.toLowerCase();
|
|
161
|
+
for (const [re, slug] of CAPABILITY_PATTERNS) {
|
|
162
|
+
if (seenSlugs.has(slug)) continue;
|
|
163
|
+
const gre = new RegExp(re.source, re.flags.includes('g') ? re.flags : re.flags + 'g');
|
|
164
|
+
let m;
|
|
165
|
+
let accepted = null;
|
|
166
|
+
while ((m = gre.exec(text)) !== null) {
|
|
167
|
+
if (m[0].length === 0) { gre.lastIndex++; continue; } // guard zero-width
|
|
168
|
+
if (_hasSuccessNear(text, lower, m.index, m[0].length)) { accepted = m; break; }
|
|
169
|
+
}
|
|
170
|
+
if (!accepted) continue;
|
|
171
|
+
seenSlugs.add(slug);
|
|
172
|
+
const idx = Math.max(0, accepted.index - 80);
|
|
173
|
+
const snippet = text.slice(idx, idx + SNIPPET_MAX).replace(/\s+/g, ' ').trim();
|
|
174
|
+
sink.push({
|
|
175
|
+
capability: slug,
|
|
176
|
+
matched: accepted[0].slice(0, 60),
|
|
177
|
+
snippet,
|
|
178
|
+
hash: _shortHash(slug + '|' + snippet),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Pure scan. Accepts a single string OR an array of segments (e.g. master log
|
|
184
|
+
// and today log). Each segment is scanned INDEPENDENTLY so a success marker in
|
|
185
|
+
// one segment can never falsely sit "near" a capability match in another
|
|
186
|
+
// (Bugbot #175 round 2: joined logs caused false cross-boundary proximity).
|
|
187
|
+
// A candidate requires a non-negated success marker within PROXIMITY_WINDOW of
|
|
188
|
+
// the capability match, scanning all occurrences so a later successful use wins
|
|
189
|
+
// over an earlier failed mention.
|
|
190
|
+
function scanCorpus(corpus) {
|
|
191
|
+
const segments = Array.isArray(corpus) ? corpus : [corpus];
|
|
192
|
+
const candidates = [];
|
|
193
|
+
const seenSlugs = new Set();
|
|
194
|
+
for (const seg of segments) {
|
|
195
|
+
if (candidates.length >= MAX_CANDIDATES) break;
|
|
196
|
+
_scanSegment(String(seg || ''), candidates, seenSlugs);
|
|
197
|
+
}
|
|
198
|
+
return candidates.slice(0, MAX_CANDIDATES);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function convertToSignals(candidates) {
|
|
202
|
+
const signals = [];
|
|
203
|
+
const seen = new Set();
|
|
204
|
+
for (const c of candidates) {
|
|
205
|
+
const sig = 'conv_capability:' + c.capability;
|
|
206
|
+
if (!seen.has(sig)) { seen.add(sig); signals.push(sig); }
|
|
207
|
+
}
|
|
208
|
+
if (signals.length > 0) signals.unshift(UMBRELLA_SIGNAL);
|
|
209
|
+
return signals;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Main entry, mirrors explore.tryExplore(): gate -> scan -> dedup -> (shadow|enforce).
|
|
213
|
+
// Returns { mode, candidates, signals } — signals is [] in shadow/off so the
|
|
214
|
+
// caller can inject unconditionally without leaking shadow candidates.
|
|
215
|
+
function trySniff(corpus, state) {
|
|
216
|
+
const st = state || readState();
|
|
217
|
+
if (!shouldSniff(st)) return { mode: MODE, candidates: [], signals: [] };
|
|
218
|
+
|
|
219
|
+
const all = scanCorpus(corpus);
|
|
220
|
+
|
|
221
|
+
// dedup against already-processed candidate hashes
|
|
222
|
+
const seenMap = st.seen || {};
|
|
223
|
+
const fresh = all.filter((c) => !seenMap[c.hash]);
|
|
224
|
+
|
|
225
|
+
// Only start the cooldown when we actually surfaced something new. An empty
|
|
226
|
+
// sniff (no candidates, or all already-seen) must NOT arm the cooldown —
|
|
227
|
+
// otherwise a barren cycle blocks detection until the window elapses even
|
|
228
|
+
// when the transcript gains real evidence moments later (Bugbot #175, Med).
|
|
229
|
+
if (fresh.length === 0) return { mode: MODE, candidates: [], signals: [] };
|
|
230
|
+
|
|
231
|
+
st.last_sniff_ts = Date.now();
|
|
232
|
+
for (const c of fresh) seenMap[c.hash] = { capability: c.capability, at: new Date().toISOString() };
|
|
233
|
+
st.seen = seenMap;
|
|
234
|
+
writeState(st);
|
|
235
|
+
|
|
236
|
+
const signals = convertToSignals(fresh);
|
|
237
|
+
|
|
238
|
+
// Always log what was surfaced (both shadow and enforce) for auditing.
|
|
239
|
+
_appendLog({
|
|
240
|
+
at: new Date().toISOString(),
|
|
241
|
+
mode: MODE,
|
|
242
|
+
candidates: fresh.map((c) => ({ capability: c.capability, matched: c.matched, hash: c.hash })),
|
|
243
|
+
signals,
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
if (MODE === 'shadow') {
|
|
247
|
+
console.log('[ConvSniff:shadow] Would surface ' + fresh.length + ' capability candidate(s): ' +
|
|
248
|
+
fresh.map((c) => c.capability).join(', ') + ' (signals NOT injected; set EVOLVER_CONV_SNIFF_ENABLED=enforce to act).');
|
|
249
|
+
return { mode: MODE, candidates: fresh, signals: [] };
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
console.log('[ConvSniff] Surfaced ' + fresh.length + ' capability candidate(s); injecting ' +
|
|
253
|
+
signals.length + ' signal(s): ' + signals.join(', '));
|
|
254
|
+
return { mode: MODE, candidates: fresh, signals };
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
module.exports = {
|
|
258
|
+
getMode,
|
|
259
|
+
shouldSniff,
|
|
260
|
+
scanCorpus,
|
|
261
|
+
convertToSignals,
|
|
262
|
+
trySniff,
|
|
263
|
+
readState,
|
|
264
|
+
writeState,
|
|
265
|
+
UMBRELLA_SIGNAL,
|
|
266
|
+
};
|
package/src/gep/crypto.js
CHANGED
|
@@ -1 +1,89 @@
|
|
|
1
|
-
function _0x4f17(_0x1d87bf,_0x549142){_0x1d87bf=_0x1d87bf-(0x418*-0x8+-0x1192+0x136*0x2b);const _0x11a3bd=_0x5cd4();let _0x4bc813=_0x11a3bd[_0x1d87bf];if(_0x4f17['\x4d\x6b\x4c\x45\x4e\x68']===undefined){var _0x84b73c=function(_0x55a893){const _0x5e0a11='\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 _0x16cd19='',_0x4749be='',_0xc5b2f0=_0x16cd19+_0x84b73c,_0x18cd10=(''+function(){return 0xb8a+0x1*0x1fe6+-0x458*0xa;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0xa82+-0xe*0x11+0x1*0xb71);for(let _0x29fbb4=-0x1cc8+0x1e97*0x1+0x1cf*-0x1,_0x117b59,_0x33c62d,_0x4b0b2d=0x1*-0x21c1+0x29*-0x8a+0x37db;_0x33c62d=_0x55a893['\x63\x68\x61\x72\x41\x74'](_0x4b0b2d++);~_0x33c62d&&(_0x117b59=_0x29fbb4%(-0x72*0x3+-0x1*0x1feb+-0x11*-0x1f5)?_0x117b59*(-0x1663+0x1a*-0x8d+0x24f5)+_0x33c62d:_0x33c62d,_0x29fbb4++%(-0x856+-0x4*-0x3d9+0x11*-0x6a))?_0x16cd19+=_0x18cd10||_0xc5b2f0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4b0b2d+(-0x74b*0x1+-0x1fee+0x2743))-(-0x16e1+0x14d1*-0x1+0x2bbc)!==0x89*-0x13+0x2*-0x86b+0xdf*0x1f?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x17a4+-0x1d50+0x1*0x35f3&_0x117b59>>(-(-0x215*-0xd+0x122b*-0x2+0x947)*_0x29fbb4&0x2*0xb75+0x2701+-0x3de5)):_0x29fbb4:-0x2dc*-0xc+-0x2*-0x49+-0x22e2){_0x33c62d=_0x5e0a11['\x69\x6e\x64\x65\x78\x4f\x66'](_0x33c62d);}for(let _0x49d405=0x1553+-0x1f0f*0x1+0x2*0x4de,_0x21b88a=_0x16cd19['\x6c\x65\x6e\x67\x74\x68'];_0x49d405<_0x21b88a;_0x49d405++){_0x4749be+='\x25'+('\x30\x30'+_0x16cd19['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x49d405)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x111*-0x17+0x43*0x7f+-0x8a6*0x1))['\x73\x6c\x69\x63\x65'](-(0x2402+0x99f*0x2+-0x126a*0x3));}return decodeURIComponent(_0x4749be);};const _0x1e4590=function(_0x4c6dfb,_0x4ddfdd){let _0x2a21af=[],_0x570d16=0x2167+0x10*0x59+0x1db*-0x15,_0x4fa5d9,_0x2387e3='';_0x4c6dfb=_0x84b73c(_0x4c6dfb);let _0x14175a;for(_0x14175a=-0x1b1a+0xd*0xf3+0xec3;_0x14175a<-0xda3+-0x24*-0xe5+-0x1191;_0x14175a++){_0x2a21af[_0x14175a]=_0x14175a;}for(_0x14175a=0x15*-0x1+0x1*0xbca+0x1b*-0x6f;_0x14175a<0xb*-0x151+-0x2502+0x347d;_0x14175a++){_0x570d16=(_0x570d16+_0x2a21af[_0x14175a]+_0x4ddfdd['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x14175a%_0x4ddfdd['\x6c\x65\x6e\x67\x74\x68']))%(-0x1b58+0x1f95+0x33d*-0x1),_0x4fa5d9=_0x2a21af[_0x14175a],_0x2a21af[_0x14175a]=_0x2a21af[_0x570d16],_0x2a21af[_0x570d16]=_0x4fa5d9;}_0x14175a=0x90e*0x1+0x10*0x1fc+-0x28ce,_0x570d16=0x2133*0x1+0xe38+-0x2f6b;for(let _0x302e16=-0x3ac+-0x124f+0x15fb;_0x302e16<_0x4c6dfb['\x6c\x65\x6e\x67\x74\x68'];_0x302e16++){_0x14175a=(_0x14175a+(-0x1b1d*-0x1+0x1885+-0x33a1))%(-0x25f7*0x1+-0x131b*-0x1+-0x52*-0x3e),_0x570d16=(_0x570d16+_0x2a21af[_0x14175a])%(0x1d53+-0x1235+-0xa1e),_0x4fa5d9=_0x2a21af[_0x14175a],_0x2a21af[_0x14175a]=_0x2a21af[_0x570d16],_0x2a21af[_0x570d16]=_0x4fa5d9,_0x2387e3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x4c6dfb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x302e16)^_0x2a21af[(_0x2a21af[_0x14175a]+_0x2a21af[_0x570d16])%(0xb9c+-0x20ae+0x1612)]);}return _0x2387e3;};_0x4f17['\x47\x45\x79\x4b\x47\x4b']=_0x1e4590,_0x4f17['\x68\x69\x45\x43\x61\x45']={},_0x4f17['\x4d\x6b\x4c\x45\x4e\x68']=!![];}const _0x592586=_0x11a3bd[0x3*-0x59c+-0xa79+0x1b4d],_0x183772=_0x1d87bf+_0x592586,_0xa6d416=_0x4f17['\x68\x69\x45\x43\x61\x45'][_0x183772];if(!_0xa6d416){if(_0x4f17['\x71\x71\x79\x49\x44\x66']===undefined){const _0x437bb2=function(_0x39c12e){this['\x61\x6e\x59\x50\x41\x6b']=_0x39c12e,this['\x43\x4c\x62\x79\x63\x67']=[0xcc2*-0x2+-0x1*0x26f+0x4*0x6fd,-0x259a+0x1*0x6a+0x2530,-0x1d3c+-0x41d+0x2159*0x1],this['\x57\x6b\x4f\x45\x61\x41']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x53\x4b\x4e\x53\x56\x50']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x77\x47\x47\x6a\x61\x7a']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x437bb2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x44\x58\x71\x46\x6a\x72']=function(){const _0x56bc97=new RegExp(this['\x53\x4b\x4e\x53\x56\x50']+this['\x77\x47\x47\x6a\x61\x7a']),_0x14e05b=_0x56bc97['\x74\x65\x73\x74'](this['\x57\x6b\x4f\x45\x61\x41']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x43\x4c\x62\x79\x63\x67'][0x1d34+0x1c30+-0x3963]:--this['\x43\x4c\x62\x79\x63\x67'][0x1a0c+-0x4f7*0x1+-0x303*0x7];return this['\x72\x42\x70\x48\x69\x6c'](_0x14e05b);},_0x437bb2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x72\x42\x70\x48\x69\x6c']=function(_0x40eca9){if(!Boolean(~_0x40eca9))return _0x40eca9;return this['\x4a\x76\x4f\x6d\x4c\x62'](this['\x61\x6e\x59\x50\x41\x6b']);},_0x437bb2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4a\x76\x4f\x6d\x4c\x62']=function(_0xca1ce4){for(let _0x47dafb=0x21*0xdf+-0x2279+0x5ba,_0x550066=this['\x43\x4c\x62\x79\x63\x67']['\x6c\x65\x6e\x67\x74\x68'];_0x47dafb<_0x550066;_0x47dafb++){this['\x43\x4c\x62\x79\x63\x67']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x550066=this['\x43\x4c\x62\x79\x63\x67']['\x6c\x65\x6e\x67\x74\x68'];}return _0xca1ce4(this['\x43\x4c\x62\x79\x63\x67'][-0x690+-0x986*0x2+0x199c]);},(''+function(){return 0x7b*-0x3+-0x103b+-0x4e*-0x3a;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0xa85+0x5*0x1de+-0x26*-0x8)&&new _0x437bb2(_0x4f17)['\x44\x58\x71\x46\x6a\x72'](),_0x4f17['\x71\x71\x79\x49\x44\x66']=!![];}_0x4bc813=_0x4f17['\x47\x45\x79\x4b\x47\x4b'](_0x4bc813,_0x549142),_0x4f17['\x68\x69\x45\x43\x61\x45'][_0x183772]=_0x4bc813;}else _0x4bc813=_0xa6d416;return _0x4bc813;}const _0x1c8bef=_0x4f17;(function(_0x4ed370,_0x1cc824){const _0x50afcc=_0x4f17,_0x30737b=_0x4ed370();while(!![]){try{const _0x9c601e=-parseInt(_0x50afcc(0x1e6,'\x7a\x43\x64\x66'))/(-0xc*0x1c+-0x2*0x541+0x1*0xbd3)*(-parseInt(_0x50afcc(0x1fa,'\x36\x2a\x23\x4f'))/(-0x1426+-0xb40+0x1f68))+-parseInt(_0x50afcc(0x1d0,'\x28\x36\x55\x47'))/(-0x1e6*-0x11+0x3*0x9d+-0x221a)+-parseInt(_0x50afcc(0x231,'\x40\x34\x47\x70'))/(-0x19d2+-0x18e1+0x1*0x32b7)+parseInt(_0x50afcc(0x1d7,'\x71\x48\x53\x63'))/(0xae+0x19c*-0x1+0xf3)*(-parseInt(_0x50afcc(0x1c9,'\x72\x4e\x71\x5b'))/(-0x112f+-0x358+-0x1*-0x148d))+parseInt(_0x50afcc(0x1d3,'\x7a\x43\x64\x66'))/(0xd93+-0x3*-0xc25+-0x1*0x31fb)*(parseInt(_0x50afcc(0x1cd,'\x63\x4c\x26\x49'))/(0x793+0x949*0x1+-0x10d4))+-parseInt(_0x50afcc(0x235,'\x37\x59\x21\x53'))/(0x4ff+-0x1f84*0x1+0x135*0x16)*(-parseInt(_0x50afcc(0x1e0,'\x65\x41\x59\x44'))/(-0x176f+-0x1253*0x1+-0x42e*-0xa))+-parseInt(_0x50afcc(0x1d2,'\x54\x4d\x25\x6e'))/(-0x200d+0x78f+0x1*0x1889)*(parseInt(_0x50afcc(0x20b,'\x6c\x30\x38\x2a'))/(0x19cd+0x1231+-0x2bf2));if(_0x9c601e===_0x1cc824)break;else _0x30737b['push'](_0x30737b['shift']());}catch(_0x5c096a){_0x30737b['push'](_0x30737b['shift']());}}}(_0x5cd4,0x8d226+-0x123a6*-0x2+-0x62ae5));const _0x9e0138=(function(){let _0x463277=!![];return function(_0x38286a,_0x5e3cec){const _0x19dfd8=_0x463277?function(){const _0x3a65f=_0x4f17;if(_0x5e3cec){const _0x1f0f91=_0x5e3cec[_0x3a65f(0x234,'\x63\x6a\x79\x21')](_0x38286a,arguments);return _0x5e3cec=null,_0x1f0f91;}}:function(){};return _0x463277=![],_0x19dfd8;};}()),_0x2a0703=_0x9e0138(this,function(){const _0x5752f4=_0x4f17,_0x5ee35d={};_0x5ee35d[_0x5752f4(0x232,'\x36\x2a\x23\x4f')]=_0x5752f4(0x212,'\x54\x34\x30\x62')+_0x5752f4(0x226,'\x72\x4e\x71\x5b');const _0x939b65=_0x5ee35d;return _0x2a0703[_0x5752f4(0x223,'\x59\x4e\x26\x58')]()[_0x5752f4(0x221,'\x58\x4c\x5a\x23')](_0x939b65[_0x5752f4(0x1de,'\x5a\x4a\x64\x71')])[_0x5752f4(0x217,'\x5a\x31\x5b\x6f')]()[_0x5752f4(0x20e,'\x78\x55\x63\x6c')+_0x5752f4(0x1db,'\x53\x21\x43\x71')](_0x2a0703)[_0x5752f4(0x209,'\x61\x29\x36\x35')](_0x5752f4(0x1c2,'\x65\x41\x59\x44')+_0x5752f4(0x205,'\x5a\x4a\x64\x71'));});_0x2a0703();const _0x387b2=require(_0x1c8bef(0x1f7,'\x41\x26\x63\x68')),_0x155c5f=_0x1c8bef(0x20d,'\x25\x28\x75\x29')+_0x1c8bef(0x202,'\x71\x48\x53\x63'),_0x110775=-0xc51+0x19d8+-0xd7b,_0x17f1d0=-0x7*-0x55d+-0x1c*-0x126+0x45a3*-0x1,_0x101ea4=0xb45*-0x2+-0x12a0+-0x421*-0xa;function _0x197cfd(){const _0x4e2d53=_0x1c8bef;return _0x387b2[_0x4e2d53(0x230,'\x63\x4c\x26\x49')+'\x74\x65\x73'](_0x101ea4);}function _0x56397e(_0x51f0b0,_0x2b80fb){const _0x58e039=_0x1c8bef,_0x50d86a={};_0x50d86a[_0x58e039(0x214,'\x33\x51\x51\x6d')]=function(_0x5375aa,_0x268eb3){return _0x5375aa!==_0x268eb3;},_0x50d86a[_0x58e039(0x1cf,'\x4a\x5e\x67\x58')]=_0x58e039(0x200,'\x63\x4c\x26\x49')+_0x58e039(0x1e9,'\x6c\x30\x38\x2a')+_0x58e039(0x243,'\x32\x37\x59\x56')+_0x58e039(0x215,'\x43\x49\x24\x63')+'\x79\x74\x65\x73',_0x50d86a[_0x58e039(0x1f3,'\x53\x58\x74\x25')]=_0x58e039(0x1e3,'\x40\x34\x47\x70'),_0x50d86a[_0x58e039(0x21a,'\x43\x49\x24\x63')]=function(_0x2814f9,_0x3e4ff6){return _0x2814f9===_0x3e4ff6;},_0x50d86a[_0x58e039(0x224,'\x77\x36\x70\x66')]=_0x58e039(0x211,'\x40\x34\x47\x70');const _0x346c34=_0x50d86a;if(!_0x2b80fb||_0x346c34[_0x58e039(0x20a,'\x54\x34\x30\x62')](_0x2b80fb[_0x58e039(0x237,'\x75\x4a\x44\x59')],_0x101ea4)){if(_0x346c34[_0x58e039(0x22a,'\x53\x58\x74\x25')](_0x58e039(0x1dd,'\x49\x42\x45\x67'),_0x346c34['\x65\x64\x6e\x66\x62'])){if(!_0x8bbe10||_0x346c34[_0x58e039(0x225,'\x5d\x5a\x73\x37')](_0x4f6f5d[_0x58e039(0x1ed,'\x55\x6c\x33\x6b')],_0x7f6dad))throw new _0x196d1b(_0x346c34[_0x58e039(0x1c4,'\x6b\x61\x31\x67')]);const _0x20ce20=_0x2ac752['\x72\x61\x6e\x64\x6f\x6d\x42\x79'+_0x58e039(0x241,'\x5a\x61\x6a\x51')](_0x557bd6),_0x2e391a=_0x23c3cc[_0x58e039(0x1f4,'\x6d\x33\x4a\x47')+_0x58e039(0x203,'\x5a\x31\x5b\x6f')](_0x145d08,_0x1e3643,_0x20ce20),_0x4a4635=_0x2abd98[_0x58e039(0x1ec,'\x54\x34\x30\x62')](_0x38f940)?_0x3f6e85:_0xe2ccae[_0x58e039(0x21f,'\x25\x28\x75\x29')](_0x2583b0,_0x346c34[_0x58e039(0x1f6,'\x33\x51\x51\x6d')]),_0x15628=_0x42789d[_0x58e039(0x1f0,'\x72\x4e\x71\x5b')]([_0x2e391a[_0x58e039(0x1df,'\x54\x4d\x25\x6e')](_0x4a4635),_0x2e391a[_0x58e039(0x1f9,'\x5a\x4a\x64\x71')]()]),_0x1f7d17=_0x2e391a[_0x58e039(0x1cc,'\x4d\x63\x77\x44')+'\x61\x67'](),_0x368a2d={};return _0x368a2d[_0x58e039(0x22f,'\x4a\x5e\x67\x58')+'\x78\x74']=_0x15628,_0x368a2d['\x69\x76']=_0x20ce20,_0x368a2d[_0x58e039(0x21d,'\x33\x51\x51\x6d')]=_0x1f7d17,_0x368a2d;}else throw new Error(_0x58e039(0x1ea,'\x5a\x31\x5b\x6f')+_0x58e039(0x1c0,'\x63\x4c\x26\x49')+_0x58e039(0x201,'\x49\x42\x45\x67')+_0x58e039(0x222,'\x5a\x31\x5b\x6f')+_0x58e039(0x213,'\x72\x4e\x71\x5b'));}const _0xc7005a=_0x387b2[_0x58e039(0x1e7,'\x43\x49\x24\x63')+_0x58e039(0x23f,'\x47\x6e\x26\x46')](_0x110775),_0x3884b0=_0x387b2[_0x58e039(0x242,'\x33\x51\x51\x6d')+'\x70\x68\x65\x72\x69\x76'](_0x155c5f,_0x2b80fb,_0xc7005a),_0x15fa89=Buffer[_0x58e039(0x23e,'\x75\x4a\x44\x59')](_0x51f0b0)?_0x51f0b0:Buffer[_0x58e039(0x1ce,'\x72\x69\x76\x47')](_0x51f0b0,_0x346c34[_0x58e039(0x1da,'\x4a\x5e\x67\x58')]),_0x34beb7=Buffer[_0x58e039(0x238,'\x5d\x5a\x73\x37')]([_0x3884b0[_0x58e039(0x218,'\x74\x63\x7a\x44')](_0x15fa89),_0x3884b0[_0x58e039(0x1ca,'\x37\x59\x21\x53')]()]),_0x40e53a=_0x3884b0[_0x58e039(0x1fc,'\x72\x73\x54\x4f')+'\x61\x67'](),_0x4753e3={};return _0x4753e3[_0x58e039(0x21e,'\x47\x6e\x26\x46')+'\x78\x74']=_0x34beb7,_0x4753e3['\x69\x76']=_0xc7005a,_0x4753e3[_0x58e039(0x1c6,'\x37\x59\x21\x53')]=_0x40e53a,_0x4753e3;}function _0x57f0a3(_0xa17a5b,_0x59fd72,_0x5aaa96,_0x29787b){const _0x2aee33=_0x1c8bef;if(!_0x59fd72||_0x59fd72[_0x2aee33(0x1fe,'\x72\x4e\x71\x5b')]!==_0x101ea4){if(_0x2aee33(0x1c7,'\x38\x35\x5e\x4e')===_0x2aee33(0x22d,'\x53\x21\x43\x71'))throw new Error(_0x2aee33(0x22e,'\x54\x34\x30\x62')+_0x2aee33(0x1f2,'\x6b\x61\x31\x67')+_0x2aee33(0x21c,'\x47\x6e\x26\x46')+_0x2aee33(0x23b,'\x75\x4a\x44\x59')+_0x2aee33(0x20f,'\x74\x63\x7a\x44'));else return _0x2e8de2['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x2aee33(0x1e4,'\x59\x4e\x26\x58')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x2aee33(0x1d6,'\x25\x28\x75\x29'))[_0x2aee33(0x1ee,'\x37\x66\x69\x4b')]()[_0x2aee33(0x1c1,'\x5d\x5a\x73\x37')+_0x2aee33(0x1cb,'\x73\x61\x28\x61')](_0x15a02b)[_0x2aee33(0x23c,'\x7a\x43\x64\x66')](_0x2aee33(0x1d9,'\x77\x36\x70\x66')+_0x2aee33(0x220,'\x54\x4d\x25\x6e'));}const _0x215b67=_0x387b2[_0x2aee33(0x228,'\x4d\x63\x77\x44')+'\x63\x69\x70\x68\x65\x72\x69\x76'](_0x155c5f,_0x59fd72,_0x5aaa96);return _0x215b67[_0x2aee33(0x1d4,'\x71\x48\x53\x63')+'\x61\x67'](_0x29787b),Buffer['\x63\x6f\x6e\x63\x61\x74']([_0x215b67[_0x2aee33(0x1c3,'\x58\x4c\x5a\x23')](_0xa17a5b),_0x215b67[_0x2aee33(0x204,'\x63\x6a\x79\x21')]()]);}function _0x5cd4(){const _0x11953b=['\x78\x32\x50\x57\x61\x77\x48\x73\x76\x72\x6c\x63\x4c\x47','\x57\x35\x48\x47\x57\x34\x68\x64\x47\x38\x6b\x77\x62\x49\x4c\x5a','\x57\x51\x47\x7a\x57\x51\x57','\x57\x34\x7a\x56\x64\x59\x54\x68\x57\x34\x31\x48\x57\x52\x57','\x57\x34\x72\x71\x6d\x61','\x57\x37\x4f\x4e\x43\x53\x6f\x4c\x57\x52\x4a\x64\x54\x43\x6f\x5a\x57\x36\x53','\x57\x37\x57\x65\x68\x73\x78\x64\x4c\x4b\x42\x63\x53\x30\x53','\x57\x50\x46\x63\x48\x65\x4e\x63\x4b\x59\x6c\x64\x49\x78\x33\x64\x51\x71','\x57\x35\x5a\x63\x4a\x63\x75\x39\x57\x35\x33\x63\x4f\x43\x6b\x6c\x73\x61','\x57\x35\x64\x63\x4b\x53\x6f\x2f\x78\x43\x6b\x4e\x43\x53\x6b\x73\x57\x4f\x38','\x44\x38\x6b\x54\x62\x53\x6f\x66\x78\x43\x6f\x79','\x71\x76\x52\x63\x49\x38\x6f\x41\x42\x57','\x57\x50\x42\x63\x47\x38\x6b\x7a\x57\x35\x38\x61','\x57\x51\x6d\x71\x42\x73\x33\x63\x4a\x6d\x6b\x79\x44\x47','\x77\x4b\x33\x63\x50\x53\x6f\x34\x62\x61','\x7a\x6d\x6f\x4c\x57\x52\x46\x64\x48\x4a\x66\x44\x68\x53\x6f\x34\x6b\x63\x68\x63\x48\x4a\x30','\x57\x36\x6c\x64\x4f\x57\x47\x38\x57\x34\x5a\x64\x4e\x43\x6f\x52\x57\x35\x79\x46','\x57\x51\x71\x6d\x44\x59\x74\x63\x54\x61','\x57\x37\x56\x64\x47\x38\x6b\x78','\x57\x51\x78\x63\x53\x43\x6b\x6c\x57\x35\x53\x57\x43\x33\x53\x7a','\x57\x34\x33\x64\x4b\x71\x74\x64\x56\x5a\x52\x64\x54\x75\x70\x64\x49\x59\x6d','\x57\x52\x5a\x63\x56\x73\x5a\x63\x53\x47','\x57\x37\x7a\x4c\x74\x4a\x37\x64\x4d\x57','\x57\x4f\x71\x52\x78\x33\x57\x68\x57\x4f\x4f\x58\x57\x4f\x37\x63\x51\x33\x68\x64\x53\x68\x52\x63\x55\x57','\x57\x52\x42\x64\x50\x38\x6f\x67\x6c\x58\x54\x34\x62\x4b\x34','\x57\x50\x74\x64\x4a\x43\x6f\x6c\x75\x33\x74\x63\x55\x38\x6b\x75\x41\x33\x34\x7a\x44\x47\x47\x59','\x65\x4a\x64\x64\x4f\x6d\x6f\x51\x57\x51\x46\x64\x4d\x6d\x6b\x6e\x57\x52\x68\x64\x51\x67\x39\x69\x72\x47','\x6d\x74\x4a\x64\x4b\x78\x68\x64\x4c\x71\x58\x55\x57\x4f\x30','\x79\x43\x6b\x47\x6b\x74\x62\x7a','\x57\x35\x50\x6d\x57\x35\x79\x42','\x44\x77\x52\x63\x4e\x61\x42\x63\x4b\x64\x62\x49\x57\x50\x39\x63\x57\x37\x47\x48','\x57\x36\x7a\x63\x74\x74\x64\x64\x4e\x4c\x79\x77','\x57\x50\x54\x6e\x6c\x43\x6f\x4d\x62\x57\x6d\x2f\x57\x35\x75','\x57\x34\x54\x65\x71\x59\x37\x64\x50\x61','\x66\x33\x57\x51','\x57\x4f\x50\x31\x57\x34\x4f\x66\x57\x35\x74\x63\x56\x30\x6e\x50','\x62\x6d\x6b\x35\x57\x36\x42\x63\x4a\x65\x53','\x57\x36\x4c\x61\x57\x36\x48\x61\x42\x57','\x57\x35\x64\x63\x49\x43\x6b\x78\x61\x4a\x64\x64\x50\x57','\x57\x34\x56\x63\x49\x43\x6f\x4c\x72\x43\x6b\x39\x41\x38\x6f\x6a\x57\x36\x52\x63\x54\x5a\x66\x48\x7a\x71','\x77\x77\x39\x2f\x72\x74\x62\x33\x79\x58\x46\x63\x4c\x38\x6b\x75\x57\x52\x71','\x57\x4f\x56\x64\x56\x4d\x5a\x64\x4c\x53\x6b\x70','\x57\x37\x4e\x63\x4c\x75\x56\x63\x53\x61','\x57\x52\x34\x6e\x57\x52\x2f\x64\x52\x43\x6f\x79\x57\x4f\x53','\x57\x35\x42\x63\x4b\x61\x4b\x37\x57\x34\x2f\x63\x54\x43\x6b\x42\x77\x71','\x66\x5a\x6c\x64\x4f\x38\x6f\x4a\x57\x51\x70\x63\x49\x6d\x6b\x62\x57\x4f\x6c\x64\x56\x67\x72\x30','\x57\x4f\x48\x4d\x67\x67\x61\x75\x76\x53\x6f\x31\x57\x36\x4f','\x57\x4f\x70\x63\x4d\x6d\x6b\x34\x57\x35\x75\x78\x74\x4b\x43\x66','\x57\x34\x2f\x63\x53\x6d\x6b\x51\x65\x53\x6f\x75\x57\x35\x4e\x63\x4a\x38\x6b\x65','\x57\x4f\x52\x63\x4c\x53\x6f\x50\x57\x35\x4e\x64\x56\x65\x33\x63\x47\x6d\x6b\x72','\x6a\x43\x6b\x32\x57\x36\x42\x63\x4e\x71','\x57\x35\x64\x63\x56\x47\x31\x7a\x57\x50\x33\x64\x4e\x53\x6b\x6d\x6d\x61','\x76\x43\x6b\x67\x6e\x72\x35\x6b\x78\x61','\x67\x4a\x43\x76\x62\x33\x6a\x77\x41\x74\x79','\x57\x52\x52\x64\x48\x32\x4e\x64\x4f\x43\x6b\x5a\x78\x6d\x6b\x6a','\x57\x52\x64\x63\x56\x76\x69\x4e\x57\x37\x4e\x64\x4f\x47','\x57\x36\x2f\x63\x4b\x6d\x6b\x6b\x42\x43\x6f\x37\x57\x37\x78\x63\x51\x6d\x6b\x31','\x77\x32\x33\x63\x48\x43\x6b\x43\x75\x59\x5a\x63\x4f\x66\x34','\x57\x52\x65\x4c\x57\x4f\x43\x75\x62\x57','\x57\x35\x6c\x64\x54\x30\x48\x4f\x64\x63\x53\x32\x57\x50\x79','\x57\x4f\x4f\x47\x57\x52\x38\x45\x44\x74\x6c\x64\x56\x53\x6b\x37','\x57\x35\x75\x4d\x42\x43\x6f\x59\x57\x51\x69','\x57\x35\x4f\x33\x57\x35\x75\x77\x57\x34\x5a\x63\x53\x47','\x79\x43\x6b\x30\x65\x53\x6f\x6d\x74\x6d\x6f\x70\x46\x38\x6b\x48','\x57\x36\x35\x42\x57\x37\x44\x6f\x44\x57','\x57\x36\x5a\x63\x4d\x77\x5a\x64\x53\x6d\x6b\x4d\x74\x53\x6b\x73\x42\x57','\x57\x35\x6e\x43\x6d\x59\x56\x63\x53\x6d\x6f\x6a\x75\x43\x6f\x75','\x64\x38\x6f\x38\x57\x34\x71\x6d\x6e\x43\x6b\x58\x78\x53\x6b\x59','\x6e\x48\x53\x30\x6f\x4d\x43','\x57\x52\x2f\x63\x54\x31\x69\x4a\x57\x36\x5a\x64\x56\x47','\x57\x4f\x4e\x63\x48\x31\x42\x64\x4c\x4a\x33\x63\x4e\x68\x52\x64\x53\x47','\x57\x50\x2f\x63\x4b\x30\x4e\x64\x47\x5a\x56\x64\x4b\x5a\x74\x63\x56\x71','\x44\x43\x6b\x31\x57\x36\x64\x64\x4c\x4d\x79\x72\x6a\x43\x6f\x6c','\x6a\x74\x37\x64\x49\x61','\x57\x50\x4e\x63\x4a\x6d\x6f\x31\x57\x35\x56\x64\x4f\x76\x71','\x73\x4c\x35\x36\x57\x34\x4c\x6b','\x57\x51\x6d\x42\x57\x52\x69\x6c','\x75\x58\x7a\x45\x57\x37\x57\x51\x61\x6d\x6b\x5a\x57\x35\x38','\x57\x35\x62\x49\x68\x73\x76\x68\x57\x34\x54\x5a','\x73\x53\x6b\x77\x6f\x72\x48\x6d\x72\x53\x6f\x58\x57\x36\x30','\x57\x51\x6c\x64\x49\x48\x4e\x64\x4d\x53\x6b\x49\x62\x47','\x57\x35\x5a\x63\x4e\x57\x66\x34\x57\x51\x47','\x57\x50\x78\x64\x50\x38\x6b\x64\x72\x6d\x6f\x30\x57\x35\x56\x63\x4e\x43\x6b\x36','\x57\x4f\x37\x64\x4b\x72\x53\x34\x57\x36\x74\x63\x50\x6d\x6b\x46\x79\x71','\x57\x50\x61\x61\x57\x4f\x34\x73\x57\x4f\x30\x7a\x57\x37\x66\x55','\x45\x43\x6b\x4a\x69\x48\x4e\x64\x52\x38\x6b\x58\x69\x38\x6b\x6d','\x57\x52\x4f\x63\x57\x4f\x75\x56','\x57\x52\x57\x63\x57\x51\x47\x77\x6c\x72\x76\x4d\x7a\x5a\x6d\x57\x57\x51\x71','\x57\x35\x74\x63\x55\x67\x5a\x64\x49\x53\x6f\x5a','\x57\x50\x68\x64\x50\x77\x43\x63\x57\x35\x64\x63\x4b\x43\x6f\x63\x41\x57','\x57\x51\x52\x63\x50\x4c\x4b\x33','\x57\x37\x57\x68\x77\x43\x6f\x71\x57\x50\x38','\x57\x4f\x35\x52\x64\x59\x72\x69\x63\x43\x6b\x78\x57\x37\x65','\x57\x50\x78\x64\x50\x43\x6f\x4e\x46\x53\x6f\x6d\x57\x36\x78\x63\x53\x43\x6b\x4d\x57\x4f\x43','\x57\x50\x33\x63\x49\x38\x6f\x64\x57\x35\x33\x64\x55\x4b\x56\x64\x4c\x6d\x6f\x77','\x57\x52\x79\x67\x57\x4f\x71\x39\x77\x61\x6d','\x6f\x31\x2f\x64\x54\x6d\x6b\x43\x57\x52\x64\x63\x50\x61','\x57\x52\x6a\x6e\x69\x4d\x30\x6b','\x57\x34\x62\x75\x69\x63\x4a\x63\x53\x6d\x6f\x46\x62\x43\x6f\x74','\x57\x37\x57\x45\x57\x52\x52\x64\x49\x77\x58\x38\x77\x43\x6b\x45','\x57\x37\x47\x47\x79\x38\x6f\x53\x57\x50\x4a\x64\x53\x43\x6f\x78','\x57\x52\x38\x76\x57\x51\x2f\x63\x47\x77\x58\x32\x74\x6d\x6b\x79','\x57\x50\x43\x78\x57\x50\x6a\x73','\x57\x4f\x37\x64\x4b\x6d\x6f\x79\x72\x57','\x43\x43\x6b\x34\x61\x38\x6f\x77\x73\x53\x6f\x76','\x57\x50\x33\x63\x49\x6d\x6f\x50\x57\x4f\x4e\x63\x55\x58\x64\x63\x4d\x53\x6f\x74','\x57\x52\x4b\x68\x57\x4f\x33\x64\x51\x38\x6f\x6a\x57\x4f\x52\x63\x53\x32\x71','\x57\x35\x79\x62\x41\x38\x6b\x55\x74\x47','\x57\x35\x52\x63\x53\x71\x75\x41\x57\x37\x4f','\x57\x37\x4a\x64\x55\x58\x44\x47','\x57\x4f\x71\x55\x76\x78\x4f\x66\x57\x4f\x79\x30\x57\x4f\x56\x63\x47\x67\x33\x64\x52\x78\x64\x63\x50\x61','\x57\x51\x68\x63\x50\x53\x6b\x41\x57\x37\x53\x58\x79\x4c\x43\x4f','\x57\x34\x4e\x63\x49\x38\x6f\x4c\x72\x43\x6b\x2b\x42\x53\x6b\x69\x57\x36\x33\x63\x52\x47\x39\x4c\x43\x30\x71','\x57\x52\x75\x43\x57\x51\x4b\x6c\x67\x61','\x57\x34\x35\x4c\x57\x34\x39\x75\x77\x6d\x6b\x65\x57\x52\x71\x72\x57\x50\x52\x64\x4c\x72\x68\x63\x52\x47','\x57\x52\x56\x63\x55\x4a\x46\x63\x54\x38\x6f\x6c\x57\x4f\x68\x64\x56\x71','\x62\x4e\x61\x57\x74\x6d\x6f\x59','\x57\x35\x52\x63\x56\x5a\x7a\x43\x57\x4f\x2f\x64\x4c\x38\x6f\x74\x79\x47','\x57\x36\x72\x45\x73\x74\x64\x64\x52\x30\x75\x66\x70\x61','\x57\x4f\x37\x63\x47\x66\x37\x64\x4c\x59\x64\x64\x4b\x75\x5a\x64\x50\x61','\x57\x52\x52\x64\x4c\x58\x37\x63\x55\x43\x6b\x42\x42\x43\x6b\x72\x73\x67\x62\x42\x57\x36\x37\x64\x4e\x47','\x57\x52\x37\x64\x4d\x33\x56\x64\x56\x6d\x6b\x2b','\x62\x4a\x37\x64\x4a\x38\x6b\x6e\x64\x32\x56\x63\x4c\x68\x4e\x64\x52\x53\x6b\x2b\x57\x50\x6a\x72','\x74\x75\x44\x4b\x57\x34\x72\x46','\x57\x37\x6e\x78\x6c\x5a\x46\x63\x53\x6d\x6b\x75\x71\x31\x7a\x52','\x57\x50\x52\x64\x50\x38\x6f\x72','\x57\x35\x31\x32\x57\x36\x33\x64\x4b\x43\x6b\x65\x63\x61','\x57\x35\x5a\x63\x4a\x63\x75\x54\x57\x34\x4a\x63\x50\x57','\x57\x51\x42\x63\x56\x65\x57\x4c\x57\x37\x56\x64\x56\x71','\x57\x50\x69\x78\x57\x4f\x72\x70\x57\x34\x54\x64\x57\x37\x31\x4a','\x57\x34\x76\x2f\x57\x37\x52\x63\x4c\x53\x6f\x64\x75\x4d\x58\x4a','\x75\x67\x46\x63\x53\x38\x6b\x4f\x57\x37\x42\x63\x48\x61'];_0x5cd4=function(){return _0x11953b;};return _0x5cd4();}function _0x584a21(_0x5c5d27){const _0x73f60d=_0x1c8bef;return Buffer[_0x73f60d(0x219,'\x25\x52\x73\x73')]([_0x5c5d27['\x69\x76'],_0x5c5d27[_0x73f60d(0x22c,'\x72\x69\x76\x47')],_0x5c5d27[_0x73f60d(0x1f8,'\x58\x4c\x5a\x23')+'\x78\x74']]);}function _0xd2b4e5(_0x5ae63d){const _0x5b7e49=_0x1c8bef,_0x3ebaab={};_0x3ebaab[_0x5b7e49(0x1fd,'\x37\x66\x69\x4b')]=function(_0x37e825,_0x455e74){return _0x37e825<_0x455e74;},_0x3ebaab[_0x5b7e49(0x1e2,'\x36\x2a\x23\x4f')]=_0x5b7e49(0x23a,'\x25\x28\x75\x29')+_0x5b7e49(0x21b,'\x5a\x61\x6a\x51')+_0x5b7e49(0x1ff,'\x63\x4c\x26\x49')+'\x6f\x20\x73\x68\x6f\x72\x74';const _0x202e0f=_0x3ebaab;if(!Buffer[_0x5b7e49(0x1e5,'\x5d\x5a\x73\x37')](_0x5ae63d)||_0x202e0f[_0x5b7e49(0x1d5,'\x55\x6c\x33\x6b')](_0x5ae63d['\x6c\x65\x6e\x67\x74\x68'],_0x110775+_0x17f1d0+(0x13ed*0x1+-0x5*-0x67c+-0x68b*0x8)))throw new Error(_0x202e0f[_0x5b7e49(0x1c5,'\x4d\x63\x77\x44')]);const _0x3fecd2=_0x5ae63d[_0x5b7e49(0x240,'\x28\x36\x55\x47')](0x1*0xf67+-0xaf8+0x46f*-0x1,_0x110775),_0xdef19f=_0x5ae63d['\x73\x75\x62\x61\x72\x72\x61\x79'](_0x110775,_0x110775+_0x17f1d0),_0x3b0852=_0x5ae63d[_0x5b7e49(0x208,'\x55\x6c\x33\x6b')](_0x110775+_0x17f1d0),_0x3331e1={};return _0x3331e1[_0x5b7e49(0x1fb,'\x5a\x61\x6a\x51')+'\x78\x74']=_0x3b0852,_0x3331e1['\x69\x76']=_0x3fecd2,_0x3331e1[_0x5b7e49(0x1d8,'\x4a\x5e\x67\x58')]=_0xdef19f,_0x3331e1;}const _0x245069={};_0x245069[_0x1c8bef(0x1e8,'\x4d\x63\x77\x44')+'\x4d']=_0x155c5f,_0x245069[_0x1c8bef(0x1f1,'\x6c\x30\x38\x2a')+'\x53']=_0x101ea4,_0x245069[_0x1c8bef(0x1f5,'\x74\x63\x7a\x44')]=_0x110775,_0x245069[_0x1c8bef(0x206,'\x6e\x46\x32\x51')+'\x53']=_0x17f1d0,_0x245069[_0x1c8bef(0x1d1,'\x44\x31\x4d\x30')+_0x1c8bef(0x236,'\x44\x31\x4d\x30')]=_0x197cfd,_0x245069[_0x1c8bef(0x1ef,'\x36\x2a\x23\x4f')]=_0x56397e,_0x245069['\x64\x65\x63\x72\x79\x70\x74']=_0x57f0a3,_0x245069[_0x1c8bef(0x1eb,'\x49\x42\x45\x67')]=_0x584a21,_0x245069[_0x1c8bef(0x239,'\x72\x4e\x71\x5b')]=_0xd2b4e5,module[_0x1c8bef(0x207,'\x28\x36\x55\x47')]=_0x245069;
|
|
1
|
+
// AES-256-GCM symmetric encryption for sealed / privacy computing blobs.
|
|
2
|
+
// Keys are generated locally and never leave the client.
|
|
3
|
+
|
|
4
|
+
const crypto = require('crypto');
|
|
5
|
+
|
|
6
|
+
const ALGORITHM = 'aes-256-gcm';
|
|
7
|
+
const IV_BYTES = 12;
|
|
8
|
+
const TAG_BYTES = 16;
|
|
9
|
+
const KEY_BYTES = 32;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generate a random 256-bit key.
|
|
13
|
+
* @returns {Buffer}
|
|
14
|
+
*/
|
|
15
|
+
function generateKey() {
|
|
16
|
+
return crypto.randomBytes(KEY_BYTES);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Encrypt plaintext with AES-256-GCM.
|
|
21
|
+
* @param {Buffer|string} plaintext
|
|
22
|
+
* @param {Buffer} key - 32-byte key
|
|
23
|
+
* @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
|
|
24
|
+
*/
|
|
25
|
+
function encrypt(plaintext, key) {
|
|
26
|
+
if (!key || key.length !== KEY_BYTES) {
|
|
27
|
+
throw new Error('crypto: key must be exactly 32 bytes');
|
|
28
|
+
}
|
|
29
|
+
const iv = crypto.randomBytes(IV_BYTES);
|
|
30
|
+
const cipher = crypto.createCipheriv(ALGORITHM, key, iv);
|
|
31
|
+
const input = Buffer.isBuffer(plaintext) ? plaintext : Buffer.from(plaintext, 'utf8');
|
|
32
|
+
const encrypted = Buffer.concat([cipher.update(input), cipher.final()]);
|
|
33
|
+
const authTag = cipher.getAuthTag();
|
|
34
|
+
return { ciphertext: encrypted, iv, authTag };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Decrypt ciphertext with AES-256-GCM.
|
|
39
|
+
* @param {Buffer} ciphertext
|
|
40
|
+
* @param {Buffer} key - 32-byte key
|
|
41
|
+
* @param {Buffer} iv - 12-byte IV
|
|
42
|
+
* @param {Buffer} authTag - 16-byte auth tag
|
|
43
|
+
* @returns {Buffer} plaintext
|
|
44
|
+
*/
|
|
45
|
+
function decrypt(ciphertext, key, iv, authTag) {
|
|
46
|
+
if (!key || key.length !== KEY_BYTES) {
|
|
47
|
+
throw new Error('crypto: key must be exactly 32 bytes');
|
|
48
|
+
}
|
|
49
|
+
const decipher = crypto.createDecipheriv(ALGORITHM, key, iv);
|
|
50
|
+
decipher.setAuthTag(authTag);
|
|
51
|
+
return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Pack ciphertext + iv + authTag into a single buffer for transport.
|
|
56
|
+
* Layout: [iv (12)] [authTag (16)] [ciphertext (...)]
|
|
57
|
+
* @param {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }} parts
|
|
58
|
+
* @returns {Buffer}
|
|
59
|
+
*/
|
|
60
|
+
function pack(parts) {
|
|
61
|
+
return Buffer.concat([parts.iv, parts.authTag, parts.ciphertext]);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Unpack a buffer produced by pack().
|
|
66
|
+
* @param {Buffer} packed
|
|
67
|
+
* @returns {{ ciphertext: Buffer, iv: Buffer, authTag: Buffer }}
|
|
68
|
+
*/
|
|
69
|
+
function unpack(packed) {
|
|
70
|
+
if (!Buffer.isBuffer(packed) || packed.length < IV_BYTES + TAG_BYTES + 1) {
|
|
71
|
+
throw new Error('crypto: packed buffer too short');
|
|
72
|
+
}
|
|
73
|
+
const iv = packed.subarray(0, IV_BYTES);
|
|
74
|
+
const authTag = packed.subarray(IV_BYTES, IV_BYTES + TAG_BYTES);
|
|
75
|
+
const ciphertext = packed.subarray(IV_BYTES + TAG_BYTES);
|
|
76
|
+
return { ciphertext, iv, authTag };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
module.exports = {
|
|
80
|
+
ALGORITHM,
|
|
81
|
+
KEY_BYTES,
|
|
82
|
+
IV_BYTES,
|
|
83
|
+
TAG_BYTES,
|
|
84
|
+
generateKey,
|
|
85
|
+
encrypt,
|
|
86
|
+
decrypt,
|
|
87
|
+
pack,
|
|
88
|
+
unpack,
|
|
89
|
+
};
|