@mehmetsagir/git-ai 0.0.19 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +18 -16
- package/dist/git.js.map +1 -1
- package/dist/stash.d.ts.map +1 -1
- package/dist/stash.js +83 -25
- package/dist/stash.js.map +1 -1
- package/package.json +1 -1
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMnC,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2B3D;AAeD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAoBnD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA8C1D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D"}
|
package/dist/git.js
CHANGED
|
@@ -51,10 +51,12 @@ exports.applyStash = applyStash;
|
|
|
51
51
|
exports.dropStash = dropStash;
|
|
52
52
|
const simple_git_1 = __importDefault(require("simple-git"));
|
|
53
53
|
const path = __importStar(require("path"));
|
|
54
|
-
|
|
54
|
+
function getGit() {
|
|
55
|
+
return (0, simple_git_1.default)(process.cwd());
|
|
56
|
+
}
|
|
55
57
|
async function isGitRepository() {
|
|
56
58
|
try {
|
|
57
|
-
await
|
|
59
|
+
await getGit().status();
|
|
58
60
|
return true;
|
|
59
61
|
}
|
|
60
62
|
catch {
|
|
@@ -62,11 +64,11 @@ async function isGitRepository() {
|
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
66
|
async function hasChanges() {
|
|
65
|
-
const status = await
|
|
67
|
+
const status = await getGit().status();
|
|
66
68
|
return status.files.length > 0;
|
|
67
69
|
}
|
|
68
70
|
async function getChangedFiles() {
|
|
69
|
-
const status = await
|
|
71
|
+
const status = await getGit().status();
|
|
70
72
|
const files = [];
|
|
71
73
|
const seen = new Set();
|
|
72
74
|
for (const f of status.files) {
|
|
@@ -106,27 +108,27 @@ function isBinaryFile(filePath) {
|
|
|
106
108
|
async function stageFiles(files) {
|
|
107
109
|
if (files.length === 0)
|
|
108
110
|
return;
|
|
109
|
-
await
|
|
111
|
+
await getGit().add(files);
|
|
110
112
|
}
|
|
111
113
|
async function unstageAll() {
|
|
112
114
|
try {
|
|
113
|
-
await
|
|
115
|
+
await getGit().reset(["HEAD"]);
|
|
114
116
|
}
|
|
115
117
|
catch {
|
|
116
118
|
// Ignore if nothing staged
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
async function createCommit(message) {
|
|
120
|
-
await
|
|
122
|
+
await getGit().commit(message);
|
|
121
123
|
}
|
|
122
124
|
async function getStagedFiles() {
|
|
123
|
-
const status = await
|
|
125
|
+
const status = await getGit().status();
|
|
124
126
|
return status.staged;
|
|
125
127
|
}
|
|
126
128
|
async function getFullDiff() {
|
|
127
129
|
let diff = "";
|
|
128
130
|
try {
|
|
129
|
-
const unstaged = await
|
|
131
|
+
const unstaged = await getGit().diff();
|
|
130
132
|
if (unstaged)
|
|
131
133
|
diff = unstaged;
|
|
132
134
|
}
|
|
@@ -134,7 +136,7 @@ async function getFullDiff() {
|
|
|
134
136
|
// Ignore
|
|
135
137
|
}
|
|
136
138
|
try {
|
|
137
|
-
const staged = await
|
|
139
|
+
const staged = await getGit().diff(["--cached"]);
|
|
138
140
|
if (staged) {
|
|
139
141
|
diff = diff ? diff + "\n" + staged : staged;
|
|
140
142
|
}
|
|
@@ -147,7 +149,7 @@ async function getFullDiff() {
|
|
|
147
149
|
async function getStashList() {
|
|
148
150
|
try {
|
|
149
151
|
// Use git.raw for better compatibility
|
|
150
|
-
const result = await
|
|
152
|
+
const result = await getGit().raw(["stash", "list", "--format=%H|%s|%ci"]);
|
|
151
153
|
if (!result || !result.trim())
|
|
152
154
|
return [];
|
|
153
155
|
const lines = result.trim().split("\n");
|
|
@@ -167,7 +169,7 @@ async function getStashList() {
|
|
|
167
169
|
catch (err) {
|
|
168
170
|
// Fallback: try without format
|
|
169
171
|
try {
|
|
170
|
-
const result = await
|
|
172
|
+
const result = await getGit().raw(["stash", "list"]);
|
|
171
173
|
if (!result || !result.trim())
|
|
172
174
|
return [];
|
|
173
175
|
const lines = result.trim().split("\n");
|
|
@@ -193,7 +195,7 @@ async function getStashList() {
|
|
|
193
195
|
}
|
|
194
196
|
async function getStashDiff(index) {
|
|
195
197
|
try {
|
|
196
|
-
const result = await
|
|
198
|
+
const result = await getGit().raw(["stash", "show", "-p", `stash@{${index}}`]);
|
|
197
199
|
return result || "";
|
|
198
200
|
}
|
|
199
201
|
catch {
|
|
@@ -202,7 +204,7 @@ async function getStashDiff(index) {
|
|
|
202
204
|
}
|
|
203
205
|
async function getStashFiles(index) {
|
|
204
206
|
try {
|
|
205
|
-
const result = await
|
|
207
|
+
const result = await getGit().raw(["stash", "show", "--name-only", `stash@{${index}}`]);
|
|
206
208
|
if (!result)
|
|
207
209
|
return [];
|
|
208
210
|
return result.trim().split("\n").filter(f => f.trim());
|
|
@@ -212,9 +214,9 @@ async function getStashFiles(index) {
|
|
|
212
214
|
}
|
|
213
215
|
}
|
|
214
216
|
async function applyStash(index) {
|
|
215
|
-
await
|
|
217
|
+
await getGit().raw(["stash", "apply", `stash@{${index}}`]);
|
|
216
218
|
}
|
|
217
219
|
async function dropStash(index) {
|
|
218
|
-
await
|
|
220
|
+
await getGit().raw(["stash", "drop", `stash@{${index}}`]);
|
|
219
221
|
}
|
|
220
222
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
package/dist/stash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAkvBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+GpD"}
|
package/dist/stash.js
CHANGED
|
@@ -42,12 +42,20 @@ const child_process_1 = require("child_process");
|
|
|
42
42
|
const chalk_1 = __importDefault(require("chalk"));
|
|
43
43
|
const git = __importStar(require("./git"));
|
|
44
44
|
const PORT = 3847;
|
|
45
|
+
function safeJsonEmbed(obj) {
|
|
46
|
+
return JSON.stringify(obj)
|
|
47
|
+
.replace(/</g, '\\u003c')
|
|
48
|
+
.replace(/>/g, '\\u003e')
|
|
49
|
+
.replace(/&/g, '\\u0026');
|
|
50
|
+
}
|
|
45
51
|
function getHtml(data) {
|
|
46
|
-
const stashesJson = JSON.stringify(data.stashes);
|
|
47
52
|
const diffsJson = {};
|
|
48
53
|
const filesJson = {};
|
|
49
54
|
data.diffs.forEach((v, k) => { diffsJson[k] = v; });
|
|
50
55
|
data.files.forEach((v, k) => { filesJson[k] = v; });
|
|
56
|
+
const stashesJsonSafe = safeJsonEmbed(data.stashes);
|
|
57
|
+
const diffsJsonSafe = safeJsonEmbed(diffsJson);
|
|
58
|
+
const filesJsonSafe = safeJsonEmbed(filesJson);
|
|
51
59
|
return `<!DOCTYPE html>
|
|
52
60
|
<html>
|
|
53
61
|
<head>
|
|
@@ -85,30 +93,33 @@ function getHtml(data) {
|
|
|
85
93
|
align-items: center;
|
|
86
94
|
gap: 8px;
|
|
87
95
|
}
|
|
88
|
-
.
|
|
96
|
+
.header-nav {
|
|
89
97
|
display: flex;
|
|
90
98
|
align-items: center;
|
|
91
|
-
gap:
|
|
99
|
+
gap: 12px;
|
|
100
|
+
width: 100%;
|
|
101
|
+
}
|
|
102
|
+
.back-btn {
|
|
103
|
+
display: inline-flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
gap: 4px;
|
|
92
106
|
background: none;
|
|
93
107
|
border: none;
|
|
94
108
|
color: #58a6ff;
|
|
95
109
|
cursor: pointer;
|
|
96
|
-
font-size:
|
|
97
|
-
padding:
|
|
98
|
-
|
|
99
|
-
transition: background 0.1s;
|
|
110
|
+
font-size: 13px;
|
|
111
|
+
padding: 0;
|
|
112
|
+
transition: opacity 0.15s;
|
|
100
113
|
}
|
|
101
|
-
.back-btn:hover {
|
|
114
|
+
.back-btn:hover { opacity: 0.8; }
|
|
102
115
|
.back-btn svg {
|
|
103
|
-
width:
|
|
104
|
-
height:
|
|
116
|
+
width: 16px;
|
|
117
|
+
height: 16px;
|
|
105
118
|
}
|
|
106
119
|
.stash-title {
|
|
107
120
|
color: #4ec9b0;
|
|
108
|
-
font-size:
|
|
121
|
+
font-size: 13px;
|
|
109
122
|
font-weight: 500;
|
|
110
|
-
text-transform: none;
|
|
111
|
-
letter-spacing: normal;
|
|
112
123
|
}
|
|
113
124
|
.sidebar-footer {
|
|
114
125
|
padding: 14px 16px;
|
|
@@ -184,14 +195,14 @@ function getHtml(data) {
|
|
|
184
195
|
}
|
|
185
196
|
.toast {
|
|
186
197
|
position: fixed;
|
|
187
|
-
|
|
198
|
+
top: 20px;
|
|
188
199
|
right: 20px;
|
|
189
200
|
padding: 12px 20px;
|
|
190
201
|
border-radius: 6px;
|
|
191
202
|
font-size: 13px;
|
|
192
203
|
color: #fff;
|
|
193
204
|
opacity: 0;
|
|
194
|
-
transform: translateY(10px);
|
|
205
|
+
transform: translateY(-10px);
|
|
195
206
|
transition: opacity 0.2s, transform 0.2s;
|
|
196
207
|
z-index: 1000;
|
|
197
208
|
}
|
|
@@ -201,6 +212,36 @@ function getHtml(data) {
|
|
|
201
212
|
}
|
|
202
213
|
.toast.success { background: #238636; }
|
|
203
214
|
.toast.error { background: #da3633; }
|
|
215
|
+
.loader-overlay {
|
|
216
|
+
position: fixed;
|
|
217
|
+
top: 0;
|
|
218
|
+
left: 0;
|
|
219
|
+
right: 0;
|
|
220
|
+
bottom: 0;
|
|
221
|
+
background: rgba(0, 0, 0, 0.5);
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
z-index: 999;
|
|
226
|
+
opacity: 0;
|
|
227
|
+
visibility: hidden;
|
|
228
|
+
transition: opacity 0.2s, visibility 0.2s;
|
|
229
|
+
}
|
|
230
|
+
.loader-overlay.show {
|
|
231
|
+
opacity: 1;
|
|
232
|
+
visibility: visible;
|
|
233
|
+
}
|
|
234
|
+
.loader {
|
|
235
|
+
width: 40px;
|
|
236
|
+
height: 40px;
|
|
237
|
+
border: 3px solid #3c3c3c;
|
|
238
|
+
border-top-color: #58a6ff;
|
|
239
|
+
border-radius: 50%;
|
|
240
|
+
animation: spin 0.8s linear infinite;
|
|
241
|
+
}
|
|
242
|
+
@keyframes spin {
|
|
243
|
+
to { transform: rotate(360deg); }
|
|
244
|
+
}
|
|
204
245
|
.sidebar-content {
|
|
205
246
|
flex: 1;
|
|
206
247
|
overflow-y: auto;
|
|
@@ -410,11 +451,14 @@ function getHtml(data) {
|
|
|
410
451
|
</div>
|
|
411
452
|
</div>
|
|
412
453
|
<div class="toast" id="toast"></div>
|
|
454
|
+
<div class="loader-overlay" id="loader">
|
|
455
|
+
<div class="loader"></div>
|
|
456
|
+
</div>
|
|
413
457
|
|
|
414
458
|
<script>
|
|
415
|
-
let stashes = ${
|
|
416
|
-
let diffs = ${
|
|
417
|
-
let files = ${
|
|
459
|
+
let stashes = ${stashesJsonSafe};
|
|
460
|
+
let diffs = ${diffsJsonSafe};
|
|
461
|
+
let files = ${filesJsonSafe};
|
|
418
462
|
let isLoading = false;
|
|
419
463
|
|
|
420
464
|
let currentView = 'list'; // 'list' or 'detail'
|
|
@@ -474,13 +518,15 @@ function getHtml(data) {
|
|
|
474
518
|
|
|
475
519
|
// Update header with back button
|
|
476
520
|
document.getElementById('sidebarHeader').innerHTML = \`
|
|
477
|
-
<
|
|
478
|
-
<
|
|
479
|
-
<
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
521
|
+
<div class="header-nav">
|
|
522
|
+
<button class="back-btn" onclick="renderStashList()">
|
|
523
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
524
|
+
<path d="M15 18l-6-6 6-6"/>
|
|
525
|
+
</svg>
|
|
526
|
+
Back
|
|
527
|
+
</button>
|
|
528
|
+
<span class="stash-title">stash@{\${index}}</span>
|
|
529
|
+
</div>
|
|
484
530
|
\`;
|
|
485
531
|
|
|
486
532
|
// Render file list with action buttons
|
|
@@ -645,6 +691,14 @@ function getHtml(data) {
|
|
|
645
691
|
setTimeout(() => { toast.classList.remove('show'); }, 3000);
|
|
646
692
|
}
|
|
647
693
|
|
|
694
|
+
function showLoader() {
|
|
695
|
+
document.getElementById('loader').classList.add('show');
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
function hideLoader() {
|
|
699
|
+
document.getElementById('loader').classList.remove('show');
|
|
700
|
+
}
|
|
701
|
+
|
|
648
702
|
async function refreshData() {
|
|
649
703
|
const res = await fetch('/api/data');
|
|
650
704
|
const data = await res.json();
|
|
@@ -656,6 +710,7 @@ function getHtml(data) {
|
|
|
656
710
|
async function applyStash(index) {
|
|
657
711
|
if (isLoading) return;
|
|
658
712
|
isLoading = true;
|
|
713
|
+
showLoader();
|
|
659
714
|
|
|
660
715
|
try {
|
|
661
716
|
const res = await fetch('/api/apply/' + index, { method: 'POST' });
|
|
@@ -672,6 +727,7 @@ function getHtml(data) {
|
|
|
672
727
|
showToast('Failed to apply stash', 'error');
|
|
673
728
|
}
|
|
674
729
|
|
|
730
|
+
hideLoader();
|
|
675
731
|
isLoading = false;
|
|
676
732
|
}
|
|
677
733
|
|
|
@@ -680,6 +736,7 @@ function getHtml(data) {
|
|
|
680
736
|
if (!confirm('Are you sure you want to delete this stash? This cannot be undone.')) return;
|
|
681
737
|
|
|
682
738
|
isLoading = true;
|
|
739
|
+
showLoader();
|
|
683
740
|
|
|
684
741
|
try {
|
|
685
742
|
const res = await fetch('/api/drop/' + index, { method: 'POST' });
|
|
@@ -696,6 +753,7 @@ function getHtml(data) {
|
|
|
696
753
|
showToast('Failed to delete stash', 'error');
|
|
697
754
|
}
|
|
698
755
|
|
|
756
|
+
hideLoader();
|
|
699
757
|
isLoading = false;
|
|
700
758
|
}
|
|
701
759
|
|
package/dist/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkvBA,wCA+GC;AAj2BD,2CAA6B;AAC7B,iDAAqC;AACrC,kDAA0B;AAC1B,2CAA6B;AAE7B,MAAM,IAAI,GAAG,IAAI,CAAC;AASlB,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,IAAe;IAC9B,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,SAAS,GAA6B,EAAE,CAAC;IAE/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAE/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAgZW,eAAe;kBACjB,aAAa;kBACb,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+SvB,CAAC;AACT,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;QACvC,CAAC,CAAC,SAAS,GAAG,GAAG;QACjB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,UAAU,GAAG,GAAG;YAClB,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC;IAE1B,IAAA,oBAAI,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QAChB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;IAEhE,IAAI,IAAI,GAAc,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEhD,KAAK,UAAU,aAAa;QAC1B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE7C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAE3B,mBAAmB;QACnB,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM,aAAa,EAAE,CAAC;gBACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM,aAAa,EAAE,CAAC;gBACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAChD,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,MAAM,SAAS,GAA6B,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QAChD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,oBAAoB,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|