@kevisual/api 0.0.49 → 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.js CHANGED
@@ -18,29 +18,1832 @@ var customRandom = (alphabet, defaultSize, getRandom) => {
18
18
  };
19
19
  var customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size | 0, random);
20
20
 
21
+ // node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
22
+ var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
23
+ var _32n = /* @__PURE__ */ BigInt(32);
24
+ function fromBig(n, le = false) {
25
+ if (le)
26
+ return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) };
27
+ return { h: Number(n >> _32n & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
28
+ }
29
+ function split(lst, le = false) {
30
+ const len = lst.length;
31
+ let Ah = new Uint32Array(len);
32
+ let Al = new Uint32Array(len);
33
+ for (let i = 0;i < len; i++) {
34
+ const { h, l } = fromBig(lst[i], le);
35
+ [Ah[i], Al[i]] = [h, l];
36
+ }
37
+ return [Ah, Al];
38
+ }
39
+ var rotlSH = (h, l, s) => h << s | l >>> 32 - s;
40
+ var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
41
+ var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
42
+ var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
43
+
44
+ // node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/utils.js
45
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
46
+ function isBytes(a) {
47
+ return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
48
+ }
49
+ function anumber(n, title = "") {
50
+ if (!Number.isSafeInteger(n) || n < 0) {
51
+ const prefix = title && `"${title}" `;
52
+ throw new Error(`${prefix}expected integer >= 0, got ${n}`);
53
+ }
54
+ }
55
+ function abytes(value, length, title = "") {
56
+ const bytes = isBytes(value);
57
+ const len = value?.length;
58
+ const needsLen = length !== undefined;
59
+ if (!bytes || needsLen && len !== length) {
60
+ const prefix = title && `"${title}" `;
61
+ const ofLen = needsLen ? ` of length ${length}` : "";
62
+ const got = bytes ? `length=${len}` : `type=${typeof value}`;
63
+ throw new Error(prefix + "expected Uint8Array" + ofLen + ", got " + got);
64
+ }
65
+ return value;
66
+ }
67
+ function aexists(instance, checkFinished = true) {
68
+ if (instance.destroyed)
69
+ throw new Error("Hash instance has been destroyed");
70
+ if (checkFinished && instance.finished)
71
+ throw new Error("Hash#digest() has already been called");
72
+ }
73
+ function aoutput(out, instance) {
74
+ abytes(out, undefined, "digestInto() output");
75
+ const min = instance.outputLen;
76
+ if (out.length < min) {
77
+ throw new Error('"digestInto() output" expected to be of length >=' + min);
78
+ }
79
+ }
80
+ function u32(arr) {
81
+ return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
82
+ }
83
+ function clean(...arrays) {
84
+ for (let i = 0;i < arrays.length; i++) {
85
+ arrays[i].fill(0);
86
+ }
87
+ }
88
+ var isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)();
89
+ function byteSwap(word) {
90
+ return word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255;
91
+ }
92
+ function byteSwap32(arr) {
93
+ for (let i = 0;i < arr.length; i++) {
94
+ arr[i] = byteSwap(arr[i]);
95
+ }
96
+ return arr;
97
+ }
98
+ var swap32IfBE = isLE ? (u) => u : byteSwap32;
99
+ function createHasher(hashCons, info = {}) {
100
+ const hashC = (msg, opts) => hashCons(opts).update(msg).digest();
101
+ const tmp = hashCons(undefined);
102
+ hashC.outputLen = tmp.outputLen;
103
+ hashC.blockLen = tmp.blockLen;
104
+ hashC.create = (opts) => hashCons(opts);
105
+ Object.assign(hashC, info);
106
+ return Object.freeze(hashC);
107
+ }
108
+ var oidNist = (suffix) => ({
109
+ oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix])
110
+ });
111
+
112
+ // node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/sha3.js
113
+ var _0n = BigInt(0);
114
+ var _1n = BigInt(1);
115
+ var _2n = BigInt(2);
116
+ var _7n = BigInt(7);
117
+ var _256n = BigInt(256);
118
+ var _0x71n = BigInt(113);
119
+ var SHA3_PI = [];
120
+ var SHA3_ROTL = [];
121
+ var _SHA3_IOTA = [];
122
+ for (let round = 0, R = _1n, x = 1, y = 0;round < 24; round++) {
123
+ [x, y] = [y, (2 * x + 3 * y) % 5];
124
+ SHA3_PI.push(2 * (5 * y + x));
125
+ SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64);
126
+ let t = _0n;
127
+ for (let j = 0;j < 7; j++) {
128
+ R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n;
129
+ if (R & _2n)
130
+ t ^= _1n << (_1n << BigInt(j)) - _1n;
131
+ }
132
+ _SHA3_IOTA.push(t);
133
+ }
134
+ var IOTAS = split(_SHA3_IOTA, true);
135
+ var SHA3_IOTA_H = IOTAS[0];
136
+ var SHA3_IOTA_L = IOTAS[1];
137
+ var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);
138
+ var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);
139
+ function keccakP(s, rounds = 24) {
140
+ const B = new Uint32Array(5 * 2);
141
+ for (let round = 24 - rounds;round < 24; round++) {
142
+ for (let x = 0;x < 10; x++)
143
+ B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
144
+ for (let x = 0;x < 10; x += 2) {
145
+ const idx1 = (x + 8) % 10;
146
+ const idx0 = (x + 2) % 10;
147
+ const B0 = B[idx0];
148
+ const B1 = B[idx0 + 1];
149
+ const Th = rotlH(B0, B1, 1) ^ B[idx1];
150
+ const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
151
+ for (let y = 0;y < 50; y += 10) {
152
+ s[x + y] ^= Th;
153
+ s[x + y + 1] ^= Tl;
154
+ }
155
+ }
156
+ let curH = s[2];
157
+ let curL = s[3];
158
+ for (let t = 0;t < 24; t++) {
159
+ const shift = SHA3_ROTL[t];
160
+ const Th = rotlH(curH, curL, shift);
161
+ const Tl = rotlL(curH, curL, shift);
162
+ const PI = SHA3_PI[t];
163
+ curH = s[PI];
164
+ curL = s[PI + 1];
165
+ s[PI] = Th;
166
+ s[PI + 1] = Tl;
167
+ }
168
+ for (let y = 0;y < 50; y += 10) {
169
+ for (let x = 0;x < 10; x++)
170
+ B[x] = s[y + x];
171
+ for (let x = 0;x < 10; x++)
172
+ s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];
173
+ }
174
+ s[0] ^= SHA3_IOTA_H[round];
175
+ s[1] ^= SHA3_IOTA_L[round];
176
+ }
177
+ clean(B);
178
+ }
179
+
180
+ class Keccak {
181
+ state;
182
+ pos = 0;
183
+ posOut = 0;
184
+ finished = false;
185
+ state32;
186
+ destroyed = false;
187
+ blockLen;
188
+ suffix;
189
+ outputLen;
190
+ enableXOF = false;
191
+ rounds;
192
+ constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
193
+ this.blockLen = blockLen;
194
+ this.suffix = suffix;
195
+ this.outputLen = outputLen;
196
+ this.enableXOF = enableXOF;
197
+ this.rounds = rounds;
198
+ anumber(outputLen, "outputLen");
199
+ if (!(0 < blockLen && blockLen < 200))
200
+ throw new Error("only keccak-f1600 function is supported");
201
+ this.state = new Uint8Array(200);
202
+ this.state32 = u32(this.state);
203
+ }
204
+ clone() {
205
+ return this._cloneInto();
206
+ }
207
+ keccak() {
208
+ swap32IfBE(this.state32);
209
+ keccakP(this.state32, this.rounds);
210
+ swap32IfBE(this.state32);
211
+ this.posOut = 0;
212
+ this.pos = 0;
213
+ }
214
+ update(data) {
215
+ aexists(this);
216
+ abytes(data);
217
+ const { blockLen, state } = this;
218
+ const len = data.length;
219
+ for (let pos = 0;pos < len; ) {
220
+ const take = Math.min(blockLen - this.pos, len - pos);
221
+ for (let i = 0;i < take; i++)
222
+ state[this.pos++] ^= data[pos++];
223
+ if (this.pos === blockLen)
224
+ this.keccak();
225
+ }
226
+ return this;
227
+ }
228
+ finish() {
229
+ if (this.finished)
230
+ return;
231
+ this.finished = true;
232
+ const { state, suffix, pos, blockLen } = this;
233
+ state[pos] ^= suffix;
234
+ if ((suffix & 128) !== 0 && pos === blockLen - 1)
235
+ this.keccak();
236
+ state[blockLen - 1] ^= 128;
237
+ this.keccak();
238
+ }
239
+ writeInto(out) {
240
+ aexists(this, false);
241
+ abytes(out);
242
+ this.finish();
243
+ const bufferOut = this.state;
244
+ const { blockLen } = this;
245
+ for (let pos = 0, len = out.length;pos < len; ) {
246
+ if (this.posOut >= blockLen)
247
+ this.keccak();
248
+ const take = Math.min(blockLen - this.posOut, len - pos);
249
+ out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
250
+ this.posOut += take;
251
+ pos += take;
252
+ }
253
+ return out;
254
+ }
255
+ xofInto(out) {
256
+ if (!this.enableXOF)
257
+ throw new Error("XOF is not possible for this instance");
258
+ return this.writeInto(out);
259
+ }
260
+ xof(bytes) {
261
+ anumber(bytes);
262
+ return this.xofInto(new Uint8Array(bytes));
263
+ }
264
+ digestInto(out) {
265
+ aoutput(out, this);
266
+ if (this.finished)
267
+ throw new Error("digest() was already called");
268
+ this.writeInto(out);
269
+ this.destroy();
270
+ return out;
271
+ }
272
+ digest() {
273
+ return this.digestInto(new Uint8Array(this.outputLen));
274
+ }
275
+ destroy() {
276
+ this.destroyed = true;
277
+ clean(this.state);
278
+ }
279
+ _cloneInto(to) {
280
+ const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
281
+ to ||= new Keccak(blockLen, suffix, outputLen, enableXOF, rounds);
282
+ to.state32.set(this.state32);
283
+ to.pos = this.pos;
284
+ to.posOut = this.posOut;
285
+ to.finished = this.finished;
286
+ to.rounds = rounds;
287
+ to.suffix = suffix;
288
+ to.outputLen = outputLen;
289
+ to.enableXOF = enableXOF;
290
+ to.destroyed = this.destroyed;
291
+ return to;
292
+ }
293
+ }
294
+ var genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info);
295
+ var sha3_512 = /* @__PURE__ */ genKeccak(6, 72, 64, /* @__PURE__ */ oidNist(10));
296
+
297
+ // node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs
298
+ var isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i;
299
+ var mathceil = Math.ceil;
300
+ var mathfloor = Math.floor;
301
+ var bignumberError = "[BigNumber Error] ";
302
+ var tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: ";
303
+ var BASE = 100000000000000;
304
+ var LOG_BASE = 14;
305
+ var MAX_SAFE_INTEGER = 9007199254740991;
306
+ var POWS_TEN = [1, 10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 10000000000, 100000000000, 1000000000000, 10000000000000];
307
+ var SQRT_BASE = 1e7;
308
+ var MAX = 1e9;
309
+ function clone(configObject) {
310
+ var div, convertBase, parseNumeric, P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null }, ONE = new BigNumber(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {
311
+ prefix: "",
312
+ groupSize: 3,
313
+ secondaryGroupSize: 0,
314
+ groupSeparator: ",",
315
+ decimalSeparator: ".",
316
+ fractionGroupSize: 0,
317
+ fractionGroupSeparator: " ",
318
+ suffix: ""
319
+ }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true;
320
+ function BigNumber(v, b) {
321
+ var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;
322
+ if (!(x instanceof BigNumber))
323
+ return new BigNumber(v, b);
324
+ if (b == null) {
325
+ if (v && v._isBigNumber === true) {
326
+ x.s = v.s;
327
+ if (!v.c || v.e > MAX_EXP) {
328
+ x.c = x.e = null;
329
+ } else if (v.e < MIN_EXP) {
330
+ x.c = [x.e = 0];
331
+ } else {
332
+ x.e = v.e;
333
+ x.c = v.c.slice();
334
+ }
335
+ return;
336
+ }
337
+ if ((isNum = typeof v == "number") && v * 0 == 0) {
338
+ x.s = 1 / v < 0 ? (v = -v, -1) : 1;
339
+ if (v === ~~v) {
340
+ for (e = 0, i = v;i >= 10; i /= 10, e++)
341
+ ;
342
+ if (e > MAX_EXP) {
343
+ x.c = x.e = null;
344
+ } else {
345
+ x.e = e;
346
+ x.c = [v];
347
+ }
348
+ return;
349
+ }
350
+ str = String(v);
351
+ } else {
352
+ if (!isNumeric.test(str = String(v)))
353
+ return parseNumeric(x, str, isNum);
354
+ x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
355
+ }
356
+ if ((e = str.indexOf(".")) > -1)
357
+ str = str.replace(".", "");
358
+ if ((i = str.search(/e/i)) > 0) {
359
+ if (e < 0)
360
+ e = i;
361
+ e += +str.slice(i + 1);
362
+ str = str.substring(0, i);
363
+ } else if (e < 0) {
364
+ e = str.length;
365
+ }
366
+ } else {
367
+ intCheck(b, 2, ALPHABET.length, "Base");
368
+ if (b == 10 && alphabetHasNormalDecimalDigits) {
369
+ x = new BigNumber(v);
370
+ return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
371
+ }
372
+ str = String(v);
373
+ if (isNum = typeof v == "number") {
374
+ if (v * 0 != 0)
375
+ return parseNumeric(x, str, isNum, b);
376
+ x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
377
+ if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) {
378
+ throw Error(tooManyDigits + v);
379
+ }
380
+ } else {
381
+ x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
382
+ }
383
+ alphabet = ALPHABET.slice(0, b);
384
+ e = i = 0;
385
+ for (len = str.length;i < len; i++) {
386
+ if (alphabet.indexOf(c = str.charAt(i)) < 0) {
387
+ if (c == ".") {
388
+ if (i > e) {
389
+ e = len;
390
+ continue;
391
+ }
392
+ } else if (!caseChanged) {
393
+ if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {
394
+ caseChanged = true;
395
+ i = -1;
396
+ e = 0;
397
+ continue;
398
+ }
399
+ }
400
+ return parseNumeric(x, String(v), isNum, b);
401
+ }
402
+ }
403
+ isNum = false;
404
+ str = convertBase(str, b, 10, x.s);
405
+ if ((e = str.indexOf(".")) > -1)
406
+ str = str.replace(".", "");
407
+ else
408
+ e = str.length;
409
+ }
410
+ for (i = 0;str.charCodeAt(i) === 48; i++)
411
+ ;
412
+ for (len = str.length;str.charCodeAt(--len) === 48; )
413
+ ;
414
+ if (str = str.slice(i, ++len)) {
415
+ len -= i;
416
+ if (isNum && BigNumber.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
417
+ throw Error(tooManyDigits + x.s * v);
418
+ }
419
+ if ((e = e - i - 1) > MAX_EXP) {
420
+ x.c = x.e = null;
421
+ } else if (e < MIN_EXP) {
422
+ x.c = [x.e = 0];
423
+ } else {
424
+ x.e = e;
425
+ x.c = [];
426
+ i = (e + 1) % LOG_BASE;
427
+ if (e < 0)
428
+ i += LOG_BASE;
429
+ if (i < len) {
430
+ if (i)
431
+ x.c.push(+str.slice(0, i));
432
+ for (len -= LOG_BASE;i < len; ) {
433
+ x.c.push(+str.slice(i, i += LOG_BASE));
434
+ }
435
+ i = LOG_BASE - (str = str.slice(i)).length;
436
+ } else {
437
+ i -= len;
438
+ }
439
+ for (;i--; str += "0")
440
+ ;
441
+ x.c.push(+str);
442
+ }
443
+ } else {
444
+ x.c = [x.e = 0];
445
+ }
446
+ }
447
+ BigNumber.clone = clone;
448
+ BigNumber.ROUND_UP = 0;
449
+ BigNumber.ROUND_DOWN = 1;
450
+ BigNumber.ROUND_CEIL = 2;
451
+ BigNumber.ROUND_FLOOR = 3;
452
+ BigNumber.ROUND_HALF_UP = 4;
453
+ BigNumber.ROUND_HALF_DOWN = 5;
454
+ BigNumber.ROUND_HALF_EVEN = 6;
455
+ BigNumber.ROUND_HALF_CEIL = 7;
456
+ BigNumber.ROUND_HALF_FLOOR = 8;
457
+ BigNumber.EUCLID = 9;
458
+ BigNumber.config = BigNumber.set = function(obj) {
459
+ var p, v;
460
+ if (obj != null) {
461
+ if (typeof obj == "object") {
462
+ if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) {
463
+ v = obj[p];
464
+ intCheck(v, 0, MAX, p);
465
+ DECIMAL_PLACES = v;
466
+ }
467
+ if (obj.hasOwnProperty(p = "ROUNDING_MODE")) {
468
+ v = obj[p];
469
+ intCheck(v, 0, 8, p);
470
+ ROUNDING_MODE = v;
471
+ }
472
+ if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) {
473
+ v = obj[p];
474
+ if (v && v.pop) {
475
+ intCheck(v[0], -MAX, 0, p);
476
+ intCheck(v[1], 0, MAX, p);
477
+ TO_EXP_NEG = v[0];
478
+ TO_EXP_POS = v[1];
479
+ } else {
480
+ intCheck(v, -MAX, MAX, p);
481
+ TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
482
+ }
483
+ }
484
+ if (obj.hasOwnProperty(p = "RANGE")) {
485
+ v = obj[p];
486
+ if (v && v.pop) {
487
+ intCheck(v[0], -MAX, -1, p);
488
+ intCheck(v[1], 1, MAX, p);
489
+ MIN_EXP = v[0];
490
+ MAX_EXP = v[1];
491
+ } else {
492
+ intCheck(v, -MAX, MAX, p);
493
+ if (v) {
494
+ MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
495
+ } else {
496
+ throw Error(bignumberError + p + " cannot be zero: " + v);
497
+ }
498
+ }
499
+ }
500
+ if (obj.hasOwnProperty(p = "CRYPTO")) {
501
+ v = obj[p];
502
+ if (v === !!v) {
503
+ if (v) {
504
+ if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
505
+ CRYPTO = v;
506
+ } else {
507
+ CRYPTO = !v;
508
+ throw Error(bignumberError + "crypto unavailable");
509
+ }
510
+ } else {
511
+ CRYPTO = v;
512
+ }
513
+ } else {
514
+ throw Error(bignumberError + p + " not true or false: " + v);
515
+ }
516
+ }
517
+ if (obj.hasOwnProperty(p = "MODULO_MODE")) {
518
+ v = obj[p];
519
+ intCheck(v, 0, 9, p);
520
+ MODULO_MODE = v;
521
+ }
522
+ if (obj.hasOwnProperty(p = "POW_PRECISION")) {
523
+ v = obj[p];
524
+ intCheck(v, 0, MAX, p);
525
+ POW_PRECISION = v;
526
+ }
527
+ if (obj.hasOwnProperty(p = "FORMAT")) {
528
+ v = obj[p];
529
+ if (typeof v == "object")
530
+ FORMAT = v;
531
+ else
532
+ throw Error(bignumberError + p + " not an object: " + v);
533
+ }
534
+ if (obj.hasOwnProperty(p = "ALPHABET")) {
535
+ v = obj[p];
536
+ if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
537
+ alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789";
538
+ ALPHABET = v;
539
+ } else {
540
+ throw Error(bignumberError + p + " invalid: " + v);
541
+ }
542
+ }
543
+ } else {
544
+ throw Error(bignumberError + "Object expected: " + obj);
545
+ }
546
+ }
547
+ return {
548
+ DECIMAL_PLACES,
549
+ ROUNDING_MODE,
550
+ EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
551
+ RANGE: [MIN_EXP, MAX_EXP],
552
+ CRYPTO,
553
+ MODULO_MODE,
554
+ POW_PRECISION,
555
+ FORMAT,
556
+ ALPHABET
557
+ };
558
+ };
559
+ BigNumber.isBigNumber = function(v) {
560
+ if (!v || v._isBigNumber !== true)
561
+ return false;
562
+ if (!BigNumber.DEBUG)
563
+ return true;
564
+ var i, n, c = v.c, e = v.e, s = v.s;
565
+ out:
566
+ if ({}.toString.call(c) == "[object Array]") {
567
+ if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
568
+ if (c[0] === 0) {
569
+ if (e === 0 && c.length === 1)
570
+ return true;
571
+ break out;
572
+ }
573
+ i = (e + 1) % LOG_BASE;
574
+ if (i < 1)
575
+ i += LOG_BASE;
576
+ if (String(c[0]).length == i) {
577
+ for (i = 0;i < c.length; i++) {
578
+ n = c[i];
579
+ if (n < 0 || n >= BASE || n !== mathfloor(n))
580
+ break out;
581
+ }
582
+ if (n !== 0)
583
+ return true;
584
+ }
585
+ }
586
+ } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
587
+ return true;
588
+ }
589
+ throw Error(bignumberError + "Invalid BigNumber: " + v);
590
+ };
591
+ BigNumber.maximum = BigNumber.max = function() {
592
+ return maxOrMin(arguments, -1);
593
+ };
594
+ BigNumber.minimum = BigNumber.min = function() {
595
+ return maxOrMin(arguments, 1);
596
+ };
597
+ BigNumber.random = function() {
598
+ var pow2_53 = 9007199254740992;
599
+ var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {
600
+ return mathfloor(Math.random() * pow2_53);
601
+ } : function() {
602
+ return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
603
+ };
604
+ return function(dp) {
605
+ var a, b, e, k, v, i = 0, c = [], rand = new BigNumber(ONE);
606
+ if (dp == null)
607
+ dp = DECIMAL_PLACES;
608
+ else
609
+ intCheck(dp, 0, MAX);
610
+ k = mathceil(dp / LOG_BASE);
611
+ if (CRYPTO) {
612
+ if (crypto.getRandomValues) {
613
+ a = crypto.getRandomValues(new Uint32Array(k *= 2));
614
+ for (;i < k; ) {
615
+ v = a[i] * 131072 + (a[i + 1] >>> 11);
616
+ if (v >= 9000000000000000) {
617
+ b = crypto.getRandomValues(new Uint32Array(2));
618
+ a[i] = b[0];
619
+ a[i + 1] = b[1];
620
+ } else {
621
+ c.push(v % 100000000000000);
622
+ i += 2;
623
+ }
624
+ }
625
+ i = k / 2;
626
+ } else if (crypto.randomBytes) {
627
+ a = crypto.randomBytes(k *= 7);
628
+ for (;i < k; ) {
629
+ v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
630
+ if (v >= 9000000000000000) {
631
+ crypto.randomBytes(7).copy(a, i);
632
+ } else {
633
+ c.push(v % 100000000000000);
634
+ i += 7;
635
+ }
636
+ }
637
+ i = k / 7;
638
+ } else {
639
+ CRYPTO = false;
640
+ throw Error(bignumberError + "crypto unavailable");
641
+ }
642
+ }
643
+ if (!CRYPTO) {
644
+ for (;i < k; ) {
645
+ v = random53bitInt();
646
+ if (v < 9000000000000000)
647
+ c[i++] = v % 100000000000000;
648
+ }
649
+ }
650
+ k = c[--i];
651
+ dp %= LOG_BASE;
652
+ if (k && dp) {
653
+ v = POWS_TEN[LOG_BASE - dp];
654
+ c[i] = mathfloor(k / v) * v;
655
+ }
656
+ for (;c[i] === 0; c.pop(), i--)
657
+ ;
658
+ if (i < 0) {
659
+ c = [e = 0];
660
+ } else {
661
+ for (e = -1;c[0] === 0; c.splice(0, 1), e -= LOG_BASE)
662
+ ;
663
+ for (i = 1, v = c[0];v >= 10; v /= 10, i++)
664
+ ;
665
+ if (i < LOG_BASE)
666
+ e -= LOG_BASE - i;
667
+ }
668
+ rand.e = e;
669
+ rand.c = c;
670
+ return rand;
671
+ };
672
+ }();
673
+ BigNumber.sum = function() {
674
+ var i = 1, args = arguments, sum = new BigNumber(args[0]);
675
+ for (;i < args.length; )
676
+ sum = sum.plus(args[i++]);
677
+ return sum;
678
+ };
679
+ convertBase = function() {
680
+ var decimal = "0123456789";
681
+ function toBaseOut(str, baseIn, baseOut, alphabet) {
682
+ var j, arr = [0], arrL, i = 0, len = str.length;
683
+ for (;i < len; ) {
684
+ for (arrL = arr.length;arrL--; arr[arrL] *= baseIn)
685
+ ;
686
+ arr[0] += alphabet.indexOf(str.charAt(i++));
687
+ for (j = 0;j < arr.length; j++) {
688
+ if (arr[j] > baseOut - 1) {
689
+ if (arr[j + 1] == null)
690
+ arr[j + 1] = 0;
691
+ arr[j + 1] += arr[j] / baseOut | 0;
692
+ arr[j] %= baseOut;
693
+ }
694
+ }
695
+ }
696
+ return arr.reverse();
697
+ }
698
+ return function(str, baseIn, baseOut, sign, callerIsToString) {
699
+ var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;
700
+ if (i >= 0) {
701
+ k = POW_PRECISION;
702
+ POW_PRECISION = 0;
703
+ str = str.replace(".", "");
704
+ y = new BigNumber(baseIn);
705
+ x = y.pow(str.length - i);
706
+ POW_PRECISION = k;
707
+ y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, "0"), 10, baseOut, decimal);
708
+ y.e = y.c.length;
709
+ }
710
+ xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));
711
+ e = k = xc.length;
712
+ for (;xc[--k] == 0; xc.pop())
713
+ ;
714
+ if (!xc[0])
715
+ return alphabet.charAt(0);
716
+ if (i < 0) {
717
+ --e;
718
+ } else {
719
+ x.c = xc;
720
+ x.e = e;
721
+ x.s = sign;
722
+ x = div(x, y, dp, rm, baseOut);
723
+ xc = x.c;
724
+ r = x.r;
725
+ e = x.e;
726
+ }
727
+ d = e + dp + 1;
728
+ i = xc[d];
729
+ k = baseOut / 2;
730
+ r = r || d < 0 || xc[d + 1] != null;
731
+ r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));
732
+ if (d < 1 || !xc[0]) {
733
+ str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
734
+ } else {
735
+ xc.length = d;
736
+ if (r) {
737
+ for (--baseOut;++xc[--d] > baseOut; ) {
738
+ xc[d] = 0;
739
+ if (!d) {
740
+ ++e;
741
+ xc = [1].concat(xc);
742
+ }
743
+ }
744
+ }
745
+ for (k = xc.length;!xc[--k]; )
746
+ ;
747
+ for (i = 0, str = "";i <= k; str += alphabet.charAt(xc[i++]))
748
+ ;
749
+ str = toFixedPoint(str, e, alphabet.charAt(0));
750
+ }
751
+ return str;
752
+ };
753
+ }();
754
+ div = function() {
755
+ function multiply(x, k, base) {
756
+ var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;
757
+ for (x = x.slice();i--; ) {
758
+ xlo = x[i] % SQRT_BASE;
759
+ xhi = x[i] / SQRT_BASE | 0;
760
+ m = khi * xlo + xhi * klo;
761
+ temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;
762
+ carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
763
+ x[i] = temp % base;
764
+ }
765
+ if (carry)
766
+ x = [carry].concat(x);
767
+ return x;
768
+ }
769
+ function compare(a, b, aL, bL) {
770
+ var i, cmp;
771
+ if (aL != bL) {
772
+ cmp = aL > bL ? 1 : -1;
773
+ } else {
774
+ for (i = cmp = 0;i < aL; i++) {
775
+ if (a[i] != b[i]) {
776
+ cmp = a[i] > b[i] ? 1 : -1;
777
+ break;
778
+ }
779
+ }
780
+ }
781
+ return cmp;
782
+ }
783
+ function subtract(a, b, aL, base) {
784
+ var i = 0;
785
+ for (;aL--; ) {
786
+ a[aL] -= i;
787
+ i = a[aL] < b[aL] ? 1 : 0;
788
+ a[aL] = i * base + a[aL] - b[aL];
789
+ }
790
+ for (;!a[0] && a.length > 1; a.splice(0, 1))
791
+ ;
792
+ }
793
+ return function(x, y, dp, rm, base) {
794
+ var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;
795
+ if (!xc || !xc[0] || !yc || !yc[0]) {
796
+ return new BigNumber(!x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0);
797
+ }
798
+ q = new BigNumber(s);
799
+ qc = q.c = [];
800
+ e = x.e - y.e;
801
+ s = dp + e + 1;
802
+ if (!base) {
803
+ base = BASE;
804
+ e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
805
+ s = s / LOG_BASE | 0;
806
+ }
807
+ for (i = 0;yc[i] == (xc[i] || 0); i++)
808
+ ;
809
+ if (yc[i] > (xc[i] || 0))
810
+ e--;
811
+ if (s < 0) {
812
+ qc.push(1);
813
+ more = true;
814
+ } else {
815
+ xL = xc.length;
816
+ yL = yc.length;
817
+ i = 0;
818
+ s += 2;
819
+ n = mathfloor(base / (yc[0] + 1));
820
+ if (n > 1) {
821
+ yc = multiply(yc, n, base);
822
+ xc = multiply(xc, n, base);
823
+ yL = yc.length;
824
+ xL = xc.length;
825
+ }
826
+ xi = yL;
827
+ rem = xc.slice(0, yL);
828
+ remL = rem.length;
829
+ for (;remL < yL; rem[remL++] = 0)
830
+ ;
831
+ yz = yc.slice();
832
+ yz = [0].concat(yz);
833
+ yc0 = yc[0];
834
+ if (yc[1] >= base / 2)
835
+ yc0++;
836
+ do {
837
+ n = 0;
838
+ cmp = compare(yc, rem, yL, remL);
839
+ if (cmp < 0) {
840
+ rem0 = rem[0];
841
+ if (yL != remL)
842
+ rem0 = rem0 * base + (rem[1] || 0);
843
+ n = mathfloor(rem0 / yc0);
844
+ if (n > 1) {
845
+ if (n >= base)
846
+ n = base - 1;
847
+ prod = multiply(yc, n, base);
848
+ prodL = prod.length;
849
+ remL = rem.length;
850
+ while (compare(prod, rem, prodL, remL) == 1) {
851
+ n--;
852
+ subtract(prod, yL < prodL ? yz : yc, prodL, base);
853
+ prodL = prod.length;
854
+ cmp = 1;
855
+ }
856
+ } else {
857
+ if (n == 0) {
858
+ cmp = n = 1;
859
+ }
860
+ prod = yc.slice();
861
+ prodL = prod.length;
862
+ }
863
+ if (prodL < remL)
864
+ prod = [0].concat(prod);
865
+ subtract(rem, prod, remL, base);
866
+ remL = rem.length;
867
+ if (cmp == -1) {
868
+ while (compare(yc, rem, yL, remL) < 1) {
869
+ n++;
870
+ subtract(rem, yL < remL ? yz : yc, remL, base);
871
+ remL = rem.length;
872
+ }
873
+ }
874
+ } else if (cmp === 0) {
875
+ n++;
876
+ rem = [0];
877
+ }
878
+ qc[i++] = n;
879
+ if (rem[0]) {
880
+ rem[remL++] = xc[xi] || 0;
881
+ } else {
882
+ rem = [xc[xi]];
883
+ remL = 1;
884
+ }
885
+ } while ((xi++ < xL || rem[0] != null) && s--);
886
+ more = rem[0] != null;
887
+ if (!qc[0])
888
+ qc.splice(0, 1);
889
+ }
890
+ if (base == BASE) {
891
+ for (i = 1, s = qc[0];s >= 10; s /= 10, i++)
892
+ ;
893
+ round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
894
+ } else {
895
+ q.e = e;
896
+ q.r = +more;
897
+ }
898
+ return q;
899
+ };
900
+ }();
901
+ function format(n, i, rm, id) {
902
+ var c0, e, ne, len, str;
903
+ if (rm == null)
904
+ rm = ROUNDING_MODE;
905
+ else
906
+ intCheck(rm, 0, 8);
907
+ if (!n.c)
908
+ return n.toString();
909
+ c0 = n.c[0];
910
+ ne = n.e;
911
+ if (i == null) {
912
+ str = coeffToString(n.c);
913
+ str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0");
914
+ } else {
915
+ n = round(new BigNumber(n), i, rm);
916
+ e = n.e;
917
+ str = coeffToString(n.c);
918
+ len = str.length;
919
+ if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
920
+ for (;len < i; str += "0", len++)
921
+ ;
922
+ str = toExponential(str, e);
923
+ } else {
924
+ i -= ne + (id === 2 && e > ne);
925
+ str = toFixedPoint(str, e, "0");
926
+ if (e + 1 > len) {
927
+ if (--i > 0)
928
+ for (str += ".";i--; str += "0")
929
+ ;
930
+ } else {
931
+ i += e - len;
932
+ if (i > 0) {
933
+ if (e + 1 == len)
934
+ str += ".";
935
+ for (;i--; str += "0")
936
+ ;
937
+ }
938
+ }
939
+ }
940
+ }
941
+ return n.s < 0 && c0 ? "-" + str : str;
942
+ }
943
+ function maxOrMin(args, n) {
944
+ var k, y, i = 1, x = new BigNumber(args[0]);
945
+ for (;i < args.length; i++) {
946
+ y = new BigNumber(args[i]);
947
+ if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {
948
+ x = y;
949
+ }
950
+ }
951
+ return x;
952
+ }
953
+ function normalise(n, c, e) {
954
+ var i = 1, j = c.length;
955
+ for (;!c[--j]; c.pop())
956
+ ;
957
+ for (j = c[0];j >= 10; j /= 10, i++)
958
+ ;
959
+ if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
960
+ n.c = n.e = null;
961
+ } else if (e < MIN_EXP) {
962
+ n.c = [n.e = 0];
963
+ } else {
964
+ n.e = e;
965
+ n.c = c;
966
+ }
967
+ return n;
968
+ }
969
+ parseNumeric = function() {
970
+ var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
971
+ return function(x, str, isNum, b) {
972
+ var base, s = isNum ? str : str.replace(whitespaceOrPlus, "");
973
+ if (isInfinityOrNaN.test(s)) {
974
+ x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
975
+ } else {
976
+ if (!isNum) {
977
+ s = s.replace(basePrefix, function(m, p1, p2) {
978
+ base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8;
979
+ return !b || b == base ? p1 : m;
980
+ });
981
+ if (b) {
982
+ base = b;
983
+ s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1");
984
+ }
985
+ if (str != s)
986
+ return new BigNumber(s, base);
987
+ }
988
+ if (BigNumber.DEBUG) {
989
+ throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str);
990
+ }
991
+ x.s = null;
992
+ }
993
+ x.c = x.e = null;
994
+ };
995
+ }();
996
+ function round(x, sd, rm, r) {
997
+ var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;
998
+ if (xc) {
999
+ out: {
1000
+ for (d = 1, k = xc[0];k >= 10; k /= 10, d++)
1001
+ ;
1002
+ i = sd - d;
1003
+ if (i < 0) {
1004
+ i += LOG_BASE;
1005
+ j = sd;
1006
+ n = xc[ni = 0];
1007
+ rd = mathfloor(n / pows10[d - j - 1] % 10);
1008
+ } else {
1009
+ ni = mathceil((i + 1) / LOG_BASE);
1010
+ if (ni >= xc.length) {
1011
+ if (r) {
1012
+ for (;xc.length <= ni; xc.push(0))
1013
+ ;
1014
+ n = rd = 0;
1015
+ d = 1;
1016
+ i %= LOG_BASE;
1017
+ j = i - LOG_BASE + 1;
1018
+ } else {
1019
+ break out;
1020
+ }
1021
+ } else {
1022
+ n = k = xc[ni];
1023
+ for (d = 1;k >= 10; k /= 10, d++)
1024
+ ;
1025
+ i %= LOG_BASE;
1026
+ j = i - LOG_BASE + d;
1027
+ rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);
1028
+ }
1029
+ }
1030
+ r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
1031
+ r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
1032
+ if (sd < 1 || !xc[0]) {
1033
+ xc.length = 0;
1034
+ if (r) {
1035
+ sd -= x.e + 1;
1036
+ xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
1037
+ x.e = -sd || 0;
1038
+ } else {
1039
+ xc[0] = x.e = 0;
1040
+ }
1041
+ return x;
1042
+ }
1043
+ if (i == 0) {
1044
+ xc.length = ni;
1045
+ k = 1;
1046
+ ni--;
1047
+ } else {
1048
+ xc.length = ni + 1;
1049
+ k = pows10[LOG_BASE - i];
1050
+ xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
1051
+ }
1052
+ if (r) {
1053
+ for (;; ) {
1054
+ if (ni == 0) {
1055
+ for (i = 1, j = xc[0];j >= 10; j /= 10, i++)
1056
+ ;
1057
+ j = xc[0] += k;
1058
+ for (k = 1;j >= 10; j /= 10, k++)
1059
+ ;
1060
+ if (i != k) {
1061
+ x.e++;
1062
+ if (xc[0] == BASE)
1063
+ xc[0] = 1;
1064
+ }
1065
+ break;
1066
+ } else {
1067
+ xc[ni] += k;
1068
+ if (xc[ni] != BASE)
1069
+ break;
1070
+ xc[ni--] = 0;
1071
+ k = 1;
1072
+ }
1073
+ }
1074
+ }
1075
+ for (i = xc.length;xc[--i] === 0; xc.pop())
1076
+ ;
1077
+ }
1078
+ if (x.e > MAX_EXP) {
1079
+ x.c = x.e = null;
1080
+ } else if (x.e < MIN_EXP) {
1081
+ x.c = [x.e = 0];
1082
+ }
1083
+ }
1084
+ return x;
1085
+ }
1086
+ function valueOf(n) {
1087
+ var str, e = n.e;
1088
+ if (e === null)
1089
+ return n.toString();
1090
+ str = coeffToString(n.c);
1091
+ str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0");
1092
+ return n.s < 0 ? "-" + str : str;
1093
+ }
1094
+ P.absoluteValue = P.abs = function() {
1095
+ var x = new BigNumber(this);
1096
+ if (x.s < 0)
1097
+ x.s = 1;
1098
+ return x;
1099
+ };
1100
+ P.comparedTo = function(y, b) {
1101
+ return compare(this, new BigNumber(y, b));
1102
+ };
1103
+ P.decimalPlaces = P.dp = function(dp, rm) {
1104
+ var c, n, v, x = this;
1105
+ if (dp != null) {
1106
+ intCheck(dp, 0, MAX);
1107
+ if (rm == null)
1108
+ rm = ROUNDING_MODE;
1109
+ else
1110
+ intCheck(rm, 0, 8);
1111
+ return round(new BigNumber(x), dp + x.e + 1, rm);
1112
+ }
1113
+ if (!(c = x.c))
1114
+ return null;
1115
+ n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
1116
+ if (v = c[v])
1117
+ for (;v % 10 == 0; v /= 10, n--)
1118
+ ;
1119
+ if (n < 0)
1120
+ n = 0;
1121
+ return n;
1122
+ };
1123
+ P.dividedBy = P.div = function(y, b) {
1124
+ return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);
1125
+ };
1126
+ P.dividedToIntegerBy = P.idiv = function(y, b) {
1127
+ return div(this, new BigNumber(y, b), 0, 1);
1128
+ };
1129
+ P.exponentiatedBy = P.pow = function(n, m) {
1130
+ var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;
1131
+ n = new BigNumber(n);
1132
+ if (n.c && !n.isInteger()) {
1133
+ throw Error(bignumberError + "Exponent not an integer: " + valueOf(n));
1134
+ }
1135
+ if (m != null)
1136
+ m = new BigNumber(m);
1137
+ nIsBig = n.e > 14;
1138
+ if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
1139
+ y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));
1140
+ return m ? y.mod(m) : y;
1141
+ }
1142
+ nIsNeg = n.s < 0;
1143
+ if (m) {
1144
+ if (m.c ? !m.c[0] : !m.s)
1145
+ return new BigNumber(NaN);
1146
+ isModExp = !nIsNeg && x.isInteger() && m.isInteger();
1147
+ if (isModExp)
1148
+ x = x.mod(m);
1149
+ } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 240000000 : x.c[0] < 80000000000000 || nIsBig && x.c[0] <= 99999750000000))) {
1150
+ k = x.s < 0 && isOdd(n) ? -0 : 0;
1151
+ if (x.e > -1)
1152
+ k = 1 / k;
1153
+ return new BigNumber(nIsNeg ? 1 / k : k);
1154
+ } else if (POW_PRECISION) {
1155
+ k = mathceil(POW_PRECISION / LOG_BASE + 2);
1156
+ }
1157
+ if (nIsBig) {
1158
+ half = new BigNumber(0.5);
1159
+ if (nIsNeg)
1160
+ n.s = 1;
1161
+ nIsOdd = isOdd(n);
1162
+ } else {
1163
+ i = Math.abs(+valueOf(n));
1164
+ nIsOdd = i % 2;
1165
+ }
1166
+ y = new BigNumber(ONE);
1167
+ for (;; ) {
1168
+ if (nIsOdd) {
1169
+ y = y.times(x);
1170
+ if (!y.c)
1171
+ break;
1172
+ if (k) {
1173
+ if (y.c.length > k)
1174
+ y.c.length = k;
1175
+ } else if (isModExp) {
1176
+ y = y.mod(m);
1177
+ }
1178
+ }
1179
+ if (i) {
1180
+ i = mathfloor(i / 2);
1181
+ if (i === 0)
1182
+ break;
1183
+ nIsOdd = i % 2;
1184
+ } else {
1185
+ n = n.times(half);
1186
+ round(n, n.e + 1, 1);
1187
+ if (n.e > 14) {
1188
+ nIsOdd = isOdd(n);
1189
+ } else {
1190
+ i = +valueOf(n);
1191
+ if (i === 0)
1192
+ break;
1193
+ nIsOdd = i % 2;
1194
+ }
1195
+ }
1196
+ x = x.times(x);
1197
+ if (k) {
1198
+ if (x.c && x.c.length > k)
1199
+ x.c.length = k;
1200
+ } else if (isModExp) {
1201
+ x = x.mod(m);
1202
+ }
1203
+ }
1204
+ if (isModExp)
1205
+ return y;
1206
+ if (nIsNeg)
1207
+ y = ONE.div(y);
1208
+ return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
1209
+ };
1210
+ P.integerValue = function(rm) {
1211
+ var n = new BigNumber(this);
1212
+ if (rm == null)
1213
+ rm = ROUNDING_MODE;
1214
+ else
1215
+ intCheck(rm, 0, 8);
1216
+ return round(n, n.e + 1, rm);
1217
+ };
1218
+ P.isEqualTo = P.eq = function(y, b) {
1219
+ return compare(this, new BigNumber(y, b)) === 0;
1220
+ };
1221
+ P.isFinite = function() {
1222
+ return !!this.c;
1223
+ };
1224
+ P.isGreaterThan = P.gt = function(y, b) {
1225
+ return compare(this, new BigNumber(y, b)) > 0;
1226
+ };
1227
+ P.isGreaterThanOrEqualTo = P.gte = function(y, b) {
1228
+ return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;
1229
+ };
1230
+ P.isInteger = function() {
1231
+ return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
1232
+ };
1233
+ P.isLessThan = P.lt = function(y, b) {
1234
+ return compare(this, new BigNumber(y, b)) < 0;
1235
+ };
1236
+ P.isLessThanOrEqualTo = P.lte = function(y, b) {
1237
+ return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;
1238
+ };
1239
+ P.isNaN = function() {
1240
+ return !this.s;
1241
+ };
1242
+ P.isNegative = function() {
1243
+ return this.s < 0;
1244
+ };
1245
+ P.isPositive = function() {
1246
+ return this.s > 0;
1247
+ };
1248
+ P.isZero = function() {
1249
+ return !!this.c && this.c[0] == 0;
1250
+ };
1251
+ P.minus = function(y, b) {
1252
+ var i, j, t, xLTy, x = this, a = x.s;
1253
+ y = new BigNumber(y, b);
1254
+ b = y.s;
1255
+ if (!a || !b)
1256
+ return new BigNumber(NaN);
1257
+ if (a != b) {
1258
+ y.s = -b;
1259
+ return x.plus(y);
1260
+ }
1261
+ var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
1262
+ if (!xe || !ye) {
1263
+ if (!xc || !yc)
1264
+ return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);
1265
+ if (!xc[0] || !yc[0]) {
1266
+ return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0);
1267
+ }
1268
+ }
1269
+ xe = bitFloor(xe);
1270
+ ye = bitFloor(ye);
1271
+ xc = xc.slice();
1272
+ if (a = xe - ye) {
1273
+ if (xLTy = a < 0) {
1274
+ a = -a;
1275
+ t = xc;
1276
+ } else {
1277
+ ye = xe;
1278
+ t = yc;
1279
+ }
1280
+ t.reverse();
1281
+ for (b = a;b--; t.push(0))
1282
+ ;
1283
+ t.reverse();
1284
+ } else {
1285
+ j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
1286
+ for (a = b = 0;b < j; b++) {
1287
+ if (xc[b] != yc[b]) {
1288
+ xLTy = xc[b] < yc[b];
1289
+ break;
1290
+ }
1291
+ }
1292
+ }
1293
+ if (xLTy) {
1294
+ t = xc;
1295
+ xc = yc;
1296
+ yc = t;
1297
+ y.s = -y.s;
1298
+ }
1299
+ b = (j = yc.length) - (i = xc.length);
1300
+ if (b > 0)
1301
+ for (;b--; xc[i++] = 0)
1302
+ ;
1303
+ b = BASE - 1;
1304
+ for (;j > a; ) {
1305
+ if (xc[--j] < yc[j]) {
1306
+ for (i = j;i && !xc[--i]; xc[i] = b)
1307
+ ;
1308
+ --xc[i];
1309
+ xc[j] += BASE;
1310
+ }
1311
+ xc[j] -= yc[j];
1312
+ }
1313
+ for (;xc[0] == 0; xc.splice(0, 1), --ye)
1314
+ ;
1315
+ if (!xc[0]) {
1316
+ y.s = ROUNDING_MODE == 3 ? -1 : 1;
1317
+ y.c = [y.e = 0];
1318
+ return y;
1319
+ }
1320
+ return normalise(y, xc, ye);
1321
+ };
1322
+ P.modulo = P.mod = function(y, b) {
1323
+ var q, s, x = this;
1324
+ y = new BigNumber(y, b);
1325
+ if (!x.c || !y.s || y.c && !y.c[0]) {
1326
+ return new BigNumber(NaN);
1327
+ } else if (!y.c || x.c && !x.c[0]) {
1328
+ return new BigNumber(x);
1329
+ }
1330
+ if (MODULO_MODE == 9) {
1331
+ s = y.s;
1332
+ y.s = 1;
1333
+ q = div(x, y, 0, 3);
1334
+ y.s = s;
1335
+ q.s *= s;
1336
+ } else {
1337
+ q = div(x, y, 0, MODULO_MODE);
1338
+ }
1339
+ y = x.minus(q.times(y));
1340
+ if (!y.c[0] && MODULO_MODE == 1)
1341
+ y.s = x.s;
1342
+ return y;
1343
+ };
1344
+ P.multipliedBy = P.times = function(y, b) {
1345
+ var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber(y, b)).c;
1346
+ if (!xc || !yc || !xc[0] || !yc[0]) {
1347
+ if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
1348
+ y.c = y.e = y.s = null;
1349
+ } else {
1350
+ y.s *= x.s;
1351
+ if (!xc || !yc) {
1352
+ y.c = y.e = null;
1353
+ } else {
1354
+ y.c = [0];
1355
+ y.e = 0;
1356
+ }
1357
+ }
1358
+ return y;
1359
+ }
1360
+ e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
1361
+ y.s *= x.s;
1362
+ xcL = xc.length;
1363
+ ycL = yc.length;
1364
+ if (xcL < ycL) {
1365
+ zc = xc;
1366
+ xc = yc;
1367
+ yc = zc;
1368
+ i = xcL;
1369
+ xcL = ycL;
1370
+ ycL = i;
1371
+ }
1372
+ for (i = xcL + ycL, zc = [];i--; zc.push(0))
1373
+ ;
1374
+ base = BASE;
1375
+ sqrtBase = SQRT_BASE;
1376
+ for (i = ycL;--i >= 0; ) {
1377
+ c = 0;
1378
+ ylo = yc[i] % sqrtBase;
1379
+ yhi = yc[i] / sqrtBase | 0;
1380
+ for (k = xcL, j = i + k;j > i; ) {
1381
+ xlo = xc[--k] % sqrtBase;
1382
+ xhi = xc[k] / sqrtBase | 0;
1383
+ m = yhi * xlo + xhi * ylo;
1384
+ xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;
1385
+ c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
1386
+ zc[j--] = xlo % base;
1387
+ }
1388
+ zc[j] = c;
1389
+ }
1390
+ if (c) {
1391
+ ++e;
1392
+ } else {
1393
+ zc.splice(0, 1);
1394
+ }
1395
+ return normalise(y, zc, e);
1396
+ };
1397
+ P.negated = function() {
1398
+ var x = new BigNumber(this);
1399
+ x.s = -x.s || null;
1400
+ return x;
1401
+ };
1402
+ P.plus = function(y, b) {
1403
+ var t, x = this, a = x.s;
1404
+ y = new BigNumber(y, b);
1405
+ b = y.s;
1406
+ if (!a || !b)
1407
+ return new BigNumber(NaN);
1408
+ if (a != b) {
1409
+ y.s = -b;
1410
+ return x.minus(y);
1411
+ }
1412
+ var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
1413
+ if (!xe || !ye) {
1414
+ if (!xc || !yc)
1415
+ return new BigNumber(a / 0);
1416
+ if (!xc[0] || !yc[0])
1417
+ return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);
1418
+ }
1419
+ xe = bitFloor(xe);
1420
+ ye = bitFloor(ye);
1421
+ xc = xc.slice();
1422
+ if (a = xe - ye) {
1423
+ if (a > 0) {
1424
+ ye = xe;
1425
+ t = yc;
1426
+ } else {
1427
+ a = -a;
1428
+ t = xc;
1429
+ }
1430
+ t.reverse();
1431
+ for (;a--; t.push(0))
1432
+ ;
1433
+ t.reverse();
1434
+ }
1435
+ a = xc.length;
1436
+ b = yc.length;
1437
+ if (a - b < 0) {
1438
+ t = yc;
1439
+ yc = xc;
1440
+ xc = t;
1441
+ b = a;
1442
+ }
1443
+ for (a = 0;b; ) {
1444
+ a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
1445
+ xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
1446
+ }
1447
+ if (a) {
1448
+ xc = [a].concat(xc);
1449
+ ++ye;
1450
+ }
1451
+ return normalise(y, xc, ye);
1452
+ };
1453
+ P.precision = P.sd = function(sd, rm) {
1454
+ var c, n, v, x = this;
1455
+ if (sd != null && sd !== !!sd) {
1456
+ intCheck(sd, 1, MAX);
1457
+ if (rm == null)
1458
+ rm = ROUNDING_MODE;
1459
+ else
1460
+ intCheck(rm, 0, 8);
1461
+ return round(new BigNumber(x), sd, rm);
1462
+ }
1463
+ if (!(c = x.c))
1464
+ return null;
1465
+ v = c.length - 1;
1466
+ n = v * LOG_BASE + 1;
1467
+ if (v = c[v]) {
1468
+ for (;v % 10 == 0; v /= 10, n--)
1469
+ ;
1470
+ for (v = c[0];v >= 10; v /= 10, n++)
1471
+ ;
1472
+ }
1473
+ if (sd && x.e + 1 > n)
1474
+ n = x.e + 1;
1475
+ return n;
1476
+ };
1477
+ P.shiftedBy = function(k) {
1478
+ intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
1479
+ return this.times("1e" + k);
1480
+ };
1481
+ P.squareRoot = P.sqrt = function() {
1482
+ var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber("0.5");
1483
+ if (s !== 1 || !c || !c[0]) {
1484
+ return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
1485
+ }
1486
+ s = Math.sqrt(+valueOf(x));
1487
+ if (s == 0 || s == 1 / 0) {
1488
+ n = coeffToString(c);
1489
+ if ((n.length + e) % 2 == 0)
1490
+ n += "0";
1491
+ s = Math.sqrt(+n);
1492
+ e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
1493
+ if (s == 1 / 0) {
1494
+ n = "5e" + e;
1495
+ } else {
1496
+ n = s.toExponential();
1497
+ n = n.slice(0, n.indexOf("e") + 1) + e;
1498
+ }
1499
+ r = new BigNumber(n);
1500
+ } else {
1501
+ r = new BigNumber(s + "");
1502
+ }
1503
+ if (r.c[0]) {
1504
+ e = r.e;
1505
+ s = e + dp;
1506
+ if (s < 3)
1507
+ s = 0;
1508
+ for (;; ) {
1509
+ t = r;
1510
+ r = half.times(t.plus(div(x, t, dp, 1)));
1511
+ if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
1512
+ if (r.e < e)
1513
+ --s;
1514
+ n = n.slice(s - 3, s + 1);
1515
+ if (n == "9999" || !rep && n == "4999") {
1516
+ if (!rep) {
1517
+ round(t, t.e + DECIMAL_PLACES + 2, 0);
1518
+ if (t.times(t).eq(x)) {
1519
+ r = t;
1520
+ break;
1521
+ }
1522
+ }
1523
+ dp += 4;
1524
+ s += 4;
1525
+ rep = 1;
1526
+ } else {
1527
+ if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
1528
+ round(r, r.e + DECIMAL_PLACES + 2, 1);
1529
+ m = !r.times(r).eq(x);
1530
+ }
1531
+ break;
1532
+ }
1533
+ }
1534
+ }
1535
+ }
1536
+ return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
1537
+ };
1538
+ P.toExponential = function(dp, rm) {
1539
+ if (dp != null) {
1540
+ intCheck(dp, 0, MAX);
1541
+ dp++;
1542
+ }
1543
+ return format(this, dp, rm, 1);
1544
+ };
1545
+ P.toFixed = function(dp, rm) {
1546
+ if (dp != null) {
1547
+ intCheck(dp, 0, MAX);
1548
+ dp = dp + this.e + 1;
1549
+ }
1550
+ return format(this, dp, rm);
1551
+ };
1552
+ P.toFormat = function(dp, rm, format2) {
1553
+ var str, x = this;
1554
+ if (format2 == null) {
1555
+ if (dp != null && rm && typeof rm == "object") {
1556
+ format2 = rm;
1557
+ rm = null;
1558
+ } else if (dp && typeof dp == "object") {
1559
+ format2 = dp;
1560
+ dp = rm = null;
1561
+ } else {
1562
+ format2 = FORMAT;
1563
+ }
1564
+ } else if (typeof format2 != "object") {
1565
+ throw Error(bignumberError + "Argument not an object: " + format2);
1566
+ }
1567
+ str = x.toFixed(dp, rm);
1568
+ if (x.c) {
1569
+ var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;
1570
+ if (g2) {
1571
+ i = g1;
1572
+ g1 = g2;
1573
+ g2 = i;
1574
+ len -= i;
1575
+ }
1576
+ if (g1 > 0 && len > 0) {
1577
+ i = len % g1 || g1;
1578
+ intPart = intDigits.substr(0, i);
1579
+ for (;i < len; i += g1)
1580
+ intPart += groupSeparator + intDigits.substr(i, g1);
1581
+ if (g2 > 0)
1582
+ intPart += groupSeparator + intDigits.slice(i);
1583
+ if (isNeg)
1584
+ intPart = "-" + intPart;
1585
+ }
1586
+ str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(new RegExp("\\d{" + g2 + "}\\B", "g"), "$&" + (format2.fractionGroupSeparator || "")) : fractionPart) : intPart;
1587
+ }
1588
+ return (format2.prefix || "") + str + (format2.suffix || "");
1589
+ };
1590
+ P.toFraction = function(md) {
1591
+ var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;
1592
+ if (md != null) {
1593
+ n = new BigNumber(md);
1594
+ if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
1595
+ throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n));
1596
+ }
1597
+ }
1598
+ if (!xc)
1599
+ return new BigNumber(x);
1600
+ d = new BigNumber(ONE);
1601
+ n1 = d0 = new BigNumber(ONE);
1602
+ d1 = n0 = new BigNumber(ONE);
1603
+ s = coeffToString(xc);
1604
+ e = d.e = s.length - x.e - 1;
1605
+ d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
1606
+ md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;
1607
+ exp = MAX_EXP;
1608
+ MAX_EXP = 1 / 0;
1609
+ n = new BigNumber(s);
1610
+ n0.c[0] = 0;
1611
+ for (;; ) {
1612
+ q = div(n, d, 0, 1);
1613
+ d2 = d0.plus(q.times(d1));
1614
+ if (d2.comparedTo(md) == 1)
1615
+ break;
1616
+ d0 = d1;
1617
+ d1 = d2;
1618
+ n1 = n0.plus(q.times(d2 = n1));
1619
+ n0 = d2;
1620
+ d = n.minus(q.times(d2 = d));
1621
+ n = d2;
1622
+ }
1623
+ d2 = div(md.minus(d0), d1, 0, 1);
1624
+ n0 = n0.plus(d2.times(n1));
1625
+ d0 = d0.plus(d2.times(d1));
1626
+ n0.s = n1.s = x.s;
1627
+ e = e * 2;
1628
+ r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
1629
+ MAX_EXP = exp;
1630
+ return r;
1631
+ };
1632
+ P.toNumber = function() {
1633
+ return +valueOf(this);
1634
+ };
1635
+ P.toPrecision = function(sd, rm) {
1636
+ if (sd != null)
1637
+ intCheck(sd, 1, MAX);
1638
+ return format(this, sd, rm, 2);
1639
+ };
1640
+ P.toString = function(b) {
1641
+ var str, n = this, s = n.s, e = n.e;
1642
+ if (e === null) {
1643
+ if (s) {
1644
+ str = "Infinity";
1645
+ if (s < 0)
1646
+ str = "-" + str;
1647
+ } else {
1648
+ str = "NaN";
1649
+ }
1650
+ } else {
1651
+ if (b == null) {
1652
+ str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0");
1653
+ } else if (b === 10 && alphabetHasNormalDecimalDigits) {
1654
+ n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
1655
+ str = toFixedPoint(coeffToString(n.c), n.e, "0");
1656
+ } else {
1657
+ intCheck(b, 2, ALPHABET.length, "Base");
1658
+ str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true);
1659
+ }
1660
+ if (s < 0 && n.c[0])
1661
+ str = "-" + str;
1662
+ }
1663
+ return str;
1664
+ };
1665
+ P.valueOf = P.toJSON = function() {
1666
+ return valueOf(this);
1667
+ };
1668
+ P._isBigNumber = true;
1669
+ P[Symbol.toStringTag] = "BigNumber";
1670
+ P[Symbol.for("nodejs.util.inspect.custom")] = P.valueOf;
1671
+ if (configObject != null)
1672
+ BigNumber.set(configObject);
1673
+ return BigNumber;
1674
+ }
1675
+ function bitFloor(n) {
1676
+ var i = n | 0;
1677
+ return n > 0 || n === i ? i : i - 1;
1678
+ }
1679
+ function coeffToString(a) {
1680
+ var s, z, i = 1, j = a.length, r = a[0] + "";
1681
+ for (;i < j; ) {
1682
+ s = a[i++] + "";
1683
+ z = LOG_BASE - s.length;
1684
+ for (;z--; s = "0" + s)
1685
+ ;
1686
+ r += s;
1687
+ }
1688
+ for (j = r.length;r.charCodeAt(--j) === 48; )
1689
+ ;
1690
+ return r.slice(0, j + 1 || 1);
1691
+ }
1692
+ function compare(x, y) {
1693
+ var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;
1694
+ if (!i || !j)
1695
+ return null;
1696
+ a = xc && !xc[0];
1697
+ b = yc && !yc[0];
1698
+ if (a || b)
1699
+ return a ? b ? 0 : -j : i;
1700
+ if (i != j)
1701
+ return i;
1702
+ a = i < 0;
1703
+ b = k == l;
1704
+ if (!xc || !yc)
1705
+ return b ? 0 : !xc ^ a ? 1 : -1;
1706
+ if (!b)
1707
+ return k > l ^ a ? 1 : -1;
1708
+ j = (k = xc.length) < (l = yc.length) ? k : l;
1709
+ for (i = 0;i < j; i++)
1710
+ if (xc[i] != yc[i])
1711
+ return xc[i] > yc[i] ^ a ? 1 : -1;
1712
+ return k == l ? 0 : k > l ^ a ? 1 : -1;
1713
+ }
1714
+ function intCheck(n, min, max, name) {
1715
+ if (n < min || n > max || n !== mathfloor(n)) {
1716
+ throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n));
1717
+ }
1718
+ }
1719
+ function isOdd(n) {
1720
+ var k = n.c.length - 1;
1721
+ return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
1722
+ }
1723
+ function toExponential(str, e) {
1724
+ return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e;
1725
+ }
1726
+ function toFixedPoint(str, e, z) {
1727
+ var len, zs;
1728
+ if (e < 0) {
1729
+ for (zs = z + ".";++e; zs += z)
1730
+ ;
1731
+ str = zs + str;
1732
+ } else {
1733
+ len = str.length;
1734
+ if (++e > len) {
1735
+ for (zs = z, e -= len;--e; zs += z)
1736
+ ;
1737
+ str += zs;
1738
+ } else if (e < len) {
1739
+ str = str.slice(0, e) + "." + str.slice(e);
1740
+ }
1741
+ }
1742
+ return str;
1743
+ }
1744
+ var BigNumber = clone();
1745
+ var bignumber_default = BigNumber;
1746
+
1747
+ // node_modules/.pnpm/@paralleldrive+cuid2@3.3.0/node_modules/@paralleldrive/cuid2/src/index.js
1748
+ var defaultLength = 24;
1749
+ var bigLength = 32;
1750
+ var createRandom = () => {
1751
+ if (typeof globalThis !== "undefined" && globalThis.crypto && typeof globalThis.crypto.getRandomValues === "function") {
1752
+ return () => {
1753
+ const buffer = new Uint32Array(1);
1754
+ globalThis.crypto.getRandomValues(buffer);
1755
+ return buffer[0] / 4294967296;
1756
+ };
1757
+ }
1758
+ return Math.random;
1759
+ };
1760
+ var random2 = createRandom();
1761
+ var createEntropy = (length = 4, rand = random2) => {
1762
+ let entropy = "";
1763
+ while (entropy.length < length) {
1764
+ entropy = entropy + Math.floor(rand() * 36).toString(36);
1765
+ }
1766
+ return entropy;
1767
+ };
1768
+ function bufToBigInt(buf) {
1769
+ let value = new bignumber_default(0);
1770
+ for (const i of buf.values()) {
1771
+ value = value.multipliedBy(256).plus(i);
1772
+ }
1773
+ return value;
1774
+ }
1775
+ var hash = (input = "") => {
1776
+ const encoder = new TextEncoder;
1777
+ return bufToBigInt(sha3_512(encoder.encode(input))).toString(36).slice(1);
1778
+ };
1779
+ var alphabet = Array.from({ length: 26 }, (x, i) => String.fromCharCode(i + 97));
1780
+ var randomLetter = (rand) => alphabet[Math.floor(rand() * alphabet.length)];
1781
+ var createFingerprint = ({
1782
+ globalObj = typeof global !== "undefined" ? global : typeof window !== "undefined" ? window : {},
1783
+ random: rand = random2
1784
+ } = {}) => {
1785
+ const globals = Object.keys(globalObj).toString();
1786
+ const sourceString = globals.length ? globals + createEntropy(bigLength, rand) : createEntropy(bigLength, rand);
1787
+ return hash(sourceString).substring(0, bigLength);
1788
+ };
1789
+ var createCounter = (count) => () => {
1790
+ return count++;
1791
+ };
1792
+ var initialCountMax = 476782367;
1793
+ var init = ({
1794
+ random: rand = random2,
1795
+ counter = createCounter(Math.floor(rand() * initialCountMax)),
1796
+ length = defaultLength,
1797
+ fingerprint = createFingerprint({ random: rand })
1798
+ } = {}) => {
1799
+ if (length > bigLength) {
1800
+ throw new Error(`Length must be between 2 and ${bigLength}. Received: ${length}`);
1801
+ }
1802
+ return function cuid2() {
1803
+ const firstLetter = randomLetter(rand);
1804
+ const time = Date.now().toString(36);
1805
+ const count = counter().toString(36);
1806
+ const salt = createEntropy(length, rand);
1807
+ const hashInput = `${time + salt + count + fingerprint}`;
1808
+ return `${firstLetter + hash(hashInput).substring(1, length)}`;
1809
+ };
1810
+ };
1811
+ var createId = lazy(init);
1812
+ function lazy(fn) {
1813
+ let initialized;
1814
+ return () => {
1815
+ if (!initialized) {
1816
+ initialized = fn();
1817
+ }
1818
+ return initialized();
1819
+ };
1820
+ }
1821
+
21
1822
  // query/utils/random.ts
22
1823
  var letter = "abcdefghijklmnopqrstuvwxyz";
23
1824
  var number = "0123456789";
24
1825
  var alphanumeric = `${letter}${number}`;
25
1826
  var alphanumericWithDash = `${alphanumeric}-`;
1827
+ var cuid2 = createId;
26
1828
  var uuid = customAlphabet(letter);
27
- var nanoid = customAlphabet(alphanumeric, 10);
28
- var nanoidWithDash = customAlphabet(alphanumericWithDash, 10);
1829
+ var nanoid = customAlphabet(alphanumeric, 16);
1830
+ var nanoidWithDash = customAlphabet(alphanumericWithDash, 16);
29
1831
  var randomId = (number2) => {
30
1832
  const _letter = uuid(1);
31
1833
  return `${_letter}${nanoid(number2)}`;
32
1834
  };
33
- var randomLetter = (number2 = 8, opts) => {
1835
+ var randomLetter2 = (number2 = 8, opts) => {
34
1836
  const { before = "", after = "" } = opts || {};
35
1837
  return `${before}${uuid(number2)}${after}`;
36
1838
  };
37
1839
  export {
38
1840
  uuid,
39
- randomLetter,
1841
+ randomLetter2 as randomLetter,
40
1842
  randomId,
41
1843
  number,
42
1844
  nanoidWithDash,
43
1845
  nanoid,
44
1846
  letter,
1847
+ cuid2,
45
1848
  alphanumericWithDash
46
1849
  };