@social-mail/social-mail-web-server 1.11.18 → 1.11.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/server/model/events/MailboxContactEvents.d.ts +1 -0
- package/dist/server/model/events/MailboxContactEvents.d.ts.map +1 -1
- package/dist/server/model/events/MailboxContactEvents.js +21 -30
- package/dist/server/model/events/MailboxContactEvents.js.map +1 -1
- package/dist/server/services/mailboxes/MailboxFolderService.d.ts +1 -0
- package/dist/server/services/mailboxes/MailboxFolderService.d.ts.map +1 -1
- package/dist/server/services/mailboxes/MailboxFolderService.js +25 -0
- package/dist/server/services/mailboxes/MailboxFolderService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/model/events/MailboxContactEvents.ts +24 -34
- package/src/server/services/mailboxes/MailboxFolderService.ts +29 -0
|
@@ -6,6 +6,7 @@ import { ForeignKeyFilter } from "@entity-access/entity-access/dist/model/events
|
|
|
6
6
|
export default class MailboxContactEvents extends AuthenticatedEvents<MailboxContact> {
|
|
7
7
|
private eas;
|
|
8
8
|
private ts;
|
|
9
|
+
private mfs;
|
|
9
10
|
filter(query: IEntityQuery<MailboxContact>): IEntityQuery<MailboxContact>;
|
|
10
11
|
modify(query: IEntityQuery<MailboxContact>): IEntityQuery<MailboxContact>;
|
|
11
12
|
beforeInsert(entity: MailboxContact, entry: ChangeEntry<MailboxContact>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailboxContactEvents.d.ts","sourceRoot":"","sources":["../../../../src/server/model/events/MailboxContactEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAC/F,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,gEAAgE,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"MailboxContactEvents.d.ts","sourceRoot":"","sources":["../../../../src/server/model/events/MailboxContactEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAC/F,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,gEAAgE,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;AASlG,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,mBAAmB,CAAC,cAAc,CAAC;IAGjF,OAAO,CAAC,GAAG,CAAsB;IAGjC,OAAO,CAAC,EAAE,CAAa;IAGvB,OAAO,CAAC,GAAG,CAAuB;IAElC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC;IAazE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC;IAInE,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC;IAc7E,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC;IAM1D,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC;IAuKvE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC;CAiB/E"}
|
|
@@ -16,6 +16,7 @@ import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
|
16
16
|
import TagService from "../../services/tags/TagService.js";
|
|
17
17
|
import SendLibraryContentWorkflow from "../../workflows/channel/library/SendLibraryContentWorkflow.js";
|
|
18
18
|
import { AppWorkflowContext } from "../../workflows/AppWorkflowContext.js";
|
|
19
|
+
import MailboxFolderService from "../../services/mailboxes/MailboxFolderService.js";
|
|
19
20
|
export default class MailboxContactEvents extends AuthenticatedEvents {
|
|
20
21
|
filter(query) {
|
|
21
22
|
if (this.verify) {
|
|
@@ -109,14 +110,8 @@ export default class MailboxContactEvents extends AuthenticatedEvents {
|
|
|
109
110
|
if (entry.isModified("folderTagID")) {
|
|
110
111
|
tagUpdated = true;
|
|
111
112
|
const oldID = entry.getChange("folderTagID").oldValue;
|
|
112
|
-
await
|
|
113
|
-
|
|
114
|
-
count: Sql.math.max(0, x.count - 1)
|
|
115
|
-
}));
|
|
116
|
-
await db.mailboxFolders.where({ mailboxID, tagID: entity.folderTagID }, (x, p) => x.mailboxID === p.mailboxID && x.tagID === p.tagID)
|
|
117
|
-
.update((x) => ({
|
|
118
|
-
count: x.count + 1
|
|
119
|
-
}));
|
|
113
|
+
await this.mfs.incrementFolderCount(mailboxID, oldID, -1);
|
|
114
|
+
await this.mfs.incrementFolderCount(mailboxID, entity.folderTagID, 1);
|
|
120
115
|
const ts = ServiceProvider.resolve(this, TagService);
|
|
121
116
|
const spam = await ts.getSystemTagID("Spam");
|
|
122
117
|
const newRequest = await ts.getSystemTagID("New");
|
|
@@ -130,31 +125,28 @@ export default class MailboxContactEvents extends AuthenticatedEvents {
|
|
|
130
125
|
if (modifiedBlocked || (!tagUpdated && (entry.isModified("spam") || entry.isModified("newRequest")))) {
|
|
131
126
|
// update tag folder...
|
|
132
127
|
// only if older folder is one of the system folder...
|
|
128
|
+
if (entity.blocked) {
|
|
129
|
+
entity.newRequest = false;
|
|
130
|
+
entity.spam = false;
|
|
131
|
+
}
|
|
132
|
+
if (entity.spam) {
|
|
133
|
+
entity.newRequest = false;
|
|
134
|
+
}
|
|
133
135
|
const ts = ServiceProvider.resolve(this, TagService);
|
|
134
136
|
const systemIDs = await ts.getSystemTagIDs(["Contacts", "New", "Spam", "Blocked"]);
|
|
135
137
|
if (modifiedBlocked || systemIDs.includes(entity.folderTagID) || entity.newRequest) {
|
|
136
138
|
const oldID = entity.folderTagID;
|
|
137
139
|
const tagID = await ts.getSystemTagID(entity.spam
|
|
138
140
|
? "Spam"
|
|
139
|
-
: entity.
|
|
140
|
-
? "
|
|
141
|
-
: entity.
|
|
142
|
-
? "
|
|
141
|
+
: entity.blocked
|
|
142
|
+
? "Blocked"
|
|
143
|
+
: entity.newRequest
|
|
144
|
+
? "New"
|
|
143
145
|
: "Contacts");
|
|
144
146
|
entity.folderTagID = tagID;
|
|
145
147
|
if (tagID !== oldID) {
|
|
146
|
-
await
|
|
147
|
-
|
|
148
|
-
.update((x) => ({
|
|
149
|
-
count: Sql.math.max(0, x.count - 1),
|
|
150
|
-
archivedCount: Sql.math.max(0, x.archivedCount - 1)
|
|
151
|
-
}));
|
|
152
|
-
await db.mailboxFolders
|
|
153
|
-
.where({ mailboxID, tagID }, (x, p) => x.mailboxID === p.mailboxID && x.tagID === p.tagID)
|
|
154
|
-
.update((x) => ({
|
|
155
|
-
count: x.count + 1,
|
|
156
|
-
archivedCount: x.archivedCount + 1
|
|
157
|
-
}));
|
|
148
|
+
await this.mfs.incrementFolderCount(mailboxID, oldID, -1);
|
|
149
|
+
await this.mfs.incrementFolderCount(mailboxID, tagID, 1);
|
|
158
150
|
}
|
|
159
151
|
}
|
|
160
152
|
}
|
|
@@ -164,12 +156,7 @@ export default class MailboxContactEvents extends AuthenticatedEvents {
|
|
|
164
156
|
}
|
|
165
157
|
const tagID = entity.folderTagID;
|
|
166
158
|
const diff = entity.archived ? 1 : -1;
|
|
167
|
-
await
|
|
168
|
-
.where({ mailboxID, tagID }, (x, p) => x.mailboxID === p.mailboxID && x.tagID === p.tagID)
|
|
169
|
-
.update({ diff }, (x, p) => ({
|
|
170
|
-
count: Sql.math.max(0, x.count - p.diff),
|
|
171
|
-
archivedCount: Sql.math.max(0, x.archivedCount + p.diff)
|
|
172
|
-
}));
|
|
159
|
+
await this.mfs.incrementFolderCount(mailboxID, tagID, diff, diff);
|
|
173
160
|
}
|
|
174
161
|
if (entry.isModified("autoClose") || entry.isModified("blocked")) {
|
|
175
162
|
if (autoClose || blocked) {
|
|
@@ -220,4 +207,8 @@ __decorate([
|
|
|
220
207
|
Inject,
|
|
221
208
|
__metadata("design:type", TagService)
|
|
222
209
|
], MailboxContactEvents.prototype, "ts", void 0);
|
|
210
|
+
__decorate([
|
|
211
|
+
Inject,
|
|
212
|
+
__metadata("design:type", MailboxFolderService)
|
|
213
|
+
], MailboxContactEvents.prototype, "mfs", void 0);
|
|
223
214
|
//# sourceMappingURL=MailboxContactEvents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailboxContactEvents.js","sourceRoot":"","sources":["../../../../src/server/model/events/MailboxContactEvents.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AAExE,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAC/D,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,0BAA0B,MAAM,+DAA+D,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"MailboxContactEvents.js","sourceRoot":"","sources":["../../../../src/server/model/events/MailboxContactEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export default class MailboxFolderService {
|
|
|
7
7
|
db: SocialMailContext;
|
|
8
8
|
ts: TagService;
|
|
9
9
|
systemFolders: number[];
|
|
10
|
+
incrementFolderCount(mailboxID: number, tagID: number, change: number, archivedChange?: number): Promise<void>;
|
|
10
11
|
updateFolders(mb: Mailbox): Promise<void>;
|
|
11
12
|
saveFolder(db: SocialMailContext, ts: TagService, { mailboxID }: Mailbox, tagID: number, count: number, q?: (q1: IEntityQuery<MailboxContact>) => IEntityQuery<MailboxContact>): Promise<void>;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailboxFolderService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/mailboxes/MailboxFolderService.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAE/F,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAGrC,EAAE,EAAE,iBAAiB,CAAC;IAGtB,EAAE,EAAE,UAAU,CAAC;IAEf,aAAa,EAAW,MAAM,EAAE,CAAC;IAE3B,aAAa,CAAC,EAAE,EAAE,OAAO;IA+CzB,UAAU,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,YAAY,CAAC,cAAc,CAAC;CAwBvL"}
|
|
1
|
+
{"version":3,"file":"MailboxFolderService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/mailboxes/MailboxFolderService.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAE/F,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAGrC,EAAE,EAAE,iBAAiB,CAAC;IAGtB,EAAE,EAAE,UAAU,CAAC;IAEf,aAAa,EAAW,MAAM,EAAE,CAAC;IAE3B,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,SAAI;IA6BzF,aAAa,CAAC,EAAE,EAAE,OAAO;IA+CzB,UAAU,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,YAAY,CAAC,cAAc,CAAC;CAwBvL"}
|
|
@@ -15,6 +15,31 @@ let MailboxFolderService = class MailboxFolderService {
|
|
|
15
15
|
constructor() {
|
|
16
16
|
this.systemFolders = null;
|
|
17
17
|
}
|
|
18
|
+
async incrementFolderCount(mailboxID, tagID, change, archivedChange = 0) {
|
|
19
|
+
const updated = await this.db.mailboxFolders.where({ mailboxID, tagID }, (x, p) => x.mailboxID === p.mailboxID && x.tagID === p.tagID)
|
|
20
|
+
.update({ change, archivedChange }, (x, p) => ({
|
|
21
|
+
count: Sql.math.max(0, x.count + p.change),
|
|
22
|
+
archivedCount: Sql.math.max(0, x.archivedCount, p.archivedChange)
|
|
23
|
+
}));
|
|
24
|
+
if (updated) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// try upsert...
|
|
28
|
+
await this.db.mailboxFolders.statements.upsert({
|
|
29
|
+
mailboxID,
|
|
30
|
+
tagID,
|
|
31
|
+
isSystem: true,
|
|
32
|
+
count: archivedChange > 0 ? 0 : 1,
|
|
33
|
+
archivedCount: archivedChange
|
|
34
|
+
}, (x) => {
|
|
35
|
+
x.count = Math.max(0, x.count + change);
|
|
36
|
+
x.archivedCount = Math.max(0, x.archivedCount + archivedChange);
|
|
37
|
+
return x;
|
|
38
|
+
}, {
|
|
39
|
+
mailboxID,
|
|
40
|
+
tagID
|
|
41
|
+
});
|
|
42
|
+
}
|
|
18
43
|
async updateFolders(mb) {
|
|
19
44
|
const { ts, db } = this;
|
|
20
45
|
let contacts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailboxFolderService.js","sourceRoot":"","sources":["../../../../src/server/services/mailboxes/MailboxFolderService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAGjE,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAE/D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAGhC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAQX,kBAAa,GAAG,IAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MailboxFolderService.js","sourceRoot":"","sources":["../../../../src/server/services/mailboxes/MailboxFolderService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAGjE,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAE/D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAGhC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAQX,kBAAa,GAAG,IAAgB,CAAC;IAsGrC,CAAC;IApGG,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,KAAa,EAAE,MAAc,EAAE,cAAc,GAAG,CAAC;QAC3F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;aAChE,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1C,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,cAAc,CAAC;SACpE,CAAC,CAAC,CAAC;QAEZ,IAAG,OAAO,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3C,SAAS;YACT,KAAK;YACL,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,aAAa,EAAE,cAAc;SAChC,EAAE,CAAC,CAAC,EAAE,EAAE;YACL,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YACxC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACb,CAAC,EAAE;YACC,SAAS;YACT,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAW;QAE3B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAExB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,CAAC;QACV,IAAI,SAAS,CAAC;QACd,IAAI,MAAM,CAAC;QAEX,IAAI,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC/C,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACvC,SAAS,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEzC,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACvC,CAAC;QAED,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACzB,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAEzB,aAAa;QACb,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;eAC1G,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CACpE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE;YACV,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC;SACX,CAAC,CAAC,CAAC;QAER,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK;eAC/F,CAAC,CAAC,OAAO,KAAK,KAAK;eACnB,CAAC,CAAC,IAAI,KAAK,KAAK,CACtB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1G,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;QACxG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAqB,EAAE,EAAc,EAAE,EAAE,SAAS,EAAW,EAAE,KAAa,EAAE,KAAa,EAAE,CAAsE;QAChL,MAAM,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;YACtC,SAAS;YACT,KAAK;YACL,QAAQ,EAAE,IAAI;YACd,KAAK;SACR,EAAE,CAAC,CAAC,EAAE,EAAE;YACL,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC,EAAE;YACC,SAAS;YACT,KAAK;SACR,CAAC,CAAC;QAGH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAEnD,MAAM,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;eAC7F,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CACxE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC,CAAC;IACR,CAAC;CAEJ,CAAA;AA3GG;IADC,MAAM;8BACH,iBAAiB;gDAAC;AAGtB;IADC,MAAM;8BACH,UAAU;gDAAC;AANE,oBAAoB;IADxC,cAAc;GACM,oBAAoB,CA8GxC;eA9GoB,oBAAoB"}
|