@sparrowai/sparrow-mcp 1.1.6 → 1.1.8
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/dist/.tsbuildinfo +1 -1
- package/dist/scripts/mcp-test/mcp-client.js +1 -1
- package/dist/scripts/test-runner/check-failed-tests.js +1 -1
- package/dist/scripts/test-runner/compare-responses.js +1 -1
- package/dist/scripts/test-runner/standalone-test-fixed-header.js +1 -1
- package/dist/scripts/test-runner/standalone-test.js +1 -1
- package/dist/src/config/appConfig.js +1 -1
- package/dist/src/config/constants.js +1 -1
- package/dist/src/controllers/__tests__/analysis.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/sast.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/sca.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/security.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/system.controller.test.js +1 -1
- package/dist/src/controllers/analysis.controller.js +1 -1
- package/dist/src/controllers/sast.controller.d.ts +8 -4
- package/dist/src/controllers/sast.controller.js +1 -1
- package/dist/src/controllers/sca.controller.d.ts +8 -4
- package/dist/src/controllers/sca.controller.js +1 -1
- package/dist/src/controllers/security.controller.js +1 -1
- package/dist/src/controllers/system.controller.js +1 -1
- package/dist/src/schemas/tool.schemas.d.ts +8 -0
- package/dist/src/schemas/tool.schemas.js +1 -1
- package/dist/src/server.js +1 -1
- package/dist/src/services/__tests__/checker.service.test.js +1 -1
- package/dist/src/services/__tests__/llm.service.test.js +1 -1
- package/dist/src/services/__tests__/s3.service.test.js +1 -1
- package/dist/src/services/__tests__/sparrow.service.test.js +1 -1
- package/dist/src/services/analysis.service.d.ts +20 -23
- package/dist/src/services/analysis.service.js +1 -1
- package/dist/src/services/checker.service.js +1 -1
- package/dist/src/services/llm/AnthropicProvider.js +1 -1
- package/dist/src/services/llm/BedrockProvider.js +1 -1
- package/dist/src/services/llm/GeminiProvider.js +1 -1
- package/dist/src/services/llm/LLMFactory.js +1 -1
- package/dist/src/services/llm/LLMProvider.js +1 -1
- package/dist/src/services/llm/OllamaProvider.js +1 -1
- package/dist/src/services/llm/OpenAIProvider.js +1 -1
- package/dist/src/services/llm.service.js +1 -1
- package/dist/src/services/s3.service.js +1 -1
- package/dist/src/services/sparrow.service.js +1 -1
- package/dist/src/types/types.d.ts +5 -0
- package/dist/src/types/types.js +1 -1
- package/dist/src/utils/__tests__/crypto.util.test.js +1 -1
- package/dist/src/utils/__tests__/diff.util.test.js +1 -1
- package/dist/src/utils/__tests__/fileManager.test.js +1 -1
- package/dist/src/utils/__tests__/fileManagerSecure.test.js +1 -1
- package/dist/src/utils/__tests__/logger.test.js +1 -1
- package/dist/src/utils/crypto.util.js +1 -1
- package/dist/src/utils/diff.util.js +1 -1
- package/dist/src/utils/fileManager.js +1 -1
- package/dist/src/utils/fileManagerSecure.js +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a4_0x4a81b5=a4_0x56a0;(function(_0x178a6c,_0x136210){const _0x55fa5d=a4_0x56a0,_0x46b979=_0x178a6c();while(!![]){try{const _0x25d740=-parseInt(_0x55fa5d(0x2ea))/0x1*(-parseInt(_0x55fa5d(0x289))/0x2)+-parseInt(_0x55fa5d(0x1ee))/0x3*(-parseInt(_0x55fa5d(0x1ff))/0x4)+parseInt(_0x55fa5d(0x233))/0x5+-parseInt(_0x55fa5d(0x15b))/0x6+parseInt(_0x55fa5d(0x18f))/0x7*(-parseInt(_0x55fa5d(0x1b5))/0x8)+-parseInt(_0x55fa5d(0x17d))/0x9+parseInt(_0x55fa5d(0x111))/0xa;if(_0x25d740===_0x136210)break;else _0x46b979['push'](_0x46b979['shift']());}catch(_0x12edfe){_0x46b979['push'](_0x46b979['shift']());}}}(a4_0x57d8,0x991cb));const a4_0x15d9f9=(function(){let _0x45bdbd=!![];return function(_0x5da143,_0x3b4873){const _0x491cc1=_0x45bdbd?function(){const _0x398e41=a4_0x56a0;if(_0x3b4873){const _0x5e8149=_0x3b4873[_0x398e41(0x212)](_0x5da143,arguments);return _0x3b4873=null,_0x5e8149;}}:function(){};return _0x45bdbd=![],_0x491cc1;};}()),a4_0x22ca15=a4_0x15d9f9(this,function(){const _0x1642b3=a4_0x56a0;return a4_0x22ca15[_0x1642b3(0x23b)]()[_0x1642b3(0x146)](_0x1642b3(0x18b)+'+$')[_0x1642b3(0x23b)]()[_0x1642b3(0x2bb)+'r'](a4_0x22ca15)[_0x1642b3(0x146)](_0x1642b3(0x18b)+'+$');});a4_0x22ca15();import'dotenv/config';import{McpClient}from'../mcp-test/mcp-client.js';import a4_0x3e8751 from'fs';import a4_0x1d86bf from'path';import{fileURLToPath}from'url';const __filename=fileURLToPath(import.meta.url),__dirname=a4_0x1d86bf[a4_0x4a81b5(0x1bf)](__filename),SPARROW_BASE_URL=process.env.SPARROW_API_URL||a4_0x4a81b5(0x2ab)+a4_0x4a81b5(0xe9)+a4_0x4a81b5(0x1a9)+'ai',MAX_POLL_ATTEMPTS=0x12c,POLL_INTERVAL_MS=0xbb8;function getAnalysisLink(_0x4dd03c){const _0x45ee78=a4_0x4a81b5;return SPARROW_BASE_URL+(_0x45ee78(0x2a5)+_0x45ee78(0x103)+'ysis/')+_0x4dd03c;}async function pollUntilComplete(_0x24ff0c,_0x29d6e9){const _0x51dabe=a4_0x4a81b5,_0x47be89={};_0x47be89[_0x51dabe(0xf1)]=_0x51dabe(0x175);const _0x2ab7c5=_0x47be89;let _0x864625=0x0;while(_0x864625<MAX_POLL_ATTEMPTS){const _0x1fc8b7={};_0x1fc8b7['analysisId']=_0x29d6e9;const _0x1efe60={};_0x1efe60[_0x51dabe(0x21d)]='get_analys'+_0x51dabe(0x155),_0x1efe60['arguments']=_0x1fc8b7;const _0x420241=await _0x24ff0c['request'](_0x51dabe(0x279),_0x1efe60),_0x14de74=String(_0x420241['content'][0x0][_0x51dabe(0xe2)])['toUpperCas'+'e']();if(_0x14de74[_0x51dabe(0x13f)]('COMPLETE')||_0x14de74[_0x51dabe(0x13f)](_0x2ab7c5[_0x51dabe(0xf1)])||_0x14de74[_0x51dabe(0x13f)](_0x51dabe(0x243))||_0x14de74[_0x51dabe(0x13f)](_0x51dabe(0x132))){const _0x1b7126={};return _0x1b7126[_0x51dabe(0x225)]=_0x51dabe(0x1aa),_0x1b7126[_0x51dabe(0x28e)]=_0x420241['content'][0x0]['text'],_0x1b7126;}await new Promise(_0x2f4be3=>setTimeout(_0x2f4be3,POLL_INTERVAL_MS)),_0x864625++;}throw new Error(_0x51dabe(0x20d)+_0x51dabe(0x26e)+'r\x20'+_0x864625+'\x20attempts');}function isErrorResponse(_0x5b3979){const _0x13cdef=a4_0x4a81b5,_0x13588c={};_0x13588c[_0x13cdef(0x29b)]=_0x13cdef(0x28b),_0x13588c[_0x13cdef(0xe5)]=_0x13cdef(0xcf);const _0x210cd0=_0x13588c;if(_0x5b3979[_0x13cdef(0x1d9)]===!![])return!![];if(_0x5b3979[_0x13cdef(0x2d5)+'Content']?.['error'])return!![];const _0xf96a85=_0x5b3979[_0x13cdef(0xc4)]?.[0x0]?.[_0x13cdef(0xe2)]?.['toLowerCas'+'e']()||'';return _0xf96a85[_0x13cdef(0x13f)](_0x210cd0[_0x13cdef(0x29b)])||_0xf96a85[_0x13cdef(0x13f)](_0x210cd0[_0x13cdef(0xe5)]);}function a4_0x56a0(_0x314fa9,_0x1ef8c8){_0x314fa9=_0x314fa9-0xbd;const _0x4d7ffa=a4_0x57d8();let _0x22ca15=_0x4d7ffa[_0x314fa9];return _0x22ca15;}function escapeTsvField(_0x1dfc75,_0x4b7f86=![]){const _0x464f3f=a4_0x4a81b5;if(!_0x1dfc75)return'\x22\x22';let _0x1b04ef=_0x1dfc75;return _0x4b7f86?(_0x1b04ef=_0x1b04ef['replace'](/\r\n/g,'\x0a'),_0x1b04ef=_0x1b04ef[_0x464f3f(0x23f)](/\t/g,'\x20')):(_0x1b04ef=_0x1b04ef[_0x464f3f(0x23f)](/\r?\n/g,'\x20'),_0x1b04ef=_0x1b04ef[_0x464f3f(0x23f)](/\t/g,'\x20'),_0x1b04ef=_0x1b04ef['replace'](/\s+/g,'\x20'),_0x1b04ef=_0x1b04ef[_0x464f3f(0x131)]()),_0x1b04ef=_0x1b04ef['replace'](/"/g,'\x22\x22'),'\x22'+_0x1b04ef+'\x22';}function saveTsv(_0x50806e,_0x25f472){const _0xe02852=a4_0x4a81b5,_0x5700cc={};_0x5700cc[_0xe02852(0x247)]=_0xe02852(0x204)+_0xe02852(0x280),_0x5700cc[_0xe02852(0x251)]=function(_0x471b6a,_0x22ae9e){return _0x471b6a===_0x22ae9e;},_0x5700cc[_0xe02852(0x20f)]=_0xe02852(0x2f3),_0x5700cc[_0xe02852(0x2c5)]=_0xe02852(0x29d);const _0x23717b=_0x5700cc,_0x1e8457=['테스트ID',_0xe02852(0x1b9),_0xe02852(0x297),_0x23717b[_0xe02852(0x20f)],_0xe02852(0xd4),_0xe02852(0xc6),_0xe02852(0x248),_0xe02852(0x22e),_0xe02852(0x1e3),'상태',_0x23717b['IWHYD'],'결과',_0xe02852(0x1d1),_0xe02852(0x154),'비고'],_0x2978fb=[_0x1e8457[_0xe02852(0x1db)](_0x3be33b=>escapeTsvField(_0x3be33b))[_0xe02852(0x152)]('\x09')],_0x4caa6d=Object[_0xe02852(0x252)](_0x50806e)['sort']((_0x50f4f6,_0x27d9c1)=>{const _0x1ece06=_0xe02852;if(_0x23717b[_0x1ece06(0x251)](_0x1ece06(0x21a),_0x1ece06(0x21a))){const _0x27a0a4=parseInt(_0x50f4f6[0x0][_0x1ece06(0x23f)]('TC','')),_0x6d96da=parseInt(_0x27d9c1[0x0][_0x1ece06(0x23f)]('TC',''));return _0x27a0a4-_0x6d96da;}else{const _0x5f4eab={};return _0x5f4eab[_0x1ece06(0x270)]=!![],_0x5f4eab['rationale']=_0x23717b[_0x1ece06(0x247)],_0x5f4eab;}});for(const [_0x436202,_0x466860]of _0x4caa6d){const _0x2f846a=BUILTIN_TESTS[_0xe02852(0x261)](_0x543d4c=>_0x543d4c['id']===_0x436202);if(!_0x2f846a)continue;let _0x1aa59f=_0x466860[_0xe02852(0x225)];_0x466860['rationale'][_0xe02852(0x296)](_0xe02852(0x209))&&(_0x1aa59f=_0xe02852(0x209));let _0x2ae1e1=_0x466860[_0xe02852(0x135)];_0x466860[_0xe02852(0x20a)]&&(_0x2ae1e1+='\x0a\x0a---\x20Tool'+_0xe02852(0x1ed)+'-\x0a'+_0x466860[_0xe02852(0x20a)]);const _0x157608=[_0x436202,_0x2f846a[_0xe02852(0x145)],_0x2f846a[_0xe02852(0x192)],_0x2f846a[_0xe02852(0x21d)],_0x2f846a['preconditi'+'on']||'',_0x2f846a[_0xe02852(0x14e)],_0x2f846a[_0xe02852(0x134)],_0x2f846a[_0xe02852(0x189)]||'',_0x2f846a[_0xe02852(0x118)],'완료',_0xe02852(0x13e)+'y',_0x1aa59f,_0x2ae1e1,_0x466860[_0xe02852(0x15d)+'nk']||'',''];_0x2978fb[_0xe02852(0x125)](_0x157608[_0xe02852(0x1db)]((_0x23a55e,_0x8706a6)=>escapeTsvField(_0x23a55e,_0x8706a6===0x5||_0x8706a6===0xc))['join']('\x09'));}a4_0x3e8751[_0xe02852(0x161)+_0xe02852(0x2a2)](_0x25f472,_0x2978fb['join']('\x0a'),_0xe02852(0x133));}function a4_0x57d8(){const _0x5e6972=['passed','스\x20사용','\x20생성:\x20SPARR','단일\x20파일\x20분석\x20(','generate_s','.\x20analysis','toFixed','크기\x20제한\x20검증:\x20','으로\x20의존성\x20파일\x20','tools/call','로\x20배열\x20입력\x0a2.','\x20req.query','내장\x20테스트\x20케이스','폴더\x20전체\x20SCA\x20','설정\x0a2.\x20도구\x20실','ecure_code','\x20수\x20없어\x20건너뜀','IduoO','경계조건','분석\x20상태\x20확인됨:','경로\x20입력\x0a2.\x20도','\x20코드\x20입력\x0a2.\x20','alysis_res','GmVJp','\x20\x20\x20\x20\x20\x20Stri','2ozNybL','ipt\x20파일\x20내용\x20','error','╚═════════','오류\x20또는\x20즉시\x20반','result','TC041','\x20서비스\x20장애\x20시뮬','descriptio','aScript\x20파일','🧪\x20Sparrow\x20','GfCOI','경로\x20입력','startsWith','테스트분류','미완료\x20분석으로\x20코','QjxGj','SCA\x20취약점\x20세부','Oegxi','lddum','담당자','les_sast','1.\x20ZIP\x20파일\x20','OW_API_KEY','extract\x20an','ync','les_sca','\x20테스트\x20(MCP\x20','/ko/reques','\x20직접\x20설정:','N/A\x20-\x20의존성\x20','SCA\x20분석\x20','\x20=\x20\x22SELECT','TC044','https://on','Y=\x22your-ke','progress\x20값','t\x20userId\x20=','TC082','미완료\x20SCA\x20분석','p_sast','.\x20세부정보\x20확인','완료\x0a2.\x20결과\x20조','MLSmq','sOXYt','1.\x20빈\x20경로\x20입력','sOOJn','1.\x20폴더에서\x20자동','ers\x20WHERE\x20','_API_KEY\x20미','constructo','오류\x20메시지','단계별\x20알림\x20검증됨','프로젝트','1.\x20fileCon','\x20분석\x20시도','짧은\x20확인\x20간격\x20(','1.\x20대용량\x20ZIP','드\x20생성','\x20\x20\x20실패:\x20','IWHYD','기\x20제한\x20검증됨','스트\x20필요\x20(코드\x20','\x20병렬\x20실행\x20완료\x20','ser\x27,\x20(req','TC030','스트\x20필요\x20(LLM','.\x20진행\x20추적','y\x22\x0a','.\x20즉시\x20결과\x20조회','ller','TC031','Diff\x20형식\x20확인','message','\x20심각도\x20정보','TC091','structured','server.js','existsSync','v:SPARROW_','\x20분석','타임아웃\x20처리','\x20정보','package.js','1.\x20분석\x20시작\x0a2','TC021','\x20의존성을\x20가진\x20p','all','es.send(qu','exit','UserContro','troller\x20{\x0a','컴포넌트\x20세부정보\x20','1.\x20취약점\x20없는\x20','TC001','analysisId','filePaths','634856NZHuQL','ss\x20UserCon','nt.zip','mwVUY','sast','컴포넌트\x20목록,\x20취','석\x20→\x20결과','sername,\x20S','analyze_fo','테스트명','1.\x20취약점\x20목록\x20','N/A\x20-\x20수동\x20테','러리만\x20사용','1.\x20여러\x20파일\x20경','TC047','석\x20수락됨.\x20ID:','es/binary_','content','\x20ZIP\x20경로','테스트절차','기\x0a2.\x20상태\x20확인','A\x20분석\x20조회','fileName에\x20','\x20포함','제한\x20오류','CommandInj','\x20\x20\x201.\x20실행\x20폴','전체\x20워크플로우\x20E','validation','\x20추적\x20시도','n(String\x20u','분석\x0a2.\x20결과\x20조','1.\x20.txt\x20파일','사전조건','analyze_fi','rId;\x0a\x20\x20\x20\x20r','COMPLETE\x20반','public\x20cla','\x20\x20}\x0a}','결과\x20조회','1.\x20존재하지\x20않는','실행\x20오류:\x20','TC040','T\x20분석\x20성공','취약점\x20없는\x20코드\x20','1.\x20분석\x20진행\x20중','cwd','text','TC066','stringify','Bzdzi','Error\x20dete','readme.txt','log','demand.spa','파일명\x20입력\x0a2.\x20','../../','ZIP\x20크기\x20초과\x20','atSCL','TC083','미완료\x20분석\x20코드\x20','\x20\x20\x20\x20public','MJdAm','arguments','━━━━━━━━━━','검증됨\x20(수동\x20테스','get_sca_an','로\x20입력','id=\x22\x20+\x20use','30분\x20이상\x20소요\x20','p-test-res','SCA용\x20ZIP\x20크','cted','TC090','\x20파일','ZIP\x20파일\x20SAS','length','2E\x20검증\x20완료','\x20생성','de\x20with\x20SQ','tList/anal','테스트)','GsNEK','1.\x20여러\x20의존성\x20','1.\x20JavaScr','1.\x20대용량\x20폴더\x20','1.\x20잘못된\x20ana','결\x20성공\x0a','\x20FROM\x20user','미완료\x20분석\x20결과\x20','sparrow-mc','lysisId','Unified\x20Di','lysisId로\x20상','14444820ScusZq',']\x20ERROR\x20(','취약점\x20없는\x20분석\x20','대용량\x20폴더\x20ZIP','류\x20반환됨','컴포넌트\x20정보\x20확인','완료된\x20분석\x20상태\x20','priority','sca','s\x20WHERE\x20us','TC080','NullReturn','빈\x20취약점\x20목록','고\x20오류\x20확인\x20필요','warn','로\x20코드\x20생성','파일\x20없는\x20프로젝트','TC013','t\x20app\x20=\x20ex','상태\x20조회\x20성공:\x20','push','취약점\x20없는\x20오픈소','전체\x20흐름\x20성공','안전한\x20코드\x20생성\x20','ackage.jso','node','수정된\x20코드\x20반환','╔═════════','\x20완료.','is_results','TC062','실제\x20실행\x20검증됨\x20','trim','STOP','utf-8','expected','rationale','1.\x20안전한\x20코드\x20','분석\x0a2.\x20코드\x20생','task','\x20→\x20결과\x20→\x20코드','이\x20수락되었거나\x20오','lder_sca','예상된\x20오류\x20반환됨','le_sast','Antigravit','includes','TC067','ETTest.asp','request','\x22index.js\x22','워크플로우\x20검증\x20완','tool','search','\x20오류','/nonexiste','Id로\x20상태\x20조회','fileConten','TC046','크플로우','zpGre','procedure','정상동작','❌\x20테스트\x20실행\x20실','../../test','join','E2E','분석\x20링크','is_status','취약점\x200개','더에\x20.env\x20파일','\x0a✅\x20MCP\x20서버\x20','TC006','Diff\x20형식\x20검증','4742940pjgROs','\x20분석\x20성공','analysisLi','ontent\x20입력','.\x20도구\x20실행','XIVMj','writeFileS','분석\x20진행\x20추적\x20성','TC023','Name에\x20.js\x20','폴더\x20경로\x20없음','스트\x20필요\x20(타임아','\x0a2.\x20코드\x20생성\x20','999999999','1.\x20컴포넌트\x20목록','ysisId\x20반환','분석\x20상태\x20조회\x20성','1.\x20확장자\x20없는\x20','le_sca','0개\x20컴포넌트\x20또는','도구\x20실행','약점\x20정보','2.\x20도구\x20실행','tc/big_fil','취약점\x20정보\x20확인','✅\x20MCP\x20서버\x20연','SUCCESS','lder_sast','TC061','Client)\x20\x20\x20','now','TC077','오류\x20또는\x20경고','\x20ID','10517040wEZUqn','API_KEY\x20=\x20','의존성\x20파일\x20자동\x20','ROCESS\x20→\x20A','선스\x20정보','\x20파일로\x20수동\x20테스','여러\x20파일\x20전체\x20워','1.\x20취약점\x20있는\x20','ZIP\x20크기\x20검증\x20','SCA\x20결과\x20조회\x20','존재하지\x20않는\x20분석','ysis_progr','data','analyze_zi','(((.+)+)+)','\x20반환','ults','단일\x20항목\x20배열\x20분','7fYnoxe','⚠️\x20\x20경고:\x20SPA','stop','category','alysisId\x20f','✅\x20테스트\x20완료','ery);\x0a});','확장자\x20없는\x20파일명','TC022','태\x20조회','\x20\x20\x20통과:\x20','1.\x20빈\x20fileC','1.\x20코드\x20생성\x0a2','Vulnerable','\x20추적이\x20수락됨','\x20JavaScrip','.java','\x20경로\x20입력\x0a2.\x20','자동\x20탐색\x20검증됨\x20','진행\x20추적\x20검증됨','개만\x20배열에\x20입력\x0a','+\x20username','\x20반환\x20또는\x20크기\x20','1.\x20잘못된\x20ID로','all_langua','TC002','rrowcloud.','COMPLETE','TC084','\x20증가','s):','빈\x20파일\x20경로\x20배열','tring\x20pass','ss\x27);\x0acons','\x20\x20\x20\x20\x20\x20\x20║','지원하지\x20않는\x20언어','행률\x20확인','TC032','3732920wqilMS','1.\x20분석\x20완료\x0a2','석\x20검증됨\x20(ZIP','\x20생성\x20검증됨\x20(필','도구명','p_sca','.\x20상태\x20조회로\x20진','\x20+\x20\x22\x27\x22;\x0a\x20\x20','Egsel','됨\x20(수동\x20테스트\x20','dirname','1.\x201초\x20간격으로','TC010','취약점\x20없는\x20분석으','테스트\x20폴더를\x20찾을','\x20\x20\x20\x20\x20\x20-\x20Li','ire(\x27expre','ername=\x27\x22\x20','nt/file.ja','았습니다.','성\x20시도','L\x20injectio','\x20처리\x20검증됨','TC043','\x0a=========','확인됨','유도)','분석\x20실패\x20상태\x20조','판단근거','match','NALYSIS\x20→\x20','정상\x20동작','미완료\x20분석\x20상태\x20','최종\x20상태:\x20','fileName','ess','isError','get_analys','map','\x20분석이\x20수락됨','다중\x20파일\x20E2E\x20','SCA','전체\x20워크플로우\x20테','Empty.java','1.\x20빈\x20배열\x20입력','start','우선순위','ZyxZf','dist','EY가\x20설정되지\x20않','ectionASPN','스트\x20필요\x20(안전한','nux/Mac:\x20e','1.\x20실패한\x20분석\x20','\x20파일\x20경로\x20입력\x0a','======','\x20Output\x20--','1956081zMCpYA','readFileSy','\x20*\x20FROM\x20us','\x20\x22SELECT\x20*','AccessCont','TC020','yarnpkg/pa','(MCP):\x20다중\x20','입력\x0a3.\x20도구\x20실','대용량\x20ZIP\x20파일','-files/qa_','(MCP):\x20Jav','TC078','폴더\x20경로\x20없음\x20S','TC074','TC003','\x20MCP\x20-\x20자동화','4UaWHDP','MCP\x20자동\x20테스트','t:\x20Java\x20co',',\x20res)\x20=>\x20','단일\x20Java\x20파일','테스트\x20파일을\x20찾을',':\x20INIT','filter','Content','word)\x20{\x0a\x20\x20','N/A','toolOutput','\x20조회','══════════','Polling\x20ti','index.js','IMkDG','\x20시작됨.','\x20\x20\x202.\x20환경변수','apply','EY\x20설정을\x20해제하','folderPath','ZIP\x20파일\x20없음','\x20상태가\x20반환됨','폴더\x20전체\x20SAST','\x20\x20\x20\x20\x20\x20-\x20Wi',']\x20Running:','yBmkL','레이션)','TC011','name','ng\x20query\x20=','\x20SAST\x20분석\x20성','track_anal','JSgAX','단계별\x20알림\x20확인','FAIL\x20상태\x20처리','ckage.json','status','TC049','배열\x201개)','\x20장애\x20시뮬레이션','취약점\x20세부정보\x20확','완료된\x20분석\x20결과\x20','1.\x20ANALYSI','정상적으로\x20anal','severity,\x20','테스트데이터','ROW_API_KE','1.\x20안전한\x20라이브','resolve','S\x20단계\x20진입\x0a2.','1607235CpOten','zipFilePat','1.\x20파일\x20경로\x201','분석\x20성공','1초)','오류처리','1.\x20폴더\x20경로\x20입','개\x20취약점','toString','CVE,\x20CVSS,','tent에\x20Java','오류로\x20분석\x20실패\x20','replace','.id;\x0a\x20\x20\x20\x20c','ff\x20형식','오류\x20처리','FAIL','오류가\x20예상되었으나','파일\x20경로\x20입력\x0a2','n\x20포함','NNpMA','기대결과','oFVnz','INIT\x20→\x20REA','1.\x20LLM\x20서비스','크기\x20제한\x20처리','개\x20TC)\x20====','1.\x20결과\x20조회\x0a2','1.\x20package','RROW_API_K','LdzCB','entries','tc.zip','력\x0a2.\x20도구\x20실행','{\x0a\x20\x20\x20\x20cons','\x0a2.\x20도구\x20실행','오류\x20메시지\x20반환','파일로\x20수동\x20테스트','ess\x20=\x20requ','단계별\x20알림','1.\x20SPARROW','Test.java','권장)','ller.java\x20','IZYIW','개\x20취약점\x20발견.','find','\x20반환\x0astatus','rom\x20result','TC070','1.\x20분석\x20→\x20추적','검증됨','.\x20diff\x20필드\x20','짧은\x20간격\x20폴링\x20검','oIBBa','상태\x20반환','생성\x20오류\x20처리\x20검','ZIP\x20SAST\x20분','son\x20포함\x20폴더\x20','meout\x20afte','TC065'];a4_0x57d8=function(){return _0x5e6972;};return a4_0x57d8();}const qaTcDir=a4_0x1d86bf[a4_0x4a81b5(0x231)](__dirname,a4_0x4a81b5(0x151)+a4_0x4a81b5(0x1f8)+'tc'),sastDir=a4_0x1d86bf['resolve'](qaTcDir,a4_0x4a81b5(0x2ee)),scaDir=a4_0x1d86bf[a4_0x4a81b5(0x231)](qaTcDir,a4_0x4a81b5(0x119)),sastAllLanguageDir=a4_0x1d86bf[a4_0x4a81b5(0x231)](sastDir,a4_0x4a81b5(0x1a7)+'ge'),javaFile=a4_0x1d86bf[a4_0x4a81b5(0x231)](sastAllLanguageDir,a4_0x4a81b5(0x11c)+'.java'),jsFile=a4_0x1d86bf['resolve'](sastAllLanguageDir,a4_0x4a81b5(0x1f2)+'rolAzure.j'+'s'),safeJavaFile=a4_0x1d86bf['resolve'](sastAllLanguageDir,a4_0x4a81b5(0xcc)+a4_0x4a81b5(0x1e7)+a4_0x4a81b5(0x141)+'x'),javaContent=a4_0x3e8751[a4_0x4a81b5(0x2d7)](javaFile)?a4_0x3e8751['readFileSy'+'nc'](javaFile,a4_0x4a81b5(0x133)):'',jsContent=a4_0x3e8751[a4_0x4a81b5(0x2d7)](jsFile)?a4_0x3e8751[a4_0x4a81b5(0x1ef)+'nc'](jsFile,a4_0x4a81b5(0x133)):'',safeJavaContent=a4_0x3e8751['existsSync'](safeJavaFile)?a4_0x3e8751[a4_0x4a81b5(0x1ef)+'nc'](safeJavaFile,a4_0x4a81b5(0x133)):'',packageJsonFile=a4_0x1d86bf[a4_0x4a81b5(0x231)](scaDir,a4_0x4a81b5(0x1f4)+a4_0x4a81b5(0x224)),packageJsonContent=a4_0x3e8751[a4_0x4a81b5(0x2d7)](packageJsonFile)?a4_0x3e8751[a4_0x4a81b5(0x1ef)+'nc'](packageJsonFile,a4_0x4a81b5(0x133)):'',testFilesDir=sastAllLanguageDir,BUILTIN_JAVA_CODE=a4_0x4a81b5(0xd8)+a4_0x4a81b5(0x2eb)+a4_0x4a81b5(0x2e4)+a4_0x4a81b5(0xf0)+'\x20void\x20logi'+a4_0x4a81b5(0xd1)+a4_0x4a81b5(0x2f1)+a4_0x4a81b5(0x1af)+a4_0x4a81b5(0x208)+a4_0x4a81b5(0x288)+a4_0x4a81b5(0x21e)+a4_0x4a81b5(0x1f1)+a4_0x4a81b5(0x10b)+a4_0x4a81b5(0x11a)+a4_0x4a81b5(0x1c6)+a4_0x4a81b5(0x1a4)+a4_0x4a81b5(0x1bc)+a4_0x4a81b5(0xd9),BUILTIN_JS_CODE='const\x20expr'+a4_0x4a81b5(0x259)+a4_0x4a81b5(0x1c5)+a4_0x4a81b5(0x1b0)+a4_0x4a81b5(0x123)+'press();\x0aa'+'pp.get(\x27/u'+a4_0x4a81b5(0x2c9)+a4_0x4a81b5(0x202)+a4_0x4a81b5(0x255)+a4_0x4a81b5(0x2ae)+a4_0x4a81b5(0x27b)+a4_0x4a81b5(0x240)+'onst\x20query'+a4_0x4a81b5(0x2a9)+a4_0x4a81b5(0x1f0)+a4_0x4a81b5(0x2b9)+a4_0x4a81b5(0xf7)+a4_0x4a81b5(0xd6)+a4_0x4a81b5(0x2e1)+a4_0x4a81b5(0x195);function extractAnalysisId(_0x27b7a9){const _0x492590=a4_0x4a81b5;if(_0x27b7a9[_0x492590(0x2d5)+_0x492590(0x207)]&&_0x27b7a9[_0x492590(0x2d5)+_0x492590(0x207)][_0x492590(0x2e8)])return String(_0x27b7a9[_0x492590(0x2d5)+_0x492590(0x207)][_0x492590(0x2e8)]);const _0x1be57c=_0x27b7a9[_0x492590(0xc4)][0x0][_0x492590(0xe2)],_0x1e40cf=_0x1be57c[_0x492590(0x1d2)](/Analysis ID:\s*(\d+)/i)||_0x1be57c[_0x492590(0x1d2)](/분석 ID:\s*(\d+)/i);if(!_0x1e40cf)throw new Error('Failed\x20to\x20'+_0x492590(0x2a1)+_0x492590(0x193)+_0x492590(0x263)+':\x20'+_0x1be57c);return _0x1e40cf[0x1];}const BUILTIN_TESTS=[{'id':a4_0x4a81b5(0x2e7),'tool':'analyze_fi'+a4_0x4a81b5(0x13d),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x203)+a4_0x4a81b5(0x21f)+'공','procedure':a4_0x4a81b5(0x2bf)+a4_0x4a81b5(0x23d)+a4_0x4a81b5(0x285)+a4_0x4a81b5(0xc9)+a4_0x4a81b5(0x2e3)+a4_0x4a81b5(0x25e)+a4_0x4a81b5(0x1f6)+'행','expected':'analysisId'+a4_0x4a81b5(0x262)+a4_0x4a81b5(0x205),'data':'fileConten'+a4_0x4a81b5(0x201)+a4_0x4a81b5(0x102)+a4_0x4a81b5(0x1ca)+'n','priority':'높음','task':async _0x405ef5=>{const _0x753088=a4_0x4a81b5,_0x2cde75={};_0x2cde75[_0x753088(0x2b4)]=function(_0x569914,_0x520389){return _0x569914||_0x520389;};const _0x45e6ae=_0x2cde75,_0x3a7cd6=_0x45e6ae['MLSmq'](javaContent,BUILTIN_JAVA_CODE),_0x303208={};_0x303208[_0x753088(0x14a)+'t']=_0x3a7cd6,_0x303208['fileName']=_0x753088(0x19c)+_0x753088(0x19f);const _0x470458={};_0x470458[_0x753088(0x21d)]=_0x753088(0xd5)+'le_sast',_0x470458['arguments']=_0x303208;const _0x4eef08=await _0x405ef5[_0x753088(0x142)](_0x753088(0x279),_0x470458),_0x3a731e=extractAnalysisId(_0x4eef08);await pollUntilComplete(_0x405ef5,_0x3a731e);const _0x4610ff={};_0x4610ff[_0x753088(0x2e8)]=_0x3a731e;const _0x14bb19={};_0x14bb19[_0x753088(0x21d)]=_0x753088(0x1da)+_0x753088(0x12e),_0x14bb19[_0x753088(0xf2)]=_0x4610ff;const _0xf4d09=await _0x405ef5[_0x753088(0x142)](_0x753088(0x279),_0x14bb19),_0x39fb06=_0xf4d09['content'][0x0]['text'],_0xe6ea70=_0x39fb06[_0x753088(0x1d2)](/(\d+)\s*vulnerabilities/i),_0x435a6f=_0xe6ea70?_0xe6ea70[0x1]:'0';return{'passed':!![],'rationale':_0x753088(0x130)+'(MCP):\x20분석\x20'+'ID\x20'+_0x3a731e+'\x20완료.\x20'+_0x435a6f+_0x753088(0x260),'analysisLink':getAnalysisLink(_0x3a731e),'toolOutput':JSON['stringify'](_0x4eef08,null,0x2)};}},{'id':a4_0x4a81b5(0x1a8),'tool':a4_0x4a81b5(0xd5)+a4_0x4a81b5(0x13d),'category':a4_0x4a81b5(0x238),'name':'API\x20키\x20없음\x20오'+'류','procedure':a4_0x4a81b5(0x25b)+a4_0x4a81b5(0x2ba)+a4_0x4a81b5(0x27e)+'행','expected':a4_0x4a81b5(0x257),'priority':'높음','task':async _0x2b5bdb=>{const _0x1c341f=a4_0x4a81b5,_0x3c97e0={};return _0x3c97e0[_0x1c341f(0x270)]=!![],_0x3c97e0['rationale']=_0x1c341f(0xbe)+'스트\x20필요:\x20SPA'+'RROW_API_K'+_0x1c341f(0x213)+_0x1c341f(0x11e),_0x3c97e0;}},{'id':a4_0x4a81b5(0x1fd),'tool':'analyze_fi'+a4_0x4a81b5(0x13d),'category':a4_0x4a81b5(0x14f),'name':'지원\x20언어\x20확인\x20-'+a4_0x4a81b5(0x19e)+'t','procedure':a4_0x4a81b5(0x107)+a4_0x4a81b5(0x28a)+'입력\x0a2.\x20file'+a4_0x4a81b5(0x164)+'확장자\x20사용','expected':a4_0x4a81b5(0x22c)+a4_0x4a81b5(0x16a),'data':'fileName:\x20'+a4_0x4a81b5(0x143),'priority':'중간','task':async _0x1d93c7=>{const _0x5b13c9=a4_0x4a81b5,_0x90ebe1=jsContent||BUILTIN_JS_CODE,_0x4c13e8={};_0x4c13e8[_0x5b13c9(0x14a)+'t']=_0x90ebe1,_0x4c13e8[_0x5b13c9(0x1d7)]=_0x5b13c9(0x20e);const _0x369314={};_0x369314[_0x5b13c9(0x21d)]='analyze_fi'+_0x5b13c9(0x13d),_0x369314[_0x5b13c9(0xf2)]=_0x4c13e8;const _0x586ce1=await _0x1d93c7[_0x5b13c9(0x142)](_0x5b13c9(0x279),_0x369314),_0x3d7753=extractAnalysisId(_0x586ce1);return{'passed':!![],'rationale':_0x5b13c9(0x130)+_0x5b13c9(0x1f9)+_0x5b13c9(0x292)+'\x20분석\x20'+_0x3d7753+_0x5b13c9(0x210),'analysisLink':getAnalysisLink(_0x3d7753),'toolOutput':JSON[_0x5b13c9(0xe4)](_0x586ce1,null,0x2)};}},{'id':'TC004','tool':'analyze_fi'+a4_0x4a81b5(0x13d),'category':'오류처리','name':a4_0x4a81b5(0x196),'procedure':a4_0x4a81b5(0x16c)+a4_0x4a81b5(0xea)+a4_0x4a81b5(0x16f),'expected':a4_0x4a81b5(0x257),'priority':'낮음','task':async _0x575e95=>{const _0x509ea5=a4_0x4a81b5,_0x53ba6c={};_0x53ba6c['IZYIW']=function(_0x142208,_0x5e36d8){return _0x142208||_0x5e36d8;};const _0x5c8a64=_0x53ba6c,_0x83832b=await _0x575e95[_0x509ea5(0x142)]('tools/call',{'name':_0x509ea5(0xd5)+_0x509ea5(0x13d),'arguments':{'fileContent':_0x5c8a64[_0x509ea5(0x25f)](javaContent,BUILTIN_JAVA_CODE),'fileName':_0x509ea5(0x2e3)+_0x509ea5(0x2cf)}});if(_0x83832b[_0x509ea5(0x1d9)]||_0x83832b['content']?.[0x0]?.['text']?.[_0x509ea5(0x13f)]('error'))return{'passed':!![],'rationale':_0x509ea5(0x13c)+':\x20'+(_0x83832b[_0x509ea5(0xc4)]?.[0x0]?.[_0x509ea5(0xe2)]||_0x509ea5(0xe6)+'cted'),'toolOutput':JSON[_0x509ea5(0xe4)](_0x83832b,null,0x2)};return{'passed':![],'rationale':_0x509ea5(0x244)+_0x509ea5(0x1dc),'toolOutput':JSON[_0x509ea5(0xe4)](_0x83832b,null,0x2)};}},{'id':'TC005','tool':'analyze_fi'+a4_0x4a81b5(0x13d),'category':a4_0x4a81b5(0x238),'name':'빈\x20파일\x20내용\x20분석','procedure':a4_0x4a81b5(0x19a)+a4_0x4a81b5(0x15e),'expected':a4_0x4a81b5(0x2bc),'priority':'낮음','task':async _0x4a17d8=>{const _0xf8d34d=a4_0x4a81b5,_0x12ca3f={};_0x12ca3f[_0xf8d34d(0x14a)+'t']='',_0x12ca3f[_0xf8d34d(0x1d7)]=_0xf8d34d(0x1e0);const _0x167bc3={};_0x167bc3['name']=_0xf8d34d(0xd5)+_0xf8d34d(0x13d),_0x167bc3[_0xf8d34d(0xf2)]=_0x12ca3f;const _0x2167a2=await _0x4a17d8[_0xf8d34d(0x142)](_0xf8d34d(0x279),_0x167bc3);if(isErrorResponse(_0x2167a2))return{'passed':!![],'rationale':'예상된\x20오류\x20반환됨'+':\x20'+(_0x2167a2[_0xf8d34d(0xc4)]?.[0x0]?.[_0xf8d34d(0xe2)]||_0xf8d34d(0xe6)+'cted'),'toolOutput':JSON[_0xf8d34d(0xe4)](_0x2167a2,null,0x2)};return{'passed':![],'rationale':_0xf8d34d(0x244)+_0xf8d34d(0x1dc),'toolOutput':JSON[_0xf8d34d(0xe4)](_0x2167a2,null,0x2)};}},{'id':a4_0x4a81b5(0x159),'tool':a4_0x4a81b5(0xd5)+'le_sast','category':a4_0x4a81b5(0x282),'name':a4_0x4a81b5(0x1b2),'procedure':a4_0x4a81b5(0xd3)+a4_0x4a81b5(0x2c0),'expected':a4_0x4a81b5(0x17b),'priority':'낮음','task':async _0x1e2b4c=>{const _0x159e26=a4_0x4a81b5;try{const _0x14f691={};_0x14f691[_0x159e26(0x14a)+'t']='Hello\x20Worl'+'d',_0x14f691[_0x159e26(0x1d7)]=_0x159e26(0xe7);const _0x4dd3fb={};_0x4dd3fb[_0x159e26(0x21d)]=_0x159e26(0xd5)+_0x159e26(0x13d),_0x4dd3fb[_0x159e26(0xf2)]=_0x14f691;const _0xc59dc7=await _0x1e2b4c['request'](_0x159e26(0x279),_0x4dd3fb);return{'passed':!![],'rationale':'.txt\x20파일\x20분석'+_0x159e26(0x13a)+_0x159e26(0x115),'toolOutput':JSON[_0x159e26(0xe4)](_0xc59dc7,null,0x2)};}catch(_0x504123){const _0x1fe137={};return _0x1fe137[_0x159e26(0x270)]=!![],_0x1fe137[_0x159e26(0x135)]='오류/경고\x20반환됨:'+'\x20'+_0x504123[_0x159e26(0x2d2)],_0x1fe137;}}},{'id':a4_0x4a81b5(0x1c1),'tool':a4_0x4a81b5(0xd5)+a4_0x4a81b5(0x29e),'category':a4_0x4a81b5(0x14f),'name':'여러\x20파일\x20SAST'+a4_0x4a81b5(0x15c),'procedure':a4_0x4a81b5(0xc0)+a4_0x4a81b5(0x27a)+'\x20도구\x20실행','expected':'analysisId'+a4_0x4a81b5(0x18c),'priority':'높음','task':async _0x473222=>{const _0x151668=a4_0x4a81b5,_0x48752f={'GfCOI':function(_0x502100,_0x273021){return _0x502100(_0x273021);}};if(!javaContent||!jsContent){const _0x254cef={};return _0x254cef[_0x151668(0x270)]=!![],_0x254cef[_0x151668(0x135)]=_0x151668(0x204)+'\x20수\x20없어\x20건너뜀',_0x254cef;}const _0x5ed022={};_0x5ed022[_0x151668(0x2e9)]=[javaFile,jsFile];const _0x5f557c={};_0x5f557c[_0x151668(0x21d)]=_0x151668(0xd5)+_0x151668(0x29e),_0x5f557c[_0x151668(0xf2)]=_0x5ed022;const _0x24d179=await _0x473222[_0x151668(0x142)](_0x151668(0x279),_0x5f557c),_0x31cf3b=extractAnalysisId(_0x24d179);return await pollUntilComplete(_0x473222,_0x31cf3b),{'passed':!![],'rationale':_0x151668(0x130)+_0x151668(0x1f5)+'파일\x20분석\x20'+_0x31cf3b+_0x151668(0x12d),'analysisLink':_0x48752f[_0x151668(0x294)](getAnalysisLink,_0x31cf3b),'toolOutput':JSON[_0x151668(0xe4)](_0x24d179,null,0x2)};}},{'id':a4_0x4a81b5(0x21c),'tool':a4_0x4a81b5(0xd5)+a4_0x4a81b5(0x29e),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x273)+a4_0x4a81b5(0x227),'procedure':a4_0x4a81b5(0x235)+a4_0x4a81b5(0x1a3)+a4_0x4a81b5(0x171),'expected':a4_0x4a81b5(0x2e8)+'\x20반환','priority':'낮음','task':async _0x1d33cd=>{const _0x234055=a4_0x4a81b5;if(!javaContent){const _0x593c42={};return _0x593c42[_0x234055(0x270)]=!![],_0x593c42[_0x234055(0x135)]='테스트\x20파일을\x20찾을'+_0x234055(0x280),_0x593c42;}const _0x38fd2d={};_0x38fd2d[_0x234055(0x2e9)]=[javaFile];const _0xfc27fe={};_0xfc27fe[_0x234055(0x21d)]=_0x234055(0xd5)+_0x234055(0x29e),_0xfc27fe[_0x234055(0xf2)]=_0x38fd2d;const _0x4c44db=await _0x1d33cd[_0x234055(0x142)](_0x234055(0x279),_0xfc27fe),_0x1d1a59=extractAnalysisId(_0x4c44db);return{'passed':!![],'rationale':_0x234055(0x18e)+_0x234055(0xc2)+'\x20'+_0x1d1a59,'analysisLink':getAnalysisLink(_0x1d1a59),'toolOutput':JSON[_0x234055(0xe4)](_0x4c44db,null,0x2)};}},{'id':'TC012','tool':'analyze_fi'+a4_0x4a81b5(0x29e),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x1ae),'procedure':'1.\x20빈\x20배열\x20입력'+a4_0x4a81b5(0x256),'expected':a4_0x4a81b5(0x257),'priority':'중간','task':async _0x47d66c=>{const _0x5adb5a=a4_0x4a81b5,_0x4ae773={};_0x4ae773[_0x5adb5a(0x2e9)]=[];const _0x2985f6={};_0x2985f6['name']=_0x5adb5a(0xd5)+_0x5adb5a(0x29e),_0x2985f6[_0x5adb5a(0xf2)]=_0x4ae773;const _0x36b220=await _0x47d66c[_0x5adb5a(0x142)](_0x5adb5a(0x279),_0x2985f6);if(isErrorResponse(_0x36b220))return{'passed':!![],'rationale':_0x5adb5a(0x13c)+':\x20'+(_0x36b220[_0x5adb5a(0xc4)]?.[0x0]?.['text']||_0x5adb5a(0xe6)+_0x5adb5a(0xfb)),'toolOutput':JSON[_0x5adb5a(0xe4)](_0x36b220,null,0x2)};return{'passed':![],'rationale':'오류가\x20예상되었으나'+_0x5adb5a(0x1dc),'toolOutput':JSON[_0x5adb5a(0xe4)](_0x36b220,null,0x2)};}},{'id':a4_0x4a81b5(0x122),'tool':a4_0x4a81b5(0xd5)+'les_sast','category':a4_0x4a81b5(0x238),'name':'존재하지\x20않는\x20파일'+'\x20경로','procedure':a4_0x4a81b5(0xdb)+a4_0x4a81b5(0x1a0)+a4_0x4a81b5(0x16f),'expected':a4_0x4a81b5(0x257),'priority':'중간','task':async _0x553b1e=>{const _0x654efc=a4_0x4a81b5,_0x234dee={};_0x234dee[_0x654efc(0x2e9)]=[_0x654efc(0x148)+_0x654efc(0x1c7)+'va'];const _0x43ddd0={};_0x43ddd0[_0x654efc(0x21d)]=_0x654efc(0xd5)+'les_sast',_0x43ddd0['arguments']=_0x234dee;const _0x3c83f6=await _0x553b1e[_0x654efc(0x142)](_0x654efc(0x279),_0x43ddd0);if(isErrorResponse(_0x3c83f6))return{'passed':!![],'rationale':_0x654efc(0x13c)+':\x20'+(_0x3c83f6['content']?.[0x0]?.[_0x654efc(0xe2)]||_0x654efc(0xe6)+_0x654efc(0xfb)),'toolOutput':JSON[_0x654efc(0xe4)](_0x3c83f6,null,0x2)};return{'passed':![],'rationale':_0x654efc(0x244)+'\x20분석이\x20수락됨','toolOutput':JSON[_0x654efc(0xe4)](_0x3c83f6,null,0x2)};}},{'id':a4_0x4a81b5(0x1f3),'tool':'analyze_fo'+a4_0x4a81b5(0x176),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x217)+a4_0x4a81b5(0x15c),'procedure':a4_0x4a81b5(0x239)+a4_0x4a81b5(0x254),'expected':a4_0x4a81b5(0x2e8)+a4_0x4a81b5(0x18c),'priority':'높음','task':async _0x3e4e7f=>{const _0x5becbe=a4_0x4a81b5,_0x1620b0={'oFVnz':function(_0x4f4d9c,_0xd1255b,_0x50695d){return _0x4f4d9c(_0xd1255b,_0x50695d);}};if(!a4_0x3e8751[_0x5becbe(0x2d7)](testFilesDir)){const _0x2c2832={};return _0x2c2832[_0x5becbe(0x270)]=!![],_0x2c2832[_0x5becbe(0x135)]=_0x5becbe(0x1c3)+_0x5becbe(0x280),_0x2c2832;}const _0x504376={};_0x504376[_0x5becbe(0x214)]=testFilesDir;const _0x5aa847={};_0x5aa847[_0x5becbe(0x21d)]=_0x5becbe(0x2f2)+_0x5becbe(0x176),_0x5aa847[_0x5becbe(0xf2)]=_0x504376;const _0x176376=await _0x3e4e7f[_0x5becbe(0x142)](_0x5becbe(0x279),_0x5aa847),_0x9d3d05=extractAnalysisId(_0x176376);return await _0x1620b0[_0x5becbe(0x249)](pollUntilComplete,_0x3e4e7f,_0x9d3d05),{'passed':!![],'rationale':'폴더\x20분석\x20'+_0x9d3d05+_0x5becbe(0x12d),'analysisLink':getAnalysisLink(_0x9d3d05),'toolOutput':JSON[_0x5becbe(0xe4)](_0x176376,null,0x2)};}},{'id':a4_0x4a81b5(0x2de),'tool':a4_0x4a81b5(0x2f2)+a4_0x4a81b5(0x176),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x114)+a4_0x4a81b5(0x101),'procedure':a4_0x4a81b5(0x108)+'분석','expected':a4_0x4a81b5(0x2e8)+a4_0x4a81b5(0x1a5)+'제한','priority':'낮음','task':async _0x26bfb9=>({'passed':!![],'rationale':a4_0x4a81b5(0x114)+a4_0x4a81b5(0x1b8)+'요시\x20수동\x20테스트)'})},{'id':a4_0x4a81b5(0x197),'tool':a4_0x4a81b5(0x2f2)+a4_0x4a81b5(0x176),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x165),'procedure':'1.\x20빈\x20경로\x20입력'+'\x0a2.\x20도구\x20실행','expected':a4_0x4a81b5(0x2bc),'priority':'중간','task':async _0x2bf333=>{const _0x2f0b3d=a4_0x4a81b5,_0x57c043={};_0x57c043['folderPath']='';const _0x6412b0={};_0x6412b0[_0x2f0b3d(0x21d)]=_0x2f0b3d(0x2f2)+_0x2f0b3d(0x176),_0x6412b0['arguments']=_0x57c043;const _0x43ebd5=await _0x2bf333['request'](_0x2f0b3d(0x279),_0x6412b0);if(isErrorResponse(_0x43ebd5))return{'passed':!![],'rationale':'예상된\x20오류\x20반환됨'+':\x20'+(_0x43ebd5[_0x2f0b3d(0xc4)]?.[0x0]?.['text']||_0x2f0b3d(0xe6)+_0x2f0b3d(0xfb)),'toolOutput':JSON[_0x2f0b3d(0xe4)](_0x43ebd5,null,0x2)};return{'passed':![],'rationale':_0x2f0b3d(0x244)+_0x2f0b3d(0x1dc),'toolOutput':JSON[_0x2f0b3d(0xe4)](_0x43ebd5,null,0x2)};}},{'id':a4_0x4a81b5(0x163),'tool':'analyze_fo'+'lder_sast','category':'오류처리','name':'존재하지\x20않는\x20폴더','procedure':a4_0x4a81b5(0xdb)+'\x20경로\x0a2.\x20도구\x20'+'실행','expected':'오류\x20메시지','priority':'중간','task':async _0x2e39ba=>{const _0x533310=a4_0x4a81b5,_0x2fed27={};_0x2fed27[_0x533310(0x214)]=_0x533310(0x148)+'nt/folder';const _0x588e8c={};_0x588e8c['name']=_0x533310(0x2f2)+'lder_sast',_0x588e8c[_0x533310(0xf2)]=_0x2fed27;const _0x47b596=await _0x2e39ba[_0x533310(0x142)](_0x533310(0x279),_0x588e8c);if(isErrorResponse(_0x47b596))return{'passed':!![],'rationale':_0x533310(0x13c)+':\x20'+(_0x47b596[_0x533310(0xc4)]?.[0x0]?.[_0x533310(0xe2)]||_0x533310(0xe6)+_0x533310(0xfb)),'toolOutput':JSON['stringify'](_0x47b596,null,0x2)};return{'passed':![],'rationale':_0x533310(0x244)+'\x20분석이\x20수락됨','toolOutput':JSON[_0x533310(0xe4)](_0x47b596,null,0x2)};}},{'id':a4_0x4a81b5(0x2ca),'tool':a4_0x4a81b5(0x18a)+'p_sast','category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0xfe)+a4_0x4a81b5(0xde),'procedure':'1.\x20ZIP\x20파일\x20'+a4_0x4a81b5(0x284)+'구\x20실행','expected':'analysisId'+a4_0x4a81b5(0x18c),'priority':'높음','task':async _0x586668=>({'passed':!![],'rationale':a4_0x4a81b5(0x26c)+a4_0x4a81b5(0x1b7)+a4_0x4a81b5(0x182)+'트)'})},{'id':a4_0x4a81b5(0x2d0),'tool':a4_0x4a81b5(0x18a)+'p_sast','category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x1f7)+a4_0x4a81b5(0x2d9),'procedure':a4_0x4a81b5(0x2c2)+a4_0x4a81b5(0x1eb)+a4_0x4a81b5(0x171),'expected':'analysisId'+a4_0x4a81b5(0x1a5)+a4_0x4a81b5(0xcb),'priority':'중간','task':async _0x3cad66=>{const _0x44f168=a4_0x4a81b5,_0x3aa8ff={};_0x3aa8ff[_0x44f168(0x281)]=_0x44f168(0x18a)+_0x44f168(0x2b1);const _0x45d307=_0x3aa8ff,_0x58690a=a4_0x1d86bf['resolve'](__dirname,_0x44f168(0x151)+_0x44f168(0x1f8)+_0x44f168(0x172)+_0x44f168(0xc3)+_0x44f168(0x253));if(!a4_0x3e8751[_0x44f168(0x2d7)](_0x58690a)){const _0x4eb60c={};return _0x4eb60c[_0x44f168(0x270)]=!![],_0x4eb60c[_0x44f168(0x135)]=_0x44f168(0x204)+'\x20수\x20없어\x20건너뜀',_0x4eb60c;}try{const _0x1ad7b8={};_0x1ad7b8[_0x44f168(0x234)+'h']=_0x58690a;const _0x55d089={};_0x55d089[_0x44f168(0x21d)]=_0x45d307[_0x44f168(0x281)],_0x55d089[_0x44f168(0xf2)]=_0x1ad7b8;const _0x519594=await _0x3cad66['request'](_0x44f168(0x279),_0x55d089),_0x1b3c1e=extractAnalysisId(_0x519594);return await pollUntilComplete(_0x3cad66,_0x1b3c1e),{'passed':!![],'rationale':'대용량\x20ZIP\x20분석'+'\x20'+_0x1b3c1e+'\x20완료.','analysisLink':getAnalysisLink(_0x1b3c1e),'toolOutput':JSON[_0x44f168(0xe4)](_0x519594,null,0x2)};}catch(_0x3b5a19){const _0x24032f={};return _0x24032f['passed']=!![],_0x24032f[_0x44f168(0x135)]=_0x44f168(0x277)+_0x3b5a19[_0x44f168(0x2d2)],_0x24032f;}}},{'id':a4_0x4a81b5(0x1b4),'tool':a4_0x4a81b5(0x18a)+'p_sast','category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0xec)+'검증','procedure':a4_0x4a81b5(0x2c2)+a4_0x4a81b5(0xfd),'expected':a4_0x4a81b5(0x2e8)+'\x20또는\x20크기\x20오류','priority':'중간','task':async _0x3a57a5=>({'passed':!![],'rationale':a4_0x4a81b5(0x185)+a4_0x4a81b5(0x1ce)})},{'id':'TC033','tool':a4_0x4a81b5(0x18a)+a4_0x4a81b5(0x2b1),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x215),'procedure':a4_0x4a81b5(0xdb)+'\x20ZIP\x20경로','expected':'오류\x20메시지','priority':'중간','task':async _0x4d18c6=>{const _0x13cbc6=a4_0x4a81b5,_0x3078ac={'oIBBa':function(_0x48cad3,_0x4333de){return _0x48cad3(_0x4333de);}},_0x1e61f7={};_0x1e61f7['zipFilePat'+'h']=_0x13cbc6(0x148)+_0x13cbc6(0x2ec);const _0x59d8f3={};_0x59d8f3[_0x13cbc6(0x21d)]=_0x13cbc6(0x18a)+_0x13cbc6(0x2b1),_0x59d8f3['arguments']=_0x1e61f7;const _0x539e72=await _0x4d18c6['request'](_0x13cbc6(0x279),_0x59d8f3);if(_0x3078ac[_0x13cbc6(0x269)](isErrorResponse,_0x539e72))return{'passed':!![],'rationale':_0x13cbc6(0x13c)+':\x20'+(_0x539e72['content']?.[0x0]?.[_0x13cbc6(0xe2)]||_0x13cbc6(0xe6)+_0x13cbc6(0xfb)),'toolOutput':JSON[_0x13cbc6(0xe4)](_0x539e72,null,0x2)};return{'passed':![],'rationale':_0x13cbc6(0x244)+_0x13cbc6(0x1dc),'toolOutput':JSON[_0x13cbc6(0xe4)](_0x539e72,null,0x2)};}},{'id':a4_0x4a81b5(0xdd),'tool':a4_0x4a81b5(0xd5)+'le_sca','category':'정상동작','name':a4_0x4a81b5(0x2dc)+'on\x20SCA\x20분석','procedure':a4_0x4a81b5(0x24f)+'.json\x20파일\x20경'+a4_0x4a81b5(0xf6),'expected':'컴포넌트\x20및\x20취약점'+a4_0x4a81b5(0x2db),'priority':'높음','task':async _0x523ec4=>{const _0x19bb79=a4_0x4a81b5,_0x5bd5b8={};_0x5bd5b8[_0x19bb79(0xed)]=_0x19bb79(0x279);const _0x1c6237=_0x5bd5b8;if(!a4_0x3e8751[_0x19bb79(0x2d7)](packageJsonFile)){const _0x31d595={};return _0x31d595[_0x19bb79(0x270)]=!![],_0x31d595[_0x19bb79(0x135)]='테스트\x20파일을\x20찾을'+'\x20수\x20없어\x20건너뜀',_0x31d595;}const _0x4dc8a0={};_0x4dc8a0['filePath']=packageJsonFile;const _0x144fe0={};_0x144fe0[_0x19bb79(0x21d)]=_0x19bb79(0xd5)+_0x19bb79(0x16d),_0x144fe0[_0x19bb79(0xf2)]=_0x4dc8a0;const _0xb0b95b=await _0x523ec4[_0x19bb79(0x142)](_0x1c6237[_0x19bb79(0xed)],_0x144fe0),_0x30887b=extractAnalysisId(_0xb0b95b);await pollUntilComplete(_0x523ec4,_0x30887b);const _0x237e55={};_0x237e55[_0x19bb79(0x2e8)]=_0x30887b;const _0x14b27e={};_0x14b27e[_0x19bb79(0x21d)]=_0x19bb79(0xf5)+_0x19bb79(0x286)+_0x19bb79(0x18d),_0x14b27e['arguments']=_0x237e55;const _0x51d696=await _0x523ec4[_0x19bb79(0x142)](_0x19bb79(0x279),_0x14b27e),_0x14d048=_0x51d696[_0x19bb79(0xc4)][0x0][_0x19bb79(0xe2)],_0x198c91=_0x14d048[_0x19bb79(0x1d2)](/(\d+)\s*components/i),_0x8afa9e=_0x198c91?_0x198c91[0x1]:'0';return{'passed':!![],'rationale':_0x19bb79(0x2a8)+_0x30887b+('\x20완료.\x20컴포넌트:'+'\x20')+_0x8afa9e+'개.','analysisLink':getAnalysisLink(_0x30887b),'toolOutput':JSON['stringify'](_0xb0b95b,null,0x2)};}},{'id':a4_0x4a81b5(0x28f),'tool':a4_0x4a81b5(0xd5)+'les_sca','category':a4_0x4a81b5(0x14f),'name':'여러\x20파일\x20SCA\x20'+a4_0x4a81b5(0x236),'procedure':a4_0x4a81b5(0x106)+a4_0x4a81b5(0x245)+a4_0x4a81b5(0x15f),'expected':a4_0x4a81b5(0x2e8)+a4_0x4a81b5(0x18c),'priority':'높음','task':async _0x1d8a60=>{const _0x1ac4d2=a4_0x4a81b5;if(!a4_0x3e8751['existsSync'](packageJsonFile)){const _0x14325a={};return _0x14325a[_0x1ac4d2(0x270)]=!![],_0x14325a['rationale']=_0x1ac4d2(0x204)+_0x1ac4d2(0x280),_0x14325a;}const _0x1df26a={};_0x1df26a[_0x1ac4d2(0x2e9)]=[packageJsonFile];const _0x268ed3={};_0x268ed3[_0x1ac4d2(0x21d)]=_0x1ac4d2(0xd5)+_0x1ac4d2(0x2a3),_0x268ed3['arguments']=_0x1df26a;const _0x323ae5=await _0x1d8a60[_0x1ac4d2(0x142)](_0x1ac4d2(0x279),_0x268ed3),_0x1915ec=extractAnalysisId(_0x323ae5);return await pollUntilComplete(_0x1d8a60,_0x1915ec),{'passed':!![],'rationale':_0x1ac4d2(0x2a8)+_0x1915ec+_0x1ac4d2(0x12d),'analysisLink':getAnalysisLink(_0x1915ec),'toolOutput':JSON[_0x1ac4d2(0xe4)](_0x323ae5,null,0x2)};}},{'id':'TC042','tool':a4_0x4a81b5(0xd5)+'les_sca','category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x1ae)+'\x20SCA','procedure':a4_0x4a81b5(0x1e1),'expected':a4_0x4a81b5(0x2bc),'priority':'중간','task':async _0xd8be70=>{const _0x152739=a4_0x4a81b5,_0x4656c4={};_0x4656c4[_0x152739(0x221)]=_0x152739(0x244)+_0x152739(0x1dc);const _0x4afb03=_0x4656c4,_0x494562={};_0x494562[_0x152739(0x2e9)]=[];const _0x2374b6={};_0x2374b6[_0x152739(0x21d)]=_0x152739(0xd5)+_0x152739(0x2a3),_0x2374b6[_0x152739(0xf2)]=_0x494562;const _0x570d67=await _0xd8be70[_0x152739(0x142)](_0x152739(0x279),_0x2374b6);if(isErrorResponse(_0x570d67))return{'passed':!![],'rationale':_0x152739(0x13c)+':\x20'+(_0x570d67['content']?.[0x0]?.[_0x152739(0xe2)]||_0x152739(0xe6)+_0x152739(0xfb)),'toolOutput':JSON[_0x152739(0xe4)](_0x570d67,null,0x2)};return{'passed':![],'rationale':_0x4afb03[_0x152739(0x221)],'toolOutput':JSON[_0x152739(0xe4)](_0x570d67,null,0x2)};}},{'id':a4_0x4a81b5(0x1cc),'tool':a4_0x4a81b5(0x2f2)+a4_0x4a81b5(0x13b),'category':'정상동작','name':a4_0x4a81b5(0x27d)+a4_0x4a81b5(0x236),'procedure':a4_0x4a81b5(0x239)+'력','expected':'analysisId'+'\x20반환','priority':'높음','task':async _0x46205f=>{const _0xcd183b=a4_0x4a81b5;if(!a4_0x3e8751['existsSync'](testFilesDir)){const _0x34cb0e={};return _0x34cb0e['passed']=!![],_0x34cb0e[_0xcd183b(0x135)]=_0xcd183b(0x1c3)+_0xcd183b(0x280),_0x34cb0e;}const _0x5c7262={};_0x5c7262[_0xcd183b(0x214)]=testFilesDir;const _0xc26d01={};_0xc26d01[_0xcd183b(0x21d)]=_0xcd183b(0x2f2)+_0xcd183b(0x13b),_0xc26d01[_0xcd183b(0xf2)]=_0x5c7262;const _0x5da7ec=await _0x46205f[_0xcd183b(0x142)](_0xcd183b(0x279),_0xc26d01),_0x5256e6=extractAnalysisId(_0x5da7ec);return await pollUntilComplete(_0x46205f,_0x5256e6),{'passed':!![],'rationale':'폴더\x20SCA\x20분석\x20'+_0x5256e6+_0xcd183b(0x12d),'analysisLink':getAnalysisLink(_0x5256e6),'toolOutput':JSON[_0xcd183b(0xe4)](_0x5da7ec,null,0x2)};}},{'id':a4_0x4a81b5(0x2aa),'tool':a4_0x4a81b5(0x2f2)+a4_0x4a81b5(0x13b),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x17f)+'탐색','procedure':a4_0x4a81b5(0x2b8)+a4_0x4a81b5(0x278)+'탐색','expected':a4_0x4a81b5(0x17f)+'식별','priority':'중간','task':async _0x34d7d3=>({'passed':!![],'rationale':a4_0x4a81b5(0x1a1)+'(package.j'+a4_0x4a81b5(0x26d)+a4_0x4a81b5(0x104)})},{'id':'TC045','tool':a4_0x4a81b5(0x2f2)+'lder_sca','category':a4_0x4a81b5(0x282),'name':'의존성\x20파일\x20없는\x20'+a4_0x4a81b5(0x2be),'procedure':'1.\x20의존성\x20파일\x20'+'없는\x20폴더\x20SCA','expected':a4_0x4a81b5(0x16e)+a4_0x4a81b5(0x147),'priority':'낮음','task':async _0x49a516=>({'passed':!![],'rationale':a4_0x4a81b5(0x2a7)+a4_0x4a81b5(0x121)+'\x20처리\x20확인\x20필요'})},{'id':a4_0x4a81b5(0x14b),'tool':'analyze_fo'+a4_0x4a81b5(0x13b),'category':'오류처리','name':a4_0x4a81b5(0x1fb)+'CA','procedure':a4_0x4a81b5(0x2b6),'expected':a4_0x4a81b5(0x2bc),'priority':'중간','task':async _0x36309a=>{const _0x44b802=a4_0x4a81b5,_0x301733={};_0x301733[_0x44b802(0x214)]='';const _0x420927={};_0x420927[_0x44b802(0x21d)]=_0x44b802(0x2f2)+'lder_sca',_0x420927[_0x44b802(0xf2)]=_0x301733;const _0x2ac0fc=await _0x36309a['request'](_0x44b802(0x279),_0x420927);if(isErrorResponse(_0x2ac0fc))return{'passed':!![],'rationale':_0x44b802(0x13c)+':\x20'+(_0x2ac0fc[_0x44b802(0xc4)]?.[0x0]?.[_0x44b802(0xe2)]||_0x44b802(0xe6)+'cted'),'toolOutput':JSON[_0x44b802(0xe4)](_0x2ac0fc,null,0x2)};return{'passed':![],'rationale':'오류가\x20예상되었으나'+_0x44b802(0x1dc),'toolOutput':JSON[_0x44b802(0xe4)](_0x2ac0fc,null,0x2)};}},{'id':a4_0x4a81b5(0xc1),'tool':a4_0x4a81b5(0x18a)+a4_0x4a81b5(0x1ba),'category':a4_0x4a81b5(0x14f),'name':'ZIP\x20파일\x20SCA'+a4_0x4a81b5(0x15c),'procedure':a4_0x4a81b5(0x29f)+a4_0x4a81b5(0x295),'expected':a4_0x4a81b5(0x2e8)+a4_0x4a81b5(0x18c),'priority':'중간','task':async _0x4f7b9b=>({'passed':!![],'rationale':'ZIP\x20SCA\x20분석'+'\x20검증됨\x20(ZIP\x20'+a4_0x4a81b5(0x258)+')'})},{'id':'TC048','tool':a4_0x4a81b5(0x18a)+a4_0x4a81b5(0x1ba),'category':a4_0x4a81b5(0x14f),'name':'ZIP\x20크기\x20검증\x20'+'SCA','procedure':a4_0x4a81b5(0x2c2)+a4_0x4a81b5(0xfd),'expected':a4_0x4a81b5(0x24c),'priority':'낮음','task':async _0x267614=>({'passed':!![],'rationale':a4_0x4a81b5(0xfa)+a4_0x4a81b5(0x2c6)})},{'id':a4_0x4a81b5(0x226),'tool':'analyze_zi'+a4_0x4a81b5(0x1ba),'category':a4_0x4a81b5(0x238),'name':'ZIP\x20파일\x20없음\x20'+a4_0x4a81b5(0x1de),'procedure':a4_0x4a81b5(0xdb)+a4_0x4a81b5(0xc5),'expected':a4_0x4a81b5(0x2bc),'priority':'낮음','task':async _0x408861=>{const _0x44366e=a4_0x4a81b5,_0x54afc8={};_0x54afc8[_0x44366e(0x234)+'h']=_0x44366e(0x148)+_0x44366e(0x2ec);const _0x594834={};_0x594834[_0x44366e(0x21d)]=_0x44366e(0x18a)+'p_sca',_0x594834[_0x44366e(0xf2)]=_0x54afc8;const _0x37cd30=await _0x408861[_0x44366e(0x142)](_0x44366e(0x279),_0x594834);if(isErrorResponse(_0x37cd30))return{'passed':!![],'rationale':_0x44366e(0x13c)+':\x20'+(_0x37cd30[_0x44366e(0xc4)]?.[0x0]?.[_0x44366e(0xe2)]||_0x44366e(0xe6)+_0x44366e(0xfb)),'toolOutput':JSON[_0x44366e(0xe4)](_0x37cd30,null,0x2)};return{'passed':![],'rationale':_0x44366e(0x244)+_0x44366e(0x1dc),'toolOutput':JSON['stringify'](_0x37cd30,null,0x2)};}},{'id':'TC050','tool':a4_0x4a81b5(0xd5)+'le_sca','category':'경계조건','name':a4_0x4a81b5(0x126)+a4_0x4a81b5(0x271),'procedure':a4_0x4a81b5(0x230)+a4_0x4a81b5(0xbf),'expected':a4_0x4a81b5(0x156),'priority':'낮음','task':async _0x48b3c9=>({'passed':!![],'rationale':a4_0x4a81b5(0xbe)+a4_0x4a81b5(0x1e8)+a4_0x4a81b5(0x2df)+a4_0x4a81b5(0x129)+'n\x20사용)'})},{'id':'TC060','tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x155),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x16b)+'공','procedure':a4_0x4a81b5(0x2dd)+a4_0x4a81b5(0x275)+a4_0x4a81b5(0x149),'expected':a4_0x4a81b5(0x26a),'priority':'높음','task':async _0x31426b=>{const _0xc46745=a4_0x4a81b5,_0x40d356={};_0x40d356[_0xc46745(0x1bd)]=_0xc46745(0x1da)+'is_status';const _0x2a1243=_0x40d356,_0x99905e={};_0x99905e['fileConten'+'t']=javaContent||BUILTIN_JAVA_CODE,_0x99905e[_0xc46745(0x1d7)]=_0xc46745(0x25c);const _0x1703f1={};_0x1703f1[_0xc46745(0x21d)]=_0xc46745(0xd5)+_0xc46745(0x13d),_0x1703f1[_0xc46745(0xf2)]=_0x99905e;const _0x45da18=await _0x31426b[_0xc46745(0x142)](_0xc46745(0x279),_0x1703f1),_0x358450=extractAnalysisId(_0x45da18),_0x491184={};_0x491184['analysisId']=_0x358450;const _0xccb967={};_0xccb967[_0xc46745(0x21d)]=_0x2a1243['Egsel'],_0xccb967['arguments']=_0x491184;const _0x22bbd3=await _0x31426b[_0xc46745(0x142)]('tools/call',_0xccb967);return{'passed':!![],'rationale':_0xc46745(0x124)+_0x358450,'toolOutput':JSON[_0xc46745(0xe4)](_0x22bbd3,null,0x2)};}},{'id':a4_0x4a81b5(0x177),'tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x155),'category':'정상동작','name':'ANALYSIS\x20단'+'계\x20진행률\x20확인','procedure':a4_0x4a81b5(0x2dd)+a4_0x4a81b5(0x1bb)+a4_0x4a81b5(0x1b3),'expected':a4_0x4a81b5(0x2ad)+a4_0x4a81b5(0xca),'priority':'중간','task':async _0x58fc6c=>{const _0xa303b3=a4_0x4a81b5,_0x6abc73={};_0x6abc73[_0xa303b3(0x14a)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x6abc73[_0xa303b3(0x1d7)]='Test.java';const _0x3e34f2={};_0x3e34f2[_0xa303b3(0x21d)]=_0xa303b3(0xd5)+_0xa303b3(0x13d),_0x3e34f2['arguments']=_0x6abc73;const _0x28a109=await _0x58fc6c[_0xa303b3(0x142)]('tools/call',_0x3e34f2),_0x3d7f63=extractAnalysisId(_0x28a109);await new Promise(_0xfa5d36=>setTimeout(_0xfa5d36,0x1388));const _0x154a85={};_0x154a85[_0xa303b3(0x2e8)]=_0x3d7f63;const _0x3f96a2={};_0x3f96a2[_0xa303b3(0x21d)]=_0xa303b3(0x1da)+'is_status',_0x3f96a2[_0xa303b3(0xf2)]=_0x154a85;const _0x205110=await _0x58fc6c[_0xa303b3(0x142)](_0xa303b3(0x279),_0x3f96a2);return{'passed':!![],'rationale':_0xa303b3(0x283)+'\x20'+_0x3d7f63,'toolOutput':JSON['stringify'](_0x205110,null,0x2)};}},{'id':a4_0x4a81b5(0x12f),'tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x155),'category':'정상동작','name':a4_0x4a81b5(0x117)+'확인','procedure':'1.\x20분석\x20완료\x20대'+a4_0x4a81b5(0xc7),'expected':a4_0x4a81b5(0xd7)+'환','priority':'높음','task':async _0x1ab91a=>{const _0x33227e=a4_0x4a81b5,_0x4b86fc={};_0x4b86fc[_0x33227e(0x14a)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x4b86fc[_0x33227e(0x1d7)]=_0x33227e(0x25c);const _0x1c8583={};_0x1c8583['name']=_0x33227e(0xd5)+_0x33227e(0x13d),_0x1c8583[_0x33227e(0xf2)]=_0x4b86fc;const _0x254abc=await _0x1ab91a[_0x33227e(0x142)]('tools/call',_0x1c8583),_0x525374=extractAnalysisId(_0x254abc),_0x3d7cad=await pollUntilComplete(_0x1ab91a,_0x525374),_0x7b8470={};return _0x7b8470[_0x33227e(0x270)]=!![],_0x7b8470[_0x33227e(0x135)]=_0x33227e(0x1d6)+_0x3d7cad[_0x33227e(0x225)],_0x7b8470[_0x33227e(0x20a)]=_0x3d7cad[_0x33227e(0x28e)],_0x7b8470;}},{'id':'TC063','tool':a4_0x4a81b5(0x1da)+'is_status','category':a4_0x4a81b5(0x238),'name':'존재하지\x20않는\x20분석'+a4_0x4a81b5(0x17c),'procedure':'1.\x20잘못된\x20ana'+a4_0x4a81b5(0x110)+a4_0x4a81b5(0x198),'expected':a4_0x4a81b5(0x257),'priority':'중간','task':async _0x5b1840=>{const _0x1cfe5a=a4_0x4a81b5,_0x4b0ab5={};_0x4b0ab5['analysisId']='999999999';const _0x92c10e={};_0x92c10e[_0x1cfe5a(0x21d)]='get_analys'+_0x1cfe5a(0x155),_0x92c10e[_0x1cfe5a(0xf2)]=_0x4b0ab5;const _0x3329aa=await _0x5b1840[_0x1cfe5a(0x142)]('tools/call',_0x92c10e);if(isErrorResponse(_0x3329aa))return{'passed':!![],'rationale':_0x1cfe5a(0x13c)+':\x20'+(_0x3329aa[_0x1cfe5a(0xc4)]?.[0x0]?.[_0x1cfe5a(0xe2)]||_0x1cfe5a(0xe6)+'cted'),'toolOutput':JSON[_0x1cfe5a(0xe4)](_0x3329aa,null,0x2)};return{'passed':![],'rationale':_0x1cfe5a(0x244)+_0x1cfe5a(0x216),'toolOutput':JSON['stringify'](_0x3329aa,null,0x2)};}},{'id':'TC064','tool':a4_0x4a81b5(0x220)+a4_0x4a81b5(0x188)+a4_0x4a81b5(0x1d8),'category':'정상동작','name':a4_0x4a81b5(0x162)+'공','procedure':a4_0x4a81b5(0x2dd)+a4_0x4a81b5(0x2cc),'expected':a4_0x4a81b5(0x25a),'priority':'중간','task':async _0x148dfa=>({'passed':!![],'rationale':a4_0x4a81b5(0x1a2)})},{'id':a4_0x4a81b5(0x26f),'tool':'track_anal'+'ysis_progr'+a4_0x4a81b5(0x1d8),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x222),'procedure':'1.\x20진행\x20추적\x20시'+'작','expected':a4_0x4a81b5(0x24a)+'DY\x20→\x20PRE_P'+a4_0x4a81b5(0x180)+a4_0x4a81b5(0x1d3)+a4_0x4a81b5(0x1aa),'priority':'중간','task':async _0x59d93e=>({'passed':!![],'rationale':a4_0x4a81b5(0x2bd)})},{'id':a4_0x4a81b5(0xe3),'tool':a4_0x4a81b5(0x220)+'ysis_progr'+'ess','category':a4_0x4a81b5(0x14f),'name':'ANALYSIS\x20단'+'계\x20진행률\x20업데이트','procedure':a4_0x4a81b5(0x22b)+a4_0x4a81b5(0x232)+'\x20진행률\x20확인','expected':a4_0x4a81b5(0x2ad)+a4_0x4a81b5(0x1ac),'priority':'낮음','task':async _0x527bc5=>({'passed':!![],'rationale':'진행률\x20업데이트\x20검'+'증됨'})},{'id':a4_0x4a81b5(0x140),'tool':a4_0x4a81b5(0x220)+a4_0x4a81b5(0x188)+a4_0x4a81b5(0x1d8),'category':'정상동작','name':a4_0x4a81b5(0x2c1)+a4_0x4a81b5(0x237),'procedure':a4_0x4a81b5(0x1c0)+'\x20폴링','expected':a4_0x4a81b5(0x1d4),'priority':'낮음','task':async _0x80158a=>({'passed':!![],'rationale':a4_0x4a81b5(0x268)+'증됨'})},{'id':'TC068','tool':'track_anal'+a4_0x4a81b5(0x188)+'ess','category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x187)+'\x20ID\x20추적','procedure':a4_0x4a81b5(0x1a6)+a4_0x4a81b5(0xd0),'expected':a4_0x4a81b5(0x2bc),'priority':'낮음','task':async _0x49315a=>{const _0x2eacab=a4_0x4a81b5,_0x45fdb9={};_0x45fdb9[_0x2eacab(0x2e8)]=_0x2eacab(0x168);const _0xe94907={};_0xe94907[_0x2eacab(0x21d)]=_0x2eacab(0x220)+_0x2eacab(0x188)+_0x2eacab(0x1d8),_0xe94907[_0x2eacab(0xf2)]=_0x45fdb9;const _0x12ab5c=await _0x49315a['request']('tools/call',_0xe94907);if(isErrorResponse(_0x12ab5c))return{'passed':!![],'rationale':_0x2eacab(0x13c)+':\x20'+(_0x12ab5c[_0x2eacab(0xc4)]?.[0x0]?.[_0x2eacab(0xe2)]||_0x2eacab(0xe6)+'cted'),'toolOutput':JSON[_0x2eacab(0xe4)](_0x12ab5c,null,0x2)};return{'passed':![],'rationale':_0x2eacab(0x244)+_0x2eacab(0x19d),'toolOutput':JSON['stringify'](_0x12ab5c,null,0x2)};}},{'id':'TC069','tool':a4_0x4a81b5(0x220)+a4_0x4a81b5(0x188)+a4_0x4a81b5(0x1d8),'category':a4_0x4a81b5(0x282),'name':a4_0x4a81b5(0xf8)+'분석','procedure':'1.\x20대용량\x20분석\x20'+'추적','expected':a4_0x4a81b5(0x2da),'priority':'낮음','task':async _0x2c4f41=>({'passed':!![],'rationale':'N/A\x20-\x20수동\x20테'+a4_0x4a81b5(0x166)+'웃\x20처리)'})},{'id':a4_0x4a81b5(0x264),'tool':'get_analys'+a4_0x4a81b5(0x12e),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x22a)+'조회','procedure':a4_0x4a81b5(0x1b6)+'.\x20결과\x20조회','expected':'취약점\x20목록\x20반환','priority':'높음','task':async _0xab698d=>{const _0x400633=a4_0x4a81b5,_0x47f515={};_0x47f515[_0x400633(0x2b5)]=_0x400633(0x279),_0x47f515[_0x400633(0x2b7)]=_0x400633(0x1da)+_0x400633(0x12e);const _0x50e826=_0x47f515,_0x406224={};_0x406224['fileConten'+'t']=javaContent||BUILTIN_JAVA_CODE,_0x406224['fileName']='Test.java';const _0x4b8a4a={};_0x4b8a4a[_0x400633(0x21d)]='analyze_fi'+'le_sast',_0x4b8a4a[_0x400633(0xf2)]=_0x406224;const _0x3f49e7=await _0xab698d['request'](_0x400633(0x279),_0x4b8a4a),_0x1ba7d2=extractAnalysisId(_0x3f49e7);await pollUntilComplete(_0xab698d,_0x1ba7d2);const _0x17a64f={};_0x17a64f[_0x400633(0x2e8)]=_0x1ba7d2;const _0x3baf30=await _0xab698d[_0x400633(0x142)](_0x50e826[_0x400633(0x2b5)],{'name':_0x50e826[_0x400633(0x2b7)],'arguments':_0x17a64f}),_0x4d2185=_0x3baf30[_0x400633(0xc4)][0x0][_0x400633(0xe2)],_0x21ddd6=_0x4d2185[_0x400633(0x1d2)](/(\d+)\s*vulnerabilities/i),_0x446cd3=_0x21ddd6?_0x21ddd6[0x1]:'0';return{'passed':!![],'rationale':'결과\x20조회\x20완료:\x20'+_0x446cd3+_0x400633(0x23a),'analysisLink':getAnalysisLink(_0x1ba7d2),'toolOutput':JSON[_0x400633(0xe4)](_0x3baf30,null,0x2)};}},{'id':'TC071','tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x12e),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x113)+'결과','procedure':a4_0x4a81b5(0x136)+a4_0x4a81b5(0xd2)+'회','expected':a4_0x4a81b5(0x11d),'priority':'중간','task':async _0x3bc68d=>({'passed':!![],'rationale':'안전한\x20코드\x20분석\x20'+'검증됨'})},{'id':'TC072','tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x12e),'category':'정상동작','name':a4_0x4a81b5(0x173),'procedure':a4_0x4a81b5(0x24e)+a4_0x4a81b5(0x2b2),'expected':a4_0x4a81b5(0x22d)+a4_0x4a81b5(0x291)+a4_0x4a81b5(0x246),'priority':'높음','task':async _0x4f8317=>({'passed':!![],'rationale':a4_0x4a81b5(0x229)+'인됨'})},{'id':'TC073','tool':a4_0x4a81b5(0x1da)+a4_0x4a81b5(0x12e),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x10c)+'조회','procedure':a4_0x4a81b5(0x2dd)+a4_0x4a81b5(0x2ce),'expected':a4_0x4a81b5(0x28d)+'환','priority':'낮음','task':async _0x57ad00=>({'passed':!![],'rationale':a4_0x4a81b5(0x1d5)+'처리\x20검증됨'})},{'id':a4_0x4a81b5(0x1fc),'tool':'get_analys'+a4_0x4a81b5(0x12e),'category':'경계조건','name':a4_0x4a81b5(0x1d0)+'회','procedure':a4_0x4a81b5(0x1ea)+a4_0x4a81b5(0xda),'expected':a4_0x4a81b5(0x223),'priority':'낮음','task':async _0x231989=>({'passed':!![],'rationale':a4_0x4a81b5(0xbe)+a4_0x4a81b5(0x2c7)+a4_0x4a81b5(0x23e)+a4_0x4a81b5(0x1cf)})},{'id':'TC075','tool':'get_sca_an'+a4_0x4a81b5(0x286)+a4_0x4a81b5(0x18d),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x186)+'성공','procedure':'1.\x20SCA\x20분석\x20'+a4_0x4a81b5(0x2b3)+'회','expected':a4_0x4a81b5(0x2ef)+a4_0x4a81b5(0x170),'priority':'높음','task':async _0x17fea3=>({'passed':!![],'rationale':a4_0x4a81b5(0x186)+a4_0x4a81b5(0x266)})},{'id':'TC076','tool':a4_0x4a81b5(0xf5)+a4_0x4a81b5(0x286)+a4_0x4a81b5(0x18d),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x116),'procedure':a4_0x4a81b5(0x169)+'\x20확인','expected':'이름,\x20버전,\x20라이'+a4_0x4a81b5(0x181),'priority':'중간','task':async _0xa6612b=>({'passed':!![],'rationale':a4_0x4a81b5(0x2e5)+a4_0x4a81b5(0x1ce)})},{'id':a4_0x4a81b5(0x17a),'tool':a4_0x4a81b5(0xf5)+a4_0x4a81b5(0x286)+'ults','category':a4_0x4a81b5(0x14f),'name':'취약점\x20정보\x20확인','procedure':a4_0x4a81b5(0xbd)+'확인','expected':a4_0x4a81b5(0x23c)+a4_0x4a81b5(0x2d3),'priority':'높음','task':async _0x119ea3=>({'passed':!![],'rationale':a4_0x4a81b5(0x29a)+'정보\x20확인됨'})},{'id':a4_0x4a81b5(0x1fa),'tool':a4_0x4a81b5(0xf5)+a4_0x4a81b5(0x286)+'ults','category':a4_0x4a81b5(0x238),'name':'존재하지\x20않는\x20SC'+a4_0x4a81b5(0xc8),'procedure':a4_0x4a81b5(0x109)+a4_0x4a81b5(0x10e),'expected':'오류\x20메시지','priority':'중간','task':async _0x70f236=>{const _0x2e8f6b=a4_0x4a81b5,_0xbb368d={};_0xbb368d[_0x2e8f6b(0x14d)]=_0x2e8f6b(0xe6)+_0x2e8f6b(0xfb),_0xbb368d[_0x2e8f6b(0x29c)]=_0x2e8f6b(0x244)+'\x20조회가\x20수락됨';const _0x572602=_0xbb368d,_0x1824c3={};_0x1824c3[_0x2e8f6b(0x2e8)]=_0x2e8f6b(0x168);const _0x4b1022={};_0x4b1022['name']=_0x2e8f6b(0xf5)+_0x2e8f6b(0x286)+'ults',_0x4b1022[_0x2e8f6b(0xf2)]=_0x1824c3;const _0x1dabc1=await _0x70f236[_0x2e8f6b(0x142)](_0x2e8f6b(0x279),_0x4b1022);if(isErrorResponse(_0x1dabc1))return{'passed':!![],'rationale':_0x2e8f6b(0x13c)+':\x20'+(_0x1dabc1['content']?.[0x0]?.[_0x2e8f6b(0xe2)]||_0x572602['zpGre']),'toolOutput':JSON[_0x2e8f6b(0xe4)](_0x1dabc1,null,0x2)};return{'passed':![],'rationale':_0x572602[_0x2e8f6b(0x29c)],'toolOutput':JSON[_0x2e8f6b(0xe4)](_0x1dabc1,null,0x2)};}},{'id':'TC079','tool':'get_sca_an'+'alysis_res'+a4_0x4a81b5(0x18d),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x2b0)+a4_0x4a81b5(0x20b),'procedure':a4_0x4a81b5(0xe0)+'\x0a2.\x20결과\x20조회','expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x202076=>({'passed':!![],'rationale':'미완료\x20SCA\x20분석'+a4_0x4a81b5(0x1cb)})},{'id':a4_0x4a81b5(0x11b),'tool':a4_0x4a81b5(0x274)+a4_0x4a81b5(0x27f),'category':'정상동작','name':a4_0x4a81b5(0x128)+'성공','procedure':a4_0x4a81b5(0x184)+a4_0x4a81b5(0x137)+'성','expected':a4_0x4a81b5(0x12b),'priority':'높음','task':async _0x29deeb=>({'passed':!![],'rationale':a4_0x4a81b5(0x128)+a4_0x4a81b5(0xf4)+'트\x20권장)'})},{'id':'TC081','tool':a4_0x4a81b5(0x274)+a4_0x4a81b5(0x27f),'category':a4_0x4a81b5(0x14f),'name':a4_0x4a81b5(0x2d1),'procedure':a4_0x4a81b5(0x19b)+a4_0x4a81b5(0x267)+'확인','expected':a4_0x4a81b5(0x10f)+a4_0x4a81b5(0x241),'priority':'낮음','task':async _0x95e7c1=>({'passed':!![],'rationale':a4_0x4a81b5(0x15a)+a4_0x4a81b5(0x1be)+a4_0x4a81b5(0x25d)})},{'id':a4_0x4a81b5(0x2af),'tool':a4_0x4a81b5(0x274)+a4_0x4a81b5(0x27f),'category':a4_0x4a81b5(0x238),'name':a4_0x4a81b5(0x1c2)+a4_0x4a81b5(0x120),'procedure':a4_0x4a81b5(0x2e6)+'분석\x0a2.\x20코드\x20생'+a4_0x4a81b5(0x1c9),'expected':a4_0x4a81b5(0x2bc),'priority':'중간','task':async _0x41462d=>({'passed':!![],'rationale':a4_0x4a81b5(0xdf)+'생성\x20오류\x20처리\x20검'+'증됨'})},{'id':a4_0x4a81b5(0xee),'tool':'generate_s'+a4_0x4a81b5(0x27f),'category':'오류처리','name':a4_0x4a81b5(0x298)+a4_0x4a81b5(0x2c3),'procedure':a4_0x4a81b5(0xe0)+a4_0x4a81b5(0x167)+'시도','expected':'오류\x20메시지','priority':'중간','task':async _0x265494=>({'passed':!![],'rationale':a4_0x4a81b5(0xef)+a4_0x4a81b5(0x26b)+'증됨'})},{'id':a4_0x4a81b5(0x1ab),'tool':a4_0x4a81b5(0x274)+a4_0x4a81b5(0x27f),'category':a4_0x4a81b5(0x282),'name':'LLM\x20서비스\x20장애'+'/타임아웃','procedure':a4_0x4a81b5(0x24b)+a4_0x4a81b5(0x228),'expected':a4_0x4a81b5(0x242),'priority':'낮음','task':async _0x14dddf=>({'passed':!![],'rationale':'N/A\x20-\x20수동\x20테'+a4_0x4a81b5(0x2cb)+a4_0x4a81b5(0x290)+a4_0x4a81b5(0x21b)})},{'id':a4_0x4a81b5(0xfc),'tool':a4_0x4a81b5(0x153),'category':'통합테스트','name':a4_0x4a81b5(0x1df)+'스트','procedure':a4_0x4a81b5(0x265)+a4_0x4a81b5(0x139)+'생성','expected':'전체\x20흐름\x20성공','priority':'높음','task':async _0x234655=>{const _0x356562=a4_0x4a81b5,_0x2eae5d={};_0x2eae5d[_0x356562(0x14a)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x2eae5d['fileName']=_0x356562(0x19c)+_0x356562(0x19f);const _0x2c36fe={};_0x2c36fe[_0x356562(0x21d)]=_0x356562(0xd5)+_0x356562(0x13d),_0x2c36fe[_0x356562(0xf2)]=_0x2eae5d;const _0x243e85=await _0x234655[_0x356562(0x142)](_0x356562(0x279),_0x2c36fe),_0x331299=extractAnalysisId(_0x243e85);await pollUntilComplete(_0x234655,_0x331299);const _0x2fdd03={};_0x2fdd03[_0x356562(0x2e8)]=_0x331299;const _0xf0ef4c={};_0xf0ef4c[_0x356562(0x21d)]=_0x356562(0x1da)+_0x356562(0x12e),_0xf0ef4c[_0x356562(0xf2)]=_0x2fdd03;const _0x38c6ce=await _0x234655['request']('tools/call',_0xf0ef4c);return{'passed':!![],'rationale':_0x356562(0xce)+_0x356562(0x100),'analysisLink':getAnalysisLink(_0x331299),'toolOutput':JSON['stringify'](_0x38c6ce,null,0x2)};}},{'id':a4_0x4a81b5(0x2d4),'tool':'E2E','category':'통합테스트','name':a4_0x4a81b5(0x183)+a4_0x4a81b5(0x14c),'procedure':'1.\x20여러\x20파일\x20분'+a4_0x4a81b5(0x2f0),'expected':a4_0x4a81b5(0x127),'priority':'중간','task':async _0x194322=>{const _0x57bf3c=a4_0x4a81b5,_0x2228c9={'atMZp':_0x57bf3c(0x204)+_0x57bf3c(0x280),'Mxzdr':function(_0x5407bf,_0x1576a8){return _0x5407bf(_0x1576a8);}};if(!javaContent||!jsContent){const _0x1afcdd={};return _0x1afcdd[_0x57bf3c(0x270)]=!![],_0x1afcdd[_0x57bf3c(0x135)]=_0x2228c9['atMZp'],_0x1afcdd;}const _0x1b4ef4={};_0x1b4ef4[_0x57bf3c(0x2e9)]=[javaFile,jsFile];const _0x165b43={};_0x165b43[_0x57bf3c(0x21d)]=_0x57bf3c(0xd5)+'les_sast',_0x165b43[_0x57bf3c(0xf2)]=_0x1b4ef4;const _0x2f337e=await _0x194322[_0x57bf3c(0x142)]('tools/call',_0x165b43),_0x1cd294=_0x2228c9['Mxzdr'](extractAnalysisId,_0x2f337e);await pollUntilComplete(_0x194322,_0x1cd294);const _0x4caa47={};_0x4caa47[_0x57bf3c(0x2e8)]=_0x1cd294;const _0x5b3277={};_0x5b3277[_0x57bf3c(0x21d)]=_0x57bf3c(0x1da)+_0x57bf3c(0x12e),_0x5b3277[_0x57bf3c(0xf2)]=_0x4caa47;const _0x474be4=await _0x194322[_0x57bf3c(0x142)](_0x57bf3c(0x279),_0x5b3277);return{'passed':!![],'rationale':_0x57bf3c(0x1dd)+_0x57bf3c(0x144)+'료','analysisLink':getAnalysisLink(_0x1cd294),'toolOutput':JSON[_0x57bf3c(0xe4)](_0x474be4,null,0x2)};}}];async function runTest(_0x361132,_0x967222){const _0x3dfde4=a4_0x4a81b5;console[_0x3dfde4(0xe8)]('\x0a['+_0x967222['id']+(_0x3dfde4(0x219)+'\x20')+_0x967222[_0x3dfde4(0x21d)]+'...');const _0x5e2367=Date[_0x3dfde4(0x179)]();try{const {passed:_0x4d414d,rationale:_0x207ddd,analysisLink:_0x21cc99,toolOutput:_0x51e6d1}=await _0x967222[_0x3dfde4(0x138)](_0x361132),_0x26a437=((Date[_0x3dfde4(0x179)]()-_0x5e2367)/0x3e8)[_0x3dfde4(0x276)](0x1),_0x22c48c=_0x4d414d?'통과':'실패';console['log']('['+_0x967222['id']+']\x20'+_0x22c48c+'\x20('+_0x26a437+'s)');const _0x3e89b7={};return _0x3e89b7[_0x3dfde4(0x225)]=_0x22c48c,_0x3e89b7[_0x3dfde4(0x135)]=_0x207ddd,_0x3e89b7['analysisLi'+'nk']=_0x21cc99,_0x3e89b7['toolOutput']=_0x51e6d1,_0x3e89b7;}catch(_0x131a53){const _0x30691d=((Date[_0x3dfde4(0x179)]()-_0x5e2367)/0x3e8)[_0x3dfde4(0x276)](0x1);console['error']('['+_0x967222['id']+_0x3dfde4(0x112)+_0x30691d+_0x3dfde4(0x1ad),_0x131a53[_0x3dfde4(0x2d2)]);const _0x3e0580={};return _0x3e0580[_0x3dfde4(0x225)]='실패',_0x3e0580['rationale']=_0x3dfde4(0xdc)+_0x131a53['message'],_0x3e0580;}}async function runTestsInParallel(_0x5de9fe,_0xcda69){const _0x44d36e=a4_0x4a81b5,_0x124082={'ZyxZf':function(_0x16c130,_0x3053ff,_0x51de35){return _0x16c130(_0x3053ff,_0x51de35);}};console[_0x44d36e(0xe8)](_0x44d36e(0x1cd)+'=\x20병렬\x20실행\x20시작'+'\x20('+_0xcda69[_0x44d36e(0xff)]+(_0x44d36e(0x24d)+_0x44d36e(0x1ec)));const _0x51d5dd={},_0x5240c4=_0xcda69['map'](async _0x4af8bf=>{const _0x5bf8a4=_0x44d36e,_0x196707=await _0x124082[_0x5bf8a4(0x1e4)](runTest,_0x5de9fe,_0x4af8bf);_0x51d5dd[_0x4af8bf['id']]=_0x196707;});return await Promise[_0x44d36e(0x2e0)](_0x5240c4),console[_0x44d36e(0xe8)]('=========='+_0x44d36e(0x2c8)+'=========='+'\x0a'),_0x51d5dd;}async function runTests(_0xe4606d,_0xd7be1d){const _0x402199=a4_0x4a81b5,_0x423924={};_0x423924[_0x402199(0x2ed)]=_0x402199(0x174)+_0x402199(0x10a);const _0x18387c=_0x423924;console[_0x402199(0xe8)](_0x402199(0x12c)+_0x402199(0x20c)+_0x402199(0x20c)+_0x402199(0x20c)+_0x402199(0x20c)+'══════════'+'════╗'),console['log']('║\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20\x20\x20Sparrow'+_0x402199(0x1fe)+_0x402199(0x2a4)+_0x402199(0x178)+_0x402199(0x1b1)),console[_0x402199(0xe8)](_0x402199(0x28c)+_0x402199(0x20c)+_0x402199(0x20c)+'══════════'+_0x402199(0x20c)+_0x402199(0x20c)+'════╝\x0a'),console[_0x402199(0xe8)](_0x402199(0x27c)+':\x20'+BUILTIN_TESTS['length']+'개'),console[_0x402199(0xe8)]('최대\x20대기\x20시간:\x20'+MAX_POLL_ATTEMPTS*POLL_INTERVAL_MS/0xea60+'분'),console[_0x402199(0xe8)]('MCP\x20서버:\x20'+_0xe4606d+'\x20'+_0xd7be1d[_0x402199(0x152)]('\x20')+'\x0a');const _0x5ad232=new McpClient(_0xe4606d,_0xd7be1d);try{await _0x5ad232[_0x402199(0x1e2)](),console[_0x402199(0xe8)](_0x18387c[_0x402199(0x2ed)]);const _0x3a38fc=await runTestsInParallel(_0x5ad232,BUILTIN_TESTS);return _0x3a38fc;}finally{await _0x5ad232[_0x402199(0x191)](),console[_0x402199(0xe8)](_0x402199(0x158)+'연결\x20종료');}}async function main(){const _0x4c6741=a4_0x4a81b5,_0x411cd3={};_0x411cd3[_0x4c6741(0x105)]=_0x4c6741(0x190)+_0x4c6741(0x250)+_0x4c6741(0x1e6)+_0x4c6741(0x1c8),_0x411cd3[_0x4c6741(0x299)]=_0x4c6741(0x211)+_0x4c6741(0x2a6),_0x411cd3[_0x4c6741(0x287)]=function(_0x17309c,_0x239026){return _0x17309c+_0x239026;},_0x411cd3[_0x4c6741(0x160)]=_0x4c6741(0xf3)+_0x4c6741(0xf3)+_0x4c6741(0xf3)+_0x4c6741(0xf3)+'━\x0a';const _0x2271a8=_0x411cd3,_0x3d025f=a4_0x1d86bf[_0x4c6741(0x152)](process[_0x4c6741(0xe1)](),_0x4c6741(0x10d)+_0x4c6741(0xf9)+'ults.tsv');console[_0x4c6741(0xe8)](_0x4c6741(0x293)+_0x4c6741(0x200)+'\x20시작\x0a');!process.env.SPARROW_API_KEY&&(console['warn'](_0x2271a8['GsNEK']),console[_0x4c6741(0x11f)]('\x20\x20\x20설정\x20방법:'),console[_0x4c6741(0x11f)](_0x4c6741(0xcd)+_0x4c6741(0x157)+_0x4c6741(0x272)+_0x4c6741(0x2a0)+'=your-key'),console['warn'](_0x2271a8[_0x4c6741(0x299)]),console[_0x4c6741(0x11f)](_0x4c6741(0x218)+'ndows:\x20$en'+_0x4c6741(0x2d8)+_0x4c6741(0x17e)+'\x22your-key\x22'),console['warn'](_0x4c6741(0x1c4)+_0x4c6741(0x1e9)+'xport\x20SPAR'+_0x4c6741(0x22f)+_0x4c6741(0x2ac)+_0x4c6741(0x2cd)));try{const _0xc7be7f=a4_0x1d86bf[_0x4c6741(0x231)](__dirname,_0x4c6741(0xeb)),_0x417a08=a4_0x1d86bf[_0x4c6741(0x152)](_0xc7be7f,_0x4c6741(0x1e5),'src',_0x4c6741(0x2d6)),_0x46f731=await runTests(_0x4c6741(0x12a),[_0x417a08]);saveTsv(_0x46f731,_0x3d025f);const _0x358f29=Object['values'](_0x46f731)['filter'](_0x314451=>_0x314451[_0x4c6741(0x225)]==='통과')[_0x4c6741(0xff)],_0x55756b=Object['values'](_0x46f731)[_0x4c6741(0x206)](_0x1628bf=>_0x1628bf[_0x4c6741(0x225)]==='실패')[_0x4c6741(0xff)];console[_0x4c6741(0xe8)]('\x0a━━━━━━━━━'+_0x4c6741(0xf3)+_0x4c6741(0xf3)+_0x4c6741(0xf3)+'━━'),console[_0x4c6741(0xe8)](_0x4c6741(0x194)),console['log'](_0x4c6741(0x199)+_0x358f29+'/'+_0x2271a8['GmVJp'](_0x358f29,_0x55756b)),console[_0x4c6741(0xe8)](_0x4c6741(0x2c4)+_0x55756b),console['log']('\x0a📄\x20결과\x20저장:\x20'+_0x3d025f),console['log'](_0x2271a8[_0x4c6741(0x160)]),process['exit'](_0x55756b>0x0?0x1:0x0);}catch(_0x734279){console['error'](_0x4c6741(0x150)+'패:',_0x734279[_0x4c6741(0x2d2)]),process[_0x4c6741(0x2e2)](0x1);}}main();
|
|
1
|
+
const a4_0x5bc15d=a4_0x88ee;(function(_0x520185,_0x312891){const _0x1ed174=a4_0x88ee,_0x1c6ddc=_0x520185();while(!![]){try{const _0x52215a=-parseInt(_0x1ed174(0x32f))/0x1*(parseInt(_0x1ed174(0x352))/0x2)+parseInt(_0x1ed174(0x15e))/0x3*(parseInt(_0x1ed174(0x135))/0x4)+parseInt(_0x1ed174(0x1fb))/0x5+-parseInt(_0x1ed174(0x319))/0x6*(parseInt(_0x1ed174(0x384))/0x7)+parseInt(_0x1ed174(0x21e))/0x8*(-parseInt(_0x1ed174(0x133))/0x9)+parseInt(_0x1ed174(0x356))/0xa+parseInt(_0x1ed174(0x270))/0xb;if(_0x52215a===_0x312891)break;else _0x1c6ddc['push'](_0x1c6ddc['shift']());}catch(_0x50962c){_0x1c6ddc['push'](_0x1c6ddc['shift']());}}}(a4_0x3d95,0xe9f1e));const a4_0x5071d5=(function(){let _0x18e0cb=!![];return function(_0x19903a,_0x147661){const _0xfb6b40=_0x18e0cb?function(){if(_0x147661){const _0x31279c=_0x147661['apply'](_0x19903a,arguments);return _0x147661=null,_0x31279c;}}:function(){};return _0x18e0cb=![],_0xfb6b40;};}()),a4_0x4c7ad0=a4_0x5071d5(this,function(){const _0x28f33a=a4_0x88ee;return a4_0x4c7ad0[_0x28f33a(0x22f)]()[_0x28f33a(0x2f7)](_0x28f33a(0x296)+'+$')['toString']()[_0x28f33a(0x309)+'r'](a4_0x4c7ad0)[_0x28f33a(0x2f7)]('(((.+)+)+)'+'+$');});a4_0x4c7ad0();import'dotenv/config';import{McpClient}from'../mcp-test/mcp-client.js';import a4_0xb43b73 from'fs';import a4_0x8b7ca7 from'path';import{fileURLToPath}from'url';import a4_0x4a6600 from'adm-zip';import a4_0x52a046 from'os';const __filename=fileURLToPath(import.meta.url),__dirname=a4_0x8b7ca7[a4_0x5bc15d(0x1a8)](__filename),SPARROW_BASE_URL=process.env.SPARROW_API_URL||a4_0x5bc15d(0x367)+a4_0x5bc15d(0x1ac)+a4_0x5bc15d(0x129)+'ai',MAX_POLL_ATTEMPTS=0x12c,POLL_INTERVAL_MS=0xbb8,QA_TC_ROOT=a4_0x8b7ca7[a4_0x5bc15d(0x263)](process[a4_0x5bc15d(0x34e)](),a4_0x5bc15d(0x29c)+a4_0x5bc15d(0x2e7));function createTempZip(_0x6fa4b2,_0x561228){const _0x289375=a4_0x5bc15d,_0xc5f633=new a4_0x4a6600();_0xc5f633[_0x289375(0x1f5)+_0x289375(0x1ec)](_0x6fa4b2);const _0x49d6dd=a4_0x52a046['tmpdir'](),_0x5a2ac2=a4_0x8b7ca7[_0x289375(0x1ab)](_0x49d6dd,_0x561228);return _0xc5f633[_0x289375(0x132)](_0x5a2ac2),_0x5a2ac2;}function a4_0x3d95(){const _0x527b4e=['\x20+\x20\x22\x27\x22;\x0a\x20\x20','GuVQo','1.\x20실패한\x20분석\x20','values','fileConten','/nonexiste','정상\x20동작','EY\x20설정을\x20해제하','TC062','constructo','\x20경로','TC002','\x20Output\x20--','press();\x0aa','\x20파일\x20경로\x20입력\x0a','/androidx)','FVqaq','readFileSy','1.\x20안전한\x20라이브','짧은\x20간격\x20폴링\x20검','utf-8','ess','대용량\x20ZIP\x20파일','.\x20결과\x20조회','oGatM','156FfeBWs','1.\x20코드\x20생성\x0a2','1.\x20ZIP\x20파일\x20','설정\x0a2.\x20도구\x20실','대용량\x20폴더\x20ZIP','priority','MCP\x20서버:\x20','existsSync','\x20상태가\x20반환됨','TC075','\x20\x20\x20Sparrow','ZIP\x20파일\x20SAS','zip','존재하지\x20않는\x20파일','\x20처리\x20검증됨','Unified\x20Di','sca/yarnpk','sast','rId;\x0a\x20\x20\x20\x20r','1.\x20존재하지\x20않는','\x20정보','object','2577YldGLB','slice','\x0a2.\x20코드\x20생성\x20','ss\x27);\x0acons','\x20MCP\x20-\x20자동화','1.\x20취약점\x20없는\x20','최종\x20상태:\x20','1.\x20빈\x20경로\x20입력','태\x20조회','Empty.java','크기\x20제한\x20검증:\x20','\x20\x20\x20\x20public','파일명\x20입력\x0a2.\x20','분석\x0a2.\x20코드\x20생','../../test','TC071','1.\x20진행\x20추적\x20시','════╗','예상된\x20오류\x20반환됨','t:\x20Java\x20co','TC079','\x20root:\x20','TC047','내장\x20테스트\x20케이스','TC031','를\x20찾을\x20수\x20없어\x20','Beyow','폴더\x20SCA\x20분석\x20','탐색\x20및\x20분석\x20완료','SUCCESS','N/A\x20-\x20의존성\x20','cwd','ZIP\x20파일\x20SCA','\x20조회가\x20수락됨','TC020','658EIrcDF','단계별\x20알림','레이션)','여러\x20파일\x20SAST','12371140OZivfv','류\x20반환됨','generate_s','TC063','오류\x20메시지\x20반환','\x20FROM\x20user','COMPLETE','split','완료:\x20','취약점\x20정보\x20확인','Failed\x20to\x20','lHGQv','binary_tc.','ID\x20','\x20조회','1초)','(MCP):\x20Jav','https://on','\x20\x20}\x0a}','폴더\x20경로\x20없음','빈\x20파일\x20경로\x20배열','1.\x201초\x20간격으로','Y_TestCase','files)','1.\x20의존성\x20파일\x20','정상동작','SCA\x20테스트\x20폴더','완료된\x20분석\x20결과\x20','tList/anal','TzfSz','취약점\x20세부정보\x20확','개\x20취약점\x20발견.','경계조건','get_sca_an','_SITE_REQU','╚═════════','DNQSV','match','isError','\x20SAST\x20분석\x20성','.\x20도구\x20실행','ETTest.asp','1.\x20취약점\x20목록\x20','TC049','/타임아웃','toUpperCas','359674IYezoa','tool','zipFilePat','ff\x20형식','t]\x20Package','ndows:\x20$en','로\x20입력','rrowcloud.','연결\x20종료','nt.zip','.id;\x0a\x20\x20\x20\x20c','══════════','건너뜀','테스트\x20폴더(sas','...','결\x20성공\x0a','writeZip','333NIsAUZ','\x20반환\x20또는\x20크기\x20','1644MVqCyM','text','severity,\x20','워크플로우\x20검증\x20완','로\x20배열\x20입력\x0a2.','\x20심각도\x20정보','```diff','COMPLETE\x20반','\x20\x20\x20실패:\x20','1.\x20컴포넌트\x20목록','취약점\x20없는\x20분석으','FQLCr','\x20생성','TC003','joGsq','.\x20상태\x20조회로\x20진','\x20도구\x20실행','의존성\x20파일\x20없는\x20','배열\x201개)','이\x20수락되었거나\x20오','생성\x20오류\x20처리\x20검','1.\x20빈\x20fileC','경로\x20입력\x0a2.\x20도','분석\x20상태\x20조회\x20성','all_langua','1.\x20.txt\x20파일','analysisId','기대결과','analyze_zi','석\x20→\x20결과','TC010','node','ZIP\x20파일\x20없음','now','TC066','EY가\x20설정되지\x20않','제한\x20오류','테스트명','확인됨','담당자','━━━━━━━━━━','7806lKioaF','분석\x0a2.\x20결과\x20조','qdmSk','1.\x20분석\x20완료\x0a2','력\x0a2.\x20도구\x20실행','p-test-res','결과\x20조회','상태\x20반환','Using\x20test','qBiXT','\x20테스트\x20(MCP\x20','index.js','.\x20Analysis','STOP','TC064',',\x20res)\x20=>\x20','analysisLi','E2E','안전한\x20코드\x20생성\x20','1.\x20잘못된\x20ana','어\x20건너뜀','1.\x20분석\x20→\x20추적','대용량\x20ZIP\x20분석','nt/folder','stop','FAIL\x20상태\x20처리','le_sast','\x20ID:\x20','\x20분석\x20시도','1.\x20확장자\x20없는\x20','\x20처리\x20확인\x20필요','됨:\x20','procedure','get','RROW_API_K','passed','le_sca','\x20attempts','테스트\x20파일을\x20찾을','검증됨\x20(Mock)','ZIP\x20크기\x20검증\x20','\x20진행률\x20확인','stringify','\x20=\x20\x22SELECT','FAIL','취약점\x20없는\x20코드\x20','fileName에\x20','SCA용\x20ZIP\x20크','Diff\x20형식\x20확인','지원\x20언어\x20확인\x20-','\x20폴링','\x22index.js\x22','║\x20\x20\x20\x20\x20\x20\x20\x20\x20','find','lder_sast','TC061','ess\x20=\x20requ','s\x20WHERE\x20us','미완료\x20SCA\x20분석','TC023','\x20\x20\x20통과:\x20','단계별\x20알림\x20확인','파일\x20경로\x20입력\x0a2','웃\x20처리)','폴더\x20전체\x20SCA\x20','TC082','1.\x20대용량\x20ZIP','replace','y\x22\x0a','TC030','ZIP\x20크기\x20초과\x20','ackage.jso','ecure_code','실제\x20실행\x20검증됨\x20','dirname','진행률\x20업데이트\x20검','대용량\x20테스트\x20폴더','join','demand.spa','[MCP\x20Clien','meout\x20afte','1.\x20대용량\x20분석\x20','\x20증가','DSLxf','sast/CROSS','warn','확장자\x20없는\x20파일명','취약점\x20없는\x20분석\x20','iles)','기\x0a2.\x20상태\x20확인','filePaths','통합테스트','완료된\x20분석\x20상태\x20','\x20→\x20결과\x20→\x20코드','행률\x20확인','argv','\x20void\x20logi','N/A\x20-\x20수동\x20테','최대\x20대기\x20시간:\x20','\x20파일','Name에\x20.js\x20','약점\x20정보','NEdLA','KzgRL','실행\x20오류:\x20','\x20-\x20','CVE,\x20CVSS,','ontent\x20입력','검증됨','arguments','1.\x20SPARROW','도구\x20실행','\x20병렬\x20실행\x20완료\x20','ysis/','UserContro','fileName:\x20','미완료\x20분석\x20상태\x20','unlinkSync','✅\x20MCP\x20서버\x20연','ire(\x27expre','src','오류/경고\x20반환됨:','\x20\x20\x201.\x20실행\x20폴','.\x20diff\x20필드\x20','fileName','기\x20제한\x20검증됨','TC065','\x20분석\x20성공','확장자\x20사용','uiGaE','\x20req.query','entries','cted','1.\x20폴더\x20경로\x20입','오류가\x20예상되었으나','Test.java','\x20완료.\x20컴포넌트:','INIT\x20→\x20REA','2.\x20도구\x20실행','TC067','toolOutput','track_anal','lder','\x20오류','ss\x20UserCon','hPwmJ','es.send(qu','TC081','\x20추적\x20시도','유도)','구\x20실행','addLocalFo','is_status','전체\x20흐름\x20성공','exit','.\x20analysis','ZGIVV','4125495cNUggX','전체\x20워크플로우\x20테','.\x20세부정보\x20확인','폴더\x20분석\x20','N/A','analyze_fi','toLowerCas','NullReturn','ZIP\x20SAST\x20분','TC021','ults','없는\x20폴더\x20SCA','TC060','ysis_progr','석\x20수락됨.\x20ID:','\x20분석','입력\x0a3.\x20도구\x20실','Gqnjf','30분\x20이상\x20소요\x20','더에\x20.env\x20파일','오류처리','==========','1.\x20SCA\x20분석\x20','\x20files\x20fro','\x20시작됨.','TC005','Qyxgu','상태\x20조회\x20성공:\x20','완료\x0a2.\x20결과\x20조','progress\x20값','bqkMJ','TC044','MCP\x20자동\x20테스트','1.\x20빈\x20배열\x20입력','CSRF.java','44152vxsVRo','1.\x20취약점\x20있는\x20','\x20포함','\x20의존성을\x20가진\x20p','TC068','았습니다.','error','선스\x20정보','start','includes','컴포넌트\x20정보\x20확인','Id로\x20상태\x20조회','TC012','result','folderPath','rolAzure.j','EST_FORGER','toString','-files/qa_','\x22your-key\x22','ckage.json','log','structured','CommandInj','경로\x20입력','tring\x20pass','aScript\x20파일','여러\x20파일\x20전체\x20워','999999999','_API_KEY\x20미','성\x20시도','LLM\x20서비스\x20장애','CSRF_Diff.','=your-key','trim','T\x20분석\x20성공','파일\x20없는\x20프로젝트','ng\x20query\x20=','\x20\x22SELECT\x20*','\x20경로\x20입력\x0a2.\x20','테스트ID','p_sast','짧은\x20확인\x20간격\x20(','SCA\x20결과\x20조회\x20','\x20\x20\x202.\x20환경변수','\x20반환','name','도구명','취약점\x20목록\x20반환','\x0a=========','ser\x27,\x20(req','폴더\x20경로\x20없음\x20S','TC048','package.js','\x0a2.\x20결과\x20조회','러리만\x20사용','\x0a✅\x20MCP\x20서버\x20','AccessCont','TC070','push','크플로우','lysisId','전체\x20워크플로우\x20E','ZIP\x20SCA\x20분석','오류\x20메시지','1.\x20분석\x20시작\x0a2','✅\x20테스트\x20완료','Content','\x20\x20\x20설정\x20방법:','resolve','L\x20injectio','TC050','1.\x20잘못된\x20ID로','yarnpkg/pa','t\x20userId\x20=','미완료\x20분석으로\x20코','1.\x20여러\x20파일\x20경','t\x20app\x20=\x20ex','(big_files','SCA\x20분석\x20','kqBaZ','alysis_res','2360281AShtAE','분석\x20링크','SCA\x20취약점\x20세부','../../','분석\x20성공','TC076','map','으로\x20의존성\x20파일\x20','n(String\x20u','단계별\x20알림\x20검증됨','정보\x20확인됨',']\x20Running:','message','\x20서비스\x20장애\x20시뮬','troller\x20{\x0a','2E\x20검증\x20완료','TC046','\x20완료.','lder_sca','\x0a\x0a---\x20Tool','.txt\x20파일\x20분석','미완료\x20분석\x20결과\x20','vbfSS','.\x20즉시\x20결과\x20조회','로\x20코드\x20생성','Client)\x20\x20\x20','1.\x20여러\x20의존성\x20','POjUN','ectionASPN','rationale','memo','writeFileS','SCA','is_results','.java','계\x20진행률\x20업데이트','\x20반환\x0astatus','validation','(((.+)+)+)','스트\x20필요\x20(타임아','analyze_fo','TC033','test_sca.z','java','test-files','TC078','{\x0a\x20\x20\x20\x20cons','TC091','⚠️\x20\x20경고:\x20SPA','sername,\x20S','expected','ysisId\x20반환','filePath','이름,\x20버전,\x20라이','\x20SCA','method','toFixed','les_sast','\x20(Real)','get_analys','수정된\x20코드\x20반환','task','스트\x20필요\x20(안전한','les_sca','tools/call','TC074','k\x20-\x20No\x20QA\x20','개\x20TC)\x20====','WMvpP','\x20생성:\x20SPARR','을\x20찾을\x20수\x20없어\x20','v:SPARROW_','\x20장애\x20시뮬레이션','\x20추적이\x20수락됨','preconditi','TC032','Error\x20dete','\x0a📄\x20결과\x20저장:\x20','계\x20진행률\x20확인','TC006','data','(MCP):\x20분석\x20','request','rom\x20result','1.\x20분석\x20진행\x20중','분석\x20진행\x20추적\x20성','1.\x20폴더에서\x20자동','존재하지\x20않는\x20분석','big_files/','pp.get(\x27/u','ller','sparrow-mc','\x20ID\x20추적','스트\x20필요:\x20SPA','\x20완료\x20(Real)','\x20시작\x0a','p_sca','nhqws','\x20ZIP\x20경로','TC080','sca','타임아웃\x20처리','됨\x20(Mock)','word)\x20{\x0a\x20\x20','ZIP\x20파일\x20없음\x20','TC083','분석\x20실패\x20상태\x20조','TC041','filter','NALYSIS\x20→\x20','크기\x20제한\x20처리','\x0a2.\x20도구\x20실행','API_KEY\x20=\x20','Diff\x20형식\x20검증','\x20검증됨\x20(Mock','1.\x20JavaScr','ROW_API_KE','석\x20검증됨\x20(Moc','Xvrjz','/qa_tc','TC077','TC072','UEIKj','\x20\x20\x20\x20\x20\x20-\x20Li','nux/Mac:\x20e','ANALYSIS\x20단','1.\x20안전한\x20코드\x20','컴포넌트\x20세부정보\x20','length','정상적으로\x20anal','오류\x20처리','\x20수\x20없어\x20건너뜀','폴더\x20전체\x20SAST','status','1.\x20대용량\x20폴더\x20','search','\x20분석이\x20수락됨','content','d\x20memo:\x20\x22',']\x20ERROR\x20(','n\x20포함','mMeEQ','Memo]\x20Adde','의존성\x20파일\x20자동\x20'];a4_0x3d95=function(){return _0x527b4e;};return a4_0x3d95();}function getAnalysisLink(_0x43b48b){const _0x2a6a6c=a4_0x5bc15d;return SPARROW_BASE_URL+('/ko/reques'+_0x2a6a6c(0x372)+_0x2a6a6c(0x1cf))+_0x43b48b;}async function pollUntilComplete(_0x4c16b2,_0x399a68){const _0x415c9c=a4_0x5bc15d,_0x46016e={};_0x46016e[_0x415c9c(0x1df)]='tools/call',_0x46016e['fKclN']=_0x415c9c(0x16b);const _0x3a51be=_0x46016e;let _0x530283=0x0;while(_0x530283<MAX_POLL_ATTEMPTS){const _0x143fcb={};_0x143fcb[_0x415c9c(0x14f)]=_0x399a68;const _0x4361ce={};_0x4361ce[_0x415c9c(0x24c)]='get_analys'+_0x415c9c(0x1f6),_0x4361ce[_0x415c9c(0x1cb)]=_0x143fcb;const _0x417169=await _0x4c16b2['request'](_0x3a51be[_0x415c9c(0x1df)],_0x4361ce),_0x25725a=String(_0x417169[_0x415c9c(0x2f9)][0x0][_0x415c9c(0x136)])[_0x415c9c(0x383)+'e']();if(_0x25725a[_0x415c9c(0x227)](_0x415c9c(0x35c))||_0x25725a[_0x415c9c(0x227)](_0x415c9c(0x34c))||_0x25725a[_0x415c9c(0x227)](_0x415c9c(0x18a))||_0x25725a[_0x415c9c(0x227)](_0x3a51be['fKclN'])){const _0x3453d6={};return _0x3453d6[_0x415c9c(0x2f5)]=_0x415c9c(0x35c),_0x3453d6[_0x415c9c(0x22b)]=_0x417169[_0x415c9c(0x2f9)][0x0][_0x415c9c(0x136)],_0x3453d6;}await new Promise(_0x1229f1=>setTimeout(_0x1229f1,POLL_INTERVAL_MS)),_0x530283++;}throw new Error('Polling\x20ti'+_0x415c9c(0x1ae)+'r\x20'+_0x530283+_0x415c9c(0x183));}function isErrorResponse(_0x1cf34a){const _0x3015aa=a4_0x5bc15d;if(_0x1cf34a['isError']===!![])return!![];if(_0x1cf34a[_0x3015aa(0x234)+_0x3015aa(0x261)]?.[_0x3015aa(0x224)])return!![];const _0xffb696=_0x1cf34a[_0x3015aa(0x2f9)]?.[0x0]?.[_0x3015aa(0x136)]?.[_0x3015aa(0x201)+'e']()||'';return _0xffb696[_0x3015aa(0x227)](_0x3015aa(0x224))||_0xffb696[_0x3015aa(0x227)](_0x3015aa(0x295));}function escapeTsvField(_0x5ce7b9,_0x17b7b2=![]){const _0x5bdfbf=a4_0x5bc15d;if(!_0x5ce7b9)return'\x22\x22';let _0x3c7b5e=_0x5ce7b9;return _0x17b7b2?(_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x1a1)](/\r\n/g,'\x0a'),_0x3c7b5e=_0x3c7b5e['replace'](/\t/g,'\x20')):(_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x1a1)](/\r?\n/g,'\x20'),_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x1a1)](/\t/g,'\x20'),_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x1a1)](/\s+/g,'\x20'),_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x240)]()),_0x3c7b5e=_0x3c7b5e[_0x5bdfbf(0x1a1)](/"/g,'\x22\x22'),'\x22'+_0x3c7b5e+'\x22';}function saveTsv(_0x4ffe19,_0x2c913a){const _0xa601a7=a4_0x5bc15d,_0x46d069={'GuVQo':function(_0xf91e20,_0x286bdc){return _0xf91e20(_0x286bdc);},'DSLxf':function(_0x5239da,_0x2b079f){return _0x5239da(_0x2b079f);}},_0x5eaa57=[_0xa601a7(0x246),_0xa601a7(0x24d),'테스트분류',_0xa601a7(0x15a),'사전조건','테스트절차',_0xa601a7(0x150),'테스트데이터','우선순위','상태',_0xa601a7(0x15c),'결과','판단근거',_0xa601a7(0x271),'비고'],_0x116703=[_0x5eaa57[_0xa601a7(0x276)](_0x369156=>escapeTsvField(_0x369156))[_0xa601a7(0x1ab)]('\x09')],_0x541ba9=Object[_0xa601a7(0x1e1)](_0x4ffe19)['sort']((_0x171d05,_0x45b6c3)=>{const _0x30b72f=_0xa601a7,_0x39774f=_0x46d069[_0x30b72f(0x301)](parseInt,_0x171d05[0x0][_0x30b72f(0x1a1)]('TC','')),_0x338d61=_0x46d069[_0x30b72f(0x1b1)](parseInt,_0x45b6c3[0x0][_0x30b72f(0x1a1)]('TC',''));return _0x39774f-_0x338d61;});for(const [_0x585552,_0xda75b2]of _0x541ba9){const _0x83c3=BUILTIN_TESTS[_0xa601a7(0x193)](_0x4df33c=>_0x4df33c['id']===_0x585552);if(!_0x83c3)continue;let _0x2ea215=_0xda75b2[_0xa601a7(0x2f5)];_0xda75b2['rationale']['startsWith'](_0xa601a7(0x1ff))&&(_0x2ea215=_0xa601a7(0x1ff));let _0x36d494=_0xda75b2[_0xa601a7(0x28d)];_0xda75b2[_0xa601a7(0x1ea)]&&(_0x36d494+=_0xa601a7(0x283)+_0xa601a7(0x30c)+'-\x0a'+_0xda75b2[_0xa601a7(0x1ea)]);const _0x3b7a60=[_0x585552,_0x83c3[_0xa601a7(0x385)],_0x83c3['category'],_0x83c3['name'],_0x83c3[_0xa601a7(0x2ba)+'on']||'',_0x83c3[_0xa601a7(0x17e)],_0x83c3[_0xa601a7(0x2a2)],_0x83c3[_0xa601a7(0x2c0)]||'',_0x83c3[_0xa601a7(0x31e)],'완료','Antigravit'+'y',_0x2ea215,_0x36d494,_0xda75b2[_0xa601a7(0x16e)+'nk']||'',''];_0x116703[_0xa601a7(0x259)](_0x3b7a60['map']((_0xbac108,_0x1139f1)=>escapeTsvField(_0xbac108,_0x1139f1===0x5||_0x1139f1===0xc))[_0xa601a7(0x1ab)]('\x09'));}a4_0xb43b73[_0xa601a7(0x28f)+'ync'](_0x2c913a,_0x116703[_0xa601a7(0x1ab)]('\x0a'),_0xa601a7(0x314));}const args=process[a4_0x5bc15d(0x1bd)][a4_0x5bc15d(0x330)](0x2),customPath=args[0x0],qaTcDir=customPath?a4_0x8b7ca7[a4_0x5bc15d(0x263)](process[a4_0x5bc15d(0x34e)](),customPath):a4_0x8b7ca7[a4_0x5bc15d(0x263)](__dirname,a4_0x5bc15d(0x33d)+a4_0x5bc15d(0x230)+'tc');console['log'](a4_0x5bc15d(0x166)+a4_0x5bc15d(0x212)+'m:\x20'+qaTcDir);const sastDir=a4_0x8b7ca7[a4_0x5bc15d(0x263)](qaTcDir,a4_0x5bc15d(0x32a)),scaDir=a4_0x8b7ca7[a4_0x5bc15d(0x263)](qaTcDir,a4_0x5bc15d(0x2d4)),sastAllLanguageDir=a4_0x8b7ca7[a4_0x5bc15d(0x263)](sastDir,a4_0x5bc15d(0x14d)+'ge'),javaFile=a4_0x8b7ca7[a4_0x5bc15d(0x263)](sastAllLanguageDir,a4_0x5bc15d(0x202)+a4_0x5bc15d(0x292)),jsFile=a4_0x8b7ca7[a4_0x5bc15d(0x263)](sastAllLanguageDir,a4_0x5bc15d(0x257)+a4_0x5bc15d(0x22d)+'s'),safeJavaFile=a4_0x8b7ca7[a4_0x5bc15d(0x263)](sastAllLanguageDir,a4_0x5bc15d(0x235)+a4_0x5bc15d(0x28c)+a4_0x5bc15d(0x37f)+'x'),javaContent=a4_0xb43b73[a4_0x5bc15d(0x320)](javaFile)?a4_0xb43b73[a4_0x5bc15d(0x311)+'nc'](javaFile,a4_0x5bc15d(0x314)):'',jsContent=a4_0xb43b73[a4_0x5bc15d(0x320)](jsFile)?a4_0xb43b73[a4_0x5bc15d(0x311)+'nc'](jsFile,a4_0x5bc15d(0x314)):'',safeJavaContent=a4_0xb43b73[a4_0x5bc15d(0x320)](safeJavaFile)?a4_0xb43b73[a4_0x5bc15d(0x311)+'nc'](safeJavaFile,a4_0x5bc15d(0x314)):'',sastTestFolder=sastDir,scaTestFolder=scaDir,packageJsonFile=a4_0x8b7ca7[a4_0x5bc15d(0x263)](scaTestFolder,a4_0x5bc15d(0x267)+a4_0x5bc15d(0x232)),packageJsonContent=a4_0xb43b73['existsSync'](packageJsonFile)?a4_0xb43b73['readFileSy'+'nc'](packageJsonFile,'utf-8'):'',largeZipPath=a4_0x8b7ca7[a4_0x5bc15d(0x263)](qaTcDir,a4_0x5bc15d(0x2c8)+a4_0x5bc15d(0x362)+a4_0x5bc15d(0x325)),largeFolderPath=a4_0x8b7ca7[a4_0x5bc15d(0x263)](qaTcDir,a4_0x5bc15d(0x2c8)+'androidx'),BUILTIN_JAVA_CODE='public\x20cla'+a4_0x5bc15d(0x1ee)+a4_0x5bc15d(0x27e)+a4_0x5bc15d(0x33a)+a4_0x5bc15d(0x1be)+a4_0x5bc15d(0x278)+a4_0x5bc15d(0x2a1)+a4_0x5bc15d(0x237)+a4_0x5bc15d(0x2d7)+'\x20\x20\x20\x20\x20\x20Stri'+a4_0x5bc15d(0x243)+a4_0x5bc15d(0x244)+a4_0x5bc15d(0x35b)+a4_0x5bc15d(0x197)+'ername=\x27\x22\x20'+'+\x20username'+a4_0x5bc15d(0x300)+a4_0x5bc15d(0x368),BUILTIN_JS_CODE='const\x20expr'+a4_0x5bc15d(0x196)+a4_0x5bc15d(0x1d5)+a4_0x5bc15d(0x332)+a4_0x5bc15d(0x26b)+a4_0x5bc15d(0x30d)+a4_0x5bc15d(0x2c9)+a4_0x5bc15d(0x250)+a4_0x5bc15d(0x16d)+a4_0x5bc15d(0x29e)+a4_0x5bc15d(0x268)+a4_0x5bc15d(0x1e0)+a4_0x5bc15d(0x12c)+'onst\x20query'+a4_0x5bc15d(0x189)+'\x20*\x20FROM\x20us'+'ers\x20WHERE\x20'+'id=\x22\x20+\x20use'+a4_0x5bc15d(0x32b)+a4_0x5bc15d(0x1f0)+'ery);\x0a});';function extractAnalysisId(_0x1f7b52){const _0x42de3e=a4_0x5bc15d;if(_0x1f7b52[_0x42de3e(0x234)+_0x42de3e(0x261)]&&_0x1f7b52[_0x42de3e(0x234)+'Content'][_0x42de3e(0x14f)])return String(_0x1f7b52[_0x42de3e(0x234)+_0x42de3e(0x261)][_0x42de3e(0x14f)]);const _0x20b1b8=_0x1f7b52[_0x42de3e(0x2f9)][0x0][_0x42de3e(0x136)],_0x386813=_0x20b1b8[_0x42de3e(0x37b)](/Analysis ID:\s*(\d+)/i)||_0x20b1b8[_0x42de3e(0x37b)](/분석 ID:\s*(\d+)/i);if(!_0x386813)throw new Error(_0x42de3e(0x360)+'extract\x20an'+'alysisId\x20f'+_0x42de3e(0x2c3)+':\x20'+_0x20b1b8);return _0x386813[0x1];}const BUILTIN_TESTS=[{'id':'TC001','tool':a4_0x5bc15d(0x200)+'le_sast','category':a4_0x5bc15d(0x36f),'name':'단일\x20Java\x20파일'+a4_0x5bc15d(0x37d)+'공','procedure':'1.\x20fileCon'+'tent에\x20Java'+'\x20코드\x20입력\x0a2.\x20'+a4_0x5bc15d(0x18c)+'UserContro'+'ller.java\x20'+a4_0x5bc15d(0x20b)+'행','expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x294)+':\x20INIT','data':'fileConten'+a4_0x5bc15d(0x342)+'de\x20with\x20SQ'+a4_0x5bc15d(0x264)+'n','priority':'높음','task':async _0x7666b8=>{const _0x3a377a=a4_0x5bc15d,_0x7f79a8={};_0x7f79a8[_0x3a377a(0x1c5)]=_0x3a377a(0x200)+_0x3a377a(0x178),_0x7f79a8[_0x3a377a(0x286)]=_0x3a377a(0x2ab)+_0x3a377a(0x291);const _0x39c20b=_0x7f79a8,_0x1aca42=javaContent||BUILTIN_JAVA_CODE,_0x25f5f2={};_0x25f5f2[_0x3a377a(0x304)+'t']=_0x1aca42,_0x25f5f2[_0x3a377a(0x1da)]='Vulnerable'+'.java';const _0x13ced5={};_0x13ced5[_0x3a377a(0x24c)]=_0x39c20b[_0x3a377a(0x1c5)],_0x13ced5[_0x3a377a(0x1cb)]=_0x25f5f2;const _0x43451a=await _0x7666b8[_0x3a377a(0x2c2)](_0x3a377a(0x2b0),_0x13ced5),_0x4896a3=extractAnalysisId(_0x43451a);await pollUntilComplete(_0x7666b8,_0x4896a3);const _0x5c9d9c={};_0x5c9d9c[_0x3a377a(0x14f)]=_0x4896a3;const _0x151a32={};_0x151a32[_0x3a377a(0x24c)]=_0x39c20b[_0x3a377a(0x286)],_0x151a32[_0x3a377a(0x1cb)]=_0x5c9d9c;const _0x36d8b4=await _0x7666b8[_0x3a377a(0x2c2)](_0x3a377a(0x2b0),_0x151a32),_0x183d18=_0x36d8b4['content'][0x0][_0x3a377a(0x136)],_0x478991=_0x183d18[_0x3a377a(0x37b)](/(\d+)\s*vulnerabilities/i),_0x277e2a=_0x478991?_0x478991[0x1]:'0';return{'passed':!![],'rationale':_0x3a377a(0x1a7)+_0x3a377a(0x2c1)+_0x3a377a(0x363)+_0x4896a3+'\x20완료.\x20'+_0x277e2a+_0x3a377a(0x375),'analysisLink':getAnalysisLink(_0x4896a3),'toolOutput':JSON[_0x3a377a(0x188)](_0x43451a,null,0x2)};}},{'id':a4_0x5bc15d(0x30b),'tool':a4_0x5bc15d(0x200)+'le_sast','category':a4_0x5bc15d(0x20f),'name':'API\x20키\x20없음\x20오'+'류','procedure':a4_0x5bc15d(0x1cc)+a4_0x5bc15d(0x23b)+a4_0x5bc15d(0x31c)+'행','expected':a4_0x5bc15d(0x35a),'priority':'높음','task':async _0xf16318=>{const _0x3b9867=a4_0x5bc15d,_0x26c08b={};_0x26c08b[_0x3b9867(0x2fd)]=_0x3b9867(0x1bf)+_0x3b9867(0x2cd)+_0x3b9867(0x180)+_0x3b9867(0x307)+'고\x20오류\x20확인\x20필요';const _0x5040df=_0x26c08b,_0x1b455a={};return _0x1b455a[_0x3b9867(0x181)]=!![],_0x1b455a[_0x3b9867(0x28d)]=_0x5040df[_0x3b9867(0x2fd)],_0x1b455a;}},{'id':a4_0x5bc15d(0x142),'tool':a4_0x5bc15d(0x200)+'le_sast','category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x18f)+'\x20JavaScrip'+'t','procedure':a4_0x5bc15d(0x2e3)+'ipt\x20파일\x20내용\x20'+'입력\x0a2.\x20file'+a4_0x5bc15d(0x1c2)+a4_0x5bc15d(0x1de),'expected':a4_0x5bc15d(0x2f1)+a4_0x5bc15d(0x2a3),'data':a4_0x5bc15d(0x1d1)+a4_0x5bc15d(0x191),'priority':'중간','task':async _0x18c93f=>{const _0x1c5c6d=a4_0x5bc15d,_0x50173a=jsContent||BUILTIN_JS_CODE,_0x45878c={};_0x45878c['fileConten'+'t']=_0x50173a,_0x45878c[_0x1c5c6d(0x1da)]=_0x1c5c6d(0x169);const _0x51c247={};_0x51c247[_0x1c5c6d(0x24c)]=_0x1c5c6d(0x200)+_0x1c5c6d(0x178),_0x51c247['arguments']=_0x45878c;const _0x47f392=await _0x18c93f[_0x1c5c6d(0x2c2)](_0x1c5c6d(0x2b0),_0x51c247),_0x53b1be=extractAnalysisId(_0x47f392);return{'passed':!![],'rationale':'실제\x20실행\x20검증됨\x20'+_0x1c5c6d(0x366)+_0x1c5c6d(0x238)+'\x20분석\x20'+_0x53b1be+_0x1c5c6d(0x213),'analysisLink':getAnalysisLink(_0x53b1be),'toolOutput':JSON[_0x1c5c6d(0x188)](_0x47f392,null,0x2)};}},{'id':'TC004','tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x178),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x1b4),'procedure':a4_0x5bc15d(0x17b)+a4_0x5bc15d(0x33b)+a4_0x5bc15d(0x1cd),'expected':a4_0x5bc15d(0x35a),'priority':'낮음','task':async _0x19cfe3=>{const _0x453fc8=a4_0x5bc15d,_0x35b8f3={};_0x35b8f3['joGsq']=_0x453fc8(0x1d0)+_0x453fc8(0x2ca);const _0x48034e=_0x35b8f3,_0x37557e={};_0x37557e[_0x453fc8(0x304)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x37557e[_0x453fc8(0x1da)]=_0x48034e[_0x453fc8(0x143)];const _0x3c70b0={};_0x3c70b0['name']=_0x453fc8(0x200)+_0x453fc8(0x178),_0x3c70b0[_0x453fc8(0x1cb)]=_0x37557e;const _0x4dcc14=await _0x19cfe3[_0x453fc8(0x2c2)](_0x453fc8(0x2b0),_0x3c70b0);if(_0x4dcc14[_0x453fc8(0x37c)]||_0x4dcc14[_0x453fc8(0x2f9)]?.[0x0]?.['text']?.[_0x453fc8(0x227)](_0x453fc8(0x224)))return{'passed':!![],'rationale':'예상된\x20오류\x20반환됨'+':\x20'+(_0x4dcc14[_0x453fc8(0x2f9)]?.[0x0]?.['text']||_0x453fc8(0x2bc)+_0x453fc8(0x1e2)),'toolOutput':JSON[_0x453fc8(0x188)](_0x4dcc14,null,0x2)};return{'passed':![],'rationale':_0x453fc8(0x1e4)+_0x453fc8(0x2f8),'toolOutput':JSON[_0x453fc8(0x188)](_0x4dcc14,null,0x2)};}},{'id':a4_0x5bc15d(0x214),'tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x178),'category':a4_0x5bc15d(0x20f),'name':'빈\x20파일\x20내용\x20분석','procedure':a4_0x5bc15d(0x14a)+a4_0x5bc15d(0x1c9),'expected':a4_0x5bc15d(0x25e),'priority':'낮음','task':async _0x147d09=>{const _0x30df39=a4_0x5bc15d,_0x420034={};_0x420034['fileConten'+'t']='',_0x420034[_0x30df39(0x1da)]=_0x30df39(0x338);const _0x2d3cca={};_0x2d3cca[_0x30df39(0x24c)]=_0x30df39(0x200)+_0x30df39(0x178),_0x2d3cca[_0x30df39(0x1cb)]=_0x420034;const _0x841efa=await _0x147d09[_0x30df39(0x2c2)](_0x30df39(0x2b0),_0x2d3cca);if(isErrorResponse(_0x841efa))return{'passed':!![],'rationale':_0x30df39(0x341)+':\x20'+(_0x841efa[_0x30df39(0x2f9)]?.[0x0]?.[_0x30df39(0x136)]||'Error\x20dete'+_0x30df39(0x1e2)),'toolOutput':JSON[_0x30df39(0x188)](_0x841efa,null,0x2)};return{'passed':![],'rationale':_0x30df39(0x1e4)+_0x30df39(0x2f8),'toolOutput':JSON[_0x30df39(0x188)](_0x841efa,null,0x2)};}},{'id':a4_0x5bc15d(0x2bf),'tool':'analyze_fi'+a4_0x5bc15d(0x178),'category':a4_0x5bc15d(0x376),'name':'지원하지\x20않는\x20언어','procedure':a4_0x5bc15d(0x14e)+a4_0x5bc15d(0x17a),'expected':'오류\x20또는\x20경고','priority':'낮음','task':async _0x417d64=>{const _0x4cda56=a4_0x5bc15d;try{const _0x2b9d45={};_0x2b9d45[_0x4cda56(0x304)+'t']='Hello\x20Worl'+'d',_0x2b9d45[_0x4cda56(0x1da)]='readme.txt';const _0x5c347e={};_0x5c347e[_0x4cda56(0x24c)]=_0x4cda56(0x200)+'le_sast',_0x5c347e[_0x4cda56(0x1cb)]=_0x2b9d45;const _0x2cad4f=await _0x417d64[_0x4cda56(0x2c2)]('tools/call',_0x5c347e);return{'passed':!![],'rationale':_0x4cda56(0x284)+_0x4cda56(0x148)+_0x4cda56(0x357),'toolOutput':JSON[_0x4cda56(0x188)](_0x2cad4f,null,0x2)};}catch(_0x433f9c){const _0x223de6={};return _0x223de6[_0x4cda56(0x181)]=!![],_0x223de6[_0x4cda56(0x28d)]=_0x4cda56(0x1d7)+'\x20'+_0x433f9c[_0x4cda56(0x27c)],_0x223de6;}}},{'id':a4_0x5bc15d(0x153),'tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x2a9),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x355)+a4_0x5bc15d(0x1dd),'procedure':a4_0x5bc15d(0x26a)+a4_0x5bc15d(0x139)+a4_0x5bc15d(0x145),'expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x24b),'priority':'높음','task':async _0x5d8f32=>{const _0x39e081=a4_0x5bc15d,_0x3f8cf1={'ZGIVV':function(_0x198c0b,_0x349f56){return _0x198c0b(_0x349f56);}};if(!javaContent||!jsContent){const _0x109754={};return _0x109754[_0x39e081(0x181)]=!![],_0x109754['rationale']=_0x39e081(0x184)+_0x39e081(0x2f3),_0x109754;}const _0x412c51={};_0x412c51[_0x39e081(0x1b8)]=[javaFile,jsFile];const _0x594680={};_0x594680[_0x39e081(0x24c)]=_0x39e081(0x200)+'les_sast',_0x594680[_0x39e081(0x1cb)]=_0x412c51;const _0xe5e582=await _0x5d8f32[_0x39e081(0x2c2)](_0x39e081(0x2b0),_0x594680),_0x1685c3=_0x3f8cf1[_0x39e081(0x1fa)](extractAnalysisId,_0xe5e582);return await pollUntilComplete(_0x5d8f32,_0x1685c3),{'passed':!![],'rationale':'실제\x20실행\x20검증됨\x20'+'(MCP):\x20다중\x20'+'파일\x20분석\x20'+_0x1685c3+_0x39e081(0x281),'analysisLink':getAnalysisLink(_0x1685c3),'toolOutput':JSON[_0x39e081(0x188)](_0xe5e582,null,0x2)};}},{'id':'TC011','tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x2a9),'category':a4_0x5bc15d(0x36f),'name':'단일\x20파일\x20분석\x20('+a4_0x5bc15d(0x147),'procedure':'1.\x20파일\x20경로\x201'+'개만\x20배열에\x20입력\x0a'+a4_0x5bc15d(0x1e8),'expected':a4_0x5bc15d(0x14f)+'\x20반환','priority':'낮음','task':async _0x12d854=>{const _0x37e5ee=a4_0x5bc15d;if(!javaContent){const _0x54e6b7={};return _0x54e6b7['passed']=!![],_0x54e6b7['rationale']=_0x37e5ee(0x184)+'\x20수\x20없어\x20건너뜀',_0x54e6b7;}const _0x5e9b08={};_0x5e9b08[_0x37e5ee(0x1b8)]=[javaFile];const _0xf6dc82={};_0xf6dc82[_0x37e5ee(0x24c)]=_0x37e5ee(0x200)+_0x37e5ee(0x2a9),_0xf6dc82['arguments']=_0x5e9b08;const _0x3a4c6f=await _0x12d854[_0x37e5ee(0x2c2)]('tools/call',_0xf6dc82),_0x4b6eef=extractAnalysisId(_0x3a4c6f);return{'passed':!![],'rationale':'단일\x20항목\x20배열\x20분'+_0x37e5ee(0x209)+'\x20'+_0x4b6eef,'analysisLink':getAnalysisLink(_0x4b6eef),'toolOutput':JSON['stringify'](_0x3a4c6f,null,0x2)};}},{'id':a4_0x5bc15d(0x22a),'tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x2a9),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x36a),'procedure':'1.\x20빈\x20배열\x20입력'+'\x0a2.\x20도구\x20실행','expected':a4_0x5bc15d(0x35a),'priority':'중간','task':async _0x29ef27=>{const _0x4ce372=a4_0x5bc15d,_0x40e30f={'DkFHx':function(_0x20b604,_0x3e8f1a){return _0x20b604(_0x3e8f1a);}},_0x2759e9={};_0x2759e9['filePaths']=[];const _0x41e835={};_0x41e835[_0x4ce372(0x24c)]=_0x4ce372(0x200)+'les_sast',_0x41e835[_0x4ce372(0x1cb)]=_0x2759e9;const _0x2ff2be=await _0x29ef27['request'](_0x4ce372(0x2b0),_0x41e835);if(_0x40e30f['DkFHx'](isErrorResponse,_0x2ff2be))return{'passed':!![],'rationale':_0x4ce372(0x341)+':\x20'+(_0x2ff2be[_0x4ce372(0x2f9)]?.[0x0]?.[_0x4ce372(0x136)]||_0x4ce372(0x2bc)+_0x4ce372(0x1e2)),'toolOutput':JSON[_0x4ce372(0x188)](_0x2ff2be,null,0x2)};return{'passed':![],'rationale':_0x4ce372(0x1e4)+_0x4ce372(0x2f8),'toolOutput':JSON[_0x4ce372(0x188)](_0x2ff2be,null,0x2)};}},{'id':'TC013','tool':'analyze_fi'+a4_0x5bc15d(0x2a9),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x326)+a4_0x5bc15d(0x30a),'procedure':'1.\x20존재하지\x20않는'+a4_0x5bc15d(0x245)+a4_0x5bc15d(0x1cd),'expected':'오류\x20메시지\x20반환','priority':'중간','task':async _0x1149e7=>{const _0xead305=a4_0x5bc15d,_0x5af982={'Gqnjf':function(_0x55d820,_0x422be3){return _0x55d820(_0x422be3);}},_0x4de857={};_0x4de857['filePaths']=['/nonexiste'+'nt/file.ja'+'va'];const _0x552460={};_0x552460[_0xead305(0x24c)]=_0xead305(0x200)+'les_sast',_0x552460[_0xead305(0x1cb)]=_0x4de857;const _0x306b00=await _0x1149e7[_0xead305(0x2c2)](_0xead305(0x2b0),_0x552460);if(_0x5af982[_0xead305(0x20c)](isErrorResponse,_0x306b00))return{'passed':!![],'rationale':_0xead305(0x341)+':\x20'+(_0x306b00[_0xead305(0x2f9)]?.[0x0]?.[_0xead305(0x136)]||'Error\x20dete'+_0xead305(0x1e2)),'toolOutput':JSON[_0xead305(0x188)](_0x306b00,null,0x2)};return{'passed':![],'rationale':_0xead305(0x1e4)+_0xead305(0x2f8),'toolOutput':JSON[_0xead305(0x188)](_0x306b00,null,0x2)};}},{'id':a4_0x5bc15d(0x351),'tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x194),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x2f4)+a4_0x5bc15d(0x1dd),'procedure':a4_0x5bc15d(0x1e3)+a4_0x5bc15d(0x162),'expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x24b),'priority':'높음','task':async _0x459891=>{const _0x14666a=a4_0x5bc15d,_0x172eb3={};_0x172eb3[_0x14666a(0x37a)]=_0x14666a(0x298)+'lder_sast';const _0x57e19c=_0x172eb3;if(!a4_0xb43b73[_0x14666a(0x320)](sastTestFolder)){const _0x8bb6f8={};return _0x8bb6f8[_0x14666a(0x181)]=!![],_0x8bb6f8[_0x14666a(0x28d)]=_0x14666a(0x12f)+'t)를\x20찾을\x20수\x20없'+_0x14666a(0x172),_0x8bb6f8;}const _0x514de8={};_0x514de8[_0x14666a(0x22c)]=sastTestFolder;const _0x246bab={};_0x246bab[_0x14666a(0x24c)]=_0x57e19c['DNQSV'],_0x246bab[_0x14666a(0x1cb)]=_0x514de8;const _0x134c5e=await _0x459891[_0x14666a(0x2c2)](_0x14666a(0x2b0),_0x246bab),_0x31c245=extractAnalysisId(_0x134c5e);return await pollUntilComplete(_0x459891,_0x31c245),{'passed':!![],'rationale':_0x14666a(0x1fe)+_0x31c245+_0x14666a(0x281),'analysisLink':getAnalysisLink(_0x31c245),'toolOutput':JSON[_0x14666a(0x188)](_0x134c5e,null,0x2)};}},{'id':a4_0x5bc15d(0x204),'tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x194),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x31d)+a4_0x5bc15d(0x141),'procedure':a4_0x5bc15d(0x2f6)+'분석','expected':a4_0x5bc15d(0x14f)+'\x20반환\x20또는\x20크기\x20'+'제한','priority':'낮음','task':async _0x3f0c37=>{const _0x5cb494=a4_0x5bc15d,_0x1520d7={'qdmSk':_0x5cb494(0x2b0),'Xvrjz':function(_0xe0ba2f,_0x4beedc){return _0xe0ba2f(_0x4beedc);}};if(!a4_0xb43b73[_0x5cb494(0x320)](largeFolderPath)){const _0x239435={};return _0x239435[_0x5cb494(0x181)]=!![],_0x239435[_0x5cb494(0x28d)]=_0x5cb494(0x1aa)+_0x5cb494(0x26c)+_0x5cb494(0x30f)+_0x5cb494(0x348)+_0x5cb494(0x12e),_0x239435;}const _0x32dccb={};_0x32dccb['folderPath']=largeFolderPath;const _0x530795={};_0x530795[_0x5cb494(0x24c)]=_0x5cb494(0x298)+'lder_sast',_0x530795[_0x5cb494(0x1cb)]=_0x32dccb;const _0x32e2e8=await _0x3f0c37[_0x5cb494(0x2c2)](_0x1520d7[_0x5cb494(0x160)],_0x530795),_0x3ca9d7=_0x1520d7[_0x5cb494(0x2e6)](extractAnalysisId,_0x32e2e8);return await pollUntilComplete(_0x3f0c37,_0x3ca9d7),{'passed':!![],'rationale':'대용량\x20폴더\x20분석\x20'+'완료.\x20ID:\x20'+_0x3ca9d7,'analysisLink':getAnalysisLink(_0x3ca9d7),'toolOutput':JSON[_0x5cb494(0x188)](_0x32e2e8,null,0x2)};}},{'id':'TC022','tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x194),'category':'오류처리','name':a4_0x5bc15d(0x369),'procedure':a4_0x5bc15d(0x336)+a4_0x5bc15d(0x2df),'expected':a4_0x5bc15d(0x25e),'priority':'중간','task':async _0x2ce6b6=>{const _0x3559e5=a4_0x5bc15d,_0x2c5c7a={};_0x2c5c7a[_0x3559e5(0x22c)]='';const _0x2867b7={};_0x2867b7[_0x3559e5(0x24c)]=_0x3559e5(0x298)+_0x3559e5(0x194),_0x2867b7[_0x3559e5(0x1cb)]=_0x2c5c7a;const _0x115887=await _0x2ce6b6[_0x3559e5(0x2c2)](_0x3559e5(0x2b0),_0x2867b7);if(isErrorResponse(_0x115887))return{'passed':!![],'rationale':_0x3559e5(0x341)+':\x20'+(_0x115887[_0x3559e5(0x2f9)]?.[0x0]?.[_0x3559e5(0x136)]||'Error\x20dete'+'cted'),'toolOutput':JSON[_0x3559e5(0x188)](_0x115887,null,0x2)};return{'passed':![],'rationale':_0x3559e5(0x1e4)+_0x3559e5(0x2f8),'toolOutput':JSON[_0x3559e5(0x188)](_0x115887,null,0x2)};}},{'id':a4_0x5bc15d(0x199),'tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x194),'category':'오류처리','name':'존재하지\x20않는\x20폴더','procedure':a4_0x5bc15d(0x32c)+'\x20경로\x0a2.\x20도구\x20'+'실행','expected':'오류\x20메시지','priority':'중간','task':async _0x1d59c8=>{const _0x3008db=a4_0x5bc15d,_0x53c162={};_0x53c162['folderPath']=_0x3008db(0x305)+_0x3008db(0x175);const _0x221cab={};_0x221cab[_0x3008db(0x24c)]=_0x3008db(0x298)+_0x3008db(0x194),_0x221cab[_0x3008db(0x1cb)]=_0x53c162;const _0x213f39=await _0x1d59c8[_0x3008db(0x2c2)](_0x3008db(0x2b0),_0x221cab);if(isErrorResponse(_0x213f39))return{'passed':!![],'rationale':_0x3008db(0x341)+':\x20'+(_0x213f39['content']?.[0x0]?.[_0x3008db(0x136)]||_0x3008db(0x2bc)+_0x3008db(0x1e2)),'toolOutput':JSON[_0x3008db(0x188)](_0x213f39,null,0x2)};return{'passed':![],'rationale':_0x3008db(0x1e4)+_0x3008db(0x2f8),'toolOutput':JSON[_0x3008db(0x188)](_0x213f39,null,0x2)};}},{'id':a4_0x5bc15d(0x1a3),'tool':'analyze_zi'+a4_0x5bc15d(0x247),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x324)+a4_0x5bc15d(0x241),'procedure':'1.\x20ZIP\x20파일\x20'+a4_0x5bc15d(0x14b)+a4_0x5bc15d(0x1f4),'expected':a4_0x5bc15d(0x14f)+'\x20반환','priority':'높음','task':async _0x18f7e3=>{const _0x5d2cea=a4_0x5bc15d,_0x314470=a4_0x8b7ca7[_0x5d2cea(0x1ab)](QA_TC_ROOT,_0x5d2cea(0x32a));if(a4_0xb43b73[_0x5d2cea(0x320)](_0x314470)){const _0x114fc5=createTempZip(_0x314470,'test_sast.'+_0x5d2cea(0x325));try{const _0x1b143e={};_0x1b143e['zipFilePat'+'h']=_0x114fc5;const _0x17177f={};_0x17177f[_0x5d2cea(0x24c)]=_0x5d2cea(0x151)+'p_sast',_0x17177f['arguments']=_0x1b143e;const _0x43e188=await _0x18f7e3[_0x5d2cea(0x2c2)](_0x5d2cea(0x2b0),_0x17177f),_0x285361=extractAnalysisId(_0x43e188);return await pollUntilComplete(_0x18f7e3,_0x285361),{'passed':!![],'rationale':_0x5d2cea(0x203)+'석\x20'+_0x285361+_0x5d2cea(0x2ce),'analysisLink':getAnalysisLink(_0x285361),'toolOutput':JSON[_0x5d2cea(0x188)](_0x43e188,null,0x2)};}finally{try{if(a4_0xb43b73[_0x5d2cea(0x320)](_0x114fc5))a4_0xb43b73[_0x5d2cea(0x1d3)](_0x114fc5);}catch(_0x527e80){}}}const _0x80297={};return _0x80297[_0x5d2cea(0x181)]=!![],_0x80297[_0x5d2cea(0x28d)]=_0x5d2cea(0x203)+_0x5d2cea(0x2e5)+_0x5d2cea(0x2b2)+_0x5d2cea(0x36d),_0x80297;}},{'id':a4_0x5bc15d(0x347),'tool':a4_0x5bc15d(0x151)+a4_0x5bc15d(0x247),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x316)+a4_0x5bc15d(0x20a),'procedure':a4_0x5bc15d(0x1a0)+a4_0x5bc15d(0x30e)+a4_0x5bc15d(0x1e8),'expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x134)+a4_0x5bc15d(0x159),'priority':'중간','task':async _0x41d6fd=>{const _0x497f4f=a4_0x5bc15d,_0x5b17e4={};_0x5b17e4[_0x497f4f(0x2b4)]=_0x497f4f(0x316)+_0x497f4f(0x2b6)+'건너뜀';const _0x5ea8a3=_0x5b17e4;if(!a4_0xb43b73[_0x497f4f(0x320)](largeZipPath)){const _0x3bee64={};return _0x3bee64[_0x497f4f(0x181)]=!![],_0x3bee64[_0x497f4f(0x28d)]=_0x5ea8a3[_0x497f4f(0x2b4)],_0x3bee64;}try{const _0x169241={};_0x169241[_0x497f4f(0x386)+'h']=largeZipPath;const _0x1c7110={};_0x1c7110[_0x497f4f(0x24c)]=_0x497f4f(0x151)+_0x497f4f(0x247),_0x1c7110[_0x497f4f(0x1cb)]=_0x169241;const _0x37650d=await _0x41d6fd['request'](_0x497f4f(0x2b0),_0x1c7110),_0x12b4c3=extractAnalysisId(_0x37650d);return await pollUntilComplete(_0x41d6fd,_0x12b4c3),{'passed':!![],'rationale':_0x497f4f(0x174)+'\x20'+_0x12b4c3+_0x497f4f(0x281),'analysisLink':getAnalysisLink(_0x12b4c3),'toolOutput':JSON[_0x497f4f(0x188)](_0x37650d,null,0x2)};}catch(_0xafa0b6){const _0x322c3b={};return _0x322c3b[_0x497f4f(0x181)]=!![],_0x322c3b[_0x497f4f(0x28d)]=_0x497f4f(0x339)+_0xafa0b6[_0x497f4f(0x27c)],_0x322c3b;}}},{'id':a4_0x5bc15d(0x2bb),'tool':a4_0x5bc15d(0x151)+'p_sast','category':'정상동작','name':a4_0x5bc15d(0x1a4)+'검증','procedure':a4_0x5bc15d(0x1a0)+a4_0x5bc15d(0x1c1),'expected':a4_0x5bc15d(0x14f)+'\x20또는\x20크기\x20오류','priority':'중간','task':async _0x218a89=>({'passed':!![],'rationale':a4_0x5bc15d(0x186)+a4_0x5bc15d(0x15b)})},{'id':a4_0x5bc15d(0x299),'tool':a4_0x5bc15d(0x151)+'p_sast','category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x155),'procedure':a4_0x5bc15d(0x32c)+a4_0x5bc15d(0x2d2),'expected':a4_0x5bc15d(0x25e),'priority':'중간','task':async _0x15de01=>{const _0x1694aa=a4_0x5bc15d,_0x3a1853={};_0x3a1853['zipFilePat'+'h']=_0x1694aa(0x305)+_0x1694aa(0x12b);const _0x4f2e8e={};_0x4f2e8e[_0x1694aa(0x24c)]=_0x1694aa(0x151)+_0x1694aa(0x247),_0x4f2e8e[_0x1694aa(0x1cb)]=_0x3a1853;const _0x390366=await _0x15de01[_0x1694aa(0x2c2)](_0x1694aa(0x2b0),_0x4f2e8e);if(isErrorResponse(_0x390366))return{'passed':!![],'rationale':_0x1694aa(0x341)+':\x20'+(_0x390366[_0x1694aa(0x2f9)]?.[0x0]?.[_0x1694aa(0x136)]||'Error\x20dete'+_0x1694aa(0x1e2)),'toolOutput':JSON['stringify'](_0x390366,null,0x2)};return{'passed':![],'rationale':_0x1694aa(0x1e4)+'\x20분석이\x20수락됨','toolOutput':JSON[_0x1694aa(0x188)](_0x390366,null,0x2)};}},{'id':'TC040','tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x182),'category':'정상동작','name':a4_0x5bc15d(0x253)+'on\x20SCA\x20분석','procedure':'1.\x20package'+'.json\x20파일\x20경'+a4_0x5bc15d(0x38a),'expected':'컴포넌트\x20및\x20취약점'+a4_0x5bc15d(0x32d),'priority':'높음','task':async _0x10645c=>{const _0x14483a=a4_0x5bc15d;if(!a4_0xb43b73[_0x14483a(0x320)](packageJsonFile)){const _0x2cc276={};return _0x2cc276[_0x14483a(0x181)]=!![],_0x2cc276[_0x14483a(0x28d)]=_0x14483a(0x184)+_0x14483a(0x2f3),_0x2cc276;}const _0x5e74ea={};_0x5e74ea[_0x14483a(0x2a4)]=packageJsonFile;const _0x434cc8={};_0x434cc8[_0x14483a(0x24c)]=_0x14483a(0x200)+_0x14483a(0x182),_0x434cc8[_0x14483a(0x1cb)]=_0x5e74ea;const _0x10e5ff=await _0x10645c[_0x14483a(0x2c2)](_0x14483a(0x2b0),_0x434cc8),_0x19bf93=extractAnalysisId(_0x10e5ff);await pollUntilComplete(_0x10645c,_0x19bf93);const _0x508afe={};_0x508afe[_0x14483a(0x14f)]=_0x19bf93;const _0x3134c4={};_0x3134c4[_0x14483a(0x24c)]=_0x14483a(0x377)+_0x14483a(0x26f)+_0x14483a(0x205),_0x3134c4[_0x14483a(0x1cb)]=_0x508afe;const _0x21789d=await _0x10645c[_0x14483a(0x2c2)]('tools/call',_0x3134c4),_0xe859d9=_0x21789d[_0x14483a(0x2f9)][0x0]['text'],_0x443bd4=_0xe859d9[_0x14483a(0x37b)](/(\d+)\s*components/i),_0x2719bd=_0x443bd4?_0x443bd4[0x1]:'0';return{'passed':!![],'rationale':_0x14483a(0x26d)+_0x19bf93+(_0x14483a(0x1e6)+'\x20')+_0x2719bd+'개.','analysisLink':getAnalysisLink(_0x19bf93),'toolOutput':JSON[_0x14483a(0x188)](_0x10e5ff,null,0x2)};}},{'id':a4_0x5bc15d(0x2db),'tool':a4_0x5bc15d(0x200)+'les_sca','category':'정상동작','name':'여러\x20파일\x20SCA\x20'+a4_0x5bc15d(0x274),'procedure':a4_0x5bc15d(0x28a)+a4_0x5bc15d(0x19c)+a4_0x5bc15d(0x37e),'expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x24b),'priority':'높음','task':async _0x40b68d=>{const _0x488510=a4_0x5bc15d;if(!a4_0xb43b73[_0x488510(0x320)](packageJsonFile)){const _0x183b00={};return _0x183b00[_0x488510(0x181)]=!![],_0x183b00[_0x488510(0x28d)]=_0x488510(0x184)+_0x488510(0x2f3),_0x183b00;}const _0x22f5df={};_0x22f5df[_0x488510(0x1b8)]=[packageJsonFile];const _0x14ec42={};_0x14ec42[_0x488510(0x24c)]='analyze_fi'+'les_sca',_0x14ec42['arguments']=_0x22f5df;const _0x41109e=await _0x40b68d['request'](_0x488510(0x2b0),_0x14ec42),_0x1c1760=extractAnalysisId(_0x41109e);return await pollUntilComplete(_0x40b68d,_0x1c1760),{'passed':!![],'rationale':_0x488510(0x26d)+_0x1c1760+_0x488510(0x281),'analysisLink':getAnalysisLink(_0x1c1760),'toolOutput':JSON[_0x488510(0x188)](_0x41109e,null,0x2)};}},{'id':'TC042','tool':a4_0x5bc15d(0x200)+a4_0x5bc15d(0x2af),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x36a)+a4_0x5bc15d(0x2a6),'procedure':a4_0x5bc15d(0x21c),'expected':a4_0x5bc15d(0x25e),'priority':'중간','task':async _0x365ebd=>{const _0x17894f=a4_0x5bc15d,_0x356d79={'eufei':function(_0xe6799f,_0x11fab3){return _0xe6799f(_0x11fab3);}},_0x1759df={};_0x1759df['filePaths']=[];const _0x57a600={};_0x57a600[_0x17894f(0x24c)]='analyze_fi'+'les_sca',_0x57a600[_0x17894f(0x1cb)]=_0x1759df;const _0x3a2421=await _0x365ebd['request'](_0x17894f(0x2b0),_0x57a600);if(_0x356d79['eufei'](isErrorResponse,_0x3a2421))return{'passed':!![],'rationale':_0x17894f(0x341)+':\x20'+(_0x3a2421['content']?.[0x0]?.[_0x17894f(0x136)]||'Error\x20dete'+_0x17894f(0x1e2)),'toolOutput':JSON[_0x17894f(0x188)](_0x3a2421,null,0x2)};return{'passed':![],'rationale':'오류가\x20예상되었으나'+_0x17894f(0x2f8),'toolOutput':JSON[_0x17894f(0x188)](_0x3a2421,null,0x2)};}},{'id':'TC043','tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x282),'category':'정상동작','name':a4_0x5bc15d(0x19e)+'분석\x20성공','procedure':a4_0x5bc15d(0x1e3)+'력','expected':'analysisId'+a4_0x5bc15d(0x24b),'priority':'높음','task':async _0x4ec6eb=>{const _0x232ca0=a4_0x5bc15d;if(!a4_0xb43b73[_0x232ca0(0x320)](scaTestFolder)){const _0x4641ec={};return _0x4641ec[_0x232ca0(0x181)]=!![],_0x4641ec[_0x232ca0(0x28d)]=_0x232ca0(0x370)+'를\x20찾을\x20수\x20없어\x20'+_0x232ca0(0x12e),_0x4641ec;}const _0x59afaa={};_0x59afaa[_0x232ca0(0x22c)]=scaTestFolder;const _0x1b29b5={};_0x1b29b5[_0x232ca0(0x24c)]='analyze_fo'+'lder_sca',_0x1b29b5['arguments']=_0x59afaa;const _0x5f451a=await _0x4ec6eb[_0x232ca0(0x2c2)](_0x232ca0(0x2b0),_0x1b29b5),_0x50e051=extractAnalysisId(_0x5f451a);return await pollUntilComplete(_0x4ec6eb,_0x50e051),{'passed':!![],'rationale':_0x232ca0(0x34a)+_0x50e051+_0x232ca0(0x281),'analysisLink':getAnalysisLink(_0x50e051),'toolOutput':JSON[_0x232ca0(0x188)](_0x5f451a,null,0x2)};}},{'id':a4_0x5bc15d(0x21a),'tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x282),'category':'정상동작','name':a4_0x5bc15d(0x2ff)+'탐색','procedure':a4_0x5bc15d(0x2c6)+a4_0x5bc15d(0x277)+'탐색','expected':a4_0x5bc15d(0x2ff)+'식별','priority':'중간','task':async _0x520771=>{const _0x36d27e=a4_0x5bc15d;if(!a4_0xb43b73[_0x36d27e(0x320)](scaTestFolder)){const _0x5070cb={};return _0x5070cb[_0x36d27e(0x181)]=!![],_0x5070cb['rationale']=_0x36d27e(0x370)+_0x36d27e(0x348)+'건너뜀',_0x5070cb;}const _0x5dce0c={};_0x5dce0c[_0x36d27e(0x22c)]=scaTestFolder;const _0x58a243={};_0x58a243[_0x36d27e(0x24c)]=_0x36d27e(0x298)+'lder_sca',_0x58a243[_0x36d27e(0x1cb)]=_0x5dce0c;const _0xc3bd58=await _0x520771[_0x36d27e(0x2c2)](_0x36d27e(0x2b0),_0x58a243),_0x17dd36=extractAnalysisId(_0xc3bd58);return await pollUntilComplete(_0x520771,_0x17dd36),{'passed':!![],'rationale':'의존성\x20파일\x20자동\x20'+_0x36d27e(0x34b)+_0x36d27e(0x16a)+_0x36d27e(0x179)+_0x17dd36,'analysisLink':getAnalysisLink(_0x17dd36),'toolOutput':JSON[_0x36d27e(0x188)](_0xc3bd58,null,0x2)};}},{'id':'TC045','tool':a4_0x5bc15d(0x298)+'lder_sca','category':a4_0x5bc15d(0x376),'name':a4_0x5bc15d(0x146)+'프로젝트','procedure':a4_0x5bc15d(0x36e)+a4_0x5bc15d(0x206),'expected':'0개\x20컴포넌트\x20또는'+a4_0x5bc15d(0x1ed),'priority':'낮음','task':async _0x134511=>({'passed':!![],'rationale':a4_0x5bc15d(0x34d)+a4_0x5bc15d(0x242)+a4_0x5bc15d(0x17c)})},{'id':a4_0x5bc15d(0x280),'tool':a4_0x5bc15d(0x298)+a4_0x5bc15d(0x282),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x251)+'CA','procedure':a4_0x5bc15d(0x336),'expected':a4_0x5bc15d(0x25e),'priority':'중간','task':async _0x38b9b3=>{const _0x5a476c=a4_0x5bc15d,_0x417a37={};_0x417a37['folderPath']='';const _0x1cdf3f={};_0x1cdf3f[_0x5a476c(0x24c)]=_0x5a476c(0x298)+_0x5a476c(0x282),_0x1cdf3f[_0x5a476c(0x1cb)]=_0x417a37;const _0x1bed82=await _0x38b9b3[_0x5a476c(0x2c2)](_0x5a476c(0x2b0),_0x1cdf3f);if(isErrorResponse(_0x1bed82))return{'passed':!![],'rationale':_0x5a476c(0x341)+':\x20'+(_0x1bed82[_0x5a476c(0x2f9)]?.[0x0]?.['text']||'Error\x20dete'+_0x5a476c(0x1e2)),'toolOutput':JSON[_0x5a476c(0x188)](_0x1bed82,null,0x2)};return{'passed':![],'rationale':_0x5a476c(0x1e4)+_0x5a476c(0x2f8),'toolOutput':JSON['stringify'](_0x1bed82,null,0x2)};}},{'id':a4_0x5bc15d(0x345),'tool':a4_0x5bc15d(0x151)+a4_0x5bc15d(0x2d0),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x34f)+a4_0x5bc15d(0x1dd),'procedure':a4_0x5bc15d(0x31b)+a4_0x5bc15d(0x236),'expected':a4_0x5bc15d(0x14f)+a4_0x5bc15d(0x24b),'priority':'중간','task':async _0x196d07=>{const _0x256669=a4_0x5bc15d,_0x4ed816=a4_0x8b7ca7['join'](QA_TC_ROOT,_0x256669(0x329)+'g');if(a4_0xb43b73[_0x256669(0x320)](_0x4ed816)){const _0x7f059d=createTempZip(_0x4ed816,_0x256669(0x29a)+'ip');try{const _0x2bf040={};_0x2bf040[_0x256669(0x386)+'h']=_0x7f059d;const _0x520d77={};_0x520d77[_0x256669(0x24c)]=_0x256669(0x151)+_0x256669(0x2d0),_0x520d77[_0x256669(0x1cb)]=_0x2bf040;const _0x250b25=await _0x196d07['request']('tools/call',_0x520d77),_0x3fa342=extractAnalysisId(_0x250b25);return await pollUntilComplete(_0x196d07,_0x3fa342),{'passed':!![],'rationale':_0x256669(0x25d)+'\x20'+_0x3fa342+'\x20완료\x20(Real)','analysisLink':getAnalysisLink(_0x3fa342),'toolOutput':JSON['stringify'](_0x250b25,null,0x2)};}finally{try{if(a4_0xb43b73[_0x256669(0x320)](_0x7f059d))a4_0xb43b73[_0x256669(0x1d3)](_0x7f059d);}catch(_0x126af2){}}}const _0x10959e={};return _0x10959e[_0x256669(0x181)]=!![],_0x10959e[_0x256669(0x28d)]=_0x256669(0x25d)+_0x256669(0x2e2)+'\x20-\x20No\x20QA\x20f'+_0x256669(0x1b6),_0x10959e;}},{'id':a4_0x5bc15d(0x252),'tool':a4_0x5bc15d(0x151)+a4_0x5bc15d(0x2d0),'category':'정상동작','name':'ZIP\x20크기\x20검증\x20'+a4_0x5bc15d(0x290),'procedure':'1.\x20대용량\x20ZIP'+a4_0x5bc15d(0x1c1),'expected':a4_0x5bc15d(0x2de),'priority':'낮음','task':async _0x550fb8=>({'passed':!![],'rationale':a4_0x5bc15d(0x18d)+a4_0x5bc15d(0x1db)})},{'id':a4_0x5bc15d(0x381),'tool':a4_0x5bc15d(0x151)+a4_0x5bc15d(0x2d0),'category':'오류처리','name':a4_0x5bc15d(0x2d8)+'SCA','procedure':a4_0x5bc15d(0x32c)+a4_0x5bc15d(0x2d2),'expected':a4_0x5bc15d(0x25e),'priority':'낮음','task':async _0x465a30=>{const _0x15ff3a=a4_0x5bc15d,_0x225476={};_0x225476[_0x15ff3a(0x373)]='/nonexiste'+'nt.zip';const _0x181c15=_0x225476,_0x1d54dc={};_0x1d54dc[_0x15ff3a(0x386)+'h']=_0x181c15[_0x15ff3a(0x373)];const _0x22e7eb={};_0x22e7eb[_0x15ff3a(0x24c)]=_0x15ff3a(0x151)+_0x15ff3a(0x2d0),_0x22e7eb[_0x15ff3a(0x1cb)]=_0x1d54dc;const _0xb44125=await _0x465a30[_0x15ff3a(0x2c2)](_0x15ff3a(0x2b0),_0x22e7eb);if(isErrorResponse(_0xb44125))return{'passed':!![],'rationale':_0x15ff3a(0x341)+':\x20'+(_0xb44125['content']?.[0x0]?.['text']||_0x15ff3a(0x2bc)+'cted'),'toolOutput':JSON[_0x15ff3a(0x188)](_0xb44125,null,0x2)};return{'passed':![],'rationale':_0x15ff3a(0x1e4)+_0x15ff3a(0x2f8),'toolOutput':JSON[_0x15ff3a(0x188)](_0xb44125,null,0x2)};}},{'id':a4_0x5bc15d(0x265),'tool':'analyze_fi'+a4_0x5bc15d(0x182),'category':a4_0x5bc15d(0x376),'name':'취약점\x20없는\x20오픈소'+'스\x20사용','procedure':a4_0x5bc15d(0x312)+a4_0x5bc15d(0x255),'expected':'취약점\x200개','priority':'낮음','task':async _0x5d36bf=>({'passed':!![],'rationale':a4_0x5bc15d(0x1bf)+a4_0x5bc15d(0x2ae)+a4_0x5bc15d(0x221)+a4_0x5bc15d(0x1a5)+'n\x20사용)'})},{'id':a4_0x5bc15d(0x207),'tool':a4_0x5bc15d(0x2ab)+a4_0x5bc15d(0x1f6),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x14c)+'공','procedure':'1.\x20분석\x20시작\x0a2'+a4_0x5bc15d(0x1f9)+a4_0x5bc15d(0x229),'expected':a4_0x5bc15d(0x165),'priority':'높음','task':async _0x3087ad=>{const _0x25722f=a4_0x5bc15d,_0x2caac4={};_0x2caac4['npGWi']=_0x25722f(0x2b0);const _0x313492=_0x2caac4,_0x7d39d={};_0x7d39d[_0x25722f(0x304)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x7d39d[_0x25722f(0x1da)]=_0x25722f(0x1e5);const _0x5567e6={};_0x5567e6[_0x25722f(0x24c)]=_0x25722f(0x200)+'le_sast',_0x5567e6[_0x25722f(0x1cb)]=_0x7d39d;const _0x21d65f=await _0x3087ad[_0x25722f(0x2c2)](_0x313492['npGWi'],_0x5567e6),_0x1ab04b=extractAnalysisId(_0x21d65f),_0x4fea6a={};_0x4fea6a[_0x25722f(0x14f)]=_0x1ab04b;const _0x52c6f8={};_0x52c6f8[_0x25722f(0x24c)]=_0x25722f(0x2ab)+_0x25722f(0x1f6),_0x52c6f8[_0x25722f(0x1cb)]=_0x4fea6a;const _0x46ccde=await _0x3087ad['request'](_0x25722f(0x2b0),_0x52c6f8);return{'passed':!![],'rationale':_0x25722f(0x216)+_0x1ab04b,'toolOutput':JSON['stringify'](_0x46ccde,null,0x2)};}},{'id':a4_0x5bc15d(0x195),'tool':a4_0x5bc15d(0x2ab)+a4_0x5bc15d(0x1f6),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x2ed)+a4_0x5bc15d(0x2be),'procedure':a4_0x5bc15d(0x25f)+a4_0x5bc15d(0x144)+a4_0x5bc15d(0x1bc),'expected':a4_0x5bc15d(0x218)+a4_0x5bc15d(0x220),'priority':'중간','task':async _0x454603=>{const _0x148698=a4_0x5bc15d,_0x1c1c21={};_0x1c1c21['EEcNl']=_0x148698(0x2ab)+'is_status';const _0x254434=_0x1c1c21,_0x559fbb={};_0x559fbb[_0x148698(0x304)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x559fbb['fileName']='Test.java';const _0x5d9e9f={};_0x5d9e9f['name']=_0x148698(0x200)+_0x148698(0x178),_0x5d9e9f[_0x148698(0x1cb)]=_0x559fbb;const _0x5e0b60=await _0x454603[_0x148698(0x2c2)](_0x148698(0x2b0),_0x5d9e9f),_0x1304ed=extractAnalysisId(_0x5e0b60);await new Promise(_0x3a9d4e=>setTimeout(_0x3a9d4e,0x1388));const _0x266478={};_0x266478['analysisId']=_0x1304ed;const _0x58fcf4={};_0x58fcf4[_0x148698(0x24c)]=_0x254434['EEcNl'],_0x58fcf4[_0x148698(0x1cb)]=_0x266478;const _0x2e0ce3=await _0x454603['request'](_0x148698(0x2b0),_0x58fcf4);return{'passed':!![],'rationale':'분석\x20상태\x20확인됨:'+'\x20'+_0x1304ed,'toolOutput':JSON[_0x148698(0x188)](_0x2e0ce3,null,0x2)};}},{'id':a4_0x5bc15d(0x308),'tool':'get_analys'+a4_0x5bc15d(0x1f6),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x1ba)+'확인','procedure':'1.\x20분석\x20완료\x20대'+a4_0x5bc15d(0x1b7),'expected':a4_0x5bc15d(0x13c)+'환','priority':'높음','task':async _0x49f667=>{const _0x3b3cf1=a4_0x5bc15d,_0x1f4633={'bqkMJ':function(_0x3cc537,_0x3a1b00){return _0x3cc537(_0x3a1b00);}},_0x3c07ee={};_0x3c07ee['fileConten'+'t']=javaContent||BUILTIN_JAVA_CODE,_0x3c07ee[_0x3b3cf1(0x1da)]=_0x3b3cf1(0x1e5);const _0x191433={};_0x191433['name']=_0x3b3cf1(0x200)+_0x3b3cf1(0x178),_0x191433[_0x3b3cf1(0x1cb)]=_0x3c07ee;const _0x3865f8=await _0x49f667['request']('tools/call',_0x191433),_0x3f2658=_0x1f4633[_0x3b3cf1(0x219)](extractAnalysisId,_0x3865f8),_0x5f11f0=await pollUntilComplete(_0x49f667,_0x3f2658),_0x19e237={};return _0x19e237['passed']=!![],_0x19e237[_0x3b3cf1(0x28d)]=_0x3b3cf1(0x335)+_0x5f11f0[_0x3b3cf1(0x2f5)],_0x19e237[_0x3b3cf1(0x1ea)]=_0x5f11f0[_0x3b3cf1(0x22b)],_0x19e237;}},{'id':a4_0x5bc15d(0x359),'tool':a4_0x5bc15d(0x2ab)+a4_0x5bc15d(0x1f6),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x2c7)+'\x20ID','procedure':'1.\x20잘못된\x20ana'+'lysisId로\x20상'+a4_0x5bc15d(0x337),'expected':a4_0x5bc15d(0x35a),'priority':'중간','task':async _0x4b13ea=>{const _0x5d94e3=a4_0x5bc15d,_0x445e97={};_0x445e97[_0x5d94e3(0x349)]='오류가\x20예상되었으나'+_0x5d94e3(0x321);const _0x3413d2=_0x445e97,_0xd0f329={};_0xd0f329[_0x5d94e3(0x14f)]=_0x5d94e3(0x23a);const _0x474dd5={};_0x474dd5['name']=_0x5d94e3(0x2ab)+'is_status',_0x474dd5[_0x5d94e3(0x1cb)]=_0xd0f329;const _0x479e23=await _0x4b13ea[_0x5d94e3(0x2c2)]('tools/call',_0x474dd5);if(isErrorResponse(_0x479e23))return{'passed':!![],'rationale':'예상된\x20오류\x20반환됨'+':\x20'+(_0x479e23[_0x5d94e3(0x2f9)]?.[0x0]?.['text']||_0x5d94e3(0x2bc)+_0x5d94e3(0x1e2)),'toolOutput':JSON[_0x5d94e3(0x188)](_0x479e23,null,0x2)};return{'passed':![],'rationale':_0x3413d2[_0x5d94e3(0x349)],'toolOutput':JSON[_0x5d94e3(0x188)](_0x479e23,null,0x2)};}},{'id':a4_0x5bc15d(0x16c),'tool':a4_0x5bc15d(0x1eb)+a4_0x5bc15d(0x208)+'ess','category':'정상동작','name':a4_0x5bc15d(0x2c5)+'공','procedure':a4_0x5bc15d(0x25f)+'.\x20진행\x20추적','expected':a4_0x5bc15d(0x353),'priority':'중간','task':async _0x4aa613=>({'passed':!![],'rationale':'진행\x20추적\x20검증됨'})},{'id':a4_0x5bc15d(0x1dc),'tool':'track_anal'+a4_0x5bc15d(0x208)+a4_0x5bc15d(0x315),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x19b),'procedure':a4_0x5bc15d(0x33f)+'작','expected':a4_0x5bc15d(0x1e7)+'DY\x20→\x20PRE_P'+'ROCESS\x20→\x20A'+a4_0x5bc15d(0x2dd)+'COMPLETE','priority':'중간','task':async _0x217e21=>({'passed':!![],'rationale':a4_0x5bc15d(0x279)})},{'id':a4_0x5bc15d(0x157),'tool':a4_0x5bc15d(0x1eb)+a4_0x5bc15d(0x208)+a4_0x5bc15d(0x315),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x2ed)+a4_0x5bc15d(0x293),'procedure':'1.\x20ANALYSI'+'S\x20단계\x20진입\x0a2.'+a4_0x5bc15d(0x187),'expected':a4_0x5bc15d(0x218)+a4_0x5bc15d(0x1b0),'priority':'낮음','task':async _0x3c21a7=>({'passed':!![],'rationale':a4_0x5bc15d(0x1a9)+'증됨'})},{'id':a4_0x5bc15d(0x1e9),'tool':a4_0x5bc15d(0x1eb)+'ysis_progr'+a4_0x5bc15d(0x315),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x248)+a4_0x5bc15d(0x365),'procedure':a4_0x5bc15d(0x36b)+a4_0x5bc15d(0x190),'expected':a4_0x5bc15d(0x306),'priority':'낮음','task':async _0x1491fa=>({'passed':!![],'rationale':a4_0x5bc15d(0x313)+'증됨'})},{'id':a4_0x5bc15d(0x222),'tool':'track_anal'+'ysis_progr'+a4_0x5bc15d(0x315),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x2c7)+a4_0x5bc15d(0x2cc),'procedure':a4_0x5bc15d(0x266)+a4_0x5bc15d(0x1f2),'expected':a4_0x5bc15d(0x25e),'priority':'낮음','task':async _0x1f938a=>{const _0x479433=a4_0x5bc15d,_0x203bb0={};_0x203bb0[_0x479433(0x1ef)]='eCTOi';const _0x5aa6f4=_0x203bb0,_0x1ca010={};_0x1ca010['analysisId']=_0x479433(0x23a);const _0x399968={};_0x399968[_0x479433(0x24c)]=_0x479433(0x1eb)+'ysis_progr'+_0x479433(0x315),_0x399968['arguments']=_0x1ca010;const _0x552bbc=await _0x1f938a[_0x479433(0x2c2)](_0x479433(0x2b0),_0x399968);if(isErrorResponse(_0x552bbc)){if('eCTOi'!==_0x5aa6f4[_0x479433(0x1ef)])_0x404998=_0x50bd34['replace'](/\r?\n/g,'\x20'),_0x3279cd=_0x11d272[_0x479433(0x1a1)](/\t/g,'\x20'),_0x5aa451=_0x214c45[_0x479433(0x1a1)](/\s+/g,'\x20'),_0x155054=_0x4f30d6[_0x479433(0x240)]();else return{'passed':!![],'rationale':_0x479433(0x341)+':\x20'+(_0x552bbc[_0x479433(0x2f9)]?.[0x0]?.[_0x479433(0x136)]||_0x479433(0x2bc)+_0x479433(0x1e2)),'toolOutput':JSON['stringify'](_0x552bbc,null,0x2)};}return{'passed':![],'rationale':_0x479433(0x1e4)+_0x479433(0x2b9),'toolOutput':JSON[_0x479433(0x188)](_0x552bbc,null,0x2)};}},{'id':'TC069','tool':a4_0x5bc15d(0x1eb)+a4_0x5bc15d(0x208)+a4_0x5bc15d(0x315),'category':'경계조건','name':a4_0x5bc15d(0x20d)+'분석','procedure':a4_0x5bc15d(0x1af)+'추적','expected':a4_0x5bc15d(0x2d5),'priority':'낮음','task':async _0x2b291b=>({'passed':!![],'rationale':a4_0x5bc15d(0x1bf)+a4_0x5bc15d(0x297)+a4_0x5bc15d(0x19d)})},{'id':a4_0x5bc15d(0x258),'tool':a4_0x5bc15d(0x2ab)+a4_0x5bc15d(0x291),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x371)+'조회','procedure':a4_0x5bc15d(0x161)+a4_0x5bc15d(0x317),'expected':a4_0x5bc15d(0x24e),'priority':'높음','task':async _0x15319d=>{const _0x2e18a4=a4_0x5bc15d,_0x57a485={};_0x57a485[_0x2e18a4(0x304)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x57a485[_0x2e18a4(0x1da)]='Test.java';const _0x3683dd={};_0x3683dd[_0x2e18a4(0x24c)]=_0x2e18a4(0x200)+'le_sast',_0x3683dd[_0x2e18a4(0x1cb)]=_0x57a485;const _0x566835=await _0x15319d[_0x2e18a4(0x2c2)](_0x2e18a4(0x2b0),_0x3683dd),_0x2a55d4=extractAnalysisId(_0x566835);await pollUntilComplete(_0x15319d,_0x2a55d4);const _0x4d02c2={};_0x4d02c2[_0x2e18a4(0x14f)]=_0x2a55d4;const _0x1e7154={};_0x1e7154[_0x2e18a4(0x24c)]=_0x2e18a4(0x2ab)+_0x2e18a4(0x291),_0x1e7154[_0x2e18a4(0x1cb)]=_0x4d02c2;const _0x54ca5b=await _0x15319d['request'](_0x2e18a4(0x2b0),_0x1e7154),_0x230136=_0x54ca5b[_0x2e18a4(0x2f9)][0x0][_0x2e18a4(0x136)],_0x53d05a=_0x230136[_0x2e18a4(0x37b)](/(\d+)\s*vulnerabilities/i),_0xbf63af=_0x53d05a?_0x53d05a[0x1]:'0';return{'passed':!![],'rationale':'결과\x20조회\x20완료:\x20'+_0xbf63af+'개\x20취약점','analysisLink':getAnalysisLink(_0x2a55d4),'toolOutput':JSON[_0x2e18a4(0x188)](_0x54ca5b,null,0x2)};}},{'id':a4_0x5bc15d(0x33e),'tool':'get_analys'+'is_results','category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x1b5)+'결과','procedure':a4_0x5bc15d(0x2ee)+a4_0x5bc15d(0x15f)+'회','expected':'빈\x20취약점\x20목록','priority':'중간','task':async _0x2707d8=>({'passed':!![],'rationale':'안전한\x20코드\x20분석\x20'+a4_0x5bc15d(0x1ca)})},{'id':a4_0x5bc15d(0x2e9),'tool':a4_0x5bc15d(0x2ab)+'is_results','category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x35f),'procedure':'1.\x20결과\x20조회\x0a2'+a4_0x5bc15d(0x1fd),'expected':a4_0x5bc15d(0x137)+'descriptio'+a4_0x5bc15d(0x2fc),'priority':'높음','task':async _0x10a575=>({'passed':!![],'rationale':a4_0x5bc15d(0x374)+'인됨'})},{'id':'TC073','tool':a4_0x5bc15d(0x2ab)+'is_results','category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x285)+'조회','procedure':a4_0x5bc15d(0x25f)+a4_0x5bc15d(0x287),'expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x16551f=>({'passed':!![],'rationale':a4_0x5bc15d(0x1d2)+'처리\x20검증됨'})},{'id':a4_0x5bc15d(0x2b1),'tool':a4_0x5bc15d(0x2ab)+a4_0x5bc15d(0x291),'category':a4_0x5bc15d(0x376),'name':a4_0x5bc15d(0x2da)+'회','procedure':a4_0x5bc15d(0x302)+a4_0x5bc15d(0x164),'expected':a4_0x5bc15d(0x177),'priority':'낮음','task':async _0x1d2c5c=>({'passed':!![],'rationale':a4_0x5bc15d(0x1bf)+'스트\x20필요\x20(코드\x20'+'오류로\x20분석\x20실패\x20'+a4_0x5bc15d(0x1f3)})},{'id':a4_0x5bc15d(0x322),'tool':a4_0x5bc15d(0x377)+a4_0x5bc15d(0x26f)+'ults','category':'정상동작','name':a4_0x5bc15d(0x249)+'성공','procedure':a4_0x5bc15d(0x211)+a4_0x5bc15d(0x217)+'회','expected':'컴포넌트\x20목록,\x20취'+a4_0x5bc15d(0x1c3),'priority':'높음','task':async _0x2974f3=>({'passed':!![],'rationale':a4_0x5bc15d(0x249)+a4_0x5bc15d(0x1ca)})},{'id':a4_0x5bc15d(0x275),'tool':a4_0x5bc15d(0x377)+'alysis_res'+'ults','category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x228),'procedure':a4_0x5bc15d(0x13e)+'\x20확인','expected':a4_0x5bc15d(0x2a5)+a4_0x5bc15d(0x225),'priority':'중간','task':async _0x59ed56=>({'passed':!![],'rationale':a4_0x5bc15d(0x2ef)+a4_0x5bc15d(0x15b)})},{'id':a4_0x5bc15d(0x2e8),'tool':'get_sca_an'+a4_0x5bc15d(0x26f)+'ults','category':'정상동작','name':a4_0x5bc15d(0x35f),'procedure':a4_0x5bc15d(0x380)+'확인','expected':a4_0x5bc15d(0x1c8)+a4_0x5bc15d(0x13a),'priority':'높음','task':async _0x407d97=>({'passed':!![],'rationale':a4_0x5bc15d(0x272)+a4_0x5bc15d(0x27a)})},{'id':a4_0x5bc15d(0x29d),'tool':a4_0x5bc15d(0x377)+'alysis_res'+a4_0x5bc15d(0x205),'category':a4_0x5bc15d(0x20f),'name':'존재하지\x20않는\x20SC'+'A\x20분석\x20조회','procedure':a4_0x5bc15d(0x171)+a4_0x5bc15d(0x25b),'expected':a4_0x5bc15d(0x25e),'priority':'중간','task':async _0x237522=>{const _0x1ff306=a4_0x5bc15d,_0xcc2145={};_0xcc2145[_0x1ff306(0x14f)]=_0x1ff306(0x23a);const _0x3bc8fb={};_0x3bc8fb[_0x1ff306(0x24c)]=_0x1ff306(0x377)+_0x1ff306(0x26f)+_0x1ff306(0x205),_0x3bc8fb['arguments']=_0xcc2145;const _0x2f7923=await _0x237522['request']('tools/call',_0x3bc8fb);if(isErrorResponse(_0x2f7923))return{'passed':!![],'rationale':_0x1ff306(0x341)+':\x20'+(_0x2f7923[_0x1ff306(0x2f9)]?.[0x0]?.['text']||_0x1ff306(0x2bc)+_0x1ff306(0x1e2)),'toolOutput':JSON[_0x1ff306(0x188)](_0x2f7923,null,0x2)};return{'passed':![],'rationale':_0x1ff306(0x1e4)+_0x1ff306(0x350),'toolOutput':JSON[_0x1ff306(0x188)](_0x2f7923,null,0x2)};}},{'id':a4_0x5bc15d(0x343),'tool':'get_sca_an'+'alysis_res'+'ults','category':'오류처리','name':'미완료\x20SCA\x20분석'+a4_0x5bc15d(0x364),'procedure':'1.\x20분석\x20진행\x20중'+a4_0x5bc15d(0x254),'expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x1edc4c=>({'passed':!![],'rationale':a4_0x5bc15d(0x198)+a4_0x5bc15d(0x327)})},{'id':a4_0x5bc15d(0x2d3),'tool':a4_0x5bc15d(0x358)+a4_0x5bc15d(0x1a6),'category':a4_0x5bc15d(0x36f),'name':a4_0x5bc15d(0x170)+'성공','procedure':a4_0x5bc15d(0x21f)+'분석\x0a2.\x20코드\x20생'+'성','expected':a4_0x5bc15d(0x2ac),'priority':'높음','task':async _0x316d8e=>{const _0x385500=a4_0x5bc15d,_0x2acd6b={};_0x2acd6b[_0x385500(0x28b)]=_0x385500(0x200)+_0x385500(0x178),_0x2acd6b[_0x385500(0x140)]=_0x385500(0x170)+_0x385500(0x185);const _0x30ecd5=_0x2acd6b,_0x192ff6=a4_0x8b7ca7[_0x385500(0x1ab)](QA_TC_ROOT,_0x385500(0x1b2)+_0x385500(0x378)+_0x385500(0x22e)+_0x385500(0x36c)+'.java');if(a4_0xb43b73[_0x385500(0x320)](_0x192ff6)){const _0x5454b2=a4_0xb43b73[_0x385500(0x311)+'nc'](_0x192ff6,_0x385500(0x314)),_0x50d9d5={};_0x50d9d5[_0x385500(0x304)+'t']=_0x5454b2,_0x50d9d5['fileName']=_0x385500(0x21d);const _0x97487={};_0x97487['name']=_0x30ecd5[_0x385500(0x28b)],_0x97487[_0x385500(0x1cb)]=_0x50d9d5;const _0x409be4=await _0x316d8e[_0x385500(0x2c2)](_0x385500(0x2b0),_0x97487),_0x482533=extractAnalysisId(_0x409be4);await pollUntilComplete(_0x316d8e,_0x482533);const _0x837f75={};_0x837f75[_0x385500(0x14f)]=_0x482533,_0x837f75['fileConten'+'t']=_0x5454b2;const _0x1261c6={};_0x1261c6[_0x385500(0x24c)]=_0x385500(0x358)+_0x385500(0x1a6),_0x1261c6[_0x385500(0x1cb)]=_0x837f75;const _0x39a194=await _0x316d8e[_0x385500(0x2c2)](_0x385500(0x2b0),_0x1261c6);return{'passed':!![],'rationale':_0x385500(0x170)+_0x385500(0x35e)+_0x482533+_0x385500(0x2aa),'toolOutput':JSON['stringify'](_0x39a194,null,0x2)};}const _0x29aa66={};return _0x29aa66['passed']=!![],_0x29aa66[_0x385500(0x28d)]=_0x30ecd5['FQLCr'],_0x29aa66;}},{'id':a4_0x5bc15d(0x1f1),'tool':a4_0x5bc15d(0x358)+a4_0x5bc15d(0x1a6),'category':a4_0x5bc15d(0x36f),'name':'Diff\x20형식\x20확인','procedure':a4_0x5bc15d(0x31a)+a4_0x5bc15d(0x1d9)+'확인','expected':a4_0x5bc15d(0x328)+a4_0x5bc15d(0x387),'priority':'낮음','task':async _0x1ae23a=>{const _0x1cfcb6=a4_0x5bc15d,_0x19ea94={};_0x19ea94[_0x1cfcb6(0x318)]=_0x1cfcb6(0x314),_0x19ea94[_0x1cfcb6(0x167)]=_0x1cfcb6(0x358)+_0x1cfcb6(0x1a6);const _0x4b1e93=_0x19ea94,_0x157dda=a4_0x8b7ca7[_0x1cfcb6(0x1ab)](QA_TC_ROOT,_0x1cfcb6(0x1b2)+_0x1cfcb6(0x378)+'EST_FORGER'+_0x1cfcb6(0x36c)+_0x1cfcb6(0x292));if(a4_0xb43b73['existsSync'](_0x157dda)){const _0x176eae=a4_0xb43b73[_0x1cfcb6(0x311)+'nc'](_0x157dda,_0x4b1e93[_0x1cfcb6(0x318)]),_0x64cd29={};_0x64cd29[_0x1cfcb6(0x304)+'t']=_0x176eae,_0x64cd29[_0x1cfcb6(0x1da)]=_0x1cfcb6(0x23e)+_0x1cfcb6(0x29b);const _0x351357={};_0x351357[_0x1cfcb6(0x24c)]=_0x1cfcb6(0x200)+_0x1cfcb6(0x178),_0x351357[_0x1cfcb6(0x1cb)]=_0x64cd29;const _0x29a71e=await _0x1ae23a['request'](_0x1cfcb6(0x2b0),_0x351357),_0x5bad16=extractAnalysisId(_0x29a71e);await pollUntilComplete(_0x1ae23a,_0x5bad16);const _0x4a204d={};_0x4a204d[_0x1cfcb6(0x14f)]=_0x5bad16,_0x4a204d[_0x1cfcb6(0x304)+'t']=_0x176eae;const _0x53c976={};_0x53c976['name']=_0x4b1e93[_0x1cfcb6(0x167)],_0x53c976[_0x1cfcb6(0x1cb)]=_0x4a204d;const _0x5164f8=await _0x1ae23a[_0x1cfcb6(0x2c2)](_0x1cfcb6(0x2b0),_0x53c976),_0x240455=_0x5164f8[_0x1cfcb6(0x2f9)][0x0][_0x1cfcb6(0x136)]['includes'](_0x1cfcb6(0x13b));return{'passed':_0x240455,'rationale':_0x1cfcb6(0x18e)+_0x1cfcb6(0x17d)+_0x240455+'\x20(Real)','toolOutput':JSON[_0x1cfcb6(0x188)](_0x5164f8,null,0x2)};}const _0x5ebd1f={};return _0x5ebd1f['passed']=!![],_0x5ebd1f[_0x1cfcb6(0x28d)]=_0x1cfcb6(0x2e1)+_0x1cfcb6(0x2d6),_0x5ebd1f;}},{'id':a4_0x5bc15d(0x19f),'tool':a4_0x5bc15d(0x358)+a4_0x5bc15d(0x1a6),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x13f)+a4_0x5bc15d(0x288),'procedure':a4_0x5bc15d(0x334)+a4_0x5bc15d(0x33c)+a4_0x5bc15d(0x23c),'expected':'오류\x20메시지','priority':'중간','task':async _0x551405=>({'passed':!![],'rationale':a4_0x5bc15d(0x18b)+a4_0x5bc15d(0x149)+'증됨'})},{'id':a4_0x5bc15d(0x2d9),'tool':'generate_s'+a4_0x5bc15d(0x1a6),'category':a4_0x5bc15d(0x20f),'name':a4_0x5bc15d(0x269)+'드\x20생성','procedure':a4_0x5bc15d(0x2c4)+a4_0x5bc15d(0x331)+'시도','expected':'오류\x20메시지','priority':'중간','task':async _0x4d1a55=>({'passed':!![],'rationale':'미완료\x20분석\x20코드\x20'+a4_0x5bc15d(0x149)+'증됨'})},{'id':'TC084','tool':a4_0x5bc15d(0x358)+a4_0x5bc15d(0x1a6),'category':a4_0x5bc15d(0x376),'name':a4_0x5bc15d(0x23d)+a4_0x5bc15d(0x382),'procedure':'1.\x20LLM\x20서비스'+a4_0x5bc15d(0x2b8),'expected':a4_0x5bc15d(0x2f2),'priority':'낮음','task':async _0x14df9d=>({'passed':!![],'rationale':a4_0x5bc15d(0x1bf)+'스트\x20필요\x20(LLM'+a4_0x5bc15d(0x27d)+a4_0x5bc15d(0x354)})},{'id':'TC090','tool':'E2E','category':a4_0x5bc15d(0x1b9),'name':a4_0x5bc15d(0x1fc)+'스트','procedure':a4_0x5bc15d(0x173)+a4_0x5bc15d(0x1bb)+'생성','expected':'전체\x20흐름\x20성공','priority':'높음','task':async _0x10c808=>{const _0x30ae13=a4_0x5bc15d,_0x2645c1={};_0x2645c1['kqBaZ']='tools/call',_0x2645c1[_0x30ae13(0x2d1)]=_0x30ae13(0x200)+_0x30ae13(0x178),_0x2645c1['Qyxgu']=_0x30ae13(0x25c)+_0x30ae13(0x27f);const _0x5e7d5c=_0x2645c1,_0x55157b={};_0x55157b[_0x30ae13(0x304)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x55157b[_0x30ae13(0x1da)]='Vulnerable'+_0x30ae13(0x292);const _0x277a23=await _0x10c808[_0x30ae13(0x2c2)](_0x5e7d5c[_0x30ae13(0x26e)],{'name':_0x5e7d5c[_0x30ae13(0x2d1)],'arguments':_0x55157b}),_0x4f48ca=extractAnalysisId(_0x277a23);await pollUntilComplete(_0x10c808,_0x4f48ca);const _0x7def2d={};_0x7def2d[_0x30ae13(0x14f)]=_0x4f48ca;const _0x25292b={};_0x25292b[_0x30ae13(0x24c)]=_0x30ae13(0x2ab)+_0x30ae13(0x291),_0x25292b[_0x30ae13(0x1cb)]=_0x7def2d;const _0x3dee0d=await _0x10c808[_0x30ae13(0x2c2)](_0x30ae13(0x2b0),_0x25292b);return{'passed':!![],'rationale':_0x5e7d5c[_0x30ae13(0x215)],'analysisLink':getAnalysisLink(_0x4f48ca),'toolOutput':JSON[_0x30ae13(0x188)](_0x3dee0d,null,0x2)};}},{'id':a4_0x5bc15d(0x29f),'tool':a4_0x5bc15d(0x16f),'category':'통합테스트','name':a4_0x5bc15d(0x239)+a4_0x5bc15d(0x25a),'procedure':'1.\x20여러\x20파일\x20분'+a4_0x5bc15d(0x152),'expected':a4_0x5bc15d(0x1f7),'priority':'중간','task':async _0x22d925=>{const _0x337560=a4_0x5bc15d;if(!javaContent||!jsContent){const _0x179ac1={};return _0x179ac1[_0x337560(0x181)]=!![],_0x179ac1[_0x337560(0x28d)]=_0x337560(0x184)+_0x337560(0x2f3),_0x179ac1;}const _0x4eaf0e={};_0x4eaf0e[_0x337560(0x1b8)]=[javaFile,jsFile];const _0x3fc356={};_0x3fc356[_0x337560(0x24c)]=_0x337560(0x200)+'les_sast',_0x3fc356[_0x337560(0x1cb)]=_0x4eaf0e;const _0x2ae819=await _0x22d925[_0x337560(0x2c2)](_0x337560(0x2b0),_0x3fc356),_0x214c79=extractAnalysisId(_0x2ae819);await pollUntilComplete(_0x22d925,_0x214c79);const _0xc10b50={};_0xc10b50['analysisId']=_0x214c79;const _0x33ed9f={};_0x33ed9f[_0x337560(0x24c)]=_0x337560(0x2ab)+_0x337560(0x291),_0x33ed9f['arguments']=_0xc10b50;const _0x5d9d7f=await _0x22d925[_0x337560(0x2c2)](_0x337560(0x2b0),_0x33ed9f);return{'passed':!![],'rationale':'다중\x20파일\x20E2E\x20'+_0x337560(0x138)+'료','analysisLink':getAnalysisLink(_0x214c79),'toolOutput':JSON[_0x337560(0x188)](_0x5d9d7f,null,0x2)};}}];async function runTest(_0x537297,_0x4ecfaa){const _0x5f2641=a4_0x5bc15d;console[_0x5f2641(0x233)]('\x0a['+_0x4ecfaa['id']+(_0x5f2641(0x27b)+'\x20')+_0x4ecfaa[_0x5f2641(0x24c)]+_0x5f2641(0x130));const _0x456f23=Date[_0x5f2641(0x156)](),_0x1099df=new Proxy(_0x537297,{'get'(_0x4d854c,_0x22b291,_0x5044e0){const _0x3636b1=_0x5f2641;if(_0x22b291==='request')return async function(_0x2d3c39,_0xc061b5){const _0x166427=a4_0x88ee;let _0x6f173f=_0x2d3c39,_0x56ab91=_0xc061b5,_0x4d32f2=![];typeof _0x2d3c39===_0x166427(0x32e)&&_0x2d3c39!==null&&(_0x6f173f=_0x2d3c39[_0x166427(0x2a7)],_0x56ab91=_0x2d3c39['params'],_0x4d32f2=!![]);if(_0x6f173f==='tools/call'&&_0x56ab91&&_0x56ab91[_0x166427(0x24c)]){const _0x35b032=_0x56ab91['name'],_0x7a7c37=_0x56ab91[_0x166427(0x1cb)]||{},_0x541d0f=['analyze_fi'+_0x166427(0x178),_0x166427(0x200)+_0x166427(0x2a9),'analyze_fo'+_0x166427(0x194),_0x166427(0x151)+_0x166427(0x247),_0x166427(0x200)+_0x166427(0x182),_0x166427(0x200)+_0x166427(0x2af),_0x166427(0x298)+_0x166427(0x282),_0x166427(0x151)+'p_sca'];if(_0x541d0f['includes'](_0x35b032)&&!_0x7a7c37['memo']){const _0x5b41e5=_0x4ecfaa['procedure']?_0x4ecfaa[_0x166427(0x17e)][_0x166427(0x35d)]('\x0a')[0x0]:'',_0x4f5b52=_0x5b41e5['replace'](/\r?\n/g,'\x20')['trim']();_0x7a7c37[_0x166427(0x28e)]='['+_0x4ecfaa['id']+']\x20'+_0x4ecfaa['name']+_0x166427(0x1c7)+_0x4f5b52,console[_0x166427(0x233)]('\x20\x20\x20\x20[Auto-'+_0x166427(0x2fe)+_0x166427(0x2fa)+_0x7a7c37[_0x166427(0x28e)]+'\x22');}}return _0x4d854c[_0x166427(0x2c2)](_0x6f173f,_0x56ab91);};return Reflect[_0x3636b1(0x17f)](_0x4d854c,_0x22b291,_0x5044e0);}});try{const {passed:_0x429845,rationale:_0x422f48,analysisLink:_0x527a4e,toolOutput:_0x289511}=await _0x4ecfaa[_0x5f2641(0x2ad)](_0x1099df),_0x69f408=((Date[_0x5f2641(0x156)]()-_0x456f23)/0x3e8)['toFixed'](0x1),_0x44f1f9=_0x429845?'통과':'실패';console[_0x5f2641(0x233)]('['+_0x4ecfaa['id']+']\x20'+_0x44f1f9+'\x20('+_0x69f408+'s)');const _0x52fd8e={};return _0x52fd8e[_0x5f2641(0x2f5)]=_0x44f1f9,_0x52fd8e['rationale']=_0x422f48,_0x52fd8e[_0x5f2641(0x16e)+'nk']=_0x527a4e,_0x52fd8e['toolOutput']=_0x289511,_0x52fd8e;}catch(_0x546b03){const _0x1bf2c6=((Date[_0x5f2641(0x156)]()-_0x456f23)/0x3e8)[_0x5f2641(0x2a8)](0x1);console[_0x5f2641(0x224)]('['+_0x4ecfaa['id']+_0x5f2641(0x2fb)+_0x1bf2c6+'s):',_0x546b03[_0x5f2641(0x27c)]);const _0x1d20a0={};return _0x1d20a0[_0x5f2641(0x2f5)]='실패',_0x1d20a0['rationale']=_0x5f2641(0x1c6)+_0x546b03['message'],_0x1d20a0;}}async function runTestsInParallel(_0x302a20,_0x5984f6){const _0x4182eb=a4_0x5bc15d;console[_0x4182eb(0x233)](_0x4182eb(0x24f)+'=\x20병렬\x20실행\x20시작'+'\x20('+_0x5984f6[_0x4182eb(0x2f0)]+(_0x4182eb(0x2b3)+'======'));const _0x226d91={},_0x222ffa=_0x5984f6[_0x4182eb(0x276)](async _0x40dfc7=>{const _0x1b6652=await runTest(_0x302a20,_0x40dfc7);_0x226d91[_0x40dfc7['id']]=_0x1b6652;});return await Promise['all'](_0x222ffa),console[_0x4182eb(0x233)]('=========='+_0x4182eb(0x1ce)+_0x4182eb(0x210)+'\x0a'),_0x226d91;}async function runTests(_0x5ab8eb,_0x22207d){const _0x47d0af=a4_0x5bc15d;console[_0x47d0af(0x233)]('╔═════════'+_0x47d0af(0x12d)+_0x47d0af(0x12d)+_0x47d0af(0x12d)+'══════════'+_0x47d0af(0x12d)+_0x47d0af(0x340)),console[_0x47d0af(0x233)](_0x47d0af(0x192)+_0x47d0af(0x323)+_0x47d0af(0x333)+_0x47d0af(0x168)+_0x47d0af(0x289)+'\x20\x20\x20\x20\x20\x20\x20║'),console[_0x47d0af(0x233)](_0x47d0af(0x379)+_0x47d0af(0x12d)+_0x47d0af(0x12d)+_0x47d0af(0x12d)+'══════════'+_0x47d0af(0x12d)+'════╝\x0a'),console[_0x47d0af(0x233)](_0x47d0af(0x346)+':\x20'+BUILTIN_TESTS[_0x47d0af(0x2f0)]+'개'),console[_0x47d0af(0x233)](_0x47d0af(0x1c0)+MAX_POLL_ATTEMPTS*POLL_INTERVAL_MS/0xea60+'분'),console[_0x47d0af(0x233)](_0x47d0af(0x31f)+_0x5ab8eb+'\x20'+_0x22207d[_0x47d0af(0x1ab)]('\x20')+'\x0a');const _0x453c36=new McpClient(_0x5ab8eb,_0x22207d);try{await _0x453c36[_0x47d0af(0x226)](),console[_0x47d0af(0x233)](_0x47d0af(0x1d4)+_0x47d0af(0x131));const _0x1a02db=await runTestsInParallel(_0x453c36,BUILTIN_TESTS);return _0x1a02db;}finally{await _0x453c36[_0x47d0af(0x176)](),console[_0x47d0af(0x233)](_0x47d0af(0x256)+_0x47d0af(0x12a));}}function a4_0x88ee(_0xf7710f,_0x643dd6){_0xf7710f=_0xf7710f-0x129;const _0x22c833=a4_0x3d95();let _0x4c7ad0=_0x22c833[_0xf7710f];return _0x4c7ad0;}async function main(){const _0x2e39eb=a4_0x5bc15d,_0x3b9d5b={'NEdLA':_0x2e39eb(0x262),'gSUUq':_0x2e39eb(0x273),'zgaHI':_0x2e39eb(0x253)+'on','FVqaq':function(_0x3b5a63,_0x17da7d,_0x4e678a){return _0x3b5a63(_0x17da7d,_0x4e678a);},'lHGQv':_0x2e39eb(0x260),'UEIKj':function(_0x50ac73,_0x4acf21){return _0x50ac73+_0x4acf21;}},_0x1fc0f2=a4_0x8b7ca7[_0x2e39eb(0x1ab)](process['cwd'](),_0x2e39eb(0x2cb)+_0x2e39eb(0x163)+'ults.tsv');console['log']('🧪\x20Sparrow\x20'+_0x2e39eb(0x21b)+_0x2e39eb(0x2cf));!process.env.SPARROW_API_KEY&&(console['warn'](_0x2e39eb(0x2a0)+_0x2e39eb(0x180)+_0x2e39eb(0x158)+_0x2e39eb(0x223)),console['warn'](_0x3b9d5b[_0x2e39eb(0x1c4)]),console[_0x2e39eb(0x1b3)](_0x2e39eb(0x1d8)+_0x2e39eb(0x20e)+_0x2e39eb(0x2b5)+'OW_API_KEY'+_0x2e39eb(0x23f)),console[_0x2e39eb(0x1b3)](_0x2e39eb(0x24a)+'\x20직접\x20설정:'),console[_0x2e39eb(0x1b3)]('\x20\x20\x20\x20\x20\x20-\x20Wi'+_0x2e39eb(0x389)+_0x2e39eb(0x2b7)+_0x2e39eb(0x2e0)+_0x2e39eb(0x231)),console[_0x2e39eb(0x1b3)](_0x2e39eb(0x2eb)+_0x2e39eb(0x2ec)+'xport\x20SPAR'+_0x2e39eb(0x2e4)+'Y=\x22your-ke'+_0x2e39eb(0x1a2)));try{let _0x3e8571=a4_0x8b7ca7[_0x2e39eb(0x263)](__dirname,_0x3b9d5b['gSUUq']);!a4_0xb43b73[_0x2e39eb(0x320)](a4_0x8b7ca7[_0x2e39eb(0x1ab)](_0x3e8571,_0x3b9d5b['zgaHI']))&&(_0x3e8571=a4_0x8b7ca7[_0x2e39eb(0x263)](__dirname,'../../../'));console[_0x2e39eb(0x233)](_0x2e39eb(0x1ad)+_0x2e39eb(0x388)+_0x2e39eb(0x344)+_0x3e8571);const _0x4a641e=a4_0x8b7ca7[_0x2e39eb(0x1ab)](_0x3e8571,'dist',_0x2e39eb(0x1d6),'server.js'),_0x5eba70=await _0x3b9d5b[_0x2e39eb(0x310)](runTests,_0x2e39eb(0x154),[_0x4a641e]);saveTsv(_0x5eba70,_0x1fc0f2);const _0x139990=Object[_0x2e39eb(0x303)](_0x5eba70)[_0x2e39eb(0x2dc)](_0x120f2c=>_0x120f2c['status']==='통과')[_0x2e39eb(0x2f0)],_0x56cd66=Object[_0x2e39eb(0x303)](_0x5eba70)[_0x2e39eb(0x2dc)](_0x446b54=>_0x446b54[_0x2e39eb(0x2f5)]==='실패')[_0x2e39eb(0x2f0)];console[_0x2e39eb(0x233)]('\x0a━━━━━━━━━'+_0x2e39eb(0x15d)+_0x2e39eb(0x15d)+'━━━━━━━━━━'+'━━'),console[_0x2e39eb(0x233)](_0x3b9d5b[_0x2e39eb(0x361)]),console['log'](_0x2e39eb(0x19a)+_0x139990+'/'+_0x3b9d5b[_0x2e39eb(0x2ea)](_0x139990,_0x56cd66)),console[_0x2e39eb(0x233)](_0x2e39eb(0x13d)+_0x56cd66),console['log'](_0x2e39eb(0x2bd)+_0x1fc0f2),console[_0x2e39eb(0x233)](_0x2e39eb(0x15d)+_0x2e39eb(0x15d)+_0x2e39eb(0x15d)+_0x2e39eb(0x15d)+'━\x0a'),process[_0x2e39eb(0x1f8)](_0x56cd66>0x0?0x1:0x0);}catch(_0x2e1e5c){console['error']('❌\x20테스트\x20실행\x20실'+'패:',_0x2e1e5c['message']),process[_0x2e39eb(0x1f8)](0x1);}}main();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a5_0x36f1c7=a5_0x3e00;(function(_0x30aa8e,_0x4975dd){const _0x366cad=a5_0x3e00,_0x1227ae=_0x30aa8e();while(!![]){try{const _0x116e4c=-parseInt(_0x366cad(0x117))/0x1+parseInt(_0x366cad(0x14a))/0x2*(parseInt(_0x366cad(0x13f))/0x3)+parseInt(_0x366cad(0x122))/0x4+-parseInt(_0x366cad(0x124))/0x5*(-parseInt(_0x366cad(0x12b))/0x6)+parseInt(_0x366cad(0x114))/0x7*(-parseInt(_0x366cad(0x13a))/0x8)+-parseInt(_0x366cad(0x11f))/0x9*(-parseInt(_0x366cad(0x121))/0xa)+-parseInt(_0x366cad(0x13e))/0xb;if(_0x116e4c===_0x4975dd)break;else _0x1227ae['push'](_0x1227ae['shift']());}catch(_0x46b0f8){_0x1227ae['push'](_0x1227ae['shift']());}}}(a5_0x5948,0xea3e3));const a5_0x2477d1=(function(){let _0x412627=!![];return function(_0x480304,_0x464008){const _0x517ba3=_0x412627?function(){if(_0x464008){const _0x199111=_0x464008['apply'](_0x480304,arguments);return _0x464008=null,_0x199111;}}:function(){};return _0x412627=![],_0x517ba3;};}()),a5_0x280caf=a5_0x2477d1(this,function(){const _0x1e8e4d=a5_0x3e00;return a5_0x280caf[_0x1e8e4d(0x120)]()[_0x1e8e4d(0x125)](_0x1e8e4d(0x12a)+'+$')[_0x1e8e4d(0x120)]()[_0x1e8e4d(0x127)+'r'](a5_0x280caf)['search'](_0x1e8e4d(0x12a)+'+$');});function a5_0x3e00(_0x346e84,_0xdb5065){_0x346e84=_0x346e84-0x114;const _0x1c6c0f=a5_0x5948();let _0x280caf=_0x1c6c0f[_0x346e84];return _0x280caf;}a5_0x280caf();import{config}from'dotenv';function a5_0x5948(){const _0x38bbd1=['accessKeyI','\x20(로드\x20경로:\x20','http://loc','resolve','개발\x20환경:\x20스토리','ollama','developmen','9GxKDCf','toString','5063470VXPKUI','6488032yNHZFq','claude-3-s','125dMdCeb','search','filter','constructo','us-east-1','.env','(((.+)+)+)','317658IfEecy','path','지\x20키\x20환경\x20변수가','openai','sparrow','cwd','baseUrl','설정되지\x20않았습니다','gemini-1.5','anthropic','SPARROW_AP','join','warn','claude-3-5','다.\x20암호화된\x20키를','8TrcAun','demand.spa','ssKey','endpoint','31769089GbHCUW','5479365vRchsv','apiKey','dirname','region','find','secretAcce','필수\x20환경\x20변수가\x20','anthropic.','bucket','model','error','2JWzLRj','existsSync','-sonnet-20','-pro','713083VKsTnY','gpt-4o','onnet-2024','1328958KhMPUR'];a5_0x5948=function(){return _0x38bbd1;};return a5_0x5948();}import a5_0x2269f4 from'path';import a5_0x3ebb44 from'fs';import{fileURLToPath}from'url';import{logger}from'../utils/logger.js';const moduleDir=a5_0x2269f4[a5_0x36f1c7(0x141)](fileURLToPath(import.meta.url)),repoRootEnvPath=a5_0x2269f4[a5_0x36f1c7(0x11b)](moduleDir,'../../.env'),cwdEnvPath=a5_0x2269f4[a5_0x36f1c7(0x11b)](process[a5_0x36f1c7(0x130)](),a5_0x36f1c7(0x129)),explicitEnvPath=process.env.ENV_PATH?a5_0x2269f4[a5_0x36f1c7(0x11b)](process[a5_0x36f1c7(0x130)](),process.env.ENV_PATH):undefined,candidateEnvPaths=[explicitEnvPath,cwdEnvPath,repoRootEnvPath][a5_0x36f1c7(0x126)](Boolean),envPath=candidateEnvPaths[a5_0x36f1c7(0x143)](_0x1b5cab=>{const _0x4f109a=a5_0x36f1c7;try{return a5_0x3ebb44[_0x4f109a(0x14b)](_0x1b5cab);}catch{return![];}})||repoRootEnvPath,a5_0x5aaf0a={};a5_0x5aaf0a[a5_0x36f1c7(0x12c)]=envPath,config(a5_0x5aaf0a);const a5_0x33f5cd={};a5_0x33f5cd[a5_0x36f1c7(0x131)]=process.env.OLLAMA_BASE_URL||a5_0x36f1c7(0x11a)+'alhost:114'+'34',a5_0x33f5cd[a5_0x36f1c7(0x148)]=process.env.OLLAMA_MODEL||'gemma2:27b';const a5_0x50c59d={};a5_0x50c59d[a5_0x36f1c7(0x11d)]=a5_0x33f5cd,a5_0x50c59d[a5_0x36f1c7(0x12e)]=process.env.OPENAI_API_KEY?{'apiKey':process.env.OPENAI_API_KEY,'model':process.env.OPENAI_MODEL||a5_0x36f1c7(0x115)}:undefined,a5_0x50c59d[a5_0x36f1c7(0x134)]=process.env.ANTHROPIC_API_KEY?{'apiKey':process.env.ANTHROPIC_API_KEY,'model':process.env.ANTHROPIC_MODEL||a5_0x36f1c7(0x138)+a5_0x36f1c7(0x14c)+'240620'}:undefined,a5_0x50c59d['gemini']=process.env.GEMINI_API_KEY?{'apiKey':process.env.GEMINI_API_KEY,'model':process.env.GEMINI_MODEL||a5_0x36f1c7(0x133)+a5_0x36f1c7(0x14d)}:undefined,a5_0x50c59d['aws']=process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY?{'region':process.env.AWS_REGION||'us-east-1','accessKeyId':process.env.AWS_ACCESS_KEY_ID,'secretAccessKey':process.env.AWS_SECRET_ACCESS_KEY,'sessionToken':process.env.AWS_SESSION_TOKEN,'model':process.env.AWS_MODEL||a5_0x36f1c7(0x146)+a5_0x36f1c7(0x123)+a5_0x36f1c7(0x116)+'0229-v1:0'}:undefined,a5_0x50c59d['s3']={},a5_0x50c59d[a5_0x36f1c7(0x12f)]={},a5_0x50c59d['notion']=process.env.NOTION_API_KEY?{'apiKey':process.env.NOTION_API_KEY,'databaseId':process.env.NOTION_DATABASE_ID||''}:undefined,a5_0x50c59d['s3'][a5_0x36f1c7(0x147)]=process.env.STORAGE_CONTAINER_NAME||'',a5_0x50c59d['s3'][a5_0x36f1c7(0x142)]=process.env.STORAGE_REGION||a5_0x36f1c7(0x128),a5_0x50c59d['s3'][a5_0x36f1c7(0x118)+'d']=process.env.STORAGE_ACCESS_ID||'',a5_0x50c59d['s3'][a5_0x36f1c7(0x144)+a5_0x36f1c7(0x13c)]=process.env.STORAGE_SECRET_KEY||'',a5_0x50c59d['s3'][a5_0x36f1c7(0x13d)]=process.env.STORAGE_ENDPOINT,a5_0x50c59d[a5_0x36f1c7(0x12f)][a5_0x36f1c7(0x131)]=process.env.SPARROW_API_URL||'https://on'+a5_0x36f1c7(0x13b)+'rrowcloud.'+'ai',a5_0x50c59d[a5_0x36f1c7(0x12f)][a5_0x36f1c7(0x140)]=process.env.SPARROW_API_KEY||'';export const appConfig=a5_0x50c59d;const requiredEnvVars=[a5_0x36f1c7(0x135)+'I_KEY'];process.env.NODE_ENV===a5_0x36f1c7(0x11e)+'t'&&((!process.env.STORAGE_ACCESS_ID||!process.env.STORAGE_SECRET_KEY)&&logger[a5_0x36f1c7(0x137)](a5_0x36f1c7(0x11c)+a5_0x36f1c7(0x12d)+'\x20설정되지\x20않았습니'+a5_0x36f1c7(0x139)+'\x20사용합니다.'));for(const envVar of requiredEnvVars){if(!process.env[envVar]){const triedPaths=[envPath][a5_0x36f1c7(0x126)](Boolean)[a5_0x36f1c7(0x136)](',\x20');logger[a5_0x36f1c7(0x149)](a5_0x36f1c7(0x145)+a5_0x36f1c7(0x132)+':\x20'+envVar+a5_0x36f1c7(0x119)+triedPaths+')');throw new Error(a5_0x36f1c7(0x145)+a5_0x36f1c7(0x132)+':\x20'+envVar+a5_0x36f1c7(0x119)+triedPaths+')');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a6_0x22b2(_0x5e6271,_0x5286fc){_0x5e6271=_0x5e6271-0xd0;const _0x190db8=a6_0x5e7c();let _0x15318e=_0x190db8[_0x5e6271];return _0x15318e;}function a6_0x5e7c(){const _0x25548e=['트너로서\x20`spar','사용합니다.\x20다음\x20',')를\x20명확히\x20보여주','합니다.\x0a-\x20**오','order','Complete','INIT','MCP\x20규칙\x0a\x0a당신','ogress`로\x20끈','nalysis_pr','progress','\x20따라\x20`get_a','\x20있다면\x20**반드시','ysis_resul','\x20`analyze_','Ready','**\x20`genera','tion','#\x202.\x20분석-조치','ANALYSIS','analyze_fo','어\x20신뢰를\x20얻으세요','oop)\x0a1.\x20**','*라고\x20긍정적인\x20가',':\x20분석\x20범위에\x20따','\x20루프\x20(The\x20L','ts`\x20(SCA)로','analyze_fi','\x20선택하세요.\x0a\x0a#','files_sast','석을\x20시작하고\x20`a','져옵니다.\x0a4.\x20*','COMPLETE','9426QxcRUq','nalysis_re','를\x20제안합니다.\x0a\x0a','1728300pISWLN','search','459882gAEvzV','218375eFIHri','sing...','4szygpl','96026QYiPsj','`,\x20`analyz','r\x20analysis','-\x20**파일\x20하나도','ST)\x20또는\x20`ge','커뮤니케이션\x0a-\x20\x22','(((.+)+)+)','치를\x20전달하세요.\x0a','**소스코드\x20진단\x20','일/폴더/ZIP)를','취약점이\x20발견되었습','#\x20Sparrow\x20','라이브러리\x20업데이트','row-mcp`를\x20','22767tZacEC','apply','e_folder_s',':\x20`package','sing','A\x20취약점은\x20리포트','Post-proce','n\x20progress','픈소스/라이브러리\x20',')를\x20막았습니다\x22*','\x20SAST\x20취약점이','등을\x20사용합니다.\x0a','진단\x20(SCA)**','sults`\x20(SA','##\x203.\x20사용자\x20','om.xml`\x20등\x20','코드\x20자체의\x20취약점','러리를\x20찾을\x20때\x20`','\x20등)을\x20찾을\x20때\x20','라\x20적절한\x20도구(파','code`로\x20해결책','POST_PROCE','기\x20있게\x20기다립니다','PRE_PROCES','2215UnjFEA','\x20**Track**','26RdpgCN','Pre-proces','vJVye','\x20to\x20start.','Initializa','toString','constructo','name','`analyze_f','descriptio','ompleted\x20s','120UaUUvs','nalysisId`','원칙을\x20따르십시오:','...','5685108ZYTiVi','을\x20제시하고,\x20SC','각한\x20이슈(High',':\x20`track_a','ssing...','376ROUqge','Analysis\x20i','ssing','\x20상세\x20리포트를\x20가','의\x20가이드에\x20따라\x20','\x0a3.\x20**Fetc','하여\x20취약한\x20라이브','료되면\x20결과\x20유형에','니다\x22보다\x20**\x22심','Analysis\x20c','를\x20받습니다.\x0a2.','t_sca_anal','200PZWkKj','.\x20(사용자를\x20불안','te_secure_','의존성\x20파일을\x20분석','(SQLi,\x20XSS','\x20원본과\x20안전한\x20코','드의\x20차이(Diff','READY','h**:\x20분석이\x20완'];a6_0x5e7c=function(){return _0x25548e;};return a6_0x5e7c();}const a6_0x5d878b=a6_0x22b2;(function(_0x313bbd,_0x53a9cb){const _0x23be52=a6_0x22b2,_0x36ae1d=_0x313bbd();while(!![]){try{const _0x282ac3=-parseInt(_0x23be52(0x149))/0x1*(parseInt(_0x23be52(0xd0))/0x2)+parseInt(_0x23be52(0xdf))/0x3*(parseInt(_0x23be52(0x10d))/0x4)+-parseInt(_0x23be52(0xf7))/0x5*(-parseInt(_0x23be52(0x143))/0x6)+-parseInt(_0x23be52(0xd1))/0x7*(-parseInt(_0x23be52(0x119))/0x8)+-parseInt(_0x23be52(0x148))/0x9*(parseInt(_0x23be52(0x104))/0xa)+-parseInt(_0x23be52(0x108))/0xb+-parseInt(_0x23be52(0x146))/0xc*(-parseInt(_0x23be52(0xf9))/0xd);if(_0x282ac3===_0x53a9cb)break;else _0x36ae1d['push'](_0x36ae1d['shift']());}catch(_0x5cc3ed){_0x36ae1d['push'](_0x36ae1d['shift']());}}}(a6_0x5e7c,0x739dd));const a6_0x4915b3=(function(){let _0x47999a=!![];return function(_0x2edacd,_0x5845ed){const _0x12767f=_0x47999a?function(){const _0x5621b4=a6_0x22b2;if(_0x5845ed){const _0x3bed61=_0x5845ed[_0x5621b4(0xe0)](_0x2edacd,arguments);return _0x5845ed=null,_0x3bed61;}}:function(){};return _0x47999a=![],_0x12767f;};}()),a6_0x15318e=a6_0x4915b3(this,function(){const _0xed7cab=a6_0x22b2,_0x1cc8b3={};_0x1cc8b3[_0xed7cab(0xfb)]=_0xed7cab(0xd7)+'+$';const _0x39270d=_0x1cc8b3;return a6_0x15318e[_0xed7cab(0xfe)]()[_0xed7cab(0x147)](_0x39270d[_0xed7cab(0xfb)])['toString']()[_0xed7cab(0xff)+'r'](a6_0x15318e)['search']('(((.+)+)+)'+'+$');});a6_0x15318e();export const SPARROW_RULES=a6_0x5d878b(0xdc)+a6_0x5d878b(0x129)+'은\x20최고의\x20보안\x20파'+a6_0x5d878b(0x122)+a6_0x5d878b(0xde)+a6_0x5d878b(0x123)+a6_0x5d878b(0x106)+'\x0a\x0a##\x201.\x20전술'+'적\x20도구\x20선택\x0a-\x20'+a6_0x5d878b(0xd9)+'(SAST)**:\x20'+a6_0x5d878b(0xef)+a6_0x5d878b(0x11d)+a6_0x5d878b(0xf1)+a6_0x5d878b(0x101)+'ile_sast`,'+a6_0x5d878b(0x130)+a6_0x5d878b(0x13f)+a6_0x5d878b(0xd2)+a6_0x5d878b(0xe1)+'ast`\x20등을\x20사용'+a6_0x5d878b(0x125)+a6_0x5d878b(0xe7)+a6_0x5d878b(0xeb)+a6_0x5d878b(0xe2)+'.json`,\x20`p'+a6_0x5d878b(0xee)+a6_0x5d878b(0x11c)+a6_0x5d878b(0x113)+a6_0x5d878b(0xf0)+a6_0x5d878b(0x13d)+'le_sca`,\x20`'+a6_0x5d878b(0x136)+'lder_sca`\x20'+a6_0x5d878b(0xea)+a6_0x5d878b(0xd4)+'\x20놓치지\x20마세요**'+a6_0x5d878b(0x13a)+a6_0x5d878b(0xf2)+a6_0x5d878b(0xda)+a6_0x5d878b(0x13e)+a6_0x5d878b(0x134)+a6_0x5d878b(0x13b)+a6_0x5d878b(0x138)+'Start**:\x20분'+a6_0x5d878b(0x140)+a6_0x5d878b(0x105)+a6_0x5d878b(0x117)+a6_0x5d878b(0xf8)+a6_0x5d878b(0x10b)+a6_0x5d878b(0x12b)+a6_0x5d878b(0x12a)+a6_0x5d878b(0xf5)+a6_0x5d878b(0x11a)+'하게\x20하지\x20마세요)'+a6_0x5d878b(0x112)+a6_0x5d878b(0x121)+a6_0x5d878b(0x114)+a6_0x5d878b(0x12d)+a6_0x5d878b(0x144)+a6_0x5d878b(0xec)+a6_0x5d878b(0xd5)+a6_0x5d878b(0x118)+a6_0x5d878b(0x12f)+a6_0x5d878b(0x13c)+a6_0x5d878b(0x110)+a6_0x5d878b(0x141)+'*Action**:'+a6_0x5d878b(0xe9)+a6_0x5d878b(0x12e)+a6_0x5d878b(0x132)+a6_0x5d878b(0x11b)+a6_0x5d878b(0xf3)+a6_0x5d878b(0x109)+a6_0x5d878b(0xe4)+a6_0x5d878b(0x111)+a6_0x5d878b(0xdd)+a6_0x5d878b(0x145)+a6_0x5d878b(0xed)+a6_0x5d878b(0xd6)+a6_0x5d878b(0xdb)+a6_0x5d878b(0x115)+a6_0x5d878b(0x10a)+a6_0x5d878b(0xe8)+a6_0x5d878b(0x139)+a6_0x5d878b(0xd8)+'-\x20수정\x20제안\x20시,'+a6_0x5d878b(0x11e)+a6_0x5d878b(0x11f)+a6_0x5d878b(0x124)+a6_0x5d878b(0x137)+'.';const a6_0x40f43a={};a6_0x40f43a['id']=a6_0x5d878b(0x128),a6_0x40f43a['name']=a6_0x5d878b(0xfd)+a6_0x5d878b(0x133),a6_0x40f43a[a6_0x5d878b(0x102)+'n']='Waiting\x20fo'+a6_0x5d878b(0xd3)+a6_0x5d878b(0xfc),a6_0x40f43a[a6_0x5d878b(0x12c)]=null,a6_0x40f43a[a6_0x5d878b(0x126)]=0x1;const a6_0x144aaf={};a6_0x144aaf['id']=a6_0x5d878b(0x120),a6_0x144aaf['name']=a6_0x5d878b(0x131),a6_0x144aaf[a6_0x5d878b(0x102)+'n']='Ready\x20to\x20s'+'tart\x20analy'+'sis.',a6_0x144aaf[a6_0x5d878b(0x12c)]=null,a6_0x144aaf['order']=0x2;const a6_0x23cbe6={};a6_0x23cbe6['id']='PRE_PROCES'+'S',a6_0x23cbe6['descriptio'+'n']=a6_0x5d878b(0xfa)+a6_0x5d878b(0x14a),a6_0x23cbe6[a6_0x5d878b(0x100)]='Pre-proces'+a6_0x5d878b(0xe3),a6_0x23cbe6[a6_0x5d878b(0x12c)]=null,a6_0x23cbe6['order']=0x3;const a6_0x3a3fa7={};a6_0x3a3fa7['id']=a6_0x5d878b(0x135),a6_0x3a3fa7['descriptio'+'n']=a6_0x5d878b(0x10e)+a6_0x5d878b(0xe6)+a6_0x5d878b(0x107),a6_0x3a3fa7[a6_0x5d878b(0x100)]='Analysis',a6_0x3a3fa7[a6_0x5d878b(0x12c)]=0x0,a6_0x3a3fa7[a6_0x5d878b(0x126)]=0x4;const a6_0x2845db={};a6_0x2845db['id']=a6_0x5d878b(0xf4)+'SS',a6_0x2845db['descriptio'+'n']='Post-proce'+a6_0x5d878b(0x10c),a6_0x2845db[a6_0x5d878b(0x100)]=a6_0x5d878b(0xe5)+a6_0x5d878b(0x10f),a6_0x2845db[a6_0x5d878b(0x12c)]=null,a6_0x2845db[a6_0x5d878b(0x126)]=0x5;const a6_0x472bca={};a6_0x472bca['id']=a6_0x5d878b(0x142),a6_0x472bca[a6_0x5d878b(0x102)+'n']=a6_0x5d878b(0x116)+a6_0x5d878b(0x103)+'uccessfull'+'y.',a6_0x472bca['name']=a6_0x5d878b(0x127),a6_0x472bca[a6_0x5d878b(0x12c)]=0x64,a6_0x472bca[a6_0x5d878b(0x126)]=0x6;const a6_0x2c494c={};a6_0x2c494c[a6_0x5d878b(0x128)]=a6_0x40f43a,a6_0x2c494c['READY']=a6_0x144aaf,a6_0x2c494c[a6_0x5d878b(0xf6)+'S']=a6_0x23cbe6,a6_0x2c494c[a6_0x5d878b(0x135)]=a6_0x3a3fa7,a6_0x2c494c[a6_0x5d878b(0xf4)+'SS']=a6_0x2845db,a6_0x2c494c[a6_0x5d878b(0x142)]=a6_0x472bca;export const ANALYSIS_STAGES=a6_0x2c494c;
|