pimath 0.1.3 → 0.1.4

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/pimath.js CHANGED
@@ -1933,191 +1933,7 @@ const we = class we {
1933
1933
  };
1934
1934
  Ee = new WeakMap(), Qe = new WeakMap(), Ne = new WeakMap(), Oe = new WeakMap();
1935
1935
  let fe = we;
1936
- var Ue = /* @__PURE__ */ ((o) => (o[o.ROOT = 0] = "ROOT", o[o.POWER = 1] = "POWER", o))(Ue || {}), N, Ve, lt, Yt;
1937
- const me = class me {
1938
- // #endregion Class fields (1)
1939
- // #region Constructors (1)
1940
- constructor(...e) {
1941
- // #region Class fields (1)
1942
- f(this, N, []);
1943
- f(this, Ve, Ue.POWER);
1944
- return this.parse(...e), this;
1945
- }
1946
- // #endregion Constructors (1)
1947
- // #region Properties and methods (25)
1948
- parse(...e) {
1949
- return e.length === 0 ? this : (h(this, N, []), e.forEach((t) => {
1950
- if (typeof t == "string") {
1951
- const s = t.split(")(").join(")*(").split("*");
1952
- i(this, N).push(...s.map((r) => new fe(r)));
1953
- } else t instanceof me ? i(this, N).push(...t.factors.map((s) => s.clone())) : i(this, N).push(new fe(t));
1954
- }), this);
1955
- }
1956
- clone() {
1957
- return new me(...i(this, N).map((e) => e.clone()));
1958
- }
1959
- add(...e) {
1960
- let t = [this, ...e];
1961
- const s = me.gcd(...t);
1962
- t = t.map((n) => n.divide(s).reduce());
1963
- const r = new T("0");
1964
- return t.forEach((n) => r.add(n.develop())), h(this, N, [
1965
- ...s.factors,
1966
- new fe(r)
1967
- ]), this;
1968
- }
1969
- degree(e) {
1970
- return i(this, N).reduce((t, s) => t.add(s.degree(e)), new c("0"));
1971
- }
1972
- derivative() {
1973
- const e = [], t = i(this, N).length;
1974
- for (let r = 0; r < t; r++) {
1975
- const n = i(this, N).slice(), l = n.splice(r, 1)[0];
1976
- e.push(new me(...n).multiply(new me(...l.derivative())));
1977
- }
1978
- e.forEach((r) => r.reduce());
1979
- const s = e.shift();
1980
- return s !== void 0 && h(this, N, s.factors), this.add(...e);
1981
- }
1982
- develop() {
1983
- const e = new T("1");
1984
- return i(this, N).forEach((t) => {
1985
- e.multiply(t.develop());
1986
- }), e;
1987
- }
1988
- divide(e) {
1989
- return h(this, N, i(this, N).concat(e.clone().factors.map((t) => t.inverse()))), this;
1990
- }
1991
- evaluate(e, t) {
1992
- return t ? i(this, N).reduce((s, r) => s * r.evaluate(e, t), 1) : i(this, N).reduce((s, r) => s.multiply(r.evaluate(e)), new c("1"));
1993
- }
1994
- hasVariable(e) {
1995
- return i(this, N).some((t) => t.hasVariable(e));
1996
- }
1997
- inverse() {
1998
- return h(this, N, i(this, N).map((e) => e.inverse())), this;
1999
- }
2000
- isEqual(e) {
2001
- const t = me.gcd(this, e), s = this.clone().divide(t).reduce(), r = e.clone().divide(t).reduce();
2002
- return s.isOne() && r.isOne();
2003
- }
2004
- isOne() {
2005
- return i(this, N).every((e) => e.isOne());
2006
- }
2007
- isZero() {
2008
- return i(this, N).every((e) => e.isZero());
2009
- }
2010
- multiply(...e) {
2011
- return e.forEach((t) => {
2012
- h(this, N, i(this, N).concat(t.clone().factors));
2013
- }), this;
2014
- }
2015
- one() {
2016
- return h(this, N, [new fe("1", "1")]), this;
2017
- }
2018
- opposite() {
2019
- const e = i(this, N).findIndex((t) => t.display === "(-1)");
2020
- return e >= 0 ? i(this, N).splice(e, 1) : i(this, N).push(new fe("-1", "1")), this;
2021
- }
2022
- pow(e) {
2023
- return h(this, N, i(this, N).map((t) => t.pow(e))), this;
2024
- }
2025
- primitive() {
2026
- throw new Error("Method not implemented.");
2027
- }
2028
- reduce() {
2029
- const e = Wt(this);
2030
- return h(this, N, Object.values(e).map((t) => {
2031
- const s = t[0].polynom, r = t.reduce((n, l) => n.add(l.power), new c("0"));
2032
- return new fe(s, r.reduce());
2033
- }).filter((t) => !t.power.isZero())), this;
2034
- }
2035
- root(e) {
2036
- return h(this, N, i(this, N).map((t) => t.root(e))), this;
2037
- }
2038
- sort() {
2039
- return h(this, N, i(this, N).sort((e, t) => e.degree().isLeq(t.degree()) ? -1 : 1)), this;
2040
- }
2041
- sqrt() {
2042
- return h(this, N, i(this, N).map((e) => e.sqrt())), this;
2043
- }
2044
- subtract(...e) {
2045
- return this.add(...e.map((t) => t.opposite()));
2046
- }
2047
- zero() {
2048
- return h(this, N, [new fe("0", "1")]), this;
2049
- }
2050
- static gcd(...e) {
2051
- var s;
2052
- if (e.length === 0)
2053
- return new me().one();
2054
- if (e.length === 1)
2055
- return e[0];
2056
- if (e.length === 2)
2057
- return M(s = me, lt, Yt).call(s, e[0], e[1]);
2058
- let t = e[0];
2059
- return e.shift(), e.forEach((r) => {
2060
- var n;
2061
- return t = M(n = me, lt, Yt).call(n, t, r);
2062
- }), t;
2063
- }
2064
- // #endregion Properties and methods (25)
2065
- // #region Getters And Setters (5)
2066
- get factors() {
2067
- return i(this, N);
2068
- }
2069
- set factors(e) {
2070
- h(this, N, e);
2071
- }
2072
- get variables() {
2073
- return i(this, N).reduce((e, t) => e.concat(t.variables), []);
2074
- }
2075
- get asRoot() {
2076
- return h(this, Ve, Ue.ROOT), this;
2077
- }
2078
- get asPower() {
2079
- return h(this, Ve, Ue.POWER), this;
2080
- }
2081
- get numerator() {
2082
- return i(this, N).filter((e) => e.power.isPositive());
2083
- }
2084
- get denominator() {
2085
- return i(this, N).filter((e) => e.power.isNegative());
2086
- }
2087
- get display() {
2088
- let e = [], t = [];
2089
- if (i(this, Ve) === Ue.ROOT ? (e = this.numerator, t = this.denominator.map((n) => n.clone().inverse())) : e = i(this, N), e.length === 0 && (e = [new fe("1")]), t.length === 0)
2090
- return e.length === 1 ? e[0].asSingle.display : e.map((n) => n.display).join("");
2091
- const s = e.length === 1 ? e[0].asSingle.display : e.map((n) => n.display).join(""), r = t.length === 1 ? t[0].asSingle.display : t.map((n) => n.display).join("");
2092
- return `(${s})/(${r})`;
2093
- }
2094
- get tex() {
2095
- let e = [], t = [];
2096
- if (i(this, Ve) === Ue.ROOT ? (e = this.numerator, t = this.denominator.map((n) => n.clone().inverse())) : e = i(this, N), e.length === 0 && (e = [new fe("1")]), t.length === 0)
2097
- return e.length === 1 ? e[0].asSingle.tex : e.map((n) => n.tex).join("");
2098
- const s = e.length === 1 ? e[0].asSingle.tex : e.map((n) => n.tex).join(""), r = t.length === 1 ? t[0].asSingle.tex : t.map((n) => n.tex).join("");
2099
- return `\\frac{ ${s} }{ ${r} }`;
2100
- }
2101
- // #endregion Private methods (1)
2102
- };
2103
- N = new WeakMap(), Ve = new WeakMap(), lt = new WeakSet(), Yt = function(e, t) {
2104
- const s = Wt(e), r = Wt(t), l = Object.keys(s).filter((u) => Object.hasOwn(r, u)).map((u) => {
2105
- const p = s[u].reduce((g, E) => g.add(E.power), new c("0")), m = r[u].reduce((g, E) => g.add(E.power), new c("0"));
2106
- return new fe(u, c.min(p, m));
2107
- });
2108
- return new me(...l);
2109
- }, f(me, lt);
2110
- let Xt = me;
2111
- function Wt(o) {
2112
- const e = new c().one(), t = o.factors.reduce((s, r) => {
2113
- if (r.polynom.degree().isZero())
2114
- return r.polynom.monoms.length > 0 && e.multiply(r.polynom.monoms[0].coefficient), s;
2115
- const n = r.polynom.display;
2116
- return Object.hasOwn(s, n) ? s[n].push(r) : s[n] = [r], s;
2117
- }, {});
2118
- return e.isOne() || (t[e.display] = [new fe(e.display, 1)]), t;
2119
- }
2120
- var q, A, re, Pt, Ke, St;
1936
+ var Ue = /* @__PURE__ */ ((o) => (o[o.ROOT = 0] = "ROOT", o[o.POWER = 1] = "POWER", o))(Ue || {}), q, A, re, Pt, Ke, St;
2121
1937
  const xe = class xe {
2122
1938
  constructor(e, t, s) {
2123
1939
  // Left part of the equation
@@ -2357,6 +2173,193 @@ const xe = class xe {
2357
2173
  };
2358
2174
  q = new WeakMap(), A = new WeakMap(), re = new WeakMap(), Pt = new WeakMap(), Ke = new WeakMap(), St = new WeakMap();
2359
2175
  let H = xe;
2176
+ var N, Ve, lt, Yt;
2177
+ const me = class me {
2178
+ // #endregion Class fields (1)
2179
+ // #region Constructors (1)
2180
+ constructor(...e) {
2181
+ // #region Class fields (1)
2182
+ f(this, N, []);
2183
+ f(this, Ve, Ue.POWER);
2184
+ return this.parse(...e), this;
2185
+ }
2186
+ // #endregion Constructors (1)
2187
+ // #region Properties and methods (25)
2188
+ parse(...e) {
2189
+ return e.length === 0 ? this : (h(this, N, []), e.forEach((t) => {
2190
+ if (typeof t == "string") {
2191
+ const s = t.split(")(").join(")*(").split("*");
2192
+ i(this, N).push(...s.map((r) => new fe(r)));
2193
+ } else t instanceof me ? i(this, N).push(...t.factors.map((s) => s.clone())) : i(this, N).push(new fe(t));
2194
+ }), this);
2195
+ }
2196
+ fromPolynom(e, t) {
2197
+ return h(this, N, new T(e).factorize(t).map((s) => new fe(s))), this;
2198
+ }
2199
+ clone() {
2200
+ return new me(...i(this, N).map((e) => e.clone()));
2201
+ }
2202
+ add(...e) {
2203
+ let t = [this, ...e];
2204
+ const s = me.gcd(...t);
2205
+ t = t.map((n) => n.divide(s).reduce());
2206
+ const r = new T("0");
2207
+ return t.forEach((n) => r.add(n.develop())), h(this, N, [
2208
+ ...s.factors,
2209
+ new fe(r)
2210
+ ]), this;
2211
+ }
2212
+ degree(e) {
2213
+ return i(this, N).reduce((t, s) => t.add(s.degree(e)), new c("0"));
2214
+ }
2215
+ derivative() {
2216
+ const e = [], t = i(this, N).length;
2217
+ for (let r = 0; r < t; r++) {
2218
+ const n = i(this, N).slice(), l = n.splice(r, 1)[0];
2219
+ e.push(new me(...n).multiply(new me(...l.derivative())));
2220
+ }
2221
+ e.forEach((r) => r.reduce());
2222
+ const s = e.shift();
2223
+ return s !== void 0 && h(this, N, s.factors), this.add(...e);
2224
+ }
2225
+ develop() {
2226
+ const e = new T("1");
2227
+ return i(this, N).forEach((t) => {
2228
+ e.multiply(t.develop());
2229
+ }), e;
2230
+ }
2231
+ divide(e) {
2232
+ return h(this, N, i(this, N).concat(e.clone().factors.map((t) => t.inverse()))), this;
2233
+ }
2234
+ evaluate(e, t) {
2235
+ return t ? i(this, N).reduce((s, r) => s * r.evaluate(e, t), 1) : i(this, N).reduce((s, r) => s.multiply(r.evaluate(e)), new c("1"));
2236
+ }
2237
+ hasVariable(e) {
2238
+ return i(this, N).some((t) => t.hasVariable(e));
2239
+ }
2240
+ inverse() {
2241
+ return h(this, N, i(this, N).map((e) => e.inverse())), this;
2242
+ }
2243
+ isEqual(e) {
2244
+ const t = me.gcd(this, e), s = this.clone().divide(t).reduce(), r = e.clone().divide(t).reduce();
2245
+ return s.isOne() && r.isOne();
2246
+ }
2247
+ isOne() {
2248
+ return i(this, N).every((e) => e.isOne());
2249
+ }
2250
+ isZero() {
2251
+ return i(this, N).every((e) => e.isZero());
2252
+ }
2253
+ multiply(...e) {
2254
+ return e.forEach((t) => {
2255
+ h(this, N, i(this, N).concat(t.clone().factors));
2256
+ }), this;
2257
+ }
2258
+ one() {
2259
+ return h(this, N, [new fe("1", "1")]), this;
2260
+ }
2261
+ opposite() {
2262
+ const e = i(this, N).findIndex((t) => t.display === "(-1)");
2263
+ return e >= 0 ? i(this, N).splice(e, 1) : i(this, N).push(new fe("-1", "1")), this;
2264
+ }
2265
+ pow(e) {
2266
+ return h(this, N, i(this, N).map((t) => t.pow(e))), this;
2267
+ }
2268
+ primitive() {
2269
+ throw new Error("Method not implemented.");
2270
+ }
2271
+ reduce() {
2272
+ const e = Wt(this);
2273
+ return h(this, N, Object.values(e).map((t) => {
2274
+ const s = t[0].polynom, r = t.reduce((n, l) => n.add(l.power), new c("0"));
2275
+ return new fe(s, r.reduce());
2276
+ }).filter((t) => !t.power.isZero())), this;
2277
+ }
2278
+ root(e) {
2279
+ return h(this, N, i(this, N).map((t) => t.root(e))), this;
2280
+ }
2281
+ sort() {
2282
+ return h(this, N, i(this, N).sort((e, t) => e.degree().isLeq(t.degree()) ? -1 : 1)), this;
2283
+ }
2284
+ sqrt() {
2285
+ return h(this, N, i(this, N).map((e) => e.sqrt())), this;
2286
+ }
2287
+ subtract(...e) {
2288
+ return this.add(...e.map((t) => t.opposite()));
2289
+ }
2290
+ zero() {
2291
+ return h(this, N, [new fe("0", "1")]), this;
2292
+ }
2293
+ static gcd(...e) {
2294
+ var s;
2295
+ if (e.length === 0)
2296
+ return new me().one();
2297
+ if (e.length === 1)
2298
+ return e[0];
2299
+ if (e.length === 2)
2300
+ return M(s = me, lt, Yt).call(s, e[0], e[1]);
2301
+ let t = e[0];
2302
+ return e.shift(), e.forEach((r) => {
2303
+ var n;
2304
+ return t = M(n = me, lt, Yt).call(n, t, r);
2305
+ }), t;
2306
+ }
2307
+ // #endregion Properties and methods (25)
2308
+ // #region Getters And Setters (5)
2309
+ get factors() {
2310
+ return i(this, N);
2311
+ }
2312
+ set factors(e) {
2313
+ h(this, N, e);
2314
+ }
2315
+ get variables() {
2316
+ return i(this, N).reduce((e, t) => e.concat(t.variables), []);
2317
+ }
2318
+ get asRoot() {
2319
+ return h(this, Ve, Ue.ROOT), this;
2320
+ }
2321
+ get asPower() {
2322
+ return h(this, Ve, Ue.POWER), this;
2323
+ }
2324
+ get numerator() {
2325
+ return i(this, N).filter((e) => e.power.isPositive());
2326
+ }
2327
+ get denominator() {
2328
+ return i(this, N).filter((e) => e.power.isNegative());
2329
+ }
2330
+ get display() {
2331
+ let e = [], t = [];
2332
+ if (i(this, Ve) === Ue.ROOT ? (e = this.numerator, t = this.denominator.map((n) => n.clone().inverse())) : e = i(this, N), e.length === 0 && (e = [new fe("1")]), t.length === 0)
2333
+ return e.length === 1 ? e[0].asSingle.display : e.map((n) => n.display).join("");
2334
+ const s = e.length === 1 ? e[0].asSingle.display : e.map((n) => n.display).join(""), r = t.length === 1 ? t[0].asSingle.display : t.map((n) => n.display).join("");
2335
+ return `(${s})/(${r})`;
2336
+ }
2337
+ get tex() {
2338
+ let e = [], t = [];
2339
+ if (i(this, Ve) === Ue.ROOT ? (e = this.numerator, t = this.denominator.map((n) => n.clone().inverse())) : e = i(this, N), e.length === 0 && (e = [new fe("1")]), t.length === 0)
2340
+ return e.length === 1 ? e[0].asSingle.tex : e.map((n) => n.tex).join("");
2341
+ const s = e.length === 1 ? e[0].asSingle.tex : e.map((n) => n.tex).join(""), r = t.length === 1 ? t[0].asSingle.tex : t.map((n) => n.tex).join("");
2342
+ return `\\frac{ ${s} }{ ${r} }`;
2343
+ }
2344
+ // #endregion Private methods (1)
2345
+ };
2346
+ N = new WeakMap(), Ve = new WeakMap(), lt = new WeakSet(), Yt = function(e, t) {
2347
+ const s = Wt(e), r = Wt(t), l = Object.keys(s).filter((u) => Object.hasOwn(r, u)).map((u) => {
2348
+ const p = s[u].reduce((g, E) => g.add(E.power), new c("0")), m = r[u].reduce((g, E) => g.add(E.power), new c("0"));
2349
+ return new fe(u, c.min(p, m));
2350
+ });
2351
+ return new me(...l);
2352
+ }, f(me, lt);
2353
+ let Xt = me;
2354
+ function Wt(o) {
2355
+ const e = new c().one(), t = o.factors.reduce((s, r) => {
2356
+ if (r.polynom.degree().isZero())
2357
+ return r.polynom.monoms.length > 0 && e.multiply(r.polynom.monoms[0].coefficient), s;
2358
+ const n = r.polynom.display;
2359
+ return Object.hasOwn(s, n) ? s[n].push(r) : s[n] = [r], s;
2360
+ }, {});
2361
+ return e.isOne() || (t[e.display] = [new fe(e.display, 1)]), t;
2362
+ }
2360
2363
  var k, Ie, Bt, Rt;
2361
2364
  const Ge = class Ge {
2362
2365
  constructor(...e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pimath",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A math library for teacher :)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -7,6 +7,7 @@ export declare class PolyFactor implements IPiMathObject<PolyFactor>, IExpressio
7
7
  #private;
8
8
  constructor(...values: (Factor | InputAlgebra<Polynom> | PolyFactor)[]);
9
9
  parse(...values: (Factor | InputAlgebra<Polynom> | PolyFactor)[]): this;
10
+ fromPolynom(polynom: InputAlgebra<Polynom>, letter?: string): this;
10
11
  clone(): PolyFactor;
11
12
  add(...values: PolyFactor[]): this;
12
13
  degree(letter?: string): Fraction;
@@ -1 +1 @@
1
- {"version":3,"file":"polyFactor.d.ts","sourceRoot":"","sources":["../../src/algebra/polyFactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,qBAAa,UAAW,YACpB,aAAa,CAAC,UAAU,CAAC,EACzB,WAAW,CAAC,UAAU,CAAC,EACvB,QAAQ,CAAC,UAAU,CAAC;;gBAUR,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE;IAQ/D,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,IAAI;IAmBvE,KAAK,IAAI,UAAU;IAInB,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAuBlC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;IAIjC,UAAU,IAAI,IAAI;IAsBlB,OAAO,IAAI,OAAO;IAWlB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ;IAU/G,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASnC,KAAK,IAAI,OAAO;IAIhB,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAQvC,GAAG,IAAI,IAAI;IAKX,QAAQ,IAAI,IAAI;IAUhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKnC,SAAS,IAAI,UAAU;IAIvB,MAAM,IAAI,IAAI;IAgBd,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAKZ,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAIvC,IAAI,IAAI,IAAI;WAKL,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU;IAiBtD,IAAW,OAAO,IAAI,MAAM,EAAE,CAE7B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjC;IAED,IAAW,SAAS,IAAI,MAAM,EAAE,CAG/B;IAED,IAAI,MAAM,IAAI,IAAI,CAGjB;IACD,IAAI,OAAO,IAAI,IAAI,CAGlB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,IAAW,OAAO,IAAI,MAAM,CA+B3B;IAED,IAAW,GAAG,IAAI,MAAM,CA+BvB;CA0BJ"}
1
+ {"version":3,"file":"polyFactor.d.ts","sourceRoot":"","sources":["../../src/algebra/polyFactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAkB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,qBAAa,UAAW,YACpB,aAAa,CAAC,UAAU,CAAC,EACzB,WAAW,CAAC,UAAU,CAAC,EACvB,QAAQ,CAAC,UAAU,CAAC;;gBAUR,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE;IAQ/D,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,IAAI;IAmBvE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAE,IAAI;IAKjE,KAAK,IAAI,UAAU;IAInB,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAuBlC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;IAIjC,UAAU,IAAI,IAAI;IAsBlB,OAAO,IAAI,OAAO;IAWlB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ;IAU/G,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASnC,KAAK,IAAI,OAAO;IAIhB,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAQvC,GAAG,IAAI,IAAI;IAKX,QAAQ,IAAI,IAAI;IAUhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKnC,SAAS,IAAI,UAAU;IAIvB,MAAM,IAAI,IAAI;IAgBd,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAKZ,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAIvC,IAAI,IAAI,IAAI;WAKL,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU;IAiBtD,IAAW,OAAO,IAAI,MAAM,EAAE,CAE7B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjC;IAED,IAAW,SAAS,IAAI,MAAM,EAAE,CAG/B;IAED,IAAI,MAAM,IAAI,IAAI,CAGjB;IACD,IAAI,OAAO,IAAI,IAAI,CAGlB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,IAAW,OAAO,IAAI,MAAM,CA+B3B;IAED,IAAW,GAAG,IAAI,MAAM,CA+BvB;CA0BJ"}