@profoundlogic/coderflow-server 0.2.1
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/LICENSE.txt +322 -0
- package/README.md +158 -0
- package/dist/LICENSE.txt +322 -0
- package/dist/README.md +158 -0
- package/dist/base-image/Dockerfile +184 -0
- package/dist/base-image/agent-wrapper.sh +143 -0
- package/dist/base-image/apply-local-state.sh +357 -0
- package/dist/base-image/coder-git-credential-helper +307 -0
- package/dist/base-image/entrypoint.sh +942 -0
- package/dist/base-image/ssh_config_template +41 -0
- package/dist/base-image/start-code-server.sh +76 -0
- package/dist/base-image/sync-repos.sh +170 -0
- package/dist/base-image/vscode-extensions.txt +10 -0
- package/dist/base-image/vscode-settings.json +41 -0
- package/dist/coder-server.js +2 -0
- package/dist/config/cli-models.json +45 -0
- package/dist/config/imported-skills.schema.json +83 -0
- package/dist/config/skill-catalog.json +18 -0
- package/dist/config/skill-catalog.schema.json +140 -0
- package/dist/config.js +1 -0
- package/dist/examples/oidc.json.example +11 -0
- package/dist/lib/agent-keepalive.js +1 -0
- package/dist/lib/api-keys.js +1 -0
- package/dist/lib/apiKeys.js +1 -0
- package/dist/lib/auto-judge.js +1 -0
- package/dist/lib/basic-auth.js +1 -0
- package/dist/lib/build-history.js +1 -0
- package/dist/lib/build-output-service.js +1 -0
- package/dist/lib/build-scheduler.js +1 -0
- package/dist/lib/build-service.js +1 -0
- package/dist/lib/claude-oauth-refresh.js +1 -0
- package/dist/lib/cli/build.js +1 -0
- package/dist/lib/cli/config-command.js +1 -0
- package/dist/lib/cli/config.js +1 -0
- package/dist/lib/cli/create-user.js +1 -0
- package/dist/lib/cli/init.js +1 -0
- package/dist/lib/cli/jira.js +1 -0
- package/dist/lib/cli/license.js +1 -0
- package/dist/lib/cli/server-manager.js +1 -0
- package/dist/lib/container-tokens.js +1 -0
- package/dist/lib/data-dir.js +1 -0
- package/dist/lib/deployment-history.js +1 -0
- package/dist/lib/deployment-service.js +1 -0
- package/dist/lib/docker-utils.js +1 -0
- package/dist/lib/email.js +1 -0
- package/dist/lib/emailTemplates.js +1 -0
- package/dist/lib/entitlement.js +1 -0
- package/dist/lib/fetch-utils.js +1 -0
- package/dist/lib/git-provider-service.js +1 -0
- package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
- package/dist/lib/git-provider-setup/index.js +1 -0
- package/dist/lib/git-provider-setup/setup-factory.js +1 -0
- package/dist/lib/git-provider-setup/setup-interface.js +1 -0
- package/dist/lib/git-providers/azure-devops-provider.js +1 -0
- package/dist/lib/git-providers/github-app-provider.js +1 -0
- package/dist/lib/git-providers/index.js +1 -0
- package/dist/lib/git-providers/provider-factory.js +1 -0
- package/dist/lib/git-providers/provider-interface.js +1 -0
- package/dist/lib/jira-client.js +1 -0
- package/dist/lib/logger.js +1 -0
- package/dist/lib/model-fetcher.js +1 -0
- package/dist/lib/notifications.js +1 -0
- package/dist/lib/oidc-auth.js +1 -0
- package/dist/lib/oidc-device-flow.js +1 -0
- package/dist/lib/passwordTokens.js +1 -0
- package/dist/lib/pin-cascade.js +1 -0
- package/dist/lib/provider-accounts.js +1 -0
- package/dist/lib/provider-oauth.js +1 -0
- package/dist/lib/provider-profile.js +1 -0
- package/dist/lib/provider-token-refresh.js +1 -0
- package/dist/lib/roles.js +1 -0
- package/dist/lib/secrets.js +1 -0
- package/dist/lib/state-capture.js +1 -0
- package/dist/lib/static-files.js +1 -0
- package/dist/lib/task-name-generator.js +1 -0
- package/dist/lib/users.js +1 -0
- package/dist/middleware/requireAuth.js +1 -0
- package/dist/middleware/requireInit.js +1 -0
- package/dist/middleware/requirePermission.js +1 -0
- package/dist/package-lock.json +4151 -0
- package/dist/package.json +50 -0
- package/dist/routes/apiKeys.js +1 -0
- package/dist/routes/auth-oidc.js +1 -0
- package/dist/routes/auth.js +1 -0
- package/dist/routes/build.js +1 -0
- package/dist/routes/containers.js +1 -0
- package/dist/routes/deploy-task.js +1 -0
- package/dist/routes/environment-management.js +1 -0
- package/dist/routes/environments.js +1 -0
- package/dist/routes/external-skills.js +1 -0
- package/dist/routes/git-credentials.js +1 -0
- package/dist/routes/git-provider-setup.js +1 -0
- package/dist/routes/health.js +1 -0
- package/dist/routes/jira.js +1 -0
- package/dist/routes/objective-management.js +1 -0
- package/dist/routes/password.js +1 -0
- package/dist/routes/prompt.js +1 -0
- package/dist/routes/provider-auth.js +1 -0
- package/dist/routes/qa.js +1 -0
- package/dist/routes/settings.js +1 -0
- package/dist/routes/skill-management.js +1 -0
- package/dist/routes/skills.js +1 -0
- package/dist/routes/tasks.js +2 -0
- package/dist/routes/templates.js +1 -0
- package/dist/routes/test-task.js +1 -0
- package/dist/routes/test.js +1 -0
- package/dist/routes/users.js +1 -0
- package/dist/routes/visualizations.js +1 -0
- package/dist/schemas/template-metadata.schema.json +178 -0
- package/dist/scripts/create-user.js +2 -0
- package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
- package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
- package/dist/shipped-skills/objective-management/SKILL.md +238 -0
- package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
- package/dist/start.js +2 -0
- package/dist/web-ui/public/activity-detail-modal.js +1 -0
- package/dist/web-ui/public/activity-feed.js +1 -0
- package/dist/web-ui/public/activity-formatters.js +1 -0
- package/dist/web-ui/public/agent-event-parser.js +1 -0
- package/dist/web-ui/public/app.js +1 -0
- package/dist/web-ui/public/approve-dialog.js +1 -0
- package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
- package/dist/web-ui/public/coderflow-logo.svg +46 -0
- package/dist/web-ui/public/comments-widget.js +1 -0
- package/dist/web-ui/public/docs/.nojekyll +0 -0
- package/dist/web-ui/public/docs/README.md +26 -0
- package/dist/web-ui/public/docs/_sidebar.md +47 -0
- package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
- package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
- package/dist/web-ui/public/docs/admin/environments.md +215 -0
- package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
- package/dist/web-ui/public/docs/admin/installation.md +313 -0
- package/dist/web-ui/public/docs/admin/skills.md +35 -0
- package/dist/web-ui/public/docs/admin/sso.md +241 -0
- package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
- package/dist/web-ui/public/docs/code/cli.md +102 -0
- package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
- package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
- package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
- package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
- package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
- package/dist/web-ui/public/docs/index.html +151 -0
- package/dist/web-ui/public/docs/integrations/custom.md +58 -0
- package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
- package/dist/web-ui/public/docs/integrations/overview.md +48 -0
- package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
- package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
- package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
- package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
- package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
- package/dist/web-ui/public/docs/tasks/judging.md +114 -0
- package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
- package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
- package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
- package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
- package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
- package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
- package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
- package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
- package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
- package/dist/web-ui/public/environments.css +3942 -0
- package/dist/web-ui/public/environments.html +1791 -0
- package/dist/web-ui/public/environments.js +1 -0
- package/dist/web-ui/public/favicon-16.png +0 -0
- package/dist/web-ui/public/favicon-32.png +0 -0
- package/dist/web-ui/public/favicon.ico +0 -0
- package/dist/web-ui/public/feedback-widget.css +3133 -0
- package/dist/web-ui/public/feedback-widget.js +1 -0
- package/dist/web-ui/public/git-history.css +2663 -0
- package/dist/web-ui/public/git-history.html +272 -0
- package/dist/web-ui/public/git-history.js +1 -0
- package/dist/web-ui/public/git-status.js +1 -0
- package/dist/web-ui/public/index.html +1459 -0
- package/dist/web-ui/public/index.js +1 -0
- package/dist/web-ui/public/login.html +346 -0
- package/dist/web-ui/public/login.js +1 -0
- package/dist/web-ui/public/markdown-editor.js +1 -0
- package/dist/web-ui/public/markdown-file-editor.js +1 -0
- package/dist/web-ui/public/modal-maximize.js +1 -0
- package/dist/web-ui/public/notifications.js +1 -0
- package/dist/web-ui/public/server-health.js +1 -0
- package/dist/web-ui/public/settings.css +761 -0
- package/dist/web-ui/public/settings.html +1044 -0
- package/dist/web-ui/public/settings.js +1 -0
- package/dist/web-ui/public/setup-password.html +355 -0
- package/dist/web-ui/public/setup-password.js +1 -0
- package/dist/web-ui/public/skills.css +1949 -0
- package/dist/web-ui/public/skills.html +820 -0
- package/dist/web-ui/public/skills.js +1 -0
- package/dist/web-ui/public/sse-client.js +1 -0
- package/dist/web-ui/public/sse-shared-worker.js +1 -0
- package/dist/web-ui/public/styles.css +18614 -0
- package/dist/web-ui/public/task.html +1779 -0
- package/dist/web-ui/public/task.js +1 -0
- package/dist/web-ui/public/terminal.html +45 -0
- package/dist/web-ui/public/terminal.js +1 -0
- package/dist/web-ui/public/theme.js +1 -0
- package/dist/web-ui/public/users.html +298 -0
- package/dist/web-ui/public/users.js +1 -0
- package/dist/web-ui/public/variant-grouping.js +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Git History - CoderFlow</title>
|
|
7
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
8
|
+
<link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
|
|
9
|
+
<link rel="icon" href="/favicon-16.png" type="image/png" sizes="16x16">
|
|
10
|
+
<link rel="icon" href="/favicon.ico">
|
|
11
|
+
<script>
|
|
12
|
+
(() => {
|
|
13
|
+
const key = 'profound-coder-theme';
|
|
14
|
+
try {
|
|
15
|
+
const stored = localStorage.getItem(key);
|
|
16
|
+
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
17
|
+
const theme = stored === 'dark' || stored === 'light' ? stored : (prefersDark ? 'dark' : 'light');
|
|
18
|
+
document.documentElement.dataset.theme = theme;
|
|
19
|
+
document.documentElement.style.colorScheme = theme === 'dark' ? 'dark' : 'light';
|
|
20
|
+
} catch (error) {
|
|
21
|
+
document.documentElement.dataset.theme = 'light';
|
|
22
|
+
}
|
|
23
|
+
})();
|
|
24
|
+
</script>
|
|
25
|
+
<link rel="stylesheet" href="styles.css?v=84">
|
|
26
|
+
<link rel="stylesheet" href="git-history.css?v=13">
|
|
27
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css">
|
|
28
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
29
|
+
<script type="module" src="app.js?v=68"></script>
|
|
30
|
+
<script type="module" src="git-history.js?v=8"></script>
|
|
31
|
+
<!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
|
|
32
|
+
</head>
|
|
33
|
+
<body>
|
|
34
|
+
<main class="task-detail">
|
|
35
|
+
<div class="task-hero">
|
|
36
|
+
<div class="hero-top">
|
|
37
|
+
<nav class="breadcrumb" aria-label="Breadcrumb">
|
|
38
|
+
<a class="breadcrumb-link" href="index.html">
|
|
39
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
40
|
+
<path d="M3 11.5L12 4l9 7.5"></path>
|
|
41
|
+
<path d="M5 10.5V20h5v-5h4v5h5v-9.5"></path>
|
|
42
|
+
</svg>
|
|
43
|
+
<span>Home</span>
|
|
44
|
+
</a>
|
|
45
|
+
<span class="breadcrumb-separator" aria-hidden="true">/</span>
|
|
46
|
+
<span class="breadcrumb-current">Git History</span>
|
|
47
|
+
</nav>
|
|
48
|
+
<span class="task-context">Administration</span>
|
|
49
|
+
<div class="admin-menu-container" id="admin-menu-container" hidden>
|
|
50
|
+
<button class="btn-icon-admin" id="admin-menu-btn" title="Admin">
|
|
51
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
52
|
+
<circle cx="12" cy="12" r="3"></circle>
|
|
53
|
+
<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
|
|
54
|
+
</svg>
|
|
55
|
+
</button>
|
|
56
|
+
<div class="dropdown-menu admin-dropdown" id="admin-menu" hidden>
|
|
57
|
+
<button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='users.html'">
|
|
58
|
+
<svg class="option-icon icon-users" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
59
|
+
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
|
|
60
|
+
<circle cx="9" cy="7" r="4"></circle>
|
|
61
|
+
<path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
|
|
62
|
+
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
|
|
63
|
+
</svg>
|
|
64
|
+
<span class="option-text">Users</span>
|
|
65
|
+
</button>
|
|
66
|
+
<button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='environments.html'">
|
|
67
|
+
<svg class="option-icon icon-environments" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
68
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
69
|
+
<line x1="2" y1="12" x2="22" y2="12"></line>
|
|
70
|
+
<path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
|
|
71
|
+
</svg>
|
|
72
|
+
<span class="option-text">Environments</span>
|
|
73
|
+
</button>
|
|
74
|
+
<button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='skills.html'">
|
|
75
|
+
<svg class="option-icon icon-skills" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
76
|
+
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path>
|
|
77
|
+
</svg>
|
|
78
|
+
<span class="option-text">Skills</span>
|
|
79
|
+
</button>
|
|
80
|
+
<button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='settings.html'">
|
|
81
|
+
<svg class="option-icon icon-server-settings" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
82
|
+
<line x1="4" y1="21" x2="4" y2="14"></line>
|
|
83
|
+
<line x1="4" y1="10" x2="4" y2="3"></line>
|
|
84
|
+
<line x1="12" y1="21" x2="12" y2="12"></line>
|
|
85
|
+
<line x1="12" y1="8" x2="12" y2="3"></line>
|
|
86
|
+
<line x1="20" y1="21" x2="20" y2="16"></line>
|
|
87
|
+
<line x1="20" y1="12" x2="20" y2="3"></line>
|
|
88
|
+
<line x1="1" y1="14" x2="7" y2="14"></line>
|
|
89
|
+
<line x1="9" y1="8" x2="15" y2="8"></line>
|
|
90
|
+
<line x1="17" y1="16" x2="23" y2="16"></line>
|
|
91
|
+
</svg>
|
|
92
|
+
<span class="option-text">Server Settings</span>
|
|
93
|
+
</button>
|
|
94
|
+
<button type="button" class="dropdown-item admin-menu-item" id="server-health-btn">
|
|
95
|
+
<svg class="option-icon icon-health" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
96
|
+
<path d="M22 12h-4l-3 9L9 3l-3 9H2"></path>
|
|
97
|
+
</svg>
|
|
98
|
+
<span class="option-text">Server Health</span>
|
|
99
|
+
</button>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<div id="theme-toggle-container"></div>
|
|
103
|
+
</div>
|
|
104
|
+
<div class="status-hero">
|
|
105
|
+
<div class="status-copy">
|
|
106
|
+
<h1>Git History</h1>
|
|
107
|
+
<p class="task-subtitle">Browse commits and review diffs across your repositories.</p>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="status-actions">
|
|
110
|
+
<div class="git-branch-pill" id="repo-branch-pill" hidden>
|
|
111
|
+
<span class="branch-label">Branch</span>
|
|
112
|
+
<span id="repo-branch-name">main</span>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<div id="git-history-loading" class="loading">
|
|
119
|
+
<svg class="loading-spinner" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
120
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56"></path>
|
|
121
|
+
</svg>
|
|
122
|
+
<span>Loading Git history...</span>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<div id="git-history-error" class="empty-state-card" hidden>
|
|
126
|
+
<div class="empty-state-icon">!</div>
|
|
127
|
+
<h2>Unable to load Git history</h2>
|
|
128
|
+
<p id="git-history-error-message" class="text-muted"></p>
|
|
129
|
+
<button class="btn-primary" id="retry-git-history-btn">Try Again</button>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<div id="git-history-content" class="git-history-layout" hidden>
|
|
133
|
+
<section class="git-history-controls">
|
|
134
|
+
<div class="control-group">
|
|
135
|
+
<label for="env-select">Environment</label>
|
|
136
|
+
<select id="env-select" aria-label="Select environment">
|
|
137
|
+
<option value="">Select environment</option>
|
|
138
|
+
</select>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="control-group">
|
|
141
|
+
<label for="repo-select">Repository</label>
|
|
142
|
+
<select id="repo-select" aria-label="Select repository" disabled>
|
|
143
|
+
<option value="">Select repository</option>
|
|
144
|
+
</select>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="control-group">
|
|
147
|
+
<label for="branch-select">Branch</label>
|
|
148
|
+
<select id="branch-select" aria-label="Select branch" disabled>
|
|
149
|
+
<option value="">Select branch</option>
|
|
150
|
+
</select>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="control-group search-group">
|
|
153
|
+
<label for="commit-search">Search</label>
|
|
154
|
+
<div class="search-input">
|
|
155
|
+
<input id="commit-search" type="search" placeholder="Search commits, authors, hashes..." autocomplete="off">
|
|
156
|
+
<button class="btn-ghost btn-small" id="clear-search-btn" type="button" hidden>Clear</button>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="control-group view-group">
|
|
160
|
+
<label>Diff view</label>
|
|
161
|
+
<div class="segmented-control" role="group" aria-label="Diff view">
|
|
162
|
+
<button class="segmented-btn" data-view="unified" type="button">Unified</button>
|
|
163
|
+
<button class="segmented-btn" data-view="split" type="button">Split</button>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</section>
|
|
167
|
+
|
|
168
|
+
<section class="git-history-body">
|
|
169
|
+
<aside class="commit-list-panel">
|
|
170
|
+
<div class="commit-list-header">
|
|
171
|
+
<div>
|
|
172
|
+
<h2>Commits</h2>
|
|
173
|
+
<p id="commit-count" class="text-muted">Select a repository to load history.</p>
|
|
174
|
+
</div>
|
|
175
|
+
<div class="pagination-controls">
|
|
176
|
+
<button class="btn-ghost btn-small" id="prev-page-btn" type="button" disabled>Prev</button>
|
|
177
|
+
<button class="btn-ghost btn-small" id="next-page-btn" type="button" disabled>Next</button>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
<ul id="commit-list" class="commit-list" aria-label="Commit list"></ul>
|
|
181
|
+
</aside>
|
|
182
|
+
|
|
183
|
+
<section class="commit-detail-panel">
|
|
184
|
+
<div id="commit-placeholder" class="empty-state-card">
|
|
185
|
+
<div class="empty-state-icon">
|
|
186
|
+
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
187
|
+
<circle cx="12" cy="12" r="4"></circle>
|
|
188
|
+
<line x1="1.05" y1="12" x2="7" y2="12"></line>
|
|
189
|
+
<line x1="17.01" y1="12" x2="22.96" y2="12"></line>
|
|
190
|
+
</svg>
|
|
191
|
+
</div>
|
|
192
|
+
<h2>Select a commit</h2>
|
|
193
|
+
<p class="text-muted">Choose a commit from the list to see details, diffs, and revert options.</p>
|
|
194
|
+
<div class="keyboard-hints">
|
|
195
|
+
<span class="hint"><kbd>j</kbd><kbd>k</kbd> Navigate</span>
|
|
196
|
+
<span class="hint"><kbd>/</kbd> Search</span>
|
|
197
|
+
<span class="hint"><kbd>c</kbd> Copy hash</span>
|
|
198
|
+
<span class="hint"><kbd>m</kbd> Maximize</span>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
<div id="commit-detail" class="commit-detail" hidden>
|
|
203
|
+
<div class="commit-detail-header">
|
|
204
|
+
<div class="commit-title">
|
|
205
|
+
<h2 id="commit-message"></h2>
|
|
206
|
+
<div class="commit-meta">
|
|
207
|
+
<span id="commit-author"></span>
|
|
208
|
+
<span class="meta-separator">|</span>
|
|
209
|
+
<span id="commit-date"></span>
|
|
210
|
+
<span class="meta-separator">|</span>
|
|
211
|
+
<span id="commit-hash"></span>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<div class="commit-actions">
|
|
215
|
+
<button class="btn-ghost btn-small" id="copy-hash-btn" type="button">Copy hash</button>
|
|
216
|
+
<a class="btn-ghost btn-small" id="view-on-provider-btn" href="#" target="_blank" rel="noopener noreferrer" hidden>View on GitHub</a>
|
|
217
|
+
<button class="btn-danger btn-small" id="revert-btn" type="button">Revert commit</button>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
|
|
221
|
+
<div class="commit-detail-subheader">
|
|
222
|
+
<button class="btn-ghost btn-small maximize-btn" id="maximize-diff-btn" type="button" title="Maximize diff panel (m)">
|
|
223
|
+
<svg class="maximize-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
224
|
+
<polyline points="15 3 21 3 21 9"></polyline>
|
|
225
|
+
<polyline points="9 21 3 21 3 15"></polyline>
|
|
226
|
+
<line x1="21" y1="3" x2="14" y2="10"></line>
|
|
227
|
+
<line x1="3" y1="21" x2="10" y2="14"></line>
|
|
228
|
+
</svg>
|
|
229
|
+
<svg class="restore-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" hidden>
|
|
230
|
+
<polyline points="4 14 10 14 10 20"></polyline>
|
|
231
|
+
<polyline points="20 10 14 10 14 4"></polyline>
|
|
232
|
+
<line x1="14" y1="10" x2="21" y2="3"></line>
|
|
233
|
+
<line x1="3" y1="21" x2="10" y2="14"></line>
|
|
234
|
+
</svg>
|
|
235
|
+
<span class="maximize-text">Maximize</span>
|
|
236
|
+
</button>
|
|
237
|
+
<div id="merge-controls" class="merge-controls" hidden>
|
|
238
|
+
<label for="mainline-select">Mainline parent</label>
|
|
239
|
+
<select id="mainline-select" aria-label="Select mainline parent"></select>
|
|
240
|
+
</div>
|
|
241
|
+
<div id="diff-stats" class="diff-stats"></div>
|
|
242
|
+
<div class="diff-actions">
|
|
243
|
+
<button class="btn-ghost btn-small" id="expand-all-btn" type="button">Expand all</button>
|
|
244
|
+
<button class="btn-ghost btn-small" id="collapse-all-btn" type="button">Collapse all</button>
|
|
245
|
+
<div class="file-nav-container">
|
|
246
|
+
<button class="file-nav-toggle" id="file-nav-toggle" type="button">
|
|
247
|
+
<span id="file-nav-count">0 files</span>
|
|
248
|
+
</button>
|
|
249
|
+
<div class="file-nav-sidebar" id="file-nav-sidebar">
|
|
250
|
+
<div class="file-nav-header">
|
|
251
|
+
<h4>Changed Files</h4>
|
|
252
|
+
<button class="file-nav-close" id="file-nav-close" type="button" aria-label="Close">
|
|
253
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
254
|
+
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
255
|
+
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
256
|
+
</svg>
|
|
257
|
+
</button>
|
|
258
|
+
</div>
|
|
259
|
+
<ul class="file-nav-list" id="file-nav-list"></ul>
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
<div id="commit-diff" class="commit-diff"></div>
|
|
266
|
+
</div>
|
|
267
|
+
</section>
|
|
268
|
+
</section>
|
|
269
|
+
</div>
|
|
270
|
+
</main>
|
|
271
|
+
</body>
|
|
272
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x5299df=_0x1b4a;(function(_0x451eac,_0x440786){const _0x36fa57=_0x1b4a,_0x1da289=_0x451eac();while(!![]){try{const _0x3f27c3=parseInt(_0x36fa57(0x166))/0x1*(-parseInt(_0x36fa57(0x188))/0x2)+parseInt(_0x36fa57(0x251))/0x3*(parseInt(_0x36fa57(0x2b5))/0x4)+-parseInt(_0x36fa57(0x19e))/0x5*(-parseInt(_0x36fa57(0x22b))/0x6)+-parseInt(_0x36fa57(0x20d))/0x7+-parseInt(_0x36fa57(0x1d9))/0x8*(-parseInt(_0x36fa57(0x1fa))/0x9)+parseInt(_0x36fa57(0x170))/0xa+parseInt(_0x36fa57(0x17f))/0xb;if(_0x3f27c3===_0x440786)break;else _0x1da289['push'](_0x1da289['shift']());}catch(_0x4a32d7){_0x1da289['push'](_0x1da289['shift']());}}}(_0x3be2,0xe463b));import{API,Utils,CustomSelect,ConfirmDialog,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'environments':[],'repos':[],'branches':[],'selectedEnvironment':'','selectedRepo':'','selectedBranch':'','commits':[],'selectedCommit':null,'commitDetail':null,'diffView':localStorage['getItem']('git-history-diff-view')||'unified','pagination':{'limit':0x19,'offset':0x0,'hasMore':![],'search':''},'loadingHistory':![],'loadingCommit':![],'loadingBranches':![],'dataSource':_0x5299df(0x143)},elements={},SEARCH_DEBOUNCE_MS=0x12c;let searchTimer=null;const branchCache=new Map(),BRANCH_CACHE_TTL_MS=0x5*0x3c*0x3e8;document[_0x5299df(0x199)](_0x5299df(0x1bf),initialize);function _0x1b4a(_0x19efe9,_0x455bb4){_0x19efe9=_0x19efe9-0x129;const _0x3be25a=_0x3be2();let _0x1b4acc=_0x3be25a[_0x19efe9];if(_0x1b4a['nzrUoR']===undefined){var _0x46dbf0=function(_0x3369ca){const _0x49f327='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b5b97='',_0x2e3976='';for(let _0xba1b4c=0x0,_0x2766cc,_0x25d57c,_0x268a4c=0x0;_0x25d57c=_0x3369ca['charAt'](_0x268a4c++);~_0x25d57c&&(_0x2766cc=_0xba1b4c%0x4?_0x2766cc*0x40+_0x25d57c:_0x25d57c,_0xba1b4c++%0x4)?_0x3b5b97+=String['fromCharCode'](0xff&_0x2766cc>>(-0x2*_0xba1b4c&0x6)):0x0){_0x25d57c=_0x49f327['indexOf'](_0x25d57c);}for(let _0x3c524b=0x0,_0x2215cb=_0x3b5b97['length'];_0x3c524b<_0x2215cb;_0x3c524b++){_0x2e3976+='%'+('00'+_0x3b5b97['charCodeAt'](_0x3c524b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e3976);};_0x1b4a['OLQrWY']=_0x46dbf0,_0x1b4a['PckweZ']={},_0x1b4a['nzrUoR']=!![];}const _0x28887b=_0x3be25a[0x0],_0x22ac30=_0x19efe9+_0x28887b,_0x5ccfbb=_0x1b4a['PckweZ'][_0x22ac30];return!_0x5ccfbb?(_0x1b4acc=_0x1b4a['OLQrWY'](_0x1b4acc),_0x1b4a['PckweZ'][_0x22ac30]=_0x1b4acc):_0x1b4acc=_0x5ccfbb,_0x1b4acc;}async function initialize(){const _0x1b8320=_0x5299df;try{initTheme(),mountThemeToggle(),ConfirmDialog[_0x1b8320(0x205)](),Object['assign'](elements,{'loading':document[_0x1b8320(0x1ff)](_0x1b8320(0x181)),'error':document['getElementById'](_0x1b8320(0x235)),'errorMessage':document[_0x1b8320(0x1ff)]('git-history-error-message'),'retryBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x160)),'content':document[_0x1b8320(0x1ff)](_0x1b8320(0x158)),'envSelect':document[_0x1b8320(0x1ff)](_0x1b8320(0x2cc)),'repoSelect':document['getElementById'](_0x1b8320(0x1c6)),'branchSelect':document['getElementById'](_0x1b8320(0x130)),'commitList':document['getElementById'](_0x1b8320(0x177)),'commitCount':document[_0x1b8320(0x1ff)](_0x1b8320(0x250)),'prevBtn':document['getElementById'](_0x1b8320(0x12c)),'nextBtn':document['getElementById']('next-page-btn'),'searchInput':document[_0x1b8320(0x1ff)](_0x1b8320(0x168)),'clearSearchBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x157)),'branchPill':document[_0x1b8320(0x1ff)]('repo-branch-pill'),'branchName':document[_0x1b8320(0x1ff)](_0x1b8320(0x196)),'placeholder':document['getElementById'](_0x1b8320(0x26b)),'detailPanel':document[_0x1b8320(0x1ff)]('commit-detail'),'commitMessage':document[_0x1b8320(0x1ff)](_0x1b8320(0x131)),'commitAuthor':document[_0x1b8320(0x1ff)]('commit-author'),'commitDate':document[_0x1b8320(0x1ff)](_0x1b8320(0x245)),'commitHash':document[_0x1b8320(0x1ff)]('commit-hash'),'copyHashBtn':document['getElementById'](_0x1b8320(0x22f)),'viewOnProviderBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x1e9)),'revertBtn':document['getElementById'](_0x1b8320(0x261)),'diffStats':document[_0x1b8320(0x1ff)](_0x1b8320(0x28b)),'diffContainer':document[_0x1b8320(0x1ff)](_0x1b8320(0x2c7)),'expandAllBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x182)),'collapseAllBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x2b2)),'mergeControls':document['getElementById'](_0x1b8320(0x23b)),'mainlineSelect':document[_0x1b8320(0x1ff)](_0x1b8320(0x278)),'fileNavToggle':document[_0x1b8320(0x1ff)](_0x1b8320(0x28a)),'fileNavSidebar':document[_0x1b8320(0x1ff)]('file-nav-sidebar'),'fileNavList':document[_0x1b8320(0x1ff)](_0x1b8320(0x23e)),'fileNavClose':document['getElementById']('file-nav-close'),'fileNavCount':document[_0x1b8320(0x1ff)](_0x1b8320(0x18e)),'maximizeBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x227)),'gitHistoryBody':document[_0x1b8320(0x1c3)](_0x1b8320(0x232))});const _0x3b5b97=await checkAccess();await initializeAdminMenu(_0x3b5b97),setupEventListeners(),initializeDiffViewToggle(),await loadEnvironments(),elements[_0x1b8320(0x139)][_0x1b8320(0x22c)]=!![],elements[_0x1b8320(0x134)]['hidden']=![];}catch(_0x2e3976){console['error'](_0x1b8320(0x19f),_0x2e3976),elements[_0x1b8320(0x139)][_0x1b8320(0x22c)]=!![],elements[_0x1b8320(0x16f)]['hidden']=![],elements[_0x1b8320(0x197)][_0x1b8320(0x213)]=_0x2e3976[_0x1b8320(0x265)]||'Unknown\x20error';}}async function checkAccess(){const _0x3fe297=_0x5299df;try{const _0xba1b4c=await API[_0x3fe297(0x17b)](),_0x2766cc=_0xba1b4c['effectivePermissions']||[],_0x25d57c=_0x2766cc[_0x3fe297(0x175)]('*')||_0x2766cc[_0x3fe297(0x175)](_0x3fe297(0x2b7));if(!_0x25d57c){Utils[_0x3fe297(0x2cd)]('Access\x20denied:\x20Git\x20permissions\x20required',_0x3fe297(0x16f)),setTimeout(()=>{const _0x163b17=_0x3fe297;window['location'][_0x163b17(0x141)]=_0x163b17(0x152);},0x708);throw new Error(_0x3fe297(0x252));}return _0xba1b4c;}catch(_0x268a4c){_0x268a4c[_0x3fe297(0x265)]!=='Access\x20denied'&&(window[_0x3fe297(0x207)][_0x3fe297(0x141)]='login.html');throw _0x268a4c;}}function setupEventListeners(){const _0x2985d5=_0x5299df;elements['retryBtn']?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>window[_0x2985d5(0x207)]['reload']()),elements[_0x2985d5(0x1a5)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleEnvironmentChange),elements[_0x2985d5(0x210)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleRepoChange),elements[_0x2985d5(0x1d5)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleBranchChange),elements[_0x2985d5(0x298)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>changePage(-0x1)),elements['nextBtn']?.['addEventListener'](_0x2985d5(0x299),()=>changePage(0x1)),elements[_0x2985d5(0x29d)]?.[_0x2985d5(0x199)](_0x2985d5(0x173),handleSearchInput),elements[_0x2985d5(0x222)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),clearSearch),elements[_0x2985d5(0x296)]?.['addEventListener']('click',_0x3c524b=>{const _0x1db256=_0x2985d5,_0x2215cb=_0x3c524b[_0x1db256(0x176)]['closest'](_0x1db256(0x288));if(!_0x2215cb)return;selectCommit(_0x2215cb['dataset']['hash']);}),elements[_0x2985d5(0x270)]?.['addEventListener'](_0x2985d5(0x299),handleCopyHash),elements[_0x2985d5(0x217)]?.['addEventListener'](_0x2985d5(0x299),handleRevertCommit),elements[_0x2985d5(0x266)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>setAllDiffCollapsed(![])),elements[_0x2985d5(0x1b4)]?.[_0x2985d5(0x199)]('click',()=>setAllDiffCollapsed(!![])),elements['fileNavToggle']?.[_0x2985d5(0x199)]('click',toggleFileNav),elements[_0x2985d5(0x2c4)]?.['addEventListener'](_0x2985d5(0x299),closeFileNav),document['addEventListener']('click',_0x1fea2c=>{const _0x333677=_0x2985d5;!_0x1fea2c[_0x333677(0x176)][_0x333677(0x1fc)](_0x333677(0x2a9))&&closeFileNav();}),elements[_0x2985d5(0x194)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),toggleMaximize),document[_0x2985d5(0x199)](_0x2985d5(0x13a),handleKeyboardNavigation);}function handleKeyboardNavigation(_0x41050b){const _0x2972fc=_0x5299df;if(_0x41050b['target'][_0x2972fc(0x15c)](_0x2972fc(0x23c)))return;const _0x2142ed=Array['from'](elements['commitList']?.['querySelectorAll'](_0x2972fc(0x288))||[]);if(_0x2142ed[_0x2972fc(0x148)]===0x0)return;const _0x4c7945=_0x2142ed['findIndex'](_0xc6ccaf=>_0xc6ccaf[_0x2972fc(0x28e)]['contains']('selected'));switch(_0x41050b[_0x2972fc(0x2aa)]){case'j':case _0x2972fc(0x179):{_0x41050b['preventDefault']();const _0x5b46ed=_0x4c7945<_0x2142ed['length']-0x1?_0x4c7945+0x1:_0x4c7945,_0x355ff8=_0x2142ed[_0x5b46ed]?.['dataset'][_0x2972fc(0x274)];_0x355ff8&&(selectCommit(_0x355ff8),_0x2142ed[_0x5b46ed][_0x2972fc(0x202)]({'block':'nearest','behavior':_0x2972fc(0x13d)}));break;}case'k':case _0x2972fc(0x20c):{_0x41050b['preventDefault']();const _0x35a7db=_0x4c7945>0x0?_0x4c7945-0x1:0x0,_0x519690=_0x2142ed[_0x35a7db]?.[_0x2972fc(0x215)][_0x2972fc(0x274)];_0x519690&&(selectCommit(_0x519690),_0x2142ed[_0x35a7db][_0x2972fc(0x202)]({'block':'nearest','behavior':_0x2972fc(0x13d)}));break;}case _0x2972fc(0x2bc):{state['selectedCommit']&&elements[_0x2972fc(0x167)]?.[_0x2972fc(0x1f8)]();break;}case'c':{state[_0x2972fc(0x18b)]?.[_0x2972fc(0x20f)]?.[_0x2972fc(0x274)]&&handleCopyHash();break;}case'e':{setAllDiffCollapsed(![]);break;}case'w':{setAllDiffCollapsed(!![]);break;}case'/':{_0x41050b[_0x2972fc(0x1c7)](),elements['searchInput']?.[_0x2972fc(0x1f8)]();break;}case _0x2972fc(0x204):{if(elements[_0x2972fc(0x13c)]?.[_0x2972fc(0x28e)]['contains']('maximized'))toggleMaximize();else document[_0x2972fc(0x211)]===elements['searchInput']&&elements[_0x2972fc(0x29d)][_0x2972fc(0x136)]();break;}case'm':{state[_0x2972fc(0x18b)]&&toggleMaximize();break;}}}function initializeDiffViewToggle(){const _0x48b42b=_0x5299df,_0x2b532a=Array[_0x48b42b(0x254)](document[_0x48b42b(0x246)]('.segmented-btn'));_0x2b532a[_0x48b42b(0x1ca)](_0x3f181d=>{const _0x5232ff=_0x48b42b;_0x3f181d[_0x5232ff(0x28e)][_0x5232ff(0x20b)](_0x5232ff(0x291),_0x3f181d['dataset'][_0x5232ff(0x1fb)]===state['diffView']),_0x3f181d[_0x5232ff(0x199)](_0x5232ff(0x299),()=>{const _0x400185=_0x5232ff;if(_0x3f181d[_0x400185(0x215)][_0x400185(0x1fb)]===state[_0x400185(0x22a)])return;state['diffView']=_0x3f181d['dataset'][_0x400185(0x1fb)],localStorage['setItem'](_0x400185(0x163),state[_0x400185(0x22a)]),_0x2b532a['forEach'](_0x190e97=>_0x190e97['classList'][_0x400185(0x20b)](_0x400185(0x291),_0x190e97===_0x3f181d)),renderCommitDiff();});});}async function loadEnvironments(){const _0x25c90a=_0x5299df,_0x2d23ae=await API['getEnvironments']();state[_0x25c90a(0x1a3)]=_0x2d23ae[_0x25c90a(0x1a3)]||[],elements[_0x25c90a(0x1a5)][_0x25c90a(0x151)]=_0x25c90a(0x1f5),state['environments'][_0x25c90a(0x1ca)](_0x364e7e=>{const _0x3b5949=_0x25c90a,_0x3a169a=document[_0x3b5949(0x14e)](_0x3b5949(0x1b1));_0x3a169a['value']=_0x364e7e[_0x3b5949(0x189)],_0x3a169a[_0x3b5949(0x213)]=_0x364e7e[_0x3b5949(0x189)],elements[_0x3b5949(0x1a5)][_0x3b5949(0x186)](_0x3a169a);}),new CustomSelect(elements[_0x25c90a(0x1a5)],{'searchable':!![]}),new CustomSelect(elements[_0x25c90a(0x210)],{'searchable':!![]}),new CustomSelect(elements['branchSelect'],{'searchable':!![]});const _0x172fb7=_0x2d23ae['default_environment']||state[_0x25c90a(0x1a3)][0x0]?.[_0x25c90a(0x189)]||'';_0x172fb7&&(elements['envSelect'][_0x25c90a(0x161)]=_0x172fb7,elements[_0x25c90a(0x1a5)]['dispatchEvent'](new Event(_0x25c90a(0x230))));}async function handleEnvironmentChange(){const _0x22d6db=_0x5299df;state[_0x22d6db(0x209)]=elements[_0x22d6db(0x1a5)]['value'],state[_0x22d6db(0x1c2)]='',state['selectedBranch']='',state[_0x22d6db(0x12d)]=[],state['branches']=[],elements[_0x22d6db(0x210)][_0x22d6db(0x151)]='<option\x20value=\x22\x22>Select\x20repository</option>',elements[_0x22d6db(0x210)][_0x22d6db(0x203)]=!![],elements[_0x22d6db(0x1d5)][_0x22d6db(0x151)]=_0x22d6db(0x294),elements['branchSelect'][_0x22d6db(0x203)]=!![],elements[_0x22d6db(0x25e)]['hidden']=!![],elements['commitList']['innerHTML']='',elements['commitCount']['textContent']=_0x22d6db(0x19d),resetCommitDetail();if(!state[_0x22d6db(0x209)])return;try{const _0x44ff7b=await API[_0x22d6db(0x2a6)](state[_0x22d6db(0x209)]);state[_0x22d6db(0x12d)]=_0x44ff7b[_0x22d6db(0x12d)]||[],elements[_0x22d6db(0x210)][_0x22d6db(0x151)]=_0x22d6db(0x2b9),state[_0x22d6db(0x12d)]['forEach'](_0xf1ddbd=>{const _0x6d326d=_0x22d6db,_0x938de0=document[_0x6d326d(0x14e)](_0x6d326d(0x1b1));_0x938de0[_0x6d326d(0x161)]=_0xf1ddbd['name'],_0x938de0['textContent']=_0xf1ddbd[_0x6d326d(0x189)],elements[_0x6d326d(0x210)][_0x6d326d(0x186)](_0x938de0);}),elements[_0x22d6db(0x210)][_0x22d6db(0x203)]=state[_0x22d6db(0x12d)][_0x22d6db(0x148)]===0x0;const _0x3dd21d=state[_0x22d6db(0x12d)][0x0]?.[_0x22d6db(0x189)];_0x3dd21d&&(elements[_0x22d6db(0x210)][_0x22d6db(0x161)]=_0x3dd21d,elements[_0x22d6db(0x210)][_0x22d6db(0x1e7)](new Event('change')));}catch(_0x22da66){Utils[_0x22d6db(0x19b)](_0x22da66['message']||_0x22d6db(0x290));}}async function handleRepoChange(){const _0x1ce2e7=_0x5299df;state[_0x1ce2e7(0x1c2)]=elements['repoSelect'][_0x1ce2e7(0x161)],state[_0x1ce2e7(0x280)]='',state['branches']=[],state[_0x1ce2e7(0x29f)][_0x1ce2e7(0x2b6)]=0x0,state[_0x1ce2e7(0x29f)][_0x1ce2e7(0x1b5)]='',elements[_0x1ce2e7(0x29d)][_0x1ce2e7(0x161)]='',elements[_0x1ce2e7(0x222)][_0x1ce2e7(0x22c)]=!![],elements[_0x1ce2e7(0x1d5)][_0x1ce2e7(0x151)]=_0x1ce2e7(0x1c0),elements['branchSelect'][_0x1ce2e7(0x203)]=!![],resetCommitDetail();if(!state[_0x1ce2e7(0x1c2)]){elements[_0x1ce2e7(0x296)][_0x1ce2e7(0x151)]='',elements[_0x1ce2e7(0x206)][_0x1ce2e7(0x213)]=_0x1ce2e7(0x19d),elements[_0x1ce2e7(0x25e)][_0x1ce2e7(0x22c)]=!![],elements['branchSelect']['innerHTML']=_0x1ce2e7(0x294);return;}await loadBranches(),loadHistory();}async function loadBranches(){const _0x4edbd3=_0x5299df;if(!state[_0x4edbd3(0x209)]||!state[_0x4edbd3(0x1c2)])return;if(state[_0x4edbd3(0x191)])return;state[_0x4edbd3(0x191)]=!![];try{const _0x424c8c=state[_0x4edbd3(0x209)]+':'+state['selectedRepo'],_0x16170e=branchCache[_0x4edbd3(0x242)](_0x424c8c),_0x49b368=Date[_0x4edbd3(0x1f4)]();let _0xff4733;_0x16170e&&_0x49b368-_0x16170e[_0x4edbd3(0x24e)]<BRANCH_CACHE_TTL_MS?_0xff4733=_0x16170e:(_0xff4733=await API[_0x4edbd3(0x1c4)](state[_0x4edbd3(0x209)],state[_0x4edbd3(0x1c2)]),branchCache[_0x4edbd3(0x1ef)](_0x424c8c,{..._0xff4733,'timestamp':_0x49b368}));state['branches']=_0xff4733[_0x4edbd3(0x145)]||[],elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x151)]='';const _0x2cf290=document['createElement'](_0x4edbd3(0x1b1));_0x2cf290[_0x4edbd3(0x161)]='',_0x2cf290['textContent']=_0xff4733[_0x4edbd3(0x25a)]?_0xff4733['currentBranch']+_0x4edbd3(0x2a4):_0xff4733[_0x4edbd3(0x1e0)]?_0xff4733[_0x4edbd3(0x1e0)]+'\x20(default)':_0x4edbd3(0x236),elements['branchSelect'][_0x4edbd3(0x186)](_0x2cf290);const _0x3ee019=_0xff4733[_0x4edbd3(0x25a)]||_0xff4733[_0x4edbd3(0x1e0)];state[_0x4edbd3(0x145)]['forEach'](_0x47836a=>{const _0x266b20=_0x4edbd3;if(_0x47836a[_0x266b20(0x189)]===_0x3ee019)return;const _0x2fd4c4=document[_0x266b20(0x14e)](_0x266b20(0x1b1));_0x2fd4c4[_0x266b20(0x161)]=_0x47836a['name'];let _0x3695d1=_0x47836a[_0x266b20(0x189)];if(_0x47836a[_0x266b20(0x1bb)])_0x3695d1+=_0x266b20(0x25c);if(_0x47836a[_0x266b20(0x1da)])_0x3695d1+=_0x266b20(0x2a4);_0x2fd4c4[_0x266b20(0x213)]=_0x3695d1,elements[_0x266b20(0x1d5)][_0x266b20(0x186)](_0x2fd4c4);}),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x203)]=state[_0x4edbd3(0x145)][_0x4edbd3(0x148)]===0x0,_0xff4733['currentBranch']&&(state['selectedBranch']=''),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x161)]=state[_0x4edbd3(0x280)],queueMicrotask(()=>{const _0x3d0012=_0x4edbd3;elements['branchSelect'][_0x3d0012(0x1e7)](new Event(_0x3d0012(0x230)));});}catch(_0x4a8e2f){console[_0x4edbd3(0x16f)](_0x4edbd3(0x2b1),_0x4a8e2f),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x151)]=_0x4edbd3(0x13f),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x203)]=!![];}finally{state[_0x4edbd3(0x191)]=![];}}function handleBranchChange(){const _0xcf91a5=_0x5299df;state[_0xcf91a5(0x280)]=elements[_0xcf91a5(0x1d5)][_0xcf91a5(0x161)],state[_0xcf91a5(0x29f)][_0xcf91a5(0x2b6)]=0x0,resetCommitDetail(),loadHistory();}async function loadHistory(_0xefe461={}){const _0x15d435=_0x5299df;if(!state['selectedEnvironment']||!state[_0x15d435(0x1c2)])return;if(state[_0x15d435(0x253)])return;state[_0x15d435(0x253)]=!![],elements[_0x15d435(0x296)][_0x15d435(0x151)]=renderLoadingSkeletons(0x5),elements['commitCount'][_0x15d435(0x213)]=_0x15d435(0x293);try{const _0x66f81c={'limit':state[_0x15d435(0x29f)][_0x15d435(0x140)],'offset':state[_0x15d435(0x29f)][_0x15d435(0x2b6)],'search':state[_0x15d435(0x29f)][_0x15d435(0x1b5)]};state[_0x15d435(0x280)]&&(_0x66f81c[_0x15d435(0x169)]=state[_0x15d435(0x280)]);const _0x2c37b0=await API[_0x15d435(0x21e)](state[_0x15d435(0x209)],state['selectedRepo'],_0x66f81c);state[_0x15d435(0x21b)]=_0x2c37b0[_0x15d435(0x21b)]||[],state[_0x15d435(0x29f)][_0x15d435(0x14b)]=_0x2c37b0[_0x15d435(0x29f)]?.[_0x15d435(0x14b)]||![],state[_0x15d435(0x27d)]=_0x2c37b0[_0x15d435(0x285)]||_0x15d435(0x143);_0x2c37b0[_0x15d435(0x172)]?.[_0x15d435(0x169)]?(elements[_0x15d435(0x276)][_0x15d435(0x213)]=_0x2c37b0[_0x15d435(0x172)]['branch'],elements[_0x15d435(0x25e)][_0x15d435(0x22c)]=![]):elements[_0x15d435(0x25e)][_0x15d435(0x22c)]=!![];updateSourceIndicator(),renderCommitList();const _0x3b937d=_0xefe461[_0x15d435(0x156)]&&state['selectedCommit'],_0x48ef73=state['commits'][_0x15d435(0x1cf)](_0x90c10b=>_0x90c10b[_0x15d435(0x274)]===state[_0x15d435(0x259)]?.[_0x15d435(0x274)]);if(_0x3b937d&&_0x48ef73)highlightSelectedCommit();else state[_0x15d435(0x21b)][_0x15d435(0x148)]>0x0?selectCommit(state[_0x15d435(0x21b)][0x0][_0x15d435(0x274)],{'silent':!![]}):resetCommitDetail();}catch(_0x5f21c1){Utils[_0x15d435(0x19b)](_0x5f21c1[_0x15d435(0x265)]||_0x15d435(0x1ab)),elements[_0x15d435(0x296)][_0x15d435(0x151)]='',elements['commitCount']['textContent']=_0x15d435(0x26d);}finally{state[_0x15d435(0x253)]=![];}}function updateSourceIndicator(){const _0xf807bb=_0x5299df;let _0x1ee3a6=document[_0xf807bb(0x1ff)](_0xf807bb(0x27c));!_0x1ee3a6&&(_0x1ee3a6=document[_0xf807bb(0x14e)](_0xf807bb(0x192)),_0x1ee3a6['id']='data-source-indicator',_0x1ee3a6[_0xf807bb(0x1a8)]='source-indicator',elements['branchPill']?.[_0xf807bb(0x159)]?.[_0xf807bb(0x153)](_0x1ee3a6,elements['branchPill'][_0xf807bb(0x155)])),state[_0xf807bb(0x27d)]===_0xf807bb(0x264)?(_0x1ee3a6[_0xf807bb(0x151)]=_0xf807bb(0x2b8),_0x1ee3a6[_0xf807bb(0x1a6)]='Data\x20fetched\x20from\x20remote\x20Git\x20provider\x20(repository\x20not\x20cloned\x20locally)',_0x1ee3a6[_0xf807bb(0x22c)]=![]):_0x1ee3a6[_0xf807bb(0x22c)]=!![];}async function selectCommit(_0x23a97f,_0x4b684f={}){const _0x4229c3=_0x5299df;if(!_0x23a97f)return;if(state[_0x4229c3(0x29a)])return;const _0x36c98a=state[_0x4229c3(0x21b)][_0x4229c3(0x1c9)](_0xf4970d=>_0xf4970d[_0x4229c3(0x274)]===_0x23a97f);if(!_0x36c98a)return;state[_0x4229c3(0x259)]=_0x36c98a,highlightSelectedCommit();if(_0x4b684f['silent']){await loadCommitDetail(_0x23a97f);return;}await loadCommitDetail(_0x23a97f);}function highlightSelectedCommit(){const _0x7ceaac=_0x5299df,_0x2e12a6=elements[_0x7ceaac(0x296)][_0x7ceaac(0x246)]('.commit-item');_0x2e12a6[_0x7ceaac(0x1ca)](_0x1148f2=>{const _0x248430=_0x7ceaac;_0x1148f2['classList'][_0x248430(0x20b)](_0x248430(0x1b0),_0x1148f2[_0x248430(0x215)][_0x248430(0x274)]===state['selectedCommit']?.[_0x248430(0x274)]);});}async function loadCommitDetail(_0x3c6eec){const _0x252c7e=_0x5299df;state[_0x252c7e(0x29a)]=!![],elements[_0x252c7e(0x208)][_0x252c7e(0x22c)]=!![],elements['detailPanel'][_0x252c7e(0x22c)]=![],elements['diffContainer'][_0x252c7e(0x151)]=_0x252c7e(0x29b);try{const _0x163076=await API[_0x252c7e(0x1cc)](state['selectedEnvironment'],state[_0x252c7e(0x1c2)],_0x3c6eec);state[_0x252c7e(0x18b)]=_0x163076,renderCommitDetail();}catch(_0x5ce60c){Utils['showError'](_0x5ce60c[_0x252c7e(0x265)]||_0x252c7e(0x1e2)),elements[_0x252c7e(0x167)][_0x252c7e(0x151)]=_0x252c7e(0x17d);}finally{state[_0x252c7e(0x29a)]=![];}}function renderCommitList(){const _0x49039a=_0x5299df;elements[_0x49039a(0x296)]['innerHTML']='';if(state[_0x49039a(0x21b)][_0x49039a(0x148)]===0x0){const _0x3008ce=state[_0x49039a(0x29f)]['search']?_0x49039a(0x1fd)+state[_0x49039a(0x29f)][_0x49039a(0x1b5)]+'\x22.':'No\x20commits\x20found.';elements['commitCount']['textContent']=_0x3008ce,elements[_0x49039a(0x296)][_0x49039a(0x151)]=_0x49039a(0x14d)+Utils[_0x49039a(0x24a)](_0x3008ce)+_0x49039a(0x15e),elements[_0x49039a(0x298)][_0x49039a(0x203)]=!![],elements['nextBtn'][_0x49039a(0x203)]=!![];return;}const _0x13e5ef=state[_0x49039a(0x29f)][_0x49039a(0x2b6)]+0x1,_0x4d4c0c=state['pagination'][_0x49039a(0x2b6)]+state['commits'][_0x49039a(0x148)],_0x1db6c4=state['pagination'][_0x49039a(0x1b5)]?_0x13e5ef+'-'+_0x4d4c0c+_0x49039a(0x214)+state[_0x49039a(0x29f)]['search']+'\x22':_0x13e5ef+'-'+_0x4d4c0c;elements['commitCount'][_0x49039a(0x213)]=_0x1db6c4,state[_0x49039a(0x21b)]['forEach']((_0x4919b5,_0x307697)=>{const _0x1e3a9f=_0x49039a,_0x60e391=document[_0x1e3a9f(0x14e)]('li');_0x60e391[_0x1e3a9f(0x1a8)]='commit-item',_0x60e391[_0x1e3a9f(0x215)]['hash']=_0x4919b5[_0x1e3a9f(0x274)],_0x60e391[_0x1e3a9f(0x1d0)]=0x0,_0x60e391['setAttribute'](_0x1e3a9f(0x132),_0x1e3a9f(0x1ba)),_0x60e391[_0x1e3a9f(0x133)](_0x1e3a9f(0x237),_0x1e3a9f(0x1d1)+(_0x4919b5[_0x1e3a9f(0x265)]||_0x1e3a9f(0x283))+_0x1e3a9f(0x16e)+(_0x4919b5[_0x1e3a9f(0x174)]||'Unknown')),_0x60e391[_0x1e3a9f(0x229)][_0x1e3a9f(0x15d)]=_0x307697*0x19+'ms';const _0x2c5946=getAuthorInitials(_0x4919b5[_0x1e3a9f(0x174)]),_0x505d13=getAvatarColor(_0x4919b5[_0x1e3a9f(0x174)]||_0x1e3a9f(0x193)),_0x2b64c6=detectCommitType(_0x4919b5[_0x1e3a9f(0x265)]),_0x42b1e6=_0x2b64c6?_0x1e3a9f(0x243)+_0x2b64c6+'\x22>'+_0x2b64c6+_0x1e3a9f(0x171):'';_0x60e391[_0x1e3a9f(0x151)]=_0x1e3a9f(0x275)+Utils[_0x1e3a9f(0x24a)](truncateMessage(_0x4919b5['message']||_0x1e3a9f(0x283),0x50))+'</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22commit-meta-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22commit-author-chip\x22\x20style=\x22--avatar-color:\x20'+_0x505d13+_0x1e3a9f(0x240)+_0x2c5946+_0x1e3a9f(0x23f)+Utils[_0x1e3a9f(0x24a)](_0x4919b5[_0x1e3a9f(0x174)]||_0x1e3a9f(0x193))+_0x1e3a9f(0x12e)+Utils[_0x1e3a9f(0x2af)](_0x4919b5['date'])+_0x1e3a9f(0x1d4)+_0x4919b5[_0x1e3a9f(0x16a)]+_0x1e3a9f(0x17e)+(_0x4919b5[_0x1e3a9f(0x27a)]?_0x1e3a9f(0x2c6):'')+_0x1e3a9f(0x267)+_0x42b1e6+_0x1e3a9f(0x21a),_0x60e391['addEventListener'](_0x1e3a9f(0x13a),_0x22684b=>{const _0x4b8cee=_0x1e3a9f;(_0x22684b[_0x4b8cee(0x2aa)]==='Enter'||_0x22684b[_0x4b8cee(0x2aa)]==='\x20')&&(_0x22684b['preventDefault'](),selectCommit(_0x4919b5[_0x4b8cee(0x274)]));}),elements[_0x1e3a9f(0x296)][_0x1e3a9f(0x186)](_0x60e391);}),elements['prevBtn'][_0x49039a(0x203)]=state[_0x49039a(0x29f)]['offset']===0x0,elements[_0x49039a(0x29e)]['disabled']=!state[_0x49039a(0x29f)][_0x49039a(0x14b)],highlightSelectedCommit();}function getAuthorInitials(_0x48d083){const _0x54d70c=_0x5299df;if(!_0x48d083)return'?';const _0x235e2d=_0x48d083[_0x54d70c(0x26c)]()[_0x54d70c(0x1dd)](/\s+/);if(_0x235e2d[_0x54d70c(0x148)]===0x1)return _0x235e2d[0x0][_0x54d70c(0x13e)](0x0)[_0x54d70c(0x1e3)]();return(_0x235e2d[0x0][_0x54d70c(0x13e)](0x0)+_0x235e2d[_0x235e2d[_0x54d70c(0x148)]-0x1][_0x54d70c(0x13e)](0x0))[_0x54d70c(0x1e3)]();}function getAvatarColor(_0x18b067){const _0x2c7a12=_0x5299df;let _0x32efaf=0x0;for(let _0x3f3ce7=0x0;_0x3f3ce7<_0x18b067[_0x2c7a12(0x148)];_0x3f3ce7++){_0x32efaf=_0x18b067[_0x2c7a12(0x15b)](_0x3f3ce7)+((_0x32efaf<<0x5)-_0x32efaf);}const _0x5e5a57=Math[_0x2c7a12(0x221)](_0x32efaf%0x168);return _0x2c7a12(0x1ec)+_0x5e5a57+_0x2c7a12(0x2bf);}function truncateMessage(_0x195b32,_0x555aeb){const _0x591726=_0x5299df;if(!_0x195b32)return'';const _0x1f8123=_0x195b32['split']('\x0a')[0x0];if(_0x1f8123[_0x591726(0x148)]<=_0x555aeb)return _0x1f8123;return _0x1f8123[_0x591726(0x1e5)](0x0,_0x555aeb-0x3)+_0x591726(0x22e);}function renderCommitDetail(){const _0x4bd91e=_0x5299df;if(!state[_0x4bd91e(0x18b)]||!state[_0x4bd91e(0x18b)][_0x4bd91e(0x20f)]){resetCommitDetail();return;}const _0x52daf4=state[_0x4bd91e(0x18b)][_0x4bd91e(0x20f)];elements[_0x4bd91e(0x147)]['textContent']=_0x52daf4[_0x4bd91e(0x265)]||'No\x20message',elements[_0x4bd91e(0x14c)]['textContent']=''+(_0x52daf4['author']||_0x4bd91e(0x193))+(_0x52daf4[_0x4bd91e(0x1b9)]?'\x20('+_0x52daf4[_0x4bd91e(0x1b9)]+')':''),elements['commitDate']['textContent']=formatDate(_0x52daf4[_0x4bd91e(0x2c0)]),elements[_0x4bd91e(0x29c)][_0x4bd91e(0x213)]=_0x52daf4[_0x4bd91e(0x274)];const _0x70d375=state[_0x4bd91e(0x27d)]==='remote';elements[_0x4bd91e(0x217)]&&(elements[_0x4bd91e(0x217)][_0x4bd91e(0x22c)]=_0x70d375);if(elements[_0x4bd91e(0x27b)]){const _0x53819e=getProviderCommitUrl(_0x52daf4[_0x4bd91e(0x274)]);_0x53819e&&_0x70d375?(elements[_0x4bd91e(0x27b)][_0x4bd91e(0x22c)]=![],elements[_0x4bd91e(0x27b)]['href']=_0x53819e,elements[_0x4bd91e(0x27b)][_0x4bd91e(0x213)]=_0x4bd91e(0x219)+getProviderDisplayName()):elements[_0x4bd91e(0x27b)]['hidden']=!![];}const _0x416d7c=_0x52daf4[_0x4bd91e(0x1a7)]||[];_0x416d7c[_0x4bd91e(0x148)]>0x1?(elements[_0x4bd91e(0x21f)][_0x4bd91e(0x22c)]=![],elements[_0x4bd91e(0x1a0)]['innerHTML']='',_0x416d7c[_0x4bd91e(0x1ca)]((_0x340248,_0x36f2ce)=>{const _0x1d7564=_0x4bd91e,_0x5cd804=document[_0x1d7564(0x14e)]('option');_0x5cd804[_0x1d7564(0x161)]=String(_0x36f2ce+0x1),_0x5cd804['textContent']=_0x1d7564(0x2bd)+(_0x36f2ce+0x1)+_0x1d7564(0x2cb)+_0x340248[_0x1d7564(0x27f)](0x0,0x7),elements['mainlineSelect'][_0x1d7564(0x186)](_0x5cd804);})):elements[_0x4bd91e(0x21f)][_0x4bd91e(0x22c)]=!![];const _0x4a7235=parsePatchContent(state[_0x4bd91e(0x18b)][_0x4bd91e(0x1d6)]||'');state['commitDetail']['files']=_0x4a7235;const _0x9c986a=calculateDiffStats(_0x4a7235);elements[_0x4bd91e(0x2a5)]['innerHTML']='\x0a\x20\x20\x20\x20<span\x20class=\x22diff-stat-files\x22>'+_0x9c986a['files']+_0x4bd91e(0x18a)+(_0x9c986a[_0x4bd91e(0x1de)]===0x1?'':'s')+_0x4bd91e(0x178)+_0x9c986a[_0x4bd91e(0x12a)]+'</span>\x0a\x20\x20\x20\x20<span\x20class=\x22diff-stat-del\x22>-'+_0x9c986a[_0x4bd91e(0x1bd)]+_0x4bd91e(0x184),elements[_0x4bd91e(0x26f)]&&(elements[_0x4bd91e(0x26f)][_0x4bd91e(0x213)]=_0x9c986a[_0x4bd91e(0x1de)]+_0x4bd91e(0x18a)+(_0x9c986a[_0x4bd91e(0x1de)]===0x1?'':'s')),renderCommitDiff();}function renderCommitDiff(){const _0x1ad887=_0x5299df;if(!state[_0x1ad887(0x18b)]||!elements[_0x1ad887(0x167)])return;const _0x86476c=state['commitDetail'][_0x1ad887(0x1de)]||parsePatchContent(state[_0x1ad887(0x18b)][_0x1ad887(0x1d6)]||'');if(_0x86476c['length']===0x0){elements[_0x1ad887(0x167)][_0x1ad887(0x151)]=_0x1ad887(0x135);return;}const _0x48df94=_0x1ad887(0x1f9)+state[_0x1ad887(0x18b)]['commit']['hash'],_0x37255d=state[_0x1ad887(0x22a)]===_0x1ad887(0x1dd)?renderSplitDiff(_0x86476c,_0x48df94):renderUnifiedDiff(_0x86476c,_0x48df94);elements['diffContainer'][_0x1ad887(0x151)]=_0x37255d,bindDiffToggleHandlers(_0x48df94);}function resetCommitDetail(){const _0x119b17=_0x5299df;state['selectedCommit']=null,state['commitDetail']=null,elements['placeholder'][_0x119b17(0x22c)]=![],elements['detailPanel'][_0x119b17(0x22c)]=!![];}function getSelectedRepoObject(){const _0x5e29ec=_0x5299df;return state[_0x5e29ec(0x12d)]['find'](_0xa782=>_0xa782['name']===state[_0x5e29ec(0x1c2)])||null;}function getProviderDisplayName(){const _0x232d60=_0x5299df,_0x14182d=getSelectedRepoObject(),_0x4077d1=_0x14182d?.[_0x232d60(0x292)]?.[_0x232d60(0x17a)]()||'';if(_0x4077d1['includes'](_0x232d60(0x2a3))||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x1f1)))return _0x232d60(0x1f3);else{if(_0x4077d1[_0x232d60(0x175)]('gitlab.com')||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x1ea)))return'GitLab';else{if(_0x4077d1[_0x232d60(0x175)](_0x232d60(0x150))||_0x4077d1['includes'](_0x232d60(0x1b3)))return _0x232d60(0x165);else{if(_0x4077d1[_0x232d60(0x175)](_0x232d60(0x2a1))||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x185)))return'Azure\x20DevOps';}}}return'Provider';}function getProviderCommitUrl(_0x39e67c){const _0x3ad5d9=_0x5299df,_0xea9a49=getSelectedRepoObject();if(!_0xea9a49?.[_0x3ad5d9(0x292)])return null;const _0x36f5b6=_0xea9a49['url'][_0x3ad5d9(0x138)](/\.git$/,''),_0x53607b=_0x36f5b6[_0x3ad5d9(0x17a)]();if(_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x2cf))||_0x53607b['includes'](_0x3ad5d9(0x1ea)))return _0x36f5b6+'/-/commit/'+_0x39e67c;else{if(_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x150))||_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x1b3)))return _0x36f5b6+_0x3ad5d9(0x19c)+_0x39e67c;}return _0x36f5b6+_0x3ad5d9(0x289)+_0x39e67c;}function handleSearchInput(_0x33be07){const _0x4f9ee6=_0x5299df,_0x317004=_0x33be07[_0x4f9ee6(0x176)]['value'][_0x4f9ee6(0x26c)]();elements[_0x4f9ee6(0x222)][_0x4f9ee6(0x22c)]=!_0x317004,searchTimer&&clearTimeout(searchTimer),searchTimer=setTimeout(()=>{const _0x59a846=_0x4f9ee6;state[_0x59a846(0x29f)]['search']=_0x317004,state['pagination']['offset']=0x0,loadHistory();},SEARCH_DEBOUNCE_MS);}function clearSearch(){const _0x55381c=_0x5299df;elements[_0x55381c(0x29d)][_0x55381c(0x161)]='',elements['clearSearchBtn']['hidden']=!![],state['pagination'][_0x55381c(0x1b5)]='',state[_0x55381c(0x29f)][_0x55381c(0x2b6)]=0x0,loadHistory();}function changePage(_0x1ec4fc){const _0x376d81=_0x5299df,_0xb823ba=state[_0x376d81(0x29f)][_0x376d81(0x2b6)]+_0x1ec4fc*state[_0x376d81(0x29f)][_0x376d81(0x140)];if(_0xb823ba<0x0)return;state[_0x376d81(0x29f)][_0x376d81(0x2b6)]=_0xb823ba,loadHistory({'keepSelection':![]});}async function handleCopyHash(){const _0x401fed=_0x5299df;if(!state[_0x401fed(0x18b)]?.['commit']?.[_0x401fed(0x274)])return;const _0xb239e3=await Utils[_0x401fed(0x2bb)](state[_0x401fed(0x18b)][_0x401fed(0x20f)][_0x401fed(0x274)]);if(_0xb239e3)Utils[_0x401fed(0x2a7)](_0x401fed(0x2c3));}async function handleRevertCommit(){const _0x5558d5=_0x5299df;if(!state[_0x5558d5(0x18b)]?.[_0x5558d5(0x20f)]?.[_0x5558d5(0x274)])return;const _0x4754d2=state[_0x5558d5(0x18b)]['commit'],_0x44dcdd=_0x5558d5(0x1cd)+_0x4754d2[_0x5558d5(0x16a)]+_0x5558d5(0x1f0),_0x251e02=await ConfirmDialog[_0x5558d5(0x1c5)]({'title':_0x5558d5(0x256),'message':_0x44dcdd,'confirmText':_0x5558d5(0x277),'cancelText':_0x5558d5(0x287),'danger':!![]});if(!_0x251e02)return;try{const _0x22cb23={};_0x4754d2[_0x5558d5(0x1a7)]&&_0x4754d2[_0x5558d5(0x1a7)]['length']>0x1&&(_0x22cb23[_0x5558d5(0x26a)]=elements['mainlineSelect']['value']||'1'),await API[_0x5558d5(0x20a)](state[_0x5558d5(0x209)],state['selectedRepo'],_0x4754d2[_0x5558d5(0x274)],_0x22cb23),Utils[_0x5558d5(0x2a7)](_0x5558d5(0x2c2)),state['pagination'][_0x5558d5(0x2b6)]=0x0,await loadHistory({'keepSelection':![]});}catch(_0x2cac3f){Utils[_0x5558d5(0x19b)](_0x2cac3f['message']||'Failed\x20to\x20revert\x20commit');}}function parsePatchContent(_0x44b35a){const _0x5c101e=_0x5299df,_0xc3e537=[],_0x177443=_0x44b35a[_0x5c101e(0x1dd)]('\x0a');let _0x40c41b=null,_0x1c2d2c=null;for(const _0x5283ac of _0x177443){if(_0x5283ac[_0x5c101e(0x1ac)](_0x5c101e(0x2ce))){_0x40c41b&&_0x1c2d2c&&_0x40c41b[_0x5c101e(0x226)][_0x5c101e(0x247)](_0x1c2d2c);_0x40c41b&&_0xc3e537[_0x5c101e(0x247)](_0x40c41b);const _0x1a042a=_0x5283ac['match'](/diff --git a\/(.+?) b\/(.+)/);_0x40c41b={'oldPath':_0x1a042a?_0x1a042a[0x1]:'','newPath':_0x1a042a?_0x1a042a[0x2]:'','hunks':[],'isDeleted':![]},_0x1c2d2c=null;}else{if(_0x5283ac[_0x5c101e(0x1ac)](_0x5c101e(0x1cb))&&_0x40c41b)_0x40c41b[_0x5c101e(0x249)]=!![];else{if(_0x5283ac[_0x5c101e(0x1ac)]('@@'))_0x1c2d2c&&_0x40c41b&&_0x40c41b['hunks'][_0x5c101e(0x247)](_0x1c2d2c),_0x1c2d2c={'header':_0x5283ac,'lines':[]};else _0x1c2d2c&&_0x1c2d2c[_0x5c101e(0x2ae)][_0x5c101e(0x247)](_0x5283ac);}}}return _0x40c41b&&_0x1c2d2c&&_0x40c41b[_0x5c101e(0x226)][_0x5c101e(0x247)](_0x1c2d2c),_0x40c41b&&_0xc3e537[_0x5c101e(0x247)](_0x40c41b),_0xc3e537;}function parseHunkHeader(_0x145b99){const _0x452051=_0x5299df,_0x153056=_0x145b99[_0x452051(0x25b)](/@@ -(\d+),?\d* \+(\d+),?\d* @@/);if(_0x153056)return{'oldStart':parseInt(_0x153056[0x1],0xa),'newStart':parseInt(_0x153056[0x2],0xa)};return{'oldStart':0x1,'newStart':0x1};}function highlightDiffLine(_0x25b67a,_0x2018f2){const _0x1306a2=_0x5299df,_0x43285e=window['hljs']||(typeof hljs!==_0x1306a2(0x21d)?hljs:null);if(_0x43285e&&_0x2018f2)try{const _0x12414e=_0x43285e[_0x1306a2(0x16d)](_0x2018f2)?_0x2018f2:null;if(_0x12414e)return _0x43285e[_0x1306a2(0x282)](_0x25b67a,{'language':_0x12414e})[_0x1306a2(0x161)];}catch(_0x44c2f7){console[_0x1306a2(0x16f)](_0x1306a2(0x233),_0x44c2f7);}return Utils[_0x1306a2(0x24a)](_0x25b67a);}function computeWordDiff(_0x57e264,_0x3df979){const _0x8e7627=_0x5299df,_0x277ced=_0x1044a9=>{const _0x782ed8=_0x1b4a,_0x25c8a3=[];let _0x51b2ef='',_0x589210=![];for(let _0x1298a6=0x0;_0x1298a6<_0x1044a9[_0x782ed8(0x148)];_0x1298a6++){const _0x210850=_0x1044a9[_0x1298a6],_0x1c8fc4=/\s/[_0x782ed8(0x26e)](_0x210850);if(_0x51b2ef==='')_0x51b2ef=_0x210850,_0x589210=_0x1c8fc4;else _0x1c8fc4===_0x589210?_0x51b2ef+=_0x210850:(_0x25c8a3[_0x782ed8(0x247)](_0x51b2ef),_0x51b2ef=_0x210850,_0x589210=_0x1c8fc4);}return _0x51b2ef&&_0x25c8a3[_0x782ed8(0x247)](_0x51b2ef),_0x25c8a3;},_0x1dd2f3=_0x277ced(_0x57e264),_0x33b265=_0x277ced(_0x3df979),_0x58b4e1=_0x1dd2f3['length'],_0xed8b89=_0x33b265['length'],_0x21a601=Array(_0x58b4e1+0x1)[_0x8e7627(0x1af)](null)[_0x8e7627(0x187)](()=>Array(_0xed8b89+0x1)[_0x8e7627(0x1af)](0x0));for(let _0x3c3522=0x1;_0x3c3522<=_0x58b4e1;_0x3c3522++){for(let _0x52c457=0x1;_0x52c457<=_0xed8b89;_0x52c457++){_0x1dd2f3[_0x3c3522-0x1]===_0x33b265[_0x52c457-0x1]?_0x21a601[_0x3c3522][_0x52c457]=_0x21a601[_0x3c3522-0x1][_0x52c457-0x1]+0x1:_0x21a601[_0x3c3522][_0x52c457]=Math[_0x8e7627(0x18d)](_0x21a601[_0x3c3522-0x1][_0x52c457],_0x21a601[_0x3c3522][_0x52c457-0x1]);}}const _0x5a3bb8={'old':[],'new':[]};let _0x568c4d=_0x58b4e1,_0x4229a3=_0xed8b89;const _0x327adc=[],_0x44c3e2=[];while(_0x568c4d>0x0||_0x4229a3>0x0){if(_0x568c4d>0x0&&_0x4229a3>0x0&&_0x1dd2f3[_0x568c4d-0x1]===_0x33b265[_0x4229a3-0x1])_0x327adc[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x262),'text':_0x1dd2f3[_0x568c4d-0x1]}),_0x44c3e2[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x262),'text':_0x33b265[_0x4229a3-0x1]}),_0x568c4d--,_0x4229a3--;else{if(_0x4229a3>0x0&&(_0x568c4d===0x0||_0x21a601[_0x568c4d][_0x4229a3-0x1]>=_0x21a601[_0x568c4d-0x1][_0x4229a3]))_0x44c3e2[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x1b2),'text':_0x33b265[_0x4229a3-0x1]}),_0x4229a3--;else _0x568c4d>0x0&&(_0x327adc[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x190),'text':_0x1dd2f3[_0x568c4d-0x1]}),_0x568c4d--);}}return _0x5a3bb8[_0x8e7627(0x234)]=_0x327adc,_0x5a3bb8['new']=_0x44c3e2,_0x5a3bb8;}function renderDiffLineWithWordHighlight(_0x35920a,_0x32ca5e,_0x4df554,_0x45e14a){const _0x19bbab=_0x5299df;if(!_0x32ca5e||_0x32ca5e[_0x19bbab(0x148)]===0x0)return highlightDiffLine(_0x35920a,_0x45e14a);let _0x321504='';const _0x4078eb=_0x4df554===_0x19bbab(0x1ee)?'diff-word-add':_0x19bbab(0x1d3),_0x1917d2=_0x4df554===_0x19bbab(0x1ee)?_0x19bbab(0x1b2):_0x19bbab(0x190);for(const _0x797d82 of _0x32ca5e){const _0x36c255=Utils[_0x19bbab(0x24a)](_0x797d82[_0x19bbab(0x25d)]);_0x797d82[_0x19bbab(0x15f)]===_0x1917d2?_0x321504+=_0x19bbab(0x16c)+_0x4078eb+'\x22>'+_0x36c255+_0x19bbab(0x171):_0x321504+=_0x36c255;}return _0x321504;}function getFileLanguage(_0x1675a6){const _0x2da1a5=_0x5299df,_0x536ef7=_0x1675a6[_0x2da1a5(0x1dd)]('.')[_0x2da1a5(0x279)]()[_0x2da1a5(0x17a)](),_0x4211fd={'js':_0x2da1a5(0x2c9),'jsx':_0x2da1a5(0x2c9),'ts':_0x2da1a5(0x28d),'tsx':_0x2da1a5(0x28d),'py':_0x2da1a5(0x23d),'java':_0x2da1a5(0x19a),'c':'c','cpp':_0x2da1a5(0x216),'cs':_0x2da1a5(0x1ce),'go':'go','rs':_0x2da1a5(0x1dc),'php':_0x2da1a5(0x2ab),'rb':_0x2da1a5(0x248),'html':'xml','css':_0x2da1a5(0x2c1),'json':_0x2da1a5(0x1a9),'yml':'yaml','yaml':'yaml','md':_0x2da1a5(0x195),'sh':_0x2da1a5(0x281),'bash':'bash'};return _0x4211fd[_0x536ef7]||null;}function calculateDiffStats(_0x2905d2){const _0x3c5a36=_0x5299df;let _0x9854a2=0x0,_0x4a61c8=0x0,_0x455d75=0x0;return _0x2905d2[_0x3c5a36(0x1ca)](_0x396160=>{const _0x3e5108=_0x3c5a36;let _0x5c89bc=0x0,_0x1b74e5=0x0;_0x396160['hunks'][_0x3e5108(0x1ca)](_0x22c836=>{const _0x50435e=_0x3e5108;_0x22c836['lines'][_0x50435e(0x1ca)](_0x497221=>{const _0x4d013c=_0x50435e;if(_0x497221[_0x4d013c(0x1ac)]('+'))_0x5c89bc+=0x1;else{if(_0x497221[_0x4d013c(0x1ac)]('-'))_0x1b74e5+=0x1;}});}),(_0x5c89bc+_0x1b74e5>0x0||_0x396160[_0x3e5108(0x249)])&&(_0x455d75+=0x1),_0x9854a2+=_0x5c89bc,_0x4a61c8+=_0x1b74e5;}),{'additions':_0x9854a2,'deletions':_0x4a61c8,'files':_0x455d75};}function renderUnifiedDiff(_0x43a743,_0x2e370b){const _0x1f2da7=_0x5299df;return _0x43a743[_0x1f2da7(0x187)]((_0x1f144f,_0x27087e)=>{const _0x2caefd=_0x1f2da7,_0x43318f=_0x1f144f[_0x2caefd(0x21c)]||_0x1f144f[_0x2caefd(0x257)]||'unknown',_0x5c5869=_0x2caefd(0x255)+_0x2e370b+'-'+_0x27087e,_0x2d4cf2=getFileLanguage(_0x43318f),{additions:_0x463ff9,deletions:_0x219a93}=calculateDiffStats([_0x1f144f]),_0x58b128=getCollapsedState(_0x2e370b,_0x43318f),_0x2c55af=getFileStatus(_0x1f144f,_0x463ff9,_0x219a93),_0xc9c6f9=_0x2c55af===_0x2caefd(0x268)?'A':_0x2c55af===_0x2caefd(0x162)?'D':'M',_0xd67f1e=_0x1f144f[_0x2caefd(0x226)][_0x2caefd(0x187)](_0x359e26=>{const _0x5641b5=_0x2caefd,{oldStart:_0x5e64cd,newStart:_0x416e32}=parseHunkHeader(_0x359e26[_0x5641b5(0x2c5)]);let _0x559b7f=_0x5e64cd,_0x235baf=_0x416e32;const _0x59783c=_0x359e26[_0x5641b5(0x2ae)]['map'](_0x40b421=>({'line':_0x40b421,'type':_0x40b421[_0x5641b5(0x1ac)]('+')?'add':_0x40b421[_0x5641b5(0x1ac)]('-')?'remove':_0x40b421[_0x5641b5(0x1ac)]('\x5c')?_0x5641b5(0x16b):_0x5641b5(0x218)}));let _0x1a7c2a=0x0;while(_0x1a7c2a<_0x59783c[_0x5641b5(0x148)]){if(_0x59783c[_0x1a7c2a][_0x5641b5(0x15f)]===_0x5641b5(0x231)){let _0x5668b4=_0x1a7c2a,_0x478e99=_0x1a7c2a;while(_0x478e99<_0x59783c[_0x5641b5(0x148)]&&_0x59783c[_0x478e99][_0x5641b5(0x15f)]===_0x5641b5(0x231))_0x478e99++;let _0x205bcb=_0x478e99,_0x3e14fb=_0x205bcb;while(_0x3e14fb<_0x59783c['length']&&_0x59783c[_0x3e14fb][_0x5641b5(0x15f)]===_0x5641b5(0x1ee))_0x3e14fb++;const _0x3334a4=_0x478e99-_0x5668b4,_0x50a790=_0x3e14fb-_0x205bcb,_0x18396e=Math[_0x5641b5(0x2b4)](_0x3334a4,_0x50a790);for(let _0x579678=0x0;_0x579678<_0x18396e;_0x579678++){const _0x469751=_0x59783c[_0x5668b4+_0x579678][_0x5641b5(0x1fe)][_0x5641b5(0x1e5)](0x1),_0x48e0f4=_0x59783c[_0x205bcb+_0x579678]['line'][_0x5641b5(0x1e5)](0x1),_0x23f251=computeWordDiff(_0x469751,_0x48e0f4);_0x59783c[_0x5668b4+_0x579678][_0x5641b5(0x24d)]=_0x23f251[_0x5641b5(0x234)],_0x59783c[_0x205bcb+_0x579678]['wordDiff']=_0x23f251[_0x5641b5(0x263)];}_0x1a7c2a=_0x3e14fb;}else _0x1a7c2a++;}const _0x1621ae=_0x59783c[_0x5641b5(0x187)](_0x2e18af=>{const _0x18424e=_0x5641b5,_0x4068f5=_0x2e18af[_0x18424e(0x1fe)];if(_0x4068f5[_0x18424e(0x1ac)]('+')){const _0x22972d=_0x4068f5[_0x18424e(0x1e5)](0x1),_0x730c63=_0x2e18af[_0x18424e(0x24d)]?renderDiffLineWithWordHighlight(_0x22972d,_0x2e18af[_0x18424e(0x24d)],'add',_0x2d4cf2):highlightDiffLine(_0x22972d,_0x2d4cf2),_0xb1ace0=_0x18424e(0x2c8)+_0x235baf+'</span><span\x20class=\x22diff-line-content\x22><span\x20class=\x22diff-prefix\x22>+</span>'+_0x730c63+_0x18424e(0x1d2);return _0x235baf+=0x1,_0xb1ace0;}if(_0x4068f5[_0x18424e(0x1ac)]('-')){const _0x418c02=_0x4068f5[_0x18424e(0x1e5)](0x1),_0x567e21=_0x2e18af[_0x18424e(0x24d)]?renderDiffLineWithWordHighlight(_0x418c02,_0x2e18af[_0x18424e(0x24d)],_0x18424e(0x231),_0x2d4cf2):highlightDiffLine(_0x418c02,_0x2d4cf2),_0x4ca71d=_0x18424e(0x24f)+_0x559b7f+_0x18424e(0x144)+_0x567e21+'</span></div>';return _0x559b7f+=0x1,_0x4ca71d;}if(_0x4068f5[_0x18424e(0x1ac)]('\x5c'))return _0x18424e(0x180)+Utils['escapeHtml'](_0x4068f5)+_0x18424e(0x1d2);const _0x440ef9=_0x4068f5[_0x18424e(0x1ac)]('\x20')?_0x4068f5[_0x18424e(0x1e5)](0x1):_0x4068f5,_0x182c99=highlightDiffLine(_0x440ef9,_0x2d4cf2),_0x1a9d22='<div\x20class=\x22diff-line\x20diff-context\x22><span\x20class=\x22diff-line-num\x20diff-line-num-old\x22>'+_0x559b7f+'</span><span\x20class=\x22diff-line-num\x20diff-line-num-new\x22>'+_0x235baf+_0x18424e(0x2a2)+_0x182c99+_0x18424e(0x1d2);return _0x559b7f+=0x1,_0x235baf+=0x1,_0x1a9d22;})[_0x5641b5(0x142)]('');return _0x5641b5(0x1e1)+Utils['escapeHtml'](_0x359e26[_0x5641b5(0x2c5)])+_0x5641b5(0x244)+_0x1621ae+_0x5641b5(0x244);})[_0x2caefd(0x142)](''),_0x582261=_0xd67f1e||'<div\x20class=\x22diff-hunk\x22><div\x20class=\x22diff-hunk-header\x22>No\x20textual\x20diff\x20available</div></div>';return _0x2caefd(0x18c)+_0x5c5869+_0x2caefd(0x2a8)+_0x5c5869+'\x22\x20data-file-name=\x22'+Utils[_0x2caefd(0x24a)](_0x43318f)+_0x2caefd(0x22d)+_0x2c55af+'\x22>'+_0xc9c6f9+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-name\x22>'+Utils[_0x2caefd(0x24a)](_0x43318f)+_0x2caefd(0x272)+_0x463ff9+_0x2caefd(0x225)+_0x219a93+_0x2caefd(0x183)+_0x5c5869+'\x22\x20data-collapsed=\x22'+_0x58b128+_0x2caefd(0x220)+(_0x58b128?_0x2caefd(0x25f):'Collapse')+_0x2caefd(0x239)+(_0x58b128?_0x2caefd(0x260):'')+'\x22\x20id=\x22'+_0x5c5869+'\x22>'+_0x582261+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderSplitDiff(_0x4c8b4c,_0x414cdc){const _0x1e5721=_0x5299df;return _0x4c8b4c[_0x1e5721(0x187)]((_0xb51e63,_0x5b77cb)=>{const _0x2ef2c8=_0x1e5721,_0x8e7d45=_0xb51e63['newPath']||_0xb51e63[_0x2ef2c8(0x257)]||_0x2ef2c8(0x241),_0x1192af=_0x2ef2c8(0x255)+_0x414cdc+'-'+_0x5b77cb,_0x314a3c=getFileLanguage(_0x8e7d45),{additions:_0x15e987,deletions:_0x322746}=calculateDiffStats([_0xb51e63]),_0x311367=getCollapsedState(_0x414cdc,_0x8e7d45),_0x19a967=getFileStatus(_0xb51e63,_0x15e987,_0x322746),_0x3b7429=_0x19a967===_0x2ef2c8(0x268)?'A':_0x19a967===_0x2ef2c8(0x162)?'D':'M',_0x9a6edf=_0xb51e63[_0x2ef2c8(0x226)]['map'](_0x17afe3=>{const _0x29d04=_0x2ef2c8,{oldStart:_0x164e55,newStart:_0x54b7e2}=parseHunkHeader(_0x17afe3[_0x29d04(0x2c5)]);let _0x49ba45=_0x164e55,_0x560e69=_0x54b7e2;const _0x406b74=[],_0x1deb54=_0x17afe3[_0x29d04(0x2ae)];let _0x410bda=0x0;while(_0x410bda<_0x1deb54[_0x29d04(0x148)]){const _0x46508b=_0x1deb54[_0x410bda];if(_0x46508b[_0x29d04(0x1ac)]('\x20')){const _0x244a08=_0x46508b[_0x29d04(0x1e5)](0x1);_0x406b74[_0x29d04(0x247)](renderSplitRow({'type':_0x29d04(0x218),'lineNum':_0x49ba45,'content':_0x244a08},{'type':_0x29d04(0x218),'lineNum':_0x560e69,'content':_0x244a08},_0x314a3c)),_0x49ba45+=0x1,_0x560e69+=0x1,_0x410bda+=0x1;continue;}if(_0x46508b[_0x29d04(0x1ac)]('-')){const _0x6b074f=[];while(_0x410bda<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x410bda][_0x29d04(0x1ac)]('-')){_0x6b074f[_0x29d04(0x247)](_0x1deb54[_0x410bda][_0x29d04(0x1e5)](0x1)),_0x410bda+=0x1;}const _0xd784d9=[];let _0x30545f=_0x410bda;while(_0x30545f<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x30545f]['startsWith']('+')){_0xd784d9[_0x29d04(0x247)](_0x1deb54[_0x30545f][_0x29d04(0x1e5)](0x1)),_0x30545f+=0x1;}const _0x13969d=Math[_0x29d04(0x18d)](_0x6b074f[_0x29d04(0x148)],_0xd784d9[_0x29d04(0x148)]);for(let _0x42646b=0x0;_0x42646b<_0x13969d;_0x42646b++){const _0x3e494a=_0x6b074f[_0x42646b]?{'type':'remove','lineNum':_0x49ba45++,'content':_0x6b074f[_0x42646b]}:{'type':'empty','lineNum':'','content':''},_0x4c2cc4=_0xd784d9[_0x42646b]?{'type':_0x29d04(0x1ee),'lineNum':_0x560e69++,'content':_0xd784d9[_0x42646b]}:{'type':_0x29d04(0x1db),'lineNum':'','content':''};_0x406b74[_0x29d04(0x247)](renderSplitRow(_0x3e494a,_0x4c2cc4,_0x314a3c));}_0x410bda=_0x30545f;continue;}if(_0x46508b[_0x29d04(0x1ac)]('+')){const _0x2d54e8=[];while(_0x410bda<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x410bda]['startsWith']('+')){_0x2d54e8[_0x29d04(0x247)](_0x1deb54[_0x410bda][_0x29d04(0x1e5)](0x1)),_0x410bda+=0x1;}_0x2d54e8[_0x29d04(0x1ca)](_0x1267c0=>{const _0x579471=_0x29d04;_0x406b74[_0x579471(0x247)](renderSplitRow({'type':_0x579471(0x1db),'lineNum':'','content':''},{'type':_0x579471(0x1ee),'lineNum':_0x560e69++,'content':_0x1267c0},_0x314a3c));});continue;}if(_0x46508b[_0x29d04(0x1ac)]('\x5c')){_0x406b74[_0x29d04(0x247)](renderSplitRow({'type':_0x29d04(0x16b),'lineNum':'','content':_0x46508b},{'type':_0x29d04(0x16b),'lineNum':'','content':_0x46508b},_0x314a3c)),_0x410bda+=0x1;continue;}_0x410bda+=0x1;}const _0x32e8f5=_0x406b74['join']('')||_0x29d04(0x129);return _0x29d04(0x1ed)+Utils[_0x29d04(0x24a)](_0x17afe3[_0x29d04(0x2c5)])+_0x29d04(0x224)+_0x32e8f5+_0x29d04(0x164);})[_0x2ef2c8(0x142)](''),_0x28d8f1=_0x9a6edf||'<div\x20class=\x22diff-hunk\x22><div\x20class=\x22diff-hunk-header\x22>No\x20textual\x20diff\x20available</div></div>';return _0x2ef2c8(0x18c)+_0x1192af+_0x2ef2c8(0x2a8)+_0x1192af+'\x22\x20data-file-name=\x22'+Utils[_0x2ef2c8(0x24a)](_0x8e7d45)+_0x2ef2c8(0x22d)+_0x19a967+'\x22>'+_0x3b7429+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-name\x22>'+Utils['escapeHtml'](_0x8e7d45)+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-stat\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22diff-add\x22>+'+_0x15e987+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22diff-del\x22>-'+_0x322746+_0x2ef2c8(0x183)+_0x1192af+_0x2ef2c8(0x1f2)+_0x311367+_0x2ef2c8(0x220)+(_0x311367?_0x2ef2c8(0x25f):'Collapse')+_0x2ef2c8(0x239)+(_0x311367?_0x2ef2c8(0x260):'')+_0x2ef2c8(0x15a)+_0x1192af+'\x22>'+_0x28d8f1+_0x2ef2c8(0x1aa);})['join']('');}function renderSplitRow(_0x2c48d0,_0x421089,_0x45867a){const _0x2f4c39=_0x5299df;return _0x2f4c39(0x1be)+renderSplitCell(_0x2c48d0,_0x45867a)+_0x2f4c39(0x28f)+renderSplitCell(_0x421089,_0x45867a)+_0x2f4c39(0x1a2);}function renderSplitCell(_0xab954c,_0x204af9){const _0x47a315=_0x5299df,_0x3addaf=_0x47a315(0x1b8)+_0xab954c[_0x47a315(0x15f)],_0x4b5c1d=_0xab954c[_0x47a315(0x1c1)]===0x0?'':_0xab954c[_0x47a315(0x1c1)];let _0x387fde=_0x47a315(0x17c);if(_0xab954c[_0x47a315(0x15f)]===_0x47a315(0x16b))_0x387fde=Utils['escapeHtml'](_0xab954c[_0x47a315(0x134)]);else _0xab954c[_0x47a315(0x15f)]!=='empty'&&(_0x387fde=highlightDiffLine(_0xab954c[_0x47a315(0x134)],_0x204af9));return _0x47a315(0x198)+_0x3addaf+_0x47a315(0x201)+_0x4b5c1d+_0x47a315(0x1f7)+_0x387fde+_0x47a315(0x27e);}function bindDiffToggleHandlers(_0x13dc15){const _0x3633f8=_0x5299df,_0x2c2143=elements['diffContainer']['querySelectorAll'](_0x3633f8(0x1e6));_0x2c2143[_0x3633f8(0x1ca)](_0x277e03=>{const _0x66700b=_0x3633f8;_0x277e03['addEventListener'](_0x66700b(0x299),_0x3555a6=>{const _0x3cbe12=_0x66700b;if(_0x3555a6[_0x3cbe12(0x176)][_0x3cbe12(0x1fc)](_0x3cbe12(0x2ba)))return;const _0xab3834=_0x277e03[_0x3cbe12(0x215)]['diffId'];toggleDiff(_0xab3834,_0x277e03[_0x3cbe12(0x215)][_0x3cbe12(0x1d8)],_0x13dc15);});});const _0x2525d3=elements[_0x3633f8(0x167)][_0x3633f8(0x246)]('.file-diff-toggle-btn');_0x2525d3['forEach'](_0x1672a3=>{_0x1672a3['addEventListener']('click',_0x26108e=>{const _0x52eb8b=_0x1b4a;_0x26108e[_0x52eb8b(0x2b0)]();const _0x3faaff=elements[_0x52eb8b(0x167)][_0x52eb8b(0x1c3)](_0x52eb8b(0x13b)+_0x1672a3[_0x52eb8b(0x215)]['diffId']+'\x22]'),_0x7ef087=_0x3faaff?.[_0x52eb8b(0x215)][_0x52eb8b(0x1d8)]||'';toggleDiff(_0x1672a3[_0x52eb8b(0x215)][_0x52eb8b(0x2be)],_0x7ef087,_0x13dc15);});});}function toggleDiff(_0xc6835,_0x5de072,_0x46e35b){const _0x2f34c3=_0x5299df,_0xb96c1a=document[_0x2f34c3(0x1ff)](_0xc6835),_0x20972e=elements[_0x2f34c3(0x167)]['querySelector'](_0x2f34c3(0x13b)+_0xc6835+'\x22]'),_0x19ed39=_0x20972e?.[_0x2f34c3(0x1c3)](_0x2f34c3(0x2ba));if(!_0xb96c1a)return;const _0x5204d6=_0xb96c1a['classList'][_0x2f34c3(0x20b)]('collapsed');_0x19ed39&&(_0x19ed39[_0x2f34c3(0x215)][_0x2f34c3(0x260)]=String(_0x5204d6),_0x19ed39[_0x2f34c3(0x133)](_0x2f34c3(0x237),_0x5204d6?'Expand':_0x2f34c3(0x1ad)));const _0x1a5af1=getStorageKey(_0x46e35b,_0x5de072);localStorage[_0x2f34c3(0x238)](_0x1a5af1,String(_0x5204d6));}function setAllDiffCollapsed(_0x2f1c2c){const _0x3ec1be=_0x5299df;if(!state[_0x3ec1be(0x18b)]?.[_0x3ec1be(0x20f)]?.[_0x3ec1be(0x274)])return;const _0x1f56fb='git-history-'+state[_0x3ec1be(0x18b)][_0x3ec1be(0x20f)]['hash'],_0x407fe3=elements[_0x3ec1be(0x167)][_0x3ec1be(0x246)](_0x3ec1be(0x2ca));_0x407fe3[_0x3ec1be(0x1ca)](_0x4d7489=>{const _0x1a85a3=_0x3ec1be;_0x4d7489[_0x1a85a3(0x28e)][_0x1a85a3(0x20b)](_0x1a85a3(0x260),_0x2f1c2c);const _0x3f28ec=elements[_0x1a85a3(0x167)][_0x1a85a3(0x1c3)]('.file-diff-header[data-diff-id=\x22'+_0x4d7489['id']+'\x22]'),_0x35e1c4=_0x3f28ec?.[_0x1a85a3(0x1c3)](_0x1a85a3(0x2ba)),_0x5b1d4e=_0x3f28ec?.[_0x1a85a3(0x215)][_0x1a85a3(0x1d8)]||'';_0x35e1c4&&(_0x35e1c4['dataset'][_0x1a85a3(0x260)]=String(_0x2f1c2c),_0x35e1c4[_0x1a85a3(0x133)](_0x1a85a3(0x237),_0x2f1c2c?'Expand':_0x1a85a3(0x1ad))),_0x5b1d4e&&localStorage['setItem'](getStorageKey(_0x1f56fb,_0x5b1d4e),String(_0x2f1c2c));});}function getStorageKey(_0x42a4bc,_0x2d1e15){return _0x42a4bc+'-'+safeBase64(_0x2d1e15);}function _0x3be2(){const _0x1a99c2=['zxnJyxbLshrTBa','zMLSzu5HDKXPC3q','Cgf0y2G','D29YzerPzMy','DgLTzxn0yw1W','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTCMvTB3zLiJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw9Szci+','y29TBwL0lwnVDw50','mZa5mJCWm2TiAwjPDW','qwnJzxnZigrLBMLLza','Bg9HzgLUz0HPC3rVCNK','zNjVBq','zgLMzI0','uMv2zxj0ienVBw1PDa','B2XKugf0Aa','phnWyw4Gy2XHC3m9iMrLBci+lq','C2vSzwn0zwrdB21TAxq','y3vYCMvUDejYyw5JAa','Bwf0y2G','icHKzwzHDwX0kq','Dgv4Da','yNjHBMnOugLSBa','rxHWyw5K','y29SBgfWC2vK','CMv2zxj0lwj0BG','zxf1ywW','BMv3','CMvTB3rL','BwvZC2fNzq','zxHWyw5KqwXSqNrU','cIaGicaGicaG','ywrKzwq','cIaGica8BgKGy2XHC3m9iMnVBw1PDc1PDgvTignVBw1PDc1PDgvTlxnRzwXLDg9UiJ4kicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TBwvZC2fNzsi+pc9KAxy+cIaGicaGidXKAxyGy2XHC3m9iNnRzwXLDg9Ulw1LDgeIpGOGicaGicaGidXKAxyGy2XHC3m9iNnRzwXLDg9UihnRzwXLDg9Ulwf2yxrHCIi+pc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TDgv4Dci+pc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TDgv4Dc1ZAg9YDci+pc9KAxy+cIaGicaGidWVzgL2pGOGicaGpc9SAt4kica','BwfPBMXPBMu','y29TBwL0lxbSywnLAg9SzgvY','DhjPBq','vw5HyMXLihrVigXVywqGAgLZDg9YEs4','DgvZDa','zMLSzu5HDKnVDw50','y29WEuHHC2HcDg4','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjMAwXLlw5HDI1Uyw1LiIb0AxrSzt0I','pc9ZCgfUpGOGicaGicaGicaGica8C3bHBIbJBgfZCZ0IzMLSzs1KAwzMlxn0yxqIpGOGicaGicaGicaGicaGidXZCgfUignSyxnZpsjKAwzMlwfKzci+kW','zMLSzuLKEa','AgfZAa','cIaGicaGidXKAxyGy2XHC3m9iMnVBw1PDc1TzxnZywDLiJ4','yNjHBMnOtMfTzq','uMv2zxj0','BwfPBMXPBMuTC2vSzwn0','Cg9W','AxnnzxjNzq','DMLLD09UuhjVDMLKzxjcDg4','zgf0ys1ZB3vYy2uTAw5KAwnHDg9Y','zgf0yvnVDxjJzq','pc9ZCgfUpGOGicaGpc9KAxy+cIaG','C2XPy2u','C2vSzwn0zwrcCMfUy2G','yMfZAa','AgLNAgXPz2H0','tM8GBwvZC2fNzq','Bw9KAwzPzwq','C291CMnL','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpJXSAw5LihGXpsiXmIiGEte9iJuIihGYpsiXmIiGEti9iJe5iI8+pgXPBMuGEde9iJuIihKXpsiXmIiGEdi9iJe5iIb5mJ0ImtiIlZ48l3n2zZ4','q2fUy2vS','lMnVBw1PDc1PDgvT','l2nVBw1PDc8','zMLSzs1UyxyTDg9Nz2XL','zgLMzI1ZDgf0CW','Aw1WBgvTzw50','DhLWzxnJCMLWDa','y2XHC3nmAxn0','cIaGicaGia','rMfPBgvKihrVigXVywqGCMvWB3nPDg9YAwvZ','ywn0AxzL','DxjS','tg9HzgLUzYbOAxn0B3j5lI4U','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGyNjHBMnOpc9VChrPB24+','uMvZDg9YzsbKAwzMihbHBMvSicHfC2mGB3iGBsK','y29TBwL0tgLZDa','BNvTzxjPyW','ChjLDKj0BG','y2XPy2S','Bg9HzgLUz0nVBw1PDa','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+tg9HzgLUzYbKAwzMlI4Upc9KAxy+','y29TBwL0sgfZAa','C2vHCMnOsw5WDxq','BMv4Dej0BG','CgfNAw5HDgLVBG','mI1KAwDPDa','zgv2lMf6DxjLlMnVBq','pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTy29UDgvUDci+ia','z2L0AhvIlMnVBq','icHJDxjYzw50kq','zgLMzLn0yxrZ','z2v0rw52AxjVBM1LBNq','C2HVD1n1y2nLC3m','iJ4kicaGicaGica8zgL2ignSyxnZpsjMAwXLlwrPzMyTAgvHzgvYiIbKyxrHlwrPzMyTAwq9iG','lMzPBguTBMf2lwnVBNrHAw5LCG','A2v5','CgHW','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjMAwXLlw5HDI1ZDgf0CYi+cIaGicaGicaGica','CMvMywn0B3i','BgLUzxm','zM9YBwf0uMvSyxrPDMvuAw1L','C3rVCfbYB3bHz2f0Aw9U','rMfPBgvKihrVigXVywqGyNjHBMnOzxm6','y29SBgfWC2uTywXSlwj0BG','yNvN','BwLU','neT5C0POBW','B2zMC2v0','zw52AxjVBM1LBNrZoMDPDa','cIaGicaGidXZDMCGy2XHC3m9iNnVDxjJzs1Py29UiIb3Awr0Ad0ImtqIigHLAwDODd0ImtqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIiGC3rYB2TLlwXPBMvJyxa9iNjVDw5KiIbZDhjVA2uTBgLUzwPVAw49iNjVDw5KiJ4kicaGicaGica8y2LYy2XLign4psiXmIiGy3K9iJeYiIbYpsiXmci+pc9JAxjJBgu+cIaGicaGicaGpgXPBMuGEde9iJiIihKXpsiXmIiGEdi9iJiYiIb5mJ0ImtiIpJWVBgLUzt4kicaGicaGica8Cgf0AcbKpsjnmtiGmMeXns4Zide1lJmGmcaWideGncaXmcaXns4Zide1lJmGmcaWideTncaXmcaXns4Zide1lJmGmcaWideTnc0XmcaXns4Zide1lJmGmcaWideGnc0XmhOIpJWVCgf0Ad4kicaGicaGpc9ZDMC+cIaGicaGifjLBw90zqOGicaG','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGCMvWB3nPDg9YEtWVB3b0Aw9UpG','lMzPBguTzgLMzI10B2DNBguTyNrU','y29WEvrVq2XPCgjVyxjK','rw50zxi','ugfYzw50ia','zgLMzKLK','lca2nsuSidu1jsK','zgf0zq','y3nZ','q29TBwL0ihjLDMvYDgvK','q29TBwL0igHHC2GGy29WAwvK','zMLSzu5HDKnSB3nL','AgvHzgvY','phnWyw4Gy2XHC3m9iMnVBw1PDc10ywCIpK1LCMDLpc9ZCgfUpG','y29TBwL0lwrPzMy','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTywrKiJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw9Szci+pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTBNvTigrPzMyTBgLUzs1UDw0TBMv3iJ4','AMf2yxnJCMLWDa','lMzPBguTzgLMzI1JB250zw50','ic0G','zw52lxnLBgvJDa','C2HVD1rVyxn0','zgLMzIaTlwDPDa','z2L0BgfIlMnVBq','pgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ5oBYb0zxH0DwfSigrPzMyGyxzHAwXHyMXLpc9KAxy+','ywrKAxrPB25Z','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpJXSAw5LihGXpsi1iIb5mt0ImtiIihGYpsiXosiGEti9iJeYiI8+pc9ZDMC+','ChjLDI1WywDLlwj0BG','CMvWB3m','cIaGicaGicaGpc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjJB21TAxqTDgLTzsi+','B3bLBG','yNjHBMnOlxnLBgvJDa','y29TBwL0lw1LC3nHz2u','CM9Szq','C2v0qxr0CMLIDxrL','y29UDgvUDa','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+tM8Gy2HHBMDLCYbPBIb0AgLZignVBw1PDc48l2rPDJ4','yMX1CG','y2HVCMu','CMvWBgfJzq','Bg9HzgLUzW','A2v5zg93BG','lMzPBguTzgLMzI1OzwfKzxjBzgf0ys1KAwzMlwLKpsi','z2L0sgLZDg9YEujVzhK','C21VB3rO','y2HHCKf0','pg9WDgLVBIb2ywX1zt0IiJ5cCMfUy2GGBg9HzgLUzYbMywLSzwq8l29WDgLVBJ4','BgLTAxq','AhjLzG','AM9PBG','Bg9JywW','pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTBNvTigrPzMyTBgLUzs1UDw0TBMv3iJ48l3nWyw4+phnWyw4Gy2XHC3m9iMrPzMyTBgLUzs1JB250zw50iJ48C3bHBIbJBgfZCZ0IzgLMzI1WCMvMAxGIpI08l3nWyw4+','yNjHBMnOzxm','iIbKyxrHlwzPBguTBMfTzt0I','y29TBwL0twvZC2fNzq','BgvUz3rO','lNjLC3rVCMuTAwnVBG','CMvHzg1L','AgfZtw9Yzq','y29TBwL0qxv0Ag9Y','cIaGicaGidXSAsbJBgfZCZ0Iy29TBwL0lwXPC3qTzw1WDhKIpGOGicaGicaGidXKAxyGy2XHC3m9iMvTChr5lxn0yxrLlwLJB24IpGOGicaGicaGicaGphn2zYb3Awr0Ad0ImJqIigHLAwDODd0ImJqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIiGC3rYB2TLlwXPBMvJyxa9iNjVDw5KiIbZDhjVA2uTBgLUzwPVAw49iNjVDw5KiJ4kicaGicaGicaGicaGpgnPCMnSzsbJEd0ImtiIign5psiXmIiGCJ0ImtaIpJWVy2LYy2XLpGOGicaGicaGicaGica8BgLUzsb4mt0ImtiIihKXpsi4iIb4mJ0ImtiIihKYpsiXmIi+pc9SAw5LpGOGicaGicaGicaGica8BgLUzsb4mt0ImtiIihKXpsiXnIiGEdi9iJeYlJaXiIb5mJ0ImtyIpJWVBgLUzt4kicaGicaGicaGidWVC3zNpGOGicaGicaGidWVzgL2pGOGicaGicaGidXWpG','y3jLyxrLrwXLBwvUDa','C3rHCNq','yML0yNvJA2v0lM9YzW','Aw5Uzxjive1m','Aw5KzxGUAhrTBa','Aw5Zzxj0qMvMB3jL','lMzPBguTBMf2lwL0zw0','BMv4DfnPyMXPBMC','A2vLCfnLBgvJDgLVBG','y2XLyxiTC2vHCMnOlwj0BG','z2L0lwHPC3rVCNKTy29UDgvUDa','CgfYzw50tM9Kzq','iIbPzd0I','y2HHCKnVzgvbDa','Bwf0y2HLCW','yw5PBwf0Aw9UrgvSyxK','pc9WpGOGicaGica8l2XPpGOGicaG','DhLWzq','CMv0CNKTz2L0lwHPC3rVCNKTyNrU','DMfSDwu','zgvSzxrLza','z2L0lwHPC3rVCNKTzgLMzI12Awv3','pc9KAxy+cIaGicaGicaGpc9KAxy+cIaGicaGia','qML0yNvJA2v0','mZC1mZG1BLnYELfe','zgLMzKnVBNrHAw5LCG','y29TBwL0lxnLyxjJAa','yNjHBMnO','C2HVCNriyxnO','Bwv0yq','phnWyw4Gy2XHC3m9iG','z2v0tgfUz3vHz2u','igj5ia','zxjYB3i','nJq5oduWmhjXC0TouG','pc9ZCgfUpG','CMvWBW','Aw5WDxq','yxv0Ag9Y','Aw5JBhvKzxm','DgfYz2v0','y29TBwL0lwXPC3q','pc9ZCgfUpGOGicaGphnWyw4Gy2XHC3m9iMrPzMyTC3rHDc1ZzxbHCMf0B3iIpNW8l3nWyw4+cIaGica8C3bHBIbJBgfZCZ0IzgLMzI1ZDgf0lwfKzci+kW','qxjYB3DeB3DU','Dg9mB3DLCKnHC2u','z2v0q3vYCMvUDfvZzxi','jM5IC3a7','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+vw5HyMXLihrVigXVywqGzgLMzI48l2rPDJ4','pc9ZCgfUpGOGicaGicaGia','mZy1mJCWngTLDgLbzW','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTBwv0ysi+phnWyw4Gy2XHC3m9iMrPzMyTBgLUzs1UDw0GzgLMzI1SAw5Llw51Bs1VBgqIpJWVC3bHBJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw5LDYi+pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTy29UDgvUDci+','z2L0lwHPC3rVCNKTBg9HzgLUzW','zxHWyw5KlwfSBc1IDg4','pc9ZCgfUpGOGicaGicaGicaGica8l3nWyw4+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMzPBguTzgLMzI10B2DNBguTyNrUiIbKyxrHlwrPzMyTAwq9iG','pc9ZCgfUpGOGia','DMLZDwfSC3r1zgLVlMnVBq','yxbWzw5Kq2HPBgq','BwfW','nM1YsLrhBa','BMfTzq','igzPBgu','y29TBwL0rgv0ywLS','cIaGicaGidXKAxyGy2XHC3m9iMzPBguTzgLMzIiGAwq9iMzPBguT','Bwf4','zMLSzs1UyxyTy291BNq','lM1HEgLTAxPLlwLJB24','zgvSzxrL','Bg9HzgLUz0jYyw5JAgvZ','C3bHBG','vw5RBM93BG','Bwf4Aw1PEMvcDg4','BwfYA2rVD24','CMvWBY1ICMfUy2GTBMfTzq','zxjYB3jnzxnZywDL','cIaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlwnLBgWG','ywrKrxzLBNrmAxn0zw5LCG','AMf2yq','C2HVD0vYCM9Y','l2nVBw1PDhmV','u2vSzwn0igeGCMvWB3nPDg9YEsb0BYbSB2fKigHPC3rVCNKU','odvev3vYvfK','r2L0igHPC3rVCNKGAw5PDgLHBgL6yxrPB24GzxjYB3i6','BwfPBMXPBMvtzwXLy3q','y29UDgfPBNm','cIaGica8l2rPDJ4kica','zw52AxjVBM1LBNrZ','cIaGicaGicaGpc9ZCgfUpGOGicaGica8l2XPpGOGicaG','zw52u2vSzwn0','DgL0Bgu','CgfYzw50CW','y2XHC3noyw1L','ANnVBG','pc9KAxy+cIaGicaGidWVzgL2pGOGicaG','rMfPBgvKihrVigXVywqGy29TBwL0igHPC3rVCNK','C3rHCNrZv2L0Aa','q29SBgfWC2u','Dhj1zq','zMLSBa','C2vSzwn0zwq','B3b0Aw9U','Aw5Zzxj0','yML0yNvJA2v0lG','y29SBgfWC2vbBgXcDg4','C2vHCMnO','zML4','zg9JDw1LBNrHDgLVBG','C3bSAxqT','zw1HAwW','yNv0Dg9U','AxnezwzHDwX0','lMzPBguTzgLMzG','zgvSzxrPB25Z','cIaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlxjVDYi+cIaGicaGia','re9nq29UDgvUDeXVywrLza','pg9WDgLVBIb2ywX1zt0IiJ5mB2fKAw5NigjYyw5JAgvZlI4Upc9VChrPB24+','BgLUzu51Bq','C2vSzwn0zwrszxbV','CxvLCNLtzwXLy3rVCG','z2v0rw52AxjVBM1LBNrszxbVqNjHBMnOzxm','C2HVDW','CMvWBY1ZzwXLy3q','ChjLDMvUDerLzMf1Bhq','zw4Tvvm','zMLUza','zM9YrwfJAa','zgvSzxrLzcbMAwXLig1Vzgu','z2v0rw52AxjVBM1LBNrszxbVq29TBwL0','uMv2zxj0ignVBw1PDca','y3nOyxjW','C29Tzq','DgfIsw5KzxG','q29TBwL0oIa','pc9ZCgfUpJWVzgL2pG','zgLMzI13B3jKlxjLBw92zq','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjJB21TAxqTC2HVCNqTAgfZAci+','yNjHBMnOu2vSzwn0','zgLMzG','Dw5ZAgLMDa','zMLSzu5HBwu','mtqWnJrgtNjbu1O','AxndDxjYzw50','zw1WDhK','CNvZDa','C3bSAxq','zMLSzxm','Axnoyu4','zgvMyxvSDejYyw5JAa','pgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ48zgL2ignSyxnZpsjKAwzMlwH1BMSTAgvHzgvYiJ4','rMfPBgvKihrVigXVywqGy29TBwL0igrLDgfPBhm','Dg9vChbLCKnHC2u','z2v0sxrLBq','C3vIC3rYAw5N','lMzPBguTzgLMzI1OzwfKzxi','zgLZCgf0y2HfDMvUDa','zMLSzu5HDLnPzgvIyxi','DMLLDY1VBI1WCM92AwrLCI1IDg4','z2L0BgfIlG','phnWyw4Gy2XHC3m9iMfKzci+kW','AhnSka','cIaGicaGicaGpgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ4kicaGicaGicaGidXKAxyGy2XHC3m9iMrPzMyTAhvUAY1OzwfKzxiIpG','ywrK','C2v0','pYbuAgLZihDPBgWGy3jLyxrLigeGBMv3ignVBw1PDcb0Agf0ihvUzg9LCYb0AgvZzsbJAgfUz2vZlG','z2L0AhvIlG','iIbKyxrHlwnVBgXHChnLzd0I','r2L0shvI','BM93','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGzw52AxjVBM1LBNq8l29WDgLVBJ4','twf4Aw1PEMuGzgLMzIbWyw5LBcaOBsK','pc9ZCgfUpGOGicaGica8C3bHBIbJBgfZCZ0IC3bSAxqTBgLUzs1JB250zw50iJ4','zM9JDxm','z2L0lwHPC3rVCNKT','mZCWohjQC0zqrq','DMLLDW','y2XVC2vZDa','tM8Gy29TBwL0CYbTyxrJAcaI','BgLUzq','z2v0rwXLBwvUDej5swq','zMvHDa','iJ4kicaGicaGphnWyw4Gy2XHC3m9iNnWBgL0lwXPBMuTBNvTiJ4','C2nYB2XSsw50B1zPzxC','zgLZywjSzwq','rxnJyxbL','Aw5PDa','y29TBwL0q291BNq','Bg9JyxrPB24','CgXHy2vOB2XKzxi','C2vSzwn0zwrfBNzPCM9UBwvUDa','CMv2zxj0rw52AxjVBM1LBNrszxbVq29TBwL0','Dg9Nz2XL','qxjYB3DvCa','ntGXodiZmKzXuwfZza','Bwf4Aw1PEMvK','y29TBwL0','CMvWB1nLBgvJDa','ywn0AxzLrwXLBwvUDa','z2L0lwHPC3rVCNKTBwf4Aw1PEMvK','Dgv4DenVBNrLBNq','ig1HDgnOAw5Nici','zgf0yxnLDa','y3bW','CMv2zxj0qNrU','y29UDgv4Da','vMLLDYbVBIa','cIaGicaGidWVzgL2pGOGicaG','y29TBwL0CW','BMv3ugf0Aa','Dw5KzwzPBMvK','z2v0rw52AxjVBM1LBNrszxbVsgLZDg9YEq','BwvYz2vdB250CM9SCW','iIb0ExbLpsjIDxr0B24IigfYAweTBgfIzwW9iG','ywjZ','y2XLyxjtzwfYy2HcDg4','z2v0vgLTzq','pc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlxrHyMXLiJ4','pc9ZCgfUpGOGicaGicaGicaGicaGidXZCgfUignSyxnZpsjKAwzMlwrLBci+lq','AhvUA3m','Bwf4Aw1PEMuTzgLMzI1IDg4','iJ4kicaGicaGica8C3bHBIbJBgfZCZ0IzMLSzs1UyxyTAwnVBIa','C3r5Bgu','zgLMzLzPzxC','ntq5ntrbs3PICMy','AgLKzgvU','iJ4kicaGicaGicaGidXKAxyGy2XHC3m9iMzPBguTzgLMzI10AxrSzsi+cIaGicaGicaGicaGidXZCgfUignSyxnZpsjMAwXLlxn0yxr1CY1IywrNzsa','lI4U','y29WEs1OyxnOlwj0BG','y2HHBMDL','CMvTB3zL','lMDPDc1OAxn0B3j5lwjVzhK','rgLMzIbZEw50yxGGAgLNAgXPz2H0Aw5NigvYCM9YoG','B2XK','z2L0lwHPC3rVCNKTzxjYB3i','u2vSzwn0igjYyw5JAa','yxjPys1SywjLBa','C2v0sxrLBq','iJ48l2j1DhrVBJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjMAwXLlwrPzMyTy29UDgvUDca','cIaGicaGidXSAsbJBgfZCZ0IzMLSzs1UyxyTAxrLBsiGzgf0ys1MAwXLlwLKEd0I','BwvYz2uTy29UDhjVBhm','Aw5WDxqSihnLBgvJDcWGDgv4DgfYzwe','ChL0Ag9U','zMLSzs1UyxyTBgLZDa','pc9ZCgfUpGOGicaGicaGicaG','iJ4kicaGicaGicaGidXZCgfUignSyxnZpsjHDxrOB3iTyxzHDgfYiJ4','Dw5RBM93BG','z2v0','phnWyw4Gy2XHC3m9iMnVBw1PDc10ExbLlwLUzgLJyxrVCIa','pc9KAxy+','y29TBwL0lwrHDgu','CxvLCNLtzwXLy3rVCKfSBa','ChvZAa','CNvIEq','AxnezwXLDgvK'];_0x3be2=function(){return _0x1a99c2;};return _0x3be2();}function getCollapsedState(_0x54f219,_0x4994e3){const _0x415dbb=_0x5299df,_0x436301=localStorage[_0x415dbb(0x1e4)](getStorageKey(_0x54f219,_0x4994e3));return _0x436301===_0x415dbb(0x1ae);}function safeBase64(_0x23c000){try{return btoa(unescape(encodeURIComponent(_0x23c000)));}catch(_0x56a165){return btoa(_0x23c000);}}function formatDate(_0x4a2821){const _0x14affb=_0x5299df;if(!_0x4a2821)return'';const _0x400d9c=new Date(_0x4a2821);if(Number[_0x14affb(0x1df)](_0x400d9c[_0x14affb(0x223)]()))return _0x4a2821;return _0x400d9c['toLocaleString'](_0x14affb(0x1c8),{'month':'short','day':_0x14affb(0x297),'year':_0x14affb(0x297),'hour':_0x14affb(0x2a0),'minute':_0x14affb(0x2a0)});}function renderLoadingSkeletons(_0x159d17){const _0x3d7135=_0x5299df;return Array(_0x159d17)[_0x3d7135(0x1af)](0x0)['map'](()=>_0x3d7135(0x269))[_0x3d7135(0x142)]('');}function toggleFileNav(_0x13dbdb){const _0xc96bb9=_0x5299df;_0x13dbdb[_0xc96bb9(0x2b0)]();const _0x2e41a3=elements[_0xc96bb9(0x1e8)]?.['classList'][_0xc96bb9(0x20b)](_0xc96bb9(0x12f));_0x2e41a3&&renderFileNavList();}function closeFileNav(){const _0x41a1e7=_0x5299df;elements[_0x41a1e7(0x1e8)]?.['classList'][_0x41a1e7(0x231)](_0x41a1e7(0x12f));}function toggleMaximize(){const _0x37fa16=_0x5299df;if(!elements['gitHistoryBody'])return;const _0x35b64e=elements[_0x37fa16(0x13c)][_0x37fa16(0x28e)]['toggle'](_0x37fa16(0x20e)),_0x1b8133=elements[_0x37fa16(0x194)]?.[_0x37fa16(0x1c3)](_0x37fa16(0x18f)),_0x43550b=elements[_0x37fa16(0x194)]?.[_0x37fa16(0x1c3)](_0x37fa16(0x149));_0x1b8133&&_0x43550b&&(_0x1b8133[_0x37fa16(0x22c)]=_0x35b64e,_0x43550b[_0x37fa16(0x22c)]=!_0x35b64e),elements[_0x37fa16(0x194)]&&(elements[_0x37fa16(0x194)][_0x37fa16(0x1a6)]=_0x35b64e?_0x37fa16(0x295):_0x37fa16(0x1f6)),localStorage[_0x37fa16(0x238)](_0x37fa16(0x212),String(_0x35b64e));}function renderFileNavList(){const _0x4aafa6=_0x5299df;if(!state[_0x4aafa6(0x18b)]?.[_0x4aafa6(0x1de)]||!elements['fileNavList'])return;const _0x4d0444=state[_0x4aafa6(0x18b)][_0x4aafa6(0x1de)];elements[_0x4aafa6(0x24b)][_0x4aafa6(0x151)]=_0x4d0444[_0x4aafa6(0x187)]((_0x3f2498,_0x47a39d)=>{const _0x7f21f4=_0x4aafa6,_0x17ff02=_0x3f2498[_0x7f21f4(0x21c)]||_0x3f2498[_0x7f21f4(0x257)]||_0x7f21f4(0x241),_0x39f459=_0x17ff02[_0x7f21f4(0x1dd)]('/')[_0x7f21f4(0x279)](),{additions:_0x54dc95,deletions:_0x1b6efe}=calculateDiffStats([_0x3f2498]),_0x180904=getFileStatus(_0x3f2498,_0x54dc95,_0x1b6efe),_0x5f51f5=getStatusIcon(_0x180904);return _0x7f21f4(0x23a)+_0x47a39d+_0x7f21f4(0x146)+Utils[_0x7f21f4(0x24a)](_0x17ff02)+_0x7f21f4(0x228)+_0x180904+'\x22>'+_0x5f51f5+_0x7f21f4(0x271)+Utils[_0x7f21f4(0x24a)](_0x17ff02)+'\x22>'+Utils['escapeHtml'](_0x39f459)+_0x7f21f4(0x2ac)+(_0x54dc95>0x0?_0x7f21f4(0x1eb)+_0x54dc95+_0x7f21f4(0x171):'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x1b6efe>0x0?_0x7f21f4(0x258)+_0x1b6efe+_0x7f21f4(0x171):'')+_0x7f21f4(0x1a4);})[_0x4aafa6(0x142)](''),elements[_0x4aafa6(0x24b)][_0x4aafa6(0x246)](_0x4aafa6(0x154))[_0x4aafa6(0x1ca)](_0x2b6481=>{const _0x625b0a=_0x4aafa6;_0x2b6481[_0x625b0a(0x199)]('click',()=>{const _0x4a7175=_0x625b0a,_0x39a367=_0x2b6481[_0x4a7175(0x215)][_0x4a7175(0x273)],_0x3d2fbf=_0x4a7175(0x1f9)+state[_0x4a7175(0x18b)]['commit']['hash'],_0x51394b='diff-'+_0x3d2fbf+'-'+_0x39a367,_0x537fab=document[_0x4a7175(0x1ff)](_0x51394b);if(_0x537fab){if(_0x537fab[_0x4a7175(0x28e)][_0x4a7175(0x1a1)](_0x4a7175(0x260))){const _0x1ffbb8=elements['diffContainer']['querySelector'](_0x4a7175(0x13b)+_0x51394b+'\x22]'),_0x5d4f3b=_0x1ffbb8?.['dataset'][_0x4a7175(0x1d8)]||'';toggleDiff(_0x51394b,_0x5d4f3b,_0x3d2fbf);}const _0x212533=_0x537fab['closest'](_0x4a7175(0x1bc));_0x212533&&(_0x212533[_0x4a7175(0x202)]({'behavior':'smooth','block':_0x4a7175(0x14f)}),_0x212533['classList'][_0x4a7175(0x1ee)]('highlighted'),setTimeout(()=>_0x212533['classList'][_0x4a7175(0x231)]('highlighted'),0x5dc));}closeFileNav();});});}function getFileStatus(_0xf31aee,_0x4b93c1,_0x27e1c4){const _0x800e00=_0x5299df;if(_0xf31aee[_0x800e00(0x249)])return _0x800e00(0x162);if(_0x4b93c1>0x0&&_0x27e1c4===0x0)return'added';return _0x800e00(0x284);}function getStatusIcon(_0x3a3ac2){const _0x2b994c=_0x5299df;switch(_0x3a3ac2){case'added':return _0x2b994c(0x286);case _0x2b994c(0x162):return _0x2b994c(0x12b);default:return'<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22><path\x20d=\x22M11\x204H4a2\x202\x200\x200\x200-2\x202v14a2\x202\x200\x200\x200\x202\x202h14a2\x202\x200\x200\x200\x202-2v-7\x22/><path\x20d=\x22M18.5\x202.5a2.121\x202.121\x200\x200\x201\x203\x203L12\x2015l-4\x201\x201-4\x209.5-9.5z\x22/></svg>';}}function detectCommitType(_0x4cef4c){const _0x172091=_0x5299df;if(!_0x4cef4c)return null;const _0x533f49=_0x4cef4c[_0x172091(0x17a)]();if(/^feat(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)]('add\x20')||_0x533f49[_0x172091(0x175)](_0x172091(0x28c)))return _0x172091(0x200);if(/^fix(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x2b3))||_0x533f49[_0x172091(0x175)](_0x172091(0x24c)))return _0x172091(0x1b6);if(/^refactor(\(|:|\s)/['test'](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x2ad))||_0x533f49[_0x172091(0x175)]('restructure'))return _0x172091(0x2ad);if(/^docs?(\(|:|\s)/['test'](_0x533f49)||_0x533f49['includes'](_0x172091(0x14a))||_0x533f49[_0x172091(0x175)](_0x172091(0x1b7)))return'docs';if(/^test(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x26e)))return _0x172091(0x26e);if(/^chore(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x137))||_0x533f49['includes']('update\x20dep'))return _0x172091(0x137);return null;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x373bd1=_0x1568;(function(_0x2eb729,_0x376b30){const _0x551ac6=_0x1568,_0x4b2d2a=_0x2eb729();while(!![]){try{const _0x17cc65=-parseInt(_0x551ac6(0x197))/0x1*(-parseInt(_0x551ac6(0x170))/0x2)+-parseInt(_0x551ac6(0x18c))/0x3*(-parseInt(_0x551ac6(0x17d))/0x4)+parseInt(_0x551ac6(0x18f))/0x5+-parseInt(_0x551ac6(0x17c))/0x6*(parseInt(_0x551ac6(0x190))/0x7)+parseInt(_0x551ac6(0x171))/0x8+parseInt(_0x551ac6(0x198))/0x9*(-parseInt(_0x551ac6(0x184))/0xa)+-parseInt(_0x551ac6(0x192))/0xb;if(_0x17cc65===_0x376b30)break;else _0x4b2d2a['push'](_0x4b2d2a['shift']());}catch(_0x432eb5){_0x4b2d2a['push'](_0x4b2d2a['shift']());}}}(_0x5b87,0xe8f6d));import{API,Utils}from'./app.js';export function updateGitStatusIndicator(_0x3fe09f,_0x2c4cb6){const _0x2b0ad6=_0x1568,{statusIcon:_0x570dec,statusText:_0x50417d,branchText:_0x38428b,container:_0x36cbbb,commitBtn:_0x1d78cd,discardBtn:_0x936337}=_0x3fe09f;if(_0x2c4cb6[_0x2b0ad6(0x174)]){_0x570dec[_0x2b0ad6(0x16d)]='⚠️',_0x50417d['textContent']=_0x2b0ad6(0x18e);_0x36cbbb&&(_0x36cbbb[_0x2b0ad6(0x178)]['cursor']=_0x2b0ad6(0x185),_0x36cbbb[_0x2b0ad6(0x189)]='Click\x20to\x20view\x20uncommitted\x20changes');if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=![];if(_0x936337)_0x936337[_0x2b0ad6(0x18b)]=![];}else{if(_0x2c4cb6[_0x2b0ad6(0x19a)]>0x0){_0x570dec[_0x2b0ad6(0x16d)]='📤',_0x50417d[_0x2b0ad6(0x16d)]=_0x2c4cb6[_0x2b0ad6(0x19a)]+_0x2b0ad6(0x186);_0x36cbbb&&(_0x36cbbb['style']['cursor']=_0x2b0ad6(0x180),_0x36cbbb[_0x2b0ad6(0x189)]='Repository\x20git\x20status');if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=!![];if(_0x936337)_0x936337['disabled']=!![];}else{if(_0x2c4cb6[_0x2b0ad6(0x182)]>0x0){_0x570dec[_0x2b0ad6(0x16d)]='📥',_0x50417d[_0x2b0ad6(0x16d)]=_0x2c4cb6[_0x2b0ad6(0x182)]+_0x2b0ad6(0x17f);_0x36cbbb&&(_0x36cbbb['style'][_0x2b0ad6(0x196)]=_0x2b0ad6(0x180),_0x36cbbb['title']=_0x2b0ad6(0x17b));if(_0x1d78cd)_0x1d78cd['disabled']=!![];if(_0x936337)_0x936337[_0x2b0ad6(0x18b)]=!![];}else{_0x570dec[_0x2b0ad6(0x16d)]='✓',_0x50417d[_0x2b0ad6(0x16d)]='Synced';_0x36cbbb&&(_0x36cbbb[_0x2b0ad6(0x178)][_0x2b0ad6(0x196)]=_0x2b0ad6(0x180),_0x36cbbb[_0x2b0ad6(0x189)]=_0x2b0ad6(0x17b));if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=!![];if(_0x936337)_0x936337['disabled']=!![];}}}_0x38428b&&(_0x38428b[_0x2b0ad6(0x16d)]=_0x2c4cb6['branch']||'');}function _0x1568(_0x57889f,_0x5d832a){_0x57889f=_0x57889f-0x16d;const _0x5b870f=_0x5b87();let _0x156820=_0x5b870f[_0x57889f];if(_0x1568['oXuUiR']===undefined){var _0x4833dd=function(_0x3fa398){const _0x1ca508='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3fe09f='',_0x2c4cb6='';for(let _0x570dec=0x0,_0x50417d,_0x38428b,_0x36cbbb=0x0;_0x38428b=_0x3fa398['charAt'](_0x36cbbb++);~_0x38428b&&(_0x50417d=_0x570dec%0x4?_0x50417d*0x40+_0x38428b:_0x38428b,_0x570dec++%0x4)?_0x3fe09f+=String['fromCharCode'](0xff&_0x50417d>>(-0x2*_0x570dec&0x6)):0x0){_0x38428b=_0x1ca508['indexOf'](_0x38428b);}for(let _0x1d78cd=0x0,_0x936337=_0x3fe09f['length'];_0x1d78cd<_0x936337;_0x1d78cd++){_0x2c4cb6+='%'+('00'+_0x3fe09f['charCodeAt'](_0x1d78cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c4cb6);};_0x1568['SeROYJ']=_0x4833dd,_0x1568['BZuHKh']={},_0x1568['oXuUiR']=!![];}const _0x32f2a4=_0x5b870f[0x0],_0x5c49ab=_0x57889f+_0x32f2a4,_0x165b46=_0x1568['BZuHKh'][_0x5c49ab];return!_0x165b46?(_0x156820=_0x1568['SeROYJ'](_0x156820),_0x1568['BZuHKh'][_0x5c49ab]=_0x156820):_0x156820=_0x165b46,_0x156820;}export function showGitStatusError(_0x285746){const _0x189a97=_0x1568,{statusIcon:_0x22d8be,statusText:_0x567469}=_0x285746;_0x22d8be[_0x189a97(0x16d)]='❌',_0x567469[_0x189a97(0x16d)]=_0x189a97(0x175);}export function getFileStatusSymbol(_0x560703){const _0x14e108=_0x1568;if(_0x560703[_0x14e108(0x18a)]('M'))return'📝';if(_0x560703[_0x14e108(0x18a)]('A'))return'➕';if(_0x560703[_0x14e108(0x18a)]('D'))return'➖';return'📄';}export function renderChangedFilesList(_0x520586,_0x410a06,_0x1638c7=_0x373bd1(0x16e),_0x526138=![]){const _0x335e96=_0x373bd1;if(!_0x410a06||_0x410a06['length']===0x0){_0x520586[_0x335e96(0x173)]=_0x335e96(0x176)+Utils[_0x335e96(0x194)](_0x1638c7)+_0x335e96(0x18d);return;}_0x520586[_0x335e96(0x173)]=_0x410a06[_0x335e96(0x191)](_0x19fb17=>{const _0xaa24b4=_0x335e96,_0x280e17=getFileStatusSymbol(_0x19fb17[_0xaa24b4(0x193)]);let _0x17790f=_0x19fb17['filename'];return _0x526138&&_0x19fb17['filename'][_0xaa24b4(0x19b)]('/')&&(_0x17790f=_0x19fb17[_0xaa24b4(0x183)]+_0xaa24b4(0x172)),_0xaa24b4(0x187)+_0x280e17+'\x20'+Utils[_0xaa24b4(0x194)](_0x17790f)+_0xaa24b4(0x18d);})[_0x335e96(0x177)]('');}export function showUncommittedChangesModal(_0x5bb584,_0x37571a,_0x4de540){const _0x4b828b=_0x373bd1;renderChangedFilesList(_0x37571a,_0x4de540,_0x4b828b(0x179),!![]),_0x5bb584['hidden']=![];}export function showCommitModal(_0x3e0b58,_0x486d77){const _0x3920bf=_0x373bd1,{userNameEl:_0x145d07,userEmailEl:_0x3d8710,filesListEl:_0x580737,messageEl:_0x1637e8,pushCheckboxEl:_0x54eac2,errorEl:_0x59d64e,user:_0x3b47e5,changedFiles:_0x53d477}=_0x486d77;if(_0x59d64e)_0x59d64e[_0x3920bf(0x19c)]=!![];_0x3b47e5&&_0x145d07&&(_0x145d07['textContent']=_0x3b47e5['name']||_0x3b47e5[_0x3920bf(0x17a)]);_0x3b47e5&&_0x3d8710&&(_0x3d8710['textContent']=_0x3b47e5[_0x3920bf(0x188)]||'');renderChangedFilesList(_0x580737,_0x53d477,_0x3920bf(0x195));if(_0x1637e8)_0x1637e8[_0x3920bf(0x199)]='';if(_0x54eac2)_0x54eac2['checked']=!![];_0x3e0b58[_0x3920bf(0x19c)]=![];if(_0x1637e8)_0x1637e8[_0x3920bf(0x16f)]();}export function showDiscardModal(_0x5da54e,_0x21beb5,_0x3e8fa9){const _0x5e1dd9=_0x373bd1;renderChangedFilesList(_0x21beb5,_0x3e8fa9,'No\x20changes\x20to\x20discard'),_0x5da54e[_0x5e1dd9(0x19c)]=![];}export async function fetchGitStatus(){const _0xdfe15e=_0x373bd1;return await API[_0xdfe15e(0x181)](_0xdfe15e(0x17e));}function _0x5b87(){const _0x41ca55=['Aw5JBhvKzxm','zgLZywjSzwq','mJqXodGXCerZr3jP','pc9SAt4','vw5JB21TAxr0zwqGy2HHBMDLCW','odm5mteXnvjHq0f1wa','n0TMyMDqCa','BwfW','mtiWnda2mdbRr0fODhG','C3rHDhvZ','zxnJyxbLshrTBa','tM8Gy2HHBMDLCYb0BYbJB21TAxq','y3vYC29Y','nty2ntfOwvjbz2C','mte5mZeZveD2t254','DMfSDwu','ywHLywq','zw5KC1DPDgG','AgLKzgvU','Dgv4DenVBNrLBNq','tM8Gy2HHBMDLCW','zM9JDxm','nNLAs2jbEq','mti1ntKZmdrKBvnUwMm','icHUzxCGzgLYzwn0B3j5ihDPDgGGy29UDgvUDhmP','Aw5Uzxjive1m','AgfZvw5JB21TAxr0zwrdAgfUz2vZ','rxjYB3i','pgXPignSyxnZpsj0zxH0lw11DgvKiJ4','AM9PBG','C3r5Bgu','tM8GDw5JB21TAxr0zwqGy2HHBMDLCW','DxnLCM5HBwu','uMvWB3nPDg9YEsbNAxqGC3rHDhvZ','mta0mdG4mtjwDu1sBeO','mJHvBuzWywu','l2vUDMLYB25Tzw50CY9NAxqVC3rHDhvZ','igjLAgLUza','zgvMyxvSDa','z2v0','yMvOAw5K','zMLSzw5HBwu','mtuWv2rbsvvx','Cg9PBNrLCG','igfOzwfK','pgXPpG','zw1HAwW','DgL0Bgu'];_0x5b87=function(){return _0x41ca55;};return _0x5b87();}
|