@adcp/sdk 6.7.0 → 6.8.0

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 (166) hide show
  1. package/bin/adcp.js +15 -3
  2. package/dist/lib/adapters/derived-account-store.d.ts +152 -0
  3. package/dist/lib/adapters/derived-account-store.d.ts.map +1 -0
  4. package/dist/lib/adapters/derived-account-store.js +135 -0
  5. package/dist/lib/adapters/derived-account-store.js.map +1 -0
  6. package/dist/lib/adapters/implicit-account-store.d.ts +3 -1
  7. package/dist/lib/adapters/implicit-account-store.d.ts.map +1 -1
  8. package/dist/lib/adapters/implicit-account-store.js +3 -1
  9. package/dist/lib/adapters/implicit-account-store.js.map +1 -1
  10. package/dist/lib/adapters/index.d.ts +1 -0
  11. package/dist/lib/adapters/index.d.ts.map +1 -1
  12. package/dist/lib/adapters/index.js +7 -1
  13. package/dist/lib/adapters/index.js.map +1 -1
  14. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts +3 -1
  15. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts.map +1 -1
  16. package/dist/lib/adapters/oauth-passthrough-resolver.js +3 -1
  17. package/dist/lib/adapters/oauth-passthrough-resolver.js.map +1 -1
  18. package/dist/lib/adapters/roster-account-store.d.ts +85 -24
  19. package/dist/lib/adapters/roster-account-store.d.ts.map +1 -1
  20. package/dist/lib/adapters/roster-account-store.js +52 -30
  21. package/dist/lib/adapters/roster-account-store.js.map +1 -1
  22. package/dist/lib/index.d.ts +3 -3
  23. package/dist/lib/index.d.ts.map +1 -1
  24. package/dist/lib/index.js +13 -8
  25. package/dist/lib/index.js.map +1 -1
  26. package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts +81 -0
  27. package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts.map +1 -0
  28. package/dist/lib/mock-server/creative-ad-server/seed-data.js +200 -0
  29. package/dist/lib/mock-server/creative-ad-server/seed-data.js.map +1 -0
  30. package/dist/lib/mock-server/creative-ad-server/server.d.ts +39 -0
  31. package/dist/lib/mock-server/creative-ad-server/server.d.ts.map +1 -0
  32. package/dist/lib/mock-server/creative-ad-server/server.js +618 -0
  33. package/dist/lib/mock-server/creative-ad-server/server.js.map +1 -0
  34. package/dist/lib/mock-server/index.d.ts.map +1 -1
  35. package/dist/lib/mock-server/index.js +180 -24
  36. package/dist/lib/mock-server/index.js.map +1 -1
  37. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts +66 -0
  38. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts.map +1 -0
  39. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js +193 -0
  40. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js.map +1 -0
  41. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts +33 -0
  42. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts.map +1 -0
  43. package/dist/lib/mock-server/sales-non-guaranteed/server.js +782 -0
  44. package/dist/lib/mock-server/sales-non-guaranteed/server.js.map +1 -0
  45. package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts +50 -0
  46. package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts.map +1 -0
  47. package/dist/lib/mock-server/sponsored-intelligence/seed-data.js +133 -0
  48. package/dist/lib/mock-server/sponsored-intelligence/seed-data.js.map +1 -0
  49. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts +13 -0
  50. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts.map +1 -0
  51. package/dist/lib/mock-server/sponsored-intelligence/server.js +609 -0
  52. package/dist/lib/mock-server/sponsored-intelligence/server.js.map +1 -0
  53. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  54. package/dist/lib/protocols/mcp.js +1 -41
  55. package/dist/lib/protocols/mcp.js.map +1 -1
  56. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  57. package/dist/lib/server/account-mode.d.ts +113 -0
  58. package/dist/lib/server/account-mode.d.ts.map +1 -0
  59. package/dist/lib/server/account-mode.js +125 -0
  60. package/dist/lib/server/account-mode.js.map +1 -0
  61. package/dist/lib/server/adcp-server.js +41 -0
  62. package/dist/lib/server/adcp-server.js.map +1 -1
  63. package/dist/lib/server/auth.d.ts +35 -0
  64. package/dist/lib/server/auth.d.ts.map +1 -1
  65. package/dist/lib/server/auth.js.map +1 -1
  66. package/dist/lib/server/create-adcp-server.d.ts +26 -9
  67. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  68. package/dist/lib/server/create-adcp-server.js +46 -20
  69. package/dist/lib/server/create-adcp-server.js.map +1 -1
  70. package/dist/lib/server/ctx-metadata/store.d.ts +1 -1
  71. package/dist/lib/server/ctx-metadata/store.d.ts.map +1 -1
  72. package/dist/lib/server/ctx-metadata/store.js +1 -0
  73. package/dist/lib/server/ctx-metadata/store.js.map +1 -1
  74. package/dist/lib/server/decisioning/account.d.ts +5 -0
  75. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  76. package/dist/lib/server/decisioning/account.js.map +1 -1
  77. package/dist/lib/server/decisioning/buyer-agent.d.ts +37 -4
  78. package/dist/lib/server/decisioning/buyer-agent.d.ts.map +1 -1
  79. package/dist/lib/server/decisioning/buyer-agent.js +12 -2
  80. package/dist/lib/server/decisioning/buyer-agent.js.map +1 -1
  81. package/dist/lib/server/decisioning/compose.d.ts +33 -2
  82. package/dist/lib/server/decisioning/compose.d.ts.map +1 -1
  83. package/dist/lib/server/decisioning/compose.js +13 -46
  84. package/dist/lib/server/decisioning/compose.js.map +1 -1
  85. package/dist/lib/server/decisioning/index.d.ts +2 -1
  86. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  87. package/dist/lib/server/decisioning/index.js +2 -1
  88. package/dist/lib/server/decisioning/index.js.map +1 -1
  89. package/dist/lib/server/decisioning/platform-helpers.d.ts +18 -0
  90. package/dist/lib/server/decisioning/platform-helpers.d.ts.map +1 -1
  91. package/dist/lib/server/decisioning/platform-helpers.js +20 -0
  92. package/dist/lib/server/decisioning/platform-helpers.js.map +1 -1
  93. package/dist/lib/server/decisioning/platform.d.ts +19 -21
  94. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  95. package/dist/lib/server/decisioning/platform.js.map +1 -1
  96. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  97. package/dist/lib/server/decisioning/runtime/from-platform.js +334 -44
  98. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  99. package/dist/lib/server/decisioning/runtime/observed-modes.d.ts +40 -0
  100. package/dist/lib/server/decisioning/runtime/observed-modes.d.ts.map +1 -0
  101. package/dist/lib/server/decisioning/runtime/observed-modes.js +82 -0
  102. package/dist/lib/server/decisioning/runtime/observed-modes.js.map +1 -0
  103. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js +2 -2
  104. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js.map +1 -1
  105. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  106. package/dist/lib/server/decisioning/runtime/validate-platform.js +9 -1
  107. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  108. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts +125 -0
  109. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts.map +1 -0
  110. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js +52 -0
  111. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js.map +1 -0
  112. package/dist/lib/server/decisioning/tenant-registry.d.ts +16 -0
  113. package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
  114. package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
  115. package/dist/lib/server/index.d.ts +4 -1
  116. package/dist/lib/server/index.d.ts.map +1 -1
  117. package/dist/lib/server/index.js +9 -3
  118. package/dist/lib/server/index.js.map +1 -1
  119. package/dist/lib/server/serve.js +20 -2
  120. package/dist/lib/server/serve.js.map +1 -1
  121. package/dist/lib/server/test-controller.d.ts +3 -0
  122. package/dist/lib/server/test-controller.d.ts.map +1 -1
  123. package/dist/lib/server/test-controller.js +23 -20
  124. package/dist/lib/server/test-controller.js.map +1 -1
  125. package/dist/lib/testing/comply-controller.d.ts +23 -2
  126. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  127. package/dist/lib/testing/comply-controller.js +19 -2
  128. package/dist/lib/testing/comply-controller.js.map +1 -1
  129. package/dist/lib/testing/index.d.ts +1 -1
  130. package/dist/lib/testing/index.d.ts.map +1 -1
  131. package/dist/lib/testing/index.js.map +1 -1
  132. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  133. package/dist/lib/testing/storyboard/validations.js +36 -54
  134. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  135. package/dist/lib/testing/test-controller.d.ts +10 -4
  136. package/dist/lib/testing/test-controller.d.ts.map +1 -1
  137. package/dist/lib/testing/test-controller.js +9 -3
  138. package/dist/lib/testing/test-controller.js.map +1 -1
  139. package/dist/lib/types/index.d.ts +3 -2
  140. package/dist/lib/types/index.d.ts.map +1 -1
  141. package/dist/lib/types/index.js +3 -0
  142. package/dist/lib/types/index.js.map +1 -1
  143. package/dist/lib/utils/glob.d.ts +4 -2
  144. package/dist/lib/utils/glob.d.ts.map +1 -1
  145. package/dist/lib/utils/glob.js +4 -2
  146. package/dist/lib/utils/glob.js.map +1 -1
  147. package/dist/lib/version.d.ts +3 -3
  148. package/dist/lib/version.js +3 -3
  149. package/docs/llms.txt +2 -2
  150. package/examples/README.md +29 -13
  151. package/examples/hello-cluster.ts +62 -23
  152. package/examples/hello_creative_adapter_ad_server.ts +790 -0
  153. package/examples/hello_seller_adapter_guaranteed.ts +80 -22
  154. package/examples/hello_seller_adapter_non_guaranteed.ts +1020 -0
  155. package/examples/hello_si_adapter_brand.ts +572 -0
  156. package/package.json +3 -2
  157. package/skills/build-creative-agent/SKILL.md +103 -183
  158. package/skills/build-generative-seller-agent/SKILL.md +15 -9
  159. package/skills/build-governance-agent/SKILL.md +20 -11
  160. package/skills/build-retail-media-agent/SKILL.md +10 -8
  161. package/skills/build-seller-agent/SKILL.md +15 -13
  162. package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +9 -31
  163. package/skills/build-si-agent/SKILL.md +251 -196
  164. package/skills/build-signals-agent/SKILL.md +2 -0
  165. package/skills/call-adcp-agent/SKILL.md +7 -1
  166. package/skills/call-adcp-agent.previous/SKILL.md +0 -261
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * Seed data for the `sales-non-guaranteed` mock-server.
4
+ *
5
+ * Closes #1457 (sub-issue of #1381). Programmatic-auction shape:
6
+ * floor pricing per product (`min_cpm`), sync confirmation on
7
+ * `POST /v1/orders` (no HITL approval), single-bucket delivery
8
+ * scaling with budget × pacing curve. No guaranteed-availability
9
+ * surface — forecast is `spend`-only with saturating returns at
10
+ * high budgets (auction-clearing premium ~1.3x floor at modest
11
+ * budgets, asymptoting at ~2x).
12
+ *
13
+ * Compare to `sales-guaranteed/seed-data.ts`:
14
+ * - `MockProduct.pricing.cpm` (fixed) → `MockProduct.pricing.min_cpm` (floor) + optional `target_cpm`.
15
+ * - `MockProduct.availability.available_impressions` → out of scope (programmatic).
16
+ * - `MockProduct.delivery_type: 'guaranteed'` → always `'non_guaranteed'`.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.DEFAULT_API_KEY = exports.PRODUCTS = exports.AD_UNITS = exports.NETWORKS = void 0;
20
+ exports.NETWORKS = [
21
+ {
22
+ network_code: 'net_remnant_us',
23
+ display_name: 'Programmatic Remnant Network — US',
24
+ adcp_publisher: 'remnant-network.example',
25
+ },
26
+ {
27
+ network_code: 'net_remnant_eu',
28
+ display_name: 'Programmatic Remnant Network — EU',
29
+ adcp_publisher: 'remnant-network.eu',
30
+ },
31
+ // Storyboard-fixture-aligned entries — the `sales_non_guaranteed`
32
+ // storyboard sends payloads with these publisher domains. Mirrors the
33
+ // pattern from `sales-guaranteed/seed-data.ts`. Without seeded fixture
34
+ // domains, every `_lookup/network` returns 404 and a blind agent has
35
+ // to invent a fallback that contradicts the skill's "fail closed on
36
+ // 404" advice. Track upstream-fixture rationale at adcontextprotocol/adcp#3822.
37
+ {
38
+ network_code: 'net_acmeoutdoor',
39
+ display_name: 'Acme Outdoor Media',
40
+ adcp_publisher: 'acmeoutdoor.example',
41
+ },
42
+ {
43
+ network_code: 'net_pinnacle',
44
+ display_name: 'Pinnacle Agency',
45
+ adcp_publisher: 'pinnacle-agency.example',
46
+ },
47
+ ];
48
+ exports.AD_UNITS = [
49
+ {
50
+ ad_unit_id: 'au_us_display_medrec',
51
+ name: 'US Display Medrec — Run of Network',
52
+ path: '/remnant/us/display/medrec',
53
+ network_code: 'net_remnant_us',
54
+ sizes: [{ width: 300, height: 250 }],
55
+ environment: 'web',
56
+ targetable: true,
57
+ },
58
+ {
59
+ ad_unit_id: 'au_us_display_leaderboard',
60
+ name: 'US Display Leaderboard — Run of Network',
61
+ path: '/remnant/us/display/leaderboard',
62
+ network_code: 'net_remnant_us',
63
+ sizes: [{ width: 728, height: 90 }],
64
+ environment: 'web',
65
+ targetable: true,
66
+ },
67
+ {
68
+ ad_unit_id: 'au_us_video_outstream',
69
+ name: 'US Video Outstream — Run of Network',
70
+ path: '/remnant/us/video/outstream',
71
+ network_code: 'net_remnant_us',
72
+ sizes: [{ width: 640, height: 360 }],
73
+ environment: 'web',
74
+ targetable: true,
75
+ },
76
+ {
77
+ ad_unit_id: 'au_us_ctv_15s',
78
+ name: 'US CTV 15s — Programmatic Remnant',
79
+ path: '/remnant/us/ctv/15s',
80
+ network_code: 'net_remnant_us',
81
+ sizes: [{ width: 1920, height: 1080 }],
82
+ environment: 'ctv',
83
+ targetable: true,
84
+ },
85
+ {
86
+ ad_unit_id: 'au_eu_display_medrec',
87
+ name: 'EU Display Medrec — Run of Network',
88
+ path: '/remnant/eu/display/medrec',
89
+ network_code: 'net_remnant_eu',
90
+ sizes: [{ width: 300, height: 250 }],
91
+ environment: 'web',
92
+ targetable: true,
93
+ },
94
+ // Storyboard-fixture-aligned ad units.
95
+ {
96
+ ad_unit_id: 'au_acmeoutdoor_dooh',
97
+ name: 'Acme Outdoor — DOOH Programmatic',
98
+ path: '/acme/outdoor/dooh',
99
+ network_code: 'net_acmeoutdoor',
100
+ sizes: [{ width: 1920, height: 1080 }],
101
+ environment: 'web',
102
+ targetable: true,
103
+ },
104
+ {
105
+ ad_unit_id: 'au_pinnacle_remnant',
106
+ name: 'Pinnacle Display Remnant',
107
+ path: '/pinnacle/display/remnant',
108
+ network_code: 'net_pinnacle',
109
+ sizes: [{ width: 300, height: 250 }],
110
+ environment: 'web',
111
+ targetable: true,
112
+ },
113
+ ];
114
+ exports.PRODUCTS = [
115
+ {
116
+ product_id: 'display_medrec_remnant',
117
+ name: 'Display Medrec — Remnant',
118
+ network_code: 'net_remnant_us',
119
+ delivery_type: 'non_guaranteed',
120
+ channel: 'display',
121
+ format_ids: ['display_300x250'],
122
+ ad_unit_ids: ['au_us_display_medrec'],
123
+ pricing: { min_cpm: 1.5, target_cpm: 2.25, currency: 'USD' },
124
+ },
125
+ {
126
+ product_id: 'display_leaderboard_remnant',
127
+ name: 'Display Leaderboard — Remnant',
128
+ network_code: 'net_remnant_us',
129
+ delivery_type: 'non_guaranteed',
130
+ channel: 'display',
131
+ format_ids: ['display_728x90'],
132
+ ad_unit_ids: ['au_us_display_leaderboard'],
133
+ pricing: { min_cpm: 1.0, target_cpm: 1.5, currency: 'USD' },
134
+ },
135
+ {
136
+ product_id: 'video_outstream_remnant',
137
+ name: 'Video Outstream — Remnant',
138
+ network_code: 'net_remnant_us',
139
+ delivery_type: 'non_guaranteed',
140
+ channel: 'video',
141
+ format_ids: ['video_30s', 'video_15s'],
142
+ ad_unit_ids: ['au_us_video_outstream'],
143
+ pricing: { min_cpm: 8.0, target_cpm: 12.0, currency: 'USD', min_spend: 1_000 },
144
+ },
145
+ {
146
+ product_id: 'ctv_15s_remnant',
147
+ name: 'CTV 15s — Programmatic Remnant',
148
+ network_code: 'net_remnant_us',
149
+ delivery_type: 'non_guaranteed',
150
+ channel: 'ctv',
151
+ format_ids: ['video_15s'],
152
+ ad_unit_ids: ['au_us_ctv_15s'],
153
+ pricing: { min_cpm: 15.0, target_cpm: 22.0, currency: 'USD', min_spend: 5_000 },
154
+ },
155
+ {
156
+ product_id: 'display_medrec_remnant_eu',
157
+ name: 'Display Medrec — Remnant (EU)',
158
+ network_code: 'net_remnant_eu',
159
+ delivery_type: 'non_guaranteed',
160
+ channel: 'display',
161
+ format_ids: ['display_300x250'],
162
+ ad_unit_ids: ['au_eu_display_medrec'],
163
+ pricing: { min_cpm: 1.2, target_cpm: 1.8, currency: 'EUR' },
164
+ },
165
+ // Storyboard-fixture-aligned products.
166
+ {
167
+ product_id: 'acme_dooh_remnant_q2',
168
+ name: 'Acme Outdoor — DOOH Programmatic Q2',
169
+ network_code: 'net_acmeoutdoor',
170
+ delivery_type: 'non_guaranteed',
171
+ channel: 'video',
172
+ format_ids: ['video_15s'],
173
+ ad_unit_ids: ['au_acmeoutdoor_dooh'],
174
+ pricing: { min_cpm: 6.0, target_cpm: 9.0, currency: 'USD', min_spend: 500 },
175
+ },
176
+ {
177
+ product_id: 'pinnacle_display_remnant_q2',
178
+ name: 'Pinnacle Display Remnant Q2',
179
+ network_code: 'net_pinnacle',
180
+ delivery_type: 'non_guaranteed',
181
+ channel: 'display',
182
+ format_ids: ['display_300x250'],
183
+ ad_unit_ids: ['au_pinnacle_remnant'],
184
+ pricing: { min_cpm: 0.85, target_cpm: 1.3, currency: 'USD' },
185
+ },
186
+ ];
187
+ /** Default static API key (Bearer). Real DSPs / SSPs typically use OAuth
188
+ * or signed-request auth; static Bearer keeps the test surface varied
189
+ * (sales-social already exercises OAuth, sales-guaranteed uses static
190
+ * Bearer too — this mock matches the latter to focus on the auction
191
+ * shape rather than re-exercising OAuth). */
192
+ exports.DEFAULT_API_KEY = 'mock_sales_non_guaranteed_key_do_not_use_in_prod';
193
+ //# sourceMappingURL=seed-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-data.js","sourceRoot":"","sources":["../../../../src/lib/mock-server/sales-non-guaranteed/seed-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `sales-non-guaranteed` upstream-shape mock-server. Programmatic-auction
3
+ * remnant inventory; sync confirmation on `POST /v1/orders`; floor pricing
4
+ * per product; spend-only forecast (no availability check).
5
+ *
6
+ * Closes #1457 (sub-issue of #1381). Pattern modeled on
7
+ * `sales-guaranteed/server.ts` with these deltas:
8
+ *
9
+ * - Order confirmation is **sync**: `POST /v1/orders` returns
10
+ * `status: 'confirmed'` immediately. No HITL approval task.
11
+ * - Pricing is **floor-based** (`min_cpm`). Effective CPM at the
12
+ * requested budget = `target_cpm` if set, else `1.3 × min_cpm`,
13
+ * saturating toward `2 × min_cpm` at high budgets.
14
+ * - Forecast is **`spend`-only**. No `availability` unit; auction
15
+ * mocks don't pre-commit inventory.
16
+ * - Delivery scales with `(budget × elapsed_pct × pacing_curve)`.
17
+ * Pacing modes: `even`, `asap`, `front_loaded`.
18
+ * - No CAPI / conversions surface (out of scope per #1457).
19
+ */
20
+ import { type MockAdUnit, type MockNetwork, type MockProduct } from './seed-data';
21
+ export interface BootOptions {
22
+ port: number;
23
+ apiKey?: string;
24
+ networks?: MockNetwork[];
25
+ adUnits?: MockAdUnit[];
26
+ products?: MockProduct[];
27
+ }
28
+ export interface BootResult {
29
+ url: string;
30
+ close: () => Promise<void>;
31
+ }
32
+ export declare function bootSalesNonGuaranteed(options: BootOptions): Promise<BootResult>;
33
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/lib/mock-server/sales-non-guaranteed/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAsED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA6pBtF"}