@xyo-network/boundwitness-wrapper 2.59.0 → 2.60.0-rc.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.
@@ -5,13 +5,14 @@ const tslib_1 = require("tslib");
5
5
  const assert_1 = require("@xylabs/assert");
6
6
  const boundwitness_model_1 = require("@xyo-network/boundwitness-model");
7
7
  const boundwitness_validator_1 = require("@xyo-network/boundwitness-validator");
8
+ const core_1 = require("@xyo-network/core");
8
9
  const payload_wrapper_1 = require("@xyo-network/payload-wrapper");
9
10
  const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
10
11
  class BoundWitnessWrapper extends payload_wrapper_1.PayloadWrapperBase {
11
12
  constructor(boundwitness, payloads) {
12
13
  super(boundwitness);
13
14
  this.isBoundWitnessWrapper = true;
14
- this.payloads = payloads ? (0, compact_1.default)(payloads) : undefined;
15
+ this._payloads = payloads ? (0, compact_1.default)(payloads.map((payload) => payload_wrapper_1.PayloadWrapper.parse(payload))) : [];
15
16
  }
16
17
  get addresses() {
17
18
  return this.boundwitness.addresses;
@@ -19,40 +20,12 @@ class BoundWitnessWrapper extends payload_wrapper_1.PayloadWrapperBase {
19
20
  get boundwitness() {
20
21
  return this.obj;
21
22
  }
22
- get missingPayloads() {
23
- return this.payloadHashes.filter((hash) => !this.payloads[hash]);
24
- }
25
23
  get payloadHashes() {
26
24
  return this.boundwitness.payload_hashes;
27
25
  }
28
26
  get payloadSchemas() {
29
27
  return this.boundwitness.payload_schemas;
30
28
  }
31
- get payloads() {
32
- var _a;
33
- return (_a = this._payloads) !== null && _a !== void 0 ? _a : {};
34
- }
35
- set payloads(payloads) {
36
- if (Array.isArray(payloads)) {
37
- this._payloads = payloads === null || payloads === void 0 ? void 0 : payloads.reduce((map, payload) => {
38
- const wrapper = payload_wrapper_1.PayloadWrapper.parse(payload);
39
- map[wrapper.hash] = wrapper;
40
- return map;
41
- }, {});
42
- }
43
- else {
44
- this._payloads = payloads;
45
- }
46
- if (this === null || this === void 0 ? void 0 : this._payloads) {
47
- this._payloads = Object.fromEntries(this.payloadHashes.reduce((prev, hash) => {
48
- var _a;
49
- const existing = (_a = this._payloads) === null || _a === void 0 ? void 0 : _a[hash];
50
- if (existing)
51
- prev.push([hash, existing]);
52
- return prev;
53
- }, []));
54
- }
55
- }
56
29
  get payloadsArray() {
57
30
  var _a;
58
31
  return Object.values((_a = this._payloads) !== null && _a !== void 0 ? _a : {});
@@ -68,6 +41,28 @@ class BoundWitnessWrapper extends payload_wrapper_1.PayloadWrapperBase {
68
41
  return boundWitness ? new BoundWitnessWrapper(boundWitness) : null;
69
42
  });
70
43
  }
44
+ static mapPayloads(payloads) {
45
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
46
+ return (yield Promise.all(payloads === null || payloads === void 0 ? void 0 : payloads.map((payload) => tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const unwrapped = (0, assert_1.assertEx)(payload_wrapper_1.PayloadWrapper.unwrap(payload));
48
+ return [unwrapped, yield core_1.Hasher.hashAsync(unwrapped)];
49
+ })))).reduce((map, [payload, payloadHash]) => {
50
+ map[payloadHash] = payload;
51
+ return map;
52
+ }, {});
53
+ });
54
+ }
55
+ static mapWrappedPayloads(payloads) {
56
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
+ return (yield Promise.all(payloads === null || payloads === void 0 ? void 0 : payloads.map((payload) => tslib_1.__awaiter(this, void 0, void 0, function* () {
58
+ const unwrapped = (0, assert_1.assertEx)(payload_wrapper_1.PayloadWrapper.unwrap(payload));
59
+ return [unwrapped, yield core_1.Hasher.hashAsync(unwrapped)];
60
+ })))).reduce((map, [payload, payloadHash]) => {
61
+ map[payloadHash] = payload_wrapper_1.PayloadWrapper.parse(payload);
62
+ return map;
63
+ }, {});
64
+ });
65
+ }
71
66
  static parse(obj, payloads) {
72
67
  const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj;
73
68
  (0, assert_1.assertEx)(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper');
@@ -75,43 +70,123 @@ class BoundWitnessWrapper extends payload_wrapper_1.PayloadWrapperBase {
75
70
  case 'object': {
76
71
  const castWrapper = hydratedObj;
77
72
  const newWrapper = (castWrapper === null || castWrapper === void 0 ? void 0 : castWrapper.isBoundWitnessWrapper) ? castWrapper : new BoundWitnessWrapper(hydratedObj, payloads);
78
- if (!newWrapper.valid) {
79
- console.warn('Wrapped invalid BoundWitness');
80
- }
73
+ /*if (!newWrapper.getValid()) {
74
+ console.warn('Wrapped invalid BoundWitness')
75
+ }*/
81
76
  return newWrapper;
82
77
  }
83
78
  }
84
79
  throw Error(`Unable to parse [${typeof obj}]`);
85
80
  }
81
+ static toWrappedMap(boundWitnesses) {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
+ const result = {};
84
+ yield Promise.all(boundWitnesses.map((payload) => tslib_1.__awaiter(this, void 0, void 0, function* () {
85
+ result[yield BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload);
86
+ })));
87
+ return result;
88
+ });
89
+ }
90
+ static tryParse(obj, payloads) {
91
+ if (obj === undefined)
92
+ return undefined;
93
+ try {
94
+ return this.parse(obj, payloads);
95
+ }
96
+ catch (_ex) {
97
+ return undefined;
98
+ }
99
+ }
100
+ allPayloadMap() {
101
+ var _a;
102
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
103
+ this._allPayloadMap = (_a = this._allPayloadMap) !== null && _a !== void 0 ? _a : (yield BoundWitnessWrapper.mapPayloads(yield this.getAllPayloads()));
104
+ return this._allPayloadMap;
105
+ });
106
+ }
86
107
  dig(depth) {
87
- if (depth === 0)
108
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
109
+ if (depth === 0)
110
+ return this;
111
+ const innerBoundwitnessIndex = this.payloadSchemas.findIndex((item) => item === boundwitness_model_1.BoundWitnessSchema);
112
+ if (innerBoundwitnessIndex > -1) {
113
+ const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
114
+ const innerBoundwitnessPayload = (yield BoundWitnessWrapper.mapWrappedPayloads(yield this.getPayloads()))[innerBoundwitnessHash];
115
+ const innerBoundwitness = innerBoundwitnessPayload
116
+ ? new BoundWitnessWrapper(innerBoundwitnessPayload.body, (yield core_1.Hasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body))
117
+ : undefined;
118
+ if (innerBoundwitness) {
119
+ return innerBoundwitness.dig(depth ? depth - 1 : undefined);
120
+ }
121
+ }
122
+ (0, assert_1.assertEx)(!depth, `Dig failed [Remaining Depth: ${depth}]`);
88
123
  return this;
89
- const innerBoundwitnessIndex = this.payloadSchemas.findIndex((item) => item === boundwitness_model_1.BoundWitnessSchema);
90
- if (innerBoundwitnessIndex > -1) {
91
- const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
92
- const innerBoundwitnessPayload = this.payloads[innerBoundwitnessHash];
93
- const innerBoundwitness = innerBoundwitnessPayload
94
- ? new BoundWitnessWrapper(innerBoundwitnessPayload.body, this.payloadsArray.filter((payload) => payload.hash !== innerBoundwitnessHash).map((item) => item.body))
95
- : undefined;
96
- if (innerBoundwitness) {
97
- return innerBoundwitness.dig(depth ? depth - 1 : undefined);
124
+ });
125
+ }
126
+ getAllPayloads() {
127
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
128
+ return (yield this.getAllWrappedPayloads()).map((payload) => payload.payload);
129
+ });
130
+ }
131
+ getAllWrappedPayloads() {
132
+ return this._payloads;
133
+ }
134
+ getMissingPayloads() {
135
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
136
+ const payloadMap = yield BoundWitnessWrapper.mapPayloads(yield this.getPayloads());
137
+ return this.payloadHashes.filter((hash) => !payloadMap[hash]);
138
+ });
139
+ }
140
+ getPayloads() {
141
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
142
+ return (yield this.getWrappedPayloads()).map((payload) => payload.payload);
143
+ });
144
+ }
145
+ getWrappedPayloads() {
146
+ return this._payloads;
147
+ }
148
+ hashesBySchema(schema) {
149
+ return this.payloadSchemas.reduce((prev, payloadSchema, index) => {
150
+ if (payloadSchema === schema) {
151
+ prev.push(this.payloadHashes[index]);
98
152
  }
99
- }
100
- (0, assert_1.assertEx)(!depth, `Dig failed [Remaining Depth: ${depth}]`);
101
- return this;
153
+ return prev;
154
+ }, []);
102
155
  }
103
- payloadsBySchema(schema) {
156
+ payloadMap() {
104
157
  var _a;
105
- return (_a = Object.values(this.payloads)) === null || _a === void 0 ? void 0 : _a.filter((payload) => payload.schemaName === schema);
158
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
159
+ this._payloadMap = (_a = this._payloadMap) !== null && _a !== void 0 ? _a : (yield BoundWitnessWrapper.mapPayloads(yield this.getPayloads()));
160
+ return this._payloadMap;
161
+ });
162
+ }
163
+ payloadsByHashes(hashes) {
164
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
165
+ const map = yield this.payloadMap();
166
+ return hashes.map((hash) => (0, assert_1.assertEx)(map[hash], 'Hash not found'));
167
+ });
168
+ }
169
+ payloadsBySchema(schema) {
170
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
171
+ return (yield this.getPayloads()).filter((payload) => payload.schema === schema);
172
+ });
106
173
  }
107
174
  prev(address) {
108
175
  return this.previousHashes[this.addresses.findIndex((addr) => address === addr)];
109
176
  }
177
+ /*
178
+ setPayloads(payloads: (TPayload | PayloadWrapper<TPayload>)[]) {
179
+ this._payloadMap = undefined
180
+ this._payloads = compact(payloads.map((payload) => PayloadWrapper.parse<TPayload>(payload)))
181
+ }
182
+ */
110
183
  toResult() {
111
184
  return [this.boundwitness, this.payloadsArray.map((payload) => payload.body)];
112
185
  }
113
186
  validate() {
114
- return new boundwitness_validator_1.BoundWitnessValidator(this.boundwitness).validate();
187
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
188
+ return yield new boundwitness_validator_1.BoundWitnessValidator(this.boundwitness).validate();
189
+ });
115
190
  }
116
191
  }
117
192
  exports.BoundWitnessWrapper = BoundWitnessWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,wEAAyG;AACzG,gFAA2E;AAC3E,4CAAoD;AAEpD,kEAAiF;AAEjF,qEAAoC;AAEpC,MAAa,mBAGX,SAAQ,oCAAiC;IAMzC,YAAY,YAA2B,EAAE,QAAyD;QAChG,KAAK,CAAC,YAAY,CAAC,CAAA;QAHb,0BAAqB,GAAG,IAAI,CAAA;QAIlC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAc,CAAC,KAAK,CAAW,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9G,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAA;IACpC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAA;IACzC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAA;IAC1C,CAAC;IAED,IAAI,aAAa;;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAA;IAC1C,CAAC;IAED,MAAM,CAAgB,IAAI,CAAC,OAAiB;;YAC1C,MAAM,OAAO,GAAG,MAAM,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClD,IAAA,iBAAQ,EAAC,OAAO,IAAI,IAAA,0CAAqB,EAAC,OAAO,CAAC,EAAE,kCAAkC,CAAC,CAAA;YAEvF,MAAM,YAAY,GAA6B,OAAO,IAAI,IAAA,0CAAqB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;YAC9G,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACpE,CAAC;KAAA;IAED,MAAM,CAAO,WAAW,CAA2B,QAAiD;;YAClG,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAA8B,CAAO,OAAO,EAAE,EAAE;gBAC3D,MAAM,SAAS,GAAG,IAAA,iBAAQ,EAAC,gCAAc,CAAC,MAAM,CAAW,OAAO,CAAC,CAAC,CAAA;gBACpE,OAAO,CAAC,SAAS,EAAE,MAAM,aAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;YACvD,CAAC,CAAA,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE;gBACvC,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,CAAA;gBAC1B,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAA8B,CAAC,CAAA;QACpC,CAAC;KAAA;IAED,MAAM,CAAO,kBAAkB,CAC7B,QAAiD;;YAEjD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAA8B,CAAO,OAAO,EAAE,EAAE;gBAC3D,MAAM,SAAS,GAAG,IAAA,iBAAQ,EAAC,gCAAc,CAAC,MAAM,CAAW,OAAO,CAAC,CAAC,CAAA;gBACpE,OAAO,CAAC,SAAS,EAAE,MAAM,aAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;YACvD,CAAC,CAAA,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE;gBACvC,GAAG,CAAC,WAAW,CAAC,GAAG,gCAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAChD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAA8C,CAAC,CAAA;QACpD,CAAC;KAAA;IAED,MAAM,CAAU,KAAK,CAA4C,GAAY,EAAE,QAAc;QAC3F,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACnE,IAAA,iBAAQ,EAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,mDAAmD,CAAC,CAAA;QAC1F,QAAQ,OAAO,WAAW,EAAE;YAC1B,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,WAAwC,CAAA;gBAC5D,MAAM,UAAU,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,qBAAqB,EAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,WAAgB,EAAE,QAAQ,CAAC,CAAA;gBACzH;;mBAEG;gBACH,OAAO,UAAU,CAAA;aAClB;SACF;QACD,MAAM,KAAK,CAAC,oBAAoB,OAAO,GAAG,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAO,YAAY,CAAyB,cAA8C;;YAC9F,MAAM,MAAM,GAA2C,EAAE,CAAA;YACzD,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;gBACnC,MAAM,CAAC,MAAM,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3F,CAAC,CAAA,CAAC,CACH,CAAA;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KAAA;IAED,MAAM,CAAU,QAAQ,CAA4C,GAAY,EAAE,QAAc;QAC9F,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACvC,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAEK,aAAa;;;YACjB,IAAI,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,CAAC,MAAM,mBAAmB,CAAC,WAAW,CAAW,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;YAC3H,OAAO,IAAI,CAAC,cAAc,CAAA;;KAC3B;IAEK,GAAG,CAAC,KAAc;;YACtB,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE5B,MAAM,sBAAsB,GAAW,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,uCAAkB,CAAC,CAAA;YAC3G,IAAI,sBAAsB,GAAG,CAAC,CAAC,EAAE;gBAC/B,MAAM,qBAAqB,GAAW,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;gBAChF,MAAM,wBAAwB,GAAG,CAAC,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;gBAChI,MAAM,iBAAiB,GAAmD,wBAAwB;oBAChG,CAAC,CAAC,IAAI,mBAAmB,CACrB,wBAAwB,CAAC,IAAgC,EACzD,CAAC,MAAM,aAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAgC,CAAC,CAC7H;oBACH,CAAC,CAAC,SAAS,CAAA;gBACb,IAAI,iBAAiB,EAAE;oBACrB,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;iBAC5D;aACF;YACD,IAAA,iBAAQ,EAAC,CAAC,KAAK,EAAE,gCAAgC,KAAK,GAAG,CAAC,CAAA;YAC1D,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAEK,cAAc;;YAClB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/E,CAAC;KAAA;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEK,kBAAkB;;YACtB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAClF,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/D,CAAC;KAAA;IAEK,WAAW;;YACf,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5E,CAAC;KAAA;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE;YACzE,IAAI,aAAa,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;aACrC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAEK,UAAU;;;YACd,IAAI,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,CAAC,MAAM,mBAAmB,CAAC,WAAW,CAAW,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAClH,OAAO,IAAI,CAAC,WAAW,CAAA;;KACxB;IAEK,gBAAgB,CAAqB,MAAgB;;YACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YACnC,OAAO,MAAM,CAAC,GAAG,CAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAM,CAAC,CAAA;QAC5E,CAAC;KAAA;IAEK,gBAAgB,CAAqB,MAAc;;YACvD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAQ,CAAA;QACzF,CAAC;KAAA;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAA;IAClF,CAAC;IAED;;;;;MAKE;IAEF,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/E,CAAC;IAEc,QAAQ;;YACrB,OAAO,MAAM,IAAI,8CAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtE,CAAC;KAAA;CACF;AAvMD,kDAuMC"}