@socialproof/sub-agents 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/action-registry/canonical.d.ts +6 -0
  2. package/dist/action-registry/canonical.d.ts.map +1 -0
  3. package/dist/action-registry/canonical.js +50 -0
  4. package/dist/action-registry/canonical.js.map +1 -0
  5. package/dist/action-registry/index.d.ts +6 -0
  6. package/dist/action-registry/index.d.ts.map +1 -0
  7. package/dist/action-registry/index.js +6 -0
  8. package/dist/action-registry/index.js.map +1 -0
  9. package/dist/action-registry/production-catalog.d.ts +20 -0
  10. package/dist/action-registry/production-catalog.d.ts.map +1 -0
  11. package/dist/action-registry/production-catalog.js +205 -0
  12. package/dist/action-registry/production-catalog.js.map +1 -0
  13. package/dist/action-registry/production-catalog.test.d.ts +2 -0
  14. package/dist/action-registry/production-catalog.test.d.ts.map +1 -0
  15. package/dist/action-registry/production-catalog.test.js +50 -0
  16. package/dist/action-registry/production-catalog.test.js.map +1 -0
  17. package/dist/action-registry/registry.d.ts +23 -0
  18. package/dist/action-registry/registry.d.ts.map +1 -0
  19. package/dist/action-registry/registry.js +642 -0
  20. package/dist/action-registry/registry.js.map +1 -0
  21. package/dist/action-registry/registry.test.d.ts +2 -0
  22. package/dist/action-registry/registry.test.d.ts.map +1 -0
  23. package/dist/action-registry/registry.test.js +336 -0
  24. package/dist/action-registry/registry.test.js.map +1 -0
  25. package/dist/action-registry/types.d.ts +142 -0
  26. package/dist/action-registry/types.d.ts.map +1 -0
  27. package/dist/action-registry/types.js +38 -0
  28. package/dist/action-registry/types.js.map +1 -0
  29. package/dist/action-registry/validation.d.ts +3 -0
  30. package/dist/action-registry/validation.d.ts.map +1 -0
  31. package/dist/action-registry/validation.js +108 -0
  32. package/dist/action-registry/validation.js.map +1 -0
  33. package/dist/client.d.ts +51 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +412 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/client.test.d.ts +2 -0
  38. package/dist/client.test.d.ts.map +1 -0
  39. package/dist/client.test.js +203 -0
  40. package/dist/client.test.js.map +1 -0
  41. package/dist/contract.d.ts +23 -0
  42. package/dist/contract.d.ts.map +1 -0
  43. package/dist/contract.js +27 -0
  44. package/dist/contract.js.map +1 -0
  45. package/dist/effects.d.ts +11 -0
  46. package/dist/effects.d.ts.map +1 -0
  47. package/dist/effects.js +73 -0
  48. package/dist/effects.js.map +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +7 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/ptb/helpers.d.ts +11 -0
  54. package/dist/ptb/helpers.d.ts.map +1 -0
  55. package/dist/ptb/helpers.js +26 -0
  56. package/dist/ptb/helpers.js.map +1 -0
  57. package/dist/ptb/index.d.ts +5 -0
  58. package/dist/ptb/index.d.ts.map +1 -0
  59. package/dist/ptb/index.js +5 -0
  60. package/dist/ptb/index.js.map +1 -0
  61. package/dist/ptb/organization.d.ts +22 -0
  62. package/dist/ptb/organization.d.ts.map +1 -0
  63. package/dist/ptb/organization.js +326 -0
  64. package/dist/ptb/organization.js.map +1 -0
  65. package/dist/ptb/post.d.ts +26 -0
  66. package/dist/ptb/post.d.ts.map +1 -0
  67. package/dist/ptb/post.js +233 -0
  68. package/dist/ptb/post.js.map +1 -0
  69. package/dist/ptb/post.test.d.ts +2 -0
  70. package/dist/ptb/post.test.d.ts.map +1 -0
  71. package/dist/ptb/post.test.js +188 -0
  72. package/dist/ptb/post.test.js.map +1 -0
  73. package/dist/ptb/tier1.d.ts +14 -0
  74. package/dist/ptb/tier1.d.ts.map +1 -0
  75. package/dist/ptb/tier1.js +189 -0
  76. package/dist/ptb/tier1.js.map +1 -0
  77. package/dist/signing.d.ts +5 -0
  78. package/dist/signing.d.ts.map +1 -0
  79. package/dist/signing.js +31 -0
  80. package/dist/signing.js.map +1 -0
  81. package/dist/types.d.ts +261 -0
  82. package/dist/types.d.ts.map +1 -0
  83. package/dist/types.js +2 -0
  84. package/dist/types.js.map +1 -0
  85. package/package.json +48 -0
@@ -0,0 +1,642 @@
1
+ import { CAP_AGENT_REGISTER, CAP_AGENT_REVOKE, CAP_AGENT_UPDATE, CAP_COMMENT, CAP_MEMORY_READ, CAP_MESSAGE_SEND, CAP_POST_PUBLISH, CAP_REACT, CAP_SOCIAL_GRAPH, } from "../contract.js";
2
+ import { buildCreateCommentTx, buildCreatePostTx, buildCreateRepostTx, buildDeleteCommentTx, buildDeletePostTx, buildReactToCommentTx, buildReactToPostTx, resolveCreatePostAccess, } from "../ptb/post.js";
3
+ import { buildBlockProfileTx, buildEditCommentTx, buildEditPostTx, buildFollowProfileTx, buildRemoveCommentReactionTx, buildRemovePostReactionTx, buildRemoveRepostTx, buildSendMessageTx, buildUnblockProfileTx, buildUnfollowProfileTx, validateSendMessageParams, } from "../ptb/tier1.js";
4
+ import { buildAcceptOrganizationInvitationTx, buildAssignOrganizationRoleTx, buildCreateMessagingGroupTx, buildCreateOrganizationInvitationTx, buildCreateOrganizationTx, buildDeactivateManagedAgentTx, buildDeactivateOrganizationTx, buildDeclineOrganizationInvitationTx, buildDefineOrganizationRoleTx, buildEnsureOrganizationMemoryGroupTx, buildRegisterChildAgentTx, buildRegisterRootAgentTx, buildRevokeManagedAgentTx, buildRevokeOrganizationRoleTx, buildUpdateManagedAgentTx, buildUpdateOrganizationCategoryTx, buildUpdateOrganizationMetadataTx, validateAgentPolicy, } from "../ptb/organization.js";
5
+ import { hashActionParameters, isSha256Digest } from "./canonical.js";
6
+ import { SOCIAL_ACTION_IDS, SOCIAL_ACTION_REGISTRY_VERSION, } from "./types.js";
7
+ import { createSocialActionValidator } from "./validation.js";
8
+ const NON_EMPTY_STRING = Object.freeze({ type: "string", minLength: 1 });
9
+ const OPTIONAL_STRING = Object.freeze({ type: "string" });
10
+ const OPTIONAL_BOOLEAN = Object.freeze({ type: "boolean" });
11
+ const ACCESS_KIND = Object.freeze({
12
+ type: "integer",
13
+ enum: Object.freeze([1, 2, 3]),
14
+ });
15
+ const NON_NEGATIVE_INTEGER = Object.freeze({
16
+ type: "integer",
17
+ minimum: 0,
18
+ maximum: Number.MAX_SAFE_INTEGER,
19
+ });
20
+ const STRING_ARRAY = Object.freeze({
21
+ type: "array",
22
+ items: NON_EMPTY_STRING,
23
+ });
24
+ const MAX_32_STRINGS = Object.freeze({
25
+ type: "array",
26
+ items: NON_EMPTY_STRING,
27
+ maxItems: 32,
28
+ });
29
+ const ORG_TYPE = Object.freeze({
30
+ type: "integer",
31
+ enum: Object.freeze(Array.from({ length: 14 }, (_, index) => index)),
32
+ });
33
+ const U8 = Object.freeze({ type: "integer", minimum: 0, maximum: 255 });
34
+ const AGENT_POLICY_PROPERTIES = Object.freeze({
35
+ publicKeyHex: NON_EMPTY_STRING,
36
+ derivedAddress: NON_EMPTY_STRING,
37
+ label: NON_EMPTY_STRING,
38
+ identityClass: U8,
39
+ roleTags: NON_EMPTY_STRING,
40
+ capabilities: NON_EMPTY_STRING,
41
+ delegatableCaps: NON_EMPTY_STRING,
42
+ registerScope: U8,
43
+ approvalRequiredCaps: NON_EMPTY_STRING,
44
+ maxActionSpendMist: NON_EMPTY_STRING,
45
+ platformScope: NON_EMPTY_STRING,
46
+ expiresAtMs: NON_EMPTY_STRING,
47
+ });
48
+ const POST_OPTION_PROPERTIES = Object.freeze({
49
+ platformObjectId: NON_EMPTY_STRING,
50
+ mediaUrls: STRING_ARRAY,
51
+ mentions: STRING_ARRAY,
52
+ metadataJson: OPTIONAL_STRING,
53
+ allowComments: OPTIONAL_BOOLEAN,
54
+ allowReactions: OPTIONAL_BOOLEAN,
55
+ allowReposts: OPTIONAL_BOOLEAN,
56
+ allowQuotes: OPTIONAL_BOOLEAN,
57
+ allowTips: OPTIONAL_BOOLEAN,
58
+ enableSpt: OPTIONAL_BOOLEAN,
59
+ enableSpot: OPTIONAL_BOOLEAN,
60
+ });
61
+ function objectSchema(required, properties) {
62
+ return Object.freeze({
63
+ $schema: "https://json-schema.org/draft/2020-12/schema",
64
+ type: "object",
65
+ additionalProperties: false,
66
+ required: Object.freeze([...required]),
67
+ properties: Object.freeze({ ...properties }),
68
+ });
69
+ }
70
+ const IDEMPOTENCY_POLICY = Object.freeze({
71
+ required: true,
72
+ scope: "account-agent-action",
73
+ parameterHashAlgorithm: "sha256-canonical-json-v1",
74
+ replayBehavior: "return-existing-result",
75
+ });
76
+ function defineAction(descriptor, refine) {
77
+ const validateSchema = createSocialActionValidator(descriptor.inputSchema);
78
+ return Object.freeze({
79
+ ...descriptor,
80
+ validate: (input) => {
81
+ const result = validateSchema(input);
82
+ if (!result.success || !refine)
83
+ return result;
84
+ try {
85
+ refine(result.value);
86
+ return result;
87
+ }
88
+ catch (error) {
89
+ return {
90
+ success: false,
91
+ issues: [
92
+ {
93
+ code: "invalid_value",
94
+ path: "$",
95
+ message: error instanceof Error
96
+ ? error.message
97
+ : "Invalid action parameter combination",
98
+ },
99
+ ],
100
+ };
101
+ }
102
+ },
103
+ });
104
+ }
105
+ const createPost = defineAction({
106
+ id: "social.create_post.v1",
107
+ version: 1,
108
+ legacyAction: "create_post",
109
+ requiredCapability: CAP_POST_PUBLISH,
110
+ riskTier: "1B",
111
+ inputSchema: objectSchema(["content"], {
112
+ content: NON_EMPTY_STRING,
113
+ ...POST_OPTION_PROPERTIES,
114
+ accessKind: ACCESS_KIND,
115
+ subscriptionServiceId: NON_EMPTY_STRING,
116
+ linkedMydataId: NON_EMPTY_STRING,
117
+ subscriptionMinTierLevel: NON_NEGATIVE_INTEGER,
118
+ }),
119
+ idempotency: IDEMPOTENCY_POLICY,
120
+ buildTransaction: buildCreatePostTx,
121
+ }, resolveCreatePostAccess);
122
+ const createComment = defineAction({
123
+ id: "social.create_comment.v1",
124
+ version: 1,
125
+ legacyAction: "create_comment",
126
+ requiredCapability: CAP_COMMENT,
127
+ riskTier: "1B",
128
+ inputSchema: objectSchema(["postId", "content"], {
129
+ postId: NON_EMPTY_STRING,
130
+ content: NON_EMPTY_STRING,
131
+ parentCommentId: NON_EMPTY_STRING,
132
+ mediaUrls: STRING_ARRAY,
133
+ mentions: STRING_ARRAY,
134
+ metadataJson: OPTIONAL_STRING,
135
+ }),
136
+ idempotency: IDEMPOTENCY_POLICY,
137
+ buildTransaction: buildCreateCommentTx,
138
+ });
139
+ const reactToPost = defineAction({
140
+ id: "social.react_to_post.v1",
141
+ version: 1,
142
+ legacyAction: "react_to_post",
143
+ requiredCapability: CAP_REACT,
144
+ riskTier: "1A",
145
+ inputSchema: objectSchema(["postId", "reaction"], {
146
+ postId: NON_EMPTY_STRING,
147
+ reaction: NON_EMPTY_STRING,
148
+ platformObjectId: NON_EMPTY_STRING,
149
+ }),
150
+ idempotency: IDEMPOTENCY_POLICY,
151
+ buildTransaction: buildReactToPostTx,
152
+ });
153
+ const reactToComment = defineAction({
154
+ id: "social.react_to_comment.v1",
155
+ version: 1,
156
+ legacyAction: "react_to_comment",
157
+ requiredCapability: CAP_REACT,
158
+ riskTier: "1A",
159
+ inputSchema: objectSchema(["commentId", "reaction"], {
160
+ commentId: NON_EMPTY_STRING,
161
+ reaction: NON_EMPTY_STRING,
162
+ platformObjectId: NON_EMPTY_STRING,
163
+ }),
164
+ idempotency: IDEMPOTENCY_POLICY,
165
+ buildTransaction: buildReactToCommentTx,
166
+ });
167
+ const createRepost = defineAction({
168
+ id: "social.create_repost.v1",
169
+ version: 1,
170
+ legacyAction: "create_repost",
171
+ requiredCapability: CAP_POST_PUBLISH,
172
+ riskTier: "1B",
173
+ inputSchema: objectSchema(["originalPostId"], {
174
+ originalPostId: NON_EMPTY_STRING,
175
+ content: OPTIONAL_STRING,
176
+ ...POST_OPTION_PROPERTIES,
177
+ }),
178
+ idempotency: IDEMPOTENCY_POLICY,
179
+ buildTransaction: buildCreateRepostTx,
180
+ });
181
+ const removePostReaction = defineAction({
182
+ id: "social.remove_post_reaction.v1",
183
+ version: 1,
184
+ legacyAction: "remove_post_reaction",
185
+ requiredCapability: CAP_REACT,
186
+ riskTier: "1A",
187
+ inputSchema: objectSchema(["postId"], {
188
+ postId: NON_EMPTY_STRING,
189
+ platformObjectId: NON_EMPTY_STRING,
190
+ }),
191
+ idempotency: IDEMPOTENCY_POLICY,
192
+ buildTransaction: buildRemovePostReactionTx,
193
+ });
194
+ const removeCommentReaction = defineAction({
195
+ id: "social.remove_comment_reaction.v1",
196
+ version: 1,
197
+ legacyAction: "remove_comment_reaction",
198
+ requiredCapability: CAP_REACT,
199
+ riskTier: "1A",
200
+ inputSchema: objectSchema(["commentId"], {
201
+ commentId: NON_EMPTY_STRING,
202
+ platformObjectId: NON_EMPTY_STRING,
203
+ }),
204
+ idempotency: IDEMPOTENCY_POLICY,
205
+ buildTransaction: buildRemoveCommentReactionTx,
206
+ });
207
+ const editPost = defineAction({
208
+ id: "social.edit_post.v1",
209
+ version: 1,
210
+ legacyAction: "edit_post",
211
+ requiredCapability: CAP_POST_PUBLISH,
212
+ riskTier: "1B",
213
+ inputSchema: objectSchema(["postId", "content"], {
214
+ postId: NON_EMPTY_STRING,
215
+ content: NON_EMPTY_STRING,
216
+ mediaUrls: STRING_ARRAY,
217
+ mentions: STRING_ARRAY,
218
+ metadataJson: OPTIONAL_STRING,
219
+ platformObjectId: NON_EMPTY_STRING,
220
+ }),
221
+ idempotency: IDEMPOTENCY_POLICY,
222
+ buildTransaction: buildEditPostTx,
223
+ });
224
+ const editComment = defineAction({
225
+ id: "social.edit_comment.v1",
226
+ version: 1,
227
+ legacyAction: "edit_comment",
228
+ requiredCapability: CAP_COMMENT,
229
+ riskTier: "1B",
230
+ inputSchema: objectSchema(["commentId", "content"], {
231
+ commentId: NON_EMPTY_STRING,
232
+ content: NON_EMPTY_STRING,
233
+ mentions: STRING_ARRAY,
234
+ platformObjectId: NON_EMPTY_STRING,
235
+ }),
236
+ idempotency: IDEMPOTENCY_POLICY,
237
+ buildTransaction: buildEditCommentTx,
238
+ });
239
+ const removeRepost = defineAction({
240
+ id: "social.remove_repost.v1",
241
+ version: 1,
242
+ legacyAction: "remove_repost",
243
+ requiredCapability: CAP_POST_PUBLISH,
244
+ riskTier: "1B",
245
+ inputSchema: objectSchema(["originalPostId", "repostId"], {
246
+ originalPostId: NON_EMPTY_STRING,
247
+ repostId: NON_EMPTY_STRING,
248
+ platformObjectId: NON_EMPTY_STRING,
249
+ }),
250
+ idempotency: IDEMPOTENCY_POLICY,
251
+ buildTransaction: buildRemoveRepostTx,
252
+ });
253
+ function profileRelationAction(id, legacyAction, buildTransaction) {
254
+ return defineAction({
255
+ id,
256
+ version: 1,
257
+ legacyAction,
258
+ requiredCapability: CAP_SOCIAL_GRAPH,
259
+ riskTier: "1A",
260
+ inputSchema: objectSchema(["targetOwner"], {
261
+ targetOwner: NON_EMPTY_STRING,
262
+ platformObjectId: NON_EMPTY_STRING,
263
+ }),
264
+ idempotency: IDEMPOTENCY_POLICY,
265
+ buildTransaction: buildTransaction,
266
+ });
267
+ }
268
+ const followProfile = profileRelationAction("social.follow_profile.v1", "follow_profile", buildFollowProfileTx);
269
+ const unfollowProfile = profileRelationAction("social.unfollow_profile.v1", "unfollow_profile", buildUnfollowProfileTx);
270
+ const blockProfile = profileRelationAction("social.block_profile.v1", "block_profile", buildBlockProfileTx);
271
+ const unblockProfile = profileRelationAction("social.unblock_profile.v1", "unblock_profile", buildUnblockProfileTx);
272
+ const sendMessage = defineAction({
273
+ id: "messaging.send_message.v1",
274
+ version: 1,
275
+ legacyAction: "send_message",
276
+ requiredCapability: CAP_MESSAGE_SEND,
277
+ riskTier: "1B",
278
+ inputSchema: objectSchema(["groupId", "messageLogId", "recipient", "contentDigestHex", "contentUri", "dedupeKey", "nonce"], {
279
+ groupId: NON_EMPTY_STRING,
280
+ messageLogId: NON_EMPTY_STRING,
281
+ recipient: NON_EMPTY_STRING,
282
+ contentDigestHex: NON_EMPTY_STRING,
283
+ contentUri: NON_EMPTY_STRING,
284
+ dedupeKey: NON_EMPTY_STRING,
285
+ nonce: NON_EMPTY_STRING,
286
+ platformObjectId: NON_EMPTY_STRING,
287
+ }),
288
+ idempotency: IDEMPOTENCY_POLICY,
289
+ buildTransaction: buildSendMessageTx,
290
+ }, validateSendMessageParams);
291
+ const createMessagingGroup = defineAction({
292
+ id: "messaging.create_group.v1",
293
+ version: 1,
294
+ legacyAction: "create_messaging_group",
295
+ requiredCapability: CAP_MESSAGE_SEND,
296
+ riskTier: "1B",
297
+ inputSchema: objectSchema(["name", "uuid", "encryptedDekHex", "initialMembers"], {
298
+ name: NON_EMPTY_STRING,
299
+ uuid: NON_EMPTY_STRING,
300
+ encryptedDekHex: NON_EMPTY_STRING,
301
+ initialMembers: MAX_32_STRINGS,
302
+ crossPrincipalPeerAccountId: NON_EMPTY_STRING,
303
+ platformObjectId: NON_EMPTY_STRING,
304
+ }),
305
+ idempotency: IDEMPOTENCY_POLICY,
306
+ buildTransaction: buildCreateMessagingGroupTx,
307
+ });
308
+ const createOrganization = defineAction({
309
+ id: "organization.create.v1",
310
+ version: 1,
311
+ legacyAction: "create_organization",
312
+ requiredCapability: CAP_AGENT_REGISTER,
313
+ riskTier: "3",
314
+ inputSchema: objectSchema(["orgType"], {
315
+ orgType: ORG_TYPE,
316
+ name: OPTIONAL_STRING,
317
+ description: OPTIONAL_STRING,
318
+ }),
319
+ idempotency: IDEMPOTENCY_POLICY,
320
+ buildTransaction: buildCreateOrganizationTx,
321
+ });
322
+ const updateOrganizationMetadata = defineAction({
323
+ id: "organization.update_metadata.v1",
324
+ version: 1,
325
+ legacyAction: "update_organization_metadata",
326
+ requiredCapability: CAP_AGENT_UPDATE,
327
+ riskTier: "3",
328
+ inputSchema: objectSchema(["organizationId"], {
329
+ organizationId: NON_EMPTY_STRING,
330
+ name: OPTIONAL_STRING,
331
+ description: OPTIONAL_STRING,
332
+ }),
333
+ idempotency: IDEMPOTENCY_POLICY,
334
+ buildTransaction: buildUpdateOrganizationMetadataTx,
335
+ });
336
+ const updateOrganizationCategory = defineAction({
337
+ id: "organization.update_category.v1",
338
+ version: 1,
339
+ legacyAction: "update_organization_category",
340
+ requiredCapability: CAP_AGENT_UPDATE,
341
+ riskTier: "3",
342
+ inputSchema: objectSchema(["organizationId", "orgType"], {
343
+ organizationId: NON_EMPTY_STRING,
344
+ orgType: ORG_TYPE,
345
+ }),
346
+ idempotency: IDEMPOTENCY_POLICY,
347
+ buildTransaction: buildUpdateOrganizationCategoryTx,
348
+ });
349
+ function organizationObjectAction(id, legacyAction, buildTransaction) {
350
+ return defineAction({
351
+ id,
352
+ version: 1,
353
+ legacyAction,
354
+ requiredCapability: CAP_AGENT_UPDATE,
355
+ riskTier: "3",
356
+ inputSchema: objectSchema(["organizationId"], { organizationId: NON_EMPTY_STRING }),
357
+ idempotency: IDEMPOTENCY_POLICY,
358
+ buildTransaction: buildTransaction,
359
+ });
360
+ }
361
+ const deactivateOrganization = organizationObjectAction("organization.deactivate.v1", "deactivate_organization", buildDeactivateOrganizationTx);
362
+ const ensureOrganizationMemoryGroup = organizationObjectAction("organization.ensure_memory_group.v1", "ensure_organization_memory_group", buildEnsureOrganizationMemoryGroupTx);
363
+ const defineOrganizationRole = defineAction({
364
+ id: "organization.define_role.v1",
365
+ version: 1,
366
+ legacyAction: "define_organization_role",
367
+ requiredCapability: CAP_AGENT_UPDATE,
368
+ riskTier: "3",
369
+ inputSchema: objectSchema(["organizationId", "orgMemoryGroupId", "roleName", "permissionsMask"], {
370
+ organizationId: NON_EMPTY_STRING,
371
+ orgMemoryGroupId: NON_EMPTY_STRING,
372
+ roleName: NON_EMPTY_STRING,
373
+ permissionsMask: NON_EMPTY_STRING,
374
+ }),
375
+ idempotency: IDEMPOTENCY_POLICY,
376
+ buildTransaction: buildDefineOrganizationRoleTx,
377
+ });
378
+ function organizationRoleAction(id, legacyAction, buildTransaction) {
379
+ return defineAction({
380
+ id,
381
+ version: 1,
382
+ legacyAction,
383
+ requiredCapability: CAP_AGENT_UPDATE,
384
+ riskTier: "3",
385
+ inputSchema: objectSchema(["organizationId", "orgMemoryGroupId", "memberAddress", "roleName"], {
386
+ organizationId: NON_EMPTY_STRING,
387
+ orgMemoryGroupId: NON_EMPTY_STRING,
388
+ memberAddress: NON_EMPTY_STRING,
389
+ roleName: NON_EMPTY_STRING,
390
+ }),
391
+ idempotency: IDEMPOTENCY_POLICY,
392
+ buildTransaction: buildTransaction,
393
+ });
394
+ }
395
+ const assignOrganizationRole = organizationRoleAction("organization.assign_role.v1", "assign_organization_role", buildAssignOrganizationRoleTx);
396
+ const revokeOrganizationRole = organizationRoleAction("organization.revoke_role.v1", "revoke_organization_role", buildRevokeOrganizationRoleTx);
397
+ const createOrganizationInvitation = defineAction({
398
+ id: "organization.create_invitation.v1",
399
+ version: 1,
400
+ legacyAction: "create_organization_invitation",
401
+ requiredCapability: CAP_AGENT_UPDATE,
402
+ riskTier: "3",
403
+ inputSchema: objectSchema(["organizationId", "orgMemoryGroupId", "invitee", "permissionsMask"], {
404
+ organizationId: NON_EMPTY_STRING,
405
+ orgMemoryGroupId: NON_EMPTY_STRING,
406
+ invitee: NON_EMPTY_STRING,
407
+ roleName: OPTIONAL_STRING,
408
+ permissionsMask: NON_EMPTY_STRING,
409
+ expiresAtMs: NON_EMPTY_STRING,
410
+ }),
411
+ idempotency: IDEMPOTENCY_POLICY,
412
+ buildTransaction: buildCreateOrganizationInvitationTx,
413
+ }, (input) => {
414
+ if (!input.roleName && input.permissionsMask === "0") {
415
+ throw new TypeError("An invitation requires a roleName or non-zero permissionsMask");
416
+ }
417
+ });
418
+ function invitationDecisionAction(id, legacyAction, buildTransaction) {
419
+ return defineAction({
420
+ id,
421
+ version: 1,
422
+ legacyAction,
423
+ requiredCapability: CAP_MEMORY_READ,
424
+ riskTier: "1B",
425
+ inputSchema: objectSchema(id === "organization.accept_invitation.v1"
426
+ ? ["organizationAccountId", "organizationId", "orgMemoryGroupId", "invitee"]
427
+ : ["organizationAccountId", "organizationId", "invitee"], {
428
+ organizationAccountId: NON_EMPTY_STRING,
429
+ organizationId: NON_EMPTY_STRING,
430
+ orgMemoryGroupId: NON_EMPTY_STRING,
431
+ invitee: NON_EMPTY_STRING,
432
+ }),
433
+ idempotency: IDEMPOTENCY_POLICY,
434
+ buildTransaction: buildTransaction,
435
+ });
436
+ }
437
+ const acceptOrganizationInvitation = invitationDecisionAction("organization.accept_invitation.v1", "accept_organization_invitation", buildAcceptOrganizationInvitationTx);
438
+ const declineOrganizationInvitation = invitationDecisionAction("organization.decline_invitation.v1", "decline_organization_invitation", buildDeclineOrganizationInvitationTx);
439
+ const registerRootAgent = defineAction({
440
+ id: "agent.register_agent.v1",
441
+ version: 1,
442
+ legacyAction: "register_root_agent",
443
+ requiredCapability: CAP_AGENT_REGISTER,
444
+ riskTier: "3",
445
+ inputSchema: objectSchema(["organizationId", "publicKeyHex", "derivedAddress", "label"], {
446
+ organizationId: NON_EMPTY_STRING,
447
+ ...AGENT_POLICY_PROPERTIES,
448
+ }),
449
+ idempotency: IDEMPOTENCY_POLICY,
450
+ buildTransaction: buildRegisterRootAgentTx,
451
+ }, validateAgentPolicy);
452
+ const registerChildAgent = defineAction({
453
+ id: "agent.register_child.v1",
454
+ version: 1,
455
+ legacyAction: "register_child_agent",
456
+ requiredCapability: CAP_AGENT_REGISTER,
457
+ riskTier: "1B",
458
+ inputSchema: objectSchema(["parentAgentObjectId", "registerRelation", "publicKeyHex", "derivedAddress", "label"], {
459
+ parentAgentObjectId: NON_EMPTY_STRING,
460
+ registerRelation: U8,
461
+ ...AGENT_POLICY_PROPERTIES,
462
+ }),
463
+ idempotency: IDEMPOTENCY_POLICY,
464
+ buildTransaction: buildRegisterChildAgentTx,
465
+ }, validateAgentPolicy);
466
+ const updateManagedAgent = defineAction({
467
+ id: "agent.update_child.v1",
468
+ version: 1,
469
+ legacyAction: "update_managed_agent",
470
+ requiredCapability: CAP_AGENT_UPDATE,
471
+ riskTier: "1B",
472
+ inputSchema: objectSchema(["agentObjectId", "identityClass", "roleTags", "capabilities", "delegatableCaps", "registerScope", "approvalRequiredCaps"], {
473
+ agentObjectId: NON_EMPTY_STRING,
474
+ identityClass: U8,
475
+ roleTags: NON_EMPTY_STRING,
476
+ capabilities: NON_EMPTY_STRING,
477
+ delegatableCaps: NON_EMPTY_STRING,
478
+ registerScope: U8,
479
+ approvalRequiredCaps: NON_EMPTY_STRING,
480
+ maxActionSpendMist: NON_EMPTY_STRING,
481
+ platformScope: NON_EMPTY_STRING,
482
+ expiresAtMs: NON_EMPTY_STRING,
483
+ }),
484
+ idempotency: IDEMPOTENCY_POLICY,
485
+ buildTransaction: buildUpdateManagedAgentTx,
486
+ });
487
+ function managedAgentAction(id, legacyAction, buildTransaction) {
488
+ return defineAction({
489
+ id,
490
+ version: 1,
491
+ legacyAction,
492
+ requiredCapability: CAP_AGENT_REVOKE,
493
+ riskTier: "1B",
494
+ inputSchema: objectSchema(["agentObjectId"], { agentObjectId: NON_EMPTY_STRING }),
495
+ idempotency: IDEMPOTENCY_POLICY,
496
+ buildTransaction: buildTransaction,
497
+ });
498
+ }
499
+ const deactivateManagedAgent = managedAgentAction("agent.deactivate_child.v1", "deactivate_managed_agent", buildDeactivateManagedAgentTx);
500
+ const revokeManagedAgent = managedAgentAction("agent.revoke_child.v1", "revoke_managed_agent", buildRevokeManagedAgentTx);
501
+ const deletePost = defineAction({
502
+ id: "social.delete_post.v1",
503
+ version: 1,
504
+ legacyAction: "delete_post",
505
+ requiredCapability: CAP_POST_PUBLISH,
506
+ riskTier: "3",
507
+ inputSchema: objectSchema(["postId"], { postId: NON_EMPTY_STRING }),
508
+ idempotency: IDEMPOTENCY_POLICY,
509
+ buildTransaction: (context, input) => buildDeletePostTx(context.chain, input.postId, context.Transaction),
510
+ });
511
+ const deleteComment = defineAction({
512
+ id: "social.delete_comment.v1",
513
+ version: 1,
514
+ legacyAction: "delete_comment",
515
+ requiredCapability: CAP_COMMENT,
516
+ riskTier: "3",
517
+ inputSchema: objectSchema(["postId", "commentId"], {
518
+ postId: NON_EMPTY_STRING,
519
+ commentId: NON_EMPTY_STRING,
520
+ }),
521
+ idempotency: IDEMPOTENCY_POLICY,
522
+ buildTransaction: (context, input) => buildDeleteCommentTx(context.chain, input.postId, input.commentId, context.Transaction),
523
+ });
524
+ export const SOCIAL_ACTION_REGISTRY = Object.freeze({
525
+ "social.react_to_post.v1": reactToPost,
526
+ "social.remove_post_reaction.v1": removePostReaction,
527
+ "social.react_to_comment.v1": reactToComment,
528
+ "social.remove_comment_reaction.v1": removeCommentReaction,
529
+ "social.create_post.v1": createPost,
530
+ "social.edit_post.v1": editPost,
531
+ "social.create_comment.v1": createComment,
532
+ "social.edit_comment.v1": editComment,
533
+ "social.create_repost.v1": createRepost,
534
+ "social.remove_repost.v1": removeRepost,
535
+ "social.follow_profile.v1": followProfile,
536
+ "social.unfollow_profile.v1": unfollowProfile,
537
+ "social.block_profile.v1": blockProfile,
538
+ "social.unblock_profile.v1": unblockProfile,
539
+ "messaging.send_message.v1": sendMessage,
540
+ "messaging.create_group.v1": createMessagingGroup,
541
+ "organization.create.v1": createOrganization,
542
+ "organization.update_metadata.v1": updateOrganizationMetadata,
543
+ "organization.update_category.v1": updateOrganizationCategory,
544
+ "organization.deactivate.v1": deactivateOrganization,
545
+ "organization.ensure_memory_group.v1": ensureOrganizationMemoryGroup,
546
+ "organization.define_role.v1": defineOrganizationRole,
547
+ "organization.assign_role.v1": assignOrganizationRole,
548
+ "organization.revoke_role.v1": revokeOrganizationRole,
549
+ "organization.create_invitation.v1": createOrganizationInvitation,
550
+ "organization.accept_invitation.v1": acceptOrganizationInvitation,
551
+ "organization.decline_invitation.v1": declineOrganizationInvitation,
552
+ "agent.register_agent.v1": registerRootAgent,
553
+ "agent.register_child.v1": registerChildAgent,
554
+ "agent.update_child.v1": updateManagedAgent,
555
+ "agent.deactivate_child.v1": deactivateManagedAgent,
556
+ "agent.revoke_child.v1": revokeManagedAgent,
557
+ "social.delete_post.v1": deletePost,
558
+ "social.delete_comment.v1": deleteComment,
559
+ });
560
+ const SOCIAL_ACTION_ID_SET = new Set(SOCIAL_ACTION_IDS);
561
+ export class UnsupportedSocialActionError extends Error {
562
+ actionId;
563
+ code = "unsupported_social_action";
564
+ constructor(actionId) {
565
+ super(`Unsupported social action: ${actionId}`);
566
+ this.actionId = actionId;
567
+ this.name = "UnsupportedSocialActionError";
568
+ }
569
+ }
570
+ export class InvalidSocialActionInputError extends Error {
571
+ actionId;
572
+ issues;
573
+ code = "invalid_social_action_input";
574
+ constructor(actionId, issues) {
575
+ super(`Invalid input for ${actionId}: ${issues
576
+ .map((issue) => `${issue.path} ${issue.message}`)
577
+ .join("; ")}`);
578
+ this.actionId = actionId;
579
+ this.issues = issues;
580
+ this.name = "InvalidSocialActionInputError";
581
+ }
582
+ }
583
+ export function isSocialActionId(value) {
584
+ return SOCIAL_ACTION_ID_SET.has(value);
585
+ }
586
+ export function getSocialActionDescriptor(actionId) {
587
+ if (!isSocialActionId(actionId)) {
588
+ throw new UnsupportedSocialActionError(actionId);
589
+ }
590
+ return SOCIAL_ACTION_REGISTRY[actionId];
591
+ }
592
+ /** Builds only registered actions; arbitrary Move targets and caller-supplied PTBs are impossible. */
593
+ export function buildRegisteredSocialAction(actionId, context, input) {
594
+ const descriptor = getSocialActionDescriptor(actionId);
595
+ const validation = descriptor.validate(input);
596
+ if (!validation.success) {
597
+ throw new InvalidSocialActionInputError(descriptor.id, validation.issues);
598
+ }
599
+ return descriptor.buildTransaction(context, validation.value);
600
+ }
601
+ export async function createSocialActionRequestMetadata(actionId, input, idempotencyKey) {
602
+ const descriptor = getSocialActionDescriptor(actionId);
603
+ const validation = descriptor.validate(input);
604
+ if (!validation.success) {
605
+ throw new InvalidSocialActionInputError(descriptor.id, validation.issues);
606
+ }
607
+ if (idempotencyKey.trim().length === 0) {
608
+ throw new TypeError("idempotencyKey must not be empty");
609
+ }
610
+ const parameterHash = await hashActionParameters(validation.value);
611
+ return Object.freeze({
612
+ registryAction: descriptor.id,
613
+ registryVersion: SOCIAL_ACTION_REGISTRY_VERSION,
614
+ actionVersion: descriptor.version,
615
+ legacyAction: descriptor.legacyAction,
616
+ requiredCapability: descriptor.requiredCapability,
617
+ riskTier: descriptor.riskTier,
618
+ parameterHash,
619
+ idempotency: Object.freeze({
620
+ key: idempotencyKey,
621
+ scope: descriptor.idempotency.scope,
622
+ replayBehavior: descriptor.idempotency.replayBehavior,
623
+ }),
624
+ });
625
+ }
626
+ export function finalizeSocialActionPreparation(request, options) {
627
+ if (options.actionId.trim().length === 0 ||
628
+ options.packageId.trim().length === 0 ||
629
+ options.packageVersion.trim().length === 0) {
630
+ throw new TypeError("actionId, packageId, and packageVersion are required");
631
+ }
632
+ if (!isSha256Digest(options.transactionBytesHash)) {
633
+ throw new TypeError("transactionBytesHash must be a sha256 digest");
634
+ }
635
+ if (!Number.isSafeInteger(options.preparedAtMs) ||
636
+ !Number.isSafeInteger(options.expiresAtMs) ||
637
+ options.expiresAtMs <= options.preparedAtMs) {
638
+ throw new TypeError("expiresAtMs must be a safe integer after preparedAtMs");
639
+ }
640
+ return Object.freeze({ ...request, ...options });
641
+ }
642
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/action-registry/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,mCAAmC,EACnC,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,oCAAoC,EACpC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,iCAAiC,EACjC,iCAAiC,EACjC,mBAAmB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACH,iBAAiB,EACjB,8BAA8B,GACjC,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAW,CAAC,CAAC;AAClF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAC,CAAC;AACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC,CAAC;AACrE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AACZ,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,gBAAgB;CAC1B,CAAC,CAAC;AACZ,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,gBAAgB;CACjB,CAAC,CAAC;AACZ,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,EAAE;CACN,CAAC,CAAC;AACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;CAC9D,CAAC,CAAC;AACZ,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAW,CAAC,CAAC;AAEjF,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,gBAAgB;IAChC,KAAK,EAAE,gBAAgB;IACvB,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,gBAAgB;IACjC,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,gBAAgB;IACtC,kBAAkB,EAAE,gBAAgB;IACpC,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,gBAAgB;CACvB,CAAC,CAAC;AAEZ,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,gBAAgB,EAAE,gBAAgB;IAClC,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,gBAAgB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,gBAAgB;CACtB,CAAC,CAAC;AAEZ,SAAS,YAAY,CACjB,QAA2B,EAC3B,UAAiD;IAEjD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,8CAA8C;QACvD,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;KAC/C,CAAC,CAAC;AACP,CAAC;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,sBAAsB;IAC7B,sBAAsB,EAAE,0BAA0B;IAClD,cAAc,EAAE,wBAAwB;CAClC,CAAC,CAAC;AAEZ,SAAS,YAAY,CACjB,UAAyD,EACzD,MAAgD;IAEhD,MAAM,cAAc,GAAG,2BAA2B,CAC9C,UAAU,CAAC,WAAW,CACzB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,UAAU;QACb,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC9C,IAAI,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO;oBACH,OAAO,EAAE,KAAc;oBACvB,MAAM,EAAE;wBACJ;4BACI,IAAI,EAAE,eAAwB;4BAC9B,IAAI,EAAE,GAAG;4BACT,OAAO,EACH,KAAK,YAAY,KAAK;gCAClB,CAAC,CAAC,KAAK,CAAC,OAAO;gCACf,CAAC,CAAC,sCAAsC;yBACnD;qBACJ;iBACJ,CAAC;YACN,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,GAAG,YAAY,CAC3B;IACI,EAAE,EAAE,uBAAuB;IAC3B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,aAAa;IAC3B,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE;QACnC,OAAO,EAAE,gBAAgB;QACzB,GAAG,sBAAsB;QACzB,UAAU,EAAE,WAAW;QACvB,qBAAqB,EAAE,gBAAgB;QACvC,cAAc,EAAE,gBAAgB;QAChC,wBAAwB,EAAE,oBAAoB;KACjD,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,iBAAiB;CACtC,EACD,uBAAuB,CAC1B,CAAC;AAEF,MAAM,aAAa,GAAG,YAAY,CAAC;IAC/B,EAAE,EAAE,0BAA0B;IAC9B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,gBAAgB;IAC9B,kBAAkB,EAAE,WAAW;IAC/B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QAC7C,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,gBAAgB;QACzB,eAAe,EAAE,gBAAgB;QACjC,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,eAAe;KAChC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,oBAAoB;CACzC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,YAAY,CAAC;IAC7B,EAAE,EAAE,yBAAyB;IAC7B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,eAAe;IAC7B,kBAAkB,EAAE,SAAS;IAC7B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;QAC9C,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,gBAAgB;QAC1B,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,kBAAkB;CACvC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,YAAY,CAAC;IAChC,EAAE,EAAE,4BAA4B;IAChC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,kBAAkB;IAChC,kBAAkB,EAAE,SAAS;IAC7B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;QACjD,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,gBAAgB;QAC1B,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,qBAAqB;CAC1C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,YAAY,CAAC;IAC9B,EAAE,EAAE,yBAAyB;IAC7B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,eAAe;IAC7B,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,CAAC,EAAE;QAC1C,cAAc,EAAE,gBAAgB;QAChC,OAAO,EAAE,eAAe;QACxB,GAAG,sBAAsB;KAC5B,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,mBAAmB;CACxC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACpC,EAAE,EAAE,gCAAgC;IACpC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,sBAAsB;IACpC,kBAAkB,EAAE,SAAS;IAC7B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE;QAClC,MAAM,EAAE,gBAAgB;QACxB,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,yBAAyB;CAC9C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,YAAY,CAAC;IACvC,EAAE,EAAE,mCAAmC;IACvC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,yBAAyB;IACvC,kBAAkB,EAAE,SAAS;IAC7B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE;QACrC,SAAS,EAAE,gBAAgB;QAC3B,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,4BAA4B;CACjD,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,YAAY,CAAC;IAC1B,EAAE,EAAE,qBAAqB;IACzB,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,WAAW;IACzB,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QAC7C,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,gBAAgB;QACzB,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,eAAe;QAC7B,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,eAAe;CACpC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,YAAY,CAAC;IAC7B,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,WAAW;IAC/B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;QAChD,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,YAAY;QACtB,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,kBAAkB;CACvC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,YAAY,CAAC;IAC9B,EAAE,EAAE,yBAAyB;IAC7B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,eAAe;IAC7B,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE;QACtD,cAAc,EAAE,gBAAgB;QAChC,QAAQ,EAAE,gBAAgB;QAC1B,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,mBAAmB;CACxC,CAAC,CAAC;AAQH,SAAS,qBAAqB,CAC1B,EAAO,EACP,YAAyF,EACzF,gBAA6C;IAE7C,OAAO,YAAY,CAAM;QACrB,EAAE;QACF,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE;YACvC,WAAW,EAAE,gBAAgB;YAC7B,gBAAgB,EAAE,gBAAgB;SACrC,CAAC;QACF,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,gBAAmE;KACxF,CAAC,CAAC;AACP,CAAC;AAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,0BAA0B,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;AAChH,MAAM,eAAe,GAAG,qBAAqB,CAAC,4BAA4B,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AACxH,MAAM,YAAY,GAAG,qBAAqB,CAAC,yBAAyB,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAC5G,MAAM,cAAc,GAAG,qBAAqB,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAEpH,MAAM,WAAW,GAAG,YAAY,CAC5B;IACI,EAAE,EAAE,2BAA2B;IAC/B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CACrB,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,EAChG;QACI,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,gBAAgB;QAC9B,SAAS,EAAE,gBAAgB;QAC3B,gBAAgB,EAAE,gBAAgB;QAClC,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,gBAAgB;QACvB,gBAAgB,EAAE,gBAAgB;KACrC,CACJ;IACD,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,kBAAkB;CACvC,EACD,yBAAyB,CAC5B,CAAC;AAEF,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACtC,EAAE,EAAE,2BAA2B;IAC/B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,wBAAwB;IACtC,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAE;QAC7E,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,gBAAgB;QACjC,cAAc,EAAE,cAAc;QAC9B,2BAA2B,EAAE,gBAAgB;QAC7C,gBAAgB,EAAE,gBAAgB;KACrC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,2BAA2B;CAChD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACpC,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,qBAAqB;IACnC,kBAAkB,EAAE,kBAAkB;IACtC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE;QACnC,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,eAAe;KAC/B,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,yBAAyB;CAC9C,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,YAAY,CAAC;IAC5C,EAAE,EAAE,iCAAiC;IACrC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,8BAA8B;IAC5C,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,CAAC,EAAE;QAC1C,cAAc,EAAE,gBAAgB;QAChC,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,eAAe;KAC/B,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,iCAAiC;CACtD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,YAAY,CAAC;IAC5C,EAAE,EAAE,iCAAiC;IACrC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,8BAA8B;IAC5C,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE;QACrD,cAAc,EAAE,gBAAgB;QAChC,OAAO,EAAE,QAAQ;KACpB,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,iCAAiC;CACtD,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAC7B,EAAO,EACP,YAA4E,EAC5E,gBAAsD;IAEtD,OAAO,YAAY,CAAM;QACrB,EAAE;QACF,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QACnF,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,gBAAmE;KACxF,CAAC,CAAC;AACP,CAAC;AAED,MAAM,sBAAsB,GAAG,wBAAwB,CACnD,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,CAChC,CAAC;AACF,MAAM,6BAA6B,GAAG,wBAAwB,CAC1D,qCAAqC,EACrC,kCAAkC,EAClC,oCAAoC,CACvC,CAAC;AAEF,MAAM,sBAAsB,GAAG,YAAY,CAAC;IACxC,EAAE,EAAE,6BAA6B;IACjC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,0BAA0B;IACxC,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE;QAC7F,cAAc,EAAE,gBAAgB;QAChC,gBAAgB,EAAE,gBAAgB;QAClC,QAAQ,EAAE,gBAAgB;QAC1B,eAAe,EAAE,gBAAgB;KACpC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,6BAA6B;CAClD,CAAC,CAAC;AAEH,SAAS,sBAAsB,CAC3B,EAAO,EACP,YAAqE,EACrE,gBAAsD;IAEtD,OAAO,YAAY,CAAM;QACrB,EAAE;QACF,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE;YAC3F,cAAc,EAAE,gBAAgB;YAChC,gBAAgB,EAAE,gBAAgB;YAClC,aAAa,EAAE,gBAAgB;YAC/B,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;QACF,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,gBAAmE;KACxF,CAAC,CAAC;AACP,CAAC;AAED,MAAM,sBAAsB,GAAG,sBAAsB,CACjD,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,CAChC,CAAC;AACF,MAAM,sBAAsB,GAAG,sBAAsB,CACjD,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,CAChC,CAAC;AAEF,MAAM,4BAA4B,GAAG,YAAY,CAC7C;IACI,EAAE,EAAE,mCAAmC;IACvC,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,gCAAgC;IAC9C,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE;QAC5F,cAAc,EAAE,gBAAgB;QAChC,gBAAgB,EAAE,gBAAgB;QAClC,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,eAAe;QACzB,eAAe,EAAE,gBAAgB;QACjC,WAAW,EAAE,gBAAgB;KAChC,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,mCAAmC;CACxD,EACD,CAAC,KAAK,EAAE,EAAE;IACN,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACzF,CAAC;AACL,CAAC,CACJ,CAAC;AAEF,SAAS,wBAAwB,CAC7B,EAAO,EACP,YAAkF,EAClF,gBAA4D;IAE5D,OAAO,YAAY,CAAM;QACrB,EAAE;QACF,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,eAAe;QACnC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,YAAY,CACrB,EAAE,KAAK,mCAAmC;YACtC,CAAC,CAAC,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,CAAC;YAC5E,CAAC,CAAC,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAC5D;YACI,qBAAqB,EAAE,gBAAgB;YACvC,cAAc,EAAE,gBAAgB;YAChC,gBAAgB,EAAE,gBAAgB;YAClC,OAAO,EAAE,gBAAgB;SAC5B,CACJ;QACD,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,gBAAmE;KACxF,CAAC,CAAC;AACP,CAAC;AAED,MAAM,4BAA4B,GAAG,wBAAwB,CACzD,mCAAmC,EACnC,gCAAgC,EAChC,mCAAmC,CACtC,CAAC;AACF,MAAM,6BAA6B,GAAG,wBAAwB,CAC1D,oCAAoC,EACpC,iCAAiC,EACjC,oCAAoC,CACvC,CAAC;AAEF,MAAM,iBAAiB,GAAG,YAAY,CAClC;IACI,EAAE,EAAE,yBAAyB;IAC7B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,qBAAqB;IACnC,kBAAkB,EAAE,kBAAkB;IACtC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QACrF,cAAc,EAAE,gBAAgB;QAChC,GAAG,uBAAuB;KAC7B,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,wBAAwB;CAC7C,EACD,mBAAmB,CACtB,CAAC;AAEF,MAAM,kBAAkB,GAAG,YAAY,CACnC;IACI,EAAE,EAAE,yBAAyB;IAC7B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,sBAAsB;IACpC,kBAAkB,EAAE,kBAAkB;IACtC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CACrB,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,EACtF;QACI,mBAAmB,EAAE,gBAAgB;QACrC,gBAAgB,EAAE,EAAE;QACpB,GAAG,uBAAuB;KAC7B,CACJ;IACD,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,yBAAyB;CAC9C,EACD,mBAAmB,CACtB,CAAC;AAEF,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACpC,EAAE,EAAE,uBAAuB;IAC3B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,sBAAsB;IACpC,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,YAAY,CACrB,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,CAAC,EAC1H;QACI,aAAa,EAAE,gBAAgB;QAC/B,aAAa,EAAE,EAAE;QACjB,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,EAAE;QACjB,oBAAoB,EAAE,gBAAgB;QACtC,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,gBAAgB;QAC/B,WAAW,EAAE,gBAAgB;KAChC,CACJ;IACD,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,yBAAyB;CAC9C,CAAC,CAAC;AAEH,SAAS,kBAAkB,CACvB,EAAO,EACP,YAAiE,EACjE,gBAAsD;IAEtD,OAAO,YAAY,CAAM;QACrB,EAAE;QACF,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,YAAY,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QACjF,WAAW,EAAE,kBAAkB;QAC/B,gBAAgB,EAAE,gBAAmE;KACxF,CAAC,CAAC;AACP,CAAC;AAED,MAAM,sBAAsB,GAAG,kBAAkB,CAC7C,2BAA2B,EAC3B,0BAA0B,EAC1B,6BAA6B,CAChC,CAAC;AACF,MAAM,kBAAkB,GAAG,kBAAkB,CACzC,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,CAC5B,CAAC;AAEF,MAAM,UAAU,GAAG,YAAY,CAAC;IAC5B,EAAE,EAAE,uBAAuB;IAC3B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,aAAa;IAC3B,kBAAkB,EAAE,gBAAgB;IACpC,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACnE,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACjC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,YAAY,CAAC;IAC/B,EAAE,EAAE,0BAA0B;IAC9B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,gBAAgB;IAC9B,kBAAkB,EAAE,WAAW;IAC/B,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;QAC/C,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,gBAAgB;KAC9B,CAAC;IACF,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACjC,oBAAoB,CAChB,OAAO,CAAC,KAAK,EACb,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,OAAO,CAAC,WAAW,CACtB;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAyB,MAAM,CAAC,MAAM,CAAC;IACtE,yBAAyB,EAAE,WAAW;IACtC,gCAAgC,EAAE,kBAAkB;IACpD,4BAA4B,EAAE,cAAc;IAC5C,mCAAmC,EAAE,qBAAqB;IAC1D,uBAAuB,EAAE,UAAU;IACnC,qBAAqB,EAAE,QAAQ;IAC/B,0BAA0B,EAAE,aAAa;IACzC,wBAAwB,EAAE,WAAW;IACrC,yBAAyB,EAAE,YAAY;IACvC,yBAAyB,EAAE,YAAY;IACvC,0BAA0B,EAAE,aAAa;IACzC,4BAA4B,EAAE,eAAe;IAC7C,yBAAyB,EAAE,YAAY;IACvC,2BAA2B,EAAE,cAAc;IAC3C,2BAA2B,EAAE,WAAW;IACxC,2BAA2B,EAAE,oBAAoB;IACjD,wBAAwB,EAAE,kBAAkB;IAC5C,iCAAiC,EAAE,0BAA0B;IAC7D,iCAAiC,EAAE,0BAA0B;IAC7D,4BAA4B,EAAE,sBAAsB;IACpD,qCAAqC,EAAE,6BAA6B;IACpE,6BAA6B,EAAE,sBAAsB;IACrD,6BAA6B,EAAE,sBAAsB;IACrD,6BAA6B,EAAE,sBAAsB;IACrD,mCAAmC,EAAE,4BAA4B;IACjE,mCAAmC,EAAE,4BAA4B;IACjE,oCAAoC,EAAE,6BAA6B;IACnE,yBAAyB,EAAE,iBAAiB;IAC5C,yBAAyB,EAAE,kBAAkB;IAC7C,uBAAuB,EAAE,kBAAkB;IAC3C,2BAA2B,EAAE,sBAAsB;IACnD,uBAAuB,EAAE,kBAAkB;IAC3C,uBAAuB,EAAE,UAAU;IACnC,0BAA0B,EAAE,aAAa;CAC5C,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAE7E,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAG9B;IAFZ,IAAI,GAAG,2BAA2B,CAAC;IAE5C,YAAqB,QAAgB;QACjC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAD/B,aAAQ,GAAR,QAAQ,CAAQ;QAEjC,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC/C,CAAC;CACJ;AAED,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAIvC;IACA;IAJJ,IAAI,GAAG,6BAA6B,CAAC;IAE9C,YACa,QAAwB,EACxB,MAA8C;QAEvD,KAAK,CACD,qBAAqB,QAAQ,KAAK,MAAM;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CACpB,CAAC;QAPO,aAAQ,GAAR,QAAQ,CAAgB;QACxB,WAAM,GAAN,MAAM,CAAwC;QAOvD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAChD,CAAC;CACJ;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC1C,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAMD,MAAM,UAAU,yBAAyB,CACrC,QAAgB;IAEhB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,sBAAsB,CAAC,QAAQ,CAA8B,CAAC;AACzE,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,2BAA2B,CACvC,QAAgB,EAChB,OAAuB,EACvB,KAAc;IAEd,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAc,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,6BAA6B,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAc,CAAC,CAAC;AAC3E,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACnD,QAAgB,EAChB,KAAc,EACd,cAAsB;IAEtB,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAc,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,6BAA6B,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,cAAc,EAAE,UAAU,CAAC,EAAE;QAC7B,eAAe,EAAE,8BAA8B;QAC/C,aAAa,EAAE,UAAU,CAAC,OAAO;QACjC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;QACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,aAAa;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK;YACnC,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,cAAc;SACxD,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC3C,OAAyC,EACzC,OAA+C;IAE/C,IACI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QACpC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACC,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACxE,CAAC;IACD,IACI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;QAC1C,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,EAC7C,CAAC;QACC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC"}