@spiffcommerce/core 22.3.0 → 22.4.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.
- package/dist/index.d.ts +28 -1
- package/dist/index.js +895 -836
- package/dist/index.umd.cjs +97 -97
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { createHttpLink as
|
|
2
|
-
import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as
|
|
3
|
-
import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as
|
|
4
|
-
import { setContext as
|
|
5
|
-
import { onError as
|
|
1
|
+
import { createHttpLink as vA, InMemoryCache as HA, ApolloClient as UA, from as kA, gql as f } from "@apollo/client/core";
|
|
2
|
+
import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Ot, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as ct, LayoutElementType as G, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Oe, svgObjectURL as ve, fetchAsString as $, DeleteElementCommand as te, generateDefaultRectangleFrameSvg as ft, GetSVGDimensions as OA, patternImageDataCache as Ft, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as et, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as tt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Ve, applyTextTransformations as At, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as yt, loadFont as gt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as lt, UpdateWorkflowStateCommand as Mt, CommandContext as $A, createCanvas as Ue, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as St, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as Le, domParser as Wt, sanitizeSvgTree as Xt, traverse as ta, xmlSerializer as qt, CreateLayoutCommand as Aa, AspectType as oe, rehydrateSerializedLayout as ae } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as Rs, CreateLayoutCommand as vs, DeleteElementCommand as Hs, FontAlignmentCommand as Us, FontColorCommand as ks, FontSizeCommand as Gs, FontSourceCommand as bs, GroupCommand as Js, LayoutElementFactory as Ts, LayoutElementType as Os, MoveCommand as Ls, ResizeCommand as zs, RotateCommand as Ks, SendBackwardsCommand as js, StepAspectType as Vs, StepType as Ws, TextChangeCommand as Xs, UnitOfMeasurement as qs, UpdateImageSourceCommand as Zs, dataUrlFromExternalUrl as $s, determineCorrectFontSizeAndLines as _s, findElement as eo, frameDataCache as to, generate as Ao, generateSVGWithUnknownColors as ao, getAttributesFromArrayBuffer as no, getAxisAlignedBoundingBox as io, getFrameData as so, getSvgElement as oo, loadFont as ro, patternImageDataCache as co, registerFetchImplementation as go, registerWindowImplementation as lo, rehydrateSerializedLayout as Bo, setCanvasModule as Co, svgToDataUrl as wo } from "@spiffcommerce/papyrus";
|
|
4
|
+
import { setContext as aa } from "@apollo/client/link/context";
|
|
5
|
+
import { onError as na } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as Zt } from "pith";
|
|
7
7
|
import $t from "lodash.debounce";
|
|
8
8
|
import _t from "lodash.isequal";
|
|
9
9
|
import he from "lodash.clonedeep";
|
|
10
10
|
import { toString as eA } from "qrcode";
|
|
11
|
-
import
|
|
11
|
+
import ia from "fuse.js";
|
|
12
12
|
import { split as at } from "unicode-default-word-boundary";
|
|
13
13
|
import Bt from "svg-path-bbox";
|
|
14
14
|
import Yt from "lodash.chunk";
|
|
@@ -17,32 +17,32 @@ class tA extends Error {
|
|
|
17
17
|
super(e), this.name = this.constructor.name;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
class
|
|
20
|
+
class De extends tA {
|
|
21
21
|
constructor(e) {
|
|
22
22
|
super(`ConfigurationError - ${e}`);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
class
|
|
25
|
+
class ke extends De {
|
|
26
26
|
constructor(e) {
|
|
27
27
|
super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
class z extends
|
|
30
|
+
class z extends De {
|
|
31
31
|
constructor(e) {
|
|
32
32
|
super(`Panel not Found: ${e.panelId}`), this.panelId = (e == null ? void 0 : e.panelId) || "N/A";
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
class Ae extends
|
|
35
|
+
class Ae extends De {
|
|
36
36
|
constructor(e) {
|
|
37
37
|
super(`Asset not found for variant: ${e.name}`), this.variant = e;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
class ue extends
|
|
40
|
+
class ue extends De {
|
|
41
41
|
constructor(e) {
|
|
42
42
|
super(`Resource not found for asset: ${e.name}`), this.asset = e;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
class
|
|
45
|
+
class Ge extends De {
|
|
46
46
|
constructor(e, t) {
|
|
47
47
|
super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
|
|
48
48
|
}
|
|
@@ -57,7 +57,7 @@ class b extends ze {
|
|
|
57
57
|
super(`Unhandled Behavior Encountered: ${e}`);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
class
|
|
60
|
+
class Ce extends ze {
|
|
61
61
|
constructor(e) {
|
|
62
62
|
super(`Parsing Error: ${e}`);
|
|
63
63
|
}
|
|
@@ -72,7 +72,7 @@ class Ke extends ze {
|
|
|
72
72
|
super(`Resource Generation Failed: ${e}`);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
class
|
|
75
|
+
class sa {
|
|
76
76
|
get(e) {
|
|
77
77
|
return localStorage.getItem(e) || void 0;
|
|
78
78
|
}
|
|
@@ -115,14 +115,14 @@ class Pt {
|
|
|
115
115
|
this.set(e, A);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
const
|
|
118
|
+
const oa = () => {
|
|
119
119
|
try {
|
|
120
|
-
return localStorage ? new
|
|
120
|
+
return localStorage ? new sa() : new Pt();
|
|
121
121
|
} catch {
|
|
122
122
|
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Pt();
|
|
123
123
|
}
|
|
124
|
-
}, Y =
|
|
125
|
-
class
|
|
124
|
+
}, Y = oa();
|
|
125
|
+
class ra {
|
|
126
126
|
constructor() {
|
|
127
127
|
this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
|
|
128
128
|
}
|
|
@@ -148,32 +148,32 @@ class sa {
|
|
|
148
148
|
this.serverUrlCallbacks.push(e);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
const q = new
|
|
151
|
+
const q = new ra();
|
|
152
152
|
let AA;
|
|
153
153
|
const xt = (c) => {
|
|
154
154
|
AA = c;
|
|
155
155
|
};
|
|
156
|
-
let
|
|
157
|
-
const oa = (c) => {
|
|
158
|
-
Ct = c;
|
|
159
|
-
}, ra = () => Ct;
|
|
160
|
-
let aA;
|
|
156
|
+
let dt;
|
|
161
157
|
const ca = (c) => {
|
|
158
|
+
dt = c;
|
|
159
|
+
}, ga = () => dt;
|
|
160
|
+
let aA;
|
|
161
|
+
const la = (c) => {
|
|
162
162
|
aA = c;
|
|
163
|
-
},
|
|
163
|
+
}, Ba = () => new Promise((c) => {
|
|
164
164
|
const e = q.getHubUrl(), t = (A) => {
|
|
165
165
|
A.origin === e && (window.removeEventListener("message", t), c(A.data));
|
|
166
166
|
};
|
|
167
167
|
window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
|
|
168
|
-
}),
|
|
168
|
+
}), da = async () => {
|
|
169
169
|
const c = {
|
|
170
|
-
applicationKey:
|
|
170
|
+
applicationKey: dt,
|
|
171
171
|
customerToken: AA,
|
|
172
172
|
bearer: aA
|
|
173
173
|
};
|
|
174
|
-
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await
|
|
174
|
+
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...c } : c;
|
|
175
175
|
};
|
|
176
|
-
class
|
|
176
|
+
class Ca {
|
|
177
177
|
constructor() {
|
|
178
178
|
this.shadowGraphqlClient = this.constructShadowGraphqlClient(), q.addServerUrlCallback(() => {
|
|
179
179
|
this.shadowGraphqlClient = this.constructShadowGraphqlClient();
|
|
@@ -183,27 +183,27 @@ class Ba {
|
|
|
183
183
|
return this.shadowGraphqlClient;
|
|
184
184
|
}
|
|
185
185
|
constructShadowGraphqlClient() {
|
|
186
|
-
const e =
|
|
186
|
+
const e = vA({
|
|
187
187
|
uri: `${q.getServerUrl()}/graphql`,
|
|
188
188
|
fetch: ot
|
|
189
|
-
}), t =
|
|
190
|
-
const { headers: o } = s, r = o || {}, g = await
|
|
189
|
+
}), t = aa(async (i, s) => {
|
|
190
|
+
const { headers: o } = s, r = o || {}, g = await da(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, C = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, w = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
|
|
191
191
|
try {
|
|
192
192
|
if (window && window.__SENTRY__) {
|
|
193
193
|
const h = window.__SENTRY__.hub;
|
|
194
194
|
if (h) {
|
|
195
195
|
const I = h.traceHeaders();
|
|
196
|
-
Object.entries(I).forEach(([
|
|
197
|
-
r[
|
|
196
|
+
Object.entries(I).forEach(([D, m]) => {
|
|
197
|
+
r[D] = m;
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
} catch {
|
|
202
202
|
}
|
|
203
|
-
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l),
|
|
203
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), E && (r.customerToken = E), w && (r["X-Application-Key"] = w), u && (r.bundleOwnerId = u), {
|
|
204
204
|
headers: r
|
|
205
205
|
};
|
|
206
|
-
}), A =
|
|
206
|
+
}), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
|
|
207
207
|
const r = s || [];
|
|
208
208
|
o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + i.operationName));
|
|
209
209
|
});
|
|
@@ -217,7 +217,7 @@ class Ba {
|
|
|
217
217
|
}
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
|
-
const n = new
|
|
220
|
+
const n = new HA({
|
|
221
221
|
addTypename: !1,
|
|
222
222
|
typePolicies: {
|
|
223
223
|
Transaction: {
|
|
@@ -251,22 +251,22 @@ class Ba {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
});
|
|
254
|
-
return new
|
|
255
|
-
link:
|
|
254
|
+
return new UA({
|
|
255
|
+
link: kA([A, t, e]),
|
|
256
256
|
cache: n,
|
|
257
257
|
name: "Core"
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
const P = new
|
|
261
|
+
const P = new Ca(), wa = f`
|
|
262
262
|
fragment AssetMetadataFields on Asset {
|
|
263
263
|
metadata {
|
|
264
264
|
key
|
|
265
265
|
value
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
`,
|
|
269
|
-
${c &&
|
|
268
|
+
`, Ie = (c) => f`
|
|
269
|
+
${c && wa || ""}
|
|
270
270
|
fragment AssetFields on Asset {
|
|
271
271
|
name
|
|
272
272
|
key
|
|
@@ -280,14 +280,14 @@ const P = new Ba(), Ca = f`
|
|
|
280
280
|
}
|
|
281
281
|
${c && "...AssetMetadataFields" || ""}
|
|
282
282
|
}
|
|
283
|
-
`,
|
|
284
|
-
${
|
|
283
|
+
`, Ea = f`
|
|
284
|
+
${Ie(!1)}
|
|
285
285
|
query GetAssets($keys: [String]!) {
|
|
286
286
|
assets(keys: $keys) {
|
|
287
287
|
...AssetFields
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
`,
|
|
290
|
+
`, Ct = f`
|
|
291
291
|
fragment MaterialFields on Material {
|
|
292
292
|
id
|
|
293
293
|
name
|
|
@@ -334,14 +334,14 @@ const P = new Ba(), Ca = f`
|
|
|
334
334
|
fileLink
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
|
-
`,
|
|
338
|
-
${
|
|
337
|
+
`, ha = f`
|
|
338
|
+
${Ct}
|
|
339
339
|
query GetMaterials($ids: [String]) {
|
|
340
340
|
materials(id: $ids) {
|
|
341
341
|
...MaterialFields
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
|
-
`,
|
|
344
|
+
`, ua = f`
|
|
345
345
|
mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
|
|
346
346
|
assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
|
|
347
347
|
uploadUrl
|
|
@@ -355,31 +355,31 @@ const P = new Ba(), Ca = f`
|
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
`,
|
|
359
|
-
${
|
|
358
|
+
`, Qa = f`
|
|
359
|
+
${Ie(!1)}
|
|
360
360
|
mutation RemoveBackgroundFromAsset($key: String!) {
|
|
361
361
|
assetRemoveBackground(key: $key) {
|
|
362
362
|
...AssetFields
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
`, nt = async (c) => (await P.getShadowGraphqlClient().query({
|
|
366
|
-
query:
|
|
366
|
+
query: Ea,
|
|
367
367
|
errorPolicy: "all",
|
|
368
368
|
fetchPolicy: "no-cache",
|
|
369
369
|
variables: {
|
|
370
370
|
keys: c
|
|
371
371
|
}
|
|
372
|
-
})).data.assets,
|
|
373
|
-
query:
|
|
372
|
+
})).data.assets, ma = async (c) => (await P.getShadowGraphqlClient().query({
|
|
373
|
+
query: ha,
|
|
374
374
|
errorPolicy: "all",
|
|
375
375
|
fetchPolicy: "no-cache",
|
|
376
376
|
variables: {
|
|
377
377
|
ids: c
|
|
378
378
|
}
|
|
379
|
-
})).data.materials,
|
|
379
|
+
})).data.materials, pa = async (c, e, t, A, a) => {
|
|
380
380
|
var i;
|
|
381
381
|
return (i = (await P.getShadowGraphqlClient().mutate({
|
|
382
|
-
mutation:
|
|
382
|
+
mutation: ua,
|
|
383
383
|
errorPolicy: "all",
|
|
384
384
|
fetchPolicy: "no-cache",
|
|
385
385
|
variables: {
|
|
@@ -391,7 +391,7 @@ const P = new Ba(), Ca = f`
|
|
|
391
391
|
}
|
|
392
392
|
})).data) == null ? void 0 : i.assetCreate;
|
|
393
393
|
};
|
|
394
|
-
class
|
|
394
|
+
class Da {
|
|
395
395
|
constructor() {
|
|
396
396
|
this.cache = /* @__PURE__ */ new Map(), this.bgrmProcessCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (e) => {
|
|
397
397
|
const t = await e.arrayBuffer(), A = await Tt(t), a = (n, i) => {
|
|
@@ -458,7 +458,7 @@ class ma {
|
|
|
458
458
|
async getMaterialLocalOrFromServer(e) {
|
|
459
459
|
if (this.materialCache.has(e))
|
|
460
460
|
return this.materialCache.get(e);
|
|
461
|
-
const A = (async () => (await
|
|
461
|
+
const A = (async () => (await ma([e]))[0])();
|
|
462
462
|
return this.materialCache.set(e, A), A;
|
|
463
463
|
}
|
|
464
464
|
/**
|
|
@@ -507,7 +507,7 @@ class ma {
|
|
|
507
507
|
const a = (async () => {
|
|
508
508
|
var i, s;
|
|
509
509
|
const n = await P.getShadowGraphqlClient().mutate({
|
|
510
|
-
mutation:
|
|
510
|
+
mutation: Qa,
|
|
511
511
|
fetchPolicy: "no-cache",
|
|
512
512
|
errorPolicy: "all",
|
|
513
513
|
variables: {
|
|
@@ -541,7 +541,7 @@ class ma {
|
|
|
541
541
|
* @param assetType The type of asset we're expecting to upload
|
|
542
542
|
*/
|
|
543
543
|
async dispatchCreateAssetRequest(e, t, A, a) {
|
|
544
|
-
const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await
|
|
544
|
+
const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await pa(e.name, t, n, A, a);
|
|
545
545
|
if (i)
|
|
546
546
|
return {
|
|
547
547
|
assetResponse: i,
|
|
@@ -648,8 +648,8 @@ class K {
|
|
|
648
648
|
Y.setMap(Nt, e);
|
|
649
649
|
}
|
|
650
650
|
}
|
|
651
|
-
const U = new
|
|
652
|
-
class
|
|
651
|
+
const U = new Da();
|
|
652
|
+
class Ia {
|
|
653
653
|
constructor() {
|
|
654
654
|
this.cache = {}, this.disabled = !1;
|
|
655
655
|
}
|
|
@@ -680,7 +680,7 @@ class pa {
|
|
|
680
680
|
this.disabled = e;
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
const Qe = new
|
|
683
|
+
const Qe = new Ia(), iA = f`
|
|
684
684
|
fragment OptionFields on Option {
|
|
685
685
|
id
|
|
686
686
|
name
|
|
@@ -720,18 +720,18 @@ const Qe = new pa(), iA = f`
|
|
|
720
720
|
...AssetFields
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
|
-
`,
|
|
724
|
-
${
|
|
725
|
-
${
|
|
723
|
+
`, fa = f`
|
|
724
|
+
${Ie(!1)}
|
|
725
|
+
${Ct}
|
|
726
726
|
${iA}
|
|
727
727
|
query GetOptions($ids: [String]!) {
|
|
728
728
|
options(ids: $ids) {
|
|
729
729
|
...OptionFields
|
|
730
730
|
}
|
|
731
731
|
}
|
|
732
|
-
`,
|
|
732
|
+
`, Fa = async (c) => {
|
|
733
733
|
const e = await P.getShadowGraphqlClient().query({
|
|
734
|
-
query:
|
|
734
|
+
query: fa,
|
|
735
735
|
errorPolicy: "all",
|
|
736
736
|
fetchPolicy: "no-cache",
|
|
737
737
|
variables: {
|
|
@@ -744,16 +744,16 @@ const Qe = new pa(), iA = f`
|
|
|
744
744
|
n.asset && U.cacheAsset(n.asset), n.displayImage && U.cacheAsset(n.displayImage), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
|
|
745
745
|
});
|
|
746
746
|
}), e.data.options;
|
|
747
|
-
},
|
|
747
|
+
}, ya = async (c, e) => (await e).find((A) => A.id === c), Ma = async (c) => {
|
|
748
748
|
const e = c.map((i) => Qe.get({ id: i })), t = c.filter((i, s) => e[s] === void 0);
|
|
749
749
|
if (t.length === 0)
|
|
750
750
|
return Promise.all(e);
|
|
751
|
-
const A =
|
|
752
|
-
(i) => Qe.set({ id: i },
|
|
751
|
+
const A = Fa(t), a = t.map(
|
|
752
|
+
(i) => Qe.set({ id: i }, ya(i, A))
|
|
753
753
|
), n = e.filter((i) => i !== void 0);
|
|
754
754
|
return await Promise.all(n.concat(a));
|
|
755
755
|
};
|
|
756
|
-
class
|
|
756
|
+
class Sa {
|
|
757
757
|
constructor() {
|
|
758
758
|
this.getDisplayImageSource = (e) => {
|
|
759
759
|
var t;
|
|
@@ -774,7 +774,7 @@ class ya {
|
|
|
774
774
|
*/
|
|
775
775
|
async getOption(e) {
|
|
776
776
|
return (async () => {
|
|
777
|
-
const a = (await
|
|
777
|
+
const a = (await Ma([e]))[0];
|
|
778
778
|
if (a)
|
|
779
779
|
return a;
|
|
780
780
|
})();
|
|
@@ -806,8 +806,8 @@ class ya {
|
|
|
806
806
|
}
|
|
807
807
|
}
|
|
808
808
|
}
|
|
809
|
-
const j = new
|
|
810
|
-
var
|
|
809
|
+
const j = new Sa();
|
|
810
|
+
var Ya = /* @__PURE__ */ ((c) => (c.Hyperlink = "Hyperlink", c.Edit = "Edit", c.Approve = "Approve", c))(Ya || {}), Pa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(Pa || {}), wt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(wt || {}), xa = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(xa || {}), Na = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(Na || {}), Ra = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ra || {}), be = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(be || {});
|
|
811
811
|
const sA = f`
|
|
812
812
|
fragment ActiveIntegrationFields on Integration {
|
|
813
813
|
id
|
|
@@ -825,7 +825,7 @@ const sA = f`
|
|
|
825
825
|
activeAddons
|
|
826
826
|
}
|
|
827
827
|
}
|
|
828
|
-
`,
|
|
828
|
+
`, va = f`
|
|
829
829
|
${sA}
|
|
830
830
|
query GetCurrentIntegration {
|
|
831
831
|
currentIntegration {
|
|
@@ -850,7 +850,7 @@ const sA = f`
|
|
|
850
850
|
preloadImageUrl
|
|
851
851
|
}
|
|
852
852
|
}
|
|
853
|
-
`,
|
|
853
|
+
`, Rt = f`
|
|
854
854
|
${ge}
|
|
855
855
|
mutation CreateTransaction(
|
|
856
856
|
$integrationProductId: String
|
|
@@ -946,7 +946,7 @@ const sA = f`
|
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
948
|
}
|
|
949
|
-
`,
|
|
949
|
+
`, Ha = f`
|
|
950
950
|
${ge}
|
|
951
951
|
mutation CreateTransactions(
|
|
952
952
|
$inputs: [TransactionCreateInput]!
|
|
@@ -1032,7 +1032,7 @@ const sA = f`
|
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
1034
1034
|
}
|
|
1035
|
-
`,
|
|
1035
|
+
`, Ua = f`
|
|
1036
1036
|
${ge}
|
|
1037
1037
|
mutation ClaimTransaction($id: String!) {
|
|
1038
1038
|
transactionClaim(id: $id) {
|
|
@@ -1127,7 +1127,7 @@ const sA = f`
|
|
|
1127
1127
|
precedence
|
|
1128
1128
|
url
|
|
1129
1129
|
}
|
|
1130
|
-
`,
|
|
1130
|
+
`, Fe = f`
|
|
1131
1131
|
${ge}
|
|
1132
1132
|
${oA}
|
|
1133
1133
|
${rA}
|
|
@@ -1267,19 +1267,19 @@ const sA = f`
|
|
|
1267
1267
|
}
|
|
1268
1268
|
}
|
|
1269
1269
|
}
|
|
1270
|
-
`,
|
|
1270
|
+
`, ka = f`
|
|
1271
1271
|
mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
|
|
1272
1272
|
transactionUpdate(id: $id, workflowState: $workflowState) {
|
|
1273
1273
|
id
|
|
1274
1274
|
}
|
|
1275
1275
|
}
|
|
1276
|
-
`,
|
|
1276
|
+
`, Ga = f`
|
|
1277
1277
|
mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
|
|
1278
1278
|
transactionUpdate(id: $id, workflowId: $workflowId) {
|
|
1279
1279
|
id
|
|
1280
1280
|
}
|
|
1281
1281
|
}
|
|
1282
|
-
`,
|
|
1282
|
+
`, ba = f`
|
|
1283
1283
|
mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
|
|
1284
1284
|
transactionUpdate(id: $id, quantity: $quantity) {
|
|
1285
1285
|
id
|
|
@@ -1332,7 +1332,7 @@ f`
|
|
|
1332
1332
|
}
|
|
1333
1333
|
}
|
|
1334
1334
|
`;
|
|
1335
|
-
const
|
|
1335
|
+
const Ja = f`
|
|
1336
1336
|
${rA}
|
|
1337
1337
|
query ReadTransactionForShareActions($id: String!) {
|
|
1338
1338
|
transactions(ids: [$id]) {
|
|
@@ -1412,14 +1412,14 @@ const Ga = f`
|
|
|
1412
1412
|
}
|
|
1413
1413
|
}
|
|
1414
1414
|
}
|
|
1415
|
-
`,
|
|
1415
|
+
`, Ta = f`
|
|
1416
1416
|
${gA}
|
|
1417
1417
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1418
1418
|
integrationProducts(ids: $ids) {
|
|
1419
1419
|
...IntegrationProductFields
|
|
1420
1420
|
}
|
|
1421
1421
|
}
|
|
1422
|
-
`,
|
|
1422
|
+
`, Oa = f`
|
|
1423
1423
|
${gA}
|
|
1424
1424
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1425
1425
|
integrationProductFromExternalIds(
|
|
@@ -1429,7 +1429,7 @@ const Ga = f`
|
|
|
1429
1429
|
...IntegrationProductFields
|
|
1430
1430
|
}
|
|
1431
1431
|
}
|
|
1432
|
-
`,
|
|
1432
|
+
`, La = f`
|
|
1433
1433
|
${oA}
|
|
1434
1434
|
query ReadTransactionForStakeholders($id: String!) {
|
|
1435
1435
|
transactions(ids: [$id]) {
|
|
@@ -1441,7 +1441,7 @@ const Ga = f`
|
|
|
1441
1441
|
}
|
|
1442
1442
|
}
|
|
1443
1443
|
}
|
|
1444
|
-
`, Be = [F.SilentIllustration, F.ProductOverlay],
|
|
1444
|
+
`, Be = [F.SilentIllustration, F.ProductOverlay], za = async (c) => {
|
|
1445
1445
|
const e = [];
|
|
1446
1446
|
c.introduction && e.push({
|
|
1447
1447
|
name: "Introduction",
|
|
@@ -1459,7 +1459,7 @@ const Ga = f`
|
|
|
1459
1459
|
silentSteps: []
|
|
1460
1460
|
});
|
|
1461
1461
|
for (const A of c.steps) {
|
|
1462
|
-
const a =
|
|
1462
|
+
const a = Ka(A.stepName, c.stepGroups);
|
|
1463
1463
|
if (!a)
|
|
1464
1464
|
e.push({
|
|
1465
1465
|
name: A.stepName,
|
|
@@ -1496,7 +1496,7 @@ const Ga = f`
|
|
|
1496
1496
|
],
|
|
1497
1497
|
silentSteps: []
|
|
1498
1498
|
}), e;
|
|
1499
|
-
},
|
|
1499
|
+
}, Ka = (c, e) => e.find((t) => t.stepNames.includes(c)), re = (c, e) => (c.conditions || []).every((t) => {
|
|
1500
1500
|
const A = e[t.targetStepName];
|
|
1501
1501
|
if (A && A.selectedVariants) {
|
|
1502
1502
|
const a = A.selectedVariants;
|
|
@@ -1505,7 +1505,7 @@ const Ga = f`
|
|
|
1505
1505
|
);
|
|
1506
1506
|
}
|
|
1507
1507
|
return !1;
|
|
1508
|
-
}),
|
|
1508
|
+
}), ja = (c, e) => {
|
|
1509
1509
|
const t = {
|
|
1510
1510
|
name: c.name,
|
|
1511
1511
|
title: c.title,
|
|
@@ -1513,7 +1513,7 @@ const Ga = f`
|
|
|
1513
1513
|
silentSteps: c.silentSteps.filter((A) => re(A, e))
|
|
1514
1514
|
};
|
|
1515
1515
|
return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
|
|
1516
|
-
}, se = (c, e) => c.map((t) =>
|
|
1516
|
+
}, se = (c, e) => c.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (c, e, t = !1) => {
|
|
1517
1517
|
var i;
|
|
1518
1518
|
const A = se(c, e), a = [];
|
|
1519
1519
|
for (const s of A)
|
|
@@ -1605,21 +1605,21 @@ class BA {
|
|
|
1605
1605
|
}
|
|
1606
1606
|
}
|
|
1607
1607
|
}
|
|
1608
|
-
function
|
|
1608
|
+
function Wa(c, e, t, A) {
|
|
1609
1609
|
const a = t.width * c.zoom, n = t.height * c.zoom;
|
|
1610
1610
|
if (A) {
|
|
1611
1611
|
const s = c, o = Math.max(e.width / t.width, e.height / t.height);
|
|
1612
1612
|
s.zoom = Math.max(o, c.zoom);
|
|
1613
1613
|
const r = t.width * s.zoom, g = t.height * s.zoom;
|
|
1614
|
-
return s.x =
|
|
1614
|
+
return s.x = ye(c.x, e.width - r, 0), s.y = ye(c.y, e.height - g, 0), s;
|
|
1615
1615
|
}
|
|
1616
1616
|
const i = c;
|
|
1617
|
-
return i.x =
|
|
1617
|
+
return i.x = ye(i.x, -a, e.width), i.y = ye(i.y, -n, e.height), i;
|
|
1618
1618
|
}
|
|
1619
|
-
function
|
|
1619
|
+
function ye(c, e, t) {
|
|
1620
1620
|
return Math.min(Math.max(c, e), t);
|
|
1621
1621
|
}
|
|
1622
|
-
class
|
|
1622
|
+
class Xa {
|
|
1623
1623
|
constructor(e) {
|
|
1624
1624
|
this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = $t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
|
|
1625
1625
|
useThreshold: !1,
|
|
@@ -1676,7 +1676,7 @@ class Va {
|
|
|
1676
1676
|
return;
|
|
1677
1677
|
}
|
|
1678
1678
|
e.forEach((t, A) => {
|
|
1679
|
-
const a =
|
|
1679
|
+
const a = GA.get(t);
|
|
1680
1680
|
a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
|
|
1681
1681
|
});
|
|
1682
1682
|
}
|
|
@@ -1694,8 +1694,8 @@ class Va {
|
|
|
1694
1694
|
getImageSrc() {
|
|
1695
1695
|
if (this.imageData) {
|
|
1696
1696
|
if (this.imageData.svg) {
|
|
1697
|
-
const e =
|
|
1698
|
-
return
|
|
1697
|
+
const e = bA(this.imageData.svg, this.imageData.colors || {}, !1);
|
|
1698
|
+
return JA(e);
|
|
1699
1699
|
}
|
|
1700
1700
|
return this.imageData.src;
|
|
1701
1701
|
}
|
|
@@ -1762,7 +1762,7 @@ class Va {
|
|
|
1762
1762
|
return;
|
|
1763
1763
|
}
|
|
1764
1764
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i, s) => {
|
|
1765
|
-
this.offsets[s] =
|
|
1765
|
+
this.offsets[s] = Wa(e[s], i, this.imageData, this.forceImageCover);
|
|
1766
1766
|
}), this._debouncedUpdateFrameOffsets(
|
|
1767
1767
|
this.offsets,
|
|
1768
1768
|
a,
|
|
@@ -1806,7 +1806,7 @@ class Va {
|
|
|
1806
1806
|
i(
|
|
1807
1807
|
new k([
|
|
1808
1808
|
new Ot(s, t, e[o]),
|
|
1809
|
-
new
|
|
1809
|
+
new TA(
|
|
1810
1810
|
s,
|
|
1811
1811
|
a.useThreshold,
|
|
1812
1812
|
a.invertThreshold,
|
|
@@ -1836,7 +1836,7 @@ class Va {
|
|
|
1836
1836
|
}), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
|
|
1837
1837
|
}
|
|
1838
1838
|
}
|
|
1839
|
-
class
|
|
1839
|
+
class vt {
|
|
1840
1840
|
constructor(e, t, A) {
|
|
1841
1841
|
this.processRegion = async (a) => {
|
|
1842
1842
|
var o, r, g, B;
|
|
@@ -1847,14 +1847,14 @@ class Rt {
|
|
|
1847
1847
|
if (this.configuration.type === F.ProductOverlay) {
|
|
1848
1848
|
let l = "";
|
|
1849
1849
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1850
|
-
throw new
|
|
1850
|
+
throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1851
1851
|
}
|
|
1852
1852
|
const s = this.evaluateAssetType();
|
|
1853
1853
|
if (s === G.Image) {
|
|
1854
1854
|
const l = this.configuration.type === F.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
|
|
1855
1855
|
if (!l)
|
|
1856
1856
|
throw new Error("Undefined raster silent step source");
|
|
1857
|
-
const
|
|
1857
|
+
const d = {
|
|
1858
1858
|
stepName: this.configuration.stepName,
|
|
1859
1859
|
id: J(),
|
|
1860
1860
|
src: l,
|
|
@@ -1873,13 +1873,13 @@ class Rt {
|
|
|
1873
1873
|
};
|
|
1874
1874
|
return {
|
|
1875
1875
|
regionElement: {
|
|
1876
|
-
id:
|
|
1876
|
+
id: d.id,
|
|
1877
1877
|
region: a
|
|
1878
1878
|
},
|
|
1879
|
-
command: new O(
|
|
1879
|
+
command: new O(d, n)
|
|
1880
1880
|
};
|
|
1881
1881
|
} else {
|
|
1882
|
-
const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i,
|
|
1882
|
+
const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Oe(await (async () => new Promise((w, u) => {
|
|
1883
1883
|
if (!l) {
|
|
1884
1884
|
u("Undefined vector silent step source");
|
|
1885
1885
|
return;
|
|
@@ -1890,10 +1890,10 @@ class Rt {
|
|
|
1890
1890
|
}))()), E = {
|
|
1891
1891
|
stepName: this.configuration.stepName,
|
|
1892
1892
|
id: J(),
|
|
1893
|
-
cachedObjectURL: await ve(
|
|
1893
|
+
cachedObjectURL: await ve(C.svg),
|
|
1894
1894
|
src: l,
|
|
1895
|
-
svg:
|
|
1896
|
-
colors:
|
|
1895
|
+
svg: C.svg,
|
|
1896
|
+
colors: C.colors,
|
|
1897
1897
|
type: s,
|
|
1898
1898
|
y: a.top,
|
|
1899
1899
|
x: a.left,
|
|
@@ -1918,7 +1918,7 @@ class Rt {
|
|
|
1918
1918
|
}
|
|
1919
1919
|
async trigger() {
|
|
1920
1920
|
if (!this.configuration.data.regions)
|
|
1921
|
-
throw new
|
|
1921
|
+
throw new Ge(this.configuration, "Missing regions.");
|
|
1922
1922
|
if (this.configuration.type === F.SilentIllustration) {
|
|
1923
1923
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1924
1924
|
return Promise.all(e);
|
|
@@ -1937,7 +1937,7 @@ class Rt {
|
|
|
1937
1937
|
return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? G.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? G.Illustration : G.Illustration;
|
|
1938
1938
|
}
|
|
1939
1939
|
}
|
|
1940
|
-
const
|
|
1940
|
+
const qa = async (c) => {
|
|
1941
1941
|
const e = `${q.getServicesApiUrl()}/shortener`;
|
|
1942
1942
|
try {
|
|
1943
1943
|
return (await (await fetch(e, {
|
|
@@ -1951,7 +1951,7 @@ const Wa = async (c) => {
|
|
|
1951
1951
|
throw console.error(t), new Ke("Failed to shorten URL, see console.");
|
|
1952
1952
|
}
|
|
1953
1953
|
};
|
|
1954
|
-
class
|
|
1954
|
+
class dA {
|
|
1955
1955
|
async poll() {
|
|
1956
1956
|
try {
|
|
1957
1957
|
if (await this.predicate()) {
|
|
@@ -1974,7 +1974,7 @@ class CA {
|
|
|
1974
1974
|
this.onSuccess = t, this.onFailure = A, this.predicate = e, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = n, this.poll();
|
|
1975
1975
|
}
|
|
1976
1976
|
}
|
|
1977
|
-
class
|
|
1977
|
+
class Za {
|
|
1978
1978
|
async init(e, t, A) {
|
|
1979
1979
|
return A && await this.reload(e, t, A), null;
|
|
1980
1980
|
}
|
|
@@ -1992,49 +1992,46 @@ class Xa {
|
|
|
1992
1992
|
});
|
|
1993
1993
|
});
|
|
1994
1994
|
}
|
|
1995
|
-
async regenerateQRCode(e, t, A, a
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
(
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
videoUrl: a
|
|
2034
|
-
}), r(!1);
|
|
1995
|
+
async regenerateQRCode(e, t, A, a) {
|
|
1996
|
+
const n = async () => {
|
|
1997
|
+
var E, w;
|
|
1998
|
+
const d = (await nt([t]))[0], C = (w = (E = d == null ? void 0 : d.versions) == null ? void 0 : E.find((u) => u.name === "mpeg4")) == null ? void 0 : w.link;
|
|
1999
|
+
return { asset: d, link: C };
|
|
2000
|
+
}, i = await new Promise((d, C) => {
|
|
2001
|
+
new dA(
|
|
2002
|
+
async () => !!(await n()).link,
|
|
2003
|
+
async () => {
|
|
2004
|
+
const E = await n();
|
|
2005
|
+
if (!E.link || !E.link)
|
|
2006
|
+
throw new ue(E.asset);
|
|
2007
|
+
d({
|
|
2008
|
+
rel: "mpeg4",
|
|
2009
|
+
href: E.link
|
|
2010
|
+
});
|
|
2011
|
+
},
|
|
2012
|
+
() => {
|
|
2013
|
+
C("Poller timed out with 40 attempts @ 3 second interval");
|
|
2014
|
+
},
|
|
2015
|
+
3e3,
|
|
2016
|
+
40
|
|
2017
|
+
);
|
|
2018
|
+
});
|
|
2019
|
+
e.forEach((d) => A.getCommandDispatcher()(new te(d.id)));
|
|
2020
|
+
const s = a.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", o = new URL(s + a.data.baseUrl);
|
|
2021
|
+
o.searchParams.append("video", btoa(JSON.stringify([i]))), o.pathname = o.pathname + (o.pathname.slice(-1) === "/" ? "" : "/");
|
|
2022
|
+
const r = o.toString();
|
|
2023
|
+
if (r.length >= 2e3)
|
|
2024
|
+
throw new Ke("Cannot create QR code, URL too long.");
|
|
2025
|
+
const g = await qa(r);
|
|
2026
|
+
if (!a.data || !a.data.regions)
|
|
2027
|
+
throw new Ge(a, "Missing regions.");
|
|
2028
|
+
const B = await this.regionElements(a), l = await this.command(g, B, A, a.stepName);
|
|
2029
|
+
return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
|
|
2030
|
+
A.updateStorage(a.stepName, {
|
|
2031
|
+
videoShortUrl: g,
|
|
2032
|
+
videoUrl: i.href
|
|
2035
2033
|
});
|
|
2036
|
-
}
|
|
2037
|
-
r(!1);
|
|
2034
|
+
}), g;
|
|
2038
2035
|
}
|
|
2039
2036
|
async regionElements(e) {
|
|
2040
2037
|
const t = (A) => ({ id: J(), region: A });
|
|
@@ -2069,7 +2066,7 @@ class Xa {
|
|
|
2069
2066
|
} };
|
|
2070
2067
|
}
|
|
2071
2068
|
}
|
|
2072
|
-
const
|
|
2069
|
+
const CA = new Za(), me = [
|
|
2073
2070
|
"Yellow C",
|
|
2074
2071
|
"Yellow 012 C",
|
|
2075
2072
|
"Orange 021 C",
|
|
@@ -4762,12 +4759,12 @@ function Es(c) {
|
|
|
4762
4759
|
const e = me.indexOf(c);
|
|
4763
4760
|
return e >= 0 ? ce[e] : "";
|
|
4764
4761
|
}
|
|
4765
|
-
function
|
|
4762
|
+
function $a(c) {
|
|
4766
4763
|
const e = ce.indexOf(c);
|
|
4767
4764
|
return e >= 0 ? me[e] : "";
|
|
4768
4765
|
}
|
|
4769
4766
|
function hs(c, e = 64) {
|
|
4770
|
-
const t = [], A = [], a =
|
|
4767
|
+
const t = [], A = [], a = $a(c);
|
|
4771
4768
|
a && t.push({
|
|
4772
4769
|
pms: a,
|
|
4773
4770
|
hex: c,
|
|
@@ -4784,27 +4781,27 @@ function hs(c, e = 64) {
|
|
|
4784
4781
|
A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex: ce[B], distance: A[B] });
|
|
4785
4782
|
return t.sort((B, l) => B.distance - l.distance);
|
|
4786
4783
|
}
|
|
4787
|
-
const
|
|
4784
|
+
const _a = me.map((c, e) => ({ pms: c, hex: ce[e] })), en = new ia(_a, { keys: ["pms"] });
|
|
4788
4785
|
function us(c, e) {
|
|
4789
|
-
return
|
|
4786
|
+
return en.search(c, e ? { limit: e } : void 0);
|
|
4790
4787
|
}
|
|
4791
|
-
let
|
|
4792
|
-
function
|
|
4788
|
+
let de = null;
|
|
4789
|
+
function tn(c) {
|
|
4793
4790
|
if (c.startsWith("#"))
|
|
4794
4791
|
return Ht(c);
|
|
4795
4792
|
if (!document)
|
|
4796
4793
|
throw new Error("browserColorToHex is only supported on browsers");
|
|
4797
|
-
if (
|
|
4794
|
+
if (de || (de = document.createElement("canvas").getContext("2d")), !de)
|
|
4798
4795
|
throw new Error("Failed to create canvas context required to convert colors");
|
|
4799
|
-
|
|
4800
|
-
const e = Ht(
|
|
4796
|
+
de.fillStyle = c;
|
|
4797
|
+
const e = Ht(de.fillStyle);
|
|
4801
4798
|
return e || console.error(`Unknown browser color ${c}`), e;
|
|
4802
4799
|
}
|
|
4803
4800
|
function Ht(c) {
|
|
4804
4801
|
const e = c.substring(1).toUpperCase();
|
|
4805
4802
|
return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
|
|
4806
4803
|
}
|
|
4807
|
-
class
|
|
4804
|
+
class An {
|
|
4808
4805
|
constructor() {
|
|
4809
4806
|
this.frameSourceSvg = async (e, t) => {
|
|
4810
4807
|
if (!e)
|
|
@@ -4862,10 +4859,10 @@ class tn {
|
|
|
4862
4859
|
}
|
|
4863
4860
|
if (a) {
|
|
4864
4861
|
const g = async () => {
|
|
4865
|
-
var
|
|
4866
|
-
const B = (
|
|
4862
|
+
var C, E, w, u, h;
|
|
4863
|
+
const B = (C = a.storage) == null ? void 0 : C.colors, l = (E = a.storage) == null ? void 0 : E.framePatternSrc, d = (w = a.storage) == null ? void 0 : w.frameOffsetsList;
|
|
4867
4864
|
if (t.updateMetadata(e.stepName, {
|
|
4868
|
-
frameOffsetsList:
|
|
4865
|
+
frameOffsetsList: d,
|
|
4869
4866
|
framePatternSrc: l
|
|
4870
4867
|
}), l) {
|
|
4871
4868
|
const I = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
|
|
@@ -4875,27 +4872,27 @@ class tn {
|
|
|
4875
4872
|
framePatternSrc: l
|
|
4876
4873
|
}), this.validateColorCount(e, t);
|
|
4877
4874
|
}
|
|
4878
|
-
if (
|
|
4875
|
+
if (d != null && d.some((I) => I.zoom)) {
|
|
4879
4876
|
const I = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
|
|
4880
4877
|
if (!I)
|
|
4881
4878
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
4882
|
-
I.updateOffsets(
|
|
4879
|
+
I.updateOffsets(d);
|
|
4883
4880
|
}
|
|
4884
4881
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
4885
4882
|
};
|
|
4886
4883
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
4887
4884
|
const B = a.selectedVariants[0].id;
|
|
4888
4885
|
if (e.option && B) {
|
|
4889
|
-
const l = (r = e.option.variants) == null ? void 0 : r.find((
|
|
4886
|
+
const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
|
|
4890
4887
|
l && await t.setSelectionsAndElements(
|
|
4891
4888
|
e.stepName,
|
|
4892
4889
|
[l],
|
|
4893
4890
|
o,
|
|
4894
4891
|
async () => {
|
|
4895
|
-
const
|
|
4896
|
-
e.data.regions.map((
|
|
4892
|
+
const d = await Promise.all(
|
|
4893
|
+
e.data.regions.map((C) => this.frameSourceSvg(l, C))
|
|
4897
4894
|
);
|
|
4898
|
-
t.updateStorage(e.stepName, { currentFrameSources:
|
|
4895
|
+
t.updateStorage(e.stepName, { currentFrameSources: d }), await g();
|
|
4899
4896
|
}
|
|
4900
4897
|
);
|
|
4901
4898
|
}
|
|
@@ -4922,10 +4919,10 @@ class tn {
|
|
|
4922
4919
|
const s = t.fileLink || "";
|
|
4923
4920
|
return s.endsWith(".pdf") || s.endsWith(".eps") || s.endsWith(".ai") ? new Promise((r) => {
|
|
4924
4921
|
A.addPoller(
|
|
4925
|
-
new
|
|
4922
|
+
new dA(
|
|
4926
4923
|
async () => {
|
|
4927
|
-
var
|
|
4928
|
-
const B = (
|
|
4924
|
+
var d;
|
|
4925
|
+
const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
|
|
4929
4926
|
return B ? (await fetch(B.link)).status === 200 : !1;
|
|
4930
4927
|
},
|
|
4931
4928
|
() => {
|
|
@@ -4983,7 +4980,7 @@ class tn {
|
|
|
4983
4980
|
}
|
|
4984
4981
|
async loadPatternFromString(e, t, A = !0, a = void 0, n) {
|
|
4985
4982
|
if (e.endsWith("svg")) {
|
|
4986
|
-
const i = await
|
|
4983
|
+
const i = await OA(e), s = i.width, o = i.height, r = await $(e);
|
|
4987
4984
|
if (n) {
|
|
4988
4985
|
const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
|
|
4989
4986
|
if (l && l.length > 0)
|
|
@@ -5001,7 +4998,7 @@ class tn {
|
|
|
5001
4998
|
};
|
|
5002
4999
|
Ft.set(e, B), t.setPatternData(B, A);
|
|
5003
5000
|
} else {
|
|
5004
|
-
const i = await
|
|
5001
|
+
const i = await LA(e, !0), s = await Tt(i), o = {
|
|
5005
5002
|
src: e,
|
|
5006
5003
|
width: s.width,
|
|
5007
5004
|
height: s.height,
|
|
@@ -5042,7 +5039,7 @@ class tn {
|
|
|
5042
5039
|
const g = r.pmsValue.trim().toLocaleLowerCase();
|
|
5043
5040
|
n.includes(g) || n.push(g);
|
|
5044
5041
|
} else if (r.browserValue) {
|
|
5045
|
-
const g =
|
|
5042
|
+
const g = tn(r.browserValue);
|
|
5046
5043
|
n.includes(g) || n.push(g);
|
|
5047
5044
|
}
|
|
5048
5045
|
}
|
|
@@ -5090,12 +5087,12 @@ class tn {
|
|
|
5090
5087
|
if (!s)
|
|
5091
5088
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
5092
5089
|
const o = await Promise.all(
|
|
5093
|
-
e.data.regions.map((
|
|
5090
|
+
e.data.regions.map((d) => this.frameSourceSvg(t, d))
|
|
5094
5091
|
);
|
|
5095
5092
|
n && n(!0);
|
|
5096
5093
|
const r = await Promise.all(
|
|
5097
|
-
e.data.regions.map(async (
|
|
5098
|
-
const E = await rt(o[
|
|
5094
|
+
e.data.regions.map(async (d, C) => {
|
|
5095
|
+
const E = await rt(o[C]), w = s.getImageData(), u = A.map((p) => new te(p.id)), h = w ? ct(w, E) : void 0, I = w ? {
|
|
5099
5096
|
id: J(),
|
|
5100
5097
|
src: w.src,
|
|
5101
5098
|
x: (h == null ? void 0 : h.x) || 0,
|
|
@@ -5105,11 +5102,11 @@ class tn {
|
|
|
5105
5102
|
scaleX: (h == null ? void 0 : h.zoom) || 1,
|
|
5106
5103
|
scaleY: (h == null ? void 0 : h.zoom) || 1,
|
|
5107
5104
|
rotation: 0
|
|
5108
|
-
} : void 0,
|
|
5109
|
-
if (!
|
|
5110
|
-
throw new z(
|
|
5105
|
+
} : void 0, D = J(), Q = a.getLayouts().find((p) => p.panelId === d.panelId);
|
|
5106
|
+
if (!Q)
|
|
5107
|
+
throw new z(d);
|
|
5111
5108
|
return {
|
|
5112
|
-
command: this.getCreateElementCommand(
|
|
5109
|
+
command: this.getCreateElementCommand(D, d, Q, {
|
|
5113
5110
|
frameData: E,
|
|
5114
5111
|
pattern: I,
|
|
5115
5112
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
@@ -5119,29 +5116,29 @@ class tn {
|
|
|
5119
5116
|
stepName: e.stepName
|
|
5120
5117
|
}),
|
|
5121
5118
|
regionEl: {
|
|
5122
|
-
id:
|
|
5123
|
-
region:
|
|
5119
|
+
id: D,
|
|
5120
|
+
region: d
|
|
5124
5121
|
},
|
|
5125
5122
|
removeExistingCommands: u
|
|
5126
5123
|
};
|
|
5127
5124
|
})
|
|
5128
|
-
), g = r.map((
|
|
5125
|
+
), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
5129
5126
|
return {
|
|
5130
5127
|
command: new k([...g, ...B]),
|
|
5131
5128
|
followup: async () => {
|
|
5132
5129
|
n && n(!1), await a.setSelectionsAndElements(
|
|
5133
5130
|
e.stepName,
|
|
5134
5131
|
t ? [t] : [],
|
|
5135
|
-
[...r.map((
|
|
5132
|
+
[...r.map((d) => d.regionEl)],
|
|
5136
5133
|
async () => {
|
|
5137
|
-
var
|
|
5134
|
+
var d;
|
|
5138
5135
|
if (a.updateStorage(e.stepName, { currentFrameSources: o }), i) {
|
|
5139
|
-
const
|
|
5136
|
+
const C = (d = a.getStepSpecificServices(
|
|
5140
5137
|
e.stepName
|
|
5141
|
-
)) == null ? void 0 :
|
|
5142
|
-
if (!
|
|
5138
|
+
)) == null ? void 0 : d.frameService;
|
|
5139
|
+
if (!C)
|
|
5143
5140
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
5144
|
-
await this.loadPatternFromString(i,
|
|
5141
|
+
await this.loadPatternFromString(i, C, !0);
|
|
5145
5142
|
}
|
|
5146
5143
|
}
|
|
5147
5144
|
);
|
|
@@ -5190,8 +5187,8 @@ class tn {
|
|
|
5190
5187
|
), this.validateColorCount(t, A);
|
|
5191
5188
|
}
|
|
5192
5189
|
}
|
|
5193
|
-
const ee = new
|
|
5194
|
-
class
|
|
5190
|
+
const ee = new An();
|
|
5191
|
+
class an {
|
|
5195
5192
|
async getIllustrationBody(e) {
|
|
5196
5193
|
return new Promise((t) => {
|
|
5197
5194
|
$(e, !0).then((A) => {
|
|
@@ -5227,7 +5224,7 @@ class An {
|
|
|
5227
5224
|
if (A.length === 0)
|
|
5228
5225
|
return [];
|
|
5229
5226
|
try {
|
|
5230
|
-
return
|
|
5227
|
+
return He(
|
|
5231
5228
|
A[0].id,
|
|
5232
5229
|
t.getAllLayoutData()
|
|
5233
5230
|
).colors;
|
|
@@ -5260,15 +5257,15 @@ class An {
|
|
|
5260
5257
|
if (o && g) {
|
|
5261
5258
|
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
5262
5259
|
if (B) {
|
|
5263
|
-
const l = s.map((
|
|
5260
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5264
5261
|
await t.setSelectionsAndElements(
|
|
5265
5262
|
e.stepName,
|
|
5266
5263
|
[B],
|
|
5267
5264
|
l,
|
|
5268
5265
|
async () => {
|
|
5269
|
-
var
|
|
5266
|
+
var d;
|
|
5270
5267
|
t.updateMetadata(e.stepName, {
|
|
5271
|
-
colors: (
|
|
5268
|
+
colors: (d = a.storage) == null ? void 0 : d.colors
|
|
5272
5269
|
}), t.setMandatoryFulfilled(e.stepName, !0);
|
|
5273
5270
|
}
|
|
5274
5271
|
);
|
|
@@ -5292,19 +5289,19 @@ class An {
|
|
|
5292
5289
|
const i = {};
|
|
5293
5290
|
for (const [B, l] of n.entries())
|
|
5294
5291
|
i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
|
|
5295
|
-
const s =
|
|
5292
|
+
const s = zA(e, t, A, i), o = await ve(s), r = [];
|
|
5296
5293
|
for (const B of a) {
|
|
5297
|
-
for (const [l,
|
|
5298
|
-
r.push(new et(B, l,
|
|
5299
|
-
r.push(new
|
|
5294
|
+
for (const [l, d] of n.entries())
|
|
5295
|
+
r.push(new et(B, l, d));
|
|
5296
|
+
r.push(new KA(B, s, o));
|
|
5300
5297
|
}
|
|
5301
5298
|
return new k(r);
|
|
5302
5299
|
}
|
|
5303
5300
|
async changeColors(e, t, A, a, n) {
|
|
5304
|
-
var
|
|
5301
|
+
var d, C;
|
|
5305
5302
|
if (t.length === 0)
|
|
5306
5303
|
return;
|
|
5307
|
-
const i =
|
|
5304
|
+
const i = He(
|
|
5308
5305
|
t[0].id,
|
|
5309
5306
|
a().map((E) => E.layoutState)
|
|
5310
5307
|
), s = { ...i.colors }, o = {};
|
|
@@ -5313,10 +5310,10 @@ class An {
|
|
|
5313
5310
|
h && (u.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), o[E] = u;
|
|
5314
5311
|
});
|
|
5315
5312
|
for (const [E, w] of n.entries())
|
|
5316
|
-
s[E] = { browserValue: w, spotColor: (
|
|
5313
|
+
s[E] = { browserValue: w, spotColor: (d = s[E]) == null ? void 0 : d.spotColor }, o[E] = { browserValue: w };
|
|
5317
5314
|
let r = Array.from(Object.values(s)).map((E) => E.browserValue);
|
|
5318
5315
|
const g = e.data.colorOption;
|
|
5319
|
-
g && ((
|
|
5316
|
+
g && ((C = g.variants) == null || C.forEach((E) => {
|
|
5320
5317
|
r = r.map((w) => {
|
|
5321
5318
|
var u;
|
|
5322
5319
|
return w.toLowerCase() === ((u = E.color) == null ? void 0 : u.toLowerCase()) ? E.name : w;
|
|
@@ -5345,7 +5342,7 @@ class An {
|
|
|
5345
5342
|
async selectVariantCommand(e, t, A, a, n) {
|
|
5346
5343
|
var u;
|
|
5347
5344
|
if (!e.data || !e.data.regions)
|
|
5348
|
-
throw new
|
|
5345
|
+
throw new Ge(e, "Missing regions.");
|
|
5349
5346
|
a(!0);
|
|
5350
5347
|
const i = A.map((h) => new te(h.id));
|
|
5351
5348
|
e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
|
|
@@ -5356,29 +5353,29 @@ class An {
|
|
|
5356
5353
|
if (!o)
|
|
5357
5354
|
throw new ue(s);
|
|
5358
5355
|
const r = await Oe(await this.getIllustrationBody(o)), g = await ve(r.svg), B = (h) => {
|
|
5359
|
-
const I = n.getLayouts().find((
|
|
5356
|
+
const I = n.getLayouts().find((m) => m.panelId === h.panelId);
|
|
5360
5357
|
if (!I)
|
|
5361
5358
|
throw new z(h);
|
|
5362
|
-
const
|
|
5359
|
+
const D = J();
|
|
5363
5360
|
return {
|
|
5364
|
-
regionElement: { id:
|
|
5365
|
-
command: this.getCreateElementCommand(
|
|
5361
|
+
regionElement: { id: D, region: h },
|
|
5362
|
+
command: this.getCreateElementCommand(D, h, I, {
|
|
5366
5363
|
stepName: e.stepName,
|
|
5367
5364
|
src: o,
|
|
5368
5365
|
objectURL: g,
|
|
5369
5366
|
svg: r
|
|
5370
5367
|
})
|
|
5371
5368
|
};
|
|
5372
|
-
}, l = e.data.regions.map(B),
|
|
5369
|
+
}, l = e.data.regions.map(B), C = [...l.map((h) => h.command), ...i];
|
|
5373
5370
|
let E = Array.from(Object.values(r.colors)).map((h) => h.browserValue);
|
|
5374
5371
|
const w = e.data.colorOption;
|
|
5375
5372
|
return w && ((u = w.variants) == null || u.forEach((h) => {
|
|
5376
5373
|
E = E.map((I) => {
|
|
5377
|
-
var
|
|
5378
|
-
return I.toLowerCase() === ((
|
|
5374
|
+
var D;
|
|
5375
|
+
return I.toLowerCase() === ((D = h.color) == null ? void 0 : D.toLowerCase()) ? h.name : I;
|
|
5379
5376
|
});
|
|
5380
5377
|
})), n.updateMetadata(e.stepName, { colors: E }), {
|
|
5381
|
-
command: new k(
|
|
5378
|
+
command: new k(C),
|
|
5382
5379
|
followup: async () => {
|
|
5383
5380
|
await n.setSelectionsAndElements(
|
|
5384
5381
|
e.stepName,
|
|
@@ -5398,12 +5395,12 @@ class An {
|
|
|
5398
5395
|
};
|
|
5399
5396
|
}
|
|
5400
5397
|
}
|
|
5401
|
-
const
|
|
5402
|
-
class
|
|
5398
|
+
const Re = new an();
|
|
5399
|
+
class nn {
|
|
5403
5400
|
async init(e, t, A) {
|
|
5404
5401
|
const a = e.option;
|
|
5405
5402
|
if (!a)
|
|
5406
|
-
throw new
|
|
5403
|
+
throw new ke(e);
|
|
5407
5404
|
if (A)
|
|
5408
5405
|
await this.reload(e, t, A);
|
|
5409
5406
|
else {
|
|
@@ -5421,21 +5418,21 @@ class an {
|
|
|
5421
5418
|
A.serializableWorkflow.steps
|
|
5422
5419
|
), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
|
|
5423
5420
|
if (!o)
|
|
5424
|
-
throw new
|
|
5421
|
+
throw new ke(e);
|
|
5425
5422
|
if (a != null && a.selectedVariants) {
|
|
5426
5423
|
const g = a.selectedVariants[0].id;
|
|
5427
5424
|
if (g) {
|
|
5428
5425
|
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
5429
5426
|
if (B) {
|
|
5430
|
-
const l = B.material,
|
|
5427
|
+
const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
|
|
5431
5428
|
await t.setSelectionsAndElements(
|
|
5432
5429
|
e.stepName,
|
|
5433
5430
|
[B],
|
|
5434
|
-
|
|
5431
|
+
d,
|
|
5435
5432
|
async () => {
|
|
5436
|
-
const
|
|
5437
|
-
if (
|
|
5438
|
-
const E = e.data.targetMaterials.map((w) =>
|
|
5433
|
+
const C = t.getModelContainer();
|
|
5434
|
+
if (C) {
|
|
5435
|
+
const E = e.data.targetMaterials.map((w) => C.applyMaterialVariant(
|
|
5439
5436
|
w,
|
|
5440
5437
|
o.id || "",
|
|
5441
5438
|
l || {}
|
|
@@ -5476,12 +5473,12 @@ class an {
|
|
|
5476
5473
|
};
|
|
5477
5474
|
}
|
|
5478
5475
|
}
|
|
5479
|
-
const
|
|
5480
|
-
class
|
|
5476
|
+
const wA = new nn();
|
|
5477
|
+
class sn {
|
|
5481
5478
|
async init(e, t, A) {
|
|
5482
5479
|
const a = e.option;
|
|
5483
5480
|
if (!a)
|
|
5484
|
-
throw new
|
|
5481
|
+
throw new ke(e);
|
|
5485
5482
|
if (A)
|
|
5486
5483
|
await this.reload(e, t, A);
|
|
5487
5484
|
else {
|
|
@@ -5503,19 +5500,19 @@ class nn {
|
|
|
5503
5500
|
if (o && g) {
|
|
5504
5501
|
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
5505
5502
|
if (B) {
|
|
5506
|
-
const l = s.map((
|
|
5503
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5507
5504
|
await t.setSelectionsAndElements(
|
|
5508
5505
|
e.stepName,
|
|
5509
5506
|
[B],
|
|
5510
5507
|
l,
|
|
5511
5508
|
async () => {
|
|
5512
|
-
var
|
|
5513
|
-
const
|
|
5514
|
-
if (
|
|
5515
|
-
const E = (
|
|
5509
|
+
var C;
|
|
5510
|
+
const d = t.getModelContainer();
|
|
5511
|
+
if (d && e.option) {
|
|
5512
|
+
const E = (C = B.asset) == null ? void 0 : C.fileLink;
|
|
5516
5513
|
if (!E)
|
|
5517
5514
|
throw new Ae(B);
|
|
5518
|
-
await
|
|
5515
|
+
await d.applyModelVariant(
|
|
5519
5516
|
e.stepName || "",
|
|
5520
5517
|
{
|
|
5521
5518
|
model: E,
|
|
@@ -5562,8 +5559,8 @@ class nn {
|
|
|
5562
5559
|
};
|
|
5563
5560
|
}
|
|
5564
5561
|
}
|
|
5565
|
-
const
|
|
5566
|
-
class
|
|
5562
|
+
const EA = new sn();
|
|
5563
|
+
class on {
|
|
5567
5564
|
async init(e, t, A) {
|
|
5568
5565
|
if (A)
|
|
5569
5566
|
await this.reload(e, t, A);
|
|
@@ -5596,19 +5593,19 @@ class sn {
|
|
|
5596
5593
|
return A.setMandatoryFulfilled(e.stepName, !1), console.error(a), null;
|
|
5597
5594
|
if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
|
|
5598
5595
|
return console.error("Missing configuration."), null;
|
|
5599
|
-
A.updateStorage(e.stepName, { text: t });
|
|
5600
|
-
const r = (B, l,
|
|
5601
|
-
const
|
|
5596
|
+
A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
|
|
5597
|
+
const r = (B, l, d) => {
|
|
5598
|
+
const C = d || J(), w = A.getLayouts().find((h) => h.panelId === l.panelId);
|
|
5602
5599
|
if (!w)
|
|
5603
5600
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
5604
5601
|
const u = [];
|
|
5605
|
-
return
|
|
5602
|
+
return d && u.push(new te(C)), u.push(
|
|
5606
5603
|
new O(
|
|
5607
5604
|
{
|
|
5608
5605
|
stepRegion: l,
|
|
5609
5606
|
stepName: e.stepName,
|
|
5610
5607
|
colors: {},
|
|
5611
|
-
id:
|
|
5608
|
+
id: C,
|
|
5612
5609
|
svg: B,
|
|
5613
5610
|
type: G.Illustration,
|
|
5614
5611
|
y: l.top,
|
|
@@ -5623,18 +5620,18 @@ class sn {
|
|
|
5623
5620
|
w
|
|
5624
5621
|
)
|
|
5625
5622
|
), {
|
|
5626
|
-
id:
|
|
5623
|
+
id: C,
|
|
5627
5624
|
region: l,
|
|
5628
5625
|
command: new k(u)
|
|
5629
5626
|
};
|
|
5630
5627
|
};
|
|
5631
5628
|
if (i.length > 0) {
|
|
5632
|
-
const l = i.map((
|
|
5633
|
-
if (!
|
|
5629
|
+
const l = i.map((d) => {
|
|
5630
|
+
if (!d.region)
|
|
5634
5631
|
return null;
|
|
5635
|
-
const
|
|
5636
|
-
return r(
|
|
5637
|
-
}).filter((
|
|
5632
|
+
const C = s.svgPrint(t, d.region);
|
|
5633
|
+
return r(C, d.region, d.id);
|
|
5634
|
+
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
5638
5635
|
return {
|
|
5639
5636
|
command: new k(l),
|
|
5640
5637
|
followup: async () => {
|
|
@@ -5642,16 +5639,16 @@ class sn {
|
|
|
5642
5639
|
};
|
|
5643
5640
|
} else {
|
|
5644
5641
|
const B = e.data.regions.map(
|
|
5645
|
-
(
|
|
5646
|
-
), l = B.filter((
|
|
5642
|
+
(d) => r(s.svgPrint(t, d), d)
|
|
5643
|
+
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
5647
5644
|
return {
|
|
5648
5645
|
command: new k(l),
|
|
5649
5646
|
followup: async () => {
|
|
5650
|
-
const
|
|
5647
|
+
const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
|
|
5651
5648
|
await A.setSelectionsAndElements(
|
|
5652
5649
|
e.stepName,
|
|
5653
5650
|
[],
|
|
5654
|
-
|
|
5651
|
+
d
|
|
5655
5652
|
);
|
|
5656
5653
|
}
|
|
5657
5654
|
};
|
|
@@ -5675,7 +5672,7 @@ class sn {
|
|
|
5675
5672
|
return a(""), !0;
|
|
5676
5673
|
}
|
|
5677
5674
|
}
|
|
5678
|
-
const
|
|
5675
|
+
const hA = new on();
|
|
5679
5676
|
class rn {
|
|
5680
5677
|
async init(e, t, A) {
|
|
5681
5678
|
const a = e.option;
|
|
@@ -5699,7 +5696,7 @@ class rn {
|
|
|
5699
5696
|
if (o && g) {
|
|
5700
5697
|
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
5701
5698
|
if (B) {
|
|
5702
|
-
const l = s.map((
|
|
5699
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5703
5700
|
await t.setSelectionsAndElements(
|
|
5704
5701
|
e.stepName,
|
|
5705
5702
|
[B],
|
|
@@ -5725,17 +5722,17 @@ class rn {
|
|
|
5725
5722
|
return console.error("No URL for picture!"), null;
|
|
5726
5723
|
a(!0), e.mandatory && A.setMandatoryFulfilled(e.stepName, !1);
|
|
5727
5724
|
const o = A.getRegionElements(e.stepName).map((B) => new te(B.id)), r = (B) => {
|
|
5728
|
-
const
|
|
5729
|
-
if (!
|
|
5725
|
+
const d = A.getLayouts().find((E) => E.panelId === B.panelId);
|
|
5726
|
+
if (!d)
|
|
5730
5727
|
throw new z(B);
|
|
5731
|
-
const
|
|
5728
|
+
const C = J();
|
|
5732
5729
|
return {
|
|
5733
|
-
regionElement: { id:
|
|
5730
|
+
regionElement: { id: C, region: B },
|
|
5734
5731
|
command: new O(
|
|
5735
5732
|
{
|
|
5736
5733
|
stepName: e.stepName,
|
|
5737
5734
|
stepRegion: B,
|
|
5738
|
-
id:
|
|
5735
|
+
id: C,
|
|
5739
5736
|
src: i,
|
|
5740
5737
|
type: G.Image,
|
|
5741
5738
|
y: B.top,
|
|
@@ -5748,7 +5745,7 @@ class rn {
|
|
|
5748
5745
|
immutable: B.immutable,
|
|
5749
5746
|
preserveAspectRatio: "none"
|
|
5750
5747
|
},
|
|
5751
|
-
|
|
5748
|
+
d
|
|
5752
5749
|
)
|
|
5753
5750
|
};
|
|
5754
5751
|
}, g = e.data.regions.map(r);
|
|
@@ -5767,7 +5764,7 @@ class rn {
|
|
|
5767
5764
|
};
|
|
5768
5765
|
}
|
|
5769
5766
|
}
|
|
5770
|
-
const
|
|
5767
|
+
const uA = new rn();
|
|
5771
5768
|
class cn {
|
|
5772
5769
|
async init(e, t, A) {
|
|
5773
5770
|
const a = e.option;
|
|
@@ -5826,7 +5823,7 @@ class cn {
|
|
|
5826
5823
|
};
|
|
5827
5824
|
}
|
|
5828
5825
|
}
|
|
5829
|
-
const
|
|
5826
|
+
const QA = new cn();
|
|
5830
5827
|
class gn {
|
|
5831
5828
|
constructor() {
|
|
5832
5829
|
this.shapeFillId = "spiff-fill-shape";
|
|
@@ -5853,7 +5850,7 @@ class gn {
|
|
|
5853
5850
|
async init(e, t, A) {
|
|
5854
5851
|
const a = e.option;
|
|
5855
5852
|
if (!a)
|
|
5856
|
-
throw new
|
|
5853
|
+
throw new ke(e);
|
|
5857
5854
|
if (A)
|
|
5858
5855
|
await this.reload(e, t, A);
|
|
5859
5856
|
else {
|
|
@@ -5886,15 +5883,15 @@ class gn {
|
|
|
5886
5883
|
if (o && g) {
|
|
5887
5884
|
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
5888
5885
|
if (B) {
|
|
5889
|
-
const l = s.map((
|
|
5886
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5890
5887
|
await t.setSelectionsAndElements(
|
|
5891
5888
|
e.stepName,
|
|
5892
5889
|
[B],
|
|
5893
5890
|
l,
|
|
5894
5891
|
async () => {
|
|
5895
|
-
var
|
|
5892
|
+
var d;
|
|
5896
5893
|
t.updateStorage(e.stepName, {
|
|
5897
|
-
colour: ((
|
|
5894
|
+
colour: ((d = a == null ? void 0 : a.storage) == null ? void 0 : d.colour) || ""
|
|
5898
5895
|
}), t.setMandatoryFulfilled(e.stepName, !0);
|
|
5899
5896
|
}
|
|
5900
5897
|
);
|
|
@@ -5917,8 +5914,8 @@ class gn {
|
|
|
5917
5914
|
const l = B.region;
|
|
5918
5915
|
if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
|
|
5919
5916
|
throw new z(l);
|
|
5920
|
-
const
|
|
5921
|
-
return new et(B.id, this.shapeFillId,
|
|
5917
|
+
const C = s();
|
|
5918
|
+
return new et(B.id, this.shapeFillId, C);
|
|
5922
5919
|
}, g = A.map(r).filter((B) => !!B);
|
|
5923
5920
|
return {
|
|
5924
5921
|
command: new k(g),
|
|
@@ -5931,10 +5928,10 @@ class gn {
|
|
|
5931
5928
|
}
|
|
5932
5929
|
};
|
|
5933
5930
|
} else {
|
|
5934
|
-
const r = (
|
|
5935
|
-
const
|
|
5936
|
-
if (!
|
|
5937
|
-
throw new z(
|
|
5931
|
+
const r = (d) => {
|
|
5932
|
+
const C = n.find((I) => I.panelId === d.panelId);
|
|
5933
|
+
if (!C)
|
|
5934
|
+
throw new z(d);
|
|
5938
5935
|
const E = s(), w = `
|
|
5939
5936
|
<svg
|
|
5940
5937
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -5960,29 +5957,29 @@ class gn {
|
|
|
5960
5957
|
const h = J();
|
|
5961
5958
|
return {
|
|
5962
5959
|
id: h,
|
|
5963
|
-
region:
|
|
5960
|
+
region: d,
|
|
5964
5961
|
command: new O(
|
|
5965
5962
|
{
|
|
5966
|
-
stepRegion:
|
|
5963
|
+
stepRegion: d,
|
|
5967
5964
|
stepName: e.stepName,
|
|
5968
5965
|
colors: u,
|
|
5969
5966
|
id: h,
|
|
5970
5967
|
svg: w,
|
|
5971
5968
|
type: G.Illustration,
|
|
5972
|
-
y:
|
|
5973
|
-
x:
|
|
5974
|
-
rotation:
|
|
5975
|
-
width:
|
|
5976
|
-
height:
|
|
5977
|
-
layer:
|
|
5978
|
-
layerIndex:
|
|
5979
|
-
immutable:
|
|
5969
|
+
y: d.top,
|
|
5970
|
+
x: d.left,
|
|
5971
|
+
rotation: d.rotation,
|
|
5972
|
+
width: d.width,
|
|
5973
|
+
height: d.height,
|
|
5974
|
+
layer: d.layer,
|
|
5975
|
+
layerIndex: d.layerIndex,
|
|
5976
|
+
immutable: d.immutable,
|
|
5980
5977
|
excludeFromExport: e.data.excludeFromPrint
|
|
5981
5978
|
},
|
|
5982
|
-
|
|
5979
|
+
C
|
|
5983
5980
|
)
|
|
5984
5981
|
};
|
|
5985
|
-
}, g = e.data.regions.map(r), B = g.filter((
|
|
5982
|
+
}, g = e.data.regions.map(r), B = g.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = g.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
|
|
5986
5983
|
return {
|
|
5987
5984
|
command: new k(B),
|
|
5988
5985
|
followup: async () => {
|
|
@@ -6026,28 +6023,28 @@ class ln {
|
|
|
6026
6023
|
}
|
|
6027
6024
|
}
|
|
6028
6025
|
const Bn = new ln(), Xe = 30;
|
|
6029
|
-
class
|
|
6026
|
+
class Je extends Error {
|
|
6030
6027
|
constructor(e) {
|
|
6031
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6028
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
|
|
6032
6029
|
}
|
|
6033
6030
|
}
|
|
6034
|
-
const
|
|
6031
|
+
const dn = ["‘", "’", "“", "”", `
|
|
6035
6032
|
`];
|
|
6036
|
-
class
|
|
6033
|
+
class Te extends Error {
|
|
6037
6034
|
constructor(e) {
|
|
6038
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6035
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Te.name;
|
|
6039
6036
|
}
|
|
6040
6037
|
}
|
|
6041
|
-
class
|
|
6038
|
+
class Cn {
|
|
6042
6039
|
constructor() {
|
|
6043
6040
|
this.cachedColors = /* @__PURE__ */ new Map(), this.filterUnsupportedCharacters = (e, t) => {
|
|
6044
6041
|
let A = e.replace(
|
|
6045
6042
|
/(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
|
|
6046
6043
|
""
|
|
6047
6044
|
);
|
|
6048
|
-
const a = [], n = t ?
|
|
6045
|
+
const a = [], n = t ? jA(t.assetUrl) : void 0;
|
|
6049
6046
|
if (n) {
|
|
6050
|
-
const i = A.split("").filter((o) => !
|
|
6047
|
+
const i = A.split("").filter((o) => !dn.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
|
|
6051
6048
|
for (let o = 0; o < s.length; o++)
|
|
6052
6049
|
s[o].name === ".notdef" && a.push(String.fromCharCode(i.charCodeAt(o)));
|
|
6053
6050
|
}
|
|
@@ -6112,7 +6109,7 @@ class dn {
|
|
|
6112
6109
|
return null;
|
|
6113
6110
|
}
|
|
6114
6111
|
findLayoutElements(e, t) {
|
|
6115
|
-
return e.getRegionElements(t.stepName).map((n) =>
|
|
6112
|
+
return e.getRegionElements(t.stepName).map((n) => He(n.id, e.getAllLayoutData()));
|
|
6116
6113
|
}
|
|
6117
6114
|
/**
|
|
6118
6115
|
* Get the colors that can be used for a given text step.
|
|
@@ -6140,7 +6137,7 @@ class dn {
|
|
|
6140
6137
|
return;
|
|
6141
6138
|
const n = a.getCommandDispatcher();
|
|
6142
6139
|
for (const i of A) {
|
|
6143
|
-
const s = new
|
|
6140
|
+
const s = new VA(i.id, t);
|
|
6144
6141
|
n(s);
|
|
6145
6142
|
}
|
|
6146
6143
|
}
|
|
@@ -6160,7 +6157,7 @@ class dn {
|
|
|
6160
6157
|
for (const r of A) {
|
|
6161
6158
|
if (!t.fill)
|
|
6162
6159
|
throw new Error("Fill not set on new color selection!");
|
|
6163
|
-
const g = new
|
|
6160
|
+
const g = new WA(r.id, t.fill, s);
|
|
6164
6161
|
n(g);
|
|
6165
6162
|
}
|
|
6166
6163
|
}
|
|
@@ -6223,19 +6220,19 @@ class dn {
|
|
|
6223
6220
|
for (const l of t) {
|
|
6224
6221
|
if (!l.fontData)
|
|
6225
6222
|
throw new b("Failed to resolve font data for text.");
|
|
6226
|
-
const [
|
|
6223
|
+
const [d, C] = Ne(
|
|
6227
6224
|
l.fontSize,
|
|
6228
6225
|
l.fontData,
|
|
6229
6226
|
{ left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
|
|
6230
6227
|
[i],
|
|
6231
6228
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
6232
6229
|
);
|
|
6233
|
-
g.set(l.id,
|
|
6234
|
-
const E = A.data.curved ? i : (
|
|
6230
|
+
g.set(l.id, d), B.set(l.id, C);
|
|
6231
|
+
const E = A.data.curved ? i : (C || []).join(`
|
|
6235
6232
|
`);
|
|
6236
|
-
r.push(this.generateTextChangeCommandsForRegion(
|
|
6233
|
+
r.push(this.generateTextChangeCommandsForRegion(d, A.data, l.id, E));
|
|
6237
6234
|
}
|
|
6238
|
-
return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((
|
|
6235
|
+
return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
6239
6236
|
text: i
|
|
6240
6237
|
}), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(r), s);
|
|
6241
6238
|
}
|
|
@@ -6272,17 +6269,17 @@ class dn {
|
|
|
6272
6269
|
if (a != null && a.selectedVariants) {
|
|
6273
6270
|
const l = a.selectedVariants[0].id;
|
|
6274
6271
|
if (o && l) {
|
|
6275
|
-
const
|
|
6276
|
-
if (
|
|
6277
|
-
const
|
|
6272
|
+
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
|
|
6273
|
+
if (d) {
|
|
6274
|
+
const C = await this.fontDataFromVariant(d), E = s.map((I) => ({ id: I.id, region: I.stepRegion })), w = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
|
|
6278
6275
|
await t.setSelectionsAndElements(
|
|
6279
6276
|
e.stepName,
|
|
6280
|
-
[
|
|
6277
|
+
[d],
|
|
6281
6278
|
E,
|
|
6282
6279
|
async () => {
|
|
6283
6280
|
t.updateMetadata(e.stepName, { color: w, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
|
|
6284
|
-
const I = s.map((
|
|
6285
|
-
t.getCommandDispatcher()(
|
|
6281
|
+
const I = s.map((m) => new yt(m.id, C)), D = new k(I);
|
|
6282
|
+
t.getCommandDispatcher()(D);
|
|
6286
6283
|
}
|
|
6287
6284
|
);
|
|
6288
6285
|
const { command: h } = V.updateInputText(
|
|
@@ -6335,7 +6332,7 @@ class dn {
|
|
|
6335
6332
|
const E = a.map((w) => new Ve(w.id, o));
|
|
6336
6333
|
l.push(...E);
|
|
6337
6334
|
}
|
|
6338
|
-
const
|
|
6335
|
+
const d = await this.changeInputTextWithRegion(
|
|
6339
6336
|
e,
|
|
6340
6337
|
e.data.size || Xe,
|
|
6341
6338
|
g,
|
|
@@ -6346,7 +6343,7 @@ class dn {
|
|
|
6346
6343
|
i,
|
|
6347
6344
|
s
|
|
6348
6345
|
);
|
|
6349
|
-
return
|
|
6346
|
+
return d && l.push(d), {
|
|
6350
6347
|
command: new k(l),
|
|
6351
6348
|
followup: async () => {
|
|
6352
6349
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
@@ -6360,7 +6357,7 @@ class dn {
|
|
|
6360
6357
|
g,
|
|
6361
6358
|
A,
|
|
6362
6359
|
n
|
|
6363
|
-
),
|
|
6360
|
+
), d = await this.changeInputTextWithRegion(
|
|
6364
6361
|
e,
|
|
6365
6362
|
e.data.size || Xe,
|
|
6366
6363
|
g,
|
|
@@ -6370,15 +6367,15 @@ class dn {
|
|
|
6370
6367
|
!!A.customiseAllText,
|
|
6371
6368
|
i,
|
|
6372
6369
|
s
|
|
6373
|
-
),
|
|
6370
|
+
), C = l.flatMap((w) => w.commands);
|
|
6374
6371
|
if (o) {
|
|
6375
6372
|
const w = l.map(
|
|
6376
6373
|
(u) => new Ve(u.regionElement.id, o)
|
|
6377
6374
|
);
|
|
6378
|
-
|
|
6375
|
+
C.push(...w);
|
|
6379
6376
|
}
|
|
6380
|
-
return
|
|
6381
|
-
command: new k(
|
|
6377
|
+
return d && C.push(d), {
|
|
6378
|
+
command: new k(C),
|
|
6382
6379
|
followup: async () => {
|
|
6383
6380
|
n.markUpdateCompleted(r);
|
|
6384
6381
|
}
|
|
@@ -6398,29 +6395,29 @@ class dn {
|
|
|
6398
6395
|
throw new Error("Step data not supplied");
|
|
6399
6396
|
const s = n.text || A.defaultText || "", o = this.getProcessedInput(s, A, !1), r = async (B) => {
|
|
6400
6397
|
var E;
|
|
6401
|
-
const
|
|
6398
|
+
const d = i.getLayouts().find((w) => w.panelId === B.panelId), C = J();
|
|
6402
6399
|
try {
|
|
6403
|
-
if (!
|
|
6404
|
-
throw new
|
|
6400
|
+
if (!d)
|
|
6401
|
+
throw new Te("Failed to find layout for region: " + B.panelId);
|
|
6405
6402
|
const w = A.colorOption;
|
|
6406
6403
|
let u;
|
|
6407
6404
|
if (w && w.variants) {
|
|
6408
|
-
const x = w.variants.find((
|
|
6405
|
+
const x = w.variants.find((R) => {
|
|
6409
6406
|
var L;
|
|
6410
|
-
return
|
|
6407
|
+
return R.id === ((L = w.defaultVariant) == null ? void 0 : L.id);
|
|
6411
6408
|
}) || w.variants[0];
|
|
6412
6409
|
u = this.createTextFillSpotColor(w, x), i.updateStorage(e, {
|
|
6413
6410
|
colorProfileAssetKey: (E = w.colorProfile) == null ? void 0 : E.key
|
|
6414
6411
|
});
|
|
6415
6412
|
}
|
|
6416
|
-
const h = await this.getDefaultColor(A), I = h || "#000000",
|
|
6413
|
+
const h = await this.getDefaultColor(A), I = h || "#000000", D = {
|
|
6417
6414
|
stepRegion: B,
|
|
6418
6415
|
stepName: e,
|
|
6419
6416
|
align: this.textAlign(A),
|
|
6420
6417
|
fill: n.color ? n.color : I,
|
|
6421
6418
|
fontSize: A.size || Xe,
|
|
6422
6419
|
fontData: a,
|
|
6423
|
-
id:
|
|
6420
|
+
id: C,
|
|
6424
6421
|
layer: B.layer,
|
|
6425
6422
|
layerIndex: B.layerIndex,
|
|
6426
6423
|
rotation: B.rotation,
|
|
@@ -6437,41 +6434,41 @@ class dn {
|
|
|
6437
6434
|
curved: A.curved,
|
|
6438
6435
|
paths: A.paths,
|
|
6439
6436
|
fillSpotColorDefinition: u
|
|
6440
|
-
},
|
|
6441
|
-
if (!
|
|
6437
|
+
}, m = [], Q = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
|
|
6438
|
+
if (!D.fontData)
|
|
6442
6439
|
throw new b("Failed to resolve font data for text.");
|
|
6443
|
-
const [y, M] =
|
|
6444
|
-
|
|
6445
|
-
|
|
6440
|
+
const [y, M] = Ne(
|
|
6441
|
+
D.fontSize,
|
|
6442
|
+
D.fontData,
|
|
6446
6443
|
{
|
|
6447
|
-
left:
|
|
6448
|
-
top:
|
|
6449
|
-
width:
|
|
6450
|
-
height:
|
|
6451
|
-
rotation:
|
|
6444
|
+
left: D.x,
|
|
6445
|
+
top: D.y,
|
|
6446
|
+
width: D.width,
|
|
6447
|
+
height: D.height,
|
|
6448
|
+
rotation: D.rotation,
|
|
6452
6449
|
panelId: ""
|
|
6453
6450
|
},
|
|
6454
6451
|
[o],
|
|
6455
6452
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
6456
6453
|
);
|
|
6457
|
-
|
|
6454
|
+
Q.set(D.id, y), p.set(D.id, M);
|
|
6458
6455
|
const S = A.curved || A.vertical ? o : (M || []).join(`
|
|
6459
6456
|
`);
|
|
6460
|
-
|
|
6461
|
-
this.generateTextChangeCommandsForRegion(y, A,
|
|
6457
|
+
m.push(
|
|
6458
|
+
this.generateTextChangeCommandsForRegion(y, A, D.id, S)
|
|
6462
6459
|
);
|
|
6463
|
-
const N = new O(
|
|
6460
|
+
const N = new O(D, d);
|
|
6464
6461
|
return {
|
|
6465
|
-
regionElement: { id:
|
|
6466
|
-
commands: [N, ...
|
|
6467
|
-
newElement:
|
|
6462
|
+
regionElement: { id: C, region: B },
|
|
6463
|
+
commands: [N, ...m],
|
|
6464
|
+
newElement: D,
|
|
6468
6465
|
fontData: a
|
|
6469
6466
|
};
|
|
6470
6467
|
} catch (w) {
|
|
6471
|
-
throw console.log(w), new
|
|
6468
|
+
throw console.log(w), new Je("Error adding font to region");
|
|
6472
6469
|
}
|
|
6473
6470
|
}, g = await Promise.all(A.regions.map(r)).catch((B) => {
|
|
6474
|
-
throw B instanceof
|
|
6471
|
+
throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", pe.Error), B) : B instanceof Te ? B : new Error(B);
|
|
6475
6472
|
});
|
|
6476
6473
|
return await i.setSelectionsAndElements(
|
|
6477
6474
|
e,
|
|
@@ -6487,9 +6484,9 @@ class dn {
|
|
|
6487
6484
|
), g;
|
|
6488
6485
|
}
|
|
6489
6486
|
generateTextChangeCommandsForRegion(e, t, A, a) {
|
|
6490
|
-
const n = [], i = new
|
|
6487
|
+
const n = [], i = new XA(A, a);
|
|
6491
6488
|
if (n.push(i), !t.size) {
|
|
6492
|
-
const o = new
|
|
6489
|
+
const o = new qA(A, e);
|
|
6493
6490
|
n.push(o);
|
|
6494
6491
|
}
|
|
6495
6492
|
return new k(n);
|
|
@@ -6498,30 +6495,30 @@ class dn {
|
|
|
6498
6495
|
* @deprecated
|
|
6499
6496
|
*/
|
|
6500
6497
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, g) {
|
|
6501
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s),
|
|
6502
|
-
for (const
|
|
6503
|
-
if (
|
|
6504
|
-
const [
|
|
6498
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
|
|
6499
|
+
for (const D of d)
|
|
6500
|
+
if (D.region) {
|
|
6501
|
+
const [m, Q] = Ne(
|
|
6505
6502
|
t,
|
|
6506
6503
|
A,
|
|
6507
|
-
|
|
6504
|
+
D.region,
|
|
6508
6505
|
[l],
|
|
6509
6506
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
6510
6507
|
);
|
|
6511
|
-
|
|
6508
|
+
C.set(D.id, m), E.set(D.id, Q);
|
|
6512
6509
|
}
|
|
6513
6510
|
const u = (() => {
|
|
6514
6511
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
6515
6512
|
return g && g(!0), { info: "0" };
|
|
6516
|
-
const
|
|
6517
|
-
for (const
|
|
6518
|
-
for (const
|
|
6519
|
-
const y =
|
|
6520
|
-
if (
|
|
6513
|
+
const D = i.getProfanities(), m = at(l.toLowerCase());
|
|
6514
|
+
for (const Q of m)
|
|
6515
|
+
for (const p in D) {
|
|
6516
|
+
const y = D[p].toLowerCase().replace(/\s/g, "");
|
|
6517
|
+
if (Q === y)
|
|
6521
6518
|
return o(!0), { error: "Blocked profanity." };
|
|
6522
6519
|
}
|
|
6523
6520
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
6524
|
-
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((
|
|
6521
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((p) => p) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
6525
6522
|
})();
|
|
6526
6523
|
if (u.error) {
|
|
6527
6524
|
r(u.error);
|
|
@@ -6533,22 +6530,22 @@ class dn {
|
|
|
6533
6530
|
text: this.injectReplaceableText(B, e.data)
|
|
6534
6531
|
}), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
|
|
6535
6532
|
const h = [];
|
|
6536
|
-
for (const
|
|
6537
|
-
const
|
|
6533
|
+
for (const D of d) {
|
|
6534
|
+
const m = e.data.curved ? l : (E.get(D.id) || []).join(`
|
|
6538
6535
|
`);
|
|
6539
6536
|
h.push(
|
|
6540
6537
|
this.generateTextChangeCommandsForRegion(
|
|
6541
|
-
|
|
6538
|
+
C.get(D.id) || 1,
|
|
6542
6539
|
e.data,
|
|
6543
|
-
|
|
6544
|
-
|
|
6540
|
+
D.id,
|
|
6541
|
+
m
|
|
6545
6542
|
)
|
|
6546
6543
|
);
|
|
6547
6544
|
}
|
|
6548
6545
|
return new k(h);
|
|
6549
6546
|
}
|
|
6550
6547
|
}
|
|
6551
|
-
const V = new
|
|
6548
|
+
const V = new Cn();
|
|
6552
6549
|
class Et {
|
|
6553
6550
|
}
|
|
6554
6551
|
const wn = "data:application/font-woff;base64,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", En = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
@@ -7812,38 +7809,38 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7812
7809
|
</g>
|
|
7813
7810
|
</svg>
|
|
7814
7811
|
|
|
7815
|
-
`,
|
|
7816
|
-
const t =
|
|
7812
|
+
`, v = (c) => ZA("http://www.w3.org/2000/svg", c), ht = (c, e) => {
|
|
7813
|
+
const t = v("rect");
|
|
7817
7814
|
return t.setAttribute("height", `${c}`), t.setAttribute("width", `${e}`), t;
|
|
7818
7815
|
}, hn = () => {
|
|
7819
|
-
const c =
|
|
7816
|
+
const c = v("svg");
|
|
7820
7817
|
return c.setAttribute("xmlns", "http://www.w3.org/2000/svg"), c.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), c.setAttribute("version", "1.1"), c;
|
|
7821
7818
|
}, un = (c) => {
|
|
7822
|
-
const e =
|
|
7819
|
+
const e = v("use");
|
|
7823
7820
|
return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
|
|
7824
7821
|
};
|
|
7825
|
-
function
|
|
7822
|
+
function mA(c) {
|
|
7826
7823
|
const e = hn(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(c) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
7827
7824
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
7828
7825
|
}
|
|
7829
7826
|
const Qn = (c, e, t) => {
|
|
7830
|
-
const A =
|
|
7827
|
+
const A = v("g");
|
|
7831
7828
|
c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
|
|
7832
7829
|
};
|
|
7833
|
-
function
|
|
7830
|
+
function pA(c, e, t) {
|
|
7834
7831
|
const A = J();
|
|
7835
7832
|
Qn(e, t, `bgdef-${A}`), c.appendChild(un(`#bgdef-${A}`));
|
|
7836
7833
|
}
|
|
7837
|
-
const
|
|
7838
|
-
const a =
|
|
7834
|
+
const DA = (c, e, t, A) => {
|
|
7835
|
+
const a = fe("filter");
|
|
7839
7836
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
7840
|
-
const n =
|
|
7837
|
+
const n = fe("feOffset");
|
|
7841
7838
|
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
|
|
7842
|
-
const i =
|
|
7839
|
+
const i = fe("feGaussianBlur");
|
|
7843
7840
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
7844
|
-
const s =
|
|
7841
|
+
const s = fe("feBlend");
|
|
7845
7842
|
return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
|
|
7846
|
-
},
|
|
7843
|
+
}, IA = (c) => {
|
|
7847
7844
|
let e = c;
|
|
7848
7845
|
return e = e.replace(/feoffset/gi, "feOffset"), e = e.replace(/fegaussianblur/gi, "feGaussianBlur"), e = e.replace(/feblend/gi, "feBlend"), e = e.replace(/lineargradient/gi, "linearGradient"), e = e.replace(/stddeviation/gi, "stdDeviation"), e;
|
|
7849
7846
|
};
|
|
@@ -7906,7 +7903,7 @@ class Qt {
|
|
|
7906
7903
|
l = (B * 100 | 0) / 100;
|
|
7907
7904
|
break;
|
|
7908
7905
|
default:
|
|
7909
|
-
throw new
|
|
7906
|
+
throw new Ce("Failed to encode path.");
|
|
7910
7907
|
}
|
|
7911
7908
|
o || i.push(" "), i.push(l), o = !1;
|
|
7912
7909
|
}
|
|
@@ -7920,12 +7917,12 @@ class Qt {
|
|
|
7920
7917
|
for (t.lastIndex = 0; n = t.exec(e); ) {
|
|
7921
7918
|
const i = n[1].toLowerCase(), s = (n[2].match(A) || []).map(parseFloat), o = i === n[1], r = Ut[i];
|
|
7922
7919
|
if (s.length < r.length)
|
|
7923
|
-
throw new
|
|
7920
|
+
throw new Ce(
|
|
7924
7921
|
`Path type "${i}" given ${s.length} arguments, expected ${r.length}.`
|
|
7925
7922
|
);
|
|
7926
7923
|
if (r.length > 0) {
|
|
7927
7924
|
if (s.length % r.length !== 0)
|
|
7928
|
-
throw new
|
|
7925
|
+
throw new Ce(
|
|
7929
7926
|
`Path type "${i}" given ${s.length} arguments, not divisible by ${r.length}`
|
|
7930
7927
|
);
|
|
7931
7928
|
for (let g = 0; g < s.length / r.length; g++) {
|
|
@@ -7950,7 +7947,7 @@ class Qt {
|
|
|
7950
7947
|
if (s in n && o in n) {
|
|
7951
7948
|
const r = [n[s], n[o]], g = t(r);
|
|
7952
7949
|
if (g.length < 2)
|
|
7953
|
-
throw new
|
|
7950
|
+
throw new Ce("Transformer must return at least 2 points.");
|
|
7954
7951
|
n[s] = g[0], n[o] = g[1];
|
|
7955
7952
|
}
|
|
7956
7953
|
}
|
|
@@ -7989,31 +7986,31 @@ class pn extends Et {
|
|
|
7989
7986
|
}
|
|
7990
7987
|
brandSvg(e, t) {
|
|
7991
7988
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
7992
|
-
const
|
|
7993
|
-
|
|
7994
|
-
const
|
|
7995
|
-
|
|
7996
|
-
const y =
|
|
7997
|
-
|
|
7998
|
-
const M =
|
|
7999
|
-
|
|
8000
|
-
const S =
|
|
8001
|
-
return
|
|
8002
|
-
}, [o, r, g] =
|
|
7989
|
+
const m = v("g"), Q = v("defs");
|
|
7990
|
+
m.appendChild(Q), Q.appendChild(DA(3, 7, 4, "shadow"));
|
|
7991
|
+
const p = v("g");
|
|
7992
|
+
m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = A;
|
|
7993
|
+
const y = v("g");
|
|
7994
|
+
m.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = A;
|
|
7995
|
+
const M = v("g");
|
|
7996
|
+
m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
|
|
7997
|
+
const S = v("g");
|
|
7998
|
+
return m.appendChild(S), S.setAttribute("fill", "yellow"), S.innerHTML = A, new Qt(m).transform(([x, R]) => [x, R + (n / 2 - x) ** 2 / (n * 2.9)]), m;
|
|
7999
|
+
}, [o, r, g] = mA(t);
|
|
8003
8000
|
if (!o)
|
|
8004
8001
|
return "";
|
|
8005
|
-
const B =
|
|
8006
|
-
o.appendChild(B),
|
|
8007
|
-
const l = r * 0.23,
|
|
8008
|
-
o.appendChild(w), w.setAttribute("transform", `translate(${
|
|
8009
|
-
const u = ht(l,
|
|
8002
|
+
const B = v("defs");
|
|
8003
|
+
o.appendChild(B), pA(o, B, t);
|
|
8004
|
+
const l = r * 0.23, d = g * 0.94, C = g * 0.04, E = r * 0.53, w = v("g");
|
|
8005
|
+
o.appendChild(w), w.setAttribute("transform", `translate(${C} ${E}) rotate(-21)`);
|
|
8006
|
+
const u = ht(l, d);
|
|
8010
8007
|
u.setAttribute("opacity", "0"), w.appendChild(u);
|
|
8011
|
-
const h =
|
|
8008
|
+
const h = v("g");
|
|
8012
8009
|
w.appendChild(h);
|
|
8013
8010
|
const I = s();
|
|
8014
8011
|
h.appendChild(I);
|
|
8015
|
-
const
|
|
8016
|
-
return ut(h,
|
|
8012
|
+
const D = Bt(i);
|
|
8013
|
+
return ut(h, D, l, d), IA(o.outerHTML);
|
|
8017
8014
|
}
|
|
8018
8015
|
}
|
|
8019
8016
|
const Dn = "data:application/octet-stream;base64,AAEAAAAPAIAAAwBwRkZUTYPq+1wAAOjIAAAAHEdERUYA4AB5AADfmAAAACRHUE9TS5tfuQAA5DwAAASKR1NVQiMzLFQAAN+8AAAEfk9TLzJp7a5lAAABeAAAAGBjbWFw0xjbSAAABIgAAAJwZ2FzcP//AAMAAN+QAAAACGdseWbwDKFSAAAIVAAAz+xoZWFkEhAn1wAAAPwAAAA2aGhlYQarAo0AAAE0AAAAJGhtdHht1RNRAAAB2AAAArBsb2Nh+CbEtgAABvgAAAFabWF4cADzANMAAAFYAAAAIG5hbWXa9+qFAADYQAAAAjFwb3N0jPH63wAA2nQAAAUZAAEAAAABAAARfaMVXw889QALA+gAAAAA1+lypQAAAADX6XKl/zH/FgPtApIAAAAIAAIAAAAAAAAAAQAAA4r/JgAAA7P/Mf8HA+0AAQAAAAAAAAAAAAAAAAAAAKwAAQAAAKwA0AAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAAEAisBkAAFAAACigK7AAAAjAKKArsAAAHfADEBAgAAAAAAAAAAAAAAAAAAAANQAAAAAAAAAAAAAABYWFhYAEAACvsCA4r/JgAAAokA5QAAAAEAAAAAAaQCfwAAACAAAwH0AAAAAAAAAU0AAAAAAAAAAAAAAN4AAAH3ACIB4AAwAbYALwHsADABTwAwASsALQHZADEBpQAtATkAMAGCAC8B/gAvAdAALQJXAC0B2gAtAdUALwGWADIB5wAvAb4AMgG+ABsA5wAtAbcAMAFZADECQwAoAd8ALwELAC8CAAAoAUb/7AE1//kBKv/3ATL/9gFC//gA7AAeAVH/9QFC//sAm//7ALn/OgFo//sAsv//AeL//gE7//4BSv/4AWb/xwFG//gBAAACAUn/6ACxAAQBRP/9AUkABQHT//UBhAABAUz/1AFi//cA3gAAA2EAIgKfACICKwAwAigAMAIBADAC1gAwAhkAMAKuADACMAAtAr4ALQLiAC0CGwAtArkALQJtAC0CjwAtAhAAMAKyADACJAAwAfMAMAH1ADAClgAxAm8ALwJkAC8C4wAvAxcALwJUAC8C7AAvAr8ALwNxAC8DNwAvAoQALQMAAC0DiQAtAxAALQKSAC0CsQAtAq0ALwMQAC8C0wAyA3MAMgKTADICdAAyAtwAMgLaADICOQAyAp4AMgLsADICQwAyAyYAMgJZADIDAAAyAxwAMgLoADIC4wAyAtQAMgN1ADIDMAAyAp8AMgKDADICJgAtAhkALQKzAC0C1QAtAh8ALQKtAC0CeAAwAuYAMAKkADACLAAxAoIAMQI9ADECBgAxAv4AKAMiACgDQwAvAfUALwGyAC4CEwAvAnIALwHWAC8CmAAvAnEALwKMACIC9QAvAsUAMAK5ADEDJAAvAeQAAQIyAAgCDAAGAeEAAAKEAAUB///8AgkAAAH6ACgChwApAoAAJQK2AC4CNv/3AYD/MgIV/9ABoAAAAboAAgISAAQBdgAWAk4ACAGPAA8DEQAGAycAAQOz//4B+QAlAasAHQH2AC4AAAADAAAAAwAAABwAAQAAAAABagADAAEAAAAcAAQBTgAAADQAIAAEABQAAAAKAA0AIABaAHoAoADFAM8A1gDdAOUA7wD2AP0A//AB8AbwDfBV8FvwXfBm8Hb7Av//AAAAAAAKAA0AIABBAGEAoADAAMcA0QDYAN8A5wDxAPgA//AB8APwCPAP8FfwXfBf8Gn7AP//AAD/+f/3/+X/xf+//5oAAAAAAAAAAAAAAAAAAAAA/zkQOhA5EDgQNxA2EDUQNBAyBakAAQAAAAAAAAAAAAAAAAAAACYAMABAAEoAVABgAHAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAGAAYABgAGAAYACAAKAAoACgAKAA4ADgAOAA4AEwAUABQAFAAUABQAFAAaABoAGgAaAB4AMgAgACAAIAAgACAAIAAiACQAJAAkACQAKAAoACgAKAAtAC4ALgAuAC4ALgAuADQANAA0ADQAOAAAAQYAAAEAAAAAAAAAAQIDAAAEAAAAAAAAAAAAAAAAAAAAAQAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8AAAAAAAAgISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OQAAAAAABgYIChMUGiAgICAgICIkJCQkKCgoKC0uLi4uLjQ0NDQAAAAAAAAAMgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAALgAAAAAAAAAAAAA6BgYUAAAAAAAAAAAAADgAAAAAAKqrAAAAAAAGCgYKCg4ODg4UFAAUGhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAMwBMAF+Ad4CSALGA0oDngQOBI4E7gWaBhYGcAa6Bz4Hlgf6CEgIlgjuCXoJ3AoeCogK+gtmC7oMJgyEDPYNkg38DkAOjg76DzgP3hBGEJQQ/hFkEaASABJYEqoS9hNwE8QURhScFJwVXBYAFrQXfBgkGPIZhhpSGwgb0hyeHTYeCB7eH84geCEwIfIilCMgI9gkmCV2JkInFCe0KIwpXipCK0Ar9CzqLfIvBC/UMLoxfDIeMsozijQCNJw1WDXqNnI3JjfQOFo5BDmCOhg6rDs8O+o8kj2MPkY/Ej+6QFhBEkHEQnhDAEOyRFJE9kW0RmZHGEfgSHZJVkpOSxBLpkwiTNZNfE38Tq5PWFAgUPpRvlJ4UzhT/FSeVXpWPFb6V7hYhFlGWhpa9lvQXKxdWl4qXtZfmGBaYOxhqmI6Y05khmW8ZpxnUGf2AAAAAgAi//kB7QKFACgAOQAAJRQWBgcGJy4BJyY/AS4CBwYHBgcGJyY3Njc+Azc2HgIHBhUHBic2FzY3NgciBw4BBw4CHgEBugUBAw0cEBcDBwUDEzYsEB0LBw0aMToUDUMOPlNbHx0kCAMDARoZwk0vAw4ZGgUMElkdAQICAQhMBRsQBxoDAhMPHT0iBgcBAQMSCjFhAwRXPIocZnteBgYTIygQBQLCv2UCEDNLiQEKDos7AQMJBwYAAAMAMP//AeACgAAhADEARgAAAR4FBgcOBAcGBwYmJyY3Ejc2Nz4BHgEXFg4BBzYmJyYGDwEGBw4BFjMyNhM+AScmBwYHDgEPARYyNjI+BAF8AgcRDg4HBAkBBRkiPyYdJT5SAgEJRVwWIw8yOzQMDxIzRRkFHhY7GRoeDQMCEhcnVy4kAyYQDiASFB4GBQEFDg4VExYTEgFRAQQOEh8mNx8FDyoiIwcGAQEZMRgpATaDIhAHBAkoITFeRsgmVw8IAgYGTEkNFAoZASkfZw4GAwgcIEoVFAEBAgMFBwkAAAAAAQAv//8B7wKMAEYAADMiLgEnLgY3Njc2NzY3NhcWFQYHBiIuAicwLgMGBw4GBw4BHgI+Azc+AxceAhUOAQcOArYDECAKAgYUDhMHBQcLHTpxNytEJhgBEQsRCwcFAQYECwsUDAIHFxgjIScRFg4LGBoWDw4HCAYRCxcPDRQHAzUXEhoxAgkIAQURFiQqOiE0QopcLAoQKxwmHwoGCQoNAQkFBwMBBAEDEBQkLEImL04uIAsCBQsHCgYbDwsCAhMZDBpFDgsNCgACADD//QH7AogAHQAvAAABHgMHDgUHBi4DNSY2NzY3PgE3Njc2Ez4BLgEnJg4CDwEOARceATYBiyUyEQcFAhAcLThOLC9CJxYHAw4XBAIQRh4YMzgaHxkKHBYTIxYQBAQoQQcGRWACeQk0QEccFUJaWE82BggHDBcQCSpJUg8IO6g6Lw8Q/mZPd0UlBQUNGRsJCl7JHxwUQAAAAAABADD/+gHjAosAPAAAAS4BIgcGBxc2FxYHBgcGIwcGBwYXFjYWFx4BBxQOAwcGJyYnLgE2NzY3BgcGJyY+ATc2Fx4EBwYBtgY3MRdHFSwZDw8GBhcUEUEdBQk0DSEYCA8PBAEEBw0IPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBAiYBAQNhPQEBDg4XFQUFBlYtRAUBAwEECBsOAQMICAkDFQcLMBRKTCK+ZQQBBhELFhAEJRAEDA0QCgYYAAABAC3//wHgAoYASQAAAR4CDgEHDgIiLgEjJgcUBxQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyIuBCcmNz4DPwE2FgHDDQ4CBQMBBA0NEw8WByEwARMgDTEKCxcDBRgaHzUuDAMBAwMFBwkNBwQLFQMFKB0gNRUPAwcGBgQEARgLAQcJBwMCNNQCYgcRCgwDAQQDAgEBAQMBAQEsTSABAQ8QExsBBgGEXwQVBxEGDQUGAgISEBy6Ulp/BAEBAgICAQEPGwQJBgUBARcOAAEAMf/9Ad4ChwBVAAABDgQHDgEeAhcWNzY3Jjc2ND4EMxYXMh4DBwYHFAcGBwYnKgEuAjc2NwYHDgInJicuAzY3Njc2NzY3NhcWBwYHDgEuAjU0JyYBawQOKio6GhgUBhIVCRgbBQkbBwEEBAoLEQphFAEDCQQEBAgYAQgFCR0BBg4KCAEBAhsWERcuFyESAwkVDAELEB9CaTQmPRwSBAQQCw0KBAQBCwIYAgYfK1EyLkoqHQsBAh8GDQkbAQQKCQsHBgUGAQQJDwwgBwkLXhMeAwYLGA8KDiENCQoJBQUUAgsnLk8sNEGIUCgGCi8fJh8IBAELCg4BAQEYAAEALf/+Af0CgwBdAAABHgMUDgIxDgIHBgcUDgQjKgEuAicmNjc2JyYHBgcGBw4HIyIuAScmNjc+AT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE+BAHhCAsGAgIDAgEjMA4yCgMCBgkRCwEFDAoKAgQVEwMLRw4NBx0IAQIBAwQHCg0JBAsWAwUnHRIwEBAEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDgEEDA4WAn0DCQkNCgwHCAFWeiiYUgYfCxUIBwQHEAoVfEgKAQwEBBNmQAUWChIIDAUEAhMQHcBUM4EnJwIHEggJBgMJCQ0KDAcIATxfJg4BCQQBCjJ7JSQCBxIICQAAAAEAMP//Ab4CgAA5AAABFgYHIiMGBwYHFDEWFzAWMh4EBhUOAQciJyYnJjY3MjM2NzY3JiMwJiIuBDQ3PgE3FhcWAbwBHCMJCkYVMAkSBAUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEFGhhrECECYBMmAaw/lVABAQEBAgIEBQgJBhkTAgIEFRMnAnSHWoABAQIDAwYHCgUZEwIEAgUAAAEAL///AhoCfwBNAAABPgM/AQYHMCMGJyY+ATc+ARceBBcWFQYHBicmJw4EBw4GIy4ENzQ+ATc+AxYXFgcGBwYHBhcWNz4DASAHEg8OBARSEgM6CQUHEQsUmDAKGw8QCwUXASIHChUUBAsiHyUNAQEHCxYbKhoHFC4hGAQCEQ8BBA0NFAkYBAIICwINJSsNAQ8SFwGPFzElHgcIAQQMHhAbEgQHAQYBAgEDAwILGiYGAQEBBQYVTFuWVAIJGRcbFAwBAhAbOScGFTIQAQUJBgEFDh4NDhIKNggJKQVEUl8AAQAv//gCVgKLAFcAAAEOAQ8BMD4FNz4BHgIXFBYOAgcGBx4CFxYXHgEGBw4BLgYnLgEnDgQHDgIHBiY3PgE3PgE/AQ4EJy4BNjc+ARceAwYBLQsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOCUXDQcKDBYIEA8ODgsMBwkBDUwDAQYODQ8FBgkPEyAuAwMqGA4YBQQBBQ8OFgkQAhMQHmImAgUMBwECMhlbISETHycpJR0HAQEBBhIOAgQNDQ8GQFwMKHIyFwwHGSMNBQIEBw0KEAoOAROXEwIGFBYkEhZLJwsUHiQjqUssURISAQQNBQUGBh4iEiMzEAEDCw8aAAEALQAAAaEChABDAAAlFgcOAw8BDgEqASYjJiMiBwYHBisBIiMqAS4CJyY2Nz4FPwE+BBceAxQOAjEUDgEHBgc+ARcWAZoGAwEEBAQBAQQMDQoMATIMGFsOKAMEAQQBAgYQDQwCBS4fCRQUFBANBAMBBAwOFwwICwYCAwIDJTAOFxw0gh4aVg8SBgwIBgECBQcDBggBBAEEBxAKG71ZFzYwMCYeCAgCBhIJCAYDCQoMCgwIBwFWeSlDiAYBBwYAAAEALf/zAoYCiwByAAABDgMPAQ4EBxwBBgcGJy4BNzY3Njc2NzY1NAcGJyY2NzY3NhYHBgcGFjc+ATc2NzYWBw4DBwY3Mj4CNz4DNzYWBwIHBhcWIwYnJjY3Njc2JgYHDgIHBgcOAQcGJicmNz4DNzY3NiYBPwgTEA8EBQMMHhcVAQgHFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIAw0KCgIFBQIEIisLDQ0XFgwcFA1aCggHBjEzCAcaFh0CAQUPDA8nJwYSAwITER4wBAgmCREJCgUVBAQEAc0DDRAQBQYEETk+YDAJGjUKIQ4GMSyKojcgCwsGAgkIEBAKKBAvDAcrGhU+CAkHBj4VJgYEHxgKHxkYAw8BAyIrCgsLDwcBAycm/v9BOE9EASMexTtOHgcKBA4QP1AdOkQyMgYLFxcwdBo1HB4NMRgLGwAAAQAt//8CIwKCAFUAAAEeAQ4BBzAOAQcGBxQVDgQHKgEuAjUuAic0LgEnBgcGBw4BJyIuAScmNjc+BT8BPgQXNhcWFx4BFx4CFz4CNz4BPwE0PgMCBg4OAQMBJS8NKQ0CAwcJEQwDBxMPDAEIEAgDAwEZFhoPBBsgBAwWBAYlHAgTERIPCwQDAQIJCxEKHQ4GAQIOAgEHCwQCCQgCCysQEAMLDhgCdwIVHA4GVnkof2oCBBAPFwoJAQUJEw0Gebs5BQsLBD9EUpcoKwIDFREdwFMYNTAvJh0ICAEGDQoIAQIeDAkNaAsGPGAeCRoZCS19KCgCBxALCAACAC///wHoAn8AHwA7AAABHgEHDgIHDgYnLgM3PgQ3PgQXNiYHDgUPAQ4BBwYXFBcWFxY3Njc+AgFrNUgDAg1SQwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcGDQwLCgcCAjtCBwMBAQQHDx8YEyhBHQJ+AVBQHGXgRgEFDgsOBgMGCCw6RSMIHlZSaCkDCRcSD6wvHQoDCAkKCQcCAkunMhgKCwUQChYHBhImlHgAAAACADL//QHvAoIAGgAtAAABFgYHDgMjJw4BBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE6AT4EAbo1DTYZQjo0DxAVGAIENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDA0ZEBgUGAJnJp1EHioRCAFDaho8AwIdDg5M6IM4HxMfB+4vVQwDAQgxGlIdHAMECA0SAAAAAgAv//kB6AKBAC8AVwAAAR4BBw4EBxYXFhcWBwYHBicmJwYHDgYnLgM3PgQ3PgQXNiYHDgMPAQ4BBwYXFBcWFxY3Njc2Ny4BLwEmNhcWFx4CFz4BAWs1SAMBAg0UKBoSFQgGCQsFBhIUGx8DAwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcIEw8NBAQ8QQcDAQEEBw8fGBMNDRMVAQIBFQwOFQIJCgQaIQKAAlFPCB5QT2grHB0LDBUSCAMKCQ4pBAICBQ4LDgUEBggsO0YiCR1YUmkpAwkYEg6tLx4LAw0NDQQES6gyGQoLBRALFQcGEg0SKEENDRcXAwMmBBIRCDyEAAAAAgAy//0B7wKDACUANQAAARYGBwYHFhcWFxYXFgYPAQYmLwEmJwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATI+AgG6NQ02Nl0RIhMmCgUFBAQFEiYODjw4LQQENRMUAQZJNhkPGChwICkBHwYJNRYMIAsKFhgpJwJoJp5DQxYwPiMgCQsPFwcHEAIJCSrBjDk8AwIdDg5N54M5HxMfB+4vVA0DAQcxGVMcHQMKGQABABv//QHPAoIAPwAANxY3NicmJyYnJjc+ARYXFgcGBwYnLgQnJgcOAhceBBcWBgcGJicmNz4CFx4CBg8BDgEfAR4BF94bECscFRscCRc0E0VCFT8FAh4MDggLCAQFAQ4iDhYDEQYgDxcNBAsfLjJ8LUkhBx0rFxARAQQEEgYBAwIFGwtbAw8jVUQtLiJgShscAw4sQh4KAwUCCA0IDgIfDAUmOCAKPB4vJhEwahweBCA2axorGAgGFRcRBiAMGQcGDxABAAAAAAEALQAAAeQCgQAxAAABFgcGBwYmLwEmJwYHBgcUDgcjIi4BJyY2NzY3ByIOASMuATc+AT8BNhYXFgHeBgYLIQgeDAsdKEsVLwwDAQMDBgcJDQcECxYDBSkeHzJEBAsdCxISCQUYCgk97ikbAmANEB4FAQICAgMBsD6HYQMVCBEHDQUGAgISERy+VFd8BgIDASUWDRACAggDBgQAAAEAMP//AgUCgQAuAAABDgEHDgQeARceAT4CNz4BNz4BFx4BBwYCBwYHBgcGJicmJyY2Nz4BFx4BAQEKOgYCBQwKBwEODQMLIB8nEBNHChMfGRYNCgNWGjI2KT8jPBEVAQEyHhknIR8PAh8XpxEEDyooMSYfBQEBCBg+LTbzGCocBQU0Fgr+9UB/LSMGAxocIiw811tOQAEBPQAAAAEAMf/xAbYCggA4AAA3PgI3PgIXHgEPAQYHDgMHDgEHBicuAScuAT4BPwE+AzU+AT8BPgEfARYHFA4CBw4BB5IPX1sBBhAaDw4MAQEDIgEaFicTIikdOyYUCgcCAQECAQEBDg8OAQQDAgojDAwjCgYHCwYHDQSRFNjWAwsPCQYGGgsLIFEBQDVWJkM/IUYWDCA6FDMtJwwMFmJdTwMGDgUEEgwDAw8yAhsgOx8oijEAAQAo//oChgKBAGEAABMOAQcOAhUGNzY3PgE3ND4HNzYWFx4BDgIHBgcOBR4CMxY+ATc+Ajc+BjcyHgEXFgYHBgcOAwcGJyYnDgYnLgE3Njc+ARceAf0FGxAFER0CNB8XDj8JBgMGAwcFBgcEESEGAgEBBgYGQAcBBQIDAQEDBQkFESMWCQMsJQUBCAMJBwwPCQMJEwQFCRJILgYUIDEcMSIWAgIEDxAZGB8ONiEWMyIOHRUYHgIxEUEsEDWBLGE1IFo60BIBDgUNBgoHBwUCCQwRBhAOGBISwjMIGhEYEBIMDAYCMTUdCpd9CwMVBxEICwUBAQsKFzAyzZITJikdAwUiGB8DBhQQFQkIBhCEYe9WJRsBASsAAAEAL//sAfwCgQA+AAAlDgEHBicuAT4BPwE+AT8BJicmNzY3Nh4BHwE+ATc+ARceAgYHDgUPAR4EFx4BDgEHBiYnLgEnAQsDORc+LhAMBQkFBRFOHx8dEBgBAykOGQwEKQ9YCw8pCQcMCQoPBxYaHBoVBgYDCRgTEQIDAwEMCxUbCQkkDuoDYChzGAgcHBsICB56Li5qL0EUJwcCGBoOhhN+DREHCAQOFyMTCB4jJyQdCAkIHEo8NwgMGBwWBQcMDQ1pLwABAC///gGjAo8AKAAAEy4BJy4BNzYXHgEfAT4GFxYHBgcOAhUOAScuAT4BPwE+ATeSAjUUEgURKCYNIAoJDiQWHBQVFAkpFwSOHicaCTgSBwcBBAECDCgOASchmykkPQwWOxVfJiUXPSctGxgIAgc/C/gzb2oCGwYTBhYVFAYGKWIdAAABACgAAAH6AoEATAAANzYXHgcGFQ4GJiMmBwYnJicmNz4BPwEmJzAqAS4GNTQ+BDsBNh4CFx4BBxQOBgcGBw4BB7ByLwYWEBcOEwkMAgMMDBMNFgoVAncnMyAiDA4cFphCQRB3CwcNCQ4JCgYEBgwNDgsDBBhKSEAOGQ0DAwIGAwkEDAMGCU6GHGwEBAEBAQIDBQcKDQkMEgwIBAEBAQIBAgICGh1BMs9PTgIDAgEEBAcIDAcLEQsHAwICAQQGBQcaGwYMCAsFDAUPAwcKWbUuAAAAAAL/6//+AV0BtwAtAEkAAAEOAQcGFRQXFgcOAScuAicuAicmBwYHBicmJyY3PgE3PgI3NhcWNzYXHgEHPgInJgYPAQ4DDwEGFx4CNz4FNwFRDjELAwcDAgUjEAgKAwIBAgEBAgcWKCcgFQ4bDAYrIgQPMxs4KgUFEBgVCMAdLA0JDBkKChsqFg4CAgIEAwkKBgYOCwsIBgIBXxp+OxESGRsMCBAPBgMKBQcCBQYCBQoiBQUOCRQmQiVrJQYSLA4eIwUFDwgIIvUvakQLBQoICBpBODEODhcJBgcCAQIJCwwLCQIAAAL/+P/+AR4CfAAqAEIAAAEWBw4BBw4CJyIuAScmNQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AScuAQcOAQ8BDgEPARYGFjM+AzcBGAYFBjUkAgojFAMJFAUCAwUhGBYBAicdXgsWEh8GDA5HCQIcHwkGCQQGcBwXBAIKCgcOBAQaHgIDAQEKCgYNCwoCAV0mLjuPJgMKDgQDDwwFAQQiAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAoMDvYvgxUMCgIBDQYGJ2cgIAEQEQEKDQ4FAAAAAAH/9gABATMBrQA2AAABFhcUBwYuAjEmBw4EBw4BHgI3Njc+AhceARUOAQcGByInIi4FNzY3Njc2NzYBHxIBDAkQBgcNHAMKHx0mEA4ICBMRCBgPAhIQDQ8QASUQJy8cEQEFDwwQBwUEBxInTSQmMQGSERkTBwcEBgwPDAEGFx85Ih8wGA8EAQERAxsKAQEXDBEvCRgCCwMLDRcbJRUiLFw9HQoMAAAAAAL/9f/9AZkCfAAxAEIAAAE2HgEHDgEHDgQfARYGJyYnJicmJyYiBhUGBwYuAScmPgE3PgE3NhYfATY3Njc2AzYnJgcGBw4BFxY3Njc+ATcBZg4cCQ8GLwsDLCQKAgEBBCgaAQELBAIBAQEFGyIUKx8CARMjFB1EIBAYBAQZBhsKHoMHCAoaHSAPIAMDFQkHHjMKAnYGDyMcCWsgCHRmLDMODyAeDwEBBxAKAwEHASIIBRErHR1XVyEuMgIBBQMDQQ47Ezj+yCEKDRgZRR9rFhINBQgiayQAAAL/9//9AUQBqQAkADgAAAEWBgcOAQ8BBgcGFjc2Nz4BFx4BFQcGBwYHBiYnJjY3PgE3NhYHNicmBg8BDgMPAQYWPwE+AgE7CBYtHlsfHgcCAxoYIxoHGg8KCgEBBw0VK2ocHgIeHm0sJz9SFw0HEQYGDBsWEwUGCw0ODhkrEAFzH1MoGyEDAwgbFBwBAScKDAcEEgcHCw4YDhsIHSBXTUlqBwceYi8KBgEDAwYZHBoJCBkOBAMLJhcAAAAAAQAe//8BtAKAAEgAAAEeAQcOASciLgMiDgEHBgcGBw4CBxcWFxYXFhcWBw4BDwEGJyYnBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWAYoYEgwMIggBCwcNCw4LDAUVEQMCAQQDAhQNCwkFAwEDBAMHAgEUJwUQJAwUCQwEGRoHEwYEFhAmFwcPAQkLGwkXDhEZGE8rFgJwCiASDwIFBAICAQMHBBcrBwQDCQsEAwEFBAYEBAoLCAwCAhcDAQJtI0wnPwERDwMGDy0iW0RpBAIGJA4XAwIDISkmJCYFAgAAAv/0/zoBTgGlAEgAagAAAR4FDgMxBgcOAQcOAgcOAycuAicmNjc2FxYXFjc2NzY3NiYHBgcGJicuATc2NzY3PgU/AT4FFgc2LgEjIiYOAgcOAw8BBhY7AT4BPwE+Az8BPgE3AR0KEQsHAwEBAgIDBB0JKAEBCg8GBxIeLBkhKgwFBg0SGB4FBRAOGBILCgECARIXFE8TEgQHBBMQFgcOCwoHBQECAgcWFyAfIhECBgUBBAoVFh4QDxkNCAECAw4ICQseCAkIFBEOBAMIDAMBmwUNDQ8NDwsNBgkOXB6PCQclLg8QHSYUAwMVEAwPJgsNEAMCBwYKLx4tAQEBFw0NEBsZQxwaLSYgCxINCgcFAQECBQ8NDgYDVgwOAgIKDyIXFzInIAkJFxYCGQwLCyEhHgkKESoMAAAAAf/6//0BNwJ7AEMAAAEGBwYfARYGJy4BNSY2PwE2NzQ2NzYuASMiBwYHDgEPAQ4BJyYnND4BNzY3Njc+Ajc2FhUWBwYHFDIxPgEXHgEfARYBLB8HCQYDAhMYGBMBDAYGBQIPAgEEBgITGBgWBSACCQMZEiEDAQYBBSkRUQkLFA0TIgEXES4BEjETCxIEAxMBNGkjLywkDxsCAyQmFUgZGRYGATgIBwgDFBQqCoEWPQ8QAwQmCBQlCi2KOMkZFhgCBRMRGDQldQETEwQCDgUGIAAAAAAC//oAAADGAgMAJAAsAAATHgMcAQ4BMTAOAQcGFRQWDgMjIicmNjc+Az8BPgMeAQ4BLgE2iAcLBgMCARYeBx0BAQMHDQocCgcPEQYRDw0DBAIGGykbCw4dHAoNAY4BBgYIBggEBTZMGV80AxMHDQUFGBF4NRQwKCIJCgQKDXELHR0NCh0dAAAAAv85/zkA2QIGACYALgAAExYHBgcOAQcOAQ8BBgcOAScmJyY3Njc2FxY2PwE2Nz4BNT4BNz4CHgEOAS4BNqURAwELAj0LCBoICREkG04kKQQBBw0bEh8SGwgIDhMFRgUiCAkeGBwLDB0cCwwBiwoXBycFwCYdTRgYLSUdDhEUIBAPGgMCEggKCwsSQRDeAg9fDA4FcgocHg4KHB4AAf/6//YBRwJ8AEsAACUUDgUxIjEGJyYnJicGBw4FIyIuAScmNjc+AT8BPgQXHgMOAzEUDgEHNjc2FxYHBgcWFx4BHwEeARceARUBRgIEBQUFAgEdHBsfETkTBAEDAgcJEAwECxYDBSkeEjMQEAEDDQ4XDAgMBQMBAgIDJTAOUgcoDg8dEVMMCAkYCAgHLwMICDEFCggHBQMCEhIRKBZjRSMFHwsVBwcCEhEcvVQyfycmAgcRCQgGAwkJDQoMBwcBU3cnPQUaIygcEDoWDhAkCgoIJgIHDgMAAf/+AAEBBQJ8ACgAABMeAxQOAgcUDgMHBgcOBSMiLgEnJjY3PgE/ATQ+A+oICwUCAgMCAQ8XGRsINAoBAwIGCRELBAsVAwUpHRIyEBAEDA4WAnYDCQoMCgwHBwEBIjc9RBqVUQUfCxUHBwISERy9UzJ/JyYCBhIICQAAAAH//f/yAd8BngBxAAABFgcOAgcOAR4BFRQGBwYnJjc+AT8BNjc2Jg8BDgEHDgEXFgcGBxQHMDEGBzAHIiMGIicmJyY3PgE/ATY3NiYPAQ4BBw4BFxYHDgEHIiYvAS4BJzU0Njc+AR8CPgUWFxYXPgM/AT4EAao0DQEOFggGBAECEBEoCwgMAhIHCAYIBAkHBxQaFBMkAwIEAwcCBAUBAQEECQUfCQgLAhIIBwYJBAoGBxQaFBMkAwIFAxEMCA4DBAcHAU8XCxgHBg4BAwwMExEWCicCAwkIBgICAgcXFSABkBRABS1FGhYyISICDhoBAykfQg9EGhsSHQ4MAQEGGyAejSAXEgkHAQEEAgECAQMjH0IPRBsaEh4NDAEBBhsgHo0gFxILDwEFAwIHGgoKOvUUCwIEBA4BBAoICAQCBRMsBQsIBgIBAgUOBQQAAf/9//0BMwGlAEIAAAEeAhQHDgIHDgEeARUWDgEHBicmNz4BPwE2NzYmDwEOAQcOARcWBw4BBwYmLwEuASc1JjY3PgEfAj4FFgEHEhUEAQEPFQgGBAEDAQYQDSkLCQoDEQgIBQkECgcHFRsUEyQEAgUCEgwIDwQDCAgBAU8XDBkHBg8BBAwMExIXAZ4IGRsRBwUuRRoWMiEjAggREAEDKh5DDkUbGxIdDgwBAQcbIR6OIBcSCw8BAQUDAgcaCgo69xULAwUEDQEDCgkIBAEAAAL/9wAAATcBpgAbADAAAAEUDgMHDgQnLgE3PgQ3PgI3NhYHNiYHDgEPAQ4CBwYfAR4BPwE+AQE2AQoTKx4CBhYZJxU4LQYBAxEXLRwFETMZJzpPAg4RCRMEBR0mCgIBAgEEFggJJzgBQgcYR0JRHwIGEAsGAgdLMgYTOTZHHAUQGwIBMj0fEQcEEgYHI141GAsJBREGBgYfnQAAAAL/xv8yAU0BqAAsAEUAABMyFgcUDgMHDgInJicGBw4FJyIuAScmNjc+AT8BPgQXFhc2FzYuAQcOAw8BDgMHBh8BHgE/AT4B9CQ1AQEMEyodBBE4Hx4VHgYBAwEHCRALAwsVAwUnHhEwEA8BBAsOFgwXAxckAwUNCgUMCAcCAhUgEAgBAQEBAxQICCU5AY8xLgsQRztNHAUOEwQFEGYzBR8KFQgHAQISEBy8UzF+JiYCBxEICQYIFwtnExUDBAIJCAgCAxk8OSMPCwkFDwYFBRyTAAAAAv/3/yIBVAG1ACwAQAAAATYWFRQHBgcGAgcyPgEzFhUWBwYHBicmNTQ2Nw4BLgInJjc2NzY3Nhc+Agc2BwYHDgEPARQVFhcWNzY3PgIBJxIbAggPGmEOAwgSBR0BIhseHBEPFA0FDyggHwYEAxBYFhpALgIGFEcDEhEiHyMDAgEDCxcIBh0qDQGkARMVBwgeIDn+6F0DBAIaGBQPCAgODBoWeisBAwILJBwWGYBlGQ0hLgMKEGwjAgIqJmEeHgUFBwYUEQUIIms/AAAAAQACAAABLwGqACMAAAEWDgIvASIGDwEOAQ8BDgEnLgEnNSYSNzYXMh4CFxU+ARYBLAINExIDHhgoCAkTGQMEAxYYEBEBAkgKEhwIDQYDARBBOAGDERUFAwIDIBARJW0kJB8fAgIYCwwoAQEaKwIICQoDAxcTEAAAAf/nAAIBPwGqADwAAAEeAQcGBwYnLgQ1JgcOARcWFxYGBwYmJyY3PgEXHgEGDwEOAR8BHgM3Mz4BPwE2JyYnJicmNz4BAQ0YGQQEGAsKBQkGBAQLGhIFFUUEAyAlJmUjOBMGMhoRDgMEDgUBAgIDCwsLBAQGDAMDIAwEJxQHEicVWgGaCyoUFAYDAgIFCAYJARQIBS8fWycgRBITARYkRBkmCAUVEAUVBxEEBAYIAgEBAQQCAhI1FDUaGT0xGxAAAQAE//0BJAJ7ADoAAAEeAQcOASciJwYHBgcUDgQjIi4BJyY2NzY3JicmNjc+AR8BFjM3PgQXHgMOAzEUBxYBBhAOAgMfJAkKIRAzCwQCBgkPCgQKEwIEKR0SGRcHDQEJBxwKCgQGFQEECw0VCwcKBQIBAgIDDRUCDQUNDRQhAwFUMJdRBR8LFQgHARIQHL5UM0QEAwggEAwKAQEBNwIGEgkJBgIJCQwKDAcIAR4DAAAB//z/9wFiAakANQAAARYHBgcOBAcGJyYxJgcwDgMHBiYnJjc2Nz4BFx4BBwYHDgIWNzI+Azc+Ajc2AUAiFU0JAQMDBQwKJhEBBQ0KCA0PCRcsCwkBBEQUHxcdCw0vEAMJDwYQAQUPDhUJCCofByABnQ0qoj0MKh8fEgIILgIHDQoHCQUBAhcUEiVLpjAlAgEmFVsrCR0+JwEBCA4fFhRoRw00AAEABf//AVQBqgAtAAABHgEHDgEHDgMHDgEuATc2NzY3PgEzNx4BBxUOAgcGFxY3Njc2Nz4BNz4BAUMNBAUFKhQPFyIoFBcvJhYCBz8FCQkVBgcSEQECChcMHgIBDQECHiAMSQIJKAGgBhUOFHEpHSo3Kg4PBRIwJFu1DgsKCgEBEwoKChg2IVQ/HwYBARZAGLwEFg0AAAAAAf/0//0B6QGmAFAAAAEWBwYHDgEHBicmJw4GJy4BNzY3PgEXMhYHDgEHBgcGNzY3PgI3Njc+Ajc2FhcWBgcGBwYHBhYXFj4BNz4DNz4GMzYB4AkcPScLOSsoGxIBAQQMDRUTGgssGRMsHQwYERMYCgUXDSoCAioaEwggHQQBAgYHEAgOGgUDBgs2BwEDCAERDR4SBwMZFxYDAQcDBwYKDAcVAY0TPIdhHDUEAxYPFQIEDQsOBgUECldAnTgZEgEdFwsrHF9BPyIWOxhURwgBAwoNDwQGCAsPFRuAIgULGy8BASAjEwhAPTgHAQ4FCwUHBAIAAAEAAf/4AXgBqgA0AAABHgIHDgEPARYXFgYHBi4BLwEGBwYnLgE+AT8BPgE/ASYnJjU0PgMeAh8BPgM3NgFYCBEHDws8GBhICQcFEAsVDQVJBUg0JAoKAgQDAw5AGhohEhkECA4TEg8FBTAJHRwZBRgBogMSIBQQQhoZfhIMJAwJBAkHhwNcQg0EERIQBgUUTh0eQx0pDQYMDAoCCBYIClcKHx8dBiEAAAH/0/9FAWwBqwBXAAABFgcOAQ8BBgcOCAcGJyYnJicmNhcWFxY+Ajc+ATcwJhUGBw4CJyoBLgInJjY3Njc+BBcWBwYHDgEHBhcWNz4CNz4CNz4DFgFGJRgFDQMEQxMBCggNDREUFxwQERI7EQEBCywdCQ8OFRMLBAoWAwEGDAUQIhACBxUQEQMGERorEwUIEAsTBxcMAw0MKgYXDgUIDi0pDgchEwYBAwgJDwGlEzAMIQoLsj4FIxcnHCQZGA4DAgIKJgMCHi8KAwoGAREOCBI+DgEBCAwFDA4CBgoWDxxrP2kXCAkOBAQGCzAKFxdbEUgVBgIEOEkgElUrCAECBwMBAAAAAf/2//wBXwGkADYAAAEeAQcGBw4BBw4BDwEWFx4CFRQOAScmBwYHBicmNDc+BT8BJiIGIyIuAjc+AT8BPgEBNxIWAQEgAgUCOFMNDj4fERYRDRUMYSMuHRoMCQsFHScuLCQLDBIoIgMIDxYMAQEOBgcenwGhARoRHh4CCAI4ZBYVAwUCCRQQEBcJAg0CAgcGDgsjFAYkLjYzKQ0NAgIDBhALDxQCAwYBAAAAAAQAIv8sA0oCiQAtAEQAbgB/AAABNh4BBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4BPwE+BBcWFzYXNiYHDgMPAQ4CBwYfAR4BPwE+ASUGFxQWBgcGJy4BJyY/AS4CBwYHBgcGJyY3Njc+BDc2HgIHBhUHNgciBw4BBw4CHgE3Nhc2AvEXKBoBAQwTKh0EETgfHhUeBgEDAQcIEAwDCxUDBSgdETEPDwEECw4WDBcDFyQEDRAFDAgHAgIbJgsCAQEBAxQICCU5/tUZBQUBAw0cEBcDBwUDEzYsEB0LBw0aMToUDUMKK0JCRxkdJAgDAwFoGRoFDBJZHQECAgEICU0vAwGJARQsHwkURTxNHAQPEwUEEGYzBR4LFQcHAhIRHLtTMn4mJgIGEggIBggWC2gdEQcCCAkHAwIhWDIWCgkFEAYFBR2TXsBCBRwQBxoEAhIPHjwiBggBAgMSCjFhAwRXPIsUS2NYQgQGEyMoEAUCrIoCCQ+KOwEECQcGAQEPMwAAAAQAIv8uAsYCkgApADEAVwBoAAABFgcGBw4BBw4DDwEGBw4BJyYnJjc2NzYXFjY/ATY3PgE1PgI3PgIOAS4BPgEWATcuAQcGBwYHBicmNzY3PgQ3NgcUDwEGFxQWBgcGJy4BJyYnNhc2NzYHBgcOAQcOAh4BApURAwELAj0LBQ4OCwQDESQbTiQpBAEHDRsSHxIbCAgOEwVGAhEXBQkePRUfFwEVHxf+oQMcUhcdCwcNGjE6FA1DCitCQkcZTAEDGhkFBQEDDRwQFwMHbk0vAw4ZGgUMElkdAQICAQgBgAoXBycFwCUTLSYiCgksJh0OERQgEQ8ZAwISCAsKCxJCD94DBjE6CQ0FPxkEEiAZBBP+mSIJBwIDEwoxYQQEVjyLFEtjWEIFDlcIH8HAQgUbEQcaBAISDx61AQ8zSooBAQkOizsBBAkHBQACADD/+gKtAosAPAB5AAABHgEHDgEnJicGBwYHDgUHIi4BJyY+Ajc2NyYnJjY3PgEfARYzNz4EFx4DFA4CMRQHFiciJgYHBgcXNhcWBwYHBiMHBgcGFxY2FhceAQcUDgMHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAo4QDgEDICQICiERMgsBBAIGCBAKAwsTAgIJEhsOEhoXBw4BCQccCgoEBhYBAwsNFQsICgQCAwIDDBTSBjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAQQHDQg9KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQECEwQNDRUgAgEBVDGWUQUfCxUIBwECEhANQ1NhKTREAwMJHxEMCgEBATYDBhIJCQYCCQkMCwsIBwEeAxICAQNhPQEBDg4XFQUFBlYtRAUBAwEECBsOAQMICAkDFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0PCwYYAAACADD//ALzAo4ARwCCAAABHgEHDgEnMC4CKgEOAQcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnIicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFNhcWBwYHBiMHBgcGFxY2MhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGJyImBgcGBwLIGBIMCyMICwcOCg4LDAUVEQMCAQcCFA4LCAUEAQIDAwcBAhQnBBEjDBMJCwEDGRoHEwUEFRAlFwcPAQgLGwoXDREZF08rFv5OGQ8PBgYXFBFBHQUIMw0hGAgPDwQDEQ09KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQErBjcxF0cVAnEJIBIQAgYDAgMDBwUXKggEBBIFAwEEBAYEBAoLCAwDAhYDAm0kSyc/AhAPAgYPLSFcRGkEAwUkDhcEAQMiKSYlJgQD8QEODhcVBQUGVi1EBQEDBQccDgIIEQUVCAowFEpMI71lBAEGEQsWEAQlEAMNDQ8LBhgBAgECYj0AAAAAAwAw/zQCJQKMACgAMABrAAABFgcGBw4BBw4BDwEGBw4BJy4BJyY3Njc2FxY2PwE2Nz4BNz4CNz4CHgEOAS4BNgMGJyYnLgE2NzY3BgcGJyY+ATc2Fx4EBwYjIiYiBwYHMzYXFgcGBwYjBwYHBhcWNhYXHgEHFA4BAewRAgEKATcKCBcICA8jGk4kFBgDAgcMGxIgEhoICA4RBD8BARAUBggeHhwLDR0cCw3iPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBKwY3MRdHFSwZDw8GBhcUEUEdBQk0DSEYCA8PBAMRAY4KFwcnBcImHU4YGS0mHhERCRsOEQ8aBAIRCAwLCxJCEOACBzE7CQ4GcgocHg4KHB7+FhUHCzAUSkwivmUFAQURChcPBSUQBAwNEAoHFwIDYT4BDg8WFQUFBlcsRAUBAwEECBsOAggSAAAAAgAw//cCuAKLAFUAkAAAJRQOBTEGMQYnJicmJwYHDgUjIi4BJyY2Nz4FPwE+BBceAw4DMTAOAQc2NzYXFgcGBxYXHgcfAR4BFx4BFwEiJgYHBgcXNhcWBwYHBiMHBgcGFxY2FhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGArcCBAUFBAMBHRwbHxE5EwQBAwIGChAMBAsWAwUpHgkUExMPDAQDAQQMDhcNCAsGAgECAgMkMQ5SBygODx0QUwsIAwgHBwcGBQQBAQcvAwgIAf7/BjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAxENPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBMgUKCAcFBAEBEhMRJxdjRSMGHwoVCAcCExAdvVQXNTAvJh0ICAIGEggJBgMJCgwKDAcIVHYoPgUaIygcEDoWDgYNCwsJCAcEAgEIJgMGDgQB8gIBA2E9AQEODhcVBQUGVi1EBQEDAQQIGw4CCBEFFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0PCwYYAAIAMP/8AnICjgAnAGQAAAEeAxQOAxUiDgEHBgcOBSMiLgEnJjY3PgE/ATQ+AwciJiIHBgczNhcWBwYHBiMHBgcGFxY2FhceAQcUDgMHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAlcHCgYDAQICAgEkMQ00CgEDAgYJEQsECxUDBSkdEjIQEAQMDhaUBjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAQQHDQg9KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQECdAMHCQoKCgkGBgFVeCiVUQUfCxQIBwISERy9UzJ/JyYCBhIICVECA2E+AQ4PFhUFBQZWLUQFAQMBBAgbDgEDCQcJAxUHCzAUSkwivmUFAQURChcQBCUQBAwNEAoHFwAAAwAw//sCmQKMADYATACHAAABFgcOAQcOBCciLgMnJiMHBhQOBCMGJjc+Az8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHBgcOAQ8BFgYWNzI+AjcDIiYiBwYHFzYXFgcGBwYjBwYHBhcWNhYXHgEHFA4BBwYnJicuATY3NjcGBwYnJj4BNzYXHgQHBgKSBgUGNCQBBA0OFwwBBAsJCgICAQIBAgMHBwwGGBcBAQoQHBBdDBYRHwYND0YIAxsfCQcIBQZxHRYEAgkLDg4aHwICAQIKCgYOCwkDZwY3MRdHFSwZDw8GBhcUEUEdBQgzDSEYCA8PBAMRDT0pPB0MAwsLOUYVBiEPCQMKBzOcJjgcEAQBAQFeJi47jiYCBAoGBQMBBAYMCAUEAwEJBQgFBAEfGQ49UmMp7hwMBgoKFCSrCgQdEAUICgsP9i+DFQ0JAgIYJ2cgIAEQEQEKDg0FAbMBA2E9AQEODhcVBQUGVi1EBQEDAQQIGw4CCBEFFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0QCgYYAAAAAgAt//8CqwKGADwAfwAAAR4BBw4BJyYnBgcGBw4HIyIuAScmNjc2NyYnJjY3PgEfATIzNz4EFx4DDgMxFAcWJw4BIiYjJgcUBxQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyImLwEmNz4DPwE2FhceAQcCjRAOAgMfJAkKIRAzCwECAQMEBwgMCAQKEwIEKR0SGRcHDQEJBxwKCgQGFQEECw0VCwcKBQIBAgIDDRWwBhcTJgchMAETIA0xCgsXAwUYGh81LgwDAQMDBQcJDQcECxUDBSgdIDUVDwcPBQQYCwEHCQcDAjTUJhUKBgIPBQwNFSACAQFUMZdQBhQLEQkLBgQCEREcvVQ0RAMDCR8QDAoBATYCBxIICgYCCQkNCgwHBwEfAh8FBAIBAwEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQUCAg8cAwkGBQEBFw4WDBkHAAAAAAIALf/+ArECiABHAIoAAAEGBwYfARYGJy4CJzQ+Aj8BNjc0Njc2LgIjIgcGBw4BDwEOAScmJyY+Ajc2NzY3PgI3NhYVFAcGBxQzPgEXHgEfARYlBjEUDgEHMhceARcWBiMGBxQxBgcUDgcjIi4BJyY2NzY3BiciJi8BJjc+Az8BNhYXHgEPAQ4BIiYjJgKmHgcJBQQBEhgREwcBBQcHAgMFAg4CAQIEBAETGBkVBSADCAQYEiEDAQIBBAEGKRBRCgsUDBQiFhEvARMxEwsSAwQT/ngBEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8HDwUEGAsBBwkHAwI01CYVCgYFBhcTJgchATRoIy8sJQ4bAgITHxkNJyUiCgoWBgE4CAUIAwIUFSkKgRc8DxADBCUFFgwbCi2KOMkYFxgCBRQQGDQldQETEwQCDgUGINECASxNIAEBDxATGwEGAYRfBBUHEQYNBQYCAhIQHLpSWn8EAQUCAg8bBAkGBQEBFw4WDBkHBgUEAgEAAAAAAgAt//YCvAKGAEoAkAAAJRQOBTEGJyYnJicGBxQOBCMiLgEnJjY3PgE/AT4EFx4DFA4CMQ4CBzY3NhcWBwYHFhceAR8BHgIXHgEVAQYVFA4BBzIXHgEXFgYjBgcUMQYHFA4HIyIuAScmNjc2NwYnIi4EJyY3PgM/ATYWFx4BDwEOASImIyYCuwIEBQUFAx0dGx4RORMFAwIHCRELBAsWAwUpHhIzEBABAwwPFwwIDAUCAgMCASQxDlMHKA0QHhBTDAcJGQgIBRQZBwcJ/m8BEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8DBwYGBAQBGAsBBwkHAwI01CYVCgYFBhcTJgchMQUKCAYFBAISEhInFmRFJAUfCxUHBwITEBy+UzN/JiYDBhEJCAYCCQoMCwsIBwFTdig+BBojJx0POhYPECQKCQYRFQUHDgMB8gEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQECAgIBAQ8cAwkGBQEBFw4WDBkHBgUEAgEAAAAAAgAt//8CcgKHACYAaQAAAR4DFA4CFSIOAQcGBw4FIyIuAScmNjc+AT8BPgQFFAcUDgEHMhceARcWBiMGBxQxBgcUDgcjIi4BJyY2NzY3BiciJi8BJjc+Az8BNhYXHgEPAQ4BIiYjJgJXCAsFAgIDAgEkMQ00CgEDAgYJEQsECxUDBSkdEjIQEAEDDA4X/t4BEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8HDwUEGAsBBwkHAwI01CYVCgYFBhcTJgchAnQDCQoMCgwHBwFVeCiVUQUfCxQIBwISERy9UzJ/JyYCBhIICVIBAQEsTCEBAQ8QEhwBBgGEXwQUBxIGDQUGAgISEBy6Ulp/BAEFAgIPHAMJBgUBARcOFgwZBwYFBAIBAAAAAAMALf//ApsChgA0AEoAjwAAARYHDgEHFA4FJyIuAycmNQcUDgMjBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BBw4BDwEOAQ8BFgYWNz4BNwMGFRQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyImLwEmNz4DPwE2FhceAgYPAQ4BIiYjJgKVBgUGNSQCBwcMDBIJAQQKCQoDAgMBBQgOChgWAQInHV4LFhIfBgwORwgDHB8IBwkEBnAcFwQCCgoHDgQEGh4CAwEBCgoJFwbyARMgDTEKCxcDBRgaHzUuDAMBAwMFBwkNBwQLFQMFKB0gNRUPBw8FBBgLAQcJBwMCNNQmDQ4BAwMCBhcTJgchAWEnLjqPJgECBgUHAgICAQQGDAcFAQUDBAwIBwEeGiO5Te4cCwcLChMkqwoDHhEECAoMD/UvgxUMCgIBDQYGJ2cgIAIPEgEBFwwBtgEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQUCAg8cAwkGBQEBFw4WBxAMCgMCBQQCAQAAAAIALf//AuAChAA6AJkAAAEeAQcOAScmJwYHBgcUDgQHIi4BJyY2NzY3JicmNjc+AR8BMjM3PgQXHgMOAzEUBxYnHgMUDgIxDgIHBgcUDgQjIi4BJyY2NzYnJgcGBwYHFA4FIyIuAScmNjc+BT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE0PgMCwRAOAgIgJAgKIREyDAQCBggQCgMLEwIEKR0SGhcHDgEJBxwKCgQGFgEDCw0VCwcKBQIBAgIDDRXaCAsGAgIDAgEjMA4yCgMCBgkRCwQLFgMEFRMDC0cODQcdCAMCBAYKDwoECxYDBScdCBQSEg8MAwQEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDwQMDhYCDwQNDRUgAgEBVDGXUAYeCxUIBwECEhAcvVQ0RAMDCR8RDAkBATYCBxIJCQYCCQkMCwsIBwEfAm0DCQkNCgwHCAFWeiiZUQYfCxUIBwISERV8RwsBDAQEE2ZABRsJFQcLBAITEB3AVBg2MDAmHggIAgcSCAkGAwkJDQoMBwgBPF8mDgEJBAEKMnslJAIHEggJAAAAAgAt//8DUAKEAEkApwAAAR4BBw4BJyIuAyIOAgcGBwYHDgIHFxYXFhcWFxYHDgEPAQYnJicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYlHgMUDgIxDgIHBgcUDgQjKgEuAicmNjc2JyYHBgcGBw4HIyIuAScmNjc+AT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE0PgMDJhgSDAsjCAEJBgsKDAoLCgQWEQMCAQMEAhQOCwgFAwEDBAMGAgIUJwQRJAwUCQwEGRoHEwYEFhAnGAcOAQgLGwoXDREZGE8rF/7PCAsGAgIDAgEjMA4yCgMCBgkRCwEFDAoKAgQVEwMLRw4NBx0IAQIBAwQHCg0JBAsWAwUnHRIwEBAEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDwQMDhYCcAkgEhABBQMCAgIBAwYFFisHBQMICwUCAgQEBgQECgsIDAIDFgMBAm0kSyc/AREPAwYPLSFcQ2kEAwYkDhcDAQMiKSYkJgUDBgMJCQ0KDAcIAVZ6KJhSBh8LFQgHBAcQChV8RwsBDAQEE2ZABRYKEggMBQQCExAdwFQzgScnAgcSCAkGAwkJDQoMBwgBPF8mDgEJBAEKMnslJAIHEggJAAAAAgAw//8CigKBADsAeQAAAR4BBw4BJyInBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc+BBceAw4DMRQHFiciIwYHBgcwFDEWFzAyHgUGFQ4BByYnJicmNjc2MzY3NjcmIzAuBzQ3PgM3FhcWFxYGAmsQDgICICQICiIQMwsDAgQGCQ0JAwsTAgQpHRIaGAcNAQkHHAoKBAYWAQMLDRULBwoFAgECAgMNFecJCkYVMAkSBAUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBAMEAwUCAwEBAgoPEAxrECEBARwCEgUNDBUhAwFTMZdRBhgLEwkKBAESEBy+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAhKrQJRQAgEBAQEDBAUHCQYaEwIBAQQVEygBAXSHWYABAQEBAgMDBgcJBQ0RCgQBAwMEFhMmAAAAAAMAMP8rApACfwAuAEcAgQAAATYWBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4DPwE+BBcWFzYXNiYHDgMPAQ4EBwYXFR4BPwE+AQUwFjIeBAYVDgEHIicmJyY2NzIzNjc2NyYjMC4GNDc+ATcWFxYXFgYHIiMGBwYHFDEWAjckNQEBDBMrHAQROB8eFR4GAQMCBgkQCwMLFQMFJx0LHRgVBgYBBAsOFgwXAxckBA0QBQwIBwICERwQDAQBAQEEFAgIJTn+rgUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEFGhhrECEBARwjCQtFFTAJEgGIATEuBxdDPU0cBA8TBQQQZjMFHgsVBwcCEhEcu1MfSz81Dw8CBhIICAYIFgtoHREHAggJBwMCFDIqLBkMCgkFEAYFBR2ToQECAgQFCAkGGRMCAgQVEycCdIdagAEBAQEDAwYHCgYYEwIEAgQWEyYBrD+VUAEBAAAAAgAw//4C4wKAAEkAhAAAAR4BBw4BJzAuAioBDgEHBgcGBw4BBxcWFxYXFhcWBw4DByMGJyYnBw4DBw4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWAQYHMBQxFhcwMh4FBhUOAQcmJyYnJjY3NjM2NzY3JiM0Ii4FNDc+ATcWFxYXFgYHIiMGArgYEgwLIwgLBw4KDgsMBRYQAwICBgITDgsIBgMBAgQBBAMDAQETJwURIwwVCAwBAxoZBxMFBRUQJxcIDgEIDBsJFw4RGRhOKxf+bDAJEgQFAgYDBQIDAQQaGGsQIQIBGyMICw0tHzEKAgUCBgMFAgIBBRoYaxAhAQEcIwkKRgJvCiASDwIFBAIDAwcEFysHBAQSBQMBBQQGAwUKCwUJBQQBFwMBAm0jTCc/AREOAgYPLSJbRGkEAwUkDhcDAgMhKSYkJgUC/sSUUAIBAQEBAwQFBwkGGRQCAQEEFRQnAQF0h1mAAQEBAgIEBQcKBhkSAgMDBBUUJgGrAAAAAAMAMP84AhECggApADEAbQAAARYHBgcOAQcOAQ8BBgcOAScuAScmNzY3NhcWMj4BPwE2Nz4BNT4BNz4CHgEOAS4BNgMOAQcmJyYnJjY3MjM2NzY3JicwIi4FNDc+AjcWFxYXFgYjBiMGBwYHMBQVFjMwHgYGAdsRAwEKAjoLCBgJCBAkG04jFBgCAgcNGxIfCxIPCwMDDhIERAQiBwkeGhwLDB0cCwzGBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEDEBQQaxAhAQEcIwkLRRUwCRIEBQIGAwUCAwEBjgoYByYGwSUdThgYLSYdDxAKHA4QDxoEAhIFCgsEBRJCD98DDmAMDgVwChweDgscHv44GRMDAQIDFhMnAnSHWYABAQECAgQGBwkGERQHAQMCBRUTJwGrP5VQAQEBAQEBAgQFCAkAAAIAMP//Ak8CgAAoAGMAAAEeAxQOAjEiDgEHBgcOBSMiLgEnJjY3PgM/AT4EAQYHMBQxFhcwMh4FBhUOAQcmJyYnJjY3NjM2NzY3JiMwLgY0Nz4BNxYXFhcWBgciIwYCNAgLBQICAwIBJDENNAoBAwIGCRELBAsVAwUpHQwcGRYGBwEDDA4X/ugwCRIEBQIGAwUCAwEEGhhrECECARsjCAsNLR8xCgIFAgYDBQICAQUaGGsQIQEBHCMJC0UCdQMJCgwKDAcIVXgolVEFHwsVBwcCEhEcvVMgSz81EA8CBhIICf7AlFACAQEBAQMEBQcJBhoTAgEBBBUTKAEBdIdZgAEBAQEDBAUHCgYZEgIDAwQWEyYBqwAAAAADADH//wJ4AoAAKwBBAH4AAAEWBw4CBw4CJyIuAScmNQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AScuAQcGBw4BDwEUBhY3PgM3JwYHMBQxFhcwMh4FBhUOAgcmJyYnJj4BNzYzNjc2NyYjMC4GNDc+ATcWFxYXFgYHIiMGAnIGBQQYKhkCCiMUAwkUBQICBiEYFgECJx1eDBYRHwYMDkcJAhwfCQYJBAdxHBcEAgoKDw4aHgICAQoKBg0LCgLsMAkSBAUCBgMFAgMBAw8UEGsQIQIBCB4YCAsNLR8xCgIFAgYDBQICAQUaGGsQIQEBHCMJCkYBXycuJFhZGgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLChMkqwoDHhEECAoMD/UvgxUMCgIDFydnICACDxIBAQoNDgTGlFACAQEBAQMEBQcJBhIUBwIBAQQVCxgYAQF0h1mAAQEBAQMEBQcKBhkSAgMDBBYTJgGrAAIAL///AvACgAA7AIcAAAEeAQcOAScmIwYHBgcUDgUjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMOAzEUBxYnBicmJw4EBw4EJy4ENzQ+ATcwPgUyFhcWBwYHBgcGFxY3PgM3PgE/AQYHMCMGJyY2Nz4BFx4DFxYVBgLREA4CAiAkCAohETIMAwIEBgkNCQMLEwIEKR0SGhgHDQEJBxwKCgQGFgEDCw0VCwcKBQIBAgIDDRXVBwoVFAQLIh8lDQEDERs2IwcULiEYBAIRDwEFBAgHCQoLBRgEAggLAg0lKw0BDxIXCQsfCgpSEgM6CQcTEhSYMAsjDxEGFwECDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgwBAQEFBhVMW5ZUBRAqHxkBAQIQGzknBhUyEAIEBAUDAwMDDh4NDhIKNggJKQVEUWAcJU0UFAEEDB4XJAYHAQYBAwIDAwsaJgAAAAIAL///Ay0CgABKAJkAAAEeAQcOASciLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgMVBwYnIicHDgMVDgImJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFJicOBAcOBCciLgM3ND4BNz4DMhcWBwYHBgcGFxY3PgU3PgM/AQYHMCMGJyY2Nz4BFx4GFxYVBgcGAwMYEgwMIggBCwYOCw4LDAQWEQMCAQcCFA4LCAUDAQMEAgQDAwEUJwQRJAwUCQwDEBQSBRMGBBYQJhcHDwEJCxsJGA0RGRhPKxf+9hUUBAsiHyUNAQMRGzYjBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEICg0NDwYHEg8OBARSEgM6CQcTEhSYMAgTDQ4JCggDFwEiBwJwCSATDwIGAwIDAQEDBgUXKggEBBIFAwEFAwYEBAoLBQkGAwEBFgMCbCRLJz8CDA8DAwQQLCJcQ2kEAwUlDRgDAQMhKSYlJgUDXQIEBRVNWpdTBRAqHxkBAxAbOScGFTIQAQUJBQUOHg4NEgo2CAoqAyIvPDk5FBcxJB4ICAEEDB4XJAYHAQYBAQIBAQIDAQsbJQYBAAAAAAIAL//+At8CgQBEAIsAAAEGBwYfARYGJy4BJzQ2PwE2Nz4BNzYuAiMiBwYHDgEPAQ4CJyYnJj4BNzY3Njc+Ajc2FhUUBwYHFDM+ARceAR8BFicmJw4EBw4EJyIuAzc0PgE3PgMyFxYHBgcGBwYXFjc+Ajc+AT8BBgcwBwYnJjY3NjIXHgMXFhUGBwYC1B8GCQUEARIYGRIBDAYGBQEBDgIBAgQEARMZGBUFIQIIAg0TDCEDAQIFAQYpEFEKChUMFCIWES8BEzAUCxIDBBP6FRQECyIeJg0BAxEbNiMHFC4hGAQCEQ8BBA0NFAkYBAIICwINJSsNARcfCwsfCgpSEgM6CQcTEhSYMAsjDxEGFwEiBwE0aSIvLCUOGwIDJCYVRxoZFgYBOAgFCAMCFBUpCoEXPAoOBgIEJQkUJQotijjJGBcYAgUUEBg0JXUBExMEAg4FBiDFAgQFFU1al1MFESkgGAECEBs6JgcVMhABBAoFBg0eDg0TCjUICikFaoMkJU0VFAIDAQseFiQHBwUBAwIEAwobJQYCAAIAL//2AvECgABNAJQAACUUDgUxBicmJyYnBgcOBSMiLgEnJjY3PgU/AT4EFx4DDgMxDgIHNjc2FxYHBgcWFx4BHwEeARceARUBJicOBAcOBCciLgM3ND4BNz4DFhcWBwYHBgcGFxY3PgI3PgE/AQYHMAcGJyY2NzYyFx4DFxYVBgcGAvACBAUFBQMdHRseETkTBAEDAgcJEQsECxYDBSkeCBUSExAMBAMBAw0OFwwIDAUDAQICAwEkMA9TBygNEB0RUwwICBkICAcvAwgI/vYVFAQLIh8lDQEDERs2IwcULiEYBAIRDwEEDQ0UCRgEAggLAg0lKw0BFx8LCx8KClISAzoJBxMSFJgwCyMPEQYXASIHMQYJCAcFBAISEhInF2NFJAUfChUIBwITEB29VBc1LzAlHggIAgYSCAgGAgkKDAoMBwgBU3YoPgUaIygcEDoWDxAkCQoIJgMHDQQB6AEFBRVNWpdUBRApIBgBAhAbOiYHFTIPAgQKBQEFDR4ODhIKNQkJKQVphCQlTRQVAgMBCx4WJAcHBQIDAQQDCxolBwEAAAIAL///ArMCfwAoAHEAAAEeAw4DMTAOAQcGBxQOBCMiLgEnJjY3PgM/AT4EByYnDgQHDgYnIi4DNzQ+ATc+AzIXFgcGBwYHBhcWNz4CNz4BPwEGBzAjBicmNjc+ARceAxcWFQYHBgKYCAsGAgECAgMlMA4zCwMCBwkQCwQLFgMFKR4LHRkWBgYBAw0NF6cVFAQLIh8lDQEBBwsWGyoaBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEXHwsLHwoKUhIDOgkHExIUmDALIw8RBhcBIgcCdAIJCgwKDAcIVXgolVEFHwsVBwcCEhEcvVMgSz81EA8CBhIICF8CBAUVTVqXUwMIGhYcEw0BAxAbOScGFTIQAQUJBQUOHg4NEgo2CAoqBWmDJSVNFBQBBAweFyQGBwEGAQMCBAILGyUGAQAAAwAv//8C1AKBADQASgCSAAABFgcOAgciDgUnLgInJiMHBhQOAyMGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHDgEPAQ4BDwEWBhY3MjY3AyYnDgQHDgQnLgQ3ND4BNz4DFhcWBwYHBgcGFxY3PgM3PgE/AQYHMCMGJyY2Nz4BFx4DFxYVBgcGAs0GBQMZKhgBAgYICw0RCQMKFAQCAQIBAwYIDQcZFgECJx5dDBYRHwYND0cJAxsfCQcIBQZxHRYEAgkLBw4EBBkfAgIBAgoKCRcHbxUUBAsiHyUNAQMRGzYjBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEPEhcJCx8KClISAzoJBxMSFJgwCyMPEQYXASIHAV4mLiVYWRoCBwUGAwICAQIPDQUEAwMJBwgFAR8ZI7lN7hwMBgoKFCSrCwMdEAUICgsP9i+DFQ0JAgENBgYnZyAgARARARgLAbABBQYVTFuWVAUQKh8ZAQECEBs5JwYVMhABBQkGAQUOHg0OEgo2CAkpBURRYBwlTRQUAQQMHhckBgcBBgEDAgMDCxomBgEAAAAAAgAv//gDPwKLADwAkgAAAR4BBw4BJyYnBgcGBw4GIyIuAScmPgE3NjcmJyY2Nz4BHwEyMzc+BBceAxQOAjEUBxYBFhceAQYHDgEuBicuAScOAgcOAgcGJjc+ATc+AT8BDgQnLgE2Nz4BFzIeAgYHDgEPATA+BTcyNh4CFxQWDgIHBgceAgMhEA4CAyAjCQohEDMLAQMBBAYJDgkDChMDAhAiExEaFwcOAQoHGwoLAwcVAQMMDRULBwoFAQMCAwwV/n0XDQcKDBYIEA8ODgsMBwkBDUwDBA0dCAYJDxMgLgMDKhgOGAUEAQUPDhYJEAITEB5iJgIFDAcBBwsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOAIPBQwNFSACAQFUMZdQBhgMEgkKBQIRERJkgDc0RAMDCR8QDAoBATYCBxIICgYCCQkNCgwHBwEfAv5pGAsIGCQNBAMEBw0LEAkOAhKXEwQQNh4VSycMEx4jI6lLLVATEgIEDAUFBQceIhIiNBEDDA4bEBlbICETHyYpJR4HAQEGEg4BBQ0MEAY/XQspcgAAAwAv/y8DVAKLAC4ARgCfAAABNhYHFA4DBw4CJyYnBgcOBSMiLgEnJjY3PgM/AT4EFxYXNhc2JgcOAw8BDgMHBh8BHgE/AT4BBRYXHgEGBw4BLgUnLgEnDgQHDgIHBiY3PgE3PgE/AQ4EJy4BNjc+ARcyHgIGBw4BDwEwPgU3PgEeAhccAg4DBwYHHgIC+iU1AQEMFCocBRE4Hh8UHgYBAwIGCRALBAsVAwUoHQscGRUGBgEDDA4WDBcCGCQDDBAGCwkHAQIWIBAHAgEBAQQUCAglOP6WFw0HCgwWCBMPEgwPCAsBDUwDAQYODQ8FBgkPEyAuAwMqGA4YBQQBBQ8OFgkQAhMQHmImAgUMBwEHCyILDBMhKzQ0OhkDCBgUFQYCBQoRC6FcAw04AYwBMS4JFEU8TRwEDxMFBBBmMwUeCxUHBwISERy7Ux9LPzUPDwIGEggIBggWC2gdEQcCCAkHAwIZPTgkDwoJBRAGBQUdk30YCwgYJA0FAQQNCxILEQESlxMBBhQWJBMVSycMEx4kIqlMLFESEgEFDAUFBQceIhIiNBEDDA4bEBhbISETHycpJB4HAQECBhIOAQIHCAoKCgU/XAwpcQAAAgAv/z8DXQKLAFgAsQAAARYHDgMPAQYHDggnJicmJyY2FxYXFj4CNz4BNzAmFQYHDgMnIi4DJyY2NzY3PgQXFgcGBw4BBwYXFjc+ATc+Azc+AxYBFhceAQYHDgEuBScuAScOAgcOAwcGJjc+ATc+Az8BDgQnLgE+ATc+ARcyHgIGBw4BDwEwPgU3PgEeAhcUFg4CBwYHHgIDOCUYBAgGBQEBQxMBDQgRDhgXICISOxEBAQsrHggQDhQUCwMKFwMCBQ0DCxMZDAIIFBERAwYRGisTBggPDBIHGA0DDA0qBRcNBQgWRxUIFw4QBQECCQkO/mgXDQcKDBYIEw8SDA8ICwENTAMEDR0IBQgFEA8gLgMDKhgJEAsIAQIBBQ8OFgkMBwgQDB5iJgIFDAcBBwsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOAGfEzAHExEPBASyPgQsFy8dJxgTBQIKJgMCHi8KAwoGAREOCBI+DgEBCAwECAwHAQEGChYPHGs/aRcICQ4EBAYLMAoXF1sRSBUGAgZrNBI8JCIGAQIHAwH+1xcMCBgkDQUBBA0LEgsRARKYEgQQNh4TNx8hCRMeJCOoTBw1JR0HBwEFDAUFBQUUGRoNIjQRAwsPGw8ZWyEhEx8nKSQeBwEBAQcSDgEFDQwQBj9cDClxAAAAAAMALf80AqUCfwAtADgAegAAARYHBgcOAgcOAw8BBgcOAScmJyY3Njc2FxY2PwE2Nz4BNz4ENz4BFzYeAQcOAicuATYBJiMiBwYHIisBBiMwIi4GJyY2Nz4BPwE+BBceAxQOAjEUDgEHBgc2MhcWFxYHDgEPAQ4CLgECchEEAQsCHSIIBQ8NDAMDESQcTiMpBAIIDRoTHxEbCAkOEwRGAQEHDAwLBAkeCw0cCwYFEBMKDgsN/vkyDBhbDigDBAEEAQIHBggICAYFAQUuHxI1EREBBAwOFwwICwYCAwIDJTAOFxw0gh4aCQYDAQgDAwQMDQoMAYYKFwcnB1ptHBMtJiIKCSwmHQ4RFCARDxkDAhIICwoLEkIP3gMDFiAgGwYNBQh6ChwPCg0EAwUdHf4TBQcBBQEBAQMEBQgKBhu8WTOBJycCBhIICQYDCQoMCwwHBwFWeihDiQcGBhYPEgoSAwQGBgEBAwAAAAMALf80AyICiwAtADgAoQAAARYHBgcOAgcOBQ8BBgcOAScmJyY3Njc2FxY2PwE2Nz4CNz4BNz4BFzYeAQcOAicuATYHNiYGBw4BBwYHBgcGJicmNz4CNzY3NiYHDgEPAQ4EBxYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOATEGPwE+Ajc+Ajc2FgcCBwYXFiMGJyY2NzYC7hEEAQoCHSMIBAoJCggHAQIRJBtOJCkEAggNGhMfERsJCA4TAyUiAQQjCAkeCw0cCwYEERMKDgsN5wEFDwwYQgkSAwQiHjAECCYLFQsHFQQEBBEMIQsLAwweFxUBARAWKREVBhNAEwwEAgENHBcOAREzNyEpBwYhBQEKBzoYKSQYGAgGIAUFBAIiKwsREiAQHBQNWgoIBwYxMwgHGhYdAYYKFwcnB1ptHA4fHR0YEgUFLCYdDhEUIBEPGQMCEggLCgsSQgt0bQQOXw0NBQh6ChwPCg0EAwUdHUgICgQOHHYqOkReDAsXFzB0IEIjETEYCxoFAx0NDQQROT5gMEwWIQ4GMSyKojcgCwsGAQkHEBAKKBAvDAcrGhU+CAkHBj4VJgYEHxgSSw8BAQIiKwoPDg8BAycm/v9BOE9EASMexTtOAAAAAAIALf/1A34CjQBFAK8AAAEGBwYfARYGJy4BNSY2PwE2NzQ+Ai4BIyIHBgcOAQ8BDgEnJicmPgE3Njc2Nz4CNzYWFRQHBgciFjM+ARceAx8BFiUCBwYXFgciJyY2NzY3NiYGBw4BBwYHBgcGJicmNz4CNzY3NiYHDgEPAQ4EBxYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOAgcGNzI+Ajc+Ajc2FgNyHgcJBgMBEhgZEgEMBgYFAggHAwUFAhMYGBYFIAMIAxkSIQMBAgUCBSkRUQkLFAwUIhYRLgEBARIxEwcMCAYBAhP+/FoKCAcGMTMIBxoWHQIBBQ8MGEIJEgMEIh4wBAgmCxULBxUEBAQRDCELCwMMHhcVAQEQFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIBBEPAgUFAgQiKwsREiAQHBQBNWoiLi0kDhwDAiUmFEgZGhUGAxseDAkCFBQqCoEWPBAQAwUlCBQmCS2KOMoYFhgDBBMRGDMmdQETFAQCBwcHAgMftf8AQTlPQwEiHsY6Th4HCgQNHHYqO0RdDQsXGDBzIEMjETAZChsFAx0NDQUROD5gMUsXIA4FMiuKojcgDAsFAgkIEBEJKRAuDAgrGhU/BwoIBT8VJQcEIBcOKSMEDgECIysJDw4PAgImAAAAAAIALf/4A98CjwBIALYAAAEeAQcOAScwLgMOAgcGBwYHDgIHFxYXFhcWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFAgcGFxYjBicmNjc2NzYmBgcOAQcGBwYHBiYnJjc+Ajc2NzYmBw4BDwEOBAccAQYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOAgcGNzI3PgM3PgI3NhYDtBgTDAsjCAsHDgoOCwwFFRADAQIDAwIUDgsIBQQBAwQDBgICEycEESEMEggLAxkaBxMEBBMPJBcIDgIICxsJFw0QGBhNLBb+2loKCAcGMTMIBxoWHQIBBQ8MGEIJEgMEIh4wBAgmCxULBxUEBAQRDCELCwMMHhcVAQgHFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIBBEPAgUFAgIBFxofCRESIBAcFAJ2CSASEAIFAwICAQEDBwUXKwcFAwkKBQIBBQMGBAQKCwgMAwIXAwJuJEsoPwERDwIFDy0iXERqAwMFJA4XBAIDIiknJScEAmz+/0E5T0MBIh/FO04dBwsEDhx2KjpFXQwLFxcwdCBCIxEwGQsaBQMdDQ0EETk+YDEIGjUKIQ4GMSuKojgfDAsFAgkIEBEKKBAvCwgrGhU+CAkHBj4VJgYEHxgNKiMDDwEBARcbHggODw8BAiYAAAAAAgAt//8DCwKEAD0AkgAAAR4BBw4BJyYjBgcGBw4GIyIuAScmPgI3NjcmJyY2Nz4BHwEyFzc+BBceAxQOAjEUBxYnHgEOAQcwDgEHBgcUFQ4EByoBLgI1LgInLgEnBgcGBw4BJy4CJyY2Nz4DPwE+BBc2FxYXHgEXHgMXPgE3PgM/ATQ+AwLtEA4CAyAjCQohETILAQMBBAYJDgkDChQCAgoSGg8RGhcHDgEKBxsKCwMHFQEDDA0VCwcKBQEDAgMMFeEODgEDASUvDSgOAgMHCREMAwcTDwwBCBAIAQUBGRYaDwQbIAQMFgQGJRwLGxgVBgYBAgkLEQodDgYBAg8BAQUFCQMCEQIHFxYVBgcDCw4YAg8FDQwVIQMBUzGXUQYYCxIJCwQCERENQ1NhKTNEBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAmcCFRwOBlZ5KH9pAwQQDxcKCQEFCRMNBnm7OQcWAj9DU5YpKwIBAhURHcBUH0w/Ng8PAgUNCggBAh0NCQ1oCwUqMkYZCTELHEk/NhAQAgcQCwgAAAACAC3//wN9AoMASQCdAAABHgEHDgEnIi4DIg4BBwYHBgcOAQcXFhcWFxYXFgcOAw8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgUeAQ4BBzAOAQcGBxQVDgQHKgEuAjUuAic0LgMnBgcGBw4BJy4CJyY2Nz4BPwE+BBc2FxYXHgIXHgIXPgE3PgE/ATQ+AwNSGBIMCyMIAQoHDgoOCwwFFhEDAgEHAhQOCwgFAwEDBAIEAwIBARQnBBEkDBQJDAMaGQgTBgQWECcXCA4BCAsbChcNEhgYTysX/sgODgEDASUvDSgOAgMHCREMAwcTDwwBCBAIAQIBAgEZFhoPBBsgBAwWBAYlHBEvEA8BAgkLEQodDgYBAgcIAQEHCwQCEQILKxAQAwsOGAJyCSASEAEFBAEDAQMHBRcqBwUDEgYCAgQEBgQECgsFCQUEAQEWAwECbSRLJz8BEQ8DBg8tIVxDaQQDBiQOFwMBAyIpJiQmBQMDAhUcDgZWeSh/aQMEEA8XCgkBBQkTDQZ5uzkDBwYGBwI/Q1OWKSsCAQIVER3AVDJ/JyYCBQ0KCAECHQ0JCzc1CQY8YB4KMAstfSgoAgcQCwgAAwAv//4DdgKDAEcAaQCBAAABHgEHDgEnNC4DDgIHBgcGBw4BBxcWFxYXFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWJR4BBw4EBw4GJy4DNz4ENz4EFzYmBw4BDwEOAQcGFxQXFhcWNzY3PgIDSxgTDAsjCAsHDgoODAsFFREDAQIGAhQOCwgFAwEDBAIHAQIUJwQRIgwTCAsEGRkIEwUEFA8mGAcPAQgLGwkXDREYGE4rF/40NUgDAQQUIEEqAQUQERwdJxMmNBcHBwIGGyNCKAIJHB4rKgQWFw0fCQo7QgcDAQEEBw8fGBMoQR0CcwkfEw8DBQEDAgIBAQMGBRgqCAQEEgUCAgQEBgMECgwIDAICFwMCbSRMJz8BEQ8CBg8sIlxEaQQDBSQOFwQBAiEpJyQoBQIHAVFPCilqZXksAgQPCg8FAwUJKzpGIgkdV1JoKQIKFxIOqy8cCgUZCglLpzIZCgoFEQoVBwYSJpR4AAAAAAMAL//8AyECfwAzAFUAbQAAAR4BBwYHDgIHDgMPARYXHgEVFAYnJgcGBwYnJjQ3PgE/ASYiBiMiLgI3PgE/ATYyJR4BBw4EBw4GJy4DNz4ENz4EFzYmBw4BDwEOAQcGFxQXFhcWNzY3PgIC+RIWAQEgAgMCAiM9IxkFBT4fGh4bE2EjLh0aDAkLCm4zMxIoIgMIDxYMAQEOBgYfn/6HNUgDAQQUIEEqAQUQERwdJxMmNBcHBwIGGyNCKAIJHB4rKgQWFw0fCQo7QgcDAQEEBw8fGBMoQR0BoQIaEB8eAgQEASRDLiMICAMEBRQXGBgCDQEDBwYPCiMUDoI6OgMCAgcPDA8TAwIH2wFQUAopamR6LAEFDgsOBgMGCCw6RSMIHlZSaCkDCRgRD6wvHQoGGQkKS6cyGAoLBRAKFgcGEiaUeAAAAAQAMv8WAuQCgAAvAEcAYwBzAAABMhYVFAcGBw4CBzI+AzMWFxQHBgcGJyYnNDY3DgEuAicmNzY3Njc2Fz4CBzYHBgcOBQcVFBcWFxY3Njc+AicOAycjDgEHBicuATUnPgM3Njc+ARcWBgc2JicmJyYHDgEPATI+AgK2ExoCCA8NMz8JAQMJCAkDHQEhHB4cEQ4BFA0FDyggHwYEBBBXFhpALwEGFEcDEhIhDhcOCwUDAQEBAgsYBwccKg23GUI6NA8QFRgCBDcTFAEFKTkmEQ8YKHArNQ1zKQEfBgk1FgwgCwoWGCknAZkTFAcJHiAch8pBAQMCAQEaGRMQCAcODBoVeysCAgEMJBwWGYBlGA4gLQMJEWwiAgMoEiglJB0XBgcEBgcFFBEFCCJrPkEfKhEIAUJrGjsDAR0ODjucl1wlHxMfBxsmnQ8uVQ0CAQgxGVMcHQMKGQAAAwAy//wDjgKEAFgAcgCDAAABFgcGBw4BBwYnJicOBicuATc2Nz4BMx4BBw4BBwYHBjc2Nz4CNz4JNzYWFxYGBwYHDgQUHgIXFjY3PgI3PgYzNiUWBgcOAycjBgcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOAQ8BPgQDhQkcPScMOCsoGxIBAQQNDBUTGgwrGRMsHA0XEhMYCgUXDSoCAioaEwggHQQBBAIEAwUDBQQGAg4bBQMGCzcGAQQCAwECAwcFEyQNAyUgBAEHAggGCgwHFf48NQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKERMiGiIBjBM8h2AdNQQDFhAUAQUNCg4GBQQKVkCdORgSARwXDCodX0BAIxU7GFRHCAEIAwcEBgQFBAMBBggLDhYbgCEFEgsPCwwIBwQBAjcgB2NSCAEOBQsFBwQCzSaeQx4rEAkBh0A7AwEdDg5N6II5HxMfB+4vVA0DAQcwGlIdHQEBBgsXAAAAAwAy//0CyAKFACAAOgBKAAABFgYmIycmBg8BDgEPAQ4BJy4BJzUmEjc2Fx4BHwE+ARYFDgMjJwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPATI+AgLFAhcZBh4XKQgJExsEAwQXGBAQAQFKCxMbDRABARBCN/7pGUI6NA8QKgUENxMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwF9FRcBAwEgEBElbSMkHx8CAhkLCykBABorAgIRCAgXExExHioRCAGHQDwEAR0ODk3ngzgfEx8HGyadEC9VDAMBCDEZUx0cAgoaAAAAAwAy//8C5wKFADsAVQBnAAABHgEHDgEnJiMGBwYHDgYjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMUDgIxFAcWJRYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE2Mj4DAskQDgIDICMJCiEQMwsBAwEEBgkOCQMKEwMEKh0RGhcHDgEKBxsKCwMHFQEDDA0VCwcKBQEDAgMMFf73NQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDg8dFRsaAg8FDQwVIQMBUzGXUQYYCxIJCwQCEREbvlQ0QwQDCCAQDAoBAQE3AgYSCQkFAwgKDAoMBwgBHgJZJ51DHisQCQGHQDsDAR0ODk3ngzkfEx4I7i9UDQICBzEZUh0dAQMIDBUAAAADADL/QwL/AoUAVgBsAH4AAAEWBw4BDwEGBw4IJyYnJicmNhcWFxY+Ajc+ATcwJgcGBw4CJyIuAycmNjc2Nz4EFxYHBgcOAwcGFxY3PgE3PgI3PgMWBQYjBgcGJy4BNSc+Ajc2Nz4BFxYGBzYmJyYnJgcOAQ8BMj4EAtolGAYMBANDEwENBxIOGBcgIhI7EQEBCywdCBAOFBQLBAkXAwEBBQ0FDyMPAggUERAEBhIaKxIGCA8MEgcYDQINBhISEAIXDQUIFkcVCCESBwECCQkP/tlOmioFBDcTFAEGSTYZDxgocCs1DXMpAR8GCTUWDCALCg4PHRUbGgGjEzAMIQoLsj4ELBcvHScYEwUCCiYDAh4vCgMKBgERDggSPg4BAQgMBQwOAQEGChYPHGs/aRcICQ4EBAYLMAoXCyQnJAlIFQcDBms0ElUrCAECBwMBRGGHQDsDAR0ODk3ngzgfEx8HGyadEC9VDQIBCDEZUxwdAQMIDBUAAAAAAwAy//oC/wKEADUATwBfAAABFgcGBw4EBwYnJgciFSIOAwcGJicmNzY3PgEXHgEHBgcOAhY3Mj4DNz4CNzYFDgMnIwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPAT4DAt0hFE0JAgMCBgwJJhMDDQEBCQgNEAkXLAsJAgNFFB4YHQoNLw8DCQ8GDwIEDw8UCQkqHggg/u8ZQjo0DxAqBQQ3ExQBBkk2GQ8YKHArNQ1zKQEfBgk1FgwgCwoWGCknAZ8MK6I8DSofHxICBi8HDQEKBgkGAQEXExImSqYwJQECJhVbKwkdPSgBAQgPHxUUaEcNNEkeKxEIAYdAOwMBHQ4OTeeDOR8SHwgbJ50PL1QNAgIHMRlTHB0BAgoZAAAAAAQAMv/8AmUCggAiAC0ASABbAAABHgQOAjEwDgEHBgcUFhQOAiMiJyY2Nz4BPwE+Ax4BBw4CJy4BNicWBgcOAycjBgcGJy4BNSc+Azc2Nz4BBzYmJyYnJgcOAQ8BNjI+BAIoBwoGAwEBAQIWHQgcAQEEBw0KHAkIDxEKHQoKAQcaKRwKBwQREwoOCg5oNQ02GUI6NA8QKgUENxMUAQUpOSYRDxgocCApAR8GCTUWDCALCgwNGRAYFBgBjwEGBggGCAQFNkwaXzMDEwcNBQUXEng1IFAYGQMLDXAKHQ8JDQMDBR0dcSaeQx4rEAkBh0A7AwEdDg47nJdcJh8THwfuL1QNAwEHMRlSHR0BAgUIDBMAAwAy//4DZQKGAEkAYwB2AAABHgEHDgEnMC4CKgEOAQcGBwYHDgEHFxYXFhcWFxYHDgMHIwYnJicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFFgYHDgMnIwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgMPATI+AwM6GBIMCyMICwcOCg4LDAUWEQICAgYCEw4LCAUEAQIEAQQEAgEBEygEESMMFQgMAQMaGQcTBQUVECcXCA4BCAwbCRcOERkYTisX/pQ1DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FggSEQ4EBBETIhoiAm8KIBIPAgUEAgMDBwQXKwcEBBIFAwEFBAYDBQoLBQkFBAEXAwECbSNMJz8BEQ4CBg8tIltEaQQDBSQOFwMCAyEpJiQmBQINJp1DHyoRCAGHQDsDAR0ODk3ngzgfEx8H7S5VDQIBCDEQLiomCwwBBgwXAAAAAwAy//4C5gKDAEMAXgBuAAABBgcGHwEWBicuATUmNj8BNjc0Njc2LgEjIgcGBw4BDwEOAScmJzQ+ATc2NzY3PgI3NhYVFgcGBxQyMT4BFx4BHwEWARYGBw4DIycOAQcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOAQ8BMj4CAtsfBwkGAwITGBgTAQwGBgUCDwIBBAYCExgYFgUgAgkDGRIhAwEGAQUpEVEJCxQNEyIBFxEuARIxEwsSBAMT/tU1DTYZQjo0DxAVGAIENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKFhgpJwE0aCMvLCUOGwIDJCYVRxoZFgYBOAgHCAMUFSkKgRc8DxADBCUJFCUKLYo4yRgXGAIFFBAYNCV1ARMTBAIOBQYgARAmnUQeKhEIAUNqGjwDAh0ODkzogzgfEx8H7i9VDAMBCDEZUx0cAgoaAAAAAAQAMv86AmYCgwAmAC4ARQBVAAABFgcGBw4BBw4BDwEGBw4BJyYnJjc2NzYXFjY/ATY3PgE3PgE3PgIeAQ4BLgE2BwYjBgcGJy4BNSc+Azc2Nz4BFxYGJw4BDwEyPgI3NiYnJicmAjIRAwELAT0LCRkJCRAkHE4jKgMCCAwbEx4SGwgIDxMERgEEIwgIHxgcCw0dHAsNdk6aKgUENxMUAQUpOSYRDxgocCs1DcQMIAsKFhgpJxQpAR8GCTUBjAoXBycFwCUdThgYLCYdDhEUIBEPGQMCEggLCgsSQg/eAw5fDQ0FcgocHg4KHR2XYYdAOwMBHQ4OO5yXXCUgEh8HGyadWxlTHB0DChkVLlUNAgEIAAAAAAMAMv/5AvcCggBHAGEAcwAAJRYHBicmJyYnBgcUDgQjIi4BJyY2Nz4DPwE+BBceAw4DMQ4CBzY3NhcWBwYHFhceAx8BHgEXHgEVARYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE2Mj4DAvUCGh0dGx4RORMFAwIHCRELBAsWAwUpHgseGRYGBwEDDQ4XDAgMBQMBAgMCASQxDlIIKA0QHhBTDAgFDg0KBAMHLgQHCf7GNQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDg8dFRsaNBkQEhISJxZkRSQFHwoVCAcCExAdvVMgTD81DxACBhIICAYCCQoMCgwHCAFTdig+BRkiKB0POhYPChYRDgQECCYDBw0EAjAmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BBAcMFQADADL//AKxAoIAKABCAFQAAAEeAxQOAjEOBAcGBw4FIyIuAScmNjc+AT8BPgQHFgYHDgMnIwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATYyPgMClggLBQICAwIBDxcZGwg0CgEDAgYJEQsECxUDBSkdEjIQEAEDDA4WzzUNNhlCOjQPECoFBDcTFAEGSTYZDxgocCApAR8GCTUWDCALCg4PHRUbGgJ0AwkJDQoMBwcBIzc9RBmWUQUfChUIBwITEBy9UzN+JyYCBhIICRMmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BBAcMFQAAAAADADL//AMOAoIANgBQAGEAAAEeAhUGBw4BBw4DDwEWFx4CFxQOAScmBwYHBicmNDc+AT8BLgEOASMiLgI3PgE/AT4BJRYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE+BALmDBIJAiACBAIkPCMaBAU+HhIWEAEOFA1gIy4dGg0ICwlvMzIOIBYXAwgPFg0BAQ4HBh6f/uo1DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgwgCwoREyIaIgGkAQ0UCh4fAgcCJEMtIwgJAgUDCBUPEBcJAg0CAgcHDwokEw6DOjoBAQEBAgcQCw8UAgMGAcAmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BAQYLFwAAAAADADL/+AMiAogANABPAF8AAAEeAgcOAQ8BFhcWBgcGLgEvAQYHBicuAT4BPwE+Az8BJicmNTQ2NzYeAh8BPgI3NiUWBgcOAyMnDgEHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATI+AgMBCRAIDws8GBhICAgFEAsVDQVKBEkzJAoKAgQDAwghIyEKCiERGRETCRIPBAYvDSglBxj+zTUNNhlCOjQPEBUYAgQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgwgCwoWGCknAaEDEiATEEMZGn4RDCUMCQQJB4cDXEIOBBASEQUFDSkpJgwMQx0pDg0ZAgIJFggKVw0sKgkgxCadRB4qEQgBQ2oaPAMCHQ4NTeiDOB8THwfuL1UMAwEIMRpSHRwCChoAAAMAMv/+AvwCgwAvAEkAXQAAAR4BBw4BBw4DBw4BLgE3Njc2Nz4DOwEeAQ8BDgIHBhcWNzY3Njc+ATc+ASUWBgcOAy8BBgcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOBQ8BPgMC6wwFBQUqFA8XIycVFi8mFgIHPwUJBQ0KCQMCExEBAQEKGAweAwENAQIeIAxJAgko/t01DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgYMDQwKCAICFhgpJwGfBhUOFHEpHSo2Kw4OBhIxI1u1DwoHCAQCARMKCQsYNiFUPx8GAQEWQBi8BRUNwCaeQx4qEQkBAYhAOwMBHQ4OTeiCOR8THwfuL1QNAwEHMAwfHiAbFQcGAQIKGQAAAAQAMv//As4ChQAuAEQAXwBwAAABFgcOAQcUDgUnLgInJiMHBgcGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHBgcOAQ8BFgYWNzI+AjcDFgYHDgMjJw4BBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwEyPgMCyAUEBjUkAgcHDA0RCQMJFQQCAQIGIBgWAQInHV4LFhIfBgwORwgDHB8IBwgFBnAcFwQDCQsODhoeAwIBAgoLBQ4LCQOYNQ02GUI6NA8QFRgCBDcTFAEGSTYZDxgocCApAR8GCTUWDCALChETIhoiAV4mLjuOJgECBwUGAwICAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsKBB0QBQgKCw/2L4MVDQkCAhgnZyAgARARAQoODQUB9SadRB4qEQgBQ2oaPAMBHg4NTeiDOB8THwfuL1UMAwEIMRpSHRwBBgwXAAAAAAMAMv/9AtACiABEAF4AbgAAARYHDgIHDgEeARcUBgcGJyY3PgM/ATY3NiYPAQ4BBw4BFxYHDgEHIi4CLwEuATUnJjY3PgEeAR8CPgUWBw4DJyMGBwYnLgE1Jz4CNzY3PgEXFgYHNiYnJicmBw4BDwE+AwKaNQsBDxUIBgQBAwERESkMCQsBCAoJBAMGCAQKBwcVGhUTJAQCBAMSDAUKBwYBAQgIAQFQFggQDAkDAg8BBAwMExIX5BlCOjQPECoFBDcTFAEGSTYZDxgocCs1DXMpAR8GCTUWDCALChYYKScBnhg8BS5FGhYyISMCDhoCAykfQgojJSILCxIdDgwBAQcbIR6OIBcSCxABAgMDAQEHGgoKOvcVBwYBAwICDgIDCggJBAE9HisRCAGHQDsDAR0ODk3ngzkfEh8IGyedDy9UDQICBzEZUxwdAQIKGQAAAAMAMv/zA3kCgwCCAJwArAAAARYHFA4CBw4BHgEVFA4DBwYnJjc+Bz8BNjc2Jg8BDgEHDgEXFgcGBwYHIxUGBzAHIiMOAScmJyY3PgM/ATY3NiYPAQ4CBw4BFxYHDgEHIi4CLwEuASc1NDY3PgEeAR8CPgUWFxYXPgM/AT4EBQ4DIycGBwYnLgE1Jz4CNzY3PgEXFgYHNiYnJicmBw4BDwEyPgIDRDQNCgwRBQYFAQICBQcMBygKCAsBAwUFBQYEBAEBBggECQcHFBoUEiUDAgQDBgEBAQQFAQEBBAkEIAkICwIICgkDBAUJBAoGBw4WEA4TJAMCBQMRDAUJBwUBAgcHAVAWBw8MCQMCDgEECwwTERYKKAEDCQgGAgICBxcVIP50GUI6NA8QKgUENxMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwGSFEEEHyU0FRUyISMCBAsLCAYBAikeQgYQEhUUFBANAwQSHQ4MAQEGGyEdjSAYEQkHAQEBAwIBAgEBAyQfQgkjJCILCxIdDgwBAQQRFhYejSAYEQsPAQEEAwEBBxoKCjr1FAcGAgMBAg4BBAkICQQCBRMtBgoIBwECAgUNBgQ4HioRCAGHQDwDAh0ODkzogzgfEx8HGyadEC9VDAMBCDEZUx0cAgoaAAAABAAy/ygDFgKDAC8ARABqAHoAAAEUDgMHDgInJicGBw4FIyIuAScmNjc+Az8BPgQXFhc2NzYeAQc2JgcOAQ8BDgIHBh8BHgE/AT4BJQYHFhcWFxYXFgYPAQYmLwEmJwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPATI+AgMVAQoTKRwEETcfHhUdBQECAgYIEAsECxUEBSUbCxsXFAYGAQMMDRYMFwMYFhcoG0sDDQ8JEgQFGyQKAgEBAQQUCAgkN/7mNl0RIhMmCgUFBAQFEiYODjw4LQQENRMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwEsBxZEPU0dBQ4UBAQQZzMFHwoVCAcCEhAcvFMgSz81EA8CBhIICQYHFwsBARMsKRwRBwQQBgYhWDMWCgkFEAUFBR2UbUMWMD4jIAkLDxcHBxACCQkqwYw5PAMCHQ4OTeeDOR8THwcbJp4PL1QNAwEHMRlTHB0DChkAAwAy//4DZgKIAEkAcQCFAAABHgEHDgEnMC4CIg4CBwYHBgcOAQcXFhcWFxYXFgcOAw8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgUWBgcGBxYXFhcWFxYGDwEOAS4BLwEmJwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgUPATI+AgM6GRMMCyIJCwcOCg4LDAUVDwMCAQYCEw4LCQUDAgIDAgQDAgEBEycEESELEgcLAxkaBxMEAxMPIxcIDgIICxsJFw0QFxdOKxf+lDUNNjZdESITJgoFBQQEBQoYFRIGBTw4LQQENRMUAQZJNhkPGChwICkBHwYJNRYGDQwMCggCAhYYKScCdwggEhADBQQBAwEDBwUXKwcFBBIFAgEFAwYDBQoLBQkFBAEBFwIBAW0kTCdAAREPAgUPLSJcRGoDAwUkDhgEAQIhKiYlKQQCEiedQ0MWMD4jIAkMDhgHBwoGBQgEBCnCjTg8AwEdDg5N6IM4IBIfCO8vVQ0CAgcxCx8fIBsVBgYDChkAAAAABAAy/zQCpAKBACkAMQBYAGgAAAEWBwYHDgEHDgMPAQYHDgEnJicmNzY3NhcWNj8BNjc+ATc+ATc+ARc2HgEOAS4BNgEmJwYHBicuATUnPgM3Njc+ARcWBgcGBxYXFhcWFxYGDwEGJicDDgEPATI+Ajc2JicmJyYCcREEAQsBPQsGDg0MAwQQJBxOIyoDAggNGhMfERsICA8TBEYBBCMICR4LDRwLDR0cCw3+2Dw4LQQENRMUAQUpOSYRDxgocCs1DTY2XBAiEyYKBQUEBAUSJg4oDCALChYYKScUKQEfBgk1AYYKFwcnBcAlEy0mIgoJLCYdDhEUIBEPGQMCEggLCgsSQg/eAw5fDQ0FCHoKHB4OCh0d/h8qwYw5PAQBHQ4OO5yXXCYfEx8HGyaeQ0MWMD4jIAkLDxcHBxACCQH2GlIdHQMKGRUvVA0DAQcAAAAAAgAt//8CmwKBADgAbgAAAR4BBw4BJyYjBgcGBw4GIyIuAScmNjc2NyYnJjc2NzYXNz4EFx4DFA4CMRQHFicGIi4CMSYnBgcGBxQOByMiLgEnJjY3NjcHDgIjIiY3PgM3MzYWFxYXFgcGAn0PDgEDICMJCiERMgsBAwIDBgkOCQMKFAIEKR0SGhcHGhMMIAwMFgEDDAwVDAcKBQEDAgMMFcUGDxENCh0oSxUvDAMBAwMGBwkNBwQLFgMFKR4fMkQECx0LEhIJAw0NDAMEPe4pGwkGBgsCDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMLIRQJAwE3AgYSCQkFAwgKDAoMBwgBHgIPAQICAQQBsD+HYAQVBxIGDQUHAgITERy+U1d8BQECAiYWCAwHBAEIAwUEFA4PHwAAAAIALf/+AugCggBLAH0AAAEeAQcOASciLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOBTEHBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgcGLgExJicGBwYHFA4HIyIuAScmNjc2NwcOAiciJjc+AT8BNhYXFhcWBwYCvRgTDAwiCAELBw0LDgsMBBYRAgICBgIUDQsJBQMBAwQBAwIDAgEBEygEESIMFAgMAxoZCBMGBBUPJhcIDgEICxsJFw4RGBhOKxf3CB4XHShLFS8MAwEDAwYHCQ0HBAsWAwUpHh8yRAQLHQsSEgkFGAoJPe4pGwkGBgsCcQkgEhACBgMCAwMHBRcqCAQEEgUDAQUDBgQECgsEBgUEAwIBFgMCbSRLJz8CEA8CBg8tIVxEaQQDBSQOFwQBAyIpJiQnBQJYAgMDBAGwP4dgBBUHEgcMBQcCAhMQHb5TV3wFAQIDASYVDREBAggDBQQUDg8fAAAAAAIALf//AqwCgABHAHkAAAEGBwYfARYGJy4BNSY2PwE2NzQ+Ai4BIyIHBgcOAQ8BDgEnJic0PgE3Njc2Nz4ENzYWFRYHBgcUMDM+ARceAx8BFicGLgExJiMGBwYHFA4HIyIuAScmNjc2NwcOAiMuATc+AT8BNhYXFhcWBwYCoR8HCQYDAhMYGRIBDAYGBQIIBwMFBQITGBgWBSACCQMZEiEDAQYBBSkRUQYFDAkNCBMiARcRLgESMRMHDAgGAgET+QgeFx0oSxUvDAMBAwMGBwkNBwQLFgMFKR4fMkQECx0LEhIJBRgKCT3uKRsJBgYLATdoIy8sJQ4bAgMkJhVHGhkWBgIcHQ0IAxQVKQqBFzwPEAMEJQkUJQotijjJDw4WCgsBBRQQGDQldQESFAQBBwcHAwIgxAECBASwPodhAxUIEQcMBgYCAhMQHb1UV3wFAQIDASYVDRACAggDBgMUDg8fAAAAAgAt//YCswKDAEkAfQAAJRYHMCMGJyYnJicGBw4FIyIuAScmNjc+Az8BPgQXHgMUDgIxFA4BBzY3NhcWBwYHFhceAx8BHgEXHgEXAwYuAzEmJwYHBgcUDgcjIi4BJyY2NzY3ByIOASMiJjc+AT8BNhYXFhcWBwYCsAIZAR0cGx8RORMEAQMCBgkRDAMMFgMFKR8LHRoWBgYBBAwOFw0ICwYCAwIDJDEOUgcoDhAeEFMLCAYODAsDAwcvAwgIAf4GDxENCh0oSxUvDAMBAwMGBwkNBwQLFgMFKR0gMkQECx0LEhIJBRgKCT3uKRsJBgYLMRkQEhISJxdjRSQFHwoVCAcCExAdvVQfTD81EA8CBhIICAYCCQoMCgwHCAFTdig+BRojKBwQOhYPChYRDgQECCYDBw0EAe4BAQECAQQBsD6HYQMVCBEHDQUGAgISERy+VFd8BgIDJhYNEAICCAQFBBQNEB8AAAAAAgAt//8CbgKBACwAYAAAAR4DDgMxFA4BBwYHDgYjIi4BJyY+ATc+AT8BND4GMgcGLgExJiMGBwYHFA4HIyIuAScmNjc2NwcOAiMuATc+AzM3NhYXFhcWBwYCUwcMBQMBAgIDJC8NMgkBAgIDBgoOCgQLFgMDDx8TEjAPEAEEBAcHCgsOmggeFx0oSxUvDAMBAwMGBwkNBwQLFgMFKR0gMkQECx0LEhIJAw0NDAMEPe4pGwkGBgsCdgMJCQwLDAcHAVV4KJdQBhgMEgkKBAISEBNjgTcyfycmAQIHBgkGBgNZAQMDBK8/h2AEFQgRBwwFBwICExAdvVRXfAUBAgMBJhUIDQcEAQgDBgMUDg8fAAADAC3//wKTAoAAKgBDAHUAAAEWBw4BBw4CJy4CJyYjBwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4CJy4BByIOAg8BDgEPARQGFjcyNjcDBi4BMSYjBgcGBxQOByMiLgEnJjY3NjcHDgIjLgE3PgE/ATYWFxYXFgcGAo0GBQY0JAMKIxMDChQEAgECBiEYFgECJx1eDBYRHwYND0cJAxsfCQcIBQZxFBgFAgIKCgQJBwYBAhkfAgIBCgoJFwdiCB4XHShLFS8MAwEDAwYHCQ0HBAsWAwUpHh8yRAQLHQsSEgkFGAoJPe4pGwkGBgsBXiYuO44mBAoNAwECEAwFBCIBAR8ZI7lN7hwMBwsKFCSrCwMdEAUICQwP9SBePQsNCQIGCAcCAydnICABEBEBGAsBsQECBASwPodhAxUIEQcMBgYCAhMQHb1UV3wFAQIDASYVDRACAggDBgMUDg8fAAAAAAIAMP//Au8CgQA7AGsAAAEeAQcOAScmIwYHBgcOBiMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc+BBceAxQOAjEUBxYnHgEHDgIHBgcGBwYmJyYnJjY3PgEXHgEHDgEHDgQeARceAT4CNz4BNz4BAtAQDgEDICQICiERMgsBAwIEBQkOCQMLEwIEKR0SGhcHDgEJBxwKCgQGFgEDCw0VCwgJBQIDAgMNFegWDQoIKS8TMjYpPyM8ERUBATIeGSchHw8PCjoGAgUMCgcBDg0DCyAfJxATRwoTHwIPBQ0MFSEDAVMxl1EGGAsSCQsEAhERG75UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CagUzFxWDjTB+LiMFAxobIyw81lxOQAEBPiAYphIEDisnMiYeBQECCRc+LjX0FyscAAAAAgAw//0C2wJ/ADoAaQAAAR4BBwYHBicuBDUmBw4BFxYXFgYHBiYnJjc+ARceAQYPAQ4BHwEeATM3PgE/ATYnJicmJyY3PgEnHgEHBgIHBgcGBwYmJyYnJjY3PgEXMhYHDgEHDgQeARceAT4CNz4BNz4BAqkYGQQEGAsKBQkGBAQLGhIFFUUEAyAlJmUjOBMGMhoRDgMEDgUBAgIEFgkJBgwDAyAMBCcUBxInFVqkFg0KA1YaMjYpPyM8ERUBATIeGSchHw8PCjoGAgUMCgcBDg0DCyAfJxATRwoTHwGXCyoUFAYDAgIFCAYJARQIBS8eXCcgRBEUARcjRBkmCAUVEAUVBxEEBAoHAQEEAgISNRQ1Ghk9MRsQ0gUzFwr+9UB/LSMFAxkcIiw811tOQAE+IRemEgQPKicyJh8EAQIIGD4uNfMYKxsAAAIAMP/+A2QCgABLAH8AAAEeAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWFxYXFgcOAwcjBicmJwcOAxUOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiUeAQcOAgcGBwYHBiYnJicmNjc+ARcyFgcOAQcOBB4BFx4BPgI3PgU3PgEDORgSDAsjCAsHDgoOCwwFFhECAgIDBAIUDgsIBQQBAgQBBAQCAQETKAQRIwwVCA0CERMSBRMFBRUQJxcIDgEIDBsJFw4RGRhOKxf+vRYNCggpLxIzNik/IzwRFQEBMh4ZJyEfDw8KOgYCBQwKBwEODQQKIB8nEAkVERMPDwQTHwJvCiASDwIFBAIDAwcEFysHBAMJCwQDAQUEBgMFCgsFCQUEARcDAQJtI0wnPwENDwMEBA8tIltEaQQDBSQOFwMCAyEpJiQmBQIDBTMXFoOMMH8tIwUDGRwiLDzXW05AAT4hF6YSBA8qJzImHwQBAggYPi4ZQjxAMysLKxsAAgAx//ACogKCADwAewAAAR4BBw4BJyInBgcGBxQOBCMiLgEnJj4CNzY3JicmNDc+ARczFjM3PgQXHgMUDgIVBgcWJwYHDgMHDgEHBicuAScuAT4BPwE+BDU+AT8BPgEfARYHFA4CBw4FFQc+Ajc+AxceAQcCgxAOAQMfIwoJIBAwCgMCBggPCwMKFAMCCRAaDREZFwcOCQccCgoEBhUBAwsNFQsHCgUCAwICAQwVygMiARoWJxMiKR07JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYDBgUFBAMBD19bAQQLEBQMDgwBAhIEDQ0UIgMBVDGYUQUfCxUICAESEA1DVGEqM0UDAwgfEQwKAQE3AgYSCQoGAggKDAoMBwcBAR4CKSBRAkA0VyVEPiJFFgsgOhQzLSgMCxJITkk0AwUPBAURDAMDDjICHCA6HxMyMzUuJAoLFNjWBAcNCwEEBRsLAAACADH/7gJ2AoAAOgBzAAABHgEHBgcGJy4EJyYHDgEXFhcWBgcGJicmNz4BFx4BBg8BDgEfAR4BNzM+AT8BNicmJyYnJjc+AScGBw4EBw4BBwYnLgEnLgE+AT8BPgI1PgE/AT4BHwEWBxQOAgcOAQ8BPgI3PgIXHgEHAkQYGQQEGAsKBggGBAQBChoSBRVFBAMgJSZlIzgSBzIaEQ0CBA4FAQICBBYJCQYMAwMgDAQnFAgSKBVabgMiAhESGR4PIikdOyYUCgcCAQECAQEBFRYBBAMCCiMMDCMKBgcLBgcNBAMPX1sBBhAaDw4MAQGXCyoUFAYDAwEGBwYJARQIBS8eXCcgRBEUARcjRBkmCAUVEAUVBxEEBAkIAQEFAQISNRQ1Gho8MRsQlCBRBCkrOkEfQz8iRRYLIDsTNC0nDAsdjH0CBQ8EBREMAgMPMgIbITofKIoxMBPZ1gMLDwkHBRsKAAAAAAIAMf/zAwwChQBHAIQAAAEeAQcOAScwLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnIicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFBgcOAwcOAgcGJy4BJy4BPgE/AT4ENT4BPwE+AR8BFgcUDgIHDgMPAT4CNz4CFx4BBwLhGBMMCyMICwcOCg4LDAUVEAMCAgYCFA4LCAYDAQMEAwYCAhMnBBEiDBMHCwEDGRoHEwUDFQ4lFwgOAggLGwoXDRAYGE4rF/7mAyIBGhYnExgkGBQ7JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYECQYFAgEPX1sBBhAaDw4MAQJ0CR8TDwMFBAEDAQEDBwUXKwcEBBIGAgEFAwYEBAoLCAwDAhYCAm0kTCc/AREPAgYPLCJcRGkEAwUkDhcEAQIhKiYlJwQCPCBRAUE0ViYvPiAXRRYLIToTNC0nDAsSSE5JNAMGDgUEEgsCAw8yAhshOh8ZTEdAFBMU2NYDCw8JBwUbCgAAAAACADH/7gJcAoAAKABoAAABHgMUDgIxMA4BBwYHFA4EIyIuAScmNjc+Az8BPgQHBgcOAwcOAQcGJy4BJy4BPgE/AT4ENT4BPwE+AR8BFgcUDgIHDgUVBz4DNz4DFx4BBwJACAsGAgMCAyQxDjMLAwIHCRALBAsWAgUoHgsdGRYGBgEEDA0XgQMiARoWJxMiKR07JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYDBgUFBAMBC0JCOQIECxAUDA4MAQJ1AgkKDAoMBwhVeCiVUQUfCxUHBwISERy9UyBLPzUQDwIGEggIQCBRAUE0ViZDPyJFFgsgOxM0LScMCxJITkk0AwUPBAURDAIDDzICGyE6HxMyMzUuJAoKD5CahwUIDAsBBAUbCgAAAAACACj/+wNzAoIAOwCgAAABHgEHDgEnIicGBwYHDgYjIi4BJyY2NzY3JicmNjc+AR8BMhc3ND4DFx4DDgMxFAcWJxYGBwYHDgMHBicmJw4GJy4BNzY3PgEzHgEHDgEHDgIVBjc2Nz4BNzQ+Bzc2FhceAQ4BBwYHDgUeAhcWPgE3PgY3PgY3OgEWA1UQDgIDHyQICyEQMwsBAgIEBgkNCQQKEwIEKR0SGhgHDQEJBxwKCgQGFgQLDRULBwoFAgECAgMNFc8FCRJILgYUIDEcMSIWAgIEDxAZGB8ONiEWMyIOHRUYHgwFGxAFER0CNB8XDj8JBgMGAwcFBgcEESEGAwEGBwdABwEFAgMBAQMFCQURIxYJAgwOEREOCwIBCAMJBwwPCQMJEwIQBQ0MFSEDAVMxl1EGGAsSCgoEARIQHL5UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CSBYxMc6SEicpHAMGIxcfAgcUDxYJBwYPhGLuViUbASsjEkAsETWBK2I1IVk60BMBDgQNBgsGCAUCCQwRCBIaFhbCNAcbERcQEwwLBgECMTUdCSkxOTcwIQYCFQcSBwsFAQsAAgAo//sD6QKCAEcAqgAAAR4BBw4BJyIuAyIOAQcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnJicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFFgYHBgcOAwcGJyYnDgYnLgE3Njc+ATMeAQcOAQcOAhUGNzY3PgE3ND4HNzYWFx4BDgIHBgcOBR4CFxY+ATc+Ajc+Bzc6ARYDvxgSDAsjCAELBg4KDgwMBBYRAwIBBwIUDgsIBQMBAwQDBgICFCcEESQMFAkMBBkZCBMGBBYQJxgHDgEICxsKFw0RGRhPKxf+1QUJEkguBhQgMRwxIhYCAgQPEBkYHw42IRYzIg4dFRgeDAUbEAURHQI0HxcOPwkGAwYDBwUGBwQRIQYCAQEGBgZABwEFAgMBAQMFCQURIxYJAywlBQEGAwcGCgoNCAMJEwJvCSASDwIFBAEDAQMHBRYrBwUDEgYCAgQEBgQECgsIDAIDFgMBAm0kSyc/AREPAwYPLSFcQ2kEAwYkDhcDAQMiKSYkJgUDHRYxMc6SEicpHAMGIxcfAgcUDxYJBwYPhGLuViUbASsjEkAsETWBK2I1IVk60BMBDgQNBgsGCAUCCQwRBw8OGBMRwjQHGxEXEBMMCwYBAjE1HQqYfAwDEAgPCAoGBQELAAAAAAMAL/8vAyoCgwAsAEMAggAAATYWFRQOAwcOAicmJwYHFA4EIyIuAScmNjc+AT8BPgQXFhc2FzYmBw4DDwEOAgcGHwEeAT8BPgElFhceAQYHBiYnLgEvAQ4CBwYnLgE+AT8BPgU/ASYnJjc2NzYeAR8BPgE3PgEXHgIGBw4FBwLQJTQCCxQqHQQROB4fFB4HAwIGCRALBAsVAwUoHRExDxABAwwNFwwXAhclAw0PBgsJBwIBHCYLAgEBAQQTCQgkOf59QwcFAwsPFRsJCSQODgIdJQ8+LhAMBQkFBQgZHR8cFwYHHRAYAQMpDhkMBCkPWAsPKQkHDAkKDwcWGhwaFQYBjAExLgcXQz1NHAQPEwUEEGYzBR4LFQcHAhIRHLtTMn4mJgIGEggIBggWC2gdEQcCCAkHAwIhWDIWCgkFEAYFBR2TU80cESAjBwYLDQ1qLi8CLkEachcIHB0aCAkNKiwwKiIKCmovQRUmBwIYGg2HE34NEQcIBA4XIhMIHyMnJBwJAAACAC///QJyAo4AOgBlAAABHgEHDgEnIicGBwYHDgUjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMUDgIxFAcWJxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPggCVBANAQMgIwkKIREyCwEDAgcIDwsDChQCBCkeERoXBw4BCgcbCgsDBhYBAwwNFAwHCgUBAwIDDBXVKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJg0gCgkMGxMXEBMQEA8CEAUNDBUhAwFTMZdRBR8KFQgIARIQHL5UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CYwc/C/g0bmoCGwYTBhUWFAYGKWIdHSGaKiQ9DBY7FV8mJRMuIiYbGxEOBQAAAAADAC7//AHhAo0AJAAsAFMAAAEeBA4CMTAOAQcGFRwCDgIjIicmNjc+Az8BPgMeAQ4BLgE2JxYHBgcOAhUOAScuAT8BPgE/AS4BJy4BNzYXHgEfAT4GAaAHCgYDAQEBAhYeCB0EBw0KHAkHDxEHEQ8NBAQBBxsrHAoNHhwKDiUpFASFGyQVCDgTCwUEBAklDQ4DPBYSCBAoKA4kCwsNIRUaEhUUAY8CBgYHBwcFBTZMGV8zAxQGDgQFGBJ3NRQwJyIKCQQKDnMLHB4NCxwehgY/C/41cGoCGwgRCigQDylkHh0hmCkkPA0XOhReJSUYPigvGxgKAAAAAAIAL///AuICkABJAHcAAAEeAQcOAScwLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOBAcOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiEWBwYHDgIVDgEnLgE+AT8BPgE/AS4BJy4BNzYXHgMfAT4JArcYEgwLIwgLBw4KDgsMBRYRAwIBBwIUDgsIBQMBAwQDBgICFCcEESQJEQsHCAEDEBMSBhIFBBYQJxcIDgEICxsKFw0SGRdPKxf+1ikXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYIExAOAwQLGBIVDxIODw4OAm8KIBIPAgUEAgMDBwQXKwcEBBIFAwEFBAYDBQoLCAwCAhcDAQJtHTgyIigFDQ8DBAQPLSJbRGkEAwUkDhcDAgMhKSYkJgUCBz8L+DNvagIbBhMGFhUUBgYpYh0dIZspJD0MFjsNMTMwDw8RKh8jGhsTEAkFAAAAAAIAL//+AmcCkABFAG4AAAEGBwYfARYGJy4BJzQ2PwE2Nz4DLgEjIgcGBw4CDwEOAScmJyY+ATc2NzY3PgM3NhYXFAcGBxQyMT4BFx4BHwEWAxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPgYCXB8GCQUEARMYGBIBCwYGBgEBBwgCBAUCExkYFQQSEQEIBBgTIQIBAgUBBSkRUQcIDg8JFCEBFxAvARMwEwsSBAMU7ikXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYNIAoJDiQWHBQVFAE0aCMvLCUOGwIDJCYVRxoZFgYCHB0NCAMUFSkGQ0oPPA8QAwQlCRQlCi2KOMkTERgLAgUUEBg0JXUBExMEAg4FBiABHwg/Cvkzb2kCGwYSBxUVFAYHKGIdHSGbKSU9DBU7FGAlJhc+Jy0bFwgAAgAv//0CMgKOACsAWQAAAR4DFA4CMQ4CBwYHDgUjIi4BJyY+ATc+BT8BND4DBxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAx8BPgkCFwgLBQICAwIBJDENNAoBAwIGCRELBAsVAwMQIRMJExMTDwwDBAQMDhaRKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJggTEA4DBAsYEhUPEg4PDg4CdAMICgwLCwcIAVV3KJZQBh4LFQgHAhMQE2OANxc1Ly8mHQgIAgcRCQgFBz8L+DRuagIbBhMGFRYUBgYpYh0dIZoqJD0MFjsNMTMwDw8RKh8jGhsTEAkEAAIAL//2AnUCjgBQAH4AACUWDgUxMCMGJyYnJicGBw4FIyIuAScmNjc+AT8BPgQXHgMUDgIxFA4BBzY3NhcWBwYHFhceAR8BHgIXHgUVAxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAx8BPgkCdAEDBAUFBAMBHRwbHxE5EwQBAwIGChAMAwwWAwUpHhMyEBABBAwOFw0ICwYCAwIDJDEOUgcoDhAeEFMLCAkYCAgFFBoGBAUEAgEB+ykXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYIExAOAwQLGBIVDxIODw4OMQUKBwcFBAISEhInFmRFJAUfCxUHBwITEBy+UzN/JiYDBhEJCAYCCQoMCwsIBwFTdig+BBojJx0POhYPECQKCQYRFQUDBwUFAwMBAkMHPwv4NG5qAhsGEwYVFhQGBiliHR0hmiokPQwWOw0xMzAPDxEqHyMaGxMQCQQAAwAv//0CVQKOACsAQwBuAAABFgcOAgcOAiciLgEnJicHBgcGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHDgEPAQ4BDwEWBhY3PgM3AxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPggCTwUEBBkqGAMKIhQDChQEAgECBiAYFgEBJx5eCxYSHwYMDkcIAxwfCAcIBQZwHBcEAwkLBg4EBBoeAwIBAgoKBg4LCQNgKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJg0gCgkMGxMXEBMQEA8BYCcuJFhZGgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAoMD/UvgxUMCgIBDQYGJ2cgIAEQEgEBCg0OBAH/Bz8L+DRuagIbBhMGFRYUBgYpYh0dIZoqJD0MFjsVXyYlEy4iJhsbEQ4FAAMAIv/9A28CiQBHAHEAggAAAR4BBw4BJyIuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiU2HgIHBhUHBhcUFgYHBicuAScmPwEuAgcGBwYHBicmNzY3PgQDNgciBw4BBw4CHgEzNhc2A0MYEwsLIwgBCwcNCw4LDAQVEAMBAgYCFA4LCAYDAQMEAgcBAhMoAxIgDBIHCwMZGgcTBAMUDiQYBw8CCAsbCRgMEBgXTisX/nEdJAgDAwEaGQUFAQMNHBAXAwcFAxM2LBAdCwcNGjE6FA1DCitCQkcHGRoFDBJZHQECAgEICU0vAwJ3CR8TDwMFAwICAQEDBwUXKwgEBBIFAgEFAwYEBAoLCA0CAhcCAQFtJEwnQAERDwIFDy0iXERqAwMFJA4YAwICISomJSgDAgQGEyMoEAUCwr9DBBwQBxoDAhMPHT0iBgcCAgMSCjFhAwRXPIoVS2NYQv7piQEKDos7AQMJBwYCEDMAAAACAC//PwMZAo0AVgCYAAABFgcOAQ8BBgcOCCcmJyY1JjYXFhcWPgI3PgE3MiYVBgcOAiciLgUnJjY3Njc+BBcWBwYHDgEHBhcWNz4BNz4CNzQ+AhYlDgQHDgEeAjc+Ajc+AxceAQcOAQcOAiMmJy4GNzY3Njc2NzYXFhUGBwYiLgInMC4DBgL0JRgGDQMEQhMCDAgRDxcYHyISOxIBDCwdCRANFRQKBAoWAwECBQ0FECIPAQULDA4MCgIGERorEwYIDwsTBxgNAwwNKgYWDQUIFkcVCCATBwMICg7+fAQOKik3GBYOCxgaCw4VCgoGEQsXDxQVAQM1FxIaMR0mFwIGFA4TBwUHCx06cTcrRCYYARELEQsHBQEGBAsLFAGfEzAMIQoLsj4ELBcvHScYEwUCCiYDAh4vCgMKBgERDggSPg4BAQgMBQwOAQECAwkKEgscaz9pFwgJDgQEBgswChcXWxFIFQYCBms0ElUrCAECBwMBgQEIIS1VNC9OLh8LAQEKCgwHGg8LAgIlExpFDgsMCwIRAQURFiQqOiE0Q4lcLQoPKxwmHgoHCQoNAQkFCAIBAAAAAgAw//wCsQKOAEUAggAAAQYHBh8BFgYnLgEnND4CPwE2NzQ2NzYuASMiBwYHDgEPAQ4BJyYnND4BNzY3Njc+Ajc2FhUWBwYHFDIxPgEXHgEfARYnIi4BIgYHBgczNhcWBwYHBiMHBgcGFxY2FhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAqYfBwgFAwITGBgSAQQHBwMCBgEPAgEEBgISGRgVBiACCQMZEiEDAQYBBSkRUQoKFQwUIQEXEC8BEzATCxIEAxP6BxoZHSAORxUsGQ8PBgYXFBFBHQUIMw0hGAgPDwQDEQ09KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQEBNGgjLywlDhsCAyQmDSclIgoKFgYBOAgHCAMUFSkKgRc8DxADBCUJFCUKLYo4yRgXGAIFFBAYNCV1ARMTBAIOBQYg0QEBAQJhPgEODxYVBQUGVi1EBQEDAQQIGw4CCBIEFQcLMBRKTCK+ZQUBBREKFxAEJRAEDA0QCgcXAAACADH//QLtAocAWACAAAABDgQHDgEeAhcWNzY3Jjc+BDMWFzIeAwcGBxYHDgIHBiciLgM3NjcGBw4CJyYnLgM2NzY3Njc2NzYXFgcGBw4BLgU1MCcmBRYOAi8BIgYPAQ4BDwEOAScuBT0BJhI3NhcyHgIXFT4BFgFrBA4qKjoaGBQGEhUJGBsFCRsHAQEICxYOYRQBAwkEBAQIGQEBAQMHAgkdAQYOCggBAQIbFhEXLhchEgMJFQwBCxAfQmk0Jj0cEgQEEAYLCAYEAwICAQsBWwINExIDHhgoCAkTGQMEAxYYCAsHBQIBAkgLERwIDQYDARBBOAIXAQceK1EyLkoqHgoBAh8GDQgcAgYRDAsFBgEECQ8MIAgICwsgPggfAwEGCxcQCg4hDQoJCQUFEwMKJy9PLDRAiFEoBgovHyYfCQMCAwUHCAcGAQEZoxEVBQMCAyARECZtIyQfHwIBBggKCggDAikBARorAggKCQMEFxQQAAAEAC//LAMJAn8AMABHAG0AhQAAATYWBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4FPwE+BBcWFzYXNiYHDgMPAQ4CBwYfAR4BPwE+AQEyHgIHDgYHDgYnLgM3PgQ3PgQXNiYHDgEPAQ4BBwYXFBcWFxY3Njc+AgKwJDUBAQwTKh0EETgfHhUeBgEDAQcJEAsDCxUDBSceCBMSEg8MAwMBBAsOFgwXAxckBA0QBQwIBwICHCULAgEBAQMUCAglOf6zGSskEwEBAQkNGSEzHwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcNHwkKO0IHAwEBBAcPHxgTKEEdAYkBMS4HF0M9TRwEDxMFBBBmMwUeCxUHBwISERy7Uxc0MC4mHQgIAgYSCAgGCBYLaB0RBwIICQcDAiFYMhYKCQUQBgUFHZMBihMlQCkFFjw+VExSIAEFDgsOBgMGCCw6RSMIHlZSaCkDCRgRD6wvHQoGGQkKS6cyGAoLBRAKFgcGEiaUeAADAAH//wJXAn8AKgBHAIMAAAEWFxYHDgEHDgInIi4BJyY1BwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFgM+AicuAQcOAw8BDgMPARYGFjc+AzcBHgEHDgEnJiMGBwYHFA4FIyIuAScmNjc2NyYnJjY3PgEfATIXNz4EFx4DDgMxFAcWARgGAwYFBjUkAgojFAMJFAUCAwUhGBYBAicdXgsWEh8GDA5HCQIcHwkGCWYUGAUCAgoKBAkHBgECEBkLBwEBAQEKCgYNCwoCAY0QDgICICQJCSIQMgwDAgQGCQ0JAwsTAgQpHRIaGAcNAQkHHAoKBAYWAQMLDRULBwoFAgECAgMNFQF/DxAnLTuPJgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAr+8CFdPgsMCgIBBgcHAwIZPDQsDA0BEBIBAQoNDgQBmQUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgAAAAMACP//AmgCfQAqAEIAaAAAARYXFgcOAQcOAicuAicmMQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYDPgEnLgEHIg4CDwEOAQ8BFgYWNzI2NwEWDgIvASIGDwEOAQ8BDgEnLgU9ASYSNzYXHgEfAT4BFgEfBgMGBQY1JAIKIxQDCRQFAgMFIRgWAQInHV4LFhIfBgwORwkCHB8JBglmHBcEAgoKBAkHBgECGh4CAwEBCgoJFwYBtwINExIDHhgoCAkTGQMEAxYYBwwHBQIBAkgLERwNEAEBEEE4AX4PESYuO44nAwoNAwECDw0FBCIBAR8ZI7lN7hwMBgoKFCSrCwMdEAUICv7wL4MVDQkCBggHAgMnZyAgARARARgLARcRFQUDAgMgEBElbSQkHx8CAQYJCgoIAgMoAQEaKwIBEAgIFxMQAAMABv//AtICgAAqAEQAkAAAARYXFgcOAQcOAicuAicmMQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYDPgEnLgEHDgEPAQ4DDwEWBhY3Mj4CNwEeAQcOASciLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgMVBwYnIicHDgMVDgMmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYBHQYDBgUGNSQCCiMUAwkUBQIDBSEYFgECJx1eCxYSHwYMDkcJAhwfCQYJZhwXBAIKCgcOBAQQGQsHAQEBAQoKBg0LCgIB+BgSDAsjCAELBg4KDgwMBBYRAwIBBwIUDgsIBQMBAwQCBAMDARQnBBEkDBQJDAIMDw8OBBMGBBYQJxgHDgEICxsKFw0SGBhPKxcBfg8RJi47jicDCg0DAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsLAx0QBQgK/vAvgxUNCQIBDQYGGD0zLQwNARARAQoODQUB+wkgEhACBgMCAwEBAwYFFyoIBAQSBQMBBQMGBAQKCwUJBQQBARYDAmwkSyc/AQsOBQEEAxAsIlxDaQQDBSUNGAMBAyEpJiUmBQMAAAAABAAA/zEB/AJ7ACoARgBzAH4AADciLgEnJjEHBgciJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYXFgcOAQcOAicWBhY3Mj4CPwE+AScuAQcOAw8BDgMHARYHBgcOAgcOAQ8BBgcOAScmJyY3Njc2Fx4BPgM/ATY3PgE3PgI3PgIeAQcOAicuATZ/AwkUBQIDBSEYFgECJx1eCxYSHwYMDkcJAhwfCQYJBAYDBgUGNSQCCiMnAQEKCgYNCwoCAxwXBAIKCgQJBwYBAhAZCwcBAVsRAwELAh0iCQgaCAkRJBtOJCkEAQcNGxIfBw4MCwgGAgEOEwVGAQERFwUJHhgdCgYEERIKDgsMAgIQDAUEIgEeGSO5Tu0cDAcLChQkqwsDHhEECAoMDxEmLjuOJgQKDWwBEBEBCg4NBQUvghUNCQEBBgcIAgMYPTMsDQEMChcHJwdabRwdThgYLCYdDhEUIBEPGQMCEgQCBAYIBwMCEkIP3gMGMToJDQVyChwPCg0EAwUdHQAAAAMABf//AooCfQAuAEoAfgAAARYHDgEHFA4FJy4CJyYxBwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BByIOAg8BDgMPARYGFjcyPgI3AR4BBwYHDgEHDgMPARYXHgIVFAYnJgcGBwYnJjQ3PgE/ASYiBiMiLgI3PgE/ATYyASUGBQY1JAIHBwwMEgkDCRQFAgMFIRgWAQInHV4LFhIfBgwORwkCHB8JBgkEBnAcFwQCCgoECQcGAQIQGQsHAQEBAQoKBg0LCgIBsxIWAQEgAgUCIzwkGQUFPh8RFhEbE2EjLR4aDAkMCW4zMxIoIgMIDxYMAQEOBgcenwFeJi47jiYBAgcFBgMCAgECDw0FBCIBAR8ZI7lN7hwMBgoKFCSrCgQdEAUICgsP9i+DFQ0JAgYIBwIDGD0zLQwNARARAQoODQUBMAIaEB4fAgcCJEMtIwkIAgUDCBUQFxkDDQICCAYPCiMUDoI6OgMCAgcQCw8UAgMGAAAAA//7//kCdAKCADAAQwB+AAABNh4BBw4BBw4CBw4BFBYfARYGJyYnJicmNSYHBgcGJicmNjc+ATc2Fh8BNjc2NzYDNicmBwYHDgEXFjc2Nz4DNyUeAQcOASciJwYHBgcUDgQjIi4BJyY2NzY3JicmNjc+AR8BMjM3PgQXHgMOAzEUBxYBYw0dCQ4GLQoDKiIEAwMBAQEFKBoCAQoFAwIFGyIfPwMDKh4cQyAQGAMEGAcZCh19BggKGhwfDx4FAxUJBhIiFhAEAYYQDgEDICMJCiARMQsEAgYIDwsDChQCBCgcEhkXBw4BCQccCgoEBhUBAwwNFQsHCgUCAQICAw0VAnsGDiMcCmsgCHVnFg4fGRUFBiAfDgEBBxAKAwEIIwgILyssjzIvMwMBBAMDQQ47FDj+xiIJDRgbRCBsFhENBQgWPTcxDuoFDQwVIQMBVDGXUQUfChYHCAESEBy+VDNFAwMIIBAMCgEBNgMGEgkJBgIICgwKDAcIAR4CAAAD/////gLbAoMAJwA7AIQAABM2FhcWBgcOAw8BBgcGFjc2Nz4BFx4BFQcGBwYHBiYnJjY3PgIXNicmBg8BDgEPAQYUFjY/AT4CAR4BBw4BJzAuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAwcOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFtYnPwcIFi0TNC4pDAwHAgMaGCMaBxoPCgoBAQcNFStqHB4CHhRDRDAXDQcRBgYTLQ0OBwwNBgYZKxAByRgTDAsjCAsHDgoOCwwFFRADAgEHAhQOCwgGAwEDBAMGAgITJwQRIgsTCAsBAhATEwUTBQMVDiUXCA4CCAsbChcNEBgYTisXAaMGHhceVCgRGg0IAQEIGhUcAQEnCgwHBBIHBwoPGA4bCRwgWEwxVDF1LwoGAQMCCjMVFQ8QBQECAgomFwFRCR8TDwMFBAEDAQEDBwUXKwcEBBIGAgEFAwYEBAoLCAwDAhYCAm0kTCc/AQ0PBAMFDywiXERpBAMFJA4XBAECISomJScEAgAAAAACACj//gJmAoUARwCEAAATBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOAScwLgMOAgcGBR4BBw4DJyInBgcGBw4FIyIuAScmNjc2NyYnLgE3Njc2Fzc+BhceAw4DMQYHFvQDAgEGAhQOCwgFBAEDBAIHAQITJwQSIAsSCAoDGRkIEwQDEw4kGAcPAggLGwkXDRAYFk4rFxQZEwwLIgkLBw4KDgsMBRUBRRAOAgEHDxwTCQohEDILAQMCBwgPCwMKEwMEKR0SGRcHDgEMDBkODhUBAQYHCwsQCAcKBQIBAgMCAQwVAeUHBQMTBQIBBAMGBAQKCwgNAgIXAgJuJEwnQAERDwIFDy0iXERqAwMFJA4YBAECISonJSgEAgcJHxMPAwUDAgIBAQMHBRgDBA0NCBERCgIBUzCWUQUfChUICAISEBy8VDNEAwMGIAsMCgUBNgEECwgLBAMDAwgKDAoMBwcBHgMAAgAp//4CeAKEAEsAjgAAARYXFgcOBSMVBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOAScwLgIqAQ4BBwYHBgcOAQcXFhcWBQYHBh8BFgYnLgEnNDY/ATY3MDY3Ni4BIyIHBgcOAQ8BDgEnJicmPgE3Njc2Nz4CNzYWFRQHBgcwFz4BFx4BHwEWASQDAQMEAQMCAgIBARMoBBEhCxMHCwMZGgcTBAQTDiUYBw8CCAsbChcMERgXTSwWFRgTDAsiCQsHDgoOCwwFFRACAgIGAhQOCwgBTx8GCQYDARIYGRIBDAYGBQIPAQEEBQITGBkVBSADCAQYEiEDAQIFAQYpEFEKCxQMFCIWES8BEzETCxIDBBMBrAMECgwDBwUEAwIBFgICbSRMJ0ABEQ8CBQ8tIlxEagMDBSQOGAMCAyIpJyUoBAIICR8TDwMFAwIDBAYFGCsHBAQSBgIBBAR8aiIuLSQOHAMCJSYUSBkaFQc4CQYJAhQUKQuBFjwQEAMFJQgUJgktijjKGBYYAwQTERgzJnUBExQEAw0GBh8AAAMAJf/+AmQCgwAvAEkAkQAAARYHDgEHDgInIi4BJyYjBwYUDgIjBiY3PgI/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BBw4BDwEOAxUHFgYWMz4DNwMWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYXHgEHDgEnIi4DDgIHBgcGBw4BBxcWFxYCXgUEBzQkAwoiFAMKFAQCAQIBBgcPCRgXAgEPIRVdDBYSHwYMDkcIAxsgCAcIBQZxHRYDAwkLBg8DBBEYDAcBAQIKCgYOCwkDxgMBAwQDBgICEycEESILEwgLAxkaBxQFBBQOJRcIDgIICxsKFwwRGBdOKxcVGBILCyMIAQsHDQsOCwwEFRECAgIGAhQOCwgBYiYuO48mAwoNAwMPDQUEBAQMCAcBHhoTWoc17hwLBwsJFCSrCgQdEAUICgwO9i+DFQ0JAgENBgYZPDMtDA0BEBEBCg0OBQEyAwQKDAgMAgMWAgJtJEwnPwERDwIFECwiXERpBAMFJA4XBAIDIikmJSgFAgcJIBIQAgUDAgIBAQMGBRgrBwQEEgUDAQQEAAAAAgAu//YCjAKAAEsAlQAAARYXFgcOAwcVBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgIXFhceAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWARQOBTEGJyYnJicGBxQOBCMiLgEnJjY3PgE/AT4EFx4DDgMxDgIHNjc2FxYHBgcWFx4BHwEeARceARUBLQMBAwQBBAMDARQnBBEiDBQICwMaGQgTBQQVDyUXBw8BCAsbCRcNERkPLjccFxUYEgwLIgkLBw4KDgsMBRURAgICAwMCFA4LCAFjAgQFBQUDHR0bHhE5EwUDAgcJEQsECxYDBSkeEjMQEAEDDQ4XDAgMBQMBAgMCASQxDlMHKA0QHhBTDAgIGQgIBy4EBwkBqgQECgsFCQUEAQEWAgEBbCRMJz8BEQ8CBg8sIlxEaQQDBSQOFwQBAiEpJhkiEAMDBwofEw8CBQMCAwMHBRcrBwQDCQsEAwEFA/6BBQoIBwUEAhISEicXY0UjBh8KFQgHAhMQHb1UMn8mJwIGEggJBwIJCgwKDAcIAVN2KD4FGiMoHBA6Fg4RJAkKCCYDBw0EAAAAAAT/9v8xAk8CCABCAF4AigCSAAAlDgIHDgIHBicuAicmNjc2FxYXFjc2NzY3NiIjBgcGJicuATc2NzY3PgE/AT4FFhceBQ4DMQYHPgI1PgE/ATYmLwEmDgEHDgEPAQYWNzM+ATcBFgcUBw4BBw4BDwEGBw4BJyYnJjc2NzYWMh4CFxY2PwE2Nz4BNz4BNz4CHgEOAS4BNgEnAx8WAQENEQYvSx0lCwUGDRIYHgUFEA4YEgsKAQIBEhcUTxMSBAcEExAWDx0GBwIHFhcgHyIPChELBwMBAQICAwSgDSITCAwDAwEFBAMHFzAZGCAEBAMOCAkLHggBgRICCQEwCAcUBwcOIRpGJCIGAwYMGAIKAwoFDQQOGgUGCw8DNwEDHAcIHhYdCwsdHAwMvQpfRwUGJy0PbQgDFRANDicKDhADAwcGCy8dLgEYDQ0RGxlDHBotJSEWIQUFAgYPDQ0GAgcFDQ0PDQ8LDQcIDqEQPy0BEioMDAwNAQICBSglJFEXFhcXAQEZDAEnCRcIJwXEJh1PGRktKB8TDw4hEg8bBQEBBAIFAgYOCgoPRw/jAg5iDQ4HbQkcHg8JHB4ABP8x/yEBkQH7AC8ANwBmAHEAABMOAQcOAQ8BBgcOAScuAicmNzY3NhceAT4DPwE2Nz4BNz4CNz4BFzAxFgcGLgI+AR4BBhcWBxQHDgEHDgEPAQYHDgEnJicmNzY3NjIeAxcWNj8BNjc+ATc+Ajc+ARcyNx4BDgEuATc+ApcBOgoIGAkIECMbTiQNFAsCAggMGxIfBw8LCwgGAQIOEgRCAQIPFgYIHgwRAwEEHAwNHB0LDKYSAggBLQgGEwYHDSEZRSUiBwMGCxkDBwUJBg0EDhkGBQoPAzMBAQ0RBQgdDAEWDg0MHB0MBgQPEwEpBsElHU4YGSwnHQ8QBhISChAPGgMDEgQCBAcIBwIDEkIP4AIHMTsIDgUHChcIUQocHg4KHB4mCRcIJwXFJh1QGRguKCAUDg0iERAbBQEBAwIFAgUOCgoPRw/kAgcyPAkOBwZvBBweDwkbDwoPBAAAA//P/zoCJQIVAFQAhACMAAABDgIHDggnJicmJyY2FxYXFj4CNz4BNzQmFQYHDgInIi4DJyY2NzY3PgQXFgcGBw4BBwYXFjc+ATc+Ajc+AhcWBw4BBzcWBwYHDgEHDgMPAQYHDgEnJicmNzY3MjYeAhcWNj8BNjc+Ajc+ATc+ARcwNh4BDgEuATYBNgcYLgkBDQcRDxcYHyMSOxEBAQssHQkPDhUTCwQKFgMBBgwFECIQAgcVEBEDBhEaKxMFCBALEwcXDAMNDCoGFw4FCBZHFQchEwYCBxcLJRgFDQO6EgEBCAEtBwQLCQkDAwwhGUYlIgYEBwsYBwIOAxEEDhkGBQsOAhsZAQMaBwgeDAgdDAwcHA0MASAUP4IcAywXMB0nFxMGAwknAgIeLwoDCQYBEQ4HEz0OAQEBCA0FDA4CAQUKFw8ba0BoGAcJDwQEBgwvCxcXWhFJFAYCBms0ElUrBwMFCQgTMAwhC3YIGAcnBsQmEy4nIwoJLiggFA4NIhEQGwUCBQEGAgUOCgoPRwt3cAMPYg0OBwZ0CRweDwgcHgAC/////wIZAn4APAB4AAABDgEnJicGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIzNz4GFx4DDgMxFAcWFx4BNx4BBw4BJyYjBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc0PgMXHgMOAzEUBxYBHQMfJAkKIRAzCwQCBgkPCgQKEwIEKR0SGRcHDQEJBxwKCgQGFQECBQcLCxAIBwoFAgECAgMNFQYQDtsQDgICICQICyEQMwsDAgQGCQ0JBAoTAgQpHRIaGAcNAQkHHAoKBAYWBAsNFQsHCgUCAQICAw0VAfMVIAIBAVQxl1AGHgsVCAgCEhAcvVQ0RAMDCR8QDAoBATYBBAsICwQEBAIJCQwLDAcHAR8CAgUMDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDNEBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgAAAAIAAv/+AoIChABIAIMAAAEeAQcOASciLgMiDgIHBgcGBw4BBxcWFxYXFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWBQ4BJyYjBgcGBw4FIyIuAScmNjc2NyYnJjY3PgEzFxYzNz4EFx4DDgMxFAcWFx4BAlcYEwwLIggBCQYMCQwLCgoEFg8DAgEHARMOCwkFAwEDAwMGAgITJwQSIQsSCAsDGRoHEwQEEw8kFwgOAggKGwoXDRAYF04rF/7ZAiAjCQohDzIKAQMCBggPCwMKFAIFKBwSGRcHDgEJBxsKCwMHFQEDCw0VCwcKBQIBAgIDDBUGEA4CdgkfEw8DBQMBAwEBBAYFFysHBAQTBQIBBAQGAwQKDAgMAgMWAgJtJEwnQAERDwIFDy0iXERqAwMFJA4XBAIDIiknJSgEAooVIQIBUzGYUQUfChUICAESEBy+VDREAwMIIBAMCgEBNwIGEgkJBQIJCQwKDAcIAR8CAQUNAAACAAT//gIOAoAASgCFAAABBgcGHwEWBicuASc0PgI/ATY3MDY3Ni4CIyIHBgcOAw8BDgEnJicmPgE3Njc2Nz4CNzYWFxQHBgcwFjU+ARceAx8BFicOAScmIwYHBgcOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyMzc+BBceAw4DMRQHFhceAQIDHwYJBQQBEhgZEgEFBwcCAgYBDwIBAgQEARMZGBUDDA0LAQgEGBMgAwECBQEFKRFRCgoVDBQhARcQLwETMBMHDQgGAQEU8gIgIwkKIBAwCgEDAgYIDwsDChQCBSccERkXBw4BCQcbCgsDBhUBAwsNFQsICgUCAQICAwwVBhAOATVoIy8tJA4cAwIlJg0nJSEKCxUHOAkFBwQBFBQpBSwzMws8EA8CBSUJFCUJLYo5yRgWGAMEExEYMyZ1AQESFAQCBwcHAgMfmxUhAgFTMpdRBR8LFQgIARIQHL5UNEQEAwgfEQwKAQE3AgYSCQoGAggKDAoMBwgBHgICBQwAAAAAAwAW//4BnQKCADoAXQBlAAABDgEnJiMGBwYHDgUjIi4BJyY2NzY3JicmNDc+ATMXMhc3PgQXHgMUDgIxFAcWFx4BFx4EDgIxMA4BBwYXFBYUDgIjBicmNjc+AT8BPgMeAQ4BLgE2ASwDHyQJCSAPMAkBAwIGCA8KBAoUAgUmGxEZGAcNCQcbCgsDBxQBAwsNFQsHCgUCAgIDDBUGEA4lCAoGBAEBAQEUGwYZAgEDBg0KHAsICw4JGgkIAgYaNhsLDh0cCg0B9hQiAgFUMZhRBR8KFggIARIQHL5VNEQDAwggEAwKAQE3AgcSCQoGAggKDAoMBwgBHgICBA1xAgUGBwcHBQU3TRlgNAMTBw0GBQEXEHk2IFIYGQQKD24KHR0NCh0dAAIACP/2AigCfABJAIYAACUWBzAVBicmJyYnBgcOBSciLgEnJjY3PgM/ATQ+AxceAxQOAjEUDgMHNjc2FxYHBgcWFx4BHwEeARceARUDDgEnJiMGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIXNz4GFx4DDgMxFAcWFx4BAiUDGh0dGx4SORIFAQMCBgkRCwQMFQQFKR8LHRoWBgcEDA4XDQgLBgIDAgMPFxkbCVIIJw4QHhBTCwgJGQgIBi8DCAn/Ax8kCQohEDMLBAIGCQ8KBAoTAgQpHRIZFwcNAQkHHAoKBAYVAQIFBwsLEAgHCgUCAQICAw0VBhAOMRkPARITESgWY0UjBh4LFQgHAQISERy9VCBLPzYPDwIGEggJBgMJCgwKDAcIASI1PUMaPgUaIygcEDoVDxEjCgoIJgIHDgQBvRUhAwFTMZdRBR8KFQgIAhERG75UNEMEAwggEAwKAQEBNwEECggMBAMDAwgKDAoMBwgBHgICBQ0AAgAP//8B2wKBACoAZQAAAR4DFA4DMQ4EBwYHDgUjIi4BJyY+ATc+AT8BPgQHDgEnJicGBwYHDgUjIi4BJyY2NzY3JicmNjc+ARczFjM3PgQXHgMOAzEUBxYXHgEBwAcKBgQBAgICAQ4WGRkJMQkBAgIGCRALBAsWAwQPHxMRMA8PAQMMDhaMAiAjCQogEDAKAQMCBggPCwMKFAIFJxwRGRcHDgEJBxsKCwMHFAEDDAwVCwgKBQIBAgIDDBUGEA4CdgIHCQoKCQoGBgIiNz5FGZZRBh4LFQgHAhIQEmSBNzKAJicCBhIICYcVIQIBAVQxmFEFHwsVCAgCERAcvlU0RAMDCCAQDAoBATcCBhIJCgYCCAoMCgwHCAEeAgIFDAAAAwAG//4DBgJ+AEcAhADBAAABBgcGHwEWBicuASc0Nj8BNjcwNjc2LgEjIgcGBw4CDwEOAScmJyY+Ajc2NzY3PgM3NhYXFAcGBxY1PgEXHgMfARYlDgEnJicGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIzNz4GFx4DDgMxFAcWFx4BFw4BJyYjBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc0PgMXHgMUDgMVFAcWFx4BAvsfBgkFBAESGBkSAQsGBwUBDwIBBAUCExkYFQQSEAIIBBgTIAMBAQIEAQYoEVEHCA4PCRQhARcQLwETMBQGDQgGAQEU/h4DHyQJCiEQMwsEAgYJDwoEChMCBCkdEhkXBw0BCQccCgoEBhUBAgUHCwsQCAcKBQIBAgIDDRUGEA73AiAkCAshEDMLAwIEBgkNCQQKEwIEKR0SGhgHDQEJBxwKCgQGFgQLDRULBwkFAwEDAgINFQYQDgE1aCMvLSQOHAMCJSYVRxoZFQc5CAYJAxUUKQdCSg88EA8CBSUEFg0bCiyKOckSERgMAgQTEBg0JnUBARIUBAIGCAcCAiCaFSACAQFUMZdQBh4LFQgIAhIQHL1UNEQDAwkfEAwKAQE2AQQLCAsEBAQCCQkMCwwHBwEfAgIFDA8VIQMBUzGXUQYYCxIJCwQCEREbvlQ0QwQDCCAQDAoBAQE3AgYSCQkFAgcJCgoKCQYGAQEeAgIFDQAABAAB//wD7QKMACcAPQCFAM8AABM2FhceAQ4BBw4BDwEGBwYWMzY3PgEXHgEVBwYHBgcGJicmNjc+Ahc2Jy4BDgEPAQ4BDwEGFBY2PwE+AiUWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYXHgEHDgEnIi4CIg4CBwYHBgcOAQcXMhcWJR4BBw4BJyIuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOAxUOAiYnJjc2NzY3JicuATc2NzYXNzY3PgIXFtgnPwcDAQkeGB5bHx4HAgMaGCMaBxoPCgoBAQcNFStqHB4CHhRDRDAXDQQKCQkCAhMtDQ4HDA0GBhkrEAFtBAEDAwIGAgISJwQSHQoQBwgDGBoHFAMCEQwhGAgOAwcKGwoXCw8XFkwrFxUYFAsKIwgBCwcOCg4LCwUUDwICAQYBEw4LCQFwGBQMCiMIAQsHDgoOCwwEFQ8CAgEGAhQOCwgGAwEDAwIGAgITJwQRHwsRBgoCEBMSBRQEAhINIhcIDwIIChsJFwwQFw8sNxwXAaAHHhgNHykvFhshAwMIGhUbASgKCwYFEgcGCw4ZDhsJHR9YTTBVMHUwCgMCAQMBAQozFRUPEAUBAgIKJheUBAQKCwgNAgIYAQFuJEwoQAEREAEGDi0iXEVrAgMEJQ4XBQICIionJioCAQcIHxMQBAUDAQMBBAcFGCwHBQMTBQIEA8UIHxMQAwUDAQIBAQQHBRgrBwUDEwUCAQQDBgMECgwIDAMCFwEBAW4kTCg/AQ0QBAMEDi0iXERrAwMEJQ0YBQECIionGSMSAgIABf/9//4DlgKGAC0AQwBuAIUAzQAAEzYeAhcWBgcOAQ8BBgcGFjc2Nz4DFx4FFQcGBwYHBiYnJjY3PgIXNicuAQ4BDwEOAQ8BBhQWNj8BPgIlFgcOAQcOAicuAicmIwcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AicuAQcOAQ8BDgEPARYGFjcyNjcDBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgIqAQ4BBwbUFCUdFAMIFi0eWx8eBwIDGhgjGgMJDA8JBAgEAgEBAQEHDRUrahweAh4UQ0QwFw0ECgkJAgITLQ0OBwwNBgYZKxACqwUEBjUkAwoiFAMKFAQCAQIGIBgWAQEoHV4LFhIfBgwORwgDHB8IBwgFBnATGAYCAwkLBg4EBBoeAwIBAgoKChYH8gMCAQYCFA4LCAUEAQMEAgYCAhMnBBEgCxIHCwMYGggTBAMTDiMXCA4DCAsbCRcNEBcXTSsXFRgTCwsjCAELBg4KDwsLBRUBogQFDhQLH1MoGyEDAwgbFBwBAScECAYBBAIGBwcGBQECCw4YDhsIHSBXTTFUMXUvCgQCAgIBAgk0FBUQEAQBAgELJhdBJi47jicDCg0DAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsKBB0QBQgKCw/2IV0+Cw0JAgENBgYnZyAgARARARgLAXIIBAQSBQIBBQMGAwUJDAgMAwIXAgJuJEwnQAEQEAIFDy0iXERqAwMFJA4YBAECIiknJSkEAgcJHxMPAwUDAgIEBwUXAAACACX//gK4AocASACVAAABFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWFx4BBw4BJyIuAyIOAgcGBwYHDgEHFxYXFiUeAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWFxYXFgcOAwcVBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgMXFgEbAwEDAwMGAgETJwQSHwsSBwoDGRkIEwQDEg4jGAcPAggKGwkYDBAXF00rFxQZEwsLIwgBCQYLCgwKCwoEFQ8DAgEGAhQOCwgBdxkSCwsjCAsHDgoPCwsFFRADAQIDAwIUDgsIBQQBAwQCAwMDARMoBBEhCxIICwMZGgcTBAQTDiUYBw8CCAsbCRgMEBgMHyUrFRcBrwQECgsIDQICFwIBbSVMJz8BERABBg8tIV1EagMDBSQOGAQBAiIqJiYoAwIHCR8SEAMFAgICAQIDBgUYKwcEBBMFAgEEA8MJHxMPAwUDAgMEBwUXKwcFAwgLBQIBBAQGAwQKDAUJBQQBARYCAm4kSyg/AREPAQYPLSJcRGkEAwUkDhcEAgMiKScSHRMJAgIAAAAAAwAd//4BxgKCAEkAbQB5AAABBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOAyM3HgMcAQ4BMRQOAQcGFxQWFA4DIwYnJjY3PgE/AT4DHgEHDgMnLgE2ARIUJwQRIgwTCAsDGhkHFAUEFA8lFwcPAQgLGwkXDREYF08rFhUYEgsLIwgBCwcNCw4LDAQWEAMCAQYCEw4LCQUDAQMEAQQDAwF1BwoGBAECFRsHGwEBAgQHDAgcCggNDwobCQkCBhorGwsHAwsODwcOCg0BdRcDAm0kTCc/AREPAgYPLCJcRGkEAwUkDhcEAQIhKiYlJwUCBwofEw8CBQMCAwQGBRcrBwUDEwUCAQUDBwMECgsGCAYEHQIFBggGCAQFATZNGV80AxAHCwYHAgEXEHo1IFEYGQQKDnAKHQ8HCwYBAwUcHgAAAgAu//4CRgKFAEkAcAAAARYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgMOAgcGBwYHDgMHFxYXFiUeAxQOAjEUDgEHBgcOBSMiLgEnJjY3PgE/ATQ+AwEnAwEDBAIGAgITJwQRIQsSBwsDGRkIEwQDEw4kFwgOAgcLGwkYDBAYF00rFxUYEwwLIggBCwcOCg4LDAQVEAMBAQMCAgIUDgsIAQoICwUCAgMDJDENNAoBAwIGCRELBAsVAwUpHRIyEBAEDA4WAa0DBAoMCAwCAxYCAW0kTCdAAREPAgUPLSJcRGoDAwUkDhgEAQIhKiYmKAQCBwkfExACBQMCAgEBBAYFGCsHBQIHBggEAgEEBMcDCQoMCgwHBwFVeCeWUQUfCxQIBwISERy9UzJ/JyYCBhIICQAAABAAxgABAAAAAAABAAkAFAABAAAAAAACAAcALgABAAAAAAADABYAZAABAAAAAAAEAAkAjwABAAAAAAAFACIA3wABAAAAAAAGABABJAABAAAAAAAQAAkBSQABAAAAAAARAAcBYwADAAEECQABABIAAAADAAEECQACAA4AHgADAAEECQADACwANgADAAEECQAEABIAewADAAEECQAFAEQAmQADAAEECQAGACABAgADAAEECQAQABIBNQADAAEECQARAA4BUwBNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAxAC4AMAAwADIAOwBNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAAAxLjAwMjtNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAyADsARgBvAG4AdABzAGUAbABmACAATQBhAGsAZQByACAAMgAuADMALgA1AABWZXJzaW9uIDEuMDAyO0ZvbnRzZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";
|
|
@@ -8033,34 +8030,34 @@ class In extends Et {
|
|
|
8033
8030
|
}
|
|
8034
8031
|
brandSvg(e, t, A) {
|
|
8035
8032
|
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
|
|
8036
|
-
const
|
|
8037
|
-
|
|
8038
|
-
const M =
|
|
8039
|
-
|
|
8040
|
-
const S =
|
|
8041
|
-
|
|
8042
|
-
const N = new Qt(
|
|
8043
|
-
return N.transform(([x,
|
|
8033
|
+
const p = v("g"), y = v("g");
|
|
8034
|
+
p.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
|
|
8035
|
+
const M = v("g");
|
|
8036
|
+
p.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
8037
|
+
const S = v("g");
|
|
8038
|
+
p.appendChild(S), S.setAttribute("fill", "white"), S.innerHTML = a;
|
|
8039
|
+
const N = new Qt(p);
|
|
8040
|
+
return N.transform(([x, R]) => [x, R + ((s - x) * R) ** 2 / (s * 5e4)]), N.transform(([x, R]) => [
|
|
8044
8041
|
x,
|
|
8045
|
-
|
|
8046
|
-
]), N.transform(([x,
|
|
8047
|
-
}, [g, B, l] =
|
|
8042
|
+
R + (s / 3 - x) ** 2 / s * this.indicator(x < s / 3)
|
|
8043
|
+
]), N.transform(([x, R]) => [x - (i - R) * (s - x) / 800, R]), p;
|
|
8044
|
+
}, [g, B, l] = mA(t);
|
|
8048
8045
|
if (!g)
|
|
8049
8046
|
return "";
|
|
8050
|
-
const
|
|
8051
|
-
g.appendChild(
|
|
8052
|
-
let
|
|
8053
|
-
A ? (
|
|
8054
|
-
const h =
|
|
8047
|
+
const d = v("defs");
|
|
8048
|
+
g.appendChild(d), pA(g, d, t);
|
|
8049
|
+
let C, E, w, u;
|
|
8050
|
+
A ? (C = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), w = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), E = l * 0.8, w = l * 0.067, u = B * 0.33);
|
|
8051
|
+
const h = v("g");
|
|
8055
8052
|
g.appendChild(h), h.setAttribute("transform", `translate(${w} ${u}) rotate(-10)`);
|
|
8056
|
-
const I = ht(
|
|
8053
|
+
const I = ht(C, E);
|
|
8057
8054
|
I.setAttribute("opacity", "0"), h.appendChild(I);
|
|
8058
|
-
const
|
|
8059
|
-
h.appendChild(
|
|
8060
|
-
const
|
|
8061
|
-
|
|
8062
|
-
const
|
|
8063
|
-
return ut(
|
|
8055
|
+
const D = v("g");
|
|
8056
|
+
h.appendChild(D);
|
|
8057
|
+
const m = r();
|
|
8058
|
+
D.appendChild(m);
|
|
8059
|
+
const Q = Bt(o);
|
|
8060
|
+
return ut(D, Q, C, E), g.outerHTML;
|
|
8064
8061
|
}
|
|
8065
8062
|
// 1 if true, 0 if false.
|
|
8066
8063
|
}
|
|
@@ -8077,37 +8074,37 @@ class Fn extends Et {
|
|
|
8077
8074
|
}
|
|
8078
8075
|
svgElement(e, t) {
|
|
8079
8076
|
const A = lt(fn), n = e !== "" ? ((I) => I.charAt(0).toUpperCase() + I.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
|
|
8080
|
-
const I =
|
|
8077
|
+
const I = v("g");
|
|
8081
8078
|
I.classList.add("module-text-group");
|
|
8082
|
-
const
|
|
8083
|
-
I.appendChild(
|
|
8084
|
-
const
|
|
8085
|
-
|
|
8086
|
-
const
|
|
8087
|
-
|
|
8088
|
-
const
|
|
8089
|
-
|
|
8090
|
-
const y =
|
|
8079
|
+
const D = v("defs");
|
|
8080
|
+
I.appendChild(D), D.appendChild(DA(0, 2, 2, "shadow"));
|
|
8081
|
+
const m = v("path");
|
|
8082
|
+
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), D.appendChild(m);
|
|
8083
|
+
const Q = v("g");
|
|
8084
|
+
Q.classList.add("module-layer0"), I.appendChild(Q), Q.setAttribute("filter", "url(#shadow)"), Q.innerHTML = m.outerHTML;
|
|
8085
|
+
const p = v("g");
|
|
8086
|
+
p.classList.add("module-layer1"), I.appendChild(p), p.setAttribute("stroke-width", "3"), p.setAttribute("stroke", "rgb(45,41,38)"), p.setAttribute("fill", "rgb(45,41,38)"), p.setAttribute("transform", "translate(0.5,0)"), p.innerHTML = s;
|
|
8087
|
+
const y = v("g");
|
|
8091
8088
|
y.classList.add("module-layer2"), I.appendChild(y), y.setAttribute("fill", "rgb(255,209,0)"), y.setAttribute("transform", "translate(1,-0.1)"), y.innerHTML = s;
|
|
8092
|
-
const M =
|
|
8089
|
+
const M = v("g");
|
|
8093
8090
|
return M.classList.add("module-layer3"), I.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = s, new Qt(I).transform(([N, x]) => [N, x + (r / 2 - N) ** 2 / (r * 6)]), I;
|
|
8094
|
-
}, l =
|
|
8091
|
+
}, l = v("g");
|
|
8095
8092
|
l.classList.add("module-root");
|
|
8096
|
-
const
|
|
8097
|
-
l.appendChild(
|
|
8098
|
-
const
|
|
8099
|
-
|
|
8093
|
+
const d = v("defs");
|
|
8094
|
+
l.appendChild(d);
|
|
8095
|
+
const C = v("g");
|
|
8096
|
+
C.classList.add("module-bounds"), l.appendChild(C);
|
|
8100
8097
|
const E = ht(t.height, t.width);
|
|
8101
|
-
E.setAttribute("opacity", "0"),
|
|
8102
|
-
const w =
|
|
8098
|
+
E.setAttribute("opacity", "0"), C.appendChild(E);
|
|
8099
|
+
const w = v("g");
|
|
8103
8100
|
w.classList.add("module-text-enclosure"), l.appendChild(w);
|
|
8104
8101
|
const u = B();
|
|
8105
8102
|
w.appendChild(u);
|
|
8106
8103
|
const h = Bt(g);
|
|
8107
|
-
return ut(w, h, t.height, t.width, 0.35, 0.65),
|
|
8104
|
+
return ut(w, h, t.height, t.width, 0.35, 0.65), IA(l.outerHTML);
|
|
8108
8105
|
}
|
|
8109
8106
|
}
|
|
8110
|
-
async function
|
|
8107
|
+
async function fA(c) {
|
|
8111
8108
|
if (c === "Favourites")
|
|
8112
8109
|
return new pn();
|
|
8113
8110
|
if (c === "Maltesers") {
|
|
@@ -8118,7 +8115,7 @@ async function DA(c) {
|
|
|
8118
8115
|
return new Fn();
|
|
8119
8116
|
throw new b(`Failed to resolve Module, Module ${c} not found`);
|
|
8120
8117
|
}
|
|
8121
|
-
var
|
|
8118
|
+
var pe = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(pe || {});
|
|
8122
8119
|
const yn = 1e3;
|
|
8123
8120
|
class kt extends lA {
|
|
8124
8121
|
constructor(e) {
|
|
@@ -8133,16 +8130,16 @@ class kt extends lA {
|
|
|
8133
8130
|
}
|
|
8134
8131
|
}
|
|
8135
8132
|
class Mn {
|
|
8136
|
-
constructor(e, t, A, a, n, i, s, o, r, g, B, l,
|
|
8133
|
+
constructor(e, t, A, a, n, i, s, o, r, g, B, l, d = !1, C, E = !1, w = !1, u = !1) {
|
|
8137
8134
|
this.workflowStatePromiseQueue = new BA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
8138
|
-
var
|
|
8135
|
+
var D;
|
|
8139
8136
|
if (!this.previewService)
|
|
8140
8137
|
return;
|
|
8141
|
-
const h = this.getCommandContext().getAllLayouts(), I = (
|
|
8138
|
+
const h = this.getCommandContext().getAllLayouts(), I = (D = this.getLayoutPreviewService()) == null ? void 0 : D.getAll();
|
|
8142
8139
|
if (I)
|
|
8143
|
-
for (const [,
|
|
8144
|
-
|
|
8145
|
-
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly =
|
|
8140
|
+
for (const [, m] of I)
|
|
8141
|
+
m.render(h);
|
|
8142
|
+
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly = d, this.singleVariantsRenderable = w, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = g, this.modelContainer = C, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = B, this.isReloadedTransaction = E, u && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
|
|
8146
8143
|
this.initialized = !0;
|
|
8147
8144
|
}), this.initializationPromise.catch((h) => {
|
|
8148
8145
|
throw console.error(h), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -8163,7 +8160,7 @@ class Mn {
|
|
|
8163
8160
|
};
|
|
8164
8161
|
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((s) => {
|
|
8165
8162
|
this.storage[s.stepName] = s.storage || {};
|
|
8166
|
-
}), this.allScenes = await
|
|
8163
|
+
}), this.allScenes = await za(e);
|
|
8167
8164
|
const a = se(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
|
|
8168
8165
|
this.commandContext.apply(new k(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
|
|
8169
8166
|
}
|
|
@@ -8381,14 +8378,14 @@ class Mn {
|
|
|
8381
8378
|
console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
|
|
8382
8379
|
return;
|
|
8383
8380
|
}
|
|
8384
|
-
const
|
|
8381
|
+
const d = i.data;
|
|
8385
8382
|
this.modelContainer.applyModelVariant(
|
|
8386
8383
|
i.stepName,
|
|
8387
8384
|
{
|
|
8388
8385
|
model: l,
|
|
8389
8386
|
contextService: this.getLayoutPreviewService()
|
|
8390
8387
|
},
|
|
8391
|
-
|
|
8388
|
+
d.replaceProductModel || !1
|
|
8392
8389
|
);
|
|
8393
8390
|
} else {
|
|
8394
8391
|
const l = o.material;
|
|
@@ -8396,12 +8393,12 @@ class Mn {
|
|
|
8396
8393
|
console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
|
|
8397
8394
|
return;
|
|
8398
8395
|
}
|
|
8399
|
-
i.data.targetMaterials.forEach((
|
|
8396
|
+
i.data.targetMaterials.forEach((C) => {
|
|
8400
8397
|
if (!this.modelContainer)
|
|
8401
8398
|
throw new b(
|
|
8402
8399
|
"We should always have a model container when injecting a preview!"
|
|
8403
8400
|
);
|
|
8404
|
-
this.modelContainer.applyMaterialVariant(
|
|
8401
|
+
this.modelContainer.applyMaterialVariant(C, i.option.id, l);
|
|
8405
8402
|
});
|
|
8406
8403
|
}
|
|
8407
8404
|
}), await A.getInitializationPromise(), this.renderLayouts();
|
|
@@ -8514,10 +8511,10 @@ class Mn {
|
|
|
8514
8511
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
8515
8512
|
const a = async (r, g, B) => {
|
|
8516
8513
|
if (r.type === F.SilentIllustration) {
|
|
8517
|
-
const l = await new
|
|
8514
|
+
const l = await new vt(r, g).trigger();
|
|
8518
8515
|
return { step: r, results: l };
|
|
8519
8516
|
} else if (r.type === F.ProductOverlay) {
|
|
8520
|
-
const l = await new
|
|
8517
|
+
const l = await new vt(
|
|
8521
8518
|
r,
|
|
8522
8519
|
g,
|
|
8523
8520
|
B
|
|
@@ -8560,7 +8557,7 @@ class Mn {
|
|
|
8560
8557
|
async updateTransactionStakeholders() {
|
|
8561
8558
|
var t;
|
|
8562
8559
|
const e = await P.getShadowGraphqlClient().query({
|
|
8563
|
-
query:
|
|
8560
|
+
query: La,
|
|
8564
8561
|
errorPolicy: "all",
|
|
8565
8562
|
fetchPolicy: "no-cache",
|
|
8566
8563
|
variables: {
|
|
@@ -8577,45 +8574,45 @@ class Mn {
|
|
|
8577
8574
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
|
|
8578
8575
|
}
|
|
8579
8576
|
async setSelectionsAndElements(e, t, A, a) {
|
|
8580
|
-
var
|
|
8577
|
+
var m;
|
|
8581
8578
|
const n = this.stepSelections;
|
|
8582
8579
|
this.stepSelections = {
|
|
8583
8580
|
...this.stepSelections,
|
|
8584
8581
|
[e]: { selectedVariants: t }
|
|
8585
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
8586
|
-
re(
|
|
8582
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((Q, p) => Q + p.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, M) => y + M, 0), 0), this.workflow.steps.forEach((Q) => {
|
|
8583
|
+
re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1, delete this.stepMetadata[Q.stepName], delete this.stepSelections[Q.stepName], delete this.storage[Q.stepName]);
|
|
8587
8584
|
});
|
|
8588
|
-
const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((
|
|
8589
|
-
(
|
|
8585
|
+
const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((Q) => Q.silentSteps).flat(), B = o.map((Q) => Q.silentSteps).flat().filter(
|
|
8586
|
+
(Q) => !r.some((p) => p.stepName === Q.stepName)
|
|
8590
8587
|
);
|
|
8591
|
-
r.forEach((
|
|
8592
|
-
re(
|
|
8588
|
+
r.forEach((Q) => {
|
|
8589
|
+
re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1);
|
|
8593
8590
|
});
|
|
8594
|
-
const l = this.getInvalidCanvasRegions(), { stepElements:
|
|
8591
|
+
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
8595
8592
|
this.stepElements = {
|
|
8596
8593
|
...this.stepElements,
|
|
8597
|
-
...
|
|
8594
|
+
...d,
|
|
8598
8595
|
[e]: A
|
|
8599
8596
|
}, this.removeElements(l);
|
|
8600
|
-
const E = this.workflow.steps.find((
|
|
8597
|
+
const E = this.workflow.steps.find((Q) => Q.stepName === e);
|
|
8601
8598
|
if ((E == null ? void 0 : E.type) === F.Frame) {
|
|
8602
|
-
const
|
|
8603
|
-
(
|
|
8599
|
+
const Q = this.getStepSpecificServices(e);
|
|
8600
|
+
(m = Q == null ? void 0 : Q.frameService) == null || m.setTargetElements(A.map((p) => p.id));
|
|
8604
8601
|
}
|
|
8605
|
-
const w = l.map((
|
|
8602
|
+
const w = l.map((Q) => new te(Q.id)), u = new Mt(this.constructSerializableWorkflow()), h = [...C, ...w, u];
|
|
8606
8603
|
h.length > 0 && this.commandContext.apply(new k(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
8607
|
-
const I = this.getInvalidModelVariants(),
|
|
8608
|
-
if (
|
|
8609
|
-
const
|
|
8610
|
-
(
|
|
8611
|
-
|
|
8604
|
+
const I = this.getInvalidModelVariants(), D = this.modelContainer;
|
|
8605
|
+
if (D) {
|
|
8606
|
+
const Q = I.map(
|
|
8607
|
+
(p) => D.applyModelVariant(
|
|
8608
|
+
p,
|
|
8612
8609
|
{
|
|
8613
8610
|
contextService: this.getLayoutPreviewService()
|
|
8614
8611
|
},
|
|
8615
8612
|
!1
|
|
8616
8613
|
)
|
|
8617
8614
|
);
|
|
8618
|
-
await Promise.all(
|
|
8615
|
+
await Promise.all(Q);
|
|
8619
8616
|
}
|
|
8620
8617
|
await this.onSelectionChange(), a && await a();
|
|
8621
8618
|
}
|
|
@@ -8626,7 +8623,7 @@ class Mn {
|
|
|
8626
8623
|
switch (this.stepInitialised[o.stepName] = !0, o.type) {
|
|
8627
8624
|
case F.DigitalContent:
|
|
8628
8625
|
A.push(
|
|
8629
|
-
|
|
8626
|
+
CA.init(
|
|
8630
8627
|
o,
|
|
8631
8628
|
this,
|
|
8632
8629
|
this.reloadedState
|
|
@@ -8635,7 +8632,7 @@ class Mn {
|
|
|
8635
8632
|
break;
|
|
8636
8633
|
case F.Frame:
|
|
8637
8634
|
{
|
|
8638
|
-
const r = new
|
|
8635
|
+
const r = new Xa(o.data.forceImageCover);
|
|
8639
8636
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
8640
8637
|
frameService: r
|
|
8641
8638
|
}, A.push(
|
|
@@ -8645,32 +8642,32 @@ class Mn {
|
|
|
8645
8642
|
break;
|
|
8646
8643
|
case F.Illustration:
|
|
8647
8644
|
A.push(
|
|
8648
|
-
|
|
8645
|
+
Re.init(o, this, this.reloadedState)
|
|
8649
8646
|
);
|
|
8650
8647
|
break;
|
|
8651
8648
|
case F.Material:
|
|
8652
8649
|
A.push(
|
|
8653
|
-
|
|
8650
|
+
wA.init(o, this, this.reloadedState)
|
|
8654
8651
|
);
|
|
8655
8652
|
break;
|
|
8656
8653
|
case F.Model:
|
|
8657
|
-
A.push(
|
|
8654
|
+
A.push(EA.init(o, this, this.reloadedState));
|
|
8658
8655
|
break;
|
|
8659
8656
|
case F.Module:
|
|
8660
8657
|
this.stepSpecificServices[o.stepName] = {
|
|
8661
|
-
module: await
|
|
8658
|
+
module: await fA(o.data.module)
|
|
8662
8659
|
}, A.push(
|
|
8663
|
-
|
|
8660
|
+
hA.init(o, this, this.reloadedState)
|
|
8664
8661
|
);
|
|
8665
8662
|
break;
|
|
8666
8663
|
case F.Picture:
|
|
8667
8664
|
A.push(
|
|
8668
|
-
|
|
8665
|
+
uA.init(o, this, this.reloadedState)
|
|
8669
8666
|
);
|
|
8670
8667
|
break;
|
|
8671
8668
|
case F.Question:
|
|
8672
8669
|
A.push(
|
|
8673
|
-
|
|
8670
|
+
QA.init(o, this, this.reloadedState)
|
|
8674
8671
|
);
|
|
8675
8672
|
break;
|
|
8676
8673
|
case F.Shape:
|
|
@@ -8737,7 +8734,7 @@ class Mn {
|
|
|
8737
8734
|
this.validationCallbacks.forEach((e) => e(this.validationErrors));
|
|
8738
8735
|
}
|
|
8739
8736
|
traversableScenes() {
|
|
8740
|
-
return
|
|
8737
|
+
return Va(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
|
|
8741
8738
|
}
|
|
8742
8739
|
}
|
|
8743
8740
|
class Z {
|
|
@@ -8831,7 +8828,7 @@ class Z {
|
|
|
8831
8828
|
return this.variantData.enabled;
|
|
8832
8829
|
}
|
|
8833
8830
|
}
|
|
8834
|
-
const
|
|
8831
|
+
const FA = class it {
|
|
8835
8832
|
constructor(e, t) {
|
|
8836
8833
|
this.manager = e, this.step = t;
|
|
8837
8834
|
}
|
|
@@ -8950,8 +8947,8 @@ const IA = class it {
|
|
|
8950
8947
|
e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
|
|
8951
8948
|
}
|
|
8952
8949
|
};
|
|
8953
|
-
|
|
8954
|
-
let X =
|
|
8950
|
+
FA.updateState = /* @__PURE__ */ new Map();
|
|
8951
|
+
let X = FA;
|
|
8955
8952
|
class Sn extends X {
|
|
8956
8953
|
constructor(e, t) {
|
|
8957
8954
|
super(e, t);
|
|
@@ -8963,7 +8960,7 @@ class Sn extends X {
|
|
|
8963
8960
|
*/
|
|
8964
8961
|
async selectVariant(e) {
|
|
8965
8962
|
if (!this.getUpdateState() && this.getCurrentVariant() !== e)
|
|
8966
|
-
return
|
|
8963
|
+
return Re.selectVariant(
|
|
8967
8964
|
this.step,
|
|
8968
8965
|
e.getResource(),
|
|
8969
8966
|
this.manager.getRegionElements(this.step.stepName) || [],
|
|
@@ -8979,7 +8976,7 @@ class Sn extends X {
|
|
|
8979
8976
|
const e = this.manager.getRegionElements(this.step.stepName) || [];
|
|
8980
8977
|
if (e.length !== 0)
|
|
8981
8978
|
try {
|
|
8982
|
-
return
|
|
8979
|
+
return He(e[0].id, this.manager.getAllLayoutData()).colors;
|
|
8983
8980
|
} catch (t) {
|
|
8984
8981
|
console.error(t);
|
|
8985
8982
|
}
|
|
@@ -8989,7 +8986,7 @@ class Sn extends X {
|
|
|
8989
8986
|
*/
|
|
8990
8987
|
setColor(e, t) {
|
|
8991
8988
|
const A = /* @__PURE__ */ new Map();
|
|
8992
|
-
return A.set(e, t),
|
|
8989
|
+
return A.set(e, t), Re.changeColors(
|
|
8993
8990
|
this.step,
|
|
8994
8991
|
this.manager.getRegionElements(this.step.stepName),
|
|
8995
8992
|
this.manager,
|
|
@@ -9001,7 +8998,7 @@ class Sn extends X {
|
|
|
9001
8998
|
return this.step.data.colorOption;
|
|
9002
8999
|
}
|
|
9003
9000
|
getAvailableColors() {
|
|
9004
|
-
return this.step.data.colorPickerEnabled ?
|
|
9001
|
+
return this.step.data.colorPickerEnabled ? Re.availableColors(this.step, this.manager) : Promise.resolve([]);
|
|
9005
9002
|
}
|
|
9006
9003
|
isColorPickerEnabled() {
|
|
9007
9004
|
return this.step.data.colorPickerEnabled ?? !1;
|
|
@@ -9012,7 +9009,7 @@ class Yn extends X {
|
|
|
9012
9009
|
super(e, t);
|
|
9013
9010
|
}
|
|
9014
9011
|
selectVariant(e) {
|
|
9015
|
-
return
|
|
9012
|
+
return wA.selectVariant(
|
|
9016
9013
|
this.step,
|
|
9017
9014
|
e.getResource(),
|
|
9018
9015
|
this.manager,
|
|
@@ -9025,7 +9022,7 @@ class Pn extends X {
|
|
|
9025
9022
|
super(e, t);
|
|
9026
9023
|
}
|
|
9027
9024
|
selectVariant(e) {
|
|
9028
|
-
return
|
|
9025
|
+
return EA.selectVariant(
|
|
9029
9026
|
this.step,
|
|
9030
9027
|
e.getResource(),
|
|
9031
9028
|
this.manager,
|
|
@@ -9043,7 +9040,7 @@ class xn extends X {
|
|
|
9043
9040
|
* @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
|
|
9044
9041
|
*/
|
|
9045
9042
|
selectVariant(e) {
|
|
9046
|
-
return
|
|
9043
|
+
return uA.selectVariant(
|
|
9047
9044
|
this.step,
|
|
9048
9045
|
e.getResource(),
|
|
9049
9046
|
this.manager,
|
|
@@ -9058,7 +9055,7 @@ class Nn extends X {
|
|
|
9058
9055
|
async selectVariant(e) {
|
|
9059
9056
|
if (!e.getId())
|
|
9060
9057
|
throw new Error("Unable to select variant with a null ID");
|
|
9061
|
-
await
|
|
9058
|
+
await QA.selectVariant(this.step, e.getId(), this.manager);
|
|
9062
9059
|
}
|
|
9063
9060
|
/**
|
|
9064
9061
|
* The way that this step expects to be rendered.
|
|
@@ -9068,7 +9065,7 @@ class Nn extends X {
|
|
|
9068
9065
|
return this.step.data.displayType || ((e = this.step.option) == null ? void 0 : e.displayType);
|
|
9069
9066
|
}
|
|
9070
9067
|
}
|
|
9071
|
-
class
|
|
9068
|
+
class Rn extends X {
|
|
9072
9069
|
constructor(e, t) {
|
|
9073
9070
|
super(e, t);
|
|
9074
9071
|
}
|
|
@@ -9130,7 +9127,7 @@ class vn extends X {
|
|
|
9130
9127
|
return e;
|
|
9131
9128
|
}
|
|
9132
9129
|
}
|
|
9133
|
-
class
|
|
9130
|
+
class vn extends X {
|
|
9134
9131
|
constructor(e, t) {
|
|
9135
9132
|
super(e, t);
|
|
9136
9133
|
}
|
|
@@ -9149,7 +9146,7 @@ class Rn extends X {
|
|
|
9149
9146
|
...this.manager.getInformationResults(),
|
|
9150
9147
|
{
|
|
9151
9148
|
message: "An issue has occurred with text",
|
|
9152
|
-
messageType:
|
|
9149
|
+
messageType: pe.Error,
|
|
9153
9150
|
stepID: this.step.stepName
|
|
9154
9151
|
}
|
|
9155
9152
|
]);
|
|
@@ -9221,10 +9218,10 @@ class Rn extends X {
|
|
|
9221
9218
|
* @param userInput Input from the user.
|
|
9222
9219
|
*/
|
|
9223
9220
|
setText(e) {
|
|
9224
|
-
var
|
|
9221
|
+
var d, C;
|
|
9225
9222
|
const t = {
|
|
9226
9223
|
input: e
|
|
9227
|
-
}, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (
|
|
9224
|
+
}, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
|
|
9228
9225
|
!!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
|
|
9229
9226
|
const i = A.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
|
|
9230
9227
|
if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
|
|
@@ -9238,13 +9235,13 @@ class Rn extends X {
|
|
|
9238
9235
|
this.manager
|
|
9239
9236
|
);
|
|
9240
9237
|
o && this.manager.getCommandDispatcher()(o);
|
|
9241
|
-
const B = this.manager.getInformationResults(), l = (
|
|
9238
|
+
const B = this.manager.getInformationResults(), l = (C = r[0]) == null ? void 0 : C.localizationKey;
|
|
9242
9239
|
if (l)
|
|
9243
9240
|
this.manager.setInformationResults([
|
|
9244
9241
|
...B,
|
|
9245
9242
|
{
|
|
9246
9243
|
message: `${l} - ${this.step.stepTitle}`,
|
|
9247
|
-
messageType:
|
|
9244
|
+
messageType: pe.Error,
|
|
9248
9245
|
stepID: this.step.stepName
|
|
9249
9246
|
}
|
|
9250
9247
|
]);
|
|
@@ -9327,15 +9324,75 @@ class Un extends X {
|
|
|
9327
9324
|
}
|
|
9328
9325
|
async selectVariant() {
|
|
9329
9326
|
}
|
|
9327
|
+
/**
|
|
9328
|
+
* Returns a preview URL used to show the generated QR code in your UI.
|
|
9329
|
+
*/
|
|
9330
|
+
getPreviewURL() {
|
|
9331
|
+
var e;
|
|
9332
|
+
return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.videoUrl) || "";
|
|
9333
|
+
}
|
|
9334
|
+
/**
|
|
9335
|
+
* Turns an asset into a QR code that can be used to access the content.
|
|
9336
|
+
* @param asset The asset to use for the QR code.
|
|
9337
|
+
* @returns The final URL string for the QR code.
|
|
9338
|
+
*/
|
|
9339
|
+
async selectVideo(e) {
|
|
9340
|
+
return CA.regenerateQRCode(
|
|
9341
|
+
this.manager.getRegionElements(this.step.stepName),
|
|
9342
|
+
e.key,
|
|
9343
|
+
this.manager,
|
|
9344
|
+
this.step
|
|
9345
|
+
);
|
|
9346
|
+
}
|
|
9330
9347
|
}
|
|
9331
9348
|
class kn extends X {
|
|
9332
9349
|
constructor(e, t) {
|
|
9333
9350
|
super(e, t);
|
|
9334
9351
|
}
|
|
9335
9352
|
async selectVariant() {
|
|
9353
|
+
console.info("Text Modules don't support variants.");
|
|
9354
|
+
}
|
|
9355
|
+
/**
|
|
9356
|
+
* Return the remaining amount of characters that
|
|
9357
|
+
* the user is allowed to add, or undefined if there is no limit.
|
|
9358
|
+
*/
|
|
9359
|
+
getCharactersRemaining() {
|
|
9360
|
+
const e = this.step.data.maxLength;
|
|
9361
|
+
if (e === void 0)
|
|
9362
|
+
return;
|
|
9363
|
+
const t = this.getText();
|
|
9364
|
+
return e - t.length;
|
|
9365
|
+
}
|
|
9366
|
+
/**
|
|
9367
|
+
* Return the maximum characters allowed for
|
|
9368
|
+
* this step, or undefined if there is no limit.
|
|
9369
|
+
*/
|
|
9370
|
+
getCharacterLimit() {
|
|
9371
|
+
return this.step.data.maxLength;
|
|
9372
|
+
}
|
|
9373
|
+
getText() {
|
|
9374
|
+
var e;
|
|
9375
|
+
return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.text) || "";
|
|
9376
|
+
}
|
|
9377
|
+
setText(e) {
|
|
9378
|
+
hA.changeText(this.step, e, this.manager, "", (t) => {
|
|
9379
|
+
if (t)
|
|
9380
|
+
this.manager.setInformationResults([
|
|
9381
|
+
...this.manager.getInformationResults(),
|
|
9382
|
+
{
|
|
9383
|
+
message: t,
|
|
9384
|
+
messageType: pe.Error,
|
|
9385
|
+
stepID: this.step.stepName
|
|
9386
|
+
}
|
|
9387
|
+
]);
|
|
9388
|
+
else {
|
|
9389
|
+
const A = this.manager.getInformationResults().filter((a) => a.stepID !== this.step.stepName);
|
|
9390
|
+
this.manager.setInformationResults(A);
|
|
9391
|
+
}
|
|
9392
|
+
});
|
|
9336
9393
|
}
|
|
9337
9394
|
}
|
|
9338
|
-
class
|
|
9395
|
+
class Me {
|
|
9339
9396
|
static get(e, t) {
|
|
9340
9397
|
switch (t.type) {
|
|
9341
9398
|
case F.DigitalContent:
|
|
@@ -9345,13 +9402,13 @@ class ye {
|
|
|
9345
9402
|
case F.Question:
|
|
9346
9403
|
return new Nn(e, t);
|
|
9347
9404
|
case F.Text:
|
|
9348
|
-
return new
|
|
9405
|
+
return new vn(e, t);
|
|
9349
9406
|
case F.Illustration:
|
|
9350
9407
|
return new Sn(e, t);
|
|
9351
9408
|
case F.Picture:
|
|
9352
9409
|
return new xn(e, t);
|
|
9353
9410
|
case F.Shape:
|
|
9354
|
-
return new
|
|
9411
|
+
return new Rn(e, t);
|
|
9355
9412
|
case F.Material:
|
|
9356
9413
|
return new Yn(e, t);
|
|
9357
9414
|
case F.Model:
|
|
@@ -9365,7 +9422,7 @@ class ye {
|
|
|
9365
9422
|
}
|
|
9366
9423
|
}
|
|
9367
9424
|
}
|
|
9368
|
-
const
|
|
9425
|
+
const yA = f`
|
|
9369
9426
|
fragment CreateDesignTransaction on Transaction {
|
|
9370
9427
|
id
|
|
9371
9428
|
designName
|
|
@@ -9391,7 +9448,7 @@ const fA = f`
|
|
|
9391
9448
|
}
|
|
9392
9449
|
}
|
|
9393
9450
|
`, Gn = f`
|
|
9394
|
-
${
|
|
9451
|
+
${yA}
|
|
9395
9452
|
mutation CreateDesign(
|
|
9396
9453
|
$name: String!
|
|
9397
9454
|
$layouts: [LayoutInput]!
|
|
@@ -9423,7 +9480,7 @@ const fA = f`
|
|
|
9423
9480
|
}
|
|
9424
9481
|
}
|
|
9425
9482
|
`, bn = f`
|
|
9426
|
-
${
|
|
9483
|
+
${yA}
|
|
9427
9484
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
9428
9485
|
designCreateMany(inputs: $inputs) {
|
|
9429
9486
|
id
|
|
@@ -9541,10 +9598,10 @@ const Jn = async (c) => {
|
|
|
9541
9598
|
});
|
|
9542
9599
|
}
|
|
9543
9600
|
return a;
|
|
9544
|
-
},
|
|
9545
|
-
var
|
|
9546
|
-
const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id),
|
|
9547
|
-
additionalExternalProductId: (
|
|
9601
|
+
}, MA = (c, e, t, A, a, n, i, s) => {
|
|
9602
|
+
var C, E;
|
|
9603
|
+
const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
|
|
9604
|
+
additionalExternalProductId: (C = c.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
|
|
9548
9605
|
additionalExternalVariantId: (E = c.integrationProduct) == null ? void 0 : E.additionalExternalVariantId,
|
|
9549
9606
|
baseCost: o,
|
|
9550
9607
|
designExternalVariants: c.designExternalVariants,
|
|
@@ -9564,8 +9621,8 @@ const Jn = async (c) => {
|
|
|
9564
9621
|
workflowViewerLink: c.workflowViewerLink || "",
|
|
9565
9622
|
workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
|
|
9566
9623
|
};
|
|
9567
|
-
return n && (
|
|
9568
|
-
},
|
|
9624
|
+
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
9625
|
+
}, SA = async (c, e, t, A, a, n, i, s, o, r) => {
|
|
9569
9626
|
var y;
|
|
9570
9627
|
await (async () => {
|
|
9571
9628
|
var L;
|
|
@@ -9580,19 +9637,19 @@ const Jn = async (c) => {
|
|
|
9580
9637
|
context: {
|
|
9581
9638
|
transactionOwnerId: S
|
|
9582
9639
|
}
|
|
9583
|
-
}),
|
|
9640
|
+
}), R = (L = x.data) == null ? void 0 : L.transactions[0].workflowState;
|
|
9584
9641
|
return x.errors ? (x.errors.forEach((T) => {
|
|
9585
9642
|
x.errors && console.log("Server Error:", T.message);
|
|
9586
|
-
}), null) :
|
|
9643
|
+
}), null) : R ?? null;
|
|
9587
9644
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
9588
|
-
const l = c.getPreviewService(),
|
|
9645
|
+
const l = c.getPreviewService(), d = (y = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, E = o && st(o, e, !0), w = o && st(o, e, !1), u = async (M) => {
|
|
9589
9646
|
const S = {};
|
|
9590
9647
|
let N = 0;
|
|
9591
9648
|
if (Object.keys(n).length > 0)
|
|
9592
9649
|
for (const x of Object.keys(n)) {
|
|
9593
|
-
const
|
|
9594
|
-
for (let T = 0; T <
|
|
9595
|
-
const W =
|
|
9650
|
+
const R = n[x], L = e.steps.find((T) => T.stepName === x);
|
|
9651
|
+
for (let T = 0; T < R.selections.length; ++T) {
|
|
9652
|
+
const W = R.selections[T];
|
|
9596
9653
|
if (L && (!M || L.option && (L.option.variants || []).length > 1 && !L.data.hideSelectionInCart && !L.data.hideSelectionsInCart)) {
|
|
9597
9654
|
const je = L.stepTitle;
|
|
9598
9655
|
S[je] ? S[je].push({
|
|
@@ -9613,16 +9670,16 @@ const Jn = async (c) => {
|
|
|
9613
9670
|
return [S, N];
|
|
9614
9671
|
}, [h] = await u(!0), I = Object.fromEntries(
|
|
9615
9672
|
Object.keys(h).map((M) => [M, h[M].map((S) => S.id)])
|
|
9616
|
-
), [
|
|
9617
|
-
Object.keys(
|
|
9673
|
+
), [D] = await u(!1), m = Object.fromEntries(
|
|
9674
|
+
Object.keys(D).map((M) => [
|
|
9618
9675
|
M,
|
|
9619
|
-
|
|
9676
|
+
D[M].map((S) => S.id)
|
|
9620
9677
|
])
|
|
9621
9678
|
);
|
|
9622
|
-
let
|
|
9623
|
-
if (
|
|
9624
|
-
const M = await (await fetch(
|
|
9625
|
-
|
|
9679
|
+
let Q = await s(C, a.id);
|
|
9680
|
+
if (Q) {
|
|
9681
|
+
const M = await (await fetch(Q)).blob();
|
|
9682
|
+
Q = (await U.uploadAsset(
|
|
9626
9683
|
{ name: `${a.id}-preview-image.png`, blob: M },
|
|
9627
9684
|
_e.Image,
|
|
9628
9685
|
!0,
|
|
@@ -9639,8 +9696,8 @@ const Jn = async (c) => {
|
|
|
9639
9696
|
})),
|
|
9640
9697
|
workflowId: e.id,
|
|
9641
9698
|
transactionId: a.id,
|
|
9642
|
-
useThreeDimPreview: !!
|
|
9643
|
-
previewImage:
|
|
9699
|
+
useThreeDimPreview: !!C,
|
|
9700
|
+
previewImage: Q
|
|
9644
9701
|
};
|
|
9645
9702
|
if (w) {
|
|
9646
9703
|
const S = [];
|
|
@@ -9650,7 +9707,7 @@ const Jn = async (c) => {
|
|
|
9650
9707
|
}
|
|
9651
9708
|
if (I) {
|
|
9652
9709
|
const S = [];
|
|
9653
|
-
for (const [N, x] of Object.entries(
|
|
9710
|
+
for (const [N, x] of Object.entries(m))
|
|
9654
9711
|
S.push({ key: N, ids: x });
|
|
9655
9712
|
M.selectedVariants = S;
|
|
9656
9713
|
}
|
|
@@ -9662,7 +9719,7 @@ const Jn = async (c) => {
|
|
|
9662
9719
|
}, Ln = async (c, e, t, A, a, n, i, s, o, r, g) => {
|
|
9663
9720
|
var u, h;
|
|
9664
9721
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9665
|
-
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata:
|
|
9722
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await SA(
|
|
9666
9723
|
c,
|
|
9667
9724
|
e,
|
|
9668
9725
|
t,
|
|
@@ -9674,20 +9731,20 @@ const Jn = async (c) => {
|
|
|
9674
9731
|
g
|
|
9675
9732
|
);
|
|
9676
9733
|
o("workflow.steps.finish.finalize.creatingDesign");
|
|
9677
|
-
const
|
|
9678
|
-
if (!(
|
|
9734
|
+
const C = await Jn(B), E = (u = C == null ? void 0 : C.transaction) == null ? void 0 : u.previewImageLink;
|
|
9735
|
+
if (!(C != null && C.transaction))
|
|
9679
9736
|
throw new Error("Failed to create design");
|
|
9680
9737
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
9681
|
-
const w =
|
|
9682
|
-
return
|
|
9738
|
+
const w = C.transaction;
|
|
9739
|
+
return MA(
|
|
9683
9740
|
w,
|
|
9684
9741
|
a,
|
|
9685
9742
|
e,
|
|
9686
9743
|
l,
|
|
9687
|
-
|
|
9688
|
-
|
|
9744
|
+
C == null ? void 0 : C.sku,
|
|
9745
|
+
d,
|
|
9689
9746
|
E,
|
|
9690
|
-
(h =
|
|
9747
|
+
(h = C == null ? void 0 : C.processExecution) == null ? void 0 : h.id
|
|
9691
9748
|
);
|
|
9692
9749
|
}, zn = async (c, e, t) => {
|
|
9693
9750
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -9707,7 +9764,7 @@ const Jn = async (c) => {
|
|
|
9707
9764
|
o.errors && console.log("Server Error:", g.message);
|
|
9708
9765
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
|
|
9709
9766
|
})(), n = await Promise.all(
|
|
9710
|
-
c.map(async (s, o) => await
|
|
9767
|
+
c.map(async (s, o) => await SA(
|
|
9711
9768
|
s.workflowManager,
|
|
9712
9769
|
s.workflow,
|
|
9713
9770
|
s.layouts,
|
|
@@ -9727,7 +9784,7 @@ const Jn = async (c) => {
|
|
|
9727
9784
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
9728
9785
|
var l;
|
|
9729
9786
|
const r = c[o], g = n[o], B = s.transaction;
|
|
9730
|
-
return
|
|
9787
|
+
return MA(
|
|
9731
9788
|
B,
|
|
9732
9789
|
r.product,
|
|
9733
9790
|
r.workflow,
|
|
@@ -9823,7 +9880,7 @@ const qe = new Kn(), jn = f`
|
|
|
9823
9880
|
}
|
|
9824
9881
|
`;
|
|
9825
9882
|
var Vn = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(Vn || {});
|
|
9826
|
-
class
|
|
9883
|
+
class Se {
|
|
9827
9884
|
constructor(e, t) {
|
|
9828
9885
|
var a;
|
|
9829
9886
|
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = $t(async () => {
|
|
@@ -9845,7 +9902,7 @@ class Me {
|
|
|
9845
9902
|
throw new Error("No Workflow ID provided.");
|
|
9846
9903
|
this.client = e;
|
|
9847
9904
|
const A = t.layouts;
|
|
9848
|
-
this.commandContext = new
|
|
9905
|
+
this.commandContext = new $A(), this.commandContext.initialize(A, t.reloadedState), this.isReadOnly = t.transaction.isOrdered || !!t.readOnly, this.workflowManager = new Mn(
|
|
9849
9906
|
this,
|
|
9850
9907
|
e,
|
|
9851
9908
|
t.workflow,
|
|
@@ -9911,9 +9968,9 @@ class Me {
|
|
|
9911
9968
|
}
|
|
9912
9969
|
let n = 2048;
|
|
9913
9970
|
t && t <= 2048 && (n = t);
|
|
9914
|
-
const i =
|
|
9915
|
-
var
|
|
9916
|
-
return ((
|
|
9971
|
+
const i = Ue(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((D) => {
|
|
9972
|
+
var m;
|
|
9973
|
+
return ((m = D.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
|
|
9917
9974
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
9918
9975
|
x: g.layoutState.layout.previewRegion.left,
|
|
9919
9976
|
y: g.layoutState.layout.previewRegion.top,
|
|
@@ -9924,19 +9981,19 @@ class Me {
|
|
|
9924
9981
|
y: 0,
|
|
9925
9982
|
width: g.layoutState.layout.width,
|
|
9926
9983
|
height: g.layoutState.layout.height
|
|
9927
|
-
}, l = this.commandContext.getLayoutById(g.layoutState.layout.id),
|
|
9928
|
-
if (!
|
|
9984
|
+
}, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
|
|
9985
|
+
if (!d)
|
|
9929
9986
|
throw new Ke("Failed to obtain 2D context for preview image creation");
|
|
9930
|
-
const
|
|
9987
|
+
const C = Lt(l.layoutState.layout, l.layoutState.elements, {
|
|
9931
9988
|
renderingConfiguration: {
|
|
9932
9989
|
purpose: zt.Print,
|
|
9933
9990
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
9934
9991
|
}
|
|
9935
|
-
}), E = Kt(
|
|
9936
|
-
await (await Zt.from(
|
|
9992
|
+
}), E = Kt(C);
|
|
9993
|
+
await (await Zt.from(d, E, {
|
|
9937
9994
|
anonymousCrossOrigin: !0,
|
|
9938
9995
|
ignoreDimensions: !1,
|
|
9939
|
-
createCanvas:
|
|
9996
|
+
createCanvas: Ue,
|
|
9940
9997
|
createImage: jt,
|
|
9941
9998
|
DOMParser: Vt(),
|
|
9942
9999
|
fetch: ot
|
|
@@ -9951,7 +10008,7 @@ class Me {
|
|
|
9951
10008
|
const A = this.cachedStepHandles.get(t.stepName);
|
|
9952
10009
|
if (A)
|
|
9953
10010
|
return A;
|
|
9954
|
-
const a =
|
|
10011
|
+
const a = Me.get(this.getWorkflowManager(), t);
|
|
9955
10012
|
return this.cachedStepHandles.set(t.stepName, a), a;
|
|
9956
10013
|
}
|
|
9957
10014
|
getSteps() {
|
|
@@ -10029,17 +10086,17 @@ class Me {
|
|
|
10029
10086
|
i.forEach((r) => {
|
|
10030
10087
|
const g = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
10031
10088
|
B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), s.forEach((l) => {
|
|
10032
|
-
const
|
|
10033
|
-
|
|
10034
|
-
const E = o(
|
|
10089
|
+
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
10090
|
+
d !== void 0 && d.forEach((C) => {
|
|
10091
|
+
const E = o(C), w = g.has(JSON.stringify(C));
|
|
10035
10092
|
if (w && (E == null ? void 0 : E.getType()) === "Option") {
|
|
10036
10093
|
const u = l.getCurrentVariant();
|
|
10037
10094
|
if (!u)
|
|
10038
10095
|
return;
|
|
10039
|
-
r.selectVariant(u), g.delete(JSON.stringify(
|
|
10096
|
+
r.selectVariant(u), g.delete(JSON.stringify(C));
|
|
10040
10097
|
} else if (w && (E == null ? void 0 : E.getType()) === "Text") {
|
|
10041
10098
|
const u = l.getText();
|
|
10042
|
-
r.setText(u), g.delete(JSON.stringify(
|
|
10099
|
+
r.setText(u), g.delete(JSON.stringify(C));
|
|
10043
10100
|
}
|
|
10044
10101
|
});
|
|
10045
10102
|
}));
|
|
@@ -10048,10 +10105,10 @@ class Me {
|
|
|
10048
10105
|
getStepByName(e) {
|
|
10049
10106
|
const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
|
|
10050
10107
|
if (!(!t || !this.stepHasHandle(t)))
|
|
10051
|
-
return
|
|
10108
|
+
return Me.get(this.getWorkflowManager(), t);
|
|
10052
10109
|
}
|
|
10053
10110
|
getStepsByType(e) {
|
|
10054
|
-
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) =>
|
|
10111
|
+
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Me.get(this.getWorkflowManager(), t));
|
|
10055
10112
|
}
|
|
10056
10113
|
getStepsByScene(e) {
|
|
10057
10114
|
if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
|
|
@@ -10060,7 +10117,7 @@ class Me {
|
|
|
10060
10117
|
);
|
|
10061
10118
|
return e.stepIds.map(
|
|
10062
10119
|
(A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
|
|
10063
|
-
).filter((A) => this.stepHasHandle(A)).map((A) =>
|
|
10120
|
+
).filter((A) => this.stepHasHandle(A)).map((A) => Me.get(this.getWorkflowManager(), A));
|
|
10064
10121
|
}
|
|
10065
10122
|
async attachCustomerDetails(e) {
|
|
10066
10123
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
@@ -10181,7 +10238,7 @@ class Me {
|
|
|
10181
10238
|
), this.checkForPriceBreakChanges();
|
|
10182
10239
|
const t = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), A = this.getWorkflowManager().getTransaction(), a = t.get(A.id) || void 0;
|
|
10183
10240
|
await P.getShadowGraphqlClient().mutate({
|
|
10184
|
-
mutation:
|
|
10241
|
+
mutation: ba,
|
|
10185
10242
|
variables: {
|
|
10186
10243
|
id: A.id,
|
|
10187
10244
|
quantity: e
|
|
@@ -10221,47 +10278,47 @@ const Wn = [
|
|
|
10221
10278
|
], Xn = async (c, e, t) => {
|
|
10222
10279
|
const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
|
|
10223
10280
|
s.searchParams.append("video", St(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10224
|
-
const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (
|
|
10225
|
-
const
|
|
10226
|
-
if (!
|
|
10227
|
-
throw new z(
|
|
10281
|
+
const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (d) => {
|
|
10282
|
+
const C = c.find((w) => w.panelId === d.panelId);
|
|
10283
|
+
if (!C)
|
|
10284
|
+
throw new z(d);
|
|
10228
10285
|
const E = J();
|
|
10229
10286
|
return new O(
|
|
10230
10287
|
{
|
|
10231
10288
|
id: E,
|
|
10232
10289
|
src: g,
|
|
10233
10290
|
type: G.Image,
|
|
10234
|
-
y:
|
|
10235
|
-
x:
|
|
10236
|
-
width:
|
|
10237
|
-
height:
|
|
10291
|
+
y: d.top,
|
|
10292
|
+
x: d.left,
|
|
10293
|
+
width: d.width,
|
|
10294
|
+
height: d.height,
|
|
10238
10295
|
rotation: 0
|
|
10239
10296
|
},
|
|
10240
|
-
|
|
10297
|
+
C
|
|
10241
10298
|
);
|
|
10242
10299
|
}, l = t.data.regions;
|
|
10243
10300
|
try {
|
|
10244
10301
|
return l.map(B);
|
|
10245
|
-
} catch (
|
|
10246
|
-
return console.error(
|
|
10302
|
+
} catch (d) {
|
|
10303
|
+
return console.error(d), [];
|
|
10247
10304
|
}
|
|
10248
10305
|
}, qn = async (c, e, t, A) => {
|
|
10249
10306
|
const a = t.data, n = a.assetUrl, i = await tt(n);
|
|
10250
10307
|
try {
|
|
10251
|
-
const s =
|
|
10308
|
+
const s = _A(a, A.option);
|
|
10252
10309
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
10253
10310
|
const o = async (r) => {
|
|
10254
10311
|
var E;
|
|
10255
|
-
const g = await
|
|
10312
|
+
const g = await ea(
|
|
10256
10313
|
r || {
|
|
10257
10314
|
width: 1,
|
|
10258
10315
|
height: 1
|
|
10259
10316
|
},
|
|
10260
10317
|
(E = s == null ? void 0 : s.asset) == null ? void 0 : E.fileLink
|
|
10261
|
-
), B = await rt(g), l = J(),
|
|
10262
|
-
if (!
|
|
10318
|
+
), B = await rt(g), l = J(), d = c.find((w) => w.panelId === r.panelId);
|
|
10319
|
+
if (!d)
|
|
10263
10320
|
throw new z(r);
|
|
10264
|
-
const
|
|
10321
|
+
const C = ct(i, B, {
|
|
10265
10322
|
scale: a.scale,
|
|
10266
10323
|
left: a.x,
|
|
10267
10324
|
top: a.y
|
|
@@ -10289,9 +10346,9 @@ const Wn = [
|
|
|
10289
10346
|
scaleY: r.height / B.height,
|
|
10290
10347
|
pattern: void 0
|
|
10291
10348
|
},
|
|
10292
|
-
|
|
10349
|
+
d
|
|
10293
10350
|
),
|
|
10294
|
-
new Ot(l, i,
|
|
10351
|
+
new Ot(l, i, C)
|
|
10295
10352
|
];
|
|
10296
10353
|
};
|
|
10297
10354
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
@@ -10299,50 +10356,50 @@ const Wn = [
|
|
|
10299
10356
|
return console.error(s), [];
|
|
10300
10357
|
}
|
|
10301
10358
|
}, Zn = async (c, e, t, A) => {
|
|
10302
|
-
var
|
|
10359
|
+
var m, Q;
|
|
10303
10360
|
const a = t.data, n = A.option;
|
|
10304
10361
|
if (!n)
|
|
10305
10362
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10306
|
-
const i = ((
|
|
10363
|
+
const i = ((m = n.variants) == null ? void 0 : m.find((p) => p.id === a.illustrationVariantId)) || Le(n);
|
|
10307
10364
|
if (!i)
|
|
10308
10365
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
10309
10366
|
if (!i.asset)
|
|
10310
10367
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
10311
10368
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10312
|
-
const s = (
|
|
10369
|
+
const s = (Q = i.asset) == null ? void 0 : Q.fileLink;
|
|
10313
10370
|
if (!s)
|
|
10314
10371
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
10315
|
-
const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "",
|
|
10316
|
-
if (!
|
|
10372
|
+
const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", C = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
10373
|
+
if (!C)
|
|
10317
10374
|
return console.error("Failed to read SVG."), [];
|
|
10318
|
-
Xt(
|
|
10375
|
+
Xt(C);
|
|
10319
10376
|
const E = {};
|
|
10320
|
-
|
|
10321
|
-
Wn.includes(
|
|
10322
|
-
const y =
|
|
10377
|
+
ta(C, (p) => {
|
|
10378
|
+
Wn.includes(p.tagName) && !p.attributes.getNamedItem("fill") && p.setAttribute("fill", "#000000");
|
|
10379
|
+
const y = p.attributes.getNamedItem("fill");
|
|
10323
10380
|
if (y && y.value !== "none") {
|
|
10324
10381
|
const S = y.value, x = `spiff-fill-${S.replace(/\W/g, "")}`;
|
|
10325
|
-
|
|
10382
|
+
p.classList.add(x), E[x] = { browserValue: S };
|
|
10326
10383
|
}
|
|
10327
|
-
const M =
|
|
10384
|
+
const M = p.attributes.getNamedItem("stroke");
|
|
10328
10385
|
if (M && M.value !== "none") {
|
|
10329
10386
|
const S = M.value, x = `spiff-stroke-${S.replace(/\W/g, "")}`;
|
|
10330
|
-
|
|
10387
|
+
p.classList.add(x), E[x] = { browserValue: S };
|
|
10331
10388
|
}
|
|
10332
10389
|
});
|
|
10333
|
-
const u = qt().serializeToString(
|
|
10390
|
+
const u = qt().serializeToString(C), h = a.colors;
|
|
10334
10391
|
if (h) {
|
|
10335
|
-
for (const [
|
|
10392
|
+
for (const [p, y] of Object.entries(E))
|
|
10336
10393
|
for (const M of Object.keys(h))
|
|
10337
10394
|
if (y.browserValue === M) {
|
|
10338
|
-
E[
|
|
10395
|
+
E[p] = { browserValue: h[M] };
|
|
10339
10396
|
break;
|
|
10340
10397
|
}
|
|
10341
10398
|
}
|
|
10342
|
-
const I = (
|
|
10343
|
-
const y = c.find((S) => S.panelId ===
|
|
10399
|
+
const I = (p) => {
|
|
10400
|
+
const y = c.find((S) => S.panelId === p.panelId);
|
|
10344
10401
|
if (!y)
|
|
10345
|
-
throw new z(
|
|
10402
|
+
throw new z(p);
|
|
10346
10403
|
const M = J();
|
|
10347
10404
|
return new O(
|
|
10348
10405
|
{
|
|
@@ -10350,25 +10407,25 @@ const Wn = [
|
|
|
10350
10407
|
id: M,
|
|
10351
10408
|
svg: u,
|
|
10352
10409
|
type: G.Illustration,
|
|
10353
|
-
y:
|
|
10354
|
-
x:
|
|
10355
|
-
rotation:
|
|
10356
|
-
width:
|
|
10357
|
-
height:
|
|
10358
|
-
layer:
|
|
10359
|
-
layerIndex:
|
|
10360
|
-
immutable:
|
|
10410
|
+
y: p.top,
|
|
10411
|
+
x: p.left,
|
|
10412
|
+
rotation: p.rotation,
|
|
10413
|
+
width: p.width,
|
|
10414
|
+
height: p.height,
|
|
10415
|
+
layer: p.layer,
|
|
10416
|
+
layerIndex: p.layerIndex,
|
|
10417
|
+
immutable: p.immutable
|
|
10361
10418
|
},
|
|
10362
10419
|
y
|
|
10363
10420
|
);
|
|
10364
|
-
},
|
|
10421
|
+
}, D = A.data.regions;
|
|
10365
10422
|
try {
|
|
10366
|
-
return
|
|
10367
|
-
} catch (
|
|
10368
|
-
return console.error(
|
|
10423
|
+
return D.map(I);
|
|
10424
|
+
} catch (p) {
|
|
10425
|
+
return console.error(p), [];
|
|
10369
10426
|
}
|
|
10370
10427
|
}, $n = async (c, e, t) => {
|
|
10371
|
-
const A = await
|
|
10428
|
+
const A = await fA(t.data.module), a = e.data, n = (s, o) => {
|
|
10372
10429
|
const r = c.find((B) => B.panelId === o.panelId);
|
|
10373
10430
|
if (!r)
|
|
10374
10431
|
throw new z(o);
|
|
@@ -10412,13 +10469,13 @@ const Wn = [
|
|
|
10412
10469
|
if (!s)
|
|
10413
10470
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
10414
10471
|
const o = (l) => {
|
|
10415
|
-
const
|
|
10416
|
-
if (!
|
|
10472
|
+
const d = c.find((E) => E.panelId === l.panelId);
|
|
10473
|
+
if (!d)
|
|
10417
10474
|
throw new z(l);
|
|
10418
|
-
const
|
|
10475
|
+
const C = J();
|
|
10419
10476
|
return new O(
|
|
10420
10477
|
{
|
|
10421
|
-
id:
|
|
10478
|
+
id: C,
|
|
10422
10479
|
src: s,
|
|
10423
10480
|
type: G.Image,
|
|
10424
10481
|
y: l.top,
|
|
@@ -10431,7 +10488,7 @@ const Wn = [
|
|
|
10431
10488
|
immutable: l.immutable,
|
|
10432
10489
|
preserveAspectRatio: "none"
|
|
10433
10490
|
},
|
|
10434
|
-
|
|
10491
|
+
d
|
|
10435
10492
|
);
|
|
10436
10493
|
}, r = A.data.regions;
|
|
10437
10494
|
try {
|
|
@@ -10472,10 +10529,10 @@ const Wn = [
|
|
|
10472
10529
|
fill="${i == null ? void 0 : i.color}"
|
|
10473
10530
|
/>
|
|
10474
10531
|
</svg>
|
|
10475
|
-
`,
|
|
10532
|
+
`, C = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
|
|
10476
10533
|
return new O(
|
|
10477
10534
|
{
|
|
10478
|
-
colors:
|
|
10535
|
+
colors: C,
|
|
10479
10536
|
id: E,
|
|
10480
10537
|
svg: l,
|
|
10481
10538
|
type: G.Illustration,
|
|
@@ -10531,16 +10588,16 @@ const Wn = [
|
|
|
10531
10588
|
}
|
|
10532
10589
|
else {
|
|
10533
10590
|
const r = await $(n, !0), g = (B) => {
|
|
10534
|
-
const l = /<svg.*?<\/svg>/s,
|
|
10591
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Wt().parseFromString(C, "image/svg+xml").firstElementChild;
|
|
10535
10592
|
if (!u)
|
|
10536
|
-
throw new
|
|
10593
|
+
throw new Ce("Failed to read SVG.");
|
|
10537
10594
|
return Xt(u), qt().serializeToString(u);
|
|
10538
10595
|
};
|
|
10539
10596
|
o.forEach((B) => {
|
|
10540
|
-
const l = c.find((
|
|
10597
|
+
const l = c.find((C) => C.panelId === B.panelId);
|
|
10541
10598
|
if (!l)
|
|
10542
10599
|
throw new z(B);
|
|
10543
|
-
const
|
|
10600
|
+
const d = {
|
|
10544
10601
|
id: J(),
|
|
10545
10602
|
src: n,
|
|
10546
10603
|
asset_key: n,
|
|
@@ -10559,7 +10616,7 @@ const Wn = [
|
|
|
10559
10616
|
productOverlay: e.type === F.ProductOverlay ? !0 : void 0,
|
|
10560
10617
|
excludeFromExport: e.data.excludeFromPrint
|
|
10561
10618
|
};
|
|
10562
|
-
A.push(new O(
|
|
10619
|
+
A.push(new O(d, l));
|
|
10563
10620
|
});
|
|
10564
10621
|
}
|
|
10565
10622
|
return A;
|
|
@@ -10569,7 +10626,7 @@ const Wn = [
|
|
|
10569
10626
|
const w = A.option;
|
|
10570
10627
|
if (!w)
|
|
10571
10628
|
return;
|
|
10572
|
-
const u = ((I = w.variants) == null ? void 0 : I.find((
|
|
10629
|
+
const u = ((I = w.variants) == null ? void 0 : I.find((D) => D.id === n.fontVariantId)) || Le(w);
|
|
10573
10630
|
if (!u || !u.asset)
|
|
10574
10631
|
return;
|
|
10575
10632
|
e[A.stepName] = { selectedVariants: [u] };
|
|
@@ -10588,13 +10645,13 @@ const Wn = [
|
|
|
10588
10645
|
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = At(B, {
|
|
10589
10646
|
vertical: A.data.vertical,
|
|
10590
10647
|
uppercase: A.data.uppercase
|
|
10591
|
-
}),
|
|
10648
|
+
}), d = async (w) => {
|
|
10592
10649
|
const u = w.colorOption;
|
|
10593
10650
|
if (!u)
|
|
10594
10651
|
return;
|
|
10595
10652
|
const h = j.getDefaultVariant(u);
|
|
10596
10653
|
return h == null ? void 0 : h.color;
|
|
10597
|
-
},
|
|
10654
|
+
}, C = n.color || await d(A.data), E = A.data.regions;
|
|
10598
10655
|
for (const w of E) {
|
|
10599
10656
|
const u = c.find((I) => I.panelId === w.panelId);
|
|
10600
10657
|
if (!u)
|
|
@@ -10604,7 +10661,7 @@ const Wn = [
|
|
|
10604
10661
|
id: J(),
|
|
10605
10662
|
align: s(A.data),
|
|
10606
10663
|
curved: A.data.curved,
|
|
10607
|
-
fill: n.color ||
|
|
10664
|
+
fill: n.color || C || "#000000",
|
|
10608
10665
|
fontData: g,
|
|
10609
10666
|
fontSize: A.data.size || i,
|
|
10610
10667
|
height: w.height,
|
|
@@ -10621,7 +10678,7 @@ const Wn = [
|
|
|
10621
10678
|
y: w.top
|
|
10622
10679
|
};
|
|
10623
10680
|
if (g) {
|
|
10624
|
-
const [I,
|
|
10681
|
+
const [I, D] = Ne(
|
|
10625
10682
|
A.data.size || i,
|
|
10626
10683
|
g,
|
|
10627
10684
|
w,
|
|
@@ -10642,7 +10699,7 @@ const Wn = [
|
|
|
10642
10699
|
{
|
|
10643
10700
|
...h,
|
|
10644
10701
|
fontSize: I,
|
|
10645
|
-
text: h.curved ? h.text : (
|
|
10702
|
+
text: h.curved ? h.text : (D || []).join(`
|
|
10646
10703
|
`)
|
|
10647
10704
|
},
|
|
10648
10705
|
u
|
|
@@ -10714,7 +10771,7 @@ const Wn = [
|
|
|
10714
10771
|
);
|
|
10715
10772
|
return a;
|
|
10716
10773
|
};
|
|
10717
|
-
class
|
|
10774
|
+
class Ye {
|
|
10718
10775
|
constructor(e) {
|
|
10719
10776
|
this.handleCompleteRender = null;
|
|
10720
10777
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -10737,7 +10794,7 @@ class Se {
|
|
|
10737
10794
|
}
|
|
10738
10795
|
const ii = () => new Promise((c, e) => {
|
|
10739
10796
|
try {
|
|
10740
|
-
const A =
|
|
10797
|
+
const A = Ue().getContext("webgl2");
|
|
10741
10798
|
c(!!A);
|
|
10742
10799
|
} catch {
|
|
10743
10800
|
c(!1);
|
|
@@ -10850,14 +10907,14 @@ class ri extends lA {
|
|
|
10850
10907
|
* a loose target but should be kept in mind when making changes.
|
|
10851
10908
|
*/
|
|
10852
10909
|
async execute() {
|
|
10853
|
-
const e = this.layouts.find((
|
|
10910
|
+
const e = this.layouts.find((d) => d.layoutState.layout.id === this.layoutId);
|
|
10854
10911
|
if (!e)
|
|
10855
10912
|
return;
|
|
10856
10913
|
const t = e.layoutState.elements || [], A = e.layoutState.layout.width, a = e.layoutState.layout.height, n = A === 1 || a === 1 ? { width: 1, height: 1 } : this.getDynamicTextureResolution(), i = n.width, s = n.height;
|
|
10857
10914
|
let o, r;
|
|
10858
10915
|
if (this.nonPOTSupport) {
|
|
10859
|
-
const
|
|
10860
|
-
A / a <
|
|
10916
|
+
const d = i / s;
|
|
10917
|
+
A / a < d ? (o = i, r = a * (i / A)) : (o = A * (s / a), r = s);
|
|
10861
10918
|
const E = this.resizeFit({ width: o, height: r });
|
|
10862
10919
|
o = E.width, r = E.height;
|
|
10863
10920
|
} else
|
|
@@ -10871,7 +10928,7 @@ class ri extends lA {
|
|
|
10871
10928
|
ignoreClear: !0,
|
|
10872
10929
|
ignoreMouse: !0,
|
|
10873
10930
|
enableRedraw: !1,
|
|
10874
|
-
createCanvas:
|
|
10931
|
+
createCanvas: Ue,
|
|
10875
10932
|
createImage: jt,
|
|
10876
10933
|
DOMParser: Vt(),
|
|
10877
10934
|
fetch: ot
|
|
@@ -10895,7 +10952,7 @@ const Qs = (c, e) => {
|
|
|
10895
10952
|
serializableWorkflow: { steps: [] },
|
|
10896
10953
|
layouts: {}
|
|
10897
10954
|
};
|
|
10898
|
-
a = new k(t.map((o) => new
|
|
10955
|
+
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10899
10956
|
const i = await ni(c, e, t, A);
|
|
10900
10957
|
return new k(i).apply(a);
|
|
10901
10958
|
}, ci = f`
|
|
@@ -10942,7 +10999,7 @@ const Qs = (c, e) => {
|
|
|
10942
10999
|
name
|
|
10943
11000
|
}
|
|
10944
11001
|
}
|
|
10945
|
-
`,
|
|
11002
|
+
`, YA = f`
|
|
10946
11003
|
${ci}
|
|
10947
11004
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
10948
11005
|
id
|
|
@@ -10952,8 +11009,8 @@ const Qs = (c, e) => {
|
|
|
10952
11009
|
...ProductFields
|
|
10953
11010
|
}
|
|
10954
11011
|
}
|
|
10955
|
-
`,
|
|
10956
|
-
${c ?
|
|
11012
|
+
`, PA = (c) => f`
|
|
11013
|
+
${c ? YA : ""}
|
|
10957
11014
|
fragment ProductCollectionFields on ProductCollection {
|
|
10958
11015
|
id
|
|
10959
11016
|
name
|
|
@@ -10998,7 +11055,7 @@ const Qs = (c, e) => {
|
|
|
10998
11055
|
}
|
|
10999
11056
|
}
|
|
11000
11057
|
`, gi = (c) => f`
|
|
11001
|
-
${
|
|
11058
|
+
${PA(c)}
|
|
11002
11059
|
query GetBundle($id: String!) {
|
|
11003
11060
|
bundles(ids: [$id]) {
|
|
11004
11061
|
id
|
|
@@ -11060,8 +11117,8 @@ const Qs = (c, e) => {
|
|
|
11060
11117
|
}
|
|
11061
11118
|
}
|
|
11062
11119
|
}
|
|
11063
|
-
`,
|
|
11064
|
-
${
|
|
11120
|
+
`, di = f`
|
|
11121
|
+
${YA}
|
|
11065
11122
|
query GetProductCollectionProducts($id: String!) {
|
|
11066
11123
|
productCollections(ids: [$id]) {
|
|
11067
11124
|
id
|
|
@@ -11070,8 +11127,8 @@ const Qs = (c, e) => {
|
|
|
11070
11127
|
}
|
|
11071
11128
|
}
|
|
11072
11129
|
}
|
|
11073
|
-
`,
|
|
11074
|
-
${
|
|
11130
|
+
`, Ci = (c) => f`
|
|
11131
|
+
${PA(c)}
|
|
11075
11132
|
mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
|
|
11076
11133
|
bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
|
|
11077
11134
|
id
|
|
@@ -11243,7 +11300,7 @@ class fi {
|
|
|
11243
11300
|
);
|
|
11244
11301
|
case oe.Option: {
|
|
11245
11302
|
const t = e.entityId ? await j.getOption(e.entityId) : void 0;
|
|
11246
|
-
return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new
|
|
11303
|
+
return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new xA(this.bundle, e, t);
|
|
11247
11304
|
}
|
|
11248
11305
|
case oe.Text:
|
|
11249
11306
|
return new yi(this.bundle, e);
|
|
@@ -11481,7 +11538,7 @@ class yi extends pt {
|
|
|
11481
11538
|
await Promise.all(a);
|
|
11482
11539
|
}
|
|
11483
11540
|
}
|
|
11484
|
-
class
|
|
11541
|
+
class xA extends pt {
|
|
11485
11542
|
constructor(e, t, A) {
|
|
11486
11543
|
super(e, t), this.optionResource = A;
|
|
11487
11544
|
}
|
|
@@ -11536,14 +11593,14 @@ class YA extends pt {
|
|
|
11536
11593
|
if (!t)
|
|
11537
11594
|
return Promise.resolve();
|
|
11538
11595
|
const A = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((i) => i.id === t);
|
|
11539
|
-
return A ? this.applyVariantSelection(new Z(A), e) : Promise.resolve();
|
|
11596
|
+
return A ? (console.log("Applying Global Variant: ", A), this.applyVariantSelection(new Z(A), e)) : Promise.resolve();
|
|
11540
11597
|
}
|
|
11541
11598
|
async applyVariantSelection(e, t) {
|
|
11542
11599
|
const a = this.getSharedSteps(t).map((n) => n.selectVariant(e));
|
|
11543
11600
|
await Promise.all(a);
|
|
11544
11601
|
}
|
|
11545
11602
|
}
|
|
11546
|
-
class Gt extends
|
|
11603
|
+
class Gt extends xA {
|
|
11547
11604
|
constructor(e, t, A) {
|
|
11548
11605
|
super(e, t, A);
|
|
11549
11606
|
}
|
|
@@ -11563,7 +11620,7 @@ class Gt extends YA {
|
|
|
11563
11620
|
if (!t)
|
|
11564
11621
|
return Promise.resolve();
|
|
11565
11622
|
const A = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((i) => i.id === t);
|
|
11566
|
-
return A ? this.applyColorVariant(new Z(A), e) : Promise.resolve();
|
|
11623
|
+
return A ? (console.log("Applying Global Variant: ", A), this.applyColorVariant(new Z(A), e)) : Promise.resolve();
|
|
11567
11624
|
}
|
|
11568
11625
|
async applyColorVariant(e, t) {
|
|
11569
11626
|
const a = this.getSharedSteps(t).map((n) => {
|
|
@@ -11882,7 +11939,7 @@ class Ni {
|
|
|
11882
11939
|
if (this.collection.productCollectionProducts)
|
|
11883
11940
|
return this.collection.productCollectionProducts.map((t) => new Ze(t));
|
|
11884
11941
|
const e = await P.getShadowGraphqlClient().query({
|
|
11885
|
-
query:
|
|
11942
|
+
query: di,
|
|
11886
11943
|
variables: {
|
|
11887
11944
|
id: this.getId()
|
|
11888
11945
|
},
|
|
@@ -11893,7 +11950,7 @@ class Ni {
|
|
|
11893
11950
|
}
|
|
11894
11951
|
getTransformCollection() {
|
|
11895
11952
|
if (this.collection.transformCollection)
|
|
11896
|
-
return new
|
|
11953
|
+
return new Ri(this.collection.transformCollection);
|
|
11897
11954
|
}
|
|
11898
11955
|
/**
|
|
11899
11956
|
* The raw collection resource. This is generally not needed and should be avoided.
|
|
@@ -12045,7 +12102,7 @@ class Ee {
|
|
|
12045
12102
|
return this.workflow.imageUrl;
|
|
12046
12103
|
}
|
|
12047
12104
|
}
|
|
12048
|
-
class
|
|
12105
|
+
class Ri {
|
|
12049
12106
|
constructor(e) {
|
|
12050
12107
|
this.collection = e;
|
|
12051
12108
|
}
|
|
@@ -12065,10 +12122,10 @@ class vi {
|
|
|
12065
12122
|
* @returns The transforms in this collection.
|
|
12066
12123
|
*/
|
|
12067
12124
|
getTransforms() {
|
|
12068
|
-
return this.collection.transforms.map((e) => new
|
|
12125
|
+
return this.collection.transforms.map((e) => new vi(e));
|
|
12069
12126
|
}
|
|
12070
12127
|
}
|
|
12071
|
-
class
|
|
12128
|
+
class vi {
|
|
12072
12129
|
constructor(e) {
|
|
12073
12130
|
this.transform = e;
|
|
12074
12131
|
}
|
|
@@ -12175,19 +12232,20 @@ class bt {
|
|
|
12175
12232
|
return this.productCollection ? new Ni(this.productCollection) : void 0;
|
|
12176
12233
|
}
|
|
12177
12234
|
async addWorkflowExperience(e) {
|
|
12178
|
-
e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e);
|
|
12235
|
+
e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e), await e.getWorkflowManager().getInitializationPromise();
|
|
12179
12236
|
const t = await this.getGlobalProperties();
|
|
12180
|
-
|
|
12237
|
+
for (const A of t)
|
|
12238
|
+
await A.applyGlobalState([e]);
|
|
12181
12239
|
}
|
|
12182
12240
|
async addWorkflowExperiences(e) {
|
|
12183
|
-
const t = e.map((
|
|
12184
|
-
(
|
|
12241
|
+
const t = e.map((s) => s.getWorkflowManager().getTransaction().id), A = t.map(
|
|
12242
|
+
(s) => this.workflowExperiences.find((o) => o.getWorkflowManager().getTransaction().id === s)
|
|
12185
12243
|
);
|
|
12186
|
-
if (A.some((
|
|
12244
|
+
if (A.some((s) => !!s))
|
|
12187
12245
|
throw new Error(
|
|
12188
|
-
"Unable to add transaction to bundle - Already Exists: " + A.filter((
|
|
12246
|
+
"Unable to add transaction to bundle - Already Exists: " + A.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
|
|
12189
12247
|
);
|
|
12190
|
-
const a = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((
|
|
12248
|
+
const a = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((s) => a.get(s));
|
|
12191
12249
|
await P.getShadowGraphqlClient().mutate({
|
|
12192
12250
|
mutation: hi,
|
|
12193
12251
|
variables: {
|
|
@@ -12198,17 +12256,18 @@ class bt {
|
|
|
12198
12256
|
context: {
|
|
12199
12257
|
bundleOwnerId: this.ownerId
|
|
12200
12258
|
}
|
|
12201
|
-
}).catch((
|
|
12202
|
-
console.error(
|
|
12203
|
-
}), this.workflowExperiences.push(...e)
|
|
12204
|
-
|
|
12205
|
-
|
|
12206
|
-
|
|
12207
|
-
|
|
12208
|
-
|
|
12209
|
-
|
|
12210
|
-
|
|
12211
|
-
|
|
12259
|
+
}).catch((s) => {
|
|
12260
|
+
console.error(s);
|
|
12261
|
+
}), this.workflowExperiences.push(...e);
|
|
12262
|
+
const i = async () => {
|
|
12263
|
+
for (const o of e)
|
|
12264
|
+
o.setBundle(this), await this.injectExperienceIntoPreviewService(o);
|
|
12265
|
+
await Promise.all(e.map((o) => o.getWorkflowManager().getInitializationPromise()));
|
|
12266
|
+
const s = await this.getGlobalProperties();
|
|
12267
|
+
for (const o of s)
|
|
12268
|
+
await o.applyGlobalState(e);
|
|
12269
|
+
};
|
|
12270
|
+
await Promise.all([this.updateTransactionOrder(), i()]), this.workflowExperiences.forEach((s) => s.checkForPriceBreakChanges());
|
|
12212
12271
|
}
|
|
12213
12272
|
async appendWorkflowExperience(e, t = !0) {
|
|
12214
12273
|
const A = e.getWorkflowManager().getTransaction().id;
|
|
@@ -12348,7 +12407,7 @@ class bt {
|
|
|
12348
12407
|
variables: {
|
|
12349
12408
|
id: this.id,
|
|
12350
12409
|
details: e,
|
|
12351
|
-
type: t ||
|
|
12410
|
+
type: t || be.Owner
|
|
12352
12411
|
},
|
|
12353
12412
|
context: {
|
|
12354
12413
|
bundleOwnerId: this.ownerId
|
|
@@ -12565,19 +12624,19 @@ class Ui {
|
|
|
12565
12624
|
* @returns
|
|
12566
12625
|
*/
|
|
12567
12626
|
async execute(e, t, A) {
|
|
12568
|
-
var B, l,
|
|
12627
|
+
var B, l, d;
|
|
12569
12628
|
const n = (l = (B = (await P.getShadowGraphqlClient().mutate({
|
|
12570
12629
|
mutation: Hi,
|
|
12571
12630
|
variables: {
|
|
12572
12631
|
processFlowId: e,
|
|
12573
|
-
inputs: [...t.map((
|
|
12632
|
+
inputs: [...t.map((C) => C.getValueForTransmission())]
|
|
12574
12633
|
}
|
|
12575
12634
|
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
|
|
12576
12635
|
if (!n)
|
|
12577
12636
|
throw new Error("Failed to create process execution.");
|
|
12578
|
-
function i(
|
|
12637
|
+
function i(C) {
|
|
12579
12638
|
return new Promise((E) => {
|
|
12580
|
-
setTimeout(E,
|
|
12639
|
+
setTimeout(E, C);
|
|
12581
12640
|
});
|
|
12582
12641
|
}
|
|
12583
12642
|
let s = !1, o = 0, r, g;
|
|
@@ -12601,15 +12660,15 @@ class Ui {
|
|
|
12601
12660
|
ids: [n]
|
|
12602
12661
|
}
|
|
12603
12662
|
});
|
|
12604
|
-
const
|
|
12605
|
-
if (!r || !
|
|
12663
|
+
const C = (d = r.data) == null ? void 0 : d.processExecutions[0];
|
|
12664
|
+
if (!r || !C)
|
|
12606
12665
|
throw new Error("Failed to retrieve server response for execution.");
|
|
12607
|
-
if (
|
|
12666
|
+
if (C.failedAt)
|
|
12608
12667
|
throw new Error(
|
|
12609
12668
|
"Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
|
|
12610
12669
|
);
|
|
12611
|
-
if (
|
|
12612
|
-
s = !0, g = new ki(
|
|
12670
|
+
if (C.completedAt) {
|
|
12671
|
+
s = !0, g = new ki(C);
|
|
12613
12672
|
break;
|
|
12614
12673
|
}
|
|
12615
12674
|
o += 1;
|
|
@@ -12637,14 +12696,14 @@ class ki {
|
|
|
12637
12696
|
* @returns The nodes contained within the execution.
|
|
12638
12697
|
*/
|
|
12639
12698
|
getNodes() {
|
|
12640
|
-
return this.execution.nodes.map((e) => new
|
|
12699
|
+
return this.execution.nodes.map((e) => new Pe(e));
|
|
12641
12700
|
}
|
|
12642
12701
|
/**
|
|
12643
12702
|
* @param type The type of node to return.
|
|
12644
12703
|
* @returns A list of nodes matching the requested type.
|
|
12645
12704
|
*/
|
|
12646
12705
|
getNodesByType(e) {
|
|
12647
|
-
return this.execution.nodes.filter((t) => t.type === e).map((t) => new
|
|
12706
|
+
return this.execution.nodes.filter((t) => t.type === e).map((t) => new Pe(t));
|
|
12648
12707
|
}
|
|
12649
12708
|
/**
|
|
12650
12709
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -12653,7 +12712,7 @@ class ki {
|
|
|
12653
12712
|
return this.execution.nodes.filter(
|
|
12654
12713
|
(e) => e.type === "StartTerminal"
|
|
12655
12714
|
/* StartTerminal */
|
|
12656
|
-
).map((e) => new
|
|
12715
|
+
).map((e) => new Pe(e));
|
|
12657
12716
|
}
|
|
12658
12717
|
/**
|
|
12659
12718
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -12662,7 +12721,7 @@ class ki {
|
|
|
12662
12721
|
return this.execution.nodes.filter(
|
|
12663
12722
|
(e) => e.type === "EndTerminal"
|
|
12664
12723
|
/* EndTerminal */
|
|
12665
|
-
).map((e) => new
|
|
12724
|
+
).map((e) => new Pe(e));
|
|
12666
12725
|
}
|
|
12667
12726
|
/**
|
|
12668
12727
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -12679,7 +12738,7 @@ class ki {
|
|
|
12679
12738
|
return new Date(this.execution.failedAt);
|
|
12680
12739
|
}
|
|
12681
12740
|
}
|
|
12682
|
-
class
|
|
12741
|
+
class Pe {
|
|
12683
12742
|
constructor(e) {
|
|
12684
12743
|
this.node = e;
|
|
12685
12744
|
}
|
|
@@ -12714,9 +12773,9 @@ class ps extends It {
|
|
|
12714
12773
|
super(`"${e}"`);
|
|
12715
12774
|
}
|
|
12716
12775
|
}
|
|
12717
|
-
class
|
|
12776
|
+
class NA extends It {
|
|
12718
12777
|
constructor(e, t) {
|
|
12719
|
-
if (t !== "Asset" && !
|
|
12778
|
+
if (t !== "Asset" && !NA.validUUID(e))
|
|
12720
12779
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
12721
12780
|
super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
|
|
12722
12781
|
}
|
|
@@ -12892,8 +12951,8 @@ const bi = f`
|
|
|
12892
12951
|
name
|
|
12893
12952
|
}
|
|
12894
12953
|
`, Li = (c) => f`
|
|
12895
|
-
${
|
|
12896
|
-
${
|
|
12954
|
+
${Ie(c)}
|
|
12955
|
+
${Ct}
|
|
12897
12956
|
${iA}
|
|
12898
12957
|
${bi}
|
|
12899
12958
|
${Ji}
|
|
@@ -13304,7 +13363,7 @@ const bi = f`
|
|
|
13304
13363
|
}
|
|
13305
13364
|
}
|
|
13306
13365
|
`, Ki = f`
|
|
13307
|
-
${
|
|
13366
|
+
${Ie(!1)}
|
|
13308
13367
|
query GetWorkflowForTheme($id: String!) {
|
|
13309
13368
|
workflow(id: $id) {
|
|
13310
13369
|
id
|
|
@@ -13445,7 +13504,7 @@ const bi = f`
|
|
|
13445
13504
|
if (!A)
|
|
13446
13505
|
throw new Error(`Workflow not found: ${c}`);
|
|
13447
13506
|
return A;
|
|
13448
|
-
},
|
|
13507
|
+
}, RA = async (c, e) => {
|
|
13449
13508
|
const t = c.map((s) => Qe.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
|
|
13450
13509
|
if (A.length === 0)
|
|
13451
13510
|
return Promise.all(t);
|
|
@@ -13453,7 +13512,7 @@ const bi = f`
|
|
|
13453
13512
|
(s) => Qe.set({ id: s, options: e }, $i(s, a))
|
|
13454
13513
|
), i = t.filter((s) => s !== void 0);
|
|
13455
13514
|
return await Promise.all(i.concat(n));
|
|
13456
|
-
},
|
|
13515
|
+
}, xe = async (c, e) => (await RA([c], e))[0], _i = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13457
13516
|
id: J(),
|
|
13458
13517
|
panelId: e.name,
|
|
13459
13518
|
name: e.name,
|
|
@@ -13476,19 +13535,19 @@ class es {
|
|
|
13476
13535
|
try {
|
|
13477
13536
|
return P.getShadowGraphqlClient().mutate({
|
|
13478
13537
|
...t,
|
|
13479
|
-
mutation:
|
|
13538
|
+
mutation: ka
|
|
13480
13539
|
});
|
|
13481
13540
|
} catch (A) {
|
|
13482
13541
|
throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
|
|
13483
13542
|
}
|
|
13484
|
-
}, this.initialized = !1, this.options = e, this.options.applicationKey &&
|
|
13543
|
+
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.4.0"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
13485
13544
|
}
|
|
13486
13545
|
/** @deprecated Use `configure` instead */
|
|
13487
13546
|
configureUrls(e, t, A) {
|
|
13488
13547
|
q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
13489
13548
|
}
|
|
13490
13549
|
configure(e) {
|
|
13491
|
-
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken &&
|
|
13550
|
+
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && la(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
|
|
13492
13551
|
}
|
|
13493
13552
|
/**
|
|
13494
13553
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -13503,7 +13562,7 @@ class es {
|
|
|
13503
13562
|
return this.currencyCode;
|
|
13504
13563
|
}
|
|
13505
13564
|
getFlowService() {
|
|
13506
|
-
if (!
|
|
13565
|
+
if (!ga())
|
|
13507
13566
|
throw new Error("Application key required to use Flow Service.");
|
|
13508
13567
|
return new Ui();
|
|
13509
13568
|
}
|
|
@@ -13513,7 +13572,7 @@ class es {
|
|
|
13513
13572
|
if (!this.options.applicationKey)
|
|
13514
13573
|
throw new Error("Cannot get current Integration without specifying an Application Key.");
|
|
13515
13574
|
const e = async () => (await P.getShadowGraphqlClient().query({
|
|
13516
|
-
query:
|
|
13575
|
+
query: va,
|
|
13517
13576
|
errorPolicy: "all",
|
|
13518
13577
|
fetchPolicy: "no-cache"
|
|
13519
13578
|
})).data.currentIntegration;
|
|
@@ -13537,7 +13596,7 @@ class es {
|
|
|
13537
13596
|
var a, n;
|
|
13538
13597
|
const t = Y.getMap("bundleOwnerIds");
|
|
13539
13598
|
if (t != null && t.has(e))
|
|
13540
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13599
|
+
return Promise.resolve({ success: !0, stakeholderType: be.Owner });
|
|
13541
13600
|
const A = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
13542
13601
|
if (A.has(e)) {
|
|
13543
13602
|
const i = A.get(e), o = (Y.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
@@ -13568,7 +13627,7 @@ class es {
|
|
|
13568
13627
|
* @throws An error if the transaction is not found.
|
|
13569
13628
|
*/
|
|
13570
13629
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13571
|
-
var g, B, l,
|
|
13630
|
+
var g, B, l, d, C, E;
|
|
13572
13631
|
const t = P.getShadowGraphqlClient(), A = await t.query({
|
|
13573
13632
|
query: zi,
|
|
13574
13633
|
errorPolicy: "all",
|
|
@@ -13586,20 +13645,20 @@ class es {
|
|
|
13586
13645
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
13587
13646
|
const i = Y.getMap("transactionOwnerIds");
|
|
13588
13647
|
if (i != null && i.has(e))
|
|
13589
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13648
|
+
return Promise.resolve({ success: !0, stakeholderType: be.Owner });
|
|
13590
13649
|
const s = Y.getMap("transactionCustomerIds");
|
|
13591
13650
|
if (s != null && s.has(e)) {
|
|
13592
13651
|
const w = s.get(e);
|
|
13593
13652
|
if (w && await this.authenticateCustomerId(w)) {
|
|
13594
|
-
const h = ((
|
|
13653
|
+
const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
13595
13654
|
(I) => {
|
|
13596
|
-
var
|
|
13597
|
-
return (
|
|
13655
|
+
var D, m;
|
|
13656
|
+
return (m = (D = I.bundle) == null ? void 0 : D.transactions) == null ? void 0 : m.some((Q) => Q.id === e);
|
|
13598
13657
|
}
|
|
13599
|
-
)) || ((E = (
|
|
13658
|
+
)) || ((E = (C = this.customer) == null ? void 0 : C.stakeholders) == null ? void 0 : E.find(
|
|
13600
13659
|
(I) => {
|
|
13601
|
-
var
|
|
13602
|
-
return ((
|
|
13660
|
+
var D;
|
|
13661
|
+
return ((D = I.transaction) == null ? void 0 : D.id) === e;
|
|
13603
13662
|
}
|
|
13604
13663
|
));
|
|
13605
13664
|
if (h)
|
|
@@ -13743,10 +13802,10 @@ class es {
|
|
|
13743
13802
|
async getNewBundle(e, t, A) {
|
|
13744
13803
|
var r, g, B;
|
|
13745
13804
|
const n = (B = (await P.getShadowGraphqlClient().mutate({
|
|
13746
|
-
mutation:
|
|
13805
|
+
mutation: Ci(((g = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : g.eagerFetchProducts) || !1),
|
|
13747
13806
|
variables: {
|
|
13748
13807
|
collectionId: e,
|
|
13749
|
-
initialMetadata: t ? Object.entries(t).map((l,
|
|
13808
|
+
initialMetadata: t ? Object.entries(t).map((l, d) => ({ key: l[0], value: l[1] })) : void 0
|
|
13750
13809
|
},
|
|
13751
13810
|
fetchPolicy: "no-cache"
|
|
13752
13811
|
})).data) == null ? void 0 : B.bundleCreate;
|
|
@@ -13767,7 +13826,7 @@ class es {
|
|
|
13767
13826
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13768
13827
|
*/
|
|
13769
13828
|
async getExistingBundle(e, t, A, a) {
|
|
13770
|
-
var w, u, h, I,
|
|
13829
|
+
var w, u, h, I, D, m, Q, p, y;
|
|
13771
13830
|
const n = Y.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((w = Object.entries(localStorage).find(([M, S]) => M.startsWith("CognitoIdentityServiceProvider") && M.endsWith("idToken"))) == null ? void 0 : w[0]) || "", r = localStorage.getItem(o), g = {};
|
|
13772
13831
|
r && !mt(r) && (g.Authorization = `Bearer ${r}`);
|
|
13773
13832
|
const B = {
|
|
@@ -13784,11 +13843,11 @@ class es {
|
|
|
13784
13843
|
headers: B
|
|
13785
13844
|
}
|
|
13786
13845
|
});
|
|
13787
|
-
if (!((
|
|
13846
|
+
if (!((D = l.data) != null && D.bundles) || ((m = l.data) == null ? void 0 : m.bundles.length) === 0 || !((Q = l.data) != null && Q.bundles[0]))
|
|
13788
13847
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
13789
|
-
const
|
|
13790
|
-
|
|
13791
|
-
const E = new bt(this,
|
|
13848
|
+
const d = (p = l.data) == null ? void 0 : p.bundles[0], C = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
13849
|
+
C.set(d.id, d.partner.id), Y.setMap("bundlePartnerIds", C);
|
|
13850
|
+
const E = new bt(this, d, t, A, i, {
|
|
13792
13851
|
additionalHeaders: (y = a == null ? void 0 : a.graphql) == null ? void 0 : y.additionalHeaders
|
|
13793
13852
|
});
|
|
13794
13853
|
return await E.getInitializationPromise(), E;
|
|
@@ -13825,38 +13884,38 @@ class es {
|
|
|
13825
13884
|
* @returns A workflow experience configured as requested.
|
|
13826
13885
|
*/
|
|
13827
13886
|
async getWorkflowExperience(e, t, A, a) {
|
|
13828
|
-
var B, l,
|
|
13887
|
+
var B, l, d, C, E;
|
|
13829
13888
|
if (!a)
|
|
13830
13889
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
13831
13890
|
const n = async () => {
|
|
13832
13891
|
var u, h, I;
|
|
13833
13892
|
const w = P.getShadowGraphqlClient();
|
|
13834
13893
|
if (a.type === "transaction") {
|
|
13835
|
-
const { transactionId:
|
|
13836
|
-
query:
|
|
13894
|
+
const { transactionId: D, readOnly: m } = a, Q = await w.query({
|
|
13895
|
+
query: Fe,
|
|
13837
13896
|
variables: {
|
|
13838
|
-
ids: [
|
|
13897
|
+
ids: [D]
|
|
13839
13898
|
},
|
|
13840
13899
|
errorPolicy: "all",
|
|
13841
13900
|
fetchPolicy: "no-cache"
|
|
13842
13901
|
});
|
|
13843
|
-
if (!((u =
|
|
13902
|
+
if (!((u = Q.data) != null && u.transactions) || Q.data.transactions.length === 0)
|
|
13844
13903
|
throw new H("Existing transaction not found.");
|
|
13845
|
-
const
|
|
13846
|
-
if (!
|
|
13904
|
+
const p = (h = Q.data) == null ? void 0 : h.transactions[0];
|
|
13905
|
+
if (!p.workflowId)
|
|
13847
13906
|
throw new H("Existing transaction has no workflow ID.");
|
|
13848
|
-
const y = await
|
|
13849
|
-
if (!
|
|
13907
|
+
const y = await xe(p.workflowId);
|
|
13908
|
+
if (!p.product)
|
|
13850
13909
|
throw new H("Failed to load transaction, product not available.");
|
|
13851
|
-
return !this.activeIntegration && ((I =
|
|
13910
|
+
return !this.activeIntegration && ((I = p.integrationProduct) != null && I.integration) && (this.activeIntegration = Promise.resolve(p.integrationProduct.integration)), { transaction: p, workflow: y, readOnly: m };
|
|
13852
13911
|
}
|
|
13853
13912
|
if (a.type === "integration" || a.type === "external") {
|
|
13854
|
-
const
|
|
13913
|
+
const D = async () => {
|
|
13855
13914
|
const y = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
13856
13915
|
externalIntegrationId: a.externalIntegrationId,
|
|
13857
13916
|
externalProductId: a.externalProductId
|
|
13858
13917
|
}, M = await w.mutate({
|
|
13859
|
-
mutation:
|
|
13918
|
+
mutation: Rt,
|
|
13860
13919
|
variables: {
|
|
13861
13920
|
...y,
|
|
13862
13921
|
workflowId: a.workflowId,
|
|
@@ -13876,8 +13935,8 @@ class es {
|
|
|
13876
13935
|
if (!S.product)
|
|
13877
13936
|
throw new H("Failed to create transaction, product not available.");
|
|
13878
13937
|
return S;
|
|
13879
|
-
},
|
|
13880
|
-
return { transaction:
|
|
13938
|
+
}, m = xe(a.workflowId, a == null ? void 0 : a.graphql), [Q, p] = await Promise.all([D(), m]);
|
|
13939
|
+
return { transaction: Q, workflow: p };
|
|
13881
13940
|
}
|
|
13882
13941
|
throw new H("No workflow ID provided.");
|
|
13883
13942
|
}, { transaction: i, workflow: s, readOnly: o } = await n();
|
|
@@ -13907,12 +13966,12 @@ class es {
|
|
|
13907
13966
|
r.transaction,
|
|
13908
13967
|
r.workflow
|
|
13909
13968
|
);
|
|
13910
|
-
if (r.renderableContextService = new
|
|
13969
|
+
if (r.renderableContextService = new Ye(
|
|
13911
13970
|
r.layouts
|
|
13912
|
-
), a.previewService ? (r.previewService = a.previewService, (
|
|
13971
|
+
), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
13913
13972
|
model: r.product.modelUrl,
|
|
13914
13973
|
contextService: r.renderableContextService
|
|
13915
|
-
}))) : (r.previewService = A && A(s), (
|
|
13974
|
+
}))) : (r.previewService = A && A(s), (C = r.product) != null && C.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
|
|
13916
13975
|
model: r.product.modelUrl,
|
|
13917
13976
|
contextService: r.renderableContextService
|
|
13918
13977
|
}))), a.type !== "transaction") {
|
|
@@ -13921,7 +13980,7 @@ class es {
|
|
|
13921
13980
|
} else
|
|
13922
13981
|
r.isReloadedTransaction = !0;
|
|
13923
13982
|
this.initialized = !0, this.experienceOptions = r;
|
|
13924
|
-
const g = new
|
|
13983
|
+
const g = new Se(this, r);
|
|
13925
13984
|
return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
|
|
13926
13985
|
}
|
|
13927
13986
|
/**
|
|
@@ -13934,39 +13993,39 @@ class es {
|
|
|
13934
13993
|
async getWorkflowExperiences(e, t) {
|
|
13935
13994
|
if (e.length === 0)
|
|
13936
13995
|
throw new H("No options provided!");
|
|
13937
|
-
const A = P.getShadowGraphqlClient(), a = async (
|
|
13996
|
+
const A = P.getShadowGraphqlClient(), a = async (m) => {
|
|
13938
13997
|
var M, S, N;
|
|
13939
|
-
if (
|
|
13998
|
+
if (m.length === 0)
|
|
13940
13999
|
return [];
|
|
13941
|
-
const
|
|
13942
|
-
query:
|
|
14000
|
+
const Q = m.map((x) => x.option.transactionId), p = await A.query({
|
|
14001
|
+
query: Fe,
|
|
13943
14002
|
variables: {
|
|
13944
|
-
ids:
|
|
14003
|
+
ids: Q
|
|
13945
14004
|
},
|
|
13946
14005
|
errorPolicy: "all",
|
|
13947
14006
|
fetchPolicy: "no-cache"
|
|
13948
|
-
}), y =
|
|
13949
|
-
if (y.length !==
|
|
13950
|
-
const x = ((S = (M =
|
|
14007
|
+
}), y = p.data.transactions;
|
|
14008
|
+
if (y.length !== m.length) {
|
|
14009
|
+
const x = ((S = (M = p.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
|
|
13951
14010
|
throw new H(`Not all transactions were found: ${x}`);
|
|
13952
14011
|
}
|
|
13953
|
-
return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x,
|
|
14012
|
+
return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x, R) => {
|
|
13954
14013
|
var L;
|
|
13955
14014
|
return {
|
|
13956
14015
|
transaction: x,
|
|
13957
14016
|
workflowId: x.workflowId,
|
|
13958
|
-
readOnly: ((L =
|
|
13959
|
-
index:
|
|
14017
|
+
readOnly: ((L = m.find((T) => T.option.transactionId === x.id)) == null ? void 0 : L.option.readOnly) ?? !1,
|
|
14018
|
+
index: m[R].index
|
|
13960
14019
|
};
|
|
13961
14020
|
});
|
|
13962
|
-
}, n = async (
|
|
14021
|
+
}, n = async (m) => {
|
|
13963
14022
|
var y, M, S;
|
|
13964
|
-
if (
|
|
14023
|
+
if (m.length === 0)
|
|
13965
14024
|
return [];
|
|
13966
|
-
const
|
|
13967
|
-
mutation:
|
|
14025
|
+
const Q = await A.mutate({
|
|
14026
|
+
mutation: Ha,
|
|
13968
14027
|
variables: {
|
|
13969
|
-
inputs:
|
|
14028
|
+
inputs: m.map((N) => ({
|
|
13970
14029
|
integrationProductId: N.option.type === "integration" ? N.option.integrationProductId : void 0,
|
|
13971
14030
|
externalIntegrationId: N.option.type === "external" ? N.option.externalIntegrationId : void 0,
|
|
13972
14031
|
externalProductId: N.option.type === "external" ? N.option.externalProductId : void 0,
|
|
@@ -13979,29 +14038,29 @@ class es {
|
|
|
13979
14038
|
},
|
|
13980
14039
|
errorPolicy: "all",
|
|
13981
14040
|
fetchPolicy: "no-cache"
|
|
13982
|
-
}),
|
|
13983
|
-
if (!
|
|
13984
|
-
const N = ((S = (M =
|
|
14041
|
+
}), p = (y = Q.data) == null ? void 0 : y.transactionCreateMany;
|
|
14042
|
+
if (!p || p.length === 0) {
|
|
14043
|
+
const N = ((S = (M = Q.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
|
|
13985
14044
|
throw new H(`Failed to create transactions: ${N}`);
|
|
13986
14045
|
}
|
|
13987
|
-
return
|
|
14046
|
+
return p.map((N, x) => ({
|
|
13988
14047
|
transaction: N,
|
|
13989
14048
|
workflowId: N.workflowId,
|
|
13990
14049
|
readOnly: !1,
|
|
13991
|
-
index:
|
|
14050
|
+
index: m[x].index
|
|
13992
14051
|
}));
|
|
13993
|
-
}, i = e.map((
|
|
13994
|
-
(
|
|
14052
|
+
}, i = e.map((m, Q) => ({ option: m, index: Q })), s = i.filter((m) => m.option.type === "transaction"), o = i.filter(
|
|
14053
|
+
(m) => m.option.type === "integration" || m.option.type === "external"
|
|
13995
14054
|
), r = Yt(s, 10), g = Yt(o, 10), B = (await Promise.all([
|
|
13996
14055
|
...r.map(a),
|
|
13997
14056
|
...g.map(n)
|
|
13998
|
-
])).flat(), l = [...new Set(B.map((
|
|
14057
|
+
])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await RA(l, t), C = new Map(d.map((m) => [m.id, m])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = B.map(async (m) => {
|
|
13999
14058
|
var L;
|
|
14000
|
-
const { transaction:
|
|
14001
|
-
!E.get(
|
|
14002
|
-
const x = E.get(
|
|
14003
|
-
product:
|
|
14004
|
-
transaction:
|
|
14059
|
+
const { transaction: Q, workflowId: p, readOnly: y, index: M } = m, S = C.get(p), N = e[M];
|
|
14060
|
+
!E.get(Q.id) && Q.transactionOwnerId && E.set(Q.id, Q.transactionOwnerId);
|
|
14061
|
+
const x = E.get(Q.id) || void 0, R = {
|
|
14062
|
+
product: Q.product,
|
|
14063
|
+
transaction: Q,
|
|
14005
14064
|
layouts: [],
|
|
14006
14065
|
singleVariantsRenderable: (L = N == null ? void 0 : N.workflowConfiguration) == null ? void 0 : L.singleVariantsRenderable,
|
|
14007
14066
|
stateMutationFunc: y ? async () => {
|
|
@@ -14011,27 +14070,27 @@ class es {
|
|
|
14011
14070
|
workflow: S,
|
|
14012
14071
|
isReloadedTransaction: N.type === "transaction"
|
|
14013
14072
|
};
|
|
14014
|
-
if (N.type === "transaction" &&
|
|
14015
|
-
const T = JSON.parse(
|
|
14016
|
-
|
|
14073
|
+
if (N.type === "transaction" && Q.workflowState) {
|
|
14074
|
+
const T = JSON.parse(Q.workflowState);
|
|
14075
|
+
R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
|
|
14017
14076
|
} else if (!y && N.workflowState) {
|
|
14018
14077
|
const T = JSON.parse(N.workflowState);
|
|
14019
|
-
|
|
14078
|
+
R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
|
|
14020
14079
|
} else
|
|
14021
|
-
|
|
14022
|
-
|
|
14023
|
-
|
|
14080
|
+
R.layouts = $e(
|
|
14081
|
+
R.transaction,
|
|
14082
|
+
R.workflow
|
|
14024
14083
|
);
|
|
14025
|
-
return
|
|
14026
|
-
|
|
14027
|
-
),
|
|
14084
|
+
return R.renderableContextService = new Ye(
|
|
14085
|
+
R.layouts
|
|
14086
|
+
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: M, options: N };
|
|
14028
14087
|
});
|
|
14029
14088
|
Y.setMap("transactionOwnerIds", E);
|
|
14030
|
-
const I = (await Promise.all(w)).sort((
|
|
14031
|
-
const { experienceOptions:
|
|
14032
|
-
return await y.getWorkflowManager().getInitializationPromise(),
|
|
14033
|
-
}),
|
|
14034
|
-
return
|
|
14089
|
+
const I = (await Promise.all(w)).sort((m, Q) => m.index - Q.index).map(async (m) => {
|
|
14090
|
+
const { experienceOptions: Q, options: p } = m, y = new Se(this, Q);
|
|
14091
|
+
return await y.getWorkflowManager().getInitializationPromise(), p.type !== "transaction" && this.customer && await y.attachCustomerDetails({ email: this.customer.emailAddress }), y;
|
|
14092
|
+
}), D = await Promise.all(I);
|
|
14093
|
+
return D.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), D;
|
|
14035
14094
|
}
|
|
14036
14095
|
/**
|
|
14037
14096
|
* Initialize the client from an integration product.
|
|
@@ -14043,7 +14102,7 @@ class es {
|
|
|
14043
14102
|
if (e === "")
|
|
14044
14103
|
throw new H("No integration product ID provided.");
|
|
14045
14104
|
const A = await P.getShadowGraphqlClient().mutate({
|
|
14046
|
-
mutation:
|
|
14105
|
+
mutation: Rt,
|
|
14047
14106
|
variables: {
|
|
14048
14107
|
integrationProductId: e,
|
|
14049
14108
|
claim: !0,
|
|
@@ -14083,18 +14142,18 @@ class es {
|
|
|
14083
14142
|
if (e === "")
|
|
14084
14143
|
throw new H("No transaction ID provided.");
|
|
14085
14144
|
const A = P.getShadowGraphqlClient(), a = async () => {
|
|
14086
|
-
var
|
|
14087
|
-
const l = (
|
|
14088
|
-
query:
|
|
14145
|
+
var d, C;
|
|
14146
|
+
const l = (d = (await A.query({
|
|
14147
|
+
query: Fe,
|
|
14089
14148
|
variables: { ids: [e] },
|
|
14090
14149
|
fetchPolicy: "no-cache",
|
|
14091
14150
|
errorPolicy: "all"
|
|
14092
|
-
})).data) == null ? void 0 :
|
|
14151
|
+
})).data) == null ? void 0 : d.transactions[0];
|
|
14093
14152
|
if (!l)
|
|
14094
14153
|
throw new H("Failed to read transaction.");
|
|
14095
14154
|
if (!l.product)
|
|
14096
14155
|
throw new H("Failed to load transaction, product not available.");
|
|
14097
|
-
this.currencyCode = (
|
|
14156
|
+
this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
|
|
14098
14157
|
product: l.product,
|
|
14099
14158
|
transaction: l,
|
|
14100
14159
|
layouts: [],
|
|
@@ -14109,7 +14168,7 @@ class es {
|
|
|
14109
14168
|
const n = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
14110
14169
|
if (i) {
|
|
14111
14170
|
const l = (s = (await A.query({
|
|
14112
|
-
query:
|
|
14171
|
+
query: Fe,
|
|
14113
14172
|
variables: {
|
|
14114
14173
|
ids: [e]
|
|
14115
14174
|
},
|
|
@@ -14123,14 +14182,14 @@ class es {
|
|
|
14123
14182
|
product: l.product,
|
|
14124
14183
|
transaction: l,
|
|
14125
14184
|
layouts: [],
|
|
14126
|
-
stateMutationFunc: async (
|
|
14185
|
+
stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
|
|
14127
14186
|
readOnly: t
|
|
14128
14187
|
}, this.initialized = !0;
|
|
14129
14188
|
return;
|
|
14130
14189
|
}
|
|
14131
14190
|
try {
|
|
14132
14191
|
const l = (r = (await A.mutate({
|
|
14133
|
-
mutation:
|
|
14192
|
+
mutation: Ua,
|
|
14134
14193
|
variables: { id: e },
|
|
14135
14194
|
errorPolicy: "all"
|
|
14136
14195
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
@@ -14142,8 +14201,8 @@ class es {
|
|
|
14142
14201
|
product: l.product,
|
|
14143
14202
|
transaction: l,
|
|
14144
14203
|
layouts: [],
|
|
14145
|
-
stateMutationFunc: async (
|
|
14146
|
-
...
|
|
14204
|
+
stateMutationFunc: async (d) => this.updateTransactionState({
|
|
14205
|
+
...d,
|
|
14147
14206
|
context: { transactionOwnerId: l.transactionOwnerId }
|
|
14148
14207
|
}),
|
|
14149
14208
|
readOnly: t
|
|
@@ -14160,21 +14219,21 @@ class es {
|
|
|
14160
14219
|
if (!this.initialized || !this.experienceOptions)
|
|
14161
14220
|
throw new H("Cannot launch experience: Not initialized.");
|
|
14162
14221
|
if (this.experienceOptions.transaction.workflowId) {
|
|
14163
|
-
const o = await
|
|
14222
|
+
const o = await xe(this.experienceOptions.transaction.workflowId);
|
|
14164
14223
|
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
14165
14224
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
14166
14225
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ae(g), await ie(g), this.experienceOptions.reloadedState = g;
|
|
14167
14226
|
}
|
|
14168
|
-
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new
|
|
14227
|
+
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
14169
14228
|
model: this.experienceOptions.product.modelUrl,
|
|
14170
14229
|
contextService: this.experienceOptions.renderableContextService
|
|
14171
14230
|
}));
|
|
14172
|
-
const r = new
|
|
14231
|
+
const r = new Se(this, this.experienceOptions);
|
|
14173
14232
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
14174
14233
|
}
|
|
14175
14234
|
if (e) {
|
|
14176
14235
|
const r = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), g = P.getShadowGraphqlClient().mutate({
|
|
14177
|
-
mutation:
|
|
14236
|
+
mutation: Ga,
|
|
14178
14237
|
variables: {
|
|
14179
14238
|
workflowId: e,
|
|
14180
14239
|
id: this.experienceOptions.transaction.id
|
|
@@ -14182,20 +14241,20 @@ class es {
|
|
|
14182
14241
|
context: {
|
|
14183
14242
|
transactionOwnerId: r
|
|
14184
14243
|
}
|
|
14185
|
-
}), B =
|
|
14244
|
+
}), B = xe(e);
|
|
14186
14245
|
if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
|
|
14187
|
-
const
|
|
14188
|
-
this.experienceOptions.layouts = Object.values(
|
|
14246
|
+
const d = JSON.parse(t);
|
|
14247
|
+
this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await ae(d), await ie(d), this.experienceOptions.reloadedState = d;
|
|
14189
14248
|
} else
|
|
14190
14249
|
this.experienceOptions.layouts = $e(
|
|
14191
14250
|
this.experienceOptions.transaction,
|
|
14192
14251
|
this.experienceOptions.workflow
|
|
14193
14252
|
);
|
|
14194
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new
|
|
14253
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
|
|
14195
14254
|
model: this.experienceOptions.product.modelUrl,
|
|
14196
14255
|
contextService: this.experienceOptions.renderableContextService
|
|
14197
14256
|
}));
|
|
14198
|
-
const l = new
|
|
14257
|
+
const l = new Se(this, this.experienceOptions);
|
|
14199
14258
|
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
14200
14259
|
}
|
|
14201
14260
|
throw new H("No workflow ID provided.");
|
|
@@ -14233,7 +14292,7 @@ class es {
|
|
|
14233
14292
|
async getIntegrationProductById(e) {
|
|
14234
14293
|
var n, i;
|
|
14235
14294
|
const a = (n = (await P.getShadowGraphqlClient().query({
|
|
14236
|
-
query:
|
|
14295
|
+
query: Ta,
|
|
14237
14296
|
variables: {
|
|
14238
14297
|
ids: [e]
|
|
14239
14298
|
},
|
|
@@ -14247,7 +14306,7 @@ class es {
|
|
|
14247
14306
|
async getIntegrationProductFromExternalIds(e, t) {
|
|
14248
14307
|
var i;
|
|
14249
14308
|
const n = (i = (await P.getShadowGraphqlClient().query({
|
|
14250
|
-
query:
|
|
14309
|
+
query: Oa,
|
|
14251
14310
|
variables: {
|
|
14252
14311
|
externalProductId: t,
|
|
14253
14312
|
externalIntegrationId: e
|
|
@@ -14264,7 +14323,7 @@ class es {
|
|
|
14264
14323
|
}
|
|
14265
14324
|
async getShareActionsForTransaction(e) {
|
|
14266
14325
|
const A = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(e) || void 0, a = await P.getShadowGraphqlClient().query({
|
|
14267
|
-
query:
|
|
14326
|
+
query: Ja,
|
|
14268
14327
|
errorPolicy: "all",
|
|
14269
14328
|
fetchPolicy: "no-cache",
|
|
14270
14329
|
variables: {
|
|
@@ -14612,46 +14671,46 @@ export {
|
|
|
14612
14671
|
Ze as CollectionProduct,
|
|
14613
14672
|
Gt as ColorOptionGlobalPropertyHandle,
|
|
14614
14673
|
Ns as CommandContext,
|
|
14615
|
-
|
|
14616
|
-
|
|
14617
|
-
|
|
14618
|
-
|
|
14674
|
+
Ra as ConversionDataType,
|
|
14675
|
+
Na as ConversionLocation,
|
|
14676
|
+
Rs as CreateElementCommand,
|
|
14677
|
+
vs as CreateLayoutCommand,
|
|
14619
14678
|
Hs as DeleteElementCommand,
|
|
14620
14679
|
Un as DigitalContentStepHandle,
|
|
14621
14680
|
Fi as FileUploadGlobalPropertyHandle,
|
|
14622
|
-
|
|
14681
|
+
Pe as FlowExecutionNodeResult,
|
|
14623
14682
|
ki as FlowExecutionResult,
|
|
14624
14683
|
Ui as FlowService,
|
|
14625
14684
|
Us as FontAlignmentCommand,
|
|
14626
14685
|
ks as FontColorCommand,
|
|
14627
14686
|
Gs as FontSizeCommand,
|
|
14628
14687
|
bs as FontSourceCommand,
|
|
14629
|
-
|
|
14688
|
+
Xa as FrameService,
|
|
14630
14689
|
ts as FrameStep,
|
|
14631
14690
|
As as FrameStepHandle,
|
|
14632
14691
|
pt as GlobalPropertyHandle,
|
|
14633
14692
|
Js as GroupCommand,
|
|
14634
14693
|
Sn as IllustrationStepHandle,
|
|
14635
|
-
|
|
14694
|
+
pe as InformationMessageType,
|
|
14636
14695
|
Hn as InformationStepHandle,
|
|
14637
14696
|
Jt as IntegrationProduct,
|
|
14638
|
-
|
|
14697
|
+
Pa as IntegrationType,
|
|
14639
14698
|
Ts as LayoutElementFactory,
|
|
14640
14699
|
Os as LayoutElementType,
|
|
14641
14700
|
z as LayoutNotFoundError,
|
|
14642
14701
|
Yn as MaterialStepHandle,
|
|
14643
|
-
|
|
14702
|
+
Ge as MisconfigurationError,
|
|
14644
14703
|
Is as MockWorkflowManager,
|
|
14645
14704
|
Pn as ModelStepHandle,
|
|
14646
14705
|
kn as ModuleStepHandle,
|
|
14647
14706
|
Ls as MoveCommand,
|
|
14648
|
-
|
|
14707
|
+
NA as ObjectInput,
|
|
14649
14708
|
Gi as ObjectInputType,
|
|
14650
|
-
|
|
14651
|
-
|
|
14652
|
-
|
|
14709
|
+
xA as OptionGlobalPropertyHandle,
|
|
14710
|
+
ke as OptionNotFoundError,
|
|
14711
|
+
Ce as ParseError,
|
|
14653
14712
|
xn as PictureStepHandle,
|
|
14654
|
-
|
|
14713
|
+
xa as ProductCameraRig,
|
|
14655
14714
|
Ni as ProductCollection,
|
|
14656
14715
|
Ee as ProductWorkflow,
|
|
14657
14716
|
Qe as PromiseCache,
|
|
@@ -14662,32 +14721,32 @@ export {
|
|
|
14662
14721
|
ue as ResourceNotFoundError,
|
|
14663
14722
|
Ks as RotateCommand,
|
|
14664
14723
|
js as SendBackwardsCommand,
|
|
14665
|
-
|
|
14724
|
+
Rn as ShapeStepHandle,
|
|
14666
14725
|
es as SpiffCommerceClient,
|
|
14667
|
-
|
|
14726
|
+
be as StakeholderType,
|
|
14668
14727
|
Vs as StepAspectType,
|
|
14669
14728
|
X as StepHandle,
|
|
14670
14729
|
Ws as StepType,
|
|
14671
14730
|
Xs as TextChangeCommand,
|
|
14672
14731
|
yi as TextGlobalPropertyHandle,
|
|
14673
14732
|
ps as TextInput,
|
|
14674
|
-
|
|
14675
|
-
|
|
14676
|
-
|
|
14677
|
-
|
|
14733
|
+
vn as TextStepHandle,
|
|
14734
|
+
Ya as TransactionShareActionType,
|
|
14735
|
+
vi as Transform,
|
|
14736
|
+
Ri as TransformCollection,
|
|
14678
14737
|
b as UnhandledBehaviorError,
|
|
14679
14738
|
qs as UnitOfMeasurement,
|
|
14680
14739
|
Zs as UpdateImageSourceCommand,
|
|
14681
14740
|
Z as Variant,
|
|
14682
14741
|
Vn as WorkflowExperienceEventType,
|
|
14683
|
-
|
|
14742
|
+
Se as WorkflowExperienceImpl,
|
|
14684
14743
|
U as assetService,
|
|
14685
|
-
|
|
14744
|
+
tn as browserColorToHex,
|
|
14686
14745
|
Ln as createDesign,
|
|
14687
14746
|
$s as dataUrlFromExternalUrl,
|
|
14688
14747
|
qe as designService,
|
|
14689
14748
|
_s as determineCorrectFontSizeAndLines,
|
|
14690
|
-
|
|
14749
|
+
CA as digitalContentStepService,
|
|
14691
14750
|
eo as findElement,
|
|
14692
14751
|
us as findPmsColors,
|
|
14693
14752
|
to as frameDataCache,
|
|
@@ -14698,32 +14757,32 @@ export {
|
|
|
14698
14757
|
ms as generateStateFromDesignInputSteps,
|
|
14699
14758
|
no as getAttributesFromArrayBuffer,
|
|
14700
14759
|
io as getAxisAlignedBoundingBox,
|
|
14701
|
-
|
|
14760
|
+
Wa as getBoundedOffsets,
|
|
14702
14761
|
so as getFrameData,
|
|
14703
14762
|
oo as getSvgElement,
|
|
14704
|
-
|
|
14705
|
-
|
|
14763
|
+
xe as getWorkflow,
|
|
14764
|
+
RA as getWorkflows,
|
|
14706
14765
|
P as graphQlManager,
|
|
14707
|
-
|
|
14766
|
+
Re as illustrationStepService,
|
|
14708
14767
|
ro as loadFont,
|
|
14709
14768
|
hs as matchHexToPms,
|
|
14710
|
-
|
|
14711
|
-
|
|
14712
|
-
|
|
14769
|
+
wA as materialStepService,
|
|
14770
|
+
EA as modelStepService,
|
|
14771
|
+
hA as moduleStepService,
|
|
14713
14772
|
j as optionService,
|
|
14714
14773
|
co as patternImageDataCache,
|
|
14715
14774
|
Y as persistenceService,
|
|
14716
|
-
|
|
14775
|
+
uA as pictureStepService,
|
|
14717
14776
|
Es as pmsToRgb,
|
|
14718
|
-
|
|
14777
|
+
QA as questionStepService,
|
|
14719
14778
|
go as registerFetchImplementation,
|
|
14720
14779
|
lo as registerWindowImplementation,
|
|
14721
14780
|
Bo as rehydrateSerializedLayout,
|
|
14722
|
-
|
|
14723
|
-
|
|
14781
|
+
$a as rgbToPms,
|
|
14782
|
+
la as setBearerAuthenticationToken,
|
|
14724
14783
|
Co as setCanvasModule,
|
|
14725
14784
|
we as shapeStepService,
|
|
14726
|
-
|
|
14785
|
+
qa as shortenUrl,
|
|
14727
14786
|
q as spiffCoreConfiguration,
|
|
14728
14787
|
Qs as stepAspectValuesToDesignInputSteps,
|
|
14729
14788
|
wo as svgToDataUrl,
|