@dappworks/kit 0.4.179 → 0.4.181
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.
|
@@ -186,6 +186,8 @@ var StorageState = class _StorageState {
|
|
|
186
186
|
load() {
|
|
187
187
|
var _a;
|
|
188
188
|
try {
|
|
189
|
+
if (typeof window == "undefined")
|
|
190
|
+
return;
|
|
189
191
|
const value = (_a = window == null ? void 0 : window.localStorage) == null ? void 0 : _a.getItem(this.key);
|
|
190
192
|
this.value = _StorageState.safeParse(value);
|
|
191
193
|
if (this.value == null) {
|
|
@@ -199,6 +201,8 @@ var StorageState = class _StorageState {
|
|
|
199
201
|
}
|
|
200
202
|
save(value) {
|
|
201
203
|
try {
|
|
204
|
+
if (typeof window == "undefined")
|
|
205
|
+
return;
|
|
202
206
|
if (value !== null || value !== void 0) {
|
|
203
207
|
this.value = value;
|
|
204
208
|
}
|
|
@@ -213,7 +217,9 @@ var StorageState = class _StorageState {
|
|
|
213
217
|
}
|
|
214
218
|
clear() {
|
|
215
219
|
try {
|
|
216
|
-
|
|
220
|
+
if (typeof window == "undefined")
|
|
221
|
+
return;
|
|
222
|
+
window == null ? void 0 : window.localStorage.removeItem(this.key);
|
|
217
223
|
} catch (error) {
|
|
218
224
|
return null;
|
|
219
225
|
}
|
|
@@ -289,4 +295,4 @@ var AppProvider = observer(({ children }) => {
|
|
|
289
295
|
|
|
290
296
|
export { AppProvider, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState };
|
|
291
297
|
//# sourceMappingURL=out.js.map
|
|
292
|
-
//# sourceMappingURL=chunk-
|
|
298
|
+
//# sourceMappingURL=chunk-SJ33JAK7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../store/standard/PromiseHook.ts","../store/standard/BigNumberState.ts","../store/standard/BigNumberInputState.ts","../store/standard/StorageState.ts","../store/standard/StorageListState.ts","../store/standard/ObjectPool.ts","../module/AppProvider.tsx"],"names":["BigNumber","makeAutoObservable","rootStore"],"mappings":"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","sourcesContent":["import { observable } from \"mobx\";\n\nexport class KV {\n //@ts-ignore\n static datas = observable();\n}\n\nexport abstract class ContractBase {\n // chainId?: number;\n // address?: string;\n}\n\nexport type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T;\n\nexport type PromiseHookData<T, U> = { value: Awaited<U>; get: T; call: T; func: T; loading: boolean; errorRetry: number };\n\nexport class PromiseHook {\n static entities = observable([]);\n static Get<T extends ContractBase>(\n cls: ContractClass<T>,\n ): (args: { args: Partial<T>; id?: string; select?: { [key in keyof Partial<T>]: boolean }; unselect?: { [key in keyof Partial<T>]: boolean } }) => Promise<T & { refresh: () => Promise<void> }> {\n try {\n return async ({ args, select, id, unselect }) => {\n let instance: any;\n //@ts-ignore\n if (!id || !this.entities[id]) {\n instance = new cls(args);\n\n instance.refresh = async () => {\n const hooks = Object.entries(instance)\n .filter((i) => {\n if (!this.isPromiseHook(instance[i[0]])) return false;\n //@ts-ignore\n if (i[1].lazy) return false;\n if (select && !select[i[0]]) return false;\n if (unselect && unselect[i[0]]) return false;\n return true;\n })\n .map((i) => {\n const hook = instance[i[0]];\n return hook;\n });\n\n await Promise.all(hooks.map((i) => i.call()));\n };\n if (id) {\n //@ts-ignore\n this.entities[id] = instance;\n }\n } else {\n instance = this.entities[id!];\n }\n\n await instance.refresh();\n return instance;\n };\n } catch (e) {\n throw e;\n }\n }\n\n static isPromiseHook(target) {\n return target?._type == \"promiseHook\";\n }\n\n //ttl : ms\n static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: { func: T; defaultValue?: Awaited<U>; lazy?: boolean }): PromiseHookData<T, U> {\n let context;\n const call = (args) => {\n context.loading = true;\n if (!context._call) {\n context._call = func(args)\n .then((i) => {\n context.value = i;\n context.loading = false;\n context._call = null;\n return i;\n })\n .catch((i) => {\n console.error(i, func);\n context.value = defaultValue;\n context._call = null;\n context.loading = false;\n throw i;\n });\n }\n\n return context._call;\n };\n const get = async (args: any) => {\n if (!context.value) {\n return call(args);\n }\n return context.value;\n };\n\n if (!context) {\n context = observable({\n _type: \"promiseHook\",\n _value: defaultValue,\n get value() {\n return context[\"_value\"];\n },\n set value(val) {\n context[\"_value\"] = val;\n },\n get,\n lazy,\n\n loading: false,\n call,\n defaultValue,\n toJSON() {\n return context.value;\n },\n toString() {\n return context.value;\n },\n });\n }\n\n return context;\n }\n}\n","import BigNumber from \"bignumber.js\";\nimport { makeAutoObservable } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\n\nexport class BigNumberState {\n value = new BigNumber(0);\n loading = false;\n decimals = 18;\n fixed = 6;\n formatter?: Function;\n constructor(args: Partial<BigNumberState>) {\n Object.assign(this, args);\n makeAutoObservable(this, {\n getFormat: false,\n });\n }\n get format() {\n if (this.loading) return \"...\";\n return this.getFormat();\n }\n\n getFormat({ decimals = this.decimals, fixed = this.fixed }: { decimals?: number; fixed?: number } = {}) {\n if (this.loading) return \"...\";\n if (this.formatter) return this.formatter(this);\n return helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** decimals).toFixed(), {\n decimals: fixed,\n });\n }\n\n setDecimals(decimals: number) {\n this.decimals = decimals;\n }\n\n setValue(value: BigNumber) {\n this.value = value;\n this.setLoading(false);\n }\n\n setLoading(val) {\n this.loading = val;\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { makeAutoObservable } from 'mobx';\nimport { helper } from '../../lib/helper';\nexport class BigNumberInputState {\n value = new BigNumber(0);\n format = '';\n loading = false;\n decimals = 18;\n formatter?: Function;\n constructor(args: Partial<BigNumberInputState>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n get noDecimasValue(): BigNumber {\n return new BigNumber(this.value).dividedBy(10 ** this.decimals);\n }\n setValue(value: any) {\n this.value = new BigNumber(value);\n // this.format = helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** this.decimals).toFixed());\n this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.setLoading(false);\n }\n setFormat(val: any) {\n this.format = val;\n // this.format = helper.number.toPrecisionFloor(this.format);\n // this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.value = new BigNumber(val).multipliedBy(10 ** this.decimals);\n }\n setLoading(val: boolean) {\n this.loading = val;\n }\n setDecimals(val: number) {\n this.decimals = val;\n }\n get isZero(): boolean {\n return this.value.isZero() && this.format == '';\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nexport class StorageState<T> {\n key: string;\n value: T | any = null;\n default: T | any = null;\n constructor(args: Partial<StorageState<T>>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n load() {\n try {\n if (typeof window == 'undefined') return\n const value = window?.localStorage?.getItem(this.key);\n this.value = StorageState.safeParse(value);\n if (this.value == null) {\n this.value = this.default;\n }\n return this.value;\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n save(value?: T) {\n try {\n if (typeof window == 'undefined') return\n if (value !== null || value !== undefined) {\n this.value = value;\n }\n window?.localStorage.setItem(this.key, JSON.stringify(value));\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n setValue(value?: T) {\n this.save(value);\n }\n\n clear() {\n try {\n if (typeof window == 'undefined') return\n window?.localStorage.removeItem(this.key);\n } catch (error) {\n return null;\n }\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nimport { helper } from \"../../lib/helper\";\nimport { _ } from \"../../lib/lodash\";\n\nexport class StorageListState<T = any> {\n key: string;\n list: T[] = [];\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n constructor(args: { key: string; }) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n\n load() {\n try {\n const value = localStorage.getItem(this.key);\n if (value) {\n this.list = StorageListState.safeParse(value);\n }\n return StorageListState.safeParse(value)\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n\n push(value: T) {\n this.list.push(value);\n this.save();\n }\n\n remove(index: number) {\n this.list.splice(index, 1);\n this.save();\n }\n\n private save() {\n try {\n localStorage.setItem(this.key, JSON.stringify(this.list));\n } catch (error) {\n }\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n this.list = [];\n } catch (error) {\n }\n }\n}\n","\n\nexport class ObjectPool {\n static pool: { [key: string]: any } = {};\n\n static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U {\n if (!ObjectPool.pool[key]) {\n ObjectPool.pool[key] = func();\n }\n return ObjectPool.pool[key];\n }\n}","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { RootStore } from \"../store/root\";\n\nexport const AppProvider = observer(({ children }: { children?: React.ReactNode }) => {\n const rootStore = RootStore.init()\n return (\n <>\n {rootStore.providers.map((store) => {\n const Component: any = store.provider;\n return <Component rootStore={rootStore} key={store.sid} />;\n })}\n {children && children}\n </>\n )\n})"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AppProvider, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-
|
|
1
|
+
export { AppProvider, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-SJ33JAK7.mjs';
|
|
2
2
|
export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-OISBIKAQ.mjs';
|
|
3
3
|
import './chunk-IMOLRP7I.mjs';
|
|
4
4
|
export { RootStore, rootStore, useStore } from './chunk-XSGTWROT.mjs';
|
package/dist/wallet.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AIem } from './chunk-5JMONDHE.mjs';
|
|
2
2
|
import './chunk-7MDKCI65.mjs';
|
|
3
|
-
import { StorageState, ObjectPool, PromiseHook, BigNumberState } from './chunk-
|
|
3
|
+
import { StorageState, ObjectPool, PromiseHook, BigNumberState } from './chunk-SJ33JAK7.mjs';
|
|
4
4
|
import './chunk-OISBIKAQ.mjs';
|
|
5
5
|
import { DialogStore } from './chunk-L6XS2K2K.mjs';
|
|
6
6
|
import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
|
|
@@ -2529,7 +2529,7 @@ var WalletRpcStore = class {
|
|
|
2529
2529
|
async addToMetamask(url) {
|
|
2530
2530
|
var _a;
|
|
2531
2531
|
try {
|
|
2532
|
-
await ((_a = window.ethereum) == null ? void 0 : _a.request({
|
|
2532
|
+
await ((_a = window == null ? void 0 : window.ethereum) == null ? void 0 : _a.request({
|
|
2533
2533
|
method: "wallet_addEthereumChain",
|
|
2534
2534
|
params: [{
|
|
2535
2535
|
chainId: `0x${4689 .toString(16)}`,
|
|
@@ -3399,25 +3399,28 @@ var WalletStore = class _WalletStore {
|
|
|
3399
3399
|
async prepare(chainId) {
|
|
3400
3400
|
const promise = new Promise(async (res, rej) => {
|
|
3401
3401
|
var _a, _b;
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
if (this.account) {
|
|
3405
|
-
if (Number((_a = this.chain) == null ? void 0 : _a.id) == Number(chainId)) {
|
|
3406
|
-
res();
|
|
3402
|
+
try {
|
|
3403
|
+
if (!window)
|
|
3407
3404
|
return;
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
if (this.switchChain) {
|
|
3413
|
-
if (((_a2 = this.chain) == null ? void 0 : _a2.id) == chainId) {
|
|
3414
|
-
clearInterval(interval);
|
|
3415
|
-
res();
|
|
3416
|
-
}
|
|
3405
|
+
if (this.account) {
|
|
3406
|
+
if (Number((_a = this.chain) == null ? void 0 : _a.id) == Number(chainId)) {
|
|
3407
|
+
res();
|
|
3408
|
+
return;
|
|
3417
3409
|
}
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3410
|
+
(_b = this.switchChain) == null ? void 0 : _b.call(this, { chainId: chainId != null ? chainId : 4689 });
|
|
3411
|
+
const interval = setInterval(() => {
|
|
3412
|
+
var _a2;
|
|
3413
|
+
if (this.switchChain) {
|
|
3414
|
+
if (((_a2 = this.chain) == null ? void 0 : _a2.id) == chainId) {
|
|
3415
|
+
try {
|
|
3416
|
+
} catch (error) {
|
|
3417
|
+
}
|
|
3418
|
+
clearInterval(interval);
|
|
3419
|
+
res();
|
|
3420
|
+
}
|
|
3421
|
+
}
|
|
3422
|
+
}, 1e3);
|
|
3423
|
+
} else {
|
|
3421
3424
|
this.openConnectModal();
|
|
3422
3425
|
const interval = setInterval(() => {
|
|
3423
3426
|
if (this.account) {
|
|
@@ -3425,9 +3428,9 @@ var WalletStore = class _WalletStore {
|
|
|
3425
3428
|
res();
|
|
3426
3429
|
}
|
|
3427
3430
|
}, 1e3);
|
|
3428
|
-
} catch (error) {
|
|
3429
|
-
rej(error);
|
|
3430
3431
|
}
|
|
3432
|
+
} catch (error) {
|
|
3433
|
+
rej(error);
|
|
3431
3434
|
}
|
|
3432
3435
|
});
|
|
3433
3436
|
await promise;
|
package/dist/wallet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../../../node_modules/@iconify/react/dist/iconify.mjs","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/type.ts"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","observer","useConnectModal","storage","localStorage","simpleNames","send","_window","Icon","InlineIcon","Methods","RestrictedMethods","_a","iotex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,QAAM,kBAAkB,CAAC,SAAwC;AAC/D,YAAM,WAAW,OAAO,SAAS,YAAY,SAAS;AACtD,aAAO,YAAY,UAAU,QAAQ,aAAa;IACpD;AAEA,aAAS,aAAa,KAAa,KAAa,OAAa;AAC3D,aAAO,IAAI,QAAQ,IAAI,OAAO,MAAM,GAAG,OAAO,GAAG,GAAG,KAAK;IAC3D;AAEA,aAAgB,aAAa,UAAkB,QAAe;AAC5D,aAAO,SACH,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAgB,QAAO;AACjD,eAAO,aAAa,QAAQ,KAAK,OAAO,OAAO,GAAG,CAAC,CAAC;MACtD,GAAG,QAAQ,IACX;IACN;AANA,YAAA,eAAA;AAQA,aAAgB,eAAe,OAAc;AAC3C,UAAI,CAAC,OAAO;AACV,eAAO;;AAGT,YAAM,eAAe,IAAI,gBAAe;AACxC,aAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAO;AACjC,YAAI,MAAM,GAAG,KAAK,MAAM;AACtB,uBAAa,OAAO,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC;;MAE/C,CAAC;AACD,YAAM,eAAe,aAAa,SAAQ;AAC1C,aAAO,eAAe,IAAI,YAAY,KAAK;IAC7C;AAbA,YAAA,iBAAA;AAeA,aAAe,cAAiB,MAAc;;AAC5C,YAAI;AAEJ,YAAI;AACF,iBAAO,MAAM,KAAK,KAAI;iBACtB,IAAM;AACN,iBAAO,CAAA;;AAGT,YAAI,CAAC,KAAK,IAAI;AACZ,gBAAM,SAAS,gBAAgB,IAAI,IAC/B,eAAe,KAAK,IAAI,KAAK,KAAK,OAAO,KACzC,sBAAsB,KAAK,UAAU;AACzC,gBAAM,IAAI,MAAM,MAAM;;AAGxB,eAAO;MACT,CAAC;;AAED,aAAsB,UACpB,KACA,QACA,MACA,SACA,aAAgC;;AAEhC,cAAM,iBAAc,OAAA,OAAA,EAClB,gBAAgB,mBAAkB,GAC/B,OAAO;AAGZ,cAAM,UAAuB;UAC3B,QAAQ,WAAM,QAAN,WAAM,SAAN,SAAU;UAClB,SAAS;;AAGX,YAAI,aAAa;AACf,kBAAQ,aAAa,IAAI;;AAG3B,YAAI,QAAQ,MAAM;AAChB,kBAAQ,OAAO,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,IAAI;;AAGtE,cAAM,OAAO,MAAM,MAAM,KAAK,OAAO;AAErC,eAAO,cAAiB,IAAI;MAC9B,CAAC;;AA5BD,YAAA,YAAA;AA8BA,aAAsB,QACpB,KACA,SACA,aAAgC;;AAEhC,cAAM,UAAuB;UAC3B,QAAQ;;AAGV,YAAI,SAAS;AACX,kBAAQ,SAAS,IAAC,OAAA,OAAA,OAAA,OAAA,CAAA,GACb,OAAO,GAAA,EACV,gBAAgB,mBAAkB,CAAA;;AAItC,YAAI,aAAa;AACf,kBAAQ,aAAa,IAAI;;AAG3B,cAAM,OAAO,MAAM,MAAM,KAAK,OAAO;AAErC,eAAO,cAAiB,IAAI;MAC9B,CAAC;;AAvBD,YAAA,UAAA;;;;;;;;;;ACxFA,QAAA,UAAA;AAGA,aAAS,QACP,SACA,MACA,YACA,OAAiC;AAEjC,YAAM,YAAW,GAAA,QAAA,cAAa,MAAM,UAAU;AAC9C,YAAM,UAAS,GAAA,QAAA,gBAAe,KAAK;AACnC,aAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;IACvC;AAEA,aAAgB,aACd,SACA,MACA,QAA+E;AAE/E,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,QAAQ,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IAClF;AAPA,YAAA,eAAA;AASA,aAAgB,YACd,SACA,MACA,QAA6E;AAE7E,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,OAAO,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IACjF;AAPA,YAAA,cAAA;AASA,aAAgB,eACd,SACA,MACA,QAAmF;AAEnF,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,WAAU,KAAK,UAAU,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IACpF;AAPA,YAAA,iBAAA;AASA,aAAgB,YACd,SACA,MACA,QACA,QAAe;AAEf,UAAI,QAAQ;AACV,gBAAO,GAAA,QAAA,SAAQ,QAAQ,QAAW,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;;AAEvD,YAAM,MAAM,QAAQ,SAAS,MAAgB,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,MAAM,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,KAAK;AACxE,cAAO,GAAA,QAAA,SAAQ,KAAK,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,WAAW;IAC1D;AAXA,YAAA,cAAA;;;;;;;;;;ACzCa,YAAA,mBAAmB;;;;;;;;;;ACEhC,QAAY;AAAZ,KAAA,SAAYA,6BAA0B;AACpC,MAAAA,4BAAA,YAAA,IAAA;AACA,MAAAA,4BAAA,UAAA,IAAA;AACA,MAAAA,4BAAA,SAAA,IAAA;IACF,GAJY,6BAAA,QAAA,+BAAA,QAAA,6BAA0B,CAAA,EAAA;;;;;;;;;;ACFtC,QAAY;AAAZ,KAAA,SAAYC,2BAAwB;AAClC,MAAAA,0BAAA,gBAAA,IAAA;AACA,MAAAA,0BAAA,iBAAA,IAAA;IACF,GAHY,2BAAA,QAAA,6BAAA,QAAA,2BAAwB,CAAA,EAAA;AAqBpC,QAAY;AAAZ,KAAA,SAAYC,kBAAe;AACzB,MAAAA,iBAAA,sBAAA,IAAA;IACF,GAFY,kBAAA,QAAA,oBAAA,QAAA,kBAAe,CAAA,EAAA;AAI3B,QAAY;AAAZ,KAAA,SAAYC,yBAAsB;AAChC,MAAAA,wBAAA,SAAA,IAAA;AACA,MAAAA,wBAAA,QAAA,IAAA;AACA,MAAAA,wBAAA,SAAA,IAAA;IACF,GAJY,yBAAA,QAAA,2BAAA,QAAA,yBAAsB,CAAA,EAAA;;;;;;;;;;ACpBlC,QAAYC;AAAZ,KAAA,SAAYA,YAAS;AACnB,MAAAA,WAAAA,WAAA,MAAA,IAAA,CAAA,IAAA;AACA,MAAAA,WAAAA,WAAA,UAAA,IAAA,CAAA,IAAA;IACF,GAHYA,aAAA,QAAA,cAAA,QAAA,YAAS,CAAA,EAAA;AA2BrB,QAAYC;AAAZ,KAAA,SAAYA,oBAAiB;AAC3B,MAAAA,mBAAA,wBAAA,IAAA;AACA,MAAAA,mBAAA,oBAAA,IAAA;AACA,MAAAA,mBAAA,WAAA,IAAA;AACA,MAAAA,mBAAA,QAAA,IAAA;AACA,MAAAA,mBAAA,SAAA,IAAA;IACF,GANYA,qBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;AAQ7B,QAAYC;AAAZ,KAAA,SAAYA,oBAAiB;AAC3B,MAAAA,mBAAA,UAAA,IAAA;AACA,MAAAA,mBAAA,UAAA,IAAA;AACA,MAAAA,mBAAA,SAAA,IAAA;IACF,GAJYA,qBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;AAM7B,QAAY;AAAZ,KAAA,SAAYC,uBAAoB;AAC9B,MAAAA,sBAAA,OAAA,IAAA;AACA,MAAAA,sBAAA,QAAA,IAAA;AACA,MAAAA,sBAAA,aAAA,IAAA;IACF,GAJY,uBAAA,QAAA,yBAAA,QAAA,uBAAoB,CAAA,EAAA;AAMhC,QAAY;AAAZ,KAAA,SAAYC,mBAAgB;AAC1B,MAAAA,kBAAA,sBAAA,IAAA;AACA,MAAAA,kBAAA,WAAA,IAAA;AACA,MAAAA,kBAAA,cAAA,IAAA;AACA,MAAAA,kBAAA,YAAA,IAAA;AACA,MAAAA,kBAAA,kBAAA,IAAA;AACA,MAAAA,kBAAA,uBAAA,IAAA;AACA,MAAAA,kBAAA,eAAA,IAAA;AACA,MAAAA,kBAAA,gBAAA,IAAA;AACA,MAAAA,kBAAA,WAAA,IAAA;AACA,MAAAA,kBAAA,cAAA,IAAA;IACF,GAXY,mBAAA,QAAA,qBAAA,QAAA,mBAAgB,CAAA,EAAA;AAa5B,QAAY;AAAZ,KAAA,SAAYC,sBAAmB;AAC7B,MAAAA,qBAAA,UAAA,IAAA;AACA,MAAAA,qBAAA,iBAAA,IAAA;AACA,MAAAA,qBAAA,QAAA,IAAA;AACA,MAAAA,qBAAA,UAAA,IAAA;AACA,MAAAA,qBAAA,YAAA,IAAA;AACA,MAAAA,qBAAA,YAAA,IAAA;AACA,MAAAA,qBAAA,eAAA,IAAA;IACF,GARY,sBAAA,QAAA,wBAAA,QAAA,sBAAmB,CAAA,EAAA;AAU/B,QAAY;AAAZ,KAAA,SAAYC,eAAY;AACtB,MAAAA,cAAA,MAAA,IAAA;AACA,MAAAA,cAAA,UAAA,IAAA;AACA,MAAAA,cAAA,KAAA,IAAA;IACF,GAJY,eAAA,QAAA,iBAAA,QAAA,eAAY,CAAA,EAAA;AAMxB,QAAY;AAAZ,KAAA,SAAYC,0BAAuB;AACjC,MAAAA,yBAAA,aAAA,IAAA;AACA,MAAAA,yBAAA,OAAA,IAAA;AACA,MAAAA,yBAAA,iBAAA,IAAA;AACA,MAAAA,yBAAA,YAAA,IAAA;IACF,GALY,0BAAA,QAAA,4BAAA,QAAA,0BAAuB,CAAA,EAAA;AAOnC,QAAY;AAAZ,KAAA,SAAYC,4BAAyB;AACnC,MAAAA,2BAAA,UAAA,IAAA;AACA,MAAAA,2BAAA,QAAA,IAAA;IACF,GAHY,4BAAA,QAAA,8BAAA,QAAA,4BAAyB,CAAA,EAAA;AAyMrC,QAAY;AAAZ,KAAA,SAAYC,eAAY;AACtB,MAAAA,cAAA,MAAA,IAAA;AACA,MAAAA,cAAA,gBAAA,IAAA;IACF,GAHY,eAAA,QAAA,iBAAA,QAAA,eAAY,CAAA,EAAA;AAKxB,QAAY;AAAZ,KAAA,SAAYC,iBAAc;AACxB,MAAAA,gBAAA,gBAAA,IAAA;AACA,MAAAA,gBAAA,UAAA,IAAA;IACF,GAHY,iBAAA,QAAA,mBAAA,QAAA,iBAAc,CAAA,EAAA;AAwG1B,QAAY;AAAZ,KAAA,SAAYC,aAAU;AACpB,MAAAA,YAAA,QAAA,IAAA;AACA,MAAAA,YAAA,MAAA,IAAA;IACF,GAHY,aAAA,QAAA,eAAA,QAAA,aAAU,CAAA,EAAA;;;;;;;;;;AC5YtB,QAAY;AAAZ,KAAA,SAAYC,qBAAkB;AAC5B,MAAAA,oBAAA,cAAA,IAAA;AACA,MAAAA,oBAAA,mBAAA,IAAA;AACA,MAAAA,oBAAA,SAAA,IAAA;IACF,GAJY,qBAAA,QAAA,uBAAA,QAAA,qBAAkB,CAAA,EAAA;AA6B9B,QAAY;AAAZ,KAAA,SAAYC,iBAAc;AACxB,MAAAA,gBAAA,QAAA,IAAA;AACA,MAAAA,gBAAA,OAAA,IAAA;AACA,MAAAA,gBAAA,YAAA,IAAA;AACA,MAAAA,gBAAA,SAAA,IAAA;IACF,GALY,iBAAA,QAAA,mBAAA,QAAA,iBAAc,CAAA,EAAA;AA+B1B,QAAY;AAAZ,KAAA,SAAYC,WAAQ;AAClB,MAAAA,UAAA,QAAA,IAAA;AACA,MAAAA,UAAA,WAAA,IAAA;AACA,MAAAA,UAAA,sBAAA,IAAA;AACA,MAAAA,UAAA,eAAA,IAAA;AACA,MAAAA,UAAA,gBAAA,IAAA;AACA,MAAAA,UAAA,SAAA,IAAA;AACA,MAAAA,UAAA,sBAAA,IAAA;AACA,MAAAA,UAAA,eAAA,IAAA;AACA,MAAAA,UAAA,SAAA,IAAA;IACF,GAVY,WAAA,QAAA,aAAA,QAAA,WAAQ,CAAA,EAAA;;;;;;;;;;AClDpB,QAAYC;AAAZ,KAAA,SAAYA,YAAS;AACnB,MAAAA,WAAA,OAAA,IAAA;AACA,MAAAA,WAAA,QAAA,IAAA;AACA,MAAAA,WAAA,cAAA,IAAA;IACF,GAJYA,aAAA,QAAA,cAAA,QAAA,YAAS,CAAA,EAAA;;;;;ACZrB;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA;AAAA;;;;;;;;ACC5D,QAAY;AAAZ,KAAA,SAAYC,wBAAqB;AAC/B,MAAAA,uBAAA,gBAAA,IAAA;AACA,MAAAA,uBAAA,qBAAA,IAAA;IACF,GAHY,wBAAA,QAAA,0BAAA,QAAA,wBAAqB,CAAA,EAAA;;;;;;;;;;ACAjC,QAAY;AAAZ,KAAA,SAAYC,0BAAuB;AACjC,MAAAA,yBAAA,YAAA,IAAA;AACA,MAAAA,yBAAA,SAAA,IAAA;IACF,GAHY,0BAAA,QAAA,4BAAA,QAAA,0BAAuB,CAAA,EAAA;AAUnC,QAAY;AAAZ,KAAA,SAAYC,oBAAiB;AAC3B,MAAAA,mBAAA,oBAAA,IAAA;AACA,MAAAA,mBAAA,WAAA,IAAA;IACF,GAHY,oBAAA,QAAA,sBAAA,QAAA,oBAAiB,CAAA,EAAA;;;;;;;;;;ACZ7B,QAAY;AAAZ,KAAA,SAAYC,aAAU;AACpB,MAAAA,YAAA,SAAA,IAAA;AACA,MAAAA,YAAA,KAAA,IAAA;AACA,MAAAA,YAAA,KAAA,IAAA;IACF,GAJY,aAAA,QAAA,eAAA,QAAA,aAAU,CAAA,EAAA;;;;;ACAtB;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACD5D,QAAA,aAAA;AA0BA,QAAA,WAAA;AAOA,iBAAA,qBAAA,OAAA;AACA,iBAAA,qBAAA,OAAA;AACA,iBAAA,wBAAA,OAAA;AACA,iBAAA,kBAAA,OAAA;AACA,iBAAA,kBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,wBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,yBAAA,OAAA;AACA,iBAAA,iBAAA,OAAA;AAGA,QAAI,UAAkB,SAAA;AAKf,QAAM,aAAa,CAAC,QAAqB;AAC9C,gBAAU;IACZ;AAFa,YAAA,aAAU;AASvB,aAAgB,iBACd,SACA,MAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,8BAA8B,EAAE,MAAM,EAAE,QAAO,GAAI,KAAI,CAAE;IACxF;AALA,YAAA,mBAAA;AAUA,aAAgB,cAAc,SAAiB,SAAe;AAC5D,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IACpG;AAFA,YAAA,gBAAA;AAOA,aAAgB,YAAY,SAAiB,SAAe;AAC1D,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IACpG;AAFA,YAAA,cAAA;AAOA,aAAgB,qBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,4DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,uBAAA;AAoBA,aAAgB,sBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,6DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,wBAAA;AAoBA,aAAgB,wBACd,SACA,SACA,OACA,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,+DACA;QACE,MAAM,EAAE,SAAS,QAAO;QACxB;SAEF,OAAO;IAEX;AAfA,YAAA,0BAAA;AAoBA,aAAgB,YACd,SACA,SACA,WAAW,OACX,QAAkE,CAAA,GAAE;AAEpE,cAAO,GAAA,WAAA,aAAY,SAAS,4DAA4D;QACtF,MAAM,EAAE,SAAS,SAAS,SAAQ;QAClC;OACD;IACH;AAVA,YAAA,cAAA;AAeA,aAAgB,oBAAiB;AAC/B,cAAO,GAAA,WAAA,aAAY,SAAS,mCAAmC;IACjE;AAFA,YAAA,oBAAA;AAOA,aAAgB,cAAc,SAAiB,SAAe;AAC5D,cAAO,GAAA,WAAA,aAAY,SAAS,+CAA+C,EAAE,MAAM,EAAE,SAAS,QAAO,EAAE,CAAE;IAC3G;AAFA,YAAA,gBAAA;AAOA,aAAgB,iBAAiB,SAAe;AAC9C,cAAO,GAAA,WAAA,aAAY,SAAS,8BAA8B,EAAE,MAAM,EAAE,QAAO,EAAE,CAAE;IACjF;AAFA,YAAA,mBAAA;AAOA,aAAgB,gBACd,SACA,SACA,QAAsE,CAAA,GAAE;AAExE,cAAO,GAAA,WAAA,aAAY,SAAS,qDAAqD;QAC/E,MAAM,EAAE,SAAS,QAAO;QACxB;OACD;IACH;AATA,YAAA,kBAAA;AAcA,aAAgB,oBACd,SACA,SACA,QAAgF,CAAA,GAChF,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,qDACA,EAAE,MAAM,EAAE,SAAS,QAAO,GAAI,MAAK,GACnC,OAAO;IAEX;AAZA,YAAA,sBAAA;AAiBA,aAAgB,sBACd,SACA,SACA,QAAmE,CAAA,GACnE,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,kEACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,MAAK,GACjD,OAAO;IAEX;AAZA,YAAA,wBAAA;AAiBA,aAAgB,oBACd,SACA,SACA,QAAkE,CAAA,GAClE,SAAgB;AAEhB,cAAO,GAAA,WAAA,aACL,SACA,iEACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,MAAK,GACjD,OAAO;IAEX;AAZA,YAAA,sBAAA;AAiBA,aAAgB,sBAAsB,SAAiB,eAAqB;AAC1E,cAAO,GAAA,WAAA,aAAY,SAAS,qDAAqD;QAC/E,MAAM,EAAE,SAAS,cAAa;OAC/B;IACH;AAJA,YAAA,wBAAA;AASA,aAAgB,kBACd,SACA,YACA,WAA8E;AAE9E,cAAO,GAAA,WAAA,gBAAe,SAAS,kDAAkD;QAC/E,MAAM,EAAE,SAAS,WAAU;QAC3B,MAAM,EAAE,UAAS;OAClB;IACH;AATA,YAAA,oBAAA;AAcA,aAAgB,sBACd,SACA,SACA,MAAkE;AAElE,cAAO,GAAA,WAAA,cAAa,SAAS,+EAA+E;QAC1G,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,wBAAA;AAWA,aAAgB,UAAU,SAAiB,SAAe;AACxD,cAAO,GAAA,WAAA,aAAY,SAAS,oDAAoD;QAC9E,MAAM,EAAE,SAAS,cAAc,QAAO;OACvC;IACH;AAJA,YAAA,YAAA;AASA,aAAgB,mBACd,SACA,SACA,MAA6D;AAE7D,cAAO,GAAA,WAAA,cAAa,SAAS,4DAA4D;QACvF,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,oBACd,SACA,aACA,aACA,IAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,4EAA4E;QACvG,MAAM,EAAE,SAAkB,cAAc,YAAW;QACnD,MAAM,EAAE,MAAM,aAAa,GAAE;OAC9B;IACH;AAVA,YAAA,sBAAA;AAeA,aAAgB,gBAAgB,OAAwD;AACtF,cAAO,GAAA,WAAA,aAAY,SAAS,cAAc;QACxC;OACD;IACH;AAJA,YAAA,kBAAA;AASA,aAAgB,eAAe,SAAe;AAC5C,cAAO,GAAA,WAAA,aAAY,SAAS,wBAAwB;QAClD,MAAM,EAAE,QAAgB;OACzB;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,YACd,SACA,QAA6D,CAAA,GAAE;AAE/D,cAAO,GAAA,WAAA,aAAY,SAAS,kCAAkC;QAC5D,MAAM,EAAE,QAAgB;QACxB;OACD;IACH;AARA,YAAA,cAAA;AAaA,aAAgB,gBAAgB,SAAe;AAC7C,cAAO,GAAA,WAAA,aAAY,SAAS,4CAA4C;QACtE,MAAM,EAAE,QAAgB;OACzB;IACH;AAJA,YAAA,kBAAA;AASA,aAAgB,eACd,SACA,aACA,IAA2D;AAE3D,cAAO,GAAA,WAAA,cAAa,SAAS,qCAAqC;QAChE,MAAM,EAAE,QAAgB;QACxB,MAAM,EAAE,MAAM,aAAa,GAAE;OAC9B;IACH;AATA,YAAA,iBAAA;AAcA,aAAgB,gBAAgB,SAAiB,SAAiB,SAAgB;AAChF,cAAO,GAAA,WAAA,aACL,SACA,sDACA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAO,GAAI,OAAO,CAAA,EAAE,GACrD,OAAO;IAEX;AAPA,YAAA,kBAAA;AAYA,aAAgB,eAAe,SAAiB,aAAmB;AACjE,cAAO,GAAA,WAAA,aAAY,SAAS,gDAAgD;QAC1E,MAAM,EAAE,SAAS,cAAc,YAAW;OAC3C;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,mBACd,SACA,SACA,MAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,sDAAsD;QACjF,MAAM,EAAE,SAAS,cAAc,QAAO;QACtC;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,mBACd,SACA,aACA,MAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,2DAA2D;QACtF,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;OACD;IACH;AATA,YAAA,qBAAA;AAcA,aAAgB,aAAa,SAAiB,QAA0B,CAAA,GAAE;AACxE,cAAO,GAAA,WAAA,aAAY,SAAS,kCAAkC;QAC5D,MAAM,EAAE,QAAO;QACf;OACD;IACH;AALA,YAAA,eAAA;AAUA,aAAgB,eAAe,MAAyD;AACtF,cAAO,GAAA,WAAA,cAAa,SAAS,8BAA8B;QACzD;OACD;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,eAAe,SAAiB,SAAiB,MAAY;AAC3E,cAAO,GAAA,WAAA,gBAAe,SAAS,0EAA0E;QACvG,MAAM,EAAE,SAAS,cAAc,SAAS,KAAI;OAC7C;IACH;AAJA,YAAA,iBAAA;AASA,aAAgB,iBAAiB,SAAiB,MAAY;AAC5D,cAAO,GAAA,WAAA,gBAAe,SAAS,qDAAqD;QAClF,MAAM,EAAE,SAAS,KAAI;OACtB;IACH;AAJA,YAAA,mBAAA;AAkBA,aAAgB,cACd,SACA,aACA,MACA,SAA8D;AAE9D,cAAO,GAAA,WAAA,cAAa,SAAS,oDAAoD;QAC/E,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;QACA;OACD;IACH;AAXA,YAAA,gBAAA;AA0BA,aAAgB,YACd,SACA,aACA,eACA,MACA,SAA4D;AAE5D,cAAO,GAAA,WAAA,aAAY,SAAS,6DAA6D;QACvF,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;QACA;OACD;IACH;AAZA,YAAA,cAAA;AAiBA,aAAgB,4BACd,SACA,aACA,eAAqB;AAErB,cAAO,GAAA,WAAA,cAAa,SAAS,2EAA2E;QACtG,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE,MAAM;OACP;IACH;AATA,YAAA,8BAAA;AAmBA,aAAgB,YACd,SACA,aACA,eACA,MAAsD;AAEtD,cAAO,GAAA,WAAA,aAAY,SAAS,oEAAoE;QAC9F,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,cAAA;AAwBA,aAAgB,mBACd,SACA,aACA,eACA,SAAyD;AAEzD,cAAO,GAAA,WAAA,aAAY,SAAS,6DAA6D;QACvF,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,qBAAA;AAuBA,aAAgB,sBACd,SACA,aACA,eACA,SAA4D;AAE5D,cAAO,GAAA,WAAA,gBAAe,SAAS,6DAA6D;QAC1F,MAAM,EAAE,SAAS,cAAc,aAAa,QAAQ,cAAa;QACjE;OACD;IACH;AAVA,YAAA,wBAAA;AAkBA,aAAgB,uBACd,SACA,aACA,MAAkE;AAElE,cAAO,GAAA,WAAA,cAAa,SAAS,sDAAsD;QACjF,MAAM,EAAE,SAAS,cAAc,YAAW;QAC1C;OACD;IACH;AATA,YAAA,yBAAA;AAeA,aAAgB,kBAAkB,OAA8D;AAC9F,cAAO,GAAA,WAAA,gBAAe,SAAS,qBAAqB,EAAE,MAAK,CAAE;IAC/D;AAFA,YAAA,oBAAA;AAQA,aAAgB,eAAe,OAA2D;AACxF,cAAO,GAAA,WAAA,gBAAe,SAAS,yBAAyB,EAAE,MAAK,CAAE;IACnE;AAFA,YAAA,iBAAA;AAOA,aAAgB,iBACd,OACA,OAA0F;AAE1F,cAAO,GAAA,WAAA,aAAY,SAAS,aAAa;QACvC,OAAK,OAAA,OAAA,OAAA,OAAA,CAAA,GACA,KAAK,GAAA,EACR,OAAO,MAAM,KAAK,GAAG,EAAC,CAAA;OAEzB;IACH;AAVA,YAAA,mBAAA;AAYA,aAAgB,YAAY,SAAiB,iBAAuB;AAClE,cAAO,GAAA,WAAA,aAAY,SAAS,oDAAoD;QAC9E,MAAM;UACJ;UACA;;OAEH;IACH;AAPA,YAAA,cAAA;AASA,aAAgB,eAAY;AAC1B,cAAO,GAAA,WAAA,aAAY,SAAS,kBAAkB,EAAE,aAAa,UAAS,CAAE;IAC1E;AAFA,YAAA,eAAA;AAIA,aAAgB,WAAW,MAAqD;AAC9E,cAAO,GAAA,WAAA,cAAa,SAAS,mBAAmB;QAC9C;QACA,aAAa;OACd;IACH;AALA,YAAA,aAAA;AAOA,aAAgB,cAAc,MAAwD;AACpF,cAAO,GAAA,WAAA,cAAa,SAAS,gBAAgB;QAC3C;QACA,aAAa;OACd;IACH;AALA,YAAA,gBAAA;AAOA,aAAgB,WAAW,SAAe;AACxC,cAAO,GAAA,WAAA,aAAY,SAAS,0BAA0B;QACpD,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,aAAA;AAOA,aAAgB,cAAc,SAAe;AAC3C,cAAO,GAAA,WAAA,gBAAe,SAAS,0BAA0B;QACvD,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,gBAAA;AAOA,aAAgB,sBAAmB;AACjC,cAAO,GAAA,WAAA,aAAY,SAAS,yBAAyB;IACvD;AAFA,YAAA,sBAAA;AAIA,aAAgB,uBAAuB,SAAe;AACpD,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC;QAClE,MAAM,EAAE,QAAO;QACf,aAAa;OACd;IACH;AALA,YAAA,yBAAA;AAOA,aAAgB,uBACd,SACA,MAAmE;AAEnE,cAAO,GAAA,WAAA,aAAY,SAAS,wCAAwC;QAClE,MAAM,EAAE,QAAO;QACf;QACA,aAAa;OACd;IACH;AATA,YAAA,yBAAA;;;;;AC9qBA,SAAgB,oBAAkD,WAAW,kBAAkB;AAC/F,SAAS,aAAa,2BAA2B;AACjD,OAAOC,UAAS,aAAAC,kBAAiB;AACjC,SAAS,YAAAC,iBAAgB;AACzB,SAAS,qBAAqB;;;ACJ9B,SAAgB,iBAAiB;AAKjC,OAAO,eAAe;AAEtB,OAAO,kBAAkB;AAEzB,SAAiB,YAAY,YAAY,eAAe,gBAAgB,uBAAwB;AAChG,SAAgB,mBAAAC,wBAA4C;;;ACV5D,OAAOH,YAAW;AAElB,IAAM,gBAAgB;AACtB,IAAM,eAAe,CAAC,OAAO,UAAU,iBAAiB,WAAW,OAAO;AACxE,QAAM,iBAAiB,MAAM,MAAM,GAAG;AACtC,MAAI,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,QAAI,eAAe,SAAS,KAAK,eAAe,SAAS,GAAG;AAC1D,aAAO;AAAA,IACT;AACA,eAAW,eAAe,MAAM,EAAE,MAAM,CAAC;AAAA,EAC3C;AACA,MAAI,eAAe,SAAS,KAAK,CAAC,eAAe,QAAQ;AACvD,WAAO;AAAA,EACT;AACA,MAAI,eAAe,SAAS,GAAG;AAC7B,UAAM,QAAQ,eAAe,IAAI;AACjC,UAAM,SAAS,eAAe,IAAI;AAClC,UAAM,SAAS;AAAA;AAAA,MAEb,UAAU,eAAe,SAAS,IAAI,eAAe,CAAC,IAAI;AAAA,MAC1D;AAAA,MACA,MAAM;AAAA,IACR;AACA,WAAO,YAAY,CAAC,iBAAiB,MAAM,IAAI,OAAO;AAAA,EACxD;AACA,QAAM,OAAO,eAAe,CAAC;AAC7B,QAAM,gBAAgB,KAAK,MAAM,GAAG;AACpC,MAAI,cAAc,SAAS,GAAG;AAC5B,UAAM,SAAS;AAAA,MACb;AAAA,MACA,QAAQ,cAAc,MAAM;AAAA,MAC5B,MAAM,cAAc,KAAK,GAAG;AAAA,IAC9B;AACA,WAAO,YAAY,CAAC,iBAAiB,MAAM,IAAI,OAAO;AAAA,EACxD;AACA,MAAI,mBAAmB,aAAa,IAAI;AACtC,UAAM,SAAS;AAAA,MACb;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AACA,WAAO,YAAY,CAAC,iBAAiB,QAAQ,eAAe,IAAI,OAAO;AAAA,EACzE;AACA,SAAO;AACT;AACA,IAAM,mBAAmB,CAAC,MAAM,oBAAoB;AAClD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SAAO,CAAC,GAAG,KAAK,aAAa,MAAM,KAAK,SAAS,MAAM,aAAa,OAAO,mBAAmB,KAAK,WAAW,MAAM,KAAK,OAAO,MAAM,aAAa,MAAM,KAAK,KAAK,MAAM,aAAa;AACxL;AAEA,IAAM,wBAAwB,OAAO;AAAA,EACnC;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;AACA,IAAM,6BAA6B,OAAO,OAAO;AAAA,EAC/C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AACD,IAAM,mBAAmB,OAAO,OAAO,kCAClC,wBACA,2BACJ;AACD,IAAM,2BAA2B,OAAO,OAAO,iCAC1C,mBAD0C;AAAA,EAE7C,MAAM;AAAA,EACN,QAAQ;AACV,EAAC;AAED,SAAS,yBAAyB,MAAM,MAAM;AAC5C,QAAM,SAAS,CAAC;AAChB,MAAI,CAAC,KAAK,UAAU,CAAC,KAAK,OAAO;AAC/B,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,CAAC,KAAK,UAAU,CAAC,KAAK,OAAO;AAC/B,WAAO,QAAQ;AAAA,EACjB;AACA,QAAM,WAAW,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM;AAC3D,MAAI,QAAQ;AACV,WAAO,SAAS;AAAA,EAClB;AACA,SAAO;AACT;AAEA,SAAS,cAAc,QAAQ,OAAO;AACpC,QAAM,SAAS,yBAAyB,QAAQ,KAAK;AACrD,aAAW,OAAO,0BAA0B;AAC1C,QAAI,OAAO,4BAA4B;AACrC,UAAI,OAAO,UAAU,EAAE,OAAO,SAAS;AACrC,eAAO,GAAG,IAAI,2BAA2B,GAAG;AAAA,MAC9C;AAAA,IACF,WAAW,OAAO,OAAO;AACvB,aAAO,GAAG,IAAI,MAAM,GAAG;AAAA,IACzB,WAAW,OAAO,QAAQ;AACxB,aAAO,GAAG,IAAI,OAAO,GAAG;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,aAAa,MAAM,OAAO;AACjC,QAAM,QAAQ,KAAK;AACnB,QAAM,UAAU,KAAK,WAA2B,uBAAO,OAAO,IAAI;AAClE,QAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,WAAS,QAAQ,MAAM;AACrB,QAAI,MAAM,IAAI,GAAG;AACf,aAAO,SAAS,IAAI,IAAI,CAAC;AAAA,IAC3B;AACA,QAAI,EAAE,QAAQ,WAAW;AACvB,eAAS,IAAI,IAAI;AACjB,YAAM,SAAS,QAAQ,IAAI,KAAK,QAAQ,IAAI,EAAE;AAC9C,YAAM,QAAQ,UAAU,QAAQ,MAAM;AACtC,UAAI,OAAO;AACT,iBAAS,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK;AAAA,MACxC;AAAA,IACF;AACA,WAAO,SAAS,IAAI;AAAA,EACtB;AACA,GAAC,SAAS,OAAO,KAAK,KAAK,EAAE,OAAO,OAAO,KAAK,OAAO,CAAC,GAAG,QAAQ,OAAO;AAC1E,SAAO;AACT;AAEA,SAAS,oBAAoB,MAAM,MAAM,MAAM;AAC7C,QAAM,QAAQ,KAAK;AACnB,QAAM,UAAU,KAAK,WAA2B,uBAAO,OAAO,IAAI;AAClE,MAAI,eAAe,CAAC;AACpB,WAAS,MAAM,OAAO;AACpB,mBAAe;AAAA,MACb,MAAM,KAAK,KAAK,QAAQ,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACA,QAAM,IAAI;AACV,OAAK,QAAQ,KAAK;AAClB,SAAO,cAAc,MAAM,YAAY;AACzC;AAEA,SAAS,aAAa,MAAM,UAAU;AACpC,QAAM,QAAQ,CAAC;AACf,MAAI,OAAO,SAAS,YAAY,OAAO,KAAK,UAAU,UAAU;AAC9D,WAAO;AAAA,EACT;AACA,MAAI,KAAK,qBAAqB,OAAO;AACnC,SAAK,UAAU,QAAQ,CAAC,SAAS;AAC/B,eAAS,MAAM,IAAI;AACnB,YAAM,KAAK,IAAI;AAAA,IACjB,CAAC;AAAA,EACH;AACA,QAAM,OAAO,aAAa,IAAI;AAC9B,aAAW,QAAQ,MAAM;AACvB,UAAM,OAAO,KAAK,IAAI;AACtB,QAAI,MAAM;AACR,eAAS,MAAM,oBAAoB,MAAM,MAAM,IAAI,CAAC;AACpD,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,2BAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,SAAS,CAAC;AAAA,EACV,WAAW,CAAC;AAAA,GACT;AAEL,SAAS,mBAAmB,MAAM,UAAU;AAC1C,aAAW,QAAQ,UAAU;AAC3B,QAAI,QAAQ,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,SAAS,IAAI,GAAG;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,uBAAuB,KAAK;AACnC,MAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;AAC3C,WAAO;AAAA,EACT;AACA,QAAM,OAAO;AACb,MAAI,OAAO,KAAK,WAAW,YAAY,CAAC,IAAI,SAAS,OAAO,IAAI,UAAU,UAAU;AAClF,WAAO;AAAA,EACT;AACA,MAAI,CAAC,mBAAmB,KAAK,wBAAwB,GAAG;AACtD,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,KAAK;AACnB,aAAW,QAAQ,OAAO;AACxB,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,CAAC,KAAK,MAAM,aAAa,KAAK,OAAO,KAAK,SAAS,YAAY,CAAC;AAAA,MAClE;AAAA,MACA;AAAA,IACF,GAAG;AACD,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,UAAU,KAAK,WAA2B,uBAAO,OAAO,IAAI;AAClE,aAAW,QAAQ,SAAS;AAC1B,UAAM,OAAO,QAAQ,IAAI;AACzB,UAAM,SAAS,KAAK;AACpB,QAAI,CAAC,KAAK,MAAM,aAAa,KAAK,OAAO,WAAW,YAAY,CAAC,MAAM,MAAM,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC;AAAA,MACrG;AAAA,MACA;AAAA,IACF,GAAG;AACD,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,cAA8B,uBAAO,OAAO,IAAI;AACtD,SAAS,WAAW,UAAU,QAAQ;AACpC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,OAAuB,uBAAO,OAAO,IAAI;AAAA,IACzC,SAAyB,oBAAI,IAAI;AAAA,EACnC;AACF;AACA,SAAS,WAAW,UAAU,QAAQ;AACpC,QAAM,kBAAkB,YAAY,QAAQ,MAAM,YAAY,QAAQ,IAAoB,uBAAO,OAAO,IAAI;AAC5G,SAAO,gBAAgB,MAAM,MAAM,gBAAgB,MAAM,IAAI,WAAW,UAAU,MAAM;AAC1F;AACA,SAAS,WAAWI,UAAS,MAAM;AACjC,MAAI,CAAC,uBAAuB,IAAI,GAAG;AACjC,WAAO,CAAC;AAAA,EACV;AACA,SAAO,aAAa,MAAM,CAAC,MAAM,SAAS;AACxC,QAAI,MAAM;AACR,MAAAA,SAAQ,MAAM,IAAI,IAAI;AAAA,IACxB,OAAO;AACL,MAAAA,SAAQ,QAAQ,IAAI,IAAI;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACA,SAAS,iBAAiBA,UAAS,MAAM,MAAM;AAC7C,MAAI;AACF,QAAI,OAAO,KAAK,SAAS,UAAU;AACjC,MAAAA,SAAQ,MAAM,IAAI,IAAI,mBAAK;AAC3B,aAAO;AAAA,IACT;AAAA,EACF,SAAS,KAAK;AAAA,EACd;AACA,SAAO;AACT;AAkBA,IAAI,cAAc;AAClB,SAAS,iBAAiB,OAAO;AAC/B,MAAI,OAAO,UAAU,WAAW;AAC9B,kBAAc;AAAA,EAChB;AACA,SAAO;AACT;AACA,SAAS,YAAY,MAAM;AACzB,QAAM,OAAO,OAAO,SAAS,WAAW,aAAa,MAAM,MAAM,WAAW,IAAI;AAChF,MAAI,MAAM;AACR,UAAMA,WAAU,WAAW,KAAK,UAAU,KAAK,MAAM;AACrD,UAAM,WAAW,KAAK;AACtB,WAAOA,SAAQ,MAAM,QAAQ,MAAMA,SAAQ,QAAQ,IAAI,QAAQ,IAAI,OAAO;AAAA,EAC5E;AACF;AACA,SAAS,QAAQ,MAAM,MAAM;AAC3B,QAAM,OAAO,aAAa,MAAM,MAAM,WAAW;AACjD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,QAAMA,WAAU,WAAW,KAAK,UAAU,KAAK,MAAM;AACrD,SAAO,iBAAiBA,UAAS,KAAK,MAAM,IAAI;AAClD;AACA,SAAS,cAAc,MAAM,UAAU;AACrC,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,aAAa,UAAU;AAChC,eAAW,KAAK,YAAY;AAAA,EAC9B;AACA,MAAI,eAAe,CAAC,YAAY,CAAC,KAAK,QAAQ;AAC5C,QAAI,QAAQ;AACZ,QAAI,uBAAuB,IAAI,GAAG;AAChC,WAAK,SAAS;AACd,mBAAa,MAAM,CAAC,MAAM,SAAS;AACjC,YAAI,QAAQ,QAAQ,MAAM,IAAI,GAAG;AAC/B,kBAAQ;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACA,QAAM,SAAS,KAAK;AACpB,MAAI,CAAC,iBAAiB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR,CAAC,GAAG;AACF,WAAO;AAAA,EACT;AACA,QAAMA,WAAU,WAAW,UAAU,MAAM;AAC3C,SAAO,CAAC,CAAC,WAAWA,UAAS,IAAI;AACnC;AAYA,IAAM,gCAAgC,OAAO,OAAO;AAAA,EAClD,OAAO;AAAA,EACP,QAAQ;AACV,CAAC;AACD,IAAM,4BAA4B,OAAO,OAAO,kCAE3C,gCAEA,2BACJ;AAED,IAAM,aAAa;AACnB,IAAM,YAAY;AAClB,SAAS,cAAc,MAAM,OAAO,WAAW;AAC7C,MAAI,UAAU,GAAG;AACf,WAAO;AAAA,EACT;AACA,cAAY,aAAa;AACzB,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,KAAK,KAAK,OAAO,QAAQ,SAAS,IAAI;AAAA,EAC/C;AACA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,WAAW,KAAK,MAAM,UAAU;AACtC,MAAI,aAAa,QAAQ,CAAC,SAAS,QAAQ;AACzC,WAAO;AAAA,EACT;AACA,QAAM,WAAW,CAAC;AAClB,MAAI,OAAO,SAAS,MAAM;AAC1B,MAAI,WAAW,UAAU,KAAK,IAAI;AAClC,SAAO,MAAM;AACX,QAAI,UAAU;AACZ,YAAM,MAAM,WAAW,IAAI;AAC3B,UAAI,MAAM,GAAG,GAAG;AACd,iBAAS,KAAK,IAAI;AAAA,MACpB,OAAO;AACL,iBAAS,KAAK,KAAK,KAAK,MAAM,QAAQ,SAAS,IAAI,SAAS;AAAA,MAC9D;AAAA,IACF,OAAO;AACL,eAAS,KAAK,IAAI;AAAA,IACpB;AACA,WAAO,SAAS,MAAM;AACtB,QAAI,SAAS,QAAQ;AACnB,aAAO,SAAS,KAAK,EAAE;AAAA,IACzB;AACA,eAAW,CAAC;AAAA,EACd;AACF;AAEA,IAAM,iBAAiB,CAAC,UAAU,UAAU,WAAW,UAAU,eAAe,UAAU;AAC1F,SAAS,UAAU,MAAM,gBAAgB;AACvC,QAAM,WAAW,kCACZ,mBACA;AAEL,QAAM,qBAAqB,kCACtB,4BACA;AAEL,QAAM,MAAM;AAAA,IACV,MAAM,SAAS;AAAA,IACf,KAAK,SAAS;AAAA,IACd,OAAO,SAAS;AAAA,IAChB,QAAQ,SAAS;AAAA,EACnB;AACA,MAAI,OAAO,SAAS;AACpB,GAAC,UAAU,kBAAkB,EAAE,QAAQ,CAAC,UAAU;AAChD,UAAM,kBAAkB,CAAC;AACzB,UAAM,QAAQ,MAAM;AACpB,UAAM,QAAQ,MAAM;AACpB,QAAI,WAAW,MAAM;AACrB,QAAI,OAAO;AACT,UAAI,OAAO;AACT,oBAAY;AAAA,MACd,OAAO;AACL,wBAAgB;AAAA,UACd,gBAAgB,IAAI,QAAQ,IAAI,MAAM,SAAS,IAAI,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI;AAAA,QACtF;AACA,wBAAgB,KAAK,aAAa;AAClC,YAAI,MAAM,IAAI,OAAO;AAAA,MACvB;AAAA,IACF,WAAW,OAAO;AAChB,sBAAgB;AAAA,QACd,gBAAgB,IAAI,IAAI,MAAM,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,KAAK,SAAS,IAAI;AAAA,MACvF;AACA,sBAAgB,KAAK,aAAa;AAClC,UAAI,MAAM,IAAI,OAAO;AAAA,IACvB;AACA,QAAI;AACJ,QAAI,WAAW,GAAG;AAChB,kBAAY,KAAK,MAAM,WAAW,CAAC,IAAI;AAAA,IACzC;AACA,eAAW,WAAW;AACtB,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,oBAAY,IAAI,SAAS,IAAI,IAAI;AACjC,wBAAgB;AAAA,UACd,eAAe,UAAU,SAAS,IAAI,MAAM,UAAU,SAAS,IAAI;AAAA,QACrE;AACA;AAAA,MACF,KAAK;AACH,wBAAgB;AAAA,UACd,iBAAiB,IAAI,QAAQ,IAAI,IAAI,MAAM,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI;AAAA,QACxG;AACA;AAAA,MACF,KAAK;AACH,oBAAY,IAAI,QAAQ,IAAI,IAAI;AAChC,wBAAgB;AAAA,UACd,gBAAgB,UAAU,SAAS,IAAI,MAAM,UAAU,SAAS,IAAI;AAAA,QACtE;AACA;AAAA,IACJ;AACA,QAAI,WAAW,MAAM,GAAG;AACtB,UAAI,IAAI,SAAS,IAAI,KAAK;AACxB,oBAAY,IAAI;AAChB,YAAI,OAAO,IAAI;AACf,YAAI,MAAM;AAAA,MACZ;AACA,UAAI,IAAI,UAAU,IAAI,QAAQ;AAC5B,oBAAY,IAAI;AAChB,YAAI,QAAQ,IAAI;AAChB,YAAI,SAAS;AAAA,MACf;AAAA,IACF;AACA,QAAI,gBAAgB,QAAQ;AAC1B,aAAO,mBAAmB,gBAAgB,KAAK,GAAG,IAAI,OAAO,OAAO;AAAA,IACtE;AAAA,EACF,CAAC;AACD,QAAM,sBAAsB,mBAAmB;AAC/C,QAAM,uBAAuB,mBAAmB;AAChD,QAAM,WAAW,IAAI;AACrB,QAAM,YAAY,IAAI;AACtB,MAAI;AACJ,MAAI;AACJ,MAAI,wBAAwB,MAAM;AAChC,aAAS,yBAAyB,OAAO,QAAQ,yBAAyB,SAAS,YAAY;AAC/F,YAAQ,cAAc,QAAQ,WAAW,SAAS;AAAA,EACpD,OAAO;AACL,YAAQ,wBAAwB,SAAS,WAAW;AACpD,aAAS,yBAAyB,OAAO,cAAc,OAAO,YAAY,QAAQ,IAAI,yBAAyB,SAAS,YAAY;AAAA,EACtI;AACA,QAAM,aAAa,CAAC;AACpB,QAAM,UAAU,CAAC,MAAM,UAAU;AAC/B,QAAI,CAAC,eAAe,KAAK,GAAG;AAC1B,iBAAW,IAAI,IAAI,MAAM,SAAS;AAAA,IACpC;AAAA,EACF;AACA,UAAQ,SAAS,KAAK;AACtB,UAAQ,UAAU,MAAM;AACxB,aAAW,UAAU,IAAI,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI,SAAS,IAAI,MAAM,SAAS,SAAS,IAAI,MAAM,UAAU,SAAS;AAC3H,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAM,QAAQ;AACd,IAAM,eAAe,cAAc,KAAK,IAAI,EAAE,SAAS,EAAE,KAAK,KAAK,OAAO,IAAI,WAAW,GAAG,SAAS,EAAE;AACvG,IAAI,UAAU;AACd,SAAS,WAAW,MAAM,SAAS,cAAc;AAC/C,QAAM,MAAM,CAAC;AACb,MAAI;AACJ,SAAO,QAAQ,MAAM,KAAK,IAAI,GAAG;AAC/B,QAAI,KAAK,MAAM,CAAC,CAAC;AAAA,EACnB;AACA,MAAI,CAAC,IAAI,QAAQ;AACf,WAAO;AAAA,EACT;AACA,QAAM,SAAS,YAAY,KAAK,OAAO,IAAI,WAAW,KAAK,IAAI,GAAG,SAAS,EAAE;AAC7E,MAAI,QAAQ,CAAC,OAAO;AAClB,UAAM,QAAQ,OAAO,WAAW,aAAa,OAAO,EAAE,IAAI,UAAU,WAAW,SAAS;AACxF,UAAM,YAAY,GAAG,QAAQ,uBAAuB,MAAM;AAC1D,WAAO,KAAK;AAAA;AAAA;AAAA,MAGV,IAAI,OAAO,aAAa,YAAY,oBAAoB,GAAG;AAAA,MAC3D,OAAO,QAAQ,SAAS;AAAA,IAC1B;AAAA,EACF,CAAC;AACD,SAAO,KAAK,QAAQ,IAAI,OAAO,QAAQ,GAAG,GAAG,EAAE;AAC/C,SAAO;AACT;AAEA,IAAM,UAA0B,uBAAO,OAAO,IAAI;AAClD,SAAS,aAAa,UAAU,MAAM;AACpC,UAAQ,QAAQ,IAAI;AACtB;AACA,SAAS,aAAa,UAAU;AAC9B,SAAO,QAAQ,QAAQ,KAAK,QAAQ,EAAE;AACxC;AAEA,SAAS,gBAAgB,QAAQ;AAC/B,MAAI;AACJ,MAAI,OAAO,OAAO,cAAc,UAAU;AACxC,gBAAY,CAAC,OAAO,SAAS;AAAA,EAC/B,OAAO;AACL,gBAAY,OAAO;AACnB,QAAI,EAAE,qBAAqB,UAAU,CAAC,UAAU,QAAQ;AACtD,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,SAAS;AAAA;AAAA,IAEb;AAAA;AAAA,IAEA,MAAM,OAAO,QAAQ;AAAA;AAAA,IAErB,QAAQ,OAAO,UAAU;AAAA;AAAA,IAEzB,QAAQ,OAAO,UAAU;AAAA;AAAA,IAEzB,SAAS,OAAO,WAAW;AAAA;AAAA,IAE3B,QAAQ,OAAO,WAAW;AAAA;AAAA,IAE1B,OAAO,OAAO,SAAS;AAAA;AAAA,IAEvB,kBAAkB,OAAO,qBAAqB;AAAA,EAChD;AACA,SAAO;AACT;AACA,IAAM,gBAAgC,uBAAO,OAAO,IAAI;AACxD,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AACF;AACA,IAAM,cAAc,CAAC;AACrB,OAAO,mBAAmB,SAAS,GAAG;AACpC,MAAI,mBAAmB,WAAW,GAAG;AACnC,gBAAY,KAAK,mBAAmB,MAAM,CAAC;AAAA,EAC7C,OAAO;AACL,QAAI,KAAK,OAAO,IAAI,KAAK;AACvB,kBAAY,KAAK,mBAAmB,MAAM,CAAC;AAAA,IAC7C,OAAO;AACL,kBAAY,KAAK,mBAAmB,IAAI,CAAC;AAAA,IAC3C;AAAA,EACF;AACF;AACA,cAAc,EAAE,IAAI,gBAAgB;AAAA,EAClC,WAAW,CAAC,4BAA4B,EAAE,OAAO,WAAW;AAC9D,CAAC;AACD,SAAS,eAAe,UAAU,cAAc;AAC9C,QAAM,SAAS,gBAAgB,YAAY;AAC3C,MAAI,WAAW,MAAM;AACnB,WAAO;AAAA,EACT;AACA,gBAAc,QAAQ,IAAI;AAC1B,SAAO;AACT;AACA,SAAS,aAAa,UAAU;AAC9B,SAAO,cAAc,QAAQ;AAC/B;AAKA,IAAM,cAAc,MAAM;AACxB,MAAI;AACJ,MAAI;AACF,eAAW;AACX,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO;AAAA,IACT;AAAA,EACF,SAAS,KAAK;AAAA,EACd;AACF;AACA,IAAI,cAAc,YAAY;AAO9B,SAAS,mBAAmB,UAAU,QAAQ;AAC5C,QAAM,SAAS,aAAa,QAAQ;AACpC,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI;AACJ,MAAI,CAAC,OAAO,QAAQ;AAClB,aAAS;AAAA,EACX,OAAO;AACL,QAAI,gBAAgB;AACpB,WAAO,UAAU,QAAQ,CAAC,SAAS;AACjC,YAAM,OAAO;AACb,sBAAgB,KAAK,IAAI,eAAe,KAAK,MAAM;AAAA,IACrD,CAAC;AACD,UAAM,MAAM,SAAS;AACrB,aAAS,OAAO,SAAS,gBAAgB,OAAO,KAAK,SAAS,IAAI;AAAA,EACpE;AACA,SAAO;AACT;AACA,SAAS,YAAY,QAAQ;AAC3B,SAAO,WAAW;AACpB;AACA,IAAM,UAAU,CAAC,UAAU,QAAQ,UAAU;AAC3C,QAAM,UAAU,CAAC;AACjB,QAAM,YAAY,mBAAmB,UAAU,MAAM;AACrD,QAAM,OAAO;AACb,MAAI,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,CAAC;AAAA,EACV;AACA,MAAI,SAAS;AACb,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,cAAU,KAAK,SAAS;AACxB,QAAI,UAAU,aAAa,QAAQ,GAAG;AACpC,cAAQ,KAAK,IAAI;AACjB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,CAAC;AAAA,MACV;AACA,eAAS,KAAK;AAAA,IAChB;AACA,SAAK,MAAM,KAAK,IAAI;AAAA,EACtB,CAAC;AACD,UAAQ,KAAK,IAAI;AACjB,SAAO;AACT;AACA,SAAS,QAAQ,UAAU;AACzB,MAAI,OAAO,aAAa,UAAU;AAChC,UAAM,SAAS,aAAa,QAAQ;AACpC,QAAI,QAAQ;AACV,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAM,OAAO,CAAC,MAAM,QAAQ,aAAa;AACvC,MAAI,CAAC,aAAa;AAChB,aAAS,SAAS,GAAG;AACrB;AAAA,EACF;AACA,MAAI,OAAO,QAAQ,OAAO,QAAQ;AAClC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,SAAS;AACZ,YAAM,SAAS,OAAO;AACtB,YAAM,QAAQ,OAAO;AACrB,YAAM,YAAY,MAAM,KAAK,GAAG;AAChC,YAAM,YAAY,IAAI,gBAAgB;AAAA,QACpC,OAAO;AAAA,MACT,CAAC;AACD,cAAQ,SAAS,WAAW,UAAU,SAAS;AAC/C;AAAA,IACF;AAAA,IACA,KAAK,UAAU;AACb,YAAM,MAAM,OAAO;AACnB,cAAQ,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI;AACjD;AAAA,IACF;AAAA,IACA;AACE,eAAS,SAAS,GAAG;AACrB;AAAA,EACJ;AACA,MAAI,eAAe;AACnB,cAAY,OAAO,IAAI,EAAE,KAAK,CAAC,aAAa;AAC1C,UAAM,SAAS,SAAS;AACxB,QAAI,WAAW,KAAK;AAClB,iBAAW,MAAM;AACf,iBAAS,YAAY,MAAM,IAAI,UAAU,QAAQ,MAAM;AAAA,MACzD,CAAC;AACD;AAAA,IACF;AACA,mBAAe;AACf,WAAO,SAAS,KAAK;AAAA,EACvB,CAAC,EAAE,KAAK,CAAC,SAAS;AAChB,QAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,iBAAW,MAAM;AACf,YAAI,SAAS,KAAK;AAChB,mBAAS,SAAS,IAAI;AAAA,QACxB,OAAO;AACL,mBAAS,QAAQ,YAAY;AAAA,QAC/B;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,eAAW,MAAM;AACf,eAAS,WAAW,IAAI;AAAA,IAC1B,CAAC;AAAA,EACH,CAAC,EAAE,MAAM,MAAM;AACb,aAAS,QAAQ,YAAY;AAAA,EAC/B,CAAC;AACH;AACA,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AACF;AAEA,SAAS,UAAU,OAAO;AACxB,QAAM,SAAS;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,SAAS,CAAC;AAAA,IACV,SAAS,CAAC;AAAA,EACZ;AACA,QAAMA,WAA0B,uBAAO,OAAO,IAAI;AAClD,QAAM,KAAK,CAAC,GAAG,MAAM;AACnB,QAAI,EAAE,aAAa,EAAE,UAAU;AAC7B,aAAO,EAAE,SAAS,cAAc,EAAE,QAAQ;AAAA,IAC5C;AACA,QAAI,EAAE,WAAW,EAAE,QAAQ;AACzB,aAAO,EAAE,OAAO,cAAc,EAAE,MAAM;AAAA,IACxC;AACA,WAAO,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,EACpC,CAAC;AACD,MAAI,WAAW;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACA,QAAM,QAAQ,CAAC,SAAS;AACtB,QAAI,SAAS,SAAS,KAAK,QAAQ,SAAS,WAAW,KAAK,UAAU,SAAS,aAAa,KAAK,UAAU;AACzG;AAAA,IACF;AACA,eAAW;AACX,UAAM,WAAW,KAAK;AACtB,UAAM,SAAS,KAAK;AACpB,UAAM,OAAO,KAAK;AAClB,UAAM,kBAAkBA,SAAQ,QAAQ,MAAMA,SAAQ,QAAQ,IAAoB,uBAAO,OAAO,IAAI;AACpG,UAAMC,gBAAe,gBAAgB,MAAM,MAAM,gBAAgB,MAAM,IAAI,WAAW,UAAU,MAAM;AACtG,QAAI;AACJ,QAAI,QAAQA,cAAa,OAAO;AAC9B,aAAO,OAAO;AAAA,IAChB,WAAW,WAAW,MAAMA,cAAa,QAAQ,IAAI,IAAI,GAAG;AAC1D,aAAO,OAAO;AAAA,IAChB,OAAO;AACL,aAAO,OAAO;AAAA,IAChB;AACA,UAAM,OAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,KAAK,IAAI;AAAA,EAChB,CAAC;AACD,SAAO;AACT;AAEA,SAAS,eAAe,UAAU,IAAI;AACpC,WAAS,QAAQ,CAACD,aAAY;AAC5B,UAAM,QAAQA,SAAQ;AACtB,QAAI,OAAO;AACT,MAAAA,SAAQ,kBAAkB,MAAM,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE;AAAA,IAC/D;AAAA,EACF,CAAC;AACH;AACA,SAAS,gBAAgBA,UAAS;AAChC,MAAI,CAACA,SAAQ,sBAAsB;AACjC,IAAAA,SAAQ,uBAAuB;AAC/B,eAAW,MAAM;AACf,MAAAA,SAAQ,uBAAuB;AAC/B,YAAM,QAAQA,SAAQ,kBAAkBA,SAAQ,gBAAgB,MAAM,CAAC,IAAI,CAAC;AAC5E,UAAI,CAAC,MAAM,QAAQ;AACjB;AAAA,MACF;AACA,UAAI,aAAa;AACjB,YAAM,WAAWA,SAAQ;AACzB,YAAM,SAASA,SAAQ;AACvB,YAAM,QAAQ,CAAC,SAAS;AACtB,cAAM,QAAQ,KAAK;AACnB,cAAM,YAAY,MAAM,QAAQ;AAChC,cAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,SAAS;AAC7C,cAAI,KAAK,WAAW,QAAQ;AAC1B,mBAAO;AAAA,UACT;AACA,gBAAM,OAAO,KAAK;AAClB,cAAIA,SAAQ,MAAM,IAAI,GAAG;AACvB,kBAAM,OAAO,KAAK;AAAA,cAChB;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,WAAWA,SAAQ,QAAQ,IAAI,IAAI,GAAG;AACpC,kBAAM,QAAQ,KAAK;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,OAAO;AACL,yBAAa;AACb,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT,CAAC;AACD,YAAI,MAAM,QAAQ,WAAW,WAAW;AACtC,cAAI,CAAC,YAAY;AACf,2BAAe,CAACA,QAAO,GAAG,KAAK,EAAE;AAAA,UACnC;AACA,eAAK;AAAA,YACH,MAAM,OAAO,MAAM,CAAC;AAAA,YACpB,MAAM,QAAQ,MAAM,CAAC;AAAA,YACrB,MAAM,QAAQ,MAAM,CAAC;AAAA,YACrB,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AACA,IAAI,YAAY;AAChB,SAAS,cAAc,UAAU,OAAO,gBAAgB;AACtD,QAAM,KAAK;AACX,QAAM,QAAQ,eAAe,KAAK,MAAM,gBAAgB,EAAE;AAC1D,MAAI,CAAC,MAAM,QAAQ,QAAQ;AACzB,WAAO;AAAA,EACT;AACA,QAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,iBAAe,QAAQ,CAACA,aAAY;AAClC,KAACA,SAAQ,oBAAoBA,SAAQ,kBAAkB,CAAC,IAAI,KAAK,IAAI;AAAA,EACvE,CAAC;AACD,SAAO;AACT;AAEA,SAAS,YAAY,MAAM,WAAW,MAAME,eAAc,OAAO;AAC/D,QAAM,SAAS,CAAC;AAChB,OAAK,QAAQ,CAAC,SAAS;AACrB,UAAM,OAAO,OAAO,SAAS,WAAW,aAAa,MAAM,UAAUA,YAAW,IAAI;AACpF,QAAI,MAAM;AACR,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAGA,IAAI,gBAAgB;AAAA,EAClB,WAAW,CAAC;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,kBAAkB;AACpB;AAGA,SAAS,UAAU,QAAQ,SAAS,OAAO,MAAM;AAC/C,QAAM,iBAAiB,OAAO,UAAU;AACxC,QAAM,aAAa,OAAO,SAAS,KAAK,MAAM,KAAK,OAAO,IAAI,cAAc,IAAI,OAAO;AACvF,MAAI;AACJ,MAAI,OAAO,QAAQ;AACjB,QAAI,OAAO,OAAO,UAAU,MAAM,CAAC;AACnC,gBAAY,CAAC;AACb,WAAO,KAAK,SAAS,GAAG;AACtB,YAAM,YAAY,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,MAAM;AACxD,gBAAU,KAAK,KAAK,SAAS,CAAC;AAC9B,aAAO,KAAK,MAAM,GAAG,SAAS,EAAE,OAAO,KAAK,MAAM,YAAY,CAAC,CAAC;AAAA,IAClE;AACA,gBAAY,UAAU,OAAO,IAAI;AAAA,EACnC,OAAO;AACL,gBAAY,OAAO,UAAU,MAAM,UAAU,EAAE,OAAO,OAAO,UAAU,MAAM,GAAG,UAAU,CAAC;AAAA,EAC7F;AACA,QAAM,YAAY,KAAK,IAAI;AAC3B,MAAI,SAAS;AACb,MAAI,cAAc;AAClB,MAAI;AACJ,MAAI,QAAQ;AACZ,MAAI,QAAQ,CAAC;AACb,MAAI,gBAAgB,CAAC;AACrB,MAAI,OAAO,SAAS,YAAY;AAC9B,kBAAc,KAAK,IAAI;AAAA,EACzB;AACA,WAAS,aAAa;AACpB,QAAI,OAAO;AACT,mBAAa,KAAK;AAClB,cAAQ;AAAA,IACV;AAAA,EACF;AACA,WAAS,QAAQ;AACf,QAAI,WAAW,WAAW;AACxB,eAAS;AAAA,IACX;AACA,eAAW;AACX,UAAM,QAAQ,CAAC,SAAS;AACtB,UAAI,KAAK,WAAW,WAAW;AAC7B,aAAK,SAAS;AAAA,MAChB;AAAA,IACF,CAAC;AACD,YAAQ,CAAC;AAAA,EACX;AACA,WAAS,UAAU,UAAU,WAAW;AACtC,QAAI,WAAW;AACb,sBAAgB,CAAC;AAAA,IACnB;AACA,QAAI,OAAO,aAAa,YAAY;AAClC,oBAAc,KAAK,QAAQ;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,iBAAiB;AACxB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB,MAAM;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY;AACnB,aAAS;AACT,kBAAc,QAAQ,CAAC,aAAa;AAClC,eAAS,QAAQ,SAAS;AAAA,IAC5B,CAAC;AAAA,EACH;AACA,WAAS,aAAa;AACpB,UAAM,QAAQ,CAAC,SAAS;AACtB,UAAI,KAAK,WAAW,WAAW;AAC7B,aAAK,SAAS;AAAA,MAChB;AAAA,IACF,CAAC;AACD,YAAQ,CAAC;AAAA,EACX;AACA,WAAS,eAAe,MAAM,UAAU,MAAM;AAC5C,UAAM,UAAU,aAAa;AAC7B,YAAQ,MAAM,OAAO,CAAC,WAAW,WAAW,IAAI;AAChD,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH;AAAA,MACF,KAAK;AACH,YAAI,WAAW,CAAC,OAAO,kBAAkB;AACvC;AAAA,QACF;AACA;AAAA,MACF;AACE;AAAA,IACJ;AACA,QAAI,aAAa,SAAS;AACxB,kBAAY;AACZ,gBAAU;AACV;AAAA,IACF;AACA,QAAI,SAAS;AACX,kBAAY;AACZ,UAAI,CAAC,MAAM,QAAQ;AACjB,YAAI,CAAC,UAAU,QAAQ;AACrB,oBAAU;AAAA,QACZ,OAAO;AACL,mBAAS;AAAA,QACX;AAAA,MACF;AACA;AAAA,IACF;AACA,eAAW;AACX,eAAW;AACX,QAAI,CAAC,OAAO,QAAQ;AAClB,YAAM,QAAQ,OAAO,UAAU,QAAQ,KAAK,QAAQ;AACpD,UAAI,UAAU,MAAM,UAAU,OAAO,OAAO;AAC1C,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;AACA,aAAS;AACT,kBAAc,QAAQ,CAAC,aAAa;AAClC,eAAS,IAAI;AAAA,IACf,CAAC;AAAA,EACH;AACA,WAAS,WAAW;AAClB,QAAI,WAAW,WAAW;AACxB;AAAA,IACF;AACA,eAAW;AACX,UAAM,WAAW,UAAU,MAAM;AACjC,QAAI,aAAa,QAAQ;AACvB,UAAI,MAAM,QAAQ;AAChB,gBAAQ,WAAW,MAAM;AACvB,qBAAW;AACX,cAAI,WAAW,WAAW;AACxB,uBAAW;AACX,sBAAU;AAAA,UACZ;AAAA,QACF,GAAG,OAAO,OAAO;AACjB;AAAA,MACF;AACA,gBAAU;AACV;AAAA,IACF;AACA,UAAM,OAAO;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,MACA,UAAU,CAAC,SAAS,SAAS;AAC3B,uBAAe,MAAM,SAAS,IAAI;AAAA,MACpC;AAAA,IACF;AACA,UAAM,KAAK,IAAI;AACf;AACA,YAAQ,WAAW,UAAU,OAAO,MAAM;AAC1C,UAAM,UAAU,SAAS,KAAK,QAAQ;AAAA,EACxC;AACA,aAAW,QAAQ;AACnB,SAAO;AACT;AAGA,SAAS,eAAe,KAAK;AAC3B,QAAM,SAAS,kCACV,gBACA;AAEL,MAAI,UAAU,CAAC;AACf,WAAS,UAAU;AACjB,cAAU,QAAQ,OAAO,CAAC,SAAS,KAAK,EAAE,WAAW,SAAS;AAAA,EAChE;AACA,WAAS,MAAM,SAAS,eAAe,cAAc;AACnD,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,MAAM,UAAU;AACf,gBAAQ;AACR,YAAI,cAAc;AAChB,uBAAa,MAAM,KAAK;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,MAAM;AACnB,WAAO;AAAA,EACT;AACA,WAAS,KAAK,UAAU;AACtB,WAAO,QAAQ,KAAK,CAAC,UAAU;AAC7B,aAAO,SAAS,KAAK;AAAA,IACvB,CAAC,KAAK;AAAA,EACR;AACA,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA,UAAU,CAAC,UAAU;AACnB,aAAO,QAAQ;AAAA,IACjB;AAAA,IACA,UAAU,MAAM,OAAO;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB;AAC3B;AACA,IAAM,kBAAkC,uBAAO,OAAO,IAAI;AAC1D,SAAS,mBAAmB,UAAU;AACpC,MAAI,CAAC,gBAAgB,QAAQ,GAAG;AAC9B,UAAM,SAAS,aAAa,QAAQ;AACpC,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,UAAM,aAAa,eAAe,MAAM;AACxC,UAAM,kBAAkB;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AACA,oBAAgB,QAAQ,IAAI;AAAA,EAC9B;AACA,SAAO,gBAAgB,QAAQ;AACjC;AACA,SAAS,aAAa,QAAQ,OAAO,UAAU;AAC7C,MAAI;AACJ,MAAIC;AACJ,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,MAAM,aAAa,MAAM;AAC/B,QAAI,CAAC,KAAK;AACR,eAAS,QAAQ,GAAG;AACpB,aAAO;AAAA,IACT;AACA,IAAAA,QAAO,IAAI;AACX,UAAM,SAAS,mBAAmB,MAAM;AACxC,QAAI,QAAQ;AACV,mBAAa,OAAO;AAAA,IACtB;AAAA,EACF,OAAO;AACL,UAAM,SAAS,gBAAgB,MAAM;AACrC,QAAI,QAAQ;AACV,mBAAa,eAAe,MAAM;AAClC,YAAM,YAAY,OAAO,YAAY,OAAO,UAAU,CAAC,IAAI;AAC3D,YAAM,MAAM,aAAa,SAAS;AAClC,UAAI,KAAK;AACP,QAAAA,QAAO,IAAI;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,cAAc,CAACA,OAAM;AACxB,aAAS,QAAQ,GAAG;AACpB,WAAO;AAAA,EACT;AACA,SAAO,WAAW,MAAM,OAAOA,OAAM,QAAQ,EAAE,EAAE;AACnD;AAEA,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,uBAAuB,qBAAqB;AAClD,IAAM,yBAAyB,qBAAqB;AACpD,IAAM,qBAAqB;AAC3B,IAAM,gCAAgC;AAEtC,SAAS,cAAc,MAAM,KAAK;AAChC,MAAI;AACF,WAAO,KAAK,QAAQ,GAAG;AAAA,EACzB,SAAS,KAAK;AAAA,EACd;AACF;AACA,SAAS,cAAc,MAAM,KAAK,OAAO;AACvC,MAAI;AACF,SAAK,QAAQ,KAAK,KAAK;AACvB,WAAO;AAAA,EACT,SAAS,KAAK;AAAA,EACd;AACF;AACA,SAAS,iBAAiB,MAAM,KAAK;AACnC,MAAI;AACF,SAAK,WAAW,GAAG;AAAA,EACrB,SAAS,KAAK;AAAA,EACd;AACF;AAEA,SAAS,4BAA4BH,UAAS,OAAO;AACnD,SAAO,cAAcA,UAAS,sBAAsB,MAAM,SAAS,CAAC;AACtE;AACA,SAAS,4BAA4BA,UAAS;AAC5C,SAAO,SAAS,cAAcA,UAAS,oBAAoB,CAAC,KAAK;AACnE;AAEA,IAAM,uBAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,SAAS;AACX;AACA,IAAM,2BAA2B;AAAA,EAC/B,OAAuB,oBAAI,IAAI;AAAA,EAC/B,SAAyB,oBAAI,IAAI;AACnC;AACA,IAAI,uBAAuB;AAC3B,SAAS,wBAAwB,QAAQ;AACvC,yBAAuB;AACzB;AAEA,IAAI,UAAU,OAAO,WAAW,cAAc,CAAC,IAAI;AACnD,SAAS,kBAAkB,KAAK;AAC9B,QAAM,OAAO,MAAM;AACnB,MAAI;AACF,QAAI,WAAW,QAAQ,IAAI,KAAK,OAAO,QAAQ,IAAI,EAAE,WAAW,UAAU;AACxE,aAAO,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF,SAAS,KAAK;AAAA,EACd;AACA,uBAAqB,GAAG,IAAI;AAC9B;AAEA,SAAS,sBAAsB,KAAK,UAAU;AAC5C,QAAM,OAAO,kBAAkB,GAAG;AAClC,MAAI,CAAC,MAAM;AACT;AAAA,EACF;AACA,QAAM,UAAU,cAAc,MAAM,sBAAsB;AAC1D,MAAI,YAAY,qBAAqB;AACnC,QAAI,SAAS;AACX,YAAM,SAAS,4BAA4B,IAAI;AAC/C,eAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,yBAAiB,MAAM,qBAAqB,EAAE,SAAS,CAAC;AAAA,MAC1D;AAAA,IACF;AACA,kBAAc,MAAM,wBAAwB,mBAAmB;AAC/D,gCAA4B,MAAM,CAAC;AACnC;AAAA,EACF;AACA,QAAM,UAAU,KAAK,MAAM,KAAK,IAAI,IAAI,kBAAkB,IAAI;AAC9D,QAAM,YAAY,CAAC,UAAU;AAC3B,UAAM,OAAO,qBAAqB,MAAM,SAAS;AACjD,UAAM,OAAO,cAAc,MAAM,IAAI;AACrC,QAAI,OAAO,SAAS,UAAU;AAC5B;AAAA,IACF;AACA,QAAI;AACF,YAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,UAAI,OAAO,SAAS,YAAY,OAAO,KAAK,WAAW,YAAY,KAAK,SAAS,WAAW,OAAO,KAAK,aAAa,YAAY,OAAO,KAAK,SAAS,YAAY,OAAO,KAAK,KAAK,WAAW;AAAA,MAC9L,SAAS,MAAM,KAAK,GAAG;AACrB,eAAO;AAAA,MACT;AAAA,IACF,SAAS,KAAK;AAAA,IACd;AACA,qBAAiB,MAAM,IAAI;AAAA,EAC7B;AACA,MAAI,QAAQ,4BAA4B,IAAI;AAC5C,WAAS,IAAI,QAAQ,GAAG,KAAK,GAAG,KAAK;AACnC,QAAI,CAAC,UAAU,CAAC,GAAG;AACjB,UAAI,MAAM,QAAQ,GAAG;AACnB;AACA,oCAA4B,MAAM,KAAK;AAAA,MACzC,OAAO;AACL,iCAAyB,GAAG,EAAE,IAAI,CAAC;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,qBAAqB;AAC5B,MAAI,sBAAsB;AACxB;AAAA,EACF;AACA,0BAAwB,IAAI;AAC5B,aAAW,OAAO,sBAAsB;AACtC,0BAAsB,KAAK,CAAC,SAAS;AACnC,YAAM,UAAU,KAAK;AACrB,YAAM,WAAW,KAAK;AACtB,YAAM,SAAS,QAAQ;AACvB,YAAMA,WAAU;AAAA,QACd;AAAA,QACA;AAAA,MACF;AACA,UAAI,CAAC,WAAWA,UAAS,OAAO,EAAE,QAAQ;AACxC,eAAO;AAAA,MACT;AACA,YAAM,eAAe,QAAQ,gBAAgB;AAC7C,MAAAA,SAAQ,qBAAqBA,SAAQ,qBAAqB,KAAK,IAAIA,SAAQ,oBAAoB,YAAY,IAAI;AAC/G,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAEA,SAAS,mBAAmBA,UAAS,cAAc;AACjD,QAAM,YAAYA,SAAQ;AAC1B;AAAA;AAAA,IAEE,aAAa,aAAa;AAAA,IAC1B;AACA,WAAO,cAAc;AAAA,EACvB;AACA,EAAAA,SAAQ,qBAAqB;AAC7B,MAAI,WAAW;AACb,eAAW,OAAO,sBAAsB;AACtC,4BAAsB,KAAK,CAAC,SAAS;AACnC,cAAM,UAAU,KAAK;AACrB,eAAO,KAAK,aAAaA,SAAQ,YAAY,QAAQ,WAAWA,SAAQ,UAAU,QAAQ,iBAAiB;AAAA,MAC7G,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,sBAAsBA,UAAS,MAAM;AAC5C,MAAI,CAAC,sBAAsB;AACzB,uBAAmB;AAAA,EACrB;AACA,WAAS,MAAM,KAAK;AAClB,QAAI;AACJ,QAAI,CAAC,qBAAqB,GAAG,KAAK,EAAE,OAAO,kBAAkB,GAAG,IAAI;AAClE;AAAA,IACF;AACA,UAAM,MAAM,yBAAyB,GAAG;AACxC,QAAI;AACJ,QAAI,IAAI,MAAM;AACZ,UAAI,OAAO,QAAQ,MAAM,KAAK,GAAG,EAAE,MAAM,CAAC;AAAA,IAC5C,OAAO;AACL,cAAQ,4BAA4B,IAAI;AACxC,UAAI,CAAC,4BAA4B,MAAM,QAAQ,CAAC,GAAG;AACjD;AAAA,MACF;AAAA,IACF;AACA,UAAM,OAAO;AAAA,MACX,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,kBAAkB;AAAA,MAClD,UAAUA,SAAQ;AAAA,MAClB;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA,qBAAqB,MAAM,SAAS;AAAA,MACpC,KAAK,UAAU,IAAI;AAAA,IACrB;AAAA,EACF;AACA,MAAI,KAAK,gBAAgB,CAAC,mBAAmBA,UAAS,KAAK,YAAY,GAAG;AACxE;AAAA,EACF;AACA,MAAI,CAAC,OAAO,KAAK,KAAK,KAAK,EAAE,QAAQ;AACnC;AAAA,EACF;AACA,MAAI,KAAK,WAAW;AAClB,WAAO,OAAO,OAAO,CAAC,GAAG,IAAI;AAC7B,WAAO,KAAK;AAAA,EACd;AACA,MAAI,CAAC,MAAM,OAAO,GAAG;AACnB,UAAM,SAAS;AAAA,EACjB;AACF;AAEA,SAAS,gBAAgB;AACzB;AACA,SAAS,eAAeA,UAAS;AAC/B,MAAI,CAACA,SAAQ,iBAAiB;AAC5B,IAAAA,SAAQ,kBAAkB;AAC1B,eAAW,MAAM;AACf,MAAAA,SAAQ,kBAAkB;AAC1B,sBAAgBA,QAAO;AAAA,IACzB,CAAC;AAAA,EACH;AACF;AACA,SAAS,aAAaA,UAAS,OAAO;AACpC,MAAI,CAACA,SAAQ,aAAa;AACxB,IAAAA,SAAQ,cAAc;AAAA,EACxB,OAAO;AACL,IAAAA,SAAQ,cAAcA,SAAQ,YAAY,OAAO,KAAK,EAAE,KAAK;AAAA,EAC/D;AACA,MAAI,CAACA,SAAQ,gBAAgB;AAC3B,IAAAA,SAAQ,iBAAiB;AACzB,eAAW,MAAM;AACf,MAAAA,SAAQ,iBAAiB;AACzB,YAAM,EAAE,UAAU,OAAO,IAAIA;AAC7B,YAAM,SAASA,SAAQ;AACvB,aAAOA,SAAQ;AACf,UAAI;AACJ,UAAI,CAAC,UAAU,EAAE,MAAM,aAAa,QAAQ,IAAI;AAC9C;AAAA,MACF;AACA,YAAM,SAAS,IAAI,QAAQ,UAAU,QAAQ,MAAM;AACnD,aAAO,QAAQ,CAAC,SAAS;AACvB,qBAAa,UAAU,MAAM,CAAC,SAAS;AACrC,cAAI,OAAO,SAAS,UAAU;AAC5B,iBAAK,MAAM,QAAQ,CAAC,SAAS;AAC3B,cAAAA,SAAQ,QAAQ,IAAI,IAAI;AAAA,YAC1B,CAAC;AAAA,UACH,OAAO;AACL,gBAAI;AACF,oBAAM,SAAS;AAAA,gBACbA;AAAA,gBACA;AAAA,cACF;AACA,kBAAI,CAAC,OAAO,QAAQ;AAClB;AAAA,cACF;AACA,oBAAM,UAAUA,SAAQ;AACxB,kBAAI,SAAS;AACX,uBAAO,QAAQ,CAAC,SAAS;AACvB,0BAAQ,OAAO,IAAI;AAAA,gBACrB,CAAC;AAAA,cACH;AACA,oCAAsBA,UAAS,IAAI;AAAA,YACrC,SAAS,KAAK;AACZ,sBAAQ,MAAM,GAAG;AAAA,YACnB;AAAA,UACF;AACA,yBAAeA,QAAO;AAAA,QACxB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AACA,IAAM,YAAY,CAAC,OAAO,aAAa;AACrC,QAAM,eAAe,YAAY,OAAO,MAAM,iBAAiB,CAAC;AAChE,QAAM,cAAc,UAAU,YAAY;AAC1C,MAAI,CAAC,YAAY,QAAQ,QAAQ;AAC/B,QAAI,eAAe;AACnB,QAAI,UAAU;AACZ,iBAAW,MAAM;AACf,YAAI,cAAc;AAChB;AAAA,YACE,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO,MAAM;AACX,qBAAe;AAAA,IACjB;AAAA,EACF;AACA,QAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,QAAM,UAAU,CAAC;AACjB,MAAI,cAAc;AAClB,cAAY,QAAQ,QAAQ,CAAC,SAAS;AACpC,UAAM,EAAE,UAAU,OAAO,IAAI;AAC7B,QAAI,WAAW,cAAc,aAAa,cAAc;AACtD;AAAA,IACF;AACA,mBAAe;AACf,iBAAa;AACb,YAAQ,KAAK,WAAW,UAAU,MAAM,CAAC;AACzC,UAAM,mBAAmB,SAAS,QAAQ,MAAM,SAAS,QAAQ,IAAoB,uBAAO,OAAO,IAAI;AACvG,QAAI,CAAC,iBAAiB,MAAM,GAAG;AAC7B,uBAAiB,MAAM,IAAI,CAAC;AAAA,IAC9B;AAAA,EACF,CAAC;AACD,cAAY,QAAQ,QAAQ,CAAC,SAAS;AACpC,UAAM,EAAE,UAAU,QAAQ,KAAK,IAAI;AACnC,UAAMA,WAAU,WAAW,UAAU,MAAM;AAC3C,UAAM,eAAeA,SAAQ,iBAAiBA,SAAQ,eAA+B,oBAAI,IAAI;AAC7F,QAAI,CAAC,aAAa,IAAI,IAAI,GAAG;AAC3B,mBAAa,IAAI,IAAI;AACrB,eAAS,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;AAAA,IACtC;AAAA,EACF,CAAC;AACD,UAAQ,QAAQ,CAACA,aAAY;AAC3B,UAAM,EAAE,UAAU,OAAO,IAAIA;AAC7B,QAAI,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ;AACrC,mBAAaA,UAAS,SAAS,QAAQ,EAAE,MAAM,CAAC;AAAA,IAClD;AAAA,EACF,CAAC;AACD,SAAO,WAAW,cAAc,UAAU,aAAa,OAAO,IAAI;AACpE;AAsCA,SAAS,oBAAoB,UAAU,MAAM;AAC3C,QAAM,SAAS,mBACV;AAEL,aAAW,OAAO,MAAM;AACtB,UAAM,QAAQ,KAAK,GAAG;AACtB,UAAM,YAAY,OAAO;AACzB,QAAI,OAAO,+BAA+B;AACxC,UAAI,UAAU,QAAQ,UAAU,cAAc,YAAY,cAAc,WAAW;AACjF,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF,WAAW,cAAc,OAAO,OAAO,GAAG,GAAG;AAC3C,aAAO,GAAG,IAAI,QAAQ,WAAW,QAAQ,IAAI;AAAA,IAC/C;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,YAAY;AAClB,SAAS,eAAe,QAAQ,MAAM;AACpC,OAAK,MAAM,SAAS,EAAE,QAAQ,CAAC,QAAQ;AACrC,UAAM,QAAQ,IAAI,KAAK;AACvB,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,eAAO,QAAQ;AACf;AAAA,MACF,KAAK;AACH,eAAO,QAAQ;AACf;AAAA,IACJ;AAAA,EACF,CAAC;AACH;AAEA,SAAS,iBAAiB,OAAO,eAAe,GAAG;AACjD,QAAM,QAAQ,MAAM,QAAQ,cAAc,EAAE;AAC5C,WAAS,QAAQ,QAAQ;AACvB,WAAO,SAAS,GAAG;AACjB,gBAAU;AAAA,IACZ;AACA,WAAO,SAAS;AAAA,EAClB;AACA,MAAI,UAAU,IAAI;AAChB,UAAM,MAAM,SAAS,KAAK;AAC1B,WAAO,MAAM,GAAG,IAAI,IAAI,QAAQ,GAAG;AAAA,EACrC,WAAW,UAAU,OAAO;AAC1B,QAAI,QAAQ;AACZ,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,gBAAQ;AAAA,IACZ;AACA,QAAI,OAAO;AACT,UAAI,MAAM,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,MAAM,MAAM,CAAC;AAChE,UAAI,MAAM,GAAG,GAAG;AACd,eAAO;AAAA,MACT;AACA,YAAM,MAAM;AACZ,aAAO,MAAM,MAAM,IAAI,QAAQ,GAAG,IAAI;AAAA,IACxC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,WAAW,MAAM,YAAY;AACpC,MAAI,oBAAoB,KAAK,QAAQ,QAAQ,MAAM,KAAK,KAAK;AAC7D,aAAW,QAAQ,YAAY;AAC7B,yBAAqB,MAAM,OAAO,OAAO,WAAW,IAAI,IAAI;AAAA,EAC9D;AACA,SAAO,4CAA4C,oBAAoB,MAAM,OAAO;AACtF;AAEA,SAAS,gBAAgB,KAAK;AAC5B,SAAO,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,QAAQ,GAAG;AACvI;AACA,SAAS,UAAU,KAAK;AACtB,SAAO,wBAAwB,gBAAgB,GAAG;AACpD;AACA,SAAS,SAAS,KAAK;AACrB,SAAO,UAAU,UAAU,GAAG,IAAI;AACpC;AAEA,IAAI;AACJ,SAAS,eAAe;AACtB,MAAI;AACF,aAAS,OAAO,aAAa,aAAa,WAAW;AAAA;AAAA,MAEnD,YAAY,CAAC,MAAM;AAAA,IACrB,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,aAAS;AAAA,EACX;AACF;AACA,SAAS,iBAAiB,MAAM;AAC9B,MAAI,WAAW,QAAQ;AACrB,iBAAa;AAAA,EACf;AACA,SAAO,SAAS,OAAO,WAAW,IAAI,IAAI;AAC5C;AAEA,IAAM,oCAAoC,iCACnC,4BADmC;AAAA,EAEtC,QAAQ;AACZ;AAKA,IAAM,cAAc;AAAA,EAChB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AACZ;AAIA,IAAM,cAAc;AAAA,EAChB,SAAS;AACb;AACA,IAAM,gBAAgB;AAAA,EAClB,iBAAiB;AACrB;AACA,IAAM,eAAe;AAAA,EACjB,iBAAiB;AACrB;AAEA,IAAM,aAAa;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACV;AACA,IAAM,eAAe;AAAA,EACjB,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,YAAY;AAChB;AACA,WAAW,UAAU,cAAc;AAC/B,QAAM,OAAO,aAAa,MAAM;AAChC,aAAW,QAAQ,YAAY;AAC3B,SAAK,SAAS,IAAI,IAAI,WAAW,IAAI;AAAA,EACzC;AACJ;AAIA,IAAM,iBAAiB,iCAChB,oCADgB;AAAA,EAEnB,QAAQ;AACZ;AAIA,SAAS,QAAQ,OAAO;AACpB,SAAO,SAAS,MAAM,MAAM,YAAY,IAAI,OAAO;AACvD;AAIA,IAAM,SAAS,CAEf,MAEA,OAEA,QAEA,QAAQ;AAEJ,QAAM,eAAe,SACf,iBACA;AAEN,QAAM,iBAAiB,oBAAoB,cAAc,KAAK;AAE9D,QAAM,OAAO,MAAM,QAAQ;AAE3B,QAAM,QAAQ,CAAC;AACf,QAAM,cAAc,MAAM,SAAS,CAAC;AAEpC,QAAM,iBAAiB,iCACf,SAAS,QAAQ,cAAc,CAAC,IADjB;AAAA,IAEnB;AAAA,EACJ;AAEA,WAAS,OAAO,OAAO;AACnB,UAAM,QAAQ,MAAM,GAAG;AACvB,QAAI,UAAU,QAAQ;AAClB;AAAA,IACJ;AACA,YAAQ,KAAK;AAAA,MAET,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD;AAAA,MAEJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,uBAAe,GAAG,IACd,UAAU,QAAQ,UAAU,UAAU,UAAU;AACpD;AAAA,MAEJ,KAAK;AACD,YAAI,OAAO,UAAU,UAAU;AAC3B,yBAAe,gBAAgB,KAAK;AAAA,QACxC;AACA;AAAA,MAEJ,KAAK;AACD,cAAM,QAAQ;AACd;AAAA,MAEJ,KAAK;AACD,YAAI,OAAO,UAAU,UAAU;AAC3B,yBAAe,GAAG,IAAI,iBAAiB,KAAK;AAAA,QAChD,WACS,OAAO,UAAU,UAAU;AAChC,yBAAe,GAAG,IAAI;AAAA,QAC1B;AACA;AAAA,MAEJ,KAAK;AAAA,MACL,KAAK;AACD,YAAI,UAAU,QAAQ,UAAU,QAAQ;AACpC,iBAAO,eAAe,aAAa;AAAA,QACvC;AACA;AAAA,MAEJ;AACI,YAAI,aAAa,GAAG,MAAM,QAAQ;AAC9B,yBAAe,GAAG,IAAI;AAAA,QAC1B;AAAA,IACR;AAAA,EACJ;AAEA,QAAM,OAAO,UAAU,MAAM,cAAc;AAC3C,QAAM,gBAAgB,KAAK;AAE3B,MAAI,eAAe,QAAQ;AACvB,UAAM,gBAAgB;AAAA,EAC1B;AACA,MAAI,SAAS,OAAO;AAEhB,mBAAe,QAAQ,kCAChB,QACA;AAGP,WAAO,OAAO,gBAAgB,aAAa;AAE3C,QAAI,eAAe;AACnB,QAAI,KAAK,MAAM;AACf,QAAI,OAAO,OAAO,UAAU;AAExB,WAAK,GAAG,QAAQ,MAAM,GAAG;AAAA,IAC7B;AAEA,mBAAe,0BAA0B;AAAA,MACrC,QAAQ,iBAAiB,WAAW,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,iBAAiB,cAAc,CAAC;AAAA,IAC1G;AACA,WAAOJ,OAAM,cAAc,OAAO,cAAc;AAAA,EACpD;AAEA,QAAM,EAAE,MAAM,OAAO,OAAO,IAAI;AAChC,QAAM,UAAU,SAAS,WACpB,SAAS,OAAO,QAAQ,KAAK,QAAQ,cAAc,MAAM;AAE9D,QAAM,OAAO,WAAW,MAAM,iCACvB,gBADuB;AAAA,IAE1B,OAAO,QAAQ;AAAA,IACf,QAAQ,SAAS;AAAA,EACrB,EAAC;AAED,iBAAe,QAAQ,8EAChB,QADgB;AAAA,IAEnB,SAAS,SAAS,IAAI;AAAA,IACtB,SAAS,QAAQ,cAAc,KAAK;AAAA,IACpC,UAAU,QAAQ,cAAc,MAAM;AAAA,MACnC,cACC,UAAU,gBAAgB,eAC3B;AAEP,SAAOA,OAAM,cAAc,QAAQ,cAAc;AACrD;AAkBA,iBAAiB,IAAI;AAErB,aAAa,IAAI,cAAc;AAI/B,IAAI,OAAO,aAAa,eAAe,OAAO,WAAW,aAAa;AAElE,qBAAmB;AACnB,QAAMQ,WAAU;AAEhB,MAAIA,SAAQ,mBAAmB,QAAQ;AACnC,UAAM,UAAUA,SAAQ;AACxB,UAAM,MAAM;AACZ,QAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AACjD,OAAC,mBAAmB,QAAQ,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS;AAC/D,YAAI;AACA;AAAA;AAAA,YAEA,OAAO,SAAS,YACZ,SAAS,QACT,gBAAgB;AAAA,YAEhB,OAAO,KAAK,UAAU,YACtB,OAAO,KAAK,WAAW;AAAA,YAEvB,CAAC,cAAc,IAAI;AAAA,YAAG;AACtB,oBAAQ,MAAM,GAAG;AAAA,UACrB;AAAA,QACJ,SACO,GAAG;AACN,kBAAQ,MAAM,GAAG;AAAA,QACrB;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAEA,MAAIA,SAAQ,qBAAqB,QAAQ;AACrC,UAAM,YAAYA,SAAQ;AAC1B,QAAI,OAAO,cAAc,YAAY,cAAc,MAAM;AACrD,eAAS,OAAO,WAAW;AACvB,cAAM,MAAM,sBAAsB,MAAM;AACxC,YAAI;AACA,gBAAM,QAAQ,UAAU,GAAG;AAC3B,cAAI,OAAO,UAAU,YACjB,CAAC,SACD,MAAM,cAAc,QAAQ;AAC5B;AAAA,UACJ;AACA,cAAI,CAAC,eAAe,KAAK,KAAK,GAAG;AAC7B,oBAAQ,MAAM,GAAG;AAAA,UACrB;AAAA,QACJ,SACO,GAAG;AACN,kBAAQ,MAAM,GAAG;AAAA,QACrB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AACA,IAAM,gBAAN,cAA4BR,OAAM,UAAU;AAAA,EACxC,YAAY,OAAO;AACf,UAAM,KAAK;AACX,SAAK,QAAQ;AAAA;AAAA,MAET,MAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAgB;AACZ,QAAI,KAAK,UAAU;AACf,WAAK,SAAS,MAAM;AACpB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,MAAM;AACX,QAAI,KAAK,MAAM,SAAS,MAAM;AAC1B,WAAK,SAAS;AAAA,QACV;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW,SAAS;AAChB,UAAM,QAAQ,KAAK;AACnB,UAAM,OAAO,KAAK,MAAM;AAExB,QAAI,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,KAAK,SAAS,UAAU;AAE/B,WAAK,QAAQ;AACb,WAAK,cAAc;AACnB,UAAI,WAAW,MAAM,SAAS,MAAM;AAEhC,aAAK,SAAS;AAAA,UACV,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AACA;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI,OAAO,SAAS,aACf,WAAW,aAAa,MAAM,OAAO,IAAI,OAAO,MAAM;AACvD,WAAK,cAAc;AACnB,WAAK,SAAS,IAAI;AAClB;AAAA,IACJ;AAEA,UAAM,OAAO,YAAY,QAAQ;AACjC,QAAI,CAAC,MAAM;AAEP,UAAI,CAAC,KAAK,YAAY,KAAK,SAAS,SAAS,MAAM;AAE/C,aAAK,cAAc;AACnB,aAAK,QAAQ;AACb,aAAK,SAAS,IAAI;AAClB,YAAI,SAAS,MAAM;AAEf,eAAK,WAAW;AAAA,YACZ,MAAM;AAAA,YACN,OAAO,UAAU,CAAC,QAAQ,GAAG,KAAK,WAAW,KAAK,MAAM,KAAK,CAAC;AAAA,UAClE;AAAA,QACJ;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,QAAI,KAAK,UAAU,QAAQ,MAAM,SAAS,MAAM;AAE5C,WAAK,cAAc;AACnB,WAAK,QAAQ;AAEb,YAAM,UAAU,CAAC,SAAS;AAC1B,UAAI,SAAS,WAAW,IAAI;AACxB,gBAAQ,KAAK,cAAc,SAAS,MAAM;AAAA,MAC9C;AACA,UAAI,SAAS,aAAa,IAAI;AAC1B,gBAAQ,KAAK,cAAc,SAAS,QAAQ;AAAA,MAChD;AAEA,WAAK,SAAS;AAAA,QACV;AAAA,QACA;AAAA,MACJ,CAAC;AACD,UAAI,KAAK,MAAM,QAAQ;AACnB,aAAK,MAAM,OAAO,IAAI;AAAA,MAC1B;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,oBAAoB;AAChB,SAAK,WAAW,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,mBAAmB,UAAU;AACzB,QAAI,SAAS,SAAS,KAAK,MAAM,MAAM;AACnC,WAAK,WAAW,IAAI;AAAA,IACxB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,uBAAuB;AACnB,SAAK,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,UAAM,QAAQ,KAAK;AACnB,UAAM,OAAO,KAAK,MAAM;AACxB,QAAI,SAAS,MAAM;AAEf,aAAO,MAAM,WACP,MAAM,WACNA,OAAM,cAAc,QAAQ,CAAC,CAAC;AAAA,IACxC;AAEA,QAAI,WAAW;AACf,QAAI,KAAK,SAAS;AACd,iBAAW,iCACJ,QADI;AAAA,QAEP,YAAY,OAAO,MAAM,cAAc,WACjC,MAAM,YAAY,MAClB,MAAM,KAAK,QAAQ,KAAK,GAAG;AAAA,MACrC;AAAA,IACJ;AAEA,WAAO,OAAO,kCACP,mBACA,KAAK,OACT,UAAU,MAAM,SAAS,MAAM,IAAI;AAAA,EAC1C;AACJ;AAMA,IAAM,OAAOA,OAAM,WAAW,SAASS,MAAK,OAAO,KAAK;AACpD,QAAM,WAAW,iCACV,QADU;AAAA,IAEb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACA,SAAOT,OAAM,cAAc,eAAe,QAAQ;AACtD,CAAC;AAMD,IAAM,aAAaA,OAAM,WAAW,SAASU,YAAW,OAAO,KAAK;AAChE,QAAM,WAAW,iCACV,QADU;AAAA,IAEb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACA,SAAOV,OAAM,cAAc,eAAe,QAAQ;AACtD,CAAC;;;AC/8DD,IAAM,iBAAiB;AAAA,EACrB,EAAE,MAAM,mCAAmC,SAAS,GAAG,QAAQ,GAAG,QAAQ,MAAM;AAAA,EAChF,EAAE,MAAM,uCAAuC,SAAS,GAAG,QAAQ,EAAG;AAAA,EACtE,EAAE,MAAM,sCAAsC,SAAS,GAAG,QAAQ,EAAG;AAAA,EACrE,EAAE,MAAM,0CAA0C,SAAS,GAAG,QAAQ,EAAG;AAAA,EACzE,EAAE,MAAM,wBAAwB,SAAS,GAAG,QAAQ,EAAG;AAAA,EACvD,EAAE,MAAM,0CAA0C,SAAS,GAAG,QAAQ,EAAG;AAAA,EACzE,EAAE,MAAM,8BAA8B,SAAS,GAAG,QAAQ,EAAG;AAC/D;AACO,IAAM,iBAAN,MAAsC;AAAA,EAAtC;AACL,eAAM;AACN,0BAAiB;AACjB,kBAAS,IAAI,aAAa,EAAE,SAAS,uCAAuC,KAAK,aAAa,OAAO,sCAAsC,CAAC;AAC5I,2BAAkB,IAAI,aAAa,EAAE,KAAK,mBAAmB,SAAS,KAAK,CAAC;AAC5E,qBAAY;AACZ,mBAAU,IAAI,aAAa,EAAE,KAAK,oBAAoB,SAAS,gBAAgB,OAAO,CAAC,EAAE,CAAC;AAC1F,yBAAgB;AAAA;AAAA,EAChB,IAAI,aAAa;AA1BnB;AA2BI,YAAQ,KAAI,UAAK,QAAQ,UAAb,mBAAoB,KAAK,OAAK,EAAE,QAAQ,KAAK,OAAO;AAChE,aAAO,UAAK,QAAQ,UAAb,mBAAoB,KAAK,OAAK,EAAE,QAAQ,KAAK,OAAO,WAAU;AAAA,EACvE;AAAA,EACA,eAAe;AACb,UAAM,OAAO,EAAE,MAAM,KAAK,WAAW,SAAS,GAAG,QAAQ,GAAG,QAAQ,KAAK;AACzE,QAAI,eAAe,KAAK,OAAK,EAAE,SAAS,KAAK,IAAI,GAAG;AAClD,aAAO,UAAU,IAAI,WAAW,EAAE,MAAM,oBAAoB;AAAA,IAC9D;AACA,QAAI,KAAK,QAAQ,OAAO;AACtB,WAAK,QAAQ,KAAK,CAAC,GAAG,KAAK,QAAQ,OAAO,IAAI,CAAC;AAC/C,WAAK,QAAQ;AACb;AAAA,IACF;AACA,SAAK,QAAQ,KAAK,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAC3C,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,MAAM,cAAc,KAAK;AA3C3B;AA4CI,QAAI;AACF,cAAM,YAAO,aAAP,mBAAiB,QAAQ;AAAA,QAC7B,QAAQ;AAAA,QACR,QAAQ,CAAC;AAAA,UACP,SAAS,KAAM,MAAM,SAAS,EAAE,CAAC;AAAA,UACjC,WAAW;AAAA,UACX,gBAAgB;AAAA,YACd,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,UAAU;AAAA,UACZ;AAAA,UACA,SAAS,CAAC,GAAG;AAAA,UACb,mBAAmB,CAAC,sBAAsB;AAAA,QAC5C,CAAC;AAAA,MACH;AACA,gBAAU,IAAI,WAAW,EAAE,QAAQ,eAAe;AAClD,cAAQ,IAAI,eAAe;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,yBAAyB,KAAK;AAAA,IAC9C;AAAA,EACF;AAAA,EACA,UAAU;AACR,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,eAAW,MAAM;AACf,WAAK,QAAQ;AAAA,IACf,GAAG,GAAG;AAAA,EACR;AAAA,EACA,aAAa,SAAiB;AAC5B,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,QAAI,UAAU,GAAG;AACf,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,MAAM,gBAAgB,KAAyE;AAC7F,UAAM,QAAQ,YAAY,IAAI;AAC9B,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QAChC,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,gBAAgB;AAAA,QAClB;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ,CAAC,UAAU,KAAK;AAAA,UACxB,IAAI;AAAA,QACN,CAAC;AAAA,MACH,CAAC;AAED,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,sBAAsB,SAAS,MAAM,EAAE;AAAA,MACzD;AACA,YAAM,MAAM,MAAM,SAAS,KAAK;AAChC,cAAQ,IAAI,GAAG;AACf,YAAM,MAAM,YAAY,IAAI;AAC5B,aAAO,EAAE,KAAK,UAAU,OAAO,OAAO,OAAO,cAAe,MAAM,SAAS,KAAO,SAAS,EAAE,UAAU,KAAK,CAAC,CAAC,GAAG,QAAQ,SAAS,IAAI,OAAO,QAAQ,EAAE,EAAE;AAAA,IAC3J,SAAS,OAAO;AACd,cAAQ,MAAM,4BAA4B,KAAK;AAC/C,aAAO,EAAE,KAAK,UAAU,IAAI,QAAQ,GAAG;AAAA,IACzC;AAAA,EACF;AAAA,EACA,UAAU;AAhHZ;AAiHI,eAAK,YAAL,mBAAc,MAAM,QAAQ,OAAK;AAC/B,WAAK,gBAAgB,EAAE,IAAI,EAAE,KAAK,SAAO;AACvC,UAAE,UAAU,IAAI;AAChB,UAAE,SAAS,IAAI;AAAA,MACjB,CAAC;AAAA,IACH;AACA,SAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK;AAAA,EACtC;AAAA,EACA,UAAU,MAAc;AACtB,SAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO,OAAK,EAAE,SAAS,IAAI,CAAC;AAAA,EACnE;AAAA,EACA,UAAU,OAAe;AACvB,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,iBAAgB,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACxF;AACA,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,6BAA4B,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACpG;AACA,QAAI,QAAQ,GAAG;AACb,aAAO,oCAAC,QAAK,MAAK,aAAY,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,IACpF;AACA,WAAO,oCAAC,QAAK,MAAK,iBAAgB,OAAM,MAAK,QAAO,MAAK,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,EACxF;AAAA,EACA,IAAI,SAAS;AACX,WAAO,UAAU,IAAI,WAAW;AAAA,EAClC;AAAA;AAAA,EAEA,MAAM,gBAAgB;AACpB,YAAQ,IAAI,eAAe;AAC3B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,MAAM,QAAQ,KAAK;AAClD,YAAM,OAAO,KAAK,QAAQ,MAAM,CAAC;AACjC,YAAM,MAAM,MAAM,KAAK,gBAAgB,KAAK,IAAI;AAChD,UAAI,IAAI,YAAY,MAAM,IAAI,SAAS,GAAG;AACxC,aAAK,OAAO,KAAK,KAAK,IAAI;AAC1B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,qBAAN,MAA0C;AAAA,EAA1C;AACL,eAAM;AACN,oBAAW;AACX,0BAAiB;AAIjB,SAAQ,UAAU,IAAI,aAAoD,EAAE,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC;AAAA;AAAA,EAHvG,IAAI,QAAqC;AACvC,WAAO,OAAO,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,IAAI,cAA8C;AAChD,YAAQ,IAAI,KAAK,UAAU,eAAe;AAC1C,QAAI,KAAK,UAAU;AACjB,aAAO,KAAK,QAAQ;AAAA,IACtB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EACA,cAAc,MAAoC;AAChD,QAAI,QAA+C,KAAK,QAAQ,KAAK;AACrE,QAAI,CAAC,OAAO;AACV,cAAQ,CAAC,IAAI;AAAA,IACf,OAAO;AACL,cAAQ,CAAC,GAAG,OAAO,IAAI;AAAA,IACzB;AACA,SAAK,QAAQ,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,wBAAwB,IAAmB,QAAwC;AACjF,QAAI,QAA+C,KAAK,QAAQ,KAAK;AACrE,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AACA,YAAQ,MAAM,IAAI,CAAC,MAAM;AACvB,UAAI,EAAE,MAAM,IAAI;AACd,UAAE,SAAS;AACX,eAAO;AAAA,MACT;AACA,UAAI,CAAC,IAAI;AACP,UAAE,SAAS;AAAA,MACb;AACA,aAAO;AAAA,IACT,CAAC;AACD,SAAK,QAAQ,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,eAAe;AACb,SAAK,QAAQ,SAAS,IAAI;AAAA,EAC5B;AACF;;;ACrMO,IAAM,gBAAgB,MAAM;;;ACCnC,IAAM,UAAU,CAAC,QAAwB,IAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAEzE,IAAM,aAAa,CAAC,QAAuB;AACzC,QAAM,MAAM,IAAI,YAAY,OAAO,MAAM,CAAC;AAC1C,SAAO,OAAO,gBAAgB,GAAG;AACjC,SAAO,MAAM,KAAK,KAAK,OAAO,EAAE,KAAK,EAAE;AACzC;AAEA,IAAM,oBAAoB,MAAa;AACrC,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,WAAW,EAAE;;AAGtB,UAAO,oBAAI,KAAI,GAAG,QAAO,EAAG,SAAS,EAAE;AACzC;;;ACVA,IAAM,mBAAN,MAAsB;;AACb,iBAAA,cAAc,CAA2C,QAAW,WAAmC;AAC5G,QAAM,KAAK,kBAAiB;AAE5B,SAAO;IACL;IACA;IACA;IACA,KAAK;MACH,YAAY,cAAa;;;AAG/B;AAEO,iBAAA,eAAe,CAAC,IAAe,MAAiC,aAAsC;EAC3G;EACA,SAAS;EACT;EACA;;AAGK,iBAAA,oBAAoB,CAAC,IAAe,OAAe,aAAoC;EAC5F;EACA,SAAS;EACT;EACA;;;;AC9BJ,IAAY;CAAZ,SAAYW,UAAO;AACjB,EAAAA,SAAA,kBAAA,IAAA;AACA,EAAAA,SAAA,SAAA,IAAA;AACA,EAAAA,SAAA,cAAA,IAAA;AACA,EAAAA,SAAA,aAAA,IAAA;AACA,EAAAA,SAAA,mBAAA,IAAA;AACA,EAAAA,SAAA,iBAAA,IAAA;AACA,EAAAA,SAAA,aAAA,IAAA;AACA,EAAAA,SAAA,kBAAA,IAAA;AACA,EAAAA,SAAA,oBAAA,IAAA;AACA,EAAAA,SAAA,sBAAA,IAAA;AACA,EAAAA,SAAA,oBAAA,IAAA;AACA,EAAAA,SAAA,uBAAA,IAAA;AACA,EAAAA,SAAA,2BAAA,IAAA;AACF,GAdY,YAAA,UAAO,CAAA,EAAA;AAgBnB,IAAY;CAAZ,SAAYC,oBAAiB;AAC3B,EAAAA,mBAAA,oBAAA,IAAA;AACF,GAFY,sBAAA,oBAAiB,CAAA,EAAA;;;ACT7B,IAAM,0BAAN,MAA6B;EAM3B,YAAY,iBAAkC,MAAM,YAAY,OAAK;AALpD,SAAA,iBAAkC;AAC3C,SAAA,YAAY,oBAAI,IAAG;AACnB,SAAA,YAAY;AACZ,SAAA,WAAW,OAAO,WAAW;AAW7B,SAAA,iBAAiB,CAAC,EAAE,QAAQ,MAAM,OAAM,MAAsC;AACpF,YAAM,mBAAmB,CAAC;AAC1B,YAAM,mBAAmB,CAAC,KAAK,YAAY,WAAW,OAAO;AAC7D,YAAM,qBAAqB,OAAO,KAAK,YAAY,eAAe,SAAS,KAAK,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC;AACrG,YAAM,oBAAoB,OAAO,uBAAuB,YAAY,sBAAsB;AAC1F,UAAI,cAAc;AAClB,UAAI,MAAM,QAAQ,KAAK,cAAc,GAAG;AACtC,sBAAc,KAAK,eAAe,KAAK,CAAC,WAAW,OAAO,KAAK,MAAM,CAAC,MAAM;;AAG9E,aAAO,CAAC,oBAAoB,oBAAoB,qBAAqB;IACvE;AAEQ,SAAA,qBAAqB,CAAC,QAAoC;AAChE,cAAQ,KAAK,wDAAwD,IAAI,MAAM,MAAM,IAAI,IAAI;IAC/F;AAEQ,SAAA,kBAAkB,CAAC,QAAoC;AAC7D,UAAI,KAAK,eAAe,GAAG,GAAG;AAC5B,aAAK,aAAa,KAAK,mBAAmB,GAAG;AAC7C,aAAK,sBAAsB,IAAI,IAAI;;IAEvC;AAEQ,SAAA,wBAAwB,CAAC,YAAgD;AAC/E,YAAM,EAAE,GAAE,IAAK;AAEf,YAAM,KAAK,KAAK,UAAU,IAAI,EAAE;AAChC,UAAI,IAAI;AACN,WAAG,OAAO;AAEV,aAAK,UAAU,OAAO,EAAE;;IAE5B;AAEO,SAAA,OAAO,CAA0B,QAAW,WAA0C;AAC3F,YAAM,UAAU,iBAAiB,YAAY,QAAQ,MAAM;AAE3D,UAAI,KAAK,UAAU;AACjB,cAAM,IAAI,MAAM,sBAAsB;;AAGxC,aAAO,OAAO,YAAY,SAAS,GAAG;AACtC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,aAAK,UAAU,IAAI,QAAQ,IAAI,CAAC,aAAyB;AACvD,cAAI,CAAC,SAAS,SAAS;AACrB,mBAAO,IAAI,MAAM,SAAS,KAAK,CAAC;AAChC;;AAGF,kBAAQ,QAAQ;QAClB,CAAC;MACH,CAAC;IACH;AA7DE,SAAK,iBAAiB;AACtB,SAAK,YAAY;AAEjB,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO,iBAAiB,WAAW,KAAK,eAAe;;EAE3D;;AA0DF,IAAA,wBAAe;;;ACuBR,IAAM,0BAA0B,CAAC,QAAyC;AAC/E,SAAO,OAAO,QAAQ,YAAY,OAAO,QAAQ,YAAY,OAAO,WAAW,OAAO,aAAa;AACrG;;;ACrGA,yCAkCO;;;ACtBP,IAAM,MAAN,MAAS;EAGP,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,gBAAgB,YAAkB;AACtC,QAAI,CAAC,YAAY;AACf,YAAM,IAAI,MAAM,oBAAoB;;AAGtC,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,mBAAmB,EAAE,WAAU,CAAE;AAE3C,WAAO,SAAS;EAClB;EAEA,MAAM,YAAY,SAAe;AAC/B,UAAM,iBAAiB;MACrB;;AAGF,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,aACR,cAAc;AAGhB,WAAO,SAAS;EAClB;EAEA,MAAM,iBAAiB,WAA0B;AAC/C,QAAI,CAAC,wBAAwB,SAAS,GAAG;AACvC,YAAM,IAAI,MAAM,oBAAoB;;AAGtC,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,kBAAkB,EAAE,UAAS,CAAE;AAEzC,WAAO,SAAS;EAClB;EAEA,MAAM,KAAK,EAAE,KAAK,OAAM,GAA0B;AAChD,QAAI,CAAC,OAAO,CAAC,IAAI,QAAQ;AACvB,YAAM,IAAI,MAAM,6BAA6B;;AAG/C,UAAM,iBAAiB;MACrB;MACA;;AAGF,UAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,kBAAkB,cAAc;AAE1C,WAAO,SAAS;EAClB;;;;AC/EK,IAAM,YAAY;EACvB,UAAU;EACV,cAAc;EACd,aAAa;EACb,gBAAgB;EAChB,aAAa;EACb,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,0BAA0B;EAC1B,2BAA2B;EAC3B,yBAAyB;EACzB,iBAAiB;EACjB,kBAAkB;;;;ACOpB,IAAM,kBAA6C;EACjD,mBAAmB,CAAC,MAAM,aAAa;EACvC,yBAAyB,CAAC,MAAM,UAAmB;EACnD,kBAAkB,CAAC,QACjB,OAAO,UAAU,GAAG,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC,KAAM;;AAQvD,IAAM,MAAN,MAAS;EAiBP,YAAY,cAA0B;AACpC,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,aAAmD;MAClE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,aAAa,KAAK,aAAwC;MAC7D,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,UAAU,KAAK,aAAwC;MAC1D,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,eAAe,KAAK,aAAgD;MACvE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,kBAAkB,gBAAgB,iBAAiB;KACvF;AACD,SAAK,cAAc,KAAK,aAAuC;MAC7D,MAAM,UAAU;KACjB;AACD,SAAK,iBAAiB,KAAK,aAAkF;MAC3G,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,uBAAuB;KAC3D;AACD,SAAK,mBAAmB,KAAK,aAG3B;MACA,MAAM,UAAU;MAChB,YAAY,CAAC,gBAAgB,kBAAkB,gBAAgB,uBAAuB;KACvF;AACD,SAAK,uBAAuB,KAAK,aAA8C;MAC7E,MAAM,UAAU;KACjB;AACD,SAAK,wBAAwB,KAAK,aAAqD;MACrF,MAAM,UAAU;KACjB;AACD,SAAK,sBAAsB,KAAK,aAAwC;MACtE,MAAM,UAAU;MAChB,YAAY,CAAC,MAAM,gBAAgB,iBAAiB;KACrD;AACD,SAAK,cAAc,KAAK,aAA8B;MACpD,MAAM,UAAU;KACjB;AACD,SAAK,iBAAiB,CAAC,gBACrB,KAAK,aAA0C;MAC7C,MAAM,UAAU;KACjB,EAAE,CAAC,WAAW,CAAC;AAClB,SAAK,kBAAkB,KAAK,aAA2C;MACrE,MAAM,UAAU;KACjB;EACH;EAEQ,aAAuC,MAAsB;AACnE,UAAM,EAAE,MAAM,WAAU,IAAK;AAE7B,WAAO,OAAO,WAA0B;AACtC,UAAI,cAAc,MAAM,QAAQ,MAAM,GAAG;AACvC,mBAAW,QAAQ,CAAC,WAAqD,MAAK;AAC5E,cAAI,WAAW;AACb,mBAAO,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC;;QAEnC,CAAC;;AAGH,YAAM,UAAyB;QAC7B;QACA,QAAQ,UAAU,CAAA;;AAGpB,YAAM,WAAW,MAAM,KAAK,aAAa,KAAwC,QAAQ,SAAS,OAAO;AAEzG,aAAO,SAAS;IAClB;EACF;;;;AC5HF,SAAS,oBAA6B,aAAa,qBAAqB;;;ACAxE,IAAM,cAAc;AACpB,IAAM,oBAAoB;;;ACgBnB,IAAM,+BAA+B;AAEtC,IAAO,mBAAP,MAAO,0BAAyB,MAAK;EAIzC,YAAY,SAAiB,MAAc,MAAc;AACvD,UAAM,OAAO;AAEb,SAAK,OAAO;AACZ,SAAK,OAAO;AAIZ,WAAO,eAAe,MAAM,kBAAiB,SAAS;EACxD;;;;AC5BF,IAAM,SAAN,MAAY;EAGV,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,iBAAc;AAClB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,uBACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAEA,MAAM,mBAAmB,aAAgC;AACvD,QAAI,CAAC,KAAK,yBAAyB,WAAW,GAAG;AAC/C,YAAM,IAAI,iBAAiB,kCAAkC,4BAA4B;;AAG3F,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KAIvC,QAAQ,2BAA2B,WAAW;AAEhD,aAAO,SAAS;aACV;AACN,YAAM,IAAI,iBAAiB,wBAAwB,4BAA4B;;EAEnF;EAEA,yBAAyB,aAAgC;AACvD,WAAO,YAAY,MAAM,CAAC,OAAyB;AACjD,UAAI,OAAO,OAAO,UAAU;AAC1B,eAAO,OAAO,KAAK,EAAE,EAAE,MAAM,CAAC,WAAU;AACtC,cAAI,OAAO,OAAO,iBAAiB,EAAE,SAAS,MAA2B,GAAG;AAC1E,mBAAO;;AAGT,iBAAO;QACT,CAAC;;AAGH,aAAO;IACT,CAAC;EACH;;;;AC9CF,IAAM,gBAAgB,CAAC,UAAmB,gBACxC,YAAY,KAAK,CAAC,eAAe,WAAW,qBAAqB,QAAQ;AAE3E,IAAM,oBAAoB,MAAM,CAAC,GAAY,aAAqB,eAAkC;AAClG,QAAM,iBAAiB,WAAW;AAElC,aAAW,QAAQ,iBAAK;AAEtB,UAAM,SAAS,IAAI,OAAQ,KAAc,YAAY;AAErD,QAAI,qBAAqB,MAAM,OAAO,eAAc;AAEpD,QAAI,CAAC,cAAc,aAAwB,kBAAkB,GAAG;AAC9D,2BAAqB,MAAM,OAAO,mBAAmB,CAAC,EAAE,CAAC,WAAsB,GAAG,CAAA,EAAE,CAAE,CAAC;;AAGzF,QAAI,CAAC,cAAc,aAAwB,kBAAkB,GAAG;AAC9D,YAAM,IAAI,iBAAiB,wBAAwB,4BAA4B;;AAGjF,WAAO,eAAe,MAAM,IAAI;EAClC;AAEA,SAAO;AACT;AAEA,IAAA,6BAAe;;;;;;;;;;;;;AJbf,IAAM,OAAN,MAAU;EAGR,YAAY,cAA0B;AACpC,SAAK,eAAe;EACtB;EAEA,MAAM,eAAY;AAChB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,cACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAEA,MAAM,UAAO;AACX,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,aACR,MAAS;AAGX,WAAO,SAAS;EAClB;;EAGA,MAAM,yBAAyB,EAAE,WAAW,MAAK,IAAuB,CAAA,GAAE;AACxE,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,iBACR;MACE;KACD;AAGH,WAAO,SAAS;EAClB;EAEQ,MAAM,mBAAmB,aAAqB,YAAY,MAAI;AACpE,UAAM,WAAW,MAAM,KAAK,QAAO;AAEnC,UAAM,8BAA8B,mBAAmB;MACrD,KAAK;QACH;UACE,UAAU;UACV,QAAQ;YACN;cACE,MAAM;cACN,MAAM;;YAER;cACE,MAAM;cACN,MAAM;;;UAGV,MAAM;UACN,SAAS;YACP;cACE,MAAM;cACN,MAAM;;;UAGV,SAAS;UACT,iBAAiB;UACjB,MAAM;;;MAGV,cAAc;MACd,MAAM,CAAC,aAAwB,SAAoB;KACpD;AAED,UAAM,UAAU;MACd,MAAM,UAAU;MAChB,QAAQ;QACN;UACE,IAAI,SAAS;UACb,MAAM;;QAER;;;AAGJ,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,SACR,OAAO;AAGT,aAAO,SAAS,KAAK,MAAM,GAAG,EAAE,EAAE,YAAW,MAAO;aAC7C,KAAK;AACZ,aAAO;;EAEX;EAEQ,MAAM,wBAAwB,aAAqB,YAAY,MAAI;AACzE,UAAM,WAAW,MAAM,KAAK,QAAO;AAEnC,UAAM,8BAA8B,mBAAmB;MACrD,KAAK;QACH;UACE,UAAU;UACV,QAAQ;YACN;cACE,MAAM;cACN,MAAM;;YAER;cACE,MAAM;cACN,MAAM;;;UAGV,MAAM;UACN,SAAS;YACP;cACE,MAAM;cACN,MAAM;;;UAGV,SAAS;UACT,iBAAiB;UACjB,MAAM;;;MAGV,cAAc;MACd,MAAM,CAAC,aAAwB,SAAoB;KACpD;AAED,UAAM,UAAU;MACd,MAAM,UAAU;MAChB,QAAQ;QACN;UACE,IAAI,SAAS;UACb,MAAM;;QAER;;;AAIJ,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,SACR,OAAO;AAGT,aAAO,SAAS,KAAK,MAAM,GAAG,EAAE,EAAE,YAAW,MAAO;aAC7C,KAAK;AACZ,aAAO;;EAEX;EAEA,qBAAqB,SAAe;AAClC,WAAO,YAAY,OAAO;EAC5B;EAEA,0BAA0B,cAA6B;AACrD,UAAM,UACJ,OAAO,aAAa,OAAO,YAAY,WACnC,aAAa,OAAO,QAAQ,SAAQ,IACpC,OAAO,aAAa,OAAO,OAAO;AAExC,QAAI,cAAc,aAAa;AAC/B,QAAI,CAAC,aAAa;AAChB,YAAM,SAAS,OAAO,OAAO,aAAa,KAAK;AAE/C,YAAM,eAAe,OAAO,KAAK,aAAa,KAAK,EAAE,OAAO,CAAC,aAC3D,OAAO,MAAM,CAAC,cAAc,UAAU,MAAM,CAAC,EAAE,KAAI,MAAO,KAAK,QAAQ,KAAK,EAAE,EAAE,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC,CAAC;AAEjH,UAAI,aAAa,WAAW,KAAK,aAAa,SAAS;AAAG,cAAM,IAAI,MAAM,4BAA4B;AACtG,oBAAc,aAAa,CAAC;;AAG9B,WAAO,cAAc;MACnB,SAAS,aAAa;MACtB,QAAQ,iCACH,aAAa,SADV;QAEN;QACA,mBAAmB,aAAa,OAAO;QACvC,MAAM,aAAa,OAAO;;MAE5B,OAAO,aAAa;MACpB;KACD;EACH;EAEA,MAAM,qBAAqB,aAAmB;AAC5C,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,sBACR,WAAW;AAGb,WAAO,SAAS;EAClB;EAEA,MAAM,gBAAgB,SAAmC,YAAY,MAAI;AACvE,QAAI;AACJ,QAAI,OAAO,YAAY,UAAU;AAC/B,cAAQ,YAA6B;AACnC,cAAM,cAAc,KAAK,qBAAqB,OAAO;AACrD,cAAM,oBAAoB,MAAM,KAAK,oBAAoB,aAAa,SAAS;AAC/E,eAAO;MACT;;AAGF,QAAI,wBAAwB,OAAO,GAAG;AACpC,cAAQ,YAA6B;AACnC,cAAM,cAAc,KAAK,0BAA0B,OAAO;AAC1D,cAAM,oBAAoB,MAAM,KAAK,oBAAoB,aAAa,SAAS;AAC/E,eAAO;MACT;;AAEF,QAAI,OAAO;AACT,YAAM,UAAU,MAAM,MAAK;AAE3B,aAAO;;AAGT,UAAM,IAAI,MAAM,sBAAsB;EACxC;EAEA,MAAM,oBAAoB,aAAqB,YAAY,MAAI;AAC7D,UAAM,SAAS,CAAC,KAAK,mBAAmB,KAAK,IAAI,GAAG,KAAK,wBAAwB,KAAK,IAAI,CAAC;AAE3F,eAAW,SAAS,QAAQ;AAC1B,YAAM,UAAU,MAAM,MAAM,aAAa,SAAS;AAClD,UAAI,SAAS;AACX,eAAO;;;AAIX,WAAO;EACT;EAEA,MAAM,qBAAkB;AACtB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,oBACR,MAAS;AAGX,WAAO,SAAS;EAClB;EAGA,MAAM,qBAAkB;AACtB,UAAM,WAAW,MAAM,KAAK,aAAa,KACvC,QAAQ,oBACR,MAAS;AAGX,WAAO,SAAS;EAClB;;AAPM,WAAA;EADL,2BAAiB;;;;AKtPpB,IAAM,cAAN,MAAiB;EAOf,YAAY,OAAa,CAAA,GAAE;AACzB,UAAM,EAAE,iBAAiB,MAAM,QAAQ,MAAK,IAAK;AAEjD,SAAK,eAAe,IAAI,sBAAsB,gBAAgB,KAAK;AACnE,SAAK,MAAM,IAAI,IAAI,KAAK,YAAY;AACpC,SAAK,MAAM,IAAI,IAAI,KAAK,YAAY;AACpC,SAAK,OAAO,IAAI,KAAK,KAAK,YAAY;AACtC,SAAK,SAAS,IAAI,OAAO,KAAK,YAAY;EAC5C;;AAGF,IAAA,cAAe;;;AC5Bf,IAAA,cAAe;;;ACDf,SAAS,gBAAgB;AACzB,OAAOZ,YAAW;AAQlB,IAAM,kBAAkB,SAAS,CAAC,UAAkB;AAClD,SAAO,gBAAAA,OAAA,cAAC,SAAI,WAAU,0BACpB,gBAAAA,OAAA,cAAC,SAAI,WAAU,6CACb,gBAAAA,OAAA,cAAC,QAAK,MAAK,6BAA4B,OAAM,MAAK,QAAO,MAAK,WAAU,kBAAiB,CAAE,GAC7F,gBAAAA,OAAA,cAAC,SAAI,WAAU,0CAAwC,MAAM,GAAI,GACjE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MAAI,WAAU;AAAA,MACb,SAAS,OAAK,OAAO,KAAK,2BAA2B,MAAM,IAAI,IAAI,QAAQ;AAAA;AAAA,IAAG;AAAA,IAAkB,gBAAAA,OAAA,cAAC,QAAK,MAAK,4CAA2C,OAAM,MAAK,QAAO,MAAK;AAAA,EAAE,CACnL;AACF,CAAC;AACM,IAAM,sBAAsB,CAAC,EAAE,KAAK,KAAK,MAAM;AACpD,YAAU,IAAI,WAAW,EAAE,QAAQ;AAAA,IACjC,OAAO;AAAA,IACP,SAAS,gBAAAA,OAAA,cAAC,mBAAgB,KAAU,MAAY;AAAA,IAChD,QAAQ;AAAA,EACV,CAAC;AACH;;;ACzBA,SAAyC,wBAA6C;AACtF,SAAS,qBAAqB,gBAAgB,aAAa,WAAW,qBAAqB;AAC3F,SAAS,aAAa;AAGf,IAAM,oBAAN,MAAyC;AAAA,EAAzC;AACL,eAAM;AACN,0BAAiB;AAEjB,mBAAU;AACV,qBAAY;AAEZ;AAAA,2BAA2B,CAAC,KAAK;AACjC,0BAAiB;AAAA;AAAA,EAEjB,IAAI,QAAoC;AACtC,WAAO,OAAO,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,IAAI,mBAAmB;AAnBzB;AAoBI,YAAQ,IAAI,qBAAoB,UAAK,oBAAL,mBAAsB,IAAI,OAAK,EAAE,IAAI,KAAK,IAAI,EAAE;AAChF,WAAO,WAAW,IAAI,qBAAoB,UAAK,oBAAL,mBAAsB,IAAI,OAAK,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM;AAChG,aAAO,iBAAiB;AAAA,QACtB,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA;AAAA,QAEhB,QAAQ,KAAK;AAAA,QACb,SAAS;AAAA,UAAC;AAAA,YACR,WAAW;AAAA,YACX,SAAS,CAAC,aAAa,cAAc;AAAA,UACvC;AAAA,UACA;AAAA,YACE,WAAW;AAAA,YACX,SAAS,CAAC,gBAAgB,qBAAqB,aAAa,WAAW,aAAa;AAAA,UACtF;AAAA,QAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;;;ArBjBO,IAAM,cAAN,MAAM,aAA6B;AAAA,EAiDxC,YAAY,MAA6B;AAhDzC,eAAM;AACN,0BAAiB;AACjB,mBAAyB;AACzB,+BAAsB;AACtB,uBAAc;AACd,qBAAY;AAEZ,iBAAQ,IAAI,aAAa;AAEzB,wBAAe;AACf,uBAA2B;AA0B3B,mBAAU,YAAY,KAAK;AAAA,MACzB,MAAM,YAAY;AA3DtB;AA4DM,YAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK;AAAS,iBAAO,IAAI,eAAe,EAAE,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;AAC9F,cAAM,UAAU,MAAM,KAAK,aAAa,WAAW;AAAA,UACjD,SAAS,KAAK;AAAA,QAChB,CAAC;AACD,YAAI,SAAS;AACX,iBAAO,IAAI,eAAe,EAAE,OAAO,IAAI,WAAU,wCAAS,eAAT,YAAuB,GAAG,EAAE,CAAC;AAAA,QAChF;AAAA,MACF;AAAA,IACF,CAAC;AAGC,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAAA,EAvCA,IAAI,eAAwB;AAC1B,QAAI,KAAK,SAAS,KAAK,MAAM,MAAM,MAAM;AACvC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,eAAe,MAAmB;AAChC,SAAK,cAAc;AACnB,iBAAa,QAAQ,eAAe,IAAI;AAAA,EAC1C;AAAA,EACA,IAAI,gBAAgB;AAClB,WAAO,KAAK,UAAU,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,IAAI;AAAA,EACxF;AAAA,EACA,IAAI,+BAA+B;AACjC,WAAO,KAAK,UAAU,OAAO,OAAO,SAAS,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI;AAAA,EAC3H;AAAA,EACA,IAAI,wBAAwB;AAC1B,WAAO,KAAK,UAAU,OAAO,OAAO,SAAS,OAAO,QAAQ,eAAe,KAAK,aAAa,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI;AAAA,EAC3H;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAO,UAAU,IAAI,iBAAiB,EAAE;AAAA,EAC1C;AAAA,EAoBA,IAAI,mBAAmB;AACrB,QAAI,CAAC,KAAK,aAAa,KAAK,gBAAgB,GAAG;AAC7C,aAAO;AAAA,IACT;AACA,QAAI,CAAC,KAAK,aAAa,KAAK,gBAAgB,GAAG;AAC7C,aAAO;AAAA,IACT;AACA,QAAI,KAAK,WAAW;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAGA,MAAM;AACJ,YAAQ,IAAI,YAAY;AACxB,UAAM,EAAE,MAAM,cAAc,UAAU,IAAI,gBAAgB;AAC1D,UAAM,EAAE,OAAO,SAAS,YAAY,IAAI,WAAW;AACnD,UAAM,EAAE,YAAY,IAAI,eAAe;AACvC,UAAM,EAAE,iBAAiB,IAAIG,iBAAgB;AAC7C,UAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,UAAM,EAAE,WAAW,IAAI,cAAc;AACrC,SAAK,IAAI;AAAA;AAAA,MAEP;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,cAAU,MAAM;AACd,gBAAU,IAAI,kBAAkB,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC;AACxD,WAAK,IAAI;AAAA,QACP,WAAW;AAAA,QACX,SAAS;AAAA,QACT;AAAA,MACF,CAAC;AACD,UAAI,KAAK,SAAS;AAChB,aAAK;AACL,aAAK,MAAM,KAAK,qBAAqB;AAAA,MACvC;AAAA,IACF,GAAG,CAAC,SAAS,aAAa,KAAK,CAAC;AAAA,EAClC;AAAA;AAAA,EAGA,IAAI,eAA6D;AAC/D,QAAI,KAAK,SAAS,KAAK,gBAAgB,KAAK,OAAK,EAAE,OAAO,KAAK,MAAM,EAAE,GAAG;AACxE,UAAI,KAAK,MAAM,MAAM,MAAM;AACzB,eAAO,KAAK,UAAU,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,cAAc,EAAE,OAAO,KAAK,EAAE,EAAE,GAAG,WAAW,KAAK,CAAC;AAAA,MACjI;AACA,aAAO,KAAK,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;AAAA,IAChD,OAAO;AACL,aAAO,KAAK,UAAU,MAAM;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,IAAI,MAA4B;AAC9B,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,EAAE,QAAQ;AAAA,EACnB;AAAA,EAEA,MAAM,QAAQ,SAAwC;AACpD,UAAM,UAAU,IAAI,QAAc,OAAO,KAAK,QAAQ;AA7I1D;AA8IM,UAAI,CAAC;AAAQ;AACb,UAAI,KAAK,SAAS;AAChB,YAAI,QAAO,UAAK,UAAL,mBAAY,EAAE,KAAK,OAAO,OAAO,GAAG;AAC7C,cAAI;AACJ;AAAA,QACF;AACA,mBAAK,gBAAL,8BAAmB,EAAE,SAAS,4BAAW,KAAK;AAC9C,cAAM,WAAW,YAAY,MAAM;AArJ3C,cAAAU;AAsJU,cAAI,KAAK,aAAa;AACpB,kBAAIA,MAAA,KAAK,UAAL,gBAAAA,IAAY,OAAM,SAAS;AAC7B,kBAAI;AAAA,cAIJ,SAAS,OAAO;AAAA,cAAE;AAClB,4BAAc,QAAQ;AACtB,kBAAI;AAAA,YACN;AAAA,UACF;AAAA,QACF,GAAG,GAAI;AAAA,MACT,OAAO;AACL,YAAI;AACF,eAAK,iBAAiB;AAEtB,gBAAM,WAAW,YAAY,MAAM;AACjC,gBAAI,KAAK,SAAS;AAChB,4BAAc,QAAQ;AACtB,kBAAI;AAAA,YACN;AAAA,UACF,GAAG,GAAI;AAAA,QACT,SAAS,OAAO;AACd,cAAI,KAAK;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM;AACN,WAAO;AAAA,EACT;AAAA,EAGA,MAAM,0BAA0B,EAAE,KAAK,GAAG;AAExC,QAAI,KAAK,aAAa;AAEpB,YAAM,MAAM,IAAI,YAAY;AAC5B,aAAO,MAAM;AACX,cAAM,SAAS,MAAM,IAAI,IAAI,gBAAgB,IAAI;AACjD,YAAI,OAAO,aAAa,qDAAkB,0BAA0B,OAAO,aAAa,qDAAkB,sBAAsB,OAAO,aAAa,qDAAkB,WAAW;AAC/K,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AAAA,QAC1D,OAAO;AACL,iBAAO,KAAK,aAAa,0BAA0B,EAAE,MAAM,OAAO,OAAyB,CAAC;AAAA,QAC9F;AAAA,MACF;AAAA,IACF,OAAO;AACL,aAAO,KAAK,aAAa,0BAA0B,EAAE,KAAK,CAAC;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,aAAa,UAAU,MAAyC;AAC9D,WAAO,UAAU,IAAI,YAAW,EAAE,OAAO,GAAG,IAAI;AAAA,EAClD;AAAA,EACA,aAAa,aAAa,MAA4C;AACpE,WAAO,UAAU,IAAI,YAAW,EAAE,UAAU,GAAG,IAAI;AAAA,EACrD;AAAA,EACA,MAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,GASG;AAjOL;AAkOI,UAAM,QAAQ,UAAU,IAAI,WAAW;AACvC,QAAI;AACJ,UAAM,eAAe,UAAU,IAAI,kBAAkB;AACrD,QAAI;AACF,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,UAAI,CAAC;AAAS,cAAM,IAAI,MAAM,oCAAoC;AAClE,YAAM,UAAU,IAAI,YAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,aAAO,MAAM,GAAG;AAChB,UAAI,aAAa;AACf,qBAAa,cAAc,iCAAK,cAAL,EAAkB,IAAI,MAAM,WAAW,KAAK,IAAI,GAAG,QAAQ,WAAW,SAAS,OAAO,OAAO,EAAE,EAAC;AAAA,MAC7H;AACA,YAAM,UAAU,MAAM,KAAK,0BAA0B,EAAE,KAAK,CAAC;AAC7D,UAAI,QAAQ,UAAU,WAAW;AAC/B,cAAM,QAAQ;AACd,cAAM,QAAQ,gCAAgC;AAC9C,YAAI,aAAa;AACf,cAAI,mBAAmB;AACrB,gCAAoB,EAAE,KAAK,YAAY,KAAK,KAAW,CAAC;AAAA,UAC1D;AACA,uBAAa,wBAAwB,MAAM,SAAS;AAAA,QACtD;AAAA,MACF,OAAO;AACL,cAAM,QAAQ;AACd,cAAM,MAAM,wBAAwB;AACpC,qBAAa,wBAAwB,MAAM,MAAM;AAAA,MACnD;AACA,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,WAAK;AACL,aAAO;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,IAAI,KAAK;AACjB,YAAM,QAAQ;AACd,UAAI,WAAW;AACb,cAAM,MAAM,4BAA4B,KAAK,+BAAO,OAAO;AAC3D,gBAAQ,IAAI,UAAU,+BAAO,OAAO;AACpC,cAAI,oCAAO,YAAP,mBAAgB,SAAS,iCAAgC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,eAAe,KAAK,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,aAAa,GAAG;AACzK,gBAAM,MAAM,2BAA2B;AACvC,6CAAU;AACV;AAAA,QACF;AACA,cAAI,oCAAO,YAAP,mBAAgB,SAAS,6DAA0D,oCAAO,YAAP,mBAAgB,SAAS,wBAAuB;AACrI,cAAI,aAAa;AACf,yBAAa,wBAAwB,MAAM,SAAS;AAAA,UACtD;AACA,gBAAM,QAAQ,gCAAgC;AAC9C;AAAA,QACF;AAEA,YAAI,KAAK;AACP,gBAAM,MAAM,GAAwB;AACpC,6CAAU;AAAA,QACZ,OAAO;AACL,cAAI,+BAAO,QAAQ,SAAS,SAAS;AACnC,kBAAM,aAAa,+BAAO,QAAQ,MAAM;AACxC,oBAAQ,IAAI,iBAAiB,UAAU;AACvC,gBAAI,WAAW,SAAS,GAAG;AACzB,oBAAM,MAAM,WAAW,CAAC,CAAC;AACzB,iDAAU,WAAW,CAAC;AAAA,YACxB;AAAA,UACF,OAAO;AACL,kBAAM,MAAM,QAAO,+BAAO,YAAW,KAAK,CAAC;AAC3C,+CAAU,QAAO,+BAAO,YAAW,KAAK;AAAA,UAC1C;AAAA,QACF;AAAA,MACF,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,GAc4C;AAjU9C;AAkUI,cAAU,OAAO,OAAO;AACxB,UAAM,QAAQ,UAAU,IAAI,WAAW;AACvC,QAAI;AACF,UAAI,CAAC,WAAW,CAAC;AAAS,cAAM,IAAI,MAAM,+BAA+B;AACzE,YAAM,UAAU,IAAI,YAAW,EAAE,QAAQ,OAAO;AAChD,UAAI;AAAa,cAAM,QAAQ,WAAW;AAC1C,YAAM,eAAe,UAAU,IAAI,kBAAkB;AAErD,YAAM,OAAO,MAAM,KAAK,aAAa,gBAAgB;AAAA,QACnD,SAAS,KAAK;AAAA,QACd,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,QAAQ,OAAO,KAAK,IAAI;AAAA,MACjC,CAAC;AAED,UAAI,UAAU,MAAM,KAAK,0BAA0B,EAAE,KAAK,CAAC;AAC3D,cAAQ,IAAI,OAAO;AACnB,UAAI,aAAa;AACf,qBAAa,cAAc,iCAAK,cAAL,EAAkB,IAAI,QAAQ,iBAAiB,WAAW,KAAK,IAAI,GAAG,QAAQ,WAAW,SAAS,OAAO,OAAO,EAAE,EAAC;AAAA,MAChJ;AACA,iBAAW,SAAS,EAAE,KAAK,QAAQ,CAAC,IAAI;AACxC,UAAI,QAAQ,UAAU,WAAW;AAC/B,YAAI,aAAa;AACf,cAAI,mBAAmB;AACrB,gCAAoB,EAAE,KAAK,YAAY,KAAK,KAAW,CAAC;AAAA,UAC1D;AACA,uBAAa,wBAAwB,QAAQ,iBAAiB,SAAS;AAAA,QACzE;AACA,qBAAa,UAAU,EAAE,KAAK,QAAQ,CAAC;AACvC,cAAM,QAAQ;AACd,cAAM,QAAQ,gCAAgC;AAAA,MAChD,OAAO;AACL,YAAI,aAAa;AACf,uBAAa,wBAAwB,QAAQ,iBAAiB,MAAM;AAAA,QACtE;AACA,mBAAW,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACnC,cAAM,QAAQ;AACd,cAAM,MAAM,wBAAwB;AAAA,MACtC;AACA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,QAAQ;AACd,cAAQ,IAAI,MAAM,OAAO;AACzB,YAAM,MAAM,4BAA4B,KAAK,+BAAO,OAAO;AAE3D,YAAI,oCAAO,YAAP,mBAAgB,SAAS,mCAAgC,oCAAO,YAAP,mBAAgB,SAAS,cAAa,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,eAAe,KAAK,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,aAAa,GAAG;AAC/M,qBAAa,MAAM,MAAM,2BAA2B;AACpD;AAAA,MACF;AACA,WAAI,oCAAO,YAAP,mBAAgB,SAAS,yBAAyB;AACpD,qBAAa,MAAM,MAAM,sGAAsG;AAC/H;AAAA,MACF;AACA,UAAI,+BAAO,QAAQ,SAAS,SAAS;AACnC,cAAM,aAAa,+BAAO,QAAQ,MAAM;AACxC,gBAAQ,IAAI,iBAAiB,UAAU;AACvC,YAAI,WAAW,SAAS,GAAG;AACzB,gBAAM,MAAM,WAAW,CAAC,CAAC;AACzB,6CAAU,WAAW,CAAC;AACtB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,KAAK;AACP,qBAAa,MAAM,MAAM,GAAwB;AAAA,MACnD,OAAO;AACL,qBAAa,MAAM,MAAM,OAAO,MAAM,OAAO,CAAC;AAAA,MAChD;AACA,UAAI,CAAC,WAAW;AACd,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;ADlYA,IAAM,cAAc,IAAI,YAAY;AAC7B,IAAM,iBAAiBX,UAAS,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,eAAe,UAAU,IAAI,iBAAiB;AAEpD,EAAAD,WAAU,MAAM;AACd,QAAI,SAAS;AACX,mBAAa,UAAU;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACZ;AAAA;AAAA,IAEE,gBAAAD,OAAA,cAAC,iBAAc,QAAQ,aAAa,kBAAkB,kBAAkB,QACtE,gBAAAA,OAAA,cAAC,uBAAoB,QAAQ,eAC3B,gBAAAA,OAAA,cAAC,sBAAmB,QAAO,MAAK,OAAO,SAAS,SAAS,UAAU,IAAI,WAAW,KAE/E,UACD,gBAAAA,OAAA,cAAC,mBAAc,CACjB,CACF,CACF;AAAA;AAEJ,CAAC;AAEM,IAAM,gBAAgB,MAAM;AACjC,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,SAAO,IAAI;AACX,SAAO,gBAAAA,OAAA,cAAAA,OAAA,cAAE;AACX;;;AuB5CA,SAAS,SAAS,QAAQ,gBAAgB,qBAAiC;AAwBpE,IAAMc,SAAQ;AAAA,EACnB,SAAS;AAAA,GACN;AAEE,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,GACN","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { Chain, RainbowKitProvider, Wallet, connectorsForWallets, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer(({\n children,\n theme,\n appName\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n}) => {\n const walletConfig = RootStore.Get(WalletConfigStore);\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n }, [appName])\n return (\n //@ts-ignore\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\nimport { WalletHistoryStore, WalletRpcStore } from './walletPluginStore';\nimport SafeAppsSDK, { TransactionStatus } from '@safe-global/safe-apps-sdk';\nimport { ShowSuccessTxDialog } from './SuccessTxDialog'\nimport { WalletConfigStore } from \"./walletConfigStore\";\nimport { AIem } from \"../../aiem\";\nimport { helper } from \"../../lib/helper\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = '0x...';\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n get isIoTeXChain(): boolean {\n if (this.chain && this.chain.id == 4689) {\n return true\n }\n return false\n }\n setAddressMode(mode: AddressMode) {\n this.addressMode = mode;\n localStorage.setItem('addressMode', mode);\n }\n get accountFormat() {\n return this.account ? helper.address.convertAddress(this.addressMode, this.account) : '-';\n }\n get connectAccountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, '...') : '-';\n }\n get accountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, '...') : '-';\n }\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n chain: Chain | undefined;\n openConnectModal: any;\n disconnect: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return new BigNumberState({ value: new BigNumber(0) });\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return new BigNumberState({ value: new BigNumber(balance?.toString() ?? '0') });\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n get reconnectOnMount() {\n if (!this.isConnect && this.updateTicker == 0) {\n return true\n }\n if (!this.isConnect && this.updateTicker != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n\n use() {\n console.log('use wallet')\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\n disconnect\n })\n\n useEffect(() => {\n RootStore.Get(WalletHistoryStore).set({ isRender: true })\n this.set({\n isConnect: isConnected,\n account: address,\n chain,\n })\n if (this.account) {\n this.updateTicker++;\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\n }\n\n //always return or return default chain\n get publicClient(): PublicClient<HttpTransport, Chain, any, any> {\n if (this.chain && this.supportedChains.some(i => i.id === this.chain.id)) {\n if (this.chain.id == 4689) {\n return AIem.PubClient('4689', { rpcUrls: { default: { http: [RootStore.Get(WalletRpcStore).curRpc.value] } }, multicall: true })\n }\n return AIem.PubClient(this.chain.id.toString())\n } else {\n return AIem.PubClient('4689')\n }\n }\n\n set(args: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n toJSON() {\n const { account } = this;\n return { account };\n }\n\n async prepare(chainId?: number): Promise<WalletStore> {\n const promise = new Promise<void>(async (res, rej) => {\n if (!window) return;\n if (this.account) {\n if (Number(this.chain?.id) == Number(chainId)) {\n res();\n return;\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n } catch (error) { }\n clearInterval(interval);\n res();\n }\n }\n }, 1000);\n } else {\n try {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res();\n }\n }, 1000);\n } catch (error) {\n rej(error);\n }\n }\n });\n\n await promise;\n return this;\n }\n\n\n async waitForTransactionReceipt({ hash }) {\n // https://github.com/wevm/wagmi/discussions/3463#discussioncomment-8139187\n if (this.isInSafeApp) {\n // console.log('isInSafeApp', this.isInSafeApp);\n const sdk = new SafeAppsSDK();\n while (true) {\n const queued = await sdk.txs.getBySafeTxHash(hash);\n if (queued.txStatus === TransactionStatus.AWAITING_CONFIRMATIONS || queued.txStatus === TransactionStatus.AWAITING_EXECUTION || queued.txStatus === TransactionStatus.CANCELLED) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash: queued.txHash! as `0x${string}` });\n }\n }\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash });\n }\n }\n\n static async SendTx(...args: Parameters<WalletStore['sendTx']>) {\n return RootStore.Get(WalletStore).sendTx(...args);\n }\n static async SendRawTx(...args: Parameters<WalletStore['sendRawTx']>) {\n return RootStore.Get(WalletStore).sendRawTx(...args);\n }\n async sendTx({\n chainId,\n tx,\n autoAlert = true,\n loadingText,\n successText,\n onError,\n historyItem,\n showSuccessDialog = false,\n }: {\n chainId: number | string;\n tx: any;\n autoAlert?: boolean;\n loadingText?: string;\n successText?: string;\n showSuccessDialog?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n onError?: (error: any) => void;\n }) {\n const toast = RootStore.Get(ToastPlugin);\n let hash;\n const historyStore = RootStore.Get(WalletHistoryStore)\n try {\n if (loadingText) toast.loading(loadingText);\n if (!chainId) throw new Error('chainId, address, data is required');\n await RootStore.Get(WalletStore).prepare(Number(chainId));\n hash = await tx();\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: hash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n const receipt = await this.waitForTransactionReceipt({ hash });\n if (receipt.status == 'success') {\n toast.dismiss();\n toast.success('The transaction was successful');\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n } else {\n toast.dismiss();\n toast.error('The transaction failed');\n historyStore.updateHistoryStatusByTx(hash, 'fail');\n }\n if (successText) toast.success(successText);\n this.updateTicker++;\n return receipt;\n } catch (error) {\n console.log(error);\n toast.dismiss();\n if (autoAlert) {\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n console.log('sendTx', error?.message);\n if (error?.message?.includes('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n toast.error('user rejected transaction');\n onError?.(error);\n return;\n }\n if (error?.message?.includes('The Transaction may not be processed on a block yet') || error?.message?.includes('could not be found')) {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n toast.success('The transaction was successful');\n return;\n }\n\n if (msg) {\n toast.error(msg as unknown as string);\n onError?.(msg);\n } else {\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\n throw error;\n }\n }\n }\n async sendRawTx({\n chainId,\n address,\n data,\n value = '0',\n autoAlert = true,\n onSended,\n onSuccess,\n onError,\n historyItem,\n loadingText,\n showSuccessDialog = false,\n }: {\n loadingText?: string;\n chainId: number | string;\n address: string;\n data: string | null;\n value?: string;\n autoRefresh?: boolean;\n autoAlert?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n showTransactionSubmitDialog?: boolean;\n showSuccessDialog?: boolean;\n onSended?: ({ res }: { res: TransactionReceipt }) => void;\n onSuccess?: ({ res }: { res: TransactionReceipt }) => void;\n onError?: ({ res }: { res: TransactionReceipt }) => void;\n }): Promise<TransactionReceipt | undefined> {\n chainId = Number(chainId);\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (!chainId || !address) throw new Error('chainId, address, is required');\n await RootStore.Get(WalletStore).prepare(chainId);\n if (loadingText) toast.loading(loadingText);\n const historyStore = RootStore.Get(WalletHistoryStore)\n // @ts-ignore\n const hash = await this.walletClient.sendTransaction({\n account: this.account,\n to: address as `0x${string}`,\n data: data as `0x${string}`,\n value: value ? BigInt(value) : undefined,\n });\n // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: receipt.transactionHash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n onSended ? onSended({ res: receipt }) : null;\n if (receipt.status == 'success') {\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'success');\n }\n onSuccess && onSuccess({ res: receipt });\n toast.dismiss();\n toast.success('The transaction was successful');\n } else {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'fail');\n }\n onError && onError({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\n console.log(error.message);\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n // Details: Transaction was rejected\n if (error?.message?.includes('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n autoAlert && toast.error('user rejected transaction');\n return;\n }\n if (error?.message?.includes('Price slippage check')) {\n autoAlert && toast.error('The latest pool price has changed, please try to increase the slippage tolerance or reload the page.');\n return;\n }\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n return;\n }\n }\n\n if (msg) {\n autoAlert && toast.error(msg as unknown as string);\n } else {\n autoAlert && toast.error(String(error.message));\n }\n if (!autoAlert) {\n throw error;\n }\n }\n }\n}","import React from 'react';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n attributes.viewBox = box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString();\n return {\n attributes,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\n try {\n const data = JSON.parse(item);\n if (typeof data === \"object\" && typeof data.cached === \"number\" && data.cached > minTime && typeof data.provider === \"string\" && typeof data.data === \"object\" && typeof data.data.prefix === \"string\" && // Valid item: run callback\n callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (\n // Matches or newer\n lastValue && lastValue >= lastModified\n ) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nlet policy;\nfunction createPolicy() {\n try {\n policy = window.trustedTypes.createPolicy(\"iconify\", {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n createHTML: (s) => s\n });\n } catch (err) {\n policy = null;\n }\n}\nfunction cleanUpInnerHTML(html) {\n if (policy === void 0) {\n createPolicy();\n }\n return policy ? policy.createHTML(html) : html;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n WebkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = {\n ...defaultExtendedIconCustomisations,\n inline: true,\n};\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG/SPAN, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline\n ? inlineDefaults\n : defaultExtendedIconCustomisations;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Check mode\n const mode = props.mode || 'svg';\n // Create style\n const style = {};\n const customStyle = props.style || {};\n // Create SVG component properties\n const componentProps = {\n ...(mode === 'svg' ? svgDefaults : {}),\n ref,\n };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case 'mode':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: cleanUpInnerHTML(replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact')),\n };\n return React.createElement('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return React.createElement('span', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: icon,\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n if (data !== null) {\n // Icon was not loaded\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: true,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","import { Icon } from \"@iconify/react\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport { StorageState } from '../../store/standard/StorageState';\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletTransactionHistoryType } from \"./type\";\nimport { WalletStore } from \".\";\nimport { helper } from \"../../lib/helper\";\n\nconst defaultRPCList = [\n { name: 'https://babel-api.fastblocks.io', latency: 0, height: 0, custom: false },\n { name: 'https://babel-api.mainnet.iotex.one', latency: 0, height: 0, },\n { name: 'https://babel-api.mainnet.iotex.io', latency: 0, height: 0, },\n { name: 'https://iotex-network.rpc.thirdweb.com', latency: 0, height: 0, },\n { name: 'https://iotexrpc.com', latency: 0, height: 0, },\n { name: 'https://iotex.api.onfinality.io/public', latency: 0, height: 0, },\n { name: 'https://rpc.ankr.com/iotex', latency: 0, height: 0, },\n]\nexport class WalletRpcStore implements Store {\n sid = 'WalletPluginStore';\n autoObservable = true\n curRpc = new StorageState({ default: 'https://babel-api.mainnet.iotex.one', key: 'curRPC-v2', value: 'https://babel-api.mainnet.iotex.one' });\n isAutoSelectRpc = new StorageState({ key: 'isAutoSelectRpc', default: true });\n customRpc = '';\n rpcList = new StorageState({ key: 'customRpcList-v2', default: defaultRPCList, value: [] })\n showCustomRpc = false;\n get currentRpc() {\n console.log(this.rpcList.value?.find(i => i.name == this.curRpc))\n return this.rpcList.value?.find(i => i.name == this.curRpc.value) || null\n }\n addCustomRpc() {\n const item = { name: this.customRpc, latency: 0, height: 0, custom: true }\n if (defaultRPCList.find(i => i.name === item.name)) {\n return RootStore.Get(ToastPlugin).error('Rpc already exists')\n }\n if (this.rpcList.value) {\n this.rpcList.save([...this.rpcList.value, item])\n this.refresh()\n return\n }\n this.rpcList.save([...defaultRPCList, item])\n this.refresh()\n }\n async addToMetamask(url) {\n try {\n await window.ethereum?.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: `0x${(4689).toString(16)}`,\n chainName: 'IoTeX Mainnet',\n nativeCurrency: {\n name: 'IoTeX',\n symbol: 'IOTX',\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: ['https://iotexscan.io'],\n }]\n });\n RootStore.Get(ToastPlugin).success('Network added');\n console.log('Network added');\n } catch (error) {\n console.error('Failed to add network', error);\n }\n }\n refresh() {\n this.showCustomRpc = false\n this.customRpc = ''\n setTimeout(() => {\n this.testRpc()\n }, 500)\n }\n latencyColor(latency: number) {\n if (latency < 0) {\n return 'text-red-500'\n }\n if (latency < 1) {\n return 'text-green-500'\n }\n if (latency < 2) {\n return 'text-yellow-500'\n }\n return 'text-red-500'\n }\n async testRpcFunction(url: string): Promise<{ url: string, lentency: number, height: number }> {\n const start = performance.now();\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'eth_getBlockByNumber',\n params: [\"latest\", false],\n id: 1,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Error from server: ${response.status}`);\n }\n const res = await response.json();\n console.log(res)\n const end = performance.now();\n return { url, lentency: Number(helper.number.numberFormat(((end - start) / 1000), '0.000', { fallback: '-1' })), height: parseInt(res.result.number, 16) };\n } catch (error) {\n console.error('RPC Latency Test Failed:', error);\n return { url, lentency: -1, height: -1 }; // 在发生错误时返回 -1\n }\n }\n testRpc() {\n this.rpcList?.value.forEach(i => {\n this.testRpcFunction(i.name).then(res => {\n i.latency = res.lentency\n i.height = res.height\n })\n })\n this.rpcList.save(this.rpcList.value)\n }\n removeRpc(name: string) {\n this.rpcList.save(this.rpcList.value.filter(i => i.name !== name))\n }\n scoreIcon(score: number) {\n if (score < 0) {\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n if (score < 1) {\n return <Icon icon=\"icon-park-solid:check-one\" width=\"18\" height=\"18\" style={{ color: \"#289726\" }} />\n }\n if (score < 2) {\n return <Icon icon=\"bxs:error\" width=\"18\" height=\"18\" style={{ color: \"#FFA500\" }} />\n }\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n get wallet() {\n return RootStore.Get(WalletStore)\n }\n // debounceAutoSelectRpc = pDebounce(this.autoSelectRpc, 3000)\n async autoSelectRpc() {\n console.log('autoSelectRpc')\n for (let i = 0; i < this.rpcList.value.length; i++) {\n const item = this.rpcList.value[i]\n const res = await this.testRpcFunction(item.name)\n if (res.lentency != -1 || res.height > 0) {\n this.curRpc.save(item.name)\n break;\n }\n }\n }\n}\n\nexport class WalletHistoryStore implements Store {\n sid = 'WalletHistoryStore';\n isRender = false\n autoObservable = true\n set(params: Partial<WalletHistoryStore>) {\n Object.assign(this, params);\n }\n private history = new StorageState<WalletTransactionHistoryType[] | null>({ value: [], key: 'history' });\n get historyList(): WalletTransactionHistoryType[] {\n console.log(this.isRender, 'this.isRender')\n if (this.isRender) {\n return this.history.value\n }\n return []\n }\n recordHistory(item: WalletTransactionHistoryType) {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n value = [item];\n } else {\n value = [...value, item];\n }\n this.history.setValue(value);\n }\n updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail') {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n return;\n }\n value = value.map((i) => {\n if (i.tx == tx) {\n i.status = status;\n return i;\n }\n if (!tx) {\n i.status = status;\n }\n return i;\n });\n this.history.setValue(value);\n }\n clearHistory() {\n this.history.setValue(null);\n }\n}\n","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\n","import { Icon } from \"@iconify/react\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { RootStore } from \"../../../store\";\nimport { DialogStore } from \"../../../module/Dialog\";\ninterface IProps {\n msg: string,\n hash: string,\n}\n\nconst SuccessTxDialog = observer((props: IProps) => {\n return <div className='flex-col gap-4 py-10'>\n <div className='w-full flex items-center justify-center'>\n <Icon icon=\"icon-park-solid:check-one\" width=\"48\" height=\"48\" className='text-green-500' /></div>\n <div className='text-2xl font-[900] text-center mt-4'>{props.msg}</div>\n <div className='flex items-center justify-center text-green-500 text-sm mt-6 gap-2 cursor-pointer hover:text-green-600 transition'\n onClick={e => window.open(`https://iotexscan.io/tx/${props.hash}`, '_blank')}>View on IoTeXScan <Icon icon=\"material-symbols:chip-extraction-rounded\" width=\"18\" height=\"18\" /></div>\n </div>\n})\nexport const ShowSuccessTxDialog = ({ msg, hash }) => {\n RootStore.Get(DialogStore).setData({\n title: '',\n content: <SuccessTxDialog msg={msg} hash={hash} />,\n isOpen: true,\n })\n}","import { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } from '@rainbow-me/rainbowkit/wallets';\nimport { iotex } from 'viem/chains';\nimport { ObjectPool, Store } from '../..';\n\nexport class WalletConfigStore implements Store {\n sid = 'WalletConfigStore';\n autoObservable = true\n\n appName = 'Dappkit';\n projectId = 'b69e844f38265667350efd78e3e1a5fb'\n // @ts-ignore\n supportedChains: Chain[] = [iotex];\n defaultChainId = 4689;\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n }\n\n get rainbowKitConfig() {\n console.log(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`)\n return ObjectPool.get(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`, () => {\n return getDefaultConfig({\n appName: this.appName,\n projectId: this.projectId,\n //@ts-ignore\n chains: this.supportedChains,\n wallets: [{\n groupName: 'Recommended',\n wallets: [iopayWallet, metaMaskWallet],\n },\n {\n groupName: 'Others',\n wallets: [metaMaskWallet, walletConnectWallet, iopayWallet, okxWallet, binanceWallet],\n }]\n });\n });\n }\n}\n","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotexTestnet,\n} as Chain;;"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../../../node_modules/@iconify/react/dist/iconify.mjs","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/type.ts"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","observer","useConnectModal","storage","localStorage","simpleNames","send","_window","Icon","InlineIcon","Methods","RestrictedMethods","_a","iotex"],"mappings":"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","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { Chain, RainbowKitProvider, Wallet, connectorsForWallets, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer(({\n children,\n theme,\n appName\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n}) => {\n const walletConfig = RootStore.Get(WalletConfigStore);\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n }, [appName])\n return (\n //@ts-ignore\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\nimport { WalletHistoryStore, WalletRpcStore } from './walletPluginStore';\nimport SafeAppsSDK, { TransactionStatus } from '@safe-global/safe-apps-sdk';\nimport { ShowSuccessTxDialog } from './SuccessTxDialog'\nimport { WalletConfigStore } from \"./walletConfigStore\";\nimport { AIem } from \"../../aiem\";\nimport { helper } from \"../../lib/helper\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = '0x...';\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n get isIoTeXChain(): boolean {\n if (this.chain && this.chain.id == 4689) {\n return true\n }\n return false\n }\n setAddressMode(mode: AddressMode) {\n this.addressMode = mode;\n localStorage.setItem('addressMode', mode);\n }\n get accountFormat() {\n return this.account ? helper.address.convertAddress(this.addressMode, this.account) : '-';\n }\n get connectAccountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, '...') : '-';\n }\n get accountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, '...') : '-';\n }\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n chain: Chain | undefined;\n openConnectModal: any;\n disconnect: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return new BigNumberState({ value: new BigNumber(0) });\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return new BigNumberState({ value: new BigNumber(balance?.toString() ?? '0') });\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n get reconnectOnMount() {\n if (!this.isConnect && this.updateTicker == 0) {\n return true\n }\n if (!this.isConnect && this.updateTicker != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n\n use() {\n console.log('use wallet')\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\n disconnect\n })\n\n useEffect(() => {\n RootStore.Get(WalletHistoryStore).set({ isRender: true })\n this.set({\n isConnect: isConnected,\n account: address,\n chain,\n })\n if (this.account) {\n this.updateTicker++;\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\n }\n\n //always return or return default chain\n get publicClient(): PublicClient<HttpTransport, Chain, any, any> {\n if (this.chain && this.supportedChains.some(i => i.id === this.chain.id)) {\n if (this.chain.id == 4689) {\n return AIem.PubClient('4689', { rpcUrls: { default: { http: [RootStore.Get(WalletRpcStore).curRpc.value] } }, multicall: true })\n }\n return AIem.PubClient(this.chain.id.toString())\n } else {\n return AIem.PubClient('4689')\n }\n }\n\n set(args: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n toJSON() {\n const { account } = this;\n return { account };\n }\n\n async prepare(chainId?: number): Promise<WalletStore> {\n const promise = new Promise<void>(async (res, rej) => {\n try {\n if (!window) return;\n if (this.account) {\n if (Number(this.chain?.id) == Number(chainId)) {\n res();\n return;\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n } catch (error) { }\n clearInterval(interval);\n res();\n }\n }\n }, 1000);\n } else {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res();\n }\n }, 1000);\n\n }\n } catch (error) {\n rej(error);\n }\n });\n\n await promise;\n return this;\n }\n\n\n async waitForTransactionReceipt({ hash }) {\n // https://github.com/wevm/wagmi/discussions/3463#discussioncomment-8139187\n if (this.isInSafeApp) {\n // console.log('isInSafeApp', this.isInSafeApp);\n const sdk = new SafeAppsSDK();\n while (true) {\n const queued = await sdk.txs.getBySafeTxHash(hash);\n if (queued.txStatus === TransactionStatus.AWAITING_CONFIRMATIONS || queued.txStatus === TransactionStatus.AWAITING_EXECUTION || queued.txStatus === TransactionStatus.CANCELLED) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash: queued.txHash! as `0x${string}` });\n }\n }\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash });\n }\n }\n\n static async SendTx(...args: Parameters<WalletStore['sendTx']>) {\n return RootStore.Get(WalletStore).sendTx(...args);\n }\n static async SendRawTx(...args: Parameters<WalletStore['sendRawTx']>) {\n return RootStore.Get(WalletStore).sendRawTx(...args);\n }\n async sendTx({\n chainId,\n tx,\n autoAlert = true,\n loadingText,\n successText,\n onError,\n historyItem,\n showSuccessDialog = false,\n }: {\n chainId: number | string;\n tx: any;\n autoAlert?: boolean;\n loadingText?: string;\n successText?: string;\n showSuccessDialog?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n onError?: (error: any) => void;\n }) {\n const toast = RootStore.Get(ToastPlugin);\n let hash;\n const historyStore = RootStore.Get(WalletHistoryStore)\n try {\n if (loadingText) toast.loading(loadingText);\n if (!chainId) throw new Error('chainId, address, data is required');\n await RootStore.Get(WalletStore).prepare(Number(chainId));\n hash = await tx();\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: hash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n const receipt = await this.waitForTransactionReceipt({ hash });\n if (receipt.status == 'success') {\n toast.dismiss();\n toast.success('The transaction was successful');\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n } else {\n toast.dismiss();\n toast.error('The transaction failed');\n historyStore.updateHistoryStatusByTx(hash, 'fail');\n }\n if (successText) toast.success(successText);\n this.updateTicker++;\n return receipt;\n } catch (error) {\n console.log(error);\n toast.dismiss();\n if (autoAlert) {\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n console.log('sendTx', error?.message);\n if (error?.message?.includes('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n toast.error('user rejected transaction');\n onError?.(error);\n return;\n }\n if (error?.message?.includes('The Transaction may not be processed on a block yet') || error?.message?.includes('could not be found')) {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n toast.success('The transaction was successful');\n return;\n }\n\n if (msg) {\n toast.error(msg as unknown as string);\n onError?.(msg);\n } else {\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\n throw error;\n }\n }\n }\n async sendRawTx({\n chainId,\n address,\n data,\n value = '0',\n autoAlert = true,\n onSended,\n onSuccess,\n onError,\n historyItem,\n loadingText,\n showSuccessDialog = false,\n }: {\n loadingText?: string;\n chainId: number | string;\n address: string;\n data: string | null;\n value?: string;\n autoRefresh?: boolean;\n autoAlert?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n showTransactionSubmitDialog?: boolean;\n showSuccessDialog?: boolean;\n onSended?: ({ res }: { res: TransactionReceipt }) => void;\n onSuccess?: ({ res }: { res: TransactionReceipt }) => void;\n onError?: ({ res }: { res: TransactionReceipt }) => void;\n }): Promise<TransactionReceipt | undefined> {\n chainId = Number(chainId);\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (!chainId || !address) throw new Error('chainId, address, is required');\n await RootStore.Get(WalletStore).prepare(chainId);\n if (loadingText) toast.loading(loadingText);\n const historyStore = RootStore.Get(WalletHistoryStore)\n // @ts-ignore\n const hash = await this.walletClient.sendTransaction({\n account: this.account,\n to: address as `0x${string}`,\n data: data as `0x${string}`,\n value: value ? BigInt(value) : undefined,\n });\n // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: receipt.transactionHash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n onSended ? onSended({ res: receipt }) : null;\n if (receipt.status == 'success') {\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'success');\n }\n onSuccess && onSuccess({ res: receipt });\n toast.dismiss();\n toast.success('The transaction was successful');\n } else {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'fail');\n }\n onError && onError({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\n console.log(error.message);\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n // Details: Transaction was rejected\n if (error?.message?.includes('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user denied')) {\n autoAlert && toast.error('user rejected transaction');\n return;\n }\n if (error?.message?.includes('Price slippage check')) {\n autoAlert && toast.error('The latest pool price has changed, please try to increase the slippage tolerance or reload the page.');\n return;\n }\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n toast.error(messageArr[0]);\n onError?.(messageArr[0]);\n return;\n }\n }\n\n if (msg) {\n autoAlert && toast.error(msg as unknown as string);\n } else {\n autoAlert && toast.error(String(error.message));\n }\n if (!autoAlert) {\n throw error;\n }\n }\n }\n}","import React from 'react';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n attributes.viewBox = box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString();\n return {\n attributes,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\n try {\n const data = JSON.parse(item);\n if (typeof data === \"object\" && typeof data.cached === \"number\" && data.cached > minTime && typeof data.provider === \"string\" && typeof data.data === \"object\" && typeof data.data.prefix === \"string\" && // Valid item: run callback\n callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (\n // Matches or newer\n lastValue && lastValue >= lastModified\n ) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nlet policy;\nfunction createPolicy() {\n try {\n policy = window.trustedTypes.createPolicy(\"iconify\", {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n createHTML: (s) => s\n });\n } catch (err) {\n policy = null;\n }\n}\nfunction cleanUpInnerHTML(html) {\n if (policy === void 0) {\n createPolicy();\n }\n return policy ? policy.createHTML(html) : html;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n WebkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = {\n ...defaultExtendedIconCustomisations,\n inline: true,\n};\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG/SPAN, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline\n ? inlineDefaults\n : defaultExtendedIconCustomisations;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Check mode\n const mode = props.mode || 'svg';\n // Create style\n const style = {};\n const customStyle = props.style || {};\n // Create SVG component properties\n const componentProps = {\n ...(mode === 'svg' ? svgDefaults : {}),\n ref,\n };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case 'mode':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: cleanUpInnerHTML(replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact')),\n };\n return React.createElement('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return React.createElement('span', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: icon,\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n if (data !== null) {\n // Icon was not loaded\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: true,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","import { Icon } from \"@iconify/react\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport { StorageState } from '../../store/standard/StorageState';\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletTransactionHistoryType } from \"./type\";\nimport { WalletStore } from \".\";\nimport { helper } from \"../../lib/helper\";\n\nconst defaultRPCList = [\n { name: 'https://babel-api.fastblocks.io', latency: 0, height: 0, custom: false },\n { name: 'https://babel-api.mainnet.iotex.one', latency: 0, height: 0, },\n { name: 'https://babel-api.mainnet.iotex.io', latency: 0, height: 0, },\n { name: 'https://iotex-network.rpc.thirdweb.com', latency: 0, height: 0, },\n { name: 'https://iotexrpc.com', latency: 0, height: 0, },\n { name: 'https://iotex.api.onfinality.io/public', latency: 0, height: 0, },\n { name: 'https://rpc.ankr.com/iotex', latency: 0, height: 0, },\n]\nexport class WalletRpcStore implements Store {\n sid = 'WalletPluginStore';\n autoObservable = true\n curRpc = new StorageState({ default: 'https://babel-api.mainnet.iotex.one', key: 'curRPC-v2', value: 'https://babel-api.mainnet.iotex.one' });\n isAutoSelectRpc = new StorageState({ key: 'isAutoSelectRpc', default: true });\n customRpc = '';\n rpcList = new StorageState({ key: 'customRpcList-v2', default: defaultRPCList, value: [] })\n showCustomRpc = false;\n get currentRpc() {\n console.log(this.rpcList.value?.find(i => i.name == this.curRpc))\n return this.rpcList.value?.find(i => i.name == this.curRpc.value) || null\n }\n addCustomRpc() {\n const item = { name: this.customRpc, latency: 0, height: 0, custom: true }\n if (defaultRPCList.find(i => i.name === item.name)) {\n return RootStore.Get(ToastPlugin).error('Rpc already exists')\n }\n if (this.rpcList.value) {\n this.rpcList.save([...this.rpcList.value, item])\n this.refresh()\n return\n }\n this.rpcList.save([...defaultRPCList, item])\n this.refresh()\n }\n async addToMetamask(url) {\n try {\n await window?.ethereum?.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: `0x${(4689).toString(16)}`,\n chainName: 'IoTeX Mainnet',\n nativeCurrency: {\n name: 'IoTeX',\n symbol: 'IOTX',\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: ['https://iotexscan.io'],\n }]\n });\n RootStore.Get(ToastPlugin).success('Network added');\n console.log('Network added');\n } catch (error) {\n console.error('Failed to add network', error);\n }\n }\n refresh() {\n this.showCustomRpc = false\n this.customRpc = ''\n setTimeout(() => {\n this.testRpc()\n }, 500)\n }\n latencyColor(latency: number) {\n if (latency < 0) {\n return 'text-red-500'\n }\n if (latency < 1) {\n return 'text-green-500'\n }\n if (latency < 2) {\n return 'text-yellow-500'\n }\n return 'text-red-500'\n }\n async testRpcFunction(url: string): Promise<{ url: string, lentency: number, height: number }> {\n const start = performance.now();\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'eth_getBlockByNumber',\n params: [\"latest\", false],\n id: 1,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Error from server: ${response.status}`);\n }\n const res = await response.json();\n console.log(res)\n const end = performance.now();\n return { url, lentency: Number(helper.number.numberFormat(((end - start) / 1000), '0.000', { fallback: '-1' })), height: parseInt(res.result.number, 16) };\n } catch (error) {\n console.error('RPC Latency Test Failed:', error);\n return { url, lentency: -1, height: -1 }; // 在发生错误时返回 -1\n }\n }\n testRpc() {\n this.rpcList?.value.forEach(i => {\n this.testRpcFunction(i.name).then(res => {\n i.latency = res.lentency\n i.height = res.height\n })\n })\n this.rpcList.save(this.rpcList.value)\n }\n removeRpc(name: string) {\n this.rpcList.save(this.rpcList.value.filter(i => i.name !== name))\n }\n scoreIcon(score: number) {\n if (score < 0) {\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n if (score < 1) {\n return <Icon icon=\"icon-park-solid:check-one\" width=\"18\" height=\"18\" style={{ color: \"#289726\" }} />\n }\n if (score < 2) {\n return <Icon icon=\"bxs:error\" width=\"18\" height=\"18\" style={{ color: \"#FFA500\" }} />\n }\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n get wallet() {\n return RootStore.Get(WalletStore)\n }\n // debounceAutoSelectRpc = pDebounce(this.autoSelectRpc, 3000)\n async autoSelectRpc() {\n console.log('autoSelectRpc')\n for (let i = 0; i < this.rpcList.value.length; i++) {\n const item = this.rpcList.value[i]\n const res = await this.testRpcFunction(item.name)\n if (res.lentency != -1 || res.height > 0) {\n this.curRpc.save(item.name)\n break;\n }\n }\n }\n}\n\nexport class WalletHistoryStore implements Store {\n sid = 'WalletHistoryStore';\n isRender = false\n autoObservable = true\n set(params: Partial<WalletHistoryStore>) {\n Object.assign(this, params);\n }\n private history = new StorageState<WalletTransactionHistoryType[] | null>({ value: [], key: 'history' });\n get historyList(): WalletTransactionHistoryType[] {\n console.log(this.isRender, 'this.isRender')\n if (this.isRender) {\n return this.history.value\n }\n return []\n }\n recordHistory(item: WalletTransactionHistoryType) {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n value = [item];\n } else {\n value = [...value, item];\n }\n this.history.setValue(value);\n }\n updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail') {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n return;\n }\n value = value.map((i) => {\n if (i.tx == tx) {\n i.status = status;\n return i;\n }\n if (!tx) {\n i.status = status;\n }\n return i;\n });\n this.history.setValue(value);\n }\n clearHistory() {\n this.history.setValue(null);\n }\n}\n","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\n","import { Icon } from \"@iconify/react\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { RootStore } from \"../../../store\";\nimport { DialogStore } from \"../../../module/Dialog\";\ninterface IProps {\n msg: string,\n hash: string,\n}\n\nconst SuccessTxDialog = observer((props: IProps) => {\n return <div className='flex-col gap-4 py-10'>\n <div className='w-full flex items-center justify-center'>\n <Icon icon=\"icon-park-solid:check-one\" width=\"48\" height=\"48\" className='text-green-500' /></div>\n <div className='text-2xl font-[900] text-center mt-4'>{props.msg}</div>\n <div className='flex items-center justify-center text-green-500 text-sm mt-6 gap-2 cursor-pointer hover:text-green-600 transition'\n onClick={e => window.open(`https://iotexscan.io/tx/${props.hash}`, '_blank')}>View on IoTeXScan <Icon icon=\"material-symbols:chip-extraction-rounded\" width=\"18\" height=\"18\" /></div>\n </div>\n})\nexport const ShowSuccessTxDialog = ({ msg, hash }) => {\n RootStore.Get(DialogStore).setData({\n title: '',\n content: <SuccessTxDialog msg={msg} hash={hash} />,\n isOpen: true,\n })\n}","import { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } from '@rainbow-me/rainbowkit/wallets';\nimport { iotex } from 'viem/chains';\nimport { ObjectPool, Store } from '../..';\n\nexport class WalletConfigStore implements Store {\n sid = 'WalletConfigStore';\n autoObservable = true\n\n appName = 'Dappkit';\n projectId = 'b69e844f38265667350efd78e3e1a5fb'\n // @ts-ignore\n supportedChains: Chain[] = [iotex];\n defaultChainId = 4689;\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n }\n\n get rainbowKitConfig() {\n console.log(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`)\n return ObjectPool.get(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`, () => {\n return getDefaultConfig({\n appName: this.appName,\n projectId: this.projectId,\n //@ts-ignore\n chains: this.supportedChains,\n wallets: [{\n groupName: 'Recommended',\n wallets: [iopayWallet, metaMaskWallet],\n },\n {\n groupName: 'Others',\n wallets: [metaMaskWallet, walletConnectWallet, iopayWallet, okxWallet, binanceWallet],\n }]\n });\n });\n }\n}\n","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotexTestnet,\n} as Chain;;"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../store/standard/PromiseHook.ts","../store/standard/BigNumberState.ts","../store/standard/BigNumberInputState.ts","../store/standard/StorageState.ts","../store/standard/StorageListState.ts","../store/standard/ObjectPool.ts","../module/AppProvider.tsx"],"names":["BigNumber","makeAutoObservable","rootStore"],"mappings":";;;;;;;;AAAA,SAAS,kBAAkB;AAEpB,IAAM,KAAN,MAAS;AAGhB;AAAA;AAHa,GAEJ,QAAQ,WAAW;AAYrB,IAAM,cAAN,MAAkB;AAAA,EAEvB,OAAO,IACL,KACgM;AAChM,QAAI;AACF,aAAO,OAAO,EAAE,MAAM,QAAQ,IAAI,SAAS,MAAM;AAC/C,YAAI;AAEJ,YAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,GAAG;AAC7B,qBAAW,IAAI,IAAI,IAAI;AAEvB,mBAAS,UAAU,YAAY;AAC7B,kBAAM,QAAQ,OAAO,QAAQ,QAAQ,EAClC,OAAO,CAAC,MAAM;AACb,kBAAI,CAAC,KAAK,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC;AAAG,uBAAO;AAEhD,kBAAI,EAAE,CAAC,EAAE;AAAM,uBAAO;AACtB,kBAAI,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAAG,uBAAO;AACpC,kBAAI,YAAY,SAAS,EAAE,CAAC,CAAC;AAAG,uBAAO;AACvC,qBAAO;AAAA,YACT,CAAC,EACA,IAAI,CAAC,MAAM;AACV,oBAAM,OAAO,SAAS,EAAE,CAAC,CAAC;AAC1B,qBAAO;AAAA,YACT,CAAC;AAEH,kBAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAAA,UAC9C;AACA,cAAI,IAAI;AAEN,iBAAK,SAAS,EAAE,IAAI;AAAA,UACtB;AAAA,QACF,OAAO;AACL,qBAAW,KAAK,SAAS,EAAG;AAAA,QAC9B;AAEA,cAAM,SAAS,QAAQ;AACvB,eAAO;AAAA,MACT;AAAA,IACF,SAAS,GAAG;AACV,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,OAAO,cAAc,QAAQ;AAC3B,YAAO,iCAAQ,UAAS;AAAA,EAC1B;AAAA;AAAA,EAGA,OAAO,KAAoE,EAAE,MAAM,cAAc,KAAK,GAAkF;AACtL,QAAI;AACJ,UAAM,OAAO,CAAC,SAAS;AACrB,cAAQ,UAAU;AAClB,UAAI,CAAC,QAAQ,OAAO;AAClB,gBAAQ,QAAQ,KAAK,IAAI,EACtB,KAAK,CAAC,MAAM;AACX,kBAAQ,QAAQ;AAChB,kBAAQ,UAAU;AAClB,kBAAQ,QAAQ;AAChB,iBAAO;AAAA,QACT,CAAC,EACA,MAAM,CAAC,MAAM;AACZ,kBAAQ,MAAM,GAAG,IAAI;AACrB,kBAAQ,QAAQ;AAChB,kBAAQ,QAAQ;AAChB,kBAAQ,UAAU;AAClB,gBAAM;AAAA,QACR,CAAC;AAAA,MACL;AAEA,aAAO,QAAQ;AAAA,IACjB;AACA,UAAM,MAAM,OAAO,SAAc;AAC/B,UAAI,CAAC,QAAQ,OAAO;AAClB,eAAO,KAAK,IAAI;AAAA,MAClB;AACA,aAAO,QAAQ;AAAA,IACjB;AAEA,QAAI,CAAC,SAAS;AACZ,gBAAU,WAAW;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,IAAI,QAAQ;AACV,iBAAO,QAAQ,QAAQ;AAAA,QACzB;AAAA,QACA,IAAI,MAAM,KAAK;AACb,kBAAQ,QAAQ,IAAI;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QAEA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,SAAS;AACP,iBAAO,QAAQ;AAAA,QACjB;AAAA,QACA,WAAW;AACT,iBAAO,QAAQ;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;AA3Ga,YACJ,WAAW,WAAW,CAAC,CAAC;;;ACjBjC,OAAO,eAAe;AACtB,SAAS,0BAA0B;AAG5B,IAAM,iBAAN,MAAqB;AAAA,EAM1B,YAAY,MAA+B;AAL3C,iBAAQ,IAAI,UAAU,CAAC;AACvB,mBAAU;AACV,oBAAW;AACX,iBAAQ;AAGN,WAAO,OAAO,MAAM,IAAI;AACxB,uBAAmB,MAAM;AAAA,MACvB,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AAAA,EACA,IAAI,SAAS;AACX,QAAI,KAAK;AAAS,aAAO;AACzB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,UAAU,EAAE,WAAW,KAAK,UAAU,QAAQ,KAAK,MAAM,IAA2C,CAAC,GAAG;AACtG,QAAI,KAAK;AAAS,aAAO;AACzB,QAAI,KAAK;AAAW,aAAO,KAAK,UAAU,IAAI;AAC9C,WAAO,OAAO,OAAO,iBAAiB,IAAI,UAAU,KAAK,KAAK,EAAE,UAAU,MAAM,QAAQ,EAAE,QAAQ,GAAG;AAAA,MACnG,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EAEA,YAAY,UAAkB;AAC5B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,SAAS,OAAkB;AACzB,SAAK,QAAQ;AACb,SAAK,WAAW,KAAK;AAAA,EACvB;AAAA,EAEA,WAAW,KAAK;AACd,SAAK,UAAU;AAAA,EACjB;AACF;;;ACzCA,OAAOA,gBAAe;AACtB,SAAS,sBAAAC,2BAA0B;AAE5B,IAAM,sBAAN,MAA0B;AAAA,EAM/B,YAAY,MAAoC;AALhD,iBAAQ,IAAID,WAAU,CAAC;AACvB,kBAAS;AACT,mBAAU;AACV,oBAAW;AAGT,WAAO,OAAO,MAAM,IAAI;AACxB,IAAAC,oBAAmB,IAAI;AAAA,EACzB;AAAA,EACA,IAAI,iBAA4B;AAC9B,WAAO,IAAID,WAAU,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,QAAQ;AAAA,EAChE;AAAA,EACA,SAAS,OAAY;AACnB,SAAK,QAAQ,IAAIA,WAAU,KAAK;AAEhC,SAAK,SAAS,OAAO,OAAO,cAAc,KAAK,MAAM,QAAQ,GAAG,KAAK,UAAU,EAAE,QAAQ,SAAS,UAAU,GAAG,CAAC,EAAE;AAClH,SAAK,WAAW,KAAK;AAAA,EACvB;AAAA,EACA,UAAU,KAAU;AAClB,SAAK,SAAS;AAGd,SAAK,QAAQ,IAAIA,WAAU,GAAG,EAAE,aAAa,MAAM,KAAK,QAAQ;AAAA,EAClE;AAAA,EACA,WAAW,KAAc;AACvB,SAAK,UAAU;AAAA,EACjB;AAAA,EACA,YAAY,KAAa;AACvB,SAAK,WAAW;AAAA,EAClB;AAAA,EACA,IAAI,SAAkB;AACpB,WAAO,KAAK,MAAM,OAAO,KAAK,KAAK,UAAU;AAAA,EAC/C;AACF;;;ACrCA,SAAS,sBAAAC,2BAA0B;AAE5B,IAAM,eAAN,MAAM,cAAgB;AAAA,EAI3B,YAAY,MAAgC;AAF5C,iBAAiB;AACjB,mBAAmB;AAEjB,WAAO,OAAO,MAAM,IAAI;AACxB,IAAAA,oBAAmB,IAAI;AACvB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,OAAO,UAAU,KAAU;AACzB,QAAI;AACF,aAAO,KAAK,MAAM,GAAG;AAAA,IACvB,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO;AApBT;AAqBI,QAAI;AACF,YAAM,SAAQ,sCAAQ,iBAAR,mBAAsB,QAAQ,KAAK;AACjD,WAAK,QAAQ,cAAa,UAAU,KAAK;AACzC,UAAI,KAAK,SAAS,MAAM;AACtB,aAAK,QAAQ,KAAK;AAAA,MACpB;AACA,aAAO,KAAK;AAAA,IACd,SAAS,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,KAAK,OAAW;AACd,QAAI;AACF,UAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,aAAK,QAAQ;AAAA,MACf;AACA,uCAAQ,aAAa,QAAQ,KAAK,KAAK,KAAK,UAAU,KAAK;AAAA,IAC7D,SAAS,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,SAAS,OAAW;AAClB,SAAK,KAAK,KAAK;AAAA,EACjB;AAAA,EAEA,QAAQ;AACN,QAAI;AACF,mBAAa,WAAW,KAAK,GAAG;AAAA,IAClC,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACzDA,SAAS,sBAAAA,2BAA0B;AAK5B,IAAM,mBAAN,MAAM,kBAA0B;AAAA,EAYrC,YAAY,MAAwB;AAVpC,gBAAY,CAAC;AAWX,WAAO,OAAO,MAAM,IAAI;AACxB,IAAAA,oBAAmB,IAAI;AACvB,SAAK,KAAK;AAAA,EACZ;AAAA,EAZA,OAAO,UAAU,KAAU;AACzB,QAAI;AACF,aAAO,KAAK,MAAM,GAAG;AAAA,IACvB,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EASA,OAAO;AACL,QAAI;AACF,YAAM,QAAQ,aAAa,QAAQ,KAAK,GAAG;AAC3C,UAAI,OAAO;AACT,aAAK,OAAO,kBAAiB,UAAU,KAAK;AAAA,MAC9C;AACA,aAAO,kBAAiB,UAAU,KAAK;AAAA,IACzC,SAAS,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAGA,KAAK,OAAU;AACb,SAAK,KAAK,KAAK,KAAK;AACpB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,OAAO,OAAe;AACpB,SAAK,KAAK,OAAO,OAAO,CAAC;AACzB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEQ,OAAO;AACb,QAAI;AACF,mBAAa,QAAQ,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,IAC1D,SAAS,OAAO;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,QAAI;AACF,mBAAa,WAAW,KAAK,GAAG;AAChC,WAAK,OAAO,CAAC;AAAA,IACf,SAAS,OAAO;AAAA,IAChB;AAAA,EACF;AACF;;;AC5DO,IAAM,cAAN,MAAM,YAAW;AAAA,EAGtB,OAAO,IAA0D,KAAa,MAAY;AACxF,QAAI,CAAC,YAAW,KAAK,GAAG,GAAG;AACzB,kBAAW,KAAK,GAAG,IAAI,KAAK;AAAA,IAC9B;AACA,WAAO,YAAW,KAAK,GAAG;AAAA,EAC5B;AACF;AATa,YACJ,OAA+B,CAAC;AADlC,IAAM,aAAN;;;ACFP,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAGlB,IAAM,cAAc,SAAS,CAAC,EAAE,SAAS,MAAsC;AACpF,QAAMC,aAAY,UAAU,KAAK;AACjC,SACE,0DACGA,WAAU,UAAU,IAAI,CAAC,UAAU;AAClC,UAAM,YAAiB,MAAM;AAC7B,WAAO,oCAAC,aAAU,WAAWA,YAAW,KAAK,MAAM,KAAK;AAAA,EAC1D,CAAC,GACA,YAAY,QACf;AAEJ,CAAC","sourcesContent":["import { observable } from \"mobx\";\n\nexport class KV {\n //@ts-ignore\n static datas = observable();\n}\n\nexport abstract class ContractBase {\n // chainId?: number;\n // address?: string;\n}\n\nexport type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T;\n\nexport type PromiseHookData<T, U> = { value: Awaited<U>; get: T; call: T; func: T; loading: boolean; errorRetry: number };\n\nexport class PromiseHook {\n static entities = observable([]);\n static Get<T extends ContractBase>(\n cls: ContractClass<T>,\n ): (args: { args: Partial<T>; id?: string; select?: { [key in keyof Partial<T>]: boolean }; unselect?: { [key in keyof Partial<T>]: boolean } }) => Promise<T & { refresh: () => Promise<void> }> {\n try {\n return async ({ args, select, id, unselect }) => {\n let instance: any;\n //@ts-ignore\n if (!id || !this.entities[id]) {\n instance = new cls(args);\n\n instance.refresh = async () => {\n const hooks = Object.entries(instance)\n .filter((i) => {\n if (!this.isPromiseHook(instance[i[0]])) return false;\n //@ts-ignore\n if (i[1].lazy) return false;\n if (select && !select[i[0]]) return false;\n if (unselect && unselect[i[0]]) return false;\n return true;\n })\n .map((i) => {\n const hook = instance[i[0]];\n return hook;\n });\n\n await Promise.all(hooks.map((i) => i.call()));\n };\n if (id) {\n //@ts-ignore\n this.entities[id] = instance;\n }\n } else {\n instance = this.entities[id!];\n }\n\n await instance.refresh();\n return instance;\n };\n } catch (e) {\n throw e;\n }\n }\n\n static isPromiseHook(target) {\n return target?._type == \"promiseHook\";\n }\n\n //ttl : ms\n static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: { func: T; defaultValue?: Awaited<U>; lazy?: boolean }): PromiseHookData<T, U> {\n let context;\n const call = (args) => {\n context.loading = true;\n if (!context._call) {\n context._call = func(args)\n .then((i) => {\n context.value = i;\n context.loading = false;\n context._call = null;\n return i;\n })\n .catch((i) => {\n console.error(i, func);\n context.value = defaultValue;\n context._call = null;\n context.loading = false;\n throw i;\n });\n }\n\n return context._call;\n };\n const get = async (args: any) => {\n if (!context.value) {\n return call(args);\n }\n return context.value;\n };\n\n if (!context) {\n context = observable({\n _type: \"promiseHook\",\n _value: defaultValue,\n get value() {\n return context[\"_value\"];\n },\n set value(val) {\n context[\"_value\"] = val;\n },\n get,\n lazy,\n\n loading: false,\n call,\n defaultValue,\n toJSON() {\n return context.value;\n },\n toString() {\n return context.value;\n },\n });\n }\n\n return context;\n }\n}\n","import BigNumber from \"bignumber.js\";\nimport { makeAutoObservable } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\n\nexport class BigNumberState {\n value = new BigNumber(0);\n loading = false;\n decimals = 18;\n fixed = 6;\n formatter?: Function;\n constructor(args: Partial<BigNumberState>) {\n Object.assign(this, args);\n makeAutoObservable(this, {\n getFormat: false,\n });\n }\n get format() {\n if (this.loading) return \"...\";\n return this.getFormat();\n }\n\n getFormat({ decimals = this.decimals, fixed = this.fixed }: { decimals?: number; fixed?: number } = {}) {\n if (this.loading) return \"...\";\n if (this.formatter) return this.formatter(this);\n return helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** decimals).toFixed(), {\n decimals: fixed,\n });\n }\n\n setDecimals(decimals: number) {\n this.decimals = decimals;\n }\n\n setValue(value: BigNumber) {\n this.value = value;\n this.setLoading(false);\n }\n\n setLoading(val) {\n this.loading = val;\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { makeAutoObservable } from 'mobx';\nimport { helper } from '../../lib/helper';\nexport class BigNumberInputState {\n value = new BigNumber(0);\n format = '';\n loading = false;\n decimals = 18;\n formatter?: Function;\n constructor(args: Partial<BigNumberInputState>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n get noDecimasValue(): BigNumber {\n return new BigNumber(this.value).dividedBy(10 ** this.decimals);\n }\n setValue(value: any) {\n this.value = new BigNumber(value);\n // this.format = helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** this.decimals).toFixed());\n this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.setLoading(false);\n }\n setFormat(val: any) {\n this.format = val;\n // this.format = helper.number.toPrecisionFloor(this.format);\n // this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.value = new BigNumber(val).multipliedBy(10 ** this.decimals);\n }\n setLoading(val: boolean) {\n this.loading = val;\n }\n setDecimals(val: number) {\n this.decimals = val;\n }\n get isZero(): boolean {\n return this.value.isZero() && this.format == '';\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nexport class StorageState<T> {\n key: string;\n value: T | any = null;\n default: T | any = null;\n constructor(args: Partial<StorageState<T>>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n load() {\n try {\n const value = window?.localStorage?.getItem(this.key);\n this.value = StorageState.safeParse(value);\n if (this.value == null) {\n this.value = this.default;\n }\n return this.value;\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n save(value?: T) {\n try {\n if (value !== null || value !== undefined) {\n this.value = value;\n }\n window?.localStorage.setItem(this.key, JSON.stringify(value));\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n setValue(value?: T) {\n this.save(value);\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n } catch (error) {\n return null;\n }\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nimport { helper } from \"../../lib/helper\";\nimport { _ } from \"../../lib/lodash\";\n\nexport class StorageListState<T = any> {\n key: string;\n list: T[] = [];\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n constructor(args: { key: string; }) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n\n load() {\n try {\n const value = localStorage.getItem(this.key);\n if (value) {\n this.list = StorageListState.safeParse(value);\n }\n return StorageListState.safeParse(value)\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n\n push(value: T) {\n this.list.push(value);\n this.save();\n }\n\n remove(index: number) {\n this.list.splice(index, 1);\n this.save();\n }\n\n private save() {\n try {\n localStorage.setItem(this.key, JSON.stringify(this.list));\n } catch (error) {\n }\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n this.list = [];\n } catch (error) {\n }\n }\n}\n","\n\nexport class ObjectPool {\n static pool: { [key: string]: any } = {};\n\n static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U {\n if (!ObjectPool.pool[key]) {\n ObjectPool.pool[key] = func();\n }\n return ObjectPool.pool[key];\n }\n}","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { RootStore } from \"../store/root\";\n\nexport const AppProvider = observer(({ children }: { children?: React.ReactNode }) => {\n const rootStore = RootStore.init()\n return (\n <>\n {rootStore.providers.map((store) => {\n const Component: any = store.provider;\n return <Component rootStore={rootStore} key={store.sid} />;\n })}\n {children && children}\n </>\n )\n})"]}
|