@neutrinoparticles/js-v1.1 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neutrinoparticles.js-v1.1.umd.js","sources":["../src/main.js"],"sourcesContent":["\"use strict\"\n\nexport function Context() {\n\tvar ctx = this;\n\n\tthis.equalv3_ = function(a, b) {\n\t\treturn a[0] == b[0] && a[1] == b[1] && a[2] == b[2];\n\t}\n\t\n\tthis.equalq_ = function(a, b) {\n\t\treturn a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3];\n\t}\n\t\n\tthis.a = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t}\n\n\tthis.b = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1]];\n\t}\n\n\tthis.y = function (r, a, s) {\n\t r[0] = a[0] + s;\n\t r[1] = a[1] + s;\n\t}\n\n\tthis.z = function (a, s) {\n\t return [a[0] + s, a[1] + s];\n\t}\n\t\n\tthis.c = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t}\n\n\tthis.d = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1], a[2] + b[2]];\n\t}\n\n\tthis.C = function (r, a, s) {\n\t r[0] = a[0] + s;\n\t r[1] = a[1] + s;\n\t r[2] = a[2] + s;\n\t}\n\n\tthis.D = function (a, s) {\n\t return [a[0] + s, a[1] + s, a[2] + s];\n\t}\n\n\tthis.addq = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t\tr[3] = a[3] + b[3];\n\t}\n\t\n\tthis.addq_ = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]];\n\t}\n\t\n\tthis.e = function (r, a, b) {\n\t\tr[0] = a[0] - b[0];\n\t\tr[1] = a[1] - b[1];\n\t}\n\n\tthis.f = function (a, b) {\n\t\treturn [a[0] - b[0], a[1] - b[1]];\n\t}\n\n\tthis.A = function (r, a, s) {\n\t r[0] = a[0] - s;\n\t r[1] = a[1] - s;\n\t}\n\n\tthis.B = function (a, s) {\n\t return [a[0] - s, a[1] - s];\n\t}\n\n\tthis.vf = function (r, s, a) {\n\t r[0] = s - a[0];\n\t r[1] = s - a[1];\n\t}\n\n\tthis.wf = function (s, a) {\n\t return [s - a[0], s - a[1]];\n\t}\n\n\tthis.g = function (r, a, b) {\n\t\tr[0] = a[0] - b[0];\n\t\tr[1] = a[1] - b[1];\n\t\tr[2] = a[2] - b[2];\n\t}\n\n\tthis.h = function (a, b) {\n\t\treturn [a[0] - b[0], a[1] - b[1], a[2] - b[2]];\n\t}\n\n\tthis.E = function (r, a, s) {\n\t r[0] = a[0] - s;\n\t r[1] = a[1] - s;\n\t r[2] = a[2] - s;\n\t}\n\n\tthis.F = function (a, s) {\n\t return [a[0] - s, a[1] - s, a[2] - s];\n\t}\n\n\tthis.zf = function (r, s, a) {\n\t r[0] = s - a[0];\n\t r[1] = s - a[1];\n\t r[2] = s - a[2];\n\t}\n\n\tthis.Af = function (s, a) {\n\t return [s - a[0], s - a[1], s - a[2]];\n\t}\n\n\tthis.i = function (r, a, b) {\n\t\tr[0] = a[0] * b[0];\n\t\tr[1] = a[1] * b[1];\n\t}\n\n\tthis.j = function (a, b) {\n\t\treturn [a[0] * b[0], a[1] * b[1]];\n\t}\n\n\tthis.k = function (r, a, b) {\n\t\tr[0] = a[0] * b[0];\n\t\tr[1] = a[1] * b[1];\n\t\tr[2] = a[2] * b[2];\n\t}\n\n\tthis.l = function (a, b) {\n\t\treturn [a[0] * b[0], a[1] * b[1], a[2] * b[2]];\n\t}\n\n\tthis.m = function (r, a, b) {\n\t\tr[0] = a[0] / b[0];\n\t\tr[1] = a[1] / b[1];\n\t}\n\n\tthis.n = function (a, b) {\n\t\treturn [a[0] / b[0], a[1] / b[1]];\n\t}\n\n\tthis.o = function (r, a, b) {\n\t\tr[0] = a[0] / b[0];\n\t\tr[1] = a[1] / b[1];\n\t\tr[2] = a[2] / b[2];\n\t}\n\n\tthis.p = function (a, b) {\n\t\treturn [a[0] / b[0], a[1] / b[1], a[2] / b[2]];\n\t}\n\t\n\tthis.H = function(a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\t}\n\n\tthis.dotq_ = function(a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n\t}\n\t\n\tthis.q = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t}\n\n\tthis.r = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s];\n\t}\n\n\tthis.s = function (r, a, s) {\n\t\tr[0] = a[0] / s;\n\t\tr[1] = a[1] / s;\n\t}\n\n\tthis.t = function (a, s) {\n\t\treturn [a[0] / s, a[1] / s];\n\t}\n\n\tthis.u = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t\tr[2] = a[2] * s;\n\t}\n\n\tthis.v = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s, a[2] * s];\n\t}\n\n\tthis.w = function (r, a, s) {\n\t\tr[0] = a[0] / s;\n\t\tr[1] = a[1] / s;\n\t\tr[2] = a[2] / s;\n\t}\n\n\tthis.x = function (a, s) {\n\t\treturn [a[0] / s, a[1] / s, a[2] / s];\n\t}\n\n\tthis.y = function (r, a, s) {\n\t\tr[0] = a[0] + s;\n\t\tr[1] = a[1] + s;\n\t}\n\n\tthis.z = function (a, s) {\n\t\treturn [a[0] + s, a[1] + s];\n\t}\n\n\tthis.A = function (r, a, s) {\n\t\tr[0] = a[0] - s;\n\t\tr[1] = a[1] - s;\n\t}\n\n\tthis.B = function (a, s) {\n\t\treturn [a[0] - s, a[1] - s];\n\t}\n\n\tthis.G = function (a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1];\n\t}\n\n\tthis.H = function (a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\t}\n\n\tthis.I = function (r, a, b) {\n\t\tvar ax = a[0], ay = a[1], az = a[2];\n\t\tvar bx = b[0], by = b[1], bz = b[2];\n\n\t\tr[0] = ay * bz - az * by;\n\t\tr[1] = az * bx - ax * bz;\n\t\tr[2] = ax * by - ay * bx;\n\t}\n\n\tthis.J = function (a, b) {\n\t\tvar ax = a[0], ay = a[1], az = a[2];\n\t\tvar bx = b[0], by = b[1], bz = b[2];\n\n\t\treturn [ay * bz - az * by,\n\t\t\taz * bx - ax * bz,\n\t\t\tax * by - ay * bx];\n\t}\n\n\tthis.K = function (a) {\n\t\treturn Math.sqrt(a[0] * a[0] + a[1] * a[1]);\n\t}\n\n\tthis.L = function (a) {\n\t\treturn a[0] * a[0] + a[1] * a[1];\n\t}\n\n\tthis.M = function (r, a) {\n\t\tctx.q(r, a, 1.0 / ctx.K(a));\n\t}\n\n\tthis.N = function (a) {\n\t\treturn ctx.r(a, 1.0 / ctx.K(a));\n\t}\n\n\tthis.O = function (a) {\n\t\treturn Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);\n\t}\n\n\tthis.P = function (a) {\n\t\treturn a[0] * a[0] + a[1] * a[1] + a[2] * a[2];\n\t}\n\n\tthis.Q = function (r, a) {\n\t\tctx.u(r, a, 1.0 / ctx.O(a));\n\t}\n\n\tthis.R = function (a) {\n\t\treturn ctx.v(a, 1.0 / ctx.O(a));\n\t}\n\n\tthis.S = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t}\n\n\tthis.T = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t\tr[2] = a[2];\n\t}\n\n\tthis.U = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t\tr[2] = a[2];\n\t\tr[3] = a[3];\n\t}\n\n\tthis.V = function (r, x, y) {\n\t\tr[0] = x;\n\t\tr[1] = y;\n\t}\n\n\tthis.W = function (r, x, y, z) {\n\t\tr[0] = x;\n\t\tr[1] = y;\n\t\tr[2] = z;\n\t}\n\n\tthis.X = function (a, b, i) {\n\t\treturn a + (b - a) * i;\n\t}\n\n\tthis.Y = function (r, a, b, i) {\n\t\tr[0] = a[0] + (b[0] - a[0]) * i;\n\t\tr[1] = a[1] + (b[1] - a[1]) * i;\n\t}\n\n\tthis.Z = function (a, b, i) {\n\t\treturn [a[0] + (b[0] - a[0]) * i,\n\t\t\ta[1] + (b[1] - a[1]) * i];\n\t}\n\n\tthis.ab = function (r, a, b, i) {\n\t\tr[0] = a[0] + (b[0] - a[0]) * i;\n\t\tr[1] = a[1] + (b[1] - a[1]) * i;\n\t\tr[2] = a[2] + (b[2] - a[2]) * i;\n\t}\n\n\tthis.bb = function (a, b, i) {\n\t\treturn [a[0] + (b[0] - a[0]) * i,\n\t\t\ta[1] + (b[1] - a[1]) * i,\n\t\t\ta[2] + (b[2] - a[2]) * i];\n\t}\n\n\tthis.slerpq = function(r, x, y, a) {\n\t\tvar cosTheta = ctx.dotq_(x, y);\n\t\t\n\t\tvar z = [];\n\t\t\n\t\tif (cosTheta < 0) {\n\t\t\tctx.negq(z, y);\n\t\t\tcosTheta = -cosTheta;\n\t\t}\n\t\telse {\n\t\t\tctx.U(z, y);\n\t\t}\n\t\t\n\t\tif ((1.0 - cosTheta) < Number.EPSILON) {\n\t\t\tr[0] = ctx.X(x[0], y[0], a);\n\t\t\tr[1] = ctx.X(x[1], y[1], a);\n\t\t\tr[2] = ctx.X(x[2], y[2], a);\n\t\t\tr[3] = ctx.X(x[3], y[3], a);\n\t\t}\n\t\telse {\n\t\t\tvar Md = ctx.acos_(cosTheta);\n\t\t\t\n\t\t\tctx.mulqscalar(r, ctx.addq_(ctx.mulqscalar_(x, ctx.sin_((1.0 - a) * Md)), ctx.mulqscalar_(z, ctx.sin_(a * Md))),\n\t\t\t\t1.0 / ctx.sin_(Md));\n\t\t}\n\t}\n\t\n\tthis.slerpq_ = function(x, y, a) {\n\t\tvar r = [];\n\t\tctx.slerpq(r, x, y, a);\n\t\treturn r;\n\t}\n\t\n\t//trigonometry\n\t\n\tthis.acos_ = function(a) {\n\t\treturn Math.acos(a);\n\t}\n\t\n\tthis.sin_ = function(a) {\n\t\treturn Math.sin(a);\n\t}\n\t\n\tthis.cos_ = function(a) {\n\t\treturn Math.cos(a);\n\t}\n\t\n\t// random\n\t\n\tthis.taus88 = function(seed)\n\t{\n\t\tif (!seed)\n\t\t\tseed = 0;\n\n\t\tvar value0, value1, value2;\n\t\t\n\t\tthis.seed = function(s0) {\n\t\t\ts0 &= 0xFFFFFFFF;\n\t\t\t\n\t\t\tvalue0 = s0 < 2 ? s0 + 2 : s0;\n\t\t\tvalue1 = s0 < 8 ? s0 + 8 : s0;\n\t\t\tvalue2 = s0 < 16 ? s0 + 16 : s0;\n\t\t}\n\t\t\n\t\tthis.rand = function() {\n\t\t\tvar b = (((value0 << 13) ^ value0) & 0xFFFFFFFF) >>> 19;\n\t\t\tvalue0 = (((value0 & 0xFFFFFFFE) << 12) ^ b) >>> 0;\n\t\t\n\t\t\tb = (((value1 << 2) ^ value1) & 0xFFFFFFFF) >>> 25;\n\t\t\tvalue1 = (((value1 & 0xFFFFFFF8) << 4) ^ b) >>> 0;\n\t\t\t\n\t\t\tb = (((value2 << 3) ^ value2) & 0xFFFFFFFF) >>> 11;\n\t\t\tvalue2 = (((value2 & 0xFFFFFFF0) << 17) ^ b) >>> 0;\n\t\t\n\t\t\tvar engine = ((value0 ^ value1) ^ value2) >>> 0;\n\t\t\treturn engine / 4294967296.0;\n\t\t}\n\t\t\n\t\tthis.seed(seed);\n\t}\n\t\n\tthis.cb = function (r, radius) {\n\t\tthis.randv2gen(r, radius, function () { return Math.random(); });\n\t}\n\n\tthis.randv2gen = function (r, radius, gen) {\n\t\tvar Md = gen() * Math.PI * 2.0;\n\t\tr[0] = radius * ctx.cos_(Md);\n\t\tr[1] = radius * ctx.sin_(Md);\n\t}\n\n\tthis.db = function (r, radius) {\n\t\tthis.randv3gen(r, radius, function () { return Math.random(); });\n\t}\n\n\tthis.randv3gen = function (r, radius, gen) {\n\t\tvar theta = gen() * Math.PI * 2.0;\n\t\tvar z = -1.0 + gen() * 2.0;\n\t\tvar sqrtInvZ2 = radius * Math.sqrt(1.0 - z * z);\n\t\tr[0] = sqrtInvZ2 * ctx.cos_(theta);\n\t\tr[1] = sqrtInvZ2 * ctx.sin_(theta);\n\t\tr[2] = radius * z;\n\t}\n\n\tthis.yb = function(r, x, y, Nd, gen) {\n\t\tvar dispx = x + gen() * Nd[0];\n\t\tvar dispy = y + gen() * Nd[1];\n\t\tctx.V(r, dispx, dispy);\n\t}\n\t\n\tthis.eb = function (r, a) {\n\t\tctx.V(-a[0], -a[1]);\n\t}\n\n\tthis.fb = function (a) {\n\t\treturn [-a[0], -a[1]];\n\t}\n\n\tthis.gb = function (r, a) {\n\t\tctx.W(-a[0], -a[1], -a[2]);\n\t}\n\n\tthis.hb = function (a) {\n\t\treturn [-a[0], -a[1], -a[2]];\n\t}\n\t\n\tthis.negq = function (r, a) {\n\t\tr[0] = -a[0];\n\t\tr[1] = -a[1];\n\t\tr[2] = -a[2];\n\t\tr[3] = -a[3];\n\t}\n\t\n\tthis.negq_ = function(a) {\n\t\treturn [-a[0], -a[1], -a[2], -a[3]];\n\t}\n\n\tthis.ib = function (degrees) {\n\t\treturn degrees / 180.0 * Math.PI;\n\t}\n\n\tthis.jb = function (radians) {\n\t\treturn radians / Math.PI * 180.0;\n\t}\n\t\n\tthis.Ae = function(value) {\n\t\treturn value < 0 ? -1 : 1;\n\t}\n\t\n\tthis.ob = function (x, y, z, q) {\n\t\tvar x2 = 2.0 * q[0] * q[0];\n\t\tvar y2 = 2.0 * q[1] * q[1];\n\t\tvar z2 = 2.0 * q[2] * q[2];\n\t\tvar xy = 2.0 * q[0] * q[1];\n\t\tvar xz = 2.0 * q[0] * q[2];\n\t\tvar yz = 2.0 * q[1] * q[2];\n\t\tvar wz = 2.0 * q[3] * q[2];\n\t\tvar wy = 2.0 * q[3] * q[1];\n\t\tvar wx = 2.0 * q[3] * q[0];\n\n\t\tx[0] = 1.0 - y2 - z2;\n\t\tx[1] = xy + wz;\n\t\tx[2] = xz - wy;\n\n\t\ty[0] = xy - wz;\n\t\ty[1] = 1.0 - x2 - z2;\n\t\ty[2] = yz + wx;\n\n\t\tz[0] = xz + wy;\n\t\tz[1] = yz - wx;\n\t\tz[2] = 1.0 - x2 - y2;\n\t}\n\n\tthis.pb = function (q, x, y, z) {\n\t\tvar tr = x[0] + y[1] + z[2]\n\n\t\tif (tr > 0) { \n\t\t\tvar S = Math.sqrt(tr+1.0) * 2; \n\t\t\tq[3] = 0.25 * S;\n\t\t\tq[0] = (y[2] - z[1]) / S;\n\t\t\tq[1] = (z[0] - x[2]) / S;\n\t\t\tq[2] = (x[1] - y[0]) / S;\n\t\t} else if ((x[0] > y[1])&(x[0] > z[2])) { \n\t\t\tvar S = Math.sqrt(1.0 + x[0] - y[1] - z[2]) * 2;\n\t\t\tq[3] = (y[2] - z[1]) / S;\n\t\t\tq[0] = 0.25 * S;\n\t\t\tq[1] = (x[1] + y[0]) / S;\n\t\t\tq[2] = (z[0] + x[2]) / S;\n\t\t} else if (y[1] > z[2]) { \n\t\t\tvar S = Math.sqrt(1.0 + y[1] - x[0] - z[2]) * 2; \n\t\t\tq[3] = (z[0] - x[2]) / S;\n\t\t\tq[0] = (x[1] + y[0]) / S;\n\t\t\tq[1] = 0.25 * S;\n\t\t\tq[2] = (y[2] + z[1]) / S;\n\t\t} else { \n\t\t\tvar S = Math.sqrt(1.0 + z[2] - x[0] - y[1]) * 2;\n\t\t\tq[3] = (x[1] - y[0]) / S;\n\t\t\tq[0] = (z[0] + x[2]) / S;\n\t\t\tq[1] = (y[2] + z[1]) / S;\n\t\t\tq[2] = 0.25 * S;\n\t\t}\n\t}\n\t\n\tthis./**/axes2quat = this.pb;\n\n\tthis.qb = function (q, x, a) {\n\t\tvar ha = ctx.ib(a) * 0.5, s = Math.sin(ha);\n\t\tq[0] = x[0] * s;\n\t\tq[1] = x[1] * s;\n\t\tq[2] = x[2] * s;\n\t\tq[3] = Math.cos(ha);\n\t}\n\t\n\tthis./**/axisangle2quat = this.qb;\n\t\n\tthis.axisangle2quat_ = function (x, a) {\n\t\tvar ha = ctx.ib(a) * 0.5, s = Math.sin(ha);\n\t\treturn [x[0] * s, x[1] * s, x[2] * s, ctx.cos_(ha)];\n\t}\n\t\n\tthis./**/axisangle2quat_ = this.axisangle2quat_;\n\n\tthis.rb = function (r, v, q) {\n\t\tvar x = v[0];\n\t\tvar y = v[1];\n\t\tvar z = v[2];\n\n\t\tvar qx = q[0];\n\t\tvar qy = q[1];\n\t\tvar qz = q[2];\n\t\tvar qw = q[3];\n\n\t\tvar ix = qw * x + qy * z - qz * y;\n\t\tvar iy = qw * y + qz * x - qx * z;\n\t\tvar iz = qw * z + qx * y - qy * x;\n\t\tvar iw = -qx * x - qy * y - qz * z;\n\n\t\tr[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n\t\tr[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n\t\tr[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n\t}\n\n\tthis.sb = function (r, a, b) {\n\t\tvar qax = a[0], qay = a[1], qaz = a[2], qaw = a[3];\n\t\tvar qbx = b[0], qby = b[1], qbz = b[2], qbw = b[3];\n\n\t\tr[0] = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tr[1] = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tr[2] = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tr[3] = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\t}\n\t\n\tthis.mulqscalar = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t\tr[2] = a[2] * s;\n\t\tr[3] = a[3] * s;\n\t}\n\t\n\tthis.mulqscalar_ = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s, a[2] * s, a[3] * s];\n\t}\n\n\t// Expression-layer quat helpers (return-value style; see ExpressionConverter).\n\tthis.mulq_ = function (a, b) {\n\t\tvar r = [];\n\t\tctx.sb(r, a, b);\n\t\treturn r;\n\t}\n\n\tthis.inverseq_ = function (q) {\n\t\tvar d = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3];\n\t\treturn [-q[0] / d, -q[1] / d, -q[2] / d, q[3] / d];\n\t}\n\n\t// quat(w, x, y, z) -> [x, y, z, w] (mirrors CS _math.quat_ signature).\n\tthis.quat_ = function (w, x, y, z) {\n\t\treturn [x, y, z, w];\n\t}\n\n\tthis.tb = function (r, Pf, degree, scale, v) {\n\t\tvar rad = ctx.ib(degree);\n\t\tvar cos = Math.cos(rad) * scale;\n\t\tvar sin = Math.sin(rad) * scale;\n\t\tr[0] = Pf[0] + cos * v[0] - sin * v[1];\n\t\tr[1] = Pf[1] + sin * v[0] + cos * v[1];\n\t}\n\n\tthis.ub = function (r, Pf, degree, scale, v) {\n\t\tvar rad = ctx.ib(degree);\n\t\tvar cos = Math.cos(rad) / scale;\n\t\tvar sin = Math.sin(rad) / scale;\n\n\t\tr[0] = cos * v[0] + sin * v[1] - Pf[0] * cos - Pf[1] * sin;\n\t\tr[1] = cos * v[1] - sin * v[0] + Pf[0] * sin - Pf[1] * cos;\n\t}\n\n\tthis.vb = function (val) {\n\t\tif (val < 0)\n\t\t\treturn Math.floor(ctx.yd - 1 + val % ctx.yd);\n\t\telse\n\t\t\treturn Math.floor(val % ctx.yd);\n\t}\n\n\tfunction colorCompToHex_(c) {\n\t\treturn c < 16 ? \"0\" + c.toString(16) : c.toString(16);\n\t}\n\n\tthis.nf = function(rgb) {\n\t\treturn \"#\" \n\t\t\t+ colorCompToHex_(Math.floor(rgb[0] * 255)) \n\t\t\t+ colorCompToHex_(Math.floor(rgb[1] * 255)) \n\t\t\t+ colorCompToHex_(Math.floor(rgb[2] * 255));\n\t}\n\t\n\tthis.Bf = function(Df, Ff, Gf, a, b, Hf) {\n\t\tlet ca = ctx.f(a, Df);\n\t\tlet cb = ctx.f(b, Df);\n\t\t\n\t\tlet Ef = ctx.r(Ff, Gf);\n\t\t\t\t\n\t\tif ((ca[0] < -Ef[0] && cb[0] < -Ef[0])\n\t\t\t|| (ca[0] > Ef[0] && cb[0] > Ef[0])\n\t\t\t|| (ca[1] < -Ef[1] && cb[1] < -Ef[1])\n\t\t\t|| (ca[1] > Ef[1] && cb[1] > Ef[1])) \n\t\t{\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tif (ca[0] <= Ef[0] && ca[0] >= -Ef[0] && ca[1] <= Ef[1] && ca[1] >= -Ef[1])\n\t\t\treturn true;\n\t\t\n\t\tif (Hf < 0.000001)\n\t\t\treturn false;\n\t\t\n\t\tif (cb[0] <= Ef[0] && cb[0] >= -Ef[0] && cb[1] <= Ef[1] && cb[1] >= -Ef[1])\n\t\t\treturn true;\n\t\t\n\t\tlet If = ctx.f(b, a); ctx.s(If, If, Hf);\n\t\tlet Jf = [-If[1], If[0]];\n\t\tlet Kf = Math.abs(ctx.G(Jf, cb));\n\t\t\n\t\tif (Math.abs(ctx.G(Jf, Ef)) >= Kf) {\n\t\t\tlet Lf = [-Ff[1], Ff[0]];\n\t\t\tif (ctx.G(Lf, ca) * ctx.G(Lf, cb) <= 0.0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (Math.abs(ctx.G(Jf, [Ef[0], -Ef[1]])) >= Kf) {\n\t\t\tlet Lf = [Ff[1], Ff[0]];\n\t\t\tif (ctx.G(Lf, ca) * ctx.G(Lf, cb) <= 0.0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n\n\tthis.Cf = function(Df, Ff, Gf, a, b, Hf, Mf) {\n\t\tlet ca = ctx.f(a, Df);\n\t\tlet cb = ctx.f(b, Df);\n\t\t\n\t\tlet Ef = ctx.r(Ff, Gf);\n\t\t\n\t\tif (Hf < 0.000001)\n\t\t\treturn false;\n\t\t\n\t\tif ((ca[0] < -Ef[0] && cb[0] < -Ef[0])\n\t\t\t|| (ca[0] > Ef[0] && cb[0] > Ef[0])\n\t\t\t|| (ca[1] < -Ef[1] && cb[1] < -Ef[1])\n\t\t\t|| (ca[1] > Ef[1] && cb[1] > Ef[1])) \n\t\t{\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tlet If = ctx.f(b, a); ctx.s(If, If, Hf);\n\t\tlet Jf = [-If[1], If[0]];\n\t\tlet Kf = Math.abs(ctx.G(Jf, cb));\n\t\t\n\t\tif (Mf) {\n\t\t\tif (Math.abs(ctx.G(Jf, Ef)) >= Kf) {\n\t\t\t\tlet Lf = [-Ff[1], Ff[0]];\n\t\t\t\tif (ctx.G(Lf, ca) * ctx.G(Lf, cb) <= 0.0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (Math.abs(ctx.G(Jf, [Ef[0], -Ef[1]])) >= Kf) {\n\t\t\t\tlet Lf = [Ff[1], Ff[0]];\n\t\t\t\tif (ctx.G(Lf, ca) * ctx.G(Lf, cb) <= 0.0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n\t\n\tthis.wb = function (r, x, y, z) {\n\t\tvar rgbDisp = 3 * (y * ctx.yd + x);\n\t\tvar view = ctx.zd[z];\n\n\t\tr[0] = view.getUint8(rgbDisp);\n\t\tr[1] = view.getUint8(rgbDisp + 1);\n\t\tr[2] = view.getUint8(rgbDisp + 2);\n\t}\n\n\tthis.xb = function (r, Pf) {\n\t\tif (ctx.zd == null) {\n\t\t\tctx.W(r, 128, 128, 128);\n\t\t\treturn;\n\t\t}\n\n\t\tvar scaledPosX = Pf[0] * ctx.yd;\n\t\tvar scaledPosY = Pf[1] * ctx.yd;\n\t\tvar scaledPosZ = Pf[2] * ctx.yd;\n\n\t\tvar floorX = Math.floor(scaledPosX);\n\t\tvar floorY = Math.floor(scaledPosY);\n\t\tvar floorZ = Math.floor(scaledPosZ);\n\n\t\tvar fracX = scaledPosX - floorX;\n\t\tvar fracY = scaledPosY - floorY;\n\t\tvar fracZ = scaledPosZ - floorZ;\n\n\t\tvar noiseX = ctx.vb(floorX);\n\t\tvar noiseX1 = ctx.vb(floorX + 1);\n\t\tvar noiseY = ctx.vb(floorY);\n\t\tvar noiseY1 = ctx.vb(floorY + 1);\n\t\tvar noiseZ = ctx.vb(floorZ);\n\t\tvar noiseZ1 = ctx.vb(floorZ + 1);\n\n\t\tvar value000 = [], value001 = [], value010 = [], value011 = [],\n\t\t\tvalue100 = [], value101 = [], value110 = [], value111 = [];\n\n\t\tctx.wb(value000, noiseX, noiseY, noiseZ);\n\t\tctx.wb(value001, noiseX, noiseY, noiseZ1);\n\t\tctx.wb(value010, noiseX, noiseY1, noiseZ);\n\t\tctx.wb(value011, noiseX, noiseY1, noiseZ1);\n\t\tctx.wb(value100, noiseX1, noiseY, noiseZ);\n\t\tctx.wb(value101, noiseX1, noiseY, noiseZ1);\n\t\tctx.wb(value110, noiseX1, noiseY1, noiseZ);\n\t\tctx.wb(value111, noiseX1, noiseY1, noiseZ1);\n\n\t\tvar value00 = [], value01 = [], value10 = [], value11 = [];\n\t\tctx.ab(value00, value000, value001, fracZ);\n\t\tctx.ab(value01, value010, value011, fracZ);\n\t\tctx.ab(value10, value100, value101, fracZ);\n\t\tctx.ab(value11, value110, value111, fracZ);\n\n\t\tvar value0 = [], value1 = [];\n\t\tctx.ab(value0, value00, value01, fracY);\n\t\tctx.ab(value1, value10, value11, fracY);\n\n\t\tctx.ab(r, value0, value1, fracX);\n\t}\n\t\n\tthis.ImageDesc = function(image, x, y, width, height) {\n\t\tthis.image = image;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tthis.RenderCall = function (startIndex, numIndices, renderStyleIndex) {\n\t this.startIndex = startIndex;\n\t this.numIndices = numIndices;\n\t this.renderStyleIndex = renderStyleIndex;\n\t}\n\n\tthis.SubRect = function (x, y, width, height) {\n\t this.x = x;\n\t this.y = y;\n\t this.width = width;\n\t this.height = height;\n\t}\n\n\tthis.Camera2D = function () {\n\t}\n\n\tthis.Camera2D.prototype.tb = function (Pf, Nd) {\n\t return true;\n\t}\n\n\tthis.Camera3D = function (/**/screenSize, /**/horizAngle) {\n\t this.Qd = ctx.r(/**/screenSize, 0.5);\n\t this.z = -(/**/screenSize[0] * 0.5) / Math.tan(ctx.ib(/**/horizAngle * 0.5));\n\t}\n\n\tthis.Camera3D.prototype./**/transform = function (/**/pos, /**/size) {\n\t if (/**/pos[2] < this.z)\n\t return false;\n\n\t var scale = -this.z / (/**/pos[2] - this.z);\n\t ctx.a(/**/pos, ctx.r(ctx.f(/**/pos, this.Qd), scale), this.Qd);\n\t ctx.q(/**/size, /**/size, scale);\n\n\t return true;\n\t}\n\n\tthis.zd = null;\n\tthis.yd = 0;\n\n\tthis.initializeNoise = function(path, onloadcallback, onfailcallback) {\n\t\t\n\t\tif (!path) {\n\t\t\talert(\"path should be defined\");\n\t\t}\n\t\t\n\t\tif (this.zd != null) {\n\t\t\tonloadcallback();\n\t\t\treturn;\n\t\t}\n\n\t\tif (path == null || path == undefined)\n\t\t\tpath = this.defaultPath;\n\n\t\tvar request = new XMLHttpRequest();\n\t\trequest.open(\"GET\", path + \"neutrinoparticles.noise.bin\", true);\n\t\trequest.responseType = \"arraybuffer\";\n\t\trequest.ctx = this;\n\t\trequest.onreadystatechange = function () {\n\t\t\tif (request.readyState == 4) {\n\t\t\t\tif ((request.status >= 200 && request.status < 300) || request.status == 304) {\n\t\t\t\t\tvar zd = request.response;\n\t\t\t\t\tvar ctx = request.ctx;\n\n\t\t\t\t\tvar view = new DataView(zd, 0, 4);\n\t\t\t\t\tvar planeSize = view.getUint32(0, true);\n\t\t\t\t\tvar planesAtSide = Math.sqrt(planeSize);\n\t\t\t\t\tvar viewSideSize = planeSize * planesAtSide;\n\t\t\t\t\n\t\t\t\t\tctx.zd = [];\n\t\t\t\t\tctx.yd = planeSize;\n\n\t\t\t\t\tfor (var planeIndex = 0; planeIndex < planeSize; ++planeIndex) {\n\t\t\t\t\t\tctx.zd[planeIndex] = new DataView(zd,\n\t\t\t\t\t\t\t4/*size*/ + 3 * planeSize * planeSize * planeIndex);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (onloadcallback)\n\t\t\t\t\t\tonloadcallback();\n\t\t\t\t} else {\n\t\t\t\t\tif (onfailcallback)\n\t\t\t\t\t\tonfailcallback();\n\t\t\t\t}\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\trequest.send();\n\t}\n\n\tthis.NoiseGenerator = function () {\n\t\t\n\t\tvar catmullRom_ = function (p0, p1, p2, p3, t) {\n\t\t\treturn 0.5 * ((2.0 * p1) + (-p0 + p2) * t + (2.0 * p0 - 5.0 * p1 + 4.0 * p2 - p3) * t * t +\n\t\t\t(-p0 + 3.0 * p1 - 3.0 * p2 + p3) * (t * t * t));\n\t\t}\n\n\t\tvar catmullRomv3_ = function (p0, p1, p2, p3, t) {\n\t\t\treturn [\n\t\t\t\tcatmullRom_(p0[0], p1[0], p2[0], p3[0], t),\n\t\t\t\tcatmullRom_(p0[1], p1[1], p2[1], p3[1], t),\n\t\t\t\tcatmullRom_(p0[2], p1[2], p2[2], p3[2], t)\n\t\t\t\t];\n\t\t}\n\n\t\tvar clamp_ = function (a, from, to) {\n\t\t\treturn (a < from) ? from : ((a > to) ? to : a);\n\t\t}\n\t\t\t\n\t\tvar imageSize = 64;\n\t\tvar image = [];\n\t\tvar tempBuffer = [];\n\t\tvar tausGenerator = new ctx.taus88(120); // 120 - hardcoded starting seed\n\t\tvar rand = function () { return tausGenerator.rand(); };\n\t\tvar amp = 0.7; // hardcoded amplitude of perlin noise\n\t\tvar fadeDegree = 1.2; // hardcoded fade degree of each octave\n\t\tvar prevStep = imageSize;\n\n\t\tvar step, Nd, octSize, octSize2, octMaskSize, octPixels, octZ, octY; // mix step variables\n\n\t\tvar numMixStepIterations = 0;\n\t\tvar mixStepIteration = 0;\n\n\t\tfor (var i = prevStep >>> 1; i > 0; i >>>= 1) {\n\t\t\tvar _octSize = Math.floor(imageSize / i);\n\t\t\tnumMixStepIterations += _octSize * _octSize;\n\t\t}\n\n\t\tvar States = {\n\t\t\tINITIAL_FILL: 0,\n\t\t\tMIX_STEP_INIT: 1,\n\t\t\tMIX_STEP_PROCESS: 2,\n\t\t\tSCALING: 3,\n\t\t\tDATA_VIEWS: 4,\n\t\t\tFINISHED: 5\n\t\t};\n\n\t\tvar Progress = {\n\t\t\tINIT: 0.01,\n\t\t\tMIX: 0.9,\n\t\t\tSCALING: 0.95,\n\t\t\tDATA_VIEWS: 1.0\n\t\t}\n\n\t\tvar state = States.INITIAL_FILL;\n\n\t\tthis.progress = 0.0;\n\n\t\tvar initialFill = function () {\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z] = [];\n\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y] = [];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x] = [0.0, 0.0, 0.0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate = States.MIX_STEP_INIT;\n\t\t\tthis.progress = Progress.INIT;\n\t\t}\n\n\t\tvar mixStepInit = function () {\n\n\t\t\tstep = prevStep >>> 1;\n\t\t\tNd = imageSize;\n\t\t\toctSize = Math.floor(Nd / step);\n\t\t\toctSize2 = octSize * octSize;\n\t\t\toctMaskSize = Math.max(octSize - 1, 1);\n\t\t\toctPixels = octSize * octSize * octSize;\n\t\t\toctZ = 0;\n\t\t\toctY = 0;\n\n\t\t\tfor (var i = 0; i < octPixels; ++i) {\n\t\t\t\ttempBuffer[i] = [];\n\t\t\t\t// order is inverted to satisfy c++ obsolete order\n\t\t\t\ttempBuffer[i][2] = rand() * 2.0 - 1.0;\n\t\t\t\ttempBuffer[i][1] = rand() * 2.0 - 1.0;\n\t\t\t\ttempBuffer[i][0] = rand() * 2.0 - 1.0;\n\t\t\t}\n\n\t\t\tstate = States.MIX_STEP_PROCESS;\n\t\t}\n\n\t\tvar mixStepProcess = function() {\n\t\t\tfor (var octX = 0; octX < octSize; ++octX) {\n\t\t\t\tvar octZ0 = ((octZ - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ1 = ((octZ) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ2 = ((octZ + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ3 = ((octZ + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar octY0 = ((octY - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octY1 = ((octY) >>> 0) & octMaskSize;\n\t\t\t\tvar octY2 = ((octY + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octY3 = ((octY + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar octX0 = ((octX - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octX1 = ((octX) >>> 0) & octMaskSize;\n\t\t\t\tvar octX2 = ((octX + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octX3 = ((octX + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar values = //zyx\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t]\n\t\t\t\t];\n\n\t\t\t\tfor (var inZ = 0; inZ < step; ++inZ) {\n\t\t\t\t\tvar interpZ = inZ / step;\n\t\t\t\t\tvar imageZ = octZ * step + inZ;\n\n\t\t\t\t\tvar valuesP = //yx\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][0], values[1][0][0], values[2][0][0], values[3][0][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][1], values[1][0][1], values[2][0][1], values[3][0][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][2], values[1][0][2], values[2][0][2], values[3][0][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][3], values[1][0][3], values[2][0][3], values[3][0][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][0], values[1][1][0], values[2][1][0], values[3][1][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][1], values[1][1][1], values[2][1][1], values[3][1][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][2], values[1][1][2], values[2][1][2], values[3][1][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][3], values[1][1][3], values[2][1][3], values[3][1][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][0], values[1][2][0], values[2][2][0], values[3][2][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][1], values[1][2][1], values[2][2][1], values[3][2][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][2], values[1][2][2], values[2][2][2], values[3][2][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][3], values[1][2][3], values[2][2][3], values[3][2][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][0], values[1][3][0], values[2][3][0], values[3][3][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][1], values[1][3][1], values[2][3][1], values[3][3][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][2], values[1][3][2], values[2][3][2], values[3][3][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][3], values[1][3][3], values[2][3][3], values[3][3][3], interpZ)\n\t\t\t\t\t\t]\n\t\t\t\t\t];\n\n\t\t\t\t\tfor (var inY = 0; inY < step; ++inY) {\n\t\t\t\t\t\tvar interpY = inY / step;\n\t\t\t\t\t\tvar imageY = octY * step + inY;\n\n\t\t\t\t\t\tvar value0 = catmullRomv3_(valuesP[0][0], valuesP[1][0], valuesP[2][0],\n\t\t\t\t\t\t\tvaluesP[3][0], interpY);\n\t\t\t\t\t\tvar value1 = catmullRomv3_(valuesP[0][1], valuesP[1][1], valuesP[2][1],\n\t\t\t\t\t\t\tvaluesP[3][1], interpY);\n\t\t\t\t\t\tvar value2 = catmullRomv3_(valuesP[0][2], valuesP[1][2], valuesP[2][2],\n\t\t\t\t\t\t\tvaluesP[3][2], interpY);\n\t\t\t\t\t\tvar value3 = catmullRomv3_(valuesP[0][3], valuesP[1][3], valuesP[2][3],\n\t\t\t\t\t\t\tvaluesP[3][3], interpY);\n\n\t\t\t\t\t\tfor (var inX = 0; inX < step; ++inX) {\n\t\t\t\t\t\t\tvar interpX = inX / step;\n\t\t\t\t\t\t\tvar imageX = octX * step + inX;\n\n\t\t\t\t\t\t\tvar octResult = catmullRomv3_(value0, value1, value2, value3, interpX);\n\t\t\t\t\t\t\tvar result = ctx.d(ctx.v(octResult, amp), image[imageZ][imageY][imageX]);\n\t\t\t\t\t\t\tvar clampedResult = [\n\t\t\t\t\t\t\t\tclamp_(result[0], -1.0, 1.0),\n\t\t\t\t\t\t\t\tclamp_(result[1], -1.0, 1.0),\n\t\t\t\t\t\t\t\tclamp_(result[2], -1.0, 1.0)\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\timage[imageZ][imageY][imageX] = clampedResult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmixStepIteration++;\n\t\t\tthis.progress = Progress.INIT + (Progress.MIX - Progress.INIT) * (mixStepIteration / numMixStepIterations);\n\n\t\t\toctY++;\n\t\t\tif (octY >= octSize) {\n\t\t\t\toctY = 0;\n\t\t\t\toctZ++;\n\t\t\t\tif (octZ >= octSize) {\n\t\t\t\t\toctZ = 0;\n\n\t\t\t\t\tprevStep = step;\n\t\t\t\t\tamp = Math.pow(amp, fadeDegree);\n\t\t\t\t\t\n\t\t\t\t\tif (prevStep <= 1) {\n\t\t\t\t\t\tstate = States.SCALING;\n\t\t\t\t\t\tthis.progress = Progress.MIX;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = States.MIX_STEP_INIT;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// hardcoded scaling of the image to make it more symethric\n\t\tvar scaling = function() {\n\t\t\tvar low = [-1.0, -1.0, -1.0];\n\t\t\tvar high = [0.5, 0.7, 1.0];\n\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z];\n\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x];\n\t\t\t\t\t\timageZYX[0] = ctx.X(low[0], high[0], imageZYX[0] * 0.5 + 0.5);\n\t\t\t\t\t\timageZYX[1] = ctx.X(low[1], high[1], imageZYX[1] * 0.5 + 0.5);\n\t\t\t\t\t\timageZYX[2] = ctx.X(low[2], high[2], imageZYX[2] * 0.5 + 0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate = States.DATA_VIEWS;\n\t\t\tthis.progress = Progress.SCALING;\n\t\t}\n\n\t\t// filling noise DataViews\n\t\tvar dataViews = function() {\n\t\t\tctx.yd = imageSize;\n\t\t\tctx.zd = [];\n\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z];\n\t\t\t\n\t\t\t\tvar plane = new ArrayBuffer(imageSize * imageSize * 3);\n\t\t\t\tvar view = new DataView(plane);\n\t\t\t\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x];\n\n\t\t\t\t\t\tvar rgbOffset = (y * imageSize + x) * 3;\n\t\t\t\t\t\tview.setUint8(rgbOffset + 0,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[0] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t\tview.setUint8(rgbOffset + 1,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[1] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t\tview.setUint8(rgbOffset + 2,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[2] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tctx.zd[z] = view;\n\t\t\t}\n\n\t\t\tstate = States.FINISHED;\n\t\t\tthis.progress = Progress.DATA_VIEWS;\n\t\t}\n\n\t\tthis.step = function() {\n\t\t\tswitch (state) {\n\t\t\t\tcase States.INITIAL_FILL: initialFill.call(this); break;\n\t\t\t\tcase States.MIX_STEP_INIT: mixStepInit.call(this); break;\n\t\t\t\tcase States.MIX_STEP_PROCESS: mixStepProcess.call(this); break;\n\t\t\t\tcase States.SCALING: scaling.call(this); break;\n\t\t\t\tcase States.DATA_VIEWS: dataViews.call(this); break;\n\t\t\t}\n\n\t\t\treturn state == States.FINISHED;\n\t\t}\n\t}\n\n\t// Lazy-create offscreen canvas only if DOM available (allows Node.js tests).\n\tif (typeof document !== 'undefined' && document.createElement) {\n\t\tthis.kf = document.createElement('canvas');\n\t\tthis.kf.width = 0;\n\t\tthis.kf.height = 0;\n\t\tthis.jf = this.kf.getContext('2d');\n\t} else {\n\t\tthis.kf = { width: 0, height: 0 };\n\t\tthis.jf = null;\n\t}\n\n\tthis.if = function(minWidth, minHeight) {\n\t\tif (this.kf.width < minWidth || this.kf.height < minHeight) {\n\t\t\tthis.kf.width = minWidth;\n\t\t\tthis.kf.height = minHeight;\n\t\t\tthis.jf = this.kf.getContext('2d');\n\t\t}\n\t}\n\t\n\tthis.effects = [];\n\t\n\tthis.loadEffect = function(effectFilePath, onSuccessFunc, onFailFunc) {\n\n\t\tif (this.effects[effectFilePath] != undefined) {\n\t\t\t\t\t\t\n\t\t\tvar effectModel = this.effects[effectFilePath];\n\t\t\t\n\t\t\tif (effectModel instanceof Array) {\n\t\t\t\teffectModel[effectModel.length] = [onSuccessFunc, onFailFunc];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tonSuccessFunc(effectModel);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.effects[effectFilePath] = [[onSuccessFunc, onFailFunc]];\n\t\t\n\t\tvar request = new XMLHttpRequest();\n\t\trequest.open(\"GET\", effectFilePath, true);\n\t\trequest.responseType = \"text\";\n\t\trequest.ctx = this;\n\t\trequest.onreadystatechange = function () {\n\t\t\tif (request.readyState == 4) {\n\t\t\t\tvar callbacks = this.ctx.effects[effectFilePath];\n\t\t\t\t\n\t\t\t\tif ((request.status >= 200 && request.status < 300) || request.status == 304) {\n\t\t\t\t\t\n\t\t\t\t\tvar evalText = \"(function(ctx) {\\n\" + \n\t\t\t\t\t\trequest.responseText + \n\t\t\t\t\t\t\"\\nreturn new NeutrinoEffect(ctx);\\n})(this.ctx);\";\n\t\t\t\t\tvar effectModel = eval(evalText);\n\t\t\t\t\tthis.ctx.effects[effectFilePath] = effectModel;\n\t\t\t\t\t\n\t\t\t\t\tcallbacks.forEach(function(callback) {\n\t\t\t\t\t\tcallback[0](effectModel);\n\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tcallbacks.forEach(function(callback) {\n\t\t\t\t\t\tcallback[1]();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\trequest.send();\n\t}\n\t\n\tthis.removeEffect = function(effectFilePath) {\n\t\tdelete this.effects[effectFilePath];\n\t}\n}\n\n"],"names":["Context","ctx","equalv3_","a","b","equalq_","r","y","s","z","c","d","C","D","addq","addq_","e","f","A","B","vf","wf","g","h","E","F","zf","Af","i","j","k","l","m","n","o","p","H","dotq_","q","t","u","v","w","x","G","I","ax","ay","az","bx","by","bz","J","K","Math","sqrt","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ab","bb","slerpq","cosTheta","negq","Number","EPSILON","Md","acos_","mulqscalar","mulqscalar_","sin_","slerpq_","acos","sin","cos_","cos","taus88","seed","value0","value1","value2","s0","rand","engine","cb","radius","randv2gen","random","gen","PI","db","randv3gen","theta","sqrtInvZ2","yb","Nd","dispx","dispy","eb","fb","gb","hb","negq_","ib","degrees","jb","radians","Ae","value","ob","x2","y2","z2","xy","xz","yz","wz","wy","wx","pb","tr","axes2quat","qb","ha","axisangle2quat","axisangle2quat_","rb","qx","qy","qz","qw","ix","iy","iz","iw","sb","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","mulq_","inverseq_","quat_","tb","Pf","degree","scale","rad","ub","vb","val","floor","yd","colorCompToHex_","toString","nf","rgb","Bf","Df","Ff","Gf","Hf","ca","Ef","If","Jf","Kf","abs","Lf","Cf","Mf","wb","rgbDisp","view","zd","getUint8","xb","scaledPosX","scaledPosY","scaledPosZ","floorX","floorY","floorZ","fracX","fracY","fracZ","noiseX","noiseX1","noiseY","noiseY1","noiseZ","noiseZ1","value000","value001","value010","value011","value100","value101","value110","value111","value00","value01","value10","value11","ImageDesc","image","width","height","RenderCall","startIndex","numIndices","renderStyleIndex","SubRect","Camera2D","prototype","Camera3D","screenSize","horizAngle","Qd","tan","transform","pos","size","initializeNoise","path","onloadcallback","onfailcallback","alert","undefined","defaultPath","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","status","response","DataView","planeSize","getUint32","planeIndex","send","NoiseGenerator","catmullRom_","p0","p1","p2","p3","catmullRomv3_","clamp_","from","to","imageSize","tempBuffer","tausGenerator","amp","fadeDegree","prevStep","step","octSize","octSize2","octMaskSize","octPixels","octZ","octY","numMixStepIterations","mixStepIteration","_octSize","States","INITIAL_FILL","MIX_STEP_INIT","MIX_STEP_PROCESS","SCALING","DATA_VIEWS","FINISHED","Progress","INIT","MIX","state","progress","initialFill","imageZ","imageZY","imageZYX","mixStepInit","max","mixStepProcess","octX","octZ0","octZ1","octZ2","octZ3","octY0","octY1","octY2","octY3","octX0","octX1","octX2","octX3","values","inZ","interpZ","valuesP","inY","interpY","imageY","value3","inX","interpX","imageX","octResult","result","clampedResult","pow","scaling","low","high","dataViews","plane","ArrayBuffer","rgbOffset","setUint8","call","document","createElement","kf","jf","getContext","minWidth","minHeight","effects","loadEffect","effectFilePath","onSuccessFunc","onFailFunc","effectModel","Array","length","callbacks","evalText","responseText","eval","forEach","callback","removeEffect"],"mappings":";;;;;;CAEO,SAASA,OAAOA,GAAG;GACzB,IAAIC,GAAG,GAAG,IAAI;;GAEd,IAAI,CAACC,QAAQ,GAAG,UAASC,CAAC,EAAEC,CAAC,EAAE;KAC9B,OAAOD,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC;IACnD;;GAED,IAAI,CAACC,OAAO,GAAG,UAASF,CAAC,EAAEC,CAAC,EAAE;KAC7B,OAAOD,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,CAAC,CAAC;IACnE;;GAED,IAAI,CAACD,CAAC,GAAG,UAAUG,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACA,CAAC,GAAG,UAAUD,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC;;GAED,IAAI,CAACG,CAAC,GAAG,UAAUD,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KACxBF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IAClB;;GAED,IAAI,CAACC,CAAC,GAAG,UAAUN,CAAC,EAAEK,CAAC,EAAE;KACrB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC9B;;GAED,IAAI,CAACE,CAAC,GAAG,UAAUJ,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACO,CAAC,GAAG,UAAUR,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAACQ,CAAC,GAAG,UAAUN,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KACxBF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IAClB;;GAED,IAAI,CAACK,CAAC,GAAG,UAAUV,CAAC,EAAEK,CAAC,EAAE;KACrB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IACxC;;GAED,IAAI,CAACM,IAAI,GAAG,UAAUR,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC9BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACW,KAAK,GAAG,UAAUZ,CAAC,EAAEC,CAAC,EAAE;KAC5B,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D;;GAED,IAAI,CAACY,CAAC,GAAG,UAAUV,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACa,CAAC,GAAG,UAAUd,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC;;GAED,IAAI,CAACc,CAAC,GAAG,UAAUZ,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KACxBF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IAClB;;GAED,IAAI,CAACW,CAAC,GAAG,UAAUhB,CAAC,EAAEK,CAAC,EAAE;KACrB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC9B;;GAED,IAAI,CAACY,EAAE,GAAG,UAAUd,CAAC,EAAEE,CAAC,EAAEL,CAAC,EAAE;KACzBG,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;KACfG,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACkB,EAAE,GAAG,UAAUb,CAAC,EAAEL,CAAC,EAAE;KACtB,OAAO,CAACK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,EAAEK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B;;GAED,IAAI,CAACmB,CAAC,GAAG,UAAUhB,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACmB,CAAC,GAAG,UAAUpB,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAACoB,CAAC,GAAG,UAAUlB,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KACxBF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IAClB;;GAED,IAAI,CAACiB,CAAC,GAAG,UAAUtB,CAAC,EAAEK,CAAC,EAAE;KACrB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IACxC;;GAED,IAAI,CAACkB,EAAE,GAAG,UAAUpB,CAAC,EAAEE,CAAC,EAAEL,CAAC,EAAE;KACzBG,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;KACfG,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;KACfG,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACwB,EAAE,GAAG,UAAUnB,CAAC,EAAEL,CAAC,EAAE;KACtB,OAAO,CAACK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,EAAEK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,EAAEK,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC;;GAED,IAAI,CAACyB,CAAC,GAAG,UAAUtB,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAACyB,CAAC,GAAG,UAAU1B,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC;;GAED,IAAI,CAAC0B,CAAC,GAAG,UAAUxB,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAAC2B,CAAC,GAAG,UAAU5B,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAAC4B,CAAC,GAAG,UAAU1B,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAAC6B,CAAC,GAAG,UAAU9B,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC;;GAED,IAAI,CAAC8B,CAAC,GAAG,UAAU5B,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3BE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;KAClBE,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAClB;;GAED,IAAI,CAAC+B,CAAC,GAAG,UAAUhC,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAACgC,CAAC,GAAG,UAASjC,CAAC,EAAEC,CAAC,EAAE;KACvB,OAAOD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAACiC,KAAK,GAAG,UAASlC,CAAC,EAAEC,CAAC,EAAE;KAC3B,OAAOD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAC5D;;GAED,IAAI,CAACkC,CAAC,GAAG,UAAUhC,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACF,CAAC,GAAG,UAAUH,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC3B;;GAED,IAAI,CAACA,CAAC,GAAG,UAAUF,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAAC+B,CAAC,GAAG,UAAUpC,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC3B;;GAED,IAAI,CAACgC,CAAC,GAAG,UAAUlC,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACiC,CAAC,GAAG,UAAUtC,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IACrC;;GAED,IAAI,CAACkC,CAAC,GAAG,UAAUpC,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACmC,CAAC,GAAG,UAAUxC,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IACrC;;GAED,IAAI,CAACD,CAAC,GAAG,UAAUD,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACC,CAAC,GAAG,UAAUN,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC3B;;GAED,IAAI,CAACU,CAAC,GAAG,UAAUZ,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KAC3BF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACW,CAAC,GAAG,UAAUhB,CAAC,EAAEK,CAAC,EAAE;KACxB,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC3B;;GAED,IAAI,CAACoC,CAAC,GAAG,UAAUzC,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAOD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAChC;;GAED,IAAI,CAACgC,CAAC,GAAG,UAAUjC,CAAC,EAAEC,CAAC,EAAE;KACxB,OAAOD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAACyC,CAAC,GAAG,UAAUvC,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC3B,IAAI0C,EAAE,GAAG3C,CAAC,CAAC,CAAC,CAAC,CAAE4C,EAAE,GAAG5C,CAAC,CAAC,CAAC,CAAC,CAAE6C,EAAE,GAAG7C,CAAC,CAAC,CAAC,CAAC;KACnC,IAAI8C,EAAE,GAAG7C,CAAC,CAAC,CAAC,CAAC,CAAE8C,EAAE,GAAG9C,CAAC,CAAC,CAAC,CAAC,CAAE+C,EAAE,GAAG/C,CAAC,CAAC,CAAC,CAAC;;KAEnCE,CAAC,CAAC,CAAC,CAAC,GAAGyC,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE;KACxB5C,CAAC,CAAC,CAAC,CAAC,GAAG0C,EAAE,GAAGC,EAAE,GAAGH,EAAE,GAAGK,EAAE;KACxB7C,CAAC,CAAC,CAAC,CAAC,GAAGwC,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE;IACxB;;GAED,IAAI,CAACG,CAAC,GAAG,UAAUjD,CAAC,EAAEC,CAAC,EAAE;KACxB,IAAI0C,EAAE,GAAG3C,CAAC,CAAC,CAAC,CAAC,CAAE4C,EAAE,GAAG5C,CAAC,CAAC,CAAC,CAAC,CAAE6C,EAAE,GAAG7C,CAAC,CAAC,CAAC,CAAC;KACnC,IAAI8C,EAAE,GAAG7C,CAAC,CAAC,CAAC,CAAC,CAAE8C,EAAE,GAAG9C,CAAC,CAAC,CAAC,CAAC,CAAE+C,EAAE,GAAG/C,CAAC,CAAC,CAAC,CAAC;;KAEnC,OAAO,CAAC2C,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE;KACxBF,EAAE,GAAGC,EAAE,GAAGH,EAAE,GAAGK,EAAE;KACjBL,EAAE,GAAGI,EAAE,GAAGH,EAAE,GAAGE,EAAE,CAAC;IACnB;;GAED,IAAI,CAACI,CAAC,GAAG,UAAUlD,CAAC,EAAE;KACrB,OAAOmD,IAAI,CAACC,IAAI,CAACpD,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C;;GAED,IAAI,CAACqD,CAAC,GAAG,UAAUrD,CAAC,EAAE;KACrB,OAAOA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;IAChC;;GAED,IAAI,CAACsD,CAAC,GAAG,UAAUnD,CAAC,EAAEH,CAAC,EAAE;KACxBF,GAAG,CAACqC,CAAC,CAAChC,CAAC,EAAEH,CAAC,EAAE,GAAG,GAAGF,GAAG,CAACoD,CAAC,CAAClD,CAAC,CAAC,CAAC;IAC3B;;GAED,IAAI,CAACuD,CAAC,GAAG,UAAUvD,CAAC,EAAE;KACrB,OAAOF,GAAG,CAACK,CAAC,CAACH,CAAC,EAAE,GAAG,GAAGF,GAAG,CAACoD,CAAC,CAAClD,CAAC,CAAC,CAAC;IAC/B;;GAED,IAAI,CAACwD,CAAC,GAAG,UAAUxD,CAAC,EAAE;KACrB,OAAOmD,IAAI,CAACC,IAAI,CAACpD,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD;;GAED,IAAI,CAACyD,CAAC,GAAG,UAAUzD,CAAC,EAAE;KACrB,OAAOA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;IAC9C;;GAED,IAAI,CAAC0D,CAAC,GAAG,UAAUvD,CAAC,EAAEH,CAAC,EAAE;KACxBF,GAAG,CAACuC,CAAC,CAAClC,CAAC,EAAEH,CAAC,EAAE,GAAG,GAAGF,GAAG,CAAC0D,CAAC,CAACxD,CAAC,CAAC,CAAC;IAC3B;;GAED,IAAI,CAAC2D,CAAC,GAAG,UAAU3D,CAAC,EAAE;KACrB,OAAOF,GAAG,CAACwC,CAAC,CAACtC,CAAC,EAAE,GAAG,GAAGF,GAAG,CAAC0D,CAAC,CAACxD,CAAC,CAAC,CAAC;IAC/B;;GAED,IAAI,CAAC4D,CAAC,GAAG,UAAUzD,CAAC,EAAEH,CAAC,EAAE;KACxBG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;IACX;;GAED,IAAI,CAAC6D,CAAC,GAAG,UAAU1D,CAAC,EAAEH,CAAC,EAAE;KACxBG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;IACX;;GAED,IAAI,CAAC8D,CAAC,GAAG,UAAU3D,CAAC,EAAEH,CAAC,EAAE;KACxBG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;KACXG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;IACX;;GAED,IAAI,CAAC+D,CAAC,GAAG,UAAU5D,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAE;KAC3BD,CAAC,CAAC,CAAC,CAAC,GAAGqC,CAAC;KACRrC,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC;IACR;;GAED,IAAI,CAAC4D,CAAC,GAAG,UAAU7D,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAE;KAC9BH,CAAC,CAAC,CAAC,CAAC,GAAGqC,CAAC;KACRrC,CAAC,CAAC,CAAC,CAAC,GAAGC,CAAC;KACRD,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC;IACR;;GAED,IAAI,CAAC2D,CAAC,GAAG,UAAUjE,CAAC,EAAEC,CAAC,EAAEwB,CAAC,EAAE;KAC3B,OAAOzB,CAAC,GAAG,CAACC,CAAC,GAAGD,CAAC,IAAIyB,CAAC;IACtB;;GAED,IAAI,CAACyC,CAAC,GAAG,UAAU/D,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAEwB,CAAC,EAAE;KAC9BtB,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KAC/BtB,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;IAC/B;;GAED,IAAI,CAAC0C,CAAC,GAAG,UAAUnE,CAAC,EAAEC,CAAC,EAAEwB,CAAC,EAAE;KAC3B,OAAO,CAACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KAC/BzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC,CAAC;IAC1B;;GAED,IAAI,CAAC2C,EAAE,GAAG,UAAUjE,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAEwB,CAAC,EAAE;KAC/BtB,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KAC/BtB,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KAC/BtB,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;IAC/B;;GAED,IAAI,CAAC4C,EAAE,GAAG,UAAUrE,CAAC,EAAEC,CAAC,EAAEwB,CAAC,EAAE;KAC5B,OAAO,CAACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KAC/BzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC;KACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,IAAIyB,CAAC,CAAC;IAC1B;;GAED,IAAI,CAAC6C,MAAM,GAAG,UAASnE,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAEJ,CAAC,EAAE;KAClC,IAAIuE,QAAQ,GAAGzE,GAAG,CAACoC,KAAK,CAACM,CAAC,EAAEpC,CAAC,CAAC;;KAE9B,IAAIE,CAAC,GAAG,EAAE;;KAEV,IAAIiE,QAAQ,GAAG,CAAC,EAAE;OACjBzE,GAAG,CAAC0E,IAAI,CAAClE,CAAC,EAAEF,CAAC,CAAC;OACdmE,QAAQ,GAAG,CAACA,QAAQ;MACpB;KACI;OACJzE,GAAG,CAACgE,CAAC,CAACxD,CAAC,EAAEF,CAAC,CAAC;;;KAGZ,IAAK,GAAG,GAAGmE,QAAQ,GAAIE,MAAM,CAACC,OAAO,EAAE;OACtCvE,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAACmE,CAAC,CAACzB,CAAC,CAAC,CAAC,CAAC,EAAEpC,CAAC,CAAC,CAAC,CAAC,EAAEJ,CAAC,CAAC;OAC3BG,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAACmE,CAAC,CAACzB,CAAC,CAAC,CAAC,CAAC,EAAEpC,CAAC,CAAC,CAAC,CAAC,EAAEJ,CAAC,CAAC;OAC3BG,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAACmE,CAAC,CAACzB,CAAC,CAAC,CAAC,CAAC,EAAEpC,CAAC,CAAC,CAAC,CAAC,EAAEJ,CAAC,CAAC;OAC3BG,CAAC,CAAC,CAAC,CAAC,GAAGL,GAAG,CAACmE,CAAC,CAACzB,CAAC,CAAC,CAAC,CAAC,EAAEpC,CAAC,CAAC,CAAC,CAAC,EAAEJ,CAAC,CAAC;MAC3B;KACI;OACJ,IAAI2E,EAAE,GAAG7E,GAAG,CAAC8E,KAAK,CAACL,QAAQ,CAAC;;OAE5BzE,GAAG,CAAC+E,UAAU,CAAC1E,CAAC,EAAEL,GAAG,CAACc,KAAK,CAACd,GAAG,CAACgF,WAAW,CAACtC,CAAC,EAAE1C,GAAG,CAACiF,IAAI,CAAC,CAAC,GAAG,GAAG/E,CAAC,IAAI2E,EAAE,CAAC,CAAC,EAAE7E,GAAG,CAACgF,WAAW,CAACxE,CAAC,EAAER,GAAG,CAACiF,IAAI,CAAC/E,CAAC,GAAG2E,EAAE,CAAC,CAAC,CAAC;OAC9G,GAAG,GAAG7E,GAAG,CAACiF,IAAI,CAACJ,EAAE,CAAC,CAAC;;IAErB;;GAED,IAAI,CAACK,OAAO,GAAG,UAASxC,CAAC,EAAEpC,CAAC,EAAEJ,CAAC,EAAE;KAChC,IAAIG,CAAC,GAAG,EAAE;KACVL,GAAG,CAACwE,MAAM,CAACnE,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAEJ,CAAC,CAAC;KACtB,OAAOG,CAAC;IACR;;;;GAID,IAAI,CAACyE,KAAK,GAAG,UAAS5E,CAAC,EAAE;KACxB,OAAOmD,IAAI,CAAC8B,IAAI,CAACjF,CAAC,CAAC;IACnB;;GAED,IAAI,CAAC+E,IAAI,GAAG,UAAS/E,CAAC,EAAE;KACvB,OAAOmD,IAAI,CAAC+B,GAAG,CAAClF,CAAC,CAAC;IAClB;;GAED,IAAI,CAACmF,IAAI,GAAG,UAASnF,CAAC,EAAE;KACvB,OAAOmD,IAAI,CAACiC,GAAG,CAACpF,CAAC,CAAC;IAClB;;;;GAID,IAAI,CAACqF,MAAM,GAAG,UAASC,IAAI;GAC3B;KACC,IAAI,CAACA,IAAI;KACRA,IAAI,GAAG,CAAC;;KAET,IAAIC,MAAM,EAAEC,MAAM,EAAEC,MAAM;;KAE1B,IAAI,CAACH,IAAI,GAAG,UAASI,EAAE,EAAE;OACxBA,EAAE,IAAI,UAAU;;OAEhBH,MAAM,GAAGG,EAAE,GAAG,CAAC,GAAGA,EAAE,GAAG,CAAC,GAAGA,EAAE;OAC7BF,MAAM,GAAGE,EAAE,GAAG,CAAC,GAAGA,EAAE,GAAG,CAAC,GAAGA,EAAE;OAC7BD,MAAM,GAAGC,EAAE,GAAG,EAAE,GAAGA,EAAE,GAAG,EAAE,GAAGA,EAAE;MAC/B;;KAED,IAAI,CAACC,IAAI,GAAG,YAAW;OACtB,IAAI1F,CAAC,GAAG,CAAC,CAAEsF,MAAM,IAAI,EAAE,GAAIA,MAAM,IAAI,UAAU,MAAM,EAAE;OACvDA,MAAM,GAAG,CAAE,CAACA,MAAM,GAAG,UAAU,KAAK,EAAE,GAAItF,CAAC,MAAM,CAAC;;OAElDA,CAAC,GAAG,CAAC,CAAEuF,MAAM,IAAI,CAAC,GAAIA,MAAM,IAAI,UAAU,MAAM,EAAE;OAClDA,MAAM,GAAG,CAAE,CAACA,MAAM,GAAG,UAAU,KAAK,CAAC,GAAIvF,CAAC,MAAM,CAAC;;OAEjDA,CAAC,GAAG,CAAC,CAAEwF,MAAM,IAAI,CAAC,GAAIA,MAAM,IAAI,UAAU,MAAM,EAAE;OAClDA,MAAM,GAAG,CAAE,CAACA,MAAM,GAAG,UAAU,KAAK,EAAE,GAAIxF,CAAC,MAAM,CAAC;;OAElD,IAAI2F,MAAM,GAAG,CAAEL,MAAM,GAAGC,MAAM,GAAIC,MAAM,MAAM,CAAC;OAC/C,OAAOG,MAAM,GAAG,YAAY;MAC5B;;KAED,IAAI,CAACN,IAAI,CAACA,IAAI,CAAC;IACf;;GAED,IAAI,CAACO,EAAE,GAAG,UAAU1F,CAAC,EAAE2F,MAAM,EAAE;KAC9B,IAAI,CAACC,SAAS,CAAC5F,CAAC,EAAE2F,MAAM,EAAE,YAAY,CAAE,OAAO3C,IAAI,CAAC6C,MAAM,EAAE,CAAE,CAAC,CAAC;IAChE;;GAED,IAAI,CAACD,SAAS,GAAG,UAAU5F,CAAC,EAAE2F,MAAM,EAAEG,GAAG,EAAE;KAC1C,IAAItB,EAAE,GAAGsB,GAAG,EAAE,GAAG9C,IAAI,CAAC+C,EAAE,GAAG,GAAG;KAC9B/F,CAAC,CAAC,CAAC,CAAC,GAAG2F,MAAM,GAAGhG,GAAG,CAACqF,IAAI,CAACR,EAAE,CAAC;KAC5BxE,CAAC,CAAC,CAAC,CAAC,GAAG2F,MAAM,GAAGhG,GAAG,CAACiF,IAAI,CAACJ,EAAE,CAAC;IAC5B;;GAED,IAAI,CAACwB,EAAE,GAAG,UAAUhG,CAAC,EAAE2F,MAAM,EAAE;KAC9B,IAAI,CAACM,SAAS,CAACjG,CAAC,EAAE2F,MAAM,EAAE,YAAY,CAAE,OAAO3C,IAAI,CAAC6C,MAAM,EAAE,CAAE,CAAC,CAAC;IAChE;;GAED,IAAI,CAACI,SAAS,GAAG,UAAUjG,CAAC,EAAE2F,MAAM,EAAEG,GAAG,EAAE;KAC1C,IAAII,KAAK,GAAGJ,GAAG,EAAE,GAAG9C,IAAI,CAAC+C,EAAE,GAAG,GAAG;KACjC,IAAI5F,CAAC,GAAG,CAAC,GAAG,GAAG2F,GAAG,EAAE,GAAG,GAAG;KAC1B,IAAIK,SAAS,GAAGR,MAAM,GAAG3C,IAAI,CAACC,IAAI,CAAC,GAAG,GAAG9C,CAAC,GAAGA,CAAC,CAAC;KAC/CH,CAAC,CAAC,CAAC,CAAC,GAAGmG,SAAS,GAAGxG,GAAG,CAACqF,IAAI,CAACkB,KAAK,CAAC;KAClClG,CAAC,CAAC,CAAC,CAAC,GAAGmG,SAAS,GAAGxG,GAAG,CAACiF,IAAI,CAACsB,KAAK,CAAC;KAClClG,CAAC,CAAC,CAAC,CAAC,GAAG2F,MAAM,GAAGxF,CAAC;IACjB;;GAED,IAAI,CAACiG,EAAE,GAAG,UAASpG,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAEoG,EAAE,EAAEP,GAAG,EAAE;KACpC,IAAIQ,KAAK,GAAGjE,CAAC,GAAGyD,GAAG,EAAE,GAAGO,EAAE,CAAC,CAAC,CAAC;KAC7B,IAAIE,KAAK,GAAGtG,CAAC,GAAG6F,GAAG,EAAE,GAAGO,EAAE,CAAC,CAAC,CAAC;KAC7B1G,GAAG,CAACiE,CAAC,CAAC5D,CAAC,EAAEsG,KAAK,EAAEC,KAAK,CAAC;IACtB;;GAED,IAAI,CAACC,EAAE,GAAG,UAAUxG,CAAC,EAAEH,CAAC,EAAE;KACzBF,GAAG,CAACiE,CAAC,CAAC,CAAC/D,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB;;GAED,IAAI,CAAC4G,EAAE,GAAG,UAAU5G,CAAC,EAAE;KACtB,OAAO,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB;;GAED,IAAI,CAAC6G,EAAE,GAAG,UAAU1G,CAAC,EAAEH,CAAC,EAAE;KACzBF,GAAG,CAACkE,CAAC,CAAC,CAAChE,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B;;GAED,IAAI,CAAC8G,EAAE,GAAG,UAAU9G,CAAC,EAAE;KACtB,OAAO,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B;;GAED,IAAI,CAACwE,IAAI,GAAG,UAAUrE,CAAC,EAAEH,CAAC,EAAE;KAC3BG,CAAC,CAAC,CAAC,CAAC,GAAG,CAACH,CAAC,CAAC,CAAC,CAAC;KACZG,CAAC,CAAC,CAAC,CAAC,GAAG,CAACH,CAAC,CAAC,CAAC,CAAC;KACZG,CAAC,CAAC,CAAC,CAAC,GAAG,CAACH,CAAC,CAAC,CAAC,CAAC;KACZG,CAAC,CAAC,CAAC,CAAC,GAAG,CAACH,CAAC,CAAC,CAAC,CAAC;IACZ;;GAED,IAAI,CAAC+G,KAAK,GAAG,UAAS/G,CAAC,EAAE;KACxB,OAAO,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC;;GAED,IAAI,CAACgH,EAAE,GAAG,UAAUC,OAAO,EAAE;KAC5B,OAAOA,OAAO,GAAG,KAAK,GAAG9D,IAAI,CAAC+C,EAAE;IAChC;;GAED,IAAI,CAACgB,EAAE,GAAG,UAAUC,OAAO,EAAE;KAC5B,OAAOA,OAAO,GAAGhE,IAAI,CAAC+C,EAAE,GAAG,KAAK;IAChC;;GAED,IAAI,CAACkB,EAAE,GAAG,UAASC,KAAK,EAAE;KACzB,OAAOA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IACzB;;GAED,IAAI,CAACC,EAAE,GAAG,UAAU9E,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAE6B,CAAC,EAAE;KAC/B,IAAIoF,EAAE,GAAG,GAAG,GAAGpF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAIqF,EAAE,GAAG,GAAG,GAAGrF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAIsF,EAAE,GAAG,GAAG,GAAGtF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAIuF,EAAE,GAAG,GAAG,GAAGvF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAIwF,EAAE,GAAG,GAAG,GAAGxF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAIyF,EAAE,GAAG,GAAG,GAAGzF,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI0F,EAAE,GAAG,GAAG,GAAG1F,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI2F,EAAE,GAAG,GAAG,GAAG3F,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI4F,EAAE,GAAG,GAAG,GAAG5F,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;;KAE1BK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGgF,EAAE,GAAGC,EAAE;KACpBjF,CAAC,CAAC,CAAC,CAAC,GAAGkF,EAAE,GAAGG,EAAE;KACdrF,CAAC,CAAC,CAAC,CAAC,GAAGmF,EAAE,GAAGG,EAAE;;KAEd1H,CAAC,CAAC,CAAC,CAAC,GAAGsH,EAAE,GAAGG,EAAE;KACdzH,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGmH,EAAE,GAAGE,EAAE;KACpBrH,CAAC,CAAC,CAAC,CAAC,GAAGwH,EAAE,GAAGG,EAAE;;KAEdzH,CAAC,CAAC,CAAC,CAAC,GAAGqH,EAAE,GAAGG,EAAE;KACdxH,CAAC,CAAC,CAAC,CAAC,GAAGsH,EAAE,GAAGG,EAAE;KACdzH,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGiH,EAAE,GAAGC,EAAE;IACpB;;GAED,IAAI,CAACQ,EAAE,GAAG,UAAU7F,CAAC,EAAEK,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAE;KAC/B,IAAI2H,EAAE,GAAGzF,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC;;KAE3B,IAAI2H,EAAE,GAAG,CAAC,EAAE;OACX,IAAIrE,CAAC,GAAGT,IAAI,CAACC,IAAI,CAAC6E,EAAE,GAAC,GAAG,CAAC,GAAG,CAAC;OAC7B9F,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGyB,CAAC;OACfzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC/B,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,IAAIsD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC7B,CAAC,CAAC,CAAC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC,IAAIoB,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACK,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,IAAIwD,CAAC;MACxB,MAAM,IAAKpB,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,GAAGoC,CAAC,CAAC,CAAC,CAAC,GAAGlC,CAAC,CAAC,CAAC,CAAE,EAAE;OACvC,IAAIsD,CAAC,GAAGT,IAAI,CAACC,IAAI,CAAC,GAAG,GAAGZ,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;OAC/C6B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC/B,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,IAAIsD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGyB,CAAC;OACfzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACK,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,IAAIwD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC7B,CAAC,CAAC,CAAC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC,IAAIoB,CAAC;MACxB,MAAM,IAAIxD,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,EAAE;OACvB,IAAIsD,CAAC,GAAGT,IAAI,CAACC,IAAI,CAAC,GAAG,GAAGhD,CAAC,CAAC,CAAC,CAAC,GAAGoC,CAAC,CAAC,CAAC,CAAC,GAAGlC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;OAC/C6B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC7B,CAAC,CAAC,CAAC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC,IAAIoB,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAACK,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,IAAIwD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGyB,CAAC;OACfzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC/B,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,IAAIsD,CAAC;MACxB,MAAM;OACN,IAAIA,CAAC,GAAGT,IAAI,CAACC,IAAI,CAAC,GAAG,GAAG9C,CAAC,CAAC,CAAC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;OAC/C+B,CAAC,CAAC,CAAC,CAAC,GAAG,CAACK,CAAC,CAAC,CAAC,CAAC,GAAGpC,CAAC,CAAC,CAAC,CAAC,IAAIwD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC7B,CAAC,CAAC,CAAC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC,IAAIoB,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC/B,CAAC,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,IAAIsD,CAAC;OACxBzB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGyB,CAAC;;IAEhB;;GAED,IAAI,MAAKsE,SAAS,GAAG,IAAI,CAACF,EAAE;;GAE5B,IAAI,CAACG,EAAE,GAAG,UAAUhG,CAAC,EAAEK,CAAC,EAAExC,CAAC,EAAE;KAC5B,IAAIoI,EAAE,GAAGtI,GAAG,CAACkH,EAAE,CAAChH,CAAC,CAAC,GAAG,GAAG,CAAEK,CAAC,GAAG8C,IAAI,CAAC+B,GAAG,CAACkD,EAAE,CAAC;KAC1CjG,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC;KACf8B,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC;KACf8B,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC;KACf8B,CAAC,CAAC,CAAC,CAAC,GAAGgB,IAAI,CAACiC,GAAG,CAACgD,EAAE,CAAC;IACnB;;GAED,IAAI,MAAKC,cAAc,GAAG,IAAI,CAACF,EAAE;;GAEjC,IAAI,CAACG,eAAe,GAAG,UAAU9F,CAAC,EAAExC,CAAC,EAAE;KACtC,IAAIoI,EAAE,GAAGtI,GAAG,CAACkH,EAAE,CAAChH,CAAC,CAAC,GAAG,GAAG,CAAEK,CAAC,GAAG8C,IAAI,CAAC+B,GAAG,CAACkD,EAAE,CAAC;KAC1C,OAAO,CAAC5F,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC,EAAEmC,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC,EAAEmC,CAAC,CAAC,CAAC,CAAC,GAAGnC,CAAC,EAAEP,GAAG,CAACqF,IAAI,CAACiD,EAAE,CAAC,CAAC;IACnD;;GAED,IAAI,MAAKE,eAAe,GAAG,IAAI,CAACA,eAAe;;GAE/C,IAAI,CAACC,EAAE,GAAG,UAAUpI,CAAC,EAAEmC,CAAC,EAAEH,CAAC,EAAE;KAC5B,IAAIK,CAAC,GAAGF,CAAC,CAAC,CAAC,CAAC;KACZ,IAAIlC,CAAC,GAAGkC,CAAC,CAAC,CAAC,CAAC;KACZ,IAAIhC,CAAC,GAAGgC,CAAC,CAAC,CAAC,CAAC;;KAEZ,IAAIkG,EAAE,GAAGrG,CAAC,CAAC,CAAC,CAAC;KACb,IAAIsG,EAAE,GAAGtG,CAAC,CAAC,CAAC,CAAC;KACb,IAAIuG,EAAE,GAAGvG,CAAC,CAAC,CAAC,CAAC;KACb,IAAIwG,EAAE,GAAGxG,CAAC,CAAC,CAAC,CAAC;;KAEb,IAAIyG,EAAE,GAAGD,EAAE,GAAGnG,CAAC,GAAGiG,EAAE,GAAGnI,CAAC,GAAGoI,EAAE,GAAGtI,CAAC;KACjC,IAAIyI,EAAE,GAAGF,EAAE,GAAGvI,CAAC,GAAGsI,EAAE,GAAGlG,CAAC,GAAGgG,EAAE,GAAGlI,CAAC;KACjC,IAAIwI,EAAE,GAAGH,EAAE,GAAGrI,CAAC,GAAGkI,EAAE,GAAGpI,CAAC,GAAGqI,EAAE,GAAGjG,CAAC;KACjC,IAAIuG,EAAE,GAAG,CAACP,EAAE,GAAGhG,CAAC,GAAGiG,EAAE,GAAGrI,CAAC,GAAGsI,EAAE,GAAGpI,CAAC;;KAElCH,CAAC,CAAC,CAAC,CAAC,GAAGyI,EAAE,GAAGD,EAAE,GAAGI,EAAE,GAAG,CAACP,EAAE,GAAGK,EAAE,GAAG,CAACH,EAAE,GAAGI,EAAE,GAAG,CAACL,EAAE;KAC/CtI,CAAC,CAAC,CAAC,CAAC,GAAG0I,EAAE,GAAGF,EAAE,GAAGI,EAAE,GAAG,CAACN,EAAE,GAAGK,EAAE,GAAG,CAACN,EAAE,GAAGI,EAAE,GAAG,CAACF,EAAE;KAC/CvI,CAAC,CAAC,CAAC,CAAC,GAAG2I,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAG,CAACL,EAAE,GAAGE,EAAE,GAAG,CAACH,EAAE,GAAGI,EAAE,GAAG,CAACL,EAAE;IAC/C;;GAED,IAAI,CAACQ,EAAE,GAAG,UAAU7I,CAAC,EAAEH,CAAC,EAAEC,CAAC,EAAE;KAC5B,IAAIgJ,GAAG,GAAGjJ,CAAC,CAAC,CAAC,CAAC,CAAEkJ,GAAG,GAAGlJ,CAAC,CAAC,CAAC,CAAC,CAAEmJ,GAAG,GAAGnJ,CAAC,CAAC,CAAC,CAAC,CAAEoJ,GAAG,GAAGpJ,CAAC,CAAC,CAAC,CAAC;KAClD,IAAIqJ,GAAG,GAAGpJ,CAAC,CAAC,CAAC,CAAC,CAAEqJ,GAAG,GAAGrJ,CAAC,CAAC,CAAC,CAAC,CAAEsJ,GAAG,GAAGtJ,CAAC,CAAC,CAAC,CAAC,CAAEuJ,GAAG,GAAGvJ,CAAC,CAAC,CAAC,CAAC;;KAElDE,CAAC,CAAC,CAAC,CAAC,GAAG8I,GAAG,GAAGO,GAAG,GAAGJ,GAAG,GAAGC,GAAG,GAAGH,GAAG,GAAGK,GAAG,GAAGJ,GAAG,GAAGG,GAAG;KACpDnJ,CAAC,CAAC,CAAC,CAAC,GAAG+I,GAAG,GAAGM,GAAG,GAAGJ,GAAG,GAAGE,GAAG,GAAGH,GAAG,GAAGE,GAAG,GAAGJ,GAAG,GAAGM,GAAG;KACpDpJ,CAAC,CAAC,CAAC,CAAC,GAAGgJ,GAAG,GAAGK,GAAG,GAAGJ,GAAG,GAAGG,GAAG,GAAGN,GAAG,GAAGK,GAAG,GAAGJ,GAAG,GAAGG,GAAG;KACpDlJ,CAAC,CAAC,CAAC,CAAC,GAAGiJ,GAAG,GAAGI,GAAG,GAAGP,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGI,GAAG;IACpD;;GAED,IAAI,CAAC1E,UAAU,GAAG,UAAU1E,CAAC,EAAEH,CAAC,EAAEK,CAAC,EAAE;KACpCF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;KACfF,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC;IACf;;GAED,IAAI,CAACyE,WAAW,GAAG,UAAU9E,CAAC,EAAEK,CAAC,EAAE;KAClC,OAAO,CAACL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAGK,CAAC,CAAC;IAC/C;;;GAGD,IAAI,CAACoJ,KAAK,GAAG,UAAUzJ,CAAC,EAAEC,CAAC,EAAE;KAC5B,IAAIE,CAAC,GAAG,EAAE;KACVL,GAAG,CAACkJ,EAAE,CAAC7I,CAAC,EAAEH,CAAC,EAAEC,CAAC,CAAC;KACf,OAAOE,CAAC;IACR;;GAED,IAAI,CAACuJ,SAAS,GAAG,UAAUvH,CAAC,EAAE;KAC7B,IAAI3B,CAAC,GAAG2B,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;KAC7D,OAAO,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,GAAG3B,CAAC,EAAE,CAAC2B,CAAC,CAAC,CAAC,CAAC,GAAG3B,CAAC,EAAE,CAAC2B,CAAC,CAAC,CAAC,CAAC,GAAG3B,CAAC,EAAE2B,CAAC,CAAC,CAAC,CAAC,GAAG3B,CAAC,CAAC;IAClD;;;GAGD,IAAI,CAACmJ,KAAK,GAAG,UAAUpH,CAAC,EAAEC,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAE;KAClC,OAAO,CAACkC,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAEiC,CAAC,CAAC;IACnB;;GAED,IAAI,CAACqH,EAAE,GAAG,UAAUzJ,CAAC,EAAE0J,EAAE,EAAEC,MAAM,EAAEC,KAAK,EAAEzH,CAAC,EAAE;KAC5C,IAAI0H,GAAG,GAAGlK,GAAG,CAACkH,EAAE,CAAC8C,MAAM,CAAC;KACxB,IAAI1E,GAAG,GAAGjC,IAAI,CAACiC,GAAG,CAAC4E,GAAG,CAAC,GAAGD,KAAK;KAC/B,IAAI7E,GAAG,GAAG/B,IAAI,CAAC+B,GAAG,CAAC8E,GAAG,CAAC,GAAGD,KAAK;KAC/B5J,CAAC,CAAC,CAAC,CAAC,GAAG0J,EAAE,CAAC,CAAC,CAAC,GAAGzE,GAAG,GAAG9C,CAAC,CAAC,CAAC,CAAC,GAAG4C,GAAG,GAAG5C,CAAC,CAAC,CAAC,CAAC;KACtCnC,CAAC,CAAC,CAAC,CAAC,GAAG0J,EAAE,CAAC,CAAC,CAAC,GAAG3E,GAAG,GAAG5C,CAAC,CAAC,CAAC,CAAC,GAAG8C,GAAG,GAAG9C,CAAC,CAAC,CAAC,CAAC;IACtC;;GAED,IAAI,CAAC2H,EAAE,GAAG,UAAU9J,CAAC,EAAE0J,EAAE,EAAEC,MAAM,EAAEC,KAAK,EAAEzH,CAAC,EAAE;KAC5C,IAAI0H,GAAG,GAAGlK,GAAG,CAACkH,EAAE,CAAC8C,MAAM,CAAC;KACxB,IAAI1E,GAAG,GAAGjC,IAAI,CAACiC,GAAG,CAAC4E,GAAG,CAAC,GAAGD,KAAK;KAC/B,IAAI7E,GAAG,GAAG/B,IAAI,CAAC+B,GAAG,CAAC8E,GAAG,CAAC,GAAGD,KAAK;;KAE/B5J,CAAC,CAAC,CAAC,CAAC,GAAGiF,GAAG,GAAG9C,CAAC,CAAC,CAAC,CAAC,GAAG4C,GAAG,GAAG5C,CAAC,CAAC,CAAC,CAAC,GAAGuH,EAAE,CAAC,CAAC,CAAC,GAAGzE,GAAG,GAAGyE,EAAE,CAAC,CAAC,CAAC,GAAG3E,GAAG;KAC1D/E,CAAC,CAAC,CAAC,CAAC,GAAGiF,GAAG,GAAG9C,CAAC,CAAC,CAAC,CAAC,GAAG4C,GAAG,GAAG5C,CAAC,CAAC,CAAC,CAAC,GAAGuH,EAAE,CAAC,CAAC,CAAC,GAAG3E,GAAG,GAAG2E,EAAE,CAAC,CAAC,CAAC,GAAGzE,GAAG;IAC1D;;GAED,IAAI,CAAC8E,EAAE,GAAG,UAAUC,GAAG,EAAE;KACxB,IAAIA,GAAG,GAAG,CAAC;KACV,OAAOhH,IAAI,CAACiH,KAAK,CAACtK,GAAG,CAACuK,EAAE,GAAG,CAAC,GAAGF,GAAG,GAAGrK,GAAG,CAACuK,EAAE,CAAC,CAAC;;KAE7C,OAAOlH,IAAI,CAACiH,KAAK,CAACD,GAAG,GAAGrK,GAAG,CAACuK,EAAE,CAAC;IAChC;;GAED,SAASC,eAAeA,CAAC/J,CAAC,EAAE;KAC3B,OAAOA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,CAAC,CAACgK,QAAQ,CAAC,EAAE,CAAC,GAAGhK,CAAC,CAACgK,QAAQ,CAAC,EAAE,CAAC;;;GAGtD,IAAI,CAACC,EAAE,GAAG,UAASC,GAAG,EAAE;KACvB,OAAO,GAAG;KACPH,eAAe,CAACnH,IAAI,CAACiH,KAAK,CAACK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KACzCH,eAAe,CAACnH,IAAI,CAACiH,KAAK,CAACK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KACzCH,eAAe,CAACnH,IAAI,CAACiH,KAAK,CAACK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5C;;GAED,IAAI,CAACC,EAAE,GAAG,UAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE7K,CAAC,EAAEC,CAAC,EAAE6K,EAAE,EAAE;KACxC,IAAIC,EAAE,GAAGjL,GAAG,CAACgB,CAAC,CAACd,CAAC,EAAE2K,EAAE,CAAC;KACrB,IAAI9E,EAAE,GAAG/F,GAAG,CAACgB,CAAC,CAACb,CAAC,EAAE0K,EAAE,CAAC;;KAErB,IAAIK,EAAE,GAAGlL,GAAG,CAACK,CAAC,CAACyK,EAAE,EAAEC,EAAE,CAAC;;KAEtB,IAAKE,EAAE,CAAC,CAAC,CAAC,GAAG,CAACC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAG,CAACmF,EAAE,CAAC,CAAC,CAAC;KAChCD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAGmF,EAAE,CAAC,CAAC,CAAE;KAC/BD,EAAE,CAAC,CAAC,CAAC,GAAG,CAACC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAG,CAACmF,EAAE,CAAC,CAAC,CAAE;KACjCD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAGmF,EAAE,CAAC,CAAC,CAAE;KACpC;OACC,OAAO,KAAK;;;KAGb,IAAID,EAAE,CAAC,CAAC,CAAC,IAAIC,EAAE,CAAC,CAAC,CAAC,IAAID,EAAE,CAAC,CAAC,CAAC,IAAI,CAACC,EAAE,CAAC,CAAC,CAAC,IAAID,EAAE,CAAC,CAAC,CAAC,IAAIC,EAAE,CAAC,CAAC,CAAC,IAAID,EAAE,CAAC,CAAC,CAAC,IAAI,CAACC,EAAE,CAAC,CAAC,CAAC;KACzE,OAAO,IAAI;;KAEZ,IAAIF,EAAE,GAAG,QAAQ;KAChB,OAAO,KAAK;;KAEb,IAAIjF,EAAE,CAAC,CAAC,CAAC,IAAImF,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,IAAI,CAACmF,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,IAAImF,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,IAAI,CAACmF,EAAE,CAAC,CAAC,CAAC;KACzE,OAAO,IAAI;;KAEZ,IAAIC,EAAE,GAAGnL,GAAG,CAACgB,CAAC,CAACb,CAAC,EAAED,CAAC,CAAC,CAAEF,GAAG,CAACO,CAAC,CAAC4K,EAAE,EAAEA,EAAE,EAAEH,EAAE,CAAC;KACvC,IAAII,EAAE,GAAG,CAAC,CAACD,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;KACxB,IAAIE,EAAE,GAAGhI,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAErF,EAAE,CAAC,CAAC;;KAEhC,IAAI1C,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAEF,EAAE,CAAC,CAAC,IAAIG,EAAE,EAAE;OAClC,IAAIE,EAAE,GAAG,CAAC,CAACT,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;OACxB,IAAI9K,GAAG,CAAC2C,CAAC,CAAC4I,EAAE,EAAEN,EAAE,CAAC,GAAGjL,GAAG,CAAC2C,CAAC,CAAC4I,EAAE,EAAExF,EAAE,CAAC,IAAI,GAAG,EAAE;SACzC,OAAO,IAAI;;MAEZ,MAAM,IAAI1C,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAE,CAACF,EAAE,CAAC,CAAC,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIG,EAAE,EAAE;OACtD,IAAIE,GAAE,GAAG,CAACT,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;OACvB,IAAI9K,GAAG,CAAC2C,CAAC,CAAC4I,GAAE,EAAEN,EAAE,CAAC,GAAGjL,GAAG,CAAC2C,CAAC,CAAC4I,GAAE,EAAExF,EAAE,CAAC,IAAI,GAAG,EAAE;SACzC,OAAO,IAAI;;;;KAIb,OAAO,KAAK;IACZ;;GAED,IAAI,CAACyF,EAAE,GAAG,UAASX,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE7K,CAAC,EAAEC,CAAC,EAAE6K,EAAE,EAAES,EAAE,EAAE;KAC5C,IAAIR,EAAE,GAAGjL,GAAG,CAACgB,CAAC,CAACd,CAAC,EAAE2K,EAAE,CAAC;KACrB,IAAI9E,EAAE,GAAG/F,GAAG,CAACgB,CAAC,CAACb,CAAC,EAAE0K,EAAE,CAAC;;KAErB,IAAIK,EAAE,GAAGlL,GAAG,CAACK,CAAC,CAACyK,EAAE,EAAEC,EAAE,CAAC;;KAEtB,IAAIC,EAAE,GAAG,QAAQ;KAChB,OAAO,KAAK;;KAEb,IAAKC,EAAE,CAAC,CAAC,CAAC,GAAG,CAACC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAG,CAACmF,EAAE,CAAC,CAAC,CAAC;KAChCD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAGmF,EAAE,CAAC,CAAC,CAAE;KAC/BD,EAAE,CAAC,CAAC,CAAC,GAAG,CAACC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAG,CAACmF,EAAE,CAAC,CAAC,CAAE;KACjCD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,IAAInF,EAAE,CAAC,CAAC,CAAC,GAAGmF,EAAE,CAAC,CAAC,CAAE;KACpC;OACC,OAAO,KAAK;;;KAGb,IAAIC,EAAE,GAAGnL,GAAG,CAACgB,CAAC,CAACb,CAAC,EAAED,CAAC,CAAC,CAAEF,GAAG,CAACO,CAAC,CAAC4K,EAAE,EAAEA,EAAE,EAAEH,EAAE,CAAC;KACvC,IAAII,EAAE,GAAG,CAAC,CAACD,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;KACxB,IAAIE,EAAE,GAAGhI,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAErF,EAAE,CAAC,CAAC;;KAEhC,IAAI0F,EAAE,EAAE;OACP,IAAIpI,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAEF,EAAE,CAAC,CAAC,IAAIG,EAAE,EAAE;SAClC,IAAIE,EAAE,GAAG,CAAC,CAACT,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;SACxB,IAAI9K,GAAG,CAAC2C,CAAC,CAAC4I,EAAE,EAAEN,EAAE,CAAC,GAAGjL,GAAG,CAAC2C,CAAC,CAAC4I,EAAE,EAAExF,EAAE,CAAC,IAAI,GAAG,EAAE;WACzC,OAAO,IAAI;;;MAGb,MAAM;OACN,IAAI1C,IAAI,CAACiI,GAAG,CAACtL,GAAG,CAAC2C,CAAC,CAACyI,EAAE,EAAE,CAACF,EAAE,CAAC,CAAC,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIG,EAAE,EAAE;SAC/C,IAAIE,IAAE,GAAG,CAACT,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC;SACvB,IAAI9K,GAAG,CAAC2C,CAAC,CAAC4I,IAAE,EAAEN,EAAE,CAAC,GAAGjL,GAAG,CAAC2C,CAAC,CAAC4I,IAAE,EAAExF,EAAE,CAAC,IAAI,GAAG,EAAE;WACzC,OAAO,IAAI;;;;;KAKd,OAAO,KAAK;IACZ;;GAED,IAAI,CAAC2F,EAAE,GAAG,UAAUrL,CAAC,EAAEqC,CAAC,EAAEpC,CAAC,EAAEE,CAAC,EAAE;KAC/B,IAAImL,OAAO,GAAG,CAAC,IAAIrL,CAAC,GAAGN,GAAG,CAACuK,EAAE,GAAG7H,CAAC,CAAC;KAClC,IAAIkJ,IAAI,GAAG5L,GAAG,CAAC6L,EAAE,CAACrL,CAAC,CAAC;;KAEpBH,CAAC,CAAC,CAAC,CAAC,GAAGuL,IAAI,CAACE,QAAQ,CAACH,OAAO,CAAC;KAC7BtL,CAAC,CAAC,CAAC,CAAC,GAAGuL,IAAI,CAACE,QAAQ,CAACH,OAAO,GAAG,CAAC,CAAC;KACjCtL,CAAC,CAAC,CAAC,CAAC,GAAGuL,IAAI,CAACE,QAAQ,CAACH,OAAO,GAAG,CAAC,CAAC;IACjC;;GAED,IAAI,CAACI,EAAE,GAAG,UAAU1L,CAAC,EAAE0J,EAAE,EAAE;KAC1B,IAAI/J,GAAG,CAAC6L,EAAE,IAAI,IAAI,EAAE;OACnB7L,GAAG,CAACkE,CAAC,CAAC7D,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;OACvB;;;KAGD,IAAI2L,UAAU,GAAGjC,EAAE,CAAC,CAAC,CAAC,GAAG/J,GAAG,CAACuK,EAAE;KAC/B,IAAI0B,UAAU,GAAGlC,EAAE,CAAC,CAAC,CAAC,GAAG/J,GAAG,CAACuK,EAAE;KAC/B,IAAI2B,UAAU,GAAGnC,EAAE,CAAC,CAAC,CAAC,GAAG/J,GAAG,CAACuK,EAAE;;KAE/B,IAAI4B,MAAM,GAAG9I,IAAI,CAACiH,KAAK,CAAC0B,UAAU,CAAC;KACnC,IAAII,MAAM,GAAG/I,IAAI,CAACiH,KAAK,CAAC2B,UAAU,CAAC;KACnC,IAAII,MAAM,GAAGhJ,IAAI,CAACiH,KAAK,CAAC4B,UAAU,CAAC;;KAEnC,IAAII,KAAK,GAAGN,UAAU,GAAGG,MAAM;KAC/B,IAAII,KAAK,GAAGN,UAAU,GAAGG,MAAM;KAC/B,IAAII,KAAK,GAAGN,UAAU,GAAGG,MAAM;;KAE/B,IAAII,MAAM,GAAGzM,GAAG,CAACoK,EAAE,CAAC+B,MAAM,CAAC;KAC3B,IAAIO,OAAO,GAAG1M,GAAG,CAACoK,EAAE,CAAC+B,MAAM,GAAG,CAAC,CAAC;KAChC,IAAIQ,MAAM,GAAG3M,GAAG,CAACoK,EAAE,CAACgC,MAAM,CAAC;KAC3B,IAAIQ,OAAO,GAAG5M,GAAG,CAACoK,EAAE,CAACgC,MAAM,GAAG,CAAC,CAAC;KAChC,IAAIS,MAAM,GAAG7M,GAAG,CAACoK,EAAE,CAACiC,MAAM,CAAC;KAC3B,IAAIS,OAAO,GAAG9M,GAAG,CAACoK,EAAE,CAACiC,MAAM,GAAG,CAAC,CAAC;;KAEhC,IAAIU,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE;OAC7DC,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE,CAAEC,QAAQ,GAAG,EAAE;;KAE3DtN,GAAG,CAAC0L,EAAE,CAACqB,QAAQ,EAAEN,MAAM,EAAEE,MAAM,EAAEE,MAAM,CAAC;KACxC7M,GAAG,CAAC0L,EAAE,CAACsB,QAAQ,EAAEP,MAAM,EAAEE,MAAM,EAAEG,OAAO,CAAC;KACzC9M,GAAG,CAAC0L,EAAE,CAACuB,QAAQ,EAAER,MAAM,EAAEG,OAAO,EAAEC,MAAM,CAAC;KACzC7M,GAAG,CAAC0L,EAAE,CAACwB,QAAQ,EAAET,MAAM,EAAEG,OAAO,EAAEE,OAAO,CAAC;KAC1C9M,GAAG,CAAC0L,EAAE,CAACyB,QAAQ,EAAET,OAAO,EAAEC,MAAM,EAAEE,MAAM,CAAC;KACzC7M,GAAG,CAAC0L,EAAE,CAAC0B,QAAQ,EAAEV,OAAO,EAAEC,MAAM,EAAEG,OAAO,CAAC;KAC1C9M,GAAG,CAAC0L,EAAE,CAAC2B,QAAQ,EAAEX,OAAO,EAAEE,OAAO,EAAEC,MAAM,CAAC;KAC1C7M,GAAG,CAAC0L,EAAE,CAAC4B,QAAQ,EAAEZ,OAAO,EAAEE,OAAO,EAAEE,OAAO,CAAC;;KAE3C,IAAIS,OAAO,GAAG,EAAE,CAAEC,OAAO,GAAG,EAAE,CAAEC,OAAO,GAAG,EAAE,CAAEC,OAAO,GAAG,EAAE;KAC1D1N,GAAG,CAACsE,EAAE,CAACiJ,OAAO,EAAER,QAAQ,EAAEC,QAAQ,EAAER,KAAK,CAAC;KAC1CxM,GAAG,CAACsE,EAAE,CAACkJ,OAAO,EAAEP,QAAQ,EAAEC,QAAQ,EAAEV,KAAK,CAAC;KAC1CxM,GAAG,CAACsE,EAAE,CAACmJ,OAAO,EAAEN,QAAQ,EAAEC,QAAQ,EAAEZ,KAAK,CAAC;KAC1CxM,GAAG,CAACsE,EAAE,CAACoJ,OAAO,EAAEL,QAAQ,EAAEC,QAAQ,EAAEd,KAAK,CAAC;;KAE1C,IAAI/G,MAAM,GAAG,EAAE,CAAEC,MAAM,GAAG,EAAE;KAC5B1F,GAAG,CAACsE,EAAE,CAACmB,MAAM,EAAE8H,OAAO,EAAEC,OAAO,EAAEjB,KAAK,CAAC;KACvCvM,GAAG,CAACsE,EAAE,CAACoB,MAAM,EAAE+H,OAAO,EAAEC,OAAO,EAAEnB,KAAK,CAAC;;KAEvCvM,GAAG,CAACsE,EAAE,CAACjE,CAAC,EAAEoF,MAAM,EAAEC,MAAM,EAAE4G,KAAK,CAAC;IAChC;;GAED,IAAI,CAACqB,SAAS,GAAG,UAASC,KAAK,EAAElL,CAAC,EAAEpC,CAAC,EAAEuN,KAAK,EAAEC,MAAM,EAAE;KACrD,IAAI,CAACF,KAAK,GAAGA,KAAK;KAClB,IAAI,CAAClL,CAAC,GAAGA,CAAC;KACV,IAAI,CAACpC,CAAC,GAAGA,CAAC;KACV,IAAI,CAACuN,KAAK,GAAGA,KAAK;KAClB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB;;GAED,IAAI,CAACC,UAAU,GAAG,UAAUC,UAAU,EAAEC,UAAU,EAAEC,gBAAgB,EAAE;KAClE,IAAI,CAACF,UAAU,GAAGA,UAAU;KAC5B,IAAI,CAACC,UAAU,GAAGA,UAAU;KAC5B,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;IAC3C;;GAED,IAAI,CAACC,OAAO,GAAG,UAAUzL,CAAC,EAAEpC,CAAC,EAAEuN,KAAK,EAAEC,MAAM,EAAE;KAC1C,IAAI,CAACpL,CAAC,GAAGA,CAAC;KACV,IAAI,CAACpC,CAAC,GAAGA,CAAC;KACV,IAAI,CAACuN,KAAK,GAAGA,KAAK;KAClB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACvB;;GAED,IAAI,CAACM,QAAQ,GAAG,YAAY;IAC3B;;GAED,IAAI,CAACA,QAAQ,CAACC,SAAS,CAACvE,EAAE,GAAG,UAAUC,EAAE,EAAErD,EAAE,EAAE;KAC3C,OAAO,IAAI;IACd;;GAED,IAAI,CAAC4H,QAAQ,GAAG,cAAcC,UAAU,MAAMC,UAAU,EAAE;KACtD,IAAI,CAACC,EAAE,GAAGzO,GAAG,CAACK,CAAC,KAAKkO,UAAU,EAAE,GAAG,CAAC;KACpC,IAAI,CAAC/N,CAAC,GAAG,MAAM+N,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAGlL,IAAI,CAACqL,GAAG,CAAC1O,GAAG,CAACkH,EAAE,KAAKsH,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/E;;GAED,IAAI,CAACF,QAAQ,CAACD,SAAS,MAAKM,SAAS,GAAG,cAAcC,GAAG,MAAMC,IAAI,EAAE;KACjE,QAAQD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAACpO,CAAC;KACnB,OAAO,KAAK;;KAEhB,IAAIyJ,KAAK,GAAG,CAAC,IAAI,CAACzJ,CAAC,QAAQoO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAACpO,CAAC,CAAC;KAC3CR,GAAG,CAACE,CAAC,KAAK0O,GAAG,EAAE5O,GAAG,CAACK,CAAC,CAACL,GAAG,CAACgB,CAAC,KAAK4N,GAAG,EAAE,IAAI,CAACH,EAAE,CAAC,EAAExE,KAAK,CAAC,EAAE,IAAI,CAACwE,EAAE,CAAC;KAC9DzO,GAAG,CAACqC,CAAC,KAAKwM,IAAI,MAAMA,IAAI,EAAE5E,KAAK,CAAC;;KAEhC,OAAO,IAAI;IACd;;GAED,IAAI,CAAC4B,EAAE,GAAG,IAAI;GACd,IAAI,CAACtB,EAAE,GAAG,CAAC;;GAEX,IAAI,CAACuE,eAAe,GAAG,UAASC,IAAI,EAAEC,cAAc,EAAEC,cAAc,EAAE;;KAErE,IAAI,CAACF,IAAI,EAAE;OACVG,KAAK,CAAC,wBAAwB,CAAC;;;KAGhC,IAAI,IAAI,CAACrD,EAAE,IAAI,IAAI,EAAE;OACpBmD,cAAc,EAAE;OAChB;;;KAGD,IAAID,IAAI,IAAI,IAAI,IAAIA,IAAI,IAAII,SAAS;KACpCJ,IAAI,GAAG,IAAI,CAACK,WAAW;;KAExB,IAAIC,OAAO,GAAG,IAAIC,cAAc,EAAE;KAClCD,OAAO,CAACE,IAAI,CAAC,KAAK,EAAER,IAAI,GAAG,6BAA6B,EAAE,IAAI,CAAC;KAC/DM,OAAO,CAACG,YAAY,GAAG,aAAa;KACpCH,OAAO,CAACrP,GAAG,GAAG,IAAI;KAClBqP,OAAO,CAACI,kBAAkB,GAAG,YAAY;OACxC,IAAIJ,OAAO,CAACK,UAAU,IAAI,CAAC,EAAE;SAC5B,IAAKL,OAAO,CAACM,MAAM,IAAI,GAAG,IAAIN,OAAO,CAACM,MAAM,GAAG,GAAG,IAAKN,OAAO,CAACM,MAAM,IAAI,GAAG,EAAE;WAC7E,IAAI9D,EAAE,GAAGwD,OAAO,CAACO,QAAQ;WACzB,IAAI5P,GAAG,GAAGqP,OAAO,CAACrP,GAAG;;WAErB,IAAI4L,IAAI,GAAG,IAAIiE,QAAQ,CAAChE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;WACjC,IAAIiE,SAAS,GAAGlE,IAAI,CAACmE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;WAIvC/P,GAAG,CAAC6L,EAAE,GAAG,EAAE;WACX7L,GAAG,CAACuK,EAAE,GAAGuF,SAAS;;WAElB,KAAK,IAAIE,UAAU,GAAG,CAAC,EAAEA,UAAU,GAAGF,SAAS,EAAE,EAAEE,UAAU,EAAE;aAC9DhQ,GAAG,CAAC6L,EAAE,CAACmE,UAAU,CAAC,GAAG,IAAIH,QAAQ,CAAChE,EAAE;aACnC,CAAC,YAAW,CAAC,GAAGiE,SAAS,GAAGA,SAAS,GAAGE,UAAU,CAAC;;;WAGrD,IAAIhB,cAAc;WACjBA,cAAc,EAAE;UACjB,MAAM;WACN,IAAIC,cAAc;WACjBA,cAAc,EAAE;;;MAGnB;;KAEDI,OAAO,CAACY,IAAI,EAAE;IACd;;GAED,IAAI,CAACC,cAAc,GAAG,YAAY;;KAEjC,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEjO,CAAC,EAAE;OAC9C,OAAO,GAAG,IAAK,GAAG,GAAG+N,EAAE,GAAI,CAAC,CAACD,EAAE,GAAGE,EAAE,IAAIhO,CAAC,GAAG,CAAC,GAAG,GAAG8N,EAAE,GAAG,GAAG,GAAGC,EAAE,GAAG,GAAG,GAAGC,EAAE,GAAGC,EAAE,IAAIjO,CAAC,GAAGA,CAAC;OACzF,CAAC,CAAC8N,EAAE,GAAG,GAAG,GAAGC,EAAE,GAAG,GAAG,GAAGC,EAAE,GAAGC,EAAE,KAAKjO,CAAC,GAAGA,CAAC,GAAGA,CAAC,CAAC,CAAC;MAC/C;;KAED,IAAIkO,aAAa,GAAG,SAAhBA,aAAaA,CAAaJ,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEjO,CAAC,EAAE;OAChD,OAAO;OACN6N,WAAW,CAACC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEjO,CAAC,CAAC;OAC1C6N,WAAW,CAACC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEjO,CAAC,CAAC;OAC1C6N,WAAW,CAACC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEjO,CAAC,CAAC,CACzC;;MACF;;KAED,IAAImO,MAAM,GAAG,SAATA,MAAMA,CAAavQ,CAAC,EAAEwQ,IAAI,EAAEC,EAAE,EAAE;OACnC,OAAQzQ,CAAC,GAAGwQ,IAAI,GAAIA,IAAI,GAAKxQ,CAAC,GAAGyQ,EAAE,GAAIA,EAAE,GAAGzQ,CAAE;MAC9C;;KAED,IAAI0Q,SAAS,GAAG,EAAE;KAClB,IAAIhD,KAAK,GAAG,EAAE;KACd,IAAIiD,UAAU,GAAG,EAAE;KACnB,IAAIC,aAAa,GAAG,IAAI9Q,GAAG,CAACuF,MAAM,CAAC,GAAG,CAAC,CAAC;KACxC,IAAIM,IAAI,GAAG,SAAPA,IAAIA,GAAe,CAAE,OAAOiL,aAAa,CAACjL,IAAI,EAAE,CAAE,CAAC;KACvD,IAAIkL,GAAG,GAAG,GAAG,CAAC;KACd,IAAIC,UAAU,GAAG,GAAG,CAAC;KACrB,IAAIC,QAAQ,GAAGL,SAAS;;KAExB,IAAIM,IAAI,EAAExK,EAAE,EAAEyK,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,IAAI,EAAEC,IAAI,CAAC;;KAEpE,IAAIC,oBAAoB,GAAG,CAAC;KAC5B,IAAIC,gBAAgB,GAAG,CAAC;;KAExB,KAAK,IAAI/P,CAAC,GAAGsP,QAAQ,KAAK,CAAC,EAAEtP,CAAC,GAAG,CAAC,EAAEA,CAAC,MAAM,CAAC,EAAE;OAC7C,IAAIgQ,QAAQ,GAAGtO,IAAI,CAACiH,KAAK,CAACsG,SAAS,GAAGjP,CAAC,CAAC;OACxC8P,oBAAoB,IAAIE,QAAQ,GAAGA,QAAQ;;;KAG5C,IAAIC,MAAM,GAAG;OACZC,YAAY,EAAE,CAAC;OACfC,aAAa,EAAE,CAAC;OAChBC,gBAAgB,EAAE,CAAC;OACnBC,OAAO,EAAE,CAAC;OACVC,UAAU,EAAE,CAAC;OACbC,QAAQ,EAAE;MACV;;KAED,IAAIC,QAAQ,GAAG;OACdC,IAAI,EAAE,IAAI;OACVC,GAAG,EAAE,GAAG;OACRL,OAAO,EAAE,IAAI;OACbC,UAAU,EAAE;MACZ;;KAED,IAAIK,KAAK,GAAGV,MAAM,CAACC,YAAY;;KAE/B,IAAI,CAACU,QAAQ,GAAG,GAAG;;KAEnB,IAAIC,WAAW,GAAG,SAAdA,WAAWA,GAAe;OAC7B,KAAK,IAAIhS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoQ,SAAS,EAAE,EAAEpQ,CAAC,EAAE;SACnC,IAAIiS,MAAM,GAAG7E,KAAK,CAACpN,CAAC,CAAC,GAAG,EAAE;;SAE1B,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsQ,SAAS,EAAE,EAAEtQ,CAAC,EAAE;WACnC,IAAIoS,OAAO,GAAGD,MAAM,CAACnS,CAAC,CAAC,GAAG,EAAE;;WAE5B,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkO,SAAS,EAAE,EAAElO,CAAC,EAAE;aACnC,IAAIiQ,QAAQ,GAAGD,OAAO,CAAChQ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;;OAK9C4P,KAAK,GAAGV,MAAM,CAACE,aAAa;OAC5B,IAAI,CAACS,QAAQ,GAAGJ,QAAQ,CAACC,IAAI;MAC7B;;KAED,IAAIQ,WAAW,GAAG,SAAdA,WAAWA,GAAe;;OAE7B1B,IAAI,GAAGD,QAAQ,KAAK,CAAC;OACrBvK,EAAE,GAAGkK,SAAS;OACdO,OAAO,GAAG9N,IAAI,CAACiH,KAAK,CAAC5D,EAAE,GAAGwK,IAAI,CAAC;OAC/BE,QAAQ,GAAGD,OAAO,GAAGA,OAAO;OAC5BE,WAAW,GAAGhO,IAAI,CAACwP,GAAG,CAAC1B,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;OACtCG,SAAS,GAAGH,OAAO,GAAGA,OAAO,GAAGA,OAAO;OACvCI,IAAI,GAAG,CAAC;OACRC,IAAI,GAAG,CAAC;;OAER,KAAK,IAAI7P,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2P,SAAS,EAAE,EAAE3P,CAAC,EAAE;SACnCkP,UAAU,CAAClP,CAAC,CAAC,GAAG,EAAE;;SAElBkP,UAAU,CAAClP,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGkE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG;SACrCgL,UAAU,CAAClP,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGkE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG;SACrCgL,UAAU,CAAClP,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGkE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG;;;OAGtCyM,KAAK,GAAGV,MAAM,CAACG,gBAAgB;MAC/B;;KAED,IAAIe,cAAc,GAAG,SAAjBA,cAAcA,GAAc;OAC/B,KAAK,IAAIC,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAG5B,OAAO,EAAE,EAAE4B,IAAI,EAAE;SAC1C,IAAIC,KAAK,GAAKzB,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIF,WAAW;SAC5C,IAAI4B,KAAK,GAAK1B,IAAI,KAAM,CAAC,GAAIF,WAAW;SACxC,IAAI6B,KAAK,GAAK3B,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIF,WAAW;SAC5C,IAAI8B,KAAK,GAAK5B,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIF,WAAW;;SAE5C,IAAI+B,KAAK,GAAK5B,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIH,WAAW;SAC5C,IAAIgC,KAAK,GAAK7B,IAAI,KAAM,CAAC,GAAIH,WAAW;SACxC,IAAIiC,KAAK,GAAK9B,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIH,WAAW;SAC5C,IAAIkC,KAAK,GAAK/B,IAAI,GAAG,CAAC,KAAM,CAAC,GAAIH,WAAW;;SAE5C,IAAImC,KAAK,GAAKT,IAAI,GAAG,CAAC,KAAM,CAAC,GAAI1B,WAAW;SAC5C,IAAIoC,KAAK,GAAKV,IAAI,KAAM,CAAC,GAAI1B,WAAW;SACxC,IAAIqC,KAAK,GAAKX,IAAI,GAAG,CAAC,KAAM,CAAC,GAAI1B,WAAW;SAC5C,IAAIsC,KAAK,GAAKZ,IAAI,GAAG,CAAC,KAAM,CAAC,GAAI1B,WAAW;;SAE5C,IAAIuC,MAAM;SACV;SACC;SACC;SACC/C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACmC,KAAK,GAAG5B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGwC,KAAK,CAAC,CACtD,CACD;;;;SAED;SACC;SACC9C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACoC,KAAK,GAAG7B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGwC,KAAK,CAAC,CACtD,CACD;;;;SAED;SACC;SACC9C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACqC,KAAK,GAAG9B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGwC,KAAK,CAAC,CACtD,CACD;;;;SAED;SACC;SACC9C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGgC,KAAK,GAAGjC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGiC,KAAK,GAAGlC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGkC,KAAK,GAAGnC,OAAO,GAAGwC,KAAK,CAAC,CACtD;;SACD;SACC9C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGqC,KAAK,CAAC;SACtD3C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGsC,KAAK,CAAC;SACtD5C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGuC,KAAK,CAAC;SACtD7C,UAAU,CAACsC,KAAK,GAAG/B,QAAQ,GAAGmC,KAAK,GAAGpC,OAAO,GAAGwC,KAAK,CAAC,CACtD,CACD,CACD;;;;;SAED,KAAK,IAAIE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG3C,IAAI,EAAE,EAAE2C,GAAG,EAAE;WACpC,IAAIC,OAAO,GAAGD,GAAG,GAAG3C,IAAI;WACxB,IAAIuB,MAAM,GAAGlB,IAAI,GAAGL,IAAI,GAAG2C,GAAG;;WAE9B,IAAIE,OAAO;WACX;WACC;WACCvD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC,CAC1F;;WACD;WACCtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC,CAC1F;;WACD;WACCtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC,CAC1F;;WACD;WACCtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;WAC1FtD,aAAa,CAACoD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC,CAC1F,CACD;;;;WAED,KAAK,IAAIE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG9C,IAAI,EAAE,EAAE8C,GAAG,EAAE;aACpC,IAAIC,OAAO,GAAGD,GAAG,GAAG9C,IAAI;aACxB,IAAIgD,MAAM,GAAG1C,IAAI,GAAGN,IAAI,GAAG8C,GAAG;;aAE9B,IAAIvO,MAAM,GAAG+K,aAAa,CAACuD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;aACxB,IAAIvO,MAAM,GAAG8K,aAAa,CAACuD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;aACxB,IAAItO,MAAM,GAAG6K,aAAa,CAACuD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;aACxB,IAAIE,MAAM,GAAG3D,aAAa,CAACuD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrEA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,OAAO,CAAC;;aAExB,KAAK,IAAIG,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGlD,IAAI,EAAE,EAAEkD,GAAG,EAAE;eACpC,IAAIC,OAAO,GAAGD,GAAG,GAAGlD,IAAI;eACxB,IAAIoD,MAAM,GAAGvB,IAAI,GAAG7B,IAAI,GAAGkD,GAAG;;eAE9B,IAAIG,SAAS,GAAG/D,aAAa,CAAC/K,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEwO,MAAM,EAAEE,OAAO,CAAC;eACtE,IAAIG,MAAM,GAAGxU,GAAG,CAACU,CAAC,CAACV,GAAG,CAACwC,CAAC,CAAC+R,SAAS,EAAExD,GAAG,CAAC,EAAEnD,KAAK,CAAC6E,MAAM,CAAC,CAACyB,MAAM,CAAC,CAACI,MAAM,CAAC,CAAC;eACxE,IAAIG,aAAa,GAAG;eACnBhE,MAAM,CAAC+D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;eAC5B/D,MAAM,CAAC+D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;eAC5B/D,MAAM,CAAC+D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAC5B;;;eAED5G,KAAK,CAAC6E,MAAM,CAAC,CAACyB,MAAM,CAAC,CAACI,MAAM,CAAC,GAAGG,aAAa;;;;;;OAMjD/C,gBAAgB,EAAE;OAClB,IAAI,CAACa,QAAQ,GAAGJ,QAAQ,CAACC,IAAI,GAAG,CAACD,QAAQ,CAACE,GAAG,GAAGF,QAAQ,CAACC,IAAI,KAAKV,gBAAgB,GAAGD,oBAAoB,CAAC;;OAE1GD,IAAI,EAAE;OACN,IAAIA,IAAI,IAAIL,OAAO,EAAE;SACpBK,IAAI,GAAG,CAAC;SACRD,IAAI,EAAE;SACN,IAAIA,IAAI,IAAIJ,OAAO,EAAE;WACpBI,IAAI,GAAG,CAAC;;WAERN,QAAQ,GAAGC,IAAI;WACfH,GAAG,GAAG1N,IAAI,CAACqR,GAAG,CAAC3D,GAAG,EAAEC,UAAU,CAAC;;WAE/B,IAAIC,QAAQ,IAAI,CAAC,EAAE;aAClBqB,KAAK,GAAGV,MAAM,CAACI,OAAO;aACtB,IAAI,CAACO,QAAQ,GAAGJ,QAAQ,CAACE,GAAG;YAC5B,MAAM;aACNC,KAAK,GAAGV,MAAM,CAACE,aAAa;;;;MAI/B;;;KAGD,IAAI6C,OAAO,GAAG,SAAVA,OAAOA,GAAc;OACxB,IAAIC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;OAC5B,IAAIC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;OAE1B,KAAK,IAAIrU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoQ,SAAS,EAAE,EAAEpQ,CAAC,EAAE;SACnC,IAAIiS,MAAM,GAAG7E,KAAK,CAACpN,CAAC,CAAC;;SAErB,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsQ,SAAS,EAAE,EAAEtQ,CAAC,EAAE;WACnC,IAAIoS,OAAO,GAAGD,MAAM,CAACnS,CAAC,CAAC;;WAEvB,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkO,SAAS,EAAE,EAAElO,CAAC,EAAE;aACnC,IAAIiQ,QAAQ,GAAGD,OAAO,CAAChQ,CAAC,CAAC;aACzBiQ,QAAQ,CAAC,CAAC,CAAC,GAAG3S,GAAG,CAACmE,CAAC,CAACyQ,GAAG,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,CAAC,EAAElC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;aAC7DA,QAAQ,CAAC,CAAC,CAAC,GAAG3S,GAAG,CAACmE,CAAC,CAACyQ,GAAG,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,CAAC,EAAElC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;aAC7DA,QAAQ,CAAC,CAAC,CAAC,GAAG3S,GAAG,CAACmE,CAAC,CAACyQ,GAAG,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,CAAC,EAAElC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;;;;;OAKhEL,KAAK,GAAGV,MAAM,CAACK,UAAU;OACzB,IAAI,CAACM,QAAQ,GAAGJ,QAAQ,CAACH,OAAO;MAChC;;;KAGD,IAAI8C,SAAS,GAAG,SAAZA,SAASA,GAAc;OAC1B9U,GAAG,CAACuK,EAAE,GAAGqG,SAAS;OAClB5Q,GAAG,CAAC6L,EAAE,GAAG,EAAE;;OAEX,KAAK,IAAIrL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoQ,SAAS,EAAE,EAAEpQ,CAAC,EAAE;SACnC,IAAIiS,MAAM,GAAG7E,KAAK,CAACpN,CAAC,CAAC;;SAErB,IAAIuU,KAAK,GAAG,IAAIC,WAAW,CAACpE,SAAS,GAAGA,SAAS,GAAG,CAAC,CAAC;SACtD,IAAIhF,IAAI,GAAG,IAAIiE,QAAQ,CAACkF,KAAK,CAAC;;SAE9B,KAAK,IAAIzU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsQ,SAAS,EAAE,EAAEtQ,CAAC,EAAE;WACnC,IAAIoS,OAAO,GAAGD,MAAM,CAACnS,CAAC,CAAC;;WAEvB,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkO,SAAS,EAAE,EAAElO,CAAC,EAAE;aACnC,IAAIiQ,QAAQ,GAAGD,OAAO,CAAChQ,CAAC,CAAC;;aAEzB,IAAIuS,SAAS,GAAG,CAAC3U,CAAC,GAAGsQ,SAAS,GAAGlO,CAAC,IAAK,CAAC;aACxCkJ,IAAI,CAACsJ,QAAQ,CAACD,SAAS,GAAG,CAAC;aAC1B5R,IAAI,CAACiH,KAAK,CAACmG,MAAM,CAAC,KAAK,IAAIkC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACzE/G,IAAI,CAACsJ,QAAQ,CAACD,SAAS,GAAG,CAAC;aAC1B5R,IAAI,CAACiH,KAAK,CAACmG,MAAM,CAAC,KAAK,IAAIkC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACzE/G,IAAI,CAACsJ,QAAQ,CAACD,SAAS,GAAG,CAAC;aAC1B5R,IAAI,CAACiH,KAAK,CAACmG,MAAM,CAAC,KAAK,IAAIkC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;;;;SAI3E3S,GAAG,CAAC6L,EAAE,CAACrL,CAAC,CAAC,GAAGoL,IAAI;;;OAGjB0G,KAAK,GAAGV,MAAM,CAACM,QAAQ;OACvB,IAAI,CAACK,QAAQ,GAAGJ,QAAQ,CAACF,UAAU;MACnC;;KAED,IAAI,CAACf,IAAI,GAAG,YAAW;OACtB,QAAQoB,KAAK;SACZ,KAAKV,MAAM,CAACC,YAAY,CAAEW,WAAW,CAAC2C,IAAI,CAAC,IAAI,CAAC,CAAE;SAClD,KAAKvD,MAAM,CAACE,aAAa,CAAEc,WAAW,CAACuC,IAAI,CAAC,IAAI,CAAC,CAAE;SACnD,KAAKvD,MAAM,CAACG,gBAAgB,CAAEe,cAAc,CAACqC,IAAI,CAAC,IAAI,CAAC,CAAE;SACzD,KAAKvD,MAAM,CAACI,OAAO,CAAE2C,OAAO,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAE;SACzC,KAAKvD,MAAM,CAACK,UAAU,CAAE6C,SAAS,CAACK,IAAI,CAAC,IAAI,CAAC,CAAE;;;OAG/C,OAAO7C,KAAK,IAAIV,MAAM,CAACM,QAAQ;MAC/B;IACD;;;GAGD,IAAI,OAAOkD,QAAQ,KAAK,WAAW,IAAIA,QAAQ,CAACC,aAAa,EAAE;KAC9D,IAAI,CAACC,EAAE,GAAGF,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;KAC1C,IAAI,CAACC,EAAE,CAACzH,KAAK,GAAG,CAAC;KACjB,IAAI,CAACyH,EAAE,CAACxH,MAAM,GAAG,CAAC;KAClB,IAAI,CAACyH,EAAE,GAAG,IAAI,CAACD,EAAE,CAACE,UAAU,CAAC,IAAI,CAAC;IAClC,MAAM;KACN,IAAI,CAACF,EAAE,GAAG,EAAEzH,KAAK,EAAE,CAAC,EAAEC,MAAM,EAAE,CAAC,EAAE;KACjC,IAAI,CAACyH,EAAE,GAAG,IAAI;;;GAGf,IAAI,MAAG,GAAG,UAASE,QAAQ,EAAEC,SAAS,EAAE;KACvC,IAAI,IAAI,CAACJ,EAAE,CAACzH,KAAK,GAAG4H,QAAQ,IAAI,IAAI,CAACH,EAAE,CAACxH,MAAM,GAAG4H,SAAS,EAAE;OAC3D,IAAI,CAACJ,EAAE,CAACzH,KAAK,GAAG4H,QAAQ;OACxB,IAAI,CAACH,EAAE,CAACxH,MAAM,GAAG4H,SAAS;OAC1B,IAAI,CAACH,EAAE,GAAG,IAAI,CAACD,EAAE,CAACE,UAAU,CAAC,IAAI,CAAC;;IAEnC;;GAED,IAAI,CAACG,OAAO,GAAG,EAAE;;GAEjB,IAAI,CAACC,UAAU,GAAG,UAASC,cAAc,EAAEC,aAAa,EAAEC,UAAU,EAAE;;KAErE,IAAI,IAAI,CAACJ,OAAO,CAACE,cAAc,CAAC,IAAI1G,SAAS,EAAE;;OAE9C,IAAI6G,WAAW,GAAG,IAAI,CAACL,OAAO,CAACE,cAAc,CAAC;;OAE9C,IAAIG,WAAW,YAAYC,KAAK,EAAE;SACjCD,WAAW,CAACA,WAAW,CAACE,MAAM,CAAC,GAAG,CAACJ,aAAa,EAAEC,UAAU,CAAC;SAC7D;;;OAGDD,aAAa,CAACE,WAAW,CAAC;OAC1B;;;KAGD,IAAI,CAACL,OAAO,CAACE,cAAc,CAAC,GAAG,CAAC,CAACC,aAAa,EAAEC,UAAU,CAAC,CAAC;;KAE5D,IAAI1G,OAAO,GAAG,IAAIC,cAAc,EAAE;KAClCD,OAAO,CAACE,IAAI,CAAC,KAAK,EAAEsG,cAAc,EAAE,IAAI,CAAC;KACzCxG,OAAO,CAACG,YAAY,GAAG,MAAM;KAC7BH,OAAO,CAACrP,GAAG,GAAG,IAAI;KAClBqP,OAAO,CAACI,kBAAkB,GAAG,YAAY;OACxC,IAAIJ,OAAO,CAACK,UAAU,IAAI,CAAC,EAAE;SAC5B,IAAIyG,SAAS,GAAG,IAAI,CAACnW,GAAG,CAAC2V,OAAO,CAACE,cAAc,CAAC;;SAEhD,IAAKxG,OAAO,CAACM,MAAM,IAAI,GAAG,IAAIN,OAAO,CAACM,MAAM,GAAG,GAAG,IAAKN,OAAO,CAACM,MAAM,IAAI,GAAG,EAAE;;WAE7E,IAAIyG,QAAQ,GAAG,oBAAoB;WAClC/G,OAAO,CAACgH,YAAY;WACpB,kDAAkD;WACnD,IAAIL,WAAW,GAAGM,IAAI,CAACF,QAAQ,CAAC;WAChC,IAAI,CAACpW,GAAG,CAAC2V,OAAO,CAACE,cAAc,CAAC,GAAGG,WAAW;;WAE9CG,SAAS,CAACI,OAAO,CAAC,UAASC,QAAQ,EAAE;aACpCA,QAAQ,CAAC,CAAC,CAAC,CAACR,WAAW,CAAC;YACxB,CAAC;;UAEF,MAAM;WACNG,SAAS,CAACI,OAAO,CAAC,UAASC,QAAQ,EAAE;aACpCA,QAAQ,CAAC,CAAC,CAAC,EAAE;YACb,CAAC;;;MAGJ;;KAEDnH,OAAO,CAACY,IAAI,EAAE;IACd;;GAED,IAAI,CAACwG,YAAY,GAAG,UAASZ,cAAc,EAAE;KAC5C,OAAO,IAAI,CAACF,OAAO,CAACE,cAAc,CAAC;IACnC;CACF;;;;;;;;;;;;"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@neutrinoparticles/js-v1.1",
3
+ "version": "1.0.0",
4
+ "description": "Javascript runtime for NeutrinoParticles (JS export format v1.1)",
5
+ "main": "dist/neutrinoparticles.js-v1.1.umd.js",
6
+ "keywords": [
7
+ "neutrinoparticles",
8
+ "particles"
9
+ ],
10
+ "author": "Yurii Miroshnyk",
11
+ "license": "ISC",
12
+ "devDependencies": {
13
+ "@babel/cli": "^7.6.4",
14
+ "@babel/core": "^7.6.3",
15
+ "@babel/preset-env": "^7.6.3",
16
+ "@babel/register": "^7.6.2",
17
+ "rimraf": "^3.0.0",
18
+ "rollup": "^1.23.1",
19
+ "rollup-plugin-babel": "^4.3.3",
20
+ "rollup-plugin-commonjs": "^10.1.0",
21
+ "rollup-plugin-node-resolve": "^5.2.0"
22
+ },
23
+ "babel": {
24
+ "presets": [
25
+ "@babel/preset-env"
26
+ ],
27
+ "retainLines": true
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "README.md",
32
+ "CHANGELOG.md"
33
+ ],
34
+ "scripts": {
35
+ "clean": "./node_modules/.bin/rimraf ./dist",
36
+ "build": "rollup -c -m",
37
+ "cleanbuild": "npm run clean && npm run build"
38
+ }
39
+ }