@profoundlogic/coderflow-server 0.4.4 → 0.4.6

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.
Files changed (176) hide show
  1. package/dist/base-image/entrypoint.sh +2 -1
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -0
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -0
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/init.js +1 -1
  24. package/dist/lib/cli/jira.js +1 -1
  25. package/dist/lib/cli/license.js +1 -1
  26. package/dist/lib/cli/server-manager.js +1 -1
  27. package/dist/lib/config-migration.js +1 -1
  28. package/dist/lib/container-credential-sync.js +1 -1
  29. package/dist/lib/container-tokens.js +1 -1
  30. package/dist/lib/data-dir.js +1 -1
  31. package/dist/lib/deployment-history.js +1 -1
  32. package/dist/lib/deployment-service.js +1 -1
  33. package/dist/lib/docker-utils.js +1 -1
  34. package/dist/lib/email.js +1 -1
  35. package/dist/lib/emailTemplates.js +1 -1
  36. package/dist/lib/entitlement.js +1 -1
  37. package/dist/lib/fetch-utils.js +1 -1
  38. package/dist/lib/git-commit-details-route.js +1 -1
  39. package/dist/lib/git-history-diff-guardrails.js +1 -1
  40. package/dist/lib/git-provider-service.js +1 -1
  41. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  42. package/dist/lib/git-provider-setup/index.js +1 -1
  43. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  44. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  45. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  46. package/dist/lib/git-providers/github-app-provider.js +1 -1
  47. package/dist/lib/git-providers/index.js +1 -1
  48. package/dist/lib/git-providers/provider-factory.js +1 -1
  49. package/dist/lib/git-providers/provider-interface.js +1 -1
  50. package/dist/lib/github-urls.js +1 -1
  51. package/dist/lib/group-objective-linking.js +1 -1
  52. package/dist/lib/jira-client.js +1 -1
  53. package/dist/lib/judge-blinding.js +1 -1
  54. package/dist/lib/logger.js +1 -1
  55. package/dist/lib/migration-to-scoped-rbac.js +1 -0
  56. package/dist/lib/model-fetcher.js +1 -1
  57. package/dist/lib/notifications.js +1 -1
  58. package/dist/lib/objective-context.js +1 -1
  59. package/dist/lib/oidc-auth.js +1 -1
  60. package/dist/lib/oidc-device-flow.js +1 -1
  61. package/dist/lib/passwordTokens.js +1 -1
  62. package/dist/lib/permission-resolver.js +1 -0
  63. package/dist/lib/pin-cascade.js +1 -1
  64. package/dist/lib/provider-accounts.js +1 -1
  65. package/dist/lib/provider-oauth.js +1 -1
  66. package/dist/lib/provider-profile.js +1 -1
  67. package/dist/lib/provider-token-refresh.js +1 -1
  68. package/dist/lib/request-url.js +1 -1
  69. package/dist/lib/rewind.js +1 -1
  70. package/dist/lib/role-definitions.js +1 -0
  71. package/dist/lib/roles.js +1 -1
  72. package/dist/lib/secrets.js +1 -1
  73. package/dist/lib/setup-repo-git-auth.js +1 -1
  74. package/dist/lib/state-capture.js +1 -1
  75. package/dist/lib/static-files.js +1 -1
  76. package/dist/lib/task-name-format.js +1 -1
  77. package/dist/lib/task-name-generator.js +1 -1
  78. package/dist/lib/task-source-metadata.js +1 -0
  79. package/dist/lib/teams.js +1 -0
  80. package/dist/lib/user-git-oauth.js +1 -1
  81. package/dist/lib/user-git-tokens.js +1 -1
  82. package/dist/lib/users.js +1 -1
  83. package/dist/middleware/requireAuth.js +1 -1
  84. package/dist/middleware/requireInit.js +1 -1
  85. package/dist/middleware/requirePermission.js +1 -1
  86. package/dist/package-lock.json +211 -21
  87. package/dist/package.json +2 -1
  88. package/dist/playwright.config.js +1 -0
  89. package/dist/routes/apiKeys.js +1 -1
  90. package/dist/routes/auth-oidc.js +1 -1
  91. package/dist/routes/auth.js +1 -1
  92. package/dist/routes/automations.js +1 -0
  93. package/dist/routes/bindings.js +1 -0
  94. package/dist/routes/build.js +1 -1
  95. package/dist/routes/containers.js +1 -1
  96. package/dist/routes/deploy-task.js +1 -1
  97. package/dist/routes/environment-management.js +1 -1
  98. package/dist/routes/environments.js +1 -1
  99. package/dist/routes/external-skills.js +1 -1
  100. package/dist/routes/git-credentials.js +1 -1
  101. package/dist/routes/git-oauth.js +1 -1
  102. package/dist/routes/git-provider-setup.js +1 -1
  103. package/dist/routes/health.js +1 -1
  104. package/dist/routes/jira.js +1 -1
  105. package/dist/routes/objective-management.js +1 -1
  106. package/dist/routes/password.js +1 -1
  107. package/dist/routes/prompt.js +1 -1
  108. package/dist/routes/provider-auth.js +1 -1
  109. package/dist/routes/qa.js +1 -1
  110. package/dist/routes/roles.js +1 -0
  111. package/dist/routes/settings.js +1 -1
  112. package/dist/routes/skill-management.js +1 -1
  113. package/dist/routes/skills.js +1 -1
  114. package/dist/routes/tasks.js +1 -1
  115. package/dist/routes/teams.js +1 -0
  116. package/dist/routes/templates.js +1 -1
  117. package/dist/routes/test-task.js +1 -1
  118. package/dist/routes/test.js +1 -1
  119. package/dist/routes/users.js +1 -1
  120. package/dist/routes/visualizations.js +1 -1
  121. package/dist/scripts/create-user.js +1 -1
  122. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  123. package/dist/scripts/migrate-to-scoped-rbac.js +2 -0
  124. package/dist/start.js +1 -1
  125. package/dist/start.js.bak +1381 -0
  126. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  127. package/dist/web-ui/public/activity-feed.js +1 -1
  128. package/dist/web-ui/public/activity-formatters.js +1 -1
  129. package/dist/web-ui/public/agent-event-parser.js +1 -1
  130. package/dist/web-ui/public/app.js +1 -1
  131. package/dist/web-ui/public/approve-dialog.js +1 -1
  132. package/dist/web-ui/public/automation-links.js +1 -0
  133. package/dist/web-ui/public/automation-schedule.js +1 -0
  134. package/dist/web-ui/public/comments-widget.js +1 -1
  135. package/dist/web-ui/public/diff-utils.js +1 -1
  136. package/dist/web-ui/public/docs/_sidebar.md +1 -0
  137. package/dist/web-ui/public/docs/admin/automations.md +75 -0
  138. package/dist/web-ui/public/docs/admin/users-and-roles.md +14 -4
  139. package/dist/web-ui/public/environments.css +247 -125
  140. package/dist/web-ui/public/environments.html +346 -2
  141. package/dist/web-ui/public/environments.js +1 -1
  142. package/dist/web-ui/public/feedback-widget.css +42 -0
  143. package/dist/web-ui/public/feedback-widget.js +1 -1
  144. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  145. package/dist/web-ui/public/git-history.html +15 -0
  146. package/dist/web-ui/public/git-history.js +1 -1
  147. package/dist/web-ui/public/git-status.js +1 -1
  148. package/dist/web-ui/public/index.html +27 -0
  149. package/dist/web-ui/public/index.js +1 -1
  150. package/dist/web-ui/public/login.js +1 -1
  151. package/dist/web-ui/public/markdown-editor.js +1 -1
  152. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  153. package/dist/web-ui/public/modal-maximize.js +1 -1
  154. package/dist/web-ui/public/notifications.js +1 -1
  155. package/dist/web-ui/public/pr-dialog.js +1 -1
  156. package/dist/web-ui/public/roles.html +247 -0
  157. package/dist/web-ui/public/roles.js +1 -0
  158. package/dist/web-ui/public/server-health.js +1 -1
  159. package/dist/web-ui/public/settings.html +62 -0
  160. package/dist/web-ui/public/settings.js +1 -1
  161. package/dist/web-ui/public/setup-password.js +1 -1
  162. package/dist/web-ui/public/skills.html +15 -0
  163. package/dist/web-ui/public/skills.js +1 -1
  164. package/dist/web-ui/public/sse-client.js +1 -1
  165. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  166. package/dist/web-ui/public/styles.css +198 -161
  167. package/dist/web-ui/public/task.html +2 -2
  168. package/dist/web-ui/public/task.js +1 -1
  169. package/dist/web-ui/public/teams.html +285 -0
  170. package/dist/web-ui/public/teams.js +1 -0
  171. package/dist/web-ui/public/terminal.js +1 -1
  172. package/dist/web-ui/public/theme.js +1 -1
  173. package/dist/web-ui/public/users.html +87 -29
  174. package/dist/web-ui/public/users.js +1 -1
  175. package/dist/web-ui/public/variant-grouping.js +1 -1
  176. package/package.json +6 -3
@@ -23,7 +23,7 @@
23
23
  })();
24
24
  </script>
25
25
  <link rel="stylesheet" href="styles.css?v=83">
26
- <script type="module" src="users.js?v=58"></script>
26
+ <script type="module" src="users.js?v=60"></script>
27
27
  <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
28
28
  </head>
29
29
  <body>
@@ -51,6 +51,15 @@
51
51
  </svg>
52
52
  </button>
53
53
  <div class="dropdown-menu admin-dropdown" id="admin-menu" hidden>
54
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='teams.html'">
55
+ <svg class="option-icon icon-teams" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
56
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
57
+ <circle cx="9" cy="7" r="4"></circle>
58
+ <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
59
+ <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
60
+ </svg>
61
+ <span class="option-text">Teams</span>
62
+ </button>
54
63
  <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='environments.html'">
55
64
  <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">
56
65
  <circle cx="12" cy="12" r="10"></circle>
@@ -59,6 +68,12 @@
59
68
  </svg>
60
69
  <span class="option-text">Environments</span>
61
70
  </button>
71
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='roles.html'">
72
+ <svg class="option-icon icon-roles" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
73
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
74
+ </svg>
75
+ <span class="option-text">Roles</span>
76
+ </button>
62
77
  <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='skills.html'">
63
78
  <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">
64
79
  <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>
@@ -131,7 +146,7 @@
131
146
  <th>Username</th>
132
147
  <th>Name</th>
133
148
  <th>Email</th>
134
- <th>Role</th>
149
+ <th>Access</th>
135
150
  <th>Created</th>
136
151
  <th>Actions</th>
137
152
  </tr>
@@ -149,7 +164,7 @@
149
164
  <!-- Create/Edit User Modal -->
150
165
  <div id="user-modal" class="modal" hidden>
151
166
  <div class="modal-overlay"></div>
152
- <div class="modal-content">
167
+ <div class="modal-content" style="max-width: 640px;">
153
168
  <div class="modal-header">
154
169
  <h2 id="modal-title">Create User</h2>
155
170
  <button class="modal-close" id="close-user-modal">&times;</button>
@@ -210,38 +225,81 @@
210
225
  </div>
211
226
  </div>
212
227
 
213
- <div class="modal-section">
214
- <label for="user-role">Role *</label>
215
- <select id="user-role" class="form-input">
216
- <option value="viewer">Viewer</option>
217
- <option value="developer">Developer</option>
218
- <option value="manager">Manager</option>
219
- <option value="admin">Administrator</option>
220
- </select>
221
- <p class="field-hint" id="role-description">Select a role to see its permissions</p>
222
- </div>
228
+ <div id="form-error" class="login-error" hidden></div>
229
+ </form>
230
+ <p class="field-hint" style="margin-top: 1rem;">After creating a user, assign environment access through <strong>Access Bindings</strong> or by adding them to <strong>Teams</strong>.</p>
231
+ </div>
232
+ <div class="modal-footer" id="user-modal-footer">
233
+ <button class="btn-ghost" id="cancel-user">Cancel</button>
234
+ <button class="btn-primary" id="save-user">Save User</button>
235
+ </div>
236
+ </div>
237
+ </div>
223
238
 
224
- <!-- Custom Permissions Section (admin only) -->
225
- <div id="permissions-section" class="modal-section" style="display: none;">
226
- <div class="permissions-header">
227
- <label>Custom Permissions</label>
228
- <button type="button" class="btn-ghost btn-small" id="toggle-permissions">
229
- <span id="toggle-permissions-text">Show</span>
230
- </button>
239
+ <!-- Access Bindings Modal -->
240
+ <div id="bindings-modal" class="modal" hidden>
241
+ <div class="modal-overlay"></div>
242
+ <div class="modal-content" style="max-width: 640px;">
243
+ <div class="modal-header">
244
+ <h2 id="bindings-modal-title">Access Bindings</h2>
245
+ <button class="modal-close" id="close-bindings-modal">&times;</button>
246
+ </div>
247
+ <div class="modal-body">
248
+ <div id="bindings-server-admin-section" style="padding: 0.875rem 1rem; margin-bottom: 1rem; background: var(--color-surface-elevated); border: 1px solid var(--color-border); border-radius: 8px;">
249
+ <label style="display: flex; align-items: center; gap: 0.5rem; cursor: pointer;">
250
+ <input type="checkbox" id="user-is-server-admin" style="width: auto; margin: 0;">
251
+ <span style="font-weight: 600;">Server Admin</span>
252
+ </label>
253
+ <p class="field-hint" style="margin-top: 0.375rem; margin-bottom: 0;">Grants full system access with all permissions, bypassing environment bindings.</p>
254
+ </div>
255
+ <div id="user-bindings-loading" class="loading" hidden>Loading bindings…</div>
256
+ <div id="user-bindings-empty" hidden style="padding: 1.5rem 0; text-align: center; color: var(--color-text-secondary);">
257
+ No direct user bindings.
258
+ </div>
259
+ <div id="user-team-bindings-note" hidden style="padding: 0.875rem 1rem; margin-top: 0.75rem; background: var(--color-surface-elevated); border: 1px solid var(--color-border); border-radius: 8px; font-size: 0.875rem; color: var(--color-text-secondary);">
260
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align: -3px; margin-right: 0.375rem;">
261
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
262
+ <circle cx="9" cy="7" r="4"></circle>
263
+ <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
264
+ <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
265
+ </svg>
266
+ <span id="user-team-bindings-text">This user also has access via team memberships.</span>
267
+ </div>
268
+ <div id="user-bindings-list-container">
269
+ <table class="users-table" id="user-bindings-table">
270
+ <thead>
271
+ <tr>
272
+ <th>Environment</th>
273
+ <th>Role</th>
274
+ <th>Actions</th>
275
+ </tr>
276
+ </thead>
277
+ <tbody id="user-bindings-table-body"></tbody>
278
+ </table>
279
+ </div>
280
+ <div id="user-bindings-actions" style="margin-top: 1rem;">
281
+ <button type="button" class="btn-secondary btn-small" id="add-user-binding-btn">+ Add Binding</button>
282
+ </div>
283
+ <!-- Inline add-binding form -->
284
+ <div id="add-user-binding-form" hidden style="margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-elevated);">
285
+ <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem;">
286
+ <div>
287
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Environment</label>
288
+ <select id="user-binding-environment" class="form-input" style="font-size: 0.875rem;"></select>
231
289
  </div>
232
- <p class="field-hint">Grant additional permissions beyond the role's defaults</p>
233
-
234
- <div id="permissions-list" class="permissions-list" style="display: none;">
235
- <!-- Permission categories will be populated here -->
290
+ <div>
291
+ <label style="font-size: 0.8rem; margin-bottom: 0.25rem; display: block;">Role</label>
292
+ <select id="user-binding-role" class="form-input" style="font-size: 0.875rem;"></select>
236
293
  </div>
237
294
  </div>
238
-
239
- <div id="form-error" class="login-error" hidden></div>
240
- </form>
295
+ <div style="display: flex; gap: 0.5rem;">
296
+ <button type="button" class="btn-primary btn-small" id="save-user-binding-btn">Add Binding</button>
297
+ <button type="button" class="btn-ghost btn-small" id="cancel-user-binding-btn">Cancel</button>
298
+ </div>
299
+ </div>
241
300
  </div>
242
301
  <div class="modal-footer">
243
- <button class="btn-ghost" id="cancel-user">Cancel</button>
244
- <button class="btn-primary" id="save-user">Save User</button>
302
+ <button class="btn-ghost" id="close-bindings-modal-footer">Done</button>
245
303
  </div>
246
304
  </div>
247
305
  </div>
@@ -1 +1 @@
1
- function _0x2fa0(_0xfe1104,_0x1632d0){_0xfe1104=_0xfe1104-0xac;const _0x57a53f=_0x57a5();let _0x2fa0c7=_0x57a53f[_0xfe1104];if(_0x2fa0['YDVRLn']===undefined){var _0x2f4e7f=function(_0x4a4ce4){const _0x5e9fbf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc5f596='',_0x391ed9='';for(let _0x2b0f56=0x0,_0x236286,_0x1f2da5,_0x40fcf0=0x0;_0x1f2da5=_0x4a4ce4['charAt'](_0x40fcf0++);~_0x1f2da5&&(_0x236286=_0x2b0f56%0x4?_0x236286*0x40+_0x1f2da5:_0x1f2da5,_0x2b0f56++%0x4)?_0xc5f596+=String['fromCharCode'](0xff&_0x236286>>(-0x2*_0x2b0f56&0x6)):0x0){_0x1f2da5=_0x5e9fbf['indexOf'](_0x1f2da5);}for(let _0x3c0712=0x0,_0x446cfc=_0xc5f596['length'];_0x3c0712<_0x446cfc;_0x3c0712++){_0x391ed9+='%'+('00'+_0xc5f596['charCodeAt'](_0x3c0712)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x391ed9);};_0x2fa0['LPAgHo']=_0x2f4e7f,_0x2fa0['mquZKq']={},_0x2fa0['YDVRLn']=!![];}const _0x492524=_0x57a53f[0x0],_0x10df11=_0xfe1104+_0x492524,_0x14864d=_0x2fa0['mquZKq'][_0x10df11];return!_0x14864d?(_0x2fa0c7=_0x2fa0['LPAgHo'](_0x2fa0c7),_0x2fa0['mquZKq'][_0x10df11]=_0x2fa0c7):_0x2fa0c7=_0x14864d,_0x2fa0c7;}const _0x5d3a30=_0x2fa0;(function(_0x37c59a,_0x54e6d0){const _0x42e9bc=_0x2fa0,_0x1c4405=_0x37c59a();while(!![]){try{const _0x1cf514=parseInt(_0x42e9bc(0x148))/0x1*(-parseInt(_0x42e9bc(0xb2))/0x2)+parseInt(_0x42e9bc(0xd5))/0x3+-parseInt(_0x42e9bc(0xfb))/0x4+parseInt(_0x42e9bc(0x12c))/0x5*(parseInt(_0x42e9bc(0x11a))/0x6)+-parseInt(_0x42e9bc(0xaf))/0x7+parseInt(_0x42e9bc(0x12e))/0x8+parseInt(_0x42e9bc(0x170))/0x9*(parseInt(_0x42e9bc(0x150))/0xa);if(_0x1cf514===_0x54e6d0)break;else _0x1c4405['push'](_0x1c4405['shift']());}catch(_0x38d874){_0x1c4405['push'](_0x1c4405['shift']());}}}(_0x57a5,0x3b5c5));import{API,Utils,ConfirmDialog,CustomSelect,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'users':[],'editingUserId':null,'deletingUserId':null,'setupLinkData':null,'emailConfigured':![],'currentUser':null,'rolesInfo':null,'selectedPermissions':[],'permissionsExpanded':![],'roleCustomSelect':null},ROLE_DESCRIPTIONS={'viewer':'Read-only\x20access\x20to\x20own\x20tasks\x20and\x20environments','developer':_0x5d3a30(0xf7),'manager':'User\x20management\x20and\x20task\x20oversight\x20capabilities','admin':_0x5d3a30(0xfd)},ROLE_NAMES={'viewer':'Viewer','developer':_0x5d3a30(0x137),'manager':_0x5d3a30(0x107),'admin':_0x5d3a30(0x10f)};function formatRoleName(_0xc5f596){return ROLE_NAMES[_0xc5f596]||_0xc5f596;}const PERMISSION_CATEGORIES={'tasks':_0x5d3a30(0x126),'environments':_0x5d3a30(0xe2),'users':_0x5d3a30(0x117),'settings':'Settings','server':_0x5d3a30(0x162),'apikeys':_0x5d3a30(0x100)};document[_0x5d3a30(0x164)](_0x5d3a30(0x15e),async()=>{initTheme(),mountThemeToggle(),await checkAdminAccess(),await initializeAdminMenu(state['currentUser']),await checkEmailConfig(),bindEventListeners(),await loadUsers();});async function checkAdminAccess(){const _0x2131b6=_0x5d3a30;try{const _0x391ed9=await API[_0x2131b6(0xc1)]();state[_0x2131b6(0x105)]=_0x391ed9;try{state[_0x2131b6(0x13e)]=await API[_0x2131b6(0x174)]();}catch(_0x2b0f56){Utils[_0x2131b6(0xed)](_0x2131b6(0xe8),'error'),setTimeout(()=>{const _0x477d27=_0x2131b6;window['location'][_0x477d27(0xc5)]=_0x477d27(0xb0);},0x7d0);return;}setupRoleDescriptions();}catch(_0x236286){window[_0x2131b6(0xcd)]['href']=_0x2131b6(0xe4);}}function setupRoleDescriptions(){const _0x3b4f92=_0x5d3a30,_0x1f2da5=document[_0x3b4f92(0xdf)](_0x3b4f92(0xce)),_0x40fcf0=document[_0x3b4f92(0xdf)](_0x3b4f92(0xeb));if(!_0x1f2da5||!_0x40fcf0)return;state[_0x3b4f92(0x13e)]?.[_0x3b4f92(0x112)]&&(_0x1f2da5[_0x3b4f92(0xd0)]='',state[_0x3b4f92(0x13e)][_0x3b4f92(0x112)][_0x3b4f92(0xbd)](_0x446cfc=>{const _0x196b74=_0x3b4f92;if(_0x446cfc['canAssign']){const _0x44b535=document[_0x196b74(0x168)](_0x196b74(0x12b));_0x44b535[_0x196b74(0x118)]=_0x446cfc[_0x196b74(0x118)],_0x44b535[_0x196b74(0x10a)]=_0x446cfc[_0x196b74(0xba)],_0x1f2da5[_0x196b74(0x104)](_0x44b535);}}));state['roleCustomSelect']=new CustomSelect(_0x1f2da5),_0x1f2da5[_0x3b4f92(0x164)](_0x3b4f92(0x11e),()=>{const _0x546d23=_0x3b4f92,_0x31c128=_0x1f2da5['value'];_0x40fcf0[_0x546d23(0x10a)]=ROLE_DESCRIPTIONS[_0x31c128]||'',handleRoleChange();});const _0x3c0712=_0x1f2da5[_0x3b4f92(0x118)];_0x40fcf0[_0x3b4f92(0x10a)]=ROLE_DESCRIPTIONS[_0x3c0712]||'',setupPermissionsSection();}function setupPermissionsSection(){const _0x196bc1=_0x5d3a30,_0x2cef97=document[_0x196bc1(0xdf)]('permissions-section'),_0x5032de=document[_0x196bc1(0xdf)]('permissions-list'),_0x34158b=state['rolesInfo']?.[_0x196bc1(0x152)]?.[_0x196bc1(0x101)](_0xb7701c=>_0xb7701c['canAssign']);if(!_0x34158b||!_0x2cef97||!_0x5032de){if(_0x2cef97)_0x2cef97[_0x196bc1(0xd8)][_0x196bc1(0x138)]=_0x196bc1(0x178);return;}_0x2cef97[_0x196bc1(0xd8)][_0x196bc1(0x138)]=_0x196bc1(0x176);const _0x43c14e={};state[_0x196bc1(0x13e)][_0x196bc1(0x152)][_0x196bc1(0xbd)](_0x19b7ac=>{const _0x2a6fce=_0x196bc1;if(!_0x19b7ac[_0x2a6fce(0x163)])return;const [_0x1b46b0]=_0x19b7ac[_0x2a6fce(0x130)]['split'](':');!_0x43c14e[_0x1b46b0]&&(_0x43c14e[_0x1b46b0]=[]),_0x43c14e[_0x1b46b0][_0x2a6fce(0x119)](_0x19b7ac);}),_0x5032de[_0x196bc1(0xd0)]=Object[_0x196bc1(0x115)](_0x43c14e)[_0x196bc1(0x16a)](([_0x3c1a52,_0x4ea6e7])=>'\x0a\x20\x20\x20\x20<div\x20class=\x22permission-category\x22>\x0a\x20\x20\x20\x20\x20\x20<h4\x20class=\x22permission-category-title\x22>'+(PERMISSION_CATEGORIES[_0x3c1a52]||_0x3c1a52)+_0x196bc1(0x10d)+_0x4ea6e7[_0x196bc1(0x16a)](_0x2b010a=>_0x196bc1(0x17c)+Utils['escapeHtml'](_0x2b010a['description'])+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x20type=\x22checkbox\x22\x20value=\x22'+_0x2b010a[_0x196bc1(0x130)]+_0x196bc1(0xb9)+_0x2b010a[_0x196bc1(0x130)]['split'](':')[0x1]+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22permission-role-badge\x22\x20style=\x22display:\x20none;\x22>role</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20\x20\x20\x20\x20')[_0x196bc1(0x14e)]('')+_0x196bc1(0x13c))['join'](''),_0x5032de['querySelectorAll']('.permission-checkbox')[_0x196bc1(0xbd)](_0x22676e=>{_0x22676e['addEventListener']('change',handlePermissionChange);});}function getRolePermissions(_0x2c4e49){const _0x3aaa12=_0x5d3a30,_0x2779d0={'admin':['*'],'manager':[_0x3aaa12(0x156),'tasks:execute','tasks:view_own',_0x3aaa12(0x16e),_0x3aaa12(0xfe),_0x3aaa12(0x169),'tasks:judge',_0x3aaa12(0x17a),_0x3aaa12(0x135),_0x3aaa12(0x172),_0x3aaa12(0x13d),_0x3aaa12(0xef),_0x3aaa12(0xe3),_0x3aaa12(0xd1),'apikeys:manage_own'],'developer':[_0x3aaa12(0x156),_0x3aaa12(0xd4),_0x3aaa12(0x120),_0x3aaa12(0xfe),_0x3aaa12(0x135),_0x3aaa12(0x172),'apikeys:manage_own'],'viewer':['tasks:view_own','environments:view',_0x3aaa12(0x172),_0x3aaa12(0x141)]};return _0x2779d0[_0x2c4e49]||[];}function _0x57a5(){const _0x34d20e=['C2TPCc1WyxnZD29Yzc1JB250ywLUzxi','C2v0DxbmAw5Rrgf0yq','zgLZywjSzwq','DhjPBq','iIbJBgfZCZ0ICgvYBwLZC2LVBI1JAgvJA2jVEci+cIaGicaGicaGicaGidXZCgfUignSyxnZpsjWzxjTAxnZAw9UlwTLEsi+','BMfTzq','zgv2zwXVCgvY','y2XVC2uTzgvSzxrLlw1VzgfS','zM9YrwfJAa','zwrPDgLUz1vZzxjjza','i3nLDhvWlwXPBMSTBw9KywWGlM1VzgfSlw92zxjSyxK','BgvUz3rO','z2v0q3vYCMvUDfvZzxi','CgvYBwLZC2LVBI1MCM9TlxjVBgu','ugfZC3DVCMqGAxmGCMvXDwLYzwqGzM9Yig5LDYb1C2vYCW','C29YDa','AhjLzG','C2vSzwn0zwrqzxjTAxnZAw9UCW','CxvLCNLtzwXLy3rVCG','y3jLyxrLlxvZzxiTyNrU','zM9YBs1LCNjVCG','CgfZC3DVCMqTAgLUDa','C2TPCc1WyxnZD29Yza','z2v0rw1HAwXdB25MAwC','Bg9JyxrPB24','DxnLCI1YB2XL','r2vUzxjHDguGtgLUAW','Aw5Uzxjive1m','C2vYDMvYoMHLywX0Aa','D3jPDgvuzxH0','zw1HAwXtzw50','DgfZA3m6zxHLy3v0zq','nZm1nJeYCffvuKLm','pc90zd4kicaGicaGphrKpGOGicaGicaGidXZCgfUignSyxnZpsjYB2XLlwjHzgDLihjVBguT','DxnLCI1JB3vUDa','C3r5Bgu','DhLWzq','r2vUzxjHDguGysbWyxnZD29YzcbYzxnLDcbSAw5RigzVCIa','y2HLy2TLza','DxnLCNmTBg9HzgLUzW','y2XHC3nmAxn0','y3jLyxrLvxnLCG','z2v0rwXLBwvUDej5swq','jYKIpKvKAxq8l2j1DhrVBJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BI1ZzwnVBMrHCNKGyNrUlxnTywXSiIbVBMnSAwnRpsj3Aw5KB3CUCMvZzxrqyxnZD29YzcGN','C21VB3rO','rw52AxjVBM1LBNrZ','DxnLCNm6zwrPDa','Bg9NAw4UAhrTBa','DxnLCNmTy29UDgvUDa','DxnLCNm','rMfPBgvKihrVignYzwf0zsbWyxnZD29YzcbYzxnLDcbSAw5R','qwnJzxnZigrLBMLLzdOGvxnLCIbTyw5Hz2vTzw50ihbYAxzPBgvNzxmGCMvXDwLYzwq','C2v0DxaTBgLUAY11C2vYBMfTzq','C2v0DxbvCMW','CM9Szs1KzxnJCMLWDgLVBG','zM9JDxm','C2HVD1rVyxn0','z2v0vxnLCNm','DxnLCNm6y3jLyxrL','y2XVC2uTDxnLCI1TB2rHBa','DxnLCI1Uyw1L','DgfYz2v0','CMvZzxq','lNbLCM1PC3nPB24Ty2HLy2TIB3G','q3jLyxrPBMCUlI4','zw1HAwXdB25MAwD1CMvK','q3jLyxrLigfUzcbLEgvJDxrLihrHC2TZlcb2Awv3igvUDMLYB25Tzw50CW','CxvLCNLtzwXLy3rVCKfSBa','Dg9Nz2XLlxbLCM1PC3nPB25ZlxrLEhq','CM9Szq','mZi5mdmYt2LVCwrj','pc9ZCgfUpG','rNvSBcbZExn0zw0GywnJzxnZihDPDgGGywXSihbLCM1PC3nPB25Z','DgfZA3m6zgvSzxrLx293BG','CMvXDwLYzwq','qvbjieTLExm','C29Tzq','ugXLyxnLigzPBgWGAw4GywXSihjLCxvPCMvKigzPzwXKCW','Dg9Rzw4','yxbWzw5Kq2HPBgq','y3vYCMvUDfvZzxi','AgLKzgvU','twfUywDLCG','C2v0DxaTBgLUAY11CMW','rwrPDcbvC2vY','Dgv4DenVBNrLBNq','zMLUza','ywrK','pc9Ond4kicaGicaGpgrPDIbJBgfZCZ0ICgvYBwLZC2LVBI1PDgvTCYi+cIaGicaGicaG','y3jLyxrLugfZC3DVCMruB2TLBG','qwrTAw4','Bw9KywWTDgL0Bgu','rMfPBgvKihrVihnLBMqGzw1HAwW','CM9Szxm','rMfPBgvKihrVigXVywqGDxnLCNm','vxbKyxrPBMCUlI4','zw50CMLLCW','y2XVC2uTC2v0DxaTBgLUAW','vxnLCNm','DMfSDwu','ChvZAa','mJyWndy2nK1qv1nVtG','CgvYBwLZC2LVBNmTBgLZDa','y2XPy2S','DxnLCNmTzxjYB3i','y2HHBMDL','Aw5JBhvKzxm','DgfZA3m6DMLLD19VD24','lNbLCM1PC3nPB24TAxrLBq','DxnLCI1WyxnZD29Yza','DxnLCI11C2vYBMfTzq','y29UzMLYBs1KzwXLDgu','zxjYB3i','vgfZA3m','zgLZCgf0y2HfDMvUDa','DxnLCI1MB3jT','u2HVDW','uMvZzxqGugfZC3DVCMq','B3b0Aw9U','nw9iAxvZyq','z2v0vgLTzq','mta3mtuZnKHwBMjiwG','Aw5SAw5LlwjSB2nR','A2v5','Dg9Nz2XLlxbLCM1PC3nPB25Z','kt8GvgHPCYb3AwXSignYzwf0zsbHigXPBMSGDgHHDcb0Agv5ignHBIb1C2uGDg8GC2v0igeGBMv3ihbHC3n3B3jKlG','rMfPBgvKihrVigvTywLSihnLDhvWigXPBMS','DxnLCI1LBwfPBa','zw52AxjVBM1LBNrZoNzPzxC','zgvSzxrLlw1VzgfS','rgv2zwXVCgvY','zgLZCgXHEq','zw1HAwWTyNv0Dg9UlxrLEhq','cIaGicaGidWVDgq+cIaGicaGidX0zd4','y2XVC2uTC2v0DxaTBgLUAY1TB2rHBa','cIaGicaGidWVzgL2pGOGicaGpc9KAxy+cIaG','DxnLCNm6DMLLDW','CM9SzxnjBMzV','rw1HAwWGC2vUDcb0BYa','i2rLBgv0zs1TB2rHBcaUBw9KywWTB3zLCMXHEq','yxbPA2v5CZPTyw5Hz2vFB3DU','zM9YBwf0uMvSyxrPDMvuAw1L','y3jLyxrLzf9HDa','vxnLCIbJCMvHDgvKihn1y2nLC3nMDwXSEq','vxnLCIb1CgrHDgvKihn1y2nLC3nMDwXSEq','y2fUy2vSlxvZzxi','DxnLCG','ntG5mgXtq1H6rW','u2vUzgLUzY4UlG','lNbLCM1PC3nPB24TCM9Szs1IywrNzq','y2HLy2TwywXPzgL0Eq','zgvSzxrLvxnLCG','CgfZC3DVCMqTCMvXDwLYzwq','AM9PBG','rMfPBgvKihrVignOzwnRigvTywLSignVBMzPzW','nda4ndqWD3f6sK1h','y29UzMLNDxjLza','CgvYBwLZC2LVBNm','y2fUy2vSlwrLBgv0zq','CMvTB3zL','CgvYBwLZC2LVBI1JDxn0B20','DgfZA3m6y3jLyxrL','zgvSzxrPBMDvC2vYswq','zw1HAwWTC2v0DxaTBgLUAW','phnWyw4Gy2XHC3m9iMn1C3rVBs1WzxjTAxnZAw9UCY1IywrNzsiGDgL0Bgu9iG','rMfPBgvKihrVigrLBgv0zsb1C2vY','tgvHDMuGyMXHBMSGDg8GA2vLCcbJDxjYzw50ihbHC3n3B3jK','cIaGicaGicaGpc9KAxy+cIaGicaGidWVDgq+cIaGicaGidX0zd4','C2f2zs11C2vY','re9nq29UDgvUDeXVywrLza','CMv0CNKTDxnLCNmTyNrU','CgfZC3DVCMq','CMvWB3j0vMfSAwrPDhK','u2vYDMvY','y2fUqxnZAwDU','ywrKrxzLBNrmAxn0zw5LCG','C2v0Dxa','zxnJyxbLshrTBa','C2v0DxaTBgLUAY1TB2rHBa','y3jLyxrLrwXLBwvUDa','DgfZA3m6zgvSzxrLx2fUEq','BwfW','zw1HAwW','C3bSAxq','DxnLCI1TB2rHBa','DgfZA3m6DMLLD19HBgW','rMfPBgvKihrVignYzwf0zsbWyxnZD29YzcbYzxnLDcbSAw5RoIa','ntr6thLYzMC','rMfPBgvKihrVignVChKGBgLUAW','zw52AxjVBM1LBNrZoNzPzxDFzgv0ywLSCW','twLUAw11Bsa4ignOyxjHy3rLCNm','z2v0uM9SzxnjBMzV','C2HVDW','yMXVy2S','DxnLCNmTDgfIBguTyM9KEq','BM9Uzq','BMvHCMvZDa','DgfZA3m6yxnZAwDU','sgLKzq','cIaGicaGicaGica8BgfIzwWGy2XHC3m9iNbLCM1PC3nPB24TAxrLBsiGDgL0Bgu9iG','CgvYBwLZC2LVBNnfEhbHBMrLza','BwvZC2fNzq','rMfPBgvKihrVihnLBMqGzw1HAwW6ia','DxnLCM5HBwu','mJK4nJq5nfLns0jssq','Aw5KzxGUAhrTBa','C3vJy2vZCW','mta0r3Pot0HZ','u2f2zsbvC2vY','DxjS'];_0x57a5=function(){return _0x34d20e;};return _0x57a5();}function roleHasPermission(_0x5492cb,_0x3b6687){const _0x211659=_0x5d3a30,_0x27ac39=getRolePermissions(_0x5492cb);if(_0x27ac39[_0x211659(0x11f)]('*'))return!![];if(_0x27ac39['includes'](_0x3b6687))return!![];const [_0x44a5cb]=_0x3b6687[_0x211659(0x16c)](':');if(_0x27ac39[_0x211659(0x11f)](_0x44a5cb+':*'))return!![];return![];}function togglePermissionsSection(){const _0x1e5846=_0x5d3a30,_0x14cabb=document[_0x1e5846(0xdf)](_0x1e5846(0x11b)),_0x211414=document['getElementById'](_0x1e5846(0xf9));if(!_0x14cabb||!_0x211414)return;state['permissionsExpanded']=!state[_0x1e5846(0x17d)],state[_0x1e5846(0x17d)]?(_0x14cabb[_0x1e5846(0xd8)][_0x1e5846(0x138)]=_0x1e5846(0x176),_0x211414[_0x1e5846(0x10a)]=_0x1e5846(0x17b)):(_0x14cabb[_0x1e5846(0xd8)]['display']=_0x1e5846(0x178),_0x211414[_0x1e5846(0x10a)]='Show');}function handlePermissionChange(_0x3d0573){const _0x2b05cb=_0x5d3a30,_0x2d41dc=_0x3d0573[_0x2b05cb(0xf2)],_0xf4ac98=_0x2d41dc[_0x2b05cb(0x118)];_0x2d41dc[_0x2b05cb(0xdb)]?!state['selectedPermissions'][_0x2b05cb(0x11f)](_0xf4ac98)&&state['selectedPermissions']['push'](_0xf4ac98):state[_0x2b05cb(0xc6)]=state['selectedPermissions']['filter'](_0x34e259=>_0x34e259!==_0xf4ac98);}function updatePermissionCheckboxes(_0xead311=[],_0x1e1ab5=null){const _0x27a9ec=_0x5d3a30;state['selectedPermissions']=[..._0xead311];const _0x462367=document[_0x27a9ec(0xdf)](_0x27a9ec(0x11b)),_0x2208c2=_0x1e1ab5||document['getElementById'](_0x27a9ec(0xce))?.['value']||_0x27a9ec(0xbb);if(!_0x462367)return;_0x462367[_0x27a9ec(0xf8)](_0x27a9ec(0x121))[_0x27a9ec(0xbd)](_0x14358f=>{const _0x17933c=_0x27a9ec,_0x1bdab4=_0x14358f['querySelector'](_0x17933c(0xf4)),_0x48fe69=_0x14358f[_0x17933c(0xc7)](_0x17933c(0x14a)),_0x36bc30=_0x1bdab4[_0x17933c(0x118)],_0x27a53e=roleHasPermission(_0x2208c2,_0x36bc30),_0x29246e=_0xead311[_0x17933c(0x11f)](_0x36bc30);if(_0x27a53e)_0x1bdab4[_0x17933c(0xdb)]=!![],_0x1bdab4['disabled']=!![],_0x14358f[_0x17933c(0xdd)][_0x17933c(0x10c)](_0x17933c(0xc2)),_0x14358f['classList'][_0x17933c(0x154)](_0x17933c(0x155)),_0x48fe69&&(_0x48fe69[_0x17933c(0xd8)][_0x17933c(0x138)]='inline',_0x48fe69[_0x17933c(0x10a)]=_0x2208c2);else{if(_0x29246e){_0x1bdab4['checked']=!![],_0x1bdab4[_0x17933c(0xb7)]=![],_0x14358f[_0x17933c(0xdd)][_0x17933c(0x154)]('permission-from-role'),_0x14358f[_0x17933c(0xdd)][_0x17933c(0x10c)](_0x17933c(0x155));if(_0x48fe69)_0x48fe69[_0x17933c(0xd8)][_0x17933c(0x138)]=_0x17933c(0x178);}else{_0x1bdab4[_0x17933c(0xdb)]=![],_0x1bdab4['disabled']=![],_0x14358f[_0x17933c(0xdd)][_0x17933c(0x154)](_0x17933c(0xc2),_0x17933c(0x155));if(_0x48fe69)_0x48fe69[_0x17933c(0xd8)][_0x17933c(0x138)]=_0x17933c(0x178);}}});}function handleRoleChange(){const _0x51db05=_0x5d3a30,_0x303ebf=document[_0x51db05(0xdf)]('user-role')?.[_0x51db05(0x118)];_0x303ebf&&updatePermissionCheckboxes(state[_0x51db05(0xc6)],_0x303ebf);}function resetPermissionsSection(){const _0x3a8cd2=_0x5d3a30;state[_0x3a8cd2(0xc6)]=[],state['permissionsExpanded']=![];const _0x54802b=document[_0x3a8cd2(0xdf)]('permissions-list'),_0x24550f=document[_0x3a8cd2(0xdf)](_0x3a8cd2(0xf9));_0x54802b&&(_0x54802b[_0x3a8cd2(0xd8)][_0x3a8cd2(0x138)]=_0x3a8cd2(0x178));_0x24550f&&(_0x24550f[_0x3a8cd2(0x10a)]=_0x3a8cd2(0x129));const _0x5f4759=document[_0x3a8cd2(0xdf)](_0x3a8cd2(0xce))?.['value']||_0x3a8cd2(0xbb);updatePermissionCheckboxes([],_0x5f4759);}async function checkEmailConfig(){const _0x165326=_0x5d3a30;try{const _0x14fad2=await API[_0x165326(0xcc)]();state[_0x165326(0xf6)]=_0x14fad2[_0x165326(0x151)];}catch(_0x173162){console[_0x165326(0x125)](_0x165326(0x14f),_0x173162),state[_0x165326(0xf6)]=![];}}function bindEventListeners(){const _0x4546db=_0x5d3a30;document[_0x4546db(0xdf)](_0x4546db(0xc8))?.[_0x4546db(0x164)](_0x4546db(0x11c),showCreateUserModal),document['getElementById'](_0x4546db(0xf0))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideUserModal),document[_0x4546db(0xdf)](_0x4546db(0x146))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideUserModal),document[_0x4546db(0xdf)]('save-user')?.['addEventListener']('click',saveUser),document[_0x4546db(0xc7)]('#user-modal\x20.modal-overlay')?.[_0x4546db(0x164)]('click',hideUserModal),document[_0x4546db(0xdf)](_0x4546db(0xbc))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideDeleteModal),document['getElementById'](_0x4546db(0x153))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideDeleteModal),document[_0x4546db(0xdf)](_0x4546db(0x124))?.[_0x4546db(0x164)](_0x4546db(0x11c),confirmDeleteUser),document['querySelector'](_0x4546db(0x140))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideDeleteModal),document[_0x4546db(0xdf)](_0x4546db(0x13b))?.['addEventListener']('click',hideSetupLinkModal),document[_0x4546db(0xdf)](_0x4546db(0x116))?.['addEventListener'](_0x4546db(0x11c),hideSetupLinkModal),document['getElementById']('copy-setup-link')?.[_0x4546db(0x164)](_0x4546db(0x11c),copySetupLink),document[_0x4546db(0xdf)](_0x4546db(0x158))?.[_0x4546db(0x164)]('click',emailSetupLink),document['querySelector'](_0x4546db(0xbf))?.[_0x4546db(0x164)](_0x4546db(0x11c),hideSetupLinkModal),document[_0x4546db(0xdf)](_0x4546db(0xcb))?.[_0x4546db(0x164)](_0x4546db(0x11e),handleSkipPasswordChange),document[_0x4546db(0xdf)](_0x4546db(0x131))?.[_0x4546db(0x164)](_0x4546db(0x11c),togglePermissionsSection),document[_0x4546db(0xdf)](_0x4546db(0x15f))?.['addEventListener']('click',loadUsers);}async function loadUsers(){const _0x28e92a=_0x5d3a30,_0x4dd9ae=document[_0x28e92a(0xdf)](_0x28e92a(0xdc)),_0x4a8367=document[_0x28e92a(0xdf)](_0x28e92a(0x11d)),_0x3c62d3=document[_0x28e92a(0xdf)](_0x28e92a(0xe5));try{_0x4dd9ae[_0x28e92a(0x106)]=![],_0x4a8367['hidden']=!![],_0x3c62d3[_0x28e92a(0x106)]=!![];const _0x108fda=await API[_0x28e92a(0xee)]();state[_0x28e92a(0xe6)]=_0x108fda[_0x28e92a(0xe6)]||[],renderUsers(),_0x4dd9ae[_0x28e92a(0x106)]=!![],_0x3c62d3[_0x28e92a(0x106)]=![];}catch(_0x5bc840){console[_0x28e92a(0x125)](_0x28e92a(0x113),_0x5bc840),_0x4dd9ae[_0x28e92a(0x106)]=!![],_0x4a8367[_0x28e92a(0x106)]=![],document[_0x28e92a(0xdf)]('users-error-message')['textContent']=_0x5bc840['message'];}}function renderUsers(){const _0x190701=_0x5d3a30,_0x10aedd=document['getElementById'](_0x190701(0x177)),_0x8a9ae3=document['getElementById'](_0x190701(0xd7));if(!_0x10aedd)return;_0x8a9ae3&&(_0x8a9ae3[_0x190701(0x10a)]=state[_0x190701(0xe6)][_0x190701(0xc0)]+'\x20user'+(state[_0x190701(0xe6)][_0x190701(0xc0)]===0x1?'':'s'));const _0xbc1bb8=[...state[_0x190701(0xe6)]][_0x190701(0xc4)]((_0x2c6631,_0x582c06)=>{const _0x51b8c=_0x190701,_0x12a0ed=new Date(_0x2c6631['created_at'])['getTime'](),_0x281453=new Date(_0x582c06[_0x51b8c(0x143)])[_0x51b8c(0x12d)]();return _0x281453-_0x12a0ed;});_0x10aedd[_0x190701(0xd0)]=_0xbc1bb8[_0x190701(0x16a)](_0x5ba117=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22user-username\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+Utils['escapeHtml'](_0x5ba117['username'])+_0x190701(0x15c)+Utils[_0x190701(0x166)](_0x5ba117[_0x190701(0xba)])+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils[_0x190701(0x166)](_0x5ba117[_0x190701(0x16b)])+_0x190701(0xd6)+_0x5ba117[_0x190701(0xfa)]+'\x22>'+formatRoleName(_0x5ba117['role'])+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x5ba117[_0x190701(0x152)]?.[_0x190701(0xc0)]?_0x190701(0x159)+_0x5ba117['permissions'][_0x190701(0x14e)](',\x20')+'\x22>+'+_0x5ba117[_0x190701(0x152)][_0x190701(0xc0)]+_0x190701(0xfc):'')+_0x190701(0x13a)+Utils[_0x190701(0x142)](_0x5ba117[_0x190701(0x143)])+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22user-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn-secondary\x20btn-small\x22\x20onclick=\x22window.editUser(\x27'+_0x5ba117['id']+_0x190701(0xe0)+_0x5ba117['id']+'\x27)\x22>Reset\x20Password</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn-ghost\x20btn-small\x22\x20onclick=\x22window.deleteUser(\x27'+_0x5ba117['id']+'\x27)\x22>Delete</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')[_0x190701(0x14e)]('');}function showCreateUserModal(){const _0x12c214=_0x5d3a30;state['editingUserId']=null;const _0x2c3415=document['getElementById']('user-modal'),_0x34493d=document[_0x12c214(0xdf)](_0x12c214(0x110)),_0x1e7898=document[_0x12c214(0xdf)]('user-password'),_0x5999a8=document['getElementById']('password-required'),_0x1d2142=document[_0x12c214(0xdf)](_0x12c214(0xca)),_0x221457=document['getElementById'](_0x12c214(0xb5)),_0x2a205b=document['getElementById'](_0x12c214(0xcb));_0x34493d['textContent']='Create\x20User',document[_0x12c214(0xdf)](_0x12c214(0x128))[_0x12c214(0xf3)](),_0x1e7898[_0x12c214(0xff)]=!![];if(_0x5999a8)_0x5999a8[_0x12c214(0x10a)]='*';_0x221457&&(_0x221457['style'][_0x12c214(0x138)]=_0x12c214(0x176),_0x2a205b[_0x12c214(0xdb)]=![]),_0x1d2142&&(_0x1d2142['textContent']=_0x12c214(0x173)),resetPermissionsSection(),_0x2c3415[_0x12c214(0x106)]=![],setTimeout(()=>{const _0x591e86=_0x12c214;document[_0x591e86(0xdf)](_0x591e86(0x123))[_0x591e86(0xec)]();},0x64);}window['editUser']=function(_0x143146){const _0x1aaa3e=_0x5d3a30,_0x21cd1b=state[_0x1aaa3e(0xe6)][_0x1aaa3e(0x10b)](_0x3de7d1=>_0x3de7d1['id']===_0x143146);if(!_0x21cd1b)return;state[_0x1aaa3e(0xbe)]=_0x143146;const _0x45aa71=document['getElementById'](_0x1aaa3e(0x16d)),_0x5343b8=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0x110)),_0x2d8391=document['getElementById'](_0x1aaa3e(0x122)),_0x1d509d=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0x14d)),_0x1e0640=document['getElementById'](_0x1aaa3e(0xca)),_0x3acfae=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0xb5));_0x5343b8[_0x1aaa3e(0x10a)]=_0x1aaa3e(0x109),document['getElementById']('user-username')[_0x1aaa3e(0x118)]=_0x21cd1b[_0x1aaa3e(0xae)],document['getElementById'](_0x1aaa3e(0xf1))[_0x1aaa3e(0x118)]=_0x21cd1b[_0x1aaa3e(0xba)],document[_0x1aaa3e(0xdf)]('user-email')[_0x1aaa3e(0x118)]=_0x21cd1b[_0x1aaa3e(0x16b)];const _0x59de3d=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0xce));_0x59de3d[_0x1aaa3e(0x118)]=_0x21cd1b['role'],_0x59de3d[_0x1aaa3e(0x127)](new Event(_0x1aaa3e(0x11e),{'bubbles':!![]})),_0x2d8391[_0x1aaa3e(0x118)]='',_0x2d8391['required']=![];if(_0x1d509d)_0x1d509d[_0x1aaa3e(0x10a)]='';_0x3acfae&&(_0x3acfae[_0x1aaa3e(0xd8)][_0x1aaa3e(0x138)]=_0x1aaa3e(0x178));_0x1e0640&&(_0x1e0640['textContent']=_0x1aaa3e(0x15b));const _0x9bdb03=_0x21cd1b[_0x1aaa3e(0x152)]||[];updatePermissionCheckboxes(_0x9bdb03,_0x21cd1b[_0x1aaa3e(0xfa)]);if(_0x9bdb03['length']>0x0){state['permissionsExpanded']=!![];const _0x200d29=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0x11b)),_0x52caa4=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0xf9));if(_0x200d29)_0x200d29[_0x1aaa3e(0xd8)][_0x1aaa3e(0x138)]='block';if(_0x52caa4)_0x52caa4[_0x1aaa3e(0x10a)]=_0x1aaa3e(0x17b);}else{state[_0x1aaa3e(0x17d)]=![];const _0x188835=document['getElementById'](_0x1aaa3e(0x11b)),_0x5a5d5c=document[_0x1aaa3e(0xdf)](_0x1aaa3e(0xf9));if(_0x188835)_0x188835[_0x1aaa3e(0xd8)][_0x1aaa3e(0x138)]='none';if(_0x5a5d5c)_0x5a5d5c[_0x1aaa3e(0x10a)]='Show';}_0x45aa71[_0x1aaa3e(0x106)]=![],setTimeout(()=>{const _0x52a9ce=_0x1aaa3e;document['getElementById'](_0x52a9ce(0x123))[_0x52a9ce(0xec)]();},0x64);};function hideUserModal(){const _0x2b65ea=_0x5d3a30,_0x53521b=document[_0x2b65ea(0xdf)](_0x2b65ea(0x16d)),_0xc84aa7=document[_0x2b65ea(0xdf)](_0x2b65ea(0xc9)),_0x5244ed=document['getElementById'](_0x2b65ea(0x15d));_0x53521b[_0x2b65ea(0x106)]=!![],_0xc84aa7[_0x2b65ea(0x106)]=!![],state[_0x2b65ea(0xbe)]=null,_0x5244ed&&(_0x5244ed[_0x2b65ea(0xb7)]=![],_0x5244ed['textContent']=_0x2b65ea(0xb3));}async function saveUser(){const _0x13dc6a=_0x5d3a30,_0x31d3de=document[_0x13dc6a(0xdf)]('user-form'),_0x1708b0=document['getElementById'](_0x13dc6a(0xcb))?.[_0x13dc6a(0xdb)]||![];if(!_0x1708b0&&!_0x31d3de[_0x13dc6a(0x14b)]()){_0x31d3de[_0x13dc6a(0x161)]();return;}const _0x204f5c=document[_0x13dc6a(0xdf)]('form-error'),_0x4f281f=document[_0x13dc6a(0xdf)]('save-user'),_0x333fe7=document[_0x13dc6a(0xdf)](_0x13dc6a(0x123))[_0x13dc6a(0x118)][_0x13dc6a(0xb8)](),_0x4bebf9=document[_0x13dc6a(0xdf)](_0x13dc6a(0xf1))['value']['trim'](),_0xec7e0a=document[_0x13dc6a(0xdf)](_0x13dc6a(0x134))['value'][_0x13dc6a(0xb8)](),_0x13e335=document['getElementById'](_0x13dc6a(0x122))['value'],_0x315b11=document['getElementById']('user-role')['value'];if(!_0x333fe7||!_0x4bebf9||!_0xec7e0a){_0x204f5c[_0x13dc6a(0x10a)]=_0x13dc6a(0x102),_0x204f5c[_0x13dc6a(0x106)]=![],_0x204f5c['scrollIntoView']({'behavior':_0x13dc6a(0xe1),'block':_0x13dc6a(0x179)});return;}_0x204f5c[_0x13dc6a(0x106)]=!![];const _0x174ceb=_0x4f281f[_0x13dc6a(0x10a)];_0x4f281f[_0x13dc6a(0xb7)]=!![],_0x4f281f[_0x13dc6a(0x10a)]=state[_0x13dc6a(0xbe)]?_0x13dc6a(0x114):_0x13dc6a(0xf5);try{if(state['editingUserId']){const _0x5bacb8={'username':_0x333fe7,'name':_0x4bebf9,'email':_0xec7e0a};if(_0x315b11)_0x5bacb8[_0x13dc6a(0xfa)]=_0x315b11;_0x13e335&&(_0x5bacb8[_0x13dc6a(0x160)]=_0x13e335),state[_0x13dc6a(0x13e)]?.[_0x13dc6a(0x152)]?.[_0x13dc6a(0x101)](_0x4f64b3=>_0x4f64b3[_0x13dc6a(0x163)])&&(_0x5bacb8[_0x13dc6a(0x152)]=state[_0x13dc6a(0xc6)]),await API['updateUser'](state[_0x13dc6a(0xbe)],_0x5bacb8),Utils[_0x13dc6a(0xed)](_0x13dc6a(0x145),'success'),await loadUsers(),hideUserModal();}else{const _0x3ae602={'username':_0x333fe7,'name':_0x4bebf9,'email':_0xec7e0a,'role':_0x315b11};if(!_0x1708b0){if(!_0x13e335)throw new Error(_0x13dc6a(0xc3));_0x3ae602[_0x13dc6a(0x160)]=_0x13e335;}state['rolesInfo']?.[_0x13dc6a(0x152)]?.[_0x13dc6a(0x101)](_0x3ea070=>_0x3ea070['canAssign'])&&state[_0x13dc6a(0xc6)][_0x13dc6a(0xc0)]>0x0&&(_0x3ae602[_0x13dc6a(0x152)]=state['selectedPermissions']);const _0x4530ff=await API[_0x13dc6a(0xde)](_0x3ae602),_0x5cc9f5=_0x4530ff[_0x13dc6a(0x147)];if(_0x1708b0||!_0x13e335){const _0x2b7e5e=await API[_0x13dc6a(0x10e)](_0x5cc9f5['id'],_0x13dc6a(0x165),![]);state[_0x13dc6a(0xb6)]={'username':_0x5cc9f5[_0x13dc6a(0xae)],'email':_0x5cc9f5[_0x13dc6a(0x16b)],'url':_0x2b7e5e['token'][_0x13dc6a(0xea)],'userId':_0x5cc9f5['id'],'type':_0x13dc6a(0x165),'emailSent':![]},await loadUsers(),hideUserModal(),showSetupLinkModal();}else Utils[_0x13dc6a(0xed)](_0x13dc6a(0x144),_0x13dc6a(0xb1)),await loadUsers(),hideUserModal();}}catch(_0x391647){console[_0x13dc6a(0x125)]('Failed\x20to\x20save\x20user',_0x391647),_0x204f5c[_0x13dc6a(0x10a)]=_0x391647[_0x13dc6a(0xac)],_0x204f5c[_0x13dc6a(0x106)]=![],_0x204f5c['scrollIntoView']({'behavior':_0x13dc6a(0xe1),'block':_0x13dc6a(0x179)}),_0x4f281f[_0x13dc6a(0xb7)]=![],_0x4f281f[_0x13dc6a(0x10a)]=_0x174ceb;}}window[_0x5d3a30(0x14c)]=function(_0x512509){const _0x344e95=_0x5d3a30,_0x545d16=state['users'][_0x344e95(0x10b)](_0xe08e9f=>_0xe08e9f['id']===_0x512509);if(!_0x545d16)return;state[_0x344e95(0x157)]=_0x512509;const _0x182e6d=document['getElementById']('delete-modal'),_0x207430=document[_0x344e95(0xdf)]('delete-user-name');_0x207430[_0x344e95(0x10a)]=_0x545d16[_0x344e95(0xba)]+'\x20('+_0x545d16[_0x344e95(0xae)]+')',_0x182e6d[_0x344e95(0x106)]=![];};function hideDeleteModal(){const _0x107c79=_0x5d3a30,_0x220422=document[_0x107c79(0xdf)](_0x107c79(0x136));_0x220422['hidden']=!![],state[_0x107c79(0x157)]=null;}async function confirmDeleteUser(){const _0x21389f=_0x5d3a30;if(!state['deletingUserId'])return;const _0x33488f=document[_0x21389f(0xdf)](_0x21389f(0x124)),_0x388d7d=_0x33488f[_0x21389f(0x10a)];_0x33488f[_0x21389f(0xb7)]=!![],_0x33488f[_0x21389f(0x10a)]='Deleting...';try{await API['deleteUser'](state[_0x21389f(0x157)]),Utils[_0x21389f(0xed)]('User\x20deleted\x20successfully',_0x21389f(0xb1)),await loadUsers(),hideDeleteModal();}catch(_0x331fd1){console['error'](_0x21389f(0x15a),_0x331fd1),Utils['showToast']('Failed\x20to\x20delete\x20user:\x20'+_0x331fd1[_0x21389f(0xac)],_0x21389f(0x125)),_0x33488f[_0x21389f(0xb7)]=![],_0x33488f[_0x21389f(0x10a)]=_0x388d7d;}}function handleSkipPasswordChange(_0x559812){const _0x5e0693=_0x5d3a30,_0xa1e514=document[_0x5e0693(0xdf)](_0x5e0693(0x122)),_0x56369e=_0x559812['target'][_0x5e0693(0xdb)];_0x56369e?(_0xa1e514[_0x5e0693(0xff)]=![],_0xa1e514[_0x5e0693(0xb7)]=!![],_0xa1e514[_0x5e0693(0x118)]=''):(_0xa1e514[_0x5e0693(0xff)]=!![],_0xa1e514[_0x5e0693(0xb7)]=![]);}function showSetupLinkModal(){const _0x401dfe=_0x5d3a30;if(!state[_0x401dfe(0xb6)])return;const _0x45782b=document[_0x401dfe(0xdf)](_0x401dfe(0x167)),_0x2fcc1e=document[_0x401dfe(0xdf)](_0x401dfe(0xe9)),_0xe8e9c0=document[_0x401dfe(0xdf)](_0x401dfe(0x108)),_0x15fa5b=document[_0x401dfe(0xdf)](_0x401dfe(0x158)),_0xd62652=document[_0x401dfe(0xdf)](_0x401dfe(0x139));_0x2fcc1e[_0x401dfe(0x10a)]=state[_0x401dfe(0xb6)]['username'],_0xe8e9c0[_0x401dfe(0x10a)]=state[_0x401dfe(0xb6)][_0x401dfe(0xb4)],_0x15fa5b&&_0xd62652&&(_0x15fa5b[_0x401dfe(0xb7)]=![],_0xd62652[_0x401dfe(0x10a)]='Email\x20Link',state[_0x401dfe(0xf6)]&&!state[_0x401dfe(0xb6)][_0x401dfe(0xd3)]?_0x15fa5b[_0x401dfe(0xd8)]['display']=_0x401dfe(0x12f):_0x15fa5b[_0x401dfe(0xd8)][_0x401dfe(0x138)]=_0x401dfe(0x178)),_0x45782b[_0x401dfe(0x106)]=![];}function hideSetupLinkModal(){const _0x1466db=_0x5d3a30,_0xdc4fb5=document[_0x1466db(0xdf)](_0x1466db(0x167));_0xdc4fb5['hidden']=!![],state[_0x1466db(0xb6)]=null;}async function copySetupLink(){const _0xc401f6=_0x5d3a30;if(!state[_0xc401f6(0xb6)])return;try{await navigator['clipboard'][_0xc401f6(0xd2)](state[_0xc401f6(0xb6)][_0xc401f6(0xb4)]),Utils[_0xc401f6(0xed)]('Link\x20copied\x20to\x20clipboard','success');}catch(_0x8f4a28){console[_0xc401f6(0x125)](_0xc401f6(0x171),_0x8f4a28),Utils[_0xc401f6(0xed)](_0xc401f6(0x171),_0xc401f6(0x125));}}async function emailSetupLink(){const _0x2c53b7=_0x5d3a30;if(!state[_0x2c53b7(0xb6)])return;const _0x29fbbc=document[_0x2c53b7(0xdf)](_0x2c53b7(0x158)),_0x3e2599=document[_0x2c53b7(0xdf)](_0x2c53b7(0x139));if(!_0x29fbbc||!_0x3e2599)return;const _0x3f2e2d=_0x3e2599[_0x2c53b7(0x10a)];_0x29fbbc[_0x2c53b7(0xb7)]=!![],_0x3e2599[_0x2c53b7(0x10a)]=_0x2c53b7(0x149);try{const _0x5d8f63=await API[_0x2c53b7(0x10e)](state[_0x2c53b7(0xb6)]['userId'],state['setupLinkData'][_0x2c53b7(0xd9)],!![]);if(_0x5d8f63[_0x2c53b7(0xd3)])Utils[_0x2c53b7(0xed)](_0x2c53b7(0x13f)+state['setupLinkData'][_0x2c53b7(0x16b)],_0x2c53b7(0xb1)),state[_0x2c53b7(0xb6)]['emailSent']=!![],_0x29fbbc[_0x2c53b7(0xd8)]['display']=_0x2c53b7(0x178);else{const _0x25d5a8=_0x5d8f63['emailError']||_0x2c53b7(0x111);Utils['showToast'](_0x25d5a8,_0x2c53b7(0x125)),_0x29fbbc[_0x2c53b7(0xb7)]=![],_0x3e2599[_0x2c53b7(0x10a)]=_0x3f2e2d;}}catch(_0x113cc2){console[_0x2c53b7(0x125)](_0x2c53b7(0x133),_0x113cc2),Utils[_0x2c53b7(0xed)](_0x2c53b7(0xad)+_0x113cc2['message'],_0x2c53b7(0x125)),_0x29fbbc[_0x2c53b7(0xb7)]=![],_0x3e2599[_0x2c53b7(0x10a)]=_0x3f2e2d;}}window['resetPassword']=async function(_0x4f1a4e){const _0x3d6fe4=_0x5d3a30,_0x47014c=state['users']['find'](_0x4e61a9=>_0x4e61a9['id']===_0x4f1a4e);if(!_0x47014c)return;const _0x3d2b91=await ConfirmDialog[_0x3d6fe4(0x175)]({'title':_0x3d6fe4(0x12a),'message':_0x3d6fe4(0xda)+_0x47014c['name']+'\x20('+_0x47014c[_0x3d6fe4(0xae)]+_0x3d6fe4(0x132),'confirmText':_0x3d6fe4(0xcf)});if(!_0x3d2b91)return;try{const _0x37a061=await API[_0x3d6fe4(0x10e)](_0x4f1a4e,_0x3d6fe4(0xf3),![]);state[_0x3d6fe4(0xb6)]={'username':_0x47014c[_0x3d6fe4(0xae)],'email':_0x47014c[_0x3d6fe4(0x16b)],'url':_0x37a061[_0x3d6fe4(0x103)][_0x3d6fe4(0xea)],'userId':_0x47014c['id'],'type':'reset','emailSent':![]},showSetupLinkModal();}catch(_0x122704){console[_0x3d6fe4(0x125)](_0x3d6fe4(0xe7),_0x122704),Utils[_0x3d6fe4(0xed)](_0x3d6fe4(0x16f)+_0x122704[_0x3d6fe4(0xac)],_0x3d6fe4(0x125));}};
1
+ const _0x399d78=_0x1139;(function(_0x474730,_0xae4c70){const _0x5b5c02=_0x1139,_0xa4ee13=_0x474730();while(!![]){try{const _0x30b3ec=-parseInt(_0x5b5c02(0x100))/0x1+-parseInt(_0x5b5c02(0x143))/0x2*(-parseInt(_0x5b5c02(0x119))/0x3)+parseInt(_0x5b5c02(0x154))/0x4+-parseInt(_0x5b5c02(0xc0))/0x5*(parseInt(_0x5b5c02(0xbb))/0x6)+-parseInt(_0x5b5c02(0x108))/0x7+-parseInt(_0x5b5c02(0x109))/0x8*(-parseInt(_0x5b5c02(0xa8))/0x9)+parseInt(_0x5b5c02(0x142))/0xa;if(_0x30b3ec===_0xae4c70)break;else _0xa4ee13['push'](_0xa4ee13['shift']());}catch(_0x5baaa0){_0xa4ee13['push'](_0xa4ee13['shift']());}}}(_0x3364,0xd2a45));import{API,Utils,ConfirmDialog,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'users':[],'editingUserId':null,'bindingsUserId':null,'deletingUserId':null,'setupLinkData':null,'emailConfigured':![],'currentUser':null,'roles':[],'environments':[],'userBindings':[],'bindingsDirty':![]};document[_0x399d78(0xe5)](_0x399d78(0xf7),async()=>{const _0x4bfc41=_0x399d78;initTheme(),mountThemeToggle(),await checkAdminAccess(),await initializeAdminMenu(state[_0x4bfc41(0x15a)]),await Promise[_0x4bfc41(0xf2)]([checkEmailConfig(),loadRoles(),loadEnvironments()]),bindEventListeners(),await loadUsers();});async function checkAdminAccess(){const _0x160e76=_0x399d78;try{const _0x20d8f5=await API[_0x160e76(0xd5)]();state[_0x160e76(0x15a)]=_0x20d8f5;if(!_0x20d8f5[_0x160e76(0x11a)]){Utils[_0x160e76(0x13b)](_0x160e76(0x131),_0x160e76(0x160)),setTimeout(()=>{const _0x558a46=_0x160e76;window['location'][_0x558a46(0x11d)]=_0x558a46(0xdb);},0x7d0);return;}}catch(_0x4dd404){window['location']['href']='login.html';}}async function checkEmailConfig(){const _0x7a8f7=_0x399d78;try{const _0x269542=await API['getEmailConfig']();state[_0x7a8f7(0xd7)]=_0x269542[_0x7a8f7(0xf5)];}catch(_0x20c6f5){console['error'](_0x7a8f7(0x13e),_0x20c6f5),state['emailConfigured']=![];}}async function loadRoles(){const _0x86a5d7=_0x399d78;try{const {roles:_0x1955ba}=await API[_0x86a5d7(0x111)]();state[_0x86a5d7(0x15c)]=_0x1955ba||[];}catch{state['roles']=[];}}async function loadEnvironments(){const _0x4f6b19=_0x399d78;try{const _0x56d8aa=await API[_0x4f6b19(0xa3)]();state[_0x4f6b19(0xfd)]=_0x56d8aa[_0x4f6b19(0xfd)]||[];}catch{state['environments']=[];}}function _0x1139(_0xb25ae3,_0x4a0e9c){_0xb25ae3=_0xb25ae3-0x9d;const _0x3364b0=_0x3364();let _0x11395c=_0x3364b0[_0xb25ae3];if(_0x1139['hEYzmB']===undefined){var _0x5dcb70=function(_0x2ce0e7){const _0x173bcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x20d8f5='',_0x4dd404='';for(let _0x269542=0x0,_0x20c6f5,_0x1955ba,_0x56d8aa=0x0;_0x1955ba=_0x2ce0e7['charAt'](_0x56d8aa++);~_0x1955ba&&(_0x20c6f5=_0x269542%0x4?_0x20c6f5*0x40+_0x1955ba:_0x1955ba,_0x269542++%0x4)?_0x20d8f5+=String['fromCharCode'](0xff&_0x20c6f5>>(-0x2*_0x269542&0x6)):0x0){_0x1955ba=_0x173bcc['indexOf'](_0x1955ba);}for(let _0x114e81=0x0,_0xa50d52=_0x20d8f5['length'];_0x114e81<_0xa50d52;_0x114e81++){_0x4dd404+='%'+('00'+_0x20d8f5['charCodeAt'](_0x114e81)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4dd404);};_0x1139['HhNFMy']=_0x5dcb70,_0x1139['fYfVww']={},_0x1139['hEYzmB']=!![];}const _0x50a5bc=_0x3364b0[0x0],_0x104772=_0xb25ae3+_0x50a5bc,_0xa731be=_0x1139['fYfVww'][_0x104772];return!_0xa731be?(_0x11395c=_0x1139['HhNFMy'](_0x11395c),_0x1139['fYfVww'][_0x104772]=_0x11395c):_0x11395c=_0xa731be,_0x11395c;}function bindEventListeners(){const _0x26d025=_0x399d78;document[_0x26d025(0x147)](_0x26d025(0xc9))?.[_0x26d025(0xe5)](_0x26d025(0x124),showCreateUserModal),document[_0x26d025(0x147)](_0x26d025(0x141))?.['addEventListener']('click',hideUserModal),document[_0x26d025(0x147)](_0x26d025(0xc2))?.[_0x26d025(0xe5)]('click',hideUserModal),document[_0x26d025(0x147)]('save-user')?.['addEventListener'](_0x26d025(0x124),saveUser),document[_0x26d025(0x14a)](_0x26d025(0xe0))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideUserModal),document[_0x26d025(0x147)]('close-delete-modal')?.[_0x26d025(0xe5)](_0x26d025(0x124),hideDeleteModal),document[_0x26d025(0x147)](_0x26d025(0xa0))?.['addEventListener'](_0x26d025(0x124),hideDeleteModal),document[_0x26d025(0x147)](_0x26d025(0xe2))?.[_0x26d025(0xe5)](_0x26d025(0x124),confirmDeleteUser),document['querySelector'](_0x26d025(0xdd))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideDeleteModal),document[_0x26d025(0x147)](_0x26d025(0x114))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideSetupLinkModal),document[_0x26d025(0x147)](_0x26d025(0x138))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideSetupLinkModal),document[_0x26d025(0x147)](_0x26d025(0x137))?.[_0x26d025(0xe5)](_0x26d025(0x124),copySetupLink),document[_0x26d025(0x147)]('email-setup-link')?.[_0x26d025(0xe5)](_0x26d025(0x124),emailSetupLink),document['querySelector']('#setup-link-modal\x20.modal-overlay')?.[_0x26d025(0xe5)](_0x26d025(0x124),hideSetupLinkModal),document['getElementById']('skip-password')?.[_0x26d025(0xe5)](_0x26d025(0x152),handleSkipPasswordChange),document[_0x26d025(0x147)](_0x26d025(0x14b))?.[_0x26d025(0xe5)](_0x26d025(0x124),loadUsers),document[_0x26d025(0x147)](_0x26d025(0x155))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideAccessBindingsModal),document['getElementById'](_0x26d025(0xf8))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideAccessBindingsModal),document[_0x26d025(0x14a)](_0x26d025(0xe8))?.[_0x26d025(0xe5)](_0x26d025(0x124),hideAccessBindingsModal),document['getElementById'](_0x26d025(0x15e))?.['addEventListener'](_0x26d025(0x152),handleServerAdminToggle),document[_0x26d025(0x147)](_0x26d025(0xd1))?.['addEventListener'](_0x26d025(0x124),()=>{const _0x325aec=_0x26d025;document[_0x325aec(0x147)](_0x325aec(0xd8))[_0x325aec(0x150)]=![],document['getElementById'](_0x325aec(0xd1))[_0x325aec(0x150)]=!![],populateUserBindingForm();}),document['getElementById'](_0x26d025(0xcd))?.[_0x26d025(0xe5)](_0x26d025(0x124),()=>{const _0x466f32=_0x26d025;document[_0x466f32(0x147)](_0x466f32(0xd8))[_0x466f32(0x150)]=!![],document[_0x466f32(0x147)](_0x466f32(0xd1))['hidden']=![];}),document[_0x26d025(0x147)](_0x26d025(0x136))?.['addEventListener'](_0x26d025(0x124),saveUserBinding);}async function loadUsers(){const _0xc016bd=_0x399d78,_0x114e81=document[_0xc016bd(0x147)](_0xc016bd(0xd9)),_0xa50d52=document[_0xc016bd(0x147)]('users-error'),_0x3d90f6=document[_0xc016bd(0x147)]('users-content');try{_0x114e81[_0xc016bd(0x150)]=![],_0xa50d52[_0xc016bd(0x150)]=!![],_0x3d90f6['hidden']=!![];const _0x1dc152=await API['getUsers']();state['users']=_0x1dc152[_0xc016bd(0x10a)]||[],renderUsers(),_0x114e81[_0xc016bd(0x150)]=!![],_0x3d90f6[_0xc016bd(0x150)]=![];}catch(_0x1c51de){console[_0xc016bd(0x160)](_0xc016bd(0x15f),_0x1c51de),_0x114e81['hidden']=!![],_0xa50d52['hidden']=![],document['getElementById'](_0xc016bd(0xf0))['textContent']=_0x1c51de['message'];}}function renderUsers(){const _0x16b612=_0x399d78,_0x317064=document[_0x16b612(0x147)](_0x16b612(0x130)),_0x4937fb=document['getElementById']('user-count');if(!_0x317064)return;_0x4937fb&&(_0x4937fb[_0x16b612(0xec)]=state[_0x16b612(0x10a)][_0x16b612(0x157)]+_0x16b612(0xd3)+(state[_0x16b612(0x10a)][_0x16b612(0x157)]===0x1?'':'s'));const _0x58cc32=[...state['users']][_0x16b612(0x121)]((_0x4fb092,_0xe4c4de)=>{const _0x4009f3=_0x16b612,_0x49431e=new Date(_0x4fb092['created_at'])[_0x4009f3(0x105)](),_0x53f5b3=new Date(_0xe4c4de[_0x4009f3(0xbc)])['getTime']();return _0x53f5b3-_0x49431e;});_0x317064[_0x16b612(0x127)]=_0x58cc32[_0x16b612(0xbe)](_0x3d38db=>_0x16b612(0x12d)+Utils[_0x16b612(0xc4)](_0x3d38db[_0x16b612(0x135)])+_0x16b612(0xa5)+Utils['escapeHtml'](_0x3d38db[_0x16b612(0x10e)])+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils[_0x16b612(0xc4)](_0x3d38db[_0x16b612(0xda)])+_0x16b612(0x14c)+(_0x3d38db[_0x16b612(0x11a)]?'<span\x20class=\x22role-badge\x20role-admin\x22>Server\x20Admin</span>':'')+_0x16b612(0xe6)+(_0x3d38db[_0x16b612(0x133)]?'<span\x20class=\x22role-badge\x20role-user-binding\x22>User\x20Binding</span>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3d38db[_0x16b612(0xef)]?_0x16b612(0xca):'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils[_0x16b612(0x103)](_0x3d38db[_0x16b612(0xbc)])+_0x16b612(0x15b)+_0x3d38db['id']+_0x16b612(0xdc)+_0x3d38db['id']+_0x16b612(0x10f)+_0x3d38db['id']+'\x27)\x22\x20title=\x22Delete\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2214\x22\x20height=\x2214\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x223\x206\x205\x206\x2021\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M19\x206v14a2\x202\x200\x200\x201-2\x202H7a2\x202\x200\x200\x201-2-2V6m3\x200V4a2\x202\x200\x200\x201\x202-2h4a2\x202\x200\x200\x201\x202\x202v2\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn-secondary\x20btn-small\x22\x20onclick=\x22window.resetPassword(\x27'+_0x3d38db['id']+'\x27)\x22>Reset\x20Password</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')[_0x16b612(0xbd)]('');}window[_0x399d78(0xe7)]=function(_0x27b1ee){const _0x490d9b=_0x399d78,_0x12af56=state[_0x490d9b(0x10a)][_0x490d9b(0xff)](_0x4169ff=>_0x4169ff['id']===_0x27b1ee);if(!_0x12af56)return;state[_0x490d9b(0xce)]=_0x27b1ee,state[_0x490d9b(0xc8)]=![];const _0x384aac=document[_0x490d9b(0x147)](_0x490d9b(0xc1)),_0xca9471=document[_0x490d9b(0x147)](_0x490d9b(0x10c));_0xca9471[_0x490d9b(0xec)]=_0x490d9b(0xc6)+_0x12af56[_0x490d9b(0x10e)];const _0x275114=document['getElementById'](_0x490d9b(0x15e));_0x275114&&(_0x275114[_0x490d9b(0xeb)]=!!_0x12af56[_0x490d9b(0x11a)]),document[_0x490d9b(0x147)](_0x490d9b(0xd8))[_0x490d9b(0x150)]=!![],document[_0x490d9b(0x147)]('add-user-binding-btn')[_0x490d9b(0x150)]=![],_0x384aac[_0x490d9b(0x150)]=![],loadUserBindings(_0x27b1ee);};function hasUnsavedBindingChanges(){const _0x4ffb89=_0x399d78,_0x940eb4=document[_0x4ffb89(0x147)]('add-user-binding-form');return _0x940eb4&&!_0x940eb4[_0x4ffb89(0x150)];}async function hideAccessBindingsModal(){const _0x1ac0f9=_0x399d78;if(hasUnsavedBindingChanges()){if(!confirm(_0x1ac0f9(0x10d)))return;document[_0x1ac0f9(0x147)]('add-user-binding-form')[_0x1ac0f9(0x150)]=!![],document[_0x1ac0f9(0x147)](_0x1ac0f9(0xd1))[_0x1ac0f9(0x150)]=![];}const _0x1b741e=document[_0x1ac0f9(0x147)](_0x1ac0f9(0xc1));_0x1b741e['hidden']=!![];const _0x428f40=state['bindingsDirty'];state[_0x1ac0f9(0xce)]=null,state['userBindings']=[],state[_0x1ac0f9(0xc8)]=![],_0x428f40&&await loadUsers();}async function handleServerAdminToggle(_0x217001){const _0x486a9a=_0x399d78;if(!state['bindingsUserId'])return;const _0x3d960d=_0x217001[_0x486a9a(0xae)],_0x5bd62b=_0x3d960d['checked'];try{await API['updateUser'](state['bindingsUserId'],{'isServerAdmin':_0x5bd62b}),Utils[_0x486a9a(0x13b)](_0x5bd62b?'Server\x20Admin\x20enabled':_0x486a9a(0x12f),_0x486a9a(0x132));const _0x56950c=state[_0x486a9a(0x10a)][_0x486a9a(0xff)](_0x64f290=>_0x64f290['id']===state[_0x486a9a(0xce)]);_0x56950c&&(_0x56950c[_0x486a9a(0x11a)]=_0x5bd62b,renderUsers());}catch(_0x5c46c7){_0x3d960d[_0x486a9a(0xeb)]=!_0x5bd62b,Utils['showToast'](_0x5c46c7['message'],'error');}}async function loadUserBindings(_0x208565){const _0xcf8a32=_0x399d78,_0x443ccf=document[_0xcf8a32(0x147)](_0xcf8a32(0xb7)),_0x380500=document[_0xcf8a32(0x147)](_0xcf8a32(0x116)),_0x5f2265=document[_0xcf8a32(0x147)](_0xcf8a32(0x122)),_0x4763bc=document[_0xcf8a32(0x147)](_0xcf8a32(0xd1)),_0x3eb138=document[_0xcf8a32(0x147)]('user-team-bindings-note'),_0x18727f=document[_0xcf8a32(0x147)]('user-team-bindings-text');_0x443ccf[_0xcf8a32(0x150)]=![],_0x380500[_0xcf8a32(0x150)]=!![],_0x5f2265[_0xcf8a32(0x12a)][_0xcf8a32(0xa9)]='none',_0x4763bc[_0xcf8a32(0x150)]=!![],_0x3eb138['hidden']=!![],document[_0xcf8a32(0x147)](_0xcf8a32(0xd8))['hidden']=!![];try{const [_0x48ae71,_0x5a8baa]=await Promise['all']([API['getBindings']({'subject_type':_0xcf8a32(0x10b),'subject_id':_0x208565}),API[_0xcf8a32(0xb0)]()]);state[_0xcf8a32(0xf9)]=_0x48ae71[_0xcf8a32(0x139)]||[];const _0x364cba=(_0x5a8baa['teams']||[])[_0xcf8a32(0xd4)](_0x21dcda=>(_0x21dcda[_0xcf8a32(0x14d)]||[])['includes'](_0x208565)),_0x5a69d5=[];if(_0x364cba[_0xcf8a32(0x157)]>0x0){const _0xbfab1a=await Promise[_0xcf8a32(0xf2)](_0x364cba[_0xcf8a32(0xbe)](_0x23cc7a=>API[_0xcf8a32(0x9d)]({'subject_type':'team','subject_id':_0x23cc7a['id']})));for(let _0x56b880=0x0;_0x56b880<_0x364cba['length'];_0x56b880++){const _0x5b5e04=_0xbfab1a[_0x56b880][_0xcf8a32(0x139)]||[];_0x5b5e04['length']>0x0&&_0x5a69d5[_0xcf8a32(0x13c)](_0x364cba[_0x56b880]);}}_0x443ccf[_0xcf8a32(0x150)]=!![];state[_0xcf8a32(0xf9)]['length']===0x0?_0x380500[_0xcf8a32(0x150)]=![]:(_0x5f2265[_0xcf8a32(0x12a)][_0xcf8a32(0xa9)]='',renderUserBindingsTable());if(_0x5a69d5[_0xcf8a32(0x157)]>0x0){const _0x482666=_0x5a69d5['map'](_0x269201=>_0x269201[_0xcf8a32(0x10e)]),_0x162c2f=_0x482666[_0xcf8a32(0x157)]<=0x3?_0x482666[_0xcf8a32(0xbd)](',\x20'):_0x482666['slice'](0x0,0x3)[_0xcf8a32(0xbd)](',\x20')+(_0xcf8a32(0x9e)+(_0x482666['length']-0x3)+_0xcf8a32(0x117));_0x18727f[_0xcf8a32(0xec)]=_0xcf8a32(0xb2)+_0x162c2f+').';}else _0x18727f['textContent']=_0xcf8a32(0xa2);_0x3eb138['hidden']=![],_0x4763bc[_0xcf8a32(0x150)]=![];}catch(_0x91bfe){_0x443ccf[_0xcf8a32(0x150)]=!![],Utils['showToast'](_0xcf8a32(0x112)+_0x91bfe[_0xcf8a32(0xc3)],_0xcf8a32(0x160));}}function renderUserBindingsTable(){const _0x1288e4=_0x399d78,_0x155adf=document['getElementById'](_0x1288e4(0xb6));if(!_0x155adf)return;_0x155adf[_0x1288e4(0x127)]=state[_0x1288e4(0xf9)][_0x1288e4(0xbe)](_0x3406f2=>_0x1288e4(0x102)+Utils[_0x1288e4(0xc4)](_0x3406f2[_0x1288e4(0xb8)])+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x3406f2['role_name']||_0x3406f2['role_id'])+_0x1288e4(0x125)+_0x3406f2['id']+'\x27)\x22\x20style=\x22color:\x20var(--color-danger);\x22>Remove</button>\x0a\x20\x20\x20\x20\x20\x20</td>\x0a\x20\x20\x20\x20</tr>')['join']('');}function populateUserBindingForm(){const _0x217156=_0x399d78,_0x159a92=document[_0x217156(0x147)]('user-binding-environment'),_0x21a766=document[_0x217156(0x147)](_0x217156(0x146)),_0x37a7a3=new Set(state['userBindings']['map'](_0x12aeb9=>_0x12aeb9[_0x217156(0xb8)])),_0x470e71=state[_0x217156(0xfd)][_0x217156(0xd4)](_0x3a3218=>!_0x37a7a3[_0x217156(0x9f)](_0x3a3218[_0x217156(0x10e)]));_0x159a92[_0x217156(0x127)]=_0x470e71[_0x217156(0x157)]?_0x470e71[_0x217156(0xbe)](_0x14ab28=>_0x217156(0xa6)+Utils['escapeHtml'](_0x14ab28[_0x217156(0x10e)])+'\x22>'+Utils[_0x217156(0xc4)](_0x14ab28[_0x217156(0x10e)])+_0x217156(0xa4))[_0x217156(0xbd)](''):'<option\x20value=\x22\x22>All\x20environments\x20already\x20bound</option>',_0x21a766[_0x217156(0x127)]=state[_0x217156(0x15c)]['map'](_0x60a05d=>_0x217156(0xa6)+_0x60a05d['id']+'\x22>'+Utils['escapeHtml'](_0x60a05d[_0x217156(0x10e)])+'</option>')[_0x217156(0xbd)]('');}async function saveUserBinding(){const _0x1cd99a=_0x399d78,_0x36a229=document[_0x1cd99a(0x147)]('user-binding-environment')[_0x1cd99a(0x12e)],_0x22a70f=document['getElementById'](_0x1cd99a(0x146))['value'];if(!_0x36a229||!_0x22a70f||!state[_0x1cd99a(0xce)])return;const _0x38febb=document['getElementById'](_0x1cd99a(0x136));_0x38febb[_0x1cd99a(0x113)]=!![],_0x38febb[_0x1cd99a(0xec)]=_0x1cd99a(0x14f);try{await API[_0x1cd99a(0xd0)]({'subject_type':_0x1cd99a(0x10b),'subject_id':state['bindingsUserId'],'role_id':_0x22a70f,'environment':_0x36a229}),Utils[_0x1cd99a(0x13b)](_0x1cd99a(0xab),_0x1cd99a(0x132)),state[_0x1cd99a(0xc8)]=!![],document['getElementById'](_0x1cd99a(0xd8))[_0x1cd99a(0x150)]=!![],document[_0x1cd99a(0x147)](_0x1cd99a(0xd1))[_0x1cd99a(0x150)]=![],await loadUserBindings(state[_0x1cd99a(0xce)]);}catch(_0x193955){Utils[_0x1cd99a(0x13b)](_0x193955[_0x1cd99a(0xc3)],_0x1cd99a(0x160));}finally{_0x38febb[_0x1cd99a(0x113)]=![],_0x38febb['textContent']=_0x1cd99a(0x126);}}window[_0x399d78(0x11c)]=async function(_0x1183b2){const _0x500167=_0x399d78;try{await API[_0x500167(0x158)](_0x1183b2),Utils[_0x500167(0x13b)]('Binding\x20removed',_0x500167(0x132)),state[_0x500167(0xc8)]=!![],await loadUserBindings(state['bindingsUserId']);}catch(_0x29ef59){Utils['showToast'](_0x29ef59[_0x500167(0xc3)],_0x500167(0x160));}};function showCreateUserModal(){const _0x2b8ed0=_0x399d78;state[_0x2b8ed0(0xdf)]=null;const _0x2b2eb1=document['getElementById'](_0x2b8ed0(0xc5)),_0x2c716f=document[_0x2b8ed0(0x147)](_0x2b8ed0(0xba)),_0x478842=document[_0x2b8ed0(0x147)](_0x2b8ed0(0xd2)),_0x31c41d=document[_0x2b8ed0(0x147)]('password-required'),_0x372d36=document[_0x2b8ed0(0x147)](_0x2b8ed0(0x13a)),_0x169160=document['getElementById'](_0x2b8ed0(0x159)),_0x145821=document[_0x2b8ed0(0x147)]('skip-password');_0x2c716f['textContent']=_0x2b8ed0(0x151),document['getElementById'](_0x2b8ed0(0x11e))['reset'](),_0x478842[_0x2b8ed0(0x13d)]=!![];if(_0x31c41d)_0x31c41d['textContent']='*';_0x169160&&(_0x169160[_0x2b8ed0(0x12a)][_0x2b8ed0(0xa9)]=_0x2b8ed0(0xde),_0x145821[_0x2b8ed0(0xeb)]=![]),_0x372d36&&(_0x372d36['textContent']=_0x2b8ed0(0xb5)),_0x2b2eb1[_0x2b8ed0(0x150)]=![],setTimeout(()=>{const _0x3bc578=_0x2b8ed0;document[_0x3bc578(0x147)](_0x3bc578(0x148))[_0x3bc578(0xee)]();},0x64);}window[_0x399d78(0x14e)]=function(_0x2d8d1d){const _0x485f91=_0x399d78,_0xd3253f=state[_0x485f91(0x10a)][_0x485f91(0xff)](_0x311960=>_0x311960['id']===_0x2d8d1d);if(!_0xd3253f)return;state[_0x485f91(0xdf)]=_0x2d8d1d;const _0x38efb1=document[_0x485f91(0x147)](_0x485f91(0xc5)),_0x3ecea9=document[_0x485f91(0x147)]('modal-title'),_0x506cda=document[_0x485f91(0x147)](_0x485f91(0xd2)),_0x115975=document[_0x485f91(0x147)]('password-required'),_0x285ce1=document[_0x485f91(0x147)]('password-hint'),_0x20835e=document[_0x485f91(0x147)]('skip-password-container');_0x3ecea9[_0x485f91(0xec)]=_0x485f91(0x153),document['getElementById'](_0x485f91(0x148))[_0x485f91(0x12e)]=_0xd3253f['username'],document[_0x485f91(0x147)](_0x485f91(0xc7))[_0x485f91(0x12e)]=_0xd3253f[_0x485f91(0x10e)],document['getElementById'](_0x485f91(0xb3))[_0x485f91(0x12e)]=_0xd3253f['email'],_0x506cda['value']='',_0x506cda[_0x485f91(0x13d)]=![];if(_0x115975)_0x115975[_0x485f91(0xec)]='';_0x20835e&&(_0x20835e[_0x485f91(0x12a)]['display']=_0x485f91(0xfa)),_0x285ce1&&(_0x285ce1[_0x485f91(0xec)]='Leave\x20blank\x20to\x20keep\x20current\x20password'),_0x38efb1['hidden']=![],setTimeout(()=>{const _0x451cd5=_0x485f91;document[_0x451cd5(0x147)](_0x451cd5(0x148))[_0x451cd5(0xee)]();},0x64);};function hideUserModal(){const _0x56c5ce=_0x399d78,_0x407c7c=document['getElementById'](_0x56c5ce(0xc5)),_0x53d0ae=document[_0x56c5ce(0x147)](_0x56c5ce(0xcf)),_0x473d44=document[_0x56c5ce(0x147)](_0x56c5ce(0xcb));_0x407c7c['hidden']=!![],_0x53d0ae[_0x56c5ce(0x150)]=!![],state[_0x56c5ce(0xdf)]=null,_0x473d44&&(_0x473d44[_0x56c5ce(0x113)]=![],_0x473d44['textContent']=_0x56c5ce(0x128));}async function saveUser(){const _0x197b9d=_0x399d78,_0x755857=document[_0x197b9d(0x147)](_0x197b9d(0x11e)),_0x221f12=document[_0x197b9d(0x147)](_0x197b9d(0x115))?.[_0x197b9d(0xeb)]||![];if(!_0x221f12&&!_0x755857[_0x197b9d(0x11b)]()){_0x755857[_0x197b9d(0xaf)]();return;}const _0x30ecc6=document[_0x197b9d(0x147)](_0x197b9d(0xcf)),_0x2f14d1=document[_0x197b9d(0x147)](_0x197b9d(0xcb)),_0x5066fe=document[_0x197b9d(0x147)](_0x197b9d(0x148))[_0x197b9d(0x12e)][_0x197b9d(0xfb)](),_0x1d2dc6=document['getElementById'](_0x197b9d(0xc7))[_0x197b9d(0x12e)][_0x197b9d(0xfb)](),_0x1e4d91=document[_0x197b9d(0x147)]('user-email')[_0x197b9d(0x12e)]['trim'](),_0x2ab2b3=document['getElementById']('user-password')[_0x197b9d(0x12e)];if(!_0x5066fe||!_0x1d2dc6||!_0x1e4d91){_0x30ecc6[_0x197b9d(0xec)]=_0x197b9d(0xea),_0x30ecc6[_0x197b9d(0x150)]=![],_0x30ecc6[_0x197b9d(0xe1)]({'behavior':_0x197b9d(0x13f),'block':_0x197b9d(0xe9)});return;}_0x30ecc6['hidden']=!![];const _0x375bfb=_0x2f14d1[_0x197b9d(0xec)];_0x2f14d1['disabled']=!![],_0x2f14d1[_0x197b9d(0xec)]=state[_0x197b9d(0xdf)]?_0x197b9d(0xed):'Creating...';try{if(state[_0x197b9d(0xdf)]){const _0x28ded2={'username':_0x5066fe,'name':_0x1d2dc6,'email':_0x1e4d91};_0x2ab2b3&&(_0x28ded2['password']=_0x2ab2b3),await API['updateUser'](state['editingUserId'],_0x28ded2),Utils[_0x197b9d(0x13b)](_0x197b9d(0xf3),'success'),await loadUsers(),hideUserModal();}else{const _0x4d0486={'username':_0x5066fe,'name':_0x1d2dc6,'email':_0x1e4d91};if(!_0x221f12){if(!_0x2ab2b3)throw new Error(_0x197b9d(0x144));_0x4d0486[_0x197b9d(0x11f)]=_0x2ab2b3;}const _0x52a2fe=await API['createUser'](_0x4d0486),_0x2a0137=_0x52a2fe[_0x197b9d(0x10b)];if(_0x221f12||!_0x2ab2b3){const _0x39b15f=await API[_0x197b9d(0x123)](_0x2a0137['id'],'setup',![]);state[_0x197b9d(0x149)]={'username':_0x2a0137[_0x197b9d(0x135)],'email':_0x2a0137['email'],'url':_0x39b15f[_0x197b9d(0xbf)]['setupUrl'],'userId':_0x2a0137['id'],'type':_0x197b9d(0xe3),'emailSent':![]},await loadUsers(),hideUserModal(),showSetupLinkModal();}else Utils[_0x197b9d(0x13b)](_0x197b9d(0x110),'success'),await loadUsers(),hideUserModal();}}catch(_0x2c7010){console['error'](_0x197b9d(0xfc),_0x2c7010),_0x30ecc6[_0x197b9d(0xec)]=_0x2c7010[_0x197b9d(0xc3)],_0x30ecc6[_0x197b9d(0x150)]=![],_0x30ecc6[_0x197b9d(0xe1)]({'behavior':_0x197b9d(0x13f),'block':'nearest'}),_0x2f14d1[_0x197b9d(0x113)]=![],_0x2f14d1[_0x197b9d(0xec)]=_0x375bfb;}}function _0x3364(){const _0x73ab98=['y2XVC2uTDxnLCI1TB2rHBa','mZe3odC0ndb3ww9zswi','mM9Xs3fjtW','ugfZC3DVCMqGAxmGCMvXDwLYzwqGzM9Yig5LDYb1C2vYCW','y2XPCgjVyxjK','DxnLCI1IAw5KAw5NlxjVBgu','z2v0rwXLBwvUDej5swq','DxnLCI11C2vYBMfTzq','C2v0DxbmAw5Rrgf0yq','CxvLCNLtzwXLy3rVCG','CMv0CNKTDxnLCNmTyNrU','pc90zd4kicaGicaGphrKpGOGicaGicaGidXKAxyGy2XHC3m9iMfJy2vZCY1IywrNzxmIpGOGicaGicaGicaG','BwvTyMvYCW','zwrPDfvZzxi','qwrKAw5N4OcM','AgLKzgvU','q3jLyxrLifvZzxi','y2HHBMDL','rwrPDcbvC2vY','mtq3mdiZmM9sBNDyyG','y2XVC2uTyMLUzgLUz3mTBw9KywW','zgvSzxrPBMDvC2vYswq','BgvUz3rO','zgvSzxrLqMLUzgLUzW','C2TPCc1WyxnZD29Yzc1JB250ywLUzxi','y3vYCMvUDfvZzxi','pc90zd4kicaGicaGphrKpGOGicaGicaGidXKAxyGy2XHC3m9iNvZzxiTywn0Aw9UCYi+cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4TAwnVBIbIDg4TC21HBgWIig9Uy2XPy2S9iNDPBMrVDY5LzgL0vxnLCIGN','CM9Szxm','CMvZzxq','DxnLCI1PCY1Zzxj2zxiTywrTAw4','rMfPBgvKihrVigXVywqGDxnLCNm','zxjYB3i','z2v0qMLUzgLUz3m','lcbHBMqG','AgfZ','y2fUy2vSlwrLBgv0zq','rw1HAwWGC2vUDcb0BYa','vgHPCYb1C2vYigHHCYbUBYbHy2nLC3mGDMLHihrLyw0GBwvTyMvYC2HPChmU','z2v0rw52AxjVBM1LBNrZ','pc9VChrPB24+','cIaGicaGicaGpc9KAxy+cIaGicaGidWVDgq+cIaGicaGidX0zd4','pg9WDgLVBIb2ywX1zt0I','DxjS','nJq4mtCXvuDAtxL1','zgLZCgXHEq','r2vUzxjHDguGtgLUAW','qMLUzgLUzYbHzgrLza','rMfPBgvKihrVihnLBMqGzw1HAwW','uMvZzxqGugfZC3DVCMq','DgfYz2v0','CMvWB3j0vMfSAwrPDhK','z2v0vgvHBxm','rgvSzxrLifvZzxi','vgHPCYb1C2vYigfSC28GAgfZigfJy2vZCYb2AweGDgvHBsbTzw1IzxjZAgLWCYaO','DxnLCI1LBwfPBa','rMfPBgvKihrVigrLBgv0zsb1C2vYoIa','twLUAw11Bsa4ignOyxjHy3rLCNm','DxnLCI1IAw5KAw5NCY10ywjSzs1IB2r5','DxnLCI1IAw5KAw5NCY1SB2fKAw5N','zw52AxjVBM1LBNq','tgLUAYbJB3bPzwqGDg8Gy2XPCgjVyxjK','Bw9KywWTDgL0Bgu','nJzjC0ztt0G','y3jLyxrLzf9HDa','AM9PBG','BwfW','Dg9Rzw4','nJu0mJm1r0zyy3fH','yMLUzgLUz3mTBw9KywW','y2fUy2vSlxvZzxi','BwvZC2fNzq','zxnJyxbLshrTBa','DxnLCI1TB2rHBa','qwnJzxnZiejPBMrPBMDZiokaLca','DxnLCI1Uyw1L','yMLUzgLUz3neAxj0Eq','y3jLyxrLlxvZzxiTyNrU','phnWyw4Gy2XHC3m9iNjVBguTyMfKz2uGCM9Szs10zwfTlwjPBMrPBMCIpLrLyw0GqMLUzgLUzZWVC3bHBJ4','C2f2zs11C2vY','zgvSzxrLvxnLCG','y2fUy2vSlxvZzxiTyMLUzgLUzY1IDg4','yMLUzgLUz3nvC2vYswq','zM9YBs1LCNjVCG','y3jLyxrLqMLUzgLUzW','ywrKlxvZzxiTyMLUzgLUzY1IDg4','DxnLCI1WyxnZD29Yza','ihvZzxi','zMLSDgvY','z2v0q3vYCMvUDfvZzxi','zw1HAwXfCNjVCG','zw1HAwXdB25MAwD1CMvK','ywrKlxvZzxiTyMLUzgLUzY1MB3jT','DxnLCNmTBg9HzgLUzW','zw1HAwW','Aw5KzxGUAhrTBa','jYKIihrPDgXLpsjfzgL0iJ4kicaGicaGicaGicaGphn2zYb3Awr0Ad0ImtqIigHLAwDODd0ImtqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIi+cIaGicaGicaGicaGicaGphbHDgGGzd0ItteXidringeYidiGmcaWidaTmIaYDJe0ytiGmIaWidaGmcaYidjOmtrHmIaYidaGmcaWidiTmNyTnYi+pc9WyxrOpGOGicaGicaGicaGicaGidXWyxrOigq9iK0Xoc41idiUnweYlJeYmsaYlJeYmsaWidaGmsaZidnmmtiGmtvSltqGmsaXltqGos41ltKUnxOIpJWVCgf0Ad4kicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGica8l2j1DhrVBJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BI1Py29Uigj0BI1ZBwfSBciGB25JBgLJAZ0ID2LUzg93lNnOB3Dby2nLC3ncAw5KAw5NCYGN','i2rLBgv0zs1TB2rHBcaUBw9KywWTB3zLCMXHEq','yMXVy2S','zwrPDgLUz1vZzxjjza','i3vZzxiTBw9KywWGlM1VzgfSlw92zxjSyxK','C2nYB2XSsw50B1zPzxC','y29UzMLYBs1KzwXLDgu','C2v0Dxa','zgvSzxrLlw1VzgfS','ywrKrxzLBNrmAxn0zw5LCG','cIaGicaGicaGica','C2HVD0fJy2vZC0jPBMrPBMDZ','i2jPBMrPBMDZlw1VzgfSic5TB2rHBc1VDMvYBgf5','BMvHCMvZDa','ugXLyxnLigzPBgWGAw4GywXSihjLCxvPCMvKigzPzwXKCW','y2HLy2TLza','Dgv4DenVBNrLBNq','vxbKyxrPBMCUlI4','zM9JDxm','AgfZvgvHBujPBMrPBMC','DxnLCNmTzxjYB3iTBwvZC2fNzq','rMfPBgvKihrVihnLBMqGzw1HAwW6ia','ywXS','vxnLCIb1CgrHDgvKihn1y2nLC3nMDwXSEq','u2vUzgLUzY4UlG','y29UzMLNDxjLza','C2v0DxaTBgLUAY1TB2rHBa','re9nq29UDgvUDeXVywrLza','y2XVC2uTyMLUzgLUz3mTBw9KywWTzM9VDgvY','DxnLCKjPBMrPBMDZ','BM9Uzq','DhjPBq','rMfPBgvKihrVihnHDMuGDxnLCG','zw52AxjVBM1LBNrZ','C2v0DxaTBgLUAY11CMW','zMLUza','mti2odm3oxbQwKrPDW','rMfPBgvKihrVignVChKGBgLUAW','cIaGica8Dhi+cIaGicaGidX0zd4','zM9YBwf0uMvSyxrPDMvuAw1L','zw1HAwWTC2v0DxaTBgLUAW','z2v0vgLTzq','kt8GvgHPCYb3AwXSignYzwf0zsbHigXPBMSGDgHHDcb0Agv5ignHBIb1C2uGDg8GC2v0igeGBMv3ihbHC3n3B3jKlG','zw1HAwXtzw50','mta5mJa2odzdsfzmuwe','mtq0EgjpAvLP','DxnLCNm','DxnLCG','yMLUzgLUz3mTBw9KywWTDgL0Bgu','ww91igHHDMuGyw4GDw5ZyxzLzcbIAw5KAw5NlIbeAxnJyxjKignOyw5Nzxm/','BMfTzq','jYKIihrPDgXLpsjby2nLC3mGqMLUzgLUz3mIpGOGicaGicaGicaGica8C3zNihDPzhrOpsiXnciGAgvPz2H0psiXnciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiJ4kicaGicaGicaGicaGica8Cgf0AcbKpsjnmtiGmJjZoc00idGTmtbwnwWToc0ZltGGm3y3yZaGnIa4ideWidGGmtb6iJ48l3bHDgG+cIaGicaGicaGicaGidWVC3zNpGOGicaGicaGicaGpc9IDxr0B24+cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4TAwnVBIbIDg4TC21HBgWGyNrUlwrHBMDLCIiGB25JBgLJAZ0ID2LUzg93lMrLBgv0zvvZzxiOjW','vxnLCIbJCMvHDgvKihn1y2nLC3nMDwXSEq','z2v0uM9SzurLzMLUAxrPB25Z','rMfPBgvKihrVigXVywqGyMLUzgLUz3m6ia','zgLZywjSzwq','y2XVC2uTC2v0DxaTBgLUAY1TB2rHBa','C2TPCc1WyxnZD29Yza','DxnLCI1IAw5KAw5NCY1LBxb0Eq','ig1VCMu','zw1HAwWTyNv0Dg9UlxrLEhq','odyZode3r2vrAwzh','Axntzxj2zxjbzg1PBG','y2HLy2TwywXPzgL0Eq','zgvSzxrLvxnLCKjPBMrPBMDdBgLJAW','AhjLzG','DxnLCI1MB3jT','CgfZC3DVCMq','rgvSzxrPBMCUlI4','C29YDa','DxnLCI1IAw5KAw5NCY1SAxn0lwnVBNrHAw5LCG','y3jLyxrLugfZC3DVCMruB2TLBG','y2XPy2S','pc90zd4kicaGicaGphrKpGOGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BI1NAg9ZDcbIDg4TC21HBgWIig9Uy2XPy2S9iNDPBMrVDY5KzwXLDgvvC2vYqMLUzgLUz0nSAwnRkcC','qwrKiejPBMrPBMC','Aw5Uzxjive1m','u2f2zsbvC2vY','Aw5SAw5LlwjSB2nR','C3r5Bgu','zgvSzxrLlxvZzxiTBMfTzq','rw1HAwWGtgLUAW','cIaGica8Dhi+cIaGicaGidX0zd4kicaGicaGica8zgL2ignSyxnZpsj1C2vYlxvZzxjUyw1LiJ4kicaGicaGicaGia','DMfSDwu','u2vYDMvYiefKBwLUihjLBw92zwq','DxnLCNmTDgfIBguTyM9KEq','qwnJzxnZigrLBMLLzdOGu2vYDMvYigfKBwLUihbYAxzPBgvNzxmGCMvXDwLYzwq','C3vJy2vZCW','AgfZvxnLCKjPBMrPBMC','CMvZzxrqyxnZD29Yza','DxnLCM5HBwu','C2f2zs11C2vYlwjPBMrPBMCTyNrU','y29WEs1Zzxr1Cc1SAw5R','y2XVC2uTC2v0DxaTBgLUAW','yMLUzgLUz3m','CgfZC3DVCMqTAgLUDa','C2HVD1rVyxn0','ChvZAa','CMvXDwLYzwq','rMfPBgvKihrVignOzwnRigvTywLSignVBMzPzW','C21VB3rO','rMfPBgvKihrVignYzwf0zsbWyxnZD29YzcbYzxnLDcbSAw5RoIa'];_0x3364=function(){return _0x73ab98;};return _0x3364();}window['deleteUser']=function(_0x50b1fd){const _0x4ab24f=_0x399d78,_0x5cedc5=state[_0x4ab24f(0x10a)][_0x4ab24f(0xff)](_0x2b5591=>_0x2b5591['id']===_0x50b1fd);if(!_0x5cedc5)return;state[_0x4ab24f(0x156)]=_0x50b1fd;const _0x19c796=document[_0x4ab24f(0x147)](_0x4ab24f(0xe4)),_0x41f06b=document[_0x4ab24f(0x147)](_0x4ab24f(0x12b));_0x41f06b[_0x4ab24f(0xec)]=_0x5cedc5['name']+'\x20('+_0x5cedc5['username']+')',_0x19c796[_0x4ab24f(0x150)]=![];};function hideDeleteModal(){const _0x3367f1=_0x399d78,_0x4ead88=document[_0x3367f1(0x147)](_0x3367f1(0xe4));_0x4ead88['hidden']=!![],state[_0x3367f1(0x156)]=null;const _0xc38fd2=document['getElementById'](_0x3367f1(0xe2));_0xc38fd2&&(_0xc38fd2[_0x3367f1(0x113)]=![],_0xc38fd2[_0x3367f1(0xec)]=_0x3367f1(0xb1));}async function confirmDeleteUser(){const _0x2908af=_0x399d78;if(!state[_0x2908af(0x156)])return;const _0x6795b7=document[_0x2908af(0x147)](_0x2908af(0xe2)),_0x406f83=_0x6795b7['textContent'];_0x6795b7[_0x2908af(0x113)]=!![],_0x6795b7[_0x2908af(0xec)]=_0x2908af(0x120);try{await API[_0x2908af(0xcc)](state[_0x2908af(0x156)]),Utils['showToast']('User\x20deleted\x20successfully',_0x2908af(0x132)),await loadUsers(),hideDeleteModal();}catch(_0x481354){console['error']('Failed\x20to\x20delete\x20user',_0x481354),Utils[_0x2908af(0x13b)](_0x2908af(0xb4)+_0x481354[_0x2908af(0xc3)],_0x2908af(0x160)),_0x6795b7['disabled']=![],_0x6795b7[_0x2908af(0xec)]=_0x406f83;}}function handleSkipPasswordChange(_0x44fdcb){const _0x36b8a5=_0x399d78,_0x24250b=document[_0x36b8a5(0x147)](_0x36b8a5(0xd2)),_0x1013b1=_0x44fdcb[_0x36b8a5(0xae)][_0x36b8a5(0xeb)];_0x1013b1?(_0x24250b[_0x36b8a5(0x13d)]=![],_0x24250b['disabled']=!![],_0x24250b[_0x36b8a5(0x12e)]=''):(_0x24250b[_0x36b8a5(0x13d)]=!![],_0x24250b[_0x36b8a5(0x113)]=![]);}function showSetupLinkModal(){const _0x301633=_0x399d78;if(!state['setupLinkData'])return;const _0x196d05=document['getElementById'](_0x301633(0xf6)),_0x4da8fd=document['getElementById']('setup-link-username'),_0x1fc43a=document[_0x301633(0x147)](_0x301633(0xfe)),_0x405fd1=document[_0x301633(0x147)]('email-setup-link'),_0x428836=document[_0x301633(0x147)]('email-button-text');_0x4da8fd[_0x301633(0xec)]=state[_0x301633(0x149)]['username'],_0x1fc43a[_0x301633(0xec)]=state['setupLinkData']['url'],_0x405fd1&&_0x428836&&(_0x405fd1[_0x301633(0x113)]=![],_0x428836[_0x301633(0xec)]=_0x301633(0x12c),state[_0x301633(0xd7)]&&!state[_0x301633(0x149)][_0x301633(0x107)]?_0x405fd1[_0x301633(0x12a)]['display']=_0x301633(0x129):_0x405fd1['style'][_0x301633(0xa9)]='none'),_0x196d05[_0x301633(0x150)]=![];}function hideSetupLinkModal(){const _0x127750=_0x399d78,_0x43cce4=document[_0x127750(0x147)](_0x127750(0xf6));_0x43cce4[_0x127750(0x150)]=!![],state['setupLinkData']=null;}async function copySetupLink(){const _0x38c6f9=_0x399d78;if(!state[_0x38c6f9(0x149)])return;try{await navigator[_0x38c6f9(0x145)]['writeText'](state[_0x38c6f9(0x149)][_0x38c6f9(0xa7)]),Utils[_0x38c6f9(0x13b)](_0x38c6f9(0xb9),_0x38c6f9(0x132));}catch(_0xb85f1f){console['error']('Failed\x20to\x20copy\x20link',_0xb85f1f),Utils['showToast'](_0x38c6f9(0x101),_0x38c6f9(0x160));}}async function emailSetupLink(){const _0x3ca1ee=_0x399d78;if(!state['setupLinkData'])return;const _0x1f7591=document[_0x3ca1ee(0x147)](_0x3ca1ee(0x104)),_0x23e3c7=document[_0x3ca1ee(0x147)](_0x3ca1ee(0x118));if(!_0x1f7591||!_0x23e3c7)return;const _0x3067cd=_0x23e3c7['textContent'];_0x1f7591['disabled']=!![],_0x23e3c7[_0x3ca1ee(0xec)]=_0x3ca1ee(0xf4);try{const _0x4c4a01=await API['createPasswordToken'](state[_0x3ca1ee(0x149)]['userId'],state['setupLinkData']['type'],!![]);if(_0x4c4a01[_0x3ca1ee(0x107)])Utils[_0x3ca1ee(0x13b)](_0x3ca1ee(0xa1)+state[_0x3ca1ee(0x149)][_0x3ca1ee(0xda)],'success'),state[_0x3ca1ee(0x149)][_0x3ca1ee(0x107)]=!![],_0x1f7591[_0x3ca1ee(0x12a)][_0x3ca1ee(0xa9)]=_0x3ca1ee(0xfa);else{const _0x7a8d54=_0x4c4a01[_0x3ca1ee(0xd6)]||_0x3ca1ee(0xac);Utils[_0x3ca1ee(0x13b)](_0x7a8d54,_0x3ca1ee(0x160)),_0x1f7591[_0x3ca1ee(0x113)]=![],_0x23e3c7[_0x3ca1ee(0xec)]=_0x3067cd;}}catch(_0x41e577){console[_0x3ca1ee(0x160)]('Failed\x20to\x20email\x20setup\x20link',_0x41e577),Utils['showToast'](_0x3ca1ee(0xf1)+_0x41e577[_0x3ca1ee(0xc3)],_0x3ca1ee(0x160)),_0x1f7591[_0x3ca1ee(0x113)]=![],_0x23e3c7[_0x3ca1ee(0xec)]=_0x3067cd;}}window[_0x399d78(0x134)]=async function(_0x1fbc78){const _0x380ac4=_0x399d78,_0x921468=state['users'][_0x380ac4(0xff)](_0x35bdab=>_0x35bdab['id']===_0x1fbc78);if(!_0x921468)return;const _0x426a90=await ConfirmDialog['show']({'title':_0x380ac4(0xad),'message':'Generate\x20a\x20password\x20reset\x20link\x20for\x20'+_0x921468[_0x380ac4(0x10e)]+'\x20('+_0x921468['username']+_0x380ac4(0x106),'confirmText':_0x380ac4(0xaa)});if(!_0x426a90)return;try{const _0x41d26f=await API[_0x380ac4(0x123)](_0x1fbc78,'reset',![]);state[_0x380ac4(0x149)]={'username':_0x921468[_0x380ac4(0x135)],'email':_0x921468[_0x380ac4(0xda)],'url':_0x41d26f['token']['setupUrl'],'userId':_0x921468['id'],'type':_0x380ac4(0x15d),'emailSent':![]},showSetupLinkModal();}catch(_0x1ba639){console[_0x380ac4(0x160)]('Failed\x20to\x20create\x20password\x20reset\x20link',_0x1ba639),Utils[_0x380ac4(0x13b)](_0x380ac4(0x140)+_0x1ba639[_0x380ac4(0xc3)],_0x380ac4(0x160));}};
@@ -1 +1 @@
1
- const _0x556a35=_0x11cc;(function(_0x30acaf,_0x580ee2){const _0x3cc228=_0x11cc,_0x3af757=_0x30acaf();while(!![]){try{const _0x51dad6=-parseInt(_0x3cc228(0x11d))/0x1*(parseInt(_0x3cc228(0x14d))/0x2)+parseInt(_0x3cc228(0x18c))/0x3*(parseInt(_0x3cc228(0x184))/0x4)+parseInt(_0x3cc228(0x156))/0x5+parseInt(_0x3cc228(0x17f))/0x6*(parseInt(_0x3cc228(0x148))/0x7)+parseInt(_0x3cc228(0x11e))/0x8+-parseInt(_0x3cc228(0x1ac))/0x9+-parseInt(_0x3cc228(0x15b))/0xa;if(_0x51dad6===_0x580ee2)break;else _0x3af757['push'](_0x3af757['shift']());}catch(_0x500ecb){_0x3af757['push'](_0x3af757['shift']());}}}(_0x4076,0x433b3));import{API,Utils}from'./app.js';function _0x11cc(_0xcecb9,_0x536e4a){_0xcecb9=_0xcecb9-0x11c;const _0x4076fa=_0x4076();let _0x11ccdf=_0x4076fa[_0xcecb9];if(_0x11cc['BkLneg']===undefined){var _0xbb3d24=function(_0x33daa2){const _0x4cc4aa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x15a7ce='',_0x3ad6b7='';for(let _0x3487cd=0x0,_0xe7d931,_0x5b5bd8,_0x554ad6=0x0;_0x5b5bd8=_0x33daa2['charAt'](_0x554ad6++);~_0x5b5bd8&&(_0xe7d931=_0x3487cd%0x4?_0xe7d931*0x40+_0x5b5bd8:_0x5b5bd8,_0x3487cd++%0x4)?_0x15a7ce+=String['fromCharCode'](0xff&_0xe7d931>>(-0x2*_0x3487cd&0x6)):0x0){_0x5b5bd8=_0x4cc4aa['indexOf'](_0x5b5bd8);}for(let _0x8d5004=0x0,_0x25dcd0=_0x15a7ce['length'];_0x8d5004<_0x25dcd0;_0x8d5004++){_0x3ad6b7+='%'+('00'+_0x15a7ce['charCodeAt'](_0x8d5004)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ad6b7);};_0x11cc['wMctDG']=_0xbb3d24,_0x11cc['UjfYxI']={},_0x11cc['BkLneg']=!![];}const _0xecf1db=_0x4076fa[0x0],_0x7119bb=_0xcecb9+_0xecf1db,_0x344eea=_0x11cc['UjfYxI'][_0x7119bb];return!_0x344eea?(_0x11ccdf=_0x11cc['wMctDG'](_0x11ccdf),_0x11cc['UjfYxI'][_0x7119bb]=_0x11ccdf):_0x11ccdf=_0x344eea,_0x11ccdf;}function _0x4076(){const _0x3f06f6=['Dgv4Dc9WBgfPBG','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtaGmtjHlJC1lJC1idaGmsaXidaTms41lJC1lJC1idaGmcaXidaGms41EM0XltmUnweXideGmcaWideTmIaWvJvHmsaXidaGmsaXidiGmhyZlJv6iI8+pc9ZDMC+','EM9Uzq','B25bzgrfEgLZDgLUz1rHC2S','ywrKvg9hCM91Ca','AgfUzgXLrhjHz092zxi','ywrKrxzLBNrmAxn0zw5LCG','C3r5Bgu','ChjLDMvUDerLzMf1Bhq','BwvZC2fNzq','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTC3rHDhvZia','iJ4kicaGicaGicaGia','pc9ZCgfUpGOGicaGicaGicaGphnWyw4Gy2XHC3m9iNzNBs12yxjPyw50lw1LDgeIpG','nJzIzw1YuLy','DgfYz2v0','lNzNBs12yxjPyw50lwnHCMq','CMvVCMrLCKLUr3jVDxa','zhjVCevMzMvJDa','mJq4mJHnzgvou2u','DxbKyxrLvgfZA0DYB3vW','zgf0yxnLDa','lNzNBs1KCM9WlxPVBMu','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtmUnZGGnI4Yoc00lJuGnc41ys43ns43nsaWidaGms0XlJa2idbSltiTmMeUnZuUnZuGmcaXideGms4WnI0XlJa2tdyUnZuGos4XowWZlJK3ltmUotDHlJC1lJC1idaGmsaXideUmdyGms4WnNOIlZ48l3n2zZ4','zhjVCc1HzNrLCG','C29Tzq','zwzMzwn0qwXSB3DLza','nJz2qLH3DxK','CMvSyxrLzfrHCMDLDa','zMLUza','Dg9W','iGOGicaGicaGicaGigrYywDNywjSzt0IDhj1zsikicaGicaGicaGicbKyxrHlxrHC2STAwq9iG','C2HVD1rVyxn0','AxnpCgvU','zhjHz2DLzevSzw1LBNq','pgrPDIbJBgfZCZ0IDMDTlwvTChr5lwHPBNqIpKrYywCGDMfYAwfUDhmGAgvYzsb0BYbYzw1VDMuGzNjVBsbNCM91CdWVzgL2pG','zM9YrwfJAa','y2XHC3noyw1L','z3jVDxbLza','zhjHz2vUza','phn2zYb2Awv3qM94psiWidaGmJaGmJaIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJeUnIiGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+pgnPCMnSzsbJEd0ImtaIign5psiXmciGCJ0IociGlZ48Cgf0AcbKpsjnmtaGnI41yY0XlJeGmc0Yic43ltiGms42idaGlJKGmsaXlJmGms42ideUnY43lJqGmsaUocaXideUnvyXmIiGlZ48y2LYy2XLign4psiXmciGy3K9iJe0iIbYpsiWlJGIigzPBgW9iMn1CNjLBNrdB2XVCIiGC3rYB2TLpsjUB25LiIaVpJWVC3zNpG','lMrYB3aTAw5KAwnHDg9Y','zMLUzeLUzgv4','cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cGOGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrPDMLKzxiIpGOGicaGicaGicaGica8zgL2ignSyxnZpsj2z20TzgL2AwrLCI1SAw5LiJ48l2rPDJ4kicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNzNBs1KAxzPzgvYlxrLEhqIpKrYywCGDg8GBw92ztWVC3bHBJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrPDMLKzxiTBgLUzsi+pc9KAxy+cIaGicaGicaGica8l2rPDJ4kcIaGicaGicaGica8zgL2ignSyxnZpsj2z20TC2vJDgLVBIb2z20TDw5NCM91CgvKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxnLy3rPB24TAgvHzgvYiJ4kicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxnLy3rPB24TDgL0BguIpLvUz3jVDxbLzcbuyxnRCZWVC3bHBJ4kicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxnLy3rPB24Ty291BNqIpG','C3bSAwnL','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTAw5MBYi+cIaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxzHCMLHBNqTBMfTzsi+','zgLZCgXHEq','Bw92zq','rMfPBgvKihrVig1VDMuGDMfYAwfUDa','zhjHz2DPBMC','y2XVC2u','iGOGicaGicaGicaGigrHDgeTAxmTz3jVDxbLzd0I','zhjHz292zxi','CMvUzgvYvMfYAwfUDenHCMq','zxjYB3i','zhjHz3n0yxj0','z2v0rgf0yq','pc9ZCgfUpGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrYB3aTEM9Uzsb2z20Tz3jVDxbLzc16B25LiIbKyxrHlxPVBMu9iMDYB3vWzwqIpGOGicaGicaGicaGicaGia','iJ4kicaGicaGica8zgL2ignSyxnZpsj2z20TDMfYAwfUDc1KCMfNlwHHBMrSzsiGDgL0Bgu9iKrYywCGDg8GCMvVCMrLCIbVCIbTB3zLiJ4kicaGicaGicaGidXZDMCGDMLLD0jVEd0ImcaWidi0idi0iIb3Awr0Ad0ImtyIigHLAwDODd0ImtyIigzPBgW9iMn1CNjLBNrdB2XVCIi+cIaGicaGicaGicaGidXWyxrOigq9iK04idzOmNyYsdHwnNPTnIaWAdj2mMGTmLy2EK04ideXAdj2mKG4DI0YEM02idbOmNyYAc0YDI0YEM0TnIa1Adj2mKG4DI0YEM02idbOmNyYAc0YDI0YEIiVpGOGicaGicaGicaGpc9ZDMC+cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTAwnVBIiGzgf0ys1Hz2vUDd0I','mJaWody5mKvvEvDpqW','cIaGicaGicaGica8l3n2zZ4kicaGicaGica8l2j1DhrVBJ4kicaGicaGpc9KAxy+cIaGica','CMvTB3zLrNjVBuDYB3vW','CxvLCNLtzwXLy3rVCKfSBa','zgf0yvrYyw5ZzMvY','B3bLBG','CMvUzgvY','iJ4kicaGicaGicaGidXZDMCGDMLLD0jVEd0ImcaWidi0idi0iIb3Awr0Ad0ImtyIigHLAwDODd0ImtyIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpGOGicaGicaGicaGica','BMfTzq','lMrYywCTB3zLCIWGlMrYB3aTyMvMB3jLlcaUzhjVCc1HzNrLCG','AgfUzgXLrhjVCa','lNzNBs1HzgqTzxHPC3rPBMCTyNrU','ywrK','D2LKDgG','yxbWzw5Kq2HPBgq','zhjHz2XLyxzL','lNrHC2STDgfI','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzciGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+phbHDgGGzd0ItteYidjmos4Wosa5lJa5idiGmtjSnY4WosaYlJKXtdeYidiYBdiUoteTnY4WouWYmIaXmMWTnY4Wos0YlJKXEIi+pc9WyxrOpJWVC3zNpG','rMfPBgvKihrVihvWzgf0zsbNCM91Ca','z2v0qM91BMrPBMDdBgLLBNrszwn0','mMvoyxrXtG','odKZmdu2z1LdC3zj','zhjHz2DHyMXL','Dw5RBM93BG','Aw5Uzxjive1m','yxr0ywnOrxzLBNrmAxn0zw5LCNm','vgfZAYa','BM9Uzq','cIaGicaGidXKAxyGy2XHC3m9iNzHCMLHBNqTz3jVDxbPBMCTBwfUywDLCIi+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwHLywrLCIi+cIaGicaGicaGica8Adm+twfUywDLifrHC2SGr3jVDxa8l2GZpGOGicaGicaGicaGpgj1DhrVBIbJBgfZCZ0IDMDTlwnSB3nLlwj0BIiGDgL0Bgu9iKnSB3nLiJ4kicaGicaGicaGicaGphn2zYb2Awv3qM94psiWidaGmJqGmJqIihDPzhrOpsiYmciGAgvPz2H0psiYmciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIi+cIaGicaGicaGicaGicaGphbHDgGGzd0Itte4idzmnIaXoe02idzSmtiGmtiIlZ4kicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGica8l2j1DhrVBJ4kicaGicaGica8l2rPDJ4kcIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwnVBNrLBNqIpGOGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxnLy3rPB24GDMDTlwDYB3vWzwqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsj2z20TC2vJDgLVBI1OzwfKzxiIpGOGicaGicaGicaGicaGidXZCgfUignSyxnZpsj2z20TC2vJDgLVBI10AxrSzsi+r3jVDxbLzcbwyxjPyw50CZWVC3bHBJ4kicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxnLy3rPB24Ty291BNqIpG','C2v0rgf0yq','zw52vMfYCW','CMvTB3zL','z3jVDxbjBMrLEa','y29UDgfPBNm','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtaGmtrbnIa2idaGmsaXidGGmMe2idyGmcaWideGmcaXmNPTms02lJvwneG3DJqUnwWZidmGms41lteUns0YlJuTmI41EIiVpJWVC3zNpG','lMrYywCTB3zLCIWGlMrYB3aTAw5KAwnHDg9Y','rhjVCcbVCgvYyxrPB24GzMfPBgvKoG','AgfUzgXLrhjHz0XLyxzL','imk3ia','DgfZA0LK','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iMn1CNjLBNrdB2XVCIiGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+phbHDgGGzd0IttiYlJi4mtKGos44mJeXytuUotG0nYa1lJK4ndCGmcaWidaTlJuXntCTnc45mta4idyUmdq2mIa2lJa0nJiGmcaWidaTnI41mdK4ltiUoue2lJa2nteGnI4WnJuXidaGmcaWidqUotGWnYa0lJe4mtHHns45odq3iduUotG0nYaWidaGmc0ZlJK5nZCGmI45idyUmdq2mIa2lJa0nJiGmcaWidaGlJC0mJCGnY4Woty2iduUotGGns45ocaWidaGmcaUnteXidqUoteWnYa2lJa1msa2lJa1msaWidaGmca2lJuXndyGmI45mdaXqtuUotG0nYa1lJK4ndCGmcaWidaGmtmUmJu5osaYnge2lJa1ntCGnI4Wntu3idaGmcaWiduUnZCXoc00lJiWntGGns45odK0iduUotG5ncaWidaGmcaZlJK5nZCTmI45mdaXidyUmdu1nYa2lJa1ntCGmcaWidaTlJC0nZuTnY4WnZi5EM0Tos4WmJiGmtiUnJa4mwe0lJq3ntuGnc40nZu1idaGmcaXltiUodC2nc0XlJa0mdHSlJe0mtKTlJa4mdqGnc43nZGZltiUnZu4mMeUnZK0oc43otq4idaGmcaWic4Zoti3ls42odeZDI02lJCZnJLSmI4WmIaXlJe2odzHlJa3ms4WnZeGmcaWideGlJaZoc4Wntj2ns41odi2ytqUnta0idqUnta0idaGmcaXltqUndK0nsa0lJq5ndr6Bs05lJy2mdCTnc4XmJu0ytqUndCWoca0lJq3mdGGmcaWideTlJuZndyTmY4Wmtm3Bc4XndiUmdG1mIa0lJC4mYaYlJC1odjHlJC3mtiUnZCXmIaWidaGmcaUnZGWnIaWBduUodqYoc0ZlJm2odv2mI4ZmZi0ys4Woda0lJa4mdqGmcaWideTlJaZmZiUmdyXnuW5lJC0ide5lJK1mdjHnc40otKYidqUndK5mIaWidaGms02lJe0mdGTms42ndy0EK0YlJm0mdGGnY44otu2ytqUndG1idqUndG1idaGmcaXidiUmZy1ns0XlJK3mJHwmteUnMeUnZy2nc43nJy0idaGmcaWic4ZodC5lJy3nJvSns44mtq0idmUmZu0mY0YlJaYmdeGms4XnJG1ys4WnZu3lJa3ntCGmcaWideTlJa3msaWBc00lJGZmdmTmI43ody1qtqUnta0idqUnta0idaGmcaXidiUmZqWoca3lJG3mNPTmtyUntK2mYaZlJG1ntHmmtmUmtaZoca4lJm2ncaXns4XmtKYidCUmMeUmdC1nY4WnZu3idaGmcaXic4WnZeGmgW0lJGZmdmGmI43oteZytqUndK0nca0lJq5ndqGmcaWideTlJy3nJuGoc4XmdqYDI01lJy3nZjHlJC5lJC5idaGmcaWls40mdCTlJy2n3PTmI4Wmta3ltmUmdiZmwWTlJe0mI0UmdG1mI00lJC3mZuTmI43ode4ys43nZu5lJC3ntKGmcaWidaTlJC4ntqGmeW5lJqWosa5lJiYotDwnI44otC0ys4WnJyYlJa2nJiGmcaWideGlJaYodqTlJa2mtvSnc44mZaZltiUnZG2nMe0lJq5otiGnc40otKYidaGmcaXidyUnJGWmIa0lJy2EK04lJmWnJuGmtiUodyZBc0YlJaYlteUmtyZogeUmdGWnc4Woda0idaGmcaXls4WmZGTlJa1nJDwnI4WnZqYytqUndK5mIa0lJq5otiGmcaWideGnY4ZnZu3ltmUnduZn2WTlJe0mI4Woda1tdGUnZa0iduUndu5ys43otq4lJC5ndGGmcaWidaTlJm5mJCUnJGXm3PTms4WotC2ltiUmZy1ngWYlJyWmI0XlJq5otGGmI42mdy5ideUndK5ohyYlJK5otrSltiUntK3ncaXlJq5otCTmI42mdy3lteUndK5n1OIlZ48l3n2zZ4','iGOGicaGicaGicaGicaGicaGzgf0ys1Hy3rPB249iG','Dhj1zq','phnWyw4Gy2XHC3m9iNzNBs1IywrNzsb2z20TyMfKz2uTyxbWCM92zwqIihrPDgXLpsjbChbYB3zLzci+phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzciGD2LKDgG9iJeYiIbOzwLNAhq9iJeYiJ48Cgf0AcbKpsjnmtqGovy1ytmGmYaWidaGmc0ZltnSltqGoxyXmwGXms4YogeYidiGmcaWidaGmI0XlJDSms4Zoc05ytiGmIaWidaGmc0YltiUm3PnnYaYmKG0ytiGmIaWidaGms0Yltj2ltDHmIaYidaGmcaXidiTmMGZiJ48l3bHDgG+pc9ZDMC+pc9ZCgfUpG','CMvTB3zLvgfZA0zYB21hCM91Ca','C2v0qxr0CMLIDxrL','C291CMnLr3jVDxbjza','yxbWCM92zwrcEq','zhjVCc1PBMrPy2f0B3i','zhjVCc1IzwzVCMu','AxmTzhjHz2DPBMC','y3jLyxrLvgfZA0DYB3vW','y29UDgfPBMvY','y2XHC3nmAxn0','BgvUz3rO','C2XPy2u','AgfUzgXLrhjHz1n0yxj0','BwfW','Dg9mB3DLCKnHC2u','AxnxAw5Uzxi','zhjHz2DLzfrHC2Tjza','zhjHzY1VDMvY','zxnJyxbLshrTBa','mJm0otqXDLf3v3HI','DxbKyxrLvgfZA3m','zgvMyxvSDf9Hz2vUDa','y2XPzw50wq','lNzNBs1JBg9Zzs1IDg4','mZmYmti2s0PmqxH1','C29YDa','ChvZAa','B25hCM91CenOyw5Nzq','Dg9Nz2XL','iGOGicaGicaGicaGigrHDgeTAw5KzxG9iG','y2XHDwrL','y2XPy2S','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtmUntmGmtaUndDHlJC1lJC1idaGmsaXlteUmdyGms4WnKW4idKUmdzSltiUndCGmI40n2eUnZuUnZuGmcaWideTms4WnI0XlJa2tdyUotqGoca0lJq3iduUntnHlJC1lJC1idaGmcaXideUmdyTms4WnKW4idyUotrSmI40nY0YlJq3ys43ns43nsaWidaGmsaXlJa2ideUmdzmos4WnIa4BdiUndCGmI40n3OIlZ48l3n2zZ4','mtK4mdqXmhzYsfnkBW','AgfUzgXLrhjHz0vUza','C3rHDhvZ','AgvPz2H0','Aw5KzxG','mtGYnZy4me1LAu9PzW','cIaGicaGicaGica','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24GC3bPBM5PBMCIihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImI41iIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIpJXWyxrOigq9iK04idiGqtyGnIaWidaGmsaXnca4iI8+pc9ZDMC+','pc9ZCgfUpGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrYB3aTEM9Uzsb2z20TDw5NCM91CgvKlxPVBMuIigrHDgeTEM9Uzt0IDw5NCM91CgvKiJ4kicaGicaGicaGicaGica','pc9ZCgfUpGOGicaGicaGidWVzgL2pGOGicaGicaGidXKAxyGy2XHC3m9iNzNBs12yxjPyw50lwjHzgDLCYi+cIaGicaGicaGica','BgvMDa','AxneCMfNz2LUzW','phnWyw4Gy2XHC3m9iNzNBs1IywrNzsb2z20TyMfKz2uTD2LUBMvYiIb0AxrSzt0Iv2LUBMvYiJ7IMiu8l3nWyw4+','pgrPDIbJBgfZCZ0IDMDTlwvTChr5lwHPBNqIpKrYywCGDMfYAwfUDhmGAgvYzsb0BYbHzgqGDg8Gz3jVDxa8l2rPDJ4','qwrKihrVigDYB3vW','DgfZA3m','cIaGica8C3zNihzPzxDcB3G9iJaGmcaYncaYnciGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiJ4kicaGicaGphbHDgGGzd0Itte4idzmnIaXoe02idzSmtiGmtiIlZ4kicaGidWVC3zNpGOGicaGphnWyw4+uMvTB3zLigzYB20Gz3jVDxa8l3nWyw4+cIaG','DgfZAY10ywiTCMvTB3zLlxPVBMu','zgL2','y2XVC2vZDa','z2vUzxjHDgvhCM91CeLK','lNzNBs12yxjPyw50lxjLBw92zs1IDg4','y3jLyxrLrwXLBwvUDa','zMLSDgvY','phn2zYb2Awv3qM94psiWidaGmtyGmtyIigzPBgW9iMn1CNjLBNrdB2XVCIiGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+phbHDgGGzd0IBtmUmti3ideWlJyWncaZlJeZns0XlJC2lJa1mY0UmtuZls4WntmTlJa4nuG2lJeXBc0Unti1ls4WmZiTms43oteTlJa0oc0XlJu1nc0Umdy1lteUnta1ls4Woc0UmZGTlJa4muWWidCUodmYBc4WmZyTlJiZnc4ZmI0UmJe0lJq1ns4WncaXlJaWos4WnJKGms41mtmUmta1ideUmdK3lJa2ncaXlJyYnI4Xn2GUmJu5Bc4WmZyTlJeWns0UmdG5ls4WnJuTlJa2oc0Umdy0lteUnty2lteUmdyYlteUnJK1lteUmtiXls44odCTlJy0nI0UndGTlJmYnY0UmJqZls4ZmdyTlJeWnc0UnJCUndm1ls40oc41oduUmdqUmtuUmdqUntKZlJq1nIaXlJi2nY45odeGms42ntqGms4YmtGUmJqYlJiWmI4WotCTlJa2oc4WmtiTlJa0os0Umta5ls4XodeTlJKTms42mJyTlJK2lteUnJu1ls40mJGTlJy4nI0UmteZls40mtfHmIaYidaGmcaXls4WnJGTlJq4ngWUndK2ls42nZrmnc40ndyGmgWUnJyYlJa4os4YnZKUmJqYlJqXms45nc42nJyGms40ocaXlJaZmYaYlJaXnc4ZmdiUntK3lJe2mI41ntmUmdyUmtDOlJeWnxyTlJa5n2WUmdG1lteUmtm0lJe1nY0XlJm5mI4XntqTms43otiUmduYls41mdqUmJuTlJyWns40otCTlJmYnY4ZodCUmtG2lJmXos40ntyTlJa0ns4YotqTlJe5ideUmJmTlJm3ideUotmTlJi0mYaXlJi5Ac4XndjSlJe2ms0UmtyUnJu0ls44nJGGms4WotCTms4ZnZiUndG0ls41nduUnty1ls42mdeUmZyZls4YodDOlJy4nMWUnta1lJC1ms0UmJi2lJC3ns0UnZa3lJG5ns0UntG1lJC1os0Uodm5ideUmtmTlJuYnc45mdqUmdq4lJa3mI4XmJuTlJaXmIaXlJG5nY0UndaZideUmdi0ls4XodyGms4YmJmTlJiXlJu1mY4YntGUmdyUmJyZls4YmtGUntm2lteUmZa3lJmYmY0XlJuZmY4ZmdCTmI4YodqUntqTlJaYoc4WmI4WmZiUmdqGms4WmJKUmdK4lJq0lJaYngGXlJa3n2WYlJaWns4Xns41mJuUmZq2lJmXns40mJqTlJa1mY4ZmJmTlJGWnY40mteTmY42mZeTlJG2mY0UodCYls4YmtHOls4XmNyUmdCZBc43mJyUnZeGms4ZmZeGms4YmdiGms42nJCGms41ns4WodqUmZGZls4YmtqUmZaYls4YmJyTlJaZmI0XlJq2nc0XlJeWms0Unty1ls40otCTms4Yoc0XlJa3n2GTlJa4nhyUmteZBc4YotuUndmYideUntu3idiUmZqUmdGUnZe4ls4XmtiUmJm0ls40mdqUmtqXls40ndqTlJa4ls45mteTms4Yoc0UotqTms40nc0UnZu5lteUmJKXls4WotmUmduZls40ndGGnc44mJeTlJiXlJi0nI0UndG0lJe4nI0UndaZls4ZmdCTlJiXnc0UndK2lJiXnc0UotGUmJu4lteUmJGUmJeTms4WmtyUmtKTms4YnJmUmteYls40mI0Umda4ls4WmJGTlJa5mI4WmtiTlJK1mYaXlJmWnY0XlJq0ocaXlJK1nY0XlJe0nIaXlJiYnY0UmJC0lJeWos0UndC3ls4YndCUmdq1ls40nc4YnJyTlJm5ideUntG2ltiUmde4lJK1nI0XlJi1lJyXnY0UnZiZls4WmdqTlJeWnwGTlJaZnMWTnc4YmtiGnc4Ymtj6iI8+pc9ZDMC+','phbHDgGGzd0ItteYidv2mtrnnsaXmMGXnciVpG','z3jVDxbjza','zhjVCa'];_0x4076=function(){return _0x3f06f6;};return _0x4076();}const dragState={'draggedTaskId':null,'draggedElement':null,'sourceGroupId':null,'isDragging':![]},AGENT_ICONS={'claude':_0x556a35(0x16e),'codex':_0x556a35(0x131),'gemini':_0x556a35(0x1bd),'unknown':_0x556a35(0x199)},STATUS_ICONS={'running':_0x556a35(0x15d),'completed':_0x556a35(0x188),'failed':_0x556a35(0x155),'staged':_0x556a35(0x173),'queued':_0x556a35(0x12b)};export class VariantGroupingManager{constructor(_0x15a7ce={}){const _0x13b345=_0x556a35;this[_0x13b345(0x13d)]=null,this[_0x13b345(0x150)]=_0x15a7ce['onGroupChange']||(()=>{}),this[_0x13b345(0x175)]=_0x15a7ce[_0x13b345(0x175)]||(()=>{}),this[_0x13b345(0x165)]=[],this[_0x13b345(0x170)]=_0x15a7ce['groupId']||null,this['isOpen']=![];}['init'](_0x3ad6b7,_0x3487cd,_0xe7d931){const _0x5c1279=_0x556a35;this[_0x5c1279(0x13d)]=_0x3ad6b7,this['tasks']=_0x3487cd,this[_0x5c1279(0x170)]=_0xe7d931,this['render'](),this[_0x5c1279(0x122)]();}[_0x556a35(0x149)](_0x5b5bd8){const _0x3b18ea=_0x556a35,_0x554ad6=new Map(_0x5b5bd8['map'](_0x8d5004=>[_0x8d5004[_0x3b18ea(0x130)],_0x8d5004]));this[_0x3b18ea(0x165)]=this[_0x3b18ea(0x165)][_0x3b18ea(0x142)](_0x25dcd0=>{const _0x26882a=_0x3b18ea,_0x20f66a=_0x554ad6['get'](_0x25dcd0[_0x26882a(0x130)]);return _0x20f66a?_0x20f66a:_0x25dcd0;});for(const _0x24e451 of _0x5b5bd8){!this['tasks'][_0x3b18ea(0x18a)](_0x2a4704=>_0x2a4704[_0x3b18ea(0x130)]===_0x24e451[_0x3b18ea(0x130)])&&this[_0x3b18ea(0x165)][_0x3b18ea(0x14f)](_0x24e451);}this[_0x3b18ea(0x192)]&&this[_0x3b18ea(0x1b2)]();}[_0x556a35(0x1b1)](){const _0x2fa18a=_0x556a35;this['isOpen']=!![],this[_0x2fa18a(0x1b2)](),this[_0x2fa18a(0x13d)]?.[_0x2fa18a(0x13e)]['add'](_0x2fa18a(0x1b1));}[_0x556a35(0x1a3)](){const _0x3f78ee=_0x556a35;this[_0x3f78ee(0x192)]=![],this[_0x3f78ee(0x13d)]?.[_0x3f78ee(0x13e)][_0x3f78ee(0x128)](_0x3f78ee(0x1b1));}[_0x556a35(0x1b2)](){const _0x5424d2=_0x556a35;if(!this[_0x5424d2(0x13d)])return;const _0x362268=this[_0x5424d2(0x165)]['filter'](_0x2576c0=>_0x2576c0[_0x5424d2(0x170)]===this[_0x5424d2(0x170)])[_0x5424d2(0x14e)]((_0x588019,_0x16bdd2)=>(_0x588019[_0x5424d2(0x129)]??0x0)-(_0x16bdd2['groupIndex']??0x0)),_0x5dcb5f=this[_0x5424d2(0x165)][_0x5424d2(0x16d)](_0x1197aa=>!_0x1197aa[_0x5424d2(0x170)]||_0x1197aa[_0x5424d2(0x170)]!==this[_0x5424d2(0x170)]);this[_0x5424d2(0x13d)][_0x5424d2(0x121)]=_0x5424d2(0x125)+_0x362268[_0x5424d2(0x13f)]+_0x5424d2(0x1aa)+(_0x362268[_0x5424d2(0x13f)]===0x0?_0x5424d2(0x163):_0x362268[_0x5424d2(0x142)]((_0x1bdb51,_0x5e8065)=>this[_0x5424d2(0x1a6)](_0x1bdb51,_0x5e8065,!![]))['join'](''))+_0x5424d2(0x19c)+_0x5dcb5f[_0x5424d2(0x13f)]+_0x5424d2(0x15e)+(_0x5dcb5f[_0x5424d2(0x13f)]===0x0?_0x5424d2(0x194):_0x5dcb5f[_0x5424d2(0x142)]((_0x243364,_0x3f1d64)=>this[_0x5424d2(0x1a6)](_0x243364,_0x3f1d64,![]))['join'](''))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22vgm-btn\x20vgm-btn-secondary\x20vgm-add-existing-btn\x22\x20title=\x22Add\x20an\x20existing\x20task\x20to\x20this\x20group\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M12\x205v14M5\x2012h14\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Add\x20Existing\x20Task\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}[_0x556a35(0x1a6)](_0x2ff4d0,_0x5e9397,_0x10fbaa){const _0x560f2b=_0x556a35,_0x2c1289=_0x2ff4d0['envVars']?.['CODER_AGENT']||_0x2ff4d0[_0x560f2b(0x127)]?.[_0x560f2b(0x14a)]||_0x560f2b(0x153),_0x34cf90=AGENT_ICONS[_0x2c1289[_0x560f2b(0x143)]()]||AGENT_ICONS[_0x560f2b(0x153)],_0x4cf74e=STATUS_ICONS[_0x2ff4d0[_0x560f2b(0x158)]]||'',_0x5b1a5a='status-'+(_0x2ff4d0['status']||_0x560f2b(0x120)),_0x16db49=_0x2ff4d0[_0x560f2b(0x144)]?_0x560f2b(0x162):'',_0x5be302=_0x2ff4d0[_0x560f2b(0x138)]?_0x560f2b(0x134):'';return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-variant-card\x20'+_0x5b1a5a+_0x560f2b(0x190)+_0x2ff4d0[_0x560f2b(0x130)]+_0x560f2b(0x1a4)+_0x10fbaa+_0x560f2b(0x152)+_0x5e9397+_0x560f2b(0x1ab)+_0x2c1289[_0x560f2b(0x143)]()+_0x560f2b(0x17d)+_0x34cf90+_0x560f2b(0x19e)+Utils[_0x560f2b(0x147)](_0x2ff4d0[_0x560f2b(0x1b4)]||_0x560f2b(0x123)+_0x2ff4d0['taskId'][_0x560f2b(0x140)](-0x6))+_0x560f2b(0x17e)+Utils['escapeHtml'](_0x2c1289)+_0x560f2b(0x12f)+(_0x2ff4d0[_0x560f2b(0x158)]||_0x560f2b(0x120))+_0x560f2b(0x15f)+_0x16db49+_0x560f2b(0x15c)+_0x5be302+_0x560f2b(0x17c)+_0x5b1a5a+_0x560f2b(0x17d)+_0x4cf74e+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22vgm-variant-remove-btn\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title=\x22'+(_0x10fbaa?'Remove\x20from\x20group':_0x560f2b(0x164))+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data-task-id=\x22'+_0x2ff4d0[_0x560f2b(0x130)]+_0x560f2b(0x132)+(_0x10fbaa?'remove':_0x560f2b(0x1b8))+_0x560f2b(0x1b3)+(_0x10fbaa?'<path\x20d=\x22M18\x206L6\x2018M6\x206l12\x2012\x22/>':_0x560f2b(0x16f))+_0x560f2b(0x1ad);}[_0x556a35(0x122)](){const _0x7eb42a=_0x556a35;if(!this['container'])return;this[_0x7eb42a(0x13d)][_0x7eb42a(0x178)](_0x7eb42a(0x154),_0x2f5be7=>{const _0x568dce=_0x7eb42a;_0x2f5be7[_0x568dce(0x180)][_0x568dce(0x169)](_0x568dce(0x14c))&&(this['close'](),this[_0x568dce(0x150)](this[_0x568dce(0x165)])),_0x2f5be7['target'][_0x568dce(0x169)](_0x568dce(0x1b7))&&(this[_0x568dce(0x1a3)](),this['onAddExistingTask'](this[_0x568dce(0x170)]));}),this['container'][_0x7eb42a(0x178)](_0x7eb42a(0x154),async _0x55773e=>{const _0x34556f=_0x7eb42a,_0x9e80d=_0x55773e[_0x34556f(0x180)]['closest'](_0x34556f(0x16b));if(!_0x9e80d)return;const _0x37a2fa=_0x9e80d[_0x34556f(0x186)][_0x34556f(0x130)],_0x59d0e4=_0x9e80d[_0x34556f(0x186)]['action'];try{_0x59d0e4===_0x34556f(0x128)?await this[_0x34556f(0x1ae)](_0x37a2fa):await this[_0x34556f(0x176)](_0x37a2fa);}catch(_0x3c9c6d){console[_0x34556f(0x1a7)]('Failed\x20to\x20update\x20group:',_0x3c9c6d),Utils[_0x34556f(0x191)](_0x3c9c6d[_0x34556f(0x17b)]||_0x34556f(0x1be),_0x34556f(0x1a7));}}),this[_0x7eb42a(0x13d)][_0x7eb42a(0x178)](_0x7eb42a(0x1a8),_0x47abe0=>this[_0x7eb42a(0x141)](_0x47abe0)),this[_0x7eb42a(0x13d)][_0x7eb42a(0x178)](_0x7eb42a(0x198),_0x5d6f09=>this[_0x7eb42a(0x157)](_0x5d6f09)),this[_0x7eb42a(0x13d)]['addEventListener'](_0x7eb42a(0x1a5),_0x3abc65=>this[_0x7eb42a(0x177)](_0x3abc65)),this[_0x7eb42a(0x13d)][_0x7eb42a(0x178)](_0x7eb42a(0x1bb),_0x34006a=>this[_0x7eb42a(0x12e)](_0x34006a)),this[_0x7eb42a(0x13d)][_0x7eb42a(0x178)](_0x7eb42a(0x171),_0x2a2333=>this[_0x7eb42a(0x1b6)](_0x2a2333));}[_0x556a35(0x141)](_0x5d40c3){const _0x21a05d=_0x556a35,_0x108519=_0x5d40c3['target'][_0x21a05d(0x169)]('.vgm-variant-card');if(!_0x108519)return;dragState[_0x21a05d(0x145)]=_0x108519[_0x21a05d(0x186)][_0x21a05d(0x130)],dragState[_0x21a05d(0x193)]=_0x108519,dragState[_0x21a05d(0x137)]=_0x108519[_0x21a05d(0x186)]['isGrouped']===_0x21a05d(0x133)?this[_0x21a05d(0x170)]:null,dragState[_0x21a05d(0x161)]=!![],_0x108519[_0x21a05d(0x13e)][_0x21a05d(0x1b8)](_0x21a05d(0x1a2)),_0x5d40c3[_0x21a05d(0x1b0)]['effectAllowed']=_0x21a05d(0x1a0),_0x5d40c3[_0x21a05d(0x1b0)][_0x21a05d(0x126)]('text/plain',_0x108519[_0x21a05d(0x186)]['taskId']),this['container'][_0x21a05d(0x13e)][_0x21a05d(0x1b8)](_0x21a05d(0x13b));}['handleDragEnd'](_0x1bc612){const _0x2c235b=_0x556a35,_0x10afa8=_0x1bc612[_0x2c235b(0x180)]['closest'](_0x2c235b(0x181));_0x10afa8&&_0x10afa8[_0x2c235b(0x13e)][_0x2c235b(0x128)](_0x2c235b(0x1a2)),this['container'][_0x2c235b(0x1af)](_0x2c235b(0x12c))[_0x2c235b(0x195)](_0x4dcc87=>{const _0x42c20c=_0x2c235b;_0x4dcc87['classList'][_0x42c20c(0x128)](_0x42c20c(0x146),_0x42c20c(0x139),_0x42c20c(0x13a),_0x42c20c(0x189));}),this[_0x2c235b(0x13d)][_0x2c235b(0x13e)][_0x2c235b(0x128)](_0x2c235b(0x13b)),dragState[_0x2c235b(0x161)]=![],dragState['draggedTaskId']=null,dragState[_0x2c235b(0x193)]=null,dragState['sourceGroupId']=null;}[_0x556a35(0x177)](_0x2e0513){const _0x5f3f60=_0x556a35;_0x2e0513[_0x5f3f60(0x17a)](),_0x2e0513['dataTransfer'][_0x5f3f60(0x183)]=_0x5f3f60(0x1a0);const _0x44cebb=_0x2e0513[_0x5f3f60(0x180)][_0x5f3f60(0x169)](_0x5f3f60(0x187)),_0x33464d=_0x2e0513[_0x5f3f60(0x180)][_0x5f3f60(0x169)](_0x5f3f60(0x181));this['container'][_0x5f3f60(0x1af)]('.vgm-drop-zone')['forEach'](_0x262890=>{const _0x2ab676=_0x5f3f60;_0x262890[_0x2ab676(0x13e)][_0x2ab676(0x151)](_0x2ab676(0x146),_0x262890===_0x44cebb);});if(_0x33464d&&_0x33464d!==dragState['draggedElement']){const _0x53b8bc=_0x33464d[_0x5f3f60(0x11c)](),_0x4d11c0=_0x53b8bc[_0x5f3f60(0x18f)]+_0x53b8bc['height']/0x2,_0x12f25f=_0x2e0513[_0x5f3f60(0x14b)]<_0x4d11c0;this[_0x5f3f60(0x13d)]['querySelectorAll'](_0x5f3f60(0x181))[_0x5f3f60(0x195)](_0x4a3ef3=>{const _0x5bb8b3=_0x5f3f60;_0x4a3ef3!==_0x33464d&&_0x4a3ef3[_0x5bb8b3(0x13e)]['remove']('drop-before',_0x5bb8b3(0x189));}),_0x33464d[_0x5f3f60(0x13e)][_0x5f3f60(0x151)](_0x5f3f60(0x13a),_0x12f25f),_0x33464d[_0x5f3f60(0x13e)][_0x5f3f60(0x151)](_0x5f3f60(0x189),!_0x12f25f);}}[_0x556a35(0x12e)](_0x390230){const _0x198263=_0x556a35,_0x16a132=_0x390230['target'][_0x198263(0x169)](_0x198263(0x187));_0x16a132&&!_0x16a132[_0x198263(0x12a)](_0x390230[_0x198263(0x18d)])&&_0x16a132[_0x198263(0x13e)][_0x198263(0x128)](_0x198263(0x146));}async['handleDrop'](_0x247aaa){const _0x5c78b0=_0x556a35;_0x247aaa[_0x5c78b0(0x17a)]();const _0x186699=_0x247aaa[_0x5c78b0(0x180)][_0x5c78b0(0x169)](_0x5c78b0(0x187)),_0x2d67ae=_0x247aaa[_0x5c78b0(0x180)][_0x5c78b0(0x169)](_0x5c78b0(0x181)),_0x426410=_0x247aaa[_0x5c78b0(0x1b0)][_0x5c78b0(0x1a9)](_0x5c78b0(0x172));if(!_0x186699||!_0x426410)return;this[_0x5c78b0(0x13d)][_0x5c78b0(0x1af)](_0x5c78b0(0x1b5))[_0x5c78b0(0x195)](_0xdad156=>{const _0xd5ba6b=_0x5c78b0;_0xdad156['classList'][_0xd5ba6b(0x128)](_0xd5ba6b(0x146),_0xd5ba6b(0x13a),'drop-after');});const _0x562298=_0x186699[_0x5c78b0(0x186)][_0x5c78b0(0x174)],_0x3c5feb=_0x562298===_0x5c78b0(0x197),_0x1e1f9d=dragState[_0x5c78b0(0x137)]===this[_0x5c78b0(0x170)];try{if(_0x3c5feb&&!_0x1e1f9d){let _0x424f01=this[_0x5c78b0(0x165)][_0x5c78b0(0x16d)](_0x2e9940=>_0x2e9940[_0x5c78b0(0x170)]===this[_0x5c78b0(0x170)])[_0x5c78b0(0x13f)];if(_0x2d67ae){const _0x5236e3=_0x2d67ae['dataset'][_0x5c78b0(0x130)],_0x5f5c6f=this[_0x5c78b0(0x165)][_0x5c78b0(0x18e)](_0x176c5b=>_0x176c5b[_0x5c78b0(0x130)]===_0x5236e3);if(_0x5f5c6f?.[_0x5c78b0(0x129)]!==undefined){const _0x48fb0f=_0x2d67ae[_0x5c78b0(0x11c)](),_0x243909=_0x247aaa[_0x5c78b0(0x14b)]<_0x48fb0f[_0x5c78b0(0x18f)]+_0x48fb0f['height']/0x2;_0x424f01=_0x5f5c6f[_0x5c78b0(0x129)]+(_0x243909?0x0:0x1);}}await this[_0x5c78b0(0x176)](_0x426410,_0x424f01);}else{if(!_0x3c5feb&&_0x1e1f9d)await this[_0x5c78b0(0x1ae)](_0x426410);else _0x3c5feb&&_0x1e1f9d&&_0x2d67ae&&await this[_0x5c78b0(0x182)](_0x426410,_0x2d67ae,_0x247aaa['clientY']);}}catch(_0x193747){console[_0x5c78b0(0x1a7)](_0x5c78b0(0x12d),_0x193747),Utils['showToast'](_0x193747[_0x5c78b0(0x17b)]||_0x5c78b0(0x1a1),_0x5c78b0(0x1a7));}}async['addToGroup'](_0x486b2b,_0x49a3f0){const _0x2d6cfe=_0x556a35,_0x55ce2d=this[_0x2d6cfe(0x165)]['find'](_0x366675=>_0x366675['taskId']===_0x486b2b);if(!_0x55ce2d)return;_0x49a3f0===undefined&&(_0x49a3f0=this[_0x2d6cfe(0x165)][_0x2d6cfe(0x16d)](_0x41a7d4=>_0x41a7d4['groupId']===this[_0x2d6cfe(0x170)])[_0x2d6cfe(0x13f)]),!this[_0x2d6cfe(0x170)]&&(this[_0x2d6cfe(0x170)]=API[_0x2d6cfe(0x16a)](),await API[_0x2d6cfe(0x13c)]({'groupId':this[_0x2d6cfe(0x170)]})),await API['updateTaskGroup'](_0x486b2b,this[_0x2d6cfe(0x170)],_0x49a3f0),_0x55ce2d[_0x2d6cfe(0x170)]=this['groupId'],_0x55ce2d['groupIndex']=_0x49a3f0,this[_0x2d6cfe(0x1b2)](),this[_0x2d6cfe(0x150)](this[_0x2d6cfe(0x165)]);}async[_0x556a35(0x1ae)](_0x4bbc50){const _0x4174ad=_0x556a35,_0x54af22=this[_0x4174ad(0x165)][_0x4174ad(0x18e)](_0x326451=>_0x326451[_0x4174ad(0x130)]===_0x4bbc50);if(!_0x54af22)return;await API[_0x4174ad(0x135)](_0x4bbc50),_0x54af22[_0x4174ad(0x170)]=null,_0x54af22[_0x4174ad(0x129)]=null,this[_0x4174ad(0x1b2)](),this[_0x4174ad(0x150)](this[_0x4174ad(0x165)]);}async[_0x556a35(0x182)](_0xc7d7fe,_0x236154,_0x44b34c){const _0x1287e0=_0x556a35,_0x5f4ac2=this[_0x1287e0(0x165)]['find'](_0x3ac935=>_0x3ac935[_0x1287e0(0x130)]===_0xc7d7fe),_0x222e86=_0x236154['dataset']['taskId'],_0x3491f0=this[_0x1287e0(0x165)]['find'](_0x15d397=>_0x15d397[_0x1287e0(0x130)]===_0x222e86);if(!_0x5f4ac2||!_0x3491f0||_0x5f4ac2[_0x1287e0(0x130)]===_0x3491f0[_0x1287e0(0x130)])return;const _0x5c844b=_0x236154[_0x1287e0(0x11c)](),_0x35789f=_0x44b34c<_0x5c844b[_0x1287e0(0x18f)]+_0x5c844b[_0x1287e0(0x159)]/0x2;let _0x209884=_0x3491f0[_0x1287e0(0x129)]??0x0;if(!_0x35789f)_0x209884++;if((_0x5f4ac2[_0x1287e0(0x129)]??0x0)<(_0x3491f0[_0x1287e0(0x129)]??0x0))_0x209884--;if(_0x209884===_0x5f4ac2[_0x1287e0(0x129)])return;await API[_0x1287e0(0x185)](_0xc7d7fe,this['groupId'],_0x209884);const _0x59a093=this[_0x1287e0(0x165)]['filter'](_0x596600=>_0x596600['groupId']===this['groupId'])[_0x1287e0(0x14e)]((_0x3eb1e4,_0x15f987)=>(_0x3eb1e4['groupIndex']??0x0)-(_0x15f987[_0x1287e0(0x129)]??0x0)),_0x5d0199=_0x59a093[_0x1287e0(0x19b)](_0x2cf325=>_0x2cf325[_0x1287e0(0x130)]===_0xc7d7fe);_0x5d0199!==-0x1&&_0x59a093[_0x1287e0(0x19d)](_0x5d0199,0x1),_0x59a093[_0x1287e0(0x19d)](_0x209884,0x0,_0x5f4ac2),_0x59a093[_0x1287e0(0x195)]((_0x10e1fe,_0x213ad3)=>{const _0x568c64=_0x1287e0;_0x10e1fe[_0x568c64(0x129)]=_0x213ad3;}),this[_0x1287e0(0x1b2)](),this['onGroupChange'](this[_0x1287e0(0x165)]);}}export function initializeTabDragDrop(_0x188c28,_0x30f801,_0x38a324,_0xd78073={}){const _0x5c7955=_0x556a35;if(!_0x188c28)return;const {onReorder:_0x57a85d,onRemove:_0x448327}=_0xd78073,_0x4f9d03=_0x188c28[_0x5c7955(0x1af)](_0x5c7955(0x1bc));_0x4f9d03[_0x5c7955(0x195)]((_0x2ecec9,_0x37f133)=>{const _0x5ba884=_0x5c7955;_0x2ecec9[_0x5ba884(0x136)](_0x5ba884(0x11f),_0x5ba884(0x133)),_0x2ecec9[_0x5ba884(0x186)][_0x5ba884(0x15a)]=_0x37f133,_0x2ecec9[_0x5ba884(0x178)](_0x5ba884(0x1a8),_0x18dffe=>{const _0x35ad08=_0x5ba884;_0x18dffe[_0x35ad08(0x1b0)][_0x35ad08(0x18b)]=_0x35ad08(0x1a0),_0x18dffe[_0x35ad08(0x1b0)][_0x35ad08(0x126)](_0x35ad08(0x172),_0x2ecec9['dataset'][_0x35ad08(0x130)]),_0x2ecec9[_0x35ad08(0x13e)][_0x35ad08(0x1b8)](_0x35ad08(0x1a2)),_0x188c28['classList'][_0x35ad08(0x1b8)]('is-dragging');}),_0x2ecec9['addEventListener'](_0x5ba884(0x198),()=>{const _0xbeb54d=_0x5ba884;_0x2ecec9['classList'][_0xbeb54d(0x128)]('dragging'),_0x188c28['classList'][_0xbeb54d(0x128)]('is-dragging'),_0x188c28[_0xbeb54d(0x1af)](_0xbeb54d(0x19a))[_0xbeb54d(0x195)](_0x57c1e9=>{const _0x1859ca=_0xbeb54d;_0x57c1e9[_0x1859ca(0x13e)][_0x1859ca(0x128)](_0x1859ca(0x139),_0x1859ca(0x13a),_0x1859ca(0x189));});}),_0x2ecec9[_0x5ba884(0x178)](_0x5ba884(0x1a5),_0x400cf6=>{const _0x1f6f26=_0x5ba884;_0x400cf6[_0x1f6f26(0x17a)](),_0x400cf6[_0x1f6f26(0x1b0)]['dropEffect']='move';if(_0x2ecec9[_0x1f6f26(0x13e)][_0x1f6f26(0x12a)](_0x1f6f26(0x1a2)))return;const _0x3a6557=_0x2ecec9[_0x1f6f26(0x11c)](),_0x2b3dd3=_0x3a6557[_0x1f6f26(0x160)]+_0x3a6557[_0x1f6f26(0x1b9)]/0x2,_0x569e94=_0x400cf6['clientX']<_0x2b3dd3;_0x4f9d03[_0x1f6f26(0x195)](_0x59be67=>_0x59be67[_0x1f6f26(0x13e)]['remove'](_0x1f6f26(0x13a),_0x1f6f26(0x189))),_0x2ecec9['classList'][_0x1f6f26(0x1b8)](_0x569e94?_0x1f6f26(0x13a):_0x1f6f26(0x189));}),_0x2ecec9[_0x5ba884(0x178)](_0x5ba884(0x1bb),()=>{const _0x2d4cc8=_0x5ba884;_0x2ecec9[_0x2d4cc8(0x13e)][_0x2d4cc8(0x128)](_0x2d4cc8(0x13a),'drop-after');}),_0x2ecec9[_0x5ba884(0x178)](_0x5ba884(0x171),async _0xb26a16=>{const _0x425b02=_0x5ba884;_0xb26a16[_0x425b02(0x17a)]();const _0x3862b4=_0xb26a16['dataTransfer'][_0x425b02(0x1a9)](_0x425b02(0x172)),_0x34b50c=_0x2ecec9[_0x425b02(0x186)][_0x425b02(0x130)];if(_0x3862b4===_0x34b50c)return;const _0x380637=_0x2ecec9[_0x425b02(0x11c)](),_0x2b215a=_0xb26a16['clientX']<_0x380637[_0x425b02(0x160)]+_0x380637[_0x425b02(0x1b9)]/0x2;_0x2ecec9[_0x425b02(0x13e)][_0x425b02(0x128)](_0x425b02(0x13a),'drop-after'),_0x57a85d&&await _0x57a85d(_0x3862b4,_0x34b50c,_0x2b215a);});});const _0x18c4c6=document[_0x5c7955(0x16c)](_0x5c7955(0x168));return _0x18c4c6[_0x5c7955(0x196)]=_0x5c7955(0x167),_0x18c4c6[_0x5c7955(0x121)]=_0x5c7955(0x166),_0x18c4c6[_0x5c7955(0x179)][_0x5c7955(0x19f)]=_0x5c7955(0x124),_0x18c4c6[_0x5c7955(0x178)]('dragover',_0x23426d=>{const _0x4dbb87=_0x5c7955;_0x23426d[_0x4dbb87(0x17a)](),_0x18c4c6[_0x4dbb87(0x13e)][_0x4dbb87(0x1b8)]('drag-over');}),_0x18c4c6[_0x5c7955(0x178)]('dragleave',()=>{const _0x2da818=_0x5c7955;_0x18c4c6[_0x2da818(0x13e)][_0x2da818(0x128)](_0x2da818(0x146));}),_0x18c4c6[_0x5c7955(0x178)](_0x5c7955(0x171),async _0x428e4c=>{const _0x4b4309=_0x5c7955;_0x428e4c[_0x4b4309(0x17a)](),_0x18c4c6[_0x4b4309(0x13e)][_0x4b4309(0x128)]('drag-over');const _0x2fef10=_0x428e4c[_0x4b4309(0x1b0)][_0x4b4309(0x1a9)]('text/plain');_0x448327&&await _0x448327(_0x2fef10);}),_0x188c28['addEventListener']('dragstart',()=>{const _0x23d12f=_0x5c7955;_0x30f801[_0x23d12f(0x13f)]>0x1&&(_0x18c4c6[_0x23d12f(0x179)][_0x23d12f(0x19f)]='flex');}),_0x188c28['addEventListener'](_0x5c7955(0x198),()=>{const _0x5c6d95=_0x5c7955;_0x18c4c6[_0x5c6d95(0x179)][_0x5c6d95(0x19f)]=_0x5c6d95(0x124);}),_0x188c28[_0x5c7955(0x1ba)](_0x18c4c6),{'destroy':()=>{const _0x5a672c=_0x5c7955;_0x18c4c6[_0x5a672c(0x128)]();}};}export default VariantGroupingManager;
1
+ const _0x466493=_0x1209;function _0x10f7(){const _0x54cbd9=['ywrKrxzLBNrmAxn0zw5LCG','nJyWmxHfEwTTua','yxbWCM92zwrcEq','zhjHz2XLyxzL','BgvUz3rO','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtaGmtrbnIa2idaGmsaXidGGmMe2idyGmcaWideGmcaXmNPTms02lJvwneG3DJqUnwWZidmGms41lteUns0YlJuTmI41EIiVpJWVC3zNpG','phnWyw4Gy2XHC3m9iNzNBs1IywrNzsb2z20TyMfKz2uTyxbWCM92zwqIihrPDgXLpsjbChbYB3zLzci+phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzciGD2LKDgG9iJeYiIbOzwLNAhq9iJeYiJ48Cgf0AcbKpsjnmtqGovy1ytmGmYaWidaGmc0ZltnSltqGoxyXmwGXms4YogeYidiGmcaWidaGmI0XlJDSms4Zoc05ytiGmIaWidaGmc0YltiUm3PnnYaYmKG0ytiGmIaWidaGms0Yltj2ltDHmIaYidaGmcaXidiTmMGZiJ48l3bHDgG+pc9ZDMC+pc9ZCgfUpG','C3rHDhvZlq','y2XVC2u','zgf0yxnLDa','zw52vMfYCW','zxnJyxbLshrTBa','iJ4kicaGicaGicaGia','AgfUzgXLrhjVCa','iGOGicaGicaGicaGicaGicaGzgf0ys10yxnRlwLKpsi','zgL2','zM9YrwfJAa','phn2zYb2Awv3qM94psiWidaGmJaGmJaIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJeUnIiGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+pgnPCMnSzsbJEd0ImtaIign5psiXmciGCJ0IociGlZ48Cgf0AcbKpsjnmtaGnI41yY0XlJeGmc0Yic43ltiGms42idaGlJKGmsaXlJmGms42ideUnY43lJqGmsaUocaXideUnvyXmIiGlZ48y2LYy2XLign4psiXmciGy3K9iJe0iIbYpsiWlJGIigzPBgW9iMn1CNjLBNrdB2XVCIiGC3rYB2TLpsjUB25LiIaVpJWVC3zNpG','phbHDgGGzd0Itte4idzmnIaXoe02idzSmtiGmtiIlZ4','iJ4kicaGicaGica8zgL2ignSyxnZpsj2z20TDMfYAwfUDc1KCMfNlwHHBMrSzsiGDgL0Bgu9iKrYywCGDg8GCMvVCMrLCIbVCIbTB3zLiJ4kicaGicaGicaGidXZDMCGDMLLD0jVEd0ImcaWidi0idi0iIb3Awr0Ad0ImtyIigHLAwDODd0ImtyIigzPBgW9iMn1CNjLBNrdB2XVCIi+cIaGicaGicaGicaGidXWyxrOigq9iK04idzOmNyYsdHwnNPTnIaWAdj2mMGTmLy2EK04ideXAdj2mKG4DI0YEM02idbOmNyYAc0YDI0YEM0TnIa1Adj2mKG4DI0YEM02idbOmNyYAc0YDI0YEIiVpGOGicaGicaGicaGpc9ZDMC+cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTAwnVBIiGzgf0ys1Hz2vUDd0I','BM9Uzq','CMvVCMrLCKLUr3jVDxa','BwfW','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtaGmtjHlJC1lJC1idaGmsaXidaTms41lJC1lJC1idaGmcaXidaGms41EM0XltmUnweXideGmcaWideTmIaWvJvHmsaXidaGmsaXidiGmhyZlJv6iI8+pc9ZDMC+','mJa4oti2q3DYr3fK','zhjHz3n0yxj0','lMrYywCTB3zLCIWGlMrYB3aTyMvMB3jLlcaUzhjVCc1HzNrLCG','AM9PBG','DxbKyxrLvgfZA0DYB3vW','lMrYB3aTAw5KAwnHDg9Y','CMvSyxrLzfrHCMDLDa','zhjHz2DLzevSzw1LBNq','iGOGicaGicaGicaGigrHDgeTAxmTz3jVDxbLzd0I','ChvZAa','Bw92zq','mZu3nLHsvLrptq','zMXLEa','lNzNBs12yxjPyw50lxjLBw92zs1IDg4','mJGWmKz0rKjZwq','ywrKvg9hCM91Ca','B25bzgrfEgLZDgLUz1rHC2S','cIaGicaGicaGica','ywrK','zhjHz2DHyMXL','zhjHz2DPBMC','BwvZC2fNzq','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtmUntmGmtaUndDHlJC1lJC1idaGmsaXlteUmdyGms4WnKW4idKUmdzSltiUndCGmI40n2eUnZuUnZuGmcaWideTms4WnI0XlJa2tdyUotqGoca0lJq3iduUntnHlJC1lJC1idaGmcaXideUmdyTms4WnKW4idyUotrSmI40nY0YlJq3ys43ns43nsaWidaGmsaXlJa2ideUmdzmos4WnIa4BdiUndCGmI40n3OIlZ48l3n2zZ4','iGOGicaGicaGicaGigrYywDNywjSzt0IDhj1zsikicaGicaGicaGicbKyxrHlxrHC2STAwq9iG','Dw5RBM93BG','iGOGicaGicaGicaGicaGicaGzgf0ys1Hy3rPB249iG','zgLZCgXHEq','otrYsKzzt3q','B3bLBG','AxmTzhjHz2DPBMC','zMLUzeLUzgv4','zMLSDgvY','B25hCM91CenOyw5Nzq','Dg9W','z3jVDxbjBMrLEa','zhjVCevMzMvJDa','zwzMzwn0qwXSB3DLza','BgvMDa','z3jVDxbLza','D2LKDgG','y2XHDwrL','qwrKihrVigDYB3vW','z3jVDxbjza','C3bSAwnL','Aw5PDa','AxnpCgvU','y2XVC2vZDa','y2XPy2S','z2v0qM91BMrPBMDdBgLLBNrszwn0','ndi4nZHbv1vSwNq','CxvLCNLtzwXLy3rVCKfSBa','zhjVCc1IzwzVCMu','zhjHz292zxi','pc9ZCgfUpGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrYB3aTEM9Uzsb2z20Tz3jVDxbLzc16B25LiIbKyxrHlxPVBMu9iMDYB3vWzwqIpGOGicaGicaGicaGicaGia','CMvTB3zL','y2XPzw50wq','vgfZAYa','AgfUzgXLrhjHz1n0yxj0','cIaGicaGidXKAxyGy2XHC3m9iNzNBs12yxjPyw50lwnHCMqG','zhjVCa','mta0mJz1EvDUsNq','y29UDgfPBMvY','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iMn1CNjLBNrdB2XVCIiGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+phbHDgGGzd0IttiYlJi4mtKGos44mJeXytuUotG0nYa1lJK4ndCGmcaWidaTlJuXntCTnc45mta4idyUmdq2mIa2lJa0nJiGmcaWidaTnI41mdK4ltiUoue2lJa2nteGnI4WnJuXidaGmcaWidqUotGWnYa0lJe4mtHHns45odq3iduUotG0nYaWidaGmc0ZlJK5nZCGmI45idyUmdq2mIa2lJa0nJiGmcaWidaGlJC0mJCGnY4Woty2iduUotGGns45ocaWidaGmcaUnteXidqUoteWnYa2lJa1msa2lJa1msaWidaGmca2lJuXndyGmI45mdaXqtuUotG0nYa1lJK4ndCGmcaWidaGmtmUmJu5osaYnge2lJa1ntCGnI4Wntu3idaGmcaWiduUnZCXoc00lJiWntGGns45odK0iduUotG5ncaWidaGmcaZlJK5nZCTmI45mdaXidyUmdu1nYa2lJa1ntCGmcaWidaTlJC0nZuTnY4WnZi5EM0Tos4WmJiGmtiUnJa4mwe0lJq3ntuGnc40nZu1idaGmcaXltiUodC2nc0XlJa0mdHSlJe0mtKTlJa4mdqGnc43nZGZltiUnZu4mMeUnZK0oc43otq4idaGmcaWic4Zoti3ls42odeZDI02lJCZnJLSmI4WmIaXlJe2odzHlJa3ms4WnZeGmcaWideGlJaZoc4Wntj2ns41odi2ytqUnta0idqUnta0idaGmcaXltqUndK0nsa0lJq5ndr6Bs05lJy2mdCTnc4XmJu0ytqUndCWoca0lJq3mdGGmcaWideTlJuZndyTmY4Wmtm3Bc4XndiUmdG1mIa0lJC4mYaYlJC1odjHlJC3mtiUnZCXmIaWidaGmcaUnZGWnIaWBduUodqYoc0ZlJm2odv2mI4ZmZi0ys4Woda0lJa4mdqGmcaWideTlJaZmZiUmdyXnuW5lJC0ide5lJK1mdjHnc40otKYidqUndK5mIaWidaGms02lJe0mdGTms42ndy0EK0YlJm0mdGGnY44otu2ytqUndG1idqUndG1idaGmcaXidiUmZy1ns0XlJK3mJHwmteUnMeUnZy2nc43nJy0idaGmcaWic4ZodC5lJy3nJvSns44mtq0idmUmZu0mY0YlJaYmdeGms4XnJG1ys4WnZu3lJa3ntCGmcaWideTlJa3msaWBc00lJGZmdmTmI43ody1qtqUnta0idqUnta0idaGmcaXidiUmZqWoca3lJG3mNPTmtyUntK2mYaZlJG1ntHmmtmUmtaZoca4lJm2ncaXns4XmtKYidCUmMeUmdC1nY4WnZu3idaGmcaXic4WnZeGmgW0lJGZmdmGmI43oteZytqUndK0nca0lJq5ndqGmcaWideTlJy3nJuGoc4XmdqYDI01lJy3nZjHlJC5lJC5idaGmcaWls40mdCTlJy2n3PTmI4Wmta3ltmUmdiZmwWTlJe0mI0UmdG1mI00lJC3mZuTmI43ode4ys43nZu5lJC3ntKGmcaWidaTlJC4ntqGmeW5lJqWosa5lJiYotDwnI44otC0ys4WnJyYlJa2nJiGmcaWideGlJaYodqTlJa2mtvSnc44mZaZltiUnZG2nMe0lJq5otiGnc40otKYidaGmcaXidyUnJGWmIa0lJy2EK04lJmWnJuGmtiUodyZBc0YlJaYlteUmtyZogeUmdGWnc4Woda0idaGmcaXls4WmZGTlJa1nJDwnI4WnZqYytqUndK5mIa0lJq5otiGmcaWideGnY4ZnZu3ltmUnduZn2WTlJe0mI4Woda1tdGUnZa0iduUndu5ys43otq4lJC5ndGGmcaWidaTlJm5mJCUnJGXm3PTms4WotC2ltiUmZy1ngWYlJyWmI0XlJq5otGGmI42mdy5ideUndK5ohyYlJK5otrSltiUntK3ncaXlJq5otCTmI42mdy3lteUndK5n1OIlZ48l3n2zZ4','DgfYz2v0','pc9ZCgfUpGOGicaGicaGidWVzgL2pGOGicaGicaGidXKAxyGy2XHC3m9iNzNBs12yxjPyw50lwjHzgDLCYi+cIaGicaGicaGica','AgvPz2H0','neXtEhL6BW','otGZmtKZnhroBu5psq','rMfPBgvKihrVihvWzgf0zsbNCM91Ca','C2v0qxr0CMLIDxrL','ndbSueXAD0O','q09ervjFquDftLq','CMvTB3zLrNjVBuDYB3vW','cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cGOGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrPDMLKzxiIpGOGicaGicaGicaGica8zgL2ignSyxnZpsj2z20TzgL2AwrLCI1SAw5LiJ48l2rPDJ4kicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNzNBs1KAxzPzgvYlxrLEhqIpKrYywCGDg8GBw92ztWVC3bHBJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrPDMLKzxiTBgLUzsi+pc9KAxy+cIaGicaGicaGica8l2rPDJ4kcIaGicaGicaGica8zgL2ignSyxnZpsj2z20TC2vJDgLVBIb2z20TDw5NCM91CgvKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxnLy3rPB24TAgvHzgvYiJ4kicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxnLy3rPB24TDgL0BguIpLvUz3jVDxbLzcbuyxnRCZWVC3bHBJ4kicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxnLy3rPB24Ty291BNqIpG','C2HVD1rVyxn0','AgfUzgXLrhjHz0XLyxzL','mty2og5twMTZBq','zgf0yvrYyw5ZzMvY','y2XHC3nmAxn0','AgfUzgXLrhjHz092zxi','cIaGica8C3zNihzPzxDcB3G9iJaGmcaYncaYnciGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiJ4kicaGicaGphbHDgGGzd0Itte4idzmnIaXoe02idzSmtiGmtiIlZ4kicaGidWVC3zNpGOGicaGphnWyw4+uMvTB3zLigzYB20Gz3jVDxa8l3nWyw4+cIaG','pgrPDIbJBgfZCZ0IDMDTlwvTChr5lwHPBNqIpKrYywCGDMfYAwfUDhmGAgvYzsb0BYbYzw1VDMuGzNjVBsbNCM91CdWVzgL2pG','DgfZA3m','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24GC3bPBM5PBMCIihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImI41iIbZDhjVA2uTBgLUzwnHCd0ICM91BMqIpJXWyxrOigq9iK04idiGqtyGnIaWidaGmsaXnca4iI8+pc9ZDMC+','C29YDa','uMvTB3zLigzYB20Gz3jVDxa','ChjLDMvUDerLzMf1Bhq','iGOGicaGicaGicaGigrHDgeTAw5KzxG9iG','Dg9Nz2XL','z2v0rgf0yq','zMLUza','cIaGicaGicaGica8l3n2zZ4kicaGicaGica8l2j1DhrVBJ4kicaGicaGpc9KAxy+cIaGica','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzciGD2LKDgG9iJe2iIbOzwLNAhq9iJe2iIbHCMLHlwHPzgrLBJ0IDhj1zsi+phbHDgGGzd0ItteYidjmos4Wosa5lJa5idiGmtjSnY4WosaYlJKXtdeYidiYBdiUoteTnY4WouWYmIaXmMWTnY4Wos0YlJKXEIi+pc9WyxrOpJWVC3zNpG','C3rHDhvZ','CMvUzgvY','Dg9mB3DLCKnHC2u','pgrPDIbJBgfZCZ0IDMDTlwvTChr5lwHPBNqIpKrYywCGDMfYAwfUDhmGAgvYzsb0BYbHzgqGDg8Gz3jVDxa8l2rPDJ4','lNzNBs1JBg9Zzs1IDg4','zhjVCc1HzNrLCG','ywn0Aw9U','lNzNBs1KCM9WlxPVBMu','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTAw5MBYi+cIaGicaGicaGica8C3bHBIbJBgfZCZ0IDMDTlxzHCMLHBNqTBMfTzsi+','phn2zYbJBgfZCZ0IC3rHDhvZlwLJB24IihzPzxDcB3G9iJaGmcaXnIaXnIiGzMLSBd0Iy3vYCMvUDenVBg9YiJ48Cgf0AcbKpsjnocaWytGGocaWideGmcaWide2qtGGocaWidaGmca4idb6BtmUnZGGnI4Yoc00lJuGnc41ys43ns43nsaWidaGms0XlJa2idbSltiTmMeUnZuUnZuGmcaXideGms4WnI0XlJa2tdyUnZuGos4XowWZlJK3ltmUotDHlJC1lJC1idaGmsaXideUmdyGms4WnNOIlZ48l3n2zZ4','Aw5Uzxjive1m','CMvTB3zLvgfZA0zYB21hCM91Ca','C3r5Bgu','zxjYB3i','Dhj1zq','DgfZAY10ywiTCMvTB3zLlxPVBMu','zhjHz2vUza','DgfZA0LK','mtaWwxLZA3bT','otGXnJu3v3jHANjX','zhjHz2DLzfrHC2Tjza','y2XPzw50wa','CMvUzgvYvMfYAwfUDenHCMq','BMfTzq','y2XHC3noyw1L','y29UDgfPBNm','y3jLyxrLvgfZA0DYB3vW','pc9ZCgfUpGOGicaGicaGicaGphnWyw4Gy2XHC3m9iNzNBs12yxjPyw50lw1LDgeIpG','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgj1DhrVBIbJBgfZCZ0IDMDTlxzHCMLHBNqTCMvTB3zLlwj0BIikicaGicaGicaGicaGicaGihrPDgXLpsi','lNzNBs12yxjPyw50lwnHCMq','yxr0ywnOrxzLBNrmAxn0zw5LCNm','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlxzHCMLHBNqTC3rHDhvZia','Dgv4Dc9WBgfPBG','C291CMnLr3jVDxbjza','pc9ZCgfUpGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IDMDTlwrYB3aTEM9Uzsb2z20TDw5NCM91CgvKlxPVBMuIigrHDgeTEM9Uzt0IDw5NCM91CgvKiJ4kicaGicaGicaGicaGica','z2vUzxjHDgvhCM91CeLK','Aw5KzxG','yxbWzw5Kq2HPBgq','mZLxrffVDfG','zhjHzY1VDMvY'];_0x10f7=function(){return _0x54cbd9;};return _0x10f7();}(function(_0x2c83d7,_0x3bafbe){const _0x788e71=_0x1209,_0x44b35f=_0x2c83d7();while(!![]){try{const _0x88cadb=-parseInt(_0x788e71(0x176))/0x1*(parseInt(_0x788e71(0x197))/0x2)+-parseInt(_0x788e71(0x1f8))/0x3*(-parseInt(_0x788e71(0x19d))/0x4)+parseInt(_0x788e71(0x1ca))/0x5*(-parseInt(_0x788e71(0x206))/0x6)+parseInt(_0x788e71(0x1e1))/0x7*(-parseInt(_0x788e71(0x203))/0x8)+parseInt(_0x788e71(0x1cb))/0x9*(-parseInt(_0x788e71(0x1a1))/0xa)+parseInt(_0x788e71(0x18c))/0xb*(-parseInt(_0x788e71(0x1a7))/0xc)+-parseInt(_0x788e71(0x1de))/0xd*(-parseInt(_0x788e71(0x19e))/0xe);if(_0x88cadb===_0x3bafbe)break;else _0x44b35f['push'](_0x44b35f['shift']());}catch(_0x5c04c6){_0x44b35f['push'](_0x44b35f['shift']());}}}(_0x10f7,0x43bf0));import{API,Utils}from'./app.js';const dragState={'draggedTaskId':null,'draggedElement':null,'sourceGroupId':null,'isDragging':![]},AGENT_ICONS={'claude':'<svg\x20viewBox=\x220\x200\x2016\x2016\x22\x20fill=\x22currentColor\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20aria-hidden=\x22true\x22><path\x20d=\x22m3.127\x2010.604\x203.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0\x207.832l.036-.234.32-.214.455.04\x201.009.069\x201.513.105\x201.097.064\x201.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456\x201.267.981\x201.654\x201.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2\x202\x200\x200\x201-.068-.484l.496-.674L4.446\x200l.662.089.279.242.411.94.666\x201.48\x201.033\x202.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19\x201.23-.37\x201.93-.243\x201.29h.142l.161-.16.654-.868\x201.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839\x201.13-.524.904.048.072.125-.012\x201.897-.403\x201.024-.186\x201.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04\x201.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71\x201.331\x201.202\x201.667\x201.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432\x201.557\x202.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448\x204.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953\x201.307-1.448\x201.957-1.146\x201.227-.274.109-.477-.247.045-.44.266-.39\x201.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212\x204.212z\x22/></svg>','codex':_0x466493(0x199),'gemini':_0x466493(0x1b7),'unknown':_0x466493(0x1f1)},STATUS_ICONS={'running':_0x466493(0x1ae),'completed':_0x466493(0x1c1),'failed':_0x466493(0x20e),'staged':_0x466493(0x1f7),'queued':_0x466493(0x1e5)};export class VariantGroupingManager{constructor(_0x29d6e2={}){const _0x3ecfec=_0x466493;this['container']=null,this[_0x3ecfec(0x17b)]=_0x29d6e2[_0x3ecfec(0x17b)]||(()=>{}),this[_0x3ecfec(0x208)]=_0x29d6e2[_0x3ecfec(0x208)]||(()=>{}),this['tasks']=[],this[_0x3ecfec(0x185)]=_0x29d6e2[_0x3ecfec(0x185)]||null,this['isOpen']=![];}[_0x466493(0x187)](_0x47f18a,_0x3df143,_0x34501d){const _0xb2c42e=_0x466493;this[_0xb2c42e(0x198)]=_0x47f18a,this[_0xb2c42e(0x1ad)]=_0x3df143,this[_0xb2c42e(0x185)]=_0x34501d,this['render'](),this[_0xb2c42e(0x1d6)]();}['updateTasks'](_0x196c4d){const _0x30cb80=_0x466493,_0x5c839b=new Map(_0x196c4d[_0x30cb80(0x1f6)](_0x545294=>[_0x545294[_0x30cb80(0x1c9)],_0x545294]));this['tasks']=this[_0x30cb80(0x1ad)]['map'](_0xe50749=>{const _0x2e7972=_0x5c839b['get'](_0xe50749['taskId']);return _0x2e7972?_0x2e7972:_0xe50749;});for(const _0x4ca25e of _0x196c4d){!this[_0x30cb80(0x1ad)]['some'](_0x237501=>_0x237501[_0x30cb80(0x1c9)]===_0x4ca25e[_0x30cb80(0x1c9)])&&this[_0x30cb80(0x1ad)][_0x30cb80(0x201)](_0x4ca25e);}this[_0x30cb80(0x188)]&&this[_0x30cb80(0x1b9)]();}['open'](){const _0xe4df4d=_0x466493;this[_0xe4df4d(0x188)]=!![],this[_0xe4df4d(0x1b9)](),this[_0xe4df4d(0x198)]?.['classList'][_0xe4df4d(0x20a)]('open');}[_0x466493(0x1e8)](){const _0x56d728=_0x466493;this[_0x56d728(0x188)]=![],this[_0x56d728(0x198)]?.[_0x56d728(0x1a9)][_0x56d728(0x191)](_0x56d728(0x177));}[_0x466493(0x1b9)](){const _0x4e30ed=_0x466493;if(!this['container'])return;const _0x32eef5=this[_0x4e30ed(0x1ad)][_0x4e30ed(0x17a)](_0x200fa6=>_0x200fa6['groupId']===this['groupId'])[_0x4e30ed(0x1af)]((_0x5b62a5,_0x1856da)=>(_0x5b62a5['groupIndex']??0x0)-(_0x1856da[_0x4e30ed(0x17d)]??0x0)),_0x1d834d=this['tasks'][_0x4e30ed(0x17a)](_0x52239f=>!_0x52239f[_0x4e30ed(0x185)]||_0x52239f['groupId']!==this[_0x4e30ed(0x185)]);this[_0x4e30ed(0x198)][_0x4e30ed(0x1c2)]='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22variant-grouping-manager\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h3>Manage\x20Task\x20Group</h3>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22vgm-close-btn\x22\x20title=\x22Close\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20width=\x2220\x22\x20height=\x2220\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M18\x206L6\x2018M6\x206l12\x2012\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-section\x20vgm-grouped\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-section-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22vgm-section-title\x22>Grouped\x20Variants</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22vgm-section-count\x22>'+_0x32eef5[_0x4e30ed(0x1e4)]+_0x4e30ed(0x190)+(_0x32eef5[_0x4e30ed(0x1e4)]===0x0?_0x4e30ed(0x1bb):_0x32eef5['map']((_0x172ec3,_0x796d20)=>this[_0x4e30ed(0x1ce)](_0x172ec3,_0x796d20,!![]))[_0x4e30ed(0x1fb)](''))+_0x4e30ed(0x1a4)+_0x1d834d[_0x4e30ed(0x1e4)]+_0x4e30ed(0x1da)+(_0x1d834d[_0x4e30ed(0x1e4)]===0x0?_0x4e30ed(0x1ac):_0x1d834d['map']((_0x4d584c,_0x20cd7e)=>this[_0x4e30ed(0x1ce)](_0x4d584c,_0x20cd7e,![]))[_0x4e30ed(0x1fb)](''))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22vgm-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22vgm-btn\x20vgm-btn-secondary\x20vgm-add-existing-btn\x22\x20title=\x22Add\x20an\x20existing\x20task\x20to\x20this\x20group\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M12\x205v14M5\x2012h14\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Add\x20Existing\x20Task\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}['renderVariantCard'](_0x37ffe9,_0x1b7fdf,_0x3a9711){const _0xc8d2d8=_0x466493,_0x139f25=_0x37ffe9[_0xc8d2d8(0x1ea)]?.[_0xc8d2d8(0x1a2)]||_0x37ffe9['envVars']?.['default_agent']||'claude',_0x174018=AGENT_ICONS[_0x139f25[_0xc8d2d8(0x1ba)]()]||AGENT_ICONS[_0xc8d2d8(0x183)],_0x5a67fe=STATUS_ICONS[_0x37ffe9[_0xc8d2d8(0x1b8)]]||'',_0x5a5f4b=_0xc8d2d8(0x1e7)+(_0x37ffe9[_0xc8d2d8(0x1b8)]||_0xc8d2d8(0x173)),_0x450ca7=_0x37ffe9['isWinner']?'<span\x20class=\x22vgm-badge\x20vgm-badge-winner\x22\x20title=\x22Winner\x22>★</span>':'',_0x41643b=_0x37ffe9[_0xc8d2d8(0x1e2)]?_0xc8d2d8(0x1e6):'';return _0xc8d2d8(0x195)+_0x5a5f4b+_0xc8d2d8(0x20f)+_0x37ffe9['taskId']+_0xc8d2d8(0x200)+_0x3a9711+_0xc8d2d8(0x1b2)+_0x1b7fdf+_0xc8d2d8(0x1f3)+_0x139f25[_0xc8d2d8(0x1ba)]()+_0xc8d2d8(0x1ec)+_0x174018+_0xc8d2d8(0x1c0)+Utils[_0xc8d2d8(0x1eb)](_0x37ffe9[_0xc8d2d8(0x1cf)]||_0xc8d2d8(0x193)+_0x37ffe9['taskId']['slice'](-0x6))+_0xc8d2d8(0x1d3)+Utils[_0xc8d2d8(0x1eb)](_0x139f25)+'\x20·\x20'+(_0x37ffe9[_0xc8d2d8(0x1b8)]||_0xc8d2d8(0x173))+_0xc8d2d8(0x19b)+_0x450ca7+_0xc8d2d8(0x209)+_0x41643b+_0xc8d2d8(0x1d7)+_0x5a5f4b+_0xc8d2d8(0x1ec)+_0x5a67fe+_0xc8d2d8(0x1d4)+(_0x3a9711?_0xc8d2d8(0x1b0):_0xc8d2d8(0x184))+_0xc8d2d8(0x1ee)+_0x37ffe9[_0xc8d2d8(0x1c9)]+_0xc8d2d8(0x174)+(_0x3a9711?_0xc8d2d8(0x191):_0xc8d2d8(0x20a))+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3a9711?_0xc8d2d8(0x1f2):'<path\x20d=\x22M12\x205v14M5\x2012h14\x22/>')+_0xc8d2d8(0x1b6);}[_0x466493(0x1d6)](){const _0x3ad462=_0x466493;if(!this[_0x3ad462(0x198)])return;this[_0x3ad462(0x198)]['addEventListener'](_0x3ad462(0x18a),_0x4b046a=>{const _0x430bfb=_0x3ad462;_0x4b046a['target'][_0x430bfb(0x189)](_0x430bfb(0x1bc))&&(this[_0x430bfb(0x1e8)](),this[_0x430bfb(0x17b)](this[_0x430bfb(0x1ad)])),_0x4b046a[_0x430bfb(0x19a)][_0x430bfb(0x189)]('.vgm-add-existing-btn')&&(this[_0x430bfb(0x1e8)](),this[_0x430bfb(0x208)](this[_0x430bfb(0x185)]));}),this[_0x3ad462(0x198)]['addEventListener'](_0x3ad462(0x18a),async _0x312097=>{const _0x47b6a1=_0x3ad462,_0x43d9f2=_0x312097[_0x47b6a1(0x19a)]['closest'](_0x47b6a1(0x205));if(!_0x43d9f2)return;const _0x182b9f=_0x43d9f2[_0x47b6a1(0x1e9)][_0x47b6a1(0x1c9)],_0x14ec6b=_0x43d9f2['dataset'][_0x47b6a1(0x1be)];try{_0x14ec6b==='remove'?await this[_0x47b6a1(0x1a3)](_0x182b9f):await this[_0x47b6a1(0x207)](_0x182b9f);}catch(_0x386ca2){console[_0x47b6a1(0x1c5)]('Failed\x20to\x20update\x20group:',_0x386ca2),Utils[_0x47b6a1(0x1a5)](_0x386ca2[_0x47b6a1(0x20d)]||_0x47b6a1(0x19f),_0x47b6a1(0x1c5));}}),this[_0x3ad462(0x198)][_0x3ad462(0x1e0)](_0x3ad462(0x1f9),_0xa1bd2f=>this[_0x3ad462(0x194)](_0xa1bd2f)),this[_0x3ad462(0x198)][_0x3ad462(0x1e0)]('dragend',_0x31c9ca=>this['handleDragEnd'](_0x31c9ca)),this[_0x3ad462(0x198)]['addEventListener'](_0x3ad462(0x18f),_0x3e30fe=>this[_0x3ad462(0x1aa)](_0x3e30fe)),this[_0x3ad462(0x198)][_0x3ad462(0x1e0)](_0x3ad462(0x1e3),_0x51160b=>this[_0x3ad462(0x1a6)](_0x51160b)),this['container']['addEventListener'](_0x3ad462(0x196),_0x5f12dd=>this[_0x3ad462(0x1ed)](_0x5f12dd));}[_0x466493(0x194)](_0x4edcd0){const _0x36ef7d=_0x466493,_0x180f68=_0x4edcd0[_0x36ef7d(0x19a)][_0x36ef7d(0x189)](_0x36ef7d(0x1d5));if(!_0x180f68)return;dragState[_0x36ef7d(0x1cc)]=_0x180f68[_0x36ef7d(0x1e9)][_0x36ef7d(0x1c9)],dragState[_0x36ef7d(0x1ff)]=_0x180f68,dragState[_0x36ef7d(0x1d9)]=_0x180f68[_0x36ef7d(0x1e9)]['isGrouped']===_0x36ef7d(0x1c6)?this[_0x36ef7d(0x185)]:null,dragState['isDragging']=!![],_0x180f68[_0x36ef7d(0x1a9)][_0x36ef7d(0x20a)](_0x36ef7d(0x20c)),_0x4edcd0[_0x36ef7d(0x1a8)]['effectAllowed']=_0x36ef7d(0x202),_0x4edcd0[_0x36ef7d(0x1a8)]['setData'](_0x36ef7d(0x1d8),_0x180f68[_0x36ef7d(0x1e9)][_0x36ef7d(0x1c9)]),this[_0x36ef7d(0x198)][_0x36ef7d(0x1a9)][_0x36ef7d(0x20a)](_0x36ef7d(0x178));}['handleDragEnd'](_0x1e04ad){const _0x2ef9ea=_0x466493,_0x9eeb62=_0x1e04ad[_0x2ef9ea(0x19a)][_0x2ef9ea(0x189)](_0x2ef9ea(0x1d5));_0x9eeb62&&_0x9eeb62['classList'][_0x2ef9ea(0x191)]('dragging'),this[_0x2ef9ea(0x198)][_0x2ef9ea(0x18d)]('.drag-over,\x20.drop-indicator')['forEach'](_0x5e2eb1=>{const _0x49444b=_0x2ef9ea;_0x5e2eb1['classList'][_0x49444b(0x191)]('drag-over','drop-indicator',_0x49444b(0x18e),'drop-after');}),this[_0x2ef9ea(0x198)]['classList'][_0x2ef9ea(0x191)](_0x2ef9ea(0x178)),dragState['isDragging']=![],dragState[_0x2ef9ea(0x1cc)]=null,dragState[_0x2ef9ea(0x1ff)]=null,dragState[_0x2ef9ea(0x1d9)]=null;}[_0x466493(0x1aa)](_0x395003){const _0x5a09b6=_0x466493;_0x395003[_0x5a09b6(0x1b1)](),_0x395003[_0x5a09b6(0x1a8)][_0x5a09b6(0x17e)]=_0x5a09b6(0x202);const _0x766f41=_0x395003['target'][_0x5a09b6(0x189)]('.vgm-drop-zone'),_0x51dc30=_0x395003[_0x5a09b6(0x19a)][_0x5a09b6(0x189)](_0x5a09b6(0x1d5));this[_0x5a09b6(0x198)][_0x5a09b6(0x18d)](_0x5a09b6(0x1bf))[_0x5a09b6(0x1f0)](_0x262124=>{const _0x2c93ed=_0x5a09b6;_0x262124[_0x2c93ed(0x1a9)]['toggle'](_0x2c93ed(0x1df),_0x262124===_0x766f41);});if(_0x51dc30&&_0x51dc30!==dragState[_0x5a09b6(0x1ff)]){const _0x32524=_0x51dc30[_0x5a09b6(0x18b)](),_0x23084d=_0x32524[_0x5a09b6(0x17c)]+_0x32524['height']/0x2,_0x276e42=_0x395003[_0x5a09b6(0x192)]<_0x23084d;this['container']['querySelectorAll'](_0x5a09b6(0x1d5))[_0x5a09b6(0x1f0)](_0x339f97=>{const _0x3e3bbf=_0x5a09b6;_0x339f97!==_0x51dc30&&_0x339f97[_0x3e3bbf(0x1a9)][_0x3e3bbf(0x191)](_0x3e3bbf(0x18e),_0x3e3bbf(0x1bd));}),_0x51dc30['classList']['toggle'](_0x5a09b6(0x18e),_0x276e42),_0x51dc30[_0x5a09b6(0x1a9)][_0x5a09b6(0x1b3)]('drop-after',!_0x276e42);}}[_0x466493(0x1a6)](_0x3279f3){const _0x2382ec=_0x466493,_0x2306e3=_0x3279f3[_0x2382ec(0x19a)][_0x2382ec(0x189)](_0x2382ec(0x1bf));_0x2306e3&&!_0x2306e3['contains'](_0x3279f3[_0x2382ec(0x1fe)])&&_0x2306e3['classList']['remove'](_0x2382ec(0x1df));}async['handleDrop'](_0x377803){const _0x20ca40=_0x466493;_0x377803['preventDefault']();const _0x33b355=_0x377803[_0x20ca40(0x19a)][_0x20ca40(0x189)](_0x20ca40(0x1bf)),_0x111607=_0x377803[_0x20ca40(0x19a)][_0x20ca40(0x189)]('.vgm-variant-card'),_0x2eba44=_0x377803[_0x20ca40(0x1a8)]['getData'](_0x20ca40(0x1d8));if(!_0x33b355||!_0x2eba44)return;this[_0x20ca40(0x198)][_0x20ca40(0x18d)](_0x20ca40(0x1fa))['forEach'](_0x2e338d=>{const _0x48938b=_0x20ca40;_0x2e338d[_0x48938b(0x1a9)]['remove'](_0x48938b(0x1df),_0x48938b(0x18e),_0x48938b(0x1bd));});const _0x44c1d3=_0x33b355['dataset']['zone'],_0x50b2f7=_0x44c1d3===_0x20ca40(0x181),_0x31b427=dragState[_0x20ca40(0x1d9)]===this['groupId'];try{if(_0x50b2f7&&!_0x31b427){let _0xaba077=this[_0x20ca40(0x1ad)][_0x20ca40(0x17a)](_0x16c138=>_0x16c138['groupId']===this[_0x20ca40(0x185)])[_0x20ca40(0x1e4)];if(_0x111607){const _0x2c0140=_0x111607[_0x20ca40(0x1e9)][_0x20ca40(0x1c9)],_0x230356=this[_0x20ca40(0x1ad)]['find'](_0x3c5ed0=>_0x3c5ed0[_0x20ca40(0x1c9)]===_0x2c0140);if(_0x230356?.[_0x20ca40(0x17d)]!==undefined){const _0x1f5b5c=_0x111607[_0x20ca40(0x18b)](),_0x22d414=_0x377803['clientY']<_0x1f5b5c[_0x20ca40(0x17c)]+_0x1f5b5c[_0x20ca40(0x19c)]/0x2;_0xaba077=_0x230356[_0x20ca40(0x17d)]+(_0x22d414?0x0:0x1);}}await this[_0x20ca40(0x207)](_0x2eba44,_0xaba077);}else{if(!_0x50b2f7&&_0x31b427)await this[_0x20ca40(0x1a3)](_0x2eba44);else _0x50b2f7&&_0x31b427&&_0x111607&&await this[_0x20ca40(0x1f5)](_0x2eba44,_0x111607,_0x377803[_0x20ca40(0x192)]);}}catch(_0x344a5e){console['error']('Drop\x20operation\x20failed:',_0x344a5e),Utils[_0x20ca40(0x1a5)](_0x344a5e[_0x20ca40(0x20d)]||'Failed\x20to\x20move\x20variant',_0x20ca40(0x1c5));}}async[_0x466493(0x207)](_0xc7761d,_0x53773a){const _0x50bb32=_0x466493,_0x4b6f14=this['tasks'][_0x50bb32(0x1b5)](_0x594e16=>_0x594e16['taskId']===_0xc7761d);if(!_0x4b6f14)return;_0x53773a===undefined&&(_0x53773a=this[_0x50bb32(0x1ad)][_0x50bb32(0x17a)](_0x3315ed=>_0x3315ed[_0x50bb32(0x185)]===this[_0x50bb32(0x185)])[_0x50bb32(0x1e4)]),!this[_0x50bb32(0x185)]&&(this[_0x50bb32(0x185)]=API[_0x50bb32(0x1db)](),await API[_0x50bb32(0x1d2)]({'groupId':this['groupId']})),await API['updateTaskGroup'](_0xc7761d,this[_0x50bb32(0x185)],_0x53773a),_0x4b6f14[_0x50bb32(0x185)]=this[_0x50bb32(0x185)],_0x4b6f14[_0x50bb32(0x17d)]=_0x53773a,this[_0x50bb32(0x1b9)](),this[_0x50bb32(0x17b)](this[_0x50bb32(0x1ad)]);}async[_0x466493(0x1a3)](_0x5a564d){const _0x15f1d1=_0x466493,_0x5f198a=this[_0x15f1d1(0x1ad)][_0x15f1d1(0x1b5)](_0x62f5fd=>_0x62f5fd['taskId']===_0x5a564d);if(!_0x5f198a)return;await API[_0x15f1d1(0x1c3)](_0x5a564d),_0x5f198a['groupId']=null,_0x5f198a[_0x15f1d1(0x17d)]=null,this[_0x15f1d1(0x1b9)](),this[_0x15f1d1(0x17b)](this[_0x15f1d1(0x1ad)]);}async[_0x466493(0x1f5)](_0x5e17c9,_0x757329,_0x1f178a){const _0x14f584=_0x466493,_0x2173f6=this[_0x14f584(0x1ad)]['find'](_0x3fcec0=>_0x3fcec0['taskId']===_0x5e17c9),_0x262fdd=_0x757329[_0x14f584(0x1e9)][_0x14f584(0x1c9)],_0x312553=this['tasks'][_0x14f584(0x1b5)](_0x7e97e1=>_0x7e97e1[_0x14f584(0x1c9)]===_0x262fdd);if(!_0x2173f6||!_0x312553||_0x2173f6[_0x14f584(0x1c9)]===_0x312553[_0x14f584(0x1c9)])return;const _0x55e4a0=_0x757329[_0x14f584(0x18b)](),_0x5a2d2a=_0x1f178a<_0x55e4a0[_0x14f584(0x17c)]+_0x55e4a0[_0x14f584(0x19c)]/0x2;let _0x190c5c=_0x312553[_0x14f584(0x17d)]??0x0;if(!_0x5a2d2a)_0x190c5c++;if((_0x2173f6[_0x14f584(0x17d)]??0x0)<(_0x312553[_0x14f584(0x17d)]??0x0))_0x190c5c--;if(_0x190c5c===_0x2173f6['groupIndex'])return;await API[_0x14f584(0x1fc)](_0x5e17c9,this[_0x14f584(0x185)],_0x190c5c);const _0x59be2c=this[_0x14f584(0x1ad)][_0x14f584(0x17a)](_0x420b81=>_0x420b81[_0x14f584(0x185)]===this['groupId'])['sort']((_0x4503ec,_0x1e34c9)=>(_0x4503ec['groupIndex']??0x0)-(_0x1e34c9['groupIndex']??0x0)),_0x46642e=_0x59be2c[_0x14f584(0x179)](_0xc22a5e=>_0xc22a5e[_0x14f584(0x1c9)]===_0x5e17c9);_0x46642e!==-0x1&&_0x59be2c[_0x14f584(0x186)](_0x46642e,0x1),_0x59be2c['splice'](_0x190c5c,0x0,_0x2173f6),_0x59be2c[_0x14f584(0x1f0)]((_0xb368b2,_0x15ad95)=>{const _0x5ca05e=_0x14f584;_0xb368b2[_0x5ca05e(0x17d)]=_0x15ad95;}),this[_0x14f584(0x1b9)](),this[_0x14f584(0x17b)](this[_0x14f584(0x1ad)]);}}export function initializeTabDragDrop(_0x19ec5d,_0x4859b5,_0x19391e,_0x1cd8cd={}){const _0x34e765=_0x466493;if(!_0x19ec5d)return;const {onReorder:_0x2fd6cd,onRemove:_0x3b653f}=_0x1cd8cd,_0x1d5b0f=_0x19ec5d[_0x34e765(0x18d)]('.task-tab');_0x1d5b0f[_0x34e765(0x1f0)]((_0x1f5d3e,_0x383e41)=>{const _0x3737ea=_0x34e765;_0x1f5d3e[_0x3737ea(0x1a0)](_0x3737ea(0x20b),_0x3737ea(0x1c6)),_0x1f5d3e['dataset'][_0x3737ea(0x1dc)]=_0x383e41,_0x1f5d3e[_0x3737ea(0x1e0)](_0x3737ea(0x1f9),_0xc76d35=>{const _0x4d5a7e=_0x3737ea;_0xc76d35[_0x4d5a7e(0x1a8)][_0x4d5a7e(0x17f)]='move',_0xc76d35[_0x4d5a7e(0x1a8)]['setData']('text/plain',_0x1f5d3e['dataset'][_0x4d5a7e(0x1c9)]),_0x1f5d3e['classList']['add'](_0x4d5a7e(0x20c)),_0x19ec5d[_0x4d5a7e(0x1a9)]['add']('is-dragging');}),_0x1f5d3e['addEventListener'](_0x3737ea(0x1c8),()=>{const _0x28262f=_0x3737ea;_0x1f5d3e[_0x28262f(0x1a9)]['remove'](_0x28262f(0x20c)),_0x19ec5d[_0x28262f(0x1a9)]['remove'](_0x28262f(0x178)),_0x19ec5d[_0x28262f(0x18d)](_0x28262f(0x1fd))[_0x28262f(0x1f0)](_0x2c59fc=>{const _0x33fdc9=_0x28262f;_0x2c59fc['classList'][_0x33fdc9(0x191)]('drop-indicator',_0x33fdc9(0x18e),'drop-after');});}),_0x1f5d3e[_0x3737ea(0x1e0)]('dragover',_0x11ad43=>{const _0x11cdbe=_0x3737ea;_0x11ad43[_0x11cdbe(0x1b1)](),_0x11ad43[_0x11cdbe(0x1a8)][_0x11cdbe(0x17e)]='move';if(_0x1f5d3e['classList'][_0x11cdbe(0x1d1)](_0x11cdbe(0x20c)))return;const _0x5ac83a=_0x1f5d3e[_0x11cdbe(0x18b)](),_0x15647a=_0x5ac83a[_0x11cdbe(0x180)]+_0x5ac83a[_0x11cdbe(0x182)]/0x2,_0x49bf4f=_0x11ad43[_0x11cdbe(0x1cd)]<_0x15647a;_0x1d5b0f[_0x11cdbe(0x1f0)](_0x387e63=>_0x387e63[_0x11cdbe(0x1a9)][_0x11cdbe(0x191)]('drop-before','drop-after')),_0x1f5d3e[_0x11cdbe(0x1a9)][_0x11cdbe(0x20a)](_0x49bf4f?_0x11cdbe(0x18e):_0x11cdbe(0x1bd));}),_0x1f5d3e[_0x3737ea(0x1e0)](_0x3737ea(0x1e3),()=>{const _0x1a97a0=_0x3737ea;_0x1f5d3e[_0x1a97a0(0x1a9)][_0x1a97a0(0x191)](_0x1a97a0(0x18e),'drop-after');}),_0x1f5d3e['addEventListener'](_0x3737ea(0x196),async _0x441244=>{const _0x13dad6=_0x3737ea;_0x441244[_0x13dad6(0x1b1)]();const _0x578923=_0x441244[_0x13dad6(0x1a8)]['getData'](_0x13dad6(0x1d8)),_0x366bd5=_0x1f5d3e[_0x13dad6(0x1e9)][_0x13dad6(0x1c9)];if(_0x578923===_0x366bd5)return;const _0x17e2a0=_0x1f5d3e[_0x13dad6(0x18b)](),_0x5b03ca=_0x441244[_0x13dad6(0x1cd)]<_0x17e2a0[_0x13dad6(0x180)]+_0x17e2a0[_0x13dad6(0x182)]/0x2;_0x1f5d3e[_0x13dad6(0x1a9)][_0x13dad6(0x191)](_0x13dad6(0x18e),_0x13dad6(0x1bd)),_0x2fd6cd&&await _0x2fd6cd(_0x578923,_0x366bd5,_0x5b03ca);});});const _0x2ce484=document['createElement'](_0x34e765(0x1ef));return _0x2ce484[_0x34e765(0x1d0)]=_0x34e765(0x1c7),_0x2ce484[_0x34e765(0x1c2)]=_0x34e765(0x1ab),_0x2ce484[_0x34e765(0x1c4)]['display']=_0x34e765(0x1f4),_0x2ce484[_0x34e765(0x1e0)](_0x34e765(0x18f),_0xc0ca2f=>{const _0x265289=_0x34e765;_0xc0ca2f[_0x265289(0x1b1)](),_0x2ce484[_0x265289(0x1a9)]['add'](_0x265289(0x1df));}),_0x2ce484[_0x34e765(0x1e0)](_0x34e765(0x1e3),()=>{const _0x76425f=_0x34e765;_0x2ce484[_0x76425f(0x1a9)][_0x76425f(0x191)](_0x76425f(0x1df));}),_0x2ce484[_0x34e765(0x1e0)]('drop',async _0x25f20b=>{const _0x36f88e=_0x34e765;_0x25f20b[_0x36f88e(0x1b1)](),_0x2ce484[_0x36f88e(0x1a9)]['remove']('drag-over');const _0x25932c=_0x25f20b['dataTransfer'][_0x36f88e(0x1b4)]('text/plain');_0x3b653f&&await _0x3b653f(_0x25932c);}),_0x19ec5d['addEventListener'](_0x34e765(0x1f9),()=>{const _0x37da35=_0x34e765;_0x4859b5[_0x37da35(0x1e4)]>0x1&&(_0x2ce484[_0x37da35(0x1c4)][_0x37da35(0x175)]=_0x37da35(0x204));}),_0x19ec5d[_0x34e765(0x1e0)]('dragend',()=>{const _0x583fbe=_0x34e765;_0x2ce484['style']['display']=_0x583fbe(0x1f4);}),_0x19ec5d[_0x34e765(0x1dd)](_0x2ce484),{'destroy':()=>{const _0x139ff0=_0x34e765;_0x2ce484[_0x139ff0(0x191)]();}};}function _0x1209(_0x626d5d,_0x4c7ea2){_0x626d5d=_0x626d5d-0x173;const _0x10f7eb=_0x10f7();let _0x12090f=_0x10f7eb[_0x626d5d];if(_0x1209['buHbsu']===undefined){var _0xbae95e=function(_0x25014f){const _0xbc4c39='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29d6e2='',_0x47f18a='';for(let _0x3df143=0x0,_0x34501d,_0x196c4d,_0x5c839b=0x0;_0x196c4d=_0x25014f['charAt'](_0x5c839b++);~_0x196c4d&&(_0x34501d=_0x3df143%0x4?_0x34501d*0x40+_0x196c4d:_0x196c4d,_0x3df143++%0x4)?_0x29d6e2+=String['fromCharCode'](0xff&_0x34501d>>(-0x2*_0x3df143&0x6)):0x0){_0x196c4d=_0xbc4c39['indexOf'](_0x196c4d);}for(let _0x545294=0x0,_0xe50749=_0x29d6e2['length'];_0x545294<_0xe50749;_0x545294++){_0x47f18a+='%'+('00'+_0x29d6e2['charCodeAt'](_0x545294)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x47f18a);};_0x1209['mJHcuX']=_0xbae95e,_0x1209['olHfLj']={},_0x1209['buHbsu']=!![];}const _0x21ce4d=_0x10f7eb[0x0],_0x384205=_0x626d5d+_0x21ce4d,_0x1637f1=_0x1209['olHfLj'][_0x384205];return!_0x1637f1?(_0x12090f=_0x1209['mJHcuX'](_0x12090f),_0x1209['olHfLj'][_0x384205]=_0x12090f):_0x12090f=_0x1637f1,_0x12090f;}export default VariantGroupingManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profoundlogic/coderflow-server",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "AI Coder Server - Manages Docker containers for AI agent task execution",
5
5
  "main": "dist/start.js",
6
6
  "type": "module",
@@ -15,7 +15,8 @@
15
15
  "prepublishOnly": "npm run build",
16
16
  "test": "NODE_ENV=test node --test tests/*.test.js",
17
17
  "test:integration": "NODE_ENV=test node --test tests/integration/*.test.js",
18
- "test:all": "NODE_ENV=test node --test tests/**/*.test.js"
18
+ "test:all": "NODE_ENV=test node --test tests/**/*.test.js",
19
+ "test:ui": "npm install && NODE_ENV=test npx playwright test"
19
20
  },
20
21
  "files": [
21
22
  "dist/"
@@ -37,7 +38,8 @@
37
38
  "license": "SEE LICENSE IN LICENSE.txt",
38
39
  "homepage": "https://coderflow.ai",
39
40
  "devDependencies": {
40
- "javascript-obfuscator": "^4.2.2"
41
+ "javascript-obfuscator": "^4.2.2",
42
+ "playwright": "^1.57.0"
41
43
  },
42
44
  "dependencies": {
43
45
  "bcrypt": "^6.0.0",
@@ -55,6 +57,7 @@
55
57
  "mime-types": "^2.1.35",
56
58
  "minimatch": "^10.0.1",
57
59
  "multer": "^2.0.2",
60
+ "node-cron": "^4.2.1",
58
61
  "nodemailer": "^7.0.10",
59
62
  "openid-client": "^6.8.1",
60
63
  "sharp": "^0.34.5",