@typeberry/lib 0.2.0-0e2cdac → 0.2.0-262995a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +525 -415
- package/index.d.ts +1169 -1053
- package/index.js +497 -388
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
|
-
import fs
|
|
2
|
+
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
4
|
|
|
6
5
|
var GpVersion;
|
|
7
6
|
(function (GpVersion) {
|
|
@@ -580,7 +579,7 @@ function isResult(x) {
|
|
|
580
579
|
* as an afterthought.
|
|
581
580
|
*/
|
|
582
581
|
|
|
583
|
-
var index$
|
|
582
|
+
var index$v = /*#__PURE__*/Object.freeze({
|
|
584
583
|
__proto__: null,
|
|
585
584
|
get CURRENT_SUITE () { return CURRENT_SUITE; },
|
|
586
585
|
get CURRENT_VERSION () { return CURRENT_VERSION; },
|
|
@@ -737,7 +736,7 @@ class Ordering {
|
|
|
737
736
|
}
|
|
738
737
|
}
|
|
739
738
|
|
|
740
|
-
var index$
|
|
739
|
+
var index$u = /*#__PURE__*/Object.freeze({
|
|
741
740
|
__proto__: null,
|
|
742
741
|
Ordering: Ordering
|
|
743
742
|
});
|
|
@@ -767,12 +766,13 @@ class BytesBlob {
|
|
|
767
766
|
}
|
|
768
767
|
/** Display a hex-encoded version of this byte blob, but truncated if it's large. */
|
|
769
768
|
toStringTruncated() {
|
|
769
|
+
const bytes = `${this.raw.length} ${this.raw.length === 1 ? "byte" : "bytes"}`;
|
|
770
770
|
if (this.raw.length > 32) {
|
|
771
771
|
const start = bytesToHexString(this.raw.subarray(0, 16));
|
|
772
772
|
const end = bytesToHexString(this.raw.subarray(this.raw.length - 16));
|
|
773
|
-
return `${start}...${end.substring(2)} (${
|
|
773
|
+
return `${start}...${end.substring(2)} (${bytes})`;
|
|
774
774
|
}
|
|
775
|
-
return this.toString()
|
|
775
|
+
return `${this.toString()} (${bytes})`;
|
|
776
776
|
}
|
|
777
777
|
toJSON() {
|
|
778
778
|
return this.toString();
|
|
@@ -988,7 +988,7 @@ function u8ArraySameLengthEqual(self, other) {
|
|
|
988
988
|
}
|
|
989
989
|
const bytesBlobComparator = (a, b) => a.compare(b);
|
|
990
990
|
|
|
991
|
-
var index$
|
|
991
|
+
var index$t = /*#__PURE__*/Object.freeze({
|
|
992
992
|
__proto__: null,
|
|
993
993
|
BitVec: BitVec,
|
|
994
994
|
Bytes: Bytes,
|
|
@@ -1090,7 +1090,7 @@ const minU64 = (a, ...values) => values.reduce((min, value) => (value > min ? mi
|
|
|
1090
1090
|
/** Get the biggest value between U64 a and values given as input parameters. */
|
|
1091
1091
|
const maxU64 = (a, ...values) => values.reduce((max, value) => (value < max ? max : value), a);
|
|
1092
1092
|
|
|
1093
|
-
var index$
|
|
1093
|
+
var index$s = /*#__PURE__*/Object.freeze({
|
|
1094
1094
|
__proto__: null,
|
|
1095
1095
|
isU16: isU16,
|
|
1096
1096
|
isU32: isU32,
|
|
@@ -2529,7 +2529,7 @@ function sequenceViewFixLen(type, { fixedLength }) {
|
|
|
2529
2529
|
}, skipper);
|
|
2530
2530
|
}
|
|
2531
2531
|
|
|
2532
|
-
var index$
|
|
2532
|
+
var index$r = /*#__PURE__*/Object.freeze({
|
|
2533
2533
|
__proto__: null,
|
|
2534
2534
|
Decoder: Decoder,
|
|
2535
2535
|
Descriptor: Descriptor,
|
|
@@ -3730,7 +3730,7 @@ var keyDerivation = /*#__PURE__*/Object.freeze({
|
|
|
3730
3730
|
trivialSeed: trivialSeed
|
|
3731
3731
|
});
|
|
3732
3732
|
|
|
3733
|
-
var index$
|
|
3733
|
+
var index$q = /*#__PURE__*/Object.freeze({
|
|
3734
3734
|
__proto__: null,
|
|
3735
3735
|
BANDERSNATCH_KEY_BYTES: BANDERSNATCH_KEY_BYTES,
|
|
3736
3736
|
BANDERSNATCH_PROOF_BYTES: BANDERSNATCH_PROOF_BYTES,
|
|
@@ -4368,7 +4368,7 @@ var keccak = /*#__PURE__*/Object.freeze({
|
|
|
4368
4368
|
// TODO [ToDr] (#213) this should most likely be moved to a separate
|
|
4369
4369
|
// package to avoid pulling in unnecessary deps.
|
|
4370
4370
|
|
|
4371
|
-
var index$
|
|
4371
|
+
var index$p = /*#__PURE__*/Object.freeze({
|
|
4372
4372
|
__proto__: null,
|
|
4373
4373
|
Blake2b: Blake2b,
|
|
4374
4374
|
HASH_SIZE: HASH_SIZE,
|
|
@@ -5005,7 +5005,7 @@ class TruncatedHashDictionary {
|
|
|
5005
5005
|
}
|
|
5006
5006
|
}
|
|
5007
5007
|
|
|
5008
|
-
var index$
|
|
5008
|
+
var index$o = /*#__PURE__*/Object.freeze({
|
|
5009
5009
|
__proto__: null,
|
|
5010
5010
|
ArrayView: ArrayView,
|
|
5011
5011
|
FixedSizeArray: FixedSizeArray,
|
|
@@ -5054,6 +5054,8 @@ const EC_SEGMENT_SIZE = 4104;
|
|
|
5054
5054
|
* Additional data that has to be passed to the codec to correctly parse incoming bytes.
|
|
5055
5055
|
*/
|
|
5056
5056
|
class ChainSpec extends WithDebug {
|
|
5057
|
+
/** Human-readable name of the chain spec. */
|
|
5058
|
+
name;
|
|
5057
5059
|
/** Number of validators. */
|
|
5058
5060
|
validatorsCount;
|
|
5059
5061
|
/** 1/3 of number of validators */
|
|
@@ -5096,6 +5098,7 @@ class ChainSpec extends WithDebug {
|
|
|
5096
5098
|
maxLookupAnchorAge;
|
|
5097
5099
|
constructor(data) {
|
|
5098
5100
|
super();
|
|
5101
|
+
this.name = data.name;
|
|
5099
5102
|
this.validatorsCount = data.validatorsCount;
|
|
5100
5103
|
this.thirdOfValidators = tryAsU16(Math.floor(data.validatorsCount / 3));
|
|
5101
5104
|
this.validatorsSuperMajority = tryAsU16(Math.floor(data.validatorsCount / 3) * 2 + 1);
|
|
@@ -5116,6 +5119,7 @@ class ChainSpec extends WithDebug {
|
|
|
5116
5119
|
}
|
|
5117
5120
|
/** Set of values for "tiny" chain as defined in JAM test vectors. */
|
|
5118
5121
|
const tinyChainSpec = new ChainSpec({
|
|
5122
|
+
name: "tiny",
|
|
5119
5123
|
validatorsCount: tryAsU16(6),
|
|
5120
5124
|
coresCount: tryAsU16(2),
|
|
5121
5125
|
epochLength: tryAsU32(12),
|
|
@@ -5137,6 +5141,7 @@ const tinyChainSpec = new ChainSpec({
|
|
|
5137
5141
|
* Please note that only validatorsCount and epochLength are "full", the rest is copied from "tiny".
|
|
5138
5142
|
*/
|
|
5139
5143
|
const fullChainSpec = new ChainSpec({
|
|
5144
|
+
name: "full",
|
|
5140
5145
|
validatorsCount: tryAsU16(1023),
|
|
5141
5146
|
coresCount: tryAsU16(341),
|
|
5142
5147
|
epochLength: tryAsU32(600),
|
|
@@ -5187,7 +5192,7 @@ var PvmBackend;
|
|
|
5187
5192
|
PvmBackend[PvmBackend["Ananas"] = 1] = "Ananas";
|
|
5188
5193
|
})(PvmBackend || (PvmBackend = {}));
|
|
5189
5194
|
|
|
5190
|
-
var index$
|
|
5195
|
+
var index$n = /*#__PURE__*/Object.freeze({
|
|
5191
5196
|
__proto__: null,
|
|
5192
5197
|
Bootnode: Bootnode,
|
|
5193
5198
|
ChainSpec: ChainSpec,
|
|
@@ -6694,7 +6699,7 @@ function reencodeAsView(codec, object, chainSpec) {
|
|
|
6694
6699
|
return Decoder.decodeObject(codec.View, encoded, chainSpec);
|
|
6695
6700
|
}
|
|
6696
6701
|
|
|
6697
|
-
var index$
|
|
6702
|
+
var index$m = /*#__PURE__*/Object.freeze({
|
|
6698
6703
|
__proto__: null,
|
|
6699
6704
|
Block: Block,
|
|
6700
6705
|
EpochMarker: EpochMarker,
|
|
@@ -6888,6 +6893,19 @@ var json;
|
|
|
6888
6893
|
return ["number", parser];
|
|
6889
6894
|
}
|
|
6890
6895
|
json.fromNumber = fromNumber;
|
|
6896
|
+
/** Parse a JSON bigint or number into the expected type. */
|
|
6897
|
+
function fromBigInt(parser) {
|
|
6898
|
+
return [
|
|
6899
|
+
"object",
|
|
6900
|
+
(x) => {
|
|
6901
|
+
if (typeof x === "number" || typeof x === "bigint") {
|
|
6902
|
+
return parser(BigInt(x));
|
|
6903
|
+
}
|
|
6904
|
+
throw new Error(`Expected number or bigint got: ${typeof x} (${x})`);
|
|
6905
|
+
},
|
|
6906
|
+
];
|
|
6907
|
+
}
|
|
6908
|
+
json.fromBigInt = fromBigInt;
|
|
6891
6909
|
/** Cast the JSON number into the expected type. */
|
|
6892
6910
|
function castNumber() {
|
|
6893
6911
|
return fromNumber((v) => v);
|
|
@@ -6951,7 +6969,7 @@ var json;
|
|
|
6951
6969
|
json.object = object;
|
|
6952
6970
|
})(json || (json = {}));
|
|
6953
6971
|
|
|
6954
|
-
var index$
|
|
6972
|
+
var index$l = /*#__PURE__*/Object.freeze({
|
|
6955
6973
|
__proto__: null,
|
|
6956
6974
|
get json () { return json; },
|
|
6957
6975
|
parseFromJson: parseFromJson
|
|
@@ -7090,7 +7108,7 @@ const workResultFromJson = json.object({
|
|
|
7090
7108
|
service_id: "number",
|
|
7091
7109
|
code_hash: fromJson.bytes32(),
|
|
7092
7110
|
payload_hash: fromJson.bytes32(),
|
|
7093
|
-
accumulate_gas: json.
|
|
7111
|
+
accumulate_gas: json.fromBigInt((x) => tryAsServiceGas(x)),
|
|
7094
7112
|
result: workExecResultFromJson,
|
|
7095
7113
|
refine_load: workRefineLoadFromJson,
|
|
7096
7114
|
}, ({ service_id, code_hash, payload_hash, accumulate_gas, result, refine_load }) => WorkResult.create({
|
|
@@ -7127,7 +7145,7 @@ const workReportFromJson = json.object({
|
|
|
7127
7145
|
auth_output: json.fromString(BytesBlob.parseBlob),
|
|
7128
7146
|
segment_root_lookup: json.array(segmentRootLookupItemFromJson),
|
|
7129
7147
|
results: json.array(workResultFromJson),
|
|
7130
|
-
auth_gas_used: json.
|
|
7148
|
+
auth_gas_used: json.fromBigInt((x) => tryAsServiceGas(x)),
|
|
7131
7149
|
}, ({ package_spec, context, core_index, authorizer_hash, auth_output, results, segment_root_lookup, auth_gas_used, }) => {
|
|
7132
7150
|
const fixedSizeResults = FixedSizeArray.new(results, tryAsWorkItemsCount(results.length));
|
|
7133
7151
|
return WorkReport.create({
|
|
@@ -7221,7 +7239,7 @@ const blockFromJson = (spec) => json.object({
|
|
|
7221
7239
|
extrinsic: getExtrinsicFromJson(spec),
|
|
7222
7240
|
}, ({ header, extrinsic }) => Block.create({ header, extrinsic }));
|
|
7223
7241
|
|
|
7224
|
-
var index$
|
|
7242
|
+
var index$k = /*#__PURE__*/Object.freeze({
|
|
7225
7243
|
__proto__: null,
|
|
7226
7244
|
blockFromJson: blockFromJson,
|
|
7227
7245
|
disputesExtrinsicFromJson: disputesExtrinsicFromJson,
|
|
@@ -7715,7 +7733,7 @@ class Logger {
|
|
|
7715
7733
|
}
|
|
7716
7734
|
}
|
|
7717
7735
|
|
|
7718
|
-
var index$
|
|
7736
|
+
var index$j = /*#__PURE__*/Object.freeze({
|
|
7719
7737
|
__proto__: null,
|
|
7720
7738
|
get Level () { return Level; },
|
|
7721
7739
|
Logger: Logger,
|
|
@@ -7746,7 +7764,7 @@ const DEFAULT_CONFIG = "default";
|
|
|
7746
7764
|
const NODE_DEFAULTS = {
|
|
7747
7765
|
name: isBrowser() ? "browser" : os.hostname(),
|
|
7748
7766
|
config: [DEFAULT_CONFIG],
|
|
7749
|
-
pvm: PvmBackend.
|
|
7767
|
+
pvm: PvmBackend.Ananas,
|
|
7750
7768
|
};
|
|
7751
7769
|
/** Chain spec chooser. */
|
|
7752
7770
|
var KnownChainSpec;
|
|
@@ -7930,7 +7948,7 @@ function isJsonObject(value) {
|
|
|
7930
7948
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7931
7949
|
}
|
|
7932
7950
|
|
|
7933
|
-
var index$
|
|
7951
|
+
var index$i = /*#__PURE__*/Object.freeze({
|
|
7934
7952
|
__proto__: null,
|
|
7935
7953
|
DEFAULT_CONFIG: DEFAULT_CONFIG,
|
|
7936
7954
|
DEV_CONFIG: DEV_CONFIG,
|
|
@@ -9160,11 +9178,12 @@ class UpdatePreimage {
|
|
|
9160
9178
|
this.action = action;
|
|
9161
9179
|
}
|
|
9162
9180
|
/** A preimage is provided. We should update the lookuphistory and add the preimage to db. */
|
|
9163
|
-
static provide({ preimage, slot }) {
|
|
9181
|
+
static provide({ preimage, slot, providedFor, }) {
|
|
9164
9182
|
return new UpdatePreimage({
|
|
9165
9183
|
kind: UpdatePreimageKind.Provide,
|
|
9166
9184
|
preimage,
|
|
9167
9185
|
slot,
|
|
9186
|
+
providedFor,
|
|
9168
9187
|
});
|
|
9169
9188
|
}
|
|
9170
9189
|
/** The preimage should be removed completely from the database. */
|
|
@@ -9325,6 +9344,15 @@ class InMemoryService extends WithDebug {
|
|
|
9325
9344
|
}),
|
|
9326
9345
|
};
|
|
9327
9346
|
}
|
|
9347
|
+
/** Return identical `InMemoryService` which does not share any references. */
|
|
9348
|
+
clone() {
|
|
9349
|
+
return new InMemoryService(this.serviceId, {
|
|
9350
|
+
info: ServiceAccountInfo.create(this.data.info),
|
|
9351
|
+
preimages: HashDictionary.fromEntries(Array.from(this.data.preimages.entries())),
|
|
9352
|
+
lookupHistory: HashDictionary.fromEntries(Array.from(this.data.lookupHistory.entries()).map(([k, v]) => [k, v.slice()])),
|
|
9353
|
+
storage: new Map(this.data.storage.entries()),
|
|
9354
|
+
});
|
|
9355
|
+
}
|
|
9328
9356
|
/**
|
|
9329
9357
|
* Create a new in-memory service from another state service
|
|
9330
9358
|
* by copying all given entries.
|
|
@@ -9714,7 +9742,7 @@ const serviceDataCodec = codec$1.dictionary(codec$1.u32.asOpaque(), serviceEntri
|
|
|
9714
9742
|
sortKeys: (a, b) => a - b,
|
|
9715
9743
|
});
|
|
9716
9744
|
|
|
9717
|
-
var index$
|
|
9745
|
+
var index$h = /*#__PURE__*/Object.freeze({
|
|
9718
9746
|
__proto__: null,
|
|
9719
9747
|
AUTHORIZATION_QUEUE_SIZE: AUTHORIZATION_QUEUE_SIZE,
|
|
9720
9748
|
AccumulationOutput: AccumulationOutput,
|
|
@@ -10788,7 +10816,7 @@ const bitLookup = [
|
|
|
10788
10816
|
[0b00000000, 8],
|
|
10789
10817
|
];
|
|
10790
10818
|
|
|
10791
|
-
var index$
|
|
10819
|
+
var index$g = /*#__PURE__*/Object.freeze({
|
|
10792
10820
|
__proto__: null,
|
|
10793
10821
|
BranchNode: BranchNode,
|
|
10794
10822
|
InMemoryTrie: InMemoryTrie,
|
|
@@ -10838,7 +10866,6 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
10838
10866
|
return;
|
|
10839
10867
|
}
|
|
10840
10868
|
for (const serviceId of servicesRemoved) {
|
|
10841
|
-
// TODO [ToDr] what about all data associated with a service?
|
|
10842
10869
|
const codec = serialize.serviceData(serviceId);
|
|
10843
10870
|
yield [StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
10844
10871
|
}
|
|
@@ -11156,7 +11183,7 @@ function loadState(spec, blake2b, entries) {
|
|
|
11156
11183
|
* hashmap of `key -> value` entries.
|
|
11157
11184
|
*/
|
|
11158
11185
|
|
|
11159
|
-
var index$
|
|
11186
|
+
var index$f = /*#__PURE__*/Object.freeze({
|
|
11160
11187
|
__proto__: null,
|
|
11161
11188
|
SerializedService: SerializedService,
|
|
11162
11189
|
SerializedState: SerializedState,
|
|
@@ -11401,7 +11428,7 @@ class InMemoryStates {
|
|
|
11401
11428
|
async close() { }
|
|
11402
11429
|
}
|
|
11403
11430
|
|
|
11404
|
-
var index$
|
|
11431
|
+
var index$e = /*#__PURE__*/Object.freeze({
|
|
11405
11432
|
__proto__: null,
|
|
11406
11433
|
InMemoryBlocks: InMemoryBlocks,
|
|
11407
11434
|
InMemorySerializedStates: InMemorySerializedStates,
|
|
@@ -11765,7 +11792,7 @@ const initEc = async () => {
|
|
|
11765
11792
|
await init.reedSolomon();
|
|
11766
11793
|
};
|
|
11767
11794
|
|
|
11768
|
-
var index$
|
|
11795
|
+
var index$d = /*#__PURE__*/Object.freeze({
|
|
11769
11796
|
__proto__: null,
|
|
11770
11797
|
N_CHUNKS_REDUNDANCY: N_CHUNKS_REDUNDANCY,
|
|
11771
11798
|
N_CHUNKS_REQUIRED: N_CHUNKS_REQUIRED,
|
|
@@ -12199,7 +12226,7 @@ class FuzzTarget {
|
|
|
12199
12226
|
}
|
|
12200
12227
|
}
|
|
12201
12228
|
|
|
12202
|
-
var index$
|
|
12229
|
+
var index$c = /*#__PURE__*/Object.freeze({
|
|
12203
12230
|
__proto__: null,
|
|
12204
12231
|
AncestryItem: AncestryItem,
|
|
12205
12232
|
ErrorMessage: ErrorMessage,
|
|
@@ -12217,9 +12244,9 @@ var index$b = /*#__PURE__*/Object.freeze({
|
|
|
12217
12244
|
stateRootCodec: stateRootCodec
|
|
12218
12245
|
});
|
|
12219
12246
|
|
|
12220
|
-
var index$
|
|
12247
|
+
var index$b = /*#__PURE__*/Object.freeze({
|
|
12221
12248
|
__proto__: null,
|
|
12222
|
-
v1: index$
|
|
12249
|
+
v1: index$c
|
|
12223
12250
|
});
|
|
12224
12251
|
|
|
12225
12252
|
/** Size of the transfer memo. */
|
|
@@ -12290,13 +12317,6 @@ var ForgetPreimageError;
|
|
|
12290
12317
|
})(ForgetPreimageError || (ForgetPreimageError = {}));
|
|
12291
12318
|
/**
|
|
12292
12319
|
* Errors that may occur when the transfer is invoked.
|
|
12293
|
-
*
|
|
12294
|
-
* TODO [ToDr] Since I don't fully understand yet which of these
|
|
12295
|
-
* could be checked directly in the host call (i.e. if we will
|
|
12296
|
-
* have access to the service account state there) for now I keep
|
|
12297
|
-
* them safely in the `AccumulationPartialState` implementation.
|
|
12298
|
-
* However, if possible, these should be moved directly to the
|
|
12299
|
-
* host call implementation.
|
|
12300
12320
|
*/
|
|
12301
12321
|
var TransferError;
|
|
12302
12322
|
(function (TransferError) {
|
|
@@ -12782,328 +12802,111 @@ function preimageLenAsU32(length) {
|
|
|
12782
12802
|
return length >= 2n ** 32n ? null : tryAsU32(Number(length));
|
|
12783
12803
|
}
|
|
12784
12804
|
|
|
12785
|
-
|
|
12786
|
-
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
*/
|
|
12790
|
-
const HostCallResult = {
|
|
12791
|
-
/** The return value indicating an item does not exist. */
|
|
12792
|
-
NONE: tryAsU64(0xffffffffffffffffn), // 2**64 - 1
|
|
12793
|
-
/** Name unknown. */
|
|
12794
|
-
WHAT: tryAsU64(0xfffffffffffffffen), // 2**64 - 2
|
|
12795
|
-
/** The inner PVM memory index provided for reading/writing is not accessible. */
|
|
12796
|
-
OOB: tryAsU64(0xfffffffffffffffdn), // 2**64 - 3
|
|
12797
|
-
/** Index unknown. */
|
|
12798
|
-
WHO: tryAsU64(0xfffffffffffffffcn), // 2**64 - 4
|
|
12799
|
-
/** Storage full or resource already allocated. */
|
|
12800
|
-
FULL: tryAsU64(0xfffffffffffffffbn), // 2**64 - 5
|
|
12801
|
-
/** Core index unknown. */
|
|
12802
|
-
CORE: tryAsU64(0xfffffffffffffffan), // 2**64 - 6
|
|
12803
|
-
/** Insufficient funds. */
|
|
12804
|
-
CASH: tryAsU64(0xfffffffffffffff9n), // 2**64 - 7
|
|
12805
|
-
/** Gas limit too low. */
|
|
12806
|
-
LOW: tryAsU64(0xfffffffffffffff8n), // 2**64 - 8
|
|
12807
|
-
/** The item is already solicited, cannot be forgotten or the operation is invalid due to privilege level. */
|
|
12808
|
-
HUH: tryAsU64(0xfffffffffffffff7n), // 2**64 - 9
|
|
12809
|
-
/** The return value indicating general success. */
|
|
12810
|
-
OK: tryAsU64(0n),
|
|
12805
|
+
const REGISTER_SIZE_SHIFT = 3; // x << 3 === x * 8
|
|
12806
|
+
const tryAsRegisterIndex = (index) => {
|
|
12807
|
+
check `${index >= 0 && index < NO_OF_REGISTERS$1} Incorrect register index: ${index}!`;
|
|
12808
|
+
return asOpaqueType(index);
|
|
12811
12809
|
};
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
|
|
12816
|
-
|
|
12817
|
-
|
|
12818
|
-
|
|
12819
|
-
|
|
12820
|
-
|
|
12810
|
+
class Registers {
|
|
12811
|
+
bytes;
|
|
12812
|
+
asSigned;
|
|
12813
|
+
asUnsigned;
|
|
12814
|
+
constructor(bytes = safeAllocUint8Array(NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT)) {
|
|
12815
|
+
this.bytes = bytes;
|
|
12816
|
+
check `${bytes.length === NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT} Invalid size of registers array.`;
|
|
12817
|
+
this.asSigned = new BigInt64Array(bytes.buffer, bytes.byteOffset);
|
|
12818
|
+
this.asUnsigned = new BigUint64Array(bytes.buffer, bytes.byteOffset);
|
|
12821
12819
|
}
|
|
12822
|
-
|
|
12823
|
-
|
|
12824
|
-
|
|
12825
|
-
|
|
12826
|
-
|
|
12827
|
-
|
|
12820
|
+
getAllEncoded() {
|
|
12821
|
+
return this.bytes;
|
|
12822
|
+
}
|
|
12823
|
+
setAllEncoded(bytes) {
|
|
12824
|
+
check `${bytes.length === this.bytes.length} Incorrect size of input registers. Got: ${bytes.length}, need: ${this.bytes.length}`;
|
|
12825
|
+
this.bytes.set(bytes, 0);
|
|
12826
|
+
}
|
|
12827
|
+
static fromBytes(bytes) {
|
|
12828
|
+
check `${bytes.length === NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT} Invalid size of registers array.`;
|
|
12829
|
+
return new Registers(bytes);
|
|
12830
|
+
}
|
|
12831
|
+
getBytesAsLittleEndian(index, len) {
|
|
12832
|
+
const offset = index << REGISTER_SIZE_SHIFT;
|
|
12833
|
+
return this.bytes.subarray(offset, offset + len);
|
|
12834
|
+
}
|
|
12835
|
+
copyFrom(regs) {
|
|
12836
|
+
const array = regs instanceof BigUint64Array ? regs : regs.asUnsigned;
|
|
12837
|
+
this.asUnsigned.set(array);
|
|
12838
|
+
}
|
|
12839
|
+
reset() {
|
|
12840
|
+
for (let i = 0; i < NO_OF_REGISTERS$1; i++) {
|
|
12841
|
+
this.asUnsigned[i] = 0n;
|
|
12842
|
+
}
|
|
12843
|
+
}
|
|
12844
|
+
getLowerU32(registerIndex) {
|
|
12845
|
+
return Number(this.asUnsigned[registerIndex] & 0xffffffffn);
|
|
12846
|
+
}
|
|
12847
|
+
getLowerI32(registerIndex) {
|
|
12848
|
+
return Number(this.getLowerU32(registerIndex)) >> 0;
|
|
12849
|
+
}
|
|
12850
|
+
setU32(registerIndex, value) {
|
|
12851
|
+
this.asUnsigned[registerIndex] = signExtend32To64(value);
|
|
12852
|
+
}
|
|
12853
|
+
setI32(registerIndex, value) {
|
|
12854
|
+
this.asSigned[registerIndex] = signExtend32To64(value);
|
|
12855
|
+
}
|
|
12856
|
+
getU64(registerIndex) {
|
|
12857
|
+
return this.asUnsigned[registerIndex];
|
|
12858
|
+
}
|
|
12859
|
+
getI64(registerIndex) {
|
|
12860
|
+
return this.asSigned[registerIndex];
|
|
12861
|
+
}
|
|
12862
|
+
setU64(registerIndex, value) {
|
|
12863
|
+
this.asUnsigned[registerIndex] = value;
|
|
12864
|
+
}
|
|
12865
|
+
setI64(registerIndex, value) {
|
|
12866
|
+
this.asSigned[registerIndex] = value;
|
|
12867
|
+
}
|
|
12868
|
+
getAllU64() {
|
|
12869
|
+
return this.asUnsigned;
|
|
12828
12870
|
}
|
|
12829
|
-
return null;
|
|
12830
|
-
}
|
|
12831
|
-
function writeServiceIdAsLeBytes(serviceId, destination) {
|
|
12832
|
-
check `${destination.length >= SERVICE_ID_BYTES} Not enough space in the destination.`;
|
|
12833
|
-
destination.set(u32AsLeBytes(serviceId));
|
|
12834
|
-
}
|
|
12835
|
-
/** Clamp a U64 to the maximum value of a 32-bit unsigned integer. */
|
|
12836
|
-
function clampU64ToU32(value) {
|
|
12837
|
-
return value > MAX_U32_BIG_INT ? MAX_U32 : tryAsU32(Number(value));
|
|
12838
12871
|
}
|
|
12839
|
-
function
|
|
12840
|
-
|
|
12872
|
+
function signExtend32To64(value) {
|
|
12873
|
+
// Convert to BigInt if the value is a number
|
|
12874
|
+
const bigValue = typeof value === "number" ? BigInt(value) : value;
|
|
12875
|
+
// Ensure the value is treated as a 32-bit integer
|
|
12876
|
+
const mask32 = BigInt(0xffffffff);
|
|
12877
|
+
const signBit = BigInt(0x80000000);
|
|
12878
|
+
const maskedValue = bigValue & mask32;
|
|
12879
|
+
// Check the sign bit and extend the sign if necessary
|
|
12880
|
+
if ((maskedValue & signBit) !== BigInt(0)) {
|
|
12881
|
+
// If the sign bit is set, extend with ones
|
|
12882
|
+
return maskedValue | ~mask32;
|
|
12883
|
+
}
|
|
12884
|
+
// If the sign bit is not set, return as is
|
|
12885
|
+
return maskedValue;
|
|
12841
12886
|
}
|
|
12842
12887
|
|
|
12843
|
-
|
|
12844
|
-
|
|
12845
|
-
AccumulationStateUpdate: AccumulationStateUpdate,
|
|
12846
|
-
CURRENT_SERVICE_ID: CURRENT_SERVICE_ID,
|
|
12847
|
-
get EjectError () { return EjectError; },
|
|
12848
|
-
get ForgetPreimageError () { return ForgetPreimageError; },
|
|
12849
|
-
HostCallResult: HostCallResult,
|
|
12850
|
-
InsufficientFundsError: InsufficientFundsError,
|
|
12851
|
-
MachineInstance: MachineInstance,
|
|
12852
|
-
get MemoryOperation () { return MemoryOperation; },
|
|
12853
|
-
get NewServiceError () { return NewServiceError; },
|
|
12854
|
-
NoMachineError: NoMachineError,
|
|
12855
|
-
get PagesError () { return PagesError; },
|
|
12856
|
-
PartiallyUpdatedState: PartiallyUpdatedState,
|
|
12857
|
-
get PeekPokeError () { return PeekPokeError; },
|
|
12858
|
-
PendingTransfer: PendingTransfer,
|
|
12859
|
-
get PreimageStatusKind () { return PreimageStatusKind; },
|
|
12860
|
-
get ProvidePreimageError () { return ProvidePreimageError; },
|
|
12861
|
-
get RequestPreimageError () { return RequestPreimageError; },
|
|
12862
|
-
SERVICE_ID_BYTES: SERVICE_ID_BYTES,
|
|
12863
|
-
SegmentExportError: SegmentExportError,
|
|
12864
|
-
TRANSFER_MEMO_BYTES: TRANSFER_MEMO_BYTES,
|
|
12865
|
-
get TransferError () { return TransferError; },
|
|
12866
|
-
UnprivilegedError: UnprivilegedError,
|
|
12867
|
-
get UpdatePrivilegesError () { return UpdatePrivilegesError; },
|
|
12868
|
-
get ZeroVoidError () { return ZeroVoidError; },
|
|
12869
|
-
clampU64ToU32: clampU64ToU32,
|
|
12870
|
-
emptyRegistersBuffer: emptyRegistersBuffer,
|
|
12871
|
-
getServiceId: getServiceId,
|
|
12872
|
-
getServiceIdOrCurrent: getServiceIdOrCurrent,
|
|
12873
|
-
slotsToPreimageStatus: slotsToPreimageStatus,
|
|
12874
|
-
toMemoryOperation: toMemoryOperation,
|
|
12875
|
-
tryAsMachineId: tryAsMachineId,
|
|
12876
|
-
tryAsProgramCounter: tryAsProgramCounter,
|
|
12877
|
-
writeServiceIdAsLeBytes: writeServiceIdAsLeBytes
|
|
12878
|
-
});
|
|
12879
|
-
|
|
12880
|
-
const SUPER_PEAK_STRING = BytesBlob.blobFromString("peak");
|
|
12888
|
+
/** Attempt to convert a number into `HostCallIndex`. */
|
|
12889
|
+
const tryAsHostCallIndex = (v) => asOpaqueType(tryAsU32(v));
|
|
12881
12890
|
/**
|
|
12882
|
-
*
|
|
12891
|
+
* Host-call exit reason.
|
|
12883
12892
|
*
|
|
12884
|
-
* https://graypaper.fluffylabs.dev/#/
|
|
12893
|
+
* https://graypaper.fluffylabs.dev/#/ab2cdbd/24a30124a501?v=0.7.2
|
|
12885
12894
|
*/
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
|
-
|
|
12889
|
-
|
|
12890
|
-
|
|
12891
|
-
|
|
12892
|
-
|
|
12893
|
-
|
|
12894
|
-
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12899
|
-
|
|
12900
|
-
|
|
12901
|
-
}, [])
|
|
12902
|
-
.reverse());
|
|
12903
|
-
}
|
|
12904
|
-
constructor(hasher,
|
|
12905
|
-
/** Store non-empty merkle tries (mountains) ordered by descending size. */
|
|
12906
|
-
mountains = []) {
|
|
12907
|
-
this.hasher = hasher;
|
|
12908
|
-
this.mountains = mountains;
|
|
12909
|
-
}
|
|
12910
|
-
/**
|
|
12911
|
-
* Append a new hash to the MMR structure.
|
|
12912
|
-
*
|
|
12913
|
-
* https://graypaper.fluffylabs.dev/#/5f542d7/3b11003b1100?v=0.6.2
|
|
12914
|
-
*/
|
|
12915
|
-
append(hash) {
|
|
12916
|
-
let newMountain = Mountain.fromPeak(hash, 1);
|
|
12917
|
-
for (;;) {
|
|
12918
|
-
const last = this.mountains.pop();
|
|
12919
|
-
if (last === undefined) {
|
|
12920
|
-
this.mountains.push(newMountain);
|
|
12921
|
-
return;
|
|
12922
|
-
}
|
|
12923
|
-
if (last.size !== newMountain.size) {
|
|
12924
|
-
this.mountains.push(last);
|
|
12925
|
-
this.mountains.push(newMountain);
|
|
12926
|
-
return;
|
|
12927
|
-
}
|
|
12928
|
-
newMountain = last.mergeWith(this.hasher, newMountain);
|
|
12929
|
-
}
|
|
12930
|
-
}
|
|
12931
|
-
/**
|
|
12932
|
-
* Root of the entire structure.
|
|
12933
|
-
*
|
|
12934
|
-
* https://graypaper.fluffylabs.dev/#/5f542d7/3b20013b2001?v=0.6.2
|
|
12935
|
-
*/
|
|
12936
|
-
getSuperPeakHash() {
|
|
12937
|
-
if (this.mountains.length === 0) {
|
|
12938
|
-
return Bytes.zero(HASH_SIZE).asOpaque();
|
|
12939
|
-
}
|
|
12940
|
-
const revMountains = this.mountains.slice().reverse();
|
|
12941
|
-
const length = revMountains.length;
|
|
12942
|
-
let lastHash = revMountains[0].peak;
|
|
12943
|
-
for (let i = 1; i < length; i++) {
|
|
12944
|
-
const mountain = revMountains[i];
|
|
12945
|
-
lastHash = this.hasher.hashConcatPrepend(SUPER_PEAK_STRING, lastHash, mountain.peak);
|
|
12946
|
-
}
|
|
12947
|
-
return lastHash;
|
|
12948
|
-
}
|
|
12949
|
-
/** Get current peaks. */
|
|
12950
|
-
getPeaks() {
|
|
12951
|
-
const peaks = [];
|
|
12952
|
-
const mountains = this.mountains;
|
|
12953
|
-
// always 2**index
|
|
12954
|
-
let currentSize = 1;
|
|
12955
|
-
let currentIdx = mountains.length - 1;
|
|
12956
|
-
while (currentIdx >= 0) {
|
|
12957
|
-
const currentItem = mountains[currentIdx];
|
|
12958
|
-
if (currentItem.size >= currentSize && currentItem.size < 2 * currentSize) {
|
|
12959
|
-
peaks.push(currentItem.peak);
|
|
12960
|
-
currentIdx -= 1;
|
|
12961
|
-
}
|
|
12962
|
-
else {
|
|
12963
|
-
peaks.push(null);
|
|
12964
|
-
}
|
|
12965
|
-
// move to the next index.
|
|
12966
|
-
currentSize = currentSize << 1;
|
|
12967
|
-
}
|
|
12968
|
-
return { peaks };
|
|
12969
|
-
}
|
|
12970
|
-
}
|
|
12971
|
-
/** An internal helper structure to represent a merkle trie for MMR. */
|
|
12972
|
-
class Mountain {
|
|
12973
|
-
peak;
|
|
12974
|
-
size;
|
|
12975
|
-
constructor(peak, size) {
|
|
12976
|
-
this.peak = peak;
|
|
12977
|
-
this.size = size;
|
|
12978
|
-
}
|
|
12979
|
-
static fromPeak(peak, size) {
|
|
12980
|
-
return new Mountain(peak, size);
|
|
12981
|
-
}
|
|
12982
|
-
static fromChildren(hasher, children) {
|
|
12983
|
-
const [left, right] = children;
|
|
12984
|
-
const peak = hasher.hashConcat(left.peak, right.peak);
|
|
12985
|
-
const size = left.size + right.size;
|
|
12986
|
-
return new Mountain(peak, size);
|
|
12987
|
-
}
|
|
12988
|
-
/** Merge with another montain of the same size. */
|
|
12989
|
-
mergeWith(hasher, other) {
|
|
12990
|
-
return Mountain.fromChildren(hasher, [this, other]);
|
|
12991
|
-
}
|
|
12992
|
-
toString() {
|
|
12993
|
-
return `${this.size} @ ${this.peak}`;
|
|
12994
|
-
}
|
|
12995
|
-
}
|
|
12996
|
-
|
|
12997
|
-
var index$8 = /*#__PURE__*/Object.freeze({
|
|
12998
|
-
__proto__: null,
|
|
12999
|
-
MerkleMountainRange: MerkleMountainRange
|
|
13000
|
-
});
|
|
13001
|
-
|
|
13002
|
-
const REGISTER_SIZE_SHIFT = 3; // x << 3 === x * 8
|
|
13003
|
-
const tryAsRegisterIndex = (index) => {
|
|
13004
|
-
check `${index >= 0 && index < NO_OF_REGISTERS$1} Incorrect register index: ${index}!`;
|
|
13005
|
-
return asOpaqueType(index);
|
|
13006
|
-
};
|
|
13007
|
-
class Registers {
|
|
13008
|
-
bytes;
|
|
13009
|
-
asSigned;
|
|
13010
|
-
asUnsigned;
|
|
13011
|
-
constructor(bytes = safeAllocUint8Array(NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT)) {
|
|
13012
|
-
this.bytes = bytes;
|
|
13013
|
-
check `${bytes.length === NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT} Invalid size of registers array.`;
|
|
13014
|
-
this.asSigned = new BigInt64Array(bytes.buffer, bytes.byteOffset);
|
|
13015
|
-
this.asUnsigned = new BigUint64Array(bytes.buffer, bytes.byteOffset);
|
|
13016
|
-
}
|
|
13017
|
-
getAllEncoded() {
|
|
13018
|
-
return this.bytes;
|
|
13019
|
-
}
|
|
13020
|
-
setAllEncoded(bytes) {
|
|
13021
|
-
check `${bytes.length === this.bytes.length} Incorrect size of input registers. Got: ${bytes.length}, need: ${this.bytes.length}`;
|
|
13022
|
-
this.bytes.set(bytes, 0);
|
|
13023
|
-
}
|
|
13024
|
-
static fromBytes(bytes) {
|
|
13025
|
-
check `${bytes.length === NO_OF_REGISTERS$1 << REGISTER_SIZE_SHIFT} Invalid size of registers array.`;
|
|
13026
|
-
return new Registers(bytes);
|
|
13027
|
-
}
|
|
13028
|
-
getBytesAsLittleEndian(index, len) {
|
|
13029
|
-
const offset = index << REGISTER_SIZE_SHIFT;
|
|
13030
|
-
return this.bytes.subarray(offset, offset + len);
|
|
13031
|
-
}
|
|
13032
|
-
copyFrom(regs) {
|
|
13033
|
-
const array = regs instanceof BigUint64Array ? regs : regs.asUnsigned;
|
|
13034
|
-
this.asUnsigned.set(array);
|
|
13035
|
-
}
|
|
13036
|
-
reset() {
|
|
13037
|
-
for (let i = 0; i < NO_OF_REGISTERS$1; i++) {
|
|
13038
|
-
this.asUnsigned[i] = 0n;
|
|
13039
|
-
}
|
|
13040
|
-
}
|
|
13041
|
-
getLowerU32(registerIndex) {
|
|
13042
|
-
return Number(this.asUnsigned[registerIndex] & 0xffffffffn);
|
|
13043
|
-
}
|
|
13044
|
-
getLowerI32(registerIndex) {
|
|
13045
|
-
return Number(this.getLowerU32(registerIndex)) >> 0;
|
|
13046
|
-
}
|
|
13047
|
-
setU32(registerIndex, value) {
|
|
13048
|
-
this.asUnsigned[registerIndex] = signExtend32To64(value);
|
|
13049
|
-
}
|
|
13050
|
-
setI32(registerIndex, value) {
|
|
13051
|
-
this.asSigned[registerIndex] = signExtend32To64(value);
|
|
13052
|
-
}
|
|
13053
|
-
getU64(registerIndex) {
|
|
13054
|
-
return this.asUnsigned[registerIndex];
|
|
13055
|
-
}
|
|
13056
|
-
getI64(registerIndex) {
|
|
13057
|
-
return this.asSigned[registerIndex];
|
|
13058
|
-
}
|
|
13059
|
-
setU64(registerIndex, value) {
|
|
13060
|
-
this.asUnsigned[registerIndex] = value;
|
|
13061
|
-
}
|
|
13062
|
-
setI64(registerIndex, value) {
|
|
13063
|
-
this.asSigned[registerIndex] = value;
|
|
13064
|
-
}
|
|
13065
|
-
getAllU64() {
|
|
13066
|
-
return this.asUnsigned;
|
|
13067
|
-
}
|
|
13068
|
-
}
|
|
13069
|
-
function signExtend32To64(value) {
|
|
13070
|
-
// Convert to BigInt if the value is a number
|
|
13071
|
-
const bigValue = typeof value === "number" ? BigInt(value) : value;
|
|
13072
|
-
// Ensure the value is treated as a 32-bit integer
|
|
13073
|
-
const mask32 = BigInt(0xffffffff);
|
|
13074
|
-
const signBit = BigInt(0x80000000);
|
|
13075
|
-
const maskedValue = bigValue & mask32;
|
|
13076
|
-
// Check the sign bit and extend the sign if necessary
|
|
13077
|
-
if ((maskedValue & signBit) !== BigInt(0)) {
|
|
13078
|
-
// If the sign bit is set, extend with ones
|
|
13079
|
-
return maskedValue | ~mask32;
|
|
13080
|
-
}
|
|
13081
|
-
// If the sign bit is not set, return as is
|
|
13082
|
-
return maskedValue;
|
|
13083
|
-
}
|
|
13084
|
-
|
|
13085
|
-
/** Attempt to convert a number into `HostCallIndex`. */
|
|
13086
|
-
const tryAsHostCallIndex = (v) => asOpaqueType(tryAsU32(v));
|
|
13087
|
-
/**
|
|
13088
|
-
* Host-call exit reason.
|
|
13089
|
-
*
|
|
13090
|
-
* https://graypaper.fluffylabs.dev/#/ab2cdbd/24a30124a501?v=0.7.2
|
|
13091
|
-
*/
|
|
13092
|
-
var PvmExecution;
|
|
13093
|
-
(function (PvmExecution) {
|
|
13094
|
-
PvmExecution[PvmExecution["Halt"] = 0] = "Halt";
|
|
13095
|
-
PvmExecution[PvmExecution["Panic"] = 1] = "Panic";
|
|
13096
|
-
PvmExecution[PvmExecution["OOG"] = 2] = "OOG";
|
|
13097
|
-
})(PvmExecution || (PvmExecution = {}));
|
|
13098
|
-
/** A utility function to easily trace a bunch of registers. */
|
|
13099
|
-
function traceRegisters(...regs) {
|
|
13100
|
-
return regs.map(tryAsRegisterIndex);
|
|
13101
|
-
}
|
|
13102
|
-
|
|
13103
|
-
class HostCallMemory {
|
|
13104
|
-
memory;
|
|
13105
|
-
constructor(memory) {
|
|
13106
|
-
this.memory = memory;
|
|
12895
|
+
var PvmExecution;
|
|
12896
|
+
(function (PvmExecution) {
|
|
12897
|
+
PvmExecution[PvmExecution["Halt"] = 0] = "Halt";
|
|
12898
|
+
PvmExecution[PvmExecution["Panic"] = 1] = "Panic";
|
|
12899
|
+
PvmExecution[PvmExecution["OOG"] = 2] = "OOG";
|
|
12900
|
+
})(PvmExecution || (PvmExecution = {}));
|
|
12901
|
+
/** A utility function to easily trace a bunch of registers. */
|
|
12902
|
+
function traceRegisters(...regs) {
|
|
12903
|
+
return regs.map(tryAsRegisterIndex);
|
|
12904
|
+
}
|
|
12905
|
+
|
|
12906
|
+
class HostCallMemory {
|
|
12907
|
+
memory;
|
|
12908
|
+
constructor(memory) {
|
|
12909
|
+
this.memory = memory;
|
|
13107
12910
|
}
|
|
13108
12911
|
/**
|
|
13109
12912
|
* Save some bytes into memory under given address.
|
|
@@ -14064,7 +13867,7 @@ function getRegisters(argsLength) {
|
|
|
14064
13867
|
return regs;
|
|
14065
13868
|
}
|
|
14066
13869
|
|
|
14067
|
-
var index$
|
|
13870
|
+
var index$a = /*#__PURE__*/Object.freeze({
|
|
14068
13871
|
__proto__: null,
|
|
14069
13872
|
MemorySegment: MemorySegment,
|
|
14070
13873
|
SpiMemory: SpiMemory,
|
|
@@ -14123,7 +13926,7 @@ function extractCodeAndMetadata(blobWithMetadata) {
|
|
|
14123
13926
|
return { metadata, code };
|
|
14124
13927
|
}
|
|
14125
13928
|
|
|
14126
|
-
var index$
|
|
13929
|
+
var index$9 = /*#__PURE__*/Object.freeze({
|
|
14127
13930
|
__proto__: null,
|
|
14128
13931
|
Program: Program,
|
|
14129
13932
|
extractCodeAndMetadata: extractCodeAndMetadata
|
|
@@ -16995,7 +16798,7 @@ class Interpreter {
|
|
|
16995
16798
|
}
|
|
16996
16799
|
}
|
|
16997
16800
|
|
|
16998
|
-
var index$
|
|
16801
|
+
var index$8 = /*#__PURE__*/Object.freeze({
|
|
16999
16802
|
__proto__: null,
|
|
17000
16803
|
Interpreter: Interpreter,
|
|
17001
16804
|
Memory: Memory,
|
|
@@ -17006,7 +16809,7 @@ var index$5 = /*#__PURE__*/Object.freeze({
|
|
|
17006
16809
|
tryAsSbrkIndex: tryAsSbrkIndex
|
|
17007
16810
|
});
|
|
17008
16811
|
|
|
17009
|
-
async function instantiate(module, imports = {}) {
|
|
16812
|
+
async function instantiate$1(module, imports = {}) {
|
|
17010
16813
|
const adaptedImports = {
|
|
17011
16814
|
env: Object.setPrototypeOf({
|
|
17012
16815
|
abort(message, fileName, lineNumber, columnNumber) {
|
|
@@ -17383,9 +17186,28 @@ async function instantiate(module, imports = {}) {
|
|
|
17383
17186
|
return adaptedExports;
|
|
17384
17187
|
}
|
|
17385
17188
|
|
|
17386
|
-
//
|
|
17387
|
-
|
|
17388
|
-
|
|
17189
|
+
// Auto-generated inline WASM module
|
|
17190
|
+
// Target: release-stub
|
|
17191
|
+
// Source: build/release-stub.wasm
|
|
17192
|
+
|
|
17193
|
+
|
|
17194
|
+
const wasmBase64 = "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IAckACAGIAM2AgAFIAMgB0EBdCIGIAMgBksbEA0iAyACIAf8CgAAIAMhAgsFIAgEQCACIANqJAAgBiADNgIACwsgAkEEayABNgIQIAJBEGoiAiAEakEAIAEgBGv8CwAgAiAFRwRAIAAgAjYCACAAIAI2AgQLIAAgATYCCAsLTQEBfyABIAAoAgxPBEAgAUEASARAQfDEAEGwxQBBggFBFhAAAAsgACABQQFqIgNBAkEBEBEgACADNgIMCyAAKAIEIAFBAnRqIAI2AgAL4xcBAX9BjKUBJABBwA5BAEEAEA4kAUHwD0EIQQAQDiQCQecBQQJBCUEAEBAiAEEAQZAQQQBBARAOEBIgAEEBQbAQQQBBARAOEBIgAEECIwEQEiAAQQMjARASIABBBCMBEBIgAEEFIwEQEiAAQQYjARASIABBByMBEBIgAEEIIwEQEiAAQQkjARASIABBCkHgEEEBQQAQDhASIABBCyMBEBIgAEEMIwEQEiAAQQ0jARASIABBDiMBEBIgAEEPIwEQEiAAQRAjARASIABBESMBEBIgAEESIwEQEiAAQRMjARASIABBFEGAEUEFQQAQDhASIABBFSMBEBIgAEEWIwEQEiAAQRcjARASIABBGCMBEBIgAEEZIwEQEiAAQRojARASIABBGyMBEBIgAEEcIwEQEiAAQR0jARASIABBHkGwEUECQQAQDhASIABBH0HgEUECQQAQDhASIABBIEGQEkECQQAQDhASIABBIUHAEkECQQAQDhASIABBIiMBEBIgAEEjIwEQEiAAQSQjARASIABBJSMBEBIgAEEmIwEQEiAAQScjARASIABBKEHwEkEDQQEQDhASIABBKSMBEBIgAEEqIwEQEiAAQSsjARASIABBLCMBEBIgAEEtIwEQEiAAQS4jARASIABBLyMBEBIgAEEwIwEQEiAAQTEjARASIABBMkGQE0EEQQEQDhASIABBM0HAE0EEQQAQDhASIABBNEHwE0EEQQAQDhASIABBNUGgFEEEQQAQDhASIABBNkHQFEEEQQAQDhASIABBN0GAFUEEQQAQDhASIABBOEGwFUEEQQAQDhASIABBOUHgFUEEQQAQDhASIABBOkGQFkEEQQAQDhASIABBO0HAFkEEQQAQDhASIABBPEHwFkEEQQAQDhASIABBPUGgF0EEQQAQDhASIABBPkHQF0EE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QQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwCnZ603AwAgAEEANgIAIABBADYCCCAAC0cBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDAHo3AwAgAEEANgIAIABBADYCCCAAC0kBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDAKdorTcDACAAQQA2AgAgAEEANgIIIAALSQEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAp8CsNwMAIABBADYCACAAQQA2AgggAAtJAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwCnwaw3AwAgAEEANgIAIABBADYCCCAAC00BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDAKdB//8Dca03AwAgAEEANgIAIABBADYCCCAAC4cBAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAiBEIIiEL/gfyH8J/A/wCDIARC/4H8h/CfwP8Ag0IIhoQiBEIQiEL//4OA8P8/gyAEQv//g4Dw/z+DQhCGhEIgijcDACAAQQA2AgAgAEEANgIIIAALTgEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCBFEEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC04BAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0AgRSBEAgASgCCCEBIABBATYCACAAIAE2AgQgAA8LIABBADYCACAAQQA2AgggAAtOAQF+IAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIEVARAIAEoAgghASAAQQE2AgAgACABNgIEIAAPCyAAQQA2AgAgAEEANgIIIAALTgEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCBFgEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC04BAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0AgRaBEAgASgCCCEBIABBATYCACAAIAE2AgQgAA8LIABBADYCACAAQQA2AgggAAtOAQF+IAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIEVgRAIAEoAgghASAAQQE2AgAgACABNgIEIAAPCyAAQQA2AgAgAEEANgIIIAALTgEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCBFMEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC04BAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0AgRXBEAgASgCCCEBIABBATYCACAAIAE2AgQgAA8LIABBADYCACAAQQA2AgggAAtOAQF+IAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIEWQRAIAEoAgghASAAQQE2AgAgACABNgIEIAAPCyAAQQA2AgAgAEEANgIIIAALTgEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCBFUEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC2IBAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIEIgSnIARCDVobQQN0aikDAFEEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC2IBAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIEIgSnIARCDVobQQN0aikDAFIEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC2IBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAFQEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC2IBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAFMEQCABKAIIIQEgAEEBNgIAIAAgATYCBCAADwsgAEEANgIAIABBADYCCCAAC2IBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikD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QQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0AgiENwMAIABBADYCACAAQQA2AgggAAtgAQF+IAJBDCABNQIIIgSnIARCDVobQQN0aiACQQwgATUCBCIEpyAEQg1aG0EDdGopAwAgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAgzcDACAAQQA2AgAgAEEANgIIIAALYAEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAIU3AwAgAEEANgIAIABBADYCCCAAC2ABAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACACQQwgATUCACIEpyAEQg1aG0EDdGopAwCENwMAIABBADYCACAAQQA2AgggAAtjAQF+IAJBDCABNQIIIgSnIARCDVobQQN0aiACQQwgATUCBCIEpyAEQg1aG0EDdGopAwAgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAQn+FgzcDACAAQQA2AgAgAEEANgIIIAALYwEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAEJ/hYQ3AwAgAEEANgIAIABBADYCCCAAC2MBAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACACQQwgATUCACIEpyAEQg1aG0EDdGopAwCFQn+FNwMAIABBADYCACAAQQA2AgggAAtNAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCCHzENwMAIABBADYCACAAQQA2AgggAAtNAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATUCCH7ENwMAIABBADYCACAAQQA2AgggAAtUAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiABNQIIQoCAgIAQhCACQQwgATUCACIEpyAEQg1aG0EDdGopAwB9xDcDACAAQQA2AgAgAEEANgIIIAALTAEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0Agh8NwMAIABBADYCACAAQQA2AgggAAtMAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgATQCCH43AwAgAEEANgIAIABBADYCCCAAC0wBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAE0AgggAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAfTcDACAAQQA2AgAgAEEANgIIIAALYwEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMApyACQQwgATUCBCIEpyAEQg1aG0EDdGopAwCnaqw3AwAgAEEANgIAIABBADYCCCAAC2oBAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDAEKAgICAEHwgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAp619xDcDACAAQQA2AgAgAEEANgIIIAALYQEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIEIgSnIARCDVobQQN0aikDAH7ENwMAIABBADYCACAAQQA2AgggAAuGAQEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwCnIgMEQCACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMApyADbqw3AwAFIAJBDCABNQIIIgSnIARCDVobQQN0akJ/NwMACyAAQQA2AgAgAEEANgIIIAALuAEBA34gAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAxCEEIAJBDCABNQIAIgWnIAVCDVobQQN0aikDAMQiBVAEQCACQQwgATUCCCIEpyAEQg1aG0EDdGpCfzcDAAUgBEKAgICAeFEgBUJ/UXEEQCACQQwgATUCCCIFpyAFQg1aG0EDdGogBDcDAAUgAkEMIAE1AggiBqcgBkINWhtBA3RqIAQgBX83AwALCyAAQQA2AgAgAEEANgIIIAALjQECAX4BfyACQQwgATUCBCIEpyAEQg1aG0EDdGopAwCnIQMgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMApyIFBEAgAkEMIAE1AggiBKcgBEINWhtBA3RqIAMgBXCsNwMABSACQQwgATUCCCIEpyAEQg1aG0EDdGogA6w3AwALIABBADYCACAAQQA2AgggAAu8AQIBfgF/IAJBDCABNQIEIgSnIARCDVobQQN0aikDAKchAyACQQwgATUCACIEpyAEQg1aG0EDdGopAwCnIgUEQCADQYCAgIB4RiAFQX9GcQRAIAJBDCABNQIIIgSnIARCDVobQQN0akIANwMABSACQQwgATUCCCIEpyAEQg1aG0EDdGogA6wgBayBNwMACwUgAkEMIAE1AggiBKcgBEINWhtBA3RqIAOsNwMACyAAQQA2AgAgAEEANgIIIAALYAEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIEIgSnIARCDVobQQN0aikDAHw3AwAgAEEANgIAIABBADYCCCAAC2ABAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACACQQwgATUCACIEpyAEQg1aG0EDdGopAwB9NwMAIABBADYCACAAQQA2AgggAAtgAQF+IAJBDCABNQIIIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwAgAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAfjcDACAAQQA2AgAgAEEANgIIIAALmQEBAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAUARAIAJBDCABNQIIIgSnIARCDVobQQN0akJ/NwMABSACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAIA3AwALIABBADYCACAAQQA2AgggAAu7AQEDfiACQQwgATUCBCIEpyAEQg1aG0EDdGopAwAhBCACQQwgATUCACIFpyAFQg1aG0EDdGopAwAiBVAEQCACQQwgATUCCCIEpyAEQg1aG0EDdGpCfzcDAAUgBEKAgICAgICAgIB/USAFQn9RcQRAIAJBDCABNQIIIgWnIAVCDVobQQN0aiAENwMABSACQQwgATUCCCIGpyAGQg1aG0EDdGogBCAFfzcDAAsLIABBADYCACAAQQA2AgggAAuwAQEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwBQBEAgAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDADcDAAUgAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACACQQwgATUCACIEpyAEQg1aG0EDdGopAwCCNwMACyAAQQA2AgAgAEEANgIIIAALuwEBA34gAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIQQgAkEMIAE1AgAiBacgBUINWhtBA3RqKQMAIgVQBEAgAkEMIAE1AggiBacgBUINWhtBA3RqIAQ3AwAFIARCgICAgICAgICAf1EgBUJ/UXEEQCACQQwgATUCCCIEpyAEQg1aG0EDdGpCADcDAAUgAkEMIAE1AggiBqcgBkINWhtBA3RqIAQgBYE3AwALCyAAQQA2AgAgAEEANgIIIAAL2wIBCH4gAkEMIAE1AggiBKcgBEINWhtBA3RqAn4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIQQgAkEMIAE1AgQiBacgBUINWhtBA3RqKQMAIgVCAFMEfyAFQn+FQgF8IQVBAQVBAAshASAEQgBTBH8gBEJ/hUIBfCEEIAFFBSABCwRAIARCIIgiCCAFQv////8PgyIJfiEGIAVCIIgiByAEQv////8PgyIKfiELIAQgBX5QrSAHIAh+IAZCIIh8IAtCIIh8IAZC/////w+DIAkgCn5CIIh8IAtC/////w+DfEIgiHxCf4V8DAELIARCIIgiBiAFQv////8PgyIHfiEIIAVCIIgiBSAEQv////8PgyIEfiEJIAUgBn4gCEIgiHwgCUIgiHwgCEL/////D4MgBCAHfkIgiHwgCUL/////D4N8QiCIfAs3AwAgAEEANgIAIABBADYCCCAAC7oBAQZ+IAJBDCABNQIEIgSnIARCDVobQQN0aikDACIFQiCIIQQgBUL/////D4MiBSACQQwgATUCACIGpyAGQg1aG0EDdGopAwAiBkIgiCIHfiEIIAJBDCABNQIIIgmnIAlCDVobQQN0aiAEIAd+IAhCIIh8IAZC/////w+DIgYgBH4iBEIgiHwgCEL/////D4MgBSAGfkIgiHwgBEL/////D4N8QiCIfDcDACAAQQA2AgAgAEEANgIIIAALtwIBCH4gAkEMIAE1AggiBKcgBEINWhtBA3RqAn4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIQYgAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIgRCAFMEQCAEQn+FQgF8IgdC/////w+DIgggBkIgiCIJfiEEIAdCIIgiBSAGQv////8PgyIKfiELIAYgB35QrSAFIAl+IARCIIh8IAtCIIh8IARC/////w+DIAggCn5CIIh8IAtC/////w+DfEIgiHxCf4V8DAELIARC/////w+DIgUgBkIgiCIHfiEIIARCIIgiBCAGQv////8PgyIGfiEJIAQgB34gCEIgiHwgCUIgiHwgCEL/////D4MgBSAGfkIgiHwgCUL/////D4N8QiCIfAs3AwAgAEEANgIAIABBADYCCCAAC2kBAn4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACIEIAJBDCABNQIAIgWnIAVCDVobQQN0aikDACIFIAQgBVUbNwMAIABBADYCACAAQQA2AgggAAtpAQJ+IAJBDCABNQIIIgSnIARCDVobQQN0aiACQQwgATUCBCIEpyAEQg1aG0EDdGopAwAiBCACQQwgATUCACIFpyAFQg1aG0EDdGopAwAiBSAEIAVWGzcDACAAQQA2AgAgAEEANgIIIAALaQECfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIgQgAkEMIAE1AgAiBacgBUINWhtBA3RqKQMAIgUgBCAFUxs3AwAgAEEANgIAIABBADYCCCAAC2kBAn4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACIEIAJBDCABNQIAIgWnIAVCDVobQQN0aikDACIFIAQgBVQbNwMAIABBADYCACAAQQA2AgggAAsSACAAQQM2AgAgAEEANgIMIAALEgAgAEEANgIAIABBADYCCCAACyAAIAEoAgAhASAAQQM2AgAgAEEDNgIMIAAgATYCECAAC6IBAQJ/IAAoAgAiASgCDCICQQBKBEAgAkEATARAQYDdAEGwxQBBjwJBEhAAAAsgASgCBCACQQFrIgBBAnRqKAIAIAEgADYCDA8LIAAoAghBDHQiASAAKAIERgRAQbDdABABCyABQYCAgIACSQR/QYAgEBQFQQALIQEgACAAKAIIQQFqNgIIIAAoAgghAEEIQQwQDyICIAA2AgAgAiABNgIEIAILMAEBfyAAQfz///8DSwRAQeDFAEGQxgBBNEErEAAACyAAQQEQDyIBQQAgAPwLACABC5YEAQl/IAAoAgAgASIDQb3cypV8bEG1z9myAWpBEXdBr9bTvgJsIgFBD3YgAXNB95Svr3hsIgFBDXYgAXNBvdzKlXxsIgFBEHYgAXMiCCAAKAIEcUECdGooAgAhAQJAA0AgAQRAIAEoAggiBEEBcQR/QQAFIAEoAgAgA0YLDQIgBEF+cSEBDAELC0EAIQELIAEEQCABIAI2AgQFIAAoAgwiASAAKAIQRgRAIAAoAhQgAUEDbEEEbUgEfyAAKAIEBSAAKAIEQQF0QQFyCyIGQQFqIgFBAnQQdCEHIAFBA3RBA20iCUEMbBB0IQQgACgCCCIFIAAoAhBBDGxqIQogBCEBA0AgBSAKRwRAIAUoAghBAXFFBEAgASAFKAIAIgs2AgAgASAFKAIENgIEIAEgByALQb3cypV8bEG1z9myAWpBEXdBr9bTvgJsIgsgC0EPdnNB95Svr3hsIgsgC0ENdnNBvdzKlXxsIgsgC0EQdnMgBnFBAnRqIgsoAgA2AgggCyABNgIAIAFBDGohAQsgBUEMaiEFDAELCyAAIAc2AgAgACAGNgIEIAAgBDYCCCAAIAk2AgwgACAAKAIUNgIQCyAAKAIIIAAgACgCECIEQQFqNgIQIARBDGxqIgEgAzYCACABIAI2AgQgACAAKAIUQQFqNgIUIAEgACgCACAIIAAoAgRxQQJ0aiIAKAIANgIIIAAgATYCAAsLsAICBn8CfgJ+IwghBCADKAIUIQUgAkEMIAE1AgAiCqcgCkINWhtBA3RqKQMApyIGRQRAIARBADoAACAFrQwBCyADNQIUIAatfCIKQoCAgIAQWgRAIARBAToAACAFrQwBCyADIAo+AhQgBa0gAygCACIEIApCAX1CDIenIghGDQAaIARBAWohBANAIAQgCEwEQCADKAIMEHMhBiADKAIQQQhBCxAPIglBAjYCACAJIAY2AgQgBCAJEHUgBEEBaiEEDAELCyADIAg2AgAgBa0LIQojCC0AAARAIwgiAS0AAARAIABBAzYCACAAQQJBASABLQABGzYCDCAAIAEoAgQ2AhALIAAPCyACQQwgATUCBCILpyALQg1aG0EDdGogCjcDACAAQQA2AgAgAEEANgIIIAALRgEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMANwMAIABBADYCACAAQQA2AgggAAtPAQF+IAJBDCABNQIAIgSnIARCDVobQQN0aikDAFAEQCACQQwgATUCBCIEpyAEQg1aG0EDdGogATQCCDcDAAsgAEEANgIAIABBADYCCCAAC1EBAX4gAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAQgBSBEAgAkEMIAE1AgQiBKcgBEINWhtBA3RqIAE0Agg3AwALIABBADYCACAAQQA2AgggAAtjAQF+IAJBDCABNQIAIgSnIARCDVobQQN0aikDAFAEQCACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMANwMACyAAQQA2AgAgAEEANgIIIAALZQEBfiACQQwgATUCACIEpyAEQg1aG0EDdGopAwBCAFIEQCACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMANwMACyAAQQA2AgAgAEEANgIIIAALTAEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAIAE0AgiKNwMAIABBADYCACAAQQA2AgggAAtMAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiABNAIIIAJBDCABNQIAIgSnIARCDVobQQN0aikDAIo3AwAgAEEANgIAIABBADYCCCAAC04BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDAKcgASgCCHisNwMAIABBADYCACAAQQA2AgggAAtOAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiABKAIIIAJBDCABNQIAIgSnIARCDVobQQN0aikDAKd4rDcDACAAQQA2AgAgAEEANgIIIAALYAEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAIk3AwAgAEEANgIAIABBADYCCCAAC2MBAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDAKcgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAp3esNwMAIABBADYCACAAQQA2AgggAAtgAQF+IAJBDCABNQIIIgSnIARCDVobQQN0aiACQQwgATUCBCIEpyAEQg1aG0EDdGopAwAgAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAijcDACAAQQA2AgAgAEEANgIIIAALYwEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMApyACQQwgATUCACIEpyAEQg1aG0EDdGopAwCneKw3AwAgAEEANgIAIABBADYCCCAAC00BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIIVK03AwAgAEEANgIAIABBADYCCCAAC00BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIIU603AwAgAEEANgIAIABBADYCCCAAC00BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIIVq03AwAgAEEANgIAIABBADYCCCAAC00BAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABNAIIVa03AwAgAEEANgIAIABBADYCCCAAC2EBAX4gAkEMIAE1AggiBKcgBEINWhtBA3RqIAJBDCABNQIEIgSnIARCDVobQQN0aikDACACQQwgATUCACIEpyAEQg1aG0EDdGopAwBUrTcDACAAQQA2AgAgAEEANgIIIAALYQEBfiACQQwgATUCCCIEpyAEQg1aG0EDdGogAkEMIAE1AgQiBKcgBEINWhtBA3RqKQMAIAJBDCABNQIAIgSnIARCDVobQQN0aikDAFOtNwMAIABBADYCACAAQQA2AgggAAtOAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiACQQwgATUCACIEpyAEQg1aG0EDdGopAwCnIAEoAgh0rDcDACAAQQA2AgAgAEEANgIIIAALTgEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMApyABKAIIdqw3AwAgAEEANgIAIABBADYCCCAAC1EBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDAMQgASgCCEEfca2HNwMAIABBADYCACAAQQA2AgggAAtRAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiABKAIIIAJBDCABNQIAIgSnIARCDVobQQN0aikDAEIfg6d0rDcDACAAQQA2AgAgAEEANgIIIAALUQEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogASgCCCACQQwgATUCACIEpyAEQg1aG0EDdGopAwBCH4Ondqw3AwAgAEEANgIAIABBADYCCCAAC1ABAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAE0AgggAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAQh+Dh8Q3AwAgAEEANgIAIABBADYCCCAAC1ABAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABKAIIQT9xrYY3AwAgAEEANgIAIABBADYCCCAAC1ABAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABKAIIQT9xrYg3AwAgAEEANgIAIABBADYCCCAAC1ABAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAJBDCABNQIAIgSnIARCDVobQQN0aikDACABKAIIQT9xrYc3AwAgAEEANgIAIABBADYCCCAAC0wBAX4gAkEMIAE1AgQiBKcgBEINWhtBA3RqIAE0AgggAkEMIAE1AgAiBKcgBEINWhtBA3RqKQMAhjcDACAAQQA2AgAgAEEANgIIIAALTAEBfiACQQwgATUCBCIEpyAEQg1aG0EDdGogATQCCCACQQwgATUCACIEpyAEQg1aG0EDdGopAwCINwMAIABBADYCACAAQQA2AgggAAtNAQF+IAJBDCABNQIEIgSnIARCDVobQQN0aiABNAIIIAJBDCABNQIAIgSnIARCDVobQQN0aikDAIfENwMAIABBADYCACAAQQA2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IAAgARDBASAAKAIAIAAoAgQiAiABIAJqELkBIAAgACgCBCABajYCBAtdAQN/QQhBKBAPIgEgADYCACABQQA2AgQgASABEMIBEMMBIQIgASgCACABKAIEQQEkBxC6ASEAIAEgASgCBCAAKAIIajYCBEEIQScQDyIBIAA2AgAgASACNgIEIAELSAECfyAAQQMQwQEgACgCBCIBIAAoAgAoAgQiAmotAAAgAUEBaiACai0AAEEIdHIgAUECaiACai0AAEEQdHIgACABQQNqNgIEC1cBAn8gAEEEEMEBIAAoAgQiASAAKAIAKAIEIgJqLQAAIAFBAWogAmotAABBCHRyIAFBAmogAmotAABBEHRyIAFBA2ogAmotAABBGHRyIAAgAUEEajYCBAsoAQJ/IABBARDBASAAKAIEIgEgACgCACgCBGotAAAgACABQQFqNgIECzQBAX8gAEH///8/SwRAQeDFAEHAhgFBM0E8EAAACyAAQQN0IgBBDhAPIgFBACAA/AsAIAELxAYCDH8DfkEIQSgQDyICIAA2AgAgAkEANgIEIAIQwgEhACACEMcBIQYgAhDCASEHIAIgACAGbBDDASEIIAIgBxDDASIAKAIIELUBIQMDQCABIAAoAghIBEAgAyABIAEgACgCBGotAAAQtgEgAUEBaiEBDAELCyACIAdBB2pBA3YQwwEhCkEEQRsQDyIJQQA2AgACQCAHQf////8ASw0AIAdBAnQiAEEcEA8iAUEAIAD8CwAgCSABNgIAIAooAghBAWshAQNAIAFBAE4EQCABIAooAgRqLQAAIQIgAUEDdCELQQchAANAIABBAE4EQCACQYABcSEMIAJBAXQhAiAAIAtqIgUgB0gEQCAJKAIAIAVBAnRqQRlBACAEQQFqIAwbIgQgBEEZTxs2AgALIABBAWshAAwBCwsgAUEBayEBDAELC0EEQR0QDyICQQA2AgAgBkH/AXEiAAR/IAgoAgggAG0FQQALEMgBIQRBACEAA0AgACAIKAIISARAQgAhDSAGQQFrQf8BcSEBA0AgAUEATgRAQn8gDUIIhiIOIAgoAgQgACABamoxAAB8Ig8gDSAPViANIA5WchshDSABQQFrIQEMAQsLIAQgACAGQf8BcSIBbUEDdGogDTcDACAAIAFqIQAMAQsLIAIgBDYCAEEAIQFBBEEeEA8iAEEANgIA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WhtBA3RqKQMANwMIIAAgBUEMIAI1AggiBqcgBkINWhtBA3RqKQMANwMQDAYLQYCHASABELIBEK8BQfCfAUHQAkEHEAAACyAAIAI0AgA3AwAMBAsgACACNAIENwMIDAMLIAAgBUEMIAI1AgAiBqcgBkINWhtBA3RqKQMANwMAIAAgAjQCBDcDCAwBCyAAIAVBDCACNQIAIganIAZCDVobQQN0aikDADcDACAAIAVBDCACNQIEIganIAZCDVobQQN0aikDADcDCAsgACACNAIINwMQCyAAC7UDAQl/QQBBAkExQYCjARAQIQQgACgCECICKAIIIQYgAigCECECQRBBJBAPIgVBADYCACAFQQA2AgQgBUEANgIIIAVBADYCDCACQf////8ASwRAQeDFAEGwxQBBxgBBPBAAAAtBCCACIAJBCE0bQQJ0IgdBARAPIghBACAH/AsAIAUgCDYCACAFIAg2AgQgBSAHNgIIIAUgAjYCDANAIAIgA0oEQCAGIANBDGxqIgcoAghBAXFFBEAgBSABIAcoAgAQEiABQQFqIQELIANBAWohAwwBCwsgBSABQQJBABARIAUgATYCDEEAIQFBACEDA0AgAyAFKAIMSARAIAAoAhAgBSgCBCADQQJ0aigCACIHEDYiCCgCBCgCBARAQQAhAgNAIAIgCCgCBBA4KAIISARAIAIgCCgCBBA4KAIEai0AACIGBEAgAQRAIAEoAgQgBhC7AQUQ1wEiASAHQQx0IAJqNgIAQQFBAEEGQQAQECIJQQAgBhC2ASABIAk2AgQLBSABBEAgBCABENIBQQAhAQsLIAJBAWohAgwBCwsLIANBAWohAwwBCwsgAQRAIAQgARDSAQsgBAvZCAINfwF+QQEhAhCuASEJA0ACQCACRQRAIAEEQEGUnAEgACgCBCICIAJBFGsoAhBBA3YQ7QE2AgBBkJwBQYycASgCAEECdkHw9AAQtAEQAQsgAQRAQbScASAAKAIEQdCcARDvASICKAIEIAIoAgxBgIYBELQBNgIAQbCcAUGsnAEoAgBBAnZB8PQAELQBEAELIAEEQEHwnAEgACgCFBCyARCvARABCyABBEBBsJ0BIAAoAhhBChCzARCvARABCwwBCyABBEBB4J0BIAAoAhBBChCzARCvARABCyABBEACQCAAKAIMIgJBCGsoAgBBLEYEQCACKQMA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LABBmBcLGQIAAAASAAAAUwBUAE8AUgBFAF8AVQAzADIAQbwXCwEsAEHIFwsZAgAAABIAAABTAFQATwBSAEUAXwBVADYANABB7BcLATwAQfgXCycCAAAAIAAAAFMAVABPAFIARQBfAEkATQBNAF8ASQBOAEQAXwBVADgAQawYCwE8AEG4GAspAgAAACIAAABTAFQATwBSAEUAXwBJAE0ATQBfAEkATgBEAF8AVQAxADYAQewYCwE8AEH4GAspAgAAACIAAABTAFQATwBSAEUAXwBJAE0ATQBfAEkATgBEAF8AVQAzADIAQawZCwE8AEG4GQspAgAAACIAAABTAFQATwBSAEUAXwBJAE0ATQBfAEkATgBEAF8AVQA2ADQAQewZCwEsAEH4GQshAgAAABoAAABMAE8AQQBEAF8ASQBNAE0AXwBKAFUATQBQAEGcGgsBLABBqBoLIQIAAAAaAAAAQgBSAEEATgBDAEgAXwBFAFEAXwBJAE0ATQBBzBoLASwAQdgaCyECAAAAGgAAAEIAUgBBAE4AQwBIAF8ATgBFAF8ASQBNAE0AQfwaCwE8AEGIGwslAgAAAB4AAABCAFIAQQBOAEMASABfAEwAVABfAFUAXwBJAE0ATQBBvBsLATwAQcgbCyUCAAAAHgAAAEIAUgBBAE4AQwBIAF8ATABFAF8AVQBfAEkATQBNAEH8GwsBPABBiBwLJQIAAAAeAAAAQgBSAEEATgBDAEgAXwBHAEUAXwBVAF8ASQBNAE0AQbwcCwE8AEHIHAslAgAAAB4AAABCAFIAQQBOAEMASABfAEcAVABfAFUAXwBJAE0ATQBB/BwLATwAQYgdCyUCAAAAHgAAAEIAUgBBAE4AQwBIAF8ATABUAF8AUwBfAEkATQBNAEG8HQsBPABByB0LJQIAAAAeAAAAQgBSAEEATgBDAEgAXwBMAEUAXwBTAF8ASQBNAE0AQfwdCwE8AEGIHgslAgAAAB4AAABCAFIAQQBOAEMASABfAEcARQBfAFMAXwBJAE0ATQBBvB4LATwAQcgeCyUCAAAAHgAAAEIAUgBBAE4AQwBIAF8ARwBUAF8AUwBfAEkATQBNAEH8HgsBLABBiB8LFwIAAAAQAAAATQBPAFYARQBfAFIARQBHAEGsHwsBPABBuB8LKQIAAAAiAAAAQwBPAFUATgBUAF8AUwBFAFQAXwBCAEkAVABTAF8ANgA0AEHsHwsBPABB+B8LKQIAAAAiAAAAQwBPAFUATgBUAF8AUwBFAFQAXwBCAEkAVABTAF8AMwAyAEGsIAsBPABBuCALLwIAAAAoAAAATABFAEEARABJAE4ARwBfAFoARQBSAE8AXwBCAEkAVABTAF8ANgA0AEHsIAsBPABB+CALLwIAAAAoAAAATABFAEEARABJAE4ARwBfAFoARQBSAE8AXwBCAEkAVABTAF8AMwAyAEGsIQsBPABBuCELMQIAAAAqAAAAVABSAEEASQBMAEkATgBHAF8AWgBFAFIATwBfAEIASQBUAFMAXwA2ADQAQewhCwE8AEH4IQsxAgAAACoAAABUAFIAQQBJAEwASQBOAEcAXwBaAEUAUgBPAF8AQgBJAFQAUwBfADMAMgBBrCILASwAQbgiCyECAAAAGgAAAFMASQBHAE4AXwBFAFgAVABFAE4ARABfADgAQdwiCwEsAEHoIgsjAgAAABwAAABTAEkARwBOAF8ARQBYAFQARQBOAEQAXwAxADYAQYwjCwEsAEGYIwsjAgAAABwAAABaAEUAUgBPAF8ARQBYAFQARQBOAEQAXwAxADYAQbwjCwEsAEHIIwshAgAAABoAAABSAEUAVgBFAFIAUwBFAF8AQgBZAFQARQBTAEHsIwsBLABB+CMLHwIAAAAYAAAAUwBUAE8AUgBFAF8ASQBOAEQAXwBVADgAQZwkCwEsAEGoJAshAgAAABoAAABTAFQATwBSAEUAXwBJAE4ARABfAFUAMQA2AEHMJAsBLABB2CQLIQIAAAAaAAAAUwBUAE8AUgBFAF8ASQBOAEQAXwBVADMAMgBB/CQLASwAQYglCyECAAAAGgAAAFMAVABPAFIARQBfAEkATgBEAF8AVQA2ADQAQawlCwEsAEG4JQsdAgAAABYAAABMAE8AQQBEAF8ASQBOAEQAXwBVADgAQdwlCwEsAEHoJQsdAgAAABYAAABMAE8AQQBEAF8ASQBOAEQAXwBJADgAQYwmCwEsAEGYJgsfAgAAABgAAABMAE8AQQBEAF8ASQBOAEQAXwBVADEANgBBvCYLASwAQcgmCx8CAAAAGAAAAEwATwBBAEQAXwBJAE4ARABfAEkAMQA2AEHsJgsBLABB+CYLHwIAAAAYAAAATABPAEEARABfAEkATgBEAF8AVQAzADIAQZwnCwEsAEGoJwsfAgAAABgAAABMAE8AQQBEAF8ASQBOAEQAXwBJADMAMgBBzCcLASwAQdgnCx8CAAAAGAAAAEwATwBBAEQAXwBJAE4ARABfAFUANgA0AEH8JwsBLABBiCgLGwIAAAAUAAAAQQBEAEQAXwBJAE0ATQBfADMAMgBBrCgLASwAQbgoCxUCAAAADgAAAEEATgBEAF8ASQBNAE0AQdwoCwEsAEHoKAsVAgAAAA4AAABYAE8AUgBfAEkATQBNAEGMKQsBHABBmCkLEwIAAAAMAAAATwBSAF8ASQBNAE0AQawpCwEsAEG4KQsbAgAAABQAAABNAFUATABfAEkATQBNAF8AMwAyAEHcKQsBLABB6CkLHwIAAAAYAAAAUwBFAFQAXwBMAFQAXwBVAF8ASQBNAE0AQYwqCwEsAEGYKgsfAgAAABgAAABTAEUAVABfAEwAVABfAFMAXwBJAE0ATQBBvCoLASwAQcgqCyECAAAAGgAAAFMASABMAE8AXwBMAF8ASQBNAE0AXwAzADIAQewqCwEsAEH4KgshAgAAABoAAABTAEgATABPAF8AUgBfAEkATQBNAF8AMwAyAEGcKwsBLABBqCsLIQIAAAAaAAAAUwBIAEEAUgBfAFIAXwBJAE0ATQBfADMAMgBBzCsLASwAQdgrCyMCAAAAHAAAAE4ARQBHAF8AQQBEAEQAXwBJAE0ATQBfADMAMgBB/CsLASwAQYgsCx8CAAAAGAAAAFMARQBUAF8ARwBUAF8AVQBfAEkATQBNAEGsLAsBLABBuCwLHwIAAAAYAAAAUwBFAFQAXwBHAFQAXwBTAF8ASQBNAE0AQdwsCwE8AEHoLAspAgAAACIAAABTAEgATABPAF8ATABfAEkATQBNAF8AQQBMAFQAXwAzADIAQZwtCwE8AEGoLQspAgAAACIAAABTAEgATABPAF8AUgBfAEkATQBNAF8AQQBMAFQAXwAzADIAQdwtCwE8AEHoLQspAgAAACIAAABTAEgAQQBSAF8AUgBfAEkATQBNAF8AQQBMAFQAXwAzADIAQZwuCwEsAEGoLgsdAgAAABYAAABDAE0ATwBWAF8ASQBaAF8ASQBNAE0AQcwuCwEsAEHYLgsdAgAAABYAAABDAE0ATwBWAF8ATgBaAF8ASQBNAE0AQfwuCwEsAEGILwsbAgAAABQAAABBAEQARABfAEkATQBNAF8ANgA0AEGsLwsBLABBuC8LGwIAAAAUAAAATQBVAEwAXwBJAE0ATQBfADYANABB3C8LASwAQegvCyECAAAAGgAAAFMASABMAE8AXwBMAF8ASQBNAE0AXwA2ADQAQYwwCwEsAEGYMAshAgAAABoAAABTAEgATABPAF8AUgBfAEkATQBNAF8ANgA0AEG8MAsBLABByDALIQIAAAAaAAAAUwBIAEEAUgBfAFIAXwBJAE0ATQBfADYANABB7DALASwAQfgwCyMCAAAAHAAAAE4ARQBHAF8AQQBEAEQAXwBJAE0ATQBfADYANABBnDELATwAQagxCykCAAAAIgAAAFMASABMAE8AXwBMAF8ASQBNAE0AXwBBAEwAVABfADYANABB3DELATwAQegxCykCAAAAIgAAAFMASABMAE8AXwBSAF8ASQBNAE0AXwBBAEwAVABfADYANABBnDILATwAQagyCykCAAAAIgAAAFMASABBAFIAXwBSAF8ASQBNAE0AXwBBAEwAVABfADYANABB3DILASwAQegyCx8CAAAAGAAAAFIATwBUAF8AUgBfADYANABfAEkATQBNAEGMMwsBPABBmDMLJwIAAAAgAAAAUgBPAFQAXwBSAF8ANgA0AF8ASQBNAE0AXwBBAEwAVABBzDMLASwAQdgzCx8CAAAAGAAAAFIATwBUAF8AUgBfADMAMgBfAEkATQBNAEH8MwsBPABBiDQLJwIAAAAgAAAAUgBPAFQAXwBSAF8AMwAyAF8ASQBNAE0AXwBBAEwAVABBvDQLASwAQcg0CxkCAAAAEgAAAEIAUgBBAE4AQwBIAF8ARQBRAEHsNAsBLABB+DQLGQIAAAASAAAAQgBSAEEATgBDAEgAXwBOAEUAQZw1CwEsAEGoNQsdAgAAABYAAABCAFIAQQBOAEMASABfAEwAVABfAFUAQcw1CwEsAEHYNQsdAgAAABYAAABCAFIAQQBOAEMASABfAEwAVABfAFMAQfw1CwEsAEGINgsdAgAAABYAAABCAFIAQQBOAEMASABfAEcARQBfAFUAQaw2CwEsAEG4NgsdAgAAABYAAABCAFIAQQBOAEMASABfAEcARQBfAFMAQdw2CwE8AEHoNgspAgAAACIAAABMAE8AQQBEAF8ASQBNAE0AXwBKAFUATQBQAF8ASQBOAEQAQZw3CwEcAEGoNwsTAgAAAAwAAABBAEQARABfADMAMgBBvDcLARwAQcg3CxMCAAAADAAAAFMAVQBCAF8AMwAyAEHcNwsBHABB6DcLEwIAAAAMAAAATQBVAEwAXwAzADIAQfw3CwEsAEGIOAsXAgAAABAAAABEAEkAVgBfAFUAXwAzADIAQaw4CwEsAEG4OAsXAgAAABAAAABEAEkAVgBfAFMAXwAzADIAQdw4CwEsAEHoOAsXAgAAABAAAABSAEUATQBfAFUAXwAzADIAQYw5CwEsAEGYOQsXAgAAABAAAABSAEUATQBfAFMAXwAzADIAQbw5CwEsAEHIOQsZAgAAABIAAABTAEgATABPAF8ATABfADMAMgBB7DkLASwAQfg5CxkCAAAAEgAAAFMASABMAE8AXwBSAF8AMwAyAEGcOgsBLABBqDoLGQIAAAASAAAAUwBIAEEAUgBfAFIAXwAzADIAQcw6CwEcAEHYOgsTAgAAAAwAAABBAEQARABfADYANABB7DoLARwAQfg6CxMCAAAADAAAAFMAVQBCAF8ANgA0AEGMOwsBHABBmDsLEwIAAAAMAAAATQBVAEwAXwA2ADQAQaw7CwEsAEG4OwsXAgAAABAAAABEAEkAVgBfAFUAXwA2ADQAQdw7CwEsAEHoOwsXAgAAABAAAABEAEkAVgBfAFMAXwA2ADQAQYw8CwEsAEGYPAsXAgAAABAAAABSAEUATQBfAFUAXwA2ADQAQbw8CwEsAEHIPAsXAgAAABAAAABSAEUATQBfAFMAXwA2ADQAQew8CwEsAEH4PAsZAgAAABIAAABTAEgATABPAF8ATABfADYANABBnD0LASwAQag9CxkCAAAAEgAAAFMASABMAE8AXwBSAF8ANgA0AEHMPQsBLABB2D0LGQIAAAASAAAAUwBIAEEAUgBfAFIAXwA2ADQAQfw9CwEcAEGIPgsNAgAAAAYAAABBAE4ARABBnD4LARwAQag+Cw0CAAAABgAAAFgATwBSAEG8PgsBHABByD4LCwIAAAAEAAAATwBSAEHcPgsBLABB6D4LIQIAAAAaAAAATQBVAEwAXwBVAFAAUABFAFIAXwBTAF8AUwBBjD8LASwAQZg/CyECAAAAGgAAAE0AVQBMAF8AVQBQAFAARQBSAF8AVQBfAFUAQbw/CwEsAEHIPwshAgAAABoAAABNAFUATABfAFUAUABQAEUAUgBfAFMAXwBVAEHsPwsBLABB+D8LFwIAAAAQAAAAUwBFAFQAXwBMAFQAXwBVAEGcwAALASwAQajAAAsXAgAAABAAAABTAEUAVABfAEwAVABfAFMAQczAAAsBLABB2MAACxUCAAAADgAAAEMATQBPAFYAXwBJAFoAQfzAAAsBLABBiMEACxUCAAAADgAAAEMATQBPAFYAXwBOAFoAQazBAAsBLABBuMEACxcCAAAAEAAAAFIATwBUAF8ATABfADYANABB3MEACwEsAEHowQALFwIAAAAQAAAAUgBPAFQAXwBMAF8AMwAyAEGMwgALASwAQZjCAAsXAgAAABAAAABSAE8AVABfAFIAXwA2ADQAQbzCAAsBLABByMIACxcCAAAAEAAAAFIATwBUAF8AUgBfADMAMgBB7MIACwEsAEH4wgALFQIAAAAOAAAAQQBOAEQAXwBJAE4AVgBBnMMACwEcAEGowwALEwIAAAAMAAAATwBSAF8ASQBOAFYAQbzDAAsBHABByMMACw8CAAAACAAAAFgATgBPAFIAQdzDAAsBHABB6MMACw0CAAAABgAAAE0AQQBYAEH8wwALARwAQYjEAAsRAgAAAAoAAABNAEEAWABfAFUAQZzEAAsBHABBqMQACw0CAAAABgAAAE0ASQBOAEG8xAALARwAQcjEAAsRAgAAAAoAAABNAEkATgBfAFUAQdzEAAsBPABB6MQACysCAAAAJAAAAEkAbgBkAGUAeAAgAG8AdQB0ACAAbwBmACAAcgBhAG4AZwBlAEGcxQALASwAQajFAAshAgAAABoAAAB+AGwAaQBiAC8AYQByAHIAYQB5AC4AdABzAEHMxQALASwAQdjFAAsjAgAAABwAAABJAG4AdgBhAGwAaQBkACAAbABlAG4AZwB0AGgAQfzFAAsBPABBiMYACy0CAAAAJgAAAH4AbABpAGIALwBhAHIAcgBhAHkAYgB1AGYAZgBlAHIALgB0AHMAQbzGAAsBHABByMYACwkVAAAACAAAAA4AQdzGAAsBHABB6MYACwkVAAAACAAAAA8AQfzGAAsBHABBiMcACwkVAAAACAAAABAAQZzHAAsBHABBqMcACwkVAAAACAAAABEAQbzHAAsBHABByMcACwkVAAAACAAAABIAQdzHAAsBHABB6McACwkVAAAACAAAABMAQfzHAAsBHABBiMgACwkVAAAACAAAABQAQZzIAAsBHABBqMgACwkVAAAACAAAABUAQbzIAAsBHABByMgACwkVAAAACAAAABYAQdzIAAsBHABB6MgACwkVAAAACAAAABcAQfzIAAsBHABBiMkACwkVAAAACAAAABgAQZzJAAsBHABBqMkACwkVAAAACAAAABkAQbzJAAsBHABByMkACwkVAAAACAAAABoAQdzJAAsBHABB6MkACwkVAAAACAAAABsAQfzJAAsBHABBiMoACwkVAAAACAAAABwAQZzKAAsBHABBqMoACwkVAAAACAAAAB0AQbzKAAsBHABByMoACwkVAAAACAAAAB4AQdzKAAsBHABB6MoACwkVAAAACAAAAB8AQfzKAAsBHABBiMsACwkVAAAACAAAACAAQZzLAAsBHABBqMsACwkVAAAACAAAACEAQbzLAAsBHABByMsACwkVAAAACAAAACIAQdzLAAsBHABB6MsACwkVAAAACAAAACMAQfzLAAsBHABBiMwACwkVAAAACAAAACQAQZzMAAsBHABBqMwACwkVAAAACAAAACUAQbzMAAsBHABByMwACwkVAAAACAAAACYAQdzMAAsBHABB6MwACwkVAAAACAAAACcAQfzMAAsBHABBiM0ACwkVAAAACAAAACgAQZzNAAsBHABBqM0ACwkVAAAACAAAACkAQbzNAAsBHABByM0ACwkVAAAACAAAACoAQdzNAAsBHABB6M0ACwkVAAAACAAAACsAQfzNAAsBHABBiM4ACwkVAAAACAAAACwAQZzOAAsBHABBqM4ACwkVAAAACAAAAC0AQbzOAAsBPABByM4ACysCAAAAJAAAAEsAZQB5ACAAZABvAGUAcwAgAG4AbwB0ACAAZQB4AGkAcwB0AEH8zgALASwAQYjPAAsdAgAAABYAAAB+AGwAaQBiAC8AbQBhAHAALgB0AHMAQazPAAsBHABBuM8ACwkVAAAACAAAAC4AQczPAAsBHABB2M8ACwkVAAAACAAAAC8AQezPAAsBHABB+M8ACwkVAAAACAAAADAAQYzQAAsBHABBmNAACwkVAAAACAAAADEAQazQAAsBHABBuNAACwkVAAAACAAAADIAQczQAAsBHABB2NAACwkVAAAACAAAADMAQezQAAsBHABB+NAACwkVAAAACAAAADQAQYzRAAsBHABBmNEACwkVAAAACAAAADUAQazRAAsBHABBuNEACwkVAAAACAAAADYAQczRAAsBHABB2NEACwkVAAAACAAAADcAQezRAAsBHABB+NEACwkVAAAACAAAADgAQYzSAAsBHABBmNIACwkVAAAACAAAADkAQazSAAsBHABBuNIACwkVAAAACAAAADoAQczSAAsBHABB2NIACwkVAAAACAAAADsAQezSAAsBHABB+NIACwkVAAAACAAAADwAQYzTAAsBHABBmNMACwkVAAAACAAAAD0AQazTAAsBHABBuNMACwkVAAAACAAAAD4AQczTAAsBHABB2NMACwkVAAAACAAAAD8AQezTAAsBHABB+NMACwkVAAAACAAAAEAAQYzUAAsBHABBmNQACwkVAAAACAAAAEEAQazUAAsBHABBuNQACwkVAAAACAAAAEIAQczUAAsBHABB2NQACwkVAAAACAAAAEMAQezUAAsBHABB+NQACwkVAAAACAAAAEQAQYzVAAsBHABBmNUACwkVAAAACAAAAEUAQazVAAsBHABBuNUACwkVAAAACAAAAEYAQczVAAsBHABB2NUACwkVAAAACAAAAEcAQezVAAsBHABB+NUACwkVAAAACAAAAEgAQYzWAAsBHABBmNYACwkVAAAACAAAAEkAQazWAAsBHABBuNYACwkVAAAACAAAAEoAQczWAAsBHABB2NYACwkVAAAACAAAAEsAQezWAAsBHABB+NYACwkVAAAACAAAAEwAQYzXAAsBHABBmNcACwkVAAAACAAAAE0AQazXAAsBHABBuNcACwkVAAAACAAAAE4AQczXAAsBHABB2NcACwkVAAAACAAAAE8AQezXAAsBHABB+NcACwkVAAAACAAAAFAAQYzYAAsBHABBmNgACwkVAAAACAAAAFEAQazYAAsBHABBuNgACwkVAAAACAAAAFIAQczYAAsBHABB2NgACwkVAAAACAAAAFMAQezYAAsBHABB+NgACwkVAAAACAAAAFQAQYzZAAsBHABBmNkACwkVAAAACAAAAFUAQazZAAsBHABBuNkACwkVAAAACAAAAFYAQczZAAsBHABB2NkACwkVAAAACAAAAFcAQezZAAsBHABB+NkACwkVAAAACAAAAFgAQYzaAAsBHABBmNoACwkVAAAACAAAAFkAQazaAAsBHABBuNoACwkVAAAACAAAAFoAQczaAAsBHABB2NoACwkVAAAACAAAAFsAQezaAAsBHABB+NoACwkVAAAACAAAAFwAQYzbAAsBHABBmNsACwkVAAAACAAAAF0AQazbAAsBHABBuNsACwkVAAAACAAAAF4AQczbAAsBHABB2NsACwkVAAAACAAAAF8AQezbAAsBHABB+NsACwkVAAAACAAAAGAAQYzcAAsBHABBmNwACwkVAAAACAAAAGEAQazcAAsBHABBuNwACwkVAAAACAAAAGIAQczcAAsBHABB2NwACwkVAAAACAAAAGMAQezcAAsBLABB+NwACyMCAAAAHAAAAEEAcgByAGEAeQAgAGkAcwAgAGUAbQBwAHQAeQBBnN0ACwFcAEGo3QALUwIAAABMAAAAVwBhAHIAbgBpAG4AZwA6ACAAUgB1AG4AIABvAHUAdAAgAG8AZgAgAHAAYQBnAGUAcwAhACAAQQBsAGwAbwBjAGEAdABpAG4AZwAuAEH83QALARwAQYjeAAsJFQAAAAgAAABkAEGc3gALARwAQajeAAsJFQAAAAgAAABlAEG83gALARwAQcjeAAsJFQAAAAgAAABmAEHc3gALARwAQejeAAsJFQAAAAgAAABnAEH83gALARwAQYjfAAsJFQAAAAgAAABoAEGc3wALARwAQajfAAsJFQAAAAgAAABpAEG83wALARwAQcjfAAsJFQAAAAgAAABqAEHc3wALARwAQejfAAsJFQAAAAgAAABrAEH83wALARwAQYjgAAsJFQAAAAgAAABsAEGc4AALARwAQajgAAsJFQAAAAgAAABtAEG84AALARwAQcjgAAsJFQAAAAgAAABuAEHc4AALARwAQejgAAsJFQAAAAgAAABvAEH84AALARwAQYjhAAsJFQAAAAgAAABwAEGc4QALARwAQajhAAsJFQAAAAgAAABxAEG84QALARwAQcjhAAsJFQAAAAgAAAByAEHc4QALARwAQejhAAsJFQAAAAgAAABzAEH84QALARwAQYjiAAsJFQAAAAgAAAB0AEGc4gALARwAQajiAAsJFQAAAAgAAAB1AEG84gALARwAQcjiAAsJFQAAAAgAAAB2AEHc4gALARwAQejiAAsJFQAAAAgAAAB3AEH84gALARwAQYjjAAsJFQAAAAgAAAB4AEGc4wALARwAQajjAAsJFQAAAAgAAAB5AEG84wALARwAQcjjAAsJFQAAAAgAAAB6AEHc4wALARwAQejjAAsJFQAAAAgAAAB7AEH84wALARwAQYjkAAsJFQAAAAgAAAB8AEGc5AALARwAQajkAAsJFQAAAAgAAAB9AEG85AALARwAQcjkAAsJFQAAAAgAAAB+AEHc5AALARwAQejkAAsJFQAAAAgAAAB/AEH85AALARwAQYjlAAsJFQAAAAgAAACAAEGc5QALARwAQajlAAsJFQAAAAgAAACBAEG85QALARwAQcjlAAsJFQAAAAgAAACCAEHc5QALARwAQejlAAsJFQAAAAgAAACDAEH85QALARwAQYjmAAsJFQAAAAgAAACEAEGc5gALARwAQajmAAsJFQAAAAgAAACFAEG85gALARwAQcjmAAsJFQAAAAgAAACGAEHc5gALARwAQejmAAsJFQAAAAgAAACHAEH85gALARwAQYjnAAsJFQAAAAgAAACIAEGc5wALARwAQajnAAsJFQAAAAgAAACJAEG85wALARwAQcjnAAsJFQAAAAgAAACKAEHc5wALARwAQejnAAsJFQAAAAgAAACLAEH85wALARwAQYjoAAsJFQAAAAgAAACMAEGc6AALARwAQajoAAsJFQAAAAgAAACNAEG86AALARwAQcjoAAsJFQAAAAgAAACOAEHc6AALARwAQejoAAsJFQAAAAgAAACPAEH86AALARwAQYjpAAsJFQAAAAgAAACQAEGc6QALARwAQajpAAsJFQAAAAgAAACRAEG86QALARwAQcjpAAsJFQAAAAgAAACSAEHc6QALARwAQejpAAsJFQAAAAgAAACTAEH86QALARwAQYjqAAsJFQAAAAgAAACUAEGc6gALARwAQajqAAsJFQAAAAgAAACVAEG86gALARwAQcjqAAsJFQAAAAgAAACWAEHc6gALARwAQejqAAsJFQAAAAgAAACXAEH86gALARwAQYjrAAsJFQAAAAgAAACYAEGc6wALARwAQajrAAsJFQAAAAgAAACZAEG86wALAqwDAEHI6wALogcBAAAAnAMAACAuAABALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAABgLgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAECcAAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4A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MAA5ADEAOQAyADkAMwA5ADQAOQA1ADkANgA5ADcAOQA4ADkAOQBBzPsACwIcBABB2PsAC4cIAgAAAAAEAAAwADAAMAAxADAAMgAwADMAMAA0ADAANQAwADYAMAA3ADAAOAAwADkAMABhADAAYgAwAGMAMABkADAAZQAwAGYAMQAwADEAMQAxADIAMQAzADEANAAxADUAMQA2ADEANwAxADgAMQA5ADEAYQAxAGIAMQBjADEAZAAxAGUAMQBmADIAMAAyADEAMgAyADIAMwAyADQAMgA1ADIANgAyADcAMgA4ADIAOQAyAGEAMgBiADIAYwAyAGQAMgBlADIAZgAzADAAMwAxADMAMgAzADMAMwA0ADMANQAzADYAMwA3ADMAOAAzADkAMwBhADMAYgAzAGMAMwBkADMAZQAzAGYANAAwADQAMQA0ADIANAAzADQANAA0ADUANAA2ADQANwA0ADgANAA5ADQAYQA0AGIANABjADQAZAA0AGUANABmADUAMAA1ADEANQAyADUAMwA1ADQANQA1ADUANgA1ADcANQA4ADUAOQA1AGEANQBiADUAYwA1AGQANQBlADUAZgA2ADAANgAxADYAMgA2ADMANgA0ADYANQA2ADYANgA3ADYAOAA2ADkANgBhADYAYgA2AGMANgBkADYAZQA2AGYANwAwADcAMQA3ADIANwAzADcANAA3ADUANwA2ADcANwA3ADgANwA5ADcAYQA3AGIANwBjADcAZAA3AGUANwBmADgAMAA4ADEAOAAyADgAMwA4ADQAOAA1ADgANgA4ADcAOAA4ADgAOQA4AGEAOABiADgAYwA4AGQAOABlADgAZgA5ADAAOQAxADkAMgA5ADMAOQA0ADkANQA5ADYAOQA3ADkAOAA5ADkAOQBhADkAYgA5AGMAOQBkADkAZQA5AGYAYQAwAGEAMQBhADIAYQAzAGEANABhADUAYQA2AGEANwBhADgAYQA5AGEAYQBhAGIAYQBjAGEAZABhAGUAYQBmAGIAMABiADEAYgAyAGIAMwBiADQAYgA1AGIANgBiADcAYgA4AGIAOQBiAGEAYgBiAGIAYwBiAGQAYgBlAGIAZgBjADAAYwAxAGMAMgBjADMAYwA0AGMANQBjADYAYwA3AGMAOABjADkAYwBhAGMAYgBjAGMAYwBkAGMAZQBjAGYAZAAwAGQA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";
|
|
17195
|
+
let compiledModulePromise = null;
|
|
17196
|
+
|
|
17197
|
+
// Helper function to decode and instantiate the module
|
|
17198
|
+
async function instantiate(imports) {
|
|
17199
|
+
if (compiledModulePromise === null) {
|
|
17200
|
+
compiledModulePromise = WebAssembly.compile(getWasmBytes());
|
|
17201
|
+
}
|
|
17202
|
+
const module = await compiledModulePromise;
|
|
17203
|
+
return instantiate$1(module, imports);
|
|
17204
|
+
}
|
|
17205
|
+
|
|
17206
|
+
// Helper function to just get the bytes
|
|
17207
|
+
function getWasmBytes() {
|
|
17208
|
+
return Uint8Array.from(atob(wasmBase64), c => c.charCodeAt(0));
|
|
17209
|
+
}
|
|
17210
|
+
|
|
17389
17211
|
// Max u32 value
|
|
17390
17212
|
const INF_STEPS = 2 ** 32 - 1;
|
|
17391
17213
|
class AnanasRegisters {
|
|
@@ -17471,8 +17293,7 @@ class AnanasInterpreter {
|
|
|
17471
17293
|
this.gas = new AnanasGasCounter(instance);
|
|
17472
17294
|
}
|
|
17473
17295
|
static async new() {
|
|
17474
|
-
const
|
|
17475
|
-
const instance = await instantiate(wasmModule, {
|
|
17296
|
+
const instance = await instantiate({
|
|
17476
17297
|
env: {
|
|
17477
17298
|
abort: () => {
|
|
17478
17299
|
throw new Error("Abort called from WASM");
|
|
@@ -17568,7 +17389,7 @@ class InterpreterInstanceManager {
|
|
|
17568
17389
|
}
|
|
17569
17390
|
}
|
|
17570
17391
|
|
|
17571
|
-
var index$
|
|
17392
|
+
var index$7 = /*#__PURE__*/Object.freeze({
|
|
17572
17393
|
__proto__: null,
|
|
17573
17394
|
HostCallMemory: HostCallMemory,
|
|
17574
17395
|
HostCallRegisters: HostCallRegisters,
|
|
@@ -17580,15 +17401,252 @@ var index$4 = /*#__PURE__*/Object.freeze({
|
|
|
17580
17401
|
tryAsHostCallIndex: tryAsHostCallIndex
|
|
17581
17402
|
});
|
|
17582
17403
|
|
|
17404
|
+
/**
|
|
17405
|
+
* Host call result constants.
|
|
17406
|
+
*
|
|
17407
|
+
* https://graypaper.fluffylabs.dev/#/85129da/2c7c022c7c02?v=0.6.3
|
|
17408
|
+
*/
|
|
17409
|
+
const HostCallResult = {
|
|
17410
|
+
/** The return value indicating an item does not exist. */
|
|
17411
|
+
NONE: tryAsU64(0xffffffffffffffffn), // 2**64 - 1
|
|
17412
|
+
/** Name unknown. */
|
|
17413
|
+
WHAT: tryAsU64(0xfffffffffffffffen), // 2**64 - 2
|
|
17414
|
+
/** The inner PVM memory index provided for reading/writing is not accessible. */
|
|
17415
|
+
OOB: tryAsU64(0xfffffffffffffffdn), // 2**64 - 3
|
|
17416
|
+
/** Index unknown. */
|
|
17417
|
+
WHO: tryAsU64(0xfffffffffffffffcn), // 2**64 - 4
|
|
17418
|
+
/** Storage full or resource already allocated. */
|
|
17419
|
+
FULL: tryAsU64(0xfffffffffffffffbn), // 2**64 - 5
|
|
17420
|
+
/** Core index unknown. */
|
|
17421
|
+
CORE: tryAsU64(0xfffffffffffffffan), // 2**64 - 6
|
|
17422
|
+
/** Insufficient funds. */
|
|
17423
|
+
CASH: tryAsU64(0xfffffffffffffff9n), // 2**64 - 7
|
|
17424
|
+
/** Gas limit too low. */
|
|
17425
|
+
LOW: tryAsU64(0xfffffffffffffff8n), // 2**64 - 8
|
|
17426
|
+
/** The item is already solicited, cannot be forgotten or the operation is invalid due to privilege level. */
|
|
17427
|
+
HUH: tryAsU64(0xfffffffffffffff7n), // 2**64 - 9
|
|
17428
|
+
/** The return value indicating general success. */
|
|
17429
|
+
OK: tryAsU64(0n),
|
|
17430
|
+
};
|
|
17431
|
+
|
|
17432
|
+
const MAX_U32 = tryAsU32(2 ** 32 - 1);
|
|
17433
|
+
const MAX_U32_BIG_INT = tryAsU64(MAX_U32);
|
|
17434
|
+
const SERVICE_ID_BYTES = 4;
|
|
17435
|
+
const CURRENT_SERVICE_ID = tryAsServiceId(2 ** 32 - 1);
|
|
17436
|
+
function getServiceIdOrCurrent(regNumber, regs, currentServiceId) {
|
|
17437
|
+
const regValue = regs.get(regNumber);
|
|
17438
|
+
if (regValue === 2n ** 64n - 1n) {
|
|
17439
|
+
return currentServiceId;
|
|
17440
|
+
}
|
|
17441
|
+
return getServiceId(regValue);
|
|
17442
|
+
}
|
|
17443
|
+
function getServiceId(serviceId) {
|
|
17444
|
+
const { lower, upper } = u64IntoParts(serviceId);
|
|
17445
|
+
if (upper === 0) {
|
|
17446
|
+
return tryAsServiceId(lower);
|
|
17447
|
+
}
|
|
17448
|
+
return null;
|
|
17449
|
+
}
|
|
17450
|
+
function writeServiceIdAsLeBytes(serviceId, destination) {
|
|
17451
|
+
check `${destination.length >= SERVICE_ID_BYTES} Not enough space in the destination.`;
|
|
17452
|
+
destination.set(u32AsLeBytes(serviceId));
|
|
17453
|
+
}
|
|
17454
|
+
/** Clamp a U64 to the maximum value of a 32-bit unsigned integer. */
|
|
17455
|
+
function clampU64ToU32(value) {
|
|
17456
|
+
return value > MAX_U32_BIG_INT ? MAX_U32 : tryAsU32(Number(value));
|
|
17457
|
+
}
|
|
17458
|
+
function emptyRegistersBuffer() {
|
|
17459
|
+
return safeAllocUint8Array(NO_OF_REGISTERS$1 * REGISTER_BYTE_SIZE);
|
|
17460
|
+
}
|
|
17461
|
+
|
|
17462
|
+
Compatibility.isSuite(TestSuite.W3F_DAVXY) || Compatibility.isGreaterOrEqual(GpVersion.V0_7_2) ? 9 : 11;
|
|
17463
|
+
Compatibility.isSuite(TestSuite.W3F_DAVXY) || Compatibility.isGreaterOrEqual(GpVersion.V0_7_2) ? 10 : 12;
|
|
17464
|
+
/**
|
|
17465
|
+
* Service account details with threshold balance.
|
|
17466
|
+
*
|
|
17467
|
+
* Used exclusively by `info` host call.
|
|
17468
|
+
*
|
|
17469
|
+
* https://graypaper.fluffylabs.dev/#/ab2cdbd/33920033b500?v=0.7.2
|
|
17470
|
+
*/
|
|
17471
|
+
const codecServiceAccountInfoWithThresholdBalance = codec$1.object({
|
|
17472
|
+
codeHash: codec$1.bytes(HASH_SIZE),
|
|
17473
|
+
balance: codec$1.u64,
|
|
17474
|
+
thresholdBalance: codec$1.u64,
|
|
17475
|
+
accumulateMinGas: codec$1.u64.convert((i) => i, tryAsServiceGas),
|
|
17476
|
+
onTransferMinGas: codec$1.u64.convert((i) => i, tryAsServiceGas),
|
|
17477
|
+
storageUtilisationBytes: codec$1.u64,
|
|
17478
|
+
storageUtilisationCount: codec$1.u32,
|
|
17479
|
+
gratisStorage: codec$1.u64,
|
|
17480
|
+
created: codec$1.u32.convert((x) => x, tryAsTimeSlot),
|
|
17481
|
+
lastAccumulation: codec$1.u32.convert((x) => x, tryAsTimeSlot),
|
|
17482
|
+
parentService: codec$1.u32.convert((x) => x, tryAsServiceId),
|
|
17483
|
+
}, "ServiceAccountInfoWithThresholdBalance");
|
|
17484
|
+
|
|
17485
|
+
var index$6 = /*#__PURE__*/Object.freeze({
|
|
17486
|
+
__proto__: null,
|
|
17487
|
+
AccumulationStateUpdate: AccumulationStateUpdate,
|
|
17488
|
+
CURRENT_SERVICE_ID: CURRENT_SERVICE_ID,
|
|
17489
|
+
get EjectError () { return EjectError; },
|
|
17490
|
+
get ForgetPreimageError () { return ForgetPreimageError; },
|
|
17491
|
+
HostCallResult: HostCallResult,
|
|
17492
|
+
InsufficientFundsError: InsufficientFundsError,
|
|
17493
|
+
MachineInstance: MachineInstance,
|
|
17494
|
+
get MemoryOperation () { return MemoryOperation; },
|
|
17495
|
+
get NewServiceError () { return NewServiceError; },
|
|
17496
|
+
NoMachineError: NoMachineError,
|
|
17497
|
+
get PagesError () { return PagesError; },
|
|
17498
|
+
PartiallyUpdatedState: PartiallyUpdatedState,
|
|
17499
|
+
get PeekPokeError () { return PeekPokeError; },
|
|
17500
|
+
PendingTransfer: PendingTransfer,
|
|
17501
|
+
get PreimageStatusKind () { return PreimageStatusKind; },
|
|
17502
|
+
get ProvidePreimageError () { return ProvidePreimageError; },
|
|
17503
|
+
get RequestPreimageError () { return RequestPreimageError; },
|
|
17504
|
+
SERVICE_ID_BYTES: SERVICE_ID_BYTES,
|
|
17505
|
+
SegmentExportError: SegmentExportError,
|
|
17506
|
+
TRANSFER_MEMO_BYTES: TRANSFER_MEMO_BYTES,
|
|
17507
|
+
get TransferError () { return TransferError; },
|
|
17508
|
+
UnprivilegedError: UnprivilegedError,
|
|
17509
|
+
get UpdatePrivilegesError () { return UpdatePrivilegesError; },
|
|
17510
|
+
get ZeroVoidError () { return ZeroVoidError; },
|
|
17511
|
+
clampU64ToU32: clampU64ToU32,
|
|
17512
|
+
emptyRegistersBuffer: emptyRegistersBuffer,
|
|
17513
|
+
getServiceId: getServiceId,
|
|
17514
|
+
getServiceIdOrCurrent: getServiceIdOrCurrent,
|
|
17515
|
+
hostCallInfoAccount: codecServiceAccountInfoWithThresholdBalance,
|
|
17516
|
+
slotsToPreimageStatus: slotsToPreimageStatus,
|
|
17517
|
+
toMemoryOperation: toMemoryOperation,
|
|
17518
|
+
tryAsMachineId: tryAsMachineId,
|
|
17519
|
+
tryAsProgramCounter: tryAsProgramCounter,
|
|
17520
|
+
writeServiceIdAsLeBytes: writeServiceIdAsLeBytes
|
|
17521
|
+
});
|
|
17522
|
+
|
|
17523
|
+
const SUPER_PEAK_STRING = BytesBlob.blobFromString("peak");
|
|
17524
|
+
/**
|
|
17525
|
+
* Merkle Mountain Range.
|
|
17526
|
+
*
|
|
17527
|
+
* https://graypaper.fluffylabs.dev/#/5f542d7/3aa0023aa002?v=0.6.2
|
|
17528
|
+
*/
|
|
17529
|
+
class MerkleMountainRange {
|
|
17530
|
+
hasher;
|
|
17531
|
+
mountains;
|
|
17532
|
+
/** Construct an empty MMR. */
|
|
17533
|
+
static empty(hasher) {
|
|
17534
|
+
return new MerkleMountainRange(hasher);
|
|
17535
|
+
}
|
|
17536
|
+
/** Construct a new MMR from existing peaks. */
|
|
17537
|
+
static fromPeaks(hasher, mmr) {
|
|
17538
|
+
return new MerkleMountainRange(hasher, mmr.peaks
|
|
17539
|
+
.reduce((acc, peak, index) => {
|
|
17540
|
+
if (peak !== null) {
|
|
17541
|
+
acc.push(Mountain.fromPeak(peak, 2 ** index));
|
|
17542
|
+
}
|
|
17543
|
+
return acc;
|
|
17544
|
+
}, [])
|
|
17545
|
+
.reverse());
|
|
17546
|
+
}
|
|
17547
|
+
constructor(hasher,
|
|
17548
|
+
/** Store non-empty merkle tries (mountains) ordered by descending size. */
|
|
17549
|
+
mountains = []) {
|
|
17550
|
+
this.hasher = hasher;
|
|
17551
|
+
this.mountains = mountains;
|
|
17552
|
+
}
|
|
17553
|
+
/**
|
|
17554
|
+
* Append a new hash to the MMR structure.
|
|
17555
|
+
*
|
|
17556
|
+
* https://graypaper.fluffylabs.dev/#/5f542d7/3b11003b1100?v=0.6.2
|
|
17557
|
+
*/
|
|
17558
|
+
append(hash) {
|
|
17559
|
+
let newMountain = Mountain.fromPeak(hash, 1);
|
|
17560
|
+
for (;;) {
|
|
17561
|
+
const last = this.mountains.pop();
|
|
17562
|
+
if (last === undefined) {
|
|
17563
|
+
this.mountains.push(newMountain);
|
|
17564
|
+
return;
|
|
17565
|
+
}
|
|
17566
|
+
if (last.size !== newMountain.size) {
|
|
17567
|
+
this.mountains.push(last);
|
|
17568
|
+
this.mountains.push(newMountain);
|
|
17569
|
+
return;
|
|
17570
|
+
}
|
|
17571
|
+
newMountain = last.mergeWith(this.hasher, newMountain);
|
|
17572
|
+
}
|
|
17573
|
+
}
|
|
17574
|
+
/**
|
|
17575
|
+
* Root of the entire structure.
|
|
17576
|
+
*
|
|
17577
|
+
* https://graypaper.fluffylabs.dev/#/5f542d7/3b20013b2001?v=0.6.2
|
|
17578
|
+
*/
|
|
17579
|
+
getSuperPeakHash() {
|
|
17580
|
+
if (this.mountains.length === 0) {
|
|
17581
|
+
return Bytes.zero(HASH_SIZE).asOpaque();
|
|
17582
|
+
}
|
|
17583
|
+
const revMountains = this.mountains.slice().reverse();
|
|
17584
|
+
const length = revMountains.length;
|
|
17585
|
+
let lastHash = revMountains[0].peak;
|
|
17586
|
+
for (let i = 1; i < length; i++) {
|
|
17587
|
+
const mountain = revMountains[i];
|
|
17588
|
+
lastHash = this.hasher.hashConcatPrepend(SUPER_PEAK_STRING, lastHash, mountain.peak);
|
|
17589
|
+
}
|
|
17590
|
+
return lastHash;
|
|
17591
|
+
}
|
|
17592
|
+
/** Get current peaks. */
|
|
17593
|
+
getPeaks() {
|
|
17594
|
+
const peaks = [];
|
|
17595
|
+
const mountains = this.mountains;
|
|
17596
|
+
// always 2**index
|
|
17597
|
+
let currentSize = 1;
|
|
17598
|
+
let currentIdx = mountains.length - 1;
|
|
17599
|
+
while (currentIdx >= 0) {
|
|
17600
|
+
const currentItem = mountains[currentIdx];
|
|
17601
|
+
if (currentItem.size >= currentSize && currentItem.size < 2 * currentSize) {
|
|
17602
|
+
peaks.push(currentItem.peak);
|
|
17603
|
+
currentIdx -= 1;
|
|
17604
|
+
}
|
|
17605
|
+
else {
|
|
17606
|
+
peaks.push(null);
|
|
17607
|
+
}
|
|
17608
|
+
// move to the next index.
|
|
17609
|
+
currentSize = currentSize << 1;
|
|
17610
|
+
}
|
|
17611
|
+
return { peaks };
|
|
17612
|
+
}
|
|
17613
|
+
}
|
|
17614
|
+
/** An internal helper structure to represent a merkle trie for MMR. */
|
|
17615
|
+
class Mountain {
|
|
17616
|
+
peak;
|
|
17617
|
+
size;
|
|
17618
|
+
constructor(peak, size) {
|
|
17619
|
+
this.peak = peak;
|
|
17620
|
+
this.size = size;
|
|
17621
|
+
}
|
|
17622
|
+
static fromPeak(peak, size) {
|
|
17623
|
+
return new Mountain(peak, size);
|
|
17624
|
+
}
|
|
17625
|
+
static fromChildren(hasher, children) {
|
|
17626
|
+
const [left, right] = children;
|
|
17627
|
+
const peak = hasher.hashConcat(left.peak, right.peak);
|
|
17628
|
+
const size = left.size + right.size;
|
|
17629
|
+
return new Mountain(peak, size);
|
|
17630
|
+
}
|
|
17631
|
+
/** Merge with another montain of the same size. */
|
|
17632
|
+
mergeWith(hasher, other) {
|
|
17633
|
+
return Mountain.fromChildren(hasher, [this, other]);
|
|
17634
|
+
}
|
|
17635
|
+
toString() {
|
|
17636
|
+
return `${this.size} @ ${this.peak}`;
|
|
17637
|
+
}
|
|
17638
|
+
}
|
|
17639
|
+
|
|
17640
|
+
var index$5 = /*#__PURE__*/Object.freeze({
|
|
17641
|
+
__proto__: null,
|
|
17642
|
+
MerkleMountainRange: MerkleMountainRange
|
|
17643
|
+
});
|
|
17644
|
+
|
|
17583
17645
|
class DebuggerAdapter {
|
|
17584
17646
|
pvm;
|
|
17585
17647
|
constructor(useSbrkGas = false) {
|
|
17586
17648
|
this.pvm = new Interpreter({ useSbrkGas });
|
|
17587
17649
|
}
|
|
17588
|
-
// TODO [MaSi]: a temporary solution that is needed to implement host calls in PVM debugger
|
|
17589
|
-
getInterpreter() {
|
|
17590
|
-
return this.pvm;
|
|
17591
|
-
}
|
|
17592
17650
|
resetGeneric(rawProgram, flatRegisters, initialGas) {
|
|
17593
17651
|
this.pvm.resetGeneric(rawProgram, 0, tryAsGas(initialGas), new Registers(flatRegisters));
|
|
17594
17652
|
}
|
|
@@ -17652,7 +17710,7 @@ class DebuggerAdapter {
|
|
|
17652
17710
|
}
|
|
17653
17711
|
}
|
|
17654
17712
|
|
|
17655
|
-
var index$
|
|
17713
|
+
var index$4 = /*#__PURE__*/Object.freeze({
|
|
17656
17714
|
__proto__: null,
|
|
17657
17715
|
AccumulationStateUpdate: AccumulationStateUpdate,
|
|
17658
17716
|
ArgsDecoder: ArgsDecoder,
|
|
@@ -17701,8 +17759,8 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
17701
17759
|
asOpaqueType: asOpaqueType,
|
|
17702
17760
|
assertEmpty: assertEmpty,
|
|
17703
17761
|
assertNever: assertNever,
|
|
17704
|
-
block: index$
|
|
17705
|
-
bytes: index$
|
|
17762
|
+
block: index$m,
|
|
17763
|
+
bytes: index$t,
|
|
17706
17764
|
check: check,
|
|
17707
17765
|
clampU64ToU32: clampU64ToU32,
|
|
17708
17766
|
createResults: createResults,
|
|
@@ -17711,14 +17769,15 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
17711
17769
|
extractCodeAndMetadata: extractCodeAndMetadata,
|
|
17712
17770
|
getServiceId: getServiceId,
|
|
17713
17771
|
getServiceIdOrCurrent: getServiceIdOrCurrent,
|
|
17714
|
-
hash: index$
|
|
17772
|
+
hash: index$p,
|
|
17773
|
+
hostCallInfoAccount: codecServiceAccountInfoWithThresholdBalance,
|
|
17715
17774
|
inspect: inspect,
|
|
17716
17775
|
instructionArgumentTypeMap: instructionArgumentTypeMap,
|
|
17717
|
-
interpreter: index$
|
|
17776
|
+
interpreter: index$8,
|
|
17718
17777
|
isBrowser: isBrowser,
|
|
17719
17778
|
lazyInspect: lazyInspect,
|
|
17720
17779
|
measure: measure,
|
|
17721
|
-
numbers: index$
|
|
17780
|
+
numbers: index$s,
|
|
17722
17781
|
resultToString: resultToString,
|
|
17723
17782
|
seeThrough: seeThrough,
|
|
17724
17783
|
slotsToPreimageStatus: slotsToPreimageStatus,
|
|
@@ -17765,7 +17824,7 @@ function hashToNumberSequence(blake2b, entropy, length) {
|
|
|
17765
17824
|
return result;
|
|
17766
17825
|
}
|
|
17767
17826
|
|
|
17768
|
-
var index$
|
|
17827
|
+
var index$3 = /*#__PURE__*/Object.freeze({
|
|
17769
17828
|
__proto__: null,
|
|
17770
17829
|
fisherYatesShuffle: fisherYatesShuffle
|
|
17771
17830
|
});
|
|
@@ -17998,7 +18057,7 @@ class JsonCoreStatistics {
|
|
|
17998
18057
|
extrinsic_size: "number",
|
|
17999
18058
|
extrinsic_count: "number",
|
|
18000
18059
|
bundle_size: "number",
|
|
18001
|
-
gas_used: json.
|
|
18060
|
+
gas_used: json.fromBigInt(tryAsServiceGas),
|
|
18002
18061
|
}, ({ da_load, popularity, imports, exports, extrinsic_size, extrinsic_count, bundle_size, gas_used }) => {
|
|
18003
18062
|
return CoreStatistics.create({
|
|
18004
18063
|
dataAvailabilityLoad: da_load,
|
|
@@ -18025,17 +18084,17 @@ class JsonServiceStatistics {
|
|
|
18025
18084
|
provided_count: "number",
|
|
18026
18085
|
provided_size: "number",
|
|
18027
18086
|
refinement_count: "number",
|
|
18028
|
-
refinement_gas_used: json.
|
|
18087
|
+
refinement_gas_used: json.fromBigInt(tryAsServiceGas),
|
|
18029
18088
|
imports: "number",
|
|
18030
18089
|
exports: "number",
|
|
18031
18090
|
extrinsic_size: "number",
|
|
18032
18091
|
extrinsic_count: "number",
|
|
18033
18092
|
accumulate_count: "number",
|
|
18034
|
-
accumulate_gas_used: json.
|
|
18093
|
+
accumulate_gas_used: json.fromBigInt(tryAsServiceGas),
|
|
18035
18094
|
...(Compatibility.isLessThan(GpVersion.V0_7_1)
|
|
18036
18095
|
? {
|
|
18037
18096
|
on_transfers_count: "number",
|
|
18038
|
-
on_transfers_gas_used: json.
|
|
18097
|
+
on_transfers_gas_used: json.fromBigInt(tryAsServiceGas),
|
|
18039
18098
|
}
|
|
18040
18099
|
: {}),
|
|
18041
18100
|
}, ({ provided_count, provided_size, refinement_count, refinement_gas_used, imports, exports, extrinsic_size, extrinsic_count, accumulate_count, accumulate_gas_used, on_transfers_count, on_transfers_gas_used, }) => {
|
|
@@ -18174,7 +18233,7 @@ const fullStateDumpFromJson = (spec) => json.object({
|
|
|
18174
18233
|
});
|
|
18175
18234
|
});
|
|
18176
18235
|
|
|
18177
|
-
var index$
|
|
18236
|
+
var index$2 = /*#__PURE__*/Object.freeze({
|
|
18178
18237
|
__proto__: null,
|
|
18179
18238
|
JsonCoreStatistics: JsonCoreStatistics,
|
|
18180
18239
|
JsonService: JsonService,
|
|
@@ -18192,6 +18251,65 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
18192
18251
|
validatorDataFromJson: validatorDataFromJson
|
|
18193
18252
|
});
|
|
18194
18253
|
|
|
18254
|
+
class StateKeyVal {
|
|
18255
|
+
static fromJson = {
|
|
18256
|
+
key: fromJson.bytesN(TRUNCATED_HASH_SIZE),
|
|
18257
|
+
value: fromJson.bytesBlob,
|
|
18258
|
+
};
|
|
18259
|
+
key;
|
|
18260
|
+
value;
|
|
18261
|
+
}
|
|
18262
|
+
class TestState {
|
|
18263
|
+
static fromJson = {
|
|
18264
|
+
state_root: fromJson.bytes32(),
|
|
18265
|
+
keyvals: json.array(StateKeyVal.fromJson),
|
|
18266
|
+
};
|
|
18267
|
+
static Codec = codec$1.object({
|
|
18268
|
+
state_root: codec$1.bytes(HASH_SIZE).asOpaque(),
|
|
18269
|
+
keyvals: codec$1.sequenceVarLen(codec$1.object({
|
|
18270
|
+
key: codec$1.bytes(TRUNCATED_HASH_SIZE),
|
|
18271
|
+
value: codec$1.blob,
|
|
18272
|
+
})),
|
|
18273
|
+
});
|
|
18274
|
+
state_root;
|
|
18275
|
+
keyvals;
|
|
18276
|
+
}
|
|
18277
|
+
class StateTransitionGenesis {
|
|
18278
|
+
static fromJson = {
|
|
18279
|
+
header: headerFromJson,
|
|
18280
|
+
state: TestState.fromJson,
|
|
18281
|
+
};
|
|
18282
|
+
static Codec = codec$1.object({
|
|
18283
|
+
header: Header.Codec,
|
|
18284
|
+
state: TestState.Codec,
|
|
18285
|
+
});
|
|
18286
|
+
header;
|
|
18287
|
+
state;
|
|
18288
|
+
}
|
|
18289
|
+
class StateTransition {
|
|
18290
|
+
static fromJson = {
|
|
18291
|
+
pre_state: TestState.fromJson,
|
|
18292
|
+
post_state: TestState.fromJson,
|
|
18293
|
+
block: blockFromJson(tinyChainSpec),
|
|
18294
|
+
};
|
|
18295
|
+
static Codec = codec$1.object({
|
|
18296
|
+
pre_state: TestState.Codec,
|
|
18297
|
+
block: Block.Codec,
|
|
18298
|
+
post_state: TestState.Codec,
|
|
18299
|
+
});
|
|
18300
|
+
pre_state;
|
|
18301
|
+
post_state;
|
|
18302
|
+
block;
|
|
18303
|
+
}
|
|
18304
|
+
|
|
18305
|
+
var index$1 = /*#__PURE__*/Object.freeze({
|
|
18306
|
+
__proto__: null,
|
|
18307
|
+
StateKeyVal: StateKeyVal,
|
|
18308
|
+
StateTransition: StateTransition,
|
|
18309
|
+
StateTransitionGenesis: StateTransitionGenesis,
|
|
18310
|
+
TestState: TestState
|
|
18311
|
+
});
|
|
18312
|
+
|
|
18195
18313
|
/** Helper function to create most used hashes in the block */
|
|
18196
18314
|
class TransitionHasher {
|
|
18197
18315
|
context;
|
|
@@ -18240,15 +18358,6 @@ class TransitionHasher {
|
|
|
18240
18358
|
const encoded = BytesBlob.blobFromParts([et.raw, ep.raw, eg.raw, ea.raw, ed.raw]);
|
|
18241
18359
|
return new WithHashAndBytes(this.blake2b.hashBytes(encoded).asOpaque(), extrinsicView, encoded);
|
|
18242
18360
|
}
|
|
18243
|
-
/** Creates hash for given WorkPackage */
|
|
18244
|
-
workPackage(workPackage) {
|
|
18245
|
-
return this.encode(WorkPackage.Codec, workPackage);
|
|
18246
|
-
}
|
|
18247
|
-
encode(codec, data) {
|
|
18248
|
-
// TODO [ToDr] Use already allocated encoding destination and hash bytes from some arena.
|
|
18249
|
-
const encoded = Encoder.encodeObject(codec, data, this.context);
|
|
18250
|
-
return new WithHashAndBytes(this.blake2b.hashBytes(encoded).asOpaque(), data, encoded);
|
|
18251
|
-
}
|
|
18252
18361
|
}
|
|
18253
18362
|
|
|
18254
18363
|
var PreimagesErrorCode;
|
|
@@ -18257,7 +18366,6 @@ var PreimagesErrorCode;
|
|
|
18257
18366
|
PreimagesErrorCode["PreimagesNotSortedUnique"] = "preimages_not_sorted_unique";
|
|
18258
18367
|
PreimagesErrorCode["AccountNotFound"] = "account_not_found";
|
|
18259
18368
|
})(PreimagesErrorCode || (PreimagesErrorCode = {}));
|
|
18260
|
-
// TODO [SeKo] consider whether this module is the right place to remove expired preimages
|
|
18261
18369
|
class Preimages {
|
|
18262
18370
|
state;
|
|
18263
18371
|
blake2b;
|
|
@@ -18303,6 +18411,7 @@ class Preimages {
|
|
|
18303
18411
|
updates.push(UpdatePreimage.provide({
|
|
18304
18412
|
preimage: PreimageItem.create({ hash, blob }),
|
|
18305
18413
|
slot,
|
|
18414
|
+
providedFor: requester,
|
|
18306
18415
|
}));
|
|
18307
18416
|
pendingChanges.set(requester, updates);
|
|
18308
18417
|
}
|
|
@@ -18319,4 +18428,4 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18319
18428
|
TransitionHasher: TransitionHasher
|
|
18320
18429
|
});
|
|
18321
18430
|
|
|
18322
|
-
export { index$
|
|
18431
|
+
export { index$m as block, index$k as block_json, index$t as bytes, index$r as codec, index$o as collections, index$n as config, index$i as config_node, index$q as crypto, index$e as database, index$d as erasure_coding, index$b as fuzz_proto, index$p as hash, index$6 as jam_host_calls, index$l as json_parser, index$j as logger, index$5 as mmr, index$s as numbers, index$u as ordering, index$4 as pvm, index$7 as pvm_host_calls, index$8 as pvm_interpreter, index$9 as pvm_program, index$a as pvm_spi_decoder, index$3 as shuffling, index$h as state, index$2 as state_json, index$f as state_merkleization, index$1 as state_vectors, index as transition, index$g as trie, index$v as utils };
|