pmd-ruleset-visualizer 1.0.2 → 1.0.3

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/public/index.html CHANGED
@@ -12,6 +12,7 @@
12
12
  <label class="primary upload">↑ Open ruleset<input id="fileInput" type="file" accept=".xml,.ruleset,text/xml"></label>
13
13
  <button class="theme-btn" id="themeBtn" title="Toggle dark mode">☽</button>
14
14
  <button class="tour-btn" id="tourBtn" title="Guided tour">◉</button>
15
+ <button class="ai-toggle-btn" id="aiBtn" title="AI Sidekick" hidden>🤖</button>
15
16
  <button class="settings-trigger" id="settingsOpenBtn" title="Settings">⚙</button></div></header>
16
17
  <main class="shell">
17
18
  <section class="intro"><div><div class="eyebrow">STATIC ANALYSIS · SALESFORCE APEX</div><h1>Understand your ruleset<br><em>at a glance.</em></h1>
@@ -22,7 +23,7 @@
22
23
  <div style="display:flex;gap:8px;align-items:center;flex-wrap:wrap">
23
24
  <select id="presetSelect"><option value="">Load a preset…</option><option value="apex-security">Apex – Security</option><option value="apex-bestpractices">Apex – Best Practices</option><option value="apex-performance">Apex – Performance</option><option value="apex-all">Apex – All Categories</option></select>
24
25
  <small>XML · RULESET · MAX 2 MB</small></div></div>
25
- <textarea id="xmlInput" spellcheck="false" placeholder="<?xml version=&quot;1.0&quot;?>&#10;<ruleset name=&quot;my-ruleset&quot;> ... </ruleset>"></textarea>
26
+ <div id="xmlEditorContainer" class="xml-editor-container"></div>
26
27
  <div class="input-foot"><span id="inputStatus">Your XML is processed on this machine.</span><button class="primary" id="visualizeBtn">Visualize ruleset →</button></div>
27
28
  <div id="errorBox" class="error" hidden></div></section>
28
29
  <section id="results" hidden>
@@ -228,9 +229,66 @@
228
229
  <div class="eyebrow">APEX SOURCE</div>
229
230
  <div id="codeViewFileName" class="code-view-title" title=""></div>
230
231
  </div>
231
- <button id="codeViewClose" title="Close">×</button>
232
+ <div class="cv-head-actions">
233
+ <button id="cvFixLlmBtn" class="cv-fix-btn" hidden title="Ask the AI Sidekick to fix violations in this file">🤖 Fix using LLM</button>
234
+ <button id="codeViewClose" title="Close">×</button>
235
+ </div>
232
236
  </div>
233
237
  <div id="codeViewViolationList" class="code-view-violations"></div>
234
238
  <div id="monacoContainer" class="monaco-container"></div>
235
239
  </div>
240
+ <!-- ── AI Diff overlay ── -->
241
+ <div id="aiDiffOverlay" class="ai-diff-overlay" hidden>
242
+ <div class="ai-diff-header">
243
+ <div class="ai-diff-labels">
244
+ <span class="ai-diff-label-orig">◀ Original</span>
245
+ <span class="ai-diff-label-fix">Suggested Fix ▶</span>
246
+ </div>
247
+ <div class="ai-diff-actions">
248
+ <button id="aiCopyFixBtn" class="ghost" style="font-size:11px;padding:6px 12px">📋 Copy fix</button>
249
+ <button id="aiDiffCloseBtn" class="ghost" style="font-size:11px;padding:6px 12px">✕ Close diff</button>
250
+ </div>
251
+ </div>
252
+ <div id="aiDiffContainer" class="ai-diff-container"></div>
253
+ </div>
254
+ <!-- ── AI Sidekick slide-in panel ── -->
255
+ <div id="aiSidekick" class="ai-sidekick">
256
+ <div class="ai-resize-handle" id="aiResizeHandle"></div>
257
+ <div class="ai-header">
258
+ <span class="ai-header-title">🤖 AI Sidekick</span>
259
+ <button id="aiCloseBtn" class="ai-close" title="Close">✕</button>
260
+ </div>
261
+ <div class="ai-config">
262
+ <div class="ai-row">
263
+ <label class="ai-label">Provider</label>
264
+ <select id="aiProvider">
265
+ <option value="ollama">Ollama (local)</option>
266
+ <option value="claude">Claude (Anthropic)</option>
267
+ <option value="openai">OpenAI</option>
268
+ <option value="xai">xAI (Grok)</option>
269
+ <option value="gemini">Gemini</option>
270
+ </select>
271
+ </div>
272
+ <div class="ai-row" id="aiOllamaRow">
273
+ <label class="ai-label">Model</label>
274
+ <select id="aiModelSelect"><option value="">Loading models…</option></select>
275
+ </div>
276
+ <div class="ai-row" id="aiManualRow" hidden>
277
+ <label class="ai-label">Model</label>
278
+ <input id="aiModelInput" type="text" placeholder="e.g. claude-haiku-5-5" spellcheck="false">
279
+ </div>
280
+ <div class="ai-row" id="aiKeyRow" hidden>
281
+ <label class="ai-label">API Key</label>
282
+ <input id="aiApiKey" type="password" placeholder="Stored in localStorage only">
283
+ </div>
284
+ </div>
285
+ <div id="aiChatMessages" class="ai-chat-messages"></div>
286
+ <div class="ai-input-area">
287
+ <button id="aiAskFileBtn" class="ghost ai-file-btn">📄 Ask about current file</button>
288
+ <div class="ai-input-row">
289
+ <textarea id="aiInput" placeholder="Ask about your ruleset or violations…" rows="3"></textarea>
290
+ <button id="aiSendBtn" class="primary ai-send-btn">↑</button>
291
+ </div>
292
+ </div>
293
+ </div>
236
294
  <script src="/app.js"></script></body></html>
package/public/styles.css CHANGED
@@ -220,8 +220,13 @@ a#detailDocsLink{display:block;margin-top:6px;font-size:11px}
220
220
  .code-view-panel.open{right:0}
221
221
  .code-view-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--line);gap:12px;flex-shrink:0}
222
222
  .code-view-title{font:600 13px Manrope;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
223
+ .cv-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
223
224
  .code-view-head button{font-size:20px;line-height:1;background:none;border:none;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px;flex-shrink:0}
224
225
  .code-view-head button:hover{background:var(--line);color:var(--ink)}
226
+ .cv-fix-btn{font:600 11px "DM Sans"!important;font-size:11px!important;padding:6px 11px!important;background:#edf6f0!important;border:1px solid #b5d9c5!important;color:#2d6047!important;border-radius:7px!important;cursor:pointer;white-space:nowrap}
227
+ .cv-fix-btn:hover{background:#d8f0e4!important;border-color:#39a979!important;color:#1a4a33!important}
228
+ [data-theme="dark"] .cv-fix-btn{background:#1d2f26!important;border-color:#39a979!important;color:#7dc4a0!important}
229
+ [data-theme="dark"] .cv-fix-btn:hover{background:#253028!important;color:#a8d4bc!important}
225
230
  .code-view-violations{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0;flex-wrap:nowrap}
226
231
  .cv-vio{display:flex;align-items:center;gap:5px;padding:4px 8px;border-radius:6px;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:11px;white-space:nowrap;transition:background .15s}
227
232
  .cv-vio:hover{background:var(--line)}
@@ -308,3 +313,60 @@ a#detailDocsLink{display:block;margin-top:6px;font-size:11px}
308
313
  .tour-btn{width:32px;height:32px;border-radius:50%;background:none;border:1px solid var(--line);color:var(--muted);font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}
309
314
  .tour-btn:hover{border-color:var(--green);color:var(--green)}
310
315
  body.tour-active{overflow:hidden}
316
+
317
+ /* ── AI Sidekick ── */
318
+ .ai-toggle-btn{background:transparent;border:1px solid var(--line);border-radius:7px;width:34px;height:34px;display:grid;place-items:center;font-size:16px;cursor:pointer;color:var(--ink);flex-shrink:0}
319
+ .ai-toggle-btn:hover{background:var(--line)}
320
+ .ai-sidekick{position:fixed;top:0;right:0;height:100vh;width:390px;background:#fff;border-left:1px solid var(--line);box-shadow:-4px 0 30px #17231f18;z-index:1300;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
321
+ .ai-sidekick.open{transform:translateX(0)}
322
+ .ai-resize-handle{position:absolute;top:0;left:0;width:5px;height:100%;cursor:col-resize;z-index:1;transition:background .15s}
323
+ .ai-resize-handle:hover,.ai-resize-handle.dragging{background:var(--green)}
324
+ .ai-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);background:#f4f8f5;flex-shrink:0}
325
+ .ai-header-title{font:700 14px Manrope;color:var(--ink)}
326
+ .ai-close{border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--muted);line-height:1;padding:3px 6px;border-radius:5px}
327
+ .ai-close:hover{background:var(--line);color:var(--ink)}
328
+ .ai-config{padding:10px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;flex-shrink:0}
329
+ .ai-row{display:flex;flex-direction:column;gap:3px}
330
+ .ai-label{font:600 10px "DM Mono";letter-spacing:.6px;color:var(--muted)}
331
+ .ai-row select,.ai-row input{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px 9px;font:12px "DM Sans";background:#fafcfb;color:var(--ink);outline:none}
332
+ .ai-row select:focus,.ai-row input:focus{border-color:var(--green)}
333
+ .ai-chat-messages{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-height:0}
334
+ .ai-msg{padding:10px 13px;border-radius:10px;font-size:12px;line-height:1.65;white-space:pre-wrap;word-break:break-word;max-width:96%}
335
+ .ai-msg.user{background:#e8f5ee;color:#2d4a38;align-self:flex-end;border-bottom-right-radius:3px}
336
+ .ai-msg.assistant{background:#f2f4f3;color:#2c3c33;align-self:flex-start;border-bottom-left-radius:3px}
337
+ .ai-msg.error{background:#fff0ee;color:#a13f35;align-self:flex-start}
338
+ .ai-msg.thinking{color:#829087;font-style:italic;align-self:flex-start}
339
+ .ai-input-area{padding:10px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:7px;flex-shrink:0}
340
+ .ai-file-btn{width:100%;font-size:11px;padding:7px 10px;justify-content:center}
341
+ .ai-input-row{display:flex;gap:7px;align-items:flex-end}
342
+ .ai-input-row textarea{flex:1;border:1px solid var(--line);border-radius:7px;padding:9px;font:12px "DM Mono";resize:none;background:#fafcfb;color:var(--ink);outline:none;line-height:1.5}
343
+ .ai-input-row textarea:focus{border-color:var(--green)}
344
+ .ai-send-btn{padding:10px 14px;align-self:flex-end;flex-shrink:0}
345
+ /* dark mode */
346
+ [data-theme="dark"] .ai-sidekick{background:#111e18;border-color:#253028;box-shadow:-4px 0 30px #00000055}
347
+ [data-theme="dark"] .ai-header{background:#162019;border-color:#253028}
348
+ [data-theme="dark"] .ai-header-title{color:#c8d8d0}
349
+ [data-theme="dark"] .ai-config{border-color:#253028}
350
+ [data-theme="dark"] .ai-row select,[data-theme="dark"] .ai-row input{background:#0f1712;border-color:#253028;color:#c8d8d0}
351
+ [data-theme="dark"] .ai-msg.user{background:#1d2f26;color:#a8d4bc}
352
+ [data-theme="dark"] .ai-msg.assistant{background:#162019;color:#a8c4b8;border:1px solid #253028}
353
+ [data-theme="dark"] .ai-msg.error{background:#2e1a18;color:#d07068}
354
+ [data-theme="dark"] .ai-input-area{border-color:#253028}
355
+ [data-theme="dark"] .ai-input-row textarea{background:#0f1712;border-color:#253028;color:#c8d8d0}
356
+ [data-theme="dark"] .ai-toggle-btn{border-color:#253028;color:#c8d8d0}
357
+ [data-theme="dark"] .ai-close:hover{background:#253028}
358
+ /* diff button inside chat */
359
+ .ai-diff-btn{display:block;width:auto;margin-top:5px;font-size:11px;padding:5px 10px;border-radius:6px}
360
+ /* AI diff full-screen overlay */
361
+ .ai-diff-overlay{position:fixed;inset:0;z-index:1400;background:var(--paper);display:flex;flex-direction:column}
362
+ .ai-diff-overlay[hidden]{display:none}
363
+ .ai-diff-header{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;gap:12px}
364
+ .ai-diff-labels{display:flex;gap:24px;font:600 11px "DM Mono";letter-spacing:.5px}
365
+ .ai-diff-label-orig{color:#a64e45}
366
+ .ai-diff-label-fix{color:#39a979}
367
+ .ai-diff-actions{display:flex;gap:8px}
368
+ .ai-diff-container{flex:1;min-height:0}
369
+ [data-theme="dark"] .ai-diff-header{background:#111e18;border-color:#253028}
370
+ /* XML Monaco editor container (replaces the plain textarea in the Load panel) */
371
+ .xml-editor-container{width:100%;height:200px;margin:17px 0 12px;border:1px solid var(--line);border-radius:7px;overflow:hidden}
372
+ [data-theme="dark"] .xml-editor-container{border-color:#253028}
package/server.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x112f77=_0x3686;(function(_0x8169e1,_0x26fddf){const _0x4187ac={_0x76e367:0x1d5,_0x98b9fb:0x236,_0x367ca4:0x15d,_0x51a689:0x22c,_0x4837bf:0x16c,_0x116d82:0x152},_0x1c1258=_0x3686,_0x34261b=_0x8169e1();while(!![]){try{const _0x3fec37=parseInt(_0x1c1258(_0x4187ac._0x76e367))/0x1+parseInt(_0x1c1258(0x203))/0x2+-parseInt(_0x1c1258(_0x4187ac._0x98b9fb))/0x3*(parseInt(_0x1c1258(_0x4187ac._0x367ca4))/0x4)+-parseInt(_0x1c1258(0x1cd))/0x5*(-parseInt(_0x1c1258(_0x4187ac._0x51a689))/0x6)+-parseInt(_0x1c1258(_0x4187ac._0x4837bf))/0x7+parseInt(_0x1c1258(0x199))/0x8+-parseInt(_0x1c1258(_0x4187ac._0x116d82))/0x9;if(_0x3fec37===_0x26fddf)break;else _0x34261b['push'](_0x34261b['shift']());}catch(_0x102aaf){_0x34261b['push'](_0x34261b['shift']());}}}(_0x2d62,0xd4ee9));const express=require(_0x112f77(0x21a)),multer=require(_0x112f77(0x253)),path=require(_0x112f77(0x1f0)),{XMLParser,XMLValidator}=require('fast-xml-p'+_0x112f77(0x226)),{execFile}=require(_0x112f77(0x16e)+_0x112f77(0x24d)),{writeFileSync,readFileSync,unlinkSync,mkdtempSync,rmdirSync}=require('fs'),{tmpdir}=require('os'),ExcelJS=require(_0x112f77(0x165)),rawArgs=process[_0x112f77(0x1e4)][_0x112f77(0x190)](0x2);(rawArgs[_0x112f77(0x1af)]('--help')||rawArgs[_0x112f77(0x1af)]('-h'))&&(console['log'](_0x112f77(0x208)+_0x112f77(0x21c)+_0x112f77(0x1ea)+':\x20node\x20ser'+_0x112f77(0x156)+_0x112f77(0x1c2)+_0x112f77(0x1d3)+'p,\x20--port\x20'+'<port>\x20\x20\x20P'+_0x112f77(0x23a)+_0x112f77(0x1c3)+_0x112f77(0x225)+_0x112f77(0x26a)+'T)\x0a\x20\x20--ope'+_0x112f77(0x224)+'\x20\x20\x20\x20\x20Open\x20'+'the\x20app\x20in'+_0x112f77(0x266)+_0x112f77(0x247)+_0x112f77(0x1f8)+_0x112f77(0x1b2)+_0x112f77(0x1c8)+'\x20\x20\x20\x20\x20\x20\x20\x20Sh'+_0x112f77(0x268)+_0x112f77(0x1d8)+_0x112f77(0x1fd)),process[_0x112f77(0x25a)](0x0));function _0x3686(_0x25b46c,_0x2068d1){_0x25b46c=_0x25b46c-0x14f;const _0x2d6295=_0x2d62();let _0x368636=_0x2d6295[_0x25b46c];if(_0x3686['eoCorM']===undefined){var _0x161040=function(_0x3b0b76){const _0x5f1d93='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39c1c4='',_0x3dd399='';for(let _0x5cf546=0x0,_0x5a8569,_0x104dfa,_0x2d9457=0x0;_0x104dfa=_0x3b0b76['charAt'](_0x2d9457++);~_0x104dfa&&(_0x5a8569=_0x5cf546%0x4?_0x5a8569*0x40+_0x104dfa:_0x104dfa,_0x5cf546++%0x4)?_0x39c1c4+=String['fromCharCode'](0xff&_0x5a8569>>(-0x2*_0x5cf546&0x6)):0x0){_0x104dfa=_0x5f1d93['indexOf'](_0x104dfa);}for(let _0x562618=0x0,_0x32ed52=_0x39c1c4['length'];_0x562618<_0x32ed52;_0x562618++){_0x3dd399+='%'+('00'+_0x39c1c4['charCodeAt'](_0x562618)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3dd399);};_0x3686['XboSHZ']=_0x161040,_0x3686['WgvZJH']={},_0x3686['eoCorM']=!![];}const _0x5c8a76=_0x2d6295[0x0];_0x3686['udIUKE']!==_0x5c8a76&&(_0x3686['WgvZJH']={},_0x3686['udIUKE']=_0x5c8a76);const _0x2ed578=_0x3686['WgvZJH'][_0x25b46c];return _0x2ed578===undefined?(_0x368636=_0x3686['XboSHZ'](_0x368636),_0x3686['WgvZJH'][_0x25b46c]=_0x368636):_0x368636=_0x2ed578,_0x368636;}let PORT=Number(process.env.PORT)||0xbb8;const portIdx=rawArgs[_0x112f77(0x1ae)](_0x47a1b4=>_0x47a1b4==='-p'||_0x47a1b4==='--port');if(portIdx!==-0x1&&rawArgs[portIdx+0x1]){const p=Number(rawArgs[portIdx+0x1]);if(p>0x0)PORT=p;}const shouldOpen=rawArgs[_0x112f77(0x1af)](_0x112f77(0x1aa)),app=express(),upload=multer({'storage':multer[_0x112f77(0x24a)+'age'](),'limits':{'fileSize':0x2*0x400*0x400}});app[_0x112f77(0x17d)](express['json']({'limit':_0x112f77(0x265)})),app['use'](express[_0x112f77(0x260)](path[_0x112f77(0x187)](__dirname,_0x112f77(0x237))));function _0x2d62(){const _0x324f27=['lMn4Ea','zxHJzwXQCW','Dwvivwy','zgfYD2LU','BwvZC2fNzq','lMfWzxG','zxi6ia','whD5AxC','nZuXnteWovzOuezmvG','lMnZ','y2HPBgrFChjVyW','EYjMAwXLCYi6wW','AgvPz2H0','lNHTBa','ANnVBG','BxnN','ls1TAw5PBxvTlq','ChnyEvC','BxHWCw4','yxKGyMuGCMvHza','BwLU','DMfSAwrHDgu','zxHLyW','CM91BMq','ywrKv29YA3nOzq','DxnL','ywrKsw1Hz2u','D3jPDgu','y29S','vMLVBgf0Aw9UCW','EgXZEa','z2v0q2vSBa','oYbMAwXLBMfTzq','qf9TzxnZywDL','ls1UBY1WCM9NCG','AM9PBG','z3rIA0i','zMLSBa','vxPswuy','zKviANy','zMn4sLC','ls1UBY1MywLSlq','CKnZrw0','DgvZDa','C2XPy2u','BgvUz3rO','DMfSDwu','uKP2zey','zxf1AxjLzc4','rMrIB2G','qte6ste','zxH0BMfTzq','lNbOCa','mtm1nZC2odHRvK1xr0S','AM1xBKS','Cgf0DgvYBG','uhfQweO','C3rHDhvZ','CNvSzxnLDc54Bq','BfbYAu4','qf92ywX1zq','ywXOB3n0oG','thPgt0G','Dg9ju09tDhjPBG','C2HLzxq','lNj1BgvZzxq','l2fWAs9WyxjZzq','surSrhK','y0Xcq2u','DcbwAxn1ywXPEG','ls1VCgvU','svr0sKW','z1vtt0G','Defit2i','zMLUzeLUzgv4','Aw5JBhvKzxm','qvzHvvq','ls1MB3jJzs1Syq','CNrPBMCkicaTAa','DuzdyMe','DwLYzwqU','ue1eifj1BgvZzq','i3rLEhq','zwqGuNvSzxm','ue1eihbYB2nLCW','Bg9N','C3rHCNq','CgfYC2uGue1eia','zuDcD3a','lMnWCa','yM9KEq','zM9UDa','v29YA2jVB2S','uhjPB3jPDhKG','DgLVBNnDcGPpCa','DgvUig9UicHKzq','zMLSzq','l2fWAs9LEhbVCG','khvUBMfTzwqP','zvjjA0q','lcaTlwHLBhaGia','lcbJB2X1Bw4G','lMPZCa','AcbPCYbYzxf1Aq','B3bLBG','nte3odGWnvvnuvjPCG','CNvSzq','y3jLyxrVCG','rhviDKC','tgfKu1K','BgLUzq','DgLVBNm6cIaGlq','sw52ywXPzcbytq','mtu0mJCZnuHRs0L0vW','yxr0ywnOBwvUDa','Cg5N','BhaGBwvZC2fNzq','EgrNlw9Wzw4','zw9qzfe','icHSAw5Lia','z2v0uM93','qNKGuNvSzq','y2HLy2S','lNrYAwDNzxi','Dc14Bhn4','D2LUmZi','zuXlEw8','lNn3Awz0','yxjNDG','q2HHCNrZ','CePOEM4','ALfdwuC','DfLxvLi','zM9YrwfJAa','EMvYcGPvC2fNzq','lNrZ','rKzgrKzgrKy','tdOG','te9x','ihj1BgvZzxq6ia','Cgf0Aa','vw5HyMXLihrVia','lNb5','uenlDuq','u3bms2q','y291BNq','CgXHDgzVCM0','zgvZy3jPChrPBW','igfMDgvYihn0yq','ruvtu2K','B24TzxjYB3i','ue1eigjPBMfYEq','Cg9W','cIaG','lMDV','C2v0sgvHzgvY','DwXLC2v0','zgvZyW','CYbMywLSzwqU','oduXndG4yuXJChbN','C29SAwq','BwfW','l2fWAs9YzwfKlq','Bwf0y2HbBgW','cLbnrcbsDwXLCW','Dw9TuMu','tKXttMO','zMLUza','AxnbCNjHEq','BhrZlq','EhbPBge','senzq24','t3rOzxi','rKyZowe5nZK','DwnRrfK','Bwf0y2G','vg9WifzPB2XHDa','zxjY','qf9Yzwy','q29UDgvUDc1uEq','Bu1izNK','DfP6CMG','zxHWCMvZCW','ChjPB3jPDhK','zxqGvMLZDwfSAq','whjzEK4','A3HLy3q','we1migLZihjLCq','yxbWBgLJyxrPBW','tgLUzq','uhjPB3jPDhK','qf9Uyw1L','BIaGicaGicaGia','zMf1Bhq6idmWma','yxjZzxi','CMvM','lMPZ','lMnSCW','yw5Kic5YDwXLCW','DxrMoa','nNfrEKDdvW','lNHSC3GI','y3jLyxrLza','ChvZAa','EhnpEgC','DhjPBq','lNbS','lMPHDMe','tuD3vfC','C3rYAw5N','mti1nZGXCLHpwefH','ChvIBgLJ','t25SEsaUEg1Sia','zLPlsu8','B3j0ihrVigXPCW','psjWBwqTCMvZDq','zNjVBuvUDhjPzq','lNnJywXH','Cg9ZDa','rMTsrK4','zwnVBa','DNbywg0','ywrZAgvLDg1SlG','sxbjELC','sgz3BgG','sLnptIbVDxrWDq','oLTDFq','BhqGyNjVD3nLCG','rxrqAuO','z21mAxK','BwvTB3j5u3rVCG','wuT6B1u','B0fHsey','zxnZ','u291CMnLihbHDa','D3jPDguGDgvTCa','z3jVDxa','Aw5NrxjYB3jZiG','CNfhCLG','BxvSDgvY','CM1MBeO','qNKGuhjPB3jPDa','B2jQzwn0','y29SDw1UCW','Dg9mB3DLCKnHCW','ANDQCe4','zxHPDa','zxvHCMe','igj5ifbYAw9YAq','CgfYC2u','EvbTDfO','vxzfCum','C3rHDgLJ','ls1UBY1JywnOzq','CgfYC2uGwe1m','vKrJCuW','rKzLogy1zwu','ng1I','ihrOzsbKzwzHDq','Dw1LBNqUC3bYzq','B3CGDgHPCYbOzq','u3nRyuW','mcWGB3iGjfbpuG','AgfZ','zMLSzvbHDgGGAq','lNz1zq','mtm4ntGZmdHWAgLpq2G','CYbYzxf1AxjLza','lMnJ','rw5KienVBhvTBG','DMvYlMPZifTVCa','vw5Zzxq','Ahr0CdOVl2XVyW','Eg1S','A2v5CW','tM8Gphj1BgvZzq','thHztLi','mte2CwX6t1fI','AgvHzgvYC1nLBG','C3bSAxq','CMvKlG','CMvWBgfJzq','q291BNq','yvvvzwC'];_0x2d62=function(){return _0x324f27;};return _0x2d62();}const parser=new XMLParser({'ignoreAttributes':![],'attributeNamePrefix':'@_','textNodeName':_0x112f77(0x1b6),'parseTagValue':![],'trimValues':!![]}),arr=_0x1af25e=>_0x1af25e==null?[]:Array[_0x112f77(0x20c)](_0x1af25e)?_0x1af25e:[_0x1af25e],txt=_0x5f261c=>_0x5f261c==null?'':typeof _0x5f261c===_0x112f77(0x235)?_0x5f261c:String(_0x5f261c['#text']??'');function sections(_0xd7eb3d){const _0x14d4cf={_0x91b15b:0x213,_0x2730fc:0x231,_0x37bda6:0x161,_0x5b0319:0x18f},_0x3baacf=_0x112f77;let _0x4c1270='';const _0x534545=[];for(const _0xba960 of _0xd7eb3d['split'](/\r?\n/)){const _0x598cdd=_0xba960[_0x3baacf(_0x14d4cf._0x91b15b)](/^\s*<!--\s*([A-Z][A-Z0-9 _/&-]{1,48})\s*-->\s*$/);if(_0x598cdd)_0x4c1270=_0x598cdd[0x1][_0x3baacf(_0x14d4cf._0x2730fc)]()[_0x3baacf(_0x14d4cf._0x37bda6)](/\s+/g,'\x20');if(/<rule\b/i[_0x3baacf(0x18f)](_0xba960)&&!/<!--/[_0x3baacf(_0x14d4cf._0x5b0319)](_0xba960))_0x534545['push'](_0x4c1270);}return _0x534545;}function comments(_0x4bbed8){const _0x51c8dc={_0x545ea3:0x23c,_0x50235b:0x207,_0x28eac7:0x227,_0x19f466:0x1fc},_0x221028=_0x112f77,_0x43e49a=[];for(const _0x37b8bc of _0x4bbed8[_0x221028(0x213)](/<!--[\s\S]*?-->/g)||[]){for(const _0x3e84dc of _0x37b8bc['matchAll'](/<rule\b([^>]*)\/?>/gi)){const _0x134c1b=Object[_0x221028(_0x51c8dc._0x545ea3)+'s']([..._0x3e84dc[0x1][_0x221028(_0x51c8dc._0x50235b)](/([\w:-]+)\s*=\s*"([^"]*)"/g)]['map'](_0x2dd9e0=>[_0x2dd9e0[0x1],_0x2dd9e0[0x2]]));if(_0x134c1b[_0x221028(0x227)])_0x43e49a['push']({'ref':_0x134c1b[_0x221028(0x227)],'name':_0x134c1b[_0x221028(_0x51c8dc._0x28eac7)][_0x221028(0x15f)]('/')[_0x221028(_0x51c8dc._0x19f466)]()});}}return _0x43e49a;}function groupOf(_0x98136c,_0x209797){const _0x49298d={_0x1dbf52:0x161,_0x15579f:0x210},_0x3aa8d2=_0x112f77,_0x5ad009={'fZKIO':function(_0x3f4ff6,_0x495774){return _0x3f4ff6(_0x495774);}};if(_0x209797)return _0x209797;const _0x21de25=_0x5ad009[_0x3aa8d2(0x239)](String,_0x98136c)[_0x3aa8d2(0x213)](/category\/[^/]+\/([^/.]+)\.xml/i);return _0x21de25?_0x21de25[0x1][_0x3aa8d2(0x161)](/[-_]/g,'\x20')[_0x3aa8d2(_0x49298d._0x1dbf52)](/\b\w/g,_0x3ca9b9=>_0x3ca9b9['toUpperCas'+'e']()):_0x3aa8d2(_0x49298d._0x15579f);}function parse(_0x1b992c){const _0x556f11={_0x12e5ed:0x18b,_0x5047aa:0x215,_0x17e9e7:0x1d4,_0xa45847:0x1f1,_0x50fb88:0x1db,_0x44ed2d:0x1c9,_0x1f6dd8:0x20b,_0x18b331:0x1a8,_0x2a7ebd:0x1ce,_0x239db3:0x1f7,_0x55a476:0x191,_0x29a444:0x15a},_0x53db3b={_0x223de3:0x166,_0x82d101:0x172,_0x1b9c99:0x168,_0x3722b0:0x250,_0x4926f4:0x1b0,_0xbf5369:0x1c1,_0x9b7644:0x163},_0x36baf5={_0x5351d6:0x15f,_0x707338:0x24b,_0x51be3e:0x234},_0x49fe6c=_0x112f77,_0x5ce058={'AVaUT':function(_0x589e8f,_0x3cf238){return _0x589e8f+_0x3cf238;},'MyTcH':_0x49fe6c(0x185),'YKzoU':function(_0x20dc34,_0x38f3f7){return _0x20dc34(_0x38f3f7);},'MGwTW':function(_0x4f182a,_0x1493c3){return _0x4f182a(_0x1493c3);},'jmWnK':function(_0x296256,_0x3911e4){return _0x296256===_0x3911e4;},'FkRFN':_0x49fe6c(_0x556f11._0x12e5ed),'aUUeg':_0x49fe6c(0x157),'cLBCe':_0x49fe6c(0x256),'nPicV':function(_0x4e027d,_0x4f2521){return _0x4e027d(_0x4f2521);},'EiBbx':'@_name'},_0x47e90d=XMLValidator[_0x49fe6c(0x179)](_0x1b992c);if(_0x47e90d!==!![]){const _0x3a0acb=_0x47e90d[_0x49fe6c(_0x556f11._0x5047aa)]||{};throw new Error(_0x49fe6c(_0x556f11._0x17e9e7)+_0x49fe6c(0x1ed)+(_0x3a0acb[_0x49fe6c(0x173)]||_0x49fe6c(_0x556f11._0xa45847)+_0x49fe6c(0x262))+_0x49fe6c(_0x556f11._0x50fb88)+(_0x3a0acb['line']||'?')+_0x49fe6c(_0x556f11._0x44ed2d)+(_0x3a0acb['col']||'?')+')');}const _0x34dc70=parser[_0x49fe6c(0x25d)](_0x1b992c),_0x46768d=Object[_0x49fe6c(0x15a)](_0x34dc70)[_0x49fe6c(_0x556f11._0x1f6dd8)](_0x12cee7=>_0x12cee7[_0x49fe6c(0x258)+'e']()[_0x49fe6c(0x1af)]('ruleset')),_0x58d944=_0x46768d?_0x34dc70[_0x46768d]:_0x34dc70['ruleset'];if(!_0x58d944||typeof _0x58d944!==_0x5ce058[_0x49fe6c(_0x556f11._0x18b331)])throw new Error(_0x49fe6c(0x15b)+'t>\x20root\x20el'+'ement\x20foun'+'d.');const _0x2eabff=sections(_0x1b992c),_0xcb696f=_0x5ce058['nPicV'](arr,_0x58d944[_0x49fe6c(_0x556f11._0x2a7ebd)])['map']((_0x2738f5,_0x176d75)=>{const _0x2876bf=_0x49fe6c,_0x244d07=_0x2738f5[_0x2876bf(0x216)]||'';return{'id':_0x176d75+'-'+(_0x244d07[_0x2876bf(_0x36baf5._0x5351d6)]('/')[_0x2876bf(0x1fc)]()||'rule'),'name':_0x244d07[_0x2876bf(0x15f)]('/')['filter'](Boolean)[_0x2876bf(0x1fc)]()||'Rule\x20'+_0x5ce058['AVaUT'](_0x176d75,0x1),'ref':_0x244d07,'group':groupOf(_0x244d07,_0x2eabff[_0x176d75]||''),'message':_0x2738f5[_0x5ce058['MyTcH']]||'','priority':_0x5ce058[_0x2876bf(_0x36baf5._0x707338)](Number,_0x5ce058[_0x2876bf(_0x36baf5._0x51be3e)](txt,_0x2738f5[_0x2876bf(0x21b)]))||null,'properties':_0x5ce058['YKzoU'](arr,_0x2738f5['properties']?.['property'])[_0x2876bf(0x205)](_0x276194=>({'name':_0x276194[_0x2876bf(0x223)]||_0x2876bf(0x1c6),'value':_0x276194[_0x2876bf(0x1a0)]??txt(_0x276194)}))};}),_0x1676e3={},_0x5ef9ab={};return _0xcb696f['forEach'](_0xbe8459=>{const _0x5ba491=_0x49fe6c;if(_0x5ce058[_0x5ba491(0x19a)](_0x5ce058[_0x5ba491(0x23f)],_0x5ba491(_0x53db3b._0x223de3)))_0x505fe3[_0x5ba491(0x19d)](0x190)[_0x5ba491(_0x53db3b._0x82d101)]({'error':_0x569792[_0x5ba491(_0x53db3b._0x1b9c99)]});else{_0x1676e3[_0xbe8459[_0x5ba491(_0x53db3b._0x3722b0)]]=_0x5ce058[_0x5ba491(_0x53db3b._0x4926f4)](_0x1676e3[_0xbe8459[_0x5ba491(_0x53db3b._0x3722b0)]]||0x0,0x1);const _0x5ac83c=_0xbe8459['priority']?_0x5ba491(_0x53db3b._0xbf5369)+_0xbe8459['priority']:_0x5ce058[_0x5ba491(_0x53db3b._0x9b7644)];_0x5ef9ab[_0x5ac83c]=(_0x5ef9ab[_0x5ac83c]||0x0)+0x1;}}),{'name':_0x58d944[_0x5ce058['EiBbx']]||'Untitled\x20r'+_0x49fe6c(0x200),'description':_0x5ce058['YKzoU'](txt,_0x58d944[_0x49fe6c(_0x556f11._0x239db3)+'n']),'rules':_0xcb696f,'commented':_0x5ce058[_0x49fe6c(0x234)](comments,_0x1b992c),'raw':_0x1b992c,'summary':{'active':_0xcb696f['length'],'commented':comments(_0x1b992c)[_0x49fe6c(_0x556f11._0x55a476)],'groups':Object[_0x49fe6c(_0x556f11._0x29a444)](_0x1676e3)[_0x49fe6c(_0x556f11._0x55a476)],'groupsByCount':_0x1676e3,'priorities':_0x5ef9ab}};}app[_0x112f77(0x23e)](_0x112f77(0x1a6),(_0x52bd91,_0x2c73eb)=>{const _0x5bb4c9={_0x5a96cf:0x21f,_0xf0088a:0x172,_0x353da2:0x244,_0x4bf514:0x22f,_0x566126:0x168},_0x53b6b0=_0x112f77,_0x521cd5={'oAaHF':function(_0x76487,_0x422259){return _0x76487(_0x422259);},'lPriN':_0x53b6b0(0x176)};try{const _0x417256=_0x52bd91[_0x53b6b0(0x1be)]?.[_0x53b6b0(0x159)];if(!_0x417256?.[_0x53b6b0(0x231)]())throw new Error(_0x53b6b0(_0x5bb4c9._0x5a96cf)+_0x53b6b0(0x1b4));_0x2c73eb[_0x53b6b0(_0x5bb4c9._0xf0088a)](_0x521cd5[_0x53b6b0(0x24c)](parse,_0x417256));}catch(_0x47e2e1){if(_0x521cd5[_0x53b6b0(0x19f)]===_0x53b6b0(_0x5bb4c9._0x353da2)){const _0x1084d0=_0x46a960[_0x53b6b0(0x213)](/^\s*<!--\s*([A-Z][A-Z0-9 _/&-]{1,48})\s*-->\s*$/);if(_0x1084d0)_0x5f4498=_0x1084d0[0x1][_0x53b6b0(0x231)]()[_0x53b6b0(0x161)](/\s+/g,'\x20');if(/<rule\b/i[_0x53b6b0(0x18f)](_0x5c3a56)&&!/<!--/['test'](_0x3c981e))_0x11183e[_0x53b6b0(_0x5bb4c9._0x4bf514)](_0x1609cc);}else _0x2c73eb[_0x53b6b0(0x19d)](0x190)['json']({'error':_0x47e2e1[_0x53b6b0(_0x5bb4c9._0x566126)]});}}),app[_0x112f77(0x23e)]('/api/run-p'+'md',(_0x53d441,_0x109599)=>{const _0x338034={_0x448407:0x167,_0x3901be:0x1e1,_0x4741ee:0x18d,_0x2f3df7:0x18d,_0x457303:0x1fa,_0x2bee1e:0x1ee,_0x3333ca:0x1be,_0x2f3f79:0x19d,_0x1ed739:0x172,_0x19d008:0x1fb,_0x86fd89:0x194,_0x583eda:0x19d,_0x370f34:0x24e,_0x72f6ac:0x187,_0x202898:0x1a1,_0x59a6b7:0x16a,_0x2072f3:0x1f6,_0x4be7ba:0x1e8,_0x4be545:0x1a2,_0x29daa5:0x16e,_0x29ecb9:0x1f4,_0x2c8e0a:0x219,_0x90ed64:0x168,_0x3e335f:0x261,_0x15527e:0x18c,_0x514795:0x25e,_0x27448d:0x174,_0x15ae24:0x241},_0x3f3a25={_0x34ac7f:0x19d,_0x3bf8b1:0x202,_0x18e240:0x25d,_0x42b1de:0x246,_0x2081db:0x172,_0x560166:0x1bb,_0x270273:0x245},_0xdf15a6=_0x112f77,_0x30ade4={'tYWVR':function(_0x4379cb,_0x510751){return _0x4379cb===_0x510751;},'DuHvG':_0xdf15a6(_0x338034._0x448407),'uckDY':_0xdf15a6(_0x338034._0x3901be),'eRIkD':_0xdf15a6(0x1ba),'LzFOH':function(_0x37829c,_0x52a076){return _0x37829c(_0x52a076);},'bRGGH':function(_0x69bae0,_0x78e06f){return _0x69bae0(_0x78e06f);},'sZmXz':function(_0x5074d3,_0x26bef5){return _0x5074d3!==_0x26bef5;},'gmLiy':'lMqlY','xsOxg':function(_0x28f278,_0x2a5375){return _0x28f278(_0x2a5375);},'HCYCn':'pmdvis-','jwjpN':_0xdf15a6(0x22b),'SpLKd':function(_0x5800da,_0x80f86){return _0x5800da+_0x80f86;},'tZzrh':'Could\x20not\x20'+_0xdf15a6(0x24f)+_0xdf15a6(0x1ef),'ZIvwV':_0xdf15a6(_0x338034._0x4741ee)+'on-violati'+'on','eGBwp':_0xdf15a6(_0x338034._0x2f3df7)+_0xdf15a6(_0x338034._0x457303),'fcxJW':_0xdf15a6(0x1b1)+'nguage','yPmtZ':function(_0x3a609d,_0x5e1036){return _0x3a609d!==_0x5e1036;},'LadSY':_0xdf15a6(_0x338034._0x2bee1e),'vpXXm':function(_0x1fe9a1,_0x407830,_0x24b746,_0x248c7d,_0x121ce8){return _0x1fe9a1(_0x407830,_0x24b746,_0x248c7d,_0x121ce8);},'eoPdQ':function(_0x2dd619,_0x22c9b6){return _0x2dd619*_0x22c9b6;}},{xml:_0x63cd7a,pmdBin:_0x1d1b40,sourcePath:_0x1b282d,language:_0x5b51e5,minPriority:_0x712b2b}=_0x53d441[_0xdf15a6(_0x338034._0x3333ca)]||{};if(!_0x63cd7a)return _0x109599[_0xdf15a6(_0x338034._0x2f3f79)](0x190)[_0xdf15a6(0x172)]({'error':'XML\x20is\x20req'+_0xdf15a6(0x1b4)});if(!_0x1d1b40)return _0x109599['status'](0x190)[_0xdf15a6(_0x338034._0x1ed739)]({'error':_0xdf15a6(_0x338034._0x19d008)+'\x20path\x20is\x20r'+_0xdf15a6(_0x338034._0x86fd89)});if(!_0x1b282d)return _0x109599[_0xdf15a6(_0x338034._0x583eda)](0x190)[_0xdf15a6(0x172)]({'error':_0xdf15a6(_0x338034._0x370f34)+_0xdf15a6(0x1cb)+_0xdf15a6(0x160)});let _0x163612,_0x294be5;try{if('lMqlY'===_0x30ade4[_0xdf15a6(0x249)])_0x163612=_0x30ade4[_0xdf15a6(0x230)](mkdtempSync,path[_0xdf15a6(_0x338034._0x72f6ac)](tmpdir(),_0x30ade4[_0xdf15a6(0x20f)])),_0x294be5=path[_0xdf15a6(0x187)](_0x163612,_0xdf15a6(0x19e)+'l'),writeFileSync(_0x294be5,_0x63cd7a,_0x30ade4[_0xdf15a6(0x259)]);else{const _0x2dd016='http://loc'+_0xdf15a6(_0x338034._0x202898)+_0x50fd5d;_0x3ffba8['log']('PMD\x20Rulese'+'t\x20Visualiz'+_0xdf15a6(_0x338034._0x59a6b7)+_0x2dd016);if(_0x24cce2){const _0x32c683=_0x30ade4['tYWVR'](_0x541411[_0xdf15a6(_0x338034._0x2072f3)],_0x30ade4[_0xdf15a6(0x1d0)])?_0xdf15a6(0x1cc):_0x30ade4[_0xdf15a6(_0x338034._0x4be7ba)](_0x2dd05b[_0xdf15a6(0x1f6)],_0x30ade4[_0xdf15a6(0x212)])?_0x30ade4[_0xdf15a6(0x1c7)]:_0xdf15a6(0x1d9);_0x30ade4[_0xdf15a6(_0x338034._0x4be545)](_0xb3658,_0xdf15a6(_0x338034._0x29daa5)+'ess')[_0xdf15a6(0x17a)](_0x32c683+'\x20'+_0x2dd016);}}}catch(_0x580157){return _0x109599[_0xdf15a6(0x19d)](0x1f4)[_0xdf15a6(_0x338034._0x1ed739)]({'error':_0x30ade4[_0xdf15a6(_0x338034._0x29ecb9)](_0x30ade4[_0xdf15a6(_0x338034._0x2c8e0a)],_0x580157[_0xdf15a6(_0x338034._0x90ed64)])});}const _0x2f6bd5=[_0xdf15a6(0x1de),'-d',_0x1b282d,'-R',_0x294be5,'-f',_0xdf15a6(_0x338034._0x1ed739),_0xdf15a6(_0x338034._0x3e335f),_0x30ade4['ZIvwV'],_0x30ade4[_0xdf15a6(0x1bc)],_0xdf15a6(0x186)+_0xdf15a6(0x24d)];if(_0x5b51e5)_0x2f6bd5[_0xdf15a6(0x22f)](_0x30ade4[_0xdf15a6(_0x338034._0x15527e)],_0x5b51e5);if(_0x712b2b&&_0x30ade4[_0xdf15a6(_0x338034._0x514795)](_0x712b2b,_0x30ade4[_0xdf15a6(0x1d1)]))_0x2f6bd5['push'](_0xdf15a6(_0x338034._0x27448d)+_0xdf15a6(0x21b),_0x712b2b);_0x30ade4[_0xdf15a6(_0x338034._0x15ae24)](execFile,_0x1d1b40,_0x2f6bd5,{'timeout':0x1d4c0,'maxBuffer':_0x30ade4[_0xdf15a6(0x1da)](0x14,0x400)*0x400},(_0x54ee5b,_0x2f8523)=>{const _0x24f010=_0xdf15a6;try{_0x30ade4['bRGGH'](unlinkSync,_0x294be5);}catch{}try{_0x30ade4[_0x24f010(0x1a2)](rmdirSync,_0x163612);}catch{}if(_0x54ee5b&&_0x30ade4['sZmXz'](_0x54ee5b['code'],0x4)&&!_0x2f8523)return _0x109599[_0x24f010(_0x3f3a25._0x34ac7f)](0x190)[_0x24f010(0x172)]({'error':_0x54ee5b[_0x24f010(0x168)]||_0x24f010(0x1b8)+_0x24f010(_0x3f3a25._0x3bf8b1)});try{const _0x7c3f36=JSON[_0x24f010(_0x3f3a25._0x18e240)](_0x2f8523||_0x24f010(0x16f)+'],\x22process'+_0x24f010(0x251)+_0x24f010(_0x3f3a25._0x42b1de));_0x109599[_0x24f010(0x172)](_0x7c3f36);}catch{_0x109599[_0x24f010(0x19d)](0x190)[_0x24f010(_0x3f3a25._0x2081db)]({'error':'Could\x20not\x20'+_0x24f010(_0x3f3a25._0x560166)+_0x24f010(_0x3f3a25._0x270273)+'t.','raw':(_0x2f8523||'')[_0x24f010(0x190)](0x0,0x320)});}});});const ALLOWED_READ_EXTS=new Set([_0x112f77(0x171),_0x112f77(0x1a5),_0x112f77(0x229),_0x112f77(0x1df),_0x112f77(0x233),_0x112f77(0x228),_0x112f77(0x1eb),'.jsx','.tsx',_0x112f77(0x1f2),_0x112f77(0x1fe),_0x112f77(0x16d),_0x112f77(0x1bd),_0x112f77(0x154),_0x112f77(0x164),'.c','.h',_0x112f77(0x1e3),'.kt','.rb',_0x112f77(0x198),_0x112f77(0x23d),'.groovy',_0x112f77(0x232),_0x112f77(0x169),'.html',_0x112f77(0x1ca),_0x112f77(0x151)]);app['post'](_0x112f77(0x206)+_0x112f77(0x1c4),(_0x1d93b2,_0x1c6362)=>{const _0x1f9c05={_0xca595a:0x1be,_0x28d4a1:0x14f,_0x4ad9fd:0x19d,_0x1ab8aa:0x22a,_0x4033bf:0x177,_0x15d09a:0x172,_0x5dde2b:0x168},_0x365a67=_0x112f77,_0x2d258a={'uFCba':'filePath\x20i'+'s\x20required'+'.','rCsEm':function(_0x34059a,_0x42536e){return _0x34059a===_0x42536e;}},{filePath:_0x4dcd05}=_0x1d93b2[_0x365a67(_0x1f9c05._0xca595a)]||{};if(!_0x4dcd05)return _0x1c6362[_0x365a67(0x19d)](0x190)['json']({'error':_0x2d258a[_0x365a67(0x1b3)]});if(_0x2d258a[_0x365a67(0x18e)](ALLOWED_READ_EXTS[_0x365a67(_0x1f9c05._0x28d4a1)](path['extname'](_0x4dcd05)[_0x365a67(0x258)+'e']()),![]))return _0x1c6362[_0x365a67(_0x1f9c05._0x4ad9fd)](0x190)[_0x365a67(0x172)]({'error':_0x365a67(0x238)+_0x365a67(_0x1f9c05._0x1ab8aa)+'et\x20files\x20m'+_0x365a67(_0x1f9c05._0x4033bf)+'.'});try{const _0x30688a=readFileSync(_0x4dcd05,'utf8');_0x1c6362[_0x365a67(_0x1f9c05._0x15d09a)]({'content':_0x30688a});}catch(_0x3c0f7c){_0x1c6362['status'](0x190)['json']({'error':_0x3c0f7c[_0x365a67(_0x1f9c05._0x5dde2b)]});}});const GREEN=_0x112f77(0x211),GREEN_ZEBRA=_0x112f77(0x264),WHITE=_0x112f77(0x1ec),HEADER_FONT={'bold':!![],'color':{'argb':WHITE}},HEADER_FILL={'type':_0x112f77(0x19b),'pattern':_0x112f77(0x204),'fgColor':{'argb':GREEN}},ZEBRA_FILL={'type':_0x112f77(0x19b),'pattern':_0x112f77(0x204),'fgColor':{'argb':GREEN_ZEBRA}};function addZebraRows(_0x563b79,_0x395b12){const _0x3c2b75={_0x346516:0x218},_0x184af3=_0x112f77,_0xf0f0d4={'mMHfy':function(_0x462aa4,_0x2be016){return _0x462aa4===_0x2be016;},'kxect':function(_0x40b6f5,_0x5199fc){return _0x40b6f5%_0x5199fc;}};_0x395b12[_0x184af3(0x1e9)]((_0x1d69ba,_0xd53692)=>{const _0x3658bf=_0x184af3,_0x3d2a4a=_0x563b79['addRow'](_0x1d69ba);if(_0xf0f0d4[_0x3658bf(_0x3c2b75._0x346516)](_0xf0f0d4[_0x3658bf(0x21e)](_0xd53692,0x2),0x0))_0x3d2a4a[_0x3658bf(0x189)]=ZEBRA_FILL;});}function scaleToFit(_0xb7617b,_0x308197,_0x3615d5,_0xe4d1f){const _0x1c2d46={_0x1933c7:0x18a},_0x4ae0a7=_0x112f77,_0xd031e9={'eplpj':function(_0x16e1a2,_0x38acde){return _0x16e1a2/_0x38acde;},'UzRYF':function(_0x39171b,_0x23122c){return _0x39171b*_0x23122c;}};if(!_0xb7617b||!_0x308197)return{'width':_0x3615d5,'height':_0xe4d1f};const _0x4e597c=Math[_0x4ae0a7(0x178)](_0x3615d5/_0xb7617b,_0xd031e9['eplpj'](_0xe4d1f,_0x308197),0x1);return{'width':Math[_0x4ae0a7(0x17b)](_0xd031e9[_0x4ae0a7(_0x1c2d46._0x1933c7)](_0xb7617b,_0x4e597c)),'height':Math[_0x4ae0a7(0x17b)](_0xd031e9[_0x4ae0a7(0x18a)](_0x308197,_0x4e597c))};}app['post'](_0x112f77(0x1c5)+_0x112f77(0x1e0),async(_0x4d6e2e,_0x29f5b7)=>{const _0x39979f={_0x37f8ad:0x19c,_0x364bae:0x1a9,_0xd28831:0x181,_0x3a2e7d:0x1d2,_0x509553:0x222,_0xf4cc7e:0x196,_0x3fe8e3:0x1dd,_0x25f0da:0x25c,_0x164503:0x214,_0x175119:0x1d7,_0x482742:0x217,_0xa4fa47:0x193,_0x4eb232:0x16b,_0x5abdeb:0x15e,_0x5c26ae:0x1c0,_0x9a24a1:0x1cf,_0x553bec:0x257,_0x227e2d:0x1f3,_0x341fac:0x180,_0x4e6c67:0x25b,_0x252eeb:0x1ce,_0x1525da:0x170,_0x2a7c29:0x17c,_0x4527f5:0x21d,_0x80e20d:0x1bf,_0x43838f:0x189,_0x2e8542:0x263,_0x16f7a8:0x257,_0x223154:0x252,_0xaae0ca:0x17c,_0xc8ab37:0x20e,_0x290403:0x183,_0x504d70:0x1f9,_0x37d2d9:0x1ad,_0x63aaf6:0x183,_0x5911df:0x17e,_0x415a57:0x17e,_0x52f120:0x269,_0x544f3c:0x17e,_0x27d04d:0x1a3,_0x5af7bd:0x1ff,_0x5354c9:0x1ab,_0xb96684:0x242,_0x5171e2:0x1a4,_0x467c5b:0x182,_0x4e62a7:0x15e,_0x383c50:0x19d},_0x54c4c7=_0x112f77,_0x2a4dcc={'RJvdF':function(_0x43e783,_0x4790c5){return _0x43e783!==_0x4790c5;},'Xwyiw':_0x54c4c7(_0x39979f._0x37f8ad),'Fdboh':_0x54c4c7(0x1b5)+_0x54c4c7(_0x39979f._0x364bae)+'er','QoDwt':_0x54c4c7(_0x39979f._0xd28831),'PCKuD':'File','jQCYG':_0x54c4c7(0x221),'ytXAT':_0x54c4c7(_0x39979f._0x3a2e7d),'FHgEI':'Column','SradB':'End\x20Line','RghCn':_0x54c4c7(0x155),'euara':_0x54c4c7(_0x39979f._0x509553),'XrYzN':'pri','psXyW':'Rule','gxKtN':'ruleset','SlEJi':'Descriptio'+'n','IDlDy':_0x54c4c7(0x201),'IpIzW':_0x54c4c7(_0x39979f._0xf4cc7e),'VDcqL':_0x54c4c7(_0x39979f._0x3fe8e3),'rqGrX':_0x54c4c7(0x162),'xpila':_0x54c4c7(0x1e5),'EESSi':'Violations'+_0x54c4c7(_0x39979f._0x25f0da)+'ty','tAHOb':_0x54c4c7(_0x39979f._0x164503)+_0x54c4c7(0x1b7),'uomRe':function(_0x212462,_0x1d923b,_0x102d8a,_0x2a7040,_0x53aa0d){return _0x212462(_0x1d923b,_0x102d8a,_0x2a7040,_0x53aa0d);},'SskaL':_0x54c4c7(_0x39979f._0x175119),'ITtJL':_0x54c4c7(_0x39979f._0x482742)+'pe'},{violations:_0x654ab8,byPriority:_0x369821,byRule:_0x33f8a7,priChartImage:_0x442df0,priChartW:_0x425347,priChartH:_0x15a310,ruleChartImage:_0x153852,ruleChartW:_0x5bf38f,ruleChartH:_0x23f2bd}=_0x4d6e2e['body']||{};try{if(_0x2a4dcc[_0x54c4c7(_0x39979f._0xa4fa47)](_0x2a4dcc[_0x54c4c7(_0x39979f._0x4eb232)],'PqjXJ')){if(!_0x4a57b2[_0x54c4c7(_0x39979f._0x5abdeb)+'t'])_0x2d9eac['status'](0x1f4)['json']({'error':_0x4a5a99['message']});}else{const _0x474053=new ExcelJS[(_0x54c4c7(_0x39979f._0x5c26ae))]();_0x474053[_0x54c4c7(_0x39979f._0x9a24a1)]=_0x2a4dcc[_0x54c4c7(0x195)],_0x474053[_0x54c4c7(0x22e)]=new Date();const _0x11bbb1=_0x474053['addWorkshe'+'et'](_0x2a4dcc['QoDwt']);_0x11bbb1[_0x54c4c7(_0x39979f._0x553bec)]=[{'header':_0x2a4dcc[_0x54c4c7(_0x39979f._0x227e2d)],'key':'file','width':0x3c},{'header':_0x2a4dcc[_0x54c4c7(0x1e7)],'key':_0x2a4dcc['ytXAT'],'width':0x7},{'header':_0x2a4dcc['FHgEI'],'key':_0x54c4c7(_0x39979f._0x341fac),'width':0x7},{'header':_0x2a4dcc['SradB'],'key':'eline','width':0x9},{'header':_0x2a4dcc['RghCn'],'key':_0x54c4c7(0x240),'width':0x9},{'header':_0x2a4dcc[_0x54c4c7(_0x39979f._0x4e6c67)],'key':_0x2a4dcc['XrYzN'],'width':0xa},{'header':_0x2a4dcc[_0x54c4c7(0x175)],'key':_0x54c4c7(_0x39979f._0x252eeb),'width':0x26},{'header':'Ruleset','key':_0x2a4dcc['gxKtN'],'width':0x1a},{'header':_0x2a4dcc['SlEJi'],'key':_0x2a4dcc[_0x54c4c7(0x1a7)],'width':0x50}];const _0x41df1d=_0x11bbb1[_0x54c4c7(0x1dc)](0x1);_0x41df1d['font']=HEADER_FONT,_0x41df1d['fill']=HEADER_FILL,_0x41df1d[_0x54c4c7(_0x39979f._0x1525da)]=0x12,addZebraRows(_0x11bbb1,_0x654ab8||[]),_0x11bbb1['autoFilter']=_0x2a4dcc[_0x54c4c7(0x243)];const _0x2c5521=_0x474053[_0x54c4c7(_0x39979f._0x2a7c29)+'et'](_0x54c4c7(0x255)+'y');_0x2c5521[_0x54c4c7(0x257)]=[{'header':_0x2a4dcc['euara'],'key':_0x2a4dcc[_0x54c4c7(_0x39979f._0x4527f5)],'width':0xe},{'header':_0x54c4c7(_0x39979f._0xd28831),'key':'count','width':0xe}];const _0x3ee3cd=_0x2c5521[_0x54c4c7(0x1dc)](0x1);_0x3ee3cd[_0x54c4c7(_0x39979f._0x80e20d)]=HEADER_FONT,_0x3ee3cd[_0x54c4c7(_0x39979f._0x43838f)]=HEADER_FILL,_0x3ee3cd[_0x54c4c7(0x170)]=0x12,addZebraRows(_0x2c5521,_0x369821||[]);const _0x56ccd9=_0x474053[_0x54c4c7(0x17c)+'et'](_0x2a4dcc[_0x54c4c7(_0x39979f._0x2e8542)]);_0x56ccd9[_0x54c4c7(_0x39979f._0x16f7a8)]=[{'header':'Rule','key':_0x54c4c7(0x1ce),'width':0x2a},{'header':_0x2a4dcc[_0x54c4c7(_0x39979f._0x223154)],'key':_0x54c4c7(0x1f5),'width':0xa}];const _0x305ef7=_0x56ccd9[_0x54c4c7(0x1dc)](0x1);_0x305ef7['font']=HEADER_FONT,_0x305ef7[_0x54c4c7(0x189)]=HEADER_FILL,_0x305ef7[_0x54c4c7(0x170)]=0x12,addZebraRows(_0x56ccd9,_0x33f8a7||[]);const _0x557a04=_0x474053[_0x54c4c7(_0x39979f._0xaae0ca)+'et'](_0x2a4dcc[_0x54c4c7(_0x39979f._0xc8ab37)]);_0x557a04[_0x54c4c7(_0x39979f._0x290403)]('A1')['value']=_0x2a4dcc[_0x54c4c7(_0x39979f._0x504d70)],_0x557a04['getCell']('A1')[_0x54c4c7(0x1bf)]={'bold':!![],'size':0xd},_0x557a04['getCell']('N1')[_0x54c4c7(0x192)]=_0x2a4dcc[_0x54c4c7(_0x39979f._0x37d2d9)],_0x557a04[_0x54c4c7(_0x39979f._0x63aaf6)]('N1')[_0x54c4c7(_0x39979f._0x80e20d)]={'bold':!![],'size':0xd};const _0x4383ea=_0x461314=>(_0x461314||'')[_0x54c4c7(0x161)](/^data:image\/png;base64,/,'');if(_0x442df0){const _0x593878=_0x2a4dcc[_0x54c4c7(0x209)](scaleToFit,_0x425347,_0x15a310,0x1b8,0x1b8),_0xf71d8e=_0x474053['addImage']({'base64':_0x4383ea(_0x442df0),'extension':_0x2a4dcc[_0x54c4c7(0x269)]});_0x557a04[_0x54c4c7(_0x39979f._0x5911df)](_0xf71d8e,{'tl':{'col':0x0,'row':0x1},'ext':_0x593878});}if(_0x153852){const _0x3d724=scaleToFit(_0x5bf38f,_0x23f2bd,0x26c,0x1a4),_0x1c86bb=_0x474053[_0x54c4c7(_0x39979f._0x415a57)]({'base64':_0x4383ea(_0x153852),'extension':_0x2a4dcc[_0x54c4c7(_0x39979f._0x52f120)]});_0x557a04[_0x54c4c7(_0x39979f._0x544f3c)](_0x1c86bb,{'tl':{'col':0xd,'row':0x1},'ext':_0x3d724});}const _0x1696a9=new Date()[_0x54c4c7(_0x39979f._0x27d04d)+'g']()[_0x54c4c7(0x190)](0x0,0x10)[_0x54c4c7(0x161)](/[T:]/g,'-');_0x29f5b7[_0x54c4c7(_0x39979f._0x5af7bd)](_0x2a4dcc[_0x54c4c7(_0x39979f._0x5354c9)],_0x54c4c7(0x220)+'n/vnd.open'+'xmlformats'+'-officedoc'+_0x54c4c7(0x267)+_0x54c4c7(_0x39979f._0xb96684)+_0x54c4c7(_0x39979f._0x5171e2)),_0x29f5b7[_0x54c4c7(_0x39979f._0x5af7bd)]('Content-Di'+'sposition',_0x54c4c7(0x1d6)+_0x54c4c7(0x184)+_0x54c4c7(0x23b)+_0x54c4c7(0x20d)+_0x1696a9+_0x54c4c7(0x22d)),await _0x474053[_0x54c4c7(_0x39979f._0x467c5b)][_0x54c4c7(0x17f)](_0x29f5b7),_0x29f5b7['end']();}}catch(_0x2fe9a4){if(!_0x29f5b7[_0x54c4c7(_0x39979f._0x4e62a7)+'t'])_0x29f5b7[_0x54c4c7(_0x39979f._0x383c50)](0x1f4)[_0x54c4c7(0x172)]({'error':_0x2fe9a4['message']});}});const HOST='127.0.0.1';app['listen'](PORT,HOST,()=>{const _0x1fc73b={_0x234dbc:0x22a,_0x56e5e1:0x177,_0x52f00c:0x1e2,_0x3f3f3d:0x167,_0x4f1dd9:0x158,_0x293e69:0x1b9,_0x83a2e8:0x1b5,_0x22ac78:0x1a9,_0x277793:0x14f,_0x3054bd:0x19d,_0x4ddbe8:0x254,_0x1edab5:0x20a,_0x51cdd2:0x15c,_0xb3e2c4:0x172,_0xf8d350:0x168,_0x3d6de7:0x1cc,_0x40d72b:0x188,_0x20173e:0x1e1,_0x5bea3f:0x1d9,_0x6cb631:0x16e},_0x25890b=_0x112f77,_0x30c584={'pJhzn':function(_0x5a3c69,_0x2090b0){return _0x5a3c69===_0x2090b0;},'rmflJ':_0x25890b(0x238)+_0x25890b(_0x1fc73b._0x234dbc)+'et\x20files\x20m'+_0x25890b(_0x1fc73b._0x56e5e1)+'.','NLSNj':function(_0xbc438e,_0x4eee1c,_0x3bcbb3){return _0xbc438e(_0x4eee1c,_0x3bcbb3);},'LxYNR':_0x25890b(0x22b),'UvEqC':_0x25890b(0x1ac),'EtPiJ':_0x25890b(_0x1fc73b._0x52f00c),'LYnkY':_0x25890b(_0x1fc73b._0x3f3f3d),'gtbkB':function(_0x11f7bc,_0x139b95){return _0x11f7bc===_0x139b95;}},_0x450a8d=_0x25890b(_0x1fc73b._0x4f1dd9)+_0x25890b(0x1a1)+PORT;console[_0x25890b(_0x1fc73b._0x293e69)](_0x25890b(_0x1fc73b._0x83a2e8)+_0x25890b(_0x1fc73b._0x22ac78)+'er:\x20'+_0x450a8d);if(shouldOpen){if(_0x30c584[_0x25890b(0x25f)]===_0x30c584[_0x25890b(0x248)]){const {filePath:_0x1d5d7d}=_0x20e516['body']||{};if(!_0x1d5d7d)return _0x22d556[_0x25890b(0x19d)](0x190)['json']({'error':_0x25890b(0x150)+_0x25890b(0x153)+'.'});if(kavdmo[_0x25890b(0x1e6)](_0xb3df66[_0x25890b(_0x1fc73b._0x277793)](_0x415773[_0x25890b(0x197)](_0x1d5d7d)[_0x25890b(0x258)+'e']()),![]))return _0x2f5835[_0x25890b(_0x1fc73b._0x3054bd)](0x190)[_0x25890b(0x172)]({'error':kavdmo[_0x25890b(_0x1fc73b._0x4ddbe8)]});try{const _0x12b806=kavdmo[_0x25890b(_0x1fc73b._0x1edab5)](_0x4cb722,_0x1d5d7d,kavdmo[_0x25890b(_0x1fc73b._0x51cdd2)]);_0x169521[_0x25890b(_0x1fc73b._0xb3e2c4)]({'content':_0x12b806});}catch(_0x2a19f4){_0x54bb0f[_0x25890b(0x19d)](0x190)['json']({'error':_0x2a19f4[_0x25890b(_0x1fc73b._0xf8d350)]});}}else{const _0x2ca311=process['platform']===_0x30c584['LYnkY']?_0x25890b(_0x1fc73b._0x3d6de7):_0x30c584[_0x25890b(_0x1fc73b._0x40d72b)](process[_0x25890b(0x1f6)],_0x25890b(_0x1fc73b._0x20173e))?_0x25890b(0x1ba):_0x25890b(_0x1fc73b._0x5bea3f);require(_0x25890b(_0x1fc73b._0x6cb631)+_0x25890b(0x24d))['exec'](_0x2ca311+'\x20'+_0x450a8d);}}});
2
+ const _0x54d403=_0x3a49;(function(_0x21aa72,_0x294db6){const _0x2a2ac4={_0x4715d1:0x1be,_0x1ff773:0x18b,_0x1ad2cd:0x237,_0x5d5b9b:0x2d3,_0x2a04ca:0x224,_0x91264d:0x175},_0x318803=_0x3a49,_0x249c07=_0x21aa72();while(!![]){try{const _0x5c47ae=-parseInt(_0x318803(_0x2a2ac4._0x4715d1))/0x1+-parseInt(_0x318803(_0x2a2ac4._0x1ff773))/0x2+-parseInt(_0x318803(0x24b))/0x3+parseInt(_0x318803(_0x2a2ac4._0x1ad2cd))/0x4*(-parseInt(_0x318803(_0x2a2ac4._0x5d5b9b))/0x5)+parseInt(_0x318803(_0x2a2ac4._0x2a04ca))/0x6*(parseInt(_0x318803(0x25c))/0x7)+-parseInt(_0x318803(0x1c6))/0x8*(parseInt(_0x318803(_0x2a2ac4._0x91264d))/0x9)+parseInt(_0x318803(0x238))/0xa;if(_0x5c47ae===_0x294db6)break;else _0x249c07['push'](_0x249c07['shift']());}catch(_0x464f83){_0x249c07['push'](_0x249c07['shift']());}}}(_0x2a2d,0x7bb8a));const express=require(_0x54d403(0x21a)),multer=require('multer'),path=require(_0x54d403(0x210)),{XMLParser,XMLValidator}=require(_0x54d403(0x216)+_0x54d403(0x184)),{execFile}=require(_0x54d403(0x1ae)+_0x54d403(0x1a3)),{writeFileSync,readFileSync,unlinkSync,mkdtempSync,rmdirSync}=require('fs'),{tmpdir}=require('os'),ExcelJS=require(_0x54d403(0x23d)),rawArgs=process['argv'][_0x54d403(0x1c4)](0x2);(rawArgs['includes'](_0x54d403(0x1e6))||rawArgs[_0x54d403(0x265)]('-h'))&&(console[_0x54d403(0x279)](_0x54d403(0x2be)+_0x54d403(0x2ce)+_0x54d403(0x17d)+_0x54d403(0x1a7)+_0x54d403(0x1a8)+_0x54d403(0x192)+_0x54d403(0x26e)+_0x54d403(0x2ac)+_0x54d403(0x1dc)+'ort\x20to\x20lis'+_0x54d403(0x254)+'fault:\x20300'+_0x54d403(0x179)+_0x54d403(0x2c1)+_0x54d403(0x263)+_0x54d403(0x1d4)+_0x54d403(0x2af)+'\x20the\x20defau'+'lt\x20browser'+_0x54d403(0x228)+_0x54d403(0x185)+_0x54d403(0x23b)+'\x20\x20\x20\x20\x20\x20\x20\x20En'+_0x54d403(0x1fb)+_0x54d403(0x28a)+_0x54d403(0x1cb)+'Claude,\x20Op'+_0x54d403(0x299)+_0x54d403(0x23a)+_0x54d403(0x1cf)+_0x54d403(0x297)+_0x54d403(0x1a6)+_0x54d403(0x211)+'age\x0a\x20\x20'),process[_0x54d403(0x174)](0x0));let PORT=Number(process.env.PORT)||0xbb8;const portIdx=rawArgs[_0x54d403(0x181)](_0x1c17f0=>_0x1c17f0==='-p'||_0x1c17f0===_0x54d403(0x17e));if(portIdx!==-0x1&&rawArgs[portIdx+0x1]){const p=Number(rawArgs[portIdx+0x1]);if(p>0x0)PORT=p;}const shouldOpen=rawArgs['includes'](_0x54d403(0x18a)),aiEnabled=rawArgs[_0x54d403(0x265)](_0x54d403(0x1e3)+'i'),app=express(),upload=multer({'storage':multer['memoryStor'+_0x54d403(0x274)](),'limits':{'fileSize':0x2*0x400*0x400}});app['use'](express[_0x54d403(0x2ab)]({'limit':'4mb'})),app[_0x54d403(0x256)](express[_0x54d403(0x1d0)](path[_0x54d403(0x2bf)](__dirname,_0x54d403(0x294))));const parser=new XMLParser({'ignoreAttributes':![],'attributeNamePrefix':'@_','textNodeName':_0x54d403(0x290),'parseTagValue':![],'trimValues':!![]}),arr=_0x3e83ea=>_0x3e83ea==null?[]:Array[_0x54d403(0x221)](_0x3e83ea)?_0x3e83ea:[_0x3e83ea],txt=_0x3aabca=>_0x3aabca==null?'':typeof _0x3aabca===_0x54d403(0x29f)?_0x3aabca:String(_0x3aabca[_0x54d403(0x290)]??'');function sections(_0x4912ea){const _0x35b5ce={_0x3c4e88:0x2a6,_0xab8e9d:0x204,_0x3e7535:0x25e,_0x468927:0x198},_0x1af87a=_0x54d403;let _0x33e5fc='';const _0xab773e=[];for(const _0x4f60fb of _0x4912ea[_0x1af87a(_0x35b5ce._0x3c4e88)](/\r?\n/)){const _0x27cf75=_0x4f60fb[_0x1af87a(_0x35b5ce._0xab8e9d)](/^\s*<!--\s*([A-Z][A-Z0-9 _/&-]{1,48})\s*-->\s*$/);if(_0x27cf75)_0x33e5fc=_0x27cf75[0x1][_0x1af87a(0x1ca)]()[_0x1af87a(_0x35b5ce._0x3e7535)](/\s+/g,'\x20');if(/<rule\b/i[_0x1af87a(0x2d1)](_0x4f60fb)&&!/<!--/['test'](_0x4f60fb))_0xab773e[_0x1af87a(_0x35b5ce._0x468927)](_0x33e5fc);}return _0xab773e;}function comments(_0x338614){const _0x25703b={_0x2cf3a0:0x2a6},_0x55ca70=_0x54d403,_0x3bbd30=[];for(const _0x185220 of _0x338614['match'](/<!--[\s\S]*?-->/g)||[]){for(const _0xced053 of _0x185220['matchAll'](/<rule\b([^>]*)\/?>/gi)){const _0x2bfb27=Object['fromEntrie'+'s']([..._0xced053[0x1]['matchAll'](/([\w:-]+)\s*=\s*"([^"]*)"/g)]['map'](_0x5db244=>[_0x5db244[0x1],_0x5db244[0x2]]));if(_0x2bfb27[_0x55ca70(0x29a)])_0x3bbd30[_0x55ca70(0x198)]({'ref':_0x2bfb27['ref'],'name':_0x2bfb27[_0x55ca70(0x29a)][_0x55ca70(_0x25703b._0x2cf3a0)]('/')[_0x55ca70(0x214)]()});}}return _0x3bbd30;}function groupOf(_0x447607,_0x2b50a0){const _0x1a12d2={_0x3f2b52:0x227,_0x27bc89:0x25e},_0x1b3809=_0x54d403,_0x533bb9={'gcktH':_0x1b3809(_0x1a12d2._0x3f2b52)};if(_0x2b50a0)return _0x2b50a0;const _0x58260c=String(_0x447607)['match'](/category\/[^/]+\/([^/.]+)\.xml/i);return _0x58260c?_0x58260c[0x1][_0x1b3809(_0x1a12d2._0x27bc89)](/[-_]/g,'\x20')[_0x1b3809(_0x1a12d2._0x27bc89)](/\b\w/g,_0x99451=>_0x99451[_0x1b3809(0x1b5)+'e']()):_0x533bb9[_0x1b3809(0x1d1)];}function parse(_0x3f87d3){const _0x470d73={_0x552056:0x189,_0x10cb71:0x246,_0x4d8fcd:0x205,_0x1c75d7:0x1b9,_0x332eb0:0x178,_0x10f46d:0x269,_0x37135c:0x1ff,_0x38c12c:0x2cd,_0x81c7c7:0x28d,_0x3c3422:0x21f,_0x401cc2:0x287,_0x2886a4:0x295,_0x5a953c:0x273},_0x5a996e={_0x52d4bd:0x1c1,_0x5780d7:0x193},_0x31bfa6={_0x5d5215:0x2a6,_0xef5bfa:0x214,_0xd39d15:0x214,_0x3bf0c7:0x23c,_0x381b26:0x28d},_0x26bde7=_0x54d403,_0x534385={'MZzUq':'rule','LByLf':function(_0x383eaf,_0x147999,_0x476104){return _0x383eaf(_0x147999,_0x476104);},'FxtAV':'@_message','hvOhq':function(_0x53c597,_0x1eb724){return _0x53c597(_0x1eb724);},'RcNze':function(_0x167107,_0x20863f){return _0x167107+_0x20863f;},'GfVvb':_0x26bde7(0x2a7),'QAKeV':function(_0x58ad8e,_0xb2ce96){return _0x58ad8e!==_0xb2ce96;},'PZSmk':_0x26bde7(0x2b9),'McCNo':_0x26bde7(_0x470d73._0x552056)+_0x26bde7(_0x470d73._0x10cb71),'IsOUM':function(_0x102789,_0x4eed35){return _0x102789(_0x4eed35);}},_0x2a237e=XMLValidator['validate'](_0x3f87d3);if(_0x2a237e!==!![]){const _0x2aa0c1=_0x2a237e[_0x26bde7(_0x470d73._0x4d8fcd)]||{};throw new Error('Invalid\x20XM'+_0x26bde7(0x284)+(_0x2aa0c1[_0x26bde7(0x22a)]||'Unable\x20to\x20'+'parse\x20XML')+'\x20(line\x20'+(_0x2aa0c1[_0x26bde7(0x278)]||'?')+_0x26bde7(_0x470d73._0x1c75d7)+(_0x2aa0c1[_0x26bde7(_0x470d73._0x332eb0)]||'?')+')');}const _0x31504c=parser['parse'](_0x3f87d3),_0x11d128=Object[_0x26bde7(0x194)](_0x31504c)[_0x26bde7(_0x470d73._0x10f46d)](_0x40c01f=>_0x40c01f['toLowerCas'+'e']()[_0x26bde7(0x265)](_0x26bde7(0x26d))),_0x5c9a09=_0x11d128?_0x31504c[_0x11d128]:_0x31504c[_0x26bde7(0x26d)];if(!_0x5c9a09||_0x534385['QAKeV'](typeof _0x5c9a09,_0x26bde7(0x21d)))throw new Error(_0x26bde7(_0x470d73._0x37135c)+'t>\x20root\x20el'+'ement\x20foun'+'d.');const _0x1635b1=sections(_0x3f87d3),_0x3c5631=arr(_0x5c9a09[_0x26bde7(_0x470d73._0x38c12c)])[_0x26bde7(_0x470d73._0x81c7c7)]((_0x465a56,_0x4b6ec1)=>{const _0x193f83=_0x26bde7,_0x47ed56=_0x465a56[_0x193f83(0x1d8)]||'';return{'id':_0x4b6ec1+'-'+(_0x47ed56[_0x193f83(_0x31bfa6._0x5d5215)]('/')[_0x193f83(_0x31bfa6._0xef5bfa)]()||_0x534385[_0x193f83(0x196)]),'name':_0x47ed56[_0x193f83(_0x31bfa6._0x5d5215)]('/')['filter'](Boolean)[_0x193f83(_0x31bfa6._0xd39d15)]()||'Rule\x20'+(_0x4b6ec1+0x1),'ref':_0x47ed56,'group':_0x534385[_0x193f83(0x280)](groupOf,_0x47ed56,_0x1635b1[_0x4b6ec1]||''),'message':_0x465a56[_0x534385['FxtAV']]||'','priority':Number(txt(_0x465a56[_0x193f83(_0x31bfa6._0x3bf0c7)]))||null,'properties':_0x534385[_0x193f83(0x1f3)](arr,_0x465a56[_0x193f83(0x1bc)]?.['property'])[_0x193f83(_0x31bfa6._0x381b26)](_0x40c77e=>({'name':_0x40c77e[_0x193f83(0x2b9)]||_0x193f83(0x24d),'value':_0x40c77e[_0x193f83(0x2a5)]??txt(_0x40c77e)}))};}),_0xf26bbe={},_0x3efcbd={};return _0x3c5631[_0x26bde7(_0x470d73._0x3c3422)](_0x26e3d5=>{const _0x4b3d07=_0x26bde7;_0xf26bbe[_0x26e3d5[_0x4b3d07(_0x5a996e._0x52d4bd)]]=_0x534385[_0x4b3d07(_0x5a996e._0x5780d7)](_0xf26bbe[_0x26e3d5['group']]||0x0,0x1);const _0x5e02d3=_0x26e3d5['priority']?_0x4b3d07(0x1eb)+_0x26e3d5['priority']:_0x534385['GfVvb'];_0x3efcbd[_0x5e02d3]=_0x534385[_0x4b3d07(0x193)](_0x3efcbd[_0x5e02d3]||0x0,0x1);}),{'name':_0x5c9a09[_0x534385[_0x26bde7(0x200)]]||_0x534385[_0x26bde7(_0x470d73._0x401cc2)],'description':txt(_0x5c9a09[_0x26bde7(0x1c8)+'n']),'rules':_0x3c5631,'commented':_0x534385[_0x26bde7(_0x470d73._0x2886a4)](comments,_0x3f87d3),'raw':_0x3f87d3,'summary':{'active':_0x3c5631[_0x26bde7(0x273)],'commented':comments(_0x3f87d3)[_0x26bde7(0x273)],'groups':Object['keys'](_0xf26bbe)[_0x26bde7(_0x470d73._0x5a953c)],'groupsByCount':_0xf26bbe,'priorities':_0x3efcbd}};}app[_0x54d403(0x1fc)](_0x54d403(0x2d0)+'g',(_0x3f270b,_0x4b4d62)=>{const _0x5820b7=_0x54d403;_0x4b4d62[_0x5820b7(0x2ab)]({'aiEnabled':aiEnabled});}),app['post'](_0x54d403(0x21b),(_0x4dfd7d,_0x3069c5)=>{const _0x162a75={_0x34928b:0x1ab,_0x5b4bef:0x186,_0x2a3263:0x2ab,_0x2b04cb:0x229,_0xe07e88:0x2d6,_0x53c7c3:0x2d6,_0x9ceb36:0x18c,_0xc5afe0:0x205,_0x111e6d:0x2c8,_0x4ff3fc:0x278},_0xa1baff=_0x54d403,_0x59fb73={'ymDdE':'Unable\x20to\x20'+_0xa1baff(0x1e9),'dpirx':function(_0x35585e,_0x29ce5d){return _0x35585e(_0x29ce5d);},'ruhIp':function(_0x2cf84c,_0x103a22){return _0x2cf84c===_0x103a22;},'aWBuA':_0xa1baff(_0x162a75._0x34928b)};try{const _0x133f9d=_0x4dfd7d['body']?.[_0xa1baff(0x1c2)];if(!_0x133f9d?.[_0xa1baff(0x1ca)]())throw new Error(_0xa1baff(0x182)+_0xa1baff(_0x162a75._0x5b4bef));_0x3069c5[_0xa1baff(_0x162a75._0x2a3263)](_0x59fb73[_0xa1baff(_0x162a75._0x2b04cb)](parse,_0x133f9d));}catch(_0x10fd17){if(_0x59fb73[_0xa1baff(0x1fe)](_0x59fb73[_0xa1baff(_0x162a75._0xe07e88)],_0x59fb73[_0xa1baff(_0x162a75._0x53c7c3)]))_0x3069c5[_0xa1baff(0x29d)](0x190)[_0xa1baff(_0x162a75._0x2a3263)]({'error':_0x10fd17[_0xa1baff(_0x162a75._0x9ceb36)]});else{const _0x33a62e=_0x22f680[_0xa1baff(_0x162a75._0xc5afe0)]||{};throw new _0x4fdbfa(_0xa1baff(0x21c)+_0xa1baff(0x284)+(_0x33a62e[_0xa1baff(0x22a)]||ocYXRE[_0xa1baff(_0x162a75._0x111e6d)])+_0xa1baff(0x1ac)+(_0x33a62e[_0xa1baff(_0x162a75._0x4ff3fc)]||'?')+_0xa1baff(0x1b9)+(_0x33a62e['col']||'?')+')');}}}),app[_0x54d403(0x2a9)](_0x54d403(0x29b)+'md',(_0x232d89,_0x592206)=>{const _0x5a6cfd={_0x5a963d:0x248,_0x34f830:0x1f2,_0x60b6b0:0x2c7,_0x31b63e:0x28f,_0x30e0b7:0x259,_0x39fa48:0x18f,_0x243d47:0x186,_0x3af563:0x1a1,_0x31f6a6:0x2ab,_0xc3a788:0x1bb,_0x54d612:0x1bd,_0x4e59c4:0x23c,_0x5469c5:0x2ad,_0x577d48:0x29d,_0xce0eb6:0x1ea,_0xe6794b:0x27d,_0x5c96ec:0x293,_0x172787:0x2bf,_0x3012bf:0x29d,_0x2fd383:0x2b6,_0x2edbd0:0x209,_0x222a53:0x1de,_0x3c1af4:0x26c,_0x526d0e:0x1e2},_0x4674ca={_0x15f519:0x271,_0x420236:0x257,_0x3521f6:0x29d,_0x1da72c:0x18c,_0x318106:0x262,_0x290dd9:0x25d,_0x11fabc:0x2ab,_0x13f4cd:0x1b4},_0x561c99=_0x54d403,_0x1b318b={'ukmeS':'png','cDpAW':function(_0x563dad,_0x135b20){return _0x563dad!==_0x135b20;},'oCaeY':'ratwe','ZCkeD':_0x561c99(_0x5a6cfd._0x5a963d),'HlioF':_0x561c99(0x2d9)+_0x561c99(_0x5a6cfd._0x34f830),'pcKAm':function(_0x23c652,_0x2acd83){return _0x23c652||_0x2acd83;},'NDyol':_0x561c99(0x2bd)+'],\x22process'+_0x561c99(_0x5a6cfd._0x60b6b0)+_0x561c99(_0x5a6cfd._0x31b63e),'CJbkT':_0x561c99(0x2c6),'fnmoh':_0x561c99(_0x5a6cfd._0x30e0b7)+'parse\x20PMD\x20'+_0x561c99(_0x5a6cfd._0x39fa48)+'t.','apwNX':'XML\x20is\x20req'+_0x561c99(_0x5a6cfd._0x243d47),'yxyHq':_0x561c99(_0x5a6cfd._0x3af563)+'h\x20is\x20requi'+_0x561c99(0x22e),'CqcUQ':function(_0x5eb709,_0x5a85e0){return _0x5eb709(_0x5a85e0);},'IOXEq':function(_0x57bf88){return _0x57bf88();},'bRdVw':function(_0x238490,_0x19b196){return _0x238490+_0x19b196;},'LIMhy':_0x561c99(0x259)+'write\x20temp'+_0x561c99(0x27b),'NTlON':_0x561c99(_0x5a6cfd._0x31f6a6),'lhtdd':_0x561c99(0x22c)+_0x561c99(0x249),'ZGJrC':_0x561c99(0x2d8)+_0x561c99(_0x5a6cfd._0xc3a788),'rfhYW':function(_0xdbf82f,_0x362a20){return _0xdbf82f!==_0x362a20;},'plxUK':_0x561c99(_0x5a6cfd._0x54d612),'WsPax':'--minimum-'+_0x561c99(_0x5a6cfd._0x4e59c4),'Cjvws':function(_0x1ad5a8,_0x12fc8d,_0x28ddaa,_0x37ce7b,_0x119821){return _0x1ad5a8(_0x12fc8d,_0x28ddaa,_0x37ce7b,_0x119821);},'ubIAp':function(_0x461521,_0x1ee8fd){return _0x461521*_0x1ee8fd;}},{xml:_0x38a884,pmdBin:_0x34459b,sourcePath:_0x20782f,language:_0x1fa968,minPriority:_0x5acef0}=_0x232d89[_0x561c99(_0x5a6cfd._0x5469c5)]||{};if(!_0x38a884)return _0x592206[_0x561c99(_0x5a6cfd._0x577d48)](0x190)[_0x561c99(_0x5a6cfd._0x31f6a6)]({'error':_0x1b318b[_0x561c99(_0x5a6cfd._0xce0eb6)]});if(!_0x34459b)return _0x592206[_0x561c99(0x29d)](0x190)['json']({'error':'PMD\x20binary'+'\x20path\x20is\x20r'+_0x561c99(0x2a1)});if(!_0x20782f)return _0x592206[_0x561c99(_0x5a6cfd._0x577d48)](0x190)[_0x561c99(0x2ab)]({'error':_0x1b318b[_0x561c99(_0x5a6cfd._0xe6794b)]});let _0x41bb7d,_0x5ca863;try{_0x41bb7d=_0x1b318b['CqcUQ'](mkdtempSync,path['join'](_0x1b318b[_0x561c99(0x201)](tmpdir),_0x561c99(_0x5a6cfd._0x5c96ec))),_0x5ca863=path[_0x561c99(_0x5a6cfd._0x172787)](_0x41bb7d,'ruleset.xm'+'l'),writeFileSync(_0x5ca863,_0x38a884,'utf8');}catch(_0x2af990){return _0x592206[_0x561c99(_0x5a6cfd._0x3012bf)](0x1f4)['json']({'error':_0x1b318b[_0x561c99(0x1f5)](_0x1b318b[_0x561c99(_0x5a6cfd._0x2fd383)],_0x2af990[_0x561c99(0x18c)])});}const _0x167ed4=[_0x561c99(0x1aa),'-d',_0x20782f,'-R',_0x5ca863,'-f',_0x1b318b[_0x561c99(0x2cb)],_0x561c99(_0x5a6cfd._0x2edbd0),_0x561c99(0x22c)+'on-violati'+'on',_0x1b318b[_0x561c99(_0x5a6cfd._0x222a53)],'--no-progr'+'ess'];if(_0x1fa968)_0x167ed4['push'](_0x1b318b[_0x561c99(_0x5a6cfd._0x3c1af4)],_0x1fa968);if(_0x5acef0&&_0x1b318b[_0x561c99(0x24f)](_0x5acef0,_0x1b318b['plxUK']))_0x167ed4['push'](_0x1b318b['WsPax'],_0x5acef0);_0x1b318b[_0x561c99(0x1e1)](execFile,_0x34459b,_0x167ed4,{'timeout':0x1d4c0,'maxBuffer':_0x1b318b[_0x561c99(_0x5a6cfd._0x526d0e)](0x14,0x400)*0x400},(_0x5a8a94,_0x15742b)=>{const _0x4dc079=_0x561c99,_0x4a93a2={'QVHFb':_0x1b318b[_0x4dc079(_0x4674ca._0x15f519)]};try{unlinkSync(_0x5ca863);}catch{}try{rmdirSync(_0x41bb7d);}catch{}if(_0x5a8a94&&_0x1b318b[_0x4dc079(0x27a)](_0x5a8a94[_0x4dc079(0x1d5)],0x4)&&!_0x15742b){if(_0x1b318b['oCaeY']===_0x1b318b[_0x4dc079(_0x4674ca._0x420236)]){if(!_0x1265e3['headersSen'+'t'])_0x238446[_0x4dc079(0x29d)](0x1f4)[_0x4dc079(0x2ab)]({'error':_0x435231[_0x4dc079(0x18c)]});}else return _0x592206[_0x4dc079(_0x4674ca._0x3521f6)](0x190)[_0x4dc079(0x2ab)]({'error':_0x5a8a94[_0x4dc079(_0x4674ca._0x1da72c)]||_0x1b318b[_0x4dc079(0x197)]});}try{const _0x494a86=JSON['parse'](_0x1b318b[_0x4dc079(_0x4674ca._0x318106)](_0x15742b,_0x1b318b[_0x4dc079(_0x4674ca._0x290dd9)]));_0x592206[_0x4dc079(_0x4674ca._0x11fabc)](_0x494a86);}catch{if(_0x4dc079(0x2c6)===_0x1b318b['CJbkT'])_0x592206[_0x4dc079(0x29d)](0x190)['json']({'error':_0x1b318b[_0x4dc079(_0x4674ca._0x13f4cd)],'raw':_0x1b318b[_0x4dc079(0x262)](_0x15742b,'')['slice'](0x0,0x320)});else{const _0x2f8882=_0x185d6c(_0x3cf8db,_0x299b14,0x1b8,0x1b8),_0x2f0d20=_0x233a22[_0x4dc079(0x2a2)]({'base64':_0x355ce0(_0x2d8be3),'extension':_0x4a93a2[_0x4dc079(0x1cd)]});_0xf13b93['addImage'](_0x2f0d20,{'tl':{'col':0x0,'row':0x1},'ext':_0x2f8882});}}});});const ALLOWED_READ_EXTS=new Set(['.xml',_0x54d403(0x1da),_0x54d403(0x220),_0x54d403(0x264),'.java',_0x54d403(0x2ba),_0x54d403(0x19b),'.jsx',_0x54d403(0x2a0),_0x54d403(0x243),_0x54d403(0x288),_0x54d403(0x2c9),_0x54d403(0x2b7),_0x54d403(0x233),_0x54d403(0x18e),'.c','.h',_0x54d403(0x2b0),'.kt',_0x54d403(0x2b3),_0x54d403(0x1f4),'.scala',_0x54d403(0x1ee),_0x54d403(0x206),_0x54d403(0x1f8),'.html',_0x54d403(0x286),_0x54d403(0x276)]);app[_0x54d403(0x2a9)]('/api/read-'+_0x54d403(0x21e),(_0x2fe300,_0x10f9d8)=>{const _0x14f1bc={_0x25a3d3:0x2ab,_0x5be7ed:0x2d7,_0x28cd3a:0x261,_0x12ebf:0x296,_0x3b7fde:0x29d,_0x957583:0x2b5,_0x4911cf:0x239,_0x40ede5:0x282,_0x45d1f9:0x281,_0xfabd2d:0x2ab,_0x31d869:0x259,_0x434f94:0x27b,_0x16e84e:0x18c,_0x5a5471:0x2ab},_0x1792cd=_0x54d403,_0x40305b={'yOjFC':function(_0x105797,_0x26c820){return _0x105797+_0x26c820;},'cPaTl':'filePath\x20i'+'s\x20required'+'.','JirAz':function(_0x1db44b,_0x51f100){return _0x1db44b===_0x51f100;},'HDAyn':function(_0x4107bd,_0x380ca3){return _0x4107bd===_0x380ca3;},'ORRcz':_0x1792cd(0x282),'Rxafv':function(_0x2b78cd,_0x5bcb2a,_0x2c0081){return _0x2b78cd(_0x5bcb2a,_0x2c0081);}},{filePath:_0x4ff860}=_0x2fe300[_0x1792cd(0x2ad)]||{};if(!_0x4ff860)return _0x10f9d8[_0x1792cd(0x29d)](0x190)[_0x1792cd(_0x14f1bc._0x25a3d3)]({'error':_0x40305b[_0x1792cd(_0x14f1bc._0x5be7ed)]});if(_0x40305b['JirAz'](ALLOWED_READ_EXTS[_0x1792cd(_0x14f1bc._0x28cd3a)](path[_0x1792cd(_0x14f1bc._0x12ebf)](_0x4ff860)['toLowerCas'+'e']()),![]))return _0x10f9d8[_0x1792cd(_0x14f1bc._0x3b7fde)](0x190)[_0x1792cd(0x2ab)]({'error':_0x1792cd(0x19a)+_0x1792cd(_0x14f1bc._0x957583)+_0x1792cd(0x28c)+'ay\x20be\x20read'+'.'});try{if(_0x40305b[_0x1792cd(_0x14f1bc._0x4911cf)](_0x1792cd(_0x14f1bc._0x40ede5),_0x40305b[_0x1792cd(0x1e7)])){const _0x12e0e0=_0x40305b[_0x1792cd(_0x14f1bc._0x45d1f9)](readFileSync,_0x4ff860,_0x1792cd(0x1c5));_0x10f9d8[_0x1792cd(_0x14f1bc._0xfabd2d)]({'content':_0x12e0e0});}else return _0x3acebd['status'](0x1f4)[_0x1792cd(0x2ab)]({'error':UgblxV[_0x1792cd(0x177)](_0x1792cd(_0x14f1bc._0x31d869)+'write\x20temp'+_0x1792cd(_0x14f1bc._0x434f94),_0x1c3734[_0x1792cd(_0x14f1bc._0x16e84e)])});}catch(_0x384eaa){_0x10f9d8['status'](0x190)[_0x1792cd(_0x14f1bc._0x5a5471)]({'error':_0x384eaa[_0x1792cd(0x18c)]});}});const GREEN=_0x54d403(0x1c9),GREEN_ZEBRA=_0x54d403(0x266),WHITE=_0x54d403(0x203),HEADER_FONT={'bold':!![],'color':{'argb':WHITE}},HEADER_FILL={'type':'pattern','pattern':_0x54d403(0x251),'fgColor':{'argb':GREEN}},ZEBRA_FILL={'type':_0x54d403(0x1fa),'pattern':_0x54d403(0x251),'fgColor':{'argb':GREEN_ZEBRA}};function addZebraRows(_0x208821,_0x4fe465){const _0x19740a={_0x264494:0x258},_0x5ae437={'zvUUu':function(_0x16e393,_0x47647f){return _0x16e393%_0x47647f;}};_0x4fe465['forEach']((_0x31c32d,_0x9a904d)=>{const _0x24d6ac=_0x3a49,_0x1ce057=_0x208821[_0x24d6ac(0x2bc)](_0x31c32d);if(_0x5ae437[_0x24d6ac(_0x19740a._0x264494)](_0x9a904d,0x2)===0x0)_0x1ce057['fill']=ZEBRA_FILL;});}function scaleToFit(_0x475af5,_0x33da2d,_0x3db5c3,_0x55d180){const _0x1191f1={_0x373765:0x2c2},_0x36953f=_0x54d403,_0x52c714={'haTGk':function(_0x5b3ccd,_0x51aaa2){return _0x5b3ccd/_0x51aaa2;}};if(!_0x475af5||!_0x33da2d)return{'width':_0x3db5c3,'height':_0x55d180};const _0x3b4379=Math[_0x36953f(0x1b8)](_0x3db5c3/_0x475af5,_0x52c714[_0x36953f(_0x1191f1._0x373765)](_0x55d180,_0x33da2d),0x1);return{'width':Math[_0x36953f(0x1f0)](_0x475af5*_0x3b4379),'height':Math[_0x36953f(0x1f0)](_0x33da2d*_0x3b4379)};}app[_0x54d403(0x2a9)](_0x54d403(0x1ef)+_0x54d403(0x252),async(_0x44e53b,_0x4338e7)=>{const _0x555fbb={_0x583ee5:0x283,_0x1a6e20:0x26d,_0x432e1f:0x17c,_0x21a8bf:0x2a3,_0x4c00cb:0x260,_0x1ca382:0x2ad,_0x5bb941:0x1e4,_0x6fb0a9:0x219,_0x15bdbb:0x247,_0x5aad69:0x2b1,_0x3ddc44:0x29e,_0x479168:0x1e8,_0x759170:0x292,_0x39b064:0x190,_0xf1aa8d:0x2b1,_0x465e43:0x1dd,_0x5635f3:0x2b4,_0x35af7a:0x24c,_0x4f11c2:0x1bf,_0x165b2c:0x2cf,_0x4a29e3:0x226,_0x45fcd9:0x2a2,_0x119f0f:0x2bb,_0x2a8cf7:0x1af,_0x328fb7:0x188,_0x3366aa:0x234,_0x436bc1:0x223,_0x1c14aa:0x20a,_0x3a9ae7:0x25a,_0x3a04ee:0x29d},_0x5caa1c=_0x54d403,_0x528bee={'IQGQg':'PMD\x20Rulese'+_0x5caa1c(0x17a)+'er','nTkZQ':_0x5caa1c(0x278),'uuaag':_0x5caa1c(_0x555fbb._0x583ee5),'NdmwQ':_0x5caa1c(0x2cd),'hGAtN':_0x5caa1c(_0x555fbb._0x1a6e20),'ynKsl':_0x5caa1c(0x213)+'y','fIcMT':'count','lYoVu':function(_0x4f6fb2,_0x157707,_0xcf5224){return _0x4f6fb2(_0x157707,_0xcf5224);},'zBNTr':'Count','ppDPC':_0x5caa1c(_0x555fbb._0x432e1f)+_0x5caa1c(_0x555fbb._0x21a8bf)+'ty','konyi':function(_0x3ff2e8,_0x58a1c5,_0x48b11e,_0x219a43,_0x5e5689){return _0x3ff2e8(_0x58a1c5,_0x48b11e,_0x219a43,_0x5e5689);},'LsTEe':function(_0x276193,_0x226e7e){return _0x276193(_0x226e7e);},'mnDPz':_0x5caa1c(0x1ed),'qGZDy':'applicatio'+'n/vnd.open'+'xmlformats'+_0x5caa1c(0x1b2)+_0x5caa1c(_0x555fbb._0x4c00cb)+_0x5caa1c(0x285)+'sheet','NmgQM':'Content-Di'+'sposition'},{violations:_0x3b0bd2,byPriority:_0x442cb8,byRule:_0x3fcc50,priChartImage:_0x119fd0,priChartW:_0x382677,priChartH:_0x9527b,ruleChartImage:_0x1f82a7,ruleChartW:_0x471534,ruleChartH:_0x4e2bde}=_0x44e53b[_0x5caa1c(_0x555fbb._0x1ca382)]||{};try{const _0x8da48c=new ExcelJS[(_0x5caa1c(0x24a))]();_0x8da48c[_0x5caa1c(0x1d7)]=_0x528bee['IQGQg'],_0x8da48c[_0x5caa1c(0x2b8)]=new Date();const _0x1e7f9e=_0x8da48c[_0x5caa1c(0x270)+'et'](_0x5caa1c(_0x555fbb._0x432e1f));_0x1e7f9e['columns']=[{'header':_0x5caa1c(0x298),'key':'file','width':0x3c},{'header':'Line','key':_0x528bee[_0x5caa1c(0x275)],'width':0x7},{'header':_0x5caa1c(0x1f7),'key':_0x5caa1c(0x178),'width':0x7},{'header':_0x5caa1c(0x1c0),'key':_0x5caa1c(0x1a4),'width':0x9},{'header':_0x5caa1c(0x2c4),'key':_0x5caa1c(_0x555fbb._0x5bb941),'width':0x9},{'header':_0x528bee['uuaag'],'key':_0x5caa1c(0x1e8),'width':0xa},{'header':'Rule','key':_0x528bee[_0x5caa1c(_0x555fbb._0x6fb0a9)],'width':0x26},{'header':_0x5caa1c(0x28b),'key':_0x528bee[_0x5caa1c(0x235)],'width':0x1a},{'header':_0x5caa1c(0x289)+'n','key':_0x5caa1c(0x255),'width':0x50}];const _0x15f17e=_0x1e7f9e[_0x5caa1c(_0x555fbb._0x15bdbb)](0x1);_0x15f17e[_0x5caa1c(0x24c)]=HEADER_FONT,_0x15f17e['fill']=HEADER_FILL,_0x15f17e[_0x5caa1c(_0x555fbb._0x5aad69)]=0x12,addZebraRows(_0x1e7f9e,_0x3b0bd2||[]),_0x1e7f9e[_0x5caa1c(0x1f1)]='A1:I1';const _0x2c5a4f=_0x8da48c[_0x5caa1c(0x270)+'et'](_0x528bee['ynKsl']);_0x2c5a4f[_0x5caa1c(_0x555fbb._0x3ddc44)]=[{'header':_0x528bee['uuaag'],'key':_0x5caa1c(_0x555fbb._0x479168),'width':0xe},{'header':_0x5caa1c(0x17c),'key':_0x528bee[_0x5caa1c(0x1b6)],'width':0xe}];const _0x152d7a=_0x2c5a4f[_0x5caa1c(0x247)](0x1);_0x152d7a[_0x5caa1c(0x24c)]=HEADER_FONT,_0x152d7a['fill']=HEADER_FILL,_0x152d7a['height']=0x12,_0x528bee[_0x5caa1c(_0x555fbb._0x759170)](addZebraRows,_0x2c5a4f,_0x442cb8||[]);const _0x1929db=_0x8da48c[_0x5caa1c(0x270)+'et'](_0x5caa1c(0x207));_0x1929db['columns']=[{'header':_0x5caa1c(0x20c),'key':_0x528bee[_0x5caa1c(_0x555fbb._0x6fb0a9)],'width':0x2a},{'header':_0x528bee[_0x5caa1c(0x1a0)],'key':_0x5caa1c(_0x555fbb._0x39b064),'width':0xa}];const _0x4836c1=_0x1929db['getRow'](0x1);_0x4836c1['font']=HEADER_FONT,_0x4836c1['fill']=HEADER_FILL,_0x4836c1[_0x5caa1c(_0x555fbb._0xf1aa8d)]=0x12,addZebraRows(_0x1929db,_0x3fcc50||[]);const _0x48d850=_0x8da48c['addWorkshe'+'et']('Charts');_0x48d850[_0x5caa1c(_0x555fbb._0x465e43)]('A1')[_0x5caa1c(_0x555fbb._0x5635f3)]=_0x528bee[_0x5caa1c(0x22d)],_0x48d850['getCell']('A1')[_0x5caa1c(_0x555fbb._0x35af7a)]={'bold':!![],'size':0xd},_0x48d850[_0x5caa1c(_0x555fbb._0x465e43)]('N1')[_0x5caa1c(_0x555fbb._0x5635f3)]=_0x5caa1c(0x2aa)+'ed\x20Rules',_0x48d850[_0x5caa1c(0x1dd)]('N1')['font']={'bold':!![],'size':0xd};const _0x1b2907=_0x4cbc97=>(_0x4cbc97||'')[_0x5caa1c(0x25e)](/^data:image\/png;base64,/,'');if(_0x119fd0){const _0x3d8af5=_0x528bee[_0x5caa1c(0x226)](scaleToFit,_0x382677,_0x9527b,0x1b8,0x1b8),_0x2f8408=_0x8da48c[_0x5caa1c(0x2a2)]({'base64':_0x528bee[_0x5caa1c(_0x555fbb._0x4f11c2)](_0x1b2907,_0x119fd0),'extension':_0x528bee[_0x5caa1c(_0x555fbb._0x165b2c)]});_0x48d850[_0x5caa1c(0x2a2)](_0x2f8408,{'tl':{'col':0x0,'row':0x1},'ext':_0x3d8af5});}if(_0x1f82a7){const _0x40a852=_0x528bee[_0x5caa1c(_0x555fbb._0x4a29e3)](scaleToFit,_0x471534,_0x4e2bde,0x26c,0x1a4),_0x478b4c=_0x8da48c[_0x5caa1c(_0x555fbb._0x45fcd9)]({'base64':_0x1b2907(_0x1f82a7),'extension':_0x528bee['mnDPz']});_0x48d850['addImage'](_0x478b4c,{'tl':{'col':0xd,'row':0x1},'ext':_0x40a852});}const _0x18e50c=new Date()['toISOStrin'+'g']()['slice'](0x0,0x10)['replace'](/[T:]/g,'-');_0x4338e7['setHeader'](_0x5caa1c(0x180)+'pe',_0x528bee[_0x5caa1c(_0x555fbb._0x119f0f)]),_0x4338e7['setHeader'](_0x528bee['NmgQM'],_0x5caa1c(_0x555fbb._0x2a8cf7)+_0x5caa1c(_0x555fbb._0x328fb7)+_0x5caa1c(_0x555fbb._0x3366aa)+_0x5caa1c(0x20e)+_0x18e50c+_0x5caa1c(0x1c7)),await _0x8da48c[_0x5caa1c(_0x555fbb._0x436bc1)][_0x5caa1c(_0x555fbb._0x1c14aa)](_0x4338e7),_0x4338e7[_0x5caa1c(_0x555fbb._0x3a9ae7)]();}catch(_0x6d0401){if(!_0x4338e7[_0x5caa1c(0x1fd)+'t'])_0x4338e7[_0x5caa1c(_0x555fbb._0x3a04ee)](0x1f4)[_0x5caa1c(0x2ab)]({'error':_0x6d0401[_0x5caa1c(0x18c)]});}}),app[_0x54d403(0x1fc)]('/api/ollam'+_0x54d403(0x2d4),async(_0x12d72c,_0x71427e)=>{const _0xcffce={_0x2e8ec5:0x2a4,_0x4f3523:0x2da,_0x58aea6:0x19e,_0x49253e:0x191,_0x532a0e:0x2ab,_0x31f1d4:0x1d6,_0x481bda:0x236,_0x59ac9a:0x2ab,_0x119b69:0x28d,_0x2f2c89:0x1d9,_0x3d8864:0x18c},_0x390286=_0x54d403,_0x2a5324={'tWIiF':'Start\x20serv'+_0x390286(0x28e)+'enable-ai\x20'+_0x390286(_0xcffce._0x2e8ec5)+_0x390286(_0xcffce._0x4f3523),'CzJVO':'http://loc'+_0x390286(_0xcffce._0x58aea6)+_0x390286(_0xcffce._0x49253e)+'s','SFEvN':function(_0x44d99e,_0x241c4f){return _0x44d99e+_0x241c4f;}};if(!aiEnabled)return _0x71427e[_0x390286(0x29d)](0x193)[_0x390286(_0xcffce._0x532a0e)]({'error':_0x2a5324[_0x390286(_0xcffce._0x31f1d4)]});try{const _0x153f45=await fetch(_0x2a5324[_0x390286(_0xcffce._0x481bda)],{'signal':AbortSignal['timeout'](0x1388)}),_0x48e98f=await _0x153f45[_0x390286(_0xcffce._0x59ac9a)]();_0x71427e[_0x390286(0x2ab)]({'models':(_0x48e98f['models']||[])[_0x390286(_0xcffce._0x119b69)](_0x11531c=>_0x11531c['name'])});}catch(_0x2ec24b){_0x71427e[_0x390286(0x29d)](0x1f7)[_0x390286(_0xcffce._0x59ac9a)]({'error':_0x2a5324['SFEvN']('Ollama\x20not'+_0x390286(_0xcffce._0x2f2c89)+':\x20',_0x2ec24b[_0x390286(_0xcffce._0x3d8864)]),'models':[]});}}),app[_0x54d403(0x2a9)](_0x54d403(0x208)+'at',async(_0x451f06,_0x2a2c45)=>{const _0x159854={_0x516ab7:0x23b,_0x364c7d:0x2a4,_0x2cd152:0x268,_0x2ba1ae:0x2d2,_0x4da223:0x22f,_0x242f5d:0x1a2,_0x36f9c3:0x272,_0xecd97b:0x17b,_0x2e84a4:0x212,_0x241af9:0x240,_0x3d5584:0x222,_0x5ede73:0x231,_0x429b03:0x2db,_0x403b50:0x225,_0x4c18c4:0x29d,_0x3882d3:0x19d,_0x94e365:0x221,_0x5c612d:0x273,_0x130cf0:0x2ab,_0x13d6e8:0x23f,_0x55e635:0x1c3,_0x93f790:0x217,_0x148847:0x187,_0x3fd384:0x19c,_0x2de635:0x22b,_0xfbc73a:0x1ec,_0x51f2ba:0x244,_0x52b874:0x250,_0x3fb2e3:0x18c,_0x1178db:0x27e,_0xc6adc4:0x1b1,_0x56d1d9:0x1ce,_0xf070e0:0x27f,_0x20fd11:0x22b,_0xb31ab4:0x215,_0x4b9923:0x17f,_0x383e71:0x22b,_0x13cc4a:0x2ae,_0x5c90a0:0x25f,_0x1b9315:0x2c3,_0x30ac11:0x26b,_0x36e637:0x26a,_0x1c588b:0x2a8,_0x4546b5:0x1d2,_0x3529e0:0x2ab,_0x54b6f1:0x291,_0x26142e:0x1a9,_0x926fa6:0x1b8,_0x4b3e7b:0x1f0,_0x38f354:0x1ec,_0x64b5d9:0x1db,_0x52dd2d:0x1b3,_0x58c6ac:0x267,_0x41d310:0x1b0,_0x3a7edc:0x25b,_0x518717:0x23e,_0x5cd115:0x2ca,_0x1553af:0x242,_0x755e5b:0x272,_0x3eb857:0x202,_0xa0830d:0x29d,_0x3c9a84:0x18c},_0x43fd16=_0x54d403,_0x36e6a3={'vAshl':'Start\x20serv'+'er\x20with\x20--'+_0x43fd16(_0x159854._0x516ab7)+_0x43fd16(_0x159854._0x364c7d)+'features.','pkdVl':'applicatio'+'n/json','sngPk':function(_0x4b9675,_0xd1a25d){return _0x4b9675||_0xd1a25d;},'XSISY':_0x43fd16(0x2cc),'TzeTW':_0x43fd16(0x2b2)+_0x43fd16(_0x159854._0x2cd152)+'ama.','maQHx':_0x43fd16(_0x159854._0x2ba1ae),'ekofW':'https://ap'+'i.anthropi'+_0x43fd16(_0x159854._0x4da223)+_0x43fd16(_0x159854._0x242f5d),'KJXXO':_0x43fd16(_0x159854._0x36f9c3),'UsRBu':_0x43fd16(_0x159854._0xecd97b),'xmnMD':function(_0x52bae6,_0x2da4ba){return _0x52bae6===_0x2da4ba;},'hReRA':function(_0x118863,_0xcace39){return _0x118863===_0xcace39;},'FVmTb':_0x43fd16(0x240)+_0x43fd16(_0x159854._0x2e84a4),'prVrZ':_0x43fd16(_0x159854._0x241af9)+_0x43fd16(_0x159854._0x3d5584)+'om/v1','gzvAc':_0x43fd16(_0x159854._0x5ede73),'enVIi':_0x43fd16(0x245)+'i','SLyvJ':function(_0x9ca316,_0x3f4d42,_0x8c1c06){return _0x9ca316(_0x3f4d42,_0x8c1c06);},'yRWpg':_0x43fd16(_0x159854._0x429b03),'YSVZq':function(_0x190506,_0x175ea2){return _0x190506!==_0x175ea2;},'zFNNW':_0x43fd16(_0x159854._0x403b50),'HPXvi':_0x43fd16(0x1f6)+_0x43fd16(0x29c),'CaEAP':function(_0x5ce479,_0x29cc7a,_0x58742e){return _0x5ce479(_0x29cc7a,_0x58742e);}};if(!aiEnabled)return _0x2a2c45[_0x43fd16(_0x159854._0x4c18c4)](0x193)[_0x43fd16(0x2ab)]({'error':_0x36e6a3[_0x43fd16(_0x159854._0x3882d3)]});const {provider:_0x22b3a2,model:_0x16c241,apiKey:_0xbf64c6,messages:_0x33a66e}=_0x451f06['body']||{};if(!_0x22b3a2||!Array[_0x43fd16(_0x159854._0x94e365)](_0x33a66e)||!_0x33a66e[_0x43fd16(_0x159854._0x5c612d)])return _0x2a2c45[_0x43fd16(0x29d)](0x190)[_0x43fd16(_0x159854._0x130cf0)]({'error':_0x43fd16(0x1a5)+_0x43fd16(0x18d)+'s\x20are\x20requ'+_0x43fd16(_0x159854._0x13d6e8)});try{let _0x174ab0='';if(_0x22b3a2===_0x43fd16(_0x159854._0x55e635)){const _0x1d0283=await fetch(_0x43fd16(_0x159854._0x93f790)+'alhost:114'+_0x43fd16(_0x159854._0x148847)+'t',{'method':_0x43fd16(_0x159854._0x36f9c3),'headers':{'Content-Type':_0x36e6a3[_0x43fd16(_0x159854._0x3fd384)]},'body':JSON[_0x43fd16(_0x159854._0x2de635)]({'model':_0x36e6a3[_0x43fd16(_0x159854._0xfbc73a)](_0x16c241,_0x36e6a3[_0x43fd16(_0x159854._0x51f2ba)]),'messages':_0x33a66e,'stream':![]}),'signal':AbortSignal[_0x43fd16(_0x159854._0x52b874)](0x1d4c0)}),_0x3c0b49=await _0x1d0283[_0x43fd16(0x2ab)]();_0x174ab0=_0x3c0b49[_0x43fd16(_0x159854._0x3fb2e3)]?.['content']||_0x3c0b49[_0x43fd16(_0x159854._0x1178db)]||_0x36e6a3[_0x43fd16(_0x159854._0xc6adc4)];}else{if(_0x22b3a2===_0x36e6a3['maQHx']){const _0x38499b=await fetch(_0x36e6a3[_0x43fd16(0x26f)],{'method':_0x36e6a3['KJXXO'],'headers':{'Content-Type':_0x43fd16(0x2a8)+_0x43fd16(_0x159854._0x56d1d9),'x-api-key':_0xbf64c6,'anthropic-version':_0x36e6a3[_0x43fd16(_0x159854._0xf070e0)]},'body':JSON[_0x43fd16(_0x159854._0x20fd11)]({'model':_0x36e6a3[_0x43fd16(0x1ec)](_0x16c241,_0x43fd16(_0x159854._0xb31ab4)+_0x43fd16(_0x159854._0x4b9923)),'max_tokens':0x1000,'messages':_0x33a66e}),'signal':AbortSignal[_0x43fd16(0x250)](0x1d4c0)}),_0x35c63f=await _0x38499b['json']();_0x174ab0=_0x35c63f['content']?.[0x0]?.[_0x43fd16(0x202)]||_0x35c63f[_0x43fd16(_0x159854._0x1178db)]?.['message']||JSON[_0x43fd16(_0x159854._0x383e71)](_0x35c63f);}else{if(_0x36e6a3['xmnMD'](_0x22b3a2,_0x43fd16(0x24e))||_0x36e6a3['hReRA'](_0x22b3a2,_0x43fd16(_0x159854._0x13cc4a))){const _0x1a4053=_0x22b3a2===_0x43fd16(_0x159854._0x13cc4a)?_0x36e6a3['FVmTb']:_0x36e6a3[_0x43fd16(0x241)],_0x1a1b20=_0x22b3a2==='xai'?_0x36e6a3['gzvAc']:_0x36e6a3[_0x43fd16(_0x159854._0x5c90a0)],_0x466222=await _0x36e6a3[_0x43fd16(_0x159854._0x1b9315)](fetch,_0x1a4053+(_0x43fd16(_0x159854._0x30ac11)+_0x43fd16(0x1e5)),{'method':_0x36e6a3[_0x43fd16(_0x159854._0x36e637)],'headers':{'Content-Type':_0x43fd16(_0x159854._0x1c588b)+'n/json','Authorization':_0x43fd16(_0x159854._0x4546b5)+_0xbf64c6},'body':JSON['stringify']({'model':_0x16c241||_0x1a1b20,'messages':_0x33a66e}),'signal':AbortSignal[_0x43fd16(_0x159854._0x52b874)](0x1d4c0)}),_0x79e511=await _0x466222[_0x43fd16(_0x159854._0x3529e0)]();_0x174ab0=_0x79e511[_0x43fd16(_0x159854._0x54b6f1)]?.[0x0]?.[_0x43fd16(_0x159854._0x3fb2e3)]?.[_0x43fd16(0x1b0)]||_0x79e511[_0x43fd16(_0x159854._0x1178db)]?.['message']||JSON['stringify'](_0x79e511);}else{if(_0x22b3a2===_0x36e6a3[_0x43fd16(_0x159854._0x26142e)]){if(_0x36e6a3['YSVZq'](_0x36e6a3[_0x43fd16(0x1b7)],_0x36e6a3[_0x43fd16(0x1b7)])){if(!_0x150128||!_0x4f538d)return{'width':_0x329c43,'height':_0x129c2b};const _0x4fdaef=_0x588eff[_0x43fd16(_0x159854._0x926fa6)](_0x2467a3/_0x4575ee,_0x5286fb/_0x3e82d0,0x1);return{'width':_0x3d7598[_0x43fd16(0x1f0)](_0x6494f1*_0x4fdaef),'height':_0x35837d[_0x43fd16(_0x159854._0x4b3e7b)](_0x23add4*_0x4fdaef)};}else{const _0x44246d=_0x36e6a3[_0x43fd16(_0x159854._0x38f354)](_0x16c241,_0x36e6a3[_0x43fd16(_0x159854._0x64b5d9)]),_0x5f07e6=_0x33a66e['find'](_0xe9cc8b=>_0xe9cc8b[_0x43fd16(0x2c5)]===_0x43fd16(0x2d5)),_0x4c887f={'contents':_0x33a66e[_0x43fd16(0x2c0)](_0x24a2ac=>_0x24a2ac['role']!==_0x43fd16(0x2d5))[_0x43fd16(0x28d)](_0x4e9fde=>({'role':_0x4e9fde[_0x43fd16(0x2c5)]===_0x43fd16(0x1d3)?_0x43fd16(0x176):_0x43fd16(0x195),'parts':[{'text':_0x4e9fde[_0x43fd16(0x1b0)]}]}))};if(_0x5f07e6)_0x4c887f[_0x43fd16(_0x159854._0x52dd2d)+_0x43fd16(_0x159854._0x58c6ac)]={'parts':[{'text':_0x5f07e6[_0x43fd16(_0x159854._0x41d310)]}]};const _0x59f796=await _0x36e6a3['CaEAP'](fetch,_0x43fd16(_0x159854._0x3a7edc)+_0x43fd16(0x20f)+_0x43fd16(0x20b)+_0x43fd16(_0x159854._0x518717)+_0x43fd16(_0x159854._0x5cd115)+_0x43fd16(0x19f)+_0x44246d+(':generateC'+_0x43fd16(_0x159854._0x1553af)+'=')+_0xbf64c6,{'method':_0x43fd16(_0x159854._0x755e5b),'headers':{'Content-Type':_0x43fd16(_0x159854._0x1c588b)+'n/json'},'body':JSON[_0x43fd16(0x22b)](_0x4c887f),'signal':AbortSignal[_0x43fd16(0x250)](0x1d4c0)}),_0x3b6bce=await _0x59f796[_0x43fd16(0x2ab)]();_0x174ab0=_0x3b6bce['candidates']?.[0x0]?.['content']?.[_0x43fd16(0x199)]?.[0x0]?.[_0x43fd16(_0x159854._0x3eb857)]||_0x3b6bce[_0x43fd16(0x27e)]?.[_0x43fd16(_0x159854._0x3fb2e3)]||JSON[_0x43fd16(0x22b)](_0x3b6bce);}}else return _0x2a2c45[_0x43fd16(0x29d)](0x190)['json']({'error':'Unknown\x20pr'+_0x43fd16(0x20d)+_0x22b3a2});}}}_0x2a2c45['json']({'content':_0x174ab0});}catch(_0x3734f4){if(!_0x2a2c45['headersSen'+'t'])_0x2a2c45[_0x43fd16(_0x159854._0xa0830d)](0x1f4)[_0x43fd16(0x2ab)]({'error':_0x3734f4[_0x43fd16(_0x159854._0x3c9a84)]});}});const HOST=_0x54d403(0x1df);function _0x3a49(_0x52576c,_0x549ce0){_0x52576c=_0x52576c-0x174;const _0x2a2dc2=_0x2a2d();let _0x3a499a=_0x2a2dc2[_0x52576c];if(_0x3a49['lPqSgG']===undefined){var _0x5a22d1=function(_0x370f0f){const _0x132e85='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19a5f0='',_0x1abd23='';for(let _0x1e4b75=0x0,_0x53e336,_0x30b610,_0x4e8f08=0x0;_0x30b610=_0x370f0f['charAt'](_0x4e8f08++);~_0x30b610&&(_0x53e336=_0x1e4b75%0x4?_0x53e336*0x40+_0x30b610:_0x30b610,_0x1e4b75++%0x4)?_0x19a5f0+=String['fromCharCode'](0xff&_0x53e336>>(-0x2*_0x1e4b75&0x6)):0x0){_0x30b610=_0x132e85['indexOf'](_0x30b610);}for(let _0x134a03=0x0,_0x445d2b=_0x19a5f0['length'];_0x134a03<_0x445d2b;_0x134a03++){_0x1abd23+='%'+('00'+_0x19a5f0['charCodeAt'](_0x134a03)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1abd23);};_0x3a49['wmIAHv']=_0x5a22d1,_0x3a49['EHJLWm']={},_0x3a49['lPqSgG']=!![];}const _0x4659e7=_0x2a2dc2[0x0];_0x3a49['fLNNrR']!==_0x4659e7&&(_0x3a49['EHJLWm']={},_0x3a49['fLNNrR']=_0x4659e7);const _0x2815a8=_0x3a49['EHJLWm'][_0x52576c];return _0x2815a8===undefined?(_0x3a499a=_0x3a49['wmIAHv'](_0x3a499a),_0x3a49['EHJLWm'][_0x52576c]=_0x3a499a):_0x3a499a=_0x2815a8,_0x3a499a;}app['listen'](PORT,HOST,()=>{const _0x461230={_0x4e2490:0x1ad,_0x55a66a:0x253,_0x369f44:0x279,_0x40f8a8:0x277,_0x259dcd:0x17a,_0x5169a2:0x183,_0x200ecc:0x1ba,_0xcabbe8:0x1f9,_0x1d7e70:0x1e0},_0x368ead=_0x54d403,_0xccd2a6={'dRGZV':function(_0x225330,_0x5d0d0a){return _0x225330===_0x5d0d0a;},'imfHN':'open','UNKCx':_0x368ead(0x230),'lkiKy':_0x368ead(_0x461230._0x4e2490),'CNqan':_0x368ead(0x1ae)+'ess'},_0xbc3887='http://loc'+_0x368ead(_0x461230._0x55a66a)+PORT;console[_0x368ead(_0x461230._0x369f44)](_0x368ead(_0x461230._0x40f8a8)+_0x368ead(_0x461230._0x259dcd)+_0x368ead(_0x461230._0x5169a2)+_0xbc3887+(aiEnabled?_0x368ead(0x232)+_0x368ead(_0x461230._0x200ecc)+_0x368ead(_0x461230._0xcabbe8):''));if(shouldOpen){const _0x402758=_0xccd2a6['dRGZV'](process['platform'],_0x368ead(0x218))?_0xccd2a6['imfHN']:process[_0x368ead(_0x461230._0x1d7e70)]===_0xccd2a6[_0x368ead(0x1cc)]?_0xccd2a6['lkiKy']:_0x368ead(0x27c);require(_0xccd2a6['CNqan'])['exec'](_0x402758+'\x20'+_0xbc3887);}});function _0x2a2d(){const _0x1578e4=['vu5lq3G','uvzirMi','BI9QC29U','ic1OlcaTlwHLBa','C3rHDgLJ','z2nRDeG','qMvHCMvYia','yxnZAxn0yw50','icaGicbpCgvUia','y29Kzq','DfDjAuy','y3jLyxrVCG','qf9Yzwy','ihjLywnOywjSzq','lNj1BgvZzxq','sfbyDMK','phbVCNq+icaGua','z2v0q2vSBa','BgH0zgq','mti3lJaUmc4X','CgXHDgzVCM0','q2P2D3m','Dwjjqxa','ls1LBMfIBguTyq','zwnVBa','Bgv0Aw9UCW','ls1OzwXW','t1jsy3O','ChjP','CgfYC2uGwe1m','yxb3tLG','uhjPB3jPDhKG','C25NugS','Cg5N','lMDYB292Eq','l2fWAs9LEhbVCG','CM91BMq','yxv0B0zPBhrLCG','CYbMywLSzwqU','AhzpAhe','lNbOCa','yLjKvNC','z2vTAw5PlteUnq','q29SDw1U','lMfWzxG','zwrD','Cgf0DgvYBG','ywjSzsb0AguGqq','z2v0','AgvHzgvYC1nLBG','CNvOsxa','tM8Gphj1BgvZzq','ufPtBwS','su9yrxe','Dgv4Da','rKzgrKzgrKy','Bwf0y2G','zxjY','lNbS','qNKGuNvSzq','l2fWAs9HAs1JAa','ls1UBY1JywnOzq','D3jPDgu','BMD1ywDLlMDVBW','uNvSzq','B3zPzgvYoIa','BhrZlq','BMvYyxrPDMvSyq','Cgf0Aa','igHLBhaGBwvZCW','As54lMfPl3yX','qNKGuhjPB3jPDa','Cg9W','y2XHDwrLlwHHAq','zMfZDc14BwWTCa','Ahr0CdOVl2XVyW','zgfYD2LU','tMrTD1e','zxHWCMvZCW','l2fWAs9WyxjZzq','sw52ywXPzcbytq','B2jQzwn0','zMLSzq','zM9YrwfJAa','lMnSCW','AxnbCNjHEq','As5VCgvUywKUyW','EgXZEa','mtuWmZC4DuvIuhzb','v0vet1q','A29UEwK','t3rOzxi','igfMDgvYihn0yq','zhbPCNG','BxnN','C3rYAw5NAwz5','ls1UBY1MywLSlq','Chbeuem','CMvKlG','yY5JB20VDJeVBq','D2LUmZi','z3jVAY1IzxrH','icbBquKGu2LKzq','lMnJ','psjWBwqTCMvZDq','AeDbDe4','q3PkvK8','mZe2ufDLzKHX','mZmWmZm2nZbruLr3tLi','serbEw4','ieDLBwLUAsKkia','zw5HyMXLlwfPia','ChjPB3jPDhK','zxHJzwXQCW','z2XLyxbPCY5JBW','AxjLzc4','Ahr0Chm6lY9HCa','ChjwCLO','B250zw50p2TLEq','lNb5','wfnju1K','z3b0ltrVlw1PBG','DwXLC2v0','z2v0uM93','zNzHrfa','B24TzxjYB3i','v29YA2jVB2S','mZaWnJyXmNfrzgfRBa','zM9UDa','khvUBMfTzwqP','B3bLBMfP','CMzOwvC','DgLTzw91Da','C29SAwq','Dc14Bhn4','ywXOB3n0oG','DgvUig9UicHKzq','zgvZyW','DxnL','wKnRzuq','ENzvvxu','q291BgqGBM90ia','zw5K','Ahr0Chm6lY9Nzq','n2nIrgjArG','tKr5B2W','CMvWBgfJzq','zw5wswK','Dw1LBNqUC3bYzq','AgfZ','Cgnlqw0','BIaGicaGicaGia','lNrYAwDNzxi','Aw5JBhvKzxm','rKzLogy1zwu','Dhj1y3rPB24','zsbMCM9Tie9SBa','zMLUza','s0Pywe8','l2nOyxqVy29TCa','wKDkCKm','CNvSzxnLDa','DgLVBNm6cIaGlq','zwTVzLC','ywrKv29YA3nOzq','DwTTzvm','ue9tva','BgvUz3rO','ywDL','BLrRwLe','lNz1zq','ue1eifj1BgvZzq','BgLUzq','Bg9N','y0rWqvC','ihj1BgvZzxq6ia','EgrNlw9Wzw4','ExH5she','zxjYB3i','vxnsqNu','tej5tgy','uNHHzNy','q1bhCLO','uhjPB3jPDhK','tdOG','ywrZAgvLDg1SlG','lMPZCa','twndtM8','lMDV','rgvZy3jPChrPBW','ssbtAwrLA2LJAW','uNvSzxnLDa','zxqGzMLSzxmGBq','BwfW','zxiGD2L0AcaTlq','oLTDFq','i3rLEhq','y2HVAwnLCW','BfLVvNu','Cg1KDMLZlq','ChvIBgLJ','sxnpvu0','zxH0BMfTzq','CcaGicaGicaGia','rMLSzq','zw5bssWGEefjla','CMvM','l2fWAs9YDw4TCa','lwzSyxnO','C3rHDhvZ','y29SDw1UCW','C3rYAw5N','lNrZEa','zxf1AxjLzc4','ywrKsw1Hz2u','igj5ifbYAw9YAq','Dg8GDxnLiefjia','qf92ywX1zq','C3bSAxq','vw5Zzxq','yxbWBgLJyxrPBW','Cg9ZDa','vg9WifzPB2XHDa','ANnVBG','CcWGls1WB3j0ia','yM9KEq','EgfP','DgHLigfWCcbPBG','lNn3Awz0','AgvPz2H0','tM8GCMvZCg9UCW','lNjI','DMfSDwu','yw5Kic5YDwXLCW','teLnAhK','lMnWCa','y3jLyxrLza','qf9Uyw1L','lMPZ','CuDArhK','ywrKuM93','EYjMAwXLCYi6wW','cLbnrcbsDwXLCW','AM9PBG','zMLSDgvY','vcKkicaTlw9Wzq','Agfur2S','u0X5DKO','rw5KienVBhvTBG','CM9Szq','B0vlqwm','Aw5NrxjYB3jZiG','Ew1ezeu','lMnZ','Bs92mwjLDgeVBq','tLrSt04','BgXHBweZlJi','CNvSzq','zxqGvMLZDwfSAq','Bw5euhO','l2fWAs9JB25MAq','DgvZDa','y2XHDwrL','mtu2mdvUqu5nvwK','ys1TB2rLBhm','C3LZDgvT','yvDcDue','y1bHvgW','ls1MB3jJzs1Syq','ue1eihbYB2nLCW','zMvHDhvYzxmU','z2vTAw5P','zxHPDa','mZK2ENfQCK1m','Bw9KzwW','Eu9QrKm','y29S','mcWGB3iGjfbpuG','DcbwAxn1ywXPEG','mJaYmY0WnI0Wmq','vMLVBgf0Aw9UCW','EMvYcGPvC2fNzq','ls1WB3j0','A3uTns01','q29UDgvUDc1uEq','zMLUzeLUzgv4','we1migLZihjLCq','zxi6ia','yxjZzxi','CNrPBMCkicaTlq','DwLYzwqU','mZqVyxbPl2nOyq','oYbMAwXLBMfTzq','vw50AxrSzwqGCG','ls1VCgvU','otK4otuYy0XYAw5f','BwvZC2fNzq','BMqGBwvZC2fNzq','lMn4Ea','sLnptIbVDxrWDq','y291BNq','mZqVyxbPl3rHzW','DgLVBNnDcGPpCa','uMnoEMu','A2v5CW','DxnLCG','tvP6vxe','sgXPB0y','ChvZAa','CgfYDhm','t25SEsaUEg1Sia','lNrZ','CgTKvMW','DKfZAgW','ywXOB3n0oJeXna','B2rLBhmV','EKjovhi','u291CMnLihbHDa','zxnZywDLCW','zxnZ','zwXPBMu','ChjVDMLKzxiGyq','ifnOB3CGDgHPCW','oIbUB2rLihnLCG','DMvYlMPZifTVCa','EvjxCgC','y2HLy2S','vxPpsKe','icHSAw5Lia','C3rHCNq','y2HPBgrFChjVyW','yxr0ywnOBwvUDa','y29UDgvUDa','vhPLvfC','lw9MzMLJzwrVyW','C3LZDgvTx2LUCW','zM5TB2G','Dg9vChbLCKnHCW','zKLJtvq','EKzotLC','BwLU','lcbJB2X1Bw4G','A2LJAYbLBMfIBa','BMD1ywDL','ChjVCgvYDgLLCW','te9x','odK1mda5r2flwvzt','thnurwu','rw5KieXPBMu','z3jVDxa','Eg1S','B2XSyw1H','C2XPy2u','DxrMoa','mZi0ndb2rgj0ve8','lNHSC3GI','zgvZy3jPChrPBW','rKyZowe5nZK','DhjPBq','icHpBgXHBweSia'];_0x2a2d=function(){return _0x1578e4;};return _0x2a2d();}